/* GCC miscompiles this compilation unit on i386 at the -O2 optimization level
   on
     - gcc 4.5.2 (Slackware 13.37)
     - gcc 4.6.2 (openSUSE 12.1)
     - gcc 4.7.1 (Slackware 14)
     - gcc 4.7.2 (Debian GNU/kFreeBSD 7.11)
   This works around it by reducing the optimization level.  */
#if __GNUC__ == 4 && __GNUC_MINOR__ >= 4 && __GNUC_MINOR__ < 8 && !defined __clang__ && defined __i386
#pragma GCC optimize ("O0")
#endif

#include "tree_sitter/parser.h"

#if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#endif

#ifdef _MSC_VER
#pragma optimize("", off)
#elif defined(__clang__)
#pragma clang optimize off
#elif defined(__GNUC__)
#pragma GCC optimize ("O0")
#endif

#define LANGUAGE_VERSION 14
#define STATE_COUNT 8061
#define LARGE_STATE_COUNT 3241
#define SYMBOL_COUNT 475
#define ALIAS_COUNT 1
#define TOKEN_COUNT 229
#define EXTERNAL_TOKEN_COUNT 8
#define FIELD_COUNT 13
#define MAX_ALIAS_SEQUENCE_LENGTH 12
#define PRODUCTION_ID_COUNT 42

enum ts_symbol_identifiers {
  sym_identifier = 1,
  anon_sym_BOM = 2,
  sym_shebang = 3,
  aux_sym_escape_sequence_token1 = 4,
  aux_sym_escape_sequence_token2 = 5,
  aux_sym_escape_sequence_token3 = 6,
  aux_sym_escape_sequence_token4 = 7,
  aux_sym_escape_sequence_token5 = 8,
  sym_htmlentity = 9,
  sym_end_file = 10,
  sym_comment = 11,
  anon_sym_q_LBRACE = 12,
  anon_sym_RBRACE = 13,
  anon_sym_LBRACE = 14,
  anon_sym_SLASH = 15,
  anon_sym_SLASH_EQ = 16,
  anon_sym_DOT = 17,
  anon_sym_DOT_DOT = 18,
  anon_sym_DOT_DOT_DOT = 19,
  anon_sym_AMP = 20,
  anon_sym_AMP_EQ = 21,
  anon_sym_AMP_AMP = 22,
  anon_sym_PIPE = 23,
  anon_sym_PIPE_EQ = 24,
  anon_sym_PIPE_PIPE = 25,
  anon_sym_DASH = 26,
  anon_sym_DASH_EQ = 27,
  anon_sym_DASH_DASH = 28,
  anon_sym_PLUS = 29,
  anon_sym_PLUS_EQ = 30,
  anon_sym_PLUS_PLUS = 31,
  anon_sym_LT = 32,
  anon_sym_LT_EQ = 33,
  anon_sym_LT_LT = 34,
  anon_sym_LT_LT_EQ = 35,
  anon_sym_GT = 36,
  anon_sym_GT_EQ = 37,
  anon_sym_GT_GT_EQ = 38,
  anon_sym_GT_GT_GT_EQ = 39,
  anon_sym_GT_GT = 40,
  anon_sym_GT_GT_GT = 41,
  anon_sym_BANG = 42,
  anon_sym_BANG_EQ = 43,
  anon_sym_LPAREN = 44,
  anon_sym_RPAREN = 45,
  anon_sym_LBRACK = 46,
  anon_sym_RBRACK = 47,
  anon_sym_QMARK = 48,
  anon_sym_COMMA = 49,
  anon_sym_SEMI = 50,
  anon_sym_COLON = 51,
  anon_sym_DOLLAR = 52,
  anon_sym_EQ = 53,
  anon_sym_EQ_EQ = 54,
  anon_sym_STAR = 55,
  anon_sym_STAR_EQ = 56,
  anon_sym_PERCENT = 57,
  anon_sym_PERCENT_EQ = 58,
  anon_sym_CARET = 59,
  anon_sym_CARET_EQ = 60,
  anon_sym_CARET_CARET = 61,
  anon_sym_CARET_CARET_EQ = 62,
  anon_sym_TILDE = 63,
  anon_sym_TILDE_EQ = 64,
  anon_sym_AT = 65,
  anon_sym_EQ_GT = 66,
  anon_sym_POUND = 67,
  anon_sym_BANGin = 68,
  anon_sym_BANGis = 69,
  sym_bool = 70,
  sym_byte = 71,
  sym_ubyte = 72,
  sym_char = 73,
  sym_short = 74,
  sym_ushort = 75,
  sym_int = 76,
  sym_uint = 77,
  sym_long = 78,
  sym_ulong = 79,
  sym_cent = 80,
  sym_ucent = 81,
  sym_wchar = 82,
  sym_dchar = 83,
  sym_float = 84,
  sym_double = 85,
  sym_real = 86,
  sym_ifloat = 87,
  sym_idouble = 88,
  sym_ireal = 89,
  sym_cfloat = 90,
  sym_cdouble = 91,
  sym_creal = 92,
  sym_size_t = 93,
  sym_ptrdiff_t = 94,
  sym_string = 95,
  sym_cstring = 96,
  sym_dstring = 97,
  sym_wstring = 98,
  sym_noreturn = 99,
  sym_true = 100,
  sym_false = 101,
  sym_null = 102,
  sym_super = 103,
  sym_this = 104,
  sym_abstract = 105,
  sym_alias = 106,
  sym_align = 107,
  sym_asm = 108,
  sym_assert = 109,
  sym_auto = 110,
  sym_break = 111,
  sym_case = 112,
  sym_cast = 113,
  sym_catch = 114,
  sym_class = 115,
  sym_const = 116,
  sym_continue = 117,
  sym_debug = 118,
  sym_default = 119,
  sym_delegate = 120,
  sym_delete = 121,
  sym_deprecated = 122,
  sym_do = 123,
  sym_else = 124,
  sym_enum = 125,
  sym_export = 126,
  sym_extern = 127,
  sym_final = 128,
  sym_finally = 129,
  sym_for = 130,
  sym_foreach = 131,
  sym_foreach_reverse = 132,
  sym_function = 133,
  sym_goto = 134,
  sym_if = 135,
  sym_immutable = 136,
  sym_import = 137,
  sym_in = 138,
  sym_inout = 139,
  sym_interface = 140,
  sym_invariant = 141,
  sym_is = 142,
  sym_lazy = 143,
  sym_mixin = 144,
  sym_module = 145,
  sym_new = 146,
  sym_nothrow = 147,
  sym_out = 148,
  sym_override = 149,
  sym_package = 150,
  sym_pragma = 151,
  sym_private = 152,
  sym_protected = 153,
  sym_public = 154,
  sym_pure = 155,
  sym_ref = 156,
  sym_return = 157,
  sym_scope = 158,
  sym_shared = 159,
  sym_static = 160,
  sym_struct = 161,
  sym_switch = 162,
  sym_synchronized = 163,
  sym_template = 164,
  sym_throw = 165,
  sym_try = 166,
  sym_typeid = 167,
  sym_typeof = 168,
  sym_union = 169,
  sym_unittest = 170,
  sym_version = 171,
  sym_while = 172,
  sym_with = 173,
  sym_parameters_ = 174,
  sym_gshared = 175,
  sym_traits = 176,
  sym_vector = 177,
  sym_void = 178,
  anon_sym_C = 179,
  anon_sym_D = 180,
  anon_sym_Windows = 181,
  anon_sym_System = 182,
  anon_sym_Objective = 183,
  anon_sym_BQUOTE = 184,
  aux_sym_raw_string_token1 = 185,
  aux_sym_raw_string_token2 = 186,
  anon_sym_r_DQUOTE = 187,
  aux_sym_raw_string_token3 = 188,
  aux_sym_raw_string_token4 = 189,
  anon_sym_x_DQUOTE = 190,
  aux_sym_hex_string_token1 = 191,
  anon_sym_DQUOTE = 192,
  aux_sym_quoted_string_token1 = 193,
  anon_sym_DOLLAR_LPAREN = 194,
  anon_sym_i_BQUOTE = 195,
  aux_sym_interpolated_raw_string_token1 = 196,
  aux_sym_interpolated_raw_string_token2 = 197,
  anon_sym_DOLLAR_BQUOTE = 198,
  sym_interpolated_escape = 199,
  anon_sym_i_DQUOTE = 200,
  aux_sym_interpolated_quoted_string_token1 = 201,
  aux_sym_interpolated_quoted_string_token2 = 202,
  anon_sym_DOLLAR_DQUOTE = 203,
  anon_sym_iq_LBRACE = 204,
  aux_sym_char_literal_token1 = 205,
  anon_sym_SQUOTE = 206,
  anon_sym___DATE__ = 207,
  anon_sym___FILE__ = 208,
  anon_sym___FILE_FULL_PATH__ = 209,
  anon_sym___FUNCTION__ = 210,
  anon_sym___LINE__ = 211,
  anon_sym___MODULE__ = 212,
  anon_sym___PRETTY_FUNCTION__ = 213,
  anon_sym___TIME__ = 214,
  anon_sym___TIMESTAMP__ = 215,
  anon_sym___VENDOR__ = 216,
  anon_sym___VERSION__ = 217,
  anon_sym_exit = 218,
  anon_sym_success = 219,
  anon_sym_failure = 220,
  sym_directive = 221,
  sym_int_literal = 222,
  sym_float_literal = 223,
  sym__string = 224,
  sym_not_in = 225,
  sym_not_is = 226,
  sym__after_eof = 227,
  sym_error_sentinel = 228,
  sym_source_file = 229,
  sym__bom = 230,
  sym_escape_sequence = 231,
  sym_token_string = 232,
  aux_sym__token_string_tokens = 233,
  sym__token_string_token = 234,
  sym__token_no_braces = 235,
  sym_keyword = 236,
  sym_dollar = 237,
  sym_module_def = 238,
  sym_module_declaration = 239,
  sym_module_fqn = 240,
  sym_import_declaration = 241,
  sym__import_list = 242,
  sym_imported = 243,
  sym_import_bind = 244,
  sym_mixin_declaration = 245,
  sym__declaration = 246,
  sym__declaration2 = 247,
  sym_variable_declaration = 248,
  sym_declarator = 249,
  sym_bitfield_declarator = 250,
  sym_manifest_constant = 251,
  sym_manifest_declarator = 252,
  sym_storage_class = 253,
  sym__initializer = 254,
  sym_auto_declaration = 255,
  sym__auto_assignment = 256,
  sym_alias_declaration = 257,
  sym_alias_initializer = 258,
  sym_alias_reassign = 259,
  sym_type = 260,
  sym_type_ctor = 261,
  sym__type2 = 262,
  sym_vector_type = 263,
  sym__builtin_type = 264,
  sym__type_suffix = 265,
  sym__qualified_id = 266,
  sym_typeof_expression = 267,
  sym_attribute_declaration = 268,
  sym_align_attribute = 269,
  sym_deprecated_attribute = 270,
  sym__attribute = 271,
  sym_at_attribute = 272,
  sym__function_attribute_kwd = 273,
  sym_linkage_attribute = 274,
  sym__argument_list = 275,
  sym_arguments = 276,
  sym_named_argument = 277,
  sym__named_argument_list = 278,
  sym_named_arguments = 279,
  sym_pragma_declaration = 280,
  sym_pragma_statement = 281,
  sym_pragma_expression = 282,
  sym_expression_list = 283,
  sym_expression = 284,
  sym__expr = 285,
  sym_ternary_expression = 286,
  sym_call_expression = 287,
  sym_primary_expression = 288,
  sym__primary_expr = 289,
  sym_index_expression = 290,
  sym_index = 291,
  sym_assignment_expression = 292,
  sym_binary_expression = 293,
  sym_logical_or_expression = 294,
  sym_logical_and_expression = 295,
  sym_or_expression = 296,
  sym_xor_expression = 297,
  sym_and_expression = 298,
  sym_equal_expression = 299,
  sym_rel_expression = 300,
  sym_identity_expression = 301,
  sym_add_expression = 302,
  sym_mul_expression = 303,
  sym_shift_expression = 304,
  sym_power_expression = 305,
  sym_postfix_expression = 306,
  sym_unary_expression = 307,
  sym__unary_expr = 308,
  sym_property_expression = 309,
  sym_cast_expression = 310,
  sym_cast_qualifier = 311,
  sym_delete_expression = 312,
  sym_throw_expression = 313,
  sym_assert_expression = 314,
  sym_assert_arguments = 315,
  sym_mixin_expression = 316,
  sym_import_expression = 317,
  sym_new_expression = 318,
  sym_typeid_expression = 319,
  sym_is_expression = 320,
  sym_type_specialization = 321,
  sym_raw_string = 322,
  sym_hex_string = 323,
  sym_quoted_string = 324,
  sym_interpolation_expression = 325,
  sym_interpolated_raw_string = 326,
  sym_interpolated_quoted_string = 327,
  sym_interpolated_token_string = 328,
  aux_sym__i_token_string_tokens = 329,
  sym_string_literal = 330,
  sym_char_literal = 331,
  sym_array_literal = 332,
  sym__array_member_init = 333,
  sym_function_literal = 334,
  sym__parameter_with_attributes = 335,
  sym__parameter_with_member_attributes = 336,
  sym_special_keyword = 337,
  sym__statement = 338,
  aux_sym__declarations_and_statements = 339,
  sym__declaration_or_statement = 340,
  sym_scope_statement = 341,
  sym__statement_no_case_no_default = 342,
  sym_labeled_statement = 343,
  sym_label = 344,
  sym_block_statement = 345,
  sym_expression_statement = 346,
  sym_if_statement = 347,
  sym_if_condition = 348,
  sym_while_statement = 349,
  sym_do_statement = 350,
  sym_for_statement = 351,
  sym__foreach = 352,
  sym_foreach_statement = 353,
  sym_foreach_type = 354,
  sym_switch_statement = 355,
  sym_case_statement = 356,
  sym_final_switch_statement = 357,
  sym_continue_statement = 358,
  sym_break_statement = 359,
  sym_return_statement = 360,
  sym_goto_statement = 361,
  sym_with_statement = 362,
  sym_synchronized_statement = 363,
  sym_try_statement = 364,
  sym_catch_statement = 365,
  sym_finally_statement = 366,
  sym_scope_guard_statement = 367,
  sym_asm_statement = 368,
  sym_asm_inline = 369,
  sym_struct_declaration = 370,
  sym_union_declaration = 371,
  sym_aggregate_body = 372,
  sym_aggregate_initializer = 373,
  sym_member_initializer = 374,
  sym_postblit = 375,
  sym_invariant_declaration = 376,
  sym_class_declaration = 377,
  sym__base_class_list = 378,
  sym_base_class = 379,
  sym_constructor = 380,
  sym_destructor = 381,
  sym_alias_this = 382,
  sym_interface_declaration = 383,
  sym_enum_declaration = 384,
  sym__enum_body = 385,
  sym__enum_member_attribute = 386,
  sym_enum_member = 387,
  sym_anonymous_enum_declaration = 388,
  sym_anonymous_enum_member = 389,
  sym_function_declaration = 390,
  sym_parameters = 391,
  sym__parameters = 392,
  sym_parameter = 393,
  sym_parameter_attribute = 394,
  sym_ellipses = 395,
  aux_sym__variadic_arguments_attributes = 396,
  sym_variadic_arguments_attribute = 397,
  sym__function_attribute = 398,
  sym_member_function_attribute = 399,
  sym_function_body = 400,
  sym__specified_function_body = 401,
  sym__function_contract = 402,
  aux_sym__in_out_contract_expressions = 403,
  sym__in_out_contract_expression = 404,
  sym__in_out_statement = 405,
  sym_in_contract_expression = 406,
  sym_out_contract_expression = 407,
  sym_in_statement = 408,
  sym_out_statement = 409,
  sym_template_declaration = 410,
  sym_template_instance = 411,
  sym_template_arguments = 412,
  sym_template_argument = 413,
  sym__template_argument_list = 414,
  sym__template_single_arg = 415,
  sym_template_parameter = 416,
  sym_template_parameters = 417,
  sym__template_parameter_list = 418,
  sym_constraint = 419,
  sym_mixin_template_declaration = 420,
  sym_template_mixin = 421,
  sym_conditional_declaration = 422,
  sym_conditional_statement = 423,
  sym_condition = 424,
  sym_version_condition = 425,
  sym_version_specification = 426,
  sym_debug_condition = 427,
  sym_debug_specification = 428,
  sym_static_if_condition = 429,
  sym_static_foreach_statement = 430,
  sym_static_foreach_declaration = 431,
  sym_static_assert = 432,
  sym_traits_expression = 433,
  sym_unittest_declaration = 434,
  aux_sym_source_file_repeat1 = 435,
  aux_sym_module_declaration_repeat1 = 436,
  aux_sym_module_fqn_repeat1 = 437,
  aux_sym_import_declaration_repeat1 = 438,
  aux_sym__import_list_repeat1 = 439,
  aux_sym_variable_declaration_repeat1 = 440,
  aux_sym_variable_declaration_repeat2 = 441,
  aux_sym__declarator_identifier_list_repeat1 = 442,
  aux_sym_manifest_constant_repeat1 = 443,
  aux_sym_auto_declaration_repeat1 = 444,
  aux_sym_alias_declaration_repeat1 = 445,
  aux_sym_alias_declaration_repeat2 = 446,
  aux_sym_type_repeat1 = 447,
  aux_sym_type_repeat2 = 448,
  aux_sym__type_suffix_repeat1 = 449,
  aux_sym__argument_list_repeat1 = 450,
  aux_sym__named_argument_list_repeat1 = 451,
  aux_sym_expression_list_repeat1 = 452,
  aux_sym_index_expression_repeat1 = 453,
  aux_sym_quoted_string_repeat1 = 454,
  aux_sym_interpolated_raw_string_repeat1 = 455,
  aux_sym_interpolated_quoted_string_repeat1 = 456,
  aux_sym_array_literal_repeat1 = 457,
  aux_sym_foreach_statement_repeat1 = 458,
  aux_sym_foreach_type_repeat1 = 459,
  aux_sym_case_statement_repeat1 = 460,
  aux_sym_try_statement_repeat1 = 461,
  aux_sym_asm_inline_repeat1 = 462,
  aux_sym_aggregate_initializer_repeat1 = 463,
  aux_sym__base_class_list_repeat1 = 464,
  aux_sym__enum_body_repeat1 = 465,
  aux_sym_enum_member_repeat1 = 466,
  aux_sym_anonymous_enum_declaration_repeat1 = 467,
  aux_sym_parameters_repeat1 = 468,
  aux_sym__parameters_repeat1 = 469,
  aux_sym__parameter_repeat1 = 470,
  aux_sym_function_body_repeat1 = 471,
  aux_sym__template_argument_list_repeat1 = 472,
  aux_sym__template_parameter_list_repeat1 = 473,
  aux_sym_template_mixin_repeat1 = 474,
  alias_sym_namespace_list = 475,
};

static const char * const ts_symbol_names[] = {
  [ts_builtin_sym_end] = "end",
  [sym_identifier] = "identifier",
  [anon_sym_BOM] = "\ufeff",
  [sym_shebang] = "shebang",
  [aux_sym_escape_sequence_token1] = "escape_sequence_token1",
  [aux_sym_escape_sequence_token2] = "escape_sequence_token2",
  [aux_sym_escape_sequence_token3] = "escape_sequence_token3",
  [aux_sym_escape_sequence_token4] = "escape_sequence_token4",
  [aux_sym_escape_sequence_token5] = "escape_sequence_token5",
  [sym_htmlentity] = "htmlentity",
  [sym_end_file] = "end_file",
  [sym_comment] = "comment",
  [anon_sym_q_LBRACE] = "q{",
  [anon_sym_RBRACE] = "}",
  [anon_sym_LBRACE] = "{",
  [anon_sym_SLASH] = "/",
  [anon_sym_SLASH_EQ] = "/=",
  [anon_sym_DOT] = ".",
  [anon_sym_DOT_DOT] = "..",
  [anon_sym_DOT_DOT_DOT] = "...",
  [anon_sym_AMP] = "&",
  [anon_sym_AMP_EQ] = "&=",
  [anon_sym_AMP_AMP] = "&&",
  [anon_sym_PIPE] = "|",
  [anon_sym_PIPE_EQ] = "|=",
  [anon_sym_PIPE_PIPE] = "||",
  [anon_sym_DASH] = "-",
  [anon_sym_DASH_EQ] = "-=",
  [anon_sym_DASH_DASH] = "--",
  [anon_sym_PLUS] = "+",
  [anon_sym_PLUS_EQ] = "+=",
  [anon_sym_PLUS_PLUS] = "++",
  [anon_sym_LT] = "<",
  [anon_sym_LT_EQ] = "<=",
  [anon_sym_LT_LT] = "<<",
  [anon_sym_LT_LT_EQ] = "<<=",
  [anon_sym_GT] = ">",
  [anon_sym_GT_EQ] = ">=",
  [anon_sym_GT_GT_EQ] = ">>=",
  [anon_sym_GT_GT_GT_EQ] = ">>>=",
  [anon_sym_GT_GT] = ">>",
  [anon_sym_GT_GT_GT] = ">>>",
  [anon_sym_BANG] = "!",
  [anon_sym_BANG_EQ] = "!=",
  [anon_sym_LPAREN] = "(",
  [anon_sym_RPAREN] = ")",
  [anon_sym_LBRACK] = "[",
  [anon_sym_RBRACK] = "]",
  [anon_sym_QMARK] = "\?",
  [anon_sym_COMMA] = ",",
  [anon_sym_SEMI] = ";",
  [anon_sym_COLON] = ":",
  [anon_sym_DOLLAR] = "$",
  [anon_sym_EQ] = "=",
  [anon_sym_EQ_EQ] = "==",
  [anon_sym_STAR] = "*",
  [anon_sym_STAR_EQ] = "*=",
  [anon_sym_PERCENT] = "%",
  [anon_sym_PERCENT_EQ] = "%=",
  [anon_sym_CARET] = "^",
  [anon_sym_CARET_EQ] = "^=",
  [anon_sym_CARET_CARET] = "^^",
  [anon_sym_CARET_CARET_EQ] = "^^=",
  [anon_sym_TILDE] = "~",
  [anon_sym_TILDE_EQ] = "~=",
  [anon_sym_AT] = "@",
  [anon_sym_EQ_GT] = "=>",
  [anon_sym_POUND] = "#",
  [anon_sym_BANGin] = "!in",
  [anon_sym_BANGis] = "!is",
  [sym_bool] = "bool",
  [sym_byte] = "byte",
  [sym_ubyte] = "ubyte",
  [sym_char] = "char",
  [sym_short] = "short",
  [sym_ushort] = "ushort",
  [sym_int] = "int",
  [sym_uint] = "uint",
  [sym_long] = "long",
  [sym_ulong] = "ulong",
  [sym_cent] = "cent",
  [sym_ucent] = "ucent",
  [sym_wchar] = "wchar",
  [sym_dchar] = "dchar",
  [sym_float] = "float",
  [sym_double] = "double",
  [sym_real] = "real",
  [sym_ifloat] = "ifloat",
  [sym_idouble] = "idouble",
  [sym_ireal] = "ireal",
  [sym_cfloat] = "cfloat",
  [sym_cdouble] = "cdouble",
  [sym_creal] = "creal",
  [sym_size_t] = "size_t",
  [sym_ptrdiff_t] = "ptrdiff_t",
  [sym_string] = "string",
  [sym_cstring] = "cstring",
  [sym_dstring] = "dstring",
  [sym_wstring] = "wstring",
  [sym_noreturn] = "noreturn",
  [sym_true] = "true",
  [sym_false] = "false",
  [sym_null] = "null",
  [sym_super] = "super",
  [sym_this] = "this",
  [sym_abstract] = "abstract",
  [sym_alias] = "alias",
  [sym_align] = "align",
  [sym_asm] = "asm",
  [sym_assert] = "assert",
  [sym_auto] = "auto",
  [sym_break] = "break",
  [sym_case] = "case",
  [sym_cast] = "cast",
  [sym_catch] = "catch",
  [sym_class] = "class",
  [sym_const] = "const",
  [sym_continue] = "continue",
  [sym_debug] = "debug",
  [sym_default] = "default",
  [sym_delegate] = "delegate",
  [sym_delete] = "delete",
  [sym_deprecated] = "deprecated",
  [sym_do] = "do",
  [sym_else] = "else",
  [sym_enum] = "enum",
  [sym_export] = "export",
  [sym_extern] = "extern",
  [sym_final] = "final",
  [sym_finally] = "finally",
  [sym_for] = "for",
  [sym_foreach] = "foreach",
  [sym_foreach_reverse] = "foreach_reverse",
  [sym_function] = "function",
  [sym_goto] = "goto",
  [sym_if] = "if",
  [sym_immutable] = "immutable",
  [sym_import] = "import",
  [sym_in] = "in",
  [sym_inout] = "inout",
  [sym_interface] = "interface",
  [sym_invariant] = "invariant",
  [sym_is] = "is",
  [sym_lazy] = "lazy",
  [sym_mixin] = "mixin",
  [sym_module] = "module",
  [sym_new] = "new",
  [sym_nothrow] = "nothrow",
  [sym_out] = "out",
  [sym_override] = "override",
  [sym_package] = "package",
  [sym_pragma] = "pragma",
  [sym_private] = "private",
  [sym_protected] = "protected",
  [sym_public] = "public",
  [sym_pure] = "pure",
  [sym_ref] = "ref",
  [sym_return] = "return",
  [sym_scope] = "scope",
  [sym_shared] = "shared",
  [sym_static] = "static",
  [sym_struct] = "struct",
  [sym_switch] = "switch",
  [sym_synchronized] = "synchronized",
  [sym_template] = "template",
  [sym_throw] = "throw",
  [sym_try] = "try",
  [sym_typeid] = "typeid",
  [sym_typeof] = "typeof",
  [sym_union] = "union",
  [sym_unittest] = "unittest",
  [sym_version] = "version",
  [sym_while] = "while",
  [sym_with] = "with",
  [sym_parameters_] = "parameters_",
  [sym_gshared] = "gshared",
  [sym_traits] = "traits",
  [sym_vector] = "vector",
  [sym_void] = "void",
  [anon_sym_C] = "C",
  [anon_sym_D] = "D",
  [anon_sym_Windows] = "Windows",
  [anon_sym_System] = "System",
  [anon_sym_Objective] = "Objective",
  [anon_sym_BQUOTE] = "`",
  [aux_sym_raw_string_token1] = "raw_string_token1",
  [aux_sym_raw_string_token2] = "raw_string_token2",
  [anon_sym_r_DQUOTE] = "r\"",
  [aux_sym_raw_string_token3] = "raw_string_token3",
  [aux_sym_raw_string_token4] = "raw_string_token4",
  [anon_sym_x_DQUOTE] = "x\"",
  [aux_sym_hex_string_token1] = "hex_string_token1",
  [anon_sym_DQUOTE] = "\"",
  [aux_sym_quoted_string_token1] = "quoted_string_token1",
  [anon_sym_DOLLAR_LPAREN] = "$(",
  [anon_sym_i_BQUOTE] = "i`",
  [aux_sym_interpolated_raw_string_token1] = "interpolated_raw_string_token1",
  [aux_sym_interpolated_raw_string_token2] = "interpolated_raw_string_token2",
  [anon_sym_DOLLAR_BQUOTE] = "$`",
  [sym_interpolated_escape] = "interpolated_escape",
  [anon_sym_i_DQUOTE] = "i\"",
  [aux_sym_interpolated_quoted_string_token1] = "interpolated_quoted_string_token1",
  [aux_sym_interpolated_quoted_string_token2] = "interpolated_quoted_string_token2",
  [anon_sym_DOLLAR_DQUOTE] = "$\"",
  [anon_sym_iq_LBRACE] = "iq{",
  [aux_sym_char_literal_token1] = "char_literal_token1",
  [anon_sym_SQUOTE] = "'",
  [anon_sym___DATE__] = "__DATE__",
  [anon_sym___FILE__] = "__FILE__",
  [anon_sym___FILE_FULL_PATH__] = "__FILE_FULL_PATH__",
  [anon_sym___FUNCTION__] = "__FUNCTION__",
  [anon_sym___LINE__] = "__LINE__",
  [anon_sym___MODULE__] = "__MODULE__",
  [anon_sym___PRETTY_FUNCTION__] = "__PRETTY_FUNCTION__",
  [anon_sym___TIME__] = "__TIME__",
  [anon_sym___TIMESTAMP__] = "__TIMESTAMP__",
  [anon_sym___VENDOR__] = "__VENDOR__",
  [anon_sym___VERSION__] = "__VERSION__",
  [anon_sym_exit] = "exit",
  [anon_sym_success] = "success",
  [anon_sym_failure] = "failure",
  [sym_directive] = "directive",
  [sym_int_literal] = "int_literal",
  [sym_float_literal] = "float_literal",
  [sym__string] = "_string",
  [sym_not_in] = "not_in",
  [sym_not_is] = "not_is",
  [sym__after_eof] = "_after_eof",
  [sym_error_sentinel] = "error_sentinel",
  [sym_source_file] = "source_file",
  [sym__bom] = "_bom",
  [sym_escape_sequence] = "escape_sequence",
  [sym_token_string] = "token_string",
  [aux_sym__token_string_tokens] = "_token_string_tokens",
  [sym__token_string_token] = "_token_string_token",
  [sym__token_no_braces] = "_token_no_braces",
  [sym_keyword] = "keyword",
  [sym_dollar] = "dollar",
  [sym_module_def] = "module_def",
  [sym_module_declaration] = "module_declaration",
  [sym_module_fqn] = "module_fqn",
  [sym_import_declaration] = "import_declaration",
  [sym__import_list] = "_import_list",
  [sym_imported] = "imported",
  [sym_import_bind] = "import_bind",
  [sym_mixin_declaration] = "mixin_declaration",
  [sym__declaration] = "_declaration",
  [sym__declaration2] = "_declaration2",
  [sym_variable_declaration] = "variable_declaration",
  [sym_declarator] = "declarator",
  [sym_bitfield_declarator] = "bitfield_declarator",
  [sym_manifest_constant] = "manifest_constant",
  [sym_manifest_declarator] = "manifest_declarator",
  [sym_storage_class] = "storage_class",
  [sym__initializer] = "_initializer",
  [sym_auto_declaration] = "auto_declaration",
  [sym__auto_assignment] = "_auto_assignment",
  [sym_alias_declaration] = "alias_declaration",
  [sym_alias_initializer] = "alias_initializer",
  [sym_alias_reassign] = "alias_reassign",
  [sym_type] = "type",
  [sym_type_ctor] = "type_ctor",
  [sym__type2] = "_type2",
  [sym_vector_type] = "vector_type",
  [sym__builtin_type] = "_builtin_type",
  [sym__type_suffix] = "_type_suffix",
  [sym__qualified_id] = "_qualified_id",
  [sym_typeof_expression] = "typeof_expression",
  [sym_attribute_declaration] = "attribute_declaration",
  [sym_align_attribute] = "align_attribute",
  [sym_deprecated_attribute] = "deprecated_attribute",
  [sym__attribute] = "_attribute",
  [sym_at_attribute] = "at_attribute",
  [sym__function_attribute_kwd] = "_function_attribute_kwd",
  [sym_linkage_attribute] = "linkage_attribute",
  [sym__argument_list] = "_argument_list",
  [sym_arguments] = "arguments",
  [sym_named_argument] = "named_argument",
  [sym__named_argument_list] = "_named_argument_list",
  [sym_named_arguments] = "named_arguments",
  [sym_pragma_declaration] = "pragma_declaration",
  [sym_pragma_statement] = "pragma_statement",
  [sym_pragma_expression] = "pragma_expression",
  [sym_expression_list] = "expression_list",
  [sym_expression] = "expression",
  [sym__expr] = "_expr",
  [sym_ternary_expression] = "ternary_expression",
  [sym_call_expression] = "call_expression",
  [sym_primary_expression] = "primary_expression",
  [sym__primary_expr] = "_primary_expr",
  [sym_index_expression] = "index_expression",
  [sym_index] = "index",
  [sym_assignment_expression] = "assignment_expression",
  [sym_binary_expression] = "binary_expression",
  [sym_logical_or_expression] = "logical_or_expression",
  [sym_logical_and_expression] = "logical_and_expression",
  [sym_or_expression] = "or_expression",
  [sym_xor_expression] = "xor_expression",
  [sym_and_expression] = "and_expression",
  [sym_equal_expression] = "equal_expression",
  [sym_rel_expression] = "rel_expression",
  [sym_identity_expression] = "identity_expression",
  [sym_add_expression] = "add_expression",
  [sym_mul_expression] = "mul_expression",
  [sym_shift_expression] = "shift_expression",
  [sym_power_expression] = "power_expression",
  [sym_postfix_expression] = "postfix_expression",
  [sym_unary_expression] = "unary_expression",
  [sym__unary_expr] = "_unary_expr",
  [sym_property_expression] = "property_expression",
  [sym_cast_expression] = "cast_expression",
  [sym_cast_qualifier] = "cast_qualifier",
  [sym_delete_expression] = "delete_expression",
  [sym_throw_expression] = "throw_expression",
  [sym_assert_expression] = "assert_expression",
  [sym_assert_arguments] = "assert_arguments",
  [sym_mixin_expression] = "mixin_expression",
  [sym_import_expression] = "import_expression",
  [sym_new_expression] = "new_expression",
  [sym_typeid_expression] = "typeid_expression",
  [sym_is_expression] = "is_expression",
  [sym_type_specialization] = "type_specialization",
  [sym_raw_string] = "raw_string",
  [sym_hex_string] = "hex_string",
  [sym_quoted_string] = "quoted_string",
  [sym_interpolation_expression] = "interpolation_expression",
  [sym_interpolated_raw_string] = "interpolated_raw_string",
  [sym_interpolated_quoted_string] = "interpolated_quoted_string",
  [sym_interpolated_token_string] = "interpolated_token_string",
  [aux_sym__i_token_string_tokens] = "_i_token_string_tokens",
  [sym_string_literal] = "string_literal",
  [sym_char_literal] = "char_literal",
  [sym_array_literal] = "array_literal",
  [sym__array_member_init] = "_array_member_init",
  [sym_function_literal] = "function_literal",
  [sym__parameter_with_attributes] = "_parameter_with_attributes",
  [sym__parameter_with_member_attributes] = "_parameter_with_member_attributes",
  [sym_special_keyword] = "special_keyword",
  [sym__statement] = "_statement",
  [aux_sym__declarations_and_statements] = "_declarations_and_statements",
  [sym__declaration_or_statement] = "_declaration_or_statement",
  [sym_scope_statement] = "scope_statement",
  [sym__statement_no_case_no_default] = "_statement_no_case_no_default",
  [sym_labeled_statement] = "labeled_statement",
  [sym_label] = "label",
  [sym_block_statement] = "block_statement",
  [sym_expression_statement] = "expression_statement",
  [sym_if_statement] = "if_statement",
  [sym_if_condition] = "if_condition",
  [sym_while_statement] = "while_statement",
  [sym_do_statement] = "do_statement",
  [sym_for_statement] = "for_statement",
  [sym__foreach] = "_foreach",
  [sym_foreach_statement] = "foreach_statement",
  [sym_foreach_type] = "foreach_type",
  [sym_switch_statement] = "switch_statement",
  [sym_case_statement] = "case_statement",
  [sym_final_switch_statement] = "final_switch_statement",
  [sym_continue_statement] = "continue_statement",
  [sym_break_statement] = "break_statement",
  [sym_return_statement] = "return_statement",
  [sym_goto_statement] = "goto_statement",
  [sym_with_statement] = "with_statement",
  [sym_synchronized_statement] = "synchronized_statement",
  [sym_try_statement] = "try_statement",
  [sym_catch_statement] = "catch_statement",
  [sym_finally_statement] = "finally_statement",
  [sym_scope_guard_statement] = "scope_guard_statement",
  [sym_asm_statement] = "asm_statement",
  [sym_asm_inline] = "asm_inline",
  [sym_struct_declaration] = "struct_declaration",
  [sym_union_declaration] = "union_declaration",
  [sym_aggregate_body] = "aggregate_body",
  [sym_aggregate_initializer] = "aggregate_initializer",
  [sym_member_initializer] = "member_initializer",
  [sym_postblit] = "postblit",
  [sym_invariant_declaration] = "invariant_declaration",
  [sym_class_declaration] = "class_declaration",
  [sym__base_class_list] = "_base_class_list",
  [sym_base_class] = "base_class",
  [sym_constructor] = "constructor",
  [sym_destructor] = "destructor",
  [sym_alias_this] = "alias_this",
  [sym_interface_declaration] = "interface_declaration",
  [sym_enum_declaration] = "enum_declaration",
  [sym__enum_body] = "_enum_body",
  [sym__enum_member_attribute] = "_enum_member_attribute",
  [sym_enum_member] = "enum_member",
  [sym_anonymous_enum_declaration] = "anonymous_enum_declaration",
  [sym_anonymous_enum_member] = "anonymous_enum_member",
  [sym_function_declaration] = "function_declaration",
  [sym_parameters] = "parameters",
  [sym__parameters] = "_parameters",
  [sym_parameter] = "parameter",
  [sym_parameter_attribute] = "parameter_attribute",
  [sym_ellipses] = "ellipses",
  [aux_sym__variadic_arguments_attributes] = "_variadic_arguments_attributes",
  [sym_variadic_arguments_attribute] = "variadic_arguments_attribute",
  [sym__function_attribute] = "_function_attribute",
  [sym_member_function_attribute] = "member_function_attribute",
  [sym_function_body] = "function_body",
  [sym__specified_function_body] = "_specified_function_body",
  [sym__function_contract] = "_function_contract",
  [aux_sym__in_out_contract_expressions] = "_in_out_contract_expressions",
  [sym__in_out_contract_expression] = "_in_out_contract_expression",
  [sym__in_out_statement] = "_in_out_statement",
  [sym_in_contract_expression] = "in_contract_expression",
  [sym_out_contract_expression] = "out_contract_expression",
  [sym_in_statement] = "in_statement",
  [sym_out_statement] = "out_statement",
  [sym_template_declaration] = "template_declaration",
  [sym_template_instance] = "template_instance",
  [sym_template_arguments] = "template_arguments",
  [sym_template_argument] = "template_argument",
  [sym__template_argument_list] = "_template_argument_list",
  [sym__template_single_arg] = "_template_single_arg",
  [sym_template_parameter] = "template_parameter",
  [sym_template_parameters] = "template_parameters",
  [sym__template_parameter_list] = "_template_parameter_list",
  [sym_constraint] = "constraint",
  [sym_mixin_template_declaration] = "mixin_template_declaration",
  [sym_template_mixin] = "template_mixin",
  [sym_conditional_declaration] = "conditional_declaration",
  [sym_conditional_statement] = "conditional_statement",
  [sym_condition] = "condition",
  [sym_version_condition] = "version_condition",
  [sym_version_specification] = "version_specification",
  [sym_debug_condition] = "debug_condition",
  [sym_debug_specification] = "debug_specification",
  [sym_static_if_condition] = "static_if_condition",
  [sym_static_foreach_statement] = "static_foreach_statement",
  [sym_static_foreach_declaration] = "static_foreach_declaration",
  [sym_static_assert] = "static_assert",
  [sym_traits_expression] = "traits_expression",
  [sym_unittest_declaration] = "unittest_declaration",
  [aux_sym_source_file_repeat1] = "source_file_repeat1",
  [aux_sym_module_declaration_repeat1] = "module_declaration_repeat1",
  [aux_sym_module_fqn_repeat1] = "module_fqn_repeat1",
  [aux_sym_import_declaration_repeat1] = "import_declaration_repeat1",
  [aux_sym__import_list_repeat1] = "_import_list_repeat1",
  [aux_sym_variable_declaration_repeat1] = "variable_declaration_repeat1",
  [aux_sym_variable_declaration_repeat2] = "variable_declaration_repeat2",
  [aux_sym__declarator_identifier_list_repeat1] = "_declarator_identifier_list_repeat1",
  [aux_sym_manifest_constant_repeat1] = "manifest_constant_repeat1",
  [aux_sym_auto_declaration_repeat1] = "auto_declaration_repeat1",
  [aux_sym_alias_declaration_repeat1] = "alias_declaration_repeat1",
  [aux_sym_alias_declaration_repeat2] = "alias_declaration_repeat2",
  [aux_sym_type_repeat1] = "type_repeat1",
  [aux_sym_type_repeat2] = "type_repeat2",
  [aux_sym__type_suffix_repeat1] = "_type_suffix_repeat1",
  [aux_sym__argument_list_repeat1] = "_argument_list_repeat1",
  [aux_sym__named_argument_list_repeat1] = "_named_argument_list_repeat1",
  [aux_sym_expression_list_repeat1] = "expression_list_repeat1",
  [aux_sym_index_expression_repeat1] = "index_expression_repeat1",
  [aux_sym_quoted_string_repeat1] = "quoted_string_repeat1",
  [aux_sym_interpolated_raw_string_repeat1] = "interpolated_raw_string_repeat1",
  [aux_sym_interpolated_quoted_string_repeat1] = "interpolated_quoted_string_repeat1",
  [aux_sym_array_literal_repeat1] = "array_literal_repeat1",
  [aux_sym_foreach_statement_repeat1] = "foreach_statement_repeat1",
  [aux_sym_foreach_type_repeat1] = "foreach_type_repeat1",
  [aux_sym_case_statement_repeat1] = "case_statement_repeat1",
  [aux_sym_try_statement_repeat1] = "try_statement_repeat1",
  [aux_sym_asm_inline_repeat1] = "asm_inline_repeat1",
  [aux_sym_aggregate_initializer_repeat1] = "aggregate_initializer_repeat1",
  [aux_sym__base_class_list_repeat1] = "_base_class_list_repeat1",
  [aux_sym__enum_body_repeat1] = "_enum_body_repeat1",
  [aux_sym_enum_member_repeat1] = "enum_member_repeat1",
  [aux_sym_anonymous_enum_declaration_repeat1] = "anonymous_enum_declaration_repeat1",
  [aux_sym_parameters_repeat1] = "parameters_repeat1",
  [aux_sym__parameters_repeat1] = "_parameters_repeat1",
  [aux_sym__parameter_repeat1] = "_parameter_repeat1",
  [aux_sym_function_body_repeat1] = "function_body_repeat1",
  [aux_sym__template_argument_list_repeat1] = "_template_argument_list_repeat1",
  [aux_sym__template_parameter_list_repeat1] = "_template_parameter_list_repeat1",
  [aux_sym_template_mixin_repeat1] = "template_mixin_repeat1",
  [alias_sym_namespace_list] = "namespace_list",
};

static const TSSymbol ts_symbol_map[] = {
  [ts_builtin_sym_end] = ts_builtin_sym_end,
  [sym_identifier] = sym_identifier,
  [anon_sym_BOM] = anon_sym_BOM,
  [sym_shebang] = sym_shebang,
  [aux_sym_escape_sequence_token1] = aux_sym_escape_sequence_token1,
  [aux_sym_escape_sequence_token2] = aux_sym_escape_sequence_token2,
  [aux_sym_escape_sequence_token3] = aux_sym_escape_sequence_token3,
  [aux_sym_escape_sequence_token4] = aux_sym_escape_sequence_token4,
  [aux_sym_escape_sequence_token5] = aux_sym_escape_sequence_token5,
  [sym_htmlentity] = sym_htmlentity,
  [sym_end_file] = sym_end_file,
  [sym_comment] = sym_comment,
  [anon_sym_q_LBRACE] = anon_sym_q_LBRACE,
  [anon_sym_RBRACE] = anon_sym_RBRACE,
  [anon_sym_LBRACE] = anon_sym_LBRACE,
  [anon_sym_SLASH] = anon_sym_SLASH,
  [anon_sym_SLASH_EQ] = anon_sym_SLASH_EQ,
  [anon_sym_DOT] = anon_sym_DOT,
  [anon_sym_DOT_DOT] = anon_sym_DOT_DOT,
  [anon_sym_DOT_DOT_DOT] = anon_sym_DOT_DOT_DOT,
  [anon_sym_AMP] = anon_sym_AMP,
  [anon_sym_AMP_EQ] = anon_sym_AMP_EQ,
  [anon_sym_AMP_AMP] = anon_sym_AMP_AMP,
  [anon_sym_PIPE] = anon_sym_PIPE,
  [anon_sym_PIPE_EQ] = anon_sym_PIPE_EQ,
  [anon_sym_PIPE_PIPE] = anon_sym_PIPE_PIPE,
  [anon_sym_DASH] = anon_sym_DASH,
  [anon_sym_DASH_EQ] = anon_sym_DASH_EQ,
  [anon_sym_DASH_DASH] = anon_sym_DASH_DASH,
  [anon_sym_PLUS] = anon_sym_PLUS,
  [anon_sym_PLUS_EQ] = anon_sym_PLUS_EQ,
  [anon_sym_PLUS_PLUS] = anon_sym_PLUS_PLUS,
  [anon_sym_LT] = anon_sym_LT,
  [anon_sym_LT_EQ] = anon_sym_LT_EQ,
  [anon_sym_LT_LT] = anon_sym_LT_LT,
  [anon_sym_LT_LT_EQ] = anon_sym_LT_LT_EQ,
  [anon_sym_GT] = anon_sym_GT,
  [anon_sym_GT_EQ] = anon_sym_GT_EQ,
  [anon_sym_GT_GT_EQ] = anon_sym_GT_GT_EQ,
  [anon_sym_GT_GT_GT_EQ] = anon_sym_GT_GT_GT_EQ,
  [anon_sym_GT_GT] = anon_sym_GT_GT,
  [anon_sym_GT_GT_GT] = anon_sym_GT_GT_GT,
  [anon_sym_BANG] = anon_sym_BANG,
  [anon_sym_BANG_EQ] = anon_sym_BANG_EQ,
  [anon_sym_LPAREN] = anon_sym_LPAREN,
  [anon_sym_RPAREN] = anon_sym_RPAREN,
  [anon_sym_LBRACK] = anon_sym_LBRACK,
  [anon_sym_RBRACK] = anon_sym_RBRACK,
  [anon_sym_QMARK] = anon_sym_QMARK,
  [anon_sym_COMMA] = anon_sym_COMMA,
  [anon_sym_SEMI] = anon_sym_SEMI,
  [anon_sym_COLON] = anon_sym_COLON,
  [anon_sym_DOLLAR] = anon_sym_DOLLAR,
  [anon_sym_EQ] = anon_sym_EQ,
  [anon_sym_EQ_EQ] = anon_sym_EQ_EQ,
  [anon_sym_STAR] = anon_sym_STAR,
  [anon_sym_STAR_EQ] = anon_sym_STAR_EQ,
  [anon_sym_PERCENT] = anon_sym_PERCENT,
  [anon_sym_PERCENT_EQ] = anon_sym_PERCENT_EQ,
  [anon_sym_CARET] = anon_sym_CARET,
  [anon_sym_CARET_EQ] = anon_sym_CARET_EQ,
  [anon_sym_CARET_CARET] = anon_sym_CARET_CARET,
  [anon_sym_CARET_CARET_EQ] = anon_sym_CARET_CARET_EQ,
  [anon_sym_TILDE] = anon_sym_TILDE,
  [anon_sym_TILDE_EQ] = anon_sym_TILDE_EQ,
  [anon_sym_AT] = anon_sym_AT,
  [anon_sym_EQ_GT] = anon_sym_EQ_GT,
  [anon_sym_POUND] = anon_sym_POUND,
  [anon_sym_BANGin] = anon_sym_BANGin,
  [anon_sym_BANGis] = anon_sym_BANGis,
  [sym_bool] = sym_bool,
  [sym_byte] = sym_byte,
  [sym_ubyte] = sym_ubyte,
  [sym_char] = sym_char,
  [sym_short] = sym_short,
  [sym_ushort] = sym_ushort,
  [sym_int] = sym_int,
  [sym_uint] = sym_uint,
  [sym_long] = sym_long,
  [sym_ulong] = sym_ulong,
  [sym_cent] = sym_cent,
  [sym_ucent] = sym_ucent,
  [sym_wchar] = sym_wchar,
  [sym_dchar] = sym_dchar,
  [sym_float] = sym_float,
  [sym_double] = sym_double,
  [sym_real] = sym_real,
  [sym_ifloat] = sym_ifloat,
  [sym_idouble] = sym_idouble,
  [sym_ireal] = sym_ireal,
  [sym_cfloat] = sym_cfloat,
  [sym_cdouble] = sym_cdouble,
  [sym_creal] = sym_creal,
  [sym_size_t] = sym_size_t,
  [sym_ptrdiff_t] = sym_ptrdiff_t,
  [sym_string] = sym_string,
  [sym_cstring] = sym_cstring,
  [sym_dstring] = sym_dstring,
  [sym_wstring] = sym_wstring,
  [sym_noreturn] = sym_noreturn,
  [sym_true] = sym_true,
  [sym_false] = sym_false,
  [sym_null] = sym_null,
  [sym_super] = sym_super,
  [sym_this] = sym_this,
  [sym_abstract] = sym_abstract,
  [sym_alias] = sym_alias,
  [sym_align] = sym_align,
  [sym_asm] = sym_asm,
  [sym_assert] = sym_assert,
  [sym_auto] = sym_auto,
  [sym_break] = sym_break,
  [sym_case] = sym_case,
  [sym_cast] = sym_cast,
  [sym_catch] = sym_catch,
  [sym_class] = sym_class,
  [sym_const] = sym_const,
  [sym_continue] = sym_continue,
  [sym_debug] = sym_debug,
  [sym_default] = sym_default,
  [sym_delegate] = sym_delegate,
  [sym_delete] = sym_delete,
  [sym_deprecated] = sym_deprecated,
  [sym_do] = sym_do,
  [sym_else] = sym_else,
  [sym_enum] = sym_enum,
  [sym_export] = sym_export,
  [sym_extern] = sym_extern,
  [sym_final] = sym_final,
  [sym_finally] = sym_finally,
  [sym_for] = sym_for,
  [sym_foreach] = sym_foreach,
  [sym_foreach_reverse] = sym_foreach_reverse,
  [sym_function] = sym_function,
  [sym_goto] = sym_goto,
  [sym_if] = sym_if,
  [sym_immutable] = sym_immutable,
  [sym_import] = sym_import,
  [sym_in] = sym_in,
  [sym_inout] = sym_inout,
  [sym_interface] = sym_interface,
  [sym_invariant] = sym_invariant,
  [sym_is] = sym_is,
  [sym_lazy] = sym_lazy,
  [sym_mixin] = sym_mixin,
  [sym_module] = sym_module,
  [sym_new] = sym_new,
  [sym_nothrow] = sym_nothrow,
  [sym_out] = sym_out,
  [sym_override] = sym_override,
  [sym_package] = sym_package,
  [sym_pragma] = sym_pragma,
  [sym_private] = sym_private,
  [sym_protected] = sym_protected,
  [sym_public] = sym_public,
  [sym_pure] = sym_pure,
  [sym_ref] = sym_ref,
  [sym_return] = sym_return,
  [sym_scope] = sym_scope,
  [sym_shared] = sym_shared,
  [sym_static] = sym_static,
  [sym_struct] = sym_struct,
  [sym_switch] = sym_switch,
  [sym_synchronized] = sym_synchronized,
  [sym_template] = sym_template,
  [sym_throw] = sym_throw,
  [sym_try] = sym_try,
  [sym_typeid] = sym_typeid,
  [sym_typeof] = sym_typeof,
  [sym_union] = sym_union,
  [sym_unittest] = sym_unittest,
  [sym_version] = sym_version,
  [sym_while] = sym_while,
  [sym_with] = sym_with,
  [sym_parameters_] = sym_parameters_,
  [sym_gshared] = sym_gshared,
  [sym_traits] = sym_traits,
  [sym_vector] = sym_vector,
  [sym_void] = sym_void,
  [anon_sym_C] = anon_sym_C,
  [anon_sym_D] = anon_sym_D,
  [anon_sym_Windows] = anon_sym_Windows,
  [anon_sym_System] = anon_sym_System,
  [anon_sym_Objective] = anon_sym_Objective,
  [anon_sym_BQUOTE] = anon_sym_BQUOTE,
  [aux_sym_raw_string_token1] = aux_sym_raw_string_token1,
  [aux_sym_raw_string_token2] = aux_sym_raw_string_token2,
  [anon_sym_r_DQUOTE] = anon_sym_r_DQUOTE,
  [aux_sym_raw_string_token3] = aux_sym_raw_string_token3,
  [aux_sym_raw_string_token4] = aux_sym_raw_string_token4,
  [anon_sym_x_DQUOTE] = anon_sym_x_DQUOTE,
  [aux_sym_hex_string_token1] = aux_sym_hex_string_token1,
  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
  [aux_sym_quoted_string_token1] = aux_sym_quoted_string_token1,
  [anon_sym_DOLLAR_LPAREN] = anon_sym_DOLLAR_LPAREN,
  [anon_sym_i_BQUOTE] = anon_sym_i_BQUOTE,
  [aux_sym_interpolated_raw_string_token1] = aux_sym_interpolated_raw_string_token1,
  [aux_sym_interpolated_raw_string_token2] = aux_sym_interpolated_raw_string_token2,
  [anon_sym_DOLLAR_BQUOTE] = anon_sym_DOLLAR_BQUOTE,
  [sym_interpolated_escape] = sym_interpolated_escape,
  [anon_sym_i_DQUOTE] = anon_sym_i_DQUOTE,
  [aux_sym_interpolated_quoted_string_token1] = aux_sym_interpolated_quoted_string_token1,
  [aux_sym_interpolated_quoted_string_token2] = aux_sym_interpolated_quoted_string_token2,
  [anon_sym_DOLLAR_DQUOTE] = anon_sym_DOLLAR_DQUOTE,
  [anon_sym_iq_LBRACE] = anon_sym_iq_LBRACE,
  [aux_sym_char_literal_token1] = aux_sym_char_literal_token1,
  [anon_sym_SQUOTE] = anon_sym_SQUOTE,
  [anon_sym___DATE__] = anon_sym___DATE__,
  [anon_sym___FILE__] = anon_sym___FILE__,
  [anon_sym___FILE_FULL_PATH__] = anon_sym___FILE_FULL_PATH__,
  [anon_sym___FUNCTION__] = anon_sym___FUNCTION__,
  [anon_sym___LINE__] = anon_sym___LINE__,
  [anon_sym___MODULE__] = anon_sym___MODULE__,
  [anon_sym___PRETTY_FUNCTION__] = anon_sym___PRETTY_FUNCTION__,
  [anon_sym___TIME__] = anon_sym___TIME__,
  [anon_sym___TIMESTAMP__] = anon_sym___TIMESTAMP__,
  [anon_sym___VENDOR__] = anon_sym___VENDOR__,
  [anon_sym___VERSION__] = anon_sym___VERSION__,
  [anon_sym_exit] = anon_sym_exit,
  [anon_sym_success] = anon_sym_success,
  [anon_sym_failure] = anon_sym_failure,
  [sym_directive] = sym_directive,
  [sym_int_literal] = sym_int_literal,
  [sym_float_literal] = sym_float_literal,
  [sym__string] = sym__string,
  [sym_not_in] = sym_not_in,
  [sym_not_is] = sym_not_is,
  [sym__after_eof] = sym__after_eof,
  [sym_error_sentinel] = sym_error_sentinel,
  [sym_source_file] = sym_source_file,
  [sym__bom] = sym__bom,
  [sym_escape_sequence] = sym_escape_sequence,
  [sym_token_string] = sym_token_string,
  [aux_sym__token_string_tokens] = aux_sym__token_string_tokens,
  [sym__token_string_token] = sym__token_string_token,
  [sym__token_no_braces] = sym__token_no_braces,
  [sym_keyword] = sym_keyword,
  [sym_dollar] = sym_dollar,
  [sym_module_def] = sym_module_def,
  [sym_module_declaration] = sym_module_declaration,
  [sym_module_fqn] = sym_module_fqn,
  [sym_import_declaration] = sym_import_declaration,
  [sym__import_list] = sym__import_list,
  [sym_imported] = sym_imported,
  [sym_import_bind] = sym_import_bind,
  [sym_mixin_declaration] = sym_mixin_declaration,
  [sym__declaration] = sym__declaration,
  [sym__declaration2] = sym__declaration2,
  [sym_variable_declaration] = sym_variable_declaration,
  [sym_declarator] = sym_declarator,
  [sym_bitfield_declarator] = sym_bitfield_declarator,
  [sym_manifest_constant] = sym_manifest_constant,
  [sym_manifest_declarator] = sym_manifest_declarator,
  [sym_storage_class] = sym_storage_class,
  [sym__initializer] = sym__initializer,
  [sym_auto_declaration] = sym_auto_declaration,
  [sym__auto_assignment] = sym__auto_assignment,
  [sym_alias_declaration] = sym_alias_declaration,
  [sym_alias_initializer] = sym_alias_initializer,
  [sym_alias_reassign] = sym_alias_reassign,
  [sym_type] = sym_type,
  [sym_type_ctor] = sym_type_ctor,
  [sym__type2] = sym__type2,
  [sym_vector_type] = sym_vector_type,
  [sym__builtin_type] = sym__builtin_type,
  [sym__type_suffix] = sym__type_suffix,
  [sym__qualified_id] = sym__qualified_id,
  [sym_typeof_expression] = sym_typeof_expression,
  [sym_attribute_declaration] = sym_attribute_declaration,
  [sym_align_attribute] = sym_align_attribute,
  [sym_deprecated_attribute] = sym_deprecated_attribute,
  [sym__attribute] = sym__attribute,
  [sym_at_attribute] = sym_at_attribute,
  [sym__function_attribute_kwd] = sym__function_attribute_kwd,
  [sym_linkage_attribute] = sym_linkage_attribute,
  [sym__argument_list] = sym__argument_list,
  [sym_arguments] = sym_arguments,
  [sym_named_argument] = sym_named_argument,
  [sym__named_argument_list] = sym__named_argument_list,
  [sym_named_arguments] = sym_named_arguments,
  [sym_pragma_declaration] = sym_pragma_declaration,
  [sym_pragma_statement] = sym_pragma_statement,
  [sym_pragma_expression] = sym_pragma_expression,
  [sym_expression_list] = sym_expression_list,
  [sym_expression] = sym_expression,
  [sym__expr] = sym__expr,
  [sym_ternary_expression] = sym_ternary_expression,
  [sym_call_expression] = sym_call_expression,
  [sym_primary_expression] = sym_primary_expression,
  [sym__primary_expr] = sym__primary_expr,
  [sym_index_expression] = sym_index_expression,
  [sym_index] = sym_index,
  [sym_assignment_expression] = sym_assignment_expression,
  [sym_binary_expression] = sym_binary_expression,
  [sym_logical_or_expression] = sym_logical_or_expression,
  [sym_logical_and_expression] = sym_logical_and_expression,
  [sym_or_expression] = sym_or_expression,
  [sym_xor_expression] = sym_xor_expression,
  [sym_and_expression] = sym_and_expression,
  [sym_equal_expression] = sym_equal_expression,
  [sym_rel_expression] = sym_rel_expression,
  [sym_identity_expression] = sym_identity_expression,
  [sym_add_expression] = sym_add_expression,
  [sym_mul_expression] = sym_mul_expression,
  [sym_shift_expression] = sym_shift_expression,
  [sym_power_expression] = sym_power_expression,
  [sym_postfix_expression] = sym_postfix_expression,
  [sym_unary_expression] = sym_unary_expression,
  [sym__unary_expr] = sym__unary_expr,
  [sym_property_expression] = sym_property_expression,
  [sym_cast_expression] = sym_cast_expression,
  [sym_cast_qualifier] = sym_cast_qualifier,
  [sym_delete_expression] = sym_delete_expression,
  [sym_throw_expression] = sym_throw_expression,
  [sym_assert_expression] = sym_assert_expression,
  [sym_assert_arguments] = sym_assert_arguments,
  [sym_mixin_expression] = sym_mixin_expression,
  [sym_import_expression] = sym_import_expression,
  [sym_new_expression] = sym_new_expression,
  [sym_typeid_expression] = sym_typeid_expression,
  [sym_is_expression] = sym_is_expression,
  [sym_type_specialization] = sym_type_specialization,
  [sym_raw_string] = sym_raw_string,
  [sym_hex_string] = sym_hex_string,
  [sym_quoted_string] = sym_quoted_string,
  [sym_interpolation_expression] = sym_interpolation_expression,
  [sym_interpolated_raw_string] = sym_interpolated_raw_string,
  [sym_interpolated_quoted_string] = sym_interpolated_quoted_string,
  [sym_interpolated_token_string] = sym_interpolated_token_string,
  [aux_sym__i_token_string_tokens] = aux_sym__i_token_string_tokens,
  [sym_string_literal] = sym_string_literal,
  [sym_char_literal] = sym_char_literal,
  [sym_array_literal] = sym_array_literal,
  [sym__array_member_init] = sym__array_member_init,
  [sym_function_literal] = sym_function_literal,
  [sym__parameter_with_attributes] = sym__parameter_with_attributes,
  [sym__parameter_with_member_attributes] = sym__parameter_with_member_attributes,
  [sym_special_keyword] = sym_special_keyword,
  [sym__statement] = sym__statement,
  [aux_sym__declarations_and_statements] = aux_sym__declarations_and_statements,
  [sym__declaration_or_statement] = sym__declaration_or_statement,
  [sym_scope_statement] = sym_scope_statement,
  [sym__statement_no_case_no_default] = sym__statement_no_case_no_default,
  [sym_labeled_statement] = sym_labeled_statement,
  [sym_label] = sym_label,
  [sym_block_statement] = sym_block_statement,
  [sym_expression_statement] = sym_expression_statement,
  [sym_if_statement] = sym_if_statement,
  [sym_if_condition] = sym_if_condition,
  [sym_while_statement] = sym_while_statement,
  [sym_do_statement] = sym_do_statement,
  [sym_for_statement] = sym_for_statement,
  [sym__foreach] = sym__foreach,
  [sym_foreach_statement] = sym_foreach_statement,
  [sym_foreach_type] = sym_foreach_type,
  [sym_switch_statement] = sym_switch_statement,
  [sym_case_statement] = sym_case_statement,
  [sym_final_switch_statement] = sym_final_switch_statement,
  [sym_continue_statement] = sym_continue_statement,
  [sym_break_statement] = sym_break_statement,
  [sym_return_statement] = sym_return_statement,
  [sym_goto_statement] = sym_goto_statement,
  [sym_with_statement] = sym_with_statement,
  [sym_synchronized_statement] = sym_synchronized_statement,
  [sym_try_statement] = sym_try_statement,
  [sym_catch_statement] = sym_catch_statement,
  [sym_finally_statement] = sym_finally_statement,
  [sym_scope_guard_statement] = sym_scope_guard_statement,
  [sym_asm_statement] = sym_asm_statement,
  [sym_asm_inline] = sym_asm_inline,
  [sym_struct_declaration] = sym_struct_declaration,
  [sym_union_declaration] = sym_union_declaration,
  [sym_aggregate_body] = sym_aggregate_body,
  [sym_aggregate_initializer] = sym_aggregate_initializer,
  [sym_member_initializer] = sym_member_initializer,
  [sym_postblit] = sym_postblit,
  [sym_invariant_declaration] = sym_invariant_declaration,
  [sym_class_declaration] = sym_class_declaration,
  [sym__base_class_list] = sym__base_class_list,
  [sym_base_class] = sym_base_class,
  [sym_constructor] = sym_constructor,
  [sym_destructor] = sym_destructor,
  [sym_alias_this] = sym_alias_this,
  [sym_interface_declaration] = sym_interface_declaration,
  [sym_enum_declaration] = sym_enum_declaration,
  [sym__enum_body] = sym__enum_body,
  [sym__enum_member_attribute] = sym__enum_member_attribute,
  [sym_enum_member] = sym_enum_member,
  [sym_anonymous_enum_declaration] = sym_anonymous_enum_declaration,
  [sym_anonymous_enum_member] = sym_anonymous_enum_member,
  [sym_function_declaration] = sym_function_declaration,
  [sym_parameters] = sym_parameters,
  [sym__parameters] = sym__parameters,
  [sym_parameter] = sym_parameter,
  [sym_parameter_attribute] = sym_parameter_attribute,
  [sym_ellipses] = sym_ellipses,
  [aux_sym__variadic_arguments_attributes] = aux_sym__variadic_arguments_attributes,
  [sym_variadic_arguments_attribute] = sym_variadic_arguments_attribute,
  [sym__function_attribute] = sym__function_attribute,
  [sym_member_function_attribute] = sym_member_function_attribute,
  [sym_function_body] = sym_function_body,
  [sym__specified_function_body] = sym__specified_function_body,
  [sym__function_contract] = sym__function_contract,
  [aux_sym__in_out_contract_expressions] = aux_sym__in_out_contract_expressions,
  [sym__in_out_contract_expression] = sym__in_out_contract_expression,
  [sym__in_out_statement] = sym__in_out_statement,
  [sym_in_contract_expression] = sym_in_contract_expression,
  [sym_out_contract_expression] = sym_out_contract_expression,
  [sym_in_statement] = sym_in_statement,
  [sym_out_statement] = sym_out_statement,
  [sym_template_declaration] = sym_template_declaration,
  [sym_template_instance] = sym_template_instance,
  [sym_template_arguments] = sym_template_arguments,
  [sym_template_argument] = sym_template_argument,
  [sym__template_argument_list] = sym__template_argument_list,
  [sym__template_single_arg] = sym__template_single_arg,
  [sym_template_parameter] = sym_template_parameter,
  [sym_template_parameters] = sym_template_parameters,
  [sym__template_parameter_list] = sym__template_parameter_list,
  [sym_constraint] = sym_constraint,
  [sym_mixin_template_declaration] = sym_mixin_template_declaration,
  [sym_template_mixin] = sym_template_mixin,
  [sym_conditional_declaration] = sym_conditional_declaration,
  [sym_conditional_statement] = sym_conditional_statement,
  [sym_condition] = sym_condition,
  [sym_version_condition] = sym_version_condition,
  [sym_version_specification] = sym_version_specification,
  [sym_debug_condition] = sym_debug_condition,
  [sym_debug_specification] = sym_debug_specification,
  [sym_static_if_condition] = sym_static_if_condition,
  [sym_static_foreach_statement] = sym_static_foreach_statement,
  [sym_static_foreach_declaration] = sym_static_foreach_declaration,
  [sym_static_assert] = sym_static_assert,
  [sym_traits_expression] = sym_traits_expression,
  [sym_unittest_declaration] = sym_unittest_declaration,
  [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
  [aux_sym_module_declaration_repeat1] = aux_sym_module_declaration_repeat1,
  [aux_sym_module_fqn_repeat1] = aux_sym_module_fqn_repeat1,
  [aux_sym_import_declaration_repeat1] = aux_sym_import_declaration_repeat1,
  [aux_sym__import_list_repeat1] = aux_sym__import_list_repeat1,
  [aux_sym_variable_declaration_repeat1] = aux_sym_variable_declaration_repeat1,
  [aux_sym_variable_declaration_repeat2] = aux_sym_variable_declaration_repeat2,
  [aux_sym__declarator_identifier_list_repeat1] = aux_sym__declarator_identifier_list_repeat1,
  [aux_sym_manifest_constant_repeat1] = aux_sym_manifest_constant_repeat1,
  [aux_sym_auto_declaration_repeat1] = aux_sym_auto_declaration_repeat1,
  [aux_sym_alias_declaration_repeat1] = aux_sym_alias_declaration_repeat1,
  [aux_sym_alias_declaration_repeat2] = aux_sym_alias_declaration_repeat2,
  [aux_sym_type_repeat1] = aux_sym_type_repeat1,
  [aux_sym_type_repeat2] = aux_sym_type_repeat2,
  [aux_sym__type_suffix_repeat1] = aux_sym__type_suffix_repeat1,
  [aux_sym__argument_list_repeat1] = aux_sym__argument_list_repeat1,
  [aux_sym__named_argument_list_repeat1] = aux_sym__named_argument_list_repeat1,
  [aux_sym_expression_list_repeat1] = aux_sym_expression_list_repeat1,
  [aux_sym_index_expression_repeat1] = aux_sym_index_expression_repeat1,
  [aux_sym_quoted_string_repeat1] = aux_sym_quoted_string_repeat1,
  [aux_sym_interpolated_raw_string_repeat1] = aux_sym_interpolated_raw_string_repeat1,
  [aux_sym_interpolated_quoted_string_repeat1] = aux_sym_interpolated_quoted_string_repeat1,
  [aux_sym_array_literal_repeat1] = aux_sym_array_literal_repeat1,
  [aux_sym_foreach_statement_repeat1] = aux_sym_foreach_statement_repeat1,
  [aux_sym_foreach_type_repeat1] = aux_sym_foreach_type_repeat1,
  [aux_sym_case_statement_repeat1] = aux_sym_case_statement_repeat1,
  [aux_sym_try_statement_repeat1] = aux_sym_try_statement_repeat1,
  [aux_sym_asm_inline_repeat1] = aux_sym_asm_inline_repeat1,
  [aux_sym_aggregate_initializer_repeat1] = aux_sym_aggregate_initializer_repeat1,
  [aux_sym__base_class_list_repeat1] = aux_sym__base_class_list_repeat1,
  [aux_sym__enum_body_repeat1] = aux_sym__enum_body_repeat1,
  [aux_sym_enum_member_repeat1] = aux_sym_enum_member_repeat1,
  [aux_sym_anonymous_enum_declaration_repeat1] = aux_sym_anonymous_enum_declaration_repeat1,
  [aux_sym_parameters_repeat1] = aux_sym_parameters_repeat1,
  [aux_sym__parameters_repeat1] = aux_sym__parameters_repeat1,
  [aux_sym__parameter_repeat1] = aux_sym__parameter_repeat1,
  [aux_sym_function_body_repeat1] = aux_sym_function_body_repeat1,
  [aux_sym__template_argument_list_repeat1] = aux_sym__template_argument_list_repeat1,
  [aux_sym__template_parameter_list_repeat1] = aux_sym__template_parameter_list_repeat1,
  [aux_sym_template_mixin_repeat1] = aux_sym_template_mixin_repeat1,
  [alias_sym_namespace_list] = alias_sym_namespace_list,
};

static const TSSymbolMetadata ts_symbol_metadata[] = {
  [ts_builtin_sym_end] = {
    .visible = false,
    .named = true,
  },
  [sym_identifier] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_BOM] = {
    .visible = true,
    .named = false,
  },
  [sym_shebang] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_escape_sequence_token1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_escape_sequence_token2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_escape_sequence_token3] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_escape_sequence_token4] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_escape_sequence_token5] = {
    .visible = false,
    .named = false,
  },
  [sym_htmlentity] = {
    .visible = true,
    .named = true,
  },
  [sym_end_file] = {
    .visible = true,
    .named = true,
  },
  [sym_comment] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_q_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SLASH_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOT_DOT_DOT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AMP_AMP] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PIPE_PIPE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DASH_DASH] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PLUS_PLUS] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_LT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LT_LT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_GT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_GT_GT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_GT_GT_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANG_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_LBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_RBRACK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_QMARK] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COMMA] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_SEMI] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_COLON] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_DOLLAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_STAR_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PERCENT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_PERCENT_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET_CARET] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_CARET_CARET_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_TILDE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_TILDE_EQ] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_AT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_EQ_GT] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_POUND] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANGin] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BANGis] = {
    .visible = true,
    .named = false,
  },
  [sym_bool] = {
    .visible = true,
    .named = true,
  },
  [sym_byte] = {
    .visible = true,
    .named = true,
  },
  [sym_ubyte] = {
    .visible = true,
    .named = true,
  },
  [sym_char] = {
    .visible = true,
    .named = true,
  },
  [sym_short] = {
    .visible = true,
    .named = true,
  },
  [sym_ushort] = {
    .visible = true,
    .named = true,
  },
  [sym_int] = {
    .visible = true,
    .named = true,
  },
  [sym_uint] = {
    .visible = true,
    .named = true,
  },
  [sym_long] = {
    .visible = true,
    .named = true,
  },
  [sym_ulong] = {
    .visible = true,
    .named = true,
  },
  [sym_cent] = {
    .visible = true,
    .named = true,
  },
  [sym_ucent] = {
    .visible = true,
    .named = true,
  },
  [sym_wchar] = {
    .visible = true,
    .named = true,
  },
  [sym_dchar] = {
    .visible = true,
    .named = true,
  },
  [sym_float] = {
    .visible = true,
    .named = true,
  },
  [sym_double] = {
    .visible = true,
    .named = true,
  },
  [sym_real] = {
    .visible = true,
    .named = true,
  },
  [sym_ifloat] = {
    .visible = true,
    .named = true,
  },
  [sym_idouble] = {
    .visible = true,
    .named = true,
  },
  [sym_ireal] = {
    .visible = true,
    .named = true,
  },
  [sym_cfloat] = {
    .visible = true,
    .named = true,
  },
  [sym_cdouble] = {
    .visible = true,
    .named = true,
  },
  [sym_creal] = {
    .visible = true,
    .named = true,
  },
  [sym_size_t] = {
    .visible = true,
    .named = true,
  },
  [sym_ptrdiff_t] = {
    .visible = true,
    .named = true,
  },
  [sym_string] = {
    .visible = true,
    .named = true,
  },
  [sym_cstring] = {
    .visible = true,
    .named = true,
  },
  [sym_dstring] = {
    .visible = true,
    .named = true,
  },
  [sym_wstring] = {
    .visible = true,
    .named = true,
  },
  [sym_noreturn] = {
    .visible = true,
    .named = true,
  },
  [sym_true] = {
    .visible = true,
    .named = true,
  },
  [sym_false] = {
    .visible = true,
    .named = true,
  },
  [sym_null] = {
    .visible = true,
    .named = true,
  },
  [sym_super] = {
    .visible = true,
    .named = true,
  },
  [sym_this] = {
    .visible = true,
    .named = true,
  },
  [sym_abstract] = {
    .visible = true,
    .named = true,
  },
  [sym_alias] = {
    .visible = true,
    .named = true,
  },
  [sym_align] = {
    .visible = true,
    .named = true,
  },
  [sym_asm] = {
    .visible = true,
    .named = true,
  },
  [sym_assert] = {
    .visible = true,
    .named = true,
  },
  [sym_auto] = {
    .visible = true,
    .named = true,
  },
  [sym_break] = {
    .visible = true,
    .named = true,
  },
  [sym_case] = {
    .visible = true,
    .named = true,
  },
  [sym_cast] = {
    .visible = true,
    .named = true,
  },
  [sym_catch] = {
    .visible = true,
    .named = true,
  },
  [sym_class] = {
    .visible = true,
    .named = true,
  },
  [sym_const] = {
    .visible = true,
    .named = true,
  },
  [sym_continue] = {
    .visible = true,
    .named = true,
  },
  [sym_debug] = {
    .visible = true,
    .named = true,
  },
  [sym_default] = {
    .visible = true,
    .named = true,
  },
  [sym_delegate] = {
    .visible = true,
    .named = true,
  },
  [sym_delete] = {
    .visible = true,
    .named = true,
  },
  [sym_deprecated] = {
    .visible = true,
    .named = true,
  },
  [sym_do] = {
    .visible = true,
    .named = true,
  },
  [sym_else] = {
    .visible = true,
    .named = true,
  },
  [sym_enum] = {
    .visible = true,
    .named = true,
  },
  [sym_export] = {
    .visible = true,
    .named = true,
  },
  [sym_extern] = {
    .visible = true,
    .named = true,
  },
  [sym_final] = {
    .visible = true,
    .named = true,
  },
  [sym_finally] = {
    .visible = true,
    .named = true,
  },
  [sym_for] = {
    .visible = true,
    .named = true,
  },
  [sym_foreach] = {
    .visible = true,
    .named = true,
  },
  [sym_foreach_reverse] = {
    .visible = true,
    .named = true,
  },
  [sym_function] = {
    .visible = true,
    .named = true,
  },
  [sym_goto] = {
    .visible = true,
    .named = true,
  },
  [sym_if] = {
    .visible = true,
    .named = true,
  },
  [sym_immutable] = {
    .visible = true,
    .named = true,
  },
  [sym_import] = {
    .visible = true,
    .named = true,
  },
  [sym_in] = {
    .visible = true,
    .named = true,
  },
  [sym_inout] = {
    .visible = true,
    .named = true,
  },
  [sym_interface] = {
    .visible = true,
    .named = true,
  },
  [sym_invariant] = {
    .visible = true,
    .named = true,
  },
  [sym_is] = {
    .visible = true,
    .named = true,
  },
  [sym_lazy] = {
    .visible = true,
    .named = true,
  },
  [sym_mixin] = {
    .visible = true,
    .named = true,
  },
  [sym_module] = {
    .visible = true,
    .named = true,
  },
  [sym_new] = {
    .visible = true,
    .named = true,
  },
  [sym_nothrow] = {
    .visible = true,
    .named = true,
  },
  [sym_out] = {
    .visible = true,
    .named = true,
  },
  [sym_override] = {
    .visible = true,
    .named = true,
  },
  [sym_package] = {
    .visible = true,
    .named = true,
  },
  [sym_pragma] = {
    .visible = true,
    .named = true,
  },
  [sym_private] = {
    .visible = true,
    .named = true,
  },
  [sym_protected] = {
    .visible = true,
    .named = true,
  },
  [sym_public] = {
    .visible = true,
    .named = true,
  },
  [sym_pure] = {
    .visible = true,
    .named = true,
  },
  [sym_ref] = {
    .visible = true,
    .named = true,
  },
  [sym_return] = {
    .visible = true,
    .named = true,
  },
  [sym_scope] = {
    .visible = true,
    .named = true,
  },
  [sym_shared] = {
    .visible = true,
    .named = true,
  },
  [sym_static] = {
    .visible = true,
    .named = true,
  },
  [sym_struct] = {
    .visible = true,
    .named = true,
  },
  [sym_switch] = {
    .visible = true,
    .named = true,
  },
  [sym_synchronized] = {
    .visible = true,
    .named = true,
  },
  [sym_template] = {
    .visible = true,
    .named = true,
  },
  [sym_throw] = {
    .visible = true,
    .named = true,
  },
  [sym_try] = {
    .visible = true,
    .named = true,
  },
  [sym_typeid] = {
    .visible = true,
    .named = true,
  },
  [sym_typeof] = {
    .visible = true,
    .named = true,
  },
  [sym_union] = {
    .visible = true,
    .named = true,
  },
  [sym_unittest] = {
    .visible = true,
    .named = true,
  },
  [sym_version] = {
    .visible = true,
    .named = true,
  },
  [sym_while] = {
    .visible = true,
    .named = true,
  },
  [sym_with] = {
    .visible = true,
    .named = true,
  },
  [sym_parameters_] = {
    .visible = true,
    .named = true,
  },
  [sym_gshared] = {
    .visible = true,
    .named = true,
  },
  [sym_traits] = {
    .visible = true,
    .named = true,
  },
  [sym_vector] = {
    .visible = true,
    .named = true,
  },
  [sym_void] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_C] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_D] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_Windows] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_System] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_Objective] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_BQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_raw_string_token1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_raw_string_token2] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_r_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_raw_string_token3] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_raw_string_token4] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_x_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_hex_string_token1] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_quoted_string_token1] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_DOLLAR_LPAREN] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_i_BQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_interpolated_raw_string_token1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_interpolated_raw_string_token2] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_DOLLAR_BQUOTE] = {
    .visible = true,
    .named = false,
  },
  [sym_interpolated_escape] = {
    .visible = true,
    .named = true,
  },
  [anon_sym_i_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_interpolated_quoted_string_token1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_interpolated_quoted_string_token2] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_DOLLAR_DQUOTE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_iq_LBRACE] = {
    .visible = true,
    .named = false,
  },
  [aux_sym_char_literal_token1] = {
    .visible = false,
    .named = false,
  },
  [anon_sym_SQUOTE] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___DATE__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___FILE__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___FILE_FULL_PATH__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___FUNCTION__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___LINE__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___MODULE__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___PRETTY_FUNCTION__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___TIME__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___TIMESTAMP__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___VENDOR__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym___VERSION__] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_exit] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_success] = {
    .visible = true,
    .named = false,
  },
  [anon_sym_failure] = {
    .visible = true,
    .named = false,
  },
  [sym_directive] = {
    .visible = true,
    .named = true,
  },
  [sym_int_literal] = {
    .visible = true,
    .named = true,
  },
  [sym_float_literal] = {
    .visible = true,
    .named = true,
  },
  [sym__string] = {
    .visible = false,
    .named = true,
  },
  [sym_not_in] = {
    .visible = true,
    .named = true,
  },
  [sym_not_is] = {
    .visible = true,
    .named = true,
  },
  [sym__after_eof] = {
    .visible = false,
    .named = true,
  },
  [sym_error_sentinel] = {
    .visible = true,
    .named = true,
  },
  [sym_source_file] = {
    .visible = true,
    .named = true,
  },
  [sym__bom] = {
    .visible = false,
    .named = true,
  },
  [sym_escape_sequence] = {
    .visible = true,
    .named = true,
  },
  [sym_token_string] = {
    .visible = true,
    .named = true,
  },
  [aux_sym__token_string_tokens] = {
    .visible = false,
    .named = false,
  },
  [sym__token_string_token] = {
    .visible = false,
    .named = true,
  },
  [sym__token_no_braces] = {
    .visible = false,
    .named = true,
  },
  [sym_keyword] = {
    .visible = true,
    .named = true,
  },
  [sym_dollar] = {
    .visible = true,
    .named = true,
  },
  [sym_module_def] = {
    .visible = true,
    .named = true,
  },
  [sym_module_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_module_fqn] = {
    .visible = true,
    .named = true,
  },
  [sym_import_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym__import_list] = {
    .visible = false,
    .named = true,
  },
  [sym_imported] = {
    .visible = true,
    .named = true,
  },
  [sym_import_bind] = {
    .visible = true,
    .named = true,
  },
  [sym_mixin_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym__declaration] = {
    .visible = false,
    .named = true,
  },
  [sym__declaration2] = {
    .visible = false,
    .named = true,
  },
  [sym_variable_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_declarator] = {
    .visible = true,
    .named = true,
  },
  [sym_bitfield_declarator] = {
    .visible = true,
    .named = true,
  },
  [sym_manifest_constant] = {
    .visible = true,
    .named = true,
  },
  [sym_manifest_declarator] = {
    .visible = true,
    .named = true,
  },
  [sym_storage_class] = {
    .visible = true,
    .named = true,
  },
  [sym__initializer] = {
    .visible = false,
    .named = true,
  },
  [sym_auto_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym__auto_assignment] = {
    .visible = false,
    .named = true,
  },
  [sym_alias_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_alias_initializer] = {
    .visible = true,
    .named = true,
  },
  [sym_alias_reassign] = {
    .visible = true,
    .named = true,
  },
  [sym_type] = {
    .visible = true,
    .named = true,
  },
  [sym_type_ctor] = {
    .visible = true,
    .named = true,
  },
  [sym__type2] = {
    .visible = false,
    .named = true,
  },
  [sym_vector_type] = {
    .visible = true,
    .named = true,
  },
  [sym__builtin_type] = {
    .visible = false,
    .named = true,
  },
  [sym__type_suffix] = {
    .visible = false,
    .named = true,
  },
  [sym__qualified_id] = {
    .visible = false,
    .named = true,
  },
  [sym_typeof_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_attribute_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_align_attribute] = {
    .visible = true,
    .named = true,
  },
  [sym_deprecated_attribute] = {
    .visible = true,
    .named = true,
  },
  [sym__attribute] = {
    .visible = false,
    .named = true,
  },
  [sym_at_attribute] = {
    .visible = true,
    .named = true,
  },
  [sym__function_attribute_kwd] = {
    .visible = false,
    .named = true,
  },
  [sym_linkage_attribute] = {
    .visible = true,
    .named = true,
  },
  [sym__argument_list] = {
    .visible = false,
    .named = true,
  },
  [sym_arguments] = {
    .visible = true,
    .named = true,
  },
  [sym_named_argument] = {
    .visible = true,
    .named = true,
  },
  [sym__named_argument_list] = {
    .visible = false,
    .named = true,
  },
  [sym_named_arguments] = {
    .visible = true,
    .named = true,
  },
  [sym_pragma_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_pragma_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_pragma_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_expression_list] = {
    .visible = true,
    .named = true,
  },
  [sym_expression] = {
    .visible = true,
    .named = true,
  },
  [sym__expr] = {
    .visible = false,
    .named = true,
  },
  [sym_ternary_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_call_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_primary_expression] = {
    .visible = true,
    .named = true,
  },
  [sym__primary_expr] = {
    .visible = false,
    .named = true,
  },
  [sym_index_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_index] = {
    .visible = true,
    .named = true,
  },
  [sym_assignment_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_binary_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_logical_or_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_logical_and_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_or_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_xor_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_and_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_equal_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_rel_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_identity_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_add_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_mul_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_shift_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_power_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_postfix_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_unary_expression] = {
    .visible = true,
    .named = true,
  },
  [sym__unary_expr] = {
    .visible = false,
    .named = true,
  },
  [sym_property_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_cast_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_cast_qualifier] = {
    .visible = true,
    .named = true,
  },
  [sym_delete_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_throw_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_assert_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_assert_arguments] = {
    .visible = true,
    .named = true,
  },
  [sym_mixin_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_import_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_new_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_typeid_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_is_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_type_specialization] = {
    .visible = true,
    .named = true,
  },
  [sym_raw_string] = {
    .visible = true,
    .named = true,
  },
  [sym_hex_string] = {
    .visible = true,
    .named = true,
  },
  [sym_quoted_string] = {
    .visible = true,
    .named = true,
  },
  [sym_interpolation_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_interpolated_raw_string] = {
    .visible = true,
    .named = true,
  },
  [sym_interpolated_quoted_string] = {
    .visible = true,
    .named = true,
  },
  [sym_interpolated_token_string] = {
    .visible = true,
    .named = true,
  },
  [aux_sym__i_token_string_tokens] = {
    .visible = false,
    .named = false,
  },
  [sym_string_literal] = {
    .visible = true,
    .named = true,
  },
  [sym_char_literal] = {
    .visible = true,
    .named = true,
  },
  [sym_array_literal] = {
    .visible = true,
    .named = true,
  },
  [sym__array_member_init] = {
    .visible = false,
    .named = true,
  },
  [sym_function_literal] = {
    .visible = true,
    .named = true,
  },
  [sym__parameter_with_attributes] = {
    .visible = false,
    .named = true,
  },
  [sym__parameter_with_member_attributes] = {
    .visible = false,
    .named = true,
  },
  [sym_special_keyword] = {
    .visible = true,
    .named = true,
  },
  [sym__statement] = {
    .visible = false,
    .named = true,
  },
  [aux_sym__declarations_and_statements] = {
    .visible = false,
    .named = false,
  },
  [sym__declaration_or_statement] = {
    .visible = false,
    .named = true,
  },
  [sym_scope_statement] = {
    .visible = true,
    .named = true,
  },
  [sym__statement_no_case_no_default] = {
    .visible = false,
    .named = true,
  },
  [sym_labeled_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_label] = {
    .visible = true,
    .named = true,
  },
  [sym_block_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_expression_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_if_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_if_condition] = {
    .visible = true,
    .named = true,
  },
  [sym_while_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_do_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_for_statement] = {
    .visible = true,
    .named = true,
  },
  [sym__foreach] = {
    .visible = false,
    .named = true,
  },
  [sym_foreach_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_foreach_type] = {
    .visible = true,
    .named = true,
  },
  [sym_switch_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_case_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_final_switch_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_continue_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_break_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_return_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_goto_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_with_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_synchronized_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_try_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_catch_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_finally_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_scope_guard_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_asm_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_asm_inline] = {
    .visible = true,
    .named = true,
  },
  [sym_struct_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_union_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_aggregate_body] = {
    .visible = true,
    .named = true,
  },
  [sym_aggregate_initializer] = {
    .visible = true,
    .named = true,
  },
  [sym_member_initializer] = {
    .visible = true,
    .named = true,
  },
  [sym_postblit] = {
    .visible = true,
    .named = true,
  },
  [sym_invariant_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_class_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym__base_class_list] = {
    .visible = false,
    .named = true,
  },
  [sym_base_class] = {
    .visible = true,
    .named = true,
  },
  [sym_constructor] = {
    .visible = true,
    .named = true,
  },
  [sym_destructor] = {
    .visible = true,
    .named = true,
  },
  [sym_alias_this] = {
    .visible = true,
    .named = true,
  },
  [sym_interface_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_enum_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym__enum_body] = {
    .visible = false,
    .named = true,
  },
  [sym__enum_member_attribute] = {
    .visible = false,
    .named = true,
  },
  [sym_enum_member] = {
    .visible = true,
    .named = true,
  },
  [sym_anonymous_enum_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_anonymous_enum_member] = {
    .visible = true,
    .named = true,
  },
  [sym_function_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_parameters] = {
    .visible = true,
    .named = true,
  },
  [sym__parameters] = {
    .visible = false,
    .named = true,
  },
  [sym_parameter] = {
    .visible = true,
    .named = true,
  },
  [sym_parameter_attribute] = {
    .visible = true,
    .named = true,
  },
  [sym_ellipses] = {
    .visible = true,
    .named = true,
  },
  [aux_sym__variadic_arguments_attributes] = {
    .visible = false,
    .named = false,
  },
  [sym_variadic_arguments_attribute] = {
    .visible = true,
    .named = true,
  },
  [sym__function_attribute] = {
    .visible = false,
    .named = true,
  },
  [sym_member_function_attribute] = {
    .visible = true,
    .named = true,
  },
  [sym_function_body] = {
    .visible = true,
    .named = true,
  },
  [sym__specified_function_body] = {
    .visible = false,
    .named = true,
  },
  [sym__function_contract] = {
    .visible = false,
    .named = true,
  },
  [aux_sym__in_out_contract_expressions] = {
    .visible = false,
    .named = false,
  },
  [sym__in_out_contract_expression] = {
    .visible = false,
    .named = true,
  },
  [sym__in_out_statement] = {
    .visible = false,
    .named = true,
  },
  [sym_in_contract_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_out_contract_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_in_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_out_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_template_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_template_instance] = {
    .visible = true,
    .named = true,
  },
  [sym_template_arguments] = {
    .visible = true,
    .named = true,
  },
  [sym_template_argument] = {
    .visible = true,
    .named = true,
  },
  [sym__template_argument_list] = {
    .visible = false,
    .named = true,
  },
  [sym__template_single_arg] = {
    .visible = false,
    .named = true,
  },
  [sym_template_parameter] = {
    .visible = true,
    .named = true,
  },
  [sym_template_parameters] = {
    .visible = true,
    .named = true,
  },
  [sym__template_parameter_list] = {
    .visible = false,
    .named = true,
  },
  [sym_constraint] = {
    .visible = true,
    .named = true,
  },
  [sym_mixin_template_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_template_mixin] = {
    .visible = true,
    .named = true,
  },
  [sym_conditional_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_conditional_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_condition] = {
    .visible = true,
    .named = true,
  },
  [sym_version_condition] = {
    .visible = true,
    .named = true,
  },
  [sym_version_specification] = {
    .visible = true,
    .named = true,
  },
  [sym_debug_condition] = {
    .visible = true,
    .named = true,
  },
  [sym_debug_specification] = {
    .visible = true,
    .named = true,
  },
  [sym_static_if_condition] = {
    .visible = true,
    .named = true,
  },
  [sym_static_foreach_statement] = {
    .visible = true,
    .named = true,
  },
  [sym_static_foreach_declaration] = {
    .visible = true,
    .named = true,
  },
  [sym_static_assert] = {
    .visible = true,
    .named = true,
  },
  [sym_traits_expression] = {
    .visible = true,
    .named = true,
  },
  [sym_unittest_declaration] = {
    .visible = true,
    .named = true,
  },
  [aux_sym_source_file_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_module_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_module_fqn_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_import_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__import_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_variable_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_variable_declaration_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__declarator_identifier_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_manifest_constant_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_auto_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_alias_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_alias_declaration_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_type_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_type_repeat2] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__type_suffix_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__argument_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__named_argument_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_expression_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_index_expression_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_quoted_string_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_interpolated_raw_string_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_interpolated_quoted_string_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_array_literal_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_foreach_statement_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_foreach_type_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_case_statement_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_try_statement_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_asm_inline_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_aggregate_initializer_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__base_class_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__enum_body_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_enum_member_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_anonymous_enum_declaration_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_parameters_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__parameters_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__parameter_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_function_body_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__template_argument_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym__template_parameter_list_repeat1] = {
    .visible = false,
    .named = false,
  },
  [aux_sym_template_mixin_repeat1] = {
    .visible = false,
    .named = false,
  },
  [alias_sym_namespace_list] = {
    .visible = true,
    .named = true,
  },
};

enum ts_field_identifiers {
  field_alias = 1,
  field_alternative = 2,
  field_body = 3,
  field_condition = 4,
  field_consequence = 5,
  field_init = 6,
  field_key = 7,
  field_operand = 8,
  field_operator = 9,
  field_step = 10,
  field_test = 11,
  field_value = 12,
  field_variable = 13,
};

static const char * const ts_field_names[] = {
  [0] = NULL,
  [field_alias] = "alias",
  [field_alternative] = "alternative",
  [field_body] = "body",
  [field_condition] = "condition",
  [field_consequence] = "consequence",
  [field_init] = "init",
  [field_key] = "key",
  [field_operand] = "operand",
  [field_operator] = "operator",
  [field_step] = "step",
  [field_test] = "test",
  [field_value] = "value",
  [field_variable] = "variable",
};

static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
  [1] = {.index = 0, .length = 2},
  [2] = {.index = 2, .length = 1},
  [3] = {.index = 3, .length = 1},
  [4] = {.index = 4, .length = 1},
  [5] = {.index = 5, .length = 1},
  [6] = {.index = 6, .length = 1},
  [7] = {.index = 7, .length = 1},
  [8] = {.index = 8, .length = 2},
  [9] = {.index = 10, .length = 2},
  [10] = {.index = 12, .length = 4},
  [11] = {.index = 16, .length = 4},
  [12] = {.index = 20, .length = 2},
  [13] = {.index = 22, .length = 1},
  [14] = {.index = 23, .length = 1},
  [15] = {.index = 24, .length = 4},
  [16] = {.index = 28, .length = 2},
  [17] = {.index = 30, .length = 2},
  [18] = {.index = 32, .length = 4},
  [19] = {.index = 36, .length = 4},
  [20] = {.index = 40, .length = 1},
  [21] = {.index = 41, .length = 2},
  [22] = {.index = 43, .length = 1},
  [23] = {.index = 44, .length = 3},
  [25] = {.index = 47, .length = 1},
  [26] = {.index = 48, .length = 2},
  [27] = {.index = 50, .length = 2},
  [28] = {.index = 52, .length = 2},
  [29] = {.index = 54, .length = 1},
  [30] = {.index = 55, .length = 2},
  [31] = {.index = 57, .length = 2},
  [32] = {.index = 59, .length = 3},
  [33] = {.index = 62, .length = 2},
  [34] = {.index = 64, .length = 2},
  [35] = {.index = 66, .length = 3},
  [36] = {.index = 69, .length = 3},
  [37] = {.index = 72, .length = 1},
  [38] = {.index = 73, .length = 3},
  [39] = {.index = 76, .length = 4},
  [40] = {.index = 80, .length = 1},
  [41] = {.index = 81, .length = 1},
};

static const TSFieldMapEntry ts_field_map_entries[] = {
  [0] =
    {field_value, 1, .inherited = true},
    {field_variable, 1, .inherited = true},
  [2] =
    {field_operator, 0},
  [3] =
    {field_value, 0},
  [4] =
    {field_operator, 1},
  [5] =
    {field_alias, 0},
  [6] =
    {field_body, 1},
  [7] =
    {field_consequence, 1},
  [8] =
    {field_value, 2, .inherited = true},
    {field_variable, 2, .inherited = true},
  [10] =
    {field_value, 2},
    {field_variable, 0},
  [12] =
    {field_value, 1, .inherited = true},
    {field_value, 2, .inherited = true},
    {field_variable, 1, .inherited = true},
    {field_variable, 2, .inherited = true},
  [16] =
    {field_value, 0, .inherited = true},
    {field_value, 1, .inherited = true},
    {field_variable, 0, .inherited = true},
    {field_variable, 1, .inherited = true},
  [20] =
    {field_key, 1, .inherited = true},
    {field_value, 1, .inherited = true},
  [22] =
    {field_consequence, 2},
  [23] =
    {field_body, 2},
  [24] =
    {field_value, 2, .inherited = true},
    {field_value, 3, .inherited = true},
    {field_variable, 2, .inherited = true},
    {field_variable, 3, .inherited = true},
  [28] =
    {field_value, 3},
    {field_variable, 0},
  [30] =
    {field_key, 0},
    {field_value, 2},
  [32] =
    {field_key, 1, .inherited = true},
    {field_key, 2, .inherited = true},
    {field_value, 1, .inherited = true},
    {field_value, 2, .inherited = true},
  [36] =
    {field_key, 0, .inherited = true},
    {field_key, 1, .inherited = true},
    {field_value, 0, .inherited = true},
    {field_value, 1, .inherited = true},
  [40] =
    {field_operand, 3},
  [41] =
    {field_alternative, 3},
    {field_consequence, 1},
  [43] =
    {field_operand, 4},
  [44] =
    {field_alternative, 4},
    {field_condition, 0},
    {field_consequence, 2},
  [47] =
    {field_body, 4},
  [48] =
    {field_body, 4},
    {field_init, 2},
  [50] =
    {field_alternative, 4},
    {field_consequence, 2},
  [52] =
    {field_body, 1},
    {field_condition, 4},
  [54] =
    {field_body, 5},
  [55] =
    {field_body, 5},
    {field_test, 3},
  [57] =
    {field_body, 5},
    {field_init, 2},
  [59] =
    {field_body, 5},
    {field_init, 2},
    {field_test, 3},
  [62] =
    {field_body, 6},
    {field_step, 4},
  [64] =
    {field_body, 6},
    {field_test, 3},
  [66] =
    {field_body, 6},
    {field_init, 2},
    {field_step, 4},
  [69] =
    {field_body, 6},
    {field_init, 2},
    {field_test, 3},
  [72] =
    {field_body, 6},
  [73] =
    {field_body, 7},
    {field_step, 5},
    {field_test, 3},
  [76] =
    {field_body, 7},
    {field_init, 2},
    {field_step, 5},
    {field_test, 3},
  [80] =
    {field_body, 7},
  [81] =
    {field_body, 8},
};

static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
  [0] = {0},
  [24] = {
    [5] = alias_sym_namespace_list,
  },
};

static const uint16_t ts_non_terminal_alias_map[] = {
  sym__argument_list, 2,
    sym__argument_list,
    alias_sym_namespace_list,
  0,
};

static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
  [0] = 0,
  [1] = 1,
  [2] = 2,
  [3] = 2,
  [4] = 4,
  [5] = 5,
  [6] = 6,
  [7] = 7,
  [8] = 4,
  [9] = 4,
  [10] = 7,
  [11] = 11,
  [12] = 11,
  [13] = 6,
  [14] = 11,
  [15] = 11,
  [16] = 11,
  [17] = 11,
  [18] = 18,
  [19] = 11,
  [20] = 11,
  [21] = 21,
  [22] = 6,
  [23] = 23,
  [24] = 18,
  [25] = 18,
  [26] = 11,
  [27] = 6,
  [28] = 7,
  [29] = 29,
  [30] = 30,
  [31] = 31,
  [32] = 32,
  [33] = 33,
  [34] = 34,
  [35] = 4,
  [36] = 11,
  [37] = 11,
  [38] = 18,
  [39] = 6,
  [40] = 7,
  [41] = 11,
  [42] = 7,
  [43] = 4,
  [44] = 18,
  [45] = 45,
  [46] = 46,
  [47] = 47,
  [48] = 48,
  [49] = 49,
  [50] = 50,
  [51] = 46,
  [52] = 50,
  [53] = 46,
  [54] = 49,
  [55] = 48,
  [56] = 45,
  [57] = 48,
  [58] = 32,
  [59] = 48,
  [60] = 47,
  [61] = 50,
  [62] = 46,
  [63] = 49,
  [64] = 45,
  [65] = 48,
  [66] = 47,
  [67] = 31,
  [68] = 50,
  [69] = 46,
  [70] = 49,
  [71] = 48,
  [72] = 30,
  [73] = 45,
  [74] = 49,
  [75] = 46,
  [76] = 50,
  [77] = 48,
  [78] = 33,
  [79] = 47,
  [80] = 34,
  [81] = 45,
  [82] = 45,
  [83] = 48,
  [84] = 47,
  [85] = 29,
  [86] = 47,
  [87] = 50,
  [88] = 45,
  [89] = 49,
  [90] = 5,
  [91] = 45,
  [92] = 48,
  [93] = 48,
  [94] = 23,
  [95] = 49,
  [96] = 45,
  [97] = 47,
  [98] = 47,
  [99] = 50,
  [100] = 46,
  [101] = 46,
  [102] = 50,
  [103] = 46,
  [104] = 49,
  [105] = 47,
  [106] = 50,
  [107] = 45,
  [108] = 21,
  [109] = 45,
  [110] = 46,
  [111] = 50,
  [112] = 48,
  [113] = 45,
  [114] = 47,
  [115] = 50,
  [116] = 45,
  [117] = 47,
  [118] = 118,
  [119] = 46,
  [120] = 50,
  [121] = 46,
  [122] = 49,
  [123] = 49,
  [124] = 48,
  [125] = 47,
  [126] = 50,
  [127] = 46,
  [128] = 49,
  [129] = 47,
  [130] = 49,
  [131] = 131,
  [132] = 132,
  [133] = 133,
  [134] = 134,
  [135] = 135,
  [136] = 136,
  [137] = 137,
  [138] = 138,
  [139] = 139,
  [140] = 140,
  [141] = 141,
  [142] = 142,
  [143] = 143,
  [144] = 144,
  [145] = 145,
  [146] = 132,
  [147] = 131,
  [148] = 148,
  [149] = 149,
  [150] = 150,
  [151] = 151,
  [152] = 152,
  [153] = 153,
  [154] = 153,
  [155] = 155,
  [156] = 156,
  [157] = 157,
  [158] = 23,
  [159] = 5,
  [160] = 152,
  [161] = 161,
  [162] = 149,
  [163] = 161,
  [164] = 157,
  [165] = 156,
  [166] = 155,
  [167] = 150,
  [168] = 151,
  [169] = 169,
  [170] = 133,
  [171] = 134,
  [172] = 135,
  [173] = 136,
  [174] = 137,
  [175] = 138,
  [176] = 139,
  [177] = 140,
  [178] = 141,
  [179] = 142,
  [180] = 143,
  [181] = 144,
  [182] = 145,
  [183] = 132,
  [184] = 131,
  [185] = 148,
  [186] = 149,
  [187] = 187,
  [188] = 148,
  [189] = 152,
  [190] = 29,
  [191] = 161,
  [192] = 192,
  [193] = 193,
  [194] = 30,
  [195] = 157,
  [196] = 31,
  [197] = 152,
  [198] = 131,
  [199] = 193,
  [200] = 132,
  [201] = 145,
  [202] = 156,
  [203] = 161,
  [204] = 157,
  [205] = 156,
  [206] = 155,
  [207] = 150,
  [208] = 144,
  [209] = 192,
  [210] = 151,
  [211] = 169,
  [212] = 133,
  [213] = 134,
  [214] = 135,
  [215] = 136,
  [216] = 137,
  [217] = 138,
  [218] = 139,
  [219] = 140,
  [220] = 141,
  [221] = 142,
  [222] = 143,
  [223] = 144,
  [224] = 145,
  [225] = 132,
  [226] = 131,
  [227] = 148,
  [228] = 149,
  [229] = 143,
  [230] = 230,
  [231] = 152,
  [232] = 142,
  [233] = 32,
  [234] = 155,
  [235] = 192,
  [236] = 141,
  [237] = 149,
  [238] = 140,
  [239] = 139,
  [240] = 148,
  [241] = 187,
  [242] = 161,
  [243] = 157,
  [244] = 156,
  [245] = 155,
  [246] = 150,
  [247] = 151,
  [248] = 150,
  [249] = 169,
  [250] = 133,
  [251] = 134,
  [252] = 135,
  [253] = 136,
  [254] = 137,
  [255] = 138,
  [256] = 139,
  [257] = 140,
  [258] = 141,
  [259] = 142,
  [260] = 143,
  [261] = 144,
  [262] = 145,
  [263] = 132,
  [264] = 131,
  [265] = 148,
  [266] = 149,
  [267] = 267,
  [268] = 187,
  [269] = 152,
  [270] = 138,
  [271] = 137,
  [272] = 192,
  [273] = 230,
  [274] = 136,
  [275] = 193,
  [276] = 135,
  [277] = 152,
  [278] = 132,
  [279] = 267,
  [280] = 161,
  [281] = 157,
  [282] = 156,
  [283] = 155,
  [284] = 150,
  [285] = 151,
  [286] = 169,
  [287] = 133,
  [288] = 134,
  [289] = 135,
  [290] = 136,
  [291] = 137,
  [292] = 138,
  [293] = 139,
  [294] = 140,
  [295] = 141,
  [296] = 142,
  [297] = 143,
  [298] = 144,
  [299] = 145,
  [300] = 132,
  [301] = 131,
  [302] = 148,
  [303] = 149,
  [304] = 132,
  [305] = 192,
  [306] = 152,
  [307] = 134,
  [308] = 145,
  [309] = 230,
  [310] = 267,
  [311] = 193,
  [312] = 144,
  [313] = 133,
  [314] = 143,
  [315] = 142,
  [316] = 267,
  [317] = 187,
  [318] = 192,
  [319] = 161,
  [320] = 157,
  [321] = 156,
  [322] = 230,
  [323] = 155,
  [324] = 150,
  [325] = 151,
  [326] = 169,
  [327] = 133,
  [328] = 134,
  [329] = 135,
  [330] = 136,
  [331] = 137,
  [332] = 138,
  [333] = 139,
  [334] = 140,
  [335] = 141,
  [336] = 142,
  [337] = 153,
  [338] = 143,
  [339] = 144,
  [340] = 145,
  [341] = 132,
  [342] = 131,
  [343] = 148,
  [344] = 33,
  [345] = 149,
  [346] = 193,
  [347] = 192,
  [348] = 169,
  [349] = 230,
  [350] = 151,
  [351] = 152,
  [352] = 193,
  [353] = 151,
  [354] = 150,
  [355] = 141,
  [356] = 169,
  [357] = 230,
  [358] = 187,
  [359] = 155,
  [360] = 140,
  [361] = 133,
  [362] = 267,
  [363] = 34,
  [364] = 230,
  [365] = 139,
  [366] = 156,
  [367] = 138,
  [368] = 137,
  [369] = 134,
  [370] = 192,
  [371] = 230,
  [372] = 135,
  [373] = 161,
  [374] = 157,
  [375] = 156,
  [376] = 136,
  [377] = 155,
  [378] = 150,
  [379] = 151,
  [380] = 169,
  [381] = 133,
  [382] = 134,
  [383] = 135,
  [384] = 136,
  [385] = 137,
  [386] = 138,
  [387] = 139,
  [388] = 140,
  [389] = 141,
  [390] = 142,
  [391] = 143,
  [392] = 144,
  [393] = 145,
  [394] = 132,
  [395] = 131,
  [396] = 148,
  [397] = 149,
  [398] = 136,
  [399] = 230,
  [400] = 137,
  [401] = 138,
  [402] = 152,
  [403] = 193,
  [404] = 135,
  [405] = 157,
  [406] = 134,
  [407] = 139,
  [408] = 140,
  [409] = 141,
  [410] = 161,
  [411] = 230,
  [412] = 192,
  [413] = 133,
  [414] = 142,
  [415] = 152,
  [416] = 169,
  [417] = 151,
  [418] = 143,
  [419] = 192,
  [420] = 144,
  [421] = 145,
  [422] = 161,
  [423] = 157,
  [424] = 156,
  [425] = 153,
  [426] = 155,
  [427] = 187,
  [428] = 150,
  [429] = 151,
  [430] = 169,
  [431] = 133,
  [432] = 267,
  [433] = 134,
  [434] = 135,
  [435] = 136,
  [436] = 137,
  [437] = 138,
  [438] = 139,
  [439] = 140,
  [440] = 141,
  [441] = 150,
  [442] = 142,
  [443] = 155,
  [444] = 143,
  [445] = 144,
  [446] = 145,
  [447] = 169,
  [448] = 131,
  [449] = 131,
  [450] = 156,
  [451] = 148,
  [452] = 149,
  [453] = 157,
  [454] = 161,
  [455] = 192,
  [456] = 149,
  [457] = 193,
  [458] = 148,
  [459] = 152,
  [460] = 193,
  [461] = 193,
  [462] = 131,
  [463] = 193,
  [464] = 132,
  [465] = 230,
  [466] = 145,
  [467] = 144,
  [468] = 143,
  [469] = 142,
  [470] = 230,
  [471] = 141,
  [472] = 140,
  [473] = 139,
  [474] = 138,
  [475] = 137,
  [476] = 136,
  [477] = 148,
  [478] = 193,
  [479] = 21,
  [480] = 135,
  [481] = 149,
  [482] = 192,
  [483] = 161,
  [484] = 157,
  [485] = 156,
  [486] = 155,
  [487] = 150,
  [488] = 151,
  [489] = 169,
  [490] = 133,
  [491] = 134,
  [492] = 34,
  [493] = 493,
  [494] = 493,
  [495] = 493,
  [496] = 21,
  [497] = 493,
  [498] = 493,
  [499] = 493,
  [500] = 29,
  [501] = 493,
  [502] = 493,
  [503] = 30,
  [504] = 33,
  [505] = 493,
  [506] = 23,
  [507] = 31,
  [508] = 493,
  [509] = 493,
  [510] = 32,
  [511] = 493,
  [512] = 5,
  [513] = 513,
  [514] = 513,
  [515] = 513,
  [516] = 513,
  [517] = 513,
  [518] = 513,
  [519] = 513,
  [520] = 513,
  [521] = 513,
  [522] = 513,
  [523] = 513,
  [524] = 513,
  [525] = 525,
  [526] = 526,
  [527] = 526,
  [528] = 526,
  [529] = 529,
  [530] = 529,
  [531] = 529,
  [532] = 529,
  [533] = 526,
  [534] = 529,
  [535] = 529,
  [536] = 529,
  [537] = 526,
  [538] = 526,
  [539] = 526,
  [540] = 526,
  [541] = 529,
  [542] = 529,
  [543] = 529,
  [544] = 526,
  [545] = 526,
  [546] = 529,
  [547] = 529,
  [548] = 529,
  [549] = 526,
  [550] = 550,
  [551] = 526,
  [552] = 526,
  [553] = 553,
  [554] = 553,
  [555] = 555,
  [556] = 556,
  [557] = 555,
  [558] = 553,
  [559] = 556,
  [560] = 553,
  [561] = 556,
  [562] = 553,
  [563] = 553,
  [564] = 556,
  [565] = 553,
  [566] = 566,
  [567] = 553,
  [568] = 556,
  [569] = 553,
  [570] = 556,
  [571] = 556,
  [572] = 572,
  [573] = 553,
  [574] = 556,
  [575] = 556,
  [576] = 553,
  [577] = 572,
  [578] = 556,
  [579] = 556,
  [580] = 553,
  [581] = 556,
  [582] = 553,
  [583] = 556,
  [584] = 584,
  [585] = 585,
  [586] = 586,
  [587] = 587,
  [588] = 588,
  [589] = 588,
  [590] = 590,
  [591] = 588,
  [592] = 587,
  [593] = 587,
  [594] = 594,
  [595] = 587,
  [596] = 596,
  [597] = 597,
  [598] = 598,
  [599] = 588,
  [600] = 600,
  [601] = 601,
  [602] = 602,
  [603] = 603,
  [604] = 604,
  [605] = 596,
  [606] = 586,
  [607] = 590,
  [608] = 585,
  [609] = 594,
  [610] = 602,
  [611] = 601,
  [612] = 600,
  [613] = 584,
  [614] = 598,
  [615] = 597,
  [616] = 616,
  [617] = 616,
  [618] = 616,
  [619] = 616,
  [620] = 620,
  [621] = 621,
  [622] = 622,
  [623] = 623,
  [624] = 624,
  [625] = 625,
  [626] = 626,
  [627] = 627,
  [628] = 628,
  [629] = 629,
  [630] = 630,
  [631] = 631,
  [632] = 632,
  [633] = 633,
  [634] = 634,
  [635] = 635,
  [636] = 636,
  [637] = 637,
  [638] = 638,
  [639] = 639,
  [640] = 640,
  [641] = 640,
  [642] = 621,
  [643] = 627,
  [644] = 626,
  [645] = 622,
  [646] = 634,
  [647] = 629,
  [648] = 635,
  [649] = 624,
  [650] = 625,
  [651] = 636,
  [652] = 637,
  [653] = 620,
  [654] = 628,
  [655] = 631,
  [656] = 632,
  [657] = 633,
  [658] = 639,
  [659] = 623,
  [660] = 630,
  [661] = 661,
  [662] = 662,
  [663] = 663,
  [664] = 664,
  [665] = 665,
  [666] = 666,
  [667] = 667,
  [668] = 668,
  [669] = 669,
  [670] = 663,
  [671] = 668,
  [672] = 672,
  [673] = 672,
  [674] = 672,
  [675] = 672,
  [676] = 663,
  [677] = 672,
  [678] = 669,
  [679] = 672,
  [680] = 666,
  [681] = 661,
  [682] = 662,
  [683] = 664,
  [684] = 672,
  [685] = 672,
  [686] = 672,
  [687] = 667,
  [688] = 672,
  [689] = 663,
  [690] = 672,
  [691] = 672,
  [692] = 665,
  [693] = 693,
  [694] = 693,
  [695] = 693,
  [696] = 696,
  [697] = 662,
  [698] = 698,
  [699] = 698,
  [700] = 700,
  [701] = 701,
  [702] = 700,
  [703] = 703,
  [704] = 700,
  [705] = 703,
  [706] = 706,
  [707] = 701,
  [708] = 708,
  [709] = 706,
  [710] = 706,
  [711] = 701,
  [712] = 703,
  [713] = 713,
  [714] = 714,
  [715] = 715,
  [716] = 715,
  [717] = 717,
  [718] = 715,
  [719] = 719,
  [720] = 720,
  [721] = 721,
  [722] = 721,
  [723] = 714,
  [724] = 724,
  [725] = 714,
  [726] = 719,
  [727] = 721,
  [728] = 714,
  [729] = 724,
  [730] = 714,
  [731] = 719,
  [732] = 721,
  [733] = 724,
  [734] = 719,
  [735] = 735,
  [736] = 721,
  [737] = 724,
  [738] = 719,
  [739] = 721,
  [740] = 724,
  [741] = 717,
  [742] = 742,
  [743] = 715,
  [744] = 744,
  [745] = 719,
  [746] = 721,
  [747] = 724,
  [748] = 719,
  [749] = 719,
  [750] = 719,
  [751] = 719,
  [752] = 715,
  [753] = 714,
  [754] = 754,
  [755] = 720,
  [756] = 754,
  [757] = 714,
  [758] = 715,
  [759] = 759,
  [760] = 714,
  [761] = 715,
  [762] = 715,
  [763] = 714,
  [764] = 715,
  [765] = 719,
  [766] = 715,
  [767] = 714,
  [768] = 715,
  [769] = 714,
  [770] = 717,
  [771] = 724,
  [772] = 720,
  [773] = 719,
  [774] = 754,
  [775] = 775,
  [776] = 776,
  [777] = 777,
  [778] = 778,
  [779] = 779,
  [780] = 780,
  [781] = 779,
  [782] = 778,
  [783] = 783,
  [784] = 783,
  [785] = 785,
  [786] = 786,
  [787] = 787,
  [788] = 776,
  [789] = 789,
  [790] = 777,
  [791] = 791,
  [792] = 792,
  [793] = 791,
  [794] = 787,
  [795] = 783,
  [796] = 779,
  [797] = 777,
  [798] = 791,
  [799] = 799,
  [800] = 787,
  [801] = 801,
  [802] = 777,
  [803] = 776,
  [804] = 804,
  [805] = 799,
  [806] = 787,
  [807] = 778,
  [808] = 808,
  [809] = 777,
  [810] = 783,
  [811] = 787,
  [812] = 777,
  [813] = 783,
  [814] = 814,
  [815] = 815,
  [816] = 787,
  [817] = 791,
  [818] = 775,
  [819] = 819,
  [820] = 783,
  [821] = 821,
  [822] = 775,
  [823] = 779,
  [824] = 787,
  [825] = 825,
  [826] = 776,
  [827] = 801,
  [828] = 828,
  [829] = 819,
  [830] = 783,
  [831] = 831,
  [832] = 785,
  [833] = 833,
  [834] = 777,
  [835] = 787,
  [836] = 791,
  [837] = 777,
  [838] = 838,
  [839] = 777,
  [840] = 840,
  [841] = 819,
  [842] = 783,
  [843] = 778,
  [844] = 783,
  [845] = 799,
  [846] = 791,
  [847] = 787,
  [848] = 778,
  [849] = 779,
  [850] = 850,
  [851] = 851,
  [852] = 787,
  [853] = 853,
  [854] = 785,
  [855] = 791,
  [856] = 791,
  [857] = 801,
  [858] = 791,
  [859] = 776,
  [860] = 860,
  [861] = 778,
  [862] = 778,
  [863] = 787,
  [864] = 778,
  [865] = 828,
  [866] = 783,
  [867] = 799,
  [868] = 801,
  [869] = 801,
  [870] = 777,
  [871] = 871,
  [872] = 799,
  [873] = 777,
  [874] = 777,
  [875] = 783,
  [876] = 787,
  [877] = 783,
  [878] = 785,
  [879] = 819,
  [880] = 791,
  [881] = 881,
  [882] = 799,
  [883] = 791,
  [884] = 775,
  [885] = 885,
  [886] = 886,
  [887] = 887,
  [888] = 888,
  [889] = 889,
  [890] = 890,
  [891] = 891,
  [892] = 892,
  [893] = 893,
  [894] = 894,
  [895] = 895,
  [896] = 896,
  [897] = 897,
  [898] = 890,
  [899] = 888,
  [900] = 900,
  [901] = 901,
  [902] = 902,
  [903] = 903,
  [904] = 904,
  [905] = 905,
  [906] = 890,
  [907] = 907,
  [908] = 891,
  [909] = 909,
  [910] = 890,
  [911] = 911,
  [912] = 912,
  [913] = 903,
  [914] = 885,
  [915] = 905,
  [916] = 897,
  [917] = 901,
  [918] = 894,
  [919] = 919,
  [920] = 895,
  [921] = 921,
  [922] = 896,
  [923] = 890,
  [924] = 890,
  [925] = 897,
  [926] = 900,
  [927] = 901,
  [928] = 900,
  [929] = 897,
  [930] = 919,
  [931] = 902,
  [932] = 903,
  [933] = 909,
  [934] = 919,
  [935] = 896,
  [936] = 886,
  [937] = 885,
  [938] = 896,
  [939] = 891,
  [940] = 892,
  [941] = 885,
  [942] = 887,
  [943] = 894,
  [944] = 894,
  [945] = 902,
  [946] = 895,
  [947] = 895,
  [948] = 896,
  [949] = 897,
  [950] = 900,
  [951] = 901,
  [952] = 902,
  [953] = 891,
  [954] = 894,
  [955] = 911,
  [956] = 885,
  [957] = 895,
  [958] = 887,
  [959] = 886,
  [960] = 960,
  [961] = 903,
  [962] = 903,
  [963] = 902,
  [964] = 901,
  [965] = 891,
  [966] = 900,
  [967] = 904,
  [968] = 897,
  [969] = 901,
  [970] = 888,
  [971] = 885,
  [972] = 891,
  [973] = 919,
  [974] = 894,
  [975] = 895,
  [976] = 887,
  [977] = 977,
  [978] = 905,
  [979] = 902,
  [980] = 896,
  [981] = 890,
  [982] = 885,
  [983] = 896,
  [984] = 984,
  [985] = 890,
  [986] = 897,
  [987] = 896,
  [988] = 900,
  [989] = 901,
  [990] = 902,
  [991] = 903,
  [992] = 890,
  [993] = 919,
  [994] = 894,
  [995] = 895,
  [996] = 896,
  [997] = 897,
  [998] = 919,
  [999] = 900,
  [1000] = 919,
  [1001] = 888,
  [1002] = 901,
  [1003] = 891,
  [1004] = 902,
  [1005] = 903,
  [1006] = 911,
  [1007] = 894,
  [1008] = 895,
  [1009] = 909,
  [1010] = 911,
  [1011] = 1011,
  [1012] = 895,
  [1013] = 894,
  [1014] = 885,
  [1015] = 896,
  [1016] = 897,
  [1017] = 900,
  [1018] = 901,
  [1019] = 885,
  [1020] = 897,
  [1021] = 902,
  [1022] = 885,
  [1023] = 911,
  [1024] = 885,
  [1025] = 919,
  [1026] = 903,
  [1027] = 900,
  [1028] = 894,
  [1029] = 895,
  [1030] = 896,
  [1031] = 891,
  [1032] = 885,
  [1033] = 897,
  [1034] = 900,
  [1035] = 901,
  [1036] = 902,
  [1037] = 903,
  [1038] = 894,
  [1039] = 895,
  [1040] = 896,
  [1041] = 897,
  [1042] = 904,
  [1043] = 901,
  [1044] = 902,
  [1045] = 900,
  [1046] = 886,
  [1047] = 900,
  [1048] = 919,
  [1049] = 903,
  [1050] = 891,
  [1051] = 895,
  [1052] = 921,
  [1053] = 903,
  [1054] = 902,
  [1055] = 894,
  [1056] = 1056,
  [1057] = 903,
  [1058] = 886,
  [1059] = 901,
  [1060] = 1060,
  [1061] = 1061,
  [1062] = 1062,
  [1063] = 1063,
  [1064] = 1064,
  [1065] = 1065,
  [1066] = 1066,
  [1067] = 1062,
  [1068] = 1068,
  [1069] = 1069,
  [1070] = 1068,
  [1071] = 1071,
  [1072] = 1072,
  [1073] = 1073,
  [1074] = 1068,
  [1075] = 1075,
  [1076] = 1076,
  [1077] = 1066,
  [1078] = 1076,
  [1079] = 1079,
  [1080] = 1080,
  [1081] = 1066,
  [1082] = 1082,
  [1083] = 1083,
  [1084] = 1071,
  [1085] = 1085,
  [1086] = 1062,
  [1087] = 1087,
  [1088] = 1088,
  [1089] = 1089,
  [1090] = 1087,
  [1091] = 1066,
  [1092] = 1061,
  [1093] = 1093,
  [1094] = 1094,
  [1095] = 1065,
  [1096] = 1096,
  [1097] = 1097,
  [1098] = 1098,
  [1099] = 1060,
  [1100] = 1069,
  [1101] = 1072,
  [1102] = 1102,
  [1103] = 1073,
  [1104] = 1062,
  [1105] = 1105,
  [1106] = 1065,
  [1107] = 1069,
  [1108] = 1108,
  [1109] = 1062,
  [1110] = 1088,
  [1111] = 1108,
  [1112] = 1088,
  [1113] = 1089,
  [1114] = 1089,
  [1115] = 1087,
  [1116] = 1087,
  [1117] = 1061,
  [1118] = 1093,
  [1119] = 1065,
  [1120] = 1093,
  [1121] = 1085,
  [1122] = 1073,
  [1123] = 1069,
  [1124] = 1098,
  [1125] = 1108,
  [1126] = 1096,
  [1127] = 1088,
  [1128] = 1089,
  [1129] = 1060,
  [1130] = 1130,
  [1131] = 1105,
  [1132] = 1065,
  [1133] = 1098,
  [1134] = 1105,
  [1135] = 1093,
  [1136] = 1087,
  [1137] = 1069,
  [1138] = 1061,
  [1139] = 1087,
  [1140] = 1061,
  [1141] = 1065,
  [1142] = 1093,
  [1143] = 1069,
  [1144] = 1108,
  [1145] = 1098,
  [1146] = 1088,
  [1147] = 1105,
  [1148] = 1089,
  [1149] = 1060,
  [1150] = 1087,
  [1151] = 1061,
  [1152] = 1076,
  [1153] = 1096,
  [1154] = 1105,
  [1155] = 1108,
  [1156] = 1060,
  [1157] = 1060,
  [1158] = 1068,
  [1159] = 1098,
  [1160] = 1093,
  [1161] = 1096,
  [1162] = 1085,
  [1163] = 1061,
  [1164] = 1093,
  [1165] = 1165,
  [1166] = 1088,
  [1167] = 1061,
  [1168] = 1168,
  [1169] = 1098,
  [1170] = 1105,
  [1171] = 1060,
  [1172] = 1096,
  [1173] = 1089,
  [1174] = 1087,
  [1175] = 1105,
  [1176] = 1068,
  [1177] = 1072,
  [1178] = 1089,
  [1179] = 1088,
  [1180] = 1108,
  [1181] = 1068,
  [1182] = 1069,
  [1183] = 1087,
  [1184] = 1065,
  [1185] = 1098,
  [1186] = 1105,
  [1187] = 1061,
  [1188] = 1093,
  [1189] = 1108,
  [1190] = 1098,
  [1191] = 1089,
  [1192] = 1096,
  [1193] = 1193,
  [1194] = 1194,
  [1195] = 1066,
  [1196] = 1060,
  [1197] = 1060,
  [1198] = 1105,
  [1199] = 1096,
  [1200] = 1073,
  [1201] = 1098,
  [1202] = 1105,
  [1203] = 1203,
  [1204] = 1093,
  [1205] = 1061,
  [1206] = 1087,
  [1207] = 1072,
  [1208] = 1060,
  [1209] = 1209,
  [1210] = 1089,
  [1211] = 1072,
  [1212] = 1088,
  [1213] = 1108,
  [1214] = 1069,
  [1215] = 1215,
  [1216] = 1088,
  [1217] = 1085,
  [1218] = 1073,
  [1219] = 1108,
  [1220] = 1065,
  [1221] = 1069,
  [1222] = 1108,
  [1223] = 1096,
  [1224] = 1069,
  [1225] = 1225,
  [1226] = 1226,
  [1227] = 1088,
  [1228] = 1089,
  [1229] = 1087,
  [1230] = 1230,
  [1231] = 1068,
  [1232] = 1065,
  [1233] = 1072,
  [1234] = 1061,
  [1235] = 1093,
  [1236] = 1098,
  [1237] = 1065,
  [1238] = 1073,
  [1239] = 1069,
  [1240] = 1108,
  [1241] = 1071,
  [1242] = 1105,
  [1243] = 1096,
  [1244] = 1065,
  [1245] = 1085,
  [1246] = 1071,
  [1247] = 1076,
  [1248] = 1068,
  [1249] = 1249,
  [1250] = 1250,
  [1251] = 1085,
  [1252] = 1252,
  [1253] = 1066,
  [1254] = 1068,
  [1255] = 1255,
  [1256] = 1068,
  [1257] = 1257,
  [1258] = 1071,
  [1259] = 1096,
  [1260] = 1260,
  [1261] = 1071,
  [1262] = 1093,
  [1263] = 1096,
  [1264] = 1062,
  [1265] = 1075,
  [1266] = 1076,
  [1267] = 1088,
  [1268] = 1073,
  [1269] = 1065,
  [1270] = 1060,
  [1271] = 1068,
  [1272] = 1069,
  [1273] = 1066,
  [1274] = 1089,
  [1275] = 1108,
  [1276] = 1088,
  [1277] = 1089,
  [1278] = 1087,
  [1279] = 1085,
  [1280] = 1076,
  [1281] = 1068,
  [1282] = 1098,
  [1283] = 1061,
  [1284] = 1093,
  [1285] = 1076,
  [1286] = 1098,
  [1287] = 1071,
  [1288] = 1105,
  [1289] = 1060,
  [1290] = 1096,
  [1291] = 1291,
  [1292] = 1291,
  [1293] = 1293,
  [1294] = 1293,
  [1295] = 1293,
  [1296] = 1293,
  [1297] = 1291,
  [1298] = 1298,
  [1299] = 1291,
  [1300] = 1300,
  [1301] = 1301,
  [1302] = 1302,
  [1303] = 1303,
  [1304] = 1301,
  [1305] = 1305,
  [1306] = 1306,
  [1307] = 1305,
  [1308] = 1308,
  [1309] = 1305,
  [1310] = 1301,
  [1311] = 1302,
  [1312] = 1298,
  [1313] = 1308,
  [1314] = 1300,
  [1315] = 1301,
  [1316] = 1303,
  [1317] = 1317,
  [1318] = 1317,
  [1319] = 1306,
  [1320] = 1300,
  [1321] = 1308,
  [1322] = 1302,
  [1323] = 1303,
  [1324] = 1300,
  [1325] = 1306,
  [1326] = 1300,
  [1327] = 1306,
  [1328] = 1301,
  [1329] = 1308,
  [1330] = 1301,
  [1331] = 1305,
  [1332] = 1305,
  [1333] = 1302,
  [1334] = 1303,
  [1335] = 1308,
  [1336] = 1306,
  [1337] = 1302,
  [1338] = 1305,
  [1339] = 1300,
  [1340] = 1303,
  [1341] = 1300,
  [1342] = 1300,
  [1343] = 1317,
  [1344] = 1306,
  [1345] = 1303,
  [1346] = 1308,
  [1347] = 1300,
  [1348] = 1302,
  [1349] = 1317,
  [1350] = 1300,
  [1351] = 1300,
  [1352] = 1300,
  [1353] = 1317,
  [1354] = 1354,
  [1355] = 1355,
  [1356] = 1356,
  [1357] = 1357,
  [1358] = 1358,
  [1359] = 1359,
  [1360] = 1360,
  [1361] = 1361,
  [1362] = 1362,
  [1363] = 1363,
  [1364] = 1364,
  [1365] = 1365,
  [1366] = 1366,
  [1367] = 1367,
  [1368] = 1368,
  [1369] = 1369,
  [1370] = 1370,
  [1371] = 1371,
  [1372] = 1372,
  [1373] = 1373,
  [1374] = 1374,
  [1375] = 1375,
  [1376] = 1376,
  [1377] = 1377,
  [1378] = 1378,
  [1379] = 1379,
  [1380] = 1380,
  [1381] = 1381,
  [1382] = 1382,
  [1383] = 1383,
  [1384] = 1384,
  [1385] = 1385,
  [1386] = 1386,
  [1387] = 1387,
  [1388] = 1388,
  [1389] = 1389,
  [1390] = 1390,
  [1391] = 1391,
  [1392] = 1392,
  [1393] = 1393,
  [1394] = 1394,
  [1395] = 1395,
  [1396] = 1396,
  [1397] = 1397,
  [1398] = 1398,
  [1399] = 1399,
  [1400] = 1400,
  [1401] = 1401,
  [1402] = 1402,
  [1403] = 1403,
  [1404] = 1404,
  [1405] = 1405,
  [1406] = 1406,
  [1407] = 1407,
  [1408] = 1408,
  [1409] = 1409,
  [1410] = 1410,
  [1411] = 1411,
  [1412] = 1412,
  [1413] = 1413,
  [1414] = 1414,
  [1415] = 1415,
  [1416] = 1416,
  [1417] = 1417,
  [1418] = 1418,
  [1419] = 1419,
  [1420] = 1420,
  [1421] = 1421,
  [1422] = 1422,
  [1423] = 1423,
  [1424] = 1424,
  [1425] = 1425,
  [1426] = 1426,
  [1427] = 1427,
  [1428] = 1428,
  [1429] = 1429,
  [1430] = 1430,
  [1431] = 1431,
  [1432] = 1432,
  [1433] = 1433,
  [1434] = 1434,
  [1435] = 1435,
  [1436] = 1436,
  [1437] = 1437,
  [1438] = 1438,
  [1439] = 1439,
  [1440] = 1440,
  [1441] = 1441,
  [1442] = 1442,
  [1443] = 1443,
  [1444] = 1444,
  [1445] = 1445,
  [1446] = 1446,
  [1447] = 1447,
  [1448] = 1448,
  [1449] = 1449,
  [1450] = 1373,
  [1451] = 1451,
  [1452] = 1452,
  [1453] = 1453,
  [1454] = 1454,
  [1455] = 1455,
  [1456] = 1456,
  [1457] = 1457,
  [1458] = 1458,
  [1459] = 1459,
  [1460] = 1460,
  [1461] = 1461,
  [1462] = 1462,
  [1463] = 1463,
  [1464] = 1464,
  [1465] = 1465,
  [1466] = 1466,
  [1467] = 1467,
  [1468] = 1468,
  [1469] = 1469,
  [1470] = 1470,
  [1471] = 1471,
  [1472] = 1472,
  [1473] = 1473,
  [1474] = 1474,
  [1475] = 1475,
  [1476] = 1476,
  [1477] = 1477,
  [1478] = 1478,
  [1479] = 1479,
  [1480] = 1480,
  [1481] = 1481,
  [1482] = 1482,
  [1483] = 1483,
  [1484] = 1484,
  [1485] = 1485,
  [1486] = 1486,
  [1487] = 1487,
  [1488] = 1488,
  [1489] = 1489,
  [1490] = 1490,
  [1491] = 1491,
  [1492] = 1492,
  [1493] = 1493,
  [1494] = 1494,
  [1495] = 1495,
  [1496] = 1496,
  [1497] = 1497,
  [1498] = 1498,
  [1499] = 1499,
  [1500] = 1500,
  [1501] = 1501,
  [1502] = 1502,
  [1503] = 1503,
  [1504] = 1504,
  [1505] = 666,
  [1506] = 665,
  [1507] = 1507,
  [1508] = 1508,
  [1509] = 1509,
  [1510] = 664,
  [1511] = 1511,
  [1512] = 1512,
  [1513] = 1513,
  [1514] = 1514,
  [1515] = 1515,
  [1516] = 1516,
  [1517] = 1517,
  [1518] = 1518,
  [1519] = 1519,
  [1520] = 1520,
  [1521] = 1521,
  [1522] = 1522,
  [1523] = 1523,
  [1524] = 1524,
  [1525] = 1525,
  [1526] = 1526,
  [1527] = 1372,
  [1528] = 1528,
  [1529] = 1529,
  [1530] = 1530,
  [1531] = 1531,
  [1532] = 1532,
  [1533] = 1533,
  [1534] = 1534,
  [1535] = 1440,
  [1536] = 1536,
  [1537] = 1537,
  [1538] = 1538,
  [1539] = 1539,
  [1540] = 1540,
  [1541] = 1541,
  [1542] = 1542,
  [1543] = 1543,
  [1544] = 1544,
  [1545] = 1545,
  [1546] = 1546,
  [1547] = 1547,
  [1548] = 1548,
  [1549] = 1549,
  [1550] = 1550,
  [1551] = 1551,
  [1552] = 1552,
  [1553] = 1553,
  [1554] = 1554,
  [1555] = 1555,
  [1556] = 1556,
  [1557] = 1557,
  [1558] = 1558,
  [1559] = 1465,
  [1560] = 1528,
  [1561] = 1482,
  [1562] = 1447,
  [1563] = 1373,
  [1564] = 1508,
  [1565] = 664,
  [1566] = 1391,
  [1567] = 1412,
  [1568] = 1470,
  [1569] = 1441,
  [1570] = 1440,
  [1571] = 1487,
  [1572] = 1386,
  [1573] = 1554,
  [1574] = 1549,
  [1575] = 1468,
  [1576] = 1467,
  [1577] = 1545,
  [1578] = 1400,
  [1579] = 1430,
  [1580] = 1461,
  [1581] = 1542,
  [1582] = 1541,
  [1583] = 1481,
  [1584] = 1480,
  [1585] = 1488,
  [1586] = 1534,
  [1587] = 1476,
  [1588] = 1372,
  [1589] = 1491,
  [1590] = 1373,
  [1591] = 1471,
  [1592] = 1533,
  [1593] = 1532,
  [1594] = 1531,
  [1595] = 1486,
  [1596] = 1428,
  [1597] = 1503,
  [1598] = 1504,
  [1599] = 1442,
  [1600] = 1516,
  [1601] = 1514,
  [1602] = 1374,
  [1603] = 1380,
  [1604] = 1466,
  [1605] = 1462,
  [1606] = 1512,
  [1607] = 1511,
  [1608] = 1485,
  [1609] = 1425,
  [1610] = 1509,
  [1611] = 1459,
  [1612] = 1455,
  [1613] = 1385,
  [1614] = 1507,
  [1615] = 1355,
  [1616] = 1501,
  [1617] = 1375,
  [1618] = 1499,
  [1619] = 1484,
  [1620] = 1498,
  [1621] = 1483,
  [1622] = 1524,
  [1623] = 1522,
  [1624] = 1544,
  [1625] = 1354,
  [1626] = 1538,
  [1627] = 1557,
  [1628] = 1556,
  [1629] = 1492,
  [1630] = 1490,
  [1631] = 1423,
  [1632] = 1489,
  [1633] = 1477,
  [1634] = 1474,
  [1635] = 1440,
  [1636] = 1421,
  [1637] = 1419,
  [1638] = 1418,
  [1639] = 1417,
  [1640] = 1415,
  [1641] = 1464,
  [1642] = 1463,
  [1643] = 1460,
  [1644] = 1409,
  [1645] = 1407,
  [1646] = 1458,
  [1647] = 1456,
  [1648] = 1420,
  [1649] = 1369,
  [1650] = 665,
  [1651] = 1389,
  [1652] = 1452,
  [1653] = 1451,
  [1654] = 1449,
  [1655] = 1513,
  [1656] = 1448,
  [1657] = 1387,
  [1658] = 1416,
  [1659] = 1517,
  [1660] = 1446,
  [1661] = 1443,
  [1662] = 1521,
  [1663] = 1478,
  [1664] = 1411,
  [1665] = 1406,
  [1666] = 1403,
  [1667] = 1402,
  [1668] = 1523,
  [1669] = 1525,
  [1670] = 1401,
  [1671] = 1555,
  [1672] = 1453,
  [1673] = 1399,
  [1674] = 1357,
  [1675] = 1372,
  [1676] = 1422,
  [1677] = 1558,
  [1678] = 1398,
  [1679] = 1396,
  [1680] = 1472,
  [1681] = 1473,
  [1682] = 1475,
  [1683] = 1479,
  [1684] = 1494,
  [1685] = 1496,
  [1686] = 1526,
  [1687] = 1376,
  [1688] = 1378,
  [1689] = 1414,
  [1690] = 1394,
  [1691] = 1445,
  [1692] = 1444,
  [1693] = 1424,
  [1694] = 1551,
  [1695] = 1548,
  [1696] = 1429,
  [1697] = 1547,
  [1698] = 1439,
  [1699] = 1520,
  [1700] = 1392,
  [1701] = 1530,
  [1702] = 1546,
  [1703] = 1388,
  [1704] = 1381,
  [1705] = 1519,
  [1706] = 1515,
  [1707] = 1382,
  [1708] = 1379,
  [1709] = 1502,
  [1710] = 1500,
  [1711] = 1495,
  [1712] = 1359,
  [1713] = 1360,
  [1714] = 1363,
  [1715] = 1366,
  [1716] = 1377,
  [1717] = 1371,
  [1718] = 1368,
  [1719] = 1365,
  [1720] = 1362,
  [1721] = 1358,
  [1722] = 1457,
  [1723] = 1426,
  [1724] = 1427,
  [1725] = 1438,
  [1726] = 1553,
  [1727] = 1437,
  [1728] = 1436,
  [1729] = 1536,
  [1730] = 1537,
  [1731] = 1552,
  [1732] = 1539,
  [1733] = 666,
  [1734] = 1431,
  [1735] = 1433,
  [1736] = 1454,
  [1737] = 1413,
  [1738] = 1469,
  [1739] = 1493,
  [1740] = 1497,
  [1741] = 1390,
  [1742] = 1356,
  [1743] = 1361,
  [1744] = 1364,
  [1745] = 1367,
  [1746] = 1410,
  [1747] = 1518,
  [1748] = 1408,
  [1749] = 1435,
  [1750] = 1383,
  [1751] = 1384,
  [1752] = 1434,
  [1753] = 1543,
  [1754] = 1393,
  [1755] = 1395,
  [1756] = 1397,
  [1757] = 1404,
  [1758] = 1432,
  [1759] = 1540,
  [1760] = 1405,
  [1761] = 1529,
  [1762] = 1762,
  [1763] = 1762,
  [1764] = 1762,
  [1765] = 1762,
  [1766] = 1762,
  [1767] = 1767,
  [1768] = 1768,
  [1769] = 1769,
  [1770] = 1770,
  [1771] = 1771,
  [1772] = 1772,
  [1773] = 1773,
  [1774] = 1774,
  [1775] = 1775,
  [1776] = 1776,
  [1777] = 1777,
  [1778] = 602,
  [1779] = 600,
  [1780] = 585,
  [1781] = 586,
  [1782] = 596,
  [1783] = 584,
  [1784] = 594,
  [1785] = 598,
  [1786] = 590,
  [1787] = 601,
  [1788] = 597,
  [1789] = 598,
  [1790] = 596,
  [1791] = 590,
  [1792] = 594,
  [1793] = 584,
  [1794] = 596,
  [1795] = 585,
  [1796] = 602,
  [1797] = 594,
  [1798] = 597,
  [1799] = 586,
  [1800] = 586,
  [1801] = 584,
  [1802] = 590,
  [1803] = 601,
  [1804] = 585,
  [1805] = 600,
  [1806] = 597,
  [1807] = 600,
  [1808] = 602,
  [1809] = 598,
  [1810] = 601,
  [1811] = 1811,
  [1812] = 1812,
  [1813] = 1813,
  [1814] = 1814,
  [1815] = 1815,
  [1816] = 1816,
  [1817] = 1817,
  [1818] = 1818,
  [1819] = 1819,
  [1820] = 1820,
  [1821] = 1821,
  [1822] = 1822,
  [1823] = 1823,
  [1824] = 1824,
  [1825] = 1825,
  [1826] = 1823,
  [1827] = 1827,
  [1828] = 1828,
  [1829] = 1829,
  [1830] = 1830,
  [1831] = 1830,
  [1832] = 1832,
  [1833] = 1821,
  [1834] = 1834,
  [1835] = 1835,
  [1836] = 1836,
  [1837] = 1834,
  [1838] = 1838,
  [1839] = 1839,
  [1840] = 1823,
  [1841] = 1815,
  [1842] = 1822,
  [1843] = 1828,
  [1844] = 1844,
  [1845] = 1845,
  [1846] = 1846,
  [1847] = 1847,
  [1848] = 1848,
  [1849] = 1824,
  [1850] = 1848,
  [1851] = 1820,
  [1852] = 1822,
  [1853] = 1827,
  [1854] = 1838,
  [1855] = 1844,
  [1856] = 1824,
  [1857] = 1819,
  [1858] = 1832,
  [1859] = 1817,
  [1860] = 1816,
  [1861] = 1845,
  [1862] = 1862,
  [1863] = 1823,
  [1864] = 1829,
  [1865] = 1819,
  [1866] = 1866,
  [1867] = 1819,
  [1868] = 1868,
  [1869] = 1825,
  [1870] = 1870,
  [1871] = 1839,
  [1872] = 1829,
  [1873] = 1846,
  [1874] = 1874,
  [1875] = 1875,
  [1876] = 1828,
  [1877] = 1877,
  [1878] = 1819,
  [1879] = 1879,
  [1880] = 1839,
  [1881] = 1839,
  [1882] = 1870,
  [1883] = 1862,
  [1884] = 1884,
  [1885] = 1885,
  [1886] = 1875,
  [1887] = 1836,
  [1888] = 1846,
  [1889] = 1889,
  [1890] = 1823,
  [1891] = 1835,
  [1892] = 1830,
  [1893] = 1844,
  [1894] = 1829,
  [1895] = 1895,
  [1896] = 1896,
  [1897] = 1830,
  [1898] = 1866,
  [1899] = 1844,
  [1900] = 1816,
  [1901] = 1817,
  [1902] = 1832,
  [1903] = 1834,
  [1904] = 1879,
  [1905] = 1847,
  [1906] = 1877,
  [1907] = 1885,
  [1908] = 1835,
  [1909] = 1830,
  [1910] = 1868,
  [1911] = 1838,
  [1912] = 1862,
  [1913] = 1877,
  [1914] = 1914,
  [1915] = 1836,
  [1916] = 1848,
  [1917] = 1835,
  [1918] = 1866,
  [1919] = 1885,
  [1920] = 1839,
  [1921] = 1834,
  [1922] = 1830,
  [1923] = 1884,
  [1924] = 1818,
  [1925] = 1835,
  [1926] = 1874,
  [1927] = 1844,
  [1928] = 1838,
  [1929] = 1889,
  [1930] = 1816,
  [1931] = 1879,
  [1932] = 1817,
  [1933] = 1823,
  [1934] = 1830,
  [1935] = 1822,
  [1936] = 1870,
  [1937] = 1817,
  [1938] = 1885,
  [1939] = 1827,
  [1940] = 1832,
  [1941] = 1914,
  [1942] = 1823,
  [1943] = 1820,
  [1944] = 1846,
  [1945] = 1834,
  [1946] = 1835,
  [1947] = 1825,
  [1948] = 1870,
  [1949] = 1846,
  [1950] = 1819,
  [1951] = 1822,
  [1952] = 1828,
  [1953] = 1828,
  [1954] = 1866,
  [1955] = 1827,
  [1956] = 1825,
  [1957] = 1844,
  [1958] = 1889,
  [1959] = 1889,
  [1960] = 1874,
  [1961] = 1824,
  [1962] = 1825,
  [1963] = 1839,
  [1964] = 1838,
  [1965] = 1820,
  [1966] = 1914,
  [1967] = 1825,
  [1968] = 1874,
  [1969] = 1821,
  [1970] = 1825,
  [1971] = 1824,
  [1972] = 1824,
  [1973] = 1875,
  [1974] = 1828,
  [1975] = 1836,
  [1976] = 1847,
  [1977] = 1879,
  [1978] = 1844,
  [1979] = 1845,
  [1980] = 1895,
  [1981] = 1844,
  [1982] = 1848,
  [1983] = 1889,
  [1984] = 1868,
  [1985] = 1846,
  [1986] = 1836,
  [1987] = 1818,
  [1988] = 1822,
  [1989] = 1874,
  [1990] = 1816,
  [1991] = 1914,
  [1992] = 1914,
  [1993] = 1866,
  [1994] = 1848,
  [1995] = 1817,
  [1996] = 1885,
  [1997] = 1822,
  [1998] = 1817,
  [1999] = 1845,
  [2000] = 1838,
  [2001] = 1839,
  [2002] = 1832,
  [2003] = 1825,
  [2004] = 1815,
  [2005] = 1830,
  [2006] = 1875,
  [2007] = 1866,
  [2008] = 1896,
  [2009] = 1885,
  [2010] = 1895,
  [2011] = 1817,
  [2012] = 1846,
  [2013] = 1819,
  [2014] = 1896,
  [2015] = 1884,
  [2016] = 1823,
  [2017] = 1889,
  [2018] = 1884,
  [2019] = 1820,
  [2020] = 1844,
  [2021] = 1834,
  [2022] = 1834,
  [2023] = 1877,
  [2024] = 1821,
  [2025] = 1874,
  [2026] = 1847,
  [2027] = 1868,
  [2028] = 1818,
  [2029] = 1838,
  [2030] = 1914,
  [2031] = 1818,
  [2032] = 1847,
  [2033] = 1895,
  [2034] = 1884,
  [2035] = 1868,
  [2036] = 1829,
  [2037] = 1877,
  [2038] = 1829,
  [2039] = 1830,
  [2040] = 1846,
  [2041] = 1862,
  [2042] = 1835,
  [2043] = 1896,
  [2044] = 1847,
  [2045] = 1839,
  [2046] = 1848,
  [2047] = 1820,
  [2048] = 1862,
  [2049] = 1879,
  [2050] = 1845,
  [2051] = 1884,
  [2052] = 1875,
  [2053] = 1862,
  [2054] = 1884,
  [2055] = 1846,
  [2056] = 1834,
  [2057] = 1875,
  [2058] = 1815,
  [2059] = 1834,
  [2060] = 1879,
  [2061] = 1836,
  [2062] = 1895,
  [2063] = 1877,
  [2064] = 1868,
  [2065] = 1838,
  [2066] = 1818,
  [2067] = 1822,
  [2068] = 1835,
  [2069] = 1821,
  [2070] = 1827,
  [2071] = 1847,
  [2072] = 1838,
  [2073] = 1847,
  [2074] = 1825,
  [2075] = 1817,
  [2076] = 1816,
  [2077] = 1832,
  [2078] = 1821,
  [2079] = 1815,
  [2080] = 1819,
  [2081] = 1822,
  [2082] = 1870,
  [2083] = 1835,
  [2084] = 1823,
  [2085] = 1896,
  [2086] = 1827,
  [2087] = 1896,
  [2088] = 1819,
  [2089] = 1847,
  [2090] = 1839,
  [2091] = 1845,
  [2092] = 1815,
  [2093] = 1884,
  [2094] = 1884,
  [2095] = 1895,
  [2096] = 1870,
  [2097] = 2097,
  [2098] = 2098,
  [2099] = 2099,
  [2100] = 662,
  [2101] = 2101,
  [2102] = 2102,
  [2103] = 2097,
  [2104] = 2101,
  [2105] = 2097,
  [2106] = 2098,
  [2107] = 2098,
  [2108] = 2099,
  [2109] = 2102,
  [2110] = 668,
  [2111] = 2099,
  [2112] = 2101,
  [2113] = 2102,
  [2114] = 661,
  [2115] = 2099,
  [2116] = 667,
  [2117] = 2097,
  [2118] = 663,
  [2119] = 2101,
  [2120] = 2097,
  [2121] = 2102,
  [2122] = 663,
  [2123] = 2101,
  [2124] = 664,
  [2125] = 2101,
  [2126] = 665,
  [2127] = 2099,
  [2128] = 666,
  [2129] = 2098,
  [2130] = 2102,
  [2131] = 669,
  [2132] = 2099,
  [2133] = 2097,
  [2134] = 2098,
  [2135] = 2097,
  [2136] = 2101,
  [2137] = 2101,
  [2138] = 2099,
  [2139] = 2101,
  [2140] = 2099,
  [2141] = 2099,
  [2142] = 2097,
  [2143] = 2097,
  [2144] = 663,
  [2145] = 663,
  [2146] = 1293,
  [2147] = 1291,
  [2148] = 1293,
  [2149] = 1291,
  [2150] = 2150,
  [2151] = 1293,
  [2152] = 1298,
  [2153] = 2150,
  [2154] = 2150,
  [2155] = 2150,
  [2156] = 1291,
  [2157] = 2150,
  [2158] = 2150,
  [2159] = 2150,
  [2160] = 2150,
  [2161] = 2150,
  [2162] = 1291,
  [2163] = 1293,
  [2164] = 1298,
  [2165] = 2165,
  [2166] = 1441,
  [2167] = 1541,
  [2168] = 1397,
  [2169] = 1395,
  [2170] = 1393,
  [2171] = 1384,
  [2172] = 1455,
  [2173] = 1383,
  [2174] = 1462,
  [2175] = 1367,
  [2176] = 1364,
  [2177] = 1361,
  [2178] = 1466,
  [2179] = 1471,
  [2180] = 1356,
  [2181] = 1476,
  [2182] = 1480,
  [2183] = 1372,
  [2184] = 1440,
  [2185] = 1481,
  [2186] = 1497,
  [2187] = 1482,
  [2188] = 1493,
  [2189] = 1374,
  [2190] = 1375,
  [2191] = 1376,
  [2192] = 1378,
  [2193] = 1382,
  [2194] = 1385,
  [2195] = 1386,
  [2196] = 1387,
  [2197] = 1389,
  [2198] = 1390,
  [2199] = 1392,
  [2200] = 1457,
  [2201] = 1469,
  [2202] = 1454,
  [2203] = 1413,
  [2204] = 1488,
  [2205] = 1431,
  [2206] = 1427,
  [2207] = 1405,
  [2208] = 1408,
  [2209] = 1491,
  [2210] = 1503,
  [2211] = 1410,
  [2212] = 1426,
  [2213] = 1484,
  [2214] = 1414,
  [2215] = 1416,
  [2216] = 1504,
  [2217] = 1420,
  [2218] = 1423,
  [2219] = 1513,
  [2220] = 1517,
  [2221] = 1538,
  [2222] = 1521,
  [2223] = 1544,
  [2224] = 1523,
  [2225] = 1358,
  [2226] = 1483,
  [2227] = 1502,
  [2228] = 1485,
  [2229] = 1525,
  [2230] = 1486,
  [2231] = 1362,
  [2232] = 1365,
  [2233] = 1368,
  [2234] = 664,
  [2235] = 1373,
  [2236] = 1377,
  [2237] = 1379,
  [2238] = 1381,
  [2239] = 1388,
  [2240] = 1394,
  [2241] = 1508,
  [2242] = 1396,
  [2243] = 1398,
  [2244] = 1399,
  [2245] = 1401,
  [2246] = 1402,
  [2247] = 1403,
  [2248] = 1406,
  [2249] = 1526,
  [2250] = 1470,
  [2251] = 665,
  [2252] = 666,
  [2253] = 1468,
  [2254] = 1540,
  [2255] = 1411,
  [2256] = 1467,
  [2257] = 1380,
  [2258] = 1461,
  [2259] = 1543,
  [2260] = 1459,
  [2261] = 1355,
  [2262] = 1546,
  [2263] = 1552,
  [2264] = 1443,
  [2265] = 1354,
  [2266] = 1446,
  [2267] = 1448,
  [2268] = 1449,
  [2269] = 1451,
  [2270] = 1452,
  [2271] = 1456,
  [2272] = 1458,
  [2273] = 1425,
  [2274] = 1460,
  [2275] = 1553,
  [2276] = 1463,
  [2277] = 1464,
  [2278] = 1465,
  [2279] = 1474,
  [2280] = 1477,
  [2281] = 1453,
  [2282] = 1445,
  [2283] = 1428,
  [2284] = 1489,
  [2285] = 1490,
  [2286] = 1492,
  [2287] = 1498,
  [2288] = 1430,
  [2289] = 1442,
  [2290] = 1499,
  [2291] = 1555,
  [2292] = 1500,
  [2293] = 1447,
  [2294] = 1444,
  [2295] = 1501,
  [2296] = 1439,
  [2297] = 1438,
  [2298] = 1437,
  [2299] = 1507,
  [2300] = 1436,
  [2301] = 1509,
  [2302] = 1511,
  [2303] = 1518,
  [2304] = 1512,
  [2305] = 1514,
  [2306] = 1435,
  [2307] = 1516,
  [2308] = 1373,
  [2309] = 1529,
  [2310] = 1556,
  [2311] = 1531,
  [2312] = 1532,
  [2313] = 1533,
  [2314] = 1534,
  [2315] = 1434,
  [2316] = 1432,
  [2317] = 1404,
  [2318] = 1478,
  [2319] = 1542,
  [2320] = 1545,
  [2321] = 1522,
  [2322] = 1524,
  [2323] = 1549,
  [2324] = 1554,
  [2325] = 1557,
  [2326] = 1371,
  [2327] = 1366,
  [2328] = 1370,
  [2329] = 1363,
  [2330] = 1360,
  [2331] = 1539,
  [2332] = 1537,
  [2333] = 1473,
  [2334] = 1530,
  [2335] = 1359,
  [2336] = 1528,
  [2337] = 1495,
  [2338] = 1550,
  [2339] = 1391,
  [2340] = 1515,
  [2341] = 1487,
  [2342] = 1433,
  [2343] = 1536,
  [2344] = 1372,
  [2345] = 1440,
  [2346] = 1519,
  [2347] = 1520,
  [2348] = 1547,
  [2349] = 1400,
  [2350] = 1548,
  [2351] = 1551,
  [2352] = 1421,
  [2353] = 1424,
  [2354] = 1496,
  [2355] = 1419,
  [2356] = 1494,
  [2357] = 1479,
  [2358] = 1475,
  [2359] = 1418,
  [2360] = 1472,
  [2361] = 1558,
  [2362] = 1422,
  [2363] = 1357,
  [2364] = 1369,
  [2365] = 1417,
  [2366] = 1415,
  [2367] = 1429,
  [2368] = 1407,
  [2369] = 1409,
  [2370] = 1412,
  [2371] = 1515,
  [2372] = 1373,
  [2373] = 1487,
  [2374] = 1372,
  [2375] = 1440,
  [2376] = 1440,
  [2377] = 1391,
  [2378] = 1372,
  [2379] = 1433,
  [2380] = 1373,
  [2381] = 2381,
  [2382] = 2382,
  [2383] = 2383,
  [2384] = 2383,
  [2385] = 2385,
  [2386] = 2381,
  [2387] = 2383,
  [2388] = 2383,
  [2389] = 2381,
  [2390] = 2383,
  [2391] = 2381,
  [2392] = 2383,
  [2393] = 2393,
  [2394] = 2381,
  [2395] = 2395,
  [2396] = 2381,
  [2397] = 627,
  [2398] = 639,
  [2399] = 2399,
  [2400] = 634,
  [2401] = 637,
  [2402] = 629,
  [2403] = 621,
  [2404] = 631,
  [2405] = 2405,
  [2406] = 2406,
  [2407] = 626,
  [2408] = 628,
  [2409] = 632,
  [2410] = 623,
  [2411] = 2411,
  [2412] = 630,
  [2413] = 636,
  [2414] = 633,
  [2415] = 625,
  [2416] = 2416,
  [2417] = 624,
  [2418] = 2418,
  [2419] = 2419,
  [2420] = 2420,
  [2421] = 2421,
  [2422] = 2422,
  [2423] = 2423,
  [2424] = 666,
  [2425] = 665,
  [2426] = 664,
  [2427] = 1524,
  [2428] = 2428,
  [2429] = 1558,
  [2430] = 1380,
  [2431] = 2428,
  [2432] = 2428,
  [2433] = 2428,
  [2434] = 1518,
  [2435] = 2428,
  [2436] = 1522,
  [2437] = 2428,
  [2438] = 666,
  [2439] = 2428,
  [2440] = 2428,
  [2441] = 2428,
  [2442] = 664,
  [2443] = 2428,
  [2444] = 665,
  [2445] = 2428,
  [2446] = 2428,
  [2447] = 1558,
  [2448] = 2448,
  [2449] = 1522,
  [2450] = 2448,
  [2451] = 1380,
  [2452] = 2448,
  [2453] = 1524,
  [2454] = 1518,
  [2455] = 664,
  [2456] = 2448,
  [2457] = 1518,
  [2458] = 1522,
  [2459] = 2448,
  [2460] = 1558,
  [2461] = 1380,
  [2462] = 2448,
  [2463] = 2448,
  [2464] = 1524,
  [2465] = 2448,
  [2466] = 665,
  [2467] = 2448,
  [2468] = 666,
  [2469] = 1509,
  [2470] = 1418,
  [2471] = 1395,
  [2472] = 1397,
  [2473] = 1404,
  [2474] = 1405,
  [2475] = 1408,
  [2476] = 1410,
  [2477] = 1508,
  [2478] = 1413,
  [2479] = 1414,
  [2480] = 1486,
  [2481] = 1416,
  [2482] = 1420,
  [2483] = 1423,
  [2484] = 1456,
  [2485] = 1474,
  [2486] = 1384,
  [2487] = 1383,
  [2488] = 1367,
  [2489] = 1364,
  [2490] = 1361,
  [2491] = 1485,
  [2492] = 1356,
  [2493] = 1484,
  [2494] = 1548,
  [2495] = 1465,
  [2496] = 1497,
  [2497] = 1429,
  [2498] = 1483,
  [2499] = 1464,
  [2500] = 1463,
  [2501] = 1460,
  [2502] = 1493,
  [2503] = 1538,
  [2504] = 1544,
  [2505] = 1458,
  [2506] = 1469,
  [2507] = 1483,
  [2508] = 1484,
  [2509] = 1454,
  [2510] = 1485,
  [2511] = 1486,
  [2512] = 1489,
  [2513] = 1508,
  [2514] = 1490,
  [2515] = 1492,
  [2516] = 1547,
  [2517] = 1526,
  [2518] = 2518,
  [2519] = 1498,
  [2520] = 1470,
  [2521] = 1499,
  [2522] = 1500,
  [2523] = 1468,
  [2524] = 1467,
  [2525] = 1431,
  [2526] = 1461,
  [2527] = 1762,
  [2528] = 1501,
  [2529] = 1459,
  [2530] = 1355,
  [2531] = 1507,
  [2532] = 1453,
  [2533] = 1445,
  [2534] = 1444,
  [2535] = 1439,
  [2536] = 1438,
  [2537] = 1437,
  [2538] = 1436,
  [2539] = 1427,
  [2540] = 1551,
  [2541] = 1426,
  [2542] = 1435,
  [2543] = 1366,
  [2544] = 1434,
  [2545] = 1457,
  [2546] = 1358,
  [2547] = 1362,
  [2548] = 1365,
  [2549] = 1432,
  [2550] = 1368,
  [2551] = 1511,
  [2552] = 1512,
  [2553] = 1377,
  [2554] = 1434,
  [2555] = 1514,
  [2556] = 1516,
  [2557] = 1379,
  [2558] = 1381,
  [2559] = 1388,
  [2560] = 1394,
  [2561] = 1371,
  [2562] = 1366,
  [2563] = 1363,
  [2564] = 1360,
  [2565] = 1359,
  [2566] = 1439,
  [2567] = 1495,
  [2568] = 1502,
  [2569] = 1519,
  [2570] = 1452,
  [2571] = 1396,
  [2572] = 1520,
  [2573] = 1369,
  [2574] = 1547,
  [2575] = 1398,
  [2576] = 1479,
  [2577] = 1548,
  [2578] = 1551,
  [2579] = 1424,
  [2580] = 1496,
  [2581] = 1494,
  [2582] = 1479,
  [2583] = 1475,
  [2584] = 1473,
  [2585] = 1472,
  [2586] = 1477,
  [2587] = 1459,
  [2588] = 1422,
  [2589] = 1399,
  [2590] = 1357,
  [2591] = 1544,
  [2592] = 1529,
  [2593] = 1531,
  [2594] = 1532,
  [2595] = 1533,
  [2596] = 1438,
  [2597] = 1451,
  [2598] = 1435,
  [2599] = 1371,
  [2600] = 1534,
  [2601] = 1449,
  [2602] = 1541,
  [2603] = 1369,
  [2604] = 1538,
  [2605] = 1542,
  [2606] = 1391,
  [2607] = 1401,
  [2608] = 1407,
  [2609] = 1409,
  [2610] = 1412,
  [2611] = 1402,
  [2612] = 1415,
  [2613] = 1417,
  [2614] = 1393,
  [2615] = 1419,
  [2616] = 1421,
  [2617] = 1407,
  [2618] = 1403,
  [2619] = 1406,
  [2620] = 1448,
  [2621] = 1446,
  [2622] = 1409,
  [2623] = 1411,
  [2624] = 1443,
  [2625] = 1412,
  [2626] = 1355,
  [2627] = 1545,
  [2628] = 1443,
  [2629] = 1446,
  [2630] = 1448,
  [2631] = 1449,
  [2632] = 1549,
  [2633] = 1451,
  [2634] = 1554,
  [2635] = 1452,
  [2636] = 1456,
  [2637] = 1415,
  [2638] = 1458,
  [2639] = 1400,
  [2640] = 1460,
  [2641] = 1417,
  [2642] = 1463,
  [2643] = 1464,
  [2644] = 1494,
  [2645] = 1465,
  [2646] = 1474,
  [2647] = 1477,
  [2648] = 1489,
  [2649] = 1490,
  [2650] = 1492,
  [2651] = 1498,
  [2652] = 1499,
  [2653] = 1500,
  [2654] = 1501,
  [2655] = 1507,
  [2656] = 1418,
  [2657] = 1509,
  [2658] = 1511,
  [2659] = 1512,
  [2660] = 1514,
  [2661] = 1516,
  [2662] = 1419,
  [2663] = 1529,
  [2664] = 1421,
  [2665] = 1429,
  [2666] = 1531,
  [2667] = 1532,
  [2668] = 1533,
  [2669] = 1534,
  [2670] = 1541,
  [2671] = 1542,
  [2672] = 1545,
  [2673] = 1549,
  [2674] = 1423,
  [2675] = 1420,
  [2676] = 1554,
  [2677] = 1424,
  [2678] = 1762,
  [2679] = 1496,
  [2680] = 1411,
  [2681] = 1416,
  [2682] = 1406,
  [2683] = 1403,
  [2684] = 1402,
  [2685] = 1414,
  [2686] = 1413,
  [2687] = 2687,
  [2688] = 1401,
  [2689] = 1410,
  [2690] = 1399,
  [2691] = 1398,
  [2692] = 1396,
  [2693] = 1394,
  [2694] = 1762,
  [2695] = 1461,
  [2696] = 1400,
  [2697] = 1762,
  [2698] = 1520,
  [2699] = 1388,
  [2700] = 1381,
  [2701] = 1475,
  [2702] = 1432,
  [2703] = 1408,
  [2704] = 1405,
  [2705] = 1379,
  [2706] = 1377,
  [2707] = 1762,
  [2708] = 1368,
  [2709] = 1365,
  [2710] = 1502,
  [2711] = 1453,
  [2712] = 1357,
  [2713] = 1404,
  [2714] = 1362,
  [2715] = 1358,
  [2716] = 1422,
  [2717] = 1457,
  [2718] = 1762,
  [2719] = 1426,
  [2720] = 1427,
  [2721] = 1467,
  [2722] = 1397,
  [2723] = 1468,
  [2724] = 1519,
  [2725] = 1395,
  [2726] = 1363,
  [2727] = 1431,
  [2728] = 1526,
  [2729] = 1454,
  [2730] = 1393,
  [2731] = 1469,
  [2732] = 1495,
  [2733] = 1493,
  [2734] = 1433,
  [2735] = 1487,
  [2736] = 1515,
  [2737] = 1445,
  [2738] = 1359,
  [2739] = 1497,
  [2740] = 1470,
  [2741] = 1356,
  [2742] = 1361,
  [2743] = 1364,
  [2744] = 1437,
  [2745] = 1367,
  [2746] = 1444,
  [2747] = 1472,
  [2748] = 1360,
  [2749] = 1473,
  [2750] = 1383,
  [2751] = 1384,
  [2752] = 1436,
  [2753] = 1487,
  [2754] = 1454,
  [2755] = 1411,
  [2756] = 1487,
  [2757] = 1443,
  [2758] = 1446,
  [2759] = 1448,
  [2760] = 1449,
  [2761] = 1451,
  [2762] = 1452,
  [2763] = 1394,
  [2764] = 1403,
  [2765] = 1421,
  [2766] = 1419,
  [2767] = 1418,
  [2768] = 2768,
  [2769] = 1406,
  [2770] = 1529,
  [2771] = 1415,
  [2772] = 1402,
  [2773] = 1409,
  [2774] = 1407,
  [2775] = 1369,
  [2776] = 2768,
  [2777] = 1401,
  [2778] = 1500,
  [2779] = 1399,
  [2780] = 1456,
  [2781] = 1458,
  [2782] = 1433,
  [2783] = 1398,
  [2784] = 1460,
  [2785] = 1463,
  [2786] = 1464,
  [2787] = 1465,
  [2788] = 1396,
  [2789] = 1474,
  [2790] = 1477,
  [2791] = 1357,
  [2792] = 1388,
  [2793] = 1381,
  [2794] = 1379,
  [2795] = 1422,
  [2796] = 1472,
  [2797] = 2768,
  [2798] = 1473,
  [2799] = 1377,
  [2800] = 1368,
  [2801] = 1475,
  [2802] = 1479,
  [2803] = 1489,
  [2804] = 2804,
  [2805] = 1496,
  [2806] = 1490,
  [2807] = 1492,
  [2808] = 1365,
  [2809] = 1417,
  [2810] = 1362,
  [2811] = 1358,
  [2812] = 1551,
  [2813] = 1457,
  [2814] = 1548,
  [2815] = 1515,
  [2816] = 1498,
  [2817] = 1499,
  [2818] = 1486,
  [2819] = 1426,
  [2820] = 1427,
  [2821] = 1547,
  [2822] = 1501,
  [2823] = 1520,
  [2824] = 1507,
  [2825] = 1509,
  [2826] = 1511,
  [2827] = 1512,
  [2828] = 1519,
  [2829] = 1515,
  [2830] = 1514,
  [2831] = 1516,
  [2832] = 2768,
  [2833] = 1431,
  [2834] = 1433,
  [2835] = 1502,
  [2836] = 1531,
  [2837] = 1532,
  [2838] = 1533,
  [2839] = 1534,
  [2840] = 1541,
  [2841] = 1542,
  [2842] = 1469,
  [2843] = 1493,
  [2844] = 1497,
  [2845] = 1356,
  [2846] = 1545,
  [2847] = 1361,
  [2848] = 1495,
  [2849] = 1364,
  [2850] = 1359,
  [2851] = 1367,
  [2852] = 1360,
  [2853] = 1549,
  [2854] = 1363,
  [2855] = 1366,
  [2856] = 1371,
  [2857] = 1554,
  [2858] = 2768,
  [2859] = 2859,
  [2860] = 1383,
  [2861] = 1384,
  [2862] = 1393,
  [2863] = 1391,
  [2864] = 1395,
  [2865] = 1397,
  [2866] = 1404,
  [2867] = 1405,
  [2868] = 1408,
  [2869] = 1410,
  [2870] = 1413,
  [2871] = 1414,
  [2872] = 1416,
  [2873] = 1420,
  [2874] = 1423,
  [2875] = 2768,
  [2876] = 2768,
  [2877] = 1483,
  [2878] = 2768,
  [2879] = 2768,
  [2880] = 2768,
  [2881] = 1538,
  [2882] = 1544,
  [2883] = 1424,
  [2884] = 1484,
  [2885] = 1485,
  [2886] = 1494,
  [2887] = 1429,
  [2888] = 1508,
  [2889] = 2768,
  [2890] = 1526,
  [2891] = 1470,
  [2892] = 1468,
  [2893] = 1467,
  [2894] = 1412,
  [2895] = 1432,
  [2896] = 1391,
  [2897] = 1400,
  [2898] = 1434,
  [2899] = 1435,
  [2900] = 1461,
  [2901] = 1459,
  [2902] = 1355,
  [2903] = 1453,
  [2904] = 1436,
  [2905] = 2905,
  [2906] = 1445,
  [2907] = 2768,
  [2908] = 1444,
  [2909] = 1437,
  [2910] = 1439,
  [2911] = 1438,
  [2912] = 2912,
  [2913] = 2913,
  [2914] = 2912,
  [2915] = 2915,
  [2916] = 2913,
  [2917] = 1774,
  [2918] = 2918,
  [2919] = 2915,
  [2920] = 2920,
  [2921] = 2921,
  [2922] = 2912,
  [2923] = 2913,
  [2924] = 1772,
  [2925] = 2925,
  [2926] = 2913,
  [2927] = 2913,
  [2928] = 1770,
  [2929] = 2912,
  [2930] = 2925,
  [2931] = 2931,
  [2932] = 2913,
  [2933] = 2925,
  [2934] = 2934,
  [2935] = 2935,
  [2936] = 2925,
  [2937] = 2913,
  [2938] = 1773,
  [2939] = 640,
  [2940] = 2913,
  [2941] = 2912,
  [2942] = 2942,
  [2943] = 2913,
  [2944] = 2944,
  [2945] = 2925,
  [2946] = 2913,
  [2947] = 1771,
  [2948] = 2925,
  [2949] = 2912,
  [2950] = 2915,
  [2951] = 2915,
  [2952] = 2952,
  [2953] = 2915,
  [2954] = 2925,
  [2955] = 2955,
  [2956] = 2912,
  [2957] = 2913,
  [2958] = 2913,
  [2959] = 2915,
  [2960] = 2925,
  [2961] = 1769,
  [2962] = 2962,
  [2963] = 2915,
  [2964] = 2964,
  [2965] = 2915,
  [2966] = 2912,
  [2967] = 2967,
  [2968] = 2968,
  [2969] = 2969,
  [2970] = 2970,
  [2971] = 2971,
  [2972] = 2972,
  [2973] = 2973,
  [2974] = 2974,
  [2975] = 2975,
  [2976] = 2976,
  [2977] = 2977,
  [2978] = 2977,
  [2979] = 2976,
  [2980] = 2977,
  [2981] = 2977,
  [2982] = 2976,
  [2983] = 2976,
  [2984] = 2976,
  [2985] = 2977,
  [2986] = 2977,
  [2987] = 2976,
  [2988] = 2988,
  [2989] = 2989,
  [2990] = 2989,
  [2991] = 2991,
  [2992] = 2989,
  [2993] = 2991,
  [2994] = 2991,
  [2995] = 2988,
  [2996] = 2988,
  [2997] = 2989,
  [2998] = 2998,
  [2999] = 2998,
  [3000] = 2998,
  [3001] = 2989,
  [3002] = 2988,
  [3003] = 2988,
  [3004] = 2991,
  [3005] = 2988,
  [3006] = 2988,
  [3007] = 2988,
  [3008] = 2989,
  [3009] = 2998,
  [3010] = 2991,
  [3011] = 2998,
  [3012] = 2989,
  [3013] = 2991,
  [3014] = 2989,
  [3015] = 2998,
  [3016] = 3016,
  [3017] = 3017,
  [3018] = 3018,
  [3019] = 3019,
  [3020] = 3020,
  [3021] = 3020,
  [3022] = 3016,
  [3023] = 3019,
  [3024] = 3018,
  [3025] = 3016,
  [3026] = 3026,
  [3027] = 3019,
  [3028] = 3018,
  [3029] = 3026,
  [3030] = 3017,
  [3031] = 3026,
  [3032] = 3020,
  [3033] = 3033,
  [3034] = 3034,
  [3035] = 3020,
  [3036] = 3016,
  [3037] = 3034,
  [3038] = 3016,
  [3039] = 3016,
  [3040] = 3034,
  [3041] = 3017,
  [3042] = 3016,
  [3043] = 3034,
  [3044] = 3017,
  [3045] = 3034,
  [3046] = 3020,
  [3047] = 3020,
  [3048] = 3034,
  [3049] = 3016,
  [3050] = 3026,
  [3051] = 3019,
  [3052] = 3034,
  [3053] = 3018,
  [3054] = 3017,
  [3055] = 3017,
  [3056] = 3034,
  [3057] = 3026,
  [3058] = 3026,
  [3059] = 3019,
  [3060] = 3018,
  [3061] = 3019,
  [3062] = 3018,
  [3063] = 3063,
  [3064] = 3064,
  [3065] = 3065,
  [3066] = 3065,
  [3067] = 3067,
  [3068] = 3067,
  [3069] = 3069,
  [3070] = 3069,
  [3071] = 3064,
  [3072] = 3065,
  [3073] = 3067,
  [3074] = 3065,
  [3075] = 3065,
  [3076] = 3063,
  [3077] = 3063,
  [3078] = 3069,
  [3079] = 3065,
  [3080] = 3065,
  [3081] = 3063,
  [3082] = 3064,
  [3083] = 3065,
  [3084] = 3064,
  [3085] = 3067,
  [3086] = 3067,
  [3087] = 3064,
  [3088] = 3065,
  [3089] = 3065,
  [3090] = 3065,
  [3091] = 3065,
  [3092] = 3069,
  [3093] = 3063,
  [3094] = 3067,
  [3095] = 3065,
  [3096] = 3069,
  [3097] = 3063,
  [3098] = 3069,
  [3099] = 3064,
  [3100] = 2406,
  [3101] = 2399,
  [3102] = 626,
  [3103] = 621,
  [3104] = 629,
  [3105] = 630,
  [3106] = 623,
  [3107] = 2405,
  [3108] = 3108,
  [3109] = 3109,
  [3110] = 3108,
  [3111] = 2419,
  [3112] = 3108,
  [3113] = 639,
  [3114] = 3109,
  [3115] = 3109,
  [3116] = 3109,
  [3117] = 624,
  [3118] = 627,
  [3119] = 2422,
  [3120] = 3108,
  [3121] = 2420,
  [3122] = 2411,
  [3123] = 637,
  [3124] = 636,
  [3125] = 634,
  [3126] = 625,
  [3127] = 3108,
  [3128] = 3109,
  [3129] = 2418,
  [3130] = 3108,
  [3131] = 628,
  [3132] = 631,
  [3133] = 632,
  [3134] = 3109,
  [3135] = 3108,
  [3136] = 2416,
  [3137] = 633,
  [3138] = 3109,
  [3139] = 3139,
  [3140] = 3140,
  [3141] = 3139,
  [3142] = 3142,
  [3143] = 3140,
  [3144] = 3142,
  [3145] = 3140,
  [3146] = 3139,
  [3147] = 3142,
  [3148] = 3139,
  [3149] = 3142,
  [3150] = 3140,
  [3151] = 3139,
  [3152] = 3140,
  [3153] = 3139,
  [3154] = 3140,
  [3155] = 3142,
  [3156] = 3140,
  [3157] = 3157,
  [3158] = 3139,
  [3159] = 3142,
  [3160] = 3140,
  [3161] = 3139,
  [3162] = 3142,
  [3163] = 3140,
  [3164] = 3139,
  [3165] = 3142,
  [3166] = 3142,
  [3167] = 3167,
  [3168] = 3168,
  [3169] = 3169,
  [3170] = 3170,
  [3171] = 3171,
  [3172] = 3170,
  [3173] = 3169,
  [3174] = 3169,
  [3175] = 3170,
  [3176] = 3176,
  [3177] = 3169,
  [3178] = 3178,
  [3179] = 3168,
  [3180] = 3170,
  [3181] = 3168,
  [3182] = 3170,
  [3183] = 2421,
  [3184] = 3168,
  [3185] = 3185,
  [3186] = 3176,
  [3187] = 3176,
  [3188] = 3188,
  [3189] = 3168,
  [3190] = 3169,
  [3191] = 3191,
  [3192] = 3169,
  [3193] = 3176,
  [3194] = 3169,
  [3195] = 3168,
  [3196] = 3176,
  [3197] = 3170,
  [3198] = 3176,
  [3199] = 3170,
  [3200] = 3200,
  [3201] = 3201,
  [3202] = 3168,
  [3203] = 3176,
  [3204] = 640,
  [3205] = 3205,
  [3206] = 3206,
  [3207] = 3207,
  [3208] = 3208,
  [3209] = 2421,
  [3210] = 3208,
  [3211] = 3205,
  [3212] = 3207,
  [3213] = 3213,
  [3214] = 3214,
  [3215] = 3208,
  [3216] = 3206,
  [3217] = 3214,
  [3218] = 3214,
  [3219] = 3219,
  [3220] = 3220,
  [3221] = 2968,
  [3222] = 2944,
  [3223] = 2967,
  [3224] = 3224,
  [3225] = 3157,
  [3226] = 2975,
  [3227] = 2972,
  [3228] = 3205,
  [3229] = 2974,
  [3230] = 3230,
  [3231] = 3206,
  [3232] = 3207,
  [3233] = 3233,
  [3234] = 3234,
  [3235] = 2969,
  [3236] = 3236,
  [3237] = 2421,
  [3238] = 3238,
  [3239] = 3239,
  [3240] = 2406,
  [3241] = 636,
  [3242] = 627,
  [3243] = 3243,
  [3244] = 2405,
  [3245] = 3245,
  [3246] = 3246,
  [3247] = 2418,
  [3248] = 2422,
  [3249] = 2421,
  [3250] = 3250,
  [3251] = 3251,
  [3252] = 634,
  [3253] = 2411,
  [3254] = 2419,
  [3255] = 626,
  [3256] = 637,
  [3257] = 2399,
  [3258] = 2416,
  [3259] = 3259,
  [3260] = 621,
  [3261] = 629,
  [3262] = 624,
  [3263] = 3263,
  [3264] = 639,
  [3265] = 625,
  [3266] = 628,
  [3267] = 631,
  [3268] = 632,
  [3269] = 623,
  [3270] = 633,
  [3271] = 2420,
  [3272] = 630,
  [3273] = 3273,
  [3274] = 3274,
  [3275] = 3273,
  [3276] = 3276,
  [3277] = 2406,
  [3278] = 3278,
  [3279] = 3279,
  [3280] = 3276,
  [3281] = 3278,
  [3282] = 3279,
  [3283] = 3278,
  [3284] = 3274,
  [3285] = 3278,
  [3286] = 3274,
  [3287] = 3278,
  [3288] = 3279,
  [3289] = 3273,
  [3290] = 3274,
  [3291] = 3273,
  [3292] = 3276,
  [3293] = 3276,
  [3294] = 3274,
  [3295] = 3279,
  [3296] = 3279,
  [3297] = 3276,
  [3298] = 3276,
  [3299] = 3278,
  [3300] = 3273,
  [3301] = 3279,
  [3302] = 3273,
  [3303] = 3274,
  [3304] = 630,
  [3305] = 2422,
  [3306] = 3306,
  [3307] = 3307,
  [3308] = 2420,
  [3309] = 3309,
  [3310] = 3251,
  [3311] = 3246,
  [3312] = 2399,
  [3313] = 3309,
  [3314] = 3314,
  [3315] = 3315,
  [3316] = 3316,
  [3317] = 3309,
  [3318] = 3318,
  [3319] = 3307,
  [3320] = 634,
  [3321] = 636,
  [3322] = 3314,
  [3323] = 637,
  [3324] = 3263,
  [3325] = 3307,
  [3326] = 639,
  [3327] = 623,
  [3328] = 633,
  [3329] = 3306,
  [3330] = 632,
  [3331] = 631,
  [3332] = 3306,
  [3333] = 3309,
  [3334] = 2411,
  [3335] = 3250,
  [3336] = 3314,
  [3337] = 628,
  [3338] = 3259,
  [3339] = 625,
  [3340] = 3309,
  [3341] = 2405,
  [3342] = 621,
  [3343] = 2419,
  [3344] = 3314,
  [3345] = 3307,
  [3346] = 3245,
  [3347] = 3347,
  [3348] = 3314,
  [3349] = 3309,
  [3350] = 629,
  [3351] = 3243,
  [3352] = 3306,
  [3353] = 2416,
  [3354] = 3307,
  [3355] = 624,
  [3356] = 2406,
  [3357] = 3306,
  [3358] = 2418,
  [3359] = 3306,
  [3360] = 3307,
  [3361] = 3314,
  [3362] = 627,
  [3363] = 626,
  [3364] = 637,
  [3365] = 3213,
  [3366] = 2419,
  [3367] = 632,
  [3368] = 633,
  [3369] = 630,
  [3370] = 623,
  [3371] = 639,
  [3372] = 2416,
  [3373] = 2420,
  [3374] = 2399,
  [3375] = 636,
  [3376] = 634,
  [3377] = 2422,
  [3378] = 2418,
  [3379] = 627,
  [3380] = 2411,
  [3381] = 626,
  [3382] = 3246,
  [3383] = 621,
  [3384] = 629,
  [3385] = 2421,
  [3386] = 3263,
  [3387] = 3245,
  [3388] = 624,
  [3389] = 3250,
  [3390] = 3251,
  [3391] = 3259,
  [3392] = 3243,
  [3393] = 625,
  [3394] = 628,
  [3395] = 631,
  [3396] = 2405,
  [3397] = 3397,
  [3398] = 3398,
  [3399] = 3399,
  [3400] = 3400,
  [3401] = 3399,
  [3402] = 3399,
  [3403] = 3400,
  [3404] = 3400,
  [3405] = 3399,
  [3406] = 3399,
  [3407] = 3400,
  [3408] = 3399,
  [3409] = 3316,
  [3410] = 3400,
  [3411] = 3399,
  [3412] = 3400,
  [3413] = 3397,
  [3414] = 3399,
  [3415] = 3397,
  [3416] = 3397,
  [3417] = 3315,
  [3418] = 3400,
  [3419] = 3397,
  [3420] = 3318,
  [3421] = 3400,
  [3422] = 3397,
  [3423] = 3239,
  [3424] = 3399,
  [3425] = 3400,
  [3426] = 3238,
  [3427] = 3397,
  [3428] = 3397,
  [3429] = 3397,
  [3430] = 3399,
  [3431] = 3400,
  [3432] = 3400,
  [3433] = 3399,
  [3434] = 3400,
  [3435] = 3399,
  [3436] = 627,
  [3437] = 634,
  [3438] = 628,
  [3439] = 2405,
  [3440] = 623,
  [3441] = 639,
  [3442] = 3315,
  [3443] = 2416,
  [3444] = 630,
  [3445] = 3316,
  [3446] = 3318,
  [3447] = 631,
  [3448] = 2411,
  [3449] = 633,
  [3450] = 632,
  [3451] = 2406,
  [3452] = 625,
  [3453] = 624,
  [3454] = 2421,
  [3455] = 629,
  [3456] = 636,
  [3457] = 621,
  [3458] = 3458,
  [3459] = 3459,
  [3460] = 3460,
  [3461] = 637,
  [3462] = 626,
  [3463] = 2399,
  [3464] = 3251,
  [3465] = 3465,
  [3466] = 3466,
  [3467] = 3467,
  [3468] = 2418,
  [3469] = 3469,
  [3470] = 3465,
  [3471] = 3243,
  [3472] = 3472,
  [3473] = 3467,
  [3474] = 2421,
  [3475] = 3469,
  [3476] = 3467,
  [3477] = 2422,
  [3478] = 2420,
  [3479] = 3479,
  [3480] = 3245,
  [3481] = 3469,
  [3482] = 3259,
  [3483] = 3465,
  [3484] = 2419,
  [3485] = 3263,
  [3486] = 3486,
  [3487] = 3250,
  [3488] = 3488,
  [3489] = 2406,
  [3490] = 3490,
  [3491] = 3491,
  [3492] = 3488,
  [3493] = 3493,
  [3494] = 3494,
  [3495] = 3495,
  [3496] = 3459,
  [3497] = 3497,
  [3498] = 665,
  [3499] = 3499,
  [3500] = 3488,
  [3501] = 664,
  [3502] = 3488,
  [3503] = 3488,
  [3504] = 666,
  [3505] = 3505,
  [3506] = 628,
  [3507] = 3263,
  [3508] = 3259,
  [3509] = 3509,
  [3510] = 632,
  [3511] = 631,
  [3512] = 2405,
  [3513] = 628,
  [3514] = 633,
  [3515] = 3515,
  [3516] = 636,
  [3517] = 2411,
  [3518] = 630,
  [3519] = 623,
  [3520] = 2416,
  [3521] = 3459,
  [3522] = 637,
  [3523] = 2411,
  [3524] = 3524,
  [3525] = 2406,
  [3526] = 2399,
  [3527] = 634,
  [3528] = 636,
  [3529] = 637,
  [3530] = 3245,
  [3531] = 3459,
  [3532] = 625,
  [3533] = 2422,
  [3534] = 2420,
  [3535] = 624,
  [3536] = 629,
  [3537] = 621,
  [3538] = 626,
  [3539] = 3539,
  [3540] = 639,
  [3541] = 623,
  [3542] = 630,
  [3543] = 633,
  [3544] = 632,
  [3545] = 3251,
  [3546] = 627,
  [3547] = 634,
  [3548] = 3548,
  [3549] = 3459,
  [3550] = 2419,
  [3551] = 3551,
  [3552] = 2416,
  [3553] = 3553,
  [3554] = 3524,
  [3555] = 3250,
  [3556] = 3556,
  [3557] = 3557,
  [3558] = 3557,
  [3559] = 3524,
  [3560] = 631,
  [3561] = 639,
  [3562] = 3557,
  [3563] = 625,
  [3564] = 624,
  [3565] = 629,
  [3566] = 621,
  [3567] = 626,
  [3568] = 627,
  [3569] = 3243,
  [3570] = 3557,
  [3571] = 3557,
  [3572] = 2399,
  [3573] = 3573,
  [3574] = 2418,
  [3575] = 3557,
  [3576] = 2405,
  [3577] = 3577,
  [3578] = 3578,
  [3579] = 3579,
  [3580] = 3580,
  [3581] = 3472,
  [3582] = 3259,
  [3583] = 3583,
  [3584] = 3243,
  [3585] = 3251,
  [3586] = 3586,
  [3587] = 3587,
  [3588] = 3588,
  [3589] = 3589,
  [3590] = 3590,
  [3591] = 3250,
  [3592] = 3592,
  [3593] = 3245,
  [3594] = 3594,
  [3595] = 3493,
  [3596] = 3263,
  [3597] = 3583,
  [3598] = 3494,
  [3599] = 3599,
  [3600] = 3600,
  [3601] = 2418,
  [3602] = 3602,
  [3603] = 2422,
  [3604] = 3497,
  [3605] = 3605,
  [3606] = 3490,
  [3607] = 3459,
  [3608] = 3608,
  [3609] = 3491,
  [3610] = 3610,
  [3611] = 3499,
  [3612] = 3459,
  [3613] = 3459,
  [3614] = 3583,
  [3615] = 3615,
  [3616] = 3616,
  [3617] = 2420,
  [3618] = 2419,
  [3619] = 3619,
  [3620] = 3459,
  [3621] = 3621,
  [3622] = 3622,
  [3623] = 3623,
  [3624] = 3624,
  [3625] = 3625,
  [3626] = 3626,
  [3627] = 3623,
  [3628] = 3628,
  [3629] = 3629,
  [3630] = 3630,
  [3631] = 3631,
  [3632] = 3632,
  [3633] = 3633,
  [3634] = 3634,
  [3635] = 3472,
  [3636] = 3636,
  [3637] = 3637,
  [3638] = 3638,
  [3639] = 3630,
  [3640] = 3499,
  [3641] = 3641,
  [3642] = 3490,
  [3643] = 3633,
  [3644] = 3630,
  [3645] = 3645,
  [3646] = 3646,
  [3647] = 3647,
  [3648] = 3648,
  [3649] = 3628,
  [3650] = 3636,
  [3651] = 3651,
  [3652] = 3652,
  [3653] = 3497,
  [3654] = 3634,
  [3655] = 3631,
  [3656] = 3638,
  [3657] = 3625,
  [3658] = 3622,
  [3659] = 3659,
  [3660] = 3633,
  [3661] = 3646,
  [3662] = 3623,
  [3663] = 3659,
  [3664] = 3645,
  [3665] = 3665,
  [3666] = 3666,
  [3667] = 3667,
  [3668] = 3637,
  [3669] = 3472,
  [3670] = 3626,
  [3671] = 3624,
  [3672] = 3626,
  [3673] = 3626,
  [3674] = 3624,
  [3675] = 3628,
  [3676] = 3494,
  [3677] = 3647,
  [3678] = 3645,
  [3679] = 3624,
  [3680] = 3680,
  [3681] = 3646,
  [3682] = 3634,
  [3683] = 3652,
  [3684] = 3636,
  [3685] = 3641,
  [3686] = 3645,
  [3687] = 3687,
  [3688] = 3630,
  [3689] = 3622,
  [3690] = 3493,
  [3691] = 3622,
  [3692] = 3641,
  [3693] = 3625,
  [3694] = 3622,
  [3695] = 3625,
  [3696] = 3624,
  [3697] = 3697,
  [3698] = 3698,
  [3699] = 3647,
  [3700] = 3652,
  [3701] = 3652,
  [3702] = 3632,
  [3703] = 3631,
  [3704] = 3622,
  [3705] = 3634,
  [3706] = 3706,
  [3707] = 3637,
  [3708] = 3459,
  [3709] = 3628,
  [3710] = 3472,
  [3711] = 3623,
  [3712] = 3472,
  [3713] = 3713,
  [3714] = 3625,
  [3715] = 3633,
  [3716] = 3716,
  [3717] = 3659,
  [3718] = 3641,
  [3719] = 3706,
  [3720] = 3659,
  [3721] = 3638,
  [3722] = 3722,
  [3723] = 3638,
  [3724] = 3636,
  [3725] = 3472,
  [3726] = 3646,
  [3727] = 3630,
  [3728] = 3491,
  [3729] = 3634,
  [3730] = 3631,
  [3731] = 3633,
  [3732] = 3732,
  [3733] = 3733,
  [3734] = 3734,
  [3735] = 3636,
  [3736] = 3637,
  [3737] = 3626,
  [3738] = 3637,
  [3739] = 3623,
  [3740] = 3706,
  [3741] = 3641,
  [3742] = 3633,
  [3743] = 3647,
  [3744] = 3645,
  [3745] = 3630,
  [3746] = 3637,
  [3747] = 3659,
  [3748] = 3646,
  [3749] = 3631,
  [3750] = 3634,
  [3751] = 3636,
  [3752] = 3628,
  [3753] = 3626,
  [3754] = 3647,
  [3755] = 3631,
  [3756] = 3623,
  [3757] = 3625,
  [3758] = 3624,
  [3759] = 3645,
  [3760] = 3646,
  [3761] = 3638,
  [3762] = 3659,
  [3763] = 3628,
  [3764] = 3647,
  [3765] = 3641,
  [3766] = 3766,
  [3767] = 3767,
  [3768] = 3768,
  [3769] = 663,
  [3770] = 3770,
  [3771] = 3515,
  [3772] = 3553,
  [3773] = 1400,
  [3774] = 1429,
  [3775] = 3577,
  [3776] = 3602,
  [3777] = 3573,
  [3778] = 3539,
  [3779] = 3768,
  [3780] = 3770,
  [3781] = 3781,
  [3782] = 3551,
  [3783] = 3768,
  [3784] = 3784,
  [3785] = 3505,
  [3786] = 3548,
  [3787] = 662,
  [3788] = 3768,
  [3789] = 3789,
  [3790] = 3790,
  [3791] = 3791,
  [3792] = 3792,
  [3793] = 3793,
  [3794] = 3697,
  [3795] = 3795,
  [3796] = 3796,
  [3797] = 3797,
  [3798] = 3697,
  [3799] = 3768,
  [3800] = 3587,
  [3801] = 3605,
  [3802] = 3802,
  [3803] = 3472,
  [3804] = 3804,
  [3805] = 3805,
  [3806] = 3806,
  [3807] = 3807,
  [3808] = 3768,
  [3809] = 3610,
  [3810] = 3615,
  [3811] = 667,
  [3812] = 3619,
  [3813] = 669,
  [3814] = 3814,
  [3815] = 3551,
  [3816] = 3600,
  [3817] = 668,
  [3818] = 3768,
  [3819] = 3616,
  [3820] = 3599,
  [3821] = 3821,
  [3822] = 663,
  [3823] = 3823,
  [3824] = 3824,
  [3825] = 3697,
  [3826] = 3586,
  [3827] = 3590,
  [3828] = 3828,
  [3829] = 3829,
  [3830] = 3608,
  [3831] = 3831,
  [3832] = 3832,
  [3833] = 3768,
  [3834] = 3834,
  [3835] = 3835,
  [3836] = 3697,
  [3837] = 3553,
  [3838] = 3505,
  [3839] = 3580,
  [3840] = 3579,
  [3841] = 3594,
  [3842] = 3842,
  [3843] = 3843,
  [3844] = 3844,
  [3845] = 3845,
  [3846] = 3846,
  [3847] = 3548,
  [3848] = 3848,
  [3849] = 3849,
  [3850] = 3850,
  [3851] = 661,
  [3852] = 3852,
  [3853] = 3853,
  [3854] = 3854,
  [3855] = 3855,
  [3856] = 3856,
  [3857] = 3857,
  [3858] = 3858,
  [3859] = 3859,
  [3860] = 3860,
  [3861] = 3861,
  [3862] = 3608,
  [3863] = 3863,
  [3864] = 3577,
  [3865] = 3573,
  [3866] = 3539,
  [3867] = 696,
  [3868] = 3632,
  [3869] = 3605,
  [3870] = 3870,
  [3871] = 3651,
  [3872] = 3648,
  [3873] = 3610,
  [3874] = 3615,
  [3875] = 3875,
  [3876] = 3680,
  [3877] = 3515,
  [3878] = 3577,
  [3879] = 3573,
  [3880] = 3600,
  [3881] = 3539,
  [3882] = 3619,
  [3883] = 3883,
  [3884] = 3539,
  [3885] = 3885,
  [3886] = 3573,
  [3887] = 3887,
  [3888] = 3577,
  [3889] = 3889,
  [3890] = 3515,
  [3891] = 3891,
  [3892] = 3892,
  [3893] = 3666,
  [3894] = 3894,
  [3895] = 3895,
  [3896] = 3667,
  [3897] = 3897,
  [3898] = 3898,
  [3899] = 3899,
  [3900] = 3900,
  [3901] = 3629,
  [3902] = 3515,
  [3903] = 3594,
  [3904] = 3579,
  [3905] = 3905,
  [3906] = 3539,
  [3907] = 3687,
  [3908] = 3632,
  [3909] = 3602,
  [3910] = 3573,
  [3911] = 3580,
  [3912] = 3621,
  [3913] = 3515,
  [3914] = 3577,
  [3915] = 3515,
  [3916] = 3916,
  [3917] = 3587,
  [3918] = 3918,
  [3919] = 3590,
  [3920] = 3586,
  [3921] = 3921,
  [3922] = 3577,
  [3923] = 3923,
  [3924] = 3924,
  [3925] = 3616,
  [3926] = 3599,
  [3927] = 3539,
  [3928] = 3573,
  [3929] = 3766,
  [3930] = 3857,
  [3931] = 3814,
  [3932] = 1429,
  [3933] = 3666,
  [3934] = 3667,
  [3935] = 3621,
  [3936] = 663,
  [3937] = 3860,
  [3938] = 3859,
  [3939] = 1400,
  [3940] = 3870,
  [3941] = 3806,
  [3942] = 3823,
  [3943] = 3821,
  [3944] = 3828,
  [3945] = 3651,
  [3946] = 3850,
  [3947] = 3573,
  [3948] = 3791,
  [3949] = 3632,
  [3950] = 3577,
  [3951] = 3648,
  [3952] = 3824,
  [3953] = 3515,
  [3954] = 3680,
  [3955] = 3629,
  [3956] = 3870,
  [3957] = 3790,
  [3958] = 3829,
  [3959] = 3835,
  [3960] = 3842,
  [3961] = 3861,
  [3962] = 3767,
  [3963] = 3539,
  [3964] = 3789,
  [3965] = 3856,
  [3966] = 3843,
  [3967] = 3804,
  [3968] = 3795,
  [3969] = 3802,
  [3970] = 663,
  [3971] = 664,
  [3972] = 3972,
  [3973] = 3855,
  [3974] = 3870,
  [3975] = 665,
  [3976] = 3796,
  [3977] = 3687,
  [3978] = 3849,
  [3979] = 3848,
  [3980] = 3831,
  [3981] = 666,
  [3982] = 3832,
  [3983] = 3807,
  [3984] = 3858,
  [3985] = 3846,
  [3986] = 3870,
  [3987] = 3797,
  [3988] = 3845,
  [3989] = 3632,
  [3990] = 3854,
  [3991] = 3844,
  [3992] = 3853,
  [3993] = 3834,
  [3994] = 3852,
  [3995] = 3805,
  [3996] = 3924,
  [3997] = 3897,
  [3998] = 3831,
  [3999] = 3832,
  [4000] = 3834,
  [4001] = 3796,
  [4002] = 3795,
  [4003] = 4003,
  [4004] = 3916,
  [4005] = 3828,
  [4006] = 3843,
  [4007] = 3844,
  [4008] = 3854,
  [4009] = 3766,
  [4010] = 3853,
  [4011] = 3875,
  [4012] = 3852,
  [4013] = 3845,
  [4014] = 3805,
  [4015] = 3846,
  [4016] = 666,
  [4017] = 3899,
  [4018] = 3887,
  [4019] = 3898,
  [4020] = 3899,
  [4021] = 3897,
  [4022] = 3842,
  [4023] = 3895,
  [4024] = 3829,
  [4025] = 3835,
  [4026] = 3894,
  [4027] = 1429,
  [4028] = 3898,
  [4029] = 3824,
  [4030] = 3892,
  [4031] = 3905,
  [4032] = 3823,
  [4033] = 3850,
  [4034] = 3858,
  [4035] = 665,
  [4036] = 3891,
  [4037] = 3889,
  [4038] = 3887,
  [4039] = 3875,
  [4040] = 3863,
  [4041] = 3918,
  [4042] = 3806,
  [4043] = 3916,
  [4044] = 3885,
  [4045] = 3790,
  [4046] = 3918,
  [4047] = 3883,
  [4048] = 3804,
  [4049] = 3863,
  [4050] = 3802,
  [4051] = 3814,
  [4052] = 3767,
  [4053] = 3848,
  [4054] = 3861,
  [4055] = 3849,
  [4056] = 3875,
  [4057] = 3863,
  [4058] = 3860,
  [4059] = 3883,
  [4060] = 1400,
  [4061] = 3885,
  [4062] = 3789,
  [4063] = 3923,
  [4064] = 3924,
  [4065] = 3791,
  [4066] = 3859,
  [4067] = 664,
  [4068] = 3924,
  [4069] = 3887,
  [4070] = 3797,
  [4071] = 3905,
  [4072] = 3889,
  [4073] = 3891,
  [4074] = 3892,
  [4075] = 3807,
  [4076] = 3895,
  [4077] = 3857,
  [4078] = 3856,
  [4079] = 3894,
  [4080] = 3895,
  [4081] = 3897,
  [4082] = 3883,
  [4083] = 3898,
  [4084] = 3899,
  [4085] = 3894,
  [4086] = 3855,
  [4087] = 3892,
  [4088] = 3923,
  [4089] = 3821,
  [4090] = 3923,
  [4091] = 3918,
  [4092] = 3885,
  [4093] = 3916,
  [4094] = 3905,
  [4095] = 3891,
  [4096] = 3889,
  [4097] = 3895,
  [4098] = 4003,
  [4099] = 3883,
  [4100] = 3889,
  [4101] = 3887,
  [4102] = 3916,
  [4103] = 3807,
  [4104] = 3885,
  [4105] = 3918,
  [4106] = 3863,
  [4107] = 3899,
  [4108] = 3875,
  [4109] = 4109,
  [4110] = 4003,
  [4111] = 4003,
  [4112] = 4003,
  [4113] = 3905,
  [4114] = 3898,
  [4115] = 3897,
  [4116] = 3892,
  [4117] = 3894,
  [4118] = 3891,
  [4119] = 3923,
  [4120] = 3924,
  [4121] = 3863,
  [4122] = 3892,
  [4123] = 3905,
  [4124] = 3916,
  [4125] = 3918,
  [4126] = 3923,
  [4127] = 3924,
  [4128] = 3875,
  [4129] = 3883,
  [4130] = 3885,
  [4131] = 3899,
  [4132] = 3898,
  [4133] = 3887,
  [4134] = 3889,
  [4135] = 3897,
  [4136] = 3891,
  [4137] = 3895,
  [4138] = 3894,
  [4139] = 4139,
  [4140] = 3891,
  [4141] = 3894,
  [4142] = 3885,
  [4143] = 4143,
  [4144] = 4144,
  [4145] = 3892,
  [4146] = 4146,
  [4147] = 3875,
  [4148] = 3898,
  [4149] = 3863,
  [4150] = 3883,
  [4151] = 3887,
  [4152] = 3889,
  [4153] = 3895,
  [4154] = 3897,
  [4155] = 3899,
  [4156] = 4156,
  [4157] = 4157,
  [4158] = 4158,
  [4159] = 4159,
  [4160] = 4160,
  [4161] = 4161,
  [4162] = 4162,
  [4163] = 4163,
  [4164] = 4164,
  [4165] = 4165,
  [4166] = 4166,
  [4167] = 3875,
  [4168] = 3892,
  [4169] = 4169,
  [4170] = 4170,
  [4171] = 4171,
  [4172] = 4169,
  [4173] = 4169,
  [4174] = 4171,
  [4175] = 4171,
  [4176] = 4176,
  [4177] = 4169,
  [4178] = 3875,
  [4179] = 4179,
  [4180] = 4180,
  [4181] = 4181,
  [4182] = 3899,
  [4183] = 3898,
  [4184] = 4171,
  [4185] = 3895,
  [4186] = 3894,
  [4187] = 4169,
  [4188] = 3807,
  [4189] = 3899,
  [4190] = 4166,
  [4191] = 4169,
  [4192] = 3898,
  [4193] = 3897,
  [4194] = 3895,
  [4195] = 3894,
  [4196] = 4169,
  [4197] = 3892,
  [4198] = 3891,
  [4199] = 4169,
  [4200] = 4169,
  [4201] = 3875,
  [4202] = 3889,
  [4203] = 3887,
  [4204] = 3899,
  [4205] = 3898,
  [4206] = 3885,
  [4207] = 4169,
  [4208] = 3897,
  [4209] = 3895,
  [4210] = 3894,
  [4211] = 3892,
  [4212] = 4170,
  [4213] = 3891,
  [4214] = 3889,
  [4215] = 3887,
  [4216] = 3885,
  [4217] = 3883,
  [4218] = 3863,
  [4219] = 3891,
  [4220] = 3883,
  [4221] = 3863,
  [4222] = 3887,
  [4223] = 3885,
  [4224] = 4171,
  [4225] = 3883,
  [4226] = 3863,
  [4227] = 4227,
  [4228] = 4169,
  [4229] = 4171,
  [4230] = 4230,
  [4231] = 3897,
  [4232] = 3889,
  [4233] = 4233,
  [4234] = 4162,
  [4235] = 3923,
  [4236] = 3905,
  [4237] = 4237,
  [4238] = 3892,
  [4239] = 3894,
  [4240] = 3895,
  [4241] = 4241,
  [4242] = 4242,
  [4243] = 4243,
  [4244] = 3883,
  [4245] = 4242,
  [4246] = 4246,
  [4247] = 3885,
  [4248] = 4166,
  [4249] = 3887,
  [4250] = 3863,
  [4251] = 4251,
  [4252] = 2421,
  [4253] = 4253,
  [4254] = 3924,
  [4255] = 3889,
  [4256] = 3916,
  [4257] = 4257,
  [4258] = 4258,
  [4259] = 3899,
  [4260] = 4260,
  [4261] = 4242,
  [4262] = 4262,
  [4263] = 4263,
  [4264] = 4264,
  [4265] = 3918,
  [4266] = 4242,
  [4267] = 3897,
  [4268] = 4268,
  [4269] = 4269,
  [4270] = 4242,
  [4271] = 4269,
  [4272] = 3898,
  [4273] = 4233,
  [4274] = 4274,
  [4275] = 4275,
  [4276] = 3875,
  [4277] = 4277,
  [4278] = 3891,
  [4279] = 4279,
  [4280] = 4269,
  [4281] = 4281,
  [4282] = 4282,
  [4283] = 3894,
  [4284] = 4166,
  [4285] = 3891,
  [4286] = 3892,
  [4287] = 3895,
  [4288] = 3897,
  [4289] = 3898,
  [4290] = 4282,
  [4291] = 4281,
  [4292] = 4281,
  [4293] = 3887,
  [4294] = 3899,
  [4295] = 3885,
  [4296] = 4282,
  [4297] = 3883,
  [4298] = 3889,
  [4299] = 4282,
  [4300] = 4281,
  [4301] = 4301,
  [4302] = 4281,
  [4303] = 3863,
  [4304] = 4282,
  [4305] = 4281,
  [4306] = 3875,
  [4307] = 4282,
  [4308] = 4308,
  [4309] = 4308,
  [4310] = 4308,
  [4311] = 4308,
  [4312] = 4308,
  [4313] = 4308,
  [4314] = 2423,
  [4315] = 4315,
  [4316] = 4316,
  [4317] = 4315,
  [4318] = 4318,
  [4319] = 4319,
  [4320] = 4320,
  [4321] = 4316,
  [4322] = 4316,
  [4323] = 4318,
  [4324] = 4318,
  [4325] = 4325,
  [4326] = 4326,
  [4327] = 4327,
  [4328] = 4319,
  [4329] = 4326,
  [4330] = 4316,
  [4331] = 4327,
  [4332] = 4327,
  [4333] = 4326,
  [4334] = 4315,
  [4335] = 4320,
  [4336] = 4325,
  [4337] = 4319,
  [4338] = 4318,
  [4339] = 4325,
  [4340] = 4318,
  [4341] = 4320,
  [4342] = 4326,
  [4343] = 4315,
  [4344] = 4325,
  [4345] = 4320,
  [4346] = 4315,
  [4347] = 4327,
  [4348] = 4327,
  [4349] = 4325,
  [4350] = 4319,
  [4351] = 4326,
  [4352] = 4320,
  [4353] = 4319,
  [4354] = 4315,
  [4355] = 4320,
  [4356] = 4325,
  [4357] = 4315,
  [4358] = 4318,
  [4359] = 4320,
  [4360] = 4325,
  [4361] = 4326,
  [4362] = 4327,
  [4363] = 4327,
  [4364] = 4315,
  [4365] = 4320,
  [4366] = 4325,
  [4367] = 4316,
  [4368] = 4318,
  [4369] = 4319,
  [4370] = 4316,
  [4371] = 4316,
  [4372] = 4326,
  [4373] = 4319,
  [4374] = 4319,
  [4375] = 4318,
  [4376] = 4326,
  [4377] = 4316,
  [4378] = 4327,
  [4379] = 4379,
  [4380] = 4380,
  [4381] = 4381,
  [4382] = 4382,
  [4383] = 4381,
  [4384] = 4384,
  [4385] = 4385,
  [4386] = 4381,
  [4387] = 4387,
  [4388] = 4388,
  [4389] = 4384,
  [4390] = 4390,
  [4391] = 4388,
  [4392] = 4390,
  [4393] = 4393,
  [4394] = 4394,
  [4395] = 4395,
  [4396] = 4395,
  [4397] = 4397,
  [4398] = 4388,
  [4399] = 4388,
  [4400] = 4400,
  [4401] = 4401,
  [4402] = 4390,
  [4403] = 4382,
  [4404] = 4394,
  [4405] = 4385,
  [4406] = 4401,
  [4407] = 4407,
  [4408] = 4408,
  [4409] = 4381,
  [4410] = 4397,
  [4411] = 4384,
  [4412] = 4412,
  [4413] = 4413,
  [4414] = 4412,
  [4415] = 4380,
  [4416] = 4416,
  [4417] = 4417,
  [4418] = 4384,
  [4419] = 4387,
  [4420] = 4380,
  [4421] = 4416,
  [4422] = 4412,
  [4423] = 4423,
  [4424] = 4424,
  [4425] = 4425,
  [4426] = 4417,
  [4427] = 4417,
  [4428] = 4379,
  [4429] = 4393,
  [4430] = 4380,
  [4431] = 4380,
  [4432] = 4417,
  [4433] = 4412,
  [4434] = 4384,
  [4435] = 4381,
  [4436] = 4390,
  [4437] = 4394,
  [4438] = 4395,
  [4439] = 4388,
  [4440] = 4390,
  [4441] = 4387,
  [4442] = 4424,
  [4443] = 4423,
  [4444] = 4425,
  [4445] = 4379,
  [4446] = 4417,
  [4447] = 4417,
  [4448] = 4448,
  [4449] = 4394,
  [4450] = 4450,
  [4451] = 4395,
  [4452] = 4408,
  [4453] = 4407,
  [4454] = 4401,
  [4455] = 4385,
  [4456] = 4400,
  [4457] = 4412,
  [4458] = 4393,
  [4459] = 4397,
  [4460] = 4382,
  [4461] = 4413,
  [4462] = 4397,
  [4463] = 4416,
  [4464] = 4385,
  [4465] = 4416,
  [4466] = 4416,
  [4467] = 4412,
  [4468] = 4388,
  [4469] = 4448,
  [4470] = 4384,
  [4471] = 4395,
  [4472] = 4412,
  [4473] = 4379,
  [4474] = 4417,
  [4475] = 4413,
  [4476] = 4381,
  [4477] = 4382,
  [4478] = 4400,
  [4479] = 4382,
  [4480] = 4450,
  [4481] = 4425,
  [4482] = 4400,
  [4483] = 4416,
  [4484] = 4408,
  [4485] = 4393,
  [4486] = 4401,
  [4487] = 4407,
  [4488] = 4387,
  [4489] = 4423,
  [4490] = 4425,
  [4491] = 4448,
  [4492] = 4380,
  [4493] = 4448,
  [4494] = 4450,
  [4495] = 4397,
  [4496] = 4416,
  [4497] = 4450,
  [4498] = 4424,
  [4499] = 4408,
  [4500] = 4385,
  [4501] = 4388,
  [4502] = 4394,
  [4503] = 4394,
  [4504] = 4423,
  [4505] = 4381,
  [4506] = 4393,
  [4507] = 4413,
  [4508] = 4408,
  [4509] = 4397,
  [4510] = 4390,
  [4511] = 4395,
  [4512] = 4413,
  [4513] = 4397,
  [4514] = 4413,
  [4515] = 4448,
  [4516] = 4424,
  [4517] = 4382,
  [4518] = 4408,
  [4519] = 4401,
  [4520] = 4395,
  [4521] = 4407,
  [4522] = 4412,
  [4523] = 4401,
  [4524] = 4407,
  [4525] = 4382,
  [4526] = 4408,
  [4527] = 4413,
  [4528] = 4407,
  [4529] = 4401,
  [4530] = 4381,
  [4531] = 4400,
  [4532] = 4393,
  [4533] = 4425,
  [4534] = 4450,
  [4535] = 4379,
  [4536] = 4423,
  [4537] = 4380,
  [4538] = 4416,
  [4539] = 4388,
  [4540] = 4424,
  [4541] = 4424,
  [4542] = 4390,
  [4543] = 4393,
  [4544] = 4450,
  [4545] = 4400,
  [4546] = 4384,
  [4547] = 4413,
  [4548] = 4401,
  [4549] = 4387,
  [4550] = 4407,
  [4551] = 4448,
  [4552] = 4423,
  [4553] = 4397,
  [4554] = 4450,
  [4555] = 4417,
  [4556] = 4380,
  [4557] = 4448,
  [4558] = 4385,
  [4559] = 4382,
  [4560] = 4379,
  [4561] = 4394,
  [4562] = 4400,
  [4563] = 4385,
  [4564] = 4425,
  [4565] = 4424,
  [4566] = 4387,
  [4567] = 4423,
  [4568] = 4448,
  [4569] = 4394,
  [4570] = 4393,
  [4571] = 4387,
  [4572] = 4425,
  [4573] = 4450,
  [4574] = 4424,
  [4575] = 4400,
  [4576] = 4387,
  [4577] = 4379,
  [4578] = 4407,
  [4579] = 4384,
  [4580] = 4390,
  [4581] = 4423,
  [4582] = 4425,
  [4583] = 4408,
  [4584] = 4395,
  [4585] = 4379,
  [4586] = 4385,
  [4587] = 3251,
  [4588] = 3263,
  [4589] = 3250,
  [4590] = 3246,
  [4591] = 3245,
  [4592] = 3243,
  [4593] = 3259,
  [4594] = 3206,
  [4595] = 3207,
  [4596] = 3205,
  [4597] = 3205,
  [4598] = 626,
  [4599] = 3207,
  [4600] = 637,
  [4601] = 2405,
  [4602] = 639,
  [4603] = 636,
  [4604] = 3206,
  [4605] = 627,
  [4606] = 634,
  [4607] = 628,
  [4608] = 623,
  [4609] = 621,
  [4610] = 630,
  [4611] = 631,
  [4612] = 633,
  [4613] = 629,
  [4614] = 624,
  [4615] = 2416,
  [4616] = 625,
  [4617] = 632,
  [4618] = 2411,
  [4619] = 2399,
  [4620] = 3207,
  [4621] = 3205,
  [4622] = 3206,
  [4623] = 3206,
  [4624] = 2406,
  [4625] = 3205,
  [4626] = 2421,
  [4627] = 3205,
  [4628] = 3207,
  [4629] = 3207,
  [4630] = 3206,
  [4631] = 2418,
  [4632] = 2421,
  [4633] = 2421,
  [4634] = 2422,
  [4635] = 3206,
  [4636] = 2420,
  [4637] = 2419,
  [4638] = 2421,
  [4639] = 3315,
  [4640] = 2406,
  [4641] = 3318,
  [4642] = 2421,
  [4643] = 3316,
  [4644] = 2422,
  [4645] = 3259,
  [4646] = 3250,
  [4647] = 2419,
  [4648] = 3245,
  [4649] = 2418,
  [4650] = 4650,
  [4651] = 4651,
  [4652] = 3251,
  [4653] = 3246,
  [4654] = 2420,
  [4655] = 3243,
  [4656] = 3263,
  [4657] = 3599,
  [4658] = 3579,
  [4659] = 3616,
  [4660] = 3608,
  [4661] = 3590,
  [4662] = 3548,
  [4663] = 3551,
  [4664] = 3619,
  [4665] = 3553,
  [4666] = 3505,
  [4667] = 3580,
  [4668] = 4668,
  [4669] = 3316,
  [4670] = 626,
  [4671] = 4671,
  [4672] = 627,
  [4673] = 3594,
  [4674] = 4674,
  [4675] = 4675,
  [4676] = 2399,
  [4677] = 621,
  [4678] = 4674,
  [4679] = 4679,
  [4680] = 4680,
  [4681] = 629,
  [4682] = 4682,
  [4683] = 4683,
  [4684] = 624,
  [4685] = 4685,
  [4686] = 4685,
  [4687] = 4687,
  [4688] = 4679,
  [4689] = 625,
  [4690] = 4690,
  [4691] = 4680,
  [4692] = 4692,
  [4693] = 4679,
  [4694] = 4683,
  [4695] = 4695,
  [4696] = 2405,
  [4697] = 4674,
  [4698] = 4687,
  [4699] = 3600,
  [4700] = 628,
  [4701] = 2411,
  [4702] = 4671,
  [4703] = 4671,
  [4704] = 4668,
  [4705] = 4675,
  [4706] = 4668,
  [4707] = 4675,
  [4708] = 4690,
  [4709] = 4668,
  [4710] = 4683,
  [4711] = 4682,
  [4712] = 4680,
  [4713] = 4675,
  [4714] = 634,
  [4715] = 2416,
  [4716] = 4671,
  [4717] = 4683,
  [4718] = 636,
  [4719] = 4679,
  [4720] = 4675,
  [4721] = 4685,
  [4722] = 4668,
  [4723] = 4695,
  [4724] = 4680,
  [4725] = 637,
  [4726] = 4674,
  [4727] = 4685,
  [4728] = 4679,
  [4729] = 4695,
  [4730] = 4680,
  [4731] = 631,
  [4732] = 4687,
  [4733] = 4674,
  [4734] = 4679,
  [4735] = 4687,
  [4736] = 4680,
  [4737] = 4682,
  [4738] = 4682,
  [4739] = 4690,
  [4740] = 4695,
  [4741] = 4674,
  [4742] = 4690,
  [4743] = 4680,
  [4744] = 4682,
  [4745] = 4683,
  [4746] = 4683,
  [4747] = 4685,
  [4748] = 4685,
  [4749] = 4685,
  [4750] = 4668,
  [4751] = 4687,
  [4752] = 4682,
  [4753] = 4668,
  [4754] = 3315,
  [4755] = 4671,
  [4756] = 4690,
  [4757] = 4675,
  [4758] = 4675,
  [4759] = 4687,
  [4760] = 4690,
  [4761] = 4682,
  [4762] = 4682,
  [4763] = 4695,
  [4764] = 4671,
  [4765] = 4695,
  [4766] = 4683,
  [4767] = 3586,
  [4768] = 4695,
  [4769] = 4675,
  [4770] = 632,
  [4771] = 3318,
  [4772] = 633,
  [4773] = 630,
  [4774] = 623,
  [4775] = 639,
  [4776] = 4685,
  [4777] = 4671,
  [4778] = 4679,
  [4779] = 4690,
  [4780] = 4674,
  [4781] = 4687,
  [4782] = 4668,
  [4783] = 4695,
  [4784] = 3316,
  [4785] = 4671,
  [4786] = 637,
  [4787] = 2421,
  [4788] = 3318,
  [4789] = 3315,
  [4790] = 4790,
  [4791] = 621,
  [4792] = 626,
  [4793] = 2416,
  [4794] = 2399,
  [4795] = 4795,
  [4796] = 2411,
  [4797] = 2405,
  [4798] = 4798,
  [4799] = 4799,
  [4800] = 623,
  [4801] = 629,
  [4802] = 624,
  [4803] = 625,
  [4804] = 628,
  [4805] = 631,
  [4806] = 632,
  [4807] = 636,
  [4808] = 633,
  [4809] = 630,
  [4810] = 634,
  [4811] = 627,
  [4812] = 4812,
  [4813] = 4813,
  [4814] = 639,
  [4815] = 4815,
  [4816] = 4816,
  [4817] = 4817,
  [4818] = 4818,
  [4819] = 4818,
  [4820] = 4820,
  [4821] = 4821,
  [4822] = 4822,
  [4823] = 4823,
  [4824] = 4824,
  [4825] = 4816,
  [4826] = 4826,
  [4827] = 3318,
  [4828] = 4828,
  [4829] = 4829,
  [4830] = 4830,
  [4831] = 4831,
  [4832] = 4832,
  [4833] = 4821,
  [4834] = 4832,
  [4835] = 4817,
  [4836] = 4836,
  [4837] = 4831,
  [4838] = 4820,
  [4839] = 4839,
  [4840] = 4823,
  [4841] = 4831,
  [4842] = 4842,
  [4843] = 4842,
  [4844] = 4844,
  [4845] = 4822,
  [4846] = 4820,
  [4847] = 4826,
  [4848] = 4832,
  [4849] = 4824,
  [4850] = 4828,
  [4851] = 4823,
  [4852] = 4839,
  [4853] = 4822,
  [4854] = 4836,
  [4855] = 4818,
  [4856] = 4826,
  [4857] = 4829,
  [4858] = 4823,
  [4859] = 4859,
  [4860] = 4831,
  [4861] = 4861,
  [4862] = 4820,
  [4863] = 4815,
  [4864] = 4830,
  [4865] = 4815,
  [4866] = 4832,
  [4867] = 4818,
  [4868] = 4830,
  [4869] = 4869,
  [4870] = 4816,
  [4871] = 4871,
  [4872] = 4816,
  [4873] = 4842,
  [4874] = 3499,
  [4875] = 4836,
  [4876] = 4876,
  [4877] = 4816,
  [4878] = 4816,
  [4879] = 4831,
  [4880] = 4830,
  [4881] = 4844,
  [4882] = 4828,
  [4883] = 4823,
  [4884] = 4817,
  [4885] = 4824,
  [4886] = 4820,
  [4887] = 4887,
  [4888] = 4820,
  [4889] = 4821,
  [4890] = 4836,
  [4891] = 4816,
  [4892] = 4824,
  [4893] = 4830,
  [4894] = 4839,
  [4895] = 4832,
  [4896] = 4876,
  [4897] = 4844,
  [4898] = 4887,
  [4899] = 4836,
  [4900] = 4820,
  [4901] = 4820,
  [4902] = 4821,
  [4903] = 4861,
  [4904] = 4826,
  [4905] = 4830,
  [4906] = 4818,
  [4907] = 4816,
  [4908] = 4836,
  [4909] = 4871,
  [4910] = 3315,
  [4911] = 4859,
  [4912] = 4871,
  [4913] = 4829,
  [4914] = 4842,
  [4915] = 4876,
  [4916] = 4816,
  [4917] = 4844,
  [4918] = 4816,
  [4919] = 4859,
  [4920] = 4822,
  [4921] = 4815,
  [4922] = 4887,
  [4923] = 4861,
  [4924] = 4861,
  [4925] = 4817,
  [4926] = 4887,
  [4927] = 4828,
  [4928] = 4817,
  [4929] = 4887,
  [4930] = 4824,
  [4931] = 4820,
  [4932] = 4871,
  [4933] = 4861,
  [4934] = 4821,
  [4935] = 4859,
  [4936] = 4844,
  [4937] = 4842,
  [4938] = 4836,
  [4939] = 4815,
  [4940] = 4876,
  [4941] = 4859,
  [4942] = 4830,
  [4943] = 4871,
  [4944] = 4831,
  [4945] = 4876,
  [4946] = 4826,
  [4947] = 4820,
  [4948] = 4820,
  [4949] = 4829,
  [4950] = 4832,
  [4951] = 4826,
  [4952] = 4859,
  [4953] = 4876,
  [4954] = 4871,
  [4955] = 4816,
  [4956] = 4817,
  [4957] = 4823,
  [4958] = 4826,
  [4959] = 4887,
  [4960] = 4829,
  [4961] = 4861,
  [4962] = 3316,
  [4963] = 4832,
  [4964] = 4844,
  [4965] = 4815,
  [4966] = 4816,
  [4967] = 4842,
  [4968] = 4820,
  [4969] = 4816,
  [4970] = 4818,
  [4971] = 4829,
  [4972] = 4828,
  [4973] = 4820,
  [4974] = 4824,
  [4975] = 4828,
  [4976] = 4821,
  [4977] = 4818,
  [4978] = 4822,
  [4979] = 4822,
  [4980] = 4980,
  [4981] = 4981,
  [4982] = 4981,
  [4983] = 4983,
  [4984] = 4981,
  [4985] = 4981,
  [4986] = 4981,
  [4987] = 4987,
  [4988] = 4981,
  [4989] = 4989,
  [4990] = 3494,
  [4991] = 4991,
  [4992] = 4981,
  [4993] = 4993,
  [4994] = 4994,
  [4995] = 2406,
  [4996] = 3493,
  [4997] = 3491,
  [4998] = 4998,
  [4999] = 4999,
  [5000] = 4981,
  [5001] = 3490,
  [5002] = 5002,
  [5003] = 5003,
  [5004] = 3497,
  [5005] = 3499,
  [5006] = 5006,
  [5007] = 3615,
  [5008] = 3259,
  [5009] = 5009,
  [5010] = 5006,
  [5011] = 3243,
  [5012] = 5009,
  [5013] = 2420,
  [5014] = 3605,
  [5015] = 3251,
  [5016] = 3263,
  [5017] = 3499,
  [5018] = 5018,
  [5019] = 5009,
  [5020] = 2419,
  [5021] = 5018,
  [5022] = 5022,
  [5023] = 5009,
  [5024] = 5009,
  [5025] = 3250,
  [5026] = 5018,
  [5027] = 5027,
  [5028] = 2418,
  [5029] = 5009,
  [5030] = 5009,
  [5031] = 5018,
  [5032] = 5018,
  [5033] = 5018,
  [5034] = 5006,
  [5035] = 3610,
  [5036] = 5009,
  [5037] = 5018,
  [5038] = 3245,
  [5039] = 5027,
  [5040] = 5018,
  [5041] = 2422,
  [5042] = 5006,
  [5043] = 5043,
  [5044] = 5043,
  [5045] = 5045,
  [5046] = 5046,
  [5047] = 3610,
  [5048] = 3605,
  [5049] = 5045,
  [5050] = 5045,
  [5051] = 3491,
  [5052] = 3615,
  [5053] = 3493,
  [5054] = 5054,
  [5055] = 5045,
  [5056] = 3497,
  [5057] = 5057,
  [5058] = 5043,
  [5059] = 5059,
  [5060] = 638,
  [5061] = 5043,
  [5062] = 5043,
  [5063] = 5045,
  [5064] = 5059,
  [5065] = 3494,
  [5066] = 5045,
  [5067] = 3490,
  [5068] = 5043,
  [5069] = 5069,
  [5070] = 5070,
  [5071] = 5071,
  [5072] = 3580,
  [5073] = 3553,
  [5074] = 3499,
  [5075] = 3490,
  [5076] = 3499,
  [5077] = 5077,
  [5078] = 3493,
  [5079] = 3497,
  [5080] = 3615,
  [5081] = 3610,
  [5082] = 5070,
  [5083] = 5083,
  [5084] = 3605,
  [5085] = 3491,
  [5086] = 5086,
  [5087] = 3494,
  [5088] = 5088,
  [5089] = 5077,
  [5090] = 5090,
  [5091] = 5090,
  [5092] = 3490,
  [5093] = 5090,
  [5094] = 5094,
  [5095] = 3497,
  [5096] = 3493,
  [5097] = 5094,
  [5098] = 5094,
  [5099] = 3490,
  [5100] = 5090,
  [5101] = 5090,
  [5102] = 3497,
  [5103] = 3494,
  [5104] = 3494,
  [5105] = 5094,
  [5106] = 3493,
  [5107] = 5090,
  [5108] = 3491,
  [5109] = 5109,
  [5110] = 5094,
  [5111] = 5111,
  [5112] = 5111,
  [5113] = 5109,
  [5114] = 5094,
  [5115] = 5109,
  [5116] = 5090,
  [5117] = 5117,
  [5118] = 5094,
  [5119] = 5111,
  [5120] = 5094,
  [5121] = 3491,
  [5122] = 5111,
  [5123] = 5094,
  [5124] = 5109,
  [5125] = 5090,
  [5126] = 5126,
  [5127] = 5109,
  [5128] = 5109,
  [5129] = 5094,
  [5130] = 5111,
  [5131] = 5131,
  [5132] = 5090,
  [5133] = 5133,
  [5134] = 5090,
  [5135] = 5090,
  [5136] = 5094,
  [5137] = 5111,
  [5138] = 5094,
  [5139] = 5094,
  [5140] = 5090,
  [5141] = 5090,
  [5142] = 5142,
  [5143] = 5143,
  [5144] = 5144,
  [5145] = 5145,
  [5146] = 5146,
  [5147] = 5146,
  [5148] = 5148,
  [5149] = 5149,
  [5150] = 5143,
  [5151] = 3580,
  [5152] = 5152,
  [5153] = 5146,
  [5154] = 1518,
  [5155] = 5144,
  [5156] = 5148,
  [5157] = 5148,
  [5158] = 5152,
  [5159] = 3615,
  [5160] = 5144,
  [5161] = 1558,
  [5162] = 5148,
  [5163] = 5144,
  [5164] = 665,
  [5165] = 5143,
  [5166] = 5166,
  [5167] = 664,
  [5168] = 5168,
  [5169] = 1524,
  [5170] = 5170,
  [5171] = 5148,
  [5172] = 5152,
  [5173] = 5152,
  [5174] = 5148,
  [5175] = 5152,
  [5176] = 5143,
  [5177] = 5177,
  [5178] = 3553,
  [5179] = 5144,
  [5180] = 3605,
  [5181] = 5152,
  [5182] = 3605,
  [5183] = 1380,
  [5184] = 5184,
  [5185] = 5152,
  [5186] = 5145,
  [5187] = 5152,
  [5188] = 5143,
  [5189] = 5146,
  [5190] = 3610,
  [5191] = 5144,
  [5192] = 666,
  [5193] = 5146,
  [5194] = 5145,
  [5195] = 5146,
  [5196] = 5196,
  [5197] = 3615,
  [5198] = 1522,
  [5199] = 5152,
  [5200] = 3610,
  [5201] = 5146,
  [5202] = 5144,
  [5203] = 5143,
  [5204] = 5146,
  [5205] = 5144,
  [5206] = 5144,
  [5207] = 5146,
  [5208] = 3608,
  [5209] = 5209,
  [5210] = 3505,
  [5211] = 5211,
  [5212] = 5209,
  [5213] = 3594,
  [5214] = 3586,
  [5215] = 3551,
  [5216] = 5216,
  [5217] = 5211,
  [5218] = 5211,
  [5219] = 3590,
  [5220] = 3548,
  [5221] = 3616,
  [5222] = 5222,
  [5223] = 5211,
  [5224] = 3600,
  [5225] = 5222,
  [5226] = 5222,
  [5227] = 3579,
  [5228] = 5222,
  [5229] = 5046,
  [5230] = 5059,
  [5231] = 3599,
  [5232] = 3619,
  [5233] = 5233,
  [5234] = 5209,
  [5235] = 5222,
  [5236] = 5209,
  [5237] = 5222,
  [5238] = 5238,
  [5239] = 5239,
  [5240] = 1293,
  [5241] = 5241,
  [5242] = 5242,
  [5243] = 5242,
  [5244] = 5077,
  [5245] = 5239,
  [5246] = 5238,
  [5247] = 5241,
  [5248] = 5239,
  [5249] = 5249,
  [5250] = 5250,
  [5251] = 5249,
  [5252] = 5252,
  [5253] = 5249,
  [5254] = 5252,
  [5255] = 5242,
  [5256] = 5252,
  [5257] = 5257,
  [5258] = 5239,
  [5259] = 5259,
  [5260] = 5242,
  [5261] = 5252,
  [5262] = 5249,
  [5263] = 1291,
  [5264] = 5250,
  [5265] = 5249,
  [5266] = 5239,
  [5267] = 5238,
  [5268] = 5268,
  [5269] = 5239,
  [5270] = 5270,
  [5271] = 5239,
  [5272] = 5272,
  [5273] = 5238,
  [5274] = 5249,
  [5275] = 5249,
  [5276] = 5241,
  [5277] = 5249,
  [5278] = 5238,
  [5279] = 5252,
  [5280] = 5238,
  [5281] = 5259,
  [5282] = 5250,
  [5283] = 5238,
  [5284] = 5284,
  [5285] = 5059,
  [5286] = 5239,
  [5287] = 5252,
  [5288] = 5242,
  [5289] = 5249,
  [5290] = 5238,
  [5291] = 5241,
  [5292] = 1291,
  [5293] = 5249,
  [5294] = 5238,
  [5295] = 5295,
  [5296] = 5238,
  [5297] = 5238,
  [5298] = 5250,
  [5299] = 5239,
  [5300] = 5239,
  [5301] = 5252,
  [5302] = 5241,
  [5303] = 5259,
  [5304] = 5242,
  [5305] = 5238,
  [5306] = 5249,
  [5307] = 5249,
  [5308] = 5239,
  [5309] = 5259,
  [5310] = 5241,
  [5311] = 5259,
  [5312] = 5250,
  [5313] = 5259,
  [5314] = 1293,
  [5315] = 5252,
  [5316] = 5250,
  [5317] = 5242,
  [5318] = 5239,
  [5319] = 5249,
  [5320] = 5070,
  [5321] = 5238,
  [5322] = 5239,
  [5323] = 5323,
  [5324] = 5242,
  [5325] = 5077,
  [5326] = 5326,
  [5327] = 5327,
  [5328] = 5326,
  [5329] = 5329,
  [5330] = 5330,
  [5331] = 5331,
  [5332] = 5332,
  [5333] = 5333,
  [5334] = 5334,
  [5335] = 5335,
  [5336] = 5336,
  [5337] = 5331,
  [5338] = 5338,
  [5339] = 5339,
  [5340] = 5340,
  [5341] = 5341,
  [5342] = 5342,
  [5343] = 5343,
  [5344] = 1291,
  [5345] = 5345,
  [5346] = 5346,
  [5347] = 5331,
  [5348] = 5070,
  [5349] = 5349,
  [5350] = 5350,
  [5351] = 5326,
  [5352] = 5333,
  [5353] = 5353,
  [5354] = 5345,
  [5355] = 5346,
  [5356] = 5353,
  [5357] = 5340,
  [5358] = 5358,
  [5359] = 5359,
  [5360] = 5360,
  [5361] = 5332,
  [5362] = 5349,
  [5363] = 5339,
  [5364] = 5349,
  [5365] = 5353,
  [5366] = 5366,
  [5367] = 5349,
  [5368] = 5345,
  [5369] = 5359,
  [5370] = 5370,
  [5371] = 5326,
  [5372] = 5372,
  [5373] = 5373,
  [5374] = 5341,
  [5375] = 5375,
  [5376] = 5360,
  [5377] = 5375,
  [5378] = 5378,
  [5379] = 5350,
  [5380] = 5331,
  [5381] = 5350,
  [5382] = 5358,
  [5383] = 5370,
  [5384] = 5373,
  [5385] = 5372,
  [5386] = 5333,
  [5387] = 5366,
  [5388] = 5334,
  [5389] = 5389,
  [5390] = 5339,
  [5391] = 5333,
  [5392] = 5327,
  [5393] = 5331,
  [5394] = 5346,
  [5395] = 5358,
  [5396] = 1298,
  [5397] = 5373,
  [5398] = 5341,
  [5399] = 5345,
  [5400] = 5400,
  [5401] = 5353,
  [5402] = 5345,
  [5403] = 5353,
  [5404] = 5370,
  [5405] = 5332,
  [5406] = 5359,
  [5407] = 5407,
  [5408] = 5339,
  [5409] = 5339,
  [5410] = 5372,
  [5411] = 5373,
  [5412] = 5372,
  [5413] = 5373,
  [5414] = 5372,
  [5415] = 5415,
  [5416] = 5416,
  [5417] = 5358,
  [5418] = 5326,
  [5419] = 5333,
  [5420] = 5375,
  [5421] = 5375,
  [5422] = 5370,
  [5423] = 5359,
  [5424] = 5360,
  [5425] = 5349,
  [5426] = 5360,
  [5427] = 1293,
  [5428] = 1291,
  [5429] = 5359,
  [5430] = 5333,
  [5431] = 1293,
  [5432] = 5375,
  [5433] = 5334,
  [5434] = 5366,
  [5435] = 5332,
  [5436] = 5366,
  [5437] = 5334,
  [5438] = 5346,
  [5439] = 5327,
  [5440] = 5340,
  [5441] = 5350,
  [5442] = 5442,
  [5443] = 5340,
  [5444] = 5332,
  [5445] = 5358,
  [5446] = 5373,
  [5447] = 5349,
  [5448] = 5448,
  [5449] = 5449,
  [5450] = 5339,
  [5451] = 5350,
  [5452] = 5334,
  [5453] = 5375,
  [5454] = 5454,
  [5455] = 5359,
  [5456] = 5350,
  [5457] = 5331,
  [5458] = 5346,
  [5459] = 5370,
  [5460] = 5358,
  [5461] = 5332,
  [5462] = 5345,
  [5463] = 5370,
  [5464] = 5341,
  [5465] = 5327,
  [5466] = 5326,
  [5467] = 5372,
  [5468] = 5353,
  [5469] = 5360,
  [5470] = 5360,
  [5471] = 5340,
  [5472] = 5472,
  [5473] = 5366,
  [5474] = 5334,
  [5475] = 5340,
  [5476] = 5476,
  [5477] = 5477,
  [5478] = 5346,
  [5479] = 5327,
  [5480] = 5341,
  [5481] = 5366,
  [5482] = 5327,
  [5483] = 5483,
  [5484] = 5484,
  [5485] = 5485,
  [5486] = 5486,
  [5487] = 5485,
  [5488] = 5488,
  [5489] = 5489,
  [5490] = 5490,
  [5491] = 5491,
  [5492] = 5492,
  [5493] = 5493,
  [5494] = 5492,
  [5495] = 5488,
  [5496] = 5496,
  [5497] = 5496,
  [5498] = 5484,
  [5499] = 5496,
  [5500] = 5490,
  [5501] = 5489,
  [5502] = 638,
  [5503] = 5491,
  [5504] = 5489,
  [5505] = 5493,
  [5506] = 5484,
  [5507] = 5490,
  [5508] = 5491,
  [5509] = 5492,
  [5510] = 5510,
  [5511] = 5511,
  [5512] = 5493,
  [5513] = 5488,
  [5514] = 5484,
  [5515] = 5485,
  [5516] = 5489,
  [5517] = 5517,
  [5518] = 5510,
  [5519] = 5519,
  [5520] = 5520,
  [5521] = 5511,
  [5522] = 5490,
  [5523] = 5496,
  [5524] = 5524,
  [5525] = 5525,
  [5526] = 5491,
  [5527] = 5488,
  [5528] = 1298,
  [5529] = 5493,
  [5530] = 5510,
  [5531] = 5488,
  [5532] = 5484,
  [5533] = 5511,
  [5534] = 5496,
  [5535] = 5491,
  [5536] = 5493,
  [5537] = 5484,
  [5538] = 5511,
  [5539] = 5510,
  [5540] = 5492,
  [5541] = 5490,
  [5542] = 5542,
  [5543] = 5492,
  [5544] = 5489,
  [5545] = 5545,
  [5546] = 5485,
  [5547] = 5496,
  [5548] = 5493,
  [5549] = 5511,
  [5550] = 5491,
  [5551] = 5545,
  [5552] = 5488,
  [5553] = 5553,
  [5554] = 5554,
  [5555] = 5511,
  [5556] = 5489,
  [5557] = 5490,
  [5558] = 5492,
  [5559] = 5510,
  [5560] = 5560,
  [5561] = 5510,
  [5562] = 5485,
  [5563] = 5563,
  [5564] = 1528,
  [5565] = 5565,
  [5566] = 5566,
  [5567] = 1386,
  [5568] = 5568,
  [5569] = 5569,
  [5570] = 5570,
  [5571] = 5568,
  [5572] = 5572,
  [5573] = 5563,
  [5574] = 5574,
  [5575] = 5563,
  [5576] = 5576,
  [5577] = 5577,
  [5578] = 1373,
  [5579] = 5579,
  [5580] = 5580,
  [5581] = 1478,
  [5582] = 5582,
  [5583] = 5583,
  [5584] = 5580,
  [5585] = 5585,
  [5586] = 5586,
  [5587] = 1372,
  [5588] = 5588,
  [5589] = 1440,
  [5590] = 1392,
  [5591] = 1390,
  [5592] = 1387,
  [5593] = 5576,
  [5594] = 5570,
  [5595] = 1385,
  [5596] = 1433,
  [5597] = 5597,
  [5598] = 1382,
  [5599] = 5574,
  [5600] = 1378,
  [5601] = 1376,
  [5602] = 1375,
  [5603] = 5603,
  [5604] = 5568,
  [5605] = 1447,
  [5606] = 5576,
  [5607] = 1374,
  [5608] = 5608,
  [5609] = 5586,
  [5610] = 5577,
  [5611] = 5583,
  [5612] = 5612,
  [5613] = 5613,
  [5614] = 5576,
  [5615] = 5603,
  [5616] = 5616,
  [5617] = 5580,
  [5618] = 5576,
  [5619] = 5586,
  [5620] = 1391,
  [5621] = 5621,
  [5622] = 5608,
  [5623] = 5570,
  [5624] = 1354,
  [5625] = 5625,
  [5626] = 5577,
  [5627] = 1425,
  [5628] = 5628,
  [5629] = 1428,
  [5630] = 5630,
  [5631] = 1430,
  [5632] = 1441,
  [5633] = 5582,
  [5634] = 1442,
  [5635] = 1491,
  [5636] = 5636,
  [5637] = 1389,
  [5638] = 5638,
  [5639] = 5583,
  [5640] = 5583,
  [5641] = 5568,
  [5642] = 5642,
  [5643] = 5570,
  [5644] = 5616,
  [5645] = 5608,
  [5646] = 5646,
  [5647] = 1530,
  [5648] = 5648,
  [5649] = 1536,
  [5650] = 5650,
  [5651] = 1537,
  [5652] = 5582,
  [5653] = 1539,
  [5654] = 5654,
  [5655] = 5650,
  [5656] = 5603,
  [5657] = 1557,
  [5658] = 1556,
  [5659] = 1555,
  [5660] = 5577,
  [5661] = 1553,
  [5662] = 1552,
  [5663] = 5563,
  [5664] = 1546,
  [5665] = 1543,
  [5666] = 1540,
  [5667] = 5577,
  [5668] = 5586,
  [5669] = 5669,
  [5670] = 5570,
  [5671] = 1525,
  [5672] = 1523,
  [5673] = 1521,
  [5674] = 5583,
  [5675] = 1517,
  [5676] = 1513,
  [5677] = 1504,
  [5678] = 5583,
  [5679] = 1503,
  [5680] = 5583,
  [5681] = 1488,
  [5682] = 1370,
  [5683] = 1482,
  [5684] = 1481,
  [5685] = 5580,
  [5686] = 5577,
  [5687] = 1480,
  [5688] = 5688,
  [5689] = 1476,
  [5690] = 5690,
  [5691] = 1550,
  [5692] = 5603,
  [5693] = 5576,
  [5694] = 5608,
  [5695] = 1471,
  [5696] = 1466,
  [5697] = 1462,
  [5698] = 1455,
  [5699] = 5580,
  [5700] = 5700,
  [5701] = 5701,
  [5702] = 5563,
  [5703] = 1487,
  [5704] = 1372,
  [5705] = 5705,
  [5706] = 5568,
  [5707] = 5583,
  [5708] = 5563,
  [5709] = 5568,
  [5710] = 5586,
  [5711] = 5570,
  [5712] = 5582,
  [5713] = 5608,
  [5714] = 1440,
  [5715] = 5576,
  [5716] = 5603,
  [5717] = 5603,
  [5718] = 5616,
  [5719] = 5582,
  [5720] = 5650,
  [5721] = 5721,
  [5722] = 5576,
  [5723] = 1373,
  [5724] = 5608,
  [5725] = 5580,
  [5726] = 5726,
  [5727] = 5582,
  [5728] = 5728,
  [5729] = 5586,
  [5730] = 1515,
  [5731] = 5731,
  [5732] = 5732,
  [5733] = 5733,
  [5734] = 5734,
  [5735] = 5735,
  [5736] = 5736,
  [5737] = 5737,
  [5738] = 5737,
  [5739] = 5739,
  [5740] = 5740,
  [5741] = 5741,
  [5742] = 5742,
  [5743] = 5743,
  [5744] = 5744,
  [5745] = 5744,
  [5746] = 5746,
  [5747] = 5743,
  [5748] = 5748,
  [5749] = 5749,
  [5750] = 5628,
  [5751] = 5751,
  [5752] = 5752,
  [5753] = 5753,
  [5754] = 5754,
  [5755] = 5755,
  [5756] = 5756,
  [5757] = 5757,
  [5758] = 5758,
  [5759] = 5759,
  [5760] = 5760,
  [5761] = 5761,
  [5762] = 5762,
  [5763] = 5763,
  [5764] = 5764,
  [5765] = 5765,
  [5766] = 5766,
  [5767] = 5767,
  [5768] = 5768,
  [5769] = 5769,
  [5770] = 5770,
  [5771] = 5771,
  [5772] = 5772,
  [5773] = 5773,
  [5774] = 5774,
  [5775] = 5775,
  [5776] = 5776,
  [5777] = 5777,
  [5778] = 5778,
  [5779] = 5732,
  [5780] = 5780,
  [5781] = 5781,
  [5782] = 5782,
  [5783] = 5783,
  [5784] = 5784,
  [5785] = 5785,
  [5786] = 5786,
  [5787] = 5787,
  [5788] = 5788,
  [5789] = 5789,
  [5790] = 5790,
  [5791] = 5791,
  [5792] = 5792,
  [5793] = 5793,
  [5794] = 5794,
  [5795] = 5795,
  [5796] = 5796,
  [5797] = 5797,
  [5798] = 5798,
  [5799] = 5799,
  [5800] = 5800,
  [5801] = 5801,
  [5802] = 5802,
  [5803] = 5803,
  [5804] = 5804,
  [5805] = 5805,
  [5806] = 5806,
  [5807] = 5807,
  [5808] = 5808,
  [5809] = 5809,
  [5810] = 5742,
  [5811] = 5811,
  [5812] = 5752,
  [5813] = 5813,
  [5814] = 5814,
  [5815] = 5815,
  [5816] = 5816,
  [5817] = 5813,
  [5818] = 5818,
  [5819] = 5819,
  [5820] = 5820,
  [5821] = 5821,
  [5822] = 5822,
  [5823] = 5823,
  [5824] = 5824,
  [5825] = 5825,
  [5826] = 5737,
  [5827] = 5827,
  [5828] = 5739,
  [5829] = 5829,
  [5830] = 5808,
  [5831] = 5831,
  [5832] = 5733,
  [5833] = 5753,
  [5834] = 5754,
  [5835] = 5835,
  [5836] = 5836,
  [5837] = 5762,
  [5838] = 5766,
  [5839] = 5769,
  [5840] = 5818,
  [5841] = 5823,
  [5842] = 5825,
  [5843] = 5831,
  [5844] = 5769,
  [5845] = 5818,
  [5846] = 5823,
  [5847] = 5847,
  [5848] = 5766,
  [5849] = 5849,
  [5850] = 5849,
  [5851] = 5735,
  [5852] = 5825,
  [5853] = 5831,
  [5854] = 5811,
  [5855] = 5847,
  [5856] = 5741,
  [5857] = 5748,
  [5858] = 5762,
  [5859] = 5859,
  [5860] = 5754,
  [5861] = 5734,
  [5862] = 5753,
  [5863] = 5818,
  [5864] = 5823,
  [5865] = 5836,
  [5866] = 5825,
  [5867] = 5824,
  [5868] = 5816,
  [5869] = 5758,
  [5870] = 5831,
  [5871] = 5814,
  [5872] = 5739,
  [5873] = 5768,
  [5874] = 5774,
  [5875] = 5775,
  [5876] = 5777,
  [5877] = 5821,
  [5878] = 5782,
  [5879] = 5835,
  [5880] = 5819,
  [5881] = 5749,
  [5882] = 5882,
  [5883] = 5786,
  [5884] = 5791,
  [5885] = 5793,
  [5886] = 5886,
  [5887] = 5887,
  [5888] = 5572,
  [5889] = 5889,
  [5890] = 5818,
  [5891] = 5761,
  [5892] = 5733,
  [5893] = 5807,
  [5894] = 5805,
  [5895] = 5806,
  [5896] = 5806,
  [5897] = 5897,
  [5898] = 5823,
  [5899] = 5804,
  [5900] = 5825,
  [5901] = 5757,
  [5902] = 5793,
  [5903] = 5831,
  [5904] = 5804,
  [5905] = 5829,
  [5906] = 5803,
  [5907] = 5791,
  [5908] = 5786,
  [5909] = 5827,
  [5910] = 5910,
  [5911] = 5814,
  [5912] = 5816,
  [5913] = 5824,
  [5914] = 5782,
  [5915] = 5822,
  [5916] = 5820,
  [5917] = 5777,
  [5918] = 5836,
  [5919] = 5775,
  [5920] = 5920,
  [5921] = 5774,
  [5922] = 5815,
  [5923] = 5768,
  [5924] = 5818,
  [5925] = 5823,
  [5926] = 5809,
  [5927] = 5825,
  [5928] = 5831,
  [5929] = 5802,
  [5930] = 5758,
  [5931] = 5801,
  [5932] = 5800,
  [5933] = 5933,
  [5934] = 5849,
  [5935] = 5799,
  [5936] = 5796,
  [5937] = 5889,
  [5938] = 5785,
  [5939] = 5847,
  [5940] = 5748,
  [5941] = 5735,
  [5942] = 5818,
  [5943] = 5741,
  [5944] = 5740,
  [5945] = 5823,
  [5946] = 5811,
  [5947] = 5735,
  [5948] = 5790,
  [5949] = 5787,
  [5950] = 5825,
  [5951] = 5831,
  [5952] = 5700,
  [5953] = 5787,
  [5954] = 5811,
  [5955] = 5784,
  [5956] = 5781,
  [5957] = 5957,
  [5958] = 5741,
  [5959] = 5769,
  [5960] = 5766,
  [5961] = 5762,
  [5962] = 5754,
  [5963] = 5753,
  [5964] = 5780,
  [5965] = 5739,
  [5966] = 5737,
  [5967] = 5818,
  [5968] = 5732,
  [5969] = 5823,
  [5970] = 5821,
  [5971] = 5819,
  [5972] = 5825,
  [5973] = 5831,
  [5974] = 5770,
  [5975] = 5748,
  [5976] = 5752,
  [5977] = 5977,
  [5978] = 5757,
  [5979] = 5829,
  [5980] = 5751,
  [5981] = 5887,
  [5982] = 5815,
  [5983] = 5807,
  [5984] = 5765,
  [5985] = 5985,
  [5986] = 5805,
  [5987] = 5804,
  [5988] = 5787,
  [5989] = 5749,
  [5990] = 5803,
  [5991] = 5784,
  [5992] = 5781,
  [5993] = 5764,
  [5994] = 5801,
  [5995] = 5800,
  [5996] = 5799,
  [5997] = 5763,
  [5998] = 5796,
  [5999] = 5999,
  [6000] = 6000,
  [6001] = 6001,
  [6002] = 5765,
  [6003] = 5764,
  [6004] = 5763,
  [6005] = 5790,
  [6006] = 5818,
  [6007] = 5823,
  [6008] = 5825,
  [6009] = 5789,
  [6010] = 5736,
  [6011] = 6011,
  [6012] = 5773,
  [6013] = 5831,
  [6014] = 5772,
  [6015] = 6015,
  [6016] = 5736,
  [6017] = 5771,
  [6018] = 5767,
  [6019] = 5740,
  [6020] = 5759,
  [6021] = 5755,
  [6022] = 5773,
  [6023] = 5749,
  [6024] = 5772,
  [6025] = 5771,
  [6026] = 5767,
  [6027] = 5772,
  [6028] = 5742,
  [6029] = 5743,
  [6030] = 5744,
  [6031] = 6011,
  [6032] = 6032,
  [6033] = 5773,
  [6034] = 5759,
  [6035] = 5751,
  [6036] = 5756,
  [6037] = 5758,
  [6038] = 6032,
  [6039] = 5752,
  [6040] = 5768,
  [6041] = 5790,
  [6042] = 5774,
  [6043] = 5755,
  [6044] = 5756,
  [6045] = 5755,
  [6046] = 5775,
  [6047] = 6000,
  [6048] = 5829,
  [6049] = 5761,
  [6050] = 5755,
  [6051] = 5753,
  [6052] = 5756,
  [6053] = 5762,
  [6054] = 6032,
  [6055] = 5777,
  [6056] = 5785,
  [6057] = 5782,
  [6058] = 5786,
  [6059] = 6059,
  [6060] = 5835,
  [6061] = 5831,
  [6062] = 6000,
  [6063] = 5759,
  [6064] = 5791,
  [6065] = 6065,
  [6066] = 5767,
  [6067] = 5736,
  [6068] = 5771,
  [6069] = 5793,
  [6070] = 5772,
  [6071] = 5773,
  [6072] = 5764,
  [6073] = 5835,
  [6074] = 6074,
  [6075] = 5760,
  [6076] = 5772,
  [6077] = 5744,
  [6078] = 5744,
  [6079] = 6011,
  [6080] = 5743,
  [6081] = 5743,
  [6082] = 5742,
  [6083] = 6083,
  [6084] = 6015,
  [6085] = 6085,
  [6086] = 5887,
  [6087] = 6087,
  [6088] = 6088,
  [6089] = 5740,
  [6090] = 6000,
  [6091] = 5760,
  [6092] = 5742,
  [6093] = 5829,
  [6094] = 5787,
  [6095] = 5790,
  [6096] = 5736,
  [6097] = 5740,
  [6098] = 5796,
  [6099] = 6099,
  [6100] = 6100,
  [6101] = 5799,
  [6102] = 5760,
  [6103] = 5800,
  [6104] = 5765,
  [6105] = 5999,
  [6106] = 5801,
  [6107] = 5736,
  [6108] = 5821,
  [6109] = 5763,
  [6110] = 5764,
  [6111] = 5765,
  [6112] = 6011,
  [6113] = 5803,
  [6114] = 5770,
  [6115] = 5736,
  [6116] = 6015,
  [6117] = 6117,
  [6118] = 6000,
  [6119] = 5757,
  [6120] = 5732,
  [6121] = 5780,
  [6122] = 5781,
  [6123] = 5784,
  [6124] = 5804,
  [6125] = 5835,
  [6126] = 5805,
  [6127] = 5790,
  [6128] = 5795,
  [6129] = 5807,
  [6130] = 5789,
  [6131] = 5785,
  [6132] = 5771,
  [6133] = 5827,
  [6134] = 5760,
  [6135] = 5798,
  [6136] = 6136,
  [6137] = 6011,
  [6138] = 5802,
  [6139] = 5999,
  [6140] = 5809,
  [6141] = 6015,
  [6142] = 5849,
  [6143] = 5785,
  [6144] = 5999,
  [6145] = 5763,
  [6146] = 5815,
  [6147] = 5815,
  [6148] = 5764,
  [6149] = 6000,
  [6150] = 5763,
  [6151] = 5757,
  [6152] = 5820,
  [6153] = 5822,
  [6154] = 5819,
  [6155] = 5821,
  [6156] = 5827,
  [6157] = 5829,
  [6158] = 5765,
  [6159] = 5757,
  [6160] = 5733,
  [6161] = 5829,
  [6162] = 5889,
  [6163] = 5737,
  [6164] = 5739,
  [6165] = 5753,
  [6166] = 5762,
  [6167] = 5751,
  [6168] = 6168,
  [6169] = 5701,
  [6170] = 5766,
  [6171] = 5769,
  [6172] = 5736,
  [6173] = 5765,
  [6174] = 5770,
  [6175] = 5808,
  [6176] = 5780,
  [6177] = 6177,
  [6178] = 5806,
  [6179] = 5781,
  [6180] = 5749,
  [6181] = 6181,
  [6182] = 5784,
  [6183] = 6011,
  [6184] = 6015,
  [6185] = 5847,
  [6186] = 5813,
  [6187] = 5889,
  [6188] = 6000,
  [6189] = 5733,
  [6190] = 5748,
  [6191] = 5790,
  [6192] = 5734,
  [6193] = 5735,
  [6194] = 5811,
  [6195] = 5819,
  [6196] = 5741,
  [6197] = 5825,
  [6198] = 5748,
  [6199] = 5789,
  [6200] = 5802,
  [6201] = 6015,
  [6202] = 5752,
  [6203] = 5836,
  [6204] = 5823,
  [6205] = 5770,
  [6206] = 5824,
  [6207] = 5816,
  [6208] = 6208,
  [6209] = 5814,
  [6210] = 5767,
  [6211] = 5809,
  [6212] = 5754,
  [6213] = 5751,
  [6214] = 5758,
  [6215] = 5815,
  [6216] = 5768,
  [6217] = 5732,
  [6218] = 6218,
  [6219] = 5780,
  [6220] = 5774,
  [6221] = 5775,
  [6222] = 5777,
  [6223] = 5781,
  [6224] = 5782,
  [6225] = 5829,
  [6226] = 5806,
  [6227] = 5809,
  [6228] = 6011,
  [6229] = 5820,
  [6230] = 5793,
  [6231] = 5791,
  [6232] = 6015,
  [6233] = 5786,
  [6234] = 5822,
  [6235] = 5784,
  [6236] = 5814,
  [6237] = 5816,
  [6238] = 5782,
  [6239] = 6000,
  [6240] = 5824,
  [6241] = 5827,
  [6242] = 5786,
  [6243] = 5791,
  [6244] = 5777,
  [6245] = 5775,
  [6246] = 5774,
  [6247] = 5793,
  [6248] = 5836,
  [6249] = 5768,
  [6250] = 5795,
  [6251] = 5829,
  [6252] = 5790,
  [6253] = 5758,
  [6254] = 6254,
  [6255] = 5798,
  [6256] = 6256,
  [6257] = 5806,
  [6258] = 6258,
  [6259] = 5835,
  [6260] = 6260,
  [6261] = 5889,
  [6262] = 5814,
  [6263] = 5816,
  [6264] = 5824,
  [6265] = 5836,
  [6266] = 6266,
  [6267] = 5789,
  [6268] = 6268,
  [6269] = 5821,
  [6270] = 5741,
  [6271] = 5811,
  [6272] = 5749,
  [6273] = 6273,
  [6274] = 5735,
  [6275] = 6275,
  [6276] = 5818,
  [6277] = 5829,
  [6278] = 5625,
  [6279] = 5823,
  [6280] = 5820,
  [6281] = 6281,
  [6282] = 5769,
  [6283] = 5766,
  [6284] = 5762,
  [6285] = 5754,
  [6286] = 5796,
  [6287] = 5753,
  [6288] = 5825,
  [6289] = 6011,
  [6290] = 5831,
  [6291] = 6015,
  [6292] = 5827,
  [6293] = 6000,
  [6294] = 6294,
  [6295] = 5739,
  [6296] = 5737,
  [6297] = 5799,
  [6298] = 5733,
  [6299] = 5835,
  [6300] = 5800,
  [6301] = 6301,
  [6302] = 6302,
  [6303] = 5829,
  [6304] = 5847,
  [6305] = 5759,
  [6306] = 5762,
  [6307] = 5753,
  [6308] = 5752,
  [6309] = 5801,
  [6310] = 5889,
  [6311] = 5803,
  [6312] = 6312,
  [6313] = 6313,
  [6314] = 5805,
  [6315] = 5818,
  [6316] = 5819,
  [6317] = 5807,
  [6318] = 5849,
  [6319] = 6000,
  [6320] = 5802,
  [6321] = 5889,
  [6322] = 5849,
  [6323] = 5829,
  [6324] = 5733,
  [6325] = 5757,
  [6326] = 6326,
  [6327] = 5755,
  [6328] = 5847,
  [6329] = 6329,
  [6330] = 6330,
  [6331] = 5829,
  [6332] = 5807,
  [6333] = 5827,
  [6334] = 5822,
  [6335] = 5820,
  [6336] = 5815,
  [6337] = 5805,
  [6338] = 5804,
  [6339] = 5803,
  [6340] = 5809,
  [6341] = 5801,
  [6342] = 5829,
  [6343] = 5757,
  [6344] = 5835,
  [6345] = 5800,
  [6346] = 5802,
  [6347] = 5799,
  [6348] = 6348,
  [6349] = 5789,
  [6350] = 5796,
  [6351] = 5784,
  [6352] = 5781,
  [6353] = 5818,
  [6354] = 5790,
  [6355] = 5823,
  [6356] = 5787,
  [6357] = 5749,
  [6358] = 5780,
  [6359] = 5815,
  [6360] = 5825,
  [6361] = 6011,
  [6362] = 5831,
  [6363] = 6363,
  [6364] = 5772,
  [6365] = 6015,
  [6366] = 5732,
  [6367] = 5773,
  [6368] = 6368,
  [6369] = 5772,
  [6370] = 5770,
  [6371] = 5765,
  [6372] = 5771,
  [6373] = 5764,
  [6374] = 5767,
  [6375] = 6000,
  [6376] = 5763,
  [6377] = 5999,
  [6378] = 5759,
  [6379] = 5755,
  [6380] = 5751,
  [6381] = 5760,
  [6382] = 5822,
  [6383] = 6383,
  [6384] = 5761,
  [6385] = 6032,
  [6386] = 6386,
  [6387] = 5756,
  [6388] = 5740,
  [6389] = 5784,
  [6390] = 5755,
  [6391] = 5742,
  [6392] = 6392,
  [6393] = 5743,
  [6394] = 5744,
  [6395] = 5829,
  [6396] = 5889,
  [6397] = 5736,
  [6398] = 5733,
  [6399] = 6032,
  [6400] = 5785,
  [6401] = 5756,
  [6402] = 6000,
  [6403] = 6403,
  [6404] = 6404,
  [6405] = 1373,
  [6406] = 1372,
  [6407] = 6407,
  [6408] = 6403,
  [6409] = 3802,
  [6410] = 6410,
  [6411] = 3806,
  [6412] = 3797,
  [6413] = 6413,
  [6414] = 6414,
  [6415] = 6415,
  [6416] = 6416,
  [6417] = 6417,
  [6418] = 6418,
  [6419] = 6419,
  [6420] = 6420,
  [6421] = 6421,
  [6422] = 6422,
  [6423] = 3796,
  [6424] = 1391,
  [6425] = 6425,
  [6426] = 6426,
  [6427] = 1440,
  [6428] = 6428,
  [6429] = 6429,
  [6430] = 6430,
  [6431] = 6431,
  [6432] = 6432,
  [6433] = 6413,
  [6434] = 6434,
  [6435] = 6435,
  [6436] = 6436,
  [6437] = 6437,
  [6438] = 6414,
  [6439] = 6439,
  [6440] = 3791,
  [6441] = 6434,
  [6442] = 6442,
  [6443] = 6443,
  [6444] = 6417,
  [6445] = 6445,
  [6446] = 6446,
  [6447] = 1515,
  [6448] = 6448,
  [6449] = 6449,
  [6450] = 6443,
  [6451] = 6449,
  [6452] = 6452,
  [6453] = 6453,
  [6454] = 3790,
  [6455] = 6455,
  [6456] = 6456,
  [6457] = 6457,
  [6458] = 6458,
  [6459] = 6459,
  [6460] = 6460,
  [6461] = 6461,
  [6462] = 6428,
  [6463] = 6463,
  [6464] = 6464,
  [6465] = 6431,
  [6466] = 6466,
  [6467] = 6467,
  [6468] = 6428,
  [6469] = 6469,
  [6470] = 6436,
  [6471] = 6431,
  [6472] = 6472,
  [6473] = 6458,
  [6474] = 6442,
  [6475] = 6420,
  [6476] = 6476,
  [6477] = 6477,
  [6478] = 6478,
  [6479] = 6479,
  [6480] = 6448,
  [6481] = 6481,
  [6482] = 6430,
  [6483] = 6483,
  [6484] = 6446,
  [6485] = 6435,
  [6486] = 6437,
  [6487] = 3789,
  [6488] = 6488,
  [6489] = 6489,
  [6490] = 6490,
  [6491] = 6464,
  [6492] = 6430,
  [6493] = 6443,
  [6494] = 6434,
  [6495] = 6410,
  [6496] = 6496,
  [6497] = 6403,
  [6498] = 6428,
  [6499] = 6431,
  [6500] = 6460,
  [6501] = 6407,
  [6502] = 1487,
  [6503] = 6436,
  [6504] = 6504,
  [6505] = 6505,
  [6506] = 6437,
  [6507] = 6507,
  [6508] = 6428,
  [6509] = 6509,
  [6510] = 6510,
  [6511] = 6417,
  [6512] = 6512,
  [6513] = 6434,
  [6514] = 6514,
  [6515] = 6504,
  [6516] = 6516,
  [6517] = 6403,
  [6518] = 6430,
  [6519] = 6478,
  [6520] = 6520,
  [6521] = 6481,
  [6522] = 6483,
  [6523] = 6523,
  [6524] = 6425,
  [6525] = 6429,
  [6526] = 6526,
  [6527] = 6527,
  [6528] = 6428,
  [6529] = 6445,
  [6530] = 6431,
  [6531] = 6431,
  [6532] = 6532,
  [6533] = 6469,
  [6534] = 6436,
  [6535] = 6535,
  [6536] = 6437,
  [6537] = 6537,
  [6538] = 6407,
  [6539] = 6477,
  [6540] = 6514,
  [6541] = 6523,
  [6542] = 6542,
  [6543] = 6543,
  [6544] = 1433,
  [6545] = 6545,
  [6546] = 6420,
  [6547] = 6547,
  [6548] = 6537,
  [6549] = 6549,
  [6550] = 6434,
  [6551] = 6467,
  [6552] = 6437,
  [6553] = 6466,
  [6554] = 6436,
  [6555] = 6404,
  [6556] = 6489,
  [6557] = 6489,
  [6558] = 6490,
  [6559] = 6559,
  [6560] = 6430,
  [6561] = 6561,
  [6562] = 6562,
  [6563] = 6425,
  [6564] = 6564,
  [6565] = 6436,
  [6566] = 6410,
  [6567] = 6429,
  [6568] = 6437,
  [6569] = 6464,
  [6570] = 6431,
  [6571] = 6410,
  [6572] = 6572,
  [6573] = 6428,
  [6574] = 6574,
  [6575] = 6463,
  [6576] = 6431,
  [6577] = 6403,
  [6578] = 6428,
  [6579] = 6579,
  [6580] = 1373,
  [6581] = 6490,
  [6582] = 6407,
  [6583] = 6583,
  [6584] = 6436,
  [6585] = 6585,
  [6586] = 6586,
  [6587] = 6437,
  [6588] = 6588,
  [6589] = 6589,
  [6590] = 6545,
  [6591] = 6591,
  [6592] = 6592,
  [6593] = 6453,
  [6594] = 6456,
  [6595] = 6425,
  [6596] = 6596,
  [6597] = 1372,
  [6598] = 6429,
  [6599] = 6445,
  [6600] = 1440,
  [6601] = 6601,
  [6602] = 6585,
  [6603] = 6579,
  [6604] = 6588,
  [6605] = 6596,
  [6606] = 6572,
  [6607] = 6420,
  [6608] = 6608,
  [6609] = 6432,
  [6610] = 6457,
  [6611] = 6591,
  [6612] = 6489,
  [6613] = 6613,
  [6614] = 6526,
  [6615] = 6458,
  [6616] = 6559,
  [6617] = 6574,
  [6618] = 6523,
  [6619] = 6559,
  [6620] = 6489,
  [6621] = 6410,
  [6622] = 6512,
  [6623] = 6514,
  [6624] = 6509,
  [6625] = 6403,
  [6626] = 6407,
  [6627] = 6436,
  [6628] = 6425,
  [6629] = 6429,
  [6630] = 6467,
  [6631] = 6445,
  [6632] = 6417,
  [6633] = 6437,
  [6634] = 6477,
  [6635] = 6483,
  [6636] = 6481,
  [6637] = 6572,
  [6638] = 6638,
  [6639] = 6458,
  [6640] = 6640,
  [6641] = 6435,
  [6642] = 6642,
  [6643] = 6643,
  [6644] = 6509,
  [6645] = 6457,
  [6646] = 6410,
  [6647] = 6460,
  [6648] = 6579,
  [6649] = 6403,
  [6650] = 6407,
  [6651] = 6651,
  [6652] = 6652,
  [6653] = 6653,
  [6654] = 6416,
  [6655] = 6535,
  [6656] = 6439,
  [6657] = 6425,
  [6658] = 6439,
  [6659] = 6504,
  [6660] = 6434,
  [6661] = 6429,
  [6662] = 6445,
  [6663] = 6430,
  [6664] = 6452,
  [6665] = 6421,
  [6666] = 6446,
  [6667] = 6452,
  [6668] = 6420,
  [6669] = 6669,
  [6670] = 6670,
  [6671] = 6417,
  [6672] = 6672,
  [6673] = 6585,
  [6674] = 6410,
  [6675] = 3804,
  [6676] = 6676,
  [6677] = 6466,
  [6678] = 6678,
  [6679] = 6413,
  [6680] = 6467,
  [6681] = 6442,
  [6682] = 6466,
  [6683] = 6425,
  [6684] = 6445,
  [6685] = 6457,
  [6686] = 6686,
  [6687] = 6687,
  [6688] = 6426,
  [6689] = 6417,
  [6690] = 6690,
  [6691] = 6469,
  [6692] = 6410,
  [6693] = 6413,
  [6694] = 6463,
  [6695] = 6432,
  [6696] = 6448,
  [6697] = 6592,
  [6698] = 6449,
  [6699] = 6426,
  [6700] = 6453,
  [6701] = 6453,
  [6702] = 6461,
  [6703] = 6449,
  [6704] = 6458,
  [6705] = 6678,
  [6706] = 6448,
  [6707] = 6707,
  [6708] = 6413,
  [6709] = 6709,
  [6710] = 6432,
  [6711] = 6711,
  [6712] = 6418,
  [6713] = 6676,
  [6714] = 6415,
  [6715] = 6430,
  [6716] = 6434,
  [6717] = 6717,
  [6718] = 6428,
  [6719] = 6719,
  [6720] = 6489,
  [6721] = 6676,
  [6722] = 6545,
  [6723] = 6410,
  [6724] = 6431,
  [6725] = 6464,
  [6726] = 6416,
  [6727] = 6676,
  [6728] = 6585,
  [6729] = 6490,
  [6730] = 6596,
  [6731] = 6443,
  [6732] = 6414,
  [6733] = 6410,
  [6734] = 6436,
  [6735] = 6416,
  [6736] = 6437,
  [6737] = 6404,
  [6738] = 6535,
  [6739] = 6651,
  [6740] = 6421,
  [6741] = 6404,
  [6742] = 6545,
  [6743] = 6404,
  [6744] = 6526,
  [6745] = 6504,
  [6746] = 6430,
  [6747] = 6416,
  [6748] = 6523,
  [6749] = 6434,
  [6750] = 6463,
  [6751] = 6591,
  [6752] = 6439,
  [6753] = 6512,
  [6754] = 6414,
  [6755] = 6676,
  [6756] = 6443,
  [6757] = 6410,
  [6758] = 6509,
  [6759] = 6759,
  [6760] = 6434,
  [6761] = 6415,
  [6762] = 6418,
  [6763] = 6403,
  [6764] = 6467,
  [6765] = 6426,
  [6766] = 6443,
  [6767] = 6414,
  [6768] = 6443,
  [6769] = 6769,
  [6770] = 6430,
  [6771] = 6676,
  [6772] = 6426,
  [6773] = 6574,
  [6774] = 6425,
  [6775] = 6413,
  [6776] = 6477,
  [6777] = 6477,
  [6778] = 6678,
  [6779] = 6779,
  [6780] = 6426,
  [6781] = 6413,
  [6782] = 6417,
  [6783] = 6463,
  [6784] = 6784,
  [6785] = 6469,
  [6786] = 6457,
  [6787] = 6466,
  [6788] = 6467,
  [6789] = 6452,
  [6790] = 6442,
  [6791] = 6458,
  [6792] = 6792,
  [6793] = 6434,
  [6794] = 6439,
  [6795] = 6434,
  [6796] = 6509,
  [6797] = 6430,
  [6798] = 6798,
  [6799] = 6512,
  [6800] = 6421,
  [6801] = 6801,
  [6802] = 6446,
  [6803] = 6457,
  [6804] = 6523,
  [6805] = 6504,
  [6806] = 6526,
  [6807] = 6535,
  [6808] = 6808,
  [6809] = 6809,
  [6810] = 6810,
  [6811] = 6460,
  [6812] = 6463,
  [6813] = 6526,
  [6814] = 6574,
  [6815] = 6466,
  [6816] = 6467,
  [6817] = 6481,
  [6818] = 6469,
  [6819] = 6545,
  [6820] = 6483,
  [6821] = 6821,
  [6822] = 6822,
  [6823] = 6823,
  [6824] = 6437,
  [6825] = 6591,
  [6826] = 6436,
  [6827] = 6458,
  [6828] = 6514,
  [6829] = 6490,
  [6830] = 6420,
  [6831] = 6831,
  [6832] = 6596,
  [6833] = 6833,
  [6834] = 6489,
  [6835] = 6559,
  [6836] = 6836,
  [6837] = 6585,
  [6838] = 6579,
  [6839] = 6464,
  [6840] = 6431,
  [6841] = 6572,
  [6842] = 6572,
  [6843] = 6510,
  [6844] = 6442,
  [6845] = 6430,
  [6846] = 6428,
  [6847] = 6432,
  [6848] = 6435,
  [6849] = 6579,
  [6850] = 6448,
  [6851] = 6449,
  [6852] = 6852,
  [6853] = 6461,
  [6854] = 6453,
  [6855] = 6421,
  [6856] = 6446,
  [6857] = 6585,
  [6858] = 6858,
  [6859] = 6559,
  [6860] = 6489,
  [6861] = 6861,
  [6862] = 6596,
  [6863] = 6504,
  [6864] = 6461,
  [6865] = 6428,
  [6866] = 6591,
  [6867] = 6431,
  [6868] = 6460,
  [6869] = 6464,
  [6870] = 6535,
  [6871] = 6428,
  [6872] = 6574,
  [6873] = 6514,
  [6874] = 6415,
  [6875] = 6478,
  [6876] = 6418,
  [6877] = 6481,
  [6878] = 6483,
  [6879] = 6483,
  [6880] = 6490,
  [6881] = 6481,
  [6882] = 6431,
  [6883] = 6436,
  [6884] = 6460,
  [6885] = 6445,
  [6886] = 6437,
  [6887] = 6514,
  [6888] = 6545,
  [6889] = 6572,
  [6890] = 6537,
  [6891] = 6891,
  [6892] = 6892,
  [6893] = 6535,
  [6894] = 6894,
  [6895] = 6504,
  [6896] = 6420,
  [6897] = 6638,
  [6898] = 6458,
  [6899] = 6489,
  [6900] = 6559,
  [6901] = 6526,
  [6902] = 6446,
  [6903] = 6523,
  [6904] = 6436,
  [6905] = 6437,
  [6906] = 6523,
  [6907] = 6512,
  [6908] = 6453,
  [6909] = 6638,
  [6910] = 6449,
  [6911] = 6448,
  [6912] = 6442,
  [6913] = 6579,
  [6914] = 6432,
  [6915] = 6469,
  [6916] = 6585,
  [6917] = 6588,
  [6918] = 6918,
  [6919] = 6592,
  [6920] = 6463,
  [6921] = 6921,
  [6922] = 6467,
  [6923] = 6466,
  [6924] = 6924,
  [6925] = 6596,
  [6926] = 6926,
  [6927] = 6927,
  [6928] = 6457,
  [6929] = 6421,
  [6930] = 6711,
  [6931] = 6591,
  [6932] = 6417,
  [6933] = 6430,
  [6934] = 6443,
  [6935] = 6434,
  [6936] = 6439,
  [6937] = 6512,
  [6938] = 6574,
  [6939] = 6416,
  [6940] = 6535,
  [6941] = 6477,
  [6942] = 6676,
  [6943] = 6509,
  [6944] = 6426,
  [6945] = 6413,
  [6946] = 6504,
  [6947] = 6947,
  [6948] = 6948,
  [6949] = 6949,
  [6950] = 6950,
  [6951] = 6951,
  [6952] = 6952,
  [6953] = 6953,
  [6954] = 6954,
  [6955] = 6955,
  [6956] = 6956,
  [6957] = 6957,
  [6958] = 6958,
  [6959] = 6959,
  [6960] = 6960,
  [6961] = 6961,
  [6962] = 6962,
  [6963] = 6963,
  [6964] = 6964,
  [6965] = 6965,
  [6966] = 6966,
  [6967] = 6967,
  [6968] = 6968,
  [6969] = 6969,
  [6970] = 6970,
  [6971] = 6971,
  [6972] = 6972,
  [6973] = 6973,
  [6974] = 6974,
  [6975] = 6975,
  [6976] = 6976,
  [6977] = 6977,
  [6978] = 6978,
  [6979] = 6979,
  [6980] = 6980,
  [6981] = 6981,
  [6982] = 6982,
  [6983] = 6983,
  [6984] = 6984,
  [6985] = 6985,
  [6986] = 6986,
  [6987] = 6987,
  [6988] = 6988,
  [6989] = 6989,
  [6990] = 6990,
  [6991] = 6991,
  [6992] = 6992,
  [6993] = 6993,
  [6994] = 6994,
  [6995] = 6995,
  [6996] = 6996,
  [6997] = 6997,
  [6998] = 6998,
  [6999] = 6999,
  [7000] = 7000,
  [7001] = 7001,
  [7002] = 7002,
  [7003] = 6968,
  [7004] = 6967,
  [7005] = 6966,
  [7006] = 6965,
  [7007] = 7007,
  [7008] = 7008,
  [7009] = 7009,
  [7010] = 7010,
  [7011] = 7011,
  [7012] = 7012,
  [7013] = 7013,
  [7014] = 7014,
  [7015] = 7015,
  [7016] = 6971,
  [7017] = 7017,
  [7018] = 7018,
  [7019] = 7019,
  [7020] = 7020,
  [7021] = 7021,
  [7022] = 7017,
  [7023] = 7023,
  [7024] = 7018,
  [7025] = 7025,
  [7026] = 7026,
  [7027] = 7027,
  [7028] = 7028,
  [7029] = 7023,
  [7030] = 7025,
  [7031] = 7031,
  [7032] = 7032,
  [7033] = 7026,
  [7034] = 7034,
  [7035] = 7035,
  [7036] = 7036,
  [7037] = 7037,
  [7038] = 7038,
  [7039] = 7034,
  [7040] = 7040,
  [7041] = 7035,
  [7042] = 7042,
  [7043] = 7036,
  [7044] = 7009,
  [7045] = 7045,
  [7046] = 7046,
  [7047] = 7002,
  [7048] = 7048,
  [7049] = 7049,
  [7050] = 6970,
  [7051] = 7051,
  [7052] = 6998,
  [7053] = 7053,
  [7054] = 7054,
  [7055] = 7055,
  [7056] = 6995,
  [7057] = 7036,
  [7058] = 7035,
  [7059] = 7034,
  [7060] = 7060,
  [7061] = 7061,
  [7062] = 7062,
  [7063] = 7026,
  [7064] = 6979,
  [7065] = 7065,
  [7066] = 7032,
  [7067] = 6977,
  [7068] = 7068,
  [7069] = 7025,
  [7070] = 7023,
  [7071] = 6984,
  [7072] = 7072,
  [7073] = 7073,
  [7074] = 6964,
  [7075] = 7018,
  [7076] = 7017,
  [7077] = 7077,
  [7078] = 7078,
  [7079] = 7079,
  [7080] = 6988,
  [7081] = 6949,
  [7082] = 6950,
  [7083] = 7011,
  [7084] = 6953,
  [7085] = 7010,
  [7086] = 7086,
  [7087] = 6965,
  [7088] = 7088,
  [7089] = 6969,
  [7090] = 6975,
  [7091] = 6966,
  [7092] = 7092,
  [7093] = 6967,
  [7094] = 6968,
  [7095] = 6994,
  [7096] = 6992,
  [7097] = 6948,
  [7098] = 6955,
  [7099] = 7099,
  [7100] = 6957,
  [7101] = 6958,
  [7102] = 7102,
  [7103] = 6999,
  [7104] = 6987,
  [7105] = 7079,
  [7106] = 6986,
  [7107] = 7073,
  [7108] = 7054,
  [7109] = 6948,
  [7110] = 7099,
  [7111] = 6982,
  [7112] = 6970,
  [7113] = 6971,
  [7114] = 7102,
  [7115] = 6981,
  [7116] = 7116,
  [7117] = 7117,
  [7118] = 7118,
  [7119] = 7119,
  [7120] = 7120,
  [7121] = 6981,
  [7122] = 6982,
  [7123] = 7123,
  [7124] = 7124,
  [7125] = 6971,
  [7126] = 6986,
  [7127] = 6987,
  [7128] = 6970,
  [7129] = 7129,
  [7130] = 7130,
  [7131] = 6950,
  [7132] = 6992,
  [7133] = 6958,
  [7134] = 6994,
  [7135] = 6957,
  [7136] = 6955,
  [7137] = 7137,
  [7138] = 7138,
  [7139] = 7139,
  [7140] = 7140,
  [7141] = 7141,
  [7142] = 7142,
  [7143] = 6968,
  [7144] = 6967,
  [7145] = 6966,
  [7146] = 6965,
  [7147] = 7147,
  [7148] = 7148,
  [7149] = 7140,
  [7150] = 7010,
  [7151] = 7011,
  [7152] = 7148,
  [7153] = 7141,
  [7154] = 7138,
  [7155] = 6975,
  [7156] = 6969,
  [7157] = 7139,
  [7158] = 7129,
  [7159] = 7137,
  [7160] = 6953,
  [7161] = 7017,
  [7162] = 7120,
  [7163] = 7018,
  [7164] = 7037,
  [7165] = 6983,
  [7166] = 6949,
  [7167] = 6988,
  [7168] = 7023,
  [7169] = 7025,
  [7170] = 7102,
  [7171] = 7032,
  [7172] = 7026,
  [7173] = 7034,
  [7174] = 7035,
  [7175] = 7036,
  [7176] = 6964,
  [7177] = 7099,
  [7178] = 7009,
  [7179] = 6948,
  [7180] = 7180,
  [7181] = 7002,
  [7182] = 6984,
  [7183] = 7054,
  [7184] = 7184,
  [7185] = 7073,
  [7186] = 6998,
  [7187] = 6977,
  [7188] = 6979,
  [7189] = 7079,
  [7190] = 6995,
  [7191] = 6999,
  [7192] = 7124,
  [7193] = 6995,
  [7194] = 7194,
  [7195] = 7195,
  [7196] = 7092,
  [7197] = 6979,
  [7198] = 7198,
  [7199] = 6998,
  [7200] = 7088,
  [7201] = 7123,
  [7202] = 6984,
  [7203] = 7086,
  [7204] = 7119,
  [7205] = 6964,
  [7206] = 7002,
  [7207] = 7009,
  [7208] = 7118,
  [7209] = 7065,
  [7210] = 6988,
  [7211] = 6949,
  [7212] = 6950,
  [7213] = 7117,
  [7214] = 6953,
  [7215] = 7061,
  [7216] = 7116,
  [7217] = 7060,
  [7218] = 7218,
  [7219] = 6969,
  [7220] = 6975,
  [7221] = 7055,
  [7222] = 7222,
  [7223] = 7053,
  [7224] = 7051,
  [7225] = 7049,
  [7226] = 7048,
  [7227] = 7046,
  [7228] = 6955,
  [7229] = 7040,
  [7230] = 6957,
  [7231] = 6958,
  [7232] = 7038,
  [7233] = 6998,
  [7234] = 7234,
  [7235] = 7014,
  [7236] = 7013,
  [7237] = 7021,
  [7238] = 7238,
  [7239] = 6973,
  [7240] = 7008,
  [7241] = 7007,
  [7242] = 6970,
  [7243] = 6971,
  [7244] = 7001,
  [7245] = 7180,
  [7246] = 6996,
  [7247] = 6989,
  [7248] = 6985,
  [7249] = 7023,
  [7250] = 6981,
  [7251] = 6982,
  [7252] = 7078,
  [7253] = 6986,
  [7254] = 6987,
  [7255] = 7092,
  [7256] = 7077,
  [7257] = 6974,
  [7258] = 6972,
  [7259] = 6992,
  [7260] = 6968,
  [7261] = 6994,
  [7262] = 6967,
  [7263] = 6966,
  [7264] = 6965,
  [7265] = 6963,
  [7266] = 6954,
  [7267] = 6952,
  [7268] = 6990,
  [7269] = 7269,
  [7270] = 6968,
  [7271] = 6967,
  [7272] = 6966,
  [7273] = 6965,
  [7274] = 7274,
  [7275] = 6995,
  [7276] = 6960,
  [7277] = 7010,
  [7278] = 7011,
  [7279] = 6951,
  [7280] = 7036,
  [7281] = 7035,
  [7282] = 7034,
  [7283] = 6956,
  [7284] = 7027,
  [7285] = 7026,
  [7286] = 6978,
  [7287] = 7032,
  [7288] = 7017,
  [7289] = 7088,
  [7290] = 7018,
  [7291] = 7291,
  [7292] = 7025,
  [7293] = 7027,
  [7294] = 7023,
  [7295] = 7025,
  [7296] = 7021,
  [7297] = 7026,
  [7298] = 7034,
  [7299] = 7035,
  [7300] = 7036,
  [7301] = 7020,
  [7302] = 7302,
  [7303] = 7303,
  [7304] = 6998,
  [7305] = 7305,
  [7306] = 7306,
  [7307] = 6997,
  [7308] = 6979,
  [7309] = 7018,
  [7310] = 7086,
  [7311] = 6988,
  [7312] = 6949,
  [7313] = 6950,
  [7314] = 7017,
  [7315] = 7315,
  [7316] = 7012,
  [7317] = 7000,
  [7318] = 6957,
  [7319] = 6958,
  [7320] = 7012,
  [7321] = 7072,
  [7322] = 7015,
  [7323] = 7011,
  [7324] = 6981,
  [7325] = 6994,
  [7326] = 6951,
  [7327] = 7010,
  [7328] = 6993,
  [7329] = 6968,
  [7330] = 6967,
  [7331] = 6966,
  [7332] = 6965,
  [7333] = 7120,
  [7334] = 7010,
  [7335] = 7335,
  [7336] = 6959,
  [7337] = 7017,
  [7338] = 6965,
  [7339] = 6966,
  [7340] = 7017,
  [7341] = 7341,
  [7342] = 7018,
  [7343] = 6967,
  [7344] = 6968,
  [7345] = 7018,
  [7346] = 7023,
  [7347] = 7025,
  [7348] = 6973,
  [7349] = 7026,
  [7350] = 7034,
  [7351] = 7035,
  [7352] = 7036,
  [7353] = 7019,
  [7354] = 7020,
  [7355] = 6988,
  [7356] = 6949,
  [7357] = 6950,
  [7358] = 6959,
  [7359] = 5046,
  [7360] = 6985,
  [7361] = 7023,
  [7362] = 6994,
  [7363] = 6992,
  [7364] = 7364,
  [7365] = 6968,
  [7366] = 6967,
  [7367] = 6966,
  [7368] = 6965,
  [7369] = 7025,
  [7370] = 7370,
  [7371] = 6987,
  [7372] = 6986,
  [7373] = 7017,
  [7374] = 7374,
  [7375] = 7018,
  [7376] = 7026,
  [7377] = 6958,
  [7378] = 7023,
  [7379] = 7025,
  [7380] = 6982,
  [7381] = 7026,
  [7382] = 7034,
  [7383] = 7035,
  [7384] = 7036,
  [7385] = 7048,
  [7386] = 6988,
  [7387] = 6949,
  [7388] = 6950,
  [7389] = 7049,
  [7390] = 6981,
  [7391] = 7028,
  [7392] = 7031,
  [7393] = 7034,
  [7394] = 7035,
  [7395] = 6968,
  [7396] = 6967,
  [7397] = 6966,
  [7398] = 6965,
  [7399] = 7399,
  [7400] = 7400,
  [7401] = 7036,
  [7402] = 7399,
  [7403] = 7017,
  [7404] = 7404,
  [7405] = 7018,
  [7406] = 7077,
  [7407] = 7078,
  [7408] = 7023,
  [7409] = 7025,
  [7410] = 6971,
  [7411] = 7026,
  [7412] = 7034,
  [7413] = 7035,
  [7414] = 7036,
  [7415] = 6970,
  [7416] = 6988,
  [7417] = 6949,
  [7418] = 6950,
  [7419] = 7419,
  [7420] = 7140,
  [7421] = 7120,
  [7422] = 6957,
  [7423] = 6968,
  [7424] = 6967,
  [7425] = 6966,
  [7426] = 6965,
  [7427] = 6955,
  [7428] = 7065,
  [7429] = 7116,
  [7430] = 7017,
  [7431] = 7117,
  [7432] = 7018,
  [7433] = 7433,
  [7434] = 7118,
  [7435] = 7023,
  [7436] = 7025,
  [7437] = 7042,
  [7438] = 7026,
  [7439] = 7034,
  [7440] = 7035,
  [7441] = 7036,
  [7442] = 7060,
  [7443] = 6988,
  [7444] = 6949,
  [7445] = 6950,
  [7446] = 7061,
  [7447] = 7447,
  [7448] = 6988,
  [7449] = 6949,
  [7450] = 6950,
  [7451] = 7180,
  [7452] = 6988,
  [7453] = 6949,
  [7454] = 6950,
  [7455] = 7119,
  [7456] = 7123,
  [7457] = 7457,
  [7458] = 7124,
  [7459] = 6975,
  [7460] = 6969,
  [7461] = 7461,
  [7462] = 7364,
  [7463] = 7117,
  [7464] = 7142,
  [7465] = 7238,
  [7466] = 7037,
  [7467] = 7129,
  [7468] = 6953,
  [7469] = 6998,
  [7470] = 7055,
  [7471] = 7274,
  [7472] = 7400,
  [7473] = 7077,
  [7474] = 7474,
  [7475] = 6950,
  [7476] = 7476,
  [7477] = 6979,
  [7478] = 7478,
  [7479] = 7479,
  [7480] = 6949,
  [7481] = 7481,
  [7482] = 6988,
  [7483] = 7034,
  [7484] = 7137,
  [7485] = 7139,
  [7486] = 7486,
  [7487] = 7487,
  [7488] = 7488,
  [7489] = 7489,
  [7490] = 7490,
  [7491] = 7148,
  [7492] = 7492,
  [7493] = 7493,
  [7494] = 7494,
  [7495] = 7141,
  [7496] = 7496,
  [7497] = 7036,
  [7498] = 7498,
  [7499] = 7042,
  [7500] = 7500,
  [7501] = 7501,
  [7502] = 7502,
  [7503] = 6957,
  [7504] = 6958,
  [7505] = 6964,
  [7506] = 7138,
  [7507] = 7507,
  [7508] = 7370,
  [7509] = 7053,
  [7510] = 7315,
  [7511] = 6984,
  [7512] = 7129,
  [7513] = 7035,
  [7514] = 7514,
  [7515] = 6970,
  [7516] = 6971,
  [7517] = 6977,
  [7518] = 7051,
  [7519] = 7002,
  [7520] = 6979,
  [7521] = 7521,
  [7522] = 7031,
  [7523] = 7461,
  [7524] = 7002,
  [7525] = 6981,
  [7526] = 6995,
  [7527] = 7147,
  [7528] = 7528,
  [7529] = 7529,
  [7530] = 6994,
  [7531] = 7102,
  [7532] = 6991,
  [7533] = 7533,
  [7534] = 7099,
  [7535] = 7535,
  [7536] = 6998,
  [7537] = 7010,
  [7538] = 7538,
  [7539] = 6948,
  [7540] = 7028,
  [7541] = 7054,
  [7542] = 7073,
  [7543] = 7027,
  [7544] = 7026,
  [7545] = 7032,
  [7546] = 7092,
  [7547] = 7088,
  [7548] = 7086,
  [7549] = 7073,
  [7550] = 7025,
  [7551] = 7032,
  [7552] = 7023,
  [7553] = 7021,
  [7554] = 7009,
  [7555] = 7073,
  [7556] = 7054,
  [7557] = 6948,
  [7558] = 7099,
  [7559] = 7065,
  [7560] = 7560,
  [7561] = 7061,
  [7562] = 7060,
  [7563] = 7055,
  [7564] = 7053,
  [7565] = 7474,
  [7566] = 7020,
  [7567] = 7019,
  [7568] = 7051,
  [7569] = 7073,
  [7570] = 7020,
  [7571] = 7027,
  [7572] = 7049,
  [7573] = 7048,
  [7574] = 7046,
  [7575] = 7018,
  [7576] = 7054,
  [7577] = 6981,
  [7578] = 7457,
  [7579] = 7017,
  [7580] = 7364,
  [7581] = 7116,
  [7582] = 7142,
  [7583] = 7238,
  [7584] = 7274,
  [7585] = 7400,
  [7586] = 7049,
  [7587] = 7474,
  [7588] = 7099,
  [7589] = 7476,
  [7590] = 7478,
  [7591] = 7140,
  [7592] = 6993,
  [7593] = 7048,
  [7594] = 7487,
  [7595] = 7488,
  [7596] = 7489,
  [7597] = 7490,
  [7598] = 7598,
  [7599] = 7521,
  [7600] = 7493,
  [7601] = 7015,
  [7602] = 7040,
  [7603] = 7498,
  [7604] = 7038,
  [7605] = 7500,
  [7606] = 7501,
  [7607] = 7502,
  [7608] = 7370,
  [7609] = 7476,
  [7610] = 7315,
  [7611] = 6985,
  [7612] = 6979,
  [7613] = 7478,
  [7614] = 7092,
  [7615] = 7073,
  [7616] = 7479,
  [7617] = 7072,
  [7618] = 7054,
  [7619] = 7619,
  [7620] = 6948,
  [7621] = 7528,
  [7622] = 7529,
  [7623] = 6991,
  [7624] = 7533,
  [7625] = 7099,
  [7626] = 7102,
  [7627] = 7538,
  [7628] = 7078,
  [7629] = 7629,
  [7630] = 7118,
  [7631] = 7008,
  [7632] = 7007,
  [7633] = 6989,
  [7634] = 7046,
  [7635] = 6985,
  [7636] = 7045,
  [7637] = 6983,
  [7638] = 6977,
  [7639] = 6974,
  [7640] = 7457,
  [7641] = 7138,
  [7642] = 7364,
  [7643] = 6972,
  [7644] = 7142,
  [7645] = 7238,
  [7646] = 7274,
  [7647] = 7400,
  [7648] = 7141,
  [7649] = 7474,
  [7650] = 6963,
  [7651] = 7476,
  [7652] = 7478,
  [7653] = 6959,
  [7654] = 7654,
  [7655] = 6954,
  [7656] = 7487,
  [7657] = 6952,
  [7658] = 7493,
  [7659] = 6985,
  [7660] = 6990,
  [7661] = 7502,
  [7662] = 7370,
  [7663] = 7012,
  [7664] = 7315,
  [7665] = 7092,
  [7666] = 6984,
  [7667] = 7054,
  [7668] = 6948,
  [7669] = 7099,
  [7670] = 7102,
  [7671] = 6960,
  [7672] = 6951,
  [7673] = 7118,
  [7674] = 7528,
  [7675] = 7529,
  [7676] = 7533,
  [7677] = 7099,
  [7678] = 6978,
  [7679] = 6964,
  [7680] = 6997,
  [7681] = 7681,
  [7682] = 7682,
  [7683] = 7148,
  [7684] = 7000,
  [7685] = 7000,
  [7686] = 7015,
  [7687] = 7457,
  [7688] = 7688,
  [7689] = 7364,
  [7690] = 7012,
  [7691] = 7142,
  [7692] = 7238,
  [7693] = 7274,
  [7694] = 7400,
  [7695] = 7015,
  [7696] = 7474,
  [7697] = 6978,
  [7698] = 7476,
  [7699] = 6993,
  [7700] = 7019,
  [7701] = 7701,
  [7702] = 7487,
  [7703] = 6983,
  [7704] = 7493,
  [7705] = 7502,
  [7706] = 7370,
  [7707] = 6985,
  [7708] = 7315,
  [7709] = 7709,
  [7710] = 7710,
  [7711] = 7020,
  [7712] = 7088,
  [7713] = 7092,
  [7714] = 7538,
  [7715] = 6982,
  [7716] = 6997,
  [7717] = 7073,
  [7718] = 7528,
  [7719] = 7529,
  [7720] = 7140,
  [7721] = 7054,
  [7722] = 6948,
  [7723] = 7099,
  [7724] = 7102,
  [7725] = 6980,
  [7726] = 6962,
  [7727] = 6988,
  [7728] = 6958,
  [7729] = 7457,
  [7730] = 6949,
  [7731] = 7364,
  [7732] = 6950,
  [7733] = 7238,
  [7734] = 7274,
  [7735] = 7027,
  [7736] = 7474,
  [7737] = 7119,
  [7738] = 7476,
  [7739] = 7118,
  [7740] = 7028,
  [7741] = 6957,
  [7742] = 7487,
  [7743] = 7502,
  [7744] = 7493,
  [7745] = 7502,
  [7746] = 7370,
  [7747] = 7747,
  [7748] = 7315,
  [7749] = 7749,
  [7750] = 7139,
  [7751] = 7487,
  [7752] = 7752,
  [7753] = 6953,
  [7754] = 6978,
  [7755] = 7488,
  [7756] = 7489,
  [7757] = 7015,
  [7758] = 7528,
  [7759] = 7529,
  [7760] = 7490,
  [7761] = 6978,
  [7762] = 7077,
  [7763] = 7763,
  [7764] = 7037,
  [7765] = 6956,
  [7766] = 7011,
  [7767] = 7457,
  [7768] = 7078,
  [7769] = 6983,
  [7770] = 7476,
  [7771] = 6985,
  [7772] = 7502,
  [7773] = 7088,
  [7774] = 7092,
  [7775] = 7073,
  [7776] = 7054,
  [7777] = 7777,
  [7778] = 7009,
  [7779] = 6948,
  [7780] = 6978,
  [7781] = 7529,
  [7782] = 7102,
  [7783] = 7137,
  [7784] = 7119,
  [7785] = 7118,
  [7786] = 7116,
  [7787] = 7117,
  [7788] = 7788,
  [7789] = 6955,
  [7790] = 7118,
  [7791] = 7119,
  [7792] = 7116,
  [7793] = 7117,
  [7794] = 7124,
  [7795] = 7027,
  [7796] = 7118,
  [7797] = 7020,
  [7798] = 7015,
  [7799] = 7799,
  [7800] = 7800,
  [7801] = 7012,
  [7802] = 7137,
  [7803] = 7139,
  [7804] = 7119,
  [7805] = 7086,
  [7806] = 7140,
  [7807] = 6951,
  [7808] = 6959,
  [7809] = 6951,
  [7810] = 7010,
  [7811] = 6960,
  [7812] = 7812,
  [7813] = 7148,
  [7814] = 6983,
  [7815] = 6985,
  [7816] = 7141,
  [7817] = 7048,
  [7818] = 7049,
  [7819] = 7457,
  [7820] = 7138,
  [7821] = 7088,
  [7822] = 7129,
  [7823] = 6990,
  [7824] = 7092,
  [7825] = 7825,
  [7826] = 6952,
  [7827] = 7073,
  [7828] = 7457,
  [7829] = 7120,
  [7830] = 6954,
  [7831] = 7269,
  [7832] = 7832,
  [7833] = 7054,
  [7834] = 6948,
  [7835] = 7476,
  [7836] = 7099,
  [7837] = 7102,
  [7838] = 3795,
  [7839] = 7681,
  [7840] = 7498,
  [7841] = 7102,
  [7842] = 6959,
  [7843] = 7500,
  [7844] = 7501,
  [7845] = 7502,
  [7846] = 6961,
  [7847] = 7140,
  [7848] = 7099,
  [7849] = 6963,
  [7850] = 7447,
  [7851] = 6983,
  [7852] = 6948,
  [7853] = 7529,
  [7854] = 7854,
  [7855] = 7054,
  [7856] = 7856,
  [7857] = 7073,
  [7858] = 7123,
  [7859] = 7538,
  [7860] = 7119,
  [7861] = 6965,
  [7862] = 7118,
  [7863] = 7092,
  [7864] = 7856,
  [7865] = 6966,
  [7866] = 6967,
  [7867] = 6968,
  [7868] = 7117,
  [7869] = 7869,
  [7870] = 7088,
  [7871] = 6972,
  [7872] = 7533,
  [7873] = 7854,
  [7874] = 7269,
  [7875] = 6973,
  [7876] = 6960,
  [7877] = 7681,
  [7878] = 7498,
  [7879] = 6974,
  [7880] = 7500,
  [7881] = 7501,
  [7882] = 7501,
  [7883] = 7500,
  [7884] = 7884,
  [7885] = 7447,
  [7886] = 6976,
  [7887] = 7854,
  [7888] = 7053,
  [7889] = 7856,
  [7890] = 7051,
  [7891] = 7049,
  [7892] = 7048,
  [7893] = 7040,
  [7894] = 7038,
  [7895] = 7269,
  [7896] = 7123,
  [7897] = 7008,
  [7898] = 7681,
  [7899] = 7498,
  [7900] = 7007,
  [7901] = 7500,
  [7902] = 7501,
  [7903] = 7903,
  [7904] = 6969,
  [7905] = 7447,
  [7906] = 7856,
  [7907] = 6989,
  [7908] = 6985,
  [7909] = 7028,
  [7910] = 7027,
  [7911] = 6975,
  [7912] = 7269,
  [7913] = 7198,
  [7914] = 6963,
  [7915] = 7681,
  [7916] = 7498,
  [7917] = 6959,
  [7918] = 7500,
  [7919] = 7501,
  [7920] = 6954,
  [7921] = 6952,
  [7922] = 7856,
  [7923] = 7020,
  [7924] = 7019,
  [7925] = 6990,
  [7926] = 7194,
  [7927] = 7124,
  [7928] = 7269,
  [7929] = 7015,
  [7930] = 7012,
  [7931] = 7681,
  [7932] = 7498,
  [7933] = 6985,
  [7934] = 7500,
  [7935] = 7501,
  [7936] = 6963,
  [7937] = 6951,
  [7938] = 7000,
  [7939] = 7939,
  [7940] = 6978,
  [7941] = 7941,
  [7942] = 7498,
  [7943] = 6978,
  [7944] = 7498,
  [7945] = 6983,
  [7946] = 7500,
  [7947] = 7501,
  [7948] = 6951,
  [7949] = 6960,
  [7950] = 6990,
  [7951] = 7012,
  [7952] = 6959,
  [7953] = 7498,
  [7954] = 7015,
  [7955] = 7500,
  [7956] = 7501,
  [7957] = 7117,
  [7958] = 7180,
  [7959] = 7019,
  [7960] = 7020,
  [7961] = 6983,
  [7962] = 7498,
  [7963] = 7963,
  [7964] = 7500,
  [7965] = 7501,
  [7966] = 7027,
  [7967] = 6985,
  [7968] = 7007,
  [7969] = 7008,
  [7970] = 7498,
  [7971] = 7028,
  [7972] = 7500,
  [7973] = 7501,
  [7974] = 7974,
  [7975] = 7000,
  [7976] = 7038,
  [7977] = 7040,
  [7978] = 6989,
  [7979] = 6991,
  [7980] = 7629,
  [7981] = 6996,
  [7982] = 7048,
  [7983] = 7049,
  [7984] = 7051,
  [7985] = 7800,
  [7986] = 7986,
  [7987] = 7433,
  [7988] = 7481,
  [7989] = 7001,
  [7990] = 7854,
  [7991] = 7007,
  [7992] = 7856,
  [7993] = 7008,
  [7994] = 7053,
  [7995] = 7493,
  [7996] = 7077,
  [7997] = 7997,
  [7998] = 7494,
  [7999] = 7086,
  [8000] = 7629,
  [8001] = 7078,
  [8002] = 7013,
  [8003] = 7800,
  [8004] = 7433,
  [8005] = 7481,
  [8006] = 7088,
  [8007] = 7014,
  [8008] = 7092,
  [8009] = 8009,
  [8010] = 7629,
  [8011] = 8011,
  [8012] = 7073,
  [8013] = 7054,
  [8014] = 6948,
  [8015] = 7099,
  [8016] = 7629,
  [8017] = 7102,
  [8018] = 7184,
  [8019] = 8019,
  [8020] = 7629,
  [8021] = 7120,
  [8022] = 7138,
  [8023] = 7629,
  [8024] = 7141,
  [8025] = 6994,
  [8026] = 7629,
  [8027] = 7529,
  [8028] = 7148,
  [8029] = 6992,
  [8030] = 7140,
  [8031] = 7137,
  [8032] = 7528,
  [8033] = 7629,
  [8034] = 7800,
  [8035] = 7433,
  [8036] = 7481,
  [8037] = 7124,
  [8038] = 6987,
  [8039] = 7800,
  [8040] = 7481,
  [8041] = 7800,
  [8042] = 7481,
  [8043] = 7800,
  [8044] = 7481,
  [8045] = 7800,
  [8046] = 7481,
  [8047] = 7800,
  [8048] = 7481,
  [8049] = 7800,
  [8050] = 7481,
  [8051] = 7800,
  [8052] = 7481,
  [8053] = 7800,
  [8054] = 7481,
  [8055] = 7123,
  [8056] = 6986,
  [8057] = 7038,
  [8058] = 7119,
  [8059] = 7040,
  [8060] = 7118,
};

static TSCharacterRange aux_sym_escape_sequence_token1_character_set_1[] = {
  {'"', '"'}, {'\'', '\''}, {'?', '?'}, {'\\', '\\'}, {'a', 'b'}, {'f', 'f'}, {'n', 'n'}, {'r', 'r'},
  {'t', 't'}, {'v', 'v'},
};

static TSCharacterRange sym_identifier_character_set_1[] = {
  {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6},
  {0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x370, 0x374}, {0x376, 0x377}, {0x37b, 0x37d},
  {0x37f, 0x37f}, {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x48a, 0x52f},
  {0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x620, 0x64a}, {0x66e, 0x66f}, {0x671, 0x6d3},
  {0x6d5, 0x6d5}, {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x7a5},
  {0x7b1, 0x7b1}, {0x7ca, 0x7ea}, {0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, {0x81a, 0x81a}, {0x824, 0x824}, {0x828, 0x828},
  {0x840, 0x858}, {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x8a0, 0x8c9}, {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950},
  {0x958, 0x961}, {0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9},
  {0x9bd, 0x9bd}, {0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, {0x9fc, 0x9fc}, {0xa05, 0xa0a}, {0xa0f, 0xa10},
  {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74},
  {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0},
  {0xae0, 0xae1}, {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39},
  {0xb3d, 0xb3d}, {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95},
  {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbd0, 0xbd0}, {0xc05, 0xc0c},
  {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d}, {0xc58, 0xc5a}, {0xc5d, 0xc5d}, {0xc60, 0xc61}, {0xc80, 0xc80},
  {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbd, 0xcbd}, {0xcdd, 0xcde}, {0xce0, 0xce1},
  {0xcf1, 0xcf2}, {0xd04, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, {0xd4e, 0xd4e}, {0xd54, 0xd56}, {0xd5f, 0xd61},
  {0xd7a, 0xd7f}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe32},
  {0xe40, 0xe46}, {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xeb0}, {0xeb2, 0xeb2},
  {0xebd, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf40, 0xf47}, {0xf49, 0xf6c}, {0xf88, 0xf8c},
  {0x1000, 0x102a}, {0x103f, 0x103f}, {0x1050, 0x1055}, {0x105a, 0x105d}, {0x1061, 0x1061}, {0x1065, 0x1066}, {0x106e, 0x1070}, {0x1075, 0x1081},
  {0x108e, 0x108e}, {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256},
  {0x1258, 0x1258}, {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0},
  {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x1380, 0x138f}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd},
  {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16ee, 0x16f8}, {0x1700, 0x1711}, {0x171f, 0x1731}, {0x1740, 0x1751},
  {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, {0x1820, 0x1878}, {0x1880, 0x18a8}, {0x18aa, 0x18aa},
  {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x1a00, 0x1a16}, {0x1a20, 0x1a54},
  {0x1aa7, 0x1aa7}, {0x1b05, 0x1b33}, {0x1b45, 0x1b4c}, {0x1b83, 0x1ba0}, {0x1bae, 0x1baf}, {0x1bba, 0x1be5}, {0x1c00, 0x1c23}, {0x1c4d, 0x1c4f},
  {0x1c5a, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1ce9, 0x1cec}, {0x1cee, 0x1cf3}, {0x1cf5, 0x1cf6}, {0x1cfa, 0x1cfa},
  {0x1d00, 0x1dbf}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b},
  {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3},
  {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, {0x207f, 0x207f}, {0x2090, 0x209c}, {0x2102, 0x2102},
  {0x2107, 0x2107}, {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x2139},
  {0x213c, 0x213f}, {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25},
  {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d80, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6},
  {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x3005, 0x3007}, {0x3021, 0x3029}, {0x3031, 0x3035},
  {0x3038, 0x303c}, {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31bf},
  {0x31f0, 0x31ff}, {0x3400, 0x4dbf}, {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa61f}, {0xa62a, 0xa62b}, {0xa640, 0xa66e},
  {0xa67f, 0xa69d}, {0xa6a0, 0xa6ef}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9},
  {0xa7f2, 0xa801}, {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, {0xa840, 0xa873}, {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7}, {0xa8fb, 0xa8fb},
  {0xa8fd, 0xa8fe}, {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, {0xa984, 0xa9b2}, {0xa9cf, 0xa9cf}, {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef},
  {0xa9fa, 0xa9fe}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, {0xaa60, 0xaa76}, {0xaa7a, 0xaa7a}, {0xaa7e, 0xaaaf}, {0xaab1, 0xaab1},
  {0xaab5, 0xaab6}, {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2}, {0xaadb, 0xaadd}, {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4}, {0xab01, 0xab06},
  {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabe2}, {0xac00, 0xd7a3},
  {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28},
  {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfc5d}, {0xfc64, 0xfd3d},
  {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdf9}, {0xfe71, 0xfe71}, {0xfe73, 0xfe73}, {0xfe77, 0xfe77}, {0xfe79, 0xfe79}, {0xfe7b, 0xfe7b},
  {0xfe7d, 0xfe7d}, {0xfe7f, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xff9d}, {0xffa0, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf},
  {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d},
  {0x10080, 0x100fa}, {0x10140, 0x10174}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x10300, 0x1031f}, {0x1032d, 0x1034a}, {0x10350, 0x10375}, {0x10380, 0x1039d},
  {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x103d1, 0x103d5}, {0x10400, 0x1049d}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563},
  {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc},
  {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808},
  {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5},
  {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10980, 0x109b7}, {0x109be, 0x109bf}, {0x10a00, 0x10a00}, {0x10a10, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35},
  {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae4}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91},
  {0x10c00, 0x10c48}, {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d23}, {0x10e80, 0x10ea9}, {0x10eb0, 0x10eb1}, {0x10f00, 0x10f1c}, {0x10f27, 0x10f27},
  {0x10f30, 0x10f45}, {0x10f70, 0x10f81}, {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11003, 0x11037}, {0x11071, 0x11072}, {0x11075, 0x11075}, {0x11083, 0x110af},
  {0x110d0, 0x110e8}, {0x11103, 0x11126}, {0x11144, 0x11144}, {0x11147, 0x11147}, {0x11150, 0x11172}, {0x11176, 0x11176}, {0x11183, 0x111b2}, {0x111c1, 0x111c4},
  {0x111da, 0x111da}, {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x1122b}, {0x1123f, 0x11240}, {0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128a, 0x1128d},
  {0x1128f, 0x1129d}, {0x1129f, 0x112a8}, {0x112b0, 0x112de}, {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11332, 0x11333},
  {0x11335, 0x11339}, {0x1133d, 0x1133d}, {0x11350, 0x11350}, {0x1135d, 0x11361}, {0x11400, 0x11434}, {0x11447, 0x1144a}, {0x1145f, 0x11461}, {0x11480, 0x114af},
  {0x114c4, 0x114c5}, {0x114c7, 0x114c7}, {0x11580, 0x115ae}, {0x115d8, 0x115db}, {0x11600, 0x1162f}, {0x11644, 0x11644}, {0x11680, 0x116aa}, {0x116b8, 0x116b8},
  {0x11700, 0x1171a}, {0x11740, 0x11746}, {0x11800, 0x1182b}, {0x118a0, 0x118df}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, {0x11915, 0x11916},
  {0x11918, 0x1192f}, {0x1193f, 0x1193f}, {0x11941, 0x11941}, {0x119a0, 0x119a7}, {0x119aa, 0x119d0}, {0x119e1, 0x119e1}, {0x119e3, 0x119e3}, {0x11a00, 0x11a00},
  {0x11a0b, 0x11a32}, {0x11a3a, 0x11a3a}, {0x11a50, 0x11a50}, {0x11a5c, 0x11a89}, {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11c00, 0x11c08}, {0x11c0a, 0x11c2e},
  {0x11c40, 0x11c40}, {0x11c72, 0x11c8f}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d30}, {0x11d46, 0x11d46}, {0x11d60, 0x11d65}, {0x11d67, 0x11d68},
  {0x11d6a, 0x11d89}, {0x11d98, 0x11d98}, {0x11ee0, 0x11ef2}, {0x11f02, 0x11f02}, {0x11f04, 0x11f10}, {0x11f12, 0x11f33}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399},
  {0x12400, 0x1246e}, {0x12480, 0x12543}, {0x12f90, 0x12ff0}, {0x13000, 0x1342f}, {0x13441, 0x13446}, {0x14400, 0x14646}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e},
  {0x16a70, 0x16abe}, {0x16ad0, 0x16aed}, {0x16b00, 0x16b2f}, {0x16b40, 0x16b43}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16e40, 0x16e7f}, {0x16f00, 0x16f4a},
  {0x16f50, 0x16f50}, {0x16f93, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe3}, {0x17000, 0x187f7}, {0x18800, 0x18cd5}, {0x18d00, 0x18d08}, {0x1aff0, 0x1aff3},
  {0x1aff5, 0x1affb}, {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, {0x1b132, 0x1b132}, {0x1b150, 0x1b152}, {0x1b155, 0x1b155}, {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb},
  {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2},
  {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514},
  {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0},
  {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8},
  {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1df00, 0x1df1e}, {0x1df25, 0x1df2a}, {0x1e030, 0x1e06d}, {0x1e100, 0x1e12c}, {0x1e137, 0x1e13d}, {0x1e14e, 0x1e14e},
  {0x1e290, 0x1e2ad}, {0x1e2c0, 0x1e2eb}, {0x1e4d0, 0x1e4eb}, {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe}, {0x1e800, 0x1e8c4},
  {0x1e900, 0x1e943}, {0x1e94b, 0x1e94b}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32},
  {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f},
  {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62},
  {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b},
  {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x20000, 0x2a6df}, {0x2a700, 0x2b739}, {0x2b740, 0x2b81d}, {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0},
  {0x2ebf0, 0x2ee5d}, {0x2f800, 0x2fa1d}, {0x30000, 0x3134a}, {0x31350, 0x323af},
};

static TSCharacterRange sym_identifier_character_set_2[] = {
  {'0', '9'}, {'A', 'Z'}, {'_', '_'}, {'a', 'z'}, {0xaa, 0xaa}, {0xb5, 0xb5}, {0xb7, 0xb7}, {0xba, 0xba},
  {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x300, 0x374},
  {0x376, 0x377}, {0x37b, 0x37d}, {0x37f, 0x37f}, {0x386, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481},
  {0x483, 0x487}, {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559}, {0x560, 0x588}, {0x591, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2},
  {0x5c4, 0x5c5}, {0x5c7, 0x5c7}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, {0x610, 0x61a}, {0x620, 0x669}, {0x66e, 0x6d3}, {0x6d5, 0x6dc},
  {0x6df, 0x6e8}, {0x6ea, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x74a}, {0x74d, 0x7b1}, {0x7c0, 0x7f5}, {0x7fa, 0x7fa}, {0x7fd, 0x7fd},
  {0x800, 0x82d}, {0x840, 0x85b}, {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88e}, {0x898, 0x8e1}, {0x8e3, 0x963}, {0x966, 0x96f},
  {0x971, 0x983}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bc, 0x9c4},
  {0x9c7, 0x9c8}, {0x9cb, 0x9ce}, {0x9d7, 0x9d7}, {0x9dc, 0x9dd}, {0x9df, 0x9e3}, {0x9e6, 0x9f1}, {0x9fc, 0x9fc}, {0x9fe, 0x9fe},
  {0xa01, 0xa03}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39},
  {0xa3c, 0xa3c}, {0xa3e, 0xa42}, {0xa47, 0xa48}, {0xa4b, 0xa4d}, {0xa51, 0xa51}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa66, 0xa75},
  {0xa81, 0xa83}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabc, 0xac5},
  {0xac7, 0xac9}, {0xacb, 0xacd}, {0xad0, 0xad0}, {0xae0, 0xae3}, {0xae6, 0xaef}, {0xaf9, 0xaff}, {0xb01, 0xb03}, {0xb05, 0xb0c},
  {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3c, 0xb44}, {0xb47, 0xb48}, {0xb4b, 0xb4d},
  {0xb55, 0xb57}, {0xb5c, 0xb5d}, {0xb5f, 0xb63}, {0xb66, 0xb6f}, {0xb71, 0xb71}, {0xb82, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90},
  {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbbe, 0xbc2},
  {0xbc6, 0xbc8}, {0xbca, 0xbcd}, {0xbd0, 0xbd0}, {0xbd7, 0xbd7}, {0xbe6, 0xbef}, {0xc00, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28},
  {0xc2a, 0xc39}, {0xc3c, 0xc44}, {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc55, 0xc56}, {0xc58, 0xc5a}, {0xc5d, 0xc5d}, {0xc60, 0xc63},
  {0xc66, 0xc6f}, {0xc80, 0xc83}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbc, 0xcc4},
  {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, {0xcdd, 0xcde}, {0xce0, 0xce3}, {0xce6, 0xcef}, {0xcf1, 0xcf3}, {0xd00, 0xd0c},
  {0xd0e, 0xd10}, {0xd12, 0xd44}, {0xd46, 0xd48}, {0xd4a, 0xd4e}, {0xd54, 0xd57}, {0xd5f, 0xd63}, {0xd66, 0xd6f}, {0xd7a, 0xd7f},
  {0xd81, 0xd83}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xdca, 0xdca}, {0xdcf, 0xdd4},
  {0xdd6, 0xdd6}, {0xdd8, 0xddf}, {0xde6, 0xdef}, {0xdf2, 0xdf3}, {0xe01, 0xe3a}, {0xe40, 0xe4e}, {0xe50, 0xe59}, {0xe81, 0xe82},
  {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, {0xea7, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, {0xec8, 0xece},
  {0xed0, 0xed9}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf18, 0xf19}, {0xf20, 0xf29}, {0xf35, 0xf35}, {0xf37, 0xf37}, {0xf39, 0xf39},
  {0xf3e, 0xf47}, {0xf49, 0xf6c}, {0xf71, 0xf84}, {0xf86, 0xf97}, {0xf99, 0xfbc}, {0xfc6, 0xfc6}, {0x1000, 0x1049}, {0x1050, 0x109d},
  {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, {0x1258, 0x1258},
  {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5},
  {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, {0x135d, 0x135f}, {0x1369, 0x1371}, {0x1380, 0x138f}, {0x13a0, 0x13f5},
  {0x13f8, 0x13fd}, {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16ee, 0x16f8}, {0x1700, 0x1715}, {0x171f, 0x1734},
  {0x1740, 0x1753}, {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1772, 0x1773}, {0x1780, 0x17d3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dd}, {0x17e0, 0x17e9},
  {0x180b, 0x180d}, {0x180f, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1920, 0x192b}, {0x1930, 0x193b},
  {0x1946, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, {0x19d0, 0x19da}, {0x1a00, 0x1a1b}, {0x1a20, 0x1a5e}, {0x1a60, 0x1a7c},
  {0x1a7f, 0x1a89}, {0x1a90, 0x1a99}, {0x1aa7, 0x1aa7}, {0x1ab0, 0x1abd}, {0x1abf, 0x1ace}, {0x1b00, 0x1b4c}, {0x1b50, 0x1b59}, {0x1b6b, 0x1b73},
  {0x1b80, 0x1bf3}, {0x1c00, 0x1c37}, {0x1c40, 0x1c49}, {0x1c4d, 0x1c7d}, {0x1c80, 0x1c88}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1cd0, 0x1cd2},
  {0x1cd4, 0x1cfa}, {0x1d00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b},
  {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3},
  {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x200c, 0x200d}, {0x203f, 0x2040}, {0x2054, 0x2054}, {0x2071, 0x2071},
  {0x207f, 0x207f}, {0x2090, 0x209c}, {0x20d0, 0x20dc}, {0x20e1, 0x20e1}, {0x20e5, 0x20f0}, {0x2102, 0x2102}, {0x2107, 0x2107}, {0x210a, 0x2113},
  {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149},
  {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, {0x2ceb, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67},
  {0x2d6f, 0x2d6f}, {0x2d7f, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce},
  {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x2de0, 0x2dff}, {0x3005, 0x3007}, {0x3021, 0x302f}, {0x3031, 0x3035}, {0x3038, 0x303c}, {0x3041, 0x3096},
  {0x3099, 0x309a}, {0x309d, 0x309f}, {0x30a1, 0x30ff}, {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, {0x3400, 0x4dbf},
  {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa62b}, {0xa640, 0xa66f}, {0xa674, 0xa67d}, {0xa67f, 0xa6f1}, {0xa717, 0xa71f},
  {0xa722, 0xa788}, {0xa78b, 0xa7ca}, {0xa7d0, 0xa7d1}, {0xa7d3, 0xa7d3}, {0xa7d5, 0xa7d9}, {0xa7f2, 0xa827}, {0xa82c, 0xa82c}, {0xa840, 0xa873},
  {0xa880, 0xa8c5}, {0xa8d0, 0xa8d9}, {0xa8e0, 0xa8f7}, {0xa8fb, 0xa8fb}, {0xa8fd, 0xa92d}, {0xa930, 0xa953}, {0xa960, 0xa97c}, {0xa980, 0xa9c0},
  {0xa9cf, 0xa9d9}, {0xa9e0, 0xa9fe}, {0xaa00, 0xaa36}, {0xaa40, 0xaa4d}, {0xaa50, 0xaa59}, {0xaa60, 0xaa76}, {0xaa7a, 0xaac2}, {0xaadb, 0xaadd},
  {0xaae0, 0xaaef}, {0xaaf2, 0xaaf6}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xab30, 0xab5a},
  {0xab5c, 0xab69}, {0xab70, 0xabea}, {0xabec, 0xabed}, {0xabf0, 0xabf9}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d},
  {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41},
  {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfc5d}, {0xfc64, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdf9}, {0xfe00, 0xfe0f},
  {0xfe20, 0xfe2f}, {0xfe33, 0xfe34}, {0xfe4d, 0xfe4f}, {0xfe71, 0xfe71}, {0xfe73, 0xfe73}, {0xfe77, 0xfe77}, {0xfe79, 0xfe79}, {0xfe7b, 0xfe7b},
  {0xfe7d, 0xfe7d}, {0xfe7f, 0xfefc}, {0xff10, 0xff19}, {0xff21, 0xff3a}, {0xff3f, 0xff3f}, {0xff41, 0xff5a}, {0xff65, 0xffbe}, {0xffc2, 0xffc7},
  {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d},
  {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10140, 0x10174}, {0x101fd, 0x101fd}, {0x10280, 0x1029c}, {0x102a0, 0x102d0}, {0x102e0, 0x102e0}, {0x10300, 0x1031f},
  {0x1032d, 0x1034a}, {0x10350, 0x1037a}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x103d1, 0x103d5}, {0x10400, 0x1049d}, {0x104a0, 0x104a9},
  {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595},
  {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785},
  {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855},
  {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10980, 0x109b7}, {0x109be, 0x109bf},
  {0x10a00, 0x10a03}, {0x10a05, 0x10a06}, {0x10a0c, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a38, 0x10a3a}, {0x10a3f, 0x10a3f}, {0x10a60, 0x10a7c},
  {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae6}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91}, {0x10c00, 0x10c48},
  {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d27}, {0x10d30, 0x10d39}, {0x10e80, 0x10ea9}, {0x10eab, 0x10eac}, {0x10eb0, 0x10eb1}, {0x10efd, 0x10f1c},
  {0x10f27, 0x10f27}, {0x10f30, 0x10f50}, {0x10f70, 0x10f85}, {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11000, 0x11046}, {0x11066, 0x11075}, {0x1107f, 0x110ba},
  {0x110c2, 0x110c2}, {0x110d0, 0x110e8}, {0x110f0, 0x110f9}, {0x11100, 0x11134}, {0x11136, 0x1113f}, {0x11144, 0x11147}, {0x11150, 0x11173}, {0x11176, 0x11176},
  {0x11180, 0x111c4}, {0x111c9, 0x111cc}, {0x111ce, 0x111da}, {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x11237}, {0x1123e, 0x11241}, {0x11280, 0x11286},
  {0x11288, 0x11288}, {0x1128a, 0x1128d}, {0x1128f, 0x1129d}, {0x1129f, 0x112a8}, {0x112b0, 0x112ea}, {0x112f0, 0x112f9}, {0x11300, 0x11303}, {0x11305, 0x1130c},
  {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339}, {0x1133b, 0x11344}, {0x11347, 0x11348}, {0x1134b, 0x1134d},
  {0x11350, 0x11350}, {0x11357, 0x11357}, {0x1135d, 0x11363}, {0x11366, 0x1136c}, {0x11370, 0x11374}, {0x11400, 0x1144a}, {0x11450, 0x11459}, {0x1145e, 0x11461},
  {0x11480, 0x114c5}, {0x114c7, 0x114c7}, {0x114d0, 0x114d9}, {0x11580, 0x115b5}, {0x115b8, 0x115c0}, {0x115d8, 0x115dd}, {0x11600, 0x11640}, {0x11644, 0x11644},
  {0x11650, 0x11659}, {0x11680, 0x116b8}, {0x116c0, 0x116c9}, {0x11700, 0x1171a}, {0x1171d, 0x1172b}, {0x11730, 0x11739}, {0x11740, 0x11746}, {0x11800, 0x1183a},
  {0x118a0, 0x118e9}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, {0x11915, 0x11916}, {0x11918, 0x11935}, {0x11937, 0x11938}, {0x1193b, 0x11943},
  {0x11950, 0x11959}, {0x119a0, 0x119a7}, {0x119aa, 0x119d7}, {0x119da, 0x119e1}, {0x119e3, 0x119e4}, {0x11a00, 0x11a3e}, {0x11a47, 0x11a47}, {0x11a50, 0x11a99},
  {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11c00, 0x11c08}, {0x11c0a, 0x11c36}, {0x11c38, 0x11c40}, {0x11c50, 0x11c59}, {0x11c72, 0x11c8f}, {0x11c92, 0x11ca7},
  {0x11ca9, 0x11cb6}, {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d36}, {0x11d3a, 0x11d3a}, {0x11d3c, 0x11d3d}, {0x11d3f, 0x11d47}, {0x11d50, 0x11d59},
  {0x11d60, 0x11d65}, {0x11d67, 0x11d68}, {0x11d6a, 0x11d8e}, {0x11d90, 0x11d91}, {0x11d93, 0x11d98}, {0x11da0, 0x11da9}, {0x11ee0, 0x11ef6}, {0x11f00, 0x11f10},
  {0x11f12, 0x11f3a}, {0x11f3e, 0x11f42}, {0x11f50, 0x11f59}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12400, 0x1246e}, {0x12480, 0x12543}, {0x12f90, 0x12ff0},
  {0x13000, 0x1342f}, {0x13440, 0x13455}, {0x14400, 0x14646}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16a60, 0x16a69}, {0x16a70, 0x16abe}, {0x16ac0, 0x16ac9},
  {0x16ad0, 0x16aed}, {0x16af0, 0x16af4}, {0x16b00, 0x16b36}, {0x16b40, 0x16b43}, {0x16b50, 0x16b59}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16e40, 0x16e7f},
  {0x16f00, 0x16f4a}, {0x16f4f, 0x16f87}, {0x16f8f, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe4}, {0x16ff0, 0x16ff1}, {0x17000, 0x187f7}, {0x18800, 0x18cd5},
  {0x18d00, 0x18d08}, {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb}, {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, {0x1b132, 0x1b132}, {0x1b150, 0x1b152}, {0x1b155, 0x1b155},
  {0x1b164, 0x1b167}, {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1bc9d, 0x1bc9e}, {0x1cf00, 0x1cf2d},
  {0x1cf30, 0x1cf46}, {0x1d165, 0x1d169}, {0x1d16d, 0x1d172}, {0x1d17b, 0x1d182}, {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad}, {0x1d242, 0x1d244}, {0x1d400, 0x1d454},
  {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3},
  {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546},
  {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e},
  {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1d7ce, 0x1d7ff}, {0x1da00, 0x1da36}, {0x1da3b, 0x1da6c},
  {0x1da75, 0x1da75}, {0x1da84, 0x1da84}, {0x1da9b, 0x1da9f}, {0x1daa1, 0x1daaf}, {0x1df00, 0x1df1e}, {0x1df25, 0x1df2a}, {0x1e000, 0x1e006}, {0x1e008, 0x1e018},
  {0x1e01b, 0x1e021}, {0x1e023, 0x1e024}, {0x1e026, 0x1e02a}, {0x1e030, 0x1e06d}, {0x1e08f, 0x1e08f}, {0x1e100, 0x1e12c}, {0x1e130, 0x1e13d}, {0x1e140, 0x1e149},
  {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ae}, {0x1e2c0, 0x1e2f9}, {0x1e4d0, 0x1e4f9}, {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe},
  {0x1e800, 0x1e8c4}, {0x1e8d0, 0x1e8d6}, {0x1e900, 0x1e94b}, {0x1e950, 0x1e959}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24},
  {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49},
  {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d},
  {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e},
  {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x1fbf0, 0x1fbf9}, {0x20000, 0x2a6df}, {0x2a700, 0x2b739},
  {0x2b740, 0x2b81d}, {0x2b820, 0x2cea1}, {0x2ceb0, 0x2ebe0}, {0x2ebf0, 0x2ee5d}, {0x2f800, 0x2fa1d}, {0x30000, 0x3134a}, {0x31350, 0x323af}, {0xe0100, 0xe01ef},
};

static bool ts_lex(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      if (eof) ADVANCE(174);
      ADVANCE_MAP(
        0x1a, 185,
        '!', 326,
        '"', 629,
        '#', 357,
        '$', 337,
        '%', 346,
        '&', 297,
        '\'', 1012,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 290,
        '/', 287,
        ':', 335,
        ';', 334,
        '<', 314,
        '=', 340,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        '\\', 24,
        ']', 331,
        '^', 348,
        '_', 278,
        '`', 360,
        'i', 272,
        'q', 281,
        'r', 273,
        'x', 274,
        '{', 286,
        '|', 300,
        '}', 285,
        '~', 353,
        0xfeff, 175,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(171);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 1:
      if (lookahead == '\n') ADVANCE(176);
      if (lookahead != 0) ADVANCE(1);
      END_STATE();
    case 2:
      if (lookahead == '\r') ADVANCE(268);
      if (lookahead == '\\') ADVANCE(190);
      if (lookahead != 0) ADVANCE(267);
      END_STATE();
    case 3:
      ADVANCE_MAP(
        '!', 326,
        '"', 629,
        '#', 357,
        '$', 337,
        '%', 346,
        '&', 297,
        '\'', 1012,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 290,
        '/', 287,
        ':', 335,
        ';', 334,
        '<', 314,
        '=', 340,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        ']', 331,
        '^', 348,
        '`', 360,
        'i', 272,
        'q', 281,
        'r', 273,
        'x', 274,
        '{', 286,
        '|', 300,
        '}', 285,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(3);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 4:
      ADVANCE_MAP(
        '!', 326,
        '"', 629,
        '#', 357,
        '$', 336,
        '%', 346,
        '&', 297,
        '\'', 1012,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 290,
        '/', 287,
        ':', 335,
        ';', 334,
        '<', 314,
        '=', 340,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        ']', 331,
        '^', 348,
        '`', 360,
        'i', 272,
        'q', 281,
        'r', 273,
        'x', 274,
        '{', 286,
        '|', 300,
        '}', 285,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(4);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 5:
      if (lookahead == '!') ADVANCE(1);
      END_STATE();
    case 6:
      ADVANCE_MAP(
        '!', 324,
        '"', 629,
        '$', 336,
        '&', 296,
        '\'', 1012,
        '(', 328,
        ')', 329,
        '*', 343,
        '+', 309,
        ',', 333,
        '-', 304,
        '.', 291,
        '/', 30,
        ':', 335,
        '=', 338,
        '@', 355,
        '[', 330,
        '`', 360,
        'i', 272,
        'q', 281,
        'r', 273,
        'x', 274,
        '{', 286,
        '~', 352,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(6);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 7:
      ADVANCE_MAP(
        '!', 324,
        '"', 629,
        '$', 336,
        '&', 296,
        '\'', 1012,
        '(', 328,
        ')', 329,
        '*', 343,
        '+', 309,
        '-', 304,
        '.', 289,
        '/', 30,
        ':', 335,
        ';', 334,
        '=', 338,
        '@', 355,
        '[', 330,
        ']', 331,
        '`', 360,
        'i', 272,
        'q', 281,
        'r', 273,
        'x', 274,
        '{', 286,
        '}', 285,
        '~', 352,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(7);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 8:
      ADVANCE_MAP(
        '!', 324,
        '(', 328,
        ')', 329,
        '*', 343,
        ',', 333,
        '.', 289,
        '/', 30,
        ':', 335,
        ';', 334,
        '=', 338,
        '@', 355,
        '[', 330,
        '{', 286,
        '}', 285,
        '~', 352,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(8);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 9:
      ADVANCE_MAP(
        '!', 324,
        '(', 328,
        ')', 329,
        '*', 343,
        ',', 333,
        '.', 289,
        '/', 30,
        ':', 335,
        ';', 334,
        '=', 154,
        '@', 355,
        '[', 330,
        ']', 331,
        '{', 286,
        '}', 285,
        '~', 352,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(9);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 10:
      ADVANCE_MAP(
        '!', 324,
        '(', 328,
        ')', 329,
        '*', 343,
        ',', 333,
        '.', 291,
        '/', 30,
        ':', 335,
        ';', 334,
        '=', 338,
        '@', 355,
        '[', 330,
        ']', 331,
        '{', 286,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(10);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 11:
      ADVANCE_MAP(
        '!', 325,
        '"', 629,
        '$', 336,
        '%', 346,
        '&', 297,
        '\'', 1012,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 289,
        '/', 287,
        ';', 334,
        '<', 314,
        '=', 339,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        '^', 348,
        '`', 360,
        'i', 272,
        'q', 281,
        'r', 273,
        'x', 274,
        '{', 286,
        '|', 300,
        '}', 285,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(11);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 12:
      ADVANCE_MAP(
        '!', 325,
        '%', 346,
        '&', 297,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 289,
        '/', 287,
        ':', 335,
        ';', 334,
        '<', 314,
        '=', 340,
        '>', 318,
        '?', 332,
        '[', 330,
        ']', 331,
        '^', 348,
        '|', 300,
        '}', 285,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(12);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 13:
      ADVANCE_MAP(
        '!', 325,
        '%', 346,
        '&', 297,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 289,
        '/', 287,
        ':', 335,
        ';', 334,
        '<', 314,
        '=', 339,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        ']', 331,
        '^', 348,
        '|', 300,
        '}', 285,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(13);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 14:
      ADVANCE_MAP(
        '!', 325,
        '%', 346,
        '&', 297,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 291,
        '/', 287,
        '<', 314,
        '=', 340,
        '>', 318,
        '?', 332,
        '[', 330,
        '^', 348,
        '|', 300,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(14);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 15:
      ADVANCE_MAP(
        '!', 325,
        '%', 346,
        '&', 297,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 291,
        '/', 287,
        '<', 314,
        '=', 339,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        '^', 348,
        '|', 300,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(15);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 16:
      ADVANCE_MAP(
        '!', 325,
        '%', 346,
        '&', 297,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 292,
        '/', 287,
        '<', 314,
        '=', 340,
        '>', 318,
        '?', 332,
        '[', 330,
        ']', 331,
        '^', 348,
        '|', 300,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(16);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 17:
      ADVANCE_MAP(
        '!', 325,
        '%', 346,
        '&', 297,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 292,
        '/', 287,
        '<', 314,
        '=', 339,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        ']', 331,
        '^', 348,
        '|', 300,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(17);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 18:
      ADVANCE_MAP(
        '!', 153,
        '%', 346,
        '&', 297,
        ')', 329,
        '*', 344,
        '+', 311,
        ',', 333,
        '-', 306,
        '.', 134,
        '/', 287,
        ':', 335,
        ';', 334,
        '<', 314,
        '=', 339,
        '>', 318,
        '?', 332,
        ']', 331,
        '^', 348,
        '|', 300,
        '}', 285,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(18);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 19:
      ADVANCE_MAP(
        '!', 153,
        '%', 346,
        '&', 297,
        ')', 329,
        '*', 344,
        '+', 311,
        ',', 333,
        '-', 306,
        '.', 133,
        '/', 287,
        '<', 314,
        '=', 339,
        '>', 318,
        '?', 332,
        '^', 348,
        '|', 300,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(19);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 20:
      ADVANCE_MAP(
        '"', 629,
        '$', 22,
        '/', 886,
        '\\', 24,
        '\t', 988,
        '\n', 988,
        '\r', 988,
        ' ', 988,
        0x2028, 988,
        0x2029, 988,
      );
      if (lookahead != 0) ADVANCE(1006);
      END_STATE();
    case 21:
      if (lookahead == '"') ADVANCE(625);
      if (lookahead == '/') ADVANCE(631);
      if (lookahead == '\\') ADVANCE(26);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) ADVANCE(739);
      if (lookahead != 0) ADVANCE(757);
      END_STATE();
    case 22:
      if (lookahead == '"') ADVANCE(1008);
      if (lookahead == '(') ADVANCE(758);
      if (lookahead != 0) ADVANCE(1007);
      END_STATE();
    case 23:
      if (lookahead == '$') ADVANCE(884);
      END_STATE();
    case 24:
      if (lookahead == '$') ADVANCE(884);
      if (lookahead == '&') ADVANCE(170);
      if (lookahead == 'U') ADVANCE(169);
      if (lookahead == 'u') ADVANCE(164);
      if (lookahead == 'x') ADVANCE(159);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(181);
      if (set_contains(aux_sym_escape_sequence_token1_character_set_1, 10, lookahead)) ADVANCE(177);
      END_STATE();
    case 25:
      if (lookahead == '$') ADVANCE(29);
      if (lookahead == '/') ADVANCE(761);
      if (lookahead == '`') ADVANCE(360);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) ADVANCE(863);
      if (lookahead != 0) ADVANCE(881);
      END_STATE();
    case 26:
      if (lookahead == '&') ADVANCE(170);
      if (lookahead == 'U') ADVANCE(169);
      if (lookahead == 'u') ADVANCE(164);
      if (lookahead == 'x') ADVANCE(159);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(181);
      if (set_contains(aux_sym_escape_sequence_token1_character_set_1, 10, lookahead)) ADVANCE(177);
      END_STATE();
    case 27:
      if (lookahead == '\'') ADVANCE(1010);
      END_STATE();
    case 28:
      if (lookahead == '(') ADVANCE(328);
      if (lookahead == '/') ADVANCE(30);
      if (lookahead == ';') ADVANCE(334);
      if (lookahead == '=') ADVANCE(341);
      if (lookahead == '@') ADVANCE(355);
      if (lookahead == '{') ADVANCE(286);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(28);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 29:
      if (lookahead == '(') ADVANCE(758);
      if (lookahead == '`') ADVANCE(883);
      if (lookahead != 0) ADVANCE(882);
      END_STATE();
    case 30:
      if (lookahead == '*') ADVANCE(32);
      if (lookahead == '+') ADVANCE(33);
      if (lookahead == '/') ADVANCE(267);
      END_STATE();
    case 31:
      if (lookahead == '*') ADVANCE(31);
      if (lookahead == '/') ADVANCE(187);
      if (lookahead != 0) ADVANCE(32);
      END_STATE();
    case 32:
      if (lookahead == '*') ADVANCE(31);
      if (lookahead != 0) ADVANCE(32);
      END_STATE();
    case 33:
      if (lookahead == '+') ADVANCE(136);
      if (lookahead == '/') ADVANCE(35);
      if (lookahead != 0) ADVANCE(33);
      END_STATE();
    case 34:
      if (lookahead == '+') ADVANCE(137);
      if (lookahead == '/') ADVANCE(42);
      if (lookahead != 0) ADVANCE(34);
      END_STATE();
    case 35:
      if (lookahead == '+') ADVANCE(40);
      if (lookahead == '/') ADVANCE(35);
      if (lookahead != 0) ADVANCE(33);
      END_STATE();
    case 36:
      if (lookahead == '+') ADVANCE(40);
      if (lookahead == '/') ADVANCE(35);
      if (lookahead != 0) ADVANCE(34);
      END_STATE();
    case 37:
      if (lookahead == '+') ADVANCE(135);
      if (lookahead == '/') ADVANCE(45);
      if (lookahead != 0) ADVANCE(37);
      END_STATE();
    case 38:
      if (lookahead == '+') ADVANCE(61);
      if (lookahead == '/') ADVANCE(105);
      if (lookahead != 0) ADVANCE(86);
      END_STATE();
    case 39:
      if (lookahead == '+') ADVANCE(64);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 40:
      if (lookahead == '+') ADVANCE(36);
      if (lookahead == '/') ADVANCE(213);
      if (lookahead != 0) ADVANCE(34);
      END_STATE();
    case 41:
      if (lookahead == '+') ADVANCE(138);
      if (lookahead == '/') ADVANCE(65);
      if (lookahead != 0) ADVANCE(41);
      END_STATE();
    case 42:
      if (lookahead == '+') ADVANCE(57);
      if (lookahead == '/') ADVANCE(42);
      if (lookahead != 0) ADVANCE(34);
      END_STATE();
    case 43:
      if (lookahead == '+') ADVANCE(57);
      if (lookahead == '/') ADVANCE(42);
      if (lookahead != 0) ADVANCE(47);
      END_STATE();
    case 44:
      if (lookahead == '+') ADVANCE(140);
      if (lookahead == '/') ADVANCE(95);
      if (lookahead != 0) ADVANCE(44);
      END_STATE();
    case 45:
      if (lookahead == '+') ADVANCE(69);
      if (lookahead == '/') ADVANCE(45);
      if (lookahead != 0) ADVANCE(37);
      END_STATE();
    case 46:
      if (lookahead == '+') ADVANCE(69);
      if (lookahead == '/') ADVANCE(45);
      if (lookahead != 0) ADVANCE(44);
      END_STATE();
    case 47:
      if (lookahead == '+') ADVANCE(139);
      if (lookahead == '/') ADVANCE(83);
      if (lookahead != 0) ADVANCE(47);
      END_STATE();
    case 48:
      if (lookahead == '+') ADVANCE(58);
      if (lookahead == '/') ADVANCE(65);
      if (lookahead != 0) ADVANCE(41);
      END_STATE();
    case 49:
      if (lookahead == '+') ADVANCE(58);
      if (lookahead == '/') ADVANCE(65);
      if (lookahead != 0) ADVANCE(51);
      END_STATE();
    case 50:
      if (lookahead == '+') ADVANCE(145);
      if (lookahead == '/') ADVANCE(105);
      if (lookahead != 0) ADVANCE(50);
      END_STATE();
    case 51:
      if (lookahead == '+') ADVANCE(141);
      if (lookahead == '/') ADVANCE(81);
      if (lookahead != 0) ADVANCE(51);
      END_STATE();
    case 52:
      if (lookahead == '+') ADVANCE(75);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 53:
      if (lookahead == '+') ADVANCE(75);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 54:
      if (lookahead == '+') ADVANCE(142);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 55:
      if (lookahead == '+') ADVANCE(143);
      if (lookahead == '/') ADVANCE(91);
      if (lookahead != 0) ADVANCE(55);
      END_STATE();
    case 56:
      if (lookahead == '+') ADVANCE(144);
      if (lookahead == '/') ADVANCE(109);
      if (lookahead != 0) ADVANCE(56);
      END_STATE();
    case 57:
      if (lookahead == '+') ADVANCE(43);
      if (lookahead == '/') ADVANCE(234);
      if (lookahead != 0) ADVANCE(47);
      END_STATE();
    case 58:
      if (lookahead == '+') ADVANCE(49);
      if (lookahead == '/') ADVANCE(201);
      if (lookahead != 0) ADVANCE(51);
      END_STATE();
    case 59:
      if (lookahead == '+') ADVANCE(66);
      if (lookahead == '/') ADVANCE(252);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 60:
      if (lookahead == '+') ADVANCE(68);
      if (lookahead == '/') ADVANCE(222);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 61:
      if (lookahead == '+') ADVANCE(38);
      if (lookahead == '/') ADVANCE(55);
      if (lookahead != 0) ADVANCE(86);
      END_STATE();
    case 62:
      if (lookahead == '+') ADVANCE(82);
      if (lookahead == '/') ADVANCE(264);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 63:
      if (lookahead == '+') ADVANCE(92);
      if (lookahead == '/') ADVANCE(252);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 64:
      if (lookahead == '+') ADVANCE(39);
      if (lookahead == '/') ADVANCE(240);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 65:
      if (lookahead == '+') ADVANCE(59);
      if (lookahead == '/') ADVANCE(65);
      if (lookahead != 0) ADVANCE(41);
      END_STATE();
    case 66:
      if (lookahead == '+') ADVANCE(59);
      if (lookahead == '/') ADVANCE(65);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 67:
      if (lookahead == '+') ADVANCE(76);
      if (lookahead == '/') ADVANCE(113);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 68:
      if (lookahead == '+') ADVANCE(60);
      if (lookahead == '/') ADVANCE(83);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 69:
      if (lookahead == '+') ADVANCE(46);
      if (lookahead == '/') ADVANCE(48);
      if (lookahead != 0) ADVANCE(44);
      END_STATE();
    case 70:
      if (lookahead == '+') ADVANCE(90);
      if (lookahead == '/') ADVANCE(91);
      if (lookahead != 0) ADVANCE(55);
      END_STATE();
    case 71:
      if (lookahead == '+') ADVANCE(90);
      if (lookahead == '/') ADVANCE(91);
      if (lookahead != 0) ADVANCE(74);
      END_STATE();
    case 72:
      if (lookahead == '+') ADVANCE(146);
      if (lookahead == '/') ADVANCE(113);
      if (lookahead != 0) ADVANCE(72);
      END_STATE();
    case 73:
      if (lookahead == '+') ADVANCE(149);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 74:
      if (lookahead == '+') ADVANCE(150);
      if (lookahead == '/') ADVANCE(99);
      if (lookahead != 0) ADVANCE(74);
      END_STATE();
    case 75:
      if (lookahead == '+') ADVANCE(53);
      if (lookahead == '/') ADVANCE(204);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 76:
      if (lookahead == '+') ADVANCE(67);
      if (lookahead == '/') ADVANCE(87);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 77:
      if (lookahead == '+') ADVANCE(102);
      if (lookahead == '/') ADVANCE(249);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 78:
      if (lookahead == '+') ADVANCE(85);
      if (lookahead == '/') ADVANCE(231);
      if (lookahead != 0) ADVANCE(74);
      END_STATE();
    case 79:
      if (lookahead == '+') ADVANCE(98);
      if (lookahead == '/') ADVANCE(264);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 80:
      if (lookahead == '+') ADVANCE(120);
      if (lookahead == '/') ADVANCE(243);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 81:
      if (lookahead == '+') ADVANCE(62);
      if (lookahead == '/') ADVANCE(81);
      if (lookahead != 0) ADVANCE(51);
      END_STATE();
    case 82:
      if (lookahead == '+') ADVANCE(62);
      if (lookahead == '/') ADVANCE(81);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 83:
      if (lookahead == '+') ADVANCE(122);
      if (lookahead == '/') ADVANCE(83);
      if (lookahead != 0) ADVANCE(47);
      END_STATE();
    case 84:
      if (lookahead == '+') ADVANCE(122);
      if (lookahead == '/') ADVANCE(83);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 85:
      if (lookahead == '+') ADVANCE(78);
      if (lookahead == '/') ADVANCE(99);
      if (lookahead != 0) ADVANCE(74);
      END_STATE();
    case 86:
      if (lookahead == '+') ADVANCE(147);
      if (lookahead == '/') ADVANCE(115);
      if (lookahead != 0) ADVANCE(86);
      END_STATE();
    case 87:
      if (lookahead == '+') ADVANCE(151);
      if (lookahead == '/') ADVANCE(108);
      if (lookahead != 0) ADVANCE(87);
      END_STATE();
    case 88:
      if (lookahead == '+') ADVANCE(121);
      if (lookahead == '/') ADVANCE(204);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 89:
      if (lookahead == '+') ADVANCE(94);
      if (lookahead == '/') ADVANCE(249);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 90:
      if (lookahead == '+') ADVANCE(71);
      if (lookahead == '/') ADVANCE(201);
      if (lookahead != 0) ADVANCE(74);
      END_STATE();
    case 91:
      if (lookahead == '+') ADVANCE(63);
      if (lookahead == '/') ADVANCE(91);
      if (lookahead != 0) ADVANCE(55);
      END_STATE();
    case 92:
      if (lookahead == '+') ADVANCE(63);
      if (lookahead == '/') ADVANCE(91);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 93:
      if (lookahead == '+') ADVANCE(89);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 94:
      if (lookahead == '+') ADVANCE(89);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 95:
      if (lookahead == '+') ADVANCE(103);
      if (lookahead == '/') ADVANCE(95);
      if (lookahead != 0) ADVANCE(44);
      END_STATE();
    case 96:
      if (lookahead == '+') ADVANCE(103);
      if (lookahead == '/') ADVANCE(95);
      if (lookahead != 0) ADVANCE(72);
      END_STATE();
    case 97:
      if (lookahead == '+') ADVANCE(148);
      if (lookahead == '/') ADVANCE(130);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 98:
      if (lookahead == '+') ADVANCE(79);
      if (lookahead == '/') ADVANCE(99);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 99:
      if (lookahead == '+') ADVANCE(79);
      if (lookahead == '/') ADVANCE(99);
      if (lookahead != 0) ADVANCE(74);
      END_STATE();
    case 100:
      if (lookahead == '+') ADVANCE(124);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 101:
      if (lookahead == '+') ADVANCE(110);
      if (lookahead == '/') ADVANCE(255);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 102:
      if (lookahead == '+') ADVANCE(77);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 103:
      if (lookahead == '+') ADVANCE(96);
      if (lookahead == '/') ADVANCE(52);
      if (lookahead != 0) ADVANCE(72);
      END_STATE();
    case 104:
      if (lookahead == '+') ADVANCE(123);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 105:
      if (lookahead == '+') ADVANCE(112);
      if (lookahead == '/') ADVANCE(105);
      if (lookahead != 0) ADVANCE(50);
      END_STATE();
    case 106:
      if (lookahead == '+') ADVANCE(112);
      if (lookahead == '/') ADVANCE(105);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 107:
      if (lookahead == '+') ADVANCE(127);
      if (lookahead == '/') ADVANCE(108);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 108:
      if (lookahead == '+') ADVANCE(127);
      if (lookahead == '/') ADVANCE(108);
      if (lookahead != 0) ADVANCE(87);
      END_STATE();
    case 109:
      if (lookahead == '+') ADVANCE(101);
      if (lookahead == '/') ADVANCE(109);
      if (lookahead != 0) ADVANCE(56);
      END_STATE();
    case 110:
      if (lookahead == '+') ADVANCE(101);
      if (lookahead == '/') ADVANCE(109);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 111:
      if (lookahead == '+') ADVANCE(128);
      if (lookahead == '/') ADVANCE(108);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 112:
      if (lookahead == '+') ADVANCE(106);
      if (lookahead == '/') ADVANCE(70);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 113:
      if (lookahead == '+') ADVANCE(118);
      if (lookahead == '/') ADVANCE(113);
      if (lookahead != 0) ADVANCE(72);
      END_STATE();
    case 114:
      if (lookahead == '+') ADVANCE(118);
      if (lookahead == '/') ADVANCE(113);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 115:
      if (lookahead == '+') ADVANCE(119);
      if (lookahead == '/') ADVANCE(115);
      if (lookahead != 0) ADVANCE(86);
      END_STATE();
    case 116:
      if (lookahead == '+') ADVANCE(119);
      if (lookahead == '/') ADVANCE(115);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 117:
      if (lookahead == '+') ADVANCE(130);
      if (lookahead == '/') ADVANCE(121);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 118:
      if (lookahead == '+') ADVANCE(114);
      if (lookahead == '/') ADVANCE(121);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 119:
      if (lookahead == '+') ADVANCE(116);
      if (lookahead == '/') ADVANCE(85);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 120:
      if (lookahead == '+') ADVANCE(80);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 121:
      if (lookahead == '+') ADVANCE(88);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 122:
      if (lookahead == '+') ADVANCE(84);
      if (lookahead == '/') ADVANCE(246);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 123:
      if (lookahead == '+') ADVANCE(104);
      if (lookahead == '/') ADVANCE(261);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 124:
      if (lookahead == '+') ADVANCE(100);
      if (lookahead == '/') ADVANCE(261);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 125:
      if (lookahead == '+') ADVANCE(131);
      if (lookahead == '/') ADVANCE(130);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 126:
      if (lookahead == '+') ADVANCE(129);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 127:
      if (lookahead == '+') ADVANCE(107);
      if (lookahead == '/') ADVANCE(246);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 128:
      if (lookahead == '+') ADVANCE(111);
      if (lookahead == '/') ADVANCE(222);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 129:
      if (lookahead == '+') ADVANCE(126);
      if (lookahead == '/') ADVANCE(258);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 130:
      if (lookahead == '+') ADVANCE(117);
      if (lookahead == '/') ADVANCE(130);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 131:
      if (lookahead == '+') ADVANCE(125);
      if (lookahead == '/') ADVANCE(126);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 132:
      if (lookahead == '.') ADVANCE(295);
      END_STATE();
    case 133:
      if (lookahead == '.') ADVANCE(132);
      END_STATE();
    case 134:
      if (lookahead == '.') ADVANCE(293);
      END_STATE();
    case 135:
      if (lookahead == '/') ADVANCE(33);
      if (lookahead != 0) ADVANCE(37);
      END_STATE();
    case 136:
      if (lookahead == '/') ADVANCE(187);
      if (lookahead != 0) ADVANCE(33);
      END_STATE();
    case 137:
      if (lookahead == '/') ADVANCE(192);
      if (lookahead != 0) ADVANCE(34);
      END_STATE();
    case 138:
      if (lookahead == '/') ADVANCE(198);
      if (lookahead != 0) ADVANCE(41);
      END_STATE();
    case 139:
      if (lookahead == '/') ADVANCE(195);
      if (lookahead != 0) ADVANCE(47);
      END_STATE();
    case 140:
      if (lookahead == '/') ADVANCE(34);
      if (lookahead != 0) ADVANCE(44);
      END_STATE();
    case 141:
      if (lookahead == '/') ADVANCE(210);
      if (lookahead != 0) ADVANCE(51);
      END_STATE();
    case 142:
      if (lookahead == '/') ADVANCE(214);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 143:
      if (lookahead == '/') ADVANCE(219);
      if (lookahead != 0) ADVANCE(55);
      END_STATE();
    case 144:
      if (lookahead == '/') ADVANCE(207);
      if (lookahead != 0) ADVANCE(56);
      END_STATE();
    case 145:
      if (lookahead == '/') ADVANCE(41);
      if (lookahead != 0) ADVANCE(50);
      END_STATE();
    case 146:
      if (lookahead == '/') ADVANCE(47);
      if (lookahead != 0) ADVANCE(72);
      END_STATE();
    case 147:
      if (lookahead == '/') ADVANCE(51);
      if (lookahead != 0) ADVANCE(86);
      END_STATE();
    case 148:
      if (lookahead == '/') ADVANCE(54);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 149:
      if (lookahead == '/') ADVANCE(225);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 150:
      if (lookahead == '/') ADVANCE(237);
      if (lookahead != 0) ADVANCE(74);
      END_STATE();
    case 151:
      if (lookahead == '/') ADVANCE(228);
      if (lookahead != 0) ADVANCE(87);
      END_STATE();
    case 152:
      if (lookahead == ';') ADVANCE(184);
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152);
      END_STATE();
    case 153:
      if (lookahead == '=') ADVANCE(327);
      END_STATE();
    case 154:
      if (lookahead == '=') ADVANCE(342);
      if (lookahead == '>') ADVANCE(356);
      END_STATE();
    case 155:
      if (lookahead == 'n') ADVANCE(358);
      if (lookahead == 's') ADVANCE(359);
      END_STATE();
    case 156:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(178);
      END_STATE();
    case 157:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(182);
      END_STATE();
    case 158:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(183);
      END_STATE();
    case 159:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(156);
      END_STATE();
    case 160:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(157);
      END_STATE();
    case 161:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(158);
      END_STATE();
    case 162:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(160);
      END_STATE();
    case 163:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(161);
      END_STATE();
    case 164:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(162);
      END_STATE();
    case 165:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(163);
      END_STATE();
    case 166:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(165);
      END_STATE();
    case 167:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(166);
      END_STATE();
    case 168:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(167);
      END_STATE();
    case 169:
      if (('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(168);
      END_STATE();
    case 170:
      if (('A' <= lookahead && lookahead <= 'Z') ||
          lookahead == '_' ||
          ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152);
      END_STATE();
    case 171:
      if (eof) ADVANCE(174);
      ADVANCE_MAP(
        0x1a, 185,
        '!', 326,
        '"', 629,
        '#', 357,
        '$', 337,
        '%', 346,
        '&', 297,
        '\'', 1012,
        '(', 328,
        ')', 329,
        '*', 344,
        '+', 310,
        ',', 333,
        '-', 305,
        '.', 290,
        '/', 287,
        ':', 335,
        ';', 334,
        '<', 314,
        '=', 340,
        '>', 318,
        '?', 332,
        '@', 355,
        '[', 330,
        '\\', 23,
        ']', 331,
        '^', 348,
        '_', 278,
        '`', 360,
        'i', 272,
        'q', 281,
        'r', 273,
        'x', 274,
        '{', 286,
        '|', 300,
        '}', 285,
        '~', 353,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(171);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 172:
      if (eof) ADVANCE(174);
      ADVANCE_MAP(
        0x1a, 185,
        '"', 625,
        '#', 5,
        '\'', 1011,
        '(', 328,
        ')', 329,
        ',', 333,
        '-', 303,
        '.', 289,
        '/', 30,
        ':', 335,
        ';', 334,
        '=', 338,
        '@', 355,
        '_', 278,
        '`', 492,
        '{', 286,
        '}', 285,
        '~', 352,
        0xfeff, 175,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(173);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 173:
      if (eof) ADVANCE(174);
      ADVANCE_MAP(
        0x1a, 185,
        '\'', 1011,
        '(', 328,
        ')', 329,
        ',', 333,
        '-', 303,
        '.', 289,
        '/', 30,
        ':', 335,
        ';', 334,
        '=', 338,
        '@', 355,
        '_', 278,
        '{', 286,
        '}', 285,
        '~', 352,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(173);
      if (set_contains(sym_identifier_character_set_1, 668, lookahead)) ADVANCE(283);
      END_STATE();
    case 174:
      ACCEPT_TOKEN(ts_builtin_sym_end);
      END_STATE();
    case 175:
      ACCEPT_TOKEN(anon_sym_BOM);
      END_STATE();
    case 176:
      ACCEPT_TOKEN(sym_shebang);
      END_STATE();
    case 177:
      ACCEPT_TOKEN(aux_sym_escape_sequence_token1);
      END_STATE();
    case 178:
      ACCEPT_TOKEN(aux_sym_escape_sequence_token2);
      END_STATE();
    case 179:
      ACCEPT_TOKEN(aux_sym_escape_sequence_token3);
      END_STATE();
    case 180:
      ACCEPT_TOKEN(aux_sym_escape_sequence_token3);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(179);
      END_STATE();
    case 181:
      ACCEPT_TOKEN(aux_sym_escape_sequence_token3);
      if (('0' <= lookahead && lookahead <= '7')) ADVANCE(180);
      END_STATE();
    case 182:
      ACCEPT_TOKEN(aux_sym_escape_sequence_token4);
      END_STATE();
    case 183:
      ACCEPT_TOKEN(aux_sym_escape_sequence_token5);
      END_STATE();
    case 184:
      ACCEPT_TOKEN(sym_htmlentity);
      END_STATE();
    case 185:
      ACCEPT_TOKEN(sym_end_file);
      END_STATE();
    case 186:
      ACCEPT_TOKEN(sym_end_file);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 187:
      ACCEPT_TOKEN(sym_comment);
      END_STATE();
    case 188:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\n') ADVANCE(1006);
      if (lookahead == '\\') ADVANCE(2);
      if (lookahead == '"' ||
          lookahead == '$') ADVANCE(267);
      if (lookahead != 0) ADVANCE(188);
      END_STATE();
    case 189:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\n') ADVANCE(881);
      if (lookahead == '\\') ADVANCE(760);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(267);
      if (lookahead != 0) ADVANCE(189);
      END_STATE();
    case 190:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\r') ADVANCE(268);
      if (lookahead == '\\') ADVANCE(190);
      if (lookahead != 0) ADVANCE(267);
      END_STATE();
    case 191:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\r') ADVANCE(269);
      if (lookahead == '\\') ADVANCE(191);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(267);
      if (lookahead != 0) ADVANCE(189);
      END_STATE();
    case 192:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(136);
      if (lookahead == '/') ADVANCE(35);
      if (lookahead != 0) ADVANCE(33);
      END_STATE();
    case 193:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(990);
      if (lookahead == '/') ADVANCE(891);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(33);
      if (lookahead != 0) ADVANCE(889);
      END_STATE();
    case 194:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(865);
      if (lookahead == '/') ADVANCE(766);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(33);
      if (lookahead != 0) ADVANCE(764);
      END_STATE();
    case 195:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(137);
      if (lookahead == '/') ADVANCE(42);
      if (lookahead != 0) ADVANCE(34);
      END_STATE();
    case 196:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(991);
      if (lookahead == '/') ADVANCE(898);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(34);
      if (lookahead != 0) ADVANCE(890);
      END_STATE();
    case 197:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(866);
      if (lookahead == '/') ADVANCE(773);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(34);
      if (lookahead != 0) ADVANCE(765);
      END_STATE();
    case 198:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(135);
      if (lookahead == '/') ADVANCE(45);
      if (lookahead != 0) ADVANCE(37);
      END_STATE();
    case 199:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(989);
      if (lookahead == '/') ADVANCE(901);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(37);
      if (lookahead != 0) ADVANCE(893);
      END_STATE();
    case 200:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(864);
      if (lookahead == '/') ADVANCE(776);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(37);
      if (lookahead != 0) ADVANCE(768);
      END_STATE();
    case 201:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(61);
      if (lookahead == '/') ADVANCE(105);
      if (lookahead != 0) ADVANCE(50);
      END_STATE();
    case 202:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(917);
      if (lookahead == '/') ADVANCE(961);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(50);
      if (lookahead != 0) ADVANCE(906);
      END_STATE();
    case 203:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(792);
      if (lookahead == '/') ADVANCE(836);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(50);
      if (lookahead != 0) ADVANCE(781);
      END_STATE();
    case 204:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(64);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 205:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(920);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 206:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(795);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 207:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(138);
      if (lookahead == '/') ADVANCE(65);
      if (lookahead != 0) ADVANCE(41);
      END_STATE();
    case 208:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(992);
      if (lookahead == '/') ADVANCE(921);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(41);
      if (lookahead != 0) ADVANCE(897);
      END_STATE();
    case 209:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(867);
      if (lookahead == '/') ADVANCE(796);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(41);
      if (lookahead != 0) ADVANCE(772);
      END_STATE();
    case 210:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(140);
      if (lookahead == '/') ADVANCE(95);
      if (lookahead != 0) ADVANCE(44);
      END_STATE();
    case 211:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(994);
      if (lookahead == '/') ADVANCE(951);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(44);
      if (lookahead != 0) ADVANCE(900);
      END_STATE();
    case 212:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(869);
      if (lookahead == '/') ADVANCE(826);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(44);
      if (lookahead != 0) ADVANCE(775);
      END_STATE();
    case 213:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(69);
      if (lookahead == '/') ADVANCE(45);
      if (lookahead != 0) ADVANCE(37);
      END_STATE();
    case 214:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(139);
      if (lookahead == '/') ADVANCE(83);
      if (lookahead != 0) ADVANCE(47);
      END_STATE();
    case 215:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(925);
      if (lookahead == '/') ADVANCE(901);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(37);
      if (lookahead != 0) ADVANCE(893);
      END_STATE();
    case 216:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(993);
      if (lookahead == '/') ADVANCE(939);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(47);
      if (lookahead != 0) ADVANCE(903);
      END_STATE();
    case 217:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(800);
      if (lookahead == '/') ADVANCE(776);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(37);
      if (lookahead != 0) ADVANCE(768);
      END_STATE();
    case 218:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(868);
      if (lookahead == '/') ADVANCE(814);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(47);
      if (lookahead != 0) ADVANCE(778);
      END_STATE();
    case 219:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(145);
      if (lookahead == '/') ADVANCE(105);
      if (lookahead != 0) ADVANCE(50);
      END_STATE();
    case 220:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(999);
      if (lookahead == '/') ADVANCE(961);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(50);
      if (lookahead != 0) ADVANCE(906);
      END_STATE();
    case 221:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(874);
      if (lookahead == '/') ADVANCE(836);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(50);
      if (lookahead != 0) ADVANCE(781);
      END_STATE();
    case 222:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(75);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 223:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(931);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 224:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(806);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 225:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(142);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 226:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(996);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 227:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(871);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 228:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(144);
      if (lookahead == '/') ADVANCE(109);
      if (lookahead != 0) ADVANCE(56);
      END_STATE();
    case 229:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(998);
      if (lookahead == '/') ADVANCE(965);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(56);
      if (lookahead != 0) ADVANCE(912);
      END_STATE();
    case 230:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(873);
      if (lookahead == '/') ADVANCE(840);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(56);
      if (lookahead != 0) ADVANCE(787);
      END_STATE();
    case 231:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(76);
      if (lookahead == '/') ADVANCE(113);
      if (lookahead != 0) ADVANCE(72);
      END_STATE();
    case 232:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(932);
      if (lookahead == '/') ADVANCE(969);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(72);
      if (lookahead != 0) ADVANCE(928);
      END_STATE();
    case 233:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(807);
      if (lookahead == '/') ADVANCE(844);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(72);
      if (lookahead != 0) ADVANCE(803);
      END_STATE();
    case 234:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(60);
      if (lookahead == '/') ADVANCE(83);
      if (lookahead != 0) ADVANCE(47);
      END_STATE();
    case 235:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(916);
      if (lookahead == '/') ADVANCE(939);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(47);
      if (lookahead != 0) ADVANCE(903);
      END_STATE();
    case 236:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(791);
      if (lookahead == '/') ADVANCE(814);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(47);
      if (lookahead != 0) ADVANCE(778);
      END_STATE();
    case 237:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(146);
      if (lookahead == '/') ADVANCE(113);
      if (lookahead != 0) ADVANCE(72);
      END_STATE();
    case 238:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(1000);
      if (lookahead == '/') ADVANCE(969);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(72);
      if (lookahead != 0) ADVANCE(928);
      END_STATE();
    case 239:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(875);
      if (lookahead == '/') ADVANCE(844);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(72);
      if (lookahead != 0) ADVANCE(803);
      END_STATE();
    case 240:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(149);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 241:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(1003);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 242:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(878);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 243:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(151);
      if (lookahead == '/') ADVANCE(108);
      if (lookahead != 0) ADVANCE(87);
      END_STATE();
    case 244:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(1005);
      if (lookahead == '/') ADVANCE(964);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(87);
      if (lookahead != 0) ADVANCE(943);
      END_STATE();
    case 245:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(880);
      if (lookahead == '/') ADVANCE(839);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(87);
      if (lookahead != 0) ADVANCE(818);
      END_STATE();
    case 246:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(124);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 247:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(980);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 248:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(855);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 249:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(123);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 250:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(979);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 251:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(854);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 252:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(112);
      if (lookahead == '/') ADVANCE(105);
      if (lookahead != 0) ADVANCE(50);
      END_STATE();
    case 253:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(968);
      if (lookahead == '/') ADVANCE(961);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(50);
      if (lookahead != 0) ADVANCE(906);
      END_STATE();
    case 254:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(843);
      if (lookahead == '/') ADVANCE(836);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(50);
      if (lookahead != 0) ADVANCE(781);
      END_STATE();
    case 255:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(128);
      if (lookahead == '/') ADVANCE(108);
      if (lookahead != 0) ADVANCE(87);
      END_STATE();
    case 256:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(984);
      if (lookahead == '/') ADVANCE(964);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(87);
      if (lookahead != 0) ADVANCE(943);
      END_STATE();
    case 257:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(859);
      if (lookahead == '/') ADVANCE(839);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(87);
      if (lookahead != 0) ADVANCE(818);
      END_STATE();
    case 258:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(80);
      if (lookahead == '/') ADVANCE(93);
      if (lookahead != 0) ADVANCE(54);
      END_STATE();
    case 259:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(936);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 260:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(811);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 261:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(88);
      if (lookahead == '/') ADVANCE(102);
      if (lookahead != 0) ADVANCE(73);
      END_STATE();
    case 262:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(944);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 263:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(819);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 264:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(131);
      if (lookahead == '/') ADVANCE(130);
      if (lookahead != 0) ADVANCE(97);
      END_STATE();
    case 265:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(987);
      if (lookahead == '/') ADVANCE(986);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 266:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '+') ADVANCE(862);
      if (lookahead == '/') ADVANCE(861);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 267:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\\') ADVANCE(2);
      if (lookahead != 0 &&
          lookahead != '\n') ADVANCE(267);
      END_STATE();
    case 268:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\\') ADVANCE(2);
      if (lookahead != 0) ADVANCE(267);
      END_STATE();
    case 269:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead == '\\') ADVANCE(760);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(267);
      if (lookahead != 0) ADVANCE(189);
      END_STATE();
    case 270:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          lookahead != '\\') ADVANCE(1006);
      END_STATE();
    case 271:
      ACCEPT_TOKEN(sym_comment);
      if (lookahead != 0 &&
          lookahead != '$' &&
          lookahead != '`') ADVANCE(881);
      END_STATE();
    case 272:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '"') ADVANCE(885);
      if (lookahead == '`') ADVANCE(759);
      if (lookahead == 'q') ADVANCE(282);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 273:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '"') ADVANCE(493);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 274:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '"') ADVANCE(626);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 275:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'E') ADVANCE(277);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 276:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'F') ADVANCE(280);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 277:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == 'O') ADVANCE(276);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 278:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '_') ADVANCE(275);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 279:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '_') ADVANCE(186);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 280:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '_') ADVANCE(279);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 281:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '{') ADVANCE(284);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 282:
      ACCEPT_TOKEN(sym_identifier);
      if (lookahead == '{') ADVANCE(1009);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 283:
      ACCEPT_TOKEN(sym_identifier);
      if (set_contains(sym_identifier_character_set_2, 776, lookahead)) ADVANCE(283);
      END_STATE();
    case 284:
      ACCEPT_TOKEN(anon_sym_q_LBRACE);
      END_STATE();
    case 285:
      ACCEPT_TOKEN(anon_sym_RBRACE);
      END_STATE();
    case 286:
      ACCEPT_TOKEN(anon_sym_LBRACE);
      END_STATE();
    case 287:
      ACCEPT_TOKEN(anon_sym_SLASH);
      if (lookahead == '*') ADVANCE(32);
      if (lookahead == '+') ADVANCE(33);
      if (lookahead == '/') ADVANCE(267);
      if (lookahead == '=') ADVANCE(288);
      END_STATE();
    case 288:
      ACCEPT_TOKEN(anon_sym_SLASH_EQ);
      END_STATE();
    case 289:
      ACCEPT_TOKEN(anon_sym_DOT);
      END_STATE();
    case 290:
      ACCEPT_TOKEN(anon_sym_DOT);
      if (lookahead == '.') ADVANCE(294);
      END_STATE();
    case 291:
      ACCEPT_TOKEN(anon_sym_DOT);
      if (lookahead == '.') ADVANCE(132);
      END_STATE();
    case 292:
      ACCEPT_TOKEN(anon_sym_DOT);
      if (lookahead == '.') ADVANCE(293);
      END_STATE();
    case 293:
      ACCEPT_TOKEN(anon_sym_DOT_DOT);
      END_STATE();
    case 294:
      ACCEPT_TOKEN(anon_sym_DOT_DOT);
      if (lookahead == '.') ADVANCE(295);
      END_STATE();
    case 295:
      ACCEPT_TOKEN(anon_sym_DOT_DOT_DOT);
      END_STATE();
    case 296:
      ACCEPT_TOKEN(anon_sym_AMP);
      END_STATE();
    case 297:
      ACCEPT_TOKEN(anon_sym_AMP);
      if (lookahead == '&') ADVANCE(299);
      if (lookahead == '=') ADVANCE(298);
      END_STATE();
    case 298:
      ACCEPT_TOKEN(anon_sym_AMP_EQ);
      END_STATE();
    case 299:
      ACCEPT_TOKEN(anon_sym_AMP_AMP);
      END_STATE();
    case 300:
      ACCEPT_TOKEN(anon_sym_PIPE);
      if (lookahead == '=') ADVANCE(301);
      if (lookahead == '|') ADVANCE(302);
      END_STATE();
    case 301:
      ACCEPT_TOKEN(anon_sym_PIPE_EQ);
      END_STATE();
    case 302:
      ACCEPT_TOKEN(anon_sym_PIPE_PIPE);
      END_STATE();
    case 303:
      ACCEPT_TOKEN(anon_sym_DASH);
      END_STATE();
    case 304:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(308);
      END_STATE();
    case 305:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '-') ADVANCE(308);
      if (lookahead == '=') ADVANCE(307);
      END_STATE();
    case 306:
      ACCEPT_TOKEN(anon_sym_DASH);
      if (lookahead == '=') ADVANCE(307);
      END_STATE();
    case 307:
      ACCEPT_TOKEN(anon_sym_DASH_EQ);
      END_STATE();
    case 308:
      ACCEPT_TOKEN(anon_sym_DASH_DASH);
      END_STATE();
    case 309:
      ACCEPT_TOKEN(anon_sym_PLUS);
      if (lookahead == '+') ADVANCE(313);
      END_STATE();
    case 310:
      ACCEPT_TOKEN(anon_sym_PLUS);
      if (lookahead == '+') ADVANCE(313);
      if (lookahead == '=') ADVANCE(312);
      END_STATE();
    case 311:
      ACCEPT_TOKEN(anon_sym_PLUS);
      if (lookahead == '=') ADVANCE(312);
      END_STATE();
    case 312:
      ACCEPT_TOKEN(anon_sym_PLUS_EQ);
      END_STATE();
    case 313:
      ACCEPT_TOKEN(anon_sym_PLUS_PLUS);
      END_STATE();
    case 314:
      ACCEPT_TOKEN(anon_sym_LT);
      if (lookahead == '<') ADVANCE(316);
      if (lookahead == '=') ADVANCE(315);
      END_STATE();
    case 315:
      ACCEPT_TOKEN(anon_sym_LT_EQ);
      END_STATE();
    case 316:
      ACCEPT_TOKEN(anon_sym_LT_LT);
      if (lookahead == '=') ADVANCE(317);
      END_STATE();
    case 317:
      ACCEPT_TOKEN(anon_sym_LT_LT_EQ);
      END_STATE();
    case 318:
      ACCEPT_TOKEN(anon_sym_GT);
      if (lookahead == '=') ADVANCE(319);
      if (lookahead == '>') ADVANCE(322);
      END_STATE();
    case 319:
      ACCEPT_TOKEN(anon_sym_GT_EQ);
      END_STATE();
    case 320:
      ACCEPT_TOKEN(anon_sym_GT_GT_EQ);
      END_STATE();
    case 321:
      ACCEPT_TOKEN(anon_sym_GT_GT_GT_EQ);
      END_STATE();
    case 322:
      ACCEPT_TOKEN(anon_sym_GT_GT);
      if (lookahead == '=') ADVANCE(320);
      if (lookahead == '>') ADVANCE(323);
      END_STATE();
    case 323:
      ACCEPT_TOKEN(anon_sym_GT_GT_GT);
      if (lookahead == '=') ADVANCE(321);
      END_STATE();
    case 324:
      ACCEPT_TOKEN(anon_sym_BANG);
      END_STATE();
    case 325:
      ACCEPT_TOKEN(anon_sym_BANG);
      if (lookahead == '=') ADVANCE(327);
      END_STATE();
    case 326:
      ACCEPT_TOKEN(anon_sym_BANG);
      if (lookahead == '=') ADVANCE(327);
      if (lookahead == 'i') ADVANCE(155);
      END_STATE();
    case 327:
      ACCEPT_TOKEN(anon_sym_BANG_EQ);
      END_STATE();
    case 328:
      ACCEPT_TOKEN(anon_sym_LPAREN);
      END_STATE();
    case 329:
      ACCEPT_TOKEN(anon_sym_RPAREN);
      END_STATE();
    case 330:
      ACCEPT_TOKEN(anon_sym_LBRACK);
      END_STATE();
    case 331:
      ACCEPT_TOKEN(anon_sym_RBRACK);
      END_STATE();
    case 332:
      ACCEPT_TOKEN(anon_sym_QMARK);
      END_STATE();
    case 333:
      ACCEPT_TOKEN(anon_sym_COMMA);
      END_STATE();
    case 334:
      ACCEPT_TOKEN(anon_sym_SEMI);
      END_STATE();
    case 335:
      ACCEPT_TOKEN(anon_sym_COLON);
      END_STATE();
    case 336:
      ACCEPT_TOKEN(anon_sym_DOLLAR);
      END_STATE();
    case 337:
      ACCEPT_TOKEN(anon_sym_DOLLAR);
      if (lookahead == '(') ADVANCE(758);
      END_STATE();
    case 338:
      ACCEPT_TOKEN(anon_sym_EQ);
      END_STATE();
    case 339:
      ACCEPT_TOKEN(anon_sym_EQ);
      if (lookahead == '=') ADVANCE(342);
      END_STATE();
    case 340:
      ACCEPT_TOKEN(anon_sym_EQ);
      if (lookahead == '=') ADVANCE(342);
      if (lookahead == '>') ADVANCE(356);
      END_STATE();
    case 341:
      ACCEPT_TOKEN(anon_sym_EQ);
      if (lookahead == '>') ADVANCE(356);
      END_STATE();
    case 342:
      ACCEPT_TOKEN(anon_sym_EQ_EQ);
      END_STATE();
    case 343:
      ACCEPT_TOKEN(anon_sym_STAR);
      END_STATE();
    case 344:
      ACCEPT_TOKEN(anon_sym_STAR);
      if (lookahead == '=') ADVANCE(345);
      END_STATE();
    case 345:
      ACCEPT_TOKEN(anon_sym_STAR_EQ);
      END_STATE();
    case 346:
      ACCEPT_TOKEN(anon_sym_PERCENT);
      if (lookahead == '=') ADVANCE(347);
      END_STATE();
    case 347:
      ACCEPT_TOKEN(anon_sym_PERCENT_EQ);
      END_STATE();
    case 348:
      ACCEPT_TOKEN(anon_sym_CARET);
      if (lookahead == '=') ADVANCE(349);
      if (lookahead == '^') ADVANCE(350);
      END_STATE();
    case 349:
      ACCEPT_TOKEN(anon_sym_CARET_EQ);
      END_STATE();
    case 350:
      ACCEPT_TOKEN(anon_sym_CARET_CARET);
      if (lookahead == '=') ADVANCE(351);
      END_STATE();
    case 351:
      ACCEPT_TOKEN(anon_sym_CARET_CARET_EQ);
      END_STATE();
    case 352:
      ACCEPT_TOKEN(anon_sym_TILDE);
      END_STATE();
    case 353:
      ACCEPT_TOKEN(anon_sym_TILDE);
      if (lookahead == '=') ADVANCE(354);
      END_STATE();
    case 354:
      ACCEPT_TOKEN(anon_sym_TILDE_EQ);
      END_STATE();
    case 355:
      ACCEPT_TOKEN(anon_sym_AT);
      END_STATE();
    case 356:
      ACCEPT_TOKEN(anon_sym_EQ_GT);
      END_STATE();
    case 357:
      ACCEPT_TOKEN(anon_sym_POUND);
      END_STATE();
    case 358:
      ACCEPT_TOKEN(anon_sym_BANGin);
      END_STATE();
    case 359:
      ACCEPT_TOKEN(anon_sym_BANGis);
      END_STATE();
    case 360:
      ACCEPT_TOKEN(anon_sym_BQUOTE);
      END_STATE();
    case 361:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '\n') ADVANCE(490);
      if (lookahead == '\\') ADVANCE(362);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(361);
      END_STATE();
    case 362:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '\r') ADVANCE(489);
      if (lookahead == '\\') ADVANCE(362);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(361);
      END_STATE();
    case 363:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '*') ADVANCE(365);
      if (lookahead == '+') ADVANCE(366);
      if (lookahead == '/') ADVANCE(361);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(490);
      END_STATE();
    case 364:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '*') ADVANCE(364);
      if (lookahead == '/') ADVANCE(490);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(365);
      END_STATE();
    case 365:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '*') ADVANCE(364);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(365);
      END_STATE();
    case 366:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(472);
      if (lookahead == '/') ADVANCE(370);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(366);
      END_STATE();
    case 367:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(473);
      if (lookahead == '/') ADVANCE(398);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(367);
      END_STATE();
    case 368:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(382);
      if (lookahead == '/') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(428);
      END_STATE();
    case 369:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(382);
      if (lookahead == '/') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(427);
      END_STATE();
    case 370:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(373);
      if (lookahead == '/') ADVANCE(370);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(366);
      END_STATE();
    case 371:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(373);
      if (lookahead == '/') ADVANCE(370);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(367);
      END_STATE();
    case 372:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(475);
      if (lookahead == '/') ADVANCE(405);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(372);
      END_STATE();
    case 373:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(371);
      if (lookahead == '/') ADVANCE(376);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(367);
      END_STATE();
    case 374:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(477);
      if (lookahead == '/') ADVANCE(401);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(374);
      END_STATE();
    case 375:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(378);
      if (lookahead == '/') ADVANCE(376);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(372);
      END_STATE();
    case 376:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(378);
      if (lookahead == '/') ADVANCE(376);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(451);
      END_STATE();
    case 377:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(482);
      if (lookahead == '/') ADVANCE(411);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(377);
      END_STATE();
    case 378:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(375);
      if (lookahead == '/') ADVANCE(380);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(372);
      END_STATE();
    case 379:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(381);
      if (lookahead == '/') ADVANCE(390);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(374);
      END_STATE();
    case 380:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(381);
      if (lookahead == '/') ADVANCE(390);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(426);
      END_STATE();
    case 381:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(379);
      if (lookahead == '/') ADVANCE(369);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(374);
      END_STATE();
    case 382:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(368);
      if (lookahead == '/') ADVANCE(377);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(428);
      END_STATE();
    case 383:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(385);
      if (lookahead == '/') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(427);
      END_STATE();
    case 384:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(385);
      if (lookahead == '/') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 385:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(384);
      if (lookahead == '/') ADVANCE(387);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 386:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(389);
      if (lookahead == '/') ADVANCE(461);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 387:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(410);
      if (lookahead == '/') ADVANCE(411);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(377);
      END_STATE();
    case 388:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(410);
      if (lookahead == '/') ADVANCE(411);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(448);
      END_STATE();
    case 389:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(386);
      if (lookahead == '/') ADVANCE(466);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 390:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(392);
      if (lookahead == '/') ADVANCE(390);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(426);
      END_STATE();
    case 391:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(392);
      if (lookahead == '/') ADVANCE(390);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 392:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(391);
      if (lookahead == '/') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 393:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(395);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 394:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(395);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 395:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(394);
      if (lookahead == '/') ADVANCE(389);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 396:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(404);
      if (lookahead == '/') ADVANCE(453);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(448);
      END_STATE();
    case 397:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(414);
      if (lookahead == '/') ADVANCE(466);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 398:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(400);
      if (lookahead == '/') ADVANCE(398);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(367);
      END_STATE();
    case 399:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(400);
      if (lookahead == '/') ADVANCE(398);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(454);
      END_STATE();
    case 400:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(399);
      if (lookahead == '/') ADVANCE(437);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(454);
      END_STATE();
    case 401:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(403);
      if (lookahead == '/') ADVANCE(401);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(374);
      END_STATE();
    case 402:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(403);
      if (lookahead == '/') ADVANCE(401);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 403:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(402);
      if (lookahead == '/') ADVANCE(469);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 404:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(396);
      if (lookahead == '/') ADVANCE(450);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(448);
      END_STATE();
    case 405:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(407);
      if (lookahead == '/') ADVANCE(405);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(372);
      END_STATE();
    case 406:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(407);
      if (lookahead == '/') ADVANCE(405);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(460);
      END_STATE();
    case 407:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(406);
      if (lookahead == '/') ADVANCE(393);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(460);
      END_STATE();
    case 408:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(465);
      if (lookahead == '/') ADVANCE(408);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(428);
      END_STATE();
    case 409:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(465);
      if (lookahead == '/') ADVANCE(408);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 410:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(388);
      if (lookahead == '/') ADVANCE(369);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(448);
      END_STATE();
    case 411:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(418);
      if (lookahead == '/') ADVANCE(411);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(377);
      END_STATE();
    case 412:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(418);
      if (lookahead == '/') ADVANCE(411);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 413:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(438);
      if (lookahead == '/') ADVANCE(393);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 414:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(397);
      if (lookahead == '/') ADVANCE(389);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 415:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(417);
      if (lookahead == '/') ADVANCE(416);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 416:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(417);
      if (lookahead == '/') ADVANCE(416);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(460);
      END_STATE();
    case 417:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(415);
      if (lookahead == '/') ADVANCE(397);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 418:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(412);
      if (lookahead == '/') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 419:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(440);
      if (lookahead == '/') ADVANCE(397);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 420:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(422);
      if (lookahead == '/') ADVANCE(439);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 421:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(420);
      if (lookahead == '/') ADVANCE(421);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(455);
      END_STATE();
    case 422:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(420);
      if (lookahead == '/') ADVANCE(421);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 423:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(442);
      if (lookahead == '/') ADVANCE(424);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 424:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(447);
      if (lookahead == '/') ADVANCE(421);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(455);
      END_STATE();
    case 425:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(447);
      if (lookahead == '/') ADVANCE(421);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 426:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(479);
      if (lookahead == '/') ADVANCE(390);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(426);
      END_STATE();
    case 427:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(480);
      if (lookahead == '/') ADVANCE(383);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(427);
      END_STATE();
    case 428:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(478);
      if (lookahead == '/') ADVANCE(408);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(428);
      END_STATE();
    case 429:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(452);
      if (lookahead == '/') ADVANCE(455);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 430:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(432);
      if (lookahead == '/') ADVANCE(430);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(454);
      END_STATE();
    case 431:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(432);
      if (lookahead == '/') ADVANCE(430);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 432:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(431);
      if (lookahead == '/') ADVANCE(439);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 433:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(446);
      if (lookahead == '/') ADVANCE(397);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 434:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(436);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 435:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(436);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 436:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(435);
      if (lookahead == '/') ADVANCE(462);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 437:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(413);
      if (lookahead == '/') ADVANCE(430);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(454);
      END_STATE();
    case 438:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(413);
      if (lookahead == '/') ADVANCE(430);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 439:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(419);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 440:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(419);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 441:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(423);
      if (lookahead == '/') ADVANCE(441);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(458);
      END_STATE();
    case 442:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(423);
      if (lookahead == '/') ADVANCE(441);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 443:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(483);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 444:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(485);
      if (lookahead == '/') ADVANCE(446);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 445:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(464);
      if (lookahead == '/') ADVANCE(455);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 446:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(433);
      if (lookahead == '/') ADVANCE(446);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 447:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(425);
      if (lookahead == '/') ADVANCE(393);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 448:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(487);
      if (lookahead == '/') ADVANCE(450);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(448);
      END_STATE();
    case 449:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(467);
      if (lookahead == '/') ADVANCE(450);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 450:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(467);
      if (lookahead == '/') ADVANCE(450);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(448);
      END_STATE();
    case 451:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(474);
      if (lookahead == '/') ADVANCE(376);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(451);
      END_STATE();
    case 452:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(429);
      if (lookahead == '/') ADVANCE(416);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 453:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(429);
      if (lookahead == '/') ADVANCE(416);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(460);
      END_STATE();
    case 454:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(476);
      if (lookahead == '/') ADVANCE(430);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(454);
      END_STATE();
    case 455:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(488);
      if (lookahead == '/') ADVANCE(421);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(455);
      END_STATE();
    case 456:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(469);
      if (lookahead == '/') ADVANCE(457);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 457:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(468);
      if (lookahead == '/') ADVANCE(466);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 458:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(481);
      if (lookahead == '/') ADVANCE(441);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(458);
      END_STATE();
    case 459:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(466);
      if (lookahead == '/') ADVANCE(462);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 460:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(484);
      if (lookahead == '/') ADVANCE(416);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(460);
      END_STATE();
    case 461:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(486);
      if (lookahead == '/') ADVANCE(466);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 462:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(470);
      if (lookahead == '/') ADVANCE(466);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 463:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(445);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 464:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(445);
      if (lookahead == '/') ADVANCE(434);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 465:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(409);
      if (lookahead == '/') ADVANCE(404);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 466:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(459);
      if (lookahead == '/') ADVANCE(466);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 467:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(449);
      if (lookahead == '/') ADVANCE(469);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 468:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(457);
      if (lookahead == '/') ADVANCE(463);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 469:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(456);
      if (lookahead == '/') ADVANCE(446);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 470:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '+') ADVANCE(462);
      if (lookahead == '/') ADVANCE(397);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 471:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(363);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) ADVANCE(471);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(490);
      END_STATE();
    case 472:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(490);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(366);
      END_STATE();
    case 473:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(366);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(367);
      END_STATE();
    case 474:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(366);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(451);
      END_STATE();
    case 475:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(367);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(372);
      END_STATE();
    case 476:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(367);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(454);
      END_STATE();
    case 477:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(372);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(374);
      END_STATE();
    case 478:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(374);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(428);
      END_STATE();
    case 479:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(451);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(426);
      END_STATE();
    case 480:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(426);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(427);
      END_STATE();
    case 481:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(426);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(458);
      END_STATE();
    case 482:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(427);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(377);
      END_STATE();
    case 483:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(454);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(443);
      END_STATE();
    case 484:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(454);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(460);
      END_STATE();
    case 485:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(443);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(444);
      END_STATE();
    case 486:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(443);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(461);
      END_STATE();
    case 487:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(460);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(448);
      END_STATE();
    case 488:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '/') ADVANCE(458);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(455);
      END_STATE();
    case 489:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead == '\\') ADVANCE(362);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(361);
      END_STATE();
    case 490:
      ACCEPT_TOKEN(aux_sym_raw_string_token1);
      if (lookahead != 0 &&
          lookahead != '`') ADVANCE(490);
      END_STATE();
    case 491:
      ACCEPT_TOKEN(aux_sym_raw_string_token2);
      END_STATE();
    case 492:
      ACCEPT_TOKEN(aux_sym_raw_string_token2);
      if (lookahead == 'c' ||
          lookahead == 'd' ||
          lookahead == 'w') ADVANCE(491);
      END_STATE();
    case 493:
      ACCEPT_TOKEN(anon_sym_r_DQUOTE);
      END_STATE();
    case 494:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '\n') ADVANCE(623);
      if (lookahead == '\\') ADVANCE(495);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(494);
      END_STATE();
    case 495:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '\r') ADVANCE(622);
      if (lookahead == '\\') ADVANCE(495);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(494);
      END_STATE();
    case 496:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '*') ADVANCE(498);
      if (lookahead == '+') ADVANCE(499);
      if (lookahead == '/') ADVANCE(494);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(623);
      END_STATE();
    case 497:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '*') ADVANCE(497);
      if (lookahead == '/') ADVANCE(623);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(498);
      END_STATE();
    case 498:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '*') ADVANCE(497);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(498);
      END_STATE();
    case 499:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(605);
      if (lookahead == '/') ADVANCE(503);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(499);
      END_STATE();
    case 500:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(606);
      if (lookahead == '/') ADVANCE(531);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(500);
      END_STATE();
    case 501:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(515);
      if (lookahead == '/') ADVANCE(516);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(561);
      END_STATE();
    case 502:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(515);
      if (lookahead == '/') ADVANCE(516);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(560);
      END_STATE();
    case 503:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(506);
      if (lookahead == '/') ADVANCE(503);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(499);
      END_STATE();
    case 504:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(506);
      if (lookahead == '/') ADVANCE(503);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(500);
      END_STATE();
    case 505:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(608);
      if (lookahead == '/') ADVANCE(538);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(505);
      END_STATE();
    case 506:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(504);
      if (lookahead == '/') ADVANCE(509);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(500);
      END_STATE();
    case 507:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(610);
      if (lookahead == '/') ADVANCE(534);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(507);
      END_STATE();
    case 508:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(511);
      if (lookahead == '/') ADVANCE(509);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(505);
      END_STATE();
    case 509:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(511);
      if (lookahead == '/') ADVANCE(509);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(584);
      END_STATE();
    case 510:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(615);
      if (lookahead == '/') ADVANCE(544);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(510);
      END_STATE();
    case 511:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(508);
      if (lookahead == '/') ADVANCE(513);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(505);
      END_STATE();
    case 512:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(514);
      if (lookahead == '/') ADVANCE(523);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(507);
      END_STATE();
    case 513:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(514);
      if (lookahead == '/') ADVANCE(523);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(559);
      END_STATE();
    case 514:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(512);
      if (lookahead == '/') ADVANCE(502);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(507);
      END_STATE();
    case 515:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(501);
      if (lookahead == '/') ADVANCE(510);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(561);
      END_STATE();
    case 516:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(518);
      if (lookahead == '/') ADVANCE(516);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(560);
      END_STATE();
    case 517:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(518);
      if (lookahead == '/') ADVANCE(516);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 518:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(517);
      if (lookahead == '/') ADVANCE(520);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 519:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(522);
      if (lookahead == '/') ADVANCE(594);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 520:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(543);
      if (lookahead == '/') ADVANCE(544);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(510);
      END_STATE();
    case 521:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(543);
      if (lookahead == '/') ADVANCE(544);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(581);
      END_STATE();
    case 522:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(519);
      if (lookahead == '/') ADVANCE(599);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 523:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(525);
      if (lookahead == '/') ADVANCE(523);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(559);
      END_STATE();
    case 524:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(525);
      if (lookahead == '/') ADVANCE(523);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 525:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(524);
      if (lookahead == '/') ADVANCE(516);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 526:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(528);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 527:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(528);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 528:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(527);
      if (lookahead == '/') ADVANCE(522);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 529:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(537);
      if (lookahead == '/') ADVANCE(586);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(581);
      END_STATE();
    case 530:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(547);
      if (lookahead == '/') ADVANCE(599);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 531:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(533);
      if (lookahead == '/') ADVANCE(531);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(500);
      END_STATE();
    case 532:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(533);
      if (lookahead == '/') ADVANCE(531);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(587);
      END_STATE();
    case 533:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(532);
      if (lookahead == '/') ADVANCE(570);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(587);
      END_STATE();
    case 534:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(536);
      if (lookahead == '/') ADVANCE(534);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(507);
      END_STATE();
    case 535:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(536);
      if (lookahead == '/') ADVANCE(534);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 536:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(535);
      if (lookahead == '/') ADVANCE(602);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 537:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(529);
      if (lookahead == '/') ADVANCE(583);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(581);
      END_STATE();
    case 538:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(540);
      if (lookahead == '/') ADVANCE(538);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(505);
      END_STATE();
    case 539:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(540);
      if (lookahead == '/') ADVANCE(538);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(593);
      END_STATE();
    case 540:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(539);
      if (lookahead == '/') ADVANCE(526);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(593);
      END_STATE();
    case 541:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(598);
      if (lookahead == '/') ADVANCE(541);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(561);
      END_STATE();
    case 542:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(598);
      if (lookahead == '/') ADVANCE(541);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 543:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(521);
      if (lookahead == '/') ADVANCE(502);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(581);
      END_STATE();
    case 544:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(551);
      if (lookahead == '/') ADVANCE(544);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(510);
      END_STATE();
    case 545:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(551);
      if (lookahead == '/') ADVANCE(544);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 546:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(571);
      if (lookahead == '/') ADVANCE(526);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 547:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(530);
      if (lookahead == '/') ADVANCE(522);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 548:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(550);
      if (lookahead == '/') ADVANCE(549);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 549:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(550);
      if (lookahead == '/') ADVANCE(549);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(593);
      END_STATE();
    case 550:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(548);
      if (lookahead == '/') ADVANCE(530);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 551:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(545);
      if (lookahead == '/') ADVANCE(516);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 552:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(573);
      if (lookahead == '/') ADVANCE(530);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 553:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(555);
      if (lookahead == '/') ADVANCE(572);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 554:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(553);
      if (lookahead == '/') ADVANCE(554);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(588);
      END_STATE();
    case 555:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(553);
      if (lookahead == '/') ADVANCE(554);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 556:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(575);
      if (lookahead == '/') ADVANCE(557);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 557:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(580);
      if (lookahead == '/') ADVANCE(554);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(588);
      END_STATE();
    case 558:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(580);
      if (lookahead == '/') ADVANCE(554);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 559:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(612);
      if (lookahead == '/') ADVANCE(523);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(559);
      END_STATE();
    case 560:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(613);
      if (lookahead == '/') ADVANCE(516);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(560);
      END_STATE();
    case 561:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(611);
      if (lookahead == '/') ADVANCE(541);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(561);
      END_STATE();
    case 562:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(585);
      if (lookahead == '/') ADVANCE(588);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 563:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(565);
      if (lookahead == '/') ADVANCE(563);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(587);
      END_STATE();
    case 564:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(565);
      if (lookahead == '/') ADVANCE(563);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 565:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(564);
      if (lookahead == '/') ADVANCE(572);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 566:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(579);
      if (lookahead == '/') ADVANCE(530);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 567:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(569);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 568:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(569);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 569:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(568);
      if (lookahead == '/') ADVANCE(595);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 570:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(546);
      if (lookahead == '/') ADVANCE(563);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(587);
      END_STATE();
    case 571:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(546);
      if (lookahead == '/') ADVANCE(563);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 572:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(552);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 573:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(552);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 574:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(556);
      if (lookahead == '/') ADVANCE(574);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(591);
      END_STATE();
    case 575:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(556);
      if (lookahead == '/') ADVANCE(574);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 576:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(616);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 577:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(618);
      if (lookahead == '/') ADVANCE(579);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 578:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(597);
      if (lookahead == '/') ADVANCE(588);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 579:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(566);
      if (lookahead == '/') ADVANCE(579);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 580:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(558);
      if (lookahead == '/') ADVANCE(526);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 581:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(620);
      if (lookahead == '/') ADVANCE(583);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(581);
      END_STATE();
    case 582:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(600);
      if (lookahead == '/') ADVANCE(583);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 583:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(600);
      if (lookahead == '/') ADVANCE(583);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(581);
      END_STATE();
    case 584:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(607);
      if (lookahead == '/') ADVANCE(509);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(584);
      END_STATE();
    case 585:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(562);
      if (lookahead == '/') ADVANCE(549);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 586:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(562);
      if (lookahead == '/') ADVANCE(549);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(593);
      END_STATE();
    case 587:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(609);
      if (lookahead == '/') ADVANCE(563);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(587);
      END_STATE();
    case 588:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(621);
      if (lookahead == '/') ADVANCE(554);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(588);
      END_STATE();
    case 589:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(602);
      if (lookahead == '/') ADVANCE(590);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 590:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(601);
      if (lookahead == '/') ADVANCE(599);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 591:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(614);
      if (lookahead == '/') ADVANCE(574);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(591);
      END_STATE();
    case 592:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(599);
      if (lookahead == '/') ADVANCE(595);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 593:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(617);
      if (lookahead == '/') ADVANCE(549);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(593);
      END_STATE();
    case 594:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(619);
      if (lookahead == '/') ADVANCE(599);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 595:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(603);
      if (lookahead == '/') ADVANCE(599);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 596:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(578);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 597:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(578);
      if (lookahead == '/') ADVANCE(567);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 598:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(542);
      if (lookahead == '/') ADVANCE(537);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 599:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(592);
      if (lookahead == '/') ADVANCE(599);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 600:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(582);
      if (lookahead == '/') ADVANCE(602);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 601:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(590);
      if (lookahead == '/') ADVANCE(596);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 602:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(589);
      if (lookahead == '/') ADVANCE(579);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 603:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '+') ADVANCE(595);
      if (lookahead == '/') ADVANCE(530);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 604:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(496);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) ADVANCE(604);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(623);
      END_STATE();
    case 605:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(623);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(499);
      END_STATE();
    case 606:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(499);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(500);
      END_STATE();
    case 607:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(499);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(584);
      END_STATE();
    case 608:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(500);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(505);
      END_STATE();
    case 609:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(500);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(587);
      END_STATE();
    case 610:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(505);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(507);
      END_STATE();
    case 611:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(507);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(561);
      END_STATE();
    case 612:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(584);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(559);
      END_STATE();
    case 613:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(559);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(560);
      END_STATE();
    case 614:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(559);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(591);
      END_STATE();
    case 615:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(560);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(510);
      END_STATE();
    case 616:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(587);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(576);
      END_STATE();
    case 617:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(587);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(593);
      END_STATE();
    case 618:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(576);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(577);
      END_STATE();
    case 619:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(576);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(594);
      END_STATE();
    case 620:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(593);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(581);
      END_STATE();
    case 621:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '/') ADVANCE(591);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(588);
      END_STATE();
    case 622:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead == '\\') ADVANCE(495);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(494);
      END_STATE();
    case 623:
      ACCEPT_TOKEN(aux_sym_raw_string_token3);
      if (lookahead != 0 &&
          lookahead != '"') ADVANCE(623);
      END_STATE();
    case 624:
      ACCEPT_TOKEN(aux_sym_raw_string_token4);
      END_STATE();
    case 625:
      ACCEPT_TOKEN(aux_sym_raw_string_token4);
      if (lookahead == 'c' ||
          lookahead == 'd' ||
          lookahead == 'w') ADVANCE(624);
      END_STATE();
    case 626:
      ACCEPT_TOKEN(anon_sym_x_DQUOTE);
      END_STATE();
    case 627:
      ACCEPT_TOKEN(aux_sym_hex_string_token1);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ') ADVANCE(627);
      if (lookahead == 0x0b ||
          lookahead == '\f' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(628);
      END_STATE();
    case 628:
      ACCEPT_TOKEN(aux_sym_hex_string_token1);
      if (('\t' <= lookahead && lookahead <= '\r') ||
          lookahead == ' ' ||
          ('0' <= lookahead && lookahead <= '9') ||
          ('A' <= lookahead && lookahead <= 'F') ||
          ('a' <= lookahead && lookahead <= 'f')) ADVANCE(628);
      END_STATE();
    case 629:
      ACCEPT_TOKEN(anon_sym_DQUOTE);
      END_STATE();
    case 630:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '\n') ADVANCE(757);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(630);
      END_STATE();
    case 631:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '*') ADVANCE(633);
      if (lookahead == '+') ADVANCE(634);
      if (lookahead == '/') ADVANCE(630);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(757);
      END_STATE();
    case 632:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '*') ADVANCE(632);
      if (lookahead == '/') ADVANCE(757);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(633);
      END_STATE();
    case 633:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '*') ADVANCE(632);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(633);
      END_STATE();
    case 634:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(740);
      if (lookahead == '/') ADVANCE(638);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(634);
      END_STATE();
    case 635:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(741);
      if (lookahead == '/') ADVANCE(666);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(635);
      END_STATE();
    case 636:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(650);
      if (lookahead == '/') ADVANCE(651);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(696);
      END_STATE();
    case 637:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(650);
      if (lookahead == '/') ADVANCE(651);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(695);
      END_STATE();
    case 638:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(641);
      if (lookahead == '/') ADVANCE(638);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(634);
      END_STATE();
    case 639:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(641);
      if (lookahead == '/') ADVANCE(638);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(635);
      END_STATE();
    case 640:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(743);
      if (lookahead == '/') ADVANCE(673);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(640);
      END_STATE();
    case 641:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(639);
      if (lookahead == '/') ADVANCE(644);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(635);
      END_STATE();
    case 642:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(745);
      if (lookahead == '/') ADVANCE(669);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(642);
      END_STATE();
    case 643:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(646);
      if (lookahead == '/') ADVANCE(644);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(640);
      END_STATE();
    case 644:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(646);
      if (lookahead == '/') ADVANCE(644);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(719);
      END_STATE();
    case 645:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(750);
      if (lookahead == '/') ADVANCE(679);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(645);
      END_STATE();
    case 646:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(643);
      if (lookahead == '/') ADVANCE(648);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(640);
      END_STATE();
    case 647:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(649);
      if (lookahead == '/') ADVANCE(658);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(642);
      END_STATE();
    case 648:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(649);
      if (lookahead == '/') ADVANCE(658);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(694);
      END_STATE();
    case 649:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(647);
      if (lookahead == '/') ADVANCE(637);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(642);
      END_STATE();
    case 650:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(636);
      if (lookahead == '/') ADVANCE(645);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(696);
      END_STATE();
    case 651:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(653);
      if (lookahead == '/') ADVANCE(651);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(695);
      END_STATE();
    case 652:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(653);
      if (lookahead == '/') ADVANCE(651);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 653:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(652);
      if (lookahead == '/') ADVANCE(655);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 654:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(657);
      if (lookahead == '/') ADVANCE(729);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 655:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(678);
      if (lookahead == '/') ADVANCE(679);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(645);
      END_STATE();
    case 656:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(678);
      if (lookahead == '/') ADVANCE(679);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(716);
      END_STATE();
    case 657:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(654);
      if (lookahead == '/') ADVANCE(734);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 658:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(660);
      if (lookahead == '/') ADVANCE(658);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(694);
      END_STATE();
    case 659:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(660);
      if (lookahead == '/') ADVANCE(658);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 660:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(659);
      if (lookahead == '/') ADVANCE(651);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 661:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(663);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 662:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(663);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 663:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(662);
      if (lookahead == '/') ADVANCE(657);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 664:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(672);
      if (lookahead == '/') ADVANCE(721);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(716);
      END_STATE();
    case 665:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(682);
      if (lookahead == '/') ADVANCE(734);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 666:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(668);
      if (lookahead == '/') ADVANCE(666);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(635);
      END_STATE();
    case 667:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(668);
      if (lookahead == '/') ADVANCE(666);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(722);
      END_STATE();
    case 668:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(667);
      if (lookahead == '/') ADVANCE(705);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(722);
      END_STATE();
    case 669:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(671);
      if (lookahead == '/') ADVANCE(669);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(642);
      END_STATE();
    case 670:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(671);
      if (lookahead == '/') ADVANCE(669);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 671:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(670);
      if (lookahead == '/') ADVANCE(737);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 672:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(664);
      if (lookahead == '/') ADVANCE(718);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(716);
      END_STATE();
    case 673:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(675);
      if (lookahead == '/') ADVANCE(673);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(640);
      END_STATE();
    case 674:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(675);
      if (lookahead == '/') ADVANCE(673);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(728);
      END_STATE();
    case 675:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(674);
      if (lookahead == '/') ADVANCE(661);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(728);
      END_STATE();
    case 676:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(733);
      if (lookahead == '/') ADVANCE(676);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(696);
      END_STATE();
    case 677:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(733);
      if (lookahead == '/') ADVANCE(676);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 678:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(656);
      if (lookahead == '/') ADVANCE(637);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(716);
      END_STATE();
    case 679:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(686);
      if (lookahead == '/') ADVANCE(679);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(645);
      END_STATE();
    case 680:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(686);
      if (lookahead == '/') ADVANCE(679);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 681:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(706);
      if (lookahead == '/') ADVANCE(661);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 682:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(665);
      if (lookahead == '/') ADVANCE(657);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 683:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(685);
      if (lookahead == '/') ADVANCE(684);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 684:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(685);
      if (lookahead == '/') ADVANCE(684);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(728);
      END_STATE();
    case 685:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(683);
      if (lookahead == '/') ADVANCE(665);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 686:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(680);
      if (lookahead == '/') ADVANCE(651);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 687:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(708);
      if (lookahead == '/') ADVANCE(665);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 688:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(690);
      if (lookahead == '/') ADVANCE(707);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 689:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(688);
      if (lookahead == '/') ADVANCE(689);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(723);
      END_STATE();
    case 690:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(688);
      if (lookahead == '/') ADVANCE(689);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 691:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(710);
      if (lookahead == '/') ADVANCE(692);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 692:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(715);
      if (lookahead == '/') ADVANCE(689);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(723);
      END_STATE();
    case 693:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(715);
      if (lookahead == '/') ADVANCE(689);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 694:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(747);
      if (lookahead == '/') ADVANCE(658);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(694);
      END_STATE();
    case 695:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(748);
      if (lookahead == '/') ADVANCE(651);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(695);
      END_STATE();
    case 696:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(746);
      if (lookahead == '/') ADVANCE(676);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(696);
      END_STATE();
    case 697:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(720);
      if (lookahead == '/') ADVANCE(723);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 698:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(700);
      if (lookahead == '/') ADVANCE(698);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(722);
      END_STATE();
    case 699:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(700);
      if (lookahead == '/') ADVANCE(698);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 700:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(699);
      if (lookahead == '/') ADVANCE(707);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 701:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(714);
      if (lookahead == '/') ADVANCE(665);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 702:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(704);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 703:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(704);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 704:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(703);
      if (lookahead == '/') ADVANCE(730);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 705:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(681);
      if (lookahead == '/') ADVANCE(698);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(722);
      END_STATE();
    case 706:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(681);
      if (lookahead == '/') ADVANCE(698);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 707:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(687);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 708:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(687);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 709:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(691);
      if (lookahead == '/') ADVANCE(709);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(726);
      END_STATE();
    case 710:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(691);
      if (lookahead == '/') ADVANCE(709);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 711:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(751);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 712:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(753);
      if (lookahead == '/') ADVANCE(714);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 713:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(732);
      if (lookahead == '/') ADVANCE(723);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 714:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(701);
      if (lookahead == '/') ADVANCE(714);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 715:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(693);
      if (lookahead == '/') ADVANCE(661);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 716:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(755);
      if (lookahead == '/') ADVANCE(718);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(716);
      END_STATE();
    case 717:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(735);
      if (lookahead == '/') ADVANCE(718);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 718:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(735);
      if (lookahead == '/') ADVANCE(718);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(716);
      END_STATE();
    case 719:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(742);
      if (lookahead == '/') ADVANCE(644);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(719);
      END_STATE();
    case 720:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(697);
      if (lookahead == '/') ADVANCE(684);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 721:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(697);
      if (lookahead == '/') ADVANCE(684);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(728);
      END_STATE();
    case 722:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(744);
      if (lookahead == '/') ADVANCE(698);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(722);
      END_STATE();
    case 723:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(756);
      if (lookahead == '/') ADVANCE(689);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(723);
      END_STATE();
    case 724:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(737);
      if (lookahead == '/') ADVANCE(725);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 725:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(736);
      if (lookahead == '/') ADVANCE(734);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 726:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(749);
      if (lookahead == '/') ADVANCE(709);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(726);
      END_STATE();
    case 727:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(734);
      if (lookahead == '/') ADVANCE(730);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 728:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(752);
      if (lookahead == '/') ADVANCE(684);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(728);
      END_STATE();
    case 729:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(754);
      if (lookahead == '/') ADVANCE(734);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 730:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(738);
      if (lookahead == '/') ADVANCE(734);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 731:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(713);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 732:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(713);
      if (lookahead == '/') ADVANCE(702);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 733:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(677);
      if (lookahead == '/') ADVANCE(672);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 734:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(727);
      if (lookahead == '/') ADVANCE(734);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 735:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(717);
      if (lookahead == '/') ADVANCE(737);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 736:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(725);
      if (lookahead == '/') ADVANCE(731);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 737:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(724);
      if (lookahead == '/') ADVANCE(714);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 738:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '+') ADVANCE(730);
      if (lookahead == '/') ADVANCE(665);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 739:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(631);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) ADVANCE(739);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(757);
      END_STATE();
    case 740:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(757);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(634);
      END_STATE();
    case 741:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(634);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(635);
      END_STATE();
    case 742:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(634);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(719);
      END_STATE();
    case 743:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(635);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(640);
      END_STATE();
    case 744:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(635);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(722);
      END_STATE();
    case 745:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(640);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(642);
      END_STATE();
    case 746:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(642);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(696);
      END_STATE();
    case 747:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(719);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(694);
      END_STATE();
    case 748:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(694);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(695);
      END_STATE();
    case 749:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(694);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(726);
      END_STATE();
    case 750:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(695);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(645);
      END_STATE();
    case 751:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(722);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(711);
      END_STATE();
    case 752:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(722);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(728);
      END_STATE();
    case 753:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(711);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(712);
      END_STATE();
    case 754:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(711);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(729);
      END_STATE();
    case 755:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(728);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(716);
      END_STATE();
    case 756:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead == '/') ADVANCE(726);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(723);
      END_STATE();
    case 757:
      ACCEPT_TOKEN(aux_sym_quoted_string_token1);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '\\') ADVANCE(757);
      END_STATE();
    case 758:
      ACCEPT_TOKEN(anon_sym_DOLLAR_LPAREN);
      END_STATE();
    case 759:
      ACCEPT_TOKEN(anon_sym_i_BQUOTE);
      END_STATE();
    case 760:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '\r') ADVANCE(269);
      if (lookahead == '\\') ADVANCE(191);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(267);
      if (lookahead != 0) ADVANCE(189);
      END_STATE();
    case 761:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '*') ADVANCE(763);
      if (lookahead == '+') ADVANCE(764);
      if (lookahead == '/') ADVANCE(189);
      if (lookahead != 0 &&
          lookahead != '$' &&
          lookahead != '`') ADVANCE(881);
      END_STATE();
    case 762:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '*') ADVANCE(762);
      if (lookahead == '/') ADVANCE(271);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(32);
      if (lookahead != 0) ADVANCE(763);
      END_STATE();
    case 763:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '*') ADVANCE(762);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(32);
      if (lookahead != 0) ADVANCE(763);
      END_STATE();
    case 764:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(865);
      if (lookahead == '/') ADVANCE(766);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(33);
      if (lookahead != 0) ADVANCE(764);
      END_STATE();
    case 765:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(866);
      if (lookahead == '/') ADVANCE(773);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(34);
      if (lookahead != 0) ADVANCE(765);
      END_STATE();
    case 766:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(771);
      if (lookahead == '/') ADVANCE(766);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(33);
      if (lookahead != 0) ADVANCE(764);
      END_STATE();
    case 767:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(771);
      if (lookahead == '/') ADVANCE(766);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(34);
      if (lookahead != 0) ADVANCE(765);
      END_STATE();
    case 768:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(864);
      if (lookahead == '/') ADVANCE(776);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(37);
      if (lookahead != 0) ADVANCE(768);
      END_STATE();
    case 769:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(792);
      if (lookahead == '/') ADVANCE(836);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(86);
      if (lookahead != 0) ADVANCE(817);
      END_STATE();
    case 770:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(795);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 771:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(767);
      if (lookahead == '/') ADVANCE(217);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(34);
      if (lookahead != 0) ADVANCE(765);
      END_STATE();
    case 772:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(867);
      if (lookahead == '/') ADVANCE(796);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(41);
      if (lookahead != 0) ADVANCE(772);
      END_STATE();
    case 773:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(788);
      if (lookahead == '/') ADVANCE(773);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(34);
      if (lookahead != 0) ADVANCE(765);
      END_STATE();
    case 774:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(788);
      if (lookahead == '/') ADVANCE(773);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(47);
      if (lookahead != 0) ADVANCE(778);
      END_STATE();
    case 775:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(869);
      if (lookahead == '/') ADVANCE(826);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(44);
      if (lookahead != 0) ADVANCE(775);
      END_STATE();
    case 776:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(800);
      if (lookahead == '/') ADVANCE(776);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(37);
      if (lookahead != 0) ADVANCE(768);
      END_STATE();
    case 777:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(800);
      if (lookahead == '/') ADVANCE(776);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(44);
      if (lookahead != 0) ADVANCE(775);
      END_STATE();
    case 778:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(868);
      if (lookahead == '/') ADVANCE(814);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(47);
      if (lookahead != 0) ADVANCE(778);
      END_STATE();
    case 779:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(789);
      if (lookahead == '/') ADVANCE(796);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(41);
      if (lookahead != 0) ADVANCE(772);
      END_STATE();
    case 780:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(789);
      if (lookahead == '/') ADVANCE(796);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(51);
      if (lookahead != 0) ADVANCE(782);
      END_STATE();
    case 781:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(874);
      if (lookahead == '/') ADVANCE(836);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(50);
      if (lookahead != 0) ADVANCE(781);
      END_STATE();
    case 782:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(870);
      if (lookahead == '/') ADVANCE(812);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(51);
      if (lookahead != 0) ADVANCE(782);
      END_STATE();
    case 783:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(806);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 784:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(806);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 785:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(871);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 786:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(872);
      if (lookahead == '/') ADVANCE(822);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(55);
      if (lookahead != 0) ADVANCE(786);
      END_STATE();
    case 787:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(873);
      if (lookahead == '/') ADVANCE(840);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(56);
      if (lookahead != 0) ADVANCE(787);
      END_STATE();
    case 788:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(774);
      if (lookahead == '/') ADVANCE(236);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(47);
      if (lookahead != 0) ADVANCE(778);
      END_STATE();
    case 789:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(780);
      if (lookahead == '/') ADVANCE(203);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(51);
      if (lookahead != 0) ADVANCE(782);
      END_STATE();
    case 790:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(797);
      if (lookahead == '/') ADVANCE(254);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 791:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(799);
      if (lookahead == '/') ADVANCE(224);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 792:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(769);
      if (lookahead == '/') ADVANCE(786);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(86);
      if (lookahead != 0) ADVANCE(817);
      END_STATE();
    case 793:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(813);
      if (lookahead == '/') ADVANCE(266);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 794:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(823);
      if (lookahead == '/') ADVANCE(254);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 795:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(770);
      if (lookahead == '/') ADVANCE(242);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 796:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(790);
      if (lookahead == '/') ADVANCE(796);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(41);
      if (lookahead != 0) ADVANCE(772);
      END_STATE();
    case 797:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(790);
      if (lookahead == '/') ADVANCE(796);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 798:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(807);
      if (lookahead == '/') ADVANCE(844);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 799:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(791);
      if (lookahead == '/') ADVANCE(814);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 800:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(777);
      if (lookahead == '/') ADVANCE(779);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(44);
      if (lookahead != 0) ADVANCE(775);
      END_STATE();
    case 801:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(821);
      if (lookahead == '/') ADVANCE(822);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(55);
      if (lookahead != 0) ADVANCE(786);
      END_STATE();
    case 802:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(821);
      if (lookahead == '/') ADVANCE(822);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(74);
      if (lookahead != 0) ADVANCE(805);
      END_STATE();
    case 803:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(875);
      if (lookahead == '/') ADVANCE(844);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(72);
      if (lookahead != 0) ADVANCE(803);
      END_STATE();
    case 804:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(878);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 805:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(879);
      if (lookahead == '/') ADVANCE(830);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(74);
      if (lookahead != 0) ADVANCE(805);
      END_STATE();
    case 806:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(784);
      if (lookahead == '/') ADVANCE(206);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 807:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(798);
      if (lookahead == '/') ADVANCE(818);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 808:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(833);
      if (lookahead == '/') ADVANCE(251);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 809:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(816);
      if (lookahead == '/') ADVANCE(233);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(74);
      if (lookahead != 0) ADVANCE(805);
      END_STATE();
    case 810:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(829);
      if (lookahead == '/') ADVANCE(266);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 811:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(851);
      if (lookahead == '/') ADVANCE(245);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 812:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(793);
      if (lookahead == '/') ADVANCE(812);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(51);
      if (lookahead != 0) ADVANCE(782);
      END_STATE();
    case 813:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(793);
      if (lookahead == '/') ADVANCE(812);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 814:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(853);
      if (lookahead == '/') ADVANCE(814);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(47);
      if (lookahead != 0) ADVANCE(778);
      END_STATE();
    case 815:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(853);
      if (lookahead == '/') ADVANCE(814);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 816:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(809);
      if (lookahead == '/') ADVANCE(830);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(74);
      if (lookahead != 0) ADVANCE(805);
      END_STATE();
    case 817:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(876);
      if (lookahead == '/') ADVANCE(846);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(86);
      if (lookahead != 0) ADVANCE(817);
      END_STATE();
    case 818:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(880);
      if (lookahead == '/') ADVANCE(839);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(87);
      if (lookahead != 0) ADVANCE(818);
      END_STATE();
    case 819:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(852);
      if (lookahead == '/') ADVANCE(206);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 820:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(825);
      if (lookahead == '/') ADVANCE(251);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 821:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(802);
      if (lookahead == '/') ADVANCE(203);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(74);
      if (lookahead != 0) ADVANCE(805);
      END_STATE();
    case 822:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(794);
      if (lookahead == '/') ADVANCE(822);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(55);
      if (lookahead != 0) ADVANCE(786);
      END_STATE();
    case 823:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(794);
      if (lookahead == '/') ADVANCE(822);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 824:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(820);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 825:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(820);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 826:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(834);
      if (lookahead == '/') ADVANCE(826);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(44);
      if (lookahead != 0) ADVANCE(775);
      END_STATE();
    case 827:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(834);
      if (lookahead == '/') ADVANCE(826);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(72);
      if (lookahead != 0) ADVANCE(803);
      END_STATE();
    case 828:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(877);
      if (lookahead == '/') ADVANCE(861);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 829:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(810);
      if (lookahead == '/') ADVANCE(830);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 830:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(810);
      if (lookahead == '/') ADVANCE(830);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(74);
      if (lookahead != 0) ADVANCE(805);
      END_STATE();
    case 831:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(855);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 832:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(841);
      if (lookahead == '/') ADVANCE(257);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 833:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(808);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 834:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(827);
      if (lookahead == '/') ADVANCE(783);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(72);
      if (lookahead != 0) ADVANCE(803);
      END_STATE();
    case 835:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(854);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 836:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(843);
      if (lookahead == '/') ADVANCE(836);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(50);
      if (lookahead != 0) ADVANCE(781);
      END_STATE();
    case 837:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(843);
      if (lookahead == '/') ADVANCE(836);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 838:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(858);
      if (lookahead == '/') ADVANCE(839);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 839:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(858);
      if (lookahead == '/') ADVANCE(839);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(87);
      if (lookahead != 0) ADVANCE(818);
      END_STATE();
    case 840:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(832);
      if (lookahead == '/') ADVANCE(840);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(56);
      if (lookahead != 0) ADVANCE(787);
      END_STATE();
    case 841:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(832);
      if (lookahead == '/') ADVANCE(840);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 842:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(859);
      if (lookahead == '/') ADVANCE(839);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 843:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(837);
      if (lookahead == '/') ADVANCE(801);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 844:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(849);
      if (lookahead == '/') ADVANCE(844);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(72);
      if (lookahead != 0) ADVANCE(803);
      END_STATE();
    case 845:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(849);
      if (lookahead == '/') ADVANCE(844);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 846:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(850);
      if (lookahead == '/') ADVANCE(846);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(86);
      if (lookahead != 0) ADVANCE(817);
      END_STATE();
    case 847:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(850);
      if (lookahead == '/') ADVANCE(846);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 848:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(861);
      if (lookahead == '/') ADVANCE(852);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 849:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(845);
      if (lookahead == '/') ADVANCE(852);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 850:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(847);
      if (lookahead == '/') ADVANCE(816);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 851:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(811);
      if (lookahead == '/') ADVANCE(824);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 852:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(819);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 853:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(815);
      if (lookahead == '/') ADVANCE(248);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 854:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(835);
      if (lookahead == '/') ADVANCE(263);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 855:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(831);
      if (lookahead == '/') ADVANCE(263);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 856:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(862);
      if (lookahead == '/') ADVANCE(861);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 857:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(860);
      if (lookahead == '/') ADVANCE(833);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 858:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(838);
      if (lookahead == '/') ADVANCE(248);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 859:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(842);
      if (lookahead == '/') ADVANCE(224);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 860:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(857);
      if (lookahead == '/') ADVANCE(260);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 861:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(848);
      if (lookahead == '/') ADVANCE(861);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 862:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '+') ADVANCE(856);
      if (lookahead == '/') ADVANCE(857);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 863:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(761);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) ADVANCE(863);
      if (lookahead != 0 &&
          lookahead != '$' &&
          lookahead != '`') ADVANCE(881);
      END_STATE();
    case 864:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(764);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(37);
      if (lookahead != 0) ADVANCE(768);
      END_STATE();
    case 865:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(271);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(33);
      if (lookahead != 0) ADVANCE(764);
      END_STATE();
    case 866:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(194);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(34);
      if (lookahead != 0) ADVANCE(765);
      END_STATE();
    case 867:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(200);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(41);
      if (lookahead != 0) ADVANCE(772);
      END_STATE();
    case 868:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(197);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(47);
      if (lookahead != 0) ADVANCE(778);
      END_STATE();
    case 869:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(765);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(44);
      if (lookahead != 0) ADVANCE(775);
      END_STATE();
    case 870:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(212);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(51);
      if (lookahead != 0) ADVANCE(782);
      END_STATE();
    case 871:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(218);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(54);
      if (lookahead != 0) ADVANCE(785);
      END_STATE();
    case 872:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(221);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(55);
      if (lookahead != 0) ADVANCE(786);
      END_STATE();
    case 873:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(209);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(56);
      if (lookahead != 0) ADVANCE(787);
      END_STATE();
    case 874:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(772);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(50);
      if (lookahead != 0) ADVANCE(781);
      END_STATE();
    case 875:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(778);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(72);
      if (lookahead != 0) ADVANCE(803);
      END_STATE();
    case 876:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(782);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(86);
      if (lookahead != 0) ADVANCE(817);
      END_STATE();
    case 877:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(785);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(97);
      if (lookahead != 0) ADVANCE(828);
      END_STATE();
    case 878:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(227);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(73);
      if (lookahead != 0) ADVANCE(804);
      END_STATE();
    case 879:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(239);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(74);
      if (lookahead != 0) ADVANCE(805);
      END_STATE();
    case 880:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead == '/') ADVANCE(230);
      if (lookahead == '$' ||
          lookahead == '`') ADVANCE(87);
      if (lookahead != 0) ADVANCE(818);
      END_STATE();
    case 881:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token1);
      if (lookahead != 0 &&
          lookahead != '$' &&
          lookahead != '`') ADVANCE(881);
      END_STATE();
    case 882:
      ACCEPT_TOKEN(aux_sym_interpolated_raw_string_token2);
      END_STATE();
    case 883:
      ACCEPT_TOKEN(anon_sym_DOLLAR_BQUOTE);
      END_STATE();
    case 884:
      ACCEPT_TOKEN(sym_interpolated_escape);
      END_STATE();
    case 885:
      ACCEPT_TOKEN(anon_sym_i_DQUOTE);
      END_STATE();
    case 886:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '*') ADVANCE(888);
      if (lookahead == '+') ADVANCE(889);
      if (lookahead == '/') ADVANCE(188);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          lookahead != '\\') ADVANCE(1006);
      END_STATE();
    case 887:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '*') ADVANCE(887);
      if (lookahead == '/') ADVANCE(270);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(32);
      if (lookahead != 0) ADVANCE(888);
      END_STATE();
    case 888:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '*') ADVANCE(887);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(32);
      if (lookahead != 0) ADVANCE(888);
      END_STATE();
    case 889:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(990);
      if (lookahead == '/') ADVANCE(891);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(33);
      if (lookahead != 0) ADVANCE(889);
      END_STATE();
    case 890:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(991);
      if (lookahead == '/') ADVANCE(898);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(34);
      if (lookahead != 0) ADVANCE(890);
      END_STATE();
    case 891:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(896);
      if (lookahead == '/') ADVANCE(891);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(33);
      if (lookahead != 0) ADVANCE(889);
      END_STATE();
    case 892:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(896);
      if (lookahead == '/') ADVANCE(891);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(34);
      if (lookahead != 0) ADVANCE(890);
      END_STATE();
    case 893:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(989);
      if (lookahead == '/') ADVANCE(901);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(37);
      if (lookahead != 0) ADVANCE(893);
      END_STATE();
    case 894:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(917);
      if (lookahead == '/') ADVANCE(961);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(86);
      if (lookahead != 0) ADVANCE(942);
      END_STATE();
    case 895:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(920);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 896:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(892);
      if (lookahead == '/') ADVANCE(215);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(34);
      if (lookahead != 0) ADVANCE(890);
      END_STATE();
    case 897:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(992);
      if (lookahead == '/') ADVANCE(921);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(41);
      if (lookahead != 0) ADVANCE(897);
      END_STATE();
    case 898:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(913);
      if (lookahead == '/') ADVANCE(898);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(34);
      if (lookahead != 0) ADVANCE(890);
      END_STATE();
    case 899:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(913);
      if (lookahead == '/') ADVANCE(898);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(47);
      if (lookahead != 0) ADVANCE(903);
      END_STATE();
    case 900:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(994);
      if (lookahead == '/') ADVANCE(951);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(44);
      if (lookahead != 0) ADVANCE(900);
      END_STATE();
    case 901:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(925);
      if (lookahead == '/') ADVANCE(901);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(37);
      if (lookahead != 0) ADVANCE(893);
      END_STATE();
    case 902:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(925);
      if (lookahead == '/') ADVANCE(901);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(44);
      if (lookahead != 0) ADVANCE(900);
      END_STATE();
    case 903:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(993);
      if (lookahead == '/') ADVANCE(939);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(47);
      if (lookahead != 0) ADVANCE(903);
      END_STATE();
    case 904:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(914);
      if (lookahead == '/') ADVANCE(921);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(41);
      if (lookahead != 0) ADVANCE(897);
      END_STATE();
    case 905:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(914);
      if (lookahead == '/') ADVANCE(921);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(51);
      if (lookahead != 0) ADVANCE(907);
      END_STATE();
    case 906:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(999);
      if (lookahead == '/') ADVANCE(961);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(50);
      if (lookahead != 0) ADVANCE(906);
      END_STATE();
    case 907:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(995);
      if (lookahead == '/') ADVANCE(937);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(51);
      if (lookahead != 0) ADVANCE(907);
      END_STATE();
    case 908:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(931);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 909:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(931);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 910:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(996);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 911:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(997);
      if (lookahead == '/') ADVANCE(947);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(55);
      if (lookahead != 0) ADVANCE(911);
      END_STATE();
    case 912:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(998);
      if (lookahead == '/') ADVANCE(965);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(56);
      if (lookahead != 0) ADVANCE(912);
      END_STATE();
    case 913:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(899);
      if (lookahead == '/') ADVANCE(235);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(47);
      if (lookahead != 0) ADVANCE(903);
      END_STATE();
    case 914:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(905);
      if (lookahead == '/') ADVANCE(202);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(51);
      if (lookahead != 0) ADVANCE(907);
      END_STATE();
    case 915:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(922);
      if (lookahead == '/') ADVANCE(253);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 916:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(924);
      if (lookahead == '/') ADVANCE(223);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 917:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(894);
      if (lookahead == '/') ADVANCE(911);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(86);
      if (lookahead != 0) ADVANCE(942);
      END_STATE();
    case 918:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(938);
      if (lookahead == '/') ADVANCE(265);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 919:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(948);
      if (lookahead == '/') ADVANCE(253);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 920:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(895);
      if (lookahead == '/') ADVANCE(241);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 921:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(915);
      if (lookahead == '/') ADVANCE(921);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(41);
      if (lookahead != 0) ADVANCE(897);
      END_STATE();
    case 922:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(915);
      if (lookahead == '/') ADVANCE(921);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 923:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(932);
      if (lookahead == '/') ADVANCE(969);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 924:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(916);
      if (lookahead == '/') ADVANCE(939);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 925:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(902);
      if (lookahead == '/') ADVANCE(904);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(44);
      if (lookahead != 0) ADVANCE(900);
      END_STATE();
    case 926:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(946);
      if (lookahead == '/') ADVANCE(947);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(55);
      if (lookahead != 0) ADVANCE(911);
      END_STATE();
    case 927:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(946);
      if (lookahead == '/') ADVANCE(947);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(74);
      if (lookahead != 0) ADVANCE(930);
      END_STATE();
    case 928:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(1000);
      if (lookahead == '/') ADVANCE(969);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(72);
      if (lookahead != 0) ADVANCE(928);
      END_STATE();
    case 929:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(1003);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 930:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(1004);
      if (lookahead == '/') ADVANCE(955);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(74);
      if (lookahead != 0) ADVANCE(930);
      END_STATE();
    case 931:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(909);
      if (lookahead == '/') ADVANCE(205);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 932:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(923);
      if (lookahead == '/') ADVANCE(943);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 933:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(958);
      if (lookahead == '/') ADVANCE(250);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 934:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(941);
      if (lookahead == '/') ADVANCE(232);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(74);
      if (lookahead != 0) ADVANCE(930);
      END_STATE();
    case 935:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(954);
      if (lookahead == '/') ADVANCE(265);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 936:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(976);
      if (lookahead == '/') ADVANCE(244);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 937:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(918);
      if (lookahead == '/') ADVANCE(937);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(51);
      if (lookahead != 0) ADVANCE(907);
      END_STATE();
    case 938:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(918);
      if (lookahead == '/') ADVANCE(937);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 939:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(978);
      if (lookahead == '/') ADVANCE(939);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(47);
      if (lookahead != 0) ADVANCE(903);
      END_STATE();
    case 940:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(978);
      if (lookahead == '/') ADVANCE(939);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 941:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(934);
      if (lookahead == '/') ADVANCE(955);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(74);
      if (lookahead != 0) ADVANCE(930);
      END_STATE();
    case 942:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(1001);
      if (lookahead == '/') ADVANCE(971);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(86);
      if (lookahead != 0) ADVANCE(942);
      END_STATE();
    case 943:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(1005);
      if (lookahead == '/') ADVANCE(964);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(87);
      if (lookahead != 0) ADVANCE(943);
      END_STATE();
    case 944:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(977);
      if (lookahead == '/') ADVANCE(205);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 945:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(950);
      if (lookahead == '/') ADVANCE(250);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 946:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(927);
      if (lookahead == '/') ADVANCE(202);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(74);
      if (lookahead != 0) ADVANCE(930);
      END_STATE();
    case 947:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(919);
      if (lookahead == '/') ADVANCE(947);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(55);
      if (lookahead != 0) ADVANCE(911);
      END_STATE();
    case 948:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(919);
      if (lookahead == '/') ADVANCE(947);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 949:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(945);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 950:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(945);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 951:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(959);
      if (lookahead == '/') ADVANCE(951);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(44);
      if (lookahead != 0) ADVANCE(900);
      END_STATE();
    case 952:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(959);
      if (lookahead == '/') ADVANCE(951);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(72);
      if (lookahead != 0) ADVANCE(928);
      END_STATE();
    case 953:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(1002);
      if (lookahead == '/') ADVANCE(986);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 954:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(935);
      if (lookahead == '/') ADVANCE(955);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 955:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(935);
      if (lookahead == '/') ADVANCE(955);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(74);
      if (lookahead != 0) ADVANCE(930);
      END_STATE();
    case 956:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(980);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 957:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(966);
      if (lookahead == '/') ADVANCE(256);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 958:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(933);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 959:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(952);
      if (lookahead == '/') ADVANCE(908);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(72);
      if (lookahead != 0) ADVANCE(928);
      END_STATE();
    case 960:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(979);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 961:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(968);
      if (lookahead == '/') ADVANCE(961);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(50);
      if (lookahead != 0) ADVANCE(906);
      END_STATE();
    case 962:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(968);
      if (lookahead == '/') ADVANCE(961);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 963:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(983);
      if (lookahead == '/') ADVANCE(964);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 964:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(983);
      if (lookahead == '/') ADVANCE(964);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(87);
      if (lookahead != 0) ADVANCE(943);
      END_STATE();
    case 965:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(957);
      if (lookahead == '/') ADVANCE(965);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(56);
      if (lookahead != 0) ADVANCE(912);
      END_STATE();
    case 966:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(957);
      if (lookahead == '/') ADVANCE(965);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 967:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(984);
      if (lookahead == '/') ADVANCE(964);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 968:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(962);
      if (lookahead == '/') ADVANCE(926);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 969:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(974);
      if (lookahead == '/') ADVANCE(969);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(72);
      if (lookahead != 0) ADVANCE(928);
      END_STATE();
    case 970:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(974);
      if (lookahead == '/') ADVANCE(969);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 971:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(975);
      if (lookahead == '/') ADVANCE(971);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(86);
      if (lookahead != 0) ADVANCE(942);
      END_STATE();
    case 972:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(975);
      if (lookahead == '/') ADVANCE(971);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 973:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(986);
      if (lookahead == '/') ADVANCE(977);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 974:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(970);
      if (lookahead == '/') ADVANCE(977);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 975:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(972);
      if (lookahead == '/') ADVANCE(941);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 976:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(936);
      if (lookahead == '/') ADVANCE(949);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 977:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(944);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 978:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(940);
      if (lookahead == '/') ADVANCE(247);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 979:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(960);
      if (lookahead == '/') ADVANCE(262);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 980:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(956);
      if (lookahead == '/') ADVANCE(262);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 981:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(987);
      if (lookahead == '/') ADVANCE(986);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 982:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(985);
      if (lookahead == '/') ADVANCE(958);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 983:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(963);
      if (lookahead == '/') ADVANCE(247);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 984:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(967);
      if (lookahead == '/') ADVANCE(223);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 985:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(982);
      if (lookahead == '/') ADVANCE(259);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 986:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(973);
      if (lookahead == '/') ADVANCE(986);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 987:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '+') ADVANCE(981);
      if (lookahead == '/') ADVANCE(982);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 988:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(886);
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) ADVANCE(988);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          lookahead != '\\') ADVANCE(1006);
      END_STATE();
    case 989:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(889);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(37);
      if (lookahead != 0) ADVANCE(893);
      END_STATE();
    case 990:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(270);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(33);
      if (lookahead != 0) ADVANCE(889);
      END_STATE();
    case 991:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(193);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(34);
      if (lookahead != 0) ADVANCE(890);
      END_STATE();
    case 992:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(199);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(41);
      if (lookahead != 0) ADVANCE(897);
      END_STATE();
    case 993:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(196);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(47);
      if (lookahead != 0) ADVANCE(903);
      END_STATE();
    case 994:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(890);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(44);
      if (lookahead != 0) ADVANCE(900);
      END_STATE();
    case 995:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(211);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(51);
      if (lookahead != 0) ADVANCE(907);
      END_STATE();
    case 996:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(216);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(54);
      if (lookahead != 0) ADVANCE(910);
      END_STATE();
    case 997:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(220);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(55);
      if (lookahead != 0) ADVANCE(911);
      END_STATE();
    case 998:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(208);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(56);
      if (lookahead != 0) ADVANCE(912);
      END_STATE();
    case 999:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(897);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(50);
      if (lookahead != 0) ADVANCE(906);
      END_STATE();
    case 1000:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(903);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(72);
      if (lookahead != 0) ADVANCE(928);
      END_STATE();
    case 1001:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(907);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(86);
      if (lookahead != 0) ADVANCE(942);
      END_STATE();
    case 1002:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(910);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(97);
      if (lookahead != 0) ADVANCE(953);
      END_STATE();
    case 1003:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(226);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(73);
      if (lookahead != 0) ADVANCE(929);
      END_STATE();
    case 1004:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(238);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(74);
      if (lookahead != 0) ADVANCE(930);
      END_STATE();
    case 1005:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead == '/') ADVANCE(229);
      if (lookahead == '"' ||
          lookahead == '$' ||
          lookahead == '\\') ADVANCE(87);
      if (lookahead != 0) ADVANCE(943);
      END_STATE();
    case 1006:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token1);
      if (lookahead != 0 &&
          lookahead != '"' &&
          lookahead != '$' &&
          lookahead != '\\') ADVANCE(1006);
      END_STATE();
    case 1007:
      ACCEPT_TOKEN(aux_sym_interpolated_quoted_string_token2);
      END_STATE();
    case 1008:
      ACCEPT_TOKEN(anon_sym_DOLLAR_DQUOTE);
      END_STATE();
    case 1009:
      ACCEPT_TOKEN(anon_sym_iq_LBRACE);
      END_STATE();
    case 1010:
      ACCEPT_TOKEN(aux_sym_char_literal_token1);
      END_STATE();
    case 1011:
      ACCEPT_TOKEN(anon_sym_SQUOTE);
      END_STATE();
    case 1012:
      ACCEPT_TOKEN(anon_sym_SQUOTE);
      if (lookahead != 0 &&
          lookahead != '\'' &&
          lookahead != '\\') ADVANCE(27);
      END_STATE();
    default:
      return false;
  }
}

static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
  START_LEXER();
  eof = lexer->eof(lexer);
  switch (state) {
    case 0:
      ADVANCE_MAP(
        'C', 1,
        'D', 2,
        'O', 3,
        'S', 4,
        'W', 5,
        '_', 6,
        'a', 7,
        'b', 8,
        'c', 9,
        'd', 10,
        'e', 11,
        'f', 12,
        'g', 13,
        'i', 14,
        'l', 15,
        'm', 16,
        'n', 17,
        'o', 18,
        'p', 19,
        'r', 20,
        's', 21,
        't', 22,
        'u', 23,
        'v', 24,
        'w', 25,
      );
      if (lookahead == '\t' ||
          lookahead == '\n' ||
          lookahead == '\r' ||
          lookahead == ' ' ||
          lookahead == 0x2028 ||
          lookahead == 0x2029) SKIP(0);
      END_STATE();
    case 1:
      ACCEPT_TOKEN(anon_sym_C);
      END_STATE();
    case 2:
      ACCEPT_TOKEN(anon_sym_D);
      END_STATE();
    case 3:
      if (lookahead == 'b') ADVANCE(26);
      END_STATE();
    case 4:
      if (lookahead == 'y') ADVANCE(27);
      END_STATE();
    case 5:
      if (lookahead == 'i') ADVANCE(28);
      END_STATE();
    case 6:
      if (lookahead == '_') ADVANCE(29);
      END_STATE();
    case 7:
      if (lookahead == 'b') ADVANCE(30);
      if (lookahead == 'l') ADVANCE(31);
      if (lookahead == 's') ADVANCE(32);
      if (lookahead == 'u') ADVANCE(33);
      END_STATE();
    case 8:
      if (lookahead == 'o') ADVANCE(34);
      if (lookahead == 'r') ADVANCE(35);
      if (lookahead == 'y') ADVANCE(36);
      END_STATE();
    case 9:
      ADVANCE_MAP(
        'a', 37,
        'd', 38,
        'e', 39,
        'f', 40,
        'h', 41,
        'l', 42,
        'o', 43,
        'r', 44,
        's', 45,
      );
      END_STATE();
    case 10:
      if (lookahead == 'c') ADVANCE(46);
      if (lookahead == 'e') ADVANCE(47);
      if (lookahead == 'o') ADVANCE(48);
      if (lookahead == 's') ADVANCE(49);
      END_STATE();
    case 11:
      if (lookahead == 'l') ADVANCE(50);
      if (lookahead == 'n') ADVANCE(51);
      if (lookahead == 'x') ADVANCE(52);
      END_STATE();
    case 12:
      if (lookahead == 'a') ADVANCE(53);
      if (lookahead == 'i') ADVANCE(54);
      if (lookahead == 'l') ADVANCE(55);
      if (lookahead == 'o') ADVANCE(56);
      if (lookahead == 'u') ADVANCE(57);
      END_STATE();
    case 13:
      if (lookahead == 'o') ADVANCE(58);
      END_STATE();
    case 14:
      if (lookahead == 'd') ADVANCE(59);
      if (lookahead == 'f') ADVANCE(60);
      if (lookahead == 'm') ADVANCE(61);
      if (lookahead == 'n') ADVANCE(62);
      if (lookahead == 'r') ADVANCE(63);
      if (lookahead == 's') ADVANCE(64);
      END_STATE();
    case 15:
      if (lookahead == 'a') ADVANCE(65);
      if (lookahead == 'o') ADVANCE(66);
      END_STATE();
    case 16:
      if (lookahead == 'i') ADVANCE(67);
      if (lookahead == 'o') ADVANCE(68);
      END_STATE();
    case 17:
      if (lookahead == 'e') ADVANCE(69);
      if (lookahead == 'o') ADVANCE(70);
      if (lookahead == 'u') ADVANCE(71);
      END_STATE();
    case 18:
      if (lookahead == 'u') ADVANCE(72);
      if (lookahead == 'v') ADVANCE(73);
      END_STATE();
    case 19:
      if (lookahead == 'a') ADVANCE(74);
      if (lookahead == 'r') ADVANCE(75);
      if (lookahead == 't') ADVANCE(76);
      if (lookahead == 'u') ADVANCE(77);
      END_STATE();
    case 20:
      if (lookahead == 'e') ADVANCE(78);
      END_STATE();
    case 21:
      if (lookahead == 'c') ADVANCE(79);
      if (lookahead == 'h') ADVANCE(80);
      if (lookahead == 'i') ADVANCE(81);
      if (lookahead == 't') ADVANCE(82);
      if (lookahead == 'u') ADVANCE(83);
      if (lookahead == 'w') ADVANCE(84);
      if (lookahead == 'y') ADVANCE(85);
      END_STATE();
    case 22:
      if (lookahead == 'e') ADVANCE(86);
      if (lookahead == 'h') ADVANCE(87);
      if (lookahead == 'r') ADVANCE(88);
      if (lookahead == 'y') ADVANCE(89);
      END_STATE();
    case 23:
      if (lookahead == 'b') ADVANCE(90);
      if (lookahead == 'c') ADVANCE(91);
      if (lookahead == 'i') ADVANCE(92);
      if (lookahead == 'l') ADVANCE(93);
      if (lookahead == 'n') ADVANCE(94);
      if (lookahead == 's') ADVANCE(95);
      END_STATE();
    case 24:
      if (lookahead == 'e') ADVANCE(96);
      if (lookahead == 'o') ADVANCE(97);
      END_STATE();
    case 25:
      if (lookahead == 'c') ADVANCE(98);
      if (lookahead == 'h') ADVANCE(99);
      if (lookahead == 'i') ADVANCE(100);
      if (lookahead == 's') ADVANCE(101);
      END_STATE();
    case 26:
      if (lookahead == 'j') ADVANCE(102);
      END_STATE();
    case 27:
      if (lookahead == 's') ADVANCE(103);
      END_STATE();
    case 28:
      if (lookahead == 'n') ADVANCE(104);
      END_STATE();
    case 29:
      ADVANCE_MAP(
        'D', 105,
        'F', 106,
        'L', 107,
        'M', 108,
        'P', 109,
        'T', 110,
        'V', 111,
        'g', 112,
        'p', 113,
        't', 114,
        'v', 115,
      );
      END_STATE();
    case 30:
      if (lookahead == 's') ADVANCE(116);
      END_STATE();
    case 31:
      if (lookahead == 'i') ADVANCE(117);
      END_STATE();
    case 32:
      if (lookahead == 'm') ADVANCE(118);
      if (lookahead == 's') ADVANCE(119);
      END_STATE();
    case 33:
      if (lookahead == 't') ADVANCE(120);
      END_STATE();
    case 34:
      if (lookahead == 'o') ADVANCE(121);
      END_STATE();
    case 35:
      if (lookahead == 'e') ADVANCE(122);
      END_STATE();
    case 36:
      if (lookahead == 't') ADVANCE(123);
      END_STATE();
    case 37:
      if (lookahead == 's') ADVANCE(124);
      if (lookahead == 't') ADVANCE(125);
      END_STATE();
    case 38:
      if (lookahead == 'o') ADVANCE(126);
      END_STATE();
    case 39:
      if (lookahead == 'n') ADVANCE(127);
      END_STATE();
    case 40:
      if (lookahead == 'l') ADVANCE(128);
      END_STATE();
    case 41:
      if (lookahead == 'a') ADVANCE(129);
      END_STATE();
    case 42:
      if (lookahead == 'a') ADVANCE(130);
      END_STATE();
    case 43:
      if (lookahead == 'n') ADVANCE(131);
      END_STATE();
    case 44:
      if (lookahead == 'e') ADVANCE(132);
      END_STATE();
    case 45:
      if (lookahead == 't') ADVANCE(133);
      END_STATE();
    case 46:
      if (lookahead == 'h') ADVANCE(134);
      END_STATE();
    case 47:
      if (lookahead == 'b') ADVANCE(135);
      if (lookahead == 'f') ADVANCE(136);
      if (lookahead == 'l') ADVANCE(137);
      if (lookahead == 'p') ADVANCE(138);
      END_STATE();
    case 48:
      ACCEPT_TOKEN(sym_do);
      if (lookahead == 'u') ADVANCE(139);
      END_STATE();
    case 49:
      if (lookahead == 't') ADVANCE(140);
      END_STATE();
    case 50:
      if (lookahead == 's') ADVANCE(141);
      END_STATE();
    case 51:
      if (lookahead == 'u') ADVANCE(142);
      END_STATE();
    case 52:
      if (lookahead == 'i') ADVANCE(143);
      if (lookahead == 'p') ADVANCE(144);
      if (lookahead == 't') ADVANCE(145);
      END_STATE();
    case 53:
      if (lookahead == 'i') ADVANCE(146);
      if (lookahead == 'l') ADVANCE(147);
      END_STATE();
    case 54:
      if (lookahead == 'n') ADVANCE(148);
      END_STATE();
    case 55:
      if (lookahead == 'o') ADVANCE(149);
      END_STATE();
    case 56:
      if (lookahead == 'r') ADVANCE(150);
      END_STATE();
    case 57:
      if (lookahead == 'n') ADVANCE(151);
      END_STATE();
    case 58:
      if (lookahead == 't') ADVANCE(152);
      END_STATE();
    case 59:
      if (lookahead == 'o') ADVANCE(153);
      END_STATE();
    case 60:
      ACCEPT_TOKEN(sym_if);
      if (lookahead == 'l') ADVANCE(154);
      END_STATE();
    case 61:
      if (lookahead == 'm') ADVANCE(155);
      if (lookahead == 'p') ADVANCE(156);
      END_STATE();
    case 62:
      ACCEPT_TOKEN(sym_in);
      if (lookahead == 'o') ADVANCE(157);
      if (lookahead == 't') ADVANCE(158);
      if (lookahead == 'v') ADVANCE(159);
      END_STATE();
    case 63:
      if (lookahead == 'e') ADVANCE(160);
      END_STATE();
    case 64:
      ACCEPT_TOKEN(sym_is);
      END_STATE();
    case 65:
      if (lookahead == 'z') ADVANCE(161);
      END_STATE();
    case 66:
      if (lookahead == 'n') ADVANCE(162);
      END_STATE();
    case 67:
      if (lookahead == 'x') ADVANCE(163);
      END_STATE();
    case 68:
      if (lookahead == 'd') ADVANCE(164);
      END_STATE();
    case 69:
      if (lookahead == 'w') ADVANCE(165);
      END_STATE();
    case 70:
      if (lookahead == 'r') ADVANCE(166);
      if (lookahead == 't') ADVANCE(167);
      END_STATE();
    case 71:
      if (lookahead == 'l') ADVANCE(168);
      END_STATE();
    case 72:
      if (lookahead == 't') ADVANCE(169);
      END_STATE();
    case 73:
      if (lookahead == 'e') ADVANCE(170);
      END_STATE();
    case 74:
      if (lookahead == 'c') ADVANCE(171);
      END_STATE();
    case 75:
      if (lookahead == 'a') ADVANCE(172);
      if (lookahead == 'i') ADVANCE(173);
      if (lookahead == 'o') ADVANCE(174);
      END_STATE();
    case 76:
      if (lookahead == 'r') ADVANCE(175);
      END_STATE();
    case 77:
      if (lookahead == 'b') ADVANCE(176);
      if (lookahead == 'r') ADVANCE(177);
      END_STATE();
    case 78:
      if (lookahead == 'a') ADVANCE(178);
      if (lookahead == 'f') ADVANCE(179);
      if (lookahead == 't') ADVANCE(180);
      END_STATE();
    case 79:
      if (lookahead == 'o') ADVANCE(181);
      END_STATE();
    case 80:
      if (lookahead == 'a') ADVANCE(182);
      if (lookahead == 'o') ADVANCE(183);
      END_STATE();
    case 81:
      if (lookahead == 'z') ADVANCE(184);
      END_STATE();
    case 82:
      if (lookahead == 'a') ADVANCE(185);
      if (lookahead == 'r') ADVANCE(186);
      END_STATE();
    case 83:
      if (lookahead == 'c') ADVANCE(187);
      if (lookahead == 'p') ADVANCE(188);
      END_STATE();
    case 84:
      if (lookahead == 'i') ADVANCE(189);
      END_STATE();
    case 85:
      if (lookahead == 'n') ADVANCE(190);
      END_STATE();
    case 86:
      if (lookahead == 'm') ADVANCE(191);
      END_STATE();
    case 87:
      if (lookahead == 'i') ADVANCE(192);
      if (lookahead == 'r') ADVANCE(193);
      END_STATE();
    case 88:
      if (lookahead == 'u') ADVANCE(194);
      if (lookahead == 'y') ADVANCE(195);
      END_STATE();
    case 89:
      if (lookahead == 'p') ADVANCE(196);
      END_STATE();
    case 90:
      if (lookahead == 'y') ADVANCE(197);
      END_STATE();
    case 91:
      if (lookahead == 'e') ADVANCE(198);
      END_STATE();
    case 92:
      if (lookahead == 'n') ADVANCE(199);
      END_STATE();
    case 93:
      if (lookahead == 'o') ADVANCE(200);
      END_STATE();
    case 94:
      if (lookahead == 'i') ADVANCE(201);
      END_STATE();
    case 95:
      if (lookahead == 'h') ADVANCE(202);
      END_STATE();
    case 96:
      if (lookahead == 'r') ADVANCE(203);
      END_STATE();
    case 97:
      if (lookahead == 'i') ADVANCE(204);
      END_STATE();
    case 98:
      if (lookahead == 'h') ADVANCE(205);
      END_STATE();
    case 99:
      if (lookahead == 'i') ADVANCE(206);
      END_STATE();
    case 100:
      if (lookahead == 't') ADVANCE(207);
      END_STATE();
    case 101:
      if (lookahead == 't') ADVANCE(208);
      END_STATE();
    case 102:
      if (lookahead == 'e') ADVANCE(209);
      END_STATE();
    case 103:
      if (lookahead == 't') ADVANCE(210);
      END_STATE();
    case 104:
      if (lookahead == 'd') ADVANCE(211);
      END_STATE();
    case 105:
      if (lookahead == 'A') ADVANCE(212);
      END_STATE();
    case 106:
      if (lookahead == 'I') ADVANCE(213);
      if (lookahead == 'U') ADVANCE(214);
      END_STATE();
    case 107:
      if (lookahead == 'I') ADVANCE(215);
      END_STATE();
    case 108:
      if (lookahead == 'O') ADVANCE(216);
      END_STATE();
    case 109:
      if (lookahead == 'R') ADVANCE(217);
      END_STATE();
    case 110:
      if (lookahead == 'I') ADVANCE(218);
      END_STATE();
    case 111:
      if (lookahead == 'E') ADVANCE(219);
      END_STATE();
    case 112:
      if (lookahead == 's') ADVANCE(220);
      END_STATE();
    case 113:
      if (lookahead == 'a') ADVANCE(221);
      END_STATE();
    case 114:
      if (lookahead == 'r') ADVANCE(222);
      END_STATE();
    case 115:
      if (lookahead == 'e') ADVANCE(223);
      END_STATE();
    case 116:
      if (lookahead == 't') ADVANCE(224);
      END_STATE();
    case 117:
      if (lookahead == 'a') ADVANCE(225);
      if (lookahead == 'g') ADVANCE(226);
      END_STATE();
    case 118:
      ACCEPT_TOKEN(sym_asm);
      END_STATE();
    case 119:
      if (lookahead == 'e') ADVANCE(227);
      END_STATE();
    case 120:
      if (lookahead == 'o') ADVANCE(228);
      END_STATE();
    case 121:
      if (lookahead == 'l') ADVANCE(229);
      END_STATE();
    case 122:
      if (lookahead == 'a') ADVANCE(230);
      END_STATE();
    case 123:
      if (lookahead == 'e') ADVANCE(231);
      END_STATE();
    case 124:
      if (lookahead == 'e') ADVANCE(232);
      if (lookahead == 't') ADVANCE(233);
      END_STATE();
    case 125:
      if (lookahead == 'c') ADVANCE(234);
      END_STATE();
    case 126:
      if (lookahead == 'u') ADVANCE(235);
      END_STATE();
    case 127:
      if (lookahead == 't') ADVANCE(236);
      END_STATE();
    case 128:
      if (lookahead == 'o') ADVANCE(237);
      END_STATE();
    case 129:
      if (lookahead == 'r') ADVANCE(238);
      END_STATE();
    case 130:
      if (lookahead == 's') ADVANCE(239);
      END_STATE();
    case 131:
      if (lookahead == 's') ADVANCE(240);
      if (lookahead == 't') ADVANCE(241);
      END_STATE();
    case 132:
      if (lookahead == 'a') ADVANCE(242);
      END_STATE();
    case 133:
      if (lookahead == 'r') ADVANCE(243);
      END_STATE();
    case 134:
      if (lookahead == 'a') ADVANCE(244);
      END_STATE();
    case 135:
      if (lookahead == 'u') ADVANCE(245);
      END_STATE();
    case 136:
      if (lookahead == 'a') ADVANCE(246);
      END_STATE();
    case 137:
      if (lookahead == 'e') ADVANCE(247);
      END_STATE();
    case 138:
      if (lookahead == 'r') ADVANCE(248);
      END_STATE();
    case 139:
      if (lookahead == 'b') ADVANCE(249);
      END_STATE();
    case 140:
      if (lookahead == 'r') ADVANCE(250);
      END_STATE();
    case 141:
      if (lookahead == 'e') ADVANCE(251);
      END_STATE();
    case 142:
      if (lookahead == 'm') ADVANCE(252);
      END_STATE();
    case 143:
      if (lookahead == 't') ADVANCE(253);
      END_STATE();
    case 144:
      if (lookahead == 'o') ADVANCE(254);
      END_STATE();
    case 145:
      if (lookahead == 'e') ADVANCE(255);
      END_STATE();
    case 146:
      if (lookahead == 'l') ADVANCE(256);
      END_STATE();
    case 147:
      if (lookahead == 's') ADVANCE(257);
      END_STATE();
    case 148:
      if (lookahead == 'a') ADVANCE(258);
      END_STATE();
    case 149:
      if (lookahead == 'a') ADVANCE(259);
      END_STATE();
    case 150:
      ACCEPT_TOKEN(sym_for);
      if (lookahead == 'e') ADVANCE(260);
      END_STATE();
    case 151:
      if (lookahead == 'c') ADVANCE(261);
      END_STATE();
    case 152:
      if (lookahead == 'o') ADVANCE(262);
      END_STATE();
    case 153:
      if (lookahead == 'u') ADVANCE(263);
      END_STATE();
    case 154:
      if (lookahead == 'o') ADVANCE(264);
      END_STATE();
    case 155:
      if (lookahead == 'u') ADVANCE(265);
      END_STATE();
    case 156:
      if (lookahead == 'o') ADVANCE(266);
      END_STATE();
    case 157:
      if (lookahead == 'u') ADVANCE(267);
      END_STATE();
    case 158:
      ACCEPT_TOKEN(sym_int);
      if (lookahead == 'e') ADVANCE(268);
      END_STATE();
    case 159:
      if (lookahead == 'a') ADVANCE(269);
      END_STATE();
    case 160:
      if (lookahead == 'a') ADVANCE(270);
      END_STATE();
    case 161:
      if (lookahead == 'y') ADVANCE(271);
      END_STATE();
    case 162:
      if (lookahead == 'g') ADVANCE(272);
      END_STATE();
    case 163:
      if (lookahead == 'i') ADVANCE(273);
      END_STATE();
    case 164:
      if (lookahead == 'u') ADVANCE(274);
      END_STATE();
    case 165:
      ACCEPT_TOKEN(sym_new);
      END_STATE();
    case 166:
      if (lookahead == 'e') ADVANCE(275);
      END_STATE();
    case 167:
      if (lookahead == 'h') ADVANCE(276);
      END_STATE();
    case 168:
      if (lookahead == 'l') ADVANCE(277);
      END_STATE();
    case 169:
      ACCEPT_TOKEN(sym_out);
      END_STATE();
    case 170:
      if (lookahead == 'r') ADVANCE(278);
      END_STATE();
    case 171:
      if (lookahead == 'k') ADVANCE(279);
      END_STATE();
    case 172:
      if (lookahead == 'g') ADVANCE(280);
      END_STATE();
    case 173:
      if (lookahead == 'v') ADVANCE(281);
      END_STATE();
    case 174:
      if (lookahead == 't') ADVANCE(282);
      END_STATE();
    case 175:
      if (lookahead == 'd') ADVANCE(283);
      END_STATE();
    case 176:
      if (lookahead == 'l') ADVANCE(284);
      END_STATE();
    case 177:
      if (lookahead == 'e') ADVANCE(285);
      END_STATE();
    case 178:
      if (lookahead == 'l') ADVANCE(286);
      END_STATE();
    case 179:
      ACCEPT_TOKEN(sym_ref);
      END_STATE();
    case 180:
      if (lookahead == 'u') ADVANCE(287);
      END_STATE();
    case 181:
      if (lookahead == 'p') ADVANCE(288);
      END_STATE();
    case 182:
      if (lookahead == 'r') ADVANCE(289);
      END_STATE();
    case 183:
      if (lookahead == 'r') ADVANCE(290);
      END_STATE();
    case 184:
      if (lookahead == 'e') ADVANCE(291);
      END_STATE();
    case 185:
      if (lookahead == 't') ADVANCE(292);
      END_STATE();
    case 186:
      if (lookahead == 'i') ADVANCE(293);
      if (lookahead == 'u') ADVANCE(294);
      END_STATE();
    case 187:
      if (lookahead == 'c') ADVANCE(295);
      END_STATE();
    case 188:
      if (lookahead == 'e') ADVANCE(296);
      END_STATE();
    case 189:
      if (lookahead == 't') ADVANCE(297);
      END_STATE();
    case 190:
      if (lookahead == 'c') ADVANCE(298);
      END_STATE();
    case 191:
      if (lookahead == 'p') ADVANCE(299);
      END_STATE();
    case 192:
      if (lookahead == 's') ADVANCE(300);
      END_STATE();
    case 193:
      if (lookahead == 'o') ADVANCE(301);
      END_STATE();
    case 194:
      if (lookahead == 'e') ADVANCE(302);
      END_STATE();
    case 195:
      ACCEPT_TOKEN(sym_try);
      END_STATE();
    case 196:
      if (lookahead == 'e') ADVANCE(303);
      END_STATE();
    case 197:
      if (lookahead == 't') ADVANCE(304);
      END_STATE();
    case 198:
      if (lookahead == 'n') ADVANCE(305);
      END_STATE();
    case 199:
      if (lookahead == 't') ADVANCE(306);
      END_STATE();
    case 200:
      if (lookahead == 'n') ADVANCE(307);
      END_STATE();
    case 201:
      if (lookahead == 'o') ADVANCE(308);
      if (lookahead == 't') ADVANCE(309);
      END_STATE();
    case 202:
      if (lookahead == 'o') ADVANCE(310);
      END_STATE();
    case 203:
      if (lookahead == 's') ADVANCE(311);
      END_STATE();
    case 204:
      if (lookahead == 'd') ADVANCE(312);
      END_STATE();
    case 205:
      if (lookahead == 'a') ADVANCE(313);
      END_STATE();
    case 206:
      if (lookahead == 'l') ADVANCE(314);
      END_STATE();
    case 207:
      if (lookahead == 'h') ADVANCE(315);
      END_STATE();
    case 208:
      if (lookahead == 'r') ADVANCE(316);
      END_STATE();
    case 209:
      if (lookahead == 'c') ADVANCE(317);
      END_STATE();
    case 210:
      if (lookahead == 'e') ADVANCE(318);
      END_STATE();
    case 211:
      if (lookahead == 'o') ADVANCE(319);
      END_STATE();
    case 212:
      if (lookahead == 'T') ADVANCE(320);
      END_STATE();
    case 213:
      if (lookahead == 'L') ADVANCE(321);
      END_STATE();
    case 214:
      if (lookahead == 'N') ADVANCE(322);
      END_STATE();
    case 215:
      if (lookahead == 'N') ADVANCE(323);
      END_STATE();
    case 216:
      if (lookahead == 'D') ADVANCE(324);
      END_STATE();
    case 217:
      if (lookahead == 'E') ADVANCE(325);
      END_STATE();
    case 218:
      if (lookahead == 'M') ADVANCE(326);
      END_STATE();
    case 219:
      if (lookahead == 'N') ADVANCE(327);
      if (lookahead == 'R') ADVANCE(328);
      END_STATE();
    case 220:
      if (lookahead == 'h') ADVANCE(329);
      END_STATE();
    case 221:
      if (lookahead == 'r') ADVANCE(330);
      END_STATE();
    case 222:
      if (lookahead == 'a') ADVANCE(331);
      END_STATE();
    case 223:
      if (lookahead == 'c') ADVANCE(332);
      END_STATE();
    case 224:
      if (lookahead == 'r') ADVANCE(333);
      END_STATE();
    case 225:
      if (lookahead == 's') ADVANCE(334);
      END_STATE();
    case 226:
      if (lookahead == 'n') ADVANCE(335);
      END_STATE();
    case 227:
      if (lookahead == 'r') ADVANCE(336);
      END_STATE();
    case 228:
      ACCEPT_TOKEN(sym_auto);
      END_STATE();
    case 229:
      ACCEPT_TOKEN(sym_bool);
      END_STATE();
    case 230:
      if (lookahead == 'k') ADVANCE(337);
      END_STATE();
    case 231:
      ACCEPT_TOKEN(sym_byte);
      END_STATE();
    case 232:
      ACCEPT_TOKEN(sym_case);
      END_STATE();
    case 233:
      ACCEPT_TOKEN(sym_cast);
      END_STATE();
    case 234:
      if (lookahead == 'h') ADVANCE(338);
      END_STATE();
    case 235:
      if (lookahead == 'b') ADVANCE(339);
      END_STATE();
    case 236:
      ACCEPT_TOKEN(sym_cent);
      END_STATE();
    case 237:
      if (lookahead == 'a') ADVANCE(340);
      END_STATE();
    case 238:
      ACCEPT_TOKEN(sym_char);
      END_STATE();
    case 239:
      if (lookahead == 's') ADVANCE(341);
      END_STATE();
    case 240:
      if (lookahead == 't') ADVANCE(342);
      END_STATE();
    case 241:
      if (lookahead == 'i') ADVANCE(343);
      END_STATE();
    case 242:
      if (lookahead == 'l') ADVANCE(344);
      END_STATE();
    case 243:
      if (lookahead == 'i') ADVANCE(345);
      END_STATE();
    case 244:
      if (lookahead == 'r') ADVANCE(346);
      END_STATE();
    case 245:
      if (lookahead == 'g') ADVANCE(347);
      END_STATE();
    case 246:
      if (lookahead == 'u') ADVANCE(348);
      END_STATE();
    case 247:
      if (lookahead == 'g') ADVANCE(349);
      if (lookahead == 't') ADVANCE(350);
      END_STATE();
    case 248:
      if (lookahead == 'e') ADVANCE(351);
      END_STATE();
    case 249:
      if (lookahead == 'l') ADVANCE(352);
      END_STATE();
    case 250:
      if (lookahead == 'i') ADVANCE(353);
      END_STATE();
    case 251:
      ACCEPT_TOKEN(sym_else);
      END_STATE();
    case 252:
      ACCEPT_TOKEN(sym_enum);
      END_STATE();
    case 253:
      ACCEPT_TOKEN(anon_sym_exit);
      END_STATE();
    case 254:
      if (lookahead == 'r') ADVANCE(354);
      END_STATE();
    case 255:
      if (lookahead == 'r') ADVANCE(355);
      END_STATE();
    case 256:
      if (lookahead == 'u') ADVANCE(356);
      END_STATE();
    case 257:
      if (lookahead == 'e') ADVANCE(357);
      END_STATE();
    case 258:
      if (lookahead == 'l') ADVANCE(358);
      END_STATE();
    case 259:
      if (lookahead == 't') ADVANCE(359);
      END_STATE();
    case 260:
      if (lookahead == 'a') ADVANCE(360);
      END_STATE();
    case 261:
      if (lookahead == 't') ADVANCE(361);
      END_STATE();
    case 262:
      ACCEPT_TOKEN(sym_goto);
      END_STATE();
    case 263:
      if (lookahead == 'b') ADVANCE(362);
      END_STATE();
    case 264:
      if (lookahead == 'a') ADVANCE(363);
      END_STATE();
    case 265:
      if (lookahead == 't') ADVANCE(364);
      END_STATE();
    case 266:
      if (lookahead == 'r') ADVANCE(365);
      END_STATE();
    case 267:
      if (lookahead == 't') ADVANCE(366);
      END_STATE();
    case 268:
      if (lookahead == 'r') ADVANCE(367);
      END_STATE();
    case 269:
      if (lookahead == 'r') ADVANCE(368);
      END_STATE();
    case 270:
      if (lookahead == 'l') ADVANCE(369);
      END_STATE();
    case 271:
      ACCEPT_TOKEN(sym_lazy);
      END_STATE();
    case 272:
      ACCEPT_TOKEN(sym_long);
      END_STATE();
    case 273:
      if (lookahead == 'n') ADVANCE(370);
      END_STATE();
    case 274:
      if (lookahead == 'l') ADVANCE(371);
      END_STATE();
    case 275:
      if (lookahead == 't') ADVANCE(372);
      END_STATE();
    case 276:
      if (lookahead == 'r') ADVANCE(373);
      END_STATE();
    case 277:
      ACCEPT_TOKEN(sym_null);
      END_STATE();
    case 278:
      if (lookahead == 'r') ADVANCE(374);
      END_STATE();
    case 279:
      if (lookahead == 'a') ADVANCE(375);
      END_STATE();
    case 280:
      if (lookahead == 'm') ADVANCE(376);
      END_STATE();
    case 281:
      if (lookahead == 'a') ADVANCE(377);
      END_STATE();
    case 282:
      if (lookahead == 'e') ADVANCE(378);
      END_STATE();
    case 283:
      if (lookahead == 'i') ADVANCE(379);
      END_STATE();
    case 284:
      if (lookahead == 'i') ADVANCE(380);
      END_STATE();
    case 285:
      ACCEPT_TOKEN(sym_pure);
      END_STATE();
    case 286:
      ACCEPT_TOKEN(sym_real);
      END_STATE();
    case 287:
      if (lookahead == 'r') ADVANCE(381);
      END_STATE();
    case 288:
      if (lookahead == 'e') ADVANCE(382);
      END_STATE();
    case 289:
      if (lookahead == 'e') ADVANCE(383);
      END_STATE();
    case 290:
      if (lookahead == 't') ADVANCE(384);
      END_STATE();
    case 291:
      if (lookahead == '_') ADVANCE(385);
      END_STATE();
    case 292:
      if (lookahead == 'i') ADVANCE(386);
      END_STATE();
    case 293:
      if (lookahead == 'n') ADVANCE(387);
      END_STATE();
    case 294:
      if (lookahead == 'c') ADVANCE(388);
      END_STATE();
    case 295:
      if (lookahead == 'e') ADVANCE(389);
      END_STATE();
    case 296:
      if (lookahead == 'r') ADVANCE(390);
      END_STATE();
    case 297:
      if (lookahead == 'c') ADVANCE(391);
      END_STATE();
    case 298:
      if (lookahead == 'h') ADVANCE(392);
      END_STATE();
    case 299:
      if (lookahead == 'l') ADVANCE(393);
      END_STATE();
    case 300:
      ACCEPT_TOKEN(sym_this);
      END_STATE();
    case 301:
      if (lookahead == 'w') ADVANCE(394);
      END_STATE();
    case 302:
      ACCEPT_TOKEN(sym_true);
      END_STATE();
    case 303:
      if (lookahead == 'i') ADVANCE(395);
      if (lookahead == 'o') ADVANCE(396);
      END_STATE();
    case 304:
      if (lookahead == 'e') ADVANCE(397);
      END_STATE();
    case 305:
      if (lookahead == 't') ADVANCE(398);
      END_STATE();
    case 306:
      ACCEPT_TOKEN(sym_uint);
      END_STATE();
    case 307:
      if (lookahead == 'g') ADVANCE(399);
      END_STATE();
    case 308:
      if (lookahead == 'n') ADVANCE(400);
      END_STATE();
    case 309:
      if (lookahead == 't') ADVANCE(401);
      END_STATE();
    case 310:
      if (lookahead == 'r') ADVANCE(402);
      END_STATE();
    case 311:
      if (lookahead == 'i') ADVANCE(403);
      END_STATE();
    case 312:
      ACCEPT_TOKEN(sym_void);
      END_STATE();
    case 313:
      if (lookahead == 'r') ADVANCE(404);
      END_STATE();
    case 314:
      if (lookahead == 'e') ADVANCE(405);
      END_STATE();
    case 315:
      ACCEPT_TOKEN(sym_with);
      END_STATE();
    case 316:
      if (lookahead == 'i') ADVANCE(406);
      END_STATE();
    case 317:
      if (lookahead == 't') ADVANCE(407);
      END_STATE();
    case 318:
      if (lookahead == 'm') ADVANCE(408);
      END_STATE();
    case 319:
      if (lookahead == 'w') ADVANCE(409);
      END_STATE();
    case 320:
      if (lookahead == 'E') ADVANCE(410);
      END_STATE();
    case 321:
      if (lookahead == 'E') ADVANCE(411);
      END_STATE();
    case 322:
      if (lookahead == 'C') ADVANCE(412);
      END_STATE();
    case 323:
      if (lookahead == 'E') ADVANCE(413);
      END_STATE();
    case 324:
      if (lookahead == 'U') ADVANCE(414);
      END_STATE();
    case 325:
      if (lookahead == 'T') ADVANCE(415);
      END_STATE();
    case 326:
      if (lookahead == 'E') ADVANCE(416);
      END_STATE();
    case 327:
      if (lookahead == 'D') ADVANCE(417);
      END_STATE();
    case 328:
      if (lookahead == 'S') ADVANCE(418);
      END_STATE();
    case 329:
      if (lookahead == 'a') ADVANCE(419);
      END_STATE();
    case 330:
      if (lookahead == 'a') ADVANCE(420);
      END_STATE();
    case 331:
      if (lookahead == 'i') ADVANCE(421);
      END_STATE();
    case 332:
      if (lookahead == 't') ADVANCE(422);
      END_STATE();
    case 333:
      if (lookahead == 'a') ADVANCE(423);
      END_STATE();
    case 334:
      ACCEPT_TOKEN(sym_alias);
      END_STATE();
    case 335:
      ACCEPT_TOKEN(sym_align);
      END_STATE();
    case 336:
      if (lookahead == 't') ADVANCE(424);
      END_STATE();
    case 337:
      ACCEPT_TOKEN(sym_break);
      END_STATE();
    case 338:
      ACCEPT_TOKEN(sym_catch);
      END_STATE();
    case 339:
      if (lookahead == 'l') ADVANCE(425);
      END_STATE();
    case 340:
      if (lookahead == 't') ADVANCE(426);
      END_STATE();
    case 341:
      ACCEPT_TOKEN(sym_class);
      END_STATE();
    case 342:
      ACCEPT_TOKEN(sym_const);
      END_STATE();
    case 343:
      if (lookahead == 'n') ADVANCE(427);
      END_STATE();
    case 344:
      ACCEPT_TOKEN(sym_creal);
      END_STATE();
    case 345:
      if (lookahead == 'n') ADVANCE(428);
      END_STATE();
    case 346:
      ACCEPT_TOKEN(sym_dchar);
      END_STATE();
    case 347:
      ACCEPT_TOKEN(sym_debug);
      END_STATE();
    case 348:
      if (lookahead == 'l') ADVANCE(429);
      END_STATE();
    case 349:
      if (lookahead == 'a') ADVANCE(430);
      END_STATE();
    case 350:
      if (lookahead == 'e') ADVANCE(431);
      END_STATE();
    case 351:
      if (lookahead == 'c') ADVANCE(432);
      END_STATE();
    case 352:
      if (lookahead == 'e') ADVANCE(433);
      END_STATE();
    case 353:
      if (lookahead == 'n') ADVANCE(434);
      END_STATE();
    case 354:
      if (lookahead == 't') ADVANCE(435);
      END_STATE();
    case 355:
      if (lookahead == 'n') ADVANCE(436);
      END_STATE();
    case 356:
      if (lookahead == 'r') ADVANCE(437);
      END_STATE();
    case 357:
      ACCEPT_TOKEN(sym_false);
      END_STATE();
    case 358:
      ACCEPT_TOKEN(sym_final);
      if (lookahead == 'l') ADVANCE(438);
      END_STATE();
    case 359:
      ACCEPT_TOKEN(sym_float);
      END_STATE();
    case 360:
      if (lookahead == 'c') ADVANCE(439);
      END_STATE();
    case 361:
      if (lookahead == 'i') ADVANCE(440);
      END_STATE();
    case 362:
      if (lookahead == 'l') ADVANCE(441);
      END_STATE();
    case 363:
      if (lookahead == 't') ADVANCE(442);
      END_STATE();
    case 364:
      if (lookahead == 'a') ADVANCE(443);
      END_STATE();
    case 365:
      if (lookahead == 't') ADVANCE(444);
      END_STATE();
    case 366:
      ACCEPT_TOKEN(sym_inout);
      END_STATE();
    case 367:
      if (lookahead == 'f') ADVANCE(445);
      END_STATE();
    case 368:
      if (lookahead == 'i') ADVANCE(446);
      END_STATE();
    case 369:
      ACCEPT_TOKEN(sym_ireal);
      END_STATE();
    case 370:
      ACCEPT_TOKEN(sym_mixin);
      END_STATE();
    case 371:
      if (lookahead == 'e') ADVANCE(447);
      END_STATE();
    case 372:
      if (lookahead == 'u') ADVANCE(448);
      END_STATE();
    case 373:
      if (lookahead == 'o') ADVANCE(449);
      END_STATE();
    case 374:
      if (lookahead == 'i') ADVANCE(450);
      END_STATE();
    case 375:
      if (lookahead == 'g') ADVANCE(451);
      END_STATE();
    case 376:
      if (lookahead == 'a') ADVANCE(452);
      END_STATE();
    case 377:
      if (lookahead == 't') ADVANCE(453);
      END_STATE();
    case 378:
      if (lookahead == 'c') ADVANCE(454);
      END_STATE();
    case 379:
      if (lookahead == 'f') ADVANCE(455);
      END_STATE();
    case 380:
      if (lookahead == 'c') ADVANCE(456);
      END_STATE();
    case 381:
      if (lookahead == 'n') ADVANCE(457);
      END_STATE();
    case 382:
      ACCEPT_TOKEN(sym_scope);
      END_STATE();
    case 383:
      if (lookahead == 'd') ADVANCE(458);
      END_STATE();
    case 384:
      ACCEPT_TOKEN(sym_short);
      END_STATE();
    case 385:
      if (lookahead == 't') ADVANCE(459);
      END_STATE();
    case 386:
      if (lookahead == 'c') ADVANCE(460);
      END_STATE();
    case 387:
      if (lookahead == 'g') ADVANCE(461);
      END_STATE();
    case 388:
      if (lookahead == 't') ADVANCE(462);
      END_STATE();
    case 389:
      if (lookahead == 's') ADVANCE(463);
      END_STATE();
    case 390:
      ACCEPT_TOKEN(sym_super);
      END_STATE();
    case 391:
      if (lookahead == 'h') ADVANCE(464);
      END_STATE();
    case 392:
      if (lookahead == 'r') ADVANCE(465);
      END_STATE();
    case 393:
      if (lookahead == 'a') ADVANCE(466);
      END_STATE();
    case 394:
      ACCEPT_TOKEN(sym_throw);
      END_STATE();
    case 395:
      if (lookahead == 'd') ADVANCE(467);
      END_STATE();
    case 396:
      if (lookahead == 'f') ADVANCE(468);
      END_STATE();
    case 397:
      ACCEPT_TOKEN(sym_ubyte);
      END_STATE();
    case 398:
      ACCEPT_TOKEN(sym_ucent);
      END_STATE();
    case 399:
      ACCEPT_TOKEN(sym_ulong);
      END_STATE();
    case 400:
      ACCEPT_TOKEN(sym_union);
      END_STATE();
    case 401:
      if (lookahead == 'e') ADVANCE(469);
      END_STATE();
    case 402:
      if (lookahead == 't') ADVANCE(470);
      END_STATE();
    case 403:
      if (lookahead == 'o') ADVANCE(471);
      END_STATE();
    case 404:
      ACCEPT_TOKEN(sym_wchar);
      END_STATE();
    case 405:
      ACCEPT_TOKEN(sym_while);
      END_STATE();
    case 406:
      if (lookahead == 'n') ADVANCE(472);
      END_STATE();
    case 407:
      if (lookahead == 'i') ADVANCE(473);
      END_STATE();
    case 408:
      ACCEPT_TOKEN(anon_sym_System);
      END_STATE();
    case 409:
      if (lookahead == 's') ADVANCE(474);
      END_STATE();
    case 410:
      if (lookahead == '_') ADVANCE(475);
      END_STATE();
    case 411:
      if (lookahead == '_') ADVANCE(476);
      END_STATE();
    case 412:
      if (lookahead == 'T') ADVANCE(477);
      END_STATE();
    case 413:
      if (lookahead == '_') ADVANCE(478);
      END_STATE();
    case 414:
      if (lookahead == 'L') ADVANCE(479);
      END_STATE();
    case 415:
      if (lookahead == 'T') ADVANCE(480);
      END_STATE();
    case 416:
      if (lookahead == 'S') ADVANCE(481);
      if (lookahead == '_') ADVANCE(482);
      END_STATE();
    case 417:
      if (lookahead == 'O') ADVANCE(483);
      END_STATE();
    case 418:
      if (lookahead == 'I') ADVANCE(484);
      END_STATE();
    case 419:
      if (lookahead == 'r') ADVANCE(485);
      END_STATE();
    case 420:
      if (lookahead == 'm') ADVANCE(486);
      END_STATE();
    case 421:
      if (lookahead == 't') ADVANCE(487);
      END_STATE();
    case 422:
      if (lookahead == 'o') ADVANCE(488);
      END_STATE();
    case 423:
      if (lookahead == 'c') ADVANCE(489);
      END_STATE();
    case 424:
      ACCEPT_TOKEN(sym_assert);
      END_STATE();
    case 425:
      if (lookahead == 'e') ADVANCE(490);
      END_STATE();
    case 426:
      ACCEPT_TOKEN(sym_cfloat);
      END_STATE();
    case 427:
      if (lookahead == 'u') ADVANCE(491);
      END_STATE();
    case 428:
      if (lookahead == 'g') ADVANCE(492);
      END_STATE();
    case 429:
      if (lookahead == 't') ADVANCE(493);
      END_STATE();
    case 430:
      if (lookahead == 't') ADVANCE(494);
      END_STATE();
    case 431:
      ACCEPT_TOKEN(sym_delete);
      END_STATE();
    case 432:
      if (lookahead == 'a') ADVANCE(495);
      END_STATE();
    case 433:
      ACCEPT_TOKEN(sym_double);
      END_STATE();
    case 434:
      if (lookahead == 'g') ADVANCE(496);
      END_STATE();
    case 435:
      ACCEPT_TOKEN(sym_export);
      END_STATE();
    case 436:
      ACCEPT_TOKEN(sym_extern);
      END_STATE();
    case 437:
      if (lookahead == 'e') ADVANCE(497);
      END_STATE();
    case 438:
      if (lookahead == 'y') ADVANCE(498);
      END_STATE();
    case 439:
      if (lookahead == 'h') ADVANCE(499);
      END_STATE();
    case 440:
      if (lookahead == 'o') ADVANCE(500);
      END_STATE();
    case 441:
      if (lookahead == 'e') ADVANCE(501);
      END_STATE();
    case 442:
      ACCEPT_TOKEN(sym_ifloat);
      END_STATE();
    case 443:
      if (lookahead == 'b') ADVANCE(502);
      END_STATE();
    case 444:
      ACCEPT_TOKEN(sym_import);
      END_STATE();
    case 445:
      if (lookahead == 'a') ADVANCE(503);
      END_STATE();
    case 446:
      if (lookahead == 'a') ADVANCE(504);
      END_STATE();
    case 447:
      ACCEPT_TOKEN(sym_module);
      END_STATE();
    case 448:
      if (lookahead == 'r') ADVANCE(505);
      END_STATE();
    case 449:
      if (lookahead == 'w') ADVANCE(506);
      END_STATE();
    case 450:
      if (lookahead == 'd') ADVANCE(507);
      END_STATE();
    case 451:
      if (lookahead == 'e') ADVANCE(508);
      END_STATE();
    case 452:
      ACCEPT_TOKEN(sym_pragma);
      END_STATE();
    case 453:
      if (lookahead == 'e') ADVANCE(509);
      END_STATE();
    case 454:
      if (lookahead == 't') ADVANCE(510);
      END_STATE();
    case 455:
      if (lookahead == 'f') ADVANCE(511);
      END_STATE();
    case 456:
      ACCEPT_TOKEN(sym_public);
      END_STATE();
    case 457:
      ACCEPT_TOKEN(sym_return);
      END_STATE();
    case 458:
      ACCEPT_TOKEN(sym_shared);
      END_STATE();
    case 459:
      ACCEPT_TOKEN(sym_size_t);
      END_STATE();
    case 460:
      ACCEPT_TOKEN(sym_static);
      END_STATE();
    case 461:
      ACCEPT_TOKEN(sym_string);
      END_STATE();
    case 462:
      ACCEPT_TOKEN(sym_struct);
      END_STATE();
    case 463:
      if (lookahead == 's') ADVANCE(512);
      END_STATE();
    case 464:
      ACCEPT_TOKEN(sym_switch);
      END_STATE();
    case 465:
      if (lookahead == 'o') ADVANCE(513);
      END_STATE();
    case 466:
      if (lookahead == 't') ADVANCE(514);
      END_STATE();
    case 467:
      ACCEPT_TOKEN(sym_typeid);
      END_STATE();
    case 468:
      ACCEPT_TOKEN(sym_typeof);
      END_STATE();
    case 469:
      if (lookahead == 's') ADVANCE(515);
      END_STATE();
    case 470:
      ACCEPT_TOKEN(sym_ushort);
      END_STATE();
    case 471:
      if (lookahead == 'n') ADVANCE(516);
      END_STATE();
    case 472:
      if (lookahead == 'g') ADVANCE(517);
      END_STATE();
    case 473:
      if (lookahead == 'v') ADVANCE(518);
      END_STATE();
    case 474:
      ACCEPT_TOKEN(anon_sym_Windows);
      END_STATE();
    case 475:
      if (lookahead == '_') ADVANCE(519);
      END_STATE();
    case 476:
      if (lookahead == 'F') ADVANCE(520);
      if (lookahead == '_') ADVANCE(521);
      END_STATE();
    case 477:
      if (lookahead == 'I') ADVANCE(522);
      END_STATE();
    case 478:
      if (lookahead == '_') ADVANCE(523);
      END_STATE();
    case 479:
      if (lookahead == 'E') ADVANCE(524);
      END_STATE();
    case 480:
      if (lookahead == 'Y') ADVANCE(525);
      END_STATE();
    case 481:
      if (lookahead == 'T') ADVANCE(526);
      END_STATE();
    case 482:
      if (lookahead == '_') ADVANCE(527);
      END_STATE();
    case 483:
      if (lookahead == 'R') ADVANCE(528);
      END_STATE();
    case 484:
      if (lookahead == 'O') ADVANCE(529);
      END_STATE();
    case 485:
      if (lookahead == 'e') ADVANCE(530);
      END_STATE();
    case 486:
      if (lookahead == 'e') ADVANCE(531);
      END_STATE();
    case 487:
      if (lookahead == 's') ADVANCE(532);
      END_STATE();
    case 488:
      if (lookahead == 'r') ADVANCE(533);
      END_STATE();
    case 489:
      if (lookahead == 't') ADVANCE(534);
      END_STATE();
    case 490:
      ACCEPT_TOKEN(sym_cdouble);
      END_STATE();
    case 491:
      if (lookahead == 'e') ADVANCE(535);
      END_STATE();
    case 492:
      ACCEPT_TOKEN(sym_cstring);
      END_STATE();
    case 493:
      ACCEPT_TOKEN(sym_default);
      END_STATE();
    case 494:
      if (lookahead == 'e') ADVANCE(536);
      END_STATE();
    case 495:
      if (lookahead == 't') ADVANCE(537);
      END_STATE();
    case 496:
      ACCEPT_TOKEN(sym_dstring);
      END_STATE();
    case 497:
      ACCEPT_TOKEN(anon_sym_failure);
      END_STATE();
    case 498:
      ACCEPT_TOKEN(sym_finally);
      END_STATE();
    case 499:
      ACCEPT_TOKEN(sym_foreach);
      if (lookahead == '_') ADVANCE(538);
      END_STATE();
    case 500:
      if (lookahead == 'n') ADVANCE(539);
      END_STATE();
    case 501:
      ACCEPT_TOKEN(sym_idouble);
      END_STATE();
    case 502:
      if (lookahead == 'l') ADVANCE(540);
      END_STATE();
    case 503:
      if (lookahead == 'c') ADVANCE(541);
      END_STATE();
    case 504:
      if (lookahead == 'n') ADVANCE(542);
      END_STATE();
    case 505:
      if (lookahead == 'n') ADVANCE(543);
      END_STATE();
    case 506:
      ACCEPT_TOKEN(sym_nothrow);
      END_STATE();
    case 507:
      if (lookahead == 'e') ADVANCE(544);
      END_STATE();
    case 508:
      ACCEPT_TOKEN(sym_package);
      END_STATE();
    case 509:
      ACCEPT_TOKEN(sym_private);
      END_STATE();
    case 510:
      if (lookahead == 'e') ADVANCE(545);
      END_STATE();
    case 511:
      if (lookahead == '_') ADVANCE(546);
      END_STATE();
    case 512:
      ACCEPT_TOKEN(anon_sym_success);
      END_STATE();
    case 513:
      if (lookahead == 'n') ADVANCE(547);
      END_STATE();
    case 514:
      if (lookahead == 'e') ADVANCE(548);
      END_STATE();
    case 515:
      if (lookahead == 't') ADVANCE(549);
      END_STATE();
    case 516:
      ACCEPT_TOKEN(sym_version);
      END_STATE();
    case 517:
      ACCEPT_TOKEN(sym_wstring);
      END_STATE();
    case 518:
      if (lookahead == 'e') ADVANCE(550);
      END_STATE();
    case 519:
      ACCEPT_TOKEN(anon_sym___DATE__);
      END_STATE();
    case 520:
      if (lookahead == 'U') ADVANCE(551);
      END_STATE();
    case 521:
      ACCEPT_TOKEN(anon_sym___FILE__);
      END_STATE();
    case 522:
      if (lookahead == 'O') ADVANCE(552);
      END_STATE();
    case 523:
      ACCEPT_TOKEN(anon_sym___LINE__);
      END_STATE();
    case 524:
      if (lookahead == '_') ADVANCE(553);
      END_STATE();
    case 525:
      if (lookahead == '_') ADVANCE(554);
      END_STATE();
    case 526:
      if (lookahead == 'A') ADVANCE(555);
      END_STATE();
    case 527:
      ACCEPT_TOKEN(anon_sym___TIME__);
      END_STATE();
    case 528:
      if (lookahead == '_') ADVANCE(556);
      END_STATE();
    case 529:
      if (lookahead == 'N') ADVANCE(557);
      END_STATE();
    case 530:
      if (lookahead == 'd') ADVANCE(558);
      END_STATE();
    case 531:
      if (lookahead == 't') ADVANCE(559);
      END_STATE();
    case 532:
      ACCEPT_TOKEN(sym_traits);
      END_STATE();
    case 533:
      ACCEPT_TOKEN(sym_vector);
      END_STATE();
    case 534:
      ACCEPT_TOKEN(sym_abstract);
      END_STATE();
    case 535:
      ACCEPT_TOKEN(sym_continue);
      END_STATE();
    case 536:
      ACCEPT_TOKEN(sym_delegate);
      END_STATE();
    case 537:
      if (lookahead == 'e') ADVANCE(560);
      END_STATE();
    case 538:
      if (lookahead == 'r') ADVANCE(561);
      END_STATE();
    case 539:
      ACCEPT_TOKEN(sym_function);
      END_STATE();
    case 540:
      if (lookahead == 'e') ADVANCE(562);
      END_STATE();
    case 541:
      if (lookahead == 'e') ADVANCE(563);
      END_STATE();
    case 542:
      if (lookahead == 't') ADVANCE(564);
      END_STATE();
    case 543:
      ACCEPT_TOKEN(sym_noreturn);
      END_STATE();
    case 544:
      ACCEPT_TOKEN(sym_override);
      END_STATE();
    case 545:
      if (lookahead == 'd') ADVANCE(565);
      END_STATE();
    case 546:
      if (lookahead == 't') ADVANCE(566);
      END_STATE();
    case 547:
      if (lookahead == 'i') ADVANCE(567);
      END_STATE();
    case 548:
      ACCEPT_TOKEN(sym_template);
      END_STATE();
    case 549:
      ACCEPT_TOKEN(sym_unittest);
      END_STATE();
    case 550:
      ACCEPT_TOKEN(anon_sym_Objective);
      END_STATE();
    case 551:
      if (lookahead == 'L') ADVANCE(568);
      END_STATE();
    case 552:
      if (lookahead == 'N') ADVANCE(569);
      END_STATE();
    case 553:
      if (lookahead == '_') ADVANCE(570);
      END_STATE();
    case 554:
      if (lookahead == 'F') ADVANCE(571);
      END_STATE();
    case 555:
      if (lookahead == 'M') ADVANCE(572);
      END_STATE();
    case 556:
      if (lookahead == '_') ADVANCE(573);
      END_STATE();
    case 557:
      if (lookahead == '_') ADVANCE(574);
      END_STATE();
    case 558:
      ACCEPT_TOKEN(sym_gshared);
      END_STATE();
    case 559:
      if (lookahead == 'e') ADVANCE(575);
      END_STATE();
    case 560:
      if (lookahead == 'd') ADVANCE(576);
      END_STATE();
    case 561:
      if (lookahead == 'e') ADVANCE(577);
      END_STATE();
    case 562:
      ACCEPT_TOKEN(sym_immutable);
      END_STATE();
    case 563:
      ACCEPT_TOKEN(sym_interface);
      END_STATE();
    case 564:
      ACCEPT_TOKEN(sym_invariant);
      END_STATE();
    case 565:
      ACCEPT_TOKEN(sym_protected);
      END_STATE();
    case 566:
      ACCEPT_TOKEN(sym_ptrdiff_t);
      END_STATE();
    case 567:
      if (lookahead == 'z') ADVANCE(578);
      END_STATE();
    case 568:
      if (lookahead == 'L') ADVANCE(579);
      END_STATE();
    case 569:
      if (lookahead == '_') ADVANCE(580);
      END_STATE();
    case 570:
      ACCEPT_TOKEN(anon_sym___MODULE__);
      END_STATE();
    case 571:
      if (lookahead == 'U') ADVANCE(581);
      END_STATE();
    case 572:
      if (lookahead == 'P') ADVANCE(582);
      END_STATE();
    case 573:
      ACCEPT_TOKEN(anon_sym___VENDOR__);
      END_STATE();
    case 574:
      if (lookahead == '_') ADVANCE(583);
      END_STATE();
    case 575:
      if (lookahead == 'r') ADVANCE(584);
      END_STATE();
    case 576:
      ACCEPT_TOKEN(sym_deprecated);
      END_STATE();
    case 577:
      if (lookahead == 'v') ADVANCE(585);
      END_STATE();
    case 578:
      if (lookahead == 'e') ADVANCE(586);
      END_STATE();
    case 579:
      if (lookahead == '_') ADVANCE(587);
      END_STATE();
    case 580:
      if (lookahead == '_') ADVANCE(588);
      END_STATE();
    case 581:
      if (lookahead == 'N') ADVANCE(589);
      END_STATE();
    case 582:
      if (lookahead == '_') ADVANCE(590);
      END_STATE();
    case 583:
      ACCEPT_TOKEN(anon_sym___VERSION__);
      END_STATE();
    case 584:
      if (lookahead == 's') ADVANCE(591);
      END_STATE();
    case 585:
      if (lookahead == 'e') ADVANCE(592);
      END_STATE();
    case 586:
      if (lookahead == 'd') ADVANCE(593);
      END_STATE();
    case 587:
      if (lookahead == 'P') ADVANCE(594);
      END_STATE();
    case 588:
      ACCEPT_TOKEN(anon_sym___FUNCTION__);
      END_STATE();
    case 589:
      if (lookahead == 'C') ADVANCE(595);
      END_STATE();
    case 590:
      if (lookahead == '_') ADVANCE(596);
      END_STATE();
    case 591:
      ACCEPT_TOKEN(sym_parameters_);
      END_STATE();
    case 592:
      if (lookahead == 'r') ADVANCE(597);
      END_STATE();
    case 593:
      ACCEPT_TOKEN(sym_synchronized);
      END_STATE();
    case 594:
      if (lookahead == 'A') ADVANCE(598);
      END_STATE();
    case 595:
      if (lookahead == 'T') ADVANCE(599);
      END_STATE();
    case 596:
      ACCEPT_TOKEN(anon_sym___TIMESTAMP__);
      END_STATE();
    case 597:
      if (lookahead == 's') ADVANCE(600);
      END_STATE();
    case 598:
      if (lookahead == 'T') ADVANCE(601);
      END_STATE();
    case 599:
      if (lookahead == 'I') ADVANCE(602);
      END_STATE();
    case 600:
      if (lookahead == 'e') ADVANCE(603);
      END_STATE();
    case 601:
      if (lookahead == 'H') ADVANCE(604);
      END_STATE();
    case 602:
      if (lookahead == 'O') ADVANCE(605);
      END_STATE();
    case 603:
      ACCEPT_TOKEN(sym_foreach_reverse);
      END_STATE();
    case 604:
      if (lookahead == '_') ADVANCE(606);
      END_STATE();
    case 605:
      if (lookahead == 'N') ADVANCE(607);
      END_STATE();
    case 606:
      if (lookahead == '_') ADVANCE(608);
      END_STATE();
    case 607:
      if (lookahead == '_') ADVANCE(609);
      END_STATE();
    case 608:
      ACCEPT_TOKEN(anon_sym___FILE_FULL_PATH__);
      END_STATE();
    case 609:
      if (lookahead == '_') ADVANCE(610);
      END_STATE();
    case 610:
      ACCEPT_TOKEN(anon_sym___PRETTY_FUNCTION__);
      END_STATE();
    default:
      return false;
  }
}

static const TSLexMode ts_lex_modes[STATE_COUNT] = {
  [0] = {.lex_state = 0, .external_lex_state = 1},
  [1] = {.lex_state = 172, .external_lex_state = 2},
  [2] = {.lex_state = 7, .external_lex_state = 3},
  [3] = {.lex_state = 7, .external_lex_state = 3},
  [4] = {.lex_state = 7, .external_lex_state = 3},
  [5] = {.lex_state = 7, .external_lex_state = 3},
  [6] = {.lex_state = 7, .external_lex_state = 3},
  [7] = {.lex_state = 7, .external_lex_state = 3},
  [8] = {.lex_state = 7, .external_lex_state = 3},
  [9] = {.lex_state = 7, .external_lex_state = 3},
  [10] = {.lex_state = 7, .external_lex_state = 3},
  [11] = {.lex_state = 7, .external_lex_state = 3},
  [12] = {.lex_state = 7, .external_lex_state = 3},
  [13] = {.lex_state = 7, .external_lex_state = 3},
  [14] = {.lex_state = 7, .external_lex_state = 3},
  [15] = {.lex_state = 7, .external_lex_state = 3},
  [16] = {.lex_state = 7, .external_lex_state = 3},
  [17] = {.lex_state = 7, .external_lex_state = 3},
  [18] = {.lex_state = 7, .external_lex_state = 3},
  [19] = {.lex_state = 7, .external_lex_state = 3},
  [20] = {.lex_state = 7, .external_lex_state = 3},
  [21] = {.lex_state = 7, .external_lex_state = 3},
  [22] = {.lex_state = 7, .external_lex_state = 3},
  [23] = {.lex_state = 7, .external_lex_state = 3},
  [24] = {.lex_state = 7, .external_lex_state = 3},
  [25] = {.lex_state = 7, .external_lex_state = 3},
  [26] = {.lex_state = 7, .external_lex_state = 3},
  [27] = {.lex_state = 7, .external_lex_state = 3},
  [28] = {.lex_state = 7, .external_lex_state = 3},
  [29] = {.lex_state = 7, .external_lex_state = 3},
  [30] = {.lex_state = 7, .external_lex_state = 3},
  [31] = {.lex_state = 7, .external_lex_state = 3},
  [32] = {.lex_state = 7, .external_lex_state = 3},
  [33] = {.lex_state = 7, .external_lex_state = 3},
  [34] = {.lex_state = 7, .external_lex_state = 3},
  [35] = {.lex_state = 7, .external_lex_state = 3},
  [36] = {.lex_state = 7, .external_lex_state = 3},
  [37] = {.lex_state = 7, .external_lex_state = 3},
  [38] = {.lex_state = 7, .external_lex_state = 3},
  [39] = {.lex_state = 7, .external_lex_state = 3},
  [40] = {.lex_state = 7, .external_lex_state = 3},
  [41] = {.lex_state = 7, .external_lex_state = 3},
  [42] = {.lex_state = 7, .external_lex_state = 3},
  [43] = {.lex_state = 7, .external_lex_state = 3},
  [44] = {.lex_state = 7, .external_lex_state = 3},
  [45] = {.lex_state = 7, .external_lex_state = 3},
  [46] = {.lex_state = 7, .external_lex_state = 3},
  [47] = {.lex_state = 7, .external_lex_state = 3},
  [48] = {.lex_state = 7, .external_lex_state = 3},
  [49] = {.lex_state = 7, .external_lex_state = 3},
  [50] = {.lex_state = 7, .external_lex_state = 3},
  [51] = {.lex_state = 7, .external_lex_state = 3},
  [52] = {.lex_state = 7, .external_lex_state = 3},
  [53] = {.lex_state = 7, .external_lex_state = 3},
  [54] = {.lex_state = 7, .external_lex_state = 3},
  [55] = {.lex_state = 7, .external_lex_state = 3},
  [56] = {.lex_state = 7, .external_lex_state = 3},
  [57] = {.lex_state = 7, .external_lex_state = 3},
  [58] = {.lex_state = 7, .external_lex_state = 3},
  [59] = {.lex_state = 7, .external_lex_state = 3},
  [60] = {.lex_state = 7, .external_lex_state = 3},
  [61] = {.lex_state = 7, .external_lex_state = 3},
  [62] = {.lex_state = 7, .external_lex_state = 3},
  [63] = {.lex_state = 7, .external_lex_state = 3},
  [64] = {.lex_state = 7, .external_lex_state = 3},
  [65] = {.lex_state = 7, .external_lex_state = 3},
  [66] = {.lex_state = 7, .external_lex_state = 3},
  [67] = {.lex_state = 7, .external_lex_state = 3},
  [68] = {.lex_state = 7, .external_lex_state = 3},
  [69] = {.lex_state = 7, .external_lex_state = 3},
  [70] = {.lex_state = 7, .external_lex_state = 3},
  [71] = {.lex_state = 7, .external_lex_state = 3},
  [72] = {.lex_state = 7, .external_lex_state = 3},
  [73] = {.lex_state = 7, .external_lex_state = 3},
  [74] = {.lex_state = 7, .external_lex_state = 3},
  [75] = {.lex_state = 7, .external_lex_state = 3},
  [76] = {.lex_state = 7, .external_lex_state = 3},
  [77] = {.lex_state = 7, .external_lex_state = 3},
  [78] = {.lex_state = 7, .external_lex_state = 3},
  [79] = {.lex_state = 7, .external_lex_state = 3},
  [80] = {.lex_state = 7, .external_lex_state = 3},
  [81] = {.lex_state = 7, .external_lex_state = 3},
  [82] = {.lex_state = 7, .external_lex_state = 3},
  [83] = {.lex_state = 7, .external_lex_state = 3},
  [84] = {.lex_state = 7, .external_lex_state = 3},
  [85] = {.lex_state = 7, .external_lex_state = 3},
  [86] = {.lex_state = 7, .external_lex_state = 3},
  [87] = {.lex_state = 7, .external_lex_state = 3},
  [88] = {.lex_state = 7, .external_lex_state = 3},
  [89] = {.lex_state = 7, .external_lex_state = 3},
  [90] = {.lex_state = 7, .external_lex_state = 3},
  [91] = {.lex_state = 7, .external_lex_state = 3},
  [92] = {.lex_state = 7, .external_lex_state = 3},
  [93] = {.lex_state = 7, .external_lex_state = 3},
  [94] = {.lex_state = 7, .external_lex_state = 3},
  [95] = {.lex_state = 7, .external_lex_state = 3},
  [96] = {.lex_state = 7, .external_lex_state = 3},
  [97] = {.lex_state = 7, .external_lex_state = 3},
  [98] = {.lex_state = 7, .external_lex_state = 3},
  [99] = {.lex_state = 7, .external_lex_state = 3},
  [100] = {.lex_state = 7, .external_lex_state = 3},
  [101] = {.lex_state = 7, .external_lex_state = 3},
  [102] = {.lex_state = 7, .external_lex_state = 3},
  [103] = {.lex_state = 7, .external_lex_state = 3},
  [104] = {.lex_state = 7, .external_lex_state = 3},
  [105] = {.lex_state = 7, .external_lex_state = 3},
  [106] = {.lex_state = 7, .external_lex_state = 3},
  [107] = {.lex_state = 7, .external_lex_state = 3},
  [108] = {.lex_state = 7, .external_lex_state = 3},
  [109] = {.lex_state = 7, .external_lex_state = 3},
  [110] = {.lex_state = 7, .external_lex_state = 3},
  [111] = {.lex_state = 7, .external_lex_state = 3},
  [112] = {.lex_state = 7, .external_lex_state = 3},
  [113] = {.lex_state = 7, .external_lex_state = 3},
  [114] = {.lex_state = 7, .external_lex_state = 3},
  [115] = {.lex_state = 7, .external_lex_state = 3},
  [116] = {.lex_state = 7, .external_lex_state = 3},
  [117] = {.lex_state = 7, .external_lex_state = 3},
  [118] = {.lex_state = 7, .external_lex_state = 3},
  [119] = {.lex_state = 7, .external_lex_state = 3},
  [120] = {.lex_state = 7, .external_lex_state = 3},
  [121] = {.lex_state = 7, .external_lex_state = 3},
  [122] = {.lex_state = 7, .external_lex_state = 3},
  [123] = {.lex_state = 7, .external_lex_state = 3},
  [124] = {.lex_state = 7, .external_lex_state = 3},
  [125] = {.lex_state = 7, .external_lex_state = 3},
  [126] = {.lex_state = 7, .external_lex_state = 3},
  [127] = {.lex_state = 7, .external_lex_state = 3},
  [128] = {.lex_state = 7, .external_lex_state = 3},
  [129] = {.lex_state = 7, .external_lex_state = 3},
  [130] = {.lex_state = 7, .external_lex_state = 3},
  [131] = {.lex_state = 7, .external_lex_state = 3},
  [132] = {.lex_state = 7, .external_lex_state = 3},
  [133] = {.lex_state = 7, .external_lex_state = 3},
  [134] = {.lex_state = 7, .external_lex_state = 3},
  [135] = {.lex_state = 7, .external_lex_state = 3},
  [136] = {.lex_state = 7, .external_lex_state = 3},
  [137] = {.lex_state = 7, .external_lex_state = 3},
  [138] = {.lex_state = 7, .external_lex_state = 3},
  [139] = {.lex_state = 7, .external_lex_state = 3},
  [140] = {.lex_state = 7, .external_lex_state = 3},
  [141] = {.lex_state = 7, .external_lex_state = 3},
  [142] = {.lex_state = 7, .external_lex_state = 3},
  [143] = {.lex_state = 7, .external_lex_state = 3},
  [144] = {.lex_state = 7, .external_lex_state = 3},
  [145] = {.lex_state = 7, .external_lex_state = 3},
  [146] = {.lex_state = 7, .external_lex_state = 3},
  [147] = {.lex_state = 7, .external_lex_state = 3},
  [148] = {.lex_state = 7, .external_lex_state = 3},
  [149] = {.lex_state = 7, .external_lex_state = 3},
  [150] = {.lex_state = 7, .external_lex_state = 3},
  [151] = {.lex_state = 7, .external_lex_state = 3},
  [152] = {.lex_state = 7, .external_lex_state = 3},
  [153] = {.lex_state = 7, .external_lex_state = 3},
  [154] = {.lex_state = 7, .external_lex_state = 3},
  [155] = {.lex_state = 7, .external_lex_state = 3},
  [156] = {.lex_state = 7, .external_lex_state = 3},
  [157] = {.lex_state = 7, .external_lex_state = 3},
  [158] = {.lex_state = 7, .external_lex_state = 3},
  [159] = {.lex_state = 7, .external_lex_state = 3},
  [160] = {.lex_state = 7, .external_lex_state = 3},
  [161] = {.lex_state = 7, .external_lex_state = 3},
  [162] = {.lex_state = 7, .external_lex_state = 3},
  [163] = {.lex_state = 7, .external_lex_state = 3},
  [164] = {.lex_state = 7, .external_lex_state = 3},
  [165] = {.lex_state = 7, .external_lex_state = 3},
  [166] = {.lex_state = 7, .external_lex_state = 3},
  [167] = {.lex_state = 7, .external_lex_state = 3},
  [168] = {.lex_state = 7, .external_lex_state = 3},
  [169] = {.lex_state = 7, .external_lex_state = 3},
  [170] = {.lex_state = 7, .external_lex_state = 3},
  [171] = {.lex_state = 7, .external_lex_state = 3},
  [172] = {.lex_state = 7, .external_lex_state = 3},
  [173] = {.lex_state = 7, .external_lex_state = 3},
  [174] = {.lex_state = 7, .external_lex_state = 3},
  [175] = {.lex_state = 7, .external_lex_state = 3},
  [176] = {.lex_state = 7, .external_lex_state = 3},
  [177] = {.lex_state = 7, .external_lex_state = 3},
  [178] = {.lex_state = 7, .external_lex_state = 3},
  [179] = {.lex_state = 7, .external_lex_state = 3},
  [180] = {.lex_state = 7, .external_lex_state = 3},
  [181] = {.lex_state = 7, .external_lex_state = 3},
  [182] = {.lex_state = 7, .external_lex_state = 3},
  [183] = {.lex_state = 7, .external_lex_state = 3},
  [184] = {.lex_state = 7, .external_lex_state = 3},
  [185] = {.lex_state = 7, .external_lex_state = 3},
  [186] = {.lex_state = 7, .external_lex_state = 3},
  [187] = {.lex_state = 7, .external_lex_state = 3},
  [188] = {.lex_state = 7, .external_lex_state = 3},
  [189] = {.lex_state = 7, .external_lex_state = 3},
  [190] = {.lex_state = 7, .external_lex_state = 3},
  [191] = {.lex_state = 7, .external_lex_state = 3},
  [192] = {.lex_state = 7, .external_lex_state = 3},
  [193] = {.lex_state = 7, .external_lex_state = 3},
  [194] = {.lex_state = 7, .external_lex_state = 3},
  [195] = {.lex_state = 7, .external_lex_state = 3},
  [196] = {.lex_state = 7, .external_lex_state = 3},
  [197] = {.lex_state = 7, .external_lex_state = 3},
  [198] = {.lex_state = 7, .external_lex_state = 3},
  [199] = {.lex_state = 7, .external_lex_state = 3},
  [200] = {.lex_state = 7, .external_lex_state = 3},
  [201] = {.lex_state = 7, .external_lex_state = 3},
  [202] = {.lex_state = 7, .external_lex_state = 3},
  [203] = {.lex_state = 7, .external_lex_state = 3},
  [204] = {.lex_state = 7, .external_lex_state = 3},
  [205] = {.lex_state = 7, .external_lex_state = 3},
  [206] = {.lex_state = 7, .external_lex_state = 3},
  [207] = {.lex_state = 7, .external_lex_state = 3},
  [208] = {.lex_state = 7, .external_lex_state = 3},
  [209] = {.lex_state = 7, .external_lex_state = 3},
  [210] = {.lex_state = 7, .external_lex_state = 3},
  [211] = {.lex_state = 7, .external_lex_state = 3},
  [212] = {.lex_state = 7, .external_lex_state = 3},
  [213] = {.lex_state = 7, .external_lex_state = 3},
  [214] = {.lex_state = 7, .external_lex_state = 3},
  [215] = {.lex_state = 7, .external_lex_state = 3},
  [216] = {.lex_state = 7, .external_lex_state = 3},
  [217] = {.lex_state = 7, .external_lex_state = 3},
  [218] = {.lex_state = 7, .external_lex_state = 3},
  [219] = {.lex_state = 7, .external_lex_state = 3},
  [220] = {.lex_state = 7, .external_lex_state = 3},
  [221] = {.lex_state = 7, .external_lex_state = 3},
  [222] = {.lex_state = 7, .external_lex_state = 3},
  [223] = {.lex_state = 7, .external_lex_state = 3},
  [224] = {.lex_state = 7, .external_lex_state = 3},
  [225] = {.lex_state = 7, .external_lex_state = 3},
  [226] = {.lex_state = 7, .external_lex_state = 3},
  [227] = {.lex_state = 7, .external_lex_state = 3},
  [228] = {.lex_state = 7, .external_lex_state = 3},
  [229] = {.lex_state = 7, .external_lex_state = 3},
  [230] = {.lex_state = 7, .external_lex_state = 3},
  [231] = {.lex_state = 7, .external_lex_state = 3},
  [232] = {.lex_state = 7, .external_lex_state = 3},
  [233] = {.lex_state = 7, .external_lex_state = 3},
  [234] = {.lex_state = 7, .external_lex_state = 3},
  [235] = {.lex_state = 7, .external_lex_state = 3},
  [236] = {.lex_state = 7, .external_lex_state = 3},
  [237] = {.lex_state = 7, .external_lex_state = 3},
  [238] = {.lex_state = 7, .external_lex_state = 3},
  [239] = {.lex_state = 7, .external_lex_state = 3},
  [240] = {.lex_state = 7, .external_lex_state = 3},
  [241] = {.lex_state = 7, .external_lex_state = 3},
  [242] = {.lex_state = 7, .external_lex_state = 3},
  [243] = {.lex_state = 7, .external_lex_state = 3},
  [244] = {.lex_state = 7, .external_lex_state = 3},
  [245] = {.lex_state = 7, .external_lex_state = 3},
  [246] = {.lex_state = 7, .external_lex_state = 3},
  [247] = {.lex_state = 7, .external_lex_state = 3},
  [248] = {.lex_state = 7, .external_lex_state = 3},
  [249] = {.lex_state = 7, .external_lex_state = 3},
  [250] = {.lex_state = 7, .external_lex_state = 3},
  [251] = {.lex_state = 7, .external_lex_state = 3},
  [252] = {.lex_state = 7, .external_lex_state = 3},
  [253] = {.lex_state = 7, .external_lex_state = 3},
  [254] = {.lex_state = 7, .external_lex_state = 3},
  [255] = {.lex_state = 7, .external_lex_state = 3},
  [256] = {.lex_state = 7, .external_lex_state = 3},
  [257] = {.lex_state = 7, .external_lex_state = 3},
  [258] = {.lex_state = 7, .external_lex_state = 3},
  [259] = {.lex_state = 7, .external_lex_state = 3},
  [260] = {.lex_state = 7, .external_lex_state = 3},
  [261] = {.lex_state = 7, .external_lex_state = 3},
  [262] = {.lex_state = 7, .external_lex_state = 3},
  [263] = {.lex_state = 7, .external_lex_state = 3},
  [264] = {.lex_state = 7, .external_lex_state = 3},
  [265] = {.lex_state = 7, .external_lex_state = 3},
  [266] = {.lex_state = 7, .external_lex_state = 3},
  [267] = {.lex_state = 7, .external_lex_state = 3},
  [268] = {.lex_state = 7, .external_lex_state = 3},
  [269] = {.lex_state = 7, .external_lex_state = 3},
  [270] = {.lex_state = 7, .external_lex_state = 3},
  [271] = {.lex_state = 7, .external_lex_state = 3},
  [272] = {.lex_state = 7, .external_lex_state = 3},
  [273] = {.lex_state = 7, .external_lex_state = 3},
  [274] = {.lex_state = 7, .external_lex_state = 3},
  [275] = {.lex_state = 7, .external_lex_state = 3},
  [276] = {.lex_state = 7, .external_lex_state = 3},
  [277] = {.lex_state = 7, .external_lex_state = 3},
  [278] = {.lex_state = 7, .external_lex_state = 3},
  [279] = {.lex_state = 7, .external_lex_state = 3},
  [280] = {.lex_state = 7, .external_lex_state = 3},
  [281] = {.lex_state = 7, .external_lex_state = 3},
  [282] = {.lex_state = 7, .external_lex_state = 3},
  [283] = {.lex_state = 7, .external_lex_state = 3},
  [284] = {.lex_state = 7, .external_lex_state = 3},
  [285] = {.lex_state = 7, .external_lex_state = 3},
  [286] = {.lex_state = 7, .external_lex_state = 3},
  [287] = {.lex_state = 7, .external_lex_state = 3},
  [288] = {.lex_state = 7, .external_lex_state = 3},
  [289] = {.lex_state = 7, .external_lex_state = 3},
  [290] = {.lex_state = 7, .external_lex_state = 3},
  [291] = {.lex_state = 7, .external_lex_state = 3},
  [292] = {.lex_state = 7, .external_lex_state = 3},
  [293] = {.lex_state = 7, .external_lex_state = 3},
  [294] = {.lex_state = 7, .external_lex_state = 3},
  [295] = {.lex_state = 7, .external_lex_state = 3},
  [296] = {.lex_state = 7, .external_lex_state = 3},
  [297] = {.lex_state = 7, .external_lex_state = 3},
  [298] = {.lex_state = 7, .external_lex_state = 3},
  [299] = {.lex_state = 7, .external_lex_state = 3},
  [300] = {.lex_state = 7, .external_lex_state = 3},
  [301] = {.lex_state = 7, .external_lex_state = 3},
  [302] = {.lex_state = 7, .external_lex_state = 3},
  [303] = {.lex_state = 7, .external_lex_state = 3},
  [304] = {.lex_state = 7, .external_lex_state = 3},
  [305] = {.lex_state = 7, .external_lex_state = 3},
  [306] = {.lex_state = 7, .external_lex_state = 3},
  [307] = {.lex_state = 7, .external_lex_state = 3},
  [308] = {.lex_state = 7, .external_lex_state = 3},
  [309] = {.lex_state = 7, .external_lex_state = 3},
  [310] = {.lex_state = 7, .external_lex_state = 3},
  [311] = {.lex_state = 7, .external_lex_state = 3},
  [312] = {.lex_state = 7, .external_lex_state = 3},
  [313] = {.lex_state = 7, .external_lex_state = 3},
  [314] = {.lex_state = 7, .external_lex_state = 3},
  [315] = {.lex_state = 7, .external_lex_state = 3},
  [316] = {.lex_state = 7, .external_lex_state = 3},
  [317] = {.lex_state = 7, .external_lex_state = 3},
  [318] = {.lex_state = 7, .external_lex_state = 3},
  [319] = {.lex_state = 7, .external_lex_state = 3},
  [320] = {.lex_state = 7, .external_lex_state = 3},
  [321] = {.lex_state = 7, .external_lex_state = 3},
  [322] = {.lex_state = 7, .external_lex_state = 3},
  [323] = {.lex_state = 7, .external_lex_state = 3},
  [324] = {.lex_state = 7, .external_lex_state = 3},
  [325] = {.lex_state = 7, .external_lex_state = 3},
  [326] = {.lex_state = 7, .external_lex_state = 3},
  [327] = {.lex_state = 7, .external_lex_state = 3},
  [328] = {.lex_state = 7, .external_lex_state = 3},
  [329] = {.lex_state = 7, .external_lex_state = 3},
  [330] = {.lex_state = 7, .external_lex_state = 3},
  [331] = {.lex_state = 7, .external_lex_state = 3},
  [332] = {.lex_state = 7, .external_lex_state = 3},
  [333] = {.lex_state = 7, .external_lex_state = 3},
  [334] = {.lex_state = 7, .external_lex_state = 3},
  [335] = {.lex_state = 7, .external_lex_state = 3},
  [336] = {.lex_state = 7, .external_lex_state = 3},
  [337] = {.lex_state = 7, .external_lex_state = 3},
  [338] = {.lex_state = 7, .external_lex_state = 3},
  [339] = {.lex_state = 7, .external_lex_state = 3},
  [340] = {.lex_state = 7, .external_lex_state = 3},
  [341] = {.lex_state = 7, .external_lex_state = 3},
  [342] = {.lex_state = 7, .external_lex_state = 3},
  [343] = {.lex_state = 7, .external_lex_state = 3},
  [344] = {.lex_state = 7, .external_lex_state = 3},
  [345] = {.lex_state = 7, .external_lex_state = 3},
  [346] = {.lex_state = 7, .external_lex_state = 3},
  [347] = {.lex_state = 7, .external_lex_state = 3},
  [348] = {.lex_state = 7, .external_lex_state = 3},
  [349] = {.lex_state = 7, .external_lex_state = 3},
  [350] = {.lex_state = 7, .external_lex_state = 3},
  [351] = {.lex_state = 7, .external_lex_state = 3},
  [352] = {.lex_state = 7, .external_lex_state = 3},
  [353] = {.lex_state = 7, .external_lex_state = 3},
  [354] = {.lex_state = 7, .external_lex_state = 3},
  [355] = {.lex_state = 7, .external_lex_state = 3},
  [356] = {.lex_state = 7, .external_lex_state = 3},
  [357] = {.lex_state = 7, .external_lex_state = 3},
  [358] = {.lex_state = 7, .external_lex_state = 3},
  [359] = {.lex_state = 7, .external_lex_state = 3},
  [360] = {.lex_state = 7, .external_lex_state = 3},
  [361] = {.lex_state = 7, .external_lex_state = 3},
  [362] = {.lex_state = 7, .external_lex_state = 3},
  [363] = {.lex_state = 7, .external_lex_state = 3},
  [364] = {.lex_state = 7, .external_lex_state = 3},
  [365] = {.lex_state = 7, .external_lex_state = 3},
  [366] = {.lex_state = 7, .external_lex_state = 3},
  [367] = {.lex_state = 7, .external_lex_state = 3},
  [368] = {.lex_state = 7, .external_lex_state = 3},
  [369] = {.lex_state = 7, .external_lex_state = 3},
  [370] = {.lex_state = 7, .external_lex_state = 3},
  [371] = {.lex_state = 7, .external_lex_state = 3},
  [372] = {.lex_state = 7, .external_lex_state = 3},
  [373] = {.lex_state = 7, .external_lex_state = 3},
  [374] = {.lex_state = 7, .external_lex_state = 3},
  [375] = {.lex_state = 7, .external_lex_state = 3},
  [376] = {.lex_state = 7, .external_lex_state = 3},
  [377] = {.lex_state = 7, .external_lex_state = 3},
  [378] = {.lex_state = 7, .external_lex_state = 3},
  [379] = {.lex_state = 7, .external_lex_state = 3},
  [380] = {.lex_state = 7, .external_lex_state = 3},
  [381] = {.lex_state = 7, .external_lex_state = 3},
  [382] = {.lex_state = 7, .external_lex_state = 3},
  [383] = {.lex_state = 7, .external_lex_state = 3},
  [384] = {.lex_state = 7, .external_lex_state = 3},
  [385] = {.lex_state = 7, .external_lex_state = 3},
  [386] = {.lex_state = 7, .external_lex_state = 3},
  [387] = {.lex_state = 7, .external_lex_state = 3},
  [388] = {.lex_state = 7, .external_lex_state = 3},
  [389] = {.lex_state = 7, .external_lex_state = 3},
  [390] = {.lex_state = 7, .external_lex_state = 3},
  [391] = {.lex_state = 7, .external_lex_state = 3},
  [392] = {.lex_state = 7, .external_lex_state = 3},
  [393] = {.lex_state = 7, .external_lex_state = 3},
  [394] = {.lex_state = 7, .external_lex_state = 3},
  [395] = {.lex_state = 7, .external_lex_state = 3},
  [396] = {.lex_state = 7, .external_lex_state = 3},
  [397] = {.lex_state = 7, .external_lex_state = 3},
  [398] = {.lex_state = 7, .external_lex_state = 3},
  [399] = {.lex_state = 7, .external_lex_state = 3},
  [400] = {.lex_state = 7, .external_lex_state = 3},
  [401] = {.lex_state = 7, .external_lex_state = 3},
  [402] = {.lex_state = 7, .external_lex_state = 3},
  [403] = {.lex_state = 7, .external_lex_state = 3},
  [404] = {.lex_state = 7, .external_lex_state = 3},
  [405] = {.lex_state = 7, .external_lex_state = 3},
  [406] = {.lex_state = 7, .external_lex_state = 3},
  [407] = {.lex_state = 7, .external_lex_state = 3},
  [408] = {.lex_state = 7, .external_lex_state = 3},
  [409] = {.lex_state = 7, .external_lex_state = 3},
  [410] = {.lex_state = 7, .external_lex_state = 3},
  [411] = {.lex_state = 7, .external_lex_state = 3},
  [412] = {.lex_state = 7, .external_lex_state = 3},
  [413] = {.lex_state = 7, .external_lex_state = 3},
  [414] = {.lex_state = 7, .external_lex_state = 3},
  [415] = {.lex_state = 7, .external_lex_state = 3},
  [416] = {.lex_state = 7, .external_lex_state = 3},
  [417] = {.lex_state = 7, .external_lex_state = 3},
  [418] = {.lex_state = 7, .external_lex_state = 3},
  [419] = {.lex_state = 7, .external_lex_state = 3},
  [420] = {.lex_state = 7, .external_lex_state = 3},
  [421] = {.lex_state = 7, .external_lex_state = 3},
  [422] = {.lex_state = 7, .external_lex_state = 3},
  [423] = {.lex_state = 7, .external_lex_state = 3},
  [424] = {.lex_state = 7, .external_lex_state = 3},
  [425] = {.lex_state = 7, .external_lex_state = 3},
  [426] = {.lex_state = 7, .external_lex_state = 3},
  [427] = {.lex_state = 7, .external_lex_state = 3},
  [428] = {.lex_state = 7, .external_lex_state = 3},
  [429] = {.lex_state = 7, .external_lex_state = 3},
  [430] = {.lex_state = 7, .external_lex_state = 3},
  [431] = {.lex_state = 7, .external_lex_state = 3},
  [432] = {.lex_state = 7, .external_lex_state = 3},
  [433] = {.lex_state = 7, .external_lex_state = 3},
  [434] = {.lex_state = 7, .external_lex_state = 3},
  [435] = {.lex_state = 7, .external_lex_state = 3},
  [436] = {.lex_state = 7, .external_lex_state = 3},
  [437] = {.lex_state = 7, .external_lex_state = 3},
  [438] = {.lex_state = 7, .external_lex_state = 3},
  [439] = {.lex_state = 7, .external_lex_state = 3},
  [440] = {.lex_state = 7, .external_lex_state = 3},
  [441] = {.lex_state = 7, .external_lex_state = 3},
  [442] = {.lex_state = 7, .external_lex_state = 3},
  [443] = {.lex_state = 7, .external_lex_state = 3},
  [444] = {.lex_state = 7, .external_lex_state = 3},
  [445] = {.lex_state = 7, .external_lex_state = 3},
  [446] = {.lex_state = 7, .external_lex_state = 3},
  [447] = {.lex_state = 7, .external_lex_state = 3},
  [448] = {.lex_state = 7, .external_lex_state = 3},
  [449] = {.lex_state = 7, .external_lex_state = 3},
  [450] = {.lex_state = 7, .external_lex_state = 3},
  [451] = {.lex_state = 7, .external_lex_state = 3},
  [452] = {.lex_state = 7, .external_lex_state = 3},
  [453] = {.lex_state = 7, .external_lex_state = 3},
  [454] = {.lex_state = 7, .external_lex_state = 3},
  [455] = {.lex_state = 7, .external_lex_state = 3},
  [456] = {.lex_state = 7, .external_lex_state = 3},
  [457] = {.lex_state = 7, .external_lex_state = 3},
  [458] = {.lex_state = 7, .external_lex_state = 3},
  [459] = {.lex_state = 7, .external_lex_state = 3},
  [460] = {.lex_state = 7, .external_lex_state = 3},
  [461] = {.lex_state = 7, .external_lex_state = 3},
  [462] = {.lex_state = 7, .external_lex_state = 3},
  [463] = {.lex_state = 7, .external_lex_state = 3},
  [464] = {.lex_state = 7, .external_lex_state = 3},
  [465] = {.lex_state = 7, .external_lex_state = 3},
  [466] = {.lex_state = 7, .external_lex_state = 3},
  [467] = {.lex_state = 7, .external_lex_state = 3},
  [468] = {.lex_state = 7, .external_lex_state = 3},
  [469] = {.lex_state = 7, .external_lex_state = 3},
  [470] = {.lex_state = 7, .external_lex_state = 3},
  [471] = {.lex_state = 7, .external_lex_state = 3},
  [472] = {.lex_state = 7, .external_lex_state = 3},
  [473] = {.lex_state = 7, .external_lex_state = 3},
  [474] = {.lex_state = 7, .external_lex_state = 3},
  [475] = {.lex_state = 7, .external_lex_state = 3},
  [476] = {.lex_state = 7, .external_lex_state = 3},
  [477] = {.lex_state = 7, .external_lex_state = 3},
  [478] = {.lex_state = 7, .external_lex_state = 3},
  [479] = {.lex_state = 7, .external_lex_state = 3},
  [480] = {.lex_state = 7, .external_lex_state = 3},
  [481] = {.lex_state = 7, .external_lex_state = 3},
  [482] = {.lex_state = 7, .external_lex_state = 3},
  [483] = {.lex_state = 7, .external_lex_state = 3},
  [484] = {.lex_state = 7, .external_lex_state = 3},
  [485] = {.lex_state = 7, .external_lex_state = 3},
  [486] = {.lex_state = 7, .external_lex_state = 3},
  [487] = {.lex_state = 7, .external_lex_state = 3},
  [488] = {.lex_state = 7, .external_lex_state = 3},
  [489] = {.lex_state = 7, .external_lex_state = 3},
  [490] = {.lex_state = 7, .external_lex_state = 3},
  [491] = {.lex_state = 7, .external_lex_state = 3},
  [492] = {.lex_state = 7, .external_lex_state = 3},
  [493] = {.lex_state = 7, .external_lex_state = 3},
  [494] = {.lex_state = 7, .external_lex_state = 3},
  [495] = {.lex_state = 7, .external_lex_state = 3},
  [496] = {.lex_state = 7, .external_lex_state = 3},
  [497] = {.lex_state = 7, .external_lex_state = 3},
  [498] = {.lex_state = 7, .external_lex_state = 3},
  [499] = {.lex_state = 7, .external_lex_state = 3},
  [500] = {.lex_state = 7, .external_lex_state = 3},
  [501] = {.lex_state = 7, .external_lex_state = 3},
  [502] = {.lex_state = 7, .external_lex_state = 3},
  [503] = {.lex_state = 7, .external_lex_state = 3},
  [504] = {.lex_state = 7, .external_lex_state = 3},
  [505] = {.lex_state = 7, .external_lex_state = 3},
  [506] = {.lex_state = 7, .external_lex_state = 3},
  [507] = {.lex_state = 7, .external_lex_state = 3},
  [508] = {.lex_state = 7, .external_lex_state = 3},
  [509] = {.lex_state = 7, .external_lex_state = 3},
  [510] = {.lex_state = 7, .external_lex_state = 3},
  [511] = {.lex_state = 7, .external_lex_state = 3},
  [512] = {.lex_state = 7, .external_lex_state = 3},
  [513] = {.lex_state = 7, .external_lex_state = 3},
  [514] = {.lex_state = 7, .external_lex_state = 3},
  [515] = {.lex_state = 7, .external_lex_state = 3},
  [516] = {.lex_state = 7, .external_lex_state = 3},
  [517] = {.lex_state = 7, .external_lex_state = 3},
  [518] = {.lex_state = 7, .external_lex_state = 3},
  [519] = {.lex_state = 7, .external_lex_state = 3},
  [520] = {.lex_state = 7, .external_lex_state = 3},
  [521] = {.lex_state = 7, .external_lex_state = 3},
  [522] = {.lex_state = 7, .external_lex_state = 3},
  [523] = {.lex_state = 7, .external_lex_state = 3},
  [524] = {.lex_state = 7, .external_lex_state = 3},
  [525] = {.lex_state = 7, .external_lex_state = 3},
  [526] = {.lex_state = 3, .external_lex_state = 3},
  [527] = {.lex_state = 3, .external_lex_state = 3},
  [528] = {.lex_state = 3, .external_lex_state = 3},
  [529] = {.lex_state = 3, .external_lex_state = 3},
  [530] = {.lex_state = 3, .external_lex_state = 3},
  [531] = {.lex_state = 3, .external_lex_state = 3},
  [532] = {.lex_state = 3, .external_lex_state = 3},
  [533] = {.lex_state = 3, .external_lex_state = 3},
  [534] = {.lex_state = 3, .external_lex_state = 3},
  [535] = {.lex_state = 3, .external_lex_state = 3},
  [536] = {.lex_state = 3, .external_lex_state = 3},
  [537] = {.lex_state = 3, .external_lex_state = 3},
  [538] = {.lex_state = 3, .external_lex_state = 3},
  [539] = {.lex_state = 3, .external_lex_state = 3},
  [540] = {.lex_state = 3, .external_lex_state = 3},
  [541] = {.lex_state = 3, .external_lex_state = 3},
  [542] = {.lex_state = 3, .external_lex_state = 3},
  [543] = {.lex_state = 3, .external_lex_state = 3},
  [544] = {.lex_state = 3, .external_lex_state = 3},
  [545] = {.lex_state = 3, .external_lex_state = 3},
  [546] = {.lex_state = 3, .external_lex_state = 3},
  [547] = {.lex_state = 3, .external_lex_state = 3},
  [548] = {.lex_state = 3, .external_lex_state = 3},
  [549] = {.lex_state = 3, .external_lex_state = 3},
  [550] = {.lex_state = 3, .external_lex_state = 3},
  [551] = {.lex_state = 3, .external_lex_state = 3},
  [552] = {.lex_state = 3, .external_lex_state = 3},
  [553] = {.lex_state = 4, .external_lex_state = 3},
  [554] = {.lex_state = 4, .external_lex_state = 3},
  [555] = {.lex_state = 4, .external_lex_state = 3},
  [556] = {.lex_state = 4, .external_lex_state = 3},
  [557] = {.lex_state = 4, .external_lex_state = 3},
  [558] = {.lex_state = 4, .external_lex_state = 3},
  [559] = {.lex_state = 4, .external_lex_state = 3},
  [560] = {.lex_state = 4, .external_lex_state = 3},
  [561] = {.lex_state = 4, .external_lex_state = 3},
  [562] = {.lex_state = 4, .external_lex_state = 3},
  [563] = {.lex_state = 4, .external_lex_state = 3},
  [564] = {.lex_state = 4, .external_lex_state = 3},
  [565] = {.lex_state = 4, .external_lex_state = 3},
  [566] = {.lex_state = 4, .external_lex_state = 3},
  [567] = {.lex_state = 4, .external_lex_state = 3},
  [568] = {.lex_state = 4, .external_lex_state = 3},
  [569] = {.lex_state = 4, .external_lex_state = 3},
  [570] = {.lex_state = 4, .external_lex_state = 3},
  [571] = {.lex_state = 4, .external_lex_state = 3},
  [572] = {.lex_state = 4, .external_lex_state = 3},
  [573] = {.lex_state = 4, .external_lex_state = 3},
  [574] = {.lex_state = 4, .external_lex_state = 3},
  [575] = {.lex_state = 4, .external_lex_state = 3},
  [576] = {.lex_state = 4, .external_lex_state = 3},
  [577] = {.lex_state = 4, .external_lex_state = 3},
  [578] = {.lex_state = 4, .external_lex_state = 3},
  [579] = {.lex_state = 4, .external_lex_state = 3},
  [580] = {.lex_state = 4, .external_lex_state = 3},
  [581] = {.lex_state = 4, .external_lex_state = 3},
  [582] = {.lex_state = 4, .external_lex_state = 3},
  [583] = {.lex_state = 4, .external_lex_state = 3},
  [584] = {.lex_state = 7, .external_lex_state = 3},
  [585] = {.lex_state = 7, .external_lex_state = 3},
  [586] = {.lex_state = 7, .external_lex_state = 3},
  [587] = {.lex_state = 4, .external_lex_state = 3},
  [588] = {.lex_state = 4, .external_lex_state = 3},
  [589] = {.lex_state = 4, .external_lex_state = 3},
  [590] = {.lex_state = 7, .external_lex_state = 3},
  [591] = {.lex_state = 4, .external_lex_state = 3},
  [592] = {.lex_state = 4, .external_lex_state = 3},
  [593] = {.lex_state = 4, .external_lex_state = 3},
  [594] = {.lex_state = 7, .external_lex_state = 3},
  [595] = {.lex_state = 4, .external_lex_state = 3},
  [596] = {.lex_state = 7, .external_lex_state = 3},
  [597] = {.lex_state = 7, .external_lex_state = 3},
  [598] = {.lex_state = 7, .external_lex_state = 3},
  [599] = {.lex_state = 4, .external_lex_state = 3},
  [600] = {.lex_state = 7, .external_lex_state = 3},
  [601] = {.lex_state = 7, .external_lex_state = 3},
  [602] = {.lex_state = 7, .external_lex_state = 3},
  [603] = {.lex_state = 4, .external_lex_state = 3},
  [604] = {.lex_state = 4, .external_lex_state = 3},
  [605] = {.lex_state = 7, .external_lex_state = 3},
  [606] = {.lex_state = 7, .external_lex_state = 3},
  [607] = {.lex_state = 7, .external_lex_state = 3},
  [608] = {.lex_state = 7, .external_lex_state = 3},
  [609] = {.lex_state = 7, .external_lex_state = 3},
  [610] = {.lex_state = 7, .external_lex_state = 3},
  [611] = {.lex_state = 7, .external_lex_state = 3},
  [612] = {.lex_state = 7, .external_lex_state = 3},
  [613] = {.lex_state = 7, .external_lex_state = 3},
  [614] = {.lex_state = 7, .external_lex_state = 3},
  [615] = {.lex_state = 7, .external_lex_state = 3},
  [616] = {.lex_state = 7, .external_lex_state = 3},
  [617] = {.lex_state = 7, .external_lex_state = 3},
  [618] = {.lex_state = 7, .external_lex_state = 3},
  [619] = {.lex_state = 7, .external_lex_state = 3},
  [620] = {.lex_state = 3, .external_lex_state = 3},
  [621] = {.lex_state = 3, .external_lex_state = 3},
  [622] = {.lex_state = 3, .external_lex_state = 3},
  [623] = {.lex_state = 3, .external_lex_state = 3},
  [624] = {.lex_state = 3, .external_lex_state = 3},
  [625] = {.lex_state = 3, .external_lex_state = 3},
  [626] = {.lex_state = 3, .external_lex_state = 3},
  [627] = {.lex_state = 3, .external_lex_state = 3},
  [628] = {.lex_state = 3, .external_lex_state = 3},
  [629] = {.lex_state = 3, .external_lex_state = 3},
  [630] = {.lex_state = 3, .external_lex_state = 3},
  [631] = {.lex_state = 3, .external_lex_state = 3},
  [632] = {.lex_state = 3, .external_lex_state = 3},
  [633] = {.lex_state = 3, .external_lex_state = 3},
  [634] = {.lex_state = 3, .external_lex_state = 3},
  [635] = {.lex_state = 3, .external_lex_state = 3},
  [636] = {.lex_state = 3, .external_lex_state = 3},
  [637] = {.lex_state = 3, .external_lex_state = 3},
  [638] = {.lex_state = 3, .external_lex_state = 3},
  [639] = {.lex_state = 3, .external_lex_state = 3},
  [640] = {.lex_state = 3, .external_lex_state = 3},
  [641] = {.lex_state = 4, .external_lex_state = 3},
  [642] = {.lex_state = 4, .external_lex_state = 3},
  [643] = {.lex_state = 4, .external_lex_state = 3},
  [644] = {.lex_state = 4, .external_lex_state = 3},
  [645] = {.lex_state = 4, .external_lex_state = 3},
  [646] = {.lex_state = 4, .external_lex_state = 3},
  [647] = {.lex_state = 4, .external_lex_state = 3},
  [648] = {.lex_state = 4, .external_lex_state = 3},
  [649] = {.lex_state = 4, .external_lex_state = 3},
  [650] = {.lex_state = 4, .external_lex_state = 3},
  [651] = {.lex_state = 4, .external_lex_state = 3},
  [652] = {.lex_state = 4, .external_lex_state = 3},
  [653] = {.lex_state = 4, .external_lex_state = 3},
  [654] = {.lex_state = 4, .external_lex_state = 3},
  [655] = {.lex_state = 4, .external_lex_state = 3},
  [656] = {.lex_state = 4, .external_lex_state = 3},
  [657] = {.lex_state = 4, .external_lex_state = 3},
  [658] = {.lex_state = 4, .external_lex_state = 3},
  [659] = {.lex_state = 4, .external_lex_state = 3},
  [660] = {.lex_state = 4, .external_lex_state = 3},
  [661] = {.lex_state = 11, .external_lex_state = 4},
  [662] = {.lex_state = 11, .external_lex_state = 4},
  [663] = {.lex_state = 11, .external_lex_state = 4},
  [664] = {.lex_state = 11, .external_lex_state = 4},
  [665] = {.lex_state = 11, .external_lex_state = 4},
  [666] = {.lex_state = 11, .external_lex_state = 4},
  [667] = {.lex_state = 11, .external_lex_state = 4},
  [668] = {.lex_state = 11, .external_lex_state = 4},
  [669] = {.lex_state = 11, .external_lex_state = 4},
  [670] = {.lex_state = 11, .external_lex_state = 4},
  [671] = {.lex_state = 11, .external_lex_state = 4},
  [672] = {.lex_state = 6, .external_lex_state = 3},
  [673] = {.lex_state = 6, .external_lex_state = 3},
  [674] = {.lex_state = 6, .external_lex_state = 3},
  [675] = {.lex_state = 6, .external_lex_state = 3},
  [676] = {.lex_state = 11, .external_lex_state = 4},
  [677] = {.lex_state = 6, .external_lex_state = 3},
  [678] = {.lex_state = 11, .external_lex_state = 4},
  [679] = {.lex_state = 6, .external_lex_state = 3},
  [680] = {.lex_state = 11, .external_lex_state = 4},
  [681] = {.lex_state = 11, .external_lex_state = 4},
  [682] = {.lex_state = 11, .external_lex_state = 4},
  [683] = {.lex_state = 11, .external_lex_state = 4},
  [684] = {.lex_state = 6, .external_lex_state = 3},
  [685] = {.lex_state = 6, .external_lex_state = 3},
  [686] = {.lex_state = 6, .external_lex_state = 3},
  [687] = {.lex_state = 11, .external_lex_state = 4},
  [688] = {.lex_state = 6, .external_lex_state = 3},
  [689] = {.lex_state = 11, .external_lex_state = 4},
  [690] = {.lex_state = 6, .external_lex_state = 3},
  [691] = {.lex_state = 6, .external_lex_state = 3},
  [692] = {.lex_state = 11, .external_lex_state = 4},
  [693] = {.lex_state = 6, .external_lex_state = 3},
  [694] = {.lex_state = 6, .external_lex_state = 3},
  [695] = {.lex_state = 6, .external_lex_state = 3},
  [696] = {.lex_state = 11, .external_lex_state = 4},
  [697] = {.lex_state = 11, .external_lex_state = 4},
  [698] = {.lex_state = 7, .external_lex_state = 3},
  [699] = {.lex_state = 7, .external_lex_state = 3},
  [700] = {.lex_state = 7, .external_lex_state = 3},
  [701] = {.lex_state = 7, .external_lex_state = 3},
  [702] = {.lex_state = 7, .external_lex_state = 3},
  [703] = {.lex_state = 7, .external_lex_state = 3},
  [704] = {.lex_state = 7, .external_lex_state = 3},
  [705] = {.lex_state = 7, .external_lex_state = 3},
  [706] = {.lex_state = 7, .external_lex_state = 3},
  [707] = {.lex_state = 7, .external_lex_state = 3},
  [708] = {.lex_state = 7, .external_lex_state = 3},
  [709] = {.lex_state = 7, .external_lex_state = 3},
  [710] = {.lex_state = 7, .external_lex_state = 3},
  [711] = {.lex_state = 7, .external_lex_state = 3},
  [712] = {.lex_state = 7, .external_lex_state = 3},
  [713] = {.lex_state = 7, .external_lex_state = 3},
  [714] = {.lex_state = 7, .external_lex_state = 3},
  [715] = {.lex_state = 7, .external_lex_state = 3},
  [716] = {.lex_state = 7, .external_lex_state = 3},
  [717] = {.lex_state = 7, .external_lex_state = 3},
  [718] = {.lex_state = 7, .external_lex_state = 3},
  [719] = {.lex_state = 7, .external_lex_state = 3},
  [720] = {.lex_state = 7, .external_lex_state = 3},
  [721] = {.lex_state = 7, .external_lex_state = 3},
  [722] = {.lex_state = 7, .external_lex_state = 3},
  [723] = {.lex_state = 7, .external_lex_state = 3},
  [724] = {.lex_state = 7, .external_lex_state = 3},
  [725] = {.lex_state = 7, .external_lex_state = 3},
  [726] = {.lex_state = 7, .external_lex_state = 3},
  [727] = {.lex_state = 7, .external_lex_state = 3},
  [728] = {.lex_state = 7, .external_lex_state = 3},
  [729] = {.lex_state = 7, .external_lex_state = 3},
  [730] = {.lex_state = 7, .external_lex_state = 3},
  [731] = {.lex_state = 7, .external_lex_state = 3},
  [732] = {.lex_state = 7, .external_lex_state = 3},
  [733] = {.lex_state = 7, .external_lex_state = 3},
  [734] = {.lex_state = 7, .external_lex_state = 3},
  [735] = {.lex_state = 7, .external_lex_state = 3},
  [736] = {.lex_state = 7, .external_lex_state = 3},
  [737] = {.lex_state = 7, .external_lex_state = 3},
  [738] = {.lex_state = 7, .external_lex_state = 3},
  [739] = {.lex_state = 7, .external_lex_state = 3},
  [740] = {.lex_state = 7, .external_lex_state = 3},
  [741] = {.lex_state = 7, .external_lex_state = 3},
  [742] = {.lex_state = 7, .external_lex_state = 3},
  [743] = {.lex_state = 7, .external_lex_state = 3},
  [744] = {.lex_state = 7, .external_lex_state = 3},
  [745] = {.lex_state = 7, .external_lex_state = 3},
  [746] = {.lex_state = 7, .external_lex_state = 3},
  [747] = {.lex_state = 7, .external_lex_state = 3},
  [748] = {.lex_state = 7, .external_lex_state = 3},
  [749] = {.lex_state = 7, .external_lex_state = 3},
  [750] = {.lex_state = 7, .external_lex_state = 3},
  [751] = {.lex_state = 7, .external_lex_state = 3},
  [752] = {.lex_state = 7, .external_lex_state = 3},
  [753] = {.lex_state = 7, .external_lex_state = 3},
  [754] = {.lex_state = 7, .external_lex_state = 3},
  [755] = {.lex_state = 7, .external_lex_state = 3},
  [756] = {.lex_state = 7, .external_lex_state = 3},
  [757] = {.lex_state = 7, .external_lex_state = 3},
  [758] = {.lex_state = 7, .external_lex_state = 3},
  [759] = {.lex_state = 7, .external_lex_state = 3},
  [760] = {.lex_state = 7, .external_lex_state = 3},
  [761] = {.lex_state = 7, .external_lex_state = 3},
  [762] = {.lex_state = 7, .external_lex_state = 3},
  [763] = {.lex_state = 7, .external_lex_state = 3},
  [764] = {.lex_state = 7, .external_lex_state = 3},
  [765] = {.lex_state = 7, .external_lex_state = 3},
  [766] = {.lex_state = 7, .external_lex_state = 3},
  [767] = {.lex_state = 7, .external_lex_state = 3},
  [768] = {.lex_state = 7, .external_lex_state = 3},
  [769] = {.lex_state = 7, .external_lex_state = 3},
  [770] = {.lex_state = 7, .external_lex_state = 3},
  [771] = {.lex_state = 7, .external_lex_state = 3},
  [772] = {.lex_state = 7, .external_lex_state = 3},
  [773] = {.lex_state = 7, .external_lex_state = 3},
  [774] = {.lex_state = 7, .external_lex_state = 3},
  [775] = {.lex_state = 7, .external_lex_state = 3},
  [776] = {.lex_state = 7, .external_lex_state = 3},
  [777] = {.lex_state = 7, .external_lex_state = 3},
  [778] = {.lex_state = 7, .external_lex_state = 3},
  [779] = {.lex_state = 7, .external_lex_state = 3},
  [780] = {.lex_state = 7, .external_lex_state = 3},
  [781] = {.lex_state = 7, .external_lex_state = 3},
  [782] = {.lex_state = 7, .external_lex_state = 3},
  [783] = {.lex_state = 7, .external_lex_state = 3},
  [784] = {.lex_state = 7, .external_lex_state = 3},
  [785] = {.lex_state = 7, .external_lex_state = 3},
  [786] = {.lex_state = 7, .external_lex_state = 3},
  [787] = {.lex_state = 7, .external_lex_state = 3},
  [788] = {.lex_state = 7, .external_lex_state = 3},
  [789] = {.lex_state = 7, .external_lex_state = 3},
  [790] = {.lex_state = 7, .external_lex_state = 3},
  [791] = {.lex_state = 7, .external_lex_state = 3},
  [792] = {.lex_state = 7, .external_lex_state = 3},
  [793] = {.lex_state = 7, .external_lex_state = 3},
  [794] = {.lex_state = 7, .external_lex_state = 3},
  [795] = {.lex_state = 7, .external_lex_state = 3},
  [796] = {.lex_state = 7, .external_lex_state = 3},
  [797] = {.lex_state = 7, .external_lex_state = 3},
  [798] = {.lex_state = 7, .external_lex_state = 3},
  [799] = {.lex_state = 7, .external_lex_state = 3},
  [800] = {.lex_state = 7, .external_lex_state = 3},
  [801] = {.lex_state = 7, .external_lex_state = 3},
  [802] = {.lex_state = 7, .external_lex_state = 3},
  [803] = {.lex_state = 7, .external_lex_state = 3},
  [804] = {.lex_state = 7, .external_lex_state = 3},
  [805] = {.lex_state = 7, .external_lex_state = 3},
  [806] = {.lex_state = 7, .external_lex_state = 3},
  [807] = {.lex_state = 7, .external_lex_state = 3},
  [808] = {.lex_state = 7, .external_lex_state = 3},
  [809] = {.lex_state = 7, .external_lex_state = 3},
  [810] = {.lex_state = 7, .external_lex_state = 3},
  [811] = {.lex_state = 7, .external_lex_state = 3},
  [812] = {.lex_state = 7, .external_lex_state = 3},
  [813] = {.lex_state = 7, .external_lex_state = 3},
  [814] = {.lex_state = 7, .external_lex_state = 3},
  [815] = {.lex_state = 7, .external_lex_state = 3},
  [816] = {.lex_state = 7, .external_lex_state = 3},
  [817] = {.lex_state = 7, .external_lex_state = 3},
  [818] = {.lex_state = 7, .external_lex_state = 3},
  [819] = {.lex_state = 7, .external_lex_state = 3},
  [820] = {.lex_state = 7, .external_lex_state = 3},
  [821] = {.lex_state = 7, .external_lex_state = 3},
  [822] = {.lex_state = 7, .external_lex_state = 3},
  [823] = {.lex_state = 7, .external_lex_state = 3},
  [824] = {.lex_state = 7, .external_lex_state = 3},
  [825] = {.lex_state = 7, .external_lex_state = 3},
  [826] = {.lex_state = 7, .external_lex_state = 3},
  [827] = {.lex_state = 7, .external_lex_state = 3},
  [828] = {.lex_state = 7, .external_lex_state = 3},
  [829] = {.lex_state = 7, .external_lex_state = 3},
  [830] = {.lex_state = 7, .external_lex_state = 3},
  [831] = {.lex_state = 7, .external_lex_state = 3},
  [832] = {.lex_state = 7, .external_lex_state = 3},
  [833] = {.lex_state = 7, .external_lex_state = 3},
  [834] = {.lex_state = 7, .external_lex_state = 3},
  [835] = {.lex_state = 7, .external_lex_state = 3},
  [836] = {.lex_state = 7, .external_lex_state = 3},
  [837] = {.lex_state = 7, .external_lex_state = 3},
  [838] = {.lex_state = 7, .external_lex_state = 3},
  [839] = {.lex_state = 7, .external_lex_state = 3},
  [840] = {.lex_state = 7, .external_lex_state = 3},
  [841] = {.lex_state = 7, .external_lex_state = 3},
  [842] = {.lex_state = 7, .external_lex_state = 3},
  [843] = {.lex_state = 7, .external_lex_state = 3},
  [844] = {.lex_state = 7, .external_lex_state = 3},
  [845] = {.lex_state = 7, .external_lex_state = 3},
  [846] = {.lex_state = 7, .external_lex_state = 3},
  [847] = {.lex_state = 7, .external_lex_state = 3},
  [848] = {.lex_state = 7, .external_lex_state = 3},
  [849] = {.lex_state = 7, .external_lex_state = 3},
  [850] = {.lex_state = 7, .external_lex_state = 3},
  [851] = {.lex_state = 7, .external_lex_state = 3},
  [852] = {.lex_state = 7, .external_lex_state = 3},
  [853] = {.lex_state = 7, .external_lex_state = 3},
  [854] = {.lex_state = 7, .external_lex_state = 3},
  [855] = {.lex_state = 7, .external_lex_state = 3},
  [856] = {.lex_state = 7, .external_lex_state = 3},
  [857] = {.lex_state = 7, .external_lex_state = 3},
  [858] = {.lex_state = 7, .external_lex_state = 3},
  [859] = {.lex_state = 7, .external_lex_state = 3},
  [860] = {.lex_state = 7, .external_lex_state = 3},
  [861] = {.lex_state = 7, .external_lex_state = 3},
  [862] = {.lex_state = 7, .external_lex_state = 3},
  [863] = {.lex_state = 7, .external_lex_state = 3},
  [864] = {.lex_state = 7, .external_lex_state = 3},
  [865] = {.lex_state = 7, .external_lex_state = 3},
  [866] = {.lex_state = 7, .external_lex_state = 3},
  [867] = {.lex_state = 7, .external_lex_state = 3},
  [868] = {.lex_state = 7, .external_lex_state = 3},
  [869] = {.lex_state = 7, .external_lex_state = 3},
  [870] = {.lex_state = 7, .external_lex_state = 3},
  [871] = {.lex_state = 7, .external_lex_state = 3},
  [872] = {.lex_state = 7, .external_lex_state = 3},
  [873] = {.lex_state = 7, .external_lex_state = 3},
  [874] = {.lex_state = 7, .external_lex_state = 3},
  [875] = {.lex_state = 7, .external_lex_state = 3},
  [876] = {.lex_state = 7, .external_lex_state = 3},
  [877] = {.lex_state = 7, .external_lex_state = 3},
  [878] = {.lex_state = 7, .external_lex_state = 3},
  [879] = {.lex_state = 7, .external_lex_state = 3},
  [880] = {.lex_state = 7, .external_lex_state = 3},
  [881] = {.lex_state = 7, .external_lex_state = 3},
  [882] = {.lex_state = 7, .external_lex_state = 3},
  [883] = {.lex_state = 7, .external_lex_state = 3},
  [884] = {.lex_state = 7, .external_lex_state = 3},
  [885] = {.lex_state = 7, .external_lex_state = 3},
  [886] = {.lex_state = 7, .external_lex_state = 3},
  [887] = {.lex_state = 7, .external_lex_state = 3},
  [888] = {.lex_state = 7, .external_lex_state = 3},
  [889] = {.lex_state = 7, .external_lex_state = 3},
  [890] = {.lex_state = 7, .external_lex_state = 3},
  [891] = {.lex_state = 7, .external_lex_state = 3},
  [892] = {.lex_state = 7, .external_lex_state = 3},
  [893] = {.lex_state = 7, .external_lex_state = 3},
  [894] = {.lex_state = 7, .external_lex_state = 3},
  [895] = {.lex_state = 7, .external_lex_state = 3},
  [896] = {.lex_state = 7, .external_lex_state = 3},
  [897] = {.lex_state = 7, .external_lex_state = 3},
  [898] = {.lex_state = 7, .external_lex_state = 3},
  [899] = {.lex_state = 7, .external_lex_state = 3},
  [900] = {.lex_state = 7, .external_lex_state = 3},
  [901] = {.lex_state = 7, .external_lex_state = 3},
  [902] = {.lex_state = 7, .external_lex_state = 3},
  [903] = {.lex_state = 7, .external_lex_state = 3},
  [904] = {.lex_state = 7, .external_lex_state = 3},
  [905] = {.lex_state = 7, .external_lex_state = 3},
  [906] = {.lex_state = 7, .external_lex_state = 3},
  [907] = {.lex_state = 7, .external_lex_state = 3},
  [908] = {.lex_state = 7, .external_lex_state = 3},
  [909] = {.lex_state = 7, .external_lex_state = 3},
  [910] = {.lex_state = 7, .external_lex_state = 3},
  [911] = {.lex_state = 7, .external_lex_state = 3},
  [912] = {.lex_state = 7, .external_lex_state = 3},
  [913] = {.lex_state = 7, .external_lex_state = 3},
  [914] = {.lex_state = 7, .external_lex_state = 3},
  [915] = {.lex_state = 7, .external_lex_state = 3},
  [916] = {.lex_state = 7, .external_lex_state = 3},
  [917] = {.lex_state = 7, .external_lex_state = 3},
  [918] = {.lex_state = 7, .external_lex_state = 3},
  [919] = {.lex_state = 7, .external_lex_state = 3},
  [920] = {.lex_state = 7, .external_lex_state = 3},
  [921] = {.lex_state = 7, .external_lex_state = 3},
  [922] = {.lex_state = 7, .external_lex_state = 3},
  [923] = {.lex_state = 7, .external_lex_state = 3},
  [924] = {.lex_state = 7, .external_lex_state = 3},
  [925] = {.lex_state = 7, .external_lex_state = 3},
  [926] = {.lex_state = 7, .external_lex_state = 3},
  [927] = {.lex_state = 7, .external_lex_state = 3},
  [928] = {.lex_state = 7, .external_lex_state = 3},
  [929] = {.lex_state = 7, .external_lex_state = 3},
  [930] = {.lex_state = 7, .external_lex_state = 3},
  [931] = {.lex_state = 7, .external_lex_state = 3},
  [932] = {.lex_state = 7, .external_lex_state = 3},
  [933] = {.lex_state = 7, .external_lex_state = 3},
  [934] = {.lex_state = 7, .external_lex_state = 3},
  [935] = {.lex_state = 7, .external_lex_state = 3},
  [936] = {.lex_state = 7, .external_lex_state = 3},
  [937] = {.lex_state = 7, .external_lex_state = 3},
  [938] = {.lex_state = 7, .external_lex_state = 3},
  [939] = {.lex_state = 7, .external_lex_state = 3},
  [940] = {.lex_state = 7, .external_lex_state = 3},
  [941] = {.lex_state = 7, .external_lex_state = 3},
  [942] = {.lex_state = 7, .external_lex_state = 3},
  [943] = {.lex_state = 7, .external_lex_state = 3},
  [944] = {.lex_state = 7, .external_lex_state = 3},
  [945] = {.lex_state = 7, .external_lex_state = 3},
  [946] = {.lex_state = 7, .external_lex_state = 3},
  [947] = {.lex_state = 7, .external_lex_state = 3},
  [948] = {.lex_state = 7, .external_lex_state = 3},
  [949] = {.lex_state = 7, .external_lex_state = 3},
  [950] = {.lex_state = 7, .external_lex_state = 3},
  [951] = {.lex_state = 7, .external_lex_state = 3},
  [952] = {.lex_state = 7, .external_lex_state = 3},
  [953] = {.lex_state = 7, .external_lex_state = 3},
  [954] = {.lex_state = 7, .external_lex_state = 3},
  [955] = {.lex_state = 7, .external_lex_state = 3},
  [956] = {.lex_state = 7, .external_lex_state = 3},
  [957] = {.lex_state = 7, .external_lex_state = 3},
  [958] = {.lex_state = 7, .external_lex_state = 3},
  [959] = {.lex_state = 7, .external_lex_state = 3},
  [960] = {.lex_state = 7, .external_lex_state = 3},
  [961] = {.lex_state = 7, .external_lex_state = 3},
  [962] = {.lex_state = 7, .external_lex_state = 3},
  [963] = {.lex_state = 7, .external_lex_state = 3},
  [964] = {.lex_state = 7, .external_lex_state = 3},
  [965] = {.lex_state = 7, .external_lex_state = 3},
  [966] = {.lex_state = 7, .external_lex_state = 3},
  [967] = {.lex_state = 7, .external_lex_state = 3},
  [968] = {.lex_state = 7, .external_lex_state = 3},
  [969] = {.lex_state = 7, .external_lex_state = 3},
  [970] = {.lex_state = 7, .external_lex_state = 3},
  [971] = {.lex_state = 7, .external_lex_state = 3},
  [972] = {.lex_state = 7, .external_lex_state = 3},
  [973] = {.lex_state = 7, .external_lex_state = 3},
  [974] = {.lex_state = 7, .external_lex_state = 3},
  [975] = {.lex_state = 7, .external_lex_state = 3},
  [976] = {.lex_state = 7, .external_lex_state = 3},
  [977] = {.lex_state = 7, .external_lex_state = 3},
  [978] = {.lex_state = 7, .external_lex_state = 3},
  [979] = {.lex_state = 7, .external_lex_state = 3},
  [980] = {.lex_state = 7, .external_lex_state = 3},
  [981] = {.lex_state = 7, .external_lex_state = 3},
  [982] = {.lex_state = 7, .external_lex_state = 3},
  [983] = {.lex_state = 7, .external_lex_state = 3},
  [984] = {.lex_state = 7, .external_lex_state = 3},
  [985] = {.lex_state = 7, .external_lex_state = 3},
  [986] = {.lex_state = 7, .external_lex_state = 3},
  [987] = {.lex_state = 7, .external_lex_state = 3},
  [988] = {.lex_state = 7, .external_lex_state = 3},
  [989] = {.lex_state = 7, .external_lex_state = 3},
  [990] = {.lex_state = 7, .external_lex_state = 3},
  [991] = {.lex_state = 7, .external_lex_state = 3},
  [992] = {.lex_state = 7, .external_lex_state = 3},
  [993] = {.lex_state = 7, .external_lex_state = 3},
  [994] = {.lex_state = 7, .external_lex_state = 3},
  [995] = {.lex_state = 7, .external_lex_state = 3},
  [996] = {.lex_state = 7, .external_lex_state = 3},
  [997] = {.lex_state = 7, .external_lex_state = 3},
  [998] = {.lex_state = 7, .external_lex_state = 3},
  [999] = {.lex_state = 7, .external_lex_state = 3},
  [1000] = {.lex_state = 7, .external_lex_state = 3},
  [1001] = {.lex_state = 7, .external_lex_state = 3},
  [1002] = {.lex_state = 7, .external_lex_state = 3},
  [1003] = {.lex_state = 7, .external_lex_state = 3},
  [1004] = {.lex_state = 7, .external_lex_state = 3},
  [1005] = {.lex_state = 7, .external_lex_state = 3},
  [1006] = {.lex_state = 7, .external_lex_state = 3},
  [1007] = {.lex_state = 7, .external_lex_state = 3},
  [1008] = {.lex_state = 7, .external_lex_state = 3},
  [1009] = {.lex_state = 7, .external_lex_state = 3},
  [1010] = {.lex_state = 7, .external_lex_state = 3},
  [1011] = {.lex_state = 7, .external_lex_state = 3},
  [1012] = {.lex_state = 7, .external_lex_state = 3},
  [1013] = {.lex_state = 7, .external_lex_state = 3},
  [1014] = {.lex_state = 7, .external_lex_state = 3},
  [1015] = {.lex_state = 7, .external_lex_state = 3},
  [1016] = {.lex_state = 7, .external_lex_state = 3},
  [1017] = {.lex_state = 7, .external_lex_state = 3},
  [1018] = {.lex_state = 7, .external_lex_state = 3},
  [1019] = {.lex_state = 7, .external_lex_state = 3},
  [1020] = {.lex_state = 7, .external_lex_state = 3},
  [1021] = {.lex_state = 7, .external_lex_state = 3},
  [1022] = {.lex_state = 7, .external_lex_state = 3},
  [1023] = {.lex_state = 7, .external_lex_state = 3},
  [1024] = {.lex_state = 7, .external_lex_state = 3},
  [1025] = {.lex_state = 7, .external_lex_state = 3},
  [1026] = {.lex_state = 7, .external_lex_state = 3},
  [1027] = {.lex_state = 7, .external_lex_state = 3},
  [1028] = {.lex_state = 7, .external_lex_state = 3},
  [1029] = {.lex_state = 7, .external_lex_state = 3},
  [1030] = {.lex_state = 7, .external_lex_state = 3},
  [1031] = {.lex_state = 7, .external_lex_state = 3},
  [1032] = {.lex_state = 7, .external_lex_state = 3},
  [1033] = {.lex_state = 7, .external_lex_state = 3},
  [1034] = {.lex_state = 7, .external_lex_state = 3},
  [1035] = {.lex_state = 7, .external_lex_state = 3},
  [1036] = {.lex_state = 7, .external_lex_state = 3},
  [1037] = {.lex_state = 7, .external_lex_state = 3},
  [1038] = {.lex_state = 7, .external_lex_state = 3},
  [1039] = {.lex_state = 7, .external_lex_state = 3},
  [1040] = {.lex_state = 7, .external_lex_state = 3},
  [1041] = {.lex_state = 7, .external_lex_state = 3},
  [1042] = {.lex_state = 7, .external_lex_state = 3},
  [1043] = {.lex_state = 7, .external_lex_state = 3},
  [1044] = {.lex_state = 7, .external_lex_state = 3},
  [1045] = {.lex_state = 7, .external_lex_state = 3},
  [1046] = {.lex_state = 7, .external_lex_state = 3},
  [1047] = {.lex_state = 7, .external_lex_state = 3},
  [1048] = {.lex_state = 7, .external_lex_state = 3},
  [1049] = {.lex_state = 7, .external_lex_state = 3},
  [1050] = {.lex_state = 7, .external_lex_state = 3},
  [1051] = {.lex_state = 7, .external_lex_state = 3},
  [1052] = {.lex_state = 7, .external_lex_state = 3},
  [1053] = {.lex_state = 7, .external_lex_state = 3},
  [1054] = {.lex_state = 7, .external_lex_state = 3},
  [1055] = {.lex_state = 7, .external_lex_state = 3},
  [1056] = {.lex_state = 7, .external_lex_state = 3},
  [1057] = {.lex_state = 7, .external_lex_state = 3},
  [1058] = {.lex_state = 7, .external_lex_state = 3},
  [1059] = {.lex_state = 7, .external_lex_state = 3},
  [1060] = {.lex_state = 7, .external_lex_state = 3},
  [1061] = {.lex_state = 7, .external_lex_state = 3},
  [1062] = {.lex_state = 7, .external_lex_state = 3},
  [1063] = {.lex_state = 7, .external_lex_state = 3},
  [1064] = {.lex_state = 7, .external_lex_state = 3},
  [1065] = {.lex_state = 7, .external_lex_state = 3},
  [1066] = {.lex_state = 7, .external_lex_state = 3},
  [1067] = {.lex_state = 7, .external_lex_state = 3},
  [1068] = {.lex_state = 7, .external_lex_state = 3},
  [1069] = {.lex_state = 7, .external_lex_state = 3},
  [1070] = {.lex_state = 7, .external_lex_state = 3},
  [1071] = {.lex_state = 7, .external_lex_state = 3},
  [1072] = {.lex_state = 7, .external_lex_state = 3},
  [1073] = {.lex_state = 7, .external_lex_state = 3},
  [1074] = {.lex_state = 7, .external_lex_state = 3},
  [1075] = {.lex_state = 7, .external_lex_state = 3},
  [1076] = {.lex_state = 7, .external_lex_state = 3},
  [1077] = {.lex_state = 7, .external_lex_state = 3},
  [1078] = {.lex_state = 7, .external_lex_state = 3},
  [1079] = {.lex_state = 7, .external_lex_state = 3},
  [1080] = {.lex_state = 7, .external_lex_state = 3},
  [1081] = {.lex_state = 7, .external_lex_state = 3},
  [1082] = {.lex_state = 7, .external_lex_state = 3},
  [1083] = {.lex_state = 7, .external_lex_state = 3},
  [1084] = {.lex_state = 7, .external_lex_state = 3},
  [1085] = {.lex_state = 7, .external_lex_state = 3},
  [1086] = {.lex_state = 7, .external_lex_state = 3},
  [1087] = {.lex_state = 7, .external_lex_state = 3},
  [1088] = {.lex_state = 7, .external_lex_state = 3},
  [1089] = {.lex_state = 7, .external_lex_state = 3},
  [1090] = {.lex_state = 7, .external_lex_state = 3},
  [1091] = {.lex_state = 7, .external_lex_state = 3},
  [1092] = {.lex_state = 7, .external_lex_state = 3},
  [1093] = {.lex_state = 7, .external_lex_state = 3},
  [1094] = {.lex_state = 7, .external_lex_state = 3},
  [1095] = {.lex_state = 7, .external_lex_state = 3},
  [1096] = {.lex_state = 7, .external_lex_state = 3},
  [1097] = {.lex_state = 7, .external_lex_state = 3},
  [1098] = {.lex_state = 7, .external_lex_state = 3},
  [1099] = {.lex_state = 7, .external_lex_state = 3},
  [1100] = {.lex_state = 7, .external_lex_state = 3},
  [1101] = {.lex_state = 7, .external_lex_state = 3},
  [1102] = {.lex_state = 7, .external_lex_state = 3},
  [1103] = {.lex_state = 7, .external_lex_state = 3},
  [1104] = {.lex_state = 7, .external_lex_state = 3},
  [1105] = {.lex_state = 7, .external_lex_state = 3},
  [1106] = {.lex_state = 7, .external_lex_state = 3},
  [1107] = {.lex_state = 7, .external_lex_state = 3},
  [1108] = {.lex_state = 7, .external_lex_state = 3},
  [1109] = {.lex_state = 7, .external_lex_state = 3},
  [1110] = {.lex_state = 7, .external_lex_state = 3},
  [1111] = {.lex_state = 7, .external_lex_state = 3},
  [1112] = {.lex_state = 7, .external_lex_state = 3},
  [1113] = {.lex_state = 7, .external_lex_state = 3},
  [1114] = {.lex_state = 7, .external_lex_state = 3},
  [1115] = {.lex_state = 7, .external_lex_state = 3},
  [1116] = {.lex_state = 7, .external_lex_state = 3},
  [1117] = {.lex_state = 7, .external_lex_state = 3},
  [1118] = {.lex_state = 7, .external_lex_state = 3},
  [1119] = {.lex_state = 7, .external_lex_state = 3},
  [1120] = {.lex_state = 7, .external_lex_state = 3},
  [1121] = {.lex_state = 7, .external_lex_state = 3},
  [1122] = {.lex_state = 7, .external_lex_state = 3},
  [1123] = {.lex_state = 7, .external_lex_state = 3},
  [1124] = {.lex_state = 7, .external_lex_state = 3},
  [1125] = {.lex_state = 7, .external_lex_state = 3},
  [1126] = {.lex_state = 7, .external_lex_state = 3},
  [1127] = {.lex_state = 7, .external_lex_state = 3},
  [1128] = {.lex_state = 7, .external_lex_state = 3},
  [1129] = {.lex_state = 7, .external_lex_state = 3},
  [1130] = {.lex_state = 7, .external_lex_state = 3},
  [1131] = {.lex_state = 7, .external_lex_state = 3},
  [1132] = {.lex_state = 7, .external_lex_state = 3},
  [1133] = {.lex_state = 7, .external_lex_state = 3},
  [1134] = {.lex_state = 7, .external_lex_state = 3},
  [1135] = {.lex_state = 7, .external_lex_state = 3},
  [1136] = {.lex_state = 7, .external_lex_state = 3},
  [1137] = {.lex_state = 7, .external_lex_state = 3},
  [1138] = {.lex_state = 7, .external_lex_state = 3},
  [1139] = {.lex_state = 7, .external_lex_state = 3},
  [1140] = {.lex_state = 7, .external_lex_state = 3},
  [1141] = {.lex_state = 7, .external_lex_state = 3},
  [1142] = {.lex_state = 7, .external_lex_state = 3},
  [1143] = {.lex_state = 7, .external_lex_state = 3},
  [1144] = {.lex_state = 7, .external_lex_state = 3},
  [1145] = {.lex_state = 7, .external_lex_state = 3},
  [1146] = {.lex_state = 7, .external_lex_state = 3},
  [1147] = {.lex_state = 7, .external_lex_state = 3},
  [1148] = {.lex_state = 7, .external_lex_state = 3},
  [1149] = {.lex_state = 7, .external_lex_state = 3},
  [1150] = {.lex_state = 7, .external_lex_state = 3},
  [1151] = {.lex_state = 7, .external_lex_state = 3},
  [1152] = {.lex_state = 7, .external_lex_state = 3},
  [1153] = {.lex_state = 7, .external_lex_state = 3},
  [1154] = {.lex_state = 7, .external_lex_state = 3},
  [1155] = {.lex_state = 7, .external_lex_state = 3},
  [1156] = {.lex_state = 7, .external_lex_state = 3},
  [1157] = {.lex_state = 7, .external_lex_state = 3},
  [1158] = {.lex_state = 7, .external_lex_state = 3},
  [1159] = {.lex_state = 7, .external_lex_state = 3},
  [1160] = {.lex_state = 7, .external_lex_state = 3},
  [1161] = {.lex_state = 7, .external_lex_state = 3},
  [1162] = {.lex_state = 7, .external_lex_state = 3},
  [1163] = {.lex_state = 7, .external_lex_state = 3},
  [1164] = {.lex_state = 7, .external_lex_state = 3},
  [1165] = {.lex_state = 7, .external_lex_state = 3},
  [1166] = {.lex_state = 7, .external_lex_state = 3},
  [1167] = {.lex_state = 7, .external_lex_state = 3},
  [1168] = {.lex_state = 7, .external_lex_state = 3},
  [1169] = {.lex_state = 7, .external_lex_state = 3},
  [1170] = {.lex_state = 7, .external_lex_state = 3},
  [1171] = {.lex_state = 7, .external_lex_state = 3},
  [1172] = {.lex_state = 7, .external_lex_state = 3},
  [1173] = {.lex_state = 7, .external_lex_state = 3},
  [1174] = {.lex_state = 7, .external_lex_state = 3},
  [1175] = {.lex_state = 7, .external_lex_state = 3},
  [1176] = {.lex_state = 7, .external_lex_state = 3},
  [1177] = {.lex_state = 7, .external_lex_state = 3},
  [1178] = {.lex_state = 7, .external_lex_state = 3},
  [1179] = {.lex_state = 7, .external_lex_state = 3},
  [1180] = {.lex_state = 7, .external_lex_state = 3},
  [1181] = {.lex_state = 7, .external_lex_state = 3},
  [1182] = {.lex_state = 7, .external_lex_state = 3},
  [1183] = {.lex_state = 7, .external_lex_state = 3},
  [1184] = {.lex_state = 7, .external_lex_state = 3},
  [1185] = {.lex_state = 7, .external_lex_state = 3},
  [1186] = {.lex_state = 7, .external_lex_state = 3},
  [1187] = {.lex_state = 7, .external_lex_state = 3},
  [1188] = {.lex_state = 7, .external_lex_state = 3},
  [1189] = {.lex_state = 7, .external_lex_state = 3},
  [1190] = {.lex_state = 7, .external_lex_state = 3},
  [1191] = {.lex_state = 7, .external_lex_state = 3},
  [1192] = {.lex_state = 7, .external_lex_state = 3},
  [1193] = {.lex_state = 7, .external_lex_state = 3},
  [1194] = {.lex_state = 7, .external_lex_state = 3},
  [1195] = {.lex_state = 7, .external_lex_state = 3},
  [1196] = {.lex_state = 7, .external_lex_state = 3},
  [1197] = {.lex_state = 7, .external_lex_state = 3},
  [1198] = {.lex_state = 7, .external_lex_state = 3},
  [1199] = {.lex_state = 7, .external_lex_state = 3},
  [1200] = {.lex_state = 7, .external_lex_state = 3},
  [1201] = {.lex_state = 7, .external_lex_state = 3},
  [1202] = {.lex_state = 7, .external_lex_state = 3},
  [1203] = {.lex_state = 7, .external_lex_state = 3},
  [1204] = {.lex_state = 7, .external_lex_state = 3},
  [1205] = {.lex_state = 7, .external_lex_state = 3},
  [1206] = {.lex_state = 7, .external_lex_state = 3},
  [1207] = {.lex_state = 7, .external_lex_state = 3},
  [1208] = {.lex_state = 7, .external_lex_state = 3},
  [1209] = {.lex_state = 7, .external_lex_state = 3},
  [1210] = {.lex_state = 7, .external_lex_state = 3},
  [1211] = {.lex_state = 7, .external_lex_state = 3},
  [1212] = {.lex_state = 7, .external_lex_state = 3},
  [1213] = {.lex_state = 7, .external_lex_state = 3},
  [1214] = {.lex_state = 7, .external_lex_state = 3},
  [1215] = {.lex_state = 7, .external_lex_state = 3},
  [1216] = {.lex_state = 7, .external_lex_state = 3},
  [1217] = {.lex_state = 7, .external_lex_state = 3},
  [1218] = {.lex_state = 7, .external_lex_state = 3},
  [1219] = {.lex_state = 7, .external_lex_state = 3},
  [1220] = {.lex_state = 7, .external_lex_state = 3},
  [1221] = {.lex_state = 7, .external_lex_state = 3},
  [1222] = {.lex_state = 7, .external_lex_state = 3},
  [1223] = {.lex_state = 7, .external_lex_state = 3},
  [1224] = {.lex_state = 7, .external_lex_state = 3},
  [1225] = {.lex_state = 7, .external_lex_state = 3},
  [1226] = {.lex_state = 7, .external_lex_state = 3},
  [1227] = {.lex_state = 7, .external_lex_state = 3},
  [1228] = {.lex_state = 7, .external_lex_state = 3},
  [1229] = {.lex_state = 7, .external_lex_state = 3},
  [1230] = {.lex_state = 7, .external_lex_state = 3},
  [1231] = {.lex_state = 7, .external_lex_state = 3},
  [1232] = {.lex_state = 7, .external_lex_state = 3},
  [1233] = {.lex_state = 7, .external_lex_state = 3},
  [1234] = {.lex_state = 7, .external_lex_state = 3},
  [1235] = {.lex_state = 7, .external_lex_state = 3},
  [1236] = {.lex_state = 7, .external_lex_state = 3},
  [1237] = {.lex_state = 7, .external_lex_state = 3},
  [1238] = {.lex_state = 7, .external_lex_state = 3},
  [1239] = {.lex_state = 7, .external_lex_state = 3},
  [1240] = {.lex_state = 7, .external_lex_state = 3},
  [1241] = {.lex_state = 7, .external_lex_state = 3},
  [1242] = {.lex_state = 7, .external_lex_state = 3},
  [1243] = {.lex_state = 7, .external_lex_state = 3},
  [1244] = {.lex_state = 7, .external_lex_state = 3},
  [1245] = {.lex_state = 7, .external_lex_state = 3},
  [1246] = {.lex_state = 7, .external_lex_state = 3},
  [1247] = {.lex_state = 7, .external_lex_state = 3},
  [1248] = {.lex_state = 7, .external_lex_state = 3},
  [1249] = {.lex_state = 7, .external_lex_state = 3},
  [1250] = {.lex_state = 7, .external_lex_state = 3},
  [1251] = {.lex_state = 7, .external_lex_state = 3},
  [1252] = {.lex_state = 7, .external_lex_state = 3},
  [1253] = {.lex_state = 7, .external_lex_state = 3},
  [1254] = {.lex_state = 7, .external_lex_state = 3},
  [1255] = {.lex_state = 7, .external_lex_state = 3},
  [1256] = {.lex_state = 7, .external_lex_state = 3},
  [1257] = {.lex_state = 7, .external_lex_state = 3},
  [1258] = {.lex_state = 7, .external_lex_state = 3},
  [1259] = {.lex_state = 7, .external_lex_state = 3},
  [1260] = {.lex_state = 7, .external_lex_state = 3},
  [1261] = {.lex_state = 7, .external_lex_state = 3},
  [1262] = {.lex_state = 7, .external_lex_state = 3},
  [1263] = {.lex_state = 7, .external_lex_state = 3},
  [1264] = {.lex_state = 7, .external_lex_state = 3},
  [1265] = {.lex_state = 7, .external_lex_state = 3},
  [1266] = {.lex_state = 7, .external_lex_state = 3},
  [1267] = {.lex_state = 7, .external_lex_state = 3},
  [1268] = {.lex_state = 7, .external_lex_state = 3},
  [1269] = {.lex_state = 7, .external_lex_state = 3},
  [1270] = {.lex_state = 7, .external_lex_state = 3},
  [1271] = {.lex_state = 7, .external_lex_state = 3},
  [1272] = {.lex_state = 7, .external_lex_state = 3},
  [1273] = {.lex_state = 7, .external_lex_state = 3},
  [1274] = {.lex_state = 7, .external_lex_state = 3},
  [1275] = {.lex_state = 7, .external_lex_state = 3},
  [1276] = {.lex_state = 7, .external_lex_state = 3},
  [1277] = {.lex_state = 7, .external_lex_state = 3},
  [1278] = {.lex_state = 7, .external_lex_state = 3},
  [1279] = {.lex_state = 7, .external_lex_state = 3},
  [1280] = {.lex_state = 7, .external_lex_state = 3},
  [1281] = {.lex_state = 7, .external_lex_state = 3},
  [1282] = {.lex_state = 7, .external_lex_state = 3},
  [1283] = {.lex_state = 7, .external_lex_state = 3},
  [1284] = {.lex_state = 7, .external_lex_state = 3},
  [1285] = {.lex_state = 7, .external_lex_state = 3},
  [1286] = {.lex_state = 7, .external_lex_state = 3},
  [1287] = {.lex_state = 7, .external_lex_state = 3},
  [1288] = {.lex_state = 7, .external_lex_state = 3},
  [1289] = {.lex_state = 7, .external_lex_state = 3},
  [1290] = {.lex_state = 7, .external_lex_state = 3},
  [1291] = {.lex_state = 7, .external_lex_state = 3},
  [1292] = {.lex_state = 7, .external_lex_state = 3},
  [1293] = {.lex_state = 7, .external_lex_state = 3},
  [1294] = {.lex_state = 7, .external_lex_state = 3},
  [1295] = {.lex_state = 7, .external_lex_state = 3},
  [1296] = {.lex_state = 7, .external_lex_state = 3},
  [1297] = {.lex_state = 7, .external_lex_state = 3},
  [1298] = {.lex_state = 7, .external_lex_state = 3},
  [1299] = {.lex_state = 7, .external_lex_state = 3},
  [1300] = {.lex_state = 7, .external_lex_state = 3},
  [1301] = {.lex_state = 7, .external_lex_state = 3},
  [1302] = {.lex_state = 7, .external_lex_state = 3},
  [1303] = {.lex_state = 7, .external_lex_state = 3},
  [1304] = {.lex_state = 7, .external_lex_state = 3},
  [1305] = {.lex_state = 7, .external_lex_state = 3},
  [1306] = {.lex_state = 7, .external_lex_state = 3},
  [1307] = {.lex_state = 7, .external_lex_state = 3},
  [1308] = {.lex_state = 7, .external_lex_state = 3},
  [1309] = {.lex_state = 7, .external_lex_state = 3},
  [1310] = {.lex_state = 7, .external_lex_state = 3},
  [1311] = {.lex_state = 7, .external_lex_state = 3},
  [1312] = {.lex_state = 7, .external_lex_state = 3},
  [1313] = {.lex_state = 7, .external_lex_state = 3},
  [1314] = {.lex_state = 7, .external_lex_state = 3},
  [1315] = {.lex_state = 7, .external_lex_state = 3},
  [1316] = {.lex_state = 7, .external_lex_state = 3},
  [1317] = {.lex_state = 7, .external_lex_state = 3},
  [1318] = {.lex_state = 7, .external_lex_state = 3},
  [1319] = {.lex_state = 7, .external_lex_state = 3},
  [1320] = {.lex_state = 7, .external_lex_state = 3},
  [1321] = {.lex_state = 7, .external_lex_state = 3},
  [1322] = {.lex_state = 7, .external_lex_state = 3},
  [1323] = {.lex_state = 7, .external_lex_state = 3},
  [1324] = {.lex_state = 7, .external_lex_state = 3},
  [1325] = {.lex_state = 7, .external_lex_state = 3},
  [1326] = {.lex_state = 7, .external_lex_state = 3},
  [1327] = {.lex_state = 7, .external_lex_state = 3},
  [1328] = {.lex_state = 7, .external_lex_state = 3},
  [1329] = {.lex_state = 7, .external_lex_state = 3},
  [1330] = {.lex_state = 7, .external_lex_state = 3},
  [1331] = {.lex_state = 7, .external_lex_state = 3},
  [1332] = {.lex_state = 7, .external_lex_state = 3},
  [1333] = {.lex_state = 7, .external_lex_state = 3},
  [1334] = {.lex_state = 7, .external_lex_state = 3},
  [1335] = {.lex_state = 7, .external_lex_state = 3},
  [1336] = {.lex_state = 7, .external_lex_state = 3},
  [1337] = {.lex_state = 7, .external_lex_state = 3},
  [1338] = {.lex_state = 7, .external_lex_state = 3},
  [1339] = {.lex_state = 7, .external_lex_state = 3},
  [1340] = {.lex_state = 7, .external_lex_state = 3},
  [1341] = {.lex_state = 7, .external_lex_state = 3},
  [1342] = {.lex_state = 7, .external_lex_state = 3},
  [1343] = {.lex_state = 7, .external_lex_state = 3},
  [1344] = {.lex_state = 7, .external_lex_state = 3},
  [1345] = {.lex_state = 7, .external_lex_state = 3},
  [1346] = {.lex_state = 7, .external_lex_state = 3},
  [1347] = {.lex_state = 7, .external_lex_state = 3},
  [1348] = {.lex_state = 7, .external_lex_state = 3},
  [1349] = {.lex_state = 7, .external_lex_state = 3},
  [1350] = {.lex_state = 7, .external_lex_state = 3},
  [1351] = {.lex_state = 7, .external_lex_state = 3},
  [1352] = {.lex_state = 7, .external_lex_state = 3},
  [1353] = {.lex_state = 7, .external_lex_state = 3},
  [1354] = {.lex_state = 7, .external_lex_state = 3},
  [1355] = {.lex_state = 7, .external_lex_state = 3},
  [1356] = {.lex_state = 7, .external_lex_state = 3},
  [1357] = {.lex_state = 7, .external_lex_state = 3},
  [1358] = {.lex_state = 7, .external_lex_state = 3},
  [1359] = {.lex_state = 7, .external_lex_state = 3},
  [1360] = {.lex_state = 7, .external_lex_state = 3},
  [1361] = {.lex_state = 7, .external_lex_state = 3},
  [1362] = {.lex_state = 7, .external_lex_state = 3},
  [1363] = {.lex_state = 7, .external_lex_state = 3},
  [1364] = {.lex_state = 7, .external_lex_state = 3},
  [1365] = {.lex_state = 7, .external_lex_state = 3},
  [1366] = {.lex_state = 7, .external_lex_state = 3},
  [1367] = {.lex_state = 7, .external_lex_state = 3},
  [1368] = {.lex_state = 7, .external_lex_state = 3},
  [1369] = {.lex_state = 7, .external_lex_state = 3},
  [1370] = {.lex_state = 7, .external_lex_state = 3},
  [1371] = {.lex_state = 7, .external_lex_state = 3},
  [1372] = {.lex_state = 7, .external_lex_state = 3},
  [1373] = {.lex_state = 7, .external_lex_state = 3},
  [1374] = {.lex_state = 7, .external_lex_state = 3},
  [1375] = {.lex_state = 7, .external_lex_state = 3},
  [1376] = {.lex_state = 7, .external_lex_state = 3},
  [1377] = {.lex_state = 7, .external_lex_state = 3},
  [1378] = {.lex_state = 7, .external_lex_state = 3},
  [1379] = {.lex_state = 7, .external_lex_state = 3},
  [1380] = {.lex_state = 7, .external_lex_state = 3},
  [1381] = {.lex_state = 7, .external_lex_state = 3},
  [1382] = {.lex_state = 7, .external_lex_state = 3},
  [1383] = {.lex_state = 7, .external_lex_state = 3},
  [1384] = {.lex_state = 7, .external_lex_state = 3},
  [1385] = {.lex_state = 7, .external_lex_state = 3},
  [1386] = {.lex_state = 7, .external_lex_state = 3},
  [1387] = {.lex_state = 7, .external_lex_state = 3},
  [1388] = {.lex_state = 7, .external_lex_state = 3},
  [1389] = {.lex_state = 7, .external_lex_state = 3},
  [1390] = {.lex_state = 7, .external_lex_state = 3},
  [1391] = {.lex_state = 7, .external_lex_state = 3},
  [1392] = {.lex_state = 7, .external_lex_state = 3},
  [1393] = {.lex_state = 7, .external_lex_state = 3},
  [1394] = {.lex_state = 7, .external_lex_state = 3},
  [1395] = {.lex_state = 7, .external_lex_state = 3},
  [1396] = {.lex_state = 7, .external_lex_state = 3},
  [1397] = {.lex_state = 7, .external_lex_state = 3},
  [1398] = {.lex_state = 7, .external_lex_state = 3},
  [1399] = {.lex_state = 7, .external_lex_state = 3},
  [1400] = {.lex_state = 7, .external_lex_state = 3},
  [1401] = {.lex_state = 7, .external_lex_state = 3},
  [1402] = {.lex_state = 7, .external_lex_state = 3},
  [1403] = {.lex_state = 7, .external_lex_state = 3},
  [1404] = {.lex_state = 7, .external_lex_state = 3},
  [1405] = {.lex_state = 7, .external_lex_state = 3},
  [1406] = {.lex_state = 7, .external_lex_state = 3},
  [1407] = {.lex_state = 7, .external_lex_state = 3},
  [1408] = {.lex_state = 7, .external_lex_state = 3},
  [1409] = {.lex_state = 7, .external_lex_state = 3},
  [1410] = {.lex_state = 7, .external_lex_state = 3},
  [1411] = {.lex_state = 7, .external_lex_state = 3},
  [1412] = {.lex_state = 7, .external_lex_state = 3},
  [1413] = {.lex_state = 7, .external_lex_state = 3},
  [1414] = {.lex_state = 7, .external_lex_state = 3},
  [1415] = {.lex_state = 7, .external_lex_state = 3},
  [1416] = {.lex_state = 7, .external_lex_state = 3},
  [1417] = {.lex_state = 7, .external_lex_state = 3},
  [1418] = {.lex_state = 7, .external_lex_state = 3},
  [1419] = {.lex_state = 7, .external_lex_state = 3},
  [1420] = {.lex_state = 7, .external_lex_state = 3},
  [1421] = {.lex_state = 7, .external_lex_state = 3},
  [1422] = {.lex_state = 7, .external_lex_state = 3},
  [1423] = {.lex_state = 7, .external_lex_state = 3},
  [1424] = {.lex_state = 7, .external_lex_state = 3},
  [1425] = {.lex_state = 7, .external_lex_state = 3},
  [1426] = {.lex_state = 7, .external_lex_state = 3},
  [1427] = {.lex_state = 7, .external_lex_state = 3},
  [1428] = {.lex_state = 7, .external_lex_state = 3},
  [1429] = {.lex_state = 7, .external_lex_state = 3},
  [1430] = {.lex_state = 7, .external_lex_state = 3},
  [1431] = {.lex_state = 7, .external_lex_state = 3},
  [1432] = {.lex_state = 7, .external_lex_state = 3},
  [1433] = {.lex_state = 7, .external_lex_state = 3},
  [1434] = {.lex_state = 7, .external_lex_state = 3},
  [1435] = {.lex_state = 7, .external_lex_state = 3},
  [1436] = {.lex_state = 7, .external_lex_state = 3},
  [1437] = {.lex_state = 7, .external_lex_state = 3},
  [1438] = {.lex_state = 7, .external_lex_state = 3},
  [1439] = {.lex_state = 7, .external_lex_state = 3},
  [1440] = {.lex_state = 7, .external_lex_state = 3},
  [1441] = {.lex_state = 7, .external_lex_state = 3},
  [1442] = {.lex_state = 7, .external_lex_state = 3},
  [1443] = {.lex_state = 7, .external_lex_state = 3},
  [1444] = {.lex_state = 7, .external_lex_state = 3},
  [1445] = {.lex_state = 7, .external_lex_state = 3},
  [1446] = {.lex_state = 7, .external_lex_state = 3},
  [1447] = {.lex_state = 7, .external_lex_state = 3},
  [1448] = {.lex_state = 7, .external_lex_state = 3},
  [1449] = {.lex_state = 7, .external_lex_state = 3},
  [1450] = {.lex_state = 7, .external_lex_state = 3},
  [1451] = {.lex_state = 7, .external_lex_state = 3},
  [1452] = {.lex_state = 7, .external_lex_state = 3},
  [1453] = {.lex_state = 7, .external_lex_state = 3},
  [1454] = {.lex_state = 7, .external_lex_state = 3},
  [1455] = {.lex_state = 7, .external_lex_state = 3},
  [1456] = {.lex_state = 7, .external_lex_state = 3},
  [1457] = {.lex_state = 7, .external_lex_state = 3},
  [1458] = {.lex_state = 7, .external_lex_state = 3},
  [1459] = {.lex_state = 7, .external_lex_state = 3},
  [1460] = {.lex_state = 7, .external_lex_state = 3},
  [1461] = {.lex_state = 7, .external_lex_state = 3},
  [1462] = {.lex_state = 7, .external_lex_state = 3},
  [1463] = {.lex_state = 7, .external_lex_state = 3},
  [1464] = {.lex_state = 7, .external_lex_state = 3},
  [1465] = {.lex_state = 7, .external_lex_state = 3},
  [1466] = {.lex_state = 7, .external_lex_state = 3},
  [1467] = {.lex_state = 7, .external_lex_state = 3},
  [1468] = {.lex_state = 7, .external_lex_state = 3},
  [1469] = {.lex_state = 7, .external_lex_state = 3},
  [1470] = {.lex_state = 7, .external_lex_state = 3},
  [1471] = {.lex_state = 7, .external_lex_state = 3},
  [1472] = {.lex_state = 7, .external_lex_state = 3},
  [1473] = {.lex_state = 7, .external_lex_state = 3},
  [1474] = {.lex_state = 7, .external_lex_state = 3},
  [1475] = {.lex_state = 7, .external_lex_state = 3},
  [1476] = {.lex_state = 7, .external_lex_state = 3},
  [1477] = {.lex_state = 7, .external_lex_state = 3},
  [1478] = {.lex_state = 7, .external_lex_state = 3},
  [1479] = {.lex_state = 7, .external_lex_state = 3},
  [1480] = {.lex_state = 7, .external_lex_state = 3},
  [1481] = {.lex_state = 7, .external_lex_state = 3},
  [1482] = {.lex_state = 7, .external_lex_state = 3},
  [1483] = {.lex_state = 7, .external_lex_state = 3},
  [1484] = {.lex_state = 7, .external_lex_state = 3},
  [1485] = {.lex_state = 7, .external_lex_state = 3},
  [1486] = {.lex_state = 7, .external_lex_state = 3},
  [1487] = {.lex_state = 7, .external_lex_state = 3},
  [1488] = {.lex_state = 7, .external_lex_state = 3},
  [1489] = {.lex_state = 7, .external_lex_state = 3},
  [1490] = {.lex_state = 7, .external_lex_state = 3},
  [1491] = {.lex_state = 7, .external_lex_state = 3},
  [1492] = {.lex_state = 7, .external_lex_state = 3},
  [1493] = {.lex_state = 7, .external_lex_state = 3},
  [1494] = {.lex_state = 7, .external_lex_state = 3},
  [1495] = {.lex_state = 7, .external_lex_state = 3},
  [1496] = {.lex_state = 7, .external_lex_state = 3},
  [1497] = {.lex_state = 7, .external_lex_state = 3},
  [1498] = {.lex_state = 7, .external_lex_state = 3},
  [1499] = {.lex_state = 7, .external_lex_state = 3},
  [1500] = {.lex_state = 7, .external_lex_state = 3},
  [1501] = {.lex_state = 7, .external_lex_state = 3},
  [1502] = {.lex_state = 7, .external_lex_state = 3},
  [1503] = {.lex_state = 7, .external_lex_state = 3},
  [1504] = {.lex_state = 7, .external_lex_state = 3},
  [1505] = {.lex_state = 7, .external_lex_state = 3},
  [1506] = {.lex_state = 7, .external_lex_state = 3},
  [1507] = {.lex_state = 7, .external_lex_state = 3},
  [1508] = {.lex_state = 7, .external_lex_state = 3},
  [1509] = {.lex_state = 7, .external_lex_state = 3},
  [1510] = {.lex_state = 7, .external_lex_state = 3},
  [1511] = {.lex_state = 7, .external_lex_state = 3},
  [1512] = {.lex_state = 7, .external_lex_state = 3},
  [1513] = {.lex_state = 7, .external_lex_state = 3},
  [1514] = {.lex_state = 7, .external_lex_state = 3},
  [1515] = {.lex_state = 7, .external_lex_state = 3},
  [1516] = {.lex_state = 7, .external_lex_state = 3},
  [1517] = {.lex_state = 7, .external_lex_state = 3},
  [1518] = {.lex_state = 7, .external_lex_state = 3},
  [1519] = {.lex_state = 7, .external_lex_state = 3},
  [1520] = {.lex_state = 7, .external_lex_state = 3},
  [1521] = {.lex_state = 7, .external_lex_state = 3},
  [1522] = {.lex_state = 7, .external_lex_state = 3},
  [1523] = {.lex_state = 7, .external_lex_state = 3},
  [1524] = {.lex_state = 7, .external_lex_state = 3},
  [1525] = {.lex_state = 7, .external_lex_state = 3},
  [1526] = {.lex_state = 7, .external_lex_state = 3},
  [1527] = {.lex_state = 7, .external_lex_state = 3},
  [1528] = {.lex_state = 7, .external_lex_state = 3},
  [1529] = {.lex_state = 7, .external_lex_state = 3},
  [1530] = {.lex_state = 7, .external_lex_state = 3},
  [1531] = {.lex_state = 7, .external_lex_state = 3},
  [1532] = {.lex_state = 7, .external_lex_state = 3},
  [1533] = {.lex_state = 7, .external_lex_state = 3},
  [1534] = {.lex_state = 7, .external_lex_state = 3},
  [1535] = {.lex_state = 7, .external_lex_state = 3},
  [1536] = {.lex_state = 7, .external_lex_state = 3},
  [1537] = {.lex_state = 7, .external_lex_state = 3},
  [1538] = {.lex_state = 7, .external_lex_state = 3},
  [1539] = {.lex_state = 7, .external_lex_state = 3},
  [1540] = {.lex_state = 7, .external_lex_state = 3},
  [1541] = {.lex_state = 7, .external_lex_state = 3},
  [1542] = {.lex_state = 7, .external_lex_state = 3},
  [1543] = {.lex_state = 7, .external_lex_state = 3},
  [1544] = {.lex_state = 7, .external_lex_state = 3},
  [1545] = {.lex_state = 7, .external_lex_state = 3},
  [1546] = {.lex_state = 7, .external_lex_state = 3},
  [1547] = {.lex_state = 7, .external_lex_state = 3},
  [1548] = {.lex_state = 7, .external_lex_state = 3},
  [1549] = {.lex_state = 7, .external_lex_state = 3},
  [1550] = {.lex_state = 7, .external_lex_state = 3},
  [1551] = {.lex_state = 7, .external_lex_state = 3},
  [1552] = {.lex_state = 7, .external_lex_state = 3},
  [1553] = {.lex_state = 7, .external_lex_state = 3},
  [1554] = {.lex_state = 7, .external_lex_state = 3},
  [1555] = {.lex_state = 7, .external_lex_state = 3},
  [1556] = {.lex_state = 7, .external_lex_state = 3},
  [1557] = {.lex_state = 7, .external_lex_state = 3},
  [1558] = {.lex_state = 7, .external_lex_state = 3},
  [1559] = {.lex_state = 7, .external_lex_state = 3},
  [1560] = {.lex_state = 7, .external_lex_state = 3},
  [1561] = {.lex_state = 7, .external_lex_state = 3},
  [1562] = {.lex_state = 7, .external_lex_state = 3},
  [1563] = {.lex_state = 7, .external_lex_state = 3},
  [1564] = {.lex_state = 7, .external_lex_state = 3},
  [1565] = {.lex_state = 7, .external_lex_state = 3},
  [1566] = {.lex_state = 7, .external_lex_state = 3},
  [1567] = {.lex_state = 7, .external_lex_state = 3},
  [1568] = {.lex_state = 7, .external_lex_state = 3},
  [1569] = {.lex_state = 7, .external_lex_state = 3},
  [1570] = {.lex_state = 7, .external_lex_state = 3},
  [1571] = {.lex_state = 7, .external_lex_state = 3},
  [1572] = {.lex_state = 7, .external_lex_state = 3},
  [1573] = {.lex_state = 7, .external_lex_state = 3},
  [1574] = {.lex_state = 7, .external_lex_state = 3},
  [1575] = {.lex_state = 7, .external_lex_state = 3},
  [1576] = {.lex_state = 7, .external_lex_state = 3},
  [1577] = {.lex_state = 7, .external_lex_state = 3},
  [1578] = {.lex_state = 7, .external_lex_state = 3},
  [1579] = {.lex_state = 7, .external_lex_state = 3},
  [1580] = {.lex_state = 7, .external_lex_state = 3},
  [1581] = {.lex_state = 7, .external_lex_state = 3},
  [1582] = {.lex_state = 7, .external_lex_state = 3},
  [1583] = {.lex_state = 7, .external_lex_state = 3},
  [1584] = {.lex_state = 7, .external_lex_state = 3},
  [1585] = {.lex_state = 7, .external_lex_state = 3},
  [1586] = {.lex_state = 7, .external_lex_state = 3},
  [1587] = {.lex_state = 7, .external_lex_state = 3},
  [1588] = {.lex_state = 7, .external_lex_state = 3},
  [1589] = {.lex_state = 7, .external_lex_state = 3},
  [1590] = {.lex_state = 7, .external_lex_state = 3},
  [1591] = {.lex_state = 7, .external_lex_state = 3},
  [1592] = {.lex_state = 7, .external_lex_state = 3},
  [1593] = {.lex_state = 7, .external_lex_state = 3},
  [1594] = {.lex_state = 7, .external_lex_state = 3},
  [1595] = {.lex_state = 7, .external_lex_state = 3},
  [1596] = {.lex_state = 7, .external_lex_state = 3},
  [1597] = {.lex_state = 7, .external_lex_state = 3},
  [1598] = {.lex_state = 7, .external_lex_state = 3},
  [1599] = {.lex_state = 7, .external_lex_state = 3},
  [1600] = {.lex_state = 7, .external_lex_state = 3},
  [1601] = {.lex_state = 7, .external_lex_state = 3},
  [1602] = {.lex_state = 7, .external_lex_state = 3},
  [1603] = {.lex_state = 7, .external_lex_state = 3},
  [1604] = {.lex_state = 7, .external_lex_state = 3},
  [1605] = {.lex_state = 7, .external_lex_state = 3},
  [1606] = {.lex_state = 7, .external_lex_state = 3},
  [1607] = {.lex_state = 7, .external_lex_state = 3},
  [1608] = {.lex_state = 7, .external_lex_state = 3},
  [1609] = {.lex_state = 7, .external_lex_state = 3},
  [1610] = {.lex_state = 7, .external_lex_state = 3},
  [1611] = {.lex_state = 7, .external_lex_state = 3},
  [1612] = {.lex_state = 7, .external_lex_state = 3},
  [1613] = {.lex_state = 7, .external_lex_state = 3},
  [1614] = {.lex_state = 7, .external_lex_state = 3},
  [1615] = {.lex_state = 7, .external_lex_state = 3},
  [1616] = {.lex_state = 7, .external_lex_state = 3},
  [1617] = {.lex_state = 7, .external_lex_state = 3},
  [1618] = {.lex_state = 7, .external_lex_state = 3},
  [1619] = {.lex_state = 7, .external_lex_state = 3},
  [1620] = {.lex_state = 7, .external_lex_state = 3},
  [1621] = {.lex_state = 7, .external_lex_state = 3},
  [1622] = {.lex_state = 7, .external_lex_state = 3},
  [1623] = {.lex_state = 7, .external_lex_state = 3},
  [1624] = {.lex_state = 7, .external_lex_state = 3},
  [1625] = {.lex_state = 7, .external_lex_state = 3},
  [1626] = {.lex_state = 7, .external_lex_state = 3},
  [1627] = {.lex_state = 7, .external_lex_state = 3},
  [1628] = {.lex_state = 7, .external_lex_state = 3},
  [1629] = {.lex_state = 7, .external_lex_state = 3},
  [1630] = {.lex_state = 7, .external_lex_state = 3},
  [1631] = {.lex_state = 7, .external_lex_state = 3},
  [1632] = {.lex_state = 7, .external_lex_state = 3},
  [1633] = {.lex_state = 7, .external_lex_state = 3},
  [1634] = {.lex_state = 7, .external_lex_state = 3},
  [1635] = {.lex_state = 7, .external_lex_state = 3},
  [1636] = {.lex_state = 7, .external_lex_state = 3},
  [1637] = {.lex_state = 7, .external_lex_state = 3},
  [1638] = {.lex_state = 7, .external_lex_state = 3},
  [1639] = {.lex_state = 7, .external_lex_state = 3},
  [1640] = {.lex_state = 7, .external_lex_state = 3},
  [1641] = {.lex_state = 7, .external_lex_state = 3},
  [1642] = {.lex_state = 7, .external_lex_state = 3},
  [1643] = {.lex_state = 7, .external_lex_state = 3},
  [1644] = {.lex_state = 7, .external_lex_state = 3},
  [1645] = {.lex_state = 7, .external_lex_state = 3},
  [1646] = {.lex_state = 7, .external_lex_state = 3},
  [1647] = {.lex_state = 7, .external_lex_state = 3},
  [1648] = {.lex_state = 7, .external_lex_state = 3},
  [1649] = {.lex_state = 7, .external_lex_state = 3},
  [1650] = {.lex_state = 7, .external_lex_state = 3},
  [1651] = {.lex_state = 7, .external_lex_state = 3},
  [1652] = {.lex_state = 7, .external_lex_state = 3},
  [1653] = {.lex_state = 7, .external_lex_state = 3},
  [1654] = {.lex_state = 7, .external_lex_state = 3},
  [1655] = {.lex_state = 7, .external_lex_state = 3},
  [1656] = {.lex_state = 7, .external_lex_state = 3},
  [1657] = {.lex_state = 7, .external_lex_state = 3},
  [1658] = {.lex_state = 7, .external_lex_state = 3},
  [1659] = {.lex_state = 7, .external_lex_state = 3},
  [1660] = {.lex_state = 7, .external_lex_state = 3},
  [1661] = {.lex_state = 7, .external_lex_state = 3},
  [1662] = {.lex_state = 7, .external_lex_state = 3},
  [1663] = {.lex_state = 7, .external_lex_state = 3},
  [1664] = {.lex_state = 7, .external_lex_state = 3},
  [1665] = {.lex_state = 7, .external_lex_state = 3},
  [1666] = {.lex_state = 7, .external_lex_state = 3},
  [1667] = {.lex_state = 7, .external_lex_state = 3},
  [1668] = {.lex_state = 7, .external_lex_state = 3},
  [1669] = {.lex_state = 7, .external_lex_state = 3},
  [1670] = {.lex_state = 7, .external_lex_state = 3},
  [1671] = {.lex_state = 7, .external_lex_state = 3},
  [1672] = {.lex_state = 7, .external_lex_state = 3},
  [1673] = {.lex_state = 7, .external_lex_state = 3},
  [1674] = {.lex_state = 7, .external_lex_state = 3},
  [1675] = {.lex_state = 7, .external_lex_state = 3},
  [1676] = {.lex_state = 7, .external_lex_state = 3},
  [1677] = {.lex_state = 7, .external_lex_state = 3},
  [1678] = {.lex_state = 7, .external_lex_state = 3},
  [1679] = {.lex_state = 7, .external_lex_state = 3},
  [1680] = {.lex_state = 7, .external_lex_state = 3},
  [1681] = {.lex_state = 7, .external_lex_state = 3},
  [1682] = {.lex_state = 7, .external_lex_state = 3},
  [1683] = {.lex_state = 7, .external_lex_state = 3},
  [1684] = {.lex_state = 7, .external_lex_state = 3},
  [1685] = {.lex_state = 7, .external_lex_state = 3},
  [1686] = {.lex_state = 7, .external_lex_state = 3},
  [1687] = {.lex_state = 7, .external_lex_state = 3},
  [1688] = {.lex_state = 7, .external_lex_state = 3},
  [1689] = {.lex_state = 7, .external_lex_state = 3},
  [1690] = {.lex_state = 7, .external_lex_state = 3},
  [1691] = {.lex_state = 7, .external_lex_state = 3},
  [1692] = {.lex_state = 7, .external_lex_state = 3},
  [1693] = {.lex_state = 7, .external_lex_state = 3},
  [1694] = {.lex_state = 7, .external_lex_state = 3},
  [1695] = {.lex_state = 7, .external_lex_state = 3},
  [1696] = {.lex_state = 7, .external_lex_state = 3},
  [1697] = {.lex_state = 7, .external_lex_state = 3},
  [1698] = {.lex_state = 7, .external_lex_state = 3},
  [1699] = {.lex_state = 7, .external_lex_state = 3},
  [1700] = {.lex_state = 7, .external_lex_state = 3},
  [1701] = {.lex_state = 7, .external_lex_state = 3},
  [1702] = {.lex_state = 7, .external_lex_state = 3},
  [1703] = {.lex_state = 7, .external_lex_state = 3},
  [1704] = {.lex_state = 7, .external_lex_state = 3},
  [1705] = {.lex_state = 7, .external_lex_state = 3},
  [1706] = {.lex_state = 7, .external_lex_state = 3},
  [1707] = {.lex_state = 7, .external_lex_state = 3},
  [1708] = {.lex_state = 7, .external_lex_state = 3},
  [1709] = {.lex_state = 7, .external_lex_state = 3},
  [1710] = {.lex_state = 7, .external_lex_state = 3},
  [1711] = {.lex_state = 7, .external_lex_state = 3},
  [1712] = {.lex_state = 7, .external_lex_state = 3},
  [1713] = {.lex_state = 7, .external_lex_state = 3},
  [1714] = {.lex_state = 7, .external_lex_state = 3},
  [1715] = {.lex_state = 7, .external_lex_state = 3},
  [1716] = {.lex_state = 7, .external_lex_state = 3},
  [1717] = {.lex_state = 7, .external_lex_state = 3},
  [1718] = {.lex_state = 7, .external_lex_state = 3},
  [1719] = {.lex_state = 7, .external_lex_state = 3},
  [1720] = {.lex_state = 7, .external_lex_state = 3},
  [1721] = {.lex_state = 7, .external_lex_state = 3},
  [1722] = {.lex_state = 7, .external_lex_state = 3},
  [1723] = {.lex_state = 7, .external_lex_state = 3},
  [1724] = {.lex_state = 7, .external_lex_state = 3},
  [1725] = {.lex_state = 7, .external_lex_state = 3},
  [1726] = {.lex_state = 7, .external_lex_state = 3},
  [1727] = {.lex_state = 7, .external_lex_state = 3},
  [1728] = {.lex_state = 7, .external_lex_state = 3},
  [1729] = {.lex_state = 7, .external_lex_state = 3},
  [1730] = {.lex_state = 7, .external_lex_state = 3},
  [1731] = {.lex_state = 7, .external_lex_state = 3},
  [1732] = {.lex_state = 7, .external_lex_state = 3},
  [1733] = {.lex_state = 7, .external_lex_state = 3},
  [1734] = {.lex_state = 7, .external_lex_state = 3},
  [1735] = {.lex_state = 7, .external_lex_state = 3},
  [1736] = {.lex_state = 7, .external_lex_state = 3},
  [1737] = {.lex_state = 7, .external_lex_state = 3},
  [1738] = {.lex_state = 7, .external_lex_state = 3},
  [1739] = {.lex_state = 7, .external_lex_state = 3},
  [1740] = {.lex_state = 7, .external_lex_state = 3},
  [1741] = {.lex_state = 7, .external_lex_state = 3},
  [1742] = {.lex_state = 7, .external_lex_state = 3},
  [1743] = {.lex_state = 7, .external_lex_state = 3},
  [1744] = {.lex_state = 7, .external_lex_state = 3},
  [1745] = {.lex_state = 7, .external_lex_state = 3},
  [1746] = {.lex_state = 7, .external_lex_state = 3},
  [1747] = {.lex_state = 7, .external_lex_state = 3},
  [1748] = {.lex_state = 7, .external_lex_state = 3},
  [1749] = {.lex_state = 7, .external_lex_state = 3},
  [1750] = {.lex_state = 7, .external_lex_state = 3},
  [1751] = {.lex_state = 7, .external_lex_state = 3},
  [1752] = {.lex_state = 7, .external_lex_state = 3},
  [1753] = {.lex_state = 7, .external_lex_state = 3},
  [1754] = {.lex_state = 7, .external_lex_state = 3},
  [1755] = {.lex_state = 7, .external_lex_state = 3},
  [1756] = {.lex_state = 7, .external_lex_state = 3},
  [1757] = {.lex_state = 7, .external_lex_state = 3},
  [1758] = {.lex_state = 7, .external_lex_state = 3},
  [1759] = {.lex_state = 7, .external_lex_state = 3},
  [1760] = {.lex_state = 7, .external_lex_state = 3},
  [1761] = {.lex_state = 7, .external_lex_state = 3},
  [1762] = {.lex_state = 7, .external_lex_state = 3},
  [1763] = {.lex_state = 7, .external_lex_state = 3},
  [1764] = {.lex_state = 7, .external_lex_state = 3},
  [1765] = {.lex_state = 7, .external_lex_state = 3},
  [1766] = {.lex_state = 7, .external_lex_state = 3},
  [1767] = {.lex_state = 7, .external_lex_state = 3},
  [1768] = {.lex_state = 7, .external_lex_state = 3},
  [1769] = {.lex_state = 7, .external_lex_state = 3},
  [1770] = {.lex_state = 7, .external_lex_state = 3},
  [1771] = {.lex_state = 7, .external_lex_state = 3},
  [1772] = {.lex_state = 7, .external_lex_state = 3},
  [1773] = {.lex_state = 7, .external_lex_state = 3},
  [1774] = {.lex_state = 7, .external_lex_state = 3},
  [1775] = {.lex_state = 7, .external_lex_state = 3},
  [1776] = {.lex_state = 7, .external_lex_state = 3},
  [1777] = {.lex_state = 172, .external_lex_state = 2},
  [1778] = {.lex_state = 9, .external_lex_state = 2},
  [1779] = {.lex_state = 9, .external_lex_state = 2},
  [1780] = {.lex_state = 9, .external_lex_state = 2},
  [1781] = {.lex_state = 9, .external_lex_state = 2},
  [1782] = {.lex_state = 9, .external_lex_state = 2},
  [1783] = {.lex_state = 9, .external_lex_state = 2},
  [1784] = {.lex_state = 9, .external_lex_state = 2},
  [1785] = {.lex_state = 9, .external_lex_state = 2},
  [1786] = {.lex_state = 9, .external_lex_state = 2},
  [1787] = {.lex_state = 9, .external_lex_state = 2},
  [1788] = {.lex_state = 9, .external_lex_state = 2},
  [1789] = {.lex_state = 9, .external_lex_state = 2},
  [1790] = {.lex_state = 172, .external_lex_state = 2},
  [1791] = {.lex_state = 172, .external_lex_state = 2},
  [1792] = {.lex_state = 172, .external_lex_state = 2},
  [1793] = {.lex_state = 9, .external_lex_state = 2},
  [1794] = {.lex_state = 9, .external_lex_state = 2},
  [1795] = {.lex_state = 172, .external_lex_state = 2},
  [1796] = {.lex_state = 9, .external_lex_state = 2},
  [1797] = {.lex_state = 9, .external_lex_state = 2},
  [1798] = {.lex_state = 9, .external_lex_state = 2},
  [1799] = {.lex_state = 9, .external_lex_state = 2},
  [1800] = {.lex_state = 172, .external_lex_state = 2},
  [1801] = {.lex_state = 172, .external_lex_state = 2},
  [1802] = {.lex_state = 9, .external_lex_state = 2},
  [1803] = {.lex_state = 172, .external_lex_state = 2},
  [1804] = {.lex_state = 9, .external_lex_state = 2},
  [1805] = {.lex_state = 172, .external_lex_state = 2},
  [1806] = {.lex_state = 172, .external_lex_state = 2},
  [1807] = {.lex_state = 9, .external_lex_state = 2},
  [1808] = {.lex_state = 172, .external_lex_state = 2},
  [1809] = {.lex_state = 172, .external_lex_state = 2},
  [1810] = {.lex_state = 9, .external_lex_state = 2},
  [1811] = {.lex_state = 172, .external_lex_state = 2},
  [1812] = {.lex_state = 172, .external_lex_state = 2},
  [1813] = {.lex_state = 172, .external_lex_state = 2},
  [1814] = {.lex_state = 172, .external_lex_state = 2},
  [1815] = {.lex_state = 9, .external_lex_state = 2},
  [1816] = {.lex_state = 9, .external_lex_state = 2},
  [1817] = {.lex_state = 9, .external_lex_state = 2},
  [1818] = {.lex_state = 9, .external_lex_state = 2},
  [1819] = {.lex_state = 9, .external_lex_state = 2},
  [1820] = {.lex_state = 9, .external_lex_state = 2},
  [1821] = {.lex_state = 9, .external_lex_state = 2},
  [1822] = {.lex_state = 9, .external_lex_state = 2},
  [1823] = {.lex_state = 9, .external_lex_state = 2},
  [1824] = {.lex_state = 9, .external_lex_state = 2},
  [1825] = {.lex_state = 9, .external_lex_state = 2},
  [1826] = {.lex_state = 9, .external_lex_state = 2},
  [1827] = {.lex_state = 9, .external_lex_state = 2},
  [1828] = {.lex_state = 9, .external_lex_state = 2},
  [1829] = {.lex_state = 9, .external_lex_state = 2},
  [1830] = {.lex_state = 9, .external_lex_state = 2},
  [1831] = {.lex_state = 9, .external_lex_state = 2},
  [1832] = {.lex_state = 9, .external_lex_state = 2},
  [1833] = {.lex_state = 9, .external_lex_state = 2},
  [1834] = {.lex_state = 9, .external_lex_state = 2},
  [1835] = {.lex_state = 9, .external_lex_state = 2},
  [1836] = {.lex_state = 9, .external_lex_state = 2},
  [1837] = {.lex_state = 9, .external_lex_state = 2},
  [1838] = {.lex_state = 9, .external_lex_state = 2},
  [1839] = {.lex_state = 9, .external_lex_state = 2},
  [1840] = {.lex_state = 9, .external_lex_state = 2},
  [1841] = {.lex_state = 9, .external_lex_state = 2},
  [1842] = {.lex_state = 9, .external_lex_state = 2},
  [1843] = {.lex_state = 9, .external_lex_state = 2},
  [1844] = {.lex_state = 9, .external_lex_state = 2},
  [1845] = {.lex_state = 9, .external_lex_state = 2},
  [1846] = {.lex_state = 9, .external_lex_state = 2},
  [1847] = {.lex_state = 9, .external_lex_state = 2},
  [1848] = {.lex_state = 9, .external_lex_state = 2},
  [1849] = {.lex_state = 9, .external_lex_state = 2},
  [1850] = {.lex_state = 9, .external_lex_state = 2},
  [1851] = {.lex_state = 9, .external_lex_state = 2},
  [1852] = {.lex_state = 9, .external_lex_state = 2},
  [1853] = {.lex_state = 9, .external_lex_state = 2},
  [1854] = {.lex_state = 9, .external_lex_state = 2},
  [1855] = {.lex_state = 9, .external_lex_state = 2},
  [1856] = {.lex_state = 9, .external_lex_state = 2},
  [1857] = {.lex_state = 9, .external_lex_state = 2},
  [1858] = {.lex_state = 9, .external_lex_state = 2},
  [1859] = {.lex_state = 9, .external_lex_state = 2},
  [1860] = {.lex_state = 9, .external_lex_state = 2},
  [1861] = {.lex_state = 9, .external_lex_state = 2},
  [1862] = {.lex_state = 9, .external_lex_state = 2},
  [1863] = {.lex_state = 9, .external_lex_state = 2},
  [1864] = {.lex_state = 9, .external_lex_state = 2},
  [1865] = {.lex_state = 9, .external_lex_state = 2},
  [1866] = {.lex_state = 9, .external_lex_state = 2},
  [1867] = {.lex_state = 9, .external_lex_state = 2},
  [1868] = {.lex_state = 9, .external_lex_state = 2},
  [1869] = {.lex_state = 9, .external_lex_state = 2},
  [1870] = {.lex_state = 9, .external_lex_state = 2},
  [1871] = {.lex_state = 9, .external_lex_state = 2},
  [1872] = {.lex_state = 9, .external_lex_state = 2},
  [1873] = {.lex_state = 9, .external_lex_state = 2},
  [1874] = {.lex_state = 9, .external_lex_state = 2},
  [1875] = {.lex_state = 9, .external_lex_state = 2},
  [1876] = {.lex_state = 9, .external_lex_state = 2},
  [1877] = {.lex_state = 9, .external_lex_state = 2},
  [1878] = {.lex_state = 9, .external_lex_state = 2},
  [1879] = {.lex_state = 9, .external_lex_state = 2},
  [1880] = {.lex_state = 9, .external_lex_state = 2},
  [1881] = {.lex_state = 9, .external_lex_state = 2},
  [1882] = {.lex_state = 9, .external_lex_state = 2},
  [1883] = {.lex_state = 9, .external_lex_state = 2},
  [1884] = {.lex_state = 9, .external_lex_state = 2},
  [1885] = {.lex_state = 9, .external_lex_state = 2},
  [1886] = {.lex_state = 9, .external_lex_state = 2},
  [1887] = {.lex_state = 9, .external_lex_state = 2},
  [1888] = {.lex_state = 9, .external_lex_state = 2},
  [1889] = {.lex_state = 9, .external_lex_state = 2},
  [1890] = {.lex_state = 9, .external_lex_state = 2},
  [1891] = {.lex_state = 9, .external_lex_state = 2},
  [1892] = {.lex_state = 9, .external_lex_state = 2},
  [1893] = {.lex_state = 9, .external_lex_state = 2},
  [1894] = {.lex_state = 9, .external_lex_state = 2},
  [1895] = {.lex_state = 9, .external_lex_state = 2},
  [1896] = {.lex_state = 9, .external_lex_state = 2},
  [1897] = {.lex_state = 9, .external_lex_state = 2},
  [1898] = {.lex_state = 9, .external_lex_state = 2},
  [1899] = {.lex_state = 9, .external_lex_state = 2},
  [1900] = {.lex_state = 9, .external_lex_state = 2},
  [1901] = {.lex_state = 9, .external_lex_state = 2},
  [1902] = {.lex_state = 9, .external_lex_state = 2},
  [1903] = {.lex_state = 9, .external_lex_state = 2},
  [1904] = {.lex_state = 9, .external_lex_state = 2},
  [1905] = {.lex_state = 9, .external_lex_state = 2},
  [1906] = {.lex_state = 9, .external_lex_state = 2},
  [1907] = {.lex_state = 9, .external_lex_state = 2},
  [1908] = {.lex_state = 9, .external_lex_state = 2},
  [1909] = {.lex_state = 9, .external_lex_state = 2},
  [1910] = {.lex_state = 9, .external_lex_state = 2},
  [1911] = {.lex_state = 9, .external_lex_state = 2},
  [1912] = {.lex_state = 9, .external_lex_state = 2},
  [1913] = {.lex_state = 9, .external_lex_state = 2},
  [1914] = {.lex_state = 9, .external_lex_state = 2},
  [1915] = {.lex_state = 9, .external_lex_state = 2},
  [1916] = {.lex_state = 9, .external_lex_state = 2},
  [1917] = {.lex_state = 9, .external_lex_state = 2},
  [1918] = {.lex_state = 9, .external_lex_state = 2},
  [1919] = {.lex_state = 9, .external_lex_state = 2},
  [1920] = {.lex_state = 9, .external_lex_state = 2},
  [1921] = {.lex_state = 9, .external_lex_state = 2},
  [1922] = {.lex_state = 9, .external_lex_state = 2},
  [1923] = {.lex_state = 9, .external_lex_state = 2},
  [1924] = {.lex_state = 9, .external_lex_state = 2},
  [1925] = {.lex_state = 9, .external_lex_state = 2},
  [1926] = {.lex_state = 9, .external_lex_state = 2},
  [1927] = {.lex_state = 9, .external_lex_state = 2},
  [1928] = {.lex_state = 9, .external_lex_state = 2},
  [1929] = {.lex_state = 9, .external_lex_state = 2},
  [1930] = {.lex_state = 9, .external_lex_state = 2},
  [1931] = {.lex_state = 9, .external_lex_state = 2},
  [1932] = {.lex_state = 9, .external_lex_state = 2},
  [1933] = {.lex_state = 9, .external_lex_state = 2},
  [1934] = {.lex_state = 9, .external_lex_state = 2},
  [1935] = {.lex_state = 9, .external_lex_state = 2},
  [1936] = {.lex_state = 9, .external_lex_state = 2},
  [1937] = {.lex_state = 9, .external_lex_state = 2},
  [1938] = {.lex_state = 9, .external_lex_state = 2},
  [1939] = {.lex_state = 9, .external_lex_state = 2},
  [1940] = {.lex_state = 9, .external_lex_state = 2},
  [1941] = {.lex_state = 9, .external_lex_state = 2},
  [1942] = {.lex_state = 9, .external_lex_state = 2},
  [1943] = {.lex_state = 9, .external_lex_state = 2},
  [1944] = {.lex_state = 9, .external_lex_state = 2},
  [1945] = {.lex_state = 9, .external_lex_state = 2},
  [1946] = {.lex_state = 9, .external_lex_state = 2},
  [1947] = {.lex_state = 9, .external_lex_state = 2},
  [1948] = {.lex_state = 9, .external_lex_state = 2},
  [1949] = {.lex_state = 9, .external_lex_state = 2},
  [1950] = {.lex_state = 9, .external_lex_state = 2},
  [1951] = {.lex_state = 9, .external_lex_state = 2},
  [1952] = {.lex_state = 9, .external_lex_state = 2},
  [1953] = {.lex_state = 9, .external_lex_state = 2},
  [1954] = {.lex_state = 9, .external_lex_state = 2},
  [1955] = {.lex_state = 9, .external_lex_state = 2},
  [1956] = {.lex_state = 9, .external_lex_state = 2},
  [1957] = {.lex_state = 9, .external_lex_state = 2},
  [1958] = {.lex_state = 9, .external_lex_state = 2},
  [1959] = {.lex_state = 9, .external_lex_state = 2},
  [1960] = {.lex_state = 9, .external_lex_state = 2},
  [1961] = {.lex_state = 9, .external_lex_state = 2},
  [1962] = {.lex_state = 9, .external_lex_state = 2},
  [1963] = {.lex_state = 9, .external_lex_state = 2},
  [1964] = {.lex_state = 9, .external_lex_state = 2},
  [1965] = {.lex_state = 9, .external_lex_state = 2},
  [1966] = {.lex_state = 9, .external_lex_state = 2},
  [1967] = {.lex_state = 9, .external_lex_state = 2},
  [1968] = {.lex_state = 9, .external_lex_state = 2},
  [1969] = {.lex_state = 9, .external_lex_state = 2},
  [1970] = {.lex_state = 9, .external_lex_state = 2},
  [1971] = {.lex_state = 9, .external_lex_state = 2},
  [1972] = {.lex_state = 9, .external_lex_state = 2},
  [1973] = {.lex_state = 9, .external_lex_state = 2},
  [1974] = {.lex_state = 9, .external_lex_state = 2},
  [1975] = {.lex_state = 9, .external_lex_state = 2},
  [1976] = {.lex_state = 9, .external_lex_state = 2},
  [1977] = {.lex_state = 9, .external_lex_state = 2},
  [1978] = {.lex_state = 9, .external_lex_state = 2},
  [1979] = {.lex_state = 9, .external_lex_state = 2},
  [1980] = {.lex_state = 9, .external_lex_state = 2},
  [1981] = {.lex_state = 9, .external_lex_state = 2},
  [1982] = {.lex_state = 9, .external_lex_state = 2},
  [1983] = {.lex_state = 9, .external_lex_state = 2},
  [1984] = {.lex_state = 9, .external_lex_state = 2},
  [1985] = {.lex_state = 9, .external_lex_state = 2},
  [1986] = {.lex_state = 9, .external_lex_state = 2},
  [1987] = {.lex_state = 9, .external_lex_state = 2},
  [1988] = {.lex_state = 9, .external_lex_state = 2},
  [1989] = {.lex_state = 9, .external_lex_state = 2},
  [1990] = {.lex_state = 9, .external_lex_state = 2},
  [1991] = {.lex_state = 9, .external_lex_state = 2},
  [1992] = {.lex_state = 9, .external_lex_state = 2},
  [1993] = {.lex_state = 9, .external_lex_state = 2},
  [1994] = {.lex_state = 9, .external_lex_state = 2},
  [1995] = {.lex_state = 9, .external_lex_state = 2},
  [1996] = {.lex_state = 9, .external_lex_state = 2},
  [1997] = {.lex_state = 9, .external_lex_state = 2},
  [1998] = {.lex_state = 9, .external_lex_state = 2},
  [1999] = {.lex_state = 9, .external_lex_state = 2},
  [2000] = {.lex_state = 9, .external_lex_state = 2},
  [2001] = {.lex_state = 9, .external_lex_state = 2},
  [2002] = {.lex_state = 9, .external_lex_state = 2},
  [2003] = {.lex_state = 9, .external_lex_state = 2},
  [2004] = {.lex_state = 9, .external_lex_state = 2},
  [2005] = {.lex_state = 9, .external_lex_state = 2},
  [2006] = {.lex_state = 9, .external_lex_state = 2},
  [2007] = {.lex_state = 9, .external_lex_state = 2},
  [2008] = {.lex_state = 9, .external_lex_state = 2},
  [2009] = {.lex_state = 9, .external_lex_state = 2},
  [2010] = {.lex_state = 9, .external_lex_state = 2},
  [2011] = {.lex_state = 9, .external_lex_state = 2},
  [2012] = {.lex_state = 9, .external_lex_state = 2},
  [2013] = {.lex_state = 9, .external_lex_state = 2},
  [2014] = {.lex_state = 9, .external_lex_state = 2},
  [2015] = {.lex_state = 9, .external_lex_state = 2},
  [2016] = {.lex_state = 9, .external_lex_state = 2},
  [2017] = {.lex_state = 9, .external_lex_state = 2},
  [2018] = {.lex_state = 9, .external_lex_state = 2},
  [2019] = {.lex_state = 9, .external_lex_state = 2},
  [2020] = {.lex_state = 9, .external_lex_state = 2},
  [2021] = {.lex_state = 9, .external_lex_state = 2},
  [2022] = {.lex_state = 9, .external_lex_state = 2},
  [2023] = {.lex_state = 9, .external_lex_state = 2},
  [2024] = {.lex_state = 9, .external_lex_state = 2},
  [2025] = {.lex_state = 9, .external_lex_state = 2},
  [2026] = {.lex_state = 9, .external_lex_state = 2},
  [2027] = {.lex_state = 9, .external_lex_state = 2},
  [2028] = {.lex_state = 9, .external_lex_state = 2},
  [2029] = {.lex_state = 9, .external_lex_state = 2},
  [2030] = {.lex_state = 9, .external_lex_state = 2},
  [2031] = {.lex_state = 9, .external_lex_state = 2},
  [2032] = {.lex_state = 9, .external_lex_state = 2},
  [2033] = {.lex_state = 9, .external_lex_state = 2},
  [2034] = {.lex_state = 9, .external_lex_state = 2},
  [2035] = {.lex_state = 9, .external_lex_state = 2},
  [2036] = {.lex_state = 9, .external_lex_state = 2},
  [2037] = {.lex_state = 9, .external_lex_state = 2},
  [2038] = {.lex_state = 9, .external_lex_state = 2},
  [2039] = {.lex_state = 9, .external_lex_state = 2},
  [2040] = {.lex_state = 9, .external_lex_state = 2},
  [2041] = {.lex_state = 9, .external_lex_state = 2},
  [2042] = {.lex_state = 9, .external_lex_state = 2},
  [2043] = {.lex_state = 9, .external_lex_state = 2},
  [2044] = {.lex_state = 9, .external_lex_state = 2},
  [2045] = {.lex_state = 9, .external_lex_state = 2},
  [2046] = {.lex_state = 9, .external_lex_state = 2},
  [2047] = {.lex_state = 9, .external_lex_state = 2},
  [2048] = {.lex_state = 9, .external_lex_state = 2},
  [2049] = {.lex_state = 9, .external_lex_state = 2},
  [2050] = {.lex_state = 9, .external_lex_state = 2},
  [2051] = {.lex_state = 9, .external_lex_state = 2},
  [2052] = {.lex_state = 9, .external_lex_state = 2},
  [2053] = {.lex_state = 9, .external_lex_state = 2},
  [2054] = {.lex_state = 9, .external_lex_state = 2},
  [2055] = {.lex_state = 9, .external_lex_state = 2},
  [2056] = {.lex_state = 9, .external_lex_state = 2},
  [2057] = {.lex_state = 9, .external_lex_state = 2},
  [2058] = {.lex_state = 9, .external_lex_state = 2},
  [2059] = {.lex_state = 9, .external_lex_state = 2},
  [2060] = {.lex_state = 9, .external_lex_state = 2},
  [2061] = {.lex_state = 9, .external_lex_state = 2},
  [2062] = {.lex_state = 9, .external_lex_state = 2},
  [2063] = {.lex_state = 9, .external_lex_state = 2},
  [2064] = {.lex_state = 9, .external_lex_state = 2},
  [2065] = {.lex_state = 9, .external_lex_state = 2},
  [2066] = {.lex_state = 9, .external_lex_state = 2},
  [2067] = {.lex_state = 9, .external_lex_state = 2},
  [2068] = {.lex_state = 9, .external_lex_state = 2},
  [2069] = {.lex_state = 9, .external_lex_state = 2},
  [2070] = {.lex_state = 9, .external_lex_state = 2},
  [2071] = {.lex_state = 9, .external_lex_state = 2},
  [2072] = {.lex_state = 9, .external_lex_state = 2},
  [2073] = {.lex_state = 9, .external_lex_state = 2},
  [2074] = {.lex_state = 9, .external_lex_state = 2},
  [2075] = {.lex_state = 9, .external_lex_state = 2},
  [2076] = {.lex_state = 9, .external_lex_state = 2},
  [2077] = {.lex_state = 9, .external_lex_state = 2},
  [2078] = {.lex_state = 9, .external_lex_state = 2},
  [2079] = {.lex_state = 9, .external_lex_state = 2},
  [2080] = {.lex_state = 9, .external_lex_state = 2},
  [2081] = {.lex_state = 9, .external_lex_state = 2},
  [2082] = {.lex_state = 9, .external_lex_state = 2},
  [2083] = {.lex_state = 9, .external_lex_state = 2},
  [2084] = {.lex_state = 9, .external_lex_state = 2},
  [2085] = {.lex_state = 9, .external_lex_state = 2},
  [2086] = {.lex_state = 9, .external_lex_state = 2},
  [2087] = {.lex_state = 9, .external_lex_state = 2},
  [2088] = {.lex_state = 9, .external_lex_state = 2},
  [2089] = {.lex_state = 9, .external_lex_state = 2},
  [2090] = {.lex_state = 9, .external_lex_state = 2},
  [2091] = {.lex_state = 9, .external_lex_state = 2},
  [2092] = {.lex_state = 9, .external_lex_state = 2},
  [2093] = {.lex_state = 9, .external_lex_state = 2},
  [2094] = {.lex_state = 9, .external_lex_state = 2},
  [2095] = {.lex_state = 9, .external_lex_state = 2},
  [2096] = {.lex_state = 9, .external_lex_state = 2},
  [2097] = {.lex_state = 9, .external_lex_state = 2},
  [2098] = {.lex_state = 9, .external_lex_state = 2},
  [2099] = {.lex_state = 9, .external_lex_state = 2},
  [2100] = {.lex_state = 11, .external_lex_state = 4},
  [2101] = {.lex_state = 9, .external_lex_state = 2},
  [2102] = {.lex_state = 9, .external_lex_state = 2},
  [2103] = {.lex_state = 9, .external_lex_state = 2},
  [2104] = {.lex_state = 9, .external_lex_state = 2},
  [2105] = {.lex_state = 9, .external_lex_state = 2},
  [2106] = {.lex_state = 9, .external_lex_state = 2},
  [2107] = {.lex_state = 9, .external_lex_state = 2},
  [2108] = {.lex_state = 9, .external_lex_state = 2},
  [2109] = {.lex_state = 9, .external_lex_state = 2},
  [2110] = {.lex_state = 11, .external_lex_state = 4},
  [2111] = {.lex_state = 9, .external_lex_state = 2},
  [2112] = {.lex_state = 9, .external_lex_state = 2},
  [2113] = {.lex_state = 9, .external_lex_state = 2},
  [2114] = {.lex_state = 11, .external_lex_state = 4},
  [2115] = {.lex_state = 9, .external_lex_state = 2},
  [2116] = {.lex_state = 11, .external_lex_state = 4},
  [2117] = {.lex_state = 9, .external_lex_state = 2},
  [2118] = {.lex_state = 11, .external_lex_state = 4},
  [2119] = {.lex_state = 9, .external_lex_state = 2},
  [2120] = {.lex_state = 9, .external_lex_state = 2},
  [2121] = {.lex_state = 9, .external_lex_state = 2},
  [2122] = {.lex_state = 11, .external_lex_state = 4},
  [2123] = {.lex_state = 9, .external_lex_state = 2},
  [2124] = {.lex_state = 11, .external_lex_state = 4},
  [2125] = {.lex_state = 9, .external_lex_state = 2},
  [2126] = {.lex_state = 11, .external_lex_state = 4},
  [2127] = {.lex_state = 9, .external_lex_state = 2},
  [2128] = {.lex_state = 11, .external_lex_state = 4},
  [2129] = {.lex_state = 9, .external_lex_state = 2},
  [2130] = {.lex_state = 9, .external_lex_state = 2},
  [2131] = {.lex_state = 11, .external_lex_state = 4},
  [2132] = {.lex_state = 9, .external_lex_state = 2},
  [2133] = {.lex_state = 9, .external_lex_state = 2},
  [2134] = {.lex_state = 9, .external_lex_state = 2},
  [2135] = {.lex_state = 9, .external_lex_state = 2},
  [2136] = {.lex_state = 9, .external_lex_state = 2},
  [2137] = {.lex_state = 9, .external_lex_state = 2},
  [2138] = {.lex_state = 9, .external_lex_state = 2},
  [2139] = {.lex_state = 9, .external_lex_state = 2},
  [2140] = {.lex_state = 9, .external_lex_state = 2},
  [2141] = {.lex_state = 9, .external_lex_state = 2},
  [2142] = {.lex_state = 9, .external_lex_state = 2},
  [2143] = {.lex_state = 9, .external_lex_state = 2},
  [2144] = {.lex_state = 11, .external_lex_state = 4},
  [2145] = {.lex_state = 11, .external_lex_state = 4},
  [2146] = {.lex_state = 7, .external_lex_state = 3},
  [2147] = {.lex_state = 7, .external_lex_state = 3},
  [2148] = {.lex_state = 7, .external_lex_state = 3},
  [2149] = {.lex_state = 7, .external_lex_state = 3},
  [2150] = {.lex_state = 9, .external_lex_state = 2},
  [2151] = {.lex_state = 7, .external_lex_state = 3},
  [2152] = {.lex_state = 7, .external_lex_state = 3},
  [2153] = {.lex_state = 9, .external_lex_state = 2},
  [2154] = {.lex_state = 9, .external_lex_state = 2},
  [2155] = {.lex_state = 9, .external_lex_state = 2},
  [2156] = {.lex_state = 7, .external_lex_state = 3},
  [2157] = {.lex_state = 9, .external_lex_state = 2},
  [2158] = {.lex_state = 9, .external_lex_state = 2},
  [2159] = {.lex_state = 9, .external_lex_state = 2},
  [2160] = {.lex_state = 9, .external_lex_state = 2},
  [2161] = {.lex_state = 9, .external_lex_state = 2},
  [2162] = {.lex_state = 7, .external_lex_state = 3},
  [2163] = {.lex_state = 7, .external_lex_state = 3},
  [2164] = {.lex_state = 7, .external_lex_state = 3},
  [2165] = {.lex_state = 9, .external_lex_state = 2},
  [2166] = {.lex_state = 7, .external_lex_state = 3},
  [2167] = {.lex_state = 7, .external_lex_state = 3},
  [2168] = {.lex_state = 7, .external_lex_state = 3},
  [2169] = {.lex_state = 7, .external_lex_state = 3},
  [2170] = {.lex_state = 7, .external_lex_state = 3},
  [2171] = {.lex_state = 7, .external_lex_state = 3},
  [2172] = {.lex_state = 7, .external_lex_state = 3},
  [2173] = {.lex_state = 7, .external_lex_state = 3},
  [2174] = {.lex_state = 7, .external_lex_state = 3},
  [2175] = {.lex_state = 7, .external_lex_state = 3},
  [2176] = {.lex_state = 7, .external_lex_state = 3},
  [2177] = {.lex_state = 7, .external_lex_state = 3},
  [2178] = {.lex_state = 7, .external_lex_state = 3},
  [2179] = {.lex_state = 7, .external_lex_state = 3},
  [2180] = {.lex_state = 7, .external_lex_state = 3},
  [2181] = {.lex_state = 7, .external_lex_state = 3},
  [2182] = {.lex_state = 7, .external_lex_state = 3},
  [2183] = {.lex_state = 7, .external_lex_state = 3},
  [2184] = {.lex_state = 7, .external_lex_state = 3},
  [2185] = {.lex_state = 7, .external_lex_state = 3},
  [2186] = {.lex_state = 7, .external_lex_state = 3},
  [2187] = {.lex_state = 7, .external_lex_state = 3},
  [2188] = {.lex_state = 7, .external_lex_state = 3},
  [2189] = {.lex_state = 7, .external_lex_state = 3},
  [2190] = {.lex_state = 7, .external_lex_state = 3},
  [2191] = {.lex_state = 7, .external_lex_state = 3},
  [2192] = {.lex_state = 7, .external_lex_state = 3},
  [2193] = {.lex_state = 7, .external_lex_state = 3},
  [2194] = {.lex_state = 7, .external_lex_state = 3},
  [2195] = {.lex_state = 7, .external_lex_state = 3},
  [2196] = {.lex_state = 7, .external_lex_state = 3},
  [2197] = {.lex_state = 7, .external_lex_state = 3},
  [2198] = {.lex_state = 7, .external_lex_state = 3},
  [2199] = {.lex_state = 7, .external_lex_state = 3},
  [2200] = {.lex_state = 7, .external_lex_state = 3},
  [2201] = {.lex_state = 7, .external_lex_state = 3},
  [2202] = {.lex_state = 7, .external_lex_state = 3},
  [2203] = {.lex_state = 7, .external_lex_state = 3},
  [2204] = {.lex_state = 7, .external_lex_state = 3},
  [2205] = {.lex_state = 7, .external_lex_state = 3},
  [2206] = {.lex_state = 7, .external_lex_state = 3},
  [2207] = {.lex_state = 7, .external_lex_state = 3},
  [2208] = {.lex_state = 7, .external_lex_state = 3},
  [2209] = {.lex_state = 7, .external_lex_state = 3},
  [2210] = {.lex_state = 7, .external_lex_state = 3},
  [2211] = {.lex_state = 7, .external_lex_state = 3},
  [2212] = {.lex_state = 7, .external_lex_state = 3},
  [2213] = {.lex_state = 7, .external_lex_state = 3},
  [2214] = {.lex_state = 7, .external_lex_state = 3},
  [2215] = {.lex_state = 7, .external_lex_state = 3},
  [2216] = {.lex_state = 7, .external_lex_state = 3},
  [2217] = {.lex_state = 7, .external_lex_state = 3},
  [2218] = {.lex_state = 7, .external_lex_state = 3},
  [2219] = {.lex_state = 7, .external_lex_state = 3},
  [2220] = {.lex_state = 7, .external_lex_state = 3},
  [2221] = {.lex_state = 7, .external_lex_state = 3},
  [2222] = {.lex_state = 7, .external_lex_state = 3},
  [2223] = {.lex_state = 7, .external_lex_state = 3},
  [2224] = {.lex_state = 7, .external_lex_state = 3},
  [2225] = {.lex_state = 7, .external_lex_state = 3},
  [2226] = {.lex_state = 7, .external_lex_state = 3},
  [2227] = {.lex_state = 7, .external_lex_state = 3},
  [2228] = {.lex_state = 7, .external_lex_state = 3},
  [2229] = {.lex_state = 7, .external_lex_state = 3},
  [2230] = {.lex_state = 7, .external_lex_state = 3},
  [2231] = {.lex_state = 7, .external_lex_state = 3},
  [2232] = {.lex_state = 7, .external_lex_state = 3},
  [2233] = {.lex_state = 7, .external_lex_state = 3},
  [2234] = {.lex_state = 7, .external_lex_state = 3},
  [2235] = {.lex_state = 7, .external_lex_state = 3},
  [2236] = {.lex_state = 7, .external_lex_state = 3},
  [2237] = {.lex_state = 7, .external_lex_state = 3},
  [2238] = {.lex_state = 7, .external_lex_state = 3},
  [2239] = {.lex_state = 7, .external_lex_state = 3},
  [2240] = {.lex_state = 7, .external_lex_state = 3},
  [2241] = {.lex_state = 7, .external_lex_state = 3},
  [2242] = {.lex_state = 7, .external_lex_state = 3},
  [2243] = {.lex_state = 7, .external_lex_state = 3},
  [2244] = {.lex_state = 7, .external_lex_state = 3},
  [2245] = {.lex_state = 7, .external_lex_state = 3},
  [2246] = {.lex_state = 7, .external_lex_state = 3},
  [2247] = {.lex_state = 7, .external_lex_state = 3},
  [2248] = {.lex_state = 7, .external_lex_state = 3},
  [2249] = {.lex_state = 7, .external_lex_state = 3},
  [2250] = {.lex_state = 7, .external_lex_state = 3},
  [2251] = {.lex_state = 7, .external_lex_state = 3},
  [2252] = {.lex_state = 7, .external_lex_state = 3},
  [2253] = {.lex_state = 7, .external_lex_state = 3},
  [2254] = {.lex_state = 7, .external_lex_state = 3},
  [2255] = {.lex_state = 7, .external_lex_state = 3},
  [2256] = {.lex_state = 7, .external_lex_state = 3},
  [2257] = {.lex_state = 7, .external_lex_state = 3},
  [2258] = {.lex_state = 7, .external_lex_state = 3},
  [2259] = {.lex_state = 7, .external_lex_state = 3},
  [2260] = {.lex_state = 7, .external_lex_state = 3},
  [2261] = {.lex_state = 7, .external_lex_state = 3},
  [2262] = {.lex_state = 7, .external_lex_state = 3},
  [2263] = {.lex_state = 7, .external_lex_state = 3},
  [2264] = {.lex_state = 7, .external_lex_state = 3},
  [2265] = {.lex_state = 7, .external_lex_state = 3},
  [2266] = {.lex_state = 7, .external_lex_state = 3},
  [2267] = {.lex_state = 7, .external_lex_state = 3},
  [2268] = {.lex_state = 7, .external_lex_state = 3},
  [2269] = {.lex_state = 7, .external_lex_state = 3},
  [2270] = {.lex_state = 7, .external_lex_state = 3},
  [2271] = {.lex_state = 7, .external_lex_state = 3},
  [2272] = {.lex_state = 7, .external_lex_state = 3},
  [2273] = {.lex_state = 7, .external_lex_state = 3},
  [2274] = {.lex_state = 7, .external_lex_state = 3},
  [2275] = {.lex_state = 7, .external_lex_state = 3},
  [2276] = {.lex_state = 7, .external_lex_state = 3},
  [2277] = {.lex_state = 7, .external_lex_state = 3},
  [2278] = {.lex_state = 7, .external_lex_state = 3},
  [2279] = {.lex_state = 7, .external_lex_state = 3},
  [2280] = {.lex_state = 7, .external_lex_state = 3},
  [2281] = {.lex_state = 7, .external_lex_state = 3},
  [2282] = {.lex_state = 7, .external_lex_state = 3},
  [2283] = {.lex_state = 7, .external_lex_state = 3},
  [2284] = {.lex_state = 7, .external_lex_state = 3},
  [2285] = {.lex_state = 7, .external_lex_state = 3},
  [2286] = {.lex_state = 7, .external_lex_state = 3},
  [2287] = {.lex_state = 7, .external_lex_state = 3},
  [2288] = {.lex_state = 7, .external_lex_state = 3},
  [2289] = {.lex_state = 7, .external_lex_state = 3},
  [2290] = {.lex_state = 7, .external_lex_state = 3},
  [2291] = {.lex_state = 7, .external_lex_state = 3},
  [2292] = {.lex_state = 7, .external_lex_state = 3},
  [2293] = {.lex_state = 7, .external_lex_state = 3},
  [2294] = {.lex_state = 7, .external_lex_state = 3},
  [2295] = {.lex_state = 7, .external_lex_state = 3},
  [2296] = {.lex_state = 7, .external_lex_state = 3},
  [2297] = {.lex_state = 7, .external_lex_state = 3},
  [2298] = {.lex_state = 7, .external_lex_state = 3},
  [2299] = {.lex_state = 7, .external_lex_state = 3},
  [2300] = {.lex_state = 7, .external_lex_state = 3},
  [2301] = {.lex_state = 7, .external_lex_state = 3},
  [2302] = {.lex_state = 7, .external_lex_state = 3},
  [2303] = {.lex_state = 7, .external_lex_state = 3},
  [2304] = {.lex_state = 7, .external_lex_state = 3},
  [2305] = {.lex_state = 7, .external_lex_state = 3},
  [2306] = {.lex_state = 7, .external_lex_state = 3},
  [2307] = {.lex_state = 7, .external_lex_state = 3},
  [2308] = {.lex_state = 7, .external_lex_state = 3},
  [2309] = {.lex_state = 7, .external_lex_state = 3},
  [2310] = {.lex_state = 7, .external_lex_state = 3},
  [2311] = {.lex_state = 7, .external_lex_state = 3},
  [2312] = {.lex_state = 7, .external_lex_state = 3},
  [2313] = {.lex_state = 7, .external_lex_state = 3},
  [2314] = {.lex_state = 7, .external_lex_state = 3},
  [2315] = {.lex_state = 7, .external_lex_state = 3},
  [2316] = {.lex_state = 7, .external_lex_state = 3},
  [2317] = {.lex_state = 7, .external_lex_state = 3},
  [2318] = {.lex_state = 7, .external_lex_state = 3},
  [2319] = {.lex_state = 7, .external_lex_state = 3},
  [2320] = {.lex_state = 7, .external_lex_state = 3},
  [2321] = {.lex_state = 7, .external_lex_state = 3},
  [2322] = {.lex_state = 7, .external_lex_state = 3},
  [2323] = {.lex_state = 7, .external_lex_state = 3},
  [2324] = {.lex_state = 7, .external_lex_state = 3},
  [2325] = {.lex_state = 7, .external_lex_state = 3},
  [2326] = {.lex_state = 7, .external_lex_state = 3},
  [2327] = {.lex_state = 7, .external_lex_state = 3},
  [2328] = {.lex_state = 7, .external_lex_state = 3},
  [2329] = {.lex_state = 7, .external_lex_state = 3},
  [2330] = {.lex_state = 7, .external_lex_state = 3},
  [2331] = {.lex_state = 7, .external_lex_state = 3},
  [2332] = {.lex_state = 7, .external_lex_state = 3},
  [2333] = {.lex_state = 7, .external_lex_state = 3},
  [2334] = {.lex_state = 7, .external_lex_state = 3},
  [2335] = {.lex_state = 7, .external_lex_state = 3},
  [2336] = {.lex_state = 7, .external_lex_state = 3},
  [2337] = {.lex_state = 7, .external_lex_state = 3},
  [2338] = {.lex_state = 7, .external_lex_state = 3},
  [2339] = {.lex_state = 7, .external_lex_state = 3},
  [2340] = {.lex_state = 7, .external_lex_state = 3},
  [2341] = {.lex_state = 7, .external_lex_state = 3},
  [2342] = {.lex_state = 7, .external_lex_state = 3},
  [2343] = {.lex_state = 7, .external_lex_state = 3},
  [2344] = {.lex_state = 7, .external_lex_state = 3},
  [2345] = {.lex_state = 7, .external_lex_state = 3},
  [2346] = {.lex_state = 7, .external_lex_state = 3},
  [2347] = {.lex_state = 7, .external_lex_state = 3},
  [2348] = {.lex_state = 7, .external_lex_state = 3},
  [2349] = {.lex_state = 7, .external_lex_state = 3},
  [2350] = {.lex_state = 7, .external_lex_state = 3},
  [2351] = {.lex_state = 7, .external_lex_state = 3},
  [2352] = {.lex_state = 7, .external_lex_state = 3},
  [2353] = {.lex_state = 7, .external_lex_state = 3},
  [2354] = {.lex_state = 7, .external_lex_state = 3},
  [2355] = {.lex_state = 7, .external_lex_state = 3},
  [2356] = {.lex_state = 7, .external_lex_state = 3},
  [2357] = {.lex_state = 7, .external_lex_state = 3},
  [2358] = {.lex_state = 7, .external_lex_state = 3},
  [2359] = {.lex_state = 7, .external_lex_state = 3},
  [2360] = {.lex_state = 7, .external_lex_state = 3},
  [2361] = {.lex_state = 7, .external_lex_state = 3},
  [2362] = {.lex_state = 7, .external_lex_state = 3},
  [2363] = {.lex_state = 7, .external_lex_state = 3},
  [2364] = {.lex_state = 7, .external_lex_state = 3},
  [2365] = {.lex_state = 7, .external_lex_state = 3},
  [2366] = {.lex_state = 7, .external_lex_state = 3},
  [2367] = {.lex_state = 7, .external_lex_state = 3},
  [2368] = {.lex_state = 7, .external_lex_state = 3},
  [2369] = {.lex_state = 7, .external_lex_state = 3},
  [2370] = {.lex_state = 7, .external_lex_state = 3},
  [2371] = {.lex_state = 7, .external_lex_state = 3},
  [2372] = {.lex_state = 7, .external_lex_state = 3},
  [2373] = {.lex_state = 7, .external_lex_state = 3},
  [2374] = {.lex_state = 7, .external_lex_state = 3},
  [2375] = {.lex_state = 7, .external_lex_state = 3},
  [2376] = {.lex_state = 7, .external_lex_state = 3},
  [2377] = {.lex_state = 7, .external_lex_state = 3},
  [2378] = {.lex_state = 7, .external_lex_state = 3},
  [2379] = {.lex_state = 7, .external_lex_state = 3},
  [2380] = {.lex_state = 7, .external_lex_state = 3},
  [2381] = {.lex_state = 9, .external_lex_state = 2},
  [2382] = {.lex_state = 9, .external_lex_state = 2},
  [2383] = {.lex_state = 9, .external_lex_state = 2},
  [2384] = {.lex_state = 9, .external_lex_state = 2},
  [2385] = {.lex_state = 9, .external_lex_state = 2},
  [2386] = {.lex_state = 9, .external_lex_state = 2},
  [2387] = {.lex_state = 9, .external_lex_state = 2},
  [2388] = {.lex_state = 9, .external_lex_state = 2},
  [2389] = {.lex_state = 9, .external_lex_state = 2},
  [2390] = {.lex_state = 9, .external_lex_state = 2},
  [2391] = {.lex_state = 9, .external_lex_state = 2},
  [2392] = {.lex_state = 9, .external_lex_state = 2},
  [2393] = {.lex_state = 9, .external_lex_state = 2},
  [2394] = {.lex_state = 9, .external_lex_state = 2},
  [2395] = {.lex_state = 9, .external_lex_state = 2},
  [2396] = {.lex_state = 9, .external_lex_state = 2},
  [2397] = {.lex_state = 9, .external_lex_state = 2},
  [2398] = {.lex_state = 9, .external_lex_state = 2},
  [2399] = {.lex_state = 9, .external_lex_state = 2},
  [2400] = {.lex_state = 9, .external_lex_state = 2},
  [2401] = {.lex_state = 9, .external_lex_state = 2},
  [2402] = {.lex_state = 9, .external_lex_state = 2},
  [2403] = {.lex_state = 9, .external_lex_state = 2},
  [2404] = {.lex_state = 9, .external_lex_state = 2},
  [2405] = {.lex_state = 9, .external_lex_state = 2},
  [2406] = {.lex_state = 9, .external_lex_state = 2},
  [2407] = {.lex_state = 9, .external_lex_state = 2},
  [2408] = {.lex_state = 9, .external_lex_state = 2},
  [2409] = {.lex_state = 9, .external_lex_state = 2},
  [2410] = {.lex_state = 9, .external_lex_state = 2},
  [2411] = {.lex_state = 9, .external_lex_state = 2},
  [2412] = {.lex_state = 9, .external_lex_state = 2},
  [2413] = {.lex_state = 9, .external_lex_state = 2},
  [2414] = {.lex_state = 9, .external_lex_state = 2},
  [2415] = {.lex_state = 9, .external_lex_state = 2},
  [2416] = {.lex_state = 9, .external_lex_state = 2},
  [2417] = {.lex_state = 9, .external_lex_state = 2},
  [2418] = {.lex_state = 9, .external_lex_state = 2},
  [2419] = {.lex_state = 9, .external_lex_state = 2},
  [2420] = {.lex_state = 9, .external_lex_state = 2},
  [2421] = {.lex_state = 9, .external_lex_state = 2},
  [2422] = {.lex_state = 9, .external_lex_state = 2},
  [2423] = {.lex_state = 9, .external_lex_state = 2},
  [2424] = {.lex_state = 172, .external_lex_state = 2},
  [2425] = {.lex_state = 172, .external_lex_state = 2},
  [2426] = {.lex_state = 172, .external_lex_state = 2},
  [2427] = {.lex_state = 9, .external_lex_state = 2},
  [2428] = {.lex_state = 9, .external_lex_state = 2},
  [2429] = {.lex_state = 9, .external_lex_state = 2},
  [2430] = {.lex_state = 9, .external_lex_state = 2},
  [2431] = {.lex_state = 9, .external_lex_state = 2},
  [2432] = {.lex_state = 9, .external_lex_state = 2},
  [2433] = {.lex_state = 9, .external_lex_state = 2},
  [2434] = {.lex_state = 9, .external_lex_state = 2},
  [2435] = {.lex_state = 9, .external_lex_state = 2},
  [2436] = {.lex_state = 9, .external_lex_state = 2},
  [2437] = {.lex_state = 9, .external_lex_state = 2},
  [2438] = {.lex_state = 9, .external_lex_state = 2},
  [2439] = {.lex_state = 9, .external_lex_state = 2},
  [2440] = {.lex_state = 9, .external_lex_state = 2},
  [2441] = {.lex_state = 9, .external_lex_state = 2},
  [2442] = {.lex_state = 9, .external_lex_state = 2},
  [2443] = {.lex_state = 9, .external_lex_state = 2},
  [2444] = {.lex_state = 9, .external_lex_state = 2},
  [2445] = {.lex_state = 9, .external_lex_state = 2},
  [2446] = {.lex_state = 9, .external_lex_state = 2},
  [2447] = {.lex_state = 172, .external_lex_state = 2},
  [2448] = {.lex_state = 9, .external_lex_state = 2},
  [2449] = {.lex_state = 9, .external_lex_state = 2},
  [2450] = {.lex_state = 9, .external_lex_state = 2},
  [2451] = {.lex_state = 9, .external_lex_state = 2},
  [2452] = {.lex_state = 9, .external_lex_state = 2},
  [2453] = {.lex_state = 172, .external_lex_state = 2},
  [2454] = {.lex_state = 9, .external_lex_state = 2},
  [2455] = {.lex_state = 9, .external_lex_state = 2},
  [2456] = {.lex_state = 9, .external_lex_state = 2},
  [2457] = {.lex_state = 172, .external_lex_state = 2},
  [2458] = {.lex_state = 172, .external_lex_state = 2},
  [2459] = {.lex_state = 9, .external_lex_state = 2},
  [2460] = {.lex_state = 9, .external_lex_state = 2},
  [2461] = {.lex_state = 172, .external_lex_state = 2},
  [2462] = {.lex_state = 9, .external_lex_state = 2},
  [2463] = {.lex_state = 9, .external_lex_state = 2},
  [2464] = {.lex_state = 9, .external_lex_state = 2},
  [2465] = {.lex_state = 9, .external_lex_state = 2},
  [2466] = {.lex_state = 9, .external_lex_state = 2},
  [2467] = {.lex_state = 9, .external_lex_state = 2},
  [2468] = {.lex_state = 9, .external_lex_state = 2},
  [2469] = {.lex_state = 172, .external_lex_state = 2},
  [2470] = {.lex_state = 9, .external_lex_state = 2},
  [2471] = {.lex_state = 9, .external_lex_state = 2},
  [2472] = {.lex_state = 9, .external_lex_state = 2},
  [2473] = {.lex_state = 9, .external_lex_state = 2},
  [2474] = {.lex_state = 9, .external_lex_state = 2},
  [2475] = {.lex_state = 9, .external_lex_state = 2},
  [2476] = {.lex_state = 9, .external_lex_state = 2},
  [2477] = {.lex_state = 172, .external_lex_state = 2},
  [2478] = {.lex_state = 9, .external_lex_state = 2},
  [2479] = {.lex_state = 9, .external_lex_state = 2},
  [2480] = {.lex_state = 172, .external_lex_state = 2},
  [2481] = {.lex_state = 9, .external_lex_state = 2},
  [2482] = {.lex_state = 9, .external_lex_state = 2},
  [2483] = {.lex_state = 9, .external_lex_state = 2},
  [2484] = {.lex_state = 172, .external_lex_state = 2},
  [2485] = {.lex_state = 172, .external_lex_state = 2},
  [2486] = {.lex_state = 9, .external_lex_state = 2},
  [2487] = {.lex_state = 9, .external_lex_state = 2},
  [2488] = {.lex_state = 9, .external_lex_state = 2},
  [2489] = {.lex_state = 9, .external_lex_state = 2},
  [2490] = {.lex_state = 9, .external_lex_state = 2},
  [2491] = {.lex_state = 172, .external_lex_state = 2},
  [2492] = {.lex_state = 9, .external_lex_state = 2},
  [2493] = {.lex_state = 172, .external_lex_state = 2},
  [2494] = {.lex_state = 172, .external_lex_state = 2},
  [2495] = {.lex_state = 172, .external_lex_state = 2},
  [2496] = {.lex_state = 9, .external_lex_state = 2},
  [2497] = {.lex_state = 172, .external_lex_state = 2},
  [2498] = {.lex_state = 172, .external_lex_state = 2},
  [2499] = {.lex_state = 172, .external_lex_state = 2},
  [2500] = {.lex_state = 172, .external_lex_state = 2},
  [2501] = {.lex_state = 172, .external_lex_state = 2},
  [2502] = {.lex_state = 9, .external_lex_state = 2},
  [2503] = {.lex_state = 9, .external_lex_state = 2},
  [2504] = {.lex_state = 9, .external_lex_state = 2},
  [2505] = {.lex_state = 172, .external_lex_state = 2},
  [2506] = {.lex_state = 9, .external_lex_state = 2},
  [2507] = {.lex_state = 9, .external_lex_state = 2},
  [2508] = {.lex_state = 9, .external_lex_state = 2},
  [2509] = {.lex_state = 9, .external_lex_state = 2},
  [2510] = {.lex_state = 9, .external_lex_state = 2},
  [2511] = {.lex_state = 9, .external_lex_state = 2},
  [2512] = {.lex_state = 172, .external_lex_state = 2},
  [2513] = {.lex_state = 9, .external_lex_state = 2},
  [2514] = {.lex_state = 172, .external_lex_state = 2},
  [2515] = {.lex_state = 172, .external_lex_state = 2},
  [2516] = {.lex_state = 172, .external_lex_state = 2},
  [2517] = {.lex_state = 9, .external_lex_state = 2},
  [2518] = {.lex_state = 9, .external_lex_state = 2},
  [2519] = {.lex_state = 172, .external_lex_state = 2},
  [2520] = {.lex_state = 9, .external_lex_state = 2},
  [2521] = {.lex_state = 172, .external_lex_state = 2},
  [2522] = {.lex_state = 172, .external_lex_state = 2},
  [2523] = {.lex_state = 9, .external_lex_state = 2},
  [2524] = {.lex_state = 9, .external_lex_state = 2},
  [2525] = {.lex_state = 9, .external_lex_state = 2},
  [2526] = {.lex_state = 9, .external_lex_state = 2},
  [2527] = {.lex_state = 8, .external_lex_state = 2},
  [2528] = {.lex_state = 172, .external_lex_state = 2},
  [2529] = {.lex_state = 9, .external_lex_state = 2},
  [2530] = {.lex_state = 9, .external_lex_state = 2},
  [2531] = {.lex_state = 172, .external_lex_state = 2},
  [2532] = {.lex_state = 9, .external_lex_state = 2},
  [2533] = {.lex_state = 9, .external_lex_state = 2},
  [2534] = {.lex_state = 9, .external_lex_state = 2},
  [2535] = {.lex_state = 9, .external_lex_state = 2},
  [2536] = {.lex_state = 9, .external_lex_state = 2},
  [2537] = {.lex_state = 9, .external_lex_state = 2},
  [2538] = {.lex_state = 9, .external_lex_state = 2},
  [2539] = {.lex_state = 9, .external_lex_state = 2},
  [2540] = {.lex_state = 172, .external_lex_state = 2},
  [2541] = {.lex_state = 9, .external_lex_state = 2},
  [2542] = {.lex_state = 9, .external_lex_state = 2},
  [2543] = {.lex_state = 172, .external_lex_state = 2},
  [2544] = {.lex_state = 9, .external_lex_state = 2},
  [2545] = {.lex_state = 9, .external_lex_state = 2},
  [2546] = {.lex_state = 9, .external_lex_state = 2},
  [2547] = {.lex_state = 9, .external_lex_state = 2},
  [2548] = {.lex_state = 9, .external_lex_state = 2},
  [2549] = {.lex_state = 9, .external_lex_state = 2},
  [2550] = {.lex_state = 9, .external_lex_state = 2},
  [2551] = {.lex_state = 172, .external_lex_state = 2},
  [2552] = {.lex_state = 172, .external_lex_state = 2},
  [2553] = {.lex_state = 9, .external_lex_state = 2},
  [2554] = {.lex_state = 172, .external_lex_state = 2},
  [2555] = {.lex_state = 172, .external_lex_state = 2},
  [2556] = {.lex_state = 172, .external_lex_state = 2},
  [2557] = {.lex_state = 9, .external_lex_state = 2},
  [2558] = {.lex_state = 9, .external_lex_state = 2},
  [2559] = {.lex_state = 9, .external_lex_state = 2},
  [2560] = {.lex_state = 9, .external_lex_state = 2},
  [2561] = {.lex_state = 9, .external_lex_state = 2},
  [2562] = {.lex_state = 9, .external_lex_state = 2},
  [2563] = {.lex_state = 9, .external_lex_state = 2},
  [2564] = {.lex_state = 9, .external_lex_state = 2},
  [2565] = {.lex_state = 9, .external_lex_state = 2},
  [2566] = {.lex_state = 172, .external_lex_state = 2},
  [2567] = {.lex_state = 9, .external_lex_state = 2},
  [2568] = {.lex_state = 9, .external_lex_state = 2},
  [2569] = {.lex_state = 9, .external_lex_state = 2},
  [2570] = {.lex_state = 172, .external_lex_state = 2},
  [2571] = {.lex_state = 9, .external_lex_state = 2},
  [2572] = {.lex_state = 9, .external_lex_state = 2},
  [2573] = {.lex_state = 172, .external_lex_state = 2},
  [2574] = {.lex_state = 9, .external_lex_state = 2},
  [2575] = {.lex_state = 9, .external_lex_state = 2},
  [2576] = {.lex_state = 172, .external_lex_state = 2},
  [2577] = {.lex_state = 9, .external_lex_state = 2},
  [2578] = {.lex_state = 9, .external_lex_state = 2},
  [2579] = {.lex_state = 9, .external_lex_state = 2},
  [2580] = {.lex_state = 9, .external_lex_state = 2},
  [2581] = {.lex_state = 9, .external_lex_state = 2},
  [2582] = {.lex_state = 9, .external_lex_state = 2},
  [2583] = {.lex_state = 9, .external_lex_state = 2},
  [2584] = {.lex_state = 9, .external_lex_state = 2},
  [2585] = {.lex_state = 9, .external_lex_state = 2},
  [2586] = {.lex_state = 172, .external_lex_state = 2},
  [2587] = {.lex_state = 172, .external_lex_state = 2},
  [2588] = {.lex_state = 9, .external_lex_state = 2},
  [2589] = {.lex_state = 9, .external_lex_state = 2},
  [2590] = {.lex_state = 9, .external_lex_state = 2},
  [2591] = {.lex_state = 172, .external_lex_state = 2},
  [2592] = {.lex_state = 172, .external_lex_state = 2},
  [2593] = {.lex_state = 172, .external_lex_state = 2},
  [2594] = {.lex_state = 172, .external_lex_state = 2},
  [2595] = {.lex_state = 172, .external_lex_state = 2},
  [2596] = {.lex_state = 172, .external_lex_state = 2},
  [2597] = {.lex_state = 172, .external_lex_state = 2},
  [2598] = {.lex_state = 172, .external_lex_state = 2},
  [2599] = {.lex_state = 172, .external_lex_state = 2},
  [2600] = {.lex_state = 172, .external_lex_state = 2},
  [2601] = {.lex_state = 172, .external_lex_state = 2},
  [2602] = {.lex_state = 172, .external_lex_state = 2},
  [2603] = {.lex_state = 9, .external_lex_state = 2},
  [2604] = {.lex_state = 172, .external_lex_state = 2},
  [2605] = {.lex_state = 172, .external_lex_state = 2},
  [2606] = {.lex_state = 9, .external_lex_state = 2},
  [2607] = {.lex_state = 9, .external_lex_state = 2},
  [2608] = {.lex_state = 9, .external_lex_state = 2},
  [2609] = {.lex_state = 9, .external_lex_state = 2},
  [2610] = {.lex_state = 9, .external_lex_state = 2},
  [2611] = {.lex_state = 9, .external_lex_state = 2},
  [2612] = {.lex_state = 9, .external_lex_state = 2},
  [2613] = {.lex_state = 9, .external_lex_state = 2},
  [2614] = {.lex_state = 9, .external_lex_state = 2},
  [2615] = {.lex_state = 9, .external_lex_state = 2},
  [2616] = {.lex_state = 9, .external_lex_state = 2},
  [2617] = {.lex_state = 172, .external_lex_state = 2},
  [2618] = {.lex_state = 9, .external_lex_state = 2},
  [2619] = {.lex_state = 9, .external_lex_state = 2},
  [2620] = {.lex_state = 172, .external_lex_state = 2},
  [2621] = {.lex_state = 172, .external_lex_state = 2},
  [2622] = {.lex_state = 172, .external_lex_state = 2},
  [2623] = {.lex_state = 9, .external_lex_state = 2},
  [2624] = {.lex_state = 172, .external_lex_state = 2},
  [2625] = {.lex_state = 172, .external_lex_state = 2},
  [2626] = {.lex_state = 172, .external_lex_state = 2},
  [2627] = {.lex_state = 172, .external_lex_state = 2},
  [2628] = {.lex_state = 9, .external_lex_state = 2},
  [2629] = {.lex_state = 9, .external_lex_state = 2},
  [2630] = {.lex_state = 9, .external_lex_state = 2},
  [2631] = {.lex_state = 9, .external_lex_state = 2},
  [2632] = {.lex_state = 172, .external_lex_state = 2},
  [2633] = {.lex_state = 9, .external_lex_state = 2},
  [2634] = {.lex_state = 172, .external_lex_state = 2},
  [2635] = {.lex_state = 9, .external_lex_state = 2},
  [2636] = {.lex_state = 9, .external_lex_state = 2},
  [2637] = {.lex_state = 172, .external_lex_state = 2},
  [2638] = {.lex_state = 9, .external_lex_state = 2},
  [2639] = {.lex_state = 9, .external_lex_state = 2},
  [2640] = {.lex_state = 9, .external_lex_state = 2},
  [2641] = {.lex_state = 172, .external_lex_state = 2},
  [2642] = {.lex_state = 9, .external_lex_state = 2},
  [2643] = {.lex_state = 9, .external_lex_state = 2},
  [2644] = {.lex_state = 172, .external_lex_state = 2},
  [2645] = {.lex_state = 9, .external_lex_state = 2},
  [2646] = {.lex_state = 9, .external_lex_state = 2},
  [2647] = {.lex_state = 9, .external_lex_state = 2},
  [2648] = {.lex_state = 9, .external_lex_state = 2},
  [2649] = {.lex_state = 9, .external_lex_state = 2},
  [2650] = {.lex_state = 9, .external_lex_state = 2},
  [2651] = {.lex_state = 9, .external_lex_state = 2},
  [2652] = {.lex_state = 9, .external_lex_state = 2},
  [2653] = {.lex_state = 9, .external_lex_state = 2},
  [2654] = {.lex_state = 9, .external_lex_state = 2},
  [2655] = {.lex_state = 9, .external_lex_state = 2},
  [2656] = {.lex_state = 172, .external_lex_state = 2},
  [2657] = {.lex_state = 9, .external_lex_state = 2},
  [2658] = {.lex_state = 9, .external_lex_state = 2},
  [2659] = {.lex_state = 9, .external_lex_state = 2},
  [2660] = {.lex_state = 9, .external_lex_state = 2},
  [2661] = {.lex_state = 9, .external_lex_state = 2},
  [2662] = {.lex_state = 172, .external_lex_state = 2},
  [2663] = {.lex_state = 9, .external_lex_state = 2},
  [2664] = {.lex_state = 172, .external_lex_state = 2},
  [2665] = {.lex_state = 9, .external_lex_state = 2},
  [2666] = {.lex_state = 9, .external_lex_state = 2},
  [2667] = {.lex_state = 9, .external_lex_state = 2},
  [2668] = {.lex_state = 9, .external_lex_state = 2},
  [2669] = {.lex_state = 9, .external_lex_state = 2},
  [2670] = {.lex_state = 9, .external_lex_state = 2},
  [2671] = {.lex_state = 9, .external_lex_state = 2},
  [2672] = {.lex_state = 9, .external_lex_state = 2},
  [2673] = {.lex_state = 9, .external_lex_state = 2},
  [2674] = {.lex_state = 172, .external_lex_state = 2},
  [2675] = {.lex_state = 172, .external_lex_state = 2},
  [2676] = {.lex_state = 9, .external_lex_state = 2},
  [2677] = {.lex_state = 172, .external_lex_state = 2},
  [2678] = {.lex_state = 8, .external_lex_state = 2},
  [2679] = {.lex_state = 172, .external_lex_state = 2},
  [2680] = {.lex_state = 172, .external_lex_state = 2},
  [2681] = {.lex_state = 172, .external_lex_state = 2},
  [2682] = {.lex_state = 172, .external_lex_state = 2},
  [2683] = {.lex_state = 172, .external_lex_state = 2},
  [2684] = {.lex_state = 172, .external_lex_state = 2},
  [2685] = {.lex_state = 172, .external_lex_state = 2},
  [2686] = {.lex_state = 172, .external_lex_state = 2},
  [2687] = {.lex_state = 9, .external_lex_state = 2},
  [2688] = {.lex_state = 172, .external_lex_state = 2},
  [2689] = {.lex_state = 172, .external_lex_state = 2},
  [2690] = {.lex_state = 172, .external_lex_state = 2},
  [2691] = {.lex_state = 172, .external_lex_state = 2},
  [2692] = {.lex_state = 172, .external_lex_state = 2},
  [2693] = {.lex_state = 172, .external_lex_state = 2},
  [2694] = {.lex_state = 8, .external_lex_state = 2},
  [2695] = {.lex_state = 172, .external_lex_state = 2},
  [2696] = {.lex_state = 172, .external_lex_state = 2},
  [2697] = {.lex_state = 8, .external_lex_state = 2},
  [2698] = {.lex_state = 172, .external_lex_state = 2},
  [2699] = {.lex_state = 172, .external_lex_state = 2},
  [2700] = {.lex_state = 172, .external_lex_state = 2},
  [2701] = {.lex_state = 172, .external_lex_state = 2},
  [2702] = {.lex_state = 172, .external_lex_state = 2},
  [2703] = {.lex_state = 172, .external_lex_state = 2},
  [2704] = {.lex_state = 172, .external_lex_state = 2},
  [2705] = {.lex_state = 172, .external_lex_state = 2},
  [2706] = {.lex_state = 172, .external_lex_state = 2},
  [2707] = {.lex_state = 8, .external_lex_state = 2},
  [2708] = {.lex_state = 172, .external_lex_state = 2},
  [2709] = {.lex_state = 172, .external_lex_state = 2},
  [2710] = {.lex_state = 172, .external_lex_state = 2},
  [2711] = {.lex_state = 172, .external_lex_state = 2},
  [2712] = {.lex_state = 172, .external_lex_state = 2},
  [2713] = {.lex_state = 172, .external_lex_state = 2},
  [2714] = {.lex_state = 172, .external_lex_state = 2},
  [2715] = {.lex_state = 172, .external_lex_state = 2},
  [2716] = {.lex_state = 172, .external_lex_state = 2},
  [2717] = {.lex_state = 172, .external_lex_state = 2},
  [2718] = {.lex_state = 8, .external_lex_state = 2},
  [2719] = {.lex_state = 172, .external_lex_state = 2},
  [2720] = {.lex_state = 172, .external_lex_state = 2},
  [2721] = {.lex_state = 172, .external_lex_state = 2},
  [2722] = {.lex_state = 172, .external_lex_state = 2},
  [2723] = {.lex_state = 172, .external_lex_state = 2},
  [2724] = {.lex_state = 172, .external_lex_state = 2},
  [2725] = {.lex_state = 172, .external_lex_state = 2},
  [2726] = {.lex_state = 172, .external_lex_state = 2},
  [2727] = {.lex_state = 172, .external_lex_state = 2},
  [2728] = {.lex_state = 172, .external_lex_state = 2},
  [2729] = {.lex_state = 172, .external_lex_state = 2},
  [2730] = {.lex_state = 172, .external_lex_state = 2},
  [2731] = {.lex_state = 172, .external_lex_state = 2},
  [2732] = {.lex_state = 172, .external_lex_state = 2},
  [2733] = {.lex_state = 172, .external_lex_state = 2},
  [2734] = {.lex_state = 9, .external_lex_state = 2},
  [2735] = {.lex_state = 9, .external_lex_state = 2},
  [2736] = {.lex_state = 9, .external_lex_state = 2},
  [2737] = {.lex_state = 172, .external_lex_state = 2},
  [2738] = {.lex_state = 172, .external_lex_state = 2},
  [2739] = {.lex_state = 172, .external_lex_state = 2},
  [2740] = {.lex_state = 172, .external_lex_state = 2},
  [2741] = {.lex_state = 172, .external_lex_state = 2},
  [2742] = {.lex_state = 172, .external_lex_state = 2},
  [2743] = {.lex_state = 172, .external_lex_state = 2},
  [2744] = {.lex_state = 172, .external_lex_state = 2},
  [2745] = {.lex_state = 172, .external_lex_state = 2},
  [2746] = {.lex_state = 172, .external_lex_state = 2},
  [2747] = {.lex_state = 172, .external_lex_state = 2},
  [2748] = {.lex_state = 172, .external_lex_state = 2},
  [2749] = {.lex_state = 172, .external_lex_state = 2},
  [2750] = {.lex_state = 172, .external_lex_state = 2},
  [2751] = {.lex_state = 172, .external_lex_state = 2},
  [2752] = {.lex_state = 172, .external_lex_state = 2},
  [2753] = {.lex_state = 9, .external_lex_state = 2},
  [2754] = {.lex_state = 9, .external_lex_state = 2},
  [2755] = {.lex_state = 9, .external_lex_state = 2},
  [2756] = {.lex_state = 172, .external_lex_state = 2},
  [2757] = {.lex_state = 9, .external_lex_state = 2},
  [2758] = {.lex_state = 9, .external_lex_state = 2},
  [2759] = {.lex_state = 9, .external_lex_state = 2},
  [2760] = {.lex_state = 9, .external_lex_state = 2},
  [2761] = {.lex_state = 9, .external_lex_state = 2},
  [2762] = {.lex_state = 9, .external_lex_state = 2},
  [2763] = {.lex_state = 9, .external_lex_state = 2},
  [2764] = {.lex_state = 9, .external_lex_state = 2},
  [2765] = {.lex_state = 9, .external_lex_state = 2},
  [2766] = {.lex_state = 9, .external_lex_state = 2},
  [2767] = {.lex_state = 9, .external_lex_state = 2},
  [2768] = {.lex_state = 9, .external_lex_state = 2},
  [2769] = {.lex_state = 9, .external_lex_state = 2},
  [2770] = {.lex_state = 9, .external_lex_state = 2},
  [2771] = {.lex_state = 9, .external_lex_state = 2},
  [2772] = {.lex_state = 9, .external_lex_state = 2},
  [2773] = {.lex_state = 9, .external_lex_state = 2},
  [2774] = {.lex_state = 9, .external_lex_state = 2},
  [2775] = {.lex_state = 9, .external_lex_state = 2},
  [2776] = {.lex_state = 9, .external_lex_state = 2},
  [2777] = {.lex_state = 9, .external_lex_state = 2},
  [2778] = {.lex_state = 9, .external_lex_state = 2},
  [2779] = {.lex_state = 9, .external_lex_state = 2},
  [2780] = {.lex_state = 9, .external_lex_state = 2},
  [2781] = {.lex_state = 9, .external_lex_state = 2},
  [2782] = {.lex_state = 172, .external_lex_state = 2},
  [2783] = {.lex_state = 9, .external_lex_state = 2},
  [2784] = {.lex_state = 9, .external_lex_state = 2},
  [2785] = {.lex_state = 9, .external_lex_state = 2},
  [2786] = {.lex_state = 9, .external_lex_state = 2},
  [2787] = {.lex_state = 9, .external_lex_state = 2},
  [2788] = {.lex_state = 9, .external_lex_state = 2},
  [2789] = {.lex_state = 9, .external_lex_state = 2},
  [2790] = {.lex_state = 9, .external_lex_state = 2},
  [2791] = {.lex_state = 9, .external_lex_state = 2},
  [2792] = {.lex_state = 9, .external_lex_state = 2},
  [2793] = {.lex_state = 9, .external_lex_state = 2},
  [2794] = {.lex_state = 9, .external_lex_state = 2},
  [2795] = {.lex_state = 9, .external_lex_state = 2},
  [2796] = {.lex_state = 9, .external_lex_state = 2},
  [2797] = {.lex_state = 9, .external_lex_state = 2},
  [2798] = {.lex_state = 9, .external_lex_state = 2},
  [2799] = {.lex_state = 9, .external_lex_state = 2},
  [2800] = {.lex_state = 9, .external_lex_state = 2},
  [2801] = {.lex_state = 9, .external_lex_state = 2},
  [2802] = {.lex_state = 9, .external_lex_state = 2},
  [2803] = {.lex_state = 9, .external_lex_state = 2},
  [2804] = {.lex_state = 9, .external_lex_state = 2},
  [2805] = {.lex_state = 9, .external_lex_state = 2},
  [2806] = {.lex_state = 9, .external_lex_state = 2},
  [2807] = {.lex_state = 9, .external_lex_state = 2},
  [2808] = {.lex_state = 9, .external_lex_state = 2},
  [2809] = {.lex_state = 9, .external_lex_state = 2},
  [2810] = {.lex_state = 9, .external_lex_state = 2},
  [2811] = {.lex_state = 9, .external_lex_state = 2},
  [2812] = {.lex_state = 9, .external_lex_state = 2},
  [2813] = {.lex_state = 9, .external_lex_state = 2},
  [2814] = {.lex_state = 9, .external_lex_state = 2},
  [2815] = {.lex_state = 172, .external_lex_state = 2},
  [2816] = {.lex_state = 9, .external_lex_state = 2},
  [2817] = {.lex_state = 9, .external_lex_state = 2},
  [2818] = {.lex_state = 9, .external_lex_state = 2},
  [2819] = {.lex_state = 9, .external_lex_state = 2},
  [2820] = {.lex_state = 9, .external_lex_state = 2},
  [2821] = {.lex_state = 9, .external_lex_state = 2},
  [2822] = {.lex_state = 9, .external_lex_state = 2},
  [2823] = {.lex_state = 9, .external_lex_state = 2},
  [2824] = {.lex_state = 9, .external_lex_state = 2},
  [2825] = {.lex_state = 9, .external_lex_state = 2},
  [2826] = {.lex_state = 9, .external_lex_state = 2},
  [2827] = {.lex_state = 9, .external_lex_state = 2},
  [2828] = {.lex_state = 9, .external_lex_state = 2},
  [2829] = {.lex_state = 9, .external_lex_state = 2},
  [2830] = {.lex_state = 9, .external_lex_state = 2},
  [2831] = {.lex_state = 9, .external_lex_state = 2},
  [2832] = {.lex_state = 9, .external_lex_state = 2},
  [2833] = {.lex_state = 9, .external_lex_state = 2},
  [2834] = {.lex_state = 9, .external_lex_state = 2},
  [2835] = {.lex_state = 9, .external_lex_state = 2},
  [2836] = {.lex_state = 9, .external_lex_state = 2},
  [2837] = {.lex_state = 9, .external_lex_state = 2},
  [2838] = {.lex_state = 9, .external_lex_state = 2},
  [2839] = {.lex_state = 9, .external_lex_state = 2},
  [2840] = {.lex_state = 9, .external_lex_state = 2},
  [2841] = {.lex_state = 9, .external_lex_state = 2},
  [2842] = {.lex_state = 9, .external_lex_state = 2},
  [2843] = {.lex_state = 9, .external_lex_state = 2},
  [2844] = {.lex_state = 9, .external_lex_state = 2},
  [2845] = {.lex_state = 9, .external_lex_state = 2},
  [2846] = {.lex_state = 9, .external_lex_state = 2},
  [2847] = {.lex_state = 9, .external_lex_state = 2},
  [2848] = {.lex_state = 9, .external_lex_state = 2},
  [2849] = {.lex_state = 9, .external_lex_state = 2},
  [2850] = {.lex_state = 9, .external_lex_state = 2},
  [2851] = {.lex_state = 9, .external_lex_state = 2},
  [2852] = {.lex_state = 9, .external_lex_state = 2},
  [2853] = {.lex_state = 9, .external_lex_state = 2},
  [2854] = {.lex_state = 9, .external_lex_state = 2},
  [2855] = {.lex_state = 9, .external_lex_state = 2},
  [2856] = {.lex_state = 9, .external_lex_state = 2},
  [2857] = {.lex_state = 9, .external_lex_state = 2},
  [2858] = {.lex_state = 9, .external_lex_state = 2},
  [2859] = {.lex_state = 9, .external_lex_state = 2},
  [2860] = {.lex_state = 9, .external_lex_state = 2},
  [2861] = {.lex_state = 9, .external_lex_state = 2},
  [2862] = {.lex_state = 9, .external_lex_state = 2},
  [2863] = {.lex_state = 172, .external_lex_state = 2},
  [2864] = {.lex_state = 9, .external_lex_state = 2},
  [2865] = {.lex_state = 9, .external_lex_state = 2},
  [2866] = {.lex_state = 9, .external_lex_state = 2},
  [2867] = {.lex_state = 9, .external_lex_state = 2},
  [2868] = {.lex_state = 9, .external_lex_state = 2},
  [2869] = {.lex_state = 9, .external_lex_state = 2},
  [2870] = {.lex_state = 9, .external_lex_state = 2},
  [2871] = {.lex_state = 9, .external_lex_state = 2},
  [2872] = {.lex_state = 9, .external_lex_state = 2},
  [2873] = {.lex_state = 9, .external_lex_state = 2},
  [2874] = {.lex_state = 9, .external_lex_state = 2},
  [2875] = {.lex_state = 9, .external_lex_state = 2},
  [2876] = {.lex_state = 9, .external_lex_state = 2},
  [2877] = {.lex_state = 9, .external_lex_state = 2},
  [2878] = {.lex_state = 9, .external_lex_state = 2},
  [2879] = {.lex_state = 9, .external_lex_state = 2},
  [2880] = {.lex_state = 9, .external_lex_state = 2},
  [2881] = {.lex_state = 9, .external_lex_state = 2},
  [2882] = {.lex_state = 9, .external_lex_state = 2},
  [2883] = {.lex_state = 9, .external_lex_state = 2},
  [2884] = {.lex_state = 9, .external_lex_state = 2},
  [2885] = {.lex_state = 9, .external_lex_state = 2},
  [2886] = {.lex_state = 9, .external_lex_state = 2},
  [2887] = {.lex_state = 9, .external_lex_state = 2},
  [2888] = {.lex_state = 9, .external_lex_state = 2},
  [2889] = {.lex_state = 9, .external_lex_state = 2},
  [2890] = {.lex_state = 9, .external_lex_state = 2},
  [2891] = {.lex_state = 9, .external_lex_state = 2},
  [2892] = {.lex_state = 9, .external_lex_state = 2},
  [2893] = {.lex_state = 9, .external_lex_state = 2},
  [2894] = {.lex_state = 9, .external_lex_state = 2},
  [2895] = {.lex_state = 9, .external_lex_state = 2},
  [2896] = {.lex_state = 9, .external_lex_state = 2},
  [2897] = {.lex_state = 9, .external_lex_state = 2},
  [2898] = {.lex_state = 9, .external_lex_state = 2},
  [2899] = {.lex_state = 9, .external_lex_state = 2},
  [2900] = {.lex_state = 9, .external_lex_state = 2},
  [2901] = {.lex_state = 9, .external_lex_state = 2},
  [2902] = {.lex_state = 9, .external_lex_state = 2},
  [2903] = {.lex_state = 9, .external_lex_state = 2},
  [2904] = {.lex_state = 9, .external_lex_state = 2},
  [2905] = {.lex_state = 9, .external_lex_state = 2},
  [2906] = {.lex_state = 9, .external_lex_state = 2},
  [2907] = {.lex_state = 9, .external_lex_state = 2},
  [2908] = {.lex_state = 9, .external_lex_state = 2},
  [2909] = {.lex_state = 9, .external_lex_state = 2},
  [2910] = {.lex_state = 9, .external_lex_state = 2},
  [2911] = {.lex_state = 9, .external_lex_state = 2},
  [2912] = {.lex_state = 9, .external_lex_state = 2},
  [2913] = {.lex_state = 9, .external_lex_state = 2},
  [2914] = {.lex_state = 9, .external_lex_state = 2},
  [2915] = {.lex_state = 9, .external_lex_state = 2},
  [2916] = {.lex_state = 9, .external_lex_state = 2},
  [2917] = {.lex_state = 9, .external_lex_state = 2},
  [2918] = {.lex_state = 9, .external_lex_state = 2},
  [2919] = {.lex_state = 9, .external_lex_state = 2},
  [2920] = {.lex_state = 9, .external_lex_state = 2},
  [2921] = {.lex_state = 172, .external_lex_state = 2},
  [2922] = {.lex_state = 9, .external_lex_state = 2},
  [2923] = {.lex_state = 9, .external_lex_state = 2},
  [2924] = {.lex_state = 9, .external_lex_state = 2},
  [2925] = {.lex_state = 9, .external_lex_state = 2},
  [2926] = {.lex_state = 9, .external_lex_state = 2},
  [2927] = {.lex_state = 9, .external_lex_state = 2},
  [2928] = {.lex_state = 9, .external_lex_state = 2},
  [2929] = {.lex_state = 9, .external_lex_state = 2},
  [2930] = {.lex_state = 9, .external_lex_state = 2},
  [2931] = {.lex_state = 9, .external_lex_state = 2},
  [2932] = {.lex_state = 9, .external_lex_state = 2},
  [2933] = {.lex_state = 9, .external_lex_state = 2},
  [2934] = {.lex_state = 172, .external_lex_state = 2},
  [2935] = {.lex_state = 9, .external_lex_state = 2},
  [2936] = {.lex_state = 9, .external_lex_state = 2},
  [2937] = {.lex_state = 9, .external_lex_state = 2},
  [2938] = {.lex_state = 9, .external_lex_state = 2},
  [2939] = {.lex_state = 9, .external_lex_state = 2},
  [2940] = {.lex_state = 9, .external_lex_state = 2},
  [2941] = {.lex_state = 9, .external_lex_state = 2},
  [2942] = {.lex_state = 172, .external_lex_state = 2},
  [2943] = {.lex_state = 9, .external_lex_state = 2},
  [2944] = {.lex_state = 9, .external_lex_state = 2},
  [2945] = {.lex_state = 9, .external_lex_state = 2},
  [2946] = {.lex_state = 9, .external_lex_state = 2},
  [2947] = {.lex_state = 9, .external_lex_state = 2},
  [2948] = {.lex_state = 9, .external_lex_state = 2},
  [2949] = {.lex_state = 9, .external_lex_state = 2},
  [2950] = {.lex_state = 9, .external_lex_state = 2},
  [2951] = {.lex_state = 9, .external_lex_state = 2},
  [2952] = {.lex_state = 9, .external_lex_state = 2},
  [2953] = {.lex_state = 9, .external_lex_state = 2},
  [2954] = {.lex_state = 9, .external_lex_state = 2},
  [2955] = {.lex_state = 9, .external_lex_state = 2},
  [2956] = {.lex_state = 9, .external_lex_state = 2},
  [2957] = {.lex_state = 9, .external_lex_state = 2},
  [2958] = {.lex_state = 9, .external_lex_state = 2},
  [2959] = {.lex_state = 9, .external_lex_state = 2},
  [2960] = {.lex_state = 9, .external_lex_state = 2},
  [2961] = {.lex_state = 9, .external_lex_state = 2},
  [2962] = {.lex_state = 172, .external_lex_state = 2},
  [2963] = {.lex_state = 9, .external_lex_state = 2},
  [2964] = {.lex_state = 9, .external_lex_state = 2},
  [2965] = {.lex_state = 9, .external_lex_state = 2},
  [2966] = {.lex_state = 9, .external_lex_state = 2},
  [2967] = {.lex_state = 9, .external_lex_state = 2},
  [2968] = {.lex_state = 9, .external_lex_state = 2},
  [2969] = {.lex_state = 9, .external_lex_state = 2},
  [2970] = {.lex_state = 9, .external_lex_state = 2},
  [2971] = {.lex_state = 9, .external_lex_state = 2},
  [2972] = {.lex_state = 9, .external_lex_state = 2},
  [2973] = {.lex_state = 9, .external_lex_state = 2},
  [2974] = {.lex_state = 9, .external_lex_state = 2},
  [2975] = {.lex_state = 9, .external_lex_state = 2},
  [2976] = {.lex_state = 9, .external_lex_state = 2},
  [2977] = {.lex_state = 9, .external_lex_state = 2},
  [2978] = {.lex_state = 9, .external_lex_state = 2},
  [2979] = {.lex_state = 9, .external_lex_state = 2},
  [2980] = {.lex_state = 9, .external_lex_state = 2},
  [2981] = {.lex_state = 9, .external_lex_state = 2},
  [2982] = {.lex_state = 9, .external_lex_state = 2},
  [2983] = {.lex_state = 9, .external_lex_state = 2},
  [2984] = {.lex_state = 9, .external_lex_state = 2},
  [2985] = {.lex_state = 9, .external_lex_state = 2},
  [2986] = {.lex_state = 9, .external_lex_state = 2},
  [2987] = {.lex_state = 9, .external_lex_state = 2},
  [2988] = {.lex_state = 9, .external_lex_state = 2},
  [2989] = {.lex_state = 9, .external_lex_state = 2},
  [2990] = {.lex_state = 9, .external_lex_state = 2},
  [2991] = {.lex_state = 9, .external_lex_state = 2},
  [2992] = {.lex_state = 9, .external_lex_state = 2},
  [2993] = {.lex_state = 9, .external_lex_state = 2},
  [2994] = {.lex_state = 9, .external_lex_state = 2},
  [2995] = {.lex_state = 9, .external_lex_state = 2},
  [2996] = {.lex_state = 9, .external_lex_state = 2},
  [2997] = {.lex_state = 9, .external_lex_state = 2},
  [2998] = {.lex_state = 9, .external_lex_state = 2},
  [2999] = {.lex_state = 9, .external_lex_state = 2},
  [3000] = {.lex_state = 9, .external_lex_state = 2},
  [3001] = {.lex_state = 9, .external_lex_state = 2},
  [3002] = {.lex_state = 9, .external_lex_state = 2},
  [3003] = {.lex_state = 9, .external_lex_state = 2},
  [3004] = {.lex_state = 9, .external_lex_state = 2},
  [3005] = {.lex_state = 9, .external_lex_state = 2},
  [3006] = {.lex_state = 9, .external_lex_state = 2},
  [3007] = {.lex_state = 9, .external_lex_state = 2},
  [3008] = {.lex_state = 9, .external_lex_state = 2},
  [3009] = {.lex_state = 9, .external_lex_state = 2},
  [3010] = {.lex_state = 9, .external_lex_state = 2},
  [3011] = {.lex_state = 9, .external_lex_state = 2},
  [3012] = {.lex_state = 9, .external_lex_state = 2},
  [3013] = {.lex_state = 9, .external_lex_state = 2},
  [3014] = {.lex_state = 9, .external_lex_state = 2},
  [3015] = {.lex_state = 9, .external_lex_state = 2},
  [3016] = {.lex_state = 15, .external_lex_state = 2},
  [3017] = {.lex_state = 9, .external_lex_state = 2},
  [3018] = {.lex_state = 9, .external_lex_state = 2},
  [3019] = {.lex_state = 9, .external_lex_state = 2},
  [3020] = {.lex_state = 9, .external_lex_state = 2},
  [3021] = {.lex_state = 9, .external_lex_state = 2},
  [3022] = {.lex_state = 15, .external_lex_state = 2},
  [3023] = {.lex_state = 9, .external_lex_state = 2},
  [3024] = {.lex_state = 9, .external_lex_state = 2},
  [3025] = {.lex_state = 15, .external_lex_state = 2},
  [3026] = {.lex_state = 9, .external_lex_state = 2},
  [3027] = {.lex_state = 9, .external_lex_state = 2},
  [3028] = {.lex_state = 9, .external_lex_state = 2},
  [3029] = {.lex_state = 9, .external_lex_state = 2},
  [3030] = {.lex_state = 9, .external_lex_state = 2},
  [3031] = {.lex_state = 9, .external_lex_state = 2},
  [3032] = {.lex_state = 9, .external_lex_state = 2},
  [3033] = {.lex_state = 15, .external_lex_state = 2},
  [3034] = {.lex_state = 15, .external_lex_state = 2},
  [3035] = {.lex_state = 9, .external_lex_state = 2},
  [3036] = {.lex_state = 15, .external_lex_state = 2},
  [3037] = {.lex_state = 15, .external_lex_state = 2},
  [3038] = {.lex_state = 15, .external_lex_state = 2},
  [3039] = {.lex_state = 15, .external_lex_state = 2},
  [3040] = {.lex_state = 15, .external_lex_state = 2},
  [3041] = {.lex_state = 9, .external_lex_state = 2},
  [3042] = {.lex_state = 15, .external_lex_state = 2},
  [3043] = {.lex_state = 15, .external_lex_state = 2},
  [3044] = {.lex_state = 9, .external_lex_state = 2},
  [3045] = {.lex_state = 15, .external_lex_state = 2},
  [3046] = {.lex_state = 9, .external_lex_state = 2},
  [3047] = {.lex_state = 9, .external_lex_state = 2},
  [3048] = {.lex_state = 15, .external_lex_state = 2},
  [3049] = {.lex_state = 15, .external_lex_state = 2},
  [3050] = {.lex_state = 9, .external_lex_state = 2},
  [3051] = {.lex_state = 9, .external_lex_state = 2},
  [3052] = {.lex_state = 15, .external_lex_state = 2},
  [3053] = {.lex_state = 9, .external_lex_state = 2},
  [3054] = {.lex_state = 9, .external_lex_state = 2},
  [3055] = {.lex_state = 9, .external_lex_state = 2},
  [3056] = {.lex_state = 15, .external_lex_state = 2},
  [3057] = {.lex_state = 9, .external_lex_state = 2},
  [3058] = {.lex_state = 9, .external_lex_state = 2},
  [3059] = {.lex_state = 9, .external_lex_state = 2},
  [3060] = {.lex_state = 9, .external_lex_state = 2},
  [3061] = {.lex_state = 9, .external_lex_state = 2},
  [3062] = {.lex_state = 9, .external_lex_state = 2},
  [3063] = {.lex_state = 9, .external_lex_state = 2},
  [3064] = {.lex_state = 9, .external_lex_state = 2},
  [3065] = {.lex_state = 7, .external_lex_state = 3},
  [3066] = {.lex_state = 7, .external_lex_state = 3},
  [3067] = {.lex_state = 9, .external_lex_state = 2},
  [3068] = {.lex_state = 9, .external_lex_state = 2},
  [3069] = {.lex_state = 9, .external_lex_state = 2},
  [3070] = {.lex_state = 9, .external_lex_state = 2},
  [3071] = {.lex_state = 9, .external_lex_state = 2},
  [3072] = {.lex_state = 7, .external_lex_state = 3},
  [3073] = {.lex_state = 9, .external_lex_state = 2},
  [3074] = {.lex_state = 7, .external_lex_state = 3},
  [3075] = {.lex_state = 7, .external_lex_state = 3},
  [3076] = {.lex_state = 9, .external_lex_state = 2},
  [3077] = {.lex_state = 9, .external_lex_state = 2},
  [3078] = {.lex_state = 9, .external_lex_state = 2},
  [3079] = {.lex_state = 7, .external_lex_state = 3},
  [3080] = {.lex_state = 7, .external_lex_state = 3},
  [3081] = {.lex_state = 9, .external_lex_state = 2},
  [3082] = {.lex_state = 9, .external_lex_state = 2},
  [3083] = {.lex_state = 7, .external_lex_state = 3},
  [3084] = {.lex_state = 9, .external_lex_state = 2},
  [3085] = {.lex_state = 9, .external_lex_state = 2},
  [3086] = {.lex_state = 9, .external_lex_state = 2},
  [3087] = {.lex_state = 9, .external_lex_state = 2},
  [3088] = {.lex_state = 7, .external_lex_state = 3},
  [3089] = {.lex_state = 7, .external_lex_state = 3},
  [3090] = {.lex_state = 7, .external_lex_state = 3},
  [3091] = {.lex_state = 7, .external_lex_state = 3},
  [3092] = {.lex_state = 9, .external_lex_state = 2},
  [3093] = {.lex_state = 9, .external_lex_state = 2},
  [3094] = {.lex_state = 9, .external_lex_state = 2},
  [3095] = {.lex_state = 7, .external_lex_state = 3},
  [3096] = {.lex_state = 9, .external_lex_state = 2},
  [3097] = {.lex_state = 9, .external_lex_state = 2},
  [3098] = {.lex_state = 9, .external_lex_state = 2},
  [3099] = {.lex_state = 9, .external_lex_state = 2},
  [3100] = {.lex_state = 8, .external_lex_state = 2},
  [3101] = {.lex_state = 8, .external_lex_state = 2},
  [3102] = {.lex_state = 8, .external_lex_state = 2},
  [3103] = {.lex_state = 8, .external_lex_state = 2},
  [3104] = {.lex_state = 8, .external_lex_state = 2},
  [3105] = {.lex_state = 8, .external_lex_state = 2},
  [3106] = {.lex_state = 8, .external_lex_state = 2},
  [3107] = {.lex_state = 8, .external_lex_state = 2},
  [3108] = {.lex_state = 9, .external_lex_state = 2},
  [3109] = {.lex_state = 9, .external_lex_state = 2},
  [3110] = {.lex_state = 9, .external_lex_state = 2},
  [3111] = {.lex_state = 8, .external_lex_state = 2},
  [3112] = {.lex_state = 9, .external_lex_state = 2},
  [3113] = {.lex_state = 8, .external_lex_state = 2},
  [3114] = {.lex_state = 9, .external_lex_state = 2},
  [3115] = {.lex_state = 9, .external_lex_state = 2},
  [3116] = {.lex_state = 9, .external_lex_state = 2},
  [3117] = {.lex_state = 8, .external_lex_state = 2},
  [3118] = {.lex_state = 8, .external_lex_state = 2},
  [3119] = {.lex_state = 8, .external_lex_state = 2},
  [3120] = {.lex_state = 9, .external_lex_state = 2},
  [3121] = {.lex_state = 8, .external_lex_state = 2},
  [3122] = {.lex_state = 8, .external_lex_state = 2},
  [3123] = {.lex_state = 8, .external_lex_state = 2},
  [3124] = {.lex_state = 8, .external_lex_state = 2},
  [3125] = {.lex_state = 8, .external_lex_state = 2},
  [3126] = {.lex_state = 8, .external_lex_state = 2},
  [3127] = {.lex_state = 9, .external_lex_state = 2},
  [3128] = {.lex_state = 9, .external_lex_state = 2},
  [3129] = {.lex_state = 8, .external_lex_state = 2},
  [3130] = {.lex_state = 9, .external_lex_state = 2},
  [3131] = {.lex_state = 8, .external_lex_state = 2},
  [3132] = {.lex_state = 8, .external_lex_state = 2},
  [3133] = {.lex_state = 8, .external_lex_state = 2},
  [3134] = {.lex_state = 9, .external_lex_state = 2},
  [3135] = {.lex_state = 9, .external_lex_state = 2},
  [3136] = {.lex_state = 8, .external_lex_state = 2},
  [3137] = {.lex_state = 8, .external_lex_state = 2},
  [3138] = {.lex_state = 9, .external_lex_state = 2},
  [3139] = {.lex_state = 15, .external_lex_state = 2},
  [3140] = {.lex_state = 15, .external_lex_state = 2},
  [3141] = {.lex_state = 15, .external_lex_state = 2},
  [3142] = {.lex_state = 15, .external_lex_state = 2},
  [3143] = {.lex_state = 15, .external_lex_state = 2},
  [3144] = {.lex_state = 15, .external_lex_state = 2},
  [3145] = {.lex_state = 15, .external_lex_state = 2},
  [3146] = {.lex_state = 15, .external_lex_state = 2},
  [3147] = {.lex_state = 15, .external_lex_state = 2},
  [3148] = {.lex_state = 15, .external_lex_state = 2},
  [3149] = {.lex_state = 15, .external_lex_state = 2},
  [3150] = {.lex_state = 15, .external_lex_state = 2},
  [3151] = {.lex_state = 15, .external_lex_state = 2},
  [3152] = {.lex_state = 15, .external_lex_state = 2},
  [3153] = {.lex_state = 15, .external_lex_state = 2},
  [3154] = {.lex_state = 15, .external_lex_state = 2},
  [3155] = {.lex_state = 15, .external_lex_state = 2},
  [3156] = {.lex_state = 15, .external_lex_state = 2},
  [3157] = {.lex_state = 9, .external_lex_state = 2},
  [3158] = {.lex_state = 15, .external_lex_state = 2},
  [3159] = {.lex_state = 15, .external_lex_state = 2},
  [3160] = {.lex_state = 15, .external_lex_state = 2},
  [3161] = {.lex_state = 15, .external_lex_state = 2},
  [3162] = {.lex_state = 15, .external_lex_state = 2},
  [3163] = {.lex_state = 15, .external_lex_state = 2},
  [3164] = {.lex_state = 15, .external_lex_state = 2},
  [3165] = {.lex_state = 15, .external_lex_state = 2},
  [3166] = {.lex_state = 15, .external_lex_state = 2},
  [3167] = {.lex_state = 15, .external_lex_state = 2},
  [3168] = {.lex_state = 9, .external_lex_state = 2},
  [3169] = {.lex_state = 9, .external_lex_state = 2},
  [3170] = {.lex_state = 9, .external_lex_state = 2},
  [3171] = {.lex_state = 15, .external_lex_state = 2},
  [3172] = {.lex_state = 9, .external_lex_state = 2},
  [3173] = {.lex_state = 9, .external_lex_state = 2},
  [3174] = {.lex_state = 9, .external_lex_state = 2},
  [3175] = {.lex_state = 9, .external_lex_state = 2},
  [3176] = {.lex_state = 9, .external_lex_state = 2},
  [3177] = {.lex_state = 9, .external_lex_state = 2},
  [3178] = {.lex_state = 15, .external_lex_state = 2},
  [3179] = {.lex_state = 9, .external_lex_state = 2},
  [3180] = {.lex_state = 9, .external_lex_state = 2},
  [3181] = {.lex_state = 9, .external_lex_state = 2},
  [3182] = {.lex_state = 9, .external_lex_state = 2},
  [3183] = {.lex_state = 9, .external_lex_state = 2},
  [3184] = {.lex_state = 9, .external_lex_state = 2},
  [3185] = {.lex_state = 15, .external_lex_state = 2},
  [3186] = {.lex_state = 9, .external_lex_state = 2},
  [3187] = {.lex_state = 9, .external_lex_state = 2},
  [3188] = {.lex_state = 15, .external_lex_state = 2},
  [3189] = {.lex_state = 9, .external_lex_state = 2},
  [3190] = {.lex_state = 9, .external_lex_state = 2},
  [3191] = {.lex_state = 15, .external_lex_state = 2},
  [3192] = {.lex_state = 9, .external_lex_state = 2},
  [3193] = {.lex_state = 9, .external_lex_state = 2},
  [3194] = {.lex_state = 9, .external_lex_state = 2},
  [3195] = {.lex_state = 9, .external_lex_state = 2},
  [3196] = {.lex_state = 9, .external_lex_state = 2},
  [3197] = {.lex_state = 9, .external_lex_state = 2},
  [3198] = {.lex_state = 9, .external_lex_state = 2},
  [3199] = {.lex_state = 9, .external_lex_state = 2},
  [3200] = {.lex_state = 15, .external_lex_state = 2},
  [3201] = {.lex_state = 15, .external_lex_state = 2},
  [3202] = {.lex_state = 9, .external_lex_state = 2},
  [3203] = {.lex_state = 9, .external_lex_state = 2},
  [3204] = {.lex_state = 9, .external_lex_state = 2},
  [3205] = {.lex_state = 13, .external_lex_state = 5},
  [3206] = {.lex_state = 13, .external_lex_state = 5},
  [3207] = {.lex_state = 13, .external_lex_state = 5},
  [3208] = {.lex_state = 9, .external_lex_state = 2},
  [3209] = {.lex_state = 13, .external_lex_state = 5},
  [3210] = {.lex_state = 9, .external_lex_state = 2},
  [3211] = {.lex_state = 17, .external_lex_state = 5},
  [3212] = {.lex_state = 17, .external_lex_state = 5},
  [3213] = {.lex_state = 9, .external_lex_state = 2},
  [3214] = {.lex_state = 9, .external_lex_state = 2},
  [3215] = {.lex_state = 9, .external_lex_state = 2},
  [3216] = {.lex_state = 17, .external_lex_state = 5},
  [3217] = {.lex_state = 9, .external_lex_state = 2},
  [3218] = {.lex_state = 9, .external_lex_state = 2},
  [3219] = {.lex_state = 9, .external_lex_state = 2},
  [3220] = {.lex_state = 9, .external_lex_state = 2},
  [3221] = {.lex_state = 9, .external_lex_state = 2},
  [3222] = {.lex_state = 9, .external_lex_state = 2},
  [3223] = {.lex_state = 9, .external_lex_state = 2},
  [3224] = {.lex_state = 9, .external_lex_state = 2},
  [3225] = {.lex_state = 9, .external_lex_state = 2},
  [3226] = {.lex_state = 9, .external_lex_state = 2},
  [3227] = {.lex_state = 9, .external_lex_state = 2},
  [3228] = {.lex_state = 15, .external_lex_state = 5},
  [3229] = {.lex_state = 9, .external_lex_state = 2},
  [3230] = {.lex_state = 9, .external_lex_state = 2},
  [3231] = {.lex_state = 15, .external_lex_state = 5},
  [3232] = {.lex_state = 15, .external_lex_state = 5},
  [3233] = {.lex_state = 9, .external_lex_state = 2},
  [3234] = {.lex_state = 9, .external_lex_state = 2},
  [3235] = {.lex_state = 9, .external_lex_state = 2},
  [3236] = {.lex_state = 9, .external_lex_state = 2},
  [3237] = {.lex_state = 17, .external_lex_state = 5},
  [3238] = {.lex_state = 9, .external_lex_state = 2},
  [3239] = {.lex_state = 9, .external_lex_state = 2},
  [3240] = {.lex_state = 13, .external_lex_state = 5},
  [3241] = {.lex_state = 13, .external_lex_state = 5},
  [3242] = {.lex_state = 13, .external_lex_state = 5},
  [3243] = {.lex_state = 13, .external_lex_state = 5},
  [3244] = {.lex_state = 13, .external_lex_state = 5},
  [3245] = {.lex_state = 13, .external_lex_state = 5},
  [3246] = {.lex_state = 13, .external_lex_state = 5},
  [3247] = {.lex_state = 13, .external_lex_state = 5},
  [3248] = {.lex_state = 13, .external_lex_state = 5},
  [3249] = {.lex_state = 15, .external_lex_state = 5},
  [3250] = {.lex_state = 13, .external_lex_state = 5},
  [3251] = {.lex_state = 13, .external_lex_state = 5},
  [3252] = {.lex_state = 13, .external_lex_state = 5},
  [3253] = {.lex_state = 13, .external_lex_state = 5},
  [3254] = {.lex_state = 13, .external_lex_state = 5},
  [3255] = {.lex_state = 13, .external_lex_state = 5},
  [3256] = {.lex_state = 13, .external_lex_state = 5},
  [3257] = {.lex_state = 13, .external_lex_state = 5},
  [3258] = {.lex_state = 13, .external_lex_state = 5},
  [3259] = {.lex_state = 13, .external_lex_state = 5},
  [3260] = {.lex_state = 13, .external_lex_state = 5},
  [3261] = {.lex_state = 13, .external_lex_state = 5},
  [3262] = {.lex_state = 13, .external_lex_state = 5},
  [3263] = {.lex_state = 13, .external_lex_state = 5},
  [3264] = {.lex_state = 13, .external_lex_state = 5},
  [3265] = {.lex_state = 13, .external_lex_state = 5},
  [3266] = {.lex_state = 13, .external_lex_state = 5},
  [3267] = {.lex_state = 13, .external_lex_state = 5},
  [3268] = {.lex_state = 13, .external_lex_state = 5},
  [3269] = {.lex_state = 13, .external_lex_state = 5},
  [3270] = {.lex_state = 13, .external_lex_state = 5},
  [3271] = {.lex_state = 13, .external_lex_state = 5},
  [3272] = {.lex_state = 13, .external_lex_state = 5},
  [3273] = {.lex_state = 9, .external_lex_state = 2},
  [3274] = {.lex_state = 9, .external_lex_state = 2},
  [3275] = {.lex_state = 9, .external_lex_state = 2},
  [3276] = {.lex_state = 9, .external_lex_state = 2},
  [3277] = {.lex_state = 17, .external_lex_state = 5},
  [3278] = {.lex_state = 9, .external_lex_state = 2},
  [3279] = {.lex_state = 9, .external_lex_state = 2},
  [3280] = {.lex_state = 9, .external_lex_state = 2},
  [3281] = {.lex_state = 9, .external_lex_state = 2},
  [3282] = {.lex_state = 9, .external_lex_state = 2},
  [3283] = {.lex_state = 9, .external_lex_state = 2},
  [3284] = {.lex_state = 9, .external_lex_state = 2},
  [3285] = {.lex_state = 9, .external_lex_state = 2},
  [3286] = {.lex_state = 9, .external_lex_state = 2},
  [3287] = {.lex_state = 9, .external_lex_state = 2},
  [3288] = {.lex_state = 9, .external_lex_state = 2},
  [3289] = {.lex_state = 9, .external_lex_state = 2},
  [3290] = {.lex_state = 9, .external_lex_state = 2},
  [3291] = {.lex_state = 9, .external_lex_state = 2},
  [3292] = {.lex_state = 9, .external_lex_state = 2},
  [3293] = {.lex_state = 9, .external_lex_state = 2},
  [3294] = {.lex_state = 9, .external_lex_state = 2},
  [3295] = {.lex_state = 9, .external_lex_state = 2},
  [3296] = {.lex_state = 9, .external_lex_state = 2},
  [3297] = {.lex_state = 9, .external_lex_state = 2},
  [3298] = {.lex_state = 9, .external_lex_state = 2},
  [3299] = {.lex_state = 9, .external_lex_state = 2},
  [3300] = {.lex_state = 9, .external_lex_state = 2},
  [3301] = {.lex_state = 9, .external_lex_state = 2},
  [3302] = {.lex_state = 9, .external_lex_state = 2},
  [3303] = {.lex_state = 9, .external_lex_state = 2},
  [3304] = {.lex_state = 17, .external_lex_state = 5},
  [3305] = {.lex_state = 17, .external_lex_state = 5},
  [3306] = {.lex_state = 9, .external_lex_state = 2},
  [3307] = {.lex_state = 9, .external_lex_state = 2},
  [3308] = {.lex_state = 17, .external_lex_state = 5},
  [3309] = {.lex_state = 9, .external_lex_state = 2},
  [3310] = {.lex_state = 17, .external_lex_state = 5},
  [3311] = {.lex_state = 17, .external_lex_state = 5},
  [3312] = {.lex_state = 17, .external_lex_state = 5},
  [3313] = {.lex_state = 9, .external_lex_state = 2},
  [3314] = {.lex_state = 9, .external_lex_state = 2},
  [3315] = {.lex_state = 13, .external_lex_state = 5},
  [3316] = {.lex_state = 13, .external_lex_state = 5},
  [3317] = {.lex_state = 9, .external_lex_state = 2},
  [3318] = {.lex_state = 13, .external_lex_state = 5},
  [3319] = {.lex_state = 9, .external_lex_state = 2},
  [3320] = {.lex_state = 17, .external_lex_state = 5},
  [3321] = {.lex_state = 17, .external_lex_state = 5},
  [3322] = {.lex_state = 9, .external_lex_state = 2},
  [3323] = {.lex_state = 17, .external_lex_state = 5},
  [3324] = {.lex_state = 17, .external_lex_state = 5},
  [3325] = {.lex_state = 9, .external_lex_state = 2},
  [3326] = {.lex_state = 17, .external_lex_state = 5},
  [3327] = {.lex_state = 17, .external_lex_state = 5},
  [3328] = {.lex_state = 17, .external_lex_state = 5},
  [3329] = {.lex_state = 9, .external_lex_state = 2},
  [3330] = {.lex_state = 17, .external_lex_state = 5},
  [3331] = {.lex_state = 17, .external_lex_state = 5},
  [3332] = {.lex_state = 9, .external_lex_state = 2},
  [3333] = {.lex_state = 9, .external_lex_state = 2},
  [3334] = {.lex_state = 17, .external_lex_state = 5},
  [3335] = {.lex_state = 17, .external_lex_state = 5},
  [3336] = {.lex_state = 9, .external_lex_state = 2},
  [3337] = {.lex_state = 17, .external_lex_state = 5},
  [3338] = {.lex_state = 17, .external_lex_state = 5},
  [3339] = {.lex_state = 17, .external_lex_state = 5},
  [3340] = {.lex_state = 9, .external_lex_state = 2},
  [3341] = {.lex_state = 17, .external_lex_state = 5},
  [3342] = {.lex_state = 17, .external_lex_state = 5},
  [3343] = {.lex_state = 17, .external_lex_state = 5},
  [3344] = {.lex_state = 9, .external_lex_state = 2},
  [3345] = {.lex_state = 9, .external_lex_state = 2},
  [3346] = {.lex_state = 17, .external_lex_state = 5},
  [3347] = {.lex_state = 9, .external_lex_state = 2},
  [3348] = {.lex_state = 9, .external_lex_state = 2},
  [3349] = {.lex_state = 9, .external_lex_state = 2},
  [3350] = {.lex_state = 17, .external_lex_state = 5},
  [3351] = {.lex_state = 17, .external_lex_state = 5},
  [3352] = {.lex_state = 9, .external_lex_state = 2},
  [3353] = {.lex_state = 17, .external_lex_state = 5},
  [3354] = {.lex_state = 9, .external_lex_state = 2},
  [3355] = {.lex_state = 17, .external_lex_state = 5},
  [3356] = {.lex_state = 15, .external_lex_state = 5},
  [3357] = {.lex_state = 9, .external_lex_state = 2},
  [3358] = {.lex_state = 17, .external_lex_state = 5},
  [3359] = {.lex_state = 9, .external_lex_state = 2},
  [3360] = {.lex_state = 9, .external_lex_state = 2},
  [3361] = {.lex_state = 9, .external_lex_state = 2},
  [3362] = {.lex_state = 17, .external_lex_state = 5},
  [3363] = {.lex_state = 17, .external_lex_state = 5},
  [3364] = {.lex_state = 15, .external_lex_state = 5},
  [3365] = {.lex_state = 9, .external_lex_state = 2},
  [3366] = {.lex_state = 15, .external_lex_state = 5},
  [3367] = {.lex_state = 15, .external_lex_state = 5},
  [3368] = {.lex_state = 15, .external_lex_state = 5},
  [3369] = {.lex_state = 15, .external_lex_state = 5},
  [3370] = {.lex_state = 15, .external_lex_state = 5},
  [3371] = {.lex_state = 15, .external_lex_state = 5},
  [3372] = {.lex_state = 15, .external_lex_state = 5},
  [3373] = {.lex_state = 15, .external_lex_state = 5},
  [3374] = {.lex_state = 15, .external_lex_state = 5},
  [3375] = {.lex_state = 15, .external_lex_state = 5},
  [3376] = {.lex_state = 15, .external_lex_state = 5},
  [3377] = {.lex_state = 15, .external_lex_state = 5},
  [3378] = {.lex_state = 15, .external_lex_state = 5},
  [3379] = {.lex_state = 15, .external_lex_state = 5},
  [3380] = {.lex_state = 15, .external_lex_state = 5},
  [3381] = {.lex_state = 15, .external_lex_state = 5},
  [3382] = {.lex_state = 15, .external_lex_state = 5},
  [3383] = {.lex_state = 15, .external_lex_state = 5},
  [3384] = {.lex_state = 15, .external_lex_state = 5},
  [3385] = {.lex_state = 13, .external_lex_state = 5},
  [3386] = {.lex_state = 15, .external_lex_state = 5},
  [3387] = {.lex_state = 15, .external_lex_state = 5},
  [3388] = {.lex_state = 15, .external_lex_state = 5},
  [3389] = {.lex_state = 15, .external_lex_state = 5},
  [3390] = {.lex_state = 15, .external_lex_state = 5},
  [3391] = {.lex_state = 15, .external_lex_state = 5},
  [3392] = {.lex_state = 15, .external_lex_state = 5},
  [3393] = {.lex_state = 15, .external_lex_state = 5},
  [3394] = {.lex_state = 15, .external_lex_state = 5},
  [3395] = {.lex_state = 15, .external_lex_state = 5},
  [3396] = {.lex_state = 15, .external_lex_state = 5},
  [3397] = {.lex_state = 9, .external_lex_state = 2},
  [3398] = {.lex_state = 9, .external_lex_state = 2},
  [3399] = {.lex_state = 9, .external_lex_state = 2},
  [3400] = {.lex_state = 9, .external_lex_state = 2},
  [3401] = {.lex_state = 9, .external_lex_state = 2},
  [3402] = {.lex_state = 9, .external_lex_state = 2},
  [3403] = {.lex_state = 9, .external_lex_state = 2},
  [3404] = {.lex_state = 9, .external_lex_state = 2},
  [3405] = {.lex_state = 9, .external_lex_state = 2},
  [3406] = {.lex_state = 9, .external_lex_state = 2},
  [3407] = {.lex_state = 9, .external_lex_state = 2},
  [3408] = {.lex_state = 9, .external_lex_state = 2},
  [3409] = {.lex_state = 17, .external_lex_state = 5},
  [3410] = {.lex_state = 9, .external_lex_state = 2},
  [3411] = {.lex_state = 9, .external_lex_state = 2},
  [3412] = {.lex_state = 9, .external_lex_state = 2},
  [3413] = {.lex_state = 9, .external_lex_state = 2},
  [3414] = {.lex_state = 9, .external_lex_state = 2},
  [3415] = {.lex_state = 9, .external_lex_state = 2},
  [3416] = {.lex_state = 9, .external_lex_state = 2},
  [3417] = {.lex_state = 17, .external_lex_state = 5},
  [3418] = {.lex_state = 9, .external_lex_state = 2},
  [3419] = {.lex_state = 9, .external_lex_state = 2},
  [3420] = {.lex_state = 17, .external_lex_state = 5},
  [3421] = {.lex_state = 9, .external_lex_state = 2},
  [3422] = {.lex_state = 9, .external_lex_state = 2},
  [3423] = {.lex_state = 9, .external_lex_state = 2},
  [3424] = {.lex_state = 9, .external_lex_state = 2},
  [3425] = {.lex_state = 9, .external_lex_state = 2},
  [3426] = {.lex_state = 9, .external_lex_state = 2},
  [3427] = {.lex_state = 9, .external_lex_state = 2},
  [3428] = {.lex_state = 9, .external_lex_state = 2},
  [3429] = {.lex_state = 9, .external_lex_state = 2},
  [3430] = {.lex_state = 9, .external_lex_state = 2},
  [3431] = {.lex_state = 9, .external_lex_state = 2},
  [3432] = {.lex_state = 9, .external_lex_state = 2},
  [3433] = {.lex_state = 9, .external_lex_state = 2},
  [3434] = {.lex_state = 9, .external_lex_state = 2},
  [3435] = {.lex_state = 9, .external_lex_state = 2},
  [3436] = {.lex_state = 13, .external_lex_state = 5},
  [3437] = {.lex_state = 13, .external_lex_state = 5},
  [3438] = {.lex_state = 13, .external_lex_state = 5},
  [3439] = {.lex_state = 13, .external_lex_state = 5},
  [3440] = {.lex_state = 13, .external_lex_state = 5},
  [3441] = {.lex_state = 13, .external_lex_state = 5},
  [3442] = {.lex_state = 15, .external_lex_state = 5},
  [3443] = {.lex_state = 13, .external_lex_state = 5},
  [3444] = {.lex_state = 13, .external_lex_state = 5},
  [3445] = {.lex_state = 15, .external_lex_state = 5},
  [3446] = {.lex_state = 15, .external_lex_state = 5},
  [3447] = {.lex_state = 13, .external_lex_state = 5},
  [3448] = {.lex_state = 13, .external_lex_state = 5},
  [3449] = {.lex_state = 13, .external_lex_state = 5},
  [3450] = {.lex_state = 13, .external_lex_state = 5},
  [3451] = {.lex_state = 13, .external_lex_state = 5},
  [3452] = {.lex_state = 13, .external_lex_state = 5},
  [3453] = {.lex_state = 13, .external_lex_state = 5},
  [3454] = {.lex_state = 17, .external_lex_state = 5},
  [3455] = {.lex_state = 13, .external_lex_state = 5},
  [3456] = {.lex_state = 13, .external_lex_state = 5},
  [3457] = {.lex_state = 13, .external_lex_state = 5},
  [3458] = {.lex_state = 9, .external_lex_state = 2},
  [3459] = {.lex_state = 12, .external_lex_state = 5},
  [3460] = {.lex_state = 9, .external_lex_state = 2},
  [3461] = {.lex_state = 13, .external_lex_state = 5},
  [3462] = {.lex_state = 13, .external_lex_state = 5},
  [3463] = {.lex_state = 13, .external_lex_state = 5},
  [3464] = {.lex_state = 13, .external_lex_state = 5},
  [3465] = {.lex_state = 9, .external_lex_state = 2},
  [3466] = {.lex_state = 12, .external_lex_state = 5},
  [3467] = {.lex_state = 9, .external_lex_state = 2},
  [3468] = {.lex_state = 13, .external_lex_state = 5},
  [3469] = {.lex_state = 9, .external_lex_state = 2},
  [3470] = {.lex_state = 9, .external_lex_state = 2},
  [3471] = {.lex_state = 13, .external_lex_state = 5},
  [3472] = {.lex_state = 13, .external_lex_state = 5},
  [3473] = {.lex_state = 9, .external_lex_state = 2},
  [3474] = {.lex_state = 15, .external_lex_state = 5},
  [3475] = {.lex_state = 9, .external_lex_state = 2},
  [3476] = {.lex_state = 9, .external_lex_state = 2},
  [3477] = {.lex_state = 13, .external_lex_state = 5},
  [3478] = {.lex_state = 13, .external_lex_state = 5},
  [3479] = {.lex_state = 9, .external_lex_state = 2},
  [3480] = {.lex_state = 13, .external_lex_state = 5},
  [3481] = {.lex_state = 9, .external_lex_state = 2},
  [3482] = {.lex_state = 13, .external_lex_state = 5},
  [3483] = {.lex_state = 9, .external_lex_state = 2},
  [3484] = {.lex_state = 13, .external_lex_state = 5},
  [3485] = {.lex_state = 13, .external_lex_state = 5},
  [3486] = {.lex_state = 9, .external_lex_state = 2},
  [3487] = {.lex_state = 13, .external_lex_state = 5},
  [3488] = {.lex_state = 12, .external_lex_state = 5},
  [3489] = {.lex_state = 17, .external_lex_state = 5},
  [3490] = {.lex_state = 13, .external_lex_state = 5},
  [3491] = {.lex_state = 13, .external_lex_state = 5},
  [3492] = {.lex_state = 12, .external_lex_state = 5},
  [3493] = {.lex_state = 13, .external_lex_state = 5},
  [3494] = {.lex_state = 13, .external_lex_state = 5},
  [3495] = {.lex_state = 9, .external_lex_state = 2},
  [3496] = {.lex_state = 14, .external_lex_state = 5},
  [3497] = {.lex_state = 13, .external_lex_state = 5},
  [3498] = {.lex_state = 13, .external_lex_state = 5},
  [3499] = {.lex_state = 13, .external_lex_state = 5},
  [3500] = {.lex_state = 12, .external_lex_state = 5},
  [3501] = {.lex_state = 13, .external_lex_state = 5},
  [3502] = {.lex_state = 12, .external_lex_state = 5},
  [3503] = {.lex_state = 12, .external_lex_state = 5},
  [3504] = {.lex_state = 13, .external_lex_state = 5},
  [3505] = {.lex_state = 13, .external_lex_state = 5},
  [3506] = {.lex_state = 15, .external_lex_state = 5},
  [3507] = {.lex_state = 17, .external_lex_state = 5},
  [3508] = {.lex_state = 17, .external_lex_state = 5},
  [3509] = {.lex_state = 12, .external_lex_state = 5},
  [3510] = {.lex_state = 17, .external_lex_state = 5},
  [3511] = {.lex_state = 17, .external_lex_state = 5},
  [3512] = {.lex_state = 17, .external_lex_state = 5},
  [3513] = {.lex_state = 17, .external_lex_state = 5},
  [3514] = {.lex_state = 17, .external_lex_state = 5},
  [3515] = {.lex_state = 13, .external_lex_state = 5},
  [3516] = {.lex_state = 17, .external_lex_state = 5},
  [3517] = {.lex_state = 15, .external_lex_state = 5},
  [3518] = {.lex_state = 17, .external_lex_state = 5},
  [3519] = {.lex_state = 17, .external_lex_state = 5},
  [3520] = {.lex_state = 17, .external_lex_state = 5},
  [3521] = {.lex_state = 14, .external_lex_state = 5},
  [3522] = {.lex_state = 17, .external_lex_state = 5},
  [3523] = {.lex_state = 17, .external_lex_state = 5},
  [3524] = {.lex_state = 9, .external_lex_state = 2},
  [3525] = {.lex_state = 15, .external_lex_state = 5},
  [3526] = {.lex_state = 17, .external_lex_state = 5},
  [3527] = {.lex_state = 15, .external_lex_state = 5},
  [3528] = {.lex_state = 15, .external_lex_state = 5},
  [3529] = {.lex_state = 15, .external_lex_state = 5},
  [3530] = {.lex_state = 17, .external_lex_state = 5},
  [3531] = {.lex_state = 16, .external_lex_state = 5},
  [3532] = {.lex_state = 17, .external_lex_state = 5},
  [3533] = {.lex_state = 17, .external_lex_state = 5},
  [3534] = {.lex_state = 17, .external_lex_state = 5},
  [3535] = {.lex_state = 17, .external_lex_state = 5},
  [3536] = {.lex_state = 17, .external_lex_state = 5},
  [3537] = {.lex_state = 17, .external_lex_state = 5},
  [3538] = {.lex_state = 17, .external_lex_state = 5},
  [3539] = {.lex_state = 13, .external_lex_state = 5},
  [3540] = {.lex_state = 15, .external_lex_state = 5},
  [3541] = {.lex_state = 15, .external_lex_state = 5},
  [3542] = {.lex_state = 15, .external_lex_state = 5},
  [3543] = {.lex_state = 15, .external_lex_state = 5},
  [3544] = {.lex_state = 15, .external_lex_state = 5},
  [3545] = {.lex_state = 17, .external_lex_state = 5},
  [3546] = {.lex_state = 17, .external_lex_state = 5},
  [3547] = {.lex_state = 17, .external_lex_state = 5},
  [3548] = {.lex_state = 13, .external_lex_state = 5},
  [3549] = {.lex_state = 12, .external_lex_state = 5},
  [3550] = {.lex_state = 17, .external_lex_state = 5},
  [3551] = {.lex_state = 13, .external_lex_state = 5},
  [3552] = {.lex_state = 15, .external_lex_state = 5},
  [3553] = {.lex_state = 13, .external_lex_state = 5},
  [3554] = {.lex_state = 9, .external_lex_state = 2},
  [3555] = {.lex_state = 17, .external_lex_state = 5},
  [3556] = {.lex_state = 12, .external_lex_state = 5},
  [3557] = {.lex_state = 9, .external_lex_state = 2},
  [3558] = {.lex_state = 9, .external_lex_state = 2},
  [3559] = {.lex_state = 9, .external_lex_state = 2},
  [3560] = {.lex_state = 15, .external_lex_state = 5},
  [3561] = {.lex_state = 17, .external_lex_state = 5},
  [3562] = {.lex_state = 9, .external_lex_state = 2},
  [3563] = {.lex_state = 15, .external_lex_state = 5},
  [3564] = {.lex_state = 15, .external_lex_state = 5},
  [3565] = {.lex_state = 15, .external_lex_state = 5},
  [3566] = {.lex_state = 15, .external_lex_state = 5},
  [3567] = {.lex_state = 15, .external_lex_state = 5},
  [3568] = {.lex_state = 15, .external_lex_state = 5},
  [3569] = {.lex_state = 17, .external_lex_state = 5},
  [3570] = {.lex_state = 9, .external_lex_state = 2},
  [3571] = {.lex_state = 9, .external_lex_state = 2},
  [3572] = {.lex_state = 15, .external_lex_state = 5},
  [3573] = {.lex_state = 13, .external_lex_state = 5},
  [3574] = {.lex_state = 17, .external_lex_state = 5},
  [3575] = {.lex_state = 9, .external_lex_state = 2},
  [3576] = {.lex_state = 15, .external_lex_state = 5},
  [3577] = {.lex_state = 13, .external_lex_state = 5},
  [3578] = {.lex_state = 9, .external_lex_state = 2},
  [3579] = {.lex_state = 13, .external_lex_state = 5},
  [3580] = {.lex_state = 13, .external_lex_state = 5},
  [3581] = {.lex_state = 15, .external_lex_state = 5},
  [3582] = {.lex_state = 15, .external_lex_state = 5},
  [3583] = {.lex_state = 9, .external_lex_state = 2},
  [3584] = {.lex_state = 15, .external_lex_state = 5},
  [3585] = {.lex_state = 15, .external_lex_state = 5},
  [3586] = {.lex_state = 13, .external_lex_state = 5},
  [3587] = {.lex_state = 13, .external_lex_state = 5},
  [3588] = {.lex_state = 9, .external_lex_state = 2},
  [3589] = {.lex_state = 9, .external_lex_state = 2},
  [3590] = {.lex_state = 13, .external_lex_state = 5},
  [3591] = {.lex_state = 15, .external_lex_state = 5},
  [3592] = {.lex_state = 9, .external_lex_state = 2},
  [3593] = {.lex_state = 15, .external_lex_state = 5},
  [3594] = {.lex_state = 13, .external_lex_state = 5},
  [3595] = {.lex_state = 17, .external_lex_state = 5},
  [3596] = {.lex_state = 15, .external_lex_state = 5},
  [3597] = {.lex_state = 9, .external_lex_state = 2},
  [3598] = {.lex_state = 17, .external_lex_state = 5},
  [3599] = {.lex_state = 13, .external_lex_state = 5},
  [3600] = {.lex_state = 13, .external_lex_state = 5},
  [3601] = {.lex_state = 15, .external_lex_state = 5},
  [3602] = {.lex_state = 13, .external_lex_state = 5},
  [3603] = {.lex_state = 15, .external_lex_state = 5},
  [3604] = {.lex_state = 17, .external_lex_state = 5},
  [3605] = {.lex_state = 13, .external_lex_state = 5},
  [3606] = {.lex_state = 17, .external_lex_state = 5},
  [3607] = {.lex_state = 12, .external_lex_state = 5},
  [3608] = {.lex_state = 13, .external_lex_state = 5},
  [3609] = {.lex_state = 17, .external_lex_state = 5},
  [3610] = {.lex_state = 13, .external_lex_state = 5},
  [3611] = {.lex_state = 17, .external_lex_state = 5},
  [3612] = {.lex_state = 16, .external_lex_state = 5},
  [3613] = {.lex_state = 12, .external_lex_state = 5},
  [3614] = {.lex_state = 9, .external_lex_state = 2},
  [3615] = {.lex_state = 13, .external_lex_state = 5},
  [3616] = {.lex_state = 13, .external_lex_state = 5},
  [3617] = {.lex_state = 15, .external_lex_state = 5},
  [3618] = {.lex_state = 15, .external_lex_state = 5},
  [3619] = {.lex_state = 13, .external_lex_state = 5},
  [3620] = {.lex_state = 16, .external_lex_state = 5},
  [3621] = {.lex_state = 13, .external_lex_state = 5},
  [3622] = {.lex_state = 9, .external_lex_state = 2},
  [3623] = {.lex_state = 9, .external_lex_state = 2},
  [3624] = {.lex_state = 9, .external_lex_state = 2},
  [3625] = {.lex_state = 9, .external_lex_state = 2},
  [3626] = {.lex_state = 9, .external_lex_state = 2},
  [3627] = {.lex_state = 9, .external_lex_state = 2},
  [3628] = {.lex_state = 9, .external_lex_state = 2},
  [3629] = {.lex_state = 13, .external_lex_state = 5},
  [3630] = {.lex_state = 9, .external_lex_state = 2},
  [3631] = {.lex_state = 9, .external_lex_state = 2},
  [3632] = {.lex_state = 13, .external_lex_state = 5},
  [3633] = {.lex_state = 9, .external_lex_state = 2},
  [3634] = {.lex_state = 9, .external_lex_state = 2},
  [3635] = {.lex_state = 13, .external_lex_state = 5},
  [3636] = {.lex_state = 9, .external_lex_state = 2},
  [3637] = {.lex_state = 9, .external_lex_state = 2},
  [3638] = {.lex_state = 9, .external_lex_state = 2},
  [3639] = {.lex_state = 9, .external_lex_state = 2},
  [3640] = {.lex_state = 15, .external_lex_state = 5},
  [3641] = {.lex_state = 9, .external_lex_state = 2},
  [3642] = {.lex_state = 15, .external_lex_state = 5},
  [3643] = {.lex_state = 9, .external_lex_state = 2},
  [3644] = {.lex_state = 9, .external_lex_state = 2},
  [3645] = {.lex_state = 9, .external_lex_state = 2},
  [3646] = {.lex_state = 9, .external_lex_state = 2},
  [3647] = {.lex_state = 9, .external_lex_state = 2},
  [3648] = {.lex_state = 13, .external_lex_state = 5},
  [3649] = {.lex_state = 9, .external_lex_state = 2},
  [3650] = {.lex_state = 9, .external_lex_state = 2},
  [3651] = {.lex_state = 13, .external_lex_state = 5},
  [3652] = {.lex_state = 9, .external_lex_state = 2},
  [3653] = {.lex_state = 15, .external_lex_state = 5},
  [3654] = {.lex_state = 9, .external_lex_state = 2},
  [3655] = {.lex_state = 9, .external_lex_state = 2},
  [3656] = {.lex_state = 9, .external_lex_state = 2},
  [3657] = {.lex_state = 9, .external_lex_state = 2},
  [3658] = {.lex_state = 9, .external_lex_state = 2},
  [3659] = {.lex_state = 9, .external_lex_state = 2},
  [3660] = {.lex_state = 9, .external_lex_state = 2},
  [3661] = {.lex_state = 9, .external_lex_state = 2},
  [3662] = {.lex_state = 9, .external_lex_state = 2},
  [3663] = {.lex_state = 9, .external_lex_state = 2},
  [3664] = {.lex_state = 9, .external_lex_state = 2},
  [3665] = {.lex_state = 9, .external_lex_state = 2},
  [3666] = {.lex_state = 13, .external_lex_state = 5},
  [3667] = {.lex_state = 13, .external_lex_state = 5},
  [3668] = {.lex_state = 9, .external_lex_state = 2},
  [3669] = {.lex_state = 17, .external_lex_state = 5},
  [3670] = {.lex_state = 9, .external_lex_state = 2},
  [3671] = {.lex_state = 9, .external_lex_state = 2},
  [3672] = {.lex_state = 9, .external_lex_state = 2},
  [3673] = {.lex_state = 9, .external_lex_state = 2},
  [3674] = {.lex_state = 9, .external_lex_state = 2},
  [3675] = {.lex_state = 9, .external_lex_state = 2},
  [3676] = {.lex_state = 15, .external_lex_state = 5},
  [3677] = {.lex_state = 9, .external_lex_state = 2},
  [3678] = {.lex_state = 9, .external_lex_state = 2},
  [3679] = {.lex_state = 9, .external_lex_state = 2},
  [3680] = {.lex_state = 13, .external_lex_state = 5},
  [3681] = {.lex_state = 9, .external_lex_state = 2},
  [3682] = {.lex_state = 9, .external_lex_state = 2},
  [3683] = {.lex_state = 9, .external_lex_state = 2},
  [3684] = {.lex_state = 9, .external_lex_state = 2},
  [3685] = {.lex_state = 9, .external_lex_state = 2},
  [3686] = {.lex_state = 9, .external_lex_state = 2},
  [3687] = {.lex_state = 13, .external_lex_state = 5},
  [3688] = {.lex_state = 9, .external_lex_state = 2},
  [3689] = {.lex_state = 9, .external_lex_state = 2},
  [3690] = {.lex_state = 15, .external_lex_state = 5},
  [3691] = {.lex_state = 9, .external_lex_state = 2},
  [3692] = {.lex_state = 9, .external_lex_state = 2},
  [3693] = {.lex_state = 9, .external_lex_state = 2},
  [3694] = {.lex_state = 9, .external_lex_state = 2},
  [3695] = {.lex_state = 9, .external_lex_state = 2},
  [3696] = {.lex_state = 9, .external_lex_state = 2},
  [3697] = {.lex_state = 13, .external_lex_state = 5},
  [3698] = {.lex_state = 15, .external_lex_state = 2},
  [3699] = {.lex_state = 9, .external_lex_state = 2},
  [3700] = {.lex_state = 9, .external_lex_state = 2},
  [3701] = {.lex_state = 9, .external_lex_state = 2},
  [3702] = {.lex_state = 13, .external_lex_state = 5},
  [3703] = {.lex_state = 9, .external_lex_state = 2},
  [3704] = {.lex_state = 9, .external_lex_state = 2},
  [3705] = {.lex_state = 9, .external_lex_state = 2},
  [3706] = {.lex_state = 9, .external_lex_state = 2},
  [3707] = {.lex_state = 9, .external_lex_state = 2},
  [3708] = {.lex_state = 12, .external_lex_state = 5},
  [3709] = {.lex_state = 9, .external_lex_state = 2},
  [3710] = {.lex_state = 15, .external_lex_state = 5},
  [3711] = {.lex_state = 9, .external_lex_state = 2},
  [3712] = {.lex_state = 17, .external_lex_state = 5},
  [3713] = {.lex_state = 9, .external_lex_state = 2},
  [3714] = {.lex_state = 9, .external_lex_state = 2},
  [3715] = {.lex_state = 9, .external_lex_state = 2},
  [3716] = {.lex_state = 9, .external_lex_state = 2},
  [3717] = {.lex_state = 9, .external_lex_state = 2},
  [3718] = {.lex_state = 9, .external_lex_state = 2},
  [3719] = {.lex_state = 9, .external_lex_state = 2},
  [3720] = {.lex_state = 9, .external_lex_state = 2},
  [3721] = {.lex_state = 9, .external_lex_state = 2},
  [3722] = {.lex_state = 9, .external_lex_state = 2},
  [3723] = {.lex_state = 9, .external_lex_state = 2},
  [3724] = {.lex_state = 9, .external_lex_state = 2},
  [3725] = {.lex_state = 13, .external_lex_state = 5},
  [3726] = {.lex_state = 9, .external_lex_state = 2},
  [3727] = {.lex_state = 9, .external_lex_state = 2},
  [3728] = {.lex_state = 15, .external_lex_state = 5},
  [3729] = {.lex_state = 9, .external_lex_state = 2},
  [3730] = {.lex_state = 9, .external_lex_state = 2},
  [3731] = {.lex_state = 9, .external_lex_state = 2},
  [3732] = {.lex_state = 9, .external_lex_state = 2},
  [3733] = {.lex_state = 9, .external_lex_state = 2},
  [3734] = {.lex_state = 9, .external_lex_state = 2},
  [3735] = {.lex_state = 9, .external_lex_state = 2},
  [3736] = {.lex_state = 9, .external_lex_state = 2},
  [3737] = {.lex_state = 9, .external_lex_state = 2},
  [3738] = {.lex_state = 9, .external_lex_state = 2},
  [3739] = {.lex_state = 9, .external_lex_state = 2},
  [3740] = {.lex_state = 9, .external_lex_state = 2},
  [3741] = {.lex_state = 9, .external_lex_state = 2},
  [3742] = {.lex_state = 9, .external_lex_state = 2},
  [3743] = {.lex_state = 9, .external_lex_state = 2},
  [3744] = {.lex_state = 9, .external_lex_state = 2},
  [3745] = {.lex_state = 9, .external_lex_state = 2},
  [3746] = {.lex_state = 9, .external_lex_state = 2},
  [3747] = {.lex_state = 9, .external_lex_state = 2},
  [3748] = {.lex_state = 9, .external_lex_state = 2},
  [3749] = {.lex_state = 9, .external_lex_state = 2},
  [3750] = {.lex_state = 9, .external_lex_state = 2},
  [3751] = {.lex_state = 9, .external_lex_state = 2},
  [3752] = {.lex_state = 9, .external_lex_state = 2},
  [3753] = {.lex_state = 9, .external_lex_state = 2},
  [3754] = {.lex_state = 9, .external_lex_state = 2},
  [3755] = {.lex_state = 9, .external_lex_state = 2},
  [3756] = {.lex_state = 9, .external_lex_state = 2},
  [3757] = {.lex_state = 9, .external_lex_state = 2},
  [3758] = {.lex_state = 9, .external_lex_state = 2},
  [3759] = {.lex_state = 9, .external_lex_state = 2},
  [3760] = {.lex_state = 9, .external_lex_state = 2},
  [3761] = {.lex_state = 9, .external_lex_state = 2},
  [3762] = {.lex_state = 9, .external_lex_state = 2},
  [3763] = {.lex_state = 9, .external_lex_state = 2},
  [3764] = {.lex_state = 9, .external_lex_state = 2},
  [3765] = {.lex_state = 9, .external_lex_state = 2},
  [3766] = {.lex_state = 13, .external_lex_state = 5},
  [3767] = {.lex_state = 13, .external_lex_state = 5},
  [3768] = {.lex_state = 9, .external_lex_state = 2},
  [3769] = {.lex_state = 13, .external_lex_state = 5},
  [3770] = {.lex_state = 9, .external_lex_state = 2},
  [3771] = {.lex_state = 15, .external_lex_state = 5},
  [3772] = {.lex_state = 15, .external_lex_state = 5},
  [3773] = {.lex_state = 13, .external_lex_state = 5},
  [3774] = {.lex_state = 13, .external_lex_state = 5},
  [3775] = {.lex_state = 15, .external_lex_state = 5},
  [3776] = {.lex_state = 17, .external_lex_state = 5},
  [3777] = {.lex_state = 15, .external_lex_state = 5},
  [3778] = {.lex_state = 15, .external_lex_state = 5},
  [3779] = {.lex_state = 9, .external_lex_state = 2},
  [3780] = {.lex_state = 9, .external_lex_state = 2},
  [3781] = {.lex_state = 9, .external_lex_state = 2},
  [3782] = {.lex_state = 15, .external_lex_state = 5},
  [3783] = {.lex_state = 9, .external_lex_state = 2},
  [3784] = {.lex_state = 9, .external_lex_state = 2},
  [3785] = {.lex_state = 15, .external_lex_state = 5},
  [3786] = {.lex_state = 15, .external_lex_state = 5},
  [3787] = {.lex_state = 13, .external_lex_state = 5},
  [3788] = {.lex_state = 9, .external_lex_state = 2},
  [3789] = {.lex_state = 13, .external_lex_state = 5},
  [3790] = {.lex_state = 13, .external_lex_state = 5},
  [3791] = {.lex_state = 13, .external_lex_state = 5},
  [3792] = {.lex_state = 9, .external_lex_state = 2},
  [3793] = {.lex_state = 15, .external_lex_state = 2},
  [3794] = {.lex_state = 13, .external_lex_state = 5},
  [3795] = {.lex_state = 13, .external_lex_state = 5},
  [3796] = {.lex_state = 13, .external_lex_state = 5},
  [3797] = {.lex_state = 13, .external_lex_state = 5},
  [3798] = {.lex_state = 13, .external_lex_state = 5},
  [3799] = {.lex_state = 9, .external_lex_state = 2},
  [3800] = {.lex_state = 17, .external_lex_state = 5},
  [3801] = {.lex_state = 17, .external_lex_state = 5},
  [3802] = {.lex_state = 13, .external_lex_state = 5},
  [3803] = {.lex_state = 13, .external_lex_state = 5},
  [3804] = {.lex_state = 13, .external_lex_state = 5},
  [3805] = {.lex_state = 13, .external_lex_state = 5},
  [3806] = {.lex_state = 13, .external_lex_state = 5},
  [3807] = {.lex_state = 13, .external_lex_state = 5},
  [3808] = {.lex_state = 9, .external_lex_state = 2},
  [3809] = {.lex_state = 17, .external_lex_state = 5},
  [3810] = {.lex_state = 17, .external_lex_state = 5},
  [3811] = {.lex_state = 13, .external_lex_state = 5},
  [3812] = {.lex_state = 17, .external_lex_state = 5},
  [3813] = {.lex_state = 13, .external_lex_state = 5},
  [3814] = {.lex_state = 13, .external_lex_state = 5},
  [3815] = {.lex_state = 17, .external_lex_state = 5},
  [3816] = {.lex_state = 17, .external_lex_state = 5},
  [3817] = {.lex_state = 13, .external_lex_state = 5},
  [3818] = {.lex_state = 9, .external_lex_state = 2},
  [3819] = {.lex_state = 17, .external_lex_state = 5},
  [3820] = {.lex_state = 17, .external_lex_state = 5},
  [3821] = {.lex_state = 13, .external_lex_state = 5},
  [3822] = {.lex_state = 13, .external_lex_state = 5},
  [3823] = {.lex_state = 13, .external_lex_state = 5},
  [3824] = {.lex_state = 13, .external_lex_state = 5},
  [3825] = {.lex_state = 13, .external_lex_state = 5},
  [3826] = {.lex_state = 17, .external_lex_state = 5},
  [3827] = {.lex_state = 17, .external_lex_state = 5},
  [3828] = {.lex_state = 13, .external_lex_state = 5},
  [3829] = {.lex_state = 13, .external_lex_state = 5},
  [3830] = {.lex_state = 17, .external_lex_state = 5},
  [3831] = {.lex_state = 13, .external_lex_state = 5},
  [3832] = {.lex_state = 13, .external_lex_state = 5},
  [3833] = {.lex_state = 9, .external_lex_state = 2},
  [3834] = {.lex_state = 13, .external_lex_state = 5},
  [3835] = {.lex_state = 13, .external_lex_state = 5},
  [3836] = {.lex_state = 13, .external_lex_state = 5},
  [3837] = {.lex_state = 17, .external_lex_state = 5},
  [3838] = {.lex_state = 17, .external_lex_state = 5},
  [3839] = {.lex_state = 17, .external_lex_state = 5},
  [3840] = {.lex_state = 17, .external_lex_state = 5},
  [3841] = {.lex_state = 17, .external_lex_state = 5},
  [3842] = {.lex_state = 13, .external_lex_state = 5},
  [3843] = {.lex_state = 13, .external_lex_state = 5},
  [3844] = {.lex_state = 13, .external_lex_state = 5},
  [3845] = {.lex_state = 13, .external_lex_state = 5},
  [3846] = {.lex_state = 13, .external_lex_state = 5},
  [3847] = {.lex_state = 17, .external_lex_state = 5},
  [3848] = {.lex_state = 13, .external_lex_state = 5},
  [3849] = {.lex_state = 13, .external_lex_state = 5},
  [3850] = {.lex_state = 13, .external_lex_state = 5},
  [3851] = {.lex_state = 13, .external_lex_state = 5},
  [3852] = {.lex_state = 13, .external_lex_state = 5},
  [3853] = {.lex_state = 13, .external_lex_state = 5},
  [3854] = {.lex_state = 13, .external_lex_state = 5},
  [3855] = {.lex_state = 13, .external_lex_state = 5},
  [3856] = {.lex_state = 13, .external_lex_state = 5},
  [3857] = {.lex_state = 13, .external_lex_state = 5},
  [3858] = {.lex_state = 13, .external_lex_state = 5},
  [3859] = {.lex_state = 13, .external_lex_state = 5},
  [3860] = {.lex_state = 13, .external_lex_state = 5},
  [3861] = {.lex_state = 13, .external_lex_state = 5},
  [3862] = {.lex_state = 15, .external_lex_state = 5},
  [3863] = {.lex_state = 13, .external_lex_state = 5},
  [3864] = {.lex_state = 15, .external_lex_state = 5},
  [3865] = {.lex_state = 15, .external_lex_state = 5},
  [3866] = {.lex_state = 15, .external_lex_state = 5},
  [3867] = {.lex_state = 13, .external_lex_state = 5},
  [3868] = {.lex_state = 17, .external_lex_state = 5},
  [3869] = {.lex_state = 15, .external_lex_state = 5},
  [3870] = {.lex_state = 13, .external_lex_state = 5},
  [3871] = {.lex_state = 17, .external_lex_state = 5},
  [3872] = {.lex_state = 17, .external_lex_state = 5},
  [3873] = {.lex_state = 15, .external_lex_state = 5},
  [3874] = {.lex_state = 15, .external_lex_state = 5},
  [3875] = {.lex_state = 13, .external_lex_state = 5},
  [3876] = {.lex_state = 17, .external_lex_state = 5},
  [3877] = {.lex_state = 13, .external_lex_state = 5},
  [3878] = {.lex_state = 13, .external_lex_state = 5},
  [3879] = {.lex_state = 13, .external_lex_state = 5},
  [3880] = {.lex_state = 15, .external_lex_state = 5},
  [3881] = {.lex_state = 13, .external_lex_state = 5},
  [3882] = {.lex_state = 15, .external_lex_state = 5},
  [3883] = {.lex_state = 13, .external_lex_state = 5},
  [3884] = {.lex_state = 13, .external_lex_state = 5},
  [3885] = {.lex_state = 13, .external_lex_state = 5},
  [3886] = {.lex_state = 13, .external_lex_state = 5},
  [3887] = {.lex_state = 13, .external_lex_state = 5},
  [3888] = {.lex_state = 13, .external_lex_state = 5},
  [3889] = {.lex_state = 13, .external_lex_state = 5},
  [3890] = {.lex_state = 13, .external_lex_state = 5},
  [3891] = {.lex_state = 13, .external_lex_state = 5},
  [3892] = {.lex_state = 13, .external_lex_state = 5},
  [3893] = {.lex_state = 17, .external_lex_state = 5},
  [3894] = {.lex_state = 13, .external_lex_state = 5},
  [3895] = {.lex_state = 13, .external_lex_state = 5},
  [3896] = {.lex_state = 17, .external_lex_state = 5},
  [3897] = {.lex_state = 13, .external_lex_state = 5},
  [3898] = {.lex_state = 13, .external_lex_state = 5},
  [3899] = {.lex_state = 13, .external_lex_state = 5},
  [3900] = {.lex_state = 9, .external_lex_state = 2},
  [3901] = {.lex_state = 17, .external_lex_state = 5},
  [3902] = {.lex_state = 17, .external_lex_state = 5},
  [3903] = {.lex_state = 15, .external_lex_state = 5},
  [3904] = {.lex_state = 15, .external_lex_state = 5},
  [3905] = {.lex_state = 13, .external_lex_state = 5},
  [3906] = {.lex_state = 17, .external_lex_state = 5},
  [3907] = {.lex_state = 17, .external_lex_state = 5},
  [3908] = {.lex_state = 17, .external_lex_state = 5},
  [3909] = {.lex_state = 15, .external_lex_state = 5},
  [3910] = {.lex_state = 17, .external_lex_state = 5},
  [3911] = {.lex_state = 15, .external_lex_state = 5},
  [3912] = {.lex_state = 17, .external_lex_state = 5},
  [3913] = {.lex_state = 15, .external_lex_state = 5},
  [3914] = {.lex_state = 17, .external_lex_state = 5},
  [3915] = {.lex_state = 17, .external_lex_state = 5},
  [3916] = {.lex_state = 13, .external_lex_state = 5},
  [3917] = {.lex_state = 15, .external_lex_state = 5},
  [3918] = {.lex_state = 13, .external_lex_state = 5},
  [3919] = {.lex_state = 15, .external_lex_state = 5},
  [3920] = {.lex_state = 15, .external_lex_state = 5},
  [3921] = {.lex_state = 9, .external_lex_state = 2},
  [3922] = {.lex_state = 17, .external_lex_state = 5},
  [3923] = {.lex_state = 13, .external_lex_state = 5},
  [3924] = {.lex_state = 13, .external_lex_state = 5},
  [3925] = {.lex_state = 15, .external_lex_state = 5},
  [3926] = {.lex_state = 15, .external_lex_state = 5},
  [3927] = {.lex_state = 17, .external_lex_state = 5},
  [3928] = {.lex_state = 17, .external_lex_state = 5},
  [3929] = {.lex_state = 17, .external_lex_state = 5},
  [3930] = {.lex_state = 17, .external_lex_state = 5},
  [3931] = {.lex_state = 17, .external_lex_state = 5},
  [3932] = {.lex_state = 17, .external_lex_state = 5},
  [3933] = {.lex_state = 15, .external_lex_state = 5},
  [3934] = {.lex_state = 15, .external_lex_state = 5},
  [3935] = {.lex_state = 15, .external_lex_state = 5},
  [3936] = {.lex_state = 13, .external_lex_state = 5},
  [3937] = {.lex_state = 17, .external_lex_state = 5},
  [3938] = {.lex_state = 17, .external_lex_state = 5},
  [3939] = {.lex_state = 17, .external_lex_state = 5},
  [3940] = {.lex_state = 13, .external_lex_state = 5},
  [3941] = {.lex_state = 17, .external_lex_state = 5},
  [3942] = {.lex_state = 17, .external_lex_state = 5},
  [3943] = {.lex_state = 17, .external_lex_state = 5},
  [3944] = {.lex_state = 17, .external_lex_state = 5},
  [3945] = {.lex_state = 15, .external_lex_state = 5},
  [3946] = {.lex_state = 17, .external_lex_state = 5},
  [3947] = {.lex_state = 13, .external_lex_state = 5},
  [3948] = {.lex_state = 17, .external_lex_state = 5},
  [3949] = {.lex_state = 15, .external_lex_state = 5},
  [3950] = {.lex_state = 13, .external_lex_state = 5},
  [3951] = {.lex_state = 15, .external_lex_state = 5},
  [3952] = {.lex_state = 17, .external_lex_state = 5},
  [3953] = {.lex_state = 13, .external_lex_state = 5},
  [3954] = {.lex_state = 15, .external_lex_state = 5},
  [3955] = {.lex_state = 15, .external_lex_state = 5},
  [3956] = {.lex_state = 13, .external_lex_state = 5},
  [3957] = {.lex_state = 17, .external_lex_state = 5},
  [3958] = {.lex_state = 17, .external_lex_state = 5},
  [3959] = {.lex_state = 17, .external_lex_state = 5},
  [3960] = {.lex_state = 17, .external_lex_state = 5},
  [3961] = {.lex_state = 17, .external_lex_state = 5},
  [3962] = {.lex_state = 17, .external_lex_state = 5},
  [3963] = {.lex_state = 13, .external_lex_state = 5},
  [3964] = {.lex_state = 17, .external_lex_state = 5},
  [3965] = {.lex_state = 17, .external_lex_state = 5},
  [3966] = {.lex_state = 17, .external_lex_state = 5},
  [3967] = {.lex_state = 17, .external_lex_state = 5},
  [3968] = {.lex_state = 17, .external_lex_state = 5},
  [3969] = {.lex_state = 17, .external_lex_state = 5},
  [3970] = {.lex_state = 13, .external_lex_state = 5},
  [3971] = {.lex_state = 17, .external_lex_state = 5},
  [3972] = {.lex_state = 13, .external_lex_state = 5},
  [3973] = {.lex_state = 17, .external_lex_state = 5},
  [3974] = {.lex_state = 13, .external_lex_state = 5},
  [3975] = {.lex_state = 17, .external_lex_state = 5},
  [3976] = {.lex_state = 17, .external_lex_state = 5},
  [3977] = {.lex_state = 15, .external_lex_state = 5},
  [3978] = {.lex_state = 17, .external_lex_state = 5},
  [3979] = {.lex_state = 17, .external_lex_state = 5},
  [3980] = {.lex_state = 17, .external_lex_state = 5},
  [3981] = {.lex_state = 17, .external_lex_state = 5},
  [3982] = {.lex_state = 17, .external_lex_state = 5},
  [3983] = {.lex_state = 17, .external_lex_state = 5},
  [3984] = {.lex_state = 17, .external_lex_state = 5},
  [3985] = {.lex_state = 17, .external_lex_state = 5},
  [3986] = {.lex_state = 13, .external_lex_state = 5},
  [3987] = {.lex_state = 17, .external_lex_state = 5},
  [3988] = {.lex_state = 17, .external_lex_state = 5},
  [3989] = {.lex_state = 15, .external_lex_state = 5},
  [3990] = {.lex_state = 17, .external_lex_state = 5},
  [3991] = {.lex_state = 17, .external_lex_state = 5},
  [3992] = {.lex_state = 17, .external_lex_state = 5},
  [3993] = {.lex_state = 17, .external_lex_state = 5},
  [3994] = {.lex_state = 17, .external_lex_state = 5},
  [3995] = {.lex_state = 17, .external_lex_state = 5},
  [3996] = {.lex_state = 13, .external_lex_state = 5},
  [3997] = {.lex_state = 15, .external_lex_state = 5},
  [3998] = {.lex_state = 15, .external_lex_state = 5},
  [3999] = {.lex_state = 15, .external_lex_state = 5},
  [4000] = {.lex_state = 15, .external_lex_state = 5},
  [4001] = {.lex_state = 15, .external_lex_state = 5},
  [4002] = {.lex_state = 15, .external_lex_state = 5},
  [4003] = {.lex_state = 13, .external_lex_state = 5},
  [4004] = {.lex_state = 15, .external_lex_state = 5},
  [4005] = {.lex_state = 15, .external_lex_state = 5},
  [4006] = {.lex_state = 15, .external_lex_state = 5},
  [4007] = {.lex_state = 15, .external_lex_state = 5},
  [4008] = {.lex_state = 15, .external_lex_state = 5},
  [4009] = {.lex_state = 15, .external_lex_state = 5},
  [4010] = {.lex_state = 15, .external_lex_state = 5},
  [4011] = {.lex_state = 17, .external_lex_state = 5},
  [4012] = {.lex_state = 15, .external_lex_state = 5},
  [4013] = {.lex_state = 15, .external_lex_state = 5},
  [4014] = {.lex_state = 15, .external_lex_state = 5},
  [4015] = {.lex_state = 15, .external_lex_state = 5},
  [4016] = {.lex_state = 15, .external_lex_state = 5},
  [4017] = {.lex_state = 17, .external_lex_state = 5},
  [4018] = {.lex_state = 15, .external_lex_state = 5},
  [4019] = {.lex_state = 17, .external_lex_state = 5},
  [4020] = {.lex_state = 15, .external_lex_state = 5},
  [4021] = {.lex_state = 17, .external_lex_state = 5},
  [4022] = {.lex_state = 15, .external_lex_state = 5},
  [4023] = {.lex_state = 17, .external_lex_state = 5},
  [4024] = {.lex_state = 15, .external_lex_state = 5},
  [4025] = {.lex_state = 15, .external_lex_state = 5},
  [4026] = {.lex_state = 17, .external_lex_state = 5},
  [4027] = {.lex_state = 15, .external_lex_state = 5},
  [4028] = {.lex_state = 15, .external_lex_state = 5},
  [4029] = {.lex_state = 15, .external_lex_state = 5},
  [4030] = {.lex_state = 17, .external_lex_state = 5},
  [4031] = {.lex_state = 17, .external_lex_state = 5},
  [4032] = {.lex_state = 15, .external_lex_state = 5},
  [4033] = {.lex_state = 15, .external_lex_state = 5},
  [4034] = {.lex_state = 15, .external_lex_state = 5},
  [4035] = {.lex_state = 15, .external_lex_state = 5},
  [4036] = {.lex_state = 17, .external_lex_state = 5},
  [4037] = {.lex_state = 17, .external_lex_state = 5},
  [4038] = {.lex_state = 17, .external_lex_state = 5},
  [4039] = {.lex_state = 15, .external_lex_state = 5},
  [4040] = {.lex_state = 15, .external_lex_state = 5},
  [4041] = {.lex_state = 15, .external_lex_state = 5},
  [4042] = {.lex_state = 15, .external_lex_state = 5},
  [4043] = {.lex_state = 17, .external_lex_state = 5},
  [4044] = {.lex_state = 17, .external_lex_state = 5},
  [4045] = {.lex_state = 15, .external_lex_state = 5},
  [4046] = {.lex_state = 17, .external_lex_state = 5},
  [4047] = {.lex_state = 17, .external_lex_state = 5},
  [4048] = {.lex_state = 15, .external_lex_state = 5},
  [4049] = {.lex_state = 17, .external_lex_state = 5},
  [4050] = {.lex_state = 15, .external_lex_state = 5},
  [4051] = {.lex_state = 15, .external_lex_state = 5},
  [4052] = {.lex_state = 15, .external_lex_state = 5},
  [4053] = {.lex_state = 15, .external_lex_state = 5},
  [4054] = {.lex_state = 15, .external_lex_state = 5},
  [4055] = {.lex_state = 15, .external_lex_state = 5},
  [4056] = {.lex_state = 13, .external_lex_state = 5},
  [4057] = {.lex_state = 13, .external_lex_state = 5},
  [4058] = {.lex_state = 15, .external_lex_state = 5},
  [4059] = {.lex_state = 13, .external_lex_state = 5},
  [4060] = {.lex_state = 15, .external_lex_state = 5},
  [4061] = {.lex_state = 13, .external_lex_state = 5},
  [4062] = {.lex_state = 15, .external_lex_state = 5},
  [4063] = {.lex_state = 15, .external_lex_state = 5},
  [4064] = {.lex_state = 15, .external_lex_state = 5},
  [4065] = {.lex_state = 15, .external_lex_state = 5},
  [4066] = {.lex_state = 15, .external_lex_state = 5},
  [4067] = {.lex_state = 15, .external_lex_state = 5},
  [4068] = {.lex_state = 17, .external_lex_state = 5},
  [4069] = {.lex_state = 13, .external_lex_state = 5},
  [4070] = {.lex_state = 15, .external_lex_state = 5},
  [4071] = {.lex_state = 15, .external_lex_state = 5},
  [4072] = {.lex_state = 13, .external_lex_state = 5},
  [4073] = {.lex_state = 13, .external_lex_state = 5},
  [4074] = {.lex_state = 13, .external_lex_state = 5},
  [4075] = {.lex_state = 15, .external_lex_state = 5},
  [4076] = {.lex_state = 15, .external_lex_state = 5},
  [4077] = {.lex_state = 15, .external_lex_state = 5},
  [4078] = {.lex_state = 15, .external_lex_state = 5},
  [4079] = {.lex_state = 13, .external_lex_state = 5},
  [4080] = {.lex_state = 13, .external_lex_state = 5},
  [4081] = {.lex_state = 13, .external_lex_state = 5},
  [4082] = {.lex_state = 15, .external_lex_state = 5},
  [4083] = {.lex_state = 13, .external_lex_state = 5},
  [4084] = {.lex_state = 13, .external_lex_state = 5},
  [4085] = {.lex_state = 15, .external_lex_state = 5},
  [4086] = {.lex_state = 15, .external_lex_state = 5},
  [4087] = {.lex_state = 15, .external_lex_state = 5},
  [4088] = {.lex_state = 13, .external_lex_state = 5},
  [4089] = {.lex_state = 15, .external_lex_state = 5},
  [4090] = {.lex_state = 17, .external_lex_state = 5},
  [4091] = {.lex_state = 13, .external_lex_state = 5},
  [4092] = {.lex_state = 15, .external_lex_state = 5},
  [4093] = {.lex_state = 13, .external_lex_state = 5},
  [4094] = {.lex_state = 13, .external_lex_state = 5},
  [4095] = {.lex_state = 15, .external_lex_state = 5},
  [4096] = {.lex_state = 15, .external_lex_state = 5},
  [4097] = {.lex_state = 17, .external_lex_state = 5},
  [4098] = {.lex_state = 13, .external_lex_state = 5},
  [4099] = {.lex_state = 17, .external_lex_state = 5},
  [4100] = {.lex_state = 17, .external_lex_state = 5},
  [4101] = {.lex_state = 17, .external_lex_state = 5},
  [4102] = {.lex_state = 17, .external_lex_state = 5},
  [4103] = {.lex_state = 18, .external_lex_state = 5},
  [4104] = {.lex_state = 17, .external_lex_state = 5},
  [4105] = {.lex_state = 17, .external_lex_state = 5},
  [4106] = {.lex_state = 17, .external_lex_state = 5},
  [4107] = {.lex_state = 17, .external_lex_state = 5},
  [4108] = {.lex_state = 17, .external_lex_state = 5},
  [4109] = {.lex_state = 9, .external_lex_state = 2},
  [4110] = {.lex_state = 13, .external_lex_state = 5},
  [4111] = {.lex_state = 13, .external_lex_state = 5},
  [4112] = {.lex_state = 13, .external_lex_state = 5},
  [4113] = {.lex_state = 17, .external_lex_state = 5},
  [4114] = {.lex_state = 17, .external_lex_state = 5},
  [4115] = {.lex_state = 17, .external_lex_state = 5},
  [4116] = {.lex_state = 17, .external_lex_state = 5},
  [4117] = {.lex_state = 17, .external_lex_state = 5},
  [4118] = {.lex_state = 17, .external_lex_state = 5},
  [4119] = {.lex_state = 17, .external_lex_state = 5},
  [4120] = {.lex_state = 17, .external_lex_state = 5},
  [4121] = {.lex_state = 13, .external_lex_state = 5},
  [4122] = {.lex_state = 13, .external_lex_state = 5},
  [4123] = {.lex_state = 13, .external_lex_state = 5},
  [4124] = {.lex_state = 13, .external_lex_state = 5},
  [4125] = {.lex_state = 13, .external_lex_state = 5},
  [4126] = {.lex_state = 13, .external_lex_state = 5},
  [4127] = {.lex_state = 13, .external_lex_state = 5},
  [4128] = {.lex_state = 13, .external_lex_state = 5},
  [4129] = {.lex_state = 13, .external_lex_state = 5},
  [4130] = {.lex_state = 13, .external_lex_state = 5},
  [4131] = {.lex_state = 13, .external_lex_state = 5},
  [4132] = {.lex_state = 13, .external_lex_state = 5},
  [4133] = {.lex_state = 13, .external_lex_state = 5},
  [4134] = {.lex_state = 13, .external_lex_state = 5},
  [4135] = {.lex_state = 13, .external_lex_state = 5},
  [4136] = {.lex_state = 13, .external_lex_state = 5},
  [4137] = {.lex_state = 13, .external_lex_state = 5},
  [4138] = {.lex_state = 13, .external_lex_state = 5},
  [4139] = {.lex_state = 9, .external_lex_state = 2},
  [4140] = {.lex_state = 18, .external_lex_state = 5},
  [4141] = {.lex_state = 18, .external_lex_state = 5},
  [4142] = {.lex_state = 18, .external_lex_state = 5},
  [4143] = {.lex_state = 19, .external_lex_state = 5},
  [4144] = {.lex_state = 19, .external_lex_state = 5},
  [4145] = {.lex_state = 18, .external_lex_state = 5},
  [4146] = {.lex_state = 19, .external_lex_state = 5},
  [4147] = {.lex_state = 18, .external_lex_state = 5},
  [4148] = {.lex_state = 18, .external_lex_state = 5},
  [4149] = {.lex_state = 18, .external_lex_state = 5},
  [4150] = {.lex_state = 18, .external_lex_state = 5},
  [4151] = {.lex_state = 18, .external_lex_state = 5},
  [4152] = {.lex_state = 18, .external_lex_state = 5},
  [4153] = {.lex_state = 18, .external_lex_state = 5},
  [4154] = {.lex_state = 18, .external_lex_state = 5},
  [4155] = {.lex_state = 18, .external_lex_state = 5},
  [4156] = {.lex_state = 19, .external_lex_state = 5},
  [4157] = {.lex_state = 19, .external_lex_state = 5},
  [4158] = {.lex_state = 18, .external_lex_state = 5},
  [4159] = {.lex_state = 19, .external_lex_state = 5},
  [4160] = {.lex_state = 19, .external_lex_state = 5},
  [4161] = {.lex_state = 19, .external_lex_state = 5},
  [4162] = {.lex_state = 18, .external_lex_state = 5},
  [4163] = {.lex_state = 9, .external_lex_state = 2},
  [4164] = {.lex_state = 19, .external_lex_state = 5},
  [4165] = {.lex_state = 19, .external_lex_state = 5},
  [4166] = {.lex_state = 18, .external_lex_state = 5},
  [4167] = {.lex_state = 18, .external_lex_state = 5},
  [4168] = {.lex_state = 18, .external_lex_state = 5},
  [4169] = {.lex_state = 9, .external_lex_state = 2},
  [4170] = {.lex_state = 18, .external_lex_state = 5},
  [4171] = {.lex_state = 9, .external_lex_state = 2},
  [4172] = {.lex_state = 9, .external_lex_state = 2},
  [4173] = {.lex_state = 9, .external_lex_state = 2},
  [4174] = {.lex_state = 9, .external_lex_state = 2},
  [4175] = {.lex_state = 9, .external_lex_state = 2},
  [4176] = {.lex_state = 18, .external_lex_state = 5},
  [4177] = {.lex_state = 9, .external_lex_state = 2},
  [4178] = {.lex_state = 19, .external_lex_state = 5},
  [4179] = {.lex_state = 9, .external_lex_state = 2},
  [4180] = {.lex_state = 9, .external_lex_state = 2},
  [4181] = {.lex_state = 9, .external_lex_state = 2},
  [4182] = {.lex_state = 18, .external_lex_state = 5},
  [4183] = {.lex_state = 18, .external_lex_state = 5},
  [4184] = {.lex_state = 9, .external_lex_state = 2},
  [4185] = {.lex_state = 18, .external_lex_state = 5},
  [4186] = {.lex_state = 18, .external_lex_state = 5},
  [4187] = {.lex_state = 9, .external_lex_state = 2},
  [4188] = {.lex_state = 19, .external_lex_state = 5},
  [4189] = {.lex_state = 18, .external_lex_state = 5},
  [4190] = {.lex_state = 18, .external_lex_state = 5},
  [4191] = {.lex_state = 9, .external_lex_state = 2},
  [4192] = {.lex_state = 18, .external_lex_state = 5},
  [4193] = {.lex_state = 18, .external_lex_state = 5},
  [4194] = {.lex_state = 18, .external_lex_state = 5},
  [4195] = {.lex_state = 18, .external_lex_state = 5},
  [4196] = {.lex_state = 9, .external_lex_state = 2},
  [4197] = {.lex_state = 18, .external_lex_state = 5},
  [4198] = {.lex_state = 18, .external_lex_state = 5},
  [4199] = {.lex_state = 9, .external_lex_state = 2},
  [4200] = {.lex_state = 9, .external_lex_state = 2},
  [4201] = {.lex_state = 18, .external_lex_state = 5},
  [4202] = {.lex_state = 18, .external_lex_state = 5},
  [4203] = {.lex_state = 18, .external_lex_state = 5},
  [4204] = {.lex_state = 19, .external_lex_state = 5},
  [4205] = {.lex_state = 19, .external_lex_state = 5},
  [4206] = {.lex_state = 18, .external_lex_state = 5},
  [4207] = {.lex_state = 9, .external_lex_state = 2},
  [4208] = {.lex_state = 19, .external_lex_state = 5},
  [4209] = {.lex_state = 19, .external_lex_state = 5},
  [4210] = {.lex_state = 19, .external_lex_state = 5},
  [4211] = {.lex_state = 19, .external_lex_state = 5},
  [4212] = {.lex_state = 18, .external_lex_state = 5},
  [4213] = {.lex_state = 19, .external_lex_state = 5},
  [4214] = {.lex_state = 19, .external_lex_state = 5},
  [4215] = {.lex_state = 19, .external_lex_state = 5},
  [4216] = {.lex_state = 19, .external_lex_state = 5},
  [4217] = {.lex_state = 19, .external_lex_state = 5},
  [4218] = {.lex_state = 19, .external_lex_state = 5},
  [4219] = {.lex_state = 18, .external_lex_state = 5},
  [4220] = {.lex_state = 18, .external_lex_state = 5},
  [4221] = {.lex_state = 18, .external_lex_state = 5},
  [4222] = {.lex_state = 18, .external_lex_state = 5},
  [4223] = {.lex_state = 18, .external_lex_state = 5},
  [4224] = {.lex_state = 9, .external_lex_state = 2},
  [4225] = {.lex_state = 18, .external_lex_state = 5},
  [4226] = {.lex_state = 18, .external_lex_state = 5},
  [4227] = {.lex_state = 18, .external_lex_state = 5},
  [4228] = {.lex_state = 9, .external_lex_state = 2},
  [4229] = {.lex_state = 9, .external_lex_state = 2},
  [4230] = {.lex_state = 9, .external_lex_state = 2},
  [4231] = {.lex_state = 18, .external_lex_state = 5},
  [4232] = {.lex_state = 18, .external_lex_state = 5},
  [4233] = {.lex_state = 18, .external_lex_state = 5},
  [4234] = {.lex_state = 18, .external_lex_state = 5},
  [4235] = {.lex_state = 18, .external_lex_state = 5},
  [4236] = {.lex_state = 18, .external_lex_state = 5},
  [4237] = {.lex_state = 18, .external_lex_state = 5},
  [4238] = {.lex_state = 18, .external_lex_state = 5},
  [4239] = {.lex_state = 18, .external_lex_state = 5},
  [4240] = {.lex_state = 18, .external_lex_state = 5},
  [4241] = {.lex_state = 18, .external_lex_state = 5},
  [4242] = {.lex_state = 9, .external_lex_state = 2},
  [4243] = {.lex_state = 18, .external_lex_state = 5},
  [4244] = {.lex_state = 18, .external_lex_state = 5},
  [4245] = {.lex_state = 9, .external_lex_state = 2},
  [4246] = {.lex_state = 18, .external_lex_state = 5},
  [4247] = {.lex_state = 18, .external_lex_state = 5},
  [4248] = {.lex_state = 18, .external_lex_state = 5},
  [4249] = {.lex_state = 18, .external_lex_state = 5},
  [4250] = {.lex_state = 18, .external_lex_state = 5},
  [4251] = {.lex_state = 18, .external_lex_state = 5},
  [4252] = {.lex_state = 9, .external_lex_state = 2},
  [4253] = {.lex_state = 18, .external_lex_state = 5},
  [4254] = {.lex_state = 18, .external_lex_state = 5},
  [4255] = {.lex_state = 18, .external_lex_state = 5},
  [4256] = {.lex_state = 18, .external_lex_state = 5},
  [4257] = {.lex_state = 18, .external_lex_state = 5},
  [4258] = {.lex_state = 18, .external_lex_state = 5},
  [4259] = {.lex_state = 18, .external_lex_state = 5},
  [4260] = {.lex_state = 18, .external_lex_state = 5},
  [4261] = {.lex_state = 9, .external_lex_state = 2},
  [4262] = {.lex_state = 18, .external_lex_state = 5},
  [4263] = {.lex_state = 18, .external_lex_state = 5},
  [4264] = {.lex_state = 18, .external_lex_state = 5},
  [4265] = {.lex_state = 18, .external_lex_state = 5},
  [4266] = {.lex_state = 9, .external_lex_state = 2},
  [4267] = {.lex_state = 18, .external_lex_state = 5},
  [4268] = {.lex_state = 18, .external_lex_state = 5},
  [4269] = {.lex_state = 9, .external_lex_state = 2},
  [4270] = {.lex_state = 9, .external_lex_state = 2},
  [4271] = {.lex_state = 9, .external_lex_state = 2},
  [4272] = {.lex_state = 18, .external_lex_state = 5},
  [4273] = {.lex_state = 18, .external_lex_state = 5},
  [4274] = {.lex_state = 18, .external_lex_state = 5},
  [4275] = {.lex_state = 18, .external_lex_state = 5},
  [4276] = {.lex_state = 18, .external_lex_state = 5},
  [4277] = {.lex_state = 18, .external_lex_state = 5},
  [4278] = {.lex_state = 18, .external_lex_state = 5},
  [4279] = {.lex_state = 18, .external_lex_state = 5},
  [4280] = {.lex_state = 9, .external_lex_state = 2},
  [4281] = {.lex_state = 18, .external_lex_state = 5},
  [4282] = {.lex_state = 18, .external_lex_state = 5},
  [4283] = {.lex_state = 18, .external_lex_state = 5},
  [4284] = {.lex_state = 18, .external_lex_state = 5},
  [4285] = {.lex_state = 18, .external_lex_state = 5},
  [4286] = {.lex_state = 18, .external_lex_state = 5},
  [4287] = {.lex_state = 18, .external_lex_state = 5},
  [4288] = {.lex_state = 18, .external_lex_state = 5},
  [4289] = {.lex_state = 18, .external_lex_state = 5},
  [4290] = {.lex_state = 18, .external_lex_state = 5},
  [4291] = {.lex_state = 18, .external_lex_state = 5},
  [4292] = {.lex_state = 18, .external_lex_state = 5},
  [4293] = {.lex_state = 18, .external_lex_state = 5},
  [4294] = {.lex_state = 18, .external_lex_state = 5},
  [4295] = {.lex_state = 18, .external_lex_state = 5},
  [4296] = {.lex_state = 18, .external_lex_state = 5},
  [4297] = {.lex_state = 18, .external_lex_state = 5},
  [4298] = {.lex_state = 18, .external_lex_state = 5},
  [4299] = {.lex_state = 18, .external_lex_state = 5},
  [4300] = {.lex_state = 18, .external_lex_state = 5},
  [4301] = {.lex_state = 18, .external_lex_state = 5},
  [4302] = {.lex_state = 18, .external_lex_state = 5},
  [4303] = {.lex_state = 18, .external_lex_state = 5},
  [4304] = {.lex_state = 18, .external_lex_state = 5},
  [4305] = {.lex_state = 18, .external_lex_state = 5},
  [4306] = {.lex_state = 18, .external_lex_state = 5},
  [4307] = {.lex_state = 18, .external_lex_state = 5},
  [4308] = {.lex_state = 9, .external_lex_state = 2},
  [4309] = {.lex_state = 9, .external_lex_state = 2},
  [4310] = {.lex_state = 9, .external_lex_state = 2},
  [4311] = {.lex_state = 9, .external_lex_state = 2},
  [4312] = {.lex_state = 9, .external_lex_state = 2},
  [4313] = {.lex_state = 9, .external_lex_state = 2},
  [4314] = {.lex_state = 9, .external_lex_state = 2},
  [4315] = {.lex_state = 9, .external_lex_state = 2},
  [4316] = {.lex_state = 9, .external_lex_state = 2},
  [4317] = {.lex_state = 9, .external_lex_state = 2},
  [4318] = {.lex_state = 9, .external_lex_state = 2},
  [4319] = {.lex_state = 9, .external_lex_state = 2},
  [4320] = {.lex_state = 9, .external_lex_state = 2},
  [4321] = {.lex_state = 9, .external_lex_state = 2},
  [4322] = {.lex_state = 9, .external_lex_state = 2},
  [4323] = {.lex_state = 9, .external_lex_state = 2},
  [4324] = {.lex_state = 9, .external_lex_state = 2},
  [4325] = {.lex_state = 9, .external_lex_state = 2},
  [4326] = {.lex_state = 9, .external_lex_state = 2},
  [4327] = {.lex_state = 9, .external_lex_state = 2},
  [4328] = {.lex_state = 9, .external_lex_state = 2},
  [4329] = {.lex_state = 9, .external_lex_state = 2},
  [4330] = {.lex_state = 9, .external_lex_state = 2},
  [4331] = {.lex_state = 9, .external_lex_state = 2},
  [4332] = {.lex_state = 9, .external_lex_state = 2},
  [4333] = {.lex_state = 9, .external_lex_state = 2},
  [4334] = {.lex_state = 9, .external_lex_state = 2},
  [4335] = {.lex_state = 9, .external_lex_state = 2},
  [4336] = {.lex_state = 9, .external_lex_state = 2},
  [4337] = {.lex_state = 9, .external_lex_state = 2},
  [4338] = {.lex_state = 9, .external_lex_state = 2},
  [4339] = {.lex_state = 9, .external_lex_state = 2},
  [4340] = {.lex_state = 9, .external_lex_state = 2},
  [4341] = {.lex_state = 9, .external_lex_state = 2},
  [4342] = {.lex_state = 9, .external_lex_state = 2},
  [4343] = {.lex_state = 9, .external_lex_state = 2},
  [4344] = {.lex_state = 9, .external_lex_state = 2},
  [4345] = {.lex_state = 9, .external_lex_state = 2},
  [4346] = {.lex_state = 9, .external_lex_state = 2},
  [4347] = {.lex_state = 9, .external_lex_state = 2},
  [4348] = {.lex_state = 9, .external_lex_state = 2},
  [4349] = {.lex_state = 9, .external_lex_state = 2},
  [4350] = {.lex_state = 9, .external_lex_state = 2},
  [4351] = {.lex_state = 9, .external_lex_state = 2},
  [4352] = {.lex_state = 9, .external_lex_state = 2},
  [4353] = {.lex_state = 9, .external_lex_state = 2},
  [4354] = {.lex_state = 9, .external_lex_state = 2},
  [4355] = {.lex_state = 9, .external_lex_state = 2},
  [4356] = {.lex_state = 9, .external_lex_state = 2},
  [4357] = {.lex_state = 9, .external_lex_state = 2},
  [4358] = {.lex_state = 9, .external_lex_state = 2},
  [4359] = {.lex_state = 9, .external_lex_state = 2},
  [4360] = {.lex_state = 9, .external_lex_state = 2},
  [4361] = {.lex_state = 9, .external_lex_state = 2},
  [4362] = {.lex_state = 9, .external_lex_state = 2},
  [4363] = {.lex_state = 9, .external_lex_state = 2},
  [4364] = {.lex_state = 9, .external_lex_state = 2},
  [4365] = {.lex_state = 9, .external_lex_state = 2},
  [4366] = {.lex_state = 9, .external_lex_state = 2},
  [4367] = {.lex_state = 9, .external_lex_state = 2},
  [4368] = {.lex_state = 9, .external_lex_state = 2},
  [4369] = {.lex_state = 9, .external_lex_state = 2},
  [4370] = {.lex_state = 9, .external_lex_state = 2},
  [4371] = {.lex_state = 9, .external_lex_state = 2},
  [4372] = {.lex_state = 9, .external_lex_state = 2},
  [4373] = {.lex_state = 9, .external_lex_state = 2},
  [4374] = {.lex_state = 9, .external_lex_state = 2},
  [4375] = {.lex_state = 9, .external_lex_state = 2},
  [4376] = {.lex_state = 9, .external_lex_state = 2},
  [4377] = {.lex_state = 9, .external_lex_state = 2},
  [4378] = {.lex_state = 9, .external_lex_state = 2},
  [4379] = {.lex_state = 9, .external_lex_state = 2},
  [4380] = {.lex_state = 9, .external_lex_state = 2},
  [4381] = {.lex_state = 9, .external_lex_state = 2},
  [4382] = {.lex_state = 9, .external_lex_state = 2},
  [4383] = {.lex_state = 9, .external_lex_state = 2},
  [4384] = {.lex_state = 9, .external_lex_state = 2},
  [4385] = {.lex_state = 9, .external_lex_state = 2},
  [4386] = {.lex_state = 9, .external_lex_state = 2},
  [4387] = {.lex_state = 9, .external_lex_state = 2},
  [4388] = {.lex_state = 9, .external_lex_state = 2},
  [4389] = {.lex_state = 9, .external_lex_state = 2},
  [4390] = {.lex_state = 9, .external_lex_state = 2},
  [4391] = {.lex_state = 9, .external_lex_state = 2},
  [4392] = {.lex_state = 9, .external_lex_state = 2},
  [4393] = {.lex_state = 9, .external_lex_state = 2},
  [4394] = {.lex_state = 9, .external_lex_state = 2},
  [4395] = {.lex_state = 9, .external_lex_state = 2},
  [4396] = {.lex_state = 9, .external_lex_state = 2},
  [4397] = {.lex_state = 9, .external_lex_state = 2},
  [4398] = {.lex_state = 9, .external_lex_state = 2},
  [4399] = {.lex_state = 9, .external_lex_state = 2},
  [4400] = {.lex_state = 9, .external_lex_state = 2},
  [4401] = {.lex_state = 9, .external_lex_state = 2},
  [4402] = {.lex_state = 9, .external_lex_state = 2},
  [4403] = {.lex_state = 9, .external_lex_state = 2},
  [4404] = {.lex_state = 9, .external_lex_state = 2},
  [4405] = {.lex_state = 9, .external_lex_state = 2},
  [4406] = {.lex_state = 9, .external_lex_state = 2},
  [4407] = {.lex_state = 9, .external_lex_state = 2},
  [4408] = {.lex_state = 9, .external_lex_state = 2},
  [4409] = {.lex_state = 9, .external_lex_state = 2},
  [4410] = {.lex_state = 9, .external_lex_state = 2},
  [4411] = {.lex_state = 9, .external_lex_state = 2},
  [4412] = {.lex_state = 9, .external_lex_state = 2},
  [4413] = {.lex_state = 9, .external_lex_state = 2},
  [4414] = {.lex_state = 9, .external_lex_state = 2},
  [4415] = {.lex_state = 9, .external_lex_state = 2},
  [4416] = {.lex_state = 9, .external_lex_state = 2},
  [4417] = {.lex_state = 9, .external_lex_state = 2},
  [4418] = {.lex_state = 9, .external_lex_state = 2},
  [4419] = {.lex_state = 9, .external_lex_state = 2},
  [4420] = {.lex_state = 9, .external_lex_state = 2},
  [4421] = {.lex_state = 9, .external_lex_state = 2},
  [4422] = {.lex_state = 9, .external_lex_state = 2},
  [4423] = {.lex_state = 9, .external_lex_state = 2},
  [4424] = {.lex_state = 9, .external_lex_state = 2},
  [4425] = {.lex_state = 9, .external_lex_state = 2},
  [4426] = {.lex_state = 9, .external_lex_state = 2},
  [4427] = {.lex_state = 9, .external_lex_state = 2},
  [4428] = {.lex_state = 9, .external_lex_state = 2},
  [4429] = {.lex_state = 9, .external_lex_state = 2},
  [4430] = {.lex_state = 9, .external_lex_state = 2},
  [4431] = {.lex_state = 9, .external_lex_state = 2},
  [4432] = {.lex_state = 9, .external_lex_state = 2},
  [4433] = {.lex_state = 9, .external_lex_state = 2},
  [4434] = {.lex_state = 9, .external_lex_state = 2},
  [4435] = {.lex_state = 9, .external_lex_state = 2},
  [4436] = {.lex_state = 9, .external_lex_state = 2},
  [4437] = {.lex_state = 9, .external_lex_state = 2},
  [4438] = {.lex_state = 9, .external_lex_state = 2},
  [4439] = {.lex_state = 9, .external_lex_state = 2},
  [4440] = {.lex_state = 9, .external_lex_state = 2},
  [4441] = {.lex_state = 9, .external_lex_state = 2},
  [4442] = {.lex_state = 9, .external_lex_state = 2},
  [4443] = {.lex_state = 9, .external_lex_state = 2},
  [4444] = {.lex_state = 9, .external_lex_state = 2},
  [4445] = {.lex_state = 9, .external_lex_state = 2},
  [4446] = {.lex_state = 9, .external_lex_state = 2},
  [4447] = {.lex_state = 9, .external_lex_state = 2},
  [4448] = {.lex_state = 9, .external_lex_state = 2},
  [4449] = {.lex_state = 9, .external_lex_state = 2},
  [4450] = {.lex_state = 9, .external_lex_state = 2},
  [4451] = {.lex_state = 9, .external_lex_state = 2},
  [4452] = {.lex_state = 9, .external_lex_state = 2},
  [4453] = {.lex_state = 9, .external_lex_state = 2},
  [4454] = {.lex_state = 9, .external_lex_state = 2},
  [4455] = {.lex_state = 9, .external_lex_state = 2},
  [4456] = {.lex_state = 9, .external_lex_state = 2},
  [4457] = {.lex_state = 9, .external_lex_state = 2},
  [4458] = {.lex_state = 9, .external_lex_state = 2},
  [4459] = {.lex_state = 9, .external_lex_state = 2},
  [4460] = {.lex_state = 9, .external_lex_state = 2},
  [4461] = {.lex_state = 9, .external_lex_state = 2},
  [4462] = {.lex_state = 9, .external_lex_state = 2},
  [4463] = {.lex_state = 9, .external_lex_state = 2},
  [4464] = {.lex_state = 9, .external_lex_state = 2},
  [4465] = {.lex_state = 9, .external_lex_state = 2},
  [4466] = {.lex_state = 9, .external_lex_state = 2},
  [4467] = {.lex_state = 9, .external_lex_state = 2},
  [4468] = {.lex_state = 9, .external_lex_state = 2},
  [4469] = {.lex_state = 9, .external_lex_state = 2},
  [4470] = {.lex_state = 9, .external_lex_state = 2},
  [4471] = {.lex_state = 9, .external_lex_state = 2},
  [4472] = {.lex_state = 9, .external_lex_state = 2},
  [4473] = {.lex_state = 9, .external_lex_state = 2},
  [4474] = {.lex_state = 9, .external_lex_state = 2},
  [4475] = {.lex_state = 9, .external_lex_state = 2},
  [4476] = {.lex_state = 9, .external_lex_state = 2},
  [4477] = {.lex_state = 9, .external_lex_state = 2},
  [4478] = {.lex_state = 9, .external_lex_state = 2},
  [4479] = {.lex_state = 9, .external_lex_state = 2},
  [4480] = {.lex_state = 9, .external_lex_state = 2},
  [4481] = {.lex_state = 9, .external_lex_state = 2},
  [4482] = {.lex_state = 9, .external_lex_state = 2},
  [4483] = {.lex_state = 9, .external_lex_state = 2},
  [4484] = {.lex_state = 9, .external_lex_state = 2},
  [4485] = {.lex_state = 9, .external_lex_state = 2},
  [4486] = {.lex_state = 9, .external_lex_state = 2},
  [4487] = {.lex_state = 9, .external_lex_state = 2},
  [4488] = {.lex_state = 9, .external_lex_state = 2},
  [4489] = {.lex_state = 9, .external_lex_state = 2},
  [4490] = {.lex_state = 9, .external_lex_state = 2},
  [4491] = {.lex_state = 9, .external_lex_state = 2},
  [4492] = {.lex_state = 9, .external_lex_state = 2},
  [4493] = {.lex_state = 9, .external_lex_state = 2},
  [4494] = {.lex_state = 9, .external_lex_state = 2},
  [4495] = {.lex_state = 9, .external_lex_state = 2},
  [4496] = {.lex_state = 9, .external_lex_state = 2},
  [4497] = {.lex_state = 9, .external_lex_state = 2},
  [4498] = {.lex_state = 9, .external_lex_state = 2},
  [4499] = {.lex_state = 9, .external_lex_state = 2},
  [4500] = {.lex_state = 9, .external_lex_state = 2},
  [4501] = {.lex_state = 9, .external_lex_state = 2},
  [4502] = {.lex_state = 9, .external_lex_state = 2},
  [4503] = {.lex_state = 9, .external_lex_state = 2},
  [4504] = {.lex_state = 9, .external_lex_state = 2},
  [4505] = {.lex_state = 9, .external_lex_state = 2},
  [4506] = {.lex_state = 9, .external_lex_state = 2},
  [4507] = {.lex_state = 9, .external_lex_state = 2},
  [4508] = {.lex_state = 9, .external_lex_state = 2},
  [4509] = {.lex_state = 9, .external_lex_state = 2},
  [4510] = {.lex_state = 9, .external_lex_state = 2},
  [4511] = {.lex_state = 9, .external_lex_state = 2},
  [4512] = {.lex_state = 9, .external_lex_state = 2},
  [4513] = {.lex_state = 9, .external_lex_state = 2},
  [4514] = {.lex_state = 9, .external_lex_state = 2},
  [4515] = {.lex_state = 9, .external_lex_state = 2},
  [4516] = {.lex_state = 9, .external_lex_state = 2},
  [4517] = {.lex_state = 9, .external_lex_state = 2},
  [4518] = {.lex_state = 9, .external_lex_state = 2},
  [4519] = {.lex_state = 9, .external_lex_state = 2},
  [4520] = {.lex_state = 9, .external_lex_state = 2},
  [4521] = {.lex_state = 9, .external_lex_state = 2},
  [4522] = {.lex_state = 9, .external_lex_state = 2},
  [4523] = {.lex_state = 9, .external_lex_state = 2},
  [4524] = {.lex_state = 9, .external_lex_state = 2},
  [4525] = {.lex_state = 9, .external_lex_state = 2},
  [4526] = {.lex_state = 9, .external_lex_state = 2},
  [4527] = {.lex_state = 9, .external_lex_state = 2},
  [4528] = {.lex_state = 9, .external_lex_state = 2},
  [4529] = {.lex_state = 9, .external_lex_state = 2},
  [4530] = {.lex_state = 9, .external_lex_state = 2},
  [4531] = {.lex_state = 9, .external_lex_state = 2},
  [4532] = {.lex_state = 9, .external_lex_state = 2},
  [4533] = {.lex_state = 9, .external_lex_state = 2},
  [4534] = {.lex_state = 9, .external_lex_state = 2},
  [4535] = {.lex_state = 9, .external_lex_state = 2},
  [4536] = {.lex_state = 9, .external_lex_state = 2},
  [4537] = {.lex_state = 9, .external_lex_state = 2},
  [4538] = {.lex_state = 9, .external_lex_state = 2},
  [4539] = {.lex_state = 9, .external_lex_state = 2},
  [4540] = {.lex_state = 9, .external_lex_state = 2},
  [4541] = {.lex_state = 9, .external_lex_state = 2},
  [4542] = {.lex_state = 9, .external_lex_state = 2},
  [4543] = {.lex_state = 9, .external_lex_state = 2},
  [4544] = {.lex_state = 9, .external_lex_state = 2},
  [4545] = {.lex_state = 9, .external_lex_state = 2},
  [4546] = {.lex_state = 9, .external_lex_state = 2},
  [4547] = {.lex_state = 9, .external_lex_state = 2},
  [4548] = {.lex_state = 9, .external_lex_state = 2},
  [4549] = {.lex_state = 9, .external_lex_state = 2},
  [4550] = {.lex_state = 9, .external_lex_state = 2},
  [4551] = {.lex_state = 9, .external_lex_state = 2},
  [4552] = {.lex_state = 9, .external_lex_state = 2},
  [4553] = {.lex_state = 9, .external_lex_state = 2},
  [4554] = {.lex_state = 9, .external_lex_state = 2},
  [4555] = {.lex_state = 9, .external_lex_state = 2},
  [4556] = {.lex_state = 9, .external_lex_state = 2},
  [4557] = {.lex_state = 9, .external_lex_state = 2},
  [4558] = {.lex_state = 9, .external_lex_state = 2},
  [4559] = {.lex_state = 9, .external_lex_state = 2},
  [4560] = {.lex_state = 9, .external_lex_state = 2},
  [4561] = {.lex_state = 9, .external_lex_state = 2},
  [4562] = {.lex_state = 9, .external_lex_state = 2},
  [4563] = {.lex_state = 9, .external_lex_state = 2},
  [4564] = {.lex_state = 9, .external_lex_state = 2},
  [4565] = {.lex_state = 9, .external_lex_state = 2},
  [4566] = {.lex_state = 9, .external_lex_state = 2},
  [4567] = {.lex_state = 9, .external_lex_state = 2},
  [4568] = {.lex_state = 9, .external_lex_state = 2},
  [4569] = {.lex_state = 9, .external_lex_state = 2},
  [4570] = {.lex_state = 9, .external_lex_state = 2},
  [4571] = {.lex_state = 9, .external_lex_state = 2},
  [4572] = {.lex_state = 9, .external_lex_state = 2},
  [4573] = {.lex_state = 9, .external_lex_state = 2},
  [4574] = {.lex_state = 9, .external_lex_state = 2},
  [4575] = {.lex_state = 9, .external_lex_state = 2},
  [4576] = {.lex_state = 9, .external_lex_state = 2},
  [4577] = {.lex_state = 9, .external_lex_state = 2},
  [4578] = {.lex_state = 9, .external_lex_state = 2},
  [4579] = {.lex_state = 9, .external_lex_state = 2},
  [4580] = {.lex_state = 9, .external_lex_state = 2},
  [4581] = {.lex_state = 9, .external_lex_state = 2},
  [4582] = {.lex_state = 9, .external_lex_state = 2},
  [4583] = {.lex_state = 9, .external_lex_state = 2},
  [4584] = {.lex_state = 9, .external_lex_state = 2},
  [4585] = {.lex_state = 9, .external_lex_state = 2},
  [4586] = {.lex_state = 9, .external_lex_state = 2},
  [4587] = {.lex_state = 9, .external_lex_state = 2},
  [4588] = {.lex_state = 9, .external_lex_state = 2},
  [4589] = {.lex_state = 9, .external_lex_state = 2},
  [4590] = {.lex_state = 9, .external_lex_state = 2},
  [4591] = {.lex_state = 9, .external_lex_state = 2},
  [4592] = {.lex_state = 9, .external_lex_state = 2},
  [4593] = {.lex_state = 9, .external_lex_state = 2},
  [4594] = {.lex_state = 9, .external_lex_state = 2},
  [4595] = {.lex_state = 9, .external_lex_state = 2},
  [4596] = {.lex_state = 9, .external_lex_state = 2},
  [4597] = {.lex_state = 10, .external_lex_state = 2},
  [4598] = {.lex_state = 10, .external_lex_state = 2},
  [4599] = {.lex_state = 10, .external_lex_state = 2},
  [4600] = {.lex_state = 10, .external_lex_state = 2},
  [4601] = {.lex_state = 10, .external_lex_state = 2},
  [4602] = {.lex_state = 10, .external_lex_state = 2},
  [4603] = {.lex_state = 10, .external_lex_state = 2},
  [4604] = {.lex_state = 10, .external_lex_state = 2},
  [4605] = {.lex_state = 10, .external_lex_state = 2},
  [4606] = {.lex_state = 10, .external_lex_state = 2},
  [4607] = {.lex_state = 10, .external_lex_state = 2},
  [4608] = {.lex_state = 10, .external_lex_state = 2},
  [4609] = {.lex_state = 10, .external_lex_state = 2},
  [4610] = {.lex_state = 10, .external_lex_state = 2},
  [4611] = {.lex_state = 10, .external_lex_state = 2},
  [4612] = {.lex_state = 10, .external_lex_state = 2},
  [4613] = {.lex_state = 10, .external_lex_state = 2},
  [4614] = {.lex_state = 10, .external_lex_state = 2},
  [4615] = {.lex_state = 10, .external_lex_state = 2},
  [4616] = {.lex_state = 10, .external_lex_state = 2},
  [4617] = {.lex_state = 10, .external_lex_state = 2},
  [4618] = {.lex_state = 10, .external_lex_state = 2},
  [4619] = {.lex_state = 10, .external_lex_state = 2},
  [4620] = {.lex_state = 9, .external_lex_state = 2},
  [4621] = {.lex_state = 9, .external_lex_state = 2},
  [4622] = {.lex_state = 9, .external_lex_state = 2},
  [4623] = {.lex_state = 9, .external_lex_state = 2},
  [4624] = {.lex_state = 9, .external_lex_state = 2},
  [4625] = {.lex_state = 9, .external_lex_state = 2},
  [4626] = {.lex_state = 10, .external_lex_state = 2},
  [4627] = {.lex_state = 8, .external_lex_state = 2},
  [4628] = {.lex_state = 8, .external_lex_state = 2},
  [4629] = {.lex_state = 9, .external_lex_state = 2},
  [4630] = {.lex_state = 8, .external_lex_state = 2},
  [4631] = {.lex_state = 9, .external_lex_state = 2},
  [4632] = {.lex_state = 9, .external_lex_state = 2},
  [4633] = {.lex_state = 9, .external_lex_state = 2},
  [4634] = {.lex_state = 9, .external_lex_state = 2},
  [4635] = {.lex_state = 9, .external_lex_state = 2},
  [4636] = {.lex_state = 9, .external_lex_state = 2},
  [4637] = {.lex_state = 9, .external_lex_state = 2},
  [4638] = {.lex_state = 9, .external_lex_state = 2},
  [4639] = {.lex_state = 9, .external_lex_state = 2},
  [4640] = {.lex_state = 10, .external_lex_state = 2},
  [4641] = {.lex_state = 9, .external_lex_state = 2},
  [4642] = {.lex_state = 8, .external_lex_state = 2},
  [4643] = {.lex_state = 9, .external_lex_state = 2},
  [4644] = {.lex_state = 10, .external_lex_state = 2},
  [4645] = {.lex_state = 10, .external_lex_state = 2},
  [4646] = {.lex_state = 10, .external_lex_state = 2},
  [4647] = {.lex_state = 10, .external_lex_state = 2},
  [4648] = {.lex_state = 10, .external_lex_state = 2},
  [4649] = {.lex_state = 10, .external_lex_state = 2},
  [4650] = {.lex_state = 9, .external_lex_state = 2},
  [4651] = {.lex_state = 9, .external_lex_state = 2},
  [4652] = {.lex_state = 10, .external_lex_state = 2},
  [4653] = {.lex_state = 10, .external_lex_state = 2},
  [4654] = {.lex_state = 10, .external_lex_state = 2},
  [4655] = {.lex_state = 10, .external_lex_state = 2},
  [4656] = {.lex_state = 10, .external_lex_state = 2},
  [4657] = {.lex_state = 10, .external_lex_state = 2},
  [4658] = {.lex_state = 10, .external_lex_state = 2},
  [4659] = {.lex_state = 10, .external_lex_state = 2},
  [4660] = {.lex_state = 10, .external_lex_state = 2},
  [4661] = {.lex_state = 10, .external_lex_state = 2},
  [4662] = {.lex_state = 10, .external_lex_state = 2},
  [4663] = {.lex_state = 10, .external_lex_state = 2},
  [4664] = {.lex_state = 10, .external_lex_state = 2},
  [4665] = {.lex_state = 9, .external_lex_state = 2},
  [4666] = {.lex_state = 10, .external_lex_state = 2},
  [4667] = {.lex_state = 9, .external_lex_state = 2},
  [4668] = {.lex_state = 9, .external_lex_state = 2},
  [4669] = {.lex_state = 10, .external_lex_state = 2},
  [4670] = {.lex_state = 9, .external_lex_state = 2},
  [4671] = {.lex_state = 9, .external_lex_state = 2},
  [4672] = {.lex_state = 9, .external_lex_state = 2},
  [4673] = {.lex_state = 10, .external_lex_state = 2},
  [4674] = {.lex_state = 9, .external_lex_state = 2},
  [4675] = {.lex_state = 9, .external_lex_state = 2},
  [4676] = {.lex_state = 9, .external_lex_state = 2},
  [4677] = {.lex_state = 9, .external_lex_state = 2},
  [4678] = {.lex_state = 9, .external_lex_state = 2},
  [4679] = {.lex_state = 9, .external_lex_state = 2},
  [4680] = {.lex_state = 9, .external_lex_state = 2},
  [4681] = {.lex_state = 9, .external_lex_state = 2},
  [4682] = {.lex_state = 9, .external_lex_state = 2},
  [4683] = {.lex_state = 9, .external_lex_state = 2},
  [4684] = {.lex_state = 9, .external_lex_state = 2},
  [4685] = {.lex_state = 9, .external_lex_state = 2},
  [4686] = {.lex_state = 9, .external_lex_state = 2},
  [4687] = {.lex_state = 9, .external_lex_state = 2},
  [4688] = {.lex_state = 9, .external_lex_state = 2},
  [4689] = {.lex_state = 9, .external_lex_state = 2},
  [4690] = {.lex_state = 9, .external_lex_state = 2},
  [4691] = {.lex_state = 9, .external_lex_state = 2},
  [4692] = {.lex_state = 28, .external_lex_state = 2},
  [4693] = {.lex_state = 9, .external_lex_state = 2},
  [4694] = {.lex_state = 9, .external_lex_state = 2},
  [4695] = {.lex_state = 9, .external_lex_state = 2},
  [4696] = {.lex_state = 9, .external_lex_state = 2},
  [4697] = {.lex_state = 9, .external_lex_state = 2},
  [4698] = {.lex_state = 9, .external_lex_state = 2},
  [4699] = {.lex_state = 10, .external_lex_state = 2},
  [4700] = {.lex_state = 9, .external_lex_state = 2},
  [4701] = {.lex_state = 9, .external_lex_state = 2},
  [4702] = {.lex_state = 9, .external_lex_state = 2},
  [4703] = {.lex_state = 9, .external_lex_state = 2},
  [4704] = {.lex_state = 9, .external_lex_state = 2},
  [4705] = {.lex_state = 9, .external_lex_state = 2},
  [4706] = {.lex_state = 9, .external_lex_state = 2},
  [4707] = {.lex_state = 9, .external_lex_state = 2},
  [4708] = {.lex_state = 9, .external_lex_state = 2},
  [4709] = {.lex_state = 9, .external_lex_state = 2},
  [4710] = {.lex_state = 9, .external_lex_state = 2},
  [4711] = {.lex_state = 9, .external_lex_state = 2},
  [4712] = {.lex_state = 9, .external_lex_state = 2},
  [4713] = {.lex_state = 9, .external_lex_state = 2},
  [4714] = {.lex_state = 9, .external_lex_state = 2},
  [4715] = {.lex_state = 9, .external_lex_state = 2},
  [4716] = {.lex_state = 9, .external_lex_state = 2},
  [4717] = {.lex_state = 9, .external_lex_state = 2},
  [4718] = {.lex_state = 9, .external_lex_state = 2},
  [4719] = {.lex_state = 9, .external_lex_state = 2},
  [4720] = {.lex_state = 9, .external_lex_state = 2},
  [4721] = {.lex_state = 9, .external_lex_state = 2},
  [4722] = {.lex_state = 9, .external_lex_state = 2},
  [4723] = {.lex_state = 9, .external_lex_state = 2},
  [4724] = {.lex_state = 9, .external_lex_state = 2},
  [4725] = {.lex_state = 9, .external_lex_state = 2},
  [4726] = {.lex_state = 9, .external_lex_state = 2},
  [4727] = {.lex_state = 9, .external_lex_state = 2},
  [4728] = {.lex_state = 9, .external_lex_state = 2},
  [4729] = {.lex_state = 9, .external_lex_state = 2},
  [4730] = {.lex_state = 9, .external_lex_state = 2},
  [4731] = {.lex_state = 9, .external_lex_state = 2},
  [4732] = {.lex_state = 9, .external_lex_state = 2},
  [4733] = {.lex_state = 9, .external_lex_state = 2},
  [4734] = {.lex_state = 9, .external_lex_state = 2},
  [4735] = {.lex_state = 9, .external_lex_state = 2},
  [4736] = {.lex_state = 9, .external_lex_state = 2},
  [4737] = {.lex_state = 9, .external_lex_state = 2},
  [4738] = {.lex_state = 9, .external_lex_state = 2},
  [4739] = {.lex_state = 9, .external_lex_state = 2},
  [4740] = {.lex_state = 9, .external_lex_state = 2},
  [4741] = {.lex_state = 9, .external_lex_state = 2},
  [4742] = {.lex_state = 9, .external_lex_state = 2},
  [4743] = {.lex_state = 9, .external_lex_state = 2},
  [4744] = {.lex_state = 9, .external_lex_state = 2},
  [4745] = {.lex_state = 9, .external_lex_state = 2},
  [4746] = {.lex_state = 9, .external_lex_state = 2},
  [4747] = {.lex_state = 9, .external_lex_state = 2},
  [4748] = {.lex_state = 9, .external_lex_state = 2},
  [4749] = {.lex_state = 9, .external_lex_state = 2},
  [4750] = {.lex_state = 9, .external_lex_state = 2},
  [4751] = {.lex_state = 9, .external_lex_state = 2},
  [4752] = {.lex_state = 9, .external_lex_state = 2},
  [4753] = {.lex_state = 9, .external_lex_state = 2},
  [4754] = {.lex_state = 10, .external_lex_state = 2},
  [4755] = {.lex_state = 9, .external_lex_state = 2},
  [4756] = {.lex_state = 9, .external_lex_state = 2},
  [4757] = {.lex_state = 9, .external_lex_state = 2},
  [4758] = {.lex_state = 9, .external_lex_state = 2},
  [4759] = {.lex_state = 9, .external_lex_state = 2},
  [4760] = {.lex_state = 9, .external_lex_state = 2},
  [4761] = {.lex_state = 9, .external_lex_state = 2},
  [4762] = {.lex_state = 9, .external_lex_state = 2},
  [4763] = {.lex_state = 9, .external_lex_state = 2},
  [4764] = {.lex_state = 9, .external_lex_state = 2},
  [4765] = {.lex_state = 9, .external_lex_state = 2},
  [4766] = {.lex_state = 9, .external_lex_state = 2},
  [4767] = {.lex_state = 10, .external_lex_state = 2},
  [4768] = {.lex_state = 9, .external_lex_state = 2},
  [4769] = {.lex_state = 9, .external_lex_state = 2},
  [4770] = {.lex_state = 9, .external_lex_state = 2},
  [4771] = {.lex_state = 10, .external_lex_state = 2},
  [4772] = {.lex_state = 9, .external_lex_state = 2},
  [4773] = {.lex_state = 9, .external_lex_state = 2},
  [4774] = {.lex_state = 9, .external_lex_state = 2},
  [4775] = {.lex_state = 9, .external_lex_state = 2},
  [4776] = {.lex_state = 9, .external_lex_state = 2},
  [4777] = {.lex_state = 9, .external_lex_state = 2},
  [4778] = {.lex_state = 9, .external_lex_state = 2},
  [4779] = {.lex_state = 9, .external_lex_state = 2},
  [4780] = {.lex_state = 9, .external_lex_state = 2},
  [4781] = {.lex_state = 9, .external_lex_state = 2},
  [4782] = {.lex_state = 9, .external_lex_state = 2},
  [4783] = {.lex_state = 9, .external_lex_state = 2},
  [4784] = {.lex_state = 9, .external_lex_state = 2},
  [4785] = {.lex_state = 9, .external_lex_state = 2},
  [4786] = {.lex_state = 9, .external_lex_state = 2},
  [4787] = {.lex_state = 9, .external_lex_state = 2},
  [4788] = {.lex_state = 9, .external_lex_state = 2},
  [4789] = {.lex_state = 9, .external_lex_state = 2},
  [4790] = {.lex_state = 9, .external_lex_state = 2},
  [4791] = {.lex_state = 9, .external_lex_state = 2},
  [4792] = {.lex_state = 9, .external_lex_state = 2},
  [4793] = {.lex_state = 9, .external_lex_state = 2},
  [4794] = {.lex_state = 9, .external_lex_state = 2},
  [4795] = {.lex_state = 9, .external_lex_state = 2},
  [4796] = {.lex_state = 9, .external_lex_state = 2},
  [4797] = {.lex_state = 9, .external_lex_state = 2},
  [4798] = {.lex_state = 9, .external_lex_state = 2},
  [4799] = {.lex_state = 9, .external_lex_state = 2},
  [4800] = {.lex_state = 9, .external_lex_state = 2},
  [4801] = {.lex_state = 9, .external_lex_state = 2},
  [4802] = {.lex_state = 9, .external_lex_state = 2},
  [4803] = {.lex_state = 9, .external_lex_state = 2},
  [4804] = {.lex_state = 9, .external_lex_state = 2},
  [4805] = {.lex_state = 9, .external_lex_state = 2},
  [4806] = {.lex_state = 9, .external_lex_state = 2},
  [4807] = {.lex_state = 9, .external_lex_state = 2},
  [4808] = {.lex_state = 9, .external_lex_state = 2},
  [4809] = {.lex_state = 9, .external_lex_state = 2},
  [4810] = {.lex_state = 9, .external_lex_state = 2},
  [4811] = {.lex_state = 9, .external_lex_state = 2},
  [4812] = {.lex_state = 9, .external_lex_state = 2},
  [4813] = {.lex_state = 9, .external_lex_state = 2},
  [4814] = {.lex_state = 9, .external_lex_state = 2},
  [4815] = {.lex_state = 9, .external_lex_state = 2},
  [4816] = {.lex_state = 20, .external_lex_state = 2},
  [4817] = {.lex_state = 9, .external_lex_state = 2},
  [4818] = {.lex_state = 9, .external_lex_state = 2},
  [4819] = {.lex_state = 9, .external_lex_state = 2},
  [4820] = {.lex_state = 20, .external_lex_state = 2},
  [4821] = {.lex_state = 9, .external_lex_state = 2},
  [4822] = {.lex_state = 8, .external_lex_state = 2},
  [4823] = {.lex_state = 9, .external_lex_state = 2},
  [4824] = {.lex_state = 9, .external_lex_state = 2},
  [4825] = {.lex_state = 20, .external_lex_state = 2},
  [4826] = {.lex_state = 9, .external_lex_state = 2},
  [4827] = {.lex_state = 8, .external_lex_state = 2},
  [4828] = {.lex_state = 9, .external_lex_state = 2},
  [4829] = {.lex_state = 9, .external_lex_state = 2},
  [4830] = {.lex_state = 9, .external_lex_state = 2},
  [4831] = {.lex_state = 9, .external_lex_state = 2},
  [4832] = {.lex_state = 9, .external_lex_state = 2},
  [4833] = {.lex_state = 9, .external_lex_state = 2},
  [4834] = {.lex_state = 9, .external_lex_state = 2},
  [4835] = {.lex_state = 9, .external_lex_state = 2},
  [4836] = {.lex_state = 9, .external_lex_state = 2},
  [4837] = {.lex_state = 9, .external_lex_state = 2},
  [4838] = {.lex_state = 20, .external_lex_state = 2},
  [4839] = {.lex_state = 9, .external_lex_state = 2},
  [4840] = {.lex_state = 9, .external_lex_state = 2},
  [4841] = {.lex_state = 9, .external_lex_state = 2},
  [4842] = {.lex_state = 9, .external_lex_state = 2},
  [4843] = {.lex_state = 9, .external_lex_state = 2},
  [4844] = {.lex_state = 9, .external_lex_state = 2},
  [4845] = {.lex_state = 8, .external_lex_state = 2},
  [4846] = {.lex_state = 20, .external_lex_state = 2},
  [4847] = {.lex_state = 9, .external_lex_state = 2},
  [4848] = {.lex_state = 9, .external_lex_state = 2},
  [4849] = {.lex_state = 9, .external_lex_state = 2},
  [4850] = {.lex_state = 9, .external_lex_state = 2},
  [4851] = {.lex_state = 9, .external_lex_state = 2},
  [4852] = {.lex_state = 9, .external_lex_state = 2},
  [4853] = {.lex_state = 8, .external_lex_state = 2},
  [4854] = {.lex_state = 9, .external_lex_state = 2},
  [4855] = {.lex_state = 9, .external_lex_state = 2},
  [4856] = {.lex_state = 9, .external_lex_state = 2},
  [4857] = {.lex_state = 9, .external_lex_state = 2},
  [4858] = {.lex_state = 9, .external_lex_state = 2},
  [4859] = {.lex_state = 9, .external_lex_state = 2},
  [4860] = {.lex_state = 9, .external_lex_state = 2},
  [4861] = {.lex_state = 9, .external_lex_state = 2},
  [4862] = {.lex_state = 20, .external_lex_state = 2},
  [4863] = {.lex_state = 9, .external_lex_state = 2},
  [4864] = {.lex_state = 9, .external_lex_state = 2},
  [4865] = {.lex_state = 9, .external_lex_state = 2},
  [4866] = {.lex_state = 9, .external_lex_state = 2},
  [4867] = {.lex_state = 9, .external_lex_state = 2},
  [4868] = {.lex_state = 9, .external_lex_state = 2},
  [4869] = {.lex_state = 20, .external_lex_state = 2},
  [4870] = {.lex_state = 20, .external_lex_state = 2},
  [4871] = {.lex_state = 9, .external_lex_state = 2},
  [4872] = {.lex_state = 20, .external_lex_state = 2},
  [4873] = {.lex_state = 9, .external_lex_state = 2},
  [4874] = {.lex_state = 9, .external_lex_state = 2},
  [4875] = {.lex_state = 9, .external_lex_state = 2},
  [4876] = {.lex_state = 8, .external_lex_state = 2},
  [4877] = {.lex_state = 20, .external_lex_state = 2},
  [4878] = {.lex_state = 20, .external_lex_state = 2},
  [4879] = {.lex_state = 9, .external_lex_state = 2},
  [4880] = {.lex_state = 9, .external_lex_state = 2},
  [4881] = {.lex_state = 9, .external_lex_state = 2},
  [4882] = {.lex_state = 9, .external_lex_state = 2},
  [4883] = {.lex_state = 9, .external_lex_state = 2},
  [4884] = {.lex_state = 9, .external_lex_state = 2},
  [4885] = {.lex_state = 9, .external_lex_state = 2},
  [4886] = {.lex_state = 20, .external_lex_state = 2},
  [4887] = {.lex_state = 9, .external_lex_state = 2},
  [4888] = {.lex_state = 20, .external_lex_state = 2},
  [4889] = {.lex_state = 9, .external_lex_state = 2},
  [4890] = {.lex_state = 9, .external_lex_state = 2},
  [4891] = {.lex_state = 20, .external_lex_state = 2},
  [4892] = {.lex_state = 9, .external_lex_state = 2},
  [4893] = {.lex_state = 9, .external_lex_state = 2},
  [4894] = {.lex_state = 9, .external_lex_state = 2},
  [4895] = {.lex_state = 9, .external_lex_state = 2},
  [4896] = {.lex_state = 8, .external_lex_state = 2},
  [4897] = {.lex_state = 9, .external_lex_state = 2},
  [4898] = {.lex_state = 9, .external_lex_state = 2},
  [4899] = {.lex_state = 9, .external_lex_state = 2},
  [4900] = {.lex_state = 20, .external_lex_state = 2},
  [4901] = {.lex_state = 20, .external_lex_state = 2},
  [4902] = {.lex_state = 9, .external_lex_state = 2},
  [4903] = {.lex_state = 9, .external_lex_state = 2},
  [4904] = {.lex_state = 9, .external_lex_state = 2},
  [4905] = {.lex_state = 9, .external_lex_state = 2},
  [4906] = {.lex_state = 9, .external_lex_state = 2},
  [4907] = {.lex_state = 20, .external_lex_state = 2},
  [4908] = {.lex_state = 9, .external_lex_state = 2},
  [4909] = {.lex_state = 9, .external_lex_state = 2},
  [4910] = {.lex_state = 8, .external_lex_state = 2},
  [4911] = {.lex_state = 9, .external_lex_state = 2},
  [4912] = {.lex_state = 9, .external_lex_state = 2},
  [4913] = {.lex_state = 9, .external_lex_state = 2},
  [4914] = {.lex_state = 9, .external_lex_state = 2},
  [4915] = {.lex_state = 8, .external_lex_state = 2},
  [4916] = {.lex_state = 20, .external_lex_state = 2},
  [4917] = {.lex_state = 9, .external_lex_state = 2},
  [4918] = {.lex_state = 20, .external_lex_state = 2},
  [4919] = {.lex_state = 9, .external_lex_state = 2},
  [4920] = {.lex_state = 8, .external_lex_state = 2},
  [4921] = {.lex_state = 9, .external_lex_state = 2},
  [4922] = {.lex_state = 9, .external_lex_state = 2},
  [4923] = {.lex_state = 9, .external_lex_state = 2},
  [4924] = {.lex_state = 9, .external_lex_state = 2},
  [4925] = {.lex_state = 9, .external_lex_state = 2},
  [4926] = {.lex_state = 9, .external_lex_state = 2},
  [4927] = {.lex_state = 9, .external_lex_state = 2},
  [4928] = {.lex_state = 9, .external_lex_state = 2},
  [4929] = {.lex_state = 9, .external_lex_state = 2},
  [4930] = {.lex_state = 9, .external_lex_state = 2},
  [4931] = {.lex_state = 20, .external_lex_state = 2},
  [4932] = {.lex_state = 9, .external_lex_state = 2},
  [4933] = {.lex_state = 9, .external_lex_state = 2},
  [4934] = {.lex_state = 9, .external_lex_state = 2},
  [4935] = {.lex_state = 9, .external_lex_state = 2},
  [4936] = {.lex_state = 9, .external_lex_state = 2},
  [4937] = {.lex_state = 9, .external_lex_state = 2},
  [4938] = {.lex_state = 9, .external_lex_state = 2},
  [4939] = {.lex_state = 9, .external_lex_state = 2},
  [4940] = {.lex_state = 8, .external_lex_state = 2},
  [4941] = {.lex_state = 9, .external_lex_state = 2},
  [4942] = {.lex_state = 9, .external_lex_state = 2},
  [4943] = {.lex_state = 9, .external_lex_state = 2},
  [4944] = {.lex_state = 9, .external_lex_state = 2},
  [4945] = {.lex_state = 8, .external_lex_state = 2},
  [4946] = {.lex_state = 9, .external_lex_state = 2},
  [4947] = {.lex_state = 20, .external_lex_state = 2},
  [4948] = {.lex_state = 20, .external_lex_state = 2},
  [4949] = {.lex_state = 9, .external_lex_state = 2},
  [4950] = {.lex_state = 9, .external_lex_state = 2},
  [4951] = {.lex_state = 9, .external_lex_state = 2},
  [4952] = {.lex_state = 9, .external_lex_state = 2},
  [4953] = {.lex_state = 8, .external_lex_state = 2},
  [4954] = {.lex_state = 9, .external_lex_state = 2},
  [4955] = {.lex_state = 20, .external_lex_state = 2},
  [4956] = {.lex_state = 9, .external_lex_state = 2},
  [4957] = {.lex_state = 9, .external_lex_state = 2},
  [4958] = {.lex_state = 9, .external_lex_state = 2},
  [4959] = {.lex_state = 9, .external_lex_state = 2},
  [4960] = {.lex_state = 9, .external_lex_state = 2},
  [4961] = {.lex_state = 9, .external_lex_state = 2},
  [4962] = {.lex_state = 8, .external_lex_state = 2},
  [4963] = {.lex_state = 9, .external_lex_state = 2},
  [4964] = {.lex_state = 9, .external_lex_state = 2},
  [4965] = {.lex_state = 9, .external_lex_state = 2},
  [4966] = {.lex_state = 20, .external_lex_state = 2},
  [4967] = {.lex_state = 9, .external_lex_state = 2},
  [4968] = {.lex_state = 20, .external_lex_state = 2},
  [4969] = {.lex_state = 20, .external_lex_state = 2},
  [4970] = {.lex_state = 9, .external_lex_state = 2},
  [4971] = {.lex_state = 9, .external_lex_state = 2},
  [4972] = {.lex_state = 9, .external_lex_state = 2},
  [4973] = {.lex_state = 20, .external_lex_state = 2},
  [4974] = {.lex_state = 9, .external_lex_state = 2},
  [4975] = {.lex_state = 9, .external_lex_state = 2},
  [4976] = {.lex_state = 9, .external_lex_state = 2},
  [4977] = {.lex_state = 9, .external_lex_state = 2},
  [4978] = {.lex_state = 8, .external_lex_state = 2},
  [4979] = {.lex_state = 8, .external_lex_state = 2},
  [4980] = {.lex_state = 9, .external_lex_state = 2},
  [4981] = {.lex_state = 9, .external_lex_state = 2},
  [4982] = {.lex_state = 9, .external_lex_state = 2},
  [4983] = {.lex_state = 9, .external_lex_state = 2},
  [4984] = {.lex_state = 9, .external_lex_state = 2},
  [4985] = {.lex_state = 9, .external_lex_state = 2},
  [4986] = {.lex_state = 9, .external_lex_state = 2},
  [4987] = {.lex_state = 9, .external_lex_state = 2},
  [4988] = {.lex_state = 9, .external_lex_state = 2},
  [4989] = {.lex_state = 9, .external_lex_state = 2},
  [4990] = {.lex_state = 9, .external_lex_state = 2},
  [4991] = {.lex_state = 9, .external_lex_state = 2},
  [4992] = {.lex_state = 9, .external_lex_state = 2},
  [4993] = {.lex_state = 9, .external_lex_state = 2},
  [4994] = {.lex_state = 9, .external_lex_state = 2},
  [4995] = {.lex_state = 9, .external_lex_state = 2},
  [4996] = {.lex_state = 9, .external_lex_state = 2},
  [4997] = {.lex_state = 9, .external_lex_state = 2},
  [4998] = {.lex_state = 9, .external_lex_state = 2},
  [4999] = {.lex_state = 9, .external_lex_state = 2},
  [5000] = {.lex_state = 9, .external_lex_state = 2},
  [5001] = {.lex_state = 9, .external_lex_state = 2},
  [5002] = {.lex_state = 9, .external_lex_state = 2},
  [5003] = {.lex_state = 9, .external_lex_state = 2},
  [5004] = {.lex_state = 9, .external_lex_state = 2},
  [5005] = {.lex_state = 9, .external_lex_state = 2},
  [5006] = {.lex_state = 9, .external_lex_state = 2},
  [5007] = {.lex_state = 9, .external_lex_state = 2},
  [5008] = {.lex_state = 9, .external_lex_state = 2},
  [5009] = {.lex_state = 8, .external_lex_state = 2},
  [5010] = {.lex_state = 9, .external_lex_state = 2},
  [5011] = {.lex_state = 9, .external_lex_state = 2},
  [5012] = {.lex_state = 8, .external_lex_state = 2},
  [5013] = {.lex_state = 9, .external_lex_state = 2},
  [5014] = {.lex_state = 9, .external_lex_state = 2},
  [5015] = {.lex_state = 9, .external_lex_state = 2},
  [5016] = {.lex_state = 9, .external_lex_state = 2},
  [5017] = {.lex_state = 10, .external_lex_state = 2},
  [5018] = {.lex_state = 8, .external_lex_state = 2},
  [5019] = {.lex_state = 8, .external_lex_state = 2},
  [5020] = {.lex_state = 9, .external_lex_state = 2},
  [5021] = {.lex_state = 8, .external_lex_state = 2},
  [5022] = {.lex_state = 9, .external_lex_state = 2},
  [5023] = {.lex_state = 8, .external_lex_state = 2},
  [5024] = {.lex_state = 8, .external_lex_state = 2},
  [5025] = {.lex_state = 9, .external_lex_state = 2},
  [5026] = {.lex_state = 8, .external_lex_state = 2},
  [5027] = {.lex_state = 10, .external_lex_state = 2},
  [5028] = {.lex_state = 9, .external_lex_state = 2},
  [5029] = {.lex_state = 8, .external_lex_state = 2},
  [5030] = {.lex_state = 8, .external_lex_state = 2},
  [5031] = {.lex_state = 8, .external_lex_state = 2},
  [5032] = {.lex_state = 8, .external_lex_state = 2},
  [5033] = {.lex_state = 8, .external_lex_state = 2},
  [5034] = {.lex_state = 9, .external_lex_state = 2},
  [5035] = {.lex_state = 9, .external_lex_state = 2},
  [5036] = {.lex_state = 8, .external_lex_state = 2},
  [5037] = {.lex_state = 8, .external_lex_state = 2},
  [5038] = {.lex_state = 9, .external_lex_state = 2},
  [5039] = {.lex_state = 10, .external_lex_state = 2},
  [5040] = {.lex_state = 8, .external_lex_state = 2},
  [5041] = {.lex_state = 9, .external_lex_state = 2},
  [5042] = {.lex_state = 9, .external_lex_state = 2},
  [5043] = {.lex_state = 8, .external_lex_state = 2},
  [5044] = {.lex_state = 8, .external_lex_state = 2},
  [5045] = {.lex_state = 8, .external_lex_state = 2},
  [5046] = {.lex_state = 20, .external_lex_state = 2},
  [5047] = {.lex_state = 9, .external_lex_state = 2},
  [5048] = {.lex_state = 9, .external_lex_state = 2},
  [5049] = {.lex_state = 8, .external_lex_state = 2},
  [5050] = {.lex_state = 8, .external_lex_state = 2},
  [5051] = {.lex_state = 10, .external_lex_state = 2},
  [5052] = {.lex_state = 9, .external_lex_state = 2},
  [5053] = {.lex_state = 10, .external_lex_state = 2},
  [5054] = {.lex_state = 9, .external_lex_state = 2},
  [5055] = {.lex_state = 8, .external_lex_state = 2},
  [5056] = {.lex_state = 10, .external_lex_state = 2},
  [5057] = {.lex_state = 9, .external_lex_state = 2},
  [5058] = {.lex_state = 8, .external_lex_state = 2},
  [5059] = {.lex_state = 8, .external_lex_state = 2},
  [5060] = {.lex_state = 20, .external_lex_state = 2},
  [5061] = {.lex_state = 8, .external_lex_state = 2},
  [5062] = {.lex_state = 8, .external_lex_state = 2},
  [5063] = {.lex_state = 8, .external_lex_state = 2},
  [5064] = {.lex_state = 10, .external_lex_state = 2},
  [5065] = {.lex_state = 10, .external_lex_state = 2},
  [5066] = {.lex_state = 8, .external_lex_state = 2},
  [5067] = {.lex_state = 10, .external_lex_state = 2},
  [5068] = {.lex_state = 8, .external_lex_state = 2},
  [5069] = {.lex_state = 8, .external_lex_state = 2},
  [5070] = {.lex_state = 10, .external_lex_state = 2},
  [5071] = {.lex_state = 9, .external_lex_state = 2},
  [5072] = {.lex_state = 10, .external_lex_state = 2},
  [5073] = {.lex_state = 10, .external_lex_state = 2},
  [5074] = {.lex_state = 9, .external_lex_state = 2},
  [5075] = {.lex_state = 9, .external_lex_state = 2},
  [5076] = {.lex_state = 8, .external_lex_state = 2},
  [5077] = {.lex_state = 8, .external_lex_state = 2},
  [5078] = {.lex_state = 9, .external_lex_state = 2},
  [5079] = {.lex_state = 9, .external_lex_state = 2},
  [5080] = {.lex_state = 10, .external_lex_state = 2},
  [5081] = {.lex_state = 10, .external_lex_state = 2},
  [5082] = {.lex_state = 8, .external_lex_state = 2},
  [5083] = {.lex_state = 8, .external_lex_state = 2},
  [5084] = {.lex_state = 10, .external_lex_state = 2},
  [5085] = {.lex_state = 9, .external_lex_state = 2},
  [5086] = {.lex_state = 8, .external_lex_state = 2},
  [5087] = {.lex_state = 9, .external_lex_state = 2},
  [5088] = {.lex_state = 9, .external_lex_state = 2},
  [5089] = {.lex_state = 10, .external_lex_state = 2},
  [5090] = {.lex_state = 21, .external_lex_state = 2},
  [5091] = {.lex_state = 21, .external_lex_state = 2},
  [5092] = {.lex_state = 9, .external_lex_state = 2},
  [5093] = {.lex_state = 21, .external_lex_state = 2},
  [5094] = {.lex_state = 21, .external_lex_state = 2},
  [5095] = {.lex_state = 9, .external_lex_state = 2},
  [5096] = {.lex_state = 8, .external_lex_state = 2},
  [5097] = {.lex_state = 21, .external_lex_state = 2},
  [5098] = {.lex_state = 21, .external_lex_state = 2},
  [5099] = {.lex_state = 8, .external_lex_state = 2},
  [5100] = {.lex_state = 21, .external_lex_state = 2},
  [5101] = {.lex_state = 21, .external_lex_state = 2},
  [5102] = {.lex_state = 8, .external_lex_state = 2},
  [5103] = {.lex_state = 9, .external_lex_state = 2},
  [5104] = {.lex_state = 8, .external_lex_state = 2},
  [5105] = {.lex_state = 21, .external_lex_state = 2},
  [5106] = {.lex_state = 9, .external_lex_state = 2},
  [5107] = {.lex_state = 21, .external_lex_state = 2},
  [5108] = {.lex_state = 8, .external_lex_state = 2},
  [5109] = {.lex_state = 8, .external_lex_state = 2},
  [5110] = {.lex_state = 21, .external_lex_state = 2},
  [5111] = {.lex_state = 8, .external_lex_state = 2},
  [5112] = {.lex_state = 8, .external_lex_state = 2},
  [5113] = {.lex_state = 8, .external_lex_state = 2},
  [5114] = {.lex_state = 21, .external_lex_state = 2},
  [5115] = {.lex_state = 8, .external_lex_state = 2},
  [5116] = {.lex_state = 21, .external_lex_state = 2},
  [5117] = {.lex_state = 9, .external_lex_state = 2},
  [5118] = {.lex_state = 21, .external_lex_state = 2},
  [5119] = {.lex_state = 8, .external_lex_state = 2},
  [5120] = {.lex_state = 21, .external_lex_state = 2},
  [5121] = {.lex_state = 9, .external_lex_state = 2},
  [5122] = {.lex_state = 8, .external_lex_state = 2},
  [5123] = {.lex_state = 21, .external_lex_state = 2},
  [5124] = {.lex_state = 8, .external_lex_state = 2},
  [5125] = {.lex_state = 21, .external_lex_state = 2},
  [5126] = {.lex_state = 8, .external_lex_state = 2},
  [5127] = {.lex_state = 8, .external_lex_state = 2},
  [5128] = {.lex_state = 8, .external_lex_state = 2},
  [5129] = {.lex_state = 21, .external_lex_state = 2},
  [5130] = {.lex_state = 8, .external_lex_state = 2},
  [5131] = {.lex_state = 9, .external_lex_state = 2},
  [5132] = {.lex_state = 21, .external_lex_state = 2},
  [5133] = {.lex_state = 21, .external_lex_state = 2},
  [5134] = {.lex_state = 21, .external_lex_state = 2},
  [5135] = {.lex_state = 21, .external_lex_state = 2},
  [5136] = {.lex_state = 21, .external_lex_state = 2},
  [5137] = {.lex_state = 8, .external_lex_state = 2},
  [5138] = {.lex_state = 21, .external_lex_state = 2},
  [5139] = {.lex_state = 21, .external_lex_state = 2},
  [5140] = {.lex_state = 21, .external_lex_state = 2},
  [5141] = {.lex_state = 21, .external_lex_state = 2},
  [5142] = {.lex_state = 15, .external_lex_state = 2},
  [5143] = {.lex_state = 9, .external_lex_state = 2},
  [5144] = {.lex_state = 15, .external_lex_state = 2},
  [5145] = {.lex_state = 10, .external_lex_state = 2},
  [5146] = {.lex_state = 15, .external_lex_state = 2},
  [5147] = {.lex_state = 15, .external_lex_state = 2},
  [5148] = {.lex_state = 9, .external_lex_state = 2},
  [5149] = {.lex_state = 15, .external_lex_state = 2},
  [5150] = {.lex_state = 9, .external_lex_state = 2},
  [5151] = {.lex_state = 8, .external_lex_state = 2},
  [5152] = {.lex_state = 15, .external_lex_state = 2},
  [5153] = {.lex_state = 15, .external_lex_state = 2},
  [5154] = {.lex_state = 9, .external_lex_state = 2},
  [5155] = {.lex_state = 15, .external_lex_state = 2},
  [5156] = {.lex_state = 9, .external_lex_state = 2},
  [5157] = {.lex_state = 9, .external_lex_state = 2},
  [5158] = {.lex_state = 15, .external_lex_state = 2},
  [5159] = {.lex_state = 9, .external_lex_state = 2},
  [5160] = {.lex_state = 15, .external_lex_state = 2},
  [5161] = {.lex_state = 9, .external_lex_state = 2},
  [5162] = {.lex_state = 9, .external_lex_state = 2},
  [5163] = {.lex_state = 15, .external_lex_state = 2},
  [5164] = {.lex_state = 9, .external_lex_state = 2},
  [5165] = {.lex_state = 9, .external_lex_state = 2},
  [5166] = {.lex_state = 15, .external_lex_state = 2},
  [5167] = {.lex_state = 9, .external_lex_state = 2},
  [5168] = {.lex_state = 15, .external_lex_state = 2},
  [5169] = {.lex_state = 9, .external_lex_state = 2},
  [5170] = {.lex_state = 15, .external_lex_state = 2},
  [5171] = {.lex_state = 9, .external_lex_state = 2},
  [5172] = {.lex_state = 15, .external_lex_state = 2},
  [5173] = {.lex_state = 15, .external_lex_state = 2},
  [5174] = {.lex_state = 9, .external_lex_state = 2},
  [5175] = {.lex_state = 15, .external_lex_state = 2},
  [5176] = {.lex_state = 9, .external_lex_state = 2},
  [5177] = {.lex_state = 15, .external_lex_state = 2},
  [5178] = {.lex_state = 8, .external_lex_state = 2},
  [5179] = {.lex_state = 15, .external_lex_state = 2},
  [5180] = {.lex_state = 9, .external_lex_state = 2},
  [5181] = {.lex_state = 15, .external_lex_state = 2},
  [5182] = {.lex_state = 8, .external_lex_state = 2},
  [5183] = {.lex_state = 9, .external_lex_state = 2},
  [5184] = {.lex_state = 15, .external_lex_state = 2},
  [5185] = {.lex_state = 15, .external_lex_state = 2},
  [5186] = {.lex_state = 10, .external_lex_state = 2},
  [5187] = {.lex_state = 15, .external_lex_state = 2},
  [5188] = {.lex_state = 9, .external_lex_state = 2},
  [5189] = {.lex_state = 15, .external_lex_state = 2},
  [5190] = {.lex_state = 8, .external_lex_state = 2},
  [5191] = {.lex_state = 15, .external_lex_state = 2},
  [5192] = {.lex_state = 9, .external_lex_state = 2},
  [5193] = {.lex_state = 15, .external_lex_state = 2},
  [5194] = {.lex_state = 10, .external_lex_state = 2},
  [5195] = {.lex_state = 15, .external_lex_state = 2},
  [5196] = {.lex_state = 15, .external_lex_state = 2},
  [5197] = {.lex_state = 8, .external_lex_state = 2},
  [5198] = {.lex_state = 9, .external_lex_state = 2},
  [5199] = {.lex_state = 15, .external_lex_state = 2},
  [5200] = {.lex_state = 9, .external_lex_state = 2},
  [5201] = {.lex_state = 15, .external_lex_state = 2},
  [5202] = {.lex_state = 15, .external_lex_state = 2},
  [5203] = {.lex_state = 9, .external_lex_state = 2},
  [5204] = {.lex_state = 15, .external_lex_state = 2},
  [5205] = {.lex_state = 15, .external_lex_state = 2},
  [5206] = {.lex_state = 15, .external_lex_state = 2},
  [5207] = {.lex_state = 15, .external_lex_state = 2},
  [5208] = {.lex_state = 9, .external_lex_state = 2},
  [5209] = {.lex_state = 9, .external_lex_state = 2},
  [5210] = {.lex_state = 9, .external_lex_state = 2},
  [5211] = {.lex_state = 9, .external_lex_state = 2},
  [5212] = {.lex_state = 9, .external_lex_state = 2},
  [5213] = {.lex_state = 9, .external_lex_state = 2},
  [5214] = {.lex_state = 9, .external_lex_state = 2},
  [5215] = {.lex_state = 9, .external_lex_state = 2},
  [5216] = {.lex_state = 9, .external_lex_state = 2},
  [5217] = {.lex_state = 9, .external_lex_state = 2},
  [5218] = {.lex_state = 9, .external_lex_state = 2},
  [5219] = {.lex_state = 9, .external_lex_state = 2},
  [5220] = {.lex_state = 9, .external_lex_state = 2},
  [5221] = {.lex_state = 9, .external_lex_state = 2},
  [5222] = {.lex_state = 9, .external_lex_state = 2},
  [5223] = {.lex_state = 9, .external_lex_state = 2},
  [5224] = {.lex_state = 9, .external_lex_state = 2},
  [5225] = {.lex_state = 9, .external_lex_state = 2},
  [5226] = {.lex_state = 9, .external_lex_state = 2},
  [5227] = {.lex_state = 9, .external_lex_state = 2},
  [5228] = {.lex_state = 9, .external_lex_state = 2},
  [5229] = {.lex_state = 21, .external_lex_state = 2},
  [5230] = {.lex_state = 9, .external_lex_state = 2},
  [5231] = {.lex_state = 9, .external_lex_state = 2},
  [5232] = {.lex_state = 9, .external_lex_state = 2},
  [5233] = {.lex_state = 15, .external_lex_state = 2},
  [5234] = {.lex_state = 9, .external_lex_state = 2},
  [5235] = {.lex_state = 9, .external_lex_state = 2},
  [5236] = {.lex_state = 9, .external_lex_state = 2},
  [5237] = {.lex_state = 9, .external_lex_state = 2},
  [5238] = {.lex_state = 25, .external_lex_state = 2},
  [5239] = {.lex_state = 25, .external_lex_state = 2},
  [5240] = {.lex_state = 9, .external_lex_state = 2},
  [5241] = {.lex_state = 9, .external_lex_state = 2},
  [5242] = {.lex_state = 172, .external_lex_state = 2},
  [5243] = {.lex_state = 172, .external_lex_state = 2},
  [5244] = {.lex_state = 9, .external_lex_state = 2},
  [5245] = {.lex_state = 25, .external_lex_state = 2},
  [5246] = {.lex_state = 25, .external_lex_state = 2},
  [5247] = {.lex_state = 9, .external_lex_state = 2},
  [5248] = {.lex_state = 25, .external_lex_state = 2},
  [5249] = {.lex_state = 0, .external_lex_state = 2},
  [5250] = {.lex_state = 9, .external_lex_state = 2},
  [5251] = {.lex_state = 0, .external_lex_state = 2},
  [5252] = {.lex_state = 172, .external_lex_state = 2},
  [5253] = {.lex_state = 0, .external_lex_state = 2},
  [5254] = {.lex_state = 172, .external_lex_state = 2},
  [5255] = {.lex_state = 172, .external_lex_state = 2},
  [5256] = {.lex_state = 172, .external_lex_state = 2},
  [5257] = {.lex_state = 9, .external_lex_state = 2},
  [5258] = {.lex_state = 25, .external_lex_state = 2},
  [5259] = {.lex_state = 9, .external_lex_state = 2},
  [5260] = {.lex_state = 172, .external_lex_state = 2},
  [5261] = {.lex_state = 172, .external_lex_state = 2},
  [5262] = {.lex_state = 0, .external_lex_state = 2},
  [5263] = {.lex_state = 9, .external_lex_state = 2},
  [5264] = {.lex_state = 9, .external_lex_state = 2},
  [5265] = {.lex_state = 0, .external_lex_state = 2},
  [5266] = {.lex_state = 25, .external_lex_state = 2},
  [5267] = {.lex_state = 25, .external_lex_state = 2},
  [5268] = {.lex_state = 10, .external_lex_state = 2},
  [5269] = {.lex_state = 25, .external_lex_state = 2},
  [5270] = {.lex_state = 9, .external_lex_state = 2},
  [5271] = {.lex_state = 25, .external_lex_state = 2},
  [5272] = {.lex_state = 25, .external_lex_state = 2},
  [5273] = {.lex_state = 25, .external_lex_state = 2},
  [5274] = {.lex_state = 0, .external_lex_state = 2},
  [5275] = {.lex_state = 0, .external_lex_state = 2},
  [5276] = {.lex_state = 9, .external_lex_state = 2},
  [5277] = {.lex_state = 0, .external_lex_state = 2},
  [5278] = {.lex_state = 25, .external_lex_state = 2},
  [5279] = {.lex_state = 172, .external_lex_state = 2},
  [5280] = {.lex_state = 25, .external_lex_state = 2},
  [5281] = {.lex_state = 9, .external_lex_state = 2},
  [5282] = {.lex_state = 9, .external_lex_state = 2},
  [5283] = {.lex_state = 25, .external_lex_state = 2},
  [5284] = {.lex_state = 9, .external_lex_state = 2},
  [5285] = {.lex_state = 9, .external_lex_state = 2},
  [5286] = {.lex_state = 25, .external_lex_state = 2},
  [5287] = {.lex_state = 172, .external_lex_state = 2},
  [5288] = {.lex_state = 172, .external_lex_state = 2},
  [5289] = {.lex_state = 0, .external_lex_state = 2},
  [5290] = {.lex_state = 25, .external_lex_state = 2},
  [5291] = {.lex_state = 9, .external_lex_state = 2},
  [5292] = {.lex_state = 9, .external_lex_state = 2},
  [5293] = {.lex_state = 0, .external_lex_state = 2},
  [5294] = {.lex_state = 25, .external_lex_state = 2},
  [5295] = {.lex_state = 9, .external_lex_state = 2},
  [5296] = {.lex_state = 25, .external_lex_state = 2},
  [5297] = {.lex_state = 25, .external_lex_state = 2},
  [5298] = {.lex_state = 9, .external_lex_state = 2},
  [5299] = {.lex_state = 25, .external_lex_state = 2},
  [5300] = {.lex_state = 25, .external_lex_state = 2},
  [5301] = {.lex_state = 172, .external_lex_state = 2},
  [5302] = {.lex_state = 9, .external_lex_state = 2},
  [5303] = {.lex_state = 9, .external_lex_state = 2},
  [5304] = {.lex_state = 172, .external_lex_state = 2},
  [5305] = {.lex_state = 25, .external_lex_state = 2},
  [5306] = {.lex_state = 0, .external_lex_state = 2},
  [5307] = {.lex_state = 0, .external_lex_state = 2},
  [5308] = {.lex_state = 25, .external_lex_state = 2},
  [5309] = {.lex_state = 9, .external_lex_state = 2},
  [5310] = {.lex_state = 9, .external_lex_state = 2},
  [5311] = {.lex_state = 9, .external_lex_state = 2},
  [5312] = {.lex_state = 9, .external_lex_state = 2},
  [5313] = {.lex_state = 9, .external_lex_state = 2},
  [5314] = {.lex_state = 9, .external_lex_state = 2},
  [5315] = {.lex_state = 172, .external_lex_state = 2},
  [5316] = {.lex_state = 9, .external_lex_state = 2},
  [5317] = {.lex_state = 172, .external_lex_state = 2},
  [5318] = {.lex_state = 25, .external_lex_state = 2},
  [5319] = {.lex_state = 0, .external_lex_state = 2},
  [5320] = {.lex_state = 9, .external_lex_state = 2},
  [5321] = {.lex_state = 25, .external_lex_state = 2},
  [5322] = {.lex_state = 25, .external_lex_state = 2},
  [5323] = {.lex_state = 10, .external_lex_state = 2},
  [5324] = {.lex_state = 172, .external_lex_state = 2},
  [5325] = {.lex_state = 9, .external_lex_state = 2},
  [5326] = {.lex_state = 9, .external_lex_state = 2},
  [5327] = {.lex_state = 9, .external_lex_state = 2},
  [5328] = {.lex_state = 9, .external_lex_state = 2},
  [5329] = {.lex_state = 9, .external_lex_state = 2},
  [5330] = {.lex_state = 6, .external_lex_state = 2},
  [5331] = {.lex_state = 0, .external_lex_state = 2},
  [5332] = {.lex_state = 0, .external_lex_state = 2},
  [5333] = {.lex_state = 9, .external_lex_state = 2},
  [5334] = {.lex_state = 9, .external_lex_state = 2},
  [5335] = {.lex_state = 15, .external_lex_state = 2},
  [5336] = {.lex_state = 172, .external_lex_state = 2},
  [5337] = {.lex_state = 0, .external_lex_state = 2},
  [5338] = {.lex_state = 10, .external_lex_state = 2},
  [5339] = {.lex_state = 9, .external_lex_state = 2},
  [5340] = {.lex_state = 9, .external_lex_state = 2},
  [5341] = {.lex_state = 9, .external_lex_state = 2},
  [5342] = {.lex_state = 172, .external_lex_state = 2},
  [5343] = {.lex_state = 9, .external_lex_state = 2},
  [5344] = {.lex_state = 9, .external_lex_state = 2},
  [5345] = {.lex_state = 9, .external_lex_state = 2},
  [5346] = {.lex_state = 0, .external_lex_state = 2},
  [5347] = {.lex_state = 0, .external_lex_state = 2},
  [5348] = {.lex_state = 9, .external_lex_state = 2},
  [5349] = {.lex_state = 0, .external_lex_state = 2},
  [5350] = {.lex_state = 0, .external_lex_state = 2},
  [5351] = {.lex_state = 9, .external_lex_state = 2},
  [5352] = {.lex_state = 9, .external_lex_state = 2},
  [5353] = {.lex_state = 9, .external_lex_state = 2},
  [5354] = {.lex_state = 9, .external_lex_state = 2},
  [5355] = {.lex_state = 0, .external_lex_state = 2},
  [5356] = {.lex_state = 9, .external_lex_state = 2},
  [5357] = {.lex_state = 9, .external_lex_state = 2},
  [5358] = {.lex_state = 9, .external_lex_state = 2},
  [5359] = {.lex_state = 9, .external_lex_state = 2},
  [5360] = {.lex_state = 0, .external_lex_state = 2},
  [5361] = {.lex_state = 0, .external_lex_state = 2},
  [5362] = {.lex_state = 0, .external_lex_state = 2},
  [5363] = {.lex_state = 9, .external_lex_state = 2},
  [5364] = {.lex_state = 0, .external_lex_state = 2},
  [5365] = {.lex_state = 9, .external_lex_state = 2},
  [5366] = {.lex_state = 9, .external_lex_state = 2},
  [5367] = {.lex_state = 0, .external_lex_state = 2},
  [5368] = {.lex_state = 9, .external_lex_state = 2},
  [5369] = {.lex_state = 9, .external_lex_state = 2},
  [5370] = {.lex_state = 9, .external_lex_state = 2},
  [5371] = {.lex_state = 9, .external_lex_state = 2},
  [5372] = {.lex_state = 9, .external_lex_state = 2},
  [5373] = {.lex_state = 9, .external_lex_state = 2},
  [5374] = {.lex_state = 9, .external_lex_state = 2},
  [5375] = {.lex_state = 0, .external_lex_state = 2},
  [5376] = {.lex_state = 0, .external_lex_state = 2},
  [5377] = {.lex_state = 0, .external_lex_state = 2},
  [5378] = {.lex_state = 172, .external_lex_state = 2},
  [5379] = {.lex_state = 0, .external_lex_state = 2},
  [5380] = {.lex_state = 0, .external_lex_state = 2},
  [5381] = {.lex_state = 0, .external_lex_state = 2},
  [5382] = {.lex_state = 9, .external_lex_state = 2},
  [5383] = {.lex_state = 9, .external_lex_state = 2},
  [5384] = {.lex_state = 9, .external_lex_state = 2},
  [5385] = {.lex_state = 9, .external_lex_state = 2},
  [5386] = {.lex_state = 9, .external_lex_state = 2},
  [5387] = {.lex_state = 9, .external_lex_state = 2},
  [5388] = {.lex_state = 9, .external_lex_state = 2},
  [5389] = {.lex_state = 10, .external_lex_state = 2},
  [5390] = {.lex_state = 9, .external_lex_state = 2},
  [5391] = {.lex_state = 9, .external_lex_state = 2},
  [5392] = {.lex_state = 9, .external_lex_state = 2},
  [5393] = {.lex_state = 0, .external_lex_state = 2},
  [5394] = {.lex_state = 0, .external_lex_state = 2},
  [5395] = {.lex_state = 9, .external_lex_state = 2},
  [5396] = {.lex_state = 9, .external_lex_state = 2},
  [5397] = {.lex_state = 9, .external_lex_state = 2},
  [5398] = {.lex_state = 9, .external_lex_state = 2},
  [5399] = {.lex_state = 9, .external_lex_state = 2},
  [5400] = {.lex_state = 8, .external_lex_state = 2},
  [5401] = {.lex_state = 9, .external_lex_state = 2},
  [5402] = {.lex_state = 9, .external_lex_state = 2},
  [5403] = {.lex_state = 9, .external_lex_state = 2},
  [5404] = {.lex_state = 9, .external_lex_state = 2},
  [5405] = {.lex_state = 0, .external_lex_state = 2},
  [5406] = {.lex_state = 9, .external_lex_state = 2},
  [5407] = {.lex_state = 10, .external_lex_state = 2},
  [5408] = {.lex_state = 9, .external_lex_state = 2},
  [5409] = {.lex_state = 9, .external_lex_state = 2},
  [5410] = {.lex_state = 9, .external_lex_state = 2},
  [5411] = {.lex_state = 9, .external_lex_state = 2},
  [5412] = {.lex_state = 9, .external_lex_state = 2},
  [5413] = {.lex_state = 9, .external_lex_state = 2},
  [5414] = {.lex_state = 9, .external_lex_state = 2},
  [5415] = {.lex_state = 6, .external_lex_state = 2},
  [5416] = {.lex_state = 10, .external_lex_state = 2},
  [5417] = {.lex_state = 9, .external_lex_state = 2},
  [5418] = {.lex_state = 9, .external_lex_state = 2},
  [5419] = {.lex_state = 9, .external_lex_state = 2},
  [5420] = {.lex_state = 0, .external_lex_state = 2},
  [5421] = {.lex_state = 0, .external_lex_state = 2},
  [5422] = {.lex_state = 9, .external_lex_state = 2},
  [5423] = {.lex_state = 9, .external_lex_state = 2},
  [5424] = {.lex_state = 0, .external_lex_state = 2},
  [5425] = {.lex_state = 0, .external_lex_state = 2},
  [5426] = {.lex_state = 0, .external_lex_state = 2},
  [5427] = {.lex_state = 9, .external_lex_state = 2},
  [5428] = {.lex_state = 9, .external_lex_state = 2},
  [5429] = {.lex_state = 9, .external_lex_state = 2},
  [5430] = {.lex_state = 9, .external_lex_state = 2},
  [5431] = {.lex_state = 9, .external_lex_state = 2},
  [5432] = {.lex_state = 0, .external_lex_state = 2},
  [5433] = {.lex_state = 9, .external_lex_state = 2},
  [5434] = {.lex_state = 9, .external_lex_state = 2},
  [5435] = {.lex_state = 0, .external_lex_state = 2},
  [5436] = {.lex_state = 9, .external_lex_state = 2},
  [5437] = {.lex_state = 9, .external_lex_state = 2},
  [5438] = {.lex_state = 0, .external_lex_state = 2},
  [5439] = {.lex_state = 9, .external_lex_state = 2},
  [5440] = {.lex_state = 9, .external_lex_state = 2},
  [5441] = {.lex_state = 0, .external_lex_state = 2},
  [5442] = {.lex_state = 172, .external_lex_state = 2},
  [5443] = {.lex_state = 9, .external_lex_state = 2},
  [5444] = {.lex_state = 0, .external_lex_state = 2},
  [5445] = {.lex_state = 9, .external_lex_state = 2},
  [5446] = {.lex_state = 9, .external_lex_state = 2},
  [5447] = {.lex_state = 0, .external_lex_state = 2},
  [5448] = {.lex_state = 9, .external_lex_state = 2},
  [5449] = {.lex_state = 9, .external_lex_state = 2},
  [5450] = {.lex_state = 9, .external_lex_state = 2},
  [5451] = {.lex_state = 0, .external_lex_state = 2},
  [5452] = {.lex_state = 9, .external_lex_state = 2},
  [5453] = {.lex_state = 0, .external_lex_state = 2},
  [5454] = {.lex_state = 6, .external_lex_state = 2},
  [5455] = {.lex_state = 9, .external_lex_state = 2},
  [5456] = {.lex_state = 0, .external_lex_state = 2},
  [5457] = {.lex_state = 0, .external_lex_state = 2},
  [5458] = {.lex_state = 0, .external_lex_state = 2},
  [5459] = {.lex_state = 9, .external_lex_state = 2},
  [5460] = {.lex_state = 9, .external_lex_state = 2},
  [5461] = {.lex_state = 0, .external_lex_state = 2},
  [5462] = {.lex_state = 9, .external_lex_state = 2},
  [5463] = {.lex_state = 9, .external_lex_state = 2},
  [5464] = {.lex_state = 9, .external_lex_state = 2},
  [5465] = {.lex_state = 9, .external_lex_state = 2},
  [5466] = {.lex_state = 9, .external_lex_state = 2},
  [5467] = {.lex_state = 9, .external_lex_state = 2},
  [5468] = {.lex_state = 9, .external_lex_state = 2},
  [5469] = {.lex_state = 0, .external_lex_state = 2},
  [5470] = {.lex_state = 0, .external_lex_state = 2},
  [5471] = {.lex_state = 9, .external_lex_state = 2},
  [5472] = {.lex_state = 10, .external_lex_state = 2},
  [5473] = {.lex_state = 9, .external_lex_state = 2},
  [5474] = {.lex_state = 9, .external_lex_state = 2},
  [5475] = {.lex_state = 9, .external_lex_state = 2},
  [5476] = {.lex_state = 9, .external_lex_state = 2},
  [5477] = {.lex_state = 172, .external_lex_state = 2},
  [5478] = {.lex_state = 0, .external_lex_state = 2},
  [5479] = {.lex_state = 9, .external_lex_state = 2},
  [5480] = {.lex_state = 9, .external_lex_state = 2},
  [5481] = {.lex_state = 9, .external_lex_state = 2},
  [5482] = {.lex_state = 9, .external_lex_state = 2},
  [5483] = {.lex_state = 9, .external_lex_state = 2},
  [5484] = {.lex_state = 9, .external_lex_state = 2},
  [5485] = {.lex_state = 9, .external_lex_state = 2},
  [5486] = {.lex_state = 172, .external_lex_state = 2},
  [5487] = {.lex_state = 9, .external_lex_state = 2},
  [5488] = {.lex_state = 9, .external_lex_state = 2},
  [5489] = {.lex_state = 0, .external_lex_state = 2},
  [5490] = {.lex_state = 0, .external_lex_state = 2},
  [5491] = {.lex_state = 9, .external_lex_state = 2},
  [5492] = {.lex_state = 9, .external_lex_state = 2},
  [5493] = {.lex_state = 9, .external_lex_state = 2},
  [5494] = {.lex_state = 9, .external_lex_state = 2},
  [5495] = {.lex_state = 9, .external_lex_state = 2},
  [5496] = {.lex_state = 9, .external_lex_state = 2},
  [5497] = {.lex_state = 9, .external_lex_state = 2},
  [5498] = {.lex_state = 9, .external_lex_state = 2},
  [5499] = {.lex_state = 9, .external_lex_state = 2},
  [5500] = {.lex_state = 0, .external_lex_state = 2},
  [5501] = {.lex_state = 0, .external_lex_state = 2},
  [5502] = {.lex_state = 25, .external_lex_state = 2},
  [5503] = {.lex_state = 9, .external_lex_state = 2},
  [5504] = {.lex_state = 0, .external_lex_state = 2},
  [5505] = {.lex_state = 9, .external_lex_state = 2},
  [5506] = {.lex_state = 9, .external_lex_state = 2},
  [5507] = {.lex_state = 0, .external_lex_state = 2},
  [5508] = {.lex_state = 9, .external_lex_state = 2},
  [5509] = {.lex_state = 9, .external_lex_state = 2},
  [5510] = {.lex_state = 0, .external_lex_state = 2},
  [5511] = {.lex_state = 0, .external_lex_state = 2},
  [5512] = {.lex_state = 9, .external_lex_state = 2},
  [5513] = {.lex_state = 9, .external_lex_state = 2},
  [5514] = {.lex_state = 9, .external_lex_state = 2},
  [5515] = {.lex_state = 9, .external_lex_state = 2},
  [5516] = {.lex_state = 0, .external_lex_state = 2},
  [5517] = {.lex_state = 6, .external_lex_state = 2},
  [5518] = {.lex_state = 0, .external_lex_state = 2},
  [5519] = {.lex_state = 9, .external_lex_state = 2},
  [5520] = {.lex_state = 172, .external_lex_state = 2},
  [5521] = {.lex_state = 0, .external_lex_state = 2},
  [5522] = {.lex_state = 0, .external_lex_state = 2},
  [5523] = {.lex_state = 9, .external_lex_state = 2},
  [5524] = {.lex_state = 172, .external_lex_state = 2},
  [5525] = {.lex_state = 6, .external_lex_state = 2},
  [5526] = {.lex_state = 9, .external_lex_state = 2},
  [5527] = {.lex_state = 9, .external_lex_state = 2},
  [5528] = {.lex_state = 9, .external_lex_state = 2},
  [5529] = {.lex_state = 9, .external_lex_state = 2},
  [5530] = {.lex_state = 0, .external_lex_state = 2},
  [5531] = {.lex_state = 9, .external_lex_state = 2},
  [5532] = {.lex_state = 9, .external_lex_state = 2},
  [5533] = {.lex_state = 0, .external_lex_state = 2},
  [5534] = {.lex_state = 9, .external_lex_state = 2},
  [5535] = {.lex_state = 9, .external_lex_state = 2},
  [5536] = {.lex_state = 9, .external_lex_state = 2},
  [5537] = {.lex_state = 9, .external_lex_state = 2},
  [5538] = {.lex_state = 0, .external_lex_state = 2},
  [5539] = {.lex_state = 0, .external_lex_state = 2},
  [5540] = {.lex_state = 9, .external_lex_state = 2},
  [5541] = {.lex_state = 0, .external_lex_state = 2},
  [5542] = {.lex_state = 9, .external_lex_state = 2},
  [5543] = {.lex_state = 9, .external_lex_state = 2},
  [5544] = {.lex_state = 0, .external_lex_state = 2},
  [5545] = {.lex_state = 9, .external_lex_state = 2},
  [5546] = {.lex_state = 9, .external_lex_state = 2},
  [5547] = {.lex_state = 9, .external_lex_state = 2},
  [5548] = {.lex_state = 9, .external_lex_state = 2},
  [5549] = {.lex_state = 0, .external_lex_state = 2},
  [5550] = {.lex_state = 9, .external_lex_state = 2},
  [5551] = {.lex_state = 9, .external_lex_state = 2},
  [5552] = {.lex_state = 9, .external_lex_state = 2},
  [5553] = {.lex_state = 8, .external_lex_state = 2},
  [5554] = {.lex_state = 6, .external_lex_state = 2},
  [5555] = {.lex_state = 0, .external_lex_state = 2},
  [5556] = {.lex_state = 0, .external_lex_state = 2},
  [5557] = {.lex_state = 0, .external_lex_state = 2},
  [5558] = {.lex_state = 9, .external_lex_state = 2},
  [5559] = {.lex_state = 0, .external_lex_state = 2},
  [5560] = {.lex_state = 6, .external_lex_state = 2},
  [5561] = {.lex_state = 0, .external_lex_state = 2},
  [5562] = {.lex_state = 9, .external_lex_state = 2},
  [5563] = {.lex_state = 9, .external_lex_state = 2},
  [5564] = {.lex_state = 9, .external_lex_state = 2},
  [5565] = {.lex_state = 9, .external_lex_state = 2},
  [5566] = {.lex_state = 9, .external_lex_state = 2},
  [5567] = {.lex_state = 9, .external_lex_state = 2},
  [5568] = {.lex_state = 9, .external_lex_state = 2},
  [5569] = {.lex_state = 9, .external_lex_state = 2},
  [5570] = {.lex_state = 9, .external_lex_state = 2},
  [5571] = {.lex_state = 9, .external_lex_state = 2},
  [5572] = {.lex_state = 0, .external_lex_state = 2},
  [5573] = {.lex_state = 9, .external_lex_state = 2},
  [5574] = {.lex_state = 9, .external_lex_state = 6},
  [5575] = {.lex_state = 9, .external_lex_state = 2},
  [5576] = {.lex_state = 9, .external_lex_state = 2},
  [5577] = {.lex_state = 9, .external_lex_state = 2},
  [5578] = {.lex_state = 9, .external_lex_state = 2},
  [5579] = {.lex_state = 0, .external_lex_state = 2},
  [5580] = {.lex_state = 9, .external_lex_state = 2},
  [5581] = {.lex_state = 9, .external_lex_state = 2},
  [5582] = {.lex_state = 9, .external_lex_state = 2},
  [5583] = {.lex_state = 9, .external_lex_state = 2},
  [5584] = {.lex_state = 9, .external_lex_state = 2},
  [5585] = {.lex_state = 172, .external_lex_state = 2},
  [5586] = {.lex_state = 9, .external_lex_state = 2},
  [5587] = {.lex_state = 9, .external_lex_state = 2},
  [5588] = {.lex_state = 9, .external_lex_state = 2},
  [5589] = {.lex_state = 9, .external_lex_state = 2},
  [5590] = {.lex_state = 9, .external_lex_state = 2},
  [5591] = {.lex_state = 9, .external_lex_state = 2},
  [5592] = {.lex_state = 9, .external_lex_state = 2},
  [5593] = {.lex_state = 9, .external_lex_state = 2},
  [5594] = {.lex_state = 9, .external_lex_state = 2},
  [5595] = {.lex_state = 9, .external_lex_state = 2},
  [5596] = {.lex_state = 9, .external_lex_state = 2},
  [5597] = {.lex_state = 172, .external_lex_state = 2},
  [5598] = {.lex_state = 9, .external_lex_state = 2},
  [5599] = {.lex_state = 9, .external_lex_state = 6},
  [5600] = {.lex_state = 9, .external_lex_state = 2},
  [5601] = {.lex_state = 9, .external_lex_state = 2},
  [5602] = {.lex_state = 9, .external_lex_state = 2},
  [5603] = {.lex_state = 9, .external_lex_state = 2},
  [5604] = {.lex_state = 9, .external_lex_state = 2},
  [5605] = {.lex_state = 9, .external_lex_state = 2},
  [5606] = {.lex_state = 9, .external_lex_state = 2},
  [5607] = {.lex_state = 9, .external_lex_state = 2},
  [5608] = {.lex_state = 9, .external_lex_state = 2},
  [5609] = {.lex_state = 9, .external_lex_state = 2},
  [5610] = {.lex_state = 9, .external_lex_state = 2},
  [5611] = {.lex_state = 9, .external_lex_state = 2},
  [5612] = {.lex_state = 0, .external_lex_state = 2},
  [5613] = {.lex_state = 0, .external_lex_state = 2},
  [5614] = {.lex_state = 9, .external_lex_state = 2},
  [5615] = {.lex_state = 9, .external_lex_state = 2},
  [5616] = {.lex_state = 9, .external_lex_state = 2},
  [5617] = {.lex_state = 9, .external_lex_state = 2},
  [5618] = {.lex_state = 9, .external_lex_state = 2},
  [5619] = {.lex_state = 9, .external_lex_state = 2},
  [5620] = {.lex_state = 9, .external_lex_state = 2},
  [5621] = {.lex_state = 9, .external_lex_state = 2},
  [5622] = {.lex_state = 9, .external_lex_state = 2},
  [5623] = {.lex_state = 9, .external_lex_state = 2},
  [5624] = {.lex_state = 9, .external_lex_state = 2},
  [5625] = {.lex_state = 9, .external_lex_state = 2},
  [5626] = {.lex_state = 9, .external_lex_state = 2},
  [5627] = {.lex_state = 9, .external_lex_state = 2},
  [5628] = {.lex_state = 0, .external_lex_state = 2},
  [5629] = {.lex_state = 9, .external_lex_state = 2},
  [5630] = {.lex_state = 0, .external_lex_state = 2},
  [5631] = {.lex_state = 9, .external_lex_state = 2},
  [5632] = {.lex_state = 9, .external_lex_state = 2},
  [5633] = {.lex_state = 9, .external_lex_state = 2},
  [5634] = {.lex_state = 9, .external_lex_state = 2},
  [5635] = {.lex_state = 9, .external_lex_state = 2},
  [5636] = {.lex_state = 9, .external_lex_state = 2},
  [5637] = {.lex_state = 9, .external_lex_state = 2},
  [5638] = {.lex_state = 0, .external_lex_state = 2},
  [5639] = {.lex_state = 9, .external_lex_state = 2},
  [5640] = {.lex_state = 9, .external_lex_state = 2},
  [5641] = {.lex_state = 9, .external_lex_state = 2},
  [5642] = {.lex_state = 9, .external_lex_state = 2},
  [5643] = {.lex_state = 9, .external_lex_state = 2},
  [5644] = {.lex_state = 9, .external_lex_state = 2},
  [5645] = {.lex_state = 9, .external_lex_state = 2},
  [5646] = {.lex_state = 0, .external_lex_state = 2},
  [5647] = {.lex_state = 9, .external_lex_state = 2},
  [5648] = {.lex_state = 9, .external_lex_state = 2},
  [5649] = {.lex_state = 9, .external_lex_state = 2},
  [5650] = {.lex_state = 9, .external_lex_state = 2},
  [5651] = {.lex_state = 9, .external_lex_state = 2},
  [5652] = {.lex_state = 9, .external_lex_state = 2},
  [5653] = {.lex_state = 9, .external_lex_state = 2},
  [5654] = {.lex_state = 0, .external_lex_state = 2},
  [5655] = {.lex_state = 9, .external_lex_state = 2},
  [5656] = {.lex_state = 9, .external_lex_state = 2},
  [5657] = {.lex_state = 9, .external_lex_state = 2},
  [5658] = {.lex_state = 9, .external_lex_state = 2},
  [5659] = {.lex_state = 9, .external_lex_state = 2},
  [5660] = {.lex_state = 9, .external_lex_state = 2},
  [5661] = {.lex_state = 9, .external_lex_state = 2},
  [5662] = {.lex_state = 9, .external_lex_state = 2},
  [5663] = {.lex_state = 9, .external_lex_state = 2},
  [5664] = {.lex_state = 9, .external_lex_state = 2},
  [5665] = {.lex_state = 9, .external_lex_state = 2},
  [5666] = {.lex_state = 9, .external_lex_state = 2},
  [5667] = {.lex_state = 9, .external_lex_state = 2},
  [5668] = {.lex_state = 9, .external_lex_state = 2},
  [5669] = {.lex_state = 9, .external_lex_state = 2},
  [5670] = {.lex_state = 9, .external_lex_state = 2},
  [5671] = {.lex_state = 9, .external_lex_state = 2},
  [5672] = {.lex_state = 9, .external_lex_state = 2},
  [5673] = {.lex_state = 9, .external_lex_state = 2},
  [5674] = {.lex_state = 9, .external_lex_state = 2},
  [5675] = {.lex_state = 9, .external_lex_state = 2},
  [5676] = {.lex_state = 9, .external_lex_state = 2},
  [5677] = {.lex_state = 9, .external_lex_state = 2},
  [5678] = {.lex_state = 9, .external_lex_state = 2},
  [5679] = {.lex_state = 9, .external_lex_state = 2},
  [5680] = {.lex_state = 9, .external_lex_state = 2},
  [5681] = {.lex_state = 9, .external_lex_state = 2},
  [5682] = {.lex_state = 9, .external_lex_state = 2},
  [5683] = {.lex_state = 9, .external_lex_state = 2},
  [5684] = {.lex_state = 9, .external_lex_state = 2},
  [5685] = {.lex_state = 9, .external_lex_state = 2},
  [5686] = {.lex_state = 9, .external_lex_state = 2},
  [5687] = {.lex_state = 9, .external_lex_state = 2},
  [5688] = {.lex_state = 0, .external_lex_state = 2},
  [5689] = {.lex_state = 9, .external_lex_state = 2},
  [5690] = {.lex_state = 0, .external_lex_state = 2},
  [5691] = {.lex_state = 9, .external_lex_state = 2},
  [5692] = {.lex_state = 9, .external_lex_state = 2},
  [5693] = {.lex_state = 9, .external_lex_state = 2},
  [5694] = {.lex_state = 9, .external_lex_state = 2},
  [5695] = {.lex_state = 9, .external_lex_state = 2},
  [5696] = {.lex_state = 9, .external_lex_state = 2},
  [5697] = {.lex_state = 9, .external_lex_state = 2},
  [5698] = {.lex_state = 9, .external_lex_state = 2},
  [5699] = {.lex_state = 9, .external_lex_state = 2},
  [5700] = {.lex_state = 9, .external_lex_state = 2},
  [5701] = {.lex_state = 9, .external_lex_state = 2},
  [5702] = {.lex_state = 9, .external_lex_state = 2},
  [5703] = {.lex_state = 9, .external_lex_state = 2},
  [5704] = {.lex_state = 9, .external_lex_state = 2},
  [5705] = {.lex_state = 9, .external_lex_state = 2},
  [5706] = {.lex_state = 9, .external_lex_state = 2},
  [5707] = {.lex_state = 9, .external_lex_state = 2},
  [5708] = {.lex_state = 9, .external_lex_state = 2},
  [5709] = {.lex_state = 9, .external_lex_state = 2},
  [5710] = {.lex_state = 9, .external_lex_state = 2},
  [5711] = {.lex_state = 9, .external_lex_state = 2},
  [5712] = {.lex_state = 9, .external_lex_state = 2},
  [5713] = {.lex_state = 9, .external_lex_state = 2},
  [5714] = {.lex_state = 9, .external_lex_state = 2},
  [5715] = {.lex_state = 9, .external_lex_state = 2},
  [5716] = {.lex_state = 9, .external_lex_state = 2},
  [5717] = {.lex_state = 9, .external_lex_state = 2},
  [5718] = {.lex_state = 9, .external_lex_state = 2},
  [5719] = {.lex_state = 9, .external_lex_state = 2},
  [5720] = {.lex_state = 9, .external_lex_state = 2},
  [5721] = {.lex_state = 172, .external_lex_state = 2},
  [5722] = {.lex_state = 9, .external_lex_state = 2},
  [5723] = {.lex_state = 9, .external_lex_state = 2},
  [5724] = {.lex_state = 9, .external_lex_state = 2},
  [5725] = {.lex_state = 9, .external_lex_state = 2},
  [5726] = {.lex_state = 0, .external_lex_state = 2},
  [5727] = {.lex_state = 9, .external_lex_state = 2},
  [5728] = {.lex_state = 0, .external_lex_state = 2},
  [5729] = {.lex_state = 9, .external_lex_state = 2},
  [5730] = {.lex_state = 9, .external_lex_state = 2},
  [5731] = {.lex_state = 0, .external_lex_state = 2},
  [5732] = {.lex_state = 9, .external_lex_state = 2},
  [5733] = {.lex_state = 9, .external_lex_state = 2},
  [5734] = {.lex_state = 0, .external_lex_state = 2},
  [5735] = {.lex_state = 0, .external_lex_state = 2},
  [5736] = {.lex_state = 0, .external_lex_state = 2},
  [5737] = {.lex_state = 0, .external_lex_state = 2},
  [5738] = {.lex_state = 0, .external_lex_state = 2},
  [5739] = {.lex_state = 0, .external_lex_state = 2},
  [5740] = {.lex_state = 0, .external_lex_state = 2},
  [5741] = {.lex_state = 0, .external_lex_state = 2},
  [5742] = {.lex_state = 0, .external_lex_state = 2},
  [5743] = {.lex_state = 0, .external_lex_state = 2},
  [5744] = {.lex_state = 0, .external_lex_state = 2},
  [5745] = {.lex_state = 0, .external_lex_state = 2},
  [5746] = {.lex_state = 172, .external_lex_state = 2},
  [5747] = {.lex_state = 0, .external_lex_state = 2},
  [5748] = {.lex_state = 0, .external_lex_state = 2},
  [5749] = {.lex_state = 0, .external_lex_state = 2},
  [5750] = {.lex_state = 0, .external_lex_state = 2},
  [5751] = {.lex_state = 9, .external_lex_state = 2},
  [5752] = {.lex_state = 9, .external_lex_state = 2},
  [5753] = {.lex_state = 172, .external_lex_state = 2},
  [5754] = {.lex_state = 0, .external_lex_state = 2},
  [5755] = {.lex_state = 172, .external_lex_state = 2},
  [5756] = {.lex_state = 0, .external_lex_state = 2},
  [5757] = {.lex_state = 9, .external_lex_state = 2},
  [5758] = {.lex_state = 0, .external_lex_state = 2},
  [5759] = {.lex_state = 0, .external_lex_state = 2},
  [5760] = {.lex_state = 0, .external_lex_state = 2},
  [5761] = {.lex_state = 9, .external_lex_state = 2},
  [5762] = {.lex_state = 172, .external_lex_state = 2},
  [5763] = {.lex_state = 0, .external_lex_state = 2},
  [5764] = {.lex_state = 0, .external_lex_state = 2},
  [5765] = {.lex_state = 9, .external_lex_state = 2},
  [5766] = {.lex_state = 0, .external_lex_state = 2},
  [5767] = {.lex_state = 0, .external_lex_state = 2},
  [5768] = {.lex_state = 0, .external_lex_state = 2},
  [5769] = {.lex_state = 0, .external_lex_state = 2},
  [5770] = {.lex_state = 0, .external_lex_state = 2},
  [5771] = {.lex_state = 0, .external_lex_state = 2},
  [5772] = {.lex_state = 172, .external_lex_state = 2},
  [5773] = {.lex_state = 0, .external_lex_state = 2},
  [5774] = {.lex_state = 0, .external_lex_state = 2},
  [5775] = {.lex_state = 0, .external_lex_state = 2},
  [5776] = {.lex_state = 172, .external_lex_state = 2},
  [5777] = {.lex_state = 0, .external_lex_state = 2},
  [5778] = {.lex_state = 0, .external_lex_state = 2},
  [5779] = {.lex_state = 9, .external_lex_state = 2},
  [5780] = {.lex_state = 9, .external_lex_state = 2},
  [5781] = {.lex_state = 0, .external_lex_state = 2},
  [5782] = {.lex_state = 0, .external_lex_state = 2},
  [5783] = {.lex_state = 0, .external_lex_state = 2},
  [5784] = {.lex_state = 0, .external_lex_state = 2},
  [5785] = {.lex_state = 0, .external_lex_state = 2},
  [5786] = {.lex_state = 0, .external_lex_state = 2},
  [5787] = {.lex_state = 0, .external_lex_state = 2},
  [5788] = {.lex_state = 0, .external_lex_state = 2},
  [5789] = {.lex_state = 0, .external_lex_state = 2},
  [5790] = {.lex_state = 0, .external_lex_state = 2},
  [5791] = {.lex_state = 0, .external_lex_state = 2},
  [5792] = {.lex_state = 0, .external_lex_state = 2},
  [5793] = {.lex_state = 0, .external_lex_state = 2},
  [5794] = {.lex_state = 0, .external_lex_state = 2},
  [5795] = {.lex_state = 0, .external_lex_state = 2},
  [5796] = {.lex_state = 0, .external_lex_state = 2},
  [5797] = {.lex_state = 0, .external_lex_state = 2},
  [5798] = {.lex_state = 0, .external_lex_state = 2},
  [5799] = {.lex_state = 0, .external_lex_state = 2},
  [5800] = {.lex_state = 0, .external_lex_state = 2},
  [5801] = {.lex_state = 0, .external_lex_state = 2},
  [5802] = {.lex_state = 0, .external_lex_state = 2},
  [5803] = {.lex_state = 0, .external_lex_state = 2},
  [5804] = {.lex_state = 0, .external_lex_state = 2},
  [5805] = {.lex_state = 0, .external_lex_state = 2},
  [5806] = {.lex_state = 0, .external_lex_state = 2},
  [5807] = {.lex_state = 0, .external_lex_state = 2},
  [5808] = {.lex_state = 0, .external_lex_state = 2},
  [5809] = {.lex_state = 0, .external_lex_state = 2},
  [5810] = {.lex_state = 0, .external_lex_state = 2},
  [5811] = {.lex_state = 0, .external_lex_state = 2},
  [5812] = {.lex_state = 9, .external_lex_state = 2},
  [5813] = {.lex_state = 0, .external_lex_state = 2},
  [5814] = {.lex_state = 0, .external_lex_state = 2},
  [5815] = {.lex_state = 9, .external_lex_state = 2},
  [5816] = {.lex_state = 0, .external_lex_state = 2},
  [5817] = {.lex_state = 0, .external_lex_state = 2},
  [5818] = {.lex_state = 0, .external_lex_state = 2},
  [5819] = {.lex_state = 0, .external_lex_state = 2},
  [5820] = {.lex_state = 9, .external_lex_state = 2},
  [5821] = {.lex_state = 0, .external_lex_state = 2},
  [5822] = {.lex_state = 9, .external_lex_state = 2},
  [5823] = {.lex_state = 0, .external_lex_state = 2},
  [5824] = {.lex_state = 0, .external_lex_state = 2},
  [5825] = {.lex_state = 0, .external_lex_state = 2},
  [5826] = {.lex_state = 0, .external_lex_state = 2},
  [5827] = {.lex_state = 0, .external_lex_state = 2},
  [5828] = {.lex_state = 0, .external_lex_state = 2},
  [5829] = {.lex_state = 9, .external_lex_state = 2},
  [5830] = {.lex_state = 0, .external_lex_state = 2},
  [5831] = {.lex_state = 0, .external_lex_state = 2},
  [5832] = {.lex_state = 9, .external_lex_state = 2},
  [5833] = {.lex_state = 172, .external_lex_state = 2},
  [5834] = {.lex_state = 0, .external_lex_state = 2},
  [5835] = {.lex_state = 0, .external_lex_state = 2},
  [5836] = {.lex_state = 0, .external_lex_state = 2},
  [5837] = {.lex_state = 172, .external_lex_state = 2},
  [5838] = {.lex_state = 0, .external_lex_state = 2},
  [5839] = {.lex_state = 0, .external_lex_state = 2},
  [5840] = {.lex_state = 0, .external_lex_state = 2},
  [5841] = {.lex_state = 0, .external_lex_state = 2},
  [5842] = {.lex_state = 0, .external_lex_state = 2},
  [5843] = {.lex_state = 0, .external_lex_state = 2},
  [5844] = {.lex_state = 0, .external_lex_state = 2},
  [5845] = {.lex_state = 0, .external_lex_state = 2},
  [5846] = {.lex_state = 0, .external_lex_state = 2},
  [5847] = {.lex_state = 0, .external_lex_state = 2},
  [5848] = {.lex_state = 0, .external_lex_state = 2},
  [5849] = {.lex_state = 0, .external_lex_state = 2},
  [5850] = {.lex_state = 0, .external_lex_state = 2},
  [5851] = {.lex_state = 0, .external_lex_state = 2},
  [5852] = {.lex_state = 0, .external_lex_state = 2},
  [5853] = {.lex_state = 0, .external_lex_state = 2},
  [5854] = {.lex_state = 0, .external_lex_state = 2},
  [5855] = {.lex_state = 0, .external_lex_state = 2},
  [5856] = {.lex_state = 0, .external_lex_state = 2},
  [5857] = {.lex_state = 0, .external_lex_state = 2},
  [5858] = {.lex_state = 172, .external_lex_state = 2},
  [5859] = {.lex_state = 17, .external_lex_state = 2},
  [5860] = {.lex_state = 0, .external_lex_state = 2},
  [5861] = {.lex_state = 0, .external_lex_state = 2},
  [5862] = {.lex_state = 172, .external_lex_state = 2},
  [5863] = {.lex_state = 0, .external_lex_state = 2},
  [5864] = {.lex_state = 0, .external_lex_state = 2},
  [5865] = {.lex_state = 0, .external_lex_state = 2},
  [5866] = {.lex_state = 0, .external_lex_state = 2},
  [5867] = {.lex_state = 0, .external_lex_state = 2},
  [5868] = {.lex_state = 0, .external_lex_state = 2},
  [5869] = {.lex_state = 0, .external_lex_state = 2},
  [5870] = {.lex_state = 0, .external_lex_state = 2},
  [5871] = {.lex_state = 0, .external_lex_state = 2},
  [5872] = {.lex_state = 0, .external_lex_state = 2},
  [5873] = {.lex_state = 0, .external_lex_state = 2},
  [5874] = {.lex_state = 0, .external_lex_state = 2},
  [5875] = {.lex_state = 0, .external_lex_state = 2},
  [5876] = {.lex_state = 0, .external_lex_state = 2},
  [5877] = {.lex_state = 0, .external_lex_state = 2},
  [5878] = {.lex_state = 0, .external_lex_state = 2},
  [5879] = {.lex_state = 0, .external_lex_state = 2},
  [5880] = {.lex_state = 0, .external_lex_state = 2},
  [5881] = {.lex_state = 0, .external_lex_state = 2},
  [5882] = {.lex_state = 0, .external_lex_state = 2},
  [5883] = {.lex_state = 0, .external_lex_state = 2},
  [5884] = {.lex_state = 0, .external_lex_state = 2},
  [5885] = {.lex_state = 0, .external_lex_state = 2},
  [5886] = {.lex_state = 172, .external_lex_state = 2},
  [5887] = {.lex_state = 0, .external_lex_state = 2},
  [5888] = {.lex_state = 0, .external_lex_state = 2},
  [5889] = {.lex_state = 9, .external_lex_state = 2},
  [5890] = {.lex_state = 0, .external_lex_state = 2},
  [5891] = {.lex_state = 9, .external_lex_state = 2},
  [5892] = {.lex_state = 9, .external_lex_state = 2},
  [5893] = {.lex_state = 0, .external_lex_state = 2},
  [5894] = {.lex_state = 0, .external_lex_state = 2},
  [5895] = {.lex_state = 0, .external_lex_state = 2},
  [5896] = {.lex_state = 0, .external_lex_state = 2},
  [5897] = {.lex_state = 0, .external_lex_state = 2},
  [5898] = {.lex_state = 0, .external_lex_state = 2},
  [5899] = {.lex_state = 0, .external_lex_state = 2},
  [5900] = {.lex_state = 0, .external_lex_state = 2},
  [5901] = {.lex_state = 9, .external_lex_state = 2},
  [5902] = {.lex_state = 0, .external_lex_state = 2},
  [5903] = {.lex_state = 0, .external_lex_state = 2},
  [5904] = {.lex_state = 0, .external_lex_state = 2},
  [5905] = {.lex_state = 9, .external_lex_state = 2},
  [5906] = {.lex_state = 0, .external_lex_state = 2},
  [5907] = {.lex_state = 0, .external_lex_state = 2},
  [5908] = {.lex_state = 0, .external_lex_state = 2},
  [5909] = {.lex_state = 0, .external_lex_state = 2},
  [5910] = {.lex_state = 0, .external_lex_state = 2},
  [5911] = {.lex_state = 0, .external_lex_state = 2},
  [5912] = {.lex_state = 0, .external_lex_state = 2},
  [5913] = {.lex_state = 0, .external_lex_state = 2},
  [5914] = {.lex_state = 0, .external_lex_state = 2},
  [5915] = {.lex_state = 9, .external_lex_state = 2},
  [5916] = {.lex_state = 9, .external_lex_state = 2},
  [5917] = {.lex_state = 0, .external_lex_state = 2},
  [5918] = {.lex_state = 0, .external_lex_state = 2},
  [5919] = {.lex_state = 0, .external_lex_state = 2},
  [5920] = {.lex_state = 0, .external_lex_state = 2},
  [5921] = {.lex_state = 0, .external_lex_state = 2},
  [5922] = {.lex_state = 9, .external_lex_state = 2},
  [5923] = {.lex_state = 0, .external_lex_state = 2},
  [5924] = {.lex_state = 0, .external_lex_state = 2},
  [5925] = {.lex_state = 0, .external_lex_state = 2},
  [5926] = {.lex_state = 0, .external_lex_state = 2},
  [5927] = {.lex_state = 0, .external_lex_state = 2},
  [5928] = {.lex_state = 0, .external_lex_state = 2},
  [5929] = {.lex_state = 0, .external_lex_state = 2},
  [5930] = {.lex_state = 0, .external_lex_state = 2},
  [5931] = {.lex_state = 0, .external_lex_state = 2},
  [5932] = {.lex_state = 0, .external_lex_state = 2},
  [5933] = {.lex_state = 0, .external_lex_state = 2},
  [5934] = {.lex_state = 0, .external_lex_state = 2},
  [5935] = {.lex_state = 0, .external_lex_state = 2},
  [5936] = {.lex_state = 0, .external_lex_state = 2},
  [5937] = {.lex_state = 9, .external_lex_state = 2},
  [5938] = {.lex_state = 0, .external_lex_state = 2},
  [5939] = {.lex_state = 0, .external_lex_state = 2},
  [5940] = {.lex_state = 0, .external_lex_state = 2},
  [5941] = {.lex_state = 0, .external_lex_state = 2},
  [5942] = {.lex_state = 0, .external_lex_state = 2},
  [5943] = {.lex_state = 0, .external_lex_state = 2},
  [5944] = {.lex_state = 0, .external_lex_state = 2},
  [5945] = {.lex_state = 0, .external_lex_state = 2},
  [5946] = {.lex_state = 0, .external_lex_state = 2},
  [5947] = {.lex_state = 0, .external_lex_state = 2},
  [5948] = {.lex_state = 0, .external_lex_state = 2},
  [5949] = {.lex_state = 0, .external_lex_state = 2},
  [5950] = {.lex_state = 0, .external_lex_state = 2},
  [5951] = {.lex_state = 0, .external_lex_state = 2},
  [5952] = {.lex_state = 0, .external_lex_state = 2},
  [5953] = {.lex_state = 0, .external_lex_state = 2},
  [5954] = {.lex_state = 0, .external_lex_state = 2},
  [5955] = {.lex_state = 0, .external_lex_state = 2},
  [5956] = {.lex_state = 0, .external_lex_state = 2},
  [5957] = {.lex_state = 0, .external_lex_state = 2},
  [5958] = {.lex_state = 0, .external_lex_state = 2},
  [5959] = {.lex_state = 0, .external_lex_state = 2},
  [5960] = {.lex_state = 0, .external_lex_state = 2},
  [5961] = {.lex_state = 172, .external_lex_state = 2},
  [5962] = {.lex_state = 0, .external_lex_state = 2},
  [5963] = {.lex_state = 172, .external_lex_state = 2},
  [5964] = {.lex_state = 9, .external_lex_state = 2},
  [5965] = {.lex_state = 0, .external_lex_state = 2},
  [5966] = {.lex_state = 0, .external_lex_state = 2},
  [5967] = {.lex_state = 0, .external_lex_state = 2},
  [5968] = {.lex_state = 9, .external_lex_state = 2},
  [5969] = {.lex_state = 0, .external_lex_state = 2},
  [5970] = {.lex_state = 0, .external_lex_state = 2},
  [5971] = {.lex_state = 0, .external_lex_state = 2},
  [5972] = {.lex_state = 0, .external_lex_state = 2},
  [5973] = {.lex_state = 0, .external_lex_state = 2},
  [5974] = {.lex_state = 0, .external_lex_state = 2},
  [5975] = {.lex_state = 0, .external_lex_state = 2},
  [5976] = {.lex_state = 9, .external_lex_state = 2},
  [5977] = {.lex_state = 0, .external_lex_state = 2},
  [5978] = {.lex_state = 9, .external_lex_state = 2},
  [5979] = {.lex_state = 9, .external_lex_state = 2},
  [5980] = {.lex_state = 9, .external_lex_state = 2},
  [5981] = {.lex_state = 0, .external_lex_state = 2},
  [5982] = {.lex_state = 9, .external_lex_state = 2},
  [5983] = {.lex_state = 0, .external_lex_state = 2},
  [5984] = {.lex_state = 9, .external_lex_state = 2},
  [5985] = {.lex_state = 0, .external_lex_state = 2},
  [5986] = {.lex_state = 0, .external_lex_state = 2},
  [5987] = {.lex_state = 0, .external_lex_state = 2},
  [5988] = {.lex_state = 0, .external_lex_state = 2},
  [5989] = {.lex_state = 0, .external_lex_state = 2},
  [5990] = {.lex_state = 0, .external_lex_state = 2},
  [5991] = {.lex_state = 0, .external_lex_state = 2},
  [5992] = {.lex_state = 0, .external_lex_state = 2},
  [5993] = {.lex_state = 0, .external_lex_state = 2},
  [5994] = {.lex_state = 0, .external_lex_state = 2},
  [5995] = {.lex_state = 0, .external_lex_state = 2},
  [5996] = {.lex_state = 0, .external_lex_state = 2},
  [5997] = {.lex_state = 0, .external_lex_state = 2},
  [5998] = {.lex_state = 0, .external_lex_state = 2},
  [5999] = {.lex_state = 0, .external_lex_state = 2},
  [6000] = {.lex_state = 9, .external_lex_state = 2},
  [6001] = {.lex_state = 9, .external_lex_state = 2},
  [6002] = {.lex_state = 9, .external_lex_state = 2},
  [6003] = {.lex_state = 0, .external_lex_state = 2},
  [6004] = {.lex_state = 0, .external_lex_state = 2},
  [6005] = {.lex_state = 0, .external_lex_state = 2},
  [6006] = {.lex_state = 0, .external_lex_state = 2},
  [6007] = {.lex_state = 0, .external_lex_state = 2},
  [6008] = {.lex_state = 0, .external_lex_state = 2},
  [6009] = {.lex_state = 0, .external_lex_state = 2},
  [6010] = {.lex_state = 0, .external_lex_state = 2},
  [6011] = {.lex_state = 0, .external_lex_state = 2},
  [6012] = {.lex_state = 0, .external_lex_state = 2},
  [6013] = {.lex_state = 0, .external_lex_state = 2},
  [6014] = {.lex_state = 172, .external_lex_state = 2},
  [6015] = {.lex_state = 0, .external_lex_state = 2},
  [6016] = {.lex_state = 0, .external_lex_state = 2},
  [6017] = {.lex_state = 0, .external_lex_state = 2},
  [6018] = {.lex_state = 0, .external_lex_state = 2},
  [6019] = {.lex_state = 0, .external_lex_state = 2},
  [6020] = {.lex_state = 0, .external_lex_state = 2},
  [6021] = {.lex_state = 172, .external_lex_state = 2},
  [6022] = {.lex_state = 0, .external_lex_state = 2},
  [6023] = {.lex_state = 0, .external_lex_state = 2},
  [6024] = {.lex_state = 172, .external_lex_state = 2},
  [6025] = {.lex_state = 0, .external_lex_state = 2},
  [6026] = {.lex_state = 0, .external_lex_state = 2},
  [6027] = {.lex_state = 172, .external_lex_state = 2},
  [6028] = {.lex_state = 0, .external_lex_state = 2},
  [6029] = {.lex_state = 0, .external_lex_state = 2},
  [6030] = {.lex_state = 0, .external_lex_state = 2},
  [6031] = {.lex_state = 0, .external_lex_state = 2},
  [6032] = {.lex_state = 0, .external_lex_state = 2},
  [6033] = {.lex_state = 0, .external_lex_state = 2},
  [6034] = {.lex_state = 0, .external_lex_state = 2},
  [6035] = {.lex_state = 9, .external_lex_state = 2},
  [6036] = {.lex_state = 0, .external_lex_state = 2},
  [6037] = {.lex_state = 0, .external_lex_state = 2},
  [6038] = {.lex_state = 0, .external_lex_state = 2},
  [6039] = {.lex_state = 9, .external_lex_state = 2},
  [6040] = {.lex_state = 0, .external_lex_state = 2},
  [6041] = {.lex_state = 0, .external_lex_state = 2},
  [6042] = {.lex_state = 0, .external_lex_state = 2},
  [6043] = {.lex_state = 172, .external_lex_state = 2},
  [6044] = {.lex_state = 0, .external_lex_state = 2},
  [6045] = {.lex_state = 172, .external_lex_state = 2},
  [6046] = {.lex_state = 0, .external_lex_state = 2},
  [6047] = {.lex_state = 9, .external_lex_state = 2},
  [6048] = {.lex_state = 9, .external_lex_state = 2},
  [6049] = {.lex_state = 9, .external_lex_state = 2},
  [6050] = {.lex_state = 172, .external_lex_state = 2},
  [6051] = {.lex_state = 172, .external_lex_state = 2},
  [6052] = {.lex_state = 0, .external_lex_state = 2},
  [6053] = {.lex_state = 172, .external_lex_state = 2},
  [6054] = {.lex_state = 0, .external_lex_state = 2},
  [6055] = {.lex_state = 0, .external_lex_state = 2},
  [6056] = {.lex_state = 0, .external_lex_state = 2},
  [6057] = {.lex_state = 0, .external_lex_state = 2},
  [6058] = {.lex_state = 0, .external_lex_state = 2},
  [6059] = {.lex_state = 0, .external_lex_state = 2},
  [6060] = {.lex_state = 0, .external_lex_state = 2},
  [6061] = {.lex_state = 0, .external_lex_state = 2},
  [6062] = {.lex_state = 9, .external_lex_state = 2},
  [6063] = {.lex_state = 0, .external_lex_state = 2},
  [6064] = {.lex_state = 0, .external_lex_state = 2},
  [6065] = {.lex_state = 0, .external_lex_state = 2},
  [6066] = {.lex_state = 0, .external_lex_state = 2},
  [6067] = {.lex_state = 0, .external_lex_state = 2},
  [6068] = {.lex_state = 0, .external_lex_state = 2},
  [6069] = {.lex_state = 0, .external_lex_state = 2},
  [6070] = {.lex_state = 172, .external_lex_state = 2},
  [6071] = {.lex_state = 0, .external_lex_state = 2},
  [6072] = {.lex_state = 0, .external_lex_state = 2},
  [6073] = {.lex_state = 0, .external_lex_state = 2},
  [6074] = {.lex_state = 0, .external_lex_state = 2},
  [6075] = {.lex_state = 0, .external_lex_state = 2},
  [6076] = {.lex_state = 172, .external_lex_state = 2},
  [6077] = {.lex_state = 0, .external_lex_state = 2},
  [6078] = {.lex_state = 0, .external_lex_state = 2},
  [6079] = {.lex_state = 0, .external_lex_state = 2},
  [6080] = {.lex_state = 0, .external_lex_state = 2},
  [6081] = {.lex_state = 0, .external_lex_state = 2},
  [6082] = {.lex_state = 0, .external_lex_state = 2},
  [6083] = {.lex_state = 0, .external_lex_state = 2},
  [6084] = {.lex_state = 0, .external_lex_state = 2},
  [6085] = {.lex_state = 0, .external_lex_state = 2},
  [6086] = {.lex_state = 0, .external_lex_state = 2},
  [6087] = {.lex_state = 0, .external_lex_state = 2},
  [6088] = {.lex_state = 0, .external_lex_state = 2},
  [6089] = {.lex_state = 0, .external_lex_state = 2},
  [6090] = {.lex_state = 9, .external_lex_state = 2},
  [6091] = {.lex_state = 0, .external_lex_state = 2},
  [6092] = {.lex_state = 0, .external_lex_state = 2},
  [6093] = {.lex_state = 9, .external_lex_state = 2},
  [6094] = {.lex_state = 0, .external_lex_state = 2},
  [6095] = {.lex_state = 0, .external_lex_state = 2},
  [6096] = {.lex_state = 0, .external_lex_state = 2},
  [6097] = {.lex_state = 0, .external_lex_state = 2},
  [6098] = {.lex_state = 0, .external_lex_state = 2},
  [6099] = {.lex_state = 0, .external_lex_state = 2},
  [6100] = {.lex_state = 0, .external_lex_state = 2},
  [6101] = {.lex_state = 0, .external_lex_state = 2},
  [6102] = {.lex_state = 0, .external_lex_state = 2},
  [6103] = {.lex_state = 0, .external_lex_state = 2},
  [6104] = {.lex_state = 9, .external_lex_state = 2},
  [6105] = {.lex_state = 0, .external_lex_state = 2},
  [6106] = {.lex_state = 0, .external_lex_state = 2},
  [6107] = {.lex_state = 0, .external_lex_state = 2},
  [6108] = {.lex_state = 0, .external_lex_state = 2},
  [6109] = {.lex_state = 0, .external_lex_state = 2},
  [6110] = {.lex_state = 0, .external_lex_state = 2},
  [6111] = {.lex_state = 9, .external_lex_state = 2},
  [6112] = {.lex_state = 0, .external_lex_state = 2},
  [6113] = {.lex_state = 0, .external_lex_state = 2},
  [6114] = {.lex_state = 0, .external_lex_state = 2},
  [6115] = {.lex_state = 0, .external_lex_state = 2},
  [6116] = {.lex_state = 0, .external_lex_state = 2},
  [6117] = {.lex_state = 0, .external_lex_state = 2},
  [6118] = {.lex_state = 9, .external_lex_state = 2},
  [6119] = {.lex_state = 9, .external_lex_state = 2},
  [6120] = {.lex_state = 9, .external_lex_state = 2},
  [6121] = {.lex_state = 9, .external_lex_state = 2},
  [6122] = {.lex_state = 0, .external_lex_state = 2},
  [6123] = {.lex_state = 0, .external_lex_state = 2},
  [6124] = {.lex_state = 0, .external_lex_state = 2},
  [6125] = {.lex_state = 0, .external_lex_state = 2},
  [6126] = {.lex_state = 0, .external_lex_state = 2},
  [6127] = {.lex_state = 0, .external_lex_state = 2},
  [6128] = {.lex_state = 0, .external_lex_state = 2},
  [6129] = {.lex_state = 0, .external_lex_state = 2},
  [6130] = {.lex_state = 0, .external_lex_state = 2},
  [6131] = {.lex_state = 0, .external_lex_state = 2},
  [6132] = {.lex_state = 0, .external_lex_state = 2},
  [6133] = {.lex_state = 0, .external_lex_state = 2},
  [6134] = {.lex_state = 0, .external_lex_state = 2},
  [6135] = {.lex_state = 0, .external_lex_state = 2},
  [6136] = {.lex_state = 172, .external_lex_state = 2},
  [6137] = {.lex_state = 0, .external_lex_state = 2},
  [6138] = {.lex_state = 0, .external_lex_state = 2},
  [6139] = {.lex_state = 0, .external_lex_state = 2},
  [6140] = {.lex_state = 0, .external_lex_state = 2},
  [6141] = {.lex_state = 0, .external_lex_state = 2},
  [6142] = {.lex_state = 0, .external_lex_state = 2},
  [6143] = {.lex_state = 0, .external_lex_state = 2},
  [6144] = {.lex_state = 0, .external_lex_state = 2},
  [6145] = {.lex_state = 0, .external_lex_state = 2},
  [6146] = {.lex_state = 9, .external_lex_state = 2},
  [6147] = {.lex_state = 9, .external_lex_state = 2},
  [6148] = {.lex_state = 0, .external_lex_state = 2},
  [6149] = {.lex_state = 9, .external_lex_state = 2},
  [6150] = {.lex_state = 0, .external_lex_state = 2},
  [6151] = {.lex_state = 9, .external_lex_state = 2},
  [6152] = {.lex_state = 9, .external_lex_state = 2},
  [6153] = {.lex_state = 9, .external_lex_state = 2},
  [6154] = {.lex_state = 0, .external_lex_state = 2},
  [6155] = {.lex_state = 0, .external_lex_state = 2},
  [6156] = {.lex_state = 0, .external_lex_state = 2},
  [6157] = {.lex_state = 9, .external_lex_state = 2},
  [6158] = {.lex_state = 9, .external_lex_state = 2},
  [6159] = {.lex_state = 9, .external_lex_state = 2},
  [6160] = {.lex_state = 9, .external_lex_state = 2},
  [6161] = {.lex_state = 9, .external_lex_state = 2},
  [6162] = {.lex_state = 9, .external_lex_state = 2},
  [6163] = {.lex_state = 0, .external_lex_state = 2},
  [6164] = {.lex_state = 0, .external_lex_state = 2},
  [6165] = {.lex_state = 172, .external_lex_state = 2},
  [6166] = {.lex_state = 172, .external_lex_state = 2},
  [6167] = {.lex_state = 9, .external_lex_state = 2},
  [6168] = {.lex_state = 9, .external_lex_state = 2},
  [6169] = {.lex_state = 0, .external_lex_state = 2},
  [6170] = {.lex_state = 0, .external_lex_state = 2},
  [6171] = {.lex_state = 0, .external_lex_state = 2},
  [6172] = {.lex_state = 0, .external_lex_state = 2},
  [6173] = {.lex_state = 9, .external_lex_state = 2},
  [6174] = {.lex_state = 0, .external_lex_state = 2},
  [6175] = {.lex_state = 0, .external_lex_state = 2},
  [6176] = {.lex_state = 9, .external_lex_state = 2},
  [6177] = {.lex_state = 0, .external_lex_state = 2},
  [6178] = {.lex_state = 0, .external_lex_state = 2},
  [6179] = {.lex_state = 0, .external_lex_state = 2},
  [6180] = {.lex_state = 0, .external_lex_state = 2},
  [6181] = {.lex_state = 0, .external_lex_state = 2},
  [6182] = {.lex_state = 0, .external_lex_state = 2},
  [6183] = {.lex_state = 0, .external_lex_state = 2},
  [6184] = {.lex_state = 0, .external_lex_state = 2},
  [6185] = {.lex_state = 0, .external_lex_state = 2},
  [6186] = {.lex_state = 0, .external_lex_state = 2},
  [6187] = {.lex_state = 9, .external_lex_state = 2},
  [6188] = {.lex_state = 9, .external_lex_state = 2},
  [6189] = {.lex_state = 9, .external_lex_state = 2},
  [6190] = {.lex_state = 0, .external_lex_state = 2},
  [6191] = {.lex_state = 0, .external_lex_state = 2},
  [6192] = {.lex_state = 0, .external_lex_state = 2},
  [6193] = {.lex_state = 0, .external_lex_state = 2},
  [6194] = {.lex_state = 0, .external_lex_state = 2},
  [6195] = {.lex_state = 0, .external_lex_state = 2},
  [6196] = {.lex_state = 0, .external_lex_state = 2},
  [6197] = {.lex_state = 0, .external_lex_state = 2},
  [6198] = {.lex_state = 0, .external_lex_state = 2},
  [6199] = {.lex_state = 0, .external_lex_state = 2},
  [6200] = {.lex_state = 0, .external_lex_state = 2},
  [6201] = {.lex_state = 0, .external_lex_state = 2},
  [6202] = {.lex_state = 9, .external_lex_state = 2},
  [6203] = {.lex_state = 0, .external_lex_state = 2},
  [6204] = {.lex_state = 0, .external_lex_state = 2},
  [6205] = {.lex_state = 0, .external_lex_state = 2},
  [6206] = {.lex_state = 0, .external_lex_state = 2},
  [6207] = {.lex_state = 0, .external_lex_state = 2},
  [6208] = {.lex_state = 0, .external_lex_state = 2},
  [6209] = {.lex_state = 0, .external_lex_state = 2},
  [6210] = {.lex_state = 0, .external_lex_state = 2},
  [6211] = {.lex_state = 0, .external_lex_state = 2},
  [6212] = {.lex_state = 0, .external_lex_state = 2},
  [6213] = {.lex_state = 9, .external_lex_state = 2},
  [6214] = {.lex_state = 0, .external_lex_state = 2},
  [6215] = {.lex_state = 9, .external_lex_state = 2},
  [6216] = {.lex_state = 0, .external_lex_state = 2},
  [6217] = {.lex_state = 9, .external_lex_state = 2},
  [6218] = {.lex_state = 0, .external_lex_state = 2},
  [6219] = {.lex_state = 9, .external_lex_state = 2},
  [6220] = {.lex_state = 0, .external_lex_state = 2},
  [6221] = {.lex_state = 0, .external_lex_state = 2},
  [6222] = {.lex_state = 0, .external_lex_state = 2},
  [6223] = {.lex_state = 0, .external_lex_state = 2},
  [6224] = {.lex_state = 0, .external_lex_state = 2},
  [6225] = {.lex_state = 9, .external_lex_state = 2},
  [6226] = {.lex_state = 0, .external_lex_state = 2},
  [6227] = {.lex_state = 0, .external_lex_state = 2},
  [6228] = {.lex_state = 0, .external_lex_state = 2},
  [6229] = {.lex_state = 9, .external_lex_state = 2},
  [6230] = {.lex_state = 0, .external_lex_state = 2},
  [6231] = {.lex_state = 0, .external_lex_state = 2},
  [6232] = {.lex_state = 0, .external_lex_state = 2},
  [6233] = {.lex_state = 0, .external_lex_state = 2},
  [6234] = {.lex_state = 9, .external_lex_state = 2},
  [6235] = {.lex_state = 0, .external_lex_state = 2},
  [6236] = {.lex_state = 0, .external_lex_state = 2},
  [6237] = {.lex_state = 0, .external_lex_state = 2},
  [6238] = {.lex_state = 0, .external_lex_state = 2},
  [6239] = {.lex_state = 9, .external_lex_state = 2},
  [6240] = {.lex_state = 0, .external_lex_state = 2},
  [6241] = {.lex_state = 0, .external_lex_state = 2},
  [6242] = {.lex_state = 0, .external_lex_state = 2},
  [6243] = {.lex_state = 0, .external_lex_state = 2},
  [6244] = {.lex_state = 0, .external_lex_state = 2},
  [6245] = {.lex_state = 0, .external_lex_state = 2},
  [6246] = {.lex_state = 0, .external_lex_state = 2},
  [6247] = {.lex_state = 0, .external_lex_state = 2},
  [6248] = {.lex_state = 0, .external_lex_state = 2},
  [6249] = {.lex_state = 0, .external_lex_state = 2},
  [6250] = {.lex_state = 0, .external_lex_state = 2},
  [6251] = {.lex_state = 9, .external_lex_state = 2},
  [6252] = {.lex_state = 0, .external_lex_state = 2},
  [6253] = {.lex_state = 0, .external_lex_state = 2},
  [6254] = {.lex_state = 0, .external_lex_state = 2},
  [6255] = {.lex_state = 0, .external_lex_state = 2},
  [6256] = {.lex_state = 0, .external_lex_state = 2},
  [6257] = {.lex_state = 0, .external_lex_state = 2},
  [6258] = {.lex_state = 0, .external_lex_state = 2},
  [6259] = {.lex_state = 0, .external_lex_state = 2},
  [6260] = {.lex_state = 172, .external_lex_state = 2},
  [6261] = {.lex_state = 9, .external_lex_state = 2},
  [6262] = {.lex_state = 0, .external_lex_state = 2},
  [6263] = {.lex_state = 0, .external_lex_state = 2},
  [6264] = {.lex_state = 0, .external_lex_state = 2},
  [6265] = {.lex_state = 0, .external_lex_state = 2},
  [6266] = {.lex_state = 0, .external_lex_state = 2},
  [6267] = {.lex_state = 0, .external_lex_state = 2},
  [6268] = {.lex_state = 0, .external_lex_state = 2},
  [6269] = {.lex_state = 0, .external_lex_state = 2},
  [6270] = {.lex_state = 0, .external_lex_state = 2},
  [6271] = {.lex_state = 0, .external_lex_state = 2},
  [6272] = {.lex_state = 0, .external_lex_state = 2},
  [6273] = {.lex_state = 0, .external_lex_state = 2},
  [6274] = {.lex_state = 0, .external_lex_state = 2},
  [6275] = {.lex_state = 0, .external_lex_state = 2},
  [6276] = {.lex_state = 0, .external_lex_state = 2},
  [6277] = {.lex_state = 9, .external_lex_state = 2},
  [6278] = {.lex_state = 0, .external_lex_state = 2},
  [6279] = {.lex_state = 0, .external_lex_state = 2},
  [6280] = {.lex_state = 9, .external_lex_state = 2},
  [6281] = {.lex_state = 0, .external_lex_state = 2},
  [6282] = {.lex_state = 0, .external_lex_state = 2},
  [6283] = {.lex_state = 0, .external_lex_state = 2},
  [6284] = {.lex_state = 172, .external_lex_state = 2},
  [6285] = {.lex_state = 0, .external_lex_state = 2},
  [6286] = {.lex_state = 0, .external_lex_state = 2},
  [6287] = {.lex_state = 172, .external_lex_state = 2},
  [6288] = {.lex_state = 0, .external_lex_state = 2},
  [6289] = {.lex_state = 0, .external_lex_state = 2},
  [6290] = {.lex_state = 0, .external_lex_state = 2},
  [6291] = {.lex_state = 0, .external_lex_state = 2},
  [6292] = {.lex_state = 0, .external_lex_state = 2},
  [6293] = {.lex_state = 9, .external_lex_state = 2},
  [6294] = {.lex_state = 9, .external_lex_state = 2},
  [6295] = {.lex_state = 0, .external_lex_state = 2},
  [6296] = {.lex_state = 0, .external_lex_state = 2},
  [6297] = {.lex_state = 0, .external_lex_state = 2},
  [6298] = {.lex_state = 9, .external_lex_state = 2},
  [6299] = {.lex_state = 0, .external_lex_state = 2},
  [6300] = {.lex_state = 0, .external_lex_state = 2},
  [6301] = {.lex_state = 172, .external_lex_state = 2},
  [6302] = {.lex_state = 0, .external_lex_state = 2},
  [6303] = {.lex_state = 9, .external_lex_state = 2},
  [6304] = {.lex_state = 0, .external_lex_state = 2},
  [6305] = {.lex_state = 0, .external_lex_state = 2},
  [6306] = {.lex_state = 172, .external_lex_state = 2},
  [6307] = {.lex_state = 172, .external_lex_state = 2},
  [6308] = {.lex_state = 9, .external_lex_state = 2},
  [6309] = {.lex_state = 0, .external_lex_state = 2},
  [6310] = {.lex_state = 9, .external_lex_state = 2},
  [6311] = {.lex_state = 0, .external_lex_state = 2},
  [6312] = {.lex_state = 172, .external_lex_state = 2},
  [6313] = {.lex_state = 0, .external_lex_state = 2},
  [6314] = {.lex_state = 0, .external_lex_state = 2},
  [6315] = {.lex_state = 0, .external_lex_state = 2},
  [6316] = {.lex_state = 0, .external_lex_state = 2},
  [6317] = {.lex_state = 0, .external_lex_state = 2},
  [6318] = {.lex_state = 0, .external_lex_state = 2},
  [6319] = {.lex_state = 9, .external_lex_state = 2},
  [6320] = {.lex_state = 0, .external_lex_state = 2},
  [6321] = {.lex_state = 9, .external_lex_state = 2},
  [6322] = {.lex_state = 0, .external_lex_state = 2},
  [6323] = {.lex_state = 9, .external_lex_state = 2},
  [6324] = {.lex_state = 9, .external_lex_state = 2},
  [6325] = {.lex_state = 9, .external_lex_state = 2},
  [6326] = {.lex_state = 0, .external_lex_state = 2},
  [6327] = {.lex_state = 172, .external_lex_state = 2},
  [6328] = {.lex_state = 0, .external_lex_state = 2},
  [6329] = {.lex_state = 0, .external_lex_state = 2},
  [6330] = {.lex_state = 0, .external_lex_state = 2},
  [6331] = {.lex_state = 9, .external_lex_state = 2},
  [6332] = {.lex_state = 0, .external_lex_state = 2},
  [6333] = {.lex_state = 0, .external_lex_state = 2},
  [6334] = {.lex_state = 9, .external_lex_state = 2},
  [6335] = {.lex_state = 9, .external_lex_state = 2},
  [6336] = {.lex_state = 9, .external_lex_state = 2},
  [6337] = {.lex_state = 0, .external_lex_state = 2},
  [6338] = {.lex_state = 0, .external_lex_state = 2},
  [6339] = {.lex_state = 0, .external_lex_state = 2},
  [6340] = {.lex_state = 0, .external_lex_state = 2},
  [6341] = {.lex_state = 0, .external_lex_state = 2},
  [6342] = {.lex_state = 9, .external_lex_state = 2},
  [6343] = {.lex_state = 9, .external_lex_state = 2},
  [6344] = {.lex_state = 0, .external_lex_state = 2},
  [6345] = {.lex_state = 0, .external_lex_state = 2},
  [6346] = {.lex_state = 0, .external_lex_state = 2},
  [6347] = {.lex_state = 0, .external_lex_state = 2},
  [6348] = {.lex_state = 172, .external_lex_state = 2},
  [6349] = {.lex_state = 0, .external_lex_state = 2},
  [6350] = {.lex_state = 0, .external_lex_state = 2},
  [6351] = {.lex_state = 0, .external_lex_state = 2},
  [6352] = {.lex_state = 0, .external_lex_state = 2},
  [6353] = {.lex_state = 0, .external_lex_state = 2},
  [6354] = {.lex_state = 0, .external_lex_state = 2},
  [6355] = {.lex_state = 0, .external_lex_state = 2},
  [6356] = {.lex_state = 0, .external_lex_state = 2},
  [6357] = {.lex_state = 0, .external_lex_state = 2},
  [6358] = {.lex_state = 9, .external_lex_state = 2},
  [6359] = {.lex_state = 9, .external_lex_state = 2},
  [6360] = {.lex_state = 0, .external_lex_state = 2},
  [6361] = {.lex_state = 0, .external_lex_state = 2},
  [6362] = {.lex_state = 0, .external_lex_state = 2},
  [6363] = {.lex_state = 0, .external_lex_state = 2},
  [6364] = {.lex_state = 172, .external_lex_state = 2},
  [6365] = {.lex_state = 0, .external_lex_state = 2},
  [6366] = {.lex_state = 9, .external_lex_state = 2},
  [6367] = {.lex_state = 0, .external_lex_state = 2},
  [6368] = {.lex_state = 0, .external_lex_state = 2},
  [6369] = {.lex_state = 172, .external_lex_state = 2},
  [6370] = {.lex_state = 0, .external_lex_state = 2},
  [6371] = {.lex_state = 9, .external_lex_state = 2},
  [6372] = {.lex_state = 0, .external_lex_state = 2},
  [6373] = {.lex_state = 0, .external_lex_state = 2},
  [6374] = {.lex_state = 0, .external_lex_state = 2},
  [6375] = {.lex_state = 9, .external_lex_state = 2},
  [6376] = {.lex_state = 0, .external_lex_state = 2},
  [6377] = {.lex_state = 0, .external_lex_state = 2},
  [6378] = {.lex_state = 0, .external_lex_state = 2},
  [6379] = {.lex_state = 172, .external_lex_state = 2},
  [6380] = {.lex_state = 9, .external_lex_state = 2},
  [6381] = {.lex_state = 0, .external_lex_state = 2},
  [6382] = {.lex_state = 9, .external_lex_state = 2},
  [6383] = {.lex_state = 0, .external_lex_state = 2},
  [6384] = {.lex_state = 9, .external_lex_state = 2},
  [6385] = {.lex_state = 0, .external_lex_state = 2},
  [6386] = {.lex_state = 0, .external_lex_state = 2},
  [6387] = {.lex_state = 0, .external_lex_state = 2},
  [6388] = {.lex_state = 0, .external_lex_state = 2},
  [6389] = {.lex_state = 0, .external_lex_state = 2},
  [6390] = {.lex_state = 172, .external_lex_state = 2},
  [6391] = {.lex_state = 0, .external_lex_state = 2},
  [6392] = {.lex_state = 0, .external_lex_state = 2},
  [6393] = {.lex_state = 0, .external_lex_state = 2},
  [6394] = {.lex_state = 0, .external_lex_state = 2},
  [6395] = {.lex_state = 9, .external_lex_state = 2},
  [6396] = {.lex_state = 9, .external_lex_state = 2},
  [6397] = {.lex_state = 0, .external_lex_state = 2},
  [6398] = {.lex_state = 9, .external_lex_state = 2},
  [6399] = {.lex_state = 0, .external_lex_state = 2},
  [6400] = {.lex_state = 0, .external_lex_state = 2},
  [6401] = {.lex_state = 0, .external_lex_state = 2},
  [6402] = {.lex_state = 9, .external_lex_state = 2},
  [6403] = {.lex_state = 9, .external_lex_state = 2},
  [6404] = {.lex_state = 0, .external_lex_state = 2},
  [6405] = {.lex_state = 9, .external_lex_state = 2},
  [6406] = {.lex_state = 9, .external_lex_state = 2},
  [6407] = {.lex_state = 0, .external_lex_state = 2},
  [6408] = {.lex_state = 9, .external_lex_state = 2},
  [6409] = {.lex_state = 0, .external_lex_state = 2},
  [6410] = {.lex_state = 172, .external_lex_state = 2},
  [6411] = {.lex_state = 0, .external_lex_state = 2},
  [6412] = {.lex_state = 0, .external_lex_state = 2},
  [6413] = {.lex_state = 9, .external_lex_state = 2},
  [6414] = {.lex_state = 17, .external_lex_state = 2},
  [6415] = {.lex_state = 9, .external_lex_state = 2},
  [6416] = {.lex_state = 9, .external_lex_state = 2},
  [6417] = {.lex_state = 17, .external_lex_state = 2},
  [6418] = {.lex_state = 9, .external_lex_state = 2},
  [6419] = {.lex_state = 0, .external_lex_state = 2},
  [6420] = {.lex_state = 0, .external_lex_state = 2},
  [6421] = {.lex_state = 9, .external_lex_state = 2},
  [6422] = {.lex_state = 0, .external_lex_state = 2},
  [6423] = {.lex_state = 0, .external_lex_state = 2},
  [6424] = {.lex_state = 9, .external_lex_state = 2},
  [6425] = {.lex_state = 9, .external_lex_state = 2},
  [6426] = {.lex_state = 0, .external_lex_state = 2},
  [6427] = {.lex_state = 9, .external_lex_state = 2},
  [6428] = {.lex_state = 17, .external_lex_state = 2},
  [6429] = {.lex_state = 0, .external_lex_state = 2},
  [6430] = {.lex_state = 0, .external_lex_state = 2},
  [6431] = {.lex_state = 17, .external_lex_state = 2},
  [6432] = {.lex_state = 9, .external_lex_state = 6},
  [6433] = {.lex_state = 9, .external_lex_state = 2},
  [6434] = {.lex_state = 0, .external_lex_state = 2},
  [6435] = {.lex_state = 0, .external_lex_state = 2},
  [6436] = {.lex_state = 0, .external_lex_state = 2},
  [6437] = {.lex_state = 0, .external_lex_state = 2},
  [6438] = {.lex_state = 17, .external_lex_state = 2},
  [6439] = {.lex_state = 9, .external_lex_state = 2},
  [6440] = {.lex_state = 0, .external_lex_state = 2},
  [6441] = {.lex_state = 0, .external_lex_state = 2},
  [6442] = {.lex_state = 0, .external_lex_state = 2},
  [6443] = {.lex_state = 0, .external_lex_state = 2},
  [6444] = {.lex_state = 17, .external_lex_state = 2},
  [6445] = {.lex_state = 9, .external_lex_state = 2},
  [6446] = {.lex_state = 9, .external_lex_state = 2},
  [6447] = {.lex_state = 9, .external_lex_state = 2},
  [6448] = {.lex_state = 9, .external_lex_state = 2},
  [6449] = {.lex_state = 9, .external_lex_state = 2},
  [6450] = {.lex_state = 0, .external_lex_state = 2},
  [6451] = {.lex_state = 9, .external_lex_state = 2},
  [6452] = {.lex_state = 0, .external_lex_state = 2},
  [6453] = {.lex_state = 9, .external_lex_state = 6},
  [6454] = {.lex_state = 0, .external_lex_state = 2},
  [6455] = {.lex_state = 9, .external_lex_state = 2},
  [6456] = {.lex_state = 9, .external_lex_state = 6},
  [6457] = {.lex_state = 0, .external_lex_state = 2},
  [6458] = {.lex_state = 0, .external_lex_state = 2},
  [6459] = {.lex_state = 0, .external_lex_state = 2},
  [6460] = {.lex_state = 0, .external_lex_state = 2},
  [6461] = {.lex_state = 0, .external_lex_state = 2},
  [6462] = {.lex_state = 17, .external_lex_state = 2},
  [6463] = {.lex_state = 0, .external_lex_state = 2},
  [6464] = {.lex_state = 9, .external_lex_state = 2},
  [6465] = {.lex_state = 17, .external_lex_state = 2},
  [6466] = {.lex_state = 0, .external_lex_state = 2},
  [6467] = {.lex_state = 0, .external_lex_state = 2},
  [6468] = {.lex_state = 17, .external_lex_state = 2},
  [6469] = {.lex_state = 0, .external_lex_state = 2},
  [6470] = {.lex_state = 0, .external_lex_state = 2},
  [6471] = {.lex_state = 17, .external_lex_state = 2},
  [6472] = {.lex_state = 0, .external_lex_state = 2},
  [6473] = {.lex_state = 0, .external_lex_state = 2},
  [6474] = {.lex_state = 0, .external_lex_state = 2},
  [6475] = {.lex_state = 0, .external_lex_state = 2},
  [6476] = {.lex_state = 0, .external_lex_state = 2},
  [6477] = {.lex_state = 0, .external_lex_state = 2},
  [6478] = {.lex_state = 0, .external_lex_state = 2},
  [6479] = {.lex_state = 0, .external_lex_state = 2},
  [6480] = {.lex_state = 9, .external_lex_state = 2},
  [6481] = {.lex_state = 9, .external_lex_state = 2},
  [6482] = {.lex_state = 0, .external_lex_state = 2},
  [6483] = {.lex_state = 0, .external_lex_state = 2},
  [6484] = {.lex_state = 9, .external_lex_state = 2},
  [6485] = {.lex_state = 0, .external_lex_state = 2},
  [6486] = {.lex_state = 0, .external_lex_state = 2},
  [6487] = {.lex_state = 0, .external_lex_state = 2},
  [6488] = {.lex_state = 9, .external_lex_state = 2},
  [6489] = {.lex_state = 17, .external_lex_state = 2},
  [6490] = {.lex_state = 0, .external_lex_state = 2},
  [6491] = {.lex_state = 9, .external_lex_state = 2},
  [6492] = {.lex_state = 0, .external_lex_state = 2},
  [6493] = {.lex_state = 0, .external_lex_state = 2},
  [6494] = {.lex_state = 0, .external_lex_state = 2},
  [6495] = {.lex_state = 172, .external_lex_state = 2},
  [6496] = {.lex_state = 0, .external_lex_state = 2},
  [6497] = {.lex_state = 9, .external_lex_state = 2},
  [6498] = {.lex_state = 17, .external_lex_state = 2},
  [6499] = {.lex_state = 17, .external_lex_state = 2},
  [6500] = {.lex_state = 0, .external_lex_state = 2},
  [6501] = {.lex_state = 0, .external_lex_state = 2},
  [6502] = {.lex_state = 9, .external_lex_state = 2},
  [6503] = {.lex_state = 0, .external_lex_state = 2},
  [6504] = {.lex_state = 9, .external_lex_state = 2},
  [6505] = {.lex_state = 9, .external_lex_state = 2},
  [6506] = {.lex_state = 0, .external_lex_state = 2},
  [6507] = {.lex_state = 0, .external_lex_state = 2},
  [6508] = {.lex_state = 17, .external_lex_state = 2},
  [6509] = {.lex_state = 9, .external_lex_state = 2},
  [6510] = {.lex_state = 0, .external_lex_state = 2},
  [6511] = {.lex_state = 17, .external_lex_state = 2},
  [6512] = {.lex_state = 9, .external_lex_state = 2},
  [6513] = {.lex_state = 0, .external_lex_state = 2},
  [6514] = {.lex_state = 0, .external_lex_state = 2},
  [6515] = {.lex_state = 9, .external_lex_state = 2},
  [6516] = {.lex_state = 0, .external_lex_state = 2},
  [6517] = {.lex_state = 9, .external_lex_state = 2},
  [6518] = {.lex_state = 0, .external_lex_state = 2},
  [6519] = {.lex_state = 0, .external_lex_state = 2},
  [6520] = {.lex_state = 0, .external_lex_state = 2},
  [6521] = {.lex_state = 9, .external_lex_state = 2},
  [6522] = {.lex_state = 0, .external_lex_state = 2},
  [6523] = {.lex_state = 0, .external_lex_state = 2},
  [6524] = {.lex_state = 9, .external_lex_state = 2},
  [6525] = {.lex_state = 0, .external_lex_state = 2},
  [6526] = {.lex_state = 0, .external_lex_state = 2},
  [6527] = {.lex_state = 0, .external_lex_state = 2},
  [6528] = {.lex_state = 17, .external_lex_state = 2},
  [6529] = {.lex_state = 9, .external_lex_state = 2},
  [6530] = {.lex_state = 17, .external_lex_state = 2},
  [6531] = {.lex_state = 17, .external_lex_state = 2},
  [6532] = {.lex_state = 0, .external_lex_state = 2},
  [6533] = {.lex_state = 0, .external_lex_state = 2},
  [6534] = {.lex_state = 0, .external_lex_state = 2},
  [6535] = {.lex_state = 0, .external_lex_state = 2},
  [6536] = {.lex_state = 0, .external_lex_state = 2},
  [6537] = {.lex_state = 0, .external_lex_state = 2},
  [6538] = {.lex_state = 0, .external_lex_state = 2},
  [6539] = {.lex_state = 0, .external_lex_state = 2},
  [6540] = {.lex_state = 0, .external_lex_state = 2},
  [6541] = {.lex_state = 0, .external_lex_state = 2},
  [6542] = {.lex_state = 0, .external_lex_state = 2},
  [6543] = {.lex_state = 0, .external_lex_state = 2},
  [6544] = {.lex_state = 9, .external_lex_state = 2},
  [6545] = {.lex_state = 9, .external_lex_state = 2},
  [6546] = {.lex_state = 0, .external_lex_state = 2},
  [6547] = {.lex_state = 0, .external_lex_state = 2},
  [6548] = {.lex_state = 0, .external_lex_state = 2},
  [6549] = {.lex_state = 0, .external_lex_state = 2},
  [6550] = {.lex_state = 0, .external_lex_state = 2},
  [6551] = {.lex_state = 0, .external_lex_state = 2},
  [6552] = {.lex_state = 0, .external_lex_state = 2},
  [6553] = {.lex_state = 0, .external_lex_state = 2},
  [6554] = {.lex_state = 0, .external_lex_state = 2},
  [6555] = {.lex_state = 0, .external_lex_state = 2},
  [6556] = {.lex_state = 17, .external_lex_state = 2},
  [6557] = {.lex_state = 17, .external_lex_state = 2},
  [6558] = {.lex_state = 0, .external_lex_state = 2},
  [6559] = {.lex_state = 9, .external_lex_state = 2},
  [6560] = {.lex_state = 0, .external_lex_state = 2},
  [6561] = {.lex_state = 0, .external_lex_state = 2},
  [6562] = {.lex_state = 9, .external_lex_state = 2},
  [6563] = {.lex_state = 9, .external_lex_state = 2},
  [6564] = {.lex_state = 0, .external_lex_state = 2},
  [6565] = {.lex_state = 0, .external_lex_state = 2},
  [6566] = {.lex_state = 172, .external_lex_state = 2},
  [6567] = {.lex_state = 0, .external_lex_state = 2},
  [6568] = {.lex_state = 0, .external_lex_state = 2},
  [6569] = {.lex_state = 9, .external_lex_state = 2},
  [6570] = {.lex_state = 17, .external_lex_state = 2},
  [6571] = {.lex_state = 172, .external_lex_state = 2},
  [6572] = {.lex_state = 0, .external_lex_state = 2},
  [6573] = {.lex_state = 17, .external_lex_state = 2},
  [6574] = {.lex_state = 9, .external_lex_state = 2},
  [6575] = {.lex_state = 0, .external_lex_state = 2},
  [6576] = {.lex_state = 17, .external_lex_state = 2},
  [6577] = {.lex_state = 9, .external_lex_state = 2},
  [6578] = {.lex_state = 17, .external_lex_state = 2},
  [6579] = {.lex_state = 0, .external_lex_state = 2},
  [6580] = {.lex_state = 9, .external_lex_state = 2},
  [6581] = {.lex_state = 0, .external_lex_state = 2},
  [6582] = {.lex_state = 0, .external_lex_state = 2},
  [6583] = {.lex_state = 0, .external_lex_state = 2},
  [6584] = {.lex_state = 0, .external_lex_state = 2},
  [6585] = {.lex_state = 0, .external_lex_state = 2},
  [6586] = {.lex_state = 0, .external_lex_state = 2},
  [6587] = {.lex_state = 0, .external_lex_state = 2},
  [6588] = {.lex_state = 0, .external_lex_state = 2},
  [6589] = {.lex_state = 0, .external_lex_state = 2},
  [6590] = {.lex_state = 9, .external_lex_state = 2},
  [6591] = {.lex_state = 0, .external_lex_state = 2},
  [6592] = {.lex_state = 9, .external_lex_state = 2},
  [6593] = {.lex_state = 9, .external_lex_state = 6},
  [6594] = {.lex_state = 9, .external_lex_state = 6},
  [6595] = {.lex_state = 9, .external_lex_state = 2},
  [6596] = {.lex_state = 0, .external_lex_state = 2},
  [6597] = {.lex_state = 9, .external_lex_state = 2},
  [6598] = {.lex_state = 0, .external_lex_state = 2},
  [6599] = {.lex_state = 9, .external_lex_state = 2},
  [6600] = {.lex_state = 9, .external_lex_state = 2},
  [6601] = {.lex_state = 0, .external_lex_state = 2},
  [6602] = {.lex_state = 0, .external_lex_state = 2},
  [6603] = {.lex_state = 0, .external_lex_state = 2},
  [6604] = {.lex_state = 0, .external_lex_state = 2},
  [6605] = {.lex_state = 0, .external_lex_state = 2},
  [6606] = {.lex_state = 0, .external_lex_state = 2},
  [6607] = {.lex_state = 0, .external_lex_state = 2},
  [6608] = {.lex_state = 0, .external_lex_state = 2},
  [6609] = {.lex_state = 9, .external_lex_state = 6},
  [6610] = {.lex_state = 0, .external_lex_state = 2},
  [6611] = {.lex_state = 0, .external_lex_state = 2},
  [6612] = {.lex_state = 17, .external_lex_state = 2},
  [6613] = {.lex_state = 0, .external_lex_state = 2},
  [6614] = {.lex_state = 0, .external_lex_state = 2},
  [6615] = {.lex_state = 0, .external_lex_state = 2},
  [6616] = {.lex_state = 9, .external_lex_state = 2},
  [6617] = {.lex_state = 9, .external_lex_state = 2},
  [6618] = {.lex_state = 0, .external_lex_state = 2},
  [6619] = {.lex_state = 9, .external_lex_state = 2},
  [6620] = {.lex_state = 17, .external_lex_state = 2},
  [6621] = {.lex_state = 172, .external_lex_state = 2},
  [6622] = {.lex_state = 9, .external_lex_state = 2},
  [6623] = {.lex_state = 0, .external_lex_state = 2},
  [6624] = {.lex_state = 9, .external_lex_state = 2},
  [6625] = {.lex_state = 9, .external_lex_state = 2},
  [6626] = {.lex_state = 0, .external_lex_state = 2},
  [6627] = {.lex_state = 0, .external_lex_state = 2},
  [6628] = {.lex_state = 9, .external_lex_state = 2},
  [6629] = {.lex_state = 0, .external_lex_state = 2},
  [6630] = {.lex_state = 0, .external_lex_state = 2},
  [6631] = {.lex_state = 9, .external_lex_state = 2},
  [6632] = {.lex_state = 17, .external_lex_state = 2},
  [6633] = {.lex_state = 0, .external_lex_state = 2},
  [6634] = {.lex_state = 0, .external_lex_state = 2},
  [6635] = {.lex_state = 0, .external_lex_state = 2},
  [6636] = {.lex_state = 9, .external_lex_state = 2},
  [6637] = {.lex_state = 0, .external_lex_state = 2},
  [6638] = {.lex_state = 0, .external_lex_state = 2},
  [6639] = {.lex_state = 0, .external_lex_state = 2},
  [6640] = {.lex_state = 0, .external_lex_state = 2},
  [6641] = {.lex_state = 0, .external_lex_state = 2},
  [6642] = {.lex_state = 0, .external_lex_state = 2},
  [6643] = {.lex_state = 0, .external_lex_state = 2},
  [6644] = {.lex_state = 9, .external_lex_state = 2},
  [6645] = {.lex_state = 0, .external_lex_state = 2},
  [6646] = {.lex_state = 172, .external_lex_state = 2},
  [6647] = {.lex_state = 0, .external_lex_state = 2},
  [6648] = {.lex_state = 0, .external_lex_state = 2},
  [6649] = {.lex_state = 9, .external_lex_state = 2},
  [6650] = {.lex_state = 0, .external_lex_state = 2},
  [6651] = {.lex_state = 0, .external_lex_state = 2},
  [6652] = {.lex_state = 0, .external_lex_state = 2},
  [6653] = {.lex_state = 9, .external_lex_state = 2},
  [6654] = {.lex_state = 9, .external_lex_state = 2},
  [6655] = {.lex_state = 0, .external_lex_state = 2},
  [6656] = {.lex_state = 9, .external_lex_state = 2},
  [6657] = {.lex_state = 9, .external_lex_state = 2},
  [6658] = {.lex_state = 9, .external_lex_state = 2},
  [6659] = {.lex_state = 9, .external_lex_state = 2},
  [6660] = {.lex_state = 0, .external_lex_state = 2},
  [6661] = {.lex_state = 0, .external_lex_state = 2},
  [6662] = {.lex_state = 9, .external_lex_state = 2},
  [6663] = {.lex_state = 0, .external_lex_state = 2},
  [6664] = {.lex_state = 0, .external_lex_state = 2},
  [6665] = {.lex_state = 9, .external_lex_state = 2},
  [6666] = {.lex_state = 9, .external_lex_state = 2},
  [6667] = {.lex_state = 0, .external_lex_state = 2},
  [6668] = {.lex_state = 0, .external_lex_state = 2},
  [6669] = {.lex_state = 0, .external_lex_state = 2},
  [6670] = {.lex_state = 0, .external_lex_state = 2},
  [6671] = {.lex_state = 17, .external_lex_state = 2},
  [6672] = {.lex_state = 0, .external_lex_state = 2},
  [6673] = {.lex_state = 0, .external_lex_state = 2},
  [6674] = {.lex_state = 172, .external_lex_state = 2},
  [6675] = {.lex_state = 0, .external_lex_state = 2},
  [6676] = {.lex_state = 0, .external_lex_state = 2},
  [6677] = {.lex_state = 0, .external_lex_state = 2},
  [6678] = {.lex_state = 0, .external_lex_state = 2},
  [6679] = {.lex_state = 9, .external_lex_state = 2},
  [6680] = {.lex_state = 0, .external_lex_state = 2},
  [6681] = {.lex_state = 0, .external_lex_state = 2},
  [6682] = {.lex_state = 0, .external_lex_state = 2},
  [6683] = {.lex_state = 9, .external_lex_state = 2},
  [6684] = {.lex_state = 9, .external_lex_state = 2},
  [6685] = {.lex_state = 0, .external_lex_state = 2},
  [6686] = {.lex_state = 9, .external_lex_state = 2},
  [6687] = {.lex_state = 0, .external_lex_state = 2},
  [6688] = {.lex_state = 0, .external_lex_state = 2},
  [6689] = {.lex_state = 17, .external_lex_state = 2},
  [6690] = {.lex_state = 0, .external_lex_state = 2},
  [6691] = {.lex_state = 0, .external_lex_state = 2},
  [6692] = {.lex_state = 172, .external_lex_state = 2},
  [6693] = {.lex_state = 9, .external_lex_state = 2},
  [6694] = {.lex_state = 0, .external_lex_state = 2},
  [6695] = {.lex_state = 9, .external_lex_state = 6},
  [6696] = {.lex_state = 9, .external_lex_state = 2},
  [6697] = {.lex_state = 9, .external_lex_state = 2},
  [6698] = {.lex_state = 9, .external_lex_state = 2},
  [6699] = {.lex_state = 0, .external_lex_state = 2},
  [6700] = {.lex_state = 9, .external_lex_state = 6},
  [6701] = {.lex_state = 9, .external_lex_state = 6},
  [6702] = {.lex_state = 0, .external_lex_state = 2},
  [6703] = {.lex_state = 9, .external_lex_state = 2},
  [6704] = {.lex_state = 0, .external_lex_state = 2},
  [6705] = {.lex_state = 0, .external_lex_state = 2},
  [6706] = {.lex_state = 9, .external_lex_state = 2},
  [6707] = {.lex_state = 0, .external_lex_state = 2},
  [6708] = {.lex_state = 9, .external_lex_state = 2},
  [6709] = {.lex_state = 0, .external_lex_state = 2},
  [6710] = {.lex_state = 9, .external_lex_state = 6},
  [6711] = {.lex_state = 0, .external_lex_state = 2},
  [6712] = {.lex_state = 9, .external_lex_state = 2},
  [6713] = {.lex_state = 0, .external_lex_state = 2},
  [6714] = {.lex_state = 9, .external_lex_state = 2},
  [6715] = {.lex_state = 0, .external_lex_state = 2},
  [6716] = {.lex_state = 0, .external_lex_state = 2},
  [6717] = {.lex_state = 0, .external_lex_state = 2},
  [6718] = {.lex_state = 17, .external_lex_state = 2},
  [6719] = {.lex_state = 0, .external_lex_state = 2},
  [6720] = {.lex_state = 17, .external_lex_state = 2},
  [6721] = {.lex_state = 0, .external_lex_state = 2},
  [6722] = {.lex_state = 9, .external_lex_state = 2},
  [6723] = {.lex_state = 172, .external_lex_state = 2},
  [6724] = {.lex_state = 17, .external_lex_state = 2},
  [6725] = {.lex_state = 9, .external_lex_state = 2},
  [6726] = {.lex_state = 9, .external_lex_state = 2},
  [6727] = {.lex_state = 0, .external_lex_state = 2},
  [6728] = {.lex_state = 0, .external_lex_state = 2},
  [6729] = {.lex_state = 0, .external_lex_state = 2},
  [6730] = {.lex_state = 0, .external_lex_state = 2},
  [6731] = {.lex_state = 0, .external_lex_state = 2},
  [6732] = {.lex_state = 17, .external_lex_state = 2},
  [6733] = {.lex_state = 172, .external_lex_state = 2},
  [6734] = {.lex_state = 0, .external_lex_state = 2},
  [6735] = {.lex_state = 9, .external_lex_state = 2},
  [6736] = {.lex_state = 0, .external_lex_state = 2},
  [6737] = {.lex_state = 0, .external_lex_state = 2},
  [6738] = {.lex_state = 0, .external_lex_state = 2},
  [6739] = {.lex_state = 0, .external_lex_state = 2},
  [6740] = {.lex_state = 9, .external_lex_state = 2},
  [6741] = {.lex_state = 0, .external_lex_state = 2},
  [6742] = {.lex_state = 9, .external_lex_state = 2},
  [6743] = {.lex_state = 0, .external_lex_state = 2},
  [6744] = {.lex_state = 0, .external_lex_state = 2},
  [6745] = {.lex_state = 9, .external_lex_state = 2},
  [6746] = {.lex_state = 0, .external_lex_state = 2},
  [6747] = {.lex_state = 9, .external_lex_state = 2},
  [6748] = {.lex_state = 0, .external_lex_state = 2},
  [6749] = {.lex_state = 0, .external_lex_state = 2},
  [6750] = {.lex_state = 0, .external_lex_state = 2},
  [6751] = {.lex_state = 0, .external_lex_state = 2},
  [6752] = {.lex_state = 9, .external_lex_state = 2},
  [6753] = {.lex_state = 9, .external_lex_state = 2},
  [6754] = {.lex_state = 17, .external_lex_state = 2},
  [6755] = {.lex_state = 0, .external_lex_state = 2},
  [6756] = {.lex_state = 0, .external_lex_state = 2},
  [6757] = {.lex_state = 172, .external_lex_state = 2},
  [6758] = {.lex_state = 9, .external_lex_state = 2},
  [6759] = {.lex_state = 0, .external_lex_state = 2},
  [6760] = {.lex_state = 0, .external_lex_state = 2},
  [6761] = {.lex_state = 9, .external_lex_state = 2},
  [6762] = {.lex_state = 9, .external_lex_state = 2},
  [6763] = {.lex_state = 9, .external_lex_state = 2},
  [6764] = {.lex_state = 0, .external_lex_state = 2},
  [6765] = {.lex_state = 0, .external_lex_state = 2},
  [6766] = {.lex_state = 0, .external_lex_state = 2},
  [6767] = {.lex_state = 17, .external_lex_state = 2},
  [6768] = {.lex_state = 0, .external_lex_state = 2},
  [6769] = {.lex_state = 0, .external_lex_state = 2},
  [6770] = {.lex_state = 0, .external_lex_state = 2},
  [6771] = {.lex_state = 0, .external_lex_state = 2},
  [6772] = {.lex_state = 0, .external_lex_state = 2},
  [6773] = {.lex_state = 9, .external_lex_state = 2},
  [6774] = {.lex_state = 9, .external_lex_state = 2},
  [6775] = {.lex_state = 9, .external_lex_state = 2},
  [6776] = {.lex_state = 0, .external_lex_state = 2},
  [6777] = {.lex_state = 0, .external_lex_state = 2},
  [6778] = {.lex_state = 0, .external_lex_state = 2},
  [6779] = {.lex_state = 0, .external_lex_state = 2},
  [6780] = {.lex_state = 0, .external_lex_state = 2},
  [6781] = {.lex_state = 9, .external_lex_state = 2},
  [6782] = {.lex_state = 17, .external_lex_state = 2},
  [6783] = {.lex_state = 0, .external_lex_state = 2},
  [6784] = {.lex_state = 9, .external_lex_state = 2},
  [6785] = {.lex_state = 0, .external_lex_state = 2},
  [6786] = {.lex_state = 0, .external_lex_state = 2},
  [6787] = {.lex_state = 0, .external_lex_state = 2},
  [6788] = {.lex_state = 0, .external_lex_state = 2},
  [6789] = {.lex_state = 0, .external_lex_state = 2},
  [6790] = {.lex_state = 0, .external_lex_state = 2},
  [6791] = {.lex_state = 0, .external_lex_state = 2},
  [6792] = {.lex_state = 0, .external_lex_state = 2},
  [6793] = {.lex_state = 0, .external_lex_state = 2},
  [6794] = {.lex_state = 9, .external_lex_state = 2},
  [6795] = {.lex_state = 0, .external_lex_state = 2},
  [6796] = {.lex_state = 9, .external_lex_state = 2},
  [6797] = {.lex_state = 0, .external_lex_state = 2},
  [6798] = {.lex_state = 0, .external_lex_state = 2},
  [6799] = {.lex_state = 9, .external_lex_state = 2},
  [6800] = {.lex_state = 9, .external_lex_state = 2},
  [6801] = {.lex_state = 9, .external_lex_state = 2},
  [6802] = {.lex_state = 9, .external_lex_state = 2},
  [6803] = {.lex_state = 0, .external_lex_state = 2},
  [6804] = {.lex_state = 0, .external_lex_state = 2},
  [6805] = {.lex_state = 9, .external_lex_state = 2},
  [6806] = {.lex_state = 0, .external_lex_state = 2},
  [6807] = {.lex_state = 0, .external_lex_state = 2},
  [6808] = {.lex_state = 0, .external_lex_state = 2},
  [6809] = {.lex_state = 0, .external_lex_state = 2},
  [6810] = {.lex_state = 9, .external_lex_state = 2},
  [6811] = {.lex_state = 0, .external_lex_state = 2},
  [6812] = {.lex_state = 0, .external_lex_state = 2},
  [6813] = {.lex_state = 0, .external_lex_state = 2},
  [6814] = {.lex_state = 9, .external_lex_state = 2},
  [6815] = {.lex_state = 0, .external_lex_state = 2},
  [6816] = {.lex_state = 0, .external_lex_state = 2},
  [6817] = {.lex_state = 9, .external_lex_state = 2},
  [6818] = {.lex_state = 0, .external_lex_state = 2},
  [6819] = {.lex_state = 9, .external_lex_state = 2},
  [6820] = {.lex_state = 0, .external_lex_state = 2},
  [6821] = {.lex_state = 0, .external_lex_state = 2},
  [6822] = {.lex_state = 0, .external_lex_state = 2},
  [6823] = {.lex_state = 9, .external_lex_state = 2},
  [6824] = {.lex_state = 0, .external_lex_state = 2},
  [6825] = {.lex_state = 0, .external_lex_state = 2},
  [6826] = {.lex_state = 0, .external_lex_state = 2},
  [6827] = {.lex_state = 0, .external_lex_state = 2},
  [6828] = {.lex_state = 0, .external_lex_state = 2},
  [6829] = {.lex_state = 0, .external_lex_state = 2},
  [6830] = {.lex_state = 0, .external_lex_state = 2},
  [6831] = {.lex_state = 0, .external_lex_state = 2},
  [6832] = {.lex_state = 0, .external_lex_state = 2},
  [6833] = {.lex_state = 0, .external_lex_state = 2},
  [6834] = {.lex_state = 17, .external_lex_state = 2},
  [6835] = {.lex_state = 9, .external_lex_state = 2},
  [6836] = {.lex_state = 0, .external_lex_state = 2},
  [6837] = {.lex_state = 0, .external_lex_state = 2},
  [6838] = {.lex_state = 0, .external_lex_state = 2},
  [6839] = {.lex_state = 9, .external_lex_state = 2},
  [6840] = {.lex_state = 17, .external_lex_state = 2},
  [6841] = {.lex_state = 0, .external_lex_state = 2},
  [6842] = {.lex_state = 0, .external_lex_state = 2},
  [6843] = {.lex_state = 0, .external_lex_state = 2},
  [6844] = {.lex_state = 0, .external_lex_state = 2},
  [6845] = {.lex_state = 0, .external_lex_state = 2},
  [6846] = {.lex_state = 17, .external_lex_state = 2},
  [6847] = {.lex_state = 9, .external_lex_state = 6},
  [6848] = {.lex_state = 0, .external_lex_state = 2},
  [6849] = {.lex_state = 0, .external_lex_state = 2},
  [6850] = {.lex_state = 9, .external_lex_state = 2},
  [6851] = {.lex_state = 9, .external_lex_state = 2},
  [6852] = {.lex_state = 0, .external_lex_state = 2},
  [6853] = {.lex_state = 0, .external_lex_state = 2},
  [6854] = {.lex_state = 9, .external_lex_state = 6},
  [6855] = {.lex_state = 9, .external_lex_state = 2},
  [6856] = {.lex_state = 9, .external_lex_state = 2},
  [6857] = {.lex_state = 0, .external_lex_state = 2},
  [6858] = {.lex_state = 0, .external_lex_state = 2},
  [6859] = {.lex_state = 9, .external_lex_state = 2},
  [6860] = {.lex_state = 17, .external_lex_state = 2},
  [6861] = {.lex_state = 0, .external_lex_state = 2},
  [6862] = {.lex_state = 0, .external_lex_state = 2},
  [6863] = {.lex_state = 9, .external_lex_state = 2},
  [6864] = {.lex_state = 0, .external_lex_state = 2},
  [6865] = {.lex_state = 17, .external_lex_state = 2},
  [6866] = {.lex_state = 0, .external_lex_state = 2},
  [6867] = {.lex_state = 17, .external_lex_state = 2},
  [6868] = {.lex_state = 0, .external_lex_state = 2},
  [6869] = {.lex_state = 9, .external_lex_state = 2},
  [6870] = {.lex_state = 0, .external_lex_state = 2},
  [6871] = {.lex_state = 17, .external_lex_state = 2},
  [6872] = {.lex_state = 9, .external_lex_state = 2},
  [6873] = {.lex_state = 0, .external_lex_state = 2},
  [6874] = {.lex_state = 9, .external_lex_state = 2},
  [6875] = {.lex_state = 0, .external_lex_state = 2},
  [6876] = {.lex_state = 9, .external_lex_state = 2},
  [6877] = {.lex_state = 9, .external_lex_state = 2},
  [6878] = {.lex_state = 0, .external_lex_state = 2},
  [6879] = {.lex_state = 0, .external_lex_state = 2},
  [6880] = {.lex_state = 0, .external_lex_state = 2},
  [6881] = {.lex_state = 9, .external_lex_state = 2},
  [6882] = {.lex_state = 17, .external_lex_state = 2},
  [6883] = {.lex_state = 0, .external_lex_state = 2},
  [6884] = {.lex_state = 0, .external_lex_state = 2},
  [6885] = {.lex_state = 9, .external_lex_state = 2},
  [6886] = {.lex_state = 0, .external_lex_state = 2},
  [6887] = {.lex_state = 0, .external_lex_state = 2},
  [6888] = {.lex_state = 9, .external_lex_state = 2},
  [6889] = {.lex_state = 0, .external_lex_state = 2},
  [6890] = {.lex_state = 0, .external_lex_state = 2},
  [6891] = {.lex_state = 9, .external_lex_state = 2},
  [6892] = {.lex_state = 9, .external_lex_state = 2},
  [6893] = {.lex_state = 0, .external_lex_state = 2},
  [6894] = {.lex_state = 0, .external_lex_state = 2},
  [6895] = {.lex_state = 9, .external_lex_state = 2},
  [6896] = {.lex_state = 0, .external_lex_state = 2},
  [6897] = {.lex_state = 0, .external_lex_state = 2},
  [6898] = {.lex_state = 0, .external_lex_state = 2},
  [6899] = {.lex_state = 17, .external_lex_state = 2},
  [6900] = {.lex_state = 9, .external_lex_state = 2},
  [6901] = {.lex_state = 0, .external_lex_state = 2},
  [6902] = {.lex_state = 9, .external_lex_state = 2},
  [6903] = {.lex_state = 0, .external_lex_state = 2},
  [6904] = {.lex_state = 0, .external_lex_state = 2},
  [6905] = {.lex_state = 0, .external_lex_state = 2},
  [6906] = {.lex_state = 0, .external_lex_state = 2},
  [6907] = {.lex_state = 9, .external_lex_state = 2},
  [6908] = {.lex_state = 9, .external_lex_state = 6},
  [6909] = {.lex_state = 0, .external_lex_state = 2},
  [6910] = {.lex_state = 9, .external_lex_state = 2},
  [6911] = {.lex_state = 9, .external_lex_state = 2},
  [6912] = {.lex_state = 0, .external_lex_state = 2},
  [6913] = {.lex_state = 0, .external_lex_state = 2},
  [6914] = {.lex_state = 9, .external_lex_state = 6},
  [6915] = {.lex_state = 0, .external_lex_state = 2},
  [6916] = {.lex_state = 0, .external_lex_state = 2},
  [6917] = {.lex_state = 0, .external_lex_state = 2},
  [6918] = {.lex_state = 0, .external_lex_state = 2},
  [6919] = {.lex_state = 9, .external_lex_state = 2},
  [6920] = {.lex_state = 0, .external_lex_state = 2},
  [6921] = {.lex_state = 0, .external_lex_state = 2},
  [6922] = {.lex_state = 0, .external_lex_state = 2},
  [6923] = {.lex_state = 0, .external_lex_state = 2},
  [6924] = {.lex_state = 9, .external_lex_state = 2},
  [6925] = {.lex_state = 0, .external_lex_state = 2},
  [6926] = {.lex_state = 0, .external_lex_state = 2},
  [6927] = {.lex_state = 0, .external_lex_state = 2},
  [6928] = {.lex_state = 0, .external_lex_state = 2},
  [6929] = {.lex_state = 9, .external_lex_state = 2},
  [6930] = {.lex_state = 0, .external_lex_state = 2},
  [6931] = {.lex_state = 0, .external_lex_state = 2},
  [6932] = {.lex_state = 17, .external_lex_state = 2},
  [6933] = {.lex_state = 0, .external_lex_state = 2},
  [6934] = {.lex_state = 0, .external_lex_state = 2},
  [6935] = {.lex_state = 0, .external_lex_state = 2},
  [6936] = {.lex_state = 9, .external_lex_state = 2},
  [6937] = {.lex_state = 9, .external_lex_state = 2},
  [6938] = {.lex_state = 9, .external_lex_state = 2},
  [6939] = {.lex_state = 9, .external_lex_state = 2},
  [6940] = {.lex_state = 0, .external_lex_state = 2},
  [6941] = {.lex_state = 0, .external_lex_state = 2},
  [6942] = {.lex_state = 0, .external_lex_state = 2},
  [6943] = {.lex_state = 9, .external_lex_state = 2},
  [6944] = {.lex_state = 0, .external_lex_state = 2},
  [6945] = {.lex_state = 9, .external_lex_state = 2},
  [6946] = {.lex_state = 9, .external_lex_state = 2},
  [6947] = {.lex_state = 9, .external_lex_state = 2},
  [6948] = {.lex_state = 172, .external_lex_state = 2},
  [6949] = {.lex_state = 604, .external_lex_state = 2},
  [6950] = {.lex_state = 627, .external_lex_state = 2},
  [6951] = {.lex_state = 0, .external_lex_state = 2},
  [6952] = {.lex_state = 0, .external_lex_state = 2},
  [6953] = {.lex_state = 0, .external_lex_state = 2},
  [6954] = {.lex_state = 0, .external_lex_state = 2},
  [6955] = {.lex_state = 0, .external_lex_state = 2},
  [6956] = {.lex_state = 0, .external_lex_state = 2},
  [6957] = {.lex_state = 0, .external_lex_state = 2},
  [6958] = {.lex_state = 0, .external_lex_state = 2},
  [6959] = {.lex_state = 0, .external_lex_state = 2},
  [6960] = {.lex_state = 0, .external_lex_state = 2},
  [6961] = {.lex_state = 0, .external_lex_state = 2},
  [6962] = {.lex_state = 0, .external_lex_state = 2},
  [6963] = {.lex_state = 0, .external_lex_state = 2},
  [6964] = {.lex_state = 9, .external_lex_state = 2},
  [6965] = {.lex_state = 0, .external_lex_state = 2},
  [6966] = {.lex_state = 0, .external_lex_state = 2},
  [6967] = {.lex_state = 0, .external_lex_state = 2},
  [6968] = {.lex_state = 0, .external_lex_state = 2},
  [6969] = {.lex_state = 9, .external_lex_state = 2},
  [6970] = {.lex_state = 9, .external_lex_state = 2},
  [6971] = {.lex_state = 9, .external_lex_state = 2},
  [6972] = {.lex_state = 0, .external_lex_state = 2},
  [6973] = {.lex_state = 0, .external_lex_state = 2},
  [6974] = {.lex_state = 0, .external_lex_state = 2},
  [6975] = {.lex_state = 9, .external_lex_state = 2},
  [6976] = {.lex_state = 0, .external_lex_state = 2},
  [6977] = {.lex_state = 9, .external_lex_state = 2},
  [6978] = {.lex_state = 0, .external_lex_state = 2},
  [6979] = {.lex_state = 0, .external_lex_state = 2},
  [6980] = {.lex_state = 0, .external_lex_state = 2},
  [6981] = {.lex_state = 0, .external_lex_state = 2},
  [6982] = {.lex_state = 0, .external_lex_state = 2},
  [6983] = {.lex_state = 0, .external_lex_state = 2},
  [6984] = {.lex_state = 9, .external_lex_state = 2},
  [6985] = {.lex_state = 0, .external_lex_state = 2},
  [6986] = {.lex_state = 9, .external_lex_state = 2},
  [6987] = {.lex_state = 9, .external_lex_state = 2},
  [6988] = {.lex_state = 471, .external_lex_state = 2},
  [6989] = {.lex_state = 0, .external_lex_state = 2},
  [6990] = {.lex_state = 0, .external_lex_state = 2},
  [6991] = {.lex_state = 0, .external_lex_state = 2},
  [6992] = {.lex_state = 0, .external_lex_state = 2},
  [6993] = {.lex_state = 0, .external_lex_state = 2},
  [6994] = {.lex_state = 0, .external_lex_state = 2},
  [6995] = {.lex_state = 9, .external_lex_state = 2},
  [6996] = {.lex_state = 0, .external_lex_state = 2},
  [6997] = {.lex_state = 0, .external_lex_state = 2},
  [6998] = {.lex_state = 0, .external_lex_state = 2},
  [6999] = {.lex_state = 9, .external_lex_state = 2},
  [7000] = {.lex_state = 0, .external_lex_state = 2},
  [7001] = {.lex_state = 0, .external_lex_state = 2},
  [7002] = {.lex_state = 9, .external_lex_state = 2},
  [7003] = {.lex_state = 0, .external_lex_state = 2},
  [7004] = {.lex_state = 0, .external_lex_state = 2},
  [7005] = {.lex_state = 0, .external_lex_state = 2},
  [7006] = {.lex_state = 0, .external_lex_state = 2},
  [7007] = {.lex_state = 0, .external_lex_state = 2},
  [7008] = {.lex_state = 0, .external_lex_state = 2},
  [7009] = {.lex_state = 9, .external_lex_state = 2},
  [7010] = {.lex_state = 0, .external_lex_state = 2},
  [7011] = {.lex_state = 0, .external_lex_state = 2},
  [7012] = {.lex_state = 0, .external_lex_state = 2},
  [7013] = {.lex_state = 0, .external_lex_state = 2},
  [7014] = {.lex_state = 0, .external_lex_state = 2},
  [7015] = {.lex_state = 0, .external_lex_state = 2},
  [7016] = {.lex_state = 9, .external_lex_state = 2},
  [7017] = {.lex_state = 0, .external_lex_state = 2},
  [7018] = {.lex_state = 0, .external_lex_state = 2},
  [7019] = {.lex_state = 0, .external_lex_state = 2},
  [7020] = {.lex_state = 0, .external_lex_state = 2},
  [7021] = {.lex_state = 0, .external_lex_state = 2},
  [7022] = {.lex_state = 0, .external_lex_state = 2},
  [7023] = {.lex_state = 0, .external_lex_state = 2},
  [7024] = {.lex_state = 0, .external_lex_state = 2},
  [7025] = {.lex_state = 0, .external_lex_state = 2},
  [7026] = {.lex_state = 0, .external_lex_state = 2},
  [7027] = {.lex_state = 0, .external_lex_state = 2},
  [7028] = {.lex_state = 0, .external_lex_state = 2},
  [7029] = {.lex_state = 0, .external_lex_state = 2},
  [7030] = {.lex_state = 0, .external_lex_state = 2},
  [7031] = {.lex_state = 0, .external_lex_state = 2},
  [7032] = {.lex_state = 0, .external_lex_state = 2},
  [7033] = {.lex_state = 0, .external_lex_state = 2},
  [7034] = {.lex_state = 0, .external_lex_state = 2},
  [7035] = {.lex_state = 0, .external_lex_state = 2},
  [7036] = {.lex_state = 0, .external_lex_state = 2},
  [7037] = {.lex_state = 0, .external_lex_state = 2},
  [7038] = {.lex_state = 0, .external_lex_state = 2},
  [7039] = {.lex_state = 0, .external_lex_state = 2},
  [7040] = {.lex_state = 0, .external_lex_state = 2},
  [7041] = {.lex_state = 0, .external_lex_state = 2},
  [7042] = {.lex_state = 0, .external_lex_state = 2},
  [7043] = {.lex_state = 0, .external_lex_state = 2},
  [7044] = {.lex_state = 9, .external_lex_state = 2},
  [7045] = {.lex_state = 0, .external_lex_state = 2},
  [7046] = {.lex_state = 0, .external_lex_state = 2},
  [7047] = {.lex_state = 9, .external_lex_state = 2},
  [7048] = {.lex_state = 0, .external_lex_state = 2},
  [7049] = {.lex_state = 0, .external_lex_state = 2},
  [7050] = {.lex_state = 9, .external_lex_state = 2},
  [7051] = {.lex_state = 0, .external_lex_state = 2},
  [7052] = {.lex_state = 0, .external_lex_state = 2},
  [7053] = {.lex_state = 0, .external_lex_state = 2},
  [7054] = {.lex_state = 172, .external_lex_state = 2},
  [7055] = {.lex_state = 0, .external_lex_state = 2},
  [7056] = {.lex_state = 9, .external_lex_state = 2},
  [7057] = {.lex_state = 0, .external_lex_state = 2},
  [7058] = {.lex_state = 0, .external_lex_state = 2},
  [7059] = {.lex_state = 0, .external_lex_state = 2},
  [7060] = {.lex_state = 0, .external_lex_state = 2},
  [7061] = {.lex_state = 0, .external_lex_state = 2},
  [7062] = {.lex_state = 0, .external_lex_state = 2},
  [7063] = {.lex_state = 0, .external_lex_state = 2},
  [7064] = {.lex_state = 0, .external_lex_state = 2},
  [7065] = {.lex_state = 0, .external_lex_state = 2},
  [7066] = {.lex_state = 0, .external_lex_state = 2},
  [7067] = {.lex_state = 9, .external_lex_state = 2},
  [7068] = {.lex_state = 0, .external_lex_state = 2},
  [7069] = {.lex_state = 0, .external_lex_state = 2},
  [7070] = {.lex_state = 0, .external_lex_state = 2},
  [7071] = {.lex_state = 9, .external_lex_state = 2},
  [7072] = {.lex_state = 9, .external_lex_state = 2},
  [7073] = {.lex_state = 172, .external_lex_state = 2},
  [7074] = {.lex_state = 9, .external_lex_state = 2},
  [7075] = {.lex_state = 0, .external_lex_state = 2},
  [7076] = {.lex_state = 0, .external_lex_state = 2},
  [7077] = {.lex_state = 0, .external_lex_state = 2},
  [7078] = {.lex_state = 0, .external_lex_state = 2},
  [7079] = {.lex_state = 0, .external_lex_state = 2},
  [7080] = {.lex_state = 471, .external_lex_state = 2},
  [7081] = {.lex_state = 604, .external_lex_state = 2},
  [7082] = {.lex_state = 627, .external_lex_state = 2},
  [7083] = {.lex_state = 0, .external_lex_state = 2},
  [7084] = {.lex_state = 0, .external_lex_state = 2},
  [7085] = {.lex_state = 0, .external_lex_state = 2},
  [7086] = {.lex_state = 0, .external_lex_state = 2},
  [7087] = {.lex_state = 0, .external_lex_state = 2},
  [7088] = {.lex_state = 0, .external_lex_state = 2},
  [7089] = {.lex_state = 9, .external_lex_state = 2},
  [7090] = {.lex_state = 9, .external_lex_state = 2},
  [7091] = {.lex_state = 0, .external_lex_state = 2},
  [7092] = {.lex_state = 0, .external_lex_state = 2},
  [7093] = {.lex_state = 0, .external_lex_state = 2},
  [7094] = {.lex_state = 0, .external_lex_state = 2},
  [7095] = {.lex_state = 0, .external_lex_state = 2},
  [7096] = {.lex_state = 0, .external_lex_state = 2},
  [7097] = {.lex_state = 172, .external_lex_state = 2},
  [7098] = {.lex_state = 0, .external_lex_state = 2},
  [7099] = {.lex_state = 172, .external_lex_state = 2},
  [7100] = {.lex_state = 0, .external_lex_state = 2},
  [7101] = {.lex_state = 0, .external_lex_state = 2},
  [7102] = {.lex_state = 0, .external_lex_state = 2},
  [7103] = {.lex_state = 9, .external_lex_state = 2},
  [7104] = {.lex_state = 9, .external_lex_state = 2},
  [7105] = {.lex_state = 0, .external_lex_state = 2},
  [7106] = {.lex_state = 9, .external_lex_state = 2},
  [7107] = {.lex_state = 172, .external_lex_state = 2},
  [7108] = {.lex_state = 172, .external_lex_state = 2},
  [7109] = {.lex_state = 172, .external_lex_state = 2},
  [7110] = {.lex_state = 172, .external_lex_state = 2},
  [7111] = {.lex_state = 0, .external_lex_state = 2},
  [7112] = {.lex_state = 9, .external_lex_state = 2},
  [7113] = {.lex_state = 9, .external_lex_state = 2},
  [7114] = {.lex_state = 0, .external_lex_state = 2},
  [7115] = {.lex_state = 0, .external_lex_state = 2},
  [7116] = {.lex_state = 0, .external_lex_state = 2},
  [7117] = {.lex_state = 0, .external_lex_state = 2},
  [7118] = {.lex_state = 0, .external_lex_state = 2},
  [7119] = {.lex_state = 0, .external_lex_state = 2},
  [7120] = {.lex_state = 0, .external_lex_state = 2},
  [7121] = {.lex_state = 0, .external_lex_state = 2},
  [7122] = {.lex_state = 0, .external_lex_state = 2},
  [7123] = {.lex_state = 0, .external_lex_state = 2},
  [7124] = {.lex_state = 0, .external_lex_state = 2},
  [7125] = {.lex_state = 9, .external_lex_state = 2},
  [7126] = {.lex_state = 9, .external_lex_state = 2},
  [7127] = {.lex_state = 9, .external_lex_state = 2},
  [7128] = {.lex_state = 9, .external_lex_state = 2},
  [7129] = {.lex_state = 0, .external_lex_state = 2},
  [7130] = {.lex_state = 0, .external_lex_state = 2},
  [7131] = {.lex_state = 627, .external_lex_state = 2},
  [7132] = {.lex_state = 0, .external_lex_state = 2},
  [7133] = {.lex_state = 0, .external_lex_state = 2},
  [7134] = {.lex_state = 0, .external_lex_state = 2},
  [7135] = {.lex_state = 0, .external_lex_state = 2},
  [7136] = {.lex_state = 0, .external_lex_state = 2},
  [7137] = {.lex_state = 0, .external_lex_state = 2},
  [7138] = {.lex_state = 0, .external_lex_state = 2},
  [7139] = {.lex_state = 0, .external_lex_state = 2},
  [7140] = {.lex_state = 0, .external_lex_state = 2},
  [7141] = {.lex_state = 0, .external_lex_state = 2},
  [7142] = {.lex_state = 0, .external_lex_state = 2},
  [7143] = {.lex_state = 0, .external_lex_state = 2},
  [7144] = {.lex_state = 0, .external_lex_state = 2},
  [7145] = {.lex_state = 0, .external_lex_state = 2},
  [7146] = {.lex_state = 0, .external_lex_state = 2},
  [7147] = {.lex_state = 0, .external_lex_state = 2},
  [7148] = {.lex_state = 0, .external_lex_state = 2},
  [7149] = {.lex_state = 0, .external_lex_state = 2},
  [7150] = {.lex_state = 0, .external_lex_state = 2},
  [7151] = {.lex_state = 0, .external_lex_state = 2},
  [7152] = {.lex_state = 0, .external_lex_state = 2},
  [7153] = {.lex_state = 0, .external_lex_state = 2},
  [7154] = {.lex_state = 0, .external_lex_state = 2},
  [7155] = {.lex_state = 9, .external_lex_state = 2},
  [7156] = {.lex_state = 9, .external_lex_state = 2},
  [7157] = {.lex_state = 0, .external_lex_state = 2},
  [7158] = {.lex_state = 0, .external_lex_state = 2},
  [7159] = {.lex_state = 0, .external_lex_state = 2},
  [7160] = {.lex_state = 0, .external_lex_state = 2},
  [7161] = {.lex_state = 0, .external_lex_state = 2},
  [7162] = {.lex_state = 0, .external_lex_state = 2},
  [7163] = {.lex_state = 0, .external_lex_state = 2},
  [7164] = {.lex_state = 0, .external_lex_state = 2},
  [7165] = {.lex_state = 0, .external_lex_state = 2},
  [7166] = {.lex_state = 604, .external_lex_state = 2},
  [7167] = {.lex_state = 471, .external_lex_state = 2},
  [7168] = {.lex_state = 0, .external_lex_state = 2},
  [7169] = {.lex_state = 0, .external_lex_state = 2},
  [7170] = {.lex_state = 0, .external_lex_state = 2},
  [7171] = {.lex_state = 0, .external_lex_state = 2},
  [7172] = {.lex_state = 0, .external_lex_state = 2},
  [7173] = {.lex_state = 0, .external_lex_state = 2},
  [7174] = {.lex_state = 0, .external_lex_state = 2},
  [7175] = {.lex_state = 0, .external_lex_state = 2},
  [7176] = {.lex_state = 9, .external_lex_state = 2},
  [7177] = {.lex_state = 172, .external_lex_state = 2},
  [7178] = {.lex_state = 9, .external_lex_state = 2},
  [7179] = {.lex_state = 172, .external_lex_state = 2},
  [7180] = {.lex_state = 0, .external_lex_state = 2},
  [7181] = {.lex_state = 9, .external_lex_state = 2},
  [7182] = {.lex_state = 9, .external_lex_state = 2},
  [7183] = {.lex_state = 172, .external_lex_state = 2},
  [7184] = {.lex_state = 0, .external_lex_state = 2},
  [7185] = {.lex_state = 172, .external_lex_state = 2},
  [7186] = {.lex_state = 0, .external_lex_state = 2},
  [7187] = {.lex_state = 9, .external_lex_state = 2},
  [7188] = {.lex_state = 0, .external_lex_state = 2},
  [7189] = {.lex_state = 0, .external_lex_state = 2},
  [7190] = {.lex_state = 9, .external_lex_state = 2},
  [7191] = {.lex_state = 9, .external_lex_state = 2},
  [7192] = {.lex_state = 0, .external_lex_state = 2},
  [7193] = {.lex_state = 9, .external_lex_state = 2},
  [7194] = {.lex_state = 0, .external_lex_state = 2},
  [7195] = {.lex_state = 0, .external_lex_state = 2},
  [7196] = {.lex_state = 0, .external_lex_state = 2},
  [7197] = {.lex_state = 0, .external_lex_state = 2},
  [7198] = {.lex_state = 0, .external_lex_state = 2},
  [7199] = {.lex_state = 0, .external_lex_state = 2},
  [7200] = {.lex_state = 0, .external_lex_state = 2},
  [7201] = {.lex_state = 0, .external_lex_state = 2},
  [7202] = {.lex_state = 9, .external_lex_state = 2},
  [7203] = {.lex_state = 0, .external_lex_state = 2},
  [7204] = {.lex_state = 0, .external_lex_state = 2},
  [7205] = {.lex_state = 9, .external_lex_state = 2},
  [7206] = {.lex_state = 9, .external_lex_state = 2},
  [7207] = {.lex_state = 9, .external_lex_state = 2},
  [7208] = {.lex_state = 0, .external_lex_state = 2},
  [7209] = {.lex_state = 0, .external_lex_state = 2},
  [7210] = {.lex_state = 471, .external_lex_state = 2},
  [7211] = {.lex_state = 604, .external_lex_state = 2},
  [7212] = {.lex_state = 627, .external_lex_state = 2},
  [7213] = {.lex_state = 0, .external_lex_state = 2},
  [7214] = {.lex_state = 0, .external_lex_state = 2},
  [7215] = {.lex_state = 0, .external_lex_state = 2},
  [7216] = {.lex_state = 0, .external_lex_state = 2},
  [7217] = {.lex_state = 0, .external_lex_state = 2},
  [7218] = {.lex_state = 0, .external_lex_state = 7},
  [7219] = {.lex_state = 9, .external_lex_state = 2},
  [7220] = {.lex_state = 9, .external_lex_state = 2},
  [7221] = {.lex_state = 0, .external_lex_state = 2},
  [7222] = {.lex_state = 0, .external_lex_state = 2},
  [7223] = {.lex_state = 0, .external_lex_state = 2},
  [7224] = {.lex_state = 0, .external_lex_state = 2},
  [7225] = {.lex_state = 0, .external_lex_state = 2},
  [7226] = {.lex_state = 0, .external_lex_state = 2},
  [7227] = {.lex_state = 0, .external_lex_state = 2},
  [7228] = {.lex_state = 0, .external_lex_state = 2},
  [7229] = {.lex_state = 0, .external_lex_state = 2},
  [7230] = {.lex_state = 0, .external_lex_state = 2},
  [7231] = {.lex_state = 0, .external_lex_state = 2},
  [7232] = {.lex_state = 0, .external_lex_state = 2},
  [7233] = {.lex_state = 0, .external_lex_state = 2},
  [7234] = {.lex_state = 9, .external_lex_state = 2},
  [7235] = {.lex_state = 0, .external_lex_state = 2},
  [7236] = {.lex_state = 0, .external_lex_state = 2},
  [7237] = {.lex_state = 0, .external_lex_state = 2},
  [7238] = {.lex_state = 0, .external_lex_state = 2},
  [7239] = {.lex_state = 0, .external_lex_state = 2},
  [7240] = {.lex_state = 0, .external_lex_state = 2},
  [7241] = {.lex_state = 0, .external_lex_state = 2},
  [7242] = {.lex_state = 9, .external_lex_state = 2},
  [7243] = {.lex_state = 9, .external_lex_state = 2},
  [7244] = {.lex_state = 0, .external_lex_state = 2},
  [7245] = {.lex_state = 0, .external_lex_state = 2},
  [7246] = {.lex_state = 0, .external_lex_state = 2},
  [7247] = {.lex_state = 0, .external_lex_state = 2},
  [7248] = {.lex_state = 0, .external_lex_state = 2},
  [7249] = {.lex_state = 0, .external_lex_state = 2},
  [7250] = {.lex_state = 0, .external_lex_state = 2},
  [7251] = {.lex_state = 0, .external_lex_state = 2},
  [7252] = {.lex_state = 0, .external_lex_state = 2},
  [7253] = {.lex_state = 9, .external_lex_state = 2},
  [7254] = {.lex_state = 9, .external_lex_state = 2},
  [7255] = {.lex_state = 0, .external_lex_state = 2},
  [7256] = {.lex_state = 0, .external_lex_state = 2},
  [7257] = {.lex_state = 0, .external_lex_state = 2},
  [7258] = {.lex_state = 0, .external_lex_state = 2},
  [7259] = {.lex_state = 0, .external_lex_state = 2},
  [7260] = {.lex_state = 0, .external_lex_state = 2},
  [7261] = {.lex_state = 0, .external_lex_state = 2},
  [7262] = {.lex_state = 0, .external_lex_state = 2},
  [7263] = {.lex_state = 0, .external_lex_state = 2},
  [7264] = {.lex_state = 0, .external_lex_state = 2},
  [7265] = {.lex_state = 0, .external_lex_state = 2},
  [7266] = {.lex_state = 0, .external_lex_state = 2},
  [7267] = {.lex_state = 0, .external_lex_state = 2},
  [7268] = {.lex_state = 0, .external_lex_state = 2},
  [7269] = {.lex_state = 9, .external_lex_state = 2},
  [7270] = {.lex_state = 0, .external_lex_state = 2},
  [7271] = {.lex_state = 0, .external_lex_state = 2},
  [7272] = {.lex_state = 0, .external_lex_state = 2},
  [7273] = {.lex_state = 0, .external_lex_state = 2},
  [7274] = {.lex_state = 172, .external_lex_state = 2},
  [7275] = {.lex_state = 9, .external_lex_state = 2},
  [7276] = {.lex_state = 0, .external_lex_state = 2},
  [7277] = {.lex_state = 0, .external_lex_state = 2},
  [7278] = {.lex_state = 0, .external_lex_state = 2},
  [7279] = {.lex_state = 0, .external_lex_state = 2},
  [7280] = {.lex_state = 0, .external_lex_state = 2},
  [7281] = {.lex_state = 0, .external_lex_state = 2},
  [7282] = {.lex_state = 0, .external_lex_state = 2},
  [7283] = {.lex_state = 0, .external_lex_state = 2},
  [7284] = {.lex_state = 0, .external_lex_state = 2},
  [7285] = {.lex_state = 0, .external_lex_state = 2},
  [7286] = {.lex_state = 0, .external_lex_state = 2},
  [7287] = {.lex_state = 0, .external_lex_state = 2},
  [7288] = {.lex_state = 0, .external_lex_state = 2},
  [7289] = {.lex_state = 0, .external_lex_state = 2},
  [7290] = {.lex_state = 0, .external_lex_state = 2},
  [7291] = {.lex_state = 0, .external_lex_state = 2},
  [7292] = {.lex_state = 0, .external_lex_state = 2},
  [7293] = {.lex_state = 0, .external_lex_state = 2},
  [7294] = {.lex_state = 0, .external_lex_state = 2},
  [7295] = {.lex_state = 0, .external_lex_state = 2},
  [7296] = {.lex_state = 0, .external_lex_state = 2},
  [7297] = {.lex_state = 0, .external_lex_state = 2},
  [7298] = {.lex_state = 0, .external_lex_state = 2},
  [7299] = {.lex_state = 0, .external_lex_state = 2},
  [7300] = {.lex_state = 0, .external_lex_state = 2},
  [7301] = {.lex_state = 0, .external_lex_state = 2},
  [7302] = {.lex_state = 0, .external_lex_state = 2},
  [7303] = {.lex_state = 0, .external_lex_state = 2},
  [7304] = {.lex_state = 0, .external_lex_state = 2},
  [7305] = {.lex_state = 9, .external_lex_state = 2},
  [7306] = {.lex_state = 9, .external_lex_state = 2},
  [7307] = {.lex_state = 0, .external_lex_state = 2},
  [7308] = {.lex_state = 0, .external_lex_state = 2},
  [7309] = {.lex_state = 0, .external_lex_state = 2},
  [7310] = {.lex_state = 0, .external_lex_state = 2},
  [7311] = {.lex_state = 471, .external_lex_state = 2},
  [7312] = {.lex_state = 604, .external_lex_state = 2},
  [7313] = {.lex_state = 627, .external_lex_state = 2},
  [7314] = {.lex_state = 0, .external_lex_state = 2},
  [7315] = {.lex_state = 172, .external_lex_state = 2},
  [7316] = {.lex_state = 0, .external_lex_state = 2},
  [7317] = {.lex_state = 0, .external_lex_state = 2},
  [7318] = {.lex_state = 0, .external_lex_state = 2},
  [7319] = {.lex_state = 0, .external_lex_state = 2},
  [7320] = {.lex_state = 0, .external_lex_state = 2},
  [7321] = {.lex_state = 9, .external_lex_state = 2},
  [7322] = {.lex_state = 0, .external_lex_state = 2},
  [7323] = {.lex_state = 0, .external_lex_state = 2},
  [7324] = {.lex_state = 0, .external_lex_state = 2},
  [7325] = {.lex_state = 0, .external_lex_state = 2},
  [7326] = {.lex_state = 0, .external_lex_state = 2},
  [7327] = {.lex_state = 0, .external_lex_state = 2},
  [7328] = {.lex_state = 0, .external_lex_state = 2},
  [7329] = {.lex_state = 0, .external_lex_state = 2},
  [7330] = {.lex_state = 0, .external_lex_state = 2},
  [7331] = {.lex_state = 0, .external_lex_state = 2},
  [7332] = {.lex_state = 0, .external_lex_state = 2},
  [7333] = {.lex_state = 0, .external_lex_state = 2},
  [7334] = {.lex_state = 0, .external_lex_state = 2},
  [7335] = {.lex_state = 9, .external_lex_state = 2},
  [7336] = {.lex_state = 0, .external_lex_state = 2},
  [7337] = {.lex_state = 0, .external_lex_state = 2},
  [7338] = {.lex_state = 0, .external_lex_state = 2},
  [7339] = {.lex_state = 0, .external_lex_state = 2},
  [7340] = {.lex_state = 0, .external_lex_state = 2},
  [7341] = {.lex_state = 0, .external_lex_state = 2},
  [7342] = {.lex_state = 0, .external_lex_state = 2},
  [7343] = {.lex_state = 0, .external_lex_state = 2},
  [7344] = {.lex_state = 0, .external_lex_state = 2},
  [7345] = {.lex_state = 0, .external_lex_state = 2},
  [7346] = {.lex_state = 0, .external_lex_state = 2},
  [7347] = {.lex_state = 0, .external_lex_state = 2},
  [7348] = {.lex_state = 0, .external_lex_state = 2},
  [7349] = {.lex_state = 0, .external_lex_state = 2},
  [7350] = {.lex_state = 0, .external_lex_state = 2},
  [7351] = {.lex_state = 0, .external_lex_state = 2},
  [7352] = {.lex_state = 0, .external_lex_state = 2},
  [7353] = {.lex_state = 0, .external_lex_state = 2},
  [7354] = {.lex_state = 0, .external_lex_state = 2},
  [7355] = {.lex_state = 471, .external_lex_state = 2},
  [7356] = {.lex_state = 604, .external_lex_state = 2},
  [7357] = {.lex_state = 627, .external_lex_state = 2},
  [7358] = {.lex_state = 0, .external_lex_state = 2},
  [7359] = {.lex_state = 172, .external_lex_state = 2},
  [7360] = {.lex_state = 0, .external_lex_state = 2},
  [7361] = {.lex_state = 0, .external_lex_state = 2},
  [7362] = {.lex_state = 0, .external_lex_state = 2},
  [7363] = {.lex_state = 0, .external_lex_state = 2},
  [7364] = {.lex_state = 0, .external_lex_state = 2},
  [7365] = {.lex_state = 0, .external_lex_state = 2},
  [7366] = {.lex_state = 0, .external_lex_state = 2},
  [7367] = {.lex_state = 0, .external_lex_state = 2},
  [7368] = {.lex_state = 0, .external_lex_state = 2},
  [7369] = {.lex_state = 0, .external_lex_state = 2},
  [7370] = {.lex_state = 172, .external_lex_state = 2},
  [7371] = {.lex_state = 9, .external_lex_state = 2},
  [7372] = {.lex_state = 9, .external_lex_state = 2},
  [7373] = {.lex_state = 0, .external_lex_state = 2},
  [7374] = {.lex_state = 172, .external_lex_state = 2},
  [7375] = {.lex_state = 0, .external_lex_state = 2},
  [7376] = {.lex_state = 0, .external_lex_state = 2},
  [7377] = {.lex_state = 0, .external_lex_state = 2},
  [7378] = {.lex_state = 0, .external_lex_state = 2},
  [7379] = {.lex_state = 0, .external_lex_state = 2},
  [7380] = {.lex_state = 0, .external_lex_state = 2},
  [7381] = {.lex_state = 0, .external_lex_state = 2},
  [7382] = {.lex_state = 0, .external_lex_state = 2},
  [7383] = {.lex_state = 0, .external_lex_state = 2},
  [7384] = {.lex_state = 0, .external_lex_state = 2},
  [7385] = {.lex_state = 0, .external_lex_state = 2},
  [7386] = {.lex_state = 471, .external_lex_state = 2},
  [7387] = {.lex_state = 604, .external_lex_state = 2},
  [7388] = {.lex_state = 627, .external_lex_state = 2},
  [7389] = {.lex_state = 0, .external_lex_state = 2},
  [7390] = {.lex_state = 0, .external_lex_state = 2},
  [7391] = {.lex_state = 0, .external_lex_state = 2},
  [7392] = {.lex_state = 0, .external_lex_state = 2},
  [7393] = {.lex_state = 0, .external_lex_state = 2},
  [7394] = {.lex_state = 0, .external_lex_state = 2},
  [7395] = {.lex_state = 0, .external_lex_state = 2},
  [7396] = {.lex_state = 0, .external_lex_state = 2},
  [7397] = {.lex_state = 0, .external_lex_state = 2},
  [7398] = {.lex_state = 0, .external_lex_state = 2},
  [7399] = {.lex_state = 9, .external_lex_state = 2},
  [7400] = {.lex_state = 0, .external_lex_state = 2},
  [7401] = {.lex_state = 0, .external_lex_state = 2},
  [7402] = {.lex_state = 9, .external_lex_state = 2},
  [7403] = {.lex_state = 0, .external_lex_state = 2},
  [7404] = {.lex_state = 0, .external_lex_state = 2},
  [7405] = {.lex_state = 0, .external_lex_state = 2},
  [7406] = {.lex_state = 0, .external_lex_state = 2},
  [7407] = {.lex_state = 0, .external_lex_state = 2},
  [7408] = {.lex_state = 0, .external_lex_state = 2},
  [7409] = {.lex_state = 0, .external_lex_state = 2},
  [7410] = {.lex_state = 9, .external_lex_state = 2},
  [7411] = {.lex_state = 0, .external_lex_state = 2},
  [7412] = {.lex_state = 0, .external_lex_state = 2},
  [7413] = {.lex_state = 0, .external_lex_state = 2},
  [7414] = {.lex_state = 0, .external_lex_state = 2},
  [7415] = {.lex_state = 9, .external_lex_state = 2},
  [7416] = {.lex_state = 471, .external_lex_state = 2},
  [7417] = {.lex_state = 604, .external_lex_state = 2},
  [7418] = {.lex_state = 627, .external_lex_state = 2},
  [7419] = {.lex_state = 0, .external_lex_state = 2},
  [7420] = {.lex_state = 0, .external_lex_state = 2},
  [7421] = {.lex_state = 0, .external_lex_state = 2},
  [7422] = {.lex_state = 0, .external_lex_state = 2},
  [7423] = {.lex_state = 0, .external_lex_state = 2},
  [7424] = {.lex_state = 0, .external_lex_state = 2},
  [7425] = {.lex_state = 0, .external_lex_state = 2},
  [7426] = {.lex_state = 0, .external_lex_state = 2},
  [7427] = {.lex_state = 0, .external_lex_state = 2},
  [7428] = {.lex_state = 0, .external_lex_state = 2},
  [7429] = {.lex_state = 0, .external_lex_state = 2},
  [7430] = {.lex_state = 0, .external_lex_state = 2},
  [7431] = {.lex_state = 0, .external_lex_state = 2},
  [7432] = {.lex_state = 0, .external_lex_state = 2},
  [7433] = {.lex_state = 0, .external_lex_state = 2},
  [7434] = {.lex_state = 0, .external_lex_state = 2},
  [7435] = {.lex_state = 0, .external_lex_state = 2},
  [7436] = {.lex_state = 0, .external_lex_state = 2},
  [7437] = {.lex_state = 0, .external_lex_state = 2},
  [7438] = {.lex_state = 0, .external_lex_state = 2},
  [7439] = {.lex_state = 0, .external_lex_state = 2},
  [7440] = {.lex_state = 0, .external_lex_state = 2},
  [7441] = {.lex_state = 0, .external_lex_state = 2},
  [7442] = {.lex_state = 0, .external_lex_state = 2},
  [7443] = {.lex_state = 471, .external_lex_state = 2},
  [7444] = {.lex_state = 604, .external_lex_state = 2},
  [7445] = {.lex_state = 627, .external_lex_state = 2},
  [7446] = {.lex_state = 0, .external_lex_state = 2},
  [7447] = {.lex_state = 9, .external_lex_state = 2},
  [7448] = {.lex_state = 471, .external_lex_state = 2},
  [7449] = {.lex_state = 604, .external_lex_state = 2},
  [7450] = {.lex_state = 627, .external_lex_state = 2},
  [7451] = {.lex_state = 0, .external_lex_state = 2},
  [7452] = {.lex_state = 471, .external_lex_state = 2},
  [7453] = {.lex_state = 604, .external_lex_state = 2},
  [7454] = {.lex_state = 627, .external_lex_state = 2},
  [7455] = {.lex_state = 0, .external_lex_state = 2},
  [7456] = {.lex_state = 0, .external_lex_state = 2},
  [7457] = {.lex_state = 9, .external_lex_state = 2},
  [7458] = {.lex_state = 0, .external_lex_state = 2},
  [7459] = {.lex_state = 9, .external_lex_state = 2},
  [7460] = {.lex_state = 9, .external_lex_state = 2},
  [7461] = {.lex_state = 0, .external_lex_state = 2},
  [7462] = {.lex_state = 0, .external_lex_state = 2},
  [7463] = {.lex_state = 0, .external_lex_state = 2},
  [7464] = {.lex_state = 0, .external_lex_state = 2},
  [7465] = {.lex_state = 0, .external_lex_state = 2},
  [7466] = {.lex_state = 0, .external_lex_state = 2},
  [7467] = {.lex_state = 0, .external_lex_state = 2},
  [7468] = {.lex_state = 0, .external_lex_state = 2},
  [7469] = {.lex_state = 0, .external_lex_state = 2},
  [7470] = {.lex_state = 0, .external_lex_state = 2},
  [7471] = {.lex_state = 172, .external_lex_state = 2},
  [7472] = {.lex_state = 0, .external_lex_state = 2},
  [7473] = {.lex_state = 0, .external_lex_state = 2},
  [7474] = {.lex_state = 172, .external_lex_state = 2},
  [7475] = {.lex_state = 627, .external_lex_state = 2},
  [7476] = {.lex_state = 9, .external_lex_state = 2},
  [7477] = {.lex_state = 0, .external_lex_state = 2},
  [7478] = {.lex_state = 0, .external_lex_state = 2},
  [7479] = {.lex_state = 0, .external_lex_state = 2},
  [7480] = {.lex_state = 604, .external_lex_state = 2},
  [7481] = {.lex_state = 0, .external_lex_state = 2},
  [7482] = {.lex_state = 471, .external_lex_state = 2},
  [7483] = {.lex_state = 0, .external_lex_state = 2},
  [7484] = {.lex_state = 0, .external_lex_state = 2},
  [7485] = {.lex_state = 0, .external_lex_state = 2},
  [7486] = {.lex_state = 0, .external_lex_state = 2},
  [7487] = {.lex_state = 9, .external_lex_state = 2},
  [7488] = {.lex_state = 0, .external_lex_state = 2},
  [7489] = {.lex_state = 0, .external_lex_state = 2},
  [7490] = {.lex_state = 0, .external_lex_state = 2},
  [7491] = {.lex_state = 0, .external_lex_state = 2},
  [7492] = {.lex_state = 0, .external_lex_state = 2},
  [7493] = {.lex_state = 0, .external_lex_state = 2},
  [7494] = {.lex_state = 172, .external_lex_state = 2},
  [7495] = {.lex_state = 0, .external_lex_state = 2},
  [7496] = {.lex_state = 0, .external_lex_state = 2},
  [7497] = {.lex_state = 0, .external_lex_state = 2},
  [7498] = {.lex_state = 0, .external_lex_state = 2},
  [7499] = {.lex_state = 0, .external_lex_state = 2},
  [7500] = {.lex_state = 0, .external_lex_state = 2},
  [7501] = {.lex_state = 0, .external_lex_state = 2},
  [7502] = {.lex_state = 9, .external_lex_state = 2},
  [7503] = {.lex_state = 0, .external_lex_state = 2},
  [7504] = {.lex_state = 0, .external_lex_state = 2},
  [7505] = {.lex_state = 9, .external_lex_state = 2},
  [7506] = {.lex_state = 0, .external_lex_state = 2},
  [7507] = {.lex_state = 0, .external_lex_state = 2},
  [7508] = {.lex_state = 172, .external_lex_state = 2},
  [7509] = {.lex_state = 0, .external_lex_state = 2},
  [7510] = {.lex_state = 172, .external_lex_state = 2},
  [7511] = {.lex_state = 9, .external_lex_state = 2},
  [7512] = {.lex_state = 0, .external_lex_state = 2},
  [7513] = {.lex_state = 0, .external_lex_state = 2},
  [7514] = {.lex_state = 0, .external_lex_state = 2},
  [7515] = {.lex_state = 9, .external_lex_state = 2},
  [7516] = {.lex_state = 9, .external_lex_state = 2},
  [7517] = {.lex_state = 9, .external_lex_state = 2},
  [7518] = {.lex_state = 0, .external_lex_state = 2},
  [7519] = {.lex_state = 9, .external_lex_state = 2},
  [7520] = {.lex_state = 0, .external_lex_state = 2},
  [7521] = {.lex_state = 9, .external_lex_state = 2},
  [7522] = {.lex_state = 0, .external_lex_state = 2},
  [7523] = {.lex_state = 0, .external_lex_state = 2},
  [7524] = {.lex_state = 9, .external_lex_state = 2},
  [7525] = {.lex_state = 0, .external_lex_state = 2},
  [7526] = {.lex_state = 9, .external_lex_state = 2},
  [7527] = {.lex_state = 0, .external_lex_state = 2},
  [7528] = {.lex_state = 0, .external_lex_state = 2},
  [7529] = {.lex_state = 9, .external_lex_state = 2},
  [7530] = {.lex_state = 0, .external_lex_state = 2},
  [7531] = {.lex_state = 0, .external_lex_state = 2},
  [7532] = {.lex_state = 0, .external_lex_state = 2},
  [7533] = {.lex_state = 0, .external_lex_state = 2},
  [7534] = {.lex_state = 172, .external_lex_state = 2},
  [7535] = {.lex_state = 0, .external_lex_state = 2},
  [7536] = {.lex_state = 0, .external_lex_state = 2},
  [7537] = {.lex_state = 0, .external_lex_state = 2},
  [7538] = {.lex_state = 9, .external_lex_state = 2},
  [7539] = {.lex_state = 172, .external_lex_state = 2},
  [7540] = {.lex_state = 0, .external_lex_state = 2},
  [7541] = {.lex_state = 172, .external_lex_state = 2},
  [7542] = {.lex_state = 172, .external_lex_state = 2},
  [7543] = {.lex_state = 0, .external_lex_state = 2},
  [7544] = {.lex_state = 0, .external_lex_state = 2},
  [7545] = {.lex_state = 0, .external_lex_state = 2},
  [7546] = {.lex_state = 0, .external_lex_state = 2},
  [7547] = {.lex_state = 0, .external_lex_state = 2},
  [7548] = {.lex_state = 0, .external_lex_state = 2},
  [7549] = {.lex_state = 172, .external_lex_state = 2},
  [7550] = {.lex_state = 0, .external_lex_state = 2},
  [7551] = {.lex_state = 0, .external_lex_state = 2},
  [7552] = {.lex_state = 0, .external_lex_state = 2},
  [7553] = {.lex_state = 0, .external_lex_state = 2},
  [7554] = {.lex_state = 9, .external_lex_state = 2},
  [7555] = {.lex_state = 172, .external_lex_state = 2},
  [7556] = {.lex_state = 172, .external_lex_state = 2},
  [7557] = {.lex_state = 172, .external_lex_state = 2},
  [7558] = {.lex_state = 172, .external_lex_state = 2},
  [7559] = {.lex_state = 0, .external_lex_state = 2},
  [7560] = {.lex_state = 0, .external_lex_state = 2},
  [7561] = {.lex_state = 0, .external_lex_state = 2},
  [7562] = {.lex_state = 0, .external_lex_state = 2},
  [7563] = {.lex_state = 0, .external_lex_state = 2},
  [7564] = {.lex_state = 0, .external_lex_state = 2},
  [7565] = {.lex_state = 172, .external_lex_state = 2},
  [7566] = {.lex_state = 0, .external_lex_state = 2},
  [7567] = {.lex_state = 0, .external_lex_state = 2},
  [7568] = {.lex_state = 0, .external_lex_state = 2},
  [7569] = {.lex_state = 172, .external_lex_state = 2},
  [7570] = {.lex_state = 0, .external_lex_state = 2},
  [7571] = {.lex_state = 0, .external_lex_state = 2},
  [7572] = {.lex_state = 0, .external_lex_state = 2},
  [7573] = {.lex_state = 0, .external_lex_state = 2},
  [7574] = {.lex_state = 0, .external_lex_state = 2},
  [7575] = {.lex_state = 0, .external_lex_state = 2},
  [7576] = {.lex_state = 172, .external_lex_state = 2},
  [7577] = {.lex_state = 0, .external_lex_state = 2},
  [7578] = {.lex_state = 9, .external_lex_state = 2},
  [7579] = {.lex_state = 0, .external_lex_state = 2},
  [7580] = {.lex_state = 0, .external_lex_state = 2},
  [7581] = {.lex_state = 0, .external_lex_state = 2},
  [7582] = {.lex_state = 0, .external_lex_state = 2},
  [7583] = {.lex_state = 0, .external_lex_state = 2},
  [7584] = {.lex_state = 172, .external_lex_state = 2},
  [7585] = {.lex_state = 0, .external_lex_state = 2},
  [7586] = {.lex_state = 0, .external_lex_state = 2},
  [7587] = {.lex_state = 172, .external_lex_state = 2},
  [7588] = {.lex_state = 172, .external_lex_state = 2},
  [7589] = {.lex_state = 9, .external_lex_state = 2},
  [7590] = {.lex_state = 0, .external_lex_state = 2},
  [7591] = {.lex_state = 0, .external_lex_state = 2},
  [7592] = {.lex_state = 0, .external_lex_state = 2},
  [7593] = {.lex_state = 0, .external_lex_state = 2},
  [7594] = {.lex_state = 9, .external_lex_state = 2},
  [7595] = {.lex_state = 0, .external_lex_state = 2},
  [7596] = {.lex_state = 0, .external_lex_state = 2},
  [7597] = {.lex_state = 0, .external_lex_state = 2},
  [7598] = {.lex_state = 0, .external_lex_state = 2},
  [7599] = {.lex_state = 9, .external_lex_state = 2},
  [7600] = {.lex_state = 0, .external_lex_state = 2},
  [7601] = {.lex_state = 0, .external_lex_state = 2},
  [7602] = {.lex_state = 0, .external_lex_state = 2},
  [7603] = {.lex_state = 0, .external_lex_state = 2},
  [7604] = {.lex_state = 0, .external_lex_state = 2},
  [7605] = {.lex_state = 0, .external_lex_state = 2},
  [7606] = {.lex_state = 0, .external_lex_state = 2},
  [7607] = {.lex_state = 9, .external_lex_state = 2},
  [7608] = {.lex_state = 172, .external_lex_state = 2},
  [7609] = {.lex_state = 9, .external_lex_state = 2},
  [7610] = {.lex_state = 172, .external_lex_state = 2},
  [7611] = {.lex_state = 0, .external_lex_state = 2},
  [7612] = {.lex_state = 0, .external_lex_state = 2},
  [7613] = {.lex_state = 0, .external_lex_state = 2},
  [7614] = {.lex_state = 0, .external_lex_state = 2},
  [7615] = {.lex_state = 172, .external_lex_state = 2},
  [7616] = {.lex_state = 0, .external_lex_state = 2},
  [7617] = {.lex_state = 9, .external_lex_state = 2},
  [7618] = {.lex_state = 172, .external_lex_state = 2},
  [7619] = {.lex_state = 0, .external_lex_state = 2},
  [7620] = {.lex_state = 172, .external_lex_state = 2},
  [7621] = {.lex_state = 0, .external_lex_state = 2},
  [7622] = {.lex_state = 9, .external_lex_state = 2},
  [7623] = {.lex_state = 0, .external_lex_state = 2},
  [7624] = {.lex_state = 0, .external_lex_state = 2},
  [7625] = {.lex_state = 172, .external_lex_state = 2},
  [7626] = {.lex_state = 0, .external_lex_state = 2},
  [7627] = {.lex_state = 9, .external_lex_state = 2},
  [7628] = {.lex_state = 0, .external_lex_state = 2},
  [7629] = {.lex_state = 0, .external_lex_state = 2},
  [7630] = {.lex_state = 0, .external_lex_state = 2},
  [7631] = {.lex_state = 0, .external_lex_state = 2},
  [7632] = {.lex_state = 0, .external_lex_state = 2},
  [7633] = {.lex_state = 0, .external_lex_state = 2},
  [7634] = {.lex_state = 0, .external_lex_state = 2},
  [7635] = {.lex_state = 0, .external_lex_state = 2},
  [7636] = {.lex_state = 0, .external_lex_state = 2},
  [7637] = {.lex_state = 0, .external_lex_state = 2},
  [7638] = {.lex_state = 9, .external_lex_state = 2},
  [7639] = {.lex_state = 0, .external_lex_state = 2},
  [7640] = {.lex_state = 9, .external_lex_state = 2},
  [7641] = {.lex_state = 0, .external_lex_state = 2},
  [7642] = {.lex_state = 0, .external_lex_state = 2},
  [7643] = {.lex_state = 0, .external_lex_state = 2},
  [7644] = {.lex_state = 0, .external_lex_state = 2},
  [7645] = {.lex_state = 0, .external_lex_state = 2},
  [7646] = {.lex_state = 172, .external_lex_state = 2},
  [7647] = {.lex_state = 0, .external_lex_state = 2},
  [7648] = {.lex_state = 0, .external_lex_state = 2},
  [7649] = {.lex_state = 172, .external_lex_state = 2},
  [7650] = {.lex_state = 0, .external_lex_state = 2},
  [7651] = {.lex_state = 9, .external_lex_state = 2},
  [7652] = {.lex_state = 0, .external_lex_state = 2},
  [7653] = {.lex_state = 0, .external_lex_state = 2},
  [7654] = {.lex_state = 0, .external_lex_state = 2},
  [7655] = {.lex_state = 0, .external_lex_state = 2},
  [7656] = {.lex_state = 9, .external_lex_state = 2},
  [7657] = {.lex_state = 0, .external_lex_state = 2},
  [7658] = {.lex_state = 0, .external_lex_state = 2},
  [7659] = {.lex_state = 0, .external_lex_state = 2},
  [7660] = {.lex_state = 0, .external_lex_state = 2},
  [7661] = {.lex_state = 9, .external_lex_state = 2},
  [7662] = {.lex_state = 172, .external_lex_state = 2},
  [7663] = {.lex_state = 0, .external_lex_state = 2},
  [7664] = {.lex_state = 172, .external_lex_state = 2},
  [7665] = {.lex_state = 0, .external_lex_state = 2},
  [7666] = {.lex_state = 9, .external_lex_state = 2},
  [7667] = {.lex_state = 172, .external_lex_state = 2},
  [7668] = {.lex_state = 172, .external_lex_state = 2},
  [7669] = {.lex_state = 172, .external_lex_state = 2},
  [7670] = {.lex_state = 0, .external_lex_state = 2},
  [7671] = {.lex_state = 0, .external_lex_state = 2},
  [7672] = {.lex_state = 0, .external_lex_state = 2},
  [7673] = {.lex_state = 0, .external_lex_state = 2},
  [7674] = {.lex_state = 0, .external_lex_state = 2},
  [7675] = {.lex_state = 9, .external_lex_state = 2},
  [7676] = {.lex_state = 0, .external_lex_state = 2},
  [7677] = {.lex_state = 172, .external_lex_state = 2},
  [7678] = {.lex_state = 0, .external_lex_state = 2},
  [7679] = {.lex_state = 9, .external_lex_state = 2},
  [7680] = {.lex_state = 0, .external_lex_state = 2},
  [7681] = {.lex_state = 9, .external_lex_state = 2},
  [7682] = {.lex_state = 0, .external_lex_state = 2},
  [7683] = {.lex_state = 0, .external_lex_state = 2},
  [7684] = {.lex_state = 0, .external_lex_state = 2},
  [7685] = {.lex_state = 0, .external_lex_state = 2},
  [7686] = {.lex_state = 0, .external_lex_state = 2},
  [7687] = {.lex_state = 9, .external_lex_state = 2},
  [7688] = {.lex_state = 9, .external_lex_state = 2},
  [7689] = {.lex_state = 0, .external_lex_state = 2},
  [7690] = {.lex_state = 0, .external_lex_state = 2},
  [7691] = {.lex_state = 0, .external_lex_state = 2},
  [7692] = {.lex_state = 0, .external_lex_state = 2},
  [7693] = {.lex_state = 172, .external_lex_state = 2},
  [7694] = {.lex_state = 0, .external_lex_state = 2},
  [7695] = {.lex_state = 0, .external_lex_state = 2},
  [7696] = {.lex_state = 172, .external_lex_state = 2},
  [7697] = {.lex_state = 0, .external_lex_state = 2},
  [7698] = {.lex_state = 9, .external_lex_state = 2},
  [7699] = {.lex_state = 0, .external_lex_state = 2},
  [7700] = {.lex_state = 0, .external_lex_state = 2},
  [7701] = {.lex_state = 172, .external_lex_state = 2},
  [7702] = {.lex_state = 9, .external_lex_state = 2},
  [7703] = {.lex_state = 0, .external_lex_state = 2},
  [7704] = {.lex_state = 0, .external_lex_state = 2},
  [7705] = {.lex_state = 9, .external_lex_state = 2},
  [7706] = {.lex_state = 172, .external_lex_state = 2},
  [7707] = {.lex_state = 0, .external_lex_state = 2},
  [7708] = {.lex_state = 172, .external_lex_state = 2},
  [7709] = {.lex_state = 0, .external_lex_state = 2},
  [7710] = {.lex_state = 0, .external_lex_state = 7},
  [7711] = {.lex_state = 0, .external_lex_state = 2},
  [7712] = {.lex_state = 0, .external_lex_state = 2},
  [7713] = {.lex_state = 0, .external_lex_state = 2},
  [7714] = {.lex_state = 9, .external_lex_state = 2},
  [7715] = {.lex_state = 0, .external_lex_state = 2},
  [7716] = {.lex_state = 0, .external_lex_state = 2},
  [7717] = {.lex_state = 172, .external_lex_state = 2},
  [7718] = {.lex_state = 0, .external_lex_state = 2},
  [7719] = {.lex_state = 9, .external_lex_state = 2},
  [7720] = {.lex_state = 0, .external_lex_state = 2},
  [7721] = {.lex_state = 172, .external_lex_state = 2},
  [7722] = {.lex_state = 172, .external_lex_state = 2},
  [7723] = {.lex_state = 172, .external_lex_state = 2},
  [7724] = {.lex_state = 0, .external_lex_state = 2},
  [7725] = {.lex_state = 0, .external_lex_state = 2},
  [7726] = {.lex_state = 0, .external_lex_state = 2},
  [7727] = {.lex_state = 471, .external_lex_state = 2},
  [7728] = {.lex_state = 0, .external_lex_state = 2},
  [7729] = {.lex_state = 9, .external_lex_state = 2},
  [7730] = {.lex_state = 604, .external_lex_state = 2},
  [7731] = {.lex_state = 0, .external_lex_state = 2},
  [7732] = {.lex_state = 627, .external_lex_state = 2},
  [7733] = {.lex_state = 0, .external_lex_state = 2},
  [7734] = {.lex_state = 172, .external_lex_state = 2},
  [7735] = {.lex_state = 0, .external_lex_state = 2},
  [7736] = {.lex_state = 172, .external_lex_state = 2},
  [7737] = {.lex_state = 0, .external_lex_state = 2},
  [7738] = {.lex_state = 9, .external_lex_state = 2},
  [7739] = {.lex_state = 0, .external_lex_state = 2},
  [7740] = {.lex_state = 0, .external_lex_state = 2},
  [7741] = {.lex_state = 0, .external_lex_state = 2},
  [7742] = {.lex_state = 9, .external_lex_state = 2},
  [7743] = {.lex_state = 9, .external_lex_state = 2},
  [7744] = {.lex_state = 0, .external_lex_state = 2},
  [7745] = {.lex_state = 9, .external_lex_state = 2},
  [7746] = {.lex_state = 172, .external_lex_state = 2},
  [7747] = {.lex_state = 0, .external_lex_state = 2},
  [7748] = {.lex_state = 172, .external_lex_state = 2},
  [7749] = {.lex_state = 0, .external_lex_state = 2},
  [7750] = {.lex_state = 0, .external_lex_state = 2},
  [7751] = {.lex_state = 9, .external_lex_state = 2},
  [7752] = {.lex_state = 0, .external_lex_state = 2},
  [7753] = {.lex_state = 0, .external_lex_state = 2},
  [7754] = {.lex_state = 0, .external_lex_state = 2},
  [7755] = {.lex_state = 0, .external_lex_state = 2},
  [7756] = {.lex_state = 0, .external_lex_state = 2},
  [7757] = {.lex_state = 0, .external_lex_state = 2},
  [7758] = {.lex_state = 0, .external_lex_state = 2},
  [7759] = {.lex_state = 9, .external_lex_state = 2},
  [7760] = {.lex_state = 0, .external_lex_state = 2},
  [7761] = {.lex_state = 0, .external_lex_state = 2},
  [7762] = {.lex_state = 0, .external_lex_state = 2},
  [7763] = {.lex_state = 0, .external_lex_state = 2},
  [7764] = {.lex_state = 0, .external_lex_state = 2},
  [7765] = {.lex_state = 0, .external_lex_state = 2},
  [7766] = {.lex_state = 0, .external_lex_state = 2},
  [7767] = {.lex_state = 9, .external_lex_state = 2},
  [7768] = {.lex_state = 0, .external_lex_state = 2},
  [7769] = {.lex_state = 0, .external_lex_state = 2},
  [7770] = {.lex_state = 9, .external_lex_state = 2},
  [7771] = {.lex_state = 0, .external_lex_state = 2},
  [7772] = {.lex_state = 9, .external_lex_state = 2},
  [7773] = {.lex_state = 0, .external_lex_state = 2},
  [7774] = {.lex_state = 0, .external_lex_state = 2},
  [7775] = {.lex_state = 172, .external_lex_state = 2},
  [7776] = {.lex_state = 172, .external_lex_state = 2},
  [7777] = {.lex_state = 0, .external_lex_state = 2},
  [7778] = {.lex_state = 9, .external_lex_state = 2},
  [7779] = {.lex_state = 172, .external_lex_state = 2},
  [7780] = {.lex_state = 0, .external_lex_state = 2},
  [7781] = {.lex_state = 9, .external_lex_state = 2},
  [7782] = {.lex_state = 0, .external_lex_state = 2},
  [7783] = {.lex_state = 0, .external_lex_state = 2},
  [7784] = {.lex_state = 0, .external_lex_state = 2},
  [7785] = {.lex_state = 0, .external_lex_state = 2},
  [7786] = {.lex_state = 0, .external_lex_state = 2},
  [7787] = {.lex_state = 0, .external_lex_state = 2},
  [7788] = {.lex_state = 0, .external_lex_state = 2},
  [7789] = {.lex_state = 0, .external_lex_state = 2},
  [7790] = {.lex_state = 0, .external_lex_state = 2},
  [7791] = {.lex_state = 0, .external_lex_state = 2},
  [7792] = {.lex_state = 0, .external_lex_state = 2},
  [7793] = {.lex_state = 0, .external_lex_state = 2},
  [7794] = {.lex_state = 0, .external_lex_state = 2},
  [7795] = {.lex_state = 0, .external_lex_state = 2},
  [7796] = {.lex_state = 0, .external_lex_state = 2},
  [7797] = {.lex_state = 0, .external_lex_state = 2},
  [7798] = {.lex_state = 0, .external_lex_state = 2},
  [7799] = {.lex_state = 172, .external_lex_state = 2},
  [7800] = {.lex_state = 0, .external_lex_state = 2},
  [7801] = {.lex_state = 0, .external_lex_state = 2},
  [7802] = {.lex_state = 0, .external_lex_state = 2},
  [7803] = {.lex_state = 0, .external_lex_state = 2},
  [7804] = {.lex_state = 0, .external_lex_state = 2},
  [7805] = {.lex_state = 0, .external_lex_state = 2},
  [7806] = {.lex_state = 0, .external_lex_state = 2},
  [7807] = {.lex_state = 0, .external_lex_state = 2},
  [7808] = {.lex_state = 0, .external_lex_state = 2},
  [7809] = {.lex_state = 0, .external_lex_state = 2},
  [7810] = {.lex_state = 0, .external_lex_state = 2},
  [7811] = {.lex_state = 0, .external_lex_state = 2},
  [7812] = {.lex_state = 0, .external_lex_state = 2},
  [7813] = {.lex_state = 0, .external_lex_state = 2},
  [7814] = {.lex_state = 0, .external_lex_state = 2},
  [7815] = {.lex_state = 0, .external_lex_state = 2},
  [7816] = {.lex_state = 0, .external_lex_state = 2},
  [7817] = {.lex_state = 0, .external_lex_state = 2},
  [7818] = {.lex_state = 0, .external_lex_state = 2},
  [7819] = {.lex_state = 9, .external_lex_state = 2},
  [7820] = {.lex_state = 0, .external_lex_state = 2},
  [7821] = {.lex_state = 0, .external_lex_state = 2},
  [7822] = {.lex_state = 0, .external_lex_state = 2},
  [7823] = {.lex_state = 0, .external_lex_state = 2},
  [7824] = {.lex_state = 0, .external_lex_state = 2},
  [7825] = {.lex_state = 0, .external_lex_state = 2},
  [7826] = {.lex_state = 0, .external_lex_state = 2},
  [7827] = {.lex_state = 172, .external_lex_state = 2},
  [7828] = {.lex_state = 9, .external_lex_state = 2},
  [7829] = {.lex_state = 0, .external_lex_state = 2},
  [7830] = {.lex_state = 0, .external_lex_state = 2},
  [7831] = {.lex_state = 9, .external_lex_state = 2},
  [7832] = {.lex_state = 9, .external_lex_state = 2},
  [7833] = {.lex_state = 172, .external_lex_state = 2},
  [7834] = {.lex_state = 172, .external_lex_state = 2},
  [7835] = {.lex_state = 9, .external_lex_state = 2},
  [7836] = {.lex_state = 172, .external_lex_state = 2},
  [7837] = {.lex_state = 0, .external_lex_state = 2},
  [7838] = {.lex_state = 0, .external_lex_state = 2},
  [7839] = {.lex_state = 9, .external_lex_state = 2},
  [7840] = {.lex_state = 0, .external_lex_state = 2},
  [7841] = {.lex_state = 0, .external_lex_state = 2},
  [7842] = {.lex_state = 0, .external_lex_state = 2},
  [7843] = {.lex_state = 0, .external_lex_state = 2},
  [7844] = {.lex_state = 0, .external_lex_state = 2},
  [7845] = {.lex_state = 9, .external_lex_state = 2},
  [7846] = {.lex_state = 0, .external_lex_state = 2},
  [7847] = {.lex_state = 0, .external_lex_state = 2},
  [7848] = {.lex_state = 172, .external_lex_state = 2},
  [7849] = {.lex_state = 0, .external_lex_state = 2},
  [7850] = {.lex_state = 9, .external_lex_state = 2},
  [7851] = {.lex_state = 0, .external_lex_state = 2},
  [7852] = {.lex_state = 172, .external_lex_state = 2},
  [7853] = {.lex_state = 9, .external_lex_state = 2},
  [7854] = {.lex_state = 17, .external_lex_state = 2},
  [7855] = {.lex_state = 172, .external_lex_state = 2},
  [7856] = {.lex_state = 0, .external_lex_state = 2},
  [7857] = {.lex_state = 172, .external_lex_state = 2},
  [7858] = {.lex_state = 0, .external_lex_state = 2},
  [7859] = {.lex_state = 9, .external_lex_state = 2},
  [7860] = {.lex_state = 0, .external_lex_state = 2},
  [7861] = {.lex_state = 0, .external_lex_state = 2},
  [7862] = {.lex_state = 0, .external_lex_state = 2},
  [7863] = {.lex_state = 0, .external_lex_state = 2},
  [7864] = {.lex_state = 0, .external_lex_state = 2},
  [7865] = {.lex_state = 0, .external_lex_state = 2},
  [7866] = {.lex_state = 0, .external_lex_state = 2},
  [7867] = {.lex_state = 0, .external_lex_state = 2},
  [7868] = {.lex_state = 0, .external_lex_state = 2},
  [7869] = {.lex_state = 9, .external_lex_state = 2},
  [7870] = {.lex_state = 0, .external_lex_state = 2},
  [7871] = {.lex_state = 0, .external_lex_state = 2},
  [7872] = {.lex_state = 0, .external_lex_state = 2},
  [7873] = {.lex_state = 17, .external_lex_state = 2},
  [7874] = {.lex_state = 9, .external_lex_state = 2},
  [7875] = {.lex_state = 0, .external_lex_state = 2},
  [7876] = {.lex_state = 0, .external_lex_state = 2},
  [7877] = {.lex_state = 9, .external_lex_state = 2},
  [7878] = {.lex_state = 0, .external_lex_state = 2},
  [7879] = {.lex_state = 0, .external_lex_state = 2},
  [7880] = {.lex_state = 0, .external_lex_state = 2},
  [7881] = {.lex_state = 0, .external_lex_state = 2},
  [7882] = {.lex_state = 0, .external_lex_state = 2},
  [7883] = {.lex_state = 0, .external_lex_state = 2},
  [7884] = {.lex_state = 9, .external_lex_state = 2},
  [7885] = {.lex_state = 9, .external_lex_state = 2},
  [7886] = {.lex_state = 0, .external_lex_state = 2},
  [7887] = {.lex_state = 17, .external_lex_state = 2},
  [7888] = {.lex_state = 0, .external_lex_state = 2},
  [7889] = {.lex_state = 0, .external_lex_state = 2},
  [7890] = {.lex_state = 0, .external_lex_state = 2},
  [7891] = {.lex_state = 0, .external_lex_state = 2},
  [7892] = {.lex_state = 0, .external_lex_state = 2},
  [7893] = {.lex_state = 0, .external_lex_state = 2},
  [7894] = {.lex_state = 0, .external_lex_state = 2},
  [7895] = {.lex_state = 9, .external_lex_state = 2},
  [7896] = {.lex_state = 0, .external_lex_state = 2},
  [7897] = {.lex_state = 0, .external_lex_state = 2},
  [7898] = {.lex_state = 9, .external_lex_state = 2},
  [7899] = {.lex_state = 0, .external_lex_state = 2},
  [7900] = {.lex_state = 0, .external_lex_state = 2},
  [7901] = {.lex_state = 0, .external_lex_state = 2},
  [7902] = {.lex_state = 0, .external_lex_state = 2},
  [7903] = {.lex_state = 172, .external_lex_state = 2},
  [7904] = {.lex_state = 9, .external_lex_state = 2},
  [7905] = {.lex_state = 9, .external_lex_state = 2},
  [7906] = {.lex_state = 0, .external_lex_state = 2},
  [7907] = {.lex_state = 0, .external_lex_state = 2},
  [7908] = {.lex_state = 0, .external_lex_state = 2},
  [7909] = {.lex_state = 0, .external_lex_state = 2},
  [7910] = {.lex_state = 0, .external_lex_state = 2},
  [7911] = {.lex_state = 9, .external_lex_state = 2},
  [7912] = {.lex_state = 9, .external_lex_state = 2},
  [7913] = {.lex_state = 0, .external_lex_state = 2},
  [7914] = {.lex_state = 0, .external_lex_state = 2},
  [7915] = {.lex_state = 9, .external_lex_state = 2},
  [7916] = {.lex_state = 0, .external_lex_state = 2},
  [7917] = {.lex_state = 0, .external_lex_state = 2},
  [7918] = {.lex_state = 0, .external_lex_state = 2},
  [7919] = {.lex_state = 0, .external_lex_state = 2},
  [7920] = {.lex_state = 0, .external_lex_state = 2},
  [7921] = {.lex_state = 0, .external_lex_state = 2},
  [7922] = {.lex_state = 0, .external_lex_state = 2},
  [7923] = {.lex_state = 0, .external_lex_state = 2},
  [7924] = {.lex_state = 0, .external_lex_state = 2},
  [7925] = {.lex_state = 0, .external_lex_state = 2},
  [7926] = {.lex_state = 0, .external_lex_state = 2},
  [7927] = {.lex_state = 0, .external_lex_state = 2},
  [7928] = {.lex_state = 9, .external_lex_state = 2},
  [7929] = {.lex_state = 0, .external_lex_state = 2},
  [7930] = {.lex_state = 0, .external_lex_state = 2},
  [7931] = {.lex_state = 9, .external_lex_state = 2},
  [7932] = {.lex_state = 0, .external_lex_state = 2},
  [7933] = {.lex_state = 0, .external_lex_state = 2},
  [7934] = {.lex_state = 0, .external_lex_state = 2},
  [7935] = {.lex_state = 0, .external_lex_state = 2},
  [7936] = {.lex_state = 0, .external_lex_state = 2},
  [7937] = {.lex_state = 0, .external_lex_state = 2},
  [7938] = {.lex_state = 0, .external_lex_state = 2},
  [7939] = {.lex_state = 0, .external_lex_state = 2},
  [7940] = {.lex_state = 0, .external_lex_state = 2},
  [7941] = {.lex_state = 172, .external_lex_state = 2},
  [7942] = {.lex_state = 0, .external_lex_state = 2},
  [7943] = {.lex_state = 0, .external_lex_state = 2},
  [7944] = {.lex_state = 0, .external_lex_state = 2},
  [7945] = {.lex_state = 0, .external_lex_state = 2},
  [7946] = {.lex_state = 0, .external_lex_state = 2},
  [7947] = {.lex_state = 0, .external_lex_state = 2},
  [7948] = {.lex_state = 0, .external_lex_state = 2},
  [7949] = {.lex_state = 0, .external_lex_state = 2},
  [7950] = {.lex_state = 0, .external_lex_state = 2},
  [7951] = {.lex_state = 0, .external_lex_state = 2},
  [7952] = {.lex_state = 0, .external_lex_state = 2},
  [7953] = {.lex_state = 0, .external_lex_state = 2},
  [7954] = {.lex_state = 0, .external_lex_state = 2},
  [7955] = {.lex_state = 0, .external_lex_state = 2},
  [7956] = {.lex_state = 0, .external_lex_state = 2},
  [7957] = {.lex_state = 0, .external_lex_state = 2},
  [7958] = {.lex_state = 0, .external_lex_state = 2},
  [7959] = {.lex_state = 0, .external_lex_state = 2},
  [7960] = {.lex_state = 0, .external_lex_state = 2},
  [7961] = {.lex_state = 0, .external_lex_state = 2},
  [7962] = {.lex_state = 0, .external_lex_state = 2},
  [7963] = {.lex_state = 0, .external_lex_state = 2},
  [7964] = {.lex_state = 0, .external_lex_state = 2},
  [7965] = {.lex_state = 0, .external_lex_state = 2},
  [7966] = {.lex_state = 0, .external_lex_state = 2},
  [7967] = {.lex_state = 0, .external_lex_state = 2},
  [7968] = {.lex_state = 0, .external_lex_state = 2},
  [7969] = {.lex_state = 0, .external_lex_state = 2},
  [7970] = {.lex_state = 0, .external_lex_state = 2},
  [7971] = {.lex_state = 0, .external_lex_state = 2},
  [7972] = {.lex_state = 0, .external_lex_state = 2},
  [7973] = {.lex_state = 0, .external_lex_state = 2},
  [7974] = {.lex_state = 9, .external_lex_state = 2},
  [7975] = {.lex_state = 0, .external_lex_state = 2},
  [7976] = {.lex_state = 0, .external_lex_state = 2},
  [7977] = {.lex_state = 0, .external_lex_state = 2},
  [7978] = {.lex_state = 0, .external_lex_state = 2},
  [7979] = {.lex_state = 0, .external_lex_state = 2},
  [7980] = {.lex_state = 0, .external_lex_state = 2},
  [7981] = {.lex_state = 0, .external_lex_state = 2},
  [7982] = {.lex_state = 0, .external_lex_state = 2},
  [7983] = {.lex_state = 0, .external_lex_state = 2},
  [7984] = {.lex_state = 0, .external_lex_state = 2},
  [7985] = {.lex_state = 0, .external_lex_state = 2},
  [7986] = {.lex_state = 0, .external_lex_state = 2},
  [7987] = {.lex_state = 0, .external_lex_state = 2},
  [7988] = {.lex_state = 0, .external_lex_state = 2},
  [7989] = {.lex_state = 0, .external_lex_state = 2},
  [7990] = {.lex_state = 17, .external_lex_state = 2},
  [7991] = {.lex_state = 0, .external_lex_state = 2},
  [7992] = {.lex_state = 0, .external_lex_state = 2},
  [7993] = {.lex_state = 0, .external_lex_state = 2},
  [7994] = {.lex_state = 0, .external_lex_state = 2},
  [7995] = {.lex_state = 0, .external_lex_state = 2},
  [7996] = {.lex_state = 0, .external_lex_state = 2},
  [7997] = {.lex_state = 0, .external_lex_state = 2},
  [7998] = {.lex_state = 172, .external_lex_state = 2},
  [7999] = {.lex_state = 0, .external_lex_state = 2},
  [8000] = {.lex_state = 0, .external_lex_state = 2},
  [8001] = {.lex_state = 0, .external_lex_state = 2},
  [8002] = {.lex_state = 0, .external_lex_state = 2},
  [8003] = {.lex_state = 0, .external_lex_state = 2},
  [8004] = {.lex_state = 0, .external_lex_state = 2},
  [8005] = {.lex_state = 0, .external_lex_state = 2},
  [8006] = {.lex_state = 0, .external_lex_state = 2},
  [8007] = {.lex_state = 0, .external_lex_state = 2},
  [8008] = {.lex_state = 0, .external_lex_state = 2},
  [8009] = {.lex_state = 172, .external_lex_state = 2},
  [8010] = {.lex_state = 0, .external_lex_state = 2},
  [8011] = {.lex_state = 0, .external_lex_state = 7},
  [8012] = {.lex_state = 172, .external_lex_state = 2},
  [8013] = {.lex_state = 172, .external_lex_state = 2},
  [8014] = {.lex_state = 172, .external_lex_state = 2},
  [8015] = {.lex_state = 172, .external_lex_state = 2},
  [8016] = {.lex_state = 0, .external_lex_state = 2},
  [8017] = {.lex_state = 0, .external_lex_state = 2},
  [8018] = {.lex_state = 0, .external_lex_state = 2},
  [8019] = {.lex_state = 9, .external_lex_state = 2},
  [8020] = {.lex_state = 0, .external_lex_state = 2},
  [8021] = {.lex_state = 0, .external_lex_state = 2},
  [8022] = {.lex_state = 0, .external_lex_state = 2},
  [8023] = {.lex_state = 0, .external_lex_state = 2},
  [8024] = {.lex_state = 0, .external_lex_state = 2},
  [8025] = {.lex_state = 0, .external_lex_state = 2},
  [8026] = {.lex_state = 0, .external_lex_state = 2},
  [8027] = {.lex_state = 9, .external_lex_state = 2},
  [8028] = {.lex_state = 0, .external_lex_state = 2},
  [8029] = {.lex_state = 0, .external_lex_state = 2},
  [8030] = {.lex_state = 0, .external_lex_state = 2},
  [8031] = {.lex_state = 0, .external_lex_state = 2},
  [8032] = {.lex_state = 0, .external_lex_state = 2},
  [8033] = {.lex_state = 0, .external_lex_state = 2},
  [8034] = {.lex_state = 0, .external_lex_state = 2},
  [8035] = {.lex_state = 0, .external_lex_state = 2},
  [8036] = {.lex_state = 0, .external_lex_state = 2},
  [8037] = {.lex_state = 0, .external_lex_state = 2},
  [8038] = {.lex_state = 9, .external_lex_state = 2},
  [8039] = {.lex_state = 0, .external_lex_state = 2},
  [8040] = {.lex_state = 0, .external_lex_state = 2},
  [8041] = {.lex_state = 0, .external_lex_state = 2},
  [8042] = {.lex_state = 0, .external_lex_state = 2},
  [8043] = {.lex_state = 0, .external_lex_state = 2},
  [8044] = {.lex_state = 0, .external_lex_state = 2},
  [8045] = {.lex_state = 0, .external_lex_state = 2},
  [8046] = {.lex_state = 0, .external_lex_state = 2},
  [8047] = {.lex_state = 0, .external_lex_state = 2},
  [8048] = {.lex_state = 0, .external_lex_state = 2},
  [8049] = {.lex_state = 0, .external_lex_state = 2},
  [8050] = {.lex_state = 0, .external_lex_state = 2},
  [8051] = {.lex_state = 0, .external_lex_state = 2},
  [8052] = {.lex_state = 0, .external_lex_state = 2},
  [8053] = {.lex_state = 0, .external_lex_state = 2},
  [8054] = {.lex_state = 0, .external_lex_state = 2},
  [8055] = {.lex_state = 0, .external_lex_state = 2},
  [8056] = {.lex_state = 9, .external_lex_state = 2},
  [8057] = {.lex_state = 0, .external_lex_state = 2},
  [8058] = {.lex_state = 0, .external_lex_state = 2},
  [8059] = {.lex_state = 0, .external_lex_state = 2},
  [8060] = {.lex_state = 0, .external_lex_state = 2},
};

static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
  [0] = {
    [ts_builtin_sym_end] = ACTIONS(1),
    [sym_identifier] = ACTIONS(1),
    [anon_sym_BOM] = ACTIONS(1),
    [aux_sym_escape_sequence_token1] = ACTIONS(1),
    [aux_sym_escape_sequence_token2] = ACTIONS(1),
    [aux_sym_escape_sequence_token3] = ACTIONS(1),
    [aux_sym_escape_sequence_token4] = ACTIONS(1),
    [aux_sym_escape_sequence_token5] = ACTIONS(1),
    [sym_htmlentity] = ACTIONS(1),
    [sym_end_file] = ACTIONS(1),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(1),
    [anon_sym_RBRACE] = ACTIONS(1),
    [anon_sym_LBRACE] = ACTIONS(1),
    [anon_sym_SLASH] = ACTIONS(1),
    [anon_sym_SLASH_EQ] = ACTIONS(1),
    [anon_sym_DOT] = ACTIONS(1),
    [anon_sym_DOT_DOT] = ACTIONS(1),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(1),
    [anon_sym_AMP] = ACTIONS(1),
    [anon_sym_AMP_EQ] = ACTIONS(1),
    [anon_sym_AMP_AMP] = ACTIONS(1),
    [anon_sym_PIPE] = ACTIONS(1),
    [anon_sym_PIPE_EQ] = ACTIONS(1),
    [anon_sym_PIPE_PIPE] = ACTIONS(1),
    [anon_sym_DASH] = ACTIONS(1),
    [anon_sym_DASH_EQ] = ACTIONS(1),
    [anon_sym_DASH_DASH] = ACTIONS(1),
    [anon_sym_PLUS] = ACTIONS(1),
    [anon_sym_PLUS_EQ] = ACTIONS(1),
    [anon_sym_PLUS_PLUS] = ACTIONS(1),
    [anon_sym_LT] = ACTIONS(1),
    [anon_sym_LT_EQ] = ACTIONS(1),
    [anon_sym_LT_LT] = ACTIONS(1),
    [anon_sym_LT_LT_EQ] = ACTIONS(1),
    [anon_sym_GT] = ACTIONS(1),
    [anon_sym_GT_EQ] = ACTIONS(1),
    [anon_sym_GT_GT_EQ] = ACTIONS(1),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(1),
    [anon_sym_GT_GT] = ACTIONS(1),
    [anon_sym_GT_GT_GT] = ACTIONS(1),
    [anon_sym_BANG] = ACTIONS(1),
    [anon_sym_BANG_EQ] = ACTIONS(1),
    [anon_sym_LPAREN] = ACTIONS(1),
    [anon_sym_RPAREN] = ACTIONS(1),
    [anon_sym_LBRACK] = ACTIONS(1),
    [anon_sym_RBRACK] = ACTIONS(1),
    [anon_sym_QMARK] = ACTIONS(1),
    [anon_sym_COMMA] = ACTIONS(1),
    [anon_sym_SEMI] = ACTIONS(1),
    [anon_sym_COLON] = ACTIONS(1),
    [anon_sym_DOLLAR] = ACTIONS(1),
    [anon_sym_EQ] = ACTIONS(1),
    [anon_sym_EQ_EQ] = ACTIONS(1),
    [anon_sym_STAR] = ACTIONS(1),
    [anon_sym_STAR_EQ] = ACTIONS(1),
    [anon_sym_PERCENT] = ACTIONS(1),
    [anon_sym_PERCENT_EQ] = ACTIONS(1),
    [anon_sym_CARET] = ACTIONS(1),
    [anon_sym_CARET_EQ] = ACTIONS(1),
    [anon_sym_CARET_CARET] = ACTIONS(1),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(1),
    [anon_sym_TILDE] = ACTIONS(1),
    [anon_sym_TILDE_EQ] = ACTIONS(1),
    [anon_sym_AT] = ACTIONS(1),
    [anon_sym_EQ_GT] = ACTIONS(1),
    [anon_sym_POUND] = ACTIONS(1),
    [anon_sym_BANGin] = ACTIONS(1),
    [anon_sym_BANGis] = ACTIONS(1),
    [sym_bool] = ACTIONS(1),
    [sym_byte] = ACTIONS(1),
    [sym_ubyte] = ACTIONS(1),
    [sym_char] = ACTIONS(1),
    [sym_short] = ACTIONS(1),
    [sym_ushort] = ACTIONS(1),
    [sym_int] = ACTIONS(1),
    [sym_uint] = ACTIONS(1),
    [sym_long] = ACTIONS(1),
    [sym_ulong] = ACTIONS(1),
    [sym_cent] = ACTIONS(1),
    [sym_ucent] = ACTIONS(1),
    [sym_wchar] = ACTIONS(1),
    [sym_dchar] = ACTIONS(1),
    [sym_float] = ACTIONS(1),
    [sym_double] = ACTIONS(1),
    [sym_real] = ACTIONS(1),
    [sym_ifloat] = ACTIONS(1),
    [sym_idouble] = ACTIONS(1),
    [sym_ireal] = ACTIONS(1),
    [sym_cfloat] = ACTIONS(1),
    [sym_cdouble] = ACTIONS(1),
    [sym_creal] = ACTIONS(1),
    [sym_size_t] = ACTIONS(1),
    [sym_ptrdiff_t] = ACTIONS(1),
    [sym_string] = ACTIONS(1),
    [sym_cstring] = ACTIONS(1),
    [sym_dstring] = ACTIONS(1),
    [sym_wstring] = ACTIONS(1),
    [sym_noreturn] = ACTIONS(1),
    [sym_true] = ACTIONS(1),
    [sym_false] = ACTIONS(1),
    [sym_null] = ACTIONS(1),
    [sym_super] = ACTIONS(1),
    [sym_this] = ACTIONS(1),
    [sym_abstract] = ACTIONS(1),
    [sym_alias] = ACTIONS(1),
    [sym_align] = ACTIONS(1),
    [sym_asm] = ACTIONS(1),
    [sym_assert] = ACTIONS(1),
    [sym_auto] = ACTIONS(1),
    [sym_break] = ACTIONS(1),
    [sym_case] = ACTIONS(1),
    [sym_cast] = ACTIONS(1),
    [sym_catch] = ACTIONS(1),
    [sym_class] = ACTIONS(1),
    [sym_const] = ACTIONS(1),
    [sym_continue] = ACTIONS(1),
    [sym_debug] = ACTIONS(1),
    [sym_default] = ACTIONS(1),
    [sym_delegate] = ACTIONS(1),
    [sym_delete] = ACTIONS(1),
    [sym_deprecated] = ACTIONS(1),
    [sym_do] = ACTIONS(1),
    [sym_else] = ACTIONS(1),
    [sym_enum] = ACTIONS(1),
    [sym_export] = ACTIONS(1),
    [sym_extern] = ACTIONS(1),
    [sym_final] = ACTIONS(1),
    [sym_finally] = ACTIONS(1),
    [sym_for] = ACTIONS(1),
    [sym_foreach] = ACTIONS(1),
    [sym_foreach_reverse] = ACTIONS(1),
    [sym_function] = ACTIONS(1),
    [sym_goto] = ACTIONS(1),
    [sym_if] = ACTIONS(1),
    [sym_immutable] = ACTIONS(1),
    [sym_import] = ACTIONS(1),
    [sym_in] = ACTIONS(1),
    [sym_inout] = ACTIONS(1),
    [sym_interface] = ACTIONS(1),
    [sym_invariant] = ACTIONS(1),
    [sym_is] = ACTIONS(1),
    [sym_lazy] = ACTIONS(1),
    [sym_mixin] = ACTIONS(1),
    [sym_module] = ACTIONS(1),
    [sym_new] = ACTIONS(1),
    [sym_nothrow] = ACTIONS(1),
    [sym_out] = ACTIONS(1),
    [sym_override] = ACTIONS(1),
    [sym_package] = ACTIONS(1),
    [sym_pragma] = ACTIONS(1),
    [sym_private] = ACTIONS(1),
    [sym_protected] = ACTIONS(1),
    [sym_public] = ACTIONS(1),
    [sym_pure] = ACTIONS(1),
    [sym_ref] = ACTIONS(1),
    [sym_return] = ACTIONS(1),
    [sym_scope] = ACTIONS(1),
    [sym_shared] = ACTIONS(1),
    [sym_static] = ACTIONS(1),
    [sym_struct] = ACTIONS(1),
    [sym_switch] = ACTIONS(1),
    [sym_synchronized] = ACTIONS(1),
    [sym_template] = ACTIONS(1),
    [sym_throw] = ACTIONS(1),
    [sym_try] = ACTIONS(1),
    [sym_typeid] = ACTIONS(1),
    [sym_typeof] = ACTIONS(1),
    [sym_union] = ACTIONS(1),
    [sym_unittest] = ACTIONS(1),
    [sym_version] = ACTIONS(1),
    [sym_while] = ACTIONS(1),
    [sym_with] = ACTIONS(1),
    [sym_parameters_] = ACTIONS(1),
    [sym_gshared] = ACTIONS(1),
    [sym_traits] = ACTIONS(1),
    [sym_vector] = ACTIONS(1),
    [sym_void] = ACTIONS(1),
    [anon_sym_C] = ACTIONS(1),
    [anon_sym_D] = ACTIONS(1),
    [anon_sym_Windows] = ACTIONS(1),
    [anon_sym_System] = ACTIONS(1),
    [anon_sym_Objective] = ACTIONS(1),
    [anon_sym_BQUOTE] = ACTIONS(1),
    [anon_sym_r_DQUOTE] = ACTIONS(1),
    [anon_sym_x_DQUOTE] = ACTIONS(1),
    [anon_sym_DQUOTE] = ACTIONS(1),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(1),
    [anon_sym_i_BQUOTE] = ACTIONS(1),
    [sym_interpolated_escape] = ACTIONS(1),
    [anon_sym_i_DQUOTE] = ACTIONS(1),
    [anon_sym_iq_LBRACE] = ACTIONS(1),
    [aux_sym_char_literal_token1] = ACTIONS(1),
    [anon_sym_SQUOTE] = ACTIONS(1),
    [anon_sym___DATE__] = ACTIONS(1),
    [anon_sym___FILE__] = ACTIONS(1),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(1),
    [anon_sym___FUNCTION__] = ACTIONS(1),
    [anon_sym___LINE__] = ACTIONS(1),
    [anon_sym___MODULE__] = ACTIONS(1),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(1),
    [anon_sym___TIME__] = ACTIONS(1),
    [anon_sym___TIMESTAMP__] = ACTIONS(1),
    [anon_sym___VENDOR__] = ACTIONS(1),
    [anon_sym___VERSION__] = ACTIONS(1),
    [anon_sym_exit] = ACTIONS(1),
    [anon_sym_success] = ACTIONS(1),
    [anon_sym_failure] = ACTIONS(1),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(1),
    [sym_float_literal] = ACTIONS(1),
    [sym__string] = ACTIONS(1),
    [sym_not_in] = ACTIONS(1),
    [sym_not_is] = ACTIONS(1),
    [sym__after_eof] = ACTIONS(1),
    [sym_error_sentinel] = ACTIONS(1),
  },
  [1] = {
    [sym_source_file] = STATE(7195),
    [sym__bom] = STATE(1777),
    [sym_module_def] = STATE(6894),
    [sym_module_declaration] = STATE(1812),
    [sym_import_declaration] = STATE(1811),
    [sym_mixin_declaration] = STATE(1811),
    [sym__declaration] = STATE(1811),
    [sym__declaration2] = STATE(1811),
    [sym_variable_declaration] = STATE(1811),
    [sym_manifest_constant] = STATE(1811),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1811),
    [sym_alias_declaration] = STATE(1811),
    [sym_alias_reassign] = STATE(1811),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1811),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2518),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2920),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1811),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1811),
    [sym_union_declaration] = STATE(1811),
    [sym_postblit] = STATE(1811),
    [sym_invariant_declaration] = STATE(1811),
    [sym_class_declaration] = STATE(1811),
    [sym_constructor] = STATE(1811),
    [sym_destructor] = STATE(1811),
    [sym_alias_this] = STATE(1811),
    [sym_interface_declaration] = STATE(1811),
    [sym_enum_declaration] = STATE(1811),
    [sym_anonymous_enum_declaration] = STATE(1811),
    [sym_function_declaration] = STATE(1811),
    [sym_template_declaration] = STATE(1811),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1811),
    [sym_template_mixin] = STATE(1811),
    [sym_conditional_declaration] = STATE(1811),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1811),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1811),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1811),
    [sym_static_assert] = STATE(1811),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1811),
    [aux_sym_source_file_repeat1] = STATE(1811),
    [aux_sym_module_declaration_repeat1] = STATE(5343),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(5),
    [sym_identifier] = ACTIONS(7),
    [anon_sym_BOM] = ACTIONS(9),
    [sym_shebang] = ACTIONS(9),
    [sym_end_file] = ACTIONS(11),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(15),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_module] = ACTIONS(53),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(106),
    [sym_mixin_declaration] = STATE(106),
    [sym__declaration] = STATE(106),
    [sym__declaration2] = STATE(106),
    [sym_variable_declaration] = STATE(106),
    [sym_manifest_constant] = STATE(106),
    [sym_storage_class] = STATE(2996),
    [sym__initializer] = STATE(6918),
    [sym_auto_declaration] = STATE(106),
    [sym_alias_declaration] = STATE(106),
    [sym_alias_reassign] = STATE(106),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(106),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(106),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4158),
    [sym_ternary_expression] = STATE(4158),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4158),
    [sym_binary_expression] = STATE(4158),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(697),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(106),
    [sym_union_declaration] = STATE(106),
    [sym_aggregate_initializer] = STATE(6918),
    [sym_member_initializer] = STATE(5797),
    [sym_postblit] = STATE(106),
    [sym_invariant_declaration] = STATE(106),
    [sym_class_declaration] = STATE(106),
    [sym_constructor] = STATE(106),
    [sym_destructor] = STATE(106),
    [sym_alias_this] = STATE(106),
    [sym_interface_declaration] = STATE(106),
    [sym_enum_declaration] = STATE(106),
    [sym_anonymous_enum_declaration] = STATE(106),
    [sym_function_declaration] = STATE(106),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(106),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(106),
    [sym_template_mixin] = STATE(106),
    [sym_conditional_declaration] = STATE(106),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(106),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(106),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(79),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(83),
    [anon_sym_LBRACE] = ACTIONS(85),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(97),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [3] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(76),
    [sym_mixin_declaration] = STATE(76),
    [sym__declaration] = STATE(76),
    [sym__declaration2] = STATE(76),
    [sym_variable_declaration] = STATE(76),
    [sym_manifest_constant] = STATE(76),
    [sym_storage_class] = STATE(2996),
    [sym__initializer] = STATE(6918),
    [sym_auto_declaration] = STATE(76),
    [sym_alias_declaration] = STATE(76),
    [sym_alias_reassign] = STATE(76),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(76),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(76),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4158),
    [sym_ternary_expression] = STATE(4158),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4158),
    [sym_binary_expression] = STATE(4158),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(697),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(76),
    [sym_union_declaration] = STATE(76),
    [sym_aggregate_initializer] = STATE(6918),
    [sym_member_initializer] = STATE(5797),
    [sym_postblit] = STATE(76),
    [sym_invariant_declaration] = STATE(76),
    [sym_class_declaration] = STATE(76),
    [sym_constructor] = STATE(76),
    [sym_destructor] = STATE(76),
    [sym_alias_this] = STATE(76),
    [sym_interface_declaration] = STATE(76),
    [sym_enum_declaration] = STATE(76),
    [sym_anonymous_enum_declaration] = STATE(76),
    [sym_function_declaration] = STATE(76),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(76),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(76),
    [sym_template_mixin] = STATE(76),
    [sym_conditional_declaration] = STATE(76),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(76),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(76),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(79),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(235),
    [anon_sym_LBRACE] = ACTIONS(85),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(237),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [4] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(68),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(68),
    [aux_sym__declarations_and_statements] = STATE(68),
    [sym__declaration_or_statement] = STATE(68),
    [sym__statement_no_case_no_default] = STATE(68),
    [sym_labeled_statement] = STATE(68),
    [sym_label] = STATE(69),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(68),
    [sym_if_statement] = STATE(68),
    [sym_while_statement] = STATE(68),
    [sym_do_statement] = STATE(68),
    [sym_for_statement] = STATE(68),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(68),
    [sym_switch_statement] = STATE(68),
    [sym_case_statement] = STATE(68),
    [sym_final_switch_statement] = STATE(68),
    [sym_continue_statement] = STATE(68),
    [sym_break_statement] = STATE(68),
    [sym_return_statement] = STATE(68),
    [sym_goto_statement] = STATE(68),
    [sym_with_statement] = STATE(68),
    [sym_synchronized_statement] = STATE(68),
    [sym_try_statement] = STATE(68),
    [sym_scope_guard_statement] = STATE(68),
    [sym_asm_statement] = STATE(68),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(68),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(68),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1872),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(241),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [5] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(31),
    [sym_mixin_declaration] = STATE(31),
    [sym__declaration] = STATE(31),
    [sym__declaration2] = STATE(31),
    [sym_variable_declaration] = STATE(31),
    [sym_manifest_constant] = STATE(31),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(31),
    [sym_alias_declaration] = STATE(31),
    [sym_alias_reassign] = STATE(31),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(31),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(31),
    [sym_pragma_statement] = STATE(31),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(31),
    [sym_labeled_statement] = STATE(31),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(31),
    [sym_if_statement] = STATE(31),
    [sym_while_statement] = STATE(31),
    [sym_do_statement] = STATE(31),
    [sym_for_statement] = STATE(31),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(31),
    [sym_switch_statement] = STATE(31),
    [sym_final_switch_statement] = STATE(31),
    [sym_continue_statement] = STATE(31),
    [sym_break_statement] = STATE(31),
    [sym_return_statement] = STATE(31),
    [sym_goto_statement] = STATE(31),
    [sym_with_statement] = STATE(31),
    [sym_synchronized_statement] = STATE(31),
    [sym_try_statement] = STATE(31),
    [sym_scope_guard_statement] = STATE(31),
    [sym_asm_statement] = STATE(31),
    [sym_struct_declaration] = STATE(31),
    [sym_union_declaration] = STATE(31),
    [sym_postblit] = STATE(31),
    [sym_invariant_declaration] = STATE(31),
    [sym_class_declaration] = STATE(31),
    [sym_constructor] = STATE(31),
    [sym_destructor] = STATE(31),
    [sym_alias_this] = STATE(31),
    [sym_interface_declaration] = STATE(31),
    [sym_enum_declaration] = STATE(31),
    [sym_anonymous_enum_declaration] = STATE(31),
    [sym_function_declaration] = STATE(31),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(31),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(31),
    [sym_template_mixin] = STATE(31),
    [sym_conditional_declaration] = STATE(31),
    [sym_conditional_statement] = STATE(31),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(31),
    [sym_static_foreach_declaration] = STATE(31),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(31),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(31),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(255),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(267),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(267),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(267),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [6] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2070),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(327),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [7] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2082),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(329),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [8] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1829),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(331),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [9] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1894),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(333),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [10] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1870),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(335),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [11] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1944),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(337),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [12] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2055),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(339),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [13] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1853),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(341),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [14] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1985),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(343),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [15] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2040),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(345),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [16] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2055),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(347),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [17] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1846),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(349),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [18] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1828),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(351),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [19] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(68),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(68),
    [aux_sym__declarations_and_statements] = STATE(68),
    [sym__declaration_or_statement] = STATE(68),
    [sym__statement_no_case_no_default] = STATE(68),
    [sym_labeled_statement] = STATE(68),
    [sym_label] = STATE(69),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(68),
    [sym_if_statement] = STATE(68),
    [sym_while_statement] = STATE(68),
    [sym_do_statement] = STATE(68),
    [sym_for_statement] = STATE(68),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(68),
    [sym_switch_statement] = STATE(68),
    [sym_case_statement] = STATE(68),
    [sym_final_switch_statement] = STATE(68),
    [sym_continue_statement] = STATE(68),
    [sym_break_statement] = STATE(68),
    [sym_return_statement] = STATE(68),
    [sym_goto_statement] = STATE(68),
    [sym_with_statement] = STATE(68),
    [sym_synchronized_statement] = STATE(68),
    [sym_try_statement] = STATE(68),
    [sym_scope_guard_statement] = STATE(68),
    [sym_asm_statement] = STATE(68),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(68),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(68),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1873),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(353),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [20] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1985),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(355),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [21] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5),
    [sym_mixin_declaration] = STATE(5),
    [sym__declaration] = STATE(5),
    [sym__declaration2] = STATE(5),
    [sym_variable_declaration] = STATE(5),
    [sym_manifest_constant] = STATE(5),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(5),
    [sym_alias_declaration] = STATE(5),
    [sym_alias_reassign] = STATE(5),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5),
    [sym_pragma_statement] = STATE(5),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(5),
    [sym_labeled_statement] = STATE(5),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(5),
    [sym_if_statement] = STATE(5),
    [sym_while_statement] = STATE(5),
    [sym_do_statement] = STATE(5),
    [sym_for_statement] = STATE(5),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(5),
    [sym_switch_statement] = STATE(5),
    [sym_final_switch_statement] = STATE(5),
    [sym_continue_statement] = STATE(5),
    [sym_break_statement] = STATE(5),
    [sym_return_statement] = STATE(5),
    [sym_goto_statement] = STATE(5),
    [sym_with_statement] = STATE(5),
    [sym_synchronized_statement] = STATE(5),
    [sym_try_statement] = STATE(5),
    [sym_scope_guard_statement] = STATE(5),
    [sym_asm_statement] = STATE(5),
    [sym_struct_declaration] = STATE(5),
    [sym_union_declaration] = STATE(5),
    [sym_postblit] = STATE(5),
    [sym_invariant_declaration] = STATE(5),
    [sym_class_declaration] = STATE(5),
    [sym_constructor] = STATE(5),
    [sym_destructor] = STATE(5),
    [sym_alias_this] = STATE(5),
    [sym_interface_declaration] = STATE(5),
    [sym_enum_declaration] = STATE(5),
    [sym_anonymous_enum_declaration] = STATE(5),
    [sym_function_declaration] = STATE(5),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5),
    [sym_template_mixin] = STATE(5),
    [sym_conditional_declaration] = STATE(5),
    [sym_conditional_statement] = STATE(5),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5),
    [sym_static_foreach_declaration] = STATE(5),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(5),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(357),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(357),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(359),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(361),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(361),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(361),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(361),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(361),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [22] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2086),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(363),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [23] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(30),
    [sym_mixin_declaration] = STATE(30),
    [sym__declaration] = STATE(30),
    [sym__declaration2] = STATE(30),
    [sym_variable_declaration] = STATE(30),
    [sym_manifest_constant] = STATE(30),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(30),
    [sym_alias_declaration] = STATE(30),
    [sym_alias_reassign] = STATE(30),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(30),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(30),
    [sym_pragma_statement] = STATE(30),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(30),
    [sym_labeled_statement] = STATE(30),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(30),
    [sym_if_statement] = STATE(30),
    [sym_while_statement] = STATE(30),
    [sym_do_statement] = STATE(30),
    [sym_for_statement] = STATE(30),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(30),
    [sym_switch_statement] = STATE(30),
    [sym_final_switch_statement] = STATE(30),
    [sym_continue_statement] = STATE(30),
    [sym_break_statement] = STATE(30),
    [sym_return_statement] = STATE(30),
    [sym_goto_statement] = STATE(30),
    [sym_with_statement] = STATE(30),
    [sym_synchronized_statement] = STATE(30),
    [sym_try_statement] = STATE(30),
    [sym_scope_guard_statement] = STATE(30),
    [sym_asm_statement] = STATE(30),
    [sym_struct_declaration] = STATE(30),
    [sym_union_declaration] = STATE(30),
    [sym_postblit] = STATE(30),
    [sym_invariant_declaration] = STATE(30),
    [sym_class_declaration] = STATE(30),
    [sym_constructor] = STATE(30),
    [sym_destructor] = STATE(30),
    [sym_alias_this] = STATE(30),
    [sym_interface_declaration] = STATE(30),
    [sym_enum_declaration] = STATE(30),
    [sym_anonymous_enum_declaration] = STATE(30),
    [sym_function_declaration] = STATE(30),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(30),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(30),
    [sym_template_mixin] = STATE(30),
    [sym_conditional_declaration] = STATE(30),
    [sym_conditional_statement] = STATE(30),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(30),
    [sym_static_foreach_declaration] = STATE(30),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(30),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(30),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(365),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(267),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(267),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(267),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [24] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1843),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(367),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [25] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(68),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(68),
    [aux_sym__declarations_and_statements] = STATE(68),
    [sym__declaration_or_statement] = STATE(68),
    [sym__statement_no_case_no_default] = STATE(68),
    [sym_labeled_statement] = STATE(68),
    [sym_label] = STATE(69),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(68),
    [sym_if_statement] = STATE(68),
    [sym_while_statement] = STATE(68),
    [sym_do_statement] = STATE(68),
    [sym_for_statement] = STATE(68),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(68),
    [sym_switch_statement] = STATE(68),
    [sym_case_statement] = STATE(68),
    [sym_final_switch_statement] = STATE(68),
    [sym_continue_statement] = STATE(68),
    [sym_break_statement] = STATE(68),
    [sym_return_statement] = STATE(68),
    [sym_goto_statement] = STATE(68),
    [sym_with_statement] = STATE(68),
    [sym_synchronized_statement] = STATE(68),
    [sym_try_statement] = STATE(68),
    [sym_scope_guard_statement] = STATE(68),
    [sym_asm_statement] = STATE(68),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(68),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(68),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1876),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(369),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [26] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(68),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(68),
    [aux_sym__declarations_and_statements] = STATE(68),
    [sym__declaration_or_statement] = STATE(68),
    [sym__statement_no_case_no_default] = STATE(68),
    [sym_labeled_statement] = STATE(68),
    [sym_label] = STATE(69),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(68),
    [sym_if_statement] = STATE(68),
    [sym_while_statement] = STATE(68),
    [sym_do_statement] = STATE(68),
    [sym_for_statement] = STATE(68),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(68),
    [sym_switch_statement] = STATE(68),
    [sym_case_statement] = STATE(68),
    [sym_final_switch_statement] = STATE(68),
    [sym_continue_statement] = STATE(68),
    [sym_break_statement] = STATE(68),
    [sym_return_statement] = STATE(68),
    [sym_goto_statement] = STATE(68),
    [sym_with_statement] = STATE(68),
    [sym_synchronized_statement] = STATE(68),
    [sym_try_statement] = STATE(68),
    [sym_scope_guard_statement] = STATE(68),
    [sym_asm_statement] = STATE(68),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(68),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(68),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1873),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(371),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [27] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(68),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(68),
    [aux_sym__declarations_and_statements] = STATE(68),
    [sym__declaration_or_statement] = STATE(68),
    [sym__statement_no_case_no_default] = STATE(68),
    [sym_labeled_statement] = STATE(68),
    [sym_label] = STATE(69),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(68),
    [sym_if_statement] = STATE(68),
    [sym_while_statement] = STATE(68),
    [sym_do_statement] = STATE(68),
    [sym_for_statement] = STATE(68),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(68),
    [sym_switch_statement] = STATE(68),
    [sym_case_statement] = STATE(68),
    [sym_final_switch_statement] = STATE(68),
    [sym_continue_statement] = STATE(68),
    [sym_break_statement] = STATE(68),
    [sym_return_statement] = STATE(68),
    [sym_goto_statement] = STATE(68),
    [sym_with_statement] = STATE(68),
    [sym_synchronized_statement] = STATE(68),
    [sym_try_statement] = STATE(68),
    [sym_scope_guard_statement] = STATE(68),
    [sym_asm_statement] = STATE(68),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(68),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(68),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1827),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(373),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [28] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(68),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(68),
    [aux_sym__declarations_and_statements] = STATE(68),
    [sym__declaration_or_statement] = STATE(68),
    [sym__statement_no_case_no_default] = STATE(68),
    [sym_labeled_statement] = STATE(68),
    [sym_label] = STATE(69),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(68),
    [sym_if_statement] = STATE(68),
    [sym_while_statement] = STATE(68),
    [sym_do_statement] = STATE(68),
    [sym_for_statement] = STATE(68),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(68),
    [sym_switch_statement] = STATE(68),
    [sym_case_statement] = STATE(68),
    [sym_final_switch_statement] = STATE(68),
    [sym_continue_statement] = STATE(68),
    [sym_break_statement] = STATE(68),
    [sym_return_statement] = STATE(68),
    [sym_goto_statement] = STATE(68),
    [sym_with_statement] = STATE(68),
    [sym_synchronized_statement] = STATE(68),
    [sym_try_statement] = STATE(68),
    [sym_scope_guard_statement] = STATE(68),
    [sym_asm_statement] = STATE(68),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(68),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(68),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1882),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(375),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [29] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(32),
    [sym_mixin_declaration] = STATE(32),
    [sym__declaration] = STATE(32),
    [sym__declaration2] = STATE(32),
    [sym_variable_declaration] = STATE(32),
    [sym_manifest_constant] = STATE(32),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(32),
    [sym_alias_declaration] = STATE(32),
    [sym_alias_reassign] = STATE(32),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(32),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(32),
    [sym_pragma_statement] = STATE(32),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(32),
    [sym_labeled_statement] = STATE(32),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(32),
    [sym_if_statement] = STATE(32),
    [sym_while_statement] = STATE(32),
    [sym_do_statement] = STATE(32),
    [sym_for_statement] = STATE(32),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(32),
    [sym_switch_statement] = STATE(32),
    [sym_final_switch_statement] = STATE(32),
    [sym_continue_statement] = STATE(32),
    [sym_break_statement] = STATE(32),
    [sym_return_statement] = STATE(32),
    [sym_goto_statement] = STATE(32),
    [sym_with_statement] = STATE(32),
    [sym_synchronized_statement] = STATE(32),
    [sym_try_statement] = STATE(32),
    [sym_scope_guard_statement] = STATE(32),
    [sym_asm_statement] = STATE(32),
    [sym_struct_declaration] = STATE(32),
    [sym_union_declaration] = STATE(32),
    [sym_postblit] = STATE(32),
    [sym_invariant_declaration] = STATE(32),
    [sym_class_declaration] = STATE(32),
    [sym_constructor] = STATE(32),
    [sym_destructor] = STATE(32),
    [sym_alias_this] = STATE(32),
    [sym_interface_declaration] = STATE(32),
    [sym_enum_declaration] = STATE(32),
    [sym_anonymous_enum_declaration] = STATE(32),
    [sym_function_declaration] = STATE(32),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(32),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(32),
    [sym_template_mixin] = STATE(32),
    [sym_conditional_declaration] = STATE(32),
    [sym_conditional_statement] = STATE(32),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(32),
    [sym_static_foreach_declaration] = STATE(32),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(32),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(32),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(379),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(381),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(381),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(381),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [30] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(31),
    [sym_mixin_declaration] = STATE(31),
    [sym__declaration] = STATE(31),
    [sym__declaration2] = STATE(31),
    [sym_variable_declaration] = STATE(31),
    [sym_manifest_constant] = STATE(31),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(31),
    [sym_alias_declaration] = STATE(31),
    [sym_alias_reassign] = STATE(31),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(31),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(31),
    [sym_pragma_statement] = STATE(31),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(31),
    [sym_labeled_statement] = STATE(31),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(31),
    [sym_if_statement] = STATE(31),
    [sym_while_statement] = STATE(31),
    [sym_do_statement] = STATE(31),
    [sym_for_statement] = STATE(31),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(31),
    [sym_switch_statement] = STATE(31),
    [sym_final_switch_statement] = STATE(31),
    [sym_continue_statement] = STATE(31),
    [sym_break_statement] = STATE(31),
    [sym_return_statement] = STATE(31),
    [sym_goto_statement] = STATE(31),
    [sym_with_statement] = STATE(31),
    [sym_synchronized_statement] = STATE(31),
    [sym_try_statement] = STATE(31),
    [sym_scope_guard_statement] = STATE(31),
    [sym_asm_statement] = STATE(31),
    [sym_struct_declaration] = STATE(31),
    [sym_union_declaration] = STATE(31),
    [sym_postblit] = STATE(31),
    [sym_invariant_declaration] = STATE(31),
    [sym_class_declaration] = STATE(31),
    [sym_constructor] = STATE(31),
    [sym_destructor] = STATE(31),
    [sym_alias_this] = STATE(31),
    [sym_interface_declaration] = STATE(31),
    [sym_enum_declaration] = STATE(31),
    [sym_anonymous_enum_declaration] = STATE(31),
    [sym_function_declaration] = STATE(31),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(31),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(31),
    [sym_template_mixin] = STATE(31),
    [sym_conditional_declaration] = STATE(31),
    [sym_conditional_statement] = STATE(31),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(31),
    [sym_static_foreach_declaration] = STATE(31),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(31),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(31),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(255),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(381),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(381),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(381),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [31] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(31),
    [sym_mixin_declaration] = STATE(31),
    [sym__declaration] = STATE(31),
    [sym__declaration2] = STATE(31),
    [sym_variable_declaration] = STATE(31),
    [sym_manifest_constant] = STATE(31),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(31),
    [sym_alias_declaration] = STATE(31),
    [sym_alias_reassign] = STATE(31),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(31),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(31),
    [sym_pragma_statement] = STATE(31),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(31),
    [sym_labeled_statement] = STATE(31),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(31),
    [sym_if_statement] = STATE(31),
    [sym_while_statement] = STATE(31),
    [sym_do_statement] = STATE(31),
    [sym_for_statement] = STATE(31),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(31),
    [sym_switch_statement] = STATE(31),
    [sym_final_switch_statement] = STATE(31),
    [sym_continue_statement] = STATE(31),
    [sym_break_statement] = STATE(31),
    [sym_return_statement] = STATE(31),
    [sym_goto_statement] = STATE(31),
    [sym_with_statement] = STATE(31),
    [sym_synchronized_statement] = STATE(31),
    [sym_try_statement] = STATE(31),
    [sym_scope_guard_statement] = STATE(31),
    [sym_asm_statement] = STATE(31),
    [sym_struct_declaration] = STATE(31),
    [sym_union_declaration] = STATE(31),
    [sym_postblit] = STATE(31),
    [sym_invariant_declaration] = STATE(31),
    [sym_class_declaration] = STATE(31),
    [sym_constructor] = STATE(31),
    [sym_destructor] = STATE(31),
    [sym_alias_this] = STATE(31),
    [sym_interface_declaration] = STATE(31),
    [sym_enum_declaration] = STATE(31),
    [sym_anonymous_enum_declaration] = STATE(31),
    [sym_function_declaration] = STATE(31),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(31),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(31),
    [sym_template_mixin] = STATE(31),
    [sym_conditional_declaration] = STATE(31),
    [sym_conditional_statement] = STATE(31),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(31),
    [sym_static_foreach_declaration] = STATE(31),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(31),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(31),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(383),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(386),
    [anon_sym_RBRACE] = ACTIONS(389),
    [anon_sym_LBRACE] = ACTIONS(391),
    [anon_sym_DOT] = ACTIONS(394),
    [anon_sym_AMP] = ACTIONS(397),
    [anon_sym_DASH] = ACTIONS(400),
    [anon_sym_DASH_DASH] = ACTIONS(397),
    [anon_sym_PLUS] = ACTIONS(400),
    [anon_sym_PLUS_PLUS] = ACTIONS(397),
    [anon_sym_BANG] = ACTIONS(397),
    [anon_sym_LPAREN] = ACTIONS(403),
    [anon_sym_RPAREN] = ACTIONS(389),
    [anon_sym_LBRACK] = ACTIONS(406),
    [anon_sym_SEMI] = ACTIONS(409),
    [anon_sym_DOLLAR] = ACTIONS(412),
    [anon_sym_STAR] = ACTIONS(397),
    [anon_sym_TILDE] = ACTIONS(415),
    [anon_sym_AT] = ACTIONS(418),
    [sym_bool] = ACTIONS(421),
    [sym_byte] = ACTIONS(421),
    [sym_ubyte] = ACTIONS(421),
    [sym_char] = ACTIONS(421),
    [sym_short] = ACTIONS(421),
    [sym_ushort] = ACTIONS(421),
    [sym_int] = ACTIONS(421),
    [sym_uint] = ACTIONS(421),
    [sym_long] = ACTIONS(421),
    [sym_ulong] = ACTIONS(421),
    [sym_cent] = ACTIONS(421),
    [sym_ucent] = ACTIONS(421),
    [sym_wchar] = ACTIONS(421),
    [sym_dchar] = ACTIONS(421),
    [sym_float] = ACTIONS(421),
    [sym_double] = ACTIONS(421),
    [sym_real] = ACTIONS(421),
    [sym_ifloat] = ACTIONS(421),
    [sym_idouble] = ACTIONS(421),
    [sym_ireal] = ACTIONS(421),
    [sym_cfloat] = ACTIONS(421),
    [sym_cdouble] = ACTIONS(421),
    [sym_creal] = ACTIONS(421),
    [sym_size_t] = ACTIONS(421),
    [sym_ptrdiff_t] = ACTIONS(421),
    [sym_string] = ACTIONS(421),
    [sym_cstring] = ACTIONS(421),
    [sym_dstring] = ACTIONS(421),
    [sym_wstring] = ACTIONS(421),
    [sym_noreturn] = ACTIONS(421),
    [sym_true] = ACTIONS(424),
    [sym_false] = ACTIONS(424),
    [sym_null] = ACTIONS(424),
    [sym_super] = ACTIONS(424),
    [sym_this] = ACTIONS(427),
    [sym_abstract] = ACTIONS(430),
    [sym_alias] = ACTIONS(433),
    [sym_align] = ACTIONS(436),
    [sym_asm] = ACTIONS(439),
    [sym_assert] = ACTIONS(442),
    [sym_auto] = ACTIONS(445),
    [sym_break] = ACTIONS(448),
    [sym_case] = ACTIONS(451),
    [sym_cast] = ACTIONS(453),
    [sym_catch] = ACTIONS(451),
    [sym_class] = ACTIONS(456),
    [sym_const] = ACTIONS(459),
    [sym_continue] = ACTIONS(462),
    [sym_debug] = ACTIONS(465),
    [sym_default] = ACTIONS(451),
    [sym_delegate] = ACTIONS(468),
    [sym_delete] = ACTIONS(471),
    [sym_deprecated] = ACTIONS(474),
    [sym_do] = ACTIONS(477),
    [sym_else] = ACTIONS(451),
    [sym_enum] = ACTIONS(480),
    [sym_export] = ACTIONS(483),
    [sym_extern] = ACTIONS(486),
    [sym_final] = ACTIONS(489),
    [sym_finally] = ACTIONS(451),
    [sym_for] = ACTIONS(492),
    [sym_foreach] = ACTIONS(495),
    [sym_foreach_reverse] = ACTIONS(495),
    [sym_function] = ACTIONS(498),
    [sym_goto] = ACTIONS(501),
    [sym_if] = ACTIONS(504),
    [sym_immutable] = ACTIONS(459),
    [sym_import] = ACTIONS(507),
    [sym_in] = ACTIONS(510),
    [sym_inout] = ACTIONS(459),
    [sym_interface] = ACTIONS(513),
    [sym_invariant] = ACTIONS(516),
    [sym_is] = ACTIONS(519),
    [sym_mixin] = ACTIONS(522),
    [sym_new] = ACTIONS(525),
    [sym_nothrow] = ACTIONS(430),
    [sym_out] = ACTIONS(528),
    [sym_override] = ACTIONS(430),
    [sym_package] = ACTIONS(531),
    [sym_pragma] = ACTIONS(534),
    [sym_private] = ACTIONS(483),
    [sym_protected] = ACTIONS(483),
    [sym_public] = ACTIONS(483),
    [sym_pure] = ACTIONS(430),
    [sym_ref] = ACTIONS(537),
    [sym_return] = ACTIONS(540),
    [sym_scope] = ACTIONS(543),
    [sym_shared] = ACTIONS(546),
    [sym_static] = ACTIONS(549),
    [sym_struct] = ACTIONS(552),
    [sym_switch] = ACTIONS(555),
    [sym_synchronized] = ACTIONS(558),
    [sym_template] = ACTIONS(561),
    [sym_throw] = ACTIONS(564),
    [sym_try] = ACTIONS(567),
    [sym_typeid] = ACTIONS(570),
    [sym_typeof] = ACTIONS(573),
    [sym_union] = ACTIONS(576),
    [sym_unittest] = ACTIONS(579),
    [sym_version] = ACTIONS(582),
    [sym_while] = ACTIONS(585),
    [sym_with] = ACTIONS(588),
    [sym_gshared] = ACTIONS(430),
    [sym_traits] = ACTIONS(591),
    [sym_vector] = ACTIONS(594),
    [sym_void] = ACTIONS(597),
    [anon_sym_BQUOTE] = ACTIONS(600),
    [anon_sym_r_DQUOTE] = ACTIONS(603),
    [anon_sym_x_DQUOTE] = ACTIONS(606),
    [anon_sym_DQUOTE] = ACTIONS(609),
    [anon_sym_i_BQUOTE] = ACTIONS(612),
    [anon_sym_i_DQUOTE] = ACTIONS(615),
    [anon_sym_iq_LBRACE] = ACTIONS(618),
    [aux_sym_char_literal_token1] = ACTIONS(621),
    [anon_sym_SQUOTE] = ACTIONS(624),
    [anon_sym___DATE__] = ACTIONS(627),
    [anon_sym___FILE__] = ACTIONS(627),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(627),
    [anon_sym___FUNCTION__] = ACTIONS(627),
    [anon_sym___LINE__] = ACTIONS(627),
    [anon_sym___MODULE__] = ACTIONS(627),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(627),
    [anon_sym___TIME__] = ACTIONS(627),
    [anon_sym___TIMESTAMP__] = ACTIONS(627),
    [anon_sym___VENDOR__] = ACTIONS(627),
    [anon_sym___VERSION__] = ACTIONS(627),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(630),
    [sym_float_literal] = ACTIONS(630),
    [sym__string] = ACTIONS(633),
  },
  [32] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(31),
    [sym_mixin_declaration] = STATE(31),
    [sym__declaration] = STATE(31),
    [sym__declaration2] = STATE(31),
    [sym_variable_declaration] = STATE(31),
    [sym_manifest_constant] = STATE(31),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(31),
    [sym_alias_declaration] = STATE(31),
    [sym_alias_reassign] = STATE(31),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(31),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(31),
    [sym_pragma_statement] = STATE(31),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(31),
    [sym_labeled_statement] = STATE(31),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(31),
    [sym_if_statement] = STATE(31),
    [sym_while_statement] = STATE(31),
    [sym_do_statement] = STATE(31),
    [sym_for_statement] = STATE(31),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(31),
    [sym_switch_statement] = STATE(31),
    [sym_final_switch_statement] = STATE(31),
    [sym_continue_statement] = STATE(31),
    [sym_break_statement] = STATE(31),
    [sym_return_statement] = STATE(31),
    [sym_goto_statement] = STATE(31),
    [sym_with_statement] = STATE(31),
    [sym_synchronized_statement] = STATE(31),
    [sym_try_statement] = STATE(31),
    [sym_scope_guard_statement] = STATE(31),
    [sym_asm_statement] = STATE(31),
    [sym_struct_declaration] = STATE(31),
    [sym_union_declaration] = STATE(31),
    [sym_postblit] = STATE(31),
    [sym_invariant_declaration] = STATE(31),
    [sym_class_declaration] = STATE(31),
    [sym_constructor] = STATE(31),
    [sym_destructor] = STATE(31),
    [sym_alias_this] = STATE(31),
    [sym_interface_declaration] = STATE(31),
    [sym_enum_declaration] = STATE(31),
    [sym_anonymous_enum_declaration] = STATE(31),
    [sym_function_declaration] = STATE(31),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(31),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(31),
    [sym_template_mixin] = STATE(31),
    [sym_conditional_declaration] = STATE(31),
    [sym_conditional_statement] = STATE(31),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(31),
    [sym_static_foreach_declaration] = STATE(31),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(31),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(31),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(636),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(636),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(255),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(638),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(638),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(638),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(638),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(638),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [33] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(34),
    [sym_mixin_declaration] = STATE(34),
    [sym__declaration] = STATE(34),
    [sym__declaration2] = STATE(34),
    [sym_variable_declaration] = STATE(34),
    [sym_manifest_constant] = STATE(34),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(34),
    [sym_alias_declaration] = STATE(34),
    [sym_alias_reassign] = STATE(34),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(34),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(34),
    [sym_pragma_statement] = STATE(34),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(34),
    [sym_labeled_statement] = STATE(34),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(34),
    [sym_if_statement] = STATE(34),
    [sym_while_statement] = STATE(34),
    [sym_do_statement] = STATE(34),
    [sym_for_statement] = STATE(34),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(34),
    [sym_switch_statement] = STATE(34),
    [sym_final_switch_statement] = STATE(34),
    [sym_continue_statement] = STATE(34),
    [sym_break_statement] = STATE(34),
    [sym_return_statement] = STATE(34),
    [sym_goto_statement] = STATE(34),
    [sym_with_statement] = STATE(34),
    [sym_synchronized_statement] = STATE(34),
    [sym_try_statement] = STATE(34),
    [sym_scope_guard_statement] = STATE(34),
    [sym_asm_statement] = STATE(34),
    [sym_struct_declaration] = STATE(34),
    [sym_union_declaration] = STATE(34),
    [sym_postblit] = STATE(34),
    [sym_invariant_declaration] = STATE(34),
    [sym_class_declaration] = STATE(34),
    [sym_constructor] = STATE(34),
    [sym_destructor] = STATE(34),
    [sym_alias_this] = STATE(34),
    [sym_interface_declaration] = STATE(34),
    [sym_enum_declaration] = STATE(34),
    [sym_anonymous_enum_declaration] = STATE(34),
    [sym_function_declaration] = STATE(34),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(34),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(34),
    [sym_template_mixin] = STATE(34),
    [sym_conditional_declaration] = STATE(34),
    [sym_conditional_statement] = STATE(34),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(34),
    [sym_static_foreach_declaration] = STATE(34),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(34),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(34),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(640),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(640),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(642),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(644),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(644),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(644),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(644),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(644),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [34] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(31),
    [sym_mixin_declaration] = STATE(31),
    [sym__declaration] = STATE(31),
    [sym__declaration2] = STATE(31),
    [sym_variable_declaration] = STATE(31),
    [sym_manifest_constant] = STATE(31),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(31),
    [sym_alias_declaration] = STATE(31),
    [sym_alias_reassign] = STATE(31),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(31),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(31),
    [sym_pragma_statement] = STATE(31),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(31),
    [sym_labeled_statement] = STATE(31),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(31),
    [sym_if_statement] = STATE(31),
    [sym_while_statement] = STATE(31),
    [sym_do_statement] = STATE(31),
    [sym_for_statement] = STATE(31),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(31),
    [sym_switch_statement] = STATE(31),
    [sym_final_switch_statement] = STATE(31),
    [sym_continue_statement] = STATE(31),
    [sym_break_statement] = STATE(31),
    [sym_return_statement] = STATE(31),
    [sym_goto_statement] = STATE(31),
    [sym_with_statement] = STATE(31),
    [sym_synchronized_statement] = STATE(31),
    [sym_try_statement] = STATE(31),
    [sym_scope_guard_statement] = STATE(31),
    [sym_asm_statement] = STATE(31),
    [sym_struct_declaration] = STATE(31),
    [sym_union_declaration] = STATE(31),
    [sym_postblit] = STATE(31),
    [sym_invariant_declaration] = STATE(31),
    [sym_class_declaration] = STATE(31),
    [sym_constructor] = STATE(31),
    [sym_destructor] = STATE(31),
    [sym_alias_this] = STATE(31),
    [sym_interface_declaration] = STATE(31),
    [sym_enum_declaration] = STATE(31),
    [sym_anonymous_enum_declaration] = STATE(31),
    [sym_function_declaration] = STATE(31),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(31),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(31),
    [sym_template_mixin] = STATE(31),
    [sym_conditional_declaration] = STATE(31),
    [sym_conditional_statement] = STATE(31),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(31),
    [sym_static_foreach_declaration] = STATE(31),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(31),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(31),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(646),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(646),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(255),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(648),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(648),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(648),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_else] = ACTIONS(648),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_finally] = ACTIONS(648),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [35] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2036),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(333),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [36] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1944),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(650),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [37] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1846),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(652),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [38] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1952),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(367),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [39] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1939),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(327),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [40] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1936),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(329),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [41] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2040),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(654),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [42] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2096),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(656),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [43] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(2038),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(658),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [44] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1768),
    [sym_mixin_declaration] = STATE(1768),
    [sym__declaration] = STATE(1768),
    [sym__declaration2] = STATE(1768),
    [sym_variable_declaration] = STATE(1768),
    [sym_manifest_constant] = STATE(1768),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1768),
    [sym_alias_declaration] = STATE(1768),
    [sym_alias_reassign] = STATE(1768),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1768),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1768),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(1768),
    [sym_union_declaration] = STATE(1768),
    [sym_postblit] = STATE(1768),
    [sym_invariant_declaration] = STATE(1768),
    [sym_class_declaration] = STATE(1768),
    [sym_constructor] = STATE(1768),
    [sym_destructor] = STATE(1768),
    [sym_alias_this] = STATE(1768),
    [sym_interface_declaration] = STATE(1768),
    [sym_enum_declaration] = STATE(1768),
    [sym_anonymous_enum_declaration] = STATE(1768),
    [sym_function_declaration] = STATE(1768),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1768),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1768),
    [sym_template_mixin] = STATE(1768),
    [sym_conditional_declaration] = STATE(1768),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(1768),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1768),
    [aux_sym_source_file_repeat1] = STATE(1953),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(660),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(245),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [45] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(662),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [46] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(666),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [47] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(50),
    [sym_mixin_declaration] = STATE(50),
    [sym__declaration] = STATE(50),
    [sym__declaration2] = STATE(50),
    [sym_variable_declaration] = STATE(50),
    [sym_manifest_constant] = STATE(50),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(50),
    [sym_alias_declaration] = STATE(50),
    [sym_alias_reassign] = STATE(50),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(50),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(50),
    [sym_pragma_statement] = STATE(50),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(50),
    [aux_sym__declarations_and_statements] = STATE(50),
    [sym__declaration_or_statement] = STATE(50),
    [sym__statement_no_case_no_default] = STATE(50),
    [sym_labeled_statement] = STATE(50),
    [sym_label] = STATE(53),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(50),
    [sym_if_statement] = STATE(50),
    [sym_while_statement] = STATE(50),
    [sym_do_statement] = STATE(50),
    [sym_for_statement] = STATE(50),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(50),
    [sym_switch_statement] = STATE(50),
    [sym_case_statement] = STATE(50),
    [sym_final_switch_statement] = STATE(50),
    [sym_continue_statement] = STATE(50),
    [sym_break_statement] = STATE(50),
    [sym_return_statement] = STATE(50),
    [sym_goto_statement] = STATE(50),
    [sym_with_statement] = STATE(50),
    [sym_synchronized_statement] = STATE(50),
    [sym_try_statement] = STATE(50),
    [sym_scope_guard_statement] = STATE(50),
    [sym_asm_statement] = STATE(50),
    [sym_struct_declaration] = STATE(50),
    [sym_union_declaration] = STATE(50),
    [sym_postblit] = STATE(50),
    [sym_invariant_declaration] = STATE(50),
    [sym_class_declaration] = STATE(50),
    [sym_constructor] = STATE(50),
    [sym_destructor] = STATE(50),
    [sym_alias_this] = STATE(50),
    [sym_interface_declaration] = STATE(50),
    [sym_enum_declaration] = STATE(50),
    [sym_anonymous_enum_declaration] = STATE(50),
    [sym_function_declaration] = STATE(50),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(50),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(50),
    [sym_template_mixin] = STATE(50),
    [sym_conditional_declaration] = STATE(50),
    [sym_conditional_statement] = STATE(50),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(50),
    [sym_static_foreach_declaration] = STATE(50),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(50),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(668),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(670),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [48] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2193),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(672),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(682),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(738),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(748),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(766),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(776),
    [sym_shared] = ACTIONS(780),
    [sym_static] = ACTIONS(784),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(792),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [49] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1590),
    [sym_mixin_declaration] = STATE(1590),
    [sym__declaration] = STATE(1590),
    [sym__declaration2] = STATE(1590),
    [sym_variable_declaration] = STATE(1590),
    [sym_manifest_constant] = STATE(1590),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1590),
    [sym_alias_declaration] = STATE(1590),
    [sym_alias_reassign] = STATE(1590),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1590),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1590),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1588),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1590),
    [sym_union_declaration] = STATE(1590),
    [sym_postblit] = STATE(1590),
    [sym_invariant_declaration] = STATE(1590),
    [sym_class_declaration] = STATE(1590),
    [sym_constructor] = STATE(1590),
    [sym_destructor] = STATE(1590),
    [sym_alias_this] = STATE(1590),
    [sym_interface_declaration] = STATE(1590),
    [sym_enum_declaration] = STATE(1590),
    [sym_anonymous_enum_declaration] = STATE(1590),
    [sym_function_declaration] = STATE(1590),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1590),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1590),
    [sym_template_mixin] = STATE(1590),
    [sym_conditional_declaration] = STATE(1590),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1590),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1590),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(826),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(828),
    [anon_sym_COLON] = ACTIONS(830),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [50] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(56),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(858),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [51] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(862),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [52] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(113),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(862),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [53] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(858),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [54] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2380),
    [sym_mixin_declaration] = STATE(2380),
    [sym__declaration] = STATE(2380),
    [sym__declaration2] = STATE(2380),
    [sym_variable_declaration] = STATE(2380),
    [sym_manifest_constant] = STATE(2380),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2380),
    [sym_alias_declaration] = STATE(2380),
    [sym_alias_reassign] = STATE(2380),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2380),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2380),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2378),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2380),
    [sym_union_declaration] = STATE(2380),
    [sym_postblit] = STATE(2380),
    [sym_invariant_declaration] = STATE(2380),
    [sym_class_declaration] = STATE(2380),
    [sym_constructor] = STATE(2380),
    [sym_destructor] = STATE(2380),
    [sym_alias_this] = STATE(2380),
    [sym_interface_declaration] = STATE(2380),
    [sym_enum_declaration] = STATE(2380),
    [sym_anonymous_enum_declaration] = STATE(2380),
    [sym_function_declaration] = STATE(2380),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2380),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2380),
    [sym_template_mixin] = STATE(2380),
    [sym_conditional_declaration] = STATE(2380),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2380),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2380),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(866),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(868),
    [anon_sym_COLON] = ACTIONS(830),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [55] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1707),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(904),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(906),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(910),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(914),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(918),
    [sym_shared] = ACTIONS(922),
    [sym_static] = ACTIONS(926),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(930),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [56] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(934),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [57] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2193),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(672),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(936),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(738),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(942),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(766),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(952),
    [sym_shared] = ACTIONS(780),
    [sym_static] = ACTIONS(956),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(962),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [58] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(67),
    [sym_mixin_declaration] = STATE(67),
    [sym__declaration] = STATE(67),
    [sym__declaration2] = STATE(67),
    [sym_variable_declaration] = STATE(67),
    [sym_manifest_constant] = STATE(67),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(67),
    [sym_alias_declaration] = STATE(67),
    [sym_alias_reassign] = STATE(67),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(67),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(67),
    [sym_pragma_statement] = STATE(67),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(67),
    [sym_labeled_statement] = STATE(67),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(67),
    [sym_if_statement] = STATE(67),
    [sym_while_statement] = STATE(67),
    [sym_do_statement] = STATE(67),
    [sym_for_statement] = STATE(67),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(67),
    [sym_switch_statement] = STATE(67),
    [sym_final_switch_statement] = STATE(67),
    [sym_continue_statement] = STATE(67),
    [sym_break_statement] = STATE(67),
    [sym_return_statement] = STATE(67),
    [sym_goto_statement] = STATE(67),
    [sym_with_statement] = STATE(67),
    [sym_synchronized_statement] = STATE(67),
    [sym_try_statement] = STATE(67),
    [sym_scope_guard_statement] = STATE(67),
    [sym_asm_statement] = STATE(67),
    [sym_struct_declaration] = STATE(67),
    [sym_union_declaration] = STATE(67),
    [sym_postblit] = STATE(67),
    [sym_invariant_declaration] = STATE(67),
    [sym_class_declaration] = STATE(67),
    [sym_constructor] = STATE(67),
    [sym_destructor] = STATE(67),
    [sym_alias_this] = STATE(67),
    [sym_interface_declaration] = STATE(67),
    [sym_enum_declaration] = STATE(67),
    [sym_anonymous_enum_declaration] = STATE(67),
    [sym_function_declaration] = STATE(67),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(67),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(67),
    [sym_template_mixin] = STATE(67),
    [sym_conditional_declaration] = STATE(67),
    [sym_conditional_statement] = STATE(67),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(67),
    [sym_static_foreach_declaration] = STATE(67),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(67),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(67),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(636),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(636),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(972),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(638),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(638),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(638),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(638),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [59] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2193),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(672),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(996),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(738),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(998),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(766),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1002),
    [sym_shared] = ACTIONS(780),
    [sym_static] = ACTIONS(1006),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(1010),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [60] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(61),
    [sym_mixin_declaration] = STATE(61),
    [sym__declaration] = STATE(61),
    [sym__declaration2] = STATE(61),
    [sym_variable_declaration] = STATE(61),
    [sym_manifest_constant] = STATE(61),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(61),
    [sym_alias_declaration] = STATE(61),
    [sym_alias_reassign] = STATE(61),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(61),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(61),
    [sym_pragma_statement] = STATE(61),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(61),
    [aux_sym__declarations_and_statements] = STATE(61),
    [sym__declaration_or_statement] = STATE(61),
    [sym__statement_no_case_no_default] = STATE(61),
    [sym_labeled_statement] = STATE(61),
    [sym_label] = STATE(62),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(61),
    [sym_if_statement] = STATE(61),
    [sym_while_statement] = STATE(61),
    [sym_do_statement] = STATE(61),
    [sym_for_statement] = STATE(61),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(61),
    [sym_switch_statement] = STATE(61),
    [sym_case_statement] = STATE(61),
    [sym_final_switch_statement] = STATE(61),
    [sym_continue_statement] = STATE(61),
    [sym_break_statement] = STATE(61),
    [sym_return_statement] = STATE(61),
    [sym_goto_statement] = STATE(61),
    [sym_with_statement] = STATE(61),
    [sym_synchronized_statement] = STATE(61),
    [sym_try_statement] = STATE(61),
    [sym_scope_guard_statement] = STATE(61),
    [sym_asm_statement] = STATE(61),
    [sym_struct_declaration] = STATE(61),
    [sym_union_declaration] = STATE(61),
    [sym_postblit] = STATE(61),
    [sym_invariant_declaration] = STATE(61),
    [sym_class_declaration] = STATE(61),
    [sym_constructor] = STATE(61),
    [sym_destructor] = STATE(61),
    [sym_alias_this] = STATE(61),
    [sym_interface_declaration] = STATE(61),
    [sym_enum_declaration] = STATE(61),
    [sym_anonymous_enum_declaration] = STATE(61),
    [sym_function_declaration] = STATE(61),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(61),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(61),
    [sym_template_mixin] = STATE(61),
    [sym_conditional_declaration] = STATE(61),
    [sym_conditional_statement] = STATE(61),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(61),
    [sym_static_foreach_declaration] = STATE(61),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(61),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1014),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1016),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [61] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(45),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1018),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [62] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1018),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [63] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1450),
    [sym_mixin_declaration] = STATE(1450),
    [sym__declaration] = STATE(1450),
    [sym__declaration2] = STATE(1450),
    [sym_variable_declaration] = STATE(1450),
    [sym_manifest_constant] = STATE(1450),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1450),
    [sym_alias_declaration] = STATE(1450),
    [sym_alias_reassign] = STATE(1450),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1450),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1450),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1527),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1450),
    [sym_union_declaration] = STATE(1450),
    [sym_postblit] = STATE(1450),
    [sym_invariant_declaration] = STATE(1450),
    [sym_class_declaration] = STATE(1450),
    [sym_constructor] = STATE(1450),
    [sym_destructor] = STATE(1450),
    [sym_alias_this] = STATE(1450),
    [sym_interface_declaration] = STATE(1450),
    [sym_enum_declaration] = STATE(1450),
    [sym_anonymous_enum_declaration] = STATE(1450),
    [sym_function_declaration] = STATE(1450),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1450),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1450),
    [sym_template_mixin] = STATE(1450),
    [sym_conditional_declaration] = STATE(1450),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1450),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1450),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1020),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1022),
    [anon_sym_COLON] = ACTIONS(1024),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [64] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1026),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [65] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5598),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1034),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1056),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1062),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1080),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1086),
    [sym_shared] = ACTIONS(1090),
    [sym_static] = ACTIONS(1094),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1102),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [66] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(68),
    [sym_mixin_declaration] = STATE(68),
    [sym__declaration] = STATE(68),
    [sym__declaration2] = STATE(68),
    [sym_variable_declaration] = STATE(68),
    [sym_manifest_constant] = STATE(68),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(68),
    [sym_alias_declaration] = STATE(68),
    [sym_alias_reassign] = STATE(68),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(68),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(68),
    [sym_pragma_statement] = STATE(68),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(68),
    [aux_sym__declarations_and_statements] = STATE(68),
    [sym__declaration_or_statement] = STATE(68),
    [sym__statement_no_case_no_default] = STATE(68),
    [sym_labeled_statement] = STATE(68),
    [sym_label] = STATE(69),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(68),
    [sym_if_statement] = STATE(68),
    [sym_while_statement] = STATE(68),
    [sym_do_statement] = STATE(68),
    [sym_for_statement] = STATE(68),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(68),
    [sym_switch_statement] = STATE(68),
    [sym_case_statement] = STATE(68),
    [sym_final_switch_statement] = STATE(68),
    [sym_continue_statement] = STATE(68),
    [sym_break_statement] = STATE(68),
    [sym_return_statement] = STATE(68),
    [sym_goto_statement] = STATE(68),
    [sym_with_statement] = STATE(68),
    [sym_synchronized_statement] = STATE(68),
    [sym_try_statement] = STATE(68),
    [sym_scope_guard_statement] = STATE(68),
    [sym_asm_statement] = STATE(68),
    [sym_struct_declaration] = STATE(68),
    [sym_union_declaration] = STATE(68),
    [sym_postblit] = STATE(68),
    [sym_invariant_declaration] = STATE(68),
    [sym_class_declaration] = STATE(68),
    [sym_constructor] = STATE(68),
    [sym_destructor] = STATE(68),
    [sym_alias_this] = STATE(68),
    [sym_interface_declaration] = STATE(68),
    [sym_enum_declaration] = STATE(68),
    [sym_anonymous_enum_declaration] = STATE(68),
    [sym_function_declaration] = STATE(68),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(68),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(68),
    [sym_template_mixin] = STATE(68),
    [sym_conditional_declaration] = STATE(68),
    [sym_conditional_statement] = STATE(68),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(68),
    [sym_static_foreach_declaration] = STATE(68),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(68),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1120),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1122),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [67] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(67),
    [sym_mixin_declaration] = STATE(67),
    [sym__declaration] = STATE(67),
    [sym__declaration2] = STATE(67),
    [sym_variable_declaration] = STATE(67),
    [sym_manifest_constant] = STATE(67),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(67),
    [sym_alias_declaration] = STATE(67),
    [sym_alias_reassign] = STATE(67),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(67),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(67),
    [sym_pragma_statement] = STATE(67),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(67),
    [sym_labeled_statement] = STATE(67),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(67),
    [sym_if_statement] = STATE(67),
    [sym_while_statement] = STATE(67),
    [sym_do_statement] = STATE(67),
    [sym_for_statement] = STATE(67),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(67),
    [sym_switch_statement] = STATE(67),
    [sym_final_switch_statement] = STATE(67),
    [sym_continue_statement] = STATE(67),
    [sym_break_statement] = STATE(67),
    [sym_return_statement] = STATE(67),
    [sym_goto_statement] = STATE(67),
    [sym_with_statement] = STATE(67),
    [sym_synchronized_statement] = STATE(67),
    [sym_try_statement] = STATE(67),
    [sym_scope_guard_statement] = STATE(67),
    [sym_asm_statement] = STATE(67),
    [sym_struct_declaration] = STATE(67),
    [sym_union_declaration] = STATE(67),
    [sym_postblit] = STATE(67),
    [sym_invariant_declaration] = STATE(67),
    [sym_class_declaration] = STATE(67),
    [sym_constructor] = STATE(67),
    [sym_destructor] = STATE(67),
    [sym_alias_this] = STATE(67),
    [sym_interface_declaration] = STATE(67),
    [sym_enum_declaration] = STATE(67),
    [sym_anonymous_enum_declaration] = STATE(67),
    [sym_function_declaration] = STATE(67),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(67),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(67),
    [sym_template_mixin] = STATE(67),
    [sym_conditional_declaration] = STATE(67),
    [sym_conditional_statement] = STATE(67),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(67),
    [sym_static_foreach_declaration] = STATE(67),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(67),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(67),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(383),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(386),
    [anon_sym_RBRACE] = ACTIONS(389),
    [anon_sym_LBRACE] = ACTIONS(391),
    [anon_sym_DOT] = ACTIONS(394),
    [anon_sym_AMP] = ACTIONS(397),
    [anon_sym_DASH] = ACTIONS(400),
    [anon_sym_DASH_DASH] = ACTIONS(397),
    [anon_sym_PLUS] = ACTIONS(400),
    [anon_sym_PLUS_PLUS] = ACTIONS(397),
    [anon_sym_BANG] = ACTIONS(397),
    [anon_sym_LPAREN] = ACTIONS(403),
    [anon_sym_RPAREN] = ACTIONS(389),
    [anon_sym_LBRACK] = ACTIONS(406),
    [anon_sym_SEMI] = ACTIONS(1124),
    [anon_sym_DOLLAR] = ACTIONS(412),
    [anon_sym_STAR] = ACTIONS(397),
    [anon_sym_TILDE] = ACTIONS(415),
    [anon_sym_AT] = ACTIONS(418),
    [sym_bool] = ACTIONS(421),
    [sym_byte] = ACTIONS(421),
    [sym_ubyte] = ACTIONS(421),
    [sym_char] = ACTIONS(421),
    [sym_short] = ACTIONS(421),
    [sym_ushort] = ACTIONS(421),
    [sym_int] = ACTIONS(421),
    [sym_uint] = ACTIONS(421),
    [sym_long] = ACTIONS(421),
    [sym_ulong] = ACTIONS(421),
    [sym_cent] = ACTIONS(421),
    [sym_ucent] = ACTIONS(421),
    [sym_wchar] = ACTIONS(421),
    [sym_dchar] = ACTIONS(421),
    [sym_float] = ACTIONS(421),
    [sym_double] = ACTIONS(421),
    [sym_real] = ACTIONS(421),
    [sym_ifloat] = ACTIONS(421),
    [sym_idouble] = ACTIONS(421),
    [sym_ireal] = ACTIONS(421),
    [sym_cfloat] = ACTIONS(421),
    [sym_cdouble] = ACTIONS(421),
    [sym_creal] = ACTIONS(421),
    [sym_size_t] = ACTIONS(421),
    [sym_ptrdiff_t] = ACTIONS(421),
    [sym_string] = ACTIONS(421),
    [sym_cstring] = ACTIONS(421),
    [sym_dstring] = ACTIONS(421),
    [sym_wstring] = ACTIONS(421),
    [sym_noreturn] = ACTIONS(421),
    [sym_true] = ACTIONS(424),
    [sym_false] = ACTIONS(424),
    [sym_null] = ACTIONS(424),
    [sym_super] = ACTIONS(424),
    [sym_this] = ACTIONS(427),
    [sym_abstract] = ACTIONS(430),
    [sym_alias] = ACTIONS(433),
    [sym_align] = ACTIONS(436),
    [sym_asm] = ACTIONS(439),
    [sym_assert] = ACTIONS(442),
    [sym_auto] = ACTIONS(445),
    [sym_break] = ACTIONS(448),
    [sym_case] = ACTIONS(451),
    [sym_cast] = ACTIONS(453),
    [sym_catch] = ACTIONS(451),
    [sym_class] = ACTIONS(456),
    [sym_const] = ACTIONS(459),
    [sym_continue] = ACTIONS(462),
    [sym_debug] = ACTIONS(465),
    [sym_default] = ACTIONS(451),
    [sym_delegate] = ACTIONS(468),
    [sym_delete] = ACTIONS(471),
    [sym_deprecated] = ACTIONS(474),
    [sym_do] = ACTIONS(477),
    [sym_enum] = ACTIONS(480),
    [sym_export] = ACTIONS(483),
    [sym_extern] = ACTIONS(486),
    [sym_final] = ACTIONS(1127),
    [sym_finally] = ACTIONS(451),
    [sym_for] = ACTIONS(1130),
    [sym_foreach] = ACTIONS(1133),
    [sym_foreach_reverse] = ACTIONS(1133),
    [sym_function] = ACTIONS(498),
    [sym_goto] = ACTIONS(501),
    [sym_if] = ACTIONS(1136),
    [sym_immutable] = ACTIONS(459),
    [sym_import] = ACTIONS(507),
    [sym_in] = ACTIONS(510),
    [sym_inout] = ACTIONS(459),
    [sym_interface] = ACTIONS(513),
    [sym_invariant] = ACTIONS(516),
    [sym_is] = ACTIONS(519),
    [sym_mixin] = ACTIONS(522),
    [sym_new] = ACTIONS(525),
    [sym_nothrow] = ACTIONS(430),
    [sym_out] = ACTIONS(528),
    [sym_override] = ACTIONS(430),
    [sym_package] = ACTIONS(531),
    [sym_pragma] = ACTIONS(534),
    [sym_private] = ACTIONS(483),
    [sym_protected] = ACTIONS(483),
    [sym_public] = ACTIONS(483),
    [sym_pure] = ACTIONS(430),
    [sym_ref] = ACTIONS(537),
    [sym_return] = ACTIONS(540),
    [sym_scope] = ACTIONS(1139),
    [sym_shared] = ACTIONS(546),
    [sym_static] = ACTIONS(1142),
    [sym_struct] = ACTIONS(552),
    [sym_switch] = ACTIONS(1145),
    [sym_synchronized] = ACTIONS(1148),
    [sym_template] = ACTIONS(561),
    [sym_throw] = ACTIONS(564),
    [sym_try] = ACTIONS(1151),
    [sym_typeid] = ACTIONS(570),
    [sym_typeof] = ACTIONS(573),
    [sym_union] = ACTIONS(576),
    [sym_unittest] = ACTIONS(579),
    [sym_version] = ACTIONS(582),
    [sym_while] = ACTIONS(1154),
    [sym_with] = ACTIONS(1157),
    [sym_gshared] = ACTIONS(430),
    [sym_traits] = ACTIONS(591),
    [sym_vector] = ACTIONS(594),
    [sym_void] = ACTIONS(597),
    [anon_sym_BQUOTE] = ACTIONS(600),
    [anon_sym_r_DQUOTE] = ACTIONS(603),
    [anon_sym_x_DQUOTE] = ACTIONS(606),
    [anon_sym_DQUOTE] = ACTIONS(609),
    [anon_sym_i_BQUOTE] = ACTIONS(612),
    [anon_sym_i_DQUOTE] = ACTIONS(615),
    [anon_sym_iq_LBRACE] = ACTIONS(618),
    [aux_sym_char_literal_token1] = ACTIONS(621),
    [anon_sym_SQUOTE] = ACTIONS(624),
    [anon_sym___DATE__] = ACTIONS(627),
    [anon_sym___FILE__] = ACTIONS(627),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(627),
    [anon_sym___FUNCTION__] = ACTIONS(627),
    [anon_sym___LINE__] = ACTIONS(627),
    [anon_sym___MODULE__] = ACTIONS(627),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(627),
    [anon_sym___TIME__] = ACTIONS(627),
    [anon_sym___TIMESTAMP__] = ACTIONS(627),
    [anon_sym___VENDOR__] = ACTIONS(627),
    [anon_sym___VERSION__] = ACTIONS(627),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(630),
    [sym_float_literal] = ACTIONS(630),
    [sym__string] = ACTIONS(633),
  },
  [68] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(82),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1160),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [69] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1160),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [70] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5578),
    [sym_mixin_declaration] = STATE(5578),
    [sym__declaration] = STATE(5578),
    [sym__declaration2] = STATE(5578),
    [sym_variable_declaration] = STATE(5578),
    [sym_manifest_constant] = STATE(5578),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5578),
    [sym_alias_declaration] = STATE(5578),
    [sym_alias_reassign] = STATE(5578),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5578),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5578),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5704),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5578),
    [sym_union_declaration] = STATE(5578),
    [sym_postblit] = STATE(5578),
    [sym_invariant_declaration] = STATE(5578),
    [sym_class_declaration] = STATE(5578),
    [sym_constructor] = STATE(5578),
    [sym_destructor] = STATE(5578),
    [sym_alias_this] = STATE(5578),
    [sym_interface_declaration] = STATE(5578),
    [sym_enum_declaration] = STATE(5578),
    [sym_anonymous_enum_declaration] = STATE(5578),
    [sym_function_declaration] = STATE(5578),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5578),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5578),
    [sym_template_mixin] = STATE(5578),
    [sym_conditional_declaration] = STATE(5578),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5578),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5578),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1164),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1166),
    [anon_sym_COLON] = ACTIONS(1168),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [71] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1382),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1184),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1188),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(1192),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1196),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1200),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(1204),
    [sym_shared] = ACTIONS(1208),
    [sym_static] = ACTIONS(1212),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(1216),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [72] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(67),
    [sym_mixin_declaration] = STATE(67),
    [sym__declaration] = STATE(67),
    [sym__declaration2] = STATE(67),
    [sym_variable_declaration] = STATE(67),
    [sym_manifest_constant] = STATE(67),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(67),
    [sym_alias_declaration] = STATE(67),
    [sym_alias_reassign] = STATE(67),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(67),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(67),
    [sym_pragma_statement] = STATE(67),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(67),
    [sym_labeled_statement] = STATE(67),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(67),
    [sym_if_statement] = STATE(67),
    [sym_while_statement] = STATE(67),
    [sym_do_statement] = STATE(67),
    [sym_for_statement] = STATE(67),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(67),
    [sym_switch_statement] = STATE(67),
    [sym_final_switch_statement] = STATE(67),
    [sym_continue_statement] = STATE(67),
    [sym_break_statement] = STATE(67),
    [sym_return_statement] = STATE(67),
    [sym_goto_statement] = STATE(67),
    [sym_with_statement] = STATE(67),
    [sym_synchronized_statement] = STATE(67),
    [sym_try_statement] = STATE(67),
    [sym_scope_guard_statement] = STATE(67),
    [sym_asm_statement] = STATE(67),
    [sym_struct_declaration] = STATE(67),
    [sym_union_declaration] = STATE(67),
    [sym_postblit] = STATE(67),
    [sym_invariant_declaration] = STATE(67),
    [sym_class_declaration] = STATE(67),
    [sym_constructor] = STATE(67),
    [sym_destructor] = STATE(67),
    [sym_alias_this] = STATE(67),
    [sym_interface_declaration] = STATE(67),
    [sym_enum_declaration] = STATE(67),
    [sym_anonymous_enum_declaration] = STATE(67),
    [sym_function_declaration] = STATE(67),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(67),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(67),
    [sym_template_mixin] = STATE(67),
    [sym_conditional_declaration] = STATE(67),
    [sym_conditional_statement] = STATE(67),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(67),
    [sym_static_foreach_declaration] = STATE(67),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(67),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(67),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(972),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(381),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(381),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [73] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1220),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [74] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5723),
    [sym_mixin_declaration] = STATE(5723),
    [sym__declaration] = STATE(5723),
    [sym__declaration2] = STATE(5723),
    [sym_variable_declaration] = STATE(5723),
    [sym_manifest_constant] = STATE(5723),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5723),
    [sym_alias_declaration] = STATE(5723),
    [sym_alias_reassign] = STATE(5723),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5723),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5723),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5587),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5723),
    [sym_union_declaration] = STATE(5723),
    [sym_postblit] = STATE(5723),
    [sym_invariant_declaration] = STATE(5723),
    [sym_class_declaration] = STATE(5723),
    [sym_constructor] = STATE(5723),
    [sym_destructor] = STATE(5723),
    [sym_alias_this] = STATE(5723),
    [sym_interface_declaration] = STATE(5723),
    [sym_enum_declaration] = STATE(5723),
    [sym_anonymous_enum_declaration] = STATE(5723),
    [sym_function_declaration] = STATE(5723),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5723),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5723),
    [sym_template_mixin] = STATE(5723),
    [sym_conditional_declaration] = STATE(5723),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5723),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5723),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1222),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1224),
    [anon_sym_COLON] = ACTIONS(1168),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [75] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1226),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [76] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(88),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1226),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [77] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2193),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(672),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1228),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(738),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1230),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(766),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1240),
    [sym_shared] = ACTIONS(780),
    [sym_static] = ACTIONS(1244),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(1250),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [78] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(80),
    [sym_mixin_declaration] = STATE(80),
    [sym__declaration] = STATE(80),
    [sym__declaration2] = STATE(80),
    [sym_variable_declaration] = STATE(80),
    [sym_manifest_constant] = STATE(80),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(80),
    [sym_alias_declaration] = STATE(80),
    [sym_alias_reassign] = STATE(80),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(80),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(80),
    [sym_pragma_statement] = STATE(80),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(80),
    [sym_labeled_statement] = STATE(80),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(80),
    [sym_if_statement] = STATE(80),
    [sym_while_statement] = STATE(80),
    [sym_do_statement] = STATE(80),
    [sym_for_statement] = STATE(80),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(80),
    [sym_switch_statement] = STATE(80),
    [sym_final_switch_statement] = STATE(80),
    [sym_continue_statement] = STATE(80),
    [sym_break_statement] = STATE(80),
    [sym_return_statement] = STATE(80),
    [sym_goto_statement] = STATE(80),
    [sym_with_statement] = STATE(80),
    [sym_synchronized_statement] = STATE(80),
    [sym_try_statement] = STATE(80),
    [sym_scope_guard_statement] = STATE(80),
    [sym_asm_statement] = STATE(80),
    [sym_struct_declaration] = STATE(80),
    [sym_union_declaration] = STATE(80),
    [sym_postblit] = STATE(80),
    [sym_invariant_declaration] = STATE(80),
    [sym_class_declaration] = STATE(80),
    [sym_constructor] = STATE(80),
    [sym_destructor] = STATE(80),
    [sym_alias_this] = STATE(80),
    [sym_interface_declaration] = STATE(80),
    [sym_enum_declaration] = STATE(80),
    [sym_anonymous_enum_declaration] = STATE(80),
    [sym_function_declaration] = STATE(80),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(80),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(80),
    [sym_template_mixin] = STATE(80),
    [sym_conditional_declaration] = STATE(80),
    [sym_conditional_statement] = STATE(80),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(80),
    [sym_static_foreach_declaration] = STATE(80),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(80),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(80),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(640),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(640),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1260),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(644),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(644),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(644),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(644),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [79] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(76),
    [sym_mixin_declaration] = STATE(76),
    [sym__declaration] = STATE(76),
    [sym__declaration2] = STATE(76),
    [sym_variable_declaration] = STATE(76),
    [sym_manifest_constant] = STATE(76),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(76),
    [sym_alias_declaration] = STATE(76),
    [sym_alias_reassign] = STATE(76),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(76),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(76),
    [sym_pragma_statement] = STATE(76),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(76),
    [aux_sym__declarations_and_statements] = STATE(76),
    [sym__declaration_or_statement] = STATE(76),
    [sym__statement_no_case_no_default] = STATE(76),
    [sym_labeled_statement] = STATE(76),
    [sym_label] = STATE(75),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(76),
    [sym_if_statement] = STATE(76),
    [sym_while_statement] = STATE(76),
    [sym_do_statement] = STATE(76),
    [sym_for_statement] = STATE(76),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(76),
    [sym_switch_statement] = STATE(76),
    [sym_case_statement] = STATE(76),
    [sym_final_switch_statement] = STATE(76),
    [sym_continue_statement] = STATE(76),
    [sym_break_statement] = STATE(76),
    [sym_return_statement] = STATE(76),
    [sym_goto_statement] = STATE(76),
    [sym_with_statement] = STATE(76),
    [sym_synchronized_statement] = STATE(76),
    [sym_try_statement] = STATE(76),
    [sym_scope_guard_statement] = STATE(76),
    [sym_asm_statement] = STATE(76),
    [sym_struct_declaration] = STATE(76),
    [sym_union_declaration] = STATE(76),
    [sym_postblit] = STATE(76),
    [sym_invariant_declaration] = STATE(76),
    [sym_class_declaration] = STATE(76),
    [sym_constructor] = STATE(76),
    [sym_destructor] = STATE(76),
    [sym_alias_this] = STATE(76),
    [sym_interface_declaration] = STATE(76),
    [sym_enum_declaration] = STATE(76),
    [sym_anonymous_enum_declaration] = STATE(76),
    [sym_function_declaration] = STATE(76),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(76),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(76),
    [sym_template_mixin] = STATE(76),
    [sym_conditional_declaration] = STATE(76),
    [sym_conditional_statement] = STATE(76),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(76),
    [sym_static_foreach_declaration] = STATE(76),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(76),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1262),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(237),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [80] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(67),
    [sym_mixin_declaration] = STATE(67),
    [sym__declaration] = STATE(67),
    [sym__declaration2] = STATE(67),
    [sym_variable_declaration] = STATE(67),
    [sym_manifest_constant] = STATE(67),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(67),
    [sym_alias_declaration] = STATE(67),
    [sym_alias_reassign] = STATE(67),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(67),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(67),
    [sym_pragma_statement] = STATE(67),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(67),
    [sym_labeled_statement] = STATE(67),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(67),
    [sym_if_statement] = STATE(67),
    [sym_while_statement] = STATE(67),
    [sym_do_statement] = STATE(67),
    [sym_for_statement] = STATE(67),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(67),
    [sym_switch_statement] = STATE(67),
    [sym_final_switch_statement] = STATE(67),
    [sym_continue_statement] = STATE(67),
    [sym_break_statement] = STATE(67),
    [sym_return_statement] = STATE(67),
    [sym_goto_statement] = STATE(67),
    [sym_with_statement] = STATE(67),
    [sym_synchronized_statement] = STATE(67),
    [sym_try_statement] = STATE(67),
    [sym_scope_guard_statement] = STATE(67),
    [sym_asm_statement] = STATE(67),
    [sym_struct_declaration] = STATE(67),
    [sym_union_declaration] = STATE(67),
    [sym_postblit] = STATE(67),
    [sym_invariant_declaration] = STATE(67),
    [sym_class_declaration] = STATE(67),
    [sym_constructor] = STATE(67),
    [sym_destructor] = STATE(67),
    [sym_alias_this] = STATE(67),
    [sym_interface_declaration] = STATE(67),
    [sym_enum_declaration] = STATE(67),
    [sym_anonymous_enum_declaration] = STATE(67),
    [sym_function_declaration] = STATE(67),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(67),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(67),
    [sym_template_mixin] = STATE(67),
    [sym_conditional_declaration] = STATE(67),
    [sym_conditional_statement] = STATE(67),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(67),
    [sym_static_foreach_declaration] = STATE(67),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(67),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(67),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(646),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(646),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(972),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(648),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(648),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(648),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(648),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [81] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1264),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [82] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1266),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [83] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5598),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1268),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1272),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1280),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1286),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1298),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1302),
    [sym_shared] = ACTIONS(1306),
    [sym_static] = ACTIONS(1310),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1316),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [84] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(115),
    [sym_mixin_declaration] = STATE(115),
    [sym__declaration] = STATE(115),
    [sym__declaration2] = STATE(115),
    [sym_variable_declaration] = STATE(115),
    [sym_manifest_constant] = STATE(115),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(115),
    [sym_alias_declaration] = STATE(115),
    [sym_alias_reassign] = STATE(115),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(115),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(115),
    [sym_pragma_statement] = STATE(115),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(115),
    [aux_sym__declarations_and_statements] = STATE(115),
    [sym__declaration_or_statement] = STATE(115),
    [sym__statement_no_case_no_default] = STATE(115),
    [sym_labeled_statement] = STATE(115),
    [sym_label] = STATE(121),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(115),
    [sym_if_statement] = STATE(115),
    [sym_while_statement] = STATE(115),
    [sym_do_statement] = STATE(115),
    [sym_for_statement] = STATE(115),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(115),
    [sym_switch_statement] = STATE(115),
    [sym_case_statement] = STATE(115),
    [sym_final_switch_statement] = STATE(115),
    [sym_continue_statement] = STATE(115),
    [sym_break_statement] = STATE(115),
    [sym_return_statement] = STATE(115),
    [sym_goto_statement] = STATE(115),
    [sym_with_statement] = STATE(115),
    [sym_synchronized_statement] = STATE(115),
    [sym_try_statement] = STATE(115),
    [sym_scope_guard_statement] = STATE(115),
    [sym_asm_statement] = STATE(115),
    [sym_struct_declaration] = STATE(115),
    [sym_union_declaration] = STATE(115),
    [sym_postblit] = STATE(115),
    [sym_invariant_declaration] = STATE(115),
    [sym_class_declaration] = STATE(115),
    [sym_constructor] = STATE(115),
    [sym_destructor] = STATE(115),
    [sym_alias_this] = STATE(115),
    [sym_interface_declaration] = STATE(115),
    [sym_enum_declaration] = STATE(115),
    [sym_anonymous_enum_declaration] = STATE(115),
    [sym_function_declaration] = STATE(115),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(115),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(115),
    [sym_template_mixin] = STATE(115),
    [sym_conditional_declaration] = STATE(115),
    [sym_conditional_statement] = STATE(115),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(115),
    [sym_static_foreach_declaration] = STATE(115),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(115),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1328),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1330),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [85] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(58),
    [sym_mixin_declaration] = STATE(58),
    [sym__declaration] = STATE(58),
    [sym__declaration2] = STATE(58),
    [sym_variable_declaration] = STATE(58),
    [sym_manifest_constant] = STATE(58),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(58),
    [sym_alias_declaration] = STATE(58),
    [sym_alias_reassign] = STATE(58),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(58),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(58),
    [sym_pragma_statement] = STATE(58),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(58),
    [sym_labeled_statement] = STATE(58),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(58),
    [sym_if_statement] = STATE(58),
    [sym_while_statement] = STATE(58),
    [sym_do_statement] = STATE(58),
    [sym_for_statement] = STATE(58),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(58),
    [sym_switch_statement] = STATE(58),
    [sym_final_switch_statement] = STATE(58),
    [sym_continue_statement] = STATE(58),
    [sym_break_statement] = STATE(58),
    [sym_return_statement] = STATE(58),
    [sym_goto_statement] = STATE(58),
    [sym_with_statement] = STATE(58),
    [sym_synchronized_statement] = STATE(58),
    [sym_try_statement] = STATE(58),
    [sym_scope_guard_statement] = STATE(58),
    [sym_asm_statement] = STATE(58),
    [sym_struct_declaration] = STATE(58),
    [sym_union_declaration] = STATE(58),
    [sym_postblit] = STATE(58),
    [sym_invariant_declaration] = STATE(58),
    [sym_class_declaration] = STATE(58),
    [sym_constructor] = STATE(58),
    [sym_destructor] = STATE(58),
    [sym_alias_this] = STATE(58),
    [sym_interface_declaration] = STATE(58),
    [sym_enum_declaration] = STATE(58),
    [sym_anonymous_enum_declaration] = STATE(58),
    [sym_function_declaration] = STATE(58),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(58),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(58),
    [sym_template_mixin] = STATE(58),
    [sym_conditional_declaration] = STATE(58),
    [sym_conditional_statement] = STATE(58),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(58),
    [sym_static_foreach_declaration] = STATE(58),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(58),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(58),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1332),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(381),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(381),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [86] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(87),
    [sym_mixin_declaration] = STATE(87),
    [sym__declaration] = STATE(87),
    [sym__declaration2] = STATE(87),
    [sym_variable_declaration] = STATE(87),
    [sym_manifest_constant] = STATE(87),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(87),
    [sym_alias_declaration] = STATE(87),
    [sym_alias_reassign] = STATE(87),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(87),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(87),
    [sym_pragma_statement] = STATE(87),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(87),
    [aux_sym__declarations_and_statements] = STATE(87),
    [sym__declaration_or_statement] = STATE(87),
    [sym__statement_no_case_no_default] = STATE(87),
    [sym_labeled_statement] = STATE(87),
    [sym_label] = STATE(46),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(87),
    [sym_if_statement] = STATE(87),
    [sym_while_statement] = STATE(87),
    [sym_do_statement] = STATE(87),
    [sym_for_statement] = STATE(87),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(87),
    [sym_switch_statement] = STATE(87),
    [sym_case_statement] = STATE(87),
    [sym_final_switch_statement] = STATE(87),
    [sym_continue_statement] = STATE(87),
    [sym_break_statement] = STATE(87),
    [sym_return_statement] = STATE(87),
    [sym_goto_statement] = STATE(87),
    [sym_with_statement] = STATE(87),
    [sym_synchronized_statement] = STATE(87),
    [sym_try_statement] = STATE(87),
    [sym_scope_guard_statement] = STATE(87),
    [sym_asm_statement] = STATE(87),
    [sym_struct_declaration] = STATE(87),
    [sym_union_declaration] = STATE(87),
    [sym_postblit] = STATE(87),
    [sym_invariant_declaration] = STATE(87),
    [sym_class_declaration] = STATE(87),
    [sym_constructor] = STATE(87),
    [sym_destructor] = STATE(87),
    [sym_alias_this] = STATE(87),
    [sym_interface_declaration] = STATE(87),
    [sym_enum_declaration] = STATE(87),
    [sym_anonymous_enum_declaration] = STATE(87),
    [sym_function_declaration] = STATE(87),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(87),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(87),
    [sym_template_mixin] = STATE(87),
    [sym_conditional_declaration] = STATE(87),
    [sym_conditional_statement] = STATE(87),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(87),
    [sym_static_foreach_declaration] = STATE(87),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(87),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1334),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1336),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [87] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(91),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(666),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [88] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1338),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [89] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2308),
    [sym_mixin_declaration] = STATE(2308),
    [sym__declaration] = STATE(2308),
    [sym__declaration2] = STATE(2308),
    [sym_variable_declaration] = STATE(2308),
    [sym_manifest_constant] = STATE(2308),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2308),
    [sym_alias_declaration] = STATE(2308),
    [sym_alias_reassign] = STATE(2308),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2308),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2308),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2183),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2308),
    [sym_union_declaration] = STATE(2308),
    [sym_postblit] = STATE(2308),
    [sym_invariant_declaration] = STATE(2308),
    [sym_class_declaration] = STATE(2308),
    [sym_constructor] = STATE(2308),
    [sym_destructor] = STATE(2308),
    [sym_alias_this] = STATE(2308),
    [sym_interface_declaration] = STATE(2308),
    [sym_enum_declaration] = STATE(2308),
    [sym_anonymous_enum_declaration] = STATE(2308),
    [sym_function_declaration] = STATE(2308),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2308),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2308),
    [sym_template_mixin] = STATE(2308),
    [sym_conditional_declaration] = STATE(2308),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2308),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2308),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1340),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1342),
    [anon_sym_COLON] = ACTIONS(1024),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [90] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(67),
    [sym_mixin_declaration] = STATE(67),
    [sym__declaration] = STATE(67),
    [sym__declaration2] = STATE(67),
    [sym_variable_declaration] = STATE(67),
    [sym_manifest_constant] = STATE(67),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(67),
    [sym_alias_declaration] = STATE(67),
    [sym_alias_reassign] = STATE(67),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(67),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(67),
    [sym_pragma_statement] = STATE(67),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(67),
    [sym_labeled_statement] = STATE(67),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(67),
    [sym_if_statement] = STATE(67),
    [sym_while_statement] = STATE(67),
    [sym_do_statement] = STATE(67),
    [sym_for_statement] = STATE(67),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(67),
    [sym_switch_statement] = STATE(67),
    [sym_final_switch_statement] = STATE(67),
    [sym_continue_statement] = STATE(67),
    [sym_break_statement] = STATE(67),
    [sym_return_statement] = STATE(67),
    [sym_goto_statement] = STATE(67),
    [sym_with_statement] = STATE(67),
    [sym_synchronized_statement] = STATE(67),
    [sym_try_statement] = STATE(67),
    [sym_scope_guard_statement] = STATE(67),
    [sym_asm_statement] = STATE(67),
    [sym_struct_declaration] = STATE(67),
    [sym_union_declaration] = STATE(67),
    [sym_postblit] = STATE(67),
    [sym_invariant_declaration] = STATE(67),
    [sym_class_declaration] = STATE(67),
    [sym_constructor] = STATE(67),
    [sym_destructor] = STATE(67),
    [sym_alias_this] = STATE(67),
    [sym_interface_declaration] = STATE(67),
    [sym_enum_declaration] = STATE(67),
    [sym_anonymous_enum_declaration] = STATE(67),
    [sym_function_declaration] = STATE(67),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(67),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(67),
    [sym_template_mixin] = STATE(67),
    [sym_conditional_declaration] = STATE(67),
    [sym_conditional_statement] = STATE(67),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(67),
    [sym_static_foreach_declaration] = STATE(67),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(67),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(67),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(972),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(267),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(267),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [91] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1352),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [92] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1382),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1184),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1354),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(1192),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1356),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1200),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(1360),
    [sym_shared] = ACTIONS(1208),
    [sym_static] = ACTIONS(1364),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(1368),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [93] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1707),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1372),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(906),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1374),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(914),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(1378),
    [sym_shared] = ACTIONS(922),
    [sym_static] = ACTIONS(1382),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(1386),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [94] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(72),
    [sym_mixin_declaration] = STATE(72),
    [sym__declaration] = STATE(72),
    [sym__declaration2] = STATE(72),
    [sym_variable_declaration] = STATE(72),
    [sym_manifest_constant] = STATE(72),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(72),
    [sym_alias_declaration] = STATE(72),
    [sym_alias_reassign] = STATE(72),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(72),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(72),
    [sym_pragma_statement] = STATE(72),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(72),
    [sym_labeled_statement] = STATE(72),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(72),
    [sym_if_statement] = STATE(72),
    [sym_while_statement] = STATE(72),
    [sym_do_statement] = STATE(72),
    [sym_for_statement] = STATE(72),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(72),
    [sym_switch_statement] = STATE(72),
    [sym_final_switch_statement] = STATE(72),
    [sym_continue_statement] = STATE(72),
    [sym_break_statement] = STATE(72),
    [sym_return_statement] = STATE(72),
    [sym_goto_statement] = STATE(72),
    [sym_with_statement] = STATE(72),
    [sym_synchronized_statement] = STATE(72),
    [sym_try_statement] = STATE(72),
    [sym_scope_guard_statement] = STATE(72),
    [sym_asm_statement] = STATE(72),
    [sym_struct_declaration] = STATE(72),
    [sym_union_declaration] = STATE(72),
    [sym_postblit] = STATE(72),
    [sym_invariant_declaration] = STATE(72),
    [sym_class_declaration] = STATE(72),
    [sym_constructor] = STATE(72),
    [sym_destructor] = STATE(72),
    [sym_alias_this] = STATE(72),
    [sym_interface_declaration] = STATE(72),
    [sym_enum_declaration] = STATE(72),
    [sym_anonymous_enum_declaration] = STATE(72),
    [sym_function_declaration] = STATE(72),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(72),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(72),
    [sym_template_mixin] = STATE(72),
    [sym_conditional_declaration] = STATE(72),
    [sym_conditional_statement] = STATE(72),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(72),
    [sym_static_foreach_declaration] = STATE(72),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(72),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(72),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1390),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(267),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(267),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [95] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1563),
    [sym_mixin_declaration] = STATE(1563),
    [sym__declaration] = STATE(1563),
    [sym__declaration2] = STATE(1563),
    [sym_variable_declaration] = STATE(1563),
    [sym_manifest_constant] = STATE(1563),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1563),
    [sym_alias_declaration] = STATE(1563),
    [sym_alias_reassign] = STATE(1563),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1563),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1563),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1675),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1563),
    [sym_union_declaration] = STATE(1563),
    [sym_postblit] = STATE(1563),
    [sym_invariant_declaration] = STATE(1563),
    [sym_class_declaration] = STATE(1563),
    [sym_constructor] = STATE(1563),
    [sym_destructor] = STATE(1563),
    [sym_alias_this] = STATE(1563),
    [sym_interface_declaration] = STATE(1563),
    [sym_enum_declaration] = STATE(1563),
    [sym_anonymous_enum_declaration] = STATE(1563),
    [sym_function_declaration] = STATE(1563),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1563),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1563),
    [sym_template_mixin] = STATE(1563),
    [sym_conditional_declaration] = STATE(1563),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1563),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1563),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1392),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1394),
    [anon_sym_COLON] = ACTIONS(830),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [96] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1396),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [97] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(99),
    [sym_mixin_declaration] = STATE(99),
    [sym__declaration] = STATE(99),
    [sym__declaration2] = STATE(99),
    [sym_variable_declaration] = STATE(99),
    [sym_manifest_constant] = STATE(99),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(99),
    [sym_alias_declaration] = STATE(99),
    [sym_alias_reassign] = STATE(99),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(99),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(99),
    [sym_pragma_statement] = STATE(99),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(99),
    [aux_sym__declarations_and_statements] = STATE(99),
    [sym__declaration_or_statement] = STATE(99),
    [sym__statement_no_case_no_default] = STATE(99),
    [sym_labeled_statement] = STATE(99),
    [sym_label] = STATE(103),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(99),
    [sym_if_statement] = STATE(99),
    [sym_while_statement] = STATE(99),
    [sym_do_statement] = STATE(99),
    [sym_for_statement] = STATE(99),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(99),
    [sym_switch_statement] = STATE(99),
    [sym_case_statement] = STATE(99),
    [sym_final_switch_statement] = STATE(99),
    [sym_continue_statement] = STATE(99),
    [sym_break_statement] = STATE(99),
    [sym_return_statement] = STATE(99),
    [sym_goto_statement] = STATE(99),
    [sym_with_statement] = STATE(99),
    [sym_synchronized_statement] = STATE(99),
    [sym_try_statement] = STATE(99),
    [sym_scope_guard_statement] = STATE(99),
    [sym_asm_statement] = STATE(99),
    [sym_struct_declaration] = STATE(99),
    [sym_union_declaration] = STATE(99),
    [sym_postblit] = STATE(99),
    [sym_invariant_declaration] = STATE(99),
    [sym_class_declaration] = STATE(99),
    [sym_constructor] = STATE(99),
    [sym_destructor] = STATE(99),
    [sym_alias_this] = STATE(99),
    [sym_interface_declaration] = STATE(99),
    [sym_enum_declaration] = STATE(99),
    [sym_anonymous_enum_declaration] = STATE(99),
    [sym_function_declaration] = STATE(99),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(99),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(99),
    [sym_template_mixin] = STATE(99),
    [sym_conditional_declaration] = STATE(99),
    [sym_conditional_statement] = STATE(99),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(99),
    [sym_static_foreach_declaration] = STATE(99),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(99),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1398),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1400),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [98] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(52),
    [sym_mixin_declaration] = STATE(52),
    [sym__declaration] = STATE(52),
    [sym__declaration2] = STATE(52),
    [sym_variable_declaration] = STATE(52),
    [sym_manifest_constant] = STATE(52),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(52),
    [sym_alias_declaration] = STATE(52),
    [sym_alias_reassign] = STATE(52),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(52),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(52),
    [sym_pragma_statement] = STATE(52),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(52),
    [aux_sym__declarations_and_statements] = STATE(52),
    [sym__declaration_or_statement] = STATE(52),
    [sym__statement_no_case_no_default] = STATE(52),
    [sym_labeled_statement] = STATE(52),
    [sym_label] = STATE(51),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(52),
    [sym_if_statement] = STATE(52),
    [sym_while_statement] = STATE(52),
    [sym_do_statement] = STATE(52),
    [sym_for_statement] = STATE(52),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(52),
    [sym_switch_statement] = STATE(52),
    [sym_case_statement] = STATE(52),
    [sym_final_switch_statement] = STATE(52),
    [sym_continue_statement] = STATE(52),
    [sym_break_statement] = STATE(52),
    [sym_return_statement] = STATE(52),
    [sym_goto_statement] = STATE(52),
    [sym_with_statement] = STATE(52),
    [sym_synchronized_statement] = STATE(52),
    [sym_try_statement] = STATE(52),
    [sym_scope_guard_statement] = STATE(52),
    [sym_asm_statement] = STATE(52),
    [sym_struct_declaration] = STATE(52),
    [sym_union_declaration] = STATE(52),
    [sym_postblit] = STATE(52),
    [sym_invariant_declaration] = STATE(52),
    [sym_class_declaration] = STATE(52),
    [sym_constructor] = STATE(52),
    [sym_destructor] = STATE(52),
    [sym_alias_this] = STATE(52),
    [sym_interface_declaration] = STATE(52),
    [sym_enum_declaration] = STATE(52),
    [sym_anonymous_enum_declaration] = STATE(52),
    [sym_function_declaration] = STATE(52),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(52),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(52),
    [sym_template_mixin] = STATE(52),
    [sym_conditional_declaration] = STATE(52),
    [sym_conditional_statement] = STATE(52),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(52),
    [sym_static_foreach_declaration] = STATE(52),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(52),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1402),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1404),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [99] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(109),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1406),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [100] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1408),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [101] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1410),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [102] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(96),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1410),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [103] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1406),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [104] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2372),
    [sym_mixin_declaration] = STATE(2372),
    [sym__declaration] = STATE(2372),
    [sym__declaration2] = STATE(2372),
    [sym_variable_declaration] = STATE(2372),
    [sym_manifest_constant] = STATE(2372),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2372),
    [sym_alias_declaration] = STATE(2372),
    [sym_alias_reassign] = STATE(2372),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2372),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2372),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2374),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2372),
    [sym_union_declaration] = STATE(2372),
    [sym_postblit] = STATE(2372),
    [sym_invariant_declaration] = STATE(2372),
    [sym_class_declaration] = STATE(2372),
    [sym_constructor] = STATE(2372),
    [sym_destructor] = STATE(2372),
    [sym_alias_this] = STATE(2372),
    [sym_interface_declaration] = STATE(2372),
    [sym_enum_declaration] = STATE(2372),
    [sym_anonymous_enum_declaration] = STATE(2372),
    [sym_function_declaration] = STATE(2372),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2372),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2372),
    [sym_template_mixin] = STATE(2372),
    [sym_conditional_declaration] = STATE(2372),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2372),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2372),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1412),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1414),
    [anon_sym_COLON] = ACTIONS(830),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [105] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(102),
    [sym_mixin_declaration] = STATE(102),
    [sym__declaration] = STATE(102),
    [sym__declaration2] = STATE(102),
    [sym_variable_declaration] = STATE(102),
    [sym_manifest_constant] = STATE(102),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(102),
    [sym_alias_declaration] = STATE(102),
    [sym_alias_reassign] = STATE(102),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(102),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(102),
    [sym_pragma_statement] = STATE(102),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(102),
    [aux_sym__declarations_and_statements] = STATE(102),
    [sym__declaration_or_statement] = STATE(102),
    [sym__statement_no_case_no_default] = STATE(102),
    [sym_labeled_statement] = STATE(102),
    [sym_label] = STATE(101),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(102),
    [sym_if_statement] = STATE(102),
    [sym_while_statement] = STATE(102),
    [sym_do_statement] = STATE(102),
    [sym_for_statement] = STATE(102),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(102),
    [sym_switch_statement] = STATE(102),
    [sym_case_statement] = STATE(102),
    [sym_final_switch_statement] = STATE(102),
    [sym_continue_statement] = STATE(102),
    [sym_break_statement] = STATE(102),
    [sym_return_statement] = STATE(102),
    [sym_goto_statement] = STATE(102),
    [sym_with_statement] = STATE(102),
    [sym_synchronized_statement] = STATE(102),
    [sym_try_statement] = STATE(102),
    [sym_scope_guard_statement] = STATE(102),
    [sym_asm_statement] = STATE(102),
    [sym_struct_declaration] = STATE(102),
    [sym_union_declaration] = STATE(102),
    [sym_postblit] = STATE(102),
    [sym_invariant_declaration] = STATE(102),
    [sym_class_declaration] = STATE(102),
    [sym_constructor] = STATE(102),
    [sym_destructor] = STATE(102),
    [sym_alias_this] = STATE(102),
    [sym_interface_declaration] = STATE(102),
    [sym_enum_declaration] = STATE(102),
    [sym_anonymous_enum_declaration] = STATE(102),
    [sym_function_declaration] = STATE(102),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(102),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(102),
    [sym_template_mixin] = STATE(102),
    [sym_conditional_declaration] = STATE(102),
    [sym_conditional_statement] = STATE(102),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(102),
    [sym_static_foreach_declaration] = STATE(102),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(102),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1416),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1418),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [106] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(81),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1408),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [107] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1420),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [108] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(90),
    [sym_mixin_declaration] = STATE(90),
    [sym__declaration] = STATE(90),
    [sym__declaration2] = STATE(90),
    [sym_variable_declaration] = STATE(90),
    [sym_manifest_constant] = STATE(90),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(90),
    [sym_alias_declaration] = STATE(90),
    [sym_alias_reassign] = STATE(90),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(90),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(90),
    [sym_pragma_statement] = STATE(90),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(90),
    [sym_labeled_statement] = STATE(90),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(90),
    [sym_if_statement] = STATE(90),
    [sym_while_statement] = STATE(90),
    [sym_do_statement] = STATE(90),
    [sym_for_statement] = STATE(90),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(90),
    [sym_switch_statement] = STATE(90),
    [sym_final_switch_statement] = STATE(90),
    [sym_continue_statement] = STATE(90),
    [sym_break_statement] = STATE(90),
    [sym_return_statement] = STATE(90),
    [sym_goto_statement] = STATE(90),
    [sym_with_statement] = STATE(90),
    [sym_synchronized_statement] = STATE(90),
    [sym_try_statement] = STATE(90),
    [sym_scope_guard_statement] = STATE(90),
    [sym_asm_statement] = STATE(90),
    [sym_struct_declaration] = STATE(90),
    [sym_union_declaration] = STATE(90),
    [sym_postblit] = STATE(90),
    [sym_invariant_declaration] = STATE(90),
    [sym_class_declaration] = STATE(90),
    [sym_constructor] = STATE(90),
    [sym_destructor] = STATE(90),
    [sym_alias_this] = STATE(90),
    [sym_interface_declaration] = STATE(90),
    [sym_enum_declaration] = STATE(90),
    [sym_anonymous_enum_declaration] = STATE(90),
    [sym_function_declaration] = STATE(90),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(90),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(90),
    [sym_template_mixin] = STATE(90),
    [sym_conditional_declaration] = STATE(90),
    [sym_conditional_statement] = STATE(90),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(90),
    [sym_static_foreach_declaration] = STATE(90),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(90),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(90),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(357),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(357),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1422),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(361),
    [sym_cast] = ACTIONS(121),
    [sym_catch] = ACTIONS(361),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(361),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_finally] = ACTIONS(361),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [109] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1424),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [110] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1426),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [111] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(107),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1426),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [112] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5598),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1428),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1056),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1430),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1080),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1440),
    [sym_shared] = ACTIONS(1090),
    [sym_static] = ACTIONS(1444),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1450),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [113] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1460),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [114] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(111),
    [sym_mixin_declaration] = STATE(111),
    [sym__declaration] = STATE(111),
    [sym__declaration2] = STATE(111),
    [sym_variable_declaration] = STATE(111),
    [sym_manifest_constant] = STATE(111),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(111),
    [sym_alias_declaration] = STATE(111),
    [sym_alias_reassign] = STATE(111),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(111),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(111),
    [sym_pragma_statement] = STATE(111),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(111),
    [aux_sym__declarations_and_statements] = STATE(111),
    [sym__declaration_or_statement] = STATE(111),
    [sym__statement_no_case_no_default] = STATE(111),
    [sym_labeled_statement] = STATE(111),
    [sym_label] = STATE(110),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(111),
    [sym_if_statement] = STATE(111),
    [sym_while_statement] = STATE(111),
    [sym_do_statement] = STATE(111),
    [sym_for_statement] = STATE(111),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(111),
    [sym_switch_statement] = STATE(111),
    [sym_case_statement] = STATE(111),
    [sym_final_switch_statement] = STATE(111),
    [sym_continue_statement] = STATE(111),
    [sym_break_statement] = STATE(111),
    [sym_return_statement] = STATE(111),
    [sym_goto_statement] = STATE(111),
    [sym_with_statement] = STATE(111),
    [sym_synchronized_statement] = STATE(111),
    [sym_try_statement] = STATE(111),
    [sym_scope_guard_statement] = STATE(111),
    [sym_asm_statement] = STATE(111),
    [sym_struct_declaration] = STATE(111),
    [sym_union_declaration] = STATE(111),
    [sym_postblit] = STATE(111),
    [sym_invariant_declaration] = STATE(111),
    [sym_class_declaration] = STATE(111),
    [sym_constructor] = STATE(111),
    [sym_destructor] = STATE(111),
    [sym_alias_this] = STATE(111),
    [sym_interface_declaration] = STATE(111),
    [sym_enum_declaration] = STATE(111),
    [sym_anonymous_enum_declaration] = STATE(111),
    [sym_function_declaration] = STATE(111),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(111),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(111),
    [sym_template_mixin] = STATE(111),
    [sym_conditional_declaration] = STATE(111),
    [sym_conditional_statement] = STATE(111),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(111),
    [sym_static_foreach_declaration] = STATE(111),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(111),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1462),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1464),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [115] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(73),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1466),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [116] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1468),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [117] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(126),
    [sym_mixin_declaration] = STATE(126),
    [sym__declaration] = STATE(126),
    [sym__declaration2] = STATE(126),
    [sym_variable_declaration] = STATE(126),
    [sym_manifest_constant] = STATE(126),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(126),
    [sym_alias_declaration] = STATE(126),
    [sym_alias_reassign] = STATE(126),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(126),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(126),
    [sym_pragma_statement] = STATE(126),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(126),
    [aux_sym__declarations_and_statements] = STATE(126),
    [sym__declaration_or_statement] = STATE(126),
    [sym__statement_no_case_no_default] = STATE(126),
    [sym_labeled_statement] = STATE(126),
    [sym_label] = STATE(127),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(126),
    [sym_if_statement] = STATE(126),
    [sym_while_statement] = STATE(126),
    [sym_do_statement] = STATE(126),
    [sym_for_statement] = STATE(126),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(126),
    [sym_switch_statement] = STATE(126),
    [sym_case_statement] = STATE(126),
    [sym_final_switch_statement] = STATE(126),
    [sym_continue_statement] = STATE(126),
    [sym_break_statement] = STATE(126),
    [sym_return_statement] = STATE(126),
    [sym_goto_statement] = STATE(126),
    [sym_with_statement] = STATE(126),
    [sym_synchronized_statement] = STATE(126),
    [sym_try_statement] = STATE(126),
    [sym_scope_guard_statement] = STATE(126),
    [sym_asm_statement] = STATE(126),
    [sym_struct_declaration] = STATE(126),
    [sym_union_declaration] = STATE(126),
    [sym_postblit] = STATE(126),
    [sym_invariant_declaration] = STATE(126),
    [sym_class_declaration] = STATE(126),
    [sym_constructor] = STATE(126),
    [sym_destructor] = STATE(126),
    [sym_alias_this] = STATE(126),
    [sym_interface_declaration] = STATE(126),
    [sym_enum_declaration] = STATE(126),
    [sym_anonymous_enum_declaration] = STATE(126),
    [sym_function_declaration] = STATE(126),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(126),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(126),
    [sym_template_mixin] = STATE(126),
    [sym_conditional_declaration] = STATE(126),
    [sym_conditional_statement] = STATE(126),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(126),
    [sym_static_foreach_declaration] = STATE(126),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(126),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1470),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1472),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [118] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1474),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(1477),
    [anon_sym_RBRACE] = ACTIONS(1480),
    [anon_sym_LBRACE] = ACTIONS(1482),
    [anon_sym_DOT] = ACTIONS(1485),
    [anon_sym_AMP] = ACTIONS(1488),
    [anon_sym_DASH] = ACTIONS(1491),
    [anon_sym_DASH_DASH] = ACTIONS(1488),
    [anon_sym_PLUS] = ACTIONS(1491),
    [anon_sym_PLUS_PLUS] = ACTIONS(1488),
    [anon_sym_BANG] = ACTIONS(1488),
    [anon_sym_LPAREN] = ACTIONS(1494),
    [anon_sym_LBRACK] = ACTIONS(1497),
    [anon_sym_SEMI] = ACTIONS(1500),
    [anon_sym_DOLLAR] = ACTIONS(1503),
    [anon_sym_STAR] = ACTIONS(1488),
    [anon_sym_TILDE] = ACTIONS(1506),
    [anon_sym_AT] = ACTIONS(1509),
    [sym_bool] = ACTIONS(1512),
    [sym_byte] = ACTIONS(1512),
    [sym_ubyte] = ACTIONS(1512),
    [sym_char] = ACTIONS(1512),
    [sym_short] = ACTIONS(1512),
    [sym_ushort] = ACTIONS(1512),
    [sym_int] = ACTIONS(1512),
    [sym_uint] = ACTIONS(1512),
    [sym_long] = ACTIONS(1512),
    [sym_ulong] = ACTIONS(1512),
    [sym_cent] = ACTIONS(1512),
    [sym_ucent] = ACTIONS(1512),
    [sym_wchar] = ACTIONS(1512),
    [sym_dchar] = ACTIONS(1512),
    [sym_float] = ACTIONS(1512),
    [sym_double] = ACTIONS(1512),
    [sym_real] = ACTIONS(1512),
    [sym_ifloat] = ACTIONS(1512),
    [sym_idouble] = ACTIONS(1512),
    [sym_ireal] = ACTIONS(1512),
    [sym_cfloat] = ACTIONS(1512),
    [sym_cdouble] = ACTIONS(1512),
    [sym_creal] = ACTIONS(1512),
    [sym_size_t] = ACTIONS(1512),
    [sym_ptrdiff_t] = ACTIONS(1512),
    [sym_string] = ACTIONS(1512),
    [sym_cstring] = ACTIONS(1512),
    [sym_dstring] = ACTIONS(1512),
    [sym_wstring] = ACTIONS(1512),
    [sym_noreturn] = ACTIONS(1512),
    [sym_true] = ACTIONS(1515),
    [sym_false] = ACTIONS(1515),
    [sym_null] = ACTIONS(1515),
    [sym_super] = ACTIONS(1515),
    [sym_this] = ACTIONS(1518),
    [sym_abstract] = ACTIONS(1521),
    [sym_alias] = ACTIONS(1524),
    [sym_align] = ACTIONS(1527),
    [sym_asm] = ACTIONS(1530),
    [sym_assert] = ACTIONS(1533),
    [sym_auto] = ACTIONS(1536),
    [sym_break] = ACTIONS(1539),
    [sym_case] = ACTIONS(1542),
    [sym_cast] = ACTIONS(1545),
    [sym_class] = ACTIONS(1548),
    [sym_const] = ACTIONS(1551),
    [sym_continue] = ACTIONS(1554),
    [sym_debug] = ACTIONS(1557),
    [sym_default] = ACTIONS(1560),
    [sym_delegate] = ACTIONS(1563),
    [sym_delete] = ACTIONS(1566),
    [sym_deprecated] = ACTIONS(1569),
    [sym_do] = ACTIONS(1572),
    [sym_enum] = ACTIONS(1575),
    [sym_export] = ACTIONS(1578),
    [sym_extern] = ACTIONS(1581),
    [sym_final] = ACTIONS(1584),
    [sym_for] = ACTIONS(1587),
    [sym_foreach] = ACTIONS(1590),
    [sym_foreach_reverse] = ACTIONS(1590),
    [sym_function] = ACTIONS(1593),
    [sym_goto] = ACTIONS(1596),
    [sym_if] = ACTIONS(1599),
    [sym_immutable] = ACTIONS(1551),
    [sym_import] = ACTIONS(1602),
    [sym_in] = ACTIONS(1605),
    [sym_inout] = ACTIONS(1551),
    [sym_interface] = ACTIONS(1608),
    [sym_invariant] = ACTIONS(1611),
    [sym_is] = ACTIONS(1614),
    [sym_mixin] = ACTIONS(1617),
    [sym_new] = ACTIONS(1620),
    [sym_nothrow] = ACTIONS(1521),
    [sym_out] = ACTIONS(1623),
    [sym_override] = ACTIONS(1521),
    [sym_package] = ACTIONS(1626),
    [sym_pragma] = ACTIONS(1629),
    [sym_private] = ACTIONS(1578),
    [sym_protected] = ACTIONS(1578),
    [sym_public] = ACTIONS(1578),
    [sym_pure] = ACTIONS(1521),
    [sym_ref] = ACTIONS(1632),
    [sym_return] = ACTIONS(1635),
    [sym_scope] = ACTIONS(1638),
    [sym_shared] = ACTIONS(1641),
    [sym_static] = ACTIONS(1644),
    [sym_struct] = ACTIONS(1647),
    [sym_switch] = ACTIONS(1650),
    [sym_synchronized] = ACTIONS(1653),
    [sym_template] = ACTIONS(1656),
    [sym_throw] = ACTIONS(1659),
    [sym_try] = ACTIONS(1662),
    [sym_typeid] = ACTIONS(1665),
    [sym_typeof] = ACTIONS(1668),
    [sym_union] = ACTIONS(1671),
    [sym_unittest] = ACTIONS(1674),
    [sym_version] = ACTIONS(1677),
    [sym_while] = ACTIONS(1680),
    [sym_with] = ACTIONS(1683),
    [sym_gshared] = ACTIONS(1521),
    [sym_traits] = ACTIONS(1686),
    [sym_vector] = ACTIONS(1689),
    [sym_void] = ACTIONS(1692),
    [anon_sym_BQUOTE] = ACTIONS(1695),
    [anon_sym_r_DQUOTE] = ACTIONS(1698),
    [anon_sym_x_DQUOTE] = ACTIONS(1701),
    [anon_sym_DQUOTE] = ACTIONS(1704),
    [anon_sym_i_BQUOTE] = ACTIONS(1707),
    [anon_sym_i_DQUOTE] = ACTIONS(1710),
    [anon_sym_iq_LBRACE] = ACTIONS(1713),
    [aux_sym_char_literal_token1] = ACTIONS(1716),
    [anon_sym_SQUOTE] = ACTIONS(1719),
    [anon_sym___DATE__] = ACTIONS(1722),
    [anon_sym___FILE__] = ACTIONS(1722),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(1722),
    [anon_sym___FUNCTION__] = ACTIONS(1722),
    [anon_sym___LINE__] = ACTIONS(1722),
    [anon_sym___MODULE__] = ACTIONS(1722),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(1722),
    [anon_sym___TIME__] = ACTIONS(1722),
    [anon_sym___TIMESTAMP__] = ACTIONS(1722),
    [anon_sym___VENDOR__] = ACTIONS(1722),
    [anon_sym___VERSION__] = ACTIONS(1722),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(1725),
    [sym_float_literal] = ACTIONS(1725),
    [sym__string] = ACTIONS(1728),
  },
  [119] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1731),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [120] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(116),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1731),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [121] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1466),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [122] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(6405),
    [sym_mixin_declaration] = STATE(6405),
    [sym__declaration] = STATE(6405),
    [sym__declaration2] = STATE(6405),
    [sym_variable_declaration] = STATE(6405),
    [sym_manifest_constant] = STATE(6405),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(6405),
    [sym_alias_declaration] = STATE(6405),
    [sym_alias_reassign] = STATE(6405),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(6405),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(6405),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(6406),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(6405),
    [sym_union_declaration] = STATE(6405),
    [sym_postblit] = STATE(6405),
    [sym_invariant_declaration] = STATE(6405),
    [sym_class_declaration] = STATE(6405),
    [sym_constructor] = STATE(6405),
    [sym_destructor] = STATE(6405),
    [sym_alias_this] = STATE(6405),
    [sym_interface_declaration] = STATE(6405),
    [sym_enum_declaration] = STATE(6405),
    [sym_anonymous_enum_declaration] = STATE(6405),
    [sym_function_declaration] = STATE(6405),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(6405),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(6405),
    [sym_template_mixin] = STATE(6405),
    [sym_conditional_declaration] = STATE(6405),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(6405),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(6405),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1735),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1737),
    [anon_sym_COLON] = ACTIONS(1739),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [123] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1373),
    [sym_mixin_declaration] = STATE(1373),
    [sym__declaration] = STATE(1373),
    [sym__declaration2] = STATE(1373),
    [sym_variable_declaration] = STATE(1373),
    [sym_manifest_constant] = STATE(1373),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1373),
    [sym_alias_declaration] = STATE(1373),
    [sym_alias_reassign] = STATE(1373),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1373),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1373),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1372),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1373),
    [sym_union_declaration] = STATE(1373),
    [sym_postblit] = STATE(1373),
    [sym_invariant_declaration] = STATE(1373),
    [sym_class_declaration] = STATE(1373),
    [sym_constructor] = STATE(1373),
    [sym_destructor] = STATE(1373),
    [sym_alias_this] = STATE(1373),
    [sym_interface_declaration] = STATE(1373),
    [sym_enum_declaration] = STATE(1373),
    [sym_anonymous_enum_declaration] = STATE(1373),
    [sym_function_declaration] = STATE(1373),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1373),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1373),
    [sym_template_mixin] = STATE(1373),
    [sym_conditional_declaration] = STATE(1373),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1373),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1373),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1753),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1755),
    [anon_sym_COLON] = ACTIONS(1024),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [124] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5598),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1268),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(678),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(1757),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(690),
    [sym_bool] = ACTIONS(694),
    [sym_byte] = ACTIONS(694),
    [sym_ubyte] = ACTIONS(694),
    [sym_char] = ACTIONS(694),
    [sym_short] = ACTIONS(694),
    [sym_ushort] = ACTIONS(694),
    [sym_int] = ACTIONS(694),
    [sym_uint] = ACTIONS(694),
    [sym_long] = ACTIONS(694),
    [sym_ulong] = ACTIONS(694),
    [sym_cent] = ACTIONS(694),
    [sym_ucent] = ACTIONS(694),
    [sym_wchar] = ACTIONS(694),
    [sym_dchar] = ACTIONS(694),
    [sym_float] = ACTIONS(694),
    [sym_double] = ACTIONS(694),
    [sym_real] = ACTIONS(694),
    [sym_ifloat] = ACTIONS(694),
    [sym_idouble] = ACTIONS(694),
    [sym_ireal] = ACTIONS(694),
    [sym_cfloat] = ACTIONS(694),
    [sym_cdouble] = ACTIONS(694),
    [sym_creal] = ACTIONS(694),
    [sym_size_t] = ACTIONS(694),
    [sym_ptrdiff_t] = ACTIONS(694),
    [sym_string] = ACTIONS(694),
    [sym_cstring] = ACTIONS(694),
    [sym_dstring] = ACTIONS(694),
    [sym_wstring] = ACTIONS(694),
    [sym_noreturn] = ACTIONS(694),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(700),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(706),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(712),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(722),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(732),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1280),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(744),
    [sym_final] = ACTIONS(1759),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(722),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(722),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1298),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(700),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(700),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(700),
    [sym_ref] = ACTIONS(770),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1769),
    [sym_shared] = ACTIONS(1306),
    [sym_static] = ACTIONS(1773),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1779),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(800),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(700),
    [sym_traits] = ACTIONS(814),
    [sym_vector] = ACTIONS(818),
    [sym_void] = ACTIONS(822),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [125] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(120),
    [sym_mixin_declaration] = STATE(120),
    [sym__declaration] = STATE(120),
    [sym__declaration2] = STATE(120),
    [sym_variable_declaration] = STATE(120),
    [sym_manifest_constant] = STATE(120),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(120),
    [sym_alias_declaration] = STATE(120),
    [sym_alias_reassign] = STATE(120),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(120),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(120),
    [sym_pragma_statement] = STATE(120),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(120),
    [aux_sym__declarations_and_statements] = STATE(120),
    [sym__declaration_or_statement] = STATE(120),
    [sym__statement_no_case_no_default] = STATE(120),
    [sym_labeled_statement] = STATE(120),
    [sym_label] = STATE(119),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(120),
    [sym_if_statement] = STATE(120),
    [sym_while_statement] = STATE(120),
    [sym_do_statement] = STATE(120),
    [sym_for_statement] = STATE(120),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(120),
    [sym_switch_statement] = STATE(120),
    [sym_case_statement] = STATE(120),
    [sym_final_switch_statement] = STATE(120),
    [sym_continue_statement] = STATE(120),
    [sym_break_statement] = STATE(120),
    [sym_return_statement] = STATE(120),
    [sym_goto_statement] = STATE(120),
    [sym_with_statement] = STATE(120),
    [sym_synchronized_statement] = STATE(120),
    [sym_try_statement] = STATE(120),
    [sym_scope_guard_statement] = STATE(120),
    [sym_asm_statement] = STATE(120),
    [sym_struct_declaration] = STATE(120),
    [sym_union_declaration] = STATE(120),
    [sym_postblit] = STATE(120),
    [sym_invariant_declaration] = STATE(120),
    [sym_class_declaration] = STATE(120),
    [sym_constructor] = STATE(120),
    [sym_destructor] = STATE(120),
    [sym_alias_this] = STATE(120),
    [sym_interface_declaration] = STATE(120),
    [sym_enum_declaration] = STATE(120),
    [sym_anonymous_enum_declaration] = STATE(120),
    [sym_function_declaration] = STATE(120),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(120),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(120),
    [sym_template_mixin] = STATE(120),
    [sym_conditional_declaration] = STATE(120),
    [sym_conditional_statement] = STATE(120),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(120),
    [sym_static_foreach_declaration] = STATE(120),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(120),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1789),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1791),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [126] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(118),
    [sym_mixin_declaration] = STATE(118),
    [sym__declaration] = STATE(118),
    [sym__declaration2] = STATE(118),
    [sym_variable_declaration] = STATE(118),
    [sym_manifest_constant] = STATE(118),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(118),
    [sym_alias_declaration] = STATE(118),
    [sym_alias_reassign] = STATE(118),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(118),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(118),
    [sym_pragma_statement] = STATE(118),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(118),
    [aux_sym__declarations_and_statements] = STATE(118),
    [sym__declaration_or_statement] = STATE(118),
    [sym__statement_no_case_no_default] = STATE(118),
    [sym_labeled_statement] = STATE(118),
    [sym_label] = STATE(64),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(118),
    [sym_if_statement] = STATE(118),
    [sym_while_statement] = STATE(118),
    [sym_do_statement] = STATE(118),
    [sym_for_statement] = STATE(118),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(118),
    [sym_switch_statement] = STATE(118),
    [sym_case_statement] = STATE(118),
    [sym_final_switch_statement] = STATE(118),
    [sym_continue_statement] = STATE(118),
    [sym_break_statement] = STATE(118),
    [sym_return_statement] = STATE(118),
    [sym_goto_statement] = STATE(118),
    [sym_with_statement] = STATE(118),
    [sym_synchronized_statement] = STATE(118),
    [sym_try_statement] = STATE(118),
    [sym_scope_guard_statement] = STATE(118),
    [sym_asm_statement] = STATE(118),
    [sym_struct_declaration] = STATE(118),
    [sym_union_declaration] = STATE(118),
    [sym_postblit] = STATE(118),
    [sym_invariant_declaration] = STATE(118),
    [sym_class_declaration] = STATE(118),
    [sym_constructor] = STATE(118),
    [sym_destructor] = STATE(118),
    [sym_alias_this] = STATE(118),
    [sym_interface_declaration] = STATE(118),
    [sym_enum_declaration] = STATE(118),
    [sym_anonymous_enum_declaration] = STATE(118),
    [sym_function_declaration] = STATE(118),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(118),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(118),
    [sym_template_mixin] = STATE(118),
    [sym_conditional_declaration] = STATE(118),
    [sym_conditional_statement] = STATE(118),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(118),
    [sym_static_foreach_declaration] = STATE(118),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(118),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1793),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(860),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [127] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1793),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [128] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2235),
    [sym_mixin_declaration] = STATE(2235),
    [sym__declaration] = STATE(2235),
    [sym__declaration2] = STATE(2235),
    [sym_variable_declaration] = STATE(2235),
    [sym_manifest_constant] = STATE(2235),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2235),
    [sym_alias_declaration] = STATE(2235),
    [sym_alias_reassign] = STATE(2235),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2235),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2235),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2344),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2235),
    [sym_union_declaration] = STATE(2235),
    [sym_postblit] = STATE(2235),
    [sym_invariant_declaration] = STATE(2235),
    [sym_class_declaration] = STATE(2235),
    [sym_constructor] = STATE(2235),
    [sym_destructor] = STATE(2235),
    [sym_alias_this] = STATE(2235),
    [sym_interface_declaration] = STATE(2235),
    [sym_enum_declaration] = STATE(2235),
    [sym_anonymous_enum_declaration] = STATE(2235),
    [sym_function_declaration] = STATE(2235),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2235),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2235),
    [sym_template_mixin] = STATE(2235),
    [sym_conditional_declaration] = STATE(2235),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2235),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2235),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1795),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1797),
    [anon_sym_COLON] = ACTIONS(1024),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [129] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(106),
    [sym_mixin_declaration] = STATE(106),
    [sym__declaration] = STATE(106),
    [sym__declaration2] = STATE(106),
    [sym_variable_declaration] = STATE(106),
    [sym_manifest_constant] = STATE(106),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(106),
    [sym_alias_declaration] = STATE(106),
    [sym_alias_reassign] = STATE(106),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(106),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(106),
    [sym_pragma_statement] = STATE(106),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(106),
    [aux_sym__declarations_and_statements] = STATE(106),
    [sym__declaration_or_statement] = STATE(106),
    [sym__statement_no_case_no_default] = STATE(106),
    [sym_labeled_statement] = STATE(106),
    [sym_label] = STATE(100),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(106),
    [sym_if_statement] = STATE(106),
    [sym_while_statement] = STATE(106),
    [sym_do_statement] = STATE(106),
    [sym_for_statement] = STATE(106),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(106),
    [sym_switch_statement] = STATE(106),
    [sym_case_statement] = STATE(106),
    [sym_final_switch_statement] = STATE(106),
    [sym_continue_statement] = STATE(106),
    [sym_break_statement] = STATE(106),
    [sym_return_statement] = STATE(106),
    [sym_goto_statement] = STATE(106),
    [sym_with_statement] = STATE(106),
    [sym_synchronized_statement] = STATE(106),
    [sym_try_statement] = STATE(106),
    [sym_scope_guard_statement] = STATE(106),
    [sym_asm_statement] = STATE(106),
    [sym_struct_declaration] = STATE(106),
    [sym_union_declaration] = STATE(106),
    [sym_postblit] = STATE(106),
    [sym_invariant_declaration] = STATE(106),
    [sym_class_declaration] = STATE(106),
    [sym_constructor] = STATE(106),
    [sym_destructor] = STATE(106),
    [sym_alias_this] = STATE(106),
    [sym_interface_declaration] = STATE(106),
    [sym_enum_declaration] = STATE(106),
    [sym_anonymous_enum_declaration] = STATE(106),
    [sym_function_declaration] = STATE(106),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(106),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(106),
    [sym_template_mixin] = STATE(106),
    [sym_conditional_declaration] = STATE(106),
    [sym_conditional_statement] = STATE(106),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(106),
    [sym_static_foreach_declaration] = STATE(106),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(106),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(1799),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(97),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [130] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(6580),
    [sym_mixin_declaration] = STATE(6580),
    [sym__declaration] = STATE(6580),
    [sym__declaration2] = STATE(6580),
    [sym_variable_declaration] = STATE(6580),
    [sym_manifest_constant] = STATE(6580),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(6580),
    [sym_alias_declaration] = STATE(6580),
    [sym_alias_reassign] = STATE(6580),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(6580),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(6580),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(6597),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(6580),
    [sym_union_declaration] = STATE(6580),
    [sym_postblit] = STATE(6580),
    [sym_invariant_declaration] = STATE(6580),
    [sym_class_declaration] = STATE(6580),
    [sym_constructor] = STATE(6580),
    [sym_destructor] = STATE(6580),
    [sym_alias_this] = STATE(6580),
    [sym_interface_declaration] = STATE(6580),
    [sym_enum_declaration] = STATE(6580),
    [sym_anonymous_enum_declaration] = STATE(6580),
    [sym_function_declaration] = STATE(6580),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(6580),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(6580),
    [sym_template_mixin] = STATE(6580),
    [sym_conditional_declaration] = STATE(6580),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(6580),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(6580),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1801),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1803),
    [anon_sym_COLON] = ACTIONS(1739),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [131] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5659),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [132] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1726),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [133] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [134] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2204),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [135] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2209),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [136] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2210),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [137] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2216),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [138] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2219),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [139] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2220),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [140] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2222),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [141] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2224),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [142] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2254),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [143] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2259),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [144] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2262),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [145] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2263),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [146] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2275),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [147] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2291),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [148] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2331),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [149] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2343),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [150] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2181),
    [sym_mixin_declaration] = STATE(2181),
    [sym__declaration] = STATE(2181),
    [sym__declaration2] = STATE(2181),
    [sym_variable_declaration] = STATE(2181),
    [sym_manifest_constant] = STATE(2181),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2181),
    [sym_alias_declaration] = STATE(2181),
    [sym_alias_reassign] = STATE(2181),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2181),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2181),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2181),
    [sym_union_declaration] = STATE(2181),
    [sym_postblit] = STATE(2181),
    [sym_invariant_declaration] = STATE(2181),
    [sym_class_declaration] = STATE(2181),
    [sym_constructor] = STATE(2181),
    [sym_destructor] = STATE(2181),
    [sym_alias_this] = STATE(2181),
    [sym_interface_declaration] = STATE(2181),
    [sym_enum_declaration] = STATE(2181),
    [sym_anonymous_enum_declaration] = STATE(2181),
    [sym_function_declaration] = STATE(2181),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2181),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2181),
    [sym_template_mixin] = STATE(2181),
    [sym_conditional_declaration] = STATE(2181),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2181),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2181),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1813),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1815),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [151] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2182),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [152] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2293),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [153] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(7885),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3972),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [154] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(7850),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3972),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [155] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [156] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2178),
    [sym_mixin_declaration] = STATE(2178),
    [sym__declaration] = STATE(2178),
    [sym__declaration2] = STATE(2178),
    [sym_variable_declaration] = STATE(2178),
    [sym_manifest_constant] = STATE(2178),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2178),
    [sym_alias_declaration] = STATE(2178),
    [sym_alias_reassign] = STATE(2178),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2178),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2178),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2178),
    [sym_union_declaration] = STATE(2178),
    [sym_postblit] = STATE(2178),
    [sym_invariant_declaration] = STATE(2178),
    [sym_class_declaration] = STATE(2178),
    [sym_constructor] = STATE(2178),
    [sym_destructor] = STATE(2178),
    [sym_alias_this] = STATE(2178),
    [sym_interface_declaration] = STATE(2178),
    [sym_enum_declaration] = STATE(2178),
    [sym_anonymous_enum_declaration] = STATE(2178),
    [sym_function_declaration] = STATE(2178),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2178),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2178),
    [sym_template_mixin] = STATE(2178),
    [sym_conditional_declaration] = STATE(2178),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2178),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2178),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1817),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1819),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [157] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [158] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(194),
    [sym_mixin_declaration] = STATE(194),
    [sym__declaration] = STATE(194),
    [sym__declaration2] = STATE(194),
    [sym_variable_declaration] = STATE(194),
    [sym_manifest_constant] = STATE(194),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(194),
    [sym_alias_declaration] = STATE(194),
    [sym_alias_reassign] = STATE(194),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(194),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(194),
    [sym_pragma_statement] = STATE(194),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(194),
    [sym_labeled_statement] = STATE(194),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(194),
    [sym_if_statement] = STATE(194),
    [sym_while_statement] = STATE(194),
    [sym_do_statement] = STATE(194),
    [sym_for_statement] = STATE(194),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(194),
    [sym_switch_statement] = STATE(194),
    [sym_final_switch_statement] = STATE(194),
    [sym_continue_statement] = STATE(194),
    [sym_break_statement] = STATE(194),
    [sym_return_statement] = STATE(194),
    [sym_goto_statement] = STATE(194),
    [sym_with_statement] = STATE(194),
    [sym_synchronized_statement] = STATE(194),
    [sym_try_statement] = STATE(194),
    [sym_scope_guard_statement] = STATE(194),
    [sym_asm_statement] = STATE(194),
    [sym_struct_declaration] = STATE(194),
    [sym_union_declaration] = STATE(194),
    [sym_postblit] = STATE(194),
    [sym_invariant_declaration] = STATE(194),
    [sym_class_declaration] = STATE(194),
    [sym_constructor] = STATE(194),
    [sym_destructor] = STATE(194),
    [sym_alias_this] = STATE(194),
    [sym_interface_declaration] = STATE(194),
    [sym_enum_declaration] = STATE(194),
    [sym_anonymous_enum_declaration] = STATE(194),
    [sym_function_declaration] = STATE(194),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(194),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(194),
    [sym_template_mixin] = STATE(194),
    [sym_conditional_declaration] = STATE(194),
    [sym_conditional_statement] = STATE(194),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(194),
    [sym_static_foreach_declaration] = STATE(194),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(194),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(194),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1821),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(267),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [159] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(196),
    [sym_mixin_declaration] = STATE(196),
    [sym__declaration] = STATE(196),
    [sym__declaration2] = STATE(196),
    [sym_variable_declaration] = STATE(196),
    [sym_manifest_constant] = STATE(196),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(196),
    [sym_alias_declaration] = STATE(196),
    [sym_alias_reassign] = STATE(196),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(196),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(196),
    [sym_pragma_statement] = STATE(196),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(196),
    [sym_labeled_statement] = STATE(196),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(196),
    [sym_if_statement] = STATE(196),
    [sym_while_statement] = STATE(196),
    [sym_do_statement] = STATE(196),
    [sym_for_statement] = STATE(196),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(196),
    [sym_switch_statement] = STATE(196),
    [sym_final_switch_statement] = STATE(196),
    [sym_continue_statement] = STATE(196),
    [sym_break_statement] = STATE(196),
    [sym_return_statement] = STATE(196),
    [sym_goto_statement] = STATE(196),
    [sym_with_statement] = STATE(196),
    [sym_synchronized_statement] = STATE(196),
    [sym_try_statement] = STATE(196),
    [sym_scope_guard_statement] = STATE(196),
    [sym_asm_statement] = STATE(196),
    [sym_struct_declaration] = STATE(196),
    [sym_union_declaration] = STATE(196),
    [sym_postblit] = STATE(196),
    [sym_invariant_declaration] = STATE(196),
    [sym_class_declaration] = STATE(196),
    [sym_constructor] = STATE(196),
    [sym_destructor] = STATE(196),
    [sym_alias_this] = STATE(196),
    [sym_interface_declaration] = STATE(196),
    [sym_enum_declaration] = STATE(196),
    [sym_anonymous_enum_declaration] = STATE(196),
    [sym_function_declaration] = STATE(196),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(196),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(196),
    [sym_template_mixin] = STATE(196),
    [sym_conditional_declaration] = STATE(196),
    [sym_conditional_statement] = STATE(196),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(196),
    [sym_static_foreach_declaration] = STATE(196),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(196),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(196),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1823),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(267),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [160] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1562),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [161] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2172),
    [sym_mixin_declaration] = STATE(2172),
    [sym__declaration] = STATE(2172),
    [sym__declaration2] = STATE(2172),
    [sym_variable_declaration] = STATE(2172),
    [sym_manifest_constant] = STATE(2172),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2172),
    [sym_alias_declaration] = STATE(2172),
    [sym_alias_reassign] = STATE(2172),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2172),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2172),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2172),
    [sym_union_declaration] = STATE(2172),
    [sym_postblit] = STATE(2172),
    [sym_invariant_declaration] = STATE(2172),
    [sym_class_declaration] = STATE(2172),
    [sym_constructor] = STATE(2172),
    [sym_destructor] = STATE(2172),
    [sym_alias_this] = STATE(2172),
    [sym_interface_declaration] = STATE(2172),
    [sym_enum_declaration] = STATE(2172),
    [sym_anonymous_enum_declaration] = STATE(2172),
    [sym_function_declaration] = STATE(2172),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2172),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2172),
    [sym_template_mixin] = STATE(2172),
    [sym_conditional_declaration] = STATE(2172),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2172),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2172),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1825),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1827),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [162] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1536),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [163] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2172),
    [sym_mixin_declaration] = STATE(2172),
    [sym__declaration] = STATE(2172),
    [sym__declaration2] = STATE(2172),
    [sym_variable_declaration] = STATE(2172),
    [sym_manifest_constant] = STATE(2172),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2172),
    [sym_alias_declaration] = STATE(2172),
    [sym_alias_reassign] = STATE(2172),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2172),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2172),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2172),
    [sym_union_declaration] = STATE(2172),
    [sym_postblit] = STATE(2172),
    [sym_invariant_declaration] = STATE(2172),
    [sym_class_declaration] = STATE(2172),
    [sym_constructor] = STATE(2172),
    [sym_destructor] = STATE(2172),
    [sym_alias_this] = STATE(2172),
    [sym_interface_declaration] = STATE(2172),
    [sym_enum_declaration] = STATE(2172),
    [sym_anonymous_enum_declaration] = STATE(2172),
    [sym_function_declaration] = STATE(2172),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2172),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2172),
    [sym_template_mixin] = STATE(2172),
    [sym_conditional_declaration] = STATE(2172),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2172),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2172),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1825),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1827),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [164] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [165] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2178),
    [sym_mixin_declaration] = STATE(2178),
    [sym__declaration] = STATE(2178),
    [sym__declaration2] = STATE(2178),
    [sym_variable_declaration] = STATE(2178),
    [sym_manifest_constant] = STATE(2178),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2178),
    [sym_alias_declaration] = STATE(2178),
    [sym_alias_reassign] = STATE(2178),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2178),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2178),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2178),
    [sym_union_declaration] = STATE(2178),
    [sym_postblit] = STATE(2178),
    [sym_invariant_declaration] = STATE(2178),
    [sym_class_declaration] = STATE(2178),
    [sym_constructor] = STATE(2178),
    [sym_destructor] = STATE(2178),
    [sym_alias_this] = STATE(2178),
    [sym_interface_declaration] = STATE(2178),
    [sym_enum_declaration] = STATE(2178),
    [sym_anonymous_enum_declaration] = STATE(2178),
    [sym_function_declaration] = STATE(2178),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2178),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2178),
    [sym_template_mixin] = STATE(2178),
    [sym_conditional_declaration] = STATE(2178),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2178),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2178),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1817),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1819),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [166] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [167] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2181),
    [sym_mixin_declaration] = STATE(2181),
    [sym__declaration] = STATE(2181),
    [sym__declaration2] = STATE(2181),
    [sym_variable_declaration] = STATE(2181),
    [sym_manifest_constant] = STATE(2181),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2181),
    [sym_alias_declaration] = STATE(2181),
    [sym_alias_reassign] = STATE(2181),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2181),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2181),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2181),
    [sym_union_declaration] = STATE(2181),
    [sym_postblit] = STATE(2181),
    [sym_invariant_declaration] = STATE(2181),
    [sym_class_declaration] = STATE(2181),
    [sym_constructor] = STATE(2181),
    [sym_destructor] = STATE(2181),
    [sym_alias_this] = STATE(2181),
    [sym_interface_declaration] = STATE(2181),
    [sym_enum_declaration] = STATE(2181),
    [sym_anonymous_enum_declaration] = STATE(2181),
    [sym_function_declaration] = STATE(2181),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2181),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2181),
    [sym_template_mixin] = STATE(2181),
    [sym_conditional_declaration] = STATE(2181),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2181),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2181),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1813),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1815),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [168] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2182),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [169] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2185),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [170] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [171] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2204),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [172] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2209),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [173] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2210),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [174] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2216),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [175] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2219),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [176] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2220),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [177] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2222),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [178] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2224),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [179] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2254),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [180] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2259),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [181] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2262),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [182] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2263),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [183] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2275),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [184] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2291),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [185] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2331),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [186] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2343),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [187] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5691),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [188] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1539),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [189] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2293),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [190] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(233),
    [sym_mixin_declaration] = STATE(233),
    [sym__declaration] = STATE(233),
    [sym__declaration2] = STATE(233),
    [sym_variable_declaration] = STATE(233),
    [sym_manifest_constant] = STATE(233),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(233),
    [sym_alias_declaration] = STATE(233),
    [sym_alias_reassign] = STATE(233),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(233),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(233),
    [sym_pragma_statement] = STATE(233),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(233),
    [sym_labeled_statement] = STATE(233),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(233),
    [sym_if_statement] = STATE(233),
    [sym_while_statement] = STATE(233),
    [sym_do_statement] = STATE(233),
    [sym_for_statement] = STATE(233),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(233),
    [sym_switch_statement] = STATE(233),
    [sym_final_switch_statement] = STATE(233),
    [sym_continue_statement] = STATE(233),
    [sym_break_statement] = STATE(233),
    [sym_return_statement] = STATE(233),
    [sym_goto_statement] = STATE(233),
    [sym_with_statement] = STATE(233),
    [sym_synchronized_statement] = STATE(233),
    [sym_try_statement] = STATE(233),
    [sym_scope_guard_statement] = STATE(233),
    [sym_asm_statement] = STATE(233),
    [sym_struct_declaration] = STATE(233),
    [sym_union_declaration] = STATE(233),
    [sym_postblit] = STATE(233),
    [sym_invariant_declaration] = STATE(233),
    [sym_class_declaration] = STATE(233),
    [sym_constructor] = STATE(233),
    [sym_destructor] = STATE(233),
    [sym_alias_this] = STATE(233),
    [sym_interface_declaration] = STATE(233),
    [sym_enum_declaration] = STATE(233),
    [sym_anonymous_enum_declaration] = STATE(233),
    [sym_function_declaration] = STATE(233),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(233),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(233),
    [sym_template_mixin] = STATE(233),
    [sym_conditional_declaration] = STATE(233),
    [sym_conditional_statement] = STATE(233),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(233),
    [sym_static_foreach_declaration] = STATE(233),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(233),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(233),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1829),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(381),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [191] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1612),
    [sym_mixin_declaration] = STATE(1612),
    [sym__declaration] = STATE(1612),
    [sym__declaration2] = STATE(1612),
    [sym_variable_declaration] = STATE(1612),
    [sym_manifest_constant] = STATE(1612),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1612),
    [sym_alias_declaration] = STATE(1612),
    [sym_alias_reassign] = STATE(1612),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1612),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1612),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1605),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1612),
    [sym_union_declaration] = STATE(1612),
    [sym_postblit] = STATE(1612),
    [sym_invariant_declaration] = STATE(1612),
    [sym_class_declaration] = STATE(1612),
    [sym_constructor] = STATE(1612),
    [sym_destructor] = STATE(1612),
    [sym_alias_this] = STATE(1612),
    [sym_interface_declaration] = STATE(1612),
    [sym_enum_declaration] = STATE(1612),
    [sym_anonymous_enum_declaration] = STATE(1612),
    [sym_function_declaration] = STATE(1612),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1612),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1612),
    [sym_template_mixin] = STATE(1612),
    [sym_conditional_declaration] = STATE(1612),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1612),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1612),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1831),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1833),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [192] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [193] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(6427),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [194] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(196),
    [sym_mixin_declaration] = STATE(196),
    [sym__declaration] = STATE(196),
    [sym__declaration2] = STATE(196),
    [sym_variable_declaration] = STATE(196),
    [sym_manifest_constant] = STATE(196),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(196),
    [sym_alias_declaration] = STATE(196),
    [sym_alias_reassign] = STATE(196),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(196),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(196),
    [sym_pragma_statement] = STATE(196),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(196),
    [sym_labeled_statement] = STATE(196),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(196),
    [sym_if_statement] = STATE(196),
    [sym_while_statement] = STATE(196),
    [sym_do_statement] = STATE(196),
    [sym_for_statement] = STATE(196),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(196),
    [sym_switch_statement] = STATE(196),
    [sym_final_switch_statement] = STATE(196),
    [sym_continue_statement] = STATE(196),
    [sym_break_statement] = STATE(196),
    [sym_return_statement] = STATE(196),
    [sym_goto_statement] = STATE(196),
    [sym_with_statement] = STATE(196),
    [sym_synchronized_statement] = STATE(196),
    [sym_try_statement] = STATE(196),
    [sym_scope_guard_statement] = STATE(196),
    [sym_asm_statement] = STATE(196),
    [sym_struct_declaration] = STATE(196),
    [sym_union_declaration] = STATE(196),
    [sym_postblit] = STATE(196),
    [sym_invariant_declaration] = STATE(196),
    [sym_class_declaration] = STATE(196),
    [sym_constructor] = STATE(196),
    [sym_destructor] = STATE(196),
    [sym_alias_this] = STATE(196),
    [sym_interface_declaration] = STATE(196),
    [sym_enum_declaration] = STATE(196),
    [sym_anonymous_enum_declaration] = STATE(196),
    [sym_function_declaration] = STATE(196),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(196),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(196),
    [sym_template_mixin] = STATE(196),
    [sym_conditional_declaration] = STATE(196),
    [sym_conditional_statement] = STATE(196),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(196),
    [sym_static_foreach_declaration] = STATE(196),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(196),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(196),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1823),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(381),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [195] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1605),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [196] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(196),
    [sym_mixin_declaration] = STATE(196),
    [sym__declaration] = STATE(196),
    [sym__declaration2] = STATE(196),
    [sym_variable_declaration] = STATE(196),
    [sym_manifest_constant] = STATE(196),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(196),
    [sym_alias_declaration] = STATE(196),
    [sym_alias_reassign] = STATE(196),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(196),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(196),
    [sym_pragma_statement] = STATE(196),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(196),
    [sym_labeled_statement] = STATE(196),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(196),
    [sym_if_statement] = STATE(196),
    [sym_while_statement] = STATE(196),
    [sym_do_statement] = STATE(196),
    [sym_for_statement] = STATE(196),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(196),
    [sym_switch_statement] = STATE(196),
    [sym_final_switch_statement] = STATE(196),
    [sym_continue_statement] = STATE(196),
    [sym_break_statement] = STATE(196),
    [sym_return_statement] = STATE(196),
    [sym_goto_statement] = STATE(196),
    [sym_with_statement] = STATE(196),
    [sym_synchronized_statement] = STATE(196),
    [sym_try_statement] = STATE(196),
    [sym_scope_guard_statement] = STATE(196),
    [sym_asm_statement] = STATE(196),
    [sym_struct_declaration] = STATE(196),
    [sym_union_declaration] = STATE(196),
    [sym_postblit] = STATE(196),
    [sym_invariant_declaration] = STATE(196),
    [sym_class_declaration] = STATE(196),
    [sym_constructor] = STATE(196),
    [sym_destructor] = STATE(196),
    [sym_alias_this] = STATE(196),
    [sym_interface_declaration] = STATE(196),
    [sym_enum_declaration] = STATE(196),
    [sym_anonymous_enum_declaration] = STATE(196),
    [sym_function_declaration] = STATE(196),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(196),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(196),
    [sym_template_mixin] = STATE(196),
    [sym_conditional_declaration] = STATE(196),
    [sym_conditional_statement] = STATE(196),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(196),
    [sym_static_foreach_declaration] = STATE(196),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(196),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(196),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1835),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(386),
    [anon_sym_RBRACE] = ACTIONS(389),
    [anon_sym_LBRACE] = ACTIONS(1838),
    [anon_sym_DOT] = ACTIONS(394),
    [anon_sym_AMP] = ACTIONS(397),
    [anon_sym_DASH] = ACTIONS(400),
    [anon_sym_DASH_DASH] = ACTIONS(397),
    [anon_sym_PLUS] = ACTIONS(400),
    [anon_sym_PLUS_PLUS] = ACTIONS(397),
    [anon_sym_BANG] = ACTIONS(397),
    [anon_sym_LPAREN] = ACTIONS(403),
    [anon_sym_RPAREN] = ACTIONS(389),
    [anon_sym_LBRACK] = ACTIONS(406),
    [anon_sym_SEMI] = ACTIONS(1841),
    [anon_sym_DOLLAR] = ACTIONS(412),
    [anon_sym_STAR] = ACTIONS(397),
    [anon_sym_TILDE] = ACTIONS(1844),
    [anon_sym_AT] = ACTIONS(418),
    [sym_bool] = ACTIONS(421),
    [sym_byte] = ACTIONS(421),
    [sym_ubyte] = ACTIONS(421),
    [sym_char] = ACTIONS(421),
    [sym_short] = ACTIONS(421),
    [sym_ushort] = ACTIONS(421),
    [sym_int] = ACTIONS(421),
    [sym_uint] = ACTIONS(421),
    [sym_long] = ACTIONS(421),
    [sym_ulong] = ACTIONS(421),
    [sym_cent] = ACTIONS(421),
    [sym_ucent] = ACTIONS(421),
    [sym_wchar] = ACTIONS(421),
    [sym_dchar] = ACTIONS(421),
    [sym_float] = ACTIONS(421),
    [sym_double] = ACTIONS(421),
    [sym_real] = ACTIONS(421),
    [sym_ifloat] = ACTIONS(421),
    [sym_idouble] = ACTIONS(421),
    [sym_ireal] = ACTIONS(421),
    [sym_cfloat] = ACTIONS(421),
    [sym_cdouble] = ACTIONS(421),
    [sym_creal] = ACTIONS(421),
    [sym_size_t] = ACTIONS(421),
    [sym_ptrdiff_t] = ACTIONS(421),
    [sym_string] = ACTIONS(421),
    [sym_cstring] = ACTIONS(421),
    [sym_dstring] = ACTIONS(421),
    [sym_wstring] = ACTIONS(421),
    [sym_noreturn] = ACTIONS(421),
    [sym_true] = ACTIONS(424),
    [sym_false] = ACTIONS(424),
    [sym_null] = ACTIONS(424),
    [sym_super] = ACTIONS(424),
    [sym_this] = ACTIONS(1847),
    [sym_abstract] = ACTIONS(430),
    [sym_alias] = ACTIONS(1850),
    [sym_align] = ACTIONS(436),
    [sym_asm] = ACTIONS(1853),
    [sym_assert] = ACTIONS(442),
    [sym_auto] = ACTIONS(445),
    [sym_break] = ACTIONS(1856),
    [sym_case] = ACTIONS(451),
    [sym_cast] = ACTIONS(453),
    [sym_class] = ACTIONS(1859),
    [sym_const] = ACTIONS(459),
    [sym_continue] = ACTIONS(1862),
    [sym_debug] = ACTIONS(1865),
    [sym_default] = ACTIONS(451),
    [sym_delegate] = ACTIONS(468),
    [sym_delete] = ACTIONS(471),
    [sym_deprecated] = ACTIONS(474),
    [sym_do] = ACTIONS(1868),
    [sym_else] = ACTIONS(451),
    [sym_enum] = ACTIONS(1871),
    [sym_export] = ACTIONS(1874),
    [sym_extern] = ACTIONS(486),
    [sym_final] = ACTIONS(1877),
    [sym_for] = ACTIONS(1880),
    [sym_foreach] = ACTIONS(1883),
    [sym_foreach_reverse] = ACTIONS(1883),
    [sym_function] = ACTIONS(498),
    [sym_goto] = ACTIONS(1886),
    [sym_if] = ACTIONS(1889),
    [sym_immutable] = ACTIONS(459),
    [sym_import] = ACTIONS(1892),
    [sym_in] = ACTIONS(510),
    [sym_inout] = ACTIONS(459),
    [sym_interface] = ACTIONS(1895),
    [sym_invariant] = ACTIONS(1898),
    [sym_is] = ACTIONS(519),
    [sym_mixin] = ACTIONS(1901),
    [sym_new] = ACTIONS(525),
    [sym_nothrow] = ACTIONS(430),
    [sym_out] = ACTIONS(528),
    [sym_override] = ACTIONS(430),
    [sym_package] = ACTIONS(531),
    [sym_pragma] = ACTIONS(534),
    [sym_private] = ACTIONS(1874),
    [sym_protected] = ACTIONS(1874),
    [sym_public] = ACTIONS(1874),
    [sym_pure] = ACTIONS(430),
    [sym_ref] = ACTIONS(537),
    [sym_return] = ACTIONS(1904),
    [sym_scope] = ACTIONS(1907),
    [sym_shared] = ACTIONS(1910),
    [sym_static] = ACTIONS(1913),
    [sym_struct] = ACTIONS(1916),
    [sym_switch] = ACTIONS(1919),
    [sym_synchronized] = ACTIONS(1922),
    [sym_template] = ACTIONS(1925),
    [sym_throw] = ACTIONS(564),
    [sym_try] = ACTIONS(1928),
    [sym_typeid] = ACTIONS(570),
    [sym_typeof] = ACTIONS(573),
    [sym_union] = ACTIONS(1931),
    [sym_unittest] = ACTIONS(1934),
    [sym_version] = ACTIONS(1937),
    [sym_while] = ACTIONS(1940),
    [sym_with] = ACTIONS(1943),
    [sym_gshared] = ACTIONS(430),
    [sym_traits] = ACTIONS(591),
    [sym_vector] = ACTIONS(594),
    [sym_void] = ACTIONS(597),
    [anon_sym_BQUOTE] = ACTIONS(600),
    [anon_sym_r_DQUOTE] = ACTIONS(603),
    [anon_sym_x_DQUOTE] = ACTIONS(606),
    [anon_sym_DQUOTE] = ACTIONS(609),
    [anon_sym_i_BQUOTE] = ACTIONS(612),
    [anon_sym_i_DQUOTE] = ACTIONS(615),
    [anon_sym_iq_LBRACE] = ACTIONS(618),
    [aux_sym_char_literal_token1] = ACTIONS(621),
    [anon_sym_SQUOTE] = ACTIONS(624),
    [anon_sym___DATE__] = ACTIONS(627),
    [anon_sym___FILE__] = ACTIONS(627),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(627),
    [anon_sym___FUNCTION__] = ACTIONS(627),
    [anon_sym___LINE__] = ACTIONS(627),
    [anon_sym___MODULE__] = ACTIONS(627),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(627),
    [anon_sym___TIME__] = ACTIONS(627),
    [anon_sym___TIMESTAMP__] = ACTIONS(627),
    [anon_sym___VENDOR__] = ACTIONS(627),
    [anon_sym___VERSION__] = ACTIONS(627),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(630),
    [sym_float_literal] = ACTIONS(630),
    [sym__string] = ACTIONS(633),
  },
  [197] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5605),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [198] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1555),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [199] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1570),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [200] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1553),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [201] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1552),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [202] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1604),
    [sym_mixin_declaration] = STATE(1604),
    [sym__declaration] = STATE(1604),
    [sym__declaration2] = STATE(1604),
    [sym_variable_declaration] = STATE(1604),
    [sym_manifest_constant] = STATE(1604),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1604),
    [sym_alias_declaration] = STATE(1604),
    [sym_alias_reassign] = STATE(1604),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1604),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1604),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1591),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1604),
    [sym_union_declaration] = STATE(1604),
    [sym_postblit] = STATE(1604),
    [sym_invariant_declaration] = STATE(1604),
    [sym_class_declaration] = STATE(1604),
    [sym_constructor] = STATE(1604),
    [sym_destructor] = STATE(1604),
    [sym_alias_this] = STATE(1604),
    [sym_interface_declaration] = STATE(1604),
    [sym_enum_declaration] = STATE(1604),
    [sym_anonymous_enum_declaration] = STATE(1604),
    [sym_function_declaration] = STATE(1604),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1604),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1604),
    [sym_template_mixin] = STATE(1604),
    [sym_conditional_declaration] = STATE(1604),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1604),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1604),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1946),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1948),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [203] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2172),
    [sym_mixin_declaration] = STATE(2172),
    [sym__declaration] = STATE(2172),
    [sym__declaration2] = STATE(2172),
    [sym_variable_declaration] = STATE(2172),
    [sym_manifest_constant] = STATE(2172),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2172),
    [sym_alias_declaration] = STATE(2172),
    [sym_alias_reassign] = STATE(2172),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2172),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2172),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2172),
    [sym_union_declaration] = STATE(2172),
    [sym_postblit] = STATE(2172),
    [sym_invariant_declaration] = STATE(2172),
    [sym_class_declaration] = STATE(2172),
    [sym_constructor] = STATE(2172),
    [sym_destructor] = STATE(2172),
    [sym_alias_this] = STATE(2172),
    [sym_interface_declaration] = STATE(2172),
    [sym_enum_declaration] = STATE(2172),
    [sym_anonymous_enum_declaration] = STATE(2172),
    [sym_function_declaration] = STATE(2172),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2172),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2172),
    [sym_template_mixin] = STATE(2172),
    [sym_conditional_declaration] = STATE(2172),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2172),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2172),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1825),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1827),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [204] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [205] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2178),
    [sym_mixin_declaration] = STATE(2178),
    [sym__declaration] = STATE(2178),
    [sym__declaration2] = STATE(2178),
    [sym_variable_declaration] = STATE(2178),
    [sym_manifest_constant] = STATE(2178),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2178),
    [sym_alias_declaration] = STATE(2178),
    [sym_alias_reassign] = STATE(2178),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2178),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2178),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2178),
    [sym_union_declaration] = STATE(2178),
    [sym_postblit] = STATE(2178),
    [sym_invariant_declaration] = STATE(2178),
    [sym_class_declaration] = STATE(2178),
    [sym_constructor] = STATE(2178),
    [sym_destructor] = STATE(2178),
    [sym_alias_this] = STATE(2178),
    [sym_interface_declaration] = STATE(2178),
    [sym_enum_declaration] = STATE(2178),
    [sym_anonymous_enum_declaration] = STATE(2178),
    [sym_function_declaration] = STATE(2178),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2178),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2178),
    [sym_template_mixin] = STATE(2178),
    [sym_conditional_declaration] = STATE(2178),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2178),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2178),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1817),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1819),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [206] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [207] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2181),
    [sym_mixin_declaration] = STATE(2181),
    [sym__declaration] = STATE(2181),
    [sym__declaration2] = STATE(2181),
    [sym_variable_declaration] = STATE(2181),
    [sym_manifest_constant] = STATE(2181),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2181),
    [sym_alias_declaration] = STATE(2181),
    [sym_alias_reassign] = STATE(2181),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2181),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2181),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2181),
    [sym_union_declaration] = STATE(2181),
    [sym_postblit] = STATE(2181),
    [sym_invariant_declaration] = STATE(2181),
    [sym_class_declaration] = STATE(2181),
    [sym_constructor] = STATE(2181),
    [sym_destructor] = STATE(2181),
    [sym_alias_this] = STATE(2181),
    [sym_interface_declaration] = STATE(2181),
    [sym_enum_declaration] = STATE(2181),
    [sym_anonymous_enum_declaration] = STATE(2181),
    [sym_function_declaration] = STATE(2181),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2181),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2181),
    [sym_template_mixin] = STATE(2181),
    [sym_conditional_declaration] = STATE(2181),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2181),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2181),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1813),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1815),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [208] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1546),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [209] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5607),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [210] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2182),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [211] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2185),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [212] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [213] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2204),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [214] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2209),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [215] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2210),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [216] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2216),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [217] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2219),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [218] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2220),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [219] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2222),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [220] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2224),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [221] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2254),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [222] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2259),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [223] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2262),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [224] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2263),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [225] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2275),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [226] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2291),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [227] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2331),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [228] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2343),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [229] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1543),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [230] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1295),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [231] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2293),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [232] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1540),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [233] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(196),
    [sym_mixin_declaration] = STATE(196),
    [sym__declaration] = STATE(196),
    [sym__declaration2] = STATE(196),
    [sym_variable_declaration] = STATE(196),
    [sym_manifest_constant] = STATE(196),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(196),
    [sym_alias_declaration] = STATE(196),
    [sym_alias_reassign] = STATE(196),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(196),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(196),
    [sym_pragma_statement] = STATE(196),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(196),
    [sym_labeled_statement] = STATE(196),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(196),
    [sym_if_statement] = STATE(196),
    [sym_while_statement] = STATE(196),
    [sym_do_statement] = STATE(196),
    [sym_for_statement] = STATE(196),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(196),
    [sym_switch_statement] = STATE(196),
    [sym_final_switch_statement] = STATE(196),
    [sym_continue_statement] = STATE(196),
    [sym_break_statement] = STATE(196),
    [sym_return_statement] = STATE(196),
    [sym_goto_statement] = STATE(196),
    [sym_with_statement] = STATE(196),
    [sym_synchronized_statement] = STATE(196),
    [sym_try_statement] = STATE(196),
    [sym_scope_guard_statement] = STATE(196),
    [sym_asm_statement] = STATE(196),
    [sym_struct_declaration] = STATE(196),
    [sym_union_declaration] = STATE(196),
    [sym_postblit] = STATE(196),
    [sym_invariant_declaration] = STATE(196),
    [sym_class_declaration] = STATE(196),
    [sym_constructor] = STATE(196),
    [sym_destructor] = STATE(196),
    [sym_alias_this] = STATE(196),
    [sym_interface_declaration] = STATE(196),
    [sym_enum_declaration] = STATE(196),
    [sym_anonymous_enum_declaration] = STATE(196),
    [sym_function_declaration] = STATE(196),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(196),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(196),
    [sym_template_mixin] = STATE(196),
    [sym_conditional_declaration] = STATE(196),
    [sym_conditional_statement] = STATE(196),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(196),
    [sym_static_foreach_declaration] = STATE(196),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(196),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(196),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(636),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(636),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1823),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(638),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(638),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(638),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [234] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1591),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [235] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5607),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [236] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1523),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [237] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5649),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [238] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1521),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [239] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1517),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [240] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5653),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [241] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1550),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [242] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5698),
    [sym_mixin_declaration] = STATE(5698),
    [sym__declaration] = STATE(5698),
    [sym__declaration2] = STATE(5698),
    [sym_variable_declaration] = STATE(5698),
    [sym_manifest_constant] = STATE(5698),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5698),
    [sym_alias_declaration] = STATE(5698),
    [sym_alias_reassign] = STATE(5698),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5698),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5698),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5698),
    [sym_union_declaration] = STATE(5698),
    [sym_postblit] = STATE(5698),
    [sym_invariant_declaration] = STATE(5698),
    [sym_class_declaration] = STATE(5698),
    [sym_constructor] = STATE(5698),
    [sym_destructor] = STATE(5698),
    [sym_alias_this] = STATE(5698),
    [sym_interface_declaration] = STATE(5698),
    [sym_enum_declaration] = STATE(5698),
    [sym_anonymous_enum_declaration] = STATE(5698),
    [sym_function_declaration] = STATE(5698),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5698),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5698),
    [sym_template_mixin] = STATE(5698),
    [sym_conditional_declaration] = STATE(5698),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5698),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5698),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1958),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1960),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [243] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [244] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5696),
    [sym_mixin_declaration] = STATE(5696),
    [sym__declaration] = STATE(5696),
    [sym__declaration2] = STATE(5696),
    [sym_variable_declaration] = STATE(5696),
    [sym_manifest_constant] = STATE(5696),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5696),
    [sym_alias_declaration] = STATE(5696),
    [sym_alias_reassign] = STATE(5696),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5696),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5696),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5696),
    [sym_union_declaration] = STATE(5696),
    [sym_postblit] = STATE(5696),
    [sym_invariant_declaration] = STATE(5696),
    [sym_class_declaration] = STATE(5696),
    [sym_constructor] = STATE(5696),
    [sym_destructor] = STATE(5696),
    [sym_alias_this] = STATE(5696),
    [sym_interface_declaration] = STATE(5696),
    [sym_enum_declaration] = STATE(5696),
    [sym_anonymous_enum_declaration] = STATE(5696),
    [sym_function_declaration] = STATE(5696),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5696),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5696),
    [sym_template_mixin] = STATE(5696),
    [sym_conditional_declaration] = STATE(5696),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5696),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5696),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1962),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1964),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [245] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [246] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5689),
    [sym_mixin_declaration] = STATE(5689),
    [sym__declaration] = STATE(5689),
    [sym__declaration2] = STATE(5689),
    [sym_variable_declaration] = STATE(5689),
    [sym_manifest_constant] = STATE(5689),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5689),
    [sym_alias_declaration] = STATE(5689),
    [sym_alias_reassign] = STATE(5689),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5689),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5689),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5689),
    [sym_union_declaration] = STATE(5689),
    [sym_postblit] = STATE(5689),
    [sym_invariant_declaration] = STATE(5689),
    [sym_class_declaration] = STATE(5689),
    [sym_constructor] = STATE(5689),
    [sym_destructor] = STATE(5689),
    [sym_alias_this] = STATE(5689),
    [sym_interface_declaration] = STATE(5689),
    [sym_enum_declaration] = STATE(5689),
    [sym_anonymous_enum_declaration] = STATE(5689),
    [sym_function_declaration] = STATE(5689),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5689),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5689),
    [sym_template_mixin] = STATE(5689),
    [sym_conditional_declaration] = STATE(5689),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5689),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5689),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1966),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1968),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [247] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5687),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [248] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1587),
    [sym_mixin_declaration] = STATE(1587),
    [sym__declaration] = STATE(1587),
    [sym__declaration2] = STATE(1587),
    [sym_variable_declaration] = STATE(1587),
    [sym_manifest_constant] = STATE(1587),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1587),
    [sym_alias_declaration] = STATE(1587),
    [sym_alias_reassign] = STATE(1587),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1587),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1587),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1561),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1587),
    [sym_union_declaration] = STATE(1587),
    [sym_postblit] = STATE(1587),
    [sym_invariant_declaration] = STATE(1587),
    [sym_class_declaration] = STATE(1587),
    [sym_constructor] = STATE(1587),
    [sym_destructor] = STATE(1587),
    [sym_alias_this] = STATE(1587),
    [sym_interface_declaration] = STATE(1587),
    [sym_enum_declaration] = STATE(1587),
    [sym_anonymous_enum_declaration] = STATE(1587),
    [sym_function_declaration] = STATE(1587),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1587),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1587),
    [sym_template_mixin] = STATE(1587),
    [sym_conditional_declaration] = STATE(1587),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1587),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1587),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1970),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1972),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [249] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5684),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [250] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [251] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5681),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [252] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5635),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [253] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5679),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [254] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5677),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [255] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5676),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [256] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5675),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [257] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5673),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [258] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5672),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [259] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5666),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [260] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5665),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [261] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5664),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [262] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5662),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [263] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5661),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [264] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5659),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [265] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5653),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [266] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5649),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [267] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1370),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [268] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1550),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [269] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5605),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [270] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1513),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [271] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1504),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [272] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1374),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [273] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5314),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [274] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1503),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [275] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1535),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [276] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1491),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [277] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1447),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [278] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5661),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [279] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5682),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [280] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1455),
    [sym_mixin_declaration] = STATE(1455),
    [sym__declaration] = STATE(1455),
    [sym__declaration2] = STATE(1455),
    [sym_variable_declaration] = STATE(1455),
    [sym_manifest_constant] = STATE(1455),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1455),
    [sym_alias_declaration] = STATE(1455),
    [sym_alias_reassign] = STATE(1455),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1455),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1455),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1462),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1455),
    [sym_union_declaration] = STATE(1455),
    [sym_postblit] = STATE(1455),
    [sym_invariant_declaration] = STATE(1455),
    [sym_class_declaration] = STATE(1455),
    [sym_constructor] = STATE(1455),
    [sym_destructor] = STATE(1455),
    [sym_alias_this] = STATE(1455),
    [sym_interface_declaration] = STATE(1455),
    [sym_enum_declaration] = STATE(1455),
    [sym_anonymous_enum_declaration] = STATE(1455),
    [sym_function_declaration] = STATE(1455),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1455),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1455),
    [sym_template_mixin] = STATE(1455),
    [sym_conditional_declaration] = STATE(1455),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1455),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1455),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1974),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1976),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [281] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1462),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [282] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1466),
    [sym_mixin_declaration] = STATE(1466),
    [sym__declaration] = STATE(1466),
    [sym__declaration2] = STATE(1466),
    [sym_variable_declaration] = STATE(1466),
    [sym_manifest_constant] = STATE(1466),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1466),
    [sym_alias_declaration] = STATE(1466),
    [sym_alias_reassign] = STATE(1466),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1466),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1466),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1471),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1466),
    [sym_union_declaration] = STATE(1466),
    [sym_postblit] = STATE(1466),
    [sym_invariant_declaration] = STATE(1466),
    [sym_class_declaration] = STATE(1466),
    [sym_constructor] = STATE(1466),
    [sym_destructor] = STATE(1466),
    [sym_alias_this] = STATE(1466),
    [sym_interface_declaration] = STATE(1466),
    [sym_enum_declaration] = STATE(1466),
    [sym_anonymous_enum_declaration] = STATE(1466),
    [sym_function_declaration] = STATE(1466),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1466),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1466),
    [sym_template_mixin] = STATE(1466),
    [sym_conditional_declaration] = STATE(1466),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1466),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1466),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1978),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1980),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [283] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1471),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [284] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1476),
    [sym_mixin_declaration] = STATE(1476),
    [sym__declaration] = STATE(1476),
    [sym__declaration2] = STATE(1476),
    [sym_variable_declaration] = STATE(1476),
    [sym_manifest_constant] = STATE(1476),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1476),
    [sym_alias_declaration] = STATE(1476),
    [sym_alias_reassign] = STATE(1476),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1476),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1476),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1482),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1476),
    [sym_union_declaration] = STATE(1476),
    [sym_postblit] = STATE(1476),
    [sym_invariant_declaration] = STATE(1476),
    [sym_class_declaration] = STATE(1476),
    [sym_constructor] = STATE(1476),
    [sym_destructor] = STATE(1476),
    [sym_alias_this] = STATE(1476),
    [sym_interface_declaration] = STATE(1476),
    [sym_enum_declaration] = STATE(1476),
    [sym_anonymous_enum_declaration] = STATE(1476),
    [sym_function_declaration] = STATE(1476),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1476),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1476),
    [sym_template_mixin] = STATE(1476),
    [sym_conditional_declaration] = STATE(1476),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1476),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1476),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1982),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1984),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [285] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1480),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [286] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1481),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [287] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1482),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [288] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1488),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [289] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1491),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [290] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1503),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [291] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1504),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [292] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1513),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [293] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1517),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [294] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1521),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [295] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1523),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [296] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1540),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [297] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1543),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [298] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1546),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [299] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1552),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [300] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1553),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [301] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1555),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [302] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1539),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [303] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1536),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [304] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1726),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [305] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5607),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [306] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1447),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [307] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1488),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [308] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5662),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [309] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5240),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [310] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5682),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [311] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5714),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [312] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5664),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [313] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1482),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [314] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5665),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [315] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5666),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [316] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2328),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [317] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2338),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [318] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2189),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [319] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2172),
    [sym_mixin_declaration] = STATE(2172),
    [sym__declaration] = STATE(2172),
    [sym__declaration2] = STATE(2172),
    [sym_variable_declaration] = STATE(2172),
    [sym_manifest_constant] = STATE(2172),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2172),
    [sym_alias_declaration] = STATE(2172),
    [sym_alias_reassign] = STATE(2172),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2172),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2172),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2172),
    [sym_union_declaration] = STATE(2172),
    [sym_postblit] = STATE(2172),
    [sym_invariant_declaration] = STATE(2172),
    [sym_class_declaration] = STATE(2172),
    [sym_constructor] = STATE(2172),
    [sym_destructor] = STATE(2172),
    [sym_alias_this] = STATE(2172),
    [sym_interface_declaration] = STATE(2172),
    [sym_enum_declaration] = STATE(2172),
    [sym_anonymous_enum_declaration] = STATE(2172),
    [sym_function_declaration] = STATE(2172),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2172),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2172),
    [sym_template_mixin] = STATE(2172),
    [sym_conditional_declaration] = STATE(2172),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2172),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2172),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1825),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1827),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [320] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2174),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [321] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2178),
    [sym_mixin_declaration] = STATE(2178),
    [sym__declaration] = STATE(2178),
    [sym__declaration2] = STATE(2178),
    [sym_variable_declaration] = STATE(2178),
    [sym_manifest_constant] = STATE(2178),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2178),
    [sym_alias_declaration] = STATE(2178),
    [sym_alias_reassign] = STATE(2178),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2178),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2178),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2178),
    [sym_union_declaration] = STATE(2178),
    [sym_postblit] = STATE(2178),
    [sym_invariant_declaration] = STATE(2178),
    [sym_class_declaration] = STATE(2178),
    [sym_constructor] = STATE(2178),
    [sym_destructor] = STATE(2178),
    [sym_alias_this] = STATE(2178),
    [sym_interface_declaration] = STATE(2178),
    [sym_enum_declaration] = STATE(2178),
    [sym_anonymous_enum_declaration] = STATE(2178),
    [sym_function_declaration] = STATE(2178),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2178),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2178),
    [sym_template_mixin] = STATE(2178),
    [sym_conditional_declaration] = STATE(2178),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2178),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2178),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1817),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1819),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [322] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2163),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [323] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2179),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [324] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2181),
    [sym_mixin_declaration] = STATE(2181),
    [sym__declaration] = STATE(2181),
    [sym__declaration2] = STATE(2181),
    [sym_variable_declaration] = STATE(2181),
    [sym_manifest_constant] = STATE(2181),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2181),
    [sym_alias_declaration] = STATE(2181),
    [sym_alias_reassign] = STATE(2181),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2181),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2181),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2181),
    [sym_union_declaration] = STATE(2181),
    [sym_postblit] = STATE(2181),
    [sym_invariant_declaration] = STATE(2181),
    [sym_class_declaration] = STATE(2181),
    [sym_constructor] = STATE(2181),
    [sym_destructor] = STATE(2181),
    [sym_alias_this] = STATE(2181),
    [sym_interface_declaration] = STATE(2181),
    [sym_enum_declaration] = STATE(2181),
    [sym_anonymous_enum_declaration] = STATE(2181),
    [sym_function_declaration] = STATE(2181),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2181),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2181),
    [sym_template_mixin] = STATE(2181),
    [sym_conditional_declaration] = STATE(2181),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2181),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2181),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1813),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1815),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [325] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2182),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [326] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2185),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [327] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2187),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [328] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2204),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [329] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2209),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [330] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2210),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [331] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2216),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [332] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2219),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [333] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2220),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [334] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2222),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [335] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2224),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [336] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2254),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [337] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(7447),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3972),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [338] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2259),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [339] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2262),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [340] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2263),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [341] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2275),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [342] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2291),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [343] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2331),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [344] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(363),
    [sym_mixin_declaration] = STATE(363),
    [sym__declaration] = STATE(363),
    [sym__declaration2] = STATE(363),
    [sym_variable_declaration] = STATE(363),
    [sym_manifest_constant] = STATE(363),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(363),
    [sym_alias_declaration] = STATE(363),
    [sym_alias_reassign] = STATE(363),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(363),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(363),
    [sym_pragma_statement] = STATE(363),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(363),
    [sym_labeled_statement] = STATE(363),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(363),
    [sym_if_statement] = STATE(363),
    [sym_while_statement] = STATE(363),
    [sym_do_statement] = STATE(363),
    [sym_for_statement] = STATE(363),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(363),
    [sym_switch_statement] = STATE(363),
    [sym_final_switch_statement] = STATE(363),
    [sym_continue_statement] = STATE(363),
    [sym_break_statement] = STATE(363),
    [sym_return_statement] = STATE(363),
    [sym_goto_statement] = STATE(363),
    [sym_with_statement] = STATE(363),
    [sym_synchronized_statement] = STATE(363),
    [sym_try_statement] = STATE(363),
    [sym_scope_guard_statement] = STATE(363),
    [sym_asm_statement] = STATE(363),
    [sym_struct_declaration] = STATE(363),
    [sym_union_declaration] = STATE(363),
    [sym_postblit] = STATE(363),
    [sym_invariant_declaration] = STATE(363),
    [sym_class_declaration] = STATE(363),
    [sym_constructor] = STATE(363),
    [sym_destructor] = STATE(363),
    [sym_alias_this] = STATE(363),
    [sym_interface_declaration] = STATE(363),
    [sym_enum_declaration] = STATE(363),
    [sym_anonymous_enum_declaration] = STATE(363),
    [sym_function_declaration] = STATE(363),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(363),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(363),
    [sym_template_mixin] = STATE(363),
    [sym_conditional_declaration] = STATE(363),
    [sym_conditional_statement] = STATE(363),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(363),
    [sym_static_foreach_declaration] = STATE(363),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(363),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(363),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(640),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(640),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2002),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(644),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(644),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(644),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [345] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2343),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [346] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2376),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [347] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2189),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [348] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1481),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [349] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1296),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [350] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1584),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [351] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2293),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [352] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2184),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [353] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1480),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [354] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1476),
    [sym_mixin_declaration] = STATE(1476),
    [sym__declaration] = STATE(1476),
    [sym__declaration2] = STATE(1476),
    [sym_variable_declaration] = STATE(1476),
    [sym_manifest_constant] = STATE(1476),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1476),
    [sym_alias_declaration] = STATE(1476),
    [sym_alias_reassign] = STATE(1476),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1476),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1476),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1482),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1476),
    [sym_union_declaration] = STATE(1476),
    [sym_postblit] = STATE(1476),
    [sym_invariant_declaration] = STATE(1476),
    [sym_class_declaration] = STATE(1476),
    [sym_constructor] = STATE(1476),
    [sym_destructor] = STATE(1476),
    [sym_alias_this] = STATE(1476),
    [sym_interface_declaration] = STATE(1476),
    [sym_enum_declaration] = STATE(1476),
    [sym_anonymous_enum_declaration] = STATE(1476),
    [sym_function_declaration] = STATE(1476),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1476),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1476),
    [sym_template_mixin] = STATE(1476),
    [sym_conditional_declaration] = STATE(1476),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1476),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1476),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1982),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1984),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [355] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5672),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [356] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1583),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [357] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1293),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [358] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5691),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [359] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1471),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [360] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5673),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [361] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1561),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [362] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1370),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [363] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(196),
    [sym_mixin_declaration] = STATE(196),
    [sym__declaration] = STATE(196),
    [sym__declaration2] = STATE(196),
    [sym_variable_declaration] = STATE(196),
    [sym_manifest_constant] = STATE(196),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(196),
    [sym_alias_declaration] = STATE(196),
    [sym_alias_reassign] = STATE(196),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(196),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(196),
    [sym_pragma_statement] = STATE(196),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(196),
    [sym_labeled_statement] = STATE(196),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(196),
    [sym_if_statement] = STATE(196),
    [sym_while_statement] = STATE(196),
    [sym_do_statement] = STATE(196),
    [sym_for_statement] = STATE(196),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(196),
    [sym_switch_statement] = STATE(196),
    [sym_final_switch_statement] = STATE(196),
    [sym_continue_statement] = STATE(196),
    [sym_break_statement] = STATE(196),
    [sym_return_statement] = STATE(196),
    [sym_goto_statement] = STATE(196),
    [sym_with_statement] = STATE(196),
    [sym_synchronized_statement] = STATE(196),
    [sym_try_statement] = STATE(196),
    [sym_scope_guard_statement] = STATE(196),
    [sym_asm_statement] = STATE(196),
    [sym_struct_declaration] = STATE(196),
    [sym_union_declaration] = STATE(196),
    [sym_postblit] = STATE(196),
    [sym_invariant_declaration] = STATE(196),
    [sym_class_declaration] = STATE(196),
    [sym_constructor] = STATE(196),
    [sym_destructor] = STATE(196),
    [sym_alias_this] = STATE(196),
    [sym_interface_declaration] = STATE(196),
    [sym_enum_declaration] = STATE(196),
    [sym_anonymous_enum_declaration] = STATE(196),
    [sym_function_declaration] = STATE(196),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(196),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(196),
    [sym_template_mixin] = STATE(196),
    [sym_conditional_declaration] = STATE(196),
    [sym_conditional_statement] = STATE(196),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(196),
    [sym_static_foreach_declaration] = STATE(196),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(196),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(196),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(646),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(646),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1823),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(648),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(648),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(648),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [364] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2146),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [365] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5675),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [366] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1466),
    [sym_mixin_declaration] = STATE(1466),
    [sym__declaration] = STATE(1466),
    [sym__declaration2] = STATE(1466),
    [sym_variable_declaration] = STATE(1466),
    [sym_manifest_constant] = STATE(1466),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1466),
    [sym_alias_declaration] = STATE(1466),
    [sym_alias_reassign] = STATE(1466),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1466),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1466),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1471),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1466),
    [sym_union_declaration] = STATE(1466),
    [sym_postblit] = STATE(1466),
    [sym_invariant_declaration] = STATE(1466),
    [sym_class_declaration] = STATE(1466),
    [sym_constructor] = STATE(1466),
    [sym_destructor] = STATE(1466),
    [sym_alias_this] = STATE(1466),
    [sym_interface_declaration] = STATE(1466),
    [sym_enum_declaration] = STATE(1466),
    [sym_anonymous_enum_declaration] = STATE(1466),
    [sym_function_declaration] = STATE(1466),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1466),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1466),
    [sym_template_mixin] = STATE(1466),
    [sym_conditional_declaration] = STATE(1466),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1466),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1466),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1978),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1980),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [367] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5676),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [368] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5677),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [369] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1585),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [370] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2189),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [371] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1294),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [372] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1589),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [373] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5698),
    [sym_mixin_declaration] = STATE(5698),
    [sym__declaration] = STATE(5698),
    [sym__declaration2] = STATE(5698),
    [sym_variable_declaration] = STATE(5698),
    [sym_manifest_constant] = STATE(5698),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5698),
    [sym_alias_declaration] = STATE(5698),
    [sym_alias_reassign] = STATE(5698),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5698),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5698),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5698),
    [sym_union_declaration] = STATE(5698),
    [sym_postblit] = STATE(5698),
    [sym_invariant_declaration] = STATE(5698),
    [sym_class_declaration] = STATE(5698),
    [sym_constructor] = STATE(5698),
    [sym_destructor] = STATE(5698),
    [sym_alias_this] = STATE(5698),
    [sym_interface_declaration] = STATE(5698),
    [sym_enum_declaration] = STATE(5698),
    [sym_anonymous_enum_declaration] = STATE(5698),
    [sym_function_declaration] = STATE(5698),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5698),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5698),
    [sym_template_mixin] = STATE(5698),
    [sym_conditional_declaration] = STATE(5698),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5698),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5698),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1958),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1960),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [374] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [375] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5696),
    [sym_mixin_declaration] = STATE(5696),
    [sym__declaration] = STATE(5696),
    [sym__declaration2] = STATE(5696),
    [sym_variable_declaration] = STATE(5696),
    [sym_manifest_constant] = STATE(5696),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5696),
    [sym_alias_declaration] = STATE(5696),
    [sym_alias_reassign] = STATE(5696),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5696),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5696),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5696),
    [sym_union_declaration] = STATE(5696),
    [sym_postblit] = STATE(5696),
    [sym_invariant_declaration] = STATE(5696),
    [sym_class_declaration] = STATE(5696),
    [sym_constructor] = STATE(5696),
    [sym_destructor] = STATE(5696),
    [sym_alias_this] = STATE(5696),
    [sym_interface_declaration] = STATE(5696),
    [sym_enum_declaration] = STATE(5696),
    [sym_anonymous_enum_declaration] = STATE(5696),
    [sym_function_declaration] = STATE(5696),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5696),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5696),
    [sym_template_mixin] = STATE(5696),
    [sym_conditional_declaration] = STATE(5696),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5696),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5696),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1962),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1964),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [376] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1597),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [377] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [378] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5689),
    [sym_mixin_declaration] = STATE(5689),
    [sym__declaration] = STATE(5689),
    [sym__declaration2] = STATE(5689),
    [sym_variable_declaration] = STATE(5689),
    [sym_manifest_constant] = STATE(5689),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5689),
    [sym_alias_declaration] = STATE(5689),
    [sym_alias_reassign] = STATE(5689),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5689),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5689),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5689),
    [sym_union_declaration] = STATE(5689),
    [sym_postblit] = STATE(5689),
    [sym_invariant_declaration] = STATE(5689),
    [sym_class_declaration] = STATE(5689),
    [sym_constructor] = STATE(5689),
    [sym_destructor] = STATE(5689),
    [sym_alias_this] = STATE(5689),
    [sym_interface_declaration] = STATE(5689),
    [sym_enum_declaration] = STATE(5689),
    [sym_anonymous_enum_declaration] = STATE(5689),
    [sym_function_declaration] = STATE(5689),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5689),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5689),
    [sym_template_mixin] = STATE(5689),
    [sym_conditional_declaration] = STATE(5689),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5689),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5689),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1966),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1968),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [379] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5687),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [380] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5684),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [381] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [382] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5681),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [383] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5635),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [384] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5679),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [385] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5677),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [386] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5676),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [387] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5675),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [388] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5673),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [389] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5672),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [390] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5666),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [391] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5665),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [392] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5664),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [393] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5662),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [394] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5661),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [395] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5659),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [396] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5653),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [397] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5649),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [398] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5679),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [399] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2148),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [400] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1598),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [401] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1655),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [402] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5605),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [403] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2375),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [404] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5635),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [405] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1462),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [406] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5681),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [407] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1659),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [408] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1662),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [409] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1668),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [410] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1455),
    [sym_mixin_declaration] = STATE(1455),
    [sym__declaration] = STATE(1455),
    [sym__declaration2] = STATE(1455),
    [sym_variable_declaration] = STATE(1455),
    [sym_manifest_constant] = STATE(1455),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1455),
    [sym_alias_declaration] = STATE(1455),
    [sym_alias_reassign] = STATE(1455),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1455),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1455),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1462),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1455),
    [sym_union_declaration] = STATE(1455),
    [sym_postblit] = STATE(1455),
    [sym_invariant_declaration] = STATE(1455),
    [sym_class_declaration] = STATE(1455),
    [sym_constructor] = STATE(1455),
    [sym_destructor] = STATE(1455),
    [sym_alias_this] = STATE(1455),
    [sym_interface_declaration] = STATE(1455),
    [sym_enum_declaration] = STATE(1455),
    [sym_anonymous_enum_declaration] = STATE(1455),
    [sym_function_declaration] = STATE(1455),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1455),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1455),
    [sym_template_mixin] = STATE(1455),
    [sym_conditional_declaration] = STATE(1455),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1455),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1455),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1974),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1976),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [411] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2151),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [412] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1602),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [413] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [414] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1759),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [415] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5605),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [416] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5684),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [417] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5687),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [418] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1753),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [419] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2189),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [420] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1702),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [421] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1731),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [422] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1612),
    [sym_mixin_declaration] = STATE(1612),
    [sym__declaration] = STATE(1612),
    [sym__declaration2] = STATE(1612),
    [sym_variable_declaration] = STATE(1612),
    [sym_manifest_constant] = STATE(1612),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1612),
    [sym_alias_declaration] = STATE(1612),
    [sym_alias_reassign] = STATE(1612),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1612),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1612),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1605),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1612),
    [sym_union_declaration] = STATE(1612),
    [sym_postblit] = STATE(1612),
    [sym_invariant_declaration] = STATE(1612),
    [sym_class_declaration] = STATE(1612),
    [sym_constructor] = STATE(1612),
    [sym_destructor] = STATE(1612),
    [sym_alias_this] = STATE(1612),
    [sym_interface_declaration] = STATE(1612),
    [sym_enum_declaration] = STATE(1612),
    [sym_anonymous_enum_declaration] = STATE(1612),
    [sym_function_declaration] = STATE(1612),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1612),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1612),
    [sym_template_mixin] = STATE(1612),
    [sym_conditional_declaration] = STATE(1612),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1612),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1612),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1831),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1833),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [423] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1605),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [424] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1604),
    [sym_mixin_declaration] = STATE(1604),
    [sym__declaration] = STATE(1604),
    [sym__declaration2] = STATE(1604),
    [sym_variable_declaration] = STATE(1604),
    [sym_manifest_constant] = STATE(1604),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1604),
    [sym_alias_declaration] = STATE(1604),
    [sym_alias_reassign] = STATE(1604),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1604),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1604),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1591),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1604),
    [sym_union_declaration] = STATE(1604),
    [sym_postblit] = STATE(1604),
    [sym_invariant_declaration] = STATE(1604),
    [sym_class_declaration] = STATE(1604),
    [sym_constructor] = STATE(1604),
    [sym_destructor] = STATE(1604),
    [sym_alias_this] = STATE(1604),
    [sym_interface_declaration] = STATE(1604),
    [sym_enum_declaration] = STATE(1604),
    [sym_anonymous_enum_declaration] = STATE(1604),
    [sym_function_declaration] = STATE(1604),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1604),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1604),
    [sym_template_mixin] = STATE(1604),
    [sym_conditional_declaration] = STATE(1604),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1604),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1604),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1946),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1948),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [425] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(7905),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3972),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [426] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1591),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [427] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2338),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [428] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1587),
    [sym_mixin_declaration] = STATE(1587),
    [sym__declaration] = STATE(1587),
    [sym__declaration2] = STATE(1587),
    [sym_variable_declaration] = STATE(1587),
    [sym_manifest_constant] = STATE(1587),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1587),
    [sym_alias_declaration] = STATE(1587),
    [sym_alias_reassign] = STATE(1587),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1587),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1587),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1561),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1587),
    [sym_union_declaration] = STATE(1587),
    [sym_postblit] = STATE(1587),
    [sym_invariant_declaration] = STATE(1587),
    [sym_class_declaration] = STATE(1587),
    [sym_constructor] = STATE(1587),
    [sym_destructor] = STATE(1587),
    [sym_alias_this] = STATE(1587),
    [sym_interface_declaration] = STATE(1587),
    [sym_enum_declaration] = STATE(1587),
    [sym_anonymous_enum_declaration] = STATE(1587),
    [sym_function_declaration] = STATE(1587),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1587),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1587),
    [sym_template_mixin] = STATE(1587),
    [sym_conditional_declaration] = STATE(1587),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1587),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1587),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1970),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1972),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [429] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1584),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [430] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1583),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [431] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1561),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [432] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2328),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [433] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1585),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [434] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1589),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [435] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1597),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [436] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1598),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [437] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1655),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [438] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1659),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [439] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1662),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [440] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1668),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [441] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5689),
    [sym_mixin_declaration] = STATE(5689),
    [sym__declaration] = STATE(5689),
    [sym__declaration2] = STATE(5689),
    [sym_variable_declaration] = STATE(5689),
    [sym_manifest_constant] = STATE(5689),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5689),
    [sym_alias_declaration] = STATE(5689),
    [sym_alias_reassign] = STATE(5689),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5689),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5689),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5689),
    [sym_union_declaration] = STATE(5689),
    [sym_postblit] = STATE(5689),
    [sym_invariant_declaration] = STATE(5689),
    [sym_class_declaration] = STATE(5689),
    [sym_constructor] = STATE(5689),
    [sym_destructor] = STATE(5689),
    [sym_alias_this] = STATE(5689),
    [sym_interface_declaration] = STATE(5689),
    [sym_enum_declaration] = STATE(5689),
    [sym_anonymous_enum_declaration] = STATE(5689),
    [sym_function_declaration] = STATE(5689),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5689),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5689),
    [sym_template_mixin] = STATE(5689),
    [sym_conditional_declaration] = STATE(5689),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5689),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5689),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2004),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1968),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [442] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1759),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [443] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [444] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1753),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [445] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1702),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [446] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1731),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [447] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2185),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [448] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1671),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [449] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1671),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [450] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5696),
    [sym_mixin_declaration] = STATE(5696),
    [sym__declaration] = STATE(5696),
    [sym__declaration2] = STATE(5696),
    [sym_variable_declaration] = STATE(5696),
    [sym_manifest_constant] = STATE(5696),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5696),
    [sym_alias_declaration] = STATE(5696),
    [sym_alias_reassign] = STATE(5696),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5696),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5696),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5696),
    [sym_union_declaration] = STATE(5696),
    [sym_postblit] = STATE(5696),
    [sym_invariant_declaration] = STATE(5696),
    [sym_class_declaration] = STATE(5696),
    [sym_constructor] = STATE(5696),
    [sym_destructor] = STATE(5696),
    [sym_alias_this] = STATE(5696),
    [sym_interface_declaration] = STATE(5696),
    [sym_enum_declaration] = STATE(5696),
    [sym_anonymous_enum_declaration] = STATE(5696),
    [sym_function_declaration] = STATE(5696),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5696),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5696),
    [sym_template_mixin] = STATE(5696),
    [sym_conditional_declaration] = STATE(5696),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5696),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5696),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2006),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1964),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [451] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1732),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [452] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1729),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [453] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [454] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5698),
    [sym_mixin_declaration] = STATE(5698),
    [sym__declaration] = STATE(5698),
    [sym__declaration2] = STATE(5698),
    [sym_variable_declaration] = STATE(5698),
    [sym_manifest_constant] = STATE(5698),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5698),
    [sym_alias_declaration] = STATE(5698),
    [sym_alias_reassign] = STATE(5698),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5698),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5698),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5698),
    [sym_union_declaration] = STATE(5698),
    [sym_postblit] = STATE(5698),
    [sym_invariant_declaration] = STATE(5698),
    [sym_class_declaration] = STATE(5698),
    [sym_constructor] = STATE(5698),
    [sym_destructor] = STATE(5698),
    [sym_alias_this] = STATE(5698),
    [sym_interface_declaration] = STATE(5698),
    [sym_enum_declaration] = STATE(5698),
    [sym_anonymous_enum_declaration] = STATE(5698),
    [sym_function_declaration] = STATE(5698),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5698),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5698),
    [sym_template_mixin] = STATE(5698),
    [sym_conditional_declaration] = STATE(5698),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5698),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5698),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2008),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1960),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [455] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1374),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [456] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5649),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [457] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1635),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [458] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5653),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [459] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1562),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [460] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5589),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [461] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(6600),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [462] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5659),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [463] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2197),
    [sym_mixin_declaration] = STATE(2197),
    [sym__declaration] = STATE(2197),
    [sym__declaration2] = STATE(2197),
    [sym_variable_declaration] = STATE(2197),
    [sym_manifest_constant] = STATE(2197),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2197),
    [sym_alias_declaration] = STATE(2197),
    [sym_alias_reassign] = STATE(2197),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2197),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2197),
    [sym_pragma_statement] = STATE(2197),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2197),
    [sym__declaration_or_statement] = STATE(2197),
    [sym_scope_statement] = STATE(2345),
    [sym__statement_no_case_no_default] = STATE(2197),
    [sym_labeled_statement] = STATE(2197),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2197),
    [sym_if_statement] = STATE(2197),
    [sym_while_statement] = STATE(2197),
    [sym_do_statement] = STATE(2197),
    [sym_for_statement] = STATE(2197),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2197),
    [sym_switch_statement] = STATE(2197),
    [sym_case_statement] = STATE(2197),
    [sym_final_switch_statement] = STATE(2197),
    [sym_continue_statement] = STATE(2197),
    [sym_break_statement] = STATE(2197),
    [sym_return_statement] = STATE(2197),
    [sym_goto_statement] = STATE(2197),
    [sym_with_statement] = STATE(2197),
    [sym_synchronized_statement] = STATE(2197),
    [sym_try_statement] = STATE(2197),
    [sym_scope_guard_statement] = STATE(2197),
    [sym_asm_statement] = STATE(2197),
    [sym_struct_declaration] = STATE(2197),
    [sym_union_declaration] = STATE(2197),
    [sym_postblit] = STATE(2197),
    [sym_invariant_declaration] = STATE(2197),
    [sym_class_declaration] = STATE(2197),
    [sym_constructor] = STATE(2197),
    [sym_destructor] = STATE(2197),
    [sym_alias_this] = STATE(2197),
    [sym_interface_declaration] = STATE(2197),
    [sym_enum_declaration] = STATE(2197),
    [sym_anonymous_enum_declaration] = STATE(2197),
    [sym_function_declaration] = STATE(2197),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2197),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2197),
    [sym_template_mixin] = STATE(2197),
    [sym_conditional_declaration] = STATE(2197),
    [sym_conditional_statement] = STATE(2197),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2197),
    [sym_static_foreach_declaration] = STATE(2197),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2197),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(684),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [464] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5661),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [465] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5431),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [466] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5662),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [467] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5664),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [468] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5665),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [469] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5666),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [470] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5427),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [471] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5672),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [472] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5673),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [473] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5675),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [474] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5676),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [475] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5677),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [476] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5679),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [477] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1732),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [478] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1389),
    [sym_mixin_declaration] = STATE(1389),
    [sym__declaration] = STATE(1389),
    [sym__declaration2] = STATE(1389),
    [sym_variable_declaration] = STATE(1389),
    [sym_manifest_constant] = STATE(1389),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1389),
    [sym_alias_declaration] = STATE(1389),
    [sym_alias_reassign] = STATE(1389),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1389),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1389),
    [sym_pragma_statement] = STATE(1389),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1389),
    [sym__declaration_or_statement] = STATE(1389),
    [sym_scope_statement] = STATE(1440),
    [sym__statement_no_case_no_default] = STATE(1389),
    [sym_labeled_statement] = STATE(1389),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1389),
    [sym_if_statement] = STATE(1389),
    [sym_while_statement] = STATE(1389),
    [sym_do_statement] = STATE(1389),
    [sym_for_statement] = STATE(1389),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1389),
    [sym_switch_statement] = STATE(1389),
    [sym_case_statement] = STATE(1389),
    [sym_final_switch_statement] = STATE(1389),
    [sym_continue_statement] = STATE(1389),
    [sym_break_statement] = STATE(1389),
    [sym_return_statement] = STATE(1389),
    [sym_goto_statement] = STATE(1389),
    [sym_with_statement] = STATE(1389),
    [sym_synchronized_statement] = STATE(1389),
    [sym_try_statement] = STATE(1389),
    [sym_scope_guard_statement] = STATE(1389),
    [sym_asm_statement] = STATE(1389),
    [sym_struct_declaration] = STATE(1389),
    [sym_union_declaration] = STATE(1389),
    [sym_postblit] = STATE(1389),
    [sym_invariant_declaration] = STATE(1389),
    [sym_class_declaration] = STATE(1389),
    [sym_constructor] = STATE(1389),
    [sym_destructor] = STATE(1389),
    [sym_alias_this] = STATE(1389),
    [sym_interface_declaration] = STATE(1389),
    [sym_enum_declaration] = STATE(1389),
    [sym_anonymous_enum_declaration] = STATE(1389),
    [sym_function_declaration] = STATE(1389),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1389),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1389),
    [sym_template_mixin] = STATE(1389),
    [sym_conditional_declaration] = STATE(1389),
    [sym_conditional_statement] = STATE(1389),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1389),
    [sym_static_foreach_declaration] = STATE(1389),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1389),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(253),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1190),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [479] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(159),
    [sym_mixin_declaration] = STATE(159),
    [sym__declaration] = STATE(159),
    [sym__declaration2] = STATE(159),
    [sym_variable_declaration] = STATE(159),
    [sym_manifest_constant] = STATE(159),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(159),
    [sym_alias_declaration] = STATE(159),
    [sym_alias_reassign] = STATE(159),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(159),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(159),
    [sym_pragma_statement] = STATE(159),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(159),
    [sym_labeled_statement] = STATE(159),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(159),
    [sym_if_statement] = STATE(159),
    [sym_while_statement] = STATE(159),
    [sym_do_statement] = STATE(159),
    [sym_for_statement] = STATE(159),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(159),
    [sym_switch_statement] = STATE(159),
    [sym_final_switch_statement] = STATE(159),
    [sym_continue_statement] = STATE(159),
    [sym_break_statement] = STATE(159),
    [sym_return_statement] = STATE(159),
    [sym_goto_statement] = STATE(159),
    [sym_with_statement] = STATE(159),
    [sym_synchronized_statement] = STATE(159),
    [sym_try_statement] = STATE(159),
    [sym_scope_guard_statement] = STATE(159),
    [sym_asm_statement] = STATE(159),
    [sym_struct_declaration] = STATE(159),
    [sym_union_declaration] = STATE(159),
    [sym_postblit] = STATE(159),
    [sym_invariant_declaration] = STATE(159),
    [sym_class_declaration] = STATE(159),
    [sym_constructor] = STATE(159),
    [sym_destructor] = STATE(159),
    [sym_alias_this] = STATE(159),
    [sym_interface_declaration] = STATE(159),
    [sym_enum_declaration] = STATE(159),
    [sym_anonymous_enum_declaration] = STATE(159),
    [sym_function_declaration] = STATE(159),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(159),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(159),
    [sym_template_mixin] = STATE(159),
    [sym_conditional_declaration] = STATE(159),
    [sym_conditional_statement] = STATE(159),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(159),
    [sym_static_foreach_declaration] = STATE(159),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(159),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(159),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(357),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(357),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2010),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(361),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(361),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_else] = ACTIONS(361),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [480] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5635),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [481] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1651),
    [sym_mixin_declaration] = STATE(1651),
    [sym__declaration] = STATE(1651),
    [sym__declaration2] = STATE(1651),
    [sym_variable_declaration] = STATE(1651),
    [sym_manifest_constant] = STATE(1651),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1651),
    [sym_alias_declaration] = STATE(1651),
    [sym_alias_reassign] = STATE(1651),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1651),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1651),
    [sym_pragma_statement] = STATE(1651),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1651),
    [sym__declaration_or_statement] = STATE(1651),
    [sym_scope_statement] = STATE(1729),
    [sym__statement_no_case_no_default] = STATE(1651),
    [sym_labeled_statement] = STATE(1651),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1651),
    [sym_if_statement] = STATE(1651),
    [sym_while_statement] = STATE(1651),
    [sym_do_statement] = STATE(1651),
    [sym_for_statement] = STATE(1651),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1651),
    [sym_switch_statement] = STATE(1651),
    [sym_case_statement] = STATE(1651),
    [sym_final_switch_statement] = STATE(1651),
    [sym_continue_statement] = STATE(1651),
    [sym_break_statement] = STATE(1651),
    [sym_return_statement] = STATE(1651),
    [sym_goto_statement] = STATE(1651),
    [sym_with_statement] = STATE(1651),
    [sym_synchronized_statement] = STATE(1651),
    [sym_try_statement] = STATE(1651),
    [sym_scope_guard_statement] = STATE(1651),
    [sym_asm_statement] = STATE(1651),
    [sym_struct_declaration] = STATE(1651),
    [sym_union_declaration] = STATE(1651),
    [sym_postblit] = STATE(1651),
    [sym_invariant_declaration] = STATE(1651),
    [sym_class_declaration] = STATE(1651),
    [sym_constructor] = STATE(1651),
    [sym_destructor] = STATE(1651),
    [sym_alias_this] = STATE(1651),
    [sym_interface_declaration] = STATE(1651),
    [sym_enum_declaration] = STATE(1651),
    [sym_anonymous_enum_declaration] = STATE(1651),
    [sym_function_declaration] = STATE(1651),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1651),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1651),
    [sym_template_mixin] = STATE(1651),
    [sym_conditional_declaration] = STATE(1651),
    [sym_conditional_statement] = STATE(1651),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1651),
    [sym_static_foreach_declaration] = STATE(1651),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1651),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(664),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [482] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5607),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [483] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5698),
    [sym_mixin_declaration] = STATE(5698),
    [sym__declaration] = STATE(5698),
    [sym__declaration2] = STATE(5698),
    [sym_variable_declaration] = STATE(5698),
    [sym_manifest_constant] = STATE(5698),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5698),
    [sym_alias_declaration] = STATE(5698),
    [sym_alias_reassign] = STATE(5698),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5698),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5698),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5698),
    [sym_union_declaration] = STATE(5698),
    [sym_postblit] = STATE(5698),
    [sym_invariant_declaration] = STATE(5698),
    [sym_class_declaration] = STATE(5698),
    [sym_constructor] = STATE(5698),
    [sym_destructor] = STATE(5698),
    [sym_alias_this] = STATE(5698),
    [sym_interface_declaration] = STATE(5698),
    [sym_enum_declaration] = STATE(5698),
    [sym_anonymous_enum_declaration] = STATE(5698),
    [sym_function_declaration] = STATE(5698),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5698),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5698),
    [sym_template_mixin] = STATE(5698),
    [sym_conditional_declaration] = STATE(5698),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5698),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5698),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2008),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1960),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [484] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5697),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [485] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5696),
    [sym_mixin_declaration] = STATE(5696),
    [sym__declaration] = STATE(5696),
    [sym__declaration2] = STATE(5696),
    [sym_variable_declaration] = STATE(5696),
    [sym_manifest_constant] = STATE(5696),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5696),
    [sym_alias_declaration] = STATE(5696),
    [sym_alias_reassign] = STATE(5696),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5696),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5696),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5696),
    [sym_union_declaration] = STATE(5696),
    [sym_postblit] = STATE(5696),
    [sym_invariant_declaration] = STATE(5696),
    [sym_class_declaration] = STATE(5696),
    [sym_constructor] = STATE(5696),
    [sym_destructor] = STATE(5696),
    [sym_alias_this] = STATE(5696),
    [sym_interface_declaration] = STATE(5696),
    [sym_enum_declaration] = STATE(5696),
    [sym_anonymous_enum_declaration] = STATE(5696),
    [sym_function_declaration] = STATE(5696),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5696),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5696),
    [sym_template_mixin] = STATE(5696),
    [sym_conditional_declaration] = STATE(5696),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5696),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5696),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2006),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1964),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [486] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5695),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [487] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5689),
    [sym_mixin_declaration] = STATE(5689),
    [sym__declaration] = STATE(5689),
    [sym__declaration2] = STATE(5689),
    [sym_variable_declaration] = STATE(5689),
    [sym_manifest_constant] = STATE(5689),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5689),
    [sym_alias_declaration] = STATE(5689),
    [sym_alias_reassign] = STATE(5689),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5689),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5689),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5689),
    [sym_union_declaration] = STATE(5689),
    [sym_postblit] = STATE(5689),
    [sym_invariant_declaration] = STATE(5689),
    [sym_class_declaration] = STATE(5689),
    [sym_constructor] = STATE(5689),
    [sym_destructor] = STATE(5689),
    [sym_alias_this] = STATE(5689),
    [sym_interface_declaration] = STATE(5689),
    [sym_enum_declaration] = STATE(5689),
    [sym_anonymous_enum_declaration] = STATE(5689),
    [sym_function_declaration] = STATE(5689),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5689),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5689),
    [sym_template_mixin] = STATE(5689),
    [sym_conditional_declaration] = STATE(5689),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5689),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5689),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2004),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1968),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [488] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5687),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [489] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5684),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [490] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5683),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [491] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(5637),
    [sym_mixin_declaration] = STATE(5637),
    [sym__declaration] = STATE(5637),
    [sym__declaration2] = STATE(5637),
    [sym_variable_declaration] = STATE(5637),
    [sym_manifest_constant] = STATE(5637),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(5637),
    [sym_alias_declaration] = STATE(5637),
    [sym_alias_reassign] = STATE(5637),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(5637),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5637),
    [sym_pragma_statement] = STATE(5637),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5637),
    [sym__declaration_or_statement] = STATE(5637),
    [sym_scope_statement] = STATE(5681),
    [sym__statement_no_case_no_default] = STATE(5637),
    [sym_labeled_statement] = STATE(5637),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5637),
    [sym_if_statement] = STATE(5637),
    [sym_while_statement] = STATE(5637),
    [sym_do_statement] = STATE(5637),
    [sym_for_statement] = STATE(5637),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5637),
    [sym_switch_statement] = STATE(5637),
    [sym_case_statement] = STATE(5637),
    [sym_final_switch_statement] = STATE(5637),
    [sym_continue_statement] = STATE(5637),
    [sym_break_statement] = STATE(5637),
    [sym_return_statement] = STATE(5637),
    [sym_goto_statement] = STATE(5637),
    [sym_with_statement] = STATE(5637),
    [sym_synchronized_statement] = STATE(5637),
    [sym_try_statement] = STATE(5637),
    [sym_scope_guard_statement] = STATE(5637),
    [sym_asm_statement] = STATE(5637),
    [sym_struct_declaration] = STATE(5637),
    [sym_union_declaration] = STATE(5637),
    [sym_postblit] = STATE(5637),
    [sym_invariant_declaration] = STATE(5637),
    [sym_class_declaration] = STATE(5637),
    [sym_constructor] = STATE(5637),
    [sym_destructor] = STATE(5637),
    [sym_alias_this] = STATE(5637),
    [sym_interface_declaration] = STATE(5637),
    [sym_enum_declaration] = STATE(5637),
    [sym_anonymous_enum_declaration] = STATE(5637),
    [sym_function_declaration] = STATE(5637),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(5637),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(5637),
    [sym_template_mixin] = STATE(5637),
    [sym_conditional_declaration] = STATE(5637),
    [sym_conditional_statement] = STATE(5637),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5637),
    [sym_static_foreach_declaration] = STATE(5637),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(5637),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(1036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [492] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(507),
    [sym_mixin_declaration] = STATE(507),
    [sym__declaration] = STATE(507),
    [sym__declaration2] = STATE(507),
    [sym_variable_declaration] = STATE(507),
    [sym_manifest_constant] = STATE(507),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(507),
    [sym_alias_declaration] = STATE(507),
    [sym_alias_reassign] = STATE(507),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(507),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(507),
    [sym_pragma_statement] = STATE(507),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(507),
    [sym_labeled_statement] = STATE(507),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(507),
    [sym_if_statement] = STATE(507),
    [sym_while_statement] = STATE(507),
    [sym_do_statement] = STATE(507),
    [sym_for_statement] = STATE(507),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(507),
    [sym_switch_statement] = STATE(507),
    [sym_final_switch_statement] = STATE(507),
    [sym_continue_statement] = STATE(507),
    [sym_break_statement] = STATE(507),
    [sym_return_statement] = STATE(507),
    [sym_goto_statement] = STATE(507),
    [sym_with_statement] = STATE(507),
    [sym_synchronized_statement] = STATE(507),
    [sym_try_statement] = STATE(507),
    [sym_scope_guard_statement] = STATE(507),
    [sym_asm_statement] = STATE(507),
    [sym_struct_declaration] = STATE(507),
    [sym_union_declaration] = STATE(507),
    [sym_postblit] = STATE(507),
    [sym_invariant_declaration] = STATE(507),
    [sym_class_declaration] = STATE(507),
    [sym_constructor] = STATE(507),
    [sym_destructor] = STATE(507),
    [sym_alias_this] = STATE(507),
    [sym_interface_declaration] = STATE(507),
    [sym_enum_declaration] = STATE(507),
    [sym_anonymous_enum_declaration] = STATE(507),
    [sym_function_declaration] = STATE(507),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(507),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(507),
    [sym_template_mixin] = STATE(507),
    [sym_conditional_declaration] = STATE(507),
    [sym_conditional_statement] = STATE(507),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(507),
    [sym_static_foreach_declaration] = STATE(507),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(507),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(507),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(646),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(646),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2012),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(648),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(648),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [493] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2369),
    [sym_mixin_declaration] = STATE(2369),
    [sym__declaration] = STATE(2369),
    [sym__declaration2] = STATE(2369),
    [sym_variable_declaration] = STATE(2369),
    [sym_manifest_constant] = STATE(2369),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2369),
    [sym_alias_declaration] = STATE(2369),
    [sym_alias_reassign] = STATE(2369),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2369),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2369),
    [sym_pragma_statement] = STATE(2191),
    [sym_pragma_expression] = STATE(493),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2191),
    [sym__statement_no_case_no_default] = STATE(2191),
    [sym_labeled_statement] = STATE(2191),
    [sym_label] = STATE(370),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2191),
    [sym_if_statement] = STATE(2191),
    [sym_while_statement] = STATE(2191),
    [sym_do_statement] = STATE(2191),
    [sym_for_statement] = STATE(2191),
    [sym__foreach] = STATE(8049),
    [sym_foreach_statement] = STATE(2191),
    [sym_switch_statement] = STATE(2191),
    [sym_case_statement] = STATE(2191),
    [sym_final_switch_statement] = STATE(2191),
    [sym_continue_statement] = STATE(2191),
    [sym_break_statement] = STATE(2191),
    [sym_return_statement] = STATE(2191),
    [sym_goto_statement] = STATE(2191),
    [sym_with_statement] = STATE(2191),
    [sym_synchronized_statement] = STATE(2191),
    [sym_try_statement] = STATE(2191),
    [sym_scope_guard_statement] = STATE(2191),
    [sym_asm_statement] = STATE(2191),
    [sym_struct_declaration] = STATE(2369),
    [sym_union_declaration] = STATE(2369),
    [sym_postblit] = STATE(2369),
    [sym_invariant_declaration] = STATE(2369),
    [sym_class_declaration] = STATE(2369),
    [sym_constructor] = STATE(2369),
    [sym_destructor] = STATE(2369),
    [sym_alias_this] = STATE(2369),
    [sym_interface_declaration] = STATE(2369),
    [sym_enum_declaration] = STATE(2369),
    [sym_anonymous_enum_declaration] = STATE(2369),
    [sym_function_declaration] = STATE(2369),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2369),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2369),
    [sym_template_mixin] = STATE(2369),
    [sym_conditional_declaration] = STATE(2369),
    [sym_conditional_statement] = STATE(2191),
    [sym_condition] = STATE(89),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2191),
    [sym_static_foreach_declaration] = STATE(2369),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2369),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2014),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2016),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1950),
    [sym_for] = ACTIONS(752),
    [sym_foreach] = ACTIONS(754),
    [sym_foreach_reverse] = ACTIONS(754),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(758),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1952),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1954),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(1956),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(798),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(810),
    [sym_with] = ACTIONS(812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [494] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2622),
    [sym_mixin_declaration] = STATE(2622),
    [sym__declaration] = STATE(2622),
    [sym__declaration2] = STATE(2622),
    [sym_variable_declaration] = STATE(2622),
    [sym_manifest_constant] = STATE(2622),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2622),
    [sym_alias_declaration] = STATE(2622),
    [sym_alias_reassign] = STATE(2622),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2622),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2622),
    [sym_pragma_statement] = STATE(5601),
    [sym_pragma_expression] = STATE(494),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5601),
    [sym__statement_no_case_no_default] = STATE(5601),
    [sym_labeled_statement] = STATE(5601),
    [sym_label] = STATE(209),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5601),
    [sym_if_statement] = STATE(5601),
    [sym_while_statement] = STATE(5601),
    [sym_do_statement] = STATE(5601),
    [sym_for_statement] = STATE(5601),
    [sym__foreach] = STATE(7985),
    [sym_foreach_statement] = STATE(5601),
    [sym_switch_statement] = STATE(5601),
    [sym_case_statement] = STATE(5601),
    [sym_final_switch_statement] = STATE(5601),
    [sym_continue_statement] = STATE(5601),
    [sym_break_statement] = STATE(5601),
    [sym_return_statement] = STATE(5601),
    [sym_goto_statement] = STATE(5601),
    [sym_with_statement] = STATE(5601),
    [sym_synchronized_statement] = STATE(5601),
    [sym_try_statement] = STATE(5601),
    [sym_scope_guard_statement] = STATE(5601),
    [sym_asm_statement] = STATE(5601),
    [sym_struct_declaration] = STATE(2622),
    [sym_union_declaration] = STATE(2622),
    [sym_postblit] = STATE(2622),
    [sym_invariant_declaration] = STATE(2622),
    [sym_class_declaration] = STATE(2622),
    [sym_constructor] = STATE(2622),
    [sym_destructor] = STATE(2622),
    [sym_alias_this] = STATE(2622),
    [sym_interface_declaration] = STATE(2622),
    [sym_enum_declaration] = STATE(2622),
    [sym_anonymous_enum_declaration] = STATE(2622),
    [sym_function_declaration] = STATE(2622),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2622),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2622),
    [sym_template_mixin] = STATE(2622),
    [sym_conditional_declaration] = STATE(2622),
    [sym_conditional_statement] = STATE(5601),
    [sym_condition] = STATE(122),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5601),
    [sym_static_foreach_declaration] = STATE(2622),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2622),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2018),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2020),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1805),
    [sym_for] = ACTIONS(1763),
    [sym_foreach] = ACTIONS(1765),
    [sym_foreach_reverse] = ACTIONS(1765),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1767),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1807),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1809),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(1811),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1783),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1785),
    [sym_with] = ACTIONS(1787),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [495] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1644),
    [sym_mixin_declaration] = STATE(1644),
    [sym__declaration] = STATE(1644),
    [sym__declaration2] = STATE(1644),
    [sym_variable_declaration] = STATE(1644),
    [sym_manifest_constant] = STATE(1644),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1644),
    [sym_alias_declaration] = STATE(1644),
    [sym_alias_reassign] = STATE(1644),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1644),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1644),
    [sym_pragma_statement] = STATE(1687),
    [sym_pragma_expression] = STATE(495),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1687),
    [sym__statement_no_case_no_default] = STATE(1687),
    [sym_labeled_statement] = STATE(1687),
    [sym_label] = STATE(412),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1687),
    [sym_if_statement] = STATE(1687),
    [sym_while_statement] = STATE(1687),
    [sym_do_statement] = STATE(1687),
    [sym_for_statement] = STATE(1687),
    [sym__foreach] = STATE(8039),
    [sym_foreach_statement] = STATE(1687),
    [sym_switch_statement] = STATE(1687),
    [sym_case_statement] = STATE(1687),
    [sym_final_switch_statement] = STATE(1687),
    [sym_continue_statement] = STATE(1687),
    [sym_break_statement] = STATE(1687),
    [sym_return_statement] = STATE(1687),
    [sym_goto_statement] = STATE(1687),
    [sym_with_statement] = STATE(1687),
    [sym_synchronized_statement] = STATE(1687),
    [sym_try_statement] = STATE(1687),
    [sym_scope_guard_statement] = STATE(1687),
    [sym_asm_statement] = STATE(1687),
    [sym_struct_declaration] = STATE(1644),
    [sym_union_declaration] = STATE(1644),
    [sym_postblit] = STATE(1644),
    [sym_invariant_declaration] = STATE(1644),
    [sym_class_declaration] = STATE(1644),
    [sym_constructor] = STATE(1644),
    [sym_destructor] = STATE(1644),
    [sym_alias_this] = STATE(1644),
    [sym_interface_declaration] = STATE(1644),
    [sym_enum_declaration] = STATE(1644),
    [sym_anonymous_enum_declaration] = STATE(1644),
    [sym_function_declaration] = STATE(1644),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1644),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1644),
    [sym_template_mixin] = STATE(1644),
    [sym_conditional_declaration] = STATE(1644),
    [sym_conditional_statement] = STATE(1687),
    [sym_condition] = STATE(95),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1687),
    [sym_static_foreach_declaration] = STATE(1644),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1644),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2022),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2024),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(836),
    [sym_for] = ACTIONS(838),
    [sym_foreach] = ACTIONS(840),
    [sym_foreach_reverse] = ACTIONS(840),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(842),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(844),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(846),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(850),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(852),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(854),
    [sym_with] = ACTIONS(856),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [496] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(512),
    [sym_mixin_declaration] = STATE(512),
    [sym__declaration] = STATE(512),
    [sym__declaration2] = STATE(512),
    [sym_variable_declaration] = STATE(512),
    [sym_manifest_constant] = STATE(512),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(512),
    [sym_alias_declaration] = STATE(512),
    [sym_alias_reassign] = STATE(512),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(512),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(512),
    [sym_pragma_statement] = STATE(512),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(512),
    [sym_labeled_statement] = STATE(512),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(512),
    [sym_if_statement] = STATE(512),
    [sym_while_statement] = STATE(512),
    [sym_do_statement] = STATE(512),
    [sym_for_statement] = STATE(512),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(512),
    [sym_switch_statement] = STATE(512),
    [sym_final_switch_statement] = STATE(512),
    [sym_continue_statement] = STATE(512),
    [sym_break_statement] = STATE(512),
    [sym_return_statement] = STATE(512),
    [sym_goto_statement] = STATE(512),
    [sym_with_statement] = STATE(512),
    [sym_synchronized_statement] = STATE(512),
    [sym_try_statement] = STATE(512),
    [sym_scope_guard_statement] = STATE(512),
    [sym_asm_statement] = STATE(512),
    [sym_struct_declaration] = STATE(512),
    [sym_union_declaration] = STATE(512),
    [sym_postblit] = STATE(512),
    [sym_invariant_declaration] = STATE(512),
    [sym_class_declaration] = STATE(512),
    [sym_constructor] = STATE(512),
    [sym_destructor] = STATE(512),
    [sym_alias_this] = STATE(512),
    [sym_interface_declaration] = STATE(512),
    [sym_enum_declaration] = STATE(512),
    [sym_anonymous_enum_declaration] = STATE(512),
    [sym_function_declaration] = STATE(512),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(512),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(512),
    [sym_template_mixin] = STATE(512),
    [sym_conditional_declaration] = STATE(512),
    [sym_conditional_statement] = STATE(512),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(512),
    [sym_static_foreach_declaration] = STATE(512),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(512),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(512),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(357),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(357),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2026),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(361),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(361),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [497] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2622),
    [sym_mixin_declaration] = STATE(2622),
    [sym__declaration] = STATE(2622),
    [sym__declaration2] = STATE(2622),
    [sym_variable_declaration] = STATE(2622),
    [sym_manifest_constant] = STATE(2622),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2622),
    [sym_alias_declaration] = STATE(2622),
    [sym_alias_reassign] = STATE(2622),
    [sym_type] = STATE(5374),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2622),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2622),
    [sym_pragma_statement] = STATE(5601),
    [sym_pragma_expression] = STATE(497),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3825),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5601),
    [sym__statement_no_case_no_default] = STATE(5601),
    [sym_labeled_statement] = STATE(5601),
    [sym_label] = STATE(235),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5601),
    [sym_if_statement] = STATE(5601),
    [sym_while_statement] = STATE(5601),
    [sym_do_statement] = STATE(5601),
    [sym_for_statement] = STATE(5601),
    [sym__foreach] = STATE(8003),
    [sym_foreach_statement] = STATE(5601),
    [sym_switch_statement] = STATE(5601),
    [sym_case_statement] = STATE(5601),
    [sym_final_switch_statement] = STATE(5601),
    [sym_continue_statement] = STATE(5601),
    [sym_break_statement] = STATE(5601),
    [sym_return_statement] = STATE(5601),
    [sym_goto_statement] = STATE(5601),
    [sym_with_statement] = STATE(5601),
    [sym_synchronized_statement] = STATE(5601),
    [sym_try_statement] = STATE(5601),
    [sym_scope_guard_statement] = STATE(5601),
    [sym_asm_statement] = STATE(5601),
    [sym_struct_declaration] = STATE(2622),
    [sym_union_declaration] = STATE(2622),
    [sym_postblit] = STATE(2622),
    [sym_invariant_declaration] = STATE(2622),
    [sym_class_declaration] = STATE(2622),
    [sym_constructor] = STATE(2622),
    [sym_destructor] = STATE(2622),
    [sym_alias_this] = STATE(2622),
    [sym_interface_declaration] = STATE(2622),
    [sym_enum_declaration] = STATE(2622),
    [sym_anonymous_enum_declaration] = STATE(2622),
    [sym_function_declaration] = STATE(2622),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2622),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2622),
    [sym_template_mixin] = STATE(2622),
    [sym_conditional_declaration] = STATE(2622),
    [sym_conditional_statement] = STATE(5601),
    [sym_condition] = STATE(130),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5601),
    [sym_static_foreach_declaration] = STATE(2622),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2622),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1733),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2018),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2020),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1274),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1276),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1278),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1741),
    [sym_for] = ACTIONS(1290),
    [sym_foreach] = ACTIONS(1292),
    [sym_foreach_reverse] = ACTIONS(1292),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1294),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1296),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1743),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1745),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(1749),
    [sym_struct] = ACTIONS(63),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(1751),
    [sym_template] = ACTIONS(65),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1320),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(1322),
    [sym_while] = ACTIONS(1324),
    [sym_with] = ACTIONS(1326),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [498] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1409),
    [sym_mixin_declaration] = STATE(1409),
    [sym__declaration] = STATE(1409),
    [sym__declaration2] = STATE(1409),
    [sym_variable_declaration] = STATE(1409),
    [sym_manifest_constant] = STATE(1409),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1409),
    [sym_alias_declaration] = STATE(1409),
    [sym_alias_reassign] = STATE(1409),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1409),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1409),
    [sym_pragma_statement] = STATE(1376),
    [sym_pragma_expression] = STATE(498),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1376),
    [sym__statement_no_case_no_default] = STATE(1376),
    [sym_labeled_statement] = STATE(1376),
    [sym_label] = STATE(272),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1376),
    [sym_if_statement] = STATE(1376),
    [sym_while_statement] = STATE(1376),
    [sym_do_statement] = STATE(1376),
    [sym_for_statement] = STATE(1376),
    [sym__foreach] = STATE(8045),
    [sym_foreach_statement] = STATE(1376),
    [sym_switch_statement] = STATE(1376),
    [sym_case_statement] = STATE(1376),
    [sym_final_switch_statement] = STATE(1376),
    [sym_continue_statement] = STATE(1376),
    [sym_break_statement] = STATE(1376),
    [sym_return_statement] = STATE(1376),
    [sym_goto_statement] = STATE(1376),
    [sym_with_statement] = STATE(1376),
    [sym_synchronized_statement] = STATE(1376),
    [sym_try_statement] = STATE(1376),
    [sym_scope_guard_statement] = STATE(1376),
    [sym_asm_statement] = STATE(1376),
    [sym_struct_declaration] = STATE(1409),
    [sym_union_declaration] = STATE(1409),
    [sym_postblit] = STATE(1409),
    [sym_invariant_declaration] = STATE(1409),
    [sym_class_declaration] = STATE(1409),
    [sym_constructor] = STATE(1409),
    [sym_destructor] = STATE(1409),
    [sym_alias_this] = STATE(1409),
    [sym_interface_declaration] = STATE(1409),
    [sym_enum_declaration] = STATE(1409),
    [sym_anonymous_enum_declaration] = STATE(1409),
    [sym_function_declaration] = STATE(1409),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1409),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1409),
    [sym_template_mixin] = STATE(1409),
    [sym_conditional_declaration] = STATE(1409),
    [sym_conditional_statement] = STATE(1376),
    [sym_condition] = STATE(63),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1376),
    [sym_static_foreach_declaration] = STATE(1409),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1409),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2028),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2030),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(281),
    [sym_for] = ACTIONS(283),
    [sym_foreach] = ACTIONS(285),
    [sym_foreach_reverse] = ACTIONS(285),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(289),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(301),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(305),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(311),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(315),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(323),
    [sym_with] = ACTIONS(325),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [499] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1409),
    [sym_mixin_declaration] = STATE(1409),
    [sym__declaration] = STATE(1409),
    [sym__declaration2] = STATE(1409),
    [sym_variable_declaration] = STATE(1409),
    [sym_manifest_constant] = STATE(1409),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1409),
    [sym_alias_declaration] = STATE(1409),
    [sym_alias_reassign] = STATE(1409),
    [sym_type] = STATE(5341),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1409),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1409),
    [sym_pragma_statement] = STATE(1376),
    [sym_pragma_expression] = STATE(499),
    [sym_expression_list] = STATE(7037),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3798),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1376),
    [sym__statement_no_case_no_default] = STATE(1376),
    [sym_labeled_statement] = STATE(1376),
    [sym_label] = STATE(455),
    [sym_block_statement] = STATE(662),
    [sym_expression_statement] = STATE(1376),
    [sym_if_statement] = STATE(1376),
    [sym_while_statement] = STATE(1376),
    [sym_do_statement] = STATE(1376),
    [sym_for_statement] = STATE(1376),
    [sym__foreach] = STATE(8034),
    [sym_foreach_statement] = STATE(1376),
    [sym_switch_statement] = STATE(1376),
    [sym_case_statement] = STATE(1376),
    [sym_final_switch_statement] = STATE(1376),
    [sym_continue_statement] = STATE(1376),
    [sym_break_statement] = STATE(1376),
    [sym_return_statement] = STATE(1376),
    [sym_goto_statement] = STATE(1376),
    [sym_with_statement] = STATE(1376),
    [sym_synchronized_statement] = STATE(1376),
    [sym_try_statement] = STATE(1376),
    [sym_scope_guard_statement] = STATE(1376),
    [sym_asm_statement] = STATE(1376),
    [sym_struct_declaration] = STATE(1409),
    [sym_union_declaration] = STATE(1409),
    [sym_postblit] = STATE(1409),
    [sym_invariant_declaration] = STATE(1409),
    [sym_class_declaration] = STATE(1409),
    [sym_constructor] = STATE(1409),
    [sym_destructor] = STATE(1409),
    [sym_alias_this] = STATE(1409),
    [sym_interface_declaration] = STATE(1409),
    [sym_enum_declaration] = STATE(1409),
    [sym_anonymous_enum_declaration] = STATE(1409),
    [sym_function_declaration] = STATE(1409),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1409),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1409),
    [sym_template_mixin] = STATE(1409),
    [sym_conditional_declaration] = STATE(1409),
    [sym_conditional_statement] = STATE(1376),
    [sym_condition] = STATE(123),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1478),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1478),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1376),
    [sym_static_foreach_declaration] = STATE(1409),
    [sym_static_assert] = STATE(1478),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1409),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(249),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2028),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2030),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(257),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(259),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(263),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(265),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(271),
    [sym_debug] = ACTIONS(273),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(275),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(974),
    [sym_for] = ACTIONS(976),
    [sym_foreach] = ACTIONS(978),
    [sym_foreach_reverse] = ACTIONS(978),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(287),
    [sym_if] = ACTIONS(980),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(291),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(297),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(299),
    [sym_scope] = ACTIONS(982),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(984),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(988),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(990),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(321),
    [sym_while] = ACTIONS(992),
    [sym_with] = ACTIONS(994),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [500] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(510),
    [sym_mixin_declaration] = STATE(510),
    [sym__declaration] = STATE(510),
    [sym__declaration2] = STATE(510),
    [sym_variable_declaration] = STATE(510),
    [sym_manifest_constant] = STATE(510),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(510),
    [sym_alias_declaration] = STATE(510),
    [sym_alias_reassign] = STATE(510),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(510),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(510),
    [sym_pragma_statement] = STATE(510),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(510),
    [sym_labeled_statement] = STATE(510),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(510),
    [sym_if_statement] = STATE(510),
    [sym_while_statement] = STATE(510),
    [sym_do_statement] = STATE(510),
    [sym_for_statement] = STATE(510),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(510),
    [sym_switch_statement] = STATE(510),
    [sym_final_switch_statement] = STATE(510),
    [sym_continue_statement] = STATE(510),
    [sym_break_statement] = STATE(510),
    [sym_return_statement] = STATE(510),
    [sym_goto_statement] = STATE(510),
    [sym_with_statement] = STATE(510),
    [sym_synchronized_statement] = STATE(510),
    [sym_try_statement] = STATE(510),
    [sym_scope_guard_statement] = STATE(510),
    [sym_asm_statement] = STATE(510),
    [sym_struct_declaration] = STATE(510),
    [sym_union_declaration] = STATE(510),
    [sym_postblit] = STATE(510),
    [sym_invariant_declaration] = STATE(510),
    [sym_class_declaration] = STATE(510),
    [sym_constructor] = STATE(510),
    [sym_destructor] = STATE(510),
    [sym_alias_this] = STATE(510),
    [sym_interface_declaration] = STATE(510),
    [sym_enum_declaration] = STATE(510),
    [sym_anonymous_enum_declaration] = STATE(510),
    [sym_function_declaration] = STATE(510),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(510),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(510),
    [sym_template_mixin] = STATE(510),
    [sym_conditional_declaration] = STATE(510),
    [sym_conditional_statement] = STATE(510),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(510),
    [sym_static_foreach_declaration] = STATE(510),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(510),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(510),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2032),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [501] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2609),
    [sym_mixin_declaration] = STATE(2609),
    [sym__declaration] = STATE(2609),
    [sym__declaration2] = STATE(2609),
    [sym_variable_declaration] = STATE(2609),
    [sym_manifest_constant] = STATE(2609),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2609),
    [sym_alias_declaration] = STATE(2609),
    [sym_alias_reassign] = STATE(2609),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2609),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2609),
    [sym_pragma_statement] = STATE(5601),
    [sym_pragma_expression] = STATE(501),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5601),
    [sym__statement_no_case_no_default] = STATE(5601),
    [sym_labeled_statement] = STATE(5601),
    [sym_label] = STATE(482),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5601),
    [sym_if_statement] = STATE(5601),
    [sym_while_statement] = STATE(5601),
    [sym_do_statement] = STATE(5601),
    [sym_for_statement] = STATE(5601),
    [sym__foreach] = STATE(8041),
    [sym_foreach_statement] = STATE(5601),
    [sym_switch_statement] = STATE(5601),
    [sym_case_statement] = STATE(5601),
    [sym_final_switch_statement] = STATE(5601),
    [sym_continue_statement] = STATE(5601),
    [sym_break_statement] = STATE(5601),
    [sym_return_statement] = STATE(5601),
    [sym_goto_statement] = STATE(5601),
    [sym_with_statement] = STATE(5601),
    [sym_synchronized_statement] = STATE(5601),
    [sym_try_statement] = STATE(5601),
    [sym_scope_guard_statement] = STATE(5601),
    [sym_asm_statement] = STATE(5601),
    [sym_struct_declaration] = STATE(2609),
    [sym_union_declaration] = STATE(2609),
    [sym_postblit] = STATE(2609),
    [sym_invariant_declaration] = STATE(2609),
    [sym_class_declaration] = STATE(2609),
    [sym_constructor] = STATE(2609),
    [sym_destructor] = STATE(2609),
    [sym_alias_this] = STATE(2609),
    [sym_interface_declaration] = STATE(2609),
    [sym_enum_declaration] = STATE(2609),
    [sym_anonymous_enum_declaration] = STATE(2609),
    [sym_function_declaration] = STATE(2609),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2609),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2609),
    [sym_template_mixin] = STATE(2609),
    [sym_conditional_declaration] = STATE(2609),
    [sym_conditional_statement] = STATE(5601),
    [sym_condition] = STATE(74),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5601),
    [sym_static_foreach_declaration] = STATE(2609),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2609),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2034),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2020),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(718),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(730),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1986),
    [sym_for] = ACTIONS(1434),
    [sym_foreach] = ACTIONS(1436),
    [sym_foreach_reverse] = ACTIONS(1436),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1438),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1988),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1990),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(1992),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1454),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1456),
    [sym_with] = ACTIONS(1458),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [502] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2369),
    [sym_mixin_declaration] = STATE(2369),
    [sym__declaration] = STATE(2369),
    [sym__declaration2] = STATE(2369),
    [sym_variable_declaration] = STATE(2369),
    [sym_manifest_constant] = STATE(2369),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2369),
    [sym_alias_declaration] = STATE(2369),
    [sym_alias_reassign] = STATE(2369),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2369),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2369),
    [sym_pragma_statement] = STATE(2191),
    [sym_pragma_expression] = STATE(502),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2191),
    [sym__statement_no_case_no_default] = STATE(2191),
    [sym_labeled_statement] = STATE(2191),
    [sym_label] = STATE(318),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2191),
    [sym_if_statement] = STATE(2191),
    [sym_while_statement] = STATE(2191),
    [sym_do_statement] = STATE(2191),
    [sym_for_statement] = STATE(2191),
    [sym__foreach] = STATE(8051),
    [sym_foreach_statement] = STATE(2191),
    [sym_switch_statement] = STATE(2191),
    [sym_case_statement] = STATE(2191),
    [sym_final_switch_statement] = STATE(2191),
    [sym_continue_statement] = STATE(2191),
    [sym_break_statement] = STATE(2191),
    [sym_return_statement] = STATE(2191),
    [sym_goto_statement] = STATE(2191),
    [sym_with_statement] = STATE(2191),
    [sym_synchronized_statement] = STATE(2191),
    [sym_try_statement] = STATE(2191),
    [sym_scope_guard_statement] = STATE(2191),
    [sym_asm_statement] = STATE(2191),
    [sym_struct_declaration] = STATE(2369),
    [sym_union_declaration] = STATE(2369),
    [sym_postblit] = STATE(2369),
    [sym_invariant_declaration] = STATE(2369),
    [sym_class_declaration] = STATE(2369),
    [sym_constructor] = STATE(2369),
    [sym_destructor] = STATE(2369),
    [sym_alias_this] = STATE(2369),
    [sym_interface_declaration] = STATE(2369),
    [sym_enum_declaration] = STATE(2369),
    [sym_anonymous_enum_declaration] = STATE(2369),
    [sym_function_declaration] = STATE(2369),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2369),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2369),
    [sym_template_mixin] = STATE(2369),
    [sym_conditional_declaration] = STATE(2369),
    [sym_conditional_statement] = STATE(2191),
    [sym_condition] = STATE(104),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2191),
    [sym_static_foreach_declaration] = STATE(2369),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2369),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2014),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2016),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(832),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(834),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(874),
    [sym_for] = ACTIONS(876),
    [sym_foreach] = ACTIONS(878),
    [sym_foreach_reverse] = ACTIONS(878),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(880),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(884),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(888),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(892),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(894),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(896),
    [sym_with] = ACTIONS(898),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [503] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(507),
    [sym_mixin_declaration] = STATE(507),
    [sym__declaration] = STATE(507),
    [sym__declaration2] = STATE(507),
    [sym_variable_declaration] = STATE(507),
    [sym_manifest_constant] = STATE(507),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(507),
    [sym_alias_declaration] = STATE(507),
    [sym_alias_reassign] = STATE(507),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(507),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(507),
    [sym_pragma_statement] = STATE(507),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(507),
    [sym_labeled_statement] = STATE(507),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(507),
    [sym_if_statement] = STATE(507),
    [sym_while_statement] = STATE(507),
    [sym_do_statement] = STATE(507),
    [sym_for_statement] = STATE(507),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(507),
    [sym_switch_statement] = STATE(507),
    [sym_final_switch_statement] = STATE(507),
    [sym_continue_statement] = STATE(507),
    [sym_break_statement] = STATE(507),
    [sym_return_statement] = STATE(507),
    [sym_goto_statement] = STATE(507),
    [sym_with_statement] = STATE(507),
    [sym_synchronized_statement] = STATE(507),
    [sym_try_statement] = STATE(507),
    [sym_scope_guard_statement] = STATE(507),
    [sym_asm_statement] = STATE(507),
    [sym_struct_declaration] = STATE(507),
    [sym_union_declaration] = STATE(507),
    [sym_postblit] = STATE(507),
    [sym_invariant_declaration] = STATE(507),
    [sym_class_declaration] = STATE(507),
    [sym_constructor] = STATE(507),
    [sym_destructor] = STATE(507),
    [sym_alias_this] = STATE(507),
    [sym_interface_declaration] = STATE(507),
    [sym_enum_declaration] = STATE(507),
    [sym_anonymous_enum_declaration] = STATE(507),
    [sym_function_declaration] = STATE(507),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(507),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(507),
    [sym_template_mixin] = STATE(507),
    [sym_conditional_declaration] = STATE(507),
    [sym_conditional_statement] = STATE(507),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(507),
    [sym_static_foreach_declaration] = STATE(507),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(507),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(507),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(377),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(377),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2012),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(381),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(381),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [504] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(492),
    [sym_mixin_declaration] = STATE(492),
    [sym__declaration] = STATE(492),
    [sym__declaration2] = STATE(492),
    [sym_variable_declaration] = STATE(492),
    [sym_manifest_constant] = STATE(492),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(492),
    [sym_alias_declaration] = STATE(492),
    [sym_alias_reassign] = STATE(492),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(492),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(492),
    [sym_pragma_statement] = STATE(492),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(492),
    [sym_labeled_statement] = STATE(492),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(492),
    [sym_if_statement] = STATE(492),
    [sym_while_statement] = STATE(492),
    [sym_do_statement] = STATE(492),
    [sym_for_statement] = STATE(492),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(492),
    [sym_switch_statement] = STATE(492),
    [sym_final_switch_statement] = STATE(492),
    [sym_continue_statement] = STATE(492),
    [sym_break_statement] = STATE(492),
    [sym_return_statement] = STATE(492),
    [sym_goto_statement] = STATE(492),
    [sym_with_statement] = STATE(492),
    [sym_synchronized_statement] = STATE(492),
    [sym_try_statement] = STATE(492),
    [sym_scope_guard_statement] = STATE(492),
    [sym_asm_statement] = STATE(492),
    [sym_struct_declaration] = STATE(492),
    [sym_union_declaration] = STATE(492),
    [sym_postblit] = STATE(492),
    [sym_invariant_declaration] = STATE(492),
    [sym_class_declaration] = STATE(492),
    [sym_constructor] = STATE(492),
    [sym_destructor] = STATE(492),
    [sym_alias_this] = STATE(492),
    [sym_interface_declaration] = STATE(492),
    [sym_enum_declaration] = STATE(492),
    [sym_anonymous_enum_declaration] = STATE(492),
    [sym_function_declaration] = STATE(492),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(492),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(492),
    [sym_template_mixin] = STATE(492),
    [sym_conditional_declaration] = STATE(492),
    [sym_conditional_statement] = STATE(492),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(492),
    [sym_static_foreach_declaration] = STATE(492),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(492),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(492),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(640),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(640),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2036),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(644),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(644),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [505] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2609),
    [sym_mixin_declaration] = STATE(2609),
    [sym__declaration] = STATE(2609),
    [sym__declaration2] = STATE(2609),
    [sym_variable_declaration] = STATE(2609),
    [sym_manifest_constant] = STATE(2609),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2609),
    [sym_alias_declaration] = STATE(2609),
    [sym_alias_reassign] = STATE(2609),
    [sym_type] = STATE(5398),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2609),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2609),
    [sym_pragma_statement] = STATE(5601),
    [sym_pragma_expression] = STATE(505),
    [sym_expression_list] = STATE(7164),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3794),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(5601),
    [sym__statement_no_case_no_default] = STATE(5601),
    [sym_labeled_statement] = STATE(5601),
    [sym_label] = STATE(305),
    [sym_block_statement] = STATE(3787),
    [sym_expression_statement] = STATE(5601),
    [sym_if_statement] = STATE(5601),
    [sym_while_statement] = STATE(5601),
    [sym_do_statement] = STATE(5601),
    [sym_for_statement] = STATE(5601),
    [sym__foreach] = STATE(8047),
    [sym_foreach_statement] = STATE(5601),
    [sym_switch_statement] = STATE(5601),
    [sym_case_statement] = STATE(5601),
    [sym_final_switch_statement] = STATE(5601),
    [sym_continue_statement] = STATE(5601),
    [sym_break_statement] = STATE(5601),
    [sym_return_statement] = STATE(5601),
    [sym_goto_statement] = STATE(5601),
    [sym_with_statement] = STATE(5601),
    [sym_synchronized_statement] = STATE(5601),
    [sym_try_statement] = STATE(5601),
    [sym_scope_guard_statement] = STATE(5601),
    [sym_asm_statement] = STATE(5601),
    [sym_struct_declaration] = STATE(2609),
    [sym_union_declaration] = STATE(2609),
    [sym_postblit] = STATE(2609),
    [sym_invariant_declaration] = STATE(2609),
    [sym_class_declaration] = STATE(2609),
    [sym_constructor] = STATE(2609),
    [sym_destructor] = STATE(2609),
    [sym_alias_this] = STATE(2609),
    [sym_interface_declaration] = STATE(2609),
    [sym_enum_declaration] = STATE(2609),
    [sym_anonymous_enum_declaration] = STATE(2609),
    [sym_function_declaration] = STATE(2609),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2609),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2609),
    [sym_template_mixin] = STATE(2609),
    [sym_conditional_declaration] = STATE(2609),
    [sym_conditional_statement] = STATE(5601),
    [sym_condition] = STATE(70),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(5581),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(5581),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(5601),
    [sym_static_foreach_declaration] = STATE(2609),
    [sym_static_assert] = STATE(5581),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2609),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1162),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2034),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2020),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(1038),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(1040),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(1044),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(1046),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(1050),
    [sym_debug] = ACTIONS(1052),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(1054),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1172),
    [sym_for] = ACTIONS(1066),
    [sym_foreach] = ACTIONS(1068),
    [sym_foreach_reverse] = ACTIONS(1068),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(1070),
    [sym_if] = ACTIONS(1072),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(1074),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(1174),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(1084),
    [sym_scope] = ACTIONS(1176),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(1180),
    [sym_struct] = ACTIONS(1098),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(1182),
    [sym_template] = ACTIONS(1106),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1108),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(1114),
    [sym_while] = ACTIONS(1116),
    [sym_with] = ACTIONS(1118),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [506] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(503),
    [sym_mixin_declaration] = STATE(503),
    [sym__declaration] = STATE(503),
    [sym__declaration2] = STATE(503),
    [sym_variable_declaration] = STATE(503),
    [sym_manifest_constant] = STATE(503),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(503),
    [sym_alias_declaration] = STATE(503),
    [sym_alias_reassign] = STATE(503),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(503),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(503),
    [sym_pragma_statement] = STATE(503),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(503),
    [sym_labeled_statement] = STATE(503),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(503),
    [sym_if_statement] = STATE(503),
    [sym_while_statement] = STATE(503),
    [sym_do_statement] = STATE(503),
    [sym_for_statement] = STATE(503),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(503),
    [sym_switch_statement] = STATE(503),
    [sym_final_switch_statement] = STATE(503),
    [sym_continue_statement] = STATE(503),
    [sym_break_statement] = STATE(503),
    [sym_return_statement] = STATE(503),
    [sym_goto_statement] = STATE(503),
    [sym_with_statement] = STATE(503),
    [sym_synchronized_statement] = STATE(503),
    [sym_try_statement] = STATE(503),
    [sym_scope_guard_statement] = STATE(503),
    [sym_asm_statement] = STATE(503),
    [sym_struct_declaration] = STATE(503),
    [sym_union_declaration] = STATE(503),
    [sym_postblit] = STATE(503),
    [sym_invariant_declaration] = STATE(503),
    [sym_class_declaration] = STATE(503),
    [sym_constructor] = STATE(503),
    [sym_destructor] = STATE(503),
    [sym_alias_this] = STATE(503),
    [sym_interface_declaration] = STATE(503),
    [sym_enum_declaration] = STATE(503),
    [sym_anonymous_enum_declaration] = STATE(503),
    [sym_function_declaration] = STATE(503),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(503),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(503),
    [sym_template_mixin] = STATE(503),
    [sym_conditional_declaration] = STATE(503),
    [sym_conditional_statement] = STATE(503),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(503),
    [sym_static_foreach_declaration] = STATE(503),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(503),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(503),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2038),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [507] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(507),
    [sym_mixin_declaration] = STATE(507),
    [sym__declaration] = STATE(507),
    [sym__declaration2] = STATE(507),
    [sym_variable_declaration] = STATE(507),
    [sym_manifest_constant] = STATE(507),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(507),
    [sym_alias_declaration] = STATE(507),
    [sym_alias_reassign] = STATE(507),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(507),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(507),
    [sym_pragma_statement] = STATE(507),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(507),
    [sym_labeled_statement] = STATE(507),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(507),
    [sym_if_statement] = STATE(507),
    [sym_while_statement] = STATE(507),
    [sym_do_statement] = STATE(507),
    [sym_for_statement] = STATE(507),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(507),
    [sym_switch_statement] = STATE(507),
    [sym_final_switch_statement] = STATE(507),
    [sym_continue_statement] = STATE(507),
    [sym_break_statement] = STATE(507),
    [sym_return_statement] = STATE(507),
    [sym_goto_statement] = STATE(507),
    [sym_with_statement] = STATE(507),
    [sym_synchronized_statement] = STATE(507),
    [sym_try_statement] = STATE(507),
    [sym_scope_guard_statement] = STATE(507),
    [sym_asm_statement] = STATE(507),
    [sym_struct_declaration] = STATE(507),
    [sym_union_declaration] = STATE(507),
    [sym_postblit] = STATE(507),
    [sym_invariant_declaration] = STATE(507),
    [sym_class_declaration] = STATE(507),
    [sym_constructor] = STATE(507),
    [sym_destructor] = STATE(507),
    [sym_alias_this] = STATE(507),
    [sym_interface_declaration] = STATE(507),
    [sym_enum_declaration] = STATE(507),
    [sym_anonymous_enum_declaration] = STATE(507),
    [sym_function_declaration] = STATE(507),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(507),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(507),
    [sym_template_mixin] = STATE(507),
    [sym_conditional_declaration] = STATE(507),
    [sym_conditional_statement] = STATE(507),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(507),
    [sym_static_foreach_declaration] = STATE(507),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(507),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(507),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(1835),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(386),
    [anon_sym_RBRACE] = ACTIONS(389),
    [anon_sym_LBRACE] = ACTIONS(1838),
    [anon_sym_DOT] = ACTIONS(394),
    [anon_sym_AMP] = ACTIONS(397),
    [anon_sym_DASH] = ACTIONS(400),
    [anon_sym_DASH_DASH] = ACTIONS(397),
    [anon_sym_PLUS] = ACTIONS(400),
    [anon_sym_PLUS_PLUS] = ACTIONS(397),
    [anon_sym_BANG] = ACTIONS(397),
    [anon_sym_LPAREN] = ACTIONS(403),
    [anon_sym_RPAREN] = ACTIONS(389),
    [anon_sym_LBRACK] = ACTIONS(406),
    [anon_sym_SEMI] = ACTIONS(2040),
    [anon_sym_DOLLAR] = ACTIONS(412),
    [anon_sym_STAR] = ACTIONS(397),
    [anon_sym_TILDE] = ACTIONS(1844),
    [anon_sym_AT] = ACTIONS(418),
    [sym_bool] = ACTIONS(421),
    [sym_byte] = ACTIONS(421),
    [sym_ubyte] = ACTIONS(421),
    [sym_char] = ACTIONS(421),
    [sym_short] = ACTIONS(421),
    [sym_ushort] = ACTIONS(421),
    [sym_int] = ACTIONS(421),
    [sym_uint] = ACTIONS(421),
    [sym_long] = ACTIONS(421),
    [sym_ulong] = ACTIONS(421),
    [sym_cent] = ACTIONS(421),
    [sym_ucent] = ACTIONS(421),
    [sym_wchar] = ACTIONS(421),
    [sym_dchar] = ACTIONS(421),
    [sym_float] = ACTIONS(421),
    [sym_double] = ACTIONS(421),
    [sym_real] = ACTIONS(421),
    [sym_ifloat] = ACTIONS(421),
    [sym_idouble] = ACTIONS(421),
    [sym_ireal] = ACTIONS(421),
    [sym_cfloat] = ACTIONS(421),
    [sym_cdouble] = ACTIONS(421),
    [sym_creal] = ACTIONS(421),
    [sym_size_t] = ACTIONS(421),
    [sym_ptrdiff_t] = ACTIONS(421),
    [sym_string] = ACTIONS(421),
    [sym_cstring] = ACTIONS(421),
    [sym_dstring] = ACTIONS(421),
    [sym_wstring] = ACTIONS(421),
    [sym_noreturn] = ACTIONS(421),
    [sym_true] = ACTIONS(424),
    [sym_false] = ACTIONS(424),
    [sym_null] = ACTIONS(424),
    [sym_super] = ACTIONS(424),
    [sym_this] = ACTIONS(1847),
    [sym_abstract] = ACTIONS(430),
    [sym_alias] = ACTIONS(1850),
    [sym_align] = ACTIONS(436),
    [sym_asm] = ACTIONS(1853),
    [sym_assert] = ACTIONS(442),
    [sym_auto] = ACTIONS(445),
    [sym_break] = ACTIONS(1856),
    [sym_case] = ACTIONS(451),
    [sym_cast] = ACTIONS(453),
    [sym_class] = ACTIONS(1859),
    [sym_const] = ACTIONS(459),
    [sym_continue] = ACTIONS(1862),
    [sym_debug] = ACTIONS(1865),
    [sym_default] = ACTIONS(451),
    [sym_delegate] = ACTIONS(468),
    [sym_delete] = ACTIONS(471),
    [sym_deprecated] = ACTIONS(474),
    [sym_do] = ACTIONS(1868),
    [sym_enum] = ACTIONS(1871),
    [sym_export] = ACTIONS(1874),
    [sym_extern] = ACTIONS(486),
    [sym_final] = ACTIONS(2043),
    [sym_for] = ACTIONS(2046),
    [sym_foreach] = ACTIONS(2049),
    [sym_foreach_reverse] = ACTIONS(2049),
    [sym_function] = ACTIONS(498),
    [sym_goto] = ACTIONS(1886),
    [sym_if] = ACTIONS(2052),
    [sym_immutable] = ACTIONS(459),
    [sym_import] = ACTIONS(1892),
    [sym_in] = ACTIONS(510),
    [sym_inout] = ACTIONS(459),
    [sym_interface] = ACTIONS(1895),
    [sym_invariant] = ACTIONS(1898),
    [sym_is] = ACTIONS(519),
    [sym_mixin] = ACTIONS(1901),
    [sym_new] = ACTIONS(525),
    [sym_nothrow] = ACTIONS(430),
    [sym_out] = ACTIONS(528),
    [sym_override] = ACTIONS(430),
    [sym_package] = ACTIONS(531),
    [sym_pragma] = ACTIONS(534),
    [sym_private] = ACTIONS(1874),
    [sym_protected] = ACTIONS(1874),
    [sym_public] = ACTIONS(1874),
    [sym_pure] = ACTIONS(430),
    [sym_ref] = ACTIONS(537),
    [sym_return] = ACTIONS(1904),
    [sym_scope] = ACTIONS(2055),
    [sym_shared] = ACTIONS(1910),
    [sym_static] = ACTIONS(2058),
    [sym_struct] = ACTIONS(1916),
    [sym_switch] = ACTIONS(2061),
    [sym_synchronized] = ACTIONS(2064),
    [sym_template] = ACTIONS(1925),
    [sym_throw] = ACTIONS(564),
    [sym_try] = ACTIONS(2067),
    [sym_typeid] = ACTIONS(570),
    [sym_typeof] = ACTIONS(573),
    [sym_union] = ACTIONS(1931),
    [sym_unittest] = ACTIONS(1934),
    [sym_version] = ACTIONS(1937),
    [sym_while] = ACTIONS(2070),
    [sym_with] = ACTIONS(2073),
    [sym_gshared] = ACTIONS(430),
    [sym_traits] = ACTIONS(591),
    [sym_vector] = ACTIONS(594),
    [sym_void] = ACTIONS(597),
    [anon_sym_BQUOTE] = ACTIONS(600),
    [anon_sym_r_DQUOTE] = ACTIONS(603),
    [anon_sym_x_DQUOTE] = ACTIONS(606),
    [anon_sym_DQUOTE] = ACTIONS(609),
    [anon_sym_i_BQUOTE] = ACTIONS(612),
    [anon_sym_i_DQUOTE] = ACTIONS(615),
    [anon_sym_iq_LBRACE] = ACTIONS(618),
    [aux_sym_char_literal_token1] = ACTIONS(621),
    [anon_sym_SQUOTE] = ACTIONS(624),
    [anon_sym___DATE__] = ACTIONS(627),
    [anon_sym___FILE__] = ACTIONS(627),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(627),
    [anon_sym___FUNCTION__] = ACTIONS(627),
    [anon_sym___LINE__] = ACTIONS(627),
    [anon_sym___MODULE__] = ACTIONS(627),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(627),
    [anon_sym___TIME__] = ACTIONS(627),
    [anon_sym___TIMESTAMP__] = ACTIONS(627),
    [anon_sym___VENDOR__] = ACTIONS(627),
    [anon_sym___VERSION__] = ACTIONS(627),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(630),
    [sym_float_literal] = ACTIONS(630),
    [sym__string] = ACTIONS(633),
  },
  [508] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(1644),
    [sym_mixin_declaration] = STATE(1644),
    [sym__declaration] = STATE(1644),
    [sym__declaration2] = STATE(1644),
    [sym_variable_declaration] = STATE(1644),
    [sym_manifest_constant] = STATE(1644),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1644),
    [sym_alias_declaration] = STATE(1644),
    [sym_alias_reassign] = STATE(1644),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(1644),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1644),
    [sym_pragma_statement] = STATE(1687),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(1687),
    [sym__statement_no_case_no_default] = STATE(1687),
    [sym_labeled_statement] = STATE(1687),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(1687),
    [sym_if_statement] = STATE(1687),
    [sym_while_statement] = STATE(1687),
    [sym_do_statement] = STATE(1687),
    [sym_for_statement] = STATE(1687),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(1687),
    [sym_switch_statement] = STATE(1687),
    [sym_case_statement] = STATE(1687),
    [sym_final_switch_statement] = STATE(1687),
    [sym_continue_statement] = STATE(1687),
    [sym_break_statement] = STATE(1687),
    [sym_return_statement] = STATE(1687),
    [sym_goto_statement] = STATE(1687),
    [sym_with_statement] = STATE(1687),
    [sym_synchronized_statement] = STATE(1687),
    [sym_try_statement] = STATE(1687),
    [sym_scope_guard_statement] = STATE(1687),
    [sym_asm_statement] = STATE(1687),
    [sym_struct_declaration] = STATE(1644),
    [sym_union_declaration] = STATE(1644),
    [sym_postblit] = STATE(1644),
    [sym_invariant_declaration] = STATE(1644),
    [sym_class_declaration] = STATE(1644),
    [sym_constructor] = STATE(1644),
    [sym_destructor] = STATE(1644),
    [sym_alias_this] = STATE(1644),
    [sym_interface_declaration] = STATE(1644),
    [sym_enum_declaration] = STATE(1644),
    [sym_anonymous_enum_declaration] = STATE(1644),
    [sym_function_declaration] = STATE(1644),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(1644),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(1644),
    [sym_template_mixin] = STATE(1644),
    [sym_conditional_declaration] = STATE(1644),
    [sym_conditional_statement] = STATE(1687),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(1687),
    [sym_static_foreach_declaration] = STATE(1644),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(1644),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2022),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2024),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [509] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2369),
    [sym_mixin_declaration] = STATE(2369),
    [sym__declaration] = STATE(2369),
    [sym__declaration2] = STATE(2369),
    [sym_variable_declaration] = STATE(2369),
    [sym_manifest_constant] = STATE(2369),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2369),
    [sym_alias_declaration] = STATE(2369),
    [sym_alias_reassign] = STATE(2369),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2369),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2369),
    [sym_pragma_statement] = STATE(2191),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2191),
    [sym__statement_no_case_no_default] = STATE(2191),
    [sym_labeled_statement] = STATE(2191),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2191),
    [sym_if_statement] = STATE(2191),
    [sym_while_statement] = STATE(2191),
    [sym_do_statement] = STATE(2191),
    [sym_for_statement] = STATE(2191),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(2191),
    [sym_switch_statement] = STATE(2191),
    [sym_case_statement] = STATE(2191),
    [sym_final_switch_statement] = STATE(2191),
    [sym_continue_statement] = STATE(2191),
    [sym_break_statement] = STATE(2191),
    [sym_return_statement] = STATE(2191),
    [sym_goto_statement] = STATE(2191),
    [sym_with_statement] = STATE(2191),
    [sym_synchronized_statement] = STATE(2191),
    [sym_try_statement] = STATE(2191),
    [sym_scope_guard_statement] = STATE(2191),
    [sym_asm_statement] = STATE(2191),
    [sym_struct_declaration] = STATE(2369),
    [sym_union_declaration] = STATE(2369),
    [sym_postblit] = STATE(2369),
    [sym_invariant_declaration] = STATE(2369),
    [sym_class_declaration] = STATE(2369),
    [sym_constructor] = STATE(2369),
    [sym_destructor] = STATE(2369),
    [sym_alias_this] = STATE(2369),
    [sym_interface_declaration] = STATE(2369),
    [sym_enum_declaration] = STATE(2369),
    [sym_anonymous_enum_declaration] = STATE(2369),
    [sym_function_declaration] = STATE(2369),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2369),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2369),
    [sym_template_mixin] = STATE(2369),
    [sym_conditional_declaration] = STATE(2369),
    [sym_conditional_statement] = STATE(2191),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2191),
    [sym_static_foreach_declaration] = STATE(2369),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2369),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2014),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2016),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(119),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(129),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [510] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(507),
    [sym_mixin_declaration] = STATE(507),
    [sym__declaration] = STATE(507),
    [sym__declaration2] = STATE(507),
    [sym_variable_declaration] = STATE(507),
    [sym_manifest_constant] = STATE(507),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(507),
    [sym_alias_declaration] = STATE(507),
    [sym_alias_reassign] = STATE(507),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(507),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(507),
    [sym_pragma_statement] = STATE(507),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(507),
    [sym_labeled_statement] = STATE(507),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(507),
    [sym_if_statement] = STATE(507),
    [sym_while_statement] = STATE(507),
    [sym_do_statement] = STATE(507),
    [sym_for_statement] = STATE(507),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(507),
    [sym_switch_statement] = STATE(507),
    [sym_final_switch_statement] = STATE(507),
    [sym_continue_statement] = STATE(507),
    [sym_break_statement] = STATE(507),
    [sym_return_statement] = STATE(507),
    [sym_goto_statement] = STATE(507),
    [sym_with_statement] = STATE(507),
    [sym_synchronized_statement] = STATE(507),
    [sym_try_statement] = STATE(507),
    [sym_scope_guard_statement] = STATE(507),
    [sym_asm_statement] = STATE(507),
    [sym_struct_declaration] = STATE(507),
    [sym_union_declaration] = STATE(507),
    [sym_postblit] = STATE(507),
    [sym_invariant_declaration] = STATE(507),
    [sym_class_declaration] = STATE(507),
    [sym_constructor] = STATE(507),
    [sym_destructor] = STATE(507),
    [sym_alias_this] = STATE(507),
    [sym_interface_declaration] = STATE(507),
    [sym_enum_declaration] = STATE(507),
    [sym_anonymous_enum_declaration] = STATE(507),
    [sym_function_declaration] = STATE(507),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(507),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(507),
    [sym_template_mixin] = STATE(507),
    [sym_conditional_declaration] = STATE(507),
    [sym_conditional_statement] = STATE(507),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(507),
    [sym_static_foreach_declaration] = STATE(507),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(507),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(507),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(636),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(636),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2012),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(638),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(638),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [511] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(2369),
    [sym_mixin_declaration] = STATE(2369),
    [sym__declaration] = STATE(2369),
    [sym__declaration2] = STATE(2369),
    [sym_variable_declaration] = STATE(2369),
    [sym_manifest_constant] = STATE(2369),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2369),
    [sym_alias_declaration] = STATE(2369),
    [sym_alias_reassign] = STATE(2369),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(2369),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2369),
    [sym_pragma_statement] = STATE(2191),
    [sym_pragma_expression] = STATE(511),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement] = STATE(2191),
    [sym__statement_no_case_no_default] = STATE(2191),
    [sym_labeled_statement] = STATE(2191),
    [sym_label] = STATE(347),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(2191),
    [sym_if_statement] = STATE(2191),
    [sym_while_statement] = STATE(2191),
    [sym_do_statement] = STATE(2191),
    [sym_for_statement] = STATE(2191),
    [sym__foreach] = STATE(8053),
    [sym_foreach_statement] = STATE(2191),
    [sym_switch_statement] = STATE(2191),
    [sym_case_statement] = STATE(2191),
    [sym_final_switch_statement] = STATE(2191),
    [sym_continue_statement] = STATE(2191),
    [sym_break_statement] = STATE(2191),
    [sym_return_statement] = STATE(2191),
    [sym_goto_statement] = STATE(2191),
    [sym_with_statement] = STATE(2191),
    [sym_synchronized_statement] = STATE(2191),
    [sym_try_statement] = STATE(2191),
    [sym_scope_guard_statement] = STATE(2191),
    [sym_asm_statement] = STATE(2191),
    [sym_struct_declaration] = STATE(2369),
    [sym_union_declaration] = STATE(2369),
    [sym_postblit] = STATE(2369),
    [sym_invariant_declaration] = STATE(2369),
    [sym_class_declaration] = STATE(2369),
    [sym_constructor] = STATE(2369),
    [sym_destructor] = STATE(2369),
    [sym_alias_this] = STATE(2369),
    [sym_interface_declaration] = STATE(2369),
    [sym_enum_declaration] = STATE(2369),
    [sym_anonymous_enum_declaration] = STATE(2369),
    [sym_function_declaration] = STATE(2369),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(2369),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(2369),
    [sym_template_mixin] = STATE(2369),
    [sym_conditional_declaration] = STATE(2369),
    [sym_conditional_statement] = STATE(2191),
    [sym_condition] = STATE(128),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(2191),
    [sym_static_foreach_declaration] = STATE(2369),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(2369),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(2014),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2016),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_case] = ACTIONS(938),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_default] = ACTIONS(940),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1344),
    [sym_for] = ACTIONS(946),
    [sym_foreach] = ACTIONS(948),
    [sym_foreach_reverse] = ACTIONS(948),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(950),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1346),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1348),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(1350),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(966),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(968),
    [sym_with] = ACTIONS(970),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [512] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(507),
    [sym_mixin_declaration] = STATE(507),
    [sym__declaration] = STATE(507),
    [sym__declaration2] = STATE(507),
    [sym_variable_declaration] = STATE(507),
    [sym_manifest_constant] = STATE(507),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(507),
    [sym_alias_declaration] = STATE(507),
    [sym_alias_reassign] = STATE(507),
    [sym_type] = STATE(5480),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(507),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(507),
    [sym_pragma_statement] = STATE(507),
    [sym_pragma_expression] = STATE(508),
    [sym_expression_list] = STATE(7764),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3697),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(507),
    [sym_labeled_statement] = STATE(507),
    [sym_label] = STATE(192),
    [sym_block_statement] = STATE(682),
    [sym_expression_statement] = STATE(507),
    [sym_if_statement] = STATE(507),
    [sym_while_statement] = STATE(507),
    [sym_do_statement] = STATE(507),
    [sym_for_statement] = STATE(507),
    [sym__foreach] = STATE(7800),
    [sym_foreach_statement] = STATE(507),
    [sym_switch_statement] = STATE(507),
    [sym_final_switch_statement] = STATE(507),
    [sym_continue_statement] = STATE(507),
    [sym_break_statement] = STATE(507),
    [sym_return_statement] = STATE(507),
    [sym_goto_statement] = STATE(507),
    [sym_with_statement] = STATE(507),
    [sym_synchronized_statement] = STATE(507),
    [sym_try_statement] = STATE(507),
    [sym_scope_guard_statement] = STATE(507),
    [sym_asm_statement] = STATE(507),
    [sym_struct_declaration] = STATE(507),
    [sym_union_declaration] = STATE(507),
    [sym_postblit] = STATE(507),
    [sym_invariant_declaration] = STATE(507),
    [sym_class_declaration] = STATE(507),
    [sym_constructor] = STATE(507),
    [sym_destructor] = STATE(507),
    [sym_alias_this] = STATE(507),
    [sym_interface_declaration] = STATE(507),
    [sym_enum_declaration] = STATE(507),
    [sym_anonymous_enum_declaration] = STATE(507),
    [sym_function_declaration] = STATE(507),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(507),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(507),
    [sym_template_mixin] = STATE(507),
    [sym_conditional_declaration] = STATE(507),
    [sym_conditional_statement] = STATE(507),
    [sym_condition] = STATE(49),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(1663),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(1663),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(507),
    [sym_static_foreach_declaration] = STATE(507),
    [sym_static_assert] = STATE(1663),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(507),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_case_statement_repeat1] = STATE(507),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(251),
    [anon_sym_LBRACE] = ACTIONS(243),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(251),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2012),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(101),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(107),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(111),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(117),
    [sym_case] = ACTIONS(267),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(125),
    [sym_debug] = ACTIONS(127),
    [sym_default] = ACTIONS(267),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(135),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(141),
    [sym_for] = ACTIONS(143),
    [sym_foreach] = ACTIONS(145),
    [sym_foreach_reverse] = ACTIONS(145),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(149),
    [sym_if] = ACTIONS(151),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(153),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(163),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(173),
    [sym_scope] = ACTIONS(175),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(179),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(185),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(191),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(201),
    [sym_while] = ACTIONS(203),
    [sym_with] = ACTIONS(205),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [513] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(726),
    [sym_mixin_declaration] = STATE(726),
    [sym__declaration2] = STATE(726),
    [sym_variable_declaration] = STATE(726),
    [sym_manifest_constant] = STATE(726),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(726),
    [sym_alias_declaration] = STATE(726),
    [sym_alias_reassign] = STATE(726),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(726),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(726),
    [sym_pragma_statement] = STATE(726),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(726),
    [sym_labeled_statement] = STATE(726),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(726),
    [sym_if_statement] = STATE(726),
    [sym_while_statement] = STATE(726),
    [sym_do_statement] = STATE(726),
    [sym_for_statement] = STATE(726),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(726),
    [sym_switch_statement] = STATE(726),
    [sym_final_switch_statement] = STATE(726),
    [sym_continue_statement] = STATE(726),
    [sym_break_statement] = STATE(726),
    [sym_return_statement] = STATE(726),
    [sym_goto_statement] = STATE(726),
    [sym_with_statement] = STATE(726),
    [sym_synchronized_statement] = STATE(726),
    [sym_try_statement] = STATE(726),
    [sym_scope_guard_statement] = STATE(726),
    [sym_asm_statement] = STATE(726),
    [sym_struct_declaration] = STATE(726),
    [sym_union_declaration] = STATE(726),
    [sym_postblit] = STATE(726),
    [sym_invariant_declaration] = STATE(726),
    [sym_class_declaration] = STATE(726),
    [sym_constructor] = STATE(726),
    [sym_destructor] = STATE(726),
    [sym_alias_this] = STATE(726),
    [sym_interface_declaration] = STATE(726),
    [sym_enum_declaration] = STATE(726),
    [sym_anonymous_enum_declaration] = STATE(726),
    [sym_function_declaration] = STATE(726),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(726),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(726),
    [sym_template_mixin] = STATE(726),
    [sym_conditional_declaration] = STATE(726),
    [sym_conditional_statement] = STATE(726),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(726),
    [sym_static_foreach_declaration] = STATE(726),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(726),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2076),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [514] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(734),
    [sym_mixin_declaration] = STATE(734),
    [sym__declaration2] = STATE(734),
    [sym_variable_declaration] = STATE(734),
    [sym_manifest_constant] = STATE(734),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(734),
    [sym_alias_declaration] = STATE(734),
    [sym_alias_reassign] = STATE(734),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(734),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(734),
    [sym_pragma_statement] = STATE(734),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(734),
    [sym_labeled_statement] = STATE(734),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(734),
    [sym_if_statement] = STATE(734),
    [sym_while_statement] = STATE(734),
    [sym_do_statement] = STATE(734),
    [sym_for_statement] = STATE(734),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(734),
    [sym_switch_statement] = STATE(734),
    [sym_final_switch_statement] = STATE(734),
    [sym_continue_statement] = STATE(734),
    [sym_break_statement] = STATE(734),
    [sym_return_statement] = STATE(734),
    [sym_goto_statement] = STATE(734),
    [sym_with_statement] = STATE(734),
    [sym_synchronized_statement] = STATE(734),
    [sym_try_statement] = STATE(734),
    [sym_scope_guard_statement] = STATE(734),
    [sym_asm_statement] = STATE(734),
    [sym_struct_declaration] = STATE(734),
    [sym_union_declaration] = STATE(734),
    [sym_postblit] = STATE(734),
    [sym_invariant_declaration] = STATE(734),
    [sym_class_declaration] = STATE(734),
    [sym_constructor] = STATE(734),
    [sym_destructor] = STATE(734),
    [sym_alias_this] = STATE(734),
    [sym_interface_declaration] = STATE(734),
    [sym_enum_declaration] = STATE(734),
    [sym_anonymous_enum_declaration] = STATE(734),
    [sym_function_declaration] = STATE(734),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(734),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(734),
    [sym_template_mixin] = STATE(734),
    [sym_conditional_declaration] = STATE(734),
    [sym_conditional_statement] = STATE(734),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(734),
    [sym_static_foreach_declaration] = STATE(734),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(734),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2080),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [515] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(765),
    [sym_mixin_declaration] = STATE(765),
    [sym__declaration2] = STATE(765),
    [sym_variable_declaration] = STATE(765),
    [sym_manifest_constant] = STATE(765),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(765),
    [sym_alias_declaration] = STATE(765),
    [sym_alias_reassign] = STATE(765),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(765),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(765),
    [sym_pragma_statement] = STATE(765),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(765),
    [sym_labeled_statement] = STATE(765),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(765),
    [sym_if_statement] = STATE(765),
    [sym_while_statement] = STATE(765),
    [sym_do_statement] = STATE(765),
    [sym_for_statement] = STATE(765),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(765),
    [sym_switch_statement] = STATE(765),
    [sym_final_switch_statement] = STATE(765),
    [sym_continue_statement] = STATE(765),
    [sym_break_statement] = STATE(765),
    [sym_return_statement] = STATE(765),
    [sym_goto_statement] = STATE(765),
    [sym_with_statement] = STATE(765),
    [sym_synchronized_statement] = STATE(765),
    [sym_try_statement] = STATE(765),
    [sym_scope_guard_statement] = STATE(765),
    [sym_asm_statement] = STATE(765),
    [sym_struct_declaration] = STATE(765),
    [sym_union_declaration] = STATE(765),
    [sym_postblit] = STATE(765),
    [sym_invariant_declaration] = STATE(765),
    [sym_class_declaration] = STATE(765),
    [sym_constructor] = STATE(765),
    [sym_destructor] = STATE(765),
    [sym_alias_this] = STATE(765),
    [sym_interface_declaration] = STATE(765),
    [sym_enum_declaration] = STATE(765),
    [sym_anonymous_enum_declaration] = STATE(765),
    [sym_function_declaration] = STATE(765),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(765),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(765),
    [sym_template_mixin] = STATE(765),
    [sym_conditional_declaration] = STATE(765),
    [sym_conditional_statement] = STATE(765),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(765),
    [sym_static_foreach_declaration] = STATE(765),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(765),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2082),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [516] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(749),
    [sym_mixin_declaration] = STATE(749),
    [sym__declaration2] = STATE(749),
    [sym_variable_declaration] = STATE(749),
    [sym_manifest_constant] = STATE(749),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(749),
    [sym_alias_declaration] = STATE(749),
    [sym_alias_reassign] = STATE(749),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(749),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(749),
    [sym_pragma_statement] = STATE(749),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(749),
    [sym_labeled_statement] = STATE(749),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(749),
    [sym_if_statement] = STATE(749),
    [sym_while_statement] = STATE(749),
    [sym_do_statement] = STATE(749),
    [sym_for_statement] = STATE(749),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(749),
    [sym_switch_statement] = STATE(749),
    [sym_final_switch_statement] = STATE(749),
    [sym_continue_statement] = STATE(749),
    [sym_break_statement] = STATE(749),
    [sym_return_statement] = STATE(749),
    [sym_goto_statement] = STATE(749),
    [sym_with_statement] = STATE(749),
    [sym_synchronized_statement] = STATE(749),
    [sym_try_statement] = STATE(749),
    [sym_scope_guard_statement] = STATE(749),
    [sym_asm_statement] = STATE(749),
    [sym_struct_declaration] = STATE(749),
    [sym_union_declaration] = STATE(749),
    [sym_postblit] = STATE(749),
    [sym_invariant_declaration] = STATE(749),
    [sym_class_declaration] = STATE(749),
    [sym_constructor] = STATE(749),
    [sym_destructor] = STATE(749),
    [sym_alias_this] = STATE(749),
    [sym_interface_declaration] = STATE(749),
    [sym_enum_declaration] = STATE(749),
    [sym_anonymous_enum_declaration] = STATE(749),
    [sym_function_declaration] = STATE(749),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(749),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(749),
    [sym_template_mixin] = STATE(749),
    [sym_conditional_declaration] = STATE(749),
    [sym_conditional_statement] = STATE(749),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(749),
    [sym_static_foreach_declaration] = STATE(749),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(749),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2084),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [517] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(750),
    [sym_mixin_declaration] = STATE(750),
    [sym__declaration2] = STATE(750),
    [sym_variable_declaration] = STATE(750),
    [sym_manifest_constant] = STATE(750),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(750),
    [sym_alias_declaration] = STATE(750),
    [sym_alias_reassign] = STATE(750),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(750),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(750),
    [sym_pragma_statement] = STATE(750),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(750),
    [sym_labeled_statement] = STATE(750),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(750),
    [sym_if_statement] = STATE(750),
    [sym_while_statement] = STATE(750),
    [sym_do_statement] = STATE(750),
    [sym_for_statement] = STATE(750),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(750),
    [sym_switch_statement] = STATE(750),
    [sym_final_switch_statement] = STATE(750),
    [sym_continue_statement] = STATE(750),
    [sym_break_statement] = STATE(750),
    [sym_return_statement] = STATE(750),
    [sym_goto_statement] = STATE(750),
    [sym_with_statement] = STATE(750),
    [sym_synchronized_statement] = STATE(750),
    [sym_try_statement] = STATE(750),
    [sym_scope_guard_statement] = STATE(750),
    [sym_asm_statement] = STATE(750),
    [sym_struct_declaration] = STATE(750),
    [sym_union_declaration] = STATE(750),
    [sym_postblit] = STATE(750),
    [sym_invariant_declaration] = STATE(750),
    [sym_class_declaration] = STATE(750),
    [sym_constructor] = STATE(750),
    [sym_destructor] = STATE(750),
    [sym_alias_this] = STATE(750),
    [sym_interface_declaration] = STATE(750),
    [sym_enum_declaration] = STATE(750),
    [sym_anonymous_enum_declaration] = STATE(750),
    [sym_function_declaration] = STATE(750),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(750),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(750),
    [sym_template_mixin] = STATE(750),
    [sym_conditional_declaration] = STATE(750),
    [sym_conditional_statement] = STATE(750),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(750),
    [sym_static_foreach_declaration] = STATE(750),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(750),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2086),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [518] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(745),
    [sym_mixin_declaration] = STATE(745),
    [sym__declaration2] = STATE(745),
    [sym_variable_declaration] = STATE(745),
    [sym_manifest_constant] = STATE(745),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(745),
    [sym_alias_declaration] = STATE(745),
    [sym_alias_reassign] = STATE(745),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(745),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(745),
    [sym_pragma_statement] = STATE(745),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(745),
    [sym_labeled_statement] = STATE(745),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(745),
    [sym_if_statement] = STATE(745),
    [sym_while_statement] = STATE(745),
    [sym_do_statement] = STATE(745),
    [sym_for_statement] = STATE(745),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(745),
    [sym_switch_statement] = STATE(745),
    [sym_final_switch_statement] = STATE(745),
    [sym_continue_statement] = STATE(745),
    [sym_break_statement] = STATE(745),
    [sym_return_statement] = STATE(745),
    [sym_goto_statement] = STATE(745),
    [sym_with_statement] = STATE(745),
    [sym_synchronized_statement] = STATE(745),
    [sym_try_statement] = STATE(745),
    [sym_scope_guard_statement] = STATE(745),
    [sym_asm_statement] = STATE(745),
    [sym_struct_declaration] = STATE(745),
    [sym_union_declaration] = STATE(745),
    [sym_postblit] = STATE(745),
    [sym_invariant_declaration] = STATE(745),
    [sym_class_declaration] = STATE(745),
    [sym_constructor] = STATE(745),
    [sym_destructor] = STATE(745),
    [sym_alias_this] = STATE(745),
    [sym_interface_declaration] = STATE(745),
    [sym_enum_declaration] = STATE(745),
    [sym_anonymous_enum_declaration] = STATE(745),
    [sym_function_declaration] = STATE(745),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(745),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(745),
    [sym_template_mixin] = STATE(745),
    [sym_conditional_declaration] = STATE(745),
    [sym_conditional_statement] = STATE(745),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(745),
    [sym_static_foreach_declaration] = STATE(745),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(745),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2088),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [519] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(719),
    [sym_mixin_declaration] = STATE(719),
    [sym__declaration2] = STATE(719),
    [sym_variable_declaration] = STATE(719),
    [sym_manifest_constant] = STATE(719),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(719),
    [sym_alias_declaration] = STATE(719),
    [sym_alias_reassign] = STATE(719),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(719),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(719),
    [sym_pragma_statement] = STATE(719),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(719),
    [sym_labeled_statement] = STATE(719),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(719),
    [sym_if_statement] = STATE(719),
    [sym_while_statement] = STATE(719),
    [sym_do_statement] = STATE(719),
    [sym_for_statement] = STATE(719),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(719),
    [sym_switch_statement] = STATE(719),
    [sym_final_switch_statement] = STATE(719),
    [sym_continue_statement] = STATE(719),
    [sym_break_statement] = STATE(719),
    [sym_return_statement] = STATE(719),
    [sym_goto_statement] = STATE(719),
    [sym_with_statement] = STATE(719),
    [sym_synchronized_statement] = STATE(719),
    [sym_try_statement] = STATE(719),
    [sym_scope_guard_statement] = STATE(719),
    [sym_asm_statement] = STATE(719),
    [sym_struct_declaration] = STATE(719),
    [sym_union_declaration] = STATE(719),
    [sym_postblit] = STATE(719),
    [sym_invariant_declaration] = STATE(719),
    [sym_class_declaration] = STATE(719),
    [sym_constructor] = STATE(719),
    [sym_destructor] = STATE(719),
    [sym_alias_this] = STATE(719),
    [sym_interface_declaration] = STATE(719),
    [sym_enum_declaration] = STATE(719),
    [sym_anonymous_enum_declaration] = STATE(719),
    [sym_function_declaration] = STATE(719),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(719),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(719),
    [sym_template_mixin] = STATE(719),
    [sym_conditional_declaration] = STATE(719),
    [sym_conditional_statement] = STATE(719),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(719),
    [sym_static_foreach_declaration] = STATE(719),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(719),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2090),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [520] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(751),
    [sym_mixin_declaration] = STATE(751),
    [sym__declaration2] = STATE(751),
    [sym_variable_declaration] = STATE(751),
    [sym_manifest_constant] = STATE(751),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(751),
    [sym_alias_declaration] = STATE(751),
    [sym_alias_reassign] = STATE(751),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(751),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(751),
    [sym_pragma_statement] = STATE(751),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(751),
    [sym_labeled_statement] = STATE(751),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(751),
    [sym_if_statement] = STATE(751),
    [sym_while_statement] = STATE(751),
    [sym_do_statement] = STATE(751),
    [sym_for_statement] = STATE(751),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(751),
    [sym_switch_statement] = STATE(751),
    [sym_final_switch_statement] = STATE(751),
    [sym_continue_statement] = STATE(751),
    [sym_break_statement] = STATE(751),
    [sym_return_statement] = STATE(751),
    [sym_goto_statement] = STATE(751),
    [sym_with_statement] = STATE(751),
    [sym_synchronized_statement] = STATE(751),
    [sym_try_statement] = STATE(751),
    [sym_scope_guard_statement] = STATE(751),
    [sym_asm_statement] = STATE(751),
    [sym_struct_declaration] = STATE(751),
    [sym_union_declaration] = STATE(751),
    [sym_postblit] = STATE(751),
    [sym_invariant_declaration] = STATE(751),
    [sym_class_declaration] = STATE(751),
    [sym_constructor] = STATE(751),
    [sym_destructor] = STATE(751),
    [sym_alias_this] = STATE(751),
    [sym_interface_declaration] = STATE(751),
    [sym_enum_declaration] = STATE(751),
    [sym_anonymous_enum_declaration] = STATE(751),
    [sym_function_declaration] = STATE(751),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(751),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(751),
    [sym_template_mixin] = STATE(751),
    [sym_conditional_declaration] = STATE(751),
    [sym_conditional_statement] = STATE(751),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(751),
    [sym_static_foreach_declaration] = STATE(751),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(751),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2092),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [521] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(773),
    [sym_mixin_declaration] = STATE(773),
    [sym__declaration2] = STATE(773),
    [sym_variable_declaration] = STATE(773),
    [sym_manifest_constant] = STATE(773),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(773),
    [sym_alias_declaration] = STATE(773),
    [sym_alias_reassign] = STATE(773),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(773),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(773),
    [sym_pragma_statement] = STATE(773),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(773),
    [sym_labeled_statement] = STATE(773),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(773),
    [sym_if_statement] = STATE(773),
    [sym_while_statement] = STATE(773),
    [sym_do_statement] = STATE(773),
    [sym_for_statement] = STATE(773),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(773),
    [sym_switch_statement] = STATE(773),
    [sym_final_switch_statement] = STATE(773),
    [sym_continue_statement] = STATE(773),
    [sym_break_statement] = STATE(773),
    [sym_return_statement] = STATE(773),
    [sym_goto_statement] = STATE(773),
    [sym_with_statement] = STATE(773),
    [sym_synchronized_statement] = STATE(773),
    [sym_try_statement] = STATE(773),
    [sym_scope_guard_statement] = STATE(773),
    [sym_asm_statement] = STATE(773),
    [sym_struct_declaration] = STATE(773),
    [sym_union_declaration] = STATE(773),
    [sym_postblit] = STATE(773),
    [sym_invariant_declaration] = STATE(773),
    [sym_class_declaration] = STATE(773),
    [sym_constructor] = STATE(773),
    [sym_destructor] = STATE(773),
    [sym_alias_this] = STATE(773),
    [sym_interface_declaration] = STATE(773),
    [sym_enum_declaration] = STATE(773),
    [sym_anonymous_enum_declaration] = STATE(773),
    [sym_function_declaration] = STATE(773),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(773),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(773),
    [sym_template_mixin] = STATE(773),
    [sym_conditional_declaration] = STATE(773),
    [sym_conditional_statement] = STATE(773),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(773),
    [sym_static_foreach_declaration] = STATE(773),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(773),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2094),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [522] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(748),
    [sym_mixin_declaration] = STATE(748),
    [sym__declaration2] = STATE(748),
    [sym_variable_declaration] = STATE(748),
    [sym_manifest_constant] = STATE(748),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(748),
    [sym_alias_declaration] = STATE(748),
    [sym_alias_reassign] = STATE(748),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(748),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(748),
    [sym_pragma_statement] = STATE(748),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(748),
    [sym_labeled_statement] = STATE(748),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(748),
    [sym_if_statement] = STATE(748),
    [sym_while_statement] = STATE(748),
    [sym_do_statement] = STATE(748),
    [sym_for_statement] = STATE(748),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(748),
    [sym_switch_statement] = STATE(748),
    [sym_final_switch_statement] = STATE(748),
    [sym_continue_statement] = STATE(748),
    [sym_break_statement] = STATE(748),
    [sym_return_statement] = STATE(748),
    [sym_goto_statement] = STATE(748),
    [sym_with_statement] = STATE(748),
    [sym_synchronized_statement] = STATE(748),
    [sym_try_statement] = STATE(748),
    [sym_scope_guard_statement] = STATE(748),
    [sym_asm_statement] = STATE(748),
    [sym_struct_declaration] = STATE(748),
    [sym_union_declaration] = STATE(748),
    [sym_postblit] = STATE(748),
    [sym_invariant_declaration] = STATE(748),
    [sym_class_declaration] = STATE(748),
    [sym_constructor] = STATE(748),
    [sym_destructor] = STATE(748),
    [sym_alias_this] = STATE(748),
    [sym_interface_declaration] = STATE(748),
    [sym_enum_declaration] = STATE(748),
    [sym_anonymous_enum_declaration] = STATE(748),
    [sym_function_declaration] = STATE(748),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(748),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(748),
    [sym_template_mixin] = STATE(748),
    [sym_conditional_declaration] = STATE(748),
    [sym_conditional_statement] = STATE(748),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(748),
    [sym_static_foreach_declaration] = STATE(748),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(748),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2096),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [523] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(738),
    [sym_mixin_declaration] = STATE(738),
    [sym__declaration2] = STATE(738),
    [sym_variable_declaration] = STATE(738),
    [sym_manifest_constant] = STATE(738),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(738),
    [sym_alias_declaration] = STATE(738),
    [sym_alias_reassign] = STATE(738),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(738),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(738),
    [sym_pragma_statement] = STATE(738),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(738),
    [sym_labeled_statement] = STATE(738),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(738),
    [sym_if_statement] = STATE(738),
    [sym_while_statement] = STATE(738),
    [sym_do_statement] = STATE(738),
    [sym_for_statement] = STATE(738),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(738),
    [sym_switch_statement] = STATE(738),
    [sym_final_switch_statement] = STATE(738),
    [sym_continue_statement] = STATE(738),
    [sym_break_statement] = STATE(738),
    [sym_return_statement] = STATE(738),
    [sym_goto_statement] = STATE(738),
    [sym_with_statement] = STATE(738),
    [sym_synchronized_statement] = STATE(738),
    [sym_try_statement] = STATE(738),
    [sym_scope_guard_statement] = STATE(738),
    [sym_asm_statement] = STATE(738),
    [sym_struct_declaration] = STATE(738),
    [sym_union_declaration] = STATE(738),
    [sym_postblit] = STATE(738),
    [sym_invariant_declaration] = STATE(738),
    [sym_class_declaration] = STATE(738),
    [sym_constructor] = STATE(738),
    [sym_destructor] = STATE(738),
    [sym_alias_this] = STATE(738),
    [sym_interface_declaration] = STATE(738),
    [sym_enum_declaration] = STATE(738),
    [sym_anonymous_enum_declaration] = STATE(738),
    [sym_function_declaration] = STATE(738),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(738),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(738),
    [sym_template_mixin] = STATE(738),
    [sym_conditional_declaration] = STATE(738),
    [sym_conditional_statement] = STATE(738),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(738),
    [sym_static_foreach_declaration] = STATE(738),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(738),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2098),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [524] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_import_declaration] = STATE(731),
    [sym_mixin_declaration] = STATE(731),
    [sym__declaration2] = STATE(731),
    [sym_variable_declaration] = STATE(731),
    [sym_manifest_constant] = STATE(731),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(731),
    [sym_alias_declaration] = STATE(731),
    [sym_alias_reassign] = STATE(731),
    [sym_type] = STATE(5464),
    [sym_type_ctor] = STATE(2964),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_attribute_declaration] = STATE(731),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2165),
    [sym__attribute] = STATE(2165),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(731),
    [sym_pragma_statement] = STATE(731),
    [sym_pragma_expression] = STATE(509),
    [sym_expression_list] = STATE(7466),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3836),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym__statement_no_case_no_default] = STATE(731),
    [sym_labeled_statement] = STATE(731),
    [sym_label] = STATE(419),
    [sym_block_statement] = STATE(2100),
    [sym_expression_statement] = STATE(731),
    [sym_if_statement] = STATE(731),
    [sym_while_statement] = STATE(731),
    [sym_do_statement] = STATE(731),
    [sym_for_statement] = STATE(731),
    [sym__foreach] = STATE(8043),
    [sym_foreach_statement] = STATE(731),
    [sym_switch_statement] = STATE(731),
    [sym_final_switch_statement] = STATE(731),
    [sym_continue_statement] = STATE(731),
    [sym_break_statement] = STATE(731),
    [sym_return_statement] = STATE(731),
    [sym_goto_statement] = STATE(731),
    [sym_with_statement] = STATE(731),
    [sym_synchronized_statement] = STATE(731),
    [sym_try_statement] = STATE(731),
    [sym_scope_guard_statement] = STATE(731),
    [sym_asm_statement] = STATE(731),
    [sym_struct_declaration] = STATE(731),
    [sym_union_declaration] = STATE(731),
    [sym_postblit] = STATE(731),
    [sym_invariant_declaration] = STATE(731),
    [sym_class_declaration] = STATE(731),
    [sym_constructor] = STATE(731),
    [sym_destructor] = STATE(731),
    [sym_alias_this] = STATE(731),
    [sym_interface_declaration] = STATE(731),
    [sym_enum_declaration] = STATE(731),
    [sym_anonymous_enum_declaration] = STATE(731),
    [sym_function_declaration] = STATE(731),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_declaration] = STATE(731),
    [sym_template_instance] = STATE(3577),
    [sym_mixin_template_declaration] = STATE(731),
    [sym_template_mixin] = STATE(731),
    [sym_conditional_declaration] = STATE(731),
    [sym_conditional_statement] = STATE(731),
    [sym_condition] = STATE(54),
    [sym_version_condition] = STATE(1772),
    [sym_version_specification] = STATE(2318),
    [sym_debug_condition] = STATE(1772),
    [sym_debug_specification] = STATE(2318),
    [sym_static_if_condition] = STATE(1772),
    [sym_static_foreach_statement] = STATE(731),
    [sym_static_foreach_declaration] = STATE(731),
    [sym_static_assert] = STATE(2318),
    [sym_traits_expression] = STATE(3573),
    [sym_unittest_declaration] = STATE(731),
    [aux_sym_import_declaration_repeat1] = STATE(2165),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(676),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2100),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(688),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(698),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(710),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(115),
    [sym_break] = ACTIONS(716),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(726),
    [sym_debug] = ACTIONS(728),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(736),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(2078),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(1994),
    [sym_for] = ACTIONS(1234),
    [sym_foreach] = ACTIONS(1236),
    [sym_foreach_reverse] = ACTIONS(1236),
    [sym_function] = ACTIONS(147),
    [sym_goto] = ACTIONS(756),
    [sym_if] = ACTIONS(1238),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(760),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(882),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(169),
    [sym_private] = ACTIONS(2078),
    [sym_protected] = ACTIONS(2078),
    [sym_public] = ACTIONS(2078),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(171),
    [sym_return] = ACTIONS(774),
    [sym_scope] = ACTIONS(1996),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(1998),
    [sym_struct] = ACTIONS(788),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(2000),
    [sym_template] = ACTIONS(796),
    [sym_throw] = ACTIONS(189),
    [sym_try] = ACTIONS(1254),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(808),
    [sym_while] = ACTIONS(1256),
    [sym_with] = ACTIONS(1258),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [525] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6547),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6547),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2105),
    [anon_sym_RBRACE] = ACTIONS(2108),
    [anon_sym_LBRACE] = ACTIONS(2110),
    [anon_sym_DOT] = ACTIONS(2113),
    [anon_sym_AMP] = ACTIONS(2116),
    [anon_sym_DASH] = ACTIONS(2119),
    [anon_sym_DASH_DASH] = ACTIONS(2116),
    [anon_sym_PLUS] = ACTIONS(2119),
    [anon_sym_PLUS_PLUS] = ACTIONS(2116),
    [anon_sym_BANG] = ACTIONS(2116),
    [anon_sym_LPAREN] = ACTIONS(2122),
    [anon_sym_LBRACK] = ACTIONS(2125),
    [anon_sym_SEMI] = ACTIONS(2108),
    [anon_sym_DOLLAR] = ACTIONS(2128),
    [anon_sym_STAR] = ACTIONS(2116),
    [anon_sym_TILDE] = ACTIONS(2116),
    [anon_sym_AT] = ACTIONS(2108),
    [sym_bool] = ACTIONS(2131),
    [sym_byte] = ACTIONS(2131),
    [sym_ubyte] = ACTIONS(2131),
    [sym_char] = ACTIONS(2131),
    [sym_short] = ACTIONS(2131),
    [sym_ushort] = ACTIONS(2131),
    [sym_int] = ACTIONS(2131),
    [sym_uint] = ACTIONS(2131),
    [sym_long] = ACTIONS(2131),
    [sym_ulong] = ACTIONS(2131),
    [sym_cent] = ACTIONS(2131),
    [sym_ucent] = ACTIONS(2131),
    [sym_wchar] = ACTIONS(2131),
    [sym_dchar] = ACTIONS(2131),
    [sym_float] = ACTIONS(2131),
    [sym_double] = ACTIONS(2131),
    [sym_real] = ACTIONS(2131),
    [sym_ifloat] = ACTIONS(2131),
    [sym_idouble] = ACTIONS(2131),
    [sym_ireal] = ACTIONS(2131),
    [sym_cfloat] = ACTIONS(2131),
    [sym_cdouble] = ACTIONS(2131),
    [sym_creal] = ACTIONS(2131),
    [sym_size_t] = ACTIONS(2131),
    [sym_ptrdiff_t] = ACTIONS(2131),
    [sym_string] = ACTIONS(2131),
    [sym_cstring] = ACTIONS(2131),
    [sym_dstring] = ACTIONS(2131),
    [sym_wstring] = ACTIONS(2131),
    [sym_noreturn] = ACTIONS(2131),
    [sym_true] = ACTIONS(2134),
    [sym_false] = ACTIONS(2134),
    [sym_null] = ACTIONS(2134),
    [sym_super] = ACTIONS(2134),
    [sym_this] = ACTIONS(2134),
    [sym_abstract] = ACTIONS(2137),
    [sym_alias] = ACTIONS(2137),
    [sym_align] = ACTIONS(2137),
    [sym_asm] = ACTIONS(2137),
    [sym_assert] = ACTIONS(2139),
    [sym_auto] = ACTIONS(2142),
    [sym_break] = ACTIONS(2137),
    [sym_case] = ACTIONS(2137),
    [sym_cast] = ACTIONS(2145),
    [sym_class] = ACTIONS(2137),
    [sym_const] = ACTIONS(2148),
    [sym_continue] = ACTIONS(2137),
    [sym_debug] = ACTIONS(2137),
    [sym_default] = ACTIONS(2137),
    [sym_delegate] = ACTIONS(2151),
    [sym_delete] = ACTIONS(2154),
    [sym_deprecated] = ACTIONS(2137),
    [sym_do] = ACTIONS(2157),
    [sym_enum] = ACTIONS(2137),
    [sym_export] = ACTIONS(2137),
    [sym_extern] = ACTIONS(2137),
    [sym_final] = ACTIONS(2137),
    [sym_for] = ACTIONS(2137),
    [sym_foreach] = ACTIONS(2137),
    [sym_foreach_reverse] = ACTIONS(2137),
    [sym_function] = ACTIONS(2160),
    [sym_goto] = ACTIONS(2137),
    [sym_if] = ACTIONS(2137),
    [sym_immutable] = ACTIONS(2148),
    [sym_import] = ACTIONS(2163),
    [sym_in] = ACTIONS(2166),
    [sym_inout] = ACTIONS(2148),
    [sym_interface] = ACTIONS(2137),
    [sym_invariant] = ACTIONS(2137),
    [sym_is] = ACTIONS(2169),
    [sym_mixin] = ACTIONS(2172),
    [sym_new] = ACTIONS(2175),
    [sym_nothrow] = ACTIONS(2137),
    [sym_out] = ACTIONS(2178),
    [sym_override] = ACTIONS(2137),
    [sym_package] = ACTIONS(2137),
    [sym_pragma] = ACTIONS(2137),
    [sym_private] = ACTIONS(2137),
    [sym_protected] = ACTIONS(2137),
    [sym_public] = ACTIONS(2137),
    [sym_pure] = ACTIONS(2137),
    [sym_ref] = ACTIONS(2181),
    [sym_return] = ACTIONS(2137),
    [sym_scope] = ACTIONS(2137),
    [sym_shared] = ACTIONS(2148),
    [sym_static] = ACTIONS(2137),
    [sym_struct] = ACTIONS(2137),
    [sym_switch] = ACTIONS(2137),
    [sym_synchronized] = ACTIONS(2137),
    [sym_template] = ACTIONS(2137),
    [sym_throw] = ACTIONS(2184),
    [sym_try] = ACTIONS(2137),
    [sym_typeid] = ACTIONS(2187),
    [sym_typeof] = ACTIONS(2190),
    [sym_union] = ACTIONS(2137),
    [sym_unittest] = ACTIONS(2137),
    [sym_version] = ACTIONS(2137),
    [sym_while] = ACTIONS(2137),
    [sym_with] = ACTIONS(2137),
    [sym_gshared] = ACTIONS(2137),
    [sym_traits] = ACTIONS(2193),
    [sym_vector] = ACTIONS(2196),
    [sym_void] = ACTIONS(2199),
    [anon_sym_BQUOTE] = ACTIONS(2202),
    [anon_sym_r_DQUOTE] = ACTIONS(2205),
    [anon_sym_x_DQUOTE] = ACTIONS(2208),
    [anon_sym_DQUOTE] = ACTIONS(2211),
    [anon_sym_i_BQUOTE] = ACTIONS(2214),
    [anon_sym_i_DQUOTE] = ACTIONS(2217),
    [anon_sym_iq_LBRACE] = ACTIONS(2220),
    [aux_sym_char_literal_token1] = ACTIONS(2223),
    [anon_sym_SQUOTE] = ACTIONS(2226),
    [anon_sym___DATE__] = ACTIONS(2229),
    [anon_sym___FILE__] = ACTIONS(2229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2229),
    [anon_sym___FUNCTION__] = ACTIONS(2229),
    [anon_sym___LINE__] = ACTIONS(2229),
    [anon_sym___MODULE__] = ACTIONS(2229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2229),
    [anon_sym___TIME__] = ACTIONS(2229),
    [anon_sym___TIMESTAMP__] = ACTIONS(2229),
    [anon_sym___VENDOR__] = ACTIONS(2229),
    [anon_sym___VERSION__] = ACTIONS(2229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2232),
    [sym_float_literal] = ACTIONS(2232),
    [sym__string] = ACTIONS(2235),
  },
  [526] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2242),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [527] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2276),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [528] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2278),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [529] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(526),
    [sym__token_no_braces] = STATE(526),
    [sym_keyword] = STATE(526),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(526),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(526),
    [sym_string_literal] = STATE(526),
    [sym_char_literal] = STATE(526),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2280),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2282),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2280),
    [anon_sym_SLASH_EQ] = ACTIONS(2284),
    [anon_sym_DOT] = ACTIONS(2280),
    [anon_sym_DOT_DOT] = ACTIONS(2280),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2284),
    [anon_sym_AMP] = ACTIONS(2280),
    [anon_sym_AMP_EQ] = ACTIONS(2284),
    [anon_sym_AMP_AMP] = ACTIONS(2284),
    [anon_sym_PIPE] = ACTIONS(2280),
    [anon_sym_PIPE_EQ] = ACTIONS(2284),
    [anon_sym_PIPE_PIPE] = ACTIONS(2284),
    [anon_sym_DASH] = ACTIONS(2280),
    [anon_sym_DASH_EQ] = ACTIONS(2284),
    [anon_sym_DASH_DASH] = ACTIONS(2284),
    [anon_sym_PLUS] = ACTIONS(2280),
    [anon_sym_PLUS_EQ] = ACTIONS(2284),
    [anon_sym_PLUS_PLUS] = ACTIONS(2284),
    [anon_sym_LT] = ACTIONS(2280),
    [anon_sym_LT_EQ] = ACTIONS(2284),
    [anon_sym_LT_LT] = ACTIONS(2280),
    [anon_sym_LT_LT_EQ] = ACTIONS(2284),
    [anon_sym_GT] = ACTIONS(2280),
    [anon_sym_GT_EQ] = ACTIONS(2284),
    [anon_sym_GT_GT_EQ] = ACTIONS(2284),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2284),
    [anon_sym_GT_GT] = ACTIONS(2280),
    [anon_sym_GT_GT_GT] = ACTIONS(2280),
    [anon_sym_BANG] = ACTIONS(2280),
    [anon_sym_BANG_EQ] = ACTIONS(2284),
    [anon_sym_LPAREN] = ACTIONS(2284),
    [anon_sym_RPAREN] = ACTIONS(2284),
    [anon_sym_LBRACK] = ACTIONS(2284),
    [anon_sym_RBRACK] = ACTIONS(2284),
    [anon_sym_QMARK] = ACTIONS(2284),
    [anon_sym_COMMA] = ACTIONS(2284),
    [anon_sym_SEMI] = ACTIONS(2284),
    [anon_sym_COLON] = ACTIONS(2284),
    [anon_sym_DOLLAR] = ACTIONS(2280),
    [anon_sym_EQ] = ACTIONS(2280),
    [anon_sym_EQ_EQ] = ACTIONS(2284),
    [anon_sym_STAR] = ACTIONS(2280),
    [anon_sym_STAR_EQ] = ACTIONS(2284),
    [anon_sym_PERCENT] = ACTIONS(2280),
    [anon_sym_PERCENT_EQ] = ACTIONS(2284),
    [anon_sym_CARET] = ACTIONS(2280),
    [anon_sym_CARET_EQ] = ACTIONS(2284),
    [anon_sym_CARET_CARET] = ACTIONS(2280),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2284),
    [anon_sym_TILDE] = ACTIONS(2280),
    [anon_sym_TILDE_EQ] = ACTIONS(2284),
    [anon_sym_AT] = ACTIONS(2284),
    [anon_sym_EQ_GT] = ACTIONS(2284),
    [anon_sym_POUND] = ACTIONS(2284),
    [anon_sym_BANGin] = ACTIONS(2284),
    [anon_sym_BANGis] = ACTIONS(2284),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2284),
    [sym_float_literal] = ACTIONS(2284),
    [sym__string] = ACTIONS(2274),
  },
  [530] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(540),
    [sym__token_no_braces] = STATE(540),
    [sym_keyword] = STATE(540),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(540),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(540),
    [sym_string_literal] = STATE(540),
    [sym_char_literal] = STATE(540),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2286),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2288),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2286),
    [anon_sym_SLASH_EQ] = ACTIONS(2290),
    [anon_sym_DOT] = ACTIONS(2286),
    [anon_sym_DOT_DOT] = ACTIONS(2286),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2290),
    [anon_sym_AMP] = ACTIONS(2286),
    [anon_sym_AMP_EQ] = ACTIONS(2290),
    [anon_sym_AMP_AMP] = ACTIONS(2290),
    [anon_sym_PIPE] = ACTIONS(2286),
    [anon_sym_PIPE_EQ] = ACTIONS(2290),
    [anon_sym_PIPE_PIPE] = ACTIONS(2290),
    [anon_sym_DASH] = ACTIONS(2286),
    [anon_sym_DASH_EQ] = ACTIONS(2290),
    [anon_sym_DASH_DASH] = ACTIONS(2290),
    [anon_sym_PLUS] = ACTIONS(2286),
    [anon_sym_PLUS_EQ] = ACTIONS(2290),
    [anon_sym_PLUS_PLUS] = ACTIONS(2290),
    [anon_sym_LT] = ACTIONS(2286),
    [anon_sym_LT_EQ] = ACTIONS(2290),
    [anon_sym_LT_LT] = ACTIONS(2286),
    [anon_sym_LT_LT_EQ] = ACTIONS(2290),
    [anon_sym_GT] = ACTIONS(2286),
    [anon_sym_GT_EQ] = ACTIONS(2290),
    [anon_sym_GT_GT_EQ] = ACTIONS(2290),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2290),
    [anon_sym_GT_GT] = ACTIONS(2286),
    [anon_sym_GT_GT_GT] = ACTIONS(2286),
    [anon_sym_BANG] = ACTIONS(2286),
    [anon_sym_BANG_EQ] = ACTIONS(2290),
    [anon_sym_LPAREN] = ACTIONS(2290),
    [anon_sym_RPAREN] = ACTIONS(2290),
    [anon_sym_LBRACK] = ACTIONS(2290),
    [anon_sym_RBRACK] = ACTIONS(2290),
    [anon_sym_QMARK] = ACTIONS(2290),
    [anon_sym_COMMA] = ACTIONS(2290),
    [anon_sym_SEMI] = ACTIONS(2290),
    [anon_sym_COLON] = ACTIONS(2290),
    [anon_sym_DOLLAR] = ACTIONS(2286),
    [anon_sym_EQ] = ACTIONS(2286),
    [anon_sym_EQ_EQ] = ACTIONS(2290),
    [anon_sym_STAR] = ACTIONS(2286),
    [anon_sym_STAR_EQ] = ACTIONS(2290),
    [anon_sym_PERCENT] = ACTIONS(2286),
    [anon_sym_PERCENT_EQ] = ACTIONS(2290),
    [anon_sym_CARET] = ACTIONS(2286),
    [anon_sym_CARET_EQ] = ACTIONS(2290),
    [anon_sym_CARET_CARET] = ACTIONS(2286),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2290),
    [anon_sym_TILDE] = ACTIONS(2286),
    [anon_sym_TILDE_EQ] = ACTIONS(2290),
    [anon_sym_AT] = ACTIONS(2290),
    [anon_sym_EQ_GT] = ACTIONS(2290),
    [anon_sym_POUND] = ACTIONS(2290),
    [anon_sym_BANGin] = ACTIONS(2290),
    [anon_sym_BANGis] = ACTIONS(2290),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2290),
    [sym_float_literal] = ACTIONS(2290),
    [sym__string] = ACTIONS(2274),
  },
  [531] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(528),
    [sym__token_no_braces] = STATE(528),
    [sym_keyword] = STATE(528),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(528),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(528),
    [sym_string_literal] = STATE(528),
    [sym_char_literal] = STATE(528),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2292),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2294),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2292),
    [anon_sym_SLASH_EQ] = ACTIONS(2296),
    [anon_sym_DOT] = ACTIONS(2292),
    [anon_sym_DOT_DOT] = ACTIONS(2292),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2296),
    [anon_sym_AMP] = ACTIONS(2292),
    [anon_sym_AMP_EQ] = ACTIONS(2296),
    [anon_sym_AMP_AMP] = ACTIONS(2296),
    [anon_sym_PIPE] = ACTIONS(2292),
    [anon_sym_PIPE_EQ] = ACTIONS(2296),
    [anon_sym_PIPE_PIPE] = ACTIONS(2296),
    [anon_sym_DASH] = ACTIONS(2292),
    [anon_sym_DASH_EQ] = ACTIONS(2296),
    [anon_sym_DASH_DASH] = ACTIONS(2296),
    [anon_sym_PLUS] = ACTIONS(2292),
    [anon_sym_PLUS_EQ] = ACTIONS(2296),
    [anon_sym_PLUS_PLUS] = ACTIONS(2296),
    [anon_sym_LT] = ACTIONS(2292),
    [anon_sym_LT_EQ] = ACTIONS(2296),
    [anon_sym_LT_LT] = ACTIONS(2292),
    [anon_sym_LT_LT_EQ] = ACTIONS(2296),
    [anon_sym_GT] = ACTIONS(2292),
    [anon_sym_GT_EQ] = ACTIONS(2296),
    [anon_sym_GT_GT_EQ] = ACTIONS(2296),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2296),
    [anon_sym_GT_GT] = ACTIONS(2292),
    [anon_sym_GT_GT_GT] = ACTIONS(2292),
    [anon_sym_BANG] = ACTIONS(2292),
    [anon_sym_BANG_EQ] = ACTIONS(2296),
    [anon_sym_LPAREN] = ACTIONS(2296),
    [anon_sym_RPAREN] = ACTIONS(2296),
    [anon_sym_LBRACK] = ACTIONS(2296),
    [anon_sym_RBRACK] = ACTIONS(2296),
    [anon_sym_QMARK] = ACTIONS(2296),
    [anon_sym_COMMA] = ACTIONS(2296),
    [anon_sym_SEMI] = ACTIONS(2296),
    [anon_sym_COLON] = ACTIONS(2296),
    [anon_sym_DOLLAR] = ACTIONS(2292),
    [anon_sym_EQ] = ACTIONS(2292),
    [anon_sym_EQ_EQ] = ACTIONS(2296),
    [anon_sym_STAR] = ACTIONS(2292),
    [anon_sym_STAR_EQ] = ACTIONS(2296),
    [anon_sym_PERCENT] = ACTIONS(2292),
    [anon_sym_PERCENT_EQ] = ACTIONS(2296),
    [anon_sym_CARET] = ACTIONS(2292),
    [anon_sym_CARET_EQ] = ACTIONS(2296),
    [anon_sym_CARET_CARET] = ACTIONS(2292),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2296),
    [anon_sym_TILDE] = ACTIONS(2292),
    [anon_sym_TILDE_EQ] = ACTIONS(2296),
    [anon_sym_AT] = ACTIONS(2296),
    [anon_sym_EQ_GT] = ACTIONS(2296),
    [anon_sym_POUND] = ACTIONS(2296),
    [anon_sym_BANGin] = ACTIONS(2296),
    [anon_sym_BANGis] = ACTIONS(2296),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2296),
    [sym_float_literal] = ACTIONS(2296),
    [sym__string] = ACTIONS(2274),
  },
  [532] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(549),
    [sym__token_no_braces] = STATE(549),
    [sym_keyword] = STATE(549),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(549),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(549),
    [sym_string_literal] = STATE(549),
    [sym_char_literal] = STATE(549),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2298),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2300),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2298),
    [anon_sym_SLASH_EQ] = ACTIONS(2302),
    [anon_sym_DOT] = ACTIONS(2298),
    [anon_sym_DOT_DOT] = ACTIONS(2298),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2302),
    [anon_sym_AMP] = ACTIONS(2298),
    [anon_sym_AMP_EQ] = ACTIONS(2302),
    [anon_sym_AMP_AMP] = ACTIONS(2302),
    [anon_sym_PIPE] = ACTIONS(2298),
    [anon_sym_PIPE_EQ] = ACTIONS(2302),
    [anon_sym_PIPE_PIPE] = ACTIONS(2302),
    [anon_sym_DASH] = ACTIONS(2298),
    [anon_sym_DASH_EQ] = ACTIONS(2302),
    [anon_sym_DASH_DASH] = ACTIONS(2302),
    [anon_sym_PLUS] = ACTIONS(2298),
    [anon_sym_PLUS_EQ] = ACTIONS(2302),
    [anon_sym_PLUS_PLUS] = ACTIONS(2302),
    [anon_sym_LT] = ACTIONS(2298),
    [anon_sym_LT_EQ] = ACTIONS(2302),
    [anon_sym_LT_LT] = ACTIONS(2298),
    [anon_sym_LT_LT_EQ] = ACTIONS(2302),
    [anon_sym_GT] = ACTIONS(2298),
    [anon_sym_GT_EQ] = ACTIONS(2302),
    [anon_sym_GT_GT_EQ] = ACTIONS(2302),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2302),
    [anon_sym_GT_GT] = ACTIONS(2298),
    [anon_sym_GT_GT_GT] = ACTIONS(2298),
    [anon_sym_BANG] = ACTIONS(2298),
    [anon_sym_BANG_EQ] = ACTIONS(2302),
    [anon_sym_LPAREN] = ACTIONS(2302),
    [anon_sym_RPAREN] = ACTIONS(2302),
    [anon_sym_LBRACK] = ACTIONS(2302),
    [anon_sym_RBRACK] = ACTIONS(2302),
    [anon_sym_QMARK] = ACTIONS(2302),
    [anon_sym_COMMA] = ACTIONS(2302),
    [anon_sym_SEMI] = ACTIONS(2302),
    [anon_sym_COLON] = ACTIONS(2302),
    [anon_sym_DOLLAR] = ACTIONS(2298),
    [anon_sym_EQ] = ACTIONS(2298),
    [anon_sym_EQ_EQ] = ACTIONS(2302),
    [anon_sym_STAR] = ACTIONS(2298),
    [anon_sym_STAR_EQ] = ACTIONS(2302),
    [anon_sym_PERCENT] = ACTIONS(2298),
    [anon_sym_PERCENT_EQ] = ACTIONS(2302),
    [anon_sym_CARET] = ACTIONS(2298),
    [anon_sym_CARET_EQ] = ACTIONS(2302),
    [anon_sym_CARET_CARET] = ACTIONS(2298),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2302),
    [anon_sym_TILDE] = ACTIONS(2298),
    [anon_sym_TILDE_EQ] = ACTIONS(2302),
    [anon_sym_AT] = ACTIONS(2302),
    [anon_sym_EQ_GT] = ACTIONS(2302),
    [anon_sym_POUND] = ACTIONS(2302),
    [anon_sym_BANGin] = ACTIONS(2302),
    [anon_sym_BANGis] = ACTIONS(2302),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2302),
    [sym_float_literal] = ACTIONS(2302),
    [sym__string] = ACTIONS(2274),
  },
  [533] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2304),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [534] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(537),
    [sym__token_no_braces] = STATE(537),
    [sym_keyword] = STATE(537),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(537),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(537),
    [sym_string_literal] = STATE(537),
    [sym_char_literal] = STATE(537),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2306),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2308),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2306),
    [anon_sym_SLASH_EQ] = ACTIONS(2310),
    [anon_sym_DOT] = ACTIONS(2306),
    [anon_sym_DOT_DOT] = ACTIONS(2306),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2310),
    [anon_sym_AMP] = ACTIONS(2306),
    [anon_sym_AMP_EQ] = ACTIONS(2310),
    [anon_sym_AMP_AMP] = ACTIONS(2310),
    [anon_sym_PIPE] = ACTIONS(2306),
    [anon_sym_PIPE_EQ] = ACTIONS(2310),
    [anon_sym_PIPE_PIPE] = ACTIONS(2310),
    [anon_sym_DASH] = ACTIONS(2306),
    [anon_sym_DASH_EQ] = ACTIONS(2310),
    [anon_sym_DASH_DASH] = ACTIONS(2310),
    [anon_sym_PLUS] = ACTIONS(2306),
    [anon_sym_PLUS_EQ] = ACTIONS(2310),
    [anon_sym_PLUS_PLUS] = ACTIONS(2310),
    [anon_sym_LT] = ACTIONS(2306),
    [anon_sym_LT_EQ] = ACTIONS(2310),
    [anon_sym_LT_LT] = ACTIONS(2306),
    [anon_sym_LT_LT_EQ] = ACTIONS(2310),
    [anon_sym_GT] = ACTIONS(2306),
    [anon_sym_GT_EQ] = ACTIONS(2310),
    [anon_sym_GT_GT_EQ] = ACTIONS(2310),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2310),
    [anon_sym_GT_GT] = ACTIONS(2306),
    [anon_sym_GT_GT_GT] = ACTIONS(2306),
    [anon_sym_BANG] = ACTIONS(2306),
    [anon_sym_BANG_EQ] = ACTIONS(2310),
    [anon_sym_LPAREN] = ACTIONS(2310),
    [anon_sym_RPAREN] = ACTIONS(2310),
    [anon_sym_LBRACK] = ACTIONS(2310),
    [anon_sym_RBRACK] = ACTIONS(2310),
    [anon_sym_QMARK] = ACTIONS(2310),
    [anon_sym_COMMA] = ACTIONS(2310),
    [anon_sym_SEMI] = ACTIONS(2310),
    [anon_sym_COLON] = ACTIONS(2310),
    [anon_sym_DOLLAR] = ACTIONS(2306),
    [anon_sym_EQ] = ACTIONS(2306),
    [anon_sym_EQ_EQ] = ACTIONS(2310),
    [anon_sym_STAR] = ACTIONS(2306),
    [anon_sym_STAR_EQ] = ACTIONS(2310),
    [anon_sym_PERCENT] = ACTIONS(2306),
    [anon_sym_PERCENT_EQ] = ACTIONS(2310),
    [anon_sym_CARET] = ACTIONS(2306),
    [anon_sym_CARET_EQ] = ACTIONS(2310),
    [anon_sym_CARET_CARET] = ACTIONS(2306),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2310),
    [anon_sym_TILDE] = ACTIONS(2306),
    [anon_sym_TILDE_EQ] = ACTIONS(2310),
    [anon_sym_AT] = ACTIONS(2310),
    [anon_sym_EQ_GT] = ACTIONS(2310),
    [anon_sym_POUND] = ACTIONS(2310),
    [anon_sym_BANGin] = ACTIONS(2310),
    [anon_sym_BANGis] = ACTIONS(2310),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2310),
    [sym_float_literal] = ACTIONS(2310),
    [sym__string] = ACTIONS(2274),
  },
  [535] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(533),
    [sym__token_no_braces] = STATE(533),
    [sym_keyword] = STATE(533),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(533),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(533),
    [sym_string_literal] = STATE(533),
    [sym_char_literal] = STATE(533),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2312),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2314),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2312),
    [anon_sym_SLASH_EQ] = ACTIONS(2316),
    [anon_sym_DOT] = ACTIONS(2312),
    [anon_sym_DOT_DOT] = ACTIONS(2312),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2316),
    [anon_sym_AMP] = ACTIONS(2312),
    [anon_sym_AMP_EQ] = ACTIONS(2316),
    [anon_sym_AMP_AMP] = ACTIONS(2316),
    [anon_sym_PIPE] = ACTIONS(2312),
    [anon_sym_PIPE_EQ] = ACTIONS(2316),
    [anon_sym_PIPE_PIPE] = ACTIONS(2316),
    [anon_sym_DASH] = ACTIONS(2312),
    [anon_sym_DASH_EQ] = ACTIONS(2316),
    [anon_sym_DASH_DASH] = ACTIONS(2316),
    [anon_sym_PLUS] = ACTIONS(2312),
    [anon_sym_PLUS_EQ] = ACTIONS(2316),
    [anon_sym_PLUS_PLUS] = ACTIONS(2316),
    [anon_sym_LT] = ACTIONS(2312),
    [anon_sym_LT_EQ] = ACTIONS(2316),
    [anon_sym_LT_LT] = ACTIONS(2312),
    [anon_sym_LT_LT_EQ] = ACTIONS(2316),
    [anon_sym_GT] = ACTIONS(2312),
    [anon_sym_GT_EQ] = ACTIONS(2316),
    [anon_sym_GT_GT_EQ] = ACTIONS(2316),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2316),
    [anon_sym_GT_GT] = ACTIONS(2312),
    [anon_sym_GT_GT_GT] = ACTIONS(2312),
    [anon_sym_BANG] = ACTIONS(2312),
    [anon_sym_BANG_EQ] = ACTIONS(2316),
    [anon_sym_LPAREN] = ACTIONS(2316),
    [anon_sym_RPAREN] = ACTIONS(2316),
    [anon_sym_LBRACK] = ACTIONS(2316),
    [anon_sym_RBRACK] = ACTIONS(2316),
    [anon_sym_QMARK] = ACTIONS(2316),
    [anon_sym_COMMA] = ACTIONS(2316),
    [anon_sym_SEMI] = ACTIONS(2316),
    [anon_sym_COLON] = ACTIONS(2316),
    [anon_sym_DOLLAR] = ACTIONS(2312),
    [anon_sym_EQ] = ACTIONS(2312),
    [anon_sym_EQ_EQ] = ACTIONS(2316),
    [anon_sym_STAR] = ACTIONS(2312),
    [anon_sym_STAR_EQ] = ACTIONS(2316),
    [anon_sym_PERCENT] = ACTIONS(2312),
    [anon_sym_PERCENT_EQ] = ACTIONS(2316),
    [anon_sym_CARET] = ACTIONS(2312),
    [anon_sym_CARET_EQ] = ACTIONS(2316),
    [anon_sym_CARET_CARET] = ACTIONS(2312),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2316),
    [anon_sym_TILDE] = ACTIONS(2312),
    [anon_sym_TILDE_EQ] = ACTIONS(2316),
    [anon_sym_AT] = ACTIONS(2316),
    [anon_sym_EQ_GT] = ACTIONS(2316),
    [anon_sym_POUND] = ACTIONS(2316),
    [anon_sym_BANGin] = ACTIONS(2316),
    [anon_sym_BANGis] = ACTIONS(2316),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2316),
    [sym_float_literal] = ACTIONS(2316),
    [sym__string] = ACTIONS(2274),
  },
  [536] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(539),
    [sym__token_no_braces] = STATE(539),
    [sym_keyword] = STATE(539),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(539),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(539),
    [sym_string_literal] = STATE(539),
    [sym_char_literal] = STATE(539),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2318),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2320),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2318),
    [anon_sym_SLASH_EQ] = ACTIONS(2322),
    [anon_sym_DOT] = ACTIONS(2318),
    [anon_sym_DOT_DOT] = ACTIONS(2318),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2322),
    [anon_sym_AMP] = ACTIONS(2318),
    [anon_sym_AMP_EQ] = ACTIONS(2322),
    [anon_sym_AMP_AMP] = ACTIONS(2322),
    [anon_sym_PIPE] = ACTIONS(2318),
    [anon_sym_PIPE_EQ] = ACTIONS(2322),
    [anon_sym_PIPE_PIPE] = ACTIONS(2322),
    [anon_sym_DASH] = ACTIONS(2318),
    [anon_sym_DASH_EQ] = ACTIONS(2322),
    [anon_sym_DASH_DASH] = ACTIONS(2322),
    [anon_sym_PLUS] = ACTIONS(2318),
    [anon_sym_PLUS_EQ] = ACTIONS(2322),
    [anon_sym_PLUS_PLUS] = ACTIONS(2322),
    [anon_sym_LT] = ACTIONS(2318),
    [anon_sym_LT_EQ] = ACTIONS(2322),
    [anon_sym_LT_LT] = ACTIONS(2318),
    [anon_sym_LT_LT_EQ] = ACTIONS(2322),
    [anon_sym_GT] = ACTIONS(2318),
    [anon_sym_GT_EQ] = ACTIONS(2322),
    [anon_sym_GT_GT_EQ] = ACTIONS(2322),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2322),
    [anon_sym_GT_GT] = ACTIONS(2318),
    [anon_sym_GT_GT_GT] = ACTIONS(2318),
    [anon_sym_BANG] = ACTIONS(2318),
    [anon_sym_BANG_EQ] = ACTIONS(2322),
    [anon_sym_LPAREN] = ACTIONS(2322),
    [anon_sym_RPAREN] = ACTIONS(2322),
    [anon_sym_LBRACK] = ACTIONS(2322),
    [anon_sym_RBRACK] = ACTIONS(2322),
    [anon_sym_QMARK] = ACTIONS(2322),
    [anon_sym_COMMA] = ACTIONS(2322),
    [anon_sym_SEMI] = ACTIONS(2322),
    [anon_sym_COLON] = ACTIONS(2322),
    [anon_sym_DOLLAR] = ACTIONS(2318),
    [anon_sym_EQ] = ACTIONS(2318),
    [anon_sym_EQ_EQ] = ACTIONS(2322),
    [anon_sym_STAR] = ACTIONS(2318),
    [anon_sym_STAR_EQ] = ACTIONS(2322),
    [anon_sym_PERCENT] = ACTIONS(2318),
    [anon_sym_PERCENT_EQ] = ACTIONS(2322),
    [anon_sym_CARET] = ACTIONS(2318),
    [anon_sym_CARET_EQ] = ACTIONS(2322),
    [anon_sym_CARET_CARET] = ACTIONS(2318),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2322),
    [anon_sym_TILDE] = ACTIONS(2318),
    [anon_sym_TILDE_EQ] = ACTIONS(2322),
    [anon_sym_AT] = ACTIONS(2322),
    [anon_sym_EQ_GT] = ACTIONS(2322),
    [anon_sym_POUND] = ACTIONS(2322),
    [anon_sym_BANGin] = ACTIONS(2322),
    [anon_sym_BANGis] = ACTIONS(2322),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2322),
    [sym_float_literal] = ACTIONS(2322),
    [sym__string] = ACTIONS(2274),
  },
  [537] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2324),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [538] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2326),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [539] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2328),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [540] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2330),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [541] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(538),
    [sym__token_no_braces] = STATE(538),
    [sym_keyword] = STATE(538),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(538),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(538),
    [sym_string_literal] = STATE(538),
    [sym_char_literal] = STATE(538),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2332),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2334),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2332),
    [anon_sym_SLASH_EQ] = ACTIONS(2336),
    [anon_sym_DOT] = ACTIONS(2332),
    [anon_sym_DOT_DOT] = ACTIONS(2332),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2336),
    [anon_sym_AMP] = ACTIONS(2332),
    [anon_sym_AMP_EQ] = ACTIONS(2336),
    [anon_sym_AMP_AMP] = ACTIONS(2336),
    [anon_sym_PIPE] = ACTIONS(2332),
    [anon_sym_PIPE_EQ] = ACTIONS(2336),
    [anon_sym_PIPE_PIPE] = ACTIONS(2336),
    [anon_sym_DASH] = ACTIONS(2332),
    [anon_sym_DASH_EQ] = ACTIONS(2336),
    [anon_sym_DASH_DASH] = ACTIONS(2336),
    [anon_sym_PLUS] = ACTIONS(2332),
    [anon_sym_PLUS_EQ] = ACTIONS(2336),
    [anon_sym_PLUS_PLUS] = ACTIONS(2336),
    [anon_sym_LT] = ACTIONS(2332),
    [anon_sym_LT_EQ] = ACTIONS(2336),
    [anon_sym_LT_LT] = ACTIONS(2332),
    [anon_sym_LT_LT_EQ] = ACTIONS(2336),
    [anon_sym_GT] = ACTIONS(2332),
    [anon_sym_GT_EQ] = ACTIONS(2336),
    [anon_sym_GT_GT_EQ] = ACTIONS(2336),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2336),
    [anon_sym_GT_GT] = ACTIONS(2332),
    [anon_sym_GT_GT_GT] = ACTIONS(2332),
    [anon_sym_BANG] = ACTIONS(2332),
    [anon_sym_BANG_EQ] = ACTIONS(2336),
    [anon_sym_LPAREN] = ACTIONS(2336),
    [anon_sym_RPAREN] = ACTIONS(2336),
    [anon_sym_LBRACK] = ACTIONS(2336),
    [anon_sym_RBRACK] = ACTIONS(2336),
    [anon_sym_QMARK] = ACTIONS(2336),
    [anon_sym_COMMA] = ACTIONS(2336),
    [anon_sym_SEMI] = ACTIONS(2336),
    [anon_sym_COLON] = ACTIONS(2336),
    [anon_sym_DOLLAR] = ACTIONS(2332),
    [anon_sym_EQ] = ACTIONS(2332),
    [anon_sym_EQ_EQ] = ACTIONS(2336),
    [anon_sym_STAR] = ACTIONS(2332),
    [anon_sym_STAR_EQ] = ACTIONS(2336),
    [anon_sym_PERCENT] = ACTIONS(2332),
    [anon_sym_PERCENT_EQ] = ACTIONS(2336),
    [anon_sym_CARET] = ACTIONS(2332),
    [anon_sym_CARET_EQ] = ACTIONS(2336),
    [anon_sym_CARET_CARET] = ACTIONS(2332),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2336),
    [anon_sym_TILDE] = ACTIONS(2332),
    [anon_sym_TILDE_EQ] = ACTIONS(2336),
    [anon_sym_AT] = ACTIONS(2336),
    [anon_sym_EQ_GT] = ACTIONS(2336),
    [anon_sym_POUND] = ACTIONS(2336),
    [anon_sym_BANGin] = ACTIONS(2336),
    [anon_sym_BANGis] = ACTIONS(2336),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2336),
    [sym_float_literal] = ACTIONS(2336),
    [sym__string] = ACTIONS(2274),
  },
  [542] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(545),
    [sym__token_no_braces] = STATE(545),
    [sym_keyword] = STATE(545),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(545),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(545),
    [sym_string_literal] = STATE(545),
    [sym_char_literal] = STATE(545),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2338),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2340),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2338),
    [anon_sym_SLASH_EQ] = ACTIONS(2342),
    [anon_sym_DOT] = ACTIONS(2338),
    [anon_sym_DOT_DOT] = ACTIONS(2338),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2342),
    [anon_sym_AMP] = ACTIONS(2338),
    [anon_sym_AMP_EQ] = ACTIONS(2342),
    [anon_sym_AMP_AMP] = ACTIONS(2342),
    [anon_sym_PIPE] = ACTIONS(2338),
    [anon_sym_PIPE_EQ] = ACTIONS(2342),
    [anon_sym_PIPE_PIPE] = ACTIONS(2342),
    [anon_sym_DASH] = ACTIONS(2338),
    [anon_sym_DASH_EQ] = ACTIONS(2342),
    [anon_sym_DASH_DASH] = ACTIONS(2342),
    [anon_sym_PLUS] = ACTIONS(2338),
    [anon_sym_PLUS_EQ] = ACTIONS(2342),
    [anon_sym_PLUS_PLUS] = ACTIONS(2342),
    [anon_sym_LT] = ACTIONS(2338),
    [anon_sym_LT_EQ] = ACTIONS(2342),
    [anon_sym_LT_LT] = ACTIONS(2338),
    [anon_sym_LT_LT_EQ] = ACTIONS(2342),
    [anon_sym_GT] = ACTIONS(2338),
    [anon_sym_GT_EQ] = ACTIONS(2342),
    [anon_sym_GT_GT_EQ] = ACTIONS(2342),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2342),
    [anon_sym_GT_GT] = ACTIONS(2338),
    [anon_sym_GT_GT_GT] = ACTIONS(2338),
    [anon_sym_BANG] = ACTIONS(2338),
    [anon_sym_BANG_EQ] = ACTIONS(2342),
    [anon_sym_LPAREN] = ACTIONS(2342),
    [anon_sym_RPAREN] = ACTIONS(2342),
    [anon_sym_LBRACK] = ACTIONS(2342),
    [anon_sym_RBRACK] = ACTIONS(2342),
    [anon_sym_QMARK] = ACTIONS(2342),
    [anon_sym_COMMA] = ACTIONS(2342),
    [anon_sym_SEMI] = ACTIONS(2342),
    [anon_sym_COLON] = ACTIONS(2342),
    [anon_sym_DOLLAR] = ACTIONS(2338),
    [anon_sym_EQ] = ACTIONS(2338),
    [anon_sym_EQ_EQ] = ACTIONS(2342),
    [anon_sym_STAR] = ACTIONS(2338),
    [anon_sym_STAR_EQ] = ACTIONS(2342),
    [anon_sym_PERCENT] = ACTIONS(2338),
    [anon_sym_PERCENT_EQ] = ACTIONS(2342),
    [anon_sym_CARET] = ACTIONS(2338),
    [anon_sym_CARET_EQ] = ACTIONS(2342),
    [anon_sym_CARET_CARET] = ACTIONS(2338),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2342),
    [anon_sym_TILDE] = ACTIONS(2338),
    [anon_sym_TILDE_EQ] = ACTIONS(2342),
    [anon_sym_AT] = ACTIONS(2342),
    [anon_sym_EQ_GT] = ACTIONS(2342),
    [anon_sym_POUND] = ACTIONS(2342),
    [anon_sym_BANGin] = ACTIONS(2342),
    [anon_sym_BANGis] = ACTIONS(2342),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2342),
    [sym_float_literal] = ACTIONS(2342),
    [sym__string] = ACTIONS(2274),
  },
  [543] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(527),
    [sym__token_no_braces] = STATE(527),
    [sym_keyword] = STATE(527),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(527),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(527),
    [sym_string_literal] = STATE(527),
    [sym_char_literal] = STATE(527),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2344),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2346),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2344),
    [anon_sym_SLASH_EQ] = ACTIONS(2348),
    [anon_sym_DOT] = ACTIONS(2344),
    [anon_sym_DOT_DOT] = ACTIONS(2344),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2348),
    [anon_sym_AMP] = ACTIONS(2344),
    [anon_sym_AMP_EQ] = ACTIONS(2348),
    [anon_sym_AMP_AMP] = ACTIONS(2348),
    [anon_sym_PIPE] = ACTIONS(2344),
    [anon_sym_PIPE_EQ] = ACTIONS(2348),
    [anon_sym_PIPE_PIPE] = ACTIONS(2348),
    [anon_sym_DASH] = ACTIONS(2344),
    [anon_sym_DASH_EQ] = ACTIONS(2348),
    [anon_sym_DASH_DASH] = ACTIONS(2348),
    [anon_sym_PLUS] = ACTIONS(2344),
    [anon_sym_PLUS_EQ] = ACTIONS(2348),
    [anon_sym_PLUS_PLUS] = ACTIONS(2348),
    [anon_sym_LT] = ACTIONS(2344),
    [anon_sym_LT_EQ] = ACTIONS(2348),
    [anon_sym_LT_LT] = ACTIONS(2344),
    [anon_sym_LT_LT_EQ] = ACTIONS(2348),
    [anon_sym_GT] = ACTIONS(2344),
    [anon_sym_GT_EQ] = ACTIONS(2348),
    [anon_sym_GT_GT_EQ] = ACTIONS(2348),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2348),
    [anon_sym_GT_GT] = ACTIONS(2344),
    [anon_sym_GT_GT_GT] = ACTIONS(2344),
    [anon_sym_BANG] = ACTIONS(2344),
    [anon_sym_BANG_EQ] = ACTIONS(2348),
    [anon_sym_LPAREN] = ACTIONS(2348),
    [anon_sym_RPAREN] = ACTIONS(2348),
    [anon_sym_LBRACK] = ACTIONS(2348),
    [anon_sym_RBRACK] = ACTIONS(2348),
    [anon_sym_QMARK] = ACTIONS(2348),
    [anon_sym_COMMA] = ACTIONS(2348),
    [anon_sym_SEMI] = ACTIONS(2348),
    [anon_sym_COLON] = ACTIONS(2348),
    [anon_sym_DOLLAR] = ACTIONS(2344),
    [anon_sym_EQ] = ACTIONS(2344),
    [anon_sym_EQ_EQ] = ACTIONS(2348),
    [anon_sym_STAR] = ACTIONS(2344),
    [anon_sym_STAR_EQ] = ACTIONS(2348),
    [anon_sym_PERCENT] = ACTIONS(2344),
    [anon_sym_PERCENT_EQ] = ACTIONS(2348),
    [anon_sym_CARET] = ACTIONS(2344),
    [anon_sym_CARET_EQ] = ACTIONS(2348),
    [anon_sym_CARET_CARET] = ACTIONS(2344),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2348),
    [anon_sym_TILDE] = ACTIONS(2344),
    [anon_sym_TILDE_EQ] = ACTIONS(2348),
    [anon_sym_AT] = ACTIONS(2348),
    [anon_sym_EQ_GT] = ACTIONS(2348),
    [anon_sym_POUND] = ACTIONS(2348),
    [anon_sym_BANGin] = ACTIONS(2348),
    [anon_sym_BANGis] = ACTIONS(2348),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2348),
    [sym_float_literal] = ACTIONS(2348),
    [sym__string] = ACTIONS(2274),
  },
  [544] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2350),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [545] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2352),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [546] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(544),
    [sym__token_no_braces] = STATE(544),
    [sym_keyword] = STATE(544),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(544),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(544),
    [sym_string_literal] = STATE(544),
    [sym_char_literal] = STATE(544),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2354),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2356),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2354),
    [anon_sym_SLASH_EQ] = ACTIONS(2358),
    [anon_sym_DOT] = ACTIONS(2354),
    [anon_sym_DOT_DOT] = ACTIONS(2354),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2358),
    [anon_sym_AMP] = ACTIONS(2354),
    [anon_sym_AMP_EQ] = ACTIONS(2358),
    [anon_sym_AMP_AMP] = ACTIONS(2358),
    [anon_sym_PIPE] = ACTIONS(2354),
    [anon_sym_PIPE_EQ] = ACTIONS(2358),
    [anon_sym_PIPE_PIPE] = ACTIONS(2358),
    [anon_sym_DASH] = ACTIONS(2354),
    [anon_sym_DASH_EQ] = ACTIONS(2358),
    [anon_sym_DASH_DASH] = ACTIONS(2358),
    [anon_sym_PLUS] = ACTIONS(2354),
    [anon_sym_PLUS_EQ] = ACTIONS(2358),
    [anon_sym_PLUS_PLUS] = ACTIONS(2358),
    [anon_sym_LT] = ACTIONS(2354),
    [anon_sym_LT_EQ] = ACTIONS(2358),
    [anon_sym_LT_LT] = ACTIONS(2354),
    [anon_sym_LT_LT_EQ] = ACTIONS(2358),
    [anon_sym_GT] = ACTIONS(2354),
    [anon_sym_GT_EQ] = ACTIONS(2358),
    [anon_sym_GT_GT_EQ] = ACTIONS(2358),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2358),
    [anon_sym_GT_GT] = ACTIONS(2354),
    [anon_sym_GT_GT_GT] = ACTIONS(2354),
    [anon_sym_BANG] = ACTIONS(2354),
    [anon_sym_BANG_EQ] = ACTIONS(2358),
    [anon_sym_LPAREN] = ACTIONS(2358),
    [anon_sym_RPAREN] = ACTIONS(2358),
    [anon_sym_LBRACK] = ACTIONS(2358),
    [anon_sym_RBRACK] = ACTIONS(2358),
    [anon_sym_QMARK] = ACTIONS(2358),
    [anon_sym_COMMA] = ACTIONS(2358),
    [anon_sym_SEMI] = ACTIONS(2358),
    [anon_sym_COLON] = ACTIONS(2358),
    [anon_sym_DOLLAR] = ACTIONS(2354),
    [anon_sym_EQ] = ACTIONS(2354),
    [anon_sym_EQ_EQ] = ACTIONS(2358),
    [anon_sym_STAR] = ACTIONS(2354),
    [anon_sym_STAR_EQ] = ACTIONS(2358),
    [anon_sym_PERCENT] = ACTIONS(2354),
    [anon_sym_PERCENT_EQ] = ACTIONS(2358),
    [anon_sym_CARET] = ACTIONS(2354),
    [anon_sym_CARET_EQ] = ACTIONS(2358),
    [anon_sym_CARET_CARET] = ACTIONS(2354),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2358),
    [anon_sym_TILDE] = ACTIONS(2354),
    [anon_sym_TILDE_EQ] = ACTIONS(2358),
    [anon_sym_AT] = ACTIONS(2358),
    [anon_sym_EQ_GT] = ACTIONS(2358),
    [anon_sym_POUND] = ACTIONS(2358),
    [anon_sym_BANGin] = ACTIONS(2358),
    [anon_sym_BANGis] = ACTIONS(2358),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2358),
    [sym_float_literal] = ACTIONS(2358),
    [sym__string] = ACTIONS(2274),
  },
  [547] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(551),
    [sym__token_no_braces] = STATE(551),
    [sym_keyword] = STATE(551),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(551),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(551),
    [sym_string_literal] = STATE(551),
    [sym_char_literal] = STATE(551),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2360),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2362),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2360),
    [anon_sym_SLASH_EQ] = ACTIONS(2364),
    [anon_sym_DOT] = ACTIONS(2360),
    [anon_sym_DOT_DOT] = ACTIONS(2360),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2364),
    [anon_sym_AMP] = ACTIONS(2360),
    [anon_sym_AMP_EQ] = ACTIONS(2364),
    [anon_sym_AMP_AMP] = ACTIONS(2364),
    [anon_sym_PIPE] = ACTIONS(2360),
    [anon_sym_PIPE_EQ] = ACTIONS(2364),
    [anon_sym_PIPE_PIPE] = ACTIONS(2364),
    [anon_sym_DASH] = ACTIONS(2360),
    [anon_sym_DASH_EQ] = ACTIONS(2364),
    [anon_sym_DASH_DASH] = ACTIONS(2364),
    [anon_sym_PLUS] = ACTIONS(2360),
    [anon_sym_PLUS_EQ] = ACTIONS(2364),
    [anon_sym_PLUS_PLUS] = ACTIONS(2364),
    [anon_sym_LT] = ACTIONS(2360),
    [anon_sym_LT_EQ] = ACTIONS(2364),
    [anon_sym_LT_LT] = ACTIONS(2360),
    [anon_sym_LT_LT_EQ] = ACTIONS(2364),
    [anon_sym_GT] = ACTIONS(2360),
    [anon_sym_GT_EQ] = ACTIONS(2364),
    [anon_sym_GT_GT_EQ] = ACTIONS(2364),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2364),
    [anon_sym_GT_GT] = ACTIONS(2360),
    [anon_sym_GT_GT_GT] = ACTIONS(2360),
    [anon_sym_BANG] = ACTIONS(2360),
    [anon_sym_BANG_EQ] = ACTIONS(2364),
    [anon_sym_LPAREN] = ACTIONS(2364),
    [anon_sym_RPAREN] = ACTIONS(2364),
    [anon_sym_LBRACK] = ACTIONS(2364),
    [anon_sym_RBRACK] = ACTIONS(2364),
    [anon_sym_QMARK] = ACTIONS(2364),
    [anon_sym_COMMA] = ACTIONS(2364),
    [anon_sym_SEMI] = ACTIONS(2364),
    [anon_sym_COLON] = ACTIONS(2364),
    [anon_sym_DOLLAR] = ACTIONS(2360),
    [anon_sym_EQ] = ACTIONS(2360),
    [anon_sym_EQ_EQ] = ACTIONS(2364),
    [anon_sym_STAR] = ACTIONS(2360),
    [anon_sym_STAR_EQ] = ACTIONS(2364),
    [anon_sym_PERCENT] = ACTIONS(2360),
    [anon_sym_PERCENT_EQ] = ACTIONS(2364),
    [anon_sym_CARET] = ACTIONS(2360),
    [anon_sym_CARET_EQ] = ACTIONS(2364),
    [anon_sym_CARET_CARET] = ACTIONS(2360),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2364),
    [anon_sym_TILDE] = ACTIONS(2360),
    [anon_sym_TILDE_EQ] = ACTIONS(2364),
    [anon_sym_AT] = ACTIONS(2364),
    [anon_sym_EQ_GT] = ACTIONS(2364),
    [anon_sym_POUND] = ACTIONS(2364),
    [anon_sym_BANGin] = ACTIONS(2364),
    [anon_sym_BANGis] = ACTIONS(2364),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2364),
    [sym_float_literal] = ACTIONS(2364),
    [sym__string] = ACTIONS(2274),
  },
  [548] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(552),
    [sym__token_no_braces] = STATE(552),
    [sym_keyword] = STATE(552),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(552),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(552),
    [sym_string_literal] = STATE(552),
    [sym_char_literal] = STATE(552),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2366),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2368),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2366),
    [anon_sym_SLASH_EQ] = ACTIONS(2370),
    [anon_sym_DOT] = ACTIONS(2366),
    [anon_sym_DOT_DOT] = ACTIONS(2366),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2370),
    [anon_sym_AMP] = ACTIONS(2366),
    [anon_sym_AMP_EQ] = ACTIONS(2370),
    [anon_sym_AMP_AMP] = ACTIONS(2370),
    [anon_sym_PIPE] = ACTIONS(2366),
    [anon_sym_PIPE_EQ] = ACTIONS(2370),
    [anon_sym_PIPE_PIPE] = ACTIONS(2370),
    [anon_sym_DASH] = ACTIONS(2366),
    [anon_sym_DASH_EQ] = ACTIONS(2370),
    [anon_sym_DASH_DASH] = ACTIONS(2370),
    [anon_sym_PLUS] = ACTIONS(2366),
    [anon_sym_PLUS_EQ] = ACTIONS(2370),
    [anon_sym_PLUS_PLUS] = ACTIONS(2370),
    [anon_sym_LT] = ACTIONS(2366),
    [anon_sym_LT_EQ] = ACTIONS(2370),
    [anon_sym_LT_LT] = ACTIONS(2366),
    [anon_sym_LT_LT_EQ] = ACTIONS(2370),
    [anon_sym_GT] = ACTIONS(2366),
    [anon_sym_GT_EQ] = ACTIONS(2370),
    [anon_sym_GT_GT_EQ] = ACTIONS(2370),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2370),
    [anon_sym_GT_GT] = ACTIONS(2366),
    [anon_sym_GT_GT_GT] = ACTIONS(2366),
    [anon_sym_BANG] = ACTIONS(2366),
    [anon_sym_BANG_EQ] = ACTIONS(2370),
    [anon_sym_LPAREN] = ACTIONS(2370),
    [anon_sym_RPAREN] = ACTIONS(2370),
    [anon_sym_LBRACK] = ACTIONS(2370),
    [anon_sym_RBRACK] = ACTIONS(2370),
    [anon_sym_QMARK] = ACTIONS(2370),
    [anon_sym_COMMA] = ACTIONS(2370),
    [anon_sym_SEMI] = ACTIONS(2370),
    [anon_sym_COLON] = ACTIONS(2370),
    [anon_sym_DOLLAR] = ACTIONS(2366),
    [anon_sym_EQ] = ACTIONS(2366),
    [anon_sym_EQ_EQ] = ACTIONS(2370),
    [anon_sym_STAR] = ACTIONS(2366),
    [anon_sym_STAR_EQ] = ACTIONS(2370),
    [anon_sym_PERCENT] = ACTIONS(2366),
    [anon_sym_PERCENT_EQ] = ACTIONS(2370),
    [anon_sym_CARET] = ACTIONS(2366),
    [anon_sym_CARET_EQ] = ACTIONS(2370),
    [anon_sym_CARET_CARET] = ACTIONS(2366),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2370),
    [anon_sym_TILDE] = ACTIONS(2366),
    [anon_sym_TILDE_EQ] = ACTIONS(2370),
    [anon_sym_AT] = ACTIONS(2370),
    [anon_sym_EQ_GT] = ACTIONS(2370),
    [anon_sym_POUND] = ACTIONS(2370),
    [anon_sym_BANGin] = ACTIONS(2370),
    [anon_sym_BANGis] = ACTIONS(2370),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2370),
    [sym_float_literal] = ACTIONS(2370),
    [sym__string] = ACTIONS(2274),
  },
  [549] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2372),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [550] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2374),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2377),
    [anon_sym_RBRACE] = ACTIONS(2380),
    [anon_sym_LBRACE] = ACTIONS(2382),
    [anon_sym_SLASH] = ACTIONS(2374),
    [anon_sym_SLASH_EQ] = ACTIONS(2385),
    [anon_sym_DOT] = ACTIONS(2374),
    [anon_sym_DOT_DOT] = ACTIONS(2374),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2385),
    [anon_sym_AMP] = ACTIONS(2374),
    [anon_sym_AMP_EQ] = ACTIONS(2385),
    [anon_sym_AMP_AMP] = ACTIONS(2385),
    [anon_sym_PIPE] = ACTIONS(2374),
    [anon_sym_PIPE_EQ] = ACTIONS(2385),
    [anon_sym_PIPE_PIPE] = ACTIONS(2385),
    [anon_sym_DASH] = ACTIONS(2374),
    [anon_sym_DASH_EQ] = ACTIONS(2385),
    [anon_sym_DASH_DASH] = ACTIONS(2385),
    [anon_sym_PLUS] = ACTIONS(2374),
    [anon_sym_PLUS_EQ] = ACTIONS(2385),
    [anon_sym_PLUS_PLUS] = ACTIONS(2385),
    [anon_sym_LT] = ACTIONS(2374),
    [anon_sym_LT_EQ] = ACTIONS(2385),
    [anon_sym_LT_LT] = ACTIONS(2374),
    [anon_sym_LT_LT_EQ] = ACTIONS(2385),
    [anon_sym_GT] = ACTIONS(2374),
    [anon_sym_GT_EQ] = ACTIONS(2385),
    [anon_sym_GT_GT_EQ] = ACTIONS(2385),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2385),
    [anon_sym_GT_GT] = ACTIONS(2374),
    [anon_sym_GT_GT_GT] = ACTIONS(2374),
    [anon_sym_BANG] = ACTIONS(2374),
    [anon_sym_BANG_EQ] = ACTIONS(2385),
    [anon_sym_LPAREN] = ACTIONS(2385),
    [anon_sym_RPAREN] = ACTIONS(2385),
    [anon_sym_LBRACK] = ACTIONS(2385),
    [anon_sym_RBRACK] = ACTIONS(2385),
    [anon_sym_QMARK] = ACTIONS(2385),
    [anon_sym_COMMA] = ACTIONS(2385),
    [anon_sym_SEMI] = ACTIONS(2385),
    [anon_sym_COLON] = ACTIONS(2385),
    [anon_sym_DOLLAR] = ACTIONS(2374),
    [anon_sym_EQ] = ACTIONS(2374),
    [anon_sym_EQ_EQ] = ACTIONS(2385),
    [anon_sym_STAR] = ACTIONS(2374),
    [anon_sym_STAR_EQ] = ACTIONS(2385),
    [anon_sym_PERCENT] = ACTIONS(2374),
    [anon_sym_PERCENT_EQ] = ACTIONS(2385),
    [anon_sym_CARET] = ACTIONS(2374),
    [anon_sym_CARET_EQ] = ACTIONS(2385),
    [anon_sym_CARET_CARET] = ACTIONS(2374),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2385),
    [anon_sym_TILDE] = ACTIONS(2374),
    [anon_sym_TILDE_EQ] = ACTIONS(2385),
    [anon_sym_AT] = ACTIONS(2385),
    [anon_sym_EQ_GT] = ACTIONS(2385),
    [anon_sym_POUND] = ACTIONS(2385),
    [anon_sym_BANGin] = ACTIONS(2385),
    [anon_sym_BANGis] = ACTIONS(2385),
    [sym_bool] = ACTIONS(2388),
    [sym_byte] = ACTIONS(2388),
    [sym_ubyte] = ACTIONS(2388),
    [sym_char] = ACTIONS(2388),
    [sym_short] = ACTIONS(2388),
    [sym_ushort] = ACTIONS(2388),
    [sym_int] = ACTIONS(2388),
    [sym_uint] = ACTIONS(2388),
    [sym_long] = ACTIONS(2388),
    [sym_ulong] = ACTIONS(2388),
    [sym_cent] = ACTIONS(2388),
    [sym_ucent] = ACTIONS(2388),
    [sym_wchar] = ACTIONS(2388),
    [sym_dchar] = ACTIONS(2388),
    [sym_float] = ACTIONS(2388),
    [sym_double] = ACTIONS(2388),
    [sym_real] = ACTIONS(2388),
    [sym_ifloat] = ACTIONS(2388),
    [sym_idouble] = ACTIONS(2388),
    [sym_ireal] = ACTIONS(2388),
    [sym_cfloat] = ACTIONS(2388),
    [sym_cdouble] = ACTIONS(2388),
    [sym_creal] = ACTIONS(2388),
    [sym_size_t] = ACTIONS(2388),
    [sym_ptrdiff_t] = ACTIONS(2388),
    [sym_string] = ACTIONS(2388),
    [sym_cstring] = ACTIONS(2388),
    [sym_dstring] = ACTIONS(2388),
    [sym_wstring] = ACTIONS(2388),
    [sym_noreturn] = ACTIONS(2388),
    [sym_true] = ACTIONS(2388),
    [sym_false] = ACTIONS(2388),
    [sym_null] = ACTIONS(2388),
    [sym_super] = ACTIONS(2388),
    [sym_this] = ACTIONS(2388),
    [sym_abstract] = ACTIONS(2388),
    [sym_alias] = ACTIONS(2388),
    [sym_align] = ACTIONS(2388),
    [sym_asm] = ACTIONS(2388),
    [sym_assert] = ACTIONS(2388),
    [sym_auto] = ACTIONS(2388),
    [sym_break] = ACTIONS(2388),
    [sym_case] = ACTIONS(2388),
    [sym_cast] = ACTIONS(2388),
    [sym_catch] = ACTIONS(2388),
    [sym_class] = ACTIONS(2388),
    [sym_const] = ACTIONS(2391),
    [sym_continue] = ACTIONS(2388),
    [sym_debug] = ACTIONS(2388),
    [sym_default] = ACTIONS(2388),
    [sym_delegate] = ACTIONS(2388),
    [sym_delete] = ACTIONS(2388),
    [sym_deprecated] = ACTIONS(2388),
    [sym_do] = ACTIONS(2388),
    [sym_else] = ACTIONS(2388),
    [sym_enum] = ACTIONS(2388),
    [sym_export] = ACTIONS(2388),
    [sym_extern] = ACTIONS(2388),
    [sym_final] = ACTIONS(2388),
    [sym_finally] = ACTIONS(2388),
    [sym_for] = ACTIONS(2388),
    [sym_foreach] = ACTIONS(2388),
    [sym_foreach_reverse] = ACTIONS(2388),
    [sym_function] = ACTIONS(2388),
    [sym_goto] = ACTIONS(2388),
    [sym_if] = ACTIONS(2388),
    [sym_immutable] = ACTIONS(2391),
    [sym_import] = ACTIONS(2388),
    [sym_in] = ACTIONS(2388),
    [sym_inout] = ACTIONS(2391),
    [sym_interface] = ACTIONS(2388),
    [sym_invariant] = ACTIONS(2388),
    [sym_is] = ACTIONS(2388),
    [sym_lazy] = ACTIONS(2388),
    [sym_mixin] = ACTIONS(2388),
    [sym_module] = ACTIONS(2388),
    [sym_new] = ACTIONS(2388),
    [sym_nothrow] = ACTIONS(2388),
    [sym_out] = ACTIONS(2388),
    [sym_override] = ACTIONS(2388),
    [sym_package] = ACTIONS(2388),
    [sym_pragma] = ACTIONS(2388),
    [sym_private] = ACTIONS(2388),
    [sym_protected] = ACTIONS(2388),
    [sym_public] = ACTIONS(2388),
    [sym_pure] = ACTIONS(2388),
    [sym_ref] = ACTIONS(2388),
    [sym_return] = ACTIONS(2388),
    [sym_scope] = ACTIONS(2388),
    [sym_shared] = ACTIONS(2391),
    [sym_static] = ACTIONS(2388),
    [sym_struct] = ACTIONS(2388),
    [sym_switch] = ACTIONS(2388),
    [sym_synchronized] = ACTIONS(2388),
    [sym_template] = ACTIONS(2388),
    [sym_throw] = ACTIONS(2388),
    [sym_try] = ACTIONS(2388),
    [sym_typeid] = ACTIONS(2388),
    [sym_typeof] = ACTIONS(2388),
    [sym_union] = ACTIONS(2388),
    [sym_unittest] = ACTIONS(2388),
    [sym_version] = ACTIONS(2388),
    [sym_while] = ACTIONS(2388),
    [sym_with] = ACTIONS(2388),
    [sym_parameters_] = ACTIONS(2388),
    [sym_gshared] = ACTIONS(2388),
    [sym_traits] = ACTIONS(2388),
    [sym_vector] = ACTIONS(2388),
    [sym_void] = ACTIONS(2388),
    [anon_sym_BQUOTE] = ACTIONS(2394),
    [anon_sym_r_DQUOTE] = ACTIONS(2397),
    [anon_sym_x_DQUOTE] = ACTIONS(2400),
    [anon_sym_DQUOTE] = ACTIONS(2403),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2406),
    [anon_sym_i_BQUOTE] = ACTIONS(2409),
    [anon_sym_i_DQUOTE] = ACTIONS(2412),
    [anon_sym_iq_LBRACE] = ACTIONS(2415),
    [aux_sym_char_literal_token1] = ACTIONS(2418),
    [anon_sym_SQUOTE] = ACTIONS(2421),
    [anon_sym___DATE__] = ACTIONS(2424),
    [anon_sym___FILE__] = ACTIONS(2424),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2424),
    [anon_sym___FUNCTION__] = ACTIONS(2424),
    [anon_sym___LINE__] = ACTIONS(2424),
    [anon_sym___MODULE__] = ACTIONS(2424),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2424),
    [anon_sym___TIME__] = ACTIONS(2424),
    [anon_sym___TIMESTAMP__] = ACTIONS(2424),
    [anon_sym___VENDOR__] = ACTIONS(2424),
    [anon_sym___VERSION__] = ACTIONS(2424),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2385),
    [sym_float_literal] = ACTIONS(2385),
    [sym__string] = ACTIONS(2427),
  },
  [551] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2430),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [552] = {
    [sym_token_string] = STATE(634),
    [sym__token_string_token] = STATE(550),
    [sym__token_no_braces] = STATE(550),
    [sym_keyword] = STATE(550),
    [sym_type_ctor] = STATE(635),
    [sym__builtin_type] = STATE(635),
    [sym_raw_string] = STATE(634),
    [sym_hex_string] = STATE(634),
    [sym_quoted_string] = STATE(634),
    [sym_interpolation_expression] = STATE(550),
    [sym_interpolated_raw_string] = STATE(634),
    [sym_interpolated_quoted_string] = STATE(634),
    [sym_interpolated_token_string] = STATE(634),
    [aux_sym__i_token_string_tokens] = STATE(550),
    [sym_string_literal] = STATE(550),
    [sym_char_literal] = STATE(550),
    [sym_special_keyword] = STATE(635),
    [sym_identifier] = ACTIONS(2238),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2240),
    [anon_sym_RBRACE] = ACTIONS(2432),
    [anon_sym_LBRACE] = ACTIONS(2244),
    [anon_sym_SLASH] = ACTIONS(2238),
    [anon_sym_SLASH_EQ] = ACTIONS(2246),
    [anon_sym_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT] = ACTIONS(2238),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2246),
    [anon_sym_AMP] = ACTIONS(2238),
    [anon_sym_AMP_EQ] = ACTIONS(2246),
    [anon_sym_AMP_AMP] = ACTIONS(2246),
    [anon_sym_PIPE] = ACTIONS(2238),
    [anon_sym_PIPE_EQ] = ACTIONS(2246),
    [anon_sym_PIPE_PIPE] = ACTIONS(2246),
    [anon_sym_DASH] = ACTIONS(2238),
    [anon_sym_DASH_EQ] = ACTIONS(2246),
    [anon_sym_DASH_DASH] = ACTIONS(2246),
    [anon_sym_PLUS] = ACTIONS(2238),
    [anon_sym_PLUS_EQ] = ACTIONS(2246),
    [anon_sym_PLUS_PLUS] = ACTIONS(2246),
    [anon_sym_LT] = ACTIONS(2238),
    [anon_sym_LT_EQ] = ACTIONS(2246),
    [anon_sym_LT_LT] = ACTIONS(2238),
    [anon_sym_LT_LT_EQ] = ACTIONS(2246),
    [anon_sym_GT] = ACTIONS(2238),
    [anon_sym_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2246),
    [anon_sym_GT_GT] = ACTIONS(2238),
    [anon_sym_GT_GT_GT] = ACTIONS(2238),
    [anon_sym_BANG] = ACTIONS(2238),
    [anon_sym_BANG_EQ] = ACTIONS(2246),
    [anon_sym_LPAREN] = ACTIONS(2246),
    [anon_sym_RPAREN] = ACTIONS(2246),
    [anon_sym_LBRACK] = ACTIONS(2246),
    [anon_sym_RBRACK] = ACTIONS(2246),
    [anon_sym_QMARK] = ACTIONS(2246),
    [anon_sym_COMMA] = ACTIONS(2246),
    [anon_sym_SEMI] = ACTIONS(2246),
    [anon_sym_COLON] = ACTIONS(2246),
    [anon_sym_DOLLAR] = ACTIONS(2238),
    [anon_sym_EQ] = ACTIONS(2238),
    [anon_sym_EQ_EQ] = ACTIONS(2246),
    [anon_sym_STAR] = ACTIONS(2238),
    [anon_sym_STAR_EQ] = ACTIONS(2246),
    [anon_sym_PERCENT] = ACTIONS(2238),
    [anon_sym_PERCENT_EQ] = ACTIONS(2246),
    [anon_sym_CARET] = ACTIONS(2238),
    [anon_sym_CARET_EQ] = ACTIONS(2246),
    [anon_sym_CARET_CARET] = ACTIONS(2238),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2246),
    [anon_sym_TILDE] = ACTIONS(2238),
    [anon_sym_TILDE_EQ] = ACTIONS(2246),
    [anon_sym_AT] = ACTIONS(2246),
    [anon_sym_EQ_GT] = ACTIONS(2246),
    [anon_sym_POUND] = ACTIONS(2246),
    [anon_sym_BANGin] = ACTIONS(2246),
    [anon_sym_BANGis] = ACTIONS(2246),
    [sym_bool] = ACTIONS(2248),
    [sym_byte] = ACTIONS(2248),
    [sym_ubyte] = ACTIONS(2248),
    [sym_char] = ACTIONS(2248),
    [sym_short] = ACTIONS(2248),
    [sym_ushort] = ACTIONS(2248),
    [sym_int] = ACTIONS(2248),
    [sym_uint] = ACTIONS(2248),
    [sym_long] = ACTIONS(2248),
    [sym_ulong] = ACTIONS(2248),
    [sym_cent] = ACTIONS(2248),
    [sym_ucent] = ACTIONS(2248),
    [sym_wchar] = ACTIONS(2248),
    [sym_dchar] = ACTIONS(2248),
    [sym_float] = ACTIONS(2248),
    [sym_double] = ACTIONS(2248),
    [sym_real] = ACTIONS(2248),
    [sym_ifloat] = ACTIONS(2248),
    [sym_idouble] = ACTIONS(2248),
    [sym_ireal] = ACTIONS(2248),
    [sym_cfloat] = ACTIONS(2248),
    [sym_cdouble] = ACTIONS(2248),
    [sym_creal] = ACTIONS(2248),
    [sym_size_t] = ACTIONS(2248),
    [sym_ptrdiff_t] = ACTIONS(2248),
    [sym_string] = ACTIONS(2248),
    [sym_cstring] = ACTIONS(2248),
    [sym_dstring] = ACTIONS(2248),
    [sym_wstring] = ACTIONS(2248),
    [sym_noreturn] = ACTIONS(2248),
    [sym_true] = ACTIONS(2248),
    [sym_false] = ACTIONS(2248),
    [sym_null] = ACTIONS(2248),
    [sym_super] = ACTIONS(2248),
    [sym_this] = ACTIONS(2248),
    [sym_abstract] = ACTIONS(2248),
    [sym_alias] = ACTIONS(2248),
    [sym_align] = ACTIONS(2248),
    [sym_asm] = ACTIONS(2248),
    [sym_assert] = ACTIONS(2248),
    [sym_auto] = ACTIONS(2248),
    [sym_break] = ACTIONS(2248),
    [sym_case] = ACTIONS(2248),
    [sym_cast] = ACTIONS(2248),
    [sym_catch] = ACTIONS(2248),
    [sym_class] = ACTIONS(2248),
    [sym_const] = ACTIONS(2250),
    [sym_continue] = ACTIONS(2248),
    [sym_debug] = ACTIONS(2248),
    [sym_default] = ACTIONS(2248),
    [sym_delegate] = ACTIONS(2248),
    [sym_delete] = ACTIONS(2248),
    [sym_deprecated] = ACTIONS(2248),
    [sym_do] = ACTIONS(2248),
    [sym_else] = ACTIONS(2248),
    [sym_enum] = ACTIONS(2248),
    [sym_export] = ACTIONS(2248),
    [sym_extern] = ACTIONS(2248),
    [sym_final] = ACTIONS(2248),
    [sym_finally] = ACTIONS(2248),
    [sym_for] = ACTIONS(2248),
    [sym_foreach] = ACTIONS(2248),
    [sym_foreach_reverse] = ACTIONS(2248),
    [sym_function] = ACTIONS(2248),
    [sym_goto] = ACTIONS(2248),
    [sym_if] = ACTIONS(2248),
    [sym_immutable] = ACTIONS(2250),
    [sym_import] = ACTIONS(2248),
    [sym_in] = ACTIONS(2248),
    [sym_inout] = ACTIONS(2250),
    [sym_interface] = ACTIONS(2248),
    [sym_invariant] = ACTIONS(2248),
    [sym_is] = ACTIONS(2248),
    [sym_lazy] = ACTIONS(2248),
    [sym_mixin] = ACTIONS(2248),
    [sym_module] = ACTIONS(2248),
    [sym_new] = ACTIONS(2248),
    [sym_nothrow] = ACTIONS(2248),
    [sym_out] = ACTIONS(2248),
    [sym_override] = ACTIONS(2248),
    [sym_package] = ACTIONS(2248),
    [sym_pragma] = ACTIONS(2248),
    [sym_private] = ACTIONS(2248),
    [sym_protected] = ACTIONS(2248),
    [sym_public] = ACTIONS(2248),
    [sym_pure] = ACTIONS(2248),
    [sym_ref] = ACTIONS(2248),
    [sym_return] = ACTIONS(2248),
    [sym_scope] = ACTIONS(2248),
    [sym_shared] = ACTIONS(2250),
    [sym_static] = ACTIONS(2248),
    [sym_struct] = ACTIONS(2248),
    [sym_switch] = ACTIONS(2248),
    [sym_synchronized] = ACTIONS(2248),
    [sym_template] = ACTIONS(2248),
    [sym_throw] = ACTIONS(2248),
    [sym_try] = ACTIONS(2248),
    [sym_typeid] = ACTIONS(2248),
    [sym_typeof] = ACTIONS(2248),
    [sym_union] = ACTIONS(2248),
    [sym_unittest] = ACTIONS(2248),
    [sym_version] = ACTIONS(2248),
    [sym_while] = ACTIONS(2248),
    [sym_with] = ACTIONS(2248),
    [sym_parameters_] = ACTIONS(2248),
    [sym_gshared] = ACTIONS(2248),
    [sym_traits] = ACTIONS(2248),
    [sym_vector] = ACTIONS(2248),
    [sym_void] = ACTIONS(2248),
    [anon_sym_BQUOTE] = ACTIONS(2252),
    [anon_sym_r_DQUOTE] = ACTIONS(2254),
    [anon_sym_x_DQUOTE] = ACTIONS(2256),
    [anon_sym_DQUOTE] = ACTIONS(2258),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2260),
    [anon_sym_i_BQUOTE] = ACTIONS(2262),
    [anon_sym_i_DQUOTE] = ACTIONS(2264),
    [anon_sym_iq_LBRACE] = ACTIONS(2266),
    [aux_sym_char_literal_token1] = ACTIONS(2268),
    [anon_sym_SQUOTE] = ACTIONS(2270),
    [anon_sym___DATE__] = ACTIONS(2272),
    [anon_sym___FILE__] = ACTIONS(2272),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2272),
    [anon_sym___FUNCTION__] = ACTIONS(2272),
    [anon_sym___LINE__] = ACTIONS(2272),
    [anon_sym___MODULE__] = ACTIONS(2272),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2272),
    [anon_sym___TIME__] = ACTIONS(2272),
    [anon_sym___TIMESTAMP__] = ACTIONS(2272),
    [anon_sym___VENDOR__] = ACTIONS(2272),
    [anon_sym___VERSION__] = ACTIONS(2272),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2246),
    [sym_float_literal] = ACTIONS(2246),
    [sym__string] = ACTIONS(2274),
  },
  [553] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(575),
    [sym__token_string_token] = STATE(575),
    [sym__token_no_braces] = STATE(575),
    [sym_keyword] = STATE(575),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(575),
    [sym_char_literal] = STATE(575),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2434),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2438),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2434),
    [anon_sym_SLASH_EQ] = ACTIONS(2442),
    [anon_sym_DOT] = ACTIONS(2434),
    [anon_sym_DOT_DOT] = ACTIONS(2434),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2442),
    [anon_sym_AMP] = ACTIONS(2434),
    [anon_sym_AMP_EQ] = ACTIONS(2442),
    [anon_sym_AMP_AMP] = ACTIONS(2442),
    [anon_sym_PIPE] = ACTIONS(2434),
    [anon_sym_PIPE_EQ] = ACTIONS(2442),
    [anon_sym_PIPE_PIPE] = ACTIONS(2442),
    [anon_sym_DASH] = ACTIONS(2434),
    [anon_sym_DASH_EQ] = ACTIONS(2442),
    [anon_sym_DASH_DASH] = ACTIONS(2442),
    [anon_sym_PLUS] = ACTIONS(2434),
    [anon_sym_PLUS_EQ] = ACTIONS(2442),
    [anon_sym_PLUS_PLUS] = ACTIONS(2442),
    [anon_sym_LT] = ACTIONS(2434),
    [anon_sym_LT_EQ] = ACTIONS(2442),
    [anon_sym_LT_LT] = ACTIONS(2434),
    [anon_sym_LT_LT_EQ] = ACTIONS(2442),
    [anon_sym_GT] = ACTIONS(2434),
    [anon_sym_GT_EQ] = ACTIONS(2442),
    [anon_sym_GT_GT_EQ] = ACTIONS(2442),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2442),
    [anon_sym_GT_GT] = ACTIONS(2434),
    [anon_sym_GT_GT_GT] = ACTIONS(2434),
    [anon_sym_BANG] = ACTIONS(2434),
    [anon_sym_BANG_EQ] = ACTIONS(2442),
    [anon_sym_LPAREN] = ACTIONS(2442),
    [anon_sym_RPAREN] = ACTIONS(2442),
    [anon_sym_LBRACK] = ACTIONS(2442),
    [anon_sym_RBRACK] = ACTIONS(2442),
    [anon_sym_QMARK] = ACTIONS(2442),
    [anon_sym_COMMA] = ACTIONS(2442),
    [anon_sym_SEMI] = ACTIONS(2442),
    [anon_sym_COLON] = ACTIONS(2442),
    [anon_sym_DOLLAR] = ACTIONS(2442),
    [anon_sym_EQ] = ACTIONS(2434),
    [anon_sym_EQ_EQ] = ACTIONS(2442),
    [anon_sym_STAR] = ACTIONS(2434),
    [anon_sym_STAR_EQ] = ACTIONS(2442),
    [anon_sym_PERCENT] = ACTIONS(2434),
    [anon_sym_PERCENT_EQ] = ACTIONS(2442),
    [anon_sym_CARET] = ACTIONS(2434),
    [anon_sym_CARET_EQ] = ACTIONS(2442),
    [anon_sym_CARET_CARET] = ACTIONS(2434),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2442),
    [anon_sym_TILDE] = ACTIONS(2434),
    [anon_sym_TILDE_EQ] = ACTIONS(2442),
    [anon_sym_AT] = ACTIONS(2442),
    [anon_sym_EQ_GT] = ACTIONS(2442),
    [anon_sym_POUND] = ACTIONS(2442),
    [anon_sym_BANGin] = ACTIONS(2442),
    [anon_sym_BANGis] = ACTIONS(2442),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2442),
    [sym_float_literal] = ACTIONS(2442),
    [sym__string] = ACTIONS(2468),
  },
  [554] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(571),
    [sym__token_string_token] = STATE(571),
    [sym__token_no_braces] = STATE(571),
    [sym_keyword] = STATE(571),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(571),
    [sym_char_literal] = STATE(571),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2470),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2472),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2470),
    [anon_sym_SLASH_EQ] = ACTIONS(2474),
    [anon_sym_DOT] = ACTIONS(2470),
    [anon_sym_DOT_DOT] = ACTIONS(2470),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2474),
    [anon_sym_AMP] = ACTIONS(2470),
    [anon_sym_AMP_EQ] = ACTIONS(2474),
    [anon_sym_AMP_AMP] = ACTIONS(2474),
    [anon_sym_PIPE] = ACTIONS(2470),
    [anon_sym_PIPE_EQ] = ACTIONS(2474),
    [anon_sym_PIPE_PIPE] = ACTIONS(2474),
    [anon_sym_DASH] = ACTIONS(2470),
    [anon_sym_DASH_EQ] = ACTIONS(2474),
    [anon_sym_DASH_DASH] = ACTIONS(2474),
    [anon_sym_PLUS] = ACTIONS(2470),
    [anon_sym_PLUS_EQ] = ACTIONS(2474),
    [anon_sym_PLUS_PLUS] = ACTIONS(2474),
    [anon_sym_LT] = ACTIONS(2470),
    [anon_sym_LT_EQ] = ACTIONS(2474),
    [anon_sym_LT_LT] = ACTIONS(2470),
    [anon_sym_LT_LT_EQ] = ACTIONS(2474),
    [anon_sym_GT] = ACTIONS(2470),
    [anon_sym_GT_EQ] = ACTIONS(2474),
    [anon_sym_GT_GT_EQ] = ACTIONS(2474),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2474),
    [anon_sym_GT_GT] = ACTIONS(2470),
    [anon_sym_GT_GT_GT] = ACTIONS(2470),
    [anon_sym_BANG] = ACTIONS(2470),
    [anon_sym_BANG_EQ] = ACTIONS(2474),
    [anon_sym_LPAREN] = ACTIONS(2474),
    [anon_sym_RPAREN] = ACTIONS(2474),
    [anon_sym_LBRACK] = ACTIONS(2474),
    [anon_sym_RBRACK] = ACTIONS(2474),
    [anon_sym_QMARK] = ACTIONS(2474),
    [anon_sym_COMMA] = ACTIONS(2474),
    [anon_sym_SEMI] = ACTIONS(2474),
    [anon_sym_COLON] = ACTIONS(2474),
    [anon_sym_DOLLAR] = ACTIONS(2474),
    [anon_sym_EQ] = ACTIONS(2470),
    [anon_sym_EQ_EQ] = ACTIONS(2474),
    [anon_sym_STAR] = ACTIONS(2470),
    [anon_sym_STAR_EQ] = ACTIONS(2474),
    [anon_sym_PERCENT] = ACTIONS(2470),
    [anon_sym_PERCENT_EQ] = ACTIONS(2474),
    [anon_sym_CARET] = ACTIONS(2470),
    [anon_sym_CARET_EQ] = ACTIONS(2474),
    [anon_sym_CARET_CARET] = ACTIONS(2470),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2474),
    [anon_sym_TILDE] = ACTIONS(2470),
    [anon_sym_TILDE_EQ] = ACTIONS(2474),
    [anon_sym_AT] = ACTIONS(2474),
    [anon_sym_EQ_GT] = ACTIONS(2474),
    [anon_sym_POUND] = ACTIONS(2474),
    [anon_sym_BANGin] = ACTIONS(2474),
    [anon_sym_BANGis] = ACTIONS(2474),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2474),
    [sym_float_literal] = ACTIONS(2474),
    [sym__string] = ACTIONS(2468),
  },
  [555] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2478),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [556] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2482),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [557] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2484),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [558] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(556),
    [sym__token_string_token] = STATE(556),
    [sym__token_no_braces] = STATE(556),
    [sym_keyword] = STATE(556),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(556),
    [sym_char_literal] = STATE(556),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2486),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2488),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2486),
    [anon_sym_SLASH_EQ] = ACTIONS(2490),
    [anon_sym_DOT] = ACTIONS(2486),
    [anon_sym_DOT_DOT] = ACTIONS(2486),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2490),
    [anon_sym_AMP] = ACTIONS(2486),
    [anon_sym_AMP_EQ] = ACTIONS(2490),
    [anon_sym_AMP_AMP] = ACTIONS(2490),
    [anon_sym_PIPE] = ACTIONS(2486),
    [anon_sym_PIPE_EQ] = ACTIONS(2490),
    [anon_sym_PIPE_PIPE] = ACTIONS(2490),
    [anon_sym_DASH] = ACTIONS(2486),
    [anon_sym_DASH_EQ] = ACTIONS(2490),
    [anon_sym_DASH_DASH] = ACTIONS(2490),
    [anon_sym_PLUS] = ACTIONS(2486),
    [anon_sym_PLUS_EQ] = ACTIONS(2490),
    [anon_sym_PLUS_PLUS] = ACTIONS(2490),
    [anon_sym_LT] = ACTIONS(2486),
    [anon_sym_LT_EQ] = ACTIONS(2490),
    [anon_sym_LT_LT] = ACTIONS(2486),
    [anon_sym_LT_LT_EQ] = ACTIONS(2490),
    [anon_sym_GT] = ACTIONS(2486),
    [anon_sym_GT_EQ] = ACTIONS(2490),
    [anon_sym_GT_GT_EQ] = ACTIONS(2490),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2490),
    [anon_sym_GT_GT] = ACTIONS(2486),
    [anon_sym_GT_GT_GT] = ACTIONS(2486),
    [anon_sym_BANG] = ACTIONS(2486),
    [anon_sym_BANG_EQ] = ACTIONS(2490),
    [anon_sym_LPAREN] = ACTIONS(2490),
    [anon_sym_RPAREN] = ACTIONS(2490),
    [anon_sym_LBRACK] = ACTIONS(2490),
    [anon_sym_RBRACK] = ACTIONS(2490),
    [anon_sym_QMARK] = ACTIONS(2490),
    [anon_sym_COMMA] = ACTIONS(2490),
    [anon_sym_SEMI] = ACTIONS(2490),
    [anon_sym_COLON] = ACTIONS(2490),
    [anon_sym_DOLLAR] = ACTIONS(2490),
    [anon_sym_EQ] = ACTIONS(2486),
    [anon_sym_EQ_EQ] = ACTIONS(2490),
    [anon_sym_STAR] = ACTIONS(2486),
    [anon_sym_STAR_EQ] = ACTIONS(2490),
    [anon_sym_PERCENT] = ACTIONS(2486),
    [anon_sym_PERCENT_EQ] = ACTIONS(2490),
    [anon_sym_CARET] = ACTIONS(2486),
    [anon_sym_CARET_EQ] = ACTIONS(2490),
    [anon_sym_CARET_CARET] = ACTIONS(2486),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2490),
    [anon_sym_TILDE] = ACTIONS(2486),
    [anon_sym_TILDE_EQ] = ACTIONS(2490),
    [anon_sym_AT] = ACTIONS(2490),
    [anon_sym_EQ_GT] = ACTIONS(2490),
    [anon_sym_POUND] = ACTIONS(2490),
    [anon_sym_BANGin] = ACTIONS(2490),
    [anon_sym_BANGis] = ACTIONS(2490),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2490),
    [sym_float_literal] = ACTIONS(2490),
    [sym__string] = ACTIONS(2468),
  },
  [559] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2492),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [560] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(559),
    [sym__token_string_token] = STATE(559),
    [sym__token_no_braces] = STATE(559),
    [sym_keyword] = STATE(559),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(559),
    [sym_char_literal] = STATE(559),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2494),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2496),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2494),
    [anon_sym_SLASH_EQ] = ACTIONS(2498),
    [anon_sym_DOT] = ACTIONS(2494),
    [anon_sym_DOT_DOT] = ACTIONS(2494),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2498),
    [anon_sym_AMP] = ACTIONS(2494),
    [anon_sym_AMP_EQ] = ACTIONS(2498),
    [anon_sym_AMP_AMP] = ACTIONS(2498),
    [anon_sym_PIPE] = ACTIONS(2494),
    [anon_sym_PIPE_EQ] = ACTIONS(2498),
    [anon_sym_PIPE_PIPE] = ACTIONS(2498),
    [anon_sym_DASH] = ACTIONS(2494),
    [anon_sym_DASH_EQ] = ACTIONS(2498),
    [anon_sym_DASH_DASH] = ACTIONS(2498),
    [anon_sym_PLUS] = ACTIONS(2494),
    [anon_sym_PLUS_EQ] = ACTIONS(2498),
    [anon_sym_PLUS_PLUS] = ACTIONS(2498),
    [anon_sym_LT] = ACTIONS(2494),
    [anon_sym_LT_EQ] = ACTIONS(2498),
    [anon_sym_LT_LT] = ACTIONS(2494),
    [anon_sym_LT_LT_EQ] = ACTIONS(2498),
    [anon_sym_GT] = ACTIONS(2494),
    [anon_sym_GT_EQ] = ACTIONS(2498),
    [anon_sym_GT_GT_EQ] = ACTIONS(2498),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2498),
    [anon_sym_GT_GT] = ACTIONS(2494),
    [anon_sym_GT_GT_GT] = ACTIONS(2494),
    [anon_sym_BANG] = ACTIONS(2494),
    [anon_sym_BANG_EQ] = ACTIONS(2498),
    [anon_sym_LPAREN] = ACTIONS(2498),
    [anon_sym_RPAREN] = ACTIONS(2498),
    [anon_sym_LBRACK] = ACTIONS(2498),
    [anon_sym_RBRACK] = ACTIONS(2498),
    [anon_sym_QMARK] = ACTIONS(2498),
    [anon_sym_COMMA] = ACTIONS(2498),
    [anon_sym_SEMI] = ACTIONS(2498),
    [anon_sym_COLON] = ACTIONS(2498),
    [anon_sym_DOLLAR] = ACTIONS(2498),
    [anon_sym_EQ] = ACTIONS(2494),
    [anon_sym_EQ_EQ] = ACTIONS(2498),
    [anon_sym_STAR] = ACTIONS(2494),
    [anon_sym_STAR_EQ] = ACTIONS(2498),
    [anon_sym_PERCENT] = ACTIONS(2494),
    [anon_sym_PERCENT_EQ] = ACTIONS(2498),
    [anon_sym_CARET] = ACTIONS(2494),
    [anon_sym_CARET_EQ] = ACTIONS(2498),
    [anon_sym_CARET_CARET] = ACTIONS(2494),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2498),
    [anon_sym_TILDE] = ACTIONS(2494),
    [anon_sym_TILDE_EQ] = ACTIONS(2498),
    [anon_sym_AT] = ACTIONS(2498),
    [anon_sym_EQ_GT] = ACTIONS(2498),
    [anon_sym_POUND] = ACTIONS(2498),
    [anon_sym_BANGin] = ACTIONS(2498),
    [anon_sym_BANGis] = ACTIONS(2498),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2498),
    [sym_float_literal] = ACTIONS(2498),
    [sym__string] = ACTIONS(2468),
  },
  [561] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2500),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [562] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(561),
    [sym__token_string_token] = STATE(561),
    [sym__token_no_braces] = STATE(561),
    [sym_keyword] = STATE(561),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(561),
    [sym_char_literal] = STATE(561),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2502),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2504),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2502),
    [anon_sym_SLASH_EQ] = ACTIONS(2506),
    [anon_sym_DOT] = ACTIONS(2502),
    [anon_sym_DOT_DOT] = ACTIONS(2502),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2506),
    [anon_sym_AMP] = ACTIONS(2502),
    [anon_sym_AMP_EQ] = ACTIONS(2506),
    [anon_sym_AMP_AMP] = ACTIONS(2506),
    [anon_sym_PIPE] = ACTIONS(2502),
    [anon_sym_PIPE_EQ] = ACTIONS(2506),
    [anon_sym_PIPE_PIPE] = ACTIONS(2506),
    [anon_sym_DASH] = ACTIONS(2502),
    [anon_sym_DASH_EQ] = ACTIONS(2506),
    [anon_sym_DASH_DASH] = ACTIONS(2506),
    [anon_sym_PLUS] = ACTIONS(2502),
    [anon_sym_PLUS_EQ] = ACTIONS(2506),
    [anon_sym_PLUS_PLUS] = ACTIONS(2506),
    [anon_sym_LT] = ACTIONS(2502),
    [anon_sym_LT_EQ] = ACTIONS(2506),
    [anon_sym_LT_LT] = ACTIONS(2502),
    [anon_sym_LT_LT_EQ] = ACTIONS(2506),
    [anon_sym_GT] = ACTIONS(2502),
    [anon_sym_GT_EQ] = ACTIONS(2506),
    [anon_sym_GT_GT_EQ] = ACTIONS(2506),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2506),
    [anon_sym_GT_GT] = ACTIONS(2502),
    [anon_sym_GT_GT_GT] = ACTIONS(2502),
    [anon_sym_BANG] = ACTIONS(2502),
    [anon_sym_BANG_EQ] = ACTIONS(2506),
    [anon_sym_LPAREN] = ACTIONS(2506),
    [anon_sym_RPAREN] = ACTIONS(2506),
    [anon_sym_LBRACK] = ACTIONS(2506),
    [anon_sym_RBRACK] = ACTIONS(2506),
    [anon_sym_QMARK] = ACTIONS(2506),
    [anon_sym_COMMA] = ACTIONS(2506),
    [anon_sym_SEMI] = ACTIONS(2506),
    [anon_sym_COLON] = ACTIONS(2506),
    [anon_sym_DOLLAR] = ACTIONS(2506),
    [anon_sym_EQ] = ACTIONS(2502),
    [anon_sym_EQ_EQ] = ACTIONS(2506),
    [anon_sym_STAR] = ACTIONS(2502),
    [anon_sym_STAR_EQ] = ACTIONS(2506),
    [anon_sym_PERCENT] = ACTIONS(2502),
    [anon_sym_PERCENT_EQ] = ACTIONS(2506),
    [anon_sym_CARET] = ACTIONS(2502),
    [anon_sym_CARET_EQ] = ACTIONS(2506),
    [anon_sym_CARET_CARET] = ACTIONS(2502),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2506),
    [anon_sym_TILDE] = ACTIONS(2502),
    [anon_sym_TILDE_EQ] = ACTIONS(2506),
    [anon_sym_AT] = ACTIONS(2506),
    [anon_sym_EQ_GT] = ACTIONS(2506),
    [anon_sym_POUND] = ACTIONS(2506),
    [anon_sym_BANGin] = ACTIONS(2506),
    [anon_sym_BANGis] = ACTIONS(2506),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2506),
    [sym_float_literal] = ACTIONS(2506),
    [sym__string] = ACTIONS(2468),
  },
  [563] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(570),
    [sym__token_string_token] = STATE(570),
    [sym__token_no_braces] = STATE(570),
    [sym_keyword] = STATE(570),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(570),
    [sym_char_literal] = STATE(570),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2508),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2510),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2508),
    [anon_sym_SLASH_EQ] = ACTIONS(2512),
    [anon_sym_DOT] = ACTIONS(2508),
    [anon_sym_DOT_DOT] = ACTIONS(2508),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2512),
    [anon_sym_AMP] = ACTIONS(2508),
    [anon_sym_AMP_EQ] = ACTIONS(2512),
    [anon_sym_AMP_AMP] = ACTIONS(2512),
    [anon_sym_PIPE] = ACTIONS(2508),
    [anon_sym_PIPE_EQ] = ACTIONS(2512),
    [anon_sym_PIPE_PIPE] = ACTIONS(2512),
    [anon_sym_DASH] = ACTIONS(2508),
    [anon_sym_DASH_EQ] = ACTIONS(2512),
    [anon_sym_DASH_DASH] = ACTIONS(2512),
    [anon_sym_PLUS] = ACTIONS(2508),
    [anon_sym_PLUS_EQ] = ACTIONS(2512),
    [anon_sym_PLUS_PLUS] = ACTIONS(2512),
    [anon_sym_LT] = ACTIONS(2508),
    [anon_sym_LT_EQ] = ACTIONS(2512),
    [anon_sym_LT_LT] = ACTIONS(2508),
    [anon_sym_LT_LT_EQ] = ACTIONS(2512),
    [anon_sym_GT] = ACTIONS(2508),
    [anon_sym_GT_EQ] = ACTIONS(2512),
    [anon_sym_GT_GT_EQ] = ACTIONS(2512),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2512),
    [anon_sym_GT_GT] = ACTIONS(2508),
    [anon_sym_GT_GT_GT] = ACTIONS(2508),
    [anon_sym_BANG] = ACTIONS(2508),
    [anon_sym_BANG_EQ] = ACTIONS(2512),
    [anon_sym_LPAREN] = ACTIONS(2512),
    [anon_sym_RPAREN] = ACTIONS(2512),
    [anon_sym_LBRACK] = ACTIONS(2512),
    [anon_sym_RBRACK] = ACTIONS(2512),
    [anon_sym_QMARK] = ACTIONS(2512),
    [anon_sym_COMMA] = ACTIONS(2512),
    [anon_sym_SEMI] = ACTIONS(2512),
    [anon_sym_COLON] = ACTIONS(2512),
    [anon_sym_DOLLAR] = ACTIONS(2512),
    [anon_sym_EQ] = ACTIONS(2508),
    [anon_sym_EQ_EQ] = ACTIONS(2512),
    [anon_sym_STAR] = ACTIONS(2508),
    [anon_sym_STAR_EQ] = ACTIONS(2512),
    [anon_sym_PERCENT] = ACTIONS(2508),
    [anon_sym_PERCENT_EQ] = ACTIONS(2512),
    [anon_sym_CARET] = ACTIONS(2508),
    [anon_sym_CARET_EQ] = ACTIONS(2512),
    [anon_sym_CARET_CARET] = ACTIONS(2508),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2512),
    [anon_sym_TILDE] = ACTIONS(2508),
    [anon_sym_TILDE_EQ] = ACTIONS(2512),
    [anon_sym_AT] = ACTIONS(2512),
    [anon_sym_EQ_GT] = ACTIONS(2512),
    [anon_sym_POUND] = ACTIONS(2512),
    [anon_sym_BANGin] = ACTIONS(2512),
    [anon_sym_BANGis] = ACTIONS(2512),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2512),
    [sym_float_literal] = ACTIONS(2512),
    [sym__string] = ACTIONS(2468),
  },
  [564] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2514),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [565] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(578),
    [sym__token_string_token] = STATE(578),
    [sym__token_no_braces] = STATE(578),
    [sym_keyword] = STATE(578),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(578),
    [sym_char_literal] = STATE(578),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2516),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2518),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2516),
    [anon_sym_SLASH_EQ] = ACTIONS(2520),
    [anon_sym_DOT] = ACTIONS(2516),
    [anon_sym_DOT_DOT] = ACTIONS(2516),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2520),
    [anon_sym_AMP] = ACTIONS(2516),
    [anon_sym_AMP_EQ] = ACTIONS(2520),
    [anon_sym_AMP_AMP] = ACTIONS(2520),
    [anon_sym_PIPE] = ACTIONS(2516),
    [anon_sym_PIPE_EQ] = ACTIONS(2520),
    [anon_sym_PIPE_PIPE] = ACTIONS(2520),
    [anon_sym_DASH] = ACTIONS(2516),
    [anon_sym_DASH_EQ] = ACTIONS(2520),
    [anon_sym_DASH_DASH] = ACTIONS(2520),
    [anon_sym_PLUS] = ACTIONS(2516),
    [anon_sym_PLUS_EQ] = ACTIONS(2520),
    [anon_sym_PLUS_PLUS] = ACTIONS(2520),
    [anon_sym_LT] = ACTIONS(2516),
    [anon_sym_LT_EQ] = ACTIONS(2520),
    [anon_sym_LT_LT] = ACTIONS(2516),
    [anon_sym_LT_LT_EQ] = ACTIONS(2520),
    [anon_sym_GT] = ACTIONS(2516),
    [anon_sym_GT_EQ] = ACTIONS(2520),
    [anon_sym_GT_GT_EQ] = ACTIONS(2520),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2520),
    [anon_sym_GT_GT] = ACTIONS(2516),
    [anon_sym_GT_GT_GT] = ACTIONS(2516),
    [anon_sym_BANG] = ACTIONS(2516),
    [anon_sym_BANG_EQ] = ACTIONS(2520),
    [anon_sym_LPAREN] = ACTIONS(2520),
    [anon_sym_RPAREN] = ACTIONS(2520),
    [anon_sym_LBRACK] = ACTIONS(2520),
    [anon_sym_RBRACK] = ACTIONS(2520),
    [anon_sym_QMARK] = ACTIONS(2520),
    [anon_sym_COMMA] = ACTIONS(2520),
    [anon_sym_SEMI] = ACTIONS(2520),
    [anon_sym_COLON] = ACTIONS(2520),
    [anon_sym_DOLLAR] = ACTIONS(2520),
    [anon_sym_EQ] = ACTIONS(2516),
    [anon_sym_EQ_EQ] = ACTIONS(2520),
    [anon_sym_STAR] = ACTIONS(2516),
    [anon_sym_STAR_EQ] = ACTIONS(2520),
    [anon_sym_PERCENT] = ACTIONS(2516),
    [anon_sym_PERCENT_EQ] = ACTIONS(2520),
    [anon_sym_CARET] = ACTIONS(2516),
    [anon_sym_CARET_EQ] = ACTIONS(2520),
    [anon_sym_CARET_CARET] = ACTIONS(2516),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2520),
    [anon_sym_TILDE] = ACTIONS(2516),
    [anon_sym_TILDE_EQ] = ACTIONS(2520),
    [anon_sym_AT] = ACTIONS(2520),
    [anon_sym_EQ_GT] = ACTIONS(2520),
    [anon_sym_POUND] = ACTIONS(2520),
    [anon_sym_BANGin] = ACTIONS(2520),
    [anon_sym_BANGis] = ACTIONS(2520),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2520),
    [sym_float_literal] = ACTIONS(2520),
    [sym__string] = ACTIONS(2468),
  },
  [566] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2522),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2525),
    [anon_sym_RBRACE] = ACTIONS(2528),
    [anon_sym_LBRACE] = ACTIONS(2530),
    [anon_sym_SLASH] = ACTIONS(2522),
    [anon_sym_SLASH_EQ] = ACTIONS(2533),
    [anon_sym_DOT] = ACTIONS(2522),
    [anon_sym_DOT_DOT] = ACTIONS(2522),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2533),
    [anon_sym_AMP] = ACTIONS(2522),
    [anon_sym_AMP_EQ] = ACTIONS(2533),
    [anon_sym_AMP_AMP] = ACTIONS(2533),
    [anon_sym_PIPE] = ACTIONS(2522),
    [anon_sym_PIPE_EQ] = ACTIONS(2533),
    [anon_sym_PIPE_PIPE] = ACTIONS(2533),
    [anon_sym_DASH] = ACTIONS(2522),
    [anon_sym_DASH_EQ] = ACTIONS(2533),
    [anon_sym_DASH_DASH] = ACTIONS(2533),
    [anon_sym_PLUS] = ACTIONS(2522),
    [anon_sym_PLUS_EQ] = ACTIONS(2533),
    [anon_sym_PLUS_PLUS] = ACTIONS(2533),
    [anon_sym_LT] = ACTIONS(2522),
    [anon_sym_LT_EQ] = ACTIONS(2533),
    [anon_sym_LT_LT] = ACTIONS(2522),
    [anon_sym_LT_LT_EQ] = ACTIONS(2533),
    [anon_sym_GT] = ACTIONS(2522),
    [anon_sym_GT_EQ] = ACTIONS(2533),
    [anon_sym_GT_GT_EQ] = ACTIONS(2533),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2533),
    [anon_sym_GT_GT] = ACTIONS(2522),
    [anon_sym_GT_GT_GT] = ACTIONS(2522),
    [anon_sym_BANG] = ACTIONS(2522),
    [anon_sym_BANG_EQ] = ACTIONS(2533),
    [anon_sym_LPAREN] = ACTIONS(2533),
    [anon_sym_RPAREN] = ACTIONS(2533),
    [anon_sym_LBRACK] = ACTIONS(2533),
    [anon_sym_RBRACK] = ACTIONS(2533),
    [anon_sym_QMARK] = ACTIONS(2533),
    [anon_sym_COMMA] = ACTIONS(2533),
    [anon_sym_SEMI] = ACTIONS(2533),
    [anon_sym_COLON] = ACTIONS(2533),
    [anon_sym_DOLLAR] = ACTIONS(2533),
    [anon_sym_EQ] = ACTIONS(2522),
    [anon_sym_EQ_EQ] = ACTIONS(2533),
    [anon_sym_STAR] = ACTIONS(2522),
    [anon_sym_STAR_EQ] = ACTIONS(2533),
    [anon_sym_PERCENT] = ACTIONS(2522),
    [anon_sym_PERCENT_EQ] = ACTIONS(2533),
    [anon_sym_CARET] = ACTIONS(2522),
    [anon_sym_CARET_EQ] = ACTIONS(2533),
    [anon_sym_CARET_CARET] = ACTIONS(2522),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2533),
    [anon_sym_TILDE] = ACTIONS(2522),
    [anon_sym_TILDE_EQ] = ACTIONS(2533),
    [anon_sym_AT] = ACTIONS(2533),
    [anon_sym_EQ_GT] = ACTIONS(2533),
    [anon_sym_POUND] = ACTIONS(2533),
    [anon_sym_BANGin] = ACTIONS(2533),
    [anon_sym_BANGis] = ACTIONS(2533),
    [sym_bool] = ACTIONS(2536),
    [sym_byte] = ACTIONS(2536),
    [sym_ubyte] = ACTIONS(2536),
    [sym_char] = ACTIONS(2536),
    [sym_short] = ACTIONS(2536),
    [sym_ushort] = ACTIONS(2536),
    [sym_int] = ACTIONS(2536),
    [sym_uint] = ACTIONS(2536),
    [sym_long] = ACTIONS(2536),
    [sym_ulong] = ACTIONS(2536),
    [sym_cent] = ACTIONS(2536),
    [sym_ucent] = ACTIONS(2536),
    [sym_wchar] = ACTIONS(2536),
    [sym_dchar] = ACTIONS(2536),
    [sym_float] = ACTIONS(2536),
    [sym_double] = ACTIONS(2536),
    [sym_real] = ACTIONS(2536),
    [sym_ifloat] = ACTIONS(2536),
    [sym_idouble] = ACTIONS(2536),
    [sym_ireal] = ACTIONS(2536),
    [sym_cfloat] = ACTIONS(2536),
    [sym_cdouble] = ACTIONS(2536),
    [sym_creal] = ACTIONS(2536),
    [sym_size_t] = ACTIONS(2536),
    [sym_ptrdiff_t] = ACTIONS(2536),
    [sym_string] = ACTIONS(2536),
    [sym_cstring] = ACTIONS(2536),
    [sym_dstring] = ACTIONS(2536),
    [sym_wstring] = ACTIONS(2536),
    [sym_noreturn] = ACTIONS(2536),
    [sym_true] = ACTIONS(2536),
    [sym_false] = ACTIONS(2536),
    [sym_null] = ACTIONS(2536),
    [sym_super] = ACTIONS(2536),
    [sym_this] = ACTIONS(2536),
    [sym_abstract] = ACTIONS(2536),
    [sym_alias] = ACTIONS(2536),
    [sym_align] = ACTIONS(2536),
    [sym_asm] = ACTIONS(2536),
    [sym_assert] = ACTIONS(2536),
    [sym_auto] = ACTIONS(2536),
    [sym_break] = ACTIONS(2536),
    [sym_case] = ACTIONS(2536),
    [sym_cast] = ACTIONS(2536),
    [sym_catch] = ACTIONS(2536),
    [sym_class] = ACTIONS(2536),
    [sym_const] = ACTIONS(2539),
    [sym_continue] = ACTIONS(2536),
    [sym_debug] = ACTIONS(2536),
    [sym_default] = ACTIONS(2536),
    [sym_delegate] = ACTIONS(2536),
    [sym_delete] = ACTIONS(2536),
    [sym_deprecated] = ACTIONS(2536),
    [sym_do] = ACTIONS(2536),
    [sym_else] = ACTIONS(2536),
    [sym_enum] = ACTIONS(2536),
    [sym_export] = ACTIONS(2536),
    [sym_extern] = ACTIONS(2536),
    [sym_final] = ACTIONS(2536),
    [sym_finally] = ACTIONS(2536),
    [sym_for] = ACTIONS(2536),
    [sym_foreach] = ACTIONS(2536),
    [sym_foreach_reverse] = ACTIONS(2536),
    [sym_function] = ACTIONS(2536),
    [sym_goto] = ACTIONS(2536),
    [sym_if] = ACTIONS(2536),
    [sym_immutable] = ACTIONS(2539),
    [sym_import] = ACTIONS(2536),
    [sym_in] = ACTIONS(2536),
    [sym_inout] = ACTIONS(2539),
    [sym_interface] = ACTIONS(2536),
    [sym_invariant] = ACTIONS(2536),
    [sym_is] = ACTIONS(2536),
    [sym_lazy] = ACTIONS(2536),
    [sym_mixin] = ACTIONS(2536),
    [sym_module] = ACTIONS(2536),
    [sym_new] = ACTIONS(2536),
    [sym_nothrow] = ACTIONS(2536),
    [sym_out] = ACTIONS(2536),
    [sym_override] = ACTIONS(2536),
    [sym_package] = ACTIONS(2536),
    [sym_pragma] = ACTIONS(2536),
    [sym_private] = ACTIONS(2536),
    [sym_protected] = ACTIONS(2536),
    [sym_public] = ACTIONS(2536),
    [sym_pure] = ACTIONS(2536),
    [sym_ref] = ACTIONS(2536),
    [sym_return] = ACTIONS(2536),
    [sym_scope] = ACTIONS(2536),
    [sym_shared] = ACTIONS(2539),
    [sym_static] = ACTIONS(2536),
    [sym_struct] = ACTIONS(2536),
    [sym_switch] = ACTIONS(2536),
    [sym_synchronized] = ACTIONS(2536),
    [sym_template] = ACTIONS(2536),
    [sym_throw] = ACTIONS(2536),
    [sym_try] = ACTIONS(2536),
    [sym_typeid] = ACTIONS(2536),
    [sym_typeof] = ACTIONS(2536),
    [sym_union] = ACTIONS(2536),
    [sym_unittest] = ACTIONS(2536),
    [sym_version] = ACTIONS(2536),
    [sym_while] = ACTIONS(2536),
    [sym_with] = ACTIONS(2536),
    [sym_parameters_] = ACTIONS(2536),
    [sym_gshared] = ACTIONS(2536),
    [sym_traits] = ACTIONS(2536),
    [sym_vector] = ACTIONS(2536),
    [sym_void] = ACTIONS(2536),
    [anon_sym_BQUOTE] = ACTIONS(2542),
    [anon_sym_r_DQUOTE] = ACTIONS(2545),
    [anon_sym_x_DQUOTE] = ACTIONS(2548),
    [anon_sym_DQUOTE] = ACTIONS(2551),
    [anon_sym_i_BQUOTE] = ACTIONS(2554),
    [anon_sym_i_DQUOTE] = ACTIONS(2557),
    [anon_sym_iq_LBRACE] = ACTIONS(2560),
    [aux_sym_char_literal_token1] = ACTIONS(2563),
    [anon_sym_SQUOTE] = ACTIONS(2566),
    [anon_sym___DATE__] = ACTIONS(2569),
    [anon_sym___FILE__] = ACTIONS(2569),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2569),
    [anon_sym___FUNCTION__] = ACTIONS(2569),
    [anon_sym___LINE__] = ACTIONS(2569),
    [anon_sym___MODULE__] = ACTIONS(2569),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2569),
    [anon_sym___TIME__] = ACTIONS(2569),
    [anon_sym___TIMESTAMP__] = ACTIONS(2569),
    [anon_sym___VENDOR__] = ACTIONS(2569),
    [anon_sym___VERSION__] = ACTIONS(2569),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2533),
    [sym_float_literal] = ACTIONS(2533),
    [sym__string] = ACTIONS(2572),
  },
  [567] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(564),
    [sym__token_string_token] = STATE(564),
    [sym__token_no_braces] = STATE(564),
    [sym_keyword] = STATE(564),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(564),
    [sym_char_literal] = STATE(564),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2575),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2577),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2575),
    [anon_sym_SLASH_EQ] = ACTIONS(2579),
    [anon_sym_DOT] = ACTIONS(2575),
    [anon_sym_DOT_DOT] = ACTIONS(2575),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2579),
    [anon_sym_AMP] = ACTIONS(2575),
    [anon_sym_AMP_EQ] = ACTIONS(2579),
    [anon_sym_AMP_AMP] = ACTIONS(2579),
    [anon_sym_PIPE] = ACTIONS(2575),
    [anon_sym_PIPE_EQ] = ACTIONS(2579),
    [anon_sym_PIPE_PIPE] = ACTIONS(2579),
    [anon_sym_DASH] = ACTIONS(2575),
    [anon_sym_DASH_EQ] = ACTIONS(2579),
    [anon_sym_DASH_DASH] = ACTIONS(2579),
    [anon_sym_PLUS] = ACTIONS(2575),
    [anon_sym_PLUS_EQ] = ACTIONS(2579),
    [anon_sym_PLUS_PLUS] = ACTIONS(2579),
    [anon_sym_LT] = ACTIONS(2575),
    [anon_sym_LT_EQ] = ACTIONS(2579),
    [anon_sym_LT_LT] = ACTIONS(2575),
    [anon_sym_LT_LT_EQ] = ACTIONS(2579),
    [anon_sym_GT] = ACTIONS(2575),
    [anon_sym_GT_EQ] = ACTIONS(2579),
    [anon_sym_GT_GT_EQ] = ACTIONS(2579),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2579),
    [anon_sym_GT_GT] = ACTIONS(2575),
    [anon_sym_GT_GT_GT] = ACTIONS(2575),
    [anon_sym_BANG] = ACTIONS(2575),
    [anon_sym_BANG_EQ] = ACTIONS(2579),
    [anon_sym_LPAREN] = ACTIONS(2579),
    [anon_sym_RPAREN] = ACTIONS(2579),
    [anon_sym_LBRACK] = ACTIONS(2579),
    [anon_sym_RBRACK] = ACTIONS(2579),
    [anon_sym_QMARK] = ACTIONS(2579),
    [anon_sym_COMMA] = ACTIONS(2579),
    [anon_sym_SEMI] = ACTIONS(2579),
    [anon_sym_COLON] = ACTIONS(2579),
    [anon_sym_DOLLAR] = ACTIONS(2579),
    [anon_sym_EQ] = ACTIONS(2575),
    [anon_sym_EQ_EQ] = ACTIONS(2579),
    [anon_sym_STAR] = ACTIONS(2575),
    [anon_sym_STAR_EQ] = ACTIONS(2579),
    [anon_sym_PERCENT] = ACTIONS(2575),
    [anon_sym_PERCENT_EQ] = ACTIONS(2579),
    [anon_sym_CARET] = ACTIONS(2575),
    [anon_sym_CARET_EQ] = ACTIONS(2579),
    [anon_sym_CARET_CARET] = ACTIONS(2575),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2579),
    [anon_sym_TILDE] = ACTIONS(2575),
    [anon_sym_TILDE_EQ] = ACTIONS(2579),
    [anon_sym_AT] = ACTIONS(2579),
    [anon_sym_EQ_GT] = ACTIONS(2579),
    [anon_sym_POUND] = ACTIONS(2579),
    [anon_sym_BANGin] = ACTIONS(2579),
    [anon_sym_BANGis] = ACTIONS(2579),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2579),
    [sym_float_literal] = ACTIONS(2579),
    [sym__string] = ACTIONS(2468),
  },
  [568] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2581),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [569] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(568),
    [sym__token_string_token] = STATE(568),
    [sym__token_no_braces] = STATE(568),
    [sym_keyword] = STATE(568),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(568),
    [sym_char_literal] = STATE(568),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2583),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2585),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2583),
    [anon_sym_SLASH_EQ] = ACTIONS(2587),
    [anon_sym_DOT] = ACTIONS(2583),
    [anon_sym_DOT_DOT] = ACTIONS(2583),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2587),
    [anon_sym_AMP] = ACTIONS(2583),
    [anon_sym_AMP_EQ] = ACTIONS(2587),
    [anon_sym_AMP_AMP] = ACTIONS(2587),
    [anon_sym_PIPE] = ACTIONS(2583),
    [anon_sym_PIPE_EQ] = ACTIONS(2587),
    [anon_sym_PIPE_PIPE] = ACTIONS(2587),
    [anon_sym_DASH] = ACTIONS(2583),
    [anon_sym_DASH_EQ] = ACTIONS(2587),
    [anon_sym_DASH_DASH] = ACTIONS(2587),
    [anon_sym_PLUS] = ACTIONS(2583),
    [anon_sym_PLUS_EQ] = ACTIONS(2587),
    [anon_sym_PLUS_PLUS] = ACTIONS(2587),
    [anon_sym_LT] = ACTIONS(2583),
    [anon_sym_LT_EQ] = ACTIONS(2587),
    [anon_sym_LT_LT] = ACTIONS(2583),
    [anon_sym_LT_LT_EQ] = ACTIONS(2587),
    [anon_sym_GT] = ACTIONS(2583),
    [anon_sym_GT_EQ] = ACTIONS(2587),
    [anon_sym_GT_GT_EQ] = ACTIONS(2587),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2587),
    [anon_sym_GT_GT] = ACTIONS(2583),
    [anon_sym_GT_GT_GT] = ACTIONS(2583),
    [anon_sym_BANG] = ACTIONS(2583),
    [anon_sym_BANG_EQ] = ACTIONS(2587),
    [anon_sym_LPAREN] = ACTIONS(2587),
    [anon_sym_RPAREN] = ACTIONS(2587),
    [anon_sym_LBRACK] = ACTIONS(2587),
    [anon_sym_RBRACK] = ACTIONS(2587),
    [anon_sym_QMARK] = ACTIONS(2587),
    [anon_sym_COMMA] = ACTIONS(2587),
    [anon_sym_SEMI] = ACTIONS(2587),
    [anon_sym_COLON] = ACTIONS(2587),
    [anon_sym_DOLLAR] = ACTIONS(2587),
    [anon_sym_EQ] = ACTIONS(2583),
    [anon_sym_EQ_EQ] = ACTIONS(2587),
    [anon_sym_STAR] = ACTIONS(2583),
    [anon_sym_STAR_EQ] = ACTIONS(2587),
    [anon_sym_PERCENT] = ACTIONS(2583),
    [anon_sym_PERCENT_EQ] = ACTIONS(2587),
    [anon_sym_CARET] = ACTIONS(2583),
    [anon_sym_CARET_EQ] = ACTIONS(2587),
    [anon_sym_CARET_CARET] = ACTIONS(2583),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2587),
    [anon_sym_TILDE] = ACTIONS(2583),
    [anon_sym_TILDE_EQ] = ACTIONS(2587),
    [anon_sym_AT] = ACTIONS(2587),
    [anon_sym_EQ_GT] = ACTIONS(2587),
    [anon_sym_POUND] = ACTIONS(2587),
    [anon_sym_BANGin] = ACTIONS(2587),
    [anon_sym_BANGis] = ACTIONS(2587),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2587),
    [sym_float_literal] = ACTIONS(2587),
    [sym__string] = ACTIONS(2468),
  },
  [570] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2589),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [571] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2591),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [572] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(557),
    [sym__token_string_token] = STATE(557),
    [sym__token_no_braces] = STATE(557),
    [sym_keyword] = STATE(557),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(557),
    [sym_char_literal] = STATE(557),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2595),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2593),
    [anon_sym_SLASH_EQ] = ACTIONS(2597),
    [anon_sym_DOT] = ACTIONS(2593),
    [anon_sym_DOT_DOT] = ACTIONS(2593),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2597),
    [anon_sym_AMP] = ACTIONS(2593),
    [anon_sym_AMP_EQ] = ACTIONS(2597),
    [anon_sym_AMP_AMP] = ACTIONS(2597),
    [anon_sym_PIPE] = ACTIONS(2593),
    [anon_sym_PIPE_EQ] = ACTIONS(2597),
    [anon_sym_PIPE_PIPE] = ACTIONS(2597),
    [anon_sym_DASH] = ACTIONS(2593),
    [anon_sym_DASH_EQ] = ACTIONS(2597),
    [anon_sym_DASH_DASH] = ACTIONS(2597),
    [anon_sym_PLUS] = ACTIONS(2593),
    [anon_sym_PLUS_EQ] = ACTIONS(2597),
    [anon_sym_PLUS_PLUS] = ACTIONS(2597),
    [anon_sym_LT] = ACTIONS(2593),
    [anon_sym_LT_EQ] = ACTIONS(2597),
    [anon_sym_LT_LT] = ACTIONS(2593),
    [anon_sym_LT_LT_EQ] = ACTIONS(2597),
    [anon_sym_GT] = ACTIONS(2593),
    [anon_sym_GT_EQ] = ACTIONS(2597),
    [anon_sym_GT_GT_EQ] = ACTIONS(2597),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2597),
    [anon_sym_GT_GT] = ACTIONS(2593),
    [anon_sym_GT_GT_GT] = ACTIONS(2593),
    [anon_sym_BANG] = ACTIONS(2593),
    [anon_sym_BANG_EQ] = ACTIONS(2597),
    [anon_sym_LPAREN] = ACTIONS(2597),
    [anon_sym_RPAREN] = ACTIONS(2597),
    [anon_sym_LBRACK] = ACTIONS(2597),
    [anon_sym_RBRACK] = ACTIONS(2597),
    [anon_sym_QMARK] = ACTIONS(2597),
    [anon_sym_COMMA] = ACTIONS(2597),
    [anon_sym_SEMI] = ACTIONS(2597),
    [anon_sym_COLON] = ACTIONS(2597),
    [anon_sym_DOLLAR] = ACTIONS(2597),
    [anon_sym_EQ] = ACTIONS(2593),
    [anon_sym_EQ_EQ] = ACTIONS(2597),
    [anon_sym_STAR] = ACTIONS(2593),
    [anon_sym_STAR_EQ] = ACTIONS(2597),
    [anon_sym_PERCENT] = ACTIONS(2593),
    [anon_sym_PERCENT_EQ] = ACTIONS(2597),
    [anon_sym_CARET] = ACTIONS(2593),
    [anon_sym_CARET_EQ] = ACTIONS(2597),
    [anon_sym_CARET_CARET] = ACTIONS(2593),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2597),
    [anon_sym_TILDE] = ACTIONS(2593),
    [anon_sym_TILDE_EQ] = ACTIONS(2597),
    [anon_sym_AT] = ACTIONS(2597),
    [anon_sym_EQ_GT] = ACTIONS(2597),
    [anon_sym_POUND] = ACTIONS(2597),
    [anon_sym_BANGin] = ACTIONS(2597),
    [anon_sym_BANGis] = ACTIONS(2597),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2597),
    [sym_float_literal] = ACTIONS(2597),
    [sym__string] = ACTIONS(2468),
  },
  [573] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(581),
    [sym__token_string_token] = STATE(581),
    [sym__token_no_braces] = STATE(581),
    [sym_keyword] = STATE(581),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(581),
    [sym_char_literal] = STATE(581),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2599),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2601),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2599),
    [anon_sym_SLASH_EQ] = ACTIONS(2603),
    [anon_sym_DOT] = ACTIONS(2599),
    [anon_sym_DOT_DOT] = ACTIONS(2599),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2603),
    [anon_sym_AMP] = ACTIONS(2599),
    [anon_sym_AMP_EQ] = ACTIONS(2603),
    [anon_sym_AMP_AMP] = ACTIONS(2603),
    [anon_sym_PIPE] = ACTIONS(2599),
    [anon_sym_PIPE_EQ] = ACTIONS(2603),
    [anon_sym_PIPE_PIPE] = ACTIONS(2603),
    [anon_sym_DASH] = ACTIONS(2599),
    [anon_sym_DASH_EQ] = ACTIONS(2603),
    [anon_sym_DASH_DASH] = ACTIONS(2603),
    [anon_sym_PLUS] = ACTIONS(2599),
    [anon_sym_PLUS_EQ] = ACTIONS(2603),
    [anon_sym_PLUS_PLUS] = ACTIONS(2603),
    [anon_sym_LT] = ACTIONS(2599),
    [anon_sym_LT_EQ] = ACTIONS(2603),
    [anon_sym_LT_LT] = ACTIONS(2599),
    [anon_sym_LT_LT_EQ] = ACTIONS(2603),
    [anon_sym_GT] = ACTIONS(2599),
    [anon_sym_GT_EQ] = ACTIONS(2603),
    [anon_sym_GT_GT_EQ] = ACTIONS(2603),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2603),
    [anon_sym_GT_GT] = ACTIONS(2599),
    [anon_sym_GT_GT_GT] = ACTIONS(2599),
    [anon_sym_BANG] = ACTIONS(2599),
    [anon_sym_BANG_EQ] = ACTIONS(2603),
    [anon_sym_LPAREN] = ACTIONS(2603),
    [anon_sym_RPAREN] = ACTIONS(2603),
    [anon_sym_LBRACK] = ACTIONS(2603),
    [anon_sym_RBRACK] = ACTIONS(2603),
    [anon_sym_QMARK] = ACTIONS(2603),
    [anon_sym_COMMA] = ACTIONS(2603),
    [anon_sym_SEMI] = ACTIONS(2603),
    [anon_sym_COLON] = ACTIONS(2603),
    [anon_sym_DOLLAR] = ACTIONS(2603),
    [anon_sym_EQ] = ACTIONS(2599),
    [anon_sym_EQ_EQ] = ACTIONS(2603),
    [anon_sym_STAR] = ACTIONS(2599),
    [anon_sym_STAR_EQ] = ACTIONS(2603),
    [anon_sym_PERCENT] = ACTIONS(2599),
    [anon_sym_PERCENT_EQ] = ACTIONS(2603),
    [anon_sym_CARET] = ACTIONS(2599),
    [anon_sym_CARET_EQ] = ACTIONS(2603),
    [anon_sym_CARET_CARET] = ACTIONS(2599),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2603),
    [anon_sym_TILDE] = ACTIONS(2599),
    [anon_sym_TILDE_EQ] = ACTIONS(2603),
    [anon_sym_AT] = ACTIONS(2603),
    [anon_sym_EQ_GT] = ACTIONS(2603),
    [anon_sym_POUND] = ACTIONS(2603),
    [anon_sym_BANGin] = ACTIONS(2603),
    [anon_sym_BANGis] = ACTIONS(2603),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2603),
    [sym_float_literal] = ACTIONS(2603),
    [sym__string] = ACTIONS(2468),
  },
  [574] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2605),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [575] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2607),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [576] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(574),
    [sym__token_string_token] = STATE(574),
    [sym__token_no_braces] = STATE(574),
    [sym_keyword] = STATE(574),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(574),
    [sym_char_literal] = STATE(574),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2609),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2611),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2609),
    [anon_sym_SLASH_EQ] = ACTIONS(2613),
    [anon_sym_DOT] = ACTIONS(2609),
    [anon_sym_DOT_DOT] = ACTIONS(2609),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2613),
    [anon_sym_AMP] = ACTIONS(2609),
    [anon_sym_AMP_EQ] = ACTIONS(2613),
    [anon_sym_AMP_AMP] = ACTIONS(2613),
    [anon_sym_PIPE] = ACTIONS(2609),
    [anon_sym_PIPE_EQ] = ACTIONS(2613),
    [anon_sym_PIPE_PIPE] = ACTIONS(2613),
    [anon_sym_DASH] = ACTIONS(2609),
    [anon_sym_DASH_EQ] = ACTIONS(2613),
    [anon_sym_DASH_DASH] = ACTIONS(2613),
    [anon_sym_PLUS] = ACTIONS(2609),
    [anon_sym_PLUS_EQ] = ACTIONS(2613),
    [anon_sym_PLUS_PLUS] = ACTIONS(2613),
    [anon_sym_LT] = ACTIONS(2609),
    [anon_sym_LT_EQ] = ACTIONS(2613),
    [anon_sym_LT_LT] = ACTIONS(2609),
    [anon_sym_LT_LT_EQ] = ACTIONS(2613),
    [anon_sym_GT] = ACTIONS(2609),
    [anon_sym_GT_EQ] = ACTIONS(2613),
    [anon_sym_GT_GT_EQ] = ACTIONS(2613),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2613),
    [anon_sym_GT_GT] = ACTIONS(2609),
    [anon_sym_GT_GT_GT] = ACTIONS(2609),
    [anon_sym_BANG] = ACTIONS(2609),
    [anon_sym_BANG_EQ] = ACTIONS(2613),
    [anon_sym_LPAREN] = ACTIONS(2613),
    [anon_sym_RPAREN] = ACTIONS(2613),
    [anon_sym_LBRACK] = ACTIONS(2613),
    [anon_sym_RBRACK] = ACTIONS(2613),
    [anon_sym_QMARK] = ACTIONS(2613),
    [anon_sym_COMMA] = ACTIONS(2613),
    [anon_sym_SEMI] = ACTIONS(2613),
    [anon_sym_COLON] = ACTIONS(2613),
    [anon_sym_DOLLAR] = ACTIONS(2613),
    [anon_sym_EQ] = ACTIONS(2609),
    [anon_sym_EQ_EQ] = ACTIONS(2613),
    [anon_sym_STAR] = ACTIONS(2609),
    [anon_sym_STAR_EQ] = ACTIONS(2613),
    [anon_sym_PERCENT] = ACTIONS(2609),
    [anon_sym_PERCENT_EQ] = ACTIONS(2613),
    [anon_sym_CARET] = ACTIONS(2609),
    [anon_sym_CARET_EQ] = ACTIONS(2613),
    [anon_sym_CARET_CARET] = ACTIONS(2609),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2613),
    [anon_sym_TILDE] = ACTIONS(2609),
    [anon_sym_TILDE_EQ] = ACTIONS(2613),
    [anon_sym_AT] = ACTIONS(2613),
    [anon_sym_EQ_GT] = ACTIONS(2613),
    [anon_sym_POUND] = ACTIONS(2613),
    [anon_sym_BANGin] = ACTIONS(2613),
    [anon_sym_BANGis] = ACTIONS(2613),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2613),
    [sym_float_literal] = ACTIONS(2613),
    [sym__string] = ACTIONS(2468),
  },
  [577] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(555),
    [sym__token_string_token] = STATE(555),
    [sym__token_no_braces] = STATE(555),
    [sym_keyword] = STATE(555),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(555),
    [sym_char_literal] = STATE(555),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2615),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2617),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2615),
    [anon_sym_SLASH_EQ] = ACTIONS(2619),
    [anon_sym_DOT] = ACTIONS(2615),
    [anon_sym_DOT_DOT] = ACTIONS(2615),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2619),
    [anon_sym_AMP] = ACTIONS(2615),
    [anon_sym_AMP_EQ] = ACTIONS(2619),
    [anon_sym_AMP_AMP] = ACTIONS(2619),
    [anon_sym_PIPE] = ACTIONS(2615),
    [anon_sym_PIPE_EQ] = ACTIONS(2619),
    [anon_sym_PIPE_PIPE] = ACTIONS(2619),
    [anon_sym_DASH] = ACTIONS(2615),
    [anon_sym_DASH_EQ] = ACTIONS(2619),
    [anon_sym_DASH_DASH] = ACTIONS(2619),
    [anon_sym_PLUS] = ACTIONS(2615),
    [anon_sym_PLUS_EQ] = ACTIONS(2619),
    [anon_sym_PLUS_PLUS] = ACTIONS(2619),
    [anon_sym_LT] = ACTIONS(2615),
    [anon_sym_LT_EQ] = ACTIONS(2619),
    [anon_sym_LT_LT] = ACTIONS(2615),
    [anon_sym_LT_LT_EQ] = ACTIONS(2619),
    [anon_sym_GT] = ACTIONS(2615),
    [anon_sym_GT_EQ] = ACTIONS(2619),
    [anon_sym_GT_GT_EQ] = ACTIONS(2619),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2619),
    [anon_sym_GT_GT] = ACTIONS(2615),
    [anon_sym_GT_GT_GT] = ACTIONS(2615),
    [anon_sym_BANG] = ACTIONS(2615),
    [anon_sym_BANG_EQ] = ACTIONS(2619),
    [anon_sym_LPAREN] = ACTIONS(2619),
    [anon_sym_RPAREN] = ACTIONS(2619),
    [anon_sym_LBRACK] = ACTIONS(2619),
    [anon_sym_RBRACK] = ACTIONS(2619),
    [anon_sym_QMARK] = ACTIONS(2619),
    [anon_sym_COMMA] = ACTIONS(2619),
    [anon_sym_SEMI] = ACTIONS(2619),
    [anon_sym_COLON] = ACTIONS(2619),
    [anon_sym_DOLLAR] = ACTIONS(2619),
    [anon_sym_EQ] = ACTIONS(2615),
    [anon_sym_EQ_EQ] = ACTIONS(2619),
    [anon_sym_STAR] = ACTIONS(2615),
    [anon_sym_STAR_EQ] = ACTIONS(2619),
    [anon_sym_PERCENT] = ACTIONS(2615),
    [anon_sym_PERCENT_EQ] = ACTIONS(2619),
    [anon_sym_CARET] = ACTIONS(2615),
    [anon_sym_CARET_EQ] = ACTIONS(2619),
    [anon_sym_CARET_CARET] = ACTIONS(2615),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2619),
    [anon_sym_TILDE] = ACTIONS(2615),
    [anon_sym_TILDE_EQ] = ACTIONS(2619),
    [anon_sym_AT] = ACTIONS(2619),
    [anon_sym_EQ_GT] = ACTIONS(2619),
    [anon_sym_POUND] = ACTIONS(2619),
    [anon_sym_BANGin] = ACTIONS(2619),
    [anon_sym_BANGis] = ACTIONS(2619),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2619),
    [sym_float_literal] = ACTIONS(2619),
    [sym__string] = ACTIONS(2468),
  },
  [578] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2621),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [579] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2623),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [580] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(579),
    [sym__token_string_token] = STATE(579),
    [sym__token_no_braces] = STATE(579),
    [sym_keyword] = STATE(579),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(579),
    [sym_char_literal] = STATE(579),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2625),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2627),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2625),
    [anon_sym_SLASH_EQ] = ACTIONS(2629),
    [anon_sym_DOT] = ACTIONS(2625),
    [anon_sym_DOT_DOT] = ACTIONS(2625),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2629),
    [anon_sym_AMP] = ACTIONS(2625),
    [anon_sym_AMP_EQ] = ACTIONS(2629),
    [anon_sym_AMP_AMP] = ACTIONS(2629),
    [anon_sym_PIPE] = ACTIONS(2625),
    [anon_sym_PIPE_EQ] = ACTIONS(2629),
    [anon_sym_PIPE_PIPE] = ACTIONS(2629),
    [anon_sym_DASH] = ACTIONS(2625),
    [anon_sym_DASH_EQ] = ACTIONS(2629),
    [anon_sym_DASH_DASH] = ACTIONS(2629),
    [anon_sym_PLUS] = ACTIONS(2625),
    [anon_sym_PLUS_EQ] = ACTIONS(2629),
    [anon_sym_PLUS_PLUS] = ACTIONS(2629),
    [anon_sym_LT] = ACTIONS(2625),
    [anon_sym_LT_EQ] = ACTIONS(2629),
    [anon_sym_LT_LT] = ACTIONS(2625),
    [anon_sym_LT_LT_EQ] = ACTIONS(2629),
    [anon_sym_GT] = ACTIONS(2625),
    [anon_sym_GT_EQ] = ACTIONS(2629),
    [anon_sym_GT_GT_EQ] = ACTIONS(2629),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2629),
    [anon_sym_GT_GT] = ACTIONS(2625),
    [anon_sym_GT_GT_GT] = ACTIONS(2625),
    [anon_sym_BANG] = ACTIONS(2625),
    [anon_sym_BANG_EQ] = ACTIONS(2629),
    [anon_sym_LPAREN] = ACTIONS(2629),
    [anon_sym_RPAREN] = ACTIONS(2629),
    [anon_sym_LBRACK] = ACTIONS(2629),
    [anon_sym_RBRACK] = ACTIONS(2629),
    [anon_sym_QMARK] = ACTIONS(2629),
    [anon_sym_COMMA] = ACTIONS(2629),
    [anon_sym_SEMI] = ACTIONS(2629),
    [anon_sym_COLON] = ACTIONS(2629),
    [anon_sym_DOLLAR] = ACTIONS(2629),
    [anon_sym_EQ] = ACTIONS(2625),
    [anon_sym_EQ_EQ] = ACTIONS(2629),
    [anon_sym_STAR] = ACTIONS(2625),
    [anon_sym_STAR_EQ] = ACTIONS(2629),
    [anon_sym_PERCENT] = ACTIONS(2625),
    [anon_sym_PERCENT_EQ] = ACTIONS(2629),
    [anon_sym_CARET] = ACTIONS(2625),
    [anon_sym_CARET_EQ] = ACTIONS(2629),
    [anon_sym_CARET_CARET] = ACTIONS(2625),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2629),
    [anon_sym_TILDE] = ACTIONS(2625),
    [anon_sym_TILDE_EQ] = ACTIONS(2629),
    [anon_sym_AT] = ACTIONS(2629),
    [anon_sym_EQ_GT] = ACTIONS(2629),
    [anon_sym_POUND] = ACTIONS(2629),
    [anon_sym_BANGin] = ACTIONS(2629),
    [anon_sym_BANGis] = ACTIONS(2629),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2629),
    [sym_float_literal] = ACTIONS(2629),
    [sym__string] = ACTIONS(2468),
  },
  [581] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2631),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [582] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(583),
    [sym__token_string_token] = STATE(583),
    [sym__token_no_braces] = STATE(583),
    [sym_keyword] = STATE(583),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(583),
    [sym_char_literal] = STATE(583),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2633),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2635),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2633),
    [anon_sym_SLASH_EQ] = ACTIONS(2637),
    [anon_sym_DOT] = ACTIONS(2633),
    [anon_sym_DOT_DOT] = ACTIONS(2633),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2637),
    [anon_sym_AMP] = ACTIONS(2633),
    [anon_sym_AMP_EQ] = ACTIONS(2637),
    [anon_sym_AMP_AMP] = ACTIONS(2637),
    [anon_sym_PIPE] = ACTIONS(2633),
    [anon_sym_PIPE_EQ] = ACTIONS(2637),
    [anon_sym_PIPE_PIPE] = ACTIONS(2637),
    [anon_sym_DASH] = ACTIONS(2633),
    [anon_sym_DASH_EQ] = ACTIONS(2637),
    [anon_sym_DASH_DASH] = ACTIONS(2637),
    [anon_sym_PLUS] = ACTIONS(2633),
    [anon_sym_PLUS_EQ] = ACTIONS(2637),
    [anon_sym_PLUS_PLUS] = ACTIONS(2637),
    [anon_sym_LT] = ACTIONS(2633),
    [anon_sym_LT_EQ] = ACTIONS(2637),
    [anon_sym_LT_LT] = ACTIONS(2633),
    [anon_sym_LT_LT_EQ] = ACTIONS(2637),
    [anon_sym_GT] = ACTIONS(2633),
    [anon_sym_GT_EQ] = ACTIONS(2637),
    [anon_sym_GT_GT_EQ] = ACTIONS(2637),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2637),
    [anon_sym_GT_GT] = ACTIONS(2633),
    [anon_sym_GT_GT_GT] = ACTIONS(2633),
    [anon_sym_BANG] = ACTIONS(2633),
    [anon_sym_BANG_EQ] = ACTIONS(2637),
    [anon_sym_LPAREN] = ACTIONS(2637),
    [anon_sym_RPAREN] = ACTIONS(2637),
    [anon_sym_LBRACK] = ACTIONS(2637),
    [anon_sym_RBRACK] = ACTIONS(2637),
    [anon_sym_QMARK] = ACTIONS(2637),
    [anon_sym_COMMA] = ACTIONS(2637),
    [anon_sym_SEMI] = ACTIONS(2637),
    [anon_sym_COLON] = ACTIONS(2637),
    [anon_sym_DOLLAR] = ACTIONS(2637),
    [anon_sym_EQ] = ACTIONS(2633),
    [anon_sym_EQ_EQ] = ACTIONS(2637),
    [anon_sym_STAR] = ACTIONS(2633),
    [anon_sym_STAR_EQ] = ACTIONS(2637),
    [anon_sym_PERCENT] = ACTIONS(2633),
    [anon_sym_PERCENT_EQ] = ACTIONS(2637),
    [anon_sym_CARET] = ACTIONS(2633),
    [anon_sym_CARET_EQ] = ACTIONS(2637),
    [anon_sym_CARET_CARET] = ACTIONS(2633),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2637),
    [anon_sym_TILDE] = ACTIONS(2633),
    [anon_sym_TILDE_EQ] = ACTIONS(2637),
    [anon_sym_AT] = ACTIONS(2637),
    [anon_sym_EQ_GT] = ACTIONS(2637),
    [anon_sym_POUND] = ACTIONS(2637),
    [anon_sym_BANGin] = ACTIONS(2637),
    [anon_sym_BANGis] = ACTIONS(2637),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2637),
    [sym_float_literal] = ACTIONS(2637),
    [sym__string] = ACTIONS(2468),
  },
  [583] = {
    [sym_token_string] = STATE(646),
    [aux_sym__token_string_tokens] = STATE(566),
    [sym__token_string_token] = STATE(566),
    [sym__token_no_braces] = STATE(566),
    [sym_keyword] = STATE(566),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(566),
    [sym_char_literal] = STATE(566),
    [sym_special_keyword] = STATE(648),
    [sym_identifier] = ACTIONS(2476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2639),
    [anon_sym_LBRACE] = ACTIONS(2440),
    [anon_sym_SLASH] = ACTIONS(2476),
    [anon_sym_SLASH_EQ] = ACTIONS(2480),
    [anon_sym_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT] = ACTIONS(2476),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2480),
    [anon_sym_AMP] = ACTIONS(2476),
    [anon_sym_AMP_EQ] = ACTIONS(2480),
    [anon_sym_AMP_AMP] = ACTIONS(2480),
    [anon_sym_PIPE] = ACTIONS(2476),
    [anon_sym_PIPE_EQ] = ACTIONS(2480),
    [anon_sym_PIPE_PIPE] = ACTIONS(2480),
    [anon_sym_DASH] = ACTIONS(2476),
    [anon_sym_DASH_EQ] = ACTIONS(2480),
    [anon_sym_DASH_DASH] = ACTIONS(2480),
    [anon_sym_PLUS] = ACTIONS(2476),
    [anon_sym_PLUS_EQ] = ACTIONS(2480),
    [anon_sym_PLUS_PLUS] = ACTIONS(2480),
    [anon_sym_LT] = ACTIONS(2476),
    [anon_sym_LT_EQ] = ACTIONS(2480),
    [anon_sym_LT_LT] = ACTIONS(2476),
    [anon_sym_LT_LT_EQ] = ACTIONS(2480),
    [anon_sym_GT] = ACTIONS(2476),
    [anon_sym_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2480),
    [anon_sym_GT_GT] = ACTIONS(2476),
    [anon_sym_GT_GT_GT] = ACTIONS(2476),
    [anon_sym_BANG] = ACTIONS(2476),
    [anon_sym_BANG_EQ] = ACTIONS(2480),
    [anon_sym_LPAREN] = ACTIONS(2480),
    [anon_sym_RPAREN] = ACTIONS(2480),
    [anon_sym_LBRACK] = ACTIONS(2480),
    [anon_sym_RBRACK] = ACTIONS(2480),
    [anon_sym_QMARK] = ACTIONS(2480),
    [anon_sym_COMMA] = ACTIONS(2480),
    [anon_sym_SEMI] = ACTIONS(2480),
    [anon_sym_COLON] = ACTIONS(2480),
    [anon_sym_DOLLAR] = ACTIONS(2480),
    [anon_sym_EQ] = ACTIONS(2476),
    [anon_sym_EQ_EQ] = ACTIONS(2480),
    [anon_sym_STAR] = ACTIONS(2476),
    [anon_sym_STAR_EQ] = ACTIONS(2480),
    [anon_sym_PERCENT] = ACTIONS(2476),
    [anon_sym_PERCENT_EQ] = ACTIONS(2480),
    [anon_sym_CARET] = ACTIONS(2476),
    [anon_sym_CARET_EQ] = ACTIONS(2480),
    [anon_sym_CARET_CARET] = ACTIONS(2476),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2480),
    [anon_sym_TILDE] = ACTIONS(2476),
    [anon_sym_TILDE_EQ] = ACTIONS(2480),
    [anon_sym_AT] = ACTIONS(2480),
    [anon_sym_EQ_GT] = ACTIONS(2480),
    [anon_sym_POUND] = ACTIONS(2480),
    [anon_sym_BANGin] = ACTIONS(2480),
    [anon_sym_BANGis] = ACTIONS(2480),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2480),
    [sym_float_literal] = ACTIONS(2480),
    [sym__string] = ACTIONS(2468),
  },
  [584] = {
    [sym_import_declaration] = STATE(600),
    [sym_mixin_declaration] = STATE(600),
    [sym__declaration] = STATE(600),
    [sym__declaration2] = STATE(600),
    [sym_variable_declaration] = STATE(600),
    [sym_manifest_constant] = STATE(600),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(600),
    [sym_alias_declaration] = STATE(600),
    [sym_alias_reassign] = STATE(600),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(600),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(600),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(600),
    [sym_union_declaration] = STATE(600),
    [sym_postblit] = STATE(600),
    [sym_invariant_declaration] = STATE(600),
    [sym_class_declaration] = STATE(600),
    [sym_constructor] = STATE(600),
    [sym_destructor] = STATE(600),
    [sym_alias_this] = STATE(600),
    [sym_interface_declaration] = STATE(600),
    [sym_enum_declaration] = STATE(600),
    [sym_anonymous_enum_declaration] = STATE(600),
    [sym_function_declaration] = STATE(600),
    [sym_template_declaration] = STATE(600),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(600),
    [sym_template_mixin] = STATE(600),
    [sym_conditional_declaration] = STATE(600),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(600),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(600),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(600),
    [sym_static_assert] = STATE(600),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(600),
    [aux_sym_source_file_repeat1] = STATE(600),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2643),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_LBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2643),
    [anon_sym_DASH] = ACTIONS(2645),
    [anon_sym_DASH_DASH] = ACTIONS(2643),
    [anon_sym_PLUS] = ACTIONS(2645),
    [anon_sym_PLUS_PLUS] = ACTIONS(2643),
    [anon_sym_BANG] = ACTIONS(2643),
    [anon_sym_LPAREN] = ACTIONS(2643),
    [anon_sym_RPAREN] = ACTIONS(2643),
    [anon_sym_LBRACK] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2647),
    [anon_sym_DOLLAR] = ACTIONS(2643),
    [anon_sym_STAR] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2645),
    [sym_false] = ACTIONS(2645),
    [sym_null] = ACTIONS(2645),
    [sym_super] = ACTIONS(2645),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2645),
    [sym_assert] = ACTIONS(2645),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2645),
    [sym_case] = ACTIONS(2645),
    [sym_cast] = ACTIONS(2645),
    [sym_catch] = ACTIONS(2645),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2645),
    [sym_delegate] = ACTIONS(2645),
    [sym_delete] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2645),
    [sym_for] = ACTIONS(2645),
    [sym_foreach] = ACTIONS(2645),
    [sym_foreach_reverse] = ACTIONS(2645),
    [sym_function] = ACTIONS(2645),
    [sym_goto] = ACTIONS(2645),
    [sym_if] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2645),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2645),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2645),
    [sym_try] = ACTIONS(2645),
    [sym_typeid] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2645),
    [sym_with] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2643),
    [anon_sym_r_DQUOTE] = ACTIONS(2643),
    [anon_sym_x_DQUOTE] = ACTIONS(2643),
    [anon_sym_DQUOTE] = ACTIONS(2643),
    [anon_sym_i_BQUOTE] = ACTIONS(2643),
    [anon_sym_i_DQUOTE] = ACTIONS(2643),
    [anon_sym_iq_LBRACE] = ACTIONS(2643),
    [aux_sym_char_literal_token1] = ACTIONS(2643),
    [anon_sym_SQUOTE] = ACTIONS(2645),
    [anon_sym___DATE__] = ACTIONS(2645),
    [anon_sym___FILE__] = ACTIONS(2645),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2645),
    [anon_sym___FUNCTION__] = ACTIONS(2645),
    [anon_sym___LINE__] = ACTIONS(2645),
    [anon_sym___MODULE__] = ACTIONS(2645),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2645),
    [anon_sym___TIME__] = ACTIONS(2645),
    [anon_sym___TIMESTAMP__] = ACTIONS(2645),
    [anon_sym___VENDOR__] = ACTIONS(2645),
    [anon_sym___VERSION__] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2643),
    [sym_float_literal] = ACTIONS(2643),
    [sym__string] = ACTIONS(2643),
  },
  [585] = {
    [sym_import_declaration] = STATE(597),
    [sym_mixin_declaration] = STATE(597),
    [sym__declaration] = STATE(597),
    [sym__declaration2] = STATE(597),
    [sym_variable_declaration] = STATE(597),
    [sym_manifest_constant] = STATE(597),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(597),
    [sym_alias_declaration] = STATE(597),
    [sym_alias_reassign] = STATE(597),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(597),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(597),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(597),
    [sym_union_declaration] = STATE(597),
    [sym_postblit] = STATE(597),
    [sym_invariant_declaration] = STATE(597),
    [sym_class_declaration] = STATE(597),
    [sym_constructor] = STATE(597),
    [sym_destructor] = STATE(597),
    [sym_alias_this] = STATE(597),
    [sym_interface_declaration] = STATE(597),
    [sym_enum_declaration] = STATE(597),
    [sym_anonymous_enum_declaration] = STATE(597),
    [sym_function_declaration] = STATE(597),
    [sym_template_declaration] = STATE(597),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(597),
    [sym_template_mixin] = STATE(597),
    [sym_conditional_declaration] = STATE(597),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(597),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(597),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(597),
    [sym_static_assert] = STATE(597),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(597),
    [aux_sym_source_file_repeat1] = STATE(597),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2667),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2665),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [586] = {
    [sym_import_declaration] = STATE(586),
    [sym_mixin_declaration] = STATE(586),
    [sym__declaration] = STATE(586),
    [sym__declaration2] = STATE(586),
    [sym_variable_declaration] = STATE(586),
    [sym_manifest_constant] = STATE(586),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(586),
    [sym_alias_declaration] = STATE(586),
    [sym_alias_reassign] = STATE(586),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(586),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(586),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(586),
    [sym_union_declaration] = STATE(586),
    [sym_postblit] = STATE(586),
    [sym_invariant_declaration] = STATE(586),
    [sym_class_declaration] = STATE(586),
    [sym_constructor] = STATE(586),
    [sym_destructor] = STATE(586),
    [sym_alias_this] = STATE(586),
    [sym_interface_declaration] = STATE(586),
    [sym_enum_declaration] = STATE(586),
    [sym_anonymous_enum_declaration] = STATE(586),
    [sym_function_declaration] = STATE(586),
    [sym_template_declaration] = STATE(586),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(586),
    [sym_template_mixin] = STATE(586),
    [sym_conditional_declaration] = STATE(586),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(586),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(586),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(586),
    [sym_static_assert] = STATE(586),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(586),
    [aux_sym_source_file_repeat1] = STATE(586),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2669),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2672),
    [anon_sym_RBRACE] = ACTIONS(2672),
    [anon_sym_LBRACE] = ACTIONS(2672),
    [anon_sym_DOT] = ACTIONS(2674),
    [anon_sym_AMP] = ACTIONS(2672),
    [anon_sym_DASH] = ACTIONS(2677),
    [anon_sym_DASH_DASH] = ACTIONS(2672),
    [anon_sym_PLUS] = ACTIONS(2677),
    [anon_sym_PLUS_PLUS] = ACTIONS(2672),
    [anon_sym_BANG] = ACTIONS(2672),
    [anon_sym_LPAREN] = ACTIONS(2672),
    [anon_sym_RPAREN] = ACTIONS(2672),
    [anon_sym_LBRACK] = ACTIONS(2672),
    [anon_sym_SEMI] = ACTIONS(2679),
    [anon_sym_DOLLAR] = ACTIONS(2672),
    [anon_sym_STAR] = ACTIONS(2672),
    [anon_sym_TILDE] = ACTIONS(2682),
    [anon_sym_AT] = ACTIONS(2685),
    [sym_bool] = ACTIONS(2688),
    [sym_byte] = ACTIONS(2688),
    [sym_ubyte] = ACTIONS(2688),
    [sym_char] = ACTIONS(2688),
    [sym_short] = ACTIONS(2688),
    [sym_ushort] = ACTIONS(2688),
    [sym_int] = ACTIONS(2688),
    [sym_uint] = ACTIONS(2688),
    [sym_long] = ACTIONS(2688),
    [sym_ulong] = ACTIONS(2688),
    [sym_cent] = ACTIONS(2688),
    [sym_ucent] = ACTIONS(2688),
    [sym_wchar] = ACTIONS(2688),
    [sym_dchar] = ACTIONS(2688),
    [sym_float] = ACTIONS(2688),
    [sym_double] = ACTIONS(2688),
    [sym_real] = ACTIONS(2688),
    [sym_ifloat] = ACTIONS(2688),
    [sym_idouble] = ACTIONS(2688),
    [sym_ireal] = ACTIONS(2688),
    [sym_cfloat] = ACTIONS(2688),
    [sym_cdouble] = ACTIONS(2688),
    [sym_creal] = ACTIONS(2688),
    [sym_size_t] = ACTIONS(2688),
    [sym_ptrdiff_t] = ACTIONS(2688),
    [sym_string] = ACTIONS(2688),
    [sym_cstring] = ACTIONS(2688),
    [sym_dstring] = ACTIONS(2688),
    [sym_wstring] = ACTIONS(2688),
    [sym_noreturn] = ACTIONS(2688),
    [sym_true] = ACTIONS(2677),
    [sym_false] = ACTIONS(2677),
    [sym_null] = ACTIONS(2677),
    [sym_super] = ACTIONS(2677),
    [sym_this] = ACTIONS(2691),
    [sym_abstract] = ACTIONS(2694),
    [sym_alias] = ACTIONS(2697),
    [sym_align] = ACTIONS(2700),
    [sym_asm] = ACTIONS(2677),
    [sym_assert] = ACTIONS(2677),
    [sym_auto] = ACTIONS(2694),
    [sym_break] = ACTIONS(2677),
    [sym_case] = ACTIONS(2677),
    [sym_cast] = ACTIONS(2677),
    [sym_catch] = ACTIONS(2677),
    [sym_class] = ACTIONS(2703),
    [sym_const] = ACTIONS(2706),
    [sym_continue] = ACTIONS(2677),
    [sym_debug] = ACTIONS(2709),
    [sym_default] = ACTIONS(2677),
    [sym_delegate] = ACTIONS(2677),
    [sym_delete] = ACTIONS(2677),
    [sym_deprecated] = ACTIONS(2712),
    [sym_do] = ACTIONS(2677),
    [sym_else] = ACTIONS(2677),
    [sym_enum] = ACTIONS(2715),
    [sym_export] = ACTIONS(2718),
    [sym_extern] = ACTIONS(2721),
    [sym_final] = ACTIONS(2694),
    [sym_finally] = ACTIONS(2677),
    [sym_for] = ACTIONS(2677),
    [sym_foreach] = ACTIONS(2677),
    [sym_foreach_reverse] = ACTIONS(2677),
    [sym_function] = ACTIONS(2677),
    [sym_goto] = ACTIONS(2677),
    [sym_if] = ACTIONS(2677),
    [sym_immutable] = ACTIONS(2706),
    [sym_import] = ACTIONS(2724),
    [sym_in] = ACTIONS(2677),
    [sym_inout] = ACTIONS(2706),
    [sym_interface] = ACTIONS(2727),
    [sym_invariant] = ACTIONS(2730),
    [sym_is] = ACTIONS(2677),
    [sym_mixin] = ACTIONS(2733),
    [sym_new] = ACTIONS(2677),
    [sym_nothrow] = ACTIONS(2694),
    [sym_out] = ACTIONS(2677),
    [sym_override] = ACTIONS(2694),
    [sym_package] = ACTIONS(2736),
    [sym_pragma] = ACTIONS(2739),
    [sym_private] = ACTIONS(2718),
    [sym_protected] = ACTIONS(2718),
    [sym_public] = ACTIONS(2718),
    [sym_pure] = ACTIONS(2694),
    [sym_ref] = ACTIONS(2694),
    [sym_return] = ACTIONS(2718),
    [sym_scope] = ACTIONS(2694),
    [sym_shared] = ACTIONS(2742),
    [sym_static] = ACTIONS(2745),
    [sym_struct] = ACTIONS(2748),
    [sym_switch] = ACTIONS(2677),
    [sym_synchronized] = ACTIONS(2694),
    [sym_template] = ACTIONS(2751),
    [sym_throw] = ACTIONS(2677),
    [sym_try] = ACTIONS(2677),
    [sym_typeid] = ACTIONS(2677),
    [sym_typeof] = ACTIONS(2754),
    [sym_union] = ACTIONS(2757),
    [sym_unittest] = ACTIONS(2760),
    [sym_version] = ACTIONS(2763),
    [sym_while] = ACTIONS(2677),
    [sym_with] = ACTIONS(2677),
    [sym_gshared] = ACTIONS(2694),
    [sym_traits] = ACTIONS(2766),
    [sym_vector] = ACTIONS(2769),
    [sym_void] = ACTIONS(2688),
    [anon_sym_BQUOTE] = ACTIONS(2672),
    [anon_sym_r_DQUOTE] = ACTIONS(2672),
    [anon_sym_x_DQUOTE] = ACTIONS(2672),
    [anon_sym_DQUOTE] = ACTIONS(2672),
    [anon_sym_i_BQUOTE] = ACTIONS(2672),
    [anon_sym_i_DQUOTE] = ACTIONS(2672),
    [anon_sym_iq_LBRACE] = ACTIONS(2672),
    [aux_sym_char_literal_token1] = ACTIONS(2672),
    [anon_sym_SQUOTE] = ACTIONS(2677),
    [anon_sym___DATE__] = ACTIONS(2677),
    [anon_sym___FILE__] = ACTIONS(2677),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2677),
    [anon_sym___FUNCTION__] = ACTIONS(2677),
    [anon_sym___LINE__] = ACTIONS(2677),
    [anon_sym___MODULE__] = ACTIONS(2677),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2677),
    [anon_sym___TIME__] = ACTIONS(2677),
    [anon_sym___TIMESTAMP__] = ACTIONS(2677),
    [anon_sym___VENDOR__] = ACTIONS(2677),
    [anon_sym___VERSION__] = ACTIONS(2677),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2672),
    [sym_float_literal] = ACTIONS(2672),
    [sym__string] = ACTIONS(2672),
  },
  [587] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(6974),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2774),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [588] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(7680),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2778),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [589] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(7307),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2780),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [590] = {
    [sym_import_declaration] = STATE(586),
    [sym_mixin_declaration] = STATE(586),
    [sym__declaration] = STATE(586),
    [sym__declaration2] = STATE(586),
    [sym_variable_declaration] = STATE(586),
    [sym_manifest_constant] = STATE(586),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(586),
    [sym_alias_declaration] = STATE(586),
    [sym_alias_reassign] = STATE(586),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(586),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(586),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(586),
    [sym_union_declaration] = STATE(586),
    [sym_postblit] = STATE(586),
    [sym_invariant_declaration] = STATE(586),
    [sym_class_declaration] = STATE(586),
    [sym_constructor] = STATE(586),
    [sym_destructor] = STATE(586),
    [sym_alias_this] = STATE(586),
    [sym_interface_declaration] = STATE(586),
    [sym_enum_declaration] = STATE(586),
    [sym_anonymous_enum_declaration] = STATE(586),
    [sym_function_declaration] = STATE(586),
    [sym_template_declaration] = STATE(586),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(586),
    [sym_template_mixin] = STATE(586),
    [sym_conditional_declaration] = STATE(586),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(586),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(586),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(586),
    [sym_static_assert] = STATE(586),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(586),
    [aux_sym_source_file_repeat1] = STATE(586),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2782),
    [anon_sym_RBRACE] = ACTIONS(2782),
    [anon_sym_LBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2782),
    [anon_sym_DASH] = ACTIONS(2784),
    [anon_sym_DASH_DASH] = ACTIONS(2782),
    [anon_sym_PLUS] = ACTIONS(2784),
    [anon_sym_PLUS_PLUS] = ACTIONS(2782),
    [anon_sym_BANG] = ACTIONS(2782),
    [anon_sym_LPAREN] = ACTIONS(2782),
    [anon_sym_RPAREN] = ACTIONS(2782),
    [anon_sym_LBRACK] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2786),
    [anon_sym_DOLLAR] = ACTIONS(2782),
    [anon_sym_STAR] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2784),
    [sym_false] = ACTIONS(2784),
    [sym_null] = ACTIONS(2784),
    [sym_super] = ACTIONS(2784),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2784),
    [sym_assert] = ACTIONS(2784),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2784),
    [sym_case] = ACTIONS(2784),
    [sym_cast] = ACTIONS(2784),
    [sym_catch] = ACTIONS(2784),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2784),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2784),
    [sym_delegate] = ACTIONS(2784),
    [sym_delete] = ACTIONS(2784),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2784),
    [sym_else] = ACTIONS(2784),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2784),
    [sym_for] = ACTIONS(2784),
    [sym_foreach] = ACTIONS(2784),
    [sym_foreach_reverse] = ACTIONS(2784),
    [sym_function] = ACTIONS(2784),
    [sym_goto] = ACTIONS(2784),
    [sym_if] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2784),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2784),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2784),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2784),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2784),
    [sym_try] = ACTIONS(2784),
    [sym_typeid] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2784),
    [sym_with] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2782),
    [anon_sym_r_DQUOTE] = ACTIONS(2782),
    [anon_sym_x_DQUOTE] = ACTIONS(2782),
    [anon_sym_DQUOTE] = ACTIONS(2782),
    [anon_sym_i_BQUOTE] = ACTIONS(2782),
    [anon_sym_i_DQUOTE] = ACTIONS(2782),
    [anon_sym_iq_LBRACE] = ACTIONS(2782),
    [aux_sym_char_literal_token1] = ACTIONS(2782),
    [anon_sym_SQUOTE] = ACTIONS(2784),
    [anon_sym___DATE__] = ACTIONS(2784),
    [anon_sym___FILE__] = ACTIONS(2784),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2784),
    [anon_sym___FUNCTION__] = ACTIONS(2784),
    [anon_sym___LINE__] = ACTIONS(2784),
    [anon_sym___MODULE__] = ACTIONS(2784),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2784),
    [anon_sym___TIME__] = ACTIONS(2784),
    [anon_sym___TIMESTAMP__] = ACTIONS(2784),
    [anon_sym___VENDOR__] = ACTIONS(2784),
    [anon_sym___VERSION__] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2782),
    [sym_float_literal] = ACTIONS(2782),
    [sym__string] = ACTIONS(2782),
  },
  [591] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(7716),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2788),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [592] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(7639),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2790),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [593] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(7257),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2792),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [594] = {
    [sym_import_declaration] = STATE(586),
    [sym_mixin_declaration] = STATE(586),
    [sym__declaration] = STATE(586),
    [sym__declaration2] = STATE(586),
    [sym_variable_declaration] = STATE(586),
    [sym_manifest_constant] = STATE(586),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(586),
    [sym_alias_declaration] = STATE(586),
    [sym_alias_reassign] = STATE(586),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(586),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(586),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(586),
    [sym_union_declaration] = STATE(586),
    [sym_postblit] = STATE(586),
    [sym_invariant_declaration] = STATE(586),
    [sym_class_declaration] = STATE(586),
    [sym_constructor] = STATE(586),
    [sym_destructor] = STATE(586),
    [sym_alias_this] = STATE(586),
    [sym_interface_declaration] = STATE(586),
    [sym_enum_declaration] = STATE(586),
    [sym_anonymous_enum_declaration] = STATE(586),
    [sym_function_declaration] = STATE(586),
    [sym_template_declaration] = STATE(586),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(586),
    [sym_template_mixin] = STATE(586),
    [sym_conditional_declaration] = STATE(586),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(586),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(586),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(586),
    [sym_static_assert] = STATE(586),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(586),
    [aux_sym_source_file_repeat1] = STATE(586),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2786),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2665),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [595] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(7879),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2794),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [596] = {
    [sym_import_declaration] = STATE(598),
    [sym_mixin_declaration] = STATE(598),
    [sym__declaration] = STATE(598),
    [sym__declaration2] = STATE(598),
    [sym_variable_declaration] = STATE(598),
    [sym_manifest_constant] = STATE(598),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(598),
    [sym_alias_declaration] = STATE(598),
    [sym_alias_reassign] = STATE(598),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(598),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(598),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(598),
    [sym_union_declaration] = STATE(598),
    [sym_postblit] = STATE(598),
    [sym_invariant_declaration] = STATE(598),
    [sym_class_declaration] = STATE(598),
    [sym_constructor] = STATE(598),
    [sym_destructor] = STATE(598),
    [sym_alias_this] = STATE(598),
    [sym_interface_declaration] = STATE(598),
    [sym_enum_declaration] = STATE(598),
    [sym_anonymous_enum_declaration] = STATE(598),
    [sym_function_declaration] = STATE(598),
    [sym_template_declaration] = STATE(598),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(598),
    [sym_template_mixin] = STATE(598),
    [sym_conditional_declaration] = STATE(598),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(598),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(598),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(598),
    [sym_static_assert] = STATE(598),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(598),
    [aux_sym_source_file_repeat1] = STATE(598),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2800),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2798),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [597] = {
    [sym_import_declaration] = STATE(586),
    [sym_mixin_declaration] = STATE(586),
    [sym__declaration] = STATE(586),
    [sym__declaration2] = STATE(586),
    [sym_variable_declaration] = STATE(586),
    [sym_manifest_constant] = STATE(586),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(586),
    [sym_alias_declaration] = STATE(586),
    [sym_alias_reassign] = STATE(586),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(586),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(586),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(586),
    [sym_union_declaration] = STATE(586),
    [sym_postblit] = STATE(586),
    [sym_invariant_declaration] = STATE(586),
    [sym_class_declaration] = STATE(586),
    [sym_constructor] = STATE(586),
    [sym_destructor] = STATE(586),
    [sym_alias_this] = STATE(586),
    [sym_interface_declaration] = STATE(586),
    [sym_enum_declaration] = STATE(586),
    [sym_anonymous_enum_declaration] = STATE(586),
    [sym_function_declaration] = STATE(586),
    [sym_template_declaration] = STATE(586),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(586),
    [sym_template_mixin] = STATE(586),
    [sym_conditional_declaration] = STATE(586),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(586),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(586),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(586),
    [sym_static_assert] = STATE(586),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(586),
    [aux_sym_source_file_repeat1] = STATE(586),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2786),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2798),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [598] = {
    [sym_import_declaration] = STATE(586),
    [sym_mixin_declaration] = STATE(586),
    [sym__declaration] = STATE(586),
    [sym__declaration2] = STATE(586),
    [sym_variable_declaration] = STATE(586),
    [sym_manifest_constant] = STATE(586),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(586),
    [sym_alias_declaration] = STATE(586),
    [sym_alias_reassign] = STATE(586),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(586),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(586),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(586),
    [sym_union_declaration] = STATE(586),
    [sym_postblit] = STATE(586),
    [sym_invariant_declaration] = STATE(586),
    [sym_class_declaration] = STATE(586),
    [sym_constructor] = STATE(586),
    [sym_destructor] = STATE(586),
    [sym_alias_this] = STATE(586),
    [sym_interface_declaration] = STATE(586),
    [sym_enum_declaration] = STATE(586),
    [sym_anonymous_enum_declaration] = STATE(586),
    [sym_function_declaration] = STATE(586),
    [sym_template_declaration] = STATE(586),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(586),
    [sym_template_mixin] = STATE(586),
    [sym_conditional_declaration] = STATE(586),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(586),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(586),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(586),
    [sym_static_assert] = STATE(586),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(586),
    [aux_sym_source_file_repeat1] = STATE(586),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2643),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_LBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2643),
    [anon_sym_DASH] = ACTIONS(2645),
    [anon_sym_DASH_DASH] = ACTIONS(2643),
    [anon_sym_PLUS] = ACTIONS(2645),
    [anon_sym_PLUS_PLUS] = ACTIONS(2643),
    [anon_sym_BANG] = ACTIONS(2643),
    [anon_sym_LPAREN] = ACTIONS(2643),
    [anon_sym_RPAREN] = ACTIONS(2643),
    [anon_sym_LBRACK] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2786),
    [anon_sym_DOLLAR] = ACTIONS(2643),
    [anon_sym_STAR] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2645),
    [sym_false] = ACTIONS(2645),
    [sym_null] = ACTIONS(2645),
    [sym_super] = ACTIONS(2645),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2645),
    [sym_assert] = ACTIONS(2645),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2645),
    [sym_case] = ACTIONS(2645),
    [sym_cast] = ACTIONS(2645),
    [sym_catch] = ACTIONS(2645),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2645),
    [sym_delegate] = ACTIONS(2645),
    [sym_delete] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2645),
    [sym_for] = ACTIONS(2645),
    [sym_foreach] = ACTIONS(2645),
    [sym_foreach_reverse] = ACTIONS(2645),
    [sym_function] = ACTIONS(2645),
    [sym_goto] = ACTIONS(2645),
    [sym_if] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2645),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2645),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2645),
    [sym_try] = ACTIONS(2645),
    [sym_typeid] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2645),
    [sym_with] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2643),
    [anon_sym_r_DQUOTE] = ACTIONS(2643),
    [anon_sym_x_DQUOTE] = ACTIONS(2643),
    [anon_sym_DQUOTE] = ACTIONS(2643),
    [anon_sym_i_BQUOTE] = ACTIONS(2643),
    [anon_sym_i_DQUOTE] = ACTIONS(2643),
    [anon_sym_iq_LBRACE] = ACTIONS(2643),
    [aux_sym_char_literal_token1] = ACTIONS(2643),
    [anon_sym_SQUOTE] = ACTIONS(2645),
    [anon_sym___DATE__] = ACTIONS(2645),
    [anon_sym___FILE__] = ACTIONS(2645),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2645),
    [anon_sym___FUNCTION__] = ACTIONS(2645),
    [anon_sym___LINE__] = ACTIONS(2645),
    [anon_sym___MODULE__] = ACTIONS(2645),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2645),
    [anon_sym___TIME__] = ACTIONS(2645),
    [anon_sym___TIMESTAMP__] = ACTIONS(2645),
    [anon_sym___VENDOR__] = ACTIONS(2645),
    [anon_sym___VERSION__] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2643),
    [sym_float_literal] = ACTIONS(2643),
    [sym__string] = ACTIONS(2643),
  },
  [599] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(604),
    [sym_keyword] = STATE(604),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(604),
    [sym_char_literal] = STATE(604),
    [sym_special_keyword] = STATE(648),
    [sym_asm_inline] = STATE(6997),
    [aux_sym_asm_inline_repeat1] = STATE(604),
    [sym_identifier] = ACTIONS(2772),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2802),
    [anon_sym_SLASH] = ACTIONS(2772),
    [anon_sym_SLASH_EQ] = ACTIONS(2776),
    [anon_sym_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT] = ACTIONS(2772),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2776),
    [anon_sym_AMP] = ACTIONS(2772),
    [anon_sym_AMP_EQ] = ACTIONS(2776),
    [anon_sym_AMP_AMP] = ACTIONS(2776),
    [anon_sym_PIPE] = ACTIONS(2772),
    [anon_sym_PIPE_EQ] = ACTIONS(2776),
    [anon_sym_PIPE_PIPE] = ACTIONS(2776),
    [anon_sym_DASH] = ACTIONS(2772),
    [anon_sym_DASH_EQ] = ACTIONS(2776),
    [anon_sym_DASH_DASH] = ACTIONS(2776),
    [anon_sym_PLUS] = ACTIONS(2772),
    [anon_sym_PLUS_EQ] = ACTIONS(2776),
    [anon_sym_PLUS_PLUS] = ACTIONS(2776),
    [anon_sym_LT] = ACTIONS(2772),
    [anon_sym_LT_EQ] = ACTIONS(2776),
    [anon_sym_LT_LT] = ACTIONS(2772),
    [anon_sym_LT_LT_EQ] = ACTIONS(2776),
    [anon_sym_GT] = ACTIONS(2772),
    [anon_sym_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2776),
    [anon_sym_GT_GT] = ACTIONS(2772),
    [anon_sym_GT_GT_GT] = ACTIONS(2772),
    [anon_sym_BANG] = ACTIONS(2772),
    [anon_sym_BANG_EQ] = ACTIONS(2776),
    [anon_sym_LPAREN] = ACTIONS(2776),
    [anon_sym_RPAREN] = ACTIONS(2776),
    [anon_sym_LBRACK] = ACTIONS(2776),
    [anon_sym_RBRACK] = ACTIONS(2776),
    [anon_sym_QMARK] = ACTIONS(2776),
    [anon_sym_COMMA] = ACTIONS(2776),
    [anon_sym_SEMI] = ACTIONS(2776),
    [anon_sym_COLON] = ACTIONS(2776),
    [anon_sym_DOLLAR] = ACTIONS(2776),
    [anon_sym_EQ] = ACTIONS(2772),
    [anon_sym_EQ_EQ] = ACTIONS(2776),
    [anon_sym_STAR] = ACTIONS(2772),
    [anon_sym_STAR_EQ] = ACTIONS(2776),
    [anon_sym_PERCENT] = ACTIONS(2772),
    [anon_sym_PERCENT_EQ] = ACTIONS(2776),
    [anon_sym_CARET] = ACTIONS(2772),
    [anon_sym_CARET_EQ] = ACTIONS(2776),
    [anon_sym_CARET_CARET] = ACTIONS(2772),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2776),
    [anon_sym_TILDE] = ACTIONS(2772),
    [anon_sym_TILDE_EQ] = ACTIONS(2776),
    [anon_sym_AT] = ACTIONS(2776),
    [anon_sym_EQ_GT] = ACTIONS(2776),
    [anon_sym_POUND] = ACTIONS(2776),
    [anon_sym_BANGin] = ACTIONS(2776),
    [anon_sym_BANGis] = ACTIONS(2776),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2776),
    [sym_float_literal] = ACTIONS(2776),
    [sym__string] = ACTIONS(2468),
  },
  [600] = {
    [sym_import_declaration] = STATE(586),
    [sym_mixin_declaration] = STATE(586),
    [sym__declaration] = STATE(586),
    [sym__declaration2] = STATE(586),
    [sym_variable_declaration] = STATE(586),
    [sym_manifest_constant] = STATE(586),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(586),
    [sym_alias_declaration] = STATE(586),
    [sym_alias_reassign] = STATE(586),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(586),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(586),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(586),
    [sym_union_declaration] = STATE(586),
    [sym_postblit] = STATE(586),
    [sym_invariant_declaration] = STATE(586),
    [sym_class_declaration] = STATE(586),
    [sym_constructor] = STATE(586),
    [sym_destructor] = STATE(586),
    [sym_alias_this] = STATE(586),
    [sym_interface_declaration] = STATE(586),
    [sym_enum_declaration] = STATE(586),
    [sym_anonymous_enum_declaration] = STATE(586),
    [sym_function_declaration] = STATE(586),
    [sym_template_declaration] = STATE(586),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(586),
    [sym_template_mixin] = STATE(586),
    [sym_conditional_declaration] = STATE(586),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(586),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(586),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(586),
    [sym_static_assert] = STATE(586),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(586),
    [aux_sym_source_file_repeat1] = STATE(586),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2804),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_LBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2804),
    [anon_sym_DASH] = ACTIONS(2806),
    [anon_sym_DASH_DASH] = ACTIONS(2804),
    [anon_sym_PLUS] = ACTIONS(2806),
    [anon_sym_PLUS_PLUS] = ACTIONS(2804),
    [anon_sym_BANG] = ACTIONS(2804),
    [anon_sym_LPAREN] = ACTIONS(2804),
    [anon_sym_RPAREN] = ACTIONS(2804),
    [anon_sym_LBRACK] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2786),
    [anon_sym_DOLLAR] = ACTIONS(2804),
    [anon_sym_STAR] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2806),
    [sym_false] = ACTIONS(2806),
    [sym_null] = ACTIONS(2806),
    [sym_super] = ACTIONS(2806),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2806),
    [sym_assert] = ACTIONS(2806),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2806),
    [sym_case] = ACTIONS(2806),
    [sym_cast] = ACTIONS(2806),
    [sym_catch] = ACTIONS(2806),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2806),
    [sym_delegate] = ACTIONS(2806),
    [sym_delete] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2806),
    [sym_for] = ACTIONS(2806),
    [sym_foreach] = ACTIONS(2806),
    [sym_foreach_reverse] = ACTIONS(2806),
    [sym_function] = ACTIONS(2806),
    [sym_goto] = ACTIONS(2806),
    [sym_if] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2806),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2806),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2806),
    [sym_try] = ACTIONS(2806),
    [sym_typeid] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2806),
    [sym_with] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2804),
    [anon_sym_r_DQUOTE] = ACTIONS(2804),
    [anon_sym_x_DQUOTE] = ACTIONS(2804),
    [anon_sym_DQUOTE] = ACTIONS(2804),
    [anon_sym_i_BQUOTE] = ACTIONS(2804),
    [anon_sym_i_DQUOTE] = ACTIONS(2804),
    [anon_sym_iq_LBRACE] = ACTIONS(2804),
    [aux_sym_char_literal_token1] = ACTIONS(2804),
    [anon_sym_SQUOTE] = ACTIONS(2806),
    [anon_sym___DATE__] = ACTIONS(2806),
    [anon_sym___FILE__] = ACTIONS(2806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2806),
    [anon_sym___FUNCTION__] = ACTIONS(2806),
    [anon_sym___LINE__] = ACTIONS(2806),
    [anon_sym___MODULE__] = ACTIONS(2806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2806),
    [anon_sym___TIME__] = ACTIONS(2806),
    [anon_sym___TIMESTAMP__] = ACTIONS(2806),
    [anon_sym___VENDOR__] = ACTIONS(2806),
    [anon_sym___VERSION__] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2804),
    [sym_float_literal] = ACTIONS(2804),
    [sym__string] = ACTIONS(2804),
  },
  [601] = {
    [sym_import_declaration] = STATE(602),
    [sym_mixin_declaration] = STATE(602),
    [sym__declaration] = STATE(602),
    [sym__declaration2] = STATE(602),
    [sym_variable_declaration] = STATE(602),
    [sym_manifest_constant] = STATE(602),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(602),
    [sym_alias_declaration] = STATE(602),
    [sym_alias_reassign] = STATE(602),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(602),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(602),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(602),
    [sym_union_declaration] = STATE(602),
    [sym_postblit] = STATE(602),
    [sym_invariant_declaration] = STATE(602),
    [sym_class_declaration] = STATE(602),
    [sym_constructor] = STATE(602),
    [sym_destructor] = STATE(602),
    [sym_alias_this] = STATE(602),
    [sym_interface_declaration] = STATE(602),
    [sym_enum_declaration] = STATE(602),
    [sym_anonymous_enum_declaration] = STATE(602),
    [sym_function_declaration] = STATE(602),
    [sym_template_declaration] = STATE(602),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(602),
    [sym_template_mixin] = STATE(602),
    [sym_conditional_declaration] = STATE(602),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(602),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(602),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(602),
    [sym_static_assert] = STATE(602),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(602),
    [aux_sym_source_file_repeat1] = STATE(602),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2804),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_LBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2804),
    [anon_sym_DASH] = ACTIONS(2806),
    [anon_sym_DASH_DASH] = ACTIONS(2804),
    [anon_sym_PLUS] = ACTIONS(2806),
    [anon_sym_PLUS_PLUS] = ACTIONS(2804),
    [anon_sym_BANG] = ACTIONS(2804),
    [anon_sym_LPAREN] = ACTIONS(2804),
    [anon_sym_RPAREN] = ACTIONS(2804),
    [anon_sym_LBRACK] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2808),
    [anon_sym_DOLLAR] = ACTIONS(2804),
    [anon_sym_STAR] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2806),
    [sym_false] = ACTIONS(2806),
    [sym_null] = ACTIONS(2806),
    [sym_super] = ACTIONS(2806),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2806),
    [sym_assert] = ACTIONS(2806),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2806),
    [sym_case] = ACTIONS(2806),
    [sym_cast] = ACTIONS(2806),
    [sym_catch] = ACTIONS(2806),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2806),
    [sym_delegate] = ACTIONS(2806),
    [sym_delete] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2806),
    [sym_for] = ACTIONS(2806),
    [sym_foreach] = ACTIONS(2806),
    [sym_foreach_reverse] = ACTIONS(2806),
    [sym_function] = ACTIONS(2806),
    [sym_goto] = ACTIONS(2806),
    [sym_if] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2806),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2806),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2806),
    [sym_try] = ACTIONS(2806),
    [sym_typeid] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2806),
    [sym_with] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2804),
    [anon_sym_r_DQUOTE] = ACTIONS(2804),
    [anon_sym_x_DQUOTE] = ACTIONS(2804),
    [anon_sym_DQUOTE] = ACTIONS(2804),
    [anon_sym_i_BQUOTE] = ACTIONS(2804),
    [anon_sym_i_DQUOTE] = ACTIONS(2804),
    [anon_sym_iq_LBRACE] = ACTIONS(2804),
    [aux_sym_char_literal_token1] = ACTIONS(2804),
    [anon_sym_SQUOTE] = ACTIONS(2806),
    [anon_sym___DATE__] = ACTIONS(2806),
    [anon_sym___FILE__] = ACTIONS(2806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2806),
    [anon_sym___FUNCTION__] = ACTIONS(2806),
    [anon_sym___LINE__] = ACTIONS(2806),
    [anon_sym___MODULE__] = ACTIONS(2806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2806),
    [anon_sym___TIME__] = ACTIONS(2806),
    [anon_sym___TIMESTAMP__] = ACTIONS(2806),
    [anon_sym___VENDOR__] = ACTIONS(2806),
    [anon_sym___VERSION__] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2804),
    [sym_float_literal] = ACTIONS(2804),
    [sym__string] = ACTIONS(2804),
  },
  [602] = {
    [sym_import_declaration] = STATE(586),
    [sym_mixin_declaration] = STATE(586),
    [sym__declaration] = STATE(586),
    [sym__declaration2] = STATE(586),
    [sym_variable_declaration] = STATE(586),
    [sym_manifest_constant] = STATE(586),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(586),
    [sym_alias_declaration] = STATE(586),
    [sym_alias_reassign] = STATE(586),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(586),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(586),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(586),
    [sym_union_declaration] = STATE(586),
    [sym_postblit] = STATE(586),
    [sym_invariant_declaration] = STATE(586),
    [sym_class_declaration] = STATE(586),
    [sym_constructor] = STATE(586),
    [sym_destructor] = STATE(586),
    [sym_alias_this] = STATE(586),
    [sym_interface_declaration] = STATE(586),
    [sym_enum_declaration] = STATE(586),
    [sym_anonymous_enum_declaration] = STATE(586),
    [sym_function_declaration] = STATE(586),
    [sym_template_declaration] = STATE(586),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(586),
    [sym_template_mixin] = STATE(586),
    [sym_conditional_declaration] = STATE(586),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(586),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(586),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(586),
    [sym_static_assert] = STATE(586),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(586),
    [aux_sym_source_file_repeat1] = STATE(586),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2810),
    [anon_sym_RBRACE] = ACTIONS(2810),
    [anon_sym_LBRACE] = ACTIONS(2810),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2810),
    [anon_sym_DASH] = ACTIONS(2812),
    [anon_sym_DASH_DASH] = ACTIONS(2810),
    [anon_sym_PLUS] = ACTIONS(2812),
    [anon_sym_PLUS_PLUS] = ACTIONS(2810),
    [anon_sym_BANG] = ACTIONS(2810),
    [anon_sym_LPAREN] = ACTIONS(2810),
    [anon_sym_RPAREN] = ACTIONS(2810),
    [anon_sym_LBRACK] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2786),
    [anon_sym_DOLLAR] = ACTIONS(2810),
    [anon_sym_STAR] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2812),
    [sym_false] = ACTIONS(2812),
    [sym_null] = ACTIONS(2812),
    [sym_super] = ACTIONS(2812),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2812),
    [sym_assert] = ACTIONS(2812),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2812),
    [sym_case] = ACTIONS(2812),
    [sym_cast] = ACTIONS(2812),
    [sym_catch] = ACTIONS(2812),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2812),
    [sym_debug] = ACTIONS(2653),
    [sym_default] = ACTIONS(2812),
    [sym_delegate] = ACTIONS(2812),
    [sym_delete] = ACTIONS(2812),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2812),
    [sym_for] = ACTIONS(2812),
    [sym_foreach] = ACTIONS(2812),
    [sym_foreach_reverse] = ACTIONS(2812),
    [sym_function] = ACTIONS(2812),
    [sym_goto] = ACTIONS(2812),
    [sym_if] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_in] = ACTIONS(2812),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_is] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2657),
    [sym_new] = ACTIONS(2812),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2812),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_switch] = ACTIONS(2812),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_throw] = ACTIONS(2812),
    [sym_try] = ACTIONS(2812),
    [sym_typeid] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_while] = ACTIONS(2812),
    [sym_with] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2810),
    [anon_sym_r_DQUOTE] = ACTIONS(2810),
    [anon_sym_x_DQUOTE] = ACTIONS(2810),
    [anon_sym_DQUOTE] = ACTIONS(2810),
    [anon_sym_i_BQUOTE] = ACTIONS(2810),
    [anon_sym_i_DQUOTE] = ACTIONS(2810),
    [anon_sym_iq_LBRACE] = ACTIONS(2810),
    [aux_sym_char_literal_token1] = ACTIONS(2810),
    [anon_sym_SQUOTE] = ACTIONS(2812),
    [anon_sym___DATE__] = ACTIONS(2812),
    [anon_sym___FILE__] = ACTIONS(2812),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2812),
    [anon_sym___FUNCTION__] = ACTIONS(2812),
    [anon_sym___LINE__] = ACTIONS(2812),
    [anon_sym___MODULE__] = ACTIONS(2812),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2812),
    [anon_sym___TIME__] = ACTIONS(2812),
    [anon_sym___TIMESTAMP__] = ACTIONS(2812),
    [anon_sym___VENDOR__] = ACTIONS(2812),
    [anon_sym___VERSION__] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2810),
    [sym_float_literal] = ACTIONS(2810),
    [sym__string] = ACTIONS(2810),
  },
  [603] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(603),
    [sym_keyword] = STATE(603),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(603),
    [sym_char_literal] = STATE(603),
    [sym_special_keyword] = STATE(648),
    [aux_sym_asm_inline_repeat1] = STATE(603),
    [sym_identifier] = ACTIONS(2814),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2817),
    [anon_sym_RBRACE] = ACTIONS(2820),
    [anon_sym_SLASH] = ACTIONS(2814),
    [anon_sym_SLASH_EQ] = ACTIONS(2822),
    [anon_sym_DOT] = ACTIONS(2814),
    [anon_sym_DOT_DOT] = ACTIONS(2814),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2822),
    [anon_sym_AMP] = ACTIONS(2814),
    [anon_sym_AMP_EQ] = ACTIONS(2822),
    [anon_sym_AMP_AMP] = ACTIONS(2822),
    [anon_sym_PIPE] = ACTIONS(2814),
    [anon_sym_PIPE_EQ] = ACTIONS(2822),
    [anon_sym_PIPE_PIPE] = ACTIONS(2822),
    [anon_sym_DASH] = ACTIONS(2814),
    [anon_sym_DASH_EQ] = ACTIONS(2822),
    [anon_sym_DASH_DASH] = ACTIONS(2822),
    [anon_sym_PLUS] = ACTIONS(2814),
    [anon_sym_PLUS_EQ] = ACTIONS(2822),
    [anon_sym_PLUS_PLUS] = ACTIONS(2822),
    [anon_sym_LT] = ACTIONS(2814),
    [anon_sym_LT_EQ] = ACTIONS(2822),
    [anon_sym_LT_LT] = ACTIONS(2814),
    [anon_sym_LT_LT_EQ] = ACTIONS(2822),
    [anon_sym_GT] = ACTIONS(2814),
    [anon_sym_GT_EQ] = ACTIONS(2822),
    [anon_sym_GT_GT_EQ] = ACTIONS(2822),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2822),
    [anon_sym_GT_GT] = ACTIONS(2814),
    [anon_sym_GT_GT_GT] = ACTIONS(2814),
    [anon_sym_BANG] = ACTIONS(2814),
    [anon_sym_BANG_EQ] = ACTIONS(2822),
    [anon_sym_LPAREN] = ACTIONS(2822),
    [anon_sym_RPAREN] = ACTIONS(2822),
    [anon_sym_LBRACK] = ACTIONS(2822),
    [anon_sym_RBRACK] = ACTIONS(2822),
    [anon_sym_QMARK] = ACTIONS(2822),
    [anon_sym_COMMA] = ACTIONS(2822),
    [anon_sym_SEMI] = ACTIONS(2822),
    [anon_sym_COLON] = ACTIONS(2822),
    [anon_sym_DOLLAR] = ACTIONS(2822),
    [anon_sym_EQ] = ACTIONS(2814),
    [anon_sym_EQ_EQ] = ACTIONS(2822),
    [anon_sym_STAR] = ACTIONS(2814),
    [anon_sym_STAR_EQ] = ACTIONS(2822),
    [anon_sym_PERCENT] = ACTIONS(2814),
    [anon_sym_PERCENT_EQ] = ACTIONS(2822),
    [anon_sym_CARET] = ACTIONS(2814),
    [anon_sym_CARET_EQ] = ACTIONS(2822),
    [anon_sym_CARET_CARET] = ACTIONS(2814),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2822),
    [anon_sym_TILDE] = ACTIONS(2814),
    [anon_sym_TILDE_EQ] = ACTIONS(2822),
    [anon_sym_AT] = ACTIONS(2822),
    [anon_sym_EQ_GT] = ACTIONS(2822),
    [anon_sym_POUND] = ACTIONS(2822),
    [anon_sym_BANGin] = ACTIONS(2822),
    [anon_sym_BANGis] = ACTIONS(2822),
    [sym_bool] = ACTIONS(2825),
    [sym_byte] = ACTIONS(2825),
    [sym_ubyte] = ACTIONS(2825),
    [sym_char] = ACTIONS(2825),
    [sym_short] = ACTIONS(2825),
    [sym_ushort] = ACTIONS(2825),
    [sym_int] = ACTIONS(2825),
    [sym_uint] = ACTIONS(2825),
    [sym_long] = ACTIONS(2825),
    [sym_ulong] = ACTIONS(2825),
    [sym_cent] = ACTIONS(2825),
    [sym_ucent] = ACTIONS(2825),
    [sym_wchar] = ACTIONS(2825),
    [sym_dchar] = ACTIONS(2825),
    [sym_float] = ACTIONS(2825),
    [sym_double] = ACTIONS(2825),
    [sym_real] = ACTIONS(2825),
    [sym_ifloat] = ACTIONS(2825),
    [sym_idouble] = ACTIONS(2825),
    [sym_ireal] = ACTIONS(2825),
    [sym_cfloat] = ACTIONS(2825),
    [sym_cdouble] = ACTIONS(2825),
    [sym_creal] = ACTIONS(2825),
    [sym_size_t] = ACTIONS(2825),
    [sym_ptrdiff_t] = ACTIONS(2825),
    [sym_string] = ACTIONS(2825),
    [sym_cstring] = ACTIONS(2825),
    [sym_dstring] = ACTIONS(2825),
    [sym_wstring] = ACTIONS(2825),
    [sym_noreturn] = ACTIONS(2825),
    [sym_true] = ACTIONS(2825),
    [sym_false] = ACTIONS(2825),
    [sym_null] = ACTIONS(2825),
    [sym_super] = ACTIONS(2825),
    [sym_this] = ACTIONS(2825),
    [sym_abstract] = ACTIONS(2825),
    [sym_alias] = ACTIONS(2825),
    [sym_align] = ACTIONS(2825),
    [sym_asm] = ACTIONS(2825),
    [sym_assert] = ACTIONS(2825),
    [sym_auto] = ACTIONS(2825),
    [sym_break] = ACTIONS(2825),
    [sym_case] = ACTIONS(2825),
    [sym_cast] = ACTIONS(2825),
    [sym_catch] = ACTIONS(2825),
    [sym_class] = ACTIONS(2825),
    [sym_const] = ACTIONS(2828),
    [sym_continue] = ACTIONS(2825),
    [sym_debug] = ACTIONS(2825),
    [sym_default] = ACTIONS(2825),
    [sym_delegate] = ACTIONS(2825),
    [sym_delete] = ACTIONS(2825),
    [sym_deprecated] = ACTIONS(2825),
    [sym_do] = ACTIONS(2825),
    [sym_else] = ACTIONS(2825),
    [sym_enum] = ACTIONS(2825),
    [sym_export] = ACTIONS(2825),
    [sym_extern] = ACTIONS(2825),
    [sym_final] = ACTIONS(2825),
    [sym_finally] = ACTIONS(2825),
    [sym_for] = ACTIONS(2825),
    [sym_foreach] = ACTIONS(2825),
    [sym_foreach_reverse] = ACTIONS(2825),
    [sym_function] = ACTIONS(2825),
    [sym_goto] = ACTIONS(2825),
    [sym_if] = ACTIONS(2825),
    [sym_immutable] = ACTIONS(2828),
    [sym_import] = ACTIONS(2825),
    [sym_in] = ACTIONS(2825),
    [sym_inout] = ACTIONS(2828),
    [sym_interface] = ACTIONS(2825),
    [sym_invariant] = ACTIONS(2825),
    [sym_is] = ACTIONS(2825),
    [sym_lazy] = ACTIONS(2825),
    [sym_mixin] = ACTIONS(2825),
    [sym_module] = ACTIONS(2825),
    [sym_new] = ACTIONS(2825),
    [sym_nothrow] = ACTIONS(2825),
    [sym_out] = ACTIONS(2825),
    [sym_override] = ACTIONS(2825),
    [sym_package] = ACTIONS(2825),
    [sym_pragma] = ACTIONS(2825),
    [sym_private] = ACTIONS(2825),
    [sym_protected] = ACTIONS(2825),
    [sym_public] = ACTIONS(2825),
    [sym_pure] = ACTIONS(2825),
    [sym_ref] = ACTIONS(2825),
    [sym_return] = ACTIONS(2825),
    [sym_scope] = ACTIONS(2825),
    [sym_shared] = ACTIONS(2828),
    [sym_static] = ACTIONS(2825),
    [sym_struct] = ACTIONS(2825),
    [sym_switch] = ACTIONS(2825),
    [sym_synchronized] = ACTIONS(2825),
    [sym_template] = ACTIONS(2825),
    [sym_throw] = ACTIONS(2825),
    [sym_try] = ACTIONS(2825),
    [sym_typeid] = ACTIONS(2825),
    [sym_typeof] = ACTIONS(2825),
    [sym_union] = ACTIONS(2825),
    [sym_unittest] = ACTIONS(2825),
    [sym_version] = ACTIONS(2825),
    [sym_while] = ACTIONS(2825),
    [sym_with] = ACTIONS(2825),
    [sym_parameters_] = ACTIONS(2825),
    [sym_gshared] = ACTIONS(2825),
    [sym_traits] = ACTIONS(2825),
    [sym_vector] = ACTIONS(2825),
    [sym_void] = ACTIONS(2825),
    [anon_sym_BQUOTE] = ACTIONS(2831),
    [anon_sym_r_DQUOTE] = ACTIONS(2834),
    [anon_sym_x_DQUOTE] = ACTIONS(2837),
    [anon_sym_DQUOTE] = ACTIONS(2840),
    [anon_sym_i_BQUOTE] = ACTIONS(2843),
    [anon_sym_i_DQUOTE] = ACTIONS(2846),
    [anon_sym_iq_LBRACE] = ACTIONS(2849),
    [aux_sym_char_literal_token1] = ACTIONS(2852),
    [anon_sym_SQUOTE] = ACTIONS(2855),
    [anon_sym___DATE__] = ACTIONS(2858),
    [anon_sym___FILE__] = ACTIONS(2858),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2858),
    [anon_sym___FUNCTION__] = ACTIONS(2858),
    [anon_sym___LINE__] = ACTIONS(2858),
    [anon_sym___MODULE__] = ACTIONS(2858),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2858),
    [anon_sym___TIME__] = ACTIONS(2858),
    [anon_sym___TIMESTAMP__] = ACTIONS(2858),
    [anon_sym___VENDOR__] = ACTIONS(2858),
    [anon_sym___VERSION__] = ACTIONS(2858),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2822),
    [sym_float_literal] = ACTIONS(2822),
    [sym__string] = ACTIONS(2861),
  },
  [604] = {
    [sym_token_string] = STATE(646),
    [sym__token_no_braces] = STATE(603),
    [sym_keyword] = STATE(603),
    [sym_type_ctor] = STATE(648),
    [sym__builtin_type] = STATE(648),
    [sym_raw_string] = STATE(646),
    [sym_hex_string] = STATE(646),
    [sym_quoted_string] = STATE(646),
    [sym_interpolated_raw_string] = STATE(646),
    [sym_interpolated_quoted_string] = STATE(646),
    [sym_interpolated_token_string] = STATE(646),
    [sym_string_literal] = STATE(603),
    [sym_char_literal] = STATE(603),
    [sym_special_keyword] = STATE(648),
    [aux_sym_asm_inline_repeat1] = STATE(603),
    [sym_identifier] = ACTIONS(2864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2436),
    [anon_sym_RBRACE] = ACTIONS(2866),
    [anon_sym_SLASH] = ACTIONS(2864),
    [anon_sym_SLASH_EQ] = ACTIONS(2868),
    [anon_sym_DOT] = ACTIONS(2864),
    [anon_sym_DOT_DOT] = ACTIONS(2864),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2868),
    [anon_sym_AMP] = ACTIONS(2864),
    [anon_sym_AMP_EQ] = ACTIONS(2868),
    [anon_sym_AMP_AMP] = ACTIONS(2868),
    [anon_sym_PIPE] = ACTIONS(2864),
    [anon_sym_PIPE_EQ] = ACTIONS(2868),
    [anon_sym_PIPE_PIPE] = ACTIONS(2868),
    [anon_sym_DASH] = ACTIONS(2864),
    [anon_sym_DASH_EQ] = ACTIONS(2868),
    [anon_sym_DASH_DASH] = ACTIONS(2868),
    [anon_sym_PLUS] = ACTIONS(2864),
    [anon_sym_PLUS_EQ] = ACTIONS(2868),
    [anon_sym_PLUS_PLUS] = ACTIONS(2868),
    [anon_sym_LT] = ACTIONS(2864),
    [anon_sym_LT_EQ] = ACTIONS(2868),
    [anon_sym_LT_LT] = ACTIONS(2864),
    [anon_sym_LT_LT_EQ] = ACTIONS(2868),
    [anon_sym_GT] = ACTIONS(2864),
    [anon_sym_GT_EQ] = ACTIONS(2868),
    [anon_sym_GT_GT_EQ] = ACTIONS(2868),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2868),
    [anon_sym_GT_GT] = ACTIONS(2864),
    [anon_sym_GT_GT_GT] = ACTIONS(2864),
    [anon_sym_BANG] = ACTIONS(2864),
    [anon_sym_BANG_EQ] = ACTIONS(2868),
    [anon_sym_LPAREN] = ACTIONS(2868),
    [anon_sym_RPAREN] = ACTIONS(2868),
    [anon_sym_LBRACK] = ACTIONS(2868),
    [anon_sym_RBRACK] = ACTIONS(2868),
    [anon_sym_QMARK] = ACTIONS(2868),
    [anon_sym_COMMA] = ACTIONS(2868),
    [anon_sym_SEMI] = ACTIONS(2868),
    [anon_sym_COLON] = ACTIONS(2868),
    [anon_sym_DOLLAR] = ACTIONS(2868),
    [anon_sym_EQ] = ACTIONS(2864),
    [anon_sym_EQ_EQ] = ACTIONS(2868),
    [anon_sym_STAR] = ACTIONS(2864),
    [anon_sym_STAR_EQ] = ACTIONS(2868),
    [anon_sym_PERCENT] = ACTIONS(2864),
    [anon_sym_PERCENT_EQ] = ACTIONS(2868),
    [anon_sym_CARET] = ACTIONS(2864),
    [anon_sym_CARET_EQ] = ACTIONS(2868),
    [anon_sym_CARET_CARET] = ACTIONS(2864),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2868),
    [anon_sym_TILDE] = ACTIONS(2864),
    [anon_sym_TILDE_EQ] = ACTIONS(2868),
    [anon_sym_AT] = ACTIONS(2868),
    [anon_sym_EQ_GT] = ACTIONS(2868),
    [anon_sym_POUND] = ACTIONS(2868),
    [anon_sym_BANGin] = ACTIONS(2868),
    [anon_sym_BANGis] = ACTIONS(2868),
    [sym_bool] = ACTIONS(2444),
    [sym_byte] = ACTIONS(2444),
    [sym_ubyte] = ACTIONS(2444),
    [sym_char] = ACTIONS(2444),
    [sym_short] = ACTIONS(2444),
    [sym_ushort] = ACTIONS(2444),
    [sym_int] = ACTIONS(2444),
    [sym_uint] = ACTIONS(2444),
    [sym_long] = ACTIONS(2444),
    [sym_ulong] = ACTIONS(2444),
    [sym_cent] = ACTIONS(2444),
    [sym_ucent] = ACTIONS(2444),
    [sym_wchar] = ACTIONS(2444),
    [sym_dchar] = ACTIONS(2444),
    [sym_float] = ACTIONS(2444),
    [sym_double] = ACTIONS(2444),
    [sym_real] = ACTIONS(2444),
    [sym_ifloat] = ACTIONS(2444),
    [sym_idouble] = ACTIONS(2444),
    [sym_ireal] = ACTIONS(2444),
    [sym_cfloat] = ACTIONS(2444),
    [sym_cdouble] = ACTIONS(2444),
    [sym_creal] = ACTIONS(2444),
    [sym_size_t] = ACTIONS(2444),
    [sym_ptrdiff_t] = ACTIONS(2444),
    [sym_string] = ACTIONS(2444),
    [sym_cstring] = ACTIONS(2444),
    [sym_dstring] = ACTIONS(2444),
    [sym_wstring] = ACTIONS(2444),
    [sym_noreturn] = ACTIONS(2444),
    [sym_true] = ACTIONS(2444),
    [sym_false] = ACTIONS(2444),
    [sym_null] = ACTIONS(2444),
    [sym_super] = ACTIONS(2444),
    [sym_this] = ACTIONS(2444),
    [sym_abstract] = ACTIONS(2444),
    [sym_alias] = ACTIONS(2444),
    [sym_align] = ACTIONS(2444),
    [sym_asm] = ACTIONS(2444),
    [sym_assert] = ACTIONS(2444),
    [sym_auto] = ACTIONS(2444),
    [sym_break] = ACTIONS(2444),
    [sym_case] = ACTIONS(2444),
    [sym_cast] = ACTIONS(2444),
    [sym_catch] = ACTIONS(2444),
    [sym_class] = ACTIONS(2444),
    [sym_const] = ACTIONS(2446),
    [sym_continue] = ACTIONS(2444),
    [sym_debug] = ACTIONS(2444),
    [sym_default] = ACTIONS(2444),
    [sym_delegate] = ACTIONS(2444),
    [sym_delete] = ACTIONS(2444),
    [sym_deprecated] = ACTIONS(2444),
    [sym_do] = ACTIONS(2444),
    [sym_else] = ACTIONS(2444),
    [sym_enum] = ACTIONS(2444),
    [sym_export] = ACTIONS(2444),
    [sym_extern] = ACTIONS(2444),
    [sym_final] = ACTIONS(2444),
    [sym_finally] = ACTIONS(2444),
    [sym_for] = ACTIONS(2444),
    [sym_foreach] = ACTIONS(2444),
    [sym_foreach_reverse] = ACTIONS(2444),
    [sym_function] = ACTIONS(2444),
    [sym_goto] = ACTIONS(2444),
    [sym_if] = ACTIONS(2444),
    [sym_immutable] = ACTIONS(2446),
    [sym_import] = ACTIONS(2444),
    [sym_in] = ACTIONS(2444),
    [sym_inout] = ACTIONS(2446),
    [sym_interface] = ACTIONS(2444),
    [sym_invariant] = ACTIONS(2444),
    [sym_is] = ACTIONS(2444),
    [sym_lazy] = ACTIONS(2444),
    [sym_mixin] = ACTIONS(2444),
    [sym_module] = ACTIONS(2444),
    [sym_new] = ACTIONS(2444),
    [sym_nothrow] = ACTIONS(2444),
    [sym_out] = ACTIONS(2444),
    [sym_override] = ACTIONS(2444),
    [sym_package] = ACTIONS(2444),
    [sym_pragma] = ACTIONS(2444),
    [sym_private] = ACTIONS(2444),
    [sym_protected] = ACTIONS(2444),
    [sym_public] = ACTIONS(2444),
    [sym_pure] = ACTIONS(2444),
    [sym_ref] = ACTIONS(2444),
    [sym_return] = ACTIONS(2444),
    [sym_scope] = ACTIONS(2444),
    [sym_shared] = ACTIONS(2446),
    [sym_static] = ACTIONS(2444),
    [sym_struct] = ACTIONS(2444),
    [sym_switch] = ACTIONS(2444),
    [sym_synchronized] = ACTIONS(2444),
    [sym_template] = ACTIONS(2444),
    [sym_throw] = ACTIONS(2444),
    [sym_try] = ACTIONS(2444),
    [sym_typeid] = ACTIONS(2444),
    [sym_typeof] = ACTIONS(2444),
    [sym_union] = ACTIONS(2444),
    [sym_unittest] = ACTIONS(2444),
    [sym_version] = ACTIONS(2444),
    [sym_while] = ACTIONS(2444),
    [sym_with] = ACTIONS(2444),
    [sym_parameters_] = ACTIONS(2444),
    [sym_gshared] = ACTIONS(2444),
    [sym_traits] = ACTIONS(2444),
    [sym_vector] = ACTIONS(2444),
    [sym_void] = ACTIONS(2444),
    [anon_sym_BQUOTE] = ACTIONS(2448),
    [anon_sym_r_DQUOTE] = ACTIONS(2450),
    [anon_sym_x_DQUOTE] = ACTIONS(2452),
    [anon_sym_DQUOTE] = ACTIONS(2454),
    [anon_sym_i_BQUOTE] = ACTIONS(2456),
    [anon_sym_i_DQUOTE] = ACTIONS(2458),
    [anon_sym_iq_LBRACE] = ACTIONS(2460),
    [aux_sym_char_literal_token1] = ACTIONS(2462),
    [anon_sym_SQUOTE] = ACTIONS(2464),
    [anon_sym___DATE__] = ACTIONS(2466),
    [anon_sym___FILE__] = ACTIONS(2466),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2466),
    [anon_sym___FUNCTION__] = ACTIONS(2466),
    [anon_sym___LINE__] = ACTIONS(2466),
    [anon_sym___MODULE__] = ACTIONS(2466),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2466),
    [anon_sym___TIME__] = ACTIONS(2466),
    [anon_sym___TIMESTAMP__] = ACTIONS(2466),
    [anon_sym___VENDOR__] = ACTIONS(2466),
    [anon_sym___VERSION__] = ACTIONS(2466),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2868),
    [sym_float_literal] = ACTIONS(2868),
    [sym__string] = ACTIONS(2468),
  },
  [605] = {
    [sym_import_declaration] = STATE(614),
    [sym_mixin_declaration] = STATE(614),
    [sym__declaration] = STATE(614),
    [sym__declaration2] = STATE(614),
    [sym_variable_declaration] = STATE(614),
    [sym_manifest_constant] = STATE(614),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(614),
    [sym_alias_declaration] = STATE(614),
    [sym_alias_reassign] = STATE(614),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(614),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(614),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(614),
    [sym_union_declaration] = STATE(614),
    [sym_postblit] = STATE(614),
    [sym_invariant_declaration] = STATE(614),
    [sym_class_declaration] = STATE(614),
    [sym_constructor] = STATE(614),
    [sym_destructor] = STATE(614),
    [sym_alias_this] = STATE(614),
    [sym_interface_declaration] = STATE(614),
    [sym_enum_declaration] = STATE(614),
    [sym_anonymous_enum_declaration] = STATE(614),
    [sym_function_declaration] = STATE(614),
    [sym_template_declaration] = STATE(614),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(614),
    [sym_template_mixin] = STATE(614),
    [sym_conditional_declaration] = STATE(614),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(614),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(614),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(614),
    [sym_static_assert] = STATE(614),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(614),
    [aux_sym_source_file_repeat1] = STATE(614),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2872),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [606] = {
    [sym_import_declaration] = STATE(606),
    [sym_mixin_declaration] = STATE(606),
    [sym__declaration] = STATE(606),
    [sym__declaration2] = STATE(606),
    [sym_variable_declaration] = STATE(606),
    [sym_manifest_constant] = STATE(606),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(606),
    [sym_alias_declaration] = STATE(606),
    [sym_alias_reassign] = STATE(606),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(606),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(606),
    [sym_union_declaration] = STATE(606),
    [sym_postblit] = STATE(606),
    [sym_invariant_declaration] = STATE(606),
    [sym_class_declaration] = STATE(606),
    [sym_constructor] = STATE(606),
    [sym_destructor] = STATE(606),
    [sym_alias_this] = STATE(606),
    [sym_interface_declaration] = STATE(606),
    [sym_enum_declaration] = STATE(606),
    [sym_anonymous_enum_declaration] = STATE(606),
    [sym_function_declaration] = STATE(606),
    [sym_template_declaration] = STATE(606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(606),
    [sym_template_mixin] = STATE(606),
    [sym_conditional_declaration] = STATE(606),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(606),
    [sym_static_assert] = STATE(606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(606),
    [aux_sym_source_file_repeat1] = STATE(606),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2888),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2672),
    [anon_sym_RBRACE] = ACTIONS(2672),
    [anon_sym_LBRACE] = ACTIONS(2672),
    [anon_sym_DOT] = ACTIONS(2674),
    [anon_sym_AMP] = ACTIONS(2672),
    [anon_sym_DASH] = ACTIONS(2677),
    [anon_sym_DASH_DASH] = ACTIONS(2672),
    [anon_sym_PLUS] = ACTIONS(2677),
    [anon_sym_PLUS_PLUS] = ACTIONS(2672),
    [anon_sym_BANG] = ACTIONS(2672),
    [anon_sym_LPAREN] = ACTIONS(2672),
    [anon_sym_RPAREN] = ACTIONS(2672),
    [anon_sym_LBRACK] = ACTIONS(2672),
    [anon_sym_SEMI] = ACTIONS(2891),
    [anon_sym_DOLLAR] = ACTIONS(2672),
    [anon_sym_STAR] = ACTIONS(2672),
    [anon_sym_TILDE] = ACTIONS(2894),
    [anon_sym_AT] = ACTIONS(2685),
    [sym_bool] = ACTIONS(2688),
    [sym_byte] = ACTIONS(2688),
    [sym_ubyte] = ACTIONS(2688),
    [sym_char] = ACTIONS(2688),
    [sym_short] = ACTIONS(2688),
    [sym_ushort] = ACTIONS(2688),
    [sym_int] = ACTIONS(2688),
    [sym_uint] = ACTIONS(2688),
    [sym_long] = ACTIONS(2688),
    [sym_ulong] = ACTIONS(2688),
    [sym_cent] = ACTIONS(2688),
    [sym_ucent] = ACTIONS(2688),
    [sym_wchar] = ACTIONS(2688),
    [sym_dchar] = ACTIONS(2688),
    [sym_float] = ACTIONS(2688),
    [sym_double] = ACTIONS(2688),
    [sym_real] = ACTIONS(2688),
    [sym_ifloat] = ACTIONS(2688),
    [sym_idouble] = ACTIONS(2688),
    [sym_ireal] = ACTIONS(2688),
    [sym_cfloat] = ACTIONS(2688),
    [sym_cdouble] = ACTIONS(2688),
    [sym_creal] = ACTIONS(2688),
    [sym_size_t] = ACTIONS(2688),
    [sym_ptrdiff_t] = ACTIONS(2688),
    [sym_string] = ACTIONS(2688),
    [sym_cstring] = ACTIONS(2688),
    [sym_dstring] = ACTIONS(2688),
    [sym_wstring] = ACTIONS(2688),
    [sym_noreturn] = ACTIONS(2688),
    [sym_true] = ACTIONS(2677),
    [sym_false] = ACTIONS(2677),
    [sym_null] = ACTIONS(2677),
    [sym_super] = ACTIONS(2677),
    [sym_this] = ACTIONS(2897),
    [sym_abstract] = ACTIONS(2694),
    [sym_alias] = ACTIONS(2900),
    [sym_align] = ACTIONS(2700),
    [sym_asm] = ACTIONS(2677),
    [sym_assert] = ACTIONS(2677),
    [sym_auto] = ACTIONS(2694),
    [sym_break] = ACTIONS(2677),
    [sym_case] = ACTIONS(2677),
    [sym_cast] = ACTIONS(2677),
    [sym_class] = ACTIONS(2903),
    [sym_const] = ACTIONS(2706),
    [sym_continue] = ACTIONS(2677),
    [sym_debug] = ACTIONS(2906),
    [sym_default] = ACTIONS(2677),
    [sym_delegate] = ACTIONS(2677),
    [sym_delete] = ACTIONS(2677),
    [sym_deprecated] = ACTIONS(2712),
    [sym_do] = ACTIONS(2677),
    [sym_else] = ACTIONS(2677),
    [sym_enum] = ACTIONS(2909),
    [sym_export] = ACTIONS(2912),
    [sym_extern] = ACTIONS(2721),
    [sym_final] = ACTIONS(2694),
    [sym_for] = ACTIONS(2677),
    [sym_foreach] = ACTIONS(2677),
    [sym_foreach_reverse] = ACTIONS(2677),
    [sym_function] = ACTIONS(2677),
    [sym_goto] = ACTIONS(2677),
    [sym_if] = ACTIONS(2677),
    [sym_immutable] = ACTIONS(2706),
    [sym_import] = ACTIONS(2915),
    [sym_in] = ACTIONS(2677),
    [sym_inout] = ACTIONS(2706),
    [sym_interface] = ACTIONS(2918),
    [sym_invariant] = ACTIONS(2921),
    [sym_is] = ACTIONS(2677),
    [sym_mixin] = ACTIONS(2924),
    [sym_new] = ACTIONS(2677),
    [sym_nothrow] = ACTIONS(2694),
    [sym_out] = ACTIONS(2677),
    [sym_override] = ACTIONS(2694),
    [sym_package] = ACTIONS(2736),
    [sym_pragma] = ACTIONS(2739),
    [sym_private] = ACTIONS(2912),
    [sym_protected] = ACTIONS(2912),
    [sym_public] = ACTIONS(2912),
    [sym_pure] = ACTIONS(2694),
    [sym_ref] = ACTIONS(2694),
    [sym_return] = ACTIONS(2912),
    [sym_scope] = ACTIONS(2694),
    [sym_shared] = ACTIONS(2927),
    [sym_static] = ACTIONS(2930),
    [sym_struct] = ACTIONS(2933),
    [sym_switch] = ACTIONS(2677),
    [sym_synchronized] = ACTIONS(2694),
    [sym_template] = ACTIONS(2936),
    [sym_throw] = ACTIONS(2677),
    [sym_try] = ACTIONS(2677),
    [sym_typeid] = ACTIONS(2677),
    [sym_typeof] = ACTIONS(2754),
    [sym_union] = ACTIONS(2939),
    [sym_unittest] = ACTIONS(2942),
    [sym_version] = ACTIONS(2945),
    [sym_while] = ACTIONS(2677),
    [sym_with] = ACTIONS(2677),
    [sym_gshared] = ACTIONS(2694),
    [sym_traits] = ACTIONS(2766),
    [sym_vector] = ACTIONS(2769),
    [sym_void] = ACTIONS(2688),
    [anon_sym_BQUOTE] = ACTIONS(2672),
    [anon_sym_r_DQUOTE] = ACTIONS(2672),
    [anon_sym_x_DQUOTE] = ACTIONS(2672),
    [anon_sym_DQUOTE] = ACTIONS(2672),
    [anon_sym_i_BQUOTE] = ACTIONS(2672),
    [anon_sym_i_DQUOTE] = ACTIONS(2672),
    [anon_sym_iq_LBRACE] = ACTIONS(2672),
    [aux_sym_char_literal_token1] = ACTIONS(2672),
    [anon_sym_SQUOTE] = ACTIONS(2677),
    [anon_sym___DATE__] = ACTIONS(2677),
    [anon_sym___FILE__] = ACTIONS(2677),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2677),
    [anon_sym___FUNCTION__] = ACTIONS(2677),
    [anon_sym___LINE__] = ACTIONS(2677),
    [anon_sym___MODULE__] = ACTIONS(2677),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2677),
    [anon_sym___TIME__] = ACTIONS(2677),
    [anon_sym___TIMESTAMP__] = ACTIONS(2677),
    [anon_sym___VENDOR__] = ACTIONS(2677),
    [anon_sym___VERSION__] = ACTIONS(2677),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2672),
    [sym_float_literal] = ACTIONS(2672),
    [sym__string] = ACTIONS(2672),
  },
  [607] = {
    [sym_import_declaration] = STATE(606),
    [sym_mixin_declaration] = STATE(606),
    [sym__declaration] = STATE(606),
    [sym__declaration2] = STATE(606),
    [sym_variable_declaration] = STATE(606),
    [sym_manifest_constant] = STATE(606),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(606),
    [sym_alias_declaration] = STATE(606),
    [sym_alias_reassign] = STATE(606),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(606),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(606),
    [sym_union_declaration] = STATE(606),
    [sym_postblit] = STATE(606),
    [sym_invariant_declaration] = STATE(606),
    [sym_class_declaration] = STATE(606),
    [sym_constructor] = STATE(606),
    [sym_destructor] = STATE(606),
    [sym_alias_this] = STATE(606),
    [sym_interface_declaration] = STATE(606),
    [sym_enum_declaration] = STATE(606),
    [sym_anonymous_enum_declaration] = STATE(606),
    [sym_function_declaration] = STATE(606),
    [sym_template_declaration] = STATE(606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(606),
    [sym_template_mixin] = STATE(606),
    [sym_conditional_declaration] = STATE(606),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(606),
    [sym_static_assert] = STATE(606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(606),
    [aux_sym_source_file_repeat1] = STATE(606),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2782),
    [anon_sym_RBRACE] = ACTIONS(2782),
    [anon_sym_LBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2782),
    [anon_sym_DASH] = ACTIONS(2784),
    [anon_sym_DASH_DASH] = ACTIONS(2782),
    [anon_sym_PLUS] = ACTIONS(2784),
    [anon_sym_PLUS_PLUS] = ACTIONS(2782),
    [anon_sym_BANG] = ACTIONS(2782),
    [anon_sym_LPAREN] = ACTIONS(2782),
    [anon_sym_RPAREN] = ACTIONS(2782),
    [anon_sym_LBRACK] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2948),
    [anon_sym_DOLLAR] = ACTIONS(2782),
    [anon_sym_STAR] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2784),
    [sym_false] = ACTIONS(2784),
    [sym_null] = ACTIONS(2784),
    [sym_super] = ACTIONS(2784),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2784),
    [sym_assert] = ACTIONS(2784),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2784),
    [sym_case] = ACTIONS(2784),
    [sym_cast] = ACTIONS(2784),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2784),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2784),
    [sym_delegate] = ACTIONS(2784),
    [sym_delete] = ACTIONS(2784),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2784),
    [sym_else] = ACTIONS(2784),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2784),
    [sym_foreach] = ACTIONS(2784),
    [sym_foreach_reverse] = ACTIONS(2784),
    [sym_function] = ACTIONS(2784),
    [sym_goto] = ACTIONS(2784),
    [sym_if] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2784),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2784),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2784),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2784),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2784),
    [sym_try] = ACTIONS(2784),
    [sym_typeid] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2784),
    [sym_with] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2782),
    [anon_sym_r_DQUOTE] = ACTIONS(2782),
    [anon_sym_x_DQUOTE] = ACTIONS(2782),
    [anon_sym_DQUOTE] = ACTIONS(2782),
    [anon_sym_i_BQUOTE] = ACTIONS(2782),
    [anon_sym_i_DQUOTE] = ACTIONS(2782),
    [anon_sym_iq_LBRACE] = ACTIONS(2782),
    [aux_sym_char_literal_token1] = ACTIONS(2782),
    [anon_sym_SQUOTE] = ACTIONS(2784),
    [anon_sym___DATE__] = ACTIONS(2784),
    [anon_sym___FILE__] = ACTIONS(2784),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2784),
    [anon_sym___FUNCTION__] = ACTIONS(2784),
    [anon_sym___LINE__] = ACTIONS(2784),
    [anon_sym___MODULE__] = ACTIONS(2784),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2784),
    [anon_sym___TIME__] = ACTIONS(2784),
    [anon_sym___TIMESTAMP__] = ACTIONS(2784),
    [anon_sym___VENDOR__] = ACTIONS(2784),
    [anon_sym___VERSION__] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2782),
    [sym_float_literal] = ACTIONS(2782),
    [sym__string] = ACTIONS(2782),
  },
  [608] = {
    [sym_import_declaration] = STATE(615),
    [sym_mixin_declaration] = STATE(615),
    [sym__declaration] = STATE(615),
    [sym__declaration2] = STATE(615),
    [sym_variable_declaration] = STATE(615),
    [sym_manifest_constant] = STATE(615),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(615),
    [sym_alias_declaration] = STATE(615),
    [sym_alias_reassign] = STATE(615),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(615),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(615),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(615),
    [sym_union_declaration] = STATE(615),
    [sym_postblit] = STATE(615),
    [sym_invariant_declaration] = STATE(615),
    [sym_class_declaration] = STATE(615),
    [sym_constructor] = STATE(615),
    [sym_destructor] = STATE(615),
    [sym_alias_this] = STATE(615),
    [sym_interface_declaration] = STATE(615),
    [sym_enum_declaration] = STATE(615),
    [sym_anonymous_enum_declaration] = STATE(615),
    [sym_function_declaration] = STATE(615),
    [sym_template_declaration] = STATE(615),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(615),
    [sym_template_mixin] = STATE(615),
    [sym_conditional_declaration] = STATE(615),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(615),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(615),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(615),
    [sym_static_assert] = STATE(615),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(615),
    [aux_sym_source_file_repeat1] = STATE(615),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2950),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [609] = {
    [sym_import_declaration] = STATE(606),
    [sym_mixin_declaration] = STATE(606),
    [sym__declaration] = STATE(606),
    [sym__declaration2] = STATE(606),
    [sym_variable_declaration] = STATE(606),
    [sym_manifest_constant] = STATE(606),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(606),
    [sym_alias_declaration] = STATE(606),
    [sym_alias_reassign] = STATE(606),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(606),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(606),
    [sym_union_declaration] = STATE(606),
    [sym_postblit] = STATE(606),
    [sym_invariant_declaration] = STATE(606),
    [sym_class_declaration] = STATE(606),
    [sym_constructor] = STATE(606),
    [sym_destructor] = STATE(606),
    [sym_alias_this] = STATE(606),
    [sym_interface_declaration] = STATE(606),
    [sym_enum_declaration] = STATE(606),
    [sym_anonymous_enum_declaration] = STATE(606),
    [sym_function_declaration] = STATE(606),
    [sym_template_declaration] = STATE(606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(606),
    [sym_template_mixin] = STATE(606),
    [sym_conditional_declaration] = STATE(606),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(606),
    [sym_static_assert] = STATE(606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(606),
    [aux_sym_source_file_repeat1] = STATE(606),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2948),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [610] = {
    [sym_import_declaration] = STATE(606),
    [sym_mixin_declaration] = STATE(606),
    [sym__declaration] = STATE(606),
    [sym__declaration2] = STATE(606),
    [sym_variable_declaration] = STATE(606),
    [sym_manifest_constant] = STATE(606),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(606),
    [sym_alias_declaration] = STATE(606),
    [sym_alias_reassign] = STATE(606),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(606),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(606),
    [sym_union_declaration] = STATE(606),
    [sym_postblit] = STATE(606),
    [sym_invariant_declaration] = STATE(606),
    [sym_class_declaration] = STATE(606),
    [sym_constructor] = STATE(606),
    [sym_destructor] = STATE(606),
    [sym_alias_this] = STATE(606),
    [sym_interface_declaration] = STATE(606),
    [sym_enum_declaration] = STATE(606),
    [sym_anonymous_enum_declaration] = STATE(606),
    [sym_function_declaration] = STATE(606),
    [sym_template_declaration] = STATE(606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(606),
    [sym_template_mixin] = STATE(606),
    [sym_conditional_declaration] = STATE(606),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(606),
    [sym_static_assert] = STATE(606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(606),
    [aux_sym_source_file_repeat1] = STATE(606),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2810),
    [anon_sym_RBRACE] = ACTIONS(2810),
    [anon_sym_LBRACE] = ACTIONS(2810),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2810),
    [anon_sym_DASH] = ACTIONS(2812),
    [anon_sym_DASH_DASH] = ACTIONS(2810),
    [anon_sym_PLUS] = ACTIONS(2812),
    [anon_sym_PLUS_PLUS] = ACTIONS(2810),
    [anon_sym_BANG] = ACTIONS(2810),
    [anon_sym_LPAREN] = ACTIONS(2810),
    [anon_sym_RPAREN] = ACTIONS(2810),
    [anon_sym_LBRACK] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2948),
    [anon_sym_DOLLAR] = ACTIONS(2810),
    [anon_sym_STAR] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2812),
    [sym_false] = ACTIONS(2812),
    [sym_null] = ACTIONS(2812),
    [sym_super] = ACTIONS(2812),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2812),
    [sym_assert] = ACTIONS(2812),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2812),
    [sym_case] = ACTIONS(2812),
    [sym_cast] = ACTIONS(2812),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2812),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2812),
    [sym_delegate] = ACTIONS(2812),
    [sym_delete] = ACTIONS(2812),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2812),
    [sym_foreach] = ACTIONS(2812),
    [sym_foreach_reverse] = ACTIONS(2812),
    [sym_function] = ACTIONS(2812),
    [sym_goto] = ACTIONS(2812),
    [sym_if] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2812),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2812),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2812),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2812),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2812),
    [sym_try] = ACTIONS(2812),
    [sym_typeid] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2812),
    [sym_with] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2810),
    [anon_sym_r_DQUOTE] = ACTIONS(2810),
    [anon_sym_x_DQUOTE] = ACTIONS(2810),
    [anon_sym_DQUOTE] = ACTIONS(2810),
    [anon_sym_i_BQUOTE] = ACTIONS(2810),
    [anon_sym_i_DQUOTE] = ACTIONS(2810),
    [anon_sym_iq_LBRACE] = ACTIONS(2810),
    [aux_sym_char_literal_token1] = ACTIONS(2810),
    [anon_sym_SQUOTE] = ACTIONS(2812),
    [anon_sym___DATE__] = ACTIONS(2812),
    [anon_sym___FILE__] = ACTIONS(2812),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2812),
    [anon_sym___FUNCTION__] = ACTIONS(2812),
    [anon_sym___LINE__] = ACTIONS(2812),
    [anon_sym___MODULE__] = ACTIONS(2812),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2812),
    [anon_sym___TIME__] = ACTIONS(2812),
    [anon_sym___TIMESTAMP__] = ACTIONS(2812),
    [anon_sym___VENDOR__] = ACTIONS(2812),
    [anon_sym___VERSION__] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2810),
    [sym_float_literal] = ACTIONS(2810),
    [sym__string] = ACTIONS(2810),
  },
  [611] = {
    [sym_import_declaration] = STATE(610),
    [sym_mixin_declaration] = STATE(610),
    [sym__declaration] = STATE(610),
    [sym__declaration2] = STATE(610),
    [sym_variable_declaration] = STATE(610),
    [sym_manifest_constant] = STATE(610),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(610),
    [sym_alias_declaration] = STATE(610),
    [sym_alias_reassign] = STATE(610),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(610),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(610),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(610),
    [sym_union_declaration] = STATE(610),
    [sym_postblit] = STATE(610),
    [sym_invariant_declaration] = STATE(610),
    [sym_class_declaration] = STATE(610),
    [sym_constructor] = STATE(610),
    [sym_destructor] = STATE(610),
    [sym_alias_this] = STATE(610),
    [sym_interface_declaration] = STATE(610),
    [sym_enum_declaration] = STATE(610),
    [sym_anonymous_enum_declaration] = STATE(610),
    [sym_function_declaration] = STATE(610),
    [sym_template_declaration] = STATE(610),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(610),
    [sym_template_mixin] = STATE(610),
    [sym_conditional_declaration] = STATE(610),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(610),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(610),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(610),
    [sym_static_assert] = STATE(610),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(610),
    [aux_sym_source_file_repeat1] = STATE(610),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2804),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_LBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2804),
    [anon_sym_DASH] = ACTIONS(2806),
    [anon_sym_DASH_DASH] = ACTIONS(2804),
    [anon_sym_PLUS] = ACTIONS(2806),
    [anon_sym_PLUS_PLUS] = ACTIONS(2804),
    [anon_sym_BANG] = ACTIONS(2804),
    [anon_sym_LPAREN] = ACTIONS(2804),
    [anon_sym_RPAREN] = ACTIONS(2804),
    [anon_sym_LBRACK] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2952),
    [anon_sym_DOLLAR] = ACTIONS(2804),
    [anon_sym_STAR] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2806),
    [sym_false] = ACTIONS(2806),
    [sym_null] = ACTIONS(2806),
    [sym_super] = ACTIONS(2806),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2806),
    [sym_assert] = ACTIONS(2806),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2806),
    [sym_case] = ACTIONS(2806),
    [sym_cast] = ACTIONS(2806),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2806),
    [sym_delegate] = ACTIONS(2806),
    [sym_delete] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2806),
    [sym_foreach] = ACTIONS(2806),
    [sym_foreach_reverse] = ACTIONS(2806),
    [sym_function] = ACTIONS(2806),
    [sym_goto] = ACTIONS(2806),
    [sym_if] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2806),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2806),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2806),
    [sym_try] = ACTIONS(2806),
    [sym_typeid] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2806),
    [sym_with] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2804),
    [anon_sym_r_DQUOTE] = ACTIONS(2804),
    [anon_sym_x_DQUOTE] = ACTIONS(2804),
    [anon_sym_DQUOTE] = ACTIONS(2804),
    [anon_sym_i_BQUOTE] = ACTIONS(2804),
    [anon_sym_i_DQUOTE] = ACTIONS(2804),
    [anon_sym_iq_LBRACE] = ACTIONS(2804),
    [aux_sym_char_literal_token1] = ACTIONS(2804),
    [anon_sym_SQUOTE] = ACTIONS(2806),
    [anon_sym___DATE__] = ACTIONS(2806),
    [anon_sym___FILE__] = ACTIONS(2806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2806),
    [anon_sym___FUNCTION__] = ACTIONS(2806),
    [anon_sym___LINE__] = ACTIONS(2806),
    [anon_sym___MODULE__] = ACTIONS(2806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2806),
    [anon_sym___TIME__] = ACTIONS(2806),
    [anon_sym___TIMESTAMP__] = ACTIONS(2806),
    [anon_sym___VENDOR__] = ACTIONS(2806),
    [anon_sym___VERSION__] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2804),
    [sym_float_literal] = ACTIONS(2804),
    [sym__string] = ACTIONS(2804),
  },
  [612] = {
    [sym_import_declaration] = STATE(606),
    [sym_mixin_declaration] = STATE(606),
    [sym__declaration] = STATE(606),
    [sym__declaration2] = STATE(606),
    [sym_variable_declaration] = STATE(606),
    [sym_manifest_constant] = STATE(606),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(606),
    [sym_alias_declaration] = STATE(606),
    [sym_alias_reassign] = STATE(606),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(606),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(606),
    [sym_union_declaration] = STATE(606),
    [sym_postblit] = STATE(606),
    [sym_invariant_declaration] = STATE(606),
    [sym_class_declaration] = STATE(606),
    [sym_constructor] = STATE(606),
    [sym_destructor] = STATE(606),
    [sym_alias_this] = STATE(606),
    [sym_interface_declaration] = STATE(606),
    [sym_enum_declaration] = STATE(606),
    [sym_anonymous_enum_declaration] = STATE(606),
    [sym_function_declaration] = STATE(606),
    [sym_template_declaration] = STATE(606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(606),
    [sym_template_mixin] = STATE(606),
    [sym_conditional_declaration] = STATE(606),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(606),
    [sym_static_assert] = STATE(606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(606),
    [aux_sym_source_file_repeat1] = STATE(606),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2804),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_LBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2804),
    [anon_sym_DASH] = ACTIONS(2806),
    [anon_sym_DASH_DASH] = ACTIONS(2804),
    [anon_sym_PLUS] = ACTIONS(2806),
    [anon_sym_PLUS_PLUS] = ACTIONS(2804),
    [anon_sym_BANG] = ACTIONS(2804),
    [anon_sym_LPAREN] = ACTIONS(2804),
    [anon_sym_RPAREN] = ACTIONS(2804),
    [anon_sym_LBRACK] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2948),
    [anon_sym_DOLLAR] = ACTIONS(2804),
    [anon_sym_STAR] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2806),
    [sym_false] = ACTIONS(2806),
    [sym_null] = ACTIONS(2806),
    [sym_super] = ACTIONS(2806),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2806),
    [sym_assert] = ACTIONS(2806),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2806),
    [sym_case] = ACTIONS(2806),
    [sym_cast] = ACTIONS(2806),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2806),
    [sym_delegate] = ACTIONS(2806),
    [sym_delete] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2806),
    [sym_foreach] = ACTIONS(2806),
    [sym_foreach_reverse] = ACTIONS(2806),
    [sym_function] = ACTIONS(2806),
    [sym_goto] = ACTIONS(2806),
    [sym_if] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2806),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2806),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2806),
    [sym_try] = ACTIONS(2806),
    [sym_typeid] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2806),
    [sym_with] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2804),
    [anon_sym_r_DQUOTE] = ACTIONS(2804),
    [anon_sym_x_DQUOTE] = ACTIONS(2804),
    [anon_sym_DQUOTE] = ACTIONS(2804),
    [anon_sym_i_BQUOTE] = ACTIONS(2804),
    [anon_sym_i_DQUOTE] = ACTIONS(2804),
    [anon_sym_iq_LBRACE] = ACTIONS(2804),
    [aux_sym_char_literal_token1] = ACTIONS(2804),
    [anon_sym_SQUOTE] = ACTIONS(2806),
    [anon_sym___DATE__] = ACTIONS(2806),
    [anon_sym___FILE__] = ACTIONS(2806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2806),
    [anon_sym___FUNCTION__] = ACTIONS(2806),
    [anon_sym___LINE__] = ACTIONS(2806),
    [anon_sym___MODULE__] = ACTIONS(2806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2806),
    [anon_sym___TIME__] = ACTIONS(2806),
    [anon_sym___TIMESTAMP__] = ACTIONS(2806),
    [anon_sym___VENDOR__] = ACTIONS(2806),
    [anon_sym___VERSION__] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2804),
    [sym_float_literal] = ACTIONS(2804),
    [sym__string] = ACTIONS(2804),
  },
  [613] = {
    [sym_import_declaration] = STATE(612),
    [sym_mixin_declaration] = STATE(612),
    [sym__declaration] = STATE(612),
    [sym__declaration2] = STATE(612),
    [sym_variable_declaration] = STATE(612),
    [sym_manifest_constant] = STATE(612),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(612),
    [sym_alias_declaration] = STATE(612),
    [sym_alias_reassign] = STATE(612),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(612),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(612),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(612),
    [sym_union_declaration] = STATE(612),
    [sym_postblit] = STATE(612),
    [sym_invariant_declaration] = STATE(612),
    [sym_class_declaration] = STATE(612),
    [sym_constructor] = STATE(612),
    [sym_destructor] = STATE(612),
    [sym_alias_this] = STATE(612),
    [sym_interface_declaration] = STATE(612),
    [sym_enum_declaration] = STATE(612),
    [sym_anonymous_enum_declaration] = STATE(612),
    [sym_function_declaration] = STATE(612),
    [sym_template_declaration] = STATE(612),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(612),
    [sym_template_mixin] = STATE(612),
    [sym_conditional_declaration] = STATE(612),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(612),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(612),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(612),
    [sym_static_assert] = STATE(612),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(612),
    [aux_sym_source_file_repeat1] = STATE(612),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2643),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_LBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2643),
    [anon_sym_DASH] = ACTIONS(2645),
    [anon_sym_DASH_DASH] = ACTIONS(2643),
    [anon_sym_PLUS] = ACTIONS(2645),
    [anon_sym_PLUS_PLUS] = ACTIONS(2643),
    [anon_sym_BANG] = ACTIONS(2643),
    [anon_sym_LPAREN] = ACTIONS(2643),
    [anon_sym_RPAREN] = ACTIONS(2643),
    [anon_sym_LBRACK] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2954),
    [anon_sym_DOLLAR] = ACTIONS(2643),
    [anon_sym_STAR] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2645),
    [sym_false] = ACTIONS(2645),
    [sym_null] = ACTIONS(2645),
    [sym_super] = ACTIONS(2645),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2645),
    [sym_assert] = ACTIONS(2645),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2645),
    [sym_case] = ACTIONS(2645),
    [sym_cast] = ACTIONS(2645),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2645),
    [sym_delegate] = ACTIONS(2645),
    [sym_delete] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2645),
    [sym_foreach] = ACTIONS(2645),
    [sym_foreach_reverse] = ACTIONS(2645),
    [sym_function] = ACTIONS(2645),
    [sym_goto] = ACTIONS(2645),
    [sym_if] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2645),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2645),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2645),
    [sym_try] = ACTIONS(2645),
    [sym_typeid] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2645),
    [sym_with] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2643),
    [anon_sym_r_DQUOTE] = ACTIONS(2643),
    [anon_sym_x_DQUOTE] = ACTIONS(2643),
    [anon_sym_DQUOTE] = ACTIONS(2643),
    [anon_sym_i_BQUOTE] = ACTIONS(2643),
    [anon_sym_i_DQUOTE] = ACTIONS(2643),
    [anon_sym_iq_LBRACE] = ACTIONS(2643),
    [aux_sym_char_literal_token1] = ACTIONS(2643),
    [anon_sym_SQUOTE] = ACTIONS(2645),
    [anon_sym___DATE__] = ACTIONS(2645),
    [anon_sym___FILE__] = ACTIONS(2645),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2645),
    [anon_sym___FUNCTION__] = ACTIONS(2645),
    [anon_sym___LINE__] = ACTIONS(2645),
    [anon_sym___MODULE__] = ACTIONS(2645),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2645),
    [anon_sym___TIME__] = ACTIONS(2645),
    [anon_sym___TIMESTAMP__] = ACTIONS(2645),
    [anon_sym___VENDOR__] = ACTIONS(2645),
    [anon_sym___VERSION__] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2643),
    [sym_float_literal] = ACTIONS(2643),
    [sym__string] = ACTIONS(2643),
  },
  [614] = {
    [sym_import_declaration] = STATE(606),
    [sym_mixin_declaration] = STATE(606),
    [sym__declaration] = STATE(606),
    [sym__declaration2] = STATE(606),
    [sym_variable_declaration] = STATE(606),
    [sym_manifest_constant] = STATE(606),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(606),
    [sym_alias_declaration] = STATE(606),
    [sym_alias_reassign] = STATE(606),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(606),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(606),
    [sym_union_declaration] = STATE(606),
    [sym_postblit] = STATE(606),
    [sym_invariant_declaration] = STATE(606),
    [sym_class_declaration] = STATE(606),
    [sym_constructor] = STATE(606),
    [sym_destructor] = STATE(606),
    [sym_alias_this] = STATE(606),
    [sym_interface_declaration] = STATE(606),
    [sym_enum_declaration] = STATE(606),
    [sym_anonymous_enum_declaration] = STATE(606),
    [sym_function_declaration] = STATE(606),
    [sym_template_declaration] = STATE(606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(606),
    [sym_template_mixin] = STATE(606),
    [sym_conditional_declaration] = STATE(606),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(606),
    [sym_static_assert] = STATE(606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(606),
    [aux_sym_source_file_repeat1] = STATE(606),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2643),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_LBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2643),
    [anon_sym_DASH] = ACTIONS(2645),
    [anon_sym_DASH_DASH] = ACTIONS(2643),
    [anon_sym_PLUS] = ACTIONS(2645),
    [anon_sym_PLUS_PLUS] = ACTIONS(2643),
    [anon_sym_BANG] = ACTIONS(2643),
    [anon_sym_LPAREN] = ACTIONS(2643),
    [anon_sym_RPAREN] = ACTIONS(2643),
    [anon_sym_LBRACK] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2948),
    [anon_sym_DOLLAR] = ACTIONS(2643),
    [anon_sym_STAR] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2645),
    [sym_false] = ACTIONS(2645),
    [sym_null] = ACTIONS(2645),
    [sym_super] = ACTIONS(2645),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2645),
    [sym_assert] = ACTIONS(2645),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2645),
    [sym_case] = ACTIONS(2645),
    [sym_cast] = ACTIONS(2645),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2645),
    [sym_delegate] = ACTIONS(2645),
    [sym_delete] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2645),
    [sym_foreach] = ACTIONS(2645),
    [sym_foreach_reverse] = ACTIONS(2645),
    [sym_function] = ACTIONS(2645),
    [sym_goto] = ACTIONS(2645),
    [sym_if] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2645),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2645),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2645),
    [sym_try] = ACTIONS(2645),
    [sym_typeid] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2645),
    [sym_with] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2643),
    [anon_sym_r_DQUOTE] = ACTIONS(2643),
    [anon_sym_x_DQUOTE] = ACTIONS(2643),
    [anon_sym_DQUOTE] = ACTIONS(2643),
    [anon_sym_i_BQUOTE] = ACTIONS(2643),
    [anon_sym_i_DQUOTE] = ACTIONS(2643),
    [anon_sym_iq_LBRACE] = ACTIONS(2643),
    [aux_sym_char_literal_token1] = ACTIONS(2643),
    [anon_sym_SQUOTE] = ACTIONS(2645),
    [anon_sym___DATE__] = ACTIONS(2645),
    [anon_sym___FILE__] = ACTIONS(2645),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2645),
    [anon_sym___FUNCTION__] = ACTIONS(2645),
    [anon_sym___LINE__] = ACTIONS(2645),
    [anon_sym___MODULE__] = ACTIONS(2645),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2645),
    [anon_sym___TIME__] = ACTIONS(2645),
    [anon_sym___TIMESTAMP__] = ACTIONS(2645),
    [anon_sym___VENDOR__] = ACTIONS(2645),
    [anon_sym___VERSION__] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2643),
    [sym_float_literal] = ACTIONS(2643),
    [sym__string] = ACTIONS(2643),
  },
  [615] = {
    [sym_import_declaration] = STATE(606),
    [sym_mixin_declaration] = STATE(606),
    [sym__declaration] = STATE(606),
    [sym__declaration2] = STATE(606),
    [sym_variable_declaration] = STATE(606),
    [sym_manifest_constant] = STATE(606),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(606),
    [sym_alias_declaration] = STATE(606),
    [sym_alias_reassign] = STATE(606),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(606),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(606),
    [sym_union_declaration] = STATE(606),
    [sym_postblit] = STATE(606),
    [sym_invariant_declaration] = STATE(606),
    [sym_class_declaration] = STATE(606),
    [sym_constructor] = STATE(606),
    [sym_destructor] = STATE(606),
    [sym_alias_this] = STATE(606),
    [sym_interface_declaration] = STATE(606),
    [sym_enum_declaration] = STATE(606),
    [sym_anonymous_enum_declaration] = STATE(606),
    [sym_function_declaration] = STATE(606),
    [sym_template_declaration] = STATE(606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(606),
    [sym_template_mixin] = STATE(606),
    [sym_conditional_declaration] = STATE(606),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(606),
    [sym_static_assert] = STATE(606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(606),
    [aux_sym_source_file_repeat1] = STATE(606),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2948),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(25),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2878),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(37),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2882),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(25),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [616] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7563),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2958),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(686),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_abstract] = ACTIONS(2960),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(2960),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(2964),
    [sym_debug] = ACTIONS(2960),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(2960),
    [sym_do] = ACTIONS(2966),
    [sym_enum] = ACTIONS(2960),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(2960),
    [sym_final] = ACTIONS(2960),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(2960),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(2960),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(2960),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(2960),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(2960),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(2960),
    [sym_template] = ACTIONS(2960),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(2960),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [617] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7055),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2974),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(686),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_abstract] = ACTIONS(2960),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(2960),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(2964),
    [sym_debug] = ACTIONS(2960),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(2960),
    [sym_do] = ACTIONS(2966),
    [sym_enum] = ACTIONS(2960),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(2960),
    [sym_final] = ACTIONS(2960),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(2960),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(2960),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(2960),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(2960),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(2960),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(2960),
    [sym_template] = ACTIONS(2960),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(2960),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [618] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7470),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2976),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(686),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_abstract] = ACTIONS(2960),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(2960),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(2964),
    [sym_debug] = ACTIONS(2960),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(2960),
    [sym_do] = ACTIONS(2966),
    [sym_enum] = ACTIONS(2960),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(2960),
    [sym_final] = ACTIONS(2960),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(2960),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(2960),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(2960),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(2960),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(2960),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(2960),
    [sym_template] = ACTIONS(2960),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(2960),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [619] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7221),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(2978),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(686),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_abstract] = ACTIONS(2960),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(2960),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(2964),
    [sym_debug] = ACTIONS(2960),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_deprecated] = ACTIONS(2960),
    [sym_do] = ACTIONS(2966),
    [sym_enum] = ACTIONS(2960),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(2960),
    [sym_final] = ACTIONS(2960),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_nothrow] = ACTIONS(2960),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(2960),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(2960),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(2960),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(2960),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(2960),
    [sym_template] = ACTIONS(2960),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(2960),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [620] = {
    [sym_identifier] = ACTIONS(2980),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2982),
    [anon_sym_RBRACE] = ACTIONS(2982),
    [anon_sym_LBRACE] = ACTIONS(2982),
    [anon_sym_SLASH] = ACTIONS(2980),
    [anon_sym_SLASH_EQ] = ACTIONS(2982),
    [anon_sym_DOT] = ACTIONS(2980),
    [anon_sym_DOT_DOT] = ACTIONS(2980),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2982),
    [anon_sym_AMP] = ACTIONS(2980),
    [anon_sym_AMP_EQ] = ACTIONS(2982),
    [anon_sym_AMP_AMP] = ACTIONS(2982),
    [anon_sym_PIPE] = ACTIONS(2980),
    [anon_sym_PIPE_EQ] = ACTIONS(2982),
    [anon_sym_PIPE_PIPE] = ACTIONS(2982),
    [anon_sym_DASH] = ACTIONS(2980),
    [anon_sym_DASH_EQ] = ACTIONS(2982),
    [anon_sym_DASH_DASH] = ACTIONS(2982),
    [anon_sym_PLUS] = ACTIONS(2980),
    [anon_sym_PLUS_EQ] = ACTIONS(2982),
    [anon_sym_PLUS_PLUS] = ACTIONS(2982),
    [anon_sym_LT] = ACTIONS(2980),
    [anon_sym_LT_EQ] = ACTIONS(2982),
    [anon_sym_LT_LT] = ACTIONS(2980),
    [anon_sym_LT_LT_EQ] = ACTIONS(2982),
    [anon_sym_GT] = ACTIONS(2980),
    [anon_sym_GT_EQ] = ACTIONS(2982),
    [anon_sym_GT_GT_EQ] = ACTIONS(2982),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2982),
    [anon_sym_GT_GT] = ACTIONS(2980),
    [anon_sym_GT_GT_GT] = ACTIONS(2980),
    [anon_sym_BANG] = ACTIONS(2980),
    [anon_sym_BANG_EQ] = ACTIONS(2982),
    [anon_sym_LPAREN] = ACTIONS(2982),
    [anon_sym_RPAREN] = ACTIONS(2982),
    [anon_sym_LBRACK] = ACTIONS(2982),
    [anon_sym_RBRACK] = ACTIONS(2982),
    [anon_sym_QMARK] = ACTIONS(2982),
    [anon_sym_COMMA] = ACTIONS(2982),
    [anon_sym_SEMI] = ACTIONS(2982),
    [anon_sym_COLON] = ACTIONS(2982),
    [anon_sym_DOLLAR] = ACTIONS(2980),
    [anon_sym_EQ] = ACTIONS(2980),
    [anon_sym_EQ_EQ] = ACTIONS(2982),
    [anon_sym_STAR] = ACTIONS(2980),
    [anon_sym_STAR_EQ] = ACTIONS(2982),
    [anon_sym_PERCENT] = ACTIONS(2980),
    [anon_sym_PERCENT_EQ] = ACTIONS(2982),
    [anon_sym_CARET] = ACTIONS(2980),
    [anon_sym_CARET_EQ] = ACTIONS(2982),
    [anon_sym_CARET_CARET] = ACTIONS(2980),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2982),
    [anon_sym_TILDE] = ACTIONS(2980),
    [anon_sym_TILDE_EQ] = ACTIONS(2982),
    [anon_sym_AT] = ACTIONS(2982),
    [anon_sym_EQ_GT] = ACTIONS(2982),
    [anon_sym_POUND] = ACTIONS(2982),
    [anon_sym_BANGin] = ACTIONS(2982),
    [anon_sym_BANGis] = ACTIONS(2982),
    [sym_bool] = ACTIONS(2980),
    [sym_byte] = ACTIONS(2980),
    [sym_ubyte] = ACTIONS(2980),
    [sym_char] = ACTIONS(2980),
    [sym_short] = ACTIONS(2980),
    [sym_ushort] = ACTIONS(2980),
    [sym_int] = ACTIONS(2980),
    [sym_uint] = ACTIONS(2980),
    [sym_long] = ACTIONS(2980),
    [sym_ulong] = ACTIONS(2980),
    [sym_cent] = ACTIONS(2980),
    [sym_ucent] = ACTIONS(2980),
    [sym_wchar] = ACTIONS(2980),
    [sym_dchar] = ACTIONS(2980),
    [sym_float] = ACTIONS(2980),
    [sym_double] = ACTIONS(2980),
    [sym_real] = ACTIONS(2980),
    [sym_ifloat] = ACTIONS(2980),
    [sym_idouble] = ACTIONS(2980),
    [sym_ireal] = ACTIONS(2980),
    [sym_cfloat] = ACTIONS(2980),
    [sym_cdouble] = ACTIONS(2980),
    [sym_creal] = ACTIONS(2980),
    [sym_size_t] = ACTIONS(2980),
    [sym_ptrdiff_t] = ACTIONS(2980),
    [sym_string] = ACTIONS(2980),
    [sym_cstring] = ACTIONS(2980),
    [sym_dstring] = ACTIONS(2980),
    [sym_wstring] = ACTIONS(2980),
    [sym_noreturn] = ACTIONS(2980),
    [sym_true] = ACTIONS(2980),
    [sym_false] = ACTIONS(2980),
    [sym_null] = ACTIONS(2980),
    [sym_super] = ACTIONS(2980),
    [sym_this] = ACTIONS(2980),
    [sym_abstract] = ACTIONS(2980),
    [sym_alias] = ACTIONS(2980),
    [sym_align] = ACTIONS(2980),
    [sym_asm] = ACTIONS(2980),
    [sym_assert] = ACTIONS(2980),
    [sym_auto] = ACTIONS(2980),
    [sym_break] = ACTIONS(2980),
    [sym_case] = ACTIONS(2980),
    [sym_cast] = ACTIONS(2980),
    [sym_catch] = ACTIONS(2980),
    [sym_class] = ACTIONS(2980),
    [sym_const] = ACTIONS(2980),
    [sym_continue] = ACTIONS(2980),
    [sym_debug] = ACTIONS(2980),
    [sym_default] = ACTIONS(2980),
    [sym_delegate] = ACTIONS(2980),
    [sym_delete] = ACTIONS(2980),
    [sym_deprecated] = ACTIONS(2980),
    [sym_do] = ACTIONS(2980),
    [sym_else] = ACTIONS(2980),
    [sym_enum] = ACTIONS(2980),
    [sym_export] = ACTIONS(2980),
    [sym_extern] = ACTIONS(2980),
    [sym_final] = ACTIONS(2980),
    [sym_finally] = ACTIONS(2980),
    [sym_for] = ACTIONS(2980),
    [sym_foreach] = ACTIONS(2980),
    [sym_foreach_reverse] = ACTIONS(2980),
    [sym_function] = ACTIONS(2980),
    [sym_goto] = ACTIONS(2980),
    [sym_if] = ACTIONS(2980),
    [sym_immutable] = ACTIONS(2980),
    [sym_import] = ACTIONS(2980),
    [sym_in] = ACTIONS(2980),
    [sym_inout] = ACTIONS(2980),
    [sym_interface] = ACTIONS(2980),
    [sym_invariant] = ACTIONS(2980),
    [sym_is] = ACTIONS(2980),
    [sym_lazy] = ACTIONS(2980),
    [sym_mixin] = ACTIONS(2980),
    [sym_module] = ACTIONS(2980),
    [sym_new] = ACTIONS(2980),
    [sym_nothrow] = ACTIONS(2980),
    [sym_out] = ACTIONS(2980),
    [sym_override] = ACTIONS(2980),
    [sym_package] = ACTIONS(2980),
    [sym_pragma] = ACTIONS(2980),
    [sym_private] = ACTIONS(2980),
    [sym_protected] = ACTIONS(2980),
    [sym_public] = ACTIONS(2980),
    [sym_pure] = ACTIONS(2980),
    [sym_ref] = ACTIONS(2980),
    [sym_return] = ACTIONS(2980),
    [sym_scope] = ACTIONS(2980),
    [sym_shared] = ACTIONS(2980),
    [sym_static] = ACTIONS(2980),
    [sym_struct] = ACTIONS(2980),
    [sym_switch] = ACTIONS(2980),
    [sym_synchronized] = ACTIONS(2980),
    [sym_template] = ACTIONS(2980),
    [sym_throw] = ACTIONS(2980),
    [sym_try] = ACTIONS(2980),
    [sym_typeid] = ACTIONS(2980),
    [sym_typeof] = ACTIONS(2980),
    [sym_union] = ACTIONS(2980),
    [sym_unittest] = ACTIONS(2980),
    [sym_version] = ACTIONS(2980),
    [sym_while] = ACTIONS(2980),
    [sym_with] = ACTIONS(2980),
    [sym_parameters_] = ACTIONS(2980),
    [sym_gshared] = ACTIONS(2980),
    [sym_traits] = ACTIONS(2980),
    [sym_vector] = ACTIONS(2980),
    [sym_void] = ACTIONS(2980),
    [anon_sym_BQUOTE] = ACTIONS(2982),
    [anon_sym_r_DQUOTE] = ACTIONS(2982),
    [anon_sym_x_DQUOTE] = ACTIONS(2982),
    [anon_sym_DQUOTE] = ACTIONS(2982),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2982),
    [anon_sym_i_BQUOTE] = ACTIONS(2982),
    [anon_sym_i_DQUOTE] = ACTIONS(2982),
    [anon_sym_iq_LBRACE] = ACTIONS(2982),
    [aux_sym_char_literal_token1] = ACTIONS(2982),
    [anon_sym_SQUOTE] = ACTIONS(2980),
    [anon_sym___DATE__] = ACTIONS(2980),
    [anon_sym___FILE__] = ACTIONS(2980),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2980),
    [anon_sym___FUNCTION__] = ACTIONS(2980),
    [anon_sym___LINE__] = ACTIONS(2980),
    [anon_sym___MODULE__] = ACTIONS(2980),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2980),
    [anon_sym___TIME__] = ACTIONS(2980),
    [anon_sym___TIMESTAMP__] = ACTIONS(2980),
    [anon_sym___VENDOR__] = ACTIONS(2980),
    [anon_sym___VERSION__] = ACTIONS(2980),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2982),
    [sym_float_literal] = ACTIONS(2982),
    [sym__string] = ACTIONS(2982),
  },
  [621] = {
    [sym_identifier] = ACTIONS(2984),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2986),
    [anon_sym_RBRACE] = ACTIONS(2986),
    [anon_sym_LBRACE] = ACTIONS(2986),
    [anon_sym_SLASH] = ACTIONS(2984),
    [anon_sym_SLASH_EQ] = ACTIONS(2986),
    [anon_sym_DOT] = ACTIONS(2984),
    [anon_sym_DOT_DOT] = ACTIONS(2984),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2986),
    [anon_sym_AMP] = ACTIONS(2984),
    [anon_sym_AMP_EQ] = ACTIONS(2986),
    [anon_sym_AMP_AMP] = ACTIONS(2986),
    [anon_sym_PIPE] = ACTIONS(2984),
    [anon_sym_PIPE_EQ] = ACTIONS(2986),
    [anon_sym_PIPE_PIPE] = ACTIONS(2986),
    [anon_sym_DASH] = ACTIONS(2984),
    [anon_sym_DASH_EQ] = ACTIONS(2986),
    [anon_sym_DASH_DASH] = ACTIONS(2986),
    [anon_sym_PLUS] = ACTIONS(2984),
    [anon_sym_PLUS_EQ] = ACTIONS(2986),
    [anon_sym_PLUS_PLUS] = ACTIONS(2986),
    [anon_sym_LT] = ACTIONS(2984),
    [anon_sym_LT_EQ] = ACTIONS(2986),
    [anon_sym_LT_LT] = ACTIONS(2984),
    [anon_sym_LT_LT_EQ] = ACTIONS(2986),
    [anon_sym_GT] = ACTIONS(2984),
    [anon_sym_GT_EQ] = ACTIONS(2986),
    [anon_sym_GT_GT_EQ] = ACTIONS(2986),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2986),
    [anon_sym_GT_GT] = ACTIONS(2984),
    [anon_sym_GT_GT_GT] = ACTIONS(2984),
    [anon_sym_BANG] = ACTIONS(2984),
    [anon_sym_BANG_EQ] = ACTIONS(2986),
    [anon_sym_LPAREN] = ACTIONS(2986),
    [anon_sym_RPAREN] = ACTIONS(2986),
    [anon_sym_LBRACK] = ACTIONS(2986),
    [anon_sym_RBRACK] = ACTIONS(2986),
    [anon_sym_QMARK] = ACTIONS(2986),
    [anon_sym_COMMA] = ACTIONS(2986),
    [anon_sym_SEMI] = ACTIONS(2986),
    [anon_sym_COLON] = ACTIONS(2986),
    [anon_sym_DOLLAR] = ACTIONS(2984),
    [anon_sym_EQ] = ACTIONS(2984),
    [anon_sym_EQ_EQ] = ACTIONS(2986),
    [anon_sym_STAR] = ACTIONS(2984),
    [anon_sym_STAR_EQ] = ACTIONS(2986),
    [anon_sym_PERCENT] = ACTIONS(2984),
    [anon_sym_PERCENT_EQ] = ACTIONS(2986),
    [anon_sym_CARET] = ACTIONS(2984),
    [anon_sym_CARET_EQ] = ACTIONS(2986),
    [anon_sym_CARET_CARET] = ACTIONS(2984),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2986),
    [anon_sym_TILDE] = ACTIONS(2984),
    [anon_sym_TILDE_EQ] = ACTIONS(2986),
    [anon_sym_AT] = ACTIONS(2986),
    [anon_sym_EQ_GT] = ACTIONS(2986),
    [anon_sym_POUND] = ACTIONS(2986),
    [anon_sym_BANGin] = ACTIONS(2986),
    [anon_sym_BANGis] = ACTIONS(2986),
    [sym_bool] = ACTIONS(2984),
    [sym_byte] = ACTIONS(2984),
    [sym_ubyte] = ACTIONS(2984),
    [sym_char] = ACTIONS(2984),
    [sym_short] = ACTIONS(2984),
    [sym_ushort] = ACTIONS(2984),
    [sym_int] = ACTIONS(2984),
    [sym_uint] = ACTIONS(2984),
    [sym_long] = ACTIONS(2984),
    [sym_ulong] = ACTIONS(2984),
    [sym_cent] = ACTIONS(2984),
    [sym_ucent] = ACTIONS(2984),
    [sym_wchar] = ACTIONS(2984),
    [sym_dchar] = ACTIONS(2984),
    [sym_float] = ACTIONS(2984),
    [sym_double] = ACTIONS(2984),
    [sym_real] = ACTIONS(2984),
    [sym_ifloat] = ACTIONS(2984),
    [sym_idouble] = ACTIONS(2984),
    [sym_ireal] = ACTIONS(2984),
    [sym_cfloat] = ACTIONS(2984),
    [sym_cdouble] = ACTIONS(2984),
    [sym_creal] = ACTIONS(2984),
    [sym_size_t] = ACTIONS(2984),
    [sym_ptrdiff_t] = ACTIONS(2984),
    [sym_string] = ACTIONS(2984),
    [sym_cstring] = ACTIONS(2984),
    [sym_dstring] = ACTIONS(2984),
    [sym_wstring] = ACTIONS(2984),
    [sym_noreturn] = ACTIONS(2984),
    [sym_true] = ACTIONS(2984),
    [sym_false] = ACTIONS(2984),
    [sym_null] = ACTIONS(2984),
    [sym_super] = ACTIONS(2984),
    [sym_this] = ACTIONS(2984),
    [sym_abstract] = ACTIONS(2984),
    [sym_alias] = ACTIONS(2984),
    [sym_align] = ACTIONS(2984),
    [sym_asm] = ACTIONS(2984),
    [sym_assert] = ACTIONS(2984),
    [sym_auto] = ACTIONS(2984),
    [sym_break] = ACTIONS(2984),
    [sym_case] = ACTIONS(2984),
    [sym_cast] = ACTIONS(2984),
    [sym_catch] = ACTIONS(2984),
    [sym_class] = ACTIONS(2984),
    [sym_const] = ACTIONS(2984),
    [sym_continue] = ACTIONS(2984),
    [sym_debug] = ACTIONS(2984),
    [sym_default] = ACTIONS(2984),
    [sym_delegate] = ACTIONS(2984),
    [sym_delete] = ACTIONS(2984),
    [sym_deprecated] = ACTIONS(2984),
    [sym_do] = ACTIONS(2984),
    [sym_else] = ACTIONS(2984),
    [sym_enum] = ACTIONS(2984),
    [sym_export] = ACTIONS(2984),
    [sym_extern] = ACTIONS(2984),
    [sym_final] = ACTIONS(2984),
    [sym_finally] = ACTIONS(2984),
    [sym_for] = ACTIONS(2984),
    [sym_foreach] = ACTIONS(2984),
    [sym_foreach_reverse] = ACTIONS(2984),
    [sym_function] = ACTIONS(2984),
    [sym_goto] = ACTIONS(2984),
    [sym_if] = ACTIONS(2984),
    [sym_immutable] = ACTIONS(2984),
    [sym_import] = ACTIONS(2984),
    [sym_in] = ACTIONS(2984),
    [sym_inout] = ACTIONS(2984),
    [sym_interface] = ACTIONS(2984),
    [sym_invariant] = ACTIONS(2984),
    [sym_is] = ACTIONS(2984),
    [sym_lazy] = ACTIONS(2984),
    [sym_mixin] = ACTIONS(2984),
    [sym_module] = ACTIONS(2984),
    [sym_new] = ACTIONS(2984),
    [sym_nothrow] = ACTIONS(2984),
    [sym_out] = ACTIONS(2984),
    [sym_override] = ACTIONS(2984),
    [sym_package] = ACTIONS(2984),
    [sym_pragma] = ACTIONS(2984),
    [sym_private] = ACTIONS(2984),
    [sym_protected] = ACTIONS(2984),
    [sym_public] = ACTIONS(2984),
    [sym_pure] = ACTIONS(2984),
    [sym_ref] = ACTIONS(2984),
    [sym_return] = ACTIONS(2984),
    [sym_scope] = ACTIONS(2984),
    [sym_shared] = ACTIONS(2984),
    [sym_static] = ACTIONS(2984),
    [sym_struct] = ACTIONS(2984),
    [sym_switch] = ACTIONS(2984),
    [sym_synchronized] = ACTIONS(2984),
    [sym_template] = ACTIONS(2984),
    [sym_throw] = ACTIONS(2984),
    [sym_try] = ACTIONS(2984),
    [sym_typeid] = ACTIONS(2984),
    [sym_typeof] = ACTIONS(2984),
    [sym_union] = ACTIONS(2984),
    [sym_unittest] = ACTIONS(2984),
    [sym_version] = ACTIONS(2984),
    [sym_while] = ACTIONS(2984),
    [sym_with] = ACTIONS(2984),
    [sym_parameters_] = ACTIONS(2984),
    [sym_gshared] = ACTIONS(2984),
    [sym_traits] = ACTIONS(2984),
    [sym_vector] = ACTIONS(2984),
    [sym_void] = ACTIONS(2984),
    [anon_sym_BQUOTE] = ACTIONS(2986),
    [anon_sym_r_DQUOTE] = ACTIONS(2986),
    [anon_sym_x_DQUOTE] = ACTIONS(2986),
    [anon_sym_DQUOTE] = ACTIONS(2986),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2986),
    [anon_sym_i_BQUOTE] = ACTIONS(2986),
    [anon_sym_i_DQUOTE] = ACTIONS(2986),
    [anon_sym_iq_LBRACE] = ACTIONS(2986),
    [aux_sym_char_literal_token1] = ACTIONS(2986),
    [anon_sym_SQUOTE] = ACTIONS(2984),
    [anon_sym___DATE__] = ACTIONS(2984),
    [anon_sym___FILE__] = ACTIONS(2984),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2984),
    [anon_sym___FUNCTION__] = ACTIONS(2984),
    [anon_sym___LINE__] = ACTIONS(2984),
    [anon_sym___MODULE__] = ACTIONS(2984),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2984),
    [anon_sym___TIME__] = ACTIONS(2984),
    [anon_sym___TIMESTAMP__] = ACTIONS(2984),
    [anon_sym___VENDOR__] = ACTIONS(2984),
    [anon_sym___VERSION__] = ACTIONS(2984),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2986),
    [sym_float_literal] = ACTIONS(2986),
    [sym__string] = ACTIONS(2986),
  },
  [622] = {
    [sym_identifier] = ACTIONS(2988),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2990),
    [anon_sym_RBRACE] = ACTIONS(2990),
    [anon_sym_LBRACE] = ACTIONS(2990),
    [anon_sym_SLASH] = ACTIONS(2988),
    [anon_sym_SLASH_EQ] = ACTIONS(2990),
    [anon_sym_DOT] = ACTIONS(2988),
    [anon_sym_DOT_DOT] = ACTIONS(2988),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2990),
    [anon_sym_AMP] = ACTIONS(2988),
    [anon_sym_AMP_EQ] = ACTIONS(2990),
    [anon_sym_AMP_AMP] = ACTIONS(2990),
    [anon_sym_PIPE] = ACTIONS(2988),
    [anon_sym_PIPE_EQ] = ACTIONS(2990),
    [anon_sym_PIPE_PIPE] = ACTIONS(2990),
    [anon_sym_DASH] = ACTIONS(2988),
    [anon_sym_DASH_EQ] = ACTIONS(2990),
    [anon_sym_DASH_DASH] = ACTIONS(2990),
    [anon_sym_PLUS] = ACTIONS(2988),
    [anon_sym_PLUS_EQ] = ACTIONS(2990),
    [anon_sym_PLUS_PLUS] = ACTIONS(2990),
    [anon_sym_LT] = ACTIONS(2988),
    [anon_sym_LT_EQ] = ACTIONS(2990),
    [anon_sym_LT_LT] = ACTIONS(2988),
    [anon_sym_LT_LT_EQ] = ACTIONS(2990),
    [anon_sym_GT] = ACTIONS(2988),
    [anon_sym_GT_EQ] = ACTIONS(2990),
    [anon_sym_GT_GT_EQ] = ACTIONS(2990),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2990),
    [anon_sym_GT_GT] = ACTIONS(2988),
    [anon_sym_GT_GT_GT] = ACTIONS(2988),
    [anon_sym_BANG] = ACTIONS(2988),
    [anon_sym_BANG_EQ] = ACTIONS(2990),
    [anon_sym_LPAREN] = ACTIONS(2990),
    [anon_sym_RPAREN] = ACTIONS(2990),
    [anon_sym_LBRACK] = ACTIONS(2990),
    [anon_sym_RBRACK] = ACTIONS(2990),
    [anon_sym_QMARK] = ACTIONS(2990),
    [anon_sym_COMMA] = ACTIONS(2990),
    [anon_sym_SEMI] = ACTIONS(2990),
    [anon_sym_COLON] = ACTIONS(2990),
    [anon_sym_DOLLAR] = ACTIONS(2988),
    [anon_sym_EQ] = ACTIONS(2988),
    [anon_sym_EQ_EQ] = ACTIONS(2990),
    [anon_sym_STAR] = ACTIONS(2988),
    [anon_sym_STAR_EQ] = ACTIONS(2990),
    [anon_sym_PERCENT] = ACTIONS(2988),
    [anon_sym_PERCENT_EQ] = ACTIONS(2990),
    [anon_sym_CARET] = ACTIONS(2988),
    [anon_sym_CARET_EQ] = ACTIONS(2990),
    [anon_sym_CARET_CARET] = ACTIONS(2988),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2990),
    [anon_sym_TILDE] = ACTIONS(2988),
    [anon_sym_TILDE_EQ] = ACTIONS(2990),
    [anon_sym_AT] = ACTIONS(2990),
    [anon_sym_EQ_GT] = ACTIONS(2990),
    [anon_sym_POUND] = ACTIONS(2990),
    [anon_sym_BANGin] = ACTIONS(2990),
    [anon_sym_BANGis] = ACTIONS(2990),
    [sym_bool] = ACTIONS(2988),
    [sym_byte] = ACTIONS(2988),
    [sym_ubyte] = ACTIONS(2988),
    [sym_char] = ACTIONS(2988),
    [sym_short] = ACTIONS(2988),
    [sym_ushort] = ACTIONS(2988),
    [sym_int] = ACTIONS(2988),
    [sym_uint] = ACTIONS(2988),
    [sym_long] = ACTIONS(2988),
    [sym_ulong] = ACTIONS(2988),
    [sym_cent] = ACTIONS(2988),
    [sym_ucent] = ACTIONS(2988),
    [sym_wchar] = ACTIONS(2988),
    [sym_dchar] = ACTIONS(2988),
    [sym_float] = ACTIONS(2988),
    [sym_double] = ACTIONS(2988),
    [sym_real] = ACTIONS(2988),
    [sym_ifloat] = ACTIONS(2988),
    [sym_idouble] = ACTIONS(2988),
    [sym_ireal] = ACTIONS(2988),
    [sym_cfloat] = ACTIONS(2988),
    [sym_cdouble] = ACTIONS(2988),
    [sym_creal] = ACTIONS(2988),
    [sym_size_t] = ACTIONS(2988),
    [sym_ptrdiff_t] = ACTIONS(2988),
    [sym_string] = ACTIONS(2988),
    [sym_cstring] = ACTIONS(2988),
    [sym_dstring] = ACTIONS(2988),
    [sym_wstring] = ACTIONS(2988),
    [sym_noreturn] = ACTIONS(2988),
    [sym_true] = ACTIONS(2988),
    [sym_false] = ACTIONS(2988),
    [sym_null] = ACTIONS(2988),
    [sym_super] = ACTIONS(2988),
    [sym_this] = ACTIONS(2988),
    [sym_abstract] = ACTIONS(2988),
    [sym_alias] = ACTIONS(2988),
    [sym_align] = ACTIONS(2988),
    [sym_asm] = ACTIONS(2988),
    [sym_assert] = ACTIONS(2988),
    [sym_auto] = ACTIONS(2988),
    [sym_break] = ACTIONS(2988),
    [sym_case] = ACTIONS(2988),
    [sym_cast] = ACTIONS(2988),
    [sym_catch] = ACTIONS(2988),
    [sym_class] = ACTIONS(2988),
    [sym_const] = ACTIONS(2988),
    [sym_continue] = ACTIONS(2988),
    [sym_debug] = ACTIONS(2988),
    [sym_default] = ACTIONS(2988),
    [sym_delegate] = ACTIONS(2988),
    [sym_delete] = ACTIONS(2988),
    [sym_deprecated] = ACTIONS(2988),
    [sym_do] = ACTIONS(2988),
    [sym_else] = ACTIONS(2988),
    [sym_enum] = ACTIONS(2988),
    [sym_export] = ACTIONS(2988),
    [sym_extern] = ACTIONS(2988),
    [sym_final] = ACTIONS(2988),
    [sym_finally] = ACTIONS(2988),
    [sym_for] = ACTIONS(2988),
    [sym_foreach] = ACTIONS(2988),
    [sym_foreach_reverse] = ACTIONS(2988),
    [sym_function] = ACTIONS(2988),
    [sym_goto] = ACTIONS(2988),
    [sym_if] = ACTIONS(2988),
    [sym_immutable] = ACTIONS(2988),
    [sym_import] = ACTIONS(2988),
    [sym_in] = ACTIONS(2988),
    [sym_inout] = ACTIONS(2988),
    [sym_interface] = ACTIONS(2988),
    [sym_invariant] = ACTIONS(2988),
    [sym_is] = ACTIONS(2988),
    [sym_lazy] = ACTIONS(2988),
    [sym_mixin] = ACTIONS(2988),
    [sym_module] = ACTIONS(2988),
    [sym_new] = ACTIONS(2988),
    [sym_nothrow] = ACTIONS(2988),
    [sym_out] = ACTIONS(2988),
    [sym_override] = ACTIONS(2988),
    [sym_package] = ACTIONS(2988),
    [sym_pragma] = ACTIONS(2988),
    [sym_private] = ACTIONS(2988),
    [sym_protected] = ACTIONS(2988),
    [sym_public] = ACTIONS(2988),
    [sym_pure] = ACTIONS(2988),
    [sym_ref] = ACTIONS(2988),
    [sym_return] = ACTIONS(2988),
    [sym_scope] = ACTIONS(2988),
    [sym_shared] = ACTIONS(2988),
    [sym_static] = ACTIONS(2988),
    [sym_struct] = ACTIONS(2988),
    [sym_switch] = ACTIONS(2988),
    [sym_synchronized] = ACTIONS(2988),
    [sym_template] = ACTIONS(2988),
    [sym_throw] = ACTIONS(2988),
    [sym_try] = ACTIONS(2988),
    [sym_typeid] = ACTIONS(2988),
    [sym_typeof] = ACTIONS(2988),
    [sym_union] = ACTIONS(2988),
    [sym_unittest] = ACTIONS(2988),
    [sym_version] = ACTIONS(2988),
    [sym_while] = ACTIONS(2988),
    [sym_with] = ACTIONS(2988),
    [sym_parameters_] = ACTIONS(2988),
    [sym_gshared] = ACTIONS(2988),
    [sym_traits] = ACTIONS(2988),
    [sym_vector] = ACTIONS(2988),
    [sym_void] = ACTIONS(2988),
    [anon_sym_BQUOTE] = ACTIONS(2990),
    [anon_sym_r_DQUOTE] = ACTIONS(2990),
    [anon_sym_x_DQUOTE] = ACTIONS(2990),
    [anon_sym_DQUOTE] = ACTIONS(2990),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2990),
    [anon_sym_i_BQUOTE] = ACTIONS(2990),
    [anon_sym_i_DQUOTE] = ACTIONS(2990),
    [anon_sym_iq_LBRACE] = ACTIONS(2990),
    [aux_sym_char_literal_token1] = ACTIONS(2990),
    [anon_sym_SQUOTE] = ACTIONS(2988),
    [anon_sym___DATE__] = ACTIONS(2988),
    [anon_sym___FILE__] = ACTIONS(2988),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2988),
    [anon_sym___FUNCTION__] = ACTIONS(2988),
    [anon_sym___LINE__] = ACTIONS(2988),
    [anon_sym___MODULE__] = ACTIONS(2988),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2988),
    [anon_sym___TIME__] = ACTIONS(2988),
    [anon_sym___TIMESTAMP__] = ACTIONS(2988),
    [anon_sym___VENDOR__] = ACTIONS(2988),
    [anon_sym___VERSION__] = ACTIONS(2988),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2990),
    [sym_float_literal] = ACTIONS(2990),
    [sym__string] = ACTIONS(2990),
  },
  [623] = {
    [sym_identifier] = ACTIONS(2992),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2994),
    [anon_sym_RBRACE] = ACTIONS(2994),
    [anon_sym_LBRACE] = ACTIONS(2994),
    [anon_sym_SLASH] = ACTIONS(2992),
    [anon_sym_SLASH_EQ] = ACTIONS(2994),
    [anon_sym_DOT] = ACTIONS(2992),
    [anon_sym_DOT_DOT] = ACTIONS(2992),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2994),
    [anon_sym_AMP] = ACTIONS(2992),
    [anon_sym_AMP_EQ] = ACTIONS(2994),
    [anon_sym_AMP_AMP] = ACTIONS(2994),
    [anon_sym_PIPE] = ACTIONS(2992),
    [anon_sym_PIPE_EQ] = ACTIONS(2994),
    [anon_sym_PIPE_PIPE] = ACTIONS(2994),
    [anon_sym_DASH] = ACTIONS(2992),
    [anon_sym_DASH_EQ] = ACTIONS(2994),
    [anon_sym_DASH_DASH] = ACTIONS(2994),
    [anon_sym_PLUS] = ACTIONS(2992),
    [anon_sym_PLUS_EQ] = ACTIONS(2994),
    [anon_sym_PLUS_PLUS] = ACTIONS(2994),
    [anon_sym_LT] = ACTIONS(2992),
    [anon_sym_LT_EQ] = ACTIONS(2994),
    [anon_sym_LT_LT] = ACTIONS(2992),
    [anon_sym_LT_LT_EQ] = ACTIONS(2994),
    [anon_sym_GT] = ACTIONS(2992),
    [anon_sym_GT_EQ] = ACTIONS(2994),
    [anon_sym_GT_GT_EQ] = ACTIONS(2994),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2994),
    [anon_sym_GT_GT] = ACTIONS(2992),
    [anon_sym_GT_GT_GT] = ACTIONS(2992),
    [anon_sym_BANG] = ACTIONS(2992),
    [anon_sym_BANG_EQ] = ACTIONS(2994),
    [anon_sym_LPAREN] = ACTIONS(2994),
    [anon_sym_RPAREN] = ACTIONS(2994),
    [anon_sym_LBRACK] = ACTIONS(2994),
    [anon_sym_RBRACK] = ACTIONS(2994),
    [anon_sym_QMARK] = ACTIONS(2994),
    [anon_sym_COMMA] = ACTIONS(2994),
    [anon_sym_SEMI] = ACTIONS(2994),
    [anon_sym_COLON] = ACTIONS(2994),
    [anon_sym_DOLLAR] = ACTIONS(2992),
    [anon_sym_EQ] = ACTIONS(2992),
    [anon_sym_EQ_EQ] = ACTIONS(2994),
    [anon_sym_STAR] = ACTIONS(2992),
    [anon_sym_STAR_EQ] = ACTIONS(2994),
    [anon_sym_PERCENT] = ACTIONS(2992),
    [anon_sym_PERCENT_EQ] = ACTIONS(2994),
    [anon_sym_CARET] = ACTIONS(2992),
    [anon_sym_CARET_EQ] = ACTIONS(2994),
    [anon_sym_CARET_CARET] = ACTIONS(2992),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2994),
    [anon_sym_TILDE] = ACTIONS(2992),
    [anon_sym_TILDE_EQ] = ACTIONS(2994),
    [anon_sym_AT] = ACTIONS(2994),
    [anon_sym_EQ_GT] = ACTIONS(2994),
    [anon_sym_POUND] = ACTIONS(2994),
    [anon_sym_BANGin] = ACTIONS(2994),
    [anon_sym_BANGis] = ACTIONS(2994),
    [sym_bool] = ACTIONS(2992),
    [sym_byte] = ACTIONS(2992),
    [sym_ubyte] = ACTIONS(2992),
    [sym_char] = ACTIONS(2992),
    [sym_short] = ACTIONS(2992),
    [sym_ushort] = ACTIONS(2992),
    [sym_int] = ACTIONS(2992),
    [sym_uint] = ACTIONS(2992),
    [sym_long] = ACTIONS(2992),
    [sym_ulong] = ACTIONS(2992),
    [sym_cent] = ACTIONS(2992),
    [sym_ucent] = ACTIONS(2992),
    [sym_wchar] = ACTIONS(2992),
    [sym_dchar] = ACTIONS(2992),
    [sym_float] = ACTIONS(2992),
    [sym_double] = ACTIONS(2992),
    [sym_real] = ACTIONS(2992),
    [sym_ifloat] = ACTIONS(2992),
    [sym_idouble] = ACTIONS(2992),
    [sym_ireal] = ACTIONS(2992),
    [sym_cfloat] = ACTIONS(2992),
    [sym_cdouble] = ACTIONS(2992),
    [sym_creal] = ACTIONS(2992),
    [sym_size_t] = ACTIONS(2992),
    [sym_ptrdiff_t] = ACTIONS(2992),
    [sym_string] = ACTIONS(2992),
    [sym_cstring] = ACTIONS(2992),
    [sym_dstring] = ACTIONS(2992),
    [sym_wstring] = ACTIONS(2992),
    [sym_noreturn] = ACTIONS(2992),
    [sym_true] = ACTIONS(2992),
    [sym_false] = ACTIONS(2992),
    [sym_null] = ACTIONS(2992),
    [sym_super] = ACTIONS(2992),
    [sym_this] = ACTIONS(2992),
    [sym_abstract] = ACTIONS(2992),
    [sym_alias] = ACTIONS(2992),
    [sym_align] = ACTIONS(2992),
    [sym_asm] = ACTIONS(2992),
    [sym_assert] = ACTIONS(2992),
    [sym_auto] = ACTIONS(2992),
    [sym_break] = ACTIONS(2992),
    [sym_case] = ACTIONS(2992),
    [sym_cast] = ACTIONS(2992),
    [sym_catch] = ACTIONS(2992),
    [sym_class] = ACTIONS(2992),
    [sym_const] = ACTIONS(2992),
    [sym_continue] = ACTIONS(2992),
    [sym_debug] = ACTIONS(2992),
    [sym_default] = ACTIONS(2992),
    [sym_delegate] = ACTIONS(2992),
    [sym_delete] = ACTIONS(2992),
    [sym_deprecated] = ACTIONS(2992),
    [sym_do] = ACTIONS(2992),
    [sym_else] = ACTIONS(2992),
    [sym_enum] = ACTIONS(2992),
    [sym_export] = ACTIONS(2992),
    [sym_extern] = ACTIONS(2992),
    [sym_final] = ACTIONS(2992),
    [sym_finally] = ACTIONS(2992),
    [sym_for] = ACTIONS(2992),
    [sym_foreach] = ACTIONS(2992),
    [sym_foreach_reverse] = ACTIONS(2992),
    [sym_function] = ACTIONS(2992),
    [sym_goto] = ACTIONS(2992),
    [sym_if] = ACTIONS(2992),
    [sym_immutable] = ACTIONS(2992),
    [sym_import] = ACTIONS(2992),
    [sym_in] = ACTIONS(2992),
    [sym_inout] = ACTIONS(2992),
    [sym_interface] = ACTIONS(2992),
    [sym_invariant] = ACTIONS(2992),
    [sym_is] = ACTIONS(2992),
    [sym_lazy] = ACTIONS(2992),
    [sym_mixin] = ACTIONS(2992),
    [sym_module] = ACTIONS(2992),
    [sym_new] = ACTIONS(2992),
    [sym_nothrow] = ACTIONS(2992),
    [sym_out] = ACTIONS(2992),
    [sym_override] = ACTIONS(2992),
    [sym_package] = ACTIONS(2992),
    [sym_pragma] = ACTIONS(2992),
    [sym_private] = ACTIONS(2992),
    [sym_protected] = ACTIONS(2992),
    [sym_public] = ACTIONS(2992),
    [sym_pure] = ACTIONS(2992),
    [sym_ref] = ACTIONS(2992),
    [sym_return] = ACTIONS(2992),
    [sym_scope] = ACTIONS(2992),
    [sym_shared] = ACTIONS(2992),
    [sym_static] = ACTIONS(2992),
    [sym_struct] = ACTIONS(2992),
    [sym_switch] = ACTIONS(2992),
    [sym_synchronized] = ACTIONS(2992),
    [sym_template] = ACTIONS(2992),
    [sym_throw] = ACTIONS(2992),
    [sym_try] = ACTIONS(2992),
    [sym_typeid] = ACTIONS(2992),
    [sym_typeof] = ACTIONS(2992),
    [sym_union] = ACTIONS(2992),
    [sym_unittest] = ACTIONS(2992),
    [sym_version] = ACTIONS(2992),
    [sym_while] = ACTIONS(2992),
    [sym_with] = ACTIONS(2992),
    [sym_parameters_] = ACTIONS(2992),
    [sym_gshared] = ACTIONS(2992),
    [sym_traits] = ACTIONS(2992),
    [sym_vector] = ACTIONS(2992),
    [sym_void] = ACTIONS(2992),
    [anon_sym_BQUOTE] = ACTIONS(2994),
    [anon_sym_r_DQUOTE] = ACTIONS(2994),
    [anon_sym_x_DQUOTE] = ACTIONS(2994),
    [anon_sym_DQUOTE] = ACTIONS(2994),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2994),
    [anon_sym_i_BQUOTE] = ACTIONS(2994),
    [anon_sym_i_DQUOTE] = ACTIONS(2994),
    [anon_sym_iq_LBRACE] = ACTIONS(2994),
    [aux_sym_char_literal_token1] = ACTIONS(2994),
    [anon_sym_SQUOTE] = ACTIONS(2992),
    [anon_sym___DATE__] = ACTIONS(2992),
    [anon_sym___FILE__] = ACTIONS(2992),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2992),
    [anon_sym___FUNCTION__] = ACTIONS(2992),
    [anon_sym___LINE__] = ACTIONS(2992),
    [anon_sym___MODULE__] = ACTIONS(2992),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2992),
    [anon_sym___TIME__] = ACTIONS(2992),
    [anon_sym___TIMESTAMP__] = ACTIONS(2992),
    [anon_sym___VENDOR__] = ACTIONS(2992),
    [anon_sym___VERSION__] = ACTIONS(2992),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2994),
    [sym_float_literal] = ACTIONS(2994),
    [sym__string] = ACTIONS(2994),
  },
  [624] = {
    [sym_identifier] = ACTIONS(2996),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2998),
    [anon_sym_RBRACE] = ACTIONS(2998),
    [anon_sym_LBRACE] = ACTIONS(2998),
    [anon_sym_SLASH] = ACTIONS(2996),
    [anon_sym_SLASH_EQ] = ACTIONS(2998),
    [anon_sym_DOT] = ACTIONS(2996),
    [anon_sym_DOT_DOT] = ACTIONS(2996),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2998),
    [anon_sym_AMP] = ACTIONS(2996),
    [anon_sym_AMP_EQ] = ACTIONS(2998),
    [anon_sym_AMP_AMP] = ACTIONS(2998),
    [anon_sym_PIPE] = ACTIONS(2996),
    [anon_sym_PIPE_EQ] = ACTIONS(2998),
    [anon_sym_PIPE_PIPE] = ACTIONS(2998),
    [anon_sym_DASH] = ACTIONS(2996),
    [anon_sym_DASH_EQ] = ACTIONS(2998),
    [anon_sym_DASH_DASH] = ACTIONS(2998),
    [anon_sym_PLUS] = ACTIONS(2996),
    [anon_sym_PLUS_EQ] = ACTIONS(2998),
    [anon_sym_PLUS_PLUS] = ACTIONS(2998),
    [anon_sym_LT] = ACTIONS(2996),
    [anon_sym_LT_EQ] = ACTIONS(2998),
    [anon_sym_LT_LT] = ACTIONS(2996),
    [anon_sym_LT_LT_EQ] = ACTIONS(2998),
    [anon_sym_GT] = ACTIONS(2996),
    [anon_sym_GT_EQ] = ACTIONS(2998),
    [anon_sym_GT_GT_EQ] = ACTIONS(2998),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2998),
    [anon_sym_GT_GT] = ACTIONS(2996),
    [anon_sym_GT_GT_GT] = ACTIONS(2996),
    [anon_sym_BANG] = ACTIONS(2996),
    [anon_sym_BANG_EQ] = ACTIONS(2998),
    [anon_sym_LPAREN] = ACTIONS(2998),
    [anon_sym_RPAREN] = ACTIONS(2998),
    [anon_sym_LBRACK] = ACTIONS(2998),
    [anon_sym_RBRACK] = ACTIONS(2998),
    [anon_sym_QMARK] = ACTIONS(2998),
    [anon_sym_COMMA] = ACTIONS(2998),
    [anon_sym_SEMI] = ACTIONS(2998),
    [anon_sym_COLON] = ACTIONS(2998),
    [anon_sym_DOLLAR] = ACTIONS(2996),
    [anon_sym_EQ] = ACTIONS(2996),
    [anon_sym_EQ_EQ] = ACTIONS(2998),
    [anon_sym_STAR] = ACTIONS(2996),
    [anon_sym_STAR_EQ] = ACTIONS(2998),
    [anon_sym_PERCENT] = ACTIONS(2996),
    [anon_sym_PERCENT_EQ] = ACTIONS(2998),
    [anon_sym_CARET] = ACTIONS(2996),
    [anon_sym_CARET_EQ] = ACTIONS(2998),
    [anon_sym_CARET_CARET] = ACTIONS(2996),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2998),
    [anon_sym_TILDE] = ACTIONS(2996),
    [anon_sym_TILDE_EQ] = ACTIONS(2998),
    [anon_sym_AT] = ACTIONS(2998),
    [anon_sym_EQ_GT] = ACTIONS(2998),
    [anon_sym_POUND] = ACTIONS(2998),
    [anon_sym_BANGin] = ACTIONS(2998),
    [anon_sym_BANGis] = ACTIONS(2998),
    [sym_bool] = ACTIONS(2996),
    [sym_byte] = ACTIONS(2996),
    [sym_ubyte] = ACTIONS(2996),
    [sym_char] = ACTIONS(2996),
    [sym_short] = ACTIONS(2996),
    [sym_ushort] = ACTIONS(2996),
    [sym_int] = ACTIONS(2996),
    [sym_uint] = ACTIONS(2996),
    [sym_long] = ACTIONS(2996),
    [sym_ulong] = ACTIONS(2996),
    [sym_cent] = ACTIONS(2996),
    [sym_ucent] = ACTIONS(2996),
    [sym_wchar] = ACTIONS(2996),
    [sym_dchar] = ACTIONS(2996),
    [sym_float] = ACTIONS(2996),
    [sym_double] = ACTIONS(2996),
    [sym_real] = ACTIONS(2996),
    [sym_ifloat] = ACTIONS(2996),
    [sym_idouble] = ACTIONS(2996),
    [sym_ireal] = ACTIONS(2996),
    [sym_cfloat] = ACTIONS(2996),
    [sym_cdouble] = ACTIONS(2996),
    [sym_creal] = ACTIONS(2996),
    [sym_size_t] = ACTIONS(2996),
    [sym_ptrdiff_t] = ACTIONS(2996),
    [sym_string] = ACTIONS(2996),
    [sym_cstring] = ACTIONS(2996),
    [sym_dstring] = ACTIONS(2996),
    [sym_wstring] = ACTIONS(2996),
    [sym_noreturn] = ACTIONS(2996),
    [sym_true] = ACTIONS(2996),
    [sym_false] = ACTIONS(2996),
    [sym_null] = ACTIONS(2996),
    [sym_super] = ACTIONS(2996),
    [sym_this] = ACTIONS(2996),
    [sym_abstract] = ACTIONS(2996),
    [sym_alias] = ACTIONS(2996),
    [sym_align] = ACTIONS(2996),
    [sym_asm] = ACTIONS(2996),
    [sym_assert] = ACTIONS(2996),
    [sym_auto] = ACTIONS(2996),
    [sym_break] = ACTIONS(2996),
    [sym_case] = ACTIONS(2996),
    [sym_cast] = ACTIONS(2996),
    [sym_catch] = ACTIONS(2996),
    [sym_class] = ACTIONS(2996),
    [sym_const] = ACTIONS(2996),
    [sym_continue] = ACTIONS(2996),
    [sym_debug] = ACTIONS(2996),
    [sym_default] = ACTIONS(2996),
    [sym_delegate] = ACTIONS(2996),
    [sym_delete] = ACTIONS(2996),
    [sym_deprecated] = ACTIONS(2996),
    [sym_do] = ACTIONS(2996),
    [sym_else] = ACTIONS(2996),
    [sym_enum] = ACTIONS(2996),
    [sym_export] = ACTIONS(2996),
    [sym_extern] = ACTIONS(2996),
    [sym_final] = ACTIONS(2996),
    [sym_finally] = ACTIONS(2996),
    [sym_for] = ACTIONS(2996),
    [sym_foreach] = ACTIONS(2996),
    [sym_foreach_reverse] = ACTIONS(2996),
    [sym_function] = ACTIONS(2996),
    [sym_goto] = ACTIONS(2996),
    [sym_if] = ACTIONS(2996),
    [sym_immutable] = ACTIONS(2996),
    [sym_import] = ACTIONS(2996),
    [sym_in] = ACTIONS(2996),
    [sym_inout] = ACTIONS(2996),
    [sym_interface] = ACTIONS(2996),
    [sym_invariant] = ACTIONS(2996),
    [sym_is] = ACTIONS(2996),
    [sym_lazy] = ACTIONS(2996),
    [sym_mixin] = ACTIONS(2996),
    [sym_module] = ACTIONS(2996),
    [sym_new] = ACTIONS(2996),
    [sym_nothrow] = ACTIONS(2996),
    [sym_out] = ACTIONS(2996),
    [sym_override] = ACTIONS(2996),
    [sym_package] = ACTIONS(2996),
    [sym_pragma] = ACTIONS(2996),
    [sym_private] = ACTIONS(2996),
    [sym_protected] = ACTIONS(2996),
    [sym_public] = ACTIONS(2996),
    [sym_pure] = ACTIONS(2996),
    [sym_ref] = ACTIONS(2996),
    [sym_return] = ACTIONS(2996),
    [sym_scope] = ACTIONS(2996),
    [sym_shared] = ACTIONS(2996),
    [sym_static] = ACTIONS(2996),
    [sym_struct] = ACTIONS(2996),
    [sym_switch] = ACTIONS(2996),
    [sym_synchronized] = ACTIONS(2996),
    [sym_template] = ACTIONS(2996),
    [sym_throw] = ACTIONS(2996),
    [sym_try] = ACTIONS(2996),
    [sym_typeid] = ACTIONS(2996),
    [sym_typeof] = ACTIONS(2996),
    [sym_union] = ACTIONS(2996),
    [sym_unittest] = ACTIONS(2996),
    [sym_version] = ACTIONS(2996),
    [sym_while] = ACTIONS(2996),
    [sym_with] = ACTIONS(2996),
    [sym_parameters_] = ACTIONS(2996),
    [sym_gshared] = ACTIONS(2996),
    [sym_traits] = ACTIONS(2996),
    [sym_vector] = ACTIONS(2996),
    [sym_void] = ACTIONS(2996),
    [anon_sym_BQUOTE] = ACTIONS(2998),
    [anon_sym_r_DQUOTE] = ACTIONS(2998),
    [anon_sym_x_DQUOTE] = ACTIONS(2998),
    [anon_sym_DQUOTE] = ACTIONS(2998),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(2998),
    [anon_sym_i_BQUOTE] = ACTIONS(2998),
    [anon_sym_i_DQUOTE] = ACTIONS(2998),
    [anon_sym_iq_LBRACE] = ACTIONS(2998),
    [aux_sym_char_literal_token1] = ACTIONS(2998),
    [anon_sym_SQUOTE] = ACTIONS(2996),
    [anon_sym___DATE__] = ACTIONS(2996),
    [anon_sym___FILE__] = ACTIONS(2996),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2996),
    [anon_sym___FUNCTION__] = ACTIONS(2996),
    [anon_sym___LINE__] = ACTIONS(2996),
    [anon_sym___MODULE__] = ACTIONS(2996),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2996),
    [anon_sym___TIME__] = ACTIONS(2996),
    [anon_sym___TIMESTAMP__] = ACTIONS(2996),
    [anon_sym___VENDOR__] = ACTIONS(2996),
    [anon_sym___VERSION__] = ACTIONS(2996),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2998),
    [sym_float_literal] = ACTIONS(2998),
    [sym__string] = ACTIONS(2998),
  },
  [625] = {
    [sym_identifier] = ACTIONS(3000),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3002),
    [anon_sym_RBRACE] = ACTIONS(3002),
    [anon_sym_LBRACE] = ACTIONS(3002),
    [anon_sym_SLASH] = ACTIONS(3000),
    [anon_sym_SLASH_EQ] = ACTIONS(3002),
    [anon_sym_DOT] = ACTIONS(3000),
    [anon_sym_DOT_DOT] = ACTIONS(3000),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3002),
    [anon_sym_AMP] = ACTIONS(3000),
    [anon_sym_AMP_EQ] = ACTIONS(3002),
    [anon_sym_AMP_AMP] = ACTIONS(3002),
    [anon_sym_PIPE] = ACTIONS(3000),
    [anon_sym_PIPE_EQ] = ACTIONS(3002),
    [anon_sym_PIPE_PIPE] = ACTIONS(3002),
    [anon_sym_DASH] = ACTIONS(3000),
    [anon_sym_DASH_EQ] = ACTIONS(3002),
    [anon_sym_DASH_DASH] = ACTIONS(3002),
    [anon_sym_PLUS] = ACTIONS(3000),
    [anon_sym_PLUS_EQ] = ACTIONS(3002),
    [anon_sym_PLUS_PLUS] = ACTIONS(3002),
    [anon_sym_LT] = ACTIONS(3000),
    [anon_sym_LT_EQ] = ACTIONS(3002),
    [anon_sym_LT_LT] = ACTIONS(3000),
    [anon_sym_LT_LT_EQ] = ACTIONS(3002),
    [anon_sym_GT] = ACTIONS(3000),
    [anon_sym_GT_EQ] = ACTIONS(3002),
    [anon_sym_GT_GT_EQ] = ACTIONS(3002),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3002),
    [anon_sym_GT_GT] = ACTIONS(3000),
    [anon_sym_GT_GT_GT] = ACTIONS(3000),
    [anon_sym_BANG] = ACTIONS(3000),
    [anon_sym_BANG_EQ] = ACTIONS(3002),
    [anon_sym_LPAREN] = ACTIONS(3002),
    [anon_sym_RPAREN] = ACTIONS(3002),
    [anon_sym_LBRACK] = ACTIONS(3002),
    [anon_sym_RBRACK] = ACTIONS(3002),
    [anon_sym_QMARK] = ACTIONS(3002),
    [anon_sym_COMMA] = ACTIONS(3002),
    [anon_sym_SEMI] = ACTIONS(3002),
    [anon_sym_COLON] = ACTIONS(3002),
    [anon_sym_DOLLAR] = ACTIONS(3000),
    [anon_sym_EQ] = ACTIONS(3000),
    [anon_sym_EQ_EQ] = ACTIONS(3002),
    [anon_sym_STAR] = ACTIONS(3000),
    [anon_sym_STAR_EQ] = ACTIONS(3002),
    [anon_sym_PERCENT] = ACTIONS(3000),
    [anon_sym_PERCENT_EQ] = ACTIONS(3002),
    [anon_sym_CARET] = ACTIONS(3000),
    [anon_sym_CARET_EQ] = ACTIONS(3002),
    [anon_sym_CARET_CARET] = ACTIONS(3000),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3002),
    [anon_sym_TILDE] = ACTIONS(3000),
    [anon_sym_TILDE_EQ] = ACTIONS(3002),
    [anon_sym_AT] = ACTIONS(3002),
    [anon_sym_EQ_GT] = ACTIONS(3002),
    [anon_sym_POUND] = ACTIONS(3002),
    [anon_sym_BANGin] = ACTIONS(3002),
    [anon_sym_BANGis] = ACTIONS(3002),
    [sym_bool] = ACTIONS(3000),
    [sym_byte] = ACTIONS(3000),
    [sym_ubyte] = ACTIONS(3000),
    [sym_char] = ACTIONS(3000),
    [sym_short] = ACTIONS(3000),
    [sym_ushort] = ACTIONS(3000),
    [sym_int] = ACTIONS(3000),
    [sym_uint] = ACTIONS(3000),
    [sym_long] = ACTIONS(3000),
    [sym_ulong] = ACTIONS(3000),
    [sym_cent] = ACTIONS(3000),
    [sym_ucent] = ACTIONS(3000),
    [sym_wchar] = ACTIONS(3000),
    [sym_dchar] = ACTIONS(3000),
    [sym_float] = ACTIONS(3000),
    [sym_double] = ACTIONS(3000),
    [sym_real] = ACTIONS(3000),
    [sym_ifloat] = ACTIONS(3000),
    [sym_idouble] = ACTIONS(3000),
    [sym_ireal] = ACTIONS(3000),
    [sym_cfloat] = ACTIONS(3000),
    [sym_cdouble] = ACTIONS(3000),
    [sym_creal] = ACTIONS(3000),
    [sym_size_t] = ACTIONS(3000),
    [sym_ptrdiff_t] = ACTIONS(3000),
    [sym_string] = ACTIONS(3000),
    [sym_cstring] = ACTIONS(3000),
    [sym_dstring] = ACTIONS(3000),
    [sym_wstring] = ACTIONS(3000),
    [sym_noreturn] = ACTIONS(3000),
    [sym_true] = ACTIONS(3000),
    [sym_false] = ACTIONS(3000),
    [sym_null] = ACTIONS(3000),
    [sym_super] = ACTIONS(3000),
    [sym_this] = ACTIONS(3000),
    [sym_abstract] = ACTIONS(3000),
    [sym_alias] = ACTIONS(3000),
    [sym_align] = ACTIONS(3000),
    [sym_asm] = ACTIONS(3000),
    [sym_assert] = ACTIONS(3000),
    [sym_auto] = ACTIONS(3000),
    [sym_break] = ACTIONS(3000),
    [sym_case] = ACTIONS(3000),
    [sym_cast] = ACTIONS(3000),
    [sym_catch] = ACTIONS(3000),
    [sym_class] = ACTIONS(3000),
    [sym_const] = ACTIONS(3000),
    [sym_continue] = ACTIONS(3000),
    [sym_debug] = ACTIONS(3000),
    [sym_default] = ACTIONS(3000),
    [sym_delegate] = ACTIONS(3000),
    [sym_delete] = ACTIONS(3000),
    [sym_deprecated] = ACTIONS(3000),
    [sym_do] = ACTIONS(3000),
    [sym_else] = ACTIONS(3000),
    [sym_enum] = ACTIONS(3000),
    [sym_export] = ACTIONS(3000),
    [sym_extern] = ACTIONS(3000),
    [sym_final] = ACTIONS(3000),
    [sym_finally] = ACTIONS(3000),
    [sym_for] = ACTIONS(3000),
    [sym_foreach] = ACTIONS(3000),
    [sym_foreach_reverse] = ACTIONS(3000),
    [sym_function] = ACTIONS(3000),
    [sym_goto] = ACTIONS(3000),
    [sym_if] = ACTIONS(3000),
    [sym_immutable] = ACTIONS(3000),
    [sym_import] = ACTIONS(3000),
    [sym_in] = ACTIONS(3000),
    [sym_inout] = ACTIONS(3000),
    [sym_interface] = ACTIONS(3000),
    [sym_invariant] = ACTIONS(3000),
    [sym_is] = ACTIONS(3000),
    [sym_lazy] = ACTIONS(3000),
    [sym_mixin] = ACTIONS(3000),
    [sym_module] = ACTIONS(3000),
    [sym_new] = ACTIONS(3000),
    [sym_nothrow] = ACTIONS(3000),
    [sym_out] = ACTIONS(3000),
    [sym_override] = ACTIONS(3000),
    [sym_package] = ACTIONS(3000),
    [sym_pragma] = ACTIONS(3000),
    [sym_private] = ACTIONS(3000),
    [sym_protected] = ACTIONS(3000),
    [sym_public] = ACTIONS(3000),
    [sym_pure] = ACTIONS(3000),
    [sym_ref] = ACTIONS(3000),
    [sym_return] = ACTIONS(3000),
    [sym_scope] = ACTIONS(3000),
    [sym_shared] = ACTIONS(3000),
    [sym_static] = ACTIONS(3000),
    [sym_struct] = ACTIONS(3000),
    [sym_switch] = ACTIONS(3000),
    [sym_synchronized] = ACTIONS(3000),
    [sym_template] = ACTIONS(3000),
    [sym_throw] = ACTIONS(3000),
    [sym_try] = ACTIONS(3000),
    [sym_typeid] = ACTIONS(3000),
    [sym_typeof] = ACTIONS(3000),
    [sym_union] = ACTIONS(3000),
    [sym_unittest] = ACTIONS(3000),
    [sym_version] = ACTIONS(3000),
    [sym_while] = ACTIONS(3000),
    [sym_with] = ACTIONS(3000),
    [sym_parameters_] = ACTIONS(3000),
    [sym_gshared] = ACTIONS(3000),
    [sym_traits] = ACTIONS(3000),
    [sym_vector] = ACTIONS(3000),
    [sym_void] = ACTIONS(3000),
    [anon_sym_BQUOTE] = ACTIONS(3002),
    [anon_sym_r_DQUOTE] = ACTIONS(3002),
    [anon_sym_x_DQUOTE] = ACTIONS(3002),
    [anon_sym_DQUOTE] = ACTIONS(3002),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3002),
    [anon_sym_i_BQUOTE] = ACTIONS(3002),
    [anon_sym_i_DQUOTE] = ACTIONS(3002),
    [anon_sym_iq_LBRACE] = ACTIONS(3002),
    [aux_sym_char_literal_token1] = ACTIONS(3002),
    [anon_sym_SQUOTE] = ACTIONS(3000),
    [anon_sym___DATE__] = ACTIONS(3000),
    [anon_sym___FILE__] = ACTIONS(3000),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3000),
    [anon_sym___FUNCTION__] = ACTIONS(3000),
    [anon_sym___LINE__] = ACTIONS(3000),
    [anon_sym___MODULE__] = ACTIONS(3000),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3000),
    [anon_sym___TIME__] = ACTIONS(3000),
    [anon_sym___TIMESTAMP__] = ACTIONS(3000),
    [anon_sym___VENDOR__] = ACTIONS(3000),
    [anon_sym___VERSION__] = ACTIONS(3000),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3002),
    [sym_float_literal] = ACTIONS(3002),
    [sym__string] = ACTIONS(3002),
  },
  [626] = {
    [sym_identifier] = ACTIONS(3004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3006),
    [anon_sym_RBRACE] = ACTIONS(3006),
    [anon_sym_LBRACE] = ACTIONS(3006),
    [anon_sym_SLASH] = ACTIONS(3004),
    [anon_sym_SLASH_EQ] = ACTIONS(3006),
    [anon_sym_DOT] = ACTIONS(3004),
    [anon_sym_DOT_DOT] = ACTIONS(3004),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3006),
    [anon_sym_AMP] = ACTIONS(3004),
    [anon_sym_AMP_EQ] = ACTIONS(3006),
    [anon_sym_AMP_AMP] = ACTIONS(3006),
    [anon_sym_PIPE] = ACTIONS(3004),
    [anon_sym_PIPE_EQ] = ACTIONS(3006),
    [anon_sym_PIPE_PIPE] = ACTIONS(3006),
    [anon_sym_DASH] = ACTIONS(3004),
    [anon_sym_DASH_EQ] = ACTIONS(3006),
    [anon_sym_DASH_DASH] = ACTIONS(3006),
    [anon_sym_PLUS] = ACTIONS(3004),
    [anon_sym_PLUS_EQ] = ACTIONS(3006),
    [anon_sym_PLUS_PLUS] = ACTIONS(3006),
    [anon_sym_LT] = ACTIONS(3004),
    [anon_sym_LT_EQ] = ACTIONS(3006),
    [anon_sym_LT_LT] = ACTIONS(3004),
    [anon_sym_LT_LT_EQ] = ACTIONS(3006),
    [anon_sym_GT] = ACTIONS(3004),
    [anon_sym_GT_EQ] = ACTIONS(3006),
    [anon_sym_GT_GT_EQ] = ACTIONS(3006),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3006),
    [anon_sym_GT_GT] = ACTIONS(3004),
    [anon_sym_GT_GT_GT] = ACTIONS(3004),
    [anon_sym_BANG] = ACTIONS(3004),
    [anon_sym_BANG_EQ] = ACTIONS(3006),
    [anon_sym_LPAREN] = ACTIONS(3006),
    [anon_sym_RPAREN] = ACTIONS(3006),
    [anon_sym_LBRACK] = ACTIONS(3006),
    [anon_sym_RBRACK] = ACTIONS(3006),
    [anon_sym_QMARK] = ACTIONS(3006),
    [anon_sym_COMMA] = ACTIONS(3006),
    [anon_sym_SEMI] = ACTIONS(3006),
    [anon_sym_COLON] = ACTIONS(3006),
    [anon_sym_DOLLAR] = ACTIONS(3004),
    [anon_sym_EQ] = ACTIONS(3004),
    [anon_sym_EQ_EQ] = ACTIONS(3006),
    [anon_sym_STAR] = ACTIONS(3004),
    [anon_sym_STAR_EQ] = ACTIONS(3006),
    [anon_sym_PERCENT] = ACTIONS(3004),
    [anon_sym_PERCENT_EQ] = ACTIONS(3006),
    [anon_sym_CARET] = ACTIONS(3004),
    [anon_sym_CARET_EQ] = ACTIONS(3006),
    [anon_sym_CARET_CARET] = ACTIONS(3004),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3006),
    [anon_sym_TILDE] = ACTIONS(3004),
    [anon_sym_TILDE_EQ] = ACTIONS(3006),
    [anon_sym_AT] = ACTIONS(3006),
    [anon_sym_EQ_GT] = ACTIONS(3006),
    [anon_sym_POUND] = ACTIONS(3006),
    [anon_sym_BANGin] = ACTIONS(3006),
    [anon_sym_BANGis] = ACTIONS(3006),
    [sym_bool] = ACTIONS(3004),
    [sym_byte] = ACTIONS(3004),
    [sym_ubyte] = ACTIONS(3004),
    [sym_char] = ACTIONS(3004),
    [sym_short] = ACTIONS(3004),
    [sym_ushort] = ACTIONS(3004),
    [sym_int] = ACTIONS(3004),
    [sym_uint] = ACTIONS(3004),
    [sym_long] = ACTIONS(3004),
    [sym_ulong] = ACTIONS(3004),
    [sym_cent] = ACTIONS(3004),
    [sym_ucent] = ACTIONS(3004),
    [sym_wchar] = ACTIONS(3004),
    [sym_dchar] = ACTIONS(3004),
    [sym_float] = ACTIONS(3004),
    [sym_double] = ACTIONS(3004),
    [sym_real] = ACTIONS(3004),
    [sym_ifloat] = ACTIONS(3004),
    [sym_idouble] = ACTIONS(3004),
    [sym_ireal] = ACTIONS(3004),
    [sym_cfloat] = ACTIONS(3004),
    [sym_cdouble] = ACTIONS(3004),
    [sym_creal] = ACTIONS(3004),
    [sym_size_t] = ACTIONS(3004),
    [sym_ptrdiff_t] = ACTIONS(3004),
    [sym_string] = ACTIONS(3004),
    [sym_cstring] = ACTIONS(3004),
    [sym_dstring] = ACTIONS(3004),
    [sym_wstring] = ACTIONS(3004),
    [sym_noreturn] = ACTIONS(3004),
    [sym_true] = ACTIONS(3004),
    [sym_false] = ACTIONS(3004),
    [sym_null] = ACTIONS(3004),
    [sym_super] = ACTIONS(3004),
    [sym_this] = ACTIONS(3004),
    [sym_abstract] = ACTIONS(3004),
    [sym_alias] = ACTIONS(3004),
    [sym_align] = ACTIONS(3004),
    [sym_asm] = ACTIONS(3004),
    [sym_assert] = ACTIONS(3004),
    [sym_auto] = ACTIONS(3004),
    [sym_break] = ACTIONS(3004),
    [sym_case] = ACTIONS(3004),
    [sym_cast] = ACTIONS(3004),
    [sym_catch] = ACTIONS(3004),
    [sym_class] = ACTIONS(3004),
    [sym_const] = ACTIONS(3004),
    [sym_continue] = ACTIONS(3004),
    [sym_debug] = ACTIONS(3004),
    [sym_default] = ACTIONS(3004),
    [sym_delegate] = ACTIONS(3004),
    [sym_delete] = ACTIONS(3004),
    [sym_deprecated] = ACTIONS(3004),
    [sym_do] = ACTIONS(3004),
    [sym_else] = ACTIONS(3004),
    [sym_enum] = ACTIONS(3004),
    [sym_export] = ACTIONS(3004),
    [sym_extern] = ACTIONS(3004),
    [sym_final] = ACTIONS(3004),
    [sym_finally] = ACTIONS(3004),
    [sym_for] = ACTIONS(3004),
    [sym_foreach] = ACTIONS(3004),
    [sym_foreach_reverse] = ACTIONS(3004),
    [sym_function] = ACTIONS(3004),
    [sym_goto] = ACTIONS(3004),
    [sym_if] = ACTIONS(3004),
    [sym_immutable] = ACTIONS(3004),
    [sym_import] = ACTIONS(3004),
    [sym_in] = ACTIONS(3004),
    [sym_inout] = ACTIONS(3004),
    [sym_interface] = ACTIONS(3004),
    [sym_invariant] = ACTIONS(3004),
    [sym_is] = ACTIONS(3004),
    [sym_lazy] = ACTIONS(3004),
    [sym_mixin] = ACTIONS(3004),
    [sym_module] = ACTIONS(3004),
    [sym_new] = ACTIONS(3004),
    [sym_nothrow] = ACTIONS(3004),
    [sym_out] = ACTIONS(3004),
    [sym_override] = ACTIONS(3004),
    [sym_package] = ACTIONS(3004),
    [sym_pragma] = ACTIONS(3004),
    [sym_private] = ACTIONS(3004),
    [sym_protected] = ACTIONS(3004),
    [sym_public] = ACTIONS(3004),
    [sym_pure] = ACTIONS(3004),
    [sym_ref] = ACTIONS(3004),
    [sym_return] = ACTIONS(3004),
    [sym_scope] = ACTIONS(3004),
    [sym_shared] = ACTIONS(3004),
    [sym_static] = ACTIONS(3004),
    [sym_struct] = ACTIONS(3004),
    [sym_switch] = ACTIONS(3004),
    [sym_synchronized] = ACTIONS(3004),
    [sym_template] = ACTIONS(3004),
    [sym_throw] = ACTIONS(3004),
    [sym_try] = ACTIONS(3004),
    [sym_typeid] = ACTIONS(3004),
    [sym_typeof] = ACTIONS(3004),
    [sym_union] = ACTIONS(3004),
    [sym_unittest] = ACTIONS(3004),
    [sym_version] = ACTIONS(3004),
    [sym_while] = ACTIONS(3004),
    [sym_with] = ACTIONS(3004),
    [sym_parameters_] = ACTIONS(3004),
    [sym_gshared] = ACTIONS(3004),
    [sym_traits] = ACTIONS(3004),
    [sym_vector] = ACTIONS(3004),
    [sym_void] = ACTIONS(3004),
    [anon_sym_BQUOTE] = ACTIONS(3006),
    [anon_sym_r_DQUOTE] = ACTIONS(3006),
    [anon_sym_x_DQUOTE] = ACTIONS(3006),
    [anon_sym_DQUOTE] = ACTIONS(3006),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3006),
    [anon_sym_i_BQUOTE] = ACTIONS(3006),
    [anon_sym_i_DQUOTE] = ACTIONS(3006),
    [anon_sym_iq_LBRACE] = ACTIONS(3006),
    [aux_sym_char_literal_token1] = ACTIONS(3006),
    [anon_sym_SQUOTE] = ACTIONS(3004),
    [anon_sym___DATE__] = ACTIONS(3004),
    [anon_sym___FILE__] = ACTIONS(3004),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3004),
    [anon_sym___FUNCTION__] = ACTIONS(3004),
    [anon_sym___LINE__] = ACTIONS(3004),
    [anon_sym___MODULE__] = ACTIONS(3004),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3004),
    [anon_sym___TIME__] = ACTIONS(3004),
    [anon_sym___TIMESTAMP__] = ACTIONS(3004),
    [anon_sym___VENDOR__] = ACTIONS(3004),
    [anon_sym___VERSION__] = ACTIONS(3004),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3006),
    [sym_float_literal] = ACTIONS(3006),
    [sym__string] = ACTIONS(3006),
  },
  [627] = {
    [sym_identifier] = ACTIONS(3008),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3010),
    [anon_sym_RBRACE] = ACTIONS(3010),
    [anon_sym_LBRACE] = ACTIONS(3010),
    [anon_sym_SLASH] = ACTIONS(3008),
    [anon_sym_SLASH_EQ] = ACTIONS(3010),
    [anon_sym_DOT] = ACTIONS(3008),
    [anon_sym_DOT_DOT] = ACTIONS(3008),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3010),
    [anon_sym_AMP] = ACTIONS(3008),
    [anon_sym_AMP_EQ] = ACTIONS(3010),
    [anon_sym_AMP_AMP] = ACTIONS(3010),
    [anon_sym_PIPE] = ACTIONS(3008),
    [anon_sym_PIPE_EQ] = ACTIONS(3010),
    [anon_sym_PIPE_PIPE] = ACTIONS(3010),
    [anon_sym_DASH] = ACTIONS(3008),
    [anon_sym_DASH_EQ] = ACTIONS(3010),
    [anon_sym_DASH_DASH] = ACTIONS(3010),
    [anon_sym_PLUS] = ACTIONS(3008),
    [anon_sym_PLUS_EQ] = ACTIONS(3010),
    [anon_sym_PLUS_PLUS] = ACTIONS(3010),
    [anon_sym_LT] = ACTIONS(3008),
    [anon_sym_LT_EQ] = ACTIONS(3010),
    [anon_sym_LT_LT] = ACTIONS(3008),
    [anon_sym_LT_LT_EQ] = ACTIONS(3010),
    [anon_sym_GT] = ACTIONS(3008),
    [anon_sym_GT_EQ] = ACTIONS(3010),
    [anon_sym_GT_GT_EQ] = ACTIONS(3010),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3010),
    [anon_sym_GT_GT] = ACTIONS(3008),
    [anon_sym_GT_GT_GT] = ACTIONS(3008),
    [anon_sym_BANG] = ACTIONS(3008),
    [anon_sym_BANG_EQ] = ACTIONS(3010),
    [anon_sym_LPAREN] = ACTIONS(3010),
    [anon_sym_RPAREN] = ACTIONS(3010),
    [anon_sym_LBRACK] = ACTIONS(3010),
    [anon_sym_RBRACK] = ACTIONS(3010),
    [anon_sym_QMARK] = ACTIONS(3010),
    [anon_sym_COMMA] = ACTIONS(3010),
    [anon_sym_SEMI] = ACTIONS(3010),
    [anon_sym_COLON] = ACTIONS(3010),
    [anon_sym_DOLLAR] = ACTIONS(3008),
    [anon_sym_EQ] = ACTIONS(3008),
    [anon_sym_EQ_EQ] = ACTIONS(3010),
    [anon_sym_STAR] = ACTIONS(3008),
    [anon_sym_STAR_EQ] = ACTIONS(3010),
    [anon_sym_PERCENT] = ACTIONS(3008),
    [anon_sym_PERCENT_EQ] = ACTIONS(3010),
    [anon_sym_CARET] = ACTIONS(3008),
    [anon_sym_CARET_EQ] = ACTIONS(3010),
    [anon_sym_CARET_CARET] = ACTIONS(3008),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3010),
    [anon_sym_TILDE] = ACTIONS(3008),
    [anon_sym_TILDE_EQ] = ACTIONS(3010),
    [anon_sym_AT] = ACTIONS(3010),
    [anon_sym_EQ_GT] = ACTIONS(3010),
    [anon_sym_POUND] = ACTIONS(3010),
    [anon_sym_BANGin] = ACTIONS(3010),
    [anon_sym_BANGis] = ACTIONS(3010),
    [sym_bool] = ACTIONS(3008),
    [sym_byte] = ACTIONS(3008),
    [sym_ubyte] = ACTIONS(3008),
    [sym_char] = ACTIONS(3008),
    [sym_short] = ACTIONS(3008),
    [sym_ushort] = ACTIONS(3008),
    [sym_int] = ACTIONS(3008),
    [sym_uint] = ACTIONS(3008),
    [sym_long] = ACTIONS(3008),
    [sym_ulong] = ACTIONS(3008),
    [sym_cent] = ACTIONS(3008),
    [sym_ucent] = ACTIONS(3008),
    [sym_wchar] = ACTIONS(3008),
    [sym_dchar] = ACTIONS(3008),
    [sym_float] = ACTIONS(3008),
    [sym_double] = ACTIONS(3008),
    [sym_real] = ACTIONS(3008),
    [sym_ifloat] = ACTIONS(3008),
    [sym_idouble] = ACTIONS(3008),
    [sym_ireal] = ACTIONS(3008),
    [sym_cfloat] = ACTIONS(3008),
    [sym_cdouble] = ACTIONS(3008),
    [sym_creal] = ACTIONS(3008),
    [sym_size_t] = ACTIONS(3008),
    [sym_ptrdiff_t] = ACTIONS(3008),
    [sym_string] = ACTIONS(3008),
    [sym_cstring] = ACTIONS(3008),
    [sym_dstring] = ACTIONS(3008),
    [sym_wstring] = ACTIONS(3008),
    [sym_noreturn] = ACTIONS(3008),
    [sym_true] = ACTIONS(3008),
    [sym_false] = ACTIONS(3008),
    [sym_null] = ACTIONS(3008),
    [sym_super] = ACTIONS(3008),
    [sym_this] = ACTIONS(3008),
    [sym_abstract] = ACTIONS(3008),
    [sym_alias] = ACTIONS(3008),
    [sym_align] = ACTIONS(3008),
    [sym_asm] = ACTIONS(3008),
    [sym_assert] = ACTIONS(3008),
    [sym_auto] = ACTIONS(3008),
    [sym_break] = ACTIONS(3008),
    [sym_case] = ACTIONS(3008),
    [sym_cast] = ACTIONS(3008),
    [sym_catch] = ACTIONS(3008),
    [sym_class] = ACTIONS(3008),
    [sym_const] = ACTIONS(3008),
    [sym_continue] = ACTIONS(3008),
    [sym_debug] = ACTIONS(3008),
    [sym_default] = ACTIONS(3008),
    [sym_delegate] = ACTIONS(3008),
    [sym_delete] = ACTIONS(3008),
    [sym_deprecated] = ACTIONS(3008),
    [sym_do] = ACTIONS(3008),
    [sym_else] = ACTIONS(3008),
    [sym_enum] = ACTIONS(3008),
    [sym_export] = ACTIONS(3008),
    [sym_extern] = ACTIONS(3008),
    [sym_final] = ACTIONS(3008),
    [sym_finally] = ACTIONS(3008),
    [sym_for] = ACTIONS(3008),
    [sym_foreach] = ACTIONS(3008),
    [sym_foreach_reverse] = ACTIONS(3008),
    [sym_function] = ACTIONS(3008),
    [sym_goto] = ACTIONS(3008),
    [sym_if] = ACTIONS(3008),
    [sym_immutable] = ACTIONS(3008),
    [sym_import] = ACTIONS(3008),
    [sym_in] = ACTIONS(3008),
    [sym_inout] = ACTIONS(3008),
    [sym_interface] = ACTIONS(3008),
    [sym_invariant] = ACTIONS(3008),
    [sym_is] = ACTIONS(3008),
    [sym_lazy] = ACTIONS(3008),
    [sym_mixin] = ACTIONS(3008),
    [sym_module] = ACTIONS(3008),
    [sym_new] = ACTIONS(3008),
    [sym_nothrow] = ACTIONS(3008),
    [sym_out] = ACTIONS(3008),
    [sym_override] = ACTIONS(3008),
    [sym_package] = ACTIONS(3008),
    [sym_pragma] = ACTIONS(3008),
    [sym_private] = ACTIONS(3008),
    [sym_protected] = ACTIONS(3008),
    [sym_public] = ACTIONS(3008),
    [sym_pure] = ACTIONS(3008),
    [sym_ref] = ACTIONS(3008),
    [sym_return] = ACTIONS(3008),
    [sym_scope] = ACTIONS(3008),
    [sym_shared] = ACTIONS(3008),
    [sym_static] = ACTIONS(3008),
    [sym_struct] = ACTIONS(3008),
    [sym_switch] = ACTIONS(3008),
    [sym_synchronized] = ACTIONS(3008),
    [sym_template] = ACTIONS(3008),
    [sym_throw] = ACTIONS(3008),
    [sym_try] = ACTIONS(3008),
    [sym_typeid] = ACTIONS(3008),
    [sym_typeof] = ACTIONS(3008),
    [sym_union] = ACTIONS(3008),
    [sym_unittest] = ACTIONS(3008),
    [sym_version] = ACTIONS(3008),
    [sym_while] = ACTIONS(3008),
    [sym_with] = ACTIONS(3008),
    [sym_parameters_] = ACTIONS(3008),
    [sym_gshared] = ACTIONS(3008),
    [sym_traits] = ACTIONS(3008),
    [sym_vector] = ACTIONS(3008),
    [sym_void] = ACTIONS(3008),
    [anon_sym_BQUOTE] = ACTIONS(3010),
    [anon_sym_r_DQUOTE] = ACTIONS(3010),
    [anon_sym_x_DQUOTE] = ACTIONS(3010),
    [anon_sym_DQUOTE] = ACTIONS(3010),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3010),
    [anon_sym_i_BQUOTE] = ACTIONS(3010),
    [anon_sym_i_DQUOTE] = ACTIONS(3010),
    [anon_sym_iq_LBRACE] = ACTIONS(3010),
    [aux_sym_char_literal_token1] = ACTIONS(3010),
    [anon_sym_SQUOTE] = ACTIONS(3008),
    [anon_sym___DATE__] = ACTIONS(3008),
    [anon_sym___FILE__] = ACTIONS(3008),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3008),
    [anon_sym___FUNCTION__] = ACTIONS(3008),
    [anon_sym___LINE__] = ACTIONS(3008),
    [anon_sym___MODULE__] = ACTIONS(3008),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3008),
    [anon_sym___TIME__] = ACTIONS(3008),
    [anon_sym___TIMESTAMP__] = ACTIONS(3008),
    [anon_sym___VENDOR__] = ACTIONS(3008),
    [anon_sym___VERSION__] = ACTIONS(3008),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3010),
    [sym_float_literal] = ACTIONS(3010),
    [sym__string] = ACTIONS(3010),
  },
  [628] = {
    [sym_identifier] = ACTIONS(3012),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3014),
    [anon_sym_RBRACE] = ACTIONS(3014),
    [anon_sym_LBRACE] = ACTIONS(3014),
    [anon_sym_SLASH] = ACTIONS(3012),
    [anon_sym_SLASH_EQ] = ACTIONS(3014),
    [anon_sym_DOT] = ACTIONS(3012),
    [anon_sym_DOT_DOT] = ACTIONS(3012),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3014),
    [anon_sym_AMP] = ACTIONS(3012),
    [anon_sym_AMP_EQ] = ACTIONS(3014),
    [anon_sym_AMP_AMP] = ACTIONS(3014),
    [anon_sym_PIPE] = ACTIONS(3012),
    [anon_sym_PIPE_EQ] = ACTIONS(3014),
    [anon_sym_PIPE_PIPE] = ACTIONS(3014),
    [anon_sym_DASH] = ACTIONS(3012),
    [anon_sym_DASH_EQ] = ACTIONS(3014),
    [anon_sym_DASH_DASH] = ACTIONS(3014),
    [anon_sym_PLUS] = ACTIONS(3012),
    [anon_sym_PLUS_EQ] = ACTIONS(3014),
    [anon_sym_PLUS_PLUS] = ACTIONS(3014),
    [anon_sym_LT] = ACTIONS(3012),
    [anon_sym_LT_EQ] = ACTIONS(3014),
    [anon_sym_LT_LT] = ACTIONS(3012),
    [anon_sym_LT_LT_EQ] = ACTIONS(3014),
    [anon_sym_GT] = ACTIONS(3012),
    [anon_sym_GT_EQ] = ACTIONS(3014),
    [anon_sym_GT_GT_EQ] = ACTIONS(3014),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3014),
    [anon_sym_GT_GT] = ACTIONS(3012),
    [anon_sym_GT_GT_GT] = ACTIONS(3012),
    [anon_sym_BANG] = ACTIONS(3012),
    [anon_sym_BANG_EQ] = ACTIONS(3014),
    [anon_sym_LPAREN] = ACTIONS(3014),
    [anon_sym_RPAREN] = ACTIONS(3014),
    [anon_sym_LBRACK] = ACTIONS(3014),
    [anon_sym_RBRACK] = ACTIONS(3014),
    [anon_sym_QMARK] = ACTIONS(3014),
    [anon_sym_COMMA] = ACTIONS(3014),
    [anon_sym_SEMI] = ACTIONS(3014),
    [anon_sym_COLON] = ACTIONS(3014),
    [anon_sym_DOLLAR] = ACTIONS(3012),
    [anon_sym_EQ] = ACTIONS(3012),
    [anon_sym_EQ_EQ] = ACTIONS(3014),
    [anon_sym_STAR] = ACTIONS(3012),
    [anon_sym_STAR_EQ] = ACTIONS(3014),
    [anon_sym_PERCENT] = ACTIONS(3012),
    [anon_sym_PERCENT_EQ] = ACTIONS(3014),
    [anon_sym_CARET] = ACTIONS(3012),
    [anon_sym_CARET_EQ] = ACTIONS(3014),
    [anon_sym_CARET_CARET] = ACTIONS(3012),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3014),
    [anon_sym_TILDE] = ACTIONS(3012),
    [anon_sym_TILDE_EQ] = ACTIONS(3014),
    [anon_sym_AT] = ACTIONS(3014),
    [anon_sym_EQ_GT] = ACTIONS(3014),
    [anon_sym_POUND] = ACTIONS(3014),
    [anon_sym_BANGin] = ACTIONS(3014),
    [anon_sym_BANGis] = ACTIONS(3014),
    [sym_bool] = ACTIONS(3012),
    [sym_byte] = ACTIONS(3012),
    [sym_ubyte] = ACTIONS(3012),
    [sym_char] = ACTIONS(3012),
    [sym_short] = ACTIONS(3012),
    [sym_ushort] = ACTIONS(3012),
    [sym_int] = ACTIONS(3012),
    [sym_uint] = ACTIONS(3012),
    [sym_long] = ACTIONS(3012),
    [sym_ulong] = ACTIONS(3012),
    [sym_cent] = ACTIONS(3012),
    [sym_ucent] = ACTIONS(3012),
    [sym_wchar] = ACTIONS(3012),
    [sym_dchar] = ACTIONS(3012),
    [sym_float] = ACTIONS(3012),
    [sym_double] = ACTIONS(3012),
    [sym_real] = ACTIONS(3012),
    [sym_ifloat] = ACTIONS(3012),
    [sym_idouble] = ACTIONS(3012),
    [sym_ireal] = ACTIONS(3012),
    [sym_cfloat] = ACTIONS(3012),
    [sym_cdouble] = ACTIONS(3012),
    [sym_creal] = ACTIONS(3012),
    [sym_size_t] = ACTIONS(3012),
    [sym_ptrdiff_t] = ACTIONS(3012),
    [sym_string] = ACTIONS(3012),
    [sym_cstring] = ACTIONS(3012),
    [sym_dstring] = ACTIONS(3012),
    [sym_wstring] = ACTIONS(3012),
    [sym_noreturn] = ACTIONS(3012),
    [sym_true] = ACTIONS(3012),
    [sym_false] = ACTIONS(3012),
    [sym_null] = ACTIONS(3012),
    [sym_super] = ACTIONS(3012),
    [sym_this] = ACTIONS(3012),
    [sym_abstract] = ACTIONS(3012),
    [sym_alias] = ACTIONS(3012),
    [sym_align] = ACTIONS(3012),
    [sym_asm] = ACTIONS(3012),
    [sym_assert] = ACTIONS(3012),
    [sym_auto] = ACTIONS(3012),
    [sym_break] = ACTIONS(3012),
    [sym_case] = ACTIONS(3012),
    [sym_cast] = ACTIONS(3012),
    [sym_catch] = ACTIONS(3012),
    [sym_class] = ACTIONS(3012),
    [sym_const] = ACTIONS(3012),
    [sym_continue] = ACTIONS(3012),
    [sym_debug] = ACTIONS(3012),
    [sym_default] = ACTIONS(3012),
    [sym_delegate] = ACTIONS(3012),
    [sym_delete] = ACTIONS(3012),
    [sym_deprecated] = ACTIONS(3012),
    [sym_do] = ACTIONS(3012),
    [sym_else] = ACTIONS(3012),
    [sym_enum] = ACTIONS(3012),
    [sym_export] = ACTIONS(3012),
    [sym_extern] = ACTIONS(3012),
    [sym_final] = ACTIONS(3012),
    [sym_finally] = ACTIONS(3012),
    [sym_for] = ACTIONS(3012),
    [sym_foreach] = ACTIONS(3012),
    [sym_foreach_reverse] = ACTIONS(3012),
    [sym_function] = ACTIONS(3012),
    [sym_goto] = ACTIONS(3012),
    [sym_if] = ACTIONS(3012),
    [sym_immutable] = ACTIONS(3012),
    [sym_import] = ACTIONS(3012),
    [sym_in] = ACTIONS(3012),
    [sym_inout] = ACTIONS(3012),
    [sym_interface] = ACTIONS(3012),
    [sym_invariant] = ACTIONS(3012),
    [sym_is] = ACTIONS(3012),
    [sym_lazy] = ACTIONS(3012),
    [sym_mixin] = ACTIONS(3012),
    [sym_module] = ACTIONS(3012),
    [sym_new] = ACTIONS(3012),
    [sym_nothrow] = ACTIONS(3012),
    [sym_out] = ACTIONS(3012),
    [sym_override] = ACTIONS(3012),
    [sym_package] = ACTIONS(3012),
    [sym_pragma] = ACTIONS(3012),
    [sym_private] = ACTIONS(3012),
    [sym_protected] = ACTIONS(3012),
    [sym_public] = ACTIONS(3012),
    [sym_pure] = ACTIONS(3012),
    [sym_ref] = ACTIONS(3012),
    [sym_return] = ACTIONS(3012),
    [sym_scope] = ACTIONS(3012),
    [sym_shared] = ACTIONS(3012),
    [sym_static] = ACTIONS(3012),
    [sym_struct] = ACTIONS(3012),
    [sym_switch] = ACTIONS(3012),
    [sym_synchronized] = ACTIONS(3012),
    [sym_template] = ACTIONS(3012),
    [sym_throw] = ACTIONS(3012),
    [sym_try] = ACTIONS(3012),
    [sym_typeid] = ACTIONS(3012),
    [sym_typeof] = ACTIONS(3012),
    [sym_union] = ACTIONS(3012),
    [sym_unittest] = ACTIONS(3012),
    [sym_version] = ACTIONS(3012),
    [sym_while] = ACTIONS(3012),
    [sym_with] = ACTIONS(3012),
    [sym_parameters_] = ACTIONS(3012),
    [sym_gshared] = ACTIONS(3012),
    [sym_traits] = ACTIONS(3012),
    [sym_vector] = ACTIONS(3012),
    [sym_void] = ACTIONS(3012),
    [anon_sym_BQUOTE] = ACTIONS(3014),
    [anon_sym_r_DQUOTE] = ACTIONS(3014),
    [anon_sym_x_DQUOTE] = ACTIONS(3014),
    [anon_sym_DQUOTE] = ACTIONS(3014),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3014),
    [anon_sym_i_BQUOTE] = ACTIONS(3014),
    [anon_sym_i_DQUOTE] = ACTIONS(3014),
    [anon_sym_iq_LBRACE] = ACTIONS(3014),
    [aux_sym_char_literal_token1] = ACTIONS(3014),
    [anon_sym_SQUOTE] = ACTIONS(3012),
    [anon_sym___DATE__] = ACTIONS(3012),
    [anon_sym___FILE__] = ACTIONS(3012),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3012),
    [anon_sym___FUNCTION__] = ACTIONS(3012),
    [anon_sym___LINE__] = ACTIONS(3012),
    [anon_sym___MODULE__] = ACTIONS(3012),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3012),
    [anon_sym___TIME__] = ACTIONS(3012),
    [anon_sym___TIMESTAMP__] = ACTIONS(3012),
    [anon_sym___VENDOR__] = ACTIONS(3012),
    [anon_sym___VERSION__] = ACTIONS(3012),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3014),
    [sym_float_literal] = ACTIONS(3014),
    [sym__string] = ACTIONS(3014),
  },
  [629] = {
    [sym_identifier] = ACTIONS(3016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3018),
    [anon_sym_RBRACE] = ACTIONS(3018),
    [anon_sym_LBRACE] = ACTIONS(3018),
    [anon_sym_SLASH] = ACTIONS(3016),
    [anon_sym_SLASH_EQ] = ACTIONS(3018),
    [anon_sym_DOT] = ACTIONS(3016),
    [anon_sym_DOT_DOT] = ACTIONS(3016),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3018),
    [anon_sym_AMP] = ACTIONS(3016),
    [anon_sym_AMP_EQ] = ACTIONS(3018),
    [anon_sym_AMP_AMP] = ACTIONS(3018),
    [anon_sym_PIPE] = ACTIONS(3016),
    [anon_sym_PIPE_EQ] = ACTIONS(3018),
    [anon_sym_PIPE_PIPE] = ACTIONS(3018),
    [anon_sym_DASH] = ACTIONS(3016),
    [anon_sym_DASH_EQ] = ACTIONS(3018),
    [anon_sym_DASH_DASH] = ACTIONS(3018),
    [anon_sym_PLUS] = ACTIONS(3016),
    [anon_sym_PLUS_EQ] = ACTIONS(3018),
    [anon_sym_PLUS_PLUS] = ACTIONS(3018),
    [anon_sym_LT] = ACTIONS(3016),
    [anon_sym_LT_EQ] = ACTIONS(3018),
    [anon_sym_LT_LT] = ACTIONS(3016),
    [anon_sym_LT_LT_EQ] = ACTIONS(3018),
    [anon_sym_GT] = ACTIONS(3016),
    [anon_sym_GT_EQ] = ACTIONS(3018),
    [anon_sym_GT_GT_EQ] = ACTIONS(3018),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3018),
    [anon_sym_GT_GT] = ACTIONS(3016),
    [anon_sym_GT_GT_GT] = ACTIONS(3016),
    [anon_sym_BANG] = ACTIONS(3016),
    [anon_sym_BANG_EQ] = ACTIONS(3018),
    [anon_sym_LPAREN] = ACTIONS(3018),
    [anon_sym_RPAREN] = ACTIONS(3018),
    [anon_sym_LBRACK] = ACTIONS(3018),
    [anon_sym_RBRACK] = ACTIONS(3018),
    [anon_sym_QMARK] = ACTIONS(3018),
    [anon_sym_COMMA] = ACTIONS(3018),
    [anon_sym_SEMI] = ACTIONS(3018),
    [anon_sym_COLON] = ACTIONS(3018),
    [anon_sym_DOLLAR] = ACTIONS(3016),
    [anon_sym_EQ] = ACTIONS(3016),
    [anon_sym_EQ_EQ] = ACTIONS(3018),
    [anon_sym_STAR] = ACTIONS(3016),
    [anon_sym_STAR_EQ] = ACTIONS(3018),
    [anon_sym_PERCENT] = ACTIONS(3016),
    [anon_sym_PERCENT_EQ] = ACTIONS(3018),
    [anon_sym_CARET] = ACTIONS(3016),
    [anon_sym_CARET_EQ] = ACTIONS(3018),
    [anon_sym_CARET_CARET] = ACTIONS(3016),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3018),
    [anon_sym_TILDE] = ACTIONS(3016),
    [anon_sym_TILDE_EQ] = ACTIONS(3018),
    [anon_sym_AT] = ACTIONS(3018),
    [anon_sym_EQ_GT] = ACTIONS(3018),
    [anon_sym_POUND] = ACTIONS(3018),
    [anon_sym_BANGin] = ACTIONS(3018),
    [anon_sym_BANGis] = ACTIONS(3018),
    [sym_bool] = ACTIONS(3016),
    [sym_byte] = ACTIONS(3016),
    [sym_ubyte] = ACTIONS(3016),
    [sym_char] = ACTIONS(3016),
    [sym_short] = ACTIONS(3016),
    [sym_ushort] = ACTIONS(3016),
    [sym_int] = ACTIONS(3016),
    [sym_uint] = ACTIONS(3016),
    [sym_long] = ACTIONS(3016),
    [sym_ulong] = ACTIONS(3016),
    [sym_cent] = ACTIONS(3016),
    [sym_ucent] = ACTIONS(3016),
    [sym_wchar] = ACTIONS(3016),
    [sym_dchar] = ACTIONS(3016),
    [sym_float] = ACTIONS(3016),
    [sym_double] = ACTIONS(3016),
    [sym_real] = ACTIONS(3016),
    [sym_ifloat] = ACTIONS(3016),
    [sym_idouble] = ACTIONS(3016),
    [sym_ireal] = ACTIONS(3016),
    [sym_cfloat] = ACTIONS(3016),
    [sym_cdouble] = ACTIONS(3016),
    [sym_creal] = ACTIONS(3016),
    [sym_size_t] = ACTIONS(3016),
    [sym_ptrdiff_t] = ACTIONS(3016),
    [sym_string] = ACTIONS(3016),
    [sym_cstring] = ACTIONS(3016),
    [sym_dstring] = ACTIONS(3016),
    [sym_wstring] = ACTIONS(3016),
    [sym_noreturn] = ACTIONS(3016),
    [sym_true] = ACTIONS(3016),
    [sym_false] = ACTIONS(3016),
    [sym_null] = ACTIONS(3016),
    [sym_super] = ACTIONS(3016),
    [sym_this] = ACTIONS(3016),
    [sym_abstract] = ACTIONS(3016),
    [sym_alias] = ACTIONS(3016),
    [sym_align] = ACTIONS(3016),
    [sym_asm] = ACTIONS(3016),
    [sym_assert] = ACTIONS(3016),
    [sym_auto] = ACTIONS(3016),
    [sym_break] = ACTIONS(3016),
    [sym_case] = ACTIONS(3016),
    [sym_cast] = ACTIONS(3016),
    [sym_catch] = ACTIONS(3016),
    [sym_class] = ACTIONS(3016),
    [sym_const] = ACTIONS(3016),
    [sym_continue] = ACTIONS(3016),
    [sym_debug] = ACTIONS(3016),
    [sym_default] = ACTIONS(3016),
    [sym_delegate] = ACTIONS(3016),
    [sym_delete] = ACTIONS(3016),
    [sym_deprecated] = ACTIONS(3016),
    [sym_do] = ACTIONS(3016),
    [sym_else] = ACTIONS(3016),
    [sym_enum] = ACTIONS(3016),
    [sym_export] = ACTIONS(3016),
    [sym_extern] = ACTIONS(3016),
    [sym_final] = ACTIONS(3016),
    [sym_finally] = ACTIONS(3016),
    [sym_for] = ACTIONS(3016),
    [sym_foreach] = ACTIONS(3016),
    [sym_foreach_reverse] = ACTIONS(3016),
    [sym_function] = ACTIONS(3016),
    [sym_goto] = ACTIONS(3016),
    [sym_if] = ACTIONS(3016),
    [sym_immutable] = ACTIONS(3016),
    [sym_import] = ACTIONS(3016),
    [sym_in] = ACTIONS(3016),
    [sym_inout] = ACTIONS(3016),
    [sym_interface] = ACTIONS(3016),
    [sym_invariant] = ACTIONS(3016),
    [sym_is] = ACTIONS(3016),
    [sym_lazy] = ACTIONS(3016),
    [sym_mixin] = ACTIONS(3016),
    [sym_module] = ACTIONS(3016),
    [sym_new] = ACTIONS(3016),
    [sym_nothrow] = ACTIONS(3016),
    [sym_out] = ACTIONS(3016),
    [sym_override] = ACTIONS(3016),
    [sym_package] = ACTIONS(3016),
    [sym_pragma] = ACTIONS(3016),
    [sym_private] = ACTIONS(3016),
    [sym_protected] = ACTIONS(3016),
    [sym_public] = ACTIONS(3016),
    [sym_pure] = ACTIONS(3016),
    [sym_ref] = ACTIONS(3016),
    [sym_return] = ACTIONS(3016),
    [sym_scope] = ACTIONS(3016),
    [sym_shared] = ACTIONS(3016),
    [sym_static] = ACTIONS(3016),
    [sym_struct] = ACTIONS(3016),
    [sym_switch] = ACTIONS(3016),
    [sym_synchronized] = ACTIONS(3016),
    [sym_template] = ACTIONS(3016),
    [sym_throw] = ACTIONS(3016),
    [sym_try] = ACTIONS(3016),
    [sym_typeid] = ACTIONS(3016),
    [sym_typeof] = ACTIONS(3016),
    [sym_union] = ACTIONS(3016),
    [sym_unittest] = ACTIONS(3016),
    [sym_version] = ACTIONS(3016),
    [sym_while] = ACTIONS(3016),
    [sym_with] = ACTIONS(3016),
    [sym_parameters_] = ACTIONS(3016),
    [sym_gshared] = ACTIONS(3016),
    [sym_traits] = ACTIONS(3016),
    [sym_vector] = ACTIONS(3016),
    [sym_void] = ACTIONS(3016),
    [anon_sym_BQUOTE] = ACTIONS(3018),
    [anon_sym_r_DQUOTE] = ACTIONS(3018),
    [anon_sym_x_DQUOTE] = ACTIONS(3018),
    [anon_sym_DQUOTE] = ACTIONS(3018),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3018),
    [anon_sym_i_BQUOTE] = ACTIONS(3018),
    [anon_sym_i_DQUOTE] = ACTIONS(3018),
    [anon_sym_iq_LBRACE] = ACTIONS(3018),
    [aux_sym_char_literal_token1] = ACTIONS(3018),
    [anon_sym_SQUOTE] = ACTIONS(3016),
    [anon_sym___DATE__] = ACTIONS(3016),
    [anon_sym___FILE__] = ACTIONS(3016),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3016),
    [anon_sym___FUNCTION__] = ACTIONS(3016),
    [anon_sym___LINE__] = ACTIONS(3016),
    [anon_sym___MODULE__] = ACTIONS(3016),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3016),
    [anon_sym___TIME__] = ACTIONS(3016),
    [anon_sym___TIMESTAMP__] = ACTIONS(3016),
    [anon_sym___VENDOR__] = ACTIONS(3016),
    [anon_sym___VERSION__] = ACTIONS(3016),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3018),
    [sym_float_literal] = ACTIONS(3018),
    [sym__string] = ACTIONS(3018),
  },
  [630] = {
    [sym_identifier] = ACTIONS(3020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3022),
    [anon_sym_RBRACE] = ACTIONS(3022),
    [anon_sym_LBRACE] = ACTIONS(3022),
    [anon_sym_SLASH] = ACTIONS(3020),
    [anon_sym_SLASH_EQ] = ACTIONS(3022),
    [anon_sym_DOT] = ACTIONS(3020),
    [anon_sym_DOT_DOT] = ACTIONS(3020),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3022),
    [anon_sym_AMP] = ACTIONS(3020),
    [anon_sym_AMP_EQ] = ACTIONS(3022),
    [anon_sym_AMP_AMP] = ACTIONS(3022),
    [anon_sym_PIPE] = ACTIONS(3020),
    [anon_sym_PIPE_EQ] = ACTIONS(3022),
    [anon_sym_PIPE_PIPE] = ACTIONS(3022),
    [anon_sym_DASH] = ACTIONS(3020),
    [anon_sym_DASH_EQ] = ACTIONS(3022),
    [anon_sym_DASH_DASH] = ACTIONS(3022),
    [anon_sym_PLUS] = ACTIONS(3020),
    [anon_sym_PLUS_EQ] = ACTIONS(3022),
    [anon_sym_PLUS_PLUS] = ACTIONS(3022),
    [anon_sym_LT] = ACTIONS(3020),
    [anon_sym_LT_EQ] = ACTIONS(3022),
    [anon_sym_LT_LT] = ACTIONS(3020),
    [anon_sym_LT_LT_EQ] = ACTIONS(3022),
    [anon_sym_GT] = ACTIONS(3020),
    [anon_sym_GT_EQ] = ACTIONS(3022),
    [anon_sym_GT_GT_EQ] = ACTIONS(3022),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3022),
    [anon_sym_GT_GT] = ACTIONS(3020),
    [anon_sym_GT_GT_GT] = ACTIONS(3020),
    [anon_sym_BANG] = ACTIONS(3020),
    [anon_sym_BANG_EQ] = ACTIONS(3022),
    [anon_sym_LPAREN] = ACTIONS(3022),
    [anon_sym_RPAREN] = ACTIONS(3022),
    [anon_sym_LBRACK] = ACTIONS(3022),
    [anon_sym_RBRACK] = ACTIONS(3022),
    [anon_sym_QMARK] = ACTIONS(3022),
    [anon_sym_COMMA] = ACTIONS(3022),
    [anon_sym_SEMI] = ACTIONS(3022),
    [anon_sym_COLON] = ACTIONS(3022),
    [anon_sym_DOLLAR] = ACTIONS(3020),
    [anon_sym_EQ] = ACTIONS(3020),
    [anon_sym_EQ_EQ] = ACTIONS(3022),
    [anon_sym_STAR] = ACTIONS(3020),
    [anon_sym_STAR_EQ] = ACTIONS(3022),
    [anon_sym_PERCENT] = ACTIONS(3020),
    [anon_sym_PERCENT_EQ] = ACTIONS(3022),
    [anon_sym_CARET] = ACTIONS(3020),
    [anon_sym_CARET_EQ] = ACTIONS(3022),
    [anon_sym_CARET_CARET] = ACTIONS(3020),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3022),
    [anon_sym_TILDE] = ACTIONS(3020),
    [anon_sym_TILDE_EQ] = ACTIONS(3022),
    [anon_sym_AT] = ACTIONS(3022),
    [anon_sym_EQ_GT] = ACTIONS(3022),
    [anon_sym_POUND] = ACTIONS(3022),
    [anon_sym_BANGin] = ACTIONS(3022),
    [anon_sym_BANGis] = ACTIONS(3022),
    [sym_bool] = ACTIONS(3020),
    [sym_byte] = ACTIONS(3020),
    [sym_ubyte] = ACTIONS(3020),
    [sym_char] = ACTIONS(3020),
    [sym_short] = ACTIONS(3020),
    [sym_ushort] = ACTIONS(3020),
    [sym_int] = ACTIONS(3020),
    [sym_uint] = ACTIONS(3020),
    [sym_long] = ACTIONS(3020),
    [sym_ulong] = ACTIONS(3020),
    [sym_cent] = ACTIONS(3020),
    [sym_ucent] = ACTIONS(3020),
    [sym_wchar] = ACTIONS(3020),
    [sym_dchar] = ACTIONS(3020),
    [sym_float] = ACTIONS(3020),
    [sym_double] = ACTIONS(3020),
    [sym_real] = ACTIONS(3020),
    [sym_ifloat] = ACTIONS(3020),
    [sym_idouble] = ACTIONS(3020),
    [sym_ireal] = ACTIONS(3020),
    [sym_cfloat] = ACTIONS(3020),
    [sym_cdouble] = ACTIONS(3020),
    [sym_creal] = ACTIONS(3020),
    [sym_size_t] = ACTIONS(3020),
    [sym_ptrdiff_t] = ACTIONS(3020),
    [sym_string] = ACTIONS(3020),
    [sym_cstring] = ACTIONS(3020),
    [sym_dstring] = ACTIONS(3020),
    [sym_wstring] = ACTIONS(3020),
    [sym_noreturn] = ACTIONS(3020),
    [sym_true] = ACTIONS(3020),
    [sym_false] = ACTIONS(3020),
    [sym_null] = ACTIONS(3020),
    [sym_super] = ACTIONS(3020),
    [sym_this] = ACTIONS(3020),
    [sym_abstract] = ACTIONS(3020),
    [sym_alias] = ACTIONS(3020),
    [sym_align] = ACTIONS(3020),
    [sym_asm] = ACTIONS(3020),
    [sym_assert] = ACTIONS(3020),
    [sym_auto] = ACTIONS(3020),
    [sym_break] = ACTIONS(3020),
    [sym_case] = ACTIONS(3020),
    [sym_cast] = ACTIONS(3020),
    [sym_catch] = ACTIONS(3020),
    [sym_class] = ACTIONS(3020),
    [sym_const] = ACTIONS(3020),
    [sym_continue] = ACTIONS(3020),
    [sym_debug] = ACTIONS(3020),
    [sym_default] = ACTIONS(3020),
    [sym_delegate] = ACTIONS(3020),
    [sym_delete] = ACTIONS(3020),
    [sym_deprecated] = ACTIONS(3020),
    [sym_do] = ACTIONS(3020),
    [sym_else] = ACTIONS(3020),
    [sym_enum] = ACTIONS(3020),
    [sym_export] = ACTIONS(3020),
    [sym_extern] = ACTIONS(3020),
    [sym_final] = ACTIONS(3020),
    [sym_finally] = ACTIONS(3020),
    [sym_for] = ACTIONS(3020),
    [sym_foreach] = ACTIONS(3020),
    [sym_foreach_reverse] = ACTIONS(3020),
    [sym_function] = ACTIONS(3020),
    [sym_goto] = ACTIONS(3020),
    [sym_if] = ACTIONS(3020),
    [sym_immutable] = ACTIONS(3020),
    [sym_import] = ACTIONS(3020),
    [sym_in] = ACTIONS(3020),
    [sym_inout] = ACTIONS(3020),
    [sym_interface] = ACTIONS(3020),
    [sym_invariant] = ACTIONS(3020),
    [sym_is] = ACTIONS(3020),
    [sym_lazy] = ACTIONS(3020),
    [sym_mixin] = ACTIONS(3020),
    [sym_module] = ACTIONS(3020),
    [sym_new] = ACTIONS(3020),
    [sym_nothrow] = ACTIONS(3020),
    [sym_out] = ACTIONS(3020),
    [sym_override] = ACTIONS(3020),
    [sym_package] = ACTIONS(3020),
    [sym_pragma] = ACTIONS(3020),
    [sym_private] = ACTIONS(3020),
    [sym_protected] = ACTIONS(3020),
    [sym_public] = ACTIONS(3020),
    [sym_pure] = ACTIONS(3020),
    [sym_ref] = ACTIONS(3020),
    [sym_return] = ACTIONS(3020),
    [sym_scope] = ACTIONS(3020),
    [sym_shared] = ACTIONS(3020),
    [sym_static] = ACTIONS(3020),
    [sym_struct] = ACTIONS(3020),
    [sym_switch] = ACTIONS(3020),
    [sym_synchronized] = ACTIONS(3020),
    [sym_template] = ACTIONS(3020),
    [sym_throw] = ACTIONS(3020),
    [sym_try] = ACTIONS(3020),
    [sym_typeid] = ACTIONS(3020),
    [sym_typeof] = ACTIONS(3020),
    [sym_union] = ACTIONS(3020),
    [sym_unittest] = ACTIONS(3020),
    [sym_version] = ACTIONS(3020),
    [sym_while] = ACTIONS(3020),
    [sym_with] = ACTIONS(3020),
    [sym_parameters_] = ACTIONS(3020),
    [sym_gshared] = ACTIONS(3020),
    [sym_traits] = ACTIONS(3020),
    [sym_vector] = ACTIONS(3020),
    [sym_void] = ACTIONS(3020),
    [anon_sym_BQUOTE] = ACTIONS(3022),
    [anon_sym_r_DQUOTE] = ACTIONS(3022),
    [anon_sym_x_DQUOTE] = ACTIONS(3022),
    [anon_sym_DQUOTE] = ACTIONS(3022),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3022),
    [anon_sym_i_BQUOTE] = ACTIONS(3022),
    [anon_sym_i_DQUOTE] = ACTIONS(3022),
    [anon_sym_iq_LBRACE] = ACTIONS(3022),
    [aux_sym_char_literal_token1] = ACTIONS(3022),
    [anon_sym_SQUOTE] = ACTIONS(3020),
    [anon_sym___DATE__] = ACTIONS(3020),
    [anon_sym___FILE__] = ACTIONS(3020),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3020),
    [anon_sym___FUNCTION__] = ACTIONS(3020),
    [anon_sym___LINE__] = ACTIONS(3020),
    [anon_sym___MODULE__] = ACTIONS(3020),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3020),
    [anon_sym___TIME__] = ACTIONS(3020),
    [anon_sym___TIMESTAMP__] = ACTIONS(3020),
    [anon_sym___VENDOR__] = ACTIONS(3020),
    [anon_sym___VERSION__] = ACTIONS(3020),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3022),
    [sym_float_literal] = ACTIONS(3022),
    [sym__string] = ACTIONS(3022),
  },
  [631] = {
    [sym_identifier] = ACTIONS(3024),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3026),
    [anon_sym_RBRACE] = ACTIONS(3026),
    [anon_sym_LBRACE] = ACTIONS(3026),
    [anon_sym_SLASH] = ACTIONS(3024),
    [anon_sym_SLASH_EQ] = ACTIONS(3026),
    [anon_sym_DOT] = ACTIONS(3024),
    [anon_sym_DOT_DOT] = ACTIONS(3024),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3026),
    [anon_sym_AMP] = ACTIONS(3024),
    [anon_sym_AMP_EQ] = ACTIONS(3026),
    [anon_sym_AMP_AMP] = ACTIONS(3026),
    [anon_sym_PIPE] = ACTIONS(3024),
    [anon_sym_PIPE_EQ] = ACTIONS(3026),
    [anon_sym_PIPE_PIPE] = ACTIONS(3026),
    [anon_sym_DASH] = ACTIONS(3024),
    [anon_sym_DASH_EQ] = ACTIONS(3026),
    [anon_sym_DASH_DASH] = ACTIONS(3026),
    [anon_sym_PLUS] = ACTIONS(3024),
    [anon_sym_PLUS_EQ] = ACTIONS(3026),
    [anon_sym_PLUS_PLUS] = ACTIONS(3026),
    [anon_sym_LT] = ACTIONS(3024),
    [anon_sym_LT_EQ] = ACTIONS(3026),
    [anon_sym_LT_LT] = ACTIONS(3024),
    [anon_sym_LT_LT_EQ] = ACTIONS(3026),
    [anon_sym_GT] = ACTIONS(3024),
    [anon_sym_GT_EQ] = ACTIONS(3026),
    [anon_sym_GT_GT_EQ] = ACTIONS(3026),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3026),
    [anon_sym_GT_GT] = ACTIONS(3024),
    [anon_sym_GT_GT_GT] = ACTIONS(3024),
    [anon_sym_BANG] = ACTIONS(3024),
    [anon_sym_BANG_EQ] = ACTIONS(3026),
    [anon_sym_LPAREN] = ACTIONS(3026),
    [anon_sym_RPAREN] = ACTIONS(3026),
    [anon_sym_LBRACK] = ACTIONS(3026),
    [anon_sym_RBRACK] = ACTIONS(3026),
    [anon_sym_QMARK] = ACTIONS(3026),
    [anon_sym_COMMA] = ACTIONS(3026),
    [anon_sym_SEMI] = ACTIONS(3026),
    [anon_sym_COLON] = ACTIONS(3026),
    [anon_sym_DOLLAR] = ACTIONS(3024),
    [anon_sym_EQ] = ACTIONS(3024),
    [anon_sym_EQ_EQ] = ACTIONS(3026),
    [anon_sym_STAR] = ACTIONS(3024),
    [anon_sym_STAR_EQ] = ACTIONS(3026),
    [anon_sym_PERCENT] = ACTIONS(3024),
    [anon_sym_PERCENT_EQ] = ACTIONS(3026),
    [anon_sym_CARET] = ACTIONS(3024),
    [anon_sym_CARET_EQ] = ACTIONS(3026),
    [anon_sym_CARET_CARET] = ACTIONS(3024),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3026),
    [anon_sym_TILDE] = ACTIONS(3024),
    [anon_sym_TILDE_EQ] = ACTIONS(3026),
    [anon_sym_AT] = ACTIONS(3026),
    [anon_sym_EQ_GT] = ACTIONS(3026),
    [anon_sym_POUND] = ACTIONS(3026),
    [anon_sym_BANGin] = ACTIONS(3026),
    [anon_sym_BANGis] = ACTIONS(3026),
    [sym_bool] = ACTIONS(3024),
    [sym_byte] = ACTIONS(3024),
    [sym_ubyte] = ACTIONS(3024),
    [sym_char] = ACTIONS(3024),
    [sym_short] = ACTIONS(3024),
    [sym_ushort] = ACTIONS(3024),
    [sym_int] = ACTIONS(3024),
    [sym_uint] = ACTIONS(3024),
    [sym_long] = ACTIONS(3024),
    [sym_ulong] = ACTIONS(3024),
    [sym_cent] = ACTIONS(3024),
    [sym_ucent] = ACTIONS(3024),
    [sym_wchar] = ACTIONS(3024),
    [sym_dchar] = ACTIONS(3024),
    [sym_float] = ACTIONS(3024),
    [sym_double] = ACTIONS(3024),
    [sym_real] = ACTIONS(3024),
    [sym_ifloat] = ACTIONS(3024),
    [sym_idouble] = ACTIONS(3024),
    [sym_ireal] = ACTIONS(3024),
    [sym_cfloat] = ACTIONS(3024),
    [sym_cdouble] = ACTIONS(3024),
    [sym_creal] = ACTIONS(3024),
    [sym_size_t] = ACTIONS(3024),
    [sym_ptrdiff_t] = ACTIONS(3024),
    [sym_string] = ACTIONS(3024),
    [sym_cstring] = ACTIONS(3024),
    [sym_dstring] = ACTIONS(3024),
    [sym_wstring] = ACTIONS(3024),
    [sym_noreturn] = ACTIONS(3024),
    [sym_true] = ACTIONS(3024),
    [sym_false] = ACTIONS(3024),
    [sym_null] = ACTIONS(3024),
    [sym_super] = ACTIONS(3024),
    [sym_this] = ACTIONS(3024),
    [sym_abstract] = ACTIONS(3024),
    [sym_alias] = ACTIONS(3024),
    [sym_align] = ACTIONS(3024),
    [sym_asm] = ACTIONS(3024),
    [sym_assert] = ACTIONS(3024),
    [sym_auto] = ACTIONS(3024),
    [sym_break] = ACTIONS(3024),
    [sym_case] = ACTIONS(3024),
    [sym_cast] = ACTIONS(3024),
    [sym_catch] = ACTIONS(3024),
    [sym_class] = ACTIONS(3024),
    [sym_const] = ACTIONS(3024),
    [sym_continue] = ACTIONS(3024),
    [sym_debug] = ACTIONS(3024),
    [sym_default] = ACTIONS(3024),
    [sym_delegate] = ACTIONS(3024),
    [sym_delete] = ACTIONS(3024),
    [sym_deprecated] = ACTIONS(3024),
    [sym_do] = ACTIONS(3024),
    [sym_else] = ACTIONS(3024),
    [sym_enum] = ACTIONS(3024),
    [sym_export] = ACTIONS(3024),
    [sym_extern] = ACTIONS(3024),
    [sym_final] = ACTIONS(3024),
    [sym_finally] = ACTIONS(3024),
    [sym_for] = ACTIONS(3024),
    [sym_foreach] = ACTIONS(3024),
    [sym_foreach_reverse] = ACTIONS(3024),
    [sym_function] = ACTIONS(3024),
    [sym_goto] = ACTIONS(3024),
    [sym_if] = ACTIONS(3024),
    [sym_immutable] = ACTIONS(3024),
    [sym_import] = ACTIONS(3024),
    [sym_in] = ACTIONS(3024),
    [sym_inout] = ACTIONS(3024),
    [sym_interface] = ACTIONS(3024),
    [sym_invariant] = ACTIONS(3024),
    [sym_is] = ACTIONS(3024),
    [sym_lazy] = ACTIONS(3024),
    [sym_mixin] = ACTIONS(3024),
    [sym_module] = ACTIONS(3024),
    [sym_new] = ACTIONS(3024),
    [sym_nothrow] = ACTIONS(3024),
    [sym_out] = ACTIONS(3024),
    [sym_override] = ACTIONS(3024),
    [sym_package] = ACTIONS(3024),
    [sym_pragma] = ACTIONS(3024),
    [sym_private] = ACTIONS(3024),
    [sym_protected] = ACTIONS(3024),
    [sym_public] = ACTIONS(3024),
    [sym_pure] = ACTIONS(3024),
    [sym_ref] = ACTIONS(3024),
    [sym_return] = ACTIONS(3024),
    [sym_scope] = ACTIONS(3024),
    [sym_shared] = ACTIONS(3024),
    [sym_static] = ACTIONS(3024),
    [sym_struct] = ACTIONS(3024),
    [sym_switch] = ACTIONS(3024),
    [sym_synchronized] = ACTIONS(3024),
    [sym_template] = ACTIONS(3024),
    [sym_throw] = ACTIONS(3024),
    [sym_try] = ACTIONS(3024),
    [sym_typeid] = ACTIONS(3024),
    [sym_typeof] = ACTIONS(3024),
    [sym_union] = ACTIONS(3024),
    [sym_unittest] = ACTIONS(3024),
    [sym_version] = ACTIONS(3024),
    [sym_while] = ACTIONS(3024),
    [sym_with] = ACTIONS(3024),
    [sym_parameters_] = ACTIONS(3024),
    [sym_gshared] = ACTIONS(3024),
    [sym_traits] = ACTIONS(3024),
    [sym_vector] = ACTIONS(3024),
    [sym_void] = ACTIONS(3024),
    [anon_sym_BQUOTE] = ACTIONS(3026),
    [anon_sym_r_DQUOTE] = ACTIONS(3026),
    [anon_sym_x_DQUOTE] = ACTIONS(3026),
    [anon_sym_DQUOTE] = ACTIONS(3026),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3026),
    [anon_sym_i_BQUOTE] = ACTIONS(3026),
    [anon_sym_i_DQUOTE] = ACTIONS(3026),
    [anon_sym_iq_LBRACE] = ACTIONS(3026),
    [aux_sym_char_literal_token1] = ACTIONS(3026),
    [anon_sym_SQUOTE] = ACTIONS(3024),
    [anon_sym___DATE__] = ACTIONS(3024),
    [anon_sym___FILE__] = ACTIONS(3024),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3024),
    [anon_sym___FUNCTION__] = ACTIONS(3024),
    [anon_sym___LINE__] = ACTIONS(3024),
    [anon_sym___MODULE__] = ACTIONS(3024),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3024),
    [anon_sym___TIME__] = ACTIONS(3024),
    [anon_sym___TIMESTAMP__] = ACTIONS(3024),
    [anon_sym___VENDOR__] = ACTIONS(3024),
    [anon_sym___VERSION__] = ACTIONS(3024),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3026),
    [sym_float_literal] = ACTIONS(3026),
    [sym__string] = ACTIONS(3026),
  },
  [632] = {
    [sym_identifier] = ACTIONS(3028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3030),
    [anon_sym_RBRACE] = ACTIONS(3030),
    [anon_sym_LBRACE] = ACTIONS(3030),
    [anon_sym_SLASH] = ACTIONS(3028),
    [anon_sym_SLASH_EQ] = ACTIONS(3030),
    [anon_sym_DOT] = ACTIONS(3028),
    [anon_sym_DOT_DOT] = ACTIONS(3028),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3030),
    [anon_sym_AMP] = ACTIONS(3028),
    [anon_sym_AMP_EQ] = ACTIONS(3030),
    [anon_sym_AMP_AMP] = ACTIONS(3030),
    [anon_sym_PIPE] = ACTIONS(3028),
    [anon_sym_PIPE_EQ] = ACTIONS(3030),
    [anon_sym_PIPE_PIPE] = ACTIONS(3030),
    [anon_sym_DASH] = ACTIONS(3028),
    [anon_sym_DASH_EQ] = ACTIONS(3030),
    [anon_sym_DASH_DASH] = ACTIONS(3030),
    [anon_sym_PLUS] = ACTIONS(3028),
    [anon_sym_PLUS_EQ] = ACTIONS(3030),
    [anon_sym_PLUS_PLUS] = ACTIONS(3030),
    [anon_sym_LT] = ACTIONS(3028),
    [anon_sym_LT_EQ] = ACTIONS(3030),
    [anon_sym_LT_LT] = ACTIONS(3028),
    [anon_sym_LT_LT_EQ] = ACTIONS(3030),
    [anon_sym_GT] = ACTIONS(3028),
    [anon_sym_GT_EQ] = ACTIONS(3030),
    [anon_sym_GT_GT_EQ] = ACTIONS(3030),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3030),
    [anon_sym_GT_GT] = ACTIONS(3028),
    [anon_sym_GT_GT_GT] = ACTIONS(3028),
    [anon_sym_BANG] = ACTIONS(3028),
    [anon_sym_BANG_EQ] = ACTIONS(3030),
    [anon_sym_LPAREN] = ACTIONS(3030),
    [anon_sym_RPAREN] = ACTIONS(3030),
    [anon_sym_LBRACK] = ACTIONS(3030),
    [anon_sym_RBRACK] = ACTIONS(3030),
    [anon_sym_QMARK] = ACTIONS(3030),
    [anon_sym_COMMA] = ACTIONS(3030),
    [anon_sym_SEMI] = ACTIONS(3030),
    [anon_sym_COLON] = ACTIONS(3030),
    [anon_sym_DOLLAR] = ACTIONS(3028),
    [anon_sym_EQ] = ACTIONS(3028),
    [anon_sym_EQ_EQ] = ACTIONS(3030),
    [anon_sym_STAR] = ACTIONS(3028),
    [anon_sym_STAR_EQ] = ACTIONS(3030),
    [anon_sym_PERCENT] = ACTIONS(3028),
    [anon_sym_PERCENT_EQ] = ACTIONS(3030),
    [anon_sym_CARET] = ACTIONS(3028),
    [anon_sym_CARET_EQ] = ACTIONS(3030),
    [anon_sym_CARET_CARET] = ACTIONS(3028),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3030),
    [anon_sym_TILDE] = ACTIONS(3028),
    [anon_sym_TILDE_EQ] = ACTIONS(3030),
    [anon_sym_AT] = ACTIONS(3030),
    [anon_sym_EQ_GT] = ACTIONS(3030),
    [anon_sym_POUND] = ACTIONS(3030),
    [anon_sym_BANGin] = ACTIONS(3030),
    [anon_sym_BANGis] = ACTIONS(3030),
    [sym_bool] = ACTIONS(3028),
    [sym_byte] = ACTIONS(3028),
    [sym_ubyte] = ACTIONS(3028),
    [sym_char] = ACTIONS(3028),
    [sym_short] = ACTIONS(3028),
    [sym_ushort] = ACTIONS(3028),
    [sym_int] = ACTIONS(3028),
    [sym_uint] = ACTIONS(3028),
    [sym_long] = ACTIONS(3028),
    [sym_ulong] = ACTIONS(3028),
    [sym_cent] = ACTIONS(3028),
    [sym_ucent] = ACTIONS(3028),
    [sym_wchar] = ACTIONS(3028),
    [sym_dchar] = ACTIONS(3028),
    [sym_float] = ACTIONS(3028),
    [sym_double] = ACTIONS(3028),
    [sym_real] = ACTIONS(3028),
    [sym_ifloat] = ACTIONS(3028),
    [sym_idouble] = ACTIONS(3028),
    [sym_ireal] = ACTIONS(3028),
    [sym_cfloat] = ACTIONS(3028),
    [sym_cdouble] = ACTIONS(3028),
    [sym_creal] = ACTIONS(3028),
    [sym_size_t] = ACTIONS(3028),
    [sym_ptrdiff_t] = ACTIONS(3028),
    [sym_string] = ACTIONS(3028),
    [sym_cstring] = ACTIONS(3028),
    [sym_dstring] = ACTIONS(3028),
    [sym_wstring] = ACTIONS(3028),
    [sym_noreturn] = ACTIONS(3028),
    [sym_true] = ACTIONS(3028),
    [sym_false] = ACTIONS(3028),
    [sym_null] = ACTIONS(3028),
    [sym_super] = ACTIONS(3028),
    [sym_this] = ACTIONS(3028),
    [sym_abstract] = ACTIONS(3028),
    [sym_alias] = ACTIONS(3028),
    [sym_align] = ACTIONS(3028),
    [sym_asm] = ACTIONS(3028),
    [sym_assert] = ACTIONS(3028),
    [sym_auto] = ACTIONS(3028),
    [sym_break] = ACTIONS(3028),
    [sym_case] = ACTIONS(3028),
    [sym_cast] = ACTIONS(3028),
    [sym_catch] = ACTIONS(3028),
    [sym_class] = ACTIONS(3028),
    [sym_const] = ACTIONS(3028),
    [sym_continue] = ACTIONS(3028),
    [sym_debug] = ACTIONS(3028),
    [sym_default] = ACTIONS(3028),
    [sym_delegate] = ACTIONS(3028),
    [sym_delete] = ACTIONS(3028),
    [sym_deprecated] = ACTIONS(3028),
    [sym_do] = ACTIONS(3028),
    [sym_else] = ACTIONS(3028),
    [sym_enum] = ACTIONS(3028),
    [sym_export] = ACTIONS(3028),
    [sym_extern] = ACTIONS(3028),
    [sym_final] = ACTIONS(3028),
    [sym_finally] = ACTIONS(3028),
    [sym_for] = ACTIONS(3028),
    [sym_foreach] = ACTIONS(3028),
    [sym_foreach_reverse] = ACTIONS(3028),
    [sym_function] = ACTIONS(3028),
    [sym_goto] = ACTIONS(3028),
    [sym_if] = ACTIONS(3028),
    [sym_immutable] = ACTIONS(3028),
    [sym_import] = ACTIONS(3028),
    [sym_in] = ACTIONS(3028),
    [sym_inout] = ACTIONS(3028),
    [sym_interface] = ACTIONS(3028),
    [sym_invariant] = ACTIONS(3028),
    [sym_is] = ACTIONS(3028),
    [sym_lazy] = ACTIONS(3028),
    [sym_mixin] = ACTIONS(3028),
    [sym_module] = ACTIONS(3028),
    [sym_new] = ACTIONS(3028),
    [sym_nothrow] = ACTIONS(3028),
    [sym_out] = ACTIONS(3028),
    [sym_override] = ACTIONS(3028),
    [sym_package] = ACTIONS(3028),
    [sym_pragma] = ACTIONS(3028),
    [sym_private] = ACTIONS(3028),
    [sym_protected] = ACTIONS(3028),
    [sym_public] = ACTIONS(3028),
    [sym_pure] = ACTIONS(3028),
    [sym_ref] = ACTIONS(3028),
    [sym_return] = ACTIONS(3028),
    [sym_scope] = ACTIONS(3028),
    [sym_shared] = ACTIONS(3028),
    [sym_static] = ACTIONS(3028),
    [sym_struct] = ACTIONS(3028),
    [sym_switch] = ACTIONS(3028),
    [sym_synchronized] = ACTIONS(3028),
    [sym_template] = ACTIONS(3028),
    [sym_throw] = ACTIONS(3028),
    [sym_try] = ACTIONS(3028),
    [sym_typeid] = ACTIONS(3028),
    [sym_typeof] = ACTIONS(3028),
    [sym_union] = ACTIONS(3028),
    [sym_unittest] = ACTIONS(3028),
    [sym_version] = ACTIONS(3028),
    [sym_while] = ACTIONS(3028),
    [sym_with] = ACTIONS(3028),
    [sym_parameters_] = ACTIONS(3028),
    [sym_gshared] = ACTIONS(3028),
    [sym_traits] = ACTIONS(3028),
    [sym_vector] = ACTIONS(3028),
    [sym_void] = ACTIONS(3028),
    [anon_sym_BQUOTE] = ACTIONS(3030),
    [anon_sym_r_DQUOTE] = ACTIONS(3030),
    [anon_sym_x_DQUOTE] = ACTIONS(3030),
    [anon_sym_DQUOTE] = ACTIONS(3030),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3030),
    [anon_sym_i_BQUOTE] = ACTIONS(3030),
    [anon_sym_i_DQUOTE] = ACTIONS(3030),
    [anon_sym_iq_LBRACE] = ACTIONS(3030),
    [aux_sym_char_literal_token1] = ACTIONS(3030),
    [anon_sym_SQUOTE] = ACTIONS(3028),
    [anon_sym___DATE__] = ACTIONS(3028),
    [anon_sym___FILE__] = ACTIONS(3028),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3028),
    [anon_sym___FUNCTION__] = ACTIONS(3028),
    [anon_sym___LINE__] = ACTIONS(3028),
    [anon_sym___MODULE__] = ACTIONS(3028),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3028),
    [anon_sym___TIME__] = ACTIONS(3028),
    [anon_sym___TIMESTAMP__] = ACTIONS(3028),
    [anon_sym___VENDOR__] = ACTIONS(3028),
    [anon_sym___VERSION__] = ACTIONS(3028),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3030),
    [sym_float_literal] = ACTIONS(3030),
    [sym__string] = ACTIONS(3030),
  },
  [633] = {
    [sym_identifier] = ACTIONS(3032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3034),
    [anon_sym_RBRACE] = ACTIONS(3034),
    [anon_sym_LBRACE] = ACTIONS(3034),
    [anon_sym_SLASH] = ACTIONS(3032),
    [anon_sym_SLASH_EQ] = ACTIONS(3034),
    [anon_sym_DOT] = ACTIONS(3032),
    [anon_sym_DOT_DOT] = ACTIONS(3032),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3034),
    [anon_sym_AMP] = ACTIONS(3032),
    [anon_sym_AMP_EQ] = ACTIONS(3034),
    [anon_sym_AMP_AMP] = ACTIONS(3034),
    [anon_sym_PIPE] = ACTIONS(3032),
    [anon_sym_PIPE_EQ] = ACTIONS(3034),
    [anon_sym_PIPE_PIPE] = ACTIONS(3034),
    [anon_sym_DASH] = ACTIONS(3032),
    [anon_sym_DASH_EQ] = ACTIONS(3034),
    [anon_sym_DASH_DASH] = ACTIONS(3034),
    [anon_sym_PLUS] = ACTIONS(3032),
    [anon_sym_PLUS_EQ] = ACTIONS(3034),
    [anon_sym_PLUS_PLUS] = ACTIONS(3034),
    [anon_sym_LT] = ACTIONS(3032),
    [anon_sym_LT_EQ] = ACTIONS(3034),
    [anon_sym_LT_LT] = ACTIONS(3032),
    [anon_sym_LT_LT_EQ] = ACTIONS(3034),
    [anon_sym_GT] = ACTIONS(3032),
    [anon_sym_GT_EQ] = ACTIONS(3034),
    [anon_sym_GT_GT_EQ] = ACTIONS(3034),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3034),
    [anon_sym_GT_GT] = ACTIONS(3032),
    [anon_sym_GT_GT_GT] = ACTIONS(3032),
    [anon_sym_BANG] = ACTIONS(3032),
    [anon_sym_BANG_EQ] = ACTIONS(3034),
    [anon_sym_LPAREN] = ACTIONS(3034),
    [anon_sym_RPAREN] = ACTIONS(3034),
    [anon_sym_LBRACK] = ACTIONS(3034),
    [anon_sym_RBRACK] = ACTIONS(3034),
    [anon_sym_QMARK] = ACTIONS(3034),
    [anon_sym_COMMA] = ACTIONS(3034),
    [anon_sym_SEMI] = ACTIONS(3034),
    [anon_sym_COLON] = ACTIONS(3034),
    [anon_sym_DOLLAR] = ACTIONS(3032),
    [anon_sym_EQ] = ACTIONS(3032),
    [anon_sym_EQ_EQ] = ACTIONS(3034),
    [anon_sym_STAR] = ACTIONS(3032),
    [anon_sym_STAR_EQ] = ACTIONS(3034),
    [anon_sym_PERCENT] = ACTIONS(3032),
    [anon_sym_PERCENT_EQ] = ACTIONS(3034),
    [anon_sym_CARET] = ACTIONS(3032),
    [anon_sym_CARET_EQ] = ACTIONS(3034),
    [anon_sym_CARET_CARET] = ACTIONS(3032),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3034),
    [anon_sym_TILDE] = ACTIONS(3032),
    [anon_sym_TILDE_EQ] = ACTIONS(3034),
    [anon_sym_AT] = ACTIONS(3034),
    [anon_sym_EQ_GT] = ACTIONS(3034),
    [anon_sym_POUND] = ACTIONS(3034),
    [anon_sym_BANGin] = ACTIONS(3034),
    [anon_sym_BANGis] = ACTIONS(3034),
    [sym_bool] = ACTIONS(3032),
    [sym_byte] = ACTIONS(3032),
    [sym_ubyte] = ACTIONS(3032),
    [sym_char] = ACTIONS(3032),
    [sym_short] = ACTIONS(3032),
    [sym_ushort] = ACTIONS(3032),
    [sym_int] = ACTIONS(3032),
    [sym_uint] = ACTIONS(3032),
    [sym_long] = ACTIONS(3032),
    [sym_ulong] = ACTIONS(3032),
    [sym_cent] = ACTIONS(3032),
    [sym_ucent] = ACTIONS(3032),
    [sym_wchar] = ACTIONS(3032),
    [sym_dchar] = ACTIONS(3032),
    [sym_float] = ACTIONS(3032),
    [sym_double] = ACTIONS(3032),
    [sym_real] = ACTIONS(3032),
    [sym_ifloat] = ACTIONS(3032),
    [sym_idouble] = ACTIONS(3032),
    [sym_ireal] = ACTIONS(3032),
    [sym_cfloat] = ACTIONS(3032),
    [sym_cdouble] = ACTIONS(3032),
    [sym_creal] = ACTIONS(3032),
    [sym_size_t] = ACTIONS(3032),
    [sym_ptrdiff_t] = ACTIONS(3032),
    [sym_string] = ACTIONS(3032),
    [sym_cstring] = ACTIONS(3032),
    [sym_dstring] = ACTIONS(3032),
    [sym_wstring] = ACTIONS(3032),
    [sym_noreturn] = ACTIONS(3032),
    [sym_true] = ACTIONS(3032),
    [sym_false] = ACTIONS(3032),
    [sym_null] = ACTIONS(3032),
    [sym_super] = ACTIONS(3032),
    [sym_this] = ACTIONS(3032),
    [sym_abstract] = ACTIONS(3032),
    [sym_alias] = ACTIONS(3032),
    [sym_align] = ACTIONS(3032),
    [sym_asm] = ACTIONS(3032),
    [sym_assert] = ACTIONS(3032),
    [sym_auto] = ACTIONS(3032),
    [sym_break] = ACTIONS(3032),
    [sym_case] = ACTIONS(3032),
    [sym_cast] = ACTIONS(3032),
    [sym_catch] = ACTIONS(3032),
    [sym_class] = ACTIONS(3032),
    [sym_const] = ACTIONS(3032),
    [sym_continue] = ACTIONS(3032),
    [sym_debug] = ACTIONS(3032),
    [sym_default] = ACTIONS(3032),
    [sym_delegate] = ACTIONS(3032),
    [sym_delete] = ACTIONS(3032),
    [sym_deprecated] = ACTIONS(3032),
    [sym_do] = ACTIONS(3032),
    [sym_else] = ACTIONS(3032),
    [sym_enum] = ACTIONS(3032),
    [sym_export] = ACTIONS(3032),
    [sym_extern] = ACTIONS(3032),
    [sym_final] = ACTIONS(3032),
    [sym_finally] = ACTIONS(3032),
    [sym_for] = ACTIONS(3032),
    [sym_foreach] = ACTIONS(3032),
    [sym_foreach_reverse] = ACTIONS(3032),
    [sym_function] = ACTIONS(3032),
    [sym_goto] = ACTIONS(3032),
    [sym_if] = ACTIONS(3032),
    [sym_immutable] = ACTIONS(3032),
    [sym_import] = ACTIONS(3032),
    [sym_in] = ACTIONS(3032),
    [sym_inout] = ACTIONS(3032),
    [sym_interface] = ACTIONS(3032),
    [sym_invariant] = ACTIONS(3032),
    [sym_is] = ACTIONS(3032),
    [sym_lazy] = ACTIONS(3032),
    [sym_mixin] = ACTIONS(3032),
    [sym_module] = ACTIONS(3032),
    [sym_new] = ACTIONS(3032),
    [sym_nothrow] = ACTIONS(3032),
    [sym_out] = ACTIONS(3032),
    [sym_override] = ACTIONS(3032),
    [sym_package] = ACTIONS(3032),
    [sym_pragma] = ACTIONS(3032),
    [sym_private] = ACTIONS(3032),
    [sym_protected] = ACTIONS(3032),
    [sym_public] = ACTIONS(3032),
    [sym_pure] = ACTIONS(3032),
    [sym_ref] = ACTIONS(3032),
    [sym_return] = ACTIONS(3032),
    [sym_scope] = ACTIONS(3032),
    [sym_shared] = ACTIONS(3032),
    [sym_static] = ACTIONS(3032),
    [sym_struct] = ACTIONS(3032),
    [sym_switch] = ACTIONS(3032),
    [sym_synchronized] = ACTIONS(3032),
    [sym_template] = ACTIONS(3032),
    [sym_throw] = ACTIONS(3032),
    [sym_try] = ACTIONS(3032),
    [sym_typeid] = ACTIONS(3032),
    [sym_typeof] = ACTIONS(3032),
    [sym_union] = ACTIONS(3032),
    [sym_unittest] = ACTIONS(3032),
    [sym_version] = ACTIONS(3032),
    [sym_while] = ACTIONS(3032),
    [sym_with] = ACTIONS(3032),
    [sym_parameters_] = ACTIONS(3032),
    [sym_gshared] = ACTIONS(3032),
    [sym_traits] = ACTIONS(3032),
    [sym_vector] = ACTIONS(3032),
    [sym_void] = ACTIONS(3032),
    [anon_sym_BQUOTE] = ACTIONS(3034),
    [anon_sym_r_DQUOTE] = ACTIONS(3034),
    [anon_sym_x_DQUOTE] = ACTIONS(3034),
    [anon_sym_DQUOTE] = ACTIONS(3034),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3034),
    [anon_sym_i_BQUOTE] = ACTIONS(3034),
    [anon_sym_i_DQUOTE] = ACTIONS(3034),
    [anon_sym_iq_LBRACE] = ACTIONS(3034),
    [aux_sym_char_literal_token1] = ACTIONS(3034),
    [anon_sym_SQUOTE] = ACTIONS(3032),
    [anon_sym___DATE__] = ACTIONS(3032),
    [anon_sym___FILE__] = ACTIONS(3032),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3032),
    [anon_sym___FUNCTION__] = ACTIONS(3032),
    [anon_sym___LINE__] = ACTIONS(3032),
    [anon_sym___MODULE__] = ACTIONS(3032),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3032),
    [anon_sym___TIME__] = ACTIONS(3032),
    [anon_sym___TIMESTAMP__] = ACTIONS(3032),
    [anon_sym___VENDOR__] = ACTIONS(3032),
    [anon_sym___VERSION__] = ACTIONS(3032),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3034),
    [sym_float_literal] = ACTIONS(3034),
    [sym__string] = ACTIONS(3034),
  },
  [634] = {
    [sym_identifier] = ACTIONS(3036),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3038),
    [anon_sym_RBRACE] = ACTIONS(3038),
    [anon_sym_LBRACE] = ACTIONS(3038),
    [anon_sym_SLASH] = ACTIONS(3036),
    [anon_sym_SLASH_EQ] = ACTIONS(3038),
    [anon_sym_DOT] = ACTIONS(3036),
    [anon_sym_DOT_DOT] = ACTIONS(3036),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3038),
    [anon_sym_AMP] = ACTIONS(3036),
    [anon_sym_AMP_EQ] = ACTIONS(3038),
    [anon_sym_AMP_AMP] = ACTIONS(3038),
    [anon_sym_PIPE] = ACTIONS(3036),
    [anon_sym_PIPE_EQ] = ACTIONS(3038),
    [anon_sym_PIPE_PIPE] = ACTIONS(3038),
    [anon_sym_DASH] = ACTIONS(3036),
    [anon_sym_DASH_EQ] = ACTIONS(3038),
    [anon_sym_DASH_DASH] = ACTIONS(3038),
    [anon_sym_PLUS] = ACTIONS(3036),
    [anon_sym_PLUS_EQ] = ACTIONS(3038),
    [anon_sym_PLUS_PLUS] = ACTIONS(3038),
    [anon_sym_LT] = ACTIONS(3036),
    [anon_sym_LT_EQ] = ACTIONS(3038),
    [anon_sym_LT_LT] = ACTIONS(3036),
    [anon_sym_LT_LT_EQ] = ACTIONS(3038),
    [anon_sym_GT] = ACTIONS(3036),
    [anon_sym_GT_EQ] = ACTIONS(3038),
    [anon_sym_GT_GT_EQ] = ACTIONS(3038),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3038),
    [anon_sym_GT_GT] = ACTIONS(3036),
    [anon_sym_GT_GT_GT] = ACTIONS(3036),
    [anon_sym_BANG] = ACTIONS(3036),
    [anon_sym_BANG_EQ] = ACTIONS(3038),
    [anon_sym_LPAREN] = ACTIONS(3038),
    [anon_sym_RPAREN] = ACTIONS(3038),
    [anon_sym_LBRACK] = ACTIONS(3038),
    [anon_sym_RBRACK] = ACTIONS(3038),
    [anon_sym_QMARK] = ACTIONS(3038),
    [anon_sym_COMMA] = ACTIONS(3038),
    [anon_sym_SEMI] = ACTIONS(3038),
    [anon_sym_COLON] = ACTIONS(3038),
    [anon_sym_DOLLAR] = ACTIONS(3036),
    [anon_sym_EQ] = ACTIONS(3036),
    [anon_sym_EQ_EQ] = ACTIONS(3038),
    [anon_sym_STAR] = ACTIONS(3036),
    [anon_sym_STAR_EQ] = ACTIONS(3038),
    [anon_sym_PERCENT] = ACTIONS(3036),
    [anon_sym_PERCENT_EQ] = ACTIONS(3038),
    [anon_sym_CARET] = ACTIONS(3036),
    [anon_sym_CARET_EQ] = ACTIONS(3038),
    [anon_sym_CARET_CARET] = ACTIONS(3036),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3038),
    [anon_sym_TILDE] = ACTIONS(3036),
    [anon_sym_TILDE_EQ] = ACTIONS(3038),
    [anon_sym_AT] = ACTIONS(3038),
    [anon_sym_EQ_GT] = ACTIONS(3038),
    [anon_sym_POUND] = ACTIONS(3038),
    [anon_sym_BANGin] = ACTIONS(3038),
    [anon_sym_BANGis] = ACTIONS(3038),
    [sym_bool] = ACTIONS(3036),
    [sym_byte] = ACTIONS(3036),
    [sym_ubyte] = ACTIONS(3036),
    [sym_char] = ACTIONS(3036),
    [sym_short] = ACTIONS(3036),
    [sym_ushort] = ACTIONS(3036),
    [sym_int] = ACTIONS(3036),
    [sym_uint] = ACTIONS(3036),
    [sym_long] = ACTIONS(3036),
    [sym_ulong] = ACTIONS(3036),
    [sym_cent] = ACTIONS(3036),
    [sym_ucent] = ACTIONS(3036),
    [sym_wchar] = ACTIONS(3036),
    [sym_dchar] = ACTIONS(3036),
    [sym_float] = ACTIONS(3036),
    [sym_double] = ACTIONS(3036),
    [sym_real] = ACTIONS(3036),
    [sym_ifloat] = ACTIONS(3036),
    [sym_idouble] = ACTIONS(3036),
    [sym_ireal] = ACTIONS(3036),
    [sym_cfloat] = ACTIONS(3036),
    [sym_cdouble] = ACTIONS(3036),
    [sym_creal] = ACTIONS(3036),
    [sym_size_t] = ACTIONS(3036),
    [sym_ptrdiff_t] = ACTIONS(3036),
    [sym_string] = ACTIONS(3036),
    [sym_cstring] = ACTIONS(3036),
    [sym_dstring] = ACTIONS(3036),
    [sym_wstring] = ACTIONS(3036),
    [sym_noreturn] = ACTIONS(3036),
    [sym_true] = ACTIONS(3036),
    [sym_false] = ACTIONS(3036),
    [sym_null] = ACTIONS(3036),
    [sym_super] = ACTIONS(3036),
    [sym_this] = ACTIONS(3036),
    [sym_abstract] = ACTIONS(3036),
    [sym_alias] = ACTIONS(3036),
    [sym_align] = ACTIONS(3036),
    [sym_asm] = ACTIONS(3036),
    [sym_assert] = ACTIONS(3036),
    [sym_auto] = ACTIONS(3036),
    [sym_break] = ACTIONS(3036),
    [sym_case] = ACTIONS(3036),
    [sym_cast] = ACTIONS(3036),
    [sym_catch] = ACTIONS(3036),
    [sym_class] = ACTIONS(3036),
    [sym_const] = ACTIONS(3036),
    [sym_continue] = ACTIONS(3036),
    [sym_debug] = ACTIONS(3036),
    [sym_default] = ACTIONS(3036),
    [sym_delegate] = ACTIONS(3036),
    [sym_delete] = ACTIONS(3036),
    [sym_deprecated] = ACTIONS(3036),
    [sym_do] = ACTIONS(3036),
    [sym_else] = ACTIONS(3036),
    [sym_enum] = ACTIONS(3036),
    [sym_export] = ACTIONS(3036),
    [sym_extern] = ACTIONS(3036),
    [sym_final] = ACTIONS(3036),
    [sym_finally] = ACTIONS(3036),
    [sym_for] = ACTIONS(3036),
    [sym_foreach] = ACTIONS(3036),
    [sym_foreach_reverse] = ACTIONS(3036),
    [sym_function] = ACTIONS(3036),
    [sym_goto] = ACTIONS(3036),
    [sym_if] = ACTIONS(3036),
    [sym_immutable] = ACTIONS(3036),
    [sym_import] = ACTIONS(3036),
    [sym_in] = ACTIONS(3036),
    [sym_inout] = ACTIONS(3036),
    [sym_interface] = ACTIONS(3036),
    [sym_invariant] = ACTIONS(3036),
    [sym_is] = ACTIONS(3036),
    [sym_lazy] = ACTIONS(3036),
    [sym_mixin] = ACTIONS(3036),
    [sym_module] = ACTIONS(3036),
    [sym_new] = ACTIONS(3036),
    [sym_nothrow] = ACTIONS(3036),
    [sym_out] = ACTIONS(3036),
    [sym_override] = ACTIONS(3036),
    [sym_package] = ACTIONS(3036),
    [sym_pragma] = ACTIONS(3036),
    [sym_private] = ACTIONS(3036),
    [sym_protected] = ACTIONS(3036),
    [sym_public] = ACTIONS(3036),
    [sym_pure] = ACTIONS(3036),
    [sym_ref] = ACTIONS(3036),
    [sym_return] = ACTIONS(3036),
    [sym_scope] = ACTIONS(3036),
    [sym_shared] = ACTIONS(3036),
    [sym_static] = ACTIONS(3036),
    [sym_struct] = ACTIONS(3036),
    [sym_switch] = ACTIONS(3036),
    [sym_synchronized] = ACTIONS(3036),
    [sym_template] = ACTIONS(3036),
    [sym_throw] = ACTIONS(3036),
    [sym_try] = ACTIONS(3036),
    [sym_typeid] = ACTIONS(3036),
    [sym_typeof] = ACTIONS(3036),
    [sym_union] = ACTIONS(3036),
    [sym_unittest] = ACTIONS(3036),
    [sym_version] = ACTIONS(3036),
    [sym_while] = ACTIONS(3036),
    [sym_with] = ACTIONS(3036),
    [sym_parameters_] = ACTIONS(3036),
    [sym_gshared] = ACTIONS(3036),
    [sym_traits] = ACTIONS(3036),
    [sym_vector] = ACTIONS(3036),
    [sym_void] = ACTIONS(3036),
    [anon_sym_BQUOTE] = ACTIONS(3038),
    [anon_sym_r_DQUOTE] = ACTIONS(3038),
    [anon_sym_x_DQUOTE] = ACTIONS(3038),
    [anon_sym_DQUOTE] = ACTIONS(3038),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3038),
    [anon_sym_i_BQUOTE] = ACTIONS(3038),
    [anon_sym_i_DQUOTE] = ACTIONS(3038),
    [anon_sym_iq_LBRACE] = ACTIONS(3038),
    [aux_sym_char_literal_token1] = ACTIONS(3038),
    [anon_sym_SQUOTE] = ACTIONS(3036),
    [anon_sym___DATE__] = ACTIONS(3036),
    [anon_sym___FILE__] = ACTIONS(3036),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3036),
    [anon_sym___FUNCTION__] = ACTIONS(3036),
    [anon_sym___LINE__] = ACTIONS(3036),
    [anon_sym___MODULE__] = ACTIONS(3036),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3036),
    [anon_sym___TIME__] = ACTIONS(3036),
    [anon_sym___TIMESTAMP__] = ACTIONS(3036),
    [anon_sym___VENDOR__] = ACTIONS(3036),
    [anon_sym___VERSION__] = ACTIONS(3036),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3038),
    [sym_float_literal] = ACTIONS(3038),
    [sym__string] = ACTIONS(3038),
  },
  [635] = {
    [sym_identifier] = ACTIONS(3040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3042),
    [anon_sym_RBRACE] = ACTIONS(3042),
    [anon_sym_LBRACE] = ACTIONS(3042),
    [anon_sym_SLASH] = ACTIONS(3040),
    [anon_sym_SLASH_EQ] = ACTIONS(3042),
    [anon_sym_DOT] = ACTIONS(3040),
    [anon_sym_DOT_DOT] = ACTIONS(3040),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3042),
    [anon_sym_AMP] = ACTIONS(3040),
    [anon_sym_AMP_EQ] = ACTIONS(3042),
    [anon_sym_AMP_AMP] = ACTIONS(3042),
    [anon_sym_PIPE] = ACTIONS(3040),
    [anon_sym_PIPE_EQ] = ACTIONS(3042),
    [anon_sym_PIPE_PIPE] = ACTIONS(3042),
    [anon_sym_DASH] = ACTIONS(3040),
    [anon_sym_DASH_EQ] = ACTIONS(3042),
    [anon_sym_DASH_DASH] = ACTIONS(3042),
    [anon_sym_PLUS] = ACTIONS(3040),
    [anon_sym_PLUS_EQ] = ACTIONS(3042),
    [anon_sym_PLUS_PLUS] = ACTIONS(3042),
    [anon_sym_LT] = ACTIONS(3040),
    [anon_sym_LT_EQ] = ACTIONS(3042),
    [anon_sym_LT_LT] = ACTIONS(3040),
    [anon_sym_LT_LT_EQ] = ACTIONS(3042),
    [anon_sym_GT] = ACTIONS(3040),
    [anon_sym_GT_EQ] = ACTIONS(3042),
    [anon_sym_GT_GT_EQ] = ACTIONS(3042),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3042),
    [anon_sym_GT_GT] = ACTIONS(3040),
    [anon_sym_GT_GT_GT] = ACTIONS(3040),
    [anon_sym_BANG] = ACTIONS(3040),
    [anon_sym_BANG_EQ] = ACTIONS(3042),
    [anon_sym_LPAREN] = ACTIONS(3042),
    [anon_sym_RPAREN] = ACTIONS(3042),
    [anon_sym_LBRACK] = ACTIONS(3042),
    [anon_sym_RBRACK] = ACTIONS(3042),
    [anon_sym_QMARK] = ACTIONS(3042),
    [anon_sym_COMMA] = ACTIONS(3042),
    [anon_sym_SEMI] = ACTIONS(3042),
    [anon_sym_COLON] = ACTIONS(3042),
    [anon_sym_DOLLAR] = ACTIONS(3040),
    [anon_sym_EQ] = ACTIONS(3040),
    [anon_sym_EQ_EQ] = ACTIONS(3042),
    [anon_sym_STAR] = ACTIONS(3040),
    [anon_sym_STAR_EQ] = ACTIONS(3042),
    [anon_sym_PERCENT] = ACTIONS(3040),
    [anon_sym_PERCENT_EQ] = ACTIONS(3042),
    [anon_sym_CARET] = ACTIONS(3040),
    [anon_sym_CARET_EQ] = ACTIONS(3042),
    [anon_sym_CARET_CARET] = ACTIONS(3040),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3042),
    [anon_sym_TILDE] = ACTIONS(3040),
    [anon_sym_TILDE_EQ] = ACTIONS(3042),
    [anon_sym_AT] = ACTIONS(3042),
    [anon_sym_EQ_GT] = ACTIONS(3042),
    [anon_sym_POUND] = ACTIONS(3042),
    [anon_sym_BANGin] = ACTIONS(3042),
    [anon_sym_BANGis] = ACTIONS(3042),
    [sym_bool] = ACTIONS(3040),
    [sym_byte] = ACTIONS(3040),
    [sym_ubyte] = ACTIONS(3040),
    [sym_char] = ACTIONS(3040),
    [sym_short] = ACTIONS(3040),
    [sym_ushort] = ACTIONS(3040),
    [sym_int] = ACTIONS(3040),
    [sym_uint] = ACTIONS(3040),
    [sym_long] = ACTIONS(3040),
    [sym_ulong] = ACTIONS(3040),
    [sym_cent] = ACTIONS(3040),
    [sym_ucent] = ACTIONS(3040),
    [sym_wchar] = ACTIONS(3040),
    [sym_dchar] = ACTIONS(3040),
    [sym_float] = ACTIONS(3040),
    [sym_double] = ACTIONS(3040),
    [sym_real] = ACTIONS(3040),
    [sym_ifloat] = ACTIONS(3040),
    [sym_idouble] = ACTIONS(3040),
    [sym_ireal] = ACTIONS(3040),
    [sym_cfloat] = ACTIONS(3040),
    [sym_cdouble] = ACTIONS(3040),
    [sym_creal] = ACTIONS(3040),
    [sym_size_t] = ACTIONS(3040),
    [sym_ptrdiff_t] = ACTIONS(3040),
    [sym_string] = ACTIONS(3040),
    [sym_cstring] = ACTIONS(3040),
    [sym_dstring] = ACTIONS(3040),
    [sym_wstring] = ACTIONS(3040),
    [sym_noreturn] = ACTIONS(3040),
    [sym_true] = ACTIONS(3040),
    [sym_false] = ACTIONS(3040),
    [sym_null] = ACTIONS(3040),
    [sym_super] = ACTIONS(3040),
    [sym_this] = ACTIONS(3040),
    [sym_abstract] = ACTIONS(3040),
    [sym_alias] = ACTIONS(3040),
    [sym_align] = ACTIONS(3040),
    [sym_asm] = ACTIONS(3040),
    [sym_assert] = ACTIONS(3040),
    [sym_auto] = ACTIONS(3040),
    [sym_break] = ACTIONS(3040),
    [sym_case] = ACTIONS(3040),
    [sym_cast] = ACTIONS(3040),
    [sym_catch] = ACTIONS(3040),
    [sym_class] = ACTIONS(3040),
    [sym_const] = ACTIONS(3040),
    [sym_continue] = ACTIONS(3040),
    [sym_debug] = ACTIONS(3040),
    [sym_default] = ACTIONS(3040),
    [sym_delegate] = ACTIONS(3040),
    [sym_delete] = ACTIONS(3040),
    [sym_deprecated] = ACTIONS(3040),
    [sym_do] = ACTIONS(3040),
    [sym_else] = ACTIONS(3040),
    [sym_enum] = ACTIONS(3040),
    [sym_export] = ACTIONS(3040),
    [sym_extern] = ACTIONS(3040),
    [sym_final] = ACTIONS(3040),
    [sym_finally] = ACTIONS(3040),
    [sym_for] = ACTIONS(3040),
    [sym_foreach] = ACTIONS(3040),
    [sym_foreach_reverse] = ACTIONS(3040),
    [sym_function] = ACTIONS(3040),
    [sym_goto] = ACTIONS(3040),
    [sym_if] = ACTIONS(3040),
    [sym_immutable] = ACTIONS(3040),
    [sym_import] = ACTIONS(3040),
    [sym_in] = ACTIONS(3040),
    [sym_inout] = ACTIONS(3040),
    [sym_interface] = ACTIONS(3040),
    [sym_invariant] = ACTIONS(3040),
    [sym_is] = ACTIONS(3040),
    [sym_lazy] = ACTIONS(3040),
    [sym_mixin] = ACTIONS(3040),
    [sym_module] = ACTIONS(3040),
    [sym_new] = ACTIONS(3040),
    [sym_nothrow] = ACTIONS(3040),
    [sym_out] = ACTIONS(3040),
    [sym_override] = ACTIONS(3040),
    [sym_package] = ACTIONS(3040),
    [sym_pragma] = ACTIONS(3040),
    [sym_private] = ACTIONS(3040),
    [sym_protected] = ACTIONS(3040),
    [sym_public] = ACTIONS(3040),
    [sym_pure] = ACTIONS(3040),
    [sym_ref] = ACTIONS(3040),
    [sym_return] = ACTIONS(3040),
    [sym_scope] = ACTIONS(3040),
    [sym_shared] = ACTIONS(3040),
    [sym_static] = ACTIONS(3040),
    [sym_struct] = ACTIONS(3040),
    [sym_switch] = ACTIONS(3040),
    [sym_synchronized] = ACTIONS(3040),
    [sym_template] = ACTIONS(3040),
    [sym_throw] = ACTIONS(3040),
    [sym_try] = ACTIONS(3040),
    [sym_typeid] = ACTIONS(3040),
    [sym_typeof] = ACTIONS(3040),
    [sym_union] = ACTIONS(3040),
    [sym_unittest] = ACTIONS(3040),
    [sym_version] = ACTIONS(3040),
    [sym_while] = ACTIONS(3040),
    [sym_with] = ACTIONS(3040),
    [sym_parameters_] = ACTIONS(3040),
    [sym_gshared] = ACTIONS(3040),
    [sym_traits] = ACTIONS(3040),
    [sym_vector] = ACTIONS(3040),
    [sym_void] = ACTIONS(3040),
    [anon_sym_BQUOTE] = ACTIONS(3042),
    [anon_sym_r_DQUOTE] = ACTIONS(3042),
    [anon_sym_x_DQUOTE] = ACTIONS(3042),
    [anon_sym_DQUOTE] = ACTIONS(3042),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3042),
    [anon_sym_i_BQUOTE] = ACTIONS(3042),
    [anon_sym_i_DQUOTE] = ACTIONS(3042),
    [anon_sym_iq_LBRACE] = ACTIONS(3042),
    [aux_sym_char_literal_token1] = ACTIONS(3042),
    [anon_sym_SQUOTE] = ACTIONS(3040),
    [anon_sym___DATE__] = ACTIONS(3040),
    [anon_sym___FILE__] = ACTIONS(3040),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3040),
    [anon_sym___FUNCTION__] = ACTIONS(3040),
    [anon_sym___LINE__] = ACTIONS(3040),
    [anon_sym___MODULE__] = ACTIONS(3040),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3040),
    [anon_sym___TIME__] = ACTIONS(3040),
    [anon_sym___TIMESTAMP__] = ACTIONS(3040),
    [anon_sym___VENDOR__] = ACTIONS(3040),
    [anon_sym___VERSION__] = ACTIONS(3040),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3042),
    [sym_float_literal] = ACTIONS(3042),
    [sym__string] = ACTIONS(3042),
  },
  [636] = {
    [sym_identifier] = ACTIONS(3044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3046),
    [anon_sym_RBRACE] = ACTIONS(3046),
    [anon_sym_LBRACE] = ACTIONS(3046),
    [anon_sym_SLASH] = ACTIONS(3044),
    [anon_sym_SLASH_EQ] = ACTIONS(3046),
    [anon_sym_DOT] = ACTIONS(3044),
    [anon_sym_DOT_DOT] = ACTIONS(3044),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3046),
    [anon_sym_AMP] = ACTIONS(3044),
    [anon_sym_AMP_EQ] = ACTIONS(3046),
    [anon_sym_AMP_AMP] = ACTIONS(3046),
    [anon_sym_PIPE] = ACTIONS(3044),
    [anon_sym_PIPE_EQ] = ACTIONS(3046),
    [anon_sym_PIPE_PIPE] = ACTIONS(3046),
    [anon_sym_DASH] = ACTIONS(3044),
    [anon_sym_DASH_EQ] = ACTIONS(3046),
    [anon_sym_DASH_DASH] = ACTIONS(3046),
    [anon_sym_PLUS] = ACTIONS(3044),
    [anon_sym_PLUS_EQ] = ACTIONS(3046),
    [anon_sym_PLUS_PLUS] = ACTIONS(3046),
    [anon_sym_LT] = ACTIONS(3044),
    [anon_sym_LT_EQ] = ACTIONS(3046),
    [anon_sym_LT_LT] = ACTIONS(3044),
    [anon_sym_LT_LT_EQ] = ACTIONS(3046),
    [anon_sym_GT] = ACTIONS(3044),
    [anon_sym_GT_EQ] = ACTIONS(3046),
    [anon_sym_GT_GT_EQ] = ACTIONS(3046),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3046),
    [anon_sym_GT_GT] = ACTIONS(3044),
    [anon_sym_GT_GT_GT] = ACTIONS(3044),
    [anon_sym_BANG] = ACTIONS(3044),
    [anon_sym_BANG_EQ] = ACTIONS(3046),
    [anon_sym_LPAREN] = ACTIONS(3046),
    [anon_sym_RPAREN] = ACTIONS(3046),
    [anon_sym_LBRACK] = ACTIONS(3046),
    [anon_sym_RBRACK] = ACTIONS(3046),
    [anon_sym_QMARK] = ACTIONS(3046),
    [anon_sym_COMMA] = ACTIONS(3046),
    [anon_sym_SEMI] = ACTIONS(3046),
    [anon_sym_COLON] = ACTIONS(3046),
    [anon_sym_DOLLAR] = ACTIONS(3044),
    [anon_sym_EQ] = ACTIONS(3044),
    [anon_sym_EQ_EQ] = ACTIONS(3046),
    [anon_sym_STAR] = ACTIONS(3044),
    [anon_sym_STAR_EQ] = ACTIONS(3046),
    [anon_sym_PERCENT] = ACTIONS(3044),
    [anon_sym_PERCENT_EQ] = ACTIONS(3046),
    [anon_sym_CARET] = ACTIONS(3044),
    [anon_sym_CARET_EQ] = ACTIONS(3046),
    [anon_sym_CARET_CARET] = ACTIONS(3044),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3046),
    [anon_sym_TILDE] = ACTIONS(3044),
    [anon_sym_TILDE_EQ] = ACTIONS(3046),
    [anon_sym_AT] = ACTIONS(3046),
    [anon_sym_EQ_GT] = ACTIONS(3046),
    [anon_sym_POUND] = ACTIONS(3046),
    [anon_sym_BANGin] = ACTIONS(3046),
    [anon_sym_BANGis] = ACTIONS(3046),
    [sym_bool] = ACTIONS(3044),
    [sym_byte] = ACTIONS(3044),
    [sym_ubyte] = ACTIONS(3044),
    [sym_char] = ACTIONS(3044),
    [sym_short] = ACTIONS(3044),
    [sym_ushort] = ACTIONS(3044),
    [sym_int] = ACTIONS(3044),
    [sym_uint] = ACTIONS(3044),
    [sym_long] = ACTIONS(3044),
    [sym_ulong] = ACTIONS(3044),
    [sym_cent] = ACTIONS(3044),
    [sym_ucent] = ACTIONS(3044),
    [sym_wchar] = ACTIONS(3044),
    [sym_dchar] = ACTIONS(3044),
    [sym_float] = ACTIONS(3044),
    [sym_double] = ACTIONS(3044),
    [sym_real] = ACTIONS(3044),
    [sym_ifloat] = ACTIONS(3044),
    [sym_idouble] = ACTIONS(3044),
    [sym_ireal] = ACTIONS(3044),
    [sym_cfloat] = ACTIONS(3044),
    [sym_cdouble] = ACTIONS(3044),
    [sym_creal] = ACTIONS(3044),
    [sym_size_t] = ACTIONS(3044),
    [sym_ptrdiff_t] = ACTIONS(3044),
    [sym_string] = ACTIONS(3044),
    [sym_cstring] = ACTIONS(3044),
    [sym_dstring] = ACTIONS(3044),
    [sym_wstring] = ACTIONS(3044),
    [sym_noreturn] = ACTIONS(3044),
    [sym_true] = ACTIONS(3044),
    [sym_false] = ACTIONS(3044),
    [sym_null] = ACTIONS(3044),
    [sym_super] = ACTIONS(3044),
    [sym_this] = ACTIONS(3044),
    [sym_abstract] = ACTIONS(3044),
    [sym_alias] = ACTIONS(3044),
    [sym_align] = ACTIONS(3044),
    [sym_asm] = ACTIONS(3044),
    [sym_assert] = ACTIONS(3044),
    [sym_auto] = ACTIONS(3044),
    [sym_break] = ACTIONS(3044),
    [sym_case] = ACTIONS(3044),
    [sym_cast] = ACTIONS(3044),
    [sym_catch] = ACTIONS(3044),
    [sym_class] = ACTIONS(3044),
    [sym_const] = ACTIONS(3044),
    [sym_continue] = ACTIONS(3044),
    [sym_debug] = ACTIONS(3044),
    [sym_default] = ACTIONS(3044),
    [sym_delegate] = ACTIONS(3044),
    [sym_delete] = ACTIONS(3044),
    [sym_deprecated] = ACTIONS(3044),
    [sym_do] = ACTIONS(3044),
    [sym_else] = ACTIONS(3044),
    [sym_enum] = ACTIONS(3044),
    [sym_export] = ACTIONS(3044),
    [sym_extern] = ACTIONS(3044),
    [sym_final] = ACTIONS(3044),
    [sym_finally] = ACTIONS(3044),
    [sym_for] = ACTIONS(3044),
    [sym_foreach] = ACTIONS(3044),
    [sym_foreach_reverse] = ACTIONS(3044),
    [sym_function] = ACTIONS(3044),
    [sym_goto] = ACTIONS(3044),
    [sym_if] = ACTIONS(3044),
    [sym_immutable] = ACTIONS(3044),
    [sym_import] = ACTIONS(3044),
    [sym_in] = ACTIONS(3044),
    [sym_inout] = ACTIONS(3044),
    [sym_interface] = ACTIONS(3044),
    [sym_invariant] = ACTIONS(3044),
    [sym_is] = ACTIONS(3044),
    [sym_lazy] = ACTIONS(3044),
    [sym_mixin] = ACTIONS(3044),
    [sym_module] = ACTIONS(3044),
    [sym_new] = ACTIONS(3044),
    [sym_nothrow] = ACTIONS(3044),
    [sym_out] = ACTIONS(3044),
    [sym_override] = ACTIONS(3044),
    [sym_package] = ACTIONS(3044),
    [sym_pragma] = ACTIONS(3044),
    [sym_private] = ACTIONS(3044),
    [sym_protected] = ACTIONS(3044),
    [sym_public] = ACTIONS(3044),
    [sym_pure] = ACTIONS(3044),
    [sym_ref] = ACTIONS(3044),
    [sym_return] = ACTIONS(3044),
    [sym_scope] = ACTIONS(3044),
    [sym_shared] = ACTIONS(3044),
    [sym_static] = ACTIONS(3044),
    [sym_struct] = ACTIONS(3044),
    [sym_switch] = ACTIONS(3044),
    [sym_synchronized] = ACTIONS(3044),
    [sym_template] = ACTIONS(3044),
    [sym_throw] = ACTIONS(3044),
    [sym_try] = ACTIONS(3044),
    [sym_typeid] = ACTIONS(3044),
    [sym_typeof] = ACTIONS(3044),
    [sym_union] = ACTIONS(3044),
    [sym_unittest] = ACTIONS(3044),
    [sym_version] = ACTIONS(3044),
    [sym_while] = ACTIONS(3044),
    [sym_with] = ACTIONS(3044),
    [sym_parameters_] = ACTIONS(3044),
    [sym_gshared] = ACTIONS(3044),
    [sym_traits] = ACTIONS(3044),
    [sym_vector] = ACTIONS(3044),
    [sym_void] = ACTIONS(3044),
    [anon_sym_BQUOTE] = ACTIONS(3046),
    [anon_sym_r_DQUOTE] = ACTIONS(3046),
    [anon_sym_x_DQUOTE] = ACTIONS(3046),
    [anon_sym_DQUOTE] = ACTIONS(3046),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3046),
    [anon_sym_i_BQUOTE] = ACTIONS(3046),
    [anon_sym_i_DQUOTE] = ACTIONS(3046),
    [anon_sym_iq_LBRACE] = ACTIONS(3046),
    [aux_sym_char_literal_token1] = ACTIONS(3046),
    [anon_sym_SQUOTE] = ACTIONS(3044),
    [anon_sym___DATE__] = ACTIONS(3044),
    [anon_sym___FILE__] = ACTIONS(3044),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3044),
    [anon_sym___FUNCTION__] = ACTIONS(3044),
    [anon_sym___LINE__] = ACTIONS(3044),
    [anon_sym___MODULE__] = ACTIONS(3044),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3044),
    [anon_sym___TIME__] = ACTIONS(3044),
    [anon_sym___TIMESTAMP__] = ACTIONS(3044),
    [anon_sym___VENDOR__] = ACTIONS(3044),
    [anon_sym___VERSION__] = ACTIONS(3044),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3046),
    [sym_float_literal] = ACTIONS(3046),
    [sym__string] = ACTIONS(3046),
  },
  [637] = {
    [sym_identifier] = ACTIONS(3048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3050),
    [anon_sym_RBRACE] = ACTIONS(3050),
    [anon_sym_LBRACE] = ACTIONS(3050),
    [anon_sym_SLASH] = ACTIONS(3048),
    [anon_sym_SLASH_EQ] = ACTIONS(3050),
    [anon_sym_DOT] = ACTIONS(3048),
    [anon_sym_DOT_DOT] = ACTIONS(3048),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3050),
    [anon_sym_AMP] = ACTIONS(3048),
    [anon_sym_AMP_EQ] = ACTIONS(3050),
    [anon_sym_AMP_AMP] = ACTIONS(3050),
    [anon_sym_PIPE] = ACTIONS(3048),
    [anon_sym_PIPE_EQ] = ACTIONS(3050),
    [anon_sym_PIPE_PIPE] = ACTIONS(3050),
    [anon_sym_DASH] = ACTIONS(3048),
    [anon_sym_DASH_EQ] = ACTIONS(3050),
    [anon_sym_DASH_DASH] = ACTIONS(3050),
    [anon_sym_PLUS] = ACTIONS(3048),
    [anon_sym_PLUS_EQ] = ACTIONS(3050),
    [anon_sym_PLUS_PLUS] = ACTIONS(3050),
    [anon_sym_LT] = ACTIONS(3048),
    [anon_sym_LT_EQ] = ACTIONS(3050),
    [anon_sym_LT_LT] = ACTIONS(3048),
    [anon_sym_LT_LT_EQ] = ACTIONS(3050),
    [anon_sym_GT] = ACTIONS(3048),
    [anon_sym_GT_EQ] = ACTIONS(3050),
    [anon_sym_GT_GT_EQ] = ACTIONS(3050),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3050),
    [anon_sym_GT_GT] = ACTIONS(3048),
    [anon_sym_GT_GT_GT] = ACTIONS(3048),
    [anon_sym_BANG] = ACTIONS(3048),
    [anon_sym_BANG_EQ] = ACTIONS(3050),
    [anon_sym_LPAREN] = ACTIONS(3050),
    [anon_sym_RPAREN] = ACTIONS(3050),
    [anon_sym_LBRACK] = ACTIONS(3050),
    [anon_sym_RBRACK] = ACTIONS(3050),
    [anon_sym_QMARK] = ACTIONS(3050),
    [anon_sym_COMMA] = ACTIONS(3050),
    [anon_sym_SEMI] = ACTIONS(3050),
    [anon_sym_COLON] = ACTIONS(3050),
    [anon_sym_DOLLAR] = ACTIONS(3048),
    [anon_sym_EQ] = ACTIONS(3048),
    [anon_sym_EQ_EQ] = ACTIONS(3050),
    [anon_sym_STAR] = ACTIONS(3048),
    [anon_sym_STAR_EQ] = ACTIONS(3050),
    [anon_sym_PERCENT] = ACTIONS(3048),
    [anon_sym_PERCENT_EQ] = ACTIONS(3050),
    [anon_sym_CARET] = ACTIONS(3048),
    [anon_sym_CARET_EQ] = ACTIONS(3050),
    [anon_sym_CARET_CARET] = ACTIONS(3048),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3050),
    [anon_sym_TILDE] = ACTIONS(3048),
    [anon_sym_TILDE_EQ] = ACTIONS(3050),
    [anon_sym_AT] = ACTIONS(3050),
    [anon_sym_EQ_GT] = ACTIONS(3050),
    [anon_sym_POUND] = ACTIONS(3050),
    [anon_sym_BANGin] = ACTIONS(3050),
    [anon_sym_BANGis] = ACTIONS(3050),
    [sym_bool] = ACTIONS(3048),
    [sym_byte] = ACTIONS(3048),
    [sym_ubyte] = ACTIONS(3048),
    [sym_char] = ACTIONS(3048),
    [sym_short] = ACTIONS(3048),
    [sym_ushort] = ACTIONS(3048),
    [sym_int] = ACTIONS(3048),
    [sym_uint] = ACTIONS(3048),
    [sym_long] = ACTIONS(3048),
    [sym_ulong] = ACTIONS(3048),
    [sym_cent] = ACTIONS(3048),
    [sym_ucent] = ACTIONS(3048),
    [sym_wchar] = ACTIONS(3048),
    [sym_dchar] = ACTIONS(3048),
    [sym_float] = ACTIONS(3048),
    [sym_double] = ACTIONS(3048),
    [sym_real] = ACTIONS(3048),
    [sym_ifloat] = ACTIONS(3048),
    [sym_idouble] = ACTIONS(3048),
    [sym_ireal] = ACTIONS(3048),
    [sym_cfloat] = ACTIONS(3048),
    [sym_cdouble] = ACTIONS(3048),
    [sym_creal] = ACTIONS(3048),
    [sym_size_t] = ACTIONS(3048),
    [sym_ptrdiff_t] = ACTIONS(3048),
    [sym_string] = ACTIONS(3048),
    [sym_cstring] = ACTIONS(3048),
    [sym_dstring] = ACTIONS(3048),
    [sym_wstring] = ACTIONS(3048),
    [sym_noreturn] = ACTIONS(3048),
    [sym_true] = ACTIONS(3048),
    [sym_false] = ACTIONS(3048),
    [sym_null] = ACTIONS(3048),
    [sym_super] = ACTIONS(3048),
    [sym_this] = ACTIONS(3048),
    [sym_abstract] = ACTIONS(3048),
    [sym_alias] = ACTIONS(3048),
    [sym_align] = ACTIONS(3048),
    [sym_asm] = ACTIONS(3048),
    [sym_assert] = ACTIONS(3048),
    [sym_auto] = ACTIONS(3048),
    [sym_break] = ACTIONS(3048),
    [sym_case] = ACTIONS(3048),
    [sym_cast] = ACTIONS(3048),
    [sym_catch] = ACTIONS(3048),
    [sym_class] = ACTIONS(3048),
    [sym_const] = ACTIONS(3048),
    [sym_continue] = ACTIONS(3048),
    [sym_debug] = ACTIONS(3048),
    [sym_default] = ACTIONS(3048),
    [sym_delegate] = ACTIONS(3048),
    [sym_delete] = ACTIONS(3048),
    [sym_deprecated] = ACTIONS(3048),
    [sym_do] = ACTIONS(3048),
    [sym_else] = ACTIONS(3048),
    [sym_enum] = ACTIONS(3048),
    [sym_export] = ACTIONS(3048),
    [sym_extern] = ACTIONS(3048),
    [sym_final] = ACTIONS(3048),
    [sym_finally] = ACTIONS(3048),
    [sym_for] = ACTIONS(3048),
    [sym_foreach] = ACTIONS(3048),
    [sym_foreach_reverse] = ACTIONS(3048),
    [sym_function] = ACTIONS(3048),
    [sym_goto] = ACTIONS(3048),
    [sym_if] = ACTIONS(3048),
    [sym_immutable] = ACTIONS(3048),
    [sym_import] = ACTIONS(3048),
    [sym_in] = ACTIONS(3048),
    [sym_inout] = ACTIONS(3048),
    [sym_interface] = ACTIONS(3048),
    [sym_invariant] = ACTIONS(3048),
    [sym_is] = ACTIONS(3048),
    [sym_lazy] = ACTIONS(3048),
    [sym_mixin] = ACTIONS(3048),
    [sym_module] = ACTIONS(3048),
    [sym_new] = ACTIONS(3048),
    [sym_nothrow] = ACTIONS(3048),
    [sym_out] = ACTIONS(3048),
    [sym_override] = ACTIONS(3048),
    [sym_package] = ACTIONS(3048),
    [sym_pragma] = ACTIONS(3048),
    [sym_private] = ACTIONS(3048),
    [sym_protected] = ACTIONS(3048),
    [sym_public] = ACTIONS(3048),
    [sym_pure] = ACTIONS(3048),
    [sym_ref] = ACTIONS(3048),
    [sym_return] = ACTIONS(3048),
    [sym_scope] = ACTIONS(3048),
    [sym_shared] = ACTIONS(3048),
    [sym_static] = ACTIONS(3048),
    [sym_struct] = ACTIONS(3048),
    [sym_switch] = ACTIONS(3048),
    [sym_synchronized] = ACTIONS(3048),
    [sym_template] = ACTIONS(3048),
    [sym_throw] = ACTIONS(3048),
    [sym_try] = ACTIONS(3048),
    [sym_typeid] = ACTIONS(3048),
    [sym_typeof] = ACTIONS(3048),
    [sym_union] = ACTIONS(3048),
    [sym_unittest] = ACTIONS(3048),
    [sym_version] = ACTIONS(3048),
    [sym_while] = ACTIONS(3048),
    [sym_with] = ACTIONS(3048),
    [sym_parameters_] = ACTIONS(3048),
    [sym_gshared] = ACTIONS(3048),
    [sym_traits] = ACTIONS(3048),
    [sym_vector] = ACTIONS(3048),
    [sym_void] = ACTIONS(3048),
    [anon_sym_BQUOTE] = ACTIONS(3050),
    [anon_sym_r_DQUOTE] = ACTIONS(3050),
    [anon_sym_x_DQUOTE] = ACTIONS(3050),
    [anon_sym_DQUOTE] = ACTIONS(3050),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3050),
    [anon_sym_i_BQUOTE] = ACTIONS(3050),
    [anon_sym_i_DQUOTE] = ACTIONS(3050),
    [anon_sym_iq_LBRACE] = ACTIONS(3050),
    [aux_sym_char_literal_token1] = ACTIONS(3050),
    [anon_sym_SQUOTE] = ACTIONS(3048),
    [anon_sym___DATE__] = ACTIONS(3048),
    [anon_sym___FILE__] = ACTIONS(3048),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3048),
    [anon_sym___FUNCTION__] = ACTIONS(3048),
    [anon_sym___LINE__] = ACTIONS(3048),
    [anon_sym___MODULE__] = ACTIONS(3048),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3048),
    [anon_sym___TIME__] = ACTIONS(3048),
    [anon_sym___TIMESTAMP__] = ACTIONS(3048),
    [anon_sym___VENDOR__] = ACTIONS(3048),
    [anon_sym___VERSION__] = ACTIONS(3048),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3050),
    [sym_float_literal] = ACTIONS(3050),
    [sym__string] = ACTIONS(3050),
  },
  [638] = {
    [sym_identifier] = ACTIONS(3052),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3054),
    [anon_sym_RBRACE] = ACTIONS(3054),
    [anon_sym_LBRACE] = ACTIONS(3054),
    [anon_sym_SLASH] = ACTIONS(3052),
    [anon_sym_SLASH_EQ] = ACTIONS(3054),
    [anon_sym_DOT] = ACTIONS(3052),
    [anon_sym_DOT_DOT] = ACTIONS(3052),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3054),
    [anon_sym_AMP] = ACTIONS(3052),
    [anon_sym_AMP_EQ] = ACTIONS(3054),
    [anon_sym_AMP_AMP] = ACTIONS(3054),
    [anon_sym_PIPE] = ACTIONS(3052),
    [anon_sym_PIPE_EQ] = ACTIONS(3054),
    [anon_sym_PIPE_PIPE] = ACTIONS(3054),
    [anon_sym_DASH] = ACTIONS(3052),
    [anon_sym_DASH_EQ] = ACTIONS(3054),
    [anon_sym_DASH_DASH] = ACTIONS(3054),
    [anon_sym_PLUS] = ACTIONS(3052),
    [anon_sym_PLUS_EQ] = ACTIONS(3054),
    [anon_sym_PLUS_PLUS] = ACTIONS(3054),
    [anon_sym_LT] = ACTIONS(3052),
    [anon_sym_LT_EQ] = ACTIONS(3054),
    [anon_sym_LT_LT] = ACTIONS(3052),
    [anon_sym_LT_LT_EQ] = ACTIONS(3054),
    [anon_sym_GT] = ACTIONS(3052),
    [anon_sym_GT_EQ] = ACTIONS(3054),
    [anon_sym_GT_GT_EQ] = ACTIONS(3054),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3054),
    [anon_sym_GT_GT] = ACTIONS(3052),
    [anon_sym_GT_GT_GT] = ACTIONS(3052),
    [anon_sym_BANG] = ACTIONS(3052),
    [anon_sym_BANG_EQ] = ACTIONS(3054),
    [anon_sym_LPAREN] = ACTIONS(3054),
    [anon_sym_RPAREN] = ACTIONS(3054),
    [anon_sym_LBRACK] = ACTIONS(3054),
    [anon_sym_RBRACK] = ACTIONS(3054),
    [anon_sym_QMARK] = ACTIONS(3054),
    [anon_sym_COMMA] = ACTIONS(3054),
    [anon_sym_SEMI] = ACTIONS(3054),
    [anon_sym_COLON] = ACTIONS(3054),
    [anon_sym_DOLLAR] = ACTIONS(3052),
    [anon_sym_EQ] = ACTIONS(3052),
    [anon_sym_EQ_EQ] = ACTIONS(3054),
    [anon_sym_STAR] = ACTIONS(3052),
    [anon_sym_STAR_EQ] = ACTIONS(3054),
    [anon_sym_PERCENT] = ACTIONS(3052),
    [anon_sym_PERCENT_EQ] = ACTIONS(3054),
    [anon_sym_CARET] = ACTIONS(3052),
    [anon_sym_CARET_EQ] = ACTIONS(3054),
    [anon_sym_CARET_CARET] = ACTIONS(3052),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3054),
    [anon_sym_TILDE] = ACTIONS(3052),
    [anon_sym_TILDE_EQ] = ACTIONS(3054),
    [anon_sym_AT] = ACTIONS(3054),
    [anon_sym_EQ_GT] = ACTIONS(3054),
    [anon_sym_POUND] = ACTIONS(3054),
    [anon_sym_BANGin] = ACTIONS(3054),
    [anon_sym_BANGis] = ACTIONS(3054),
    [sym_bool] = ACTIONS(3052),
    [sym_byte] = ACTIONS(3052),
    [sym_ubyte] = ACTIONS(3052),
    [sym_char] = ACTIONS(3052),
    [sym_short] = ACTIONS(3052),
    [sym_ushort] = ACTIONS(3052),
    [sym_int] = ACTIONS(3052),
    [sym_uint] = ACTIONS(3052),
    [sym_long] = ACTIONS(3052),
    [sym_ulong] = ACTIONS(3052),
    [sym_cent] = ACTIONS(3052),
    [sym_ucent] = ACTIONS(3052),
    [sym_wchar] = ACTIONS(3052),
    [sym_dchar] = ACTIONS(3052),
    [sym_float] = ACTIONS(3052),
    [sym_double] = ACTIONS(3052),
    [sym_real] = ACTIONS(3052),
    [sym_ifloat] = ACTIONS(3052),
    [sym_idouble] = ACTIONS(3052),
    [sym_ireal] = ACTIONS(3052),
    [sym_cfloat] = ACTIONS(3052),
    [sym_cdouble] = ACTIONS(3052),
    [sym_creal] = ACTIONS(3052),
    [sym_size_t] = ACTIONS(3052),
    [sym_ptrdiff_t] = ACTIONS(3052),
    [sym_string] = ACTIONS(3052),
    [sym_cstring] = ACTIONS(3052),
    [sym_dstring] = ACTIONS(3052),
    [sym_wstring] = ACTIONS(3052),
    [sym_noreturn] = ACTIONS(3052),
    [sym_true] = ACTIONS(3052),
    [sym_false] = ACTIONS(3052),
    [sym_null] = ACTIONS(3052),
    [sym_super] = ACTIONS(3052),
    [sym_this] = ACTIONS(3052),
    [sym_abstract] = ACTIONS(3052),
    [sym_alias] = ACTIONS(3052),
    [sym_align] = ACTIONS(3052),
    [sym_asm] = ACTIONS(3052),
    [sym_assert] = ACTIONS(3052),
    [sym_auto] = ACTIONS(3052),
    [sym_break] = ACTIONS(3052),
    [sym_case] = ACTIONS(3052),
    [sym_cast] = ACTIONS(3052),
    [sym_catch] = ACTIONS(3052),
    [sym_class] = ACTIONS(3052),
    [sym_const] = ACTIONS(3052),
    [sym_continue] = ACTIONS(3052),
    [sym_debug] = ACTIONS(3052),
    [sym_default] = ACTIONS(3052),
    [sym_delegate] = ACTIONS(3052),
    [sym_delete] = ACTIONS(3052),
    [sym_deprecated] = ACTIONS(3052),
    [sym_do] = ACTIONS(3052),
    [sym_else] = ACTIONS(3052),
    [sym_enum] = ACTIONS(3052),
    [sym_export] = ACTIONS(3052),
    [sym_extern] = ACTIONS(3052),
    [sym_final] = ACTIONS(3052),
    [sym_finally] = ACTIONS(3052),
    [sym_for] = ACTIONS(3052),
    [sym_foreach] = ACTIONS(3052),
    [sym_foreach_reverse] = ACTIONS(3052),
    [sym_function] = ACTIONS(3052),
    [sym_goto] = ACTIONS(3052),
    [sym_if] = ACTIONS(3052),
    [sym_immutable] = ACTIONS(3052),
    [sym_import] = ACTIONS(3052),
    [sym_in] = ACTIONS(3052),
    [sym_inout] = ACTIONS(3052),
    [sym_interface] = ACTIONS(3052),
    [sym_invariant] = ACTIONS(3052),
    [sym_is] = ACTIONS(3052),
    [sym_lazy] = ACTIONS(3052),
    [sym_mixin] = ACTIONS(3052),
    [sym_module] = ACTIONS(3052),
    [sym_new] = ACTIONS(3052),
    [sym_nothrow] = ACTIONS(3052),
    [sym_out] = ACTIONS(3052),
    [sym_override] = ACTIONS(3052),
    [sym_package] = ACTIONS(3052),
    [sym_pragma] = ACTIONS(3052),
    [sym_private] = ACTIONS(3052),
    [sym_protected] = ACTIONS(3052),
    [sym_public] = ACTIONS(3052),
    [sym_pure] = ACTIONS(3052),
    [sym_ref] = ACTIONS(3052),
    [sym_return] = ACTIONS(3052),
    [sym_scope] = ACTIONS(3052),
    [sym_shared] = ACTIONS(3052),
    [sym_static] = ACTIONS(3052),
    [sym_struct] = ACTIONS(3052),
    [sym_switch] = ACTIONS(3052),
    [sym_synchronized] = ACTIONS(3052),
    [sym_template] = ACTIONS(3052),
    [sym_throw] = ACTIONS(3052),
    [sym_try] = ACTIONS(3052),
    [sym_typeid] = ACTIONS(3052),
    [sym_typeof] = ACTIONS(3052),
    [sym_union] = ACTIONS(3052),
    [sym_unittest] = ACTIONS(3052),
    [sym_version] = ACTIONS(3052),
    [sym_while] = ACTIONS(3052),
    [sym_with] = ACTIONS(3052),
    [sym_parameters_] = ACTIONS(3052),
    [sym_gshared] = ACTIONS(3052),
    [sym_traits] = ACTIONS(3052),
    [sym_vector] = ACTIONS(3052),
    [sym_void] = ACTIONS(3052),
    [anon_sym_BQUOTE] = ACTIONS(3054),
    [anon_sym_r_DQUOTE] = ACTIONS(3054),
    [anon_sym_x_DQUOTE] = ACTIONS(3054),
    [anon_sym_DQUOTE] = ACTIONS(3054),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3054),
    [anon_sym_i_BQUOTE] = ACTIONS(3054),
    [anon_sym_i_DQUOTE] = ACTIONS(3054),
    [anon_sym_iq_LBRACE] = ACTIONS(3054),
    [aux_sym_char_literal_token1] = ACTIONS(3054),
    [anon_sym_SQUOTE] = ACTIONS(3052),
    [anon_sym___DATE__] = ACTIONS(3052),
    [anon_sym___FILE__] = ACTIONS(3052),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3052),
    [anon_sym___FUNCTION__] = ACTIONS(3052),
    [anon_sym___LINE__] = ACTIONS(3052),
    [anon_sym___MODULE__] = ACTIONS(3052),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3052),
    [anon_sym___TIME__] = ACTIONS(3052),
    [anon_sym___TIMESTAMP__] = ACTIONS(3052),
    [anon_sym___VENDOR__] = ACTIONS(3052),
    [anon_sym___VERSION__] = ACTIONS(3052),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3054),
    [sym_float_literal] = ACTIONS(3054),
    [sym__string] = ACTIONS(3054),
  },
  [639] = {
    [sym_identifier] = ACTIONS(3056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3058),
    [anon_sym_RBRACE] = ACTIONS(3058),
    [anon_sym_LBRACE] = ACTIONS(3058),
    [anon_sym_SLASH] = ACTIONS(3056),
    [anon_sym_SLASH_EQ] = ACTIONS(3058),
    [anon_sym_DOT] = ACTIONS(3056),
    [anon_sym_DOT_DOT] = ACTIONS(3056),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3058),
    [anon_sym_AMP] = ACTIONS(3056),
    [anon_sym_AMP_EQ] = ACTIONS(3058),
    [anon_sym_AMP_AMP] = ACTIONS(3058),
    [anon_sym_PIPE] = ACTIONS(3056),
    [anon_sym_PIPE_EQ] = ACTIONS(3058),
    [anon_sym_PIPE_PIPE] = ACTIONS(3058),
    [anon_sym_DASH] = ACTIONS(3056),
    [anon_sym_DASH_EQ] = ACTIONS(3058),
    [anon_sym_DASH_DASH] = ACTIONS(3058),
    [anon_sym_PLUS] = ACTIONS(3056),
    [anon_sym_PLUS_EQ] = ACTIONS(3058),
    [anon_sym_PLUS_PLUS] = ACTIONS(3058),
    [anon_sym_LT] = ACTIONS(3056),
    [anon_sym_LT_EQ] = ACTIONS(3058),
    [anon_sym_LT_LT] = ACTIONS(3056),
    [anon_sym_LT_LT_EQ] = ACTIONS(3058),
    [anon_sym_GT] = ACTIONS(3056),
    [anon_sym_GT_EQ] = ACTIONS(3058),
    [anon_sym_GT_GT_EQ] = ACTIONS(3058),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3058),
    [anon_sym_GT_GT] = ACTIONS(3056),
    [anon_sym_GT_GT_GT] = ACTIONS(3056),
    [anon_sym_BANG] = ACTIONS(3056),
    [anon_sym_BANG_EQ] = ACTIONS(3058),
    [anon_sym_LPAREN] = ACTIONS(3058),
    [anon_sym_RPAREN] = ACTIONS(3058),
    [anon_sym_LBRACK] = ACTIONS(3058),
    [anon_sym_RBRACK] = ACTIONS(3058),
    [anon_sym_QMARK] = ACTIONS(3058),
    [anon_sym_COMMA] = ACTIONS(3058),
    [anon_sym_SEMI] = ACTIONS(3058),
    [anon_sym_COLON] = ACTIONS(3058),
    [anon_sym_DOLLAR] = ACTIONS(3056),
    [anon_sym_EQ] = ACTIONS(3056),
    [anon_sym_EQ_EQ] = ACTIONS(3058),
    [anon_sym_STAR] = ACTIONS(3056),
    [anon_sym_STAR_EQ] = ACTIONS(3058),
    [anon_sym_PERCENT] = ACTIONS(3056),
    [anon_sym_PERCENT_EQ] = ACTIONS(3058),
    [anon_sym_CARET] = ACTIONS(3056),
    [anon_sym_CARET_EQ] = ACTIONS(3058),
    [anon_sym_CARET_CARET] = ACTIONS(3056),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3058),
    [anon_sym_TILDE] = ACTIONS(3056),
    [anon_sym_TILDE_EQ] = ACTIONS(3058),
    [anon_sym_AT] = ACTIONS(3058),
    [anon_sym_EQ_GT] = ACTIONS(3058),
    [anon_sym_POUND] = ACTIONS(3058),
    [anon_sym_BANGin] = ACTIONS(3058),
    [anon_sym_BANGis] = ACTIONS(3058),
    [sym_bool] = ACTIONS(3056),
    [sym_byte] = ACTIONS(3056),
    [sym_ubyte] = ACTIONS(3056),
    [sym_char] = ACTIONS(3056),
    [sym_short] = ACTIONS(3056),
    [sym_ushort] = ACTIONS(3056),
    [sym_int] = ACTIONS(3056),
    [sym_uint] = ACTIONS(3056),
    [sym_long] = ACTIONS(3056),
    [sym_ulong] = ACTIONS(3056),
    [sym_cent] = ACTIONS(3056),
    [sym_ucent] = ACTIONS(3056),
    [sym_wchar] = ACTIONS(3056),
    [sym_dchar] = ACTIONS(3056),
    [sym_float] = ACTIONS(3056),
    [sym_double] = ACTIONS(3056),
    [sym_real] = ACTIONS(3056),
    [sym_ifloat] = ACTIONS(3056),
    [sym_idouble] = ACTIONS(3056),
    [sym_ireal] = ACTIONS(3056),
    [sym_cfloat] = ACTIONS(3056),
    [sym_cdouble] = ACTIONS(3056),
    [sym_creal] = ACTIONS(3056),
    [sym_size_t] = ACTIONS(3056),
    [sym_ptrdiff_t] = ACTIONS(3056),
    [sym_string] = ACTIONS(3056),
    [sym_cstring] = ACTIONS(3056),
    [sym_dstring] = ACTIONS(3056),
    [sym_wstring] = ACTIONS(3056),
    [sym_noreturn] = ACTIONS(3056),
    [sym_true] = ACTIONS(3056),
    [sym_false] = ACTIONS(3056),
    [sym_null] = ACTIONS(3056),
    [sym_super] = ACTIONS(3056),
    [sym_this] = ACTIONS(3056),
    [sym_abstract] = ACTIONS(3056),
    [sym_alias] = ACTIONS(3056),
    [sym_align] = ACTIONS(3056),
    [sym_asm] = ACTIONS(3056),
    [sym_assert] = ACTIONS(3056),
    [sym_auto] = ACTIONS(3056),
    [sym_break] = ACTIONS(3056),
    [sym_case] = ACTIONS(3056),
    [sym_cast] = ACTIONS(3056),
    [sym_catch] = ACTIONS(3056),
    [sym_class] = ACTIONS(3056),
    [sym_const] = ACTIONS(3056),
    [sym_continue] = ACTIONS(3056),
    [sym_debug] = ACTIONS(3056),
    [sym_default] = ACTIONS(3056),
    [sym_delegate] = ACTIONS(3056),
    [sym_delete] = ACTIONS(3056),
    [sym_deprecated] = ACTIONS(3056),
    [sym_do] = ACTIONS(3056),
    [sym_else] = ACTIONS(3056),
    [sym_enum] = ACTIONS(3056),
    [sym_export] = ACTIONS(3056),
    [sym_extern] = ACTIONS(3056),
    [sym_final] = ACTIONS(3056),
    [sym_finally] = ACTIONS(3056),
    [sym_for] = ACTIONS(3056),
    [sym_foreach] = ACTIONS(3056),
    [sym_foreach_reverse] = ACTIONS(3056),
    [sym_function] = ACTIONS(3056),
    [sym_goto] = ACTIONS(3056),
    [sym_if] = ACTIONS(3056),
    [sym_immutable] = ACTIONS(3056),
    [sym_import] = ACTIONS(3056),
    [sym_in] = ACTIONS(3056),
    [sym_inout] = ACTIONS(3056),
    [sym_interface] = ACTIONS(3056),
    [sym_invariant] = ACTIONS(3056),
    [sym_is] = ACTIONS(3056),
    [sym_lazy] = ACTIONS(3056),
    [sym_mixin] = ACTIONS(3056),
    [sym_module] = ACTIONS(3056),
    [sym_new] = ACTIONS(3056),
    [sym_nothrow] = ACTIONS(3056),
    [sym_out] = ACTIONS(3056),
    [sym_override] = ACTIONS(3056),
    [sym_package] = ACTIONS(3056),
    [sym_pragma] = ACTIONS(3056),
    [sym_private] = ACTIONS(3056),
    [sym_protected] = ACTIONS(3056),
    [sym_public] = ACTIONS(3056),
    [sym_pure] = ACTIONS(3056),
    [sym_ref] = ACTIONS(3056),
    [sym_return] = ACTIONS(3056),
    [sym_scope] = ACTIONS(3056),
    [sym_shared] = ACTIONS(3056),
    [sym_static] = ACTIONS(3056),
    [sym_struct] = ACTIONS(3056),
    [sym_switch] = ACTIONS(3056),
    [sym_synchronized] = ACTIONS(3056),
    [sym_template] = ACTIONS(3056),
    [sym_throw] = ACTIONS(3056),
    [sym_try] = ACTIONS(3056),
    [sym_typeid] = ACTIONS(3056),
    [sym_typeof] = ACTIONS(3056),
    [sym_union] = ACTIONS(3056),
    [sym_unittest] = ACTIONS(3056),
    [sym_version] = ACTIONS(3056),
    [sym_while] = ACTIONS(3056),
    [sym_with] = ACTIONS(3056),
    [sym_parameters_] = ACTIONS(3056),
    [sym_gshared] = ACTIONS(3056),
    [sym_traits] = ACTIONS(3056),
    [sym_vector] = ACTIONS(3056),
    [sym_void] = ACTIONS(3056),
    [anon_sym_BQUOTE] = ACTIONS(3058),
    [anon_sym_r_DQUOTE] = ACTIONS(3058),
    [anon_sym_x_DQUOTE] = ACTIONS(3058),
    [anon_sym_DQUOTE] = ACTIONS(3058),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3058),
    [anon_sym_i_BQUOTE] = ACTIONS(3058),
    [anon_sym_i_DQUOTE] = ACTIONS(3058),
    [anon_sym_iq_LBRACE] = ACTIONS(3058),
    [aux_sym_char_literal_token1] = ACTIONS(3058),
    [anon_sym_SQUOTE] = ACTIONS(3056),
    [anon_sym___DATE__] = ACTIONS(3056),
    [anon_sym___FILE__] = ACTIONS(3056),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3056),
    [anon_sym___FUNCTION__] = ACTIONS(3056),
    [anon_sym___LINE__] = ACTIONS(3056),
    [anon_sym___MODULE__] = ACTIONS(3056),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3056),
    [anon_sym___TIME__] = ACTIONS(3056),
    [anon_sym___TIMESTAMP__] = ACTIONS(3056),
    [anon_sym___VENDOR__] = ACTIONS(3056),
    [anon_sym___VERSION__] = ACTIONS(3056),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3058),
    [sym_float_literal] = ACTIONS(3058),
    [sym__string] = ACTIONS(3058),
  },
  [640] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3062),
    [anon_sym_RBRACE] = ACTIONS(3062),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_SLASH] = ACTIONS(3060),
    [anon_sym_SLASH_EQ] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3060),
    [anon_sym_DOT_DOT] = ACTIONS(3060),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3062),
    [anon_sym_AMP] = ACTIONS(3060),
    [anon_sym_AMP_EQ] = ACTIONS(3062),
    [anon_sym_AMP_AMP] = ACTIONS(3062),
    [anon_sym_PIPE] = ACTIONS(3060),
    [anon_sym_PIPE_EQ] = ACTIONS(3062),
    [anon_sym_PIPE_PIPE] = ACTIONS(3062),
    [anon_sym_DASH] = ACTIONS(3060),
    [anon_sym_DASH_EQ] = ACTIONS(3062),
    [anon_sym_DASH_DASH] = ACTIONS(3062),
    [anon_sym_PLUS] = ACTIONS(3060),
    [anon_sym_PLUS_EQ] = ACTIONS(3062),
    [anon_sym_PLUS_PLUS] = ACTIONS(3062),
    [anon_sym_LT] = ACTIONS(3060),
    [anon_sym_LT_EQ] = ACTIONS(3062),
    [anon_sym_LT_LT] = ACTIONS(3060),
    [anon_sym_LT_LT_EQ] = ACTIONS(3062),
    [anon_sym_GT] = ACTIONS(3060),
    [anon_sym_GT_EQ] = ACTIONS(3062),
    [anon_sym_GT_GT_EQ] = ACTIONS(3062),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3062),
    [anon_sym_GT_GT] = ACTIONS(3060),
    [anon_sym_GT_GT_GT] = ACTIONS(3060),
    [anon_sym_BANG] = ACTIONS(3060),
    [anon_sym_BANG_EQ] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_RPAREN] = ACTIONS(3062),
    [anon_sym_LBRACK] = ACTIONS(3062),
    [anon_sym_RBRACK] = ACTIONS(3062),
    [anon_sym_QMARK] = ACTIONS(3062),
    [anon_sym_COMMA] = ACTIONS(3062),
    [anon_sym_SEMI] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_DOLLAR] = ACTIONS(3060),
    [anon_sym_EQ] = ACTIONS(3060),
    [anon_sym_EQ_EQ] = ACTIONS(3062),
    [anon_sym_STAR] = ACTIONS(3060),
    [anon_sym_STAR_EQ] = ACTIONS(3062),
    [anon_sym_PERCENT] = ACTIONS(3060),
    [anon_sym_PERCENT_EQ] = ACTIONS(3062),
    [anon_sym_CARET] = ACTIONS(3060),
    [anon_sym_CARET_EQ] = ACTIONS(3062),
    [anon_sym_CARET_CARET] = ACTIONS(3060),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3060),
    [anon_sym_TILDE_EQ] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [anon_sym_EQ_GT] = ACTIONS(3062),
    [anon_sym_POUND] = ACTIONS(3062),
    [anon_sym_BANGin] = ACTIONS(3062),
    [anon_sym_BANGis] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_true] = ACTIONS(3060),
    [sym_false] = ACTIONS(3060),
    [sym_null] = ACTIONS(3060),
    [sym_super] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_asm] = ACTIONS(3060),
    [sym_assert] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_break] = ACTIONS(3060),
    [sym_case] = ACTIONS(3060),
    [sym_cast] = ACTIONS(3060),
    [sym_catch] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_continue] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_default] = ACTIONS(3060),
    [sym_delegate] = ACTIONS(3060),
    [sym_delete] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_do] = ACTIONS(3060),
    [sym_else] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_finally] = ACTIONS(3060),
    [sym_for] = ACTIONS(3060),
    [sym_foreach] = ACTIONS(3060),
    [sym_foreach_reverse] = ACTIONS(3060),
    [sym_function] = ACTIONS(3060),
    [sym_goto] = ACTIONS(3060),
    [sym_if] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_in] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_is] = ACTIONS(3060),
    [sym_lazy] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_module] = ACTIONS(3060),
    [sym_new] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_out] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(3060),
    [sym_struct] = ACTIONS(3060),
    [sym_switch] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_throw] = ACTIONS(3060),
    [sym_try] = ACTIONS(3060),
    [sym_typeid] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_while] = ACTIONS(3060),
    [sym_with] = ACTIONS(3060),
    [sym_parameters_] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [anon_sym_BQUOTE] = ACTIONS(3062),
    [anon_sym_r_DQUOTE] = ACTIONS(3062),
    [anon_sym_x_DQUOTE] = ACTIONS(3062),
    [anon_sym_DQUOTE] = ACTIONS(3062),
    [anon_sym_DOLLAR_LPAREN] = ACTIONS(3062),
    [anon_sym_i_BQUOTE] = ACTIONS(3062),
    [anon_sym_i_DQUOTE] = ACTIONS(3062),
    [anon_sym_iq_LBRACE] = ACTIONS(3062),
    [aux_sym_char_literal_token1] = ACTIONS(3062),
    [anon_sym_SQUOTE] = ACTIONS(3060),
    [anon_sym___DATE__] = ACTIONS(3060),
    [anon_sym___FILE__] = ACTIONS(3060),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3060),
    [anon_sym___FUNCTION__] = ACTIONS(3060),
    [anon_sym___LINE__] = ACTIONS(3060),
    [anon_sym___MODULE__] = ACTIONS(3060),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3060),
    [anon_sym___TIME__] = ACTIONS(3060),
    [anon_sym___TIMESTAMP__] = ACTIONS(3060),
    [anon_sym___VENDOR__] = ACTIONS(3060),
    [anon_sym___VERSION__] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3062),
    [sym_float_literal] = ACTIONS(3062),
    [sym__string] = ACTIONS(3062),
  },
  [641] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3062),
    [anon_sym_RBRACE] = ACTIONS(3062),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_SLASH] = ACTIONS(3060),
    [anon_sym_SLASH_EQ] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3060),
    [anon_sym_DOT_DOT] = ACTIONS(3060),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3062),
    [anon_sym_AMP] = ACTIONS(3060),
    [anon_sym_AMP_EQ] = ACTIONS(3062),
    [anon_sym_AMP_AMP] = ACTIONS(3062),
    [anon_sym_PIPE] = ACTIONS(3060),
    [anon_sym_PIPE_EQ] = ACTIONS(3062),
    [anon_sym_PIPE_PIPE] = ACTIONS(3062),
    [anon_sym_DASH] = ACTIONS(3060),
    [anon_sym_DASH_EQ] = ACTIONS(3062),
    [anon_sym_DASH_DASH] = ACTIONS(3062),
    [anon_sym_PLUS] = ACTIONS(3060),
    [anon_sym_PLUS_EQ] = ACTIONS(3062),
    [anon_sym_PLUS_PLUS] = ACTIONS(3062),
    [anon_sym_LT] = ACTIONS(3060),
    [anon_sym_LT_EQ] = ACTIONS(3062),
    [anon_sym_LT_LT] = ACTIONS(3060),
    [anon_sym_LT_LT_EQ] = ACTIONS(3062),
    [anon_sym_GT] = ACTIONS(3060),
    [anon_sym_GT_EQ] = ACTIONS(3062),
    [anon_sym_GT_GT_EQ] = ACTIONS(3062),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3062),
    [anon_sym_GT_GT] = ACTIONS(3060),
    [anon_sym_GT_GT_GT] = ACTIONS(3060),
    [anon_sym_BANG] = ACTIONS(3060),
    [anon_sym_BANG_EQ] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_RPAREN] = ACTIONS(3062),
    [anon_sym_LBRACK] = ACTIONS(3062),
    [anon_sym_RBRACK] = ACTIONS(3062),
    [anon_sym_QMARK] = ACTIONS(3062),
    [anon_sym_COMMA] = ACTIONS(3062),
    [anon_sym_SEMI] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_DOLLAR] = ACTIONS(3062),
    [anon_sym_EQ] = ACTIONS(3060),
    [anon_sym_EQ_EQ] = ACTIONS(3062),
    [anon_sym_STAR] = ACTIONS(3060),
    [anon_sym_STAR_EQ] = ACTIONS(3062),
    [anon_sym_PERCENT] = ACTIONS(3060),
    [anon_sym_PERCENT_EQ] = ACTIONS(3062),
    [anon_sym_CARET] = ACTIONS(3060),
    [anon_sym_CARET_EQ] = ACTIONS(3062),
    [anon_sym_CARET_CARET] = ACTIONS(3060),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3060),
    [anon_sym_TILDE_EQ] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [anon_sym_EQ_GT] = ACTIONS(3062),
    [anon_sym_POUND] = ACTIONS(3062),
    [anon_sym_BANGin] = ACTIONS(3062),
    [anon_sym_BANGis] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_true] = ACTIONS(3060),
    [sym_false] = ACTIONS(3060),
    [sym_null] = ACTIONS(3060),
    [sym_super] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_asm] = ACTIONS(3060),
    [sym_assert] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_break] = ACTIONS(3060),
    [sym_case] = ACTIONS(3060),
    [sym_cast] = ACTIONS(3060),
    [sym_catch] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_continue] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_default] = ACTIONS(3060),
    [sym_delegate] = ACTIONS(3060),
    [sym_delete] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_do] = ACTIONS(3060),
    [sym_else] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_finally] = ACTIONS(3060),
    [sym_for] = ACTIONS(3060),
    [sym_foreach] = ACTIONS(3060),
    [sym_foreach_reverse] = ACTIONS(3060),
    [sym_function] = ACTIONS(3060),
    [sym_goto] = ACTIONS(3060),
    [sym_if] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_in] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_is] = ACTIONS(3060),
    [sym_lazy] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_module] = ACTIONS(3060),
    [sym_new] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_out] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(3060),
    [sym_struct] = ACTIONS(3060),
    [sym_switch] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_throw] = ACTIONS(3060),
    [sym_try] = ACTIONS(3060),
    [sym_typeid] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_while] = ACTIONS(3060),
    [sym_with] = ACTIONS(3060),
    [sym_parameters_] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [anon_sym_BQUOTE] = ACTIONS(3062),
    [anon_sym_r_DQUOTE] = ACTIONS(3062),
    [anon_sym_x_DQUOTE] = ACTIONS(3062),
    [anon_sym_DQUOTE] = ACTIONS(3062),
    [anon_sym_i_BQUOTE] = ACTIONS(3062),
    [anon_sym_i_DQUOTE] = ACTIONS(3062),
    [anon_sym_iq_LBRACE] = ACTIONS(3062),
    [aux_sym_char_literal_token1] = ACTIONS(3062),
    [anon_sym_SQUOTE] = ACTIONS(3060),
    [anon_sym___DATE__] = ACTIONS(3060),
    [anon_sym___FILE__] = ACTIONS(3060),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3060),
    [anon_sym___FUNCTION__] = ACTIONS(3060),
    [anon_sym___LINE__] = ACTIONS(3060),
    [anon_sym___MODULE__] = ACTIONS(3060),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3060),
    [anon_sym___TIME__] = ACTIONS(3060),
    [anon_sym___TIMESTAMP__] = ACTIONS(3060),
    [anon_sym___VENDOR__] = ACTIONS(3060),
    [anon_sym___VERSION__] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3062),
    [sym_float_literal] = ACTIONS(3062),
    [sym__string] = ACTIONS(3062),
  },
  [642] = {
    [sym_identifier] = ACTIONS(2984),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2986),
    [anon_sym_RBRACE] = ACTIONS(2986),
    [anon_sym_LBRACE] = ACTIONS(2986),
    [anon_sym_SLASH] = ACTIONS(2984),
    [anon_sym_SLASH_EQ] = ACTIONS(2986),
    [anon_sym_DOT] = ACTIONS(2984),
    [anon_sym_DOT_DOT] = ACTIONS(2984),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2986),
    [anon_sym_AMP] = ACTIONS(2984),
    [anon_sym_AMP_EQ] = ACTIONS(2986),
    [anon_sym_AMP_AMP] = ACTIONS(2986),
    [anon_sym_PIPE] = ACTIONS(2984),
    [anon_sym_PIPE_EQ] = ACTIONS(2986),
    [anon_sym_PIPE_PIPE] = ACTIONS(2986),
    [anon_sym_DASH] = ACTIONS(2984),
    [anon_sym_DASH_EQ] = ACTIONS(2986),
    [anon_sym_DASH_DASH] = ACTIONS(2986),
    [anon_sym_PLUS] = ACTIONS(2984),
    [anon_sym_PLUS_EQ] = ACTIONS(2986),
    [anon_sym_PLUS_PLUS] = ACTIONS(2986),
    [anon_sym_LT] = ACTIONS(2984),
    [anon_sym_LT_EQ] = ACTIONS(2986),
    [anon_sym_LT_LT] = ACTIONS(2984),
    [anon_sym_LT_LT_EQ] = ACTIONS(2986),
    [anon_sym_GT] = ACTIONS(2984),
    [anon_sym_GT_EQ] = ACTIONS(2986),
    [anon_sym_GT_GT_EQ] = ACTIONS(2986),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2986),
    [anon_sym_GT_GT] = ACTIONS(2984),
    [anon_sym_GT_GT_GT] = ACTIONS(2984),
    [anon_sym_BANG] = ACTIONS(2984),
    [anon_sym_BANG_EQ] = ACTIONS(2986),
    [anon_sym_LPAREN] = ACTIONS(2986),
    [anon_sym_RPAREN] = ACTIONS(2986),
    [anon_sym_LBRACK] = ACTIONS(2986),
    [anon_sym_RBRACK] = ACTIONS(2986),
    [anon_sym_QMARK] = ACTIONS(2986),
    [anon_sym_COMMA] = ACTIONS(2986),
    [anon_sym_SEMI] = ACTIONS(2986),
    [anon_sym_COLON] = ACTIONS(2986),
    [anon_sym_DOLLAR] = ACTIONS(2986),
    [anon_sym_EQ] = ACTIONS(2984),
    [anon_sym_EQ_EQ] = ACTIONS(2986),
    [anon_sym_STAR] = ACTIONS(2984),
    [anon_sym_STAR_EQ] = ACTIONS(2986),
    [anon_sym_PERCENT] = ACTIONS(2984),
    [anon_sym_PERCENT_EQ] = ACTIONS(2986),
    [anon_sym_CARET] = ACTIONS(2984),
    [anon_sym_CARET_EQ] = ACTIONS(2986),
    [anon_sym_CARET_CARET] = ACTIONS(2984),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2986),
    [anon_sym_TILDE] = ACTIONS(2984),
    [anon_sym_TILDE_EQ] = ACTIONS(2986),
    [anon_sym_AT] = ACTIONS(2986),
    [anon_sym_EQ_GT] = ACTIONS(2986),
    [anon_sym_POUND] = ACTIONS(2986),
    [anon_sym_BANGin] = ACTIONS(2986),
    [anon_sym_BANGis] = ACTIONS(2986),
    [sym_bool] = ACTIONS(2984),
    [sym_byte] = ACTIONS(2984),
    [sym_ubyte] = ACTIONS(2984),
    [sym_char] = ACTIONS(2984),
    [sym_short] = ACTIONS(2984),
    [sym_ushort] = ACTIONS(2984),
    [sym_int] = ACTIONS(2984),
    [sym_uint] = ACTIONS(2984),
    [sym_long] = ACTIONS(2984),
    [sym_ulong] = ACTIONS(2984),
    [sym_cent] = ACTIONS(2984),
    [sym_ucent] = ACTIONS(2984),
    [sym_wchar] = ACTIONS(2984),
    [sym_dchar] = ACTIONS(2984),
    [sym_float] = ACTIONS(2984),
    [sym_double] = ACTIONS(2984),
    [sym_real] = ACTIONS(2984),
    [sym_ifloat] = ACTIONS(2984),
    [sym_idouble] = ACTIONS(2984),
    [sym_ireal] = ACTIONS(2984),
    [sym_cfloat] = ACTIONS(2984),
    [sym_cdouble] = ACTIONS(2984),
    [sym_creal] = ACTIONS(2984),
    [sym_size_t] = ACTIONS(2984),
    [sym_ptrdiff_t] = ACTIONS(2984),
    [sym_string] = ACTIONS(2984),
    [sym_cstring] = ACTIONS(2984),
    [sym_dstring] = ACTIONS(2984),
    [sym_wstring] = ACTIONS(2984),
    [sym_noreturn] = ACTIONS(2984),
    [sym_true] = ACTIONS(2984),
    [sym_false] = ACTIONS(2984),
    [sym_null] = ACTIONS(2984),
    [sym_super] = ACTIONS(2984),
    [sym_this] = ACTIONS(2984),
    [sym_abstract] = ACTIONS(2984),
    [sym_alias] = ACTIONS(2984),
    [sym_align] = ACTIONS(2984),
    [sym_asm] = ACTIONS(2984),
    [sym_assert] = ACTIONS(2984),
    [sym_auto] = ACTIONS(2984),
    [sym_break] = ACTIONS(2984),
    [sym_case] = ACTIONS(2984),
    [sym_cast] = ACTIONS(2984),
    [sym_catch] = ACTIONS(2984),
    [sym_class] = ACTIONS(2984),
    [sym_const] = ACTIONS(2984),
    [sym_continue] = ACTIONS(2984),
    [sym_debug] = ACTIONS(2984),
    [sym_default] = ACTIONS(2984),
    [sym_delegate] = ACTIONS(2984),
    [sym_delete] = ACTIONS(2984),
    [sym_deprecated] = ACTIONS(2984),
    [sym_do] = ACTIONS(2984),
    [sym_else] = ACTIONS(2984),
    [sym_enum] = ACTIONS(2984),
    [sym_export] = ACTIONS(2984),
    [sym_extern] = ACTIONS(2984),
    [sym_final] = ACTIONS(2984),
    [sym_finally] = ACTIONS(2984),
    [sym_for] = ACTIONS(2984),
    [sym_foreach] = ACTIONS(2984),
    [sym_foreach_reverse] = ACTIONS(2984),
    [sym_function] = ACTIONS(2984),
    [sym_goto] = ACTIONS(2984),
    [sym_if] = ACTIONS(2984),
    [sym_immutable] = ACTIONS(2984),
    [sym_import] = ACTIONS(2984),
    [sym_in] = ACTIONS(2984),
    [sym_inout] = ACTIONS(2984),
    [sym_interface] = ACTIONS(2984),
    [sym_invariant] = ACTIONS(2984),
    [sym_is] = ACTIONS(2984),
    [sym_lazy] = ACTIONS(2984),
    [sym_mixin] = ACTIONS(2984),
    [sym_module] = ACTIONS(2984),
    [sym_new] = ACTIONS(2984),
    [sym_nothrow] = ACTIONS(2984),
    [sym_out] = ACTIONS(2984),
    [sym_override] = ACTIONS(2984),
    [sym_package] = ACTIONS(2984),
    [sym_pragma] = ACTIONS(2984),
    [sym_private] = ACTIONS(2984),
    [sym_protected] = ACTIONS(2984),
    [sym_public] = ACTIONS(2984),
    [sym_pure] = ACTIONS(2984),
    [sym_ref] = ACTIONS(2984),
    [sym_return] = ACTIONS(2984),
    [sym_scope] = ACTIONS(2984),
    [sym_shared] = ACTIONS(2984),
    [sym_static] = ACTIONS(2984),
    [sym_struct] = ACTIONS(2984),
    [sym_switch] = ACTIONS(2984),
    [sym_synchronized] = ACTIONS(2984),
    [sym_template] = ACTIONS(2984),
    [sym_throw] = ACTIONS(2984),
    [sym_try] = ACTIONS(2984),
    [sym_typeid] = ACTIONS(2984),
    [sym_typeof] = ACTIONS(2984),
    [sym_union] = ACTIONS(2984),
    [sym_unittest] = ACTIONS(2984),
    [sym_version] = ACTIONS(2984),
    [sym_while] = ACTIONS(2984),
    [sym_with] = ACTIONS(2984),
    [sym_parameters_] = ACTIONS(2984),
    [sym_gshared] = ACTIONS(2984),
    [sym_traits] = ACTIONS(2984),
    [sym_vector] = ACTIONS(2984),
    [sym_void] = ACTIONS(2984),
    [anon_sym_BQUOTE] = ACTIONS(2986),
    [anon_sym_r_DQUOTE] = ACTIONS(2986),
    [anon_sym_x_DQUOTE] = ACTIONS(2986),
    [anon_sym_DQUOTE] = ACTIONS(2986),
    [anon_sym_i_BQUOTE] = ACTIONS(2986),
    [anon_sym_i_DQUOTE] = ACTIONS(2986),
    [anon_sym_iq_LBRACE] = ACTIONS(2986),
    [aux_sym_char_literal_token1] = ACTIONS(2986),
    [anon_sym_SQUOTE] = ACTIONS(2984),
    [anon_sym___DATE__] = ACTIONS(2984),
    [anon_sym___FILE__] = ACTIONS(2984),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2984),
    [anon_sym___FUNCTION__] = ACTIONS(2984),
    [anon_sym___LINE__] = ACTIONS(2984),
    [anon_sym___MODULE__] = ACTIONS(2984),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2984),
    [anon_sym___TIME__] = ACTIONS(2984),
    [anon_sym___TIMESTAMP__] = ACTIONS(2984),
    [anon_sym___VENDOR__] = ACTIONS(2984),
    [anon_sym___VERSION__] = ACTIONS(2984),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2986),
    [sym_float_literal] = ACTIONS(2986),
    [sym__string] = ACTIONS(2986),
  },
  [643] = {
    [sym_identifier] = ACTIONS(3008),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3010),
    [anon_sym_RBRACE] = ACTIONS(3010),
    [anon_sym_LBRACE] = ACTIONS(3010),
    [anon_sym_SLASH] = ACTIONS(3008),
    [anon_sym_SLASH_EQ] = ACTIONS(3010),
    [anon_sym_DOT] = ACTIONS(3008),
    [anon_sym_DOT_DOT] = ACTIONS(3008),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3010),
    [anon_sym_AMP] = ACTIONS(3008),
    [anon_sym_AMP_EQ] = ACTIONS(3010),
    [anon_sym_AMP_AMP] = ACTIONS(3010),
    [anon_sym_PIPE] = ACTIONS(3008),
    [anon_sym_PIPE_EQ] = ACTIONS(3010),
    [anon_sym_PIPE_PIPE] = ACTIONS(3010),
    [anon_sym_DASH] = ACTIONS(3008),
    [anon_sym_DASH_EQ] = ACTIONS(3010),
    [anon_sym_DASH_DASH] = ACTIONS(3010),
    [anon_sym_PLUS] = ACTIONS(3008),
    [anon_sym_PLUS_EQ] = ACTIONS(3010),
    [anon_sym_PLUS_PLUS] = ACTIONS(3010),
    [anon_sym_LT] = ACTIONS(3008),
    [anon_sym_LT_EQ] = ACTIONS(3010),
    [anon_sym_LT_LT] = ACTIONS(3008),
    [anon_sym_LT_LT_EQ] = ACTIONS(3010),
    [anon_sym_GT] = ACTIONS(3008),
    [anon_sym_GT_EQ] = ACTIONS(3010),
    [anon_sym_GT_GT_EQ] = ACTIONS(3010),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3010),
    [anon_sym_GT_GT] = ACTIONS(3008),
    [anon_sym_GT_GT_GT] = ACTIONS(3008),
    [anon_sym_BANG] = ACTIONS(3008),
    [anon_sym_BANG_EQ] = ACTIONS(3010),
    [anon_sym_LPAREN] = ACTIONS(3010),
    [anon_sym_RPAREN] = ACTIONS(3010),
    [anon_sym_LBRACK] = ACTIONS(3010),
    [anon_sym_RBRACK] = ACTIONS(3010),
    [anon_sym_QMARK] = ACTIONS(3010),
    [anon_sym_COMMA] = ACTIONS(3010),
    [anon_sym_SEMI] = ACTIONS(3010),
    [anon_sym_COLON] = ACTIONS(3010),
    [anon_sym_DOLLAR] = ACTIONS(3010),
    [anon_sym_EQ] = ACTIONS(3008),
    [anon_sym_EQ_EQ] = ACTIONS(3010),
    [anon_sym_STAR] = ACTIONS(3008),
    [anon_sym_STAR_EQ] = ACTIONS(3010),
    [anon_sym_PERCENT] = ACTIONS(3008),
    [anon_sym_PERCENT_EQ] = ACTIONS(3010),
    [anon_sym_CARET] = ACTIONS(3008),
    [anon_sym_CARET_EQ] = ACTIONS(3010),
    [anon_sym_CARET_CARET] = ACTIONS(3008),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3010),
    [anon_sym_TILDE] = ACTIONS(3008),
    [anon_sym_TILDE_EQ] = ACTIONS(3010),
    [anon_sym_AT] = ACTIONS(3010),
    [anon_sym_EQ_GT] = ACTIONS(3010),
    [anon_sym_POUND] = ACTIONS(3010),
    [anon_sym_BANGin] = ACTIONS(3010),
    [anon_sym_BANGis] = ACTIONS(3010),
    [sym_bool] = ACTIONS(3008),
    [sym_byte] = ACTIONS(3008),
    [sym_ubyte] = ACTIONS(3008),
    [sym_char] = ACTIONS(3008),
    [sym_short] = ACTIONS(3008),
    [sym_ushort] = ACTIONS(3008),
    [sym_int] = ACTIONS(3008),
    [sym_uint] = ACTIONS(3008),
    [sym_long] = ACTIONS(3008),
    [sym_ulong] = ACTIONS(3008),
    [sym_cent] = ACTIONS(3008),
    [sym_ucent] = ACTIONS(3008),
    [sym_wchar] = ACTIONS(3008),
    [sym_dchar] = ACTIONS(3008),
    [sym_float] = ACTIONS(3008),
    [sym_double] = ACTIONS(3008),
    [sym_real] = ACTIONS(3008),
    [sym_ifloat] = ACTIONS(3008),
    [sym_idouble] = ACTIONS(3008),
    [sym_ireal] = ACTIONS(3008),
    [sym_cfloat] = ACTIONS(3008),
    [sym_cdouble] = ACTIONS(3008),
    [sym_creal] = ACTIONS(3008),
    [sym_size_t] = ACTIONS(3008),
    [sym_ptrdiff_t] = ACTIONS(3008),
    [sym_string] = ACTIONS(3008),
    [sym_cstring] = ACTIONS(3008),
    [sym_dstring] = ACTIONS(3008),
    [sym_wstring] = ACTIONS(3008),
    [sym_noreturn] = ACTIONS(3008),
    [sym_true] = ACTIONS(3008),
    [sym_false] = ACTIONS(3008),
    [sym_null] = ACTIONS(3008),
    [sym_super] = ACTIONS(3008),
    [sym_this] = ACTIONS(3008),
    [sym_abstract] = ACTIONS(3008),
    [sym_alias] = ACTIONS(3008),
    [sym_align] = ACTIONS(3008),
    [sym_asm] = ACTIONS(3008),
    [sym_assert] = ACTIONS(3008),
    [sym_auto] = ACTIONS(3008),
    [sym_break] = ACTIONS(3008),
    [sym_case] = ACTIONS(3008),
    [sym_cast] = ACTIONS(3008),
    [sym_catch] = ACTIONS(3008),
    [sym_class] = ACTIONS(3008),
    [sym_const] = ACTIONS(3008),
    [sym_continue] = ACTIONS(3008),
    [sym_debug] = ACTIONS(3008),
    [sym_default] = ACTIONS(3008),
    [sym_delegate] = ACTIONS(3008),
    [sym_delete] = ACTIONS(3008),
    [sym_deprecated] = ACTIONS(3008),
    [sym_do] = ACTIONS(3008),
    [sym_else] = ACTIONS(3008),
    [sym_enum] = ACTIONS(3008),
    [sym_export] = ACTIONS(3008),
    [sym_extern] = ACTIONS(3008),
    [sym_final] = ACTIONS(3008),
    [sym_finally] = ACTIONS(3008),
    [sym_for] = ACTIONS(3008),
    [sym_foreach] = ACTIONS(3008),
    [sym_foreach_reverse] = ACTIONS(3008),
    [sym_function] = ACTIONS(3008),
    [sym_goto] = ACTIONS(3008),
    [sym_if] = ACTIONS(3008),
    [sym_immutable] = ACTIONS(3008),
    [sym_import] = ACTIONS(3008),
    [sym_in] = ACTIONS(3008),
    [sym_inout] = ACTIONS(3008),
    [sym_interface] = ACTIONS(3008),
    [sym_invariant] = ACTIONS(3008),
    [sym_is] = ACTIONS(3008),
    [sym_lazy] = ACTIONS(3008),
    [sym_mixin] = ACTIONS(3008),
    [sym_module] = ACTIONS(3008),
    [sym_new] = ACTIONS(3008),
    [sym_nothrow] = ACTIONS(3008),
    [sym_out] = ACTIONS(3008),
    [sym_override] = ACTIONS(3008),
    [sym_package] = ACTIONS(3008),
    [sym_pragma] = ACTIONS(3008),
    [sym_private] = ACTIONS(3008),
    [sym_protected] = ACTIONS(3008),
    [sym_public] = ACTIONS(3008),
    [sym_pure] = ACTIONS(3008),
    [sym_ref] = ACTIONS(3008),
    [sym_return] = ACTIONS(3008),
    [sym_scope] = ACTIONS(3008),
    [sym_shared] = ACTIONS(3008),
    [sym_static] = ACTIONS(3008),
    [sym_struct] = ACTIONS(3008),
    [sym_switch] = ACTIONS(3008),
    [sym_synchronized] = ACTIONS(3008),
    [sym_template] = ACTIONS(3008),
    [sym_throw] = ACTIONS(3008),
    [sym_try] = ACTIONS(3008),
    [sym_typeid] = ACTIONS(3008),
    [sym_typeof] = ACTIONS(3008),
    [sym_union] = ACTIONS(3008),
    [sym_unittest] = ACTIONS(3008),
    [sym_version] = ACTIONS(3008),
    [sym_while] = ACTIONS(3008),
    [sym_with] = ACTIONS(3008),
    [sym_parameters_] = ACTIONS(3008),
    [sym_gshared] = ACTIONS(3008),
    [sym_traits] = ACTIONS(3008),
    [sym_vector] = ACTIONS(3008),
    [sym_void] = ACTIONS(3008),
    [anon_sym_BQUOTE] = ACTIONS(3010),
    [anon_sym_r_DQUOTE] = ACTIONS(3010),
    [anon_sym_x_DQUOTE] = ACTIONS(3010),
    [anon_sym_DQUOTE] = ACTIONS(3010),
    [anon_sym_i_BQUOTE] = ACTIONS(3010),
    [anon_sym_i_DQUOTE] = ACTIONS(3010),
    [anon_sym_iq_LBRACE] = ACTIONS(3010),
    [aux_sym_char_literal_token1] = ACTIONS(3010),
    [anon_sym_SQUOTE] = ACTIONS(3008),
    [anon_sym___DATE__] = ACTIONS(3008),
    [anon_sym___FILE__] = ACTIONS(3008),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3008),
    [anon_sym___FUNCTION__] = ACTIONS(3008),
    [anon_sym___LINE__] = ACTIONS(3008),
    [anon_sym___MODULE__] = ACTIONS(3008),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3008),
    [anon_sym___TIME__] = ACTIONS(3008),
    [anon_sym___TIMESTAMP__] = ACTIONS(3008),
    [anon_sym___VENDOR__] = ACTIONS(3008),
    [anon_sym___VERSION__] = ACTIONS(3008),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3010),
    [sym_float_literal] = ACTIONS(3010),
    [sym__string] = ACTIONS(3010),
  },
  [644] = {
    [sym_identifier] = ACTIONS(3004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3006),
    [anon_sym_RBRACE] = ACTIONS(3006),
    [anon_sym_LBRACE] = ACTIONS(3006),
    [anon_sym_SLASH] = ACTIONS(3004),
    [anon_sym_SLASH_EQ] = ACTIONS(3006),
    [anon_sym_DOT] = ACTIONS(3004),
    [anon_sym_DOT_DOT] = ACTIONS(3004),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3006),
    [anon_sym_AMP] = ACTIONS(3004),
    [anon_sym_AMP_EQ] = ACTIONS(3006),
    [anon_sym_AMP_AMP] = ACTIONS(3006),
    [anon_sym_PIPE] = ACTIONS(3004),
    [anon_sym_PIPE_EQ] = ACTIONS(3006),
    [anon_sym_PIPE_PIPE] = ACTIONS(3006),
    [anon_sym_DASH] = ACTIONS(3004),
    [anon_sym_DASH_EQ] = ACTIONS(3006),
    [anon_sym_DASH_DASH] = ACTIONS(3006),
    [anon_sym_PLUS] = ACTIONS(3004),
    [anon_sym_PLUS_EQ] = ACTIONS(3006),
    [anon_sym_PLUS_PLUS] = ACTIONS(3006),
    [anon_sym_LT] = ACTIONS(3004),
    [anon_sym_LT_EQ] = ACTIONS(3006),
    [anon_sym_LT_LT] = ACTIONS(3004),
    [anon_sym_LT_LT_EQ] = ACTIONS(3006),
    [anon_sym_GT] = ACTIONS(3004),
    [anon_sym_GT_EQ] = ACTIONS(3006),
    [anon_sym_GT_GT_EQ] = ACTIONS(3006),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3006),
    [anon_sym_GT_GT] = ACTIONS(3004),
    [anon_sym_GT_GT_GT] = ACTIONS(3004),
    [anon_sym_BANG] = ACTIONS(3004),
    [anon_sym_BANG_EQ] = ACTIONS(3006),
    [anon_sym_LPAREN] = ACTIONS(3006),
    [anon_sym_RPAREN] = ACTIONS(3006),
    [anon_sym_LBRACK] = ACTIONS(3006),
    [anon_sym_RBRACK] = ACTIONS(3006),
    [anon_sym_QMARK] = ACTIONS(3006),
    [anon_sym_COMMA] = ACTIONS(3006),
    [anon_sym_SEMI] = ACTIONS(3006),
    [anon_sym_COLON] = ACTIONS(3006),
    [anon_sym_DOLLAR] = ACTIONS(3006),
    [anon_sym_EQ] = ACTIONS(3004),
    [anon_sym_EQ_EQ] = ACTIONS(3006),
    [anon_sym_STAR] = ACTIONS(3004),
    [anon_sym_STAR_EQ] = ACTIONS(3006),
    [anon_sym_PERCENT] = ACTIONS(3004),
    [anon_sym_PERCENT_EQ] = ACTIONS(3006),
    [anon_sym_CARET] = ACTIONS(3004),
    [anon_sym_CARET_EQ] = ACTIONS(3006),
    [anon_sym_CARET_CARET] = ACTIONS(3004),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3006),
    [anon_sym_TILDE] = ACTIONS(3004),
    [anon_sym_TILDE_EQ] = ACTIONS(3006),
    [anon_sym_AT] = ACTIONS(3006),
    [anon_sym_EQ_GT] = ACTIONS(3006),
    [anon_sym_POUND] = ACTIONS(3006),
    [anon_sym_BANGin] = ACTIONS(3006),
    [anon_sym_BANGis] = ACTIONS(3006),
    [sym_bool] = ACTIONS(3004),
    [sym_byte] = ACTIONS(3004),
    [sym_ubyte] = ACTIONS(3004),
    [sym_char] = ACTIONS(3004),
    [sym_short] = ACTIONS(3004),
    [sym_ushort] = ACTIONS(3004),
    [sym_int] = ACTIONS(3004),
    [sym_uint] = ACTIONS(3004),
    [sym_long] = ACTIONS(3004),
    [sym_ulong] = ACTIONS(3004),
    [sym_cent] = ACTIONS(3004),
    [sym_ucent] = ACTIONS(3004),
    [sym_wchar] = ACTIONS(3004),
    [sym_dchar] = ACTIONS(3004),
    [sym_float] = ACTIONS(3004),
    [sym_double] = ACTIONS(3004),
    [sym_real] = ACTIONS(3004),
    [sym_ifloat] = ACTIONS(3004),
    [sym_idouble] = ACTIONS(3004),
    [sym_ireal] = ACTIONS(3004),
    [sym_cfloat] = ACTIONS(3004),
    [sym_cdouble] = ACTIONS(3004),
    [sym_creal] = ACTIONS(3004),
    [sym_size_t] = ACTIONS(3004),
    [sym_ptrdiff_t] = ACTIONS(3004),
    [sym_string] = ACTIONS(3004),
    [sym_cstring] = ACTIONS(3004),
    [sym_dstring] = ACTIONS(3004),
    [sym_wstring] = ACTIONS(3004),
    [sym_noreturn] = ACTIONS(3004),
    [sym_true] = ACTIONS(3004),
    [sym_false] = ACTIONS(3004),
    [sym_null] = ACTIONS(3004),
    [sym_super] = ACTIONS(3004),
    [sym_this] = ACTIONS(3004),
    [sym_abstract] = ACTIONS(3004),
    [sym_alias] = ACTIONS(3004),
    [sym_align] = ACTIONS(3004),
    [sym_asm] = ACTIONS(3004),
    [sym_assert] = ACTIONS(3004),
    [sym_auto] = ACTIONS(3004),
    [sym_break] = ACTIONS(3004),
    [sym_case] = ACTIONS(3004),
    [sym_cast] = ACTIONS(3004),
    [sym_catch] = ACTIONS(3004),
    [sym_class] = ACTIONS(3004),
    [sym_const] = ACTIONS(3004),
    [sym_continue] = ACTIONS(3004),
    [sym_debug] = ACTIONS(3004),
    [sym_default] = ACTIONS(3004),
    [sym_delegate] = ACTIONS(3004),
    [sym_delete] = ACTIONS(3004),
    [sym_deprecated] = ACTIONS(3004),
    [sym_do] = ACTIONS(3004),
    [sym_else] = ACTIONS(3004),
    [sym_enum] = ACTIONS(3004),
    [sym_export] = ACTIONS(3004),
    [sym_extern] = ACTIONS(3004),
    [sym_final] = ACTIONS(3004),
    [sym_finally] = ACTIONS(3004),
    [sym_for] = ACTIONS(3004),
    [sym_foreach] = ACTIONS(3004),
    [sym_foreach_reverse] = ACTIONS(3004),
    [sym_function] = ACTIONS(3004),
    [sym_goto] = ACTIONS(3004),
    [sym_if] = ACTIONS(3004),
    [sym_immutable] = ACTIONS(3004),
    [sym_import] = ACTIONS(3004),
    [sym_in] = ACTIONS(3004),
    [sym_inout] = ACTIONS(3004),
    [sym_interface] = ACTIONS(3004),
    [sym_invariant] = ACTIONS(3004),
    [sym_is] = ACTIONS(3004),
    [sym_lazy] = ACTIONS(3004),
    [sym_mixin] = ACTIONS(3004),
    [sym_module] = ACTIONS(3004),
    [sym_new] = ACTIONS(3004),
    [sym_nothrow] = ACTIONS(3004),
    [sym_out] = ACTIONS(3004),
    [sym_override] = ACTIONS(3004),
    [sym_package] = ACTIONS(3004),
    [sym_pragma] = ACTIONS(3004),
    [sym_private] = ACTIONS(3004),
    [sym_protected] = ACTIONS(3004),
    [sym_public] = ACTIONS(3004),
    [sym_pure] = ACTIONS(3004),
    [sym_ref] = ACTIONS(3004),
    [sym_return] = ACTIONS(3004),
    [sym_scope] = ACTIONS(3004),
    [sym_shared] = ACTIONS(3004),
    [sym_static] = ACTIONS(3004),
    [sym_struct] = ACTIONS(3004),
    [sym_switch] = ACTIONS(3004),
    [sym_synchronized] = ACTIONS(3004),
    [sym_template] = ACTIONS(3004),
    [sym_throw] = ACTIONS(3004),
    [sym_try] = ACTIONS(3004),
    [sym_typeid] = ACTIONS(3004),
    [sym_typeof] = ACTIONS(3004),
    [sym_union] = ACTIONS(3004),
    [sym_unittest] = ACTIONS(3004),
    [sym_version] = ACTIONS(3004),
    [sym_while] = ACTIONS(3004),
    [sym_with] = ACTIONS(3004),
    [sym_parameters_] = ACTIONS(3004),
    [sym_gshared] = ACTIONS(3004),
    [sym_traits] = ACTIONS(3004),
    [sym_vector] = ACTIONS(3004),
    [sym_void] = ACTIONS(3004),
    [anon_sym_BQUOTE] = ACTIONS(3006),
    [anon_sym_r_DQUOTE] = ACTIONS(3006),
    [anon_sym_x_DQUOTE] = ACTIONS(3006),
    [anon_sym_DQUOTE] = ACTIONS(3006),
    [anon_sym_i_BQUOTE] = ACTIONS(3006),
    [anon_sym_i_DQUOTE] = ACTIONS(3006),
    [anon_sym_iq_LBRACE] = ACTIONS(3006),
    [aux_sym_char_literal_token1] = ACTIONS(3006),
    [anon_sym_SQUOTE] = ACTIONS(3004),
    [anon_sym___DATE__] = ACTIONS(3004),
    [anon_sym___FILE__] = ACTIONS(3004),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3004),
    [anon_sym___FUNCTION__] = ACTIONS(3004),
    [anon_sym___LINE__] = ACTIONS(3004),
    [anon_sym___MODULE__] = ACTIONS(3004),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3004),
    [anon_sym___TIME__] = ACTIONS(3004),
    [anon_sym___TIMESTAMP__] = ACTIONS(3004),
    [anon_sym___VENDOR__] = ACTIONS(3004),
    [anon_sym___VERSION__] = ACTIONS(3004),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3006),
    [sym_float_literal] = ACTIONS(3006),
    [sym__string] = ACTIONS(3006),
  },
  [645] = {
    [sym_identifier] = ACTIONS(2988),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2990),
    [anon_sym_RBRACE] = ACTIONS(2990),
    [anon_sym_LBRACE] = ACTIONS(2990),
    [anon_sym_SLASH] = ACTIONS(2988),
    [anon_sym_SLASH_EQ] = ACTIONS(2990),
    [anon_sym_DOT] = ACTIONS(2988),
    [anon_sym_DOT_DOT] = ACTIONS(2988),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2990),
    [anon_sym_AMP] = ACTIONS(2988),
    [anon_sym_AMP_EQ] = ACTIONS(2990),
    [anon_sym_AMP_AMP] = ACTIONS(2990),
    [anon_sym_PIPE] = ACTIONS(2988),
    [anon_sym_PIPE_EQ] = ACTIONS(2990),
    [anon_sym_PIPE_PIPE] = ACTIONS(2990),
    [anon_sym_DASH] = ACTIONS(2988),
    [anon_sym_DASH_EQ] = ACTIONS(2990),
    [anon_sym_DASH_DASH] = ACTIONS(2990),
    [anon_sym_PLUS] = ACTIONS(2988),
    [anon_sym_PLUS_EQ] = ACTIONS(2990),
    [anon_sym_PLUS_PLUS] = ACTIONS(2990),
    [anon_sym_LT] = ACTIONS(2988),
    [anon_sym_LT_EQ] = ACTIONS(2990),
    [anon_sym_LT_LT] = ACTIONS(2988),
    [anon_sym_LT_LT_EQ] = ACTIONS(2990),
    [anon_sym_GT] = ACTIONS(2988),
    [anon_sym_GT_EQ] = ACTIONS(2990),
    [anon_sym_GT_GT_EQ] = ACTIONS(2990),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2990),
    [anon_sym_GT_GT] = ACTIONS(2988),
    [anon_sym_GT_GT_GT] = ACTIONS(2988),
    [anon_sym_BANG] = ACTIONS(2988),
    [anon_sym_BANG_EQ] = ACTIONS(2990),
    [anon_sym_LPAREN] = ACTIONS(2990),
    [anon_sym_RPAREN] = ACTIONS(2990),
    [anon_sym_LBRACK] = ACTIONS(2990),
    [anon_sym_RBRACK] = ACTIONS(2990),
    [anon_sym_QMARK] = ACTIONS(2990),
    [anon_sym_COMMA] = ACTIONS(2990),
    [anon_sym_SEMI] = ACTIONS(2990),
    [anon_sym_COLON] = ACTIONS(2990),
    [anon_sym_DOLLAR] = ACTIONS(2990),
    [anon_sym_EQ] = ACTIONS(2988),
    [anon_sym_EQ_EQ] = ACTIONS(2990),
    [anon_sym_STAR] = ACTIONS(2988),
    [anon_sym_STAR_EQ] = ACTIONS(2990),
    [anon_sym_PERCENT] = ACTIONS(2988),
    [anon_sym_PERCENT_EQ] = ACTIONS(2990),
    [anon_sym_CARET] = ACTIONS(2988),
    [anon_sym_CARET_EQ] = ACTIONS(2990),
    [anon_sym_CARET_CARET] = ACTIONS(2988),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2990),
    [anon_sym_TILDE] = ACTIONS(2988),
    [anon_sym_TILDE_EQ] = ACTIONS(2990),
    [anon_sym_AT] = ACTIONS(2990),
    [anon_sym_EQ_GT] = ACTIONS(2990),
    [anon_sym_POUND] = ACTIONS(2990),
    [anon_sym_BANGin] = ACTIONS(2990),
    [anon_sym_BANGis] = ACTIONS(2990),
    [sym_bool] = ACTIONS(2988),
    [sym_byte] = ACTIONS(2988),
    [sym_ubyte] = ACTIONS(2988),
    [sym_char] = ACTIONS(2988),
    [sym_short] = ACTIONS(2988),
    [sym_ushort] = ACTIONS(2988),
    [sym_int] = ACTIONS(2988),
    [sym_uint] = ACTIONS(2988),
    [sym_long] = ACTIONS(2988),
    [sym_ulong] = ACTIONS(2988),
    [sym_cent] = ACTIONS(2988),
    [sym_ucent] = ACTIONS(2988),
    [sym_wchar] = ACTIONS(2988),
    [sym_dchar] = ACTIONS(2988),
    [sym_float] = ACTIONS(2988),
    [sym_double] = ACTIONS(2988),
    [sym_real] = ACTIONS(2988),
    [sym_ifloat] = ACTIONS(2988),
    [sym_idouble] = ACTIONS(2988),
    [sym_ireal] = ACTIONS(2988),
    [sym_cfloat] = ACTIONS(2988),
    [sym_cdouble] = ACTIONS(2988),
    [sym_creal] = ACTIONS(2988),
    [sym_size_t] = ACTIONS(2988),
    [sym_ptrdiff_t] = ACTIONS(2988),
    [sym_string] = ACTIONS(2988),
    [sym_cstring] = ACTIONS(2988),
    [sym_dstring] = ACTIONS(2988),
    [sym_wstring] = ACTIONS(2988),
    [sym_noreturn] = ACTIONS(2988),
    [sym_true] = ACTIONS(2988),
    [sym_false] = ACTIONS(2988),
    [sym_null] = ACTIONS(2988),
    [sym_super] = ACTIONS(2988),
    [sym_this] = ACTIONS(2988),
    [sym_abstract] = ACTIONS(2988),
    [sym_alias] = ACTIONS(2988),
    [sym_align] = ACTIONS(2988),
    [sym_asm] = ACTIONS(2988),
    [sym_assert] = ACTIONS(2988),
    [sym_auto] = ACTIONS(2988),
    [sym_break] = ACTIONS(2988),
    [sym_case] = ACTIONS(2988),
    [sym_cast] = ACTIONS(2988),
    [sym_catch] = ACTIONS(2988),
    [sym_class] = ACTIONS(2988),
    [sym_const] = ACTIONS(2988),
    [sym_continue] = ACTIONS(2988),
    [sym_debug] = ACTIONS(2988),
    [sym_default] = ACTIONS(2988),
    [sym_delegate] = ACTIONS(2988),
    [sym_delete] = ACTIONS(2988),
    [sym_deprecated] = ACTIONS(2988),
    [sym_do] = ACTIONS(2988),
    [sym_else] = ACTIONS(2988),
    [sym_enum] = ACTIONS(2988),
    [sym_export] = ACTIONS(2988),
    [sym_extern] = ACTIONS(2988),
    [sym_final] = ACTIONS(2988),
    [sym_finally] = ACTIONS(2988),
    [sym_for] = ACTIONS(2988),
    [sym_foreach] = ACTIONS(2988),
    [sym_foreach_reverse] = ACTIONS(2988),
    [sym_function] = ACTIONS(2988),
    [sym_goto] = ACTIONS(2988),
    [sym_if] = ACTIONS(2988),
    [sym_immutable] = ACTIONS(2988),
    [sym_import] = ACTIONS(2988),
    [sym_in] = ACTIONS(2988),
    [sym_inout] = ACTIONS(2988),
    [sym_interface] = ACTIONS(2988),
    [sym_invariant] = ACTIONS(2988),
    [sym_is] = ACTIONS(2988),
    [sym_lazy] = ACTIONS(2988),
    [sym_mixin] = ACTIONS(2988),
    [sym_module] = ACTIONS(2988),
    [sym_new] = ACTIONS(2988),
    [sym_nothrow] = ACTIONS(2988),
    [sym_out] = ACTIONS(2988),
    [sym_override] = ACTIONS(2988),
    [sym_package] = ACTIONS(2988),
    [sym_pragma] = ACTIONS(2988),
    [sym_private] = ACTIONS(2988),
    [sym_protected] = ACTIONS(2988),
    [sym_public] = ACTIONS(2988),
    [sym_pure] = ACTIONS(2988),
    [sym_ref] = ACTIONS(2988),
    [sym_return] = ACTIONS(2988),
    [sym_scope] = ACTIONS(2988),
    [sym_shared] = ACTIONS(2988),
    [sym_static] = ACTIONS(2988),
    [sym_struct] = ACTIONS(2988),
    [sym_switch] = ACTIONS(2988),
    [sym_synchronized] = ACTIONS(2988),
    [sym_template] = ACTIONS(2988),
    [sym_throw] = ACTIONS(2988),
    [sym_try] = ACTIONS(2988),
    [sym_typeid] = ACTIONS(2988),
    [sym_typeof] = ACTIONS(2988),
    [sym_union] = ACTIONS(2988),
    [sym_unittest] = ACTIONS(2988),
    [sym_version] = ACTIONS(2988),
    [sym_while] = ACTIONS(2988),
    [sym_with] = ACTIONS(2988),
    [sym_parameters_] = ACTIONS(2988),
    [sym_gshared] = ACTIONS(2988),
    [sym_traits] = ACTIONS(2988),
    [sym_vector] = ACTIONS(2988),
    [sym_void] = ACTIONS(2988),
    [anon_sym_BQUOTE] = ACTIONS(2990),
    [anon_sym_r_DQUOTE] = ACTIONS(2990),
    [anon_sym_x_DQUOTE] = ACTIONS(2990),
    [anon_sym_DQUOTE] = ACTIONS(2990),
    [anon_sym_i_BQUOTE] = ACTIONS(2990),
    [anon_sym_i_DQUOTE] = ACTIONS(2990),
    [anon_sym_iq_LBRACE] = ACTIONS(2990),
    [aux_sym_char_literal_token1] = ACTIONS(2990),
    [anon_sym_SQUOTE] = ACTIONS(2988),
    [anon_sym___DATE__] = ACTIONS(2988),
    [anon_sym___FILE__] = ACTIONS(2988),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2988),
    [anon_sym___FUNCTION__] = ACTIONS(2988),
    [anon_sym___LINE__] = ACTIONS(2988),
    [anon_sym___MODULE__] = ACTIONS(2988),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2988),
    [anon_sym___TIME__] = ACTIONS(2988),
    [anon_sym___TIMESTAMP__] = ACTIONS(2988),
    [anon_sym___VENDOR__] = ACTIONS(2988),
    [anon_sym___VERSION__] = ACTIONS(2988),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2990),
    [sym_float_literal] = ACTIONS(2990),
    [sym__string] = ACTIONS(2990),
  },
  [646] = {
    [sym_identifier] = ACTIONS(3036),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3038),
    [anon_sym_RBRACE] = ACTIONS(3038),
    [anon_sym_LBRACE] = ACTIONS(3038),
    [anon_sym_SLASH] = ACTIONS(3036),
    [anon_sym_SLASH_EQ] = ACTIONS(3038),
    [anon_sym_DOT] = ACTIONS(3036),
    [anon_sym_DOT_DOT] = ACTIONS(3036),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3038),
    [anon_sym_AMP] = ACTIONS(3036),
    [anon_sym_AMP_EQ] = ACTIONS(3038),
    [anon_sym_AMP_AMP] = ACTIONS(3038),
    [anon_sym_PIPE] = ACTIONS(3036),
    [anon_sym_PIPE_EQ] = ACTIONS(3038),
    [anon_sym_PIPE_PIPE] = ACTIONS(3038),
    [anon_sym_DASH] = ACTIONS(3036),
    [anon_sym_DASH_EQ] = ACTIONS(3038),
    [anon_sym_DASH_DASH] = ACTIONS(3038),
    [anon_sym_PLUS] = ACTIONS(3036),
    [anon_sym_PLUS_EQ] = ACTIONS(3038),
    [anon_sym_PLUS_PLUS] = ACTIONS(3038),
    [anon_sym_LT] = ACTIONS(3036),
    [anon_sym_LT_EQ] = ACTIONS(3038),
    [anon_sym_LT_LT] = ACTIONS(3036),
    [anon_sym_LT_LT_EQ] = ACTIONS(3038),
    [anon_sym_GT] = ACTIONS(3036),
    [anon_sym_GT_EQ] = ACTIONS(3038),
    [anon_sym_GT_GT_EQ] = ACTIONS(3038),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3038),
    [anon_sym_GT_GT] = ACTIONS(3036),
    [anon_sym_GT_GT_GT] = ACTIONS(3036),
    [anon_sym_BANG] = ACTIONS(3036),
    [anon_sym_BANG_EQ] = ACTIONS(3038),
    [anon_sym_LPAREN] = ACTIONS(3038),
    [anon_sym_RPAREN] = ACTIONS(3038),
    [anon_sym_LBRACK] = ACTIONS(3038),
    [anon_sym_RBRACK] = ACTIONS(3038),
    [anon_sym_QMARK] = ACTIONS(3038),
    [anon_sym_COMMA] = ACTIONS(3038),
    [anon_sym_SEMI] = ACTIONS(3038),
    [anon_sym_COLON] = ACTIONS(3038),
    [anon_sym_DOLLAR] = ACTIONS(3038),
    [anon_sym_EQ] = ACTIONS(3036),
    [anon_sym_EQ_EQ] = ACTIONS(3038),
    [anon_sym_STAR] = ACTIONS(3036),
    [anon_sym_STAR_EQ] = ACTIONS(3038),
    [anon_sym_PERCENT] = ACTIONS(3036),
    [anon_sym_PERCENT_EQ] = ACTIONS(3038),
    [anon_sym_CARET] = ACTIONS(3036),
    [anon_sym_CARET_EQ] = ACTIONS(3038),
    [anon_sym_CARET_CARET] = ACTIONS(3036),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3038),
    [anon_sym_TILDE] = ACTIONS(3036),
    [anon_sym_TILDE_EQ] = ACTIONS(3038),
    [anon_sym_AT] = ACTIONS(3038),
    [anon_sym_EQ_GT] = ACTIONS(3038),
    [anon_sym_POUND] = ACTIONS(3038),
    [anon_sym_BANGin] = ACTIONS(3038),
    [anon_sym_BANGis] = ACTIONS(3038),
    [sym_bool] = ACTIONS(3036),
    [sym_byte] = ACTIONS(3036),
    [sym_ubyte] = ACTIONS(3036),
    [sym_char] = ACTIONS(3036),
    [sym_short] = ACTIONS(3036),
    [sym_ushort] = ACTIONS(3036),
    [sym_int] = ACTIONS(3036),
    [sym_uint] = ACTIONS(3036),
    [sym_long] = ACTIONS(3036),
    [sym_ulong] = ACTIONS(3036),
    [sym_cent] = ACTIONS(3036),
    [sym_ucent] = ACTIONS(3036),
    [sym_wchar] = ACTIONS(3036),
    [sym_dchar] = ACTIONS(3036),
    [sym_float] = ACTIONS(3036),
    [sym_double] = ACTIONS(3036),
    [sym_real] = ACTIONS(3036),
    [sym_ifloat] = ACTIONS(3036),
    [sym_idouble] = ACTIONS(3036),
    [sym_ireal] = ACTIONS(3036),
    [sym_cfloat] = ACTIONS(3036),
    [sym_cdouble] = ACTIONS(3036),
    [sym_creal] = ACTIONS(3036),
    [sym_size_t] = ACTIONS(3036),
    [sym_ptrdiff_t] = ACTIONS(3036),
    [sym_string] = ACTIONS(3036),
    [sym_cstring] = ACTIONS(3036),
    [sym_dstring] = ACTIONS(3036),
    [sym_wstring] = ACTIONS(3036),
    [sym_noreturn] = ACTIONS(3036),
    [sym_true] = ACTIONS(3036),
    [sym_false] = ACTIONS(3036),
    [sym_null] = ACTIONS(3036),
    [sym_super] = ACTIONS(3036),
    [sym_this] = ACTIONS(3036),
    [sym_abstract] = ACTIONS(3036),
    [sym_alias] = ACTIONS(3036),
    [sym_align] = ACTIONS(3036),
    [sym_asm] = ACTIONS(3036),
    [sym_assert] = ACTIONS(3036),
    [sym_auto] = ACTIONS(3036),
    [sym_break] = ACTIONS(3036),
    [sym_case] = ACTIONS(3036),
    [sym_cast] = ACTIONS(3036),
    [sym_catch] = ACTIONS(3036),
    [sym_class] = ACTIONS(3036),
    [sym_const] = ACTIONS(3036),
    [sym_continue] = ACTIONS(3036),
    [sym_debug] = ACTIONS(3036),
    [sym_default] = ACTIONS(3036),
    [sym_delegate] = ACTIONS(3036),
    [sym_delete] = ACTIONS(3036),
    [sym_deprecated] = ACTIONS(3036),
    [sym_do] = ACTIONS(3036),
    [sym_else] = ACTIONS(3036),
    [sym_enum] = ACTIONS(3036),
    [sym_export] = ACTIONS(3036),
    [sym_extern] = ACTIONS(3036),
    [sym_final] = ACTIONS(3036),
    [sym_finally] = ACTIONS(3036),
    [sym_for] = ACTIONS(3036),
    [sym_foreach] = ACTIONS(3036),
    [sym_foreach_reverse] = ACTIONS(3036),
    [sym_function] = ACTIONS(3036),
    [sym_goto] = ACTIONS(3036),
    [sym_if] = ACTIONS(3036),
    [sym_immutable] = ACTIONS(3036),
    [sym_import] = ACTIONS(3036),
    [sym_in] = ACTIONS(3036),
    [sym_inout] = ACTIONS(3036),
    [sym_interface] = ACTIONS(3036),
    [sym_invariant] = ACTIONS(3036),
    [sym_is] = ACTIONS(3036),
    [sym_lazy] = ACTIONS(3036),
    [sym_mixin] = ACTIONS(3036),
    [sym_module] = ACTIONS(3036),
    [sym_new] = ACTIONS(3036),
    [sym_nothrow] = ACTIONS(3036),
    [sym_out] = ACTIONS(3036),
    [sym_override] = ACTIONS(3036),
    [sym_package] = ACTIONS(3036),
    [sym_pragma] = ACTIONS(3036),
    [sym_private] = ACTIONS(3036),
    [sym_protected] = ACTIONS(3036),
    [sym_public] = ACTIONS(3036),
    [sym_pure] = ACTIONS(3036),
    [sym_ref] = ACTIONS(3036),
    [sym_return] = ACTIONS(3036),
    [sym_scope] = ACTIONS(3036),
    [sym_shared] = ACTIONS(3036),
    [sym_static] = ACTIONS(3036),
    [sym_struct] = ACTIONS(3036),
    [sym_switch] = ACTIONS(3036),
    [sym_synchronized] = ACTIONS(3036),
    [sym_template] = ACTIONS(3036),
    [sym_throw] = ACTIONS(3036),
    [sym_try] = ACTIONS(3036),
    [sym_typeid] = ACTIONS(3036),
    [sym_typeof] = ACTIONS(3036),
    [sym_union] = ACTIONS(3036),
    [sym_unittest] = ACTIONS(3036),
    [sym_version] = ACTIONS(3036),
    [sym_while] = ACTIONS(3036),
    [sym_with] = ACTIONS(3036),
    [sym_parameters_] = ACTIONS(3036),
    [sym_gshared] = ACTIONS(3036),
    [sym_traits] = ACTIONS(3036),
    [sym_vector] = ACTIONS(3036),
    [sym_void] = ACTIONS(3036),
    [anon_sym_BQUOTE] = ACTIONS(3038),
    [anon_sym_r_DQUOTE] = ACTIONS(3038),
    [anon_sym_x_DQUOTE] = ACTIONS(3038),
    [anon_sym_DQUOTE] = ACTIONS(3038),
    [anon_sym_i_BQUOTE] = ACTIONS(3038),
    [anon_sym_i_DQUOTE] = ACTIONS(3038),
    [anon_sym_iq_LBRACE] = ACTIONS(3038),
    [aux_sym_char_literal_token1] = ACTIONS(3038),
    [anon_sym_SQUOTE] = ACTIONS(3036),
    [anon_sym___DATE__] = ACTIONS(3036),
    [anon_sym___FILE__] = ACTIONS(3036),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3036),
    [anon_sym___FUNCTION__] = ACTIONS(3036),
    [anon_sym___LINE__] = ACTIONS(3036),
    [anon_sym___MODULE__] = ACTIONS(3036),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3036),
    [anon_sym___TIME__] = ACTIONS(3036),
    [anon_sym___TIMESTAMP__] = ACTIONS(3036),
    [anon_sym___VENDOR__] = ACTIONS(3036),
    [anon_sym___VERSION__] = ACTIONS(3036),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3038),
    [sym_float_literal] = ACTIONS(3038),
    [sym__string] = ACTIONS(3038),
  },
  [647] = {
    [sym_identifier] = ACTIONS(3016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3018),
    [anon_sym_RBRACE] = ACTIONS(3018),
    [anon_sym_LBRACE] = ACTIONS(3018),
    [anon_sym_SLASH] = ACTIONS(3016),
    [anon_sym_SLASH_EQ] = ACTIONS(3018),
    [anon_sym_DOT] = ACTIONS(3016),
    [anon_sym_DOT_DOT] = ACTIONS(3016),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3018),
    [anon_sym_AMP] = ACTIONS(3016),
    [anon_sym_AMP_EQ] = ACTIONS(3018),
    [anon_sym_AMP_AMP] = ACTIONS(3018),
    [anon_sym_PIPE] = ACTIONS(3016),
    [anon_sym_PIPE_EQ] = ACTIONS(3018),
    [anon_sym_PIPE_PIPE] = ACTIONS(3018),
    [anon_sym_DASH] = ACTIONS(3016),
    [anon_sym_DASH_EQ] = ACTIONS(3018),
    [anon_sym_DASH_DASH] = ACTIONS(3018),
    [anon_sym_PLUS] = ACTIONS(3016),
    [anon_sym_PLUS_EQ] = ACTIONS(3018),
    [anon_sym_PLUS_PLUS] = ACTIONS(3018),
    [anon_sym_LT] = ACTIONS(3016),
    [anon_sym_LT_EQ] = ACTIONS(3018),
    [anon_sym_LT_LT] = ACTIONS(3016),
    [anon_sym_LT_LT_EQ] = ACTIONS(3018),
    [anon_sym_GT] = ACTIONS(3016),
    [anon_sym_GT_EQ] = ACTIONS(3018),
    [anon_sym_GT_GT_EQ] = ACTIONS(3018),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3018),
    [anon_sym_GT_GT] = ACTIONS(3016),
    [anon_sym_GT_GT_GT] = ACTIONS(3016),
    [anon_sym_BANG] = ACTIONS(3016),
    [anon_sym_BANG_EQ] = ACTIONS(3018),
    [anon_sym_LPAREN] = ACTIONS(3018),
    [anon_sym_RPAREN] = ACTIONS(3018),
    [anon_sym_LBRACK] = ACTIONS(3018),
    [anon_sym_RBRACK] = ACTIONS(3018),
    [anon_sym_QMARK] = ACTIONS(3018),
    [anon_sym_COMMA] = ACTIONS(3018),
    [anon_sym_SEMI] = ACTIONS(3018),
    [anon_sym_COLON] = ACTIONS(3018),
    [anon_sym_DOLLAR] = ACTIONS(3018),
    [anon_sym_EQ] = ACTIONS(3016),
    [anon_sym_EQ_EQ] = ACTIONS(3018),
    [anon_sym_STAR] = ACTIONS(3016),
    [anon_sym_STAR_EQ] = ACTIONS(3018),
    [anon_sym_PERCENT] = ACTIONS(3016),
    [anon_sym_PERCENT_EQ] = ACTIONS(3018),
    [anon_sym_CARET] = ACTIONS(3016),
    [anon_sym_CARET_EQ] = ACTIONS(3018),
    [anon_sym_CARET_CARET] = ACTIONS(3016),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3018),
    [anon_sym_TILDE] = ACTIONS(3016),
    [anon_sym_TILDE_EQ] = ACTIONS(3018),
    [anon_sym_AT] = ACTIONS(3018),
    [anon_sym_EQ_GT] = ACTIONS(3018),
    [anon_sym_POUND] = ACTIONS(3018),
    [anon_sym_BANGin] = ACTIONS(3018),
    [anon_sym_BANGis] = ACTIONS(3018),
    [sym_bool] = ACTIONS(3016),
    [sym_byte] = ACTIONS(3016),
    [sym_ubyte] = ACTIONS(3016),
    [sym_char] = ACTIONS(3016),
    [sym_short] = ACTIONS(3016),
    [sym_ushort] = ACTIONS(3016),
    [sym_int] = ACTIONS(3016),
    [sym_uint] = ACTIONS(3016),
    [sym_long] = ACTIONS(3016),
    [sym_ulong] = ACTIONS(3016),
    [sym_cent] = ACTIONS(3016),
    [sym_ucent] = ACTIONS(3016),
    [sym_wchar] = ACTIONS(3016),
    [sym_dchar] = ACTIONS(3016),
    [sym_float] = ACTIONS(3016),
    [sym_double] = ACTIONS(3016),
    [sym_real] = ACTIONS(3016),
    [sym_ifloat] = ACTIONS(3016),
    [sym_idouble] = ACTIONS(3016),
    [sym_ireal] = ACTIONS(3016),
    [sym_cfloat] = ACTIONS(3016),
    [sym_cdouble] = ACTIONS(3016),
    [sym_creal] = ACTIONS(3016),
    [sym_size_t] = ACTIONS(3016),
    [sym_ptrdiff_t] = ACTIONS(3016),
    [sym_string] = ACTIONS(3016),
    [sym_cstring] = ACTIONS(3016),
    [sym_dstring] = ACTIONS(3016),
    [sym_wstring] = ACTIONS(3016),
    [sym_noreturn] = ACTIONS(3016),
    [sym_true] = ACTIONS(3016),
    [sym_false] = ACTIONS(3016),
    [sym_null] = ACTIONS(3016),
    [sym_super] = ACTIONS(3016),
    [sym_this] = ACTIONS(3016),
    [sym_abstract] = ACTIONS(3016),
    [sym_alias] = ACTIONS(3016),
    [sym_align] = ACTIONS(3016),
    [sym_asm] = ACTIONS(3016),
    [sym_assert] = ACTIONS(3016),
    [sym_auto] = ACTIONS(3016),
    [sym_break] = ACTIONS(3016),
    [sym_case] = ACTIONS(3016),
    [sym_cast] = ACTIONS(3016),
    [sym_catch] = ACTIONS(3016),
    [sym_class] = ACTIONS(3016),
    [sym_const] = ACTIONS(3016),
    [sym_continue] = ACTIONS(3016),
    [sym_debug] = ACTIONS(3016),
    [sym_default] = ACTIONS(3016),
    [sym_delegate] = ACTIONS(3016),
    [sym_delete] = ACTIONS(3016),
    [sym_deprecated] = ACTIONS(3016),
    [sym_do] = ACTIONS(3016),
    [sym_else] = ACTIONS(3016),
    [sym_enum] = ACTIONS(3016),
    [sym_export] = ACTIONS(3016),
    [sym_extern] = ACTIONS(3016),
    [sym_final] = ACTIONS(3016),
    [sym_finally] = ACTIONS(3016),
    [sym_for] = ACTIONS(3016),
    [sym_foreach] = ACTIONS(3016),
    [sym_foreach_reverse] = ACTIONS(3016),
    [sym_function] = ACTIONS(3016),
    [sym_goto] = ACTIONS(3016),
    [sym_if] = ACTIONS(3016),
    [sym_immutable] = ACTIONS(3016),
    [sym_import] = ACTIONS(3016),
    [sym_in] = ACTIONS(3016),
    [sym_inout] = ACTIONS(3016),
    [sym_interface] = ACTIONS(3016),
    [sym_invariant] = ACTIONS(3016),
    [sym_is] = ACTIONS(3016),
    [sym_lazy] = ACTIONS(3016),
    [sym_mixin] = ACTIONS(3016),
    [sym_module] = ACTIONS(3016),
    [sym_new] = ACTIONS(3016),
    [sym_nothrow] = ACTIONS(3016),
    [sym_out] = ACTIONS(3016),
    [sym_override] = ACTIONS(3016),
    [sym_package] = ACTIONS(3016),
    [sym_pragma] = ACTIONS(3016),
    [sym_private] = ACTIONS(3016),
    [sym_protected] = ACTIONS(3016),
    [sym_public] = ACTIONS(3016),
    [sym_pure] = ACTIONS(3016),
    [sym_ref] = ACTIONS(3016),
    [sym_return] = ACTIONS(3016),
    [sym_scope] = ACTIONS(3016),
    [sym_shared] = ACTIONS(3016),
    [sym_static] = ACTIONS(3016),
    [sym_struct] = ACTIONS(3016),
    [sym_switch] = ACTIONS(3016),
    [sym_synchronized] = ACTIONS(3016),
    [sym_template] = ACTIONS(3016),
    [sym_throw] = ACTIONS(3016),
    [sym_try] = ACTIONS(3016),
    [sym_typeid] = ACTIONS(3016),
    [sym_typeof] = ACTIONS(3016),
    [sym_union] = ACTIONS(3016),
    [sym_unittest] = ACTIONS(3016),
    [sym_version] = ACTIONS(3016),
    [sym_while] = ACTIONS(3016),
    [sym_with] = ACTIONS(3016),
    [sym_parameters_] = ACTIONS(3016),
    [sym_gshared] = ACTIONS(3016),
    [sym_traits] = ACTIONS(3016),
    [sym_vector] = ACTIONS(3016),
    [sym_void] = ACTIONS(3016),
    [anon_sym_BQUOTE] = ACTIONS(3018),
    [anon_sym_r_DQUOTE] = ACTIONS(3018),
    [anon_sym_x_DQUOTE] = ACTIONS(3018),
    [anon_sym_DQUOTE] = ACTIONS(3018),
    [anon_sym_i_BQUOTE] = ACTIONS(3018),
    [anon_sym_i_DQUOTE] = ACTIONS(3018),
    [anon_sym_iq_LBRACE] = ACTIONS(3018),
    [aux_sym_char_literal_token1] = ACTIONS(3018),
    [anon_sym_SQUOTE] = ACTIONS(3016),
    [anon_sym___DATE__] = ACTIONS(3016),
    [anon_sym___FILE__] = ACTIONS(3016),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3016),
    [anon_sym___FUNCTION__] = ACTIONS(3016),
    [anon_sym___LINE__] = ACTIONS(3016),
    [anon_sym___MODULE__] = ACTIONS(3016),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3016),
    [anon_sym___TIME__] = ACTIONS(3016),
    [anon_sym___TIMESTAMP__] = ACTIONS(3016),
    [anon_sym___VENDOR__] = ACTIONS(3016),
    [anon_sym___VERSION__] = ACTIONS(3016),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3018),
    [sym_float_literal] = ACTIONS(3018),
    [sym__string] = ACTIONS(3018),
  },
  [648] = {
    [sym_identifier] = ACTIONS(3040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3042),
    [anon_sym_RBRACE] = ACTIONS(3042),
    [anon_sym_LBRACE] = ACTIONS(3042),
    [anon_sym_SLASH] = ACTIONS(3040),
    [anon_sym_SLASH_EQ] = ACTIONS(3042),
    [anon_sym_DOT] = ACTIONS(3040),
    [anon_sym_DOT_DOT] = ACTIONS(3040),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3042),
    [anon_sym_AMP] = ACTIONS(3040),
    [anon_sym_AMP_EQ] = ACTIONS(3042),
    [anon_sym_AMP_AMP] = ACTIONS(3042),
    [anon_sym_PIPE] = ACTIONS(3040),
    [anon_sym_PIPE_EQ] = ACTIONS(3042),
    [anon_sym_PIPE_PIPE] = ACTIONS(3042),
    [anon_sym_DASH] = ACTIONS(3040),
    [anon_sym_DASH_EQ] = ACTIONS(3042),
    [anon_sym_DASH_DASH] = ACTIONS(3042),
    [anon_sym_PLUS] = ACTIONS(3040),
    [anon_sym_PLUS_EQ] = ACTIONS(3042),
    [anon_sym_PLUS_PLUS] = ACTIONS(3042),
    [anon_sym_LT] = ACTIONS(3040),
    [anon_sym_LT_EQ] = ACTIONS(3042),
    [anon_sym_LT_LT] = ACTIONS(3040),
    [anon_sym_LT_LT_EQ] = ACTIONS(3042),
    [anon_sym_GT] = ACTIONS(3040),
    [anon_sym_GT_EQ] = ACTIONS(3042),
    [anon_sym_GT_GT_EQ] = ACTIONS(3042),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3042),
    [anon_sym_GT_GT] = ACTIONS(3040),
    [anon_sym_GT_GT_GT] = ACTIONS(3040),
    [anon_sym_BANG] = ACTIONS(3040),
    [anon_sym_BANG_EQ] = ACTIONS(3042),
    [anon_sym_LPAREN] = ACTIONS(3042),
    [anon_sym_RPAREN] = ACTIONS(3042),
    [anon_sym_LBRACK] = ACTIONS(3042),
    [anon_sym_RBRACK] = ACTIONS(3042),
    [anon_sym_QMARK] = ACTIONS(3042),
    [anon_sym_COMMA] = ACTIONS(3042),
    [anon_sym_SEMI] = ACTIONS(3042),
    [anon_sym_COLON] = ACTIONS(3042),
    [anon_sym_DOLLAR] = ACTIONS(3042),
    [anon_sym_EQ] = ACTIONS(3040),
    [anon_sym_EQ_EQ] = ACTIONS(3042),
    [anon_sym_STAR] = ACTIONS(3040),
    [anon_sym_STAR_EQ] = ACTIONS(3042),
    [anon_sym_PERCENT] = ACTIONS(3040),
    [anon_sym_PERCENT_EQ] = ACTIONS(3042),
    [anon_sym_CARET] = ACTIONS(3040),
    [anon_sym_CARET_EQ] = ACTIONS(3042),
    [anon_sym_CARET_CARET] = ACTIONS(3040),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3042),
    [anon_sym_TILDE] = ACTIONS(3040),
    [anon_sym_TILDE_EQ] = ACTIONS(3042),
    [anon_sym_AT] = ACTIONS(3042),
    [anon_sym_EQ_GT] = ACTIONS(3042),
    [anon_sym_POUND] = ACTIONS(3042),
    [anon_sym_BANGin] = ACTIONS(3042),
    [anon_sym_BANGis] = ACTIONS(3042),
    [sym_bool] = ACTIONS(3040),
    [sym_byte] = ACTIONS(3040),
    [sym_ubyte] = ACTIONS(3040),
    [sym_char] = ACTIONS(3040),
    [sym_short] = ACTIONS(3040),
    [sym_ushort] = ACTIONS(3040),
    [sym_int] = ACTIONS(3040),
    [sym_uint] = ACTIONS(3040),
    [sym_long] = ACTIONS(3040),
    [sym_ulong] = ACTIONS(3040),
    [sym_cent] = ACTIONS(3040),
    [sym_ucent] = ACTIONS(3040),
    [sym_wchar] = ACTIONS(3040),
    [sym_dchar] = ACTIONS(3040),
    [sym_float] = ACTIONS(3040),
    [sym_double] = ACTIONS(3040),
    [sym_real] = ACTIONS(3040),
    [sym_ifloat] = ACTIONS(3040),
    [sym_idouble] = ACTIONS(3040),
    [sym_ireal] = ACTIONS(3040),
    [sym_cfloat] = ACTIONS(3040),
    [sym_cdouble] = ACTIONS(3040),
    [sym_creal] = ACTIONS(3040),
    [sym_size_t] = ACTIONS(3040),
    [sym_ptrdiff_t] = ACTIONS(3040),
    [sym_string] = ACTIONS(3040),
    [sym_cstring] = ACTIONS(3040),
    [sym_dstring] = ACTIONS(3040),
    [sym_wstring] = ACTIONS(3040),
    [sym_noreturn] = ACTIONS(3040),
    [sym_true] = ACTIONS(3040),
    [sym_false] = ACTIONS(3040),
    [sym_null] = ACTIONS(3040),
    [sym_super] = ACTIONS(3040),
    [sym_this] = ACTIONS(3040),
    [sym_abstract] = ACTIONS(3040),
    [sym_alias] = ACTIONS(3040),
    [sym_align] = ACTIONS(3040),
    [sym_asm] = ACTIONS(3040),
    [sym_assert] = ACTIONS(3040),
    [sym_auto] = ACTIONS(3040),
    [sym_break] = ACTIONS(3040),
    [sym_case] = ACTIONS(3040),
    [sym_cast] = ACTIONS(3040),
    [sym_catch] = ACTIONS(3040),
    [sym_class] = ACTIONS(3040),
    [sym_const] = ACTIONS(3040),
    [sym_continue] = ACTIONS(3040),
    [sym_debug] = ACTIONS(3040),
    [sym_default] = ACTIONS(3040),
    [sym_delegate] = ACTIONS(3040),
    [sym_delete] = ACTIONS(3040),
    [sym_deprecated] = ACTIONS(3040),
    [sym_do] = ACTIONS(3040),
    [sym_else] = ACTIONS(3040),
    [sym_enum] = ACTIONS(3040),
    [sym_export] = ACTIONS(3040),
    [sym_extern] = ACTIONS(3040),
    [sym_final] = ACTIONS(3040),
    [sym_finally] = ACTIONS(3040),
    [sym_for] = ACTIONS(3040),
    [sym_foreach] = ACTIONS(3040),
    [sym_foreach_reverse] = ACTIONS(3040),
    [sym_function] = ACTIONS(3040),
    [sym_goto] = ACTIONS(3040),
    [sym_if] = ACTIONS(3040),
    [sym_immutable] = ACTIONS(3040),
    [sym_import] = ACTIONS(3040),
    [sym_in] = ACTIONS(3040),
    [sym_inout] = ACTIONS(3040),
    [sym_interface] = ACTIONS(3040),
    [sym_invariant] = ACTIONS(3040),
    [sym_is] = ACTIONS(3040),
    [sym_lazy] = ACTIONS(3040),
    [sym_mixin] = ACTIONS(3040),
    [sym_module] = ACTIONS(3040),
    [sym_new] = ACTIONS(3040),
    [sym_nothrow] = ACTIONS(3040),
    [sym_out] = ACTIONS(3040),
    [sym_override] = ACTIONS(3040),
    [sym_package] = ACTIONS(3040),
    [sym_pragma] = ACTIONS(3040),
    [sym_private] = ACTIONS(3040),
    [sym_protected] = ACTIONS(3040),
    [sym_public] = ACTIONS(3040),
    [sym_pure] = ACTIONS(3040),
    [sym_ref] = ACTIONS(3040),
    [sym_return] = ACTIONS(3040),
    [sym_scope] = ACTIONS(3040),
    [sym_shared] = ACTIONS(3040),
    [sym_static] = ACTIONS(3040),
    [sym_struct] = ACTIONS(3040),
    [sym_switch] = ACTIONS(3040),
    [sym_synchronized] = ACTIONS(3040),
    [sym_template] = ACTIONS(3040),
    [sym_throw] = ACTIONS(3040),
    [sym_try] = ACTIONS(3040),
    [sym_typeid] = ACTIONS(3040),
    [sym_typeof] = ACTIONS(3040),
    [sym_union] = ACTIONS(3040),
    [sym_unittest] = ACTIONS(3040),
    [sym_version] = ACTIONS(3040),
    [sym_while] = ACTIONS(3040),
    [sym_with] = ACTIONS(3040),
    [sym_parameters_] = ACTIONS(3040),
    [sym_gshared] = ACTIONS(3040),
    [sym_traits] = ACTIONS(3040),
    [sym_vector] = ACTIONS(3040),
    [sym_void] = ACTIONS(3040),
    [anon_sym_BQUOTE] = ACTIONS(3042),
    [anon_sym_r_DQUOTE] = ACTIONS(3042),
    [anon_sym_x_DQUOTE] = ACTIONS(3042),
    [anon_sym_DQUOTE] = ACTIONS(3042),
    [anon_sym_i_BQUOTE] = ACTIONS(3042),
    [anon_sym_i_DQUOTE] = ACTIONS(3042),
    [anon_sym_iq_LBRACE] = ACTIONS(3042),
    [aux_sym_char_literal_token1] = ACTIONS(3042),
    [anon_sym_SQUOTE] = ACTIONS(3040),
    [anon_sym___DATE__] = ACTIONS(3040),
    [anon_sym___FILE__] = ACTIONS(3040),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3040),
    [anon_sym___FUNCTION__] = ACTIONS(3040),
    [anon_sym___LINE__] = ACTIONS(3040),
    [anon_sym___MODULE__] = ACTIONS(3040),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3040),
    [anon_sym___TIME__] = ACTIONS(3040),
    [anon_sym___TIMESTAMP__] = ACTIONS(3040),
    [anon_sym___VENDOR__] = ACTIONS(3040),
    [anon_sym___VERSION__] = ACTIONS(3040),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3042),
    [sym_float_literal] = ACTIONS(3042),
    [sym__string] = ACTIONS(3042),
  },
  [649] = {
    [sym_identifier] = ACTIONS(2996),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2998),
    [anon_sym_RBRACE] = ACTIONS(2998),
    [anon_sym_LBRACE] = ACTIONS(2998),
    [anon_sym_SLASH] = ACTIONS(2996),
    [anon_sym_SLASH_EQ] = ACTIONS(2998),
    [anon_sym_DOT] = ACTIONS(2996),
    [anon_sym_DOT_DOT] = ACTIONS(2996),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2998),
    [anon_sym_AMP] = ACTIONS(2996),
    [anon_sym_AMP_EQ] = ACTIONS(2998),
    [anon_sym_AMP_AMP] = ACTIONS(2998),
    [anon_sym_PIPE] = ACTIONS(2996),
    [anon_sym_PIPE_EQ] = ACTIONS(2998),
    [anon_sym_PIPE_PIPE] = ACTIONS(2998),
    [anon_sym_DASH] = ACTIONS(2996),
    [anon_sym_DASH_EQ] = ACTIONS(2998),
    [anon_sym_DASH_DASH] = ACTIONS(2998),
    [anon_sym_PLUS] = ACTIONS(2996),
    [anon_sym_PLUS_EQ] = ACTIONS(2998),
    [anon_sym_PLUS_PLUS] = ACTIONS(2998),
    [anon_sym_LT] = ACTIONS(2996),
    [anon_sym_LT_EQ] = ACTIONS(2998),
    [anon_sym_LT_LT] = ACTIONS(2996),
    [anon_sym_LT_LT_EQ] = ACTIONS(2998),
    [anon_sym_GT] = ACTIONS(2996),
    [anon_sym_GT_EQ] = ACTIONS(2998),
    [anon_sym_GT_GT_EQ] = ACTIONS(2998),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2998),
    [anon_sym_GT_GT] = ACTIONS(2996),
    [anon_sym_GT_GT_GT] = ACTIONS(2996),
    [anon_sym_BANG] = ACTIONS(2996),
    [anon_sym_BANG_EQ] = ACTIONS(2998),
    [anon_sym_LPAREN] = ACTIONS(2998),
    [anon_sym_RPAREN] = ACTIONS(2998),
    [anon_sym_LBRACK] = ACTIONS(2998),
    [anon_sym_RBRACK] = ACTIONS(2998),
    [anon_sym_QMARK] = ACTIONS(2998),
    [anon_sym_COMMA] = ACTIONS(2998),
    [anon_sym_SEMI] = ACTIONS(2998),
    [anon_sym_COLON] = ACTIONS(2998),
    [anon_sym_DOLLAR] = ACTIONS(2998),
    [anon_sym_EQ] = ACTIONS(2996),
    [anon_sym_EQ_EQ] = ACTIONS(2998),
    [anon_sym_STAR] = ACTIONS(2996),
    [anon_sym_STAR_EQ] = ACTIONS(2998),
    [anon_sym_PERCENT] = ACTIONS(2996),
    [anon_sym_PERCENT_EQ] = ACTIONS(2998),
    [anon_sym_CARET] = ACTIONS(2996),
    [anon_sym_CARET_EQ] = ACTIONS(2998),
    [anon_sym_CARET_CARET] = ACTIONS(2996),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2998),
    [anon_sym_TILDE] = ACTIONS(2996),
    [anon_sym_TILDE_EQ] = ACTIONS(2998),
    [anon_sym_AT] = ACTIONS(2998),
    [anon_sym_EQ_GT] = ACTIONS(2998),
    [anon_sym_POUND] = ACTIONS(2998),
    [anon_sym_BANGin] = ACTIONS(2998),
    [anon_sym_BANGis] = ACTIONS(2998),
    [sym_bool] = ACTIONS(2996),
    [sym_byte] = ACTIONS(2996),
    [sym_ubyte] = ACTIONS(2996),
    [sym_char] = ACTIONS(2996),
    [sym_short] = ACTIONS(2996),
    [sym_ushort] = ACTIONS(2996),
    [sym_int] = ACTIONS(2996),
    [sym_uint] = ACTIONS(2996),
    [sym_long] = ACTIONS(2996),
    [sym_ulong] = ACTIONS(2996),
    [sym_cent] = ACTIONS(2996),
    [sym_ucent] = ACTIONS(2996),
    [sym_wchar] = ACTIONS(2996),
    [sym_dchar] = ACTIONS(2996),
    [sym_float] = ACTIONS(2996),
    [sym_double] = ACTIONS(2996),
    [sym_real] = ACTIONS(2996),
    [sym_ifloat] = ACTIONS(2996),
    [sym_idouble] = ACTIONS(2996),
    [sym_ireal] = ACTIONS(2996),
    [sym_cfloat] = ACTIONS(2996),
    [sym_cdouble] = ACTIONS(2996),
    [sym_creal] = ACTIONS(2996),
    [sym_size_t] = ACTIONS(2996),
    [sym_ptrdiff_t] = ACTIONS(2996),
    [sym_string] = ACTIONS(2996),
    [sym_cstring] = ACTIONS(2996),
    [sym_dstring] = ACTIONS(2996),
    [sym_wstring] = ACTIONS(2996),
    [sym_noreturn] = ACTIONS(2996),
    [sym_true] = ACTIONS(2996),
    [sym_false] = ACTIONS(2996),
    [sym_null] = ACTIONS(2996),
    [sym_super] = ACTIONS(2996),
    [sym_this] = ACTIONS(2996),
    [sym_abstract] = ACTIONS(2996),
    [sym_alias] = ACTIONS(2996),
    [sym_align] = ACTIONS(2996),
    [sym_asm] = ACTIONS(2996),
    [sym_assert] = ACTIONS(2996),
    [sym_auto] = ACTIONS(2996),
    [sym_break] = ACTIONS(2996),
    [sym_case] = ACTIONS(2996),
    [sym_cast] = ACTIONS(2996),
    [sym_catch] = ACTIONS(2996),
    [sym_class] = ACTIONS(2996),
    [sym_const] = ACTIONS(2996),
    [sym_continue] = ACTIONS(2996),
    [sym_debug] = ACTIONS(2996),
    [sym_default] = ACTIONS(2996),
    [sym_delegate] = ACTIONS(2996),
    [sym_delete] = ACTIONS(2996),
    [sym_deprecated] = ACTIONS(2996),
    [sym_do] = ACTIONS(2996),
    [sym_else] = ACTIONS(2996),
    [sym_enum] = ACTIONS(2996),
    [sym_export] = ACTIONS(2996),
    [sym_extern] = ACTIONS(2996),
    [sym_final] = ACTIONS(2996),
    [sym_finally] = ACTIONS(2996),
    [sym_for] = ACTIONS(2996),
    [sym_foreach] = ACTIONS(2996),
    [sym_foreach_reverse] = ACTIONS(2996),
    [sym_function] = ACTIONS(2996),
    [sym_goto] = ACTIONS(2996),
    [sym_if] = ACTIONS(2996),
    [sym_immutable] = ACTIONS(2996),
    [sym_import] = ACTIONS(2996),
    [sym_in] = ACTIONS(2996),
    [sym_inout] = ACTIONS(2996),
    [sym_interface] = ACTIONS(2996),
    [sym_invariant] = ACTIONS(2996),
    [sym_is] = ACTIONS(2996),
    [sym_lazy] = ACTIONS(2996),
    [sym_mixin] = ACTIONS(2996),
    [sym_module] = ACTIONS(2996),
    [sym_new] = ACTIONS(2996),
    [sym_nothrow] = ACTIONS(2996),
    [sym_out] = ACTIONS(2996),
    [sym_override] = ACTIONS(2996),
    [sym_package] = ACTIONS(2996),
    [sym_pragma] = ACTIONS(2996),
    [sym_private] = ACTIONS(2996),
    [sym_protected] = ACTIONS(2996),
    [sym_public] = ACTIONS(2996),
    [sym_pure] = ACTIONS(2996),
    [sym_ref] = ACTIONS(2996),
    [sym_return] = ACTIONS(2996),
    [sym_scope] = ACTIONS(2996),
    [sym_shared] = ACTIONS(2996),
    [sym_static] = ACTIONS(2996),
    [sym_struct] = ACTIONS(2996),
    [sym_switch] = ACTIONS(2996),
    [sym_synchronized] = ACTIONS(2996),
    [sym_template] = ACTIONS(2996),
    [sym_throw] = ACTIONS(2996),
    [sym_try] = ACTIONS(2996),
    [sym_typeid] = ACTIONS(2996),
    [sym_typeof] = ACTIONS(2996),
    [sym_union] = ACTIONS(2996),
    [sym_unittest] = ACTIONS(2996),
    [sym_version] = ACTIONS(2996),
    [sym_while] = ACTIONS(2996),
    [sym_with] = ACTIONS(2996),
    [sym_parameters_] = ACTIONS(2996),
    [sym_gshared] = ACTIONS(2996),
    [sym_traits] = ACTIONS(2996),
    [sym_vector] = ACTIONS(2996),
    [sym_void] = ACTIONS(2996),
    [anon_sym_BQUOTE] = ACTIONS(2998),
    [anon_sym_r_DQUOTE] = ACTIONS(2998),
    [anon_sym_x_DQUOTE] = ACTIONS(2998),
    [anon_sym_DQUOTE] = ACTIONS(2998),
    [anon_sym_i_BQUOTE] = ACTIONS(2998),
    [anon_sym_i_DQUOTE] = ACTIONS(2998),
    [anon_sym_iq_LBRACE] = ACTIONS(2998),
    [aux_sym_char_literal_token1] = ACTIONS(2998),
    [anon_sym_SQUOTE] = ACTIONS(2996),
    [anon_sym___DATE__] = ACTIONS(2996),
    [anon_sym___FILE__] = ACTIONS(2996),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2996),
    [anon_sym___FUNCTION__] = ACTIONS(2996),
    [anon_sym___LINE__] = ACTIONS(2996),
    [anon_sym___MODULE__] = ACTIONS(2996),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2996),
    [anon_sym___TIME__] = ACTIONS(2996),
    [anon_sym___TIMESTAMP__] = ACTIONS(2996),
    [anon_sym___VENDOR__] = ACTIONS(2996),
    [anon_sym___VERSION__] = ACTIONS(2996),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2998),
    [sym_float_literal] = ACTIONS(2998),
    [sym__string] = ACTIONS(2998),
  },
  [650] = {
    [sym_identifier] = ACTIONS(3000),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3002),
    [anon_sym_RBRACE] = ACTIONS(3002),
    [anon_sym_LBRACE] = ACTIONS(3002),
    [anon_sym_SLASH] = ACTIONS(3000),
    [anon_sym_SLASH_EQ] = ACTIONS(3002),
    [anon_sym_DOT] = ACTIONS(3000),
    [anon_sym_DOT_DOT] = ACTIONS(3000),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3002),
    [anon_sym_AMP] = ACTIONS(3000),
    [anon_sym_AMP_EQ] = ACTIONS(3002),
    [anon_sym_AMP_AMP] = ACTIONS(3002),
    [anon_sym_PIPE] = ACTIONS(3000),
    [anon_sym_PIPE_EQ] = ACTIONS(3002),
    [anon_sym_PIPE_PIPE] = ACTIONS(3002),
    [anon_sym_DASH] = ACTIONS(3000),
    [anon_sym_DASH_EQ] = ACTIONS(3002),
    [anon_sym_DASH_DASH] = ACTIONS(3002),
    [anon_sym_PLUS] = ACTIONS(3000),
    [anon_sym_PLUS_EQ] = ACTIONS(3002),
    [anon_sym_PLUS_PLUS] = ACTIONS(3002),
    [anon_sym_LT] = ACTIONS(3000),
    [anon_sym_LT_EQ] = ACTIONS(3002),
    [anon_sym_LT_LT] = ACTIONS(3000),
    [anon_sym_LT_LT_EQ] = ACTIONS(3002),
    [anon_sym_GT] = ACTIONS(3000),
    [anon_sym_GT_EQ] = ACTIONS(3002),
    [anon_sym_GT_GT_EQ] = ACTIONS(3002),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3002),
    [anon_sym_GT_GT] = ACTIONS(3000),
    [anon_sym_GT_GT_GT] = ACTIONS(3000),
    [anon_sym_BANG] = ACTIONS(3000),
    [anon_sym_BANG_EQ] = ACTIONS(3002),
    [anon_sym_LPAREN] = ACTIONS(3002),
    [anon_sym_RPAREN] = ACTIONS(3002),
    [anon_sym_LBRACK] = ACTIONS(3002),
    [anon_sym_RBRACK] = ACTIONS(3002),
    [anon_sym_QMARK] = ACTIONS(3002),
    [anon_sym_COMMA] = ACTIONS(3002),
    [anon_sym_SEMI] = ACTIONS(3002),
    [anon_sym_COLON] = ACTIONS(3002),
    [anon_sym_DOLLAR] = ACTIONS(3002),
    [anon_sym_EQ] = ACTIONS(3000),
    [anon_sym_EQ_EQ] = ACTIONS(3002),
    [anon_sym_STAR] = ACTIONS(3000),
    [anon_sym_STAR_EQ] = ACTIONS(3002),
    [anon_sym_PERCENT] = ACTIONS(3000),
    [anon_sym_PERCENT_EQ] = ACTIONS(3002),
    [anon_sym_CARET] = ACTIONS(3000),
    [anon_sym_CARET_EQ] = ACTIONS(3002),
    [anon_sym_CARET_CARET] = ACTIONS(3000),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3002),
    [anon_sym_TILDE] = ACTIONS(3000),
    [anon_sym_TILDE_EQ] = ACTIONS(3002),
    [anon_sym_AT] = ACTIONS(3002),
    [anon_sym_EQ_GT] = ACTIONS(3002),
    [anon_sym_POUND] = ACTIONS(3002),
    [anon_sym_BANGin] = ACTIONS(3002),
    [anon_sym_BANGis] = ACTIONS(3002),
    [sym_bool] = ACTIONS(3000),
    [sym_byte] = ACTIONS(3000),
    [sym_ubyte] = ACTIONS(3000),
    [sym_char] = ACTIONS(3000),
    [sym_short] = ACTIONS(3000),
    [sym_ushort] = ACTIONS(3000),
    [sym_int] = ACTIONS(3000),
    [sym_uint] = ACTIONS(3000),
    [sym_long] = ACTIONS(3000),
    [sym_ulong] = ACTIONS(3000),
    [sym_cent] = ACTIONS(3000),
    [sym_ucent] = ACTIONS(3000),
    [sym_wchar] = ACTIONS(3000),
    [sym_dchar] = ACTIONS(3000),
    [sym_float] = ACTIONS(3000),
    [sym_double] = ACTIONS(3000),
    [sym_real] = ACTIONS(3000),
    [sym_ifloat] = ACTIONS(3000),
    [sym_idouble] = ACTIONS(3000),
    [sym_ireal] = ACTIONS(3000),
    [sym_cfloat] = ACTIONS(3000),
    [sym_cdouble] = ACTIONS(3000),
    [sym_creal] = ACTIONS(3000),
    [sym_size_t] = ACTIONS(3000),
    [sym_ptrdiff_t] = ACTIONS(3000),
    [sym_string] = ACTIONS(3000),
    [sym_cstring] = ACTIONS(3000),
    [sym_dstring] = ACTIONS(3000),
    [sym_wstring] = ACTIONS(3000),
    [sym_noreturn] = ACTIONS(3000),
    [sym_true] = ACTIONS(3000),
    [sym_false] = ACTIONS(3000),
    [sym_null] = ACTIONS(3000),
    [sym_super] = ACTIONS(3000),
    [sym_this] = ACTIONS(3000),
    [sym_abstract] = ACTIONS(3000),
    [sym_alias] = ACTIONS(3000),
    [sym_align] = ACTIONS(3000),
    [sym_asm] = ACTIONS(3000),
    [sym_assert] = ACTIONS(3000),
    [sym_auto] = ACTIONS(3000),
    [sym_break] = ACTIONS(3000),
    [sym_case] = ACTIONS(3000),
    [sym_cast] = ACTIONS(3000),
    [sym_catch] = ACTIONS(3000),
    [sym_class] = ACTIONS(3000),
    [sym_const] = ACTIONS(3000),
    [sym_continue] = ACTIONS(3000),
    [sym_debug] = ACTIONS(3000),
    [sym_default] = ACTIONS(3000),
    [sym_delegate] = ACTIONS(3000),
    [sym_delete] = ACTIONS(3000),
    [sym_deprecated] = ACTIONS(3000),
    [sym_do] = ACTIONS(3000),
    [sym_else] = ACTIONS(3000),
    [sym_enum] = ACTIONS(3000),
    [sym_export] = ACTIONS(3000),
    [sym_extern] = ACTIONS(3000),
    [sym_final] = ACTIONS(3000),
    [sym_finally] = ACTIONS(3000),
    [sym_for] = ACTIONS(3000),
    [sym_foreach] = ACTIONS(3000),
    [sym_foreach_reverse] = ACTIONS(3000),
    [sym_function] = ACTIONS(3000),
    [sym_goto] = ACTIONS(3000),
    [sym_if] = ACTIONS(3000),
    [sym_immutable] = ACTIONS(3000),
    [sym_import] = ACTIONS(3000),
    [sym_in] = ACTIONS(3000),
    [sym_inout] = ACTIONS(3000),
    [sym_interface] = ACTIONS(3000),
    [sym_invariant] = ACTIONS(3000),
    [sym_is] = ACTIONS(3000),
    [sym_lazy] = ACTIONS(3000),
    [sym_mixin] = ACTIONS(3000),
    [sym_module] = ACTIONS(3000),
    [sym_new] = ACTIONS(3000),
    [sym_nothrow] = ACTIONS(3000),
    [sym_out] = ACTIONS(3000),
    [sym_override] = ACTIONS(3000),
    [sym_package] = ACTIONS(3000),
    [sym_pragma] = ACTIONS(3000),
    [sym_private] = ACTIONS(3000),
    [sym_protected] = ACTIONS(3000),
    [sym_public] = ACTIONS(3000),
    [sym_pure] = ACTIONS(3000),
    [sym_ref] = ACTIONS(3000),
    [sym_return] = ACTIONS(3000),
    [sym_scope] = ACTIONS(3000),
    [sym_shared] = ACTIONS(3000),
    [sym_static] = ACTIONS(3000),
    [sym_struct] = ACTIONS(3000),
    [sym_switch] = ACTIONS(3000),
    [sym_synchronized] = ACTIONS(3000),
    [sym_template] = ACTIONS(3000),
    [sym_throw] = ACTIONS(3000),
    [sym_try] = ACTIONS(3000),
    [sym_typeid] = ACTIONS(3000),
    [sym_typeof] = ACTIONS(3000),
    [sym_union] = ACTIONS(3000),
    [sym_unittest] = ACTIONS(3000),
    [sym_version] = ACTIONS(3000),
    [sym_while] = ACTIONS(3000),
    [sym_with] = ACTIONS(3000),
    [sym_parameters_] = ACTIONS(3000),
    [sym_gshared] = ACTIONS(3000),
    [sym_traits] = ACTIONS(3000),
    [sym_vector] = ACTIONS(3000),
    [sym_void] = ACTIONS(3000),
    [anon_sym_BQUOTE] = ACTIONS(3002),
    [anon_sym_r_DQUOTE] = ACTIONS(3002),
    [anon_sym_x_DQUOTE] = ACTIONS(3002),
    [anon_sym_DQUOTE] = ACTIONS(3002),
    [anon_sym_i_BQUOTE] = ACTIONS(3002),
    [anon_sym_i_DQUOTE] = ACTIONS(3002),
    [anon_sym_iq_LBRACE] = ACTIONS(3002),
    [aux_sym_char_literal_token1] = ACTIONS(3002),
    [anon_sym_SQUOTE] = ACTIONS(3000),
    [anon_sym___DATE__] = ACTIONS(3000),
    [anon_sym___FILE__] = ACTIONS(3000),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3000),
    [anon_sym___FUNCTION__] = ACTIONS(3000),
    [anon_sym___LINE__] = ACTIONS(3000),
    [anon_sym___MODULE__] = ACTIONS(3000),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3000),
    [anon_sym___TIME__] = ACTIONS(3000),
    [anon_sym___TIMESTAMP__] = ACTIONS(3000),
    [anon_sym___VENDOR__] = ACTIONS(3000),
    [anon_sym___VERSION__] = ACTIONS(3000),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3002),
    [sym_float_literal] = ACTIONS(3002),
    [sym__string] = ACTIONS(3002),
  },
  [651] = {
    [sym_identifier] = ACTIONS(3044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3046),
    [anon_sym_RBRACE] = ACTIONS(3046),
    [anon_sym_LBRACE] = ACTIONS(3046),
    [anon_sym_SLASH] = ACTIONS(3044),
    [anon_sym_SLASH_EQ] = ACTIONS(3046),
    [anon_sym_DOT] = ACTIONS(3044),
    [anon_sym_DOT_DOT] = ACTIONS(3044),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3046),
    [anon_sym_AMP] = ACTIONS(3044),
    [anon_sym_AMP_EQ] = ACTIONS(3046),
    [anon_sym_AMP_AMP] = ACTIONS(3046),
    [anon_sym_PIPE] = ACTIONS(3044),
    [anon_sym_PIPE_EQ] = ACTIONS(3046),
    [anon_sym_PIPE_PIPE] = ACTIONS(3046),
    [anon_sym_DASH] = ACTIONS(3044),
    [anon_sym_DASH_EQ] = ACTIONS(3046),
    [anon_sym_DASH_DASH] = ACTIONS(3046),
    [anon_sym_PLUS] = ACTIONS(3044),
    [anon_sym_PLUS_EQ] = ACTIONS(3046),
    [anon_sym_PLUS_PLUS] = ACTIONS(3046),
    [anon_sym_LT] = ACTIONS(3044),
    [anon_sym_LT_EQ] = ACTIONS(3046),
    [anon_sym_LT_LT] = ACTIONS(3044),
    [anon_sym_LT_LT_EQ] = ACTIONS(3046),
    [anon_sym_GT] = ACTIONS(3044),
    [anon_sym_GT_EQ] = ACTIONS(3046),
    [anon_sym_GT_GT_EQ] = ACTIONS(3046),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3046),
    [anon_sym_GT_GT] = ACTIONS(3044),
    [anon_sym_GT_GT_GT] = ACTIONS(3044),
    [anon_sym_BANG] = ACTIONS(3044),
    [anon_sym_BANG_EQ] = ACTIONS(3046),
    [anon_sym_LPAREN] = ACTIONS(3046),
    [anon_sym_RPAREN] = ACTIONS(3046),
    [anon_sym_LBRACK] = ACTIONS(3046),
    [anon_sym_RBRACK] = ACTIONS(3046),
    [anon_sym_QMARK] = ACTIONS(3046),
    [anon_sym_COMMA] = ACTIONS(3046),
    [anon_sym_SEMI] = ACTIONS(3046),
    [anon_sym_COLON] = ACTIONS(3046),
    [anon_sym_DOLLAR] = ACTIONS(3046),
    [anon_sym_EQ] = ACTIONS(3044),
    [anon_sym_EQ_EQ] = ACTIONS(3046),
    [anon_sym_STAR] = ACTIONS(3044),
    [anon_sym_STAR_EQ] = ACTIONS(3046),
    [anon_sym_PERCENT] = ACTIONS(3044),
    [anon_sym_PERCENT_EQ] = ACTIONS(3046),
    [anon_sym_CARET] = ACTIONS(3044),
    [anon_sym_CARET_EQ] = ACTIONS(3046),
    [anon_sym_CARET_CARET] = ACTIONS(3044),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3046),
    [anon_sym_TILDE] = ACTIONS(3044),
    [anon_sym_TILDE_EQ] = ACTIONS(3046),
    [anon_sym_AT] = ACTIONS(3046),
    [anon_sym_EQ_GT] = ACTIONS(3046),
    [anon_sym_POUND] = ACTIONS(3046),
    [anon_sym_BANGin] = ACTIONS(3046),
    [anon_sym_BANGis] = ACTIONS(3046),
    [sym_bool] = ACTIONS(3044),
    [sym_byte] = ACTIONS(3044),
    [sym_ubyte] = ACTIONS(3044),
    [sym_char] = ACTIONS(3044),
    [sym_short] = ACTIONS(3044),
    [sym_ushort] = ACTIONS(3044),
    [sym_int] = ACTIONS(3044),
    [sym_uint] = ACTIONS(3044),
    [sym_long] = ACTIONS(3044),
    [sym_ulong] = ACTIONS(3044),
    [sym_cent] = ACTIONS(3044),
    [sym_ucent] = ACTIONS(3044),
    [sym_wchar] = ACTIONS(3044),
    [sym_dchar] = ACTIONS(3044),
    [sym_float] = ACTIONS(3044),
    [sym_double] = ACTIONS(3044),
    [sym_real] = ACTIONS(3044),
    [sym_ifloat] = ACTIONS(3044),
    [sym_idouble] = ACTIONS(3044),
    [sym_ireal] = ACTIONS(3044),
    [sym_cfloat] = ACTIONS(3044),
    [sym_cdouble] = ACTIONS(3044),
    [sym_creal] = ACTIONS(3044),
    [sym_size_t] = ACTIONS(3044),
    [sym_ptrdiff_t] = ACTIONS(3044),
    [sym_string] = ACTIONS(3044),
    [sym_cstring] = ACTIONS(3044),
    [sym_dstring] = ACTIONS(3044),
    [sym_wstring] = ACTIONS(3044),
    [sym_noreturn] = ACTIONS(3044),
    [sym_true] = ACTIONS(3044),
    [sym_false] = ACTIONS(3044),
    [sym_null] = ACTIONS(3044),
    [sym_super] = ACTIONS(3044),
    [sym_this] = ACTIONS(3044),
    [sym_abstract] = ACTIONS(3044),
    [sym_alias] = ACTIONS(3044),
    [sym_align] = ACTIONS(3044),
    [sym_asm] = ACTIONS(3044),
    [sym_assert] = ACTIONS(3044),
    [sym_auto] = ACTIONS(3044),
    [sym_break] = ACTIONS(3044),
    [sym_case] = ACTIONS(3044),
    [sym_cast] = ACTIONS(3044),
    [sym_catch] = ACTIONS(3044),
    [sym_class] = ACTIONS(3044),
    [sym_const] = ACTIONS(3044),
    [sym_continue] = ACTIONS(3044),
    [sym_debug] = ACTIONS(3044),
    [sym_default] = ACTIONS(3044),
    [sym_delegate] = ACTIONS(3044),
    [sym_delete] = ACTIONS(3044),
    [sym_deprecated] = ACTIONS(3044),
    [sym_do] = ACTIONS(3044),
    [sym_else] = ACTIONS(3044),
    [sym_enum] = ACTIONS(3044),
    [sym_export] = ACTIONS(3044),
    [sym_extern] = ACTIONS(3044),
    [sym_final] = ACTIONS(3044),
    [sym_finally] = ACTIONS(3044),
    [sym_for] = ACTIONS(3044),
    [sym_foreach] = ACTIONS(3044),
    [sym_foreach_reverse] = ACTIONS(3044),
    [sym_function] = ACTIONS(3044),
    [sym_goto] = ACTIONS(3044),
    [sym_if] = ACTIONS(3044),
    [sym_immutable] = ACTIONS(3044),
    [sym_import] = ACTIONS(3044),
    [sym_in] = ACTIONS(3044),
    [sym_inout] = ACTIONS(3044),
    [sym_interface] = ACTIONS(3044),
    [sym_invariant] = ACTIONS(3044),
    [sym_is] = ACTIONS(3044),
    [sym_lazy] = ACTIONS(3044),
    [sym_mixin] = ACTIONS(3044),
    [sym_module] = ACTIONS(3044),
    [sym_new] = ACTIONS(3044),
    [sym_nothrow] = ACTIONS(3044),
    [sym_out] = ACTIONS(3044),
    [sym_override] = ACTIONS(3044),
    [sym_package] = ACTIONS(3044),
    [sym_pragma] = ACTIONS(3044),
    [sym_private] = ACTIONS(3044),
    [sym_protected] = ACTIONS(3044),
    [sym_public] = ACTIONS(3044),
    [sym_pure] = ACTIONS(3044),
    [sym_ref] = ACTIONS(3044),
    [sym_return] = ACTIONS(3044),
    [sym_scope] = ACTIONS(3044),
    [sym_shared] = ACTIONS(3044),
    [sym_static] = ACTIONS(3044),
    [sym_struct] = ACTIONS(3044),
    [sym_switch] = ACTIONS(3044),
    [sym_synchronized] = ACTIONS(3044),
    [sym_template] = ACTIONS(3044),
    [sym_throw] = ACTIONS(3044),
    [sym_try] = ACTIONS(3044),
    [sym_typeid] = ACTIONS(3044),
    [sym_typeof] = ACTIONS(3044),
    [sym_union] = ACTIONS(3044),
    [sym_unittest] = ACTIONS(3044),
    [sym_version] = ACTIONS(3044),
    [sym_while] = ACTIONS(3044),
    [sym_with] = ACTIONS(3044),
    [sym_parameters_] = ACTIONS(3044),
    [sym_gshared] = ACTIONS(3044),
    [sym_traits] = ACTIONS(3044),
    [sym_vector] = ACTIONS(3044),
    [sym_void] = ACTIONS(3044),
    [anon_sym_BQUOTE] = ACTIONS(3046),
    [anon_sym_r_DQUOTE] = ACTIONS(3046),
    [anon_sym_x_DQUOTE] = ACTIONS(3046),
    [anon_sym_DQUOTE] = ACTIONS(3046),
    [anon_sym_i_BQUOTE] = ACTIONS(3046),
    [anon_sym_i_DQUOTE] = ACTIONS(3046),
    [anon_sym_iq_LBRACE] = ACTIONS(3046),
    [aux_sym_char_literal_token1] = ACTIONS(3046),
    [anon_sym_SQUOTE] = ACTIONS(3044),
    [anon_sym___DATE__] = ACTIONS(3044),
    [anon_sym___FILE__] = ACTIONS(3044),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3044),
    [anon_sym___FUNCTION__] = ACTIONS(3044),
    [anon_sym___LINE__] = ACTIONS(3044),
    [anon_sym___MODULE__] = ACTIONS(3044),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3044),
    [anon_sym___TIME__] = ACTIONS(3044),
    [anon_sym___TIMESTAMP__] = ACTIONS(3044),
    [anon_sym___VENDOR__] = ACTIONS(3044),
    [anon_sym___VERSION__] = ACTIONS(3044),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3046),
    [sym_float_literal] = ACTIONS(3046),
    [sym__string] = ACTIONS(3046),
  },
  [652] = {
    [sym_identifier] = ACTIONS(3048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3050),
    [anon_sym_RBRACE] = ACTIONS(3050),
    [anon_sym_LBRACE] = ACTIONS(3050),
    [anon_sym_SLASH] = ACTIONS(3048),
    [anon_sym_SLASH_EQ] = ACTIONS(3050),
    [anon_sym_DOT] = ACTIONS(3048),
    [anon_sym_DOT_DOT] = ACTIONS(3048),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3050),
    [anon_sym_AMP] = ACTIONS(3048),
    [anon_sym_AMP_EQ] = ACTIONS(3050),
    [anon_sym_AMP_AMP] = ACTIONS(3050),
    [anon_sym_PIPE] = ACTIONS(3048),
    [anon_sym_PIPE_EQ] = ACTIONS(3050),
    [anon_sym_PIPE_PIPE] = ACTIONS(3050),
    [anon_sym_DASH] = ACTIONS(3048),
    [anon_sym_DASH_EQ] = ACTIONS(3050),
    [anon_sym_DASH_DASH] = ACTIONS(3050),
    [anon_sym_PLUS] = ACTIONS(3048),
    [anon_sym_PLUS_EQ] = ACTIONS(3050),
    [anon_sym_PLUS_PLUS] = ACTIONS(3050),
    [anon_sym_LT] = ACTIONS(3048),
    [anon_sym_LT_EQ] = ACTIONS(3050),
    [anon_sym_LT_LT] = ACTIONS(3048),
    [anon_sym_LT_LT_EQ] = ACTIONS(3050),
    [anon_sym_GT] = ACTIONS(3048),
    [anon_sym_GT_EQ] = ACTIONS(3050),
    [anon_sym_GT_GT_EQ] = ACTIONS(3050),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3050),
    [anon_sym_GT_GT] = ACTIONS(3048),
    [anon_sym_GT_GT_GT] = ACTIONS(3048),
    [anon_sym_BANG] = ACTIONS(3048),
    [anon_sym_BANG_EQ] = ACTIONS(3050),
    [anon_sym_LPAREN] = ACTIONS(3050),
    [anon_sym_RPAREN] = ACTIONS(3050),
    [anon_sym_LBRACK] = ACTIONS(3050),
    [anon_sym_RBRACK] = ACTIONS(3050),
    [anon_sym_QMARK] = ACTIONS(3050),
    [anon_sym_COMMA] = ACTIONS(3050),
    [anon_sym_SEMI] = ACTIONS(3050),
    [anon_sym_COLON] = ACTIONS(3050),
    [anon_sym_DOLLAR] = ACTIONS(3050),
    [anon_sym_EQ] = ACTIONS(3048),
    [anon_sym_EQ_EQ] = ACTIONS(3050),
    [anon_sym_STAR] = ACTIONS(3048),
    [anon_sym_STAR_EQ] = ACTIONS(3050),
    [anon_sym_PERCENT] = ACTIONS(3048),
    [anon_sym_PERCENT_EQ] = ACTIONS(3050),
    [anon_sym_CARET] = ACTIONS(3048),
    [anon_sym_CARET_EQ] = ACTIONS(3050),
    [anon_sym_CARET_CARET] = ACTIONS(3048),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3050),
    [anon_sym_TILDE] = ACTIONS(3048),
    [anon_sym_TILDE_EQ] = ACTIONS(3050),
    [anon_sym_AT] = ACTIONS(3050),
    [anon_sym_EQ_GT] = ACTIONS(3050),
    [anon_sym_POUND] = ACTIONS(3050),
    [anon_sym_BANGin] = ACTIONS(3050),
    [anon_sym_BANGis] = ACTIONS(3050),
    [sym_bool] = ACTIONS(3048),
    [sym_byte] = ACTIONS(3048),
    [sym_ubyte] = ACTIONS(3048),
    [sym_char] = ACTIONS(3048),
    [sym_short] = ACTIONS(3048),
    [sym_ushort] = ACTIONS(3048),
    [sym_int] = ACTIONS(3048),
    [sym_uint] = ACTIONS(3048),
    [sym_long] = ACTIONS(3048),
    [sym_ulong] = ACTIONS(3048),
    [sym_cent] = ACTIONS(3048),
    [sym_ucent] = ACTIONS(3048),
    [sym_wchar] = ACTIONS(3048),
    [sym_dchar] = ACTIONS(3048),
    [sym_float] = ACTIONS(3048),
    [sym_double] = ACTIONS(3048),
    [sym_real] = ACTIONS(3048),
    [sym_ifloat] = ACTIONS(3048),
    [sym_idouble] = ACTIONS(3048),
    [sym_ireal] = ACTIONS(3048),
    [sym_cfloat] = ACTIONS(3048),
    [sym_cdouble] = ACTIONS(3048),
    [sym_creal] = ACTIONS(3048),
    [sym_size_t] = ACTIONS(3048),
    [sym_ptrdiff_t] = ACTIONS(3048),
    [sym_string] = ACTIONS(3048),
    [sym_cstring] = ACTIONS(3048),
    [sym_dstring] = ACTIONS(3048),
    [sym_wstring] = ACTIONS(3048),
    [sym_noreturn] = ACTIONS(3048),
    [sym_true] = ACTIONS(3048),
    [sym_false] = ACTIONS(3048),
    [sym_null] = ACTIONS(3048),
    [sym_super] = ACTIONS(3048),
    [sym_this] = ACTIONS(3048),
    [sym_abstract] = ACTIONS(3048),
    [sym_alias] = ACTIONS(3048),
    [sym_align] = ACTIONS(3048),
    [sym_asm] = ACTIONS(3048),
    [sym_assert] = ACTIONS(3048),
    [sym_auto] = ACTIONS(3048),
    [sym_break] = ACTIONS(3048),
    [sym_case] = ACTIONS(3048),
    [sym_cast] = ACTIONS(3048),
    [sym_catch] = ACTIONS(3048),
    [sym_class] = ACTIONS(3048),
    [sym_const] = ACTIONS(3048),
    [sym_continue] = ACTIONS(3048),
    [sym_debug] = ACTIONS(3048),
    [sym_default] = ACTIONS(3048),
    [sym_delegate] = ACTIONS(3048),
    [sym_delete] = ACTIONS(3048),
    [sym_deprecated] = ACTIONS(3048),
    [sym_do] = ACTIONS(3048),
    [sym_else] = ACTIONS(3048),
    [sym_enum] = ACTIONS(3048),
    [sym_export] = ACTIONS(3048),
    [sym_extern] = ACTIONS(3048),
    [sym_final] = ACTIONS(3048),
    [sym_finally] = ACTIONS(3048),
    [sym_for] = ACTIONS(3048),
    [sym_foreach] = ACTIONS(3048),
    [sym_foreach_reverse] = ACTIONS(3048),
    [sym_function] = ACTIONS(3048),
    [sym_goto] = ACTIONS(3048),
    [sym_if] = ACTIONS(3048),
    [sym_immutable] = ACTIONS(3048),
    [sym_import] = ACTIONS(3048),
    [sym_in] = ACTIONS(3048),
    [sym_inout] = ACTIONS(3048),
    [sym_interface] = ACTIONS(3048),
    [sym_invariant] = ACTIONS(3048),
    [sym_is] = ACTIONS(3048),
    [sym_lazy] = ACTIONS(3048),
    [sym_mixin] = ACTIONS(3048),
    [sym_module] = ACTIONS(3048),
    [sym_new] = ACTIONS(3048),
    [sym_nothrow] = ACTIONS(3048),
    [sym_out] = ACTIONS(3048),
    [sym_override] = ACTIONS(3048),
    [sym_package] = ACTIONS(3048),
    [sym_pragma] = ACTIONS(3048),
    [sym_private] = ACTIONS(3048),
    [sym_protected] = ACTIONS(3048),
    [sym_public] = ACTIONS(3048),
    [sym_pure] = ACTIONS(3048),
    [sym_ref] = ACTIONS(3048),
    [sym_return] = ACTIONS(3048),
    [sym_scope] = ACTIONS(3048),
    [sym_shared] = ACTIONS(3048),
    [sym_static] = ACTIONS(3048),
    [sym_struct] = ACTIONS(3048),
    [sym_switch] = ACTIONS(3048),
    [sym_synchronized] = ACTIONS(3048),
    [sym_template] = ACTIONS(3048),
    [sym_throw] = ACTIONS(3048),
    [sym_try] = ACTIONS(3048),
    [sym_typeid] = ACTIONS(3048),
    [sym_typeof] = ACTIONS(3048),
    [sym_union] = ACTIONS(3048),
    [sym_unittest] = ACTIONS(3048),
    [sym_version] = ACTIONS(3048),
    [sym_while] = ACTIONS(3048),
    [sym_with] = ACTIONS(3048),
    [sym_parameters_] = ACTIONS(3048),
    [sym_gshared] = ACTIONS(3048),
    [sym_traits] = ACTIONS(3048),
    [sym_vector] = ACTIONS(3048),
    [sym_void] = ACTIONS(3048),
    [anon_sym_BQUOTE] = ACTIONS(3050),
    [anon_sym_r_DQUOTE] = ACTIONS(3050),
    [anon_sym_x_DQUOTE] = ACTIONS(3050),
    [anon_sym_DQUOTE] = ACTIONS(3050),
    [anon_sym_i_BQUOTE] = ACTIONS(3050),
    [anon_sym_i_DQUOTE] = ACTIONS(3050),
    [anon_sym_iq_LBRACE] = ACTIONS(3050),
    [aux_sym_char_literal_token1] = ACTIONS(3050),
    [anon_sym_SQUOTE] = ACTIONS(3048),
    [anon_sym___DATE__] = ACTIONS(3048),
    [anon_sym___FILE__] = ACTIONS(3048),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3048),
    [anon_sym___FUNCTION__] = ACTIONS(3048),
    [anon_sym___LINE__] = ACTIONS(3048),
    [anon_sym___MODULE__] = ACTIONS(3048),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3048),
    [anon_sym___TIME__] = ACTIONS(3048),
    [anon_sym___TIMESTAMP__] = ACTIONS(3048),
    [anon_sym___VENDOR__] = ACTIONS(3048),
    [anon_sym___VERSION__] = ACTIONS(3048),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3050),
    [sym_float_literal] = ACTIONS(3050),
    [sym__string] = ACTIONS(3050),
  },
  [653] = {
    [sym_identifier] = ACTIONS(2980),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2982),
    [anon_sym_RBRACE] = ACTIONS(2982),
    [anon_sym_LBRACE] = ACTIONS(2982),
    [anon_sym_SLASH] = ACTIONS(2980),
    [anon_sym_SLASH_EQ] = ACTIONS(2982),
    [anon_sym_DOT] = ACTIONS(2980),
    [anon_sym_DOT_DOT] = ACTIONS(2980),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2982),
    [anon_sym_AMP] = ACTIONS(2980),
    [anon_sym_AMP_EQ] = ACTIONS(2982),
    [anon_sym_AMP_AMP] = ACTIONS(2982),
    [anon_sym_PIPE] = ACTIONS(2980),
    [anon_sym_PIPE_EQ] = ACTIONS(2982),
    [anon_sym_PIPE_PIPE] = ACTIONS(2982),
    [anon_sym_DASH] = ACTIONS(2980),
    [anon_sym_DASH_EQ] = ACTIONS(2982),
    [anon_sym_DASH_DASH] = ACTIONS(2982),
    [anon_sym_PLUS] = ACTIONS(2980),
    [anon_sym_PLUS_EQ] = ACTIONS(2982),
    [anon_sym_PLUS_PLUS] = ACTIONS(2982),
    [anon_sym_LT] = ACTIONS(2980),
    [anon_sym_LT_EQ] = ACTIONS(2982),
    [anon_sym_LT_LT] = ACTIONS(2980),
    [anon_sym_LT_LT_EQ] = ACTIONS(2982),
    [anon_sym_GT] = ACTIONS(2980),
    [anon_sym_GT_EQ] = ACTIONS(2982),
    [anon_sym_GT_GT_EQ] = ACTIONS(2982),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2982),
    [anon_sym_GT_GT] = ACTIONS(2980),
    [anon_sym_GT_GT_GT] = ACTIONS(2980),
    [anon_sym_BANG] = ACTIONS(2980),
    [anon_sym_BANG_EQ] = ACTIONS(2982),
    [anon_sym_LPAREN] = ACTIONS(2982),
    [anon_sym_RPAREN] = ACTIONS(2982),
    [anon_sym_LBRACK] = ACTIONS(2982),
    [anon_sym_RBRACK] = ACTIONS(2982),
    [anon_sym_QMARK] = ACTIONS(2982),
    [anon_sym_COMMA] = ACTIONS(2982),
    [anon_sym_SEMI] = ACTIONS(2982),
    [anon_sym_COLON] = ACTIONS(2982),
    [anon_sym_DOLLAR] = ACTIONS(2982),
    [anon_sym_EQ] = ACTIONS(2980),
    [anon_sym_EQ_EQ] = ACTIONS(2982),
    [anon_sym_STAR] = ACTIONS(2980),
    [anon_sym_STAR_EQ] = ACTIONS(2982),
    [anon_sym_PERCENT] = ACTIONS(2980),
    [anon_sym_PERCENT_EQ] = ACTIONS(2982),
    [anon_sym_CARET] = ACTIONS(2980),
    [anon_sym_CARET_EQ] = ACTIONS(2982),
    [anon_sym_CARET_CARET] = ACTIONS(2980),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2982),
    [anon_sym_TILDE] = ACTIONS(2980),
    [anon_sym_TILDE_EQ] = ACTIONS(2982),
    [anon_sym_AT] = ACTIONS(2982),
    [anon_sym_EQ_GT] = ACTIONS(2982),
    [anon_sym_POUND] = ACTIONS(2982),
    [anon_sym_BANGin] = ACTIONS(2982),
    [anon_sym_BANGis] = ACTIONS(2982),
    [sym_bool] = ACTIONS(2980),
    [sym_byte] = ACTIONS(2980),
    [sym_ubyte] = ACTIONS(2980),
    [sym_char] = ACTIONS(2980),
    [sym_short] = ACTIONS(2980),
    [sym_ushort] = ACTIONS(2980),
    [sym_int] = ACTIONS(2980),
    [sym_uint] = ACTIONS(2980),
    [sym_long] = ACTIONS(2980),
    [sym_ulong] = ACTIONS(2980),
    [sym_cent] = ACTIONS(2980),
    [sym_ucent] = ACTIONS(2980),
    [sym_wchar] = ACTIONS(2980),
    [sym_dchar] = ACTIONS(2980),
    [sym_float] = ACTIONS(2980),
    [sym_double] = ACTIONS(2980),
    [sym_real] = ACTIONS(2980),
    [sym_ifloat] = ACTIONS(2980),
    [sym_idouble] = ACTIONS(2980),
    [sym_ireal] = ACTIONS(2980),
    [sym_cfloat] = ACTIONS(2980),
    [sym_cdouble] = ACTIONS(2980),
    [sym_creal] = ACTIONS(2980),
    [sym_size_t] = ACTIONS(2980),
    [sym_ptrdiff_t] = ACTIONS(2980),
    [sym_string] = ACTIONS(2980),
    [sym_cstring] = ACTIONS(2980),
    [sym_dstring] = ACTIONS(2980),
    [sym_wstring] = ACTIONS(2980),
    [sym_noreturn] = ACTIONS(2980),
    [sym_true] = ACTIONS(2980),
    [sym_false] = ACTIONS(2980),
    [sym_null] = ACTIONS(2980),
    [sym_super] = ACTIONS(2980),
    [sym_this] = ACTIONS(2980),
    [sym_abstract] = ACTIONS(2980),
    [sym_alias] = ACTIONS(2980),
    [sym_align] = ACTIONS(2980),
    [sym_asm] = ACTIONS(2980),
    [sym_assert] = ACTIONS(2980),
    [sym_auto] = ACTIONS(2980),
    [sym_break] = ACTIONS(2980),
    [sym_case] = ACTIONS(2980),
    [sym_cast] = ACTIONS(2980),
    [sym_catch] = ACTIONS(2980),
    [sym_class] = ACTIONS(2980),
    [sym_const] = ACTIONS(2980),
    [sym_continue] = ACTIONS(2980),
    [sym_debug] = ACTIONS(2980),
    [sym_default] = ACTIONS(2980),
    [sym_delegate] = ACTIONS(2980),
    [sym_delete] = ACTIONS(2980),
    [sym_deprecated] = ACTIONS(2980),
    [sym_do] = ACTIONS(2980),
    [sym_else] = ACTIONS(2980),
    [sym_enum] = ACTIONS(2980),
    [sym_export] = ACTIONS(2980),
    [sym_extern] = ACTIONS(2980),
    [sym_final] = ACTIONS(2980),
    [sym_finally] = ACTIONS(2980),
    [sym_for] = ACTIONS(2980),
    [sym_foreach] = ACTIONS(2980),
    [sym_foreach_reverse] = ACTIONS(2980),
    [sym_function] = ACTIONS(2980),
    [sym_goto] = ACTIONS(2980),
    [sym_if] = ACTIONS(2980),
    [sym_immutable] = ACTIONS(2980),
    [sym_import] = ACTIONS(2980),
    [sym_in] = ACTIONS(2980),
    [sym_inout] = ACTIONS(2980),
    [sym_interface] = ACTIONS(2980),
    [sym_invariant] = ACTIONS(2980),
    [sym_is] = ACTIONS(2980),
    [sym_lazy] = ACTIONS(2980),
    [sym_mixin] = ACTIONS(2980),
    [sym_module] = ACTIONS(2980),
    [sym_new] = ACTIONS(2980),
    [sym_nothrow] = ACTIONS(2980),
    [sym_out] = ACTIONS(2980),
    [sym_override] = ACTIONS(2980),
    [sym_package] = ACTIONS(2980),
    [sym_pragma] = ACTIONS(2980),
    [sym_private] = ACTIONS(2980),
    [sym_protected] = ACTIONS(2980),
    [sym_public] = ACTIONS(2980),
    [sym_pure] = ACTIONS(2980),
    [sym_ref] = ACTIONS(2980),
    [sym_return] = ACTIONS(2980),
    [sym_scope] = ACTIONS(2980),
    [sym_shared] = ACTIONS(2980),
    [sym_static] = ACTIONS(2980),
    [sym_struct] = ACTIONS(2980),
    [sym_switch] = ACTIONS(2980),
    [sym_synchronized] = ACTIONS(2980),
    [sym_template] = ACTIONS(2980),
    [sym_throw] = ACTIONS(2980),
    [sym_try] = ACTIONS(2980),
    [sym_typeid] = ACTIONS(2980),
    [sym_typeof] = ACTIONS(2980),
    [sym_union] = ACTIONS(2980),
    [sym_unittest] = ACTIONS(2980),
    [sym_version] = ACTIONS(2980),
    [sym_while] = ACTIONS(2980),
    [sym_with] = ACTIONS(2980),
    [sym_parameters_] = ACTIONS(2980),
    [sym_gshared] = ACTIONS(2980),
    [sym_traits] = ACTIONS(2980),
    [sym_vector] = ACTIONS(2980),
    [sym_void] = ACTIONS(2980),
    [anon_sym_BQUOTE] = ACTIONS(2982),
    [anon_sym_r_DQUOTE] = ACTIONS(2982),
    [anon_sym_x_DQUOTE] = ACTIONS(2982),
    [anon_sym_DQUOTE] = ACTIONS(2982),
    [anon_sym_i_BQUOTE] = ACTIONS(2982),
    [anon_sym_i_DQUOTE] = ACTIONS(2982),
    [anon_sym_iq_LBRACE] = ACTIONS(2982),
    [aux_sym_char_literal_token1] = ACTIONS(2982),
    [anon_sym_SQUOTE] = ACTIONS(2980),
    [anon_sym___DATE__] = ACTIONS(2980),
    [anon_sym___FILE__] = ACTIONS(2980),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2980),
    [anon_sym___FUNCTION__] = ACTIONS(2980),
    [anon_sym___LINE__] = ACTIONS(2980),
    [anon_sym___MODULE__] = ACTIONS(2980),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2980),
    [anon_sym___TIME__] = ACTIONS(2980),
    [anon_sym___TIMESTAMP__] = ACTIONS(2980),
    [anon_sym___VENDOR__] = ACTIONS(2980),
    [anon_sym___VERSION__] = ACTIONS(2980),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2982),
    [sym_float_literal] = ACTIONS(2982),
    [sym__string] = ACTIONS(2982),
  },
  [654] = {
    [sym_identifier] = ACTIONS(3012),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3014),
    [anon_sym_RBRACE] = ACTIONS(3014),
    [anon_sym_LBRACE] = ACTIONS(3014),
    [anon_sym_SLASH] = ACTIONS(3012),
    [anon_sym_SLASH_EQ] = ACTIONS(3014),
    [anon_sym_DOT] = ACTIONS(3012),
    [anon_sym_DOT_DOT] = ACTIONS(3012),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3014),
    [anon_sym_AMP] = ACTIONS(3012),
    [anon_sym_AMP_EQ] = ACTIONS(3014),
    [anon_sym_AMP_AMP] = ACTIONS(3014),
    [anon_sym_PIPE] = ACTIONS(3012),
    [anon_sym_PIPE_EQ] = ACTIONS(3014),
    [anon_sym_PIPE_PIPE] = ACTIONS(3014),
    [anon_sym_DASH] = ACTIONS(3012),
    [anon_sym_DASH_EQ] = ACTIONS(3014),
    [anon_sym_DASH_DASH] = ACTIONS(3014),
    [anon_sym_PLUS] = ACTIONS(3012),
    [anon_sym_PLUS_EQ] = ACTIONS(3014),
    [anon_sym_PLUS_PLUS] = ACTIONS(3014),
    [anon_sym_LT] = ACTIONS(3012),
    [anon_sym_LT_EQ] = ACTIONS(3014),
    [anon_sym_LT_LT] = ACTIONS(3012),
    [anon_sym_LT_LT_EQ] = ACTIONS(3014),
    [anon_sym_GT] = ACTIONS(3012),
    [anon_sym_GT_EQ] = ACTIONS(3014),
    [anon_sym_GT_GT_EQ] = ACTIONS(3014),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3014),
    [anon_sym_GT_GT] = ACTIONS(3012),
    [anon_sym_GT_GT_GT] = ACTIONS(3012),
    [anon_sym_BANG] = ACTIONS(3012),
    [anon_sym_BANG_EQ] = ACTIONS(3014),
    [anon_sym_LPAREN] = ACTIONS(3014),
    [anon_sym_RPAREN] = ACTIONS(3014),
    [anon_sym_LBRACK] = ACTIONS(3014),
    [anon_sym_RBRACK] = ACTIONS(3014),
    [anon_sym_QMARK] = ACTIONS(3014),
    [anon_sym_COMMA] = ACTIONS(3014),
    [anon_sym_SEMI] = ACTIONS(3014),
    [anon_sym_COLON] = ACTIONS(3014),
    [anon_sym_DOLLAR] = ACTIONS(3014),
    [anon_sym_EQ] = ACTIONS(3012),
    [anon_sym_EQ_EQ] = ACTIONS(3014),
    [anon_sym_STAR] = ACTIONS(3012),
    [anon_sym_STAR_EQ] = ACTIONS(3014),
    [anon_sym_PERCENT] = ACTIONS(3012),
    [anon_sym_PERCENT_EQ] = ACTIONS(3014),
    [anon_sym_CARET] = ACTIONS(3012),
    [anon_sym_CARET_EQ] = ACTIONS(3014),
    [anon_sym_CARET_CARET] = ACTIONS(3012),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3014),
    [anon_sym_TILDE] = ACTIONS(3012),
    [anon_sym_TILDE_EQ] = ACTIONS(3014),
    [anon_sym_AT] = ACTIONS(3014),
    [anon_sym_EQ_GT] = ACTIONS(3014),
    [anon_sym_POUND] = ACTIONS(3014),
    [anon_sym_BANGin] = ACTIONS(3014),
    [anon_sym_BANGis] = ACTIONS(3014),
    [sym_bool] = ACTIONS(3012),
    [sym_byte] = ACTIONS(3012),
    [sym_ubyte] = ACTIONS(3012),
    [sym_char] = ACTIONS(3012),
    [sym_short] = ACTIONS(3012),
    [sym_ushort] = ACTIONS(3012),
    [sym_int] = ACTIONS(3012),
    [sym_uint] = ACTIONS(3012),
    [sym_long] = ACTIONS(3012),
    [sym_ulong] = ACTIONS(3012),
    [sym_cent] = ACTIONS(3012),
    [sym_ucent] = ACTIONS(3012),
    [sym_wchar] = ACTIONS(3012),
    [sym_dchar] = ACTIONS(3012),
    [sym_float] = ACTIONS(3012),
    [sym_double] = ACTIONS(3012),
    [sym_real] = ACTIONS(3012),
    [sym_ifloat] = ACTIONS(3012),
    [sym_idouble] = ACTIONS(3012),
    [sym_ireal] = ACTIONS(3012),
    [sym_cfloat] = ACTIONS(3012),
    [sym_cdouble] = ACTIONS(3012),
    [sym_creal] = ACTIONS(3012),
    [sym_size_t] = ACTIONS(3012),
    [sym_ptrdiff_t] = ACTIONS(3012),
    [sym_string] = ACTIONS(3012),
    [sym_cstring] = ACTIONS(3012),
    [sym_dstring] = ACTIONS(3012),
    [sym_wstring] = ACTIONS(3012),
    [sym_noreturn] = ACTIONS(3012),
    [sym_true] = ACTIONS(3012),
    [sym_false] = ACTIONS(3012),
    [sym_null] = ACTIONS(3012),
    [sym_super] = ACTIONS(3012),
    [sym_this] = ACTIONS(3012),
    [sym_abstract] = ACTIONS(3012),
    [sym_alias] = ACTIONS(3012),
    [sym_align] = ACTIONS(3012),
    [sym_asm] = ACTIONS(3012),
    [sym_assert] = ACTIONS(3012),
    [sym_auto] = ACTIONS(3012),
    [sym_break] = ACTIONS(3012),
    [sym_case] = ACTIONS(3012),
    [sym_cast] = ACTIONS(3012),
    [sym_catch] = ACTIONS(3012),
    [sym_class] = ACTIONS(3012),
    [sym_const] = ACTIONS(3012),
    [sym_continue] = ACTIONS(3012),
    [sym_debug] = ACTIONS(3012),
    [sym_default] = ACTIONS(3012),
    [sym_delegate] = ACTIONS(3012),
    [sym_delete] = ACTIONS(3012),
    [sym_deprecated] = ACTIONS(3012),
    [sym_do] = ACTIONS(3012),
    [sym_else] = ACTIONS(3012),
    [sym_enum] = ACTIONS(3012),
    [sym_export] = ACTIONS(3012),
    [sym_extern] = ACTIONS(3012),
    [sym_final] = ACTIONS(3012),
    [sym_finally] = ACTIONS(3012),
    [sym_for] = ACTIONS(3012),
    [sym_foreach] = ACTIONS(3012),
    [sym_foreach_reverse] = ACTIONS(3012),
    [sym_function] = ACTIONS(3012),
    [sym_goto] = ACTIONS(3012),
    [sym_if] = ACTIONS(3012),
    [sym_immutable] = ACTIONS(3012),
    [sym_import] = ACTIONS(3012),
    [sym_in] = ACTIONS(3012),
    [sym_inout] = ACTIONS(3012),
    [sym_interface] = ACTIONS(3012),
    [sym_invariant] = ACTIONS(3012),
    [sym_is] = ACTIONS(3012),
    [sym_lazy] = ACTIONS(3012),
    [sym_mixin] = ACTIONS(3012),
    [sym_module] = ACTIONS(3012),
    [sym_new] = ACTIONS(3012),
    [sym_nothrow] = ACTIONS(3012),
    [sym_out] = ACTIONS(3012),
    [sym_override] = ACTIONS(3012),
    [sym_package] = ACTIONS(3012),
    [sym_pragma] = ACTIONS(3012),
    [sym_private] = ACTIONS(3012),
    [sym_protected] = ACTIONS(3012),
    [sym_public] = ACTIONS(3012),
    [sym_pure] = ACTIONS(3012),
    [sym_ref] = ACTIONS(3012),
    [sym_return] = ACTIONS(3012),
    [sym_scope] = ACTIONS(3012),
    [sym_shared] = ACTIONS(3012),
    [sym_static] = ACTIONS(3012),
    [sym_struct] = ACTIONS(3012),
    [sym_switch] = ACTIONS(3012),
    [sym_synchronized] = ACTIONS(3012),
    [sym_template] = ACTIONS(3012),
    [sym_throw] = ACTIONS(3012),
    [sym_try] = ACTIONS(3012),
    [sym_typeid] = ACTIONS(3012),
    [sym_typeof] = ACTIONS(3012),
    [sym_union] = ACTIONS(3012),
    [sym_unittest] = ACTIONS(3012),
    [sym_version] = ACTIONS(3012),
    [sym_while] = ACTIONS(3012),
    [sym_with] = ACTIONS(3012),
    [sym_parameters_] = ACTIONS(3012),
    [sym_gshared] = ACTIONS(3012),
    [sym_traits] = ACTIONS(3012),
    [sym_vector] = ACTIONS(3012),
    [sym_void] = ACTIONS(3012),
    [anon_sym_BQUOTE] = ACTIONS(3014),
    [anon_sym_r_DQUOTE] = ACTIONS(3014),
    [anon_sym_x_DQUOTE] = ACTIONS(3014),
    [anon_sym_DQUOTE] = ACTIONS(3014),
    [anon_sym_i_BQUOTE] = ACTIONS(3014),
    [anon_sym_i_DQUOTE] = ACTIONS(3014),
    [anon_sym_iq_LBRACE] = ACTIONS(3014),
    [aux_sym_char_literal_token1] = ACTIONS(3014),
    [anon_sym_SQUOTE] = ACTIONS(3012),
    [anon_sym___DATE__] = ACTIONS(3012),
    [anon_sym___FILE__] = ACTIONS(3012),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3012),
    [anon_sym___FUNCTION__] = ACTIONS(3012),
    [anon_sym___LINE__] = ACTIONS(3012),
    [anon_sym___MODULE__] = ACTIONS(3012),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3012),
    [anon_sym___TIME__] = ACTIONS(3012),
    [anon_sym___TIMESTAMP__] = ACTIONS(3012),
    [anon_sym___VENDOR__] = ACTIONS(3012),
    [anon_sym___VERSION__] = ACTIONS(3012),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3014),
    [sym_float_literal] = ACTIONS(3014),
    [sym__string] = ACTIONS(3014),
  },
  [655] = {
    [sym_identifier] = ACTIONS(3024),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3026),
    [anon_sym_RBRACE] = ACTIONS(3026),
    [anon_sym_LBRACE] = ACTIONS(3026),
    [anon_sym_SLASH] = ACTIONS(3024),
    [anon_sym_SLASH_EQ] = ACTIONS(3026),
    [anon_sym_DOT] = ACTIONS(3024),
    [anon_sym_DOT_DOT] = ACTIONS(3024),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3026),
    [anon_sym_AMP] = ACTIONS(3024),
    [anon_sym_AMP_EQ] = ACTIONS(3026),
    [anon_sym_AMP_AMP] = ACTIONS(3026),
    [anon_sym_PIPE] = ACTIONS(3024),
    [anon_sym_PIPE_EQ] = ACTIONS(3026),
    [anon_sym_PIPE_PIPE] = ACTIONS(3026),
    [anon_sym_DASH] = ACTIONS(3024),
    [anon_sym_DASH_EQ] = ACTIONS(3026),
    [anon_sym_DASH_DASH] = ACTIONS(3026),
    [anon_sym_PLUS] = ACTIONS(3024),
    [anon_sym_PLUS_EQ] = ACTIONS(3026),
    [anon_sym_PLUS_PLUS] = ACTIONS(3026),
    [anon_sym_LT] = ACTIONS(3024),
    [anon_sym_LT_EQ] = ACTIONS(3026),
    [anon_sym_LT_LT] = ACTIONS(3024),
    [anon_sym_LT_LT_EQ] = ACTIONS(3026),
    [anon_sym_GT] = ACTIONS(3024),
    [anon_sym_GT_EQ] = ACTIONS(3026),
    [anon_sym_GT_GT_EQ] = ACTIONS(3026),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3026),
    [anon_sym_GT_GT] = ACTIONS(3024),
    [anon_sym_GT_GT_GT] = ACTIONS(3024),
    [anon_sym_BANG] = ACTIONS(3024),
    [anon_sym_BANG_EQ] = ACTIONS(3026),
    [anon_sym_LPAREN] = ACTIONS(3026),
    [anon_sym_RPAREN] = ACTIONS(3026),
    [anon_sym_LBRACK] = ACTIONS(3026),
    [anon_sym_RBRACK] = ACTIONS(3026),
    [anon_sym_QMARK] = ACTIONS(3026),
    [anon_sym_COMMA] = ACTIONS(3026),
    [anon_sym_SEMI] = ACTIONS(3026),
    [anon_sym_COLON] = ACTIONS(3026),
    [anon_sym_DOLLAR] = ACTIONS(3026),
    [anon_sym_EQ] = ACTIONS(3024),
    [anon_sym_EQ_EQ] = ACTIONS(3026),
    [anon_sym_STAR] = ACTIONS(3024),
    [anon_sym_STAR_EQ] = ACTIONS(3026),
    [anon_sym_PERCENT] = ACTIONS(3024),
    [anon_sym_PERCENT_EQ] = ACTIONS(3026),
    [anon_sym_CARET] = ACTIONS(3024),
    [anon_sym_CARET_EQ] = ACTIONS(3026),
    [anon_sym_CARET_CARET] = ACTIONS(3024),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3026),
    [anon_sym_TILDE] = ACTIONS(3024),
    [anon_sym_TILDE_EQ] = ACTIONS(3026),
    [anon_sym_AT] = ACTIONS(3026),
    [anon_sym_EQ_GT] = ACTIONS(3026),
    [anon_sym_POUND] = ACTIONS(3026),
    [anon_sym_BANGin] = ACTIONS(3026),
    [anon_sym_BANGis] = ACTIONS(3026),
    [sym_bool] = ACTIONS(3024),
    [sym_byte] = ACTIONS(3024),
    [sym_ubyte] = ACTIONS(3024),
    [sym_char] = ACTIONS(3024),
    [sym_short] = ACTIONS(3024),
    [sym_ushort] = ACTIONS(3024),
    [sym_int] = ACTIONS(3024),
    [sym_uint] = ACTIONS(3024),
    [sym_long] = ACTIONS(3024),
    [sym_ulong] = ACTIONS(3024),
    [sym_cent] = ACTIONS(3024),
    [sym_ucent] = ACTIONS(3024),
    [sym_wchar] = ACTIONS(3024),
    [sym_dchar] = ACTIONS(3024),
    [sym_float] = ACTIONS(3024),
    [sym_double] = ACTIONS(3024),
    [sym_real] = ACTIONS(3024),
    [sym_ifloat] = ACTIONS(3024),
    [sym_idouble] = ACTIONS(3024),
    [sym_ireal] = ACTIONS(3024),
    [sym_cfloat] = ACTIONS(3024),
    [sym_cdouble] = ACTIONS(3024),
    [sym_creal] = ACTIONS(3024),
    [sym_size_t] = ACTIONS(3024),
    [sym_ptrdiff_t] = ACTIONS(3024),
    [sym_string] = ACTIONS(3024),
    [sym_cstring] = ACTIONS(3024),
    [sym_dstring] = ACTIONS(3024),
    [sym_wstring] = ACTIONS(3024),
    [sym_noreturn] = ACTIONS(3024),
    [sym_true] = ACTIONS(3024),
    [sym_false] = ACTIONS(3024),
    [sym_null] = ACTIONS(3024),
    [sym_super] = ACTIONS(3024),
    [sym_this] = ACTIONS(3024),
    [sym_abstract] = ACTIONS(3024),
    [sym_alias] = ACTIONS(3024),
    [sym_align] = ACTIONS(3024),
    [sym_asm] = ACTIONS(3024),
    [sym_assert] = ACTIONS(3024),
    [sym_auto] = ACTIONS(3024),
    [sym_break] = ACTIONS(3024),
    [sym_case] = ACTIONS(3024),
    [sym_cast] = ACTIONS(3024),
    [sym_catch] = ACTIONS(3024),
    [sym_class] = ACTIONS(3024),
    [sym_const] = ACTIONS(3024),
    [sym_continue] = ACTIONS(3024),
    [sym_debug] = ACTIONS(3024),
    [sym_default] = ACTIONS(3024),
    [sym_delegate] = ACTIONS(3024),
    [sym_delete] = ACTIONS(3024),
    [sym_deprecated] = ACTIONS(3024),
    [sym_do] = ACTIONS(3024),
    [sym_else] = ACTIONS(3024),
    [sym_enum] = ACTIONS(3024),
    [sym_export] = ACTIONS(3024),
    [sym_extern] = ACTIONS(3024),
    [sym_final] = ACTIONS(3024),
    [sym_finally] = ACTIONS(3024),
    [sym_for] = ACTIONS(3024),
    [sym_foreach] = ACTIONS(3024),
    [sym_foreach_reverse] = ACTIONS(3024),
    [sym_function] = ACTIONS(3024),
    [sym_goto] = ACTIONS(3024),
    [sym_if] = ACTIONS(3024),
    [sym_immutable] = ACTIONS(3024),
    [sym_import] = ACTIONS(3024),
    [sym_in] = ACTIONS(3024),
    [sym_inout] = ACTIONS(3024),
    [sym_interface] = ACTIONS(3024),
    [sym_invariant] = ACTIONS(3024),
    [sym_is] = ACTIONS(3024),
    [sym_lazy] = ACTIONS(3024),
    [sym_mixin] = ACTIONS(3024),
    [sym_module] = ACTIONS(3024),
    [sym_new] = ACTIONS(3024),
    [sym_nothrow] = ACTIONS(3024),
    [sym_out] = ACTIONS(3024),
    [sym_override] = ACTIONS(3024),
    [sym_package] = ACTIONS(3024),
    [sym_pragma] = ACTIONS(3024),
    [sym_private] = ACTIONS(3024),
    [sym_protected] = ACTIONS(3024),
    [sym_public] = ACTIONS(3024),
    [sym_pure] = ACTIONS(3024),
    [sym_ref] = ACTIONS(3024),
    [sym_return] = ACTIONS(3024),
    [sym_scope] = ACTIONS(3024),
    [sym_shared] = ACTIONS(3024),
    [sym_static] = ACTIONS(3024),
    [sym_struct] = ACTIONS(3024),
    [sym_switch] = ACTIONS(3024),
    [sym_synchronized] = ACTIONS(3024),
    [sym_template] = ACTIONS(3024),
    [sym_throw] = ACTIONS(3024),
    [sym_try] = ACTIONS(3024),
    [sym_typeid] = ACTIONS(3024),
    [sym_typeof] = ACTIONS(3024),
    [sym_union] = ACTIONS(3024),
    [sym_unittest] = ACTIONS(3024),
    [sym_version] = ACTIONS(3024),
    [sym_while] = ACTIONS(3024),
    [sym_with] = ACTIONS(3024),
    [sym_parameters_] = ACTIONS(3024),
    [sym_gshared] = ACTIONS(3024),
    [sym_traits] = ACTIONS(3024),
    [sym_vector] = ACTIONS(3024),
    [sym_void] = ACTIONS(3024),
    [anon_sym_BQUOTE] = ACTIONS(3026),
    [anon_sym_r_DQUOTE] = ACTIONS(3026),
    [anon_sym_x_DQUOTE] = ACTIONS(3026),
    [anon_sym_DQUOTE] = ACTIONS(3026),
    [anon_sym_i_BQUOTE] = ACTIONS(3026),
    [anon_sym_i_DQUOTE] = ACTIONS(3026),
    [anon_sym_iq_LBRACE] = ACTIONS(3026),
    [aux_sym_char_literal_token1] = ACTIONS(3026),
    [anon_sym_SQUOTE] = ACTIONS(3024),
    [anon_sym___DATE__] = ACTIONS(3024),
    [anon_sym___FILE__] = ACTIONS(3024),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3024),
    [anon_sym___FUNCTION__] = ACTIONS(3024),
    [anon_sym___LINE__] = ACTIONS(3024),
    [anon_sym___MODULE__] = ACTIONS(3024),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3024),
    [anon_sym___TIME__] = ACTIONS(3024),
    [anon_sym___TIMESTAMP__] = ACTIONS(3024),
    [anon_sym___VENDOR__] = ACTIONS(3024),
    [anon_sym___VERSION__] = ACTIONS(3024),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3026),
    [sym_float_literal] = ACTIONS(3026),
    [sym__string] = ACTIONS(3026),
  },
  [656] = {
    [sym_identifier] = ACTIONS(3028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3030),
    [anon_sym_RBRACE] = ACTIONS(3030),
    [anon_sym_LBRACE] = ACTIONS(3030),
    [anon_sym_SLASH] = ACTIONS(3028),
    [anon_sym_SLASH_EQ] = ACTIONS(3030),
    [anon_sym_DOT] = ACTIONS(3028),
    [anon_sym_DOT_DOT] = ACTIONS(3028),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3030),
    [anon_sym_AMP] = ACTIONS(3028),
    [anon_sym_AMP_EQ] = ACTIONS(3030),
    [anon_sym_AMP_AMP] = ACTIONS(3030),
    [anon_sym_PIPE] = ACTIONS(3028),
    [anon_sym_PIPE_EQ] = ACTIONS(3030),
    [anon_sym_PIPE_PIPE] = ACTIONS(3030),
    [anon_sym_DASH] = ACTIONS(3028),
    [anon_sym_DASH_EQ] = ACTIONS(3030),
    [anon_sym_DASH_DASH] = ACTIONS(3030),
    [anon_sym_PLUS] = ACTIONS(3028),
    [anon_sym_PLUS_EQ] = ACTIONS(3030),
    [anon_sym_PLUS_PLUS] = ACTIONS(3030),
    [anon_sym_LT] = ACTIONS(3028),
    [anon_sym_LT_EQ] = ACTIONS(3030),
    [anon_sym_LT_LT] = ACTIONS(3028),
    [anon_sym_LT_LT_EQ] = ACTIONS(3030),
    [anon_sym_GT] = ACTIONS(3028),
    [anon_sym_GT_EQ] = ACTIONS(3030),
    [anon_sym_GT_GT_EQ] = ACTIONS(3030),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3030),
    [anon_sym_GT_GT] = ACTIONS(3028),
    [anon_sym_GT_GT_GT] = ACTIONS(3028),
    [anon_sym_BANG] = ACTIONS(3028),
    [anon_sym_BANG_EQ] = ACTIONS(3030),
    [anon_sym_LPAREN] = ACTIONS(3030),
    [anon_sym_RPAREN] = ACTIONS(3030),
    [anon_sym_LBRACK] = ACTIONS(3030),
    [anon_sym_RBRACK] = ACTIONS(3030),
    [anon_sym_QMARK] = ACTIONS(3030),
    [anon_sym_COMMA] = ACTIONS(3030),
    [anon_sym_SEMI] = ACTIONS(3030),
    [anon_sym_COLON] = ACTIONS(3030),
    [anon_sym_DOLLAR] = ACTIONS(3030),
    [anon_sym_EQ] = ACTIONS(3028),
    [anon_sym_EQ_EQ] = ACTIONS(3030),
    [anon_sym_STAR] = ACTIONS(3028),
    [anon_sym_STAR_EQ] = ACTIONS(3030),
    [anon_sym_PERCENT] = ACTIONS(3028),
    [anon_sym_PERCENT_EQ] = ACTIONS(3030),
    [anon_sym_CARET] = ACTIONS(3028),
    [anon_sym_CARET_EQ] = ACTIONS(3030),
    [anon_sym_CARET_CARET] = ACTIONS(3028),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3030),
    [anon_sym_TILDE] = ACTIONS(3028),
    [anon_sym_TILDE_EQ] = ACTIONS(3030),
    [anon_sym_AT] = ACTIONS(3030),
    [anon_sym_EQ_GT] = ACTIONS(3030),
    [anon_sym_POUND] = ACTIONS(3030),
    [anon_sym_BANGin] = ACTIONS(3030),
    [anon_sym_BANGis] = ACTIONS(3030),
    [sym_bool] = ACTIONS(3028),
    [sym_byte] = ACTIONS(3028),
    [sym_ubyte] = ACTIONS(3028),
    [sym_char] = ACTIONS(3028),
    [sym_short] = ACTIONS(3028),
    [sym_ushort] = ACTIONS(3028),
    [sym_int] = ACTIONS(3028),
    [sym_uint] = ACTIONS(3028),
    [sym_long] = ACTIONS(3028),
    [sym_ulong] = ACTIONS(3028),
    [sym_cent] = ACTIONS(3028),
    [sym_ucent] = ACTIONS(3028),
    [sym_wchar] = ACTIONS(3028),
    [sym_dchar] = ACTIONS(3028),
    [sym_float] = ACTIONS(3028),
    [sym_double] = ACTIONS(3028),
    [sym_real] = ACTIONS(3028),
    [sym_ifloat] = ACTIONS(3028),
    [sym_idouble] = ACTIONS(3028),
    [sym_ireal] = ACTIONS(3028),
    [sym_cfloat] = ACTIONS(3028),
    [sym_cdouble] = ACTIONS(3028),
    [sym_creal] = ACTIONS(3028),
    [sym_size_t] = ACTIONS(3028),
    [sym_ptrdiff_t] = ACTIONS(3028),
    [sym_string] = ACTIONS(3028),
    [sym_cstring] = ACTIONS(3028),
    [sym_dstring] = ACTIONS(3028),
    [sym_wstring] = ACTIONS(3028),
    [sym_noreturn] = ACTIONS(3028),
    [sym_true] = ACTIONS(3028),
    [sym_false] = ACTIONS(3028),
    [sym_null] = ACTIONS(3028),
    [sym_super] = ACTIONS(3028),
    [sym_this] = ACTIONS(3028),
    [sym_abstract] = ACTIONS(3028),
    [sym_alias] = ACTIONS(3028),
    [sym_align] = ACTIONS(3028),
    [sym_asm] = ACTIONS(3028),
    [sym_assert] = ACTIONS(3028),
    [sym_auto] = ACTIONS(3028),
    [sym_break] = ACTIONS(3028),
    [sym_case] = ACTIONS(3028),
    [sym_cast] = ACTIONS(3028),
    [sym_catch] = ACTIONS(3028),
    [sym_class] = ACTIONS(3028),
    [sym_const] = ACTIONS(3028),
    [sym_continue] = ACTIONS(3028),
    [sym_debug] = ACTIONS(3028),
    [sym_default] = ACTIONS(3028),
    [sym_delegate] = ACTIONS(3028),
    [sym_delete] = ACTIONS(3028),
    [sym_deprecated] = ACTIONS(3028),
    [sym_do] = ACTIONS(3028),
    [sym_else] = ACTIONS(3028),
    [sym_enum] = ACTIONS(3028),
    [sym_export] = ACTIONS(3028),
    [sym_extern] = ACTIONS(3028),
    [sym_final] = ACTIONS(3028),
    [sym_finally] = ACTIONS(3028),
    [sym_for] = ACTIONS(3028),
    [sym_foreach] = ACTIONS(3028),
    [sym_foreach_reverse] = ACTIONS(3028),
    [sym_function] = ACTIONS(3028),
    [sym_goto] = ACTIONS(3028),
    [sym_if] = ACTIONS(3028),
    [sym_immutable] = ACTIONS(3028),
    [sym_import] = ACTIONS(3028),
    [sym_in] = ACTIONS(3028),
    [sym_inout] = ACTIONS(3028),
    [sym_interface] = ACTIONS(3028),
    [sym_invariant] = ACTIONS(3028),
    [sym_is] = ACTIONS(3028),
    [sym_lazy] = ACTIONS(3028),
    [sym_mixin] = ACTIONS(3028),
    [sym_module] = ACTIONS(3028),
    [sym_new] = ACTIONS(3028),
    [sym_nothrow] = ACTIONS(3028),
    [sym_out] = ACTIONS(3028),
    [sym_override] = ACTIONS(3028),
    [sym_package] = ACTIONS(3028),
    [sym_pragma] = ACTIONS(3028),
    [sym_private] = ACTIONS(3028),
    [sym_protected] = ACTIONS(3028),
    [sym_public] = ACTIONS(3028),
    [sym_pure] = ACTIONS(3028),
    [sym_ref] = ACTIONS(3028),
    [sym_return] = ACTIONS(3028),
    [sym_scope] = ACTIONS(3028),
    [sym_shared] = ACTIONS(3028),
    [sym_static] = ACTIONS(3028),
    [sym_struct] = ACTIONS(3028),
    [sym_switch] = ACTIONS(3028),
    [sym_synchronized] = ACTIONS(3028),
    [sym_template] = ACTIONS(3028),
    [sym_throw] = ACTIONS(3028),
    [sym_try] = ACTIONS(3028),
    [sym_typeid] = ACTIONS(3028),
    [sym_typeof] = ACTIONS(3028),
    [sym_union] = ACTIONS(3028),
    [sym_unittest] = ACTIONS(3028),
    [sym_version] = ACTIONS(3028),
    [sym_while] = ACTIONS(3028),
    [sym_with] = ACTIONS(3028),
    [sym_parameters_] = ACTIONS(3028),
    [sym_gshared] = ACTIONS(3028),
    [sym_traits] = ACTIONS(3028),
    [sym_vector] = ACTIONS(3028),
    [sym_void] = ACTIONS(3028),
    [anon_sym_BQUOTE] = ACTIONS(3030),
    [anon_sym_r_DQUOTE] = ACTIONS(3030),
    [anon_sym_x_DQUOTE] = ACTIONS(3030),
    [anon_sym_DQUOTE] = ACTIONS(3030),
    [anon_sym_i_BQUOTE] = ACTIONS(3030),
    [anon_sym_i_DQUOTE] = ACTIONS(3030),
    [anon_sym_iq_LBRACE] = ACTIONS(3030),
    [aux_sym_char_literal_token1] = ACTIONS(3030),
    [anon_sym_SQUOTE] = ACTIONS(3028),
    [anon_sym___DATE__] = ACTIONS(3028),
    [anon_sym___FILE__] = ACTIONS(3028),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3028),
    [anon_sym___FUNCTION__] = ACTIONS(3028),
    [anon_sym___LINE__] = ACTIONS(3028),
    [anon_sym___MODULE__] = ACTIONS(3028),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3028),
    [anon_sym___TIME__] = ACTIONS(3028),
    [anon_sym___TIMESTAMP__] = ACTIONS(3028),
    [anon_sym___VENDOR__] = ACTIONS(3028),
    [anon_sym___VERSION__] = ACTIONS(3028),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3030),
    [sym_float_literal] = ACTIONS(3030),
    [sym__string] = ACTIONS(3030),
  },
  [657] = {
    [sym_identifier] = ACTIONS(3032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3034),
    [anon_sym_RBRACE] = ACTIONS(3034),
    [anon_sym_LBRACE] = ACTIONS(3034),
    [anon_sym_SLASH] = ACTIONS(3032),
    [anon_sym_SLASH_EQ] = ACTIONS(3034),
    [anon_sym_DOT] = ACTIONS(3032),
    [anon_sym_DOT_DOT] = ACTIONS(3032),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3034),
    [anon_sym_AMP] = ACTIONS(3032),
    [anon_sym_AMP_EQ] = ACTIONS(3034),
    [anon_sym_AMP_AMP] = ACTIONS(3034),
    [anon_sym_PIPE] = ACTIONS(3032),
    [anon_sym_PIPE_EQ] = ACTIONS(3034),
    [anon_sym_PIPE_PIPE] = ACTIONS(3034),
    [anon_sym_DASH] = ACTIONS(3032),
    [anon_sym_DASH_EQ] = ACTIONS(3034),
    [anon_sym_DASH_DASH] = ACTIONS(3034),
    [anon_sym_PLUS] = ACTIONS(3032),
    [anon_sym_PLUS_EQ] = ACTIONS(3034),
    [anon_sym_PLUS_PLUS] = ACTIONS(3034),
    [anon_sym_LT] = ACTIONS(3032),
    [anon_sym_LT_EQ] = ACTIONS(3034),
    [anon_sym_LT_LT] = ACTIONS(3032),
    [anon_sym_LT_LT_EQ] = ACTIONS(3034),
    [anon_sym_GT] = ACTIONS(3032),
    [anon_sym_GT_EQ] = ACTIONS(3034),
    [anon_sym_GT_GT_EQ] = ACTIONS(3034),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3034),
    [anon_sym_GT_GT] = ACTIONS(3032),
    [anon_sym_GT_GT_GT] = ACTIONS(3032),
    [anon_sym_BANG] = ACTIONS(3032),
    [anon_sym_BANG_EQ] = ACTIONS(3034),
    [anon_sym_LPAREN] = ACTIONS(3034),
    [anon_sym_RPAREN] = ACTIONS(3034),
    [anon_sym_LBRACK] = ACTIONS(3034),
    [anon_sym_RBRACK] = ACTIONS(3034),
    [anon_sym_QMARK] = ACTIONS(3034),
    [anon_sym_COMMA] = ACTIONS(3034),
    [anon_sym_SEMI] = ACTIONS(3034),
    [anon_sym_COLON] = ACTIONS(3034),
    [anon_sym_DOLLAR] = ACTIONS(3034),
    [anon_sym_EQ] = ACTIONS(3032),
    [anon_sym_EQ_EQ] = ACTIONS(3034),
    [anon_sym_STAR] = ACTIONS(3032),
    [anon_sym_STAR_EQ] = ACTIONS(3034),
    [anon_sym_PERCENT] = ACTIONS(3032),
    [anon_sym_PERCENT_EQ] = ACTIONS(3034),
    [anon_sym_CARET] = ACTIONS(3032),
    [anon_sym_CARET_EQ] = ACTIONS(3034),
    [anon_sym_CARET_CARET] = ACTIONS(3032),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3034),
    [anon_sym_TILDE] = ACTIONS(3032),
    [anon_sym_TILDE_EQ] = ACTIONS(3034),
    [anon_sym_AT] = ACTIONS(3034),
    [anon_sym_EQ_GT] = ACTIONS(3034),
    [anon_sym_POUND] = ACTIONS(3034),
    [anon_sym_BANGin] = ACTIONS(3034),
    [anon_sym_BANGis] = ACTIONS(3034),
    [sym_bool] = ACTIONS(3032),
    [sym_byte] = ACTIONS(3032),
    [sym_ubyte] = ACTIONS(3032),
    [sym_char] = ACTIONS(3032),
    [sym_short] = ACTIONS(3032),
    [sym_ushort] = ACTIONS(3032),
    [sym_int] = ACTIONS(3032),
    [sym_uint] = ACTIONS(3032),
    [sym_long] = ACTIONS(3032),
    [sym_ulong] = ACTIONS(3032),
    [sym_cent] = ACTIONS(3032),
    [sym_ucent] = ACTIONS(3032),
    [sym_wchar] = ACTIONS(3032),
    [sym_dchar] = ACTIONS(3032),
    [sym_float] = ACTIONS(3032),
    [sym_double] = ACTIONS(3032),
    [sym_real] = ACTIONS(3032),
    [sym_ifloat] = ACTIONS(3032),
    [sym_idouble] = ACTIONS(3032),
    [sym_ireal] = ACTIONS(3032),
    [sym_cfloat] = ACTIONS(3032),
    [sym_cdouble] = ACTIONS(3032),
    [sym_creal] = ACTIONS(3032),
    [sym_size_t] = ACTIONS(3032),
    [sym_ptrdiff_t] = ACTIONS(3032),
    [sym_string] = ACTIONS(3032),
    [sym_cstring] = ACTIONS(3032),
    [sym_dstring] = ACTIONS(3032),
    [sym_wstring] = ACTIONS(3032),
    [sym_noreturn] = ACTIONS(3032),
    [sym_true] = ACTIONS(3032),
    [sym_false] = ACTIONS(3032),
    [sym_null] = ACTIONS(3032),
    [sym_super] = ACTIONS(3032),
    [sym_this] = ACTIONS(3032),
    [sym_abstract] = ACTIONS(3032),
    [sym_alias] = ACTIONS(3032),
    [sym_align] = ACTIONS(3032),
    [sym_asm] = ACTIONS(3032),
    [sym_assert] = ACTIONS(3032),
    [sym_auto] = ACTIONS(3032),
    [sym_break] = ACTIONS(3032),
    [sym_case] = ACTIONS(3032),
    [sym_cast] = ACTIONS(3032),
    [sym_catch] = ACTIONS(3032),
    [sym_class] = ACTIONS(3032),
    [sym_const] = ACTIONS(3032),
    [sym_continue] = ACTIONS(3032),
    [sym_debug] = ACTIONS(3032),
    [sym_default] = ACTIONS(3032),
    [sym_delegate] = ACTIONS(3032),
    [sym_delete] = ACTIONS(3032),
    [sym_deprecated] = ACTIONS(3032),
    [sym_do] = ACTIONS(3032),
    [sym_else] = ACTIONS(3032),
    [sym_enum] = ACTIONS(3032),
    [sym_export] = ACTIONS(3032),
    [sym_extern] = ACTIONS(3032),
    [sym_final] = ACTIONS(3032),
    [sym_finally] = ACTIONS(3032),
    [sym_for] = ACTIONS(3032),
    [sym_foreach] = ACTIONS(3032),
    [sym_foreach_reverse] = ACTIONS(3032),
    [sym_function] = ACTIONS(3032),
    [sym_goto] = ACTIONS(3032),
    [sym_if] = ACTIONS(3032),
    [sym_immutable] = ACTIONS(3032),
    [sym_import] = ACTIONS(3032),
    [sym_in] = ACTIONS(3032),
    [sym_inout] = ACTIONS(3032),
    [sym_interface] = ACTIONS(3032),
    [sym_invariant] = ACTIONS(3032),
    [sym_is] = ACTIONS(3032),
    [sym_lazy] = ACTIONS(3032),
    [sym_mixin] = ACTIONS(3032),
    [sym_module] = ACTIONS(3032),
    [sym_new] = ACTIONS(3032),
    [sym_nothrow] = ACTIONS(3032),
    [sym_out] = ACTIONS(3032),
    [sym_override] = ACTIONS(3032),
    [sym_package] = ACTIONS(3032),
    [sym_pragma] = ACTIONS(3032),
    [sym_private] = ACTIONS(3032),
    [sym_protected] = ACTIONS(3032),
    [sym_public] = ACTIONS(3032),
    [sym_pure] = ACTIONS(3032),
    [sym_ref] = ACTIONS(3032),
    [sym_return] = ACTIONS(3032),
    [sym_scope] = ACTIONS(3032),
    [sym_shared] = ACTIONS(3032),
    [sym_static] = ACTIONS(3032),
    [sym_struct] = ACTIONS(3032),
    [sym_switch] = ACTIONS(3032),
    [sym_synchronized] = ACTIONS(3032),
    [sym_template] = ACTIONS(3032),
    [sym_throw] = ACTIONS(3032),
    [sym_try] = ACTIONS(3032),
    [sym_typeid] = ACTIONS(3032),
    [sym_typeof] = ACTIONS(3032),
    [sym_union] = ACTIONS(3032),
    [sym_unittest] = ACTIONS(3032),
    [sym_version] = ACTIONS(3032),
    [sym_while] = ACTIONS(3032),
    [sym_with] = ACTIONS(3032),
    [sym_parameters_] = ACTIONS(3032),
    [sym_gshared] = ACTIONS(3032),
    [sym_traits] = ACTIONS(3032),
    [sym_vector] = ACTIONS(3032),
    [sym_void] = ACTIONS(3032),
    [anon_sym_BQUOTE] = ACTIONS(3034),
    [anon_sym_r_DQUOTE] = ACTIONS(3034),
    [anon_sym_x_DQUOTE] = ACTIONS(3034),
    [anon_sym_DQUOTE] = ACTIONS(3034),
    [anon_sym_i_BQUOTE] = ACTIONS(3034),
    [anon_sym_i_DQUOTE] = ACTIONS(3034),
    [anon_sym_iq_LBRACE] = ACTIONS(3034),
    [aux_sym_char_literal_token1] = ACTIONS(3034),
    [anon_sym_SQUOTE] = ACTIONS(3032),
    [anon_sym___DATE__] = ACTIONS(3032),
    [anon_sym___FILE__] = ACTIONS(3032),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3032),
    [anon_sym___FUNCTION__] = ACTIONS(3032),
    [anon_sym___LINE__] = ACTIONS(3032),
    [anon_sym___MODULE__] = ACTIONS(3032),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3032),
    [anon_sym___TIME__] = ACTIONS(3032),
    [anon_sym___TIMESTAMP__] = ACTIONS(3032),
    [anon_sym___VENDOR__] = ACTIONS(3032),
    [anon_sym___VERSION__] = ACTIONS(3032),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3034),
    [sym_float_literal] = ACTIONS(3034),
    [sym__string] = ACTIONS(3034),
  },
  [658] = {
    [sym_identifier] = ACTIONS(3056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3058),
    [anon_sym_RBRACE] = ACTIONS(3058),
    [anon_sym_LBRACE] = ACTIONS(3058),
    [anon_sym_SLASH] = ACTIONS(3056),
    [anon_sym_SLASH_EQ] = ACTIONS(3058),
    [anon_sym_DOT] = ACTIONS(3056),
    [anon_sym_DOT_DOT] = ACTIONS(3056),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3058),
    [anon_sym_AMP] = ACTIONS(3056),
    [anon_sym_AMP_EQ] = ACTIONS(3058),
    [anon_sym_AMP_AMP] = ACTIONS(3058),
    [anon_sym_PIPE] = ACTIONS(3056),
    [anon_sym_PIPE_EQ] = ACTIONS(3058),
    [anon_sym_PIPE_PIPE] = ACTIONS(3058),
    [anon_sym_DASH] = ACTIONS(3056),
    [anon_sym_DASH_EQ] = ACTIONS(3058),
    [anon_sym_DASH_DASH] = ACTIONS(3058),
    [anon_sym_PLUS] = ACTIONS(3056),
    [anon_sym_PLUS_EQ] = ACTIONS(3058),
    [anon_sym_PLUS_PLUS] = ACTIONS(3058),
    [anon_sym_LT] = ACTIONS(3056),
    [anon_sym_LT_EQ] = ACTIONS(3058),
    [anon_sym_LT_LT] = ACTIONS(3056),
    [anon_sym_LT_LT_EQ] = ACTIONS(3058),
    [anon_sym_GT] = ACTIONS(3056),
    [anon_sym_GT_EQ] = ACTIONS(3058),
    [anon_sym_GT_GT_EQ] = ACTIONS(3058),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3058),
    [anon_sym_GT_GT] = ACTIONS(3056),
    [anon_sym_GT_GT_GT] = ACTIONS(3056),
    [anon_sym_BANG] = ACTIONS(3056),
    [anon_sym_BANG_EQ] = ACTIONS(3058),
    [anon_sym_LPAREN] = ACTIONS(3058),
    [anon_sym_RPAREN] = ACTIONS(3058),
    [anon_sym_LBRACK] = ACTIONS(3058),
    [anon_sym_RBRACK] = ACTIONS(3058),
    [anon_sym_QMARK] = ACTIONS(3058),
    [anon_sym_COMMA] = ACTIONS(3058),
    [anon_sym_SEMI] = ACTIONS(3058),
    [anon_sym_COLON] = ACTIONS(3058),
    [anon_sym_DOLLAR] = ACTIONS(3058),
    [anon_sym_EQ] = ACTIONS(3056),
    [anon_sym_EQ_EQ] = ACTIONS(3058),
    [anon_sym_STAR] = ACTIONS(3056),
    [anon_sym_STAR_EQ] = ACTIONS(3058),
    [anon_sym_PERCENT] = ACTIONS(3056),
    [anon_sym_PERCENT_EQ] = ACTIONS(3058),
    [anon_sym_CARET] = ACTIONS(3056),
    [anon_sym_CARET_EQ] = ACTIONS(3058),
    [anon_sym_CARET_CARET] = ACTIONS(3056),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3058),
    [anon_sym_TILDE] = ACTIONS(3056),
    [anon_sym_TILDE_EQ] = ACTIONS(3058),
    [anon_sym_AT] = ACTIONS(3058),
    [anon_sym_EQ_GT] = ACTIONS(3058),
    [anon_sym_POUND] = ACTIONS(3058),
    [anon_sym_BANGin] = ACTIONS(3058),
    [anon_sym_BANGis] = ACTIONS(3058),
    [sym_bool] = ACTIONS(3056),
    [sym_byte] = ACTIONS(3056),
    [sym_ubyte] = ACTIONS(3056),
    [sym_char] = ACTIONS(3056),
    [sym_short] = ACTIONS(3056),
    [sym_ushort] = ACTIONS(3056),
    [sym_int] = ACTIONS(3056),
    [sym_uint] = ACTIONS(3056),
    [sym_long] = ACTIONS(3056),
    [sym_ulong] = ACTIONS(3056),
    [sym_cent] = ACTIONS(3056),
    [sym_ucent] = ACTIONS(3056),
    [sym_wchar] = ACTIONS(3056),
    [sym_dchar] = ACTIONS(3056),
    [sym_float] = ACTIONS(3056),
    [sym_double] = ACTIONS(3056),
    [sym_real] = ACTIONS(3056),
    [sym_ifloat] = ACTIONS(3056),
    [sym_idouble] = ACTIONS(3056),
    [sym_ireal] = ACTIONS(3056),
    [sym_cfloat] = ACTIONS(3056),
    [sym_cdouble] = ACTIONS(3056),
    [sym_creal] = ACTIONS(3056),
    [sym_size_t] = ACTIONS(3056),
    [sym_ptrdiff_t] = ACTIONS(3056),
    [sym_string] = ACTIONS(3056),
    [sym_cstring] = ACTIONS(3056),
    [sym_dstring] = ACTIONS(3056),
    [sym_wstring] = ACTIONS(3056),
    [sym_noreturn] = ACTIONS(3056),
    [sym_true] = ACTIONS(3056),
    [sym_false] = ACTIONS(3056),
    [sym_null] = ACTIONS(3056),
    [sym_super] = ACTIONS(3056),
    [sym_this] = ACTIONS(3056),
    [sym_abstract] = ACTIONS(3056),
    [sym_alias] = ACTIONS(3056),
    [sym_align] = ACTIONS(3056),
    [sym_asm] = ACTIONS(3056),
    [sym_assert] = ACTIONS(3056),
    [sym_auto] = ACTIONS(3056),
    [sym_break] = ACTIONS(3056),
    [sym_case] = ACTIONS(3056),
    [sym_cast] = ACTIONS(3056),
    [sym_catch] = ACTIONS(3056),
    [sym_class] = ACTIONS(3056),
    [sym_const] = ACTIONS(3056),
    [sym_continue] = ACTIONS(3056),
    [sym_debug] = ACTIONS(3056),
    [sym_default] = ACTIONS(3056),
    [sym_delegate] = ACTIONS(3056),
    [sym_delete] = ACTIONS(3056),
    [sym_deprecated] = ACTIONS(3056),
    [sym_do] = ACTIONS(3056),
    [sym_else] = ACTIONS(3056),
    [sym_enum] = ACTIONS(3056),
    [sym_export] = ACTIONS(3056),
    [sym_extern] = ACTIONS(3056),
    [sym_final] = ACTIONS(3056),
    [sym_finally] = ACTIONS(3056),
    [sym_for] = ACTIONS(3056),
    [sym_foreach] = ACTIONS(3056),
    [sym_foreach_reverse] = ACTIONS(3056),
    [sym_function] = ACTIONS(3056),
    [sym_goto] = ACTIONS(3056),
    [sym_if] = ACTIONS(3056),
    [sym_immutable] = ACTIONS(3056),
    [sym_import] = ACTIONS(3056),
    [sym_in] = ACTIONS(3056),
    [sym_inout] = ACTIONS(3056),
    [sym_interface] = ACTIONS(3056),
    [sym_invariant] = ACTIONS(3056),
    [sym_is] = ACTIONS(3056),
    [sym_lazy] = ACTIONS(3056),
    [sym_mixin] = ACTIONS(3056),
    [sym_module] = ACTIONS(3056),
    [sym_new] = ACTIONS(3056),
    [sym_nothrow] = ACTIONS(3056),
    [sym_out] = ACTIONS(3056),
    [sym_override] = ACTIONS(3056),
    [sym_package] = ACTIONS(3056),
    [sym_pragma] = ACTIONS(3056),
    [sym_private] = ACTIONS(3056),
    [sym_protected] = ACTIONS(3056),
    [sym_public] = ACTIONS(3056),
    [sym_pure] = ACTIONS(3056),
    [sym_ref] = ACTIONS(3056),
    [sym_return] = ACTIONS(3056),
    [sym_scope] = ACTIONS(3056),
    [sym_shared] = ACTIONS(3056),
    [sym_static] = ACTIONS(3056),
    [sym_struct] = ACTIONS(3056),
    [sym_switch] = ACTIONS(3056),
    [sym_synchronized] = ACTIONS(3056),
    [sym_template] = ACTIONS(3056),
    [sym_throw] = ACTIONS(3056),
    [sym_try] = ACTIONS(3056),
    [sym_typeid] = ACTIONS(3056),
    [sym_typeof] = ACTIONS(3056),
    [sym_union] = ACTIONS(3056),
    [sym_unittest] = ACTIONS(3056),
    [sym_version] = ACTIONS(3056),
    [sym_while] = ACTIONS(3056),
    [sym_with] = ACTIONS(3056),
    [sym_parameters_] = ACTIONS(3056),
    [sym_gshared] = ACTIONS(3056),
    [sym_traits] = ACTIONS(3056),
    [sym_vector] = ACTIONS(3056),
    [sym_void] = ACTIONS(3056),
    [anon_sym_BQUOTE] = ACTIONS(3058),
    [anon_sym_r_DQUOTE] = ACTIONS(3058),
    [anon_sym_x_DQUOTE] = ACTIONS(3058),
    [anon_sym_DQUOTE] = ACTIONS(3058),
    [anon_sym_i_BQUOTE] = ACTIONS(3058),
    [anon_sym_i_DQUOTE] = ACTIONS(3058),
    [anon_sym_iq_LBRACE] = ACTIONS(3058),
    [aux_sym_char_literal_token1] = ACTIONS(3058),
    [anon_sym_SQUOTE] = ACTIONS(3056),
    [anon_sym___DATE__] = ACTIONS(3056),
    [anon_sym___FILE__] = ACTIONS(3056),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3056),
    [anon_sym___FUNCTION__] = ACTIONS(3056),
    [anon_sym___LINE__] = ACTIONS(3056),
    [anon_sym___MODULE__] = ACTIONS(3056),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3056),
    [anon_sym___TIME__] = ACTIONS(3056),
    [anon_sym___TIMESTAMP__] = ACTIONS(3056),
    [anon_sym___VENDOR__] = ACTIONS(3056),
    [anon_sym___VERSION__] = ACTIONS(3056),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3058),
    [sym_float_literal] = ACTIONS(3058),
    [sym__string] = ACTIONS(3058),
  },
  [659] = {
    [sym_identifier] = ACTIONS(2992),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2994),
    [anon_sym_RBRACE] = ACTIONS(2994),
    [anon_sym_LBRACE] = ACTIONS(2994),
    [anon_sym_SLASH] = ACTIONS(2992),
    [anon_sym_SLASH_EQ] = ACTIONS(2994),
    [anon_sym_DOT] = ACTIONS(2992),
    [anon_sym_DOT_DOT] = ACTIONS(2992),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(2994),
    [anon_sym_AMP] = ACTIONS(2992),
    [anon_sym_AMP_EQ] = ACTIONS(2994),
    [anon_sym_AMP_AMP] = ACTIONS(2994),
    [anon_sym_PIPE] = ACTIONS(2992),
    [anon_sym_PIPE_EQ] = ACTIONS(2994),
    [anon_sym_PIPE_PIPE] = ACTIONS(2994),
    [anon_sym_DASH] = ACTIONS(2992),
    [anon_sym_DASH_EQ] = ACTIONS(2994),
    [anon_sym_DASH_DASH] = ACTIONS(2994),
    [anon_sym_PLUS] = ACTIONS(2992),
    [anon_sym_PLUS_EQ] = ACTIONS(2994),
    [anon_sym_PLUS_PLUS] = ACTIONS(2994),
    [anon_sym_LT] = ACTIONS(2992),
    [anon_sym_LT_EQ] = ACTIONS(2994),
    [anon_sym_LT_LT] = ACTIONS(2992),
    [anon_sym_LT_LT_EQ] = ACTIONS(2994),
    [anon_sym_GT] = ACTIONS(2992),
    [anon_sym_GT_EQ] = ACTIONS(2994),
    [anon_sym_GT_GT_EQ] = ACTIONS(2994),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(2994),
    [anon_sym_GT_GT] = ACTIONS(2992),
    [anon_sym_GT_GT_GT] = ACTIONS(2992),
    [anon_sym_BANG] = ACTIONS(2992),
    [anon_sym_BANG_EQ] = ACTIONS(2994),
    [anon_sym_LPAREN] = ACTIONS(2994),
    [anon_sym_RPAREN] = ACTIONS(2994),
    [anon_sym_LBRACK] = ACTIONS(2994),
    [anon_sym_RBRACK] = ACTIONS(2994),
    [anon_sym_QMARK] = ACTIONS(2994),
    [anon_sym_COMMA] = ACTIONS(2994),
    [anon_sym_SEMI] = ACTIONS(2994),
    [anon_sym_COLON] = ACTIONS(2994),
    [anon_sym_DOLLAR] = ACTIONS(2994),
    [anon_sym_EQ] = ACTIONS(2992),
    [anon_sym_EQ_EQ] = ACTIONS(2994),
    [anon_sym_STAR] = ACTIONS(2992),
    [anon_sym_STAR_EQ] = ACTIONS(2994),
    [anon_sym_PERCENT] = ACTIONS(2992),
    [anon_sym_PERCENT_EQ] = ACTIONS(2994),
    [anon_sym_CARET] = ACTIONS(2992),
    [anon_sym_CARET_EQ] = ACTIONS(2994),
    [anon_sym_CARET_CARET] = ACTIONS(2992),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(2994),
    [anon_sym_TILDE] = ACTIONS(2992),
    [anon_sym_TILDE_EQ] = ACTIONS(2994),
    [anon_sym_AT] = ACTIONS(2994),
    [anon_sym_EQ_GT] = ACTIONS(2994),
    [anon_sym_POUND] = ACTIONS(2994),
    [anon_sym_BANGin] = ACTIONS(2994),
    [anon_sym_BANGis] = ACTIONS(2994),
    [sym_bool] = ACTIONS(2992),
    [sym_byte] = ACTIONS(2992),
    [sym_ubyte] = ACTIONS(2992),
    [sym_char] = ACTIONS(2992),
    [sym_short] = ACTIONS(2992),
    [sym_ushort] = ACTIONS(2992),
    [sym_int] = ACTIONS(2992),
    [sym_uint] = ACTIONS(2992),
    [sym_long] = ACTIONS(2992),
    [sym_ulong] = ACTIONS(2992),
    [sym_cent] = ACTIONS(2992),
    [sym_ucent] = ACTIONS(2992),
    [sym_wchar] = ACTIONS(2992),
    [sym_dchar] = ACTIONS(2992),
    [sym_float] = ACTIONS(2992),
    [sym_double] = ACTIONS(2992),
    [sym_real] = ACTIONS(2992),
    [sym_ifloat] = ACTIONS(2992),
    [sym_idouble] = ACTIONS(2992),
    [sym_ireal] = ACTIONS(2992),
    [sym_cfloat] = ACTIONS(2992),
    [sym_cdouble] = ACTIONS(2992),
    [sym_creal] = ACTIONS(2992),
    [sym_size_t] = ACTIONS(2992),
    [sym_ptrdiff_t] = ACTIONS(2992),
    [sym_string] = ACTIONS(2992),
    [sym_cstring] = ACTIONS(2992),
    [sym_dstring] = ACTIONS(2992),
    [sym_wstring] = ACTIONS(2992),
    [sym_noreturn] = ACTIONS(2992),
    [sym_true] = ACTIONS(2992),
    [sym_false] = ACTIONS(2992),
    [sym_null] = ACTIONS(2992),
    [sym_super] = ACTIONS(2992),
    [sym_this] = ACTIONS(2992),
    [sym_abstract] = ACTIONS(2992),
    [sym_alias] = ACTIONS(2992),
    [sym_align] = ACTIONS(2992),
    [sym_asm] = ACTIONS(2992),
    [sym_assert] = ACTIONS(2992),
    [sym_auto] = ACTIONS(2992),
    [sym_break] = ACTIONS(2992),
    [sym_case] = ACTIONS(2992),
    [sym_cast] = ACTIONS(2992),
    [sym_catch] = ACTIONS(2992),
    [sym_class] = ACTIONS(2992),
    [sym_const] = ACTIONS(2992),
    [sym_continue] = ACTIONS(2992),
    [sym_debug] = ACTIONS(2992),
    [sym_default] = ACTIONS(2992),
    [sym_delegate] = ACTIONS(2992),
    [sym_delete] = ACTIONS(2992),
    [sym_deprecated] = ACTIONS(2992),
    [sym_do] = ACTIONS(2992),
    [sym_else] = ACTIONS(2992),
    [sym_enum] = ACTIONS(2992),
    [sym_export] = ACTIONS(2992),
    [sym_extern] = ACTIONS(2992),
    [sym_final] = ACTIONS(2992),
    [sym_finally] = ACTIONS(2992),
    [sym_for] = ACTIONS(2992),
    [sym_foreach] = ACTIONS(2992),
    [sym_foreach_reverse] = ACTIONS(2992),
    [sym_function] = ACTIONS(2992),
    [sym_goto] = ACTIONS(2992),
    [sym_if] = ACTIONS(2992),
    [sym_immutable] = ACTIONS(2992),
    [sym_import] = ACTIONS(2992),
    [sym_in] = ACTIONS(2992),
    [sym_inout] = ACTIONS(2992),
    [sym_interface] = ACTIONS(2992),
    [sym_invariant] = ACTIONS(2992),
    [sym_is] = ACTIONS(2992),
    [sym_lazy] = ACTIONS(2992),
    [sym_mixin] = ACTIONS(2992),
    [sym_module] = ACTIONS(2992),
    [sym_new] = ACTIONS(2992),
    [sym_nothrow] = ACTIONS(2992),
    [sym_out] = ACTIONS(2992),
    [sym_override] = ACTIONS(2992),
    [sym_package] = ACTIONS(2992),
    [sym_pragma] = ACTIONS(2992),
    [sym_private] = ACTIONS(2992),
    [sym_protected] = ACTIONS(2992),
    [sym_public] = ACTIONS(2992),
    [sym_pure] = ACTIONS(2992),
    [sym_ref] = ACTIONS(2992),
    [sym_return] = ACTIONS(2992),
    [sym_scope] = ACTIONS(2992),
    [sym_shared] = ACTIONS(2992),
    [sym_static] = ACTIONS(2992),
    [sym_struct] = ACTIONS(2992),
    [sym_switch] = ACTIONS(2992),
    [sym_synchronized] = ACTIONS(2992),
    [sym_template] = ACTIONS(2992),
    [sym_throw] = ACTIONS(2992),
    [sym_try] = ACTIONS(2992),
    [sym_typeid] = ACTIONS(2992),
    [sym_typeof] = ACTIONS(2992),
    [sym_union] = ACTIONS(2992),
    [sym_unittest] = ACTIONS(2992),
    [sym_version] = ACTIONS(2992),
    [sym_while] = ACTIONS(2992),
    [sym_with] = ACTIONS(2992),
    [sym_parameters_] = ACTIONS(2992),
    [sym_gshared] = ACTIONS(2992),
    [sym_traits] = ACTIONS(2992),
    [sym_vector] = ACTIONS(2992),
    [sym_void] = ACTIONS(2992),
    [anon_sym_BQUOTE] = ACTIONS(2994),
    [anon_sym_r_DQUOTE] = ACTIONS(2994),
    [anon_sym_x_DQUOTE] = ACTIONS(2994),
    [anon_sym_DQUOTE] = ACTIONS(2994),
    [anon_sym_i_BQUOTE] = ACTIONS(2994),
    [anon_sym_i_DQUOTE] = ACTIONS(2994),
    [anon_sym_iq_LBRACE] = ACTIONS(2994),
    [aux_sym_char_literal_token1] = ACTIONS(2994),
    [anon_sym_SQUOTE] = ACTIONS(2992),
    [anon_sym___DATE__] = ACTIONS(2992),
    [anon_sym___FILE__] = ACTIONS(2992),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2992),
    [anon_sym___FUNCTION__] = ACTIONS(2992),
    [anon_sym___LINE__] = ACTIONS(2992),
    [anon_sym___MODULE__] = ACTIONS(2992),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2992),
    [anon_sym___TIME__] = ACTIONS(2992),
    [anon_sym___TIMESTAMP__] = ACTIONS(2992),
    [anon_sym___VENDOR__] = ACTIONS(2992),
    [anon_sym___VERSION__] = ACTIONS(2992),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2994),
    [sym_float_literal] = ACTIONS(2994),
    [sym__string] = ACTIONS(2994),
  },
  [660] = {
    [sym_identifier] = ACTIONS(3020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3022),
    [anon_sym_RBRACE] = ACTIONS(3022),
    [anon_sym_LBRACE] = ACTIONS(3022),
    [anon_sym_SLASH] = ACTIONS(3020),
    [anon_sym_SLASH_EQ] = ACTIONS(3022),
    [anon_sym_DOT] = ACTIONS(3020),
    [anon_sym_DOT_DOT] = ACTIONS(3020),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3022),
    [anon_sym_AMP] = ACTIONS(3020),
    [anon_sym_AMP_EQ] = ACTIONS(3022),
    [anon_sym_AMP_AMP] = ACTIONS(3022),
    [anon_sym_PIPE] = ACTIONS(3020),
    [anon_sym_PIPE_EQ] = ACTIONS(3022),
    [anon_sym_PIPE_PIPE] = ACTIONS(3022),
    [anon_sym_DASH] = ACTIONS(3020),
    [anon_sym_DASH_EQ] = ACTIONS(3022),
    [anon_sym_DASH_DASH] = ACTIONS(3022),
    [anon_sym_PLUS] = ACTIONS(3020),
    [anon_sym_PLUS_EQ] = ACTIONS(3022),
    [anon_sym_PLUS_PLUS] = ACTIONS(3022),
    [anon_sym_LT] = ACTIONS(3020),
    [anon_sym_LT_EQ] = ACTIONS(3022),
    [anon_sym_LT_LT] = ACTIONS(3020),
    [anon_sym_LT_LT_EQ] = ACTIONS(3022),
    [anon_sym_GT] = ACTIONS(3020),
    [anon_sym_GT_EQ] = ACTIONS(3022),
    [anon_sym_GT_GT_EQ] = ACTIONS(3022),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3022),
    [anon_sym_GT_GT] = ACTIONS(3020),
    [anon_sym_GT_GT_GT] = ACTIONS(3020),
    [anon_sym_BANG] = ACTIONS(3020),
    [anon_sym_BANG_EQ] = ACTIONS(3022),
    [anon_sym_LPAREN] = ACTIONS(3022),
    [anon_sym_RPAREN] = ACTIONS(3022),
    [anon_sym_LBRACK] = ACTIONS(3022),
    [anon_sym_RBRACK] = ACTIONS(3022),
    [anon_sym_QMARK] = ACTIONS(3022),
    [anon_sym_COMMA] = ACTIONS(3022),
    [anon_sym_SEMI] = ACTIONS(3022),
    [anon_sym_COLON] = ACTIONS(3022),
    [anon_sym_DOLLAR] = ACTIONS(3022),
    [anon_sym_EQ] = ACTIONS(3020),
    [anon_sym_EQ_EQ] = ACTIONS(3022),
    [anon_sym_STAR] = ACTIONS(3020),
    [anon_sym_STAR_EQ] = ACTIONS(3022),
    [anon_sym_PERCENT] = ACTIONS(3020),
    [anon_sym_PERCENT_EQ] = ACTIONS(3022),
    [anon_sym_CARET] = ACTIONS(3020),
    [anon_sym_CARET_EQ] = ACTIONS(3022),
    [anon_sym_CARET_CARET] = ACTIONS(3020),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3022),
    [anon_sym_TILDE] = ACTIONS(3020),
    [anon_sym_TILDE_EQ] = ACTIONS(3022),
    [anon_sym_AT] = ACTIONS(3022),
    [anon_sym_EQ_GT] = ACTIONS(3022),
    [anon_sym_POUND] = ACTIONS(3022),
    [anon_sym_BANGin] = ACTIONS(3022),
    [anon_sym_BANGis] = ACTIONS(3022),
    [sym_bool] = ACTIONS(3020),
    [sym_byte] = ACTIONS(3020),
    [sym_ubyte] = ACTIONS(3020),
    [sym_char] = ACTIONS(3020),
    [sym_short] = ACTIONS(3020),
    [sym_ushort] = ACTIONS(3020),
    [sym_int] = ACTIONS(3020),
    [sym_uint] = ACTIONS(3020),
    [sym_long] = ACTIONS(3020),
    [sym_ulong] = ACTIONS(3020),
    [sym_cent] = ACTIONS(3020),
    [sym_ucent] = ACTIONS(3020),
    [sym_wchar] = ACTIONS(3020),
    [sym_dchar] = ACTIONS(3020),
    [sym_float] = ACTIONS(3020),
    [sym_double] = ACTIONS(3020),
    [sym_real] = ACTIONS(3020),
    [sym_ifloat] = ACTIONS(3020),
    [sym_idouble] = ACTIONS(3020),
    [sym_ireal] = ACTIONS(3020),
    [sym_cfloat] = ACTIONS(3020),
    [sym_cdouble] = ACTIONS(3020),
    [sym_creal] = ACTIONS(3020),
    [sym_size_t] = ACTIONS(3020),
    [sym_ptrdiff_t] = ACTIONS(3020),
    [sym_string] = ACTIONS(3020),
    [sym_cstring] = ACTIONS(3020),
    [sym_dstring] = ACTIONS(3020),
    [sym_wstring] = ACTIONS(3020),
    [sym_noreturn] = ACTIONS(3020),
    [sym_true] = ACTIONS(3020),
    [sym_false] = ACTIONS(3020),
    [sym_null] = ACTIONS(3020),
    [sym_super] = ACTIONS(3020),
    [sym_this] = ACTIONS(3020),
    [sym_abstract] = ACTIONS(3020),
    [sym_alias] = ACTIONS(3020),
    [sym_align] = ACTIONS(3020),
    [sym_asm] = ACTIONS(3020),
    [sym_assert] = ACTIONS(3020),
    [sym_auto] = ACTIONS(3020),
    [sym_break] = ACTIONS(3020),
    [sym_case] = ACTIONS(3020),
    [sym_cast] = ACTIONS(3020),
    [sym_catch] = ACTIONS(3020),
    [sym_class] = ACTIONS(3020),
    [sym_const] = ACTIONS(3020),
    [sym_continue] = ACTIONS(3020),
    [sym_debug] = ACTIONS(3020),
    [sym_default] = ACTIONS(3020),
    [sym_delegate] = ACTIONS(3020),
    [sym_delete] = ACTIONS(3020),
    [sym_deprecated] = ACTIONS(3020),
    [sym_do] = ACTIONS(3020),
    [sym_else] = ACTIONS(3020),
    [sym_enum] = ACTIONS(3020),
    [sym_export] = ACTIONS(3020),
    [sym_extern] = ACTIONS(3020),
    [sym_final] = ACTIONS(3020),
    [sym_finally] = ACTIONS(3020),
    [sym_for] = ACTIONS(3020),
    [sym_foreach] = ACTIONS(3020),
    [sym_foreach_reverse] = ACTIONS(3020),
    [sym_function] = ACTIONS(3020),
    [sym_goto] = ACTIONS(3020),
    [sym_if] = ACTIONS(3020),
    [sym_immutable] = ACTIONS(3020),
    [sym_import] = ACTIONS(3020),
    [sym_in] = ACTIONS(3020),
    [sym_inout] = ACTIONS(3020),
    [sym_interface] = ACTIONS(3020),
    [sym_invariant] = ACTIONS(3020),
    [sym_is] = ACTIONS(3020),
    [sym_lazy] = ACTIONS(3020),
    [sym_mixin] = ACTIONS(3020),
    [sym_module] = ACTIONS(3020),
    [sym_new] = ACTIONS(3020),
    [sym_nothrow] = ACTIONS(3020),
    [sym_out] = ACTIONS(3020),
    [sym_override] = ACTIONS(3020),
    [sym_package] = ACTIONS(3020),
    [sym_pragma] = ACTIONS(3020),
    [sym_private] = ACTIONS(3020),
    [sym_protected] = ACTIONS(3020),
    [sym_public] = ACTIONS(3020),
    [sym_pure] = ACTIONS(3020),
    [sym_ref] = ACTIONS(3020),
    [sym_return] = ACTIONS(3020),
    [sym_scope] = ACTIONS(3020),
    [sym_shared] = ACTIONS(3020),
    [sym_static] = ACTIONS(3020),
    [sym_struct] = ACTIONS(3020),
    [sym_switch] = ACTIONS(3020),
    [sym_synchronized] = ACTIONS(3020),
    [sym_template] = ACTIONS(3020),
    [sym_throw] = ACTIONS(3020),
    [sym_try] = ACTIONS(3020),
    [sym_typeid] = ACTIONS(3020),
    [sym_typeof] = ACTIONS(3020),
    [sym_union] = ACTIONS(3020),
    [sym_unittest] = ACTIONS(3020),
    [sym_version] = ACTIONS(3020),
    [sym_while] = ACTIONS(3020),
    [sym_with] = ACTIONS(3020),
    [sym_parameters_] = ACTIONS(3020),
    [sym_gshared] = ACTIONS(3020),
    [sym_traits] = ACTIONS(3020),
    [sym_vector] = ACTIONS(3020),
    [sym_void] = ACTIONS(3020),
    [anon_sym_BQUOTE] = ACTIONS(3022),
    [anon_sym_r_DQUOTE] = ACTIONS(3022),
    [anon_sym_x_DQUOTE] = ACTIONS(3022),
    [anon_sym_DQUOTE] = ACTIONS(3022),
    [anon_sym_i_BQUOTE] = ACTIONS(3022),
    [anon_sym_i_DQUOTE] = ACTIONS(3022),
    [anon_sym_iq_LBRACE] = ACTIONS(3022),
    [aux_sym_char_literal_token1] = ACTIONS(3022),
    [anon_sym_SQUOTE] = ACTIONS(3020),
    [anon_sym___DATE__] = ACTIONS(3020),
    [anon_sym___FILE__] = ACTIONS(3020),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3020),
    [anon_sym___FUNCTION__] = ACTIONS(3020),
    [anon_sym___LINE__] = ACTIONS(3020),
    [anon_sym___MODULE__] = ACTIONS(3020),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3020),
    [anon_sym___TIME__] = ACTIONS(3020),
    [anon_sym___TIMESTAMP__] = ACTIONS(3020),
    [anon_sym___VENDOR__] = ACTIONS(3020),
    [anon_sym___VERSION__] = ACTIONS(3020),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3022),
    [sym_float_literal] = ACTIONS(3022),
    [sym__string] = ACTIONS(3022),
  },
  [661] = {
    [sym_identifier] = ACTIONS(3064),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3067),
    [anon_sym_RBRACE] = ACTIONS(3067),
    [anon_sym_LBRACE] = ACTIONS(3067),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3067),
    [anon_sym_AMP] = ACTIONS(3064),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3064),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3067),
    [anon_sym_PLUS] = ACTIONS(3064),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3067),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3064),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3067),
    [anon_sym_RPAREN] = ACTIONS(3067),
    [anon_sym_LBRACK] = ACTIONS(3067),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3067),
    [anon_sym_DOLLAR] = ACTIONS(3067),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3064),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3064),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3067),
    [sym_bool] = ACTIONS(3064),
    [sym_byte] = ACTIONS(3064),
    [sym_ubyte] = ACTIONS(3064),
    [sym_char] = ACTIONS(3064),
    [sym_short] = ACTIONS(3064),
    [sym_ushort] = ACTIONS(3064),
    [sym_int] = ACTIONS(3064),
    [sym_uint] = ACTIONS(3064),
    [sym_long] = ACTIONS(3064),
    [sym_ulong] = ACTIONS(3064),
    [sym_cent] = ACTIONS(3064),
    [sym_ucent] = ACTIONS(3064),
    [sym_wchar] = ACTIONS(3064),
    [sym_dchar] = ACTIONS(3064),
    [sym_float] = ACTIONS(3064),
    [sym_double] = ACTIONS(3064),
    [sym_real] = ACTIONS(3064),
    [sym_ifloat] = ACTIONS(3064),
    [sym_idouble] = ACTIONS(3064),
    [sym_ireal] = ACTIONS(3064),
    [sym_cfloat] = ACTIONS(3064),
    [sym_cdouble] = ACTIONS(3064),
    [sym_creal] = ACTIONS(3064),
    [sym_size_t] = ACTIONS(3064),
    [sym_ptrdiff_t] = ACTIONS(3064),
    [sym_string] = ACTIONS(3064),
    [sym_cstring] = ACTIONS(3064),
    [sym_dstring] = ACTIONS(3064),
    [sym_wstring] = ACTIONS(3064),
    [sym_noreturn] = ACTIONS(3064),
    [sym_true] = ACTIONS(3064),
    [sym_false] = ACTIONS(3064),
    [sym_null] = ACTIONS(3064),
    [sym_super] = ACTIONS(3064),
    [sym_this] = ACTIONS(3064),
    [sym_abstract] = ACTIONS(3064),
    [sym_alias] = ACTIONS(3064),
    [sym_align] = ACTIONS(3064),
    [sym_asm] = ACTIONS(3064),
    [sym_assert] = ACTIONS(3064),
    [sym_auto] = ACTIONS(3064),
    [sym_break] = ACTIONS(3064),
    [sym_case] = ACTIONS(3064),
    [sym_cast] = ACTIONS(3064),
    [sym_catch] = ACTIONS(3064),
    [sym_class] = ACTIONS(3064),
    [sym_const] = ACTIONS(3064),
    [sym_continue] = ACTIONS(3064),
    [sym_debug] = ACTIONS(3064),
    [sym_default] = ACTIONS(3064),
    [sym_delegate] = ACTIONS(3064),
    [sym_delete] = ACTIONS(3064),
    [sym_deprecated] = ACTIONS(3064),
    [sym_do] = ACTIONS(3064),
    [sym_else] = ACTIONS(3064),
    [sym_enum] = ACTIONS(3064),
    [sym_export] = ACTIONS(3064),
    [sym_extern] = ACTIONS(3064),
    [sym_final] = ACTIONS(3064),
    [sym_finally] = ACTIONS(3064),
    [sym_for] = ACTIONS(3064),
    [sym_foreach] = ACTIONS(3064),
    [sym_foreach_reverse] = ACTIONS(3064),
    [sym_function] = ACTIONS(3064),
    [sym_goto] = ACTIONS(3064),
    [sym_if] = ACTIONS(3064),
    [sym_immutable] = ACTIONS(3064),
    [sym_import] = ACTIONS(3064),
    [sym_in] = ACTIONS(3064),
    [sym_inout] = ACTIONS(3064),
    [sym_interface] = ACTIONS(3064),
    [sym_invariant] = ACTIONS(3064),
    [sym_is] = ACTIONS(3064),
    [sym_mixin] = ACTIONS(3064),
    [sym_new] = ACTIONS(3064),
    [sym_nothrow] = ACTIONS(3064),
    [sym_out] = ACTIONS(3064),
    [sym_override] = ACTIONS(3064),
    [sym_package] = ACTIONS(3064),
    [sym_pragma] = ACTIONS(3064),
    [sym_private] = ACTIONS(3064),
    [sym_protected] = ACTIONS(3064),
    [sym_public] = ACTIONS(3064),
    [sym_pure] = ACTIONS(3064),
    [sym_ref] = ACTIONS(3064),
    [sym_return] = ACTIONS(3064),
    [sym_scope] = ACTIONS(3064),
    [sym_shared] = ACTIONS(3064),
    [sym_static] = ACTIONS(3064),
    [sym_struct] = ACTIONS(3064),
    [sym_switch] = ACTIONS(3064),
    [sym_synchronized] = ACTIONS(3064),
    [sym_template] = ACTIONS(3064),
    [sym_throw] = ACTIONS(3064),
    [sym_try] = ACTIONS(3064),
    [sym_typeid] = ACTIONS(3064),
    [sym_typeof] = ACTIONS(3064),
    [sym_union] = ACTIONS(3064),
    [sym_unittest] = ACTIONS(3064),
    [sym_version] = ACTIONS(3064),
    [sym_while] = ACTIONS(3064),
    [sym_with] = ACTIONS(3064),
    [sym_gshared] = ACTIONS(3064),
    [sym_traits] = ACTIONS(3064),
    [sym_vector] = ACTIONS(3064),
    [sym_void] = ACTIONS(3064),
    [anon_sym_BQUOTE] = ACTIONS(3067),
    [anon_sym_r_DQUOTE] = ACTIONS(3067),
    [anon_sym_x_DQUOTE] = ACTIONS(3067),
    [anon_sym_DQUOTE] = ACTIONS(3067),
    [anon_sym_i_BQUOTE] = ACTIONS(3067),
    [anon_sym_i_DQUOTE] = ACTIONS(3067),
    [anon_sym_iq_LBRACE] = ACTIONS(3067),
    [aux_sym_char_literal_token1] = ACTIONS(3067),
    [anon_sym_SQUOTE] = ACTIONS(3064),
    [anon_sym___DATE__] = ACTIONS(3064),
    [anon_sym___FILE__] = ACTIONS(3064),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3064),
    [anon_sym___FUNCTION__] = ACTIONS(3064),
    [anon_sym___LINE__] = ACTIONS(3064),
    [anon_sym___MODULE__] = ACTIONS(3064),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3064),
    [anon_sym___TIME__] = ACTIONS(3064),
    [anon_sym___TIMESTAMP__] = ACTIONS(3064),
    [anon_sym___VENDOR__] = ACTIONS(3064),
    [anon_sym___VERSION__] = ACTIONS(3064),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3067),
    [sym_float_literal] = ACTIONS(3067),
    [sym__string] = ACTIONS(3067),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [662] = {
    [sym_identifier] = ACTIONS(3074),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3076),
    [anon_sym_RBRACE] = ACTIONS(3076),
    [anon_sym_LBRACE] = ACTIONS(3076),
    [anon_sym_SLASH] = ACTIONS(3078),
    [anon_sym_SLASH_EQ] = ACTIONS(3080),
    [anon_sym_DOT] = ACTIONS(3082),
    [anon_sym_AMP] = ACTIONS(3085),
    [anon_sym_AMP_EQ] = ACTIONS(3080),
    [anon_sym_AMP_AMP] = ACTIONS(3080),
    [anon_sym_PIPE] = ACTIONS(3078),
    [anon_sym_PIPE_EQ] = ACTIONS(3080),
    [anon_sym_PIPE_PIPE] = ACTIONS(3080),
    [anon_sym_DASH] = ACTIONS(3085),
    [anon_sym_DASH_EQ] = ACTIONS(3080),
    [anon_sym_DASH_DASH] = ACTIONS(3082),
    [anon_sym_PLUS] = ACTIONS(3085),
    [anon_sym_PLUS_EQ] = ACTIONS(3080),
    [anon_sym_PLUS_PLUS] = ACTIONS(3082),
    [anon_sym_LT] = ACTIONS(3078),
    [anon_sym_LT_EQ] = ACTIONS(3080),
    [anon_sym_LT_LT] = ACTIONS(3078),
    [anon_sym_LT_LT_EQ] = ACTIONS(3080),
    [anon_sym_GT] = ACTIONS(3078),
    [anon_sym_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT] = ACTIONS(3078),
    [anon_sym_GT_GT_GT] = ACTIONS(3078),
    [anon_sym_BANG] = ACTIONS(3074),
    [anon_sym_BANG_EQ] = ACTIONS(3080),
    [anon_sym_LPAREN] = ACTIONS(3082),
    [anon_sym_RPAREN] = ACTIONS(3076),
    [anon_sym_LBRACK] = ACTIONS(3082),
    [anon_sym_QMARK] = ACTIONS(3080),
    [anon_sym_COMMA] = ACTIONS(3080),
    [anon_sym_SEMI] = ACTIONS(3082),
    [anon_sym_DOLLAR] = ACTIONS(3076),
    [anon_sym_EQ] = ACTIONS(3078),
    [anon_sym_EQ_EQ] = ACTIONS(3080),
    [anon_sym_STAR] = ACTIONS(3085),
    [anon_sym_STAR_EQ] = ACTIONS(3080),
    [anon_sym_PERCENT] = ACTIONS(3078),
    [anon_sym_PERCENT_EQ] = ACTIONS(3080),
    [anon_sym_CARET] = ACTIONS(3078),
    [anon_sym_CARET_EQ] = ACTIONS(3080),
    [anon_sym_CARET_CARET] = ACTIONS(3078),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3080),
    [anon_sym_TILDE] = ACTIONS(3085),
    [anon_sym_TILDE_EQ] = ACTIONS(3080),
    [anon_sym_AT] = ACTIONS(3076),
    [sym_bool] = ACTIONS(3074),
    [sym_byte] = ACTIONS(3074),
    [sym_ubyte] = ACTIONS(3074),
    [sym_char] = ACTIONS(3074),
    [sym_short] = ACTIONS(3074),
    [sym_ushort] = ACTIONS(3074),
    [sym_int] = ACTIONS(3074),
    [sym_uint] = ACTIONS(3074),
    [sym_long] = ACTIONS(3074),
    [sym_ulong] = ACTIONS(3074),
    [sym_cent] = ACTIONS(3074),
    [sym_ucent] = ACTIONS(3074),
    [sym_wchar] = ACTIONS(3074),
    [sym_dchar] = ACTIONS(3074),
    [sym_float] = ACTIONS(3074),
    [sym_double] = ACTIONS(3074),
    [sym_real] = ACTIONS(3074),
    [sym_ifloat] = ACTIONS(3074),
    [sym_idouble] = ACTIONS(3074),
    [sym_ireal] = ACTIONS(3074),
    [sym_cfloat] = ACTIONS(3074),
    [sym_cdouble] = ACTIONS(3074),
    [sym_creal] = ACTIONS(3074),
    [sym_size_t] = ACTIONS(3074),
    [sym_ptrdiff_t] = ACTIONS(3074),
    [sym_string] = ACTIONS(3074),
    [sym_cstring] = ACTIONS(3074),
    [sym_dstring] = ACTIONS(3074),
    [sym_wstring] = ACTIONS(3074),
    [sym_noreturn] = ACTIONS(3074),
    [sym_true] = ACTIONS(3074),
    [sym_false] = ACTIONS(3074),
    [sym_null] = ACTIONS(3074),
    [sym_super] = ACTIONS(3074),
    [sym_this] = ACTIONS(3074),
    [sym_abstract] = ACTIONS(3074),
    [sym_alias] = ACTIONS(3074),
    [sym_align] = ACTIONS(3074),
    [sym_asm] = ACTIONS(3074),
    [sym_assert] = ACTIONS(3074),
    [sym_auto] = ACTIONS(3074),
    [sym_break] = ACTIONS(3074),
    [sym_case] = ACTIONS(3074),
    [sym_cast] = ACTIONS(3074),
    [sym_catch] = ACTIONS(3074),
    [sym_class] = ACTIONS(3074),
    [sym_const] = ACTIONS(3074),
    [sym_continue] = ACTIONS(3074),
    [sym_debug] = ACTIONS(3074),
    [sym_default] = ACTIONS(3074),
    [sym_delegate] = ACTIONS(3074),
    [sym_delete] = ACTIONS(3074),
    [sym_deprecated] = ACTIONS(3074),
    [sym_do] = ACTIONS(3074),
    [sym_else] = ACTIONS(3074),
    [sym_enum] = ACTIONS(3074),
    [sym_export] = ACTIONS(3074),
    [sym_extern] = ACTIONS(3074),
    [sym_final] = ACTIONS(3074),
    [sym_finally] = ACTIONS(3074),
    [sym_for] = ACTIONS(3074),
    [sym_foreach] = ACTIONS(3074),
    [sym_foreach_reverse] = ACTIONS(3074),
    [sym_function] = ACTIONS(3074),
    [sym_goto] = ACTIONS(3074),
    [sym_if] = ACTIONS(3074),
    [sym_immutable] = ACTIONS(3074),
    [sym_import] = ACTIONS(3074),
    [sym_in] = ACTIONS(3085),
    [sym_inout] = ACTIONS(3074),
    [sym_interface] = ACTIONS(3074),
    [sym_invariant] = ACTIONS(3074),
    [sym_is] = ACTIONS(3085),
    [sym_mixin] = ACTIONS(3074),
    [sym_new] = ACTIONS(3074),
    [sym_nothrow] = ACTIONS(3074),
    [sym_out] = ACTIONS(3074),
    [sym_override] = ACTIONS(3074),
    [sym_package] = ACTIONS(3074),
    [sym_pragma] = ACTIONS(3074),
    [sym_private] = ACTIONS(3074),
    [sym_protected] = ACTIONS(3074),
    [sym_public] = ACTIONS(3074),
    [sym_pure] = ACTIONS(3074),
    [sym_ref] = ACTIONS(3074),
    [sym_return] = ACTIONS(3074),
    [sym_scope] = ACTIONS(3074),
    [sym_shared] = ACTIONS(3074),
    [sym_static] = ACTIONS(3074),
    [sym_struct] = ACTIONS(3074),
    [sym_switch] = ACTIONS(3074),
    [sym_synchronized] = ACTIONS(3074),
    [sym_template] = ACTIONS(3074),
    [sym_throw] = ACTIONS(3074),
    [sym_try] = ACTIONS(3074),
    [sym_typeid] = ACTIONS(3074),
    [sym_typeof] = ACTIONS(3074),
    [sym_union] = ACTIONS(3074),
    [sym_unittest] = ACTIONS(3074),
    [sym_version] = ACTIONS(3074),
    [sym_while] = ACTIONS(3074),
    [sym_with] = ACTIONS(3074),
    [sym_gshared] = ACTIONS(3074),
    [sym_traits] = ACTIONS(3074),
    [sym_vector] = ACTIONS(3074),
    [sym_void] = ACTIONS(3074),
    [anon_sym_BQUOTE] = ACTIONS(3076),
    [anon_sym_r_DQUOTE] = ACTIONS(3076),
    [anon_sym_x_DQUOTE] = ACTIONS(3076),
    [anon_sym_DQUOTE] = ACTIONS(3076),
    [anon_sym_i_BQUOTE] = ACTIONS(3076),
    [anon_sym_i_DQUOTE] = ACTIONS(3076),
    [anon_sym_iq_LBRACE] = ACTIONS(3076),
    [aux_sym_char_literal_token1] = ACTIONS(3076),
    [anon_sym_SQUOTE] = ACTIONS(3074),
    [anon_sym___DATE__] = ACTIONS(3074),
    [anon_sym___FILE__] = ACTIONS(3074),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3074),
    [anon_sym___FUNCTION__] = ACTIONS(3074),
    [anon_sym___LINE__] = ACTIONS(3074),
    [anon_sym___MODULE__] = ACTIONS(3074),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3074),
    [anon_sym___TIME__] = ACTIONS(3074),
    [anon_sym___TIMESTAMP__] = ACTIONS(3074),
    [anon_sym___VENDOR__] = ACTIONS(3074),
    [anon_sym___VERSION__] = ACTIONS(3074),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3076),
    [sym_float_literal] = ACTIONS(3076),
    [sym__string] = ACTIONS(3076),
    [sym_not_in] = ACTIONS(3080),
    [sym_not_is] = ACTIONS(3080),
  },
  [663] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_RBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3091),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_abstract] = ACTIONS(3088),
    [sym_alias] = ACTIONS(3088),
    [sym_align] = ACTIONS(3088),
    [sym_asm] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_break] = ACTIONS(3088),
    [sym_case] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_catch] = ACTIONS(3088),
    [sym_class] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_continue] = ACTIONS(3088),
    [sym_debug] = ACTIONS(3088),
    [sym_default] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_deprecated] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(3094),
    [sym_enum] = ACTIONS(3088),
    [sym_export] = ACTIONS(3088),
    [sym_extern] = ACTIONS(3088),
    [sym_final] = ACTIONS(3088),
    [sym_finally] = ACTIONS(3088),
    [sym_for] = ACTIONS(3088),
    [sym_foreach] = ACTIONS(3088),
    [sym_foreach_reverse] = ACTIONS(3088),
    [sym_function] = ACTIONS(3088),
    [sym_goto] = ACTIONS(3088),
    [sym_if] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_interface] = ACTIONS(3088),
    [sym_invariant] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_nothrow] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_override] = ACTIONS(3088),
    [sym_package] = ACTIONS(3088),
    [sym_pragma] = ACTIONS(3088),
    [sym_private] = ACTIONS(3088),
    [sym_protected] = ACTIONS(3088),
    [sym_public] = ACTIONS(3088),
    [sym_pure] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_return] = ACTIONS(3088),
    [sym_scope] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_static] = ACTIONS(3088),
    [sym_struct] = ACTIONS(3088),
    [sym_switch] = ACTIONS(3088),
    [sym_synchronized] = ACTIONS(3088),
    [sym_template] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_try] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_union] = ACTIONS(3088),
    [sym_unittest] = ACTIONS(3088),
    [sym_version] = ACTIONS(3088),
    [sym_while] = ACTIONS(3088),
    [sym_with] = ACTIONS(3088),
    [sym_gshared] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [664] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3100),
    [anon_sym_RBRACE] = ACTIONS(3100),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_SLASH] = ACTIONS(3098),
    [anon_sym_SLASH_EQ] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_AMP] = ACTIONS(3098),
    [anon_sym_AMP_EQ] = ACTIONS(3100),
    [anon_sym_AMP_AMP] = ACTIONS(3100),
    [anon_sym_PIPE] = ACTIONS(3098),
    [anon_sym_PIPE_EQ] = ACTIONS(3100),
    [anon_sym_PIPE_PIPE] = ACTIONS(3100),
    [anon_sym_DASH] = ACTIONS(3098),
    [anon_sym_DASH_EQ] = ACTIONS(3100),
    [anon_sym_DASH_DASH] = ACTIONS(3100),
    [anon_sym_PLUS] = ACTIONS(3098),
    [anon_sym_PLUS_EQ] = ACTIONS(3100),
    [anon_sym_PLUS_PLUS] = ACTIONS(3100),
    [anon_sym_LT] = ACTIONS(3098),
    [anon_sym_LT_EQ] = ACTIONS(3100),
    [anon_sym_LT_LT] = ACTIONS(3098),
    [anon_sym_LT_LT_EQ] = ACTIONS(3100),
    [anon_sym_GT] = ACTIONS(3098),
    [anon_sym_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT] = ACTIONS(3098),
    [anon_sym_GT_GT_GT] = ACTIONS(3098),
    [anon_sym_BANG] = ACTIONS(3098),
    [anon_sym_BANG_EQ] = ACTIONS(3100),
    [anon_sym_LPAREN] = ACTIONS(3100),
    [anon_sym_RPAREN] = ACTIONS(3100),
    [anon_sym_LBRACK] = ACTIONS(3100),
    [anon_sym_QMARK] = ACTIONS(3100),
    [anon_sym_COMMA] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_DOLLAR] = ACTIONS(3100),
    [anon_sym_EQ] = ACTIONS(3098),
    [anon_sym_EQ_EQ] = ACTIONS(3100),
    [anon_sym_STAR] = ACTIONS(3098),
    [anon_sym_STAR_EQ] = ACTIONS(3100),
    [anon_sym_PERCENT] = ACTIONS(3098),
    [anon_sym_PERCENT_EQ] = ACTIONS(3100),
    [anon_sym_CARET] = ACTIONS(3098),
    [anon_sym_CARET_EQ] = ACTIONS(3100),
    [anon_sym_CARET_CARET] = ACTIONS(3098),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3098),
    [anon_sym_TILDE_EQ] = ACTIONS(3100),
    [anon_sym_AT] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_true] = ACTIONS(3098),
    [sym_false] = ACTIONS(3098),
    [sym_null] = ACTIONS(3098),
    [sym_super] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_abstract] = ACTIONS(3098),
    [sym_alias] = ACTIONS(3098),
    [sym_align] = ACTIONS(3098),
    [sym_asm] = ACTIONS(3098),
    [sym_assert] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_break] = ACTIONS(3098),
    [sym_case] = ACTIONS(3098),
    [sym_cast] = ACTIONS(3098),
    [sym_catch] = ACTIONS(3098),
    [sym_class] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_continue] = ACTIONS(3098),
    [sym_debug] = ACTIONS(3098),
    [sym_default] = ACTIONS(3098),
    [sym_delegate] = ACTIONS(3098),
    [sym_delete] = ACTIONS(3098),
    [sym_deprecated] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_enum] = ACTIONS(3098),
    [sym_export] = ACTIONS(3098),
    [sym_extern] = ACTIONS(3098),
    [sym_final] = ACTIONS(3098),
    [sym_finally] = ACTIONS(3098),
    [sym_for] = ACTIONS(3098),
    [sym_foreach] = ACTIONS(3098),
    [sym_foreach_reverse] = ACTIONS(3098),
    [sym_function] = ACTIONS(3098),
    [sym_goto] = ACTIONS(3098),
    [sym_if] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_interface] = ACTIONS(3098),
    [sym_invariant] = ACTIONS(3098),
    [sym_is] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_new] = ACTIONS(3098),
    [sym_nothrow] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_override] = ACTIONS(3098),
    [sym_package] = ACTIONS(3098),
    [sym_pragma] = ACTIONS(3098),
    [sym_private] = ACTIONS(3098),
    [sym_protected] = ACTIONS(3098),
    [sym_public] = ACTIONS(3098),
    [sym_pure] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_return] = ACTIONS(3098),
    [sym_scope] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_static] = ACTIONS(3098),
    [sym_struct] = ACTIONS(3098),
    [sym_switch] = ACTIONS(3098),
    [sym_synchronized] = ACTIONS(3098),
    [sym_template] = ACTIONS(3098),
    [sym_throw] = ACTIONS(3098),
    [sym_try] = ACTIONS(3098),
    [sym_typeid] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_union] = ACTIONS(3098),
    [sym_unittest] = ACTIONS(3098),
    [sym_version] = ACTIONS(3098),
    [sym_while] = ACTIONS(3098),
    [sym_with] = ACTIONS(3098),
    [sym_gshared] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [anon_sym_BQUOTE] = ACTIONS(3100),
    [anon_sym_r_DQUOTE] = ACTIONS(3100),
    [anon_sym_x_DQUOTE] = ACTIONS(3100),
    [anon_sym_DQUOTE] = ACTIONS(3100),
    [anon_sym_i_BQUOTE] = ACTIONS(3100),
    [anon_sym_i_DQUOTE] = ACTIONS(3100),
    [anon_sym_iq_LBRACE] = ACTIONS(3100),
    [aux_sym_char_literal_token1] = ACTIONS(3100),
    [anon_sym_SQUOTE] = ACTIONS(3098),
    [anon_sym___DATE__] = ACTIONS(3098),
    [anon_sym___FILE__] = ACTIONS(3098),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3098),
    [anon_sym___FUNCTION__] = ACTIONS(3098),
    [anon_sym___LINE__] = ACTIONS(3098),
    [anon_sym___MODULE__] = ACTIONS(3098),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3098),
    [anon_sym___TIME__] = ACTIONS(3098),
    [anon_sym___TIMESTAMP__] = ACTIONS(3098),
    [anon_sym___VENDOR__] = ACTIONS(3098),
    [anon_sym___VERSION__] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3100),
    [sym_float_literal] = ACTIONS(3100),
    [sym__string] = ACTIONS(3100),
    [sym_not_in] = ACTIONS(3100),
    [sym_not_is] = ACTIONS(3100),
  },
  [665] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3104),
    [anon_sym_RBRACE] = ACTIONS(3104),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_SLASH] = ACTIONS(3102),
    [anon_sym_SLASH_EQ] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_AMP] = ACTIONS(3102),
    [anon_sym_AMP_EQ] = ACTIONS(3104),
    [anon_sym_AMP_AMP] = ACTIONS(3104),
    [anon_sym_PIPE] = ACTIONS(3102),
    [anon_sym_PIPE_EQ] = ACTIONS(3104),
    [anon_sym_PIPE_PIPE] = ACTIONS(3104),
    [anon_sym_DASH] = ACTIONS(3102),
    [anon_sym_DASH_EQ] = ACTIONS(3104),
    [anon_sym_DASH_DASH] = ACTIONS(3104),
    [anon_sym_PLUS] = ACTIONS(3102),
    [anon_sym_PLUS_EQ] = ACTIONS(3104),
    [anon_sym_PLUS_PLUS] = ACTIONS(3104),
    [anon_sym_LT] = ACTIONS(3102),
    [anon_sym_LT_EQ] = ACTIONS(3104),
    [anon_sym_LT_LT] = ACTIONS(3102),
    [anon_sym_LT_LT_EQ] = ACTIONS(3104),
    [anon_sym_GT] = ACTIONS(3102),
    [anon_sym_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT] = ACTIONS(3102),
    [anon_sym_GT_GT_GT] = ACTIONS(3102),
    [anon_sym_BANG] = ACTIONS(3102),
    [anon_sym_BANG_EQ] = ACTIONS(3104),
    [anon_sym_LPAREN] = ACTIONS(3104),
    [anon_sym_RPAREN] = ACTIONS(3104),
    [anon_sym_LBRACK] = ACTIONS(3104),
    [anon_sym_QMARK] = ACTIONS(3104),
    [anon_sym_COMMA] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_DOLLAR] = ACTIONS(3104),
    [anon_sym_EQ] = ACTIONS(3102),
    [anon_sym_EQ_EQ] = ACTIONS(3104),
    [anon_sym_STAR] = ACTIONS(3102),
    [anon_sym_STAR_EQ] = ACTIONS(3104),
    [anon_sym_PERCENT] = ACTIONS(3102),
    [anon_sym_PERCENT_EQ] = ACTIONS(3104),
    [anon_sym_CARET] = ACTIONS(3102),
    [anon_sym_CARET_EQ] = ACTIONS(3104),
    [anon_sym_CARET_CARET] = ACTIONS(3102),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3102),
    [anon_sym_TILDE_EQ] = ACTIONS(3104),
    [anon_sym_AT] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_true] = ACTIONS(3102),
    [sym_false] = ACTIONS(3102),
    [sym_null] = ACTIONS(3102),
    [sym_super] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_abstract] = ACTIONS(3102),
    [sym_alias] = ACTIONS(3102),
    [sym_align] = ACTIONS(3102),
    [sym_asm] = ACTIONS(3102),
    [sym_assert] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_break] = ACTIONS(3102),
    [sym_case] = ACTIONS(3102),
    [sym_cast] = ACTIONS(3102),
    [sym_catch] = ACTIONS(3102),
    [sym_class] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_continue] = ACTIONS(3102),
    [sym_debug] = ACTIONS(3102),
    [sym_default] = ACTIONS(3102),
    [sym_delegate] = ACTIONS(3102),
    [sym_delete] = ACTIONS(3102),
    [sym_deprecated] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_enum] = ACTIONS(3102),
    [sym_export] = ACTIONS(3102),
    [sym_extern] = ACTIONS(3102),
    [sym_final] = ACTIONS(3102),
    [sym_finally] = ACTIONS(3102),
    [sym_for] = ACTIONS(3102),
    [sym_foreach] = ACTIONS(3102),
    [sym_foreach_reverse] = ACTIONS(3102),
    [sym_function] = ACTIONS(3102),
    [sym_goto] = ACTIONS(3102),
    [sym_if] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_interface] = ACTIONS(3102),
    [sym_invariant] = ACTIONS(3102),
    [sym_is] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_new] = ACTIONS(3102),
    [sym_nothrow] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_override] = ACTIONS(3102),
    [sym_package] = ACTIONS(3102),
    [sym_pragma] = ACTIONS(3102),
    [sym_private] = ACTIONS(3102),
    [sym_protected] = ACTIONS(3102),
    [sym_public] = ACTIONS(3102),
    [sym_pure] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_return] = ACTIONS(3102),
    [sym_scope] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_static] = ACTIONS(3102),
    [sym_struct] = ACTIONS(3102),
    [sym_switch] = ACTIONS(3102),
    [sym_synchronized] = ACTIONS(3102),
    [sym_template] = ACTIONS(3102),
    [sym_throw] = ACTIONS(3102),
    [sym_try] = ACTIONS(3102),
    [sym_typeid] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_union] = ACTIONS(3102),
    [sym_unittest] = ACTIONS(3102),
    [sym_version] = ACTIONS(3102),
    [sym_while] = ACTIONS(3102),
    [sym_with] = ACTIONS(3102),
    [sym_gshared] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [anon_sym_BQUOTE] = ACTIONS(3104),
    [anon_sym_r_DQUOTE] = ACTIONS(3104),
    [anon_sym_x_DQUOTE] = ACTIONS(3104),
    [anon_sym_DQUOTE] = ACTIONS(3104),
    [anon_sym_i_BQUOTE] = ACTIONS(3104),
    [anon_sym_i_DQUOTE] = ACTIONS(3104),
    [anon_sym_iq_LBRACE] = ACTIONS(3104),
    [aux_sym_char_literal_token1] = ACTIONS(3104),
    [anon_sym_SQUOTE] = ACTIONS(3102),
    [anon_sym___DATE__] = ACTIONS(3102),
    [anon_sym___FILE__] = ACTIONS(3102),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3102),
    [anon_sym___FUNCTION__] = ACTIONS(3102),
    [anon_sym___LINE__] = ACTIONS(3102),
    [anon_sym___MODULE__] = ACTIONS(3102),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3102),
    [anon_sym___TIME__] = ACTIONS(3102),
    [anon_sym___TIMESTAMP__] = ACTIONS(3102),
    [anon_sym___VENDOR__] = ACTIONS(3102),
    [anon_sym___VERSION__] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3104),
    [sym_float_literal] = ACTIONS(3104),
    [sym__string] = ACTIONS(3104),
    [sym_not_in] = ACTIONS(3104),
    [sym_not_is] = ACTIONS(3104),
  },
  [666] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3072),
    [anon_sym_RBRACE] = ACTIONS(3072),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_AMP] = ACTIONS(3070),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3070),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3072),
    [anon_sym_PLUS] = ACTIONS(3070),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3072),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3070),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3072),
    [anon_sym_RPAREN] = ACTIONS(3072),
    [anon_sym_LBRACK] = ACTIONS(3072),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_DOLLAR] = ACTIONS(3072),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3070),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3070),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_true] = ACTIONS(3070),
    [sym_false] = ACTIONS(3070),
    [sym_null] = ACTIONS(3070),
    [sym_super] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_asm] = ACTIONS(3070),
    [sym_assert] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_break] = ACTIONS(3070),
    [sym_case] = ACTIONS(3070),
    [sym_cast] = ACTIONS(3070),
    [sym_catch] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_continue] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_default] = ACTIONS(3070),
    [sym_delegate] = ACTIONS(3070),
    [sym_delete] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_finally] = ACTIONS(3070),
    [sym_for] = ACTIONS(3070),
    [sym_foreach] = ACTIONS(3070),
    [sym_foreach_reverse] = ACTIONS(3070),
    [sym_function] = ACTIONS(3070),
    [sym_goto] = ACTIONS(3070),
    [sym_if] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_is] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_new] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_switch] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_throw] = ACTIONS(3070),
    [sym_try] = ACTIONS(3070),
    [sym_typeid] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_with] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [anon_sym_BQUOTE] = ACTIONS(3072),
    [anon_sym_r_DQUOTE] = ACTIONS(3072),
    [anon_sym_x_DQUOTE] = ACTIONS(3072),
    [anon_sym_DQUOTE] = ACTIONS(3072),
    [anon_sym_i_BQUOTE] = ACTIONS(3072),
    [anon_sym_i_DQUOTE] = ACTIONS(3072),
    [anon_sym_iq_LBRACE] = ACTIONS(3072),
    [aux_sym_char_literal_token1] = ACTIONS(3072),
    [anon_sym_SQUOTE] = ACTIONS(3070),
    [anon_sym___DATE__] = ACTIONS(3070),
    [anon_sym___FILE__] = ACTIONS(3070),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3070),
    [anon_sym___FUNCTION__] = ACTIONS(3070),
    [anon_sym___LINE__] = ACTIONS(3070),
    [anon_sym___MODULE__] = ACTIONS(3070),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3070),
    [anon_sym___TIME__] = ACTIONS(3070),
    [anon_sym___TIMESTAMP__] = ACTIONS(3070),
    [anon_sym___VENDOR__] = ACTIONS(3070),
    [anon_sym___VERSION__] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3072),
    [sym_float_literal] = ACTIONS(3072),
    [sym__string] = ACTIONS(3072),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [667] = {
    [sym_identifier] = ACTIONS(3106),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3109),
    [anon_sym_RBRACE] = ACTIONS(3109),
    [anon_sym_LBRACE] = ACTIONS(3109),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3109),
    [anon_sym_AMP] = ACTIONS(3106),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3106),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3109),
    [anon_sym_PLUS] = ACTIONS(3106),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3109),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3106),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3109),
    [anon_sym_RPAREN] = ACTIONS(3109),
    [anon_sym_LBRACK] = ACTIONS(3109),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3109),
    [anon_sym_DOLLAR] = ACTIONS(3109),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3106),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3106),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3109),
    [sym_bool] = ACTIONS(3106),
    [sym_byte] = ACTIONS(3106),
    [sym_ubyte] = ACTIONS(3106),
    [sym_char] = ACTIONS(3106),
    [sym_short] = ACTIONS(3106),
    [sym_ushort] = ACTIONS(3106),
    [sym_int] = ACTIONS(3106),
    [sym_uint] = ACTIONS(3106),
    [sym_long] = ACTIONS(3106),
    [sym_ulong] = ACTIONS(3106),
    [sym_cent] = ACTIONS(3106),
    [sym_ucent] = ACTIONS(3106),
    [sym_wchar] = ACTIONS(3106),
    [sym_dchar] = ACTIONS(3106),
    [sym_float] = ACTIONS(3106),
    [sym_double] = ACTIONS(3106),
    [sym_real] = ACTIONS(3106),
    [sym_ifloat] = ACTIONS(3106),
    [sym_idouble] = ACTIONS(3106),
    [sym_ireal] = ACTIONS(3106),
    [sym_cfloat] = ACTIONS(3106),
    [sym_cdouble] = ACTIONS(3106),
    [sym_creal] = ACTIONS(3106),
    [sym_size_t] = ACTIONS(3106),
    [sym_ptrdiff_t] = ACTIONS(3106),
    [sym_string] = ACTIONS(3106),
    [sym_cstring] = ACTIONS(3106),
    [sym_dstring] = ACTIONS(3106),
    [sym_wstring] = ACTIONS(3106),
    [sym_noreturn] = ACTIONS(3106),
    [sym_true] = ACTIONS(3106),
    [sym_false] = ACTIONS(3106),
    [sym_null] = ACTIONS(3106),
    [sym_super] = ACTIONS(3106),
    [sym_this] = ACTIONS(3106),
    [sym_abstract] = ACTIONS(3106),
    [sym_alias] = ACTIONS(3106),
    [sym_align] = ACTIONS(3106),
    [sym_asm] = ACTIONS(3106),
    [sym_assert] = ACTIONS(3106),
    [sym_auto] = ACTIONS(3106),
    [sym_break] = ACTIONS(3106),
    [sym_case] = ACTIONS(3106),
    [sym_cast] = ACTIONS(3106),
    [sym_catch] = ACTIONS(3106),
    [sym_class] = ACTIONS(3106),
    [sym_const] = ACTIONS(3106),
    [sym_continue] = ACTIONS(3106),
    [sym_debug] = ACTIONS(3106),
    [sym_default] = ACTIONS(3106),
    [sym_delegate] = ACTIONS(3106),
    [sym_delete] = ACTIONS(3106),
    [sym_deprecated] = ACTIONS(3106),
    [sym_do] = ACTIONS(3106),
    [sym_else] = ACTIONS(3106),
    [sym_enum] = ACTIONS(3106),
    [sym_export] = ACTIONS(3106),
    [sym_extern] = ACTIONS(3106),
    [sym_final] = ACTIONS(3106),
    [sym_finally] = ACTIONS(3106),
    [sym_for] = ACTIONS(3106),
    [sym_foreach] = ACTIONS(3106),
    [sym_foreach_reverse] = ACTIONS(3106),
    [sym_function] = ACTIONS(3106),
    [sym_goto] = ACTIONS(3106),
    [sym_if] = ACTIONS(3106),
    [sym_immutable] = ACTIONS(3106),
    [sym_import] = ACTIONS(3106),
    [sym_in] = ACTIONS(3106),
    [sym_inout] = ACTIONS(3106),
    [sym_interface] = ACTIONS(3106),
    [sym_invariant] = ACTIONS(3106),
    [sym_is] = ACTIONS(3106),
    [sym_mixin] = ACTIONS(3106),
    [sym_new] = ACTIONS(3106),
    [sym_nothrow] = ACTIONS(3106),
    [sym_out] = ACTIONS(3106),
    [sym_override] = ACTIONS(3106),
    [sym_package] = ACTIONS(3106),
    [sym_pragma] = ACTIONS(3106),
    [sym_private] = ACTIONS(3106),
    [sym_protected] = ACTIONS(3106),
    [sym_public] = ACTIONS(3106),
    [sym_pure] = ACTIONS(3106),
    [sym_ref] = ACTIONS(3106),
    [sym_return] = ACTIONS(3106),
    [sym_scope] = ACTIONS(3106),
    [sym_shared] = ACTIONS(3106),
    [sym_static] = ACTIONS(3106),
    [sym_struct] = ACTIONS(3106),
    [sym_switch] = ACTIONS(3106),
    [sym_synchronized] = ACTIONS(3106),
    [sym_template] = ACTIONS(3106),
    [sym_throw] = ACTIONS(3106),
    [sym_try] = ACTIONS(3106),
    [sym_typeid] = ACTIONS(3106),
    [sym_typeof] = ACTIONS(3106),
    [sym_union] = ACTIONS(3106),
    [sym_unittest] = ACTIONS(3106),
    [sym_version] = ACTIONS(3106),
    [sym_while] = ACTIONS(3106),
    [sym_with] = ACTIONS(3106),
    [sym_gshared] = ACTIONS(3106),
    [sym_traits] = ACTIONS(3106),
    [sym_vector] = ACTIONS(3106),
    [sym_void] = ACTIONS(3106),
    [anon_sym_BQUOTE] = ACTIONS(3109),
    [anon_sym_r_DQUOTE] = ACTIONS(3109),
    [anon_sym_x_DQUOTE] = ACTIONS(3109),
    [anon_sym_DQUOTE] = ACTIONS(3109),
    [anon_sym_i_BQUOTE] = ACTIONS(3109),
    [anon_sym_i_DQUOTE] = ACTIONS(3109),
    [anon_sym_iq_LBRACE] = ACTIONS(3109),
    [aux_sym_char_literal_token1] = ACTIONS(3109),
    [anon_sym_SQUOTE] = ACTIONS(3106),
    [anon_sym___DATE__] = ACTIONS(3106),
    [anon_sym___FILE__] = ACTIONS(3106),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3106),
    [anon_sym___FUNCTION__] = ACTIONS(3106),
    [anon_sym___LINE__] = ACTIONS(3106),
    [anon_sym___MODULE__] = ACTIONS(3106),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3106),
    [anon_sym___TIME__] = ACTIONS(3106),
    [anon_sym___TIMESTAMP__] = ACTIONS(3106),
    [anon_sym___VENDOR__] = ACTIONS(3106),
    [anon_sym___VERSION__] = ACTIONS(3106),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3109),
    [sym_float_literal] = ACTIONS(3109),
    [sym__string] = ACTIONS(3109),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [668] = {
    [sym_identifier] = ACTIONS(3112),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3115),
    [anon_sym_RBRACE] = ACTIONS(3115),
    [anon_sym_LBRACE] = ACTIONS(3115),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3115),
    [anon_sym_AMP] = ACTIONS(3112),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3112),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3115),
    [anon_sym_PLUS] = ACTIONS(3112),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3115),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3112),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3115),
    [anon_sym_RPAREN] = ACTIONS(3115),
    [anon_sym_LBRACK] = ACTIONS(3115),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3115),
    [anon_sym_DOLLAR] = ACTIONS(3115),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3112),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3112),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3115),
    [sym_bool] = ACTIONS(3112),
    [sym_byte] = ACTIONS(3112),
    [sym_ubyte] = ACTIONS(3112),
    [sym_char] = ACTIONS(3112),
    [sym_short] = ACTIONS(3112),
    [sym_ushort] = ACTIONS(3112),
    [sym_int] = ACTIONS(3112),
    [sym_uint] = ACTIONS(3112),
    [sym_long] = ACTIONS(3112),
    [sym_ulong] = ACTIONS(3112),
    [sym_cent] = ACTIONS(3112),
    [sym_ucent] = ACTIONS(3112),
    [sym_wchar] = ACTIONS(3112),
    [sym_dchar] = ACTIONS(3112),
    [sym_float] = ACTIONS(3112),
    [sym_double] = ACTIONS(3112),
    [sym_real] = ACTIONS(3112),
    [sym_ifloat] = ACTIONS(3112),
    [sym_idouble] = ACTIONS(3112),
    [sym_ireal] = ACTIONS(3112),
    [sym_cfloat] = ACTIONS(3112),
    [sym_cdouble] = ACTIONS(3112),
    [sym_creal] = ACTIONS(3112),
    [sym_size_t] = ACTIONS(3112),
    [sym_ptrdiff_t] = ACTIONS(3112),
    [sym_string] = ACTIONS(3112),
    [sym_cstring] = ACTIONS(3112),
    [sym_dstring] = ACTIONS(3112),
    [sym_wstring] = ACTIONS(3112),
    [sym_noreturn] = ACTIONS(3112),
    [sym_true] = ACTIONS(3112),
    [sym_false] = ACTIONS(3112),
    [sym_null] = ACTIONS(3112),
    [sym_super] = ACTIONS(3112),
    [sym_this] = ACTIONS(3112),
    [sym_abstract] = ACTIONS(3112),
    [sym_alias] = ACTIONS(3112),
    [sym_align] = ACTIONS(3112),
    [sym_asm] = ACTIONS(3112),
    [sym_assert] = ACTIONS(3112),
    [sym_auto] = ACTIONS(3112),
    [sym_break] = ACTIONS(3112),
    [sym_case] = ACTIONS(3112),
    [sym_cast] = ACTIONS(3112),
    [sym_catch] = ACTIONS(3112),
    [sym_class] = ACTIONS(3112),
    [sym_const] = ACTIONS(3112),
    [sym_continue] = ACTIONS(3112),
    [sym_debug] = ACTIONS(3112),
    [sym_default] = ACTIONS(3112),
    [sym_delegate] = ACTIONS(3112),
    [sym_delete] = ACTIONS(3112),
    [sym_deprecated] = ACTIONS(3112),
    [sym_do] = ACTIONS(3112),
    [sym_else] = ACTIONS(3112),
    [sym_enum] = ACTIONS(3112),
    [sym_export] = ACTIONS(3112),
    [sym_extern] = ACTIONS(3112),
    [sym_final] = ACTIONS(3112),
    [sym_finally] = ACTIONS(3112),
    [sym_for] = ACTIONS(3112),
    [sym_foreach] = ACTIONS(3112),
    [sym_foreach_reverse] = ACTIONS(3112),
    [sym_function] = ACTIONS(3112),
    [sym_goto] = ACTIONS(3112),
    [sym_if] = ACTIONS(3112),
    [sym_immutable] = ACTIONS(3112),
    [sym_import] = ACTIONS(3112),
    [sym_in] = ACTIONS(3112),
    [sym_inout] = ACTIONS(3112),
    [sym_interface] = ACTIONS(3112),
    [sym_invariant] = ACTIONS(3112),
    [sym_is] = ACTIONS(3112),
    [sym_mixin] = ACTIONS(3112),
    [sym_new] = ACTIONS(3112),
    [sym_nothrow] = ACTIONS(3112),
    [sym_out] = ACTIONS(3112),
    [sym_override] = ACTIONS(3112),
    [sym_package] = ACTIONS(3112),
    [sym_pragma] = ACTIONS(3112),
    [sym_private] = ACTIONS(3112),
    [sym_protected] = ACTIONS(3112),
    [sym_public] = ACTIONS(3112),
    [sym_pure] = ACTIONS(3112),
    [sym_ref] = ACTIONS(3112),
    [sym_return] = ACTIONS(3112),
    [sym_scope] = ACTIONS(3112),
    [sym_shared] = ACTIONS(3112),
    [sym_static] = ACTIONS(3112),
    [sym_struct] = ACTIONS(3112),
    [sym_switch] = ACTIONS(3112),
    [sym_synchronized] = ACTIONS(3112),
    [sym_template] = ACTIONS(3112),
    [sym_throw] = ACTIONS(3112),
    [sym_try] = ACTIONS(3112),
    [sym_typeid] = ACTIONS(3112),
    [sym_typeof] = ACTIONS(3112),
    [sym_union] = ACTIONS(3112),
    [sym_unittest] = ACTIONS(3112),
    [sym_version] = ACTIONS(3112),
    [sym_while] = ACTIONS(3112),
    [sym_with] = ACTIONS(3112),
    [sym_gshared] = ACTIONS(3112),
    [sym_traits] = ACTIONS(3112),
    [sym_vector] = ACTIONS(3112),
    [sym_void] = ACTIONS(3112),
    [anon_sym_BQUOTE] = ACTIONS(3115),
    [anon_sym_r_DQUOTE] = ACTIONS(3115),
    [anon_sym_x_DQUOTE] = ACTIONS(3115),
    [anon_sym_DQUOTE] = ACTIONS(3115),
    [anon_sym_i_BQUOTE] = ACTIONS(3115),
    [anon_sym_i_DQUOTE] = ACTIONS(3115),
    [anon_sym_iq_LBRACE] = ACTIONS(3115),
    [aux_sym_char_literal_token1] = ACTIONS(3115),
    [anon_sym_SQUOTE] = ACTIONS(3112),
    [anon_sym___DATE__] = ACTIONS(3112),
    [anon_sym___FILE__] = ACTIONS(3112),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3112),
    [anon_sym___FUNCTION__] = ACTIONS(3112),
    [anon_sym___LINE__] = ACTIONS(3112),
    [anon_sym___MODULE__] = ACTIONS(3112),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3112),
    [anon_sym___TIME__] = ACTIONS(3112),
    [anon_sym___TIMESTAMP__] = ACTIONS(3112),
    [anon_sym___VENDOR__] = ACTIONS(3112),
    [anon_sym___VERSION__] = ACTIONS(3112),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3115),
    [sym_float_literal] = ACTIONS(3115),
    [sym__string] = ACTIONS(3115),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [669] = {
    [sym_identifier] = ACTIONS(3118),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3121),
    [anon_sym_RBRACE] = ACTIONS(3121),
    [anon_sym_LBRACE] = ACTIONS(3121),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3121),
    [anon_sym_AMP] = ACTIONS(3118),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3118),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3121),
    [anon_sym_PLUS] = ACTIONS(3118),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3121),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3118),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3121),
    [anon_sym_RPAREN] = ACTIONS(3121),
    [anon_sym_LBRACK] = ACTIONS(3121),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3121),
    [anon_sym_DOLLAR] = ACTIONS(3121),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3118),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3118),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3121),
    [sym_bool] = ACTIONS(3118),
    [sym_byte] = ACTIONS(3118),
    [sym_ubyte] = ACTIONS(3118),
    [sym_char] = ACTIONS(3118),
    [sym_short] = ACTIONS(3118),
    [sym_ushort] = ACTIONS(3118),
    [sym_int] = ACTIONS(3118),
    [sym_uint] = ACTIONS(3118),
    [sym_long] = ACTIONS(3118),
    [sym_ulong] = ACTIONS(3118),
    [sym_cent] = ACTIONS(3118),
    [sym_ucent] = ACTIONS(3118),
    [sym_wchar] = ACTIONS(3118),
    [sym_dchar] = ACTIONS(3118),
    [sym_float] = ACTIONS(3118),
    [sym_double] = ACTIONS(3118),
    [sym_real] = ACTIONS(3118),
    [sym_ifloat] = ACTIONS(3118),
    [sym_idouble] = ACTIONS(3118),
    [sym_ireal] = ACTIONS(3118),
    [sym_cfloat] = ACTIONS(3118),
    [sym_cdouble] = ACTIONS(3118),
    [sym_creal] = ACTIONS(3118),
    [sym_size_t] = ACTIONS(3118),
    [sym_ptrdiff_t] = ACTIONS(3118),
    [sym_string] = ACTIONS(3118),
    [sym_cstring] = ACTIONS(3118),
    [sym_dstring] = ACTIONS(3118),
    [sym_wstring] = ACTIONS(3118),
    [sym_noreturn] = ACTIONS(3118),
    [sym_true] = ACTIONS(3118),
    [sym_false] = ACTIONS(3118),
    [sym_null] = ACTIONS(3118),
    [sym_super] = ACTIONS(3118),
    [sym_this] = ACTIONS(3118),
    [sym_abstract] = ACTIONS(3118),
    [sym_alias] = ACTIONS(3118),
    [sym_align] = ACTIONS(3118),
    [sym_asm] = ACTIONS(3118),
    [sym_assert] = ACTIONS(3118),
    [sym_auto] = ACTIONS(3118),
    [sym_break] = ACTIONS(3118),
    [sym_case] = ACTIONS(3118),
    [sym_cast] = ACTIONS(3118),
    [sym_catch] = ACTIONS(3118),
    [sym_class] = ACTIONS(3118),
    [sym_const] = ACTIONS(3118),
    [sym_continue] = ACTIONS(3118),
    [sym_debug] = ACTIONS(3118),
    [sym_default] = ACTIONS(3118),
    [sym_delegate] = ACTIONS(3118),
    [sym_delete] = ACTIONS(3118),
    [sym_deprecated] = ACTIONS(3118),
    [sym_do] = ACTIONS(3118),
    [sym_else] = ACTIONS(3118),
    [sym_enum] = ACTIONS(3118),
    [sym_export] = ACTIONS(3118),
    [sym_extern] = ACTIONS(3118),
    [sym_final] = ACTIONS(3118),
    [sym_finally] = ACTIONS(3118),
    [sym_for] = ACTIONS(3118),
    [sym_foreach] = ACTIONS(3118),
    [sym_foreach_reverse] = ACTIONS(3118),
    [sym_function] = ACTIONS(3118),
    [sym_goto] = ACTIONS(3118),
    [sym_if] = ACTIONS(3118),
    [sym_immutable] = ACTIONS(3118),
    [sym_import] = ACTIONS(3118),
    [sym_in] = ACTIONS(3118),
    [sym_inout] = ACTIONS(3118),
    [sym_interface] = ACTIONS(3118),
    [sym_invariant] = ACTIONS(3118),
    [sym_is] = ACTIONS(3118),
    [sym_mixin] = ACTIONS(3118),
    [sym_new] = ACTIONS(3118),
    [sym_nothrow] = ACTIONS(3118),
    [sym_out] = ACTIONS(3118),
    [sym_override] = ACTIONS(3118),
    [sym_package] = ACTIONS(3118),
    [sym_pragma] = ACTIONS(3118),
    [sym_private] = ACTIONS(3118),
    [sym_protected] = ACTIONS(3118),
    [sym_public] = ACTIONS(3118),
    [sym_pure] = ACTIONS(3118),
    [sym_ref] = ACTIONS(3118),
    [sym_return] = ACTIONS(3118),
    [sym_scope] = ACTIONS(3118),
    [sym_shared] = ACTIONS(3118),
    [sym_static] = ACTIONS(3118),
    [sym_struct] = ACTIONS(3118),
    [sym_switch] = ACTIONS(3118),
    [sym_synchronized] = ACTIONS(3118),
    [sym_template] = ACTIONS(3118),
    [sym_throw] = ACTIONS(3118),
    [sym_try] = ACTIONS(3118),
    [sym_typeid] = ACTIONS(3118),
    [sym_typeof] = ACTIONS(3118),
    [sym_union] = ACTIONS(3118),
    [sym_unittest] = ACTIONS(3118),
    [sym_version] = ACTIONS(3118),
    [sym_while] = ACTIONS(3118),
    [sym_with] = ACTIONS(3118),
    [sym_gshared] = ACTIONS(3118),
    [sym_traits] = ACTIONS(3118),
    [sym_vector] = ACTIONS(3118),
    [sym_void] = ACTIONS(3118),
    [anon_sym_BQUOTE] = ACTIONS(3121),
    [anon_sym_r_DQUOTE] = ACTIONS(3121),
    [anon_sym_x_DQUOTE] = ACTIONS(3121),
    [anon_sym_DQUOTE] = ACTIONS(3121),
    [anon_sym_i_BQUOTE] = ACTIONS(3121),
    [anon_sym_i_DQUOTE] = ACTIONS(3121),
    [anon_sym_iq_LBRACE] = ACTIONS(3121),
    [aux_sym_char_literal_token1] = ACTIONS(3121),
    [anon_sym_SQUOTE] = ACTIONS(3118),
    [anon_sym___DATE__] = ACTIONS(3118),
    [anon_sym___FILE__] = ACTIONS(3118),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3118),
    [anon_sym___FUNCTION__] = ACTIONS(3118),
    [anon_sym___LINE__] = ACTIONS(3118),
    [anon_sym___MODULE__] = ACTIONS(3118),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3118),
    [anon_sym___TIME__] = ACTIONS(3118),
    [anon_sym___TIMESTAMP__] = ACTIONS(3118),
    [anon_sym___VENDOR__] = ACTIONS(3118),
    [anon_sym___VERSION__] = ACTIONS(3118),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3121),
    [sym_float_literal] = ACTIONS(3121),
    [sym__string] = ACTIONS(3121),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [670] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_RBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3091),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_abstract] = ACTIONS(3088),
    [sym_alias] = ACTIONS(3088),
    [sym_align] = ACTIONS(3088),
    [sym_asm] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_break] = ACTIONS(3088),
    [sym_case] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_catch] = ACTIONS(3088),
    [sym_class] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_continue] = ACTIONS(3088),
    [sym_debug] = ACTIONS(3088),
    [sym_default] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_deprecated] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(3124),
    [sym_enum] = ACTIONS(3088),
    [sym_export] = ACTIONS(3088),
    [sym_extern] = ACTIONS(3088),
    [sym_final] = ACTIONS(3088),
    [sym_finally] = ACTIONS(3088),
    [sym_for] = ACTIONS(3088),
    [sym_foreach] = ACTIONS(3088),
    [sym_foreach_reverse] = ACTIONS(3088),
    [sym_function] = ACTIONS(3088),
    [sym_goto] = ACTIONS(3088),
    [sym_if] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_interface] = ACTIONS(3088),
    [sym_invariant] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_nothrow] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_override] = ACTIONS(3088),
    [sym_package] = ACTIONS(3088),
    [sym_pragma] = ACTIONS(3088),
    [sym_private] = ACTIONS(3088),
    [sym_protected] = ACTIONS(3088),
    [sym_public] = ACTIONS(3088),
    [sym_pure] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_return] = ACTIONS(3088),
    [sym_scope] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_static] = ACTIONS(3088),
    [sym_struct] = ACTIONS(3088),
    [sym_switch] = ACTIONS(3088),
    [sym_synchronized] = ACTIONS(3088),
    [sym_template] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_try] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_union] = ACTIONS(3088),
    [sym_unittest] = ACTIONS(3088),
    [sym_version] = ACTIONS(3088),
    [sym_while] = ACTIONS(3088),
    [sym_with] = ACTIONS(3088),
    [sym_gshared] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [671] = {
    [sym_identifier] = ACTIONS(3112),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3115),
    [anon_sym_RBRACE] = ACTIONS(3115),
    [anon_sym_LBRACE] = ACTIONS(3115),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3115),
    [anon_sym_AMP] = ACTIONS(3112),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3112),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3115),
    [anon_sym_PLUS] = ACTIONS(3112),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3115),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3112),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3115),
    [anon_sym_RPAREN] = ACTIONS(3115),
    [anon_sym_LBRACK] = ACTIONS(3115),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3115),
    [anon_sym_DOLLAR] = ACTIONS(3115),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3112),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3112),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3115),
    [sym_bool] = ACTIONS(3112),
    [sym_byte] = ACTIONS(3112),
    [sym_ubyte] = ACTIONS(3112),
    [sym_char] = ACTIONS(3112),
    [sym_short] = ACTIONS(3112),
    [sym_ushort] = ACTIONS(3112),
    [sym_int] = ACTIONS(3112),
    [sym_uint] = ACTIONS(3112),
    [sym_long] = ACTIONS(3112),
    [sym_ulong] = ACTIONS(3112),
    [sym_cent] = ACTIONS(3112),
    [sym_ucent] = ACTIONS(3112),
    [sym_wchar] = ACTIONS(3112),
    [sym_dchar] = ACTIONS(3112),
    [sym_float] = ACTIONS(3112),
    [sym_double] = ACTIONS(3112),
    [sym_real] = ACTIONS(3112),
    [sym_ifloat] = ACTIONS(3112),
    [sym_idouble] = ACTIONS(3112),
    [sym_ireal] = ACTIONS(3112),
    [sym_cfloat] = ACTIONS(3112),
    [sym_cdouble] = ACTIONS(3112),
    [sym_creal] = ACTIONS(3112),
    [sym_size_t] = ACTIONS(3112),
    [sym_ptrdiff_t] = ACTIONS(3112),
    [sym_string] = ACTIONS(3112),
    [sym_cstring] = ACTIONS(3112),
    [sym_dstring] = ACTIONS(3112),
    [sym_wstring] = ACTIONS(3112),
    [sym_noreturn] = ACTIONS(3112),
    [sym_true] = ACTIONS(3112),
    [sym_false] = ACTIONS(3112),
    [sym_null] = ACTIONS(3112),
    [sym_super] = ACTIONS(3112),
    [sym_this] = ACTIONS(3112),
    [sym_abstract] = ACTIONS(3112),
    [sym_alias] = ACTIONS(3112),
    [sym_align] = ACTIONS(3112),
    [sym_asm] = ACTIONS(3112),
    [sym_assert] = ACTIONS(3112),
    [sym_auto] = ACTIONS(3112),
    [sym_break] = ACTIONS(3112),
    [sym_case] = ACTIONS(3112),
    [sym_cast] = ACTIONS(3112),
    [sym_class] = ACTIONS(3112),
    [sym_const] = ACTIONS(3112),
    [sym_continue] = ACTIONS(3112),
    [sym_debug] = ACTIONS(3112),
    [sym_default] = ACTIONS(3112),
    [sym_delegate] = ACTIONS(3112),
    [sym_delete] = ACTIONS(3112),
    [sym_deprecated] = ACTIONS(3112),
    [sym_do] = ACTIONS(3112),
    [sym_else] = ACTIONS(3112),
    [sym_enum] = ACTIONS(3112),
    [sym_export] = ACTIONS(3112),
    [sym_extern] = ACTIONS(3112),
    [sym_final] = ACTIONS(3112),
    [sym_for] = ACTIONS(3112),
    [sym_foreach] = ACTIONS(3112),
    [sym_foreach_reverse] = ACTIONS(3112),
    [sym_function] = ACTIONS(3112),
    [sym_goto] = ACTIONS(3112),
    [sym_if] = ACTIONS(3112),
    [sym_immutable] = ACTIONS(3112),
    [sym_import] = ACTIONS(3112),
    [sym_in] = ACTIONS(3112),
    [sym_inout] = ACTIONS(3112),
    [sym_interface] = ACTIONS(3112),
    [sym_invariant] = ACTIONS(3112),
    [sym_is] = ACTIONS(3112),
    [sym_mixin] = ACTIONS(3112),
    [sym_new] = ACTIONS(3112),
    [sym_nothrow] = ACTIONS(3112),
    [sym_out] = ACTIONS(3112),
    [sym_override] = ACTIONS(3112),
    [sym_package] = ACTIONS(3112),
    [sym_pragma] = ACTIONS(3112),
    [sym_private] = ACTIONS(3112),
    [sym_protected] = ACTIONS(3112),
    [sym_public] = ACTIONS(3112),
    [sym_pure] = ACTIONS(3112),
    [sym_ref] = ACTIONS(3112),
    [sym_return] = ACTIONS(3112),
    [sym_scope] = ACTIONS(3112),
    [sym_shared] = ACTIONS(3112),
    [sym_static] = ACTIONS(3112),
    [sym_struct] = ACTIONS(3112),
    [sym_switch] = ACTIONS(3112),
    [sym_synchronized] = ACTIONS(3112),
    [sym_template] = ACTIONS(3112),
    [sym_throw] = ACTIONS(3112),
    [sym_try] = ACTIONS(3112),
    [sym_typeid] = ACTIONS(3112),
    [sym_typeof] = ACTIONS(3112),
    [sym_union] = ACTIONS(3112),
    [sym_unittest] = ACTIONS(3112),
    [sym_version] = ACTIONS(3112),
    [sym_while] = ACTIONS(3112),
    [sym_with] = ACTIONS(3112),
    [sym_gshared] = ACTIONS(3112),
    [sym_traits] = ACTIONS(3112),
    [sym_vector] = ACTIONS(3112),
    [sym_void] = ACTIONS(3112),
    [anon_sym_BQUOTE] = ACTIONS(3115),
    [anon_sym_r_DQUOTE] = ACTIONS(3115),
    [anon_sym_x_DQUOTE] = ACTIONS(3115),
    [anon_sym_DQUOTE] = ACTIONS(3115),
    [anon_sym_i_BQUOTE] = ACTIONS(3115),
    [anon_sym_i_DQUOTE] = ACTIONS(3115),
    [anon_sym_iq_LBRACE] = ACTIONS(3115),
    [aux_sym_char_literal_token1] = ACTIONS(3115),
    [anon_sym_SQUOTE] = ACTIONS(3112),
    [anon_sym___DATE__] = ACTIONS(3112),
    [anon_sym___FILE__] = ACTIONS(3112),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3112),
    [anon_sym___FUNCTION__] = ACTIONS(3112),
    [anon_sym___LINE__] = ACTIONS(3112),
    [anon_sym___MODULE__] = ACTIONS(3112),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3112),
    [anon_sym___TIME__] = ACTIONS(3112),
    [anon_sym___TIMESTAMP__] = ACTIONS(3112),
    [anon_sym___VENDOR__] = ACTIONS(3112),
    [anon_sym___VERSION__] = ACTIONS(3112),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3115),
    [sym_float_literal] = ACTIONS(3115),
    [sym__string] = ACTIONS(3115),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [672] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7272),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [673] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7397),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [674] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7005),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [675] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7091),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [676] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_RBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3091),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_abstract] = ACTIONS(3088),
    [sym_alias] = ACTIONS(3088),
    [sym_align] = ACTIONS(3088),
    [sym_asm] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_break] = ACTIONS(3088),
    [sym_case] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_class] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_continue] = ACTIONS(3088),
    [sym_debug] = ACTIONS(3088),
    [sym_default] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_deprecated] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(3163),
    [sym_enum] = ACTIONS(3088),
    [sym_export] = ACTIONS(3088),
    [sym_extern] = ACTIONS(3088),
    [sym_final] = ACTIONS(3088),
    [sym_for] = ACTIONS(3088),
    [sym_foreach] = ACTIONS(3088),
    [sym_foreach_reverse] = ACTIONS(3088),
    [sym_function] = ACTIONS(3088),
    [sym_goto] = ACTIONS(3088),
    [sym_if] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_interface] = ACTIONS(3088),
    [sym_invariant] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_nothrow] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_override] = ACTIONS(3088),
    [sym_package] = ACTIONS(3088),
    [sym_pragma] = ACTIONS(3088),
    [sym_private] = ACTIONS(3088),
    [sym_protected] = ACTIONS(3088),
    [sym_public] = ACTIONS(3088),
    [sym_pure] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_return] = ACTIONS(3088),
    [sym_scope] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_static] = ACTIONS(3088),
    [sym_struct] = ACTIONS(3088),
    [sym_switch] = ACTIONS(3088),
    [sym_synchronized] = ACTIONS(3088),
    [sym_template] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_try] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_union] = ACTIONS(3088),
    [sym_unittest] = ACTIONS(3088),
    [sym_version] = ACTIONS(3088),
    [sym_while] = ACTIONS(3088),
    [sym_with] = ACTIONS(3088),
    [sym_gshared] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [677] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7145),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [678] = {
    [sym_identifier] = ACTIONS(3118),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3121),
    [anon_sym_RBRACE] = ACTIONS(3121),
    [anon_sym_LBRACE] = ACTIONS(3121),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3121),
    [anon_sym_AMP] = ACTIONS(3118),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3118),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3121),
    [anon_sym_PLUS] = ACTIONS(3118),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3121),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3118),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3121),
    [anon_sym_RPAREN] = ACTIONS(3121),
    [anon_sym_LBRACK] = ACTIONS(3121),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3121),
    [anon_sym_DOLLAR] = ACTIONS(3121),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3118),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3118),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3121),
    [sym_bool] = ACTIONS(3118),
    [sym_byte] = ACTIONS(3118),
    [sym_ubyte] = ACTIONS(3118),
    [sym_char] = ACTIONS(3118),
    [sym_short] = ACTIONS(3118),
    [sym_ushort] = ACTIONS(3118),
    [sym_int] = ACTIONS(3118),
    [sym_uint] = ACTIONS(3118),
    [sym_long] = ACTIONS(3118),
    [sym_ulong] = ACTIONS(3118),
    [sym_cent] = ACTIONS(3118),
    [sym_ucent] = ACTIONS(3118),
    [sym_wchar] = ACTIONS(3118),
    [sym_dchar] = ACTIONS(3118),
    [sym_float] = ACTIONS(3118),
    [sym_double] = ACTIONS(3118),
    [sym_real] = ACTIONS(3118),
    [sym_ifloat] = ACTIONS(3118),
    [sym_idouble] = ACTIONS(3118),
    [sym_ireal] = ACTIONS(3118),
    [sym_cfloat] = ACTIONS(3118),
    [sym_cdouble] = ACTIONS(3118),
    [sym_creal] = ACTIONS(3118),
    [sym_size_t] = ACTIONS(3118),
    [sym_ptrdiff_t] = ACTIONS(3118),
    [sym_string] = ACTIONS(3118),
    [sym_cstring] = ACTIONS(3118),
    [sym_dstring] = ACTIONS(3118),
    [sym_wstring] = ACTIONS(3118),
    [sym_noreturn] = ACTIONS(3118),
    [sym_true] = ACTIONS(3118),
    [sym_false] = ACTIONS(3118),
    [sym_null] = ACTIONS(3118),
    [sym_super] = ACTIONS(3118),
    [sym_this] = ACTIONS(3118),
    [sym_abstract] = ACTIONS(3118),
    [sym_alias] = ACTIONS(3118),
    [sym_align] = ACTIONS(3118),
    [sym_asm] = ACTIONS(3118),
    [sym_assert] = ACTIONS(3118),
    [sym_auto] = ACTIONS(3118),
    [sym_break] = ACTIONS(3118),
    [sym_case] = ACTIONS(3118),
    [sym_cast] = ACTIONS(3118),
    [sym_class] = ACTIONS(3118),
    [sym_const] = ACTIONS(3118),
    [sym_continue] = ACTIONS(3118),
    [sym_debug] = ACTIONS(3118),
    [sym_default] = ACTIONS(3118),
    [sym_delegate] = ACTIONS(3118),
    [sym_delete] = ACTIONS(3118),
    [sym_deprecated] = ACTIONS(3118),
    [sym_do] = ACTIONS(3118),
    [sym_else] = ACTIONS(3118),
    [sym_enum] = ACTIONS(3118),
    [sym_export] = ACTIONS(3118),
    [sym_extern] = ACTIONS(3118),
    [sym_final] = ACTIONS(3118),
    [sym_for] = ACTIONS(3118),
    [sym_foreach] = ACTIONS(3118),
    [sym_foreach_reverse] = ACTIONS(3118),
    [sym_function] = ACTIONS(3118),
    [sym_goto] = ACTIONS(3118),
    [sym_if] = ACTIONS(3118),
    [sym_immutable] = ACTIONS(3118),
    [sym_import] = ACTIONS(3118),
    [sym_in] = ACTIONS(3118),
    [sym_inout] = ACTIONS(3118),
    [sym_interface] = ACTIONS(3118),
    [sym_invariant] = ACTIONS(3118),
    [sym_is] = ACTIONS(3118),
    [sym_mixin] = ACTIONS(3118),
    [sym_new] = ACTIONS(3118),
    [sym_nothrow] = ACTIONS(3118),
    [sym_out] = ACTIONS(3118),
    [sym_override] = ACTIONS(3118),
    [sym_package] = ACTIONS(3118),
    [sym_pragma] = ACTIONS(3118),
    [sym_private] = ACTIONS(3118),
    [sym_protected] = ACTIONS(3118),
    [sym_public] = ACTIONS(3118),
    [sym_pure] = ACTIONS(3118),
    [sym_ref] = ACTIONS(3118),
    [sym_return] = ACTIONS(3118),
    [sym_scope] = ACTIONS(3118),
    [sym_shared] = ACTIONS(3118),
    [sym_static] = ACTIONS(3118),
    [sym_struct] = ACTIONS(3118),
    [sym_switch] = ACTIONS(3118),
    [sym_synchronized] = ACTIONS(3118),
    [sym_template] = ACTIONS(3118),
    [sym_throw] = ACTIONS(3118),
    [sym_try] = ACTIONS(3118),
    [sym_typeid] = ACTIONS(3118),
    [sym_typeof] = ACTIONS(3118),
    [sym_union] = ACTIONS(3118),
    [sym_unittest] = ACTIONS(3118),
    [sym_version] = ACTIONS(3118),
    [sym_while] = ACTIONS(3118),
    [sym_with] = ACTIONS(3118),
    [sym_gshared] = ACTIONS(3118),
    [sym_traits] = ACTIONS(3118),
    [sym_vector] = ACTIONS(3118),
    [sym_void] = ACTIONS(3118),
    [anon_sym_BQUOTE] = ACTIONS(3121),
    [anon_sym_r_DQUOTE] = ACTIONS(3121),
    [anon_sym_x_DQUOTE] = ACTIONS(3121),
    [anon_sym_DQUOTE] = ACTIONS(3121),
    [anon_sym_i_BQUOTE] = ACTIONS(3121),
    [anon_sym_i_DQUOTE] = ACTIONS(3121),
    [anon_sym_iq_LBRACE] = ACTIONS(3121),
    [aux_sym_char_literal_token1] = ACTIONS(3121),
    [anon_sym_SQUOTE] = ACTIONS(3118),
    [anon_sym___DATE__] = ACTIONS(3118),
    [anon_sym___FILE__] = ACTIONS(3118),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3118),
    [anon_sym___FUNCTION__] = ACTIONS(3118),
    [anon_sym___LINE__] = ACTIONS(3118),
    [anon_sym___MODULE__] = ACTIONS(3118),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3118),
    [anon_sym___TIME__] = ACTIONS(3118),
    [anon_sym___TIMESTAMP__] = ACTIONS(3118),
    [anon_sym___VENDOR__] = ACTIONS(3118),
    [anon_sym___VERSION__] = ACTIONS(3118),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3121),
    [sym_float_literal] = ACTIONS(3121),
    [sym__string] = ACTIONS(3121),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [679] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7339),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [680] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3072),
    [anon_sym_RBRACE] = ACTIONS(3072),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_AMP] = ACTIONS(3070),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3070),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3072),
    [anon_sym_PLUS] = ACTIONS(3070),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3072),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3070),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3072),
    [anon_sym_RPAREN] = ACTIONS(3072),
    [anon_sym_LBRACK] = ACTIONS(3072),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_DOLLAR] = ACTIONS(3072),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3070),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3070),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_true] = ACTIONS(3070),
    [sym_false] = ACTIONS(3070),
    [sym_null] = ACTIONS(3070),
    [sym_super] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_asm] = ACTIONS(3070),
    [sym_assert] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_break] = ACTIONS(3070),
    [sym_case] = ACTIONS(3070),
    [sym_cast] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_continue] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_default] = ACTIONS(3070),
    [sym_delegate] = ACTIONS(3070),
    [sym_delete] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_for] = ACTIONS(3070),
    [sym_foreach] = ACTIONS(3070),
    [sym_foreach_reverse] = ACTIONS(3070),
    [sym_function] = ACTIONS(3070),
    [sym_goto] = ACTIONS(3070),
    [sym_if] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_is] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_new] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_switch] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_throw] = ACTIONS(3070),
    [sym_try] = ACTIONS(3070),
    [sym_typeid] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_with] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [anon_sym_BQUOTE] = ACTIONS(3072),
    [anon_sym_r_DQUOTE] = ACTIONS(3072),
    [anon_sym_x_DQUOTE] = ACTIONS(3072),
    [anon_sym_DQUOTE] = ACTIONS(3072),
    [anon_sym_i_BQUOTE] = ACTIONS(3072),
    [anon_sym_i_DQUOTE] = ACTIONS(3072),
    [anon_sym_iq_LBRACE] = ACTIONS(3072),
    [aux_sym_char_literal_token1] = ACTIONS(3072),
    [anon_sym_SQUOTE] = ACTIONS(3070),
    [anon_sym___DATE__] = ACTIONS(3070),
    [anon_sym___FILE__] = ACTIONS(3070),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3070),
    [anon_sym___FUNCTION__] = ACTIONS(3070),
    [anon_sym___LINE__] = ACTIONS(3070),
    [anon_sym___MODULE__] = ACTIONS(3070),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3070),
    [anon_sym___TIME__] = ACTIONS(3070),
    [anon_sym___TIMESTAMP__] = ACTIONS(3070),
    [anon_sym___VENDOR__] = ACTIONS(3070),
    [anon_sym___VERSION__] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3072),
    [sym_float_literal] = ACTIONS(3072),
    [sym__string] = ACTIONS(3072),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [681] = {
    [sym_identifier] = ACTIONS(3064),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3067),
    [anon_sym_RBRACE] = ACTIONS(3067),
    [anon_sym_LBRACE] = ACTIONS(3067),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3067),
    [anon_sym_AMP] = ACTIONS(3064),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3064),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3067),
    [anon_sym_PLUS] = ACTIONS(3064),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3067),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3064),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3067),
    [anon_sym_RPAREN] = ACTIONS(3067),
    [anon_sym_LBRACK] = ACTIONS(3067),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3067),
    [anon_sym_DOLLAR] = ACTIONS(3067),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3064),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3064),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3067),
    [sym_bool] = ACTIONS(3064),
    [sym_byte] = ACTIONS(3064),
    [sym_ubyte] = ACTIONS(3064),
    [sym_char] = ACTIONS(3064),
    [sym_short] = ACTIONS(3064),
    [sym_ushort] = ACTIONS(3064),
    [sym_int] = ACTIONS(3064),
    [sym_uint] = ACTIONS(3064),
    [sym_long] = ACTIONS(3064),
    [sym_ulong] = ACTIONS(3064),
    [sym_cent] = ACTIONS(3064),
    [sym_ucent] = ACTIONS(3064),
    [sym_wchar] = ACTIONS(3064),
    [sym_dchar] = ACTIONS(3064),
    [sym_float] = ACTIONS(3064),
    [sym_double] = ACTIONS(3064),
    [sym_real] = ACTIONS(3064),
    [sym_ifloat] = ACTIONS(3064),
    [sym_idouble] = ACTIONS(3064),
    [sym_ireal] = ACTIONS(3064),
    [sym_cfloat] = ACTIONS(3064),
    [sym_cdouble] = ACTIONS(3064),
    [sym_creal] = ACTIONS(3064),
    [sym_size_t] = ACTIONS(3064),
    [sym_ptrdiff_t] = ACTIONS(3064),
    [sym_string] = ACTIONS(3064),
    [sym_cstring] = ACTIONS(3064),
    [sym_dstring] = ACTIONS(3064),
    [sym_wstring] = ACTIONS(3064),
    [sym_noreturn] = ACTIONS(3064),
    [sym_true] = ACTIONS(3064),
    [sym_false] = ACTIONS(3064),
    [sym_null] = ACTIONS(3064),
    [sym_super] = ACTIONS(3064),
    [sym_this] = ACTIONS(3064),
    [sym_abstract] = ACTIONS(3064),
    [sym_alias] = ACTIONS(3064),
    [sym_align] = ACTIONS(3064),
    [sym_asm] = ACTIONS(3064),
    [sym_assert] = ACTIONS(3064),
    [sym_auto] = ACTIONS(3064),
    [sym_break] = ACTIONS(3064),
    [sym_case] = ACTIONS(3064),
    [sym_cast] = ACTIONS(3064),
    [sym_class] = ACTIONS(3064),
    [sym_const] = ACTIONS(3064),
    [sym_continue] = ACTIONS(3064),
    [sym_debug] = ACTIONS(3064),
    [sym_default] = ACTIONS(3064),
    [sym_delegate] = ACTIONS(3064),
    [sym_delete] = ACTIONS(3064),
    [sym_deprecated] = ACTIONS(3064),
    [sym_do] = ACTIONS(3064),
    [sym_else] = ACTIONS(3064),
    [sym_enum] = ACTIONS(3064),
    [sym_export] = ACTIONS(3064),
    [sym_extern] = ACTIONS(3064),
    [sym_final] = ACTIONS(3064),
    [sym_for] = ACTIONS(3064),
    [sym_foreach] = ACTIONS(3064),
    [sym_foreach_reverse] = ACTIONS(3064),
    [sym_function] = ACTIONS(3064),
    [sym_goto] = ACTIONS(3064),
    [sym_if] = ACTIONS(3064),
    [sym_immutable] = ACTIONS(3064),
    [sym_import] = ACTIONS(3064),
    [sym_in] = ACTIONS(3064),
    [sym_inout] = ACTIONS(3064),
    [sym_interface] = ACTIONS(3064),
    [sym_invariant] = ACTIONS(3064),
    [sym_is] = ACTIONS(3064),
    [sym_mixin] = ACTIONS(3064),
    [sym_new] = ACTIONS(3064),
    [sym_nothrow] = ACTIONS(3064),
    [sym_out] = ACTIONS(3064),
    [sym_override] = ACTIONS(3064),
    [sym_package] = ACTIONS(3064),
    [sym_pragma] = ACTIONS(3064),
    [sym_private] = ACTIONS(3064),
    [sym_protected] = ACTIONS(3064),
    [sym_public] = ACTIONS(3064),
    [sym_pure] = ACTIONS(3064),
    [sym_ref] = ACTIONS(3064),
    [sym_return] = ACTIONS(3064),
    [sym_scope] = ACTIONS(3064),
    [sym_shared] = ACTIONS(3064),
    [sym_static] = ACTIONS(3064),
    [sym_struct] = ACTIONS(3064),
    [sym_switch] = ACTIONS(3064),
    [sym_synchronized] = ACTIONS(3064),
    [sym_template] = ACTIONS(3064),
    [sym_throw] = ACTIONS(3064),
    [sym_try] = ACTIONS(3064),
    [sym_typeid] = ACTIONS(3064),
    [sym_typeof] = ACTIONS(3064),
    [sym_union] = ACTIONS(3064),
    [sym_unittest] = ACTIONS(3064),
    [sym_version] = ACTIONS(3064),
    [sym_while] = ACTIONS(3064),
    [sym_with] = ACTIONS(3064),
    [sym_gshared] = ACTIONS(3064),
    [sym_traits] = ACTIONS(3064),
    [sym_vector] = ACTIONS(3064),
    [sym_void] = ACTIONS(3064),
    [anon_sym_BQUOTE] = ACTIONS(3067),
    [anon_sym_r_DQUOTE] = ACTIONS(3067),
    [anon_sym_x_DQUOTE] = ACTIONS(3067),
    [anon_sym_DQUOTE] = ACTIONS(3067),
    [anon_sym_i_BQUOTE] = ACTIONS(3067),
    [anon_sym_i_DQUOTE] = ACTIONS(3067),
    [anon_sym_iq_LBRACE] = ACTIONS(3067),
    [aux_sym_char_literal_token1] = ACTIONS(3067),
    [anon_sym_SQUOTE] = ACTIONS(3064),
    [anon_sym___DATE__] = ACTIONS(3064),
    [anon_sym___FILE__] = ACTIONS(3064),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3064),
    [anon_sym___FUNCTION__] = ACTIONS(3064),
    [anon_sym___LINE__] = ACTIONS(3064),
    [anon_sym___MODULE__] = ACTIONS(3064),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3064),
    [anon_sym___TIME__] = ACTIONS(3064),
    [anon_sym___TIMESTAMP__] = ACTIONS(3064),
    [anon_sym___VENDOR__] = ACTIONS(3064),
    [anon_sym___VERSION__] = ACTIONS(3064),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3067),
    [sym_float_literal] = ACTIONS(3067),
    [sym__string] = ACTIONS(3067),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [682] = {
    [sym_identifier] = ACTIONS(3074),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3076),
    [anon_sym_RBRACE] = ACTIONS(3076),
    [anon_sym_LBRACE] = ACTIONS(3076),
    [anon_sym_SLASH] = ACTIONS(3078),
    [anon_sym_SLASH_EQ] = ACTIONS(3080),
    [anon_sym_DOT] = ACTIONS(3082),
    [anon_sym_AMP] = ACTIONS(3085),
    [anon_sym_AMP_EQ] = ACTIONS(3080),
    [anon_sym_AMP_AMP] = ACTIONS(3080),
    [anon_sym_PIPE] = ACTIONS(3078),
    [anon_sym_PIPE_EQ] = ACTIONS(3080),
    [anon_sym_PIPE_PIPE] = ACTIONS(3080),
    [anon_sym_DASH] = ACTIONS(3085),
    [anon_sym_DASH_EQ] = ACTIONS(3080),
    [anon_sym_DASH_DASH] = ACTIONS(3082),
    [anon_sym_PLUS] = ACTIONS(3085),
    [anon_sym_PLUS_EQ] = ACTIONS(3080),
    [anon_sym_PLUS_PLUS] = ACTIONS(3082),
    [anon_sym_LT] = ACTIONS(3078),
    [anon_sym_LT_EQ] = ACTIONS(3080),
    [anon_sym_LT_LT] = ACTIONS(3078),
    [anon_sym_LT_LT_EQ] = ACTIONS(3080),
    [anon_sym_GT] = ACTIONS(3078),
    [anon_sym_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT] = ACTIONS(3078),
    [anon_sym_GT_GT_GT] = ACTIONS(3078),
    [anon_sym_BANG] = ACTIONS(3074),
    [anon_sym_BANG_EQ] = ACTIONS(3080),
    [anon_sym_LPAREN] = ACTIONS(3082),
    [anon_sym_RPAREN] = ACTIONS(3076),
    [anon_sym_LBRACK] = ACTIONS(3082),
    [anon_sym_QMARK] = ACTIONS(3080),
    [anon_sym_COMMA] = ACTIONS(3080),
    [anon_sym_SEMI] = ACTIONS(3082),
    [anon_sym_DOLLAR] = ACTIONS(3076),
    [anon_sym_EQ] = ACTIONS(3078),
    [anon_sym_EQ_EQ] = ACTIONS(3080),
    [anon_sym_STAR] = ACTIONS(3085),
    [anon_sym_STAR_EQ] = ACTIONS(3080),
    [anon_sym_PERCENT] = ACTIONS(3078),
    [anon_sym_PERCENT_EQ] = ACTIONS(3080),
    [anon_sym_CARET] = ACTIONS(3078),
    [anon_sym_CARET_EQ] = ACTIONS(3080),
    [anon_sym_CARET_CARET] = ACTIONS(3078),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3080),
    [anon_sym_TILDE] = ACTIONS(3085),
    [anon_sym_TILDE_EQ] = ACTIONS(3080),
    [anon_sym_AT] = ACTIONS(3076),
    [sym_bool] = ACTIONS(3074),
    [sym_byte] = ACTIONS(3074),
    [sym_ubyte] = ACTIONS(3074),
    [sym_char] = ACTIONS(3074),
    [sym_short] = ACTIONS(3074),
    [sym_ushort] = ACTIONS(3074),
    [sym_int] = ACTIONS(3074),
    [sym_uint] = ACTIONS(3074),
    [sym_long] = ACTIONS(3074),
    [sym_ulong] = ACTIONS(3074),
    [sym_cent] = ACTIONS(3074),
    [sym_ucent] = ACTIONS(3074),
    [sym_wchar] = ACTIONS(3074),
    [sym_dchar] = ACTIONS(3074),
    [sym_float] = ACTIONS(3074),
    [sym_double] = ACTIONS(3074),
    [sym_real] = ACTIONS(3074),
    [sym_ifloat] = ACTIONS(3074),
    [sym_idouble] = ACTIONS(3074),
    [sym_ireal] = ACTIONS(3074),
    [sym_cfloat] = ACTIONS(3074),
    [sym_cdouble] = ACTIONS(3074),
    [sym_creal] = ACTIONS(3074),
    [sym_size_t] = ACTIONS(3074),
    [sym_ptrdiff_t] = ACTIONS(3074),
    [sym_string] = ACTIONS(3074),
    [sym_cstring] = ACTIONS(3074),
    [sym_dstring] = ACTIONS(3074),
    [sym_wstring] = ACTIONS(3074),
    [sym_noreturn] = ACTIONS(3074),
    [sym_true] = ACTIONS(3074),
    [sym_false] = ACTIONS(3074),
    [sym_null] = ACTIONS(3074),
    [sym_super] = ACTIONS(3074),
    [sym_this] = ACTIONS(3074),
    [sym_abstract] = ACTIONS(3074),
    [sym_alias] = ACTIONS(3074),
    [sym_align] = ACTIONS(3074),
    [sym_asm] = ACTIONS(3074),
    [sym_assert] = ACTIONS(3074),
    [sym_auto] = ACTIONS(3074),
    [sym_break] = ACTIONS(3074),
    [sym_case] = ACTIONS(3074),
    [sym_cast] = ACTIONS(3074),
    [sym_class] = ACTIONS(3074),
    [sym_const] = ACTIONS(3074),
    [sym_continue] = ACTIONS(3074),
    [sym_debug] = ACTIONS(3074),
    [sym_default] = ACTIONS(3074),
    [sym_delegate] = ACTIONS(3074),
    [sym_delete] = ACTIONS(3074),
    [sym_deprecated] = ACTIONS(3074),
    [sym_do] = ACTIONS(3074),
    [sym_else] = ACTIONS(3074),
    [sym_enum] = ACTIONS(3074),
    [sym_export] = ACTIONS(3074),
    [sym_extern] = ACTIONS(3074),
    [sym_final] = ACTIONS(3074),
    [sym_for] = ACTIONS(3074),
    [sym_foreach] = ACTIONS(3074),
    [sym_foreach_reverse] = ACTIONS(3074),
    [sym_function] = ACTIONS(3074),
    [sym_goto] = ACTIONS(3074),
    [sym_if] = ACTIONS(3074),
    [sym_immutable] = ACTIONS(3074),
    [sym_import] = ACTIONS(3074),
    [sym_in] = ACTIONS(3085),
    [sym_inout] = ACTIONS(3074),
    [sym_interface] = ACTIONS(3074),
    [sym_invariant] = ACTIONS(3074),
    [sym_is] = ACTIONS(3085),
    [sym_mixin] = ACTIONS(3074),
    [sym_new] = ACTIONS(3074),
    [sym_nothrow] = ACTIONS(3074),
    [sym_out] = ACTIONS(3074),
    [sym_override] = ACTIONS(3074),
    [sym_package] = ACTIONS(3074),
    [sym_pragma] = ACTIONS(3074),
    [sym_private] = ACTIONS(3074),
    [sym_protected] = ACTIONS(3074),
    [sym_public] = ACTIONS(3074),
    [sym_pure] = ACTIONS(3074),
    [sym_ref] = ACTIONS(3074),
    [sym_return] = ACTIONS(3074),
    [sym_scope] = ACTIONS(3074),
    [sym_shared] = ACTIONS(3074),
    [sym_static] = ACTIONS(3074),
    [sym_struct] = ACTIONS(3074),
    [sym_switch] = ACTIONS(3074),
    [sym_synchronized] = ACTIONS(3074),
    [sym_template] = ACTIONS(3074),
    [sym_throw] = ACTIONS(3074),
    [sym_try] = ACTIONS(3074),
    [sym_typeid] = ACTIONS(3074),
    [sym_typeof] = ACTIONS(3074),
    [sym_union] = ACTIONS(3074),
    [sym_unittest] = ACTIONS(3074),
    [sym_version] = ACTIONS(3074),
    [sym_while] = ACTIONS(3074),
    [sym_with] = ACTIONS(3074),
    [sym_gshared] = ACTIONS(3074),
    [sym_traits] = ACTIONS(3074),
    [sym_vector] = ACTIONS(3074),
    [sym_void] = ACTIONS(3074),
    [anon_sym_BQUOTE] = ACTIONS(3076),
    [anon_sym_r_DQUOTE] = ACTIONS(3076),
    [anon_sym_x_DQUOTE] = ACTIONS(3076),
    [anon_sym_DQUOTE] = ACTIONS(3076),
    [anon_sym_i_BQUOTE] = ACTIONS(3076),
    [anon_sym_i_DQUOTE] = ACTIONS(3076),
    [anon_sym_iq_LBRACE] = ACTIONS(3076),
    [aux_sym_char_literal_token1] = ACTIONS(3076),
    [anon_sym_SQUOTE] = ACTIONS(3074),
    [anon_sym___DATE__] = ACTIONS(3074),
    [anon_sym___FILE__] = ACTIONS(3074),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3074),
    [anon_sym___FUNCTION__] = ACTIONS(3074),
    [anon_sym___LINE__] = ACTIONS(3074),
    [anon_sym___MODULE__] = ACTIONS(3074),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3074),
    [anon_sym___TIME__] = ACTIONS(3074),
    [anon_sym___TIMESTAMP__] = ACTIONS(3074),
    [anon_sym___VENDOR__] = ACTIONS(3074),
    [anon_sym___VERSION__] = ACTIONS(3074),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3076),
    [sym_float_literal] = ACTIONS(3076),
    [sym__string] = ACTIONS(3076),
    [sym_not_in] = ACTIONS(3080),
    [sym_not_is] = ACTIONS(3080),
  },
  [683] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3100),
    [anon_sym_RBRACE] = ACTIONS(3100),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_SLASH] = ACTIONS(3098),
    [anon_sym_SLASH_EQ] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_AMP] = ACTIONS(3098),
    [anon_sym_AMP_EQ] = ACTIONS(3100),
    [anon_sym_AMP_AMP] = ACTIONS(3100),
    [anon_sym_PIPE] = ACTIONS(3098),
    [anon_sym_PIPE_EQ] = ACTIONS(3100),
    [anon_sym_PIPE_PIPE] = ACTIONS(3100),
    [anon_sym_DASH] = ACTIONS(3098),
    [anon_sym_DASH_EQ] = ACTIONS(3100),
    [anon_sym_DASH_DASH] = ACTIONS(3100),
    [anon_sym_PLUS] = ACTIONS(3098),
    [anon_sym_PLUS_EQ] = ACTIONS(3100),
    [anon_sym_PLUS_PLUS] = ACTIONS(3100),
    [anon_sym_LT] = ACTIONS(3098),
    [anon_sym_LT_EQ] = ACTIONS(3100),
    [anon_sym_LT_LT] = ACTIONS(3098),
    [anon_sym_LT_LT_EQ] = ACTIONS(3100),
    [anon_sym_GT] = ACTIONS(3098),
    [anon_sym_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT] = ACTIONS(3098),
    [anon_sym_GT_GT_GT] = ACTIONS(3098),
    [anon_sym_BANG] = ACTIONS(3098),
    [anon_sym_BANG_EQ] = ACTIONS(3100),
    [anon_sym_LPAREN] = ACTIONS(3100),
    [anon_sym_RPAREN] = ACTIONS(3100),
    [anon_sym_LBRACK] = ACTIONS(3100),
    [anon_sym_QMARK] = ACTIONS(3100),
    [anon_sym_COMMA] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_DOLLAR] = ACTIONS(3100),
    [anon_sym_EQ] = ACTIONS(3098),
    [anon_sym_EQ_EQ] = ACTIONS(3100),
    [anon_sym_STAR] = ACTIONS(3098),
    [anon_sym_STAR_EQ] = ACTIONS(3100),
    [anon_sym_PERCENT] = ACTIONS(3098),
    [anon_sym_PERCENT_EQ] = ACTIONS(3100),
    [anon_sym_CARET] = ACTIONS(3098),
    [anon_sym_CARET_EQ] = ACTIONS(3100),
    [anon_sym_CARET_CARET] = ACTIONS(3098),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3098),
    [anon_sym_TILDE_EQ] = ACTIONS(3100),
    [anon_sym_AT] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_true] = ACTIONS(3098),
    [sym_false] = ACTIONS(3098),
    [sym_null] = ACTIONS(3098),
    [sym_super] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_abstract] = ACTIONS(3098),
    [sym_alias] = ACTIONS(3098),
    [sym_align] = ACTIONS(3098),
    [sym_asm] = ACTIONS(3098),
    [sym_assert] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_break] = ACTIONS(3098),
    [sym_case] = ACTIONS(3098),
    [sym_cast] = ACTIONS(3098),
    [sym_class] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_continue] = ACTIONS(3098),
    [sym_debug] = ACTIONS(3098),
    [sym_default] = ACTIONS(3098),
    [sym_delegate] = ACTIONS(3098),
    [sym_delete] = ACTIONS(3098),
    [sym_deprecated] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_enum] = ACTIONS(3098),
    [sym_export] = ACTIONS(3098),
    [sym_extern] = ACTIONS(3098),
    [sym_final] = ACTIONS(3098),
    [sym_for] = ACTIONS(3098),
    [sym_foreach] = ACTIONS(3098),
    [sym_foreach_reverse] = ACTIONS(3098),
    [sym_function] = ACTIONS(3098),
    [sym_goto] = ACTIONS(3098),
    [sym_if] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_interface] = ACTIONS(3098),
    [sym_invariant] = ACTIONS(3098),
    [sym_is] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_new] = ACTIONS(3098),
    [sym_nothrow] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_override] = ACTIONS(3098),
    [sym_package] = ACTIONS(3098),
    [sym_pragma] = ACTIONS(3098),
    [sym_private] = ACTIONS(3098),
    [sym_protected] = ACTIONS(3098),
    [sym_public] = ACTIONS(3098),
    [sym_pure] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_return] = ACTIONS(3098),
    [sym_scope] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_static] = ACTIONS(3098),
    [sym_struct] = ACTIONS(3098),
    [sym_switch] = ACTIONS(3098),
    [sym_synchronized] = ACTIONS(3098),
    [sym_template] = ACTIONS(3098),
    [sym_throw] = ACTIONS(3098),
    [sym_try] = ACTIONS(3098),
    [sym_typeid] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_union] = ACTIONS(3098),
    [sym_unittest] = ACTIONS(3098),
    [sym_version] = ACTIONS(3098),
    [sym_while] = ACTIONS(3098),
    [sym_with] = ACTIONS(3098),
    [sym_gshared] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [anon_sym_BQUOTE] = ACTIONS(3100),
    [anon_sym_r_DQUOTE] = ACTIONS(3100),
    [anon_sym_x_DQUOTE] = ACTIONS(3100),
    [anon_sym_DQUOTE] = ACTIONS(3100),
    [anon_sym_i_BQUOTE] = ACTIONS(3100),
    [anon_sym_i_DQUOTE] = ACTIONS(3100),
    [anon_sym_iq_LBRACE] = ACTIONS(3100),
    [aux_sym_char_literal_token1] = ACTIONS(3100),
    [anon_sym_SQUOTE] = ACTIONS(3098),
    [anon_sym___DATE__] = ACTIONS(3098),
    [anon_sym___FILE__] = ACTIONS(3098),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3098),
    [anon_sym___FUNCTION__] = ACTIONS(3098),
    [anon_sym___LINE__] = ACTIONS(3098),
    [anon_sym___MODULE__] = ACTIONS(3098),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3098),
    [anon_sym___TIME__] = ACTIONS(3098),
    [anon_sym___TIMESTAMP__] = ACTIONS(3098),
    [anon_sym___VENDOR__] = ACTIONS(3098),
    [anon_sym___VERSION__] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3100),
    [sym_float_literal] = ACTIONS(3100),
    [sym__string] = ACTIONS(3100),
    [sym_not_in] = ACTIONS(3100),
    [sym_not_is] = ACTIONS(3100),
  },
  [684] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7263),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [685] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7367),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [686] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(6966),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [687] = {
    [sym_identifier] = ACTIONS(3106),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3109),
    [anon_sym_RBRACE] = ACTIONS(3109),
    [anon_sym_LBRACE] = ACTIONS(3109),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3109),
    [anon_sym_AMP] = ACTIONS(3106),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3106),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3109),
    [anon_sym_PLUS] = ACTIONS(3106),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3109),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3106),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3109),
    [anon_sym_RPAREN] = ACTIONS(3109),
    [anon_sym_LBRACK] = ACTIONS(3109),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3109),
    [anon_sym_DOLLAR] = ACTIONS(3109),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3106),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3106),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3109),
    [sym_bool] = ACTIONS(3106),
    [sym_byte] = ACTIONS(3106),
    [sym_ubyte] = ACTIONS(3106),
    [sym_char] = ACTIONS(3106),
    [sym_short] = ACTIONS(3106),
    [sym_ushort] = ACTIONS(3106),
    [sym_int] = ACTIONS(3106),
    [sym_uint] = ACTIONS(3106),
    [sym_long] = ACTIONS(3106),
    [sym_ulong] = ACTIONS(3106),
    [sym_cent] = ACTIONS(3106),
    [sym_ucent] = ACTIONS(3106),
    [sym_wchar] = ACTIONS(3106),
    [sym_dchar] = ACTIONS(3106),
    [sym_float] = ACTIONS(3106),
    [sym_double] = ACTIONS(3106),
    [sym_real] = ACTIONS(3106),
    [sym_ifloat] = ACTIONS(3106),
    [sym_idouble] = ACTIONS(3106),
    [sym_ireal] = ACTIONS(3106),
    [sym_cfloat] = ACTIONS(3106),
    [sym_cdouble] = ACTIONS(3106),
    [sym_creal] = ACTIONS(3106),
    [sym_size_t] = ACTIONS(3106),
    [sym_ptrdiff_t] = ACTIONS(3106),
    [sym_string] = ACTIONS(3106),
    [sym_cstring] = ACTIONS(3106),
    [sym_dstring] = ACTIONS(3106),
    [sym_wstring] = ACTIONS(3106),
    [sym_noreturn] = ACTIONS(3106),
    [sym_true] = ACTIONS(3106),
    [sym_false] = ACTIONS(3106),
    [sym_null] = ACTIONS(3106),
    [sym_super] = ACTIONS(3106),
    [sym_this] = ACTIONS(3106),
    [sym_abstract] = ACTIONS(3106),
    [sym_alias] = ACTIONS(3106),
    [sym_align] = ACTIONS(3106),
    [sym_asm] = ACTIONS(3106),
    [sym_assert] = ACTIONS(3106),
    [sym_auto] = ACTIONS(3106),
    [sym_break] = ACTIONS(3106),
    [sym_case] = ACTIONS(3106),
    [sym_cast] = ACTIONS(3106),
    [sym_class] = ACTIONS(3106),
    [sym_const] = ACTIONS(3106),
    [sym_continue] = ACTIONS(3106),
    [sym_debug] = ACTIONS(3106),
    [sym_default] = ACTIONS(3106),
    [sym_delegate] = ACTIONS(3106),
    [sym_delete] = ACTIONS(3106),
    [sym_deprecated] = ACTIONS(3106),
    [sym_do] = ACTIONS(3106),
    [sym_else] = ACTIONS(3106),
    [sym_enum] = ACTIONS(3106),
    [sym_export] = ACTIONS(3106),
    [sym_extern] = ACTIONS(3106),
    [sym_final] = ACTIONS(3106),
    [sym_for] = ACTIONS(3106),
    [sym_foreach] = ACTIONS(3106),
    [sym_foreach_reverse] = ACTIONS(3106),
    [sym_function] = ACTIONS(3106),
    [sym_goto] = ACTIONS(3106),
    [sym_if] = ACTIONS(3106),
    [sym_immutable] = ACTIONS(3106),
    [sym_import] = ACTIONS(3106),
    [sym_in] = ACTIONS(3106),
    [sym_inout] = ACTIONS(3106),
    [sym_interface] = ACTIONS(3106),
    [sym_invariant] = ACTIONS(3106),
    [sym_is] = ACTIONS(3106),
    [sym_mixin] = ACTIONS(3106),
    [sym_new] = ACTIONS(3106),
    [sym_nothrow] = ACTIONS(3106),
    [sym_out] = ACTIONS(3106),
    [sym_override] = ACTIONS(3106),
    [sym_package] = ACTIONS(3106),
    [sym_pragma] = ACTIONS(3106),
    [sym_private] = ACTIONS(3106),
    [sym_protected] = ACTIONS(3106),
    [sym_public] = ACTIONS(3106),
    [sym_pure] = ACTIONS(3106),
    [sym_ref] = ACTIONS(3106),
    [sym_return] = ACTIONS(3106),
    [sym_scope] = ACTIONS(3106),
    [sym_shared] = ACTIONS(3106),
    [sym_static] = ACTIONS(3106),
    [sym_struct] = ACTIONS(3106),
    [sym_switch] = ACTIONS(3106),
    [sym_synchronized] = ACTIONS(3106),
    [sym_template] = ACTIONS(3106),
    [sym_throw] = ACTIONS(3106),
    [sym_try] = ACTIONS(3106),
    [sym_typeid] = ACTIONS(3106),
    [sym_typeof] = ACTIONS(3106),
    [sym_union] = ACTIONS(3106),
    [sym_unittest] = ACTIONS(3106),
    [sym_version] = ACTIONS(3106),
    [sym_while] = ACTIONS(3106),
    [sym_with] = ACTIONS(3106),
    [sym_gshared] = ACTIONS(3106),
    [sym_traits] = ACTIONS(3106),
    [sym_vector] = ACTIONS(3106),
    [sym_void] = ACTIONS(3106),
    [anon_sym_BQUOTE] = ACTIONS(3109),
    [anon_sym_r_DQUOTE] = ACTIONS(3109),
    [anon_sym_x_DQUOTE] = ACTIONS(3109),
    [anon_sym_DQUOTE] = ACTIONS(3109),
    [anon_sym_i_BQUOTE] = ACTIONS(3109),
    [anon_sym_i_DQUOTE] = ACTIONS(3109),
    [anon_sym_iq_LBRACE] = ACTIONS(3109),
    [aux_sym_char_literal_token1] = ACTIONS(3109),
    [anon_sym_SQUOTE] = ACTIONS(3106),
    [anon_sym___DATE__] = ACTIONS(3106),
    [anon_sym___FILE__] = ACTIONS(3106),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3106),
    [anon_sym___FUNCTION__] = ACTIONS(3106),
    [anon_sym___LINE__] = ACTIONS(3106),
    [anon_sym___MODULE__] = ACTIONS(3106),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3106),
    [anon_sym___TIME__] = ACTIONS(3106),
    [anon_sym___TIMESTAMP__] = ACTIONS(3106),
    [anon_sym___VENDOR__] = ACTIONS(3106),
    [anon_sym___VERSION__] = ACTIONS(3106),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3109),
    [sym_float_literal] = ACTIONS(3109),
    [sym__string] = ACTIONS(3109),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [688] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7425),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [689] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_RBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3091),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_abstract] = ACTIONS(3088),
    [sym_alias] = ACTIONS(3088),
    [sym_align] = ACTIONS(3088),
    [sym_asm] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_break] = ACTIONS(3088),
    [sym_case] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_class] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_continue] = ACTIONS(3088),
    [sym_debug] = ACTIONS(3088),
    [sym_default] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_deprecated] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(3166),
    [sym_enum] = ACTIONS(3088),
    [sym_export] = ACTIONS(3088),
    [sym_extern] = ACTIONS(3088),
    [sym_final] = ACTIONS(3088),
    [sym_for] = ACTIONS(3088),
    [sym_foreach] = ACTIONS(3088),
    [sym_foreach_reverse] = ACTIONS(3088),
    [sym_function] = ACTIONS(3088),
    [sym_goto] = ACTIONS(3088),
    [sym_if] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_interface] = ACTIONS(3088),
    [sym_invariant] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_nothrow] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_override] = ACTIONS(3088),
    [sym_package] = ACTIONS(3088),
    [sym_pragma] = ACTIONS(3088),
    [sym_private] = ACTIONS(3088),
    [sym_protected] = ACTIONS(3088),
    [sym_public] = ACTIONS(3088),
    [sym_pure] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_return] = ACTIONS(3088),
    [sym_scope] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_static] = ACTIONS(3088),
    [sym_struct] = ACTIONS(3088),
    [sym_switch] = ACTIONS(3088),
    [sym_synchronized] = ACTIONS(3088),
    [sym_template] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_try] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_union] = ACTIONS(3088),
    [sym_unittest] = ACTIONS(3088),
    [sym_version] = ACTIONS(3088),
    [sym_while] = ACTIONS(3088),
    [sym_with] = ACTIONS(3088),
    [sym_gshared] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [690] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7865),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [691] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym_expression] = STATE(7331),
    [sym__expr] = STATE(4170),
    [sym_ternary_expression] = STATE(4170),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4170),
    [sym_binary_expression] = STATE(4170),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [692] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3104),
    [anon_sym_RBRACE] = ACTIONS(3104),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_SLASH] = ACTIONS(3102),
    [anon_sym_SLASH_EQ] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_AMP] = ACTIONS(3102),
    [anon_sym_AMP_EQ] = ACTIONS(3104),
    [anon_sym_AMP_AMP] = ACTIONS(3104),
    [anon_sym_PIPE] = ACTIONS(3102),
    [anon_sym_PIPE_EQ] = ACTIONS(3104),
    [anon_sym_PIPE_PIPE] = ACTIONS(3104),
    [anon_sym_DASH] = ACTIONS(3102),
    [anon_sym_DASH_EQ] = ACTIONS(3104),
    [anon_sym_DASH_DASH] = ACTIONS(3104),
    [anon_sym_PLUS] = ACTIONS(3102),
    [anon_sym_PLUS_EQ] = ACTIONS(3104),
    [anon_sym_PLUS_PLUS] = ACTIONS(3104),
    [anon_sym_LT] = ACTIONS(3102),
    [anon_sym_LT_EQ] = ACTIONS(3104),
    [anon_sym_LT_LT] = ACTIONS(3102),
    [anon_sym_LT_LT_EQ] = ACTIONS(3104),
    [anon_sym_GT] = ACTIONS(3102),
    [anon_sym_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT] = ACTIONS(3102),
    [anon_sym_GT_GT_GT] = ACTIONS(3102),
    [anon_sym_BANG] = ACTIONS(3102),
    [anon_sym_BANG_EQ] = ACTIONS(3104),
    [anon_sym_LPAREN] = ACTIONS(3104),
    [anon_sym_RPAREN] = ACTIONS(3104),
    [anon_sym_LBRACK] = ACTIONS(3104),
    [anon_sym_QMARK] = ACTIONS(3104),
    [anon_sym_COMMA] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_DOLLAR] = ACTIONS(3104),
    [anon_sym_EQ] = ACTIONS(3102),
    [anon_sym_EQ_EQ] = ACTIONS(3104),
    [anon_sym_STAR] = ACTIONS(3102),
    [anon_sym_STAR_EQ] = ACTIONS(3104),
    [anon_sym_PERCENT] = ACTIONS(3102),
    [anon_sym_PERCENT_EQ] = ACTIONS(3104),
    [anon_sym_CARET] = ACTIONS(3102),
    [anon_sym_CARET_EQ] = ACTIONS(3104),
    [anon_sym_CARET_CARET] = ACTIONS(3102),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3102),
    [anon_sym_TILDE_EQ] = ACTIONS(3104),
    [anon_sym_AT] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_true] = ACTIONS(3102),
    [sym_false] = ACTIONS(3102),
    [sym_null] = ACTIONS(3102),
    [sym_super] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_abstract] = ACTIONS(3102),
    [sym_alias] = ACTIONS(3102),
    [sym_align] = ACTIONS(3102),
    [sym_asm] = ACTIONS(3102),
    [sym_assert] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_break] = ACTIONS(3102),
    [sym_case] = ACTIONS(3102),
    [sym_cast] = ACTIONS(3102),
    [sym_class] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_continue] = ACTIONS(3102),
    [sym_debug] = ACTIONS(3102),
    [sym_default] = ACTIONS(3102),
    [sym_delegate] = ACTIONS(3102),
    [sym_delete] = ACTIONS(3102),
    [sym_deprecated] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_enum] = ACTIONS(3102),
    [sym_export] = ACTIONS(3102),
    [sym_extern] = ACTIONS(3102),
    [sym_final] = ACTIONS(3102),
    [sym_for] = ACTIONS(3102),
    [sym_foreach] = ACTIONS(3102),
    [sym_foreach_reverse] = ACTIONS(3102),
    [sym_function] = ACTIONS(3102),
    [sym_goto] = ACTIONS(3102),
    [sym_if] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_interface] = ACTIONS(3102),
    [sym_invariant] = ACTIONS(3102),
    [sym_is] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_new] = ACTIONS(3102),
    [sym_nothrow] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_override] = ACTIONS(3102),
    [sym_package] = ACTIONS(3102),
    [sym_pragma] = ACTIONS(3102),
    [sym_private] = ACTIONS(3102),
    [sym_protected] = ACTIONS(3102),
    [sym_public] = ACTIONS(3102),
    [sym_pure] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_return] = ACTIONS(3102),
    [sym_scope] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_static] = ACTIONS(3102),
    [sym_struct] = ACTIONS(3102),
    [sym_switch] = ACTIONS(3102),
    [sym_synchronized] = ACTIONS(3102),
    [sym_template] = ACTIONS(3102),
    [sym_throw] = ACTIONS(3102),
    [sym_try] = ACTIONS(3102),
    [sym_typeid] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_union] = ACTIONS(3102),
    [sym_unittest] = ACTIONS(3102),
    [sym_version] = ACTIONS(3102),
    [sym_while] = ACTIONS(3102),
    [sym_with] = ACTIONS(3102),
    [sym_gshared] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [anon_sym_BQUOTE] = ACTIONS(3104),
    [anon_sym_r_DQUOTE] = ACTIONS(3104),
    [anon_sym_x_DQUOTE] = ACTIONS(3104),
    [anon_sym_DQUOTE] = ACTIONS(3104),
    [anon_sym_i_BQUOTE] = ACTIONS(3104),
    [anon_sym_i_DQUOTE] = ACTIONS(3104),
    [anon_sym_iq_LBRACE] = ACTIONS(3104),
    [aux_sym_char_literal_token1] = ACTIONS(3104),
    [anon_sym_SQUOTE] = ACTIONS(3102),
    [anon_sym___DATE__] = ACTIONS(3102),
    [anon_sym___FILE__] = ACTIONS(3102),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3102),
    [anon_sym___FUNCTION__] = ACTIONS(3102),
    [anon_sym___LINE__] = ACTIONS(3102),
    [anon_sym___MODULE__] = ACTIONS(3102),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3102),
    [anon_sym___TIME__] = ACTIONS(3102),
    [anon_sym___TIMESTAMP__] = ACTIONS(3102),
    [anon_sym___VENDOR__] = ACTIONS(3102),
    [anon_sym___VERSION__] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3104),
    [sym_float_literal] = ACTIONS(3104),
    [sym__string] = ACTIONS(3104),
    [sym_not_in] = ACTIONS(3104),
    [sym_not_is] = ACTIONS(3104),
  },
  [693] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5194),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7105),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [694] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5145),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7079),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [695] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5186),
    [sym_type_ctor] = STATE(3784),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5070),
    [sym__builtin_type] = STATE(5064),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(3778),
    [sym_at_attribute] = STATE(3921),
    [sym_expression_list] = STATE(7189),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3777),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3775),
    [sym_traits_expression] = STATE(3777),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3127),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3129),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(3137),
    [sym_byte] = ACTIONS(3137),
    [sym_ubyte] = ACTIONS(3137),
    [sym_char] = ACTIONS(3137),
    [sym_short] = ACTIONS(3137),
    [sym_ushort] = ACTIONS(3137),
    [sym_int] = ACTIONS(3137),
    [sym_uint] = ACTIONS(3137),
    [sym_long] = ACTIONS(3137),
    [sym_ulong] = ACTIONS(3137),
    [sym_cent] = ACTIONS(3137),
    [sym_ucent] = ACTIONS(3137),
    [sym_wchar] = ACTIONS(3137),
    [sym_dchar] = ACTIONS(3137),
    [sym_float] = ACTIONS(3137),
    [sym_double] = ACTIONS(3137),
    [sym_real] = ACTIONS(3137),
    [sym_ifloat] = ACTIONS(3137),
    [sym_idouble] = ACTIONS(3137),
    [sym_ireal] = ACTIONS(3137),
    [sym_cfloat] = ACTIONS(3137),
    [sym_cdouble] = ACTIONS(3137),
    [sym_creal] = ACTIONS(3137),
    [sym_size_t] = ACTIONS(3137),
    [sym_ptrdiff_t] = ACTIONS(3137),
    [sym_string] = ACTIONS(3137),
    [sym_cstring] = ACTIONS(3137),
    [sym_dstring] = ACTIONS(3137),
    [sym_wstring] = ACTIONS(3137),
    [sym_noreturn] = ACTIONS(3137),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3139),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(3141),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_final] = ACTIONS(3143),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(3141),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(3145),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(3149),
    [sym_ref] = ACTIONS(3151),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(3161),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [696] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3072),
    [anon_sym_RBRACE] = ACTIONS(3170),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_AMP] = ACTIONS(3070),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3070),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3072),
    [anon_sym_PLUS] = ACTIONS(3070),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3072),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3070),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3072),
    [anon_sym_LBRACK] = ACTIONS(3072),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3170),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_DOLLAR] = ACTIONS(3072),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3070),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3070),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_true] = ACTIONS(3070),
    [sym_false] = ACTIONS(3070),
    [sym_null] = ACTIONS(3070),
    [sym_super] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_asm] = ACTIONS(3070),
    [sym_assert] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_break] = ACTIONS(3070),
    [sym_case] = ACTIONS(3070),
    [sym_cast] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_continue] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_default] = ACTIONS(3070),
    [sym_delegate] = ACTIONS(3070),
    [sym_delete] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_for] = ACTIONS(3070),
    [sym_foreach] = ACTIONS(3070),
    [sym_foreach_reverse] = ACTIONS(3070),
    [sym_function] = ACTIONS(3070),
    [sym_goto] = ACTIONS(3070),
    [sym_if] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_is] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_new] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_switch] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_throw] = ACTIONS(3070),
    [sym_try] = ACTIONS(3070),
    [sym_typeid] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_with] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [anon_sym_BQUOTE] = ACTIONS(3072),
    [anon_sym_r_DQUOTE] = ACTIONS(3072),
    [anon_sym_x_DQUOTE] = ACTIONS(3072),
    [anon_sym_DQUOTE] = ACTIONS(3072),
    [anon_sym_i_BQUOTE] = ACTIONS(3072),
    [anon_sym_i_DQUOTE] = ACTIONS(3072),
    [anon_sym_iq_LBRACE] = ACTIONS(3072),
    [aux_sym_char_literal_token1] = ACTIONS(3072),
    [anon_sym_SQUOTE] = ACTIONS(3070),
    [anon_sym___DATE__] = ACTIONS(3070),
    [anon_sym___FILE__] = ACTIONS(3070),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3070),
    [anon_sym___FUNCTION__] = ACTIONS(3070),
    [anon_sym___LINE__] = ACTIONS(3070),
    [anon_sym___MODULE__] = ACTIONS(3070),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3070),
    [anon_sym___TIME__] = ACTIONS(3070),
    [anon_sym___TIMESTAMP__] = ACTIONS(3070),
    [anon_sym___VENDOR__] = ACTIONS(3070),
    [anon_sym___VERSION__] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3072),
    [sym_float_literal] = ACTIONS(3072),
    [sym__string] = ACTIONS(3072),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [697] = {
    [sym_identifier] = ACTIONS(3074),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3076),
    [anon_sym_RBRACE] = ACTIONS(3082),
    [anon_sym_LBRACE] = ACTIONS(3076),
    [anon_sym_SLASH] = ACTIONS(3078),
    [anon_sym_SLASH_EQ] = ACTIONS(3080),
    [anon_sym_DOT] = ACTIONS(3082),
    [anon_sym_AMP] = ACTIONS(3085),
    [anon_sym_AMP_EQ] = ACTIONS(3080),
    [anon_sym_AMP_AMP] = ACTIONS(3080),
    [anon_sym_PIPE] = ACTIONS(3078),
    [anon_sym_PIPE_EQ] = ACTIONS(3080),
    [anon_sym_PIPE_PIPE] = ACTIONS(3080),
    [anon_sym_DASH] = ACTIONS(3085),
    [anon_sym_DASH_EQ] = ACTIONS(3080),
    [anon_sym_DASH_DASH] = ACTIONS(3082),
    [anon_sym_PLUS] = ACTIONS(3085),
    [anon_sym_PLUS_EQ] = ACTIONS(3080),
    [anon_sym_PLUS_PLUS] = ACTIONS(3082),
    [anon_sym_LT] = ACTIONS(3078),
    [anon_sym_LT_EQ] = ACTIONS(3080),
    [anon_sym_LT_LT] = ACTIONS(3078),
    [anon_sym_LT_LT_EQ] = ACTIONS(3080),
    [anon_sym_GT] = ACTIONS(3078),
    [anon_sym_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT] = ACTIONS(3078),
    [anon_sym_GT_GT_GT] = ACTIONS(3078),
    [anon_sym_BANG] = ACTIONS(3074),
    [anon_sym_BANG_EQ] = ACTIONS(3080),
    [anon_sym_LPAREN] = ACTIONS(3082),
    [anon_sym_LBRACK] = ACTIONS(3082),
    [anon_sym_QMARK] = ACTIONS(3080),
    [anon_sym_COMMA] = ACTIONS(3080),
    [anon_sym_SEMI] = ACTIONS(3082),
    [anon_sym_DOLLAR] = ACTIONS(3076),
    [anon_sym_EQ] = ACTIONS(3078),
    [anon_sym_EQ_EQ] = ACTIONS(3080),
    [anon_sym_STAR] = ACTIONS(3085),
    [anon_sym_STAR_EQ] = ACTIONS(3080),
    [anon_sym_PERCENT] = ACTIONS(3078),
    [anon_sym_PERCENT_EQ] = ACTIONS(3080),
    [anon_sym_CARET] = ACTIONS(3078),
    [anon_sym_CARET_EQ] = ACTIONS(3080),
    [anon_sym_CARET_CARET] = ACTIONS(3078),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3080),
    [anon_sym_TILDE] = ACTIONS(3085),
    [anon_sym_TILDE_EQ] = ACTIONS(3080),
    [anon_sym_AT] = ACTIONS(3076),
    [sym_bool] = ACTIONS(3074),
    [sym_byte] = ACTIONS(3074),
    [sym_ubyte] = ACTIONS(3074),
    [sym_char] = ACTIONS(3074),
    [sym_short] = ACTIONS(3074),
    [sym_ushort] = ACTIONS(3074),
    [sym_int] = ACTIONS(3074),
    [sym_uint] = ACTIONS(3074),
    [sym_long] = ACTIONS(3074),
    [sym_ulong] = ACTIONS(3074),
    [sym_cent] = ACTIONS(3074),
    [sym_ucent] = ACTIONS(3074),
    [sym_wchar] = ACTIONS(3074),
    [sym_dchar] = ACTIONS(3074),
    [sym_float] = ACTIONS(3074),
    [sym_double] = ACTIONS(3074),
    [sym_real] = ACTIONS(3074),
    [sym_ifloat] = ACTIONS(3074),
    [sym_idouble] = ACTIONS(3074),
    [sym_ireal] = ACTIONS(3074),
    [sym_cfloat] = ACTIONS(3074),
    [sym_cdouble] = ACTIONS(3074),
    [sym_creal] = ACTIONS(3074),
    [sym_size_t] = ACTIONS(3074),
    [sym_ptrdiff_t] = ACTIONS(3074),
    [sym_string] = ACTIONS(3074),
    [sym_cstring] = ACTIONS(3074),
    [sym_dstring] = ACTIONS(3074),
    [sym_wstring] = ACTIONS(3074),
    [sym_noreturn] = ACTIONS(3074),
    [sym_true] = ACTIONS(3074),
    [sym_false] = ACTIONS(3074),
    [sym_null] = ACTIONS(3074),
    [sym_super] = ACTIONS(3074),
    [sym_this] = ACTIONS(3074),
    [sym_abstract] = ACTIONS(3074),
    [sym_alias] = ACTIONS(3074),
    [sym_align] = ACTIONS(3074),
    [sym_asm] = ACTIONS(3074),
    [sym_assert] = ACTIONS(3074),
    [sym_auto] = ACTIONS(3074),
    [sym_break] = ACTIONS(3074),
    [sym_case] = ACTIONS(3074),
    [sym_cast] = ACTIONS(3074),
    [sym_class] = ACTIONS(3074),
    [sym_const] = ACTIONS(3074),
    [sym_continue] = ACTIONS(3074),
    [sym_debug] = ACTIONS(3074),
    [sym_default] = ACTIONS(3074),
    [sym_delegate] = ACTIONS(3074),
    [sym_delete] = ACTIONS(3074),
    [sym_deprecated] = ACTIONS(3074),
    [sym_do] = ACTIONS(3074),
    [sym_enum] = ACTIONS(3074),
    [sym_export] = ACTIONS(3074),
    [sym_extern] = ACTIONS(3074),
    [sym_final] = ACTIONS(3074),
    [sym_for] = ACTIONS(3074),
    [sym_foreach] = ACTIONS(3074),
    [sym_foreach_reverse] = ACTIONS(3074),
    [sym_function] = ACTIONS(3074),
    [sym_goto] = ACTIONS(3074),
    [sym_if] = ACTIONS(3074),
    [sym_immutable] = ACTIONS(3074),
    [sym_import] = ACTIONS(3074),
    [sym_in] = ACTIONS(3085),
    [sym_inout] = ACTIONS(3074),
    [sym_interface] = ACTIONS(3074),
    [sym_invariant] = ACTIONS(3074),
    [sym_is] = ACTIONS(3085),
    [sym_mixin] = ACTIONS(3074),
    [sym_new] = ACTIONS(3074),
    [sym_nothrow] = ACTIONS(3074),
    [sym_out] = ACTIONS(3074),
    [sym_override] = ACTIONS(3074),
    [sym_package] = ACTIONS(3074),
    [sym_pragma] = ACTIONS(3074),
    [sym_private] = ACTIONS(3074),
    [sym_protected] = ACTIONS(3074),
    [sym_public] = ACTIONS(3074),
    [sym_pure] = ACTIONS(3074),
    [sym_ref] = ACTIONS(3074),
    [sym_return] = ACTIONS(3074),
    [sym_scope] = ACTIONS(3074),
    [sym_shared] = ACTIONS(3074),
    [sym_static] = ACTIONS(3074),
    [sym_struct] = ACTIONS(3074),
    [sym_switch] = ACTIONS(3074),
    [sym_synchronized] = ACTIONS(3074),
    [sym_template] = ACTIONS(3074),
    [sym_throw] = ACTIONS(3074),
    [sym_try] = ACTIONS(3074),
    [sym_typeid] = ACTIONS(3074),
    [sym_typeof] = ACTIONS(3074),
    [sym_union] = ACTIONS(3074),
    [sym_unittest] = ACTIONS(3074),
    [sym_version] = ACTIONS(3074),
    [sym_while] = ACTIONS(3074),
    [sym_with] = ACTIONS(3074),
    [sym_gshared] = ACTIONS(3074),
    [sym_traits] = ACTIONS(3074),
    [sym_vector] = ACTIONS(3074),
    [sym_void] = ACTIONS(3074),
    [anon_sym_BQUOTE] = ACTIONS(3076),
    [anon_sym_r_DQUOTE] = ACTIONS(3076),
    [anon_sym_x_DQUOTE] = ACTIONS(3076),
    [anon_sym_DQUOTE] = ACTIONS(3076),
    [anon_sym_i_BQUOTE] = ACTIONS(3076),
    [anon_sym_i_DQUOTE] = ACTIONS(3076),
    [anon_sym_iq_LBRACE] = ACTIONS(3076),
    [aux_sym_char_literal_token1] = ACTIONS(3076),
    [anon_sym_SQUOTE] = ACTIONS(3074),
    [anon_sym___DATE__] = ACTIONS(3074),
    [anon_sym___FILE__] = ACTIONS(3074),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3074),
    [anon_sym___FUNCTION__] = ACTIONS(3074),
    [anon_sym___LINE__] = ACTIONS(3074),
    [anon_sym___MODULE__] = ACTIONS(3074),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3074),
    [anon_sym___TIME__] = ACTIONS(3074),
    [anon_sym___TIMESTAMP__] = ACTIONS(3074),
    [anon_sym___VENDOR__] = ACTIONS(3074),
    [anon_sym___VERSION__] = ACTIONS(3074),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3076),
    [sym_float_literal] = ACTIONS(3076),
    [sym__string] = ACTIONS(3076),
    [sym_not_in] = ACTIONS(3080),
    [sym_not_is] = ACTIONS(3080),
  },
  [698] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(6980),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3173),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(3175),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_struct] = ACTIONS(3175),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [699] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7725),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3177),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_class] = ACTIONS(3179),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_struct] = ACTIONS(3179),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [700] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3191),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [701] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_named_argument] = STATE(5788),
    [sym__named_argument_list] = STATE(8002),
    [sym_expression] = STATE(6921),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3207),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3209),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [702] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3211),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [703] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3213),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [704] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3215),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [705] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3217),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [706] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(5887),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3219),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [707] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_named_argument] = STATE(5788),
    [sym__named_argument_list] = STATE(7013),
    [sym_expression] = STATE(6921),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3207),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3221),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [708] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6918),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6918),
    [sym_member_initializer] = STATE(6543),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3223),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(3225),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [709] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6086),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3227),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [710] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(5981),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3229),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [711] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_named_argument] = STATE(5788),
    [sym__named_argument_list] = STATE(7236),
    [sym_expression] = STATE(6921),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3207),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3231),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [712] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_RBRACK] = ACTIONS(3233),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [713] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6918),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6918),
    [sym_member_initializer] = STATE(6543),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3223),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_RBRACE] = ACTIONS(3235),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [714] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7837),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3241),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [715] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7614),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3243),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [716] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7255),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3245),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [717] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6527),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3263),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [718] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7196),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3329),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [719] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6904),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3331),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3333),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [720] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6527),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3335),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [721] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7789),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3337),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [722] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7427),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3339),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [723] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7782),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3341),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [724] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7363),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3343),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [725] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7170),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3345),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [726] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6554),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3347),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3349),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [727] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7136),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3351),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [728] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7724),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3353),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [729] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7096),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3355),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [730] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7670),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3357),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [731] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6826),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3359),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3361),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [732] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(6955),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3363),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [733] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(6992),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3365),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [734] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6883),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3367),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3369),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [735] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6918),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6918),
    [sym_member_initializer] = STATE(6543),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3223),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [736] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7098),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3371),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [737] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7132),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3373),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [738] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6734),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3375),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3377),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [739] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7228),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3379),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [740] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7259),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3381),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [741] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6527),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3383),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [742] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression] = STATE(7062),
    [sym__expr] = STATE(4176),
    [sym_ternary_expression] = STATE(4176),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4176),
    [sym_binary_expression] = STATE(4176),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym__array_member_init] = STATE(6687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6858),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [743] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7665),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3385),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [744] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_named_argument] = STATE(6583),
    [sym_expression] = STATE(6921),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3207),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3387),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [745] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6584),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3389),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3391),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [746] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7098),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3393),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [747] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7132),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3395),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [748] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6534),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3397),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3399),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [749] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6503),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3401),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3403),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [750] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6470),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3405),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3407),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [751] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6436),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3409),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3411),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [752] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7713),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3413),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [753] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7102),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3415),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [754] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(5734),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3417),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [755] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6527),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3419),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [756] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(5861),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3421),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [757] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7626),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3423),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [758] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7774),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3425),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [759] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_named_argument] = STATE(6583),
    [sym_expression] = STATE(6921),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3207),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3427),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [760] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7114),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3429),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [761] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7824),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3431),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [762] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(8008),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3433),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [763] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(8017),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3435),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [764] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7092),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3437),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [765] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6627),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3439),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3441),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [766] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7863),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3443),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [767] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7841),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3445),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [768] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7546),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3447),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [769] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7531),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3449),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [770] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6527),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3451),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [771] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(8029),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3453),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [772] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6527),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3455),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [773] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6565),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3457),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3459),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [774] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6192),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3461),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [775] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6972),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3463),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [776] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6385),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6438),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3469),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [777] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7375),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3471),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [778] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6144),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6782),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3473),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [779] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7920),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [780] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6601),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4258),
    [sym_ternary_expression] = STATE(4258),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4258),
    [sym_binary_expression] = STATE(4258),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6601),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [781] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7266),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [782] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6139),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6417),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3475),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [783] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7023),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3477),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [784] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7378),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3479),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [785] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(6485),
    [sym_expression] = STATE(8035),
    [sym__expr] = STATE(4212),
    [sym_ternary_expression] = STATE(4212),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4212),
    [sym_binary_expression] = STATE(4212),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [786] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(5731),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3481),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [787] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7379),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3483),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [788] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6399),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6414),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3485),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [789] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6759),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6759),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [790] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7018),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3487),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [791] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7434),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [792] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(6717),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3489),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [793] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7796),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [794] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7292),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3491),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [795] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7249),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3493),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [796] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7830),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [797] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7345),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3495),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [798] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7739),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [799] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7683),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(3497),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [800] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7295),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3499),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [801] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7485),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [802] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7163),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3501),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [803] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6054),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6732),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3503),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [804] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7619),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [805] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7491),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(3505),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [806] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7025),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3507),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [807] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6139),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6632),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3475),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [808] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6861),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3509),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [809] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7309),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3511),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [810] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7361),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3513),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [811] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7369),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3515),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [812] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7405),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3517),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [813] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7408),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3519),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [814] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6809),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6809),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [815] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6507),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6507),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [816] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7409),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3521),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [817] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7862),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [818] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7258),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3523),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [819] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7574),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [820] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7168),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3525),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [821] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6779),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6779),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [822] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7643),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3527),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [823] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(6954),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [824] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7169),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3529),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [825] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_expression] = STATE(5859),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_index] = STATE(6527),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [826] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6032),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6767),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3531),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [827] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7750),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [828] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(6961),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [829] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7227),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [830] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7294),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3533),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [831] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6719),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6719),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [832] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(6641),
    [sym_expression] = STATE(8004),
    [sym__expr] = STATE(4212),
    [sym_ternary_expression] = STATE(4212),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4212),
    [sym_binary_expression] = STATE(4212),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [833] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6547),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6547),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [834] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7075),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3535),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [835] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7347),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3537),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [836] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7673),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [837] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7432),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3539),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [838] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(6717),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3541),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [839] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7575),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3543),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [840] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_named_argument] = STATE(6583),
    [sym_expression] = STATE(6921),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3207),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [841] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7634),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [842] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7346),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3545),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [843] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(5999),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6444),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3547),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [844] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7435),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3549),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [845] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7813),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(3551),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [846] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7785),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [847] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7436),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3553),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [848] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6139),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6671),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3475),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [849] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(5985),
    [sym__template_argument_list] = STATE(7655),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [850] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6861),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3555),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [851] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6861),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3557),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [852] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7069),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3559),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [853] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6861),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3561),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [854] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(6435),
    [sym_expression] = STATE(7433),
    [sym__expr] = STATE(4212),
    [sym_ternary_expression] = STATE(4212),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4212),
    [sym_binary_expression] = STATE(4212),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [855] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7208),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [856] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7630),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [857] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7803),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [858] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7790),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [859] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6038),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6754),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3563),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [860] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7986),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [861] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6377),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6511),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3565),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [862] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6105),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6932),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3567),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [863] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7550),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3569),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [864] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6139),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6689),
    [sym__expr] = STATE(4190),
    [sym_ternary_expression] = STATE(4190),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4190),
    [sym_binary_expression] = STATE(4190),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3465),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_RBRACK] = ACTIONS(3475),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [865] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7846),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [866] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7552),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3571),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [867] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7152),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(3573),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [868] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7157),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [869] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7139),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [870] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7024),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3575),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [871] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7763),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [872] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7148),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(3577),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [873] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7290),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3579),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [874] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7342),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3581),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [875] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7029),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3583),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [876] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7030),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3585),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [877] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression_list] = STATE(7070),
    [sym__expr] = STATE(4162),
    [sym_ternary_expression] = STATE(4162),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4162),
    [sym_binary_expression] = STATE(4162),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_RPAREN] = ACTIONS(3587),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [878] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(6848),
    [sym_expression] = STATE(7987),
    [sym__expr] = STATE(4212),
    [sym_ternary_expression] = STATE(4212),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4212),
    [sym_binary_expression] = STATE(4212),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [879] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6709),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_assert_arguments] = STATE(7046),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [880] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(7118),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [881] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym__initializer] = STATE(6927),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4227),
    [sym_ternary_expression] = STATE(4227),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4227),
    [sym_binary_expression] = STATE(4227),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6927),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(209),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [882] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(8028),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_return] = ACTIONS(3589),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [883] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__argument_list] = STATE(8060),
    [sym_expression] = STATE(6083),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [884] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7871),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_SEMI] = ACTIONS(3591),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [885] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7611),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [886] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7267),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [887] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7699),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [888] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_expression] = STATE(7553),
    [sym__expr] = STATE(4284),
    [sym_ternary_expression] = STATE(4284),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4284),
    [sym_binary_expression] = STATE(4284),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [889] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4268),
    [sym_ternary_expression] = STATE(4268),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4268),
    [sym_binary_expression] = STATE(4268),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym_aggregate_initializer] = STATE(6690),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(3183),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [890] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7711),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [891] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7735),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [892] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7045),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [893] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6001),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4301),
    [sym_ternary_expression] = STATE(4301),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4301),
    [sym_binary_expression] = STATE(4301),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3781),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3613),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_scope] = ACTIONS(3615),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [894] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7093),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [895] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7087),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [896] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6840),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [897] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6846),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [898] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7797),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [899] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_expression] = STATE(7237),
    [sym__expr] = STATE(4284),
    [sym_ternary_expression] = STATE(4284),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4284),
    [sym_binary_expression] = STATE(4284),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [900] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7063),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [901] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7059),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [902] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7058),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [903] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7057),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [904] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7014),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [905] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7001),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [906] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7923),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [907] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5638),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4275),
    [sym_ternary_expression] = STATE(4275),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4275),
    [sym_binary_expression] = STATE(4275),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_template_argument] = STATE(6717),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [908] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7543),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [909] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5813),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_expression] = STATE(6996),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [910] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7570),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [911] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6989),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [912] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7514),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [913] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7401),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [914] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(6985),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [915] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7989),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [916] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6468),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [917] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7439),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [918] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7004),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [919] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6489),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [920] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7006),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [921] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7198),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [922] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6867),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [923] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7566),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [924] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7354),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [925] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6865),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [926] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7033),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [927] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7034),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [928] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7544),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [929] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6508),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [930] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6620),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [931] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7035),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [932] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7036),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [933] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5817),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_expression] = STATE(7981),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [934] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6720),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [935] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6471),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [936] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7657),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [937] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7635),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [938] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6530),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [939] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7795),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [940] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7636),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [941] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7659),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [942] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7592),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [943] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6967),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [944] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7144),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [945] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7394),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [946] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7146),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [947] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6965),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [948] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6724),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [949] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6718),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [950] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7172),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [951] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7173),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [952] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7174),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [953] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7966),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [954] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7866),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [955] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7633),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [956] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7967),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [957] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7861),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [958] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7328),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [959] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6952),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [960] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7747),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [961] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7175),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [962] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7280),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [963] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7281),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [964] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7282),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [965] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7284),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [966] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7285),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [967] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7235),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [968] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6578),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [969] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7483),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [970] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_expression] = STATE(7296),
    [sym__expr] = STATE(4284),
    [sym_ternary_expression] = STATE(4284),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4284),
    [sym_binary_expression] = STATE(4284),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [971] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7815),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [972] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7571),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [973] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6899),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [974] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7271),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [975] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7273),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [976] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6993),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [977] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6861),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [978] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7244),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [979] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7513),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [980] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6576),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [981] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7301),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [982] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7707),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [983] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6882),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [984] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6532),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [985] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7020),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [986] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6573),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [987] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6570),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [988] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7297),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [989] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7298),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [990] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7299),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [991] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7300),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [992] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7960),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [993] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6556),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [994] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7330),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [995] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7332),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [996] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6531),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [997] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6528),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [998] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6860),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [999] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7349),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1000] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6557),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1001] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_expression] = STATE(7021),
    [sym__expr] = STATE(4284),
    [sym_ternary_expression] = STATE(4284),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4284),
    [sym_binary_expression] = STATE(4284),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1002] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7350),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1003] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7910),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1004] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7351),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1005] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7352),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1006] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7978),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1007] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7366),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1008] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7338),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1009] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6186),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_expression] = STATE(7246),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1010] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7247),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1011] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(6589),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1012] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7368),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1013] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7343),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1014] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7248),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1015] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6499),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1016] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6498),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1017] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7381),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1018] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7382),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1019] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7771),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1020] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6871),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1021] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7383),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1022] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7933),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1023] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7907),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1024] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7908),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1025] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6834),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1026] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7384),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1027] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7026),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1028] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7396),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1029] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7398),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1030] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6465),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1031] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7027),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1032] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_expression_list] = STATE(7360),
    [sym__expr] = STATE(4234),
    [sym_ternary_expression] = STATE(4234),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4234),
    [sym_binary_expression] = STATE(4234),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1033] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6462),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1034] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7411),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1035] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7412),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1036] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7413),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1037] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7414),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1038] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7424),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1039] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7426),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1040] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6431),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1041] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6428),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1042] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(8007),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1043] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7039),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1044] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7041),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1045] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7438),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1046] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7921),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1047] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7376),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1048] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_expression] = STATE(6612),
    [sym__expr] = STATE(4248),
    [sym_ternary_expression] = STATE(4248),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4248),
    [sym_binary_expression] = STATE(4248),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1049] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7497),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1050] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7293),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1051] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7264),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1052] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7913),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1053] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7441),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1054] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7440),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1055] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7262),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1056] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7939),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1057] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7043),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1058] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7826),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1059] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_expression] = STATE(7393),
    [sym__expr] = STATE(4166),
    [sym_ternary_expression] = STATE(4166),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4166),
    [sym_binary_expression] = STATE(4166),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1060] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4059),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4059),
    [sym_ternary_expression] = STATE(4059),
    [sym_call_expression] = STATE(4059),
    [sym_primary_expression] = STATE(4059),
    [sym__primary_expr] = STATE(4059),
    [sym_index_expression] = STATE(4059),
    [sym_assignment_expression] = STATE(4059),
    [sym_binary_expression] = STATE(4059),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4059),
    [sym_unary_expression] = STATE(4059),
    [sym__unary_expr] = STATE(4059),
    [sym_property_expression] = STATE(4059),
    [sym_cast_expression] = STATE(4059),
    [sym_delete_expression] = STATE(4059),
    [sym_throw_expression] = STATE(4059),
    [sym_assert_expression] = STATE(4059),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4059),
    [sym_new_expression] = STATE(4059),
    [sym_typeid_expression] = STATE(4059),
    [sym_is_expression] = STATE(4059),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4059),
    [sym_char_literal] = STATE(4059),
    [sym_array_literal] = STATE(4059),
    [sym_function_literal] = STATE(4059),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4059),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3637),
    [sym_false] = ACTIONS(3637),
    [sym_null] = ACTIONS(3637),
    [sym_super] = ACTIONS(3637),
    [sym_this] = ACTIONS(3637),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3639),
    [sym_float_literal] = ACTIONS(3639),
    [sym__string] = ACTIONS(233),
  },
  [1061] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4140),
    [sym_ternary_expression] = STATE(4140),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4140),
    [sym_binary_expression] = STATE(4140),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1062] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4305),
    [sym_ternary_expression] = STATE(4305),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4305),
    [sym_binary_expression] = STATE(4305),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1063] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4279),
    [sym_ternary_expression] = STATE(4279),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4279),
    [sym_binary_expression] = STATE(4279),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1064] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4159),
    [sym_ternary_expression] = STATE(4159),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4159),
    [sym_binary_expression] = STATE(4159),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1065] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4182),
    [sym_ternary_expression] = STATE(4182),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4182),
    [sym_binary_expression] = STATE(4182),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1066] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4064),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4064),
    [sym_ternary_expression] = STATE(4064),
    [sym_call_expression] = STATE(4064),
    [sym_primary_expression] = STATE(4064),
    [sym__primary_expr] = STATE(4064),
    [sym_index_expression] = STATE(4064),
    [sym_assignment_expression] = STATE(4064),
    [sym_binary_expression] = STATE(4064),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4064),
    [sym_unary_expression] = STATE(4064),
    [sym__unary_expr] = STATE(4064),
    [sym_property_expression] = STATE(4064),
    [sym_cast_expression] = STATE(4064),
    [sym_delete_expression] = STATE(4064),
    [sym_throw_expression] = STATE(4064),
    [sym_assert_expression] = STATE(4064),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4064),
    [sym_new_expression] = STATE(4064),
    [sym_typeid_expression] = STATE(4064),
    [sym_is_expression] = STATE(4064),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4064),
    [sym_char_literal] = STATE(4064),
    [sym_array_literal] = STATE(4064),
    [sym_function_literal] = STATE(4064),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4064),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3715),
    [sym_false] = ACTIONS(3715),
    [sym_null] = ACTIONS(3715),
    [sym_super] = ACTIONS(3715),
    [sym_this] = ACTIONS(3715),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3717),
    [sym_float_literal] = ACTIONS(3717),
    [sym__string] = ACTIONS(3713),
  },
  [1067] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4291),
    [sym_ternary_expression] = STATE(4291),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4291),
    [sym_binary_expression] = STATE(4291),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1068] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4167),
    [sym_ternary_expression] = STATE(4167),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4167),
    [sym_binary_expression] = STATE(4167),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1069] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4183),
    [sym_ternary_expression] = STATE(4183),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4183),
    [sym_binary_expression] = STATE(4183),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1070] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4011),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4011),
    [sym_ternary_expression] = STATE(4011),
    [sym_call_expression] = STATE(4011),
    [sym_primary_expression] = STATE(4011),
    [sym__primary_expr] = STATE(4011),
    [sym_index_expression] = STATE(4011),
    [sym_assignment_expression] = STATE(4011),
    [sym_binary_expression] = STATE(4011),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4011),
    [sym_unary_expression] = STATE(4011),
    [sym__unary_expr] = STATE(4011),
    [sym_property_expression] = STATE(4011),
    [sym_cast_expression] = STATE(4011),
    [sym_delete_expression] = STATE(4011),
    [sym_throw_expression] = STATE(4011),
    [sym_assert_expression] = STATE(4011),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4011),
    [sym_new_expression] = STATE(4011),
    [sym_typeid_expression] = STATE(4011),
    [sym_is_expression] = STATE(4011),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4011),
    [sym_char_literal] = STATE(4011),
    [sym_array_literal] = STATE(4011),
    [sym_function_literal] = STATE(4011),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4011),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3719),
    [sym_false] = ACTIONS(3719),
    [sym_null] = ACTIONS(3719),
    [sym_super] = ACTIONS(3719),
    [sym_this] = ACTIONS(3719),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3721),
    [sym_float_literal] = ACTIONS(3721),
    [sym__string] = ACTIONS(3327),
  },
  [1071] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4102),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4102),
    [sym_ternary_expression] = STATE(4102),
    [sym_call_expression] = STATE(4102),
    [sym_primary_expression] = STATE(4102),
    [sym__primary_expr] = STATE(4102),
    [sym_index_expression] = STATE(4102),
    [sym_assignment_expression] = STATE(4102),
    [sym_binary_expression] = STATE(4102),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4102),
    [sym_unary_expression] = STATE(4102),
    [sym__unary_expr] = STATE(4102),
    [sym_property_expression] = STATE(4102),
    [sym_cast_expression] = STATE(4102),
    [sym_delete_expression] = STATE(4102),
    [sym_throw_expression] = STATE(4102),
    [sym_assert_expression] = STATE(4102),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4102),
    [sym_new_expression] = STATE(4102),
    [sym_typeid_expression] = STATE(4102),
    [sym_is_expression] = STATE(4102),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4102),
    [sym_char_literal] = STATE(4102),
    [sym_array_literal] = STATE(4102),
    [sym_function_literal] = STATE(4102),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4102),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3723),
    [sym_false] = ACTIONS(3723),
    [sym_null] = ACTIONS(3723),
    [sym_super] = ACTIONS(3723),
    [sym_this] = ACTIONS(3723),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3725),
    [sym_float_literal] = ACTIONS(3725),
    [sym__string] = ACTIONS(3327),
  },
  [1072] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4296),
    [sym_ternary_expression] = STATE(4296),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4296),
    [sym_binary_expression] = STATE(4296),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1073] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4031),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4031),
    [sym_ternary_expression] = STATE(4031),
    [sym_call_expression] = STATE(4031),
    [sym_primary_expression] = STATE(4031),
    [sym__primary_expr] = STATE(4031),
    [sym_index_expression] = STATE(4031),
    [sym_assignment_expression] = STATE(4031),
    [sym_binary_expression] = STATE(4031),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4031),
    [sym_unary_expression] = STATE(4031),
    [sym__unary_expr] = STATE(4031),
    [sym_property_expression] = STATE(4031),
    [sym_cast_expression] = STATE(4031),
    [sym_delete_expression] = STATE(4031),
    [sym_throw_expression] = STATE(4031),
    [sym_assert_expression] = STATE(4031),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4031),
    [sym_new_expression] = STATE(4031),
    [sym_typeid_expression] = STATE(4031),
    [sym_is_expression] = STATE(4031),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4031),
    [sym_char_literal] = STATE(4031),
    [sym_array_literal] = STATE(4031),
    [sym_function_literal] = STATE(4031),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4031),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3727),
    [sym_false] = ACTIONS(3727),
    [sym_null] = ACTIONS(3727),
    [sym_super] = ACTIONS(3727),
    [sym_this] = ACTIONS(3727),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3729),
    [sym_float_literal] = ACTIONS(3729),
    [sym__string] = ACTIONS(3327),
  },
  [1074] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4178),
    [sym_ternary_expression] = STATE(4178),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4178),
    [sym_binary_expression] = STATE(4178),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1075] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4233),
    [sym_ternary_expression] = STATE(4233),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4233),
    [sym_binary_expression] = STATE(4233),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1076] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3918),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3918),
    [sym_ternary_expression] = STATE(3918),
    [sym_call_expression] = STATE(3918),
    [sym_primary_expression] = STATE(3918),
    [sym__primary_expr] = STATE(3918),
    [sym_index_expression] = STATE(3918),
    [sym_assignment_expression] = STATE(3918),
    [sym_binary_expression] = STATE(3918),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3918),
    [sym_unary_expression] = STATE(3918),
    [sym__unary_expr] = STATE(3918),
    [sym_property_expression] = STATE(3918),
    [sym_cast_expression] = STATE(3918),
    [sym_delete_expression] = STATE(3918),
    [sym_throw_expression] = STATE(3918),
    [sym_assert_expression] = STATE(3918),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3918),
    [sym_new_expression] = STATE(3918),
    [sym_typeid_expression] = STATE(3918),
    [sym_is_expression] = STATE(3918),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3918),
    [sym_char_literal] = STATE(3918),
    [sym_array_literal] = STATE(3918),
    [sym_function_literal] = STATE(3918),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3918),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3731),
    [sym_false] = ACTIONS(3731),
    [sym_null] = ACTIONS(3731),
    [sym_super] = ACTIONS(3731),
    [sym_this] = ACTIONS(3731),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3733),
    [sym_float_literal] = ACTIONS(3733),
    [sym__string] = ACTIONS(233),
  },
  [1077] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4120),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4120),
    [sym_ternary_expression] = STATE(4120),
    [sym_call_expression] = STATE(4120),
    [sym_primary_expression] = STATE(4120),
    [sym__primary_expr] = STATE(4120),
    [sym_index_expression] = STATE(4120),
    [sym_assignment_expression] = STATE(4120),
    [sym_binary_expression] = STATE(4120),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4120),
    [sym_unary_expression] = STATE(4120),
    [sym__unary_expr] = STATE(4120),
    [sym_property_expression] = STATE(4120),
    [sym_cast_expression] = STATE(4120),
    [sym_delete_expression] = STATE(4120),
    [sym_throw_expression] = STATE(4120),
    [sym_assert_expression] = STATE(4120),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4120),
    [sym_new_expression] = STATE(4120),
    [sym_typeid_expression] = STATE(4120),
    [sym_is_expression] = STATE(4120),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4120),
    [sym_char_literal] = STATE(4120),
    [sym_array_literal] = STATE(4120),
    [sym_function_literal] = STATE(4120),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4120),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3735),
    [sym_false] = ACTIONS(3735),
    [sym_null] = ACTIONS(3735),
    [sym_super] = ACTIONS(3735),
    [sym_this] = ACTIONS(3735),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3737),
    [sym_float_literal] = ACTIONS(3737),
    [sym__string] = ACTIONS(3327),
  },
  [1078] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4041),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4041),
    [sym_ternary_expression] = STATE(4041),
    [sym_call_expression] = STATE(4041),
    [sym_primary_expression] = STATE(4041),
    [sym__primary_expr] = STATE(4041),
    [sym_index_expression] = STATE(4041),
    [sym_assignment_expression] = STATE(4041),
    [sym_binary_expression] = STATE(4041),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4041),
    [sym_unary_expression] = STATE(4041),
    [sym__unary_expr] = STATE(4041),
    [sym_property_expression] = STATE(4041),
    [sym_cast_expression] = STATE(4041),
    [sym_delete_expression] = STATE(4041),
    [sym_throw_expression] = STATE(4041),
    [sym_assert_expression] = STATE(4041),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4041),
    [sym_new_expression] = STATE(4041),
    [sym_typeid_expression] = STATE(4041),
    [sym_is_expression] = STATE(4041),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4041),
    [sym_char_literal] = STATE(4041),
    [sym_array_literal] = STATE(4041),
    [sym_function_literal] = STATE(4041),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4041),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3739),
    [sym_false] = ACTIONS(3739),
    [sym_null] = ACTIONS(3739),
    [sym_super] = ACTIONS(3739),
    [sym_this] = ACTIONS(3739),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3741),
    [sym_float_literal] = ACTIONS(3741),
    [sym__string] = ACTIONS(3713),
  },
  [1079] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4237),
    [sym_ternary_expression] = STATE(4237),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4237),
    [sym_binary_expression] = STATE(4237),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1080] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4253),
    [sym_ternary_expression] = STATE(4253),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4253),
    [sym_binary_expression] = STATE(4253),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1081] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3924),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3924),
    [sym_ternary_expression] = STATE(3924),
    [sym_call_expression] = STATE(3924),
    [sym_primary_expression] = STATE(3924),
    [sym__primary_expr] = STATE(3924),
    [sym_index_expression] = STATE(3924),
    [sym_assignment_expression] = STATE(3924),
    [sym_binary_expression] = STATE(3924),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3924),
    [sym_unary_expression] = STATE(3924),
    [sym__unary_expr] = STATE(3924),
    [sym_property_expression] = STATE(3924),
    [sym_cast_expression] = STATE(3924),
    [sym_delete_expression] = STATE(3924),
    [sym_throw_expression] = STATE(3924),
    [sym_assert_expression] = STATE(3924),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3924),
    [sym_new_expression] = STATE(3924),
    [sym_typeid_expression] = STATE(3924),
    [sym_is_expression] = STATE(3924),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3924),
    [sym_char_literal] = STATE(3924),
    [sym_array_literal] = STATE(3924),
    [sym_function_literal] = STATE(3924),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3924),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3743),
    [sym_false] = ACTIONS(3743),
    [sym_null] = ACTIONS(3743),
    [sym_super] = ACTIONS(3743),
    [sym_this] = ACTIONS(3743),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3745),
    [sym_float_literal] = ACTIONS(3745),
    [sym__string] = ACTIONS(233),
  },
  [1082] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5646),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4246),
    [sym_ternary_expression] = STATE(4246),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4246),
    [sym_binary_expression] = STATE(4246),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1083] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5646),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4262),
    [sym_ternary_expression] = STATE(4262),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4262),
    [sym_binary_expression] = STATE(4262),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1084] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3916),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3916),
    [sym_ternary_expression] = STATE(3916),
    [sym_call_expression] = STATE(3916),
    [sym_primary_expression] = STATE(3916),
    [sym__primary_expr] = STATE(3916),
    [sym_index_expression] = STATE(3916),
    [sym_assignment_expression] = STATE(3916),
    [sym_binary_expression] = STATE(3916),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3916),
    [sym_unary_expression] = STATE(3916),
    [sym__unary_expr] = STATE(3916),
    [sym_property_expression] = STATE(3916),
    [sym_cast_expression] = STATE(3916),
    [sym_delete_expression] = STATE(3916),
    [sym_throw_expression] = STATE(3916),
    [sym_assert_expression] = STATE(3916),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3916),
    [sym_new_expression] = STATE(3916),
    [sym_typeid_expression] = STATE(3916),
    [sym_is_expression] = STATE(3916),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3916),
    [sym_char_literal] = STATE(3916),
    [sym_array_literal] = STATE(3916),
    [sym_function_literal] = STATE(3916),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3916),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3747),
    [sym_false] = ACTIONS(3747),
    [sym_null] = ACTIONS(3747),
    [sym_super] = ACTIONS(3747),
    [sym_this] = ACTIONS(3747),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3749),
    [sym_float_literal] = ACTIONS(3749),
    [sym__string] = ACTIONS(233),
  },
  [1085] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3923),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3923),
    [sym_ternary_expression] = STATE(3923),
    [sym_call_expression] = STATE(3923),
    [sym_primary_expression] = STATE(3923),
    [sym__primary_expr] = STATE(3923),
    [sym_index_expression] = STATE(3923),
    [sym_assignment_expression] = STATE(3923),
    [sym_binary_expression] = STATE(3923),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3923),
    [sym_unary_expression] = STATE(3923),
    [sym__unary_expr] = STATE(3923),
    [sym_property_expression] = STATE(3923),
    [sym_cast_expression] = STATE(3923),
    [sym_delete_expression] = STATE(3923),
    [sym_throw_expression] = STATE(3923),
    [sym_assert_expression] = STATE(3923),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3923),
    [sym_new_expression] = STATE(3923),
    [sym_typeid_expression] = STATE(3923),
    [sym_is_expression] = STATE(3923),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3923),
    [sym_char_literal] = STATE(3923),
    [sym_array_literal] = STATE(3923),
    [sym_function_literal] = STATE(3923),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3923),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3751),
    [sym_false] = ACTIONS(3751),
    [sym_null] = ACTIONS(3751),
    [sym_super] = ACTIONS(3751),
    [sym_this] = ACTIONS(3751),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3753),
    [sym_float_literal] = ACTIONS(3753),
    [sym__string] = ACTIONS(233),
  },
  [1086] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4292),
    [sym_ternary_expression] = STATE(4292),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4292),
    [sym_binary_expression] = STATE(4292),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1087] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4116),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4116),
    [sym_ternary_expression] = STATE(4116),
    [sym_call_expression] = STATE(4116),
    [sym_primary_expression] = STATE(4116),
    [sym__primary_expr] = STATE(4116),
    [sym_index_expression] = STATE(4116),
    [sym_assignment_expression] = STATE(4116),
    [sym_binary_expression] = STATE(4116),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4116),
    [sym_unary_expression] = STATE(4116),
    [sym__unary_expr] = STATE(4116),
    [sym_property_expression] = STATE(4116),
    [sym_cast_expression] = STATE(4116),
    [sym_delete_expression] = STATE(4116),
    [sym_throw_expression] = STATE(4116),
    [sym_assert_expression] = STATE(4116),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4116),
    [sym_new_expression] = STATE(4116),
    [sym_typeid_expression] = STATE(4116),
    [sym_is_expression] = STATE(4116),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4116),
    [sym_char_literal] = STATE(4116),
    [sym_array_literal] = STATE(4116),
    [sym_function_literal] = STATE(4116),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4116),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3755),
    [sym_false] = ACTIONS(3755),
    [sym_null] = ACTIONS(3755),
    [sym_super] = ACTIONS(3755),
    [sym_this] = ACTIONS(3755),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3757),
    [sym_float_literal] = ACTIONS(3757),
    [sym__string] = ACTIONS(3327),
  },
  [1088] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4185),
    [sym_ternary_expression] = STATE(4185),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4185),
    [sym_binary_expression] = STATE(4185),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1089] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4186),
    [sym_ternary_expression] = STATE(4186),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4186),
    [sym_binary_expression] = STATE(4186),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1090] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4168),
    [sym_ternary_expression] = STATE(4168),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4168),
    [sym_binary_expression] = STATE(4168),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1091] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4068),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4068),
    [sym_ternary_expression] = STATE(4068),
    [sym_call_expression] = STATE(4068),
    [sym_primary_expression] = STATE(4068),
    [sym__primary_expr] = STATE(4068),
    [sym_index_expression] = STATE(4068),
    [sym_assignment_expression] = STATE(4068),
    [sym_binary_expression] = STATE(4068),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4068),
    [sym_unary_expression] = STATE(4068),
    [sym__unary_expr] = STATE(4068),
    [sym_property_expression] = STATE(4068),
    [sym_cast_expression] = STATE(4068),
    [sym_delete_expression] = STATE(4068),
    [sym_throw_expression] = STATE(4068),
    [sym_assert_expression] = STATE(4068),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4068),
    [sym_new_expression] = STATE(4068),
    [sym_typeid_expression] = STATE(4068),
    [sym_is_expression] = STATE(4068),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4068),
    [sym_char_literal] = STATE(4068),
    [sym_array_literal] = STATE(4068),
    [sym_function_literal] = STATE(4068),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4068),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3759),
    [sym_false] = ACTIONS(3759),
    [sym_null] = ACTIONS(3759),
    [sym_super] = ACTIONS(3759),
    [sym_this] = ACTIONS(3759),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3761),
    [sym_float_literal] = ACTIONS(3761),
    [sym__string] = ACTIONS(3327),
  },
  [1092] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4219),
    [sym_ternary_expression] = STATE(4219),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4219),
    [sym_binary_expression] = STATE(4219),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1093] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4232),
    [sym_ternary_expression] = STATE(4232),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4232),
    [sym_binary_expression] = STATE(4232),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1094] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4160),
    [sym_ternary_expression] = STATE(4160),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4160),
    [sym_binary_expression] = STATE(4160),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1095] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4020),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4020),
    [sym_ternary_expression] = STATE(4020),
    [sym_call_expression] = STATE(4020),
    [sym_primary_expression] = STATE(4020),
    [sym__primary_expr] = STATE(4020),
    [sym_index_expression] = STATE(4020),
    [sym_assignment_expression] = STATE(4020),
    [sym_binary_expression] = STATE(4020),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4020),
    [sym_unary_expression] = STATE(4020),
    [sym__unary_expr] = STATE(4020),
    [sym_property_expression] = STATE(4020),
    [sym_cast_expression] = STATE(4020),
    [sym_delete_expression] = STATE(4020),
    [sym_throw_expression] = STATE(4020),
    [sym_assert_expression] = STATE(4020),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4020),
    [sym_new_expression] = STATE(4020),
    [sym_typeid_expression] = STATE(4020),
    [sym_is_expression] = STATE(4020),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4020),
    [sym_char_literal] = STATE(4020),
    [sym_array_literal] = STATE(4020),
    [sym_function_literal] = STATE(4020),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4020),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3763),
    [sym_false] = ACTIONS(3763),
    [sym_null] = ACTIONS(3763),
    [sym_super] = ACTIONS(3763),
    [sym_this] = ACTIONS(3763),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3765),
    [sym_float_literal] = ACTIONS(3765),
    [sym__string] = ACTIONS(3713),
  },
  [1096] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4221),
    [sym_ternary_expression] = STATE(4221),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4221),
    [sym_binary_expression] = STATE(4221),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1097] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4161),
    [sym_ternary_expression] = STATE(4161),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4161),
    [sym_binary_expression] = STATE(4161),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1098] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4222),
    [sym_ternary_expression] = STATE(4222),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4222),
    [sym_binary_expression] = STATE(4222),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1099] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4220),
    [sym_ternary_expression] = STATE(4220),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4220),
    [sym_binary_expression] = STATE(4220),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1100] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4028),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4028),
    [sym_ternary_expression] = STATE(4028),
    [sym_call_expression] = STATE(4028),
    [sym_primary_expression] = STATE(4028),
    [sym__primary_expr] = STATE(4028),
    [sym_index_expression] = STATE(4028),
    [sym_assignment_expression] = STATE(4028),
    [sym_binary_expression] = STATE(4028),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4028),
    [sym_unary_expression] = STATE(4028),
    [sym__unary_expr] = STATE(4028),
    [sym_property_expression] = STATE(4028),
    [sym_cast_expression] = STATE(4028),
    [sym_delete_expression] = STATE(4028),
    [sym_throw_expression] = STATE(4028),
    [sym_assert_expression] = STATE(4028),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4028),
    [sym_new_expression] = STATE(4028),
    [sym_typeid_expression] = STATE(4028),
    [sym_is_expression] = STATE(4028),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4028),
    [sym_char_literal] = STATE(4028),
    [sym_array_literal] = STATE(4028),
    [sym_function_literal] = STATE(4028),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4028),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3767),
    [sym_false] = ACTIONS(3767),
    [sym_null] = ACTIONS(3767),
    [sym_super] = ACTIONS(3767),
    [sym_this] = ACTIONS(3767),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3769),
    [sym_float_literal] = ACTIONS(3769),
    [sym__string] = ACTIONS(3713),
  },
  [1101] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4304),
    [sym_ternary_expression] = STATE(4304),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4304),
    [sym_binary_expression] = STATE(4304),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1102] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4260),
    [sym_ternary_expression] = STATE(4260),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4260),
    [sym_binary_expression] = STATE(4260),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1103] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4236),
    [sym_ternary_expression] = STATE(4236),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4236),
    [sym_binary_expression] = STATE(4236),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1104] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4300),
    [sym_ternary_expression] = STATE(4300),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4300),
    [sym_binary_expression] = STATE(4300),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1105] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4223),
    [sym_ternary_expression] = STATE(4223),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4223),
    [sym_binary_expression] = STATE(4223),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1106] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4155),
    [sym_ternary_expression] = STATE(4155),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4155),
    [sym_binary_expression] = STATE(4155),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1107] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4148),
    [sym_ternary_expression] = STATE(4148),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4148),
    [sym_binary_expression] = STATE(4148),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1108] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4154),
    [sym_ternary_expression] = STATE(4154),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4154),
    [sym_binary_expression] = STATE(4154),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1109] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4302),
    [sym_ternary_expression] = STATE(4302),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4302),
    [sym_binary_expression] = STATE(4302),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1110] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4153),
    [sym_ternary_expression] = STATE(4153),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4153),
    [sym_binary_expression] = STATE(4153),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1111] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3997),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(3997),
    [sym_ternary_expression] = STATE(3997),
    [sym_call_expression] = STATE(3997),
    [sym_primary_expression] = STATE(3997),
    [sym__primary_expr] = STATE(3997),
    [sym_index_expression] = STATE(3997),
    [sym_assignment_expression] = STATE(3997),
    [sym_binary_expression] = STATE(3997),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(3997),
    [sym_unary_expression] = STATE(3997),
    [sym__unary_expr] = STATE(3997),
    [sym_property_expression] = STATE(3997),
    [sym_cast_expression] = STATE(3997),
    [sym_delete_expression] = STATE(3997),
    [sym_throw_expression] = STATE(3997),
    [sym_assert_expression] = STATE(3997),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3997),
    [sym_new_expression] = STATE(3997),
    [sym_typeid_expression] = STATE(3997),
    [sym_is_expression] = STATE(3997),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3997),
    [sym_char_literal] = STATE(3997),
    [sym_array_literal] = STATE(3997),
    [sym_function_literal] = STATE(3997),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3997),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3771),
    [sym_false] = ACTIONS(3771),
    [sym_null] = ACTIONS(3771),
    [sym_super] = ACTIONS(3771),
    [sym_this] = ACTIONS(3771),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3773),
    [sym_float_literal] = ACTIONS(3773),
    [sym__string] = ACTIONS(3713),
  },
  [1112] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4076),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4076),
    [sym_ternary_expression] = STATE(4076),
    [sym_call_expression] = STATE(4076),
    [sym_primary_expression] = STATE(4076),
    [sym__primary_expr] = STATE(4076),
    [sym_index_expression] = STATE(4076),
    [sym_assignment_expression] = STATE(4076),
    [sym_binary_expression] = STATE(4076),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4076),
    [sym_unary_expression] = STATE(4076),
    [sym__unary_expr] = STATE(4076),
    [sym_property_expression] = STATE(4076),
    [sym_cast_expression] = STATE(4076),
    [sym_delete_expression] = STATE(4076),
    [sym_throw_expression] = STATE(4076),
    [sym_assert_expression] = STATE(4076),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4076),
    [sym_new_expression] = STATE(4076),
    [sym_typeid_expression] = STATE(4076),
    [sym_is_expression] = STATE(4076),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4076),
    [sym_char_literal] = STATE(4076),
    [sym_array_literal] = STATE(4076),
    [sym_function_literal] = STATE(4076),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4076),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3775),
    [sym_false] = ACTIONS(3775),
    [sym_null] = ACTIONS(3775),
    [sym_super] = ACTIONS(3775),
    [sym_this] = ACTIONS(3775),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3777),
    [sym_float_literal] = ACTIONS(3777),
    [sym__string] = ACTIONS(3713),
  },
  [1113] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4085),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4085),
    [sym_ternary_expression] = STATE(4085),
    [sym_call_expression] = STATE(4085),
    [sym_primary_expression] = STATE(4085),
    [sym__primary_expr] = STATE(4085),
    [sym_index_expression] = STATE(4085),
    [sym_assignment_expression] = STATE(4085),
    [sym_binary_expression] = STATE(4085),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4085),
    [sym_unary_expression] = STATE(4085),
    [sym__unary_expr] = STATE(4085),
    [sym_property_expression] = STATE(4085),
    [sym_cast_expression] = STATE(4085),
    [sym_delete_expression] = STATE(4085),
    [sym_throw_expression] = STATE(4085),
    [sym_assert_expression] = STATE(4085),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4085),
    [sym_new_expression] = STATE(4085),
    [sym_typeid_expression] = STATE(4085),
    [sym_is_expression] = STATE(4085),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4085),
    [sym_char_literal] = STATE(4085),
    [sym_array_literal] = STATE(4085),
    [sym_function_literal] = STATE(4085),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4085),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3779),
    [sym_false] = ACTIONS(3779),
    [sym_null] = ACTIONS(3779),
    [sym_super] = ACTIONS(3779),
    [sym_this] = ACTIONS(3779),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3781),
    [sym_float_literal] = ACTIONS(3781),
    [sym__string] = ACTIONS(3713),
  },
  [1114] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4141),
    [sym_ternary_expression] = STATE(4141),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4141),
    [sym_binary_expression] = STATE(4141),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1115] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4145),
    [sym_ternary_expression] = STATE(4145),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4145),
    [sym_binary_expression] = STATE(4145),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1116] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4087),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4087),
    [sym_ternary_expression] = STATE(4087),
    [sym_call_expression] = STATE(4087),
    [sym_primary_expression] = STATE(4087),
    [sym__primary_expr] = STATE(4087),
    [sym_index_expression] = STATE(4087),
    [sym_assignment_expression] = STATE(4087),
    [sym_binary_expression] = STATE(4087),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4087),
    [sym_unary_expression] = STATE(4087),
    [sym__unary_expr] = STATE(4087),
    [sym_property_expression] = STATE(4087),
    [sym_cast_expression] = STATE(4087),
    [sym_delete_expression] = STATE(4087),
    [sym_throw_expression] = STATE(4087),
    [sym_assert_expression] = STATE(4087),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4087),
    [sym_new_expression] = STATE(4087),
    [sym_typeid_expression] = STATE(4087),
    [sym_is_expression] = STATE(4087),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4087),
    [sym_char_literal] = STATE(4087),
    [sym_array_literal] = STATE(4087),
    [sym_function_literal] = STATE(4087),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4087),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3783),
    [sym_false] = ACTIONS(3783),
    [sym_null] = ACTIONS(3783),
    [sym_super] = ACTIONS(3783),
    [sym_this] = ACTIONS(3783),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3785),
    [sym_float_literal] = ACTIONS(3785),
    [sym__string] = ACTIONS(3713),
  },
  [1117] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4095),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4095),
    [sym_ternary_expression] = STATE(4095),
    [sym_call_expression] = STATE(4095),
    [sym_primary_expression] = STATE(4095),
    [sym__primary_expr] = STATE(4095),
    [sym_index_expression] = STATE(4095),
    [sym_assignment_expression] = STATE(4095),
    [sym_binary_expression] = STATE(4095),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4095),
    [sym_unary_expression] = STATE(4095),
    [sym__unary_expr] = STATE(4095),
    [sym_property_expression] = STATE(4095),
    [sym_cast_expression] = STATE(4095),
    [sym_delete_expression] = STATE(4095),
    [sym_throw_expression] = STATE(4095),
    [sym_assert_expression] = STATE(4095),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4095),
    [sym_new_expression] = STATE(4095),
    [sym_typeid_expression] = STATE(4095),
    [sym_is_expression] = STATE(4095),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4095),
    [sym_char_literal] = STATE(4095),
    [sym_array_literal] = STATE(4095),
    [sym_function_literal] = STATE(4095),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4095),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3787),
    [sym_false] = ACTIONS(3787),
    [sym_null] = ACTIONS(3787),
    [sym_super] = ACTIONS(3787),
    [sym_this] = ACTIONS(3787),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3789),
    [sym_float_literal] = ACTIONS(3789),
    [sym__string] = ACTIONS(3713),
  },
  [1118] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4096),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4096),
    [sym_ternary_expression] = STATE(4096),
    [sym_call_expression] = STATE(4096),
    [sym_primary_expression] = STATE(4096),
    [sym__primary_expr] = STATE(4096),
    [sym_index_expression] = STATE(4096),
    [sym_assignment_expression] = STATE(4096),
    [sym_binary_expression] = STATE(4096),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4096),
    [sym_unary_expression] = STATE(4096),
    [sym__unary_expr] = STATE(4096),
    [sym_property_expression] = STATE(4096),
    [sym_cast_expression] = STATE(4096),
    [sym_delete_expression] = STATE(4096),
    [sym_throw_expression] = STATE(4096),
    [sym_assert_expression] = STATE(4096),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4096),
    [sym_new_expression] = STATE(4096),
    [sym_typeid_expression] = STATE(4096),
    [sym_is_expression] = STATE(4096),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4096),
    [sym_char_literal] = STATE(4096),
    [sym_array_literal] = STATE(4096),
    [sym_function_literal] = STATE(4096),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4096),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3791),
    [sym_false] = ACTIONS(3791),
    [sym_null] = ACTIONS(3791),
    [sym_super] = ACTIONS(3791),
    [sym_this] = ACTIONS(3791),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3793),
    [sym_float_literal] = ACTIONS(3793),
    [sym__string] = ACTIONS(3713),
  },
  [1119] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4131),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4131),
    [sym_ternary_expression] = STATE(4131),
    [sym_call_expression] = STATE(4131),
    [sym_primary_expression] = STATE(4131),
    [sym__primary_expr] = STATE(4131),
    [sym_index_expression] = STATE(4131),
    [sym_assignment_expression] = STATE(4131),
    [sym_binary_expression] = STATE(4131),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4131),
    [sym_unary_expression] = STATE(4131),
    [sym__unary_expr] = STATE(4131),
    [sym_property_expression] = STATE(4131),
    [sym_cast_expression] = STATE(4131),
    [sym_delete_expression] = STATE(4131),
    [sym_throw_expression] = STATE(4131),
    [sym_assert_expression] = STATE(4131),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4131),
    [sym_new_expression] = STATE(4131),
    [sym_typeid_expression] = STATE(4131),
    [sym_is_expression] = STATE(4131),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4131),
    [sym_char_literal] = STATE(4131),
    [sym_array_literal] = STATE(4131),
    [sym_function_literal] = STATE(4131),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4131),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3795),
    [sym_false] = ACTIONS(3795),
    [sym_null] = ACTIONS(3795),
    [sym_super] = ACTIONS(3795),
    [sym_this] = ACTIONS(3795),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3797),
    [sym_float_literal] = ACTIONS(3797),
    [sym__string] = ACTIONS(233),
  },
  [1120] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4152),
    [sym_ternary_expression] = STATE(4152),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4152),
    [sym_binary_expression] = STATE(4152),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1121] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4063),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4063),
    [sym_ternary_expression] = STATE(4063),
    [sym_call_expression] = STATE(4063),
    [sym_primary_expression] = STATE(4063),
    [sym__primary_expr] = STATE(4063),
    [sym_index_expression] = STATE(4063),
    [sym_assignment_expression] = STATE(4063),
    [sym_binary_expression] = STATE(4063),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4063),
    [sym_unary_expression] = STATE(4063),
    [sym__unary_expr] = STATE(4063),
    [sym_property_expression] = STATE(4063),
    [sym_cast_expression] = STATE(4063),
    [sym_delete_expression] = STATE(4063),
    [sym_throw_expression] = STATE(4063),
    [sym_assert_expression] = STATE(4063),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4063),
    [sym_new_expression] = STATE(4063),
    [sym_typeid_expression] = STATE(4063),
    [sym_is_expression] = STATE(4063),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4063),
    [sym_char_literal] = STATE(4063),
    [sym_array_literal] = STATE(4063),
    [sym_function_literal] = STATE(4063),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4063),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3799),
    [sym_false] = ACTIONS(3799),
    [sym_null] = ACTIONS(3799),
    [sym_super] = ACTIONS(3799),
    [sym_this] = ACTIONS(3799),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3801),
    [sym_float_literal] = ACTIONS(3801),
    [sym__string] = ACTIONS(3713),
  },
  [1122] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4071),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4071),
    [sym_ternary_expression] = STATE(4071),
    [sym_call_expression] = STATE(4071),
    [sym_primary_expression] = STATE(4071),
    [sym__primary_expr] = STATE(4071),
    [sym_index_expression] = STATE(4071),
    [sym_assignment_expression] = STATE(4071),
    [sym_binary_expression] = STATE(4071),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4071),
    [sym_unary_expression] = STATE(4071),
    [sym__unary_expr] = STATE(4071),
    [sym_property_expression] = STATE(4071),
    [sym_cast_expression] = STATE(4071),
    [sym_delete_expression] = STATE(4071),
    [sym_throw_expression] = STATE(4071),
    [sym_assert_expression] = STATE(4071),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4071),
    [sym_new_expression] = STATE(4071),
    [sym_typeid_expression] = STATE(4071),
    [sym_is_expression] = STATE(4071),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4071),
    [sym_char_literal] = STATE(4071),
    [sym_array_literal] = STATE(4071),
    [sym_function_literal] = STATE(4071),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4071),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3803),
    [sym_false] = ACTIONS(3803),
    [sym_null] = ACTIONS(3803),
    [sym_super] = ACTIONS(3803),
    [sym_this] = ACTIONS(3803),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3805),
    [sym_float_literal] = ACTIONS(3805),
    [sym__string] = ACTIONS(3713),
  },
  [1123] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4132),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4132),
    [sym_ternary_expression] = STATE(4132),
    [sym_call_expression] = STATE(4132),
    [sym_primary_expression] = STATE(4132),
    [sym__primary_expr] = STATE(4132),
    [sym_index_expression] = STATE(4132),
    [sym_assignment_expression] = STATE(4132),
    [sym_binary_expression] = STATE(4132),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4132),
    [sym_unary_expression] = STATE(4132),
    [sym__unary_expr] = STATE(4132),
    [sym_property_expression] = STATE(4132),
    [sym_cast_expression] = STATE(4132),
    [sym_delete_expression] = STATE(4132),
    [sym_throw_expression] = STATE(4132),
    [sym_assert_expression] = STATE(4132),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4132),
    [sym_new_expression] = STATE(4132),
    [sym_typeid_expression] = STATE(4132),
    [sym_is_expression] = STATE(4132),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4132),
    [sym_char_literal] = STATE(4132),
    [sym_array_literal] = STATE(4132),
    [sym_function_literal] = STATE(4132),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4132),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3807),
    [sym_false] = ACTIONS(3807),
    [sym_null] = ACTIONS(3807),
    [sym_super] = ACTIONS(3807),
    [sym_this] = ACTIONS(3807),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3809),
    [sym_float_literal] = ACTIONS(3809),
    [sym__string] = ACTIONS(233),
  },
  [1124] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4151),
    [sym_ternary_expression] = STATE(4151),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4151),
    [sym_binary_expression] = STATE(4151),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1125] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4135),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4135),
    [sym_ternary_expression] = STATE(4135),
    [sym_call_expression] = STATE(4135),
    [sym_primary_expression] = STATE(4135),
    [sym__primary_expr] = STATE(4135),
    [sym_index_expression] = STATE(4135),
    [sym_assignment_expression] = STATE(4135),
    [sym_binary_expression] = STATE(4135),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4135),
    [sym_unary_expression] = STATE(4135),
    [sym__unary_expr] = STATE(4135),
    [sym_property_expression] = STATE(4135),
    [sym_cast_expression] = STATE(4135),
    [sym_delete_expression] = STATE(4135),
    [sym_throw_expression] = STATE(4135),
    [sym_assert_expression] = STATE(4135),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4135),
    [sym_new_expression] = STATE(4135),
    [sym_typeid_expression] = STATE(4135),
    [sym_is_expression] = STATE(4135),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4135),
    [sym_char_literal] = STATE(4135),
    [sym_array_literal] = STATE(4135),
    [sym_function_literal] = STATE(4135),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4135),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3811),
    [sym_false] = ACTIONS(3811),
    [sym_null] = ACTIONS(3811),
    [sym_super] = ACTIONS(3811),
    [sym_this] = ACTIONS(3811),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3813),
    [sym_float_literal] = ACTIONS(3813),
    [sym__string] = ACTIONS(233),
  },
  [1126] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4250),
    [sym_ternary_expression] = STATE(4250),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4250),
    [sym_binary_expression] = STATE(4250),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1127] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4137),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4137),
    [sym_ternary_expression] = STATE(4137),
    [sym_call_expression] = STATE(4137),
    [sym_primary_expression] = STATE(4137),
    [sym__primary_expr] = STATE(4137),
    [sym_index_expression] = STATE(4137),
    [sym_assignment_expression] = STATE(4137),
    [sym_binary_expression] = STATE(4137),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4137),
    [sym_unary_expression] = STATE(4137),
    [sym__unary_expr] = STATE(4137),
    [sym_property_expression] = STATE(4137),
    [sym_cast_expression] = STATE(4137),
    [sym_delete_expression] = STATE(4137),
    [sym_throw_expression] = STATE(4137),
    [sym_assert_expression] = STATE(4137),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4137),
    [sym_new_expression] = STATE(4137),
    [sym_typeid_expression] = STATE(4137),
    [sym_is_expression] = STATE(4137),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4137),
    [sym_char_literal] = STATE(4137),
    [sym_array_literal] = STATE(4137),
    [sym_function_literal] = STATE(4137),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4137),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3815),
    [sym_false] = ACTIONS(3815),
    [sym_null] = ACTIONS(3815),
    [sym_super] = ACTIONS(3815),
    [sym_this] = ACTIONS(3815),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3817),
    [sym_float_literal] = ACTIONS(3817),
    [sym__string] = ACTIONS(233),
  },
  [1128] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4138),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4138),
    [sym_ternary_expression] = STATE(4138),
    [sym_call_expression] = STATE(4138),
    [sym_primary_expression] = STATE(4138),
    [sym__primary_expr] = STATE(4138),
    [sym_index_expression] = STATE(4138),
    [sym_assignment_expression] = STATE(4138),
    [sym_binary_expression] = STATE(4138),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4138),
    [sym_unary_expression] = STATE(4138),
    [sym__unary_expr] = STATE(4138),
    [sym_property_expression] = STATE(4138),
    [sym_cast_expression] = STATE(4138),
    [sym_delete_expression] = STATE(4138),
    [sym_throw_expression] = STATE(4138),
    [sym_assert_expression] = STATE(4138),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4138),
    [sym_new_expression] = STATE(4138),
    [sym_typeid_expression] = STATE(4138),
    [sym_is_expression] = STATE(4138),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4138),
    [sym_char_literal] = STATE(4138),
    [sym_array_literal] = STATE(4138),
    [sym_function_literal] = STATE(4138),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4138),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3819),
    [sym_false] = ACTIONS(3819),
    [sym_null] = ACTIONS(3819),
    [sym_super] = ACTIONS(3819),
    [sym_this] = ACTIONS(3819),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3821),
    [sym_float_literal] = ACTIONS(3821),
    [sym__string] = ACTIONS(233),
  },
  [1129] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4244),
    [sym_ternary_expression] = STATE(4244),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4244),
    [sym_binary_expression] = STATE(4244),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1130] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4143),
    [sym_ternary_expression] = STATE(4143),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4143),
    [sym_binary_expression] = STATE(4143),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1131] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4247),
    [sym_ternary_expression] = STATE(4247),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4247),
    [sym_binary_expression] = STATE(4247),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1132] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4017),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4017),
    [sym_ternary_expression] = STATE(4017),
    [sym_call_expression] = STATE(4017),
    [sym_primary_expression] = STATE(4017),
    [sym__primary_expr] = STATE(4017),
    [sym_index_expression] = STATE(4017),
    [sym_assignment_expression] = STATE(4017),
    [sym_binary_expression] = STATE(4017),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4017),
    [sym_unary_expression] = STATE(4017),
    [sym__unary_expr] = STATE(4017),
    [sym_property_expression] = STATE(4017),
    [sym_cast_expression] = STATE(4017),
    [sym_delete_expression] = STATE(4017),
    [sym_throw_expression] = STATE(4017),
    [sym_assert_expression] = STATE(4017),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4017),
    [sym_new_expression] = STATE(4017),
    [sym_typeid_expression] = STATE(4017),
    [sym_is_expression] = STATE(4017),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4017),
    [sym_char_literal] = STATE(4017),
    [sym_array_literal] = STATE(4017),
    [sym_function_literal] = STATE(4017),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4017),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3823),
    [sym_false] = ACTIONS(3823),
    [sym_null] = ACTIONS(3823),
    [sym_super] = ACTIONS(3823),
    [sym_this] = ACTIONS(3823),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3825),
    [sym_float_literal] = ACTIONS(3825),
    [sym__string] = ACTIONS(3327),
  },
  [1133] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4249),
    [sym_ternary_expression] = STATE(4249),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4249),
    [sym_binary_expression] = STATE(4249),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1134] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4206),
    [sym_ternary_expression] = STATE(4206),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4206),
    [sym_binary_expression] = STATE(4206),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1135] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4255),
    [sym_ternary_expression] = STATE(4255),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4255),
    [sym_binary_expression] = STATE(4255),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1136] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4122),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4122),
    [sym_ternary_expression] = STATE(4122),
    [sym_call_expression] = STATE(4122),
    [sym_primary_expression] = STATE(4122),
    [sym__primary_expr] = STATE(4122),
    [sym_index_expression] = STATE(4122),
    [sym_assignment_expression] = STATE(4122),
    [sym_binary_expression] = STATE(4122),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4122),
    [sym_unary_expression] = STATE(4122),
    [sym__unary_expr] = STATE(4122),
    [sym_property_expression] = STATE(4122),
    [sym_cast_expression] = STATE(4122),
    [sym_delete_expression] = STATE(4122),
    [sym_throw_expression] = STATE(4122),
    [sym_assert_expression] = STATE(4122),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4122),
    [sym_new_expression] = STATE(4122),
    [sym_typeid_expression] = STATE(4122),
    [sym_is_expression] = STATE(4122),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4122),
    [sym_char_literal] = STATE(4122),
    [sym_array_literal] = STATE(4122),
    [sym_function_literal] = STATE(4122),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4122),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3827),
    [sym_false] = ACTIONS(3827),
    [sym_null] = ACTIONS(3827),
    [sym_super] = ACTIONS(3827),
    [sym_this] = ACTIONS(3827),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3829),
    [sym_float_literal] = ACTIONS(3829),
    [sym__string] = ACTIONS(233),
  },
  [1137] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4019),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4019),
    [sym_ternary_expression] = STATE(4019),
    [sym_call_expression] = STATE(4019),
    [sym_primary_expression] = STATE(4019),
    [sym__primary_expr] = STATE(4019),
    [sym_index_expression] = STATE(4019),
    [sym_assignment_expression] = STATE(4019),
    [sym_binary_expression] = STATE(4019),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4019),
    [sym_unary_expression] = STATE(4019),
    [sym__unary_expr] = STATE(4019),
    [sym_property_expression] = STATE(4019),
    [sym_cast_expression] = STATE(4019),
    [sym_delete_expression] = STATE(4019),
    [sym_throw_expression] = STATE(4019),
    [sym_assert_expression] = STATE(4019),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4019),
    [sym_new_expression] = STATE(4019),
    [sym_typeid_expression] = STATE(4019),
    [sym_is_expression] = STATE(4019),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4019),
    [sym_char_literal] = STATE(4019),
    [sym_array_literal] = STATE(4019),
    [sym_function_literal] = STATE(4019),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4019),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3831),
    [sym_false] = ACTIONS(3831),
    [sym_null] = ACTIONS(3831),
    [sym_super] = ACTIONS(3831),
    [sym_this] = ACTIONS(3831),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3833),
    [sym_float_literal] = ACTIONS(3833),
    [sym__string] = ACTIONS(3327),
  },
  [1138] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4278),
    [sym_ternary_expression] = STATE(4278),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4278),
    [sym_binary_expression] = STATE(4278),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1139] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4238),
    [sym_ternary_expression] = STATE(4238),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4238),
    [sym_binary_expression] = STATE(4238),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1140] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4136),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4136),
    [sym_ternary_expression] = STATE(4136),
    [sym_call_expression] = STATE(4136),
    [sym_primary_expression] = STATE(4136),
    [sym__primary_expr] = STATE(4136),
    [sym_index_expression] = STATE(4136),
    [sym_assignment_expression] = STATE(4136),
    [sym_binary_expression] = STATE(4136),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4136),
    [sym_unary_expression] = STATE(4136),
    [sym__unary_expr] = STATE(4136),
    [sym_property_expression] = STATE(4136),
    [sym_cast_expression] = STATE(4136),
    [sym_delete_expression] = STATE(4136),
    [sym_throw_expression] = STATE(4136),
    [sym_assert_expression] = STATE(4136),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4136),
    [sym_new_expression] = STATE(4136),
    [sym_typeid_expression] = STATE(4136),
    [sym_is_expression] = STATE(4136),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4136),
    [sym_char_literal] = STATE(4136),
    [sym_array_literal] = STATE(4136),
    [sym_function_literal] = STATE(4136),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4136),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3835),
    [sym_false] = ACTIONS(3835),
    [sym_null] = ACTIONS(3835),
    [sym_super] = ACTIONS(3835),
    [sym_this] = ACTIONS(3835),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3837),
    [sym_float_literal] = ACTIONS(3837),
    [sym__string] = ACTIONS(233),
  },
  [1141] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4204),
    [sym_ternary_expression] = STATE(4204),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4204),
    [sym_binary_expression] = STATE(4204),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1142] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4134),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4134),
    [sym_ternary_expression] = STATE(4134),
    [sym_call_expression] = STATE(4134),
    [sym_primary_expression] = STATE(4134),
    [sym__primary_expr] = STATE(4134),
    [sym_index_expression] = STATE(4134),
    [sym_assignment_expression] = STATE(4134),
    [sym_binary_expression] = STATE(4134),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4134),
    [sym_unary_expression] = STATE(4134),
    [sym__unary_expr] = STATE(4134),
    [sym_property_expression] = STATE(4134),
    [sym_cast_expression] = STATE(4134),
    [sym_delete_expression] = STATE(4134),
    [sym_throw_expression] = STATE(4134),
    [sym_assert_expression] = STATE(4134),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4134),
    [sym_new_expression] = STATE(4134),
    [sym_typeid_expression] = STATE(4134),
    [sym_is_expression] = STATE(4134),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4134),
    [sym_char_literal] = STATE(4134),
    [sym_array_literal] = STATE(4134),
    [sym_function_literal] = STATE(4134),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4134),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3839),
    [sym_false] = ACTIONS(3839),
    [sym_null] = ACTIONS(3839),
    [sym_super] = ACTIONS(3839),
    [sym_this] = ACTIONS(3839),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3841),
    [sym_float_literal] = ACTIONS(3841),
    [sym__string] = ACTIONS(233),
  },
  [1143] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4205),
    [sym_ternary_expression] = STATE(4205),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4205),
    [sym_binary_expression] = STATE(4205),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1144] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4208),
    [sym_ternary_expression] = STATE(4208),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4208),
    [sym_binary_expression] = STATE(4208),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1145] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4133),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4133),
    [sym_ternary_expression] = STATE(4133),
    [sym_call_expression] = STATE(4133),
    [sym_primary_expression] = STATE(4133),
    [sym__primary_expr] = STATE(4133),
    [sym_index_expression] = STATE(4133),
    [sym_assignment_expression] = STATE(4133),
    [sym_binary_expression] = STATE(4133),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4133),
    [sym_unary_expression] = STATE(4133),
    [sym__unary_expr] = STATE(4133),
    [sym_property_expression] = STATE(4133),
    [sym_cast_expression] = STATE(4133),
    [sym_delete_expression] = STATE(4133),
    [sym_throw_expression] = STATE(4133),
    [sym_assert_expression] = STATE(4133),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4133),
    [sym_new_expression] = STATE(4133),
    [sym_typeid_expression] = STATE(4133),
    [sym_is_expression] = STATE(4133),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4133),
    [sym_char_literal] = STATE(4133),
    [sym_array_literal] = STATE(4133),
    [sym_function_literal] = STATE(4133),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4133),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3843),
    [sym_false] = ACTIONS(3843),
    [sym_null] = ACTIONS(3843),
    [sym_super] = ACTIONS(3843),
    [sym_this] = ACTIONS(3843),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3845),
    [sym_float_literal] = ACTIONS(3845),
    [sym__string] = ACTIONS(233),
  },
  [1146] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4209),
    [sym_ternary_expression] = STATE(4209),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4209),
    [sym_binary_expression] = STATE(4209),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1147] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4130),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4130),
    [sym_ternary_expression] = STATE(4130),
    [sym_call_expression] = STATE(4130),
    [sym_primary_expression] = STATE(4130),
    [sym__primary_expr] = STATE(4130),
    [sym_index_expression] = STATE(4130),
    [sym_assignment_expression] = STATE(4130),
    [sym_binary_expression] = STATE(4130),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4130),
    [sym_unary_expression] = STATE(4130),
    [sym__unary_expr] = STATE(4130),
    [sym_property_expression] = STATE(4130),
    [sym_cast_expression] = STATE(4130),
    [sym_delete_expression] = STATE(4130),
    [sym_throw_expression] = STATE(4130),
    [sym_assert_expression] = STATE(4130),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4130),
    [sym_new_expression] = STATE(4130),
    [sym_typeid_expression] = STATE(4130),
    [sym_is_expression] = STATE(4130),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4130),
    [sym_char_literal] = STATE(4130),
    [sym_array_literal] = STATE(4130),
    [sym_function_literal] = STATE(4130),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4130),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3847),
    [sym_false] = ACTIONS(3847),
    [sym_null] = ACTIONS(3847),
    [sym_super] = ACTIONS(3847),
    [sym_this] = ACTIONS(3847),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3849),
    [sym_float_literal] = ACTIONS(3849),
    [sym__string] = ACTIONS(233),
  },
  [1148] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4210),
    [sym_ternary_expression] = STATE(4210),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4210),
    [sym_binary_expression] = STATE(4210),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1149] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4129),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4129),
    [sym_ternary_expression] = STATE(4129),
    [sym_call_expression] = STATE(4129),
    [sym_primary_expression] = STATE(4129),
    [sym__primary_expr] = STATE(4129),
    [sym_index_expression] = STATE(4129),
    [sym_assignment_expression] = STATE(4129),
    [sym_binary_expression] = STATE(4129),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4129),
    [sym_unary_expression] = STATE(4129),
    [sym__unary_expr] = STATE(4129),
    [sym_property_expression] = STATE(4129),
    [sym_cast_expression] = STATE(4129),
    [sym_delete_expression] = STATE(4129),
    [sym_throw_expression] = STATE(4129),
    [sym_assert_expression] = STATE(4129),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4129),
    [sym_new_expression] = STATE(4129),
    [sym_typeid_expression] = STATE(4129),
    [sym_is_expression] = STATE(4129),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4129),
    [sym_char_literal] = STATE(4129),
    [sym_array_literal] = STATE(4129),
    [sym_function_literal] = STATE(4129),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4129),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3851),
    [sym_false] = ACTIONS(3851),
    [sym_null] = ACTIONS(3851),
    [sym_super] = ACTIONS(3851),
    [sym_this] = ACTIONS(3851),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3853),
    [sym_float_literal] = ACTIONS(3853),
    [sym__string] = ACTIONS(233),
  },
  [1150] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4211),
    [sym_ternary_expression] = STATE(4211),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4211),
    [sym_binary_expression] = STATE(4211),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1151] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4213),
    [sym_ternary_expression] = STATE(4213),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4213),
    [sym_binary_expression] = STATE(4213),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1152] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4046),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4046),
    [sym_ternary_expression] = STATE(4046),
    [sym_call_expression] = STATE(4046),
    [sym_primary_expression] = STATE(4046),
    [sym__primary_expr] = STATE(4046),
    [sym_index_expression] = STATE(4046),
    [sym_assignment_expression] = STATE(4046),
    [sym_binary_expression] = STATE(4046),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4046),
    [sym_unary_expression] = STATE(4046),
    [sym__unary_expr] = STATE(4046),
    [sym_property_expression] = STATE(4046),
    [sym_cast_expression] = STATE(4046),
    [sym_delete_expression] = STATE(4046),
    [sym_throw_expression] = STATE(4046),
    [sym_assert_expression] = STATE(4046),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4046),
    [sym_new_expression] = STATE(4046),
    [sym_typeid_expression] = STATE(4046),
    [sym_is_expression] = STATE(4046),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4046),
    [sym_char_literal] = STATE(4046),
    [sym_array_literal] = STATE(4046),
    [sym_function_literal] = STATE(4046),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4046),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3855),
    [sym_false] = ACTIONS(3855),
    [sym_null] = ACTIONS(3855),
    [sym_super] = ACTIONS(3855),
    [sym_this] = ACTIONS(3855),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3857),
    [sym_float_literal] = ACTIONS(3857),
    [sym__string] = ACTIONS(3327),
  },
  [1153] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4121),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4121),
    [sym_ternary_expression] = STATE(4121),
    [sym_call_expression] = STATE(4121),
    [sym_primary_expression] = STATE(4121),
    [sym__primary_expr] = STATE(4121),
    [sym_index_expression] = STATE(4121),
    [sym_assignment_expression] = STATE(4121),
    [sym_binary_expression] = STATE(4121),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4121),
    [sym_unary_expression] = STATE(4121),
    [sym__unary_expr] = STATE(4121),
    [sym_property_expression] = STATE(4121),
    [sym_cast_expression] = STATE(4121),
    [sym_delete_expression] = STATE(4121),
    [sym_throw_expression] = STATE(4121),
    [sym_assert_expression] = STATE(4121),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4121),
    [sym_new_expression] = STATE(4121),
    [sym_typeid_expression] = STATE(4121),
    [sym_is_expression] = STATE(4121),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4121),
    [sym_char_literal] = STATE(4121),
    [sym_array_literal] = STATE(4121),
    [sym_function_literal] = STATE(4121),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4121),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3859),
    [sym_false] = ACTIONS(3859),
    [sym_null] = ACTIONS(3859),
    [sym_super] = ACTIONS(3859),
    [sym_this] = ACTIONS(3859),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3861),
    [sym_float_literal] = ACTIONS(3861),
    [sym__string] = ACTIONS(233),
  },
  [1154] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4142),
    [sym_ternary_expression] = STATE(4142),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4142),
    [sym_binary_expression] = STATE(4142),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1155] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4021),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4021),
    [sym_ternary_expression] = STATE(4021),
    [sym_call_expression] = STATE(4021),
    [sym_primary_expression] = STATE(4021),
    [sym__primary_expr] = STATE(4021),
    [sym_index_expression] = STATE(4021),
    [sym_assignment_expression] = STATE(4021),
    [sym_binary_expression] = STATE(4021),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4021),
    [sym_unary_expression] = STATE(4021),
    [sym__unary_expr] = STATE(4021),
    [sym_property_expression] = STATE(4021),
    [sym_cast_expression] = STATE(4021),
    [sym_delete_expression] = STATE(4021),
    [sym_throw_expression] = STATE(4021),
    [sym_assert_expression] = STATE(4021),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4021),
    [sym_new_expression] = STATE(4021),
    [sym_typeid_expression] = STATE(4021),
    [sym_is_expression] = STATE(4021),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4021),
    [sym_char_literal] = STATE(4021),
    [sym_array_literal] = STATE(4021),
    [sym_function_literal] = STATE(4021),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4021),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3863),
    [sym_false] = ACTIONS(3863),
    [sym_null] = ACTIONS(3863),
    [sym_super] = ACTIONS(3863),
    [sym_this] = ACTIONS(3863),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3865),
    [sym_float_literal] = ACTIONS(3865),
    [sym__string] = ACTIONS(3327),
  },
  [1156] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4150),
    [sym_ternary_expression] = STATE(4150),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4150),
    [sym_binary_expression] = STATE(4150),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1157] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4225),
    [sym_ternary_expression] = STATE(4225),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4225),
    [sym_binary_expression] = STATE(4225),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1158] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4128),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4128),
    [sym_ternary_expression] = STATE(4128),
    [sym_call_expression] = STATE(4128),
    [sym_primary_expression] = STATE(4128),
    [sym__primary_expr] = STATE(4128),
    [sym_index_expression] = STATE(4128),
    [sym_assignment_expression] = STATE(4128),
    [sym_binary_expression] = STATE(4128),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4128),
    [sym_unary_expression] = STATE(4128),
    [sym__unary_expr] = STATE(4128),
    [sym_property_expression] = STATE(4128),
    [sym_cast_expression] = STATE(4128),
    [sym_delete_expression] = STATE(4128),
    [sym_throw_expression] = STATE(4128),
    [sym_assert_expression] = STATE(4128),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4128),
    [sym_new_expression] = STATE(4128),
    [sym_typeid_expression] = STATE(4128),
    [sym_is_expression] = STATE(4128),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4128),
    [sym_char_literal] = STATE(4128),
    [sym_array_literal] = STATE(4128),
    [sym_function_literal] = STATE(4128),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4128),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3867),
    [sym_false] = ACTIONS(3867),
    [sym_null] = ACTIONS(3867),
    [sym_super] = ACTIONS(3867),
    [sym_this] = ACTIONS(3867),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3869),
    [sym_float_literal] = ACTIONS(3869),
    [sym__string] = ACTIONS(233),
  },
  [1159] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4203),
    [sym_ternary_expression] = STATE(4203),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4203),
    [sym_binary_expression] = STATE(4203),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1160] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4202),
    [sym_ternary_expression] = STATE(4202),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4202),
    [sym_binary_expression] = STATE(4202),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1161] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4149),
    [sym_ternary_expression] = STATE(4149),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4149),
    [sym_binary_expression] = STATE(4149),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1162] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4119),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4119),
    [sym_ternary_expression] = STATE(4119),
    [sym_call_expression] = STATE(4119),
    [sym_primary_expression] = STATE(4119),
    [sym__primary_expr] = STATE(4119),
    [sym_index_expression] = STATE(4119),
    [sym_assignment_expression] = STATE(4119),
    [sym_binary_expression] = STATE(4119),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4119),
    [sym_unary_expression] = STATE(4119),
    [sym__unary_expr] = STATE(4119),
    [sym_property_expression] = STATE(4119),
    [sym_cast_expression] = STATE(4119),
    [sym_delete_expression] = STATE(4119),
    [sym_throw_expression] = STATE(4119),
    [sym_assert_expression] = STATE(4119),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4119),
    [sym_new_expression] = STATE(4119),
    [sym_typeid_expression] = STATE(4119),
    [sym_is_expression] = STATE(4119),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4119),
    [sym_char_literal] = STATE(4119),
    [sym_array_literal] = STATE(4119),
    [sym_function_literal] = STATE(4119),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4119),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3871),
    [sym_false] = ACTIONS(3871),
    [sym_null] = ACTIONS(3871),
    [sym_super] = ACTIONS(3871),
    [sym_this] = ACTIONS(3871),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3873),
    [sym_float_literal] = ACTIONS(3873),
    [sym__string] = ACTIONS(3327),
  },
  [1163] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4198),
    [sym_ternary_expression] = STATE(4198),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4198),
    [sym_binary_expression] = STATE(4198),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1164] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4214),
    [sym_ternary_expression] = STATE(4214),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4214),
    [sym_binary_expression] = STATE(4214),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1165] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4144),
    [sym_ternary_expression] = STATE(4144),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4144),
    [sym_binary_expression] = STATE(4144),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1166] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4023),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4023),
    [sym_ternary_expression] = STATE(4023),
    [sym_call_expression] = STATE(4023),
    [sym_primary_expression] = STATE(4023),
    [sym__primary_expr] = STATE(4023),
    [sym_index_expression] = STATE(4023),
    [sym_assignment_expression] = STATE(4023),
    [sym_binary_expression] = STATE(4023),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4023),
    [sym_unary_expression] = STATE(4023),
    [sym__unary_expr] = STATE(4023),
    [sym_property_expression] = STATE(4023),
    [sym_cast_expression] = STATE(4023),
    [sym_delete_expression] = STATE(4023),
    [sym_throw_expression] = STATE(4023),
    [sym_assert_expression] = STATE(4023),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4023),
    [sym_new_expression] = STATE(4023),
    [sym_typeid_expression] = STATE(4023),
    [sym_is_expression] = STATE(4023),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4023),
    [sym_char_literal] = STATE(4023),
    [sym_array_literal] = STATE(4023),
    [sym_function_literal] = STATE(4023),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4023),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3875),
    [sym_false] = ACTIONS(3875),
    [sym_null] = ACTIONS(3875),
    [sym_super] = ACTIONS(3875),
    [sym_this] = ACTIONS(3875),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3877),
    [sym_float_literal] = ACTIONS(3877),
    [sym__string] = ACTIONS(3327),
  },
  [1167] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4118),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4118),
    [sym_ternary_expression] = STATE(4118),
    [sym_call_expression] = STATE(4118),
    [sym_primary_expression] = STATE(4118),
    [sym__primary_expr] = STATE(4118),
    [sym_index_expression] = STATE(4118),
    [sym_assignment_expression] = STATE(4118),
    [sym_binary_expression] = STATE(4118),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4118),
    [sym_unary_expression] = STATE(4118),
    [sym__unary_expr] = STATE(4118),
    [sym_property_expression] = STATE(4118),
    [sym_cast_expression] = STATE(4118),
    [sym_delete_expression] = STATE(4118),
    [sym_throw_expression] = STATE(4118),
    [sym_assert_expression] = STATE(4118),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4118),
    [sym_new_expression] = STATE(4118),
    [sym_typeid_expression] = STATE(4118),
    [sym_is_expression] = STATE(4118),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4118),
    [sym_char_literal] = STATE(4118),
    [sym_array_literal] = STATE(4118),
    [sym_function_literal] = STATE(4118),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4118),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3879),
    [sym_false] = ACTIONS(3879),
    [sym_null] = ACTIONS(3879),
    [sym_super] = ACTIONS(3879),
    [sym_this] = ACTIONS(3879),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3881),
    [sym_float_literal] = ACTIONS(3881),
    [sym__string] = ACTIONS(3327),
  },
  [1168] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4263),
    [sym_ternary_expression] = STATE(4263),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4263),
    [sym_binary_expression] = STATE(4263),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1169] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4215),
    [sym_ternary_expression] = STATE(4215),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4215),
    [sym_binary_expression] = STATE(4215),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1170] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4216),
    [sym_ternary_expression] = STATE(4216),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4216),
    [sym_binary_expression] = STATE(4216),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1171] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4217),
    [sym_ternary_expression] = STATE(4217),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4217),
    [sym_binary_expression] = STATE(4217),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1172] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4218),
    [sym_ternary_expression] = STATE(4218),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4218),
    [sym_binary_expression] = STATE(4218),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1173] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4026),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4026),
    [sym_ternary_expression] = STATE(4026),
    [sym_call_expression] = STATE(4026),
    [sym_primary_expression] = STATE(4026),
    [sym__primary_expr] = STATE(4026),
    [sym_index_expression] = STATE(4026),
    [sym_assignment_expression] = STATE(4026),
    [sym_binary_expression] = STATE(4026),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4026),
    [sym_unary_expression] = STATE(4026),
    [sym__unary_expr] = STATE(4026),
    [sym_property_expression] = STATE(4026),
    [sym_cast_expression] = STATE(4026),
    [sym_delete_expression] = STATE(4026),
    [sym_throw_expression] = STATE(4026),
    [sym_assert_expression] = STATE(4026),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4026),
    [sym_new_expression] = STATE(4026),
    [sym_typeid_expression] = STATE(4026),
    [sym_is_expression] = STATE(4026),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4026),
    [sym_char_literal] = STATE(4026),
    [sym_array_literal] = STATE(4026),
    [sym_function_literal] = STATE(4026),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4026),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3883),
    [sym_false] = ACTIONS(3883),
    [sym_null] = ACTIONS(3883),
    [sym_super] = ACTIONS(3883),
    [sym_this] = ACTIONS(3883),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3885),
    [sym_float_literal] = ACTIONS(3885),
    [sym__string] = ACTIONS(3327),
  },
  [1174] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4197),
    [sym_ternary_expression] = STATE(4197),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4197),
    [sym_binary_expression] = STATE(4197),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1175] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4104),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4104),
    [sym_ternary_expression] = STATE(4104),
    [sym_call_expression] = STATE(4104),
    [sym_primary_expression] = STATE(4104),
    [sym__primary_expr] = STATE(4104),
    [sym_index_expression] = STATE(4104),
    [sym_assignment_expression] = STATE(4104),
    [sym_binary_expression] = STATE(4104),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4104),
    [sym_unary_expression] = STATE(4104),
    [sym__unary_expr] = STATE(4104),
    [sym_property_expression] = STATE(4104),
    [sym_cast_expression] = STATE(4104),
    [sym_delete_expression] = STATE(4104),
    [sym_throw_expression] = STATE(4104),
    [sym_assert_expression] = STATE(4104),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4104),
    [sym_new_expression] = STATE(4104),
    [sym_typeid_expression] = STATE(4104),
    [sym_is_expression] = STATE(4104),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4104),
    [sym_char_literal] = STATE(4104),
    [sym_array_literal] = STATE(4104),
    [sym_function_literal] = STATE(4104),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4104),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3887),
    [sym_false] = ACTIONS(3887),
    [sym_null] = ACTIONS(3887),
    [sym_super] = ACTIONS(3887),
    [sym_this] = ACTIONS(3887),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3889),
    [sym_float_literal] = ACTIONS(3889),
    [sym__string] = ACTIONS(3327),
  },
  [1176] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4201),
    [sym_ternary_expression] = STATE(4201),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4201),
    [sym_binary_expression] = STATE(4201),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1177] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4282),
    [sym_ternary_expression] = STATE(4282),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4282),
    [sym_binary_expression] = STATE(4282),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1178] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4239),
    [sym_ternary_expression] = STATE(4239),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4239),
    [sym_binary_expression] = STATE(4239),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1179] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4240),
    [sym_ternary_expression] = STATE(4240),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4240),
    [sym_binary_expression] = STATE(4240),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1180] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4267),
    [sym_ternary_expression] = STATE(4267),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4267),
    [sym_binary_expression] = STATE(4267),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1181] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4306),
    [sym_ternary_expression] = STATE(4306),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4306),
    [sym_binary_expression] = STATE(4306),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1182] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4272),
    [sym_ternary_expression] = STATE(4272),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4272),
    [sym_binary_expression] = STATE(4272),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1183] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4030),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4030),
    [sym_ternary_expression] = STATE(4030),
    [sym_call_expression] = STATE(4030),
    [sym_primary_expression] = STATE(4030),
    [sym__primary_expr] = STATE(4030),
    [sym_index_expression] = STATE(4030),
    [sym_assignment_expression] = STATE(4030),
    [sym_binary_expression] = STATE(4030),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4030),
    [sym_unary_expression] = STATE(4030),
    [sym__unary_expr] = STATE(4030),
    [sym_property_expression] = STATE(4030),
    [sym_cast_expression] = STATE(4030),
    [sym_delete_expression] = STATE(4030),
    [sym_throw_expression] = STATE(4030),
    [sym_assert_expression] = STATE(4030),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4030),
    [sym_new_expression] = STATE(4030),
    [sym_typeid_expression] = STATE(4030),
    [sym_is_expression] = STATE(4030),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4030),
    [sym_char_literal] = STATE(4030),
    [sym_array_literal] = STATE(4030),
    [sym_function_literal] = STATE(4030),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4030),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3891),
    [sym_false] = ACTIONS(3891),
    [sym_null] = ACTIONS(3891),
    [sym_super] = ACTIONS(3891),
    [sym_this] = ACTIONS(3891),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3893),
    [sym_float_literal] = ACTIONS(3893),
    [sym__string] = ACTIONS(3327),
  },
  [1184] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4259),
    [sym_ternary_expression] = STATE(4259),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4259),
    [sym_binary_expression] = STATE(4259),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1185] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4018),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4018),
    [sym_ternary_expression] = STATE(4018),
    [sym_call_expression] = STATE(4018),
    [sym_primary_expression] = STATE(4018),
    [sym__primary_expr] = STATE(4018),
    [sym_index_expression] = STATE(4018),
    [sym_assignment_expression] = STATE(4018),
    [sym_binary_expression] = STATE(4018),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4018),
    [sym_unary_expression] = STATE(4018),
    [sym__unary_expr] = STATE(4018),
    [sym_property_expression] = STATE(4018),
    [sym_cast_expression] = STATE(4018),
    [sym_delete_expression] = STATE(4018),
    [sym_throw_expression] = STATE(4018),
    [sym_assert_expression] = STATE(4018),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4018),
    [sym_new_expression] = STATE(4018),
    [sym_typeid_expression] = STATE(4018),
    [sym_is_expression] = STATE(4018),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4018),
    [sym_char_literal] = STATE(4018),
    [sym_array_literal] = STATE(4018),
    [sym_function_literal] = STATE(4018),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4018),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3895),
    [sym_false] = ACTIONS(3895),
    [sym_null] = ACTIONS(3895),
    [sym_super] = ACTIONS(3895),
    [sym_this] = ACTIONS(3895),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3897),
    [sym_float_literal] = ACTIONS(3897),
    [sym__string] = ACTIONS(3713),
  },
  [1186] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4092),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4092),
    [sym_ternary_expression] = STATE(4092),
    [sym_call_expression] = STATE(4092),
    [sym_primary_expression] = STATE(4092),
    [sym__primary_expr] = STATE(4092),
    [sym_index_expression] = STATE(4092),
    [sym_assignment_expression] = STATE(4092),
    [sym_binary_expression] = STATE(4092),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4092),
    [sym_unary_expression] = STATE(4092),
    [sym__unary_expr] = STATE(4092),
    [sym_property_expression] = STATE(4092),
    [sym_cast_expression] = STATE(4092),
    [sym_delete_expression] = STATE(4092),
    [sym_throw_expression] = STATE(4092),
    [sym_assert_expression] = STATE(4092),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4092),
    [sym_new_expression] = STATE(4092),
    [sym_typeid_expression] = STATE(4092),
    [sym_is_expression] = STATE(4092),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4092),
    [sym_char_literal] = STATE(4092),
    [sym_array_literal] = STATE(4092),
    [sym_function_literal] = STATE(4092),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4092),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3899),
    [sym_false] = ACTIONS(3899),
    [sym_null] = ACTIONS(3899),
    [sym_super] = ACTIONS(3899),
    [sym_this] = ACTIONS(3899),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3901),
    [sym_float_literal] = ACTIONS(3901),
    [sym__string] = ACTIONS(3713),
  },
  [1187] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4036),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4036),
    [sym_ternary_expression] = STATE(4036),
    [sym_call_expression] = STATE(4036),
    [sym_primary_expression] = STATE(4036),
    [sym__primary_expr] = STATE(4036),
    [sym_index_expression] = STATE(4036),
    [sym_assignment_expression] = STATE(4036),
    [sym_binary_expression] = STATE(4036),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4036),
    [sym_unary_expression] = STATE(4036),
    [sym__unary_expr] = STATE(4036),
    [sym_property_expression] = STATE(4036),
    [sym_cast_expression] = STATE(4036),
    [sym_delete_expression] = STATE(4036),
    [sym_throw_expression] = STATE(4036),
    [sym_assert_expression] = STATE(4036),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4036),
    [sym_new_expression] = STATE(4036),
    [sym_typeid_expression] = STATE(4036),
    [sym_is_expression] = STATE(4036),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4036),
    [sym_char_literal] = STATE(4036),
    [sym_array_literal] = STATE(4036),
    [sym_function_literal] = STATE(4036),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4036),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3903),
    [sym_false] = ACTIONS(3903),
    [sym_null] = ACTIONS(3903),
    [sym_super] = ACTIONS(3903),
    [sym_this] = ACTIONS(3903),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3905),
    [sym_float_literal] = ACTIONS(3905),
    [sym__string] = ACTIONS(3327),
  },
  [1188] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4037),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4037),
    [sym_ternary_expression] = STATE(4037),
    [sym_call_expression] = STATE(4037),
    [sym_primary_expression] = STATE(4037),
    [sym__primary_expr] = STATE(4037),
    [sym_index_expression] = STATE(4037),
    [sym_assignment_expression] = STATE(4037),
    [sym_binary_expression] = STATE(4037),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4037),
    [sym_unary_expression] = STATE(4037),
    [sym__unary_expr] = STATE(4037),
    [sym_property_expression] = STATE(4037),
    [sym_cast_expression] = STATE(4037),
    [sym_delete_expression] = STATE(4037),
    [sym_throw_expression] = STATE(4037),
    [sym_assert_expression] = STATE(4037),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4037),
    [sym_new_expression] = STATE(4037),
    [sym_typeid_expression] = STATE(4037),
    [sym_is_expression] = STATE(4037),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4037),
    [sym_char_literal] = STATE(4037),
    [sym_array_literal] = STATE(4037),
    [sym_function_literal] = STATE(4037),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4037),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3907),
    [sym_false] = ACTIONS(3907),
    [sym_null] = ACTIONS(3907),
    [sym_super] = ACTIONS(3907),
    [sym_this] = ACTIONS(3907),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3909),
    [sym_float_literal] = ACTIONS(3909),
    [sym__string] = ACTIONS(3327),
  },
  [1189] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4231),
    [sym_ternary_expression] = STATE(4231),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4231),
    [sym_binary_expression] = STATE(4231),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1190] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4038),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4038),
    [sym_ternary_expression] = STATE(4038),
    [sym_call_expression] = STATE(4038),
    [sym_primary_expression] = STATE(4038),
    [sym__primary_expr] = STATE(4038),
    [sym_index_expression] = STATE(4038),
    [sym_assignment_expression] = STATE(4038),
    [sym_binary_expression] = STATE(4038),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4038),
    [sym_unary_expression] = STATE(4038),
    [sym__unary_expr] = STATE(4038),
    [sym_property_expression] = STATE(4038),
    [sym_cast_expression] = STATE(4038),
    [sym_delete_expression] = STATE(4038),
    [sym_throw_expression] = STATE(4038),
    [sym_assert_expression] = STATE(4038),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4038),
    [sym_new_expression] = STATE(4038),
    [sym_typeid_expression] = STATE(4038),
    [sym_is_expression] = STATE(4038),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4038),
    [sym_char_literal] = STATE(4038),
    [sym_array_literal] = STATE(4038),
    [sym_function_literal] = STATE(4038),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4038),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3911),
    [sym_false] = ACTIONS(3911),
    [sym_null] = ACTIONS(3911),
    [sym_super] = ACTIONS(3911),
    [sym_this] = ACTIONS(3911),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3913),
    [sym_float_literal] = ACTIONS(3913),
    [sym__string] = ACTIONS(3327),
  },
  [1191] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4195),
    [sym_ternary_expression] = STATE(4195),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4195),
    [sym_binary_expression] = STATE(4195),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1192] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4303),
    [sym_ternary_expression] = STATE(4303),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4303),
    [sym_binary_expression] = STATE(4303),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1193] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5520),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(5108),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(5108),
    [sym_typeof_expression] = STATE(3963),
    [sym__expr] = STATE(4241),
    [sym_ternary_expression] = STATE(4241),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4241),
    [sym_binary_expression] = STATE(4241),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3947),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3950),
    [sym_traits_expression] = STATE(3947),
    [aux_sym_type_repeat1] = STATE(3783),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3915),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3917),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(3919),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1194] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5688),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4264),
    [sym_ternary_expression] = STATE(4264),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4264),
    [sym_binary_expression] = STATE(4264),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1195] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4254),
    [sym_ternary_expression] = STATE(4254),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4254),
    [sym_binary_expression] = STATE(4254),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1196] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4297),
    [sym_ternary_expression] = STATE(4297),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4297),
    [sym_binary_expression] = STATE(4297),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1197] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4082),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4082),
    [sym_ternary_expression] = STATE(4082),
    [sym_call_expression] = STATE(4082),
    [sym_primary_expression] = STATE(4082),
    [sym__primary_expr] = STATE(4082),
    [sym_index_expression] = STATE(4082),
    [sym_assignment_expression] = STATE(4082),
    [sym_binary_expression] = STATE(4082),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4082),
    [sym_unary_expression] = STATE(4082),
    [sym__unary_expr] = STATE(4082),
    [sym_property_expression] = STATE(4082),
    [sym_cast_expression] = STATE(4082),
    [sym_delete_expression] = STATE(4082),
    [sym_throw_expression] = STATE(4082),
    [sym_assert_expression] = STATE(4082),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4082),
    [sym_new_expression] = STATE(4082),
    [sym_typeid_expression] = STATE(4082),
    [sym_is_expression] = STATE(4082),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4082),
    [sym_char_literal] = STATE(4082),
    [sym_array_literal] = STATE(4082),
    [sym_function_literal] = STATE(4082),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4082),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3921),
    [sym_false] = ACTIONS(3921),
    [sym_null] = ACTIONS(3921),
    [sym_super] = ACTIONS(3921),
    [sym_this] = ACTIONS(3921),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3923),
    [sym_float_literal] = ACTIONS(3923),
    [sym__string] = ACTIONS(3713),
  },
  [1198] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4295),
    [sym_ternary_expression] = STATE(4295),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4295),
    [sym_binary_expression] = STATE(4295),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1199] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4040),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4040),
    [sym_ternary_expression] = STATE(4040),
    [sym_call_expression] = STATE(4040),
    [sym_primary_expression] = STATE(4040),
    [sym__primary_expr] = STATE(4040),
    [sym_index_expression] = STATE(4040),
    [sym_assignment_expression] = STATE(4040),
    [sym_binary_expression] = STATE(4040),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4040),
    [sym_unary_expression] = STATE(4040),
    [sym__unary_expr] = STATE(4040),
    [sym_property_expression] = STATE(4040),
    [sym_cast_expression] = STATE(4040),
    [sym_delete_expression] = STATE(4040),
    [sym_throw_expression] = STATE(4040),
    [sym_assert_expression] = STATE(4040),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4040),
    [sym_new_expression] = STATE(4040),
    [sym_typeid_expression] = STATE(4040),
    [sym_is_expression] = STATE(4040),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4040),
    [sym_char_literal] = STATE(4040),
    [sym_array_literal] = STATE(4040),
    [sym_function_literal] = STATE(4040),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4040),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3925),
    [sym_false] = ACTIONS(3925),
    [sym_null] = ACTIONS(3925),
    [sym_super] = ACTIONS(3925),
    [sym_this] = ACTIONS(3925),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3927),
    [sym_float_literal] = ACTIONS(3927),
    [sym__string] = ACTIONS(3713),
  },
  [1200] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4113),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4113),
    [sym_ternary_expression] = STATE(4113),
    [sym_call_expression] = STATE(4113),
    [sym_primary_expression] = STATE(4113),
    [sym__primary_expr] = STATE(4113),
    [sym_index_expression] = STATE(4113),
    [sym_assignment_expression] = STATE(4113),
    [sym_binary_expression] = STATE(4113),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4113),
    [sym_unary_expression] = STATE(4113),
    [sym__unary_expr] = STATE(4113),
    [sym_property_expression] = STATE(4113),
    [sym_cast_expression] = STATE(4113),
    [sym_delete_expression] = STATE(4113),
    [sym_throw_expression] = STATE(4113),
    [sym_assert_expression] = STATE(4113),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4113),
    [sym_new_expression] = STATE(4113),
    [sym_typeid_expression] = STATE(4113),
    [sym_is_expression] = STATE(4113),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4113),
    [sym_char_literal] = STATE(4113),
    [sym_array_literal] = STATE(4113),
    [sym_function_literal] = STATE(4113),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4113),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3929),
    [sym_false] = ACTIONS(3929),
    [sym_null] = ACTIONS(3929),
    [sym_super] = ACTIONS(3929),
    [sym_this] = ACTIONS(3929),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3931),
    [sym_float_literal] = ACTIONS(3931),
    [sym__string] = ACTIONS(3327),
  },
  [1201] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4293),
    [sym_ternary_expression] = STATE(4293),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4293),
    [sym_binary_expression] = STATE(4293),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1202] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4044),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4044),
    [sym_ternary_expression] = STATE(4044),
    [sym_call_expression] = STATE(4044),
    [sym_primary_expression] = STATE(4044),
    [sym__primary_expr] = STATE(4044),
    [sym_index_expression] = STATE(4044),
    [sym_assignment_expression] = STATE(4044),
    [sym_binary_expression] = STATE(4044),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4044),
    [sym_unary_expression] = STATE(4044),
    [sym__unary_expr] = STATE(4044),
    [sym_property_expression] = STATE(4044),
    [sym_cast_expression] = STATE(4044),
    [sym_delete_expression] = STATE(4044),
    [sym_throw_expression] = STATE(4044),
    [sym_assert_expression] = STATE(4044),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4044),
    [sym_new_expression] = STATE(4044),
    [sym_typeid_expression] = STATE(4044),
    [sym_is_expression] = STATE(4044),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4044),
    [sym_char_literal] = STATE(4044),
    [sym_array_literal] = STATE(4044),
    [sym_function_literal] = STATE(4044),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4044),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3933),
    [sym_false] = ACTIONS(3933),
    [sym_null] = ACTIONS(3933),
    [sym_super] = ACTIONS(3933),
    [sym_this] = ACTIONS(3933),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3935),
    [sym_float_literal] = ACTIONS(3935),
    [sym__string] = ACTIONS(3327),
  },
  [1203] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4165),
    [sym_ternary_expression] = STATE(4165),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4165),
    [sym_binary_expression] = STATE(4165),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1204] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4298),
    [sym_ternary_expression] = STATE(4298),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4298),
    [sym_binary_expression] = STATE(4298),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1205] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4285),
    [sym_ternary_expression] = STATE(4285),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4285),
    [sym_binary_expression] = STATE(4285),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1206] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4286),
    [sym_ternary_expression] = STATE(4286),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4286),
    [sym_binary_expression] = STATE(4286),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1207] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4307),
    [sym_ternary_expression] = STATE(4307),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4307),
    [sym_binary_expression] = STATE(4307),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1208] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4047),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4047),
    [sym_ternary_expression] = STATE(4047),
    [sym_call_expression] = STATE(4047),
    [sym_primary_expression] = STATE(4047),
    [sym__primary_expr] = STATE(4047),
    [sym_index_expression] = STATE(4047),
    [sym_assignment_expression] = STATE(4047),
    [sym_binary_expression] = STATE(4047),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4047),
    [sym_unary_expression] = STATE(4047),
    [sym__unary_expr] = STATE(4047),
    [sym_property_expression] = STATE(4047),
    [sym_cast_expression] = STATE(4047),
    [sym_delete_expression] = STATE(4047),
    [sym_throw_expression] = STATE(4047),
    [sym_assert_expression] = STATE(4047),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4047),
    [sym_new_expression] = STATE(4047),
    [sym_typeid_expression] = STATE(4047),
    [sym_is_expression] = STATE(4047),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4047),
    [sym_char_literal] = STATE(4047),
    [sym_array_literal] = STATE(4047),
    [sym_function_literal] = STATE(4047),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4047),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3937),
    [sym_false] = ACTIONS(3937),
    [sym_null] = ACTIONS(3937),
    [sym_super] = ACTIONS(3937),
    [sym_this] = ACTIONS(3937),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3939),
    [sym_float_literal] = ACTIONS(3939),
    [sym__string] = ACTIONS(3327),
  },
  [1209] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4277),
    [sym_ternary_expression] = STATE(4277),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4277),
    [sym_binary_expression] = STATE(4277),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1210] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4283),
    [sym_ternary_expression] = STATE(4283),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4283),
    [sym_binary_expression] = STATE(4283),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1211] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4299),
    [sym_ternary_expression] = STATE(4299),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4299),
    [sym_binary_expression] = STATE(4299),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1212] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4287),
    [sym_ternary_expression] = STATE(4287),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4287),
    [sym_binary_expression] = STATE(4287),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1213] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4288),
    [sym_ternary_expression] = STATE(4288),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4288),
    [sym_binary_expression] = STATE(4288),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1214] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4289),
    [sym_ternary_expression] = STATE(4289),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4289),
    [sym_binary_expression] = STATE(4289),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1215] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4274),
    [sym_ternary_expression] = STATE(4274),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4274),
    [sym_binary_expression] = STATE(4274),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1216] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4194),
    [sym_ternary_expression] = STATE(4194),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4194),
    [sym_binary_expression] = STATE(4194),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1217] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4235),
    [sym_ternary_expression] = STATE(4235),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4235),
    [sym_binary_expression] = STATE(4235),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1218] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4123),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4123),
    [sym_ternary_expression] = STATE(4123),
    [sym_call_expression] = STATE(4123),
    [sym_primary_expression] = STATE(4123),
    [sym__primary_expr] = STATE(4123),
    [sym_index_expression] = STATE(4123),
    [sym_assignment_expression] = STATE(4123),
    [sym_binary_expression] = STATE(4123),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4123),
    [sym_unary_expression] = STATE(4123),
    [sym__unary_expr] = STATE(4123),
    [sym_property_expression] = STATE(4123),
    [sym_cast_expression] = STATE(4123),
    [sym_delete_expression] = STATE(4123),
    [sym_throw_expression] = STATE(4123),
    [sym_assert_expression] = STATE(4123),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4123),
    [sym_new_expression] = STATE(4123),
    [sym_typeid_expression] = STATE(4123),
    [sym_is_expression] = STATE(4123),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4123),
    [sym_char_literal] = STATE(4123),
    [sym_array_literal] = STATE(4123),
    [sym_function_literal] = STATE(4123),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4123),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3941),
    [sym_false] = ACTIONS(3941),
    [sym_null] = ACTIONS(3941),
    [sym_super] = ACTIONS(3941),
    [sym_this] = ACTIONS(3941),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3943),
    [sym_float_literal] = ACTIONS(3943),
    [sym__string] = ACTIONS(233),
  },
  [1219] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4193),
    [sym_ternary_expression] = STATE(4193),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4193),
    [sym_binary_expression] = STATE(4193),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1220] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4084),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4084),
    [sym_ternary_expression] = STATE(4084),
    [sym_call_expression] = STATE(4084),
    [sym_primary_expression] = STATE(4084),
    [sym__primary_expr] = STATE(4084),
    [sym_index_expression] = STATE(4084),
    [sym_assignment_expression] = STATE(4084),
    [sym_binary_expression] = STATE(4084),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4084),
    [sym_unary_expression] = STATE(4084),
    [sym__unary_expr] = STATE(4084),
    [sym_property_expression] = STATE(4084),
    [sym_cast_expression] = STATE(4084),
    [sym_delete_expression] = STATE(4084),
    [sym_throw_expression] = STATE(4084),
    [sym_assert_expression] = STATE(4084),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4084),
    [sym_new_expression] = STATE(4084),
    [sym_typeid_expression] = STATE(4084),
    [sym_is_expression] = STATE(4084),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4084),
    [sym_char_literal] = STATE(4084),
    [sym_array_literal] = STATE(4084),
    [sym_function_literal] = STATE(4084),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4084),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3945),
    [sym_false] = ACTIONS(3945),
    [sym_null] = ACTIONS(3945),
    [sym_super] = ACTIONS(3945),
    [sym_this] = ACTIONS(3945),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3947),
    [sym_float_literal] = ACTIONS(3947),
    [sym__string] = ACTIONS(233),
  },
  [1221] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4083),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4083),
    [sym_ternary_expression] = STATE(4083),
    [sym_call_expression] = STATE(4083),
    [sym_primary_expression] = STATE(4083),
    [sym__primary_expr] = STATE(4083),
    [sym_index_expression] = STATE(4083),
    [sym_assignment_expression] = STATE(4083),
    [sym_binary_expression] = STATE(4083),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4083),
    [sym_unary_expression] = STATE(4083),
    [sym__unary_expr] = STATE(4083),
    [sym_property_expression] = STATE(4083),
    [sym_cast_expression] = STATE(4083),
    [sym_delete_expression] = STATE(4083),
    [sym_throw_expression] = STATE(4083),
    [sym_assert_expression] = STATE(4083),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4083),
    [sym_new_expression] = STATE(4083),
    [sym_typeid_expression] = STATE(4083),
    [sym_is_expression] = STATE(4083),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4083),
    [sym_char_literal] = STATE(4083),
    [sym_array_literal] = STATE(4083),
    [sym_function_literal] = STATE(4083),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4083),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3949),
    [sym_false] = ACTIONS(3949),
    [sym_null] = ACTIONS(3949),
    [sym_super] = ACTIONS(3949),
    [sym_this] = ACTIONS(3949),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3951),
    [sym_float_literal] = ACTIONS(3951),
    [sym__string] = ACTIONS(233),
  },
  [1222] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4081),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4081),
    [sym_ternary_expression] = STATE(4081),
    [sym_call_expression] = STATE(4081),
    [sym_primary_expression] = STATE(4081),
    [sym__primary_expr] = STATE(4081),
    [sym_index_expression] = STATE(4081),
    [sym_assignment_expression] = STATE(4081),
    [sym_binary_expression] = STATE(4081),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4081),
    [sym_unary_expression] = STATE(4081),
    [sym__unary_expr] = STATE(4081),
    [sym_property_expression] = STATE(4081),
    [sym_cast_expression] = STATE(4081),
    [sym_delete_expression] = STATE(4081),
    [sym_throw_expression] = STATE(4081),
    [sym_assert_expression] = STATE(4081),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4081),
    [sym_new_expression] = STATE(4081),
    [sym_typeid_expression] = STATE(4081),
    [sym_is_expression] = STATE(4081),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4081),
    [sym_char_literal] = STATE(4081),
    [sym_array_literal] = STATE(4081),
    [sym_function_literal] = STATE(4081),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4081),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3953),
    [sym_false] = ACTIONS(3953),
    [sym_null] = ACTIONS(3953),
    [sym_super] = ACTIONS(3953),
    [sym_this] = ACTIONS(3953),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3955),
    [sym_float_literal] = ACTIONS(3955),
    [sym__string] = ACTIONS(233),
  },
  [1223] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4049),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4049),
    [sym_ternary_expression] = STATE(4049),
    [sym_call_expression] = STATE(4049),
    [sym_primary_expression] = STATE(4049),
    [sym__primary_expr] = STATE(4049),
    [sym_index_expression] = STATE(4049),
    [sym_assignment_expression] = STATE(4049),
    [sym_binary_expression] = STATE(4049),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4049),
    [sym_unary_expression] = STATE(4049),
    [sym__unary_expr] = STATE(4049),
    [sym_property_expression] = STATE(4049),
    [sym_cast_expression] = STATE(4049),
    [sym_delete_expression] = STATE(4049),
    [sym_throw_expression] = STATE(4049),
    [sym_assert_expression] = STATE(4049),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4049),
    [sym_new_expression] = STATE(4049),
    [sym_typeid_expression] = STATE(4049),
    [sym_is_expression] = STATE(4049),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4049),
    [sym_char_literal] = STATE(4049),
    [sym_array_literal] = STATE(4049),
    [sym_function_literal] = STATE(4049),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4049),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3957),
    [sym_false] = ACTIONS(3957),
    [sym_null] = ACTIONS(3957),
    [sym_super] = ACTIONS(3957),
    [sym_this] = ACTIONS(3957),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3959),
    [sym_float_literal] = ACTIONS(3959),
    [sym__string] = ACTIONS(3327),
  },
  [1224] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4192),
    [sym_ternary_expression] = STATE(4192),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4192),
    [sym_binary_expression] = STATE(4192),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1225] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5630),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4274),
    [sym_ternary_expression] = STATE(4274),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4274),
    [sym_binary_expression] = STATE(4274),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1226] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5630),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4257),
    [sym_ternary_expression] = STATE(4257),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4257),
    [sym_binary_expression] = STATE(4257),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1227] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4080),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4080),
    [sym_ternary_expression] = STATE(4080),
    [sym_call_expression] = STATE(4080),
    [sym_primary_expression] = STATE(4080),
    [sym__primary_expr] = STATE(4080),
    [sym_index_expression] = STATE(4080),
    [sym_assignment_expression] = STATE(4080),
    [sym_binary_expression] = STATE(4080),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4080),
    [sym_unary_expression] = STATE(4080),
    [sym__unary_expr] = STATE(4080),
    [sym_property_expression] = STATE(4080),
    [sym_cast_expression] = STATE(4080),
    [sym_delete_expression] = STATE(4080),
    [sym_throw_expression] = STATE(4080),
    [sym_assert_expression] = STATE(4080),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4080),
    [sym_new_expression] = STATE(4080),
    [sym_typeid_expression] = STATE(4080),
    [sym_is_expression] = STATE(4080),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4080),
    [sym_char_literal] = STATE(4080),
    [sym_array_literal] = STATE(4080),
    [sym_function_literal] = STATE(4080),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4080),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3961),
    [sym_false] = ACTIONS(3961),
    [sym_null] = ACTIONS(3961),
    [sym_super] = ACTIONS(3961),
    [sym_this] = ACTIONS(3961),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3963),
    [sym_float_literal] = ACTIONS(3963),
    [sym__string] = ACTIONS(233),
  },
  [1228] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4079),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4079),
    [sym_ternary_expression] = STATE(4079),
    [sym_call_expression] = STATE(4079),
    [sym_primary_expression] = STATE(4079),
    [sym__primary_expr] = STATE(4079),
    [sym_index_expression] = STATE(4079),
    [sym_assignment_expression] = STATE(4079),
    [sym_binary_expression] = STATE(4079),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4079),
    [sym_unary_expression] = STATE(4079),
    [sym__unary_expr] = STATE(4079),
    [sym_property_expression] = STATE(4079),
    [sym_cast_expression] = STATE(4079),
    [sym_delete_expression] = STATE(4079),
    [sym_throw_expression] = STATE(4079),
    [sym_assert_expression] = STATE(4079),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4079),
    [sym_new_expression] = STATE(4079),
    [sym_typeid_expression] = STATE(4079),
    [sym_is_expression] = STATE(4079),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4079),
    [sym_char_literal] = STATE(4079),
    [sym_array_literal] = STATE(4079),
    [sym_function_literal] = STATE(4079),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4079),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3965),
    [sym_false] = ACTIONS(3965),
    [sym_null] = ACTIONS(3965),
    [sym_super] = ACTIONS(3965),
    [sym_this] = ACTIONS(3965),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3967),
    [sym_float_literal] = ACTIONS(3967),
    [sym__string] = ACTIONS(233),
  },
  [1229] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4074),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4074),
    [sym_ternary_expression] = STATE(4074),
    [sym_call_expression] = STATE(4074),
    [sym_primary_expression] = STATE(4074),
    [sym__primary_expr] = STATE(4074),
    [sym_index_expression] = STATE(4074),
    [sym_assignment_expression] = STATE(4074),
    [sym_binary_expression] = STATE(4074),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4074),
    [sym_unary_expression] = STATE(4074),
    [sym__unary_expr] = STATE(4074),
    [sym_property_expression] = STATE(4074),
    [sym_cast_expression] = STATE(4074),
    [sym_delete_expression] = STATE(4074),
    [sym_throw_expression] = STATE(4074),
    [sym_assert_expression] = STATE(4074),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4074),
    [sym_new_expression] = STATE(4074),
    [sym_typeid_expression] = STATE(4074),
    [sym_is_expression] = STATE(4074),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4074),
    [sym_char_literal] = STATE(4074),
    [sym_array_literal] = STATE(4074),
    [sym_function_literal] = STATE(4074),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4074),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3969),
    [sym_false] = ACTIONS(3969),
    [sym_null] = ACTIONS(3969),
    [sym_super] = ACTIONS(3969),
    [sym_this] = ACTIONS(3969),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3971),
    [sym_float_literal] = ACTIONS(3971),
    [sym__string] = ACTIONS(233),
  },
  [1230] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4164),
    [sym_ternary_expression] = STATE(4164),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4164),
    [sym_binary_expression] = STATE(4164),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1231] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4039),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4039),
    [sym_ternary_expression] = STATE(4039),
    [sym_call_expression] = STATE(4039),
    [sym_primary_expression] = STATE(4039),
    [sym__primary_expr] = STATE(4039),
    [sym_index_expression] = STATE(4039),
    [sym_assignment_expression] = STATE(4039),
    [sym_binary_expression] = STATE(4039),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4039),
    [sym_unary_expression] = STATE(4039),
    [sym__unary_expr] = STATE(4039),
    [sym_property_expression] = STATE(4039),
    [sym_cast_expression] = STATE(4039),
    [sym_delete_expression] = STATE(4039),
    [sym_throw_expression] = STATE(4039),
    [sym_assert_expression] = STATE(4039),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4039),
    [sym_new_expression] = STATE(4039),
    [sym_typeid_expression] = STATE(4039),
    [sym_is_expression] = STATE(4039),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4039),
    [sym_char_literal] = STATE(4039),
    [sym_array_literal] = STATE(4039),
    [sym_function_literal] = STATE(4039),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4039),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3973),
    [sym_false] = ACTIONS(3973),
    [sym_null] = ACTIONS(3973),
    [sym_super] = ACTIONS(3973),
    [sym_this] = ACTIONS(3973),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3975),
    [sym_float_literal] = ACTIONS(3975),
    [sym__string] = ACTIONS(3713),
  },
  [1232] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4189),
    [sym_ternary_expression] = STATE(4189),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4189),
    [sym_binary_expression] = STATE(4189),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1233] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4290),
    [sym_ternary_expression] = STATE(4290),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4290),
    [sym_binary_expression] = STATE(4290),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1234] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4073),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4073),
    [sym_ternary_expression] = STATE(4073),
    [sym_call_expression] = STATE(4073),
    [sym_primary_expression] = STATE(4073),
    [sym__primary_expr] = STATE(4073),
    [sym_index_expression] = STATE(4073),
    [sym_assignment_expression] = STATE(4073),
    [sym_binary_expression] = STATE(4073),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4073),
    [sym_unary_expression] = STATE(4073),
    [sym__unary_expr] = STATE(4073),
    [sym_property_expression] = STATE(4073),
    [sym_cast_expression] = STATE(4073),
    [sym_delete_expression] = STATE(4073),
    [sym_throw_expression] = STATE(4073),
    [sym_assert_expression] = STATE(4073),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4073),
    [sym_new_expression] = STATE(4073),
    [sym_typeid_expression] = STATE(4073),
    [sym_is_expression] = STATE(4073),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4073),
    [sym_char_literal] = STATE(4073),
    [sym_array_literal] = STATE(4073),
    [sym_function_literal] = STATE(4073),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4073),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3977),
    [sym_false] = ACTIONS(3977),
    [sym_null] = ACTIONS(3977),
    [sym_super] = ACTIONS(3977),
    [sym_this] = ACTIONS(3977),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3979),
    [sym_float_literal] = ACTIONS(3979),
    [sym__string] = ACTIONS(233),
  },
  [1235] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4072),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4072),
    [sym_ternary_expression] = STATE(4072),
    [sym_call_expression] = STATE(4072),
    [sym_primary_expression] = STATE(4072),
    [sym__primary_expr] = STATE(4072),
    [sym_index_expression] = STATE(4072),
    [sym_assignment_expression] = STATE(4072),
    [sym_binary_expression] = STATE(4072),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4072),
    [sym_unary_expression] = STATE(4072),
    [sym__unary_expr] = STATE(4072),
    [sym_property_expression] = STATE(4072),
    [sym_cast_expression] = STATE(4072),
    [sym_delete_expression] = STATE(4072),
    [sym_throw_expression] = STATE(4072),
    [sym_assert_expression] = STATE(4072),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4072),
    [sym_new_expression] = STATE(4072),
    [sym_typeid_expression] = STATE(4072),
    [sym_is_expression] = STATE(4072),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4072),
    [sym_char_literal] = STATE(4072),
    [sym_array_literal] = STATE(4072),
    [sym_function_literal] = STATE(4072),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4072),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3981),
    [sym_false] = ACTIONS(3981),
    [sym_null] = ACTIONS(3981),
    [sym_super] = ACTIONS(3981),
    [sym_this] = ACTIONS(3981),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3983),
    [sym_float_literal] = ACTIONS(3983),
    [sym__string] = ACTIONS(233),
  },
  [1236] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4069),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4069),
    [sym_ternary_expression] = STATE(4069),
    [sym_call_expression] = STATE(4069),
    [sym_primary_expression] = STATE(4069),
    [sym__primary_expr] = STATE(4069),
    [sym_index_expression] = STATE(4069),
    [sym_assignment_expression] = STATE(4069),
    [sym_binary_expression] = STATE(4069),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4069),
    [sym_unary_expression] = STATE(4069),
    [sym__unary_expr] = STATE(4069),
    [sym_property_expression] = STATE(4069),
    [sym_cast_expression] = STATE(4069),
    [sym_delete_expression] = STATE(4069),
    [sym_throw_expression] = STATE(4069),
    [sym_assert_expression] = STATE(4069),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4069),
    [sym_new_expression] = STATE(4069),
    [sym_typeid_expression] = STATE(4069),
    [sym_is_expression] = STATE(4069),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4069),
    [sym_char_literal] = STATE(4069),
    [sym_array_literal] = STATE(4069),
    [sym_function_literal] = STATE(4069),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4069),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3985),
    [sym_false] = ACTIONS(3985),
    [sym_null] = ACTIONS(3985),
    [sym_super] = ACTIONS(3985),
    [sym_this] = ACTIONS(3985),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3987),
    [sym_float_literal] = ACTIONS(3987),
    [sym__string] = ACTIONS(233),
  },
  [1237] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4107),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4107),
    [sym_ternary_expression] = STATE(4107),
    [sym_call_expression] = STATE(4107),
    [sym_primary_expression] = STATE(4107),
    [sym__primary_expr] = STATE(4107),
    [sym_index_expression] = STATE(4107),
    [sym_assignment_expression] = STATE(4107),
    [sym_binary_expression] = STATE(4107),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4107),
    [sym_unary_expression] = STATE(4107),
    [sym__unary_expr] = STATE(4107),
    [sym_property_expression] = STATE(4107),
    [sym_cast_expression] = STATE(4107),
    [sym_delete_expression] = STATE(4107),
    [sym_throw_expression] = STATE(4107),
    [sym_assert_expression] = STATE(4107),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4107),
    [sym_new_expression] = STATE(4107),
    [sym_typeid_expression] = STATE(4107),
    [sym_is_expression] = STATE(4107),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4107),
    [sym_char_literal] = STATE(4107),
    [sym_array_literal] = STATE(4107),
    [sym_function_literal] = STATE(4107),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4107),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3989),
    [sym_false] = ACTIONS(3989),
    [sym_null] = ACTIONS(3989),
    [sym_super] = ACTIONS(3989),
    [sym_this] = ACTIONS(3989),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3991),
    [sym_float_literal] = ACTIONS(3991),
    [sym__string] = ACTIONS(3327),
  },
  [1238] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3905),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3905),
    [sym_ternary_expression] = STATE(3905),
    [sym_call_expression] = STATE(3905),
    [sym_primary_expression] = STATE(3905),
    [sym__primary_expr] = STATE(3905),
    [sym_index_expression] = STATE(3905),
    [sym_assignment_expression] = STATE(3905),
    [sym_binary_expression] = STATE(3905),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3905),
    [sym_unary_expression] = STATE(3905),
    [sym__unary_expr] = STATE(3905),
    [sym_property_expression] = STATE(3905),
    [sym_cast_expression] = STATE(3905),
    [sym_delete_expression] = STATE(3905),
    [sym_throw_expression] = STATE(3905),
    [sym_assert_expression] = STATE(3905),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3905),
    [sym_new_expression] = STATE(3905),
    [sym_typeid_expression] = STATE(3905),
    [sym_is_expression] = STATE(3905),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3905),
    [sym_char_literal] = STATE(3905),
    [sym_array_literal] = STATE(3905),
    [sym_function_literal] = STATE(3905),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3905),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(3993),
    [sym_false] = ACTIONS(3993),
    [sym_null] = ACTIONS(3993),
    [sym_super] = ACTIONS(3993),
    [sym_this] = ACTIONS(3993),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3995),
    [sym_float_literal] = ACTIONS(3995),
    [sym__string] = ACTIONS(233),
  },
  [1239] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4114),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4114),
    [sym_ternary_expression] = STATE(4114),
    [sym_call_expression] = STATE(4114),
    [sym_primary_expression] = STATE(4114),
    [sym__primary_expr] = STATE(4114),
    [sym_index_expression] = STATE(4114),
    [sym_assignment_expression] = STATE(4114),
    [sym_binary_expression] = STATE(4114),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4114),
    [sym_unary_expression] = STATE(4114),
    [sym__unary_expr] = STATE(4114),
    [sym_property_expression] = STATE(4114),
    [sym_cast_expression] = STATE(4114),
    [sym_delete_expression] = STATE(4114),
    [sym_throw_expression] = STATE(4114),
    [sym_assert_expression] = STATE(4114),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4114),
    [sym_new_expression] = STATE(4114),
    [sym_typeid_expression] = STATE(4114),
    [sym_is_expression] = STATE(4114),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4114),
    [sym_char_literal] = STATE(4114),
    [sym_array_literal] = STATE(4114),
    [sym_function_literal] = STATE(4114),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4114),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3997),
    [sym_false] = ACTIONS(3997),
    [sym_null] = ACTIONS(3997),
    [sym_super] = ACTIONS(3997),
    [sym_this] = ACTIONS(3997),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3999),
    [sym_float_literal] = ACTIONS(3999),
    [sym__string] = ACTIONS(3327),
  },
  [1240] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4115),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4115),
    [sym_ternary_expression] = STATE(4115),
    [sym_call_expression] = STATE(4115),
    [sym_primary_expression] = STATE(4115),
    [sym__primary_expr] = STATE(4115),
    [sym_index_expression] = STATE(4115),
    [sym_assignment_expression] = STATE(4115),
    [sym_binary_expression] = STATE(4115),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4115),
    [sym_unary_expression] = STATE(4115),
    [sym__unary_expr] = STATE(4115),
    [sym_property_expression] = STATE(4115),
    [sym_cast_expression] = STATE(4115),
    [sym_delete_expression] = STATE(4115),
    [sym_throw_expression] = STATE(4115),
    [sym_assert_expression] = STATE(4115),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4115),
    [sym_new_expression] = STATE(4115),
    [sym_typeid_expression] = STATE(4115),
    [sym_is_expression] = STATE(4115),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4115),
    [sym_char_literal] = STATE(4115),
    [sym_array_literal] = STATE(4115),
    [sym_function_literal] = STATE(4115),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4115),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4001),
    [sym_false] = ACTIONS(4001),
    [sym_null] = ACTIONS(4001),
    [sym_super] = ACTIONS(4001),
    [sym_this] = ACTIONS(4001),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4003),
    [sym_float_literal] = ACTIONS(4003),
    [sym__string] = ACTIONS(3327),
  },
  [1241] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4043),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4043),
    [sym_ternary_expression] = STATE(4043),
    [sym_call_expression] = STATE(4043),
    [sym_primary_expression] = STATE(4043),
    [sym__primary_expr] = STATE(4043),
    [sym_index_expression] = STATE(4043),
    [sym_assignment_expression] = STATE(4043),
    [sym_binary_expression] = STATE(4043),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4043),
    [sym_unary_expression] = STATE(4043),
    [sym__unary_expr] = STATE(4043),
    [sym_property_expression] = STATE(4043),
    [sym_cast_expression] = STATE(4043),
    [sym_delete_expression] = STATE(4043),
    [sym_throw_expression] = STATE(4043),
    [sym_assert_expression] = STATE(4043),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4043),
    [sym_new_expression] = STATE(4043),
    [sym_typeid_expression] = STATE(4043),
    [sym_is_expression] = STATE(4043),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4043),
    [sym_char_literal] = STATE(4043),
    [sym_array_literal] = STATE(4043),
    [sym_function_literal] = STATE(4043),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4043),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4005),
    [sym_false] = ACTIONS(4005),
    [sym_null] = ACTIONS(4005),
    [sym_super] = ACTIONS(4005),
    [sym_this] = ACTIONS(4005),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4007),
    [sym_float_literal] = ACTIONS(4007),
    [sym__string] = ACTIONS(3327),
  },
  [1242] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4061),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4061),
    [sym_ternary_expression] = STATE(4061),
    [sym_call_expression] = STATE(4061),
    [sym_primary_expression] = STATE(4061),
    [sym__primary_expr] = STATE(4061),
    [sym_index_expression] = STATE(4061),
    [sym_assignment_expression] = STATE(4061),
    [sym_binary_expression] = STATE(4061),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4061),
    [sym_unary_expression] = STATE(4061),
    [sym__unary_expr] = STATE(4061),
    [sym_property_expression] = STATE(4061),
    [sym_cast_expression] = STATE(4061),
    [sym_delete_expression] = STATE(4061),
    [sym_throw_expression] = STATE(4061),
    [sym_assert_expression] = STATE(4061),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4061),
    [sym_new_expression] = STATE(4061),
    [sym_typeid_expression] = STATE(4061),
    [sym_is_expression] = STATE(4061),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4061),
    [sym_char_literal] = STATE(4061),
    [sym_array_literal] = STATE(4061),
    [sym_function_literal] = STATE(4061),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4061),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4009),
    [sym_false] = ACTIONS(4009),
    [sym_null] = ACTIONS(4009),
    [sym_super] = ACTIONS(4009),
    [sym_this] = ACTIONS(4009),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4011),
    [sym_float_literal] = ACTIONS(4011),
    [sym__string] = ACTIONS(233),
  },
  [1243] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4057),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4057),
    [sym_ternary_expression] = STATE(4057),
    [sym_call_expression] = STATE(4057),
    [sym_primary_expression] = STATE(4057),
    [sym__primary_expr] = STATE(4057),
    [sym_index_expression] = STATE(4057),
    [sym_assignment_expression] = STATE(4057),
    [sym_binary_expression] = STATE(4057),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4057),
    [sym_unary_expression] = STATE(4057),
    [sym__unary_expr] = STATE(4057),
    [sym_property_expression] = STATE(4057),
    [sym_cast_expression] = STATE(4057),
    [sym_delete_expression] = STATE(4057),
    [sym_throw_expression] = STATE(4057),
    [sym_assert_expression] = STATE(4057),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4057),
    [sym_new_expression] = STATE(4057),
    [sym_typeid_expression] = STATE(4057),
    [sym_is_expression] = STATE(4057),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4057),
    [sym_char_literal] = STATE(4057),
    [sym_array_literal] = STATE(4057),
    [sym_function_literal] = STATE(4057),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4057),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4013),
    [sym_false] = ACTIONS(4013),
    [sym_null] = ACTIONS(4013),
    [sym_super] = ACTIONS(4013),
    [sym_this] = ACTIONS(4013),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4015),
    [sym_float_literal] = ACTIONS(4015),
    [sym__string] = ACTIONS(233),
  },
  [1244] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4294),
    [sym_ternary_expression] = STATE(4294),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4294),
    [sym_binary_expression] = STATE(4294),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1245] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4090),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4090),
    [sym_ternary_expression] = STATE(4090),
    [sym_call_expression] = STATE(4090),
    [sym_primary_expression] = STATE(4090),
    [sym__primary_expr] = STATE(4090),
    [sym_index_expression] = STATE(4090),
    [sym_assignment_expression] = STATE(4090),
    [sym_binary_expression] = STATE(4090),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4090),
    [sym_unary_expression] = STATE(4090),
    [sym__unary_expr] = STATE(4090),
    [sym_property_expression] = STATE(4090),
    [sym_cast_expression] = STATE(4090),
    [sym_delete_expression] = STATE(4090),
    [sym_throw_expression] = STATE(4090),
    [sym_assert_expression] = STATE(4090),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(4090),
    [sym_new_expression] = STATE(4090),
    [sym_typeid_expression] = STATE(4090),
    [sym_is_expression] = STATE(4090),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4090),
    [sym_char_literal] = STATE(4090),
    [sym_array_literal] = STATE(4090),
    [sym_function_literal] = STATE(4090),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(4090),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4017),
    [sym_false] = ACTIONS(4017),
    [sym_null] = ACTIONS(4017),
    [sym_super] = ACTIONS(4017),
    [sym_this] = ACTIONS(4017),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4019),
    [sym_float_literal] = ACTIONS(4019),
    [sym__string] = ACTIONS(3327),
  },
  [1246] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4124),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4124),
    [sym_ternary_expression] = STATE(4124),
    [sym_call_expression] = STATE(4124),
    [sym_primary_expression] = STATE(4124),
    [sym__primary_expr] = STATE(4124),
    [sym_index_expression] = STATE(4124),
    [sym_assignment_expression] = STATE(4124),
    [sym_binary_expression] = STATE(4124),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4124),
    [sym_unary_expression] = STATE(4124),
    [sym__unary_expr] = STATE(4124),
    [sym_property_expression] = STATE(4124),
    [sym_cast_expression] = STATE(4124),
    [sym_delete_expression] = STATE(4124),
    [sym_throw_expression] = STATE(4124),
    [sym_assert_expression] = STATE(4124),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4124),
    [sym_new_expression] = STATE(4124),
    [sym_typeid_expression] = STATE(4124),
    [sym_is_expression] = STATE(4124),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4124),
    [sym_char_literal] = STATE(4124),
    [sym_array_literal] = STATE(4124),
    [sym_function_literal] = STATE(4124),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4124),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4021),
    [sym_false] = ACTIONS(4021),
    [sym_null] = ACTIONS(4021),
    [sym_super] = ACTIONS(4021),
    [sym_this] = ACTIONS(4021),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4023),
    [sym_float_literal] = ACTIONS(4023),
    [sym__string] = ACTIONS(233),
  },
  [1247] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4125),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4125),
    [sym_ternary_expression] = STATE(4125),
    [sym_call_expression] = STATE(4125),
    [sym_primary_expression] = STATE(4125),
    [sym__primary_expr] = STATE(4125),
    [sym_index_expression] = STATE(4125),
    [sym_assignment_expression] = STATE(4125),
    [sym_binary_expression] = STATE(4125),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4125),
    [sym_unary_expression] = STATE(4125),
    [sym__unary_expr] = STATE(4125),
    [sym_property_expression] = STATE(4125),
    [sym_cast_expression] = STATE(4125),
    [sym_delete_expression] = STATE(4125),
    [sym_throw_expression] = STATE(4125),
    [sym_assert_expression] = STATE(4125),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4125),
    [sym_new_expression] = STATE(4125),
    [sym_typeid_expression] = STATE(4125),
    [sym_is_expression] = STATE(4125),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4125),
    [sym_char_literal] = STATE(4125),
    [sym_array_literal] = STATE(4125),
    [sym_function_literal] = STATE(4125),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4125),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4025),
    [sym_false] = ACTIONS(4025),
    [sym_null] = ACTIONS(4025),
    [sym_super] = ACTIONS(4025),
    [sym_this] = ACTIONS(4025),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4027),
    [sym_float_literal] = ACTIONS(4027),
    [sym__string] = ACTIONS(233),
  },
  [1248] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4056),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4056),
    [sym_ternary_expression] = STATE(4056),
    [sym_call_expression] = STATE(4056),
    [sym_primary_expression] = STATE(4056),
    [sym__primary_expr] = STATE(4056),
    [sym_index_expression] = STATE(4056),
    [sym_assignment_expression] = STATE(4056),
    [sym_binary_expression] = STATE(4056),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4056),
    [sym_unary_expression] = STATE(4056),
    [sym__unary_expr] = STATE(4056),
    [sym_property_expression] = STATE(4056),
    [sym_cast_expression] = STATE(4056),
    [sym_delete_expression] = STATE(4056),
    [sym_throw_expression] = STATE(4056),
    [sym_assert_expression] = STATE(4056),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4056),
    [sym_new_expression] = STATE(4056),
    [sym_typeid_expression] = STATE(4056),
    [sym_is_expression] = STATE(4056),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4056),
    [sym_char_literal] = STATE(4056),
    [sym_array_literal] = STATE(4056),
    [sym_function_literal] = STATE(4056),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4056),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4029),
    [sym_false] = ACTIONS(4029),
    [sym_null] = ACTIONS(4029),
    [sym_super] = ACTIONS(4029),
    [sym_this] = ACTIONS(4029),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4031),
    [sym_float_literal] = ACTIONS(4031),
    [sym__string] = ACTIONS(233),
  },
  [1249] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4156),
    [sym_ternary_expression] = STATE(4156),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4156),
    [sym_binary_expression] = STATE(4156),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1250] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4251),
    [sym_ternary_expression] = STATE(4251),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4251),
    [sym_binary_expression] = STATE(4251),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1251] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4126),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4126),
    [sym_ternary_expression] = STATE(4126),
    [sym_call_expression] = STATE(4126),
    [sym_primary_expression] = STATE(4126),
    [sym__primary_expr] = STATE(4126),
    [sym_index_expression] = STATE(4126),
    [sym_assignment_expression] = STATE(4126),
    [sym_binary_expression] = STATE(4126),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4126),
    [sym_unary_expression] = STATE(4126),
    [sym__unary_expr] = STATE(4126),
    [sym_property_expression] = STATE(4126),
    [sym_cast_expression] = STATE(4126),
    [sym_delete_expression] = STATE(4126),
    [sym_throw_expression] = STATE(4126),
    [sym_assert_expression] = STATE(4126),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4126),
    [sym_new_expression] = STATE(4126),
    [sym_typeid_expression] = STATE(4126),
    [sym_is_expression] = STATE(4126),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4126),
    [sym_char_literal] = STATE(4126),
    [sym_array_literal] = STATE(4126),
    [sym_function_literal] = STATE(4126),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4126),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4033),
    [sym_false] = ACTIONS(4033),
    [sym_null] = ACTIONS(4033),
    [sym_super] = ACTIONS(4033),
    [sym_this] = ACTIONS(4033),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4035),
    [sym_float_literal] = ACTIONS(4035),
    [sym__string] = ACTIONS(233),
  },
  [1252] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5612),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4277),
    [sym_ternary_expression] = STATE(4277),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4277),
    [sym_binary_expression] = STATE(4277),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1253] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4127),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym__expr] = STATE(4127),
    [sym_ternary_expression] = STATE(4127),
    [sym_call_expression] = STATE(4127),
    [sym_primary_expression] = STATE(4127),
    [sym__primary_expr] = STATE(4127),
    [sym_index_expression] = STATE(4127),
    [sym_assignment_expression] = STATE(4127),
    [sym_binary_expression] = STATE(4127),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4127),
    [sym_unary_expression] = STATE(4127),
    [sym__unary_expr] = STATE(4127),
    [sym_property_expression] = STATE(4127),
    [sym_cast_expression] = STATE(4127),
    [sym_delete_expression] = STATE(4127),
    [sym_throw_expression] = STATE(4127),
    [sym_assert_expression] = STATE(4127),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(4127),
    [sym_new_expression] = STATE(4127),
    [sym_typeid_expression] = STATE(4127),
    [sym_is_expression] = STATE(4127),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4127),
    [sym_char_literal] = STATE(4127),
    [sym_array_literal] = STATE(4127),
    [sym_function_literal] = STATE(4127),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(4127),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4037),
    [sym_false] = ACTIONS(4037),
    [sym_null] = ACTIONS(4037),
    [sym_super] = ACTIONS(4037),
    [sym_this] = ACTIONS(4037),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4039),
    [sym_float_literal] = ACTIONS(4039),
    [sym__string] = ACTIONS(233),
  },
  [1254] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4147),
    [sym_ternary_expression] = STATE(4147),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4147),
    [sym_binary_expression] = STATE(4147),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1255] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4146),
    [sym_ternary_expression] = STATE(4146),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4146),
    [sym_binary_expression] = STATE(4146),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1256] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4276),
    [sym_ternary_expression] = STATE(4276),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4276),
    [sym_binary_expression] = STATE(4276),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1257] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3977),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4157),
    [sym_ternary_expression] = STATE(4157),
    [sym_call_expression] = STATE(3977),
    [sym_primary_expression] = STATE(3977),
    [sym__primary_expr] = STATE(3977),
    [sym_index_expression] = STATE(3977),
    [sym_assignment_expression] = STATE(4157),
    [sym_binary_expression] = STATE(4157),
    [sym_logical_or_expression] = STATE(4188),
    [sym_logical_and_expression] = STATE(4188),
    [sym_or_expression] = STATE(4188),
    [sym_xor_expression] = STATE(4188),
    [sym_and_expression] = STATE(4188),
    [sym_equal_expression] = STATE(4188),
    [sym_rel_expression] = STATE(4188),
    [sym_identity_expression] = STATE(4188),
    [sym_add_expression] = STATE(4188),
    [sym_mul_expression] = STATE(4188),
    [sym_shift_expression] = STATE(4188),
    [sym_power_expression] = STATE(4188),
    [sym_postfix_expression] = STATE(3977),
    [sym_unary_expression] = STATE(3977),
    [sym__unary_expr] = STATE(3977),
    [sym_property_expression] = STATE(3977),
    [sym_cast_expression] = STATE(3977),
    [sym_delete_expression] = STATE(3977),
    [sym_throw_expression] = STATE(3977),
    [sym_assert_expression] = STATE(3977),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3977),
    [sym_new_expression] = STATE(3977),
    [sym_typeid_expression] = STATE(3977),
    [sym_is_expression] = STATE(3977),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3977),
    [sym_char_literal] = STATE(3977),
    [sym_array_literal] = STATE(3977),
    [sym_function_literal] = STATE(3977),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3977),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(3661),
    [sym_false] = ACTIONS(3661),
    [sym_null] = ACTIONS(3661),
    [sym_super] = ACTIONS(3661),
    [sym_this] = ACTIONS(3661),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3711),
    [sym_float_literal] = ACTIONS(3711),
    [sym__string] = ACTIONS(3713),
  },
  [1258] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4256),
    [sym_ternary_expression] = STATE(4256),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4256),
    [sym_binary_expression] = STATE(4256),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1259] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3907),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym__expr] = STATE(4226),
    [sym_ternary_expression] = STATE(4226),
    [sym_call_expression] = STATE(3907),
    [sym_primary_expression] = STATE(3907),
    [sym__primary_expr] = STATE(3907),
    [sym_index_expression] = STATE(3907),
    [sym_assignment_expression] = STATE(4226),
    [sym_binary_expression] = STATE(4226),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3907),
    [sym_unary_expression] = STATE(3907),
    [sym__unary_expr] = STATE(3907),
    [sym_property_expression] = STATE(3907),
    [sym_cast_expression] = STATE(3907),
    [sym_delete_expression] = STATE(3907),
    [sym_throw_expression] = STATE(3907),
    [sym_assert_expression] = STATE(3907),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3907),
    [sym_new_expression] = STATE(3907),
    [sym_typeid_expression] = STATE(3907),
    [sym_is_expression] = STATE(3907),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3907),
    [sym_char_literal] = STATE(3907),
    [sym_array_literal] = STATE(3907),
    [sym_function_literal] = STATE(3907),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3907),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(3269),
    [sym_false] = ACTIONS(3269),
    [sym_null] = ACTIONS(3269),
    [sym_super] = ACTIONS(3269),
    [sym_this] = ACTIONS(3269),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3325),
    [sym_float_literal] = ACTIONS(3325),
    [sym__string] = ACTIONS(3327),
  },
  [1260] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(5486),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(5108),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(5108),
    [sym_typeof_expression] = STATE(3963),
    [sym__expr] = STATE(4243),
    [sym_ternary_expression] = STATE(4243),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4243),
    [sym_binary_expression] = STATE(4243),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3947),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3950),
    [sym_traits_expression] = STATE(3947),
    [aux_sym_type_repeat1] = STATE(3783),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3915),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3917),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(3919),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1261] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(4004),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym__expr] = STATE(4004),
    [sym_ternary_expression] = STATE(4004),
    [sym_call_expression] = STATE(4004),
    [sym_primary_expression] = STATE(4004),
    [sym__primary_expr] = STATE(4004),
    [sym_index_expression] = STATE(4004),
    [sym_assignment_expression] = STATE(4004),
    [sym_binary_expression] = STATE(4004),
    [sym_logical_or_expression] = STATE(4075),
    [sym_logical_and_expression] = STATE(4075),
    [sym_or_expression] = STATE(4075),
    [sym_xor_expression] = STATE(4075),
    [sym_and_expression] = STATE(4075),
    [sym_equal_expression] = STATE(4075),
    [sym_rel_expression] = STATE(4075),
    [sym_identity_expression] = STATE(4075),
    [sym_add_expression] = STATE(4075),
    [sym_mul_expression] = STATE(4075),
    [sym_shift_expression] = STATE(4075),
    [sym_power_expression] = STATE(4075),
    [sym_postfix_expression] = STATE(4004),
    [sym_unary_expression] = STATE(4004),
    [sym__unary_expr] = STATE(4004),
    [sym_property_expression] = STATE(4004),
    [sym_cast_expression] = STATE(4004),
    [sym_delete_expression] = STATE(4004),
    [sym_throw_expression] = STATE(4004),
    [sym_assert_expression] = STATE(4004),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(4004),
    [sym_new_expression] = STATE(4004),
    [sym_typeid_expression] = STATE(4004),
    [sym_is_expression] = STATE(4004),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(4004),
    [sym_char_literal] = STATE(4004),
    [sym_array_literal] = STATE(4004),
    [sym_function_literal] = STATE(4004),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(4004),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4041),
    [sym_false] = ACTIONS(4041),
    [sym_null] = ACTIONS(4041),
    [sym_super] = ACTIONS(4041),
    [sym_this] = ACTIONS(4041),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4043),
    [sym_float_literal] = ACTIONS(4043),
    [sym__string] = ACTIONS(3713),
  },
  [1262] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4100),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4100),
    [sym_ternary_expression] = STATE(4100),
    [sym_call_expression] = STATE(4100),
    [sym_primary_expression] = STATE(4100),
    [sym__primary_expr] = STATE(4100),
    [sym_index_expression] = STATE(4100),
    [sym_assignment_expression] = STATE(4100),
    [sym_binary_expression] = STATE(4100),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4100),
    [sym_unary_expression] = STATE(4100),
    [sym__unary_expr] = STATE(4100),
    [sym_property_expression] = STATE(4100),
    [sym_cast_expression] = STATE(4100),
    [sym_delete_expression] = STATE(4100),
    [sym_throw_expression] = STATE(4100),
    [sym_assert_expression] = STATE(4100),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4100),
    [sym_new_expression] = STATE(4100),
    [sym_typeid_expression] = STATE(4100),
    [sym_is_expression] = STATE(4100),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4100),
    [sym_char_literal] = STATE(4100),
    [sym_array_literal] = STATE(4100),
    [sym_function_literal] = STATE(4100),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4100),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4045),
    [sym_false] = ACTIONS(4045),
    [sym_null] = ACTIONS(4045),
    [sym_super] = ACTIONS(4045),
    [sym_this] = ACTIONS(4045),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4047),
    [sym_float_literal] = ACTIONS(4047),
    [sym__string] = ACTIONS(3327),
  },
  [1263] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4106),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4106),
    [sym_ternary_expression] = STATE(4106),
    [sym_call_expression] = STATE(4106),
    [sym_primary_expression] = STATE(4106),
    [sym__primary_expr] = STATE(4106),
    [sym_index_expression] = STATE(4106),
    [sym_assignment_expression] = STATE(4106),
    [sym_binary_expression] = STATE(4106),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4106),
    [sym_unary_expression] = STATE(4106),
    [sym__unary_expr] = STATE(4106),
    [sym_property_expression] = STATE(4106),
    [sym_cast_expression] = STATE(4106),
    [sym_delete_expression] = STATE(4106),
    [sym_throw_expression] = STATE(4106),
    [sym_assert_expression] = STATE(4106),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4106),
    [sym_new_expression] = STATE(4106),
    [sym_typeid_expression] = STATE(4106),
    [sym_is_expression] = STATE(4106),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4106),
    [sym_char_literal] = STATE(4106),
    [sym_array_literal] = STATE(4106),
    [sym_function_literal] = STATE(4106),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4106),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4049),
    [sym_false] = ACTIONS(4049),
    [sym_null] = ACTIONS(4049),
    [sym_super] = ACTIONS(4049),
    [sym_this] = ACTIONS(4049),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4051),
    [sym_float_literal] = ACTIONS(4051),
    [sym__string] = ACTIONS(3327),
  },
  [1264] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4281),
    [sym_ternary_expression] = STATE(4281),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4281),
    [sym_binary_expression] = STATE(4281),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1265] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4273),
    [sym_ternary_expression] = STATE(4273),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4273),
    [sym_binary_expression] = STATE(4273),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1266] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3687),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(4265),
    [sym_ternary_expression] = STATE(4265),
    [sym_call_expression] = STATE(3687),
    [sym_primary_expression] = STATE(3687),
    [sym__primary_expr] = STATE(3687),
    [sym_index_expression] = STATE(3687),
    [sym_assignment_expression] = STATE(4265),
    [sym_binary_expression] = STATE(4265),
    [sym_logical_or_expression] = STATE(4103),
    [sym_logical_and_expression] = STATE(4103),
    [sym_or_expression] = STATE(4103),
    [sym_xor_expression] = STATE(4103),
    [sym_and_expression] = STATE(4103),
    [sym_equal_expression] = STATE(4103),
    [sym_rel_expression] = STATE(4103),
    [sym_identity_expression] = STATE(4103),
    [sym_add_expression] = STATE(4103),
    [sym_mul_expression] = STATE(4103),
    [sym_shift_expression] = STATE(4103),
    [sym_power_expression] = STATE(4103),
    [sym_postfix_expression] = STATE(3687),
    [sym_unary_expression] = STATE(3687),
    [sym__unary_expr] = STATE(3687),
    [sym_property_expression] = STATE(3687),
    [sym_cast_expression] = STATE(3687),
    [sym_delete_expression] = STATE(3687),
    [sym_throw_expression] = STATE(3687),
    [sym_assert_expression] = STATE(3687),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3687),
    [sym_new_expression] = STATE(3687),
    [sym_typeid_expression] = STATE(3687),
    [sym_is_expression] = STATE(3687),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3687),
    [sym_char_literal] = STATE(3687),
    [sym_array_literal] = STATE(3687),
    [sym_function_literal] = STATE(3687),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3687),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(105),
    [sym_false] = ACTIONS(105),
    [sym_null] = ACTIONS(105),
    [sym_super] = ACTIONS(105),
    [sym_this] = ACTIONS(105),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(231),
    [sym_float_literal] = ACTIONS(231),
    [sym__string] = ACTIONS(233),
  },
  [1267] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4097),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4097),
    [sym_ternary_expression] = STATE(4097),
    [sym_call_expression] = STATE(4097),
    [sym_primary_expression] = STATE(4097),
    [sym__primary_expr] = STATE(4097),
    [sym_index_expression] = STATE(4097),
    [sym_assignment_expression] = STATE(4097),
    [sym_binary_expression] = STATE(4097),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4097),
    [sym_unary_expression] = STATE(4097),
    [sym__unary_expr] = STATE(4097),
    [sym_property_expression] = STATE(4097),
    [sym_cast_expression] = STATE(4097),
    [sym_delete_expression] = STATE(4097),
    [sym_throw_expression] = STATE(4097),
    [sym_assert_expression] = STATE(4097),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4097),
    [sym_new_expression] = STATE(4097),
    [sym_typeid_expression] = STATE(4097),
    [sym_is_expression] = STATE(4097),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4097),
    [sym_char_literal] = STATE(4097),
    [sym_array_literal] = STATE(4097),
    [sym_function_literal] = STATE(4097),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4097),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4053),
    [sym_false] = ACTIONS(4053),
    [sym_null] = ACTIONS(4053),
    [sym_super] = ACTIONS(4053),
    [sym_this] = ACTIONS(4053),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4055),
    [sym_float_literal] = ACTIONS(4055),
    [sym__string] = ACTIONS(3327),
  },
  [1268] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4094),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4094),
    [sym_ternary_expression] = STATE(4094),
    [sym_call_expression] = STATE(4094),
    [sym_primary_expression] = STATE(4094),
    [sym__primary_expr] = STATE(4094),
    [sym_index_expression] = STATE(4094),
    [sym_assignment_expression] = STATE(4094),
    [sym_binary_expression] = STATE(4094),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4094),
    [sym_unary_expression] = STATE(4094),
    [sym__unary_expr] = STATE(4094),
    [sym_property_expression] = STATE(4094),
    [sym_cast_expression] = STATE(4094),
    [sym_delete_expression] = STATE(4094),
    [sym_throw_expression] = STATE(4094),
    [sym_assert_expression] = STATE(4094),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4094),
    [sym_new_expression] = STATE(4094),
    [sym_typeid_expression] = STATE(4094),
    [sym_is_expression] = STATE(4094),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4094),
    [sym_char_literal] = STATE(4094),
    [sym_array_literal] = STATE(4094),
    [sym_function_literal] = STATE(4094),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4094),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4057),
    [sym_false] = ACTIONS(4057),
    [sym_null] = ACTIONS(4057),
    [sym_super] = ACTIONS(4057),
    [sym_this] = ACTIONS(4057),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4059),
    [sym_float_literal] = ACTIONS(4059),
    [sym__string] = ACTIONS(233),
  },
  [1269] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3899),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3899),
    [sym_ternary_expression] = STATE(3899),
    [sym_call_expression] = STATE(3899),
    [sym_primary_expression] = STATE(3899),
    [sym__primary_expr] = STATE(3899),
    [sym_index_expression] = STATE(3899),
    [sym_assignment_expression] = STATE(3899),
    [sym_binary_expression] = STATE(3899),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3899),
    [sym_unary_expression] = STATE(3899),
    [sym__unary_expr] = STATE(3899),
    [sym_property_expression] = STATE(3899),
    [sym_cast_expression] = STATE(3899),
    [sym_delete_expression] = STATE(3899),
    [sym_throw_expression] = STATE(3899),
    [sym_assert_expression] = STATE(3899),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3899),
    [sym_new_expression] = STATE(3899),
    [sym_typeid_expression] = STATE(3899),
    [sym_is_expression] = STATE(3899),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3899),
    [sym_char_literal] = STATE(3899),
    [sym_array_literal] = STATE(3899),
    [sym_function_literal] = STATE(3899),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3899),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4061),
    [sym_false] = ACTIONS(4061),
    [sym_null] = ACTIONS(4061),
    [sym_super] = ACTIONS(4061),
    [sym_this] = ACTIONS(4061),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4063),
    [sym_float_literal] = ACTIONS(4063),
    [sym__string] = ACTIONS(233),
  },
  [1270] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4099),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4099),
    [sym_ternary_expression] = STATE(4099),
    [sym_call_expression] = STATE(4099),
    [sym_primary_expression] = STATE(4099),
    [sym__primary_expr] = STATE(4099),
    [sym_index_expression] = STATE(4099),
    [sym_assignment_expression] = STATE(4099),
    [sym_binary_expression] = STATE(4099),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4099),
    [sym_unary_expression] = STATE(4099),
    [sym__unary_expr] = STATE(4099),
    [sym_property_expression] = STATE(4099),
    [sym_cast_expression] = STATE(4099),
    [sym_delete_expression] = STATE(4099),
    [sym_throw_expression] = STATE(4099),
    [sym_assert_expression] = STATE(4099),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4099),
    [sym_new_expression] = STATE(4099),
    [sym_typeid_expression] = STATE(4099),
    [sym_is_expression] = STATE(4099),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4099),
    [sym_char_literal] = STATE(4099),
    [sym_array_literal] = STATE(4099),
    [sym_function_literal] = STATE(4099),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4099),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4065),
    [sym_false] = ACTIONS(4065),
    [sym_null] = ACTIONS(4065),
    [sym_super] = ACTIONS(4065),
    [sym_this] = ACTIONS(4065),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4067),
    [sym_float_literal] = ACTIONS(4067),
    [sym__string] = ACTIONS(3327),
  },
  [1271] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4108),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4108),
    [sym_ternary_expression] = STATE(4108),
    [sym_call_expression] = STATE(4108),
    [sym_primary_expression] = STATE(4108),
    [sym__primary_expr] = STATE(4108),
    [sym_index_expression] = STATE(4108),
    [sym_assignment_expression] = STATE(4108),
    [sym_binary_expression] = STATE(4108),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4108),
    [sym_unary_expression] = STATE(4108),
    [sym__unary_expr] = STATE(4108),
    [sym_property_expression] = STATE(4108),
    [sym_cast_expression] = STATE(4108),
    [sym_delete_expression] = STATE(4108),
    [sym_throw_expression] = STATE(4108),
    [sym_assert_expression] = STATE(4108),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4108),
    [sym_new_expression] = STATE(4108),
    [sym_typeid_expression] = STATE(4108),
    [sym_is_expression] = STATE(4108),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4108),
    [sym_char_literal] = STATE(4108),
    [sym_array_literal] = STATE(4108),
    [sym_function_literal] = STATE(4108),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4108),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4069),
    [sym_false] = ACTIONS(4069),
    [sym_null] = ACTIONS(4069),
    [sym_super] = ACTIONS(4069),
    [sym_this] = ACTIONS(4069),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4071),
    [sym_float_literal] = ACTIONS(4071),
    [sym__string] = ACTIONS(3327),
  },
  [1272] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3898),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3898),
    [sym_ternary_expression] = STATE(3898),
    [sym_call_expression] = STATE(3898),
    [sym_primary_expression] = STATE(3898),
    [sym__primary_expr] = STATE(3898),
    [sym_index_expression] = STATE(3898),
    [sym_assignment_expression] = STATE(3898),
    [sym_binary_expression] = STATE(3898),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3898),
    [sym_unary_expression] = STATE(3898),
    [sym__unary_expr] = STATE(3898),
    [sym_property_expression] = STATE(3898),
    [sym_cast_expression] = STATE(3898),
    [sym_delete_expression] = STATE(3898),
    [sym_throw_expression] = STATE(3898),
    [sym_assert_expression] = STATE(3898),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3898),
    [sym_new_expression] = STATE(3898),
    [sym_typeid_expression] = STATE(3898),
    [sym_is_expression] = STATE(3898),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3898),
    [sym_char_literal] = STATE(3898),
    [sym_array_literal] = STATE(3898),
    [sym_function_literal] = STATE(3898),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3898),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4073),
    [sym_false] = ACTIONS(4073),
    [sym_null] = ACTIONS(4073),
    [sym_super] = ACTIONS(4073),
    [sym_this] = ACTIONS(4073),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4075),
    [sym_float_literal] = ACTIONS(4075),
    [sym__string] = ACTIONS(233),
  },
  [1273] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3996),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(3996),
    [sym_ternary_expression] = STATE(3996),
    [sym_call_expression] = STATE(3996),
    [sym_primary_expression] = STATE(3996),
    [sym__primary_expr] = STATE(3996),
    [sym_index_expression] = STATE(3996),
    [sym_assignment_expression] = STATE(3996),
    [sym_binary_expression] = STATE(3996),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3996),
    [sym_unary_expression] = STATE(3996),
    [sym__unary_expr] = STATE(3996),
    [sym_property_expression] = STATE(3996),
    [sym_cast_expression] = STATE(3996),
    [sym_delete_expression] = STATE(3996),
    [sym_throw_expression] = STATE(3996),
    [sym_assert_expression] = STATE(3996),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3996),
    [sym_new_expression] = STATE(3996),
    [sym_typeid_expression] = STATE(3996),
    [sym_is_expression] = STATE(3996),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3996),
    [sym_char_literal] = STATE(3996),
    [sym_array_literal] = STATE(3996),
    [sym_function_literal] = STATE(3996),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3996),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4077),
    [sym_false] = ACTIONS(4077),
    [sym_null] = ACTIONS(4077),
    [sym_super] = ACTIONS(4077),
    [sym_this] = ACTIONS(4077),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4079),
    [sym_float_literal] = ACTIONS(4079),
    [sym__string] = ACTIONS(233),
  },
  [1274] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4117),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4117),
    [sym_ternary_expression] = STATE(4117),
    [sym_call_expression] = STATE(4117),
    [sym_primary_expression] = STATE(4117),
    [sym__primary_expr] = STATE(4117),
    [sym_index_expression] = STATE(4117),
    [sym_assignment_expression] = STATE(4117),
    [sym_binary_expression] = STATE(4117),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4117),
    [sym_unary_expression] = STATE(4117),
    [sym__unary_expr] = STATE(4117),
    [sym_property_expression] = STATE(4117),
    [sym_cast_expression] = STATE(4117),
    [sym_delete_expression] = STATE(4117),
    [sym_throw_expression] = STATE(4117),
    [sym_assert_expression] = STATE(4117),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4117),
    [sym_new_expression] = STATE(4117),
    [sym_typeid_expression] = STATE(4117),
    [sym_is_expression] = STATE(4117),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4117),
    [sym_char_literal] = STATE(4117),
    [sym_array_literal] = STATE(4117),
    [sym_function_literal] = STATE(4117),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4117),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4081),
    [sym_false] = ACTIONS(4081),
    [sym_null] = ACTIONS(4081),
    [sym_super] = ACTIONS(4081),
    [sym_this] = ACTIONS(4081),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4083),
    [sym_float_literal] = ACTIONS(4083),
    [sym__string] = ACTIONS(3327),
  },
  [1275] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3897),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3897),
    [sym_ternary_expression] = STATE(3897),
    [sym_call_expression] = STATE(3897),
    [sym_primary_expression] = STATE(3897),
    [sym__primary_expr] = STATE(3897),
    [sym_index_expression] = STATE(3897),
    [sym_assignment_expression] = STATE(3897),
    [sym_binary_expression] = STATE(3897),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3897),
    [sym_unary_expression] = STATE(3897),
    [sym__unary_expr] = STATE(3897),
    [sym_property_expression] = STATE(3897),
    [sym_cast_expression] = STATE(3897),
    [sym_delete_expression] = STATE(3897),
    [sym_throw_expression] = STATE(3897),
    [sym_assert_expression] = STATE(3897),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3897),
    [sym_new_expression] = STATE(3897),
    [sym_typeid_expression] = STATE(3897),
    [sym_is_expression] = STATE(3897),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3897),
    [sym_char_literal] = STATE(3897),
    [sym_array_literal] = STATE(3897),
    [sym_function_literal] = STATE(3897),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3897),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4085),
    [sym_false] = ACTIONS(4085),
    [sym_null] = ACTIONS(4085),
    [sym_super] = ACTIONS(4085),
    [sym_this] = ACTIONS(4085),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4087),
    [sym_float_literal] = ACTIONS(4087),
    [sym__string] = ACTIONS(233),
  },
  [1276] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3895),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3895),
    [sym_ternary_expression] = STATE(3895),
    [sym_call_expression] = STATE(3895),
    [sym_primary_expression] = STATE(3895),
    [sym__primary_expr] = STATE(3895),
    [sym_index_expression] = STATE(3895),
    [sym_assignment_expression] = STATE(3895),
    [sym_binary_expression] = STATE(3895),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3895),
    [sym_unary_expression] = STATE(3895),
    [sym__unary_expr] = STATE(3895),
    [sym_property_expression] = STATE(3895),
    [sym_cast_expression] = STATE(3895),
    [sym_delete_expression] = STATE(3895),
    [sym_throw_expression] = STATE(3895),
    [sym_assert_expression] = STATE(3895),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3895),
    [sym_new_expression] = STATE(3895),
    [sym_typeid_expression] = STATE(3895),
    [sym_is_expression] = STATE(3895),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3895),
    [sym_char_literal] = STATE(3895),
    [sym_array_literal] = STATE(3895),
    [sym_function_literal] = STATE(3895),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3895),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4089),
    [sym_false] = ACTIONS(4089),
    [sym_null] = ACTIONS(4089),
    [sym_super] = ACTIONS(4089),
    [sym_this] = ACTIONS(4089),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4091),
    [sym_float_literal] = ACTIONS(4091),
    [sym__string] = ACTIONS(233),
  },
  [1277] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3894),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3894),
    [sym_ternary_expression] = STATE(3894),
    [sym_call_expression] = STATE(3894),
    [sym_primary_expression] = STATE(3894),
    [sym__primary_expr] = STATE(3894),
    [sym_index_expression] = STATE(3894),
    [sym_assignment_expression] = STATE(3894),
    [sym_binary_expression] = STATE(3894),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3894),
    [sym_unary_expression] = STATE(3894),
    [sym__unary_expr] = STATE(3894),
    [sym_property_expression] = STATE(3894),
    [sym_cast_expression] = STATE(3894),
    [sym_delete_expression] = STATE(3894),
    [sym_throw_expression] = STATE(3894),
    [sym_assert_expression] = STATE(3894),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3894),
    [sym_new_expression] = STATE(3894),
    [sym_typeid_expression] = STATE(3894),
    [sym_is_expression] = STATE(3894),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3894),
    [sym_char_literal] = STATE(3894),
    [sym_array_literal] = STATE(3894),
    [sym_function_literal] = STATE(3894),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3894),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4093),
    [sym_false] = ACTIONS(4093),
    [sym_null] = ACTIONS(4093),
    [sym_super] = ACTIONS(4093),
    [sym_this] = ACTIONS(4093),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4095),
    [sym_float_literal] = ACTIONS(4095),
    [sym__string] = ACTIONS(233),
  },
  [1278] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3892),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3892),
    [sym_ternary_expression] = STATE(3892),
    [sym_call_expression] = STATE(3892),
    [sym_primary_expression] = STATE(3892),
    [sym__primary_expr] = STATE(3892),
    [sym_index_expression] = STATE(3892),
    [sym_assignment_expression] = STATE(3892),
    [sym_binary_expression] = STATE(3892),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3892),
    [sym_unary_expression] = STATE(3892),
    [sym__unary_expr] = STATE(3892),
    [sym_property_expression] = STATE(3892),
    [sym_cast_expression] = STATE(3892),
    [sym_delete_expression] = STATE(3892),
    [sym_throw_expression] = STATE(3892),
    [sym_assert_expression] = STATE(3892),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3892),
    [sym_new_expression] = STATE(3892),
    [sym_typeid_expression] = STATE(3892),
    [sym_is_expression] = STATE(3892),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3892),
    [sym_char_literal] = STATE(3892),
    [sym_array_literal] = STATE(3892),
    [sym_function_literal] = STATE(3892),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3892),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4097),
    [sym_false] = ACTIONS(4097),
    [sym_null] = ACTIONS(4097),
    [sym_super] = ACTIONS(4097),
    [sym_this] = ACTIONS(4097),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4099),
    [sym_float_literal] = ACTIONS(4099),
    [sym__string] = ACTIONS(233),
  },
  [1279] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4088),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4088),
    [sym_ternary_expression] = STATE(4088),
    [sym_call_expression] = STATE(4088),
    [sym_primary_expression] = STATE(4088),
    [sym__primary_expr] = STATE(4088),
    [sym_index_expression] = STATE(4088),
    [sym_assignment_expression] = STATE(4088),
    [sym_binary_expression] = STATE(4088),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4088),
    [sym_unary_expression] = STATE(4088),
    [sym__unary_expr] = STATE(4088),
    [sym_property_expression] = STATE(4088),
    [sym_cast_expression] = STATE(4088),
    [sym_delete_expression] = STATE(4088),
    [sym_throw_expression] = STATE(4088),
    [sym_assert_expression] = STATE(4088),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4088),
    [sym_new_expression] = STATE(4088),
    [sym_typeid_expression] = STATE(4088),
    [sym_is_expression] = STATE(4088),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4088),
    [sym_char_literal] = STATE(4088),
    [sym_array_literal] = STATE(4088),
    [sym_function_literal] = STATE(4088),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4088),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4101),
    [sym_false] = ACTIONS(4101),
    [sym_null] = ACTIONS(4101),
    [sym_super] = ACTIONS(4101),
    [sym_this] = ACTIONS(4101),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4103),
    [sym_float_literal] = ACTIONS(4103),
    [sym__string] = ACTIONS(233),
  },
  [1280] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4105),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4105),
    [sym_ternary_expression] = STATE(4105),
    [sym_call_expression] = STATE(4105),
    [sym_primary_expression] = STATE(4105),
    [sym__primary_expr] = STATE(4105),
    [sym_index_expression] = STATE(4105),
    [sym_assignment_expression] = STATE(4105),
    [sym_binary_expression] = STATE(4105),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4105),
    [sym_unary_expression] = STATE(4105),
    [sym__unary_expr] = STATE(4105),
    [sym_property_expression] = STATE(4105),
    [sym_cast_expression] = STATE(4105),
    [sym_delete_expression] = STATE(4105),
    [sym_throw_expression] = STATE(4105),
    [sym_assert_expression] = STATE(4105),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4105),
    [sym_new_expression] = STATE(4105),
    [sym_typeid_expression] = STATE(4105),
    [sym_is_expression] = STATE(4105),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4105),
    [sym_char_literal] = STATE(4105),
    [sym_array_literal] = STATE(4105),
    [sym_function_literal] = STATE(4105),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4105),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4105),
    [sym_false] = ACTIONS(4105),
    [sym_null] = ACTIONS(4105),
    [sym_super] = ACTIONS(4105),
    [sym_this] = ACTIONS(4105),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4107),
    [sym_float_literal] = ACTIONS(4107),
    [sym__string] = ACTIONS(3327),
  },
  [1281] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3875),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3875),
    [sym_ternary_expression] = STATE(3875),
    [sym_call_expression] = STATE(3875),
    [sym_primary_expression] = STATE(3875),
    [sym__primary_expr] = STATE(3875),
    [sym_index_expression] = STATE(3875),
    [sym_assignment_expression] = STATE(3875),
    [sym_binary_expression] = STATE(3875),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3875),
    [sym_unary_expression] = STATE(3875),
    [sym__unary_expr] = STATE(3875),
    [sym_property_expression] = STATE(3875),
    [sym_cast_expression] = STATE(3875),
    [sym_delete_expression] = STATE(3875),
    [sym_throw_expression] = STATE(3875),
    [sym_assert_expression] = STATE(3875),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3875),
    [sym_new_expression] = STATE(3875),
    [sym_typeid_expression] = STATE(3875),
    [sym_is_expression] = STATE(3875),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3875),
    [sym_char_literal] = STATE(3875),
    [sym_array_literal] = STATE(3875),
    [sym_function_literal] = STATE(3875),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3875),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4109),
    [sym_false] = ACTIONS(4109),
    [sym_null] = ACTIONS(4109),
    [sym_super] = ACTIONS(4109),
    [sym_this] = ACTIONS(4109),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4111),
    [sym_float_literal] = ACTIONS(4111),
    [sym__string] = ACTIONS(233),
  },
  [1282] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(4101),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym__expr] = STATE(4101),
    [sym_ternary_expression] = STATE(4101),
    [sym_call_expression] = STATE(4101),
    [sym_primary_expression] = STATE(4101),
    [sym__primary_expr] = STATE(4101),
    [sym_index_expression] = STATE(4101),
    [sym_assignment_expression] = STATE(4101),
    [sym_binary_expression] = STATE(4101),
    [sym_logical_or_expression] = STATE(3983),
    [sym_logical_and_expression] = STATE(3983),
    [sym_or_expression] = STATE(3983),
    [sym_xor_expression] = STATE(3983),
    [sym_and_expression] = STATE(3983),
    [sym_equal_expression] = STATE(3983),
    [sym_rel_expression] = STATE(3983),
    [sym_identity_expression] = STATE(3983),
    [sym_add_expression] = STATE(3983),
    [sym_mul_expression] = STATE(3983),
    [sym_shift_expression] = STATE(3983),
    [sym_power_expression] = STATE(3983),
    [sym_postfix_expression] = STATE(4101),
    [sym_unary_expression] = STATE(4101),
    [sym__unary_expr] = STATE(4101),
    [sym_property_expression] = STATE(4101),
    [sym_cast_expression] = STATE(4101),
    [sym_delete_expression] = STATE(4101),
    [sym_throw_expression] = STATE(4101),
    [sym_assert_expression] = STATE(4101),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(4101),
    [sym_new_expression] = STATE(4101),
    [sym_typeid_expression] = STATE(4101),
    [sym_is_expression] = STATE(4101),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(4101),
    [sym_char_literal] = STATE(4101),
    [sym_array_literal] = STATE(4101),
    [sym_function_literal] = STATE(4101),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(4101),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4113),
    [sym_false] = ACTIONS(4113),
    [sym_null] = ACTIONS(4113),
    [sym_super] = ACTIONS(4113),
    [sym_this] = ACTIONS(4113),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4115),
    [sym_float_literal] = ACTIONS(4115),
    [sym__string] = ACTIONS(3327),
  },
  [1283] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3891),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3891),
    [sym_ternary_expression] = STATE(3891),
    [sym_call_expression] = STATE(3891),
    [sym_primary_expression] = STATE(3891),
    [sym__primary_expr] = STATE(3891),
    [sym_index_expression] = STATE(3891),
    [sym_assignment_expression] = STATE(3891),
    [sym_binary_expression] = STATE(3891),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3891),
    [sym_unary_expression] = STATE(3891),
    [sym__unary_expr] = STATE(3891),
    [sym_property_expression] = STATE(3891),
    [sym_cast_expression] = STATE(3891),
    [sym_delete_expression] = STATE(3891),
    [sym_throw_expression] = STATE(3891),
    [sym_assert_expression] = STATE(3891),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3891),
    [sym_new_expression] = STATE(3891),
    [sym_typeid_expression] = STATE(3891),
    [sym_is_expression] = STATE(3891),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3891),
    [sym_char_literal] = STATE(3891),
    [sym_array_literal] = STATE(3891),
    [sym_function_literal] = STATE(3891),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3891),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4117),
    [sym_false] = ACTIONS(4117),
    [sym_null] = ACTIONS(4117),
    [sym_super] = ACTIONS(4117),
    [sym_this] = ACTIONS(4117),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4119),
    [sym_float_literal] = ACTIONS(4119),
    [sym__string] = ACTIONS(233),
  },
  [1284] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3889),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3889),
    [sym_ternary_expression] = STATE(3889),
    [sym_call_expression] = STATE(3889),
    [sym_primary_expression] = STATE(3889),
    [sym__primary_expr] = STATE(3889),
    [sym_index_expression] = STATE(3889),
    [sym_assignment_expression] = STATE(3889),
    [sym_binary_expression] = STATE(3889),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3889),
    [sym_unary_expression] = STATE(3889),
    [sym__unary_expr] = STATE(3889),
    [sym_property_expression] = STATE(3889),
    [sym_cast_expression] = STATE(3889),
    [sym_delete_expression] = STATE(3889),
    [sym_throw_expression] = STATE(3889),
    [sym_assert_expression] = STATE(3889),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3889),
    [sym_new_expression] = STATE(3889),
    [sym_typeid_expression] = STATE(3889),
    [sym_is_expression] = STATE(3889),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3889),
    [sym_char_literal] = STATE(3889),
    [sym_array_literal] = STATE(3889),
    [sym_function_literal] = STATE(3889),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3889),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4121),
    [sym_false] = ACTIONS(4121),
    [sym_null] = ACTIONS(4121),
    [sym_super] = ACTIONS(4121),
    [sym_this] = ACTIONS(4121),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4123),
    [sym_float_literal] = ACTIONS(4123),
    [sym__string] = ACTIONS(233),
  },
  [1285] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4091),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4091),
    [sym_ternary_expression] = STATE(4091),
    [sym_call_expression] = STATE(4091),
    [sym_primary_expression] = STATE(4091),
    [sym__primary_expr] = STATE(4091),
    [sym_index_expression] = STATE(4091),
    [sym_assignment_expression] = STATE(4091),
    [sym_binary_expression] = STATE(4091),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4091),
    [sym_unary_expression] = STATE(4091),
    [sym__unary_expr] = STATE(4091),
    [sym_property_expression] = STATE(4091),
    [sym_cast_expression] = STATE(4091),
    [sym_delete_expression] = STATE(4091),
    [sym_throw_expression] = STATE(4091),
    [sym_assert_expression] = STATE(4091),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4091),
    [sym_new_expression] = STATE(4091),
    [sym_typeid_expression] = STATE(4091),
    [sym_is_expression] = STATE(4091),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4091),
    [sym_char_literal] = STATE(4091),
    [sym_array_literal] = STATE(4091),
    [sym_function_literal] = STATE(4091),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4091),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4125),
    [sym_false] = ACTIONS(4125),
    [sym_null] = ACTIONS(4125),
    [sym_super] = ACTIONS(4125),
    [sym_this] = ACTIONS(4125),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4127),
    [sym_float_literal] = ACTIONS(4127),
    [sym__string] = ACTIONS(233),
  },
  [1286] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3887),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3887),
    [sym_ternary_expression] = STATE(3887),
    [sym_call_expression] = STATE(3887),
    [sym_primary_expression] = STATE(3887),
    [sym__primary_expr] = STATE(3887),
    [sym_index_expression] = STATE(3887),
    [sym_assignment_expression] = STATE(3887),
    [sym_binary_expression] = STATE(3887),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3887),
    [sym_unary_expression] = STATE(3887),
    [sym__unary_expr] = STATE(3887),
    [sym_property_expression] = STATE(3887),
    [sym_cast_expression] = STATE(3887),
    [sym_delete_expression] = STATE(3887),
    [sym_throw_expression] = STATE(3887),
    [sym_assert_expression] = STATE(3887),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3887),
    [sym_new_expression] = STATE(3887),
    [sym_typeid_expression] = STATE(3887),
    [sym_is_expression] = STATE(3887),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3887),
    [sym_char_literal] = STATE(3887),
    [sym_array_literal] = STATE(3887),
    [sym_function_literal] = STATE(3887),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3887),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4129),
    [sym_false] = ACTIONS(4129),
    [sym_null] = ACTIONS(4129),
    [sym_super] = ACTIONS(4129),
    [sym_this] = ACTIONS(4129),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4131),
    [sym_float_literal] = ACTIONS(4131),
    [sym__string] = ACTIONS(233),
  },
  [1287] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(4093),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym__expr] = STATE(4093),
    [sym_ternary_expression] = STATE(4093),
    [sym_call_expression] = STATE(4093),
    [sym_primary_expression] = STATE(4093),
    [sym__primary_expr] = STATE(4093),
    [sym_index_expression] = STATE(4093),
    [sym_assignment_expression] = STATE(4093),
    [sym_binary_expression] = STATE(4093),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(4093),
    [sym_unary_expression] = STATE(4093),
    [sym__unary_expr] = STATE(4093),
    [sym_property_expression] = STATE(4093),
    [sym_cast_expression] = STATE(4093),
    [sym_delete_expression] = STATE(4093),
    [sym_throw_expression] = STATE(4093),
    [sym_assert_expression] = STATE(4093),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(4093),
    [sym_new_expression] = STATE(4093),
    [sym_typeid_expression] = STATE(4093),
    [sym_is_expression] = STATE(4093),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(4093),
    [sym_char_literal] = STATE(4093),
    [sym_array_literal] = STATE(4093),
    [sym_function_literal] = STATE(4093),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(4093),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4133),
    [sym_false] = ACTIONS(4133),
    [sym_null] = ACTIONS(4133),
    [sym_super] = ACTIONS(4133),
    [sym_this] = ACTIONS(4133),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4135),
    [sym_float_literal] = ACTIONS(4135),
    [sym__string] = ACTIONS(233),
  },
  [1288] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3885),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3885),
    [sym_ternary_expression] = STATE(3885),
    [sym_call_expression] = STATE(3885),
    [sym_primary_expression] = STATE(3885),
    [sym__primary_expr] = STATE(3885),
    [sym_index_expression] = STATE(3885),
    [sym_assignment_expression] = STATE(3885),
    [sym_binary_expression] = STATE(3885),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3885),
    [sym_unary_expression] = STATE(3885),
    [sym__unary_expr] = STATE(3885),
    [sym_property_expression] = STATE(3885),
    [sym_cast_expression] = STATE(3885),
    [sym_delete_expression] = STATE(3885),
    [sym_throw_expression] = STATE(3885),
    [sym_assert_expression] = STATE(3885),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3885),
    [sym_new_expression] = STATE(3885),
    [sym_typeid_expression] = STATE(3885),
    [sym_is_expression] = STATE(3885),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3885),
    [sym_char_literal] = STATE(3885),
    [sym_array_literal] = STATE(3885),
    [sym_function_literal] = STATE(3885),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3885),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4137),
    [sym_false] = ACTIONS(4137),
    [sym_null] = ACTIONS(4137),
    [sym_super] = ACTIONS(4137),
    [sym_this] = ACTIONS(4137),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4139),
    [sym_float_literal] = ACTIONS(4139),
    [sym__string] = ACTIONS(233),
  },
  [1289] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3883),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3883),
    [sym_ternary_expression] = STATE(3883),
    [sym_call_expression] = STATE(3883),
    [sym_primary_expression] = STATE(3883),
    [sym__primary_expr] = STATE(3883),
    [sym_index_expression] = STATE(3883),
    [sym_assignment_expression] = STATE(3883),
    [sym_binary_expression] = STATE(3883),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3883),
    [sym_unary_expression] = STATE(3883),
    [sym__unary_expr] = STATE(3883),
    [sym_property_expression] = STATE(3883),
    [sym_cast_expression] = STATE(3883),
    [sym_delete_expression] = STATE(3883),
    [sym_throw_expression] = STATE(3883),
    [sym_assert_expression] = STATE(3883),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3883),
    [sym_new_expression] = STATE(3883),
    [sym_typeid_expression] = STATE(3883),
    [sym_is_expression] = STATE(3883),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3883),
    [sym_char_literal] = STATE(3883),
    [sym_array_literal] = STATE(3883),
    [sym_function_literal] = STATE(3883),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3883),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4141),
    [sym_false] = ACTIONS(4141),
    [sym_null] = ACTIONS(4141),
    [sym_super] = ACTIONS(4141),
    [sym_this] = ACTIONS(4141),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4143),
    [sym_float_literal] = ACTIONS(4143),
    [sym__string] = ACTIONS(233),
  },
  [1290] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3863),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym__expr] = STATE(3863),
    [sym_ternary_expression] = STATE(3863),
    [sym_call_expression] = STATE(3863),
    [sym_primary_expression] = STATE(3863),
    [sym__primary_expr] = STATE(3863),
    [sym_index_expression] = STATE(3863),
    [sym_assignment_expression] = STATE(3863),
    [sym_binary_expression] = STATE(3863),
    [sym_logical_or_expression] = STATE(3807),
    [sym_logical_and_expression] = STATE(3807),
    [sym_or_expression] = STATE(3807),
    [sym_xor_expression] = STATE(3807),
    [sym_and_expression] = STATE(3807),
    [sym_equal_expression] = STATE(3807),
    [sym_rel_expression] = STATE(3807),
    [sym_identity_expression] = STATE(3807),
    [sym_add_expression] = STATE(3807),
    [sym_mul_expression] = STATE(3807),
    [sym_shift_expression] = STATE(3807),
    [sym_power_expression] = STATE(3807),
    [sym_postfix_expression] = STATE(3863),
    [sym_unary_expression] = STATE(3863),
    [sym__unary_expr] = STATE(3863),
    [sym_property_expression] = STATE(3863),
    [sym_cast_expression] = STATE(3863),
    [sym_delete_expression] = STATE(3863),
    [sym_throw_expression] = STATE(3863),
    [sym_assert_expression] = STATE(3863),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3863),
    [sym_new_expression] = STATE(3863),
    [sym_typeid_expression] = STATE(3863),
    [sym_is_expression] = STATE(3863),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3863),
    [sym_char_literal] = STATE(3863),
    [sym_array_literal] = STATE(3863),
    [sym_function_literal] = STATE(3863),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3863),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4145),
    [sym_false] = ACTIONS(4145),
    [sym_null] = ACTIONS(4145),
    [sym_super] = ACTIONS(4145),
    [sym_this] = ACTIONS(4145),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4147),
    [sym_float_literal] = ACTIONS(4147),
    [sym__string] = ACTIONS(233),
  },
  [1291] = {
    [sym_catch_statement] = STATE(1298),
    [sym_finally_statement] = STATE(1537),
    [aux_sym_try_statement_repeat1] = STATE(1298),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_RBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [anon_sym_AT] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_abstract] = ACTIONS(4149),
    [sym_alias] = ACTIONS(4149),
    [sym_align] = ACTIONS(4149),
    [sym_asm] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_break] = ACTIONS(4149),
    [sym_case] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(4153),
    [sym_class] = ACTIONS(4149),
    [sym_const] = ACTIONS(4149),
    [sym_continue] = ACTIONS(4149),
    [sym_debug] = ACTIONS(4149),
    [sym_default] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_deprecated] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_else] = ACTIONS(4149),
    [sym_enum] = ACTIONS(4149),
    [sym_export] = ACTIONS(4149),
    [sym_extern] = ACTIONS(4149),
    [sym_final] = ACTIONS(4149),
    [sym_finally] = ACTIONS(4155),
    [sym_for] = ACTIONS(4149),
    [sym_foreach] = ACTIONS(4149),
    [sym_foreach_reverse] = ACTIONS(4149),
    [sym_function] = ACTIONS(4149),
    [sym_goto] = ACTIONS(4149),
    [sym_if] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_interface] = ACTIONS(4149),
    [sym_invariant] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_nothrow] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_override] = ACTIONS(4149),
    [sym_package] = ACTIONS(4149),
    [sym_pragma] = ACTIONS(4149),
    [sym_private] = ACTIONS(4149),
    [sym_protected] = ACTIONS(4149),
    [sym_public] = ACTIONS(4149),
    [sym_pure] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_return] = ACTIONS(4149),
    [sym_scope] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_static] = ACTIONS(4149),
    [sym_struct] = ACTIONS(4149),
    [sym_switch] = ACTIONS(4149),
    [sym_synchronized] = ACTIONS(4149),
    [sym_template] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_try] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_union] = ACTIONS(4149),
    [sym_unittest] = ACTIONS(4149),
    [sym_version] = ACTIONS(4149),
    [sym_while] = ACTIONS(4149),
    [sym_with] = ACTIONS(4149),
    [sym_gshared] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [1292] = {
    [sym_catch_statement] = STATE(1298),
    [sym_finally_statement] = STATE(1730),
    [aux_sym_try_statement_repeat1] = STATE(1298),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_RBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [anon_sym_AT] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_abstract] = ACTIONS(4149),
    [sym_alias] = ACTIONS(4149),
    [sym_align] = ACTIONS(4149),
    [sym_asm] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_break] = ACTIONS(4149),
    [sym_case] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(4153),
    [sym_class] = ACTIONS(4149),
    [sym_const] = ACTIONS(4149),
    [sym_continue] = ACTIONS(4149),
    [sym_debug] = ACTIONS(4149),
    [sym_default] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_deprecated] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_else] = ACTIONS(4149),
    [sym_enum] = ACTIONS(4149),
    [sym_export] = ACTIONS(4149),
    [sym_extern] = ACTIONS(4149),
    [sym_final] = ACTIONS(4149),
    [sym_finally] = ACTIONS(4157),
    [sym_for] = ACTIONS(4149),
    [sym_foreach] = ACTIONS(4149),
    [sym_foreach_reverse] = ACTIONS(4149),
    [sym_function] = ACTIONS(4149),
    [sym_goto] = ACTIONS(4149),
    [sym_if] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_interface] = ACTIONS(4149),
    [sym_invariant] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_nothrow] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_override] = ACTIONS(4149),
    [sym_package] = ACTIONS(4149),
    [sym_pragma] = ACTIONS(4149),
    [sym_private] = ACTIONS(4149),
    [sym_protected] = ACTIONS(4149),
    [sym_public] = ACTIONS(4149),
    [sym_pure] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_return] = ACTIONS(4149),
    [sym_scope] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_static] = ACTIONS(4149),
    [sym_struct] = ACTIONS(4149),
    [sym_switch] = ACTIONS(4149),
    [sym_synchronized] = ACTIONS(4149),
    [sym_template] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_try] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_union] = ACTIONS(4149),
    [sym_unittest] = ACTIONS(4149),
    [sym_version] = ACTIONS(4149),
    [sym_while] = ACTIONS(4149),
    [sym_with] = ACTIONS(4149),
    [sym_gshared] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [1293] = {
    [sym_catch_statement] = STATE(1292),
    [sym_finally_statement] = STATE(1599),
    [aux_sym_try_statement_repeat1] = STATE(1292),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_RBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [anon_sym_AT] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_abstract] = ACTIONS(4159),
    [sym_alias] = ACTIONS(4159),
    [sym_align] = ACTIONS(4159),
    [sym_asm] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_break] = ACTIONS(4159),
    [sym_case] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(4153),
    [sym_class] = ACTIONS(4159),
    [sym_const] = ACTIONS(4159),
    [sym_continue] = ACTIONS(4159),
    [sym_debug] = ACTIONS(4159),
    [sym_default] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_deprecated] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_else] = ACTIONS(4159),
    [sym_enum] = ACTIONS(4159),
    [sym_export] = ACTIONS(4159),
    [sym_extern] = ACTIONS(4159),
    [sym_final] = ACTIONS(4159),
    [sym_finally] = ACTIONS(4157),
    [sym_for] = ACTIONS(4159),
    [sym_foreach] = ACTIONS(4159),
    [sym_foreach_reverse] = ACTIONS(4159),
    [sym_function] = ACTIONS(4159),
    [sym_goto] = ACTIONS(4159),
    [sym_if] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_interface] = ACTIONS(4159),
    [sym_invariant] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_nothrow] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_override] = ACTIONS(4159),
    [sym_package] = ACTIONS(4159),
    [sym_pragma] = ACTIONS(4159),
    [sym_private] = ACTIONS(4159),
    [sym_protected] = ACTIONS(4159),
    [sym_public] = ACTIONS(4159),
    [sym_pure] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_return] = ACTIONS(4159),
    [sym_scope] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_static] = ACTIONS(4159),
    [sym_struct] = ACTIONS(4159),
    [sym_switch] = ACTIONS(4159),
    [sym_synchronized] = ACTIONS(4159),
    [sym_template] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_try] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_union] = ACTIONS(4159),
    [sym_unittest] = ACTIONS(4159),
    [sym_version] = ACTIONS(4159),
    [sym_while] = ACTIONS(4159),
    [sym_with] = ACTIONS(4159),
    [sym_gshared] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [1294] = {
    [sym_catch_statement] = STATE(1291),
    [sym_finally_statement] = STATE(1442),
    [aux_sym_try_statement_repeat1] = STATE(1291),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_RBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [anon_sym_AT] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_abstract] = ACTIONS(4159),
    [sym_alias] = ACTIONS(4159),
    [sym_align] = ACTIONS(4159),
    [sym_asm] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_break] = ACTIONS(4159),
    [sym_case] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(4153),
    [sym_class] = ACTIONS(4159),
    [sym_const] = ACTIONS(4159),
    [sym_continue] = ACTIONS(4159),
    [sym_debug] = ACTIONS(4159),
    [sym_default] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_deprecated] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_else] = ACTIONS(4159),
    [sym_enum] = ACTIONS(4159),
    [sym_export] = ACTIONS(4159),
    [sym_extern] = ACTIONS(4159),
    [sym_final] = ACTIONS(4159),
    [sym_finally] = ACTIONS(4155),
    [sym_for] = ACTIONS(4159),
    [sym_foreach] = ACTIONS(4159),
    [sym_foreach_reverse] = ACTIONS(4159),
    [sym_function] = ACTIONS(4159),
    [sym_goto] = ACTIONS(4159),
    [sym_if] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_interface] = ACTIONS(4159),
    [sym_invariant] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_nothrow] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_override] = ACTIONS(4159),
    [sym_package] = ACTIONS(4159),
    [sym_pragma] = ACTIONS(4159),
    [sym_private] = ACTIONS(4159),
    [sym_protected] = ACTIONS(4159),
    [sym_public] = ACTIONS(4159),
    [sym_pure] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_return] = ACTIONS(4159),
    [sym_scope] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_static] = ACTIONS(4159),
    [sym_struct] = ACTIONS(4159),
    [sym_switch] = ACTIONS(4159),
    [sym_synchronized] = ACTIONS(4159),
    [sym_template] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_try] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_union] = ACTIONS(4159),
    [sym_unittest] = ACTIONS(4159),
    [sym_version] = ACTIONS(4159),
    [sym_while] = ACTIONS(4159),
    [sym_with] = ACTIONS(4159),
    [sym_gshared] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [1295] = {
    [sym_catch_statement] = STATE(1297),
    [sym_finally_statement] = STATE(1442),
    [aux_sym_try_statement_repeat1] = STATE(1297),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_RBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [anon_sym_AT] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_abstract] = ACTIONS(4159),
    [sym_alias] = ACTIONS(4159),
    [sym_align] = ACTIONS(4159),
    [sym_asm] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_break] = ACTIONS(4159),
    [sym_case] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(4163),
    [sym_class] = ACTIONS(4159),
    [sym_const] = ACTIONS(4159),
    [sym_continue] = ACTIONS(4159),
    [sym_debug] = ACTIONS(4159),
    [sym_default] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_deprecated] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_enum] = ACTIONS(4159),
    [sym_export] = ACTIONS(4159),
    [sym_extern] = ACTIONS(4159),
    [sym_final] = ACTIONS(4159),
    [sym_finally] = ACTIONS(4165),
    [sym_for] = ACTIONS(4159),
    [sym_foreach] = ACTIONS(4159),
    [sym_foreach_reverse] = ACTIONS(4159),
    [sym_function] = ACTIONS(4159),
    [sym_goto] = ACTIONS(4159),
    [sym_if] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_interface] = ACTIONS(4159),
    [sym_invariant] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_nothrow] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_override] = ACTIONS(4159),
    [sym_package] = ACTIONS(4159),
    [sym_pragma] = ACTIONS(4159),
    [sym_private] = ACTIONS(4159),
    [sym_protected] = ACTIONS(4159),
    [sym_public] = ACTIONS(4159),
    [sym_pure] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_return] = ACTIONS(4159),
    [sym_scope] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_static] = ACTIONS(4159),
    [sym_struct] = ACTIONS(4159),
    [sym_switch] = ACTIONS(4159),
    [sym_synchronized] = ACTIONS(4159),
    [sym_template] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_try] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_union] = ACTIONS(4159),
    [sym_unittest] = ACTIONS(4159),
    [sym_version] = ACTIONS(4159),
    [sym_while] = ACTIONS(4159),
    [sym_with] = ACTIONS(4159),
    [sym_gshared] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [1296] = {
    [sym_catch_statement] = STATE(1299),
    [sym_finally_statement] = STATE(1599),
    [aux_sym_try_statement_repeat1] = STATE(1299),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_RBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [anon_sym_AT] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_abstract] = ACTIONS(4159),
    [sym_alias] = ACTIONS(4159),
    [sym_align] = ACTIONS(4159),
    [sym_asm] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_break] = ACTIONS(4159),
    [sym_case] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(4163),
    [sym_class] = ACTIONS(4159),
    [sym_const] = ACTIONS(4159),
    [sym_continue] = ACTIONS(4159),
    [sym_debug] = ACTIONS(4159),
    [sym_default] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_deprecated] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_enum] = ACTIONS(4159),
    [sym_export] = ACTIONS(4159),
    [sym_extern] = ACTIONS(4159),
    [sym_final] = ACTIONS(4159),
    [sym_finally] = ACTIONS(4167),
    [sym_for] = ACTIONS(4159),
    [sym_foreach] = ACTIONS(4159),
    [sym_foreach_reverse] = ACTIONS(4159),
    [sym_function] = ACTIONS(4159),
    [sym_goto] = ACTIONS(4159),
    [sym_if] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_interface] = ACTIONS(4159),
    [sym_invariant] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_nothrow] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_override] = ACTIONS(4159),
    [sym_package] = ACTIONS(4159),
    [sym_pragma] = ACTIONS(4159),
    [sym_private] = ACTIONS(4159),
    [sym_protected] = ACTIONS(4159),
    [sym_public] = ACTIONS(4159),
    [sym_pure] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_return] = ACTIONS(4159),
    [sym_scope] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_static] = ACTIONS(4159),
    [sym_struct] = ACTIONS(4159),
    [sym_switch] = ACTIONS(4159),
    [sym_synchronized] = ACTIONS(4159),
    [sym_template] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_try] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_union] = ACTIONS(4159),
    [sym_unittest] = ACTIONS(4159),
    [sym_version] = ACTIONS(4159),
    [sym_while] = ACTIONS(4159),
    [sym_with] = ACTIONS(4159),
    [sym_gshared] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [1297] = {
    [sym_catch_statement] = STATE(1312),
    [sym_finally_statement] = STATE(1537),
    [aux_sym_try_statement_repeat1] = STATE(1312),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_RBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [anon_sym_AT] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_abstract] = ACTIONS(4149),
    [sym_alias] = ACTIONS(4149),
    [sym_align] = ACTIONS(4149),
    [sym_asm] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_break] = ACTIONS(4149),
    [sym_case] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(4163),
    [sym_class] = ACTIONS(4149),
    [sym_const] = ACTIONS(4149),
    [sym_continue] = ACTIONS(4149),
    [sym_debug] = ACTIONS(4149),
    [sym_default] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_deprecated] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_enum] = ACTIONS(4149),
    [sym_export] = ACTIONS(4149),
    [sym_extern] = ACTIONS(4149),
    [sym_final] = ACTIONS(4149),
    [sym_finally] = ACTIONS(4165),
    [sym_for] = ACTIONS(4149),
    [sym_foreach] = ACTIONS(4149),
    [sym_foreach_reverse] = ACTIONS(4149),
    [sym_function] = ACTIONS(4149),
    [sym_goto] = ACTIONS(4149),
    [sym_if] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_interface] = ACTIONS(4149),
    [sym_invariant] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_nothrow] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_override] = ACTIONS(4149),
    [sym_package] = ACTIONS(4149),
    [sym_pragma] = ACTIONS(4149),
    [sym_private] = ACTIONS(4149),
    [sym_protected] = ACTIONS(4149),
    [sym_public] = ACTIONS(4149),
    [sym_pure] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_return] = ACTIONS(4149),
    [sym_scope] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_static] = ACTIONS(4149),
    [sym_struct] = ACTIONS(4149),
    [sym_switch] = ACTIONS(4149),
    [sym_synchronized] = ACTIONS(4149),
    [sym_template] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_try] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_union] = ACTIONS(4149),
    [sym_unittest] = ACTIONS(4149),
    [sym_version] = ACTIONS(4149),
    [sym_while] = ACTIONS(4149),
    [sym_with] = ACTIONS(4149),
    [sym_gshared] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [1298] = {
    [sym_catch_statement] = STATE(1298),
    [aux_sym_try_statement_repeat1] = STATE(1298),
    [sym_identifier] = ACTIONS(4169),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4171),
    [anon_sym_RBRACE] = ACTIONS(4171),
    [anon_sym_LBRACE] = ACTIONS(4171),
    [anon_sym_DOT] = ACTIONS(4171),
    [anon_sym_AMP] = ACTIONS(4171),
    [anon_sym_DASH] = ACTIONS(4169),
    [anon_sym_DASH_DASH] = ACTIONS(4171),
    [anon_sym_PLUS] = ACTIONS(4169),
    [anon_sym_PLUS_PLUS] = ACTIONS(4171),
    [anon_sym_BANG] = ACTIONS(4171),
    [anon_sym_LPAREN] = ACTIONS(4171),
    [anon_sym_RPAREN] = ACTIONS(4171),
    [anon_sym_LBRACK] = ACTIONS(4171),
    [anon_sym_SEMI] = ACTIONS(4171),
    [anon_sym_DOLLAR] = ACTIONS(4171),
    [anon_sym_STAR] = ACTIONS(4171),
    [anon_sym_TILDE] = ACTIONS(4171),
    [anon_sym_AT] = ACTIONS(4171),
    [sym_bool] = ACTIONS(4169),
    [sym_byte] = ACTIONS(4169),
    [sym_ubyte] = ACTIONS(4169),
    [sym_char] = ACTIONS(4169),
    [sym_short] = ACTIONS(4169),
    [sym_ushort] = ACTIONS(4169),
    [sym_int] = ACTIONS(4169),
    [sym_uint] = ACTIONS(4169),
    [sym_long] = ACTIONS(4169),
    [sym_ulong] = ACTIONS(4169),
    [sym_cent] = ACTIONS(4169),
    [sym_ucent] = ACTIONS(4169),
    [sym_wchar] = ACTIONS(4169),
    [sym_dchar] = ACTIONS(4169),
    [sym_float] = ACTIONS(4169),
    [sym_double] = ACTIONS(4169),
    [sym_real] = ACTIONS(4169),
    [sym_ifloat] = ACTIONS(4169),
    [sym_idouble] = ACTIONS(4169),
    [sym_ireal] = ACTIONS(4169),
    [sym_cfloat] = ACTIONS(4169),
    [sym_cdouble] = ACTIONS(4169),
    [sym_creal] = ACTIONS(4169),
    [sym_size_t] = ACTIONS(4169),
    [sym_ptrdiff_t] = ACTIONS(4169),
    [sym_string] = ACTIONS(4169),
    [sym_cstring] = ACTIONS(4169),
    [sym_dstring] = ACTIONS(4169),
    [sym_wstring] = ACTIONS(4169),
    [sym_noreturn] = ACTIONS(4169),
    [sym_true] = ACTIONS(4169),
    [sym_false] = ACTIONS(4169),
    [sym_null] = ACTIONS(4169),
    [sym_super] = ACTIONS(4169),
    [sym_this] = ACTIONS(4169),
    [sym_abstract] = ACTIONS(4169),
    [sym_alias] = ACTIONS(4169),
    [sym_align] = ACTIONS(4169),
    [sym_asm] = ACTIONS(4169),
    [sym_assert] = ACTIONS(4169),
    [sym_auto] = ACTIONS(4169),
    [sym_break] = ACTIONS(4169),
    [sym_case] = ACTIONS(4169),
    [sym_cast] = ACTIONS(4169),
    [sym_catch] = ACTIONS(4173),
    [sym_class] = ACTIONS(4169),
    [sym_const] = ACTIONS(4169),
    [sym_continue] = ACTIONS(4169),
    [sym_debug] = ACTIONS(4169),
    [sym_default] = ACTIONS(4169),
    [sym_delegate] = ACTIONS(4169),
    [sym_delete] = ACTIONS(4169),
    [sym_deprecated] = ACTIONS(4169),
    [sym_do] = ACTIONS(4169),
    [sym_else] = ACTIONS(4169),
    [sym_enum] = ACTIONS(4169),
    [sym_export] = ACTIONS(4169),
    [sym_extern] = ACTIONS(4169),
    [sym_final] = ACTIONS(4169),
    [sym_finally] = ACTIONS(4169),
    [sym_for] = ACTIONS(4169),
    [sym_foreach] = ACTIONS(4169),
    [sym_foreach_reverse] = ACTIONS(4169),
    [sym_function] = ACTIONS(4169),
    [sym_goto] = ACTIONS(4169),
    [sym_if] = ACTIONS(4169),
    [sym_immutable] = ACTIONS(4169),
    [sym_import] = ACTIONS(4169),
    [sym_in] = ACTIONS(4169),
    [sym_inout] = ACTIONS(4169),
    [sym_interface] = ACTIONS(4169),
    [sym_invariant] = ACTIONS(4169),
    [sym_is] = ACTIONS(4169),
    [sym_mixin] = ACTIONS(4169),
    [sym_new] = ACTIONS(4169),
    [sym_nothrow] = ACTIONS(4169),
    [sym_out] = ACTIONS(4169),
    [sym_override] = ACTIONS(4169),
    [sym_package] = ACTIONS(4169),
    [sym_pragma] = ACTIONS(4169),
    [sym_private] = ACTIONS(4169),
    [sym_protected] = ACTIONS(4169),
    [sym_public] = ACTIONS(4169),
    [sym_pure] = ACTIONS(4169),
    [sym_ref] = ACTIONS(4169),
    [sym_return] = ACTIONS(4169),
    [sym_scope] = ACTIONS(4169),
    [sym_shared] = ACTIONS(4169),
    [sym_static] = ACTIONS(4169),
    [sym_struct] = ACTIONS(4169),
    [sym_switch] = ACTIONS(4169),
    [sym_synchronized] = ACTIONS(4169),
    [sym_template] = ACTIONS(4169),
    [sym_throw] = ACTIONS(4169),
    [sym_try] = ACTIONS(4169),
    [sym_typeid] = ACTIONS(4169),
    [sym_typeof] = ACTIONS(4169),
    [sym_union] = ACTIONS(4169),
    [sym_unittest] = ACTIONS(4169),
    [sym_version] = ACTIONS(4169),
    [sym_while] = ACTIONS(4169),
    [sym_with] = ACTIONS(4169),
    [sym_gshared] = ACTIONS(4169),
    [sym_traits] = ACTIONS(4169),
    [sym_vector] = ACTIONS(4169),
    [sym_void] = ACTIONS(4169),
    [anon_sym_BQUOTE] = ACTIONS(4171),
    [anon_sym_r_DQUOTE] = ACTIONS(4171),
    [anon_sym_x_DQUOTE] = ACTIONS(4171),
    [anon_sym_DQUOTE] = ACTIONS(4171),
    [anon_sym_i_BQUOTE] = ACTIONS(4171),
    [anon_sym_i_DQUOTE] = ACTIONS(4171),
    [anon_sym_iq_LBRACE] = ACTIONS(4171),
    [aux_sym_char_literal_token1] = ACTIONS(4171),
    [anon_sym_SQUOTE] = ACTIONS(4169),
    [anon_sym___DATE__] = ACTIONS(4169),
    [anon_sym___FILE__] = ACTIONS(4169),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4169),
    [anon_sym___FUNCTION__] = ACTIONS(4169),
    [anon_sym___LINE__] = ACTIONS(4169),
    [anon_sym___MODULE__] = ACTIONS(4169),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4169),
    [anon_sym___TIME__] = ACTIONS(4169),
    [anon_sym___TIMESTAMP__] = ACTIONS(4169),
    [anon_sym___VENDOR__] = ACTIONS(4169),
    [anon_sym___VERSION__] = ACTIONS(4169),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4171),
    [sym_float_literal] = ACTIONS(4171),
    [sym__string] = ACTIONS(4171),
  },
  [1299] = {
    [sym_catch_statement] = STATE(1312),
    [sym_finally_statement] = STATE(1730),
    [aux_sym_try_statement_repeat1] = STATE(1312),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_RBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [anon_sym_AT] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_abstract] = ACTIONS(4149),
    [sym_alias] = ACTIONS(4149),
    [sym_align] = ACTIONS(4149),
    [sym_asm] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_break] = ACTIONS(4149),
    [sym_case] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(4163),
    [sym_class] = ACTIONS(4149),
    [sym_const] = ACTIONS(4149),
    [sym_continue] = ACTIONS(4149),
    [sym_debug] = ACTIONS(4149),
    [sym_default] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_deprecated] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_enum] = ACTIONS(4149),
    [sym_export] = ACTIONS(4149),
    [sym_extern] = ACTIONS(4149),
    [sym_final] = ACTIONS(4149),
    [sym_finally] = ACTIONS(4167),
    [sym_for] = ACTIONS(4149),
    [sym_foreach] = ACTIONS(4149),
    [sym_foreach_reverse] = ACTIONS(4149),
    [sym_function] = ACTIONS(4149),
    [sym_goto] = ACTIONS(4149),
    [sym_if] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_interface] = ACTIONS(4149),
    [sym_invariant] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_nothrow] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_override] = ACTIONS(4149),
    [sym_package] = ACTIONS(4149),
    [sym_pragma] = ACTIONS(4149),
    [sym_private] = ACTIONS(4149),
    [sym_protected] = ACTIONS(4149),
    [sym_public] = ACTIONS(4149),
    [sym_pure] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_return] = ACTIONS(4149),
    [sym_scope] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_static] = ACTIONS(4149),
    [sym_struct] = ACTIONS(4149),
    [sym_switch] = ACTIONS(4149),
    [sym_synchronized] = ACTIONS(4149),
    [sym_template] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_try] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_union] = ACTIONS(4149),
    [sym_unittest] = ACTIONS(4149),
    [sym_version] = ACTIONS(4149),
    [sym_while] = ACTIONS(4149),
    [sym_with] = ACTIONS(4149),
    [sym_gshared] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [1300] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3908),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3908),
    [sym_primary_expression] = STATE(3908),
    [sym__primary_expr] = STATE(3908),
    [sym_index_expression] = STATE(3908),
    [sym_postfix_expression] = STATE(3908),
    [sym_unary_expression] = STATE(3908),
    [sym__unary_expr] = STATE(3908),
    [sym_property_expression] = STATE(3908),
    [sym_cast_expression] = STATE(3908),
    [sym_delete_expression] = STATE(3908),
    [sym_throw_expression] = STATE(3908),
    [sym_assert_expression] = STATE(3908),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3908),
    [sym_new_expression] = STATE(3908),
    [sym_typeid_expression] = STATE(3908),
    [sym_is_expression] = STATE(3908),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3908),
    [sym_char_literal] = STATE(3908),
    [sym_array_literal] = STATE(3908),
    [sym_function_literal] = STATE(3908),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3908),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4176),
    [sym_false] = ACTIONS(4176),
    [sym_null] = ACTIONS(4176),
    [sym_super] = ACTIONS(4176),
    [sym_this] = ACTIONS(4176),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4178),
    [sym_float_literal] = ACTIONS(4178),
    [sym__string] = ACTIONS(3327),
  },
  [1301] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3896),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3896),
    [sym_primary_expression] = STATE(3896),
    [sym__primary_expr] = STATE(3896),
    [sym_index_expression] = STATE(3896),
    [sym_postfix_expression] = STATE(3896),
    [sym_unary_expression] = STATE(3896),
    [sym__unary_expr] = STATE(3896),
    [sym_property_expression] = STATE(3896),
    [sym_cast_expression] = STATE(3896),
    [sym_delete_expression] = STATE(3896),
    [sym_throw_expression] = STATE(3896),
    [sym_assert_expression] = STATE(3896),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3896),
    [sym_new_expression] = STATE(3896),
    [sym_typeid_expression] = STATE(3896),
    [sym_is_expression] = STATE(3896),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3896),
    [sym_char_literal] = STATE(3896),
    [sym_array_literal] = STATE(3896),
    [sym_function_literal] = STATE(3896),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3896),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4180),
    [sym_false] = ACTIONS(4180),
    [sym_null] = ACTIONS(4180),
    [sym_super] = ACTIONS(4180),
    [sym_this] = ACTIONS(4180),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4182),
    [sym_float_literal] = ACTIONS(4182),
    [sym__string] = ACTIONS(3327),
  },
  [1302] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4184),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1303] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3945),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3945),
    [sym_primary_expression] = STATE(3945),
    [sym__primary_expr] = STATE(3945),
    [sym_index_expression] = STATE(3945),
    [sym_postfix_expression] = STATE(3945),
    [sym_unary_expression] = STATE(3945),
    [sym__unary_expr] = STATE(3945),
    [sym_property_expression] = STATE(3945),
    [sym_cast_expression] = STATE(3945),
    [sym_delete_expression] = STATE(3945),
    [sym_throw_expression] = STATE(3945),
    [sym_assert_expression] = STATE(3945),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3945),
    [sym_new_expression] = STATE(3945),
    [sym_typeid_expression] = STATE(3945),
    [sym_is_expression] = STATE(3945),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3945),
    [sym_char_literal] = STATE(3945),
    [sym_array_literal] = STATE(3945),
    [sym_function_literal] = STATE(3945),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3945),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4188),
    [sym_false] = ACTIONS(4188),
    [sym_null] = ACTIONS(4188),
    [sym_super] = ACTIONS(4188),
    [sym_this] = ACTIONS(4188),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4190),
    [sym_float_literal] = ACTIONS(4190),
    [sym__string] = ACTIONS(3713),
  },
  [1304] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3667),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3667),
    [sym_primary_expression] = STATE(3667),
    [sym__primary_expr] = STATE(3667),
    [sym_index_expression] = STATE(3667),
    [sym_postfix_expression] = STATE(3667),
    [sym_unary_expression] = STATE(3667),
    [sym__unary_expr] = STATE(3667),
    [sym_property_expression] = STATE(3667),
    [sym_cast_expression] = STATE(3667),
    [sym_delete_expression] = STATE(3667),
    [sym_throw_expression] = STATE(3667),
    [sym_assert_expression] = STATE(3667),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3667),
    [sym_new_expression] = STATE(3667),
    [sym_typeid_expression] = STATE(3667),
    [sym_is_expression] = STATE(3667),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3667),
    [sym_char_literal] = STATE(3667),
    [sym_array_literal] = STATE(3667),
    [sym_function_literal] = STATE(3667),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3667),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4192),
    [sym_false] = ACTIONS(4192),
    [sym_null] = ACTIONS(4192),
    [sym_super] = ACTIONS(4192),
    [sym_this] = ACTIONS(4192),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4194),
    [sym_float_literal] = ACTIONS(4194),
    [sym__string] = ACTIONS(233),
  },
  [1305] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3666),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3666),
    [sym_primary_expression] = STATE(3666),
    [sym__primary_expr] = STATE(3666),
    [sym_index_expression] = STATE(3666),
    [sym_postfix_expression] = STATE(3666),
    [sym_unary_expression] = STATE(3666),
    [sym__unary_expr] = STATE(3666),
    [sym_property_expression] = STATE(3666),
    [sym_cast_expression] = STATE(3666),
    [sym_delete_expression] = STATE(3666),
    [sym_throw_expression] = STATE(3666),
    [sym_assert_expression] = STATE(3666),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3666),
    [sym_new_expression] = STATE(3666),
    [sym_typeid_expression] = STATE(3666),
    [sym_is_expression] = STATE(3666),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3666),
    [sym_char_literal] = STATE(3666),
    [sym_array_literal] = STATE(3666),
    [sym_function_literal] = STATE(3666),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3666),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4196),
    [sym_false] = ACTIONS(4196),
    [sym_null] = ACTIONS(4196),
    [sym_super] = ACTIONS(4196),
    [sym_this] = ACTIONS(4196),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4198),
    [sym_float_literal] = ACTIONS(4198),
    [sym__string] = ACTIONS(233),
  },
  [1306] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3912),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3912),
    [sym_primary_expression] = STATE(3912),
    [sym__primary_expr] = STATE(3912),
    [sym_index_expression] = STATE(3912),
    [sym_postfix_expression] = STATE(3912),
    [sym_unary_expression] = STATE(3912),
    [sym__unary_expr] = STATE(3912),
    [sym_property_expression] = STATE(3912),
    [sym_cast_expression] = STATE(3912),
    [sym_delete_expression] = STATE(3912),
    [sym_throw_expression] = STATE(3912),
    [sym_assert_expression] = STATE(3912),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3912),
    [sym_new_expression] = STATE(3912),
    [sym_typeid_expression] = STATE(3912),
    [sym_is_expression] = STATE(3912),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3912),
    [sym_char_literal] = STATE(3912),
    [sym_array_literal] = STATE(3912),
    [sym_function_literal] = STATE(3912),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3912),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4200),
    [sym_false] = ACTIONS(4200),
    [sym_null] = ACTIONS(4200),
    [sym_super] = ACTIONS(4200),
    [sym_this] = ACTIONS(4200),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4202),
    [sym_float_literal] = ACTIONS(4202),
    [sym__string] = ACTIONS(3327),
  },
  [1307] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3666),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3666),
    [sym_primary_expression] = STATE(3666),
    [sym__primary_expr] = STATE(3666),
    [sym_index_expression] = STATE(3666),
    [sym_postfix_expression] = STATE(3666),
    [sym_unary_expression] = STATE(3666),
    [sym__unary_expr] = STATE(3666),
    [sym_property_expression] = STATE(3666),
    [sym_cast_expression] = STATE(3666),
    [sym_delete_expression] = STATE(3666),
    [sym_throw_expression] = STATE(3666),
    [sym_assert_expression] = STATE(3666),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3666),
    [sym_new_expression] = STATE(3666),
    [sym_typeid_expression] = STATE(3666),
    [sym_is_expression] = STATE(3666),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3666),
    [sym_char_literal] = STATE(3666),
    [sym_array_literal] = STATE(3666),
    [sym_function_literal] = STATE(3666),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3666),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4196),
    [sym_false] = ACTIONS(4196),
    [sym_null] = ACTIONS(4196),
    [sym_super] = ACTIONS(4196),
    [sym_this] = ACTIONS(4196),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4198),
    [sym_float_literal] = ACTIONS(4198),
    [sym__string] = ACTIONS(233),
  },
  [1308] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3954),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3954),
    [sym_primary_expression] = STATE(3954),
    [sym__primary_expr] = STATE(3954),
    [sym_index_expression] = STATE(3954),
    [sym_postfix_expression] = STATE(3954),
    [sym_unary_expression] = STATE(3954),
    [sym__unary_expr] = STATE(3954),
    [sym_property_expression] = STATE(3954),
    [sym_cast_expression] = STATE(3954),
    [sym_delete_expression] = STATE(3954),
    [sym_throw_expression] = STATE(3954),
    [sym_assert_expression] = STATE(3954),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3954),
    [sym_new_expression] = STATE(3954),
    [sym_typeid_expression] = STATE(3954),
    [sym_is_expression] = STATE(3954),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3954),
    [sym_char_literal] = STATE(3954),
    [sym_array_literal] = STATE(3954),
    [sym_function_literal] = STATE(3954),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3954),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4204),
    [sym_false] = ACTIONS(4204),
    [sym_null] = ACTIONS(4204),
    [sym_super] = ACTIONS(4204),
    [sym_this] = ACTIONS(4204),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4206),
    [sym_float_literal] = ACTIONS(4206),
    [sym__string] = ACTIONS(3713),
  },
  [1309] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3933),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3933),
    [sym_primary_expression] = STATE(3933),
    [sym__primary_expr] = STATE(3933),
    [sym_index_expression] = STATE(3933),
    [sym_postfix_expression] = STATE(3933),
    [sym_unary_expression] = STATE(3933),
    [sym__unary_expr] = STATE(3933),
    [sym_property_expression] = STATE(3933),
    [sym_cast_expression] = STATE(3933),
    [sym_delete_expression] = STATE(3933),
    [sym_throw_expression] = STATE(3933),
    [sym_assert_expression] = STATE(3933),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3933),
    [sym_new_expression] = STATE(3933),
    [sym_typeid_expression] = STATE(3933),
    [sym_is_expression] = STATE(3933),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3933),
    [sym_char_literal] = STATE(3933),
    [sym_array_literal] = STATE(3933),
    [sym_function_literal] = STATE(3933),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3933),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4208),
    [sym_false] = ACTIONS(4208),
    [sym_null] = ACTIONS(4208),
    [sym_super] = ACTIONS(4208),
    [sym_this] = ACTIONS(4208),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4210),
    [sym_float_literal] = ACTIONS(4210),
    [sym__string] = ACTIONS(3713),
  },
  [1310] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3934),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3934),
    [sym_primary_expression] = STATE(3934),
    [sym__primary_expr] = STATE(3934),
    [sym_index_expression] = STATE(3934),
    [sym_postfix_expression] = STATE(3934),
    [sym_unary_expression] = STATE(3934),
    [sym__unary_expr] = STATE(3934),
    [sym_property_expression] = STATE(3934),
    [sym_cast_expression] = STATE(3934),
    [sym_delete_expression] = STATE(3934),
    [sym_throw_expression] = STATE(3934),
    [sym_assert_expression] = STATE(3934),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3934),
    [sym_new_expression] = STATE(3934),
    [sym_typeid_expression] = STATE(3934),
    [sym_is_expression] = STATE(3934),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3934),
    [sym_char_literal] = STATE(3934),
    [sym_array_literal] = STATE(3934),
    [sym_function_literal] = STATE(3934),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3934),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4212),
    [sym_false] = ACTIONS(4212),
    [sym_null] = ACTIONS(4212),
    [sym_super] = ACTIONS(4212),
    [sym_this] = ACTIONS(4212),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4214),
    [sym_float_literal] = ACTIONS(4214),
    [sym__string] = ACTIONS(3713),
  },
  [1311] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4184),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1312] = {
    [sym_catch_statement] = STATE(1312),
    [aux_sym_try_statement_repeat1] = STATE(1312),
    [sym_identifier] = ACTIONS(4169),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4171),
    [anon_sym_RBRACE] = ACTIONS(4171),
    [anon_sym_LBRACE] = ACTIONS(4171),
    [anon_sym_DOT] = ACTIONS(4171),
    [anon_sym_AMP] = ACTIONS(4171),
    [anon_sym_DASH] = ACTIONS(4169),
    [anon_sym_DASH_DASH] = ACTIONS(4171),
    [anon_sym_PLUS] = ACTIONS(4169),
    [anon_sym_PLUS_PLUS] = ACTIONS(4171),
    [anon_sym_BANG] = ACTIONS(4171),
    [anon_sym_LPAREN] = ACTIONS(4171),
    [anon_sym_RPAREN] = ACTIONS(4171),
    [anon_sym_LBRACK] = ACTIONS(4171),
    [anon_sym_SEMI] = ACTIONS(4171),
    [anon_sym_DOLLAR] = ACTIONS(4171),
    [anon_sym_STAR] = ACTIONS(4171),
    [anon_sym_TILDE] = ACTIONS(4171),
    [anon_sym_AT] = ACTIONS(4171),
    [sym_bool] = ACTIONS(4169),
    [sym_byte] = ACTIONS(4169),
    [sym_ubyte] = ACTIONS(4169),
    [sym_char] = ACTIONS(4169),
    [sym_short] = ACTIONS(4169),
    [sym_ushort] = ACTIONS(4169),
    [sym_int] = ACTIONS(4169),
    [sym_uint] = ACTIONS(4169),
    [sym_long] = ACTIONS(4169),
    [sym_ulong] = ACTIONS(4169),
    [sym_cent] = ACTIONS(4169),
    [sym_ucent] = ACTIONS(4169),
    [sym_wchar] = ACTIONS(4169),
    [sym_dchar] = ACTIONS(4169),
    [sym_float] = ACTIONS(4169),
    [sym_double] = ACTIONS(4169),
    [sym_real] = ACTIONS(4169),
    [sym_ifloat] = ACTIONS(4169),
    [sym_idouble] = ACTIONS(4169),
    [sym_ireal] = ACTIONS(4169),
    [sym_cfloat] = ACTIONS(4169),
    [sym_cdouble] = ACTIONS(4169),
    [sym_creal] = ACTIONS(4169),
    [sym_size_t] = ACTIONS(4169),
    [sym_ptrdiff_t] = ACTIONS(4169),
    [sym_string] = ACTIONS(4169),
    [sym_cstring] = ACTIONS(4169),
    [sym_dstring] = ACTIONS(4169),
    [sym_wstring] = ACTIONS(4169),
    [sym_noreturn] = ACTIONS(4169),
    [sym_true] = ACTIONS(4169),
    [sym_false] = ACTIONS(4169),
    [sym_null] = ACTIONS(4169),
    [sym_super] = ACTIONS(4169),
    [sym_this] = ACTIONS(4169),
    [sym_abstract] = ACTIONS(4169),
    [sym_alias] = ACTIONS(4169),
    [sym_align] = ACTIONS(4169),
    [sym_asm] = ACTIONS(4169),
    [sym_assert] = ACTIONS(4169),
    [sym_auto] = ACTIONS(4169),
    [sym_break] = ACTIONS(4169),
    [sym_case] = ACTIONS(4169),
    [sym_cast] = ACTIONS(4169),
    [sym_catch] = ACTIONS(4216),
    [sym_class] = ACTIONS(4169),
    [sym_const] = ACTIONS(4169),
    [sym_continue] = ACTIONS(4169),
    [sym_debug] = ACTIONS(4169),
    [sym_default] = ACTIONS(4169),
    [sym_delegate] = ACTIONS(4169),
    [sym_delete] = ACTIONS(4169),
    [sym_deprecated] = ACTIONS(4169),
    [sym_do] = ACTIONS(4169),
    [sym_enum] = ACTIONS(4169),
    [sym_export] = ACTIONS(4169),
    [sym_extern] = ACTIONS(4169),
    [sym_final] = ACTIONS(4169),
    [sym_finally] = ACTIONS(4169),
    [sym_for] = ACTIONS(4169),
    [sym_foreach] = ACTIONS(4169),
    [sym_foreach_reverse] = ACTIONS(4169),
    [sym_function] = ACTIONS(4169),
    [sym_goto] = ACTIONS(4169),
    [sym_if] = ACTIONS(4169),
    [sym_immutable] = ACTIONS(4169),
    [sym_import] = ACTIONS(4169),
    [sym_in] = ACTIONS(4169),
    [sym_inout] = ACTIONS(4169),
    [sym_interface] = ACTIONS(4169),
    [sym_invariant] = ACTIONS(4169),
    [sym_is] = ACTIONS(4169),
    [sym_mixin] = ACTIONS(4169),
    [sym_new] = ACTIONS(4169),
    [sym_nothrow] = ACTIONS(4169),
    [sym_out] = ACTIONS(4169),
    [sym_override] = ACTIONS(4169),
    [sym_package] = ACTIONS(4169),
    [sym_pragma] = ACTIONS(4169),
    [sym_private] = ACTIONS(4169),
    [sym_protected] = ACTIONS(4169),
    [sym_public] = ACTIONS(4169),
    [sym_pure] = ACTIONS(4169),
    [sym_ref] = ACTIONS(4169),
    [sym_return] = ACTIONS(4169),
    [sym_scope] = ACTIONS(4169),
    [sym_shared] = ACTIONS(4169),
    [sym_static] = ACTIONS(4169),
    [sym_struct] = ACTIONS(4169),
    [sym_switch] = ACTIONS(4169),
    [sym_synchronized] = ACTIONS(4169),
    [sym_template] = ACTIONS(4169),
    [sym_throw] = ACTIONS(4169),
    [sym_try] = ACTIONS(4169),
    [sym_typeid] = ACTIONS(4169),
    [sym_typeof] = ACTIONS(4169),
    [sym_union] = ACTIONS(4169),
    [sym_unittest] = ACTIONS(4169),
    [sym_version] = ACTIONS(4169),
    [sym_while] = ACTIONS(4169),
    [sym_with] = ACTIONS(4169),
    [sym_gshared] = ACTIONS(4169),
    [sym_traits] = ACTIONS(4169),
    [sym_vector] = ACTIONS(4169),
    [sym_void] = ACTIONS(4169),
    [anon_sym_BQUOTE] = ACTIONS(4171),
    [anon_sym_r_DQUOTE] = ACTIONS(4171),
    [anon_sym_x_DQUOTE] = ACTIONS(4171),
    [anon_sym_DQUOTE] = ACTIONS(4171),
    [anon_sym_i_BQUOTE] = ACTIONS(4171),
    [anon_sym_i_DQUOTE] = ACTIONS(4171),
    [anon_sym_iq_LBRACE] = ACTIONS(4171),
    [aux_sym_char_literal_token1] = ACTIONS(4171),
    [anon_sym_SQUOTE] = ACTIONS(4169),
    [anon_sym___DATE__] = ACTIONS(4169),
    [anon_sym___FILE__] = ACTIONS(4169),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4169),
    [anon_sym___FUNCTION__] = ACTIONS(4169),
    [anon_sym___LINE__] = ACTIONS(4169),
    [anon_sym___MODULE__] = ACTIONS(4169),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4169),
    [anon_sym___TIME__] = ACTIONS(4169),
    [anon_sym___TIMESTAMP__] = ACTIONS(4169),
    [anon_sym___VENDOR__] = ACTIONS(4169),
    [anon_sym___VERSION__] = ACTIONS(4169),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4171),
    [sym_float_literal] = ACTIONS(4171),
    [sym__string] = ACTIONS(4171),
  },
  [1313] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3680),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3680),
    [sym_primary_expression] = STATE(3680),
    [sym__primary_expr] = STATE(3680),
    [sym_index_expression] = STATE(3680),
    [sym_postfix_expression] = STATE(3680),
    [sym_unary_expression] = STATE(3680),
    [sym__unary_expr] = STATE(3680),
    [sym_property_expression] = STATE(3680),
    [sym_cast_expression] = STATE(3680),
    [sym_delete_expression] = STATE(3680),
    [sym_throw_expression] = STATE(3680),
    [sym_assert_expression] = STATE(3680),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3680),
    [sym_new_expression] = STATE(3680),
    [sym_typeid_expression] = STATE(3680),
    [sym_is_expression] = STATE(3680),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3680),
    [sym_char_literal] = STATE(3680),
    [sym_array_literal] = STATE(3680),
    [sym_function_literal] = STATE(3680),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3680),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4219),
    [sym_false] = ACTIONS(4219),
    [sym_null] = ACTIONS(4219),
    [sym_super] = ACTIONS(4219),
    [sym_this] = ACTIONS(4219),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4221),
    [sym_float_literal] = ACTIONS(4221),
    [sym__string] = ACTIONS(233),
  },
  [1314] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3868),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3868),
    [sym_primary_expression] = STATE(3868),
    [sym__primary_expr] = STATE(3868),
    [sym_index_expression] = STATE(3868),
    [sym_postfix_expression] = STATE(3868),
    [sym_unary_expression] = STATE(3868),
    [sym__unary_expr] = STATE(3868),
    [sym_property_expression] = STATE(3868),
    [sym_cast_expression] = STATE(3868),
    [sym_delete_expression] = STATE(3868),
    [sym_throw_expression] = STATE(3868),
    [sym_assert_expression] = STATE(3868),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3868),
    [sym_new_expression] = STATE(3868),
    [sym_typeid_expression] = STATE(3868),
    [sym_is_expression] = STATE(3868),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3868),
    [sym_char_literal] = STATE(3868),
    [sym_array_literal] = STATE(3868),
    [sym_function_literal] = STATE(3868),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3868),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4223),
    [sym_false] = ACTIONS(4223),
    [sym_null] = ACTIONS(4223),
    [sym_super] = ACTIONS(4223),
    [sym_this] = ACTIONS(4223),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4225),
    [sym_float_literal] = ACTIONS(4225),
    [sym__string] = ACTIONS(3327),
  },
  [1315] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3667),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3667),
    [sym_primary_expression] = STATE(3667),
    [sym__primary_expr] = STATE(3667),
    [sym_index_expression] = STATE(3667),
    [sym_postfix_expression] = STATE(3667),
    [sym_unary_expression] = STATE(3667),
    [sym__unary_expr] = STATE(3667),
    [sym_property_expression] = STATE(3667),
    [sym_cast_expression] = STATE(3667),
    [sym_delete_expression] = STATE(3667),
    [sym_throw_expression] = STATE(3667),
    [sym_assert_expression] = STATE(3667),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3667),
    [sym_new_expression] = STATE(3667),
    [sym_typeid_expression] = STATE(3667),
    [sym_is_expression] = STATE(3667),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3667),
    [sym_char_literal] = STATE(3667),
    [sym_array_literal] = STATE(3667),
    [sym_function_literal] = STATE(3667),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3667),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4192),
    [sym_false] = ACTIONS(4192),
    [sym_null] = ACTIONS(4192),
    [sym_super] = ACTIONS(4192),
    [sym_this] = ACTIONS(4192),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4194),
    [sym_float_literal] = ACTIONS(4194),
    [sym__string] = ACTIONS(233),
  },
  [1316] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3651),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3651),
    [sym_primary_expression] = STATE(3651),
    [sym__primary_expr] = STATE(3651),
    [sym_index_expression] = STATE(3651),
    [sym_postfix_expression] = STATE(3651),
    [sym_unary_expression] = STATE(3651),
    [sym__unary_expr] = STATE(3651),
    [sym_property_expression] = STATE(3651),
    [sym_cast_expression] = STATE(3651),
    [sym_delete_expression] = STATE(3651),
    [sym_throw_expression] = STATE(3651),
    [sym_assert_expression] = STATE(3651),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3651),
    [sym_new_expression] = STATE(3651),
    [sym_typeid_expression] = STATE(3651),
    [sym_is_expression] = STATE(3651),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3651),
    [sym_char_literal] = STATE(3651),
    [sym_array_literal] = STATE(3651),
    [sym_function_literal] = STATE(3651),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3651),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4227),
    [sym_false] = ACTIONS(4227),
    [sym_null] = ACTIONS(4227),
    [sym_super] = ACTIONS(4227),
    [sym_this] = ACTIONS(4227),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4229),
    [sym_float_literal] = ACTIONS(4229),
    [sym__string] = ACTIONS(233),
  },
  [1317] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4231),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1318] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4233),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1319] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3621),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3621),
    [sym_primary_expression] = STATE(3621),
    [sym__primary_expr] = STATE(3621),
    [sym_index_expression] = STATE(3621),
    [sym_postfix_expression] = STATE(3621),
    [sym_unary_expression] = STATE(3621),
    [sym__unary_expr] = STATE(3621),
    [sym_property_expression] = STATE(3621),
    [sym_cast_expression] = STATE(3621),
    [sym_delete_expression] = STATE(3621),
    [sym_throw_expression] = STATE(3621),
    [sym_assert_expression] = STATE(3621),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3621),
    [sym_new_expression] = STATE(3621),
    [sym_typeid_expression] = STATE(3621),
    [sym_is_expression] = STATE(3621),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3621),
    [sym_char_literal] = STATE(3621),
    [sym_array_literal] = STATE(3621),
    [sym_function_literal] = STATE(3621),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3621),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4235),
    [sym_false] = ACTIONS(4235),
    [sym_null] = ACTIONS(4235),
    [sym_super] = ACTIONS(4235),
    [sym_this] = ACTIONS(4235),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4237),
    [sym_float_literal] = ACTIONS(4237),
    [sym__string] = ACTIONS(233),
  },
  [1320] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3702),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3702),
    [sym_primary_expression] = STATE(3702),
    [sym__primary_expr] = STATE(3702),
    [sym_index_expression] = STATE(3702),
    [sym_postfix_expression] = STATE(3702),
    [sym_unary_expression] = STATE(3702),
    [sym__unary_expr] = STATE(3702),
    [sym_property_expression] = STATE(3702),
    [sym_cast_expression] = STATE(3702),
    [sym_delete_expression] = STATE(3702),
    [sym_throw_expression] = STATE(3702),
    [sym_assert_expression] = STATE(3702),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3702),
    [sym_new_expression] = STATE(3702),
    [sym_typeid_expression] = STATE(3702),
    [sym_is_expression] = STATE(3702),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3702),
    [sym_char_literal] = STATE(3702),
    [sym_array_literal] = STATE(3702),
    [sym_function_literal] = STATE(3702),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3702),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4239),
    [sym_false] = ACTIONS(4239),
    [sym_null] = ACTIONS(4239),
    [sym_super] = ACTIONS(4239),
    [sym_this] = ACTIONS(4239),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4241),
    [sym_float_literal] = ACTIONS(4241),
    [sym__string] = ACTIONS(233),
  },
  [1321] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3680),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3680),
    [sym_primary_expression] = STATE(3680),
    [sym__primary_expr] = STATE(3680),
    [sym_index_expression] = STATE(3680),
    [sym_postfix_expression] = STATE(3680),
    [sym_unary_expression] = STATE(3680),
    [sym__unary_expr] = STATE(3680),
    [sym_property_expression] = STATE(3680),
    [sym_cast_expression] = STATE(3680),
    [sym_delete_expression] = STATE(3680),
    [sym_throw_expression] = STATE(3680),
    [sym_assert_expression] = STATE(3680),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3680),
    [sym_new_expression] = STATE(3680),
    [sym_typeid_expression] = STATE(3680),
    [sym_is_expression] = STATE(3680),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3680),
    [sym_char_literal] = STATE(3680),
    [sym_array_literal] = STATE(3680),
    [sym_function_literal] = STATE(3680),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3680),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4219),
    [sym_false] = ACTIONS(4219),
    [sym_null] = ACTIONS(4219),
    [sym_super] = ACTIONS(4219),
    [sym_this] = ACTIONS(4219),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4221),
    [sym_float_literal] = ACTIONS(4221),
    [sym__string] = ACTIONS(233),
  },
  [1322] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3955),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3955),
    [sym_primary_expression] = STATE(3955),
    [sym__primary_expr] = STATE(3955),
    [sym_index_expression] = STATE(3955),
    [sym_postfix_expression] = STATE(3955),
    [sym_unary_expression] = STATE(3955),
    [sym__unary_expr] = STATE(3955),
    [sym_property_expression] = STATE(3955),
    [sym_cast_expression] = STATE(3955),
    [sym_delete_expression] = STATE(3955),
    [sym_throw_expression] = STATE(3955),
    [sym_assert_expression] = STATE(3955),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3955),
    [sym_new_expression] = STATE(3955),
    [sym_typeid_expression] = STATE(3955),
    [sym_is_expression] = STATE(3955),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3955),
    [sym_char_literal] = STATE(3955),
    [sym_array_literal] = STATE(3955),
    [sym_function_literal] = STATE(3955),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3955),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4243),
    [sym_false] = ACTIONS(4243),
    [sym_null] = ACTIONS(4243),
    [sym_super] = ACTIONS(4243),
    [sym_this] = ACTIONS(4243),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4245),
    [sym_float_literal] = ACTIONS(4245),
    [sym__string] = ACTIONS(3713),
  },
  [1323] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3871),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3871),
    [sym_primary_expression] = STATE(3871),
    [sym__primary_expr] = STATE(3871),
    [sym_index_expression] = STATE(3871),
    [sym_postfix_expression] = STATE(3871),
    [sym_unary_expression] = STATE(3871),
    [sym__unary_expr] = STATE(3871),
    [sym_property_expression] = STATE(3871),
    [sym_cast_expression] = STATE(3871),
    [sym_delete_expression] = STATE(3871),
    [sym_throw_expression] = STATE(3871),
    [sym_assert_expression] = STATE(3871),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3871),
    [sym_new_expression] = STATE(3871),
    [sym_typeid_expression] = STATE(3871),
    [sym_is_expression] = STATE(3871),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3871),
    [sym_char_literal] = STATE(3871),
    [sym_array_literal] = STATE(3871),
    [sym_function_literal] = STATE(3871),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3871),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4247),
    [sym_false] = ACTIONS(4247),
    [sym_null] = ACTIONS(4247),
    [sym_super] = ACTIONS(4247),
    [sym_this] = ACTIONS(4247),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4249),
    [sym_float_literal] = ACTIONS(4249),
    [sym__string] = ACTIONS(3327),
  },
  [1324] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3868),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3868),
    [sym_primary_expression] = STATE(3868),
    [sym__primary_expr] = STATE(3868),
    [sym_index_expression] = STATE(3868),
    [sym_postfix_expression] = STATE(3868),
    [sym_unary_expression] = STATE(3868),
    [sym__unary_expr] = STATE(3868),
    [sym_property_expression] = STATE(3868),
    [sym_cast_expression] = STATE(3868),
    [sym_delete_expression] = STATE(3868),
    [sym_throw_expression] = STATE(3868),
    [sym_assert_expression] = STATE(3868),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3868),
    [sym_new_expression] = STATE(3868),
    [sym_typeid_expression] = STATE(3868),
    [sym_is_expression] = STATE(3868),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3868),
    [sym_char_literal] = STATE(3868),
    [sym_array_literal] = STATE(3868),
    [sym_function_literal] = STATE(3868),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3868),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4223),
    [sym_false] = ACTIONS(4223),
    [sym_null] = ACTIONS(4223),
    [sym_super] = ACTIONS(4223),
    [sym_this] = ACTIONS(4223),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4225),
    [sym_float_literal] = ACTIONS(4225),
    [sym__string] = ACTIONS(3327),
  },
  [1325] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3935),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3935),
    [sym_primary_expression] = STATE(3935),
    [sym__primary_expr] = STATE(3935),
    [sym_index_expression] = STATE(3935),
    [sym_postfix_expression] = STATE(3935),
    [sym_unary_expression] = STATE(3935),
    [sym__unary_expr] = STATE(3935),
    [sym_property_expression] = STATE(3935),
    [sym_cast_expression] = STATE(3935),
    [sym_delete_expression] = STATE(3935),
    [sym_throw_expression] = STATE(3935),
    [sym_assert_expression] = STATE(3935),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3935),
    [sym_new_expression] = STATE(3935),
    [sym_typeid_expression] = STATE(3935),
    [sym_is_expression] = STATE(3935),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3935),
    [sym_char_literal] = STATE(3935),
    [sym_array_literal] = STATE(3935),
    [sym_function_literal] = STATE(3935),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3935),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4251),
    [sym_false] = ACTIONS(4251),
    [sym_null] = ACTIONS(4251),
    [sym_super] = ACTIONS(4251),
    [sym_this] = ACTIONS(4251),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4253),
    [sym_float_literal] = ACTIONS(4253),
    [sym__string] = ACTIONS(3713),
  },
  [1326] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3632),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3632),
    [sym_primary_expression] = STATE(3632),
    [sym__primary_expr] = STATE(3632),
    [sym_index_expression] = STATE(3632),
    [sym_postfix_expression] = STATE(3632),
    [sym_unary_expression] = STATE(3632),
    [sym__unary_expr] = STATE(3632),
    [sym_property_expression] = STATE(3632),
    [sym_cast_expression] = STATE(3632),
    [sym_delete_expression] = STATE(3632),
    [sym_throw_expression] = STATE(3632),
    [sym_assert_expression] = STATE(3632),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3632),
    [sym_new_expression] = STATE(3632),
    [sym_typeid_expression] = STATE(3632),
    [sym_is_expression] = STATE(3632),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3632),
    [sym_char_literal] = STATE(3632),
    [sym_array_literal] = STATE(3632),
    [sym_function_literal] = STATE(3632),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3632),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4255),
    [sym_false] = ACTIONS(4255),
    [sym_null] = ACTIONS(4255),
    [sym_super] = ACTIONS(4255),
    [sym_this] = ACTIONS(4255),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4257),
    [sym_float_literal] = ACTIONS(4257),
    [sym__string] = ACTIONS(233),
  },
  [1327] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3621),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3621),
    [sym_primary_expression] = STATE(3621),
    [sym__primary_expr] = STATE(3621),
    [sym_index_expression] = STATE(3621),
    [sym_postfix_expression] = STATE(3621),
    [sym_unary_expression] = STATE(3621),
    [sym__unary_expr] = STATE(3621),
    [sym_property_expression] = STATE(3621),
    [sym_cast_expression] = STATE(3621),
    [sym_delete_expression] = STATE(3621),
    [sym_throw_expression] = STATE(3621),
    [sym_assert_expression] = STATE(3621),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3621),
    [sym_new_expression] = STATE(3621),
    [sym_typeid_expression] = STATE(3621),
    [sym_is_expression] = STATE(3621),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3621),
    [sym_char_literal] = STATE(3621),
    [sym_array_literal] = STATE(3621),
    [sym_function_literal] = STATE(3621),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3621),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4235),
    [sym_false] = ACTIONS(4235),
    [sym_null] = ACTIONS(4235),
    [sym_super] = ACTIONS(4235),
    [sym_this] = ACTIONS(4235),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4237),
    [sym_float_literal] = ACTIONS(4237),
    [sym__string] = ACTIONS(233),
  },
  [1328] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3896),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3896),
    [sym_primary_expression] = STATE(3896),
    [sym__primary_expr] = STATE(3896),
    [sym_index_expression] = STATE(3896),
    [sym_postfix_expression] = STATE(3896),
    [sym_unary_expression] = STATE(3896),
    [sym__unary_expr] = STATE(3896),
    [sym_property_expression] = STATE(3896),
    [sym_cast_expression] = STATE(3896),
    [sym_delete_expression] = STATE(3896),
    [sym_throw_expression] = STATE(3896),
    [sym_assert_expression] = STATE(3896),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3896),
    [sym_new_expression] = STATE(3896),
    [sym_typeid_expression] = STATE(3896),
    [sym_is_expression] = STATE(3896),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3896),
    [sym_char_literal] = STATE(3896),
    [sym_array_literal] = STATE(3896),
    [sym_function_literal] = STATE(3896),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3896),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4180),
    [sym_false] = ACTIONS(4180),
    [sym_null] = ACTIONS(4180),
    [sym_super] = ACTIONS(4180),
    [sym_this] = ACTIONS(4180),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4182),
    [sym_float_literal] = ACTIONS(4182),
    [sym__string] = ACTIONS(3327),
  },
  [1329] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3876),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3876),
    [sym_primary_expression] = STATE(3876),
    [sym__primary_expr] = STATE(3876),
    [sym_index_expression] = STATE(3876),
    [sym_postfix_expression] = STATE(3876),
    [sym_unary_expression] = STATE(3876),
    [sym__unary_expr] = STATE(3876),
    [sym_property_expression] = STATE(3876),
    [sym_cast_expression] = STATE(3876),
    [sym_delete_expression] = STATE(3876),
    [sym_throw_expression] = STATE(3876),
    [sym_assert_expression] = STATE(3876),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3876),
    [sym_new_expression] = STATE(3876),
    [sym_typeid_expression] = STATE(3876),
    [sym_is_expression] = STATE(3876),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3876),
    [sym_char_literal] = STATE(3876),
    [sym_array_literal] = STATE(3876),
    [sym_function_literal] = STATE(3876),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3876),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4259),
    [sym_false] = ACTIONS(4259),
    [sym_null] = ACTIONS(4259),
    [sym_super] = ACTIONS(4259),
    [sym_this] = ACTIONS(4259),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4261),
    [sym_float_literal] = ACTIONS(4261),
    [sym__string] = ACTIONS(3327),
  },
  [1330] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3667),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3667),
    [sym_primary_expression] = STATE(3667),
    [sym__primary_expr] = STATE(3667),
    [sym_index_expression] = STATE(3667),
    [sym_postfix_expression] = STATE(3667),
    [sym_unary_expression] = STATE(3667),
    [sym__unary_expr] = STATE(3667),
    [sym_property_expression] = STATE(3667),
    [sym_cast_expression] = STATE(3667),
    [sym_delete_expression] = STATE(3667),
    [sym_throw_expression] = STATE(3667),
    [sym_assert_expression] = STATE(3667),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3667),
    [sym_new_expression] = STATE(3667),
    [sym_typeid_expression] = STATE(3667),
    [sym_is_expression] = STATE(3667),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3667),
    [sym_char_literal] = STATE(3667),
    [sym_array_literal] = STATE(3667),
    [sym_function_literal] = STATE(3667),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3667),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4192),
    [sym_false] = ACTIONS(4192),
    [sym_null] = ACTIONS(4192),
    [sym_super] = ACTIONS(4192),
    [sym_this] = ACTIONS(4192),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4194),
    [sym_float_literal] = ACTIONS(4194),
    [sym__string] = ACTIONS(233),
  },
  [1331] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3666),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3666),
    [sym_primary_expression] = STATE(3666),
    [sym__primary_expr] = STATE(3666),
    [sym_index_expression] = STATE(3666),
    [sym_postfix_expression] = STATE(3666),
    [sym_unary_expression] = STATE(3666),
    [sym__unary_expr] = STATE(3666),
    [sym_property_expression] = STATE(3666),
    [sym_cast_expression] = STATE(3666),
    [sym_delete_expression] = STATE(3666),
    [sym_throw_expression] = STATE(3666),
    [sym_assert_expression] = STATE(3666),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3666),
    [sym_new_expression] = STATE(3666),
    [sym_typeid_expression] = STATE(3666),
    [sym_is_expression] = STATE(3666),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3666),
    [sym_char_literal] = STATE(3666),
    [sym_array_literal] = STATE(3666),
    [sym_function_literal] = STATE(3666),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3666),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4196),
    [sym_false] = ACTIONS(4196),
    [sym_null] = ACTIONS(4196),
    [sym_super] = ACTIONS(4196),
    [sym_this] = ACTIONS(4196),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4198),
    [sym_float_literal] = ACTIONS(4198),
    [sym__string] = ACTIONS(233),
  },
  [1332] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3893),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3893),
    [sym_primary_expression] = STATE(3893),
    [sym__primary_expr] = STATE(3893),
    [sym_index_expression] = STATE(3893),
    [sym_postfix_expression] = STATE(3893),
    [sym_unary_expression] = STATE(3893),
    [sym__unary_expr] = STATE(3893),
    [sym_property_expression] = STATE(3893),
    [sym_cast_expression] = STATE(3893),
    [sym_delete_expression] = STATE(3893),
    [sym_throw_expression] = STATE(3893),
    [sym_assert_expression] = STATE(3893),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3893),
    [sym_new_expression] = STATE(3893),
    [sym_typeid_expression] = STATE(3893),
    [sym_is_expression] = STATE(3893),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3893),
    [sym_char_literal] = STATE(3893),
    [sym_array_literal] = STATE(3893),
    [sym_function_literal] = STATE(3893),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3893),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4263),
    [sym_false] = ACTIONS(4263),
    [sym_null] = ACTIONS(4263),
    [sym_super] = ACTIONS(4263),
    [sym_this] = ACTIONS(4263),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4265),
    [sym_float_literal] = ACTIONS(4265),
    [sym__string] = ACTIONS(3327),
  },
  [1333] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3901),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3901),
    [sym_primary_expression] = STATE(3901),
    [sym__primary_expr] = STATE(3901),
    [sym_index_expression] = STATE(3901),
    [sym_postfix_expression] = STATE(3901),
    [sym_unary_expression] = STATE(3901),
    [sym__unary_expr] = STATE(3901),
    [sym_property_expression] = STATE(3901),
    [sym_cast_expression] = STATE(3901),
    [sym_delete_expression] = STATE(3901),
    [sym_throw_expression] = STATE(3901),
    [sym_assert_expression] = STATE(3901),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3901),
    [sym_new_expression] = STATE(3901),
    [sym_typeid_expression] = STATE(3901),
    [sym_is_expression] = STATE(3901),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3901),
    [sym_char_literal] = STATE(3901),
    [sym_array_literal] = STATE(3901),
    [sym_function_literal] = STATE(3901),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3901),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4267),
    [sym_false] = ACTIONS(4267),
    [sym_null] = ACTIONS(4267),
    [sym_super] = ACTIONS(4267),
    [sym_this] = ACTIONS(4267),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4269),
    [sym_float_literal] = ACTIONS(4269),
    [sym__string] = ACTIONS(3327),
  },
  [1334] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3651),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3651),
    [sym_primary_expression] = STATE(3651),
    [sym__primary_expr] = STATE(3651),
    [sym_index_expression] = STATE(3651),
    [sym_postfix_expression] = STATE(3651),
    [sym_unary_expression] = STATE(3651),
    [sym__unary_expr] = STATE(3651),
    [sym_property_expression] = STATE(3651),
    [sym_cast_expression] = STATE(3651),
    [sym_delete_expression] = STATE(3651),
    [sym_throw_expression] = STATE(3651),
    [sym_assert_expression] = STATE(3651),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3651),
    [sym_new_expression] = STATE(3651),
    [sym_typeid_expression] = STATE(3651),
    [sym_is_expression] = STATE(3651),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3651),
    [sym_char_literal] = STATE(3651),
    [sym_array_literal] = STATE(3651),
    [sym_function_literal] = STATE(3651),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3651),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4227),
    [sym_false] = ACTIONS(4227),
    [sym_null] = ACTIONS(4227),
    [sym_super] = ACTIONS(4227),
    [sym_this] = ACTIONS(4227),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4229),
    [sym_float_literal] = ACTIONS(4229),
    [sym__string] = ACTIONS(233),
  },
  [1335] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3680),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3680),
    [sym_primary_expression] = STATE(3680),
    [sym__primary_expr] = STATE(3680),
    [sym_index_expression] = STATE(3680),
    [sym_postfix_expression] = STATE(3680),
    [sym_unary_expression] = STATE(3680),
    [sym__unary_expr] = STATE(3680),
    [sym_property_expression] = STATE(3680),
    [sym_cast_expression] = STATE(3680),
    [sym_delete_expression] = STATE(3680),
    [sym_throw_expression] = STATE(3680),
    [sym_assert_expression] = STATE(3680),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3680),
    [sym_new_expression] = STATE(3680),
    [sym_typeid_expression] = STATE(3680),
    [sym_is_expression] = STATE(3680),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3680),
    [sym_char_literal] = STATE(3680),
    [sym_array_literal] = STATE(3680),
    [sym_function_literal] = STATE(3680),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3680),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4219),
    [sym_false] = ACTIONS(4219),
    [sym_null] = ACTIONS(4219),
    [sym_super] = ACTIONS(4219),
    [sym_this] = ACTIONS(4219),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4221),
    [sym_float_literal] = ACTIONS(4221),
    [sym__string] = ACTIONS(233),
  },
  [1336] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3621),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3621),
    [sym_primary_expression] = STATE(3621),
    [sym__primary_expr] = STATE(3621),
    [sym_index_expression] = STATE(3621),
    [sym_postfix_expression] = STATE(3621),
    [sym_unary_expression] = STATE(3621),
    [sym__unary_expr] = STATE(3621),
    [sym_property_expression] = STATE(3621),
    [sym_cast_expression] = STATE(3621),
    [sym_delete_expression] = STATE(3621),
    [sym_throw_expression] = STATE(3621),
    [sym_assert_expression] = STATE(3621),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3621),
    [sym_new_expression] = STATE(3621),
    [sym_typeid_expression] = STATE(3621),
    [sym_is_expression] = STATE(3621),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3621),
    [sym_char_literal] = STATE(3621),
    [sym_array_literal] = STATE(3621),
    [sym_function_literal] = STATE(3621),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3621),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4235),
    [sym_false] = ACTIONS(4235),
    [sym_null] = ACTIONS(4235),
    [sym_super] = ACTIONS(4235),
    [sym_this] = ACTIONS(4235),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4237),
    [sym_float_literal] = ACTIONS(4237),
    [sym__string] = ACTIONS(233),
  },
  [1337] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4184),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1338] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3893),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3893),
    [sym_primary_expression] = STATE(3893),
    [sym__primary_expr] = STATE(3893),
    [sym_index_expression] = STATE(3893),
    [sym_postfix_expression] = STATE(3893),
    [sym_unary_expression] = STATE(3893),
    [sym__unary_expr] = STATE(3893),
    [sym_property_expression] = STATE(3893),
    [sym_cast_expression] = STATE(3893),
    [sym_delete_expression] = STATE(3893),
    [sym_throw_expression] = STATE(3893),
    [sym_assert_expression] = STATE(3893),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3893),
    [sym_new_expression] = STATE(3893),
    [sym_typeid_expression] = STATE(3893),
    [sym_is_expression] = STATE(3893),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3893),
    [sym_char_literal] = STATE(3893),
    [sym_array_literal] = STATE(3893),
    [sym_function_literal] = STATE(3893),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3893),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4263),
    [sym_false] = ACTIONS(4263),
    [sym_null] = ACTIONS(4263),
    [sym_super] = ACTIONS(4263),
    [sym_this] = ACTIONS(4263),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4265),
    [sym_float_literal] = ACTIONS(4265),
    [sym__string] = ACTIONS(3327),
  },
  [1339] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3632),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3632),
    [sym_primary_expression] = STATE(3632),
    [sym__primary_expr] = STATE(3632),
    [sym_index_expression] = STATE(3632),
    [sym_postfix_expression] = STATE(3632),
    [sym_unary_expression] = STATE(3632),
    [sym__unary_expr] = STATE(3632),
    [sym_property_expression] = STATE(3632),
    [sym_cast_expression] = STATE(3632),
    [sym_delete_expression] = STATE(3632),
    [sym_throw_expression] = STATE(3632),
    [sym_assert_expression] = STATE(3632),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3632),
    [sym_new_expression] = STATE(3632),
    [sym_typeid_expression] = STATE(3632),
    [sym_is_expression] = STATE(3632),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3632),
    [sym_char_literal] = STATE(3632),
    [sym_array_literal] = STATE(3632),
    [sym_function_literal] = STATE(3632),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3632),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4255),
    [sym_false] = ACTIONS(4255),
    [sym_null] = ACTIONS(4255),
    [sym_super] = ACTIONS(4255),
    [sym_this] = ACTIONS(4255),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4257),
    [sym_float_literal] = ACTIONS(4257),
    [sym__string] = ACTIONS(233),
  },
  [1340] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3651),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3651),
    [sym_primary_expression] = STATE(3651),
    [sym__primary_expr] = STATE(3651),
    [sym_index_expression] = STATE(3651),
    [sym_postfix_expression] = STATE(3651),
    [sym_unary_expression] = STATE(3651),
    [sym__unary_expr] = STATE(3651),
    [sym_property_expression] = STATE(3651),
    [sym_cast_expression] = STATE(3651),
    [sym_delete_expression] = STATE(3651),
    [sym_throw_expression] = STATE(3651),
    [sym_assert_expression] = STATE(3651),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3651),
    [sym_new_expression] = STATE(3651),
    [sym_typeid_expression] = STATE(3651),
    [sym_is_expression] = STATE(3651),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3651),
    [sym_char_literal] = STATE(3651),
    [sym_array_literal] = STATE(3651),
    [sym_function_literal] = STATE(3651),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3651),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4227),
    [sym_false] = ACTIONS(4227),
    [sym_null] = ACTIONS(4227),
    [sym_super] = ACTIONS(4227),
    [sym_this] = ACTIONS(4227),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4229),
    [sym_float_literal] = ACTIONS(4229),
    [sym__string] = ACTIONS(233),
  },
  [1341] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3702),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3702),
    [sym_primary_expression] = STATE(3702),
    [sym__primary_expr] = STATE(3702),
    [sym_index_expression] = STATE(3702),
    [sym_postfix_expression] = STATE(3702),
    [sym_unary_expression] = STATE(3702),
    [sym__unary_expr] = STATE(3702),
    [sym_property_expression] = STATE(3702),
    [sym_cast_expression] = STATE(3702),
    [sym_delete_expression] = STATE(3702),
    [sym_throw_expression] = STATE(3702),
    [sym_assert_expression] = STATE(3702),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3702),
    [sym_new_expression] = STATE(3702),
    [sym_typeid_expression] = STATE(3702),
    [sym_is_expression] = STATE(3702),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3702),
    [sym_char_literal] = STATE(3702),
    [sym_array_literal] = STATE(3702),
    [sym_function_literal] = STATE(3702),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3702),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4239),
    [sym_false] = ACTIONS(4239),
    [sym_null] = ACTIONS(4239),
    [sym_super] = ACTIONS(4239),
    [sym_this] = ACTIONS(4239),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4241),
    [sym_float_literal] = ACTIONS(4241),
    [sym__string] = ACTIONS(233),
  },
  [1342] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3632),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3881),
    [sym_call_expression] = STATE(3632),
    [sym_primary_expression] = STATE(3632),
    [sym__primary_expr] = STATE(3632),
    [sym_index_expression] = STATE(3632),
    [sym_postfix_expression] = STATE(3632),
    [sym_unary_expression] = STATE(3632),
    [sym__unary_expr] = STATE(3632),
    [sym_property_expression] = STATE(3632),
    [sym_cast_expression] = STATE(3632),
    [sym_delete_expression] = STATE(3632),
    [sym_throw_expression] = STATE(3632),
    [sym_assert_expression] = STATE(3632),
    [sym_mixin_expression] = STATE(3879),
    [sym_import_expression] = STATE(3632),
    [sym_new_expression] = STATE(3632),
    [sym_typeid_expression] = STATE(3632),
    [sym_is_expression] = STATE(3632),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3632),
    [sym_char_literal] = STATE(3632),
    [sym_array_literal] = STATE(3632),
    [sym_function_literal] = STATE(3632),
    [sym__parameter_with_member_attributes] = STATE(4942),
    [sym_special_keyword] = STATE(3632),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3878),
    [sym_traits_expression] = STATE(3879),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3181),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3185),
    [anon_sym_AMP] = ACTIONS(3187),
    [anon_sym_DASH] = ACTIONS(3189),
    [anon_sym_DASH_DASH] = ACTIONS(3187),
    [anon_sym_PLUS] = ACTIONS(3189),
    [anon_sym_PLUS_PLUS] = ACTIONS(3187),
    [anon_sym_BANG] = ACTIONS(3187),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3187),
    [anon_sym_TILDE] = ACTIONS(3187),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4255),
    [sym_false] = ACTIONS(4255),
    [sym_null] = ACTIONS(4255),
    [sym_super] = ACTIONS(4255),
    [sym_this] = ACTIONS(4255),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3193),
    [sym_cast] = ACTIONS(3195),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3197),
    [sym_delete] = ACTIONS(3199),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3201),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3203),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3205),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4257),
    [sym_float_literal] = ACTIONS(4257),
    [sym__string] = ACTIONS(233),
  },
  [1343] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4271),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1344] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3912),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3912),
    [sym_primary_expression] = STATE(3912),
    [sym__primary_expr] = STATE(3912),
    [sym_index_expression] = STATE(3912),
    [sym_postfix_expression] = STATE(3912),
    [sym_unary_expression] = STATE(3912),
    [sym__unary_expr] = STATE(3912),
    [sym_property_expression] = STATE(3912),
    [sym_cast_expression] = STATE(3912),
    [sym_delete_expression] = STATE(3912),
    [sym_throw_expression] = STATE(3912),
    [sym_assert_expression] = STATE(3912),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3912),
    [sym_new_expression] = STATE(3912),
    [sym_typeid_expression] = STATE(3912),
    [sym_is_expression] = STATE(3912),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3912),
    [sym_char_literal] = STATE(3912),
    [sym_array_literal] = STATE(3912),
    [sym_function_literal] = STATE(3912),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3912),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4200),
    [sym_false] = ACTIONS(4200),
    [sym_null] = ACTIONS(4200),
    [sym_super] = ACTIONS(4200),
    [sym_this] = ACTIONS(4200),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4202),
    [sym_float_literal] = ACTIONS(4202),
    [sym__string] = ACTIONS(3327),
  },
  [1345] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3871),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3871),
    [sym_primary_expression] = STATE(3871),
    [sym__primary_expr] = STATE(3871),
    [sym_index_expression] = STATE(3871),
    [sym_postfix_expression] = STATE(3871),
    [sym_unary_expression] = STATE(3871),
    [sym__unary_expr] = STATE(3871),
    [sym_property_expression] = STATE(3871),
    [sym_cast_expression] = STATE(3871),
    [sym_delete_expression] = STATE(3871),
    [sym_throw_expression] = STATE(3871),
    [sym_assert_expression] = STATE(3871),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3871),
    [sym_new_expression] = STATE(3871),
    [sym_typeid_expression] = STATE(3871),
    [sym_is_expression] = STATE(3871),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3871),
    [sym_char_literal] = STATE(3871),
    [sym_array_literal] = STATE(3871),
    [sym_function_literal] = STATE(3871),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3871),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4247),
    [sym_false] = ACTIONS(4247),
    [sym_null] = ACTIONS(4247),
    [sym_super] = ACTIONS(4247),
    [sym_this] = ACTIONS(4247),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4249),
    [sym_float_literal] = ACTIONS(4249),
    [sym__string] = ACTIONS(3327),
  },
  [1346] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3876),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3876),
    [sym_primary_expression] = STATE(3876),
    [sym__primary_expr] = STATE(3876),
    [sym_index_expression] = STATE(3876),
    [sym_postfix_expression] = STATE(3876),
    [sym_unary_expression] = STATE(3876),
    [sym__unary_expr] = STATE(3876),
    [sym_property_expression] = STATE(3876),
    [sym_cast_expression] = STATE(3876),
    [sym_delete_expression] = STATE(3876),
    [sym_throw_expression] = STATE(3876),
    [sym_assert_expression] = STATE(3876),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3876),
    [sym_new_expression] = STATE(3876),
    [sym_typeid_expression] = STATE(3876),
    [sym_is_expression] = STATE(3876),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3876),
    [sym_char_literal] = STATE(3876),
    [sym_array_literal] = STATE(3876),
    [sym_function_literal] = STATE(3876),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3876),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4259),
    [sym_false] = ACTIONS(4259),
    [sym_null] = ACTIONS(4259),
    [sym_super] = ACTIONS(4259),
    [sym_this] = ACTIONS(4259),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4261),
    [sym_float_literal] = ACTIONS(4261),
    [sym__string] = ACTIONS(3327),
  },
  [1347] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3908),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3927),
    [sym_call_expression] = STATE(3908),
    [sym_primary_expression] = STATE(3908),
    [sym__primary_expr] = STATE(3908),
    [sym_index_expression] = STATE(3908),
    [sym_postfix_expression] = STATE(3908),
    [sym_unary_expression] = STATE(3908),
    [sym__unary_expr] = STATE(3908),
    [sym_property_expression] = STATE(3908),
    [sym_cast_expression] = STATE(3908),
    [sym_delete_expression] = STATE(3908),
    [sym_throw_expression] = STATE(3908),
    [sym_assert_expression] = STATE(3908),
    [sym_mixin_expression] = STATE(3928),
    [sym_import_expression] = STATE(3908),
    [sym_new_expression] = STATE(3908),
    [sym_typeid_expression] = STATE(3908),
    [sym_is_expression] = STATE(3908),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3908),
    [sym_char_literal] = STATE(3908),
    [sym_array_literal] = STATE(3908),
    [sym_function_literal] = STATE(3908),
    [sym__parameter_with_member_attributes] = STATE(4880),
    [sym_special_keyword] = STATE(3908),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3922),
    [sym_traits_expression] = STATE(3928),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3247),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3253),
    [anon_sym_AMP] = ACTIONS(3255),
    [anon_sym_DASH] = ACTIONS(3257),
    [anon_sym_DASH_DASH] = ACTIONS(3255),
    [anon_sym_PLUS] = ACTIONS(3257),
    [anon_sym_PLUS_PLUS] = ACTIONS(3255),
    [anon_sym_BANG] = ACTIONS(3255),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3255),
    [anon_sym_TILDE] = ACTIONS(3255),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4176),
    [sym_false] = ACTIONS(4176),
    [sym_null] = ACTIONS(4176),
    [sym_super] = ACTIONS(4176),
    [sym_this] = ACTIONS(4176),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3273),
    [sym_cast] = ACTIONS(3275),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3277),
    [sym_delete] = ACTIONS(3279),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3283),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3293),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3295),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4178),
    [sym_float_literal] = ACTIONS(4178),
    [sym__string] = ACTIONS(3327),
  },
  [1348] = {
    [sym_token_string] = STATE(3547),
    [sym_dollar] = STATE(3901),
    [sym_type] = STATE(6678),
    [sym_type_ctor] = STATE(4271),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5320),
    [sym__builtin_type] = STATE(5230),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3906),
    [sym_call_expression] = STATE(3901),
    [sym_primary_expression] = STATE(3901),
    [sym__primary_expr] = STATE(3901),
    [sym_index_expression] = STATE(3901),
    [sym_postfix_expression] = STATE(3901),
    [sym_unary_expression] = STATE(3901),
    [sym__unary_expr] = STATE(3901),
    [sym_property_expression] = STATE(3901),
    [sym_cast_expression] = STATE(3901),
    [sym_delete_expression] = STATE(3901),
    [sym_throw_expression] = STATE(3901),
    [sym_assert_expression] = STATE(3901),
    [sym_mixin_expression] = STATE(3910),
    [sym_import_expression] = STATE(3901),
    [sym_new_expression] = STATE(3901),
    [sym_typeid_expression] = STATE(3901),
    [sym_is_expression] = STATE(3901),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3901),
    [sym_char_literal] = STATE(3901),
    [sym_array_literal] = STATE(3901),
    [sym_function_literal] = STATE(3901),
    [sym__parameter_with_member_attributes] = STATE(4905),
    [sym_special_keyword] = STATE(3901),
    [sym_block_statement] = STATE(3941),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3941),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(3914),
    [sym_traits_expression] = STATE(3910),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(3617),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(3467),
    [anon_sym_AMP] = ACTIONS(3619),
    [anon_sym_DASH] = ACTIONS(3621),
    [anon_sym_DASH_DASH] = ACTIONS(3619),
    [anon_sym_PLUS] = ACTIONS(3621),
    [anon_sym_PLUS_PLUS] = ACTIONS(3619),
    [anon_sym_BANG] = ACTIONS(3619),
    [anon_sym_LPAREN] = ACTIONS(3259),
    [anon_sym_LBRACK] = ACTIONS(3261),
    [anon_sym_DOLLAR] = ACTIONS(3265),
    [anon_sym_STAR] = ACTIONS(3619),
    [anon_sym_TILDE] = ACTIONS(3619),
    [sym_bool] = ACTIONS(3267),
    [sym_byte] = ACTIONS(3267),
    [sym_ubyte] = ACTIONS(3267),
    [sym_char] = ACTIONS(3267),
    [sym_short] = ACTIONS(3267),
    [sym_ushort] = ACTIONS(3267),
    [sym_int] = ACTIONS(3267),
    [sym_uint] = ACTIONS(3267),
    [sym_long] = ACTIONS(3267),
    [sym_ulong] = ACTIONS(3267),
    [sym_cent] = ACTIONS(3267),
    [sym_ucent] = ACTIONS(3267),
    [sym_wchar] = ACTIONS(3267),
    [sym_dchar] = ACTIONS(3267),
    [sym_float] = ACTIONS(3267),
    [sym_double] = ACTIONS(3267),
    [sym_real] = ACTIONS(3267),
    [sym_ifloat] = ACTIONS(3267),
    [sym_idouble] = ACTIONS(3267),
    [sym_ireal] = ACTIONS(3267),
    [sym_cfloat] = ACTIONS(3267),
    [sym_cdouble] = ACTIONS(3267),
    [sym_creal] = ACTIONS(3267),
    [sym_size_t] = ACTIONS(3267),
    [sym_ptrdiff_t] = ACTIONS(3267),
    [sym_string] = ACTIONS(3267),
    [sym_cstring] = ACTIONS(3267),
    [sym_dstring] = ACTIONS(3267),
    [sym_wstring] = ACTIONS(3267),
    [sym_noreturn] = ACTIONS(3267),
    [sym_true] = ACTIONS(4267),
    [sym_false] = ACTIONS(4267),
    [sym_null] = ACTIONS(4267),
    [sym_super] = ACTIONS(4267),
    [sym_this] = ACTIONS(4267),
    [sym_assert] = ACTIONS(3271),
    [sym_auto] = ACTIONS(3623),
    [sym_cast] = ACTIONS(3625),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3627),
    [sym_delete] = ACTIONS(3629),
    [sym_do] = ACTIONS(3281),
    [sym_function] = ACTIONS(3631),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3285),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3287),
    [sym_mixin] = ACTIONS(3289),
    [sym_new] = ACTIONS(3291),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3633),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3635),
    [sym_typeid] = ACTIONS(3297),
    [sym_typeof] = ACTIONS(3299),
    [sym_traits] = ACTIONS(3301),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3303),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4269),
    [sym_float_literal] = ACTIONS(4269),
    [sym__string] = ACTIONS(3327),
  },
  [1349] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4273),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1350] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3989),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3989),
    [sym_primary_expression] = STATE(3989),
    [sym__primary_expr] = STATE(3989),
    [sym_index_expression] = STATE(3989),
    [sym_postfix_expression] = STATE(3989),
    [sym_unary_expression] = STATE(3989),
    [sym__unary_expr] = STATE(3989),
    [sym_property_expression] = STATE(3989),
    [sym_cast_expression] = STATE(3989),
    [sym_delete_expression] = STATE(3989),
    [sym_throw_expression] = STATE(3989),
    [sym_assert_expression] = STATE(3989),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3989),
    [sym_new_expression] = STATE(3989),
    [sym_typeid_expression] = STATE(3989),
    [sym_is_expression] = STATE(3989),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3989),
    [sym_char_literal] = STATE(3989),
    [sym_array_literal] = STATE(3989),
    [sym_function_literal] = STATE(3989),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3989),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4275),
    [sym_false] = ACTIONS(4275),
    [sym_null] = ACTIONS(4275),
    [sym_super] = ACTIONS(4275),
    [sym_this] = ACTIONS(4275),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4277),
    [sym_float_literal] = ACTIONS(4277),
    [sym__string] = ACTIONS(3713),
  },
  [1351] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3702),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3884),
    [sym_call_expression] = STATE(3702),
    [sym_primary_expression] = STATE(3702),
    [sym__primary_expr] = STATE(3702),
    [sym_index_expression] = STATE(3702),
    [sym_postfix_expression] = STATE(3702),
    [sym_unary_expression] = STATE(3702),
    [sym__unary_expr] = STATE(3702),
    [sym_property_expression] = STATE(3702),
    [sym_cast_expression] = STATE(3702),
    [sym_delete_expression] = STATE(3702),
    [sym_throw_expression] = STATE(3702),
    [sym_assert_expression] = STATE(3702),
    [sym_mixin_expression] = STATE(3886),
    [sym_import_expression] = STATE(3702),
    [sym_new_expression] = STATE(3702),
    [sym_typeid_expression] = STATE(3702),
    [sym_is_expression] = STATE(3702),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3702),
    [sym_char_literal] = STATE(3702),
    [sym_array_literal] = STATE(3702),
    [sym_function_literal] = STATE(3702),
    [sym__parameter_with_member_attributes] = STATE(4830),
    [sym_special_keyword] = STATE(3702),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3888),
    [sym_traits_expression] = STATE(3886),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(3593),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(3239),
    [anon_sym_AMP] = ACTIONS(3595),
    [anon_sym_DASH] = ACTIONS(3597),
    [anon_sym_DASH_DASH] = ACTIONS(3595),
    [anon_sym_PLUS] = ACTIONS(3597),
    [anon_sym_PLUS_PLUS] = ACTIONS(3595),
    [anon_sym_BANG] = ACTIONS(3595),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(3595),
    [anon_sym_TILDE] = ACTIONS(3595),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4239),
    [sym_false] = ACTIONS(4239),
    [sym_null] = ACTIONS(4239),
    [sym_super] = ACTIONS(4239),
    [sym_this] = ACTIONS(4239),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(3599),
    [sym_cast] = ACTIONS(3601),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3603),
    [sym_delete] = ACTIONS(3605),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(3607),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3609),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3611),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4241),
    [sym_float_literal] = ACTIONS(4241),
    [sym__string] = ACTIONS(233),
  },
  [1352] = {
    [sym_token_string] = STATE(3527),
    [sym_dollar] = STATE(3949),
    [sym_type] = STATE(6778),
    [sym_type_ctor] = STATE(4269),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5348),
    [sym__builtin_type] = STATE(5285),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3866),
    [sym_call_expression] = STATE(3949),
    [sym_primary_expression] = STATE(3949),
    [sym__primary_expr] = STATE(3949),
    [sym_index_expression] = STATE(3949),
    [sym_postfix_expression] = STATE(3949),
    [sym_unary_expression] = STATE(3949),
    [sym__unary_expr] = STATE(3949),
    [sym_property_expression] = STATE(3949),
    [sym_cast_expression] = STATE(3949),
    [sym_delete_expression] = STATE(3949),
    [sym_throw_expression] = STATE(3949),
    [sym_assert_expression] = STATE(3949),
    [sym_mixin_expression] = STATE(3865),
    [sym_import_expression] = STATE(3949),
    [sym_new_expression] = STATE(3949),
    [sym_typeid_expression] = STATE(3949),
    [sym_is_expression] = STATE(3949),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3949),
    [sym_char_literal] = STATE(3949),
    [sym_array_literal] = STATE(3949),
    [sym_function_literal] = STATE(3949),
    [sym__parameter_with_member_attributes] = STATE(4868),
    [sym_special_keyword] = STATE(3949),
    [sym_block_statement] = STATE(4042),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4042),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(3864),
    [sym_traits_expression] = STATE(3865),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(3641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(3647),
    [anon_sym_AMP] = ACTIONS(3649),
    [anon_sym_DASH] = ACTIONS(3651),
    [anon_sym_DASH_DASH] = ACTIONS(3649),
    [anon_sym_PLUS] = ACTIONS(3651),
    [anon_sym_PLUS_PLUS] = ACTIONS(3649),
    [anon_sym_BANG] = ACTIONS(3649),
    [anon_sym_LPAREN] = ACTIONS(3653),
    [anon_sym_LBRACK] = ACTIONS(3655),
    [anon_sym_DOLLAR] = ACTIONS(3657),
    [anon_sym_STAR] = ACTIONS(3649),
    [anon_sym_TILDE] = ACTIONS(3649),
    [sym_bool] = ACTIONS(3659),
    [sym_byte] = ACTIONS(3659),
    [sym_ubyte] = ACTIONS(3659),
    [sym_char] = ACTIONS(3659),
    [sym_short] = ACTIONS(3659),
    [sym_ushort] = ACTIONS(3659),
    [sym_int] = ACTIONS(3659),
    [sym_uint] = ACTIONS(3659),
    [sym_long] = ACTIONS(3659),
    [sym_ulong] = ACTIONS(3659),
    [sym_cent] = ACTIONS(3659),
    [sym_ucent] = ACTIONS(3659),
    [sym_wchar] = ACTIONS(3659),
    [sym_dchar] = ACTIONS(3659),
    [sym_float] = ACTIONS(3659),
    [sym_double] = ACTIONS(3659),
    [sym_real] = ACTIONS(3659),
    [sym_ifloat] = ACTIONS(3659),
    [sym_idouble] = ACTIONS(3659),
    [sym_ireal] = ACTIONS(3659),
    [sym_cfloat] = ACTIONS(3659),
    [sym_cdouble] = ACTIONS(3659),
    [sym_creal] = ACTIONS(3659),
    [sym_size_t] = ACTIONS(3659),
    [sym_ptrdiff_t] = ACTIONS(3659),
    [sym_string] = ACTIONS(3659),
    [sym_cstring] = ACTIONS(3659),
    [sym_dstring] = ACTIONS(3659),
    [sym_wstring] = ACTIONS(3659),
    [sym_noreturn] = ACTIONS(3659),
    [sym_true] = ACTIONS(4279),
    [sym_false] = ACTIONS(4279),
    [sym_null] = ACTIONS(4279),
    [sym_super] = ACTIONS(4279),
    [sym_this] = ACTIONS(4279),
    [sym_assert] = ACTIONS(3663),
    [sym_auto] = ACTIONS(3665),
    [sym_cast] = ACTIONS(3667),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(3669),
    [sym_delete] = ACTIONS(3671),
    [sym_do] = ACTIONS(3673),
    [sym_function] = ACTIONS(3675),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(3677),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(3679),
    [sym_mixin] = ACTIONS(3147),
    [sym_new] = ACTIONS(3681),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(3683),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(3685),
    [sym_typeid] = ACTIONS(3687),
    [sym_typeof] = ACTIONS(3155),
    [sym_traits] = ACTIONS(3157),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(3689),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4281),
    [sym_float_literal] = ACTIONS(4281),
    [sym__string] = ACTIONS(3713),
  },
  [1353] = {
    [sym_token_string] = STATE(3437),
    [sym_dollar] = STATE(3629),
    [sym_type] = STATE(6705),
    [sym_type_ctor] = STATE(4280),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(5082),
    [sym__builtin_type] = STATE(5059),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(3539),
    [sym_call_expression] = STATE(3629),
    [sym_primary_expression] = STATE(3629),
    [sym__primary_expr] = STATE(3629),
    [sym_index_expression] = STATE(3629),
    [sym_postfix_expression] = STATE(3629),
    [sym_unary_expression] = STATE(3629),
    [sym__unary_expr] = STATE(3629),
    [sym_property_expression] = STATE(3629),
    [sym_cast_expression] = STATE(3629),
    [sym_delete_expression] = STATE(3629),
    [sym_throw_expression] = STATE(3629),
    [sym_assert_expression] = STATE(3629),
    [sym_mixin_expression] = STATE(3573),
    [sym_import_expression] = STATE(3629),
    [sym_new_expression] = STATE(3629),
    [sym_typeid_expression] = STATE(3629),
    [sym_is_expression] = STATE(3629),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3629),
    [sym_char_literal] = STATE(3629),
    [sym_array_literal] = STATE(3629),
    [sym_function_literal] = STATE(3629),
    [sym__parameter_with_member_attributes] = STATE(4864),
    [sym_special_keyword] = STATE(3629),
    [sym_block_statement] = STATE(3806),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3806),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(3577),
    [sym_traits_expression] = STATE(3573),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(2956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(87),
    [anon_sym_AMP] = ACTIONS(89),
    [anon_sym_DASH] = ACTIONS(91),
    [anon_sym_DASH_DASH] = ACTIONS(89),
    [anon_sym_PLUS] = ACTIONS(91),
    [anon_sym_PLUS_PLUS] = ACTIONS(89),
    [anon_sym_BANG] = ACTIONS(89),
    [anon_sym_LPAREN] = ACTIONS(93),
    [anon_sym_LBRACK] = ACTIONS(95),
    [anon_sym_DOLLAR] = ACTIONS(99),
    [anon_sym_STAR] = ACTIONS(89),
    [anon_sym_TILDE] = ACTIONS(89),
    [sym_bool] = ACTIONS(103),
    [sym_byte] = ACTIONS(103),
    [sym_ubyte] = ACTIONS(103),
    [sym_char] = ACTIONS(103),
    [sym_short] = ACTIONS(103),
    [sym_ushort] = ACTIONS(103),
    [sym_int] = ACTIONS(103),
    [sym_uint] = ACTIONS(103),
    [sym_long] = ACTIONS(103),
    [sym_ulong] = ACTIONS(103),
    [sym_cent] = ACTIONS(103),
    [sym_ucent] = ACTIONS(103),
    [sym_wchar] = ACTIONS(103),
    [sym_dchar] = ACTIONS(103),
    [sym_float] = ACTIONS(103),
    [sym_double] = ACTIONS(103),
    [sym_real] = ACTIONS(103),
    [sym_ifloat] = ACTIONS(103),
    [sym_idouble] = ACTIONS(103),
    [sym_ireal] = ACTIONS(103),
    [sym_cfloat] = ACTIONS(103),
    [sym_cdouble] = ACTIONS(103),
    [sym_creal] = ACTIONS(103),
    [sym_size_t] = ACTIONS(103),
    [sym_ptrdiff_t] = ACTIONS(103),
    [sym_string] = ACTIONS(103),
    [sym_cstring] = ACTIONS(103),
    [sym_dstring] = ACTIONS(103),
    [sym_wstring] = ACTIONS(103),
    [sym_noreturn] = ACTIONS(103),
    [sym_true] = ACTIONS(4184),
    [sym_false] = ACTIONS(4184),
    [sym_null] = ACTIONS(4184),
    [sym_super] = ACTIONS(4184),
    [sym_this] = ACTIONS(4283),
    [sym_assert] = ACTIONS(113),
    [sym_auto] = ACTIONS(2962),
    [sym_cast] = ACTIONS(121),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(131),
    [sym_delete] = ACTIONS(133),
    [sym_do] = ACTIONS(2966),
    [sym_function] = ACTIONS(147),
    [sym_immutable] = ACTIONS(2964),
    [sym_import] = ACTIONS(2968),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_is] = ACTIONS(161),
    [sym_mixin] = ACTIONS(2970),
    [sym_new] = ACTIONS(165),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(2972),
    [sym_shared] = ACTIONS(2964),
    [sym_throw] = ACTIONS(189),
    [sym_typeid] = ACTIONS(193),
    [sym_typeof] = ACTIONS(195),
    [sym_traits] = ACTIONS(207),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(247),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4186),
    [sym_float_literal] = ACTIONS(4186),
    [sym__string] = ACTIONS(233),
  },
  [1354] = {
    [sym_identifier] = ACTIONS(4285),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4287),
    [anon_sym_RBRACE] = ACTIONS(4287),
    [anon_sym_LBRACE] = ACTIONS(4287),
    [anon_sym_DOT] = ACTIONS(4287),
    [anon_sym_AMP] = ACTIONS(4287),
    [anon_sym_DASH] = ACTIONS(4285),
    [anon_sym_DASH_DASH] = ACTIONS(4287),
    [anon_sym_PLUS] = ACTIONS(4285),
    [anon_sym_PLUS_PLUS] = ACTIONS(4287),
    [anon_sym_BANG] = ACTIONS(4287),
    [anon_sym_LPAREN] = ACTIONS(4287),
    [anon_sym_RPAREN] = ACTIONS(4287),
    [anon_sym_LBRACK] = ACTIONS(4287),
    [anon_sym_SEMI] = ACTIONS(4287),
    [anon_sym_DOLLAR] = ACTIONS(4287),
    [anon_sym_STAR] = ACTIONS(4287),
    [anon_sym_TILDE] = ACTIONS(4287),
    [anon_sym_AT] = ACTIONS(4287),
    [sym_bool] = ACTIONS(4285),
    [sym_byte] = ACTIONS(4285),
    [sym_ubyte] = ACTIONS(4285),
    [sym_char] = ACTIONS(4285),
    [sym_short] = ACTIONS(4285),
    [sym_ushort] = ACTIONS(4285),
    [sym_int] = ACTIONS(4285),
    [sym_uint] = ACTIONS(4285),
    [sym_long] = ACTIONS(4285),
    [sym_ulong] = ACTIONS(4285),
    [sym_cent] = ACTIONS(4285),
    [sym_ucent] = ACTIONS(4285),
    [sym_wchar] = ACTIONS(4285),
    [sym_dchar] = ACTIONS(4285),
    [sym_float] = ACTIONS(4285),
    [sym_double] = ACTIONS(4285),
    [sym_real] = ACTIONS(4285),
    [sym_ifloat] = ACTIONS(4285),
    [sym_idouble] = ACTIONS(4285),
    [sym_ireal] = ACTIONS(4285),
    [sym_cfloat] = ACTIONS(4285),
    [sym_cdouble] = ACTIONS(4285),
    [sym_creal] = ACTIONS(4285),
    [sym_size_t] = ACTIONS(4285),
    [sym_ptrdiff_t] = ACTIONS(4285),
    [sym_string] = ACTIONS(4285),
    [sym_cstring] = ACTIONS(4285),
    [sym_dstring] = ACTIONS(4285),
    [sym_wstring] = ACTIONS(4285),
    [sym_noreturn] = ACTIONS(4285),
    [sym_true] = ACTIONS(4285),
    [sym_false] = ACTIONS(4285),
    [sym_null] = ACTIONS(4285),
    [sym_super] = ACTIONS(4285),
    [sym_this] = ACTIONS(4285),
    [sym_abstract] = ACTIONS(4285),
    [sym_alias] = ACTIONS(4285),
    [sym_align] = ACTIONS(4285),
    [sym_asm] = ACTIONS(4285),
    [sym_assert] = ACTIONS(4285),
    [sym_auto] = ACTIONS(4285),
    [sym_break] = ACTIONS(4285),
    [sym_case] = ACTIONS(4285),
    [sym_cast] = ACTIONS(4285),
    [sym_catch] = ACTIONS(4285),
    [sym_class] = ACTIONS(4285),
    [sym_const] = ACTIONS(4285),
    [sym_continue] = ACTIONS(4285),
    [sym_debug] = ACTIONS(4285),
    [sym_default] = ACTIONS(4285),
    [sym_delegate] = ACTIONS(4285),
    [sym_delete] = ACTIONS(4285),
    [sym_deprecated] = ACTIONS(4285),
    [sym_do] = ACTIONS(4285),
    [sym_else] = ACTIONS(4285),
    [sym_enum] = ACTIONS(4285),
    [sym_export] = ACTIONS(4285),
    [sym_extern] = ACTIONS(4285),
    [sym_final] = ACTIONS(4285),
    [sym_finally] = ACTIONS(4285),
    [sym_for] = ACTIONS(4285),
    [sym_foreach] = ACTIONS(4285),
    [sym_foreach_reverse] = ACTIONS(4285),
    [sym_function] = ACTIONS(4285),
    [sym_goto] = ACTIONS(4285),
    [sym_if] = ACTIONS(4285),
    [sym_immutable] = ACTIONS(4285),
    [sym_import] = ACTIONS(4285),
    [sym_in] = ACTIONS(4285),
    [sym_inout] = ACTIONS(4285),
    [sym_interface] = ACTIONS(4285),
    [sym_invariant] = ACTIONS(4285),
    [sym_is] = ACTIONS(4285),
    [sym_mixin] = ACTIONS(4285),
    [sym_new] = ACTIONS(4285),
    [sym_nothrow] = ACTIONS(4285),
    [sym_out] = ACTIONS(4285),
    [sym_override] = ACTIONS(4285),
    [sym_package] = ACTIONS(4285),
    [sym_pragma] = ACTIONS(4285),
    [sym_private] = ACTIONS(4285),
    [sym_protected] = ACTIONS(4285),
    [sym_public] = ACTIONS(4285),
    [sym_pure] = ACTIONS(4285),
    [sym_ref] = ACTIONS(4285),
    [sym_return] = ACTIONS(4285),
    [sym_scope] = ACTIONS(4285),
    [sym_shared] = ACTIONS(4285),
    [sym_static] = ACTIONS(4285),
    [sym_struct] = ACTIONS(4285),
    [sym_switch] = ACTIONS(4285),
    [sym_synchronized] = ACTIONS(4285),
    [sym_template] = ACTIONS(4285),
    [sym_throw] = ACTIONS(4285),
    [sym_try] = ACTIONS(4285),
    [sym_typeid] = ACTIONS(4285),
    [sym_typeof] = ACTIONS(4285),
    [sym_union] = ACTIONS(4285),
    [sym_unittest] = ACTIONS(4285),
    [sym_version] = ACTIONS(4285),
    [sym_while] = ACTIONS(4285),
    [sym_with] = ACTIONS(4285),
    [sym_gshared] = ACTIONS(4285),
    [sym_traits] = ACTIONS(4285),
    [sym_vector] = ACTIONS(4285),
    [sym_void] = ACTIONS(4285),
    [anon_sym_BQUOTE] = ACTIONS(4287),
    [anon_sym_r_DQUOTE] = ACTIONS(4287),
    [anon_sym_x_DQUOTE] = ACTIONS(4287),
    [anon_sym_DQUOTE] = ACTIONS(4287),
    [anon_sym_i_BQUOTE] = ACTIONS(4287),
    [anon_sym_i_DQUOTE] = ACTIONS(4287),
    [anon_sym_iq_LBRACE] = ACTIONS(4287),
    [aux_sym_char_literal_token1] = ACTIONS(4287),
    [anon_sym_SQUOTE] = ACTIONS(4285),
    [anon_sym___DATE__] = ACTIONS(4285),
    [anon_sym___FILE__] = ACTIONS(4285),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4285),
    [anon_sym___FUNCTION__] = ACTIONS(4285),
    [anon_sym___LINE__] = ACTIONS(4285),
    [anon_sym___MODULE__] = ACTIONS(4285),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4285),
    [anon_sym___TIME__] = ACTIONS(4285),
    [anon_sym___TIMESTAMP__] = ACTIONS(4285),
    [anon_sym___VENDOR__] = ACTIONS(4285),
    [anon_sym___VERSION__] = ACTIONS(4285),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4287),
    [sym_float_literal] = ACTIONS(4287),
    [sym__string] = ACTIONS(4287),
  },
  [1355] = {
    [sym_identifier] = ACTIONS(4289),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4291),
    [anon_sym_RBRACE] = ACTIONS(4291),
    [anon_sym_LBRACE] = ACTIONS(4291),
    [anon_sym_DOT] = ACTIONS(4291),
    [anon_sym_AMP] = ACTIONS(4291),
    [anon_sym_DASH] = ACTIONS(4289),
    [anon_sym_DASH_DASH] = ACTIONS(4291),
    [anon_sym_PLUS] = ACTIONS(4289),
    [anon_sym_PLUS_PLUS] = ACTIONS(4291),
    [anon_sym_BANG] = ACTIONS(4291),
    [anon_sym_LPAREN] = ACTIONS(4291),
    [anon_sym_RPAREN] = ACTIONS(4291),
    [anon_sym_LBRACK] = ACTIONS(4291),
    [anon_sym_SEMI] = ACTIONS(4291),
    [anon_sym_DOLLAR] = ACTIONS(4291),
    [anon_sym_STAR] = ACTIONS(4291),
    [anon_sym_TILDE] = ACTIONS(4291),
    [anon_sym_AT] = ACTIONS(4291),
    [sym_bool] = ACTIONS(4289),
    [sym_byte] = ACTIONS(4289),
    [sym_ubyte] = ACTIONS(4289),
    [sym_char] = ACTIONS(4289),
    [sym_short] = ACTIONS(4289),
    [sym_ushort] = ACTIONS(4289),
    [sym_int] = ACTIONS(4289),
    [sym_uint] = ACTIONS(4289),
    [sym_long] = ACTIONS(4289),
    [sym_ulong] = ACTIONS(4289),
    [sym_cent] = ACTIONS(4289),
    [sym_ucent] = ACTIONS(4289),
    [sym_wchar] = ACTIONS(4289),
    [sym_dchar] = ACTIONS(4289),
    [sym_float] = ACTIONS(4289),
    [sym_double] = ACTIONS(4289),
    [sym_real] = ACTIONS(4289),
    [sym_ifloat] = ACTIONS(4289),
    [sym_idouble] = ACTIONS(4289),
    [sym_ireal] = ACTIONS(4289),
    [sym_cfloat] = ACTIONS(4289),
    [sym_cdouble] = ACTIONS(4289),
    [sym_creal] = ACTIONS(4289),
    [sym_size_t] = ACTIONS(4289),
    [sym_ptrdiff_t] = ACTIONS(4289),
    [sym_string] = ACTIONS(4289),
    [sym_cstring] = ACTIONS(4289),
    [sym_dstring] = ACTIONS(4289),
    [sym_wstring] = ACTIONS(4289),
    [sym_noreturn] = ACTIONS(4289),
    [sym_true] = ACTIONS(4289),
    [sym_false] = ACTIONS(4289),
    [sym_null] = ACTIONS(4289),
    [sym_super] = ACTIONS(4289),
    [sym_this] = ACTIONS(4289),
    [sym_abstract] = ACTIONS(4289),
    [sym_alias] = ACTIONS(4289),
    [sym_align] = ACTIONS(4289),
    [sym_asm] = ACTIONS(4289),
    [sym_assert] = ACTIONS(4289),
    [sym_auto] = ACTIONS(4289),
    [sym_break] = ACTIONS(4289),
    [sym_case] = ACTIONS(4289),
    [sym_cast] = ACTIONS(4289),
    [sym_catch] = ACTIONS(4289),
    [sym_class] = ACTIONS(4289),
    [sym_const] = ACTIONS(4289),
    [sym_continue] = ACTIONS(4289),
    [sym_debug] = ACTIONS(4289),
    [sym_default] = ACTIONS(4289),
    [sym_delegate] = ACTIONS(4289),
    [sym_delete] = ACTIONS(4289),
    [sym_deprecated] = ACTIONS(4289),
    [sym_do] = ACTIONS(4289),
    [sym_else] = ACTIONS(4289),
    [sym_enum] = ACTIONS(4289),
    [sym_export] = ACTIONS(4289),
    [sym_extern] = ACTIONS(4289),
    [sym_final] = ACTIONS(4289),
    [sym_finally] = ACTIONS(4289),
    [sym_for] = ACTIONS(4289),
    [sym_foreach] = ACTIONS(4289),
    [sym_foreach_reverse] = ACTIONS(4289),
    [sym_function] = ACTIONS(4289),
    [sym_goto] = ACTIONS(4289),
    [sym_if] = ACTIONS(4289),
    [sym_immutable] = ACTIONS(4289),
    [sym_import] = ACTIONS(4289),
    [sym_in] = ACTIONS(4289),
    [sym_inout] = ACTIONS(4289),
    [sym_interface] = ACTIONS(4289),
    [sym_invariant] = ACTIONS(4289),
    [sym_is] = ACTIONS(4289),
    [sym_mixin] = ACTIONS(4289),
    [sym_new] = ACTIONS(4289),
    [sym_nothrow] = ACTIONS(4289),
    [sym_out] = ACTIONS(4289),
    [sym_override] = ACTIONS(4289),
    [sym_package] = ACTIONS(4289),
    [sym_pragma] = ACTIONS(4289),
    [sym_private] = ACTIONS(4289),
    [sym_protected] = ACTIONS(4289),
    [sym_public] = ACTIONS(4289),
    [sym_pure] = ACTIONS(4289),
    [sym_ref] = ACTIONS(4289),
    [sym_return] = ACTIONS(4289),
    [sym_scope] = ACTIONS(4289),
    [sym_shared] = ACTIONS(4289),
    [sym_static] = ACTIONS(4289),
    [sym_struct] = ACTIONS(4289),
    [sym_switch] = ACTIONS(4289),
    [sym_synchronized] = ACTIONS(4289),
    [sym_template] = ACTIONS(4289),
    [sym_throw] = ACTIONS(4289),
    [sym_try] = ACTIONS(4289),
    [sym_typeid] = ACTIONS(4289),
    [sym_typeof] = ACTIONS(4289),
    [sym_union] = ACTIONS(4289),
    [sym_unittest] = ACTIONS(4289),
    [sym_version] = ACTIONS(4289),
    [sym_while] = ACTIONS(4289),
    [sym_with] = ACTIONS(4289),
    [sym_gshared] = ACTIONS(4289),
    [sym_traits] = ACTIONS(4289),
    [sym_vector] = ACTIONS(4289),
    [sym_void] = ACTIONS(4289),
    [anon_sym_BQUOTE] = ACTIONS(4291),
    [anon_sym_r_DQUOTE] = ACTIONS(4291),
    [anon_sym_x_DQUOTE] = ACTIONS(4291),
    [anon_sym_DQUOTE] = ACTIONS(4291),
    [anon_sym_i_BQUOTE] = ACTIONS(4291),
    [anon_sym_i_DQUOTE] = ACTIONS(4291),
    [anon_sym_iq_LBRACE] = ACTIONS(4291),
    [aux_sym_char_literal_token1] = ACTIONS(4291),
    [anon_sym_SQUOTE] = ACTIONS(4289),
    [anon_sym___DATE__] = ACTIONS(4289),
    [anon_sym___FILE__] = ACTIONS(4289),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4289),
    [anon_sym___FUNCTION__] = ACTIONS(4289),
    [anon_sym___LINE__] = ACTIONS(4289),
    [anon_sym___MODULE__] = ACTIONS(4289),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4289),
    [anon_sym___TIME__] = ACTIONS(4289),
    [anon_sym___TIMESTAMP__] = ACTIONS(4289),
    [anon_sym___VENDOR__] = ACTIONS(4289),
    [anon_sym___VERSION__] = ACTIONS(4289),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4291),
    [sym_float_literal] = ACTIONS(4291),
    [sym__string] = ACTIONS(4291),
  },
  [1356] = {
    [sym_identifier] = ACTIONS(4293),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4295),
    [anon_sym_RBRACE] = ACTIONS(4295),
    [anon_sym_LBRACE] = ACTIONS(4295),
    [anon_sym_DOT] = ACTIONS(4295),
    [anon_sym_AMP] = ACTIONS(4295),
    [anon_sym_DASH] = ACTIONS(4293),
    [anon_sym_DASH_DASH] = ACTIONS(4295),
    [anon_sym_PLUS] = ACTIONS(4293),
    [anon_sym_PLUS_PLUS] = ACTIONS(4295),
    [anon_sym_BANG] = ACTIONS(4295),
    [anon_sym_LPAREN] = ACTIONS(4295),
    [anon_sym_RPAREN] = ACTIONS(4295),
    [anon_sym_LBRACK] = ACTIONS(4295),
    [anon_sym_SEMI] = ACTIONS(4295),
    [anon_sym_DOLLAR] = ACTIONS(4295),
    [anon_sym_STAR] = ACTIONS(4295),
    [anon_sym_TILDE] = ACTIONS(4295),
    [anon_sym_AT] = ACTIONS(4295),
    [sym_bool] = ACTIONS(4293),
    [sym_byte] = ACTIONS(4293),
    [sym_ubyte] = ACTIONS(4293),
    [sym_char] = ACTIONS(4293),
    [sym_short] = ACTIONS(4293),
    [sym_ushort] = ACTIONS(4293),
    [sym_int] = ACTIONS(4293),
    [sym_uint] = ACTIONS(4293),
    [sym_long] = ACTIONS(4293),
    [sym_ulong] = ACTIONS(4293),
    [sym_cent] = ACTIONS(4293),
    [sym_ucent] = ACTIONS(4293),
    [sym_wchar] = ACTIONS(4293),
    [sym_dchar] = ACTIONS(4293),
    [sym_float] = ACTIONS(4293),
    [sym_double] = ACTIONS(4293),
    [sym_real] = ACTIONS(4293),
    [sym_ifloat] = ACTIONS(4293),
    [sym_idouble] = ACTIONS(4293),
    [sym_ireal] = ACTIONS(4293),
    [sym_cfloat] = ACTIONS(4293),
    [sym_cdouble] = ACTIONS(4293),
    [sym_creal] = ACTIONS(4293),
    [sym_size_t] = ACTIONS(4293),
    [sym_ptrdiff_t] = ACTIONS(4293),
    [sym_string] = ACTIONS(4293),
    [sym_cstring] = ACTIONS(4293),
    [sym_dstring] = ACTIONS(4293),
    [sym_wstring] = ACTIONS(4293),
    [sym_noreturn] = ACTIONS(4293),
    [sym_true] = ACTIONS(4293),
    [sym_false] = ACTIONS(4293),
    [sym_null] = ACTIONS(4293),
    [sym_super] = ACTIONS(4293),
    [sym_this] = ACTIONS(4293),
    [sym_abstract] = ACTIONS(4293),
    [sym_alias] = ACTIONS(4293),
    [sym_align] = ACTIONS(4293),
    [sym_asm] = ACTIONS(4293),
    [sym_assert] = ACTIONS(4293),
    [sym_auto] = ACTIONS(4293),
    [sym_break] = ACTIONS(4293),
    [sym_case] = ACTIONS(4293),
    [sym_cast] = ACTIONS(4293),
    [sym_catch] = ACTIONS(4293),
    [sym_class] = ACTIONS(4293),
    [sym_const] = ACTIONS(4293),
    [sym_continue] = ACTIONS(4293),
    [sym_debug] = ACTIONS(4293),
    [sym_default] = ACTIONS(4293),
    [sym_delegate] = ACTIONS(4293),
    [sym_delete] = ACTIONS(4293),
    [sym_deprecated] = ACTIONS(4293),
    [sym_do] = ACTIONS(4293),
    [sym_else] = ACTIONS(4293),
    [sym_enum] = ACTIONS(4293),
    [sym_export] = ACTIONS(4293),
    [sym_extern] = ACTIONS(4293),
    [sym_final] = ACTIONS(4293),
    [sym_finally] = ACTIONS(4293),
    [sym_for] = ACTIONS(4293),
    [sym_foreach] = ACTIONS(4293),
    [sym_foreach_reverse] = ACTIONS(4293),
    [sym_function] = ACTIONS(4293),
    [sym_goto] = ACTIONS(4293),
    [sym_if] = ACTIONS(4293),
    [sym_immutable] = ACTIONS(4293),
    [sym_import] = ACTIONS(4293),
    [sym_in] = ACTIONS(4293),
    [sym_inout] = ACTIONS(4293),
    [sym_interface] = ACTIONS(4293),
    [sym_invariant] = ACTIONS(4293),
    [sym_is] = ACTIONS(4293),
    [sym_mixin] = ACTIONS(4293),
    [sym_new] = ACTIONS(4293),
    [sym_nothrow] = ACTIONS(4293),
    [sym_out] = ACTIONS(4293),
    [sym_override] = ACTIONS(4293),
    [sym_package] = ACTIONS(4293),
    [sym_pragma] = ACTIONS(4293),
    [sym_private] = ACTIONS(4293),
    [sym_protected] = ACTIONS(4293),
    [sym_public] = ACTIONS(4293),
    [sym_pure] = ACTIONS(4293),
    [sym_ref] = ACTIONS(4293),
    [sym_return] = ACTIONS(4293),
    [sym_scope] = ACTIONS(4293),
    [sym_shared] = ACTIONS(4293),
    [sym_static] = ACTIONS(4293),
    [sym_struct] = ACTIONS(4293),
    [sym_switch] = ACTIONS(4293),
    [sym_synchronized] = ACTIONS(4293),
    [sym_template] = ACTIONS(4293),
    [sym_throw] = ACTIONS(4293),
    [sym_try] = ACTIONS(4293),
    [sym_typeid] = ACTIONS(4293),
    [sym_typeof] = ACTIONS(4293),
    [sym_union] = ACTIONS(4293),
    [sym_unittest] = ACTIONS(4293),
    [sym_version] = ACTIONS(4293),
    [sym_while] = ACTIONS(4293),
    [sym_with] = ACTIONS(4293),
    [sym_gshared] = ACTIONS(4293),
    [sym_traits] = ACTIONS(4293),
    [sym_vector] = ACTIONS(4293),
    [sym_void] = ACTIONS(4293),
    [anon_sym_BQUOTE] = ACTIONS(4295),
    [anon_sym_r_DQUOTE] = ACTIONS(4295),
    [anon_sym_x_DQUOTE] = ACTIONS(4295),
    [anon_sym_DQUOTE] = ACTIONS(4295),
    [anon_sym_i_BQUOTE] = ACTIONS(4295),
    [anon_sym_i_DQUOTE] = ACTIONS(4295),
    [anon_sym_iq_LBRACE] = ACTIONS(4295),
    [aux_sym_char_literal_token1] = ACTIONS(4295),
    [anon_sym_SQUOTE] = ACTIONS(4293),
    [anon_sym___DATE__] = ACTIONS(4293),
    [anon_sym___FILE__] = ACTIONS(4293),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4293),
    [anon_sym___FUNCTION__] = ACTIONS(4293),
    [anon_sym___LINE__] = ACTIONS(4293),
    [anon_sym___MODULE__] = ACTIONS(4293),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4293),
    [anon_sym___TIME__] = ACTIONS(4293),
    [anon_sym___TIMESTAMP__] = ACTIONS(4293),
    [anon_sym___VENDOR__] = ACTIONS(4293),
    [anon_sym___VERSION__] = ACTIONS(4293),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4295),
    [sym_float_literal] = ACTIONS(4295),
    [sym__string] = ACTIONS(4295),
  },
  [1357] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4299),
    [anon_sym_RBRACE] = ACTIONS(4299),
    [anon_sym_LBRACE] = ACTIONS(4299),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_AMP] = ACTIONS(4299),
    [anon_sym_DASH] = ACTIONS(4297),
    [anon_sym_DASH_DASH] = ACTIONS(4299),
    [anon_sym_PLUS] = ACTIONS(4297),
    [anon_sym_PLUS_PLUS] = ACTIONS(4299),
    [anon_sym_BANG] = ACTIONS(4299),
    [anon_sym_LPAREN] = ACTIONS(4299),
    [anon_sym_RPAREN] = ACTIONS(4299),
    [anon_sym_LBRACK] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(4299),
    [anon_sym_DOLLAR] = ACTIONS(4299),
    [anon_sym_STAR] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_true] = ACTIONS(4297),
    [sym_false] = ACTIONS(4297),
    [sym_null] = ACTIONS(4297),
    [sym_super] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_asm] = ACTIONS(4297),
    [sym_assert] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_break] = ACTIONS(4297),
    [sym_case] = ACTIONS(4297),
    [sym_cast] = ACTIONS(4297),
    [sym_catch] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_continue] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_default] = ACTIONS(4297),
    [sym_delegate] = ACTIONS(4297),
    [sym_delete] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_do] = ACTIONS(4297),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_finally] = ACTIONS(4297),
    [sym_for] = ACTIONS(4297),
    [sym_foreach] = ACTIONS(4297),
    [sym_foreach_reverse] = ACTIONS(4297),
    [sym_function] = ACTIONS(4297),
    [sym_goto] = ACTIONS(4297),
    [sym_if] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(4297),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_is] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_new] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_out] = ACTIONS(4297),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_switch] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_throw] = ACTIONS(4297),
    [sym_try] = ACTIONS(4297),
    [sym_typeid] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_with] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [anon_sym_BQUOTE] = ACTIONS(4299),
    [anon_sym_r_DQUOTE] = ACTIONS(4299),
    [anon_sym_x_DQUOTE] = ACTIONS(4299),
    [anon_sym_DQUOTE] = ACTIONS(4299),
    [anon_sym_i_BQUOTE] = ACTIONS(4299),
    [anon_sym_i_DQUOTE] = ACTIONS(4299),
    [anon_sym_iq_LBRACE] = ACTIONS(4299),
    [aux_sym_char_literal_token1] = ACTIONS(4299),
    [anon_sym_SQUOTE] = ACTIONS(4297),
    [anon_sym___DATE__] = ACTIONS(4297),
    [anon_sym___FILE__] = ACTIONS(4297),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4297),
    [anon_sym___FUNCTION__] = ACTIONS(4297),
    [anon_sym___LINE__] = ACTIONS(4297),
    [anon_sym___MODULE__] = ACTIONS(4297),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4297),
    [anon_sym___TIME__] = ACTIONS(4297),
    [anon_sym___TIMESTAMP__] = ACTIONS(4297),
    [anon_sym___VENDOR__] = ACTIONS(4297),
    [anon_sym___VERSION__] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4299),
    [sym_float_literal] = ACTIONS(4299),
    [sym__string] = ACTIONS(4299),
  },
  [1358] = {
    [sym_identifier] = ACTIONS(4301),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4303),
    [anon_sym_RBRACE] = ACTIONS(4303),
    [anon_sym_LBRACE] = ACTIONS(4303),
    [anon_sym_DOT] = ACTIONS(4303),
    [anon_sym_AMP] = ACTIONS(4303),
    [anon_sym_DASH] = ACTIONS(4301),
    [anon_sym_DASH_DASH] = ACTIONS(4303),
    [anon_sym_PLUS] = ACTIONS(4301),
    [anon_sym_PLUS_PLUS] = ACTIONS(4303),
    [anon_sym_BANG] = ACTIONS(4303),
    [anon_sym_LPAREN] = ACTIONS(4303),
    [anon_sym_RPAREN] = ACTIONS(4303),
    [anon_sym_LBRACK] = ACTIONS(4303),
    [anon_sym_SEMI] = ACTIONS(4303),
    [anon_sym_DOLLAR] = ACTIONS(4303),
    [anon_sym_STAR] = ACTIONS(4303),
    [anon_sym_TILDE] = ACTIONS(4303),
    [anon_sym_AT] = ACTIONS(4303),
    [sym_bool] = ACTIONS(4301),
    [sym_byte] = ACTIONS(4301),
    [sym_ubyte] = ACTIONS(4301),
    [sym_char] = ACTIONS(4301),
    [sym_short] = ACTIONS(4301),
    [sym_ushort] = ACTIONS(4301),
    [sym_int] = ACTIONS(4301),
    [sym_uint] = ACTIONS(4301),
    [sym_long] = ACTIONS(4301),
    [sym_ulong] = ACTIONS(4301),
    [sym_cent] = ACTIONS(4301),
    [sym_ucent] = ACTIONS(4301),
    [sym_wchar] = ACTIONS(4301),
    [sym_dchar] = ACTIONS(4301),
    [sym_float] = ACTIONS(4301),
    [sym_double] = ACTIONS(4301),
    [sym_real] = ACTIONS(4301),
    [sym_ifloat] = ACTIONS(4301),
    [sym_idouble] = ACTIONS(4301),
    [sym_ireal] = ACTIONS(4301),
    [sym_cfloat] = ACTIONS(4301),
    [sym_cdouble] = ACTIONS(4301),
    [sym_creal] = ACTIONS(4301),
    [sym_size_t] = ACTIONS(4301),
    [sym_ptrdiff_t] = ACTIONS(4301),
    [sym_string] = ACTIONS(4301),
    [sym_cstring] = ACTIONS(4301),
    [sym_dstring] = ACTIONS(4301),
    [sym_wstring] = ACTIONS(4301),
    [sym_noreturn] = ACTIONS(4301),
    [sym_true] = ACTIONS(4301),
    [sym_false] = ACTIONS(4301),
    [sym_null] = ACTIONS(4301),
    [sym_super] = ACTIONS(4301),
    [sym_this] = ACTIONS(4301),
    [sym_abstract] = ACTIONS(4301),
    [sym_alias] = ACTIONS(4301),
    [sym_align] = ACTIONS(4301),
    [sym_asm] = ACTIONS(4301),
    [sym_assert] = ACTIONS(4301),
    [sym_auto] = ACTIONS(4301),
    [sym_break] = ACTIONS(4301),
    [sym_case] = ACTIONS(4301),
    [sym_cast] = ACTIONS(4301),
    [sym_catch] = ACTIONS(4301),
    [sym_class] = ACTIONS(4301),
    [sym_const] = ACTIONS(4301),
    [sym_continue] = ACTIONS(4301),
    [sym_debug] = ACTIONS(4301),
    [sym_default] = ACTIONS(4301),
    [sym_delegate] = ACTIONS(4301),
    [sym_delete] = ACTIONS(4301),
    [sym_deprecated] = ACTIONS(4301),
    [sym_do] = ACTIONS(4301),
    [sym_else] = ACTIONS(4301),
    [sym_enum] = ACTIONS(4301),
    [sym_export] = ACTIONS(4301),
    [sym_extern] = ACTIONS(4301),
    [sym_final] = ACTIONS(4301),
    [sym_finally] = ACTIONS(4301),
    [sym_for] = ACTIONS(4301),
    [sym_foreach] = ACTIONS(4301),
    [sym_foreach_reverse] = ACTIONS(4301),
    [sym_function] = ACTIONS(4301),
    [sym_goto] = ACTIONS(4301),
    [sym_if] = ACTIONS(4301),
    [sym_immutable] = ACTIONS(4301),
    [sym_import] = ACTIONS(4301),
    [sym_in] = ACTIONS(4301),
    [sym_inout] = ACTIONS(4301),
    [sym_interface] = ACTIONS(4301),
    [sym_invariant] = ACTIONS(4301),
    [sym_is] = ACTIONS(4301),
    [sym_mixin] = ACTIONS(4301),
    [sym_new] = ACTIONS(4301),
    [sym_nothrow] = ACTIONS(4301),
    [sym_out] = ACTIONS(4301),
    [sym_override] = ACTIONS(4301),
    [sym_package] = ACTIONS(4301),
    [sym_pragma] = ACTIONS(4301),
    [sym_private] = ACTIONS(4301),
    [sym_protected] = ACTIONS(4301),
    [sym_public] = ACTIONS(4301),
    [sym_pure] = ACTIONS(4301),
    [sym_ref] = ACTIONS(4301),
    [sym_return] = ACTIONS(4301),
    [sym_scope] = ACTIONS(4301),
    [sym_shared] = ACTIONS(4301),
    [sym_static] = ACTIONS(4301),
    [sym_struct] = ACTIONS(4301),
    [sym_switch] = ACTIONS(4301),
    [sym_synchronized] = ACTIONS(4301),
    [sym_template] = ACTIONS(4301),
    [sym_throw] = ACTIONS(4301),
    [sym_try] = ACTIONS(4301),
    [sym_typeid] = ACTIONS(4301),
    [sym_typeof] = ACTIONS(4301),
    [sym_union] = ACTIONS(4301),
    [sym_unittest] = ACTIONS(4301),
    [sym_version] = ACTIONS(4301),
    [sym_while] = ACTIONS(4301),
    [sym_with] = ACTIONS(4301),
    [sym_gshared] = ACTIONS(4301),
    [sym_traits] = ACTIONS(4301),
    [sym_vector] = ACTIONS(4301),
    [sym_void] = ACTIONS(4301),
    [anon_sym_BQUOTE] = ACTIONS(4303),
    [anon_sym_r_DQUOTE] = ACTIONS(4303),
    [anon_sym_x_DQUOTE] = ACTIONS(4303),
    [anon_sym_DQUOTE] = ACTIONS(4303),
    [anon_sym_i_BQUOTE] = ACTIONS(4303),
    [anon_sym_i_DQUOTE] = ACTIONS(4303),
    [anon_sym_iq_LBRACE] = ACTIONS(4303),
    [aux_sym_char_literal_token1] = ACTIONS(4303),
    [anon_sym_SQUOTE] = ACTIONS(4301),
    [anon_sym___DATE__] = ACTIONS(4301),
    [anon_sym___FILE__] = ACTIONS(4301),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4301),
    [anon_sym___FUNCTION__] = ACTIONS(4301),
    [anon_sym___LINE__] = ACTIONS(4301),
    [anon_sym___MODULE__] = ACTIONS(4301),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4301),
    [anon_sym___TIME__] = ACTIONS(4301),
    [anon_sym___TIMESTAMP__] = ACTIONS(4301),
    [anon_sym___VENDOR__] = ACTIONS(4301),
    [anon_sym___VERSION__] = ACTIONS(4301),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4303),
    [sym_float_literal] = ACTIONS(4303),
    [sym__string] = ACTIONS(4303),
  },
  [1359] = {
    [sym_identifier] = ACTIONS(4305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4307),
    [anon_sym_RBRACE] = ACTIONS(4307),
    [anon_sym_LBRACE] = ACTIONS(4307),
    [anon_sym_DOT] = ACTIONS(4307),
    [anon_sym_AMP] = ACTIONS(4307),
    [anon_sym_DASH] = ACTIONS(4305),
    [anon_sym_DASH_DASH] = ACTIONS(4307),
    [anon_sym_PLUS] = ACTIONS(4305),
    [anon_sym_PLUS_PLUS] = ACTIONS(4307),
    [anon_sym_BANG] = ACTIONS(4307),
    [anon_sym_LPAREN] = ACTIONS(4307),
    [anon_sym_RPAREN] = ACTIONS(4307),
    [anon_sym_LBRACK] = ACTIONS(4307),
    [anon_sym_SEMI] = ACTIONS(4307),
    [anon_sym_DOLLAR] = ACTIONS(4307),
    [anon_sym_STAR] = ACTIONS(4307),
    [anon_sym_TILDE] = ACTIONS(4307),
    [anon_sym_AT] = ACTIONS(4307),
    [sym_bool] = ACTIONS(4305),
    [sym_byte] = ACTIONS(4305),
    [sym_ubyte] = ACTIONS(4305),
    [sym_char] = ACTIONS(4305),
    [sym_short] = ACTIONS(4305),
    [sym_ushort] = ACTIONS(4305),
    [sym_int] = ACTIONS(4305),
    [sym_uint] = ACTIONS(4305),
    [sym_long] = ACTIONS(4305),
    [sym_ulong] = ACTIONS(4305),
    [sym_cent] = ACTIONS(4305),
    [sym_ucent] = ACTIONS(4305),
    [sym_wchar] = ACTIONS(4305),
    [sym_dchar] = ACTIONS(4305),
    [sym_float] = ACTIONS(4305),
    [sym_double] = ACTIONS(4305),
    [sym_real] = ACTIONS(4305),
    [sym_ifloat] = ACTIONS(4305),
    [sym_idouble] = ACTIONS(4305),
    [sym_ireal] = ACTIONS(4305),
    [sym_cfloat] = ACTIONS(4305),
    [sym_cdouble] = ACTIONS(4305),
    [sym_creal] = ACTIONS(4305),
    [sym_size_t] = ACTIONS(4305),
    [sym_ptrdiff_t] = ACTIONS(4305),
    [sym_string] = ACTIONS(4305),
    [sym_cstring] = ACTIONS(4305),
    [sym_dstring] = ACTIONS(4305),
    [sym_wstring] = ACTIONS(4305),
    [sym_noreturn] = ACTIONS(4305),
    [sym_true] = ACTIONS(4305),
    [sym_false] = ACTIONS(4305),
    [sym_null] = ACTIONS(4305),
    [sym_super] = ACTIONS(4305),
    [sym_this] = ACTIONS(4305),
    [sym_abstract] = ACTIONS(4305),
    [sym_alias] = ACTIONS(4305),
    [sym_align] = ACTIONS(4305),
    [sym_asm] = ACTIONS(4305),
    [sym_assert] = ACTIONS(4305),
    [sym_auto] = ACTIONS(4305),
    [sym_break] = ACTIONS(4305),
    [sym_case] = ACTIONS(4305),
    [sym_cast] = ACTIONS(4305),
    [sym_catch] = ACTIONS(4305),
    [sym_class] = ACTIONS(4305),
    [sym_const] = ACTIONS(4305),
    [sym_continue] = ACTIONS(4305),
    [sym_debug] = ACTIONS(4305),
    [sym_default] = ACTIONS(4305),
    [sym_delegate] = ACTIONS(4305),
    [sym_delete] = ACTIONS(4305),
    [sym_deprecated] = ACTIONS(4305),
    [sym_do] = ACTIONS(4305),
    [sym_else] = ACTIONS(4305),
    [sym_enum] = ACTIONS(4305),
    [sym_export] = ACTIONS(4305),
    [sym_extern] = ACTIONS(4305),
    [sym_final] = ACTIONS(4305),
    [sym_finally] = ACTIONS(4305),
    [sym_for] = ACTIONS(4305),
    [sym_foreach] = ACTIONS(4305),
    [sym_foreach_reverse] = ACTIONS(4305),
    [sym_function] = ACTIONS(4305),
    [sym_goto] = ACTIONS(4305),
    [sym_if] = ACTIONS(4305),
    [sym_immutable] = ACTIONS(4305),
    [sym_import] = ACTIONS(4305),
    [sym_in] = ACTIONS(4305),
    [sym_inout] = ACTIONS(4305),
    [sym_interface] = ACTIONS(4305),
    [sym_invariant] = ACTIONS(4305),
    [sym_is] = ACTIONS(4305),
    [sym_mixin] = ACTIONS(4305),
    [sym_new] = ACTIONS(4305),
    [sym_nothrow] = ACTIONS(4305),
    [sym_out] = ACTIONS(4305),
    [sym_override] = ACTIONS(4305),
    [sym_package] = ACTIONS(4305),
    [sym_pragma] = ACTIONS(4305),
    [sym_private] = ACTIONS(4305),
    [sym_protected] = ACTIONS(4305),
    [sym_public] = ACTIONS(4305),
    [sym_pure] = ACTIONS(4305),
    [sym_ref] = ACTIONS(4305),
    [sym_return] = ACTIONS(4305),
    [sym_scope] = ACTIONS(4305),
    [sym_shared] = ACTIONS(4305),
    [sym_static] = ACTIONS(4305),
    [sym_struct] = ACTIONS(4305),
    [sym_switch] = ACTIONS(4305),
    [sym_synchronized] = ACTIONS(4305),
    [sym_template] = ACTIONS(4305),
    [sym_throw] = ACTIONS(4305),
    [sym_try] = ACTIONS(4305),
    [sym_typeid] = ACTIONS(4305),
    [sym_typeof] = ACTIONS(4305),
    [sym_union] = ACTIONS(4305),
    [sym_unittest] = ACTIONS(4305),
    [sym_version] = ACTIONS(4305),
    [sym_while] = ACTIONS(4305),
    [sym_with] = ACTIONS(4305),
    [sym_gshared] = ACTIONS(4305),
    [sym_traits] = ACTIONS(4305),
    [sym_vector] = ACTIONS(4305),
    [sym_void] = ACTIONS(4305),
    [anon_sym_BQUOTE] = ACTIONS(4307),
    [anon_sym_r_DQUOTE] = ACTIONS(4307),
    [anon_sym_x_DQUOTE] = ACTIONS(4307),
    [anon_sym_DQUOTE] = ACTIONS(4307),
    [anon_sym_i_BQUOTE] = ACTIONS(4307),
    [anon_sym_i_DQUOTE] = ACTIONS(4307),
    [anon_sym_iq_LBRACE] = ACTIONS(4307),
    [aux_sym_char_literal_token1] = ACTIONS(4307),
    [anon_sym_SQUOTE] = ACTIONS(4305),
    [anon_sym___DATE__] = ACTIONS(4305),
    [anon_sym___FILE__] = ACTIONS(4305),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4305),
    [anon_sym___FUNCTION__] = ACTIONS(4305),
    [anon_sym___LINE__] = ACTIONS(4305),
    [anon_sym___MODULE__] = ACTIONS(4305),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4305),
    [anon_sym___TIME__] = ACTIONS(4305),
    [anon_sym___TIMESTAMP__] = ACTIONS(4305),
    [anon_sym___VENDOR__] = ACTIONS(4305),
    [anon_sym___VERSION__] = ACTIONS(4305),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4307),
    [sym_float_literal] = ACTIONS(4307),
    [sym__string] = ACTIONS(4307),
  },
  [1360] = {
    [sym_identifier] = ACTIONS(4309),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4311),
    [anon_sym_RBRACE] = ACTIONS(4311),
    [anon_sym_LBRACE] = ACTIONS(4311),
    [anon_sym_DOT] = ACTIONS(4311),
    [anon_sym_AMP] = ACTIONS(4311),
    [anon_sym_DASH] = ACTIONS(4309),
    [anon_sym_DASH_DASH] = ACTIONS(4311),
    [anon_sym_PLUS] = ACTIONS(4309),
    [anon_sym_PLUS_PLUS] = ACTIONS(4311),
    [anon_sym_BANG] = ACTIONS(4311),
    [anon_sym_LPAREN] = ACTIONS(4311),
    [anon_sym_RPAREN] = ACTIONS(4311),
    [anon_sym_LBRACK] = ACTIONS(4311),
    [anon_sym_SEMI] = ACTIONS(4311),
    [anon_sym_DOLLAR] = ACTIONS(4311),
    [anon_sym_STAR] = ACTIONS(4311),
    [anon_sym_TILDE] = ACTIONS(4311),
    [anon_sym_AT] = ACTIONS(4311),
    [sym_bool] = ACTIONS(4309),
    [sym_byte] = ACTIONS(4309),
    [sym_ubyte] = ACTIONS(4309),
    [sym_char] = ACTIONS(4309),
    [sym_short] = ACTIONS(4309),
    [sym_ushort] = ACTIONS(4309),
    [sym_int] = ACTIONS(4309),
    [sym_uint] = ACTIONS(4309),
    [sym_long] = ACTIONS(4309),
    [sym_ulong] = ACTIONS(4309),
    [sym_cent] = ACTIONS(4309),
    [sym_ucent] = ACTIONS(4309),
    [sym_wchar] = ACTIONS(4309),
    [sym_dchar] = ACTIONS(4309),
    [sym_float] = ACTIONS(4309),
    [sym_double] = ACTIONS(4309),
    [sym_real] = ACTIONS(4309),
    [sym_ifloat] = ACTIONS(4309),
    [sym_idouble] = ACTIONS(4309),
    [sym_ireal] = ACTIONS(4309),
    [sym_cfloat] = ACTIONS(4309),
    [sym_cdouble] = ACTIONS(4309),
    [sym_creal] = ACTIONS(4309),
    [sym_size_t] = ACTIONS(4309),
    [sym_ptrdiff_t] = ACTIONS(4309),
    [sym_string] = ACTIONS(4309),
    [sym_cstring] = ACTIONS(4309),
    [sym_dstring] = ACTIONS(4309),
    [sym_wstring] = ACTIONS(4309),
    [sym_noreturn] = ACTIONS(4309),
    [sym_true] = ACTIONS(4309),
    [sym_false] = ACTIONS(4309),
    [sym_null] = ACTIONS(4309),
    [sym_super] = ACTIONS(4309),
    [sym_this] = ACTIONS(4309),
    [sym_abstract] = ACTIONS(4309),
    [sym_alias] = ACTIONS(4309),
    [sym_align] = ACTIONS(4309),
    [sym_asm] = ACTIONS(4309),
    [sym_assert] = ACTIONS(4309),
    [sym_auto] = ACTIONS(4309),
    [sym_break] = ACTIONS(4309),
    [sym_case] = ACTIONS(4309),
    [sym_cast] = ACTIONS(4309),
    [sym_catch] = ACTIONS(4309),
    [sym_class] = ACTIONS(4309),
    [sym_const] = ACTIONS(4309),
    [sym_continue] = ACTIONS(4309),
    [sym_debug] = ACTIONS(4309),
    [sym_default] = ACTIONS(4309),
    [sym_delegate] = ACTIONS(4309),
    [sym_delete] = ACTIONS(4309),
    [sym_deprecated] = ACTIONS(4309),
    [sym_do] = ACTIONS(4309),
    [sym_else] = ACTIONS(4309),
    [sym_enum] = ACTIONS(4309),
    [sym_export] = ACTIONS(4309),
    [sym_extern] = ACTIONS(4309),
    [sym_final] = ACTIONS(4309),
    [sym_finally] = ACTIONS(4309),
    [sym_for] = ACTIONS(4309),
    [sym_foreach] = ACTIONS(4309),
    [sym_foreach_reverse] = ACTIONS(4309),
    [sym_function] = ACTIONS(4309),
    [sym_goto] = ACTIONS(4309),
    [sym_if] = ACTIONS(4309),
    [sym_immutable] = ACTIONS(4309),
    [sym_import] = ACTIONS(4309),
    [sym_in] = ACTIONS(4309),
    [sym_inout] = ACTIONS(4309),
    [sym_interface] = ACTIONS(4309),
    [sym_invariant] = ACTIONS(4309),
    [sym_is] = ACTIONS(4309),
    [sym_mixin] = ACTIONS(4309),
    [sym_new] = ACTIONS(4309),
    [sym_nothrow] = ACTIONS(4309),
    [sym_out] = ACTIONS(4309),
    [sym_override] = ACTIONS(4309),
    [sym_package] = ACTIONS(4309),
    [sym_pragma] = ACTIONS(4309),
    [sym_private] = ACTIONS(4309),
    [sym_protected] = ACTIONS(4309),
    [sym_public] = ACTIONS(4309),
    [sym_pure] = ACTIONS(4309),
    [sym_ref] = ACTIONS(4309),
    [sym_return] = ACTIONS(4309),
    [sym_scope] = ACTIONS(4309),
    [sym_shared] = ACTIONS(4309),
    [sym_static] = ACTIONS(4309),
    [sym_struct] = ACTIONS(4309),
    [sym_switch] = ACTIONS(4309),
    [sym_synchronized] = ACTIONS(4309),
    [sym_template] = ACTIONS(4309),
    [sym_throw] = ACTIONS(4309),
    [sym_try] = ACTIONS(4309),
    [sym_typeid] = ACTIONS(4309),
    [sym_typeof] = ACTIONS(4309),
    [sym_union] = ACTIONS(4309),
    [sym_unittest] = ACTIONS(4309),
    [sym_version] = ACTIONS(4309),
    [sym_while] = ACTIONS(4309),
    [sym_with] = ACTIONS(4309),
    [sym_gshared] = ACTIONS(4309),
    [sym_traits] = ACTIONS(4309),
    [sym_vector] = ACTIONS(4309),
    [sym_void] = ACTIONS(4309),
    [anon_sym_BQUOTE] = ACTIONS(4311),
    [anon_sym_r_DQUOTE] = ACTIONS(4311),
    [anon_sym_x_DQUOTE] = ACTIONS(4311),
    [anon_sym_DQUOTE] = ACTIONS(4311),
    [anon_sym_i_BQUOTE] = ACTIONS(4311),
    [anon_sym_i_DQUOTE] = ACTIONS(4311),
    [anon_sym_iq_LBRACE] = ACTIONS(4311),
    [aux_sym_char_literal_token1] = ACTIONS(4311),
    [anon_sym_SQUOTE] = ACTIONS(4309),
    [anon_sym___DATE__] = ACTIONS(4309),
    [anon_sym___FILE__] = ACTIONS(4309),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4309),
    [anon_sym___FUNCTION__] = ACTIONS(4309),
    [anon_sym___LINE__] = ACTIONS(4309),
    [anon_sym___MODULE__] = ACTIONS(4309),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4309),
    [anon_sym___TIME__] = ACTIONS(4309),
    [anon_sym___TIMESTAMP__] = ACTIONS(4309),
    [anon_sym___VENDOR__] = ACTIONS(4309),
    [anon_sym___VERSION__] = ACTIONS(4309),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4311),
    [sym_float_literal] = ACTIONS(4311),
    [sym__string] = ACTIONS(4311),
  },
  [1361] = {
    [sym_identifier] = ACTIONS(4313),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4315),
    [anon_sym_RBRACE] = ACTIONS(4315),
    [anon_sym_LBRACE] = ACTIONS(4315),
    [anon_sym_DOT] = ACTIONS(4315),
    [anon_sym_AMP] = ACTIONS(4315),
    [anon_sym_DASH] = ACTIONS(4313),
    [anon_sym_DASH_DASH] = ACTIONS(4315),
    [anon_sym_PLUS] = ACTIONS(4313),
    [anon_sym_PLUS_PLUS] = ACTIONS(4315),
    [anon_sym_BANG] = ACTIONS(4315),
    [anon_sym_LPAREN] = ACTIONS(4315),
    [anon_sym_RPAREN] = ACTIONS(4315),
    [anon_sym_LBRACK] = ACTIONS(4315),
    [anon_sym_SEMI] = ACTIONS(4315),
    [anon_sym_DOLLAR] = ACTIONS(4315),
    [anon_sym_STAR] = ACTIONS(4315),
    [anon_sym_TILDE] = ACTIONS(4315),
    [anon_sym_AT] = ACTIONS(4315),
    [sym_bool] = ACTIONS(4313),
    [sym_byte] = ACTIONS(4313),
    [sym_ubyte] = ACTIONS(4313),
    [sym_char] = ACTIONS(4313),
    [sym_short] = ACTIONS(4313),
    [sym_ushort] = ACTIONS(4313),
    [sym_int] = ACTIONS(4313),
    [sym_uint] = ACTIONS(4313),
    [sym_long] = ACTIONS(4313),
    [sym_ulong] = ACTIONS(4313),
    [sym_cent] = ACTIONS(4313),
    [sym_ucent] = ACTIONS(4313),
    [sym_wchar] = ACTIONS(4313),
    [sym_dchar] = ACTIONS(4313),
    [sym_float] = ACTIONS(4313),
    [sym_double] = ACTIONS(4313),
    [sym_real] = ACTIONS(4313),
    [sym_ifloat] = ACTIONS(4313),
    [sym_idouble] = ACTIONS(4313),
    [sym_ireal] = ACTIONS(4313),
    [sym_cfloat] = ACTIONS(4313),
    [sym_cdouble] = ACTIONS(4313),
    [sym_creal] = ACTIONS(4313),
    [sym_size_t] = ACTIONS(4313),
    [sym_ptrdiff_t] = ACTIONS(4313),
    [sym_string] = ACTIONS(4313),
    [sym_cstring] = ACTIONS(4313),
    [sym_dstring] = ACTIONS(4313),
    [sym_wstring] = ACTIONS(4313),
    [sym_noreturn] = ACTIONS(4313),
    [sym_true] = ACTIONS(4313),
    [sym_false] = ACTIONS(4313),
    [sym_null] = ACTIONS(4313),
    [sym_super] = ACTIONS(4313),
    [sym_this] = ACTIONS(4313),
    [sym_abstract] = ACTIONS(4313),
    [sym_alias] = ACTIONS(4313),
    [sym_align] = ACTIONS(4313),
    [sym_asm] = ACTIONS(4313),
    [sym_assert] = ACTIONS(4313),
    [sym_auto] = ACTIONS(4313),
    [sym_break] = ACTIONS(4313),
    [sym_case] = ACTIONS(4313),
    [sym_cast] = ACTIONS(4313),
    [sym_catch] = ACTIONS(4313),
    [sym_class] = ACTIONS(4313),
    [sym_const] = ACTIONS(4313),
    [sym_continue] = ACTIONS(4313),
    [sym_debug] = ACTIONS(4313),
    [sym_default] = ACTIONS(4313),
    [sym_delegate] = ACTIONS(4313),
    [sym_delete] = ACTIONS(4313),
    [sym_deprecated] = ACTIONS(4313),
    [sym_do] = ACTIONS(4313),
    [sym_else] = ACTIONS(4313),
    [sym_enum] = ACTIONS(4313),
    [sym_export] = ACTIONS(4313),
    [sym_extern] = ACTIONS(4313),
    [sym_final] = ACTIONS(4313),
    [sym_finally] = ACTIONS(4313),
    [sym_for] = ACTIONS(4313),
    [sym_foreach] = ACTIONS(4313),
    [sym_foreach_reverse] = ACTIONS(4313),
    [sym_function] = ACTIONS(4313),
    [sym_goto] = ACTIONS(4313),
    [sym_if] = ACTIONS(4313),
    [sym_immutable] = ACTIONS(4313),
    [sym_import] = ACTIONS(4313),
    [sym_in] = ACTIONS(4313),
    [sym_inout] = ACTIONS(4313),
    [sym_interface] = ACTIONS(4313),
    [sym_invariant] = ACTIONS(4313),
    [sym_is] = ACTIONS(4313),
    [sym_mixin] = ACTIONS(4313),
    [sym_new] = ACTIONS(4313),
    [sym_nothrow] = ACTIONS(4313),
    [sym_out] = ACTIONS(4313),
    [sym_override] = ACTIONS(4313),
    [sym_package] = ACTIONS(4313),
    [sym_pragma] = ACTIONS(4313),
    [sym_private] = ACTIONS(4313),
    [sym_protected] = ACTIONS(4313),
    [sym_public] = ACTIONS(4313),
    [sym_pure] = ACTIONS(4313),
    [sym_ref] = ACTIONS(4313),
    [sym_return] = ACTIONS(4313),
    [sym_scope] = ACTIONS(4313),
    [sym_shared] = ACTIONS(4313),
    [sym_static] = ACTIONS(4313),
    [sym_struct] = ACTIONS(4313),
    [sym_switch] = ACTIONS(4313),
    [sym_synchronized] = ACTIONS(4313),
    [sym_template] = ACTIONS(4313),
    [sym_throw] = ACTIONS(4313),
    [sym_try] = ACTIONS(4313),
    [sym_typeid] = ACTIONS(4313),
    [sym_typeof] = ACTIONS(4313),
    [sym_union] = ACTIONS(4313),
    [sym_unittest] = ACTIONS(4313),
    [sym_version] = ACTIONS(4313),
    [sym_while] = ACTIONS(4313),
    [sym_with] = ACTIONS(4313),
    [sym_gshared] = ACTIONS(4313),
    [sym_traits] = ACTIONS(4313),
    [sym_vector] = ACTIONS(4313),
    [sym_void] = ACTIONS(4313),
    [anon_sym_BQUOTE] = ACTIONS(4315),
    [anon_sym_r_DQUOTE] = ACTIONS(4315),
    [anon_sym_x_DQUOTE] = ACTIONS(4315),
    [anon_sym_DQUOTE] = ACTIONS(4315),
    [anon_sym_i_BQUOTE] = ACTIONS(4315),
    [anon_sym_i_DQUOTE] = ACTIONS(4315),
    [anon_sym_iq_LBRACE] = ACTIONS(4315),
    [aux_sym_char_literal_token1] = ACTIONS(4315),
    [anon_sym_SQUOTE] = ACTIONS(4313),
    [anon_sym___DATE__] = ACTIONS(4313),
    [anon_sym___FILE__] = ACTIONS(4313),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4313),
    [anon_sym___FUNCTION__] = ACTIONS(4313),
    [anon_sym___LINE__] = ACTIONS(4313),
    [anon_sym___MODULE__] = ACTIONS(4313),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4313),
    [anon_sym___TIME__] = ACTIONS(4313),
    [anon_sym___TIMESTAMP__] = ACTIONS(4313),
    [anon_sym___VENDOR__] = ACTIONS(4313),
    [anon_sym___VERSION__] = ACTIONS(4313),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4315),
    [sym_float_literal] = ACTIONS(4315),
    [sym__string] = ACTIONS(4315),
  },
  [1362] = {
    [sym_identifier] = ACTIONS(4317),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4319),
    [anon_sym_RBRACE] = ACTIONS(4319),
    [anon_sym_LBRACE] = ACTIONS(4319),
    [anon_sym_DOT] = ACTIONS(4319),
    [anon_sym_AMP] = ACTIONS(4319),
    [anon_sym_DASH] = ACTIONS(4317),
    [anon_sym_DASH_DASH] = ACTIONS(4319),
    [anon_sym_PLUS] = ACTIONS(4317),
    [anon_sym_PLUS_PLUS] = ACTIONS(4319),
    [anon_sym_BANG] = ACTIONS(4319),
    [anon_sym_LPAREN] = ACTIONS(4319),
    [anon_sym_RPAREN] = ACTIONS(4319),
    [anon_sym_LBRACK] = ACTIONS(4319),
    [anon_sym_SEMI] = ACTIONS(4319),
    [anon_sym_DOLLAR] = ACTIONS(4319),
    [anon_sym_STAR] = ACTIONS(4319),
    [anon_sym_TILDE] = ACTIONS(4319),
    [anon_sym_AT] = ACTIONS(4319),
    [sym_bool] = ACTIONS(4317),
    [sym_byte] = ACTIONS(4317),
    [sym_ubyte] = ACTIONS(4317),
    [sym_char] = ACTIONS(4317),
    [sym_short] = ACTIONS(4317),
    [sym_ushort] = ACTIONS(4317),
    [sym_int] = ACTIONS(4317),
    [sym_uint] = ACTIONS(4317),
    [sym_long] = ACTIONS(4317),
    [sym_ulong] = ACTIONS(4317),
    [sym_cent] = ACTIONS(4317),
    [sym_ucent] = ACTIONS(4317),
    [sym_wchar] = ACTIONS(4317),
    [sym_dchar] = ACTIONS(4317),
    [sym_float] = ACTIONS(4317),
    [sym_double] = ACTIONS(4317),
    [sym_real] = ACTIONS(4317),
    [sym_ifloat] = ACTIONS(4317),
    [sym_idouble] = ACTIONS(4317),
    [sym_ireal] = ACTIONS(4317),
    [sym_cfloat] = ACTIONS(4317),
    [sym_cdouble] = ACTIONS(4317),
    [sym_creal] = ACTIONS(4317),
    [sym_size_t] = ACTIONS(4317),
    [sym_ptrdiff_t] = ACTIONS(4317),
    [sym_string] = ACTIONS(4317),
    [sym_cstring] = ACTIONS(4317),
    [sym_dstring] = ACTIONS(4317),
    [sym_wstring] = ACTIONS(4317),
    [sym_noreturn] = ACTIONS(4317),
    [sym_true] = ACTIONS(4317),
    [sym_false] = ACTIONS(4317),
    [sym_null] = ACTIONS(4317),
    [sym_super] = ACTIONS(4317),
    [sym_this] = ACTIONS(4317),
    [sym_abstract] = ACTIONS(4317),
    [sym_alias] = ACTIONS(4317),
    [sym_align] = ACTIONS(4317),
    [sym_asm] = ACTIONS(4317),
    [sym_assert] = ACTIONS(4317),
    [sym_auto] = ACTIONS(4317),
    [sym_break] = ACTIONS(4317),
    [sym_case] = ACTIONS(4317),
    [sym_cast] = ACTIONS(4317),
    [sym_catch] = ACTIONS(4317),
    [sym_class] = ACTIONS(4317),
    [sym_const] = ACTIONS(4317),
    [sym_continue] = ACTIONS(4317),
    [sym_debug] = ACTIONS(4317),
    [sym_default] = ACTIONS(4317),
    [sym_delegate] = ACTIONS(4317),
    [sym_delete] = ACTIONS(4317),
    [sym_deprecated] = ACTIONS(4317),
    [sym_do] = ACTIONS(4317),
    [sym_else] = ACTIONS(4317),
    [sym_enum] = ACTIONS(4317),
    [sym_export] = ACTIONS(4317),
    [sym_extern] = ACTIONS(4317),
    [sym_final] = ACTIONS(4317),
    [sym_finally] = ACTIONS(4317),
    [sym_for] = ACTIONS(4317),
    [sym_foreach] = ACTIONS(4317),
    [sym_foreach_reverse] = ACTIONS(4317),
    [sym_function] = ACTIONS(4317),
    [sym_goto] = ACTIONS(4317),
    [sym_if] = ACTIONS(4317),
    [sym_immutable] = ACTIONS(4317),
    [sym_import] = ACTIONS(4317),
    [sym_in] = ACTIONS(4317),
    [sym_inout] = ACTIONS(4317),
    [sym_interface] = ACTIONS(4317),
    [sym_invariant] = ACTIONS(4317),
    [sym_is] = ACTIONS(4317),
    [sym_mixin] = ACTIONS(4317),
    [sym_new] = ACTIONS(4317),
    [sym_nothrow] = ACTIONS(4317),
    [sym_out] = ACTIONS(4317),
    [sym_override] = ACTIONS(4317),
    [sym_package] = ACTIONS(4317),
    [sym_pragma] = ACTIONS(4317),
    [sym_private] = ACTIONS(4317),
    [sym_protected] = ACTIONS(4317),
    [sym_public] = ACTIONS(4317),
    [sym_pure] = ACTIONS(4317),
    [sym_ref] = ACTIONS(4317),
    [sym_return] = ACTIONS(4317),
    [sym_scope] = ACTIONS(4317),
    [sym_shared] = ACTIONS(4317),
    [sym_static] = ACTIONS(4317),
    [sym_struct] = ACTIONS(4317),
    [sym_switch] = ACTIONS(4317),
    [sym_synchronized] = ACTIONS(4317),
    [sym_template] = ACTIONS(4317),
    [sym_throw] = ACTIONS(4317),
    [sym_try] = ACTIONS(4317),
    [sym_typeid] = ACTIONS(4317),
    [sym_typeof] = ACTIONS(4317),
    [sym_union] = ACTIONS(4317),
    [sym_unittest] = ACTIONS(4317),
    [sym_version] = ACTIONS(4317),
    [sym_while] = ACTIONS(4317),
    [sym_with] = ACTIONS(4317),
    [sym_gshared] = ACTIONS(4317),
    [sym_traits] = ACTIONS(4317),
    [sym_vector] = ACTIONS(4317),
    [sym_void] = ACTIONS(4317),
    [anon_sym_BQUOTE] = ACTIONS(4319),
    [anon_sym_r_DQUOTE] = ACTIONS(4319),
    [anon_sym_x_DQUOTE] = ACTIONS(4319),
    [anon_sym_DQUOTE] = ACTIONS(4319),
    [anon_sym_i_BQUOTE] = ACTIONS(4319),
    [anon_sym_i_DQUOTE] = ACTIONS(4319),
    [anon_sym_iq_LBRACE] = ACTIONS(4319),
    [aux_sym_char_literal_token1] = ACTIONS(4319),
    [anon_sym_SQUOTE] = ACTIONS(4317),
    [anon_sym___DATE__] = ACTIONS(4317),
    [anon_sym___FILE__] = ACTIONS(4317),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4317),
    [anon_sym___FUNCTION__] = ACTIONS(4317),
    [anon_sym___LINE__] = ACTIONS(4317),
    [anon_sym___MODULE__] = ACTIONS(4317),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4317),
    [anon_sym___TIME__] = ACTIONS(4317),
    [anon_sym___TIMESTAMP__] = ACTIONS(4317),
    [anon_sym___VENDOR__] = ACTIONS(4317),
    [anon_sym___VERSION__] = ACTIONS(4317),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4319),
    [sym_float_literal] = ACTIONS(4319),
    [sym__string] = ACTIONS(4319),
  },
  [1363] = {
    [sym_identifier] = ACTIONS(4321),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4324),
    [anon_sym_RBRACE] = ACTIONS(4324),
    [anon_sym_LBRACE] = ACTIONS(4324),
    [anon_sym_DOT] = ACTIONS(4324),
    [anon_sym_AMP] = ACTIONS(4324),
    [anon_sym_DASH] = ACTIONS(4321),
    [anon_sym_DASH_DASH] = ACTIONS(4324),
    [anon_sym_PLUS] = ACTIONS(4321),
    [anon_sym_PLUS_PLUS] = ACTIONS(4324),
    [anon_sym_BANG] = ACTIONS(4324),
    [anon_sym_LPAREN] = ACTIONS(4324),
    [anon_sym_RPAREN] = ACTIONS(4324),
    [anon_sym_LBRACK] = ACTIONS(4324),
    [anon_sym_SEMI] = ACTIONS(4324),
    [anon_sym_DOLLAR] = ACTIONS(4324),
    [anon_sym_STAR] = ACTIONS(4324),
    [anon_sym_TILDE] = ACTIONS(4324),
    [anon_sym_AT] = ACTIONS(4324),
    [sym_bool] = ACTIONS(4321),
    [sym_byte] = ACTIONS(4321),
    [sym_ubyte] = ACTIONS(4321),
    [sym_char] = ACTIONS(4321),
    [sym_short] = ACTIONS(4321),
    [sym_ushort] = ACTIONS(4321),
    [sym_int] = ACTIONS(4321),
    [sym_uint] = ACTIONS(4321),
    [sym_long] = ACTIONS(4321),
    [sym_ulong] = ACTIONS(4321),
    [sym_cent] = ACTIONS(4321),
    [sym_ucent] = ACTIONS(4321),
    [sym_wchar] = ACTIONS(4321),
    [sym_dchar] = ACTIONS(4321),
    [sym_float] = ACTIONS(4321),
    [sym_double] = ACTIONS(4321),
    [sym_real] = ACTIONS(4321),
    [sym_ifloat] = ACTIONS(4321),
    [sym_idouble] = ACTIONS(4321),
    [sym_ireal] = ACTIONS(4321),
    [sym_cfloat] = ACTIONS(4321),
    [sym_cdouble] = ACTIONS(4321),
    [sym_creal] = ACTIONS(4321),
    [sym_size_t] = ACTIONS(4321),
    [sym_ptrdiff_t] = ACTIONS(4321),
    [sym_string] = ACTIONS(4321),
    [sym_cstring] = ACTIONS(4321),
    [sym_dstring] = ACTIONS(4321),
    [sym_wstring] = ACTIONS(4321),
    [sym_noreturn] = ACTIONS(4321),
    [sym_true] = ACTIONS(4321),
    [sym_false] = ACTIONS(4321),
    [sym_null] = ACTIONS(4321),
    [sym_super] = ACTIONS(4321),
    [sym_this] = ACTIONS(4321),
    [sym_abstract] = ACTIONS(4321),
    [sym_alias] = ACTIONS(4321),
    [sym_align] = ACTIONS(4321),
    [sym_asm] = ACTIONS(4321),
    [sym_assert] = ACTIONS(4321),
    [sym_auto] = ACTIONS(4321),
    [sym_break] = ACTIONS(4321),
    [sym_case] = ACTIONS(4321),
    [sym_cast] = ACTIONS(4321),
    [sym_catch] = ACTIONS(4321),
    [sym_class] = ACTIONS(4321),
    [sym_const] = ACTIONS(4321),
    [sym_continue] = ACTIONS(4321),
    [sym_debug] = ACTIONS(4321),
    [sym_default] = ACTIONS(4321),
    [sym_delegate] = ACTIONS(4321),
    [sym_delete] = ACTIONS(4321),
    [sym_deprecated] = ACTIONS(4321),
    [sym_do] = ACTIONS(4321),
    [sym_else] = ACTIONS(4321),
    [sym_enum] = ACTIONS(4321),
    [sym_export] = ACTIONS(4321),
    [sym_extern] = ACTIONS(4321),
    [sym_final] = ACTIONS(4321),
    [sym_finally] = ACTIONS(4321),
    [sym_for] = ACTIONS(4321),
    [sym_foreach] = ACTIONS(4321),
    [sym_foreach_reverse] = ACTIONS(4321),
    [sym_function] = ACTIONS(4321),
    [sym_goto] = ACTIONS(4321),
    [sym_if] = ACTIONS(4321),
    [sym_immutable] = ACTIONS(4321),
    [sym_import] = ACTIONS(4321),
    [sym_in] = ACTIONS(4321),
    [sym_inout] = ACTIONS(4321),
    [sym_interface] = ACTIONS(4321),
    [sym_invariant] = ACTIONS(4321),
    [sym_is] = ACTIONS(4321),
    [sym_mixin] = ACTIONS(4321),
    [sym_new] = ACTIONS(4321),
    [sym_nothrow] = ACTIONS(4321),
    [sym_out] = ACTIONS(4321),
    [sym_override] = ACTIONS(4321),
    [sym_package] = ACTIONS(4321),
    [sym_pragma] = ACTIONS(4321),
    [sym_private] = ACTIONS(4321),
    [sym_protected] = ACTIONS(4321),
    [sym_public] = ACTIONS(4321),
    [sym_pure] = ACTIONS(4321),
    [sym_ref] = ACTIONS(4321),
    [sym_return] = ACTIONS(4321),
    [sym_scope] = ACTIONS(4321),
    [sym_shared] = ACTIONS(4321),
    [sym_static] = ACTIONS(4321),
    [sym_struct] = ACTIONS(4321),
    [sym_switch] = ACTIONS(4321),
    [sym_synchronized] = ACTIONS(4321),
    [sym_template] = ACTIONS(4321),
    [sym_throw] = ACTIONS(4321),
    [sym_try] = ACTIONS(4321),
    [sym_typeid] = ACTIONS(4321),
    [sym_typeof] = ACTIONS(4321),
    [sym_union] = ACTIONS(4321),
    [sym_unittest] = ACTIONS(4321),
    [sym_version] = ACTIONS(4321),
    [sym_while] = ACTIONS(4321),
    [sym_with] = ACTIONS(4321),
    [sym_gshared] = ACTIONS(4321),
    [sym_traits] = ACTIONS(4321),
    [sym_vector] = ACTIONS(4321),
    [sym_void] = ACTIONS(4321),
    [anon_sym_BQUOTE] = ACTIONS(4324),
    [anon_sym_r_DQUOTE] = ACTIONS(4324),
    [anon_sym_x_DQUOTE] = ACTIONS(4324),
    [anon_sym_DQUOTE] = ACTIONS(4324),
    [anon_sym_i_BQUOTE] = ACTIONS(4324),
    [anon_sym_i_DQUOTE] = ACTIONS(4324),
    [anon_sym_iq_LBRACE] = ACTIONS(4324),
    [aux_sym_char_literal_token1] = ACTIONS(4324),
    [anon_sym_SQUOTE] = ACTIONS(4321),
    [anon_sym___DATE__] = ACTIONS(4321),
    [anon_sym___FILE__] = ACTIONS(4321),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4321),
    [anon_sym___FUNCTION__] = ACTIONS(4321),
    [anon_sym___LINE__] = ACTIONS(4321),
    [anon_sym___MODULE__] = ACTIONS(4321),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4321),
    [anon_sym___TIME__] = ACTIONS(4321),
    [anon_sym___TIMESTAMP__] = ACTIONS(4321),
    [anon_sym___VENDOR__] = ACTIONS(4321),
    [anon_sym___VERSION__] = ACTIONS(4321),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4324),
    [sym_float_literal] = ACTIONS(4324),
    [sym__string] = ACTIONS(4324),
  },
  [1364] = {
    [sym_identifier] = ACTIONS(4327),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4329),
    [anon_sym_RBRACE] = ACTIONS(4329),
    [anon_sym_LBRACE] = ACTIONS(4329),
    [anon_sym_DOT] = ACTIONS(4329),
    [anon_sym_AMP] = ACTIONS(4329),
    [anon_sym_DASH] = ACTIONS(4327),
    [anon_sym_DASH_DASH] = ACTIONS(4329),
    [anon_sym_PLUS] = ACTIONS(4327),
    [anon_sym_PLUS_PLUS] = ACTIONS(4329),
    [anon_sym_BANG] = ACTIONS(4329),
    [anon_sym_LPAREN] = ACTIONS(4329),
    [anon_sym_RPAREN] = ACTIONS(4329),
    [anon_sym_LBRACK] = ACTIONS(4329),
    [anon_sym_SEMI] = ACTIONS(4329),
    [anon_sym_DOLLAR] = ACTIONS(4329),
    [anon_sym_STAR] = ACTIONS(4329),
    [anon_sym_TILDE] = ACTIONS(4329),
    [anon_sym_AT] = ACTIONS(4329),
    [sym_bool] = ACTIONS(4327),
    [sym_byte] = ACTIONS(4327),
    [sym_ubyte] = ACTIONS(4327),
    [sym_char] = ACTIONS(4327),
    [sym_short] = ACTIONS(4327),
    [sym_ushort] = ACTIONS(4327),
    [sym_int] = ACTIONS(4327),
    [sym_uint] = ACTIONS(4327),
    [sym_long] = ACTIONS(4327),
    [sym_ulong] = ACTIONS(4327),
    [sym_cent] = ACTIONS(4327),
    [sym_ucent] = ACTIONS(4327),
    [sym_wchar] = ACTIONS(4327),
    [sym_dchar] = ACTIONS(4327),
    [sym_float] = ACTIONS(4327),
    [sym_double] = ACTIONS(4327),
    [sym_real] = ACTIONS(4327),
    [sym_ifloat] = ACTIONS(4327),
    [sym_idouble] = ACTIONS(4327),
    [sym_ireal] = ACTIONS(4327),
    [sym_cfloat] = ACTIONS(4327),
    [sym_cdouble] = ACTIONS(4327),
    [sym_creal] = ACTIONS(4327),
    [sym_size_t] = ACTIONS(4327),
    [sym_ptrdiff_t] = ACTIONS(4327),
    [sym_string] = ACTIONS(4327),
    [sym_cstring] = ACTIONS(4327),
    [sym_dstring] = ACTIONS(4327),
    [sym_wstring] = ACTIONS(4327),
    [sym_noreturn] = ACTIONS(4327),
    [sym_true] = ACTIONS(4327),
    [sym_false] = ACTIONS(4327),
    [sym_null] = ACTIONS(4327),
    [sym_super] = ACTIONS(4327),
    [sym_this] = ACTIONS(4327),
    [sym_abstract] = ACTIONS(4327),
    [sym_alias] = ACTIONS(4327),
    [sym_align] = ACTIONS(4327),
    [sym_asm] = ACTIONS(4327),
    [sym_assert] = ACTIONS(4327),
    [sym_auto] = ACTIONS(4327),
    [sym_break] = ACTIONS(4327),
    [sym_case] = ACTIONS(4327),
    [sym_cast] = ACTIONS(4327),
    [sym_catch] = ACTIONS(4327),
    [sym_class] = ACTIONS(4327),
    [sym_const] = ACTIONS(4327),
    [sym_continue] = ACTIONS(4327),
    [sym_debug] = ACTIONS(4327),
    [sym_default] = ACTIONS(4327),
    [sym_delegate] = ACTIONS(4327),
    [sym_delete] = ACTIONS(4327),
    [sym_deprecated] = ACTIONS(4327),
    [sym_do] = ACTIONS(4327),
    [sym_else] = ACTIONS(4327),
    [sym_enum] = ACTIONS(4327),
    [sym_export] = ACTIONS(4327),
    [sym_extern] = ACTIONS(4327),
    [sym_final] = ACTIONS(4327),
    [sym_finally] = ACTIONS(4327),
    [sym_for] = ACTIONS(4327),
    [sym_foreach] = ACTIONS(4327),
    [sym_foreach_reverse] = ACTIONS(4327),
    [sym_function] = ACTIONS(4327),
    [sym_goto] = ACTIONS(4327),
    [sym_if] = ACTIONS(4327),
    [sym_immutable] = ACTIONS(4327),
    [sym_import] = ACTIONS(4327),
    [sym_in] = ACTIONS(4327),
    [sym_inout] = ACTIONS(4327),
    [sym_interface] = ACTIONS(4327),
    [sym_invariant] = ACTIONS(4327),
    [sym_is] = ACTIONS(4327),
    [sym_mixin] = ACTIONS(4327),
    [sym_new] = ACTIONS(4327),
    [sym_nothrow] = ACTIONS(4327),
    [sym_out] = ACTIONS(4327),
    [sym_override] = ACTIONS(4327),
    [sym_package] = ACTIONS(4327),
    [sym_pragma] = ACTIONS(4327),
    [sym_private] = ACTIONS(4327),
    [sym_protected] = ACTIONS(4327),
    [sym_public] = ACTIONS(4327),
    [sym_pure] = ACTIONS(4327),
    [sym_ref] = ACTIONS(4327),
    [sym_return] = ACTIONS(4327),
    [sym_scope] = ACTIONS(4327),
    [sym_shared] = ACTIONS(4327),
    [sym_static] = ACTIONS(4327),
    [sym_struct] = ACTIONS(4327),
    [sym_switch] = ACTIONS(4327),
    [sym_synchronized] = ACTIONS(4327),
    [sym_template] = ACTIONS(4327),
    [sym_throw] = ACTIONS(4327),
    [sym_try] = ACTIONS(4327),
    [sym_typeid] = ACTIONS(4327),
    [sym_typeof] = ACTIONS(4327),
    [sym_union] = ACTIONS(4327),
    [sym_unittest] = ACTIONS(4327),
    [sym_version] = ACTIONS(4327),
    [sym_while] = ACTIONS(4327),
    [sym_with] = ACTIONS(4327),
    [sym_gshared] = ACTIONS(4327),
    [sym_traits] = ACTIONS(4327),
    [sym_vector] = ACTIONS(4327),
    [sym_void] = ACTIONS(4327),
    [anon_sym_BQUOTE] = ACTIONS(4329),
    [anon_sym_r_DQUOTE] = ACTIONS(4329),
    [anon_sym_x_DQUOTE] = ACTIONS(4329),
    [anon_sym_DQUOTE] = ACTIONS(4329),
    [anon_sym_i_BQUOTE] = ACTIONS(4329),
    [anon_sym_i_DQUOTE] = ACTIONS(4329),
    [anon_sym_iq_LBRACE] = ACTIONS(4329),
    [aux_sym_char_literal_token1] = ACTIONS(4329),
    [anon_sym_SQUOTE] = ACTIONS(4327),
    [anon_sym___DATE__] = ACTIONS(4327),
    [anon_sym___FILE__] = ACTIONS(4327),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4327),
    [anon_sym___FUNCTION__] = ACTIONS(4327),
    [anon_sym___LINE__] = ACTIONS(4327),
    [anon_sym___MODULE__] = ACTIONS(4327),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4327),
    [anon_sym___TIME__] = ACTIONS(4327),
    [anon_sym___TIMESTAMP__] = ACTIONS(4327),
    [anon_sym___VENDOR__] = ACTIONS(4327),
    [anon_sym___VERSION__] = ACTIONS(4327),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4329),
    [sym_float_literal] = ACTIONS(4329),
    [sym__string] = ACTIONS(4329),
  },
  [1365] = {
    [sym_identifier] = ACTIONS(4331),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4333),
    [anon_sym_RBRACE] = ACTIONS(4333),
    [anon_sym_LBRACE] = ACTIONS(4333),
    [anon_sym_DOT] = ACTIONS(4333),
    [anon_sym_AMP] = ACTIONS(4333),
    [anon_sym_DASH] = ACTIONS(4331),
    [anon_sym_DASH_DASH] = ACTIONS(4333),
    [anon_sym_PLUS] = ACTIONS(4331),
    [anon_sym_PLUS_PLUS] = ACTIONS(4333),
    [anon_sym_BANG] = ACTIONS(4333),
    [anon_sym_LPAREN] = ACTIONS(4333),
    [anon_sym_RPAREN] = ACTIONS(4333),
    [anon_sym_LBRACK] = ACTIONS(4333),
    [anon_sym_SEMI] = ACTIONS(4333),
    [anon_sym_DOLLAR] = ACTIONS(4333),
    [anon_sym_STAR] = ACTIONS(4333),
    [anon_sym_TILDE] = ACTIONS(4333),
    [anon_sym_AT] = ACTIONS(4333),
    [sym_bool] = ACTIONS(4331),
    [sym_byte] = ACTIONS(4331),
    [sym_ubyte] = ACTIONS(4331),
    [sym_char] = ACTIONS(4331),
    [sym_short] = ACTIONS(4331),
    [sym_ushort] = ACTIONS(4331),
    [sym_int] = ACTIONS(4331),
    [sym_uint] = ACTIONS(4331),
    [sym_long] = ACTIONS(4331),
    [sym_ulong] = ACTIONS(4331),
    [sym_cent] = ACTIONS(4331),
    [sym_ucent] = ACTIONS(4331),
    [sym_wchar] = ACTIONS(4331),
    [sym_dchar] = ACTIONS(4331),
    [sym_float] = ACTIONS(4331),
    [sym_double] = ACTIONS(4331),
    [sym_real] = ACTIONS(4331),
    [sym_ifloat] = ACTIONS(4331),
    [sym_idouble] = ACTIONS(4331),
    [sym_ireal] = ACTIONS(4331),
    [sym_cfloat] = ACTIONS(4331),
    [sym_cdouble] = ACTIONS(4331),
    [sym_creal] = ACTIONS(4331),
    [sym_size_t] = ACTIONS(4331),
    [sym_ptrdiff_t] = ACTIONS(4331),
    [sym_string] = ACTIONS(4331),
    [sym_cstring] = ACTIONS(4331),
    [sym_dstring] = ACTIONS(4331),
    [sym_wstring] = ACTIONS(4331),
    [sym_noreturn] = ACTIONS(4331),
    [sym_true] = ACTIONS(4331),
    [sym_false] = ACTIONS(4331),
    [sym_null] = ACTIONS(4331),
    [sym_super] = ACTIONS(4331),
    [sym_this] = ACTIONS(4331),
    [sym_abstract] = ACTIONS(4331),
    [sym_alias] = ACTIONS(4331),
    [sym_align] = ACTIONS(4331),
    [sym_asm] = ACTIONS(4331),
    [sym_assert] = ACTIONS(4331),
    [sym_auto] = ACTIONS(4331),
    [sym_break] = ACTIONS(4331),
    [sym_case] = ACTIONS(4331),
    [sym_cast] = ACTIONS(4331),
    [sym_catch] = ACTIONS(4331),
    [sym_class] = ACTIONS(4331),
    [sym_const] = ACTIONS(4331),
    [sym_continue] = ACTIONS(4331),
    [sym_debug] = ACTIONS(4331),
    [sym_default] = ACTIONS(4331),
    [sym_delegate] = ACTIONS(4331),
    [sym_delete] = ACTIONS(4331),
    [sym_deprecated] = ACTIONS(4331),
    [sym_do] = ACTIONS(4331),
    [sym_else] = ACTIONS(4331),
    [sym_enum] = ACTIONS(4331),
    [sym_export] = ACTIONS(4331),
    [sym_extern] = ACTIONS(4331),
    [sym_final] = ACTIONS(4331),
    [sym_finally] = ACTIONS(4331),
    [sym_for] = ACTIONS(4331),
    [sym_foreach] = ACTIONS(4331),
    [sym_foreach_reverse] = ACTIONS(4331),
    [sym_function] = ACTIONS(4331),
    [sym_goto] = ACTIONS(4331),
    [sym_if] = ACTIONS(4331),
    [sym_immutable] = ACTIONS(4331),
    [sym_import] = ACTIONS(4331),
    [sym_in] = ACTIONS(4331),
    [sym_inout] = ACTIONS(4331),
    [sym_interface] = ACTIONS(4331),
    [sym_invariant] = ACTIONS(4331),
    [sym_is] = ACTIONS(4331),
    [sym_mixin] = ACTIONS(4331),
    [sym_new] = ACTIONS(4331),
    [sym_nothrow] = ACTIONS(4331),
    [sym_out] = ACTIONS(4331),
    [sym_override] = ACTIONS(4331),
    [sym_package] = ACTIONS(4331),
    [sym_pragma] = ACTIONS(4331),
    [sym_private] = ACTIONS(4331),
    [sym_protected] = ACTIONS(4331),
    [sym_public] = ACTIONS(4331),
    [sym_pure] = ACTIONS(4331),
    [sym_ref] = ACTIONS(4331),
    [sym_return] = ACTIONS(4331),
    [sym_scope] = ACTIONS(4331),
    [sym_shared] = ACTIONS(4331),
    [sym_static] = ACTIONS(4331),
    [sym_struct] = ACTIONS(4331),
    [sym_switch] = ACTIONS(4331),
    [sym_synchronized] = ACTIONS(4331),
    [sym_template] = ACTIONS(4331),
    [sym_throw] = ACTIONS(4331),
    [sym_try] = ACTIONS(4331),
    [sym_typeid] = ACTIONS(4331),
    [sym_typeof] = ACTIONS(4331),
    [sym_union] = ACTIONS(4331),
    [sym_unittest] = ACTIONS(4331),
    [sym_version] = ACTIONS(4331),
    [sym_while] = ACTIONS(4331),
    [sym_with] = ACTIONS(4331),
    [sym_gshared] = ACTIONS(4331),
    [sym_traits] = ACTIONS(4331),
    [sym_vector] = ACTIONS(4331),
    [sym_void] = ACTIONS(4331),
    [anon_sym_BQUOTE] = ACTIONS(4333),
    [anon_sym_r_DQUOTE] = ACTIONS(4333),
    [anon_sym_x_DQUOTE] = ACTIONS(4333),
    [anon_sym_DQUOTE] = ACTIONS(4333),
    [anon_sym_i_BQUOTE] = ACTIONS(4333),
    [anon_sym_i_DQUOTE] = ACTIONS(4333),
    [anon_sym_iq_LBRACE] = ACTIONS(4333),
    [aux_sym_char_literal_token1] = ACTIONS(4333),
    [anon_sym_SQUOTE] = ACTIONS(4331),
    [anon_sym___DATE__] = ACTIONS(4331),
    [anon_sym___FILE__] = ACTIONS(4331),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4331),
    [anon_sym___FUNCTION__] = ACTIONS(4331),
    [anon_sym___LINE__] = ACTIONS(4331),
    [anon_sym___MODULE__] = ACTIONS(4331),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4331),
    [anon_sym___TIME__] = ACTIONS(4331),
    [anon_sym___TIMESTAMP__] = ACTIONS(4331),
    [anon_sym___VENDOR__] = ACTIONS(4331),
    [anon_sym___VERSION__] = ACTIONS(4331),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4333),
    [sym_float_literal] = ACTIONS(4333),
    [sym__string] = ACTIONS(4333),
  },
  [1366] = {
    [sym_identifier] = ACTIONS(4335),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4337),
    [anon_sym_RBRACE] = ACTIONS(4337),
    [anon_sym_LBRACE] = ACTIONS(4337),
    [anon_sym_DOT] = ACTIONS(4337),
    [anon_sym_AMP] = ACTIONS(4337),
    [anon_sym_DASH] = ACTIONS(4335),
    [anon_sym_DASH_DASH] = ACTIONS(4337),
    [anon_sym_PLUS] = ACTIONS(4335),
    [anon_sym_PLUS_PLUS] = ACTIONS(4337),
    [anon_sym_BANG] = ACTIONS(4337),
    [anon_sym_LPAREN] = ACTIONS(4337),
    [anon_sym_RPAREN] = ACTIONS(4337),
    [anon_sym_LBRACK] = ACTIONS(4337),
    [anon_sym_SEMI] = ACTIONS(4337),
    [anon_sym_DOLLAR] = ACTIONS(4337),
    [anon_sym_STAR] = ACTIONS(4337),
    [anon_sym_TILDE] = ACTIONS(4337),
    [anon_sym_AT] = ACTIONS(4337),
    [sym_bool] = ACTIONS(4335),
    [sym_byte] = ACTIONS(4335),
    [sym_ubyte] = ACTIONS(4335),
    [sym_char] = ACTIONS(4335),
    [sym_short] = ACTIONS(4335),
    [sym_ushort] = ACTIONS(4335),
    [sym_int] = ACTIONS(4335),
    [sym_uint] = ACTIONS(4335),
    [sym_long] = ACTIONS(4335),
    [sym_ulong] = ACTIONS(4335),
    [sym_cent] = ACTIONS(4335),
    [sym_ucent] = ACTIONS(4335),
    [sym_wchar] = ACTIONS(4335),
    [sym_dchar] = ACTIONS(4335),
    [sym_float] = ACTIONS(4335),
    [sym_double] = ACTIONS(4335),
    [sym_real] = ACTIONS(4335),
    [sym_ifloat] = ACTIONS(4335),
    [sym_idouble] = ACTIONS(4335),
    [sym_ireal] = ACTIONS(4335),
    [sym_cfloat] = ACTIONS(4335),
    [sym_cdouble] = ACTIONS(4335),
    [sym_creal] = ACTIONS(4335),
    [sym_size_t] = ACTIONS(4335),
    [sym_ptrdiff_t] = ACTIONS(4335),
    [sym_string] = ACTIONS(4335),
    [sym_cstring] = ACTIONS(4335),
    [sym_dstring] = ACTIONS(4335),
    [sym_wstring] = ACTIONS(4335),
    [sym_noreturn] = ACTIONS(4335),
    [sym_true] = ACTIONS(4335),
    [sym_false] = ACTIONS(4335),
    [sym_null] = ACTIONS(4335),
    [sym_super] = ACTIONS(4335),
    [sym_this] = ACTIONS(4335),
    [sym_abstract] = ACTIONS(4335),
    [sym_alias] = ACTIONS(4335),
    [sym_align] = ACTIONS(4335),
    [sym_asm] = ACTIONS(4335),
    [sym_assert] = ACTIONS(4335),
    [sym_auto] = ACTIONS(4335),
    [sym_break] = ACTIONS(4335),
    [sym_case] = ACTIONS(4335),
    [sym_cast] = ACTIONS(4335),
    [sym_catch] = ACTIONS(4335),
    [sym_class] = ACTIONS(4335),
    [sym_const] = ACTIONS(4335),
    [sym_continue] = ACTIONS(4335),
    [sym_debug] = ACTIONS(4335),
    [sym_default] = ACTIONS(4335),
    [sym_delegate] = ACTIONS(4335),
    [sym_delete] = ACTIONS(4335),
    [sym_deprecated] = ACTIONS(4335),
    [sym_do] = ACTIONS(4335),
    [sym_else] = ACTIONS(4335),
    [sym_enum] = ACTIONS(4335),
    [sym_export] = ACTIONS(4335),
    [sym_extern] = ACTIONS(4335),
    [sym_final] = ACTIONS(4335),
    [sym_finally] = ACTIONS(4335),
    [sym_for] = ACTIONS(4335),
    [sym_foreach] = ACTIONS(4335),
    [sym_foreach_reverse] = ACTIONS(4335),
    [sym_function] = ACTIONS(4335),
    [sym_goto] = ACTIONS(4335),
    [sym_if] = ACTIONS(4335),
    [sym_immutable] = ACTIONS(4335),
    [sym_import] = ACTIONS(4335),
    [sym_in] = ACTIONS(4335),
    [sym_inout] = ACTIONS(4335),
    [sym_interface] = ACTIONS(4335),
    [sym_invariant] = ACTIONS(4335),
    [sym_is] = ACTIONS(4335),
    [sym_mixin] = ACTIONS(4335),
    [sym_new] = ACTIONS(4335),
    [sym_nothrow] = ACTIONS(4335),
    [sym_out] = ACTIONS(4335),
    [sym_override] = ACTIONS(4335),
    [sym_package] = ACTIONS(4335),
    [sym_pragma] = ACTIONS(4335),
    [sym_private] = ACTIONS(4335),
    [sym_protected] = ACTIONS(4335),
    [sym_public] = ACTIONS(4335),
    [sym_pure] = ACTIONS(4335),
    [sym_ref] = ACTIONS(4335),
    [sym_return] = ACTIONS(4335),
    [sym_scope] = ACTIONS(4335),
    [sym_shared] = ACTIONS(4335),
    [sym_static] = ACTIONS(4335),
    [sym_struct] = ACTIONS(4335),
    [sym_switch] = ACTIONS(4335),
    [sym_synchronized] = ACTIONS(4335),
    [sym_template] = ACTIONS(4335),
    [sym_throw] = ACTIONS(4335),
    [sym_try] = ACTIONS(4335),
    [sym_typeid] = ACTIONS(4335),
    [sym_typeof] = ACTIONS(4335),
    [sym_union] = ACTIONS(4335),
    [sym_unittest] = ACTIONS(4335),
    [sym_version] = ACTIONS(4335),
    [sym_while] = ACTIONS(4335),
    [sym_with] = ACTIONS(4335),
    [sym_gshared] = ACTIONS(4335),
    [sym_traits] = ACTIONS(4335),
    [sym_vector] = ACTIONS(4335),
    [sym_void] = ACTIONS(4335),
    [anon_sym_BQUOTE] = ACTIONS(4337),
    [anon_sym_r_DQUOTE] = ACTIONS(4337),
    [anon_sym_x_DQUOTE] = ACTIONS(4337),
    [anon_sym_DQUOTE] = ACTIONS(4337),
    [anon_sym_i_BQUOTE] = ACTIONS(4337),
    [anon_sym_i_DQUOTE] = ACTIONS(4337),
    [anon_sym_iq_LBRACE] = ACTIONS(4337),
    [aux_sym_char_literal_token1] = ACTIONS(4337),
    [anon_sym_SQUOTE] = ACTIONS(4335),
    [anon_sym___DATE__] = ACTIONS(4335),
    [anon_sym___FILE__] = ACTIONS(4335),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4335),
    [anon_sym___FUNCTION__] = ACTIONS(4335),
    [anon_sym___LINE__] = ACTIONS(4335),
    [anon_sym___MODULE__] = ACTIONS(4335),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4335),
    [anon_sym___TIME__] = ACTIONS(4335),
    [anon_sym___TIMESTAMP__] = ACTIONS(4335),
    [anon_sym___VENDOR__] = ACTIONS(4335),
    [anon_sym___VERSION__] = ACTIONS(4335),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4337),
    [sym_float_literal] = ACTIONS(4337),
    [sym__string] = ACTIONS(4337),
  },
  [1367] = {
    [sym_identifier] = ACTIONS(4339),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4341),
    [anon_sym_RBRACE] = ACTIONS(4341),
    [anon_sym_LBRACE] = ACTIONS(4341),
    [anon_sym_DOT] = ACTIONS(4341),
    [anon_sym_AMP] = ACTIONS(4341),
    [anon_sym_DASH] = ACTIONS(4339),
    [anon_sym_DASH_DASH] = ACTIONS(4341),
    [anon_sym_PLUS] = ACTIONS(4339),
    [anon_sym_PLUS_PLUS] = ACTIONS(4341),
    [anon_sym_BANG] = ACTIONS(4341),
    [anon_sym_LPAREN] = ACTIONS(4341),
    [anon_sym_RPAREN] = ACTIONS(4341),
    [anon_sym_LBRACK] = ACTIONS(4341),
    [anon_sym_SEMI] = ACTIONS(4341),
    [anon_sym_DOLLAR] = ACTIONS(4341),
    [anon_sym_STAR] = ACTIONS(4341),
    [anon_sym_TILDE] = ACTIONS(4341),
    [anon_sym_AT] = ACTIONS(4341),
    [sym_bool] = ACTIONS(4339),
    [sym_byte] = ACTIONS(4339),
    [sym_ubyte] = ACTIONS(4339),
    [sym_char] = ACTIONS(4339),
    [sym_short] = ACTIONS(4339),
    [sym_ushort] = ACTIONS(4339),
    [sym_int] = ACTIONS(4339),
    [sym_uint] = ACTIONS(4339),
    [sym_long] = ACTIONS(4339),
    [sym_ulong] = ACTIONS(4339),
    [sym_cent] = ACTIONS(4339),
    [sym_ucent] = ACTIONS(4339),
    [sym_wchar] = ACTIONS(4339),
    [sym_dchar] = ACTIONS(4339),
    [sym_float] = ACTIONS(4339),
    [sym_double] = ACTIONS(4339),
    [sym_real] = ACTIONS(4339),
    [sym_ifloat] = ACTIONS(4339),
    [sym_idouble] = ACTIONS(4339),
    [sym_ireal] = ACTIONS(4339),
    [sym_cfloat] = ACTIONS(4339),
    [sym_cdouble] = ACTIONS(4339),
    [sym_creal] = ACTIONS(4339),
    [sym_size_t] = ACTIONS(4339),
    [sym_ptrdiff_t] = ACTIONS(4339),
    [sym_string] = ACTIONS(4339),
    [sym_cstring] = ACTIONS(4339),
    [sym_dstring] = ACTIONS(4339),
    [sym_wstring] = ACTIONS(4339),
    [sym_noreturn] = ACTIONS(4339),
    [sym_true] = ACTIONS(4339),
    [sym_false] = ACTIONS(4339),
    [sym_null] = ACTIONS(4339),
    [sym_super] = ACTIONS(4339),
    [sym_this] = ACTIONS(4339),
    [sym_abstract] = ACTIONS(4339),
    [sym_alias] = ACTIONS(4339),
    [sym_align] = ACTIONS(4339),
    [sym_asm] = ACTIONS(4339),
    [sym_assert] = ACTIONS(4339),
    [sym_auto] = ACTIONS(4339),
    [sym_break] = ACTIONS(4339),
    [sym_case] = ACTIONS(4339),
    [sym_cast] = ACTIONS(4339),
    [sym_catch] = ACTIONS(4339),
    [sym_class] = ACTIONS(4339),
    [sym_const] = ACTIONS(4339),
    [sym_continue] = ACTIONS(4339),
    [sym_debug] = ACTIONS(4339),
    [sym_default] = ACTIONS(4339),
    [sym_delegate] = ACTIONS(4339),
    [sym_delete] = ACTIONS(4339),
    [sym_deprecated] = ACTIONS(4339),
    [sym_do] = ACTIONS(4339),
    [sym_else] = ACTIONS(4339),
    [sym_enum] = ACTIONS(4339),
    [sym_export] = ACTIONS(4339),
    [sym_extern] = ACTIONS(4339),
    [sym_final] = ACTIONS(4339),
    [sym_finally] = ACTIONS(4339),
    [sym_for] = ACTIONS(4339),
    [sym_foreach] = ACTIONS(4339),
    [sym_foreach_reverse] = ACTIONS(4339),
    [sym_function] = ACTIONS(4339),
    [sym_goto] = ACTIONS(4339),
    [sym_if] = ACTIONS(4339),
    [sym_immutable] = ACTIONS(4339),
    [sym_import] = ACTIONS(4339),
    [sym_in] = ACTIONS(4339),
    [sym_inout] = ACTIONS(4339),
    [sym_interface] = ACTIONS(4339),
    [sym_invariant] = ACTIONS(4339),
    [sym_is] = ACTIONS(4339),
    [sym_mixin] = ACTIONS(4339),
    [sym_new] = ACTIONS(4339),
    [sym_nothrow] = ACTIONS(4339),
    [sym_out] = ACTIONS(4339),
    [sym_override] = ACTIONS(4339),
    [sym_package] = ACTIONS(4339),
    [sym_pragma] = ACTIONS(4339),
    [sym_private] = ACTIONS(4339),
    [sym_protected] = ACTIONS(4339),
    [sym_public] = ACTIONS(4339),
    [sym_pure] = ACTIONS(4339),
    [sym_ref] = ACTIONS(4339),
    [sym_return] = ACTIONS(4339),
    [sym_scope] = ACTIONS(4339),
    [sym_shared] = ACTIONS(4339),
    [sym_static] = ACTIONS(4339),
    [sym_struct] = ACTIONS(4339),
    [sym_switch] = ACTIONS(4339),
    [sym_synchronized] = ACTIONS(4339),
    [sym_template] = ACTIONS(4339),
    [sym_throw] = ACTIONS(4339),
    [sym_try] = ACTIONS(4339),
    [sym_typeid] = ACTIONS(4339),
    [sym_typeof] = ACTIONS(4339),
    [sym_union] = ACTIONS(4339),
    [sym_unittest] = ACTIONS(4339),
    [sym_version] = ACTIONS(4339),
    [sym_while] = ACTIONS(4339),
    [sym_with] = ACTIONS(4339),
    [sym_gshared] = ACTIONS(4339),
    [sym_traits] = ACTIONS(4339),
    [sym_vector] = ACTIONS(4339),
    [sym_void] = ACTIONS(4339),
    [anon_sym_BQUOTE] = ACTIONS(4341),
    [anon_sym_r_DQUOTE] = ACTIONS(4341),
    [anon_sym_x_DQUOTE] = ACTIONS(4341),
    [anon_sym_DQUOTE] = ACTIONS(4341),
    [anon_sym_i_BQUOTE] = ACTIONS(4341),
    [anon_sym_i_DQUOTE] = ACTIONS(4341),
    [anon_sym_iq_LBRACE] = ACTIONS(4341),
    [aux_sym_char_literal_token1] = ACTIONS(4341),
    [anon_sym_SQUOTE] = ACTIONS(4339),
    [anon_sym___DATE__] = ACTIONS(4339),
    [anon_sym___FILE__] = ACTIONS(4339),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4339),
    [anon_sym___FUNCTION__] = ACTIONS(4339),
    [anon_sym___LINE__] = ACTIONS(4339),
    [anon_sym___MODULE__] = ACTIONS(4339),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4339),
    [anon_sym___TIME__] = ACTIONS(4339),
    [anon_sym___TIMESTAMP__] = ACTIONS(4339),
    [anon_sym___VENDOR__] = ACTIONS(4339),
    [anon_sym___VERSION__] = ACTIONS(4339),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4341),
    [sym_float_literal] = ACTIONS(4341),
    [sym__string] = ACTIONS(4341),
  },
  [1368] = {
    [sym_identifier] = ACTIONS(4343),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4345),
    [anon_sym_RBRACE] = ACTIONS(4345),
    [anon_sym_LBRACE] = ACTIONS(4345),
    [anon_sym_DOT] = ACTIONS(4345),
    [anon_sym_AMP] = ACTIONS(4345),
    [anon_sym_DASH] = ACTIONS(4343),
    [anon_sym_DASH_DASH] = ACTIONS(4345),
    [anon_sym_PLUS] = ACTIONS(4343),
    [anon_sym_PLUS_PLUS] = ACTIONS(4345),
    [anon_sym_BANG] = ACTIONS(4345),
    [anon_sym_LPAREN] = ACTIONS(4345),
    [anon_sym_RPAREN] = ACTIONS(4345),
    [anon_sym_LBRACK] = ACTIONS(4345),
    [anon_sym_SEMI] = ACTIONS(4345),
    [anon_sym_DOLLAR] = ACTIONS(4345),
    [anon_sym_STAR] = ACTIONS(4345),
    [anon_sym_TILDE] = ACTIONS(4345),
    [anon_sym_AT] = ACTIONS(4345),
    [sym_bool] = ACTIONS(4343),
    [sym_byte] = ACTIONS(4343),
    [sym_ubyte] = ACTIONS(4343),
    [sym_char] = ACTIONS(4343),
    [sym_short] = ACTIONS(4343),
    [sym_ushort] = ACTIONS(4343),
    [sym_int] = ACTIONS(4343),
    [sym_uint] = ACTIONS(4343),
    [sym_long] = ACTIONS(4343),
    [sym_ulong] = ACTIONS(4343),
    [sym_cent] = ACTIONS(4343),
    [sym_ucent] = ACTIONS(4343),
    [sym_wchar] = ACTIONS(4343),
    [sym_dchar] = ACTIONS(4343),
    [sym_float] = ACTIONS(4343),
    [sym_double] = ACTIONS(4343),
    [sym_real] = ACTIONS(4343),
    [sym_ifloat] = ACTIONS(4343),
    [sym_idouble] = ACTIONS(4343),
    [sym_ireal] = ACTIONS(4343),
    [sym_cfloat] = ACTIONS(4343),
    [sym_cdouble] = ACTIONS(4343),
    [sym_creal] = ACTIONS(4343),
    [sym_size_t] = ACTIONS(4343),
    [sym_ptrdiff_t] = ACTIONS(4343),
    [sym_string] = ACTIONS(4343),
    [sym_cstring] = ACTIONS(4343),
    [sym_dstring] = ACTIONS(4343),
    [sym_wstring] = ACTIONS(4343),
    [sym_noreturn] = ACTIONS(4343),
    [sym_true] = ACTIONS(4343),
    [sym_false] = ACTIONS(4343),
    [sym_null] = ACTIONS(4343),
    [sym_super] = ACTIONS(4343),
    [sym_this] = ACTIONS(4343),
    [sym_abstract] = ACTIONS(4343),
    [sym_alias] = ACTIONS(4343),
    [sym_align] = ACTIONS(4343),
    [sym_asm] = ACTIONS(4343),
    [sym_assert] = ACTIONS(4343),
    [sym_auto] = ACTIONS(4343),
    [sym_break] = ACTIONS(4343),
    [sym_case] = ACTIONS(4343),
    [sym_cast] = ACTIONS(4343),
    [sym_catch] = ACTIONS(4343),
    [sym_class] = ACTIONS(4343),
    [sym_const] = ACTIONS(4343),
    [sym_continue] = ACTIONS(4343),
    [sym_debug] = ACTIONS(4343),
    [sym_default] = ACTIONS(4343),
    [sym_delegate] = ACTIONS(4343),
    [sym_delete] = ACTIONS(4343),
    [sym_deprecated] = ACTIONS(4343),
    [sym_do] = ACTIONS(4343),
    [sym_else] = ACTIONS(4343),
    [sym_enum] = ACTIONS(4343),
    [sym_export] = ACTIONS(4343),
    [sym_extern] = ACTIONS(4343),
    [sym_final] = ACTIONS(4343),
    [sym_finally] = ACTIONS(4343),
    [sym_for] = ACTIONS(4343),
    [sym_foreach] = ACTIONS(4343),
    [sym_foreach_reverse] = ACTIONS(4343),
    [sym_function] = ACTIONS(4343),
    [sym_goto] = ACTIONS(4343),
    [sym_if] = ACTIONS(4343),
    [sym_immutable] = ACTIONS(4343),
    [sym_import] = ACTIONS(4343),
    [sym_in] = ACTIONS(4343),
    [sym_inout] = ACTIONS(4343),
    [sym_interface] = ACTIONS(4343),
    [sym_invariant] = ACTIONS(4343),
    [sym_is] = ACTIONS(4343),
    [sym_mixin] = ACTIONS(4343),
    [sym_new] = ACTIONS(4343),
    [sym_nothrow] = ACTIONS(4343),
    [sym_out] = ACTIONS(4343),
    [sym_override] = ACTIONS(4343),
    [sym_package] = ACTIONS(4343),
    [sym_pragma] = ACTIONS(4343),
    [sym_private] = ACTIONS(4343),
    [sym_protected] = ACTIONS(4343),
    [sym_public] = ACTIONS(4343),
    [sym_pure] = ACTIONS(4343),
    [sym_ref] = ACTIONS(4343),
    [sym_return] = ACTIONS(4343),
    [sym_scope] = ACTIONS(4343),
    [sym_shared] = ACTIONS(4343),
    [sym_static] = ACTIONS(4343),
    [sym_struct] = ACTIONS(4343),
    [sym_switch] = ACTIONS(4343),
    [sym_synchronized] = ACTIONS(4343),
    [sym_template] = ACTIONS(4343),
    [sym_throw] = ACTIONS(4343),
    [sym_try] = ACTIONS(4343),
    [sym_typeid] = ACTIONS(4343),
    [sym_typeof] = ACTIONS(4343),
    [sym_union] = ACTIONS(4343),
    [sym_unittest] = ACTIONS(4343),
    [sym_version] = ACTIONS(4343),
    [sym_while] = ACTIONS(4343),
    [sym_with] = ACTIONS(4343),
    [sym_gshared] = ACTIONS(4343),
    [sym_traits] = ACTIONS(4343),
    [sym_vector] = ACTIONS(4343),
    [sym_void] = ACTIONS(4343),
    [anon_sym_BQUOTE] = ACTIONS(4345),
    [anon_sym_r_DQUOTE] = ACTIONS(4345),
    [anon_sym_x_DQUOTE] = ACTIONS(4345),
    [anon_sym_DQUOTE] = ACTIONS(4345),
    [anon_sym_i_BQUOTE] = ACTIONS(4345),
    [anon_sym_i_DQUOTE] = ACTIONS(4345),
    [anon_sym_iq_LBRACE] = ACTIONS(4345),
    [aux_sym_char_literal_token1] = ACTIONS(4345),
    [anon_sym_SQUOTE] = ACTIONS(4343),
    [anon_sym___DATE__] = ACTIONS(4343),
    [anon_sym___FILE__] = ACTIONS(4343),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4343),
    [anon_sym___FUNCTION__] = ACTIONS(4343),
    [anon_sym___LINE__] = ACTIONS(4343),
    [anon_sym___MODULE__] = ACTIONS(4343),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4343),
    [anon_sym___TIME__] = ACTIONS(4343),
    [anon_sym___TIMESTAMP__] = ACTIONS(4343),
    [anon_sym___VENDOR__] = ACTIONS(4343),
    [anon_sym___VERSION__] = ACTIONS(4343),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4345),
    [sym_float_literal] = ACTIONS(4345),
    [sym__string] = ACTIONS(4345),
  },
  [1369] = {
    [sym_identifier] = ACTIONS(4347),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4349),
    [anon_sym_RBRACE] = ACTIONS(4349),
    [anon_sym_LBRACE] = ACTIONS(4349),
    [anon_sym_DOT] = ACTIONS(4349),
    [anon_sym_AMP] = ACTIONS(4349),
    [anon_sym_DASH] = ACTIONS(4347),
    [anon_sym_DASH_DASH] = ACTIONS(4349),
    [anon_sym_PLUS] = ACTIONS(4347),
    [anon_sym_PLUS_PLUS] = ACTIONS(4349),
    [anon_sym_BANG] = ACTIONS(4349),
    [anon_sym_LPAREN] = ACTIONS(4349),
    [anon_sym_RPAREN] = ACTIONS(4349),
    [anon_sym_LBRACK] = ACTIONS(4349),
    [anon_sym_SEMI] = ACTIONS(4349),
    [anon_sym_DOLLAR] = ACTIONS(4349),
    [anon_sym_STAR] = ACTIONS(4349),
    [anon_sym_TILDE] = ACTIONS(4349),
    [anon_sym_AT] = ACTIONS(4349),
    [sym_bool] = ACTIONS(4347),
    [sym_byte] = ACTIONS(4347),
    [sym_ubyte] = ACTIONS(4347),
    [sym_char] = ACTIONS(4347),
    [sym_short] = ACTIONS(4347),
    [sym_ushort] = ACTIONS(4347),
    [sym_int] = ACTIONS(4347),
    [sym_uint] = ACTIONS(4347),
    [sym_long] = ACTIONS(4347),
    [sym_ulong] = ACTIONS(4347),
    [sym_cent] = ACTIONS(4347),
    [sym_ucent] = ACTIONS(4347),
    [sym_wchar] = ACTIONS(4347),
    [sym_dchar] = ACTIONS(4347),
    [sym_float] = ACTIONS(4347),
    [sym_double] = ACTIONS(4347),
    [sym_real] = ACTIONS(4347),
    [sym_ifloat] = ACTIONS(4347),
    [sym_idouble] = ACTIONS(4347),
    [sym_ireal] = ACTIONS(4347),
    [sym_cfloat] = ACTIONS(4347),
    [sym_cdouble] = ACTIONS(4347),
    [sym_creal] = ACTIONS(4347),
    [sym_size_t] = ACTIONS(4347),
    [sym_ptrdiff_t] = ACTIONS(4347),
    [sym_string] = ACTIONS(4347),
    [sym_cstring] = ACTIONS(4347),
    [sym_dstring] = ACTIONS(4347),
    [sym_wstring] = ACTIONS(4347),
    [sym_noreturn] = ACTIONS(4347),
    [sym_true] = ACTIONS(4347),
    [sym_false] = ACTIONS(4347),
    [sym_null] = ACTIONS(4347),
    [sym_super] = ACTIONS(4347),
    [sym_this] = ACTIONS(4347),
    [sym_abstract] = ACTIONS(4347),
    [sym_alias] = ACTIONS(4347),
    [sym_align] = ACTIONS(4347),
    [sym_asm] = ACTIONS(4347),
    [sym_assert] = ACTIONS(4347),
    [sym_auto] = ACTIONS(4347),
    [sym_break] = ACTIONS(4347),
    [sym_case] = ACTIONS(4347),
    [sym_cast] = ACTIONS(4347),
    [sym_catch] = ACTIONS(4347),
    [sym_class] = ACTIONS(4347),
    [sym_const] = ACTIONS(4347),
    [sym_continue] = ACTIONS(4347),
    [sym_debug] = ACTIONS(4347),
    [sym_default] = ACTIONS(4347),
    [sym_delegate] = ACTIONS(4347),
    [sym_delete] = ACTIONS(4347),
    [sym_deprecated] = ACTIONS(4347),
    [sym_do] = ACTIONS(4347),
    [sym_else] = ACTIONS(4347),
    [sym_enum] = ACTIONS(4347),
    [sym_export] = ACTIONS(4347),
    [sym_extern] = ACTIONS(4347),
    [sym_final] = ACTIONS(4347),
    [sym_finally] = ACTIONS(4347),
    [sym_for] = ACTIONS(4347),
    [sym_foreach] = ACTIONS(4347),
    [sym_foreach_reverse] = ACTIONS(4347),
    [sym_function] = ACTIONS(4347),
    [sym_goto] = ACTIONS(4347),
    [sym_if] = ACTIONS(4347),
    [sym_immutable] = ACTIONS(4347),
    [sym_import] = ACTIONS(4347),
    [sym_in] = ACTIONS(4347),
    [sym_inout] = ACTIONS(4347),
    [sym_interface] = ACTIONS(4347),
    [sym_invariant] = ACTIONS(4347),
    [sym_is] = ACTIONS(4347),
    [sym_mixin] = ACTIONS(4347),
    [sym_new] = ACTIONS(4347),
    [sym_nothrow] = ACTIONS(4347),
    [sym_out] = ACTIONS(4347),
    [sym_override] = ACTIONS(4347),
    [sym_package] = ACTIONS(4347),
    [sym_pragma] = ACTIONS(4347),
    [sym_private] = ACTIONS(4347),
    [sym_protected] = ACTIONS(4347),
    [sym_public] = ACTIONS(4347),
    [sym_pure] = ACTIONS(4347),
    [sym_ref] = ACTIONS(4347),
    [sym_return] = ACTIONS(4347),
    [sym_scope] = ACTIONS(4347),
    [sym_shared] = ACTIONS(4347),
    [sym_static] = ACTIONS(4347),
    [sym_struct] = ACTIONS(4347),
    [sym_switch] = ACTIONS(4347),
    [sym_synchronized] = ACTIONS(4347),
    [sym_template] = ACTIONS(4347),
    [sym_throw] = ACTIONS(4347),
    [sym_try] = ACTIONS(4347),
    [sym_typeid] = ACTIONS(4347),
    [sym_typeof] = ACTIONS(4347),
    [sym_union] = ACTIONS(4347),
    [sym_unittest] = ACTIONS(4347),
    [sym_version] = ACTIONS(4347),
    [sym_while] = ACTIONS(4347),
    [sym_with] = ACTIONS(4347),
    [sym_gshared] = ACTIONS(4347),
    [sym_traits] = ACTIONS(4347),
    [sym_vector] = ACTIONS(4347),
    [sym_void] = ACTIONS(4347),
    [anon_sym_BQUOTE] = ACTIONS(4349),
    [anon_sym_r_DQUOTE] = ACTIONS(4349),
    [anon_sym_x_DQUOTE] = ACTIONS(4349),
    [anon_sym_DQUOTE] = ACTIONS(4349),
    [anon_sym_i_BQUOTE] = ACTIONS(4349),
    [anon_sym_i_DQUOTE] = ACTIONS(4349),
    [anon_sym_iq_LBRACE] = ACTIONS(4349),
    [aux_sym_char_literal_token1] = ACTIONS(4349),
    [anon_sym_SQUOTE] = ACTIONS(4347),
    [anon_sym___DATE__] = ACTIONS(4347),
    [anon_sym___FILE__] = ACTIONS(4347),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4347),
    [anon_sym___FUNCTION__] = ACTIONS(4347),
    [anon_sym___LINE__] = ACTIONS(4347),
    [anon_sym___MODULE__] = ACTIONS(4347),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4347),
    [anon_sym___TIME__] = ACTIONS(4347),
    [anon_sym___TIMESTAMP__] = ACTIONS(4347),
    [anon_sym___VENDOR__] = ACTIONS(4347),
    [anon_sym___VERSION__] = ACTIONS(4347),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4349),
    [sym_float_literal] = ACTIONS(4349),
    [sym__string] = ACTIONS(4349),
  },
  [1370] = {
    [sym_identifier] = ACTIONS(4351),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4353),
    [anon_sym_RBRACE] = ACTIONS(4353),
    [anon_sym_LBRACE] = ACTIONS(4353),
    [anon_sym_DOT] = ACTIONS(4353),
    [anon_sym_AMP] = ACTIONS(4353),
    [anon_sym_DASH] = ACTIONS(4351),
    [anon_sym_DASH_DASH] = ACTIONS(4353),
    [anon_sym_PLUS] = ACTIONS(4351),
    [anon_sym_PLUS_PLUS] = ACTIONS(4353),
    [anon_sym_BANG] = ACTIONS(4353),
    [anon_sym_LPAREN] = ACTIONS(4353),
    [anon_sym_RPAREN] = ACTIONS(4353),
    [anon_sym_LBRACK] = ACTIONS(4353),
    [anon_sym_SEMI] = ACTIONS(4353),
    [anon_sym_DOLLAR] = ACTIONS(4353),
    [anon_sym_STAR] = ACTIONS(4353),
    [anon_sym_TILDE] = ACTIONS(4353),
    [anon_sym_AT] = ACTIONS(4353),
    [sym_bool] = ACTIONS(4351),
    [sym_byte] = ACTIONS(4351),
    [sym_ubyte] = ACTIONS(4351),
    [sym_char] = ACTIONS(4351),
    [sym_short] = ACTIONS(4351),
    [sym_ushort] = ACTIONS(4351),
    [sym_int] = ACTIONS(4351),
    [sym_uint] = ACTIONS(4351),
    [sym_long] = ACTIONS(4351),
    [sym_ulong] = ACTIONS(4351),
    [sym_cent] = ACTIONS(4351),
    [sym_ucent] = ACTIONS(4351),
    [sym_wchar] = ACTIONS(4351),
    [sym_dchar] = ACTIONS(4351),
    [sym_float] = ACTIONS(4351),
    [sym_double] = ACTIONS(4351),
    [sym_real] = ACTIONS(4351),
    [sym_ifloat] = ACTIONS(4351),
    [sym_idouble] = ACTIONS(4351),
    [sym_ireal] = ACTIONS(4351),
    [sym_cfloat] = ACTIONS(4351),
    [sym_cdouble] = ACTIONS(4351),
    [sym_creal] = ACTIONS(4351),
    [sym_size_t] = ACTIONS(4351),
    [sym_ptrdiff_t] = ACTIONS(4351),
    [sym_string] = ACTIONS(4351),
    [sym_cstring] = ACTIONS(4351),
    [sym_dstring] = ACTIONS(4351),
    [sym_wstring] = ACTIONS(4351),
    [sym_noreturn] = ACTIONS(4351),
    [sym_true] = ACTIONS(4351),
    [sym_false] = ACTIONS(4351),
    [sym_null] = ACTIONS(4351),
    [sym_super] = ACTIONS(4351),
    [sym_this] = ACTIONS(4351),
    [sym_abstract] = ACTIONS(4351),
    [sym_alias] = ACTIONS(4351),
    [sym_align] = ACTIONS(4351),
    [sym_asm] = ACTIONS(4351),
    [sym_assert] = ACTIONS(4351),
    [sym_auto] = ACTIONS(4351),
    [sym_break] = ACTIONS(4351),
    [sym_case] = ACTIONS(4351),
    [sym_cast] = ACTIONS(4351),
    [sym_catch] = ACTIONS(4351),
    [sym_class] = ACTIONS(4351),
    [sym_const] = ACTIONS(4351),
    [sym_continue] = ACTIONS(4351),
    [sym_debug] = ACTIONS(4351),
    [sym_default] = ACTIONS(4351),
    [sym_delegate] = ACTIONS(4351),
    [sym_delete] = ACTIONS(4351),
    [sym_deprecated] = ACTIONS(4351),
    [sym_do] = ACTIONS(4351),
    [sym_else] = ACTIONS(4351),
    [sym_enum] = ACTIONS(4351),
    [sym_export] = ACTIONS(4351),
    [sym_extern] = ACTIONS(4351),
    [sym_final] = ACTIONS(4351),
    [sym_finally] = ACTIONS(4351),
    [sym_for] = ACTIONS(4351),
    [sym_foreach] = ACTIONS(4351),
    [sym_foreach_reverse] = ACTIONS(4351),
    [sym_function] = ACTIONS(4351),
    [sym_goto] = ACTIONS(4351),
    [sym_if] = ACTIONS(4351),
    [sym_immutable] = ACTIONS(4351),
    [sym_import] = ACTIONS(4351),
    [sym_in] = ACTIONS(4351),
    [sym_inout] = ACTIONS(4351),
    [sym_interface] = ACTIONS(4351),
    [sym_invariant] = ACTIONS(4351),
    [sym_is] = ACTIONS(4351),
    [sym_mixin] = ACTIONS(4351),
    [sym_new] = ACTIONS(4351),
    [sym_nothrow] = ACTIONS(4351),
    [sym_out] = ACTIONS(4351),
    [sym_override] = ACTIONS(4351),
    [sym_package] = ACTIONS(4351),
    [sym_pragma] = ACTIONS(4351),
    [sym_private] = ACTIONS(4351),
    [sym_protected] = ACTIONS(4351),
    [sym_public] = ACTIONS(4351),
    [sym_pure] = ACTIONS(4351),
    [sym_ref] = ACTIONS(4351),
    [sym_return] = ACTIONS(4351),
    [sym_scope] = ACTIONS(4351),
    [sym_shared] = ACTIONS(4351),
    [sym_static] = ACTIONS(4351),
    [sym_struct] = ACTIONS(4351),
    [sym_switch] = ACTIONS(4351),
    [sym_synchronized] = ACTIONS(4351),
    [sym_template] = ACTIONS(4351),
    [sym_throw] = ACTIONS(4351),
    [sym_try] = ACTIONS(4351),
    [sym_typeid] = ACTIONS(4351),
    [sym_typeof] = ACTIONS(4351),
    [sym_union] = ACTIONS(4351),
    [sym_unittest] = ACTIONS(4351),
    [sym_version] = ACTIONS(4351),
    [sym_while] = ACTIONS(4351),
    [sym_with] = ACTIONS(4351),
    [sym_gshared] = ACTIONS(4351),
    [sym_traits] = ACTIONS(4351),
    [sym_vector] = ACTIONS(4351),
    [sym_void] = ACTIONS(4351),
    [anon_sym_BQUOTE] = ACTIONS(4353),
    [anon_sym_r_DQUOTE] = ACTIONS(4353),
    [anon_sym_x_DQUOTE] = ACTIONS(4353),
    [anon_sym_DQUOTE] = ACTIONS(4353),
    [anon_sym_i_BQUOTE] = ACTIONS(4353),
    [anon_sym_i_DQUOTE] = ACTIONS(4353),
    [anon_sym_iq_LBRACE] = ACTIONS(4353),
    [aux_sym_char_literal_token1] = ACTIONS(4353),
    [anon_sym_SQUOTE] = ACTIONS(4351),
    [anon_sym___DATE__] = ACTIONS(4351),
    [anon_sym___FILE__] = ACTIONS(4351),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4351),
    [anon_sym___FUNCTION__] = ACTIONS(4351),
    [anon_sym___LINE__] = ACTIONS(4351),
    [anon_sym___MODULE__] = ACTIONS(4351),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4351),
    [anon_sym___TIME__] = ACTIONS(4351),
    [anon_sym___TIMESTAMP__] = ACTIONS(4351),
    [anon_sym___VENDOR__] = ACTIONS(4351),
    [anon_sym___VERSION__] = ACTIONS(4351),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4353),
    [sym_float_literal] = ACTIONS(4353),
    [sym__string] = ACTIONS(4353),
  },
  [1371] = {
    [sym_identifier] = ACTIONS(4355),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4357),
    [anon_sym_RBRACE] = ACTIONS(4357),
    [anon_sym_LBRACE] = ACTIONS(4357),
    [anon_sym_DOT] = ACTIONS(4357),
    [anon_sym_AMP] = ACTIONS(4357),
    [anon_sym_DASH] = ACTIONS(4355),
    [anon_sym_DASH_DASH] = ACTIONS(4357),
    [anon_sym_PLUS] = ACTIONS(4355),
    [anon_sym_PLUS_PLUS] = ACTIONS(4357),
    [anon_sym_BANG] = ACTIONS(4357),
    [anon_sym_LPAREN] = ACTIONS(4357),
    [anon_sym_RPAREN] = ACTIONS(4357),
    [anon_sym_LBRACK] = ACTIONS(4357),
    [anon_sym_SEMI] = ACTIONS(4357),
    [anon_sym_DOLLAR] = ACTIONS(4357),
    [anon_sym_STAR] = ACTIONS(4357),
    [anon_sym_TILDE] = ACTIONS(4357),
    [anon_sym_AT] = ACTIONS(4357),
    [sym_bool] = ACTIONS(4355),
    [sym_byte] = ACTIONS(4355),
    [sym_ubyte] = ACTIONS(4355),
    [sym_char] = ACTIONS(4355),
    [sym_short] = ACTIONS(4355),
    [sym_ushort] = ACTIONS(4355),
    [sym_int] = ACTIONS(4355),
    [sym_uint] = ACTIONS(4355),
    [sym_long] = ACTIONS(4355),
    [sym_ulong] = ACTIONS(4355),
    [sym_cent] = ACTIONS(4355),
    [sym_ucent] = ACTIONS(4355),
    [sym_wchar] = ACTIONS(4355),
    [sym_dchar] = ACTIONS(4355),
    [sym_float] = ACTIONS(4355),
    [sym_double] = ACTIONS(4355),
    [sym_real] = ACTIONS(4355),
    [sym_ifloat] = ACTIONS(4355),
    [sym_idouble] = ACTIONS(4355),
    [sym_ireal] = ACTIONS(4355),
    [sym_cfloat] = ACTIONS(4355),
    [sym_cdouble] = ACTIONS(4355),
    [sym_creal] = ACTIONS(4355),
    [sym_size_t] = ACTIONS(4355),
    [sym_ptrdiff_t] = ACTIONS(4355),
    [sym_string] = ACTIONS(4355),
    [sym_cstring] = ACTIONS(4355),
    [sym_dstring] = ACTIONS(4355),
    [sym_wstring] = ACTIONS(4355),
    [sym_noreturn] = ACTIONS(4355),
    [sym_true] = ACTIONS(4355),
    [sym_false] = ACTIONS(4355),
    [sym_null] = ACTIONS(4355),
    [sym_super] = ACTIONS(4355),
    [sym_this] = ACTIONS(4355),
    [sym_abstract] = ACTIONS(4355),
    [sym_alias] = ACTIONS(4355),
    [sym_align] = ACTIONS(4355),
    [sym_asm] = ACTIONS(4355),
    [sym_assert] = ACTIONS(4355),
    [sym_auto] = ACTIONS(4355),
    [sym_break] = ACTIONS(4355),
    [sym_case] = ACTIONS(4355),
    [sym_cast] = ACTIONS(4355),
    [sym_catch] = ACTIONS(4355),
    [sym_class] = ACTIONS(4355),
    [sym_const] = ACTIONS(4355),
    [sym_continue] = ACTIONS(4355),
    [sym_debug] = ACTIONS(4355),
    [sym_default] = ACTIONS(4355),
    [sym_delegate] = ACTIONS(4355),
    [sym_delete] = ACTIONS(4355),
    [sym_deprecated] = ACTIONS(4355),
    [sym_do] = ACTIONS(4355),
    [sym_else] = ACTIONS(4355),
    [sym_enum] = ACTIONS(4355),
    [sym_export] = ACTIONS(4355),
    [sym_extern] = ACTIONS(4355),
    [sym_final] = ACTIONS(4355),
    [sym_finally] = ACTIONS(4355),
    [sym_for] = ACTIONS(4355),
    [sym_foreach] = ACTIONS(4355),
    [sym_foreach_reverse] = ACTIONS(4355),
    [sym_function] = ACTIONS(4355),
    [sym_goto] = ACTIONS(4355),
    [sym_if] = ACTIONS(4355),
    [sym_immutable] = ACTIONS(4355),
    [sym_import] = ACTIONS(4355),
    [sym_in] = ACTIONS(4355),
    [sym_inout] = ACTIONS(4355),
    [sym_interface] = ACTIONS(4355),
    [sym_invariant] = ACTIONS(4355),
    [sym_is] = ACTIONS(4355),
    [sym_mixin] = ACTIONS(4355),
    [sym_new] = ACTIONS(4355),
    [sym_nothrow] = ACTIONS(4355),
    [sym_out] = ACTIONS(4355),
    [sym_override] = ACTIONS(4355),
    [sym_package] = ACTIONS(4355),
    [sym_pragma] = ACTIONS(4355),
    [sym_private] = ACTIONS(4355),
    [sym_protected] = ACTIONS(4355),
    [sym_public] = ACTIONS(4355),
    [sym_pure] = ACTIONS(4355),
    [sym_ref] = ACTIONS(4355),
    [sym_return] = ACTIONS(4355),
    [sym_scope] = ACTIONS(4355),
    [sym_shared] = ACTIONS(4355),
    [sym_static] = ACTIONS(4355),
    [sym_struct] = ACTIONS(4355),
    [sym_switch] = ACTIONS(4355),
    [sym_synchronized] = ACTIONS(4355),
    [sym_template] = ACTIONS(4355),
    [sym_throw] = ACTIONS(4355),
    [sym_try] = ACTIONS(4355),
    [sym_typeid] = ACTIONS(4355),
    [sym_typeof] = ACTIONS(4355),
    [sym_union] = ACTIONS(4355),
    [sym_unittest] = ACTIONS(4355),
    [sym_version] = ACTIONS(4355),
    [sym_while] = ACTIONS(4355),
    [sym_with] = ACTIONS(4355),
    [sym_gshared] = ACTIONS(4355),
    [sym_traits] = ACTIONS(4355),
    [sym_vector] = ACTIONS(4355),
    [sym_void] = ACTIONS(4355),
    [anon_sym_BQUOTE] = ACTIONS(4357),
    [anon_sym_r_DQUOTE] = ACTIONS(4357),
    [anon_sym_x_DQUOTE] = ACTIONS(4357),
    [anon_sym_DQUOTE] = ACTIONS(4357),
    [anon_sym_i_BQUOTE] = ACTIONS(4357),
    [anon_sym_i_DQUOTE] = ACTIONS(4357),
    [anon_sym_iq_LBRACE] = ACTIONS(4357),
    [aux_sym_char_literal_token1] = ACTIONS(4357),
    [anon_sym_SQUOTE] = ACTIONS(4355),
    [anon_sym___DATE__] = ACTIONS(4355),
    [anon_sym___FILE__] = ACTIONS(4355),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4355),
    [anon_sym___FUNCTION__] = ACTIONS(4355),
    [anon_sym___LINE__] = ACTIONS(4355),
    [anon_sym___MODULE__] = ACTIONS(4355),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4355),
    [anon_sym___TIME__] = ACTIONS(4355),
    [anon_sym___TIMESTAMP__] = ACTIONS(4355),
    [anon_sym___VENDOR__] = ACTIONS(4355),
    [anon_sym___VERSION__] = ACTIONS(4355),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4357),
    [sym_float_literal] = ACTIONS(4357),
    [sym__string] = ACTIONS(4357),
  },
  [1372] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_RBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [anon_sym_AT] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_abstract] = ACTIONS(4359),
    [sym_alias] = ACTIONS(4359),
    [sym_align] = ACTIONS(4359),
    [sym_asm] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_break] = ACTIONS(4359),
    [sym_case] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_catch] = ACTIONS(4359),
    [sym_class] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_continue] = ACTIONS(4359),
    [sym_debug] = ACTIONS(4359),
    [sym_default] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_deprecated] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(4363),
    [sym_enum] = ACTIONS(4359),
    [sym_export] = ACTIONS(4359),
    [sym_extern] = ACTIONS(4359),
    [sym_final] = ACTIONS(4359),
    [sym_finally] = ACTIONS(4359),
    [sym_for] = ACTIONS(4359),
    [sym_foreach] = ACTIONS(4359),
    [sym_foreach_reverse] = ACTIONS(4359),
    [sym_function] = ACTIONS(4359),
    [sym_goto] = ACTIONS(4359),
    [sym_if] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_interface] = ACTIONS(4359),
    [sym_invariant] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_nothrow] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_override] = ACTIONS(4359),
    [sym_package] = ACTIONS(4359),
    [sym_pragma] = ACTIONS(4359),
    [sym_private] = ACTIONS(4359),
    [sym_protected] = ACTIONS(4359),
    [sym_public] = ACTIONS(4359),
    [sym_pure] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_return] = ACTIONS(4359),
    [sym_scope] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_static] = ACTIONS(4359),
    [sym_struct] = ACTIONS(4359),
    [sym_switch] = ACTIONS(4359),
    [sym_synchronized] = ACTIONS(4359),
    [sym_template] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_try] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_union] = ACTIONS(4359),
    [sym_unittest] = ACTIONS(4359),
    [sym_version] = ACTIONS(4359),
    [sym_while] = ACTIONS(4359),
    [sym_with] = ACTIONS(4359),
    [sym_gshared] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [1373] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_RBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [anon_sym_AT] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_abstract] = ACTIONS(4365),
    [sym_alias] = ACTIONS(4365),
    [sym_align] = ACTIONS(4365),
    [sym_asm] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_break] = ACTIONS(4365),
    [sym_case] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_catch] = ACTIONS(4365),
    [sym_class] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_continue] = ACTIONS(4365),
    [sym_debug] = ACTIONS(4365),
    [sym_default] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_deprecated] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(4371),
    [sym_enum] = ACTIONS(4365),
    [sym_export] = ACTIONS(4365),
    [sym_extern] = ACTIONS(4365),
    [sym_final] = ACTIONS(4365),
    [sym_finally] = ACTIONS(4365),
    [sym_for] = ACTIONS(4365),
    [sym_foreach] = ACTIONS(4365),
    [sym_foreach_reverse] = ACTIONS(4365),
    [sym_function] = ACTIONS(4365),
    [sym_goto] = ACTIONS(4365),
    [sym_if] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_interface] = ACTIONS(4365),
    [sym_invariant] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_nothrow] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_override] = ACTIONS(4365),
    [sym_package] = ACTIONS(4365),
    [sym_pragma] = ACTIONS(4365),
    [sym_private] = ACTIONS(4365),
    [sym_protected] = ACTIONS(4365),
    [sym_public] = ACTIONS(4365),
    [sym_pure] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_return] = ACTIONS(4365),
    [sym_scope] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_static] = ACTIONS(4365),
    [sym_struct] = ACTIONS(4365),
    [sym_switch] = ACTIONS(4365),
    [sym_synchronized] = ACTIONS(4365),
    [sym_template] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_try] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_union] = ACTIONS(4365),
    [sym_unittest] = ACTIONS(4365),
    [sym_version] = ACTIONS(4365),
    [sym_while] = ACTIONS(4365),
    [sym_with] = ACTIONS(4365),
    [sym_gshared] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [1374] = {
    [sym_identifier] = ACTIONS(4374),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4376),
    [anon_sym_RBRACE] = ACTIONS(4376),
    [anon_sym_LBRACE] = ACTIONS(4376),
    [anon_sym_DOT] = ACTIONS(4376),
    [anon_sym_AMP] = ACTIONS(4376),
    [anon_sym_DASH] = ACTIONS(4374),
    [anon_sym_DASH_DASH] = ACTIONS(4376),
    [anon_sym_PLUS] = ACTIONS(4374),
    [anon_sym_PLUS_PLUS] = ACTIONS(4376),
    [anon_sym_BANG] = ACTIONS(4376),
    [anon_sym_LPAREN] = ACTIONS(4376),
    [anon_sym_RPAREN] = ACTIONS(4376),
    [anon_sym_LBRACK] = ACTIONS(4376),
    [anon_sym_SEMI] = ACTIONS(4376),
    [anon_sym_DOLLAR] = ACTIONS(4376),
    [anon_sym_STAR] = ACTIONS(4376),
    [anon_sym_TILDE] = ACTIONS(4376),
    [anon_sym_AT] = ACTIONS(4376),
    [sym_bool] = ACTIONS(4374),
    [sym_byte] = ACTIONS(4374),
    [sym_ubyte] = ACTIONS(4374),
    [sym_char] = ACTIONS(4374),
    [sym_short] = ACTIONS(4374),
    [sym_ushort] = ACTIONS(4374),
    [sym_int] = ACTIONS(4374),
    [sym_uint] = ACTIONS(4374),
    [sym_long] = ACTIONS(4374),
    [sym_ulong] = ACTIONS(4374),
    [sym_cent] = ACTIONS(4374),
    [sym_ucent] = ACTIONS(4374),
    [sym_wchar] = ACTIONS(4374),
    [sym_dchar] = ACTIONS(4374),
    [sym_float] = ACTIONS(4374),
    [sym_double] = ACTIONS(4374),
    [sym_real] = ACTIONS(4374),
    [sym_ifloat] = ACTIONS(4374),
    [sym_idouble] = ACTIONS(4374),
    [sym_ireal] = ACTIONS(4374),
    [sym_cfloat] = ACTIONS(4374),
    [sym_cdouble] = ACTIONS(4374),
    [sym_creal] = ACTIONS(4374),
    [sym_size_t] = ACTIONS(4374),
    [sym_ptrdiff_t] = ACTIONS(4374),
    [sym_string] = ACTIONS(4374),
    [sym_cstring] = ACTIONS(4374),
    [sym_dstring] = ACTIONS(4374),
    [sym_wstring] = ACTIONS(4374),
    [sym_noreturn] = ACTIONS(4374),
    [sym_true] = ACTIONS(4374),
    [sym_false] = ACTIONS(4374),
    [sym_null] = ACTIONS(4374),
    [sym_super] = ACTIONS(4374),
    [sym_this] = ACTIONS(4374),
    [sym_abstract] = ACTIONS(4374),
    [sym_alias] = ACTIONS(4374),
    [sym_align] = ACTIONS(4374),
    [sym_asm] = ACTIONS(4374),
    [sym_assert] = ACTIONS(4374),
    [sym_auto] = ACTIONS(4374),
    [sym_break] = ACTIONS(4374),
    [sym_case] = ACTIONS(4374),
    [sym_cast] = ACTIONS(4374),
    [sym_catch] = ACTIONS(4374),
    [sym_class] = ACTIONS(4374),
    [sym_const] = ACTIONS(4374),
    [sym_continue] = ACTIONS(4374),
    [sym_debug] = ACTIONS(4374),
    [sym_default] = ACTIONS(4374),
    [sym_delegate] = ACTIONS(4374),
    [sym_delete] = ACTIONS(4374),
    [sym_deprecated] = ACTIONS(4374),
    [sym_do] = ACTIONS(4374),
    [sym_else] = ACTIONS(4374),
    [sym_enum] = ACTIONS(4374),
    [sym_export] = ACTIONS(4374),
    [sym_extern] = ACTIONS(4374),
    [sym_final] = ACTIONS(4374),
    [sym_finally] = ACTIONS(4374),
    [sym_for] = ACTIONS(4374),
    [sym_foreach] = ACTIONS(4374),
    [sym_foreach_reverse] = ACTIONS(4374),
    [sym_function] = ACTIONS(4374),
    [sym_goto] = ACTIONS(4374),
    [sym_if] = ACTIONS(4374),
    [sym_immutable] = ACTIONS(4374),
    [sym_import] = ACTIONS(4374),
    [sym_in] = ACTIONS(4374),
    [sym_inout] = ACTIONS(4374),
    [sym_interface] = ACTIONS(4374),
    [sym_invariant] = ACTIONS(4374),
    [sym_is] = ACTIONS(4374),
    [sym_mixin] = ACTIONS(4374),
    [sym_new] = ACTIONS(4374),
    [sym_nothrow] = ACTIONS(4374),
    [sym_out] = ACTIONS(4374),
    [sym_override] = ACTIONS(4374),
    [sym_package] = ACTIONS(4374),
    [sym_pragma] = ACTIONS(4374),
    [sym_private] = ACTIONS(4374),
    [sym_protected] = ACTIONS(4374),
    [sym_public] = ACTIONS(4374),
    [sym_pure] = ACTIONS(4374),
    [sym_ref] = ACTIONS(4374),
    [sym_return] = ACTIONS(4374),
    [sym_scope] = ACTIONS(4374),
    [sym_shared] = ACTIONS(4374),
    [sym_static] = ACTIONS(4374),
    [sym_struct] = ACTIONS(4374),
    [sym_switch] = ACTIONS(4374),
    [sym_synchronized] = ACTIONS(4374),
    [sym_template] = ACTIONS(4374),
    [sym_throw] = ACTIONS(4374),
    [sym_try] = ACTIONS(4374),
    [sym_typeid] = ACTIONS(4374),
    [sym_typeof] = ACTIONS(4374),
    [sym_union] = ACTIONS(4374),
    [sym_unittest] = ACTIONS(4374),
    [sym_version] = ACTIONS(4374),
    [sym_while] = ACTIONS(4374),
    [sym_with] = ACTIONS(4374),
    [sym_gshared] = ACTIONS(4374),
    [sym_traits] = ACTIONS(4374),
    [sym_vector] = ACTIONS(4374),
    [sym_void] = ACTIONS(4374),
    [anon_sym_BQUOTE] = ACTIONS(4376),
    [anon_sym_r_DQUOTE] = ACTIONS(4376),
    [anon_sym_x_DQUOTE] = ACTIONS(4376),
    [anon_sym_DQUOTE] = ACTIONS(4376),
    [anon_sym_i_BQUOTE] = ACTIONS(4376),
    [anon_sym_i_DQUOTE] = ACTIONS(4376),
    [anon_sym_iq_LBRACE] = ACTIONS(4376),
    [aux_sym_char_literal_token1] = ACTIONS(4376),
    [anon_sym_SQUOTE] = ACTIONS(4374),
    [anon_sym___DATE__] = ACTIONS(4374),
    [anon_sym___FILE__] = ACTIONS(4374),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4374),
    [anon_sym___FUNCTION__] = ACTIONS(4374),
    [anon_sym___LINE__] = ACTIONS(4374),
    [anon_sym___MODULE__] = ACTIONS(4374),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4374),
    [anon_sym___TIME__] = ACTIONS(4374),
    [anon_sym___TIMESTAMP__] = ACTIONS(4374),
    [anon_sym___VENDOR__] = ACTIONS(4374),
    [anon_sym___VERSION__] = ACTIONS(4374),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4376),
    [sym_float_literal] = ACTIONS(4376),
    [sym__string] = ACTIONS(4376),
  },
  [1375] = {
    [sym_identifier] = ACTIONS(4378),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4380),
    [anon_sym_RBRACE] = ACTIONS(4380),
    [anon_sym_LBRACE] = ACTIONS(4380),
    [anon_sym_DOT] = ACTIONS(4380),
    [anon_sym_AMP] = ACTIONS(4380),
    [anon_sym_DASH] = ACTIONS(4378),
    [anon_sym_DASH_DASH] = ACTIONS(4380),
    [anon_sym_PLUS] = ACTIONS(4378),
    [anon_sym_PLUS_PLUS] = ACTIONS(4380),
    [anon_sym_BANG] = ACTIONS(4380),
    [anon_sym_LPAREN] = ACTIONS(4380),
    [anon_sym_RPAREN] = ACTIONS(4380),
    [anon_sym_LBRACK] = ACTIONS(4380),
    [anon_sym_SEMI] = ACTIONS(4380),
    [anon_sym_DOLLAR] = ACTIONS(4380),
    [anon_sym_STAR] = ACTIONS(4380),
    [anon_sym_TILDE] = ACTIONS(4380),
    [anon_sym_AT] = ACTIONS(4380),
    [sym_bool] = ACTIONS(4378),
    [sym_byte] = ACTIONS(4378),
    [sym_ubyte] = ACTIONS(4378),
    [sym_char] = ACTIONS(4378),
    [sym_short] = ACTIONS(4378),
    [sym_ushort] = ACTIONS(4378),
    [sym_int] = ACTIONS(4378),
    [sym_uint] = ACTIONS(4378),
    [sym_long] = ACTIONS(4378),
    [sym_ulong] = ACTIONS(4378),
    [sym_cent] = ACTIONS(4378),
    [sym_ucent] = ACTIONS(4378),
    [sym_wchar] = ACTIONS(4378),
    [sym_dchar] = ACTIONS(4378),
    [sym_float] = ACTIONS(4378),
    [sym_double] = ACTIONS(4378),
    [sym_real] = ACTIONS(4378),
    [sym_ifloat] = ACTIONS(4378),
    [sym_idouble] = ACTIONS(4378),
    [sym_ireal] = ACTIONS(4378),
    [sym_cfloat] = ACTIONS(4378),
    [sym_cdouble] = ACTIONS(4378),
    [sym_creal] = ACTIONS(4378),
    [sym_size_t] = ACTIONS(4378),
    [sym_ptrdiff_t] = ACTIONS(4378),
    [sym_string] = ACTIONS(4378),
    [sym_cstring] = ACTIONS(4378),
    [sym_dstring] = ACTIONS(4378),
    [sym_wstring] = ACTIONS(4378),
    [sym_noreturn] = ACTIONS(4378),
    [sym_true] = ACTIONS(4378),
    [sym_false] = ACTIONS(4378),
    [sym_null] = ACTIONS(4378),
    [sym_super] = ACTIONS(4378),
    [sym_this] = ACTIONS(4378),
    [sym_abstract] = ACTIONS(4378),
    [sym_alias] = ACTIONS(4378),
    [sym_align] = ACTIONS(4378),
    [sym_asm] = ACTIONS(4378),
    [sym_assert] = ACTIONS(4378),
    [sym_auto] = ACTIONS(4378),
    [sym_break] = ACTIONS(4378),
    [sym_case] = ACTIONS(4378),
    [sym_cast] = ACTIONS(4378),
    [sym_catch] = ACTIONS(4378),
    [sym_class] = ACTIONS(4378),
    [sym_const] = ACTIONS(4378),
    [sym_continue] = ACTIONS(4378),
    [sym_debug] = ACTIONS(4378),
    [sym_default] = ACTIONS(4378),
    [sym_delegate] = ACTIONS(4378),
    [sym_delete] = ACTIONS(4378),
    [sym_deprecated] = ACTIONS(4378),
    [sym_do] = ACTIONS(4378),
    [sym_else] = ACTIONS(4378),
    [sym_enum] = ACTIONS(4378),
    [sym_export] = ACTIONS(4378),
    [sym_extern] = ACTIONS(4378),
    [sym_final] = ACTIONS(4378),
    [sym_finally] = ACTIONS(4378),
    [sym_for] = ACTIONS(4378),
    [sym_foreach] = ACTIONS(4378),
    [sym_foreach_reverse] = ACTIONS(4378),
    [sym_function] = ACTIONS(4378),
    [sym_goto] = ACTIONS(4378),
    [sym_if] = ACTIONS(4378),
    [sym_immutable] = ACTIONS(4378),
    [sym_import] = ACTIONS(4378),
    [sym_in] = ACTIONS(4378),
    [sym_inout] = ACTIONS(4378),
    [sym_interface] = ACTIONS(4378),
    [sym_invariant] = ACTIONS(4378),
    [sym_is] = ACTIONS(4378),
    [sym_mixin] = ACTIONS(4378),
    [sym_new] = ACTIONS(4378),
    [sym_nothrow] = ACTIONS(4378),
    [sym_out] = ACTIONS(4378),
    [sym_override] = ACTIONS(4378),
    [sym_package] = ACTIONS(4378),
    [sym_pragma] = ACTIONS(4378),
    [sym_private] = ACTIONS(4378),
    [sym_protected] = ACTIONS(4378),
    [sym_public] = ACTIONS(4378),
    [sym_pure] = ACTIONS(4378),
    [sym_ref] = ACTIONS(4378),
    [sym_return] = ACTIONS(4378),
    [sym_scope] = ACTIONS(4378),
    [sym_shared] = ACTIONS(4378),
    [sym_static] = ACTIONS(4378),
    [sym_struct] = ACTIONS(4378),
    [sym_switch] = ACTIONS(4378),
    [sym_synchronized] = ACTIONS(4378),
    [sym_template] = ACTIONS(4378),
    [sym_throw] = ACTIONS(4378),
    [sym_try] = ACTIONS(4378),
    [sym_typeid] = ACTIONS(4378),
    [sym_typeof] = ACTIONS(4378),
    [sym_union] = ACTIONS(4378),
    [sym_unittest] = ACTIONS(4378),
    [sym_version] = ACTIONS(4378),
    [sym_while] = ACTIONS(4378),
    [sym_with] = ACTIONS(4378),
    [sym_gshared] = ACTIONS(4378),
    [sym_traits] = ACTIONS(4378),
    [sym_vector] = ACTIONS(4378),
    [sym_void] = ACTIONS(4378),
    [anon_sym_BQUOTE] = ACTIONS(4380),
    [anon_sym_r_DQUOTE] = ACTIONS(4380),
    [anon_sym_x_DQUOTE] = ACTIONS(4380),
    [anon_sym_DQUOTE] = ACTIONS(4380),
    [anon_sym_i_BQUOTE] = ACTIONS(4380),
    [anon_sym_i_DQUOTE] = ACTIONS(4380),
    [anon_sym_iq_LBRACE] = ACTIONS(4380),
    [aux_sym_char_literal_token1] = ACTIONS(4380),
    [anon_sym_SQUOTE] = ACTIONS(4378),
    [anon_sym___DATE__] = ACTIONS(4378),
    [anon_sym___FILE__] = ACTIONS(4378),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4378),
    [anon_sym___FUNCTION__] = ACTIONS(4378),
    [anon_sym___LINE__] = ACTIONS(4378),
    [anon_sym___MODULE__] = ACTIONS(4378),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4378),
    [anon_sym___TIME__] = ACTIONS(4378),
    [anon_sym___TIMESTAMP__] = ACTIONS(4378),
    [anon_sym___VENDOR__] = ACTIONS(4378),
    [anon_sym___VERSION__] = ACTIONS(4378),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4380),
    [sym_float_literal] = ACTIONS(4380),
    [sym__string] = ACTIONS(4380),
  },
  [1376] = {
    [sym_identifier] = ACTIONS(4382),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4384),
    [anon_sym_RBRACE] = ACTIONS(4384),
    [anon_sym_LBRACE] = ACTIONS(4384),
    [anon_sym_DOT] = ACTIONS(4384),
    [anon_sym_AMP] = ACTIONS(4384),
    [anon_sym_DASH] = ACTIONS(4382),
    [anon_sym_DASH_DASH] = ACTIONS(4384),
    [anon_sym_PLUS] = ACTIONS(4382),
    [anon_sym_PLUS_PLUS] = ACTIONS(4384),
    [anon_sym_BANG] = ACTIONS(4384),
    [anon_sym_LPAREN] = ACTIONS(4384),
    [anon_sym_RPAREN] = ACTIONS(4384),
    [anon_sym_LBRACK] = ACTIONS(4384),
    [anon_sym_SEMI] = ACTIONS(4384),
    [anon_sym_DOLLAR] = ACTIONS(4384),
    [anon_sym_STAR] = ACTIONS(4384),
    [anon_sym_TILDE] = ACTIONS(4384),
    [anon_sym_AT] = ACTIONS(4384),
    [sym_bool] = ACTIONS(4382),
    [sym_byte] = ACTIONS(4382),
    [sym_ubyte] = ACTIONS(4382),
    [sym_char] = ACTIONS(4382),
    [sym_short] = ACTIONS(4382),
    [sym_ushort] = ACTIONS(4382),
    [sym_int] = ACTIONS(4382),
    [sym_uint] = ACTIONS(4382),
    [sym_long] = ACTIONS(4382),
    [sym_ulong] = ACTIONS(4382),
    [sym_cent] = ACTIONS(4382),
    [sym_ucent] = ACTIONS(4382),
    [sym_wchar] = ACTIONS(4382),
    [sym_dchar] = ACTIONS(4382),
    [sym_float] = ACTIONS(4382),
    [sym_double] = ACTIONS(4382),
    [sym_real] = ACTIONS(4382),
    [sym_ifloat] = ACTIONS(4382),
    [sym_idouble] = ACTIONS(4382),
    [sym_ireal] = ACTIONS(4382),
    [sym_cfloat] = ACTIONS(4382),
    [sym_cdouble] = ACTIONS(4382),
    [sym_creal] = ACTIONS(4382),
    [sym_size_t] = ACTIONS(4382),
    [sym_ptrdiff_t] = ACTIONS(4382),
    [sym_string] = ACTIONS(4382),
    [sym_cstring] = ACTIONS(4382),
    [sym_dstring] = ACTIONS(4382),
    [sym_wstring] = ACTIONS(4382),
    [sym_noreturn] = ACTIONS(4382),
    [sym_true] = ACTIONS(4382),
    [sym_false] = ACTIONS(4382),
    [sym_null] = ACTIONS(4382),
    [sym_super] = ACTIONS(4382),
    [sym_this] = ACTIONS(4382),
    [sym_abstract] = ACTIONS(4382),
    [sym_alias] = ACTIONS(4382),
    [sym_align] = ACTIONS(4382),
    [sym_asm] = ACTIONS(4382),
    [sym_assert] = ACTIONS(4382),
    [sym_auto] = ACTIONS(4382),
    [sym_break] = ACTIONS(4382),
    [sym_case] = ACTIONS(4382),
    [sym_cast] = ACTIONS(4382),
    [sym_catch] = ACTIONS(4382),
    [sym_class] = ACTIONS(4382),
    [sym_const] = ACTIONS(4382),
    [sym_continue] = ACTIONS(4382),
    [sym_debug] = ACTIONS(4382),
    [sym_default] = ACTIONS(4382),
    [sym_delegate] = ACTIONS(4382),
    [sym_delete] = ACTIONS(4382),
    [sym_deprecated] = ACTIONS(4382),
    [sym_do] = ACTIONS(4382),
    [sym_else] = ACTIONS(4382),
    [sym_enum] = ACTIONS(4382),
    [sym_export] = ACTIONS(4382),
    [sym_extern] = ACTIONS(4382),
    [sym_final] = ACTIONS(4382),
    [sym_finally] = ACTIONS(4382),
    [sym_for] = ACTIONS(4382),
    [sym_foreach] = ACTIONS(4382),
    [sym_foreach_reverse] = ACTIONS(4382),
    [sym_function] = ACTIONS(4382),
    [sym_goto] = ACTIONS(4382),
    [sym_if] = ACTIONS(4382),
    [sym_immutable] = ACTIONS(4382),
    [sym_import] = ACTIONS(4382),
    [sym_in] = ACTIONS(4382),
    [sym_inout] = ACTIONS(4382),
    [sym_interface] = ACTIONS(4382),
    [sym_invariant] = ACTIONS(4382),
    [sym_is] = ACTIONS(4382),
    [sym_mixin] = ACTIONS(4382),
    [sym_new] = ACTIONS(4382),
    [sym_nothrow] = ACTIONS(4382),
    [sym_out] = ACTIONS(4382),
    [sym_override] = ACTIONS(4382),
    [sym_package] = ACTIONS(4382),
    [sym_pragma] = ACTIONS(4382),
    [sym_private] = ACTIONS(4382),
    [sym_protected] = ACTIONS(4382),
    [sym_public] = ACTIONS(4382),
    [sym_pure] = ACTIONS(4382),
    [sym_ref] = ACTIONS(4382),
    [sym_return] = ACTIONS(4382),
    [sym_scope] = ACTIONS(4382),
    [sym_shared] = ACTIONS(4382),
    [sym_static] = ACTIONS(4382),
    [sym_struct] = ACTIONS(4382),
    [sym_switch] = ACTIONS(4382),
    [sym_synchronized] = ACTIONS(4382),
    [sym_template] = ACTIONS(4382),
    [sym_throw] = ACTIONS(4382),
    [sym_try] = ACTIONS(4382),
    [sym_typeid] = ACTIONS(4382),
    [sym_typeof] = ACTIONS(4382),
    [sym_union] = ACTIONS(4382),
    [sym_unittest] = ACTIONS(4382),
    [sym_version] = ACTIONS(4382),
    [sym_while] = ACTIONS(4382),
    [sym_with] = ACTIONS(4382),
    [sym_gshared] = ACTIONS(4382),
    [sym_traits] = ACTIONS(4382),
    [sym_vector] = ACTIONS(4382),
    [sym_void] = ACTIONS(4382),
    [anon_sym_BQUOTE] = ACTIONS(4384),
    [anon_sym_r_DQUOTE] = ACTIONS(4384),
    [anon_sym_x_DQUOTE] = ACTIONS(4384),
    [anon_sym_DQUOTE] = ACTIONS(4384),
    [anon_sym_i_BQUOTE] = ACTIONS(4384),
    [anon_sym_i_DQUOTE] = ACTIONS(4384),
    [anon_sym_iq_LBRACE] = ACTIONS(4384),
    [aux_sym_char_literal_token1] = ACTIONS(4384),
    [anon_sym_SQUOTE] = ACTIONS(4382),
    [anon_sym___DATE__] = ACTIONS(4382),
    [anon_sym___FILE__] = ACTIONS(4382),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4382),
    [anon_sym___FUNCTION__] = ACTIONS(4382),
    [anon_sym___LINE__] = ACTIONS(4382),
    [anon_sym___MODULE__] = ACTIONS(4382),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4382),
    [anon_sym___TIME__] = ACTIONS(4382),
    [anon_sym___TIMESTAMP__] = ACTIONS(4382),
    [anon_sym___VENDOR__] = ACTIONS(4382),
    [anon_sym___VERSION__] = ACTIONS(4382),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4384),
    [sym_float_literal] = ACTIONS(4384),
    [sym__string] = ACTIONS(4384),
  },
  [1377] = {
    [sym_identifier] = ACTIONS(4386),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4388),
    [anon_sym_RBRACE] = ACTIONS(4388),
    [anon_sym_LBRACE] = ACTIONS(4388),
    [anon_sym_DOT] = ACTIONS(4388),
    [anon_sym_AMP] = ACTIONS(4388),
    [anon_sym_DASH] = ACTIONS(4386),
    [anon_sym_DASH_DASH] = ACTIONS(4388),
    [anon_sym_PLUS] = ACTIONS(4386),
    [anon_sym_PLUS_PLUS] = ACTIONS(4388),
    [anon_sym_BANG] = ACTIONS(4388),
    [anon_sym_LPAREN] = ACTIONS(4388),
    [anon_sym_RPAREN] = ACTIONS(4388),
    [anon_sym_LBRACK] = ACTIONS(4388),
    [anon_sym_SEMI] = ACTIONS(4388),
    [anon_sym_DOLLAR] = ACTIONS(4388),
    [anon_sym_STAR] = ACTIONS(4388),
    [anon_sym_TILDE] = ACTIONS(4388),
    [anon_sym_AT] = ACTIONS(4388),
    [sym_bool] = ACTIONS(4386),
    [sym_byte] = ACTIONS(4386),
    [sym_ubyte] = ACTIONS(4386),
    [sym_char] = ACTIONS(4386),
    [sym_short] = ACTIONS(4386),
    [sym_ushort] = ACTIONS(4386),
    [sym_int] = ACTIONS(4386),
    [sym_uint] = ACTIONS(4386),
    [sym_long] = ACTIONS(4386),
    [sym_ulong] = ACTIONS(4386),
    [sym_cent] = ACTIONS(4386),
    [sym_ucent] = ACTIONS(4386),
    [sym_wchar] = ACTIONS(4386),
    [sym_dchar] = ACTIONS(4386),
    [sym_float] = ACTIONS(4386),
    [sym_double] = ACTIONS(4386),
    [sym_real] = ACTIONS(4386),
    [sym_ifloat] = ACTIONS(4386),
    [sym_idouble] = ACTIONS(4386),
    [sym_ireal] = ACTIONS(4386),
    [sym_cfloat] = ACTIONS(4386),
    [sym_cdouble] = ACTIONS(4386),
    [sym_creal] = ACTIONS(4386),
    [sym_size_t] = ACTIONS(4386),
    [sym_ptrdiff_t] = ACTIONS(4386),
    [sym_string] = ACTIONS(4386),
    [sym_cstring] = ACTIONS(4386),
    [sym_dstring] = ACTIONS(4386),
    [sym_wstring] = ACTIONS(4386),
    [sym_noreturn] = ACTIONS(4386),
    [sym_true] = ACTIONS(4386),
    [sym_false] = ACTIONS(4386),
    [sym_null] = ACTIONS(4386),
    [sym_super] = ACTIONS(4386),
    [sym_this] = ACTIONS(4386),
    [sym_abstract] = ACTIONS(4386),
    [sym_alias] = ACTIONS(4386),
    [sym_align] = ACTIONS(4386),
    [sym_asm] = ACTIONS(4386),
    [sym_assert] = ACTIONS(4386),
    [sym_auto] = ACTIONS(4386),
    [sym_break] = ACTIONS(4386),
    [sym_case] = ACTIONS(4386),
    [sym_cast] = ACTIONS(4386),
    [sym_catch] = ACTIONS(4386),
    [sym_class] = ACTIONS(4386),
    [sym_const] = ACTIONS(4386),
    [sym_continue] = ACTIONS(4386),
    [sym_debug] = ACTIONS(4386),
    [sym_default] = ACTIONS(4386),
    [sym_delegate] = ACTIONS(4386),
    [sym_delete] = ACTIONS(4386),
    [sym_deprecated] = ACTIONS(4386),
    [sym_do] = ACTIONS(4386),
    [sym_else] = ACTIONS(4386),
    [sym_enum] = ACTIONS(4386),
    [sym_export] = ACTIONS(4386),
    [sym_extern] = ACTIONS(4386),
    [sym_final] = ACTIONS(4386),
    [sym_finally] = ACTIONS(4386),
    [sym_for] = ACTIONS(4386),
    [sym_foreach] = ACTIONS(4386),
    [sym_foreach_reverse] = ACTIONS(4386),
    [sym_function] = ACTIONS(4386),
    [sym_goto] = ACTIONS(4386),
    [sym_if] = ACTIONS(4386),
    [sym_immutable] = ACTIONS(4386),
    [sym_import] = ACTIONS(4386),
    [sym_in] = ACTIONS(4386),
    [sym_inout] = ACTIONS(4386),
    [sym_interface] = ACTIONS(4386),
    [sym_invariant] = ACTIONS(4386),
    [sym_is] = ACTIONS(4386),
    [sym_mixin] = ACTIONS(4386),
    [sym_new] = ACTIONS(4386),
    [sym_nothrow] = ACTIONS(4386),
    [sym_out] = ACTIONS(4386),
    [sym_override] = ACTIONS(4386),
    [sym_package] = ACTIONS(4386),
    [sym_pragma] = ACTIONS(4386),
    [sym_private] = ACTIONS(4386),
    [sym_protected] = ACTIONS(4386),
    [sym_public] = ACTIONS(4386),
    [sym_pure] = ACTIONS(4386),
    [sym_ref] = ACTIONS(4386),
    [sym_return] = ACTIONS(4386),
    [sym_scope] = ACTIONS(4386),
    [sym_shared] = ACTIONS(4386),
    [sym_static] = ACTIONS(4386),
    [sym_struct] = ACTIONS(4386),
    [sym_switch] = ACTIONS(4386),
    [sym_synchronized] = ACTIONS(4386),
    [sym_template] = ACTIONS(4386),
    [sym_throw] = ACTIONS(4386),
    [sym_try] = ACTIONS(4386),
    [sym_typeid] = ACTIONS(4386),
    [sym_typeof] = ACTIONS(4386),
    [sym_union] = ACTIONS(4386),
    [sym_unittest] = ACTIONS(4386),
    [sym_version] = ACTIONS(4386),
    [sym_while] = ACTIONS(4386),
    [sym_with] = ACTIONS(4386),
    [sym_gshared] = ACTIONS(4386),
    [sym_traits] = ACTIONS(4386),
    [sym_vector] = ACTIONS(4386),
    [sym_void] = ACTIONS(4386),
    [anon_sym_BQUOTE] = ACTIONS(4388),
    [anon_sym_r_DQUOTE] = ACTIONS(4388),
    [anon_sym_x_DQUOTE] = ACTIONS(4388),
    [anon_sym_DQUOTE] = ACTIONS(4388),
    [anon_sym_i_BQUOTE] = ACTIONS(4388),
    [anon_sym_i_DQUOTE] = ACTIONS(4388),
    [anon_sym_iq_LBRACE] = ACTIONS(4388),
    [aux_sym_char_literal_token1] = ACTIONS(4388),
    [anon_sym_SQUOTE] = ACTIONS(4386),
    [anon_sym___DATE__] = ACTIONS(4386),
    [anon_sym___FILE__] = ACTIONS(4386),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4386),
    [anon_sym___FUNCTION__] = ACTIONS(4386),
    [anon_sym___LINE__] = ACTIONS(4386),
    [anon_sym___MODULE__] = ACTIONS(4386),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4386),
    [anon_sym___TIME__] = ACTIONS(4386),
    [anon_sym___TIMESTAMP__] = ACTIONS(4386),
    [anon_sym___VENDOR__] = ACTIONS(4386),
    [anon_sym___VERSION__] = ACTIONS(4386),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4388),
    [sym_float_literal] = ACTIONS(4388),
    [sym__string] = ACTIONS(4388),
  },
  [1378] = {
    [sym_identifier] = ACTIONS(4390),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4394),
    [anon_sym_RBRACE] = ACTIONS(4394),
    [anon_sym_LBRACE] = ACTIONS(4394),
    [anon_sym_DOT] = ACTIONS(4394),
    [anon_sym_AMP] = ACTIONS(4394),
    [anon_sym_DASH] = ACTIONS(4390),
    [anon_sym_DASH_DASH] = ACTIONS(4394),
    [anon_sym_PLUS] = ACTIONS(4390),
    [anon_sym_PLUS_PLUS] = ACTIONS(4394),
    [anon_sym_BANG] = ACTIONS(4394),
    [anon_sym_LPAREN] = ACTIONS(4394),
    [anon_sym_RPAREN] = ACTIONS(4394),
    [anon_sym_LBRACK] = ACTIONS(4394),
    [anon_sym_SEMI] = ACTIONS(4394),
    [anon_sym_DOLLAR] = ACTIONS(4394),
    [anon_sym_STAR] = ACTIONS(4394),
    [anon_sym_TILDE] = ACTIONS(4394),
    [anon_sym_AT] = ACTIONS(4394),
    [sym_bool] = ACTIONS(4390),
    [sym_byte] = ACTIONS(4390),
    [sym_ubyte] = ACTIONS(4390),
    [sym_char] = ACTIONS(4390),
    [sym_short] = ACTIONS(4390),
    [sym_ushort] = ACTIONS(4390),
    [sym_int] = ACTIONS(4390),
    [sym_uint] = ACTIONS(4390),
    [sym_long] = ACTIONS(4390),
    [sym_ulong] = ACTIONS(4390),
    [sym_cent] = ACTIONS(4390),
    [sym_ucent] = ACTIONS(4390),
    [sym_wchar] = ACTIONS(4390),
    [sym_dchar] = ACTIONS(4390),
    [sym_float] = ACTIONS(4390),
    [sym_double] = ACTIONS(4390),
    [sym_real] = ACTIONS(4390),
    [sym_ifloat] = ACTIONS(4390),
    [sym_idouble] = ACTIONS(4390),
    [sym_ireal] = ACTIONS(4390),
    [sym_cfloat] = ACTIONS(4390),
    [sym_cdouble] = ACTIONS(4390),
    [sym_creal] = ACTIONS(4390),
    [sym_size_t] = ACTIONS(4390),
    [sym_ptrdiff_t] = ACTIONS(4390),
    [sym_string] = ACTIONS(4390),
    [sym_cstring] = ACTIONS(4390),
    [sym_dstring] = ACTIONS(4390),
    [sym_wstring] = ACTIONS(4390),
    [sym_noreturn] = ACTIONS(4390),
    [sym_true] = ACTIONS(4390),
    [sym_false] = ACTIONS(4390),
    [sym_null] = ACTIONS(4390),
    [sym_super] = ACTIONS(4390),
    [sym_this] = ACTIONS(4390),
    [sym_abstract] = ACTIONS(4390),
    [sym_alias] = ACTIONS(4390),
    [sym_align] = ACTIONS(4390),
    [sym_asm] = ACTIONS(4390),
    [sym_assert] = ACTIONS(4390),
    [sym_auto] = ACTIONS(4390),
    [sym_break] = ACTIONS(4390),
    [sym_case] = ACTIONS(4390),
    [sym_cast] = ACTIONS(4390),
    [sym_catch] = ACTIONS(4390),
    [sym_class] = ACTIONS(4390),
    [sym_const] = ACTIONS(4390),
    [sym_continue] = ACTIONS(4390),
    [sym_debug] = ACTIONS(4390),
    [sym_default] = ACTIONS(4390),
    [sym_delegate] = ACTIONS(4390),
    [sym_delete] = ACTIONS(4390),
    [sym_deprecated] = ACTIONS(4390),
    [sym_do] = ACTIONS(4390),
    [sym_else] = ACTIONS(4390),
    [sym_enum] = ACTIONS(4390),
    [sym_export] = ACTIONS(4390),
    [sym_extern] = ACTIONS(4390),
    [sym_final] = ACTIONS(4390),
    [sym_finally] = ACTIONS(4390),
    [sym_for] = ACTIONS(4390),
    [sym_foreach] = ACTIONS(4390),
    [sym_foreach_reverse] = ACTIONS(4390),
    [sym_function] = ACTIONS(4390),
    [sym_goto] = ACTIONS(4390),
    [sym_if] = ACTIONS(4390),
    [sym_immutable] = ACTIONS(4390),
    [sym_import] = ACTIONS(4390),
    [sym_in] = ACTIONS(4390),
    [sym_inout] = ACTIONS(4390),
    [sym_interface] = ACTIONS(4390),
    [sym_invariant] = ACTIONS(4390),
    [sym_is] = ACTIONS(4390),
    [sym_mixin] = ACTIONS(4390),
    [sym_new] = ACTIONS(4390),
    [sym_nothrow] = ACTIONS(4390),
    [sym_out] = ACTIONS(4390),
    [sym_override] = ACTIONS(4390),
    [sym_package] = ACTIONS(4390),
    [sym_pragma] = ACTIONS(4390),
    [sym_private] = ACTIONS(4390),
    [sym_protected] = ACTIONS(4390),
    [sym_public] = ACTIONS(4390),
    [sym_pure] = ACTIONS(4390),
    [sym_ref] = ACTIONS(4390),
    [sym_return] = ACTIONS(4390),
    [sym_scope] = ACTIONS(4390),
    [sym_shared] = ACTIONS(4390),
    [sym_static] = ACTIONS(4390),
    [sym_struct] = ACTIONS(4390),
    [sym_switch] = ACTIONS(4390),
    [sym_synchronized] = ACTIONS(4390),
    [sym_template] = ACTIONS(4390),
    [sym_throw] = ACTIONS(4390),
    [sym_try] = ACTIONS(4390),
    [sym_typeid] = ACTIONS(4390),
    [sym_typeof] = ACTIONS(4390),
    [sym_union] = ACTIONS(4390),
    [sym_unittest] = ACTIONS(4390),
    [sym_version] = ACTIONS(4390),
    [sym_while] = ACTIONS(4390),
    [sym_with] = ACTIONS(4390),
    [sym_gshared] = ACTIONS(4390),
    [sym_traits] = ACTIONS(4390),
    [sym_vector] = ACTIONS(4390),
    [sym_void] = ACTIONS(4390),
    [anon_sym_BQUOTE] = ACTIONS(4394),
    [anon_sym_r_DQUOTE] = ACTIONS(4394),
    [anon_sym_x_DQUOTE] = ACTIONS(4394),
    [anon_sym_DQUOTE] = ACTIONS(4394),
    [anon_sym_i_BQUOTE] = ACTIONS(4394),
    [anon_sym_i_DQUOTE] = ACTIONS(4394),
    [anon_sym_iq_LBRACE] = ACTIONS(4394),
    [aux_sym_char_literal_token1] = ACTIONS(4394),
    [anon_sym_SQUOTE] = ACTIONS(4390),
    [anon_sym___DATE__] = ACTIONS(4390),
    [anon_sym___FILE__] = ACTIONS(4390),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4390),
    [anon_sym___FUNCTION__] = ACTIONS(4390),
    [anon_sym___LINE__] = ACTIONS(4390),
    [anon_sym___MODULE__] = ACTIONS(4390),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4390),
    [anon_sym___TIME__] = ACTIONS(4390),
    [anon_sym___TIMESTAMP__] = ACTIONS(4390),
    [anon_sym___VENDOR__] = ACTIONS(4390),
    [anon_sym___VERSION__] = ACTIONS(4390),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4394),
    [sym_float_literal] = ACTIONS(4394),
    [sym__string] = ACTIONS(4394),
  },
  [1379] = {
    [sym_identifier] = ACTIONS(4398),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4400),
    [anon_sym_RBRACE] = ACTIONS(4400),
    [anon_sym_LBRACE] = ACTIONS(4400),
    [anon_sym_DOT] = ACTIONS(4400),
    [anon_sym_AMP] = ACTIONS(4400),
    [anon_sym_DASH] = ACTIONS(4398),
    [anon_sym_DASH_DASH] = ACTIONS(4400),
    [anon_sym_PLUS] = ACTIONS(4398),
    [anon_sym_PLUS_PLUS] = ACTIONS(4400),
    [anon_sym_BANG] = ACTIONS(4400),
    [anon_sym_LPAREN] = ACTIONS(4400),
    [anon_sym_RPAREN] = ACTIONS(4400),
    [anon_sym_LBRACK] = ACTIONS(4400),
    [anon_sym_SEMI] = ACTIONS(4400),
    [anon_sym_DOLLAR] = ACTIONS(4400),
    [anon_sym_STAR] = ACTIONS(4400),
    [anon_sym_TILDE] = ACTIONS(4400),
    [anon_sym_AT] = ACTIONS(4400),
    [sym_bool] = ACTIONS(4398),
    [sym_byte] = ACTIONS(4398),
    [sym_ubyte] = ACTIONS(4398),
    [sym_char] = ACTIONS(4398),
    [sym_short] = ACTIONS(4398),
    [sym_ushort] = ACTIONS(4398),
    [sym_int] = ACTIONS(4398),
    [sym_uint] = ACTIONS(4398),
    [sym_long] = ACTIONS(4398),
    [sym_ulong] = ACTIONS(4398),
    [sym_cent] = ACTIONS(4398),
    [sym_ucent] = ACTIONS(4398),
    [sym_wchar] = ACTIONS(4398),
    [sym_dchar] = ACTIONS(4398),
    [sym_float] = ACTIONS(4398),
    [sym_double] = ACTIONS(4398),
    [sym_real] = ACTIONS(4398),
    [sym_ifloat] = ACTIONS(4398),
    [sym_idouble] = ACTIONS(4398),
    [sym_ireal] = ACTIONS(4398),
    [sym_cfloat] = ACTIONS(4398),
    [sym_cdouble] = ACTIONS(4398),
    [sym_creal] = ACTIONS(4398),
    [sym_size_t] = ACTIONS(4398),
    [sym_ptrdiff_t] = ACTIONS(4398),
    [sym_string] = ACTIONS(4398),
    [sym_cstring] = ACTIONS(4398),
    [sym_dstring] = ACTIONS(4398),
    [sym_wstring] = ACTIONS(4398),
    [sym_noreturn] = ACTIONS(4398),
    [sym_true] = ACTIONS(4398),
    [sym_false] = ACTIONS(4398),
    [sym_null] = ACTIONS(4398),
    [sym_super] = ACTIONS(4398),
    [sym_this] = ACTIONS(4398),
    [sym_abstract] = ACTIONS(4398),
    [sym_alias] = ACTIONS(4398),
    [sym_align] = ACTIONS(4398),
    [sym_asm] = ACTIONS(4398),
    [sym_assert] = ACTIONS(4398),
    [sym_auto] = ACTIONS(4398),
    [sym_break] = ACTIONS(4398),
    [sym_case] = ACTIONS(4398),
    [sym_cast] = ACTIONS(4398),
    [sym_catch] = ACTIONS(4398),
    [sym_class] = ACTIONS(4398),
    [sym_const] = ACTIONS(4398),
    [sym_continue] = ACTIONS(4398),
    [sym_debug] = ACTIONS(4398),
    [sym_default] = ACTIONS(4398),
    [sym_delegate] = ACTIONS(4398),
    [sym_delete] = ACTIONS(4398),
    [sym_deprecated] = ACTIONS(4398),
    [sym_do] = ACTIONS(4398),
    [sym_else] = ACTIONS(4398),
    [sym_enum] = ACTIONS(4398),
    [sym_export] = ACTIONS(4398),
    [sym_extern] = ACTIONS(4398),
    [sym_final] = ACTIONS(4398),
    [sym_finally] = ACTIONS(4398),
    [sym_for] = ACTIONS(4398),
    [sym_foreach] = ACTIONS(4398),
    [sym_foreach_reverse] = ACTIONS(4398),
    [sym_function] = ACTIONS(4398),
    [sym_goto] = ACTIONS(4398),
    [sym_if] = ACTIONS(4398),
    [sym_immutable] = ACTIONS(4398),
    [sym_import] = ACTIONS(4398),
    [sym_in] = ACTIONS(4398),
    [sym_inout] = ACTIONS(4398),
    [sym_interface] = ACTIONS(4398),
    [sym_invariant] = ACTIONS(4398),
    [sym_is] = ACTIONS(4398),
    [sym_mixin] = ACTIONS(4398),
    [sym_new] = ACTIONS(4398),
    [sym_nothrow] = ACTIONS(4398),
    [sym_out] = ACTIONS(4398),
    [sym_override] = ACTIONS(4398),
    [sym_package] = ACTIONS(4398),
    [sym_pragma] = ACTIONS(4398),
    [sym_private] = ACTIONS(4398),
    [sym_protected] = ACTIONS(4398),
    [sym_public] = ACTIONS(4398),
    [sym_pure] = ACTIONS(4398),
    [sym_ref] = ACTIONS(4398),
    [sym_return] = ACTIONS(4398),
    [sym_scope] = ACTIONS(4398),
    [sym_shared] = ACTIONS(4398),
    [sym_static] = ACTIONS(4398),
    [sym_struct] = ACTIONS(4398),
    [sym_switch] = ACTIONS(4398),
    [sym_synchronized] = ACTIONS(4398),
    [sym_template] = ACTIONS(4398),
    [sym_throw] = ACTIONS(4398),
    [sym_try] = ACTIONS(4398),
    [sym_typeid] = ACTIONS(4398),
    [sym_typeof] = ACTIONS(4398),
    [sym_union] = ACTIONS(4398),
    [sym_unittest] = ACTIONS(4398),
    [sym_version] = ACTIONS(4398),
    [sym_while] = ACTIONS(4398),
    [sym_with] = ACTIONS(4398),
    [sym_gshared] = ACTIONS(4398),
    [sym_traits] = ACTIONS(4398),
    [sym_vector] = ACTIONS(4398),
    [sym_void] = ACTIONS(4398),
    [anon_sym_BQUOTE] = ACTIONS(4400),
    [anon_sym_r_DQUOTE] = ACTIONS(4400),
    [anon_sym_x_DQUOTE] = ACTIONS(4400),
    [anon_sym_DQUOTE] = ACTIONS(4400),
    [anon_sym_i_BQUOTE] = ACTIONS(4400),
    [anon_sym_i_DQUOTE] = ACTIONS(4400),
    [anon_sym_iq_LBRACE] = ACTIONS(4400),
    [aux_sym_char_literal_token1] = ACTIONS(4400),
    [anon_sym_SQUOTE] = ACTIONS(4398),
    [anon_sym___DATE__] = ACTIONS(4398),
    [anon_sym___FILE__] = ACTIONS(4398),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4398),
    [anon_sym___FUNCTION__] = ACTIONS(4398),
    [anon_sym___LINE__] = ACTIONS(4398),
    [anon_sym___MODULE__] = ACTIONS(4398),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4398),
    [anon_sym___TIME__] = ACTIONS(4398),
    [anon_sym___TIMESTAMP__] = ACTIONS(4398),
    [anon_sym___VENDOR__] = ACTIONS(4398),
    [anon_sym___VERSION__] = ACTIONS(4398),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4400),
    [sym_float_literal] = ACTIONS(4400),
    [sym__string] = ACTIONS(4400),
  },
  [1380] = {
    [sym_identifier] = ACTIONS(4402),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4404),
    [anon_sym_RBRACE] = ACTIONS(4404),
    [anon_sym_LBRACE] = ACTIONS(4404),
    [anon_sym_DOT] = ACTIONS(4404),
    [anon_sym_AMP] = ACTIONS(4404),
    [anon_sym_DASH] = ACTIONS(4402),
    [anon_sym_DASH_DASH] = ACTIONS(4404),
    [anon_sym_PLUS] = ACTIONS(4402),
    [anon_sym_PLUS_PLUS] = ACTIONS(4404),
    [anon_sym_BANG] = ACTIONS(4404),
    [anon_sym_LPAREN] = ACTIONS(4404),
    [anon_sym_RPAREN] = ACTIONS(4404),
    [anon_sym_LBRACK] = ACTIONS(4404),
    [anon_sym_SEMI] = ACTIONS(4404),
    [anon_sym_DOLLAR] = ACTIONS(4404),
    [anon_sym_STAR] = ACTIONS(4404),
    [anon_sym_TILDE] = ACTIONS(4404),
    [anon_sym_AT] = ACTIONS(4404),
    [sym_bool] = ACTIONS(4402),
    [sym_byte] = ACTIONS(4402),
    [sym_ubyte] = ACTIONS(4402),
    [sym_char] = ACTIONS(4402),
    [sym_short] = ACTIONS(4402),
    [sym_ushort] = ACTIONS(4402),
    [sym_int] = ACTIONS(4402),
    [sym_uint] = ACTIONS(4402),
    [sym_long] = ACTIONS(4402),
    [sym_ulong] = ACTIONS(4402),
    [sym_cent] = ACTIONS(4402),
    [sym_ucent] = ACTIONS(4402),
    [sym_wchar] = ACTIONS(4402),
    [sym_dchar] = ACTIONS(4402),
    [sym_float] = ACTIONS(4402),
    [sym_double] = ACTIONS(4402),
    [sym_real] = ACTIONS(4402),
    [sym_ifloat] = ACTIONS(4402),
    [sym_idouble] = ACTIONS(4402),
    [sym_ireal] = ACTIONS(4402),
    [sym_cfloat] = ACTIONS(4402),
    [sym_cdouble] = ACTIONS(4402),
    [sym_creal] = ACTIONS(4402),
    [sym_size_t] = ACTIONS(4402),
    [sym_ptrdiff_t] = ACTIONS(4402),
    [sym_string] = ACTIONS(4402),
    [sym_cstring] = ACTIONS(4402),
    [sym_dstring] = ACTIONS(4402),
    [sym_wstring] = ACTIONS(4402),
    [sym_noreturn] = ACTIONS(4402),
    [sym_true] = ACTIONS(4402),
    [sym_false] = ACTIONS(4402),
    [sym_null] = ACTIONS(4402),
    [sym_super] = ACTIONS(4402),
    [sym_this] = ACTIONS(4402),
    [sym_abstract] = ACTIONS(4402),
    [sym_alias] = ACTIONS(4402),
    [sym_align] = ACTIONS(4402),
    [sym_asm] = ACTIONS(4402),
    [sym_assert] = ACTIONS(4402),
    [sym_auto] = ACTIONS(4402),
    [sym_break] = ACTIONS(4402),
    [sym_case] = ACTIONS(4402),
    [sym_cast] = ACTIONS(4402),
    [sym_catch] = ACTIONS(4402),
    [sym_class] = ACTIONS(4402),
    [sym_const] = ACTIONS(4402),
    [sym_continue] = ACTIONS(4402),
    [sym_debug] = ACTIONS(4402),
    [sym_default] = ACTIONS(4402),
    [sym_delegate] = ACTIONS(4402),
    [sym_delete] = ACTIONS(4402),
    [sym_deprecated] = ACTIONS(4402),
    [sym_do] = ACTIONS(4402),
    [sym_else] = ACTIONS(4402),
    [sym_enum] = ACTIONS(4402),
    [sym_export] = ACTIONS(4402),
    [sym_extern] = ACTIONS(4402),
    [sym_final] = ACTIONS(4402),
    [sym_finally] = ACTIONS(4402),
    [sym_for] = ACTIONS(4402),
    [sym_foreach] = ACTIONS(4402),
    [sym_foreach_reverse] = ACTIONS(4402),
    [sym_function] = ACTIONS(4402),
    [sym_goto] = ACTIONS(4402),
    [sym_if] = ACTIONS(4402),
    [sym_immutable] = ACTIONS(4402),
    [sym_import] = ACTIONS(4402),
    [sym_in] = ACTIONS(4402),
    [sym_inout] = ACTIONS(4402),
    [sym_interface] = ACTIONS(4402),
    [sym_invariant] = ACTIONS(4402),
    [sym_is] = ACTIONS(4402),
    [sym_mixin] = ACTIONS(4402),
    [sym_new] = ACTIONS(4402),
    [sym_nothrow] = ACTIONS(4402),
    [sym_out] = ACTIONS(4402),
    [sym_override] = ACTIONS(4402),
    [sym_package] = ACTIONS(4402),
    [sym_pragma] = ACTIONS(4402),
    [sym_private] = ACTIONS(4402),
    [sym_protected] = ACTIONS(4402),
    [sym_public] = ACTIONS(4402),
    [sym_pure] = ACTIONS(4402),
    [sym_ref] = ACTIONS(4402),
    [sym_return] = ACTIONS(4402),
    [sym_scope] = ACTIONS(4402),
    [sym_shared] = ACTIONS(4402),
    [sym_static] = ACTIONS(4402),
    [sym_struct] = ACTIONS(4402),
    [sym_switch] = ACTIONS(4402),
    [sym_synchronized] = ACTIONS(4402),
    [sym_template] = ACTIONS(4402),
    [sym_throw] = ACTIONS(4402),
    [sym_try] = ACTIONS(4402),
    [sym_typeid] = ACTIONS(4402),
    [sym_typeof] = ACTIONS(4402),
    [sym_union] = ACTIONS(4402),
    [sym_unittest] = ACTIONS(4402),
    [sym_version] = ACTIONS(4402),
    [sym_while] = ACTIONS(4402),
    [sym_with] = ACTIONS(4402),
    [sym_gshared] = ACTIONS(4402),
    [sym_traits] = ACTIONS(4402),
    [sym_vector] = ACTIONS(4402),
    [sym_void] = ACTIONS(4402),
    [anon_sym_BQUOTE] = ACTIONS(4404),
    [anon_sym_r_DQUOTE] = ACTIONS(4404),
    [anon_sym_x_DQUOTE] = ACTIONS(4404),
    [anon_sym_DQUOTE] = ACTIONS(4404),
    [anon_sym_i_BQUOTE] = ACTIONS(4404),
    [anon_sym_i_DQUOTE] = ACTIONS(4404),
    [anon_sym_iq_LBRACE] = ACTIONS(4404),
    [aux_sym_char_literal_token1] = ACTIONS(4404),
    [anon_sym_SQUOTE] = ACTIONS(4402),
    [anon_sym___DATE__] = ACTIONS(4402),
    [anon_sym___FILE__] = ACTIONS(4402),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4402),
    [anon_sym___FUNCTION__] = ACTIONS(4402),
    [anon_sym___LINE__] = ACTIONS(4402),
    [anon_sym___MODULE__] = ACTIONS(4402),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4402),
    [anon_sym___TIME__] = ACTIONS(4402),
    [anon_sym___TIMESTAMP__] = ACTIONS(4402),
    [anon_sym___VENDOR__] = ACTIONS(4402),
    [anon_sym___VERSION__] = ACTIONS(4402),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4404),
    [sym_float_literal] = ACTIONS(4404),
    [sym__string] = ACTIONS(4404),
  },
  [1381] = {
    [sym_identifier] = ACTIONS(4406),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4408),
    [anon_sym_RBRACE] = ACTIONS(4408),
    [anon_sym_LBRACE] = ACTIONS(4408),
    [anon_sym_DOT] = ACTIONS(4408),
    [anon_sym_AMP] = ACTIONS(4408),
    [anon_sym_DASH] = ACTIONS(4406),
    [anon_sym_DASH_DASH] = ACTIONS(4408),
    [anon_sym_PLUS] = ACTIONS(4406),
    [anon_sym_PLUS_PLUS] = ACTIONS(4408),
    [anon_sym_BANG] = ACTIONS(4408),
    [anon_sym_LPAREN] = ACTIONS(4408),
    [anon_sym_RPAREN] = ACTIONS(4408),
    [anon_sym_LBRACK] = ACTIONS(4408),
    [anon_sym_SEMI] = ACTIONS(4408),
    [anon_sym_DOLLAR] = ACTIONS(4408),
    [anon_sym_STAR] = ACTIONS(4408),
    [anon_sym_TILDE] = ACTIONS(4408),
    [anon_sym_AT] = ACTIONS(4408),
    [sym_bool] = ACTIONS(4406),
    [sym_byte] = ACTIONS(4406),
    [sym_ubyte] = ACTIONS(4406),
    [sym_char] = ACTIONS(4406),
    [sym_short] = ACTIONS(4406),
    [sym_ushort] = ACTIONS(4406),
    [sym_int] = ACTIONS(4406),
    [sym_uint] = ACTIONS(4406),
    [sym_long] = ACTIONS(4406),
    [sym_ulong] = ACTIONS(4406),
    [sym_cent] = ACTIONS(4406),
    [sym_ucent] = ACTIONS(4406),
    [sym_wchar] = ACTIONS(4406),
    [sym_dchar] = ACTIONS(4406),
    [sym_float] = ACTIONS(4406),
    [sym_double] = ACTIONS(4406),
    [sym_real] = ACTIONS(4406),
    [sym_ifloat] = ACTIONS(4406),
    [sym_idouble] = ACTIONS(4406),
    [sym_ireal] = ACTIONS(4406),
    [sym_cfloat] = ACTIONS(4406),
    [sym_cdouble] = ACTIONS(4406),
    [sym_creal] = ACTIONS(4406),
    [sym_size_t] = ACTIONS(4406),
    [sym_ptrdiff_t] = ACTIONS(4406),
    [sym_string] = ACTIONS(4406),
    [sym_cstring] = ACTIONS(4406),
    [sym_dstring] = ACTIONS(4406),
    [sym_wstring] = ACTIONS(4406),
    [sym_noreturn] = ACTIONS(4406),
    [sym_true] = ACTIONS(4406),
    [sym_false] = ACTIONS(4406),
    [sym_null] = ACTIONS(4406),
    [sym_super] = ACTIONS(4406),
    [sym_this] = ACTIONS(4406),
    [sym_abstract] = ACTIONS(4406),
    [sym_alias] = ACTIONS(4406),
    [sym_align] = ACTIONS(4406),
    [sym_asm] = ACTIONS(4406),
    [sym_assert] = ACTIONS(4406),
    [sym_auto] = ACTIONS(4406),
    [sym_break] = ACTIONS(4406),
    [sym_case] = ACTIONS(4406),
    [sym_cast] = ACTIONS(4406),
    [sym_catch] = ACTIONS(4406),
    [sym_class] = ACTIONS(4406),
    [sym_const] = ACTIONS(4406),
    [sym_continue] = ACTIONS(4406),
    [sym_debug] = ACTIONS(4406),
    [sym_default] = ACTIONS(4406),
    [sym_delegate] = ACTIONS(4406),
    [sym_delete] = ACTIONS(4406),
    [sym_deprecated] = ACTIONS(4406),
    [sym_do] = ACTIONS(4406),
    [sym_else] = ACTIONS(4406),
    [sym_enum] = ACTIONS(4406),
    [sym_export] = ACTIONS(4406),
    [sym_extern] = ACTIONS(4406),
    [sym_final] = ACTIONS(4406),
    [sym_finally] = ACTIONS(4406),
    [sym_for] = ACTIONS(4406),
    [sym_foreach] = ACTIONS(4406),
    [sym_foreach_reverse] = ACTIONS(4406),
    [sym_function] = ACTIONS(4406),
    [sym_goto] = ACTIONS(4406),
    [sym_if] = ACTIONS(4406),
    [sym_immutable] = ACTIONS(4406),
    [sym_import] = ACTIONS(4406),
    [sym_in] = ACTIONS(4406),
    [sym_inout] = ACTIONS(4406),
    [sym_interface] = ACTIONS(4406),
    [sym_invariant] = ACTIONS(4406),
    [sym_is] = ACTIONS(4406),
    [sym_mixin] = ACTIONS(4406),
    [sym_new] = ACTIONS(4406),
    [sym_nothrow] = ACTIONS(4406),
    [sym_out] = ACTIONS(4406),
    [sym_override] = ACTIONS(4406),
    [sym_package] = ACTIONS(4406),
    [sym_pragma] = ACTIONS(4406),
    [sym_private] = ACTIONS(4406),
    [sym_protected] = ACTIONS(4406),
    [sym_public] = ACTIONS(4406),
    [sym_pure] = ACTIONS(4406),
    [sym_ref] = ACTIONS(4406),
    [sym_return] = ACTIONS(4406),
    [sym_scope] = ACTIONS(4406),
    [sym_shared] = ACTIONS(4406),
    [sym_static] = ACTIONS(4406),
    [sym_struct] = ACTIONS(4406),
    [sym_switch] = ACTIONS(4406),
    [sym_synchronized] = ACTIONS(4406),
    [sym_template] = ACTIONS(4406),
    [sym_throw] = ACTIONS(4406),
    [sym_try] = ACTIONS(4406),
    [sym_typeid] = ACTIONS(4406),
    [sym_typeof] = ACTIONS(4406),
    [sym_union] = ACTIONS(4406),
    [sym_unittest] = ACTIONS(4406),
    [sym_version] = ACTIONS(4406),
    [sym_while] = ACTIONS(4406),
    [sym_with] = ACTIONS(4406),
    [sym_gshared] = ACTIONS(4406),
    [sym_traits] = ACTIONS(4406),
    [sym_vector] = ACTIONS(4406),
    [sym_void] = ACTIONS(4406),
    [anon_sym_BQUOTE] = ACTIONS(4408),
    [anon_sym_r_DQUOTE] = ACTIONS(4408),
    [anon_sym_x_DQUOTE] = ACTIONS(4408),
    [anon_sym_DQUOTE] = ACTIONS(4408),
    [anon_sym_i_BQUOTE] = ACTIONS(4408),
    [anon_sym_i_DQUOTE] = ACTIONS(4408),
    [anon_sym_iq_LBRACE] = ACTIONS(4408),
    [aux_sym_char_literal_token1] = ACTIONS(4408),
    [anon_sym_SQUOTE] = ACTIONS(4406),
    [anon_sym___DATE__] = ACTIONS(4406),
    [anon_sym___FILE__] = ACTIONS(4406),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4406),
    [anon_sym___FUNCTION__] = ACTIONS(4406),
    [anon_sym___LINE__] = ACTIONS(4406),
    [anon_sym___MODULE__] = ACTIONS(4406),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4406),
    [anon_sym___TIME__] = ACTIONS(4406),
    [anon_sym___TIMESTAMP__] = ACTIONS(4406),
    [anon_sym___VENDOR__] = ACTIONS(4406),
    [anon_sym___VERSION__] = ACTIONS(4406),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4408),
    [sym_float_literal] = ACTIONS(4408),
    [sym__string] = ACTIONS(4408),
  },
  [1382] = {
    [sym_identifier] = ACTIONS(4410),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4412),
    [anon_sym_RBRACE] = ACTIONS(4412),
    [anon_sym_LBRACE] = ACTIONS(4412),
    [anon_sym_DOT] = ACTIONS(4412),
    [anon_sym_AMP] = ACTIONS(4412),
    [anon_sym_DASH] = ACTIONS(4410),
    [anon_sym_DASH_DASH] = ACTIONS(4412),
    [anon_sym_PLUS] = ACTIONS(4410),
    [anon_sym_PLUS_PLUS] = ACTIONS(4412),
    [anon_sym_BANG] = ACTIONS(4412),
    [anon_sym_LPAREN] = ACTIONS(4412),
    [anon_sym_RPAREN] = ACTIONS(4412),
    [anon_sym_LBRACK] = ACTIONS(4412),
    [anon_sym_SEMI] = ACTIONS(4412),
    [anon_sym_DOLLAR] = ACTIONS(4412),
    [anon_sym_STAR] = ACTIONS(4412),
    [anon_sym_TILDE] = ACTIONS(4412),
    [anon_sym_AT] = ACTIONS(4412),
    [sym_bool] = ACTIONS(4410),
    [sym_byte] = ACTIONS(4410),
    [sym_ubyte] = ACTIONS(4410),
    [sym_char] = ACTIONS(4410),
    [sym_short] = ACTIONS(4410),
    [sym_ushort] = ACTIONS(4410),
    [sym_int] = ACTIONS(4410),
    [sym_uint] = ACTIONS(4410),
    [sym_long] = ACTIONS(4410),
    [sym_ulong] = ACTIONS(4410),
    [sym_cent] = ACTIONS(4410),
    [sym_ucent] = ACTIONS(4410),
    [sym_wchar] = ACTIONS(4410),
    [sym_dchar] = ACTIONS(4410),
    [sym_float] = ACTIONS(4410),
    [sym_double] = ACTIONS(4410),
    [sym_real] = ACTIONS(4410),
    [sym_ifloat] = ACTIONS(4410),
    [sym_idouble] = ACTIONS(4410),
    [sym_ireal] = ACTIONS(4410),
    [sym_cfloat] = ACTIONS(4410),
    [sym_cdouble] = ACTIONS(4410),
    [sym_creal] = ACTIONS(4410),
    [sym_size_t] = ACTIONS(4410),
    [sym_ptrdiff_t] = ACTIONS(4410),
    [sym_string] = ACTIONS(4410),
    [sym_cstring] = ACTIONS(4410),
    [sym_dstring] = ACTIONS(4410),
    [sym_wstring] = ACTIONS(4410),
    [sym_noreturn] = ACTIONS(4410),
    [sym_true] = ACTIONS(4410),
    [sym_false] = ACTIONS(4410),
    [sym_null] = ACTIONS(4410),
    [sym_super] = ACTIONS(4410),
    [sym_this] = ACTIONS(4410),
    [sym_abstract] = ACTIONS(4410),
    [sym_alias] = ACTIONS(4410),
    [sym_align] = ACTIONS(4410),
    [sym_asm] = ACTIONS(4410),
    [sym_assert] = ACTIONS(4410),
    [sym_auto] = ACTIONS(4410),
    [sym_break] = ACTIONS(4410),
    [sym_case] = ACTIONS(4410),
    [sym_cast] = ACTIONS(4410),
    [sym_catch] = ACTIONS(4410),
    [sym_class] = ACTIONS(4410),
    [sym_const] = ACTIONS(4410),
    [sym_continue] = ACTIONS(4410),
    [sym_debug] = ACTIONS(4410),
    [sym_default] = ACTIONS(4410),
    [sym_delegate] = ACTIONS(4410),
    [sym_delete] = ACTIONS(4410),
    [sym_deprecated] = ACTIONS(4410),
    [sym_do] = ACTIONS(4410),
    [sym_else] = ACTIONS(4410),
    [sym_enum] = ACTIONS(4410),
    [sym_export] = ACTIONS(4410),
    [sym_extern] = ACTIONS(4410),
    [sym_final] = ACTIONS(4410),
    [sym_finally] = ACTIONS(4410),
    [sym_for] = ACTIONS(4410),
    [sym_foreach] = ACTIONS(4410),
    [sym_foreach_reverse] = ACTIONS(4410),
    [sym_function] = ACTIONS(4410),
    [sym_goto] = ACTIONS(4410),
    [sym_if] = ACTIONS(4410),
    [sym_immutable] = ACTIONS(4410),
    [sym_import] = ACTIONS(4410),
    [sym_in] = ACTIONS(4410),
    [sym_inout] = ACTIONS(4410),
    [sym_interface] = ACTIONS(4410),
    [sym_invariant] = ACTIONS(4410),
    [sym_is] = ACTIONS(4410),
    [sym_mixin] = ACTIONS(4410),
    [sym_new] = ACTIONS(4410),
    [sym_nothrow] = ACTIONS(4410),
    [sym_out] = ACTIONS(4410),
    [sym_override] = ACTIONS(4410),
    [sym_package] = ACTIONS(4410),
    [sym_pragma] = ACTIONS(4410),
    [sym_private] = ACTIONS(4410),
    [sym_protected] = ACTIONS(4410),
    [sym_public] = ACTIONS(4410),
    [sym_pure] = ACTIONS(4410),
    [sym_ref] = ACTIONS(4410),
    [sym_return] = ACTIONS(4410),
    [sym_scope] = ACTIONS(4410),
    [sym_shared] = ACTIONS(4410),
    [sym_static] = ACTIONS(4410),
    [sym_struct] = ACTIONS(4410),
    [sym_switch] = ACTIONS(4410),
    [sym_synchronized] = ACTIONS(4410),
    [sym_template] = ACTIONS(4410),
    [sym_throw] = ACTIONS(4410),
    [sym_try] = ACTIONS(4410),
    [sym_typeid] = ACTIONS(4410),
    [sym_typeof] = ACTIONS(4410),
    [sym_union] = ACTIONS(4410),
    [sym_unittest] = ACTIONS(4410),
    [sym_version] = ACTIONS(4410),
    [sym_while] = ACTIONS(4410),
    [sym_with] = ACTIONS(4410),
    [sym_gshared] = ACTIONS(4410),
    [sym_traits] = ACTIONS(4410),
    [sym_vector] = ACTIONS(4410),
    [sym_void] = ACTIONS(4410),
    [anon_sym_BQUOTE] = ACTIONS(4412),
    [anon_sym_r_DQUOTE] = ACTIONS(4412),
    [anon_sym_x_DQUOTE] = ACTIONS(4412),
    [anon_sym_DQUOTE] = ACTIONS(4412),
    [anon_sym_i_BQUOTE] = ACTIONS(4412),
    [anon_sym_i_DQUOTE] = ACTIONS(4412),
    [anon_sym_iq_LBRACE] = ACTIONS(4412),
    [aux_sym_char_literal_token1] = ACTIONS(4412),
    [anon_sym_SQUOTE] = ACTIONS(4410),
    [anon_sym___DATE__] = ACTIONS(4410),
    [anon_sym___FILE__] = ACTIONS(4410),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4410),
    [anon_sym___FUNCTION__] = ACTIONS(4410),
    [anon_sym___LINE__] = ACTIONS(4410),
    [anon_sym___MODULE__] = ACTIONS(4410),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4410),
    [anon_sym___TIME__] = ACTIONS(4410),
    [anon_sym___TIMESTAMP__] = ACTIONS(4410),
    [anon_sym___VENDOR__] = ACTIONS(4410),
    [anon_sym___VERSION__] = ACTIONS(4410),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4412),
    [sym_float_literal] = ACTIONS(4412),
    [sym__string] = ACTIONS(4412),
  },
  [1383] = {
    [sym_identifier] = ACTIONS(4414),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4416),
    [anon_sym_RBRACE] = ACTIONS(4416),
    [anon_sym_LBRACE] = ACTIONS(4416),
    [anon_sym_DOT] = ACTIONS(4416),
    [anon_sym_AMP] = ACTIONS(4416),
    [anon_sym_DASH] = ACTIONS(4414),
    [anon_sym_DASH_DASH] = ACTIONS(4416),
    [anon_sym_PLUS] = ACTIONS(4414),
    [anon_sym_PLUS_PLUS] = ACTIONS(4416),
    [anon_sym_BANG] = ACTIONS(4416),
    [anon_sym_LPAREN] = ACTIONS(4416),
    [anon_sym_RPAREN] = ACTIONS(4416),
    [anon_sym_LBRACK] = ACTIONS(4416),
    [anon_sym_SEMI] = ACTIONS(4416),
    [anon_sym_DOLLAR] = ACTIONS(4416),
    [anon_sym_STAR] = ACTIONS(4416),
    [anon_sym_TILDE] = ACTIONS(4416),
    [anon_sym_AT] = ACTIONS(4416),
    [sym_bool] = ACTIONS(4414),
    [sym_byte] = ACTIONS(4414),
    [sym_ubyte] = ACTIONS(4414),
    [sym_char] = ACTIONS(4414),
    [sym_short] = ACTIONS(4414),
    [sym_ushort] = ACTIONS(4414),
    [sym_int] = ACTIONS(4414),
    [sym_uint] = ACTIONS(4414),
    [sym_long] = ACTIONS(4414),
    [sym_ulong] = ACTIONS(4414),
    [sym_cent] = ACTIONS(4414),
    [sym_ucent] = ACTIONS(4414),
    [sym_wchar] = ACTIONS(4414),
    [sym_dchar] = ACTIONS(4414),
    [sym_float] = ACTIONS(4414),
    [sym_double] = ACTIONS(4414),
    [sym_real] = ACTIONS(4414),
    [sym_ifloat] = ACTIONS(4414),
    [sym_idouble] = ACTIONS(4414),
    [sym_ireal] = ACTIONS(4414),
    [sym_cfloat] = ACTIONS(4414),
    [sym_cdouble] = ACTIONS(4414),
    [sym_creal] = ACTIONS(4414),
    [sym_size_t] = ACTIONS(4414),
    [sym_ptrdiff_t] = ACTIONS(4414),
    [sym_string] = ACTIONS(4414),
    [sym_cstring] = ACTIONS(4414),
    [sym_dstring] = ACTIONS(4414),
    [sym_wstring] = ACTIONS(4414),
    [sym_noreturn] = ACTIONS(4414),
    [sym_true] = ACTIONS(4414),
    [sym_false] = ACTIONS(4414),
    [sym_null] = ACTIONS(4414),
    [sym_super] = ACTIONS(4414),
    [sym_this] = ACTIONS(4414),
    [sym_abstract] = ACTIONS(4414),
    [sym_alias] = ACTIONS(4414),
    [sym_align] = ACTIONS(4414),
    [sym_asm] = ACTIONS(4414),
    [sym_assert] = ACTIONS(4414),
    [sym_auto] = ACTIONS(4414),
    [sym_break] = ACTIONS(4414),
    [sym_case] = ACTIONS(4414),
    [sym_cast] = ACTIONS(4414),
    [sym_catch] = ACTIONS(4414),
    [sym_class] = ACTIONS(4414),
    [sym_const] = ACTIONS(4414),
    [sym_continue] = ACTIONS(4414),
    [sym_debug] = ACTIONS(4414),
    [sym_default] = ACTIONS(4414),
    [sym_delegate] = ACTIONS(4414),
    [sym_delete] = ACTIONS(4414),
    [sym_deprecated] = ACTIONS(4414),
    [sym_do] = ACTIONS(4414),
    [sym_else] = ACTIONS(4414),
    [sym_enum] = ACTIONS(4414),
    [sym_export] = ACTIONS(4414),
    [sym_extern] = ACTIONS(4414),
    [sym_final] = ACTIONS(4414),
    [sym_finally] = ACTIONS(4414),
    [sym_for] = ACTIONS(4414),
    [sym_foreach] = ACTIONS(4414),
    [sym_foreach_reverse] = ACTIONS(4414),
    [sym_function] = ACTIONS(4414),
    [sym_goto] = ACTIONS(4414),
    [sym_if] = ACTIONS(4414),
    [sym_immutable] = ACTIONS(4414),
    [sym_import] = ACTIONS(4414),
    [sym_in] = ACTIONS(4414),
    [sym_inout] = ACTIONS(4414),
    [sym_interface] = ACTIONS(4414),
    [sym_invariant] = ACTIONS(4414),
    [sym_is] = ACTIONS(4414),
    [sym_mixin] = ACTIONS(4414),
    [sym_new] = ACTIONS(4414),
    [sym_nothrow] = ACTIONS(4414),
    [sym_out] = ACTIONS(4414),
    [sym_override] = ACTIONS(4414),
    [sym_package] = ACTIONS(4414),
    [sym_pragma] = ACTIONS(4414),
    [sym_private] = ACTIONS(4414),
    [sym_protected] = ACTIONS(4414),
    [sym_public] = ACTIONS(4414),
    [sym_pure] = ACTIONS(4414),
    [sym_ref] = ACTIONS(4414),
    [sym_return] = ACTIONS(4414),
    [sym_scope] = ACTIONS(4414),
    [sym_shared] = ACTIONS(4414),
    [sym_static] = ACTIONS(4414),
    [sym_struct] = ACTIONS(4414),
    [sym_switch] = ACTIONS(4414),
    [sym_synchronized] = ACTIONS(4414),
    [sym_template] = ACTIONS(4414),
    [sym_throw] = ACTIONS(4414),
    [sym_try] = ACTIONS(4414),
    [sym_typeid] = ACTIONS(4414),
    [sym_typeof] = ACTIONS(4414),
    [sym_union] = ACTIONS(4414),
    [sym_unittest] = ACTIONS(4414),
    [sym_version] = ACTIONS(4414),
    [sym_while] = ACTIONS(4414),
    [sym_with] = ACTIONS(4414),
    [sym_gshared] = ACTIONS(4414),
    [sym_traits] = ACTIONS(4414),
    [sym_vector] = ACTIONS(4414),
    [sym_void] = ACTIONS(4414),
    [anon_sym_BQUOTE] = ACTIONS(4416),
    [anon_sym_r_DQUOTE] = ACTIONS(4416),
    [anon_sym_x_DQUOTE] = ACTIONS(4416),
    [anon_sym_DQUOTE] = ACTIONS(4416),
    [anon_sym_i_BQUOTE] = ACTIONS(4416),
    [anon_sym_i_DQUOTE] = ACTIONS(4416),
    [anon_sym_iq_LBRACE] = ACTIONS(4416),
    [aux_sym_char_literal_token1] = ACTIONS(4416),
    [anon_sym_SQUOTE] = ACTIONS(4414),
    [anon_sym___DATE__] = ACTIONS(4414),
    [anon_sym___FILE__] = ACTIONS(4414),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4414),
    [anon_sym___FUNCTION__] = ACTIONS(4414),
    [anon_sym___LINE__] = ACTIONS(4414),
    [anon_sym___MODULE__] = ACTIONS(4414),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4414),
    [anon_sym___TIME__] = ACTIONS(4414),
    [anon_sym___TIMESTAMP__] = ACTIONS(4414),
    [anon_sym___VENDOR__] = ACTIONS(4414),
    [anon_sym___VERSION__] = ACTIONS(4414),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4416),
    [sym_float_literal] = ACTIONS(4416),
    [sym__string] = ACTIONS(4416),
  },
  [1384] = {
    [sym_identifier] = ACTIONS(4418),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4420),
    [anon_sym_RBRACE] = ACTIONS(4420),
    [anon_sym_LBRACE] = ACTIONS(4420),
    [anon_sym_DOT] = ACTIONS(4420),
    [anon_sym_AMP] = ACTIONS(4420),
    [anon_sym_DASH] = ACTIONS(4418),
    [anon_sym_DASH_DASH] = ACTIONS(4420),
    [anon_sym_PLUS] = ACTIONS(4418),
    [anon_sym_PLUS_PLUS] = ACTIONS(4420),
    [anon_sym_BANG] = ACTIONS(4420),
    [anon_sym_LPAREN] = ACTIONS(4420),
    [anon_sym_RPAREN] = ACTIONS(4420),
    [anon_sym_LBRACK] = ACTIONS(4420),
    [anon_sym_SEMI] = ACTIONS(4420),
    [anon_sym_DOLLAR] = ACTIONS(4420),
    [anon_sym_STAR] = ACTIONS(4420),
    [anon_sym_TILDE] = ACTIONS(4420),
    [anon_sym_AT] = ACTIONS(4420),
    [sym_bool] = ACTIONS(4418),
    [sym_byte] = ACTIONS(4418),
    [sym_ubyte] = ACTIONS(4418),
    [sym_char] = ACTIONS(4418),
    [sym_short] = ACTIONS(4418),
    [sym_ushort] = ACTIONS(4418),
    [sym_int] = ACTIONS(4418),
    [sym_uint] = ACTIONS(4418),
    [sym_long] = ACTIONS(4418),
    [sym_ulong] = ACTIONS(4418),
    [sym_cent] = ACTIONS(4418),
    [sym_ucent] = ACTIONS(4418),
    [sym_wchar] = ACTIONS(4418),
    [sym_dchar] = ACTIONS(4418),
    [sym_float] = ACTIONS(4418),
    [sym_double] = ACTIONS(4418),
    [sym_real] = ACTIONS(4418),
    [sym_ifloat] = ACTIONS(4418),
    [sym_idouble] = ACTIONS(4418),
    [sym_ireal] = ACTIONS(4418),
    [sym_cfloat] = ACTIONS(4418),
    [sym_cdouble] = ACTIONS(4418),
    [sym_creal] = ACTIONS(4418),
    [sym_size_t] = ACTIONS(4418),
    [sym_ptrdiff_t] = ACTIONS(4418),
    [sym_string] = ACTIONS(4418),
    [sym_cstring] = ACTIONS(4418),
    [sym_dstring] = ACTIONS(4418),
    [sym_wstring] = ACTIONS(4418),
    [sym_noreturn] = ACTIONS(4418),
    [sym_true] = ACTIONS(4418),
    [sym_false] = ACTIONS(4418),
    [sym_null] = ACTIONS(4418),
    [sym_super] = ACTIONS(4418),
    [sym_this] = ACTIONS(4418),
    [sym_abstract] = ACTIONS(4418),
    [sym_alias] = ACTIONS(4418),
    [sym_align] = ACTIONS(4418),
    [sym_asm] = ACTIONS(4418),
    [sym_assert] = ACTIONS(4418),
    [sym_auto] = ACTIONS(4418),
    [sym_break] = ACTIONS(4418),
    [sym_case] = ACTIONS(4418),
    [sym_cast] = ACTIONS(4418),
    [sym_catch] = ACTIONS(4418),
    [sym_class] = ACTIONS(4418),
    [sym_const] = ACTIONS(4418),
    [sym_continue] = ACTIONS(4418),
    [sym_debug] = ACTIONS(4418),
    [sym_default] = ACTIONS(4418),
    [sym_delegate] = ACTIONS(4418),
    [sym_delete] = ACTIONS(4418),
    [sym_deprecated] = ACTIONS(4418),
    [sym_do] = ACTIONS(4418),
    [sym_else] = ACTIONS(4418),
    [sym_enum] = ACTIONS(4418),
    [sym_export] = ACTIONS(4418),
    [sym_extern] = ACTIONS(4418),
    [sym_final] = ACTIONS(4418),
    [sym_finally] = ACTIONS(4418),
    [sym_for] = ACTIONS(4418),
    [sym_foreach] = ACTIONS(4418),
    [sym_foreach_reverse] = ACTIONS(4418),
    [sym_function] = ACTIONS(4418),
    [sym_goto] = ACTIONS(4418),
    [sym_if] = ACTIONS(4418),
    [sym_immutable] = ACTIONS(4418),
    [sym_import] = ACTIONS(4418),
    [sym_in] = ACTIONS(4418),
    [sym_inout] = ACTIONS(4418),
    [sym_interface] = ACTIONS(4418),
    [sym_invariant] = ACTIONS(4418),
    [sym_is] = ACTIONS(4418),
    [sym_mixin] = ACTIONS(4418),
    [sym_new] = ACTIONS(4418),
    [sym_nothrow] = ACTIONS(4418),
    [sym_out] = ACTIONS(4418),
    [sym_override] = ACTIONS(4418),
    [sym_package] = ACTIONS(4418),
    [sym_pragma] = ACTIONS(4418),
    [sym_private] = ACTIONS(4418),
    [sym_protected] = ACTIONS(4418),
    [sym_public] = ACTIONS(4418),
    [sym_pure] = ACTIONS(4418),
    [sym_ref] = ACTIONS(4418),
    [sym_return] = ACTIONS(4418),
    [sym_scope] = ACTIONS(4418),
    [sym_shared] = ACTIONS(4418),
    [sym_static] = ACTIONS(4418),
    [sym_struct] = ACTIONS(4418),
    [sym_switch] = ACTIONS(4418),
    [sym_synchronized] = ACTIONS(4418),
    [sym_template] = ACTIONS(4418),
    [sym_throw] = ACTIONS(4418),
    [sym_try] = ACTIONS(4418),
    [sym_typeid] = ACTIONS(4418),
    [sym_typeof] = ACTIONS(4418),
    [sym_union] = ACTIONS(4418),
    [sym_unittest] = ACTIONS(4418),
    [sym_version] = ACTIONS(4418),
    [sym_while] = ACTIONS(4418),
    [sym_with] = ACTIONS(4418),
    [sym_gshared] = ACTIONS(4418),
    [sym_traits] = ACTIONS(4418),
    [sym_vector] = ACTIONS(4418),
    [sym_void] = ACTIONS(4418),
    [anon_sym_BQUOTE] = ACTIONS(4420),
    [anon_sym_r_DQUOTE] = ACTIONS(4420),
    [anon_sym_x_DQUOTE] = ACTIONS(4420),
    [anon_sym_DQUOTE] = ACTIONS(4420),
    [anon_sym_i_BQUOTE] = ACTIONS(4420),
    [anon_sym_i_DQUOTE] = ACTIONS(4420),
    [anon_sym_iq_LBRACE] = ACTIONS(4420),
    [aux_sym_char_literal_token1] = ACTIONS(4420),
    [anon_sym_SQUOTE] = ACTIONS(4418),
    [anon_sym___DATE__] = ACTIONS(4418),
    [anon_sym___FILE__] = ACTIONS(4418),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4418),
    [anon_sym___FUNCTION__] = ACTIONS(4418),
    [anon_sym___LINE__] = ACTIONS(4418),
    [anon_sym___MODULE__] = ACTIONS(4418),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4418),
    [anon_sym___TIME__] = ACTIONS(4418),
    [anon_sym___TIMESTAMP__] = ACTIONS(4418),
    [anon_sym___VENDOR__] = ACTIONS(4418),
    [anon_sym___VERSION__] = ACTIONS(4418),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4420),
    [sym_float_literal] = ACTIONS(4420),
    [sym__string] = ACTIONS(4420),
  },
  [1385] = {
    [sym_identifier] = ACTIONS(4422),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4424),
    [anon_sym_RBRACE] = ACTIONS(4424),
    [anon_sym_LBRACE] = ACTIONS(4424),
    [anon_sym_DOT] = ACTIONS(4424),
    [anon_sym_AMP] = ACTIONS(4424),
    [anon_sym_DASH] = ACTIONS(4422),
    [anon_sym_DASH_DASH] = ACTIONS(4424),
    [anon_sym_PLUS] = ACTIONS(4422),
    [anon_sym_PLUS_PLUS] = ACTIONS(4424),
    [anon_sym_BANG] = ACTIONS(4424),
    [anon_sym_LPAREN] = ACTIONS(4424),
    [anon_sym_RPAREN] = ACTIONS(4424),
    [anon_sym_LBRACK] = ACTIONS(4424),
    [anon_sym_SEMI] = ACTIONS(4424),
    [anon_sym_DOLLAR] = ACTIONS(4424),
    [anon_sym_STAR] = ACTIONS(4424),
    [anon_sym_TILDE] = ACTIONS(4424),
    [anon_sym_AT] = ACTIONS(4424),
    [sym_bool] = ACTIONS(4422),
    [sym_byte] = ACTIONS(4422),
    [sym_ubyte] = ACTIONS(4422),
    [sym_char] = ACTIONS(4422),
    [sym_short] = ACTIONS(4422),
    [sym_ushort] = ACTIONS(4422),
    [sym_int] = ACTIONS(4422),
    [sym_uint] = ACTIONS(4422),
    [sym_long] = ACTIONS(4422),
    [sym_ulong] = ACTIONS(4422),
    [sym_cent] = ACTIONS(4422),
    [sym_ucent] = ACTIONS(4422),
    [sym_wchar] = ACTIONS(4422),
    [sym_dchar] = ACTIONS(4422),
    [sym_float] = ACTIONS(4422),
    [sym_double] = ACTIONS(4422),
    [sym_real] = ACTIONS(4422),
    [sym_ifloat] = ACTIONS(4422),
    [sym_idouble] = ACTIONS(4422),
    [sym_ireal] = ACTIONS(4422),
    [sym_cfloat] = ACTIONS(4422),
    [sym_cdouble] = ACTIONS(4422),
    [sym_creal] = ACTIONS(4422),
    [sym_size_t] = ACTIONS(4422),
    [sym_ptrdiff_t] = ACTIONS(4422),
    [sym_string] = ACTIONS(4422),
    [sym_cstring] = ACTIONS(4422),
    [sym_dstring] = ACTIONS(4422),
    [sym_wstring] = ACTIONS(4422),
    [sym_noreturn] = ACTIONS(4422),
    [sym_true] = ACTIONS(4422),
    [sym_false] = ACTIONS(4422),
    [sym_null] = ACTIONS(4422),
    [sym_super] = ACTIONS(4422),
    [sym_this] = ACTIONS(4422),
    [sym_abstract] = ACTIONS(4422),
    [sym_alias] = ACTIONS(4422),
    [sym_align] = ACTIONS(4422),
    [sym_asm] = ACTIONS(4422),
    [sym_assert] = ACTIONS(4422),
    [sym_auto] = ACTIONS(4422),
    [sym_break] = ACTIONS(4422),
    [sym_case] = ACTIONS(4422),
    [sym_cast] = ACTIONS(4422),
    [sym_catch] = ACTIONS(4422),
    [sym_class] = ACTIONS(4422),
    [sym_const] = ACTIONS(4422),
    [sym_continue] = ACTIONS(4422),
    [sym_debug] = ACTIONS(4422),
    [sym_default] = ACTIONS(4422),
    [sym_delegate] = ACTIONS(4422),
    [sym_delete] = ACTIONS(4422),
    [sym_deprecated] = ACTIONS(4422),
    [sym_do] = ACTIONS(4422),
    [sym_else] = ACTIONS(4422),
    [sym_enum] = ACTIONS(4422),
    [sym_export] = ACTIONS(4422),
    [sym_extern] = ACTIONS(4422),
    [sym_final] = ACTIONS(4422),
    [sym_finally] = ACTIONS(4422),
    [sym_for] = ACTIONS(4422),
    [sym_foreach] = ACTIONS(4422),
    [sym_foreach_reverse] = ACTIONS(4422),
    [sym_function] = ACTIONS(4422),
    [sym_goto] = ACTIONS(4422),
    [sym_if] = ACTIONS(4422),
    [sym_immutable] = ACTIONS(4422),
    [sym_import] = ACTIONS(4422),
    [sym_in] = ACTIONS(4422),
    [sym_inout] = ACTIONS(4422),
    [sym_interface] = ACTIONS(4422),
    [sym_invariant] = ACTIONS(4422),
    [sym_is] = ACTIONS(4422),
    [sym_mixin] = ACTIONS(4422),
    [sym_new] = ACTIONS(4422),
    [sym_nothrow] = ACTIONS(4422),
    [sym_out] = ACTIONS(4422),
    [sym_override] = ACTIONS(4422),
    [sym_package] = ACTIONS(4422),
    [sym_pragma] = ACTIONS(4422),
    [sym_private] = ACTIONS(4422),
    [sym_protected] = ACTIONS(4422),
    [sym_public] = ACTIONS(4422),
    [sym_pure] = ACTIONS(4422),
    [sym_ref] = ACTIONS(4422),
    [sym_return] = ACTIONS(4422),
    [sym_scope] = ACTIONS(4422),
    [sym_shared] = ACTIONS(4422),
    [sym_static] = ACTIONS(4422),
    [sym_struct] = ACTIONS(4422),
    [sym_switch] = ACTIONS(4422),
    [sym_synchronized] = ACTIONS(4422),
    [sym_template] = ACTIONS(4422),
    [sym_throw] = ACTIONS(4422),
    [sym_try] = ACTIONS(4422),
    [sym_typeid] = ACTIONS(4422),
    [sym_typeof] = ACTIONS(4422),
    [sym_union] = ACTIONS(4422),
    [sym_unittest] = ACTIONS(4422),
    [sym_version] = ACTIONS(4422),
    [sym_while] = ACTIONS(4422),
    [sym_with] = ACTIONS(4422),
    [sym_gshared] = ACTIONS(4422),
    [sym_traits] = ACTIONS(4422),
    [sym_vector] = ACTIONS(4422),
    [sym_void] = ACTIONS(4422),
    [anon_sym_BQUOTE] = ACTIONS(4424),
    [anon_sym_r_DQUOTE] = ACTIONS(4424),
    [anon_sym_x_DQUOTE] = ACTIONS(4424),
    [anon_sym_DQUOTE] = ACTIONS(4424),
    [anon_sym_i_BQUOTE] = ACTIONS(4424),
    [anon_sym_i_DQUOTE] = ACTIONS(4424),
    [anon_sym_iq_LBRACE] = ACTIONS(4424),
    [aux_sym_char_literal_token1] = ACTIONS(4424),
    [anon_sym_SQUOTE] = ACTIONS(4422),
    [anon_sym___DATE__] = ACTIONS(4422),
    [anon_sym___FILE__] = ACTIONS(4422),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4422),
    [anon_sym___FUNCTION__] = ACTIONS(4422),
    [anon_sym___LINE__] = ACTIONS(4422),
    [anon_sym___MODULE__] = ACTIONS(4422),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4422),
    [anon_sym___TIME__] = ACTIONS(4422),
    [anon_sym___TIMESTAMP__] = ACTIONS(4422),
    [anon_sym___VENDOR__] = ACTIONS(4422),
    [anon_sym___VERSION__] = ACTIONS(4422),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4424),
    [sym_float_literal] = ACTIONS(4424),
    [sym__string] = ACTIONS(4424),
  },
  [1386] = {
    [sym_identifier] = ACTIONS(4426),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4428),
    [anon_sym_RBRACE] = ACTIONS(4428),
    [anon_sym_LBRACE] = ACTIONS(4428),
    [anon_sym_DOT] = ACTIONS(4428),
    [anon_sym_AMP] = ACTIONS(4428),
    [anon_sym_DASH] = ACTIONS(4426),
    [anon_sym_DASH_DASH] = ACTIONS(4428),
    [anon_sym_PLUS] = ACTIONS(4426),
    [anon_sym_PLUS_PLUS] = ACTIONS(4428),
    [anon_sym_BANG] = ACTIONS(4428),
    [anon_sym_LPAREN] = ACTIONS(4428),
    [anon_sym_RPAREN] = ACTIONS(4428),
    [anon_sym_LBRACK] = ACTIONS(4428),
    [anon_sym_SEMI] = ACTIONS(4428),
    [anon_sym_DOLLAR] = ACTIONS(4428),
    [anon_sym_STAR] = ACTIONS(4428),
    [anon_sym_TILDE] = ACTIONS(4428),
    [anon_sym_AT] = ACTIONS(4428),
    [sym_bool] = ACTIONS(4426),
    [sym_byte] = ACTIONS(4426),
    [sym_ubyte] = ACTIONS(4426),
    [sym_char] = ACTIONS(4426),
    [sym_short] = ACTIONS(4426),
    [sym_ushort] = ACTIONS(4426),
    [sym_int] = ACTIONS(4426),
    [sym_uint] = ACTIONS(4426),
    [sym_long] = ACTIONS(4426),
    [sym_ulong] = ACTIONS(4426),
    [sym_cent] = ACTIONS(4426),
    [sym_ucent] = ACTIONS(4426),
    [sym_wchar] = ACTIONS(4426),
    [sym_dchar] = ACTIONS(4426),
    [sym_float] = ACTIONS(4426),
    [sym_double] = ACTIONS(4426),
    [sym_real] = ACTIONS(4426),
    [sym_ifloat] = ACTIONS(4426),
    [sym_idouble] = ACTIONS(4426),
    [sym_ireal] = ACTIONS(4426),
    [sym_cfloat] = ACTIONS(4426),
    [sym_cdouble] = ACTIONS(4426),
    [sym_creal] = ACTIONS(4426),
    [sym_size_t] = ACTIONS(4426),
    [sym_ptrdiff_t] = ACTIONS(4426),
    [sym_string] = ACTIONS(4426),
    [sym_cstring] = ACTIONS(4426),
    [sym_dstring] = ACTIONS(4426),
    [sym_wstring] = ACTIONS(4426),
    [sym_noreturn] = ACTIONS(4426),
    [sym_true] = ACTIONS(4426),
    [sym_false] = ACTIONS(4426),
    [sym_null] = ACTIONS(4426),
    [sym_super] = ACTIONS(4426),
    [sym_this] = ACTIONS(4426),
    [sym_abstract] = ACTIONS(4426),
    [sym_alias] = ACTIONS(4426),
    [sym_align] = ACTIONS(4426),
    [sym_asm] = ACTIONS(4426),
    [sym_assert] = ACTIONS(4426),
    [sym_auto] = ACTIONS(4426),
    [sym_break] = ACTIONS(4426),
    [sym_case] = ACTIONS(4426),
    [sym_cast] = ACTIONS(4426),
    [sym_catch] = ACTIONS(4426),
    [sym_class] = ACTIONS(4426),
    [sym_const] = ACTIONS(4426),
    [sym_continue] = ACTIONS(4426),
    [sym_debug] = ACTIONS(4426),
    [sym_default] = ACTIONS(4426),
    [sym_delegate] = ACTIONS(4426),
    [sym_delete] = ACTIONS(4426),
    [sym_deprecated] = ACTIONS(4426),
    [sym_do] = ACTIONS(4426),
    [sym_else] = ACTIONS(4426),
    [sym_enum] = ACTIONS(4426),
    [sym_export] = ACTIONS(4426),
    [sym_extern] = ACTIONS(4426),
    [sym_final] = ACTIONS(4426),
    [sym_finally] = ACTIONS(4426),
    [sym_for] = ACTIONS(4426),
    [sym_foreach] = ACTIONS(4426),
    [sym_foreach_reverse] = ACTIONS(4426),
    [sym_function] = ACTIONS(4426),
    [sym_goto] = ACTIONS(4426),
    [sym_if] = ACTIONS(4426),
    [sym_immutable] = ACTIONS(4426),
    [sym_import] = ACTIONS(4426),
    [sym_in] = ACTIONS(4426),
    [sym_inout] = ACTIONS(4426),
    [sym_interface] = ACTIONS(4426),
    [sym_invariant] = ACTIONS(4426),
    [sym_is] = ACTIONS(4426),
    [sym_mixin] = ACTIONS(4426),
    [sym_new] = ACTIONS(4426),
    [sym_nothrow] = ACTIONS(4426),
    [sym_out] = ACTIONS(4426),
    [sym_override] = ACTIONS(4426),
    [sym_package] = ACTIONS(4426),
    [sym_pragma] = ACTIONS(4426),
    [sym_private] = ACTIONS(4426),
    [sym_protected] = ACTIONS(4426),
    [sym_public] = ACTIONS(4426),
    [sym_pure] = ACTIONS(4426),
    [sym_ref] = ACTIONS(4426),
    [sym_return] = ACTIONS(4426),
    [sym_scope] = ACTIONS(4426),
    [sym_shared] = ACTIONS(4426),
    [sym_static] = ACTIONS(4426),
    [sym_struct] = ACTIONS(4426),
    [sym_switch] = ACTIONS(4426),
    [sym_synchronized] = ACTIONS(4426),
    [sym_template] = ACTIONS(4426),
    [sym_throw] = ACTIONS(4426),
    [sym_try] = ACTIONS(4426),
    [sym_typeid] = ACTIONS(4426),
    [sym_typeof] = ACTIONS(4426),
    [sym_union] = ACTIONS(4426),
    [sym_unittest] = ACTIONS(4426),
    [sym_version] = ACTIONS(4426),
    [sym_while] = ACTIONS(4426),
    [sym_with] = ACTIONS(4426),
    [sym_gshared] = ACTIONS(4426),
    [sym_traits] = ACTIONS(4426),
    [sym_vector] = ACTIONS(4426),
    [sym_void] = ACTIONS(4426),
    [anon_sym_BQUOTE] = ACTIONS(4428),
    [anon_sym_r_DQUOTE] = ACTIONS(4428),
    [anon_sym_x_DQUOTE] = ACTIONS(4428),
    [anon_sym_DQUOTE] = ACTIONS(4428),
    [anon_sym_i_BQUOTE] = ACTIONS(4428),
    [anon_sym_i_DQUOTE] = ACTIONS(4428),
    [anon_sym_iq_LBRACE] = ACTIONS(4428),
    [aux_sym_char_literal_token1] = ACTIONS(4428),
    [anon_sym_SQUOTE] = ACTIONS(4426),
    [anon_sym___DATE__] = ACTIONS(4426),
    [anon_sym___FILE__] = ACTIONS(4426),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4426),
    [anon_sym___FUNCTION__] = ACTIONS(4426),
    [anon_sym___LINE__] = ACTIONS(4426),
    [anon_sym___MODULE__] = ACTIONS(4426),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4426),
    [anon_sym___TIME__] = ACTIONS(4426),
    [anon_sym___TIMESTAMP__] = ACTIONS(4426),
    [anon_sym___VENDOR__] = ACTIONS(4426),
    [anon_sym___VERSION__] = ACTIONS(4426),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4428),
    [sym_float_literal] = ACTIONS(4428),
    [sym__string] = ACTIONS(4428),
  },
  [1387] = {
    [sym_identifier] = ACTIONS(4430),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4432),
    [anon_sym_RBRACE] = ACTIONS(4432),
    [anon_sym_LBRACE] = ACTIONS(4432),
    [anon_sym_DOT] = ACTIONS(4432),
    [anon_sym_AMP] = ACTIONS(4432),
    [anon_sym_DASH] = ACTIONS(4430),
    [anon_sym_DASH_DASH] = ACTIONS(4432),
    [anon_sym_PLUS] = ACTIONS(4430),
    [anon_sym_PLUS_PLUS] = ACTIONS(4432),
    [anon_sym_BANG] = ACTIONS(4432),
    [anon_sym_LPAREN] = ACTIONS(4432),
    [anon_sym_RPAREN] = ACTIONS(4432),
    [anon_sym_LBRACK] = ACTIONS(4432),
    [anon_sym_SEMI] = ACTIONS(4432),
    [anon_sym_DOLLAR] = ACTIONS(4432),
    [anon_sym_STAR] = ACTIONS(4432),
    [anon_sym_TILDE] = ACTIONS(4432),
    [anon_sym_AT] = ACTIONS(4432),
    [sym_bool] = ACTIONS(4430),
    [sym_byte] = ACTIONS(4430),
    [sym_ubyte] = ACTIONS(4430),
    [sym_char] = ACTIONS(4430),
    [sym_short] = ACTIONS(4430),
    [sym_ushort] = ACTIONS(4430),
    [sym_int] = ACTIONS(4430),
    [sym_uint] = ACTIONS(4430),
    [sym_long] = ACTIONS(4430),
    [sym_ulong] = ACTIONS(4430),
    [sym_cent] = ACTIONS(4430),
    [sym_ucent] = ACTIONS(4430),
    [sym_wchar] = ACTIONS(4430),
    [sym_dchar] = ACTIONS(4430),
    [sym_float] = ACTIONS(4430),
    [sym_double] = ACTIONS(4430),
    [sym_real] = ACTIONS(4430),
    [sym_ifloat] = ACTIONS(4430),
    [sym_idouble] = ACTIONS(4430),
    [sym_ireal] = ACTIONS(4430),
    [sym_cfloat] = ACTIONS(4430),
    [sym_cdouble] = ACTIONS(4430),
    [sym_creal] = ACTIONS(4430),
    [sym_size_t] = ACTIONS(4430),
    [sym_ptrdiff_t] = ACTIONS(4430),
    [sym_string] = ACTIONS(4430),
    [sym_cstring] = ACTIONS(4430),
    [sym_dstring] = ACTIONS(4430),
    [sym_wstring] = ACTIONS(4430),
    [sym_noreturn] = ACTIONS(4430),
    [sym_true] = ACTIONS(4430),
    [sym_false] = ACTIONS(4430),
    [sym_null] = ACTIONS(4430),
    [sym_super] = ACTIONS(4430),
    [sym_this] = ACTIONS(4430),
    [sym_abstract] = ACTIONS(4430),
    [sym_alias] = ACTIONS(4430),
    [sym_align] = ACTIONS(4430),
    [sym_asm] = ACTIONS(4430),
    [sym_assert] = ACTIONS(4430),
    [sym_auto] = ACTIONS(4430),
    [sym_break] = ACTIONS(4430),
    [sym_case] = ACTIONS(4430),
    [sym_cast] = ACTIONS(4430),
    [sym_catch] = ACTIONS(4430),
    [sym_class] = ACTIONS(4430),
    [sym_const] = ACTIONS(4430),
    [sym_continue] = ACTIONS(4430),
    [sym_debug] = ACTIONS(4430),
    [sym_default] = ACTIONS(4430),
    [sym_delegate] = ACTIONS(4430),
    [sym_delete] = ACTIONS(4430),
    [sym_deprecated] = ACTIONS(4430),
    [sym_do] = ACTIONS(4430),
    [sym_else] = ACTIONS(4430),
    [sym_enum] = ACTIONS(4430),
    [sym_export] = ACTIONS(4430),
    [sym_extern] = ACTIONS(4430),
    [sym_final] = ACTIONS(4430),
    [sym_finally] = ACTIONS(4430),
    [sym_for] = ACTIONS(4430),
    [sym_foreach] = ACTIONS(4430),
    [sym_foreach_reverse] = ACTIONS(4430),
    [sym_function] = ACTIONS(4430),
    [sym_goto] = ACTIONS(4430),
    [sym_if] = ACTIONS(4430),
    [sym_immutable] = ACTIONS(4430),
    [sym_import] = ACTIONS(4430),
    [sym_in] = ACTIONS(4430),
    [sym_inout] = ACTIONS(4430),
    [sym_interface] = ACTIONS(4430),
    [sym_invariant] = ACTIONS(4430),
    [sym_is] = ACTIONS(4430),
    [sym_mixin] = ACTIONS(4430),
    [sym_new] = ACTIONS(4430),
    [sym_nothrow] = ACTIONS(4430),
    [sym_out] = ACTIONS(4430),
    [sym_override] = ACTIONS(4430),
    [sym_package] = ACTIONS(4430),
    [sym_pragma] = ACTIONS(4430),
    [sym_private] = ACTIONS(4430),
    [sym_protected] = ACTIONS(4430),
    [sym_public] = ACTIONS(4430),
    [sym_pure] = ACTIONS(4430),
    [sym_ref] = ACTIONS(4430),
    [sym_return] = ACTIONS(4430),
    [sym_scope] = ACTIONS(4430),
    [sym_shared] = ACTIONS(4430),
    [sym_static] = ACTIONS(4430),
    [sym_struct] = ACTIONS(4430),
    [sym_switch] = ACTIONS(4430),
    [sym_synchronized] = ACTIONS(4430),
    [sym_template] = ACTIONS(4430),
    [sym_throw] = ACTIONS(4430),
    [sym_try] = ACTIONS(4430),
    [sym_typeid] = ACTIONS(4430),
    [sym_typeof] = ACTIONS(4430),
    [sym_union] = ACTIONS(4430),
    [sym_unittest] = ACTIONS(4430),
    [sym_version] = ACTIONS(4430),
    [sym_while] = ACTIONS(4430),
    [sym_with] = ACTIONS(4430),
    [sym_gshared] = ACTIONS(4430),
    [sym_traits] = ACTIONS(4430),
    [sym_vector] = ACTIONS(4430),
    [sym_void] = ACTIONS(4430),
    [anon_sym_BQUOTE] = ACTIONS(4432),
    [anon_sym_r_DQUOTE] = ACTIONS(4432),
    [anon_sym_x_DQUOTE] = ACTIONS(4432),
    [anon_sym_DQUOTE] = ACTIONS(4432),
    [anon_sym_i_BQUOTE] = ACTIONS(4432),
    [anon_sym_i_DQUOTE] = ACTIONS(4432),
    [anon_sym_iq_LBRACE] = ACTIONS(4432),
    [aux_sym_char_literal_token1] = ACTIONS(4432),
    [anon_sym_SQUOTE] = ACTIONS(4430),
    [anon_sym___DATE__] = ACTIONS(4430),
    [anon_sym___FILE__] = ACTIONS(4430),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4430),
    [anon_sym___FUNCTION__] = ACTIONS(4430),
    [anon_sym___LINE__] = ACTIONS(4430),
    [anon_sym___MODULE__] = ACTIONS(4430),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4430),
    [anon_sym___TIME__] = ACTIONS(4430),
    [anon_sym___TIMESTAMP__] = ACTIONS(4430),
    [anon_sym___VENDOR__] = ACTIONS(4430),
    [anon_sym___VERSION__] = ACTIONS(4430),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4432),
    [sym_float_literal] = ACTIONS(4432),
    [sym__string] = ACTIONS(4432),
  },
  [1388] = {
    [sym_identifier] = ACTIONS(4434),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4436),
    [anon_sym_RBRACE] = ACTIONS(4436),
    [anon_sym_LBRACE] = ACTIONS(4436),
    [anon_sym_DOT] = ACTIONS(4436),
    [anon_sym_AMP] = ACTIONS(4436),
    [anon_sym_DASH] = ACTIONS(4434),
    [anon_sym_DASH_DASH] = ACTIONS(4436),
    [anon_sym_PLUS] = ACTIONS(4434),
    [anon_sym_PLUS_PLUS] = ACTIONS(4436),
    [anon_sym_BANG] = ACTIONS(4436),
    [anon_sym_LPAREN] = ACTIONS(4436),
    [anon_sym_RPAREN] = ACTIONS(4436),
    [anon_sym_LBRACK] = ACTIONS(4436),
    [anon_sym_SEMI] = ACTIONS(4436),
    [anon_sym_DOLLAR] = ACTIONS(4436),
    [anon_sym_STAR] = ACTIONS(4436),
    [anon_sym_TILDE] = ACTIONS(4436),
    [anon_sym_AT] = ACTIONS(4436),
    [sym_bool] = ACTIONS(4434),
    [sym_byte] = ACTIONS(4434),
    [sym_ubyte] = ACTIONS(4434),
    [sym_char] = ACTIONS(4434),
    [sym_short] = ACTIONS(4434),
    [sym_ushort] = ACTIONS(4434),
    [sym_int] = ACTIONS(4434),
    [sym_uint] = ACTIONS(4434),
    [sym_long] = ACTIONS(4434),
    [sym_ulong] = ACTIONS(4434),
    [sym_cent] = ACTIONS(4434),
    [sym_ucent] = ACTIONS(4434),
    [sym_wchar] = ACTIONS(4434),
    [sym_dchar] = ACTIONS(4434),
    [sym_float] = ACTIONS(4434),
    [sym_double] = ACTIONS(4434),
    [sym_real] = ACTIONS(4434),
    [sym_ifloat] = ACTIONS(4434),
    [sym_idouble] = ACTIONS(4434),
    [sym_ireal] = ACTIONS(4434),
    [sym_cfloat] = ACTIONS(4434),
    [sym_cdouble] = ACTIONS(4434),
    [sym_creal] = ACTIONS(4434),
    [sym_size_t] = ACTIONS(4434),
    [sym_ptrdiff_t] = ACTIONS(4434),
    [sym_string] = ACTIONS(4434),
    [sym_cstring] = ACTIONS(4434),
    [sym_dstring] = ACTIONS(4434),
    [sym_wstring] = ACTIONS(4434),
    [sym_noreturn] = ACTIONS(4434),
    [sym_true] = ACTIONS(4434),
    [sym_false] = ACTIONS(4434),
    [sym_null] = ACTIONS(4434),
    [sym_super] = ACTIONS(4434),
    [sym_this] = ACTIONS(4434),
    [sym_abstract] = ACTIONS(4434),
    [sym_alias] = ACTIONS(4434),
    [sym_align] = ACTIONS(4434),
    [sym_asm] = ACTIONS(4434),
    [sym_assert] = ACTIONS(4434),
    [sym_auto] = ACTIONS(4434),
    [sym_break] = ACTIONS(4434),
    [sym_case] = ACTIONS(4434),
    [sym_cast] = ACTIONS(4434),
    [sym_catch] = ACTIONS(4434),
    [sym_class] = ACTIONS(4434),
    [sym_const] = ACTIONS(4434),
    [sym_continue] = ACTIONS(4434),
    [sym_debug] = ACTIONS(4434),
    [sym_default] = ACTIONS(4434),
    [sym_delegate] = ACTIONS(4434),
    [sym_delete] = ACTIONS(4434),
    [sym_deprecated] = ACTIONS(4434),
    [sym_do] = ACTIONS(4434),
    [sym_else] = ACTIONS(4434),
    [sym_enum] = ACTIONS(4434),
    [sym_export] = ACTIONS(4434),
    [sym_extern] = ACTIONS(4434),
    [sym_final] = ACTIONS(4434),
    [sym_finally] = ACTIONS(4434),
    [sym_for] = ACTIONS(4434),
    [sym_foreach] = ACTIONS(4434),
    [sym_foreach_reverse] = ACTIONS(4434),
    [sym_function] = ACTIONS(4434),
    [sym_goto] = ACTIONS(4434),
    [sym_if] = ACTIONS(4434),
    [sym_immutable] = ACTIONS(4434),
    [sym_import] = ACTIONS(4434),
    [sym_in] = ACTIONS(4434),
    [sym_inout] = ACTIONS(4434),
    [sym_interface] = ACTIONS(4434),
    [sym_invariant] = ACTIONS(4434),
    [sym_is] = ACTIONS(4434),
    [sym_mixin] = ACTIONS(4434),
    [sym_new] = ACTIONS(4434),
    [sym_nothrow] = ACTIONS(4434),
    [sym_out] = ACTIONS(4434),
    [sym_override] = ACTIONS(4434),
    [sym_package] = ACTIONS(4434),
    [sym_pragma] = ACTIONS(4434),
    [sym_private] = ACTIONS(4434),
    [sym_protected] = ACTIONS(4434),
    [sym_public] = ACTIONS(4434),
    [sym_pure] = ACTIONS(4434),
    [sym_ref] = ACTIONS(4434),
    [sym_return] = ACTIONS(4434),
    [sym_scope] = ACTIONS(4434),
    [sym_shared] = ACTIONS(4434),
    [sym_static] = ACTIONS(4434),
    [sym_struct] = ACTIONS(4434),
    [sym_switch] = ACTIONS(4434),
    [sym_synchronized] = ACTIONS(4434),
    [sym_template] = ACTIONS(4434),
    [sym_throw] = ACTIONS(4434),
    [sym_try] = ACTIONS(4434),
    [sym_typeid] = ACTIONS(4434),
    [sym_typeof] = ACTIONS(4434),
    [sym_union] = ACTIONS(4434),
    [sym_unittest] = ACTIONS(4434),
    [sym_version] = ACTIONS(4434),
    [sym_while] = ACTIONS(4434),
    [sym_with] = ACTIONS(4434),
    [sym_gshared] = ACTIONS(4434),
    [sym_traits] = ACTIONS(4434),
    [sym_vector] = ACTIONS(4434),
    [sym_void] = ACTIONS(4434),
    [anon_sym_BQUOTE] = ACTIONS(4436),
    [anon_sym_r_DQUOTE] = ACTIONS(4436),
    [anon_sym_x_DQUOTE] = ACTIONS(4436),
    [anon_sym_DQUOTE] = ACTIONS(4436),
    [anon_sym_i_BQUOTE] = ACTIONS(4436),
    [anon_sym_i_DQUOTE] = ACTIONS(4436),
    [anon_sym_iq_LBRACE] = ACTIONS(4436),
    [aux_sym_char_literal_token1] = ACTIONS(4436),
    [anon_sym_SQUOTE] = ACTIONS(4434),
    [anon_sym___DATE__] = ACTIONS(4434),
    [anon_sym___FILE__] = ACTIONS(4434),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4434),
    [anon_sym___FUNCTION__] = ACTIONS(4434),
    [anon_sym___LINE__] = ACTIONS(4434),
    [anon_sym___MODULE__] = ACTIONS(4434),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4434),
    [anon_sym___TIME__] = ACTIONS(4434),
    [anon_sym___TIMESTAMP__] = ACTIONS(4434),
    [anon_sym___VENDOR__] = ACTIONS(4434),
    [anon_sym___VERSION__] = ACTIONS(4434),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4436),
    [sym_float_literal] = ACTIONS(4436),
    [sym__string] = ACTIONS(4436),
  },
  [1389] = {
    [sym_identifier] = ACTIONS(4438),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4440),
    [anon_sym_RBRACE] = ACTIONS(4440),
    [anon_sym_LBRACE] = ACTIONS(4440),
    [anon_sym_DOT] = ACTIONS(4440),
    [anon_sym_AMP] = ACTIONS(4440),
    [anon_sym_DASH] = ACTIONS(4438),
    [anon_sym_DASH_DASH] = ACTIONS(4440),
    [anon_sym_PLUS] = ACTIONS(4438),
    [anon_sym_PLUS_PLUS] = ACTIONS(4440),
    [anon_sym_BANG] = ACTIONS(4440),
    [anon_sym_LPAREN] = ACTIONS(4440),
    [anon_sym_RPAREN] = ACTIONS(4440),
    [anon_sym_LBRACK] = ACTIONS(4440),
    [anon_sym_SEMI] = ACTIONS(4440),
    [anon_sym_DOLLAR] = ACTIONS(4440),
    [anon_sym_STAR] = ACTIONS(4440),
    [anon_sym_TILDE] = ACTIONS(4440),
    [anon_sym_AT] = ACTIONS(4440),
    [sym_bool] = ACTIONS(4438),
    [sym_byte] = ACTIONS(4438),
    [sym_ubyte] = ACTIONS(4438),
    [sym_char] = ACTIONS(4438),
    [sym_short] = ACTIONS(4438),
    [sym_ushort] = ACTIONS(4438),
    [sym_int] = ACTIONS(4438),
    [sym_uint] = ACTIONS(4438),
    [sym_long] = ACTIONS(4438),
    [sym_ulong] = ACTIONS(4438),
    [sym_cent] = ACTIONS(4438),
    [sym_ucent] = ACTIONS(4438),
    [sym_wchar] = ACTIONS(4438),
    [sym_dchar] = ACTIONS(4438),
    [sym_float] = ACTIONS(4438),
    [sym_double] = ACTIONS(4438),
    [sym_real] = ACTIONS(4438),
    [sym_ifloat] = ACTIONS(4438),
    [sym_idouble] = ACTIONS(4438),
    [sym_ireal] = ACTIONS(4438),
    [sym_cfloat] = ACTIONS(4438),
    [sym_cdouble] = ACTIONS(4438),
    [sym_creal] = ACTIONS(4438),
    [sym_size_t] = ACTIONS(4438),
    [sym_ptrdiff_t] = ACTIONS(4438),
    [sym_string] = ACTIONS(4438),
    [sym_cstring] = ACTIONS(4438),
    [sym_dstring] = ACTIONS(4438),
    [sym_wstring] = ACTIONS(4438),
    [sym_noreturn] = ACTIONS(4438),
    [sym_true] = ACTIONS(4438),
    [sym_false] = ACTIONS(4438),
    [sym_null] = ACTIONS(4438),
    [sym_super] = ACTIONS(4438),
    [sym_this] = ACTIONS(4438),
    [sym_abstract] = ACTIONS(4438),
    [sym_alias] = ACTIONS(4438),
    [sym_align] = ACTIONS(4438),
    [sym_asm] = ACTIONS(4438),
    [sym_assert] = ACTIONS(4438),
    [sym_auto] = ACTIONS(4438),
    [sym_break] = ACTIONS(4438),
    [sym_case] = ACTIONS(4438),
    [sym_cast] = ACTIONS(4438),
    [sym_catch] = ACTIONS(4438),
    [sym_class] = ACTIONS(4438),
    [sym_const] = ACTIONS(4438),
    [sym_continue] = ACTIONS(4438),
    [sym_debug] = ACTIONS(4438),
    [sym_default] = ACTIONS(4438),
    [sym_delegate] = ACTIONS(4438),
    [sym_delete] = ACTIONS(4438),
    [sym_deprecated] = ACTIONS(4438),
    [sym_do] = ACTIONS(4438),
    [sym_else] = ACTIONS(4438),
    [sym_enum] = ACTIONS(4438),
    [sym_export] = ACTIONS(4438),
    [sym_extern] = ACTIONS(4438),
    [sym_final] = ACTIONS(4438),
    [sym_finally] = ACTIONS(4438),
    [sym_for] = ACTIONS(4438),
    [sym_foreach] = ACTIONS(4438),
    [sym_foreach_reverse] = ACTIONS(4438),
    [sym_function] = ACTIONS(4438),
    [sym_goto] = ACTIONS(4438),
    [sym_if] = ACTIONS(4438),
    [sym_immutable] = ACTIONS(4438),
    [sym_import] = ACTIONS(4438),
    [sym_in] = ACTIONS(4438),
    [sym_inout] = ACTIONS(4438),
    [sym_interface] = ACTIONS(4438),
    [sym_invariant] = ACTIONS(4438),
    [sym_is] = ACTIONS(4438),
    [sym_mixin] = ACTIONS(4438),
    [sym_new] = ACTIONS(4438),
    [sym_nothrow] = ACTIONS(4438),
    [sym_out] = ACTIONS(4438),
    [sym_override] = ACTIONS(4438),
    [sym_package] = ACTIONS(4438),
    [sym_pragma] = ACTIONS(4438),
    [sym_private] = ACTIONS(4438),
    [sym_protected] = ACTIONS(4438),
    [sym_public] = ACTIONS(4438),
    [sym_pure] = ACTIONS(4438),
    [sym_ref] = ACTIONS(4438),
    [sym_return] = ACTIONS(4438),
    [sym_scope] = ACTIONS(4438),
    [sym_shared] = ACTIONS(4438),
    [sym_static] = ACTIONS(4438),
    [sym_struct] = ACTIONS(4438),
    [sym_switch] = ACTIONS(4438),
    [sym_synchronized] = ACTIONS(4438),
    [sym_template] = ACTIONS(4438),
    [sym_throw] = ACTIONS(4438),
    [sym_try] = ACTIONS(4438),
    [sym_typeid] = ACTIONS(4438),
    [sym_typeof] = ACTIONS(4438),
    [sym_union] = ACTIONS(4438),
    [sym_unittest] = ACTIONS(4438),
    [sym_version] = ACTIONS(4438),
    [sym_while] = ACTIONS(4438),
    [sym_with] = ACTIONS(4438),
    [sym_gshared] = ACTIONS(4438),
    [sym_traits] = ACTIONS(4438),
    [sym_vector] = ACTIONS(4438),
    [sym_void] = ACTIONS(4438),
    [anon_sym_BQUOTE] = ACTIONS(4440),
    [anon_sym_r_DQUOTE] = ACTIONS(4440),
    [anon_sym_x_DQUOTE] = ACTIONS(4440),
    [anon_sym_DQUOTE] = ACTIONS(4440),
    [anon_sym_i_BQUOTE] = ACTIONS(4440),
    [anon_sym_i_DQUOTE] = ACTIONS(4440),
    [anon_sym_iq_LBRACE] = ACTIONS(4440),
    [aux_sym_char_literal_token1] = ACTIONS(4440),
    [anon_sym_SQUOTE] = ACTIONS(4438),
    [anon_sym___DATE__] = ACTIONS(4438),
    [anon_sym___FILE__] = ACTIONS(4438),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4438),
    [anon_sym___FUNCTION__] = ACTIONS(4438),
    [anon_sym___LINE__] = ACTIONS(4438),
    [anon_sym___MODULE__] = ACTIONS(4438),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4438),
    [anon_sym___TIME__] = ACTIONS(4438),
    [anon_sym___TIMESTAMP__] = ACTIONS(4438),
    [anon_sym___VENDOR__] = ACTIONS(4438),
    [anon_sym___VERSION__] = ACTIONS(4438),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4440),
    [sym_float_literal] = ACTIONS(4440),
    [sym__string] = ACTIONS(4440),
  },
  [1390] = {
    [sym_identifier] = ACTIONS(4442),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4444),
    [anon_sym_RBRACE] = ACTIONS(4444),
    [anon_sym_LBRACE] = ACTIONS(4444),
    [anon_sym_DOT] = ACTIONS(4444),
    [anon_sym_AMP] = ACTIONS(4444),
    [anon_sym_DASH] = ACTIONS(4442),
    [anon_sym_DASH_DASH] = ACTIONS(4444),
    [anon_sym_PLUS] = ACTIONS(4442),
    [anon_sym_PLUS_PLUS] = ACTIONS(4444),
    [anon_sym_BANG] = ACTIONS(4444),
    [anon_sym_LPAREN] = ACTIONS(4444),
    [anon_sym_RPAREN] = ACTIONS(4444),
    [anon_sym_LBRACK] = ACTIONS(4444),
    [anon_sym_SEMI] = ACTIONS(4444),
    [anon_sym_DOLLAR] = ACTIONS(4444),
    [anon_sym_STAR] = ACTIONS(4444),
    [anon_sym_TILDE] = ACTIONS(4444),
    [anon_sym_AT] = ACTIONS(4444),
    [sym_bool] = ACTIONS(4442),
    [sym_byte] = ACTIONS(4442),
    [sym_ubyte] = ACTIONS(4442),
    [sym_char] = ACTIONS(4442),
    [sym_short] = ACTIONS(4442),
    [sym_ushort] = ACTIONS(4442),
    [sym_int] = ACTIONS(4442),
    [sym_uint] = ACTIONS(4442),
    [sym_long] = ACTIONS(4442),
    [sym_ulong] = ACTIONS(4442),
    [sym_cent] = ACTIONS(4442),
    [sym_ucent] = ACTIONS(4442),
    [sym_wchar] = ACTIONS(4442),
    [sym_dchar] = ACTIONS(4442),
    [sym_float] = ACTIONS(4442),
    [sym_double] = ACTIONS(4442),
    [sym_real] = ACTIONS(4442),
    [sym_ifloat] = ACTIONS(4442),
    [sym_idouble] = ACTIONS(4442),
    [sym_ireal] = ACTIONS(4442),
    [sym_cfloat] = ACTIONS(4442),
    [sym_cdouble] = ACTIONS(4442),
    [sym_creal] = ACTIONS(4442),
    [sym_size_t] = ACTIONS(4442),
    [sym_ptrdiff_t] = ACTIONS(4442),
    [sym_string] = ACTIONS(4442),
    [sym_cstring] = ACTIONS(4442),
    [sym_dstring] = ACTIONS(4442),
    [sym_wstring] = ACTIONS(4442),
    [sym_noreturn] = ACTIONS(4442),
    [sym_true] = ACTIONS(4442),
    [sym_false] = ACTIONS(4442),
    [sym_null] = ACTIONS(4442),
    [sym_super] = ACTIONS(4442),
    [sym_this] = ACTIONS(4442),
    [sym_abstract] = ACTIONS(4442),
    [sym_alias] = ACTIONS(4442),
    [sym_align] = ACTIONS(4442),
    [sym_asm] = ACTIONS(4442),
    [sym_assert] = ACTIONS(4442),
    [sym_auto] = ACTIONS(4442),
    [sym_break] = ACTIONS(4442),
    [sym_case] = ACTIONS(4442),
    [sym_cast] = ACTIONS(4442),
    [sym_catch] = ACTIONS(4442),
    [sym_class] = ACTIONS(4442),
    [sym_const] = ACTIONS(4442),
    [sym_continue] = ACTIONS(4442),
    [sym_debug] = ACTIONS(4442),
    [sym_default] = ACTIONS(4442),
    [sym_delegate] = ACTIONS(4442),
    [sym_delete] = ACTIONS(4442),
    [sym_deprecated] = ACTIONS(4442),
    [sym_do] = ACTIONS(4442),
    [sym_else] = ACTIONS(4442),
    [sym_enum] = ACTIONS(4442),
    [sym_export] = ACTIONS(4442),
    [sym_extern] = ACTIONS(4442),
    [sym_final] = ACTIONS(4442),
    [sym_finally] = ACTIONS(4442),
    [sym_for] = ACTIONS(4442),
    [sym_foreach] = ACTIONS(4442),
    [sym_foreach_reverse] = ACTIONS(4442),
    [sym_function] = ACTIONS(4442),
    [sym_goto] = ACTIONS(4442),
    [sym_if] = ACTIONS(4442),
    [sym_immutable] = ACTIONS(4442),
    [sym_import] = ACTIONS(4442),
    [sym_in] = ACTIONS(4442),
    [sym_inout] = ACTIONS(4442),
    [sym_interface] = ACTIONS(4442),
    [sym_invariant] = ACTIONS(4442),
    [sym_is] = ACTIONS(4442),
    [sym_mixin] = ACTIONS(4442),
    [sym_new] = ACTIONS(4442),
    [sym_nothrow] = ACTIONS(4442),
    [sym_out] = ACTIONS(4442),
    [sym_override] = ACTIONS(4442),
    [sym_package] = ACTIONS(4442),
    [sym_pragma] = ACTIONS(4442),
    [sym_private] = ACTIONS(4442),
    [sym_protected] = ACTIONS(4442),
    [sym_public] = ACTIONS(4442),
    [sym_pure] = ACTIONS(4442),
    [sym_ref] = ACTIONS(4442),
    [sym_return] = ACTIONS(4442),
    [sym_scope] = ACTIONS(4442),
    [sym_shared] = ACTIONS(4442),
    [sym_static] = ACTIONS(4442),
    [sym_struct] = ACTIONS(4442),
    [sym_switch] = ACTIONS(4442),
    [sym_synchronized] = ACTIONS(4442),
    [sym_template] = ACTIONS(4442),
    [sym_throw] = ACTIONS(4442),
    [sym_try] = ACTIONS(4442),
    [sym_typeid] = ACTIONS(4442),
    [sym_typeof] = ACTIONS(4442),
    [sym_union] = ACTIONS(4442),
    [sym_unittest] = ACTIONS(4442),
    [sym_version] = ACTIONS(4442),
    [sym_while] = ACTIONS(4442),
    [sym_with] = ACTIONS(4442),
    [sym_gshared] = ACTIONS(4442),
    [sym_traits] = ACTIONS(4442),
    [sym_vector] = ACTIONS(4442),
    [sym_void] = ACTIONS(4442),
    [anon_sym_BQUOTE] = ACTIONS(4444),
    [anon_sym_r_DQUOTE] = ACTIONS(4444),
    [anon_sym_x_DQUOTE] = ACTIONS(4444),
    [anon_sym_DQUOTE] = ACTIONS(4444),
    [anon_sym_i_BQUOTE] = ACTIONS(4444),
    [anon_sym_i_DQUOTE] = ACTIONS(4444),
    [anon_sym_iq_LBRACE] = ACTIONS(4444),
    [aux_sym_char_literal_token1] = ACTIONS(4444),
    [anon_sym_SQUOTE] = ACTIONS(4442),
    [anon_sym___DATE__] = ACTIONS(4442),
    [anon_sym___FILE__] = ACTIONS(4442),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4442),
    [anon_sym___FUNCTION__] = ACTIONS(4442),
    [anon_sym___LINE__] = ACTIONS(4442),
    [anon_sym___MODULE__] = ACTIONS(4442),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4442),
    [anon_sym___TIME__] = ACTIONS(4442),
    [anon_sym___TIMESTAMP__] = ACTIONS(4442),
    [anon_sym___VENDOR__] = ACTIONS(4442),
    [anon_sym___VERSION__] = ACTIONS(4442),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4444),
    [sym_float_literal] = ACTIONS(4444),
    [sym__string] = ACTIONS(4444),
  },
  [1391] = {
    [sym_identifier] = ACTIONS(4446),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4448),
    [anon_sym_RBRACE] = ACTIONS(4448),
    [anon_sym_LBRACE] = ACTIONS(4448),
    [anon_sym_DOT] = ACTIONS(4448),
    [anon_sym_AMP] = ACTIONS(4448),
    [anon_sym_DASH] = ACTIONS(4446),
    [anon_sym_DASH_DASH] = ACTIONS(4448),
    [anon_sym_PLUS] = ACTIONS(4446),
    [anon_sym_PLUS_PLUS] = ACTIONS(4448),
    [anon_sym_BANG] = ACTIONS(4448),
    [anon_sym_LPAREN] = ACTIONS(4448),
    [anon_sym_RPAREN] = ACTIONS(4448),
    [anon_sym_LBRACK] = ACTIONS(4448),
    [anon_sym_SEMI] = ACTIONS(4448),
    [anon_sym_DOLLAR] = ACTIONS(4448),
    [anon_sym_STAR] = ACTIONS(4448),
    [anon_sym_TILDE] = ACTIONS(4448),
    [anon_sym_AT] = ACTIONS(4448),
    [sym_bool] = ACTIONS(4446),
    [sym_byte] = ACTIONS(4446),
    [sym_ubyte] = ACTIONS(4446),
    [sym_char] = ACTIONS(4446),
    [sym_short] = ACTIONS(4446),
    [sym_ushort] = ACTIONS(4446),
    [sym_int] = ACTIONS(4446),
    [sym_uint] = ACTIONS(4446),
    [sym_long] = ACTIONS(4446),
    [sym_ulong] = ACTIONS(4446),
    [sym_cent] = ACTIONS(4446),
    [sym_ucent] = ACTIONS(4446),
    [sym_wchar] = ACTIONS(4446),
    [sym_dchar] = ACTIONS(4446),
    [sym_float] = ACTIONS(4446),
    [sym_double] = ACTIONS(4446),
    [sym_real] = ACTIONS(4446),
    [sym_ifloat] = ACTIONS(4446),
    [sym_idouble] = ACTIONS(4446),
    [sym_ireal] = ACTIONS(4446),
    [sym_cfloat] = ACTIONS(4446),
    [sym_cdouble] = ACTIONS(4446),
    [sym_creal] = ACTIONS(4446),
    [sym_size_t] = ACTIONS(4446),
    [sym_ptrdiff_t] = ACTIONS(4446),
    [sym_string] = ACTIONS(4446),
    [sym_cstring] = ACTIONS(4446),
    [sym_dstring] = ACTIONS(4446),
    [sym_wstring] = ACTIONS(4446),
    [sym_noreturn] = ACTIONS(4446),
    [sym_true] = ACTIONS(4446),
    [sym_false] = ACTIONS(4446),
    [sym_null] = ACTIONS(4446),
    [sym_super] = ACTIONS(4446),
    [sym_this] = ACTIONS(4446),
    [sym_abstract] = ACTIONS(4446),
    [sym_alias] = ACTIONS(4446),
    [sym_align] = ACTIONS(4446),
    [sym_asm] = ACTIONS(4446),
    [sym_assert] = ACTIONS(4446),
    [sym_auto] = ACTIONS(4446),
    [sym_break] = ACTIONS(4446),
    [sym_case] = ACTIONS(4446),
    [sym_cast] = ACTIONS(4446),
    [sym_catch] = ACTIONS(4446),
    [sym_class] = ACTIONS(4446),
    [sym_const] = ACTIONS(4446),
    [sym_continue] = ACTIONS(4446),
    [sym_debug] = ACTIONS(4446),
    [sym_default] = ACTIONS(4446),
    [sym_delegate] = ACTIONS(4446),
    [sym_delete] = ACTIONS(4446),
    [sym_deprecated] = ACTIONS(4446),
    [sym_do] = ACTIONS(4446),
    [sym_else] = ACTIONS(4450),
    [sym_enum] = ACTIONS(4446),
    [sym_export] = ACTIONS(4446),
    [sym_extern] = ACTIONS(4446),
    [sym_final] = ACTIONS(4446),
    [sym_finally] = ACTIONS(4446),
    [sym_for] = ACTIONS(4446),
    [sym_foreach] = ACTIONS(4446),
    [sym_foreach_reverse] = ACTIONS(4446),
    [sym_function] = ACTIONS(4446),
    [sym_goto] = ACTIONS(4446),
    [sym_if] = ACTIONS(4446),
    [sym_immutable] = ACTIONS(4446),
    [sym_import] = ACTIONS(4446),
    [sym_in] = ACTIONS(4446),
    [sym_inout] = ACTIONS(4446),
    [sym_interface] = ACTIONS(4446),
    [sym_invariant] = ACTIONS(4446),
    [sym_is] = ACTIONS(4446),
    [sym_mixin] = ACTIONS(4446),
    [sym_new] = ACTIONS(4446),
    [sym_nothrow] = ACTIONS(4446),
    [sym_out] = ACTIONS(4446),
    [sym_override] = ACTIONS(4446),
    [sym_package] = ACTIONS(4446),
    [sym_pragma] = ACTIONS(4446),
    [sym_private] = ACTIONS(4446),
    [sym_protected] = ACTIONS(4446),
    [sym_public] = ACTIONS(4446),
    [sym_pure] = ACTIONS(4446),
    [sym_ref] = ACTIONS(4446),
    [sym_return] = ACTIONS(4446),
    [sym_scope] = ACTIONS(4446),
    [sym_shared] = ACTIONS(4446),
    [sym_static] = ACTIONS(4446),
    [sym_struct] = ACTIONS(4446),
    [sym_switch] = ACTIONS(4446),
    [sym_synchronized] = ACTIONS(4446),
    [sym_template] = ACTIONS(4446),
    [sym_throw] = ACTIONS(4446),
    [sym_try] = ACTIONS(4446),
    [sym_typeid] = ACTIONS(4446),
    [sym_typeof] = ACTIONS(4446),
    [sym_union] = ACTIONS(4446),
    [sym_unittest] = ACTIONS(4446),
    [sym_version] = ACTIONS(4446),
    [sym_while] = ACTIONS(4446),
    [sym_with] = ACTIONS(4446),
    [sym_gshared] = ACTIONS(4446),
    [sym_traits] = ACTIONS(4446),
    [sym_vector] = ACTIONS(4446),
    [sym_void] = ACTIONS(4446),
    [anon_sym_BQUOTE] = ACTIONS(4448),
    [anon_sym_r_DQUOTE] = ACTIONS(4448),
    [anon_sym_x_DQUOTE] = ACTIONS(4448),
    [anon_sym_DQUOTE] = ACTIONS(4448),
    [anon_sym_i_BQUOTE] = ACTIONS(4448),
    [anon_sym_i_DQUOTE] = ACTIONS(4448),
    [anon_sym_iq_LBRACE] = ACTIONS(4448),
    [aux_sym_char_literal_token1] = ACTIONS(4448),
    [anon_sym_SQUOTE] = ACTIONS(4446),
    [anon_sym___DATE__] = ACTIONS(4446),
    [anon_sym___FILE__] = ACTIONS(4446),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4446),
    [anon_sym___FUNCTION__] = ACTIONS(4446),
    [anon_sym___LINE__] = ACTIONS(4446),
    [anon_sym___MODULE__] = ACTIONS(4446),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4446),
    [anon_sym___TIME__] = ACTIONS(4446),
    [anon_sym___TIMESTAMP__] = ACTIONS(4446),
    [anon_sym___VENDOR__] = ACTIONS(4446),
    [anon_sym___VERSION__] = ACTIONS(4446),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4448),
    [sym_float_literal] = ACTIONS(4448),
    [sym__string] = ACTIONS(4448),
  },
  [1392] = {
    [sym_identifier] = ACTIONS(4452),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4454),
    [anon_sym_RBRACE] = ACTIONS(4454),
    [anon_sym_LBRACE] = ACTIONS(4454),
    [anon_sym_DOT] = ACTIONS(4454),
    [anon_sym_AMP] = ACTIONS(4454),
    [anon_sym_DASH] = ACTIONS(4452),
    [anon_sym_DASH_DASH] = ACTIONS(4454),
    [anon_sym_PLUS] = ACTIONS(4452),
    [anon_sym_PLUS_PLUS] = ACTIONS(4454),
    [anon_sym_BANG] = ACTIONS(4454),
    [anon_sym_LPAREN] = ACTIONS(4454),
    [anon_sym_RPAREN] = ACTIONS(4454),
    [anon_sym_LBRACK] = ACTIONS(4454),
    [anon_sym_SEMI] = ACTIONS(4454),
    [anon_sym_DOLLAR] = ACTIONS(4454),
    [anon_sym_STAR] = ACTIONS(4454),
    [anon_sym_TILDE] = ACTIONS(4454),
    [anon_sym_AT] = ACTIONS(4454),
    [sym_bool] = ACTIONS(4452),
    [sym_byte] = ACTIONS(4452),
    [sym_ubyte] = ACTIONS(4452),
    [sym_char] = ACTIONS(4452),
    [sym_short] = ACTIONS(4452),
    [sym_ushort] = ACTIONS(4452),
    [sym_int] = ACTIONS(4452),
    [sym_uint] = ACTIONS(4452),
    [sym_long] = ACTIONS(4452),
    [sym_ulong] = ACTIONS(4452),
    [sym_cent] = ACTIONS(4452),
    [sym_ucent] = ACTIONS(4452),
    [sym_wchar] = ACTIONS(4452),
    [sym_dchar] = ACTIONS(4452),
    [sym_float] = ACTIONS(4452),
    [sym_double] = ACTIONS(4452),
    [sym_real] = ACTIONS(4452),
    [sym_ifloat] = ACTIONS(4452),
    [sym_idouble] = ACTIONS(4452),
    [sym_ireal] = ACTIONS(4452),
    [sym_cfloat] = ACTIONS(4452),
    [sym_cdouble] = ACTIONS(4452),
    [sym_creal] = ACTIONS(4452),
    [sym_size_t] = ACTIONS(4452),
    [sym_ptrdiff_t] = ACTIONS(4452),
    [sym_string] = ACTIONS(4452),
    [sym_cstring] = ACTIONS(4452),
    [sym_dstring] = ACTIONS(4452),
    [sym_wstring] = ACTIONS(4452),
    [sym_noreturn] = ACTIONS(4452),
    [sym_true] = ACTIONS(4452),
    [sym_false] = ACTIONS(4452),
    [sym_null] = ACTIONS(4452),
    [sym_super] = ACTIONS(4452),
    [sym_this] = ACTIONS(4452),
    [sym_abstract] = ACTIONS(4452),
    [sym_alias] = ACTIONS(4452),
    [sym_align] = ACTIONS(4452),
    [sym_asm] = ACTIONS(4452),
    [sym_assert] = ACTIONS(4452),
    [sym_auto] = ACTIONS(4452),
    [sym_break] = ACTIONS(4452),
    [sym_case] = ACTIONS(4452),
    [sym_cast] = ACTIONS(4452),
    [sym_catch] = ACTIONS(4452),
    [sym_class] = ACTIONS(4452),
    [sym_const] = ACTIONS(4452),
    [sym_continue] = ACTIONS(4452),
    [sym_debug] = ACTIONS(4452),
    [sym_default] = ACTIONS(4452),
    [sym_delegate] = ACTIONS(4452),
    [sym_delete] = ACTIONS(4452),
    [sym_deprecated] = ACTIONS(4452),
    [sym_do] = ACTIONS(4452),
    [sym_else] = ACTIONS(4452),
    [sym_enum] = ACTIONS(4452),
    [sym_export] = ACTIONS(4452),
    [sym_extern] = ACTIONS(4452),
    [sym_final] = ACTIONS(4452),
    [sym_finally] = ACTIONS(4452),
    [sym_for] = ACTIONS(4452),
    [sym_foreach] = ACTIONS(4452),
    [sym_foreach_reverse] = ACTIONS(4452),
    [sym_function] = ACTIONS(4452),
    [sym_goto] = ACTIONS(4452),
    [sym_if] = ACTIONS(4452),
    [sym_immutable] = ACTIONS(4452),
    [sym_import] = ACTIONS(4452),
    [sym_in] = ACTIONS(4452),
    [sym_inout] = ACTIONS(4452),
    [sym_interface] = ACTIONS(4452),
    [sym_invariant] = ACTIONS(4452),
    [sym_is] = ACTIONS(4452),
    [sym_mixin] = ACTIONS(4452),
    [sym_new] = ACTIONS(4452),
    [sym_nothrow] = ACTIONS(4452),
    [sym_out] = ACTIONS(4452),
    [sym_override] = ACTIONS(4452),
    [sym_package] = ACTIONS(4452),
    [sym_pragma] = ACTIONS(4452),
    [sym_private] = ACTIONS(4452),
    [sym_protected] = ACTIONS(4452),
    [sym_public] = ACTIONS(4452),
    [sym_pure] = ACTIONS(4452),
    [sym_ref] = ACTIONS(4452),
    [sym_return] = ACTIONS(4452),
    [sym_scope] = ACTIONS(4452),
    [sym_shared] = ACTIONS(4452),
    [sym_static] = ACTIONS(4452),
    [sym_struct] = ACTIONS(4452),
    [sym_switch] = ACTIONS(4452),
    [sym_synchronized] = ACTIONS(4452),
    [sym_template] = ACTIONS(4452),
    [sym_throw] = ACTIONS(4452),
    [sym_try] = ACTIONS(4452),
    [sym_typeid] = ACTIONS(4452),
    [sym_typeof] = ACTIONS(4452),
    [sym_union] = ACTIONS(4452),
    [sym_unittest] = ACTIONS(4452),
    [sym_version] = ACTIONS(4452),
    [sym_while] = ACTIONS(4452),
    [sym_with] = ACTIONS(4452),
    [sym_gshared] = ACTIONS(4452),
    [sym_traits] = ACTIONS(4452),
    [sym_vector] = ACTIONS(4452),
    [sym_void] = ACTIONS(4452),
    [anon_sym_BQUOTE] = ACTIONS(4454),
    [anon_sym_r_DQUOTE] = ACTIONS(4454),
    [anon_sym_x_DQUOTE] = ACTIONS(4454),
    [anon_sym_DQUOTE] = ACTIONS(4454),
    [anon_sym_i_BQUOTE] = ACTIONS(4454),
    [anon_sym_i_DQUOTE] = ACTIONS(4454),
    [anon_sym_iq_LBRACE] = ACTIONS(4454),
    [aux_sym_char_literal_token1] = ACTIONS(4454),
    [anon_sym_SQUOTE] = ACTIONS(4452),
    [anon_sym___DATE__] = ACTIONS(4452),
    [anon_sym___FILE__] = ACTIONS(4452),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4452),
    [anon_sym___FUNCTION__] = ACTIONS(4452),
    [anon_sym___LINE__] = ACTIONS(4452),
    [anon_sym___MODULE__] = ACTIONS(4452),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4452),
    [anon_sym___TIME__] = ACTIONS(4452),
    [anon_sym___TIMESTAMP__] = ACTIONS(4452),
    [anon_sym___VENDOR__] = ACTIONS(4452),
    [anon_sym___VERSION__] = ACTIONS(4452),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4454),
    [sym_float_literal] = ACTIONS(4454),
    [sym__string] = ACTIONS(4454),
  },
  [1393] = {
    [sym_identifier] = ACTIONS(4456),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4458),
    [anon_sym_RBRACE] = ACTIONS(4458),
    [anon_sym_LBRACE] = ACTIONS(4458),
    [anon_sym_DOT] = ACTIONS(4458),
    [anon_sym_AMP] = ACTIONS(4458),
    [anon_sym_DASH] = ACTIONS(4456),
    [anon_sym_DASH_DASH] = ACTIONS(4458),
    [anon_sym_PLUS] = ACTIONS(4456),
    [anon_sym_PLUS_PLUS] = ACTIONS(4458),
    [anon_sym_BANG] = ACTIONS(4458),
    [anon_sym_LPAREN] = ACTIONS(4458),
    [anon_sym_RPAREN] = ACTIONS(4458),
    [anon_sym_LBRACK] = ACTIONS(4458),
    [anon_sym_SEMI] = ACTIONS(4458),
    [anon_sym_DOLLAR] = ACTIONS(4458),
    [anon_sym_STAR] = ACTIONS(4458),
    [anon_sym_TILDE] = ACTIONS(4458),
    [anon_sym_AT] = ACTIONS(4458),
    [sym_bool] = ACTIONS(4456),
    [sym_byte] = ACTIONS(4456),
    [sym_ubyte] = ACTIONS(4456),
    [sym_char] = ACTIONS(4456),
    [sym_short] = ACTIONS(4456),
    [sym_ushort] = ACTIONS(4456),
    [sym_int] = ACTIONS(4456),
    [sym_uint] = ACTIONS(4456),
    [sym_long] = ACTIONS(4456),
    [sym_ulong] = ACTIONS(4456),
    [sym_cent] = ACTIONS(4456),
    [sym_ucent] = ACTIONS(4456),
    [sym_wchar] = ACTIONS(4456),
    [sym_dchar] = ACTIONS(4456),
    [sym_float] = ACTIONS(4456),
    [sym_double] = ACTIONS(4456),
    [sym_real] = ACTIONS(4456),
    [sym_ifloat] = ACTIONS(4456),
    [sym_idouble] = ACTIONS(4456),
    [sym_ireal] = ACTIONS(4456),
    [sym_cfloat] = ACTIONS(4456),
    [sym_cdouble] = ACTIONS(4456),
    [sym_creal] = ACTIONS(4456),
    [sym_size_t] = ACTIONS(4456),
    [sym_ptrdiff_t] = ACTIONS(4456),
    [sym_string] = ACTIONS(4456),
    [sym_cstring] = ACTIONS(4456),
    [sym_dstring] = ACTIONS(4456),
    [sym_wstring] = ACTIONS(4456),
    [sym_noreturn] = ACTIONS(4456),
    [sym_true] = ACTIONS(4456),
    [sym_false] = ACTIONS(4456),
    [sym_null] = ACTIONS(4456),
    [sym_super] = ACTIONS(4456),
    [sym_this] = ACTIONS(4456),
    [sym_abstract] = ACTIONS(4456),
    [sym_alias] = ACTIONS(4456),
    [sym_align] = ACTIONS(4456),
    [sym_asm] = ACTIONS(4456),
    [sym_assert] = ACTIONS(4456),
    [sym_auto] = ACTIONS(4456),
    [sym_break] = ACTIONS(4456),
    [sym_case] = ACTIONS(4456),
    [sym_cast] = ACTIONS(4456),
    [sym_catch] = ACTIONS(4456),
    [sym_class] = ACTIONS(4456),
    [sym_const] = ACTIONS(4456),
    [sym_continue] = ACTIONS(4456),
    [sym_debug] = ACTIONS(4456),
    [sym_default] = ACTIONS(4456),
    [sym_delegate] = ACTIONS(4456),
    [sym_delete] = ACTIONS(4456),
    [sym_deprecated] = ACTIONS(4456),
    [sym_do] = ACTIONS(4456),
    [sym_else] = ACTIONS(4456),
    [sym_enum] = ACTIONS(4456),
    [sym_export] = ACTIONS(4456),
    [sym_extern] = ACTIONS(4456),
    [sym_final] = ACTIONS(4456),
    [sym_finally] = ACTIONS(4456),
    [sym_for] = ACTIONS(4456),
    [sym_foreach] = ACTIONS(4456),
    [sym_foreach_reverse] = ACTIONS(4456),
    [sym_function] = ACTIONS(4456),
    [sym_goto] = ACTIONS(4456),
    [sym_if] = ACTIONS(4456),
    [sym_immutable] = ACTIONS(4456),
    [sym_import] = ACTIONS(4456),
    [sym_in] = ACTIONS(4456),
    [sym_inout] = ACTIONS(4456),
    [sym_interface] = ACTIONS(4456),
    [sym_invariant] = ACTIONS(4456),
    [sym_is] = ACTIONS(4456),
    [sym_mixin] = ACTIONS(4456),
    [sym_new] = ACTIONS(4456),
    [sym_nothrow] = ACTIONS(4456),
    [sym_out] = ACTIONS(4456),
    [sym_override] = ACTIONS(4456),
    [sym_package] = ACTIONS(4456),
    [sym_pragma] = ACTIONS(4456),
    [sym_private] = ACTIONS(4456),
    [sym_protected] = ACTIONS(4456),
    [sym_public] = ACTIONS(4456),
    [sym_pure] = ACTIONS(4456),
    [sym_ref] = ACTIONS(4456),
    [sym_return] = ACTIONS(4456),
    [sym_scope] = ACTIONS(4456),
    [sym_shared] = ACTIONS(4456),
    [sym_static] = ACTIONS(4456),
    [sym_struct] = ACTIONS(4456),
    [sym_switch] = ACTIONS(4456),
    [sym_synchronized] = ACTIONS(4456),
    [sym_template] = ACTIONS(4456),
    [sym_throw] = ACTIONS(4456),
    [sym_try] = ACTIONS(4456),
    [sym_typeid] = ACTIONS(4456),
    [sym_typeof] = ACTIONS(4456),
    [sym_union] = ACTIONS(4456),
    [sym_unittest] = ACTIONS(4456),
    [sym_version] = ACTIONS(4456),
    [sym_while] = ACTIONS(4456),
    [sym_with] = ACTIONS(4456),
    [sym_gshared] = ACTIONS(4456),
    [sym_traits] = ACTIONS(4456),
    [sym_vector] = ACTIONS(4456),
    [sym_void] = ACTIONS(4456),
    [anon_sym_BQUOTE] = ACTIONS(4458),
    [anon_sym_r_DQUOTE] = ACTIONS(4458),
    [anon_sym_x_DQUOTE] = ACTIONS(4458),
    [anon_sym_DQUOTE] = ACTIONS(4458),
    [anon_sym_i_BQUOTE] = ACTIONS(4458),
    [anon_sym_i_DQUOTE] = ACTIONS(4458),
    [anon_sym_iq_LBRACE] = ACTIONS(4458),
    [aux_sym_char_literal_token1] = ACTIONS(4458),
    [anon_sym_SQUOTE] = ACTIONS(4456),
    [anon_sym___DATE__] = ACTIONS(4456),
    [anon_sym___FILE__] = ACTIONS(4456),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4456),
    [anon_sym___FUNCTION__] = ACTIONS(4456),
    [anon_sym___LINE__] = ACTIONS(4456),
    [anon_sym___MODULE__] = ACTIONS(4456),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4456),
    [anon_sym___TIME__] = ACTIONS(4456),
    [anon_sym___TIMESTAMP__] = ACTIONS(4456),
    [anon_sym___VENDOR__] = ACTIONS(4456),
    [anon_sym___VERSION__] = ACTIONS(4456),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4458),
    [sym_float_literal] = ACTIONS(4458),
    [sym__string] = ACTIONS(4458),
  },
  [1394] = {
    [sym_identifier] = ACTIONS(4460),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4462),
    [anon_sym_RBRACE] = ACTIONS(4462),
    [anon_sym_LBRACE] = ACTIONS(4462),
    [anon_sym_DOT] = ACTIONS(4462),
    [anon_sym_AMP] = ACTIONS(4462),
    [anon_sym_DASH] = ACTIONS(4460),
    [anon_sym_DASH_DASH] = ACTIONS(4462),
    [anon_sym_PLUS] = ACTIONS(4460),
    [anon_sym_PLUS_PLUS] = ACTIONS(4462),
    [anon_sym_BANG] = ACTIONS(4462),
    [anon_sym_LPAREN] = ACTIONS(4462),
    [anon_sym_RPAREN] = ACTIONS(4462),
    [anon_sym_LBRACK] = ACTIONS(4462),
    [anon_sym_SEMI] = ACTIONS(4462),
    [anon_sym_DOLLAR] = ACTIONS(4462),
    [anon_sym_STAR] = ACTIONS(4462),
    [anon_sym_TILDE] = ACTIONS(4462),
    [anon_sym_AT] = ACTIONS(4462),
    [sym_bool] = ACTIONS(4460),
    [sym_byte] = ACTIONS(4460),
    [sym_ubyte] = ACTIONS(4460),
    [sym_char] = ACTIONS(4460),
    [sym_short] = ACTIONS(4460),
    [sym_ushort] = ACTIONS(4460),
    [sym_int] = ACTIONS(4460),
    [sym_uint] = ACTIONS(4460),
    [sym_long] = ACTIONS(4460),
    [sym_ulong] = ACTIONS(4460),
    [sym_cent] = ACTIONS(4460),
    [sym_ucent] = ACTIONS(4460),
    [sym_wchar] = ACTIONS(4460),
    [sym_dchar] = ACTIONS(4460),
    [sym_float] = ACTIONS(4460),
    [sym_double] = ACTIONS(4460),
    [sym_real] = ACTIONS(4460),
    [sym_ifloat] = ACTIONS(4460),
    [sym_idouble] = ACTIONS(4460),
    [sym_ireal] = ACTIONS(4460),
    [sym_cfloat] = ACTIONS(4460),
    [sym_cdouble] = ACTIONS(4460),
    [sym_creal] = ACTIONS(4460),
    [sym_size_t] = ACTIONS(4460),
    [sym_ptrdiff_t] = ACTIONS(4460),
    [sym_string] = ACTIONS(4460),
    [sym_cstring] = ACTIONS(4460),
    [sym_dstring] = ACTIONS(4460),
    [sym_wstring] = ACTIONS(4460),
    [sym_noreturn] = ACTIONS(4460),
    [sym_true] = ACTIONS(4460),
    [sym_false] = ACTIONS(4460),
    [sym_null] = ACTIONS(4460),
    [sym_super] = ACTIONS(4460),
    [sym_this] = ACTIONS(4460),
    [sym_abstract] = ACTIONS(4460),
    [sym_alias] = ACTIONS(4460),
    [sym_align] = ACTIONS(4460),
    [sym_asm] = ACTIONS(4460),
    [sym_assert] = ACTIONS(4460),
    [sym_auto] = ACTIONS(4460),
    [sym_break] = ACTIONS(4460),
    [sym_case] = ACTIONS(4460),
    [sym_cast] = ACTIONS(4460),
    [sym_catch] = ACTIONS(4460),
    [sym_class] = ACTIONS(4460),
    [sym_const] = ACTIONS(4460),
    [sym_continue] = ACTIONS(4460),
    [sym_debug] = ACTIONS(4460),
    [sym_default] = ACTIONS(4460),
    [sym_delegate] = ACTIONS(4460),
    [sym_delete] = ACTIONS(4460),
    [sym_deprecated] = ACTIONS(4460),
    [sym_do] = ACTIONS(4460),
    [sym_else] = ACTIONS(4460),
    [sym_enum] = ACTIONS(4460),
    [sym_export] = ACTIONS(4460),
    [sym_extern] = ACTIONS(4460),
    [sym_final] = ACTIONS(4460),
    [sym_finally] = ACTIONS(4460),
    [sym_for] = ACTIONS(4460),
    [sym_foreach] = ACTIONS(4460),
    [sym_foreach_reverse] = ACTIONS(4460),
    [sym_function] = ACTIONS(4460),
    [sym_goto] = ACTIONS(4460),
    [sym_if] = ACTIONS(4460),
    [sym_immutable] = ACTIONS(4460),
    [sym_import] = ACTIONS(4460),
    [sym_in] = ACTIONS(4460),
    [sym_inout] = ACTIONS(4460),
    [sym_interface] = ACTIONS(4460),
    [sym_invariant] = ACTIONS(4460),
    [sym_is] = ACTIONS(4460),
    [sym_mixin] = ACTIONS(4460),
    [sym_new] = ACTIONS(4460),
    [sym_nothrow] = ACTIONS(4460),
    [sym_out] = ACTIONS(4460),
    [sym_override] = ACTIONS(4460),
    [sym_package] = ACTIONS(4460),
    [sym_pragma] = ACTIONS(4460),
    [sym_private] = ACTIONS(4460),
    [sym_protected] = ACTIONS(4460),
    [sym_public] = ACTIONS(4460),
    [sym_pure] = ACTIONS(4460),
    [sym_ref] = ACTIONS(4460),
    [sym_return] = ACTIONS(4460),
    [sym_scope] = ACTIONS(4460),
    [sym_shared] = ACTIONS(4460),
    [sym_static] = ACTIONS(4460),
    [sym_struct] = ACTIONS(4460),
    [sym_switch] = ACTIONS(4460),
    [sym_synchronized] = ACTIONS(4460),
    [sym_template] = ACTIONS(4460),
    [sym_throw] = ACTIONS(4460),
    [sym_try] = ACTIONS(4460),
    [sym_typeid] = ACTIONS(4460),
    [sym_typeof] = ACTIONS(4460),
    [sym_union] = ACTIONS(4460),
    [sym_unittest] = ACTIONS(4460),
    [sym_version] = ACTIONS(4460),
    [sym_while] = ACTIONS(4460),
    [sym_with] = ACTIONS(4460),
    [sym_gshared] = ACTIONS(4460),
    [sym_traits] = ACTIONS(4460),
    [sym_vector] = ACTIONS(4460),
    [sym_void] = ACTIONS(4460),
    [anon_sym_BQUOTE] = ACTIONS(4462),
    [anon_sym_r_DQUOTE] = ACTIONS(4462),
    [anon_sym_x_DQUOTE] = ACTIONS(4462),
    [anon_sym_DQUOTE] = ACTIONS(4462),
    [anon_sym_i_BQUOTE] = ACTIONS(4462),
    [anon_sym_i_DQUOTE] = ACTIONS(4462),
    [anon_sym_iq_LBRACE] = ACTIONS(4462),
    [aux_sym_char_literal_token1] = ACTIONS(4462),
    [anon_sym_SQUOTE] = ACTIONS(4460),
    [anon_sym___DATE__] = ACTIONS(4460),
    [anon_sym___FILE__] = ACTIONS(4460),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4460),
    [anon_sym___FUNCTION__] = ACTIONS(4460),
    [anon_sym___LINE__] = ACTIONS(4460),
    [anon_sym___MODULE__] = ACTIONS(4460),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4460),
    [anon_sym___TIME__] = ACTIONS(4460),
    [anon_sym___TIMESTAMP__] = ACTIONS(4460),
    [anon_sym___VENDOR__] = ACTIONS(4460),
    [anon_sym___VERSION__] = ACTIONS(4460),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4462),
    [sym_float_literal] = ACTIONS(4462),
    [sym__string] = ACTIONS(4462),
  },
  [1395] = {
    [sym_identifier] = ACTIONS(4464),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4466),
    [anon_sym_RBRACE] = ACTIONS(4466),
    [anon_sym_LBRACE] = ACTIONS(4466),
    [anon_sym_DOT] = ACTIONS(4466),
    [anon_sym_AMP] = ACTIONS(4466),
    [anon_sym_DASH] = ACTIONS(4464),
    [anon_sym_DASH_DASH] = ACTIONS(4466),
    [anon_sym_PLUS] = ACTIONS(4464),
    [anon_sym_PLUS_PLUS] = ACTIONS(4466),
    [anon_sym_BANG] = ACTIONS(4466),
    [anon_sym_LPAREN] = ACTIONS(4466),
    [anon_sym_RPAREN] = ACTIONS(4466),
    [anon_sym_LBRACK] = ACTIONS(4466),
    [anon_sym_SEMI] = ACTIONS(4466),
    [anon_sym_DOLLAR] = ACTIONS(4466),
    [anon_sym_STAR] = ACTIONS(4466),
    [anon_sym_TILDE] = ACTIONS(4466),
    [anon_sym_AT] = ACTIONS(4466),
    [sym_bool] = ACTIONS(4464),
    [sym_byte] = ACTIONS(4464),
    [sym_ubyte] = ACTIONS(4464),
    [sym_char] = ACTIONS(4464),
    [sym_short] = ACTIONS(4464),
    [sym_ushort] = ACTIONS(4464),
    [sym_int] = ACTIONS(4464),
    [sym_uint] = ACTIONS(4464),
    [sym_long] = ACTIONS(4464),
    [sym_ulong] = ACTIONS(4464),
    [sym_cent] = ACTIONS(4464),
    [sym_ucent] = ACTIONS(4464),
    [sym_wchar] = ACTIONS(4464),
    [sym_dchar] = ACTIONS(4464),
    [sym_float] = ACTIONS(4464),
    [sym_double] = ACTIONS(4464),
    [sym_real] = ACTIONS(4464),
    [sym_ifloat] = ACTIONS(4464),
    [sym_idouble] = ACTIONS(4464),
    [sym_ireal] = ACTIONS(4464),
    [sym_cfloat] = ACTIONS(4464),
    [sym_cdouble] = ACTIONS(4464),
    [sym_creal] = ACTIONS(4464),
    [sym_size_t] = ACTIONS(4464),
    [sym_ptrdiff_t] = ACTIONS(4464),
    [sym_string] = ACTIONS(4464),
    [sym_cstring] = ACTIONS(4464),
    [sym_dstring] = ACTIONS(4464),
    [sym_wstring] = ACTIONS(4464),
    [sym_noreturn] = ACTIONS(4464),
    [sym_true] = ACTIONS(4464),
    [sym_false] = ACTIONS(4464),
    [sym_null] = ACTIONS(4464),
    [sym_super] = ACTIONS(4464),
    [sym_this] = ACTIONS(4464),
    [sym_abstract] = ACTIONS(4464),
    [sym_alias] = ACTIONS(4464),
    [sym_align] = ACTIONS(4464),
    [sym_asm] = ACTIONS(4464),
    [sym_assert] = ACTIONS(4464),
    [sym_auto] = ACTIONS(4464),
    [sym_break] = ACTIONS(4464),
    [sym_case] = ACTIONS(4464),
    [sym_cast] = ACTIONS(4464),
    [sym_catch] = ACTIONS(4464),
    [sym_class] = ACTIONS(4464),
    [sym_const] = ACTIONS(4464),
    [sym_continue] = ACTIONS(4464),
    [sym_debug] = ACTIONS(4464),
    [sym_default] = ACTIONS(4464),
    [sym_delegate] = ACTIONS(4464),
    [sym_delete] = ACTIONS(4464),
    [sym_deprecated] = ACTIONS(4464),
    [sym_do] = ACTIONS(4464),
    [sym_else] = ACTIONS(4464),
    [sym_enum] = ACTIONS(4464),
    [sym_export] = ACTIONS(4464),
    [sym_extern] = ACTIONS(4464),
    [sym_final] = ACTIONS(4464),
    [sym_finally] = ACTIONS(4464),
    [sym_for] = ACTIONS(4464),
    [sym_foreach] = ACTIONS(4464),
    [sym_foreach_reverse] = ACTIONS(4464),
    [sym_function] = ACTIONS(4464),
    [sym_goto] = ACTIONS(4464),
    [sym_if] = ACTIONS(4464),
    [sym_immutable] = ACTIONS(4464),
    [sym_import] = ACTIONS(4464),
    [sym_in] = ACTIONS(4464),
    [sym_inout] = ACTIONS(4464),
    [sym_interface] = ACTIONS(4464),
    [sym_invariant] = ACTIONS(4464),
    [sym_is] = ACTIONS(4464),
    [sym_mixin] = ACTIONS(4464),
    [sym_new] = ACTIONS(4464),
    [sym_nothrow] = ACTIONS(4464),
    [sym_out] = ACTIONS(4464),
    [sym_override] = ACTIONS(4464),
    [sym_package] = ACTIONS(4464),
    [sym_pragma] = ACTIONS(4464),
    [sym_private] = ACTIONS(4464),
    [sym_protected] = ACTIONS(4464),
    [sym_public] = ACTIONS(4464),
    [sym_pure] = ACTIONS(4464),
    [sym_ref] = ACTIONS(4464),
    [sym_return] = ACTIONS(4464),
    [sym_scope] = ACTIONS(4464),
    [sym_shared] = ACTIONS(4464),
    [sym_static] = ACTIONS(4464),
    [sym_struct] = ACTIONS(4464),
    [sym_switch] = ACTIONS(4464),
    [sym_synchronized] = ACTIONS(4464),
    [sym_template] = ACTIONS(4464),
    [sym_throw] = ACTIONS(4464),
    [sym_try] = ACTIONS(4464),
    [sym_typeid] = ACTIONS(4464),
    [sym_typeof] = ACTIONS(4464),
    [sym_union] = ACTIONS(4464),
    [sym_unittest] = ACTIONS(4464),
    [sym_version] = ACTIONS(4464),
    [sym_while] = ACTIONS(4464),
    [sym_with] = ACTIONS(4464),
    [sym_gshared] = ACTIONS(4464),
    [sym_traits] = ACTIONS(4464),
    [sym_vector] = ACTIONS(4464),
    [sym_void] = ACTIONS(4464),
    [anon_sym_BQUOTE] = ACTIONS(4466),
    [anon_sym_r_DQUOTE] = ACTIONS(4466),
    [anon_sym_x_DQUOTE] = ACTIONS(4466),
    [anon_sym_DQUOTE] = ACTIONS(4466),
    [anon_sym_i_BQUOTE] = ACTIONS(4466),
    [anon_sym_i_DQUOTE] = ACTIONS(4466),
    [anon_sym_iq_LBRACE] = ACTIONS(4466),
    [aux_sym_char_literal_token1] = ACTIONS(4466),
    [anon_sym_SQUOTE] = ACTIONS(4464),
    [anon_sym___DATE__] = ACTIONS(4464),
    [anon_sym___FILE__] = ACTIONS(4464),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4464),
    [anon_sym___FUNCTION__] = ACTIONS(4464),
    [anon_sym___LINE__] = ACTIONS(4464),
    [anon_sym___MODULE__] = ACTIONS(4464),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4464),
    [anon_sym___TIME__] = ACTIONS(4464),
    [anon_sym___TIMESTAMP__] = ACTIONS(4464),
    [anon_sym___VENDOR__] = ACTIONS(4464),
    [anon_sym___VERSION__] = ACTIONS(4464),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4466),
    [sym_float_literal] = ACTIONS(4466),
    [sym__string] = ACTIONS(4466),
  },
  [1396] = {
    [sym_identifier] = ACTIONS(4468),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4470),
    [anon_sym_RBRACE] = ACTIONS(4470),
    [anon_sym_LBRACE] = ACTIONS(4470),
    [anon_sym_DOT] = ACTIONS(4470),
    [anon_sym_AMP] = ACTIONS(4470),
    [anon_sym_DASH] = ACTIONS(4468),
    [anon_sym_DASH_DASH] = ACTIONS(4470),
    [anon_sym_PLUS] = ACTIONS(4468),
    [anon_sym_PLUS_PLUS] = ACTIONS(4470),
    [anon_sym_BANG] = ACTIONS(4470),
    [anon_sym_LPAREN] = ACTIONS(4470),
    [anon_sym_RPAREN] = ACTIONS(4470),
    [anon_sym_LBRACK] = ACTIONS(4470),
    [anon_sym_SEMI] = ACTIONS(4470),
    [anon_sym_DOLLAR] = ACTIONS(4470),
    [anon_sym_STAR] = ACTIONS(4470),
    [anon_sym_TILDE] = ACTIONS(4470),
    [anon_sym_AT] = ACTIONS(4470),
    [sym_bool] = ACTIONS(4468),
    [sym_byte] = ACTIONS(4468),
    [sym_ubyte] = ACTIONS(4468),
    [sym_char] = ACTIONS(4468),
    [sym_short] = ACTIONS(4468),
    [sym_ushort] = ACTIONS(4468),
    [sym_int] = ACTIONS(4468),
    [sym_uint] = ACTIONS(4468),
    [sym_long] = ACTIONS(4468),
    [sym_ulong] = ACTIONS(4468),
    [sym_cent] = ACTIONS(4468),
    [sym_ucent] = ACTIONS(4468),
    [sym_wchar] = ACTIONS(4468),
    [sym_dchar] = ACTIONS(4468),
    [sym_float] = ACTIONS(4468),
    [sym_double] = ACTIONS(4468),
    [sym_real] = ACTIONS(4468),
    [sym_ifloat] = ACTIONS(4468),
    [sym_idouble] = ACTIONS(4468),
    [sym_ireal] = ACTIONS(4468),
    [sym_cfloat] = ACTIONS(4468),
    [sym_cdouble] = ACTIONS(4468),
    [sym_creal] = ACTIONS(4468),
    [sym_size_t] = ACTIONS(4468),
    [sym_ptrdiff_t] = ACTIONS(4468),
    [sym_string] = ACTIONS(4468),
    [sym_cstring] = ACTIONS(4468),
    [sym_dstring] = ACTIONS(4468),
    [sym_wstring] = ACTIONS(4468),
    [sym_noreturn] = ACTIONS(4468),
    [sym_true] = ACTIONS(4468),
    [sym_false] = ACTIONS(4468),
    [sym_null] = ACTIONS(4468),
    [sym_super] = ACTIONS(4468),
    [sym_this] = ACTIONS(4468),
    [sym_abstract] = ACTIONS(4468),
    [sym_alias] = ACTIONS(4468),
    [sym_align] = ACTIONS(4468),
    [sym_asm] = ACTIONS(4468),
    [sym_assert] = ACTIONS(4468),
    [sym_auto] = ACTIONS(4468),
    [sym_break] = ACTIONS(4468),
    [sym_case] = ACTIONS(4468),
    [sym_cast] = ACTIONS(4468),
    [sym_catch] = ACTIONS(4468),
    [sym_class] = ACTIONS(4468),
    [sym_const] = ACTIONS(4468),
    [sym_continue] = ACTIONS(4468),
    [sym_debug] = ACTIONS(4468),
    [sym_default] = ACTIONS(4468),
    [sym_delegate] = ACTIONS(4468),
    [sym_delete] = ACTIONS(4468),
    [sym_deprecated] = ACTIONS(4468),
    [sym_do] = ACTIONS(4468),
    [sym_else] = ACTIONS(4468),
    [sym_enum] = ACTIONS(4468),
    [sym_export] = ACTIONS(4468),
    [sym_extern] = ACTIONS(4468),
    [sym_final] = ACTIONS(4468),
    [sym_finally] = ACTIONS(4468),
    [sym_for] = ACTIONS(4468),
    [sym_foreach] = ACTIONS(4468),
    [sym_foreach_reverse] = ACTIONS(4468),
    [sym_function] = ACTIONS(4468),
    [sym_goto] = ACTIONS(4468),
    [sym_if] = ACTIONS(4468),
    [sym_immutable] = ACTIONS(4468),
    [sym_import] = ACTIONS(4468),
    [sym_in] = ACTIONS(4468),
    [sym_inout] = ACTIONS(4468),
    [sym_interface] = ACTIONS(4468),
    [sym_invariant] = ACTIONS(4468),
    [sym_is] = ACTIONS(4468),
    [sym_mixin] = ACTIONS(4468),
    [sym_new] = ACTIONS(4468),
    [sym_nothrow] = ACTIONS(4468),
    [sym_out] = ACTIONS(4468),
    [sym_override] = ACTIONS(4468),
    [sym_package] = ACTIONS(4468),
    [sym_pragma] = ACTIONS(4468),
    [sym_private] = ACTIONS(4468),
    [sym_protected] = ACTIONS(4468),
    [sym_public] = ACTIONS(4468),
    [sym_pure] = ACTIONS(4468),
    [sym_ref] = ACTIONS(4468),
    [sym_return] = ACTIONS(4468),
    [sym_scope] = ACTIONS(4468),
    [sym_shared] = ACTIONS(4468),
    [sym_static] = ACTIONS(4468),
    [sym_struct] = ACTIONS(4468),
    [sym_switch] = ACTIONS(4468),
    [sym_synchronized] = ACTIONS(4468),
    [sym_template] = ACTIONS(4468),
    [sym_throw] = ACTIONS(4468),
    [sym_try] = ACTIONS(4468),
    [sym_typeid] = ACTIONS(4468),
    [sym_typeof] = ACTIONS(4468),
    [sym_union] = ACTIONS(4468),
    [sym_unittest] = ACTIONS(4468),
    [sym_version] = ACTIONS(4468),
    [sym_while] = ACTIONS(4468),
    [sym_with] = ACTIONS(4468),
    [sym_gshared] = ACTIONS(4468),
    [sym_traits] = ACTIONS(4468),
    [sym_vector] = ACTIONS(4468),
    [sym_void] = ACTIONS(4468),
    [anon_sym_BQUOTE] = ACTIONS(4470),
    [anon_sym_r_DQUOTE] = ACTIONS(4470),
    [anon_sym_x_DQUOTE] = ACTIONS(4470),
    [anon_sym_DQUOTE] = ACTIONS(4470),
    [anon_sym_i_BQUOTE] = ACTIONS(4470),
    [anon_sym_i_DQUOTE] = ACTIONS(4470),
    [anon_sym_iq_LBRACE] = ACTIONS(4470),
    [aux_sym_char_literal_token1] = ACTIONS(4470),
    [anon_sym_SQUOTE] = ACTIONS(4468),
    [anon_sym___DATE__] = ACTIONS(4468),
    [anon_sym___FILE__] = ACTIONS(4468),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4468),
    [anon_sym___FUNCTION__] = ACTIONS(4468),
    [anon_sym___LINE__] = ACTIONS(4468),
    [anon_sym___MODULE__] = ACTIONS(4468),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4468),
    [anon_sym___TIME__] = ACTIONS(4468),
    [anon_sym___TIMESTAMP__] = ACTIONS(4468),
    [anon_sym___VENDOR__] = ACTIONS(4468),
    [anon_sym___VERSION__] = ACTIONS(4468),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4470),
    [sym_float_literal] = ACTIONS(4470),
    [sym__string] = ACTIONS(4470),
  },
  [1397] = {
    [sym_identifier] = ACTIONS(4472),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4474),
    [anon_sym_RBRACE] = ACTIONS(4474),
    [anon_sym_LBRACE] = ACTIONS(4474),
    [anon_sym_DOT] = ACTIONS(4474),
    [anon_sym_AMP] = ACTIONS(4474),
    [anon_sym_DASH] = ACTIONS(4472),
    [anon_sym_DASH_DASH] = ACTIONS(4474),
    [anon_sym_PLUS] = ACTIONS(4472),
    [anon_sym_PLUS_PLUS] = ACTIONS(4474),
    [anon_sym_BANG] = ACTIONS(4474),
    [anon_sym_LPAREN] = ACTIONS(4474),
    [anon_sym_RPAREN] = ACTIONS(4474),
    [anon_sym_LBRACK] = ACTIONS(4474),
    [anon_sym_SEMI] = ACTIONS(4474),
    [anon_sym_DOLLAR] = ACTIONS(4474),
    [anon_sym_STAR] = ACTIONS(4474),
    [anon_sym_TILDE] = ACTIONS(4474),
    [anon_sym_AT] = ACTIONS(4474),
    [sym_bool] = ACTIONS(4472),
    [sym_byte] = ACTIONS(4472),
    [sym_ubyte] = ACTIONS(4472),
    [sym_char] = ACTIONS(4472),
    [sym_short] = ACTIONS(4472),
    [sym_ushort] = ACTIONS(4472),
    [sym_int] = ACTIONS(4472),
    [sym_uint] = ACTIONS(4472),
    [sym_long] = ACTIONS(4472),
    [sym_ulong] = ACTIONS(4472),
    [sym_cent] = ACTIONS(4472),
    [sym_ucent] = ACTIONS(4472),
    [sym_wchar] = ACTIONS(4472),
    [sym_dchar] = ACTIONS(4472),
    [sym_float] = ACTIONS(4472),
    [sym_double] = ACTIONS(4472),
    [sym_real] = ACTIONS(4472),
    [sym_ifloat] = ACTIONS(4472),
    [sym_idouble] = ACTIONS(4472),
    [sym_ireal] = ACTIONS(4472),
    [sym_cfloat] = ACTIONS(4472),
    [sym_cdouble] = ACTIONS(4472),
    [sym_creal] = ACTIONS(4472),
    [sym_size_t] = ACTIONS(4472),
    [sym_ptrdiff_t] = ACTIONS(4472),
    [sym_string] = ACTIONS(4472),
    [sym_cstring] = ACTIONS(4472),
    [sym_dstring] = ACTIONS(4472),
    [sym_wstring] = ACTIONS(4472),
    [sym_noreturn] = ACTIONS(4472),
    [sym_true] = ACTIONS(4472),
    [sym_false] = ACTIONS(4472),
    [sym_null] = ACTIONS(4472),
    [sym_super] = ACTIONS(4472),
    [sym_this] = ACTIONS(4472),
    [sym_abstract] = ACTIONS(4472),
    [sym_alias] = ACTIONS(4472),
    [sym_align] = ACTIONS(4472),
    [sym_asm] = ACTIONS(4472),
    [sym_assert] = ACTIONS(4472),
    [sym_auto] = ACTIONS(4472),
    [sym_break] = ACTIONS(4472),
    [sym_case] = ACTIONS(4472),
    [sym_cast] = ACTIONS(4472),
    [sym_catch] = ACTIONS(4472),
    [sym_class] = ACTIONS(4472),
    [sym_const] = ACTIONS(4472),
    [sym_continue] = ACTIONS(4472),
    [sym_debug] = ACTIONS(4472),
    [sym_default] = ACTIONS(4472),
    [sym_delegate] = ACTIONS(4472),
    [sym_delete] = ACTIONS(4472),
    [sym_deprecated] = ACTIONS(4472),
    [sym_do] = ACTIONS(4472),
    [sym_else] = ACTIONS(4472),
    [sym_enum] = ACTIONS(4472),
    [sym_export] = ACTIONS(4472),
    [sym_extern] = ACTIONS(4472),
    [sym_final] = ACTIONS(4472),
    [sym_finally] = ACTIONS(4472),
    [sym_for] = ACTIONS(4472),
    [sym_foreach] = ACTIONS(4472),
    [sym_foreach_reverse] = ACTIONS(4472),
    [sym_function] = ACTIONS(4472),
    [sym_goto] = ACTIONS(4472),
    [sym_if] = ACTIONS(4472),
    [sym_immutable] = ACTIONS(4472),
    [sym_import] = ACTIONS(4472),
    [sym_in] = ACTIONS(4472),
    [sym_inout] = ACTIONS(4472),
    [sym_interface] = ACTIONS(4472),
    [sym_invariant] = ACTIONS(4472),
    [sym_is] = ACTIONS(4472),
    [sym_mixin] = ACTIONS(4472),
    [sym_new] = ACTIONS(4472),
    [sym_nothrow] = ACTIONS(4472),
    [sym_out] = ACTIONS(4472),
    [sym_override] = ACTIONS(4472),
    [sym_package] = ACTIONS(4472),
    [sym_pragma] = ACTIONS(4472),
    [sym_private] = ACTIONS(4472),
    [sym_protected] = ACTIONS(4472),
    [sym_public] = ACTIONS(4472),
    [sym_pure] = ACTIONS(4472),
    [sym_ref] = ACTIONS(4472),
    [sym_return] = ACTIONS(4472),
    [sym_scope] = ACTIONS(4472),
    [sym_shared] = ACTIONS(4472),
    [sym_static] = ACTIONS(4472),
    [sym_struct] = ACTIONS(4472),
    [sym_switch] = ACTIONS(4472),
    [sym_synchronized] = ACTIONS(4472),
    [sym_template] = ACTIONS(4472),
    [sym_throw] = ACTIONS(4472),
    [sym_try] = ACTIONS(4472),
    [sym_typeid] = ACTIONS(4472),
    [sym_typeof] = ACTIONS(4472),
    [sym_union] = ACTIONS(4472),
    [sym_unittest] = ACTIONS(4472),
    [sym_version] = ACTIONS(4472),
    [sym_while] = ACTIONS(4472),
    [sym_with] = ACTIONS(4472),
    [sym_gshared] = ACTIONS(4472),
    [sym_traits] = ACTIONS(4472),
    [sym_vector] = ACTIONS(4472),
    [sym_void] = ACTIONS(4472),
    [anon_sym_BQUOTE] = ACTIONS(4474),
    [anon_sym_r_DQUOTE] = ACTIONS(4474),
    [anon_sym_x_DQUOTE] = ACTIONS(4474),
    [anon_sym_DQUOTE] = ACTIONS(4474),
    [anon_sym_i_BQUOTE] = ACTIONS(4474),
    [anon_sym_i_DQUOTE] = ACTIONS(4474),
    [anon_sym_iq_LBRACE] = ACTIONS(4474),
    [aux_sym_char_literal_token1] = ACTIONS(4474),
    [anon_sym_SQUOTE] = ACTIONS(4472),
    [anon_sym___DATE__] = ACTIONS(4472),
    [anon_sym___FILE__] = ACTIONS(4472),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4472),
    [anon_sym___FUNCTION__] = ACTIONS(4472),
    [anon_sym___LINE__] = ACTIONS(4472),
    [anon_sym___MODULE__] = ACTIONS(4472),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4472),
    [anon_sym___TIME__] = ACTIONS(4472),
    [anon_sym___TIMESTAMP__] = ACTIONS(4472),
    [anon_sym___VENDOR__] = ACTIONS(4472),
    [anon_sym___VERSION__] = ACTIONS(4472),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4474),
    [sym_float_literal] = ACTIONS(4474),
    [sym__string] = ACTIONS(4474),
  },
  [1398] = {
    [sym_identifier] = ACTIONS(4476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4478),
    [anon_sym_RBRACE] = ACTIONS(4478),
    [anon_sym_LBRACE] = ACTIONS(4478),
    [anon_sym_DOT] = ACTIONS(4478),
    [anon_sym_AMP] = ACTIONS(4478),
    [anon_sym_DASH] = ACTIONS(4476),
    [anon_sym_DASH_DASH] = ACTIONS(4478),
    [anon_sym_PLUS] = ACTIONS(4476),
    [anon_sym_PLUS_PLUS] = ACTIONS(4478),
    [anon_sym_BANG] = ACTIONS(4478),
    [anon_sym_LPAREN] = ACTIONS(4478),
    [anon_sym_RPAREN] = ACTIONS(4478),
    [anon_sym_LBRACK] = ACTIONS(4478),
    [anon_sym_SEMI] = ACTIONS(4478),
    [anon_sym_DOLLAR] = ACTIONS(4478),
    [anon_sym_STAR] = ACTIONS(4478),
    [anon_sym_TILDE] = ACTIONS(4478),
    [anon_sym_AT] = ACTIONS(4478),
    [sym_bool] = ACTIONS(4476),
    [sym_byte] = ACTIONS(4476),
    [sym_ubyte] = ACTIONS(4476),
    [sym_char] = ACTIONS(4476),
    [sym_short] = ACTIONS(4476),
    [sym_ushort] = ACTIONS(4476),
    [sym_int] = ACTIONS(4476),
    [sym_uint] = ACTIONS(4476),
    [sym_long] = ACTIONS(4476),
    [sym_ulong] = ACTIONS(4476),
    [sym_cent] = ACTIONS(4476),
    [sym_ucent] = ACTIONS(4476),
    [sym_wchar] = ACTIONS(4476),
    [sym_dchar] = ACTIONS(4476),
    [sym_float] = ACTIONS(4476),
    [sym_double] = ACTIONS(4476),
    [sym_real] = ACTIONS(4476),
    [sym_ifloat] = ACTIONS(4476),
    [sym_idouble] = ACTIONS(4476),
    [sym_ireal] = ACTIONS(4476),
    [sym_cfloat] = ACTIONS(4476),
    [sym_cdouble] = ACTIONS(4476),
    [sym_creal] = ACTIONS(4476),
    [sym_size_t] = ACTIONS(4476),
    [sym_ptrdiff_t] = ACTIONS(4476),
    [sym_string] = ACTIONS(4476),
    [sym_cstring] = ACTIONS(4476),
    [sym_dstring] = ACTIONS(4476),
    [sym_wstring] = ACTIONS(4476),
    [sym_noreturn] = ACTIONS(4476),
    [sym_true] = ACTIONS(4476),
    [sym_false] = ACTIONS(4476),
    [sym_null] = ACTIONS(4476),
    [sym_super] = ACTIONS(4476),
    [sym_this] = ACTIONS(4476),
    [sym_abstract] = ACTIONS(4476),
    [sym_alias] = ACTIONS(4476),
    [sym_align] = ACTIONS(4476),
    [sym_asm] = ACTIONS(4476),
    [sym_assert] = ACTIONS(4476),
    [sym_auto] = ACTIONS(4476),
    [sym_break] = ACTIONS(4476),
    [sym_case] = ACTIONS(4476),
    [sym_cast] = ACTIONS(4476),
    [sym_catch] = ACTIONS(4476),
    [sym_class] = ACTIONS(4476),
    [sym_const] = ACTIONS(4476),
    [sym_continue] = ACTIONS(4476),
    [sym_debug] = ACTIONS(4476),
    [sym_default] = ACTIONS(4476),
    [sym_delegate] = ACTIONS(4476),
    [sym_delete] = ACTIONS(4476),
    [sym_deprecated] = ACTIONS(4476),
    [sym_do] = ACTIONS(4476),
    [sym_else] = ACTIONS(4476),
    [sym_enum] = ACTIONS(4476),
    [sym_export] = ACTIONS(4476),
    [sym_extern] = ACTIONS(4476),
    [sym_final] = ACTIONS(4476),
    [sym_finally] = ACTIONS(4476),
    [sym_for] = ACTIONS(4476),
    [sym_foreach] = ACTIONS(4476),
    [sym_foreach_reverse] = ACTIONS(4476),
    [sym_function] = ACTIONS(4476),
    [sym_goto] = ACTIONS(4476),
    [sym_if] = ACTIONS(4476),
    [sym_immutable] = ACTIONS(4476),
    [sym_import] = ACTIONS(4476),
    [sym_in] = ACTIONS(4476),
    [sym_inout] = ACTIONS(4476),
    [sym_interface] = ACTIONS(4476),
    [sym_invariant] = ACTIONS(4476),
    [sym_is] = ACTIONS(4476),
    [sym_mixin] = ACTIONS(4476),
    [sym_new] = ACTIONS(4476),
    [sym_nothrow] = ACTIONS(4476),
    [sym_out] = ACTIONS(4476),
    [sym_override] = ACTIONS(4476),
    [sym_package] = ACTIONS(4476),
    [sym_pragma] = ACTIONS(4476),
    [sym_private] = ACTIONS(4476),
    [sym_protected] = ACTIONS(4476),
    [sym_public] = ACTIONS(4476),
    [sym_pure] = ACTIONS(4476),
    [sym_ref] = ACTIONS(4476),
    [sym_return] = ACTIONS(4476),
    [sym_scope] = ACTIONS(4476),
    [sym_shared] = ACTIONS(4476),
    [sym_static] = ACTIONS(4476),
    [sym_struct] = ACTIONS(4476),
    [sym_switch] = ACTIONS(4476),
    [sym_synchronized] = ACTIONS(4476),
    [sym_template] = ACTIONS(4476),
    [sym_throw] = ACTIONS(4476),
    [sym_try] = ACTIONS(4476),
    [sym_typeid] = ACTIONS(4476),
    [sym_typeof] = ACTIONS(4476),
    [sym_union] = ACTIONS(4476),
    [sym_unittest] = ACTIONS(4476),
    [sym_version] = ACTIONS(4476),
    [sym_while] = ACTIONS(4476),
    [sym_with] = ACTIONS(4476),
    [sym_gshared] = ACTIONS(4476),
    [sym_traits] = ACTIONS(4476),
    [sym_vector] = ACTIONS(4476),
    [sym_void] = ACTIONS(4476),
    [anon_sym_BQUOTE] = ACTIONS(4478),
    [anon_sym_r_DQUOTE] = ACTIONS(4478),
    [anon_sym_x_DQUOTE] = ACTIONS(4478),
    [anon_sym_DQUOTE] = ACTIONS(4478),
    [anon_sym_i_BQUOTE] = ACTIONS(4478),
    [anon_sym_i_DQUOTE] = ACTIONS(4478),
    [anon_sym_iq_LBRACE] = ACTIONS(4478),
    [aux_sym_char_literal_token1] = ACTIONS(4478),
    [anon_sym_SQUOTE] = ACTIONS(4476),
    [anon_sym___DATE__] = ACTIONS(4476),
    [anon_sym___FILE__] = ACTIONS(4476),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4476),
    [anon_sym___FUNCTION__] = ACTIONS(4476),
    [anon_sym___LINE__] = ACTIONS(4476),
    [anon_sym___MODULE__] = ACTIONS(4476),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4476),
    [anon_sym___TIME__] = ACTIONS(4476),
    [anon_sym___TIMESTAMP__] = ACTIONS(4476),
    [anon_sym___VENDOR__] = ACTIONS(4476),
    [anon_sym___VERSION__] = ACTIONS(4476),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4478),
    [sym_float_literal] = ACTIONS(4478),
    [sym__string] = ACTIONS(4478),
  },
  [1399] = {
    [sym_identifier] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2643),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_LBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(2643),
    [anon_sym_AMP] = ACTIONS(2643),
    [anon_sym_DASH] = ACTIONS(2645),
    [anon_sym_DASH_DASH] = ACTIONS(2643),
    [anon_sym_PLUS] = ACTIONS(2645),
    [anon_sym_PLUS_PLUS] = ACTIONS(2643),
    [anon_sym_BANG] = ACTIONS(2643),
    [anon_sym_LPAREN] = ACTIONS(2643),
    [anon_sym_RPAREN] = ACTIONS(2643),
    [anon_sym_LBRACK] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2643),
    [anon_sym_DOLLAR] = ACTIONS(2643),
    [anon_sym_STAR] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2643),
    [anon_sym_AT] = ACTIONS(2643),
    [sym_bool] = ACTIONS(2645),
    [sym_byte] = ACTIONS(2645),
    [sym_ubyte] = ACTIONS(2645),
    [sym_char] = ACTIONS(2645),
    [sym_short] = ACTIONS(2645),
    [sym_ushort] = ACTIONS(2645),
    [sym_int] = ACTIONS(2645),
    [sym_uint] = ACTIONS(2645),
    [sym_long] = ACTIONS(2645),
    [sym_ulong] = ACTIONS(2645),
    [sym_cent] = ACTIONS(2645),
    [sym_ucent] = ACTIONS(2645),
    [sym_wchar] = ACTIONS(2645),
    [sym_dchar] = ACTIONS(2645),
    [sym_float] = ACTIONS(2645),
    [sym_double] = ACTIONS(2645),
    [sym_real] = ACTIONS(2645),
    [sym_ifloat] = ACTIONS(2645),
    [sym_idouble] = ACTIONS(2645),
    [sym_ireal] = ACTIONS(2645),
    [sym_cfloat] = ACTIONS(2645),
    [sym_cdouble] = ACTIONS(2645),
    [sym_creal] = ACTIONS(2645),
    [sym_size_t] = ACTIONS(2645),
    [sym_ptrdiff_t] = ACTIONS(2645),
    [sym_string] = ACTIONS(2645),
    [sym_cstring] = ACTIONS(2645),
    [sym_dstring] = ACTIONS(2645),
    [sym_wstring] = ACTIONS(2645),
    [sym_noreturn] = ACTIONS(2645),
    [sym_true] = ACTIONS(2645),
    [sym_false] = ACTIONS(2645),
    [sym_null] = ACTIONS(2645),
    [sym_super] = ACTIONS(2645),
    [sym_this] = ACTIONS(2645),
    [sym_abstract] = ACTIONS(2645),
    [sym_alias] = ACTIONS(2645),
    [sym_align] = ACTIONS(2645),
    [sym_asm] = ACTIONS(2645),
    [sym_assert] = ACTIONS(2645),
    [sym_auto] = ACTIONS(2645),
    [sym_break] = ACTIONS(2645),
    [sym_case] = ACTIONS(2645),
    [sym_cast] = ACTIONS(2645),
    [sym_catch] = ACTIONS(2645),
    [sym_class] = ACTIONS(2645),
    [sym_const] = ACTIONS(2645),
    [sym_continue] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2645),
    [sym_default] = ACTIONS(2645),
    [sym_delegate] = ACTIONS(2645),
    [sym_delete] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(2645),
    [sym_do] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(2645),
    [sym_export] = ACTIONS(2645),
    [sym_extern] = ACTIONS(2645),
    [sym_final] = ACTIONS(2645),
    [sym_finally] = ACTIONS(2645),
    [sym_for] = ACTIONS(2645),
    [sym_foreach] = ACTIONS(2645),
    [sym_foreach_reverse] = ACTIONS(2645),
    [sym_function] = ACTIONS(2645),
    [sym_goto] = ACTIONS(2645),
    [sym_if] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(2645),
    [sym_import] = ACTIONS(2645),
    [sym_in] = ACTIONS(2645),
    [sym_inout] = ACTIONS(2645),
    [sym_interface] = ACTIONS(2645),
    [sym_invariant] = ACTIONS(2645),
    [sym_is] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2645),
    [sym_new] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(2645),
    [sym_out] = ACTIONS(2645),
    [sym_override] = ACTIONS(2645),
    [sym_package] = ACTIONS(2645),
    [sym_pragma] = ACTIONS(2645),
    [sym_private] = ACTIONS(2645),
    [sym_protected] = ACTIONS(2645),
    [sym_public] = ACTIONS(2645),
    [sym_pure] = ACTIONS(2645),
    [sym_ref] = ACTIONS(2645),
    [sym_return] = ACTIONS(2645),
    [sym_scope] = ACTIONS(2645),
    [sym_shared] = ACTIONS(2645),
    [sym_static] = ACTIONS(2645),
    [sym_struct] = ACTIONS(2645),
    [sym_switch] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(2645),
    [sym_template] = ACTIONS(2645),
    [sym_throw] = ACTIONS(2645),
    [sym_try] = ACTIONS(2645),
    [sym_typeid] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(2645),
    [sym_union] = ACTIONS(2645),
    [sym_unittest] = ACTIONS(2645),
    [sym_version] = ACTIONS(2645),
    [sym_while] = ACTIONS(2645),
    [sym_with] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(2645),
    [sym_traits] = ACTIONS(2645),
    [sym_vector] = ACTIONS(2645),
    [sym_void] = ACTIONS(2645),
    [anon_sym_BQUOTE] = ACTIONS(2643),
    [anon_sym_r_DQUOTE] = ACTIONS(2643),
    [anon_sym_x_DQUOTE] = ACTIONS(2643),
    [anon_sym_DQUOTE] = ACTIONS(2643),
    [anon_sym_i_BQUOTE] = ACTIONS(2643),
    [anon_sym_i_DQUOTE] = ACTIONS(2643),
    [anon_sym_iq_LBRACE] = ACTIONS(2643),
    [aux_sym_char_literal_token1] = ACTIONS(2643),
    [anon_sym_SQUOTE] = ACTIONS(2645),
    [anon_sym___DATE__] = ACTIONS(2645),
    [anon_sym___FILE__] = ACTIONS(2645),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2645),
    [anon_sym___FUNCTION__] = ACTIONS(2645),
    [anon_sym___LINE__] = ACTIONS(2645),
    [anon_sym___MODULE__] = ACTIONS(2645),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2645),
    [anon_sym___TIME__] = ACTIONS(2645),
    [anon_sym___TIMESTAMP__] = ACTIONS(2645),
    [anon_sym___VENDOR__] = ACTIONS(2645),
    [anon_sym___VERSION__] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2643),
    [sym_float_literal] = ACTIONS(2643),
    [sym__string] = ACTIONS(2643),
  },
  [1400] = {
    [sym_identifier] = ACTIONS(4480),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4482),
    [anon_sym_RBRACE] = ACTIONS(4482),
    [anon_sym_LBRACE] = ACTIONS(4482),
    [anon_sym_DOT] = ACTIONS(4482),
    [anon_sym_AMP] = ACTIONS(4482),
    [anon_sym_DASH] = ACTIONS(4480),
    [anon_sym_DASH_DASH] = ACTIONS(4482),
    [anon_sym_PLUS] = ACTIONS(4480),
    [anon_sym_PLUS_PLUS] = ACTIONS(4482),
    [anon_sym_BANG] = ACTIONS(4482),
    [anon_sym_LPAREN] = ACTIONS(4482),
    [anon_sym_RPAREN] = ACTIONS(4482),
    [anon_sym_LBRACK] = ACTIONS(4482),
    [anon_sym_SEMI] = ACTIONS(4482),
    [anon_sym_DOLLAR] = ACTIONS(4482),
    [anon_sym_STAR] = ACTIONS(4482),
    [anon_sym_TILDE] = ACTIONS(4482),
    [anon_sym_AT] = ACTIONS(4482),
    [sym_bool] = ACTIONS(4480),
    [sym_byte] = ACTIONS(4480),
    [sym_ubyte] = ACTIONS(4480),
    [sym_char] = ACTIONS(4480),
    [sym_short] = ACTIONS(4480),
    [sym_ushort] = ACTIONS(4480),
    [sym_int] = ACTIONS(4480),
    [sym_uint] = ACTIONS(4480),
    [sym_long] = ACTIONS(4480),
    [sym_ulong] = ACTIONS(4480),
    [sym_cent] = ACTIONS(4480),
    [sym_ucent] = ACTIONS(4480),
    [sym_wchar] = ACTIONS(4480),
    [sym_dchar] = ACTIONS(4480),
    [sym_float] = ACTIONS(4480),
    [sym_double] = ACTIONS(4480),
    [sym_real] = ACTIONS(4480),
    [sym_ifloat] = ACTIONS(4480),
    [sym_idouble] = ACTIONS(4480),
    [sym_ireal] = ACTIONS(4480),
    [sym_cfloat] = ACTIONS(4480),
    [sym_cdouble] = ACTIONS(4480),
    [sym_creal] = ACTIONS(4480),
    [sym_size_t] = ACTIONS(4480),
    [sym_ptrdiff_t] = ACTIONS(4480),
    [sym_string] = ACTIONS(4480),
    [sym_cstring] = ACTIONS(4480),
    [sym_dstring] = ACTIONS(4480),
    [sym_wstring] = ACTIONS(4480),
    [sym_noreturn] = ACTIONS(4480),
    [sym_true] = ACTIONS(4480),
    [sym_false] = ACTIONS(4480),
    [sym_null] = ACTIONS(4480),
    [sym_super] = ACTIONS(4480),
    [sym_this] = ACTIONS(4480),
    [sym_abstract] = ACTIONS(4480),
    [sym_alias] = ACTIONS(4480),
    [sym_align] = ACTIONS(4480),
    [sym_asm] = ACTIONS(4480),
    [sym_assert] = ACTIONS(4480),
    [sym_auto] = ACTIONS(4480),
    [sym_break] = ACTIONS(4480),
    [sym_case] = ACTIONS(4480),
    [sym_cast] = ACTIONS(4480),
    [sym_catch] = ACTIONS(4480),
    [sym_class] = ACTIONS(4480),
    [sym_const] = ACTIONS(4480),
    [sym_continue] = ACTIONS(4480),
    [sym_debug] = ACTIONS(4480),
    [sym_default] = ACTIONS(4480),
    [sym_delegate] = ACTIONS(4480),
    [sym_delete] = ACTIONS(4480),
    [sym_deprecated] = ACTIONS(4480),
    [sym_do] = ACTIONS(4480),
    [sym_else] = ACTIONS(4480),
    [sym_enum] = ACTIONS(4480),
    [sym_export] = ACTIONS(4480),
    [sym_extern] = ACTIONS(4480),
    [sym_final] = ACTIONS(4480),
    [sym_finally] = ACTIONS(4480),
    [sym_for] = ACTIONS(4480),
    [sym_foreach] = ACTIONS(4480),
    [sym_foreach_reverse] = ACTIONS(4480),
    [sym_function] = ACTIONS(4480),
    [sym_goto] = ACTIONS(4480),
    [sym_if] = ACTIONS(4480),
    [sym_immutable] = ACTIONS(4480),
    [sym_import] = ACTIONS(4480),
    [sym_in] = ACTIONS(4480),
    [sym_inout] = ACTIONS(4480),
    [sym_interface] = ACTIONS(4480),
    [sym_invariant] = ACTIONS(4480),
    [sym_is] = ACTIONS(4480),
    [sym_mixin] = ACTIONS(4480),
    [sym_new] = ACTIONS(4480),
    [sym_nothrow] = ACTIONS(4480),
    [sym_out] = ACTIONS(4480),
    [sym_override] = ACTIONS(4480),
    [sym_package] = ACTIONS(4480),
    [sym_pragma] = ACTIONS(4480),
    [sym_private] = ACTIONS(4480),
    [sym_protected] = ACTIONS(4480),
    [sym_public] = ACTIONS(4480),
    [sym_pure] = ACTIONS(4480),
    [sym_ref] = ACTIONS(4480),
    [sym_return] = ACTIONS(4480),
    [sym_scope] = ACTIONS(4480),
    [sym_shared] = ACTIONS(4480),
    [sym_static] = ACTIONS(4480),
    [sym_struct] = ACTIONS(4480),
    [sym_switch] = ACTIONS(4480),
    [sym_synchronized] = ACTIONS(4480),
    [sym_template] = ACTIONS(4480),
    [sym_throw] = ACTIONS(4480),
    [sym_try] = ACTIONS(4480),
    [sym_typeid] = ACTIONS(4480),
    [sym_typeof] = ACTIONS(4480),
    [sym_union] = ACTIONS(4480),
    [sym_unittest] = ACTIONS(4480),
    [sym_version] = ACTIONS(4480),
    [sym_while] = ACTIONS(4480),
    [sym_with] = ACTIONS(4480),
    [sym_gshared] = ACTIONS(4480),
    [sym_traits] = ACTIONS(4480),
    [sym_vector] = ACTIONS(4480),
    [sym_void] = ACTIONS(4480),
    [anon_sym_BQUOTE] = ACTIONS(4482),
    [anon_sym_r_DQUOTE] = ACTIONS(4482),
    [anon_sym_x_DQUOTE] = ACTIONS(4482),
    [anon_sym_DQUOTE] = ACTIONS(4482),
    [anon_sym_i_BQUOTE] = ACTIONS(4482),
    [anon_sym_i_DQUOTE] = ACTIONS(4482),
    [anon_sym_iq_LBRACE] = ACTIONS(4482),
    [aux_sym_char_literal_token1] = ACTIONS(4482),
    [anon_sym_SQUOTE] = ACTIONS(4480),
    [anon_sym___DATE__] = ACTIONS(4480),
    [anon_sym___FILE__] = ACTIONS(4480),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4480),
    [anon_sym___FUNCTION__] = ACTIONS(4480),
    [anon_sym___LINE__] = ACTIONS(4480),
    [anon_sym___MODULE__] = ACTIONS(4480),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4480),
    [anon_sym___TIME__] = ACTIONS(4480),
    [anon_sym___TIMESTAMP__] = ACTIONS(4480),
    [anon_sym___VENDOR__] = ACTIONS(4480),
    [anon_sym___VERSION__] = ACTIONS(4480),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4482),
    [sym_float_literal] = ACTIONS(4482),
    [sym__string] = ACTIONS(4482),
  },
  [1401] = {
    [sym_identifier] = ACTIONS(4484),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4486),
    [anon_sym_RBRACE] = ACTIONS(4486),
    [anon_sym_LBRACE] = ACTIONS(4486),
    [anon_sym_DOT] = ACTIONS(4486),
    [anon_sym_AMP] = ACTIONS(4486),
    [anon_sym_DASH] = ACTIONS(4484),
    [anon_sym_DASH_DASH] = ACTIONS(4486),
    [anon_sym_PLUS] = ACTIONS(4484),
    [anon_sym_PLUS_PLUS] = ACTIONS(4486),
    [anon_sym_BANG] = ACTIONS(4486),
    [anon_sym_LPAREN] = ACTIONS(4486),
    [anon_sym_RPAREN] = ACTIONS(4486),
    [anon_sym_LBRACK] = ACTIONS(4486),
    [anon_sym_SEMI] = ACTIONS(4486),
    [anon_sym_DOLLAR] = ACTIONS(4486),
    [anon_sym_STAR] = ACTIONS(4486),
    [anon_sym_TILDE] = ACTIONS(4486),
    [anon_sym_AT] = ACTIONS(4486),
    [sym_bool] = ACTIONS(4484),
    [sym_byte] = ACTIONS(4484),
    [sym_ubyte] = ACTIONS(4484),
    [sym_char] = ACTIONS(4484),
    [sym_short] = ACTIONS(4484),
    [sym_ushort] = ACTIONS(4484),
    [sym_int] = ACTIONS(4484),
    [sym_uint] = ACTIONS(4484),
    [sym_long] = ACTIONS(4484),
    [sym_ulong] = ACTIONS(4484),
    [sym_cent] = ACTIONS(4484),
    [sym_ucent] = ACTIONS(4484),
    [sym_wchar] = ACTIONS(4484),
    [sym_dchar] = ACTIONS(4484),
    [sym_float] = ACTIONS(4484),
    [sym_double] = ACTIONS(4484),
    [sym_real] = ACTIONS(4484),
    [sym_ifloat] = ACTIONS(4484),
    [sym_idouble] = ACTIONS(4484),
    [sym_ireal] = ACTIONS(4484),
    [sym_cfloat] = ACTIONS(4484),
    [sym_cdouble] = ACTIONS(4484),
    [sym_creal] = ACTIONS(4484),
    [sym_size_t] = ACTIONS(4484),
    [sym_ptrdiff_t] = ACTIONS(4484),
    [sym_string] = ACTIONS(4484),
    [sym_cstring] = ACTIONS(4484),
    [sym_dstring] = ACTIONS(4484),
    [sym_wstring] = ACTIONS(4484),
    [sym_noreturn] = ACTIONS(4484),
    [sym_true] = ACTIONS(4484),
    [sym_false] = ACTIONS(4484),
    [sym_null] = ACTIONS(4484),
    [sym_super] = ACTIONS(4484),
    [sym_this] = ACTIONS(4484),
    [sym_abstract] = ACTIONS(4484),
    [sym_alias] = ACTIONS(4484),
    [sym_align] = ACTIONS(4484),
    [sym_asm] = ACTIONS(4484),
    [sym_assert] = ACTIONS(4484),
    [sym_auto] = ACTIONS(4484),
    [sym_break] = ACTIONS(4484),
    [sym_case] = ACTIONS(4484),
    [sym_cast] = ACTIONS(4484),
    [sym_catch] = ACTIONS(4484),
    [sym_class] = ACTIONS(4484),
    [sym_const] = ACTIONS(4484),
    [sym_continue] = ACTIONS(4484),
    [sym_debug] = ACTIONS(4484),
    [sym_default] = ACTIONS(4484),
    [sym_delegate] = ACTIONS(4484),
    [sym_delete] = ACTIONS(4484),
    [sym_deprecated] = ACTIONS(4484),
    [sym_do] = ACTIONS(4484),
    [sym_else] = ACTIONS(4484),
    [sym_enum] = ACTIONS(4484),
    [sym_export] = ACTIONS(4484),
    [sym_extern] = ACTIONS(4484),
    [sym_final] = ACTIONS(4484),
    [sym_finally] = ACTIONS(4484),
    [sym_for] = ACTIONS(4484),
    [sym_foreach] = ACTIONS(4484),
    [sym_foreach_reverse] = ACTIONS(4484),
    [sym_function] = ACTIONS(4484),
    [sym_goto] = ACTIONS(4484),
    [sym_if] = ACTIONS(4484),
    [sym_immutable] = ACTIONS(4484),
    [sym_import] = ACTIONS(4484),
    [sym_in] = ACTIONS(4484),
    [sym_inout] = ACTIONS(4484),
    [sym_interface] = ACTIONS(4484),
    [sym_invariant] = ACTIONS(4484),
    [sym_is] = ACTIONS(4484),
    [sym_mixin] = ACTIONS(4484),
    [sym_new] = ACTIONS(4484),
    [sym_nothrow] = ACTIONS(4484),
    [sym_out] = ACTIONS(4484),
    [sym_override] = ACTIONS(4484),
    [sym_package] = ACTIONS(4484),
    [sym_pragma] = ACTIONS(4484),
    [sym_private] = ACTIONS(4484),
    [sym_protected] = ACTIONS(4484),
    [sym_public] = ACTIONS(4484),
    [sym_pure] = ACTIONS(4484),
    [sym_ref] = ACTIONS(4484),
    [sym_return] = ACTIONS(4484),
    [sym_scope] = ACTIONS(4484),
    [sym_shared] = ACTIONS(4484),
    [sym_static] = ACTIONS(4484),
    [sym_struct] = ACTIONS(4484),
    [sym_switch] = ACTIONS(4484),
    [sym_synchronized] = ACTIONS(4484),
    [sym_template] = ACTIONS(4484),
    [sym_throw] = ACTIONS(4484),
    [sym_try] = ACTIONS(4484),
    [sym_typeid] = ACTIONS(4484),
    [sym_typeof] = ACTIONS(4484),
    [sym_union] = ACTIONS(4484),
    [sym_unittest] = ACTIONS(4484),
    [sym_version] = ACTIONS(4484),
    [sym_while] = ACTIONS(4484),
    [sym_with] = ACTIONS(4484),
    [sym_gshared] = ACTIONS(4484),
    [sym_traits] = ACTIONS(4484),
    [sym_vector] = ACTIONS(4484),
    [sym_void] = ACTIONS(4484),
    [anon_sym_BQUOTE] = ACTIONS(4486),
    [anon_sym_r_DQUOTE] = ACTIONS(4486),
    [anon_sym_x_DQUOTE] = ACTIONS(4486),
    [anon_sym_DQUOTE] = ACTIONS(4486),
    [anon_sym_i_BQUOTE] = ACTIONS(4486),
    [anon_sym_i_DQUOTE] = ACTIONS(4486),
    [anon_sym_iq_LBRACE] = ACTIONS(4486),
    [aux_sym_char_literal_token1] = ACTIONS(4486),
    [anon_sym_SQUOTE] = ACTIONS(4484),
    [anon_sym___DATE__] = ACTIONS(4484),
    [anon_sym___FILE__] = ACTIONS(4484),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4484),
    [anon_sym___FUNCTION__] = ACTIONS(4484),
    [anon_sym___LINE__] = ACTIONS(4484),
    [anon_sym___MODULE__] = ACTIONS(4484),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4484),
    [anon_sym___TIME__] = ACTIONS(4484),
    [anon_sym___TIMESTAMP__] = ACTIONS(4484),
    [anon_sym___VENDOR__] = ACTIONS(4484),
    [anon_sym___VERSION__] = ACTIONS(4484),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4486),
    [sym_float_literal] = ACTIONS(4486),
    [sym__string] = ACTIONS(4486),
  },
  [1402] = {
    [sym_identifier] = ACTIONS(4488),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4490),
    [anon_sym_RBRACE] = ACTIONS(4490),
    [anon_sym_LBRACE] = ACTIONS(4490),
    [anon_sym_DOT] = ACTIONS(4490),
    [anon_sym_AMP] = ACTIONS(4490),
    [anon_sym_DASH] = ACTIONS(4488),
    [anon_sym_DASH_DASH] = ACTIONS(4490),
    [anon_sym_PLUS] = ACTIONS(4488),
    [anon_sym_PLUS_PLUS] = ACTIONS(4490),
    [anon_sym_BANG] = ACTIONS(4490),
    [anon_sym_LPAREN] = ACTIONS(4490),
    [anon_sym_RPAREN] = ACTIONS(4490),
    [anon_sym_LBRACK] = ACTIONS(4490),
    [anon_sym_SEMI] = ACTIONS(4490),
    [anon_sym_DOLLAR] = ACTIONS(4490),
    [anon_sym_STAR] = ACTIONS(4490),
    [anon_sym_TILDE] = ACTIONS(4490),
    [anon_sym_AT] = ACTIONS(4490),
    [sym_bool] = ACTIONS(4488),
    [sym_byte] = ACTIONS(4488),
    [sym_ubyte] = ACTIONS(4488),
    [sym_char] = ACTIONS(4488),
    [sym_short] = ACTIONS(4488),
    [sym_ushort] = ACTIONS(4488),
    [sym_int] = ACTIONS(4488),
    [sym_uint] = ACTIONS(4488),
    [sym_long] = ACTIONS(4488),
    [sym_ulong] = ACTIONS(4488),
    [sym_cent] = ACTIONS(4488),
    [sym_ucent] = ACTIONS(4488),
    [sym_wchar] = ACTIONS(4488),
    [sym_dchar] = ACTIONS(4488),
    [sym_float] = ACTIONS(4488),
    [sym_double] = ACTIONS(4488),
    [sym_real] = ACTIONS(4488),
    [sym_ifloat] = ACTIONS(4488),
    [sym_idouble] = ACTIONS(4488),
    [sym_ireal] = ACTIONS(4488),
    [sym_cfloat] = ACTIONS(4488),
    [sym_cdouble] = ACTIONS(4488),
    [sym_creal] = ACTIONS(4488),
    [sym_size_t] = ACTIONS(4488),
    [sym_ptrdiff_t] = ACTIONS(4488),
    [sym_string] = ACTIONS(4488),
    [sym_cstring] = ACTIONS(4488),
    [sym_dstring] = ACTIONS(4488),
    [sym_wstring] = ACTIONS(4488),
    [sym_noreturn] = ACTIONS(4488),
    [sym_true] = ACTIONS(4488),
    [sym_false] = ACTIONS(4488),
    [sym_null] = ACTIONS(4488),
    [sym_super] = ACTIONS(4488),
    [sym_this] = ACTIONS(4488),
    [sym_abstract] = ACTIONS(4488),
    [sym_alias] = ACTIONS(4488),
    [sym_align] = ACTIONS(4488),
    [sym_asm] = ACTIONS(4488),
    [sym_assert] = ACTIONS(4488),
    [sym_auto] = ACTIONS(4488),
    [sym_break] = ACTIONS(4488),
    [sym_case] = ACTIONS(4488),
    [sym_cast] = ACTIONS(4488),
    [sym_catch] = ACTIONS(4488),
    [sym_class] = ACTIONS(4488),
    [sym_const] = ACTIONS(4488),
    [sym_continue] = ACTIONS(4488),
    [sym_debug] = ACTIONS(4488),
    [sym_default] = ACTIONS(4488),
    [sym_delegate] = ACTIONS(4488),
    [sym_delete] = ACTIONS(4488),
    [sym_deprecated] = ACTIONS(4488),
    [sym_do] = ACTIONS(4488),
    [sym_else] = ACTIONS(4488),
    [sym_enum] = ACTIONS(4488),
    [sym_export] = ACTIONS(4488),
    [sym_extern] = ACTIONS(4488),
    [sym_final] = ACTIONS(4488),
    [sym_finally] = ACTIONS(4488),
    [sym_for] = ACTIONS(4488),
    [sym_foreach] = ACTIONS(4488),
    [sym_foreach_reverse] = ACTIONS(4488),
    [sym_function] = ACTIONS(4488),
    [sym_goto] = ACTIONS(4488),
    [sym_if] = ACTIONS(4488),
    [sym_immutable] = ACTIONS(4488),
    [sym_import] = ACTIONS(4488),
    [sym_in] = ACTIONS(4488),
    [sym_inout] = ACTIONS(4488),
    [sym_interface] = ACTIONS(4488),
    [sym_invariant] = ACTIONS(4488),
    [sym_is] = ACTIONS(4488),
    [sym_mixin] = ACTIONS(4488),
    [sym_new] = ACTIONS(4488),
    [sym_nothrow] = ACTIONS(4488),
    [sym_out] = ACTIONS(4488),
    [sym_override] = ACTIONS(4488),
    [sym_package] = ACTIONS(4488),
    [sym_pragma] = ACTIONS(4488),
    [sym_private] = ACTIONS(4488),
    [sym_protected] = ACTIONS(4488),
    [sym_public] = ACTIONS(4488),
    [sym_pure] = ACTIONS(4488),
    [sym_ref] = ACTIONS(4488),
    [sym_return] = ACTIONS(4488),
    [sym_scope] = ACTIONS(4488),
    [sym_shared] = ACTIONS(4488),
    [sym_static] = ACTIONS(4488),
    [sym_struct] = ACTIONS(4488),
    [sym_switch] = ACTIONS(4488),
    [sym_synchronized] = ACTIONS(4488),
    [sym_template] = ACTIONS(4488),
    [sym_throw] = ACTIONS(4488),
    [sym_try] = ACTIONS(4488),
    [sym_typeid] = ACTIONS(4488),
    [sym_typeof] = ACTIONS(4488),
    [sym_union] = ACTIONS(4488),
    [sym_unittest] = ACTIONS(4488),
    [sym_version] = ACTIONS(4488),
    [sym_while] = ACTIONS(4488),
    [sym_with] = ACTIONS(4488),
    [sym_gshared] = ACTIONS(4488),
    [sym_traits] = ACTIONS(4488),
    [sym_vector] = ACTIONS(4488),
    [sym_void] = ACTIONS(4488),
    [anon_sym_BQUOTE] = ACTIONS(4490),
    [anon_sym_r_DQUOTE] = ACTIONS(4490),
    [anon_sym_x_DQUOTE] = ACTIONS(4490),
    [anon_sym_DQUOTE] = ACTIONS(4490),
    [anon_sym_i_BQUOTE] = ACTIONS(4490),
    [anon_sym_i_DQUOTE] = ACTIONS(4490),
    [anon_sym_iq_LBRACE] = ACTIONS(4490),
    [aux_sym_char_literal_token1] = ACTIONS(4490),
    [anon_sym_SQUOTE] = ACTIONS(4488),
    [anon_sym___DATE__] = ACTIONS(4488),
    [anon_sym___FILE__] = ACTIONS(4488),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4488),
    [anon_sym___FUNCTION__] = ACTIONS(4488),
    [anon_sym___LINE__] = ACTIONS(4488),
    [anon_sym___MODULE__] = ACTIONS(4488),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4488),
    [anon_sym___TIME__] = ACTIONS(4488),
    [anon_sym___TIMESTAMP__] = ACTIONS(4488),
    [anon_sym___VENDOR__] = ACTIONS(4488),
    [anon_sym___VERSION__] = ACTIONS(4488),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4490),
    [sym_float_literal] = ACTIONS(4490),
    [sym__string] = ACTIONS(4490),
  },
  [1403] = {
    [sym_identifier] = ACTIONS(4492),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4494),
    [anon_sym_RBRACE] = ACTIONS(4494),
    [anon_sym_LBRACE] = ACTIONS(4494),
    [anon_sym_DOT] = ACTIONS(4494),
    [anon_sym_AMP] = ACTIONS(4494),
    [anon_sym_DASH] = ACTIONS(4492),
    [anon_sym_DASH_DASH] = ACTIONS(4494),
    [anon_sym_PLUS] = ACTIONS(4492),
    [anon_sym_PLUS_PLUS] = ACTIONS(4494),
    [anon_sym_BANG] = ACTIONS(4494),
    [anon_sym_LPAREN] = ACTIONS(4494),
    [anon_sym_RPAREN] = ACTIONS(4494),
    [anon_sym_LBRACK] = ACTIONS(4494),
    [anon_sym_SEMI] = ACTIONS(4494),
    [anon_sym_DOLLAR] = ACTIONS(4494),
    [anon_sym_STAR] = ACTIONS(4494),
    [anon_sym_TILDE] = ACTIONS(4494),
    [anon_sym_AT] = ACTIONS(4494),
    [sym_bool] = ACTIONS(4492),
    [sym_byte] = ACTIONS(4492),
    [sym_ubyte] = ACTIONS(4492),
    [sym_char] = ACTIONS(4492),
    [sym_short] = ACTIONS(4492),
    [sym_ushort] = ACTIONS(4492),
    [sym_int] = ACTIONS(4492),
    [sym_uint] = ACTIONS(4492),
    [sym_long] = ACTIONS(4492),
    [sym_ulong] = ACTIONS(4492),
    [sym_cent] = ACTIONS(4492),
    [sym_ucent] = ACTIONS(4492),
    [sym_wchar] = ACTIONS(4492),
    [sym_dchar] = ACTIONS(4492),
    [sym_float] = ACTIONS(4492),
    [sym_double] = ACTIONS(4492),
    [sym_real] = ACTIONS(4492),
    [sym_ifloat] = ACTIONS(4492),
    [sym_idouble] = ACTIONS(4492),
    [sym_ireal] = ACTIONS(4492),
    [sym_cfloat] = ACTIONS(4492),
    [sym_cdouble] = ACTIONS(4492),
    [sym_creal] = ACTIONS(4492),
    [sym_size_t] = ACTIONS(4492),
    [sym_ptrdiff_t] = ACTIONS(4492),
    [sym_string] = ACTIONS(4492),
    [sym_cstring] = ACTIONS(4492),
    [sym_dstring] = ACTIONS(4492),
    [sym_wstring] = ACTIONS(4492),
    [sym_noreturn] = ACTIONS(4492),
    [sym_true] = ACTIONS(4492),
    [sym_false] = ACTIONS(4492),
    [sym_null] = ACTIONS(4492),
    [sym_super] = ACTIONS(4492),
    [sym_this] = ACTIONS(4492),
    [sym_abstract] = ACTIONS(4492),
    [sym_alias] = ACTIONS(4492),
    [sym_align] = ACTIONS(4492),
    [sym_asm] = ACTIONS(4492),
    [sym_assert] = ACTIONS(4492),
    [sym_auto] = ACTIONS(4492),
    [sym_break] = ACTIONS(4492),
    [sym_case] = ACTIONS(4492),
    [sym_cast] = ACTIONS(4492),
    [sym_catch] = ACTIONS(4492),
    [sym_class] = ACTIONS(4492),
    [sym_const] = ACTIONS(4492),
    [sym_continue] = ACTIONS(4492),
    [sym_debug] = ACTIONS(4492),
    [sym_default] = ACTIONS(4492),
    [sym_delegate] = ACTIONS(4492),
    [sym_delete] = ACTIONS(4492),
    [sym_deprecated] = ACTIONS(4492),
    [sym_do] = ACTIONS(4492),
    [sym_else] = ACTIONS(4492),
    [sym_enum] = ACTIONS(4492),
    [sym_export] = ACTIONS(4492),
    [sym_extern] = ACTIONS(4492),
    [sym_final] = ACTIONS(4492),
    [sym_finally] = ACTIONS(4492),
    [sym_for] = ACTIONS(4492),
    [sym_foreach] = ACTIONS(4492),
    [sym_foreach_reverse] = ACTIONS(4492),
    [sym_function] = ACTIONS(4492),
    [sym_goto] = ACTIONS(4492),
    [sym_if] = ACTIONS(4492),
    [sym_immutable] = ACTIONS(4492),
    [sym_import] = ACTIONS(4492),
    [sym_in] = ACTIONS(4492),
    [sym_inout] = ACTIONS(4492),
    [sym_interface] = ACTIONS(4492),
    [sym_invariant] = ACTIONS(4492),
    [sym_is] = ACTIONS(4492),
    [sym_mixin] = ACTIONS(4492),
    [sym_new] = ACTIONS(4492),
    [sym_nothrow] = ACTIONS(4492),
    [sym_out] = ACTIONS(4492),
    [sym_override] = ACTIONS(4492),
    [sym_package] = ACTIONS(4492),
    [sym_pragma] = ACTIONS(4492),
    [sym_private] = ACTIONS(4492),
    [sym_protected] = ACTIONS(4492),
    [sym_public] = ACTIONS(4492),
    [sym_pure] = ACTIONS(4492),
    [sym_ref] = ACTIONS(4492),
    [sym_return] = ACTIONS(4492),
    [sym_scope] = ACTIONS(4492),
    [sym_shared] = ACTIONS(4492),
    [sym_static] = ACTIONS(4492),
    [sym_struct] = ACTIONS(4492),
    [sym_switch] = ACTIONS(4492),
    [sym_synchronized] = ACTIONS(4492),
    [sym_template] = ACTIONS(4492),
    [sym_throw] = ACTIONS(4492),
    [sym_try] = ACTIONS(4492),
    [sym_typeid] = ACTIONS(4492),
    [sym_typeof] = ACTIONS(4492),
    [sym_union] = ACTIONS(4492),
    [sym_unittest] = ACTIONS(4492),
    [sym_version] = ACTIONS(4492),
    [sym_while] = ACTIONS(4492),
    [sym_with] = ACTIONS(4492),
    [sym_gshared] = ACTIONS(4492),
    [sym_traits] = ACTIONS(4492),
    [sym_vector] = ACTIONS(4492),
    [sym_void] = ACTIONS(4492),
    [anon_sym_BQUOTE] = ACTIONS(4494),
    [anon_sym_r_DQUOTE] = ACTIONS(4494),
    [anon_sym_x_DQUOTE] = ACTIONS(4494),
    [anon_sym_DQUOTE] = ACTIONS(4494),
    [anon_sym_i_BQUOTE] = ACTIONS(4494),
    [anon_sym_i_DQUOTE] = ACTIONS(4494),
    [anon_sym_iq_LBRACE] = ACTIONS(4494),
    [aux_sym_char_literal_token1] = ACTIONS(4494),
    [anon_sym_SQUOTE] = ACTIONS(4492),
    [anon_sym___DATE__] = ACTIONS(4492),
    [anon_sym___FILE__] = ACTIONS(4492),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4492),
    [anon_sym___FUNCTION__] = ACTIONS(4492),
    [anon_sym___LINE__] = ACTIONS(4492),
    [anon_sym___MODULE__] = ACTIONS(4492),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4492),
    [anon_sym___TIME__] = ACTIONS(4492),
    [anon_sym___TIMESTAMP__] = ACTIONS(4492),
    [anon_sym___VENDOR__] = ACTIONS(4492),
    [anon_sym___VERSION__] = ACTIONS(4492),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4494),
    [sym_float_literal] = ACTIONS(4494),
    [sym__string] = ACTIONS(4494),
  },
  [1404] = {
    [sym_identifier] = ACTIONS(4496),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4498),
    [anon_sym_RBRACE] = ACTIONS(4498),
    [anon_sym_LBRACE] = ACTIONS(4498),
    [anon_sym_DOT] = ACTIONS(4498),
    [anon_sym_AMP] = ACTIONS(4498),
    [anon_sym_DASH] = ACTIONS(4496),
    [anon_sym_DASH_DASH] = ACTIONS(4498),
    [anon_sym_PLUS] = ACTIONS(4496),
    [anon_sym_PLUS_PLUS] = ACTIONS(4498),
    [anon_sym_BANG] = ACTIONS(4498),
    [anon_sym_LPAREN] = ACTIONS(4498),
    [anon_sym_RPAREN] = ACTIONS(4498),
    [anon_sym_LBRACK] = ACTIONS(4498),
    [anon_sym_SEMI] = ACTIONS(4498),
    [anon_sym_DOLLAR] = ACTIONS(4498),
    [anon_sym_STAR] = ACTIONS(4498),
    [anon_sym_TILDE] = ACTIONS(4498),
    [anon_sym_AT] = ACTIONS(4498),
    [sym_bool] = ACTIONS(4496),
    [sym_byte] = ACTIONS(4496),
    [sym_ubyte] = ACTIONS(4496),
    [sym_char] = ACTIONS(4496),
    [sym_short] = ACTIONS(4496),
    [sym_ushort] = ACTIONS(4496),
    [sym_int] = ACTIONS(4496),
    [sym_uint] = ACTIONS(4496),
    [sym_long] = ACTIONS(4496),
    [sym_ulong] = ACTIONS(4496),
    [sym_cent] = ACTIONS(4496),
    [sym_ucent] = ACTIONS(4496),
    [sym_wchar] = ACTIONS(4496),
    [sym_dchar] = ACTIONS(4496),
    [sym_float] = ACTIONS(4496),
    [sym_double] = ACTIONS(4496),
    [sym_real] = ACTIONS(4496),
    [sym_ifloat] = ACTIONS(4496),
    [sym_idouble] = ACTIONS(4496),
    [sym_ireal] = ACTIONS(4496),
    [sym_cfloat] = ACTIONS(4496),
    [sym_cdouble] = ACTIONS(4496),
    [sym_creal] = ACTIONS(4496),
    [sym_size_t] = ACTIONS(4496),
    [sym_ptrdiff_t] = ACTIONS(4496),
    [sym_string] = ACTIONS(4496),
    [sym_cstring] = ACTIONS(4496),
    [sym_dstring] = ACTIONS(4496),
    [sym_wstring] = ACTIONS(4496),
    [sym_noreturn] = ACTIONS(4496),
    [sym_true] = ACTIONS(4496),
    [sym_false] = ACTIONS(4496),
    [sym_null] = ACTIONS(4496),
    [sym_super] = ACTIONS(4496),
    [sym_this] = ACTIONS(4496),
    [sym_abstract] = ACTIONS(4496),
    [sym_alias] = ACTIONS(4496),
    [sym_align] = ACTIONS(4496),
    [sym_asm] = ACTIONS(4496),
    [sym_assert] = ACTIONS(4496),
    [sym_auto] = ACTIONS(4496),
    [sym_break] = ACTIONS(4496),
    [sym_case] = ACTIONS(4496),
    [sym_cast] = ACTIONS(4496),
    [sym_catch] = ACTIONS(4496),
    [sym_class] = ACTIONS(4496),
    [sym_const] = ACTIONS(4496),
    [sym_continue] = ACTIONS(4496),
    [sym_debug] = ACTIONS(4496),
    [sym_default] = ACTIONS(4496),
    [sym_delegate] = ACTIONS(4496),
    [sym_delete] = ACTIONS(4496),
    [sym_deprecated] = ACTIONS(4496),
    [sym_do] = ACTIONS(4496),
    [sym_else] = ACTIONS(4496),
    [sym_enum] = ACTIONS(4496),
    [sym_export] = ACTIONS(4496),
    [sym_extern] = ACTIONS(4496),
    [sym_final] = ACTIONS(4496),
    [sym_finally] = ACTIONS(4496),
    [sym_for] = ACTIONS(4496),
    [sym_foreach] = ACTIONS(4496),
    [sym_foreach_reverse] = ACTIONS(4496),
    [sym_function] = ACTIONS(4496),
    [sym_goto] = ACTIONS(4496),
    [sym_if] = ACTIONS(4496),
    [sym_immutable] = ACTIONS(4496),
    [sym_import] = ACTIONS(4496),
    [sym_in] = ACTIONS(4496),
    [sym_inout] = ACTIONS(4496),
    [sym_interface] = ACTIONS(4496),
    [sym_invariant] = ACTIONS(4496),
    [sym_is] = ACTIONS(4496),
    [sym_mixin] = ACTIONS(4496),
    [sym_new] = ACTIONS(4496),
    [sym_nothrow] = ACTIONS(4496),
    [sym_out] = ACTIONS(4496),
    [sym_override] = ACTIONS(4496),
    [sym_package] = ACTIONS(4496),
    [sym_pragma] = ACTIONS(4496),
    [sym_private] = ACTIONS(4496),
    [sym_protected] = ACTIONS(4496),
    [sym_public] = ACTIONS(4496),
    [sym_pure] = ACTIONS(4496),
    [sym_ref] = ACTIONS(4496),
    [sym_return] = ACTIONS(4496),
    [sym_scope] = ACTIONS(4496),
    [sym_shared] = ACTIONS(4496),
    [sym_static] = ACTIONS(4496),
    [sym_struct] = ACTIONS(4496),
    [sym_switch] = ACTIONS(4496),
    [sym_synchronized] = ACTIONS(4496),
    [sym_template] = ACTIONS(4496),
    [sym_throw] = ACTIONS(4496),
    [sym_try] = ACTIONS(4496),
    [sym_typeid] = ACTIONS(4496),
    [sym_typeof] = ACTIONS(4496),
    [sym_union] = ACTIONS(4496),
    [sym_unittest] = ACTIONS(4496),
    [sym_version] = ACTIONS(4496),
    [sym_while] = ACTIONS(4496),
    [sym_with] = ACTIONS(4496),
    [sym_gshared] = ACTIONS(4496),
    [sym_traits] = ACTIONS(4496),
    [sym_vector] = ACTIONS(4496),
    [sym_void] = ACTIONS(4496),
    [anon_sym_BQUOTE] = ACTIONS(4498),
    [anon_sym_r_DQUOTE] = ACTIONS(4498),
    [anon_sym_x_DQUOTE] = ACTIONS(4498),
    [anon_sym_DQUOTE] = ACTIONS(4498),
    [anon_sym_i_BQUOTE] = ACTIONS(4498),
    [anon_sym_i_DQUOTE] = ACTIONS(4498),
    [anon_sym_iq_LBRACE] = ACTIONS(4498),
    [aux_sym_char_literal_token1] = ACTIONS(4498),
    [anon_sym_SQUOTE] = ACTIONS(4496),
    [anon_sym___DATE__] = ACTIONS(4496),
    [anon_sym___FILE__] = ACTIONS(4496),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4496),
    [anon_sym___FUNCTION__] = ACTIONS(4496),
    [anon_sym___LINE__] = ACTIONS(4496),
    [anon_sym___MODULE__] = ACTIONS(4496),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4496),
    [anon_sym___TIME__] = ACTIONS(4496),
    [anon_sym___TIMESTAMP__] = ACTIONS(4496),
    [anon_sym___VENDOR__] = ACTIONS(4496),
    [anon_sym___VERSION__] = ACTIONS(4496),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4498),
    [sym_float_literal] = ACTIONS(4498),
    [sym__string] = ACTIONS(4498),
  },
  [1405] = {
    [sym_identifier] = ACTIONS(4500),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4502),
    [anon_sym_RBRACE] = ACTIONS(4502),
    [anon_sym_LBRACE] = ACTIONS(4502),
    [anon_sym_DOT] = ACTIONS(4502),
    [anon_sym_AMP] = ACTIONS(4502),
    [anon_sym_DASH] = ACTIONS(4500),
    [anon_sym_DASH_DASH] = ACTIONS(4502),
    [anon_sym_PLUS] = ACTIONS(4500),
    [anon_sym_PLUS_PLUS] = ACTIONS(4502),
    [anon_sym_BANG] = ACTIONS(4502),
    [anon_sym_LPAREN] = ACTIONS(4502),
    [anon_sym_RPAREN] = ACTIONS(4502),
    [anon_sym_LBRACK] = ACTIONS(4502),
    [anon_sym_SEMI] = ACTIONS(4502),
    [anon_sym_DOLLAR] = ACTIONS(4502),
    [anon_sym_STAR] = ACTIONS(4502),
    [anon_sym_TILDE] = ACTIONS(4502),
    [anon_sym_AT] = ACTIONS(4502),
    [sym_bool] = ACTIONS(4500),
    [sym_byte] = ACTIONS(4500),
    [sym_ubyte] = ACTIONS(4500),
    [sym_char] = ACTIONS(4500),
    [sym_short] = ACTIONS(4500),
    [sym_ushort] = ACTIONS(4500),
    [sym_int] = ACTIONS(4500),
    [sym_uint] = ACTIONS(4500),
    [sym_long] = ACTIONS(4500),
    [sym_ulong] = ACTIONS(4500),
    [sym_cent] = ACTIONS(4500),
    [sym_ucent] = ACTIONS(4500),
    [sym_wchar] = ACTIONS(4500),
    [sym_dchar] = ACTIONS(4500),
    [sym_float] = ACTIONS(4500),
    [sym_double] = ACTIONS(4500),
    [sym_real] = ACTIONS(4500),
    [sym_ifloat] = ACTIONS(4500),
    [sym_idouble] = ACTIONS(4500),
    [sym_ireal] = ACTIONS(4500),
    [sym_cfloat] = ACTIONS(4500),
    [sym_cdouble] = ACTIONS(4500),
    [sym_creal] = ACTIONS(4500),
    [sym_size_t] = ACTIONS(4500),
    [sym_ptrdiff_t] = ACTIONS(4500),
    [sym_string] = ACTIONS(4500),
    [sym_cstring] = ACTIONS(4500),
    [sym_dstring] = ACTIONS(4500),
    [sym_wstring] = ACTIONS(4500),
    [sym_noreturn] = ACTIONS(4500),
    [sym_true] = ACTIONS(4500),
    [sym_false] = ACTIONS(4500),
    [sym_null] = ACTIONS(4500),
    [sym_super] = ACTIONS(4500),
    [sym_this] = ACTIONS(4500),
    [sym_abstract] = ACTIONS(4500),
    [sym_alias] = ACTIONS(4500),
    [sym_align] = ACTIONS(4500),
    [sym_asm] = ACTIONS(4500),
    [sym_assert] = ACTIONS(4500),
    [sym_auto] = ACTIONS(4500),
    [sym_break] = ACTIONS(4500),
    [sym_case] = ACTIONS(4500),
    [sym_cast] = ACTIONS(4500),
    [sym_catch] = ACTIONS(4500),
    [sym_class] = ACTIONS(4500),
    [sym_const] = ACTIONS(4500),
    [sym_continue] = ACTIONS(4500),
    [sym_debug] = ACTIONS(4500),
    [sym_default] = ACTIONS(4500),
    [sym_delegate] = ACTIONS(4500),
    [sym_delete] = ACTIONS(4500),
    [sym_deprecated] = ACTIONS(4500),
    [sym_do] = ACTIONS(4500),
    [sym_else] = ACTIONS(4500),
    [sym_enum] = ACTIONS(4500),
    [sym_export] = ACTIONS(4500),
    [sym_extern] = ACTIONS(4500),
    [sym_final] = ACTIONS(4500),
    [sym_finally] = ACTIONS(4500),
    [sym_for] = ACTIONS(4500),
    [sym_foreach] = ACTIONS(4500),
    [sym_foreach_reverse] = ACTIONS(4500),
    [sym_function] = ACTIONS(4500),
    [sym_goto] = ACTIONS(4500),
    [sym_if] = ACTIONS(4500),
    [sym_immutable] = ACTIONS(4500),
    [sym_import] = ACTIONS(4500),
    [sym_in] = ACTIONS(4500),
    [sym_inout] = ACTIONS(4500),
    [sym_interface] = ACTIONS(4500),
    [sym_invariant] = ACTIONS(4500),
    [sym_is] = ACTIONS(4500),
    [sym_mixin] = ACTIONS(4500),
    [sym_new] = ACTIONS(4500),
    [sym_nothrow] = ACTIONS(4500),
    [sym_out] = ACTIONS(4500),
    [sym_override] = ACTIONS(4500),
    [sym_package] = ACTIONS(4500),
    [sym_pragma] = ACTIONS(4500),
    [sym_private] = ACTIONS(4500),
    [sym_protected] = ACTIONS(4500),
    [sym_public] = ACTIONS(4500),
    [sym_pure] = ACTIONS(4500),
    [sym_ref] = ACTIONS(4500),
    [sym_return] = ACTIONS(4500),
    [sym_scope] = ACTIONS(4500),
    [sym_shared] = ACTIONS(4500),
    [sym_static] = ACTIONS(4500),
    [sym_struct] = ACTIONS(4500),
    [sym_switch] = ACTIONS(4500),
    [sym_synchronized] = ACTIONS(4500),
    [sym_template] = ACTIONS(4500),
    [sym_throw] = ACTIONS(4500),
    [sym_try] = ACTIONS(4500),
    [sym_typeid] = ACTIONS(4500),
    [sym_typeof] = ACTIONS(4500),
    [sym_union] = ACTIONS(4500),
    [sym_unittest] = ACTIONS(4500),
    [sym_version] = ACTIONS(4500),
    [sym_while] = ACTIONS(4500),
    [sym_with] = ACTIONS(4500),
    [sym_gshared] = ACTIONS(4500),
    [sym_traits] = ACTIONS(4500),
    [sym_vector] = ACTIONS(4500),
    [sym_void] = ACTIONS(4500),
    [anon_sym_BQUOTE] = ACTIONS(4502),
    [anon_sym_r_DQUOTE] = ACTIONS(4502),
    [anon_sym_x_DQUOTE] = ACTIONS(4502),
    [anon_sym_DQUOTE] = ACTIONS(4502),
    [anon_sym_i_BQUOTE] = ACTIONS(4502),
    [anon_sym_i_DQUOTE] = ACTIONS(4502),
    [anon_sym_iq_LBRACE] = ACTIONS(4502),
    [aux_sym_char_literal_token1] = ACTIONS(4502),
    [anon_sym_SQUOTE] = ACTIONS(4500),
    [anon_sym___DATE__] = ACTIONS(4500),
    [anon_sym___FILE__] = ACTIONS(4500),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4500),
    [anon_sym___FUNCTION__] = ACTIONS(4500),
    [anon_sym___LINE__] = ACTIONS(4500),
    [anon_sym___MODULE__] = ACTIONS(4500),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4500),
    [anon_sym___TIME__] = ACTIONS(4500),
    [anon_sym___TIMESTAMP__] = ACTIONS(4500),
    [anon_sym___VENDOR__] = ACTIONS(4500),
    [anon_sym___VERSION__] = ACTIONS(4500),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4502),
    [sym_float_literal] = ACTIONS(4502),
    [sym__string] = ACTIONS(4502),
  },
  [1406] = {
    [sym_identifier] = ACTIONS(4504),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4506),
    [anon_sym_RBRACE] = ACTIONS(4506),
    [anon_sym_LBRACE] = ACTIONS(4506),
    [anon_sym_DOT] = ACTIONS(4506),
    [anon_sym_AMP] = ACTIONS(4506),
    [anon_sym_DASH] = ACTIONS(4504),
    [anon_sym_DASH_DASH] = ACTIONS(4506),
    [anon_sym_PLUS] = ACTIONS(4504),
    [anon_sym_PLUS_PLUS] = ACTIONS(4506),
    [anon_sym_BANG] = ACTIONS(4506),
    [anon_sym_LPAREN] = ACTIONS(4506),
    [anon_sym_RPAREN] = ACTIONS(4506),
    [anon_sym_LBRACK] = ACTIONS(4506),
    [anon_sym_SEMI] = ACTIONS(4506),
    [anon_sym_DOLLAR] = ACTIONS(4506),
    [anon_sym_STAR] = ACTIONS(4506),
    [anon_sym_TILDE] = ACTIONS(4506),
    [anon_sym_AT] = ACTIONS(4506),
    [sym_bool] = ACTIONS(4504),
    [sym_byte] = ACTIONS(4504),
    [sym_ubyte] = ACTIONS(4504),
    [sym_char] = ACTIONS(4504),
    [sym_short] = ACTIONS(4504),
    [sym_ushort] = ACTIONS(4504),
    [sym_int] = ACTIONS(4504),
    [sym_uint] = ACTIONS(4504),
    [sym_long] = ACTIONS(4504),
    [sym_ulong] = ACTIONS(4504),
    [sym_cent] = ACTIONS(4504),
    [sym_ucent] = ACTIONS(4504),
    [sym_wchar] = ACTIONS(4504),
    [sym_dchar] = ACTIONS(4504),
    [sym_float] = ACTIONS(4504),
    [sym_double] = ACTIONS(4504),
    [sym_real] = ACTIONS(4504),
    [sym_ifloat] = ACTIONS(4504),
    [sym_idouble] = ACTIONS(4504),
    [sym_ireal] = ACTIONS(4504),
    [sym_cfloat] = ACTIONS(4504),
    [sym_cdouble] = ACTIONS(4504),
    [sym_creal] = ACTIONS(4504),
    [sym_size_t] = ACTIONS(4504),
    [sym_ptrdiff_t] = ACTIONS(4504),
    [sym_string] = ACTIONS(4504),
    [sym_cstring] = ACTIONS(4504),
    [sym_dstring] = ACTIONS(4504),
    [sym_wstring] = ACTIONS(4504),
    [sym_noreturn] = ACTIONS(4504),
    [sym_true] = ACTIONS(4504),
    [sym_false] = ACTIONS(4504),
    [sym_null] = ACTIONS(4504),
    [sym_super] = ACTIONS(4504),
    [sym_this] = ACTIONS(4504),
    [sym_abstract] = ACTIONS(4504),
    [sym_alias] = ACTIONS(4504),
    [sym_align] = ACTIONS(4504),
    [sym_asm] = ACTIONS(4504),
    [sym_assert] = ACTIONS(4504),
    [sym_auto] = ACTIONS(4504),
    [sym_break] = ACTIONS(4504),
    [sym_case] = ACTIONS(4504),
    [sym_cast] = ACTIONS(4504),
    [sym_catch] = ACTIONS(4504),
    [sym_class] = ACTIONS(4504),
    [sym_const] = ACTIONS(4504),
    [sym_continue] = ACTIONS(4504),
    [sym_debug] = ACTIONS(4504),
    [sym_default] = ACTIONS(4504),
    [sym_delegate] = ACTIONS(4504),
    [sym_delete] = ACTIONS(4504),
    [sym_deprecated] = ACTIONS(4504),
    [sym_do] = ACTIONS(4504),
    [sym_else] = ACTIONS(4504),
    [sym_enum] = ACTIONS(4504),
    [sym_export] = ACTIONS(4504),
    [sym_extern] = ACTIONS(4504),
    [sym_final] = ACTIONS(4504),
    [sym_finally] = ACTIONS(4504),
    [sym_for] = ACTIONS(4504),
    [sym_foreach] = ACTIONS(4504),
    [sym_foreach_reverse] = ACTIONS(4504),
    [sym_function] = ACTIONS(4504),
    [sym_goto] = ACTIONS(4504),
    [sym_if] = ACTIONS(4504),
    [sym_immutable] = ACTIONS(4504),
    [sym_import] = ACTIONS(4504),
    [sym_in] = ACTIONS(4504),
    [sym_inout] = ACTIONS(4504),
    [sym_interface] = ACTIONS(4504),
    [sym_invariant] = ACTIONS(4504),
    [sym_is] = ACTIONS(4504),
    [sym_mixin] = ACTIONS(4504),
    [sym_new] = ACTIONS(4504),
    [sym_nothrow] = ACTIONS(4504),
    [sym_out] = ACTIONS(4504),
    [sym_override] = ACTIONS(4504),
    [sym_package] = ACTIONS(4504),
    [sym_pragma] = ACTIONS(4504),
    [sym_private] = ACTIONS(4504),
    [sym_protected] = ACTIONS(4504),
    [sym_public] = ACTIONS(4504),
    [sym_pure] = ACTIONS(4504),
    [sym_ref] = ACTIONS(4504),
    [sym_return] = ACTIONS(4504),
    [sym_scope] = ACTIONS(4504),
    [sym_shared] = ACTIONS(4504),
    [sym_static] = ACTIONS(4504),
    [sym_struct] = ACTIONS(4504),
    [sym_switch] = ACTIONS(4504),
    [sym_synchronized] = ACTIONS(4504),
    [sym_template] = ACTIONS(4504),
    [sym_throw] = ACTIONS(4504),
    [sym_try] = ACTIONS(4504),
    [sym_typeid] = ACTIONS(4504),
    [sym_typeof] = ACTIONS(4504),
    [sym_union] = ACTIONS(4504),
    [sym_unittest] = ACTIONS(4504),
    [sym_version] = ACTIONS(4504),
    [sym_while] = ACTIONS(4504),
    [sym_with] = ACTIONS(4504),
    [sym_gshared] = ACTIONS(4504),
    [sym_traits] = ACTIONS(4504),
    [sym_vector] = ACTIONS(4504),
    [sym_void] = ACTIONS(4504),
    [anon_sym_BQUOTE] = ACTIONS(4506),
    [anon_sym_r_DQUOTE] = ACTIONS(4506),
    [anon_sym_x_DQUOTE] = ACTIONS(4506),
    [anon_sym_DQUOTE] = ACTIONS(4506),
    [anon_sym_i_BQUOTE] = ACTIONS(4506),
    [anon_sym_i_DQUOTE] = ACTIONS(4506),
    [anon_sym_iq_LBRACE] = ACTIONS(4506),
    [aux_sym_char_literal_token1] = ACTIONS(4506),
    [anon_sym_SQUOTE] = ACTIONS(4504),
    [anon_sym___DATE__] = ACTIONS(4504),
    [anon_sym___FILE__] = ACTIONS(4504),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4504),
    [anon_sym___FUNCTION__] = ACTIONS(4504),
    [anon_sym___LINE__] = ACTIONS(4504),
    [anon_sym___MODULE__] = ACTIONS(4504),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4504),
    [anon_sym___TIME__] = ACTIONS(4504),
    [anon_sym___TIMESTAMP__] = ACTIONS(4504),
    [anon_sym___VENDOR__] = ACTIONS(4504),
    [anon_sym___VERSION__] = ACTIONS(4504),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4506),
    [sym_float_literal] = ACTIONS(4506),
    [sym__string] = ACTIONS(4506),
  },
  [1407] = {
    [sym_identifier] = ACTIONS(4508),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4510),
    [anon_sym_RBRACE] = ACTIONS(4510),
    [anon_sym_LBRACE] = ACTIONS(4510),
    [anon_sym_DOT] = ACTIONS(4510),
    [anon_sym_AMP] = ACTIONS(4510),
    [anon_sym_DASH] = ACTIONS(4508),
    [anon_sym_DASH_DASH] = ACTIONS(4510),
    [anon_sym_PLUS] = ACTIONS(4508),
    [anon_sym_PLUS_PLUS] = ACTIONS(4510),
    [anon_sym_BANG] = ACTIONS(4510),
    [anon_sym_LPAREN] = ACTIONS(4510),
    [anon_sym_RPAREN] = ACTIONS(4510),
    [anon_sym_LBRACK] = ACTIONS(4510),
    [anon_sym_SEMI] = ACTIONS(4510),
    [anon_sym_DOLLAR] = ACTIONS(4510),
    [anon_sym_STAR] = ACTIONS(4510),
    [anon_sym_TILDE] = ACTIONS(4510),
    [anon_sym_AT] = ACTIONS(4510),
    [sym_bool] = ACTIONS(4508),
    [sym_byte] = ACTIONS(4508),
    [sym_ubyte] = ACTIONS(4508),
    [sym_char] = ACTIONS(4508),
    [sym_short] = ACTIONS(4508),
    [sym_ushort] = ACTIONS(4508),
    [sym_int] = ACTIONS(4508),
    [sym_uint] = ACTIONS(4508),
    [sym_long] = ACTIONS(4508),
    [sym_ulong] = ACTIONS(4508),
    [sym_cent] = ACTIONS(4508),
    [sym_ucent] = ACTIONS(4508),
    [sym_wchar] = ACTIONS(4508),
    [sym_dchar] = ACTIONS(4508),
    [sym_float] = ACTIONS(4508),
    [sym_double] = ACTIONS(4508),
    [sym_real] = ACTIONS(4508),
    [sym_ifloat] = ACTIONS(4508),
    [sym_idouble] = ACTIONS(4508),
    [sym_ireal] = ACTIONS(4508),
    [sym_cfloat] = ACTIONS(4508),
    [sym_cdouble] = ACTIONS(4508),
    [sym_creal] = ACTIONS(4508),
    [sym_size_t] = ACTIONS(4508),
    [sym_ptrdiff_t] = ACTIONS(4508),
    [sym_string] = ACTIONS(4508),
    [sym_cstring] = ACTIONS(4508),
    [sym_dstring] = ACTIONS(4508),
    [sym_wstring] = ACTIONS(4508),
    [sym_noreturn] = ACTIONS(4508),
    [sym_true] = ACTIONS(4508),
    [sym_false] = ACTIONS(4508),
    [sym_null] = ACTIONS(4508),
    [sym_super] = ACTIONS(4508),
    [sym_this] = ACTIONS(4508),
    [sym_abstract] = ACTIONS(4508),
    [sym_alias] = ACTIONS(4508),
    [sym_align] = ACTIONS(4508),
    [sym_asm] = ACTIONS(4508),
    [sym_assert] = ACTIONS(4508),
    [sym_auto] = ACTIONS(4508),
    [sym_break] = ACTIONS(4508),
    [sym_case] = ACTIONS(4508),
    [sym_cast] = ACTIONS(4508),
    [sym_catch] = ACTIONS(4508),
    [sym_class] = ACTIONS(4508),
    [sym_const] = ACTIONS(4508),
    [sym_continue] = ACTIONS(4508),
    [sym_debug] = ACTIONS(4508),
    [sym_default] = ACTIONS(4508),
    [sym_delegate] = ACTIONS(4508),
    [sym_delete] = ACTIONS(4508),
    [sym_deprecated] = ACTIONS(4508),
    [sym_do] = ACTIONS(4508),
    [sym_else] = ACTIONS(4508),
    [sym_enum] = ACTIONS(4508),
    [sym_export] = ACTIONS(4508),
    [sym_extern] = ACTIONS(4508),
    [sym_final] = ACTIONS(4508),
    [sym_finally] = ACTIONS(4508),
    [sym_for] = ACTIONS(4508),
    [sym_foreach] = ACTIONS(4508),
    [sym_foreach_reverse] = ACTIONS(4508),
    [sym_function] = ACTIONS(4508),
    [sym_goto] = ACTIONS(4508),
    [sym_if] = ACTIONS(4508),
    [sym_immutable] = ACTIONS(4508),
    [sym_import] = ACTIONS(4508),
    [sym_in] = ACTIONS(4508),
    [sym_inout] = ACTIONS(4508),
    [sym_interface] = ACTIONS(4508),
    [sym_invariant] = ACTIONS(4508),
    [sym_is] = ACTIONS(4508),
    [sym_mixin] = ACTIONS(4508),
    [sym_new] = ACTIONS(4508),
    [sym_nothrow] = ACTIONS(4508),
    [sym_out] = ACTIONS(4508),
    [sym_override] = ACTIONS(4508),
    [sym_package] = ACTIONS(4508),
    [sym_pragma] = ACTIONS(4508),
    [sym_private] = ACTIONS(4508),
    [sym_protected] = ACTIONS(4508),
    [sym_public] = ACTIONS(4508),
    [sym_pure] = ACTIONS(4508),
    [sym_ref] = ACTIONS(4508),
    [sym_return] = ACTIONS(4508),
    [sym_scope] = ACTIONS(4508),
    [sym_shared] = ACTIONS(4508),
    [sym_static] = ACTIONS(4508),
    [sym_struct] = ACTIONS(4508),
    [sym_switch] = ACTIONS(4508),
    [sym_synchronized] = ACTIONS(4508),
    [sym_template] = ACTIONS(4508),
    [sym_throw] = ACTIONS(4508),
    [sym_try] = ACTIONS(4508),
    [sym_typeid] = ACTIONS(4508),
    [sym_typeof] = ACTIONS(4508),
    [sym_union] = ACTIONS(4508),
    [sym_unittest] = ACTIONS(4508),
    [sym_version] = ACTIONS(4508),
    [sym_while] = ACTIONS(4508),
    [sym_with] = ACTIONS(4508),
    [sym_gshared] = ACTIONS(4508),
    [sym_traits] = ACTIONS(4508),
    [sym_vector] = ACTIONS(4508),
    [sym_void] = ACTIONS(4508),
    [anon_sym_BQUOTE] = ACTIONS(4510),
    [anon_sym_r_DQUOTE] = ACTIONS(4510),
    [anon_sym_x_DQUOTE] = ACTIONS(4510),
    [anon_sym_DQUOTE] = ACTIONS(4510),
    [anon_sym_i_BQUOTE] = ACTIONS(4510),
    [anon_sym_i_DQUOTE] = ACTIONS(4510),
    [anon_sym_iq_LBRACE] = ACTIONS(4510),
    [aux_sym_char_literal_token1] = ACTIONS(4510),
    [anon_sym_SQUOTE] = ACTIONS(4508),
    [anon_sym___DATE__] = ACTIONS(4508),
    [anon_sym___FILE__] = ACTIONS(4508),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4508),
    [anon_sym___FUNCTION__] = ACTIONS(4508),
    [anon_sym___LINE__] = ACTIONS(4508),
    [anon_sym___MODULE__] = ACTIONS(4508),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4508),
    [anon_sym___TIME__] = ACTIONS(4508),
    [anon_sym___TIMESTAMP__] = ACTIONS(4508),
    [anon_sym___VENDOR__] = ACTIONS(4508),
    [anon_sym___VERSION__] = ACTIONS(4508),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4510),
    [sym_float_literal] = ACTIONS(4510),
    [sym__string] = ACTIONS(4510),
  },
  [1408] = {
    [sym_identifier] = ACTIONS(4512),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4514),
    [anon_sym_RBRACE] = ACTIONS(4514),
    [anon_sym_LBRACE] = ACTIONS(4514),
    [anon_sym_DOT] = ACTIONS(4514),
    [anon_sym_AMP] = ACTIONS(4514),
    [anon_sym_DASH] = ACTIONS(4512),
    [anon_sym_DASH_DASH] = ACTIONS(4514),
    [anon_sym_PLUS] = ACTIONS(4512),
    [anon_sym_PLUS_PLUS] = ACTIONS(4514),
    [anon_sym_BANG] = ACTIONS(4514),
    [anon_sym_LPAREN] = ACTIONS(4514),
    [anon_sym_RPAREN] = ACTIONS(4514),
    [anon_sym_LBRACK] = ACTIONS(4514),
    [anon_sym_SEMI] = ACTIONS(4514),
    [anon_sym_DOLLAR] = ACTIONS(4514),
    [anon_sym_STAR] = ACTIONS(4514),
    [anon_sym_TILDE] = ACTIONS(4514),
    [anon_sym_AT] = ACTIONS(4514),
    [sym_bool] = ACTIONS(4512),
    [sym_byte] = ACTIONS(4512),
    [sym_ubyte] = ACTIONS(4512),
    [sym_char] = ACTIONS(4512),
    [sym_short] = ACTIONS(4512),
    [sym_ushort] = ACTIONS(4512),
    [sym_int] = ACTIONS(4512),
    [sym_uint] = ACTIONS(4512),
    [sym_long] = ACTIONS(4512),
    [sym_ulong] = ACTIONS(4512),
    [sym_cent] = ACTIONS(4512),
    [sym_ucent] = ACTIONS(4512),
    [sym_wchar] = ACTIONS(4512),
    [sym_dchar] = ACTIONS(4512),
    [sym_float] = ACTIONS(4512),
    [sym_double] = ACTIONS(4512),
    [sym_real] = ACTIONS(4512),
    [sym_ifloat] = ACTIONS(4512),
    [sym_idouble] = ACTIONS(4512),
    [sym_ireal] = ACTIONS(4512),
    [sym_cfloat] = ACTIONS(4512),
    [sym_cdouble] = ACTIONS(4512),
    [sym_creal] = ACTIONS(4512),
    [sym_size_t] = ACTIONS(4512),
    [sym_ptrdiff_t] = ACTIONS(4512),
    [sym_string] = ACTIONS(4512),
    [sym_cstring] = ACTIONS(4512),
    [sym_dstring] = ACTIONS(4512),
    [sym_wstring] = ACTIONS(4512),
    [sym_noreturn] = ACTIONS(4512),
    [sym_true] = ACTIONS(4512),
    [sym_false] = ACTIONS(4512),
    [sym_null] = ACTIONS(4512),
    [sym_super] = ACTIONS(4512),
    [sym_this] = ACTIONS(4512),
    [sym_abstract] = ACTIONS(4512),
    [sym_alias] = ACTIONS(4512),
    [sym_align] = ACTIONS(4512),
    [sym_asm] = ACTIONS(4512),
    [sym_assert] = ACTIONS(4512),
    [sym_auto] = ACTIONS(4512),
    [sym_break] = ACTIONS(4512),
    [sym_case] = ACTIONS(4512),
    [sym_cast] = ACTIONS(4512),
    [sym_catch] = ACTIONS(4512),
    [sym_class] = ACTIONS(4512),
    [sym_const] = ACTIONS(4512),
    [sym_continue] = ACTIONS(4512),
    [sym_debug] = ACTIONS(4512),
    [sym_default] = ACTIONS(4512),
    [sym_delegate] = ACTIONS(4512),
    [sym_delete] = ACTIONS(4512),
    [sym_deprecated] = ACTIONS(4512),
    [sym_do] = ACTIONS(4512),
    [sym_else] = ACTIONS(4512),
    [sym_enum] = ACTIONS(4512),
    [sym_export] = ACTIONS(4512),
    [sym_extern] = ACTIONS(4512),
    [sym_final] = ACTIONS(4512),
    [sym_finally] = ACTIONS(4512),
    [sym_for] = ACTIONS(4512),
    [sym_foreach] = ACTIONS(4512),
    [sym_foreach_reverse] = ACTIONS(4512),
    [sym_function] = ACTIONS(4512),
    [sym_goto] = ACTIONS(4512),
    [sym_if] = ACTIONS(4512),
    [sym_immutable] = ACTIONS(4512),
    [sym_import] = ACTIONS(4512),
    [sym_in] = ACTIONS(4512),
    [sym_inout] = ACTIONS(4512),
    [sym_interface] = ACTIONS(4512),
    [sym_invariant] = ACTIONS(4512),
    [sym_is] = ACTIONS(4512),
    [sym_mixin] = ACTIONS(4512),
    [sym_new] = ACTIONS(4512),
    [sym_nothrow] = ACTIONS(4512),
    [sym_out] = ACTIONS(4512),
    [sym_override] = ACTIONS(4512),
    [sym_package] = ACTIONS(4512),
    [sym_pragma] = ACTIONS(4512),
    [sym_private] = ACTIONS(4512),
    [sym_protected] = ACTIONS(4512),
    [sym_public] = ACTIONS(4512),
    [sym_pure] = ACTIONS(4512),
    [sym_ref] = ACTIONS(4512),
    [sym_return] = ACTIONS(4512),
    [sym_scope] = ACTIONS(4512),
    [sym_shared] = ACTIONS(4512),
    [sym_static] = ACTIONS(4512),
    [sym_struct] = ACTIONS(4512),
    [sym_switch] = ACTIONS(4512),
    [sym_synchronized] = ACTIONS(4512),
    [sym_template] = ACTIONS(4512),
    [sym_throw] = ACTIONS(4512),
    [sym_try] = ACTIONS(4512),
    [sym_typeid] = ACTIONS(4512),
    [sym_typeof] = ACTIONS(4512),
    [sym_union] = ACTIONS(4512),
    [sym_unittest] = ACTIONS(4512),
    [sym_version] = ACTIONS(4512),
    [sym_while] = ACTIONS(4512),
    [sym_with] = ACTIONS(4512),
    [sym_gshared] = ACTIONS(4512),
    [sym_traits] = ACTIONS(4512),
    [sym_vector] = ACTIONS(4512),
    [sym_void] = ACTIONS(4512),
    [anon_sym_BQUOTE] = ACTIONS(4514),
    [anon_sym_r_DQUOTE] = ACTIONS(4514),
    [anon_sym_x_DQUOTE] = ACTIONS(4514),
    [anon_sym_DQUOTE] = ACTIONS(4514),
    [anon_sym_i_BQUOTE] = ACTIONS(4514),
    [anon_sym_i_DQUOTE] = ACTIONS(4514),
    [anon_sym_iq_LBRACE] = ACTIONS(4514),
    [aux_sym_char_literal_token1] = ACTIONS(4514),
    [anon_sym_SQUOTE] = ACTIONS(4512),
    [anon_sym___DATE__] = ACTIONS(4512),
    [anon_sym___FILE__] = ACTIONS(4512),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4512),
    [anon_sym___FUNCTION__] = ACTIONS(4512),
    [anon_sym___LINE__] = ACTIONS(4512),
    [anon_sym___MODULE__] = ACTIONS(4512),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4512),
    [anon_sym___TIME__] = ACTIONS(4512),
    [anon_sym___TIMESTAMP__] = ACTIONS(4512),
    [anon_sym___VENDOR__] = ACTIONS(4512),
    [anon_sym___VERSION__] = ACTIONS(4512),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4514),
    [sym_float_literal] = ACTIONS(4514),
    [sym__string] = ACTIONS(4514),
  },
  [1409] = {
    [sym_identifier] = ACTIONS(4516),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4518),
    [anon_sym_RBRACE] = ACTIONS(4518),
    [anon_sym_LBRACE] = ACTIONS(4518),
    [anon_sym_DOT] = ACTIONS(4518),
    [anon_sym_AMP] = ACTIONS(4518),
    [anon_sym_DASH] = ACTIONS(4516),
    [anon_sym_DASH_DASH] = ACTIONS(4518),
    [anon_sym_PLUS] = ACTIONS(4516),
    [anon_sym_PLUS_PLUS] = ACTIONS(4518),
    [anon_sym_BANG] = ACTIONS(4518),
    [anon_sym_LPAREN] = ACTIONS(4518),
    [anon_sym_RPAREN] = ACTIONS(4518),
    [anon_sym_LBRACK] = ACTIONS(4518),
    [anon_sym_SEMI] = ACTIONS(4518),
    [anon_sym_DOLLAR] = ACTIONS(4518),
    [anon_sym_STAR] = ACTIONS(4518),
    [anon_sym_TILDE] = ACTIONS(4518),
    [anon_sym_AT] = ACTIONS(4518),
    [sym_bool] = ACTIONS(4516),
    [sym_byte] = ACTIONS(4516),
    [sym_ubyte] = ACTIONS(4516),
    [sym_char] = ACTIONS(4516),
    [sym_short] = ACTIONS(4516),
    [sym_ushort] = ACTIONS(4516),
    [sym_int] = ACTIONS(4516),
    [sym_uint] = ACTIONS(4516),
    [sym_long] = ACTIONS(4516),
    [sym_ulong] = ACTIONS(4516),
    [sym_cent] = ACTIONS(4516),
    [sym_ucent] = ACTIONS(4516),
    [sym_wchar] = ACTIONS(4516),
    [sym_dchar] = ACTIONS(4516),
    [sym_float] = ACTIONS(4516),
    [sym_double] = ACTIONS(4516),
    [sym_real] = ACTIONS(4516),
    [sym_ifloat] = ACTIONS(4516),
    [sym_idouble] = ACTIONS(4516),
    [sym_ireal] = ACTIONS(4516),
    [sym_cfloat] = ACTIONS(4516),
    [sym_cdouble] = ACTIONS(4516),
    [sym_creal] = ACTIONS(4516),
    [sym_size_t] = ACTIONS(4516),
    [sym_ptrdiff_t] = ACTIONS(4516),
    [sym_string] = ACTIONS(4516),
    [sym_cstring] = ACTIONS(4516),
    [sym_dstring] = ACTIONS(4516),
    [sym_wstring] = ACTIONS(4516),
    [sym_noreturn] = ACTIONS(4516),
    [sym_true] = ACTIONS(4516),
    [sym_false] = ACTIONS(4516),
    [sym_null] = ACTIONS(4516),
    [sym_super] = ACTIONS(4516),
    [sym_this] = ACTIONS(4516),
    [sym_abstract] = ACTIONS(4516),
    [sym_alias] = ACTIONS(4516),
    [sym_align] = ACTIONS(4516),
    [sym_asm] = ACTIONS(4516),
    [sym_assert] = ACTIONS(4516),
    [sym_auto] = ACTIONS(4516),
    [sym_break] = ACTIONS(4516),
    [sym_case] = ACTIONS(4516),
    [sym_cast] = ACTIONS(4516),
    [sym_catch] = ACTIONS(4516),
    [sym_class] = ACTIONS(4516),
    [sym_const] = ACTIONS(4516),
    [sym_continue] = ACTIONS(4516),
    [sym_debug] = ACTIONS(4516),
    [sym_default] = ACTIONS(4516),
    [sym_delegate] = ACTIONS(4516),
    [sym_delete] = ACTIONS(4516),
    [sym_deprecated] = ACTIONS(4516),
    [sym_do] = ACTIONS(4516),
    [sym_else] = ACTIONS(4516),
    [sym_enum] = ACTIONS(4516),
    [sym_export] = ACTIONS(4516),
    [sym_extern] = ACTIONS(4516),
    [sym_final] = ACTIONS(4516),
    [sym_finally] = ACTIONS(4516),
    [sym_for] = ACTIONS(4516),
    [sym_foreach] = ACTIONS(4516),
    [sym_foreach_reverse] = ACTIONS(4516),
    [sym_function] = ACTIONS(4516),
    [sym_goto] = ACTIONS(4516),
    [sym_if] = ACTIONS(4516),
    [sym_immutable] = ACTIONS(4516),
    [sym_import] = ACTIONS(4516),
    [sym_in] = ACTIONS(4516),
    [sym_inout] = ACTIONS(4516),
    [sym_interface] = ACTIONS(4516),
    [sym_invariant] = ACTIONS(4516),
    [sym_is] = ACTIONS(4516),
    [sym_mixin] = ACTIONS(4516),
    [sym_new] = ACTIONS(4516),
    [sym_nothrow] = ACTIONS(4516),
    [sym_out] = ACTIONS(4516),
    [sym_override] = ACTIONS(4516),
    [sym_package] = ACTIONS(4516),
    [sym_pragma] = ACTIONS(4516),
    [sym_private] = ACTIONS(4516),
    [sym_protected] = ACTIONS(4516),
    [sym_public] = ACTIONS(4516),
    [sym_pure] = ACTIONS(4516),
    [sym_ref] = ACTIONS(4516),
    [sym_return] = ACTIONS(4516),
    [sym_scope] = ACTIONS(4516),
    [sym_shared] = ACTIONS(4516),
    [sym_static] = ACTIONS(4516),
    [sym_struct] = ACTIONS(4516),
    [sym_switch] = ACTIONS(4516),
    [sym_synchronized] = ACTIONS(4516),
    [sym_template] = ACTIONS(4516),
    [sym_throw] = ACTIONS(4516),
    [sym_try] = ACTIONS(4516),
    [sym_typeid] = ACTIONS(4516),
    [sym_typeof] = ACTIONS(4516),
    [sym_union] = ACTIONS(4516),
    [sym_unittest] = ACTIONS(4516),
    [sym_version] = ACTIONS(4516),
    [sym_while] = ACTIONS(4516),
    [sym_with] = ACTIONS(4516),
    [sym_gshared] = ACTIONS(4516),
    [sym_traits] = ACTIONS(4516),
    [sym_vector] = ACTIONS(4516),
    [sym_void] = ACTIONS(4516),
    [anon_sym_BQUOTE] = ACTIONS(4518),
    [anon_sym_r_DQUOTE] = ACTIONS(4518),
    [anon_sym_x_DQUOTE] = ACTIONS(4518),
    [anon_sym_DQUOTE] = ACTIONS(4518),
    [anon_sym_i_BQUOTE] = ACTIONS(4518),
    [anon_sym_i_DQUOTE] = ACTIONS(4518),
    [anon_sym_iq_LBRACE] = ACTIONS(4518),
    [aux_sym_char_literal_token1] = ACTIONS(4518),
    [anon_sym_SQUOTE] = ACTIONS(4516),
    [anon_sym___DATE__] = ACTIONS(4516),
    [anon_sym___FILE__] = ACTIONS(4516),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4516),
    [anon_sym___FUNCTION__] = ACTIONS(4516),
    [anon_sym___LINE__] = ACTIONS(4516),
    [anon_sym___MODULE__] = ACTIONS(4516),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4516),
    [anon_sym___TIME__] = ACTIONS(4516),
    [anon_sym___TIMESTAMP__] = ACTIONS(4516),
    [anon_sym___VENDOR__] = ACTIONS(4516),
    [anon_sym___VERSION__] = ACTIONS(4516),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4518),
    [sym_float_literal] = ACTIONS(4518),
    [sym__string] = ACTIONS(4518),
  },
  [1410] = {
    [sym_identifier] = ACTIONS(4520),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4522),
    [anon_sym_RBRACE] = ACTIONS(4522),
    [anon_sym_LBRACE] = ACTIONS(4522),
    [anon_sym_DOT] = ACTIONS(4522),
    [anon_sym_AMP] = ACTIONS(4522),
    [anon_sym_DASH] = ACTIONS(4520),
    [anon_sym_DASH_DASH] = ACTIONS(4522),
    [anon_sym_PLUS] = ACTIONS(4520),
    [anon_sym_PLUS_PLUS] = ACTIONS(4522),
    [anon_sym_BANG] = ACTIONS(4522),
    [anon_sym_LPAREN] = ACTIONS(4522),
    [anon_sym_RPAREN] = ACTIONS(4522),
    [anon_sym_LBRACK] = ACTIONS(4522),
    [anon_sym_SEMI] = ACTIONS(4522),
    [anon_sym_DOLLAR] = ACTIONS(4522),
    [anon_sym_STAR] = ACTIONS(4522),
    [anon_sym_TILDE] = ACTIONS(4522),
    [anon_sym_AT] = ACTIONS(4522),
    [sym_bool] = ACTIONS(4520),
    [sym_byte] = ACTIONS(4520),
    [sym_ubyte] = ACTIONS(4520),
    [sym_char] = ACTIONS(4520),
    [sym_short] = ACTIONS(4520),
    [sym_ushort] = ACTIONS(4520),
    [sym_int] = ACTIONS(4520),
    [sym_uint] = ACTIONS(4520),
    [sym_long] = ACTIONS(4520),
    [sym_ulong] = ACTIONS(4520),
    [sym_cent] = ACTIONS(4520),
    [sym_ucent] = ACTIONS(4520),
    [sym_wchar] = ACTIONS(4520),
    [sym_dchar] = ACTIONS(4520),
    [sym_float] = ACTIONS(4520),
    [sym_double] = ACTIONS(4520),
    [sym_real] = ACTIONS(4520),
    [sym_ifloat] = ACTIONS(4520),
    [sym_idouble] = ACTIONS(4520),
    [sym_ireal] = ACTIONS(4520),
    [sym_cfloat] = ACTIONS(4520),
    [sym_cdouble] = ACTIONS(4520),
    [sym_creal] = ACTIONS(4520),
    [sym_size_t] = ACTIONS(4520),
    [sym_ptrdiff_t] = ACTIONS(4520),
    [sym_string] = ACTIONS(4520),
    [sym_cstring] = ACTIONS(4520),
    [sym_dstring] = ACTIONS(4520),
    [sym_wstring] = ACTIONS(4520),
    [sym_noreturn] = ACTIONS(4520),
    [sym_true] = ACTIONS(4520),
    [sym_false] = ACTIONS(4520),
    [sym_null] = ACTIONS(4520),
    [sym_super] = ACTIONS(4520),
    [sym_this] = ACTIONS(4520),
    [sym_abstract] = ACTIONS(4520),
    [sym_alias] = ACTIONS(4520),
    [sym_align] = ACTIONS(4520),
    [sym_asm] = ACTIONS(4520),
    [sym_assert] = ACTIONS(4520),
    [sym_auto] = ACTIONS(4520),
    [sym_break] = ACTIONS(4520),
    [sym_case] = ACTIONS(4520),
    [sym_cast] = ACTIONS(4520),
    [sym_catch] = ACTIONS(4520),
    [sym_class] = ACTIONS(4520),
    [sym_const] = ACTIONS(4520),
    [sym_continue] = ACTIONS(4520),
    [sym_debug] = ACTIONS(4520),
    [sym_default] = ACTIONS(4520),
    [sym_delegate] = ACTIONS(4520),
    [sym_delete] = ACTIONS(4520),
    [sym_deprecated] = ACTIONS(4520),
    [sym_do] = ACTIONS(4520),
    [sym_else] = ACTIONS(4520),
    [sym_enum] = ACTIONS(4520),
    [sym_export] = ACTIONS(4520),
    [sym_extern] = ACTIONS(4520),
    [sym_final] = ACTIONS(4520),
    [sym_finally] = ACTIONS(4520),
    [sym_for] = ACTIONS(4520),
    [sym_foreach] = ACTIONS(4520),
    [sym_foreach_reverse] = ACTIONS(4520),
    [sym_function] = ACTIONS(4520),
    [sym_goto] = ACTIONS(4520),
    [sym_if] = ACTIONS(4520),
    [sym_immutable] = ACTIONS(4520),
    [sym_import] = ACTIONS(4520),
    [sym_in] = ACTIONS(4520),
    [sym_inout] = ACTIONS(4520),
    [sym_interface] = ACTIONS(4520),
    [sym_invariant] = ACTIONS(4520),
    [sym_is] = ACTIONS(4520),
    [sym_mixin] = ACTIONS(4520),
    [sym_new] = ACTIONS(4520),
    [sym_nothrow] = ACTIONS(4520),
    [sym_out] = ACTIONS(4520),
    [sym_override] = ACTIONS(4520),
    [sym_package] = ACTIONS(4520),
    [sym_pragma] = ACTIONS(4520),
    [sym_private] = ACTIONS(4520),
    [sym_protected] = ACTIONS(4520),
    [sym_public] = ACTIONS(4520),
    [sym_pure] = ACTIONS(4520),
    [sym_ref] = ACTIONS(4520),
    [sym_return] = ACTIONS(4520),
    [sym_scope] = ACTIONS(4520),
    [sym_shared] = ACTIONS(4520),
    [sym_static] = ACTIONS(4520),
    [sym_struct] = ACTIONS(4520),
    [sym_switch] = ACTIONS(4520),
    [sym_synchronized] = ACTIONS(4520),
    [sym_template] = ACTIONS(4520),
    [sym_throw] = ACTIONS(4520),
    [sym_try] = ACTIONS(4520),
    [sym_typeid] = ACTIONS(4520),
    [sym_typeof] = ACTIONS(4520),
    [sym_union] = ACTIONS(4520),
    [sym_unittest] = ACTIONS(4520),
    [sym_version] = ACTIONS(4520),
    [sym_while] = ACTIONS(4520),
    [sym_with] = ACTIONS(4520),
    [sym_gshared] = ACTIONS(4520),
    [sym_traits] = ACTIONS(4520),
    [sym_vector] = ACTIONS(4520),
    [sym_void] = ACTIONS(4520),
    [anon_sym_BQUOTE] = ACTIONS(4522),
    [anon_sym_r_DQUOTE] = ACTIONS(4522),
    [anon_sym_x_DQUOTE] = ACTIONS(4522),
    [anon_sym_DQUOTE] = ACTIONS(4522),
    [anon_sym_i_BQUOTE] = ACTIONS(4522),
    [anon_sym_i_DQUOTE] = ACTIONS(4522),
    [anon_sym_iq_LBRACE] = ACTIONS(4522),
    [aux_sym_char_literal_token1] = ACTIONS(4522),
    [anon_sym_SQUOTE] = ACTIONS(4520),
    [anon_sym___DATE__] = ACTIONS(4520),
    [anon_sym___FILE__] = ACTIONS(4520),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4520),
    [anon_sym___FUNCTION__] = ACTIONS(4520),
    [anon_sym___LINE__] = ACTIONS(4520),
    [anon_sym___MODULE__] = ACTIONS(4520),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4520),
    [anon_sym___TIME__] = ACTIONS(4520),
    [anon_sym___TIMESTAMP__] = ACTIONS(4520),
    [anon_sym___VENDOR__] = ACTIONS(4520),
    [anon_sym___VERSION__] = ACTIONS(4520),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4522),
    [sym_float_literal] = ACTIONS(4522),
    [sym__string] = ACTIONS(4522),
  },
  [1411] = {
    [sym_identifier] = ACTIONS(4524),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4526),
    [anon_sym_RBRACE] = ACTIONS(4526),
    [anon_sym_LBRACE] = ACTIONS(4526),
    [anon_sym_DOT] = ACTIONS(4526),
    [anon_sym_AMP] = ACTIONS(4526),
    [anon_sym_DASH] = ACTIONS(4524),
    [anon_sym_DASH_DASH] = ACTIONS(4526),
    [anon_sym_PLUS] = ACTIONS(4524),
    [anon_sym_PLUS_PLUS] = ACTIONS(4526),
    [anon_sym_BANG] = ACTIONS(4526),
    [anon_sym_LPAREN] = ACTIONS(4526),
    [anon_sym_RPAREN] = ACTIONS(4526),
    [anon_sym_LBRACK] = ACTIONS(4526),
    [anon_sym_SEMI] = ACTIONS(4526),
    [anon_sym_DOLLAR] = ACTIONS(4526),
    [anon_sym_STAR] = ACTIONS(4526),
    [anon_sym_TILDE] = ACTIONS(4526),
    [anon_sym_AT] = ACTIONS(4526),
    [sym_bool] = ACTIONS(4524),
    [sym_byte] = ACTIONS(4524),
    [sym_ubyte] = ACTIONS(4524),
    [sym_char] = ACTIONS(4524),
    [sym_short] = ACTIONS(4524),
    [sym_ushort] = ACTIONS(4524),
    [sym_int] = ACTIONS(4524),
    [sym_uint] = ACTIONS(4524),
    [sym_long] = ACTIONS(4524),
    [sym_ulong] = ACTIONS(4524),
    [sym_cent] = ACTIONS(4524),
    [sym_ucent] = ACTIONS(4524),
    [sym_wchar] = ACTIONS(4524),
    [sym_dchar] = ACTIONS(4524),
    [sym_float] = ACTIONS(4524),
    [sym_double] = ACTIONS(4524),
    [sym_real] = ACTIONS(4524),
    [sym_ifloat] = ACTIONS(4524),
    [sym_idouble] = ACTIONS(4524),
    [sym_ireal] = ACTIONS(4524),
    [sym_cfloat] = ACTIONS(4524),
    [sym_cdouble] = ACTIONS(4524),
    [sym_creal] = ACTIONS(4524),
    [sym_size_t] = ACTIONS(4524),
    [sym_ptrdiff_t] = ACTIONS(4524),
    [sym_string] = ACTIONS(4524),
    [sym_cstring] = ACTIONS(4524),
    [sym_dstring] = ACTIONS(4524),
    [sym_wstring] = ACTIONS(4524),
    [sym_noreturn] = ACTIONS(4524),
    [sym_true] = ACTIONS(4524),
    [sym_false] = ACTIONS(4524),
    [sym_null] = ACTIONS(4524),
    [sym_super] = ACTIONS(4524),
    [sym_this] = ACTIONS(4524),
    [sym_abstract] = ACTIONS(4524),
    [sym_alias] = ACTIONS(4524),
    [sym_align] = ACTIONS(4524),
    [sym_asm] = ACTIONS(4524),
    [sym_assert] = ACTIONS(4524),
    [sym_auto] = ACTIONS(4524),
    [sym_break] = ACTIONS(4524),
    [sym_case] = ACTIONS(4524),
    [sym_cast] = ACTIONS(4524),
    [sym_catch] = ACTIONS(4524),
    [sym_class] = ACTIONS(4524),
    [sym_const] = ACTIONS(4524),
    [sym_continue] = ACTIONS(4524),
    [sym_debug] = ACTIONS(4524),
    [sym_default] = ACTIONS(4524),
    [sym_delegate] = ACTIONS(4524),
    [sym_delete] = ACTIONS(4524),
    [sym_deprecated] = ACTIONS(4524),
    [sym_do] = ACTIONS(4524),
    [sym_else] = ACTIONS(4524),
    [sym_enum] = ACTIONS(4524),
    [sym_export] = ACTIONS(4524),
    [sym_extern] = ACTIONS(4524),
    [sym_final] = ACTIONS(4524),
    [sym_finally] = ACTIONS(4524),
    [sym_for] = ACTIONS(4524),
    [sym_foreach] = ACTIONS(4524),
    [sym_foreach_reverse] = ACTIONS(4524),
    [sym_function] = ACTIONS(4524),
    [sym_goto] = ACTIONS(4524),
    [sym_if] = ACTIONS(4524),
    [sym_immutable] = ACTIONS(4524),
    [sym_import] = ACTIONS(4524),
    [sym_in] = ACTIONS(4524),
    [sym_inout] = ACTIONS(4524),
    [sym_interface] = ACTIONS(4524),
    [sym_invariant] = ACTIONS(4524),
    [sym_is] = ACTIONS(4524),
    [sym_mixin] = ACTIONS(4524),
    [sym_new] = ACTIONS(4524),
    [sym_nothrow] = ACTIONS(4524),
    [sym_out] = ACTIONS(4524),
    [sym_override] = ACTIONS(4524),
    [sym_package] = ACTIONS(4524),
    [sym_pragma] = ACTIONS(4524),
    [sym_private] = ACTIONS(4524),
    [sym_protected] = ACTIONS(4524),
    [sym_public] = ACTIONS(4524),
    [sym_pure] = ACTIONS(4524),
    [sym_ref] = ACTIONS(4524),
    [sym_return] = ACTIONS(4524),
    [sym_scope] = ACTIONS(4524),
    [sym_shared] = ACTIONS(4524),
    [sym_static] = ACTIONS(4524),
    [sym_struct] = ACTIONS(4524),
    [sym_switch] = ACTIONS(4524),
    [sym_synchronized] = ACTIONS(4524),
    [sym_template] = ACTIONS(4524),
    [sym_throw] = ACTIONS(4524),
    [sym_try] = ACTIONS(4524),
    [sym_typeid] = ACTIONS(4524),
    [sym_typeof] = ACTIONS(4524),
    [sym_union] = ACTIONS(4524),
    [sym_unittest] = ACTIONS(4524),
    [sym_version] = ACTIONS(4524),
    [sym_while] = ACTIONS(4524),
    [sym_with] = ACTIONS(4524),
    [sym_gshared] = ACTIONS(4524),
    [sym_traits] = ACTIONS(4524),
    [sym_vector] = ACTIONS(4524),
    [sym_void] = ACTIONS(4524),
    [anon_sym_BQUOTE] = ACTIONS(4526),
    [anon_sym_r_DQUOTE] = ACTIONS(4526),
    [anon_sym_x_DQUOTE] = ACTIONS(4526),
    [anon_sym_DQUOTE] = ACTIONS(4526),
    [anon_sym_i_BQUOTE] = ACTIONS(4526),
    [anon_sym_i_DQUOTE] = ACTIONS(4526),
    [anon_sym_iq_LBRACE] = ACTIONS(4526),
    [aux_sym_char_literal_token1] = ACTIONS(4526),
    [anon_sym_SQUOTE] = ACTIONS(4524),
    [anon_sym___DATE__] = ACTIONS(4524),
    [anon_sym___FILE__] = ACTIONS(4524),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4524),
    [anon_sym___FUNCTION__] = ACTIONS(4524),
    [anon_sym___LINE__] = ACTIONS(4524),
    [anon_sym___MODULE__] = ACTIONS(4524),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4524),
    [anon_sym___TIME__] = ACTIONS(4524),
    [anon_sym___TIMESTAMP__] = ACTIONS(4524),
    [anon_sym___VENDOR__] = ACTIONS(4524),
    [anon_sym___VERSION__] = ACTIONS(4524),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4526),
    [sym_float_literal] = ACTIONS(4526),
    [sym__string] = ACTIONS(4526),
  },
  [1412] = {
    [sym_identifier] = ACTIONS(4528),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4531),
    [anon_sym_RBRACE] = ACTIONS(4531),
    [anon_sym_LBRACE] = ACTIONS(4531),
    [anon_sym_DOT] = ACTIONS(4531),
    [anon_sym_AMP] = ACTIONS(4531),
    [anon_sym_DASH] = ACTIONS(4528),
    [anon_sym_DASH_DASH] = ACTIONS(4531),
    [anon_sym_PLUS] = ACTIONS(4528),
    [anon_sym_PLUS_PLUS] = ACTIONS(4531),
    [anon_sym_BANG] = ACTIONS(4531),
    [anon_sym_LPAREN] = ACTIONS(4531),
    [anon_sym_RPAREN] = ACTIONS(4531),
    [anon_sym_LBRACK] = ACTIONS(4531),
    [anon_sym_SEMI] = ACTIONS(4531),
    [anon_sym_DOLLAR] = ACTIONS(4531),
    [anon_sym_STAR] = ACTIONS(4531),
    [anon_sym_TILDE] = ACTIONS(4531),
    [anon_sym_AT] = ACTIONS(4531),
    [sym_bool] = ACTIONS(4528),
    [sym_byte] = ACTIONS(4528),
    [sym_ubyte] = ACTIONS(4528),
    [sym_char] = ACTIONS(4528),
    [sym_short] = ACTIONS(4528),
    [sym_ushort] = ACTIONS(4528),
    [sym_int] = ACTIONS(4528),
    [sym_uint] = ACTIONS(4528),
    [sym_long] = ACTIONS(4528),
    [sym_ulong] = ACTIONS(4528),
    [sym_cent] = ACTIONS(4528),
    [sym_ucent] = ACTIONS(4528),
    [sym_wchar] = ACTIONS(4528),
    [sym_dchar] = ACTIONS(4528),
    [sym_float] = ACTIONS(4528),
    [sym_double] = ACTIONS(4528),
    [sym_real] = ACTIONS(4528),
    [sym_ifloat] = ACTIONS(4528),
    [sym_idouble] = ACTIONS(4528),
    [sym_ireal] = ACTIONS(4528),
    [sym_cfloat] = ACTIONS(4528),
    [sym_cdouble] = ACTIONS(4528),
    [sym_creal] = ACTIONS(4528),
    [sym_size_t] = ACTIONS(4528),
    [sym_ptrdiff_t] = ACTIONS(4528),
    [sym_string] = ACTIONS(4528),
    [sym_cstring] = ACTIONS(4528),
    [sym_dstring] = ACTIONS(4528),
    [sym_wstring] = ACTIONS(4528),
    [sym_noreturn] = ACTIONS(4528),
    [sym_true] = ACTIONS(4528),
    [sym_false] = ACTIONS(4528),
    [sym_null] = ACTIONS(4528),
    [sym_super] = ACTIONS(4528),
    [sym_this] = ACTIONS(4528),
    [sym_abstract] = ACTIONS(4528),
    [sym_alias] = ACTIONS(4528),
    [sym_align] = ACTIONS(4528),
    [sym_asm] = ACTIONS(4528),
    [sym_assert] = ACTIONS(4528),
    [sym_auto] = ACTIONS(4528),
    [sym_break] = ACTIONS(4528),
    [sym_case] = ACTIONS(4528),
    [sym_cast] = ACTIONS(4528),
    [sym_catch] = ACTIONS(4528),
    [sym_class] = ACTIONS(4528),
    [sym_const] = ACTIONS(4528),
    [sym_continue] = ACTIONS(4528),
    [sym_debug] = ACTIONS(4528),
    [sym_default] = ACTIONS(4528),
    [sym_delegate] = ACTIONS(4528),
    [sym_delete] = ACTIONS(4528),
    [sym_deprecated] = ACTIONS(4528),
    [sym_do] = ACTIONS(4528),
    [sym_else] = ACTIONS(4528),
    [sym_enum] = ACTIONS(4528),
    [sym_export] = ACTIONS(4528),
    [sym_extern] = ACTIONS(4528),
    [sym_final] = ACTIONS(4528),
    [sym_finally] = ACTIONS(4528),
    [sym_for] = ACTIONS(4528),
    [sym_foreach] = ACTIONS(4528),
    [sym_foreach_reverse] = ACTIONS(4528),
    [sym_function] = ACTIONS(4528),
    [sym_goto] = ACTIONS(4528),
    [sym_if] = ACTIONS(4528),
    [sym_immutable] = ACTIONS(4528),
    [sym_import] = ACTIONS(4528),
    [sym_in] = ACTIONS(4528),
    [sym_inout] = ACTIONS(4528),
    [sym_interface] = ACTIONS(4528),
    [sym_invariant] = ACTIONS(4528),
    [sym_is] = ACTIONS(4528),
    [sym_mixin] = ACTIONS(4528),
    [sym_new] = ACTIONS(4528),
    [sym_nothrow] = ACTIONS(4528),
    [sym_out] = ACTIONS(4528),
    [sym_override] = ACTIONS(4528),
    [sym_package] = ACTIONS(4528),
    [sym_pragma] = ACTIONS(4528),
    [sym_private] = ACTIONS(4528),
    [sym_protected] = ACTIONS(4528),
    [sym_public] = ACTIONS(4528),
    [sym_pure] = ACTIONS(4528),
    [sym_ref] = ACTIONS(4528),
    [sym_return] = ACTIONS(4528),
    [sym_scope] = ACTIONS(4528),
    [sym_shared] = ACTIONS(4528),
    [sym_static] = ACTIONS(4528),
    [sym_struct] = ACTIONS(4528),
    [sym_switch] = ACTIONS(4528),
    [sym_synchronized] = ACTIONS(4528),
    [sym_template] = ACTIONS(4528),
    [sym_throw] = ACTIONS(4528),
    [sym_try] = ACTIONS(4528),
    [sym_typeid] = ACTIONS(4528),
    [sym_typeof] = ACTIONS(4528),
    [sym_union] = ACTIONS(4528),
    [sym_unittest] = ACTIONS(4528),
    [sym_version] = ACTIONS(4528),
    [sym_while] = ACTIONS(4528),
    [sym_with] = ACTIONS(4528),
    [sym_gshared] = ACTIONS(4528),
    [sym_traits] = ACTIONS(4528),
    [sym_vector] = ACTIONS(4528),
    [sym_void] = ACTIONS(4528),
    [anon_sym_BQUOTE] = ACTIONS(4531),
    [anon_sym_r_DQUOTE] = ACTIONS(4531),
    [anon_sym_x_DQUOTE] = ACTIONS(4531),
    [anon_sym_DQUOTE] = ACTIONS(4531),
    [anon_sym_i_BQUOTE] = ACTIONS(4531),
    [anon_sym_i_DQUOTE] = ACTIONS(4531),
    [anon_sym_iq_LBRACE] = ACTIONS(4531),
    [aux_sym_char_literal_token1] = ACTIONS(4531),
    [anon_sym_SQUOTE] = ACTIONS(4528),
    [anon_sym___DATE__] = ACTIONS(4528),
    [anon_sym___FILE__] = ACTIONS(4528),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4528),
    [anon_sym___FUNCTION__] = ACTIONS(4528),
    [anon_sym___LINE__] = ACTIONS(4528),
    [anon_sym___MODULE__] = ACTIONS(4528),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4528),
    [anon_sym___TIME__] = ACTIONS(4528),
    [anon_sym___TIMESTAMP__] = ACTIONS(4528),
    [anon_sym___VENDOR__] = ACTIONS(4528),
    [anon_sym___VERSION__] = ACTIONS(4528),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4531),
    [sym_float_literal] = ACTIONS(4531),
    [sym__string] = ACTIONS(4531),
  },
  [1413] = {
    [sym_identifier] = ACTIONS(4534),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4536),
    [anon_sym_RBRACE] = ACTIONS(4536),
    [anon_sym_LBRACE] = ACTIONS(4536),
    [anon_sym_DOT] = ACTIONS(4536),
    [anon_sym_AMP] = ACTIONS(4536),
    [anon_sym_DASH] = ACTIONS(4534),
    [anon_sym_DASH_DASH] = ACTIONS(4536),
    [anon_sym_PLUS] = ACTIONS(4534),
    [anon_sym_PLUS_PLUS] = ACTIONS(4536),
    [anon_sym_BANG] = ACTIONS(4536),
    [anon_sym_LPAREN] = ACTIONS(4536),
    [anon_sym_RPAREN] = ACTIONS(4536),
    [anon_sym_LBRACK] = ACTIONS(4536),
    [anon_sym_SEMI] = ACTIONS(4536),
    [anon_sym_DOLLAR] = ACTIONS(4536),
    [anon_sym_STAR] = ACTIONS(4536),
    [anon_sym_TILDE] = ACTIONS(4536),
    [anon_sym_AT] = ACTIONS(4536),
    [sym_bool] = ACTIONS(4534),
    [sym_byte] = ACTIONS(4534),
    [sym_ubyte] = ACTIONS(4534),
    [sym_char] = ACTIONS(4534),
    [sym_short] = ACTIONS(4534),
    [sym_ushort] = ACTIONS(4534),
    [sym_int] = ACTIONS(4534),
    [sym_uint] = ACTIONS(4534),
    [sym_long] = ACTIONS(4534),
    [sym_ulong] = ACTIONS(4534),
    [sym_cent] = ACTIONS(4534),
    [sym_ucent] = ACTIONS(4534),
    [sym_wchar] = ACTIONS(4534),
    [sym_dchar] = ACTIONS(4534),
    [sym_float] = ACTIONS(4534),
    [sym_double] = ACTIONS(4534),
    [sym_real] = ACTIONS(4534),
    [sym_ifloat] = ACTIONS(4534),
    [sym_idouble] = ACTIONS(4534),
    [sym_ireal] = ACTIONS(4534),
    [sym_cfloat] = ACTIONS(4534),
    [sym_cdouble] = ACTIONS(4534),
    [sym_creal] = ACTIONS(4534),
    [sym_size_t] = ACTIONS(4534),
    [sym_ptrdiff_t] = ACTIONS(4534),
    [sym_string] = ACTIONS(4534),
    [sym_cstring] = ACTIONS(4534),
    [sym_dstring] = ACTIONS(4534),
    [sym_wstring] = ACTIONS(4534),
    [sym_noreturn] = ACTIONS(4534),
    [sym_true] = ACTIONS(4534),
    [sym_false] = ACTIONS(4534),
    [sym_null] = ACTIONS(4534),
    [sym_super] = ACTIONS(4534),
    [sym_this] = ACTIONS(4534),
    [sym_abstract] = ACTIONS(4534),
    [sym_alias] = ACTIONS(4534),
    [sym_align] = ACTIONS(4534),
    [sym_asm] = ACTIONS(4534),
    [sym_assert] = ACTIONS(4534),
    [sym_auto] = ACTIONS(4534),
    [sym_break] = ACTIONS(4534),
    [sym_case] = ACTIONS(4534),
    [sym_cast] = ACTIONS(4534),
    [sym_catch] = ACTIONS(4534),
    [sym_class] = ACTIONS(4534),
    [sym_const] = ACTIONS(4534),
    [sym_continue] = ACTIONS(4534),
    [sym_debug] = ACTIONS(4534),
    [sym_default] = ACTIONS(4534),
    [sym_delegate] = ACTIONS(4534),
    [sym_delete] = ACTIONS(4534),
    [sym_deprecated] = ACTIONS(4534),
    [sym_do] = ACTIONS(4534),
    [sym_else] = ACTIONS(4534),
    [sym_enum] = ACTIONS(4534),
    [sym_export] = ACTIONS(4534),
    [sym_extern] = ACTIONS(4534),
    [sym_final] = ACTIONS(4534),
    [sym_finally] = ACTIONS(4534),
    [sym_for] = ACTIONS(4534),
    [sym_foreach] = ACTIONS(4534),
    [sym_foreach_reverse] = ACTIONS(4534),
    [sym_function] = ACTIONS(4534),
    [sym_goto] = ACTIONS(4534),
    [sym_if] = ACTIONS(4534),
    [sym_immutable] = ACTIONS(4534),
    [sym_import] = ACTIONS(4534),
    [sym_in] = ACTIONS(4534),
    [sym_inout] = ACTIONS(4534),
    [sym_interface] = ACTIONS(4534),
    [sym_invariant] = ACTIONS(4534),
    [sym_is] = ACTIONS(4534),
    [sym_mixin] = ACTIONS(4534),
    [sym_new] = ACTIONS(4534),
    [sym_nothrow] = ACTIONS(4534),
    [sym_out] = ACTIONS(4534),
    [sym_override] = ACTIONS(4534),
    [sym_package] = ACTIONS(4534),
    [sym_pragma] = ACTIONS(4534),
    [sym_private] = ACTIONS(4534),
    [sym_protected] = ACTIONS(4534),
    [sym_public] = ACTIONS(4534),
    [sym_pure] = ACTIONS(4534),
    [sym_ref] = ACTIONS(4534),
    [sym_return] = ACTIONS(4534),
    [sym_scope] = ACTIONS(4534),
    [sym_shared] = ACTIONS(4534),
    [sym_static] = ACTIONS(4534),
    [sym_struct] = ACTIONS(4534),
    [sym_switch] = ACTIONS(4534),
    [sym_synchronized] = ACTIONS(4534),
    [sym_template] = ACTIONS(4534),
    [sym_throw] = ACTIONS(4534),
    [sym_try] = ACTIONS(4534),
    [sym_typeid] = ACTIONS(4534),
    [sym_typeof] = ACTIONS(4534),
    [sym_union] = ACTIONS(4534),
    [sym_unittest] = ACTIONS(4534),
    [sym_version] = ACTIONS(4534),
    [sym_while] = ACTIONS(4534),
    [sym_with] = ACTIONS(4534),
    [sym_gshared] = ACTIONS(4534),
    [sym_traits] = ACTIONS(4534),
    [sym_vector] = ACTIONS(4534),
    [sym_void] = ACTIONS(4534),
    [anon_sym_BQUOTE] = ACTIONS(4536),
    [anon_sym_r_DQUOTE] = ACTIONS(4536),
    [anon_sym_x_DQUOTE] = ACTIONS(4536),
    [anon_sym_DQUOTE] = ACTIONS(4536),
    [anon_sym_i_BQUOTE] = ACTIONS(4536),
    [anon_sym_i_DQUOTE] = ACTIONS(4536),
    [anon_sym_iq_LBRACE] = ACTIONS(4536),
    [aux_sym_char_literal_token1] = ACTIONS(4536),
    [anon_sym_SQUOTE] = ACTIONS(4534),
    [anon_sym___DATE__] = ACTIONS(4534),
    [anon_sym___FILE__] = ACTIONS(4534),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4534),
    [anon_sym___FUNCTION__] = ACTIONS(4534),
    [anon_sym___LINE__] = ACTIONS(4534),
    [anon_sym___MODULE__] = ACTIONS(4534),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4534),
    [anon_sym___TIME__] = ACTIONS(4534),
    [anon_sym___TIMESTAMP__] = ACTIONS(4534),
    [anon_sym___VENDOR__] = ACTIONS(4534),
    [anon_sym___VERSION__] = ACTIONS(4534),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4536),
    [sym_float_literal] = ACTIONS(4536),
    [sym__string] = ACTIONS(4536),
  },
  [1414] = {
    [sym_identifier] = ACTIONS(4538),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4540),
    [anon_sym_RBRACE] = ACTIONS(4540),
    [anon_sym_LBRACE] = ACTIONS(4540),
    [anon_sym_DOT] = ACTIONS(4540),
    [anon_sym_AMP] = ACTIONS(4540),
    [anon_sym_DASH] = ACTIONS(4538),
    [anon_sym_DASH_DASH] = ACTIONS(4540),
    [anon_sym_PLUS] = ACTIONS(4538),
    [anon_sym_PLUS_PLUS] = ACTIONS(4540),
    [anon_sym_BANG] = ACTIONS(4540),
    [anon_sym_LPAREN] = ACTIONS(4540),
    [anon_sym_RPAREN] = ACTIONS(4540),
    [anon_sym_LBRACK] = ACTIONS(4540),
    [anon_sym_SEMI] = ACTIONS(4540),
    [anon_sym_DOLLAR] = ACTIONS(4540),
    [anon_sym_STAR] = ACTIONS(4540),
    [anon_sym_TILDE] = ACTIONS(4540),
    [anon_sym_AT] = ACTIONS(4540),
    [sym_bool] = ACTIONS(4538),
    [sym_byte] = ACTIONS(4538),
    [sym_ubyte] = ACTIONS(4538),
    [sym_char] = ACTIONS(4538),
    [sym_short] = ACTIONS(4538),
    [sym_ushort] = ACTIONS(4538),
    [sym_int] = ACTIONS(4538),
    [sym_uint] = ACTIONS(4538),
    [sym_long] = ACTIONS(4538),
    [sym_ulong] = ACTIONS(4538),
    [sym_cent] = ACTIONS(4538),
    [sym_ucent] = ACTIONS(4538),
    [sym_wchar] = ACTIONS(4538),
    [sym_dchar] = ACTIONS(4538),
    [sym_float] = ACTIONS(4538),
    [sym_double] = ACTIONS(4538),
    [sym_real] = ACTIONS(4538),
    [sym_ifloat] = ACTIONS(4538),
    [sym_idouble] = ACTIONS(4538),
    [sym_ireal] = ACTIONS(4538),
    [sym_cfloat] = ACTIONS(4538),
    [sym_cdouble] = ACTIONS(4538),
    [sym_creal] = ACTIONS(4538),
    [sym_size_t] = ACTIONS(4538),
    [sym_ptrdiff_t] = ACTIONS(4538),
    [sym_string] = ACTIONS(4538),
    [sym_cstring] = ACTIONS(4538),
    [sym_dstring] = ACTIONS(4538),
    [sym_wstring] = ACTIONS(4538),
    [sym_noreturn] = ACTIONS(4538),
    [sym_true] = ACTIONS(4538),
    [sym_false] = ACTIONS(4538),
    [sym_null] = ACTIONS(4538),
    [sym_super] = ACTIONS(4538),
    [sym_this] = ACTIONS(4538),
    [sym_abstract] = ACTIONS(4538),
    [sym_alias] = ACTIONS(4538),
    [sym_align] = ACTIONS(4538),
    [sym_asm] = ACTIONS(4538),
    [sym_assert] = ACTIONS(4538),
    [sym_auto] = ACTIONS(4538),
    [sym_break] = ACTIONS(4538),
    [sym_case] = ACTIONS(4538),
    [sym_cast] = ACTIONS(4538),
    [sym_catch] = ACTIONS(4538),
    [sym_class] = ACTIONS(4538),
    [sym_const] = ACTIONS(4538),
    [sym_continue] = ACTIONS(4538),
    [sym_debug] = ACTIONS(4538),
    [sym_default] = ACTIONS(4538),
    [sym_delegate] = ACTIONS(4538),
    [sym_delete] = ACTIONS(4538),
    [sym_deprecated] = ACTIONS(4538),
    [sym_do] = ACTIONS(4538),
    [sym_else] = ACTIONS(4538),
    [sym_enum] = ACTIONS(4538),
    [sym_export] = ACTIONS(4538),
    [sym_extern] = ACTIONS(4538),
    [sym_final] = ACTIONS(4538),
    [sym_finally] = ACTIONS(4538),
    [sym_for] = ACTIONS(4538),
    [sym_foreach] = ACTIONS(4538),
    [sym_foreach_reverse] = ACTIONS(4538),
    [sym_function] = ACTIONS(4538),
    [sym_goto] = ACTIONS(4538),
    [sym_if] = ACTIONS(4538),
    [sym_immutable] = ACTIONS(4538),
    [sym_import] = ACTIONS(4538),
    [sym_in] = ACTIONS(4538),
    [sym_inout] = ACTIONS(4538),
    [sym_interface] = ACTIONS(4538),
    [sym_invariant] = ACTIONS(4538),
    [sym_is] = ACTIONS(4538),
    [sym_mixin] = ACTIONS(4538),
    [sym_new] = ACTIONS(4538),
    [sym_nothrow] = ACTIONS(4538),
    [sym_out] = ACTIONS(4538),
    [sym_override] = ACTIONS(4538),
    [sym_package] = ACTIONS(4538),
    [sym_pragma] = ACTIONS(4538),
    [sym_private] = ACTIONS(4538),
    [sym_protected] = ACTIONS(4538),
    [sym_public] = ACTIONS(4538),
    [sym_pure] = ACTIONS(4538),
    [sym_ref] = ACTIONS(4538),
    [sym_return] = ACTIONS(4538),
    [sym_scope] = ACTIONS(4538),
    [sym_shared] = ACTIONS(4538),
    [sym_static] = ACTIONS(4538),
    [sym_struct] = ACTIONS(4538),
    [sym_switch] = ACTIONS(4538),
    [sym_synchronized] = ACTIONS(4538),
    [sym_template] = ACTIONS(4538),
    [sym_throw] = ACTIONS(4538),
    [sym_try] = ACTIONS(4538),
    [sym_typeid] = ACTIONS(4538),
    [sym_typeof] = ACTIONS(4538),
    [sym_union] = ACTIONS(4538),
    [sym_unittest] = ACTIONS(4538),
    [sym_version] = ACTIONS(4538),
    [sym_while] = ACTIONS(4538),
    [sym_with] = ACTIONS(4538),
    [sym_gshared] = ACTIONS(4538),
    [sym_traits] = ACTIONS(4538),
    [sym_vector] = ACTIONS(4538),
    [sym_void] = ACTIONS(4538),
    [anon_sym_BQUOTE] = ACTIONS(4540),
    [anon_sym_r_DQUOTE] = ACTIONS(4540),
    [anon_sym_x_DQUOTE] = ACTIONS(4540),
    [anon_sym_DQUOTE] = ACTIONS(4540),
    [anon_sym_i_BQUOTE] = ACTIONS(4540),
    [anon_sym_i_DQUOTE] = ACTIONS(4540),
    [anon_sym_iq_LBRACE] = ACTIONS(4540),
    [aux_sym_char_literal_token1] = ACTIONS(4540),
    [anon_sym_SQUOTE] = ACTIONS(4538),
    [anon_sym___DATE__] = ACTIONS(4538),
    [anon_sym___FILE__] = ACTIONS(4538),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4538),
    [anon_sym___FUNCTION__] = ACTIONS(4538),
    [anon_sym___LINE__] = ACTIONS(4538),
    [anon_sym___MODULE__] = ACTIONS(4538),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4538),
    [anon_sym___TIME__] = ACTIONS(4538),
    [anon_sym___TIMESTAMP__] = ACTIONS(4538),
    [anon_sym___VENDOR__] = ACTIONS(4538),
    [anon_sym___VERSION__] = ACTIONS(4538),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4540),
    [sym_float_literal] = ACTIONS(4540),
    [sym__string] = ACTIONS(4540),
  },
  [1415] = {
    [sym_identifier] = ACTIONS(4542),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4544),
    [anon_sym_RBRACE] = ACTIONS(4544),
    [anon_sym_LBRACE] = ACTIONS(4544),
    [anon_sym_DOT] = ACTIONS(4544),
    [anon_sym_AMP] = ACTIONS(4544),
    [anon_sym_DASH] = ACTIONS(4542),
    [anon_sym_DASH_DASH] = ACTIONS(4544),
    [anon_sym_PLUS] = ACTIONS(4542),
    [anon_sym_PLUS_PLUS] = ACTIONS(4544),
    [anon_sym_BANG] = ACTIONS(4544),
    [anon_sym_LPAREN] = ACTIONS(4544),
    [anon_sym_RPAREN] = ACTIONS(4544),
    [anon_sym_LBRACK] = ACTIONS(4544),
    [anon_sym_SEMI] = ACTIONS(4544),
    [anon_sym_DOLLAR] = ACTIONS(4544),
    [anon_sym_STAR] = ACTIONS(4544),
    [anon_sym_TILDE] = ACTIONS(4544),
    [anon_sym_AT] = ACTIONS(4544),
    [sym_bool] = ACTIONS(4542),
    [sym_byte] = ACTIONS(4542),
    [sym_ubyte] = ACTIONS(4542),
    [sym_char] = ACTIONS(4542),
    [sym_short] = ACTIONS(4542),
    [sym_ushort] = ACTIONS(4542),
    [sym_int] = ACTIONS(4542),
    [sym_uint] = ACTIONS(4542),
    [sym_long] = ACTIONS(4542),
    [sym_ulong] = ACTIONS(4542),
    [sym_cent] = ACTIONS(4542),
    [sym_ucent] = ACTIONS(4542),
    [sym_wchar] = ACTIONS(4542),
    [sym_dchar] = ACTIONS(4542),
    [sym_float] = ACTIONS(4542),
    [sym_double] = ACTIONS(4542),
    [sym_real] = ACTIONS(4542),
    [sym_ifloat] = ACTIONS(4542),
    [sym_idouble] = ACTIONS(4542),
    [sym_ireal] = ACTIONS(4542),
    [sym_cfloat] = ACTIONS(4542),
    [sym_cdouble] = ACTIONS(4542),
    [sym_creal] = ACTIONS(4542),
    [sym_size_t] = ACTIONS(4542),
    [sym_ptrdiff_t] = ACTIONS(4542),
    [sym_string] = ACTIONS(4542),
    [sym_cstring] = ACTIONS(4542),
    [sym_dstring] = ACTIONS(4542),
    [sym_wstring] = ACTIONS(4542),
    [sym_noreturn] = ACTIONS(4542),
    [sym_true] = ACTIONS(4542),
    [sym_false] = ACTIONS(4542),
    [sym_null] = ACTIONS(4542),
    [sym_super] = ACTIONS(4542),
    [sym_this] = ACTIONS(4542),
    [sym_abstract] = ACTIONS(4542),
    [sym_alias] = ACTIONS(4542),
    [sym_align] = ACTIONS(4542),
    [sym_asm] = ACTIONS(4542),
    [sym_assert] = ACTIONS(4542),
    [sym_auto] = ACTIONS(4542),
    [sym_break] = ACTIONS(4542),
    [sym_case] = ACTIONS(4542),
    [sym_cast] = ACTIONS(4542),
    [sym_catch] = ACTIONS(4542),
    [sym_class] = ACTIONS(4542),
    [sym_const] = ACTIONS(4542),
    [sym_continue] = ACTIONS(4542),
    [sym_debug] = ACTIONS(4542),
    [sym_default] = ACTIONS(4542),
    [sym_delegate] = ACTIONS(4542),
    [sym_delete] = ACTIONS(4542),
    [sym_deprecated] = ACTIONS(4542),
    [sym_do] = ACTIONS(4542),
    [sym_else] = ACTIONS(4542),
    [sym_enum] = ACTIONS(4542),
    [sym_export] = ACTIONS(4542),
    [sym_extern] = ACTIONS(4542),
    [sym_final] = ACTIONS(4542),
    [sym_finally] = ACTIONS(4542),
    [sym_for] = ACTIONS(4542),
    [sym_foreach] = ACTIONS(4542),
    [sym_foreach_reverse] = ACTIONS(4542),
    [sym_function] = ACTIONS(4542),
    [sym_goto] = ACTIONS(4542),
    [sym_if] = ACTIONS(4542),
    [sym_immutable] = ACTIONS(4542),
    [sym_import] = ACTIONS(4542),
    [sym_in] = ACTIONS(4542),
    [sym_inout] = ACTIONS(4542),
    [sym_interface] = ACTIONS(4542),
    [sym_invariant] = ACTIONS(4542),
    [sym_is] = ACTIONS(4542),
    [sym_mixin] = ACTIONS(4542),
    [sym_new] = ACTIONS(4542),
    [sym_nothrow] = ACTIONS(4542),
    [sym_out] = ACTIONS(4542),
    [sym_override] = ACTIONS(4542),
    [sym_package] = ACTIONS(4542),
    [sym_pragma] = ACTIONS(4542),
    [sym_private] = ACTIONS(4542),
    [sym_protected] = ACTIONS(4542),
    [sym_public] = ACTIONS(4542),
    [sym_pure] = ACTIONS(4542),
    [sym_ref] = ACTIONS(4542),
    [sym_return] = ACTIONS(4542),
    [sym_scope] = ACTIONS(4542),
    [sym_shared] = ACTIONS(4542),
    [sym_static] = ACTIONS(4542),
    [sym_struct] = ACTIONS(4542),
    [sym_switch] = ACTIONS(4542),
    [sym_synchronized] = ACTIONS(4542),
    [sym_template] = ACTIONS(4542),
    [sym_throw] = ACTIONS(4542),
    [sym_try] = ACTIONS(4542),
    [sym_typeid] = ACTIONS(4542),
    [sym_typeof] = ACTIONS(4542),
    [sym_union] = ACTIONS(4542),
    [sym_unittest] = ACTIONS(4542),
    [sym_version] = ACTIONS(4542),
    [sym_while] = ACTIONS(4542),
    [sym_with] = ACTIONS(4542),
    [sym_gshared] = ACTIONS(4542),
    [sym_traits] = ACTIONS(4542),
    [sym_vector] = ACTIONS(4542),
    [sym_void] = ACTIONS(4542),
    [anon_sym_BQUOTE] = ACTIONS(4544),
    [anon_sym_r_DQUOTE] = ACTIONS(4544),
    [anon_sym_x_DQUOTE] = ACTIONS(4544),
    [anon_sym_DQUOTE] = ACTIONS(4544),
    [anon_sym_i_BQUOTE] = ACTIONS(4544),
    [anon_sym_i_DQUOTE] = ACTIONS(4544),
    [anon_sym_iq_LBRACE] = ACTIONS(4544),
    [aux_sym_char_literal_token1] = ACTIONS(4544),
    [anon_sym_SQUOTE] = ACTIONS(4542),
    [anon_sym___DATE__] = ACTIONS(4542),
    [anon_sym___FILE__] = ACTIONS(4542),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4542),
    [anon_sym___FUNCTION__] = ACTIONS(4542),
    [anon_sym___LINE__] = ACTIONS(4542),
    [anon_sym___MODULE__] = ACTIONS(4542),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4542),
    [anon_sym___TIME__] = ACTIONS(4542),
    [anon_sym___TIMESTAMP__] = ACTIONS(4542),
    [anon_sym___VENDOR__] = ACTIONS(4542),
    [anon_sym___VERSION__] = ACTIONS(4542),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4544),
    [sym_float_literal] = ACTIONS(4544),
    [sym__string] = ACTIONS(4544),
  },
  [1416] = {
    [sym_identifier] = ACTIONS(4546),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4548),
    [anon_sym_RBRACE] = ACTIONS(4548),
    [anon_sym_LBRACE] = ACTIONS(4548),
    [anon_sym_DOT] = ACTIONS(4548),
    [anon_sym_AMP] = ACTIONS(4548),
    [anon_sym_DASH] = ACTIONS(4546),
    [anon_sym_DASH_DASH] = ACTIONS(4548),
    [anon_sym_PLUS] = ACTIONS(4546),
    [anon_sym_PLUS_PLUS] = ACTIONS(4548),
    [anon_sym_BANG] = ACTIONS(4548),
    [anon_sym_LPAREN] = ACTIONS(4548),
    [anon_sym_RPAREN] = ACTIONS(4548),
    [anon_sym_LBRACK] = ACTIONS(4548),
    [anon_sym_SEMI] = ACTIONS(4548),
    [anon_sym_DOLLAR] = ACTIONS(4548),
    [anon_sym_STAR] = ACTIONS(4548),
    [anon_sym_TILDE] = ACTIONS(4548),
    [anon_sym_AT] = ACTIONS(4548),
    [sym_bool] = ACTIONS(4546),
    [sym_byte] = ACTIONS(4546),
    [sym_ubyte] = ACTIONS(4546),
    [sym_char] = ACTIONS(4546),
    [sym_short] = ACTIONS(4546),
    [sym_ushort] = ACTIONS(4546),
    [sym_int] = ACTIONS(4546),
    [sym_uint] = ACTIONS(4546),
    [sym_long] = ACTIONS(4546),
    [sym_ulong] = ACTIONS(4546),
    [sym_cent] = ACTIONS(4546),
    [sym_ucent] = ACTIONS(4546),
    [sym_wchar] = ACTIONS(4546),
    [sym_dchar] = ACTIONS(4546),
    [sym_float] = ACTIONS(4546),
    [sym_double] = ACTIONS(4546),
    [sym_real] = ACTIONS(4546),
    [sym_ifloat] = ACTIONS(4546),
    [sym_idouble] = ACTIONS(4546),
    [sym_ireal] = ACTIONS(4546),
    [sym_cfloat] = ACTIONS(4546),
    [sym_cdouble] = ACTIONS(4546),
    [sym_creal] = ACTIONS(4546),
    [sym_size_t] = ACTIONS(4546),
    [sym_ptrdiff_t] = ACTIONS(4546),
    [sym_string] = ACTIONS(4546),
    [sym_cstring] = ACTIONS(4546),
    [sym_dstring] = ACTIONS(4546),
    [sym_wstring] = ACTIONS(4546),
    [sym_noreturn] = ACTIONS(4546),
    [sym_true] = ACTIONS(4546),
    [sym_false] = ACTIONS(4546),
    [sym_null] = ACTIONS(4546),
    [sym_super] = ACTIONS(4546),
    [sym_this] = ACTIONS(4546),
    [sym_abstract] = ACTIONS(4546),
    [sym_alias] = ACTIONS(4546),
    [sym_align] = ACTIONS(4546),
    [sym_asm] = ACTIONS(4546),
    [sym_assert] = ACTIONS(4546),
    [sym_auto] = ACTIONS(4546),
    [sym_break] = ACTIONS(4546),
    [sym_case] = ACTIONS(4546),
    [sym_cast] = ACTIONS(4546),
    [sym_catch] = ACTIONS(4546),
    [sym_class] = ACTIONS(4546),
    [sym_const] = ACTIONS(4546),
    [sym_continue] = ACTIONS(4546),
    [sym_debug] = ACTIONS(4546),
    [sym_default] = ACTIONS(4546),
    [sym_delegate] = ACTIONS(4546),
    [sym_delete] = ACTIONS(4546),
    [sym_deprecated] = ACTIONS(4546),
    [sym_do] = ACTIONS(4546),
    [sym_else] = ACTIONS(4546),
    [sym_enum] = ACTIONS(4546),
    [sym_export] = ACTIONS(4546),
    [sym_extern] = ACTIONS(4546),
    [sym_final] = ACTIONS(4546),
    [sym_finally] = ACTIONS(4546),
    [sym_for] = ACTIONS(4546),
    [sym_foreach] = ACTIONS(4546),
    [sym_foreach_reverse] = ACTIONS(4546),
    [sym_function] = ACTIONS(4546),
    [sym_goto] = ACTIONS(4546),
    [sym_if] = ACTIONS(4546),
    [sym_immutable] = ACTIONS(4546),
    [sym_import] = ACTIONS(4546),
    [sym_in] = ACTIONS(4546),
    [sym_inout] = ACTIONS(4546),
    [sym_interface] = ACTIONS(4546),
    [sym_invariant] = ACTIONS(4546),
    [sym_is] = ACTIONS(4546),
    [sym_mixin] = ACTIONS(4546),
    [sym_new] = ACTIONS(4546),
    [sym_nothrow] = ACTIONS(4546),
    [sym_out] = ACTIONS(4546),
    [sym_override] = ACTIONS(4546),
    [sym_package] = ACTIONS(4546),
    [sym_pragma] = ACTIONS(4546),
    [sym_private] = ACTIONS(4546),
    [sym_protected] = ACTIONS(4546),
    [sym_public] = ACTIONS(4546),
    [sym_pure] = ACTIONS(4546),
    [sym_ref] = ACTIONS(4546),
    [sym_return] = ACTIONS(4546),
    [sym_scope] = ACTIONS(4546),
    [sym_shared] = ACTIONS(4546),
    [sym_static] = ACTIONS(4546),
    [sym_struct] = ACTIONS(4546),
    [sym_switch] = ACTIONS(4546),
    [sym_synchronized] = ACTIONS(4546),
    [sym_template] = ACTIONS(4546),
    [sym_throw] = ACTIONS(4546),
    [sym_try] = ACTIONS(4546),
    [sym_typeid] = ACTIONS(4546),
    [sym_typeof] = ACTIONS(4546),
    [sym_union] = ACTIONS(4546),
    [sym_unittest] = ACTIONS(4546),
    [sym_version] = ACTIONS(4546),
    [sym_while] = ACTIONS(4546),
    [sym_with] = ACTIONS(4546),
    [sym_gshared] = ACTIONS(4546),
    [sym_traits] = ACTIONS(4546),
    [sym_vector] = ACTIONS(4546),
    [sym_void] = ACTIONS(4546),
    [anon_sym_BQUOTE] = ACTIONS(4548),
    [anon_sym_r_DQUOTE] = ACTIONS(4548),
    [anon_sym_x_DQUOTE] = ACTIONS(4548),
    [anon_sym_DQUOTE] = ACTIONS(4548),
    [anon_sym_i_BQUOTE] = ACTIONS(4548),
    [anon_sym_i_DQUOTE] = ACTIONS(4548),
    [anon_sym_iq_LBRACE] = ACTIONS(4548),
    [aux_sym_char_literal_token1] = ACTIONS(4548),
    [anon_sym_SQUOTE] = ACTIONS(4546),
    [anon_sym___DATE__] = ACTIONS(4546),
    [anon_sym___FILE__] = ACTIONS(4546),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4546),
    [anon_sym___FUNCTION__] = ACTIONS(4546),
    [anon_sym___LINE__] = ACTIONS(4546),
    [anon_sym___MODULE__] = ACTIONS(4546),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4546),
    [anon_sym___TIME__] = ACTIONS(4546),
    [anon_sym___TIMESTAMP__] = ACTIONS(4546),
    [anon_sym___VENDOR__] = ACTIONS(4546),
    [anon_sym___VERSION__] = ACTIONS(4546),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4548),
    [sym_float_literal] = ACTIONS(4548),
    [sym__string] = ACTIONS(4548),
  },
  [1417] = {
    [sym_identifier] = ACTIONS(4550),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4552),
    [anon_sym_RBRACE] = ACTIONS(4552),
    [anon_sym_LBRACE] = ACTIONS(4552),
    [anon_sym_DOT] = ACTIONS(4552),
    [anon_sym_AMP] = ACTIONS(4552),
    [anon_sym_DASH] = ACTIONS(4550),
    [anon_sym_DASH_DASH] = ACTIONS(4552),
    [anon_sym_PLUS] = ACTIONS(4550),
    [anon_sym_PLUS_PLUS] = ACTIONS(4552),
    [anon_sym_BANG] = ACTIONS(4552),
    [anon_sym_LPAREN] = ACTIONS(4552),
    [anon_sym_RPAREN] = ACTIONS(4552),
    [anon_sym_LBRACK] = ACTIONS(4552),
    [anon_sym_SEMI] = ACTIONS(4552),
    [anon_sym_DOLLAR] = ACTIONS(4552),
    [anon_sym_STAR] = ACTIONS(4552),
    [anon_sym_TILDE] = ACTIONS(4552),
    [anon_sym_AT] = ACTIONS(4552),
    [sym_bool] = ACTIONS(4550),
    [sym_byte] = ACTIONS(4550),
    [sym_ubyte] = ACTIONS(4550),
    [sym_char] = ACTIONS(4550),
    [sym_short] = ACTIONS(4550),
    [sym_ushort] = ACTIONS(4550),
    [sym_int] = ACTIONS(4550),
    [sym_uint] = ACTIONS(4550),
    [sym_long] = ACTIONS(4550),
    [sym_ulong] = ACTIONS(4550),
    [sym_cent] = ACTIONS(4550),
    [sym_ucent] = ACTIONS(4550),
    [sym_wchar] = ACTIONS(4550),
    [sym_dchar] = ACTIONS(4550),
    [sym_float] = ACTIONS(4550),
    [sym_double] = ACTIONS(4550),
    [sym_real] = ACTIONS(4550),
    [sym_ifloat] = ACTIONS(4550),
    [sym_idouble] = ACTIONS(4550),
    [sym_ireal] = ACTIONS(4550),
    [sym_cfloat] = ACTIONS(4550),
    [sym_cdouble] = ACTIONS(4550),
    [sym_creal] = ACTIONS(4550),
    [sym_size_t] = ACTIONS(4550),
    [sym_ptrdiff_t] = ACTIONS(4550),
    [sym_string] = ACTIONS(4550),
    [sym_cstring] = ACTIONS(4550),
    [sym_dstring] = ACTIONS(4550),
    [sym_wstring] = ACTIONS(4550),
    [sym_noreturn] = ACTIONS(4550),
    [sym_true] = ACTIONS(4550),
    [sym_false] = ACTIONS(4550),
    [sym_null] = ACTIONS(4550),
    [sym_super] = ACTIONS(4550),
    [sym_this] = ACTIONS(4550),
    [sym_abstract] = ACTIONS(4550),
    [sym_alias] = ACTIONS(4550),
    [sym_align] = ACTIONS(4550),
    [sym_asm] = ACTIONS(4550),
    [sym_assert] = ACTIONS(4550),
    [sym_auto] = ACTIONS(4550),
    [sym_break] = ACTIONS(4550),
    [sym_case] = ACTIONS(4550),
    [sym_cast] = ACTIONS(4550),
    [sym_catch] = ACTIONS(4550),
    [sym_class] = ACTIONS(4550),
    [sym_const] = ACTIONS(4550),
    [sym_continue] = ACTIONS(4550),
    [sym_debug] = ACTIONS(4550),
    [sym_default] = ACTIONS(4550),
    [sym_delegate] = ACTIONS(4550),
    [sym_delete] = ACTIONS(4550),
    [sym_deprecated] = ACTIONS(4550),
    [sym_do] = ACTIONS(4550),
    [sym_else] = ACTIONS(4550),
    [sym_enum] = ACTIONS(4550),
    [sym_export] = ACTIONS(4550),
    [sym_extern] = ACTIONS(4550),
    [sym_final] = ACTIONS(4550),
    [sym_finally] = ACTIONS(4550),
    [sym_for] = ACTIONS(4550),
    [sym_foreach] = ACTIONS(4550),
    [sym_foreach_reverse] = ACTIONS(4550),
    [sym_function] = ACTIONS(4550),
    [sym_goto] = ACTIONS(4550),
    [sym_if] = ACTIONS(4550),
    [sym_immutable] = ACTIONS(4550),
    [sym_import] = ACTIONS(4550),
    [sym_in] = ACTIONS(4550),
    [sym_inout] = ACTIONS(4550),
    [sym_interface] = ACTIONS(4550),
    [sym_invariant] = ACTIONS(4550),
    [sym_is] = ACTIONS(4550),
    [sym_mixin] = ACTIONS(4550),
    [sym_new] = ACTIONS(4550),
    [sym_nothrow] = ACTIONS(4550),
    [sym_out] = ACTIONS(4550),
    [sym_override] = ACTIONS(4550),
    [sym_package] = ACTIONS(4550),
    [sym_pragma] = ACTIONS(4550),
    [sym_private] = ACTIONS(4550),
    [sym_protected] = ACTIONS(4550),
    [sym_public] = ACTIONS(4550),
    [sym_pure] = ACTIONS(4550),
    [sym_ref] = ACTIONS(4550),
    [sym_return] = ACTIONS(4550),
    [sym_scope] = ACTIONS(4550),
    [sym_shared] = ACTIONS(4550),
    [sym_static] = ACTIONS(4550),
    [sym_struct] = ACTIONS(4550),
    [sym_switch] = ACTIONS(4550),
    [sym_synchronized] = ACTIONS(4550),
    [sym_template] = ACTIONS(4550),
    [sym_throw] = ACTIONS(4550),
    [sym_try] = ACTIONS(4550),
    [sym_typeid] = ACTIONS(4550),
    [sym_typeof] = ACTIONS(4550),
    [sym_union] = ACTIONS(4550),
    [sym_unittest] = ACTIONS(4550),
    [sym_version] = ACTIONS(4550),
    [sym_while] = ACTIONS(4550),
    [sym_with] = ACTIONS(4550),
    [sym_gshared] = ACTIONS(4550),
    [sym_traits] = ACTIONS(4550),
    [sym_vector] = ACTIONS(4550),
    [sym_void] = ACTIONS(4550),
    [anon_sym_BQUOTE] = ACTIONS(4552),
    [anon_sym_r_DQUOTE] = ACTIONS(4552),
    [anon_sym_x_DQUOTE] = ACTIONS(4552),
    [anon_sym_DQUOTE] = ACTIONS(4552),
    [anon_sym_i_BQUOTE] = ACTIONS(4552),
    [anon_sym_i_DQUOTE] = ACTIONS(4552),
    [anon_sym_iq_LBRACE] = ACTIONS(4552),
    [aux_sym_char_literal_token1] = ACTIONS(4552),
    [anon_sym_SQUOTE] = ACTIONS(4550),
    [anon_sym___DATE__] = ACTIONS(4550),
    [anon_sym___FILE__] = ACTIONS(4550),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4550),
    [anon_sym___FUNCTION__] = ACTIONS(4550),
    [anon_sym___LINE__] = ACTIONS(4550),
    [anon_sym___MODULE__] = ACTIONS(4550),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4550),
    [anon_sym___TIME__] = ACTIONS(4550),
    [anon_sym___TIMESTAMP__] = ACTIONS(4550),
    [anon_sym___VENDOR__] = ACTIONS(4550),
    [anon_sym___VERSION__] = ACTIONS(4550),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4552),
    [sym_float_literal] = ACTIONS(4552),
    [sym__string] = ACTIONS(4552),
  },
  [1418] = {
    [sym_identifier] = ACTIONS(4554),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4556),
    [anon_sym_RBRACE] = ACTIONS(4556),
    [anon_sym_LBRACE] = ACTIONS(4556),
    [anon_sym_DOT] = ACTIONS(4556),
    [anon_sym_AMP] = ACTIONS(4556),
    [anon_sym_DASH] = ACTIONS(4554),
    [anon_sym_DASH_DASH] = ACTIONS(4556),
    [anon_sym_PLUS] = ACTIONS(4554),
    [anon_sym_PLUS_PLUS] = ACTIONS(4556),
    [anon_sym_BANG] = ACTIONS(4556),
    [anon_sym_LPAREN] = ACTIONS(4556),
    [anon_sym_RPAREN] = ACTIONS(4556),
    [anon_sym_LBRACK] = ACTIONS(4556),
    [anon_sym_SEMI] = ACTIONS(4556),
    [anon_sym_DOLLAR] = ACTIONS(4556),
    [anon_sym_STAR] = ACTIONS(4556),
    [anon_sym_TILDE] = ACTIONS(4556),
    [anon_sym_AT] = ACTIONS(4556),
    [sym_bool] = ACTIONS(4554),
    [sym_byte] = ACTIONS(4554),
    [sym_ubyte] = ACTIONS(4554),
    [sym_char] = ACTIONS(4554),
    [sym_short] = ACTIONS(4554),
    [sym_ushort] = ACTIONS(4554),
    [sym_int] = ACTIONS(4554),
    [sym_uint] = ACTIONS(4554),
    [sym_long] = ACTIONS(4554),
    [sym_ulong] = ACTIONS(4554),
    [sym_cent] = ACTIONS(4554),
    [sym_ucent] = ACTIONS(4554),
    [sym_wchar] = ACTIONS(4554),
    [sym_dchar] = ACTIONS(4554),
    [sym_float] = ACTIONS(4554),
    [sym_double] = ACTIONS(4554),
    [sym_real] = ACTIONS(4554),
    [sym_ifloat] = ACTIONS(4554),
    [sym_idouble] = ACTIONS(4554),
    [sym_ireal] = ACTIONS(4554),
    [sym_cfloat] = ACTIONS(4554),
    [sym_cdouble] = ACTIONS(4554),
    [sym_creal] = ACTIONS(4554),
    [sym_size_t] = ACTIONS(4554),
    [sym_ptrdiff_t] = ACTIONS(4554),
    [sym_string] = ACTIONS(4554),
    [sym_cstring] = ACTIONS(4554),
    [sym_dstring] = ACTIONS(4554),
    [sym_wstring] = ACTIONS(4554),
    [sym_noreturn] = ACTIONS(4554),
    [sym_true] = ACTIONS(4554),
    [sym_false] = ACTIONS(4554),
    [sym_null] = ACTIONS(4554),
    [sym_super] = ACTIONS(4554),
    [sym_this] = ACTIONS(4554),
    [sym_abstract] = ACTIONS(4554),
    [sym_alias] = ACTIONS(4554),
    [sym_align] = ACTIONS(4554),
    [sym_asm] = ACTIONS(4554),
    [sym_assert] = ACTIONS(4554),
    [sym_auto] = ACTIONS(4554),
    [sym_break] = ACTIONS(4554),
    [sym_case] = ACTIONS(4554),
    [sym_cast] = ACTIONS(4554),
    [sym_catch] = ACTIONS(4554),
    [sym_class] = ACTIONS(4554),
    [sym_const] = ACTIONS(4554),
    [sym_continue] = ACTIONS(4554),
    [sym_debug] = ACTIONS(4554),
    [sym_default] = ACTIONS(4554),
    [sym_delegate] = ACTIONS(4554),
    [sym_delete] = ACTIONS(4554),
    [sym_deprecated] = ACTIONS(4554),
    [sym_do] = ACTIONS(4554),
    [sym_else] = ACTIONS(4554),
    [sym_enum] = ACTIONS(4554),
    [sym_export] = ACTIONS(4554),
    [sym_extern] = ACTIONS(4554),
    [sym_final] = ACTIONS(4554),
    [sym_finally] = ACTIONS(4554),
    [sym_for] = ACTIONS(4554),
    [sym_foreach] = ACTIONS(4554),
    [sym_foreach_reverse] = ACTIONS(4554),
    [sym_function] = ACTIONS(4554),
    [sym_goto] = ACTIONS(4554),
    [sym_if] = ACTIONS(4554),
    [sym_immutable] = ACTIONS(4554),
    [sym_import] = ACTIONS(4554),
    [sym_in] = ACTIONS(4554),
    [sym_inout] = ACTIONS(4554),
    [sym_interface] = ACTIONS(4554),
    [sym_invariant] = ACTIONS(4554),
    [sym_is] = ACTIONS(4554),
    [sym_mixin] = ACTIONS(4554),
    [sym_new] = ACTIONS(4554),
    [sym_nothrow] = ACTIONS(4554),
    [sym_out] = ACTIONS(4554),
    [sym_override] = ACTIONS(4554),
    [sym_package] = ACTIONS(4554),
    [sym_pragma] = ACTIONS(4554),
    [sym_private] = ACTIONS(4554),
    [sym_protected] = ACTIONS(4554),
    [sym_public] = ACTIONS(4554),
    [sym_pure] = ACTIONS(4554),
    [sym_ref] = ACTIONS(4554),
    [sym_return] = ACTIONS(4554),
    [sym_scope] = ACTIONS(4554),
    [sym_shared] = ACTIONS(4554),
    [sym_static] = ACTIONS(4554),
    [sym_struct] = ACTIONS(4554),
    [sym_switch] = ACTIONS(4554),
    [sym_synchronized] = ACTIONS(4554),
    [sym_template] = ACTIONS(4554),
    [sym_throw] = ACTIONS(4554),
    [sym_try] = ACTIONS(4554),
    [sym_typeid] = ACTIONS(4554),
    [sym_typeof] = ACTIONS(4554),
    [sym_union] = ACTIONS(4554),
    [sym_unittest] = ACTIONS(4554),
    [sym_version] = ACTIONS(4554),
    [sym_while] = ACTIONS(4554),
    [sym_with] = ACTIONS(4554),
    [sym_gshared] = ACTIONS(4554),
    [sym_traits] = ACTIONS(4554),
    [sym_vector] = ACTIONS(4554),
    [sym_void] = ACTIONS(4554),
    [anon_sym_BQUOTE] = ACTIONS(4556),
    [anon_sym_r_DQUOTE] = ACTIONS(4556),
    [anon_sym_x_DQUOTE] = ACTIONS(4556),
    [anon_sym_DQUOTE] = ACTIONS(4556),
    [anon_sym_i_BQUOTE] = ACTIONS(4556),
    [anon_sym_i_DQUOTE] = ACTIONS(4556),
    [anon_sym_iq_LBRACE] = ACTIONS(4556),
    [aux_sym_char_literal_token1] = ACTIONS(4556),
    [anon_sym_SQUOTE] = ACTIONS(4554),
    [anon_sym___DATE__] = ACTIONS(4554),
    [anon_sym___FILE__] = ACTIONS(4554),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4554),
    [anon_sym___FUNCTION__] = ACTIONS(4554),
    [anon_sym___LINE__] = ACTIONS(4554),
    [anon_sym___MODULE__] = ACTIONS(4554),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4554),
    [anon_sym___TIME__] = ACTIONS(4554),
    [anon_sym___TIMESTAMP__] = ACTIONS(4554),
    [anon_sym___VENDOR__] = ACTIONS(4554),
    [anon_sym___VERSION__] = ACTIONS(4554),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4556),
    [sym_float_literal] = ACTIONS(4556),
    [sym__string] = ACTIONS(4556),
  },
  [1419] = {
    [sym_identifier] = ACTIONS(4558),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4560),
    [anon_sym_RBRACE] = ACTIONS(4560),
    [anon_sym_LBRACE] = ACTIONS(4560),
    [anon_sym_DOT] = ACTIONS(4560),
    [anon_sym_AMP] = ACTIONS(4560),
    [anon_sym_DASH] = ACTIONS(4558),
    [anon_sym_DASH_DASH] = ACTIONS(4560),
    [anon_sym_PLUS] = ACTIONS(4558),
    [anon_sym_PLUS_PLUS] = ACTIONS(4560),
    [anon_sym_BANG] = ACTIONS(4560),
    [anon_sym_LPAREN] = ACTIONS(4560),
    [anon_sym_RPAREN] = ACTIONS(4560),
    [anon_sym_LBRACK] = ACTIONS(4560),
    [anon_sym_SEMI] = ACTIONS(4560),
    [anon_sym_DOLLAR] = ACTIONS(4560),
    [anon_sym_STAR] = ACTIONS(4560),
    [anon_sym_TILDE] = ACTIONS(4560),
    [anon_sym_AT] = ACTIONS(4560),
    [sym_bool] = ACTIONS(4558),
    [sym_byte] = ACTIONS(4558),
    [sym_ubyte] = ACTIONS(4558),
    [sym_char] = ACTIONS(4558),
    [sym_short] = ACTIONS(4558),
    [sym_ushort] = ACTIONS(4558),
    [sym_int] = ACTIONS(4558),
    [sym_uint] = ACTIONS(4558),
    [sym_long] = ACTIONS(4558),
    [sym_ulong] = ACTIONS(4558),
    [sym_cent] = ACTIONS(4558),
    [sym_ucent] = ACTIONS(4558),
    [sym_wchar] = ACTIONS(4558),
    [sym_dchar] = ACTIONS(4558),
    [sym_float] = ACTIONS(4558),
    [sym_double] = ACTIONS(4558),
    [sym_real] = ACTIONS(4558),
    [sym_ifloat] = ACTIONS(4558),
    [sym_idouble] = ACTIONS(4558),
    [sym_ireal] = ACTIONS(4558),
    [sym_cfloat] = ACTIONS(4558),
    [sym_cdouble] = ACTIONS(4558),
    [sym_creal] = ACTIONS(4558),
    [sym_size_t] = ACTIONS(4558),
    [sym_ptrdiff_t] = ACTIONS(4558),
    [sym_string] = ACTIONS(4558),
    [sym_cstring] = ACTIONS(4558),
    [sym_dstring] = ACTIONS(4558),
    [sym_wstring] = ACTIONS(4558),
    [sym_noreturn] = ACTIONS(4558),
    [sym_true] = ACTIONS(4558),
    [sym_false] = ACTIONS(4558),
    [sym_null] = ACTIONS(4558),
    [sym_super] = ACTIONS(4558),
    [sym_this] = ACTIONS(4558),
    [sym_abstract] = ACTIONS(4558),
    [sym_alias] = ACTIONS(4558),
    [sym_align] = ACTIONS(4558),
    [sym_asm] = ACTIONS(4558),
    [sym_assert] = ACTIONS(4558),
    [sym_auto] = ACTIONS(4558),
    [sym_break] = ACTIONS(4558),
    [sym_case] = ACTIONS(4558),
    [sym_cast] = ACTIONS(4558),
    [sym_catch] = ACTIONS(4558),
    [sym_class] = ACTIONS(4558),
    [sym_const] = ACTIONS(4558),
    [sym_continue] = ACTIONS(4558),
    [sym_debug] = ACTIONS(4558),
    [sym_default] = ACTIONS(4558),
    [sym_delegate] = ACTIONS(4558),
    [sym_delete] = ACTIONS(4558),
    [sym_deprecated] = ACTIONS(4558),
    [sym_do] = ACTIONS(4558),
    [sym_else] = ACTIONS(4558),
    [sym_enum] = ACTIONS(4558),
    [sym_export] = ACTIONS(4558),
    [sym_extern] = ACTIONS(4558),
    [sym_final] = ACTIONS(4558),
    [sym_finally] = ACTIONS(4558),
    [sym_for] = ACTIONS(4558),
    [sym_foreach] = ACTIONS(4558),
    [sym_foreach_reverse] = ACTIONS(4558),
    [sym_function] = ACTIONS(4558),
    [sym_goto] = ACTIONS(4558),
    [sym_if] = ACTIONS(4558),
    [sym_immutable] = ACTIONS(4558),
    [sym_import] = ACTIONS(4558),
    [sym_in] = ACTIONS(4558),
    [sym_inout] = ACTIONS(4558),
    [sym_interface] = ACTIONS(4558),
    [sym_invariant] = ACTIONS(4558),
    [sym_is] = ACTIONS(4558),
    [sym_mixin] = ACTIONS(4558),
    [sym_new] = ACTIONS(4558),
    [sym_nothrow] = ACTIONS(4558),
    [sym_out] = ACTIONS(4558),
    [sym_override] = ACTIONS(4558),
    [sym_package] = ACTIONS(4558),
    [sym_pragma] = ACTIONS(4558),
    [sym_private] = ACTIONS(4558),
    [sym_protected] = ACTIONS(4558),
    [sym_public] = ACTIONS(4558),
    [sym_pure] = ACTIONS(4558),
    [sym_ref] = ACTIONS(4558),
    [sym_return] = ACTIONS(4558),
    [sym_scope] = ACTIONS(4558),
    [sym_shared] = ACTIONS(4558),
    [sym_static] = ACTIONS(4558),
    [sym_struct] = ACTIONS(4558),
    [sym_switch] = ACTIONS(4558),
    [sym_synchronized] = ACTIONS(4558),
    [sym_template] = ACTIONS(4558),
    [sym_throw] = ACTIONS(4558),
    [sym_try] = ACTIONS(4558),
    [sym_typeid] = ACTIONS(4558),
    [sym_typeof] = ACTIONS(4558),
    [sym_union] = ACTIONS(4558),
    [sym_unittest] = ACTIONS(4558),
    [sym_version] = ACTIONS(4558),
    [sym_while] = ACTIONS(4558),
    [sym_with] = ACTIONS(4558),
    [sym_gshared] = ACTIONS(4558),
    [sym_traits] = ACTIONS(4558),
    [sym_vector] = ACTIONS(4558),
    [sym_void] = ACTIONS(4558),
    [anon_sym_BQUOTE] = ACTIONS(4560),
    [anon_sym_r_DQUOTE] = ACTIONS(4560),
    [anon_sym_x_DQUOTE] = ACTIONS(4560),
    [anon_sym_DQUOTE] = ACTIONS(4560),
    [anon_sym_i_BQUOTE] = ACTIONS(4560),
    [anon_sym_i_DQUOTE] = ACTIONS(4560),
    [anon_sym_iq_LBRACE] = ACTIONS(4560),
    [aux_sym_char_literal_token1] = ACTIONS(4560),
    [anon_sym_SQUOTE] = ACTIONS(4558),
    [anon_sym___DATE__] = ACTIONS(4558),
    [anon_sym___FILE__] = ACTIONS(4558),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4558),
    [anon_sym___FUNCTION__] = ACTIONS(4558),
    [anon_sym___LINE__] = ACTIONS(4558),
    [anon_sym___MODULE__] = ACTIONS(4558),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4558),
    [anon_sym___TIME__] = ACTIONS(4558),
    [anon_sym___TIMESTAMP__] = ACTIONS(4558),
    [anon_sym___VENDOR__] = ACTIONS(4558),
    [anon_sym___VERSION__] = ACTIONS(4558),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4560),
    [sym_float_literal] = ACTIONS(4560),
    [sym__string] = ACTIONS(4560),
  },
  [1420] = {
    [sym_identifier] = ACTIONS(4562),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4564),
    [anon_sym_RBRACE] = ACTIONS(4564),
    [anon_sym_LBRACE] = ACTIONS(4564),
    [anon_sym_DOT] = ACTIONS(4564),
    [anon_sym_AMP] = ACTIONS(4564),
    [anon_sym_DASH] = ACTIONS(4562),
    [anon_sym_DASH_DASH] = ACTIONS(4564),
    [anon_sym_PLUS] = ACTIONS(4562),
    [anon_sym_PLUS_PLUS] = ACTIONS(4564),
    [anon_sym_BANG] = ACTIONS(4564),
    [anon_sym_LPAREN] = ACTIONS(4564),
    [anon_sym_RPAREN] = ACTIONS(4564),
    [anon_sym_LBRACK] = ACTIONS(4564),
    [anon_sym_SEMI] = ACTIONS(4564),
    [anon_sym_DOLLAR] = ACTIONS(4564),
    [anon_sym_STAR] = ACTIONS(4564),
    [anon_sym_TILDE] = ACTIONS(4564),
    [anon_sym_AT] = ACTIONS(4564),
    [sym_bool] = ACTIONS(4562),
    [sym_byte] = ACTIONS(4562),
    [sym_ubyte] = ACTIONS(4562),
    [sym_char] = ACTIONS(4562),
    [sym_short] = ACTIONS(4562),
    [sym_ushort] = ACTIONS(4562),
    [sym_int] = ACTIONS(4562),
    [sym_uint] = ACTIONS(4562),
    [sym_long] = ACTIONS(4562),
    [sym_ulong] = ACTIONS(4562),
    [sym_cent] = ACTIONS(4562),
    [sym_ucent] = ACTIONS(4562),
    [sym_wchar] = ACTIONS(4562),
    [sym_dchar] = ACTIONS(4562),
    [sym_float] = ACTIONS(4562),
    [sym_double] = ACTIONS(4562),
    [sym_real] = ACTIONS(4562),
    [sym_ifloat] = ACTIONS(4562),
    [sym_idouble] = ACTIONS(4562),
    [sym_ireal] = ACTIONS(4562),
    [sym_cfloat] = ACTIONS(4562),
    [sym_cdouble] = ACTIONS(4562),
    [sym_creal] = ACTIONS(4562),
    [sym_size_t] = ACTIONS(4562),
    [sym_ptrdiff_t] = ACTIONS(4562),
    [sym_string] = ACTIONS(4562),
    [sym_cstring] = ACTIONS(4562),
    [sym_dstring] = ACTIONS(4562),
    [sym_wstring] = ACTIONS(4562),
    [sym_noreturn] = ACTIONS(4562),
    [sym_true] = ACTIONS(4562),
    [sym_false] = ACTIONS(4562),
    [sym_null] = ACTIONS(4562),
    [sym_super] = ACTIONS(4562),
    [sym_this] = ACTIONS(4562),
    [sym_abstract] = ACTIONS(4562),
    [sym_alias] = ACTIONS(4562),
    [sym_align] = ACTIONS(4562),
    [sym_asm] = ACTIONS(4562),
    [sym_assert] = ACTIONS(4562),
    [sym_auto] = ACTIONS(4562),
    [sym_break] = ACTIONS(4562),
    [sym_case] = ACTIONS(4562),
    [sym_cast] = ACTIONS(4562),
    [sym_catch] = ACTIONS(4562),
    [sym_class] = ACTIONS(4562),
    [sym_const] = ACTIONS(4562),
    [sym_continue] = ACTIONS(4562),
    [sym_debug] = ACTIONS(4562),
    [sym_default] = ACTIONS(4562),
    [sym_delegate] = ACTIONS(4562),
    [sym_delete] = ACTIONS(4562),
    [sym_deprecated] = ACTIONS(4562),
    [sym_do] = ACTIONS(4562),
    [sym_else] = ACTIONS(4562),
    [sym_enum] = ACTIONS(4562),
    [sym_export] = ACTIONS(4562),
    [sym_extern] = ACTIONS(4562),
    [sym_final] = ACTIONS(4562),
    [sym_finally] = ACTIONS(4562),
    [sym_for] = ACTIONS(4562),
    [sym_foreach] = ACTIONS(4562),
    [sym_foreach_reverse] = ACTIONS(4562),
    [sym_function] = ACTIONS(4562),
    [sym_goto] = ACTIONS(4562),
    [sym_if] = ACTIONS(4562),
    [sym_immutable] = ACTIONS(4562),
    [sym_import] = ACTIONS(4562),
    [sym_in] = ACTIONS(4562),
    [sym_inout] = ACTIONS(4562),
    [sym_interface] = ACTIONS(4562),
    [sym_invariant] = ACTIONS(4562),
    [sym_is] = ACTIONS(4562),
    [sym_mixin] = ACTIONS(4562),
    [sym_new] = ACTIONS(4562),
    [sym_nothrow] = ACTIONS(4562),
    [sym_out] = ACTIONS(4562),
    [sym_override] = ACTIONS(4562),
    [sym_package] = ACTIONS(4562),
    [sym_pragma] = ACTIONS(4562),
    [sym_private] = ACTIONS(4562),
    [sym_protected] = ACTIONS(4562),
    [sym_public] = ACTIONS(4562),
    [sym_pure] = ACTIONS(4562),
    [sym_ref] = ACTIONS(4562),
    [sym_return] = ACTIONS(4562),
    [sym_scope] = ACTIONS(4562),
    [sym_shared] = ACTIONS(4562),
    [sym_static] = ACTIONS(4562),
    [sym_struct] = ACTIONS(4562),
    [sym_switch] = ACTIONS(4562),
    [sym_synchronized] = ACTIONS(4562),
    [sym_template] = ACTIONS(4562),
    [sym_throw] = ACTIONS(4562),
    [sym_try] = ACTIONS(4562),
    [sym_typeid] = ACTIONS(4562),
    [sym_typeof] = ACTIONS(4562),
    [sym_union] = ACTIONS(4562),
    [sym_unittest] = ACTIONS(4562),
    [sym_version] = ACTIONS(4562),
    [sym_while] = ACTIONS(4562),
    [sym_with] = ACTIONS(4562),
    [sym_gshared] = ACTIONS(4562),
    [sym_traits] = ACTIONS(4562),
    [sym_vector] = ACTIONS(4562),
    [sym_void] = ACTIONS(4562),
    [anon_sym_BQUOTE] = ACTIONS(4564),
    [anon_sym_r_DQUOTE] = ACTIONS(4564),
    [anon_sym_x_DQUOTE] = ACTIONS(4564),
    [anon_sym_DQUOTE] = ACTIONS(4564),
    [anon_sym_i_BQUOTE] = ACTIONS(4564),
    [anon_sym_i_DQUOTE] = ACTIONS(4564),
    [anon_sym_iq_LBRACE] = ACTIONS(4564),
    [aux_sym_char_literal_token1] = ACTIONS(4564),
    [anon_sym_SQUOTE] = ACTIONS(4562),
    [anon_sym___DATE__] = ACTIONS(4562),
    [anon_sym___FILE__] = ACTIONS(4562),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4562),
    [anon_sym___FUNCTION__] = ACTIONS(4562),
    [anon_sym___LINE__] = ACTIONS(4562),
    [anon_sym___MODULE__] = ACTIONS(4562),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4562),
    [anon_sym___TIME__] = ACTIONS(4562),
    [anon_sym___TIMESTAMP__] = ACTIONS(4562),
    [anon_sym___VENDOR__] = ACTIONS(4562),
    [anon_sym___VERSION__] = ACTIONS(4562),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4564),
    [sym_float_literal] = ACTIONS(4564),
    [sym__string] = ACTIONS(4564),
  },
  [1421] = {
    [sym_identifier] = ACTIONS(4566),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4568),
    [anon_sym_RBRACE] = ACTIONS(4568),
    [anon_sym_LBRACE] = ACTIONS(4568),
    [anon_sym_DOT] = ACTIONS(4568),
    [anon_sym_AMP] = ACTIONS(4568),
    [anon_sym_DASH] = ACTIONS(4566),
    [anon_sym_DASH_DASH] = ACTIONS(4568),
    [anon_sym_PLUS] = ACTIONS(4566),
    [anon_sym_PLUS_PLUS] = ACTIONS(4568),
    [anon_sym_BANG] = ACTIONS(4568),
    [anon_sym_LPAREN] = ACTIONS(4568),
    [anon_sym_RPAREN] = ACTIONS(4568),
    [anon_sym_LBRACK] = ACTIONS(4568),
    [anon_sym_SEMI] = ACTIONS(4568),
    [anon_sym_DOLLAR] = ACTIONS(4568),
    [anon_sym_STAR] = ACTIONS(4568),
    [anon_sym_TILDE] = ACTIONS(4568),
    [anon_sym_AT] = ACTIONS(4568),
    [sym_bool] = ACTIONS(4566),
    [sym_byte] = ACTIONS(4566),
    [sym_ubyte] = ACTIONS(4566),
    [sym_char] = ACTIONS(4566),
    [sym_short] = ACTIONS(4566),
    [sym_ushort] = ACTIONS(4566),
    [sym_int] = ACTIONS(4566),
    [sym_uint] = ACTIONS(4566),
    [sym_long] = ACTIONS(4566),
    [sym_ulong] = ACTIONS(4566),
    [sym_cent] = ACTIONS(4566),
    [sym_ucent] = ACTIONS(4566),
    [sym_wchar] = ACTIONS(4566),
    [sym_dchar] = ACTIONS(4566),
    [sym_float] = ACTIONS(4566),
    [sym_double] = ACTIONS(4566),
    [sym_real] = ACTIONS(4566),
    [sym_ifloat] = ACTIONS(4566),
    [sym_idouble] = ACTIONS(4566),
    [sym_ireal] = ACTIONS(4566),
    [sym_cfloat] = ACTIONS(4566),
    [sym_cdouble] = ACTIONS(4566),
    [sym_creal] = ACTIONS(4566),
    [sym_size_t] = ACTIONS(4566),
    [sym_ptrdiff_t] = ACTIONS(4566),
    [sym_string] = ACTIONS(4566),
    [sym_cstring] = ACTIONS(4566),
    [sym_dstring] = ACTIONS(4566),
    [sym_wstring] = ACTIONS(4566),
    [sym_noreturn] = ACTIONS(4566),
    [sym_true] = ACTIONS(4566),
    [sym_false] = ACTIONS(4566),
    [sym_null] = ACTIONS(4566),
    [sym_super] = ACTIONS(4566),
    [sym_this] = ACTIONS(4566),
    [sym_abstract] = ACTIONS(4566),
    [sym_alias] = ACTIONS(4566),
    [sym_align] = ACTIONS(4566),
    [sym_asm] = ACTIONS(4566),
    [sym_assert] = ACTIONS(4566),
    [sym_auto] = ACTIONS(4566),
    [sym_break] = ACTIONS(4566),
    [sym_case] = ACTIONS(4566),
    [sym_cast] = ACTIONS(4566),
    [sym_catch] = ACTIONS(4566),
    [sym_class] = ACTIONS(4566),
    [sym_const] = ACTIONS(4566),
    [sym_continue] = ACTIONS(4566),
    [sym_debug] = ACTIONS(4566),
    [sym_default] = ACTIONS(4566),
    [sym_delegate] = ACTIONS(4566),
    [sym_delete] = ACTIONS(4566),
    [sym_deprecated] = ACTIONS(4566),
    [sym_do] = ACTIONS(4566),
    [sym_else] = ACTIONS(4566),
    [sym_enum] = ACTIONS(4566),
    [sym_export] = ACTIONS(4566),
    [sym_extern] = ACTIONS(4566),
    [sym_final] = ACTIONS(4566),
    [sym_finally] = ACTIONS(4566),
    [sym_for] = ACTIONS(4566),
    [sym_foreach] = ACTIONS(4566),
    [sym_foreach_reverse] = ACTIONS(4566),
    [sym_function] = ACTIONS(4566),
    [sym_goto] = ACTIONS(4566),
    [sym_if] = ACTIONS(4566),
    [sym_immutable] = ACTIONS(4566),
    [sym_import] = ACTIONS(4566),
    [sym_in] = ACTIONS(4566),
    [sym_inout] = ACTIONS(4566),
    [sym_interface] = ACTIONS(4566),
    [sym_invariant] = ACTIONS(4566),
    [sym_is] = ACTIONS(4566),
    [sym_mixin] = ACTIONS(4566),
    [sym_new] = ACTIONS(4566),
    [sym_nothrow] = ACTIONS(4566),
    [sym_out] = ACTIONS(4566),
    [sym_override] = ACTIONS(4566),
    [sym_package] = ACTIONS(4566),
    [sym_pragma] = ACTIONS(4566),
    [sym_private] = ACTIONS(4566),
    [sym_protected] = ACTIONS(4566),
    [sym_public] = ACTIONS(4566),
    [sym_pure] = ACTIONS(4566),
    [sym_ref] = ACTIONS(4566),
    [sym_return] = ACTIONS(4566),
    [sym_scope] = ACTIONS(4566),
    [sym_shared] = ACTIONS(4566),
    [sym_static] = ACTIONS(4566),
    [sym_struct] = ACTIONS(4566),
    [sym_switch] = ACTIONS(4566),
    [sym_synchronized] = ACTIONS(4566),
    [sym_template] = ACTIONS(4566),
    [sym_throw] = ACTIONS(4566),
    [sym_try] = ACTIONS(4566),
    [sym_typeid] = ACTIONS(4566),
    [sym_typeof] = ACTIONS(4566),
    [sym_union] = ACTIONS(4566),
    [sym_unittest] = ACTIONS(4566),
    [sym_version] = ACTIONS(4566),
    [sym_while] = ACTIONS(4566),
    [sym_with] = ACTIONS(4566),
    [sym_gshared] = ACTIONS(4566),
    [sym_traits] = ACTIONS(4566),
    [sym_vector] = ACTIONS(4566),
    [sym_void] = ACTIONS(4566),
    [anon_sym_BQUOTE] = ACTIONS(4568),
    [anon_sym_r_DQUOTE] = ACTIONS(4568),
    [anon_sym_x_DQUOTE] = ACTIONS(4568),
    [anon_sym_DQUOTE] = ACTIONS(4568),
    [anon_sym_i_BQUOTE] = ACTIONS(4568),
    [anon_sym_i_DQUOTE] = ACTIONS(4568),
    [anon_sym_iq_LBRACE] = ACTIONS(4568),
    [aux_sym_char_literal_token1] = ACTIONS(4568),
    [anon_sym_SQUOTE] = ACTIONS(4566),
    [anon_sym___DATE__] = ACTIONS(4566),
    [anon_sym___FILE__] = ACTIONS(4566),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4566),
    [anon_sym___FUNCTION__] = ACTIONS(4566),
    [anon_sym___LINE__] = ACTIONS(4566),
    [anon_sym___MODULE__] = ACTIONS(4566),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4566),
    [anon_sym___TIME__] = ACTIONS(4566),
    [anon_sym___TIMESTAMP__] = ACTIONS(4566),
    [anon_sym___VENDOR__] = ACTIONS(4566),
    [anon_sym___VERSION__] = ACTIONS(4566),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4568),
    [sym_float_literal] = ACTIONS(4568),
    [sym__string] = ACTIONS(4568),
  },
  [1422] = {
    [sym_identifier] = ACTIONS(4570),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4572),
    [anon_sym_RBRACE] = ACTIONS(4572),
    [anon_sym_LBRACE] = ACTIONS(4572),
    [anon_sym_DOT] = ACTIONS(4572),
    [anon_sym_AMP] = ACTIONS(4572),
    [anon_sym_DASH] = ACTIONS(4570),
    [anon_sym_DASH_DASH] = ACTIONS(4572),
    [anon_sym_PLUS] = ACTIONS(4570),
    [anon_sym_PLUS_PLUS] = ACTIONS(4572),
    [anon_sym_BANG] = ACTIONS(4572),
    [anon_sym_LPAREN] = ACTIONS(4572),
    [anon_sym_RPAREN] = ACTIONS(4572),
    [anon_sym_LBRACK] = ACTIONS(4572),
    [anon_sym_SEMI] = ACTIONS(4572),
    [anon_sym_DOLLAR] = ACTIONS(4572),
    [anon_sym_STAR] = ACTIONS(4572),
    [anon_sym_TILDE] = ACTIONS(4572),
    [anon_sym_AT] = ACTIONS(4572),
    [sym_bool] = ACTIONS(4570),
    [sym_byte] = ACTIONS(4570),
    [sym_ubyte] = ACTIONS(4570),
    [sym_char] = ACTIONS(4570),
    [sym_short] = ACTIONS(4570),
    [sym_ushort] = ACTIONS(4570),
    [sym_int] = ACTIONS(4570),
    [sym_uint] = ACTIONS(4570),
    [sym_long] = ACTIONS(4570),
    [sym_ulong] = ACTIONS(4570),
    [sym_cent] = ACTIONS(4570),
    [sym_ucent] = ACTIONS(4570),
    [sym_wchar] = ACTIONS(4570),
    [sym_dchar] = ACTIONS(4570),
    [sym_float] = ACTIONS(4570),
    [sym_double] = ACTIONS(4570),
    [sym_real] = ACTIONS(4570),
    [sym_ifloat] = ACTIONS(4570),
    [sym_idouble] = ACTIONS(4570),
    [sym_ireal] = ACTIONS(4570),
    [sym_cfloat] = ACTIONS(4570),
    [sym_cdouble] = ACTIONS(4570),
    [sym_creal] = ACTIONS(4570),
    [sym_size_t] = ACTIONS(4570),
    [sym_ptrdiff_t] = ACTIONS(4570),
    [sym_string] = ACTIONS(4570),
    [sym_cstring] = ACTIONS(4570),
    [sym_dstring] = ACTIONS(4570),
    [sym_wstring] = ACTIONS(4570),
    [sym_noreturn] = ACTIONS(4570),
    [sym_true] = ACTIONS(4570),
    [sym_false] = ACTIONS(4570),
    [sym_null] = ACTIONS(4570),
    [sym_super] = ACTIONS(4570),
    [sym_this] = ACTIONS(4570),
    [sym_abstract] = ACTIONS(4570),
    [sym_alias] = ACTIONS(4570),
    [sym_align] = ACTIONS(4570),
    [sym_asm] = ACTIONS(4570),
    [sym_assert] = ACTIONS(4570),
    [sym_auto] = ACTIONS(4570),
    [sym_break] = ACTIONS(4570),
    [sym_case] = ACTIONS(4570),
    [sym_cast] = ACTIONS(4570),
    [sym_catch] = ACTIONS(4570),
    [sym_class] = ACTIONS(4570),
    [sym_const] = ACTIONS(4570),
    [sym_continue] = ACTIONS(4570),
    [sym_debug] = ACTIONS(4570),
    [sym_default] = ACTIONS(4570),
    [sym_delegate] = ACTIONS(4570),
    [sym_delete] = ACTIONS(4570),
    [sym_deprecated] = ACTIONS(4570),
    [sym_do] = ACTIONS(4570),
    [sym_else] = ACTIONS(4570),
    [sym_enum] = ACTIONS(4570),
    [sym_export] = ACTIONS(4570),
    [sym_extern] = ACTIONS(4570),
    [sym_final] = ACTIONS(4570),
    [sym_finally] = ACTIONS(4570),
    [sym_for] = ACTIONS(4570),
    [sym_foreach] = ACTIONS(4570),
    [sym_foreach_reverse] = ACTIONS(4570),
    [sym_function] = ACTIONS(4570),
    [sym_goto] = ACTIONS(4570),
    [sym_if] = ACTIONS(4570),
    [sym_immutable] = ACTIONS(4570),
    [sym_import] = ACTIONS(4570),
    [sym_in] = ACTIONS(4570),
    [sym_inout] = ACTIONS(4570),
    [sym_interface] = ACTIONS(4570),
    [sym_invariant] = ACTIONS(4570),
    [sym_is] = ACTIONS(4570),
    [sym_mixin] = ACTIONS(4570),
    [sym_new] = ACTIONS(4570),
    [sym_nothrow] = ACTIONS(4570),
    [sym_out] = ACTIONS(4570),
    [sym_override] = ACTIONS(4570),
    [sym_package] = ACTIONS(4570),
    [sym_pragma] = ACTIONS(4570),
    [sym_private] = ACTIONS(4570),
    [sym_protected] = ACTIONS(4570),
    [sym_public] = ACTIONS(4570),
    [sym_pure] = ACTIONS(4570),
    [sym_ref] = ACTIONS(4570),
    [sym_return] = ACTIONS(4570),
    [sym_scope] = ACTIONS(4570),
    [sym_shared] = ACTIONS(4570),
    [sym_static] = ACTIONS(4570),
    [sym_struct] = ACTIONS(4570),
    [sym_switch] = ACTIONS(4570),
    [sym_synchronized] = ACTIONS(4570),
    [sym_template] = ACTIONS(4570),
    [sym_throw] = ACTIONS(4570),
    [sym_try] = ACTIONS(4570),
    [sym_typeid] = ACTIONS(4570),
    [sym_typeof] = ACTIONS(4570),
    [sym_union] = ACTIONS(4570),
    [sym_unittest] = ACTIONS(4570),
    [sym_version] = ACTIONS(4570),
    [sym_while] = ACTIONS(4570),
    [sym_with] = ACTIONS(4570),
    [sym_gshared] = ACTIONS(4570),
    [sym_traits] = ACTIONS(4570),
    [sym_vector] = ACTIONS(4570),
    [sym_void] = ACTIONS(4570),
    [anon_sym_BQUOTE] = ACTIONS(4572),
    [anon_sym_r_DQUOTE] = ACTIONS(4572),
    [anon_sym_x_DQUOTE] = ACTIONS(4572),
    [anon_sym_DQUOTE] = ACTIONS(4572),
    [anon_sym_i_BQUOTE] = ACTIONS(4572),
    [anon_sym_i_DQUOTE] = ACTIONS(4572),
    [anon_sym_iq_LBRACE] = ACTIONS(4572),
    [aux_sym_char_literal_token1] = ACTIONS(4572),
    [anon_sym_SQUOTE] = ACTIONS(4570),
    [anon_sym___DATE__] = ACTIONS(4570),
    [anon_sym___FILE__] = ACTIONS(4570),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4570),
    [anon_sym___FUNCTION__] = ACTIONS(4570),
    [anon_sym___LINE__] = ACTIONS(4570),
    [anon_sym___MODULE__] = ACTIONS(4570),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4570),
    [anon_sym___TIME__] = ACTIONS(4570),
    [anon_sym___TIMESTAMP__] = ACTIONS(4570),
    [anon_sym___VENDOR__] = ACTIONS(4570),
    [anon_sym___VERSION__] = ACTIONS(4570),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4572),
    [sym_float_literal] = ACTIONS(4572),
    [sym__string] = ACTIONS(4572),
  },
  [1423] = {
    [sym_identifier] = ACTIONS(4574),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4576),
    [anon_sym_RBRACE] = ACTIONS(4576),
    [anon_sym_LBRACE] = ACTIONS(4576),
    [anon_sym_DOT] = ACTIONS(4576),
    [anon_sym_AMP] = ACTIONS(4576),
    [anon_sym_DASH] = ACTIONS(4574),
    [anon_sym_DASH_DASH] = ACTIONS(4576),
    [anon_sym_PLUS] = ACTIONS(4574),
    [anon_sym_PLUS_PLUS] = ACTIONS(4576),
    [anon_sym_BANG] = ACTIONS(4576),
    [anon_sym_LPAREN] = ACTIONS(4576),
    [anon_sym_RPAREN] = ACTIONS(4576),
    [anon_sym_LBRACK] = ACTIONS(4576),
    [anon_sym_SEMI] = ACTIONS(4576),
    [anon_sym_DOLLAR] = ACTIONS(4576),
    [anon_sym_STAR] = ACTIONS(4576),
    [anon_sym_TILDE] = ACTIONS(4576),
    [anon_sym_AT] = ACTIONS(4576),
    [sym_bool] = ACTIONS(4574),
    [sym_byte] = ACTIONS(4574),
    [sym_ubyte] = ACTIONS(4574),
    [sym_char] = ACTIONS(4574),
    [sym_short] = ACTIONS(4574),
    [sym_ushort] = ACTIONS(4574),
    [sym_int] = ACTIONS(4574),
    [sym_uint] = ACTIONS(4574),
    [sym_long] = ACTIONS(4574),
    [sym_ulong] = ACTIONS(4574),
    [sym_cent] = ACTIONS(4574),
    [sym_ucent] = ACTIONS(4574),
    [sym_wchar] = ACTIONS(4574),
    [sym_dchar] = ACTIONS(4574),
    [sym_float] = ACTIONS(4574),
    [sym_double] = ACTIONS(4574),
    [sym_real] = ACTIONS(4574),
    [sym_ifloat] = ACTIONS(4574),
    [sym_idouble] = ACTIONS(4574),
    [sym_ireal] = ACTIONS(4574),
    [sym_cfloat] = ACTIONS(4574),
    [sym_cdouble] = ACTIONS(4574),
    [sym_creal] = ACTIONS(4574),
    [sym_size_t] = ACTIONS(4574),
    [sym_ptrdiff_t] = ACTIONS(4574),
    [sym_string] = ACTIONS(4574),
    [sym_cstring] = ACTIONS(4574),
    [sym_dstring] = ACTIONS(4574),
    [sym_wstring] = ACTIONS(4574),
    [sym_noreturn] = ACTIONS(4574),
    [sym_true] = ACTIONS(4574),
    [sym_false] = ACTIONS(4574),
    [sym_null] = ACTIONS(4574),
    [sym_super] = ACTIONS(4574),
    [sym_this] = ACTIONS(4574),
    [sym_abstract] = ACTIONS(4574),
    [sym_alias] = ACTIONS(4574),
    [sym_align] = ACTIONS(4574),
    [sym_asm] = ACTIONS(4574),
    [sym_assert] = ACTIONS(4574),
    [sym_auto] = ACTIONS(4574),
    [sym_break] = ACTIONS(4574),
    [sym_case] = ACTIONS(4574),
    [sym_cast] = ACTIONS(4574),
    [sym_catch] = ACTIONS(4574),
    [sym_class] = ACTIONS(4574),
    [sym_const] = ACTIONS(4574),
    [sym_continue] = ACTIONS(4574),
    [sym_debug] = ACTIONS(4574),
    [sym_default] = ACTIONS(4574),
    [sym_delegate] = ACTIONS(4574),
    [sym_delete] = ACTIONS(4574),
    [sym_deprecated] = ACTIONS(4574),
    [sym_do] = ACTIONS(4574),
    [sym_else] = ACTIONS(4574),
    [sym_enum] = ACTIONS(4574),
    [sym_export] = ACTIONS(4574),
    [sym_extern] = ACTIONS(4574),
    [sym_final] = ACTIONS(4574),
    [sym_finally] = ACTIONS(4574),
    [sym_for] = ACTIONS(4574),
    [sym_foreach] = ACTIONS(4574),
    [sym_foreach_reverse] = ACTIONS(4574),
    [sym_function] = ACTIONS(4574),
    [sym_goto] = ACTIONS(4574),
    [sym_if] = ACTIONS(4574),
    [sym_immutable] = ACTIONS(4574),
    [sym_import] = ACTIONS(4574),
    [sym_in] = ACTIONS(4574),
    [sym_inout] = ACTIONS(4574),
    [sym_interface] = ACTIONS(4574),
    [sym_invariant] = ACTIONS(4574),
    [sym_is] = ACTIONS(4574),
    [sym_mixin] = ACTIONS(4574),
    [sym_new] = ACTIONS(4574),
    [sym_nothrow] = ACTIONS(4574),
    [sym_out] = ACTIONS(4574),
    [sym_override] = ACTIONS(4574),
    [sym_package] = ACTIONS(4574),
    [sym_pragma] = ACTIONS(4574),
    [sym_private] = ACTIONS(4574),
    [sym_protected] = ACTIONS(4574),
    [sym_public] = ACTIONS(4574),
    [sym_pure] = ACTIONS(4574),
    [sym_ref] = ACTIONS(4574),
    [sym_return] = ACTIONS(4574),
    [sym_scope] = ACTIONS(4574),
    [sym_shared] = ACTIONS(4574),
    [sym_static] = ACTIONS(4574),
    [sym_struct] = ACTIONS(4574),
    [sym_switch] = ACTIONS(4574),
    [sym_synchronized] = ACTIONS(4574),
    [sym_template] = ACTIONS(4574),
    [sym_throw] = ACTIONS(4574),
    [sym_try] = ACTIONS(4574),
    [sym_typeid] = ACTIONS(4574),
    [sym_typeof] = ACTIONS(4574),
    [sym_union] = ACTIONS(4574),
    [sym_unittest] = ACTIONS(4574),
    [sym_version] = ACTIONS(4574),
    [sym_while] = ACTIONS(4574),
    [sym_with] = ACTIONS(4574),
    [sym_gshared] = ACTIONS(4574),
    [sym_traits] = ACTIONS(4574),
    [sym_vector] = ACTIONS(4574),
    [sym_void] = ACTIONS(4574),
    [anon_sym_BQUOTE] = ACTIONS(4576),
    [anon_sym_r_DQUOTE] = ACTIONS(4576),
    [anon_sym_x_DQUOTE] = ACTIONS(4576),
    [anon_sym_DQUOTE] = ACTIONS(4576),
    [anon_sym_i_BQUOTE] = ACTIONS(4576),
    [anon_sym_i_DQUOTE] = ACTIONS(4576),
    [anon_sym_iq_LBRACE] = ACTIONS(4576),
    [aux_sym_char_literal_token1] = ACTIONS(4576),
    [anon_sym_SQUOTE] = ACTIONS(4574),
    [anon_sym___DATE__] = ACTIONS(4574),
    [anon_sym___FILE__] = ACTIONS(4574),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4574),
    [anon_sym___FUNCTION__] = ACTIONS(4574),
    [anon_sym___LINE__] = ACTIONS(4574),
    [anon_sym___MODULE__] = ACTIONS(4574),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4574),
    [anon_sym___TIME__] = ACTIONS(4574),
    [anon_sym___TIMESTAMP__] = ACTIONS(4574),
    [anon_sym___VENDOR__] = ACTIONS(4574),
    [anon_sym___VERSION__] = ACTIONS(4574),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4576),
    [sym_float_literal] = ACTIONS(4576),
    [sym__string] = ACTIONS(4576),
  },
  [1424] = {
    [sym_identifier] = ACTIONS(4578),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4580),
    [anon_sym_RBRACE] = ACTIONS(4580),
    [anon_sym_LBRACE] = ACTIONS(4580),
    [anon_sym_DOT] = ACTIONS(4580),
    [anon_sym_AMP] = ACTIONS(4580),
    [anon_sym_DASH] = ACTIONS(4578),
    [anon_sym_DASH_DASH] = ACTIONS(4580),
    [anon_sym_PLUS] = ACTIONS(4578),
    [anon_sym_PLUS_PLUS] = ACTIONS(4580),
    [anon_sym_BANG] = ACTIONS(4580),
    [anon_sym_LPAREN] = ACTIONS(4580),
    [anon_sym_RPAREN] = ACTIONS(4580),
    [anon_sym_LBRACK] = ACTIONS(4580),
    [anon_sym_SEMI] = ACTIONS(4580),
    [anon_sym_DOLLAR] = ACTIONS(4580),
    [anon_sym_STAR] = ACTIONS(4580),
    [anon_sym_TILDE] = ACTIONS(4580),
    [anon_sym_AT] = ACTIONS(4580),
    [sym_bool] = ACTIONS(4578),
    [sym_byte] = ACTIONS(4578),
    [sym_ubyte] = ACTIONS(4578),
    [sym_char] = ACTIONS(4578),
    [sym_short] = ACTIONS(4578),
    [sym_ushort] = ACTIONS(4578),
    [sym_int] = ACTIONS(4578),
    [sym_uint] = ACTIONS(4578),
    [sym_long] = ACTIONS(4578),
    [sym_ulong] = ACTIONS(4578),
    [sym_cent] = ACTIONS(4578),
    [sym_ucent] = ACTIONS(4578),
    [sym_wchar] = ACTIONS(4578),
    [sym_dchar] = ACTIONS(4578),
    [sym_float] = ACTIONS(4578),
    [sym_double] = ACTIONS(4578),
    [sym_real] = ACTIONS(4578),
    [sym_ifloat] = ACTIONS(4578),
    [sym_idouble] = ACTIONS(4578),
    [sym_ireal] = ACTIONS(4578),
    [sym_cfloat] = ACTIONS(4578),
    [sym_cdouble] = ACTIONS(4578),
    [sym_creal] = ACTIONS(4578),
    [sym_size_t] = ACTIONS(4578),
    [sym_ptrdiff_t] = ACTIONS(4578),
    [sym_string] = ACTIONS(4578),
    [sym_cstring] = ACTIONS(4578),
    [sym_dstring] = ACTIONS(4578),
    [sym_wstring] = ACTIONS(4578),
    [sym_noreturn] = ACTIONS(4578),
    [sym_true] = ACTIONS(4578),
    [sym_false] = ACTIONS(4578),
    [sym_null] = ACTIONS(4578),
    [sym_super] = ACTIONS(4578),
    [sym_this] = ACTIONS(4578),
    [sym_abstract] = ACTIONS(4578),
    [sym_alias] = ACTIONS(4578),
    [sym_align] = ACTIONS(4578),
    [sym_asm] = ACTIONS(4578),
    [sym_assert] = ACTIONS(4578),
    [sym_auto] = ACTIONS(4578),
    [sym_break] = ACTIONS(4578),
    [sym_case] = ACTIONS(4578),
    [sym_cast] = ACTIONS(4578),
    [sym_catch] = ACTIONS(4578),
    [sym_class] = ACTIONS(4578),
    [sym_const] = ACTIONS(4578),
    [sym_continue] = ACTIONS(4578),
    [sym_debug] = ACTIONS(4578),
    [sym_default] = ACTIONS(4578),
    [sym_delegate] = ACTIONS(4578),
    [sym_delete] = ACTIONS(4578),
    [sym_deprecated] = ACTIONS(4578),
    [sym_do] = ACTIONS(4578),
    [sym_else] = ACTIONS(4578),
    [sym_enum] = ACTIONS(4578),
    [sym_export] = ACTIONS(4578),
    [sym_extern] = ACTIONS(4578),
    [sym_final] = ACTIONS(4578),
    [sym_finally] = ACTIONS(4578),
    [sym_for] = ACTIONS(4578),
    [sym_foreach] = ACTIONS(4578),
    [sym_foreach_reverse] = ACTIONS(4578),
    [sym_function] = ACTIONS(4578),
    [sym_goto] = ACTIONS(4578),
    [sym_if] = ACTIONS(4578),
    [sym_immutable] = ACTIONS(4578),
    [sym_import] = ACTIONS(4578),
    [sym_in] = ACTIONS(4578),
    [sym_inout] = ACTIONS(4578),
    [sym_interface] = ACTIONS(4578),
    [sym_invariant] = ACTIONS(4578),
    [sym_is] = ACTIONS(4578),
    [sym_mixin] = ACTIONS(4578),
    [sym_new] = ACTIONS(4578),
    [sym_nothrow] = ACTIONS(4578),
    [sym_out] = ACTIONS(4578),
    [sym_override] = ACTIONS(4578),
    [sym_package] = ACTIONS(4578),
    [sym_pragma] = ACTIONS(4578),
    [sym_private] = ACTIONS(4578),
    [sym_protected] = ACTIONS(4578),
    [sym_public] = ACTIONS(4578),
    [sym_pure] = ACTIONS(4578),
    [sym_ref] = ACTIONS(4578),
    [sym_return] = ACTIONS(4578),
    [sym_scope] = ACTIONS(4578),
    [sym_shared] = ACTIONS(4578),
    [sym_static] = ACTIONS(4578),
    [sym_struct] = ACTIONS(4578),
    [sym_switch] = ACTIONS(4578),
    [sym_synchronized] = ACTIONS(4578),
    [sym_template] = ACTIONS(4578),
    [sym_throw] = ACTIONS(4578),
    [sym_try] = ACTIONS(4578),
    [sym_typeid] = ACTIONS(4578),
    [sym_typeof] = ACTIONS(4578),
    [sym_union] = ACTIONS(4578),
    [sym_unittest] = ACTIONS(4578),
    [sym_version] = ACTIONS(4578),
    [sym_while] = ACTIONS(4578),
    [sym_with] = ACTIONS(4578),
    [sym_gshared] = ACTIONS(4578),
    [sym_traits] = ACTIONS(4578),
    [sym_vector] = ACTIONS(4578),
    [sym_void] = ACTIONS(4578),
    [anon_sym_BQUOTE] = ACTIONS(4580),
    [anon_sym_r_DQUOTE] = ACTIONS(4580),
    [anon_sym_x_DQUOTE] = ACTIONS(4580),
    [anon_sym_DQUOTE] = ACTIONS(4580),
    [anon_sym_i_BQUOTE] = ACTIONS(4580),
    [anon_sym_i_DQUOTE] = ACTIONS(4580),
    [anon_sym_iq_LBRACE] = ACTIONS(4580),
    [aux_sym_char_literal_token1] = ACTIONS(4580),
    [anon_sym_SQUOTE] = ACTIONS(4578),
    [anon_sym___DATE__] = ACTIONS(4578),
    [anon_sym___FILE__] = ACTIONS(4578),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4578),
    [anon_sym___FUNCTION__] = ACTIONS(4578),
    [anon_sym___LINE__] = ACTIONS(4578),
    [anon_sym___MODULE__] = ACTIONS(4578),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4578),
    [anon_sym___TIME__] = ACTIONS(4578),
    [anon_sym___TIMESTAMP__] = ACTIONS(4578),
    [anon_sym___VENDOR__] = ACTIONS(4578),
    [anon_sym___VERSION__] = ACTIONS(4578),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4580),
    [sym_float_literal] = ACTIONS(4580),
    [sym__string] = ACTIONS(4580),
  },
  [1425] = {
    [sym_identifier] = ACTIONS(4582),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4584),
    [anon_sym_RBRACE] = ACTIONS(4584),
    [anon_sym_LBRACE] = ACTIONS(4584),
    [anon_sym_DOT] = ACTIONS(4584),
    [anon_sym_AMP] = ACTIONS(4584),
    [anon_sym_DASH] = ACTIONS(4582),
    [anon_sym_DASH_DASH] = ACTIONS(4584),
    [anon_sym_PLUS] = ACTIONS(4582),
    [anon_sym_PLUS_PLUS] = ACTIONS(4584),
    [anon_sym_BANG] = ACTIONS(4584),
    [anon_sym_LPAREN] = ACTIONS(4584),
    [anon_sym_RPAREN] = ACTIONS(4584),
    [anon_sym_LBRACK] = ACTIONS(4584),
    [anon_sym_SEMI] = ACTIONS(4584),
    [anon_sym_DOLLAR] = ACTIONS(4584),
    [anon_sym_STAR] = ACTIONS(4584),
    [anon_sym_TILDE] = ACTIONS(4584),
    [anon_sym_AT] = ACTIONS(4584),
    [sym_bool] = ACTIONS(4582),
    [sym_byte] = ACTIONS(4582),
    [sym_ubyte] = ACTIONS(4582),
    [sym_char] = ACTIONS(4582),
    [sym_short] = ACTIONS(4582),
    [sym_ushort] = ACTIONS(4582),
    [sym_int] = ACTIONS(4582),
    [sym_uint] = ACTIONS(4582),
    [sym_long] = ACTIONS(4582),
    [sym_ulong] = ACTIONS(4582),
    [sym_cent] = ACTIONS(4582),
    [sym_ucent] = ACTIONS(4582),
    [sym_wchar] = ACTIONS(4582),
    [sym_dchar] = ACTIONS(4582),
    [sym_float] = ACTIONS(4582),
    [sym_double] = ACTIONS(4582),
    [sym_real] = ACTIONS(4582),
    [sym_ifloat] = ACTIONS(4582),
    [sym_idouble] = ACTIONS(4582),
    [sym_ireal] = ACTIONS(4582),
    [sym_cfloat] = ACTIONS(4582),
    [sym_cdouble] = ACTIONS(4582),
    [sym_creal] = ACTIONS(4582),
    [sym_size_t] = ACTIONS(4582),
    [sym_ptrdiff_t] = ACTIONS(4582),
    [sym_string] = ACTIONS(4582),
    [sym_cstring] = ACTIONS(4582),
    [sym_dstring] = ACTIONS(4582),
    [sym_wstring] = ACTIONS(4582),
    [sym_noreturn] = ACTIONS(4582),
    [sym_true] = ACTIONS(4582),
    [sym_false] = ACTIONS(4582),
    [sym_null] = ACTIONS(4582),
    [sym_super] = ACTIONS(4582),
    [sym_this] = ACTIONS(4582),
    [sym_abstract] = ACTIONS(4582),
    [sym_alias] = ACTIONS(4582),
    [sym_align] = ACTIONS(4582),
    [sym_asm] = ACTIONS(4582),
    [sym_assert] = ACTIONS(4582),
    [sym_auto] = ACTIONS(4582),
    [sym_break] = ACTIONS(4582),
    [sym_case] = ACTIONS(4582),
    [sym_cast] = ACTIONS(4582),
    [sym_catch] = ACTIONS(4582),
    [sym_class] = ACTIONS(4582),
    [sym_const] = ACTIONS(4582),
    [sym_continue] = ACTIONS(4582),
    [sym_debug] = ACTIONS(4582),
    [sym_default] = ACTIONS(4582),
    [sym_delegate] = ACTIONS(4582),
    [sym_delete] = ACTIONS(4582),
    [sym_deprecated] = ACTIONS(4582),
    [sym_do] = ACTIONS(4582),
    [sym_else] = ACTIONS(4582),
    [sym_enum] = ACTIONS(4582),
    [sym_export] = ACTIONS(4582),
    [sym_extern] = ACTIONS(4582),
    [sym_final] = ACTIONS(4582),
    [sym_finally] = ACTIONS(4582),
    [sym_for] = ACTIONS(4582),
    [sym_foreach] = ACTIONS(4582),
    [sym_foreach_reverse] = ACTIONS(4582),
    [sym_function] = ACTIONS(4582),
    [sym_goto] = ACTIONS(4582),
    [sym_if] = ACTIONS(4582),
    [sym_immutable] = ACTIONS(4582),
    [sym_import] = ACTIONS(4582),
    [sym_in] = ACTIONS(4582),
    [sym_inout] = ACTIONS(4582),
    [sym_interface] = ACTIONS(4582),
    [sym_invariant] = ACTIONS(4582),
    [sym_is] = ACTIONS(4582),
    [sym_mixin] = ACTIONS(4582),
    [sym_new] = ACTIONS(4582),
    [sym_nothrow] = ACTIONS(4582),
    [sym_out] = ACTIONS(4582),
    [sym_override] = ACTIONS(4582),
    [sym_package] = ACTIONS(4582),
    [sym_pragma] = ACTIONS(4582),
    [sym_private] = ACTIONS(4582),
    [sym_protected] = ACTIONS(4582),
    [sym_public] = ACTIONS(4582),
    [sym_pure] = ACTIONS(4582),
    [sym_ref] = ACTIONS(4582),
    [sym_return] = ACTIONS(4582),
    [sym_scope] = ACTIONS(4582),
    [sym_shared] = ACTIONS(4582),
    [sym_static] = ACTIONS(4582),
    [sym_struct] = ACTIONS(4582),
    [sym_switch] = ACTIONS(4582),
    [sym_synchronized] = ACTIONS(4582),
    [sym_template] = ACTIONS(4582),
    [sym_throw] = ACTIONS(4582),
    [sym_try] = ACTIONS(4582),
    [sym_typeid] = ACTIONS(4582),
    [sym_typeof] = ACTIONS(4582),
    [sym_union] = ACTIONS(4582),
    [sym_unittest] = ACTIONS(4582),
    [sym_version] = ACTIONS(4582),
    [sym_while] = ACTIONS(4582),
    [sym_with] = ACTIONS(4582),
    [sym_gshared] = ACTIONS(4582),
    [sym_traits] = ACTIONS(4582),
    [sym_vector] = ACTIONS(4582),
    [sym_void] = ACTIONS(4582),
    [anon_sym_BQUOTE] = ACTIONS(4584),
    [anon_sym_r_DQUOTE] = ACTIONS(4584),
    [anon_sym_x_DQUOTE] = ACTIONS(4584),
    [anon_sym_DQUOTE] = ACTIONS(4584),
    [anon_sym_i_BQUOTE] = ACTIONS(4584),
    [anon_sym_i_DQUOTE] = ACTIONS(4584),
    [anon_sym_iq_LBRACE] = ACTIONS(4584),
    [aux_sym_char_literal_token1] = ACTIONS(4584),
    [anon_sym_SQUOTE] = ACTIONS(4582),
    [anon_sym___DATE__] = ACTIONS(4582),
    [anon_sym___FILE__] = ACTIONS(4582),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4582),
    [anon_sym___FUNCTION__] = ACTIONS(4582),
    [anon_sym___LINE__] = ACTIONS(4582),
    [anon_sym___MODULE__] = ACTIONS(4582),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4582),
    [anon_sym___TIME__] = ACTIONS(4582),
    [anon_sym___TIMESTAMP__] = ACTIONS(4582),
    [anon_sym___VENDOR__] = ACTIONS(4582),
    [anon_sym___VERSION__] = ACTIONS(4582),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4584),
    [sym_float_literal] = ACTIONS(4584),
    [sym__string] = ACTIONS(4584),
  },
  [1426] = {
    [sym_identifier] = ACTIONS(4586),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4588),
    [anon_sym_RBRACE] = ACTIONS(4588),
    [anon_sym_LBRACE] = ACTIONS(4588),
    [anon_sym_DOT] = ACTIONS(4588),
    [anon_sym_AMP] = ACTIONS(4588),
    [anon_sym_DASH] = ACTIONS(4586),
    [anon_sym_DASH_DASH] = ACTIONS(4588),
    [anon_sym_PLUS] = ACTIONS(4586),
    [anon_sym_PLUS_PLUS] = ACTIONS(4588),
    [anon_sym_BANG] = ACTIONS(4588),
    [anon_sym_LPAREN] = ACTIONS(4588),
    [anon_sym_RPAREN] = ACTIONS(4588),
    [anon_sym_LBRACK] = ACTIONS(4588),
    [anon_sym_SEMI] = ACTIONS(4588),
    [anon_sym_DOLLAR] = ACTIONS(4588),
    [anon_sym_STAR] = ACTIONS(4588),
    [anon_sym_TILDE] = ACTIONS(4588),
    [anon_sym_AT] = ACTIONS(4588),
    [sym_bool] = ACTIONS(4586),
    [sym_byte] = ACTIONS(4586),
    [sym_ubyte] = ACTIONS(4586),
    [sym_char] = ACTIONS(4586),
    [sym_short] = ACTIONS(4586),
    [sym_ushort] = ACTIONS(4586),
    [sym_int] = ACTIONS(4586),
    [sym_uint] = ACTIONS(4586),
    [sym_long] = ACTIONS(4586),
    [sym_ulong] = ACTIONS(4586),
    [sym_cent] = ACTIONS(4586),
    [sym_ucent] = ACTIONS(4586),
    [sym_wchar] = ACTIONS(4586),
    [sym_dchar] = ACTIONS(4586),
    [sym_float] = ACTIONS(4586),
    [sym_double] = ACTIONS(4586),
    [sym_real] = ACTIONS(4586),
    [sym_ifloat] = ACTIONS(4586),
    [sym_idouble] = ACTIONS(4586),
    [sym_ireal] = ACTIONS(4586),
    [sym_cfloat] = ACTIONS(4586),
    [sym_cdouble] = ACTIONS(4586),
    [sym_creal] = ACTIONS(4586),
    [sym_size_t] = ACTIONS(4586),
    [sym_ptrdiff_t] = ACTIONS(4586),
    [sym_string] = ACTIONS(4586),
    [sym_cstring] = ACTIONS(4586),
    [sym_dstring] = ACTIONS(4586),
    [sym_wstring] = ACTIONS(4586),
    [sym_noreturn] = ACTIONS(4586),
    [sym_true] = ACTIONS(4586),
    [sym_false] = ACTIONS(4586),
    [sym_null] = ACTIONS(4586),
    [sym_super] = ACTIONS(4586),
    [sym_this] = ACTIONS(4586),
    [sym_abstract] = ACTIONS(4586),
    [sym_alias] = ACTIONS(4586),
    [sym_align] = ACTIONS(4586),
    [sym_asm] = ACTIONS(4586),
    [sym_assert] = ACTIONS(4586),
    [sym_auto] = ACTIONS(4586),
    [sym_break] = ACTIONS(4586),
    [sym_case] = ACTIONS(4586),
    [sym_cast] = ACTIONS(4586),
    [sym_catch] = ACTIONS(4586),
    [sym_class] = ACTIONS(4586),
    [sym_const] = ACTIONS(4586),
    [sym_continue] = ACTIONS(4586),
    [sym_debug] = ACTIONS(4586),
    [sym_default] = ACTIONS(4586),
    [sym_delegate] = ACTIONS(4586),
    [sym_delete] = ACTIONS(4586),
    [sym_deprecated] = ACTIONS(4586),
    [sym_do] = ACTIONS(4586),
    [sym_else] = ACTIONS(4586),
    [sym_enum] = ACTIONS(4586),
    [sym_export] = ACTIONS(4586),
    [sym_extern] = ACTIONS(4586),
    [sym_final] = ACTIONS(4586),
    [sym_finally] = ACTIONS(4586),
    [sym_for] = ACTIONS(4586),
    [sym_foreach] = ACTIONS(4586),
    [sym_foreach_reverse] = ACTIONS(4586),
    [sym_function] = ACTIONS(4586),
    [sym_goto] = ACTIONS(4586),
    [sym_if] = ACTIONS(4586),
    [sym_immutable] = ACTIONS(4586),
    [sym_import] = ACTIONS(4586),
    [sym_in] = ACTIONS(4586),
    [sym_inout] = ACTIONS(4586),
    [sym_interface] = ACTIONS(4586),
    [sym_invariant] = ACTIONS(4586),
    [sym_is] = ACTIONS(4586),
    [sym_mixin] = ACTIONS(4586),
    [sym_new] = ACTIONS(4586),
    [sym_nothrow] = ACTIONS(4586),
    [sym_out] = ACTIONS(4586),
    [sym_override] = ACTIONS(4586),
    [sym_package] = ACTIONS(4586),
    [sym_pragma] = ACTIONS(4586),
    [sym_private] = ACTIONS(4586),
    [sym_protected] = ACTIONS(4586),
    [sym_public] = ACTIONS(4586),
    [sym_pure] = ACTIONS(4586),
    [sym_ref] = ACTIONS(4586),
    [sym_return] = ACTIONS(4586),
    [sym_scope] = ACTIONS(4586),
    [sym_shared] = ACTIONS(4586),
    [sym_static] = ACTIONS(4586),
    [sym_struct] = ACTIONS(4586),
    [sym_switch] = ACTIONS(4586),
    [sym_synchronized] = ACTIONS(4586),
    [sym_template] = ACTIONS(4586),
    [sym_throw] = ACTIONS(4586),
    [sym_try] = ACTIONS(4586),
    [sym_typeid] = ACTIONS(4586),
    [sym_typeof] = ACTIONS(4586),
    [sym_union] = ACTIONS(4586),
    [sym_unittest] = ACTIONS(4586),
    [sym_version] = ACTIONS(4586),
    [sym_while] = ACTIONS(4586),
    [sym_with] = ACTIONS(4586),
    [sym_gshared] = ACTIONS(4586),
    [sym_traits] = ACTIONS(4586),
    [sym_vector] = ACTIONS(4586),
    [sym_void] = ACTIONS(4586),
    [anon_sym_BQUOTE] = ACTIONS(4588),
    [anon_sym_r_DQUOTE] = ACTIONS(4588),
    [anon_sym_x_DQUOTE] = ACTIONS(4588),
    [anon_sym_DQUOTE] = ACTIONS(4588),
    [anon_sym_i_BQUOTE] = ACTIONS(4588),
    [anon_sym_i_DQUOTE] = ACTIONS(4588),
    [anon_sym_iq_LBRACE] = ACTIONS(4588),
    [aux_sym_char_literal_token1] = ACTIONS(4588),
    [anon_sym_SQUOTE] = ACTIONS(4586),
    [anon_sym___DATE__] = ACTIONS(4586),
    [anon_sym___FILE__] = ACTIONS(4586),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4586),
    [anon_sym___FUNCTION__] = ACTIONS(4586),
    [anon_sym___LINE__] = ACTIONS(4586),
    [anon_sym___MODULE__] = ACTIONS(4586),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4586),
    [anon_sym___TIME__] = ACTIONS(4586),
    [anon_sym___TIMESTAMP__] = ACTIONS(4586),
    [anon_sym___VENDOR__] = ACTIONS(4586),
    [anon_sym___VERSION__] = ACTIONS(4586),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4588),
    [sym_float_literal] = ACTIONS(4588),
    [sym__string] = ACTIONS(4588),
  },
  [1427] = {
    [sym_identifier] = ACTIONS(4590),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4592),
    [anon_sym_RBRACE] = ACTIONS(4592),
    [anon_sym_LBRACE] = ACTIONS(4592),
    [anon_sym_DOT] = ACTIONS(4592),
    [anon_sym_AMP] = ACTIONS(4592),
    [anon_sym_DASH] = ACTIONS(4590),
    [anon_sym_DASH_DASH] = ACTIONS(4592),
    [anon_sym_PLUS] = ACTIONS(4590),
    [anon_sym_PLUS_PLUS] = ACTIONS(4592),
    [anon_sym_BANG] = ACTIONS(4592),
    [anon_sym_LPAREN] = ACTIONS(4592),
    [anon_sym_RPAREN] = ACTIONS(4592),
    [anon_sym_LBRACK] = ACTIONS(4592),
    [anon_sym_SEMI] = ACTIONS(4592),
    [anon_sym_DOLLAR] = ACTIONS(4592),
    [anon_sym_STAR] = ACTIONS(4592),
    [anon_sym_TILDE] = ACTIONS(4592),
    [anon_sym_AT] = ACTIONS(4592),
    [sym_bool] = ACTIONS(4590),
    [sym_byte] = ACTIONS(4590),
    [sym_ubyte] = ACTIONS(4590),
    [sym_char] = ACTIONS(4590),
    [sym_short] = ACTIONS(4590),
    [sym_ushort] = ACTIONS(4590),
    [sym_int] = ACTIONS(4590),
    [sym_uint] = ACTIONS(4590),
    [sym_long] = ACTIONS(4590),
    [sym_ulong] = ACTIONS(4590),
    [sym_cent] = ACTIONS(4590),
    [sym_ucent] = ACTIONS(4590),
    [sym_wchar] = ACTIONS(4590),
    [sym_dchar] = ACTIONS(4590),
    [sym_float] = ACTIONS(4590),
    [sym_double] = ACTIONS(4590),
    [sym_real] = ACTIONS(4590),
    [sym_ifloat] = ACTIONS(4590),
    [sym_idouble] = ACTIONS(4590),
    [sym_ireal] = ACTIONS(4590),
    [sym_cfloat] = ACTIONS(4590),
    [sym_cdouble] = ACTIONS(4590),
    [sym_creal] = ACTIONS(4590),
    [sym_size_t] = ACTIONS(4590),
    [sym_ptrdiff_t] = ACTIONS(4590),
    [sym_string] = ACTIONS(4590),
    [sym_cstring] = ACTIONS(4590),
    [sym_dstring] = ACTIONS(4590),
    [sym_wstring] = ACTIONS(4590),
    [sym_noreturn] = ACTIONS(4590),
    [sym_true] = ACTIONS(4590),
    [sym_false] = ACTIONS(4590),
    [sym_null] = ACTIONS(4590),
    [sym_super] = ACTIONS(4590),
    [sym_this] = ACTIONS(4590),
    [sym_abstract] = ACTIONS(4590),
    [sym_alias] = ACTIONS(4590),
    [sym_align] = ACTIONS(4590),
    [sym_asm] = ACTIONS(4590),
    [sym_assert] = ACTIONS(4590),
    [sym_auto] = ACTIONS(4590),
    [sym_break] = ACTIONS(4590),
    [sym_case] = ACTIONS(4590),
    [sym_cast] = ACTIONS(4590),
    [sym_catch] = ACTIONS(4590),
    [sym_class] = ACTIONS(4590),
    [sym_const] = ACTIONS(4590),
    [sym_continue] = ACTIONS(4590),
    [sym_debug] = ACTIONS(4590),
    [sym_default] = ACTIONS(4590),
    [sym_delegate] = ACTIONS(4590),
    [sym_delete] = ACTIONS(4590),
    [sym_deprecated] = ACTIONS(4590),
    [sym_do] = ACTIONS(4590),
    [sym_else] = ACTIONS(4590),
    [sym_enum] = ACTIONS(4590),
    [sym_export] = ACTIONS(4590),
    [sym_extern] = ACTIONS(4590),
    [sym_final] = ACTIONS(4590),
    [sym_finally] = ACTIONS(4590),
    [sym_for] = ACTIONS(4590),
    [sym_foreach] = ACTIONS(4590),
    [sym_foreach_reverse] = ACTIONS(4590),
    [sym_function] = ACTIONS(4590),
    [sym_goto] = ACTIONS(4590),
    [sym_if] = ACTIONS(4590),
    [sym_immutable] = ACTIONS(4590),
    [sym_import] = ACTIONS(4590),
    [sym_in] = ACTIONS(4590),
    [sym_inout] = ACTIONS(4590),
    [sym_interface] = ACTIONS(4590),
    [sym_invariant] = ACTIONS(4590),
    [sym_is] = ACTIONS(4590),
    [sym_mixin] = ACTIONS(4590),
    [sym_new] = ACTIONS(4590),
    [sym_nothrow] = ACTIONS(4590),
    [sym_out] = ACTIONS(4590),
    [sym_override] = ACTIONS(4590),
    [sym_package] = ACTIONS(4590),
    [sym_pragma] = ACTIONS(4590),
    [sym_private] = ACTIONS(4590),
    [sym_protected] = ACTIONS(4590),
    [sym_public] = ACTIONS(4590),
    [sym_pure] = ACTIONS(4590),
    [sym_ref] = ACTIONS(4590),
    [sym_return] = ACTIONS(4590),
    [sym_scope] = ACTIONS(4590),
    [sym_shared] = ACTIONS(4590),
    [sym_static] = ACTIONS(4590),
    [sym_struct] = ACTIONS(4590),
    [sym_switch] = ACTIONS(4590),
    [sym_synchronized] = ACTIONS(4590),
    [sym_template] = ACTIONS(4590),
    [sym_throw] = ACTIONS(4590),
    [sym_try] = ACTIONS(4590),
    [sym_typeid] = ACTIONS(4590),
    [sym_typeof] = ACTIONS(4590),
    [sym_union] = ACTIONS(4590),
    [sym_unittest] = ACTIONS(4590),
    [sym_version] = ACTIONS(4590),
    [sym_while] = ACTIONS(4590),
    [sym_with] = ACTIONS(4590),
    [sym_gshared] = ACTIONS(4590),
    [sym_traits] = ACTIONS(4590),
    [sym_vector] = ACTIONS(4590),
    [sym_void] = ACTIONS(4590),
    [anon_sym_BQUOTE] = ACTIONS(4592),
    [anon_sym_r_DQUOTE] = ACTIONS(4592),
    [anon_sym_x_DQUOTE] = ACTIONS(4592),
    [anon_sym_DQUOTE] = ACTIONS(4592),
    [anon_sym_i_BQUOTE] = ACTIONS(4592),
    [anon_sym_i_DQUOTE] = ACTIONS(4592),
    [anon_sym_iq_LBRACE] = ACTIONS(4592),
    [aux_sym_char_literal_token1] = ACTIONS(4592),
    [anon_sym_SQUOTE] = ACTIONS(4590),
    [anon_sym___DATE__] = ACTIONS(4590),
    [anon_sym___FILE__] = ACTIONS(4590),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4590),
    [anon_sym___FUNCTION__] = ACTIONS(4590),
    [anon_sym___LINE__] = ACTIONS(4590),
    [anon_sym___MODULE__] = ACTIONS(4590),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4590),
    [anon_sym___TIME__] = ACTIONS(4590),
    [anon_sym___TIMESTAMP__] = ACTIONS(4590),
    [anon_sym___VENDOR__] = ACTIONS(4590),
    [anon_sym___VERSION__] = ACTIONS(4590),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4592),
    [sym_float_literal] = ACTIONS(4592),
    [sym__string] = ACTIONS(4592),
  },
  [1428] = {
    [sym_identifier] = ACTIONS(4594),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4596),
    [anon_sym_RBRACE] = ACTIONS(4596),
    [anon_sym_LBRACE] = ACTIONS(4596),
    [anon_sym_DOT] = ACTIONS(4596),
    [anon_sym_AMP] = ACTIONS(4596),
    [anon_sym_DASH] = ACTIONS(4594),
    [anon_sym_DASH_DASH] = ACTIONS(4596),
    [anon_sym_PLUS] = ACTIONS(4594),
    [anon_sym_PLUS_PLUS] = ACTIONS(4596),
    [anon_sym_BANG] = ACTIONS(4596),
    [anon_sym_LPAREN] = ACTIONS(4596),
    [anon_sym_RPAREN] = ACTIONS(4596),
    [anon_sym_LBRACK] = ACTIONS(4596),
    [anon_sym_SEMI] = ACTIONS(4596),
    [anon_sym_DOLLAR] = ACTIONS(4596),
    [anon_sym_STAR] = ACTIONS(4596),
    [anon_sym_TILDE] = ACTIONS(4596),
    [anon_sym_AT] = ACTIONS(4596),
    [sym_bool] = ACTIONS(4594),
    [sym_byte] = ACTIONS(4594),
    [sym_ubyte] = ACTIONS(4594),
    [sym_char] = ACTIONS(4594),
    [sym_short] = ACTIONS(4594),
    [sym_ushort] = ACTIONS(4594),
    [sym_int] = ACTIONS(4594),
    [sym_uint] = ACTIONS(4594),
    [sym_long] = ACTIONS(4594),
    [sym_ulong] = ACTIONS(4594),
    [sym_cent] = ACTIONS(4594),
    [sym_ucent] = ACTIONS(4594),
    [sym_wchar] = ACTIONS(4594),
    [sym_dchar] = ACTIONS(4594),
    [sym_float] = ACTIONS(4594),
    [sym_double] = ACTIONS(4594),
    [sym_real] = ACTIONS(4594),
    [sym_ifloat] = ACTIONS(4594),
    [sym_idouble] = ACTIONS(4594),
    [sym_ireal] = ACTIONS(4594),
    [sym_cfloat] = ACTIONS(4594),
    [sym_cdouble] = ACTIONS(4594),
    [sym_creal] = ACTIONS(4594),
    [sym_size_t] = ACTIONS(4594),
    [sym_ptrdiff_t] = ACTIONS(4594),
    [sym_string] = ACTIONS(4594),
    [sym_cstring] = ACTIONS(4594),
    [sym_dstring] = ACTIONS(4594),
    [sym_wstring] = ACTIONS(4594),
    [sym_noreturn] = ACTIONS(4594),
    [sym_true] = ACTIONS(4594),
    [sym_false] = ACTIONS(4594),
    [sym_null] = ACTIONS(4594),
    [sym_super] = ACTIONS(4594),
    [sym_this] = ACTIONS(4594),
    [sym_abstract] = ACTIONS(4594),
    [sym_alias] = ACTIONS(4594),
    [sym_align] = ACTIONS(4594),
    [sym_asm] = ACTIONS(4594),
    [sym_assert] = ACTIONS(4594),
    [sym_auto] = ACTIONS(4594),
    [sym_break] = ACTIONS(4594),
    [sym_case] = ACTIONS(4594),
    [sym_cast] = ACTIONS(4594),
    [sym_catch] = ACTIONS(4594),
    [sym_class] = ACTIONS(4594),
    [sym_const] = ACTIONS(4594),
    [sym_continue] = ACTIONS(4594),
    [sym_debug] = ACTIONS(4594),
    [sym_default] = ACTIONS(4594),
    [sym_delegate] = ACTIONS(4594),
    [sym_delete] = ACTIONS(4594),
    [sym_deprecated] = ACTIONS(4594),
    [sym_do] = ACTIONS(4594),
    [sym_else] = ACTIONS(4594),
    [sym_enum] = ACTIONS(4594),
    [sym_export] = ACTIONS(4594),
    [sym_extern] = ACTIONS(4594),
    [sym_final] = ACTIONS(4594),
    [sym_finally] = ACTIONS(4594),
    [sym_for] = ACTIONS(4594),
    [sym_foreach] = ACTIONS(4594),
    [sym_foreach_reverse] = ACTIONS(4594),
    [sym_function] = ACTIONS(4594),
    [sym_goto] = ACTIONS(4594),
    [sym_if] = ACTIONS(4594),
    [sym_immutable] = ACTIONS(4594),
    [sym_import] = ACTIONS(4594),
    [sym_in] = ACTIONS(4594),
    [sym_inout] = ACTIONS(4594),
    [sym_interface] = ACTIONS(4594),
    [sym_invariant] = ACTIONS(4594),
    [sym_is] = ACTIONS(4594),
    [sym_mixin] = ACTIONS(4594),
    [sym_new] = ACTIONS(4594),
    [sym_nothrow] = ACTIONS(4594),
    [sym_out] = ACTIONS(4594),
    [sym_override] = ACTIONS(4594),
    [sym_package] = ACTIONS(4594),
    [sym_pragma] = ACTIONS(4594),
    [sym_private] = ACTIONS(4594),
    [sym_protected] = ACTIONS(4594),
    [sym_public] = ACTIONS(4594),
    [sym_pure] = ACTIONS(4594),
    [sym_ref] = ACTIONS(4594),
    [sym_return] = ACTIONS(4594),
    [sym_scope] = ACTIONS(4594),
    [sym_shared] = ACTIONS(4594),
    [sym_static] = ACTIONS(4594),
    [sym_struct] = ACTIONS(4594),
    [sym_switch] = ACTIONS(4594),
    [sym_synchronized] = ACTIONS(4594),
    [sym_template] = ACTIONS(4594),
    [sym_throw] = ACTIONS(4594),
    [sym_try] = ACTIONS(4594),
    [sym_typeid] = ACTIONS(4594),
    [sym_typeof] = ACTIONS(4594),
    [sym_union] = ACTIONS(4594),
    [sym_unittest] = ACTIONS(4594),
    [sym_version] = ACTIONS(4594),
    [sym_while] = ACTIONS(4594),
    [sym_with] = ACTIONS(4594),
    [sym_gshared] = ACTIONS(4594),
    [sym_traits] = ACTIONS(4594),
    [sym_vector] = ACTIONS(4594),
    [sym_void] = ACTIONS(4594),
    [anon_sym_BQUOTE] = ACTIONS(4596),
    [anon_sym_r_DQUOTE] = ACTIONS(4596),
    [anon_sym_x_DQUOTE] = ACTIONS(4596),
    [anon_sym_DQUOTE] = ACTIONS(4596),
    [anon_sym_i_BQUOTE] = ACTIONS(4596),
    [anon_sym_i_DQUOTE] = ACTIONS(4596),
    [anon_sym_iq_LBRACE] = ACTIONS(4596),
    [aux_sym_char_literal_token1] = ACTIONS(4596),
    [anon_sym_SQUOTE] = ACTIONS(4594),
    [anon_sym___DATE__] = ACTIONS(4594),
    [anon_sym___FILE__] = ACTIONS(4594),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4594),
    [anon_sym___FUNCTION__] = ACTIONS(4594),
    [anon_sym___LINE__] = ACTIONS(4594),
    [anon_sym___MODULE__] = ACTIONS(4594),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4594),
    [anon_sym___TIME__] = ACTIONS(4594),
    [anon_sym___TIMESTAMP__] = ACTIONS(4594),
    [anon_sym___VENDOR__] = ACTIONS(4594),
    [anon_sym___VERSION__] = ACTIONS(4594),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4596),
    [sym_float_literal] = ACTIONS(4596),
    [sym__string] = ACTIONS(4596),
  },
  [1429] = {
    [sym_identifier] = ACTIONS(4598),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4600),
    [anon_sym_RBRACE] = ACTIONS(4600),
    [anon_sym_LBRACE] = ACTIONS(4600),
    [anon_sym_DOT] = ACTIONS(4600),
    [anon_sym_AMP] = ACTIONS(4600),
    [anon_sym_DASH] = ACTIONS(4598),
    [anon_sym_DASH_DASH] = ACTIONS(4600),
    [anon_sym_PLUS] = ACTIONS(4598),
    [anon_sym_PLUS_PLUS] = ACTIONS(4600),
    [anon_sym_BANG] = ACTIONS(4600),
    [anon_sym_LPAREN] = ACTIONS(4600),
    [anon_sym_RPAREN] = ACTIONS(4600),
    [anon_sym_LBRACK] = ACTIONS(4600),
    [anon_sym_SEMI] = ACTIONS(4600),
    [anon_sym_DOLLAR] = ACTIONS(4600),
    [anon_sym_STAR] = ACTIONS(4600),
    [anon_sym_TILDE] = ACTIONS(4600),
    [anon_sym_AT] = ACTIONS(4600),
    [sym_bool] = ACTIONS(4598),
    [sym_byte] = ACTIONS(4598),
    [sym_ubyte] = ACTIONS(4598),
    [sym_char] = ACTIONS(4598),
    [sym_short] = ACTIONS(4598),
    [sym_ushort] = ACTIONS(4598),
    [sym_int] = ACTIONS(4598),
    [sym_uint] = ACTIONS(4598),
    [sym_long] = ACTIONS(4598),
    [sym_ulong] = ACTIONS(4598),
    [sym_cent] = ACTIONS(4598),
    [sym_ucent] = ACTIONS(4598),
    [sym_wchar] = ACTIONS(4598),
    [sym_dchar] = ACTIONS(4598),
    [sym_float] = ACTIONS(4598),
    [sym_double] = ACTIONS(4598),
    [sym_real] = ACTIONS(4598),
    [sym_ifloat] = ACTIONS(4598),
    [sym_idouble] = ACTIONS(4598),
    [sym_ireal] = ACTIONS(4598),
    [sym_cfloat] = ACTIONS(4598),
    [sym_cdouble] = ACTIONS(4598),
    [sym_creal] = ACTIONS(4598),
    [sym_size_t] = ACTIONS(4598),
    [sym_ptrdiff_t] = ACTIONS(4598),
    [sym_string] = ACTIONS(4598),
    [sym_cstring] = ACTIONS(4598),
    [sym_dstring] = ACTIONS(4598),
    [sym_wstring] = ACTIONS(4598),
    [sym_noreturn] = ACTIONS(4598),
    [sym_true] = ACTIONS(4598),
    [sym_false] = ACTIONS(4598),
    [sym_null] = ACTIONS(4598),
    [sym_super] = ACTIONS(4598),
    [sym_this] = ACTIONS(4598),
    [sym_abstract] = ACTIONS(4598),
    [sym_alias] = ACTIONS(4598),
    [sym_align] = ACTIONS(4598),
    [sym_asm] = ACTIONS(4598),
    [sym_assert] = ACTIONS(4598),
    [sym_auto] = ACTIONS(4598),
    [sym_break] = ACTIONS(4598),
    [sym_case] = ACTIONS(4598),
    [sym_cast] = ACTIONS(4598),
    [sym_catch] = ACTIONS(4598),
    [sym_class] = ACTIONS(4598),
    [sym_const] = ACTIONS(4598),
    [sym_continue] = ACTIONS(4598),
    [sym_debug] = ACTIONS(4598),
    [sym_default] = ACTIONS(4598),
    [sym_delegate] = ACTIONS(4598),
    [sym_delete] = ACTIONS(4598),
    [sym_deprecated] = ACTIONS(4598),
    [sym_do] = ACTIONS(4598),
    [sym_else] = ACTIONS(4598),
    [sym_enum] = ACTIONS(4598),
    [sym_export] = ACTIONS(4598),
    [sym_extern] = ACTIONS(4598),
    [sym_final] = ACTIONS(4598),
    [sym_finally] = ACTIONS(4598),
    [sym_for] = ACTIONS(4598),
    [sym_foreach] = ACTIONS(4598),
    [sym_foreach_reverse] = ACTIONS(4598),
    [sym_function] = ACTIONS(4598),
    [sym_goto] = ACTIONS(4598),
    [sym_if] = ACTIONS(4598),
    [sym_immutable] = ACTIONS(4598),
    [sym_import] = ACTIONS(4598),
    [sym_in] = ACTIONS(4598),
    [sym_inout] = ACTIONS(4598),
    [sym_interface] = ACTIONS(4598),
    [sym_invariant] = ACTIONS(4598),
    [sym_is] = ACTIONS(4598),
    [sym_mixin] = ACTIONS(4598),
    [sym_new] = ACTIONS(4598),
    [sym_nothrow] = ACTIONS(4598),
    [sym_out] = ACTIONS(4598),
    [sym_override] = ACTIONS(4598),
    [sym_package] = ACTIONS(4598),
    [sym_pragma] = ACTIONS(4598),
    [sym_private] = ACTIONS(4598),
    [sym_protected] = ACTIONS(4598),
    [sym_public] = ACTIONS(4598),
    [sym_pure] = ACTIONS(4598),
    [sym_ref] = ACTIONS(4598),
    [sym_return] = ACTIONS(4598),
    [sym_scope] = ACTIONS(4598),
    [sym_shared] = ACTIONS(4598),
    [sym_static] = ACTIONS(4598),
    [sym_struct] = ACTIONS(4598),
    [sym_switch] = ACTIONS(4598),
    [sym_synchronized] = ACTIONS(4598),
    [sym_template] = ACTIONS(4598),
    [sym_throw] = ACTIONS(4598),
    [sym_try] = ACTIONS(4598),
    [sym_typeid] = ACTIONS(4598),
    [sym_typeof] = ACTIONS(4598),
    [sym_union] = ACTIONS(4598),
    [sym_unittest] = ACTIONS(4598),
    [sym_version] = ACTIONS(4598),
    [sym_while] = ACTIONS(4598),
    [sym_with] = ACTIONS(4598),
    [sym_gshared] = ACTIONS(4598),
    [sym_traits] = ACTIONS(4598),
    [sym_vector] = ACTIONS(4598),
    [sym_void] = ACTIONS(4598),
    [anon_sym_BQUOTE] = ACTIONS(4600),
    [anon_sym_r_DQUOTE] = ACTIONS(4600),
    [anon_sym_x_DQUOTE] = ACTIONS(4600),
    [anon_sym_DQUOTE] = ACTIONS(4600),
    [anon_sym_i_BQUOTE] = ACTIONS(4600),
    [anon_sym_i_DQUOTE] = ACTIONS(4600),
    [anon_sym_iq_LBRACE] = ACTIONS(4600),
    [aux_sym_char_literal_token1] = ACTIONS(4600),
    [anon_sym_SQUOTE] = ACTIONS(4598),
    [anon_sym___DATE__] = ACTIONS(4598),
    [anon_sym___FILE__] = ACTIONS(4598),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4598),
    [anon_sym___FUNCTION__] = ACTIONS(4598),
    [anon_sym___LINE__] = ACTIONS(4598),
    [anon_sym___MODULE__] = ACTIONS(4598),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4598),
    [anon_sym___TIME__] = ACTIONS(4598),
    [anon_sym___TIMESTAMP__] = ACTIONS(4598),
    [anon_sym___VENDOR__] = ACTIONS(4598),
    [anon_sym___VERSION__] = ACTIONS(4598),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4600),
    [sym_float_literal] = ACTIONS(4600),
    [sym__string] = ACTIONS(4600),
  },
  [1430] = {
    [sym_identifier] = ACTIONS(4602),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4604),
    [anon_sym_RBRACE] = ACTIONS(4604),
    [anon_sym_LBRACE] = ACTIONS(4604),
    [anon_sym_DOT] = ACTIONS(4604),
    [anon_sym_AMP] = ACTIONS(4604),
    [anon_sym_DASH] = ACTIONS(4602),
    [anon_sym_DASH_DASH] = ACTIONS(4604),
    [anon_sym_PLUS] = ACTIONS(4602),
    [anon_sym_PLUS_PLUS] = ACTIONS(4604),
    [anon_sym_BANG] = ACTIONS(4604),
    [anon_sym_LPAREN] = ACTIONS(4604),
    [anon_sym_RPAREN] = ACTIONS(4604),
    [anon_sym_LBRACK] = ACTIONS(4604),
    [anon_sym_SEMI] = ACTIONS(4604),
    [anon_sym_DOLLAR] = ACTIONS(4604),
    [anon_sym_STAR] = ACTIONS(4604),
    [anon_sym_TILDE] = ACTIONS(4604),
    [anon_sym_AT] = ACTIONS(4604),
    [sym_bool] = ACTIONS(4602),
    [sym_byte] = ACTIONS(4602),
    [sym_ubyte] = ACTIONS(4602),
    [sym_char] = ACTIONS(4602),
    [sym_short] = ACTIONS(4602),
    [sym_ushort] = ACTIONS(4602),
    [sym_int] = ACTIONS(4602),
    [sym_uint] = ACTIONS(4602),
    [sym_long] = ACTIONS(4602),
    [sym_ulong] = ACTIONS(4602),
    [sym_cent] = ACTIONS(4602),
    [sym_ucent] = ACTIONS(4602),
    [sym_wchar] = ACTIONS(4602),
    [sym_dchar] = ACTIONS(4602),
    [sym_float] = ACTIONS(4602),
    [sym_double] = ACTIONS(4602),
    [sym_real] = ACTIONS(4602),
    [sym_ifloat] = ACTIONS(4602),
    [sym_idouble] = ACTIONS(4602),
    [sym_ireal] = ACTIONS(4602),
    [sym_cfloat] = ACTIONS(4602),
    [sym_cdouble] = ACTIONS(4602),
    [sym_creal] = ACTIONS(4602),
    [sym_size_t] = ACTIONS(4602),
    [sym_ptrdiff_t] = ACTIONS(4602),
    [sym_string] = ACTIONS(4602),
    [sym_cstring] = ACTIONS(4602),
    [sym_dstring] = ACTIONS(4602),
    [sym_wstring] = ACTIONS(4602),
    [sym_noreturn] = ACTIONS(4602),
    [sym_true] = ACTIONS(4602),
    [sym_false] = ACTIONS(4602),
    [sym_null] = ACTIONS(4602),
    [sym_super] = ACTIONS(4602),
    [sym_this] = ACTIONS(4602),
    [sym_abstract] = ACTIONS(4602),
    [sym_alias] = ACTIONS(4602),
    [sym_align] = ACTIONS(4602),
    [sym_asm] = ACTIONS(4602),
    [sym_assert] = ACTIONS(4602),
    [sym_auto] = ACTIONS(4602),
    [sym_break] = ACTIONS(4602),
    [sym_case] = ACTIONS(4602),
    [sym_cast] = ACTIONS(4602),
    [sym_catch] = ACTIONS(4602),
    [sym_class] = ACTIONS(4602),
    [sym_const] = ACTIONS(4602),
    [sym_continue] = ACTIONS(4602),
    [sym_debug] = ACTIONS(4602),
    [sym_default] = ACTIONS(4602),
    [sym_delegate] = ACTIONS(4602),
    [sym_delete] = ACTIONS(4602),
    [sym_deprecated] = ACTIONS(4602),
    [sym_do] = ACTIONS(4602),
    [sym_else] = ACTIONS(4602),
    [sym_enum] = ACTIONS(4602),
    [sym_export] = ACTIONS(4602),
    [sym_extern] = ACTIONS(4602),
    [sym_final] = ACTIONS(4602),
    [sym_finally] = ACTIONS(4602),
    [sym_for] = ACTIONS(4602),
    [sym_foreach] = ACTIONS(4602),
    [sym_foreach_reverse] = ACTIONS(4602),
    [sym_function] = ACTIONS(4602),
    [sym_goto] = ACTIONS(4602),
    [sym_if] = ACTIONS(4602),
    [sym_immutable] = ACTIONS(4602),
    [sym_import] = ACTIONS(4602),
    [sym_in] = ACTIONS(4602),
    [sym_inout] = ACTIONS(4602),
    [sym_interface] = ACTIONS(4602),
    [sym_invariant] = ACTIONS(4602),
    [sym_is] = ACTIONS(4602),
    [sym_mixin] = ACTIONS(4602),
    [sym_new] = ACTIONS(4602),
    [sym_nothrow] = ACTIONS(4602),
    [sym_out] = ACTIONS(4602),
    [sym_override] = ACTIONS(4602),
    [sym_package] = ACTIONS(4602),
    [sym_pragma] = ACTIONS(4602),
    [sym_private] = ACTIONS(4602),
    [sym_protected] = ACTIONS(4602),
    [sym_public] = ACTIONS(4602),
    [sym_pure] = ACTIONS(4602),
    [sym_ref] = ACTIONS(4602),
    [sym_return] = ACTIONS(4602),
    [sym_scope] = ACTIONS(4602),
    [sym_shared] = ACTIONS(4602),
    [sym_static] = ACTIONS(4602),
    [sym_struct] = ACTIONS(4602),
    [sym_switch] = ACTIONS(4602),
    [sym_synchronized] = ACTIONS(4602),
    [sym_template] = ACTIONS(4602),
    [sym_throw] = ACTIONS(4602),
    [sym_try] = ACTIONS(4602),
    [sym_typeid] = ACTIONS(4602),
    [sym_typeof] = ACTIONS(4602),
    [sym_union] = ACTIONS(4602),
    [sym_unittest] = ACTIONS(4602),
    [sym_version] = ACTIONS(4602),
    [sym_while] = ACTIONS(4602),
    [sym_with] = ACTIONS(4602),
    [sym_gshared] = ACTIONS(4602),
    [sym_traits] = ACTIONS(4602),
    [sym_vector] = ACTIONS(4602),
    [sym_void] = ACTIONS(4602),
    [anon_sym_BQUOTE] = ACTIONS(4604),
    [anon_sym_r_DQUOTE] = ACTIONS(4604),
    [anon_sym_x_DQUOTE] = ACTIONS(4604),
    [anon_sym_DQUOTE] = ACTIONS(4604),
    [anon_sym_i_BQUOTE] = ACTIONS(4604),
    [anon_sym_i_DQUOTE] = ACTIONS(4604),
    [anon_sym_iq_LBRACE] = ACTIONS(4604),
    [aux_sym_char_literal_token1] = ACTIONS(4604),
    [anon_sym_SQUOTE] = ACTIONS(4602),
    [anon_sym___DATE__] = ACTIONS(4602),
    [anon_sym___FILE__] = ACTIONS(4602),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4602),
    [anon_sym___FUNCTION__] = ACTIONS(4602),
    [anon_sym___LINE__] = ACTIONS(4602),
    [anon_sym___MODULE__] = ACTIONS(4602),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4602),
    [anon_sym___TIME__] = ACTIONS(4602),
    [anon_sym___TIMESTAMP__] = ACTIONS(4602),
    [anon_sym___VENDOR__] = ACTIONS(4602),
    [anon_sym___VERSION__] = ACTIONS(4602),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4604),
    [sym_float_literal] = ACTIONS(4604),
    [sym__string] = ACTIONS(4604),
  },
  [1431] = {
    [sym_identifier] = ACTIONS(4606),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4608),
    [anon_sym_RBRACE] = ACTIONS(4608),
    [anon_sym_LBRACE] = ACTIONS(4608),
    [anon_sym_DOT] = ACTIONS(4608),
    [anon_sym_AMP] = ACTIONS(4608),
    [anon_sym_DASH] = ACTIONS(4606),
    [anon_sym_DASH_DASH] = ACTIONS(4608),
    [anon_sym_PLUS] = ACTIONS(4606),
    [anon_sym_PLUS_PLUS] = ACTIONS(4608),
    [anon_sym_BANG] = ACTIONS(4608),
    [anon_sym_LPAREN] = ACTIONS(4608),
    [anon_sym_RPAREN] = ACTIONS(4608),
    [anon_sym_LBRACK] = ACTIONS(4608),
    [anon_sym_SEMI] = ACTIONS(4608),
    [anon_sym_DOLLAR] = ACTIONS(4608),
    [anon_sym_STAR] = ACTIONS(4608),
    [anon_sym_TILDE] = ACTIONS(4608),
    [anon_sym_AT] = ACTIONS(4608),
    [sym_bool] = ACTIONS(4606),
    [sym_byte] = ACTIONS(4606),
    [sym_ubyte] = ACTIONS(4606),
    [sym_char] = ACTIONS(4606),
    [sym_short] = ACTIONS(4606),
    [sym_ushort] = ACTIONS(4606),
    [sym_int] = ACTIONS(4606),
    [sym_uint] = ACTIONS(4606),
    [sym_long] = ACTIONS(4606),
    [sym_ulong] = ACTIONS(4606),
    [sym_cent] = ACTIONS(4606),
    [sym_ucent] = ACTIONS(4606),
    [sym_wchar] = ACTIONS(4606),
    [sym_dchar] = ACTIONS(4606),
    [sym_float] = ACTIONS(4606),
    [sym_double] = ACTIONS(4606),
    [sym_real] = ACTIONS(4606),
    [sym_ifloat] = ACTIONS(4606),
    [sym_idouble] = ACTIONS(4606),
    [sym_ireal] = ACTIONS(4606),
    [sym_cfloat] = ACTIONS(4606),
    [sym_cdouble] = ACTIONS(4606),
    [sym_creal] = ACTIONS(4606),
    [sym_size_t] = ACTIONS(4606),
    [sym_ptrdiff_t] = ACTIONS(4606),
    [sym_string] = ACTIONS(4606),
    [sym_cstring] = ACTIONS(4606),
    [sym_dstring] = ACTIONS(4606),
    [sym_wstring] = ACTIONS(4606),
    [sym_noreturn] = ACTIONS(4606),
    [sym_true] = ACTIONS(4606),
    [sym_false] = ACTIONS(4606),
    [sym_null] = ACTIONS(4606),
    [sym_super] = ACTIONS(4606),
    [sym_this] = ACTIONS(4606),
    [sym_abstract] = ACTIONS(4606),
    [sym_alias] = ACTIONS(4606),
    [sym_align] = ACTIONS(4606),
    [sym_asm] = ACTIONS(4606),
    [sym_assert] = ACTIONS(4606),
    [sym_auto] = ACTIONS(4606),
    [sym_break] = ACTIONS(4606),
    [sym_case] = ACTIONS(4606),
    [sym_cast] = ACTIONS(4606),
    [sym_catch] = ACTIONS(4606),
    [sym_class] = ACTIONS(4606),
    [sym_const] = ACTIONS(4606),
    [sym_continue] = ACTIONS(4606),
    [sym_debug] = ACTIONS(4606),
    [sym_default] = ACTIONS(4606),
    [sym_delegate] = ACTIONS(4606),
    [sym_delete] = ACTIONS(4606),
    [sym_deprecated] = ACTIONS(4606),
    [sym_do] = ACTIONS(4606),
    [sym_else] = ACTIONS(4606),
    [sym_enum] = ACTIONS(4606),
    [sym_export] = ACTIONS(4606),
    [sym_extern] = ACTIONS(4606),
    [sym_final] = ACTIONS(4606),
    [sym_finally] = ACTIONS(4606),
    [sym_for] = ACTIONS(4606),
    [sym_foreach] = ACTIONS(4606),
    [sym_foreach_reverse] = ACTIONS(4606),
    [sym_function] = ACTIONS(4606),
    [sym_goto] = ACTIONS(4606),
    [sym_if] = ACTIONS(4606),
    [sym_immutable] = ACTIONS(4606),
    [sym_import] = ACTIONS(4606),
    [sym_in] = ACTIONS(4606),
    [sym_inout] = ACTIONS(4606),
    [sym_interface] = ACTIONS(4606),
    [sym_invariant] = ACTIONS(4606),
    [sym_is] = ACTIONS(4606),
    [sym_mixin] = ACTIONS(4606),
    [sym_new] = ACTIONS(4606),
    [sym_nothrow] = ACTIONS(4606),
    [sym_out] = ACTIONS(4606),
    [sym_override] = ACTIONS(4606),
    [sym_package] = ACTIONS(4606),
    [sym_pragma] = ACTIONS(4606),
    [sym_private] = ACTIONS(4606),
    [sym_protected] = ACTIONS(4606),
    [sym_public] = ACTIONS(4606),
    [sym_pure] = ACTIONS(4606),
    [sym_ref] = ACTIONS(4606),
    [sym_return] = ACTIONS(4606),
    [sym_scope] = ACTIONS(4606),
    [sym_shared] = ACTIONS(4606),
    [sym_static] = ACTIONS(4606),
    [sym_struct] = ACTIONS(4606),
    [sym_switch] = ACTIONS(4606),
    [sym_synchronized] = ACTIONS(4606),
    [sym_template] = ACTIONS(4606),
    [sym_throw] = ACTIONS(4606),
    [sym_try] = ACTIONS(4606),
    [sym_typeid] = ACTIONS(4606),
    [sym_typeof] = ACTIONS(4606),
    [sym_union] = ACTIONS(4606),
    [sym_unittest] = ACTIONS(4606),
    [sym_version] = ACTIONS(4606),
    [sym_while] = ACTIONS(4606),
    [sym_with] = ACTIONS(4606),
    [sym_gshared] = ACTIONS(4606),
    [sym_traits] = ACTIONS(4606),
    [sym_vector] = ACTIONS(4606),
    [sym_void] = ACTIONS(4606),
    [anon_sym_BQUOTE] = ACTIONS(4608),
    [anon_sym_r_DQUOTE] = ACTIONS(4608),
    [anon_sym_x_DQUOTE] = ACTIONS(4608),
    [anon_sym_DQUOTE] = ACTIONS(4608),
    [anon_sym_i_BQUOTE] = ACTIONS(4608),
    [anon_sym_i_DQUOTE] = ACTIONS(4608),
    [anon_sym_iq_LBRACE] = ACTIONS(4608),
    [aux_sym_char_literal_token1] = ACTIONS(4608),
    [anon_sym_SQUOTE] = ACTIONS(4606),
    [anon_sym___DATE__] = ACTIONS(4606),
    [anon_sym___FILE__] = ACTIONS(4606),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4606),
    [anon_sym___FUNCTION__] = ACTIONS(4606),
    [anon_sym___LINE__] = ACTIONS(4606),
    [anon_sym___MODULE__] = ACTIONS(4606),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4606),
    [anon_sym___TIME__] = ACTIONS(4606),
    [anon_sym___TIMESTAMP__] = ACTIONS(4606),
    [anon_sym___VENDOR__] = ACTIONS(4606),
    [anon_sym___VERSION__] = ACTIONS(4606),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4608),
    [sym_float_literal] = ACTIONS(4608),
    [sym__string] = ACTIONS(4608),
  },
  [1432] = {
    [sym_identifier] = ACTIONS(4610),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4612),
    [anon_sym_RBRACE] = ACTIONS(4612),
    [anon_sym_LBRACE] = ACTIONS(4612),
    [anon_sym_DOT] = ACTIONS(4612),
    [anon_sym_AMP] = ACTIONS(4612),
    [anon_sym_DASH] = ACTIONS(4610),
    [anon_sym_DASH_DASH] = ACTIONS(4612),
    [anon_sym_PLUS] = ACTIONS(4610),
    [anon_sym_PLUS_PLUS] = ACTIONS(4612),
    [anon_sym_BANG] = ACTIONS(4612),
    [anon_sym_LPAREN] = ACTIONS(4612),
    [anon_sym_RPAREN] = ACTIONS(4612),
    [anon_sym_LBRACK] = ACTIONS(4612),
    [anon_sym_SEMI] = ACTIONS(4612),
    [anon_sym_DOLLAR] = ACTIONS(4612),
    [anon_sym_STAR] = ACTIONS(4612),
    [anon_sym_TILDE] = ACTIONS(4612),
    [anon_sym_AT] = ACTIONS(4612),
    [sym_bool] = ACTIONS(4610),
    [sym_byte] = ACTIONS(4610),
    [sym_ubyte] = ACTIONS(4610),
    [sym_char] = ACTIONS(4610),
    [sym_short] = ACTIONS(4610),
    [sym_ushort] = ACTIONS(4610),
    [sym_int] = ACTIONS(4610),
    [sym_uint] = ACTIONS(4610),
    [sym_long] = ACTIONS(4610),
    [sym_ulong] = ACTIONS(4610),
    [sym_cent] = ACTIONS(4610),
    [sym_ucent] = ACTIONS(4610),
    [sym_wchar] = ACTIONS(4610),
    [sym_dchar] = ACTIONS(4610),
    [sym_float] = ACTIONS(4610),
    [sym_double] = ACTIONS(4610),
    [sym_real] = ACTIONS(4610),
    [sym_ifloat] = ACTIONS(4610),
    [sym_idouble] = ACTIONS(4610),
    [sym_ireal] = ACTIONS(4610),
    [sym_cfloat] = ACTIONS(4610),
    [sym_cdouble] = ACTIONS(4610),
    [sym_creal] = ACTIONS(4610),
    [sym_size_t] = ACTIONS(4610),
    [sym_ptrdiff_t] = ACTIONS(4610),
    [sym_string] = ACTIONS(4610),
    [sym_cstring] = ACTIONS(4610),
    [sym_dstring] = ACTIONS(4610),
    [sym_wstring] = ACTIONS(4610),
    [sym_noreturn] = ACTIONS(4610),
    [sym_true] = ACTIONS(4610),
    [sym_false] = ACTIONS(4610),
    [sym_null] = ACTIONS(4610),
    [sym_super] = ACTIONS(4610),
    [sym_this] = ACTIONS(4610),
    [sym_abstract] = ACTIONS(4610),
    [sym_alias] = ACTIONS(4610),
    [sym_align] = ACTIONS(4610),
    [sym_asm] = ACTIONS(4610),
    [sym_assert] = ACTIONS(4610),
    [sym_auto] = ACTIONS(4610),
    [sym_break] = ACTIONS(4610),
    [sym_case] = ACTIONS(4610),
    [sym_cast] = ACTIONS(4610),
    [sym_catch] = ACTIONS(4610),
    [sym_class] = ACTIONS(4610),
    [sym_const] = ACTIONS(4610),
    [sym_continue] = ACTIONS(4610),
    [sym_debug] = ACTIONS(4610),
    [sym_default] = ACTIONS(4610),
    [sym_delegate] = ACTIONS(4610),
    [sym_delete] = ACTIONS(4610),
    [sym_deprecated] = ACTIONS(4610),
    [sym_do] = ACTIONS(4610),
    [sym_else] = ACTIONS(4610),
    [sym_enum] = ACTIONS(4610),
    [sym_export] = ACTIONS(4610),
    [sym_extern] = ACTIONS(4610),
    [sym_final] = ACTIONS(4610),
    [sym_finally] = ACTIONS(4610),
    [sym_for] = ACTIONS(4610),
    [sym_foreach] = ACTIONS(4610),
    [sym_foreach_reverse] = ACTIONS(4610),
    [sym_function] = ACTIONS(4610),
    [sym_goto] = ACTIONS(4610),
    [sym_if] = ACTIONS(4610),
    [sym_immutable] = ACTIONS(4610),
    [sym_import] = ACTIONS(4610),
    [sym_in] = ACTIONS(4610),
    [sym_inout] = ACTIONS(4610),
    [sym_interface] = ACTIONS(4610),
    [sym_invariant] = ACTIONS(4610),
    [sym_is] = ACTIONS(4610),
    [sym_mixin] = ACTIONS(4610),
    [sym_new] = ACTIONS(4610),
    [sym_nothrow] = ACTIONS(4610),
    [sym_out] = ACTIONS(4610),
    [sym_override] = ACTIONS(4610),
    [sym_package] = ACTIONS(4610),
    [sym_pragma] = ACTIONS(4610),
    [sym_private] = ACTIONS(4610),
    [sym_protected] = ACTIONS(4610),
    [sym_public] = ACTIONS(4610),
    [sym_pure] = ACTIONS(4610),
    [sym_ref] = ACTIONS(4610),
    [sym_return] = ACTIONS(4610),
    [sym_scope] = ACTIONS(4610),
    [sym_shared] = ACTIONS(4610),
    [sym_static] = ACTIONS(4610),
    [sym_struct] = ACTIONS(4610),
    [sym_switch] = ACTIONS(4610),
    [sym_synchronized] = ACTIONS(4610),
    [sym_template] = ACTIONS(4610),
    [sym_throw] = ACTIONS(4610),
    [sym_try] = ACTIONS(4610),
    [sym_typeid] = ACTIONS(4610),
    [sym_typeof] = ACTIONS(4610),
    [sym_union] = ACTIONS(4610),
    [sym_unittest] = ACTIONS(4610),
    [sym_version] = ACTIONS(4610),
    [sym_while] = ACTIONS(4610),
    [sym_with] = ACTIONS(4610),
    [sym_gshared] = ACTIONS(4610),
    [sym_traits] = ACTIONS(4610),
    [sym_vector] = ACTIONS(4610),
    [sym_void] = ACTIONS(4610),
    [anon_sym_BQUOTE] = ACTIONS(4612),
    [anon_sym_r_DQUOTE] = ACTIONS(4612),
    [anon_sym_x_DQUOTE] = ACTIONS(4612),
    [anon_sym_DQUOTE] = ACTIONS(4612),
    [anon_sym_i_BQUOTE] = ACTIONS(4612),
    [anon_sym_i_DQUOTE] = ACTIONS(4612),
    [anon_sym_iq_LBRACE] = ACTIONS(4612),
    [aux_sym_char_literal_token1] = ACTIONS(4612),
    [anon_sym_SQUOTE] = ACTIONS(4610),
    [anon_sym___DATE__] = ACTIONS(4610),
    [anon_sym___FILE__] = ACTIONS(4610),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4610),
    [anon_sym___FUNCTION__] = ACTIONS(4610),
    [anon_sym___LINE__] = ACTIONS(4610),
    [anon_sym___MODULE__] = ACTIONS(4610),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4610),
    [anon_sym___TIME__] = ACTIONS(4610),
    [anon_sym___TIMESTAMP__] = ACTIONS(4610),
    [anon_sym___VENDOR__] = ACTIONS(4610),
    [anon_sym___VERSION__] = ACTIONS(4610),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4612),
    [sym_float_literal] = ACTIONS(4612),
    [sym__string] = ACTIONS(4612),
  },
  [1433] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(4614),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_finally] = ACTIONS(2798),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [1434] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4618),
    [anon_sym_RBRACE] = ACTIONS(4618),
    [anon_sym_LBRACE] = ACTIONS(4618),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_AMP] = ACTIONS(4618),
    [anon_sym_DASH] = ACTIONS(4616),
    [anon_sym_DASH_DASH] = ACTIONS(4618),
    [anon_sym_PLUS] = ACTIONS(4616),
    [anon_sym_PLUS_PLUS] = ACTIONS(4618),
    [anon_sym_BANG] = ACTIONS(4618),
    [anon_sym_LPAREN] = ACTIONS(4618),
    [anon_sym_RPAREN] = ACTIONS(4618),
    [anon_sym_LBRACK] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4618),
    [anon_sym_DOLLAR] = ACTIONS(4618),
    [anon_sym_STAR] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_true] = ACTIONS(4616),
    [sym_false] = ACTIONS(4616),
    [sym_null] = ACTIONS(4616),
    [sym_super] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_asm] = ACTIONS(4616),
    [sym_assert] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_break] = ACTIONS(4616),
    [sym_case] = ACTIONS(4616),
    [sym_cast] = ACTIONS(4616),
    [sym_catch] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_continue] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_default] = ACTIONS(4616),
    [sym_delegate] = ACTIONS(4616),
    [sym_delete] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_do] = ACTIONS(4616),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_finally] = ACTIONS(4616),
    [sym_for] = ACTIONS(4616),
    [sym_foreach] = ACTIONS(4616),
    [sym_foreach_reverse] = ACTIONS(4616),
    [sym_function] = ACTIONS(4616),
    [sym_goto] = ACTIONS(4616),
    [sym_if] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(4616),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_is] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_new] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_out] = ACTIONS(4616),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_switch] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_throw] = ACTIONS(4616),
    [sym_try] = ACTIONS(4616),
    [sym_typeid] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_with] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [anon_sym_BQUOTE] = ACTIONS(4618),
    [anon_sym_r_DQUOTE] = ACTIONS(4618),
    [anon_sym_x_DQUOTE] = ACTIONS(4618),
    [anon_sym_DQUOTE] = ACTIONS(4618),
    [anon_sym_i_BQUOTE] = ACTIONS(4618),
    [anon_sym_i_DQUOTE] = ACTIONS(4618),
    [anon_sym_iq_LBRACE] = ACTIONS(4618),
    [aux_sym_char_literal_token1] = ACTIONS(4618),
    [anon_sym_SQUOTE] = ACTIONS(4616),
    [anon_sym___DATE__] = ACTIONS(4616),
    [anon_sym___FILE__] = ACTIONS(4616),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4616),
    [anon_sym___FUNCTION__] = ACTIONS(4616),
    [anon_sym___LINE__] = ACTIONS(4616),
    [anon_sym___MODULE__] = ACTIONS(4616),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4616),
    [anon_sym___TIME__] = ACTIONS(4616),
    [anon_sym___TIMESTAMP__] = ACTIONS(4616),
    [anon_sym___VENDOR__] = ACTIONS(4616),
    [anon_sym___VERSION__] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4618),
    [sym_float_literal] = ACTIONS(4618),
    [sym__string] = ACTIONS(4618),
  },
  [1435] = {
    [sym_identifier] = ACTIONS(4620),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4622),
    [anon_sym_RBRACE] = ACTIONS(4622),
    [anon_sym_LBRACE] = ACTIONS(4622),
    [anon_sym_DOT] = ACTIONS(4622),
    [anon_sym_AMP] = ACTIONS(4622),
    [anon_sym_DASH] = ACTIONS(4620),
    [anon_sym_DASH_DASH] = ACTIONS(4622),
    [anon_sym_PLUS] = ACTIONS(4620),
    [anon_sym_PLUS_PLUS] = ACTIONS(4622),
    [anon_sym_BANG] = ACTIONS(4622),
    [anon_sym_LPAREN] = ACTIONS(4622),
    [anon_sym_RPAREN] = ACTIONS(4622),
    [anon_sym_LBRACK] = ACTIONS(4622),
    [anon_sym_SEMI] = ACTIONS(4622),
    [anon_sym_DOLLAR] = ACTIONS(4622),
    [anon_sym_STAR] = ACTIONS(4622),
    [anon_sym_TILDE] = ACTIONS(4622),
    [anon_sym_AT] = ACTIONS(4622),
    [sym_bool] = ACTIONS(4620),
    [sym_byte] = ACTIONS(4620),
    [sym_ubyte] = ACTIONS(4620),
    [sym_char] = ACTIONS(4620),
    [sym_short] = ACTIONS(4620),
    [sym_ushort] = ACTIONS(4620),
    [sym_int] = ACTIONS(4620),
    [sym_uint] = ACTIONS(4620),
    [sym_long] = ACTIONS(4620),
    [sym_ulong] = ACTIONS(4620),
    [sym_cent] = ACTIONS(4620),
    [sym_ucent] = ACTIONS(4620),
    [sym_wchar] = ACTIONS(4620),
    [sym_dchar] = ACTIONS(4620),
    [sym_float] = ACTIONS(4620),
    [sym_double] = ACTIONS(4620),
    [sym_real] = ACTIONS(4620),
    [sym_ifloat] = ACTIONS(4620),
    [sym_idouble] = ACTIONS(4620),
    [sym_ireal] = ACTIONS(4620),
    [sym_cfloat] = ACTIONS(4620),
    [sym_cdouble] = ACTIONS(4620),
    [sym_creal] = ACTIONS(4620),
    [sym_size_t] = ACTIONS(4620),
    [sym_ptrdiff_t] = ACTIONS(4620),
    [sym_string] = ACTIONS(4620),
    [sym_cstring] = ACTIONS(4620),
    [sym_dstring] = ACTIONS(4620),
    [sym_wstring] = ACTIONS(4620),
    [sym_noreturn] = ACTIONS(4620),
    [sym_true] = ACTIONS(4620),
    [sym_false] = ACTIONS(4620),
    [sym_null] = ACTIONS(4620),
    [sym_super] = ACTIONS(4620),
    [sym_this] = ACTIONS(4620),
    [sym_abstract] = ACTIONS(4620),
    [sym_alias] = ACTIONS(4620),
    [sym_align] = ACTIONS(4620),
    [sym_asm] = ACTIONS(4620),
    [sym_assert] = ACTIONS(4620),
    [sym_auto] = ACTIONS(4620),
    [sym_break] = ACTIONS(4620),
    [sym_case] = ACTIONS(4620),
    [sym_cast] = ACTIONS(4620),
    [sym_catch] = ACTIONS(4620),
    [sym_class] = ACTIONS(4620),
    [sym_const] = ACTIONS(4620),
    [sym_continue] = ACTIONS(4620),
    [sym_debug] = ACTIONS(4620),
    [sym_default] = ACTIONS(4620),
    [sym_delegate] = ACTIONS(4620),
    [sym_delete] = ACTIONS(4620),
    [sym_deprecated] = ACTIONS(4620),
    [sym_do] = ACTIONS(4620),
    [sym_else] = ACTIONS(4620),
    [sym_enum] = ACTIONS(4620),
    [sym_export] = ACTIONS(4620),
    [sym_extern] = ACTIONS(4620),
    [sym_final] = ACTIONS(4620),
    [sym_finally] = ACTIONS(4620),
    [sym_for] = ACTIONS(4620),
    [sym_foreach] = ACTIONS(4620),
    [sym_foreach_reverse] = ACTIONS(4620),
    [sym_function] = ACTIONS(4620),
    [sym_goto] = ACTIONS(4620),
    [sym_if] = ACTIONS(4620),
    [sym_immutable] = ACTIONS(4620),
    [sym_import] = ACTIONS(4620),
    [sym_in] = ACTIONS(4620),
    [sym_inout] = ACTIONS(4620),
    [sym_interface] = ACTIONS(4620),
    [sym_invariant] = ACTIONS(4620),
    [sym_is] = ACTIONS(4620),
    [sym_mixin] = ACTIONS(4620),
    [sym_new] = ACTIONS(4620),
    [sym_nothrow] = ACTIONS(4620),
    [sym_out] = ACTIONS(4620),
    [sym_override] = ACTIONS(4620),
    [sym_package] = ACTIONS(4620),
    [sym_pragma] = ACTIONS(4620),
    [sym_private] = ACTIONS(4620),
    [sym_protected] = ACTIONS(4620),
    [sym_public] = ACTIONS(4620),
    [sym_pure] = ACTIONS(4620),
    [sym_ref] = ACTIONS(4620),
    [sym_return] = ACTIONS(4620),
    [sym_scope] = ACTIONS(4620),
    [sym_shared] = ACTIONS(4620),
    [sym_static] = ACTIONS(4620),
    [sym_struct] = ACTIONS(4620),
    [sym_switch] = ACTIONS(4620),
    [sym_synchronized] = ACTIONS(4620),
    [sym_template] = ACTIONS(4620),
    [sym_throw] = ACTIONS(4620),
    [sym_try] = ACTIONS(4620),
    [sym_typeid] = ACTIONS(4620),
    [sym_typeof] = ACTIONS(4620),
    [sym_union] = ACTIONS(4620),
    [sym_unittest] = ACTIONS(4620),
    [sym_version] = ACTIONS(4620),
    [sym_while] = ACTIONS(4620),
    [sym_with] = ACTIONS(4620),
    [sym_gshared] = ACTIONS(4620),
    [sym_traits] = ACTIONS(4620),
    [sym_vector] = ACTIONS(4620),
    [sym_void] = ACTIONS(4620),
    [anon_sym_BQUOTE] = ACTIONS(4622),
    [anon_sym_r_DQUOTE] = ACTIONS(4622),
    [anon_sym_x_DQUOTE] = ACTIONS(4622),
    [anon_sym_DQUOTE] = ACTIONS(4622),
    [anon_sym_i_BQUOTE] = ACTIONS(4622),
    [anon_sym_i_DQUOTE] = ACTIONS(4622),
    [anon_sym_iq_LBRACE] = ACTIONS(4622),
    [aux_sym_char_literal_token1] = ACTIONS(4622),
    [anon_sym_SQUOTE] = ACTIONS(4620),
    [anon_sym___DATE__] = ACTIONS(4620),
    [anon_sym___FILE__] = ACTIONS(4620),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4620),
    [anon_sym___FUNCTION__] = ACTIONS(4620),
    [anon_sym___LINE__] = ACTIONS(4620),
    [anon_sym___MODULE__] = ACTIONS(4620),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4620),
    [anon_sym___TIME__] = ACTIONS(4620),
    [anon_sym___TIMESTAMP__] = ACTIONS(4620),
    [anon_sym___VENDOR__] = ACTIONS(4620),
    [anon_sym___VERSION__] = ACTIONS(4620),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4622),
    [sym_float_literal] = ACTIONS(4622),
    [sym__string] = ACTIONS(4622),
  },
  [1436] = {
    [sym_identifier] = ACTIONS(4624),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4626),
    [anon_sym_RBRACE] = ACTIONS(4626),
    [anon_sym_LBRACE] = ACTIONS(4626),
    [anon_sym_DOT] = ACTIONS(4626),
    [anon_sym_AMP] = ACTIONS(4626),
    [anon_sym_DASH] = ACTIONS(4624),
    [anon_sym_DASH_DASH] = ACTIONS(4626),
    [anon_sym_PLUS] = ACTIONS(4624),
    [anon_sym_PLUS_PLUS] = ACTIONS(4626),
    [anon_sym_BANG] = ACTIONS(4626),
    [anon_sym_LPAREN] = ACTIONS(4626),
    [anon_sym_RPAREN] = ACTIONS(4626),
    [anon_sym_LBRACK] = ACTIONS(4626),
    [anon_sym_SEMI] = ACTIONS(4626),
    [anon_sym_DOLLAR] = ACTIONS(4626),
    [anon_sym_STAR] = ACTIONS(4626),
    [anon_sym_TILDE] = ACTIONS(4626),
    [anon_sym_AT] = ACTIONS(4626),
    [sym_bool] = ACTIONS(4624),
    [sym_byte] = ACTIONS(4624),
    [sym_ubyte] = ACTIONS(4624),
    [sym_char] = ACTIONS(4624),
    [sym_short] = ACTIONS(4624),
    [sym_ushort] = ACTIONS(4624),
    [sym_int] = ACTIONS(4624),
    [sym_uint] = ACTIONS(4624),
    [sym_long] = ACTIONS(4624),
    [sym_ulong] = ACTIONS(4624),
    [sym_cent] = ACTIONS(4624),
    [sym_ucent] = ACTIONS(4624),
    [sym_wchar] = ACTIONS(4624),
    [sym_dchar] = ACTIONS(4624),
    [sym_float] = ACTIONS(4624),
    [sym_double] = ACTIONS(4624),
    [sym_real] = ACTIONS(4624),
    [sym_ifloat] = ACTIONS(4624),
    [sym_idouble] = ACTIONS(4624),
    [sym_ireal] = ACTIONS(4624),
    [sym_cfloat] = ACTIONS(4624),
    [sym_cdouble] = ACTIONS(4624),
    [sym_creal] = ACTIONS(4624),
    [sym_size_t] = ACTIONS(4624),
    [sym_ptrdiff_t] = ACTIONS(4624),
    [sym_string] = ACTIONS(4624),
    [sym_cstring] = ACTIONS(4624),
    [sym_dstring] = ACTIONS(4624),
    [sym_wstring] = ACTIONS(4624),
    [sym_noreturn] = ACTIONS(4624),
    [sym_true] = ACTIONS(4624),
    [sym_false] = ACTIONS(4624),
    [sym_null] = ACTIONS(4624),
    [sym_super] = ACTIONS(4624),
    [sym_this] = ACTIONS(4624),
    [sym_abstract] = ACTIONS(4624),
    [sym_alias] = ACTIONS(4624),
    [sym_align] = ACTIONS(4624),
    [sym_asm] = ACTIONS(4624),
    [sym_assert] = ACTIONS(4624),
    [sym_auto] = ACTIONS(4624),
    [sym_break] = ACTIONS(4624),
    [sym_case] = ACTIONS(4624),
    [sym_cast] = ACTIONS(4624),
    [sym_catch] = ACTIONS(4624),
    [sym_class] = ACTIONS(4624),
    [sym_const] = ACTIONS(4624),
    [sym_continue] = ACTIONS(4624),
    [sym_debug] = ACTIONS(4624),
    [sym_default] = ACTIONS(4624),
    [sym_delegate] = ACTIONS(4624),
    [sym_delete] = ACTIONS(4624),
    [sym_deprecated] = ACTIONS(4624),
    [sym_do] = ACTIONS(4624),
    [sym_else] = ACTIONS(4624),
    [sym_enum] = ACTIONS(4624),
    [sym_export] = ACTIONS(4624),
    [sym_extern] = ACTIONS(4624),
    [sym_final] = ACTIONS(4624),
    [sym_finally] = ACTIONS(4624),
    [sym_for] = ACTIONS(4624),
    [sym_foreach] = ACTIONS(4624),
    [sym_foreach_reverse] = ACTIONS(4624),
    [sym_function] = ACTIONS(4624),
    [sym_goto] = ACTIONS(4624),
    [sym_if] = ACTIONS(4624),
    [sym_immutable] = ACTIONS(4624),
    [sym_import] = ACTIONS(4624),
    [sym_in] = ACTIONS(4624),
    [sym_inout] = ACTIONS(4624),
    [sym_interface] = ACTIONS(4624),
    [sym_invariant] = ACTIONS(4624),
    [sym_is] = ACTIONS(4624),
    [sym_mixin] = ACTIONS(4624),
    [sym_new] = ACTIONS(4624),
    [sym_nothrow] = ACTIONS(4624),
    [sym_out] = ACTIONS(4624),
    [sym_override] = ACTIONS(4624),
    [sym_package] = ACTIONS(4624),
    [sym_pragma] = ACTIONS(4624),
    [sym_private] = ACTIONS(4624),
    [sym_protected] = ACTIONS(4624),
    [sym_public] = ACTIONS(4624),
    [sym_pure] = ACTIONS(4624),
    [sym_ref] = ACTIONS(4624),
    [sym_return] = ACTIONS(4624),
    [sym_scope] = ACTIONS(4624),
    [sym_shared] = ACTIONS(4624),
    [sym_static] = ACTIONS(4624),
    [sym_struct] = ACTIONS(4624),
    [sym_switch] = ACTIONS(4624),
    [sym_synchronized] = ACTIONS(4624),
    [sym_template] = ACTIONS(4624),
    [sym_throw] = ACTIONS(4624),
    [sym_try] = ACTIONS(4624),
    [sym_typeid] = ACTIONS(4624),
    [sym_typeof] = ACTIONS(4624),
    [sym_union] = ACTIONS(4624),
    [sym_unittest] = ACTIONS(4624),
    [sym_version] = ACTIONS(4624),
    [sym_while] = ACTIONS(4624),
    [sym_with] = ACTIONS(4624),
    [sym_gshared] = ACTIONS(4624),
    [sym_traits] = ACTIONS(4624),
    [sym_vector] = ACTIONS(4624),
    [sym_void] = ACTIONS(4624),
    [anon_sym_BQUOTE] = ACTIONS(4626),
    [anon_sym_r_DQUOTE] = ACTIONS(4626),
    [anon_sym_x_DQUOTE] = ACTIONS(4626),
    [anon_sym_DQUOTE] = ACTIONS(4626),
    [anon_sym_i_BQUOTE] = ACTIONS(4626),
    [anon_sym_i_DQUOTE] = ACTIONS(4626),
    [anon_sym_iq_LBRACE] = ACTIONS(4626),
    [aux_sym_char_literal_token1] = ACTIONS(4626),
    [anon_sym_SQUOTE] = ACTIONS(4624),
    [anon_sym___DATE__] = ACTIONS(4624),
    [anon_sym___FILE__] = ACTIONS(4624),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4624),
    [anon_sym___FUNCTION__] = ACTIONS(4624),
    [anon_sym___LINE__] = ACTIONS(4624),
    [anon_sym___MODULE__] = ACTIONS(4624),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4624),
    [anon_sym___TIME__] = ACTIONS(4624),
    [anon_sym___TIMESTAMP__] = ACTIONS(4624),
    [anon_sym___VENDOR__] = ACTIONS(4624),
    [anon_sym___VERSION__] = ACTIONS(4624),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4626),
    [sym_float_literal] = ACTIONS(4626),
    [sym__string] = ACTIONS(4626),
  },
  [1437] = {
    [sym_identifier] = ACTIONS(4628),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4630),
    [anon_sym_RBRACE] = ACTIONS(4630),
    [anon_sym_LBRACE] = ACTIONS(4630),
    [anon_sym_DOT] = ACTIONS(4630),
    [anon_sym_AMP] = ACTIONS(4630),
    [anon_sym_DASH] = ACTIONS(4628),
    [anon_sym_DASH_DASH] = ACTIONS(4630),
    [anon_sym_PLUS] = ACTIONS(4628),
    [anon_sym_PLUS_PLUS] = ACTIONS(4630),
    [anon_sym_BANG] = ACTIONS(4630),
    [anon_sym_LPAREN] = ACTIONS(4630),
    [anon_sym_RPAREN] = ACTIONS(4630),
    [anon_sym_LBRACK] = ACTIONS(4630),
    [anon_sym_SEMI] = ACTIONS(4630),
    [anon_sym_DOLLAR] = ACTIONS(4630),
    [anon_sym_STAR] = ACTIONS(4630),
    [anon_sym_TILDE] = ACTIONS(4630),
    [anon_sym_AT] = ACTIONS(4630),
    [sym_bool] = ACTIONS(4628),
    [sym_byte] = ACTIONS(4628),
    [sym_ubyte] = ACTIONS(4628),
    [sym_char] = ACTIONS(4628),
    [sym_short] = ACTIONS(4628),
    [sym_ushort] = ACTIONS(4628),
    [sym_int] = ACTIONS(4628),
    [sym_uint] = ACTIONS(4628),
    [sym_long] = ACTIONS(4628),
    [sym_ulong] = ACTIONS(4628),
    [sym_cent] = ACTIONS(4628),
    [sym_ucent] = ACTIONS(4628),
    [sym_wchar] = ACTIONS(4628),
    [sym_dchar] = ACTIONS(4628),
    [sym_float] = ACTIONS(4628),
    [sym_double] = ACTIONS(4628),
    [sym_real] = ACTIONS(4628),
    [sym_ifloat] = ACTIONS(4628),
    [sym_idouble] = ACTIONS(4628),
    [sym_ireal] = ACTIONS(4628),
    [sym_cfloat] = ACTIONS(4628),
    [sym_cdouble] = ACTIONS(4628),
    [sym_creal] = ACTIONS(4628),
    [sym_size_t] = ACTIONS(4628),
    [sym_ptrdiff_t] = ACTIONS(4628),
    [sym_string] = ACTIONS(4628),
    [sym_cstring] = ACTIONS(4628),
    [sym_dstring] = ACTIONS(4628),
    [sym_wstring] = ACTIONS(4628),
    [sym_noreturn] = ACTIONS(4628),
    [sym_true] = ACTIONS(4628),
    [sym_false] = ACTIONS(4628),
    [sym_null] = ACTIONS(4628),
    [sym_super] = ACTIONS(4628),
    [sym_this] = ACTIONS(4628),
    [sym_abstract] = ACTIONS(4628),
    [sym_alias] = ACTIONS(4628),
    [sym_align] = ACTIONS(4628),
    [sym_asm] = ACTIONS(4628),
    [sym_assert] = ACTIONS(4628),
    [sym_auto] = ACTIONS(4628),
    [sym_break] = ACTIONS(4628),
    [sym_case] = ACTIONS(4628),
    [sym_cast] = ACTIONS(4628),
    [sym_catch] = ACTIONS(4628),
    [sym_class] = ACTIONS(4628),
    [sym_const] = ACTIONS(4628),
    [sym_continue] = ACTIONS(4628),
    [sym_debug] = ACTIONS(4628),
    [sym_default] = ACTIONS(4628),
    [sym_delegate] = ACTIONS(4628),
    [sym_delete] = ACTIONS(4628),
    [sym_deprecated] = ACTIONS(4628),
    [sym_do] = ACTIONS(4628),
    [sym_else] = ACTIONS(4628),
    [sym_enum] = ACTIONS(4628),
    [sym_export] = ACTIONS(4628),
    [sym_extern] = ACTIONS(4628),
    [sym_final] = ACTIONS(4628),
    [sym_finally] = ACTIONS(4628),
    [sym_for] = ACTIONS(4628),
    [sym_foreach] = ACTIONS(4628),
    [sym_foreach_reverse] = ACTIONS(4628),
    [sym_function] = ACTIONS(4628),
    [sym_goto] = ACTIONS(4628),
    [sym_if] = ACTIONS(4628),
    [sym_immutable] = ACTIONS(4628),
    [sym_import] = ACTIONS(4628),
    [sym_in] = ACTIONS(4628),
    [sym_inout] = ACTIONS(4628),
    [sym_interface] = ACTIONS(4628),
    [sym_invariant] = ACTIONS(4628),
    [sym_is] = ACTIONS(4628),
    [sym_mixin] = ACTIONS(4628),
    [sym_new] = ACTIONS(4628),
    [sym_nothrow] = ACTIONS(4628),
    [sym_out] = ACTIONS(4628),
    [sym_override] = ACTIONS(4628),
    [sym_package] = ACTIONS(4628),
    [sym_pragma] = ACTIONS(4628),
    [sym_private] = ACTIONS(4628),
    [sym_protected] = ACTIONS(4628),
    [sym_public] = ACTIONS(4628),
    [sym_pure] = ACTIONS(4628),
    [sym_ref] = ACTIONS(4628),
    [sym_return] = ACTIONS(4628),
    [sym_scope] = ACTIONS(4628),
    [sym_shared] = ACTIONS(4628),
    [sym_static] = ACTIONS(4628),
    [sym_struct] = ACTIONS(4628),
    [sym_switch] = ACTIONS(4628),
    [sym_synchronized] = ACTIONS(4628),
    [sym_template] = ACTIONS(4628),
    [sym_throw] = ACTIONS(4628),
    [sym_try] = ACTIONS(4628),
    [sym_typeid] = ACTIONS(4628),
    [sym_typeof] = ACTIONS(4628),
    [sym_union] = ACTIONS(4628),
    [sym_unittest] = ACTIONS(4628),
    [sym_version] = ACTIONS(4628),
    [sym_while] = ACTIONS(4628),
    [sym_with] = ACTIONS(4628),
    [sym_gshared] = ACTIONS(4628),
    [sym_traits] = ACTIONS(4628),
    [sym_vector] = ACTIONS(4628),
    [sym_void] = ACTIONS(4628),
    [anon_sym_BQUOTE] = ACTIONS(4630),
    [anon_sym_r_DQUOTE] = ACTIONS(4630),
    [anon_sym_x_DQUOTE] = ACTIONS(4630),
    [anon_sym_DQUOTE] = ACTIONS(4630),
    [anon_sym_i_BQUOTE] = ACTIONS(4630),
    [anon_sym_i_DQUOTE] = ACTIONS(4630),
    [anon_sym_iq_LBRACE] = ACTIONS(4630),
    [aux_sym_char_literal_token1] = ACTIONS(4630),
    [anon_sym_SQUOTE] = ACTIONS(4628),
    [anon_sym___DATE__] = ACTIONS(4628),
    [anon_sym___FILE__] = ACTIONS(4628),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4628),
    [anon_sym___FUNCTION__] = ACTIONS(4628),
    [anon_sym___LINE__] = ACTIONS(4628),
    [anon_sym___MODULE__] = ACTIONS(4628),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4628),
    [anon_sym___TIME__] = ACTIONS(4628),
    [anon_sym___TIMESTAMP__] = ACTIONS(4628),
    [anon_sym___VENDOR__] = ACTIONS(4628),
    [anon_sym___VERSION__] = ACTIONS(4628),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4630),
    [sym_float_literal] = ACTIONS(4630),
    [sym__string] = ACTIONS(4630),
  },
  [1438] = {
    [sym_identifier] = ACTIONS(4632),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4634),
    [anon_sym_RBRACE] = ACTIONS(4634),
    [anon_sym_LBRACE] = ACTIONS(4634),
    [anon_sym_DOT] = ACTIONS(4634),
    [anon_sym_AMP] = ACTIONS(4634),
    [anon_sym_DASH] = ACTIONS(4632),
    [anon_sym_DASH_DASH] = ACTIONS(4634),
    [anon_sym_PLUS] = ACTIONS(4632),
    [anon_sym_PLUS_PLUS] = ACTIONS(4634),
    [anon_sym_BANG] = ACTIONS(4634),
    [anon_sym_LPAREN] = ACTIONS(4634),
    [anon_sym_RPAREN] = ACTIONS(4634),
    [anon_sym_LBRACK] = ACTIONS(4634),
    [anon_sym_SEMI] = ACTIONS(4634),
    [anon_sym_DOLLAR] = ACTIONS(4634),
    [anon_sym_STAR] = ACTIONS(4634),
    [anon_sym_TILDE] = ACTIONS(4634),
    [anon_sym_AT] = ACTIONS(4634),
    [sym_bool] = ACTIONS(4632),
    [sym_byte] = ACTIONS(4632),
    [sym_ubyte] = ACTIONS(4632),
    [sym_char] = ACTIONS(4632),
    [sym_short] = ACTIONS(4632),
    [sym_ushort] = ACTIONS(4632),
    [sym_int] = ACTIONS(4632),
    [sym_uint] = ACTIONS(4632),
    [sym_long] = ACTIONS(4632),
    [sym_ulong] = ACTIONS(4632),
    [sym_cent] = ACTIONS(4632),
    [sym_ucent] = ACTIONS(4632),
    [sym_wchar] = ACTIONS(4632),
    [sym_dchar] = ACTIONS(4632),
    [sym_float] = ACTIONS(4632),
    [sym_double] = ACTIONS(4632),
    [sym_real] = ACTIONS(4632),
    [sym_ifloat] = ACTIONS(4632),
    [sym_idouble] = ACTIONS(4632),
    [sym_ireal] = ACTIONS(4632),
    [sym_cfloat] = ACTIONS(4632),
    [sym_cdouble] = ACTIONS(4632),
    [sym_creal] = ACTIONS(4632),
    [sym_size_t] = ACTIONS(4632),
    [sym_ptrdiff_t] = ACTIONS(4632),
    [sym_string] = ACTIONS(4632),
    [sym_cstring] = ACTIONS(4632),
    [sym_dstring] = ACTIONS(4632),
    [sym_wstring] = ACTIONS(4632),
    [sym_noreturn] = ACTIONS(4632),
    [sym_true] = ACTIONS(4632),
    [sym_false] = ACTIONS(4632),
    [sym_null] = ACTIONS(4632),
    [sym_super] = ACTIONS(4632),
    [sym_this] = ACTIONS(4632),
    [sym_abstract] = ACTIONS(4632),
    [sym_alias] = ACTIONS(4632),
    [sym_align] = ACTIONS(4632),
    [sym_asm] = ACTIONS(4632),
    [sym_assert] = ACTIONS(4632),
    [sym_auto] = ACTIONS(4632),
    [sym_break] = ACTIONS(4632),
    [sym_case] = ACTIONS(4632),
    [sym_cast] = ACTIONS(4632),
    [sym_catch] = ACTIONS(4632),
    [sym_class] = ACTIONS(4632),
    [sym_const] = ACTIONS(4632),
    [sym_continue] = ACTIONS(4632),
    [sym_debug] = ACTIONS(4632),
    [sym_default] = ACTIONS(4632),
    [sym_delegate] = ACTIONS(4632),
    [sym_delete] = ACTIONS(4632),
    [sym_deprecated] = ACTIONS(4632),
    [sym_do] = ACTIONS(4632),
    [sym_else] = ACTIONS(4632),
    [sym_enum] = ACTIONS(4632),
    [sym_export] = ACTIONS(4632),
    [sym_extern] = ACTIONS(4632),
    [sym_final] = ACTIONS(4632),
    [sym_finally] = ACTIONS(4632),
    [sym_for] = ACTIONS(4632),
    [sym_foreach] = ACTIONS(4632),
    [sym_foreach_reverse] = ACTIONS(4632),
    [sym_function] = ACTIONS(4632),
    [sym_goto] = ACTIONS(4632),
    [sym_if] = ACTIONS(4632),
    [sym_immutable] = ACTIONS(4632),
    [sym_import] = ACTIONS(4632),
    [sym_in] = ACTIONS(4632),
    [sym_inout] = ACTIONS(4632),
    [sym_interface] = ACTIONS(4632),
    [sym_invariant] = ACTIONS(4632),
    [sym_is] = ACTIONS(4632),
    [sym_mixin] = ACTIONS(4632),
    [sym_new] = ACTIONS(4632),
    [sym_nothrow] = ACTIONS(4632),
    [sym_out] = ACTIONS(4632),
    [sym_override] = ACTIONS(4632),
    [sym_package] = ACTIONS(4632),
    [sym_pragma] = ACTIONS(4632),
    [sym_private] = ACTIONS(4632),
    [sym_protected] = ACTIONS(4632),
    [sym_public] = ACTIONS(4632),
    [sym_pure] = ACTIONS(4632),
    [sym_ref] = ACTIONS(4632),
    [sym_return] = ACTIONS(4632),
    [sym_scope] = ACTIONS(4632),
    [sym_shared] = ACTIONS(4632),
    [sym_static] = ACTIONS(4632),
    [sym_struct] = ACTIONS(4632),
    [sym_switch] = ACTIONS(4632),
    [sym_synchronized] = ACTIONS(4632),
    [sym_template] = ACTIONS(4632),
    [sym_throw] = ACTIONS(4632),
    [sym_try] = ACTIONS(4632),
    [sym_typeid] = ACTIONS(4632),
    [sym_typeof] = ACTIONS(4632),
    [sym_union] = ACTIONS(4632),
    [sym_unittest] = ACTIONS(4632),
    [sym_version] = ACTIONS(4632),
    [sym_while] = ACTIONS(4632),
    [sym_with] = ACTIONS(4632),
    [sym_gshared] = ACTIONS(4632),
    [sym_traits] = ACTIONS(4632),
    [sym_vector] = ACTIONS(4632),
    [sym_void] = ACTIONS(4632),
    [anon_sym_BQUOTE] = ACTIONS(4634),
    [anon_sym_r_DQUOTE] = ACTIONS(4634),
    [anon_sym_x_DQUOTE] = ACTIONS(4634),
    [anon_sym_DQUOTE] = ACTIONS(4634),
    [anon_sym_i_BQUOTE] = ACTIONS(4634),
    [anon_sym_i_DQUOTE] = ACTIONS(4634),
    [anon_sym_iq_LBRACE] = ACTIONS(4634),
    [aux_sym_char_literal_token1] = ACTIONS(4634),
    [anon_sym_SQUOTE] = ACTIONS(4632),
    [anon_sym___DATE__] = ACTIONS(4632),
    [anon_sym___FILE__] = ACTIONS(4632),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4632),
    [anon_sym___FUNCTION__] = ACTIONS(4632),
    [anon_sym___LINE__] = ACTIONS(4632),
    [anon_sym___MODULE__] = ACTIONS(4632),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4632),
    [anon_sym___TIME__] = ACTIONS(4632),
    [anon_sym___TIMESTAMP__] = ACTIONS(4632),
    [anon_sym___VENDOR__] = ACTIONS(4632),
    [anon_sym___VERSION__] = ACTIONS(4632),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4634),
    [sym_float_literal] = ACTIONS(4634),
    [sym__string] = ACTIONS(4634),
  },
  [1439] = {
    [sym_identifier] = ACTIONS(4636),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4638),
    [anon_sym_RBRACE] = ACTIONS(4638),
    [anon_sym_LBRACE] = ACTIONS(4638),
    [anon_sym_DOT] = ACTIONS(4638),
    [anon_sym_AMP] = ACTIONS(4638),
    [anon_sym_DASH] = ACTIONS(4636),
    [anon_sym_DASH_DASH] = ACTIONS(4638),
    [anon_sym_PLUS] = ACTIONS(4636),
    [anon_sym_PLUS_PLUS] = ACTIONS(4638),
    [anon_sym_BANG] = ACTIONS(4638),
    [anon_sym_LPAREN] = ACTIONS(4638),
    [anon_sym_RPAREN] = ACTIONS(4638),
    [anon_sym_LBRACK] = ACTIONS(4638),
    [anon_sym_SEMI] = ACTIONS(4638),
    [anon_sym_DOLLAR] = ACTIONS(4638),
    [anon_sym_STAR] = ACTIONS(4638),
    [anon_sym_TILDE] = ACTIONS(4638),
    [anon_sym_AT] = ACTIONS(4638),
    [sym_bool] = ACTIONS(4636),
    [sym_byte] = ACTIONS(4636),
    [sym_ubyte] = ACTIONS(4636),
    [sym_char] = ACTIONS(4636),
    [sym_short] = ACTIONS(4636),
    [sym_ushort] = ACTIONS(4636),
    [sym_int] = ACTIONS(4636),
    [sym_uint] = ACTIONS(4636),
    [sym_long] = ACTIONS(4636),
    [sym_ulong] = ACTIONS(4636),
    [sym_cent] = ACTIONS(4636),
    [sym_ucent] = ACTIONS(4636),
    [sym_wchar] = ACTIONS(4636),
    [sym_dchar] = ACTIONS(4636),
    [sym_float] = ACTIONS(4636),
    [sym_double] = ACTIONS(4636),
    [sym_real] = ACTIONS(4636),
    [sym_ifloat] = ACTIONS(4636),
    [sym_idouble] = ACTIONS(4636),
    [sym_ireal] = ACTIONS(4636),
    [sym_cfloat] = ACTIONS(4636),
    [sym_cdouble] = ACTIONS(4636),
    [sym_creal] = ACTIONS(4636),
    [sym_size_t] = ACTIONS(4636),
    [sym_ptrdiff_t] = ACTIONS(4636),
    [sym_string] = ACTIONS(4636),
    [sym_cstring] = ACTIONS(4636),
    [sym_dstring] = ACTIONS(4636),
    [sym_wstring] = ACTIONS(4636),
    [sym_noreturn] = ACTIONS(4636),
    [sym_true] = ACTIONS(4636),
    [sym_false] = ACTIONS(4636),
    [sym_null] = ACTIONS(4636),
    [sym_super] = ACTIONS(4636),
    [sym_this] = ACTIONS(4636),
    [sym_abstract] = ACTIONS(4636),
    [sym_alias] = ACTIONS(4636),
    [sym_align] = ACTIONS(4636),
    [sym_asm] = ACTIONS(4636),
    [sym_assert] = ACTIONS(4636),
    [sym_auto] = ACTIONS(4636),
    [sym_break] = ACTIONS(4636),
    [sym_case] = ACTIONS(4636),
    [sym_cast] = ACTIONS(4636),
    [sym_catch] = ACTIONS(4636),
    [sym_class] = ACTIONS(4636),
    [sym_const] = ACTIONS(4636),
    [sym_continue] = ACTIONS(4636),
    [sym_debug] = ACTIONS(4636),
    [sym_default] = ACTIONS(4636),
    [sym_delegate] = ACTIONS(4636),
    [sym_delete] = ACTIONS(4636),
    [sym_deprecated] = ACTIONS(4636),
    [sym_do] = ACTIONS(4636),
    [sym_else] = ACTIONS(4636),
    [sym_enum] = ACTIONS(4636),
    [sym_export] = ACTIONS(4636),
    [sym_extern] = ACTIONS(4636),
    [sym_final] = ACTIONS(4636),
    [sym_finally] = ACTIONS(4636),
    [sym_for] = ACTIONS(4636),
    [sym_foreach] = ACTIONS(4636),
    [sym_foreach_reverse] = ACTIONS(4636),
    [sym_function] = ACTIONS(4636),
    [sym_goto] = ACTIONS(4636),
    [sym_if] = ACTIONS(4636),
    [sym_immutable] = ACTIONS(4636),
    [sym_import] = ACTIONS(4636),
    [sym_in] = ACTIONS(4636),
    [sym_inout] = ACTIONS(4636),
    [sym_interface] = ACTIONS(4636),
    [sym_invariant] = ACTIONS(4636),
    [sym_is] = ACTIONS(4636),
    [sym_mixin] = ACTIONS(4636),
    [sym_new] = ACTIONS(4636),
    [sym_nothrow] = ACTIONS(4636),
    [sym_out] = ACTIONS(4636),
    [sym_override] = ACTIONS(4636),
    [sym_package] = ACTIONS(4636),
    [sym_pragma] = ACTIONS(4636),
    [sym_private] = ACTIONS(4636),
    [sym_protected] = ACTIONS(4636),
    [sym_public] = ACTIONS(4636),
    [sym_pure] = ACTIONS(4636),
    [sym_ref] = ACTIONS(4636),
    [sym_return] = ACTIONS(4636),
    [sym_scope] = ACTIONS(4636),
    [sym_shared] = ACTIONS(4636),
    [sym_static] = ACTIONS(4636),
    [sym_struct] = ACTIONS(4636),
    [sym_switch] = ACTIONS(4636),
    [sym_synchronized] = ACTIONS(4636),
    [sym_template] = ACTIONS(4636),
    [sym_throw] = ACTIONS(4636),
    [sym_try] = ACTIONS(4636),
    [sym_typeid] = ACTIONS(4636),
    [sym_typeof] = ACTIONS(4636),
    [sym_union] = ACTIONS(4636),
    [sym_unittest] = ACTIONS(4636),
    [sym_version] = ACTIONS(4636),
    [sym_while] = ACTIONS(4636),
    [sym_with] = ACTIONS(4636),
    [sym_gshared] = ACTIONS(4636),
    [sym_traits] = ACTIONS(4636),
    [sym_vector] = ACTIONS(4636),
    [sym_void] = ACTIONS(4636),
    [anon_sym_BQUOTE] = ACTIONS(4638),
    [anon_sym_r_DQUOTE] = ACTIONS(4638),
    [anon_sym_x_DQUOTE] = ACTIONS(4638),
    [anon_sym_DQUOTE] = ACTIONS(4638),
    [anon_sym_i_BQUOTE] = ACTIONS(4638),
    [anon_sym_i_DQUOTE] = ACTIONS(4638),
    [anon_sym_iq_LBRACE] = ACTIONS(4638),
    [aux_sym_char_literal_token1] = ACTIONS(4638),
    [anon_sym_SQUOTE] = ACTIONS(4636),
    [anon_sym___DATE__] = ACTIONS(4636),
    [anon_sym___FILE__] = ACTIONS(4636),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4636),
    [anon_sym___FUNCTION__] = ACTIONS(4636),
    [anon_sym___LINE__] = ACTIONS(4636),
    [anon_sym___MODULE__] = ACTIONS(4636),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4636),
    [anon_sym___TIME__] = ACTIONS(4636),
    [anon_sym___TIMESTAMP__] = ACTIONS(4636),
    [anon_sym___VENDOR__] = ACTIONS(4636),
    [anon_sym___VERSION__] = ACTIONS(4636),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4638),
    [sym_float_literal] = ACTIONS(4638),
    [sym__string] = ACTIONS(4638),
  },
  [1440] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_RBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [anon_sym_AT] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_abstract] = ACTIONS(4640),
    [sym_alias] = ACTIONS(4640),
    [sym_align] = ACTIONS(4640),
    [sym_asm] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_break] = ACTIONS(4640),
    [sym_case] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_catch] = ACTIONS(4640),
    [sym_class] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_continue] = ACTIONS(4640),
    [sym_debug] = ACTIONS(4640),
    [sym_default] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_deprecated] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(4644),
    [sym_enum] = ACTIONS(4640),
    [sym_export] = ACTIONS(4640),
    [sym_extern] = ACTIONS(4640),
    [sym_final] = ACTIONS(4640),
    [sym_finally] = ACTIONS(4640),
    [sym_for] = ACTIONS(4640),
    [sym_foreach] = ACTIONS(4640),
    [sym_foreach_reverse] = ACTIONS(4640),
    [sym_function] = ACTIONS(4640),
    [sym_goto] = ACTIONS(4640),
    [sym_if] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_interface] = ACTIONS(4640),
    [sym_invariant] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_nothrow] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_override] = ACTIONS(4640),
    [sym_package] = ACTIONS(4640),
    [sym_pragma] = ACTIONS(4640),
    [sym_private] = ACTIONS(4640),
    [sym_protected] = ACTIONS(4640),
    [sym_public] = ACTIONS(4640),
    [sym_pure] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_return] = ACTIONS(4640),
    [sym_scope] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_static] = ACTIONS(4640),
    [sym_struct] = ACTIONS(4640),
    [sym_switch] = ACTIONS(4640),
    [sym_synchronized] = ACTIONS(4640),
    [sym_template] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_try] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_union] = ACTIONS(4640),
    [sym_unittest] = ACTIONS(4640),
    [sym_version] = ACTIONS(4640),
    [sym_while] = ACTIONS(4640),
    [sym_with] = ACTIONS(4640),
    [sym_gshared] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [1441] = {
    [sym_identifier] = ACTIONS(4646),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4648),
    [anon_sym_RBRACE] = ACTIONS(4648),
    [anon_sym_LBRACE] = ACTIONS(4648),
    [anon_sym_DOT] = ACTIONS(4648),
    [anon_sym_AMP] = ACTIONS(4648),
    [anon_sym_DASH] = ACTIONS(4646),
    [anon_sym_DASH_DASH] = ACTIONS(4648),
    [anon_sym_PLUS] = ACTIONS(4646),
    [anon_sym_PLUS_PLUS] = ACTIONS(4648),
    [anon_sym_BANG] = ACTIONS(4648),
    [anon_sym_LPAREN] = ACTIONS(4648),
    [anon_sym_RPAREN] = ACTIONS(4648),
    [anon_sym_LBRACK] = ACTIONS(4648),
    [anon_sym_SEMI] = ACTIONS(4648),
    [anon_sym_DOLLAR] = ACTIONS(4648),
    [anon_sym_STAR] = ACTIONS(4648),
    [anon_sym_TILDE] = ACTIONS(4648),
    [anon_sym_AT] = ACTIONS(4648),
    [sym_bool] = ACTIONS(4646),
    [sym_byte] = ACTIONS(4646),
    [sym_ubyte] = ACTIONS(4646),
    [sym_char] = ACTIONS(4646),
    [sym_short] = ACTIONS(4646),
    [sym_ushort] = ACTIONS(4646),
    [sym_int] = ACTIONS(4646),
    [sym_uint] = ACTIONS(4646),
    [sym_long] = ACTIONS(4646),
    [sym_ulong] = ACTIONS(4646),
    [sym_cent] = ACTIONS(4646),
    [sym_ucent] = ACTIONS(4646),
    [sym_wchar] = ACTIONS(4646),
    [sym_dchar] = ACTIONS(4646),
    [sym_float] = ACTIONS(4646),
    [sym_double] = ACTIONS(4646),
    [sym_real] = ACTIONS(4646),
    [sym_ifloat] = ACTIONS(4646),
    [sym_idouble] = ACTIONS(4646),
    [sym_ireal] = ACTIONS(4646),
    [sym_cfloat] = ACTIONS(4646),
    [sym_cdouble] = ACTIONS(4646),
    [sym_creal] = ACTIONS(4646),
    [sym_size_t] = ACTIONS(4646),
    [sym_ptrdiff_t] = ACTIONS(4646),
    [sym_string] = ACTIONS(4646),
    [sym_cstring] = ACTIONS(4646),
    [sym_dstring] = ACTIONS(4646),
    [sym_wstring] = ACTIONS(4646),
    [sym_noreturn] = ACTIONS(4646),
    [sym_true] = ACTIONS(4646),
    [sym_false] = ACTIONS(4646),
    [sym_null] = ACTIONS(4646),
    [sym_super] = ACTIONS(4646),
    [sym_this] = ACTIONS(4646),
    [sym_abstract] = ACTIONS(4646),
    [sym_alias] = ACTIONS(4646),
    [sym_align] = ACTIONS(4646),
    [sym_asm] = ACTIONS(4646),
    [sym_assert] = ACTIONS(4646),
    [sym_auto] = ACTIONS(4646),
    [sym_break] = ACTIONS(4646),
    [sym_case] = ACTIONS(4646),
    [sym_cast] = ACTIONS(4646),
    [sym_catch] = ACTIONS(4646),
    [sym_class] = ACTIONS(4646),
    [sym_const] = ACTIONS(4646),
    [sym_continue] = ACTIONS(4646),
    [sym_debug] = ACTIONS(4646),
    [sym_default] = ACTIONS(4646),
    [sym_delegate] = ACTIONS(4646),
    [sym_delete] = ACTIONS(4646),
    [sym_deprecated] = ACTIONS(4646),
    [sym_do] = ACTIONS(4646),
    [sym_else] = ACTIONS(4646),
    [sym_enum] = ACTIONS(4646),
    [sym_export] = ACTIONS(4646),
    [sym_extern] = ACTIONS(4646),
    [sym_final] = ACTIONS(4646),
    [sym_finally] = ACTIONS(4646),
    [sym_for] = ACTIONS(4646),
    [sym_foreach] = ACTIONS(4646),
    [sym_foreach_reverse] = ACTIONS(4646),
    [sym_function] = ACTIONS(4646),
    [sym_goto] = ACTIONS(4646),
    [sym_if] = ACTIONS(4646),
    [sym_immutable] = ACTIONS(4646),
    [sym_import] = ACTIONS(4646),
    [sym_in] = ACTIONS(4646),
    [sym_inout] = ACTIONS(4646),
    [sym_interface] = ACTIONS(4646),
    [sym_invariant] = ACTIONS(4646),
    [sym_is] = ACTIONS(4646),
    [sym_mixin] = ACTIONS(4646),
    [sym_new] = ACTIONS(4646),
    [sym_nothrow] = ACTIONS(4646),
    [sym_out] = ACTIONS(4646),
    [sym_override] = ACTIONS(4646),
    [sym_package] = ACTIONS(4646),
    [sym_pragma] = ACTIONS(4646),
    [sym_private] = ACTIONS(4646),
    [sym_protected] = ACTIONS(4646),
    [sym_public] = ACTIONS(4646),
    [sym_pure] = ACTIONS(4646),
    [sym_ref] = ACTIONS(4646),
    [sym_return] = ACTIONS(4646),
    [sym_scope] = ACTIONS(4646),
    [sym_shared] = ACTIONS(4646),
    [sym_static] = ACTIONS(4646),
    [sym_struct] = ACTIONS(4646),
    [sym_switch] = ACTIONS(4646),
    [sym_synchronized] = ACTIONS(4646),
    [sym_template] = ACTIONS(4646),
    [sym_throw] = ACTIONS(4646),
    [sym_try] = ACTIONS(4646),
    [sym_typeid] = ACTIONS(4646),
    [sym_typeof] = ACTIONS(4646),
    [sym_union] = ACTIONS(4646),
    [sym_unittest] = ACTIONS(4646),
    [sym_version] = ACTIONS(4646),
    [sym_while] = ACTIONS(4646),
    [sym_with] = ACTIONS(4646),
    [sym_gshared] = ACTIONS(4646),
    [sym_traits] = ACTIONS(4646),
    [sym_vector] = ACTIONS(4646),
    [sym_void] = ACTIONS(4646),
    [anon_sym_BQUOTE] = ACTIONS(4648),
    [anon_sym_r_DQUOTE] = ACTIONS(4648),
    [anon_sym_x_DQUOTE] = ACTIONS(4648),
    [anon_sym_DQUOTE] = ACTIONS(4648),
    [anon_sym_i_BQUOTE] = ACTIONS(4648),
    [anon_sym_i_DQUOTE] = ACTIONS(4648),
    [anon_sym_iq_LBRACE] = ACTIONS(4648),
    [aux_sym_char_literal_token1] = ACTIONS(4648),
    [anon_sym_SQUOTE] = ACTIONS(4646),
    [anon_sym___DATE__] = ACTIONS(4646),
    [anon_sym___FILE__] = ACTIONS(4646),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4646),
    [anon_sym___FUNCTION__] = ACTIONS(4646),
    [anon_sym___LINE__] = ACTIONS(4646),
    [anon_sym___MODULE__] = ACTIONS(4646),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4646),
    [anon_sym___TIME__] = ACTIONS(4646),
    [anon_sym___TIMESTAMP__] = ACTIONS(4646),
    [anon_sym___VENDOR__] = ACTIONS(4646),
    [anon_sym___VERSION__] = ACTIONS(4646),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4648),
    [sym_float_literal] = ACTIONS(4648),
    [sym__string] = ACTIONS(4648),
  },
  [1442] = {
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_RBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [anon_sym_AT] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_abstract] = ACTIONS(4149),
    [sym_alias] = ACTIONS(4149),
    [sym_align] = ACTIONS(4149),
    [sym_asm] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_break] = ACTIONS(4149),
    [sym_case] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(4149),
    [sym_class] = ACTIONS(4149),
    [sym_const] = ACTIONS(4149),
    [sym_continue] = ACTIONS(4149),
    [sym_debug] = ACTIONS(4149),
    [sym_default] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_deprecated] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_else] = ACTIONS(4149),
    [sym_enum] = ACTIONS(4149),
    [sym_export] = ACTIONS(4149),
    [sym_extern] = ACTIONS(4149),
    [sym_final] = ACTIONS(4149),
    [sym_finally] = ACTIONS(4149),
    [sym_for] = ACTIONS(4149),
    [sym_foreach] = ACTIONS(4149),
    [sym_foreach_reverse] = ACTIONS(4149),
    [sym_function] = ACTIONS(4149),
    [sym_goto] = ACTIONS(4149),
    [sym_if] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_interface] = ACTIONS(4149),
    [sym_invariant] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_nothrow] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_override] = ACTIONS(4149),
    [sym_package] = ACTIONS(4149),
    [sym_pragma] = ACTIONS(4149),
    [sym_private] = ACTIONS(4149),
    [sym_protected] = ACTIONS(4149),
    [sym_public] = ACTIONS(4149),
    [sym_pure] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_return] = ACTIONS(4149),
    [sym_scope] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_static] = ACTIONS(4149),
    [sym_struct] = ACTIONS(4149),
    [sym_switch] = ACTIONS(4149),
    [sym_synchronized] = ACTIONS(4149),
    [sym_template] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_try] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_union] = ACTIONS(4149),
    [sym_unittest] = ACTIONS(4149),
    [sym_version] = ACTIONS(4149),
    [sym_while] = ACTIONS(4149),
    [sym_with] = ACTIONS(4149),
    [sym_gshared] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [1443] = {
    [sym_identifier] = ACTIONS(4650),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4652),
    [anon_sym_RBRACE] = ACTIONS(4652),
    [anon_sym_LBRACE] = ACTIONS(4652),
    [anon_sym_DOT] = ACTIONS(4652),
    [anon_sym_AMP] = ACTIONS(4652),
    [anon_sym_DASH] = ACTIONS(4650),
    [anon_sym_DASH_DASH] = ACTIONS(4652),
    [anon_sym_PLUS] = ACTIONS(4650),
    [anon_sym_PLUS_PLUS] = ACTIONS(4652),
    [anon_sym_BANG] = ACTIONS(4652),
    [anon_sym_LPAREN] = ACTIONS(4652),
    [anon_sym_RPAREN] = ACTIONS(4652),
    [anon_sym_LBRACK] = ACTIONS(4652),
    [anon_sym_SEMI] = ACTIONS(4652),
    [anon_sym_DOLLAR] = ACTIONS(4652),
    [anon_sym_STAR] = ACTIONS(4652),
    [anon_sym_TILDE] = ACTIONS(4652),
    [anon_sym_AT] = ACTIONS(4652),
    [sym_bool] = ACTIONS(4650),
    [sym_byte] = ACTIONS(4650),
    [sym_ubyte] = ACTIONS(4650),
    [sym_char] = ACTIONS(4650),
    [sym_short] = ACTIONS(4650),
    [sym_ushort] = ACTIONS(4650),
    [sym_int] = ACTIONS(4650),
    [sym_uint] = ACTIONS(4650),
    [sym_long] = ACTIONS(4650),
    [sym_ulong] = ACTIONS(4650),
    [sym_cent] = ACTIONS(4650),
    [sym_ucent] = ACTIONS(4650),
    [sym_wchar] = ACTIONS(4650),
    [sym_dchar] = ACTIONS(4650),
    [sym_float] = ACTIONS(4650),
    [sym_double] = ACTIONS(4650),
    [sym_real] = ACTIONS(4650),
    [sym_ifloat] = ACTIONS(4650),
    [sym_idouble] = ACTIONS(4650),
    [sym_ireal] = ACTIONS(4650),
    [sym_cfloat] = ACTIONS(4650),
    [sym_cdouble] = ACTIONS(4650),
    [sym_creal] = ACTIONS(4650),
    [sym_size_t] = ACTIONS(4650),
    [sym_ptrdiff_t] = ACTIONS(4650),
    [sym_string] = ACTIONS(4650),
    [sym_cstring] = ACTIONS(4650),
    [sym_dstring] = ACTIONS(4650),
    [sym_wstring] = ACTIONS(4650),
    [sym_noreturn] = ACTIONS(4650),
    [sym_true] = ACTIONS(4650),
    [sym_false] = ACTIONS(4650),
    [sym_null] = ACTIONS(4650),
    [sym_super] = ACTIONS(4650),
    [sym_this] = ACTIONS(4650),
    [sym_abstract] = ACTIONS(4650),
    [sym_alias] = ACTIONS(4650),
    [sym_align] = ACTIONS(4650),
    [sym_asm] = ACTIONS(4650),
    [sym_assert] = ACTIONS(4650),
    [sym_auto] = ACTIONS(4650),
    [sym_break] = ACTIONS(4650),
    [sym_case] = ACTIONS(4650),
    [sym_cast] = ACTIONS(4650),
    [sym_catch] = ACTIONS(4650),
    [sym_class] = ACTIONS(4650),
    [sym_const] = ACTIONS(4650),
    [sym_continue] = ACTIONS(4650),
    [sym_debug] = ACTIONS(4650),
    [sym_default] = ACTIONS(4650),
    [sym_delegate] = ACTIONS(4650),
    [sym_delete] = ACTIONS(4650),
    [sym_deprecated] = ACTIONS(4650),
    [sym_do] = ACTIONS(4650),
    [sym_else] = ACTIONS(4650),
    [sym_enum] = ACTIONS(4650),
    [sym_export] = ACTIONS(4650),
    [sym_extern] = ACTIONS(4650),
    [sym_final] = ACTIONS(4650),
    [sym_finally] = ACTIONS(4650),
    [sym_for] = ACTIONS(4650),
    [sym_foreach] = ACTIONS(4650),
    [sym_foreach_reverse] = ACTIONS(4650),
    [sym_function] = ACTIONS(4650),
    [sym_goto] = ACTIONS(4650),
    [sym_if] = ACTIONS(4650),
    [sym_immutable] = ACTIONS(4650),
    [sym_import] = ACTIONS(4650),
    [sym_in] = ACTIONS(4650),
    [sym_inout] = ACTIONS(4650),
    [sym_interface] = ACTIONS(4650),
    [sym_invariant] = ACTIONS(4650),
    [sym_is] = ACTIONS(4650),
    [sym_mixin] = ACTIONS(4650),
    [sym_new] = ACTIONS(4650),
    [sym_nothrow] = ACTIONS(4650),
    [sym_out] = ACTIONS(4650),
    [sym_override] = ACTIONS(4650),
    [sym_package] = ACTIONS(4650),
    [sym_pragma] = ACTIONS(4650),
    [sym_private] = ACTIONS(4650),
    [sym_protected] = ACTIONS(4650),
    [sym_public] = ACTIONS(4650),
    [sym_pure] = ACTIONS(4650),
    [sym_ref] = ACTIONS(4650),
    [sym_return] = ACTIONS(4650),
    [sym_scope] = ACTIONS(4650),
    [sym_shared] = ACTIONS(4650),
    [sym_static] = ACTIONS(4650),
    [sym_struct] = ACTIONS(4650),
    [sym_switch] = ACTIONS(4650),
    [sym_synchronized] = ACTIONS(4650),
    [sym_template] = ACTIONS(4650),
    [sym_throw] = ACTIONS(4650),
    [sym_try] = ACTIONS(4650),
    [sym_typeid] = ACTIONS(4650),
    [sym_typeof] = ACTIONS(4650),
    [sym_union] = ACTIONS(4650),
    [sym_unittest] = ACTIONS(4650),
    [sym_version] = ACTIONS(4650),
    [sym_while] = ACTIONS(4650),
    [sym_with] = ACTIONS(4650),
    [sym_gshared] = ACTIONS(4650),
    [sym_traits] = ACTIONS(4650),
    [sym_vector] = ACTIONS(4650),
    [sym_void] = ACTIONS(4650),
    [anon_sym_BQUOTE] = ACTIONS(4652),
    [anon_sym_r_DQUOTE] = ACTIONS(4652),
    [anon_sym_x_DQUOTE] = ACTIONS(4652),
    [anon_sym_DQUOTE] = ACTIONS(4652),
    [anon_sym_i_BQUOTE] = ACTIONS(4652),
    [anon_sym_i_DQUOTE] = ACTIONS(4652),
    [anon_sym_iq_LBRACE] = ACTIONS(4652),
    [aux_sym_char_literal_token1] = ACTIONS(4652),
    [anon_sym_SQUOTE] = ACTIONS(4650),
    [anon_sym___DATE__] = ACTIONS(4650),
    [anon_sym___FILE__] = ACTIONS(4650),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4650),
    [anon_sym___FUNCTION__] = ACTIONS(4650),
    [anon_sym___LINE__] = ACTIONS(4650),
    [anon_sym___MODULE__] = ACTIONS(4650),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4650),
    [anon_sym___TIME__] = ACTIONS(4650),
    [anon_sym___TIMESTAMP__] = ACTIONS(4650),
    [anon_sym___VENDOR__] = ACTIONS(4650),
    [anon_sym___VERSION__] = ACTIONS(4650),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4652),
    [sym_float_literal] = ACTIONS(4652),
    [sym__string] = ACTIONS(4652),
  },
  [1444] = {
    [sym_identifier] = ACTIONS(4654),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4656),
    [anon_sym_RBRACE] = ACTIONS(4656),
    [anon_sym_LBRACE] = ACTIONS(4656),
    [anon_sym_DOT] = ACTIONS(4656),
    [anon_sym_AMP] = ACTIONS(4656),
    [anon_sym_DASH] = ACTIONS(4654),
    [anon_sym_DASH_DASH] = ACTIONS(4656),
    [anon_sym_PLUS] = ACTIONS(4654),
    [anon_sym_PLUS_PLUS] = ACTIONS(4656),
    [anon_sym_BANG] = ACTIONS(4656),
    [anon_sym_LPAREN] = ACTIONS(4656),
    [anon_sym_RPAREN] = ACTIONS(4656),
    [anon_sym_LBRACK] = ACTIONS(4656),
    [anon_sym_SEMI] = ACTIONS(4656),
    [anon_sym_DOLLAR] = ACTIONS(4656),
    [anon_sym_STAR] = ACTIONS(4656),
    [anon_sym_TILDE] = ACTIONS(4656),
    [anon_sym_AT] = ACTIONS(4656),
    [sym_bool] = ACTIONS(4654),
    [sym_byte] = ACTIONS(4654),
    [sym_ubyte] = ACTIONS(4654),
    [sym_char] = ACTIONS(4654),
    [sym_short] = ACTIONS(4654),
    [sym_ushort] = ACTIONS(4654),
    [sym_int] = ACTIONS(4654),
    [sym_uint] = ACTIONS(4654),
    [sym_long] = ACTIONS(4654),
    [sym_ulong] = ACTIONS(4654),
    [sym_cent] = ACTIONS(4654),
    [sym_ucent] = ACTIONS(4654),
    [sym_wchar] = ACTIONS(4654),
    [sym_dchar] = ACTIONS(4654),
    [sym_float] = ACTIONS(4654),
    [sym_double] = ACTIONS(4654),
    [sym_real] = ACTIONS(4654),
    [sym_ifloat] = ACTIONS(4654),
    [sym_idouble] = ACTIONS(4654),
    [sym_ireal] = ACTIONS(4654),
    [sym_cfloat] = ACTIONS(4654),
    [sym_cdouble] = ACTIONS(4654),
    [sym_creal] = ACTIONS(4654),
    [sym_size_t] = ACTIONS(4654),
    [sym_ptrdiff_t] = ACTIONS(4654),
    [sym_string] = ACTIONS(4654),
    [sym_cstring] = ACTIONS(4654),
    [sym_dstring] = ACTIONS(4654),
    [sym_wstring] = ACTIONS(4654),
    [sym_noreturn] = ACTIONS(4654),
    [sym_true] = ACTIONS(4654),
    [sym_false] = ACTIONS(4654),
    [sym_null] = ACTIONS(4654),
    [sym_super] = ACTIONS(4654),
    [sym_this] = ACTIONS(4654),
    [sym_abstract] = ACTIONS(4654),
    [sym_alias] = ACTIONS(4654),
    [sym_align] = ACTIONS(4654),
    [sym_asm] = ACTIONS(4654),
    [sym_assert] = ACTIONS(4654),
    [sym_auto] = ACTIONS(4654),
    [sym_break] = ACTIONS(4654),
    [sym_case] = ACTIONS(4654),
    [sym_cast] = ACTIONS(4654),
    [sym_catch] = ACTIONS(4654),
    [sym_class] = ACTIONS(4654),
    [sym_const] = ACTIONS(4654),
    [sym_continue] = ACTIONS(4654),
    [sym_debug] = ACTIONS(4654),
    [sym_default] = ACTIONS(4654),
    [sym_delegate] = ACTIONS(4654),
    [sym_delete] = ACTIONS(4654),
    [sym_deprecated] = ACTIONS(4654),
    [sym_do] = ACTIONS(4654),
    [sym_else] = ACTIONS(4654),
    [sym_enum] = ACTIONS(4654),
    [sym_export] = ACTIONS(4654),
    [sym_extern] = ACTIONS(4654),
    [sym_final] = ACTIONS(4654),
    [sym_finally] = ACTIONS(4654),
    [sym_for] = ACTIONS(4654),
    [sym_foreach] = ACTIONS(4654),
    [sym_foreach_reverse] = ACTIONS(4654),
    [sym_function] = ACTIONS(4654),
    [sym_goto] = ACTIONS(4654),
    [sym_if] = ACTIONS(4654),
    [sym_immutable] = ACTIONS(4654),
    [sym_import] = ACTIONS(4654),
    [sym_in] = ACTIONS(4654),
    [sym_inout] = ACTIONS(4654),
    [sym_interface] = ACTIONS(4654),
    [sym_invariant] = ACTIONS(4654),
    [sym_is] = ACTIONS(4654),
    [sym_mixin] = ACTIONS(4654),
    [sym_new] = ACTIONS(4654),
    [sym_nothrow] = ACTIONS(4654),
    [sym_out] = ACTIONS(4654),
    [sym_override] = ACTIONS(4654),
    [sym_package] = ACTIONS(4654),
    [sym_pragma] = ACTIONS(4654),
    [sym_private] = ACTIONS(4654),
    [sym_protected] = ACTIONS(4654),
    [sym_public] = ACTIONS(4654),
    [sym_pure] = ACTIONS(4654),
    [sym_ref] = ACTIONS(4654),
    [sym_return] = ACTIONS(4654),
    [sym_scope] = ACTIONS(4654),
    [sym_shared] = ACTIONS(4654),
    [sym_static] = ACTIONS(4654),
    [sym_struct] = ACTIONS(4654),
    [sym_switch] = ACTIONS(4654),
    [sym_synchronized] = ACTIONS(4654),
    [sym_template] = ACTIONS(4654),
    [sym_throw] = ACTIONS(4654),
    [sym_try] = ACTIONS(4654),
    [sym_typeid] = ACTIONS(4654),
    [sym_typeof] = ACTIONS(4654),
    [sym_union] = ACTIONS(4654),
    [sym_unittest] = ACTIONS(4654),
    [sym_version] = ACTIONS(4654),
    [sym_while] = ACTIONS(4654),
    [sym_with] = ACTIONS(4654),
    [sym_gshared] = ACTIONS(4654),
    [sym_traits] = ACTIONS(4654),
    [sym_vector] = ACTIONS(4654),
    [sym_void] = ACTIONS(4654),
    [anon_sym_BQUOTE] = ACTIONS(4656),
    [anon_sym_r_DQUOTE] = ACTIONS(4656),
    [anon_sym_x_DQUOTE] = ACTIONS(4656),
    [anon_sym_DQUOTE] = ACTIONS(4656),
    [anon_sym_i_BQUOTE] = ACTIONS(4656),
    [anon_sym_i_DQUOTE] = ACTIONS(4656),
    [anon_sym_iq_LBRACE] = ACTIONS(4656),
    [aux_sym_char_literal_token1] = ACTIONS(4656),
    [anon_sym_SQUOTE] = ACTIONS(4654),
    [anon_sym___DATE__] = ACTIONS(4654),
    [anon_sym___FILE__] = ACTIONS(4654),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4654),
    [anon_sym___FUNCTION__] = ACTIONS(4654),
    [anon_sym___LINE__] = ACTIONS(4654),
    [anon_sym___MODULE__] = ACTIONS(4654),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4654),
    [anon_sym___TIME__] = ACTIONS(4654),
    [anon_sym___TIMESTAMP__] = ACTIONS(4654),
    [anon_sym___VENDOR__] = ACTIONS(4654),
    [anon_sym___VERSION__] = ACTIONS(4654),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4656),
    [sym_float_literal] = ACTIONS(4656),
    [sym__string] = ACTIONS(4656),
  },
  [1445] = {
    [sym_identifier] = ACTIONS(4658),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4660),
    [anon_sym_RBRACE] = ACTIONS(4660),
    [anon_sym_LBRACE] = ACTIONS(4660),
    [anon_sym_DOT] = ACTIONS(4660),
    [anon_sym_AMP] = ACTIONS(4660),
    [anon_sym_DASH] = ACTIONS(4658),
    [anon_sym_DASH_DASH] = ACTIONS(4660),
    [anon_sym_PLUS] = ACTIONS(4658),
    [anon_sym_PLUS_PLUS] = ACTIONS(4660),
    [anon_sym_BANG] = ACTIONS(4660),
    [anon_sym_LPAREN] = ACTIONS(4660),
    [anon_sym_RPAREN] = ACTIONS(4660),
    [anon_sym_LBRACK] = ACTIONS(4660),
    [anon_sym_SEMI] = ACTIONS(4660),
    [anon_sym_DOLLAR] = ACTIONS(4660),
    [anon_sym_STAR] = ACTIONS(4660),
    [anon_sym_TILDE] = ACTIONS(4660),
    [anon_sym_AT] = ACTIONS(4660),
    [sym_bool] = ACTIONS(4658),
    [sym_byte] = ACTIONS(4658),
    [sym_ubyte] = ACTIONS(4658),
    [sym_char] = ACTIONS(4658),
    [sym_short] = ACTIONS(4658),
    [sym_ushort] = ACTIONS(4658),
    [sym_int] = ACTIONS(4658),
    [sym_uint] = ACTIONS(4658),
    [sym_long] = ACTIONS(4658),
    [sym_ulong] = ACTIONS(4658),
    [sym_cent] = ACTIONS(4658),
    [sym_ucent] = ACTIONS(4658),
    [sym_wchar] = ACTIONS(4658),
    [sym_dchar] = ACTIONS(4658),
    [sym_float] = ACTIONS(4658),
    [sym_double] = ACTIONS(4658),
    [sym_real] = ACTIONS(4658),
    [sym_ifloat] = ACTIONS(4658),
    [sym_idouble] = ACTIONS(4658),
    [sym_ireal] = ACTIONS(4658),
    [sym_cfloat] = ACTIONS(4658),
    [sym_cdouble] = ACTIONS(4658),
    [sym_creal] = ACTIONS(4658),
    [sym_size_t] = ACTIONS(4658),
    [sym_ptrdiff_t] = ACTIONS(4658),
    [sym_string] = ACTIONS(4658),
    [sym_cstring] = ACTIONS(4658),
    [sym_dstring] = ACTIONS(4658),
    [sym_wstring] = ACTIONS(4658),
    [sym_noreturn] = ACTIONS(4658),
    [sym_true] = ACTIONS(4658),
    [sym_false] = ACTIONS(4658),
    [sym_null] = ACTIONS(4658),
    [sym_super] = ACTIONS(4658),
    [sym_this] = ACTIONS(4658),
    [sym_abstract] = ACTIONS(4658),
    [sym_alias] = ACTIONS(4658),
    [sym_align] = ACTIONS(4658),
    [sym_asm] = ACTIONS(4658),
    [sym_assert] = ACTIONS(4658),
    [sym_auto] = ACTIONS(4658),
    [sym_break] = ACTIONS(4658),
    [sym_case] = ACTIONS(4658),
    [sym_cast] = ACTIONS(4658),
    [sym_catch] = ACTIONS(4658),
    [sym_class] = ACTIONS(4658),
    [sym_const] = ACTIONS(4658),
    [sym_continue] = ACTIONS(4658),
    [sym_debug] = ACTIONS(4658),
    [sym_default] = ACTIONS(4658),
    [sym_delegate] = ACTIONS(4658),
    [sym_delete] = ACTIONS(4658),
    [sym_deprecated] = ACTIONS(4658),
    [sym_do] = ACTIONS(4658),
    [sym_else] = ACTIONS(4658),
    [sym_enum] = ACTIONS(4658),
    [sym_export] = ACTIONS(4658),
    [sym_extern] = ACTIONS(4658),
    [sym_final] = ACTIONS(4658),
    [sym_finally] = ACTIONS(4658),
    [sym_for] = ACTIONS(4658),
    [sym_foreach] = ACTIONS(4658),
    [sym_foreach_reverse] = ACTIONS(4658),
    [sym_function] = ACTIONS(4658),
    [sym_goto] = ACTIONS(4658),
    [sym_if] = ACTIONS(4658),
    [sym_immutable] = ACTIONS(4658),
    [sym_import] = ACTIONS(4658),
    [sym_in] = ACTIONS(4658),
    [sym_inout] = ACTIONS(4658),
    [sym_interface] = ACTIONS(4658),
    [sym_invariant] = ACTIONS(4658),
    [sym_is] = ACTIONS(4658),
    [sym_mixin] = ACTIONS(4658),
    [sym_new] = ACTIONS(4658),
    [sym_nothrow] = ACTIONS(4658),
    [sym_out] = ACTIONS(4658),
    [sym_override] = ACTIONS(4658),
    [sym_package] = ACTIONS(4658),
    [sym_pragma] = ACTIONS(4658),
    [sym_private] = ACTIONS(4658),
    [sym_protected] = ACTIONS(4658),
    [sym_public] = ACTIONS(4658),
    [sym_pure] = ACTIONS(4658),
    [sym_ref] = ACTIONS(4658),
    [sym_return] = ACTIONS(4658),
    [sym_scope] = ACTIONS(4658),
    [sym_shared] = ACTIONS(4658),
    [sym_static] = ACTIONS(4658),
    [sym_struct] = ACTIONS(4658),
    [sym_switch] = ACTIONS(4658),
    [sym_synchronized] = ACTIONS(4658),
    [sym_template] = ACTIONS(4658),
    [sym_throw] = ACTIONS(4658),
    [sym_try] = ACTIONS(4658),
    [sym_typeid] = ACTIONS(4658),
    [sym_typeof] = ACTIONS(4658),
    [sym_union] = ACTIONS(4658),
    [sym_unittest] = ACTIONS(4658),
    [sym_version] = ACTIONS(4658),
    [sym_while] = ACTIONS(4658),
    [sym_with] = ACTIONS(4658),
    [sym_gshared] = ACTIONS(4658),
    [sym_traits] = ACTIONS(4658),
    [sym_vector] = ACTIONS(4658),
    [sym_void] = ACTIONS(4658),
    [anon_sym_BQUOTE] = ACTIONS(4660),
    [anon_sym_r_DQUOTE] = ACTIONS(4660),
    [anon_sym_x_DQUOTE] = ACTIONS(4660),
    [anon_sym_DQUOTE] = ACTIONS(4660),
    [anon_sym_i_BQUOTE] = ACTIONS(4660),
    [anon_sym_i_DQUOTE] = ACTIONS(4660),
    [anon_sym_iq_LBRACE] = ACTIONS(4660),
    [aux_sym_char_literal_token1] = ACTIONS(4660),
    [anon_sym_SQUOTE] = ACTIONS(4658),
    [anon_sym___DATE__] = ACTIONS(4658),
    [anon_sym___FILE__] = ACTIONS(4658),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4658),
    [anon_sym___FUNCTION__] = ACTIONS(4658),
    [anon_sym___LINE__] = ACTIONS(4658),
    [anon_sym___MODULE__] = ACTIONS(4658),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4658),
    [anon_sym___TIME__] = ACTIONS(4658),
    [anon_sym___TIMESTAMP__] = ACTIONS(4658),
    [anon_sym___VENDOR__] = ACTIONS(4658),
    [anon_sym___VERSION__] = ACTIONS(4658),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4660),
    [sym_float_literal] = ACTIONS(4660),
    [sym__string] = ACTIONS(4660),
  },
  [1446] = {
    [sym_identifier] = ACTIONS(4662),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4664),
    [anon_sym_RBRACE] = ACTIONS(4664),
    [anon_sym_LBRACE] = ACTIONS(4664),
    [anon_sym_DOT] = ACTIONS(4664),
    [anon_sym_AMP] = ACTIONS(4664),
    [anon_sym_DASH] = ACTIONS(4662),
    [anon_sym_DASH_DASH] = ACTIONS(4664),
    [anon_sym_PLUS] = ACTIONS(4662),
    [anon_sym_PLUS_PLUS] = ACTIONS(4664),
    [anon_sym_BANG] = ACTIONS(4664),
    [anon_sym_LPAREN] = ACTIONS(4664),
    [anon_sym_RPAREN] = ACTIONS(4664),
    [anon_sym_LBRACK] = ACTIONS(4664),
    [anon_sym_SEMI] = ACTIONS(4664),
    [anon_sym_DOLLAR] = ACTIONS(4664),
    [anon_sym_STAR] = ACTIONS(4664),
    [anon_sym_TILDE] = ACTIONS(4664),
    [anon_sym_AT] = ACTIONS(4664),
    [sym_bool] = ACTIONS(4662),
    [sym_byte] = ACTIONS(4662),
    [sym_ubyte] = ACTIONS(4662),
    [sym_char] = ACTIONS(4662),
    [sym_short] = ACTIONS(4662),
    [sym_ushort] = ACTIONS(4662),
    [sym_int] = ACTIONS(4662),
    [sym_uint] = ACTIONS(4662),
    [sym_long] = ACTIONS(4662),
    [sym_ulong] = ACTIONS(4662),
    [sym_cent] = ACTIONS(4662),
    [sym_ucent] = ACTIONS(4662),
    [sym_wchar] = ACTIONS(4662),
    [sym_dchar] = ACTIONS(4662),
    [sym_float] = ACTIONS(4662),
    [sym_double] = ACTIONS(4662),
    [sym_real] = ACTIONS(4662),
    [sym_ifloat] = ACTIONS(4662),
    [sym_idouble] = ACTIONS(4662),
    [sym_ireal] = ACTIONS(4662),
    [sym_cfloat] = ACTIONS(4662),
    [sym_cdouble] = ACTIONS(4662),
    [sym_creal] = ACTIONS(4662),
    [sym_size_t] = ACTIONS(4662),
    [sym_ptrdiff_t] = ACTIONS(4662),
    [sym_string] = ACTIONS(4662),
    [sym_cstring] = ACTIONS(4662),
    [sym_dstring] = ACTIONS(4662),
    [sym_wstring] = ACTIONS(4662),
    [sym_noreturn] = ACTIONS(4662),
    [sym_true] = ACTIONS(4662),
    [sym_false] = ACTIONS(4662),
    [sym_null] = ACTIONS(4662),
    [sym_super] = ACTIONS(4662),
    [sym_this] = ACTIONS(4662),
    [sym_abstract] = ACTIONS(4662),
    [sym_alias] = ACTIONS(4662),
    [sym_align] = ACTIONS(4662),
    [sym_asm] = ACTIONS(4662),
    [sym_assert] = ACTIONS(4662),
    [sym_auto] = ACTIONS(4662),
    [sym_break] = ACTIONS(4662),
    [sym_case] = ACTIONS(4662),
    [sym_cast] = ACTIONS(4662),
    [sym_catch] = ACTIONS(4662),
    [sym_class] = ACTIONS(4662),
    [sym_const] = ACTIONS(4662),
    [sym_continue] = ACTIONS(4662),
    [sym_debug] = ACTIONS(4662),
    [sym_default] = ACTIONS(4662),
    [sym_delegate] = ACTIONS(4662),
    [sym_delete] = ACTIONS(4662),
    [sym_deprecated] = ACTIONS(4662),
    [sym_do] = ACTIONS(4662),
    [sym_else] = ACTIONS(4662),
    [sym_enum] = ACTIONS(4662),
    [sym_export] = ACTIONS(4662),
    [sym_extern] = ACTIONS(4662),
    [sym_final] = ACTIONS(4662),
    [sym_finally] = ACTIONS(4662),
    [sym_for] = ACTIONS(4662),
    [sym_foreach] = ACTIONS(4662),
    [sym_foreach_reverse] = ACTIONS(4662),
    [sym_function] = ACTIONS(4662),
    [sym_goto] = ACTIONS(4662),
    [sym_if] = ACTIONS(4662),
    [sym_immutable] = ACTIONS(4662),
    [sym_import] = ACTIONS(4662),
    [sym_in] = ACTIONS(4662),
    [sym_inout] = ACTIONS(4662),
    [sym_interface] = ACTIONS(4662),
    [sym_invariant] = ACTIONS(4662),
    [sym_is] = ACTIONS(4662),
    [sym_mixin] = ACTIONS(4662),
    [sym_new] = ACTIONS(4662),
    [sym_nothrow] = ACTIONS(4662),
    [sym_out] = ACTIONS(4662),
    [sym_override] = ACTIONS(4662),
    [sym_package] = ACTIONS(4662),
    [sym_pragma] = ACTIONS(4662),
    [sym_private] = ACTIONS(4662),
    [sym_protected] = ACTIONS(4662),
    [sym_public] = ACTIONS(4662),
    [sym_pure] = ACTIONS(4662),
    [sym_ref] = ACTIONS(4662),
    [sym_return] = ACTIONS(4662),
    [sym_scope] = ACTIONS(4662),
    [sym_shared] = ACTIONS(4662),
    [sym_static] = ACTIONS(4662),
    [sym_struct] = ACTIONS(4662),
    [sym_switch] = ACTIONS(4662),
    [sym_synchronized] = ACTIONS(4662),
    [sym_template] = ACTIONS(4662),
    [sym_throw] = ACTIONS(4662),
    [sym_try] = ACTIONS(4662),
    [sym_typeid] = ACTIONS(4662),
    [sym_typeof] = ACTIONS(4662),
    [sym_union] = ACTIONS(4662),
    [sym_unittest] = ACTIONS(4662),
    [sym_version] = ACTIONS(4662),
    [sym_while] = ACTIONS(4662),
    [sym_with] = ACTIONS(4662),
    [sym_gshared] = ACTIONS(4662),
    [sym_traits] = ACTIONS(4662),
    [sym_vector] = ACTIONS(4662),
    [sym_void] = ACTIONS(4662),
    [anon_sym_BQUOTE] = ACTIONS(4664),
    [anon_sym_r_DQUOTE] = ACTIONS(4664),
    [anon_sym_x_DQUOTE] = ACTIONS(4664),
    [anon_sym_DQUOTE] = ACTIONS(4664),
    [anon_sym_i_BQUOTE] = ACTIONS(4664),
    [anon_sym_i_DQUOTE] = ACTIONS(4664),
    [anon_sym_iq_LBRACE] = ACTIONS(4664),
    [aux_sym_char_literal_token1] = ACTIONS(4664),
    [anon_sym_SQUOTE] = ACTIONS(4662),
    [anon_sym___DATE__] = ACTIONS(4662),
    [anon_sym___FILE__] = ACTIONS(4662),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4662),
    [anon_sym___FUNCTION__] = ACTIONS(4662),
    [anon_sym___LINE__] = ACTIONS(4662),
    [anon_sym___MODULE__] = ACTIONS(4662),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4662),
    [anon_sym___TIME__] = ACTIONS(4662),
    [anon_sym___TIMESTAMP__] = ACTIONS(4662),
    [anon_sym___VENDOR__] = ACTIONS(4662),
    [anon_sym___VERSION__] = ACTIONS(4662),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4664),
    [sym_float_literal] = ACTIONS(4664),
    [sym__string] = ACTIONS(4664),
  },
  [1447] = {
    [sym_identifier] = ACTIONS(4666),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4668),
    [anon_sym_RBRACE] = ACTIONS(4668),
    [anon_sym_LBRACE] = ACTIONS(4668),
    [anon_sym_DOT] = ACTIONS(4668),
    [anon_sym_AMP] = ACTIONS(4668),
    [anon_sym_DASH] = ACTIONS(4666),
    [anon_sym_DASH_DASH] = ACTIONS(4668),
    [anon_sym_PLUS] = ACTIONS(4666),
    [anon_sym_PLUS_PLUS] = ACTIONS(4668),
    [anon_sym_BANG] = ACTIONS(4668),
    [anon_sym_LPAREN] = ACTIONS(4668),
    [anon_sym_RPAREN] = ACTIONS(4668),
    [anon_sym_LBRACK] = ACTIONS(4668),
    [anon_sym_SEMI] = ACTIONS(4668),
    [anon_sym_DOLLAR] = ACTIONS(4668),
    [anon_sym_STAR] = ACTIONS(4668),
    [anon_sym_TILDE] = ACTIONS(4668),
    [anon_sym_AT] = ACTIONS(4668),
    [sym_bool] = ACTIONS(4666),
    [sym_byte] = ACTIONS(4666),
    [sym_ubyte] = ACTIONS(4666),
    [sym_char] = ACTIONS(4666),
    [sym_short] = ACTIONS(4666),
    [sym_ushort] = ACTIONS(4666),
    [sym_int] = ACTIONS(4666),
    [sym_uint] = ACTIONS(4666),
    [sym_long] = ACTIONS(4666),
    [sym_ulong] = ACTIONS(4666),
    [sym_cent] = ACTIONS(4666),
    [sym_ucent] = ACTIONS(4666),
    [sym_wchar] = ACTIONS(4666),
    [sym_dchar] = ACTIONS(4666),
    [sym_float] = ACTIONS(4666),
    [sym_double] = ACTIONS(4666),
    [sym_real] = ACTIONS(4666),
    [sym_ifloat] = ACTIONS(4666),
    [sym_idouble] = ACTIONS(4666),
    [sym_ireal] = ACTIONS(4666),
    [sym_cfloat] = ACTIONS(4666),
    [sym_cdouble] = ACTIONS(4666),
    [sym_creal] = ACTIONS(4666),
    [sym_size_t] = ACTIONS(4666),
    [sym_ptrdiff_t] = ACTIONS(4666),
    [sym_string] = ACTIONS(4666),
    [sym_cstring] = ACTIONS(4666),
    [sym_dstring] = ACTIONS(4666),
    [sym_wstring] = ACTIONS(4666),
    [sym_noreturn] = ACTIONS(4666),
    [sym_true] = ACTIONS(4666),
    [sym_false] = ACTIONS(4666),
    [sym_null] = ACTIONS(4666),
    [sym_super] = ACTIONS(4666),
    [sym_this] = ACTIONS(4666),
    [sym_abstract] = ACTIONS(4666),
    [sym_alias] = ACTIONS(4666),
    [sym_align] = ACTIONS(4666),
    [sym_asm] = ACTIONS(4666),
    [sym_assert] = ACTIONS(4666),
    [sym_auto] = ACTIONS(4666),
    [sym_break] = ACTIONS(4666),
    [sym_case] = ACTIONS(4666),
    [sym_cast] = ACTIONS(4666),
    [sym_catch] = ACTIONS(4666),
    [sym_class] = ACTIONS(4666),
    [sym_const] = ACTIONS(4666),
    [sym_continue] = ACTIONS(4666),
    [sym_debug] = ACTIONS(4666),
    [sym_default] = ACTIONS(4666),
    [sym_delegate] = ACTIONS(4666),
    [sym_delete] = ACTIONS(4666),
    [sym_deprecated] = ACTIONS(4666),
    [sym_do] = ACTIONS(4666),
    [sym_else] = ACTIONS(4666),
    [sym_enum] = ACTIONS(4666),
    [sym_export] = ACTIONS(4666),
    [sym_extern] = ACTIONS(4666),
    [sym_final] = ACTIONS(4666),
    [sym_finally] = ACTIONS(4666),
    [sym_for] = ACTIONS(4666),
    [sym_foreach] = ACTIONS(4666),
    [sym_foreach_reverse] = ACTIONS(4666),
    [sym_function] = ACTIONS(4666),
    [sym_goto] = ACTIONS(4666),
    [sym_if] = ACTIONS(4666),
    [sym_immutable] = ACTIONS(4666),
    [sym_import] = ACTIONS(4666),
    [sym_in] = ACTIONS(4666),
    [sym_inout] = ACTIONS(4666),
    [sym_interface] = ACTIONS(4666),
    [sym_invariant] = ACTIONS(4666),
    [sym_is] = ACTIONS(4666),
    [sym_mixin] = ACTIONS(4666),
    [sym_new] = ACTIONS(4666),
    [sym_nothrow] = ACTIONS(4666),
    [sym_out] = ACTIONS(4666),
    [sym_override] = ACTIONS(4666),
    [sym_package] = ACTIONS(4666),
    [sym_pragma] = ACTIONS(4666),
    [sym_private] = ACTIONS(4666),
    [sym_protected] = ACTIONS(4666),
    [sym_public] = ACTIONS(4666),
    [sym_pure] = ACTIONS(4666),
    [sym_ref] = ACTIONS(4666),
    [sym_return] = ACTIONS(4666),
    [sym_scope] = ACTIONS(4666),
    [sym_shared] = ACTIONS(4666),
    [sym_static] = ACTIONS(4666),
    [sym_struct] = ACTIONS(4666),
    [sym_switch] = ACTIONS(4666),
    [sym_synchronized] = ACTIONS(4666),
    [sym_template] = ACTIONS(4666),
    [sym_throw] = ACTIONS(4666),
    [sym_try] = ACTIONS(4666),
    [sym_typeid] = ACTIONS(4666),
    [sym_typeof] = ACTIONS(4666),
    [sym_union] = ACTIONS(4666),
    [sym_unittest] = ACTIONS(4666),
    [sym_version] = ACTIONS(4666),
    [sym_while] = ACTIONS(4666),
    [sym_with] = ACTIONS(4666),
    [sym_gshared] = ACTIONS(4666),
    [sym_traits] = ACTIONS(4666),
    [sym_vector] = ACTIONS(4666),
    [sym_void] = ACTIONS(4666),
    [anon_sym_BQUOTE] = ACTIONS(4668),
    [anon_sym_r_DQUOTE] = ACTIONS(4668),
    [anon_sym_x_DQUOTE] = ACTIONS(4668),
    [anon_sym_DQUOTE] = ACTIONS(4668),
    [anon_sym_i_BQUOTE] = ACTIONS(4668),
    [anon_sym_i_DQUOTE] = ACTIONS(4668),
    [anon_sym_iq_LBRACE] = ACTIONS(4668),
    [aux_sym_char_literal_token1] = ACTIONS(4668),
    [anon_sym_SQUOTE] = ACTIONS(4666),
    [anon_sym___DATE__] = ACTIONS(4666),
    [anon_sym___FILE__] = ACTIONS(4666),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4666),
    [anon_sym___FUNCTION__] = ACTIONS(4666),
    [anon_sym___LINE__] = ACTIONS(4666),
    [anon_sym___MODULE__] = ACTIONS(4666),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4666),
    [anon_sym___TIME__] = ACTIONS(4666),
    [anon_sym___TIMESTAMP__] = ACTIONS(4666),
    [anon_sym___VENDOR__] = ACTIONS(4666),
    [anon_sym___VERSION__] = ACTIONS(4666),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4668),
    [sym_float_literal] = ACTIONS(4668),
    [sym__string] = ACTIONS(4668),
  },
  [1448] = {
    [sym_identifier] = ACTIONS(4670),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4672),
    [anon_sym_RBRACE] = ACTIONS(4672),
    [anon_sym_LBRACE] = ACTIONS(4672),
    [anon_sym_DOT] = ACTIONS(4672),
    [anon_sym_AMP] = ACTIONS(4672),
    [anon_sym_DASH] = ACTIONS(4670),
    [anon_sym_DASH_DASH] = ACTIONS(4672),
    [anon_sym_PLUS] = ACTIONS(4670),
    [anon_sym_PLUS_PLUS] = ACTIONS(4672),
    [anon_sym_BANG] = ACTIONS(4672),
    [anon_sym_LPAREN] = ACTIONS(4672),
    [anon_sym_RPAREN] = ACTIONS(4672),
    [anon_sym_LBRACK] = ACTIONS(4672),
    [anon_sym_SEMI] = ACTIONS(4672),
    [anon_sym_DOLLAR] = ACTIONS(4672),
    [anon_sym_STAR] = ACTIONS(4672),
    [anon_sym_TILDE] = ACTIONS(4672),
    [anon_sym_AT] = ACTIONS(4672),
    [sym_bool] = ACTIONS(4670),
    [sym_byte] = ACTIONS(4670),
    [sym_ubyte] = ACTIONS(4670),
    [sym_char] = ACTIONS(4670),
    [sym_short] = ACTIONS(4670),
    [sym_ushort] = ACTIONS(4670),
    [sym_int] = ACTIONS(4670),
    [sym_uint] = ACTIONS(4670),
    [sym_long] = ACTIONS(4670),
    [sym_ulong] = ACTIONS(4670),
    [sym_cent] = ACTIONS(4670),
    [sym_ucent] = ACTIONS(4670),
    [sym_wchar] = ACTIONS(4670),
    [sym_dchar] = ACTIONS(4670),
    [sym_float] = ACTIONS(4670),
    [sym_double] = ACTIONS(4670),
    [sym_real] = ACTIONS(4670),
    [sym_ifloat] = ACTIONS(4670),
    [sym_idouble] = ACTIONS(4670),
    [sym_ireal] = ACTIONS(4670),
    [sym_cfloat] = ACTIONS(4670),
    [sym_cdouble] = ACTIONS(4670),
    [sym_creal] = ACTIONS(4670),
    [sym_size_t] = ACTIONS(4670),
    [sym_ptrdiff_t] = ACTIONS(4670),
    [sym_string] = ACTIONS(4670),
    [sym_cstring] = ACTIONS(4670),
    [sym_dstring] = ACTIONS(4670),
    [sym_wstring] = ACTIONS(4670),
    [sym_noreturn] = ACTIONS(4670),
    [sym_true] = ACTIONS(4670),
    [sym_false] = ACTIONS(4670),
    [sym_null] = ACTIONS(4670),
    [sym_super] = ACTIONS(4670),
    [sym_this] = ACTIONS(4670),
    [sym_abstract] = ACTIONS(4670),
    [sym_alias] = ACTIONS(4670),
    [sym_align] = ACTIONS(4670),
    [sym_asm] = ACTIONS(4670),
    [sym_assert] = ACTIONS(4670),
    [sym_auto] = ACTIONS(4670),
    [sym_break] = ACTIONS(4670),
    [sym_case] = ACTIONS(4670),
    [sym_cast] = ACTIONS(4670),
    [sym_catch] = ACTIONS(4670),
    [sym_class] = ACTIONS(4670),
    [sym_const] = ACTIONS(4670),
    [sym_continue] = ACTIONS(4670),
    [sym_debug] = ACTIONS(4670),
    [sym_default] = ACTIONS(4670),
    [sym_delegate] = ACTIONS(4670),
    [sym_delete] = ACTIONS(4670),
    [sym_deprecated] = ACTIONS(4670),
    [sym_do] = ACTIONS(4670),
    [sym_else] = ACTIONS(4670),
    [sym_enum] = ACTIONS(4670),
    [sym_export] = ACTIONS(4670),
    [sym_extern] = ACTIONS(4670),
    [sym_final] = ACTIONS(4670),
    [sym_finally] = ACTIONS(4670),
    [sym_for] = ACTIONS(4670),
    [sym_foreach] = ACTIONS(4670),
    [sym_foreach_reverse] = ACTIONS(4670),
    [sym_function] = ACTIONS(4670),
    [sym_goto] = ACTIONS(4670),
    [sym_if] = ACTIONS(4670),
    [sym_immutable] = ACTIONS(4670),
    [sym_import] = ACTIONS(4670),
    [sym_in] = ACTIONS(4670),
    [sym_inout] = ACTIONS(4670),
    [sym_interface] = ACTIONS(4670),
    [sym_invariant] = ACTIONS(4670),
    [sym_is] = ACTIONS(4670),
    [sym_mixin] = ACTIONS(4670),
    [sym_new] = ACTIONS(4670),
    [sym_nothrow] = ACTIONS(4670),
    [sym_out] = ACTIONS(4670),
    [sym_override] = ACTIONS(4670),
    [sym_package] = ACTIONS(4670),
    [sym_pragma] = ACTIONS(4670),
    [sym_private] = ACTIONS(4670),
    [sym_protected] = ACTIONS(4670),
    [sym_public] = ACTIONS(4670),
    [sym_pure] = ACTIONS(4670),
    [sym_ref] = ACTIONS(4670),
    [sym_return] = ACTIONS(4670),
    [sym_scope] = ACTIONS(4670),
    [sym_shared] = ACTIONS(4670),
    [sym_static] = ACTIONS(4670),
    [sym_struct] = ACTIONS(4670),
    [sym_switch] = ACTIONS(4670),
    [sym_synchronized] = ACTIONS(4670),
    [sym_template] = ACTIONS(4670),
    [sym_throw] = ACTIONS(4670),
    [sym_try] = ACTIONS(4670),
    [sym_typeid] = ACTIONS(4670),
    [sym_typeof] = ACTIONS(4670),
    [sym_union] = ACTIONS(4670),
    [sym_unittest] = ACTIONS(4670),
    [sym_version] = ACTIONS(4670),
    [sym_while] = ACTIONS(4670),
    [sym_with] = ACTIONS(4670),
    [sym_gshared] = ACTIONS(4670),
    [sym_traits] = ACTIONS(4670),
    [sym_vector] = ACTIONS(4670),
    [sym_void] = ACTIONS(4670),
    [anon_sym_BQUOTE] = ACTIONS(4672),
    [anon_sym_r_DQUOTE] = ACTIONS(4672),
    [anon_sym_x_DQUOTE] = ACTIONS(4672),
    [anon_sym_DQUOTE] = ACTIONS(4672),
    [anon_sym_i_BQUOTE] = ACTIONS(4672),
    [anon_sym_i_DQUOTE] = ACTIONS(4672),
    [anon_sym_iq_LBRACE] = ACTIONS(4672),
    [aux_sym_char_literal_token1] = ACTIONS(4672),
    [anon_sym_SQUOTE] = ACTIONS(4670),
    [anon_sym___DATE__] = ACTIONS(4670),
    [anon_sym___FILE__] = ACTIONS(4670),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4670),
    [anon_sym___FUNCTION__] = ACTIONS(4670),
    [anon_sym___LINE__] = ACTIONS(4670),
    [anon_sym___MODULE__] = ACTIONS(4670),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4670),
    [anon_sym___TIME__] = ACTIONS(4670),
    [anon_sym___TIMESTAMP__] = ACTIONS(4670),
    [anon_sym___VENDOR__] = ACTIONS(4670),
    [anon_sym___VERSION__] = ACTIONS(4670),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4672),
    [sym_float_literal] = ACTIONS(4672),
    [sym__string] = ACTIONS(4672),
  },
  [1449] = {
    [sym_identifier] = ACTIONS(4674),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4676),
    [anon_sym_RBRACE] = ACTIONS(4676),
    [anon_sym_LBRACE] = ACTIONS(4676),
    [anon_sym_DOT] = ACTIONS(4676),
    [anon_sym_AMP] = ACTIONS(4676),
    [anon_sym_DASH] = ACTIONS(4674),
    [anon_sym_DASH_DASH] = ACTIONS(4676),
    [anon_sym_PLUS] = ACTIONS(4674),
    [anon_sym_PLUS_PLUS] = ACTIONS(4676),
    [anon_sym_BANG] = ACTIONS(4676),
    [anon_sym_LPAREN] = ACTIONS(4676),
    [anon_sym_RPAREN] = ACTIONS(4676),
    [anon_sym_LBRACK] = ACTIONS(4676),
    [anon_sym_SEMI] = ACTIONS(4676),
    [anon_sym_DOLLAR] = ACTIONS(4676),
    [anon_sym_STAR] = ACTIONS(4676),
    [anon_sym_TILDE] = ACTIONS(4676),
    [anon_sym_AT] = ACTIONS(4676),
    [sym_bool] = ACTIONS(4674),
    [sym_byte] = ACTIONS(4674),
    [sym_ubyte] = ACTIONS(4674),
    [sym_char] = ACTIONS(4674),
    [sym_short] = ACTIONS(4674),
    [sym_ushort] = ACTIONS(4674),
    [sym_int] = ACTIONS(4674),
    [sym_uint] = ACTIONS(4674),
    [sym_long] = ACTIONS(4674),
    [sym_ulong] = ACTIONS(4674),
    [sym_cent] = ACTIONS(4674),
    [sym_ucent] = ACTIONS(4674),
    [sym_wchar] = ACTIONS(4674),
    [sym_dchar] = ACTIONS(4674),
    [sym_float] = ACTIONS(4674),
    [sym_double] = ACTIONS(4674),
    [sym_real] = ACTIONS(4674),
    [sym_ifloat] = ACTIONS(4674),
    [sym_idouble] = ACTIONS(4674),
    [sym_ireal] = ACTIONS(4674),
    [sym_cfloat] = ACTIONS(4674),
    [sym_cdouble] = ACTIONS(4674),
    [sym_creal] = ACTIONS(4674),
    [sym_size_t] = ACTIONS(4674),
    [sym_ptrdiff_t] = ACTIONS(4674),
    [sym_string] = ACTIONS(4674),
    [sym_cstring] = ACTIONS(4674),
    [sym_dstring] = ACTIONS(4674),
    [sym_wstring] = ACTIONS(4674),
    [sym_noreturn] = ACTIONS(4674),
    [sym_true] = ACTIONS(4674),
    [sym_false] = ACTIONS(4674),
    [sym_null] = ACTIONS(4674),
    [sym_super] = ACTIONS(4674),
    [sym_this] = ACTIONS(4674),
    [sym_abstract] = ACTIONS(4674),
    [sym_alias] = ACTIONS(4674),
    [sym_align] = ACTIONS(4674),
    [sym_asm] = ACTIONS(4674),
    [sym_assert] = ACTIONS(4674),
    [sym_auto] = ACTIONS(4674),
    [sym_break] = ACTIONS(4674),
    [sym_case] = ACTIONS(4674),
    [sym_cast] = ACTIONS(4674),
    [sym_catch] = ACTIONS(4674),
    [sym_class] = ACTIONS(4674),
    [sym_const] = ACTIONS(4674),
    [sym_continue] = ACTIONS(4674),
    [sym_debug] = ACTIONS(4674),
    [sym_default] = ACTIONS(4674),
    [sym_delegate] = ACTIONS(4674),
    [sym_delete] = ACTIONS(4674),
    [sym_deprecated] = ACTIONS(4674),
    [sym_do] = ACTIONS(4674),
    [sym_else] = ACTIONS(4674),
    [sym_enum] = ACTIONS(4674),
    [sym_export] = ACTIONS(4674),
    [sym_extern] = ACTIONS(4674),
    [sym_final] = ACTIONS(4674),
    [sym_finally] = ACTIONS(4674),
    [sym_for] = ACTIONS(4674),
    [sym_foreach] = ACTIONS(4674),
    [sym_foreach_reverse] = ACTIONS(4674),
    [sym_function] = ACTIONS(4674),
    [sym_goto] = ACTIONS(4674),
    [sym_if] = ACTIONS(4674),
    [sym_immutable] = ACTIONS(4674),
    [sym_import] = ACTIONS(4674),
    [sym_in] = ACTIONS(4674),
    [sym_inout] = ACTIONS(4674),
    [sym_interface] = ACTIONS(4674),
    [sym_invariant] = ACTIONS(4674),
    [sym_is] = ACTIONS(4674),
    [sym_mixin] = ACTIONS(4674),
    [sym_new] = ACTIONS(4674),
    [sym_nothrow] = ACTIONS(4674),
    [sym_out] = ACTIONS(4674),
    [sym_override] = ACTIONS(4674),
    [sym_package] = ACTIONS(4674),
    [sym_pragma] = ACTIONS(4674),
    [sym_private] = ACTIONS(4674),
    [sym_protected] = ACTIONS(4674),
    [sym_public] = ACTIONS(4674),
    [sym_pure] = ACTIONS(4674),
    [sym_ref] = ACTIONS(4674),
    [sym_return] = ACTIONS(4674),
    [sym_scope] = ACTIONS(4674),
    [sym_shared] = ACTIONS(4674),
    [sym_static] = ACTIONS(4674),
    [sym_struct] = ACTIONS(4674),
    [sym_switch] = ACTIONS(4674),
    [sym_synchronized] = ACTIONS(4674),
    [sym_template] = ACTIONS(4674),
    [sym_throw] = ACTIONS(4674),
    [sym_try] = ACTIONS(4674),
    [sym_typeid] = ACTIONS(4674),
    [sym_typeof] = ACTIONS(4674),
    [sym_union] = ACTIONS(4674),
    [sym_unittest] = ACTIONS(4674),
    [sym_version] = ACTIONS(4674),
    [sym_while] = ACTIONS(4674),
    [sym_with] = ACTIONS(4674),
    [sym_gshared] = ACTIONS(4674),
    [sym_traits] = ACTIONS(4674),
    [sym_vector] = ACTIONS(4674),
    [sym_void] = ACTIONS(4674),
    [anon_sym_BQUOTE] = ACTIONS(4676),
    [anon_sym_r_DQUOTE] = ACTIONS(4676),
    [anon_sym_x_DQUOTE] = ACTIONS(4676),
    [anon_sym_DQUOTE] = ACTIONS(4676),
    [anon_sym_i_BQUOTE] = ACTIONS(4676),
    [anon_sym_i_DQUOTE] = ACTIONS(4676),
    [anon_sym_iq_LBRACE] = ACTIONS(4676),
    [aux_sym_char_literal_token1] = ACTIONS(4676),
    [anon_sym_SQUOTE] = ACTIONS(4674),
    [anon_sym___DATE__] = ACTIONS(4674),
    [anon_sym___FILE__] = ACTIONS(4674),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4674),
    [anon_sym___FUNCTION__] = ACTIONS(4674),
    [anon_sym___LINE__] = ACTIONS(4674),
    [anon_sym___MODULE__] = ACTIONS(4674),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4674),
    [anon_sym___TIME__] = ACTIONS(4674),
    [anon_sym___TIMESTAMP__] = ACTIONS(4674),
    [anon_sym___VENDOR__] = ACTIONS(4674),
    [anon_sym___VERSION__] = ACTIONS(4674),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4676),
    [sym_float_literal] = ACTIONS(4676),
    [sym__string] = ACTIONS(4676),
  },
  [1450] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_RBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [anon_sym_AT] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_abstract] = ACTIONS(4365),
    [sym_alias] = ACTIONS(4365),
    [sym_align] = ACTIONS(4365),
    [sym_asm] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_break] = ACTIONS(4365),
    [sym_case] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_catch] = ACTIONS(4365),
    [sym_class] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_continue] = ACTIONS(4365),
    [sym_debug] = ACTIONS(4365),
    [sym_default] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_deprecated] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(4678),
    [sym_enum] = ACTIONS(4365),
    [sym_export] = ACTIONS(4365),
    [sym_extern] = ACTIONS(4365),
    [sym_final] = ACTIONS(4365),
    [sym_finally] = ACTIONS(4365),
    [sym_for] = ACTIONS(4365),
    [sym_foreach] = ACTIONS(4365),
    [sym_foreach_reverse] = ACTIONS(4365),
    [sym_function] = ACTIONS(4365),
    [sym_goto] = ACTIONS(4365),
    [sym_if] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_interface] = ACTIONS(4365),
    [sym_invariant] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_nothrow] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_override] = ACTIONS(4365),
    [sym_package] = ACTIONS(4365),
    [sym_pragma] = ACTIONS(4365),
    [sym_private] = ACTIONS(4365),
    [sym_protected] = ACTIONS(4365),
    [sym_public] = ACTIONS(4365),
    [sym_pure] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_return] = ACTIONS(4365),
    [sym_scope] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_static] = ACTIONS(4365),
    [sym_struct] = ACTIONS(4365),
    [sym_switch] = ACTIONS(4365),
    [sym_synchronized] = ACTIONS(4365),
    [sym_template] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_try] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_union] = ACTIONS(4365),
    [sym_unittest] = ACTIONS(4365),
    [sym_version] = ACTIONS(4365),
    [sym_while] = ACTIONS(4365),
    [sym_with] = ACTIONS(4365),
    [sym_gshared] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [1451] = {
    [sym_identifier] = ACTIONS(4682),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4684),
    [anon_sym_RBRACE] = ACTIONS(4684),
    [anon_sym_LBRACE] = ACTIONS(4684),
    [anon_sym_DOT] = ACTIONS(4684),
    [anon_sym_AMP] = ACTIONS(4684),
    [anon_sym_DASH] = ACTIONS(4682),
    [anon_sym_DASH_DASH] = ACTIONS(4684),
    [anon_sym_PLUS] = ACTIONS(4682),
    [anon_sym_PLUS_PLUS] = ACTIONS(4684),
    [anon_sym_BANG] = ACTIONS(4684),
    [anon_sym_LPAREN] = ACTIONS(4684),
    [anon_sym_RPAREN] = ACTIONS(4684),
    [anon_sym_LBRACK] = ACTIONS(4684),
    [anon_sym_SEMI] = ACTIONS(4684),
    [anon_sym_DOLLAR] = ACTIONS(4684),
    [anon_sym_STAR] = ACTIONS(4684),
    [anon_sym_TILDE] = ACTIONS(4684),
    [anon_sym_AT] = ACTIONS(4684),
    [sym_bool] = ACTIONS(4682),
    [sym_byte] = ACTIONS(4682),
    [sym_ubyte] = ACTIONS(4682),
    [sym_char] = ACTIONS(4682),
    [sym_short] = ACTIONS(4682),
    [sym_ushort] = ACTIONS(4682),
    [sym_int] = ACTIONS(4682),
    [sym_uint] = ACTIONS(4682),
    [sym_long] = ACTIONS(4682),
    [sym_ulong] = ACTIONS(4682),
    [sym_cent] = ACTIONS(4682),
    [sym_ucent] = ACTIONS(4682),
    [sym_wchar] = ACTIONS(4682),
    [sym_dchar] = ACTIONS(4682),
    [sym_float] = ACTIONS(4682),
    [sym_double] = ACTIONS(4682),
    [sym_real] = ACTIONS(4682),
    [sym_ifloat] = ACTIONS(4682),
    [sym_idouble] = ACTIONS(4682),
    [sym_ireal] = ACTIONS(4682),
    [sym_cfloat] = ACTIONS(4682),
    [sym_cdouble] = ACTIONS(4682),
    [sym_creal] = ACTIONS(4682),
    [sym_size_t] = ACTIONS(4682),
    [sym_ptrdiff_t] = ACTIONS(4682),
    [sym_string] = ACTIONS(4682),
    [sym_cstring] = ACTIONS(4682),
    [sym_dstring] = ACTIONS(4682),
    [sym_wstring] = ACTIONS(4682),
    [sym_noreturn] = ACTIONS(4682),
    [sym_true] = ACTIONS(4682),
    [sym_false] = ACTIONS(4682),
    [sym_null] = ACTIONS(4682),
    [sym_super] = ACTIONS(4682),
    [sym_this] = ACTIONS(4682),
    [sym_abstract] = ACTIONS(4682),
    [sym_alias] = ACTIONS(4682),
    [sym_align] = ACTIONS(4682),
    [sym_asm] = ACTIONS(4682),
    [sym_assert] = ACTIONS(4682),
    [sym_auto] = ACTIONS(4682),
    [sym_break] = ACTIONS(4682),
    [sym_case] = ACTIONS(4682),
    [sym_cast] = ACTIONS(4682),
    [sym_catch] = ACTIONS(4682),
    [sym_class] = ACTIONS(4682),
    [sym_const] = ACTIONS(4682),
    [sym_continue] = ACTIONS(4682),
    [sym_debug] = ACTIONS(4682),
    [sym_default] = ACTIONS(4682),
    [sym_delegate] = ACTIONS(4682),
    [sym_delete] = ACTIONS(4682),
    [sym_deprecated] = ACTIONS(4682),
    [sym_do] = ACTIONS(4682),
    [sym_else] = ACTIONS(4682),
    [sym_enum] = ACTIONS(4682),
    [sym_export] = ACTIONS(4682),
    [sym_extern] = ACTIONS(4682),
    [sym_final] = ACTIONS(4682),
    [sym_finally] = ACTIONS(4682),
    [sym_for] = ACTIONS(4682),
    [sym_foreach] = ACTIONS(4682),
    [sym_foreach_reverse] = ACTIONS(4682),
    [sym_function] = ACTIONS(4682),
    [sym_goto] = ACTIONS(4682),
    [sym_if] = ACTIONS(4682),
    [sym_immutable] = ACTIONS(4682),
    [sym_import] = ACTIONS(4682),
    [sym_in] = ACTIONS(4682),
    [sym_inout] = ACTIONS(4682),
    [sym_interface] = ACTIONS(4682),
    [sym_invariant] = ACTIONS(4682),
    [sym_is] = ACTIONS(4682),
    [sym_mixin] = ACTIONS(4682),
    [sym_new] = ACTIONS(4682),
    [sym_nothrow] = ACTIONS(4682),
    [sym_out] = ACTIONS(4682),
    [sym_override] = ACTIONS(4682),
    [sym_package] = ACTIONS(4682),
    [sym_pragma] = ACTIONS(4682),
    [sym_private] = ACTIONS(4682),
    [sym_protected] = ACTIONS(4682),
    [sym_public] = ACTIONS(4682),
    [sym_pure] = ACTIONS(4682),
    [sym_ref] = ACTIONS(4682),
    [sym_return] = ACTIONS(4682),
    [sym_scope] = ACTIONS(4682),
    [sym_shared] = ACTIONS(4682),
    [sym_static] = ACTIONS(4682),
    [sym_struct] = ACTIONS(4682),
    [sym_switch] = ACTIONS(4682),
    [sym_synchronized] = ACTIONS(4682),
    [sym_template] = ACTIONS(4682),
    [sym_throw] = ACTIONS(4682),
    [sym_try] = ACTIONS(4682),
    [sym_typeid] = ACTIONS(4682),
    [sym_typeof] = ACTIONS(4682),
    [sym_union] = ACTIONS(4682),
    [sym_unittest] = ACTIONS(4682),
    [sym_version] = ACTIONS(4682),
    [sym_while] = ACTIONS(4682),
    [sym_with] = ACTIONS(4682),
    [sym_gshared] = ACTIONS(4682),
    [sym_traits] = ACTIONS(4682),
    [sym_vector] = ACTIONS(4682),
    [sym_void] = ACTIONS(4682),
    [anon_sym_BQUOTE] = ACTIONS(4684),
    [anon_sym_r_DQUOTE] = ACTIONS(4684),
    [anon_sym_x_DQUOTE] = ACTIONS(4684),
    [anon_sym_DQUOTE] = ACTIONS(4684),
    [anon_sym_i_BQUOTE] = ACTIONS(4684),
    [anon_sym_i_DQUOTE] = ACTIONS(4684),
    [anon_sym_iq_LBRACE] = ACTIONS(4684),
    [aux_sym_char_literal_token1] = ACTIONS(4684),
    [anon_sym_SQUOTE] = ACTIONS(4682),
    [anon_sym___DATE__] = ACTIONS(4682),
    [anon_sym___FILE__] = ACTIONS(4682),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4682),
    [anon_sym___FUNCTION__] = ACTIONS(4682),
    [anon_sym___LINE__] = ACTIONS(4682),
    [anon_sym___MODULE__] = ACTIONS(4682),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4682),
    [anon_sym___TIME__] = ACTIONS(4682),
    [anon_sym___TIMESTAMP__] = ACTIONS(4682),
    [anon_sym___VENDOR__] = ACTIONS(4682),
    [anon_sym___VERSION__] = ACTIONS(4682),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4684),
    [sym_float_literal] = ACTIONS(4684),
    [sym__string] = ACTIONS(4684),
  },
  [1452] = {
    [sym_identifier] = ACTIONS(4686),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4688),
    [anon_sym_RBRACE] = ACTIONS(4688),
    [anon_sym_LBRACE] = ACTIONS(4688),
    [anon_sym_DOT] = ACTIONS(4688),
    [anon_sym_AMP] = ACTIONS(4688),
    [anon_sym_DASH] = ACTIONS(4686),
    [anon_sym_DASH_DASH] = ACTIONS(4688),
    [anon_sym_PLUS] = ACTIONS(4686),
    [anon_sym_PLUS_PLUS] = ACTIONS(4688),
    [anon_sym_BANG] = ACTIONS(4688),
    [anon_sym_LPAREN] = ACTIONS(4688),
    [anon_sym_RPAREN] = ACTIONS(4688),
    [anon_sym_LBRACK] = ACTIONS(4688),
    [anon_sym_SEMI] = ACTIONS(4688),
    [anon_sym_DOLLAR] = ACTIONS(4688),
    [anon_sym_STAR] = ACTIONS(4688),
    [anon_sym_TILDE] = ACTIONS(4688),
    [anon_sym_AT] = ACTIONS(4688),
    [sym_bool] = ACTIONS(4686),
    [sym_byte] = ACTIONS(4686),
    [sym_ubyte] = ACTIONS(4686),
    [sym_char] = ACTIONS(4686),
    [sym_short] = ACTIONS(4686),
    [sym_ushort] = ACTIONS(4686),
    [sym_int] = ACTIONS(4686),
    [sym_uint] = ACTIONS(4686),
    [sym_long] = ACTIONS(4686),
    [sym_ulong] = ACTIONS(4686),
    [sym_cent] = ACTIONS(4686),
    [sym_ucent] = ACTIONS(4686),
    [sym_wchar] = ACTIONS(4686),
    [sym_dchar] = ACTIONS(4686),
    [sym_float] = ACTIONS(4686),
    [sym_double] = ACTIONS(4686),
    [sym_real] = ACTIONS(4686),
    [sym_ifloat] = ACTIONS(4686),
    [sym_idouble] = ACTIONS(4686),
    [sym_ireal] = ACTIONS(4686),
    [sym_cfloat] = ACTIONS(4686),
    [sym_cdouble] = ACTIONS(4686),
    [sym_creal] = ACTIONS(4686),
    [sym_size_t] = ACTIONS(4686),
    [sym_ptrdiff_t] = ACTIONS(4686),
    [sym_string] = ACTIONS(4686),
    [sym_cstring] = ACTIONS(4686),
    [sym_dstring] = ACTIONS(4686),
    [sym_wstring] = ACTIONS(4686),
    [sym_noreturn] = ACTIONS(4686),
    [sym_true] = ACTIONS(4686),
    [sym_false] = ACTIONS(4686),
    [sym_null] = ACTIONS(4686),
    [sym_super] = ACTIONS(4686),
    [sym_this] = ACTIONS(4686),
    [sym_abstract] = ACTIONS(4686),
    [sym_alias] = ACTIONS(4686),
    [sym_align] = ACTIONS(4686),
    [sym_asm] = ACTIONS(4686),
    [sym_assert] = ACTIONS(4686),
    [sym_auto] = ACTIONS(4686),
    [sym_break] = ACTIONS(4686),
    [sym_case] = ACTIONS(4686),
    [sym_cast] = ACTIONS(4686),
    [sym_catch] = ACTIONS(4686),
    [sym_class] = ACTIONS(4686),
    [sym_const] = ACTIONS(4686),
    [sym_continue] = ACTIONS(4686),
    [sym_debug] = ACTIONS(4686),
    [sym_default] = ACTIONS(4686),
    [sym_delegate] = ACTIONS(4686),
    [sym_delete] = ACTIONS(4686),
    [sym_deprecated] = ACTIONS(4686),
    [sym_do] = ACTIONS(4686),
    [sym_else] = ACTIONS(4686),
    [sym_enum] = ACTIONS(4686),
    [sym_export] = ACTIONS(4686),
    [sym_extern] = ACTIONS(4686),
    [sym_final] = ACTIONS(4686),
    [sym_finally] = ACTIONS(4686),
    [sym_for] = ACTIONS(4686),
    [sym_foreach] = ACTIONS(4686),
    [sym_foreach_reverse] = ACTIONS(4686),
    [sym_function] = ACTIONS(4686),
    [sym_goto] = ACTIONS(4686),
    [sym_if] = ACTIONS(4686),
    [sym_immutable] = ACTIONS(4686),
    [sym_import] = ACTIONS(4686),
    [sym_in] = ACTIONS(4686),
    [sym_inout] = ACTIONS(4686),
    [sym_interface] = ACTIONS(4686),
    [sym_invariant] = ACTIONS(4686),
    [sym_is] = ACTIONS(4686),
    [sym_mixin] = ACTIONS(4686),
    [sym_new] = ACTIONS(4686),
    [sym_nothrow] = ACTIONS(4686),
    [sym_out] = ACTIONS(4686),
    [sym_override] = ACTIONS(4686),
    [sym_package] = ACTIONS(4686),
    [sym_pragma] = ACTIONS(4686),
    [sym_private] = ACTIONS(4686),
    [sym_protected] = ACTIONS(4686),
    [sym_public] = ACTIONS(4686),
    [sym_pure] = ACTIONS(4686),
    [sym_ref] = ACTIONS(4686),
    [sym_return] = ACTIONS(4686),
    [sym_scope] = ACTIONS(4686),
    [sym_shared] = ACTIONS(4686),
    [sym_static] = ACTIONS(4686),
    [sym_struct] = ACTIONS(4686),
    [sym_switch] = ACTIONS(4686),
    [sym_synchronized] = ACTIONS(4686),
    [sym_template] = ACTIONS(4686),
    [sym_throw] = ACTIONS(4686),
    [sym_try] = ACTIONS(4686),
    [sym_typeid] = ACTIONS(4686),
    [sym_typeof] = ACTIONS(4686),
    [sym_union] = ACTIONS(4686),
    [sym_unittest] = ACTIONS(4686),
    [sym_version] = ACTIONS(4686),
    [sym_while] = ACTIONS(4686),
    [sym_with] = ACTIONS(4686),
    [sym_gshared] = ACTIONS(4686),
    [sym_traits] = ACTIONS(4686),
    [sym_vector] = ACTIONS(4686),
    [sym_void] = ACTIONS(4686),
    [anon_sym_BQUOTE] = ACTIONS(4688),
    [anon_sym_r_DQUOTE] = ACTIONS(4688),
    [anon_sym_x_DQUOTE] = ACTIONS(4688),
    [anon_sym_DQUOTE] = ACTIONS(4688),
    [anon_sym_i_BQUOTE] = ACTIONS(4688),
    [anon_sym_i_DQUOTE] = ACTIONS(4688),
    [anon_sym_iq_LBRACE] = ACTIONS(4688),
    [aux_sym_char_literal_token1] = ACTIONS(4688),
    [anon_sym_SQUOTE] = ACTIONS(4686),
    [anon_sym___DATE__] = ACTIONS(4686),
    [anon_sym___FILE__] = ACTIONS(4686),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4686),
    [anon_sym___FUNCTION__] = ACTIONS(4686),
    [anon_sym___LINE__] = ACTIONS(4686),
    [anon_sym___MODULE__] = ACTIONS(4686),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4686),
    [anon_sym___TIME__] = ACTIONS(4686),
    [anon_sym___TIMESTAMP__] = ACTIONS(4686),
    [anon_sym___VENDOR__] = ACTIONS(4686),
    [anon_sym___VERSION__] = ACTIONS(4686),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4688),
    [sym_float_literal] = ACTIONS(4688),
    [sym__string] = ACTIONS(4688),
  },
  [1453] = {
    [sym_identifier] = ACTIONS(4690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4692),
    [anon_sym_RBRACE] = ACTIONS(4692),
    [anon_sym_LBRACE] = ACTIONS(4692),
    [anon_sym_DOT] = ACTIONS(4692),
    [anon_sym_AMP] = ACTIONS(4692),
    [anon_sym_DASH] = ACTIONS(4690),
    [anon_sym_DASH_DASH] = ACTIONS(4692),
    [anon_sym_PLUS] = ACTIONS(4690),
    [anon_sym_PLUS_PLUS] = ACTIONS(4692),
    [anon_sym_BANG] = ACTIONS(4692),
    [anon_sym_LPAREN] = ACTIONS(4692),
    [anon_sym_RPAREN] = ACTIONS(4692),
    [anon_sym_LBRACK] = ACTIONS(4692),
    [anon_sym_SEMI] = ACTIONS(4692),
    [anon_sym_DOLLAR] = ACTIONS(4692),
    [anon_sym_STAR] = ACTIONS(4692),
    [anon_sym_TILDE] = ACTIONS(4692),
    [anon_sym_AT] = ACTIONS(4692),
    [sym_bool] = ACTIONS(4690),
    [sym_byte] = ACTIONS(4690),
    [sym_ubyte] = ACTIONS(4690),
    [sym_char] = ACTIONS(4690),
    [sym_short] = ACTIONS(4690),
    [sym_ushort] = ACTIONS(4690),
    [sym_int] = ACTIONS(4690),
    [sym_uint] = ACTIONS(4690),
    [sym_long] = ACTIONS(4690),
    [sym_ulong] = ACTIONS(4690),
    [sym_cent] = ACTIONS(4690),
    [sym_ucent] = ACTIONS(4690),
    [sym_wchar] = ACTIONS(4690),
    [sym_dchar] = ACTIONS(4690),
    [sym_float] = ACTIONS(4690),
    [sym_double] = ACTIONS(4690),
    [sym_real] = ACTIONS(4690),
    [sym_ifloat] = ACTIONS(4690),
    [sym_idouble] = ACTIONS(4690),
    [sym_ireal] = ACTIONS(4690),
    [sym_cfloat] = ACTIONS(4690),
    [sym_cdouble] = ACTIONS(4690),
    [sym_creal] = ACTIONS(4690),
    [sym_size_t] = ACTIONS(4690),
    [sym_ptrdiff_t] = ACTIONS(4690),
    [sym_string] = ACTIONS(4690),
    [sym_cstring] = ACTIONS(4690),
    [sym_dstring] = ACTIONS(4690),
    [sym_wstring] = ACTIONS(4690),
    [sym_noreturn] = ACTIONS(4690),
    [sym_true] = ACTIONS(4690),
    [sym_false] = ACTIONS(4690),
    [sym_null] = ACTIONS(4690),
    [sym_super] = ACTIONS(4690),
    [sym_this] = ACTIONS(4690),
    [sym_abstract] = ACTIONS(4690),
    [sym_alias] = ACTIONS(4690),
    [sym_align] = ACTIONS(4690),
    [sym_asm] = ACTIONS(4690),
    [sym_assert] = ACTIONS(4690),
    [sym_auto] = ACTIONS(4690),
    [sym_break] = ACTIONS(4690),
    [sym_case] = ACTIONS(4690),
    [sym_cast] = ACTIONS(4690),
    [sym_catch] = ACTIONS(4690),
    [sym_class] = ACTIONS(4690),
    [sym_const] = ACTIONS(4690),
    [sym_continue] = ACTIONS(4690),
    [sym_debug] = ACTIONS(4690),
    [sym_default] = ACTIONS(4690),
    [sym_delegate] = ACTIONS(4690),
    [sym_delete] = ACTIONS(4690),
    [sym_deprecated] = ACTIONS(4690),
    [sym_do] = ACTIONS(4690),
    [sym_else] = ACTIONS(4690),
    [sym_enum] = ACTIONS(4690),
    [sym_export] = ACTIONS(4690),
    [sym_extern] = ACTIONS(4690),
    [sym_final] = ACTIONS(4690),
    [sym_finally] = ACTIONS(4690),
    [sym_for] = ACTIONS(4690),
    [sym_foreach] = ACTIONS(4690),
    [sym_foreach_reverse] = ACTIONS(4690),
    [sym_function] = ACTIONS(4690),
    [sym_goto] = ACTIONS(4690),
    [sym_if] = ACTIONS(4690),
    [sym_immutable] = ACTIONS(4690),
    [sym_import] = ACTIONS(4690),
    [sym_in] = ACTIONS(4690),
    [sym_inout] = ACTIONS(4690),
    [sym_interface] = ACTIONS(4690),
    [sym_invariant] = ACTIONS(4690),
    [sym_is] = ACTIONS(4690),
    [sym_mixin] = ACTIONS(4690),
    [sym_new] = ACTIONS(4690),
    [sym_nothrow] = ACTIONS(4690),
    [sym_out] = ACTIONS(4690),
    [sym_override] = ACTIONS(4690),
    [sym_package] = ACTIONS(4690),
    [sym_pragma] = ACTIONS(4690),
    [sym_private] = ACTIONS(4690),
    [sym_protected] = ACTIONS(4690),
    [sym_public] = ACTIONS(4690),
    [sym_pure] = ACTIONS(4690),
    [sym_ref] = ACTIONS(4690),
    [sym_return] = ACTIONS(4690),
    [sym_scope] = ACTIONS(4690),
    [sym_shared] = ACTIONS(4690),
    [sym_static] = ACTIONS(4690),
    [sym_struct] = ACTIONS(4690),
    [sym_switch] = ACTIONS(4690),
    [sym_synchronized] = ACTIONS(4690),
    [sym_template] = ACTIONS(4690),
    [sym_throw] = ACTIONS(4690),
    [sym_try] = ACTIONS(4690),
    [sym_typeid] = ACTIONS(4690),
    [sym_typeof] = ACTIONS(4690),
    [sym_union] = ACTIONS(4690),
    [sym_unittest] = ACTIONS(4690),
    [sym_version] = ACTIONS(4690),
    [sym_while] = ACTIONS(4690),
    [sym_with] = ACTIONS(4690),
    [sym_gshared] = ACTIONS(4690),
    [sym_traits] = ACTIONS(4690),
    [sym_vector] = ACTIONS(4690),
    [sym_void] = ACTIONS(4690),
    [anon_sym_BQUOTE] = ACTIONS(4692),
    [anon_sym_r_DQUOTE] = ACTIONS(4692),
    [anon_sym_x_DQUOTE] = ACTIONS(4692),
    [anon_sym_DQUOTE] = ACTIONS(4692),
    [anon_sym_i_BQUOTE] = ACTIONS(4692),
    [anon_sym_i_DQUOTE] = ACTIONS(4692),
    [anon_sym_iq_LBRACE] = ACTIONS(4692),
    [aux_sym_char_literal_token1] = ACTIONS(4692),
    [anon_sym_SQUOTE] = ACTIONS(4690),
    [anon_sym___DATE__] = ACTIONS(4690),
    [anon_sym___FILE__] = ACTIONS(4690),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4690),
    [anon_sym___FUNCTION__] = ACTIONS(4690),
    [anon_sym___LINE__] = ACTIONS(4690),
    [anon_sym___MODULE__] = ACTIONS(4690),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4690),
    [anon_sym___TIME__] = ACTIONS(4690),
    [anon_sym___TIMESTAMP__] = ACTIONS(4690),
    [anon_sym___VENDOR__] = ACTIONS(4690),
    [anon_sym___VERSION__] = ACTIONS(4690),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4692),
    [sym_float_literal] = ACTIONS(4692),
    [sym__string] = ACTIONS(4692),
  },
  [1454] = {
    [sym_identifier] = ACTIONS(4694),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4696),
    [anon_sym_RBRACE] = ACTIONS(4696),
    [anon_sym_LBRACE] = ACTIONS(4696),
    [anon_sym_DOT] = ACTIONS(4696),
    [anon_sym_AMP] = ACTIONS(4696),
    [anon_sym_DASH] = ACTIONS(4694),
    [anon_sym_DASH_DASH] = ACTIONS(4696),
    [anon_sym_PLUS] = ACTIONS(4694),
    [anon_sym_PLUS_PLUS] = ACTIONS(4696),
    [anon_sym_BANG] = ACTIONS(4696),
    [anon_sym_LPAREN] = ACTIONS(4696),
    [anon_sym_RPAREN] = ACTIONS(4696),
    [anon_sym_LBRACK] = ACTIONS(4696),
    [anon_sym_SEMI] = ACTIONS(4696),
    [anon_sym_DOLLAR] = ACTIONS(4696),
    [anon_sym_STAR] = ACTIONS(4696),
    [anon_sym_TILDE] = ACTIONS(4696),
    [anon_sym_AT] = ACTIONS(4696),
    [sym_bool] = ACTIONS(4694),
    [sym_byte] = ACTIONS(4694),
    [sym_ubyte] = ACTIONS(4694),
    [sym_char] = ACTIONS(4694),
    [sym_short] = ACTIONS(4694),
    [sym_ushort] = ACTIONS(4694),
    [sym_int] = ACTIONS(4694),
    [sym_uint] = ACTIONS(4694),
    [sym_long] = ACTIONS(4694),
    [sym_ulong] = ACTIONS(4694),
    [sym_cent] = ACTIONS(4694),
    [sym_ucent] = ACTIONS(4694),
    [sym_wchar] = ACTIONS(4694),
    [sym_dchar] = ACTIONS(4694),
    [sym_float] = ACTIONS(4694),
    [sym_double] = ACTIONS(4694),
    [sym_real] = ACTIONS(4694),
    [sym_ifloat] = ACTIONS(4694),
    [sym_idouble] = ACTIONS(4694),
    [sym_ireal] = ACTIONS(4694),
    [sym_cfloat] = ACTIONS(4694),
    [sym_cdouble] = ACTIONS(4694),
    [sym_creal] = ACTIONS(4694),
    [sym_size_t] = ACTIONS(4694),
    [sym_ptrdiff_t] = ACTIONS(4694),
    [sym_string] = ACTIONS(4694),
    [sym_cstring] = ACTIONS(4694),
    [sym_dstring] = ACTIONS(4694),
    [sym_wstring] = ACTIONS(4694),
    [sym_noreturn] = ACTIONS(4694),
    [sym_true] = ACTIONS(4694),
    [sym_false] = ACTIONS(4694),
    [sym_null] = ACTIONS(4694),
    [sym_super] = ACTIONS(4694),
    [sym_this] = ACTIONS(4694),
    [sym_abstract] = ACTIONS(4694),
    [sym_alias] = ACTIONS(4694),
    [sym_align] = ACTIONS(4694),
    [sym_asm] = ACTIONS(4694),
    [sym_assert] = ACTIONS(4694),
    [sym_auto] = ACTIONS(4694),
    [sym_break] = ACTIONS(4694),
    [sym_case] = ACTIONS(4694),
    [sym_cast] = ACTIONS(4694),
    [sym_catch] = ACTIONS(4694),
    [sym_class] = ACTIONS(4694),
    [sym_const] = ACTIONS(4694),
    [sym_continue] = ACTIONS(4694),
    [sym_debug] = ACTIONS(4694),
    [sym_default] = ACTIONS(4694),
    [sym_delegate] = ACTIONS(4694),
    [sym_delete] = ACTIONS(4694),
    [sym_deprecated] = ACTIONS(4694),
    [sym_do] = ACTIONS(4694),
    [sym_else] = ACTIONS(4694),
    [sym_enum] = ACTIONS(4694),
    [sym_export] = ACTIONS(4694),
    [sym_extern] = ACTIONS(4694),
    [sym_final] = ACTIONS(4694),
    [sym_finally] = ACTIONS(4694),
    [sym_for] = ACTIONS(4694),
    [sym_foreach] = ACTIONS(4694),
    [sym_foreach_reverse] = ACTIONS(4694),
    [sym_function] = ACTIONS(4694),
    [sym_goto] = ACTIONS(4694),
    [sym_if] = ACTIONS(4694),
    [sym_immutable] = ACTIONS(4694),
    [sym_import] = ACTIONS(4694),
    [sym_in] = ACTIONS(4694),
    [sym_inout] = ACTIONS(4694),
    [sym_interface] = ACTIONS(4694),
    [sym_invariant] = ACTIONS(4694),
    [sym_is] = ACTIONS(4694),
    [sym_mixin] = ACTIONS(4694),
    [sym_new] = ACTIONS(4694),
    [sym_nothrow] = ACTIONS(4694),
    [sym_out] = ACTIONS(4694),
    [sym_override] = ACTIONS(4694),
    [sym_package] = ACTIONS(4694),
    [sym_pragma] = ACTIONS(4694),
    [sym_private] = ACTIONS(4694),
    [sym_protected] = ACTIONS(4694),
    [sym_public] = ACTIONS(4694),
    [sym_pure] = ACTIONS(4694),
    [sym_ref] = ACTIONS(4694),
    [sym_return] = ACTIONS(4694),
    [sym_scope] = ACTIONS(4694),
    [sym_shared] = ACTIONS(4694),
    [sym_static] = ACTIONS(4694),
    [sym_struct] = ACTIONS(4694),
    [sym_switch] = ACTIONS(4694),
    [sym_synchronized] = ACTIONS(4694),
    [sym_template] = ACTIONS(4694),
    [sym_throw] = ACTIONS(4694),
    [sym_try] = ACTIONS(4694),
    [sym_typeid] = ACTIONS(4694),
    [sym_typeof] = ACTIONS(4694),
    [sym_union] = ACTIONS(4694),
    [sym_unittest] = ACTIONS(4694),
    [sym_version] = ACTIONS(4694),
    [sym_while] = ACTIONS(4694),
    [sym_with] = ACTIONS(4694),
    [sym_gshared] = ACTIONS(4694),
    [sym_traits] = ACTIONS(4694),
    [sym_vector] = ACTIONS(4694),
    [sym_void] = ACTIONS(4694),
    [anon_sym_BQUOTE] = ACTIONS(4696),
    [anon_sym_r_DQUOTE] = ACTIONS(4696),
    [anon_sym_x_DQUOTE] = ACTIONS(4696),
    [anon_sym_DQUOTE] = ACTIONS(4696),
    [anon_sym_i_BQUOTE] = ACTIONS(4696),
    [anon_sym_i_DQUOTE] = ACTIONS(4696),
    [anon_sym_iq_LBRACE] = ACTIONS(4696),
    [aux_sym_char_literal_token1] = ACTIONS(4696),
    [anon_sym_SQUOTE] = ACTIONS(4694),
    [anon_sym___DATE__] = ACTIONS(4694),
    [anon_sym___FILE__] = ACTIONS(4694),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4694),
    [anon_sym___FUNCTION__] = ACTIONS(4694),
    [anon_sym___LINE__] = ACTIONS(4694),
    [anon_sym___MODULE__] = ACTIONS(4694),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4694),
    [anon_sym___TIME__] = ACTIONS(4694),
    [anon_sym___TIMESTAMP__] = ACTIONS(4694),
    [anon_sym___VENDOR__] = ACTIONS(4694),
    [anon_sym___VERSION__] = ACTIONS(4694),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4696),
    [sym_float_literal] = ACTIONS(4696),
    [sym__string] = ACTIONS(4696),
  },
  [1455] = {
    [sym_identifier] = ACTIONS(4698),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4701),
    [anon_sym_RBRACE] = ACTIONS(4701),
    [anon_sym_LBRACE] = ACTIONS(4701),
    [anon_sym_DOT] = ACTIONS(4701),
    [anon_sym_AMP] = ACTIONS(4701),
    [anon_sym_DASH] = ACTIONS(4698),
    [anon_sym_DASH_DASH] = ACTIONS(4701),
    [anon_sym_PLUS] = ACTIONS(4698),
    [anon_sym_PLUS_PLUS] = ACTIONS(4701),
    [anon_sym_BANG] = ACTIONS(4701),
    [anon_sym_LPAREN] = ACTIONS(4701),
    [anon_sym_RPAREN] = ACTIONS(4701),
    [anon_sym_LBRACK] = ACTIONS(4701),
    [anon_sym_SEMI] = ACTIONS(4701),
    [anon_sym_DOLLAR] = ACTIONS(4701),
    [anon_sym_STAR] = ACTIONS(4701),
    [anon_sym_TILDE] = ACTIONS(4701),
    [anon_sym_AT] = ACTIONS(4701),
    [sym_bool] = ACTIONS(4698),
    [sym_byte] = ACTIONS(4698),
    [sym_ubyte] = ACTIONS(4698),
    [sym_char] = ACTIONS(4698),
    [sym_short] = ACTIONS(4698),
    [sym_ushort] = ACTIONS(4698),
    [sym_int] = ACTIONS(4698),
    [sym_uint] = ACTIONS(4698),
    [sym_long] = ACTIONS(4698),
    [sym_ulong] = ACTIONS(4698),
    [sym_cent] = ACTIONS(4698),
    [sym_ucent] = ACTIONS(4698),
    [sym_wchar] = ACTIONS(4698),
    [sym_dchar] = ACTIONS(4698),
    [sym_float] = ACTIONS(4698),
    [sym_double] = ACTIONS(4698),
    [sym_real] = ACTIONS(4698),
    [sym_ifloat] = ACTIONS(4698),
    [sym_idouble] = ACTIONS(4698),
    [sym_ireal] = ACTIONS(4698),
    [sym_cfloat] = ACTIONS(4698),
    [sym_cdouble] = ACTIONS(4698),
    [sym_creal] = ACTIONS(4698),
    [sym_size_t] = ACTIONS(4698),
    [sym_ptrdiff_t] = ACTIONS(4698),
    [sym_string] = ACTIONS(4698),
    [sym_cstring] = ACTIONS(4698),
    [sym_dstring] = ACTIONS(4698),
    [sym_wstring] = ACTIONS(4698),
    [sym_noreturn] = ACTIONS(4698),
    [sym_true] = ACTIONS(4698),
    [sym_false] = ACTIONS(4698),
    [sym_null] = ACTIONS(4698),
    [sym_super] = ACTIONS(4698),
    [sym_this] = ACTIONS(4698),
    [sym_abstract] = ACTIONS(4698),
    [sym_alias] = ACTIONS(4698),
    [sym_align] = ACTIONS(4698),
    [sym_asm] = ACTIONS(4698),
    [sym_assert] = ACTIONS(4698),
    [sym_auto] = ACTIONS(4698),
    [sym_break] = ACTIONS(4698),
    [sym_case] = ACTIONS(4698),
    [sym_cast] = ACTIONS(4698),
    [sym_catch] = ACTIONS(4698),
    [sym_class] = ACTIONS(4698),
    [sym_const] = ACTIONS(4698),
    [sym_continue] = ACTIONS(4698),
    [sym_debug] = ACTIONS(4698),
    [sym_default] = ACTIONS(4698),
    [sym_delegate] = ACTIONS(4698),
    [sym_delete] = ACTIONS(4698),
    [sym_deprecated] = ACTIONS(4698),
    [sym_do] = ACTIONS(4698),
    [sym_else] = ACTIONS(4698),
    [sym_enum] = ACTIONS(4698),
    [sym_export] = ACTIONS(4698),
    [sym_extern] = ACTIONS(4698),
    [sym_final] = ACTIONS(4698),
    [sym_finally] = ACTIONS(4698),
    [sym_for] = ACTIONS(4698),
    [sym_foreach] = ACTIONS(4698),
    [sym_foreach_reverse] = ACTIONS(4698),
    [sym_function] = ACTIONS(4698),
    [sym_goto] = ACTIONS(4698),
    [sym_if] = ACTIONS(4698),
    [sym_immutable] = ACTIONS(4698),
    [sym_import] = ACTIONS(4698),
    [sym_in] = ACTIONS(4698),
    [sym_inout] = ACTIONS(4698),
    [sym_interface] = ACTIONS(4698),
    [sym_invariant] = ACTIONS(4698),
    [sym_is] = ACTIONS(4698),
    [sym_mixin] = ACTIONS(4698),
    [sym_new] = ACTIONS(4698),
    [sym_nothrow] = ACTIONS(4698),
    [sym_out] = ACTIONS(4698),
    [sym_override] = ACTIONS(4698),
    [sym_package] = ACTIONS(4698),
    [sym_pragma] = ACTIONS(4698),
    [sym_private] = ACTIONS(4698),
    [sym_protected] = ACTIONS(4698),
    [sym_public] = ACTIONS(4698),
    [sym_pure] = ACTIONS(4698),
    [sym_ref] = ACTIONS(4698),
    [sym_return] = ACTIONS(4698),
    [sym_scope] = ACTIONS(4698),
    [sym_shared] = ACTIONS(4698),
    [sym_static] = ACTIONS(4698),
    [sym_struct] = ACTIONS(4698),
    [sym_switch] = ACTIONS(4698),
    [sym_synchronized] = ACTIONS(4698),
    [sym_template] = ACTIONS(4698),
    [sym_throw] = ACTIONS(4698),
    [sym_try] = ACTIONS(4698),
    [sym_typeid] = ACTIONS(4698),
    [sym_typeof] = ACTIONS(4698),
    [sym_union] = ACTIONS(4698),
    [sym_unittest] = ACTIONS(4698),
    [sym_version] = ACTIONS(4698),
    [sym_while] = ACTIONS(4698),
    [sym_with] = ACTIONS(4698),
    [sym_gshared] = ACTIONS(4698),
    [sym_traits] = ACTIONS(4698),
    [sym_vector] = ACTIONS(4698),
    [sym_void] = ACTIONS(4698),
    [anon_sym_BQUOTE] = ACTIONS(4701),
    [anon_sym_r_DQUOTE] = ACTIONS(4701),
    [anon_sym_x_DQUOTE] = ACTIONS(4701),
    [anon_sym_DQUOTE] = ACTIONS(4701),
    [anon_sym_i_BQUOTE] = ACTIONS(4701),
    [anon_sym_i_DQUOTE] = ACTIONS(4701),
    [anon_sym_iq_LBRACE] = ACTIONS(4701),
    [aux_sym_char_literal_token1] = ACTIONS(4701),
    [anon_sym_SQUOTE] = ACTIONS(4698),
    [anon_sym___DATE__] = ACTIONS(4698),
    [anon_sym___FILE__] = ACTIONS(4698),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4698),
    [anon_sym___FUNCTION__] = ACTIONS(4698),
    [anon_sym___LINE__] = ACTIONS(4698),
    [anon_sym___MODULE__] = ACTIONS(4698),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4698),
    [anon_sym___TIME__] = ACTIONS(4698),
    [anon_sym___TIMESTAMP__] = ACTIONS(4698),
    [anon_sym___VENDOR__] = ACTIONS(4698),
    [anon_sym___VERSION__] = ACTIONS(4698),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4701),
    [sym_float_literal] = ACTIONS(4701),
    [sym__string] = ACTIONS(4701),
  },
  [1456] = {
    [sym_identifier] = ACTIONS(4704),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4706),
    [anon_sym_RBRACE] = ACTIONS(4706),
    [anon_sym_LBRACE] = ACTIONS(4706),
    [anon_sym_DOT] = ACTIONS(4706),
    [anon_sym_AMP] = ACTIONS(4706),
    [anon_sym_DASH] = ACTIONS(4704),
    [anon_sym_DASH_DASH] = ACTIONS(4706),
    [anon_sym_PLUS] = ACTIONS(4704),
    [anon_sym_PLUS_PLUS] = ACTIONS(4706),
    [anon_sym_BANG] = ACTIONS(4706),
    [anon_sym_LPAREN] = ACTIONS(4706),
    [anon_sym_RPAREN] = ACTIONS(4706),
    [anon_sym_LBRACK] = ACTIONS(4706),
    [anon_sym_SEMI] = ACTIONS(4706),
    [anon_sym_DOLLAR] = ACTIONS(4706),
    [anon_sym_STAR] = ACTIONS(4706),
    [anon_sym_TILDE] = ACTIONS(4706),
    [anon_sym_AT] = ACTIONS(4706),
    [sym_bool] = ACTIONS(4704),
    [sym_byte] = ACTIONS(4704),
    [sym_ubyte] = ACTIONS(4704),
    [sym_char] = ACTIONS(4704),
    [sym_short] = ACTIONS(4704),
    [sym_ushort] = ACTIONS(4704),
    [sym_int] = ACTIONS(4704),
    [sym_uint] = ACTIONS(4704),
    [sym_long] = ACTIONS(4704),
    [sym_ulong] = ACTIONS(4704),
    [sym_cent] = ACTIONS(4704),
    [sym_ucent] = ACTIONS(4704),
    [sym_wchar] = ACTIONS(4704),
    [sym_dchar] = ACTIONS(4704),
    [sym_float] = ACTIONS(4704),
    [sym_double] = ACTIONS(4704),
    [sym_real] = ACTIONS(4704),
    [sym_ifloat] = ACTIONS(4704),
    [sym_idouble] = ACTIONS(4704),
    [sym_ireal] = ACTIONS(4704),
    [sym_cfloat] = ACTIONS(4704),
    [sym_cdouble] = ACTIONS(4704),
    [sym_creal] = ACTIONS(4704),
    [sym_size_t] = ACTIONS(4704),
    [sym_ptrdiff_t] = ACTIONS(4704),
    [sym_string] = ACTIONS(4704),
    [sym_cstring] = ACTIONS(4704),
    [sym_dstring] = ACTIONS(4704),
    [sym_wstring] = ACTIONS(4704),
    [sym_noreturn] = ACTIONS(4704),
    [sym_true] = ACTIONS(4704),
    [sym_false] = ACTIONS(4704),
    [sym_null] = ACTIONS(4704),
    [sym_super] = ACTIONS(4704),
    [sym_this] = ACTIONS(4704),
    [sym_abstract] = ACTIONS(4704),
    [sym_alias] = ACTIONS(4704),
    [sym_align] = ACTIONS(4704),
    [sym_asm] = ACTIONS(4704),
    [sym_assert] = ACTIONS(4704),
    [sym_auto] = ACTIONS(4704),
    [sym_break] = ACTIONS(4704),
    [sym_case] = ACTIONS(4704),
    [sym_cast] = ACTIONS(4704),
    [sym_catch] = ACTIONS(4704),
    [sym_class] = ACTIONS(4704),
    [sym_const] = ACTIONS(4704),
    [sym_continue] = ACTIONS(4704),
    [sym_debug] = ACTIONS(4704),
    [sym_default] = ACTIONS(4704),
    [sym_delegate] = ACTIONS(4704),
    [sym_delete] = ACTIONS(4704),
    [sym_deprecated] = ACTIONS(4704),
    [sym_do] = ACTIONS(4704),
    [sym_else] = ACTIONS(4704),
    [sym_enum] = ACTIONS(4704),
    [sym_export] = ACTIONS(4704),
    [sym_extern] = ACTIONS(4704),
    [sym_final] = ACTIONS(4704),
    [sym_finally] = ACTIONS(4704),
    [sym_for] = ACTIONS(4704),
    [sym_foreach] = ACTIONS(4704),
    [sym_foreach_reverse] = ACTIONS(4704),
    [sym_function] = ACTIONS(4704),
    [sym_goto] = ACTIONS(4704),
    [sym_if] = ACTIONS(4704),
    [sym_immutable] = ACTIONS(4704),
    [sym_import] = ACTIONS(4704),
    [sym_in] = ACTIONS(4704),
    [sym_inout] = ACTIONS(4704),
    [sym_interface] = ACTIONS(4704),
    [sym_invariant] = ACTIONS(4704),
    [sym_is] = ACTIONS(4704),
    [sym_mixin] = ACTIONS(4704),
    [sym_new] = ACTIONS(4704),
    [sym_nothrow] = ACTIONS(4704),
    [sym_out] = ACTIONS(4704),
    [sym_override] = ACTIONS(4704),
    [sym_package] = ACTIONS(4704),
    [sym_pragma] = ACTIONS(4704),
    [sym_private] = ACTIONS(4704),
    [sym_protected] = ACTIONS(4704),
    [sym_public] = ACTIONS(4704),
    [sym_pure] = ACTIONS(4704),
    [sym_ref] = ACTIONS(4704),
    [sym_return] = ACTIONS(4704),
    [sym_scope] = ACTIONS(4704),
    [sym_shared] = ACTIONS(4704),
    [sym_static] = ACTIONS(4704),
    [sym_struct] = ACTIONS(4704),
    [sym_switch] = ACTIONS(4704),
    [sym_synchronized] = ACTIONS(4704),
    [sym_template] = ACTIONS(4704),
    [sym_throw] = ACTIONS(4704),
    [sym_try] = ACTIONS(4704),
    [sym_typeid] = ACTIONS(4704),
    [sym_typeof] = ACTIONS(4704),
    [sym_union] = ACTIONS(4704),
    [sym_unittest] = ACTIONS(4704),
    [sym_version] = ACTIONS(4704),
    [sym_while] = ACTIONS(4704),
    [sym_with] = ACTIONS(4704),
    [sym_gshared] = ACTIONS(4704),
    [sym_traits] = ACTIONS(4704),
    [sym_vector] = ACTIONS(4704),
    [sym_void] = ACTIONS(4704),
    [anon_sym_BQUOTE] = ACTIONS(4706),
    [anon_sym_r_DQUOTE] = ACTIONS(4706),
    [anon_sym_x_DQUOTE] = ACTIONS(4706),
    [anon_sym_DQUOTE] = ACTIONS(4706),
    [anon_sym_i_BQUOTE] = ACTIONS(4706),
    [anon_sym_i_DQUOTE] = ACTIONS(4706),
    [anon_sym_iq_LBRACE] = ACTIONS(4706),
    [aux_sym_char_literal_token1] = ACTIONS(4706),
    [anon_sym_SQUOTE] = ACTIONS(4704),
    [anon_sym___DATE__] = ACTIONS(4704),
    [anon_sym___FILE__] = ACTIONS(4704),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4704),
    [anon_sym___FUNCTION__] = ACTIONS(4704),
    [anon_sym___LINE__] = ACTIONS(4704),
    [anon_sym___MODULE__] = ACTIONS(4704),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4704),
    [anon_sym___TIME__] = ACTIONS(4704),
    [anon_sym___TIMESTAMP__] = ACTIONS(4704),
    [anon_sym___VENDOR__] = ACTIONS(4704),
    [anon_sym___VERSION__] = ACTIONS(4704),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4706),
    [sym_float_literal] = ACTIONS(4706),
    [sym__string] = ACTIONS(4706),
  },
  [1457] = {
    [sym_identifier] = ACTIONS(4708),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4710),
    [anon_sym_RBRACE] = ACTIONS(4710),
    [anon_sym_LBRACE] = ACTIONS(4710),
    [anon_sym_DOT] = ACTIONS(4710),
    [anon_sym_AMP] = ACTIONS(4710),
    [anon_sym_DASH] = ACTIONS(4708),
    [anon_sym_DASH_DASH] = ACTIONS(4710),
    [anon_sym_PLUS] = ACTIONS(4708),
    [anon_sym_PLUS_PLUS] = ACTIONS(4710),
    [anon_sym_BANG] = ACTIONS(4710),
    [anon_sym_LPAREN] = ACTIONS(4710),
    [anon_sym_RPAREN] = ACTIONS(4710),
    [anon_sym_LBRACK] = ACTIONS(4710),
    [anon_sym_SEMI] = ACTIONS(4710),
    [anon_sym_DOLLAR] = ACTIONS(4710),
    [anon_sym_STAR] = ACTIONS(4710),
    [anon_sym_TILDE] = ACTIONS(4710),
    [anon_sym_AT] = ACTIONS(4710),
    [sym_bool] = ACTIONS(4708),
    [sym_byte] = ACTIONS(4708),
    [sym_ubyte] = ACTIONS(4708),
    [sym_char] = ACTIONS(4708),
    [sym_short] = ACTIONS(4708),
    [sym_ushort] = ACTIONS(4708),
    [sym_int] = ACTIONS(4708),
    [sym_uint] = ACTIONS(4708),
    [sym_long] = ACTIONS(4708),
    [sym_ulong] = ACTIONS(4708),
    [sym_cent] = ACTIONS(4708),
    [sym_ucent] = ACTIONS(4708),
    [sym_wchar] = ACTIONS(4708),
    [sym_dchar] = ACTIONS(4708),
    [sym_float] = ACTIONS(4708),
    [sym_double] = ACTIONS(4708),
    [sym_real] = ACTIONS(4708),
    [sym_ifloat] = ACTIONS(4708),
    [sym_idouble] = ACTIONS(4708),
    [sym_ireal] = ACTIONS(4708),
    [sym_cfloat] = ACTIONS(4708),
    [sym_cdouble] = ACTIONS(4708),
    [sym_creal] = ACTIONS(4708),
    [sym_size_t] = ACTIONS(4708),
    [sym_ptrdiff_t] = ACTIONS(4708),
    [sym_string] = ACTIONS(4708),
    [sym_cstring] = ACTIONS(4708),
    [sym_dstring] = ACTIONS(4708),
    [sym_wstring] = ACTIONS(4708),
    [sym_noreturn] = ACTIONS(4708),
    [sym_true] = ACTIONS(4708),
    [sym_false] = ACTIONS(4708),
    [sym_null] = ACTIONS(4708),
    [sym_super] = ACTIONS(4708),
    [sym_this] = ACTIONS(4708),
    [sym_abstract] = ACTIONS(4708),
    [sym_alias] = ACTIONS(4708),
    [sym_align] = ACTIONS(4708),
    [sym_asm] = ACTIONS(4708),
    [sym_assert] = ACTIONS(4708),
    [sym_auto] = ACTIONS(4708),
    [sym_break] = ACTIONS(4708),
    [sym_case] = ACTIONS(4708),
    [sym_cast] = ACTIONS(4708),
    [sym_catch] = ACTIONS(4708),
    [sym_class] = ACTIONS(4708),
    [sym_const] = ACTIONS(4708),
    [sym_continue] = ACTIONS(4708),
    [sym_debug] = ACTIONS(4708),
    [sym_default] = ACTIONS(4708),
    [sym_delegate] = ACTIONS(4708),
    [sym_delete] = ACTIONS(4708),
    [sym_deprecated] = ACTIONS(4708),
    [sym_do] = ACTIONS(4708),
    [sym_else] = ACTIONS(4708),
    [sym_enum] = ACTIONS(4708),
    [sym_export] = ACTIONS(4708),
    [sym_extern] = ACTIONS(4708),
    [sym_final] = ACTIONS(4708),
    [sym_finally] = ACTIONS(4708),
    [sym_for] = ACTIONS(4708),
    [sym_foreach] = ACTIONS(4708),
    [sym_foreach_reverse] = ACTIONS(4708),
    [sym_function] = ACTIONS(4708),
    [sym_goto] = ACTIONS(4708),
    [sym_if] = ACTIONS(4708),
    [sym_immutable] = ACTIONS(4708),
    [sym_import] = ACTIONS(4708),
    [sym_in] = ACTIONS(4708),
    [sym_inout] = ACTIONS(4708),
    [sym_interface] = ACTIONS(4708),
    [sym_invariant] = ACTIONS(4708),
    [sym_is] = ACTIONS(4708),
    [sym_mixin] = ACTIONS(4708),
    [sym_new] = ACTIONS(4708),
    [sym_nothrow] = ACTIONS(4708),
    [sym_out] = ACTIONS(4708),
    [sym_override] = ACTIONS(4708),
    [sym_package] = ACTIONS(4708),
    [sym_pragma] = ACTIONS(4708),
    [sym_private] = ACTIONS(4708),
    [sym_protected] = ACTIONS(4708),
    [sym_public] = ACTIONS(4708),
    [sym_pure] = ACTIONS(4708),
    [sym_ref] = ACTIONS(4708),
    [sym_return] = ACTIONS(4708),
    [sym_scope] = ACTIONS(4708),
    [sym_shared] = ACTIONS(4708),
    [sym_static] = ACTIONS(4708),
    [sym_struct] = ACTIONS(4708),
    [sym_switch] = ACTIONS(4708),
    [sym_synchronized] = ACTIONS(4708),
    [sym_template] = ACTIONS(4708),
    [sym_throw] = ACTIONS(4708),
    [sym_try] = ACTIONS(4708),
    [sym_typeid] = ACTIONS(4708),
    [sym_typeof] = ACTIONS(4708),
    [sym_union] = ACTIONS(4708),
    [sym_unittest] = ACTIONS(4708),
    [sym_version] = ACTIONS(4708),
    [sym_while] = ACTIONS(4708),
    [sym_with] = ACTIONS(4708),
    [sym_gshared] = ACTIONS(4708),
    [sym_traits] = ACTIONS(4708),
    [sym_vector] = ACTIONS(4708),
    [sym_void] = ACTIONS(4708),
    [anon_sym_BQUOTE] = ACTIONS(4710),
    [anon_sym_r_DQUOTE] = ACTIONS(4710),
    [anon_sym_x_DQUOTE] = ACTIONS(4710),
    [anon_sym_DQUOTE] = ACTIONS(4710),
    [anon_sym_i_BQUOTE] = ACTIONS(4710),
    [anon_sym_i_DQUOTE] = ACTIONS(4710),
    [anon_sym_iq_LBRACE] = ACTIONS(4710),
    [aux_sym_char_literal_token1] = ACTIONS(4710),
    [anon_sym_SQUOTE] = ACTIONS(4708),
    [anon_sym___DATE__] = ACTIONS(4708),
    [anon_sym___FILE__] = ACTIONS(4708),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4708),
    [anon_sym___FUNCTION__] = ACTIONS(4708),
    [anon_sym___LINE__] = ACTIONS(4708),
    [anon_sym___MODULE__] = ACTIONS(4708),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4708),
    [anon_sym___TIME__] = ACTIONS(4708),
    [anon_sym___TIMESTAMP__] = ACTIONS(4708),
    [anon_sym___VENDOR__] = ACTIONS(4708),
    [anon_sym___VERSION__] = ACTIONS(4708),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4710),
    [sym_float_literal] = ACTIONS(4710),
    [sym__string] = ACTIONS(4710),
  },
  [1458] = {
    [sym_identifier] = ACTIONS(4712),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4714),
    [anon_sym_RBRACE] = ACTIONS(4714),
    [anon_sym_LBRACE] = ACTIONS(4714),
    [anon_sym_DOT] = ACTIONS(4714),
    [anon_sym_AMP] = ACTIONS(4714),
    [anon_sym_DASH] = ACTIONS(4712),
    [anon_sym_DASH_DASH] = ACTIONS(4714),
    [anon_sym_PLUS] = ACTIONS(4712),
    [anon_sym_PLUS_PLUS] = ACTIONS(4714),
    [anon_sym_BANG] = ACTIONS(4714),
    [anon_sym_LPAREN] = ACTIONS(4714),
    [anon_sym_RPAREN] = ACTIONS(4714),
    [anon_sym_LBRACK] = ACTIONS(4714),
    [anon_sym_SEMI] = ACTIONS(4714),
    [anon_sym_DOLLAR] = ACTIONS(4714),
    [anon_sym_STAR] = ACTIONS(4714),
    [anon_sym_TILDE] = ACTIONS(4714),
    [anon_sym_AT] = ACTIONS(4714),
    [sym_bool] = ACTIONS(4712),
    [sym_byte] = ACTIONS(4712),
    [sym_ubyte] = ACTIONS(4712),
    [sym_char] = ACTIONS(4712),
    [sym_short] = ACTIONS(4712),
    [sym_ushort] = ACTIONS(4712),
    [sym_int] = ACTIONS(4712),
    [sym_uint] = ACTIONS(4712),
    [sym_long] = ACTIONS(4712),
    [sym_ulong] = ACTIONS(4712),
    [sym_cent] = ACTIONS(4712),
    [sym_ucent] = ACTIONS(4712),
    [sym_wchar] = ACTIONS(4712),
    [sym_dchar] = ACTIONS(4712),
    [sym_float] = ACTIONS(4712),
    [sym_double] = ACTIONS(4712),
    [sym_real] = ACTIONS(4712),
    [sym_ifloat] = ACTIONS(4712),
    [sym_idouble] = ACTIONS(4712),
    [sym_ireal] = ACTIONS(4712),
    [sym_cfloat] = ACTIONS(4712),
    [sym_cdouble] = ACTIONS(4712),
    [sym_creal] = ACTIONS(4712),
    [sym_size_t] = ACTIONS(4712),
    [sym_ptrdiff_t] = ACTIONS(4712),
    [sym_string] = ACTIONS(4712),
    [sym_cstring] = ACTIONS(4712),
    [sym_dstring] = ACTIONS(4712),
    [sym_wstring] = ACTIONS(4712),
    [sym_noreturn] = ACTIONS(4712),
    [sym_true] = ACTIONS(4712),
    [sym_false] = ACTIONS(4712),
    [sym_null] = ACTIONS(4712),
    [sym_super] = ACTIONS(4712),
    [sym_this] = ACTIONS(4712),
    [sym_abstract] = ACTIONS(4712),
    [sym_alias] = ACTIONS(4712),
    [sym_align] = ACTIONS(4712),
    [sym_asm] = ACTIONS(4712),
    [sym_assert] = ACTIONS(4712),
    [sym_auto] = ACTIONS(4712),
    [sym_break] = ACTIONS(4712),
    [sym_case] = ACTIONS(4712),
    [sym_cast] = ACTIONS(4712),
    [sym_catch] = ACTIONS(4712),
    [sym_class] = ACTIONS(4712),
    [sym_const] = ACTIONS(4712),
    [sym_continue] = ACTIONS(4712),
    [sym_debug] = ACTIONS(4712),
    [sym_default] = ACTIONS(4712),
    [sym_delegate] = ACTIONS(4712),
    [sym_delete] = ACTIONS(4712),
    [sym_deprecated] = ACTIONS(4712),
    [sym_do] = ACTIONS(4712),
    [sym_else] = ACTIONS(4712),
    [sym_enum] = ACTIONS(4712),
    [sym_export] = ACTIONS(4712),
    [sym_extern] = ACTIONS(4712),
    [sym_final] = ACTIONS(4712),
    [sym_finally] = ACTIONS(4712),
    [sym_for] = ACTIONS(4712),
    [sym_foreach] = ACTIONS(4712),
    [sym_foreach_reverse] = ACTIONS(4712),
    [sym_function] = ACTIONS(4712),
    [sym_goto] = ACTIONS(4712),
    [sym_if] = ACTIONS(4712),
    [sym_immutable] = ACTIONS(4712),
    [sym_import] = ACTIONS(4712),
    [sym_in] = ACTIONS(4712),
    [sym_inout] = ACTIONS(4712),
    [sym_interface] = ACTIONS(4712),
    [sym_invariant] = ACTIONS(4712),
    [sym_is] = ACTIONS(4712),
    [sym_mixin] = ACTIONS(4712),
    [sym_new] = ACTIONS(4712),
    [sym_nothrow] = ACTIONS(4712),
    [sym_out] = ACTIONS(4712),
    [sym_override] = ACTIONS(4712),
    [sym_package] = ACTIONS(4712),
    [sym_pragma] = ACTIONS(4712),
    [sym_private] = ACTIONS(4712),
    [sym_protected] = ACTIONS(4712),
    [sym_public] = ACTIONS(4712),
    [sym_pure] = ACTIONS(4712),
    [sym_ref] = ACTIONS(4712),
    [sym_return] = ACTIONS(4712),
    [sym_scope] = ACTIONS(4712),
    [sym_shared] = ACTIONS(4712),
    [sym_static] = ACTIONS(4712),
    [sym_struct] = ACTIONS(4712),
    [sym_switch] = ACTIONS(4712),
    [sym_synchronized] = ACTIONS(4712),
    [sym_template] = ACTIONS(4712),
    [sym_throw] = ACTIONS(4712),
    [sym_try] = ACTIONS(4712),
    [sym_typeid] = ACTIONS(4712),
    [sym_typeof] = ACTIONS(4712),
    [sym_union] = ACTIONS(4712),
    [sym_unittest] = ACTIONS(4712),
    [sym_version] = ACTIONS(4712),
    [sym_while] = ACTIONS(4712),
    [sym_with] = ACTIONS(4712),
    [sym_gshared] = ACTIONS(4712),
    [sym_traits] = ACTIONS(4712),
    [sym_vector] = ACTIONS(4712),
    [sym_void] = ACTIONS(4712),
    [anon_sym_BQUOTE] = ACTIONS(4714),
    [anon_sym_r_DQUOTE] = ACTIONS(4714),
    [anon_sym_x_DQUOTE] = ACTIONS(4714),
    [anon_sym_DQUOTE] = ACTIONS(4714),
    [anon_sym_i_BQUOTE] = ACTIONS(4714),
    [anon_sym_i_DQUOTE] = ACTIONS(4714),
    [anon_sym_iq_LBRACE] = ACTIONS(4714),
    [aux_sym_char_literal_token1] = ACTIONS(4714),
    [anon_sym_SQUOTE] = ACTIONS(4712),
    [anon_sym___DATE__] = ACTIONS(4712),
    [anon_sym___FILE__] = ACTIONS(4712),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4712),
    [anon_sym___FUNCTION__] = ACTIONS(4712),
    [anon_sym___LINE__] = ACTIONS(4712),
    [anon_sym___MODULE__] = ACTIONS(4712),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4712),
    [anon_sym___TIME__] = ACTIONS(4712),
    [anon_sym___TIMESTAMP__] = ACTIONS(4712),
    [anon_sym___VENDOR__] = ACTIONS(4712),
    [anon_sym___VERSION__] = ACTIONS(4712),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4714),
    [sym_float_literal] = ACTIONS(4714),
    [sym__string] = ACTIONS(4714),
  },
  [1459] = {
    [sym_identifier] = ACTIONS(4716),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4718),
    [anon_sym_RBRACE] = ACTIONS(4718),
    [anon_sym_LBRACE] = ACTIONS(4718),
    [anon_sym_DOT] = ACTIONS(4718),
    [anon_sym_AMP] = ACTIONS(4718),
    [anon_sym_DASH] = ACTIONS(4716),
    [anon_sym_DASH_DASH] = ACTIONS(4718),
    [anon_sym_PLUS] = ACTIONS(4716),
    [anon_sym_PLUS_PLUS] = ACTIONS(4718),
    [anon_sym_BANG] = ACTIONS(4718),
    [anon_sym_LPAREN] = ACTIONS(4718),
    [anon_sym_RPAREN] = ACTIONS(4718),
    [anon_sym_LBRACK] = ACTIONS(4718),
    [anon_sym_SEMI] = ACTIONS(4718),
    [anon_sym_DOLLAR] = ACTIONS(4718),
    [anon_sym_STAR] = ACTIONS(4718),
    [anon_sym_TILDE] = ACTIONS(4718),
    [anon_sym_AT] = ACTIONS(4718),
    [sym_bool] = ACTIONS(4716),
    [sym_byte] = ACTIONS(4716),
    [sym_ubyte] = ACTIONS(4716),
    [sym_char] = ACTIONS(4716),
    [sym_short] = ACTIONS(4716),
    [sym_ushort] = ACTIONS(4716),
    [sym_int] = ACTIONS(4716),
    [sym_uint] = ACTIONS(4716),
    [sym_long] = ACTIONS(4716),
    [sym_ulong] = ACTIONS(4716),
    [sym_cent] = ACTIONS(4716),
    [sym_ucent] = ACTIONS(4716),
    [sym_wchar] = ACTIONS(4716),
    [sym_dchar] = ACTIONS(4716),
    [sym_float] = ACTIONS(4716),
    [sym_double] = ACTIONS(4716),
    [sym_real] = ACTIONS(4716),
    [sym_ifloat] = ACTIONS(4716),
    [sym_idouble] = ACTIONS(4716),
    [sym_ireal] = ACTIONS(4716),
    [sym_cfloat] = ACTIONS(4716),
    [sym_cdouble] = ACTIONS(4716),
    [sym_creal] = ACTIONS(4716),
    [sym_size_t] = ACTIONS(4716),
    [sym_ptrdiff_t] = ACTIONS(4716),
    [sym_string] = ACTIONS(4716),
    [sym_cstring] = ACTIONS(4716),
    [sym_dstring] = ACTIONS(4716),
    [sym_wstring] = ACTIONS(4716),
    [sym_noreturn] = ACTIONS(4716),
    [sym_true] = ACTIONS(4716),
    [sym_false] = ACTIONS(4716),
    [sym_null] = ACTIONS(4716),
    [sym_super] = ACTIONS(4716),
    [sym_this] = ACTIONS(4716),
    [sym_abstract] = ACTIONS(4716),
    [sym_alias] = ACTIONS(4716),
    [sym_align] = ACTIONS(4716),
    [sym_asm] = ACTIONS(4716),
    [sym_assert] = ACTIONS(4716),
    [sym_auto] = ACTIONS(4716),
    [sym_break] = ACTIONS(4716),
    [sym_case] = ACTIONS(4716),
    [sym_cast] = ACTIONS(4716),
    [sym_catch] = ACTIONS(4716),
    [sym_class] = ACTIONS(4716),
    [sym_const] = ACTIONS(4716),
    [sym_continue] = ACTIONS(4716),
    [sym_debug] = ACTIONS(4716),
    [sym_default] = ACTIONS(4716),
    [sym_delegate] = ACTIONS(4716),
    [sym_delete] = ACTIONS(4716),
    [sym_deprecated] = ACTIONS(4716),
    [sym_do] = ACTIONS(4716),
    [sym_else] = ACTIONS(4716),
    [sym_enum] = ACTIONS(4716),
    [sym_export] = ACTIONS(4716),
    [sym_extern] = ACTIONS(4716),
    [sym_final] = ACTIONS(4716),
    [sym_finally] = ACTIONS(4716),
    [sym_for] = ACTIONS(4716),
    [sym_foreach] = ACTIONS(4716),
    [sym_foreach_reverse] = ACTIONS(4716),
    [sym_function] = ACTIONS(4716),
    [sym_goto] = ACTIONS(4716),
    [sym_if] = ACTIONS(4716),
    [sym_immutable] = ACTIONS(4716),
    [sym_import] = ACTIONS(4716),
    [sym_in] = ACTIONS(4716),
    [sym_inout] = ACTIONS(4716),
    [sym_interface] = ACTIONS(4716),
    [sym_invariant] = ACTIONS(4716),
    [sym_is] = ACTIONS(4716),
    [sym_mixin] = ACTIONS(4716),
    [sym_new] = ACTIONS(4716),
    [sym_nothrow] = ACTIONS(4716),
    [sym_out] = ACTIONS(4716),
    [sym_override] = ACTIONS(4716),
    [sym_package] = ACTIONS(4716),
    [sym_pragma] = ACTIONS(4716),
    [sym_private] = ACTIONS(4716),
    [sym_protected] = ACTIONS(4716),
    [sym_public] = ACTIONS(4716),
    [sym_pure] = ACTIONS(4716),
    [sym_ref] = ACTIONS(4716),
    [sym_return] = ACTIONS(4716),
    [sym_scope] = ACTIONS(4716),
    [sym_shared] = ACTIONS(4716),
    [sym_static] = ACTIONS(4716),
    [sym_struct] = ACTIONS(4716),
    [sym_switch] = ACTIONS(4716),
    [sym_synchronized] = ACTIONS(4716),
    [sym_template] = ACTIONS(4716),
    [sym_throw] = ACTIONS(4716),
    [sym_try] = ACTIONS(4716),
    [sym_typeid] = ACTIONS(4716),
    [sym_typeof] = ACTIONS(4716),
    [sym_union] = ACTIONS(4716),
    [sym_unittest] = ACTIONS(4716),
    [sym_version] = ACTIONS(4716),
    [sym_while] = ACTIONS(4716),
    [sym_with] = ACTIONS(4716),
    [sym_gshared] = ACTIONS(4716),
    [sym_traits] = ACTIONS(4716),
    [sym_vector] = ACTIONS(4716),
    [sym_void] = ACTIONS(4716),
    [anon_sym_BQUOTE] = ACTIONS(4718),
    [anon_sym_r_DQUOTE] = ACTIONS(4718),
    [anon_sym_x_DQUOTE] = ACTIONS(4718),
    [anon_sym_DQUOTE] = ACTIONS(4718),
    [anon_sym_i_BQUOTE] = ACTIONS(4718),
    [anon_sym_i_DQUOTE] = ACTIONS(4718),
    [anon_sym_iq_LBRACE] = ACTIONS(4718),
    [aux_sym_char_literal_token1] = ACTIONS(4718),
    [anon_sym_SQUOTE] = ACTIONS(4716),
    [anon_sym___DATE__] = ACTIONS(4716),
    [anon_sym___FILE__] = ACTIONS(4716),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4716),
    [anon_sym___FUNCTION__] = ACTIONS(4716),
    [anon_sym___LINE__] = ACTIONS(4716),
    [anon_sym___MODULE__] = ACTIONS(4716),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4716),
    [anon_sym___TIME__] = ACTIONS(4716),
    [anon_sym___TIMESTAMP__] = ACTIONS(4716),
    [anon_sym___VENDOR__] = ACTIONS(4716),
    [anon_sym___VERSION__] = ACTIONS(4716),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4718),
    [sym_float_literal] = ACTIONS(4718),
    [sym__string] = ACTIONS(4718),
  },
  [1460] = {
    [sym_identifier] = ACTIONS(4720),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4722),
    [anon_sym_RBRACE] = ACTIONS(4722),
    [anon_sym_LBRACE] = ACTIONS(4722),
    [anon_sym_DOT] = ACTIONS(4722),
    [anon_sym_AMP] = ACTIONS(4722),
    [anon_sym_DASH] = ACTIONS(4720),
    [anon_sym_DASH_DASH] = ACTIONS(4722),
    [anon_sym_PLUS] = ACTIONS(4720),
    [anon_sym_PLUS_PLUS] = ACTIONS(4722),
    [anon_sym_BANG] = ACTIONS(4722),
    [anon_sym_LPAREN] = ACTIONS(4722),
    [anon_sym_RPAREN] = ACTIONS(4722),
    [anon_sym_LBRACK] = ACTIONS(4722),
    [anon_sym_SEMI] = ACTIONS(4722),
    [anon_sym_DOLLAR] = ACTIONS(4722),
    [anon_sym_STAR] = ACTIONS(4722),
    [anon_sym_TILDE] = ACTIONS(4722),
    [anon_sym_AT] = ACTIONS(4722),
    [sym_bool] = ACTIONS(4720),
    [sym_byte] = ACTIONS(4720),
    [sym_ubyte] = ACTIONS(4720),
    [sym_char] = ACTIONS(4720),
    [sym_short] = ACTIONS(4720),
    [sym_ushort] = ACTIONS(4720),
    [sym_int] = ACTIONS(4720),
    [sym_uint] = ACTIONS(4720),
    [sym_long] = ACTIONS(4720),
    [sym_ulong] = ACTIONS(4720),
    [sym_cent] = ACTIONS(4720),
    [sym_ucent] = ACTIONS(4720),
    [sym_wchar] = ACTIONS(4720),
    [sym_dchar] = ACTIONS(4720),
    [sym_float] = ACTIONS(4720),
    [sym_double] = ACTIONS(4720),
    [sym_real] = ACTIONS(4720),
    [sym_ifloat] = ACTIONS(4720),
    [sym_idouble] = ACTIONS(4720),
    [sym_ireal] = ACTIONS(4720),
    [sym_cfloat] = ACTIONS(4720),
    [sym_cdouble] = ACTIONS(4720),
    [sym_creal] = ACTIONS(4720),
    [sym_size_t] = ACTIONS(4720),
    [sym_ptrdiff_t] = ACTIONS(4720),
    [sym_string] = ACTIONS(4720),
    [sym_cstring] = ACTIONS(4720),
    [sym_dstring] = ACTIONS(4720),
    [sym_wstring] = ACTIONS(4720),
    [sym_noreturn] = ACTIONS(4720),
    [sym_true] = ACTIONS(4720),
    [sym_false] = ACTIONS(4720),
    [sym_null] = ACTIONS(4720),
    [sym_super] = ACTIONS(4720),
    [sym_this] = ACTIONS(4720),
    [sym_abstract] = ACTIONS(4720),
    [sym_alias] = ACTIONS(4720),
    [sym_align] = ACTIONS(4720),
    [sym_asm] = ACTIONS(4720),
    [sym_assert] = ACTIONS(4720),
    [sym_auto] = ACTIONS(4720),
    [sym_break] = ACTIONS(4720),
    [sym_case] = ACTIONS(4720),
    [sym_cast] = ACTIONS(4720),
    [sym_catch] = ACTIONS(4720),
    [sym_class] = ACTIONS(4720),
    [sym_const] = ACTIONS(4720),
    [sym_continue] = ACTIONS(4720),
    [sym_debug] = ACTIONS(4720),
    [sym_default] = ACTIONS(4720),
    [sym_delegate] = ACTIONS(4720),
    [sym_delete] = ACTIONS(4720),
    [sym_deprecated] = ACTIONS(4720),
    [sym_do] = ACTIONS(4720),
    [sym_else] = ACTIONS(4720),
    [sym_enum] = ACTIONS(4720),
    [sym_export] = ACTIONS(4720),
    [sym_extern] = ACTIONS(4720),
    [sym_final] = ACTIONS(4720),
    [sym_finally] = ACTIONS(4720),
    [sym_for] = ACTIONS(4720),
    [sym_foreach] = ACTIONS(4720),
    [sym_foreach_reverse] = ACTIONS(4720),
    [sym_function] = ACTIONS(4720),
    [sym_goto] = ACTIONS(4720),
    [sym_if] = ACTIONS(4720),
    [sym_immutable] = ACTIONS(4720),
    [sym_import] = ACTIONS(4720),
    [sym_in] = ACTIONS(4720),
    [sym_inout] = ACTIONS(4720),
    [sym_interface] = ACTIONS(4720),
    [sym_invariant] = ACTIONS(4720),
    [sym_is] = ACTIONS(4720),
    [sym_mixin] = ACTIONS(4720),
    [sym_new] = ACTIONS(4720),
    [sym_nothrow] = ACTIONS(4720),
    [sym_out] = ACTIONS(4720),
    [sym_override] = ACTIONS(4720),
    [sym_package] = ACTIONS(4720),
    [sym_pragma] = ACTIONS(4720),
    [sym_private] = ACTIONS(4720),
    [sym_protected] = ACTIONS(4720),
    [sym_public] = ACTIONS(4720),
    [sym_pure] = ACTIONS(4720),
    [sym_ref] = ACTIONS(4720),
    [sym_return] = ACTIONS(4720),
    [sym_scope] = ACTIONS(4720),
    [sym_shared] = ACTIONS(4720),
    [sym_static] = ACTIONS(4720),
    [sym_struct] = ACTIONS(4720),
    [sym_switch] = ACTIONS(4720),
    [sym_synchronized] = ACTIONS(4720),
    [sym_template] = ACTIONS(4720),
    [sym_throw] = ACTIONS(4720),
    [sym_try] = ACTIONS(4720),
    [sym_typeid] = ACTIONS(4720),
    [sym_typeof] = ACTIONS(4720),
    [sym_union] = ACTIONS(4720),
    [sym_unittest] = ACTIONS(4720),
    [sym_version] = ACTIONS(4720),
    [sym_while] = ACTIONS(4720),
    [sym_with] = ACTIONS(4720),
    [sym_gshared] = ACTIONS(4720),
    [sym_traits] = ACTIONS(4720),
    [sym_vector] = ACTIONS(4720),
    [sym_void] = ACTIONS(4720),
    [anon_sym_BQUOTE] = ACTIONS(4722),
    [anon_sym_r_DQUOTE] = ACTIONS(4722),
    [anon_sym_x_DQUOTE] = ACTIONS(4722),
    [anon_sym_DQUOTE] = ACTIONS(4722),
    [anon_sym_i_BQUOTE] = ACTIONS(4722),
    [anon_sym_i_DQUOTE] = ACTIONS(4722),
    [anon_sym_iq_LBRACE] = ACTIONS(4722),
    [aux_sym_char_literal_token1] = ACTIONS(4722),
    [anon_sym_SQUOTE] = ACTIONS(4720),
    [anon_sym___DATE__] = ACTIONS(4720),
    [anon_sym___FILE__] = ACTIONS(4720),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4720),
    [anon_sym___FUNCTION__] = ACTIONS(4720),
    [anon_sym___LINE__] = ACTIONS(4720),
    [anon_sym___MODULE__] = ACTIONS(4720),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4720),
    [anon_sym___TIME__] = ACTIONS(4720),
    [anon_sym___TIMESTAMP__] = ACTIONS(4720),
    [anon_sym___VENDOR__] = ACTIONS(4720),
    [anon_sym___VERSION__] = ACTIONS(4720),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4722),
    [sym_float_literal] = ACTIONS(4722),
    [sym__string] = ACTIONS(4722),
  },
  [1461] = {
    [sym_identifier] = ACTIONS(4724),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4726),
    [anon_sym_RBRACE] = ACTIONS(4726),
    [anon_sym_LBRACE] = ACTIONS(4726),
    [anon_sym_DOT] = ACTIONS(4726),
    [anon_sym_AMP] = ACTIONS(4726),
    [anon_sym_DASH] = ACTIONS(4724),
    [anon_sym_DASH_DASH] = ACTIONS(4726),
    [anon_sym_PLUS] = ACTIONS(4724),
    [anon_sym_PLUS_PLUS] = ACTIONS(4726),
    [anon_sym_BANG] = ACTIONS(4726),
    [anon_sym_LPAREN] = ACTIONS(4726),
    [anon_sym_RPAREN] = ACTIONS(4726),
    [anon_sym_LBRACK] = ACTIONS(4726),
    [anon_sym_SEMI] = ACTIONS(4726),
    [anon_sym_DOLLAR] = ACTIONS(4726),
    [anon_sym_STAR] = ACTIONS(4726),
    [anon_sym_TILDE] = ACTIONS(4726),
    [anon_sym_AT] = ACTIONS(4726),
    [sym_bool] = ACTIONS(4724),
    [sym_byte] = ACTIONS(4724),
    [sym_ubyte] = ACTIONS(4724),
    [sym_char] = ACTIONS(4724),
    [sym_short] = ACTIONS(4724),
    [sym_ushort] = ACTIONS(4724),
    [sym_int] = ACTIONS(4724),
    [sym_uint] = ACTIONS(4724),
    [sym_long] = ACTIONS(4724),
    [sym_ulong] = ACTIONS(4724),
    [sym_cent] = ACTIONS(4724),
    [sym_ucent] = ACTIONS(4724),
    [sym_wchar] = ACTIONS(4724),
    [sym_dchar] = ACTIONS(4724),
    [sym_float] = ACTIONS(4724),
    [sym_double] = ACTIONS(4724),
    [sym_real] = ACTIONS(4724),
    [sym_ifloat] = ACTIONS(4724),
    [sym_idouble] = ACTIONS(4724),
    [sym_ireal] = ACTIONS(4724),
    [sym_cfloat] = ACTIONS(4724),
    [sym_cdouble] = ACTIONS(4724),
    [sym_creal] = ACTIONS(4724),
    [sym_size_t] = ACTIONS(4724),
    [sym_ptrdiff_t] = ACTIONS(4724),
    [sym_string] = ACTIONS(4724),
    [sym_cstring] = ACTIONS(4724),
    [sym_dstring] = ACTIONS(4724),
    [sym_wstring] = ACTIONS(4724),
    [sym_noreturn] = ACTIONS(4724),
    [sym_true] = ACTIONS(4724),
    [sym_false] = ACTIONS(4724),
    [sym_null] = ACTIONS(4724),
    [sym_super] = ACTIONS(4724),
    [sym_this] = ACTIONS(4724),
    [sym_abstract] = ACTIONS(4724),
    [sym_alias] = ACTIONS(4724),
    [sym_align] = ACTIONS(4724),
    [sym_asm] = ACTIONS(4724),
    [sym_assert] = ACTIONS(4724),
    [sym_auto] = ACTIONS(4724),
    [sym_break] = ACTIONS(4724),
    [sym_case] = ACTIONS(4724),
    [sym_cast] = ACTIONS(4724),
    [sym_catch] = ACTIONS(4724),
    [sym_class] = ACTIONS(4724),
    [sym_const] = ACTIONS(4724),
    [sym_continue] = ACTIONS(4724),
    [sym_debug] = ACTIONS(4724),
    [sym_default] = ACTIONS(4724),
    [sym_delegate] = ACTIONS(4724),
    [sym_delete] = ACTIONS(4724),
    [sym_deprecated] = ACTIONS(4724),
    [sym_do] = ACTIONS(4724),
    [sym_else] = ACTIONS(4724),
    [sym_enum] = ACTIONS(4724),
    [sym_export] = ACTIONS(4724),
    [sym_extern] = ACTIONS(4724),
    [sym_final] = ACTIONS(4724),
    [sym_finally] = ACTIONS(4724),
    [sym_for] = ACTIONS(4724),
    [sym_foreach] = ACTIONS(4724),
    [sym_foreach_reverse] = ACTIONS(4724),
    [sym_function] = ACTIONS(4724),
    [sym_goto] = ACTIONS(4724),
    [sym_if] = ACTIONS(4724),
    [sym_immutable] = ACTIONS(4724),
    [sym_import] = ACTIONS(4724),
    [sym_in] = ACTIONS(4724),
    [sym_inout] = ACTIONS(4724),
    [sym_interface] = ACTIONS(4724),
    [sym_invariant] = ACTIONS(4724),
    [sym_is] = ACTIONS(4724),
    [sym_mixin] = ACTIONS(4724),
    [sym_new] = ACTIONS(4724),
    [sym_nothrow] = ACTIONS(4724),
    [sym_out] = ACTIONS(4724),
    [sym_override] = ACTIONS(4724),
    [sym_package] = ACTIONS(4724),
    [sym_pragma] = ACTIONS(4724),
    [sym_private] = ACTIONS(4724),
    [sym_protected] = ACTIONS(4724),
    [sym_public] = ACTIONS(4724),
    [sym_pure] = ACTIONS(4724),
    [sym_ref] = ACTIONS(4724),
    [sym_return] = ACTIONS(4724),
    [sym_scope] = ACTIONS(4724),
    [sym_shared] = ACTIONS(4724),
    [sym_static] = ACTIONS(4724),
    [sym_struct] = ACTIONS(4724),
    [sym_switch] = ACTIONS(4724),
    [sym_synchronized] = ACTIONS(4724),
    [sym_template] = ACTIONS(4724),
    [sym_throw] = ACTIONS(4724),
    [sym_try] = ACTIONS(4724),
    [sym_typeid] = ACTIONS(4724),
    [sym_typeof] = ACTIONS(4724),
    [sym_union] = ACTIONS(4724),
    [sym_unittest] = ACTIONS(4724),
    [sym_version] = ACTIONS(4724),
    [sym_while] = ACTIONS(4724),
    [sym_with] = ACTIONS(4724),
    [sym_gshared] = ACTIONS(4724),
    [sym_traits] = ACTIONS(4724),
    [sym_vector] = ACTIONS(4724),
    [sym_void] = ACTIONS(4724),
    [anon_sym_BQUOTE] = ACTIONS(4726),
    [anon_sym_r_DQUOTE] = ACTIONS(4726),
    [anon_sym_x_DQUOTE] = ACTIONS(4726),
    [anon_sym_DQUOTE] = ACTIONS(4726),
    [anon_sym_i_BQUOTE] = ACTIONS(4726),
    [anon_sym_i_DQUOTE] = ACTIONS(4726),
    [anon_sym_iq_LBRACE] = ACTIONS(4726),
    [aux_sym_char_literal_token1] = ACTIONS(4726),
    [anon_sym_SQUOTE] = ACTIONS(4724),
    [anon_sym___DATE__] = ACTIONS(4724),
    [anon_sym___FILE__] = ACTIONS(4724),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4724),
    [anon_sym___FUNCTION__] = ACTIONS(4724),
    [anon_sym___LINE__] = ACTIONS(4724),
    [anon_sym___MODULE__] = ACTIONS(4724),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4724),
    [anon_sym___TIME__] = ACTIONS(4724),
    [anon_sym___TIMESTAMP__] = ACTIONS(4724),
    [anon_sym___VENDOR__] = ACTIONS(4724),
    [anon_sym___VERSION__] = ACTIONS(4724),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4726),
    [sym_float_literal] = ACTIONS(4726),
    [sym__string] = ACTIONS(4726),
  },
  [1462] = {
    [sym_identifier] = ACTIONS(4728),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4730),
    [anon_sym_RBRACE] = ACTIONS(4730),
    [anon_sym_LBRACE] = ACTIONS(4730),
    [anon_sym_DOT] = ACTIONS(4730),
    [anon_sym_AMP] = ACTIONS(4730),
    [anon_sym_DASH] = ACTIONS(4728),
    [anon_sym_DASH_DASH] = ACTIONS(4730),
    [anon_sym_PLUS] = ACTIONS(4728),
    [anon_sym_PLUS_PLUS] = ACTIONS(4730),
    [anon_sym_BANG] = ACTIONS(4730),
    [anon_sym_LPAREN] = ACTIONS(4730),
    [anon_sym_RPAREN] = ACTIONS(4730),
    [anon_sym_LBRACK] = ACTIONS(4730),
    [anon_sym_SEMI] = ACTIONS(4730),
    [anon_sym_DOLLAR] = ACTIONS(4730),
    [anon_sym_STAR] = ACTIONS(4730),
    [anon_sym_TILDE] = ACTIONS(4730),
    [anon_sym_AT] = ACTIONS(4730),
    [sym_bool] = ACTIONS(4728),
    [sym_byte] = ACTIONS(4728),
    [sym_ubyte] = ACTIONS(4728),
    [sym_char] = ACTIONS(4728),
    [sym_short] = ACTIONS(4728),
    [sym_ushort] = ACTIONS(4728),
    [sym_int] = ACTIONS(4728),
    [sym_uint] = ACTIONS(4728),
    [sym_long] = ACTIONS(4728),
    [sym_ulong] = ACTIONS(4728),
    [sym_cent] = ACTIONS(4728),
    [sym_ucent] = ACTIONS(4728),
    [sym_wchar] = ACTIONS(4728),
    [sym_dchar] = ACTIONS(4728),
    [sym_float] = ACTIONS(4728),
    [sym_double] = ACTIONS(4728),
    [sym_real] = ACTIONS(4728),
    [sym_ifloat] = ACTIONS(4728),
    [sym_idouble] = ACTIONS(4728),
    [sym_ireal] = ACTIONS(4728),
    [sym_cfloat] = ACTIONS(4728),
    [sym_cdouble] = ACTIONS(4728),
    [sym_creal] = ACTIONS(4728),
    [sym_size_t] = ACTIONS(4728),
    [sym_ptrdiff_t] = ACTIONS(4728),
    [sym_string] = ACTIONS(4728),
    [sym_cstring] = ACTIONS(4728),
    [sym_dstring] = ACTIONS(4728),
    [sym_wstring] = ACTIONS(4728),
    [sym_noreturn] = ACTIONS(4728),
    [sym_true] = ACTIONS(4728),
    [sym_false] = ACTIONS(4728),
    [sym_null] = ACTIONS(4728),
    [sym_super] = ACTIONS(4728),
    [sym_this] = ACTIONS(4728),
    [sym_abstract] = ACTIONS(4728),
    [sym_alias] = ACTIONS(4728),
    [sym_align] = ACTIONS(4728),
    [sym_asm] = ACTIONS(4728),
    [sym_assert] = ACTIONS(4728),
    [sym_auto] = ACTIONS(4728),
    [sym_break] = ACTIONS(4728),
    [sym_case] = ACTIONS(4728),
    [sym_cast] = ACTIONS(4728),
    [sym_catch] = ACTIONS(4728),
    [sym_class] = ACTIONS(4728),
    [sym_const] = ACTIONS(4728),
    [sym_continue] = ACTIONS(4728),
    [sym_debug] = ACTIONS(4728),
    [sym_default] = ACTIONS(4728),
    [sym_delegate] = ACTIONS(4728),
    [sym_delete] = ACTIONS(4728),
    [sym_deprecated] = ACTIONS(4728),
    [sym_do] = ACTIONS(4728),
    [sym_else] = ACTIONS(4728),
    [sym_enum] = ACTIONS(4728),
    [sym_export] = ACTIONS(4728),
    [sym_extern] = ACTIONS(4728),
    [sym_final] = ACTIONS(4728),
    [sym_finally] = ACTIONS(4728),
    [sym_for] = ACTIONS(4728),
    [sym_foreach] = ACTIONS(4728),
    [sym_foreach_reverse] = ACTIONS(4728),
    [sym_function] = ACTIONS(4728),
    [sym_goto] = ACTIONS(4728),
    [sym_if] = ACTIONS(4728),
    [sym_immutable] = ACTIONS(4728),
    [sym_import] = ACTIONS(4728),
    [sym_in] = ACTIONS(4728),
    [sym_inout] = ACTIONS(4728),
    [sym_interface] = ACTIONS(4728),
    [sym_invariant] = ACTIONS(4728),
    [sym_is] = ACTIONS(4728),
    [sym_mixin] = ACTIONS(4728),
    [sym_new] = ACTIONS(4728),
    [sym_nothrow] = ACTIONS(4728),
    [sym_out] = ACTIONS(4728),
    [sym_override] = ACTIONS(4728),
    [sym_package] = ACTIONS(4728),
    [sym_pragma] = ACTIONS(4728),
    [sym_private] = ACTIONS(4728),
    [sym_protected] = ACTIONS(4728),
    [sym_public] = ACTIONS(4728),
    [sym_pure] = ACTIONS(4728),
    [sym_ref] = ACTIONS(4728),
    [sym_return] = ACTIONS(4728),
    [sym_scope] = ACTIONS(4728),
    [sym_shared] = ACTIONS(4728),
    [sym_static] = ACTIONS(4728),
    [sym_struct] = ACTIONS(4728),
    [sym_switch] = ACTIONS(4728),
    [sym_synchronized] = ACTIONS(4728),
    [sym_template] = ACTIONS(4728),
    [sym_throw] = ACTIONS(4728),
    [sym_try] = ACTIONS(4728),
    [sym_typeid] = ACTIONS(4728),
    [sym_typeof] = ACTIONS(4728),
    [sym_union] = ACTIONS(4728),
    [sym_unittest] = ACTIONS(4728),
    [sym_version] = ACTIONS(4728),
    [sym_while] = ACTIONS(4728),
    [sym_with] = ACTIONS(4728),
    [sym_gshared] = ACTIONS(4728),
    [sym_traits] = ACTIONS(4728),
    [sym_vector] = ACTIONS(4728),
    [sym_void] = ACTIONS(4728),
    [anon_sym_BQUOTE] = ACTIONS(4730),
    [anon_sym_r_DQUOTE] = ACTIONS(4730),
    [anon_sym_x_DQUOTE] = ACTIONS(4730),
    [anon_sym_DQUOTE] = ACTIONS(4730),
    [anon_sym_i_BQUOTE] = ACTIONS(4730),
    [anon_sym_i_DQUOTE] = ACTIONS(4730),
    [anon_sym_iq_LBRACE] = ACTIONS(4730),
    [aux_sym_char_literal_token1] = ACTIONS(4730),
    [anon_sym_SQUOTE] = ACTIONS(4728),
    [anon_sym___DATE__] = ACTIONS(4728),
    [anon_sym___FILE__] = ACTIONS(4728),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4728),
    [anon_sym___FUNCTION__] = ACTIONS(4728),
    [anon_sym___LINE__] = ACTIONS(4728),
    [anon_sym___MODULE__] = ACTIONS(4728),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4728),
    [anon_sym___TIME__] = ACTIONS(4728),
    [anon_sym___TIMESTAMP__] = ACTIONS(4728),
    [anon_sym___VENDOR__] = ACTIONS(4728),
    [anon_sym___VERSION__] = ACTIONS(4728),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4730),
    [sym_float_literal] = ACTIONS(4730),
    [sym__string] = ACTIONS(4730),
  },
  [1463] = {
    [sym_identifier] = ACTIONS(4732),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4734),
    [anon_sym_RBRACE] = ACTIONS(4734),
    [anon_sym_LBRACE] = ACTIONS(4734),
    [anon_sym_DOT] = ACTIONS(4734),
    [anon_sym_AMP] = ACTIONS(4734),
    [anon_sym_DASH] = ACTIONS(4732),
    [anon_sym_DASH_DASH] = ACTIONS(4734),
    [anon_sym_PLUS] = ACTIONS(4732),
    [anon_sym_PLUS_PLUS] = ACTIONS(4734),
    [anon_sym_BANG] = ACTIONS(4734),
    [anon_sym_LPAREN] = ACTIONS(4734),
    [anon_sym_RPAREN] = ACTIONS(4734),
    [anon_sym_LBRACK] = ACTIONS(4734),
    [anon_sym_SEMI] = ACTIONS(4734),
    [anon_sym_DOLLAR] = ACTIONS(4734),
    [anon_sym_STAR] = ACTIONS(4734),
    [anon_sym_TILDE] = ACTIONS(4734),
    [anon_sym_AT] = ACTIONS(4734),
    [sym_bool] = ACTIONS(4732),
    [sym_byte] = ACTIONS(4732),
    [sym_ubyte] = ACTIONS(4732),
    [sym_char] = ACTIONS(4732),
    [sym_short] = ACTIONS(4732),
    [sym_ushort] = ACTIONS(4732),
    [sym_int] = ACTIONS(4732),
    [sym_uint] = ACTIONS(4732),
    [sym_long] = ACTIONS(4732),
    [sym_ulong] = ACTIONS(4732),
    [sym_cent] = ACTIONS(4732),
    [sym_ucent] = ACTIONS(4732),
    [sym_wchar] = ACTIONS(4732),
    [sym_dchar] = ACTIONS(4732),
    [sym_float] = ACTIONS(4732),
    [sym_double] = ACTIONS(4732),
    [sym_real] = ACTIONS(4732),
    [sym_ifloat] = ACTIONS(4732),
    [sym_idouble] = ACTIONS(4732),
    [sym_ireal] = ACTIONS(4732),
    [sym_cfloat] = ACTIONS(4732),
    [sym_cdouble] = ACTIONS(4732),
    [sym_creal] = ACTIONS(4732),
    [sym_size_t] = ACTIONS(4732),
    [sym_ptrdiff_t] = ACTIONS(4732),
    [sym_string] = ACTIONS(4732),
    [sym_cstring] = ACTIONS(4732),
    [sym_dstring] = ACTIONS(4732),
    [sym_wstring] = ACTIONS(4732),
    [sym_noreturn] = ACTIONS(4732),
    [sym_true] = ACTIONS(4732),
    [sym_false] = ACTIONS(4732),
    [sym_null] = ACTIONS(4732),
    [sym_super] = ACTIONS(4732),
    [sym_this] = ACTIONS(4732),
    [sym_abstract] = ACTIONS(4732),
    [sym_alias] = ACTIONS(4732),
    [sym_align] = ACTIONS(4732),
    [sym_asm] = ACTIONS(4732),
    [sym_assert] = ACTIONS(4732),
    [sym_auto] = ACTIONS(4732),
    [sym_break] = ACTIONS(4732),
    [sym_case] = ACTIONS(4732),
    [sym_cast] = ACTIONS(4732),
    [sym_catch] = ACTIONS(4732),
    [sym_class] = ACTIONS(4732),
    [sym_const] = ACTIONS(4732),
    [sym_continue] = ACTIONS(4732),
    [sym_debug] = ACTIONS(4732),
    [sym_default] = ACTIONS(4732),
    [sym_delegate] = ACTIONS(4732),
    [sym_delete] = ACTIONS(4732),
    [sym_deprecated] = ACTIONS(4732),
    [sym_do] = ACTIONS(4732),
    [sym_else] = ACTIONS(4732),
    [sym_enum] = ACTIONS(4732),
    [sym_export] = ACTIONS(4732),
    [sym_extern] = ACTIONS(4732),
    [sym_final] = ACTIONS(4732),
    [sym_finally] = ACTIONS(4732),
    [sym_for] = ACTIONS(4732),
    [sym_foreach] = ACTIONS(4732),
    [sym_foreach_reverse] = ACTIONS(4732),
    [sym_function] = ACTIONS(4732),
    [sym_goto] = ACTIONS(4732),
    [sym_if] = ACTIONS(4732),
    [sym_immutable] = ACTIONS(4732),
    [sym_import] = ACTIONS(4732),
    [sym_in] = ACTIONS(4732),
    [sym_inout] = ACTIONS(4732),
    [sym_interface] = ACTIONS(4732),
    [sym_invariant] = ACTIONS(4732),
    [sym_is] = ACTIONS(4732),
    [sym_mixin] = ACTIONS(4732),
    [sym_new] = ACTIONS(4732),
    [sym_nothrow] = ACTIONS(4732),
    [sym_out] = ACTIONS(4732),
    [sym_override] = ACTIONS(4732),
    [sym_package] = ACTIONS(4732),
    [sym_pragma] = ACTIONS(4732),
    [sym_private] = ACTIONS(4732),
    [sym_protected] = ACTIONS(4732),
    [sym_public] = ACTIONS(4732),
    [sym_pure] = ACTIONS(4732),
    [sym_ref] = ACTIONS(4732),
    [sym_return] = ACTIONS(4732),
    [sym_scope] = ACTIONS(4732),
    [sym_shared] = ACTIONS(4732),
    [sym_static] = ACTIONS(4732),
    [sym_struct] = ACTIONS(4732),
    [sym_switch] = ACTIONS(4732),
    [sym_synchronized] = ACTIONS(4732),
    [sym_template] = ACTIONS(4732),
    [sym_throw] = ACTIONS(4732),
    [sym_try] = ACTIONS(4732),
    [sym_typeid] = ACTIONS(4732),
    [sym_typeof] = ACTIONS(4732),
    [sym_union] = ACTIONS(4732),
    [sym_unittest] = ACTIONS(4732),
    [sym_version] = ACTIONS(4732),
    [sym_while] = ACTIONS(4732),
    [sym_with] = ACTIONS(4732),
    [sym_gshared] = ACTIONS(4732),
    [sym_traits] = ACTIONS(4732),
    [sym_vector] = ACTIONS(4732),
    [sym_void] = ACTIONS(4732),
    [anon_sym_BQUOTE] = ACTIONS(4734),
    [anon_sym_r_DQUOTE] = ACTIONS(4734),
    [anon_sym_x_DQUOTE] = ACTIONS(4734),
    [anon_sym_DQUOTE] = ACTIONS(4734),
    [anon_sym_i_BQUOTE] = ACTIONS(4734),
    [anon_sym_i_DQUOTE] = ACTIONS(4734),
    [anon_sym_iq_LBRACE] = ACTIONS(4734),
    [aux_sym_char_literal_token1] = ACTIONS(4734),
    [anon_sym_SQUOTE] = ACTIONS(4732),
    [anon_sym___DATE__] = ACTIONS(4732),
    [anon_sym___FILE__] = ACTIONS(4732),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4732),
    [anon_sym___FUNCTION__] = ACTIONS(4732),
    [anon_sym___LINE__] = ACTIONS(4732),
    [anon_sym___MODULE__] = ACTIONS(4732),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4732),
    [anon_sym___TIME__] = ACTIONS(4732),
    [anon_sym___TIMESTAMP__] = ACTIONS(4732),
    [anon_sym___VENDOR__] = ACTIONS(4732),
    [anon_sym___VERSION__] = ACTIONS(4732),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4734),
    [sym_float_literal] = ACTIONS(4734),
    [sym__string] = ACTIONS(4734),
  },
  [1464] = {
    [sym_identifier] = ACTIONS(4736),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4738),
    [anon_sym_RBRACE] = ACTIONS(4738),
    [anon_sym_LBRACE] = ACTIONS(4738),
    [anon_sym_DOT] = ACTIONS(4738),
    [anon_sym_AMP] = ACTIONS(4738),
    [anon_sym_DASH] = ACTIONS(4736),
    [anon_sym_DASH_DASH] = ACTIONS(4738),
    [anon_sym_PLUS] = ACTIONS(4736),
    [anon_sym_PLUS_PLUS] = ACTIONS(4738),
    [anon_sym_BANG] = ACTIONS(4738),
    [anon_sym_LPAREN] = ACTIONS(4738),
    [anon_sym_RPAREN] = ACTIONS(4738),
    [anon_sym_LBRACK] = ACTIONS(4738),
    [anon_sym_SEMI] = ACTIONS(4738),
    [anon_sym_DOLLAR] = ACTIONS(4738),
    [anon_sym_STAR] = ACTIONS(4738),
    [anon_sym_TILDE] = ACTIONS(4738),
    [anon_sym_AT] = ACTIONS(4738),
    [sym_bool] = ACTIONS(4736),
    [sym_byte] = ACTIONS(4736),
    [sym_ubyte] = ACTIONS(4736),
    [sym_char] = ACTIONS(4736),
    [sym_short] = ACTIONS(4736),
    [sym_ushort] = ACTIONS(4736),
    [sym_int] = ACTIONS(4736),
    [sym_uint] = ACTIONS(4736),
    [sym_long] = ACTIONS(4736),
    [sym_ulong] = ACTIONS(4736),
    [sym_cent] = ACTIONS(4736),
    [sym_ucent] = ACTIONS(4736),
    [sym_wchar] = ACTIONS(4736),
    [sym_dchar] = ACTIONS(4736),
    [sym_float] = ACTIONS(4736),
    [sym_double] = ACTIONS(4736),
    [sym_real] = ACTIONS(4736),
    [sym_ifloat] = ACTIONS(4736),
    [sym_idouble] = ACTIONS(4736),
    [sym_ireal] = ACTIONS(4736),
    [sym_cfloat] = ACTIONS(4736),
    [sym_cdouble] = ACTIONS(4736),
    [sym_creal] = ACTIONS(4736),
    [sym_size_t] = ACTIONS(4736),
    [sym_ptrdiff_t] = ACTIONS(4736),
    [sym_string] = ACTIONS(4736),
    [sym_cstring] = ACTIONS(4736),
    [sym_dstring] = ACTIONS(4736),
    [sym_wstring] = ACTIONS(4736),
    [sym_noreturn] = ACTIONS(4736),
    [sym_true] = ACTIONS(4736),
    [sym_false] = ACTIONS(4736),
    [sym_null] = ACTIONS(4736),
    [sym_super] = ACTIONS(4736),
    [sym_this] = ACTIONS(4736),
    [sym_abstract] = ACTIONS(4736),
    [sym_alias] = ACTIONS(4736),
    [sym_align] = ACTIONS(4736),
    [sym_asm] = ACTIONS(4736),
    [sym_assert] = ACTIONS(4736),
    [sym_auto] = ACTIONS(4736),
    [sym_break] = ACTIONS(4736),
    [sym_case] = ACTIONS(4736),
    [sym_cast] = ACTIONS(4736),
    [sym_catch] = ACTIONS(4736),
    [sym_class] = ACTIONS(4736),
    [sym_const] = ACTIONS(4736),
    [sym_continue] = ACTIONS(4736),
    [sym_debug] = ACTIONS(4736),
    [sym_default] = ACTIONS(4736),
    [sym_delegate] = ACTIONS(4736),
    [sym_delete] = ACTIONS(4736),
    [sym_deprecated] = ACTIONS(4736),
    [sym_do] = ACTIONS(4736),
    [sym_else] = ACTIONS(4736),
    [sym_enum] = ACTIONS(4736),
    [sym_export] = ACTIONS(4736),
    [sym_extern] = ACTIONS(4736),
    [sym_final] = ACTIONS(4736),
    [sym_finally] = ACTIONS(4736),
    [sym_for] = ACTIONS(4736),
    [sym_foreach] = ACTIONS(4736),
    [sym_foreach_reverse] = ACTIONS(4736),
    [sym_function] = ACTIONS(4736),
    [sym_goto] = ACTIONS(4736),
    [sym_if] = ACTIONS(4736),
    [sym_immutable] = ACTIONS(4736),
    [sym_import] = ACTIONS(4736),
    [sym_in] = ACTIONS(4736),
    [sym_inout] = ACTIONS(4736),
    [sym_interface] = ACTIONS(4736),
    [sym_invariant] = ACTIONS(4736),
    [sym_is] = ACTIONS(4736),
    [sym_mixin] = ACTIONS(4736),
    [sym_new] = ACTIONS(4736),
    [sym_nothrow] = ACTIONS(4736),
    [sym_out] = ACTIONS(4736),
    [sym_override] = ACTIONS(4736),
    [sym_package] = ACTIONS(4736),
    [sym_pragma] = ACTIONS(4736),
    [sym_private] = ACTIONS(4736),
    [sym_protected] = ACTIONS(4736),
    [sym_public] = ACTIONS(4736),
    [sym_pure] = ACTIONS(4736),
    [sym_ref] = ACTIONS(4736),
    [sym_return] = ACTIONS(4736),
    [sym_scope] = ACTIONS(4736),
    [sym_shared] = ACTIONS(4736),
    [sym_static] = ACTIONS(4736),
    [sym_struct] = ACTIONS(4736),
    [sym_switch] = ACTIONS(4736),
    [sym_synchronized] = ACTIONS(4736),
    [sym_template] = ACTIONS(4736),
    [sym_throw] = ACTIONS(4736),
    [sym_try] = ACTIONS(4736),
    [sym_typeid] = ACTIONS(4736),
    [sym_typeof] = ACTIONS(4736),
    [sym_union] = ACTIONS(4736),
    [sym_unittest] = ACTIONS(4736),
    [sym_version] = ACTIONS(4736),
    [sym_while] = ACTIONS(4736),
    [sym_with] = ACTIONS(4736),
    [sym_gshared] = ACTIONS(4736),
    [sym_traits] = ACTIONS(4736),
    [sym_vector] = ACTIONS(4736),
    [sym_void] = ACTIONS(4736),
    [anon_sym_BQUOTE] = ACTIONS(4738),
    [anon_sym_r_DQUOTE] = ACTIONS(4738),
    [anon_sym_x_DQUOTE] = ACTIONS(4738),
    [anon_sym_DQUOTE] = ACTIONS(4738),
    [anon_sym_i_BQUOTE] = ACTIONS(4738),
    [anon_sym_i_DQUOTE] = ACTIONS(4738),
    [anon_sym_iq_LBRACE] = ACTIONS(4738),
    [aux_sym_char_literal_token1] = ACTIONS(4738),
    [anon_sym_SQUOTE] = ACTIONS(4736),
    [anon_sym___DATE__] = ACTIONS(4736),
    [anon_sym___FILE__] = ACTIONS(4736),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4736),
    [anon_sym___FUNCTION__] = ACTIONS(4736),
    [anon_sym___LINE__] = ACTIONS(4736),
    [anon_sym___MODULE__] = ACTIONS(4736),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4736),
    [anon_sym___TIME__] = ACTIONS(4736),
    [anon_sym___TIMESTAMP__] = ACTIONS(4736),
    [anon_sym___VENDOR__] = ACTIONS(4736),
    [anon_sym___VERSION__] = ACTIONS(4736),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4738),
    [sym_float_literal] = ACTIONS(4738),
    [sym__string] = ACTIONS(4738),
  },
  [1465] = {
    [sym_identifier] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2804),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_LBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(2804),
    [anon_sym_AMP] = ACTIONS(2804),
    [anon_sym_DASH] = ACTIONS(2806),
    [anon_sym_DASH_DASH] = ACTIONS(2804),
    [anon_sym_PLUS] = ACTIONS(2806),
    [anon_sym_PLUS_PLUS] = ACTIONS(2804),
    [anon_sym_BANG] = ACTIONS(2804),
    [anon_sym_LPAREN] = ACTIONS(2804),
    [anon_sym_RPAREN] = ACTIONS(2804),
    [anon_sym_LBRACK] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2804),
    [anon_sym_DOLLAR] = ACTIONS(2804),
    [anon_sym_STAR] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2804),
    [anon_sym_AT] = ACTIONS(2804),
    [sym_bool] = ACTIONS(2806),
    [sym_byte] = ACTIONS(2806),
    [sym_ubyte] = ACTIONS(2806),
    [sym_char] = ACTIONS(2806),
    [sym_short] = ACTIONS(2806),
    [sym_ushort] = ACTIONS(2806),
    [sym_int] = ACTIONS(2806),
    [sym_uint] = ACTIONS(2806),
    [sym_long] = ACTIONS(2806),
    [sym_ulong] = ACTIONS(2806),
    [sym_cent] = ACTIONS(2806),
    [sym_ucent] = ACTIONS(2806),
    [sym_wchar] = ACTIONS(2806),
    [sym_dchar] = ACTIONS(2806),
    [sym_float] = ACTIONS(2806),
    [sym_double] = ACTIONS(2806),
    [sym_real] = ACTIONS(2806),
    [sym_ifloat] = ACTIONS(2806),
    [sym_idouble] = ACTIONS(2806),
    [sym_ireal] = ACTIONS(2806),
    [sym_cfloat] = ACTIONS(2806),
    [sym_cdouble] = ACTIONS(2806),
    [sym_creal] = ACTIONS(2806),
    [sym_size_t] = ACTIONS(2806),
    [sym_ptrdiff_t] = ACTIONS(2806),
    [sym_string] = ACTIONS(2806),
    [sym_cstring] = ACTIONS(2806),
    [sym_dstring] = ACTIONS(2806),
    [sym_wstring] = ACTIONS(2806),
    [sym_noreturn] = ACTIONS(2806),
    [sym_true] = ACTIONS(2806),
    [sym_false] = ACTIONS(2806),
    [sym_null] = ACTIONS(2806),
    [sym_super] = ACTIONS(2806),
    [sym_this] = ACTIONS(2806),
    [sym_abstract] = ACTIONS(2806),
    [sym_alias] = ACTIONS(2806),
    [sym_align] = ACTIONS(2806),
    [sym_asm] = ACTIONS(2806),
    [sym_assert] = ACTIONS(2806),
    [sym_auto] = ACTIONS(2806),
    [sym_break] = ACTIONS(2806),
    [sym_case] = ACTIONS(2806),
    [sym_cast] = ACTIONS(2806),
    [sym_catch] = ACTIONS(2806),
    [sym_class] = ACTIONS(2806),
    [sym_const] = ACTIONS(2806),
    [sym_continue] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2806),
    [sym_default] = ACTIONS(2806),
    [sym_delegate] = ACTIONS(2806),
    [sym_delete] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(2806),
    [sym_do] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(2806),
    [sym_export] = ACTIONS(2806),
    [sym_extern] = ACTIONS(2806),
    [sym_final] = ACTIONS(2806),
    [sym_finally] = ACTIONS(2806),
    [sym_for] = ACTIONS(2806),
    [sym_foreach] = ACTIONS(2806),
    [sym_foreach_reverse] = ACTIONS(2806),
    [sym_function] = ACTIONS(2806),
    [sym_goto] = ACTIONS(2806),
    [sym_if] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(2806),
    [sym_import] = ACTIONS(2806),
    [sym_in] = ACTIONS(2806),
    [sym_inout] = ACTIONS(2806),
    [sym_interface] = ACTIONS(2806),
    [sym_invariant] = ACTIONS(2806),
    [sym_is] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2806),
    [sym_new] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(2806),
    [sym_out] = ACTIONS(2806),
    [sym_override] = ACTIONS(2806),
    [sym_package] = ACTIONS(2806),
    [sym_pragma] = ACTIONS(2806),
    [sym_private] = ACTIONS(2806),
    [sym_protected] = ACTIONS(2806),
    [sym_public] = ACTIONS(2806),
    [sym_pure] = ACTIONS(2806),
    [sym_ref] = ACTIONS(2806),
    [sym_return] = ACTIONS(2806),
    [sym_scope] = ACTIONS(2806),
    [sym_shared] = ACTIONS(2806),
    [sym_static] = ACTIONS(2806),
    [sym_struct] = ACTIONS(2806),
    [sym_switch] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(2806),
    [sym_template] = ACTIONS(2806),
    [sym_throw] = ACTIONS(2806),
    [sym_try] = ACTIONS(2806),
    [sym_typeid] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(2806),
    [sym_union] = ACTIONS(2806),
    [sym_unittest] = ACTIONS(2806),
    [sym_version] = ACTIONS(2806),
    [sym_while] = ACTIONS(2806),
    [sym_with] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(2806),
    [sym_traits] = ACTIONS(2806),
    [sym_vector] = ACTIONS(2806),
    [sym_void] = ACTIONS(2806),
    [anon_sym_BQUOTE] = ACTIONS(2804),
    [anon_sym_r_DQUOTE] = ACTIONS(2804),
    [anon_sym_x_DQUOTE] = ACTIONS(2804),
    [anon_sym_DQUOTE] = ACTIONS(2804),
    [anon_sym_i_BQUOTE] = ACTIONS(2804),
    [anon_sym_i_DQUOTE] = ACTIONS(2804),
    [anon_sym_iq_LBRACE] = ACTIONS(2804),
    [aux_sym_char_literal_token1] = ACTIONS(2804),
    [anon_sym_SQUOTE] = ACTIONS(2806),
    [anon_sym___DATE__] = ACTIONS(2806),
    [anon_sym___FILE__] = ACTIONS(2806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2806),
    [anon_sym___FUNCTION__] = ACTIONS(2806),
    [anon_sym___LINE__] = ACTIONS(2806),
    [anon_sym___MODULE__] = ACTIONS(2806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2806),
    [anon_sym___TIME__] = ACTIONS(2806),
    [anon_sym___TIMESTAMP__] = ACTIONS(2806),
    [anon_sym___VENDOR__] = ACTIONS(2806),
    [anon_sym___VERSION__] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2804),
    [sym_float_literal] = ACTIONS(2804),
    [sym__string] = ACTIONS(2804),
  },
  [1466] = {
    [sym_identifier] = ACTIONS(4740),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4743),
    [anon_sym_RBRACE] = ACTIONS(4743),
    [anon_sym_LBRACE] = ACTIONS(4743),
    [anon_sym_DOT] = ACTIONS(4743),
    [anon_sym_AMP] = ACTIONS(4743),
    [anon_sym_DASH] = ACTIONS(4740),
    [anon_sym_DASH_DASH] = ACTIONS(4743),
    [anon_sym_PLUS] = ACTIONS(4740),
    [anon_sym_PLUS_PLUS] = ACTIONS(4743),
    [anon_sym_BANG] = ACTIONS(4743),
    [anon_sym_LPAREN] = ACTIONS(4743),
    [anon_sym_RPAREN] = ACTIONS(4743),
    [anon_sym_LBRACK] = ACTIONS(4743),
    [anon_sym_SEMI] = ACTIONS(4743),
    [anon_sym_DOLLAR] = ACTIONS(4743),
    [anon_sym_STAR] = ACTIONS(4743),
    [anon_sym_TILDE] = ACTIONS(4743),
    [anon_sym_AT] = ACTIONS(4743),
    [sym_bool] = ACTIONS(4740),
    [sym_byte] = ACTIONS(4740),
    [sym_ubyte] = ACTIONS(4740),
    [sym_char] = ACTIONS(4740),
    [sym_short] = ACTIONS(4740),
    [sym_ushort] = ACTIONS(4740),
    [sym_int] = ACTIONS(4740),
    [sym_uint] = ACTIONS(4740),
    [sym_long] = ACTIONS(4740),
    [sym_ulong] = ACTIONS(4740),
    [sym_cent] = ACTIONS(4740),
    [sym_ucent] = ACTIONS(4740),
    [sym_wchar] = ACTIONS(4740),
    [sym_dchar] = ACTIONS(4740),
    [sym_float] = ACTIONS(4740),
    [sym_double] = ACTIONS(4740),
    [sym_real] = ACTIONS(4740),
    [sym_ifloat] = ACTIONS(4740),
    [sym_idouble] = ACTIONS(4740),
    [sym_ireal] = ACTIONS(4740),
    [sym_cfloat] = ACTIONS(4740),
    [sym_cdouble] = ACTIONS(4740),
    [sym_creal] = ACTIONS(4740),
    [sym_size_t] = ACTIONS(4740),
    [sym_ptrdiff_t] = ACTIONS(4740),
    [sym_string] = ACTIONS(4740),
    [sym_cstring] = ACTIONS(4740),
    [sym_dstring] = ACTIONS(4740),
    [sym_wstring] = ACTIONS(4740),
    [sym_noreturn] = ACTIONS(4740),
    [sym_true] = ACTIONS(4740),
    [sym_false] = ACTIONS(4740),
    [sym_null] = ACTIONS(4740),
    [sym_super] = ACTIONS(4740),
    [sym_this] = ACTIONS(4740),
    [sym_abstract] = ACTIONS(4740),
    [sym_alias] = ACTIONS(4740),
    [sym_align] = ACTIONS(4740),
    [sym_asm] = ACTIONS(4740),
    [sym_assert] = ACTIONS(4740),
    [sym_auto] = ACTIONS(4740),
    [sym_break] = ACTIONS(4740),
    [sym_case] = ACTIONS(4740),
    [sym_cast] = ACTIONS(4740),
    [sym_catch] = ACTIONS(4740),
    [sym_class] = ACTIONS(4740),
    [sym_const] = ACTIONS(4740),
    [sym_continue] = ACTIONS(4740),
    [sym_debug] = ACTIONS(4740),
    [sym_default] = ACTIONS(4740),
    [sym_delegate] = ACTIONS(4740),
    [sym_delete] = ACTIONS(4740),
    [sym_deprecated] = ACTIONS(4740),
    [sym_do] = ACTIONS(4740),
    [sym_else] = ACTIONS(4740),
    [sym_enum] = ACTIONS(4740),
    [sym_export] = ACTIONS(4740),
    [sym_extern] = ACTIONS(4740),
    [sym_final] = ACTIONS(4740),
    [sym_finally] = ACTIONS(4740),
    [sym_for] = ACTIONS(4740),
    [sym_foreach] = ACTIONS(4740),
    [sym_foreach_reverse] = ACTIONS(4740),
    [sym_function] = ACTIONS(4740),
    [sym_goto] = ACTIONS(4740),
    [sym_if] = ACTIONS(4740),
    [sym_immutable] = ACTIONS(4740),
    [sym_import] = ACTIONS(4740),
    [sym_in] = ACTIONS(4740),
    [sym_inout] = ACTIONS(4740),
    [sym_interface] = ACTIONS(4740),
    [sym_invariant] = ACTIONS(4740),
    [sym_is] = ACTIONS(4740),
    [sym_mixin] = ACTIONS(4740),
    [sym_new] = ACTIONS(4740),
    [sym_nothrow] = ACTIONS(4740),
    [sym_out] = ACTIONS(4740),
    [sym_override] = ACTIONS(4740),
    [sym_package] = ACTIONS(4740),
    [sym_pragma] = ACTIONS(4740),
    [sym_private] = ACTIONS(4740),
    [sym_protected] = ACTIONS(4740),
    [sym_public] = ACTIONS(4740),
    [sym_pure] = ACTIONS(4740),
    [sym_ref] = ACTIONS(4740),
    [sym_return] = ACTIONS(4740),
    [sym_scope] = ACTIONS(4740),
    [sym_shared] = ACTIONS(4740),
    [sym_static] = ACTIONS(4740),
    [sym_struct] = ACTIONS(4740),
    [sym_switch] = ACTIONS(4740),
    [sym_synchronized] = ACTIONS(4740),
    [sym_template] = ACTIONS(4740),
    [sym_throw] = ACTIONS(4740),
    [sym_try] = ACTIONS(4740),
    [sym_typeid] = ACTIONS(4740),
    [sym_typeof] = ACTIONS(4740),
    [sym_union] = ACTIONS(4740),
    [sym_unittest] = ACTIONS(4740),
    [sym_version] = ACTIONS(4740),
    [sym_while] = ACTIONS(4740),
    [sym_with] = ACTIONS(4740),
    [sym_gshared] = ACTIONS(4740),
    [sym_traits] = ACTIONS(4740),
    [sym_vector] = ACTIONS(4740),
    [sym_void] = ACTIONS(4740),
    [anon_sym_BQUOTE] = ACTIONS(4743),
    [anon_sym_r_DQUOTE] = ACTIONS(4743),
    [anon_sym_x_DQUOTE] = ACTIONS(4743),
    [anon_sym_DQUOTE] = ACTIONS(4743),
    [anon_sym_i_BQUOTE] = ACTIONS(4743),
    [anon_sym_i_DQUOTE] = ACTIONS(4743),
    [anon_sym_iq_LBRACE] = ACTIONS(4743),
    [aux_sym_char_literal_token1] = ACTIONS(4743),
    [anon_sym_SQUOTE] = ACTIONS(4740),
    [anon_sym___DATE__] = ACTIONS(4740),
    [anon_sym___FILE__] = ACTIONS(4740),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4740),
    [anon_sym___FUNCTION__] = ACTIONS(4740),
    [anon_sym___LINE__] = ACTIONS(4740),
    [anon_sym___MODULE__] = ACTIONS(4740),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4740),
    [anon_sym___TIME__] = ACTIONS(4740),
    [anon_sym___TIMESTAMP__] = ACTIONS(4740),
    [anon_sym___VENDOR__] = ACTIONS(4740),
    [anon_sym___VERSION__] = ACTIONS(4740),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4743),
    [sym_float_literal] = ACTIONS(4743),
    [sym__string] = ACTIONS(4743),
  },
  [1467] = {
    [sym_identifier] = ACTIONS(4746),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4748),
    [anon_sym_RBRACE] = ACTIONS(4748),
    [anon_sym_LBRACE] = ACTIONS(4748),
    [anon_sym_DOT] = ACTIONS(4748),
    [anon_sym_AMP] = ACTIONS(4748),
    [anon_sym_DASH] = ACTIONS(4746),
    [anon_sym_DASH_DASH] = ACTIONS(4748),
    [anon_sym_PLUS] = ACTIONS(4746),
    [anon_sym_PLUS_PLUS] = ACTIONS(4748),
    [anon_sym_BANG] = ACTIONS(4748),
    [anon_sym_LPAREN] = ACTIONS(4748),
    [anon_sym_RPAREN] = ACTIONS(4748),
    [anon_sym_LBRACK] = ACTIONS(4748),
    [anon_sym_SEMI] = ACTIONS(4748),
    [anon_sym_DOLLAR] = ACTIONS(4748),
    [anon_sym_STAR] = ACTIONS(4748),
    [anon_sym_TILDE] = ACTIONS(4748),
    [anon_sym_AT] = ACTIONS(4748),
    [sym_bool] = ACTIONS(4746),
    [sym_byte] = ACTIONS(4746),
    [sym_ubyte] = ACTIONS(4746),
    [sym_char] = ACTIONS(4746),
    [sym_short] = ACTIONS(4746),
    [sym_ushort] = ACTIONS(4746),
    [sym_int] = ACTIONS(4746),
    [sym_uint] = ACTIONS(4746),
    [sym_long] = ACTIONS(4746),
    [sym_ulong] = ACTIONS(4746),
    [sym_cent] = ACTIONS(4746),
    [sym_ucent] = ACTIONS(4746),
    [sym_wchar] = ACTIONS(4746),
    [sym_dchar] = ACTIONS(4746),
    [sym_float] = ACTIONS(4746),
    [sym_double] = ACTIONS(4746),
    [sym_real] = ACTIONS(4746),
    [sym_ifloat] = ACTIONS(4746),
    [sym_idouble] = ACTIONS(4746),
    [sym_ireal] = ACTIONS(4746),
    [sym_cfloat] = ACTIONS(4746),
    [sym_cdouble] = ACTIONS(4746),
    [sym_creal] = ACTIONS(4746),
    [sym_size_t] = ACTIONS(4746),
    [sym_ptrdiff_t] = ACTIONS(4746),
    [sym_string] = ACTIONS(4746),
    [sym_cstring] = ACTIONS(4746),
    [sym_dstring] = ACTIONS(4746),
    [sym_wstring] = ACTIONS(4746),
    [sym_noreturn] = ACTIONS(4746),
    [sym_true] = ACTIONS(4746),
    [sym_false] = ACTIONS(4746),
    [sym_null] = ACTIONS(4746),
    [sym_super] = ACTIONS(4746),
    [sym_this] = ACTIONS(4746),
    [sym_abstract] = ACTIONS(4746),
    [sym_alias] = ACTIONS(4746),
    [sym_align] = ACTIONS(4746),
    [sym_asm] = ACTIONS(4746),
    [sym_assert] = ACTIONS(4746),
    [sym_auto] = ACTIONS(4746),
    [sym_break] = ACTIONS(4746),
    [sym_case] = ACTIONS(4746),
    [sym_cast] = ACTIONS(4746),
    [sym_catch] = ACTIONS(4746),
    [sym_class] = ACTIONS(4746),
    [sym_const] = ACTIONS(4746),
    [sym_continue] = ACTIONS(4746),
    [sym_debug] = ACTIONS(4746),
    [sym_default] = ACTIONS(4746),
    [sym_delegate] = ACTIONS(4746),
    [sym_delete] = ACTIONS(4746),
    [sym_deprecated] = ACTIONS(4746),
    [sym_do] = ACTIONS(4746),
    [sym_else] = ACTIONS(4746),
    [sym_enum] = ACTIONS(4746),
    [sym_export] = ACTIONS(4746),
    [sym_extern] = ACTIONS(4746),
    [sym_final] = ACTIONS(4746),
    [sym_finally] = ACTIONS(4746),
    [sym_for] = ACTIONS(4746),
    [sym_foreach] = ACTIONS(4746),
    [sym_foreach_reverse] = ACTIONS(4746),
    [sym_function] = ACTIONS(4746),
    [sym_goto] = ACTIONS(4746),
    [sym_if] = ACTIONS(4746),
    [sym_immutable] = ACTIONS(4746),
    [sym_import] = ACTIONS(4746),
    [sym_in] = ACTIONS(4746),
    [sym_inout] = ACTIONS(4746),
    [sym_interface] = ACTIONS(4746),
    [sym_invariant] = ACTIONS(4746),
    [sym_is] = ACTIONS(4746),
    [sym_mixin] = ACTIONS(4746),
    [sym_new] = ACTIONS(4746),
    [sym_nothrow] = ACTIONS(4746),
    [sym_out] = ACTIONS(4746),
    [sym_override] = ACTIONS(4746),
    [sym_package] = ACTIONS(4746),
    [sym_pragma] = ACTIONS(4746),
    [sym_private] = ACTIONS(4746),
    [sym_protected] = ACTIONS(4746),
    [sym_public] = ACTIONS(4746),
    [sym_pure] = ACTIONS(4746),
    [sym_ref] = ACTIONS(4746),
    [sym_return] = ACTIONS(4746),
    [sym_scope] = ACTIONS(4746),
    [sym_shared] = ACTIONS(4746),
    [sym_static] = ACTIONS(4746),
    [sym_struct] = ACTIONS(4746),
    [sym_switch] = ACTIONS(4746),
    [sym_synchronized] = ACTIONS(4746),
    [sym_template] = ACTIONS(4746),
    [sym_throw] = ACTIONS(4746),
    [sym_try] = ACTIONS(4746),
    [sym_typeid] = ACTIONS(4746),
    [sym_typeof] = ACTIONS(4746),
    [sym_union] = ACTIONS(4746),
    [sym_unittest] = ACTIONS(4746),
    [sym_version] = ACTIONS(4746),
    [sym_while] = ACTIONS(4746),
    [sym_with] = ACTIONS(4746),
    [sym_gshared] = ACTIONS(4746),
    [sym_traits] = ACTIONS(4746),
    [sym_vector] = ACTIONS(4746),
    [sym_void] = ACTIONS(4746),
    [anon_sym_BQUOTE] = ACTIONS(4748),
    [anon_sym_r_DQUOTE] = ACTIONS(4748),
    [anon_sym_x_DQUOTE] = ACTIONS(4748),
    [anon_sym_DQUOTE] = ACTIONS(4748),
    [anon_sym_i_BQUOTE] = ACTIONS(4748),
    [anon_sym_i_DQUOTE] = ACTIONS(4748),
    [anon_sym_iq_LBRACE] = ACTIONS(4748),
    [aux_sym_char_literal_token1] = ACTIONS(4748),
    [anon_sym_SQUOTE] = ACTIONS(4746),
    [anon_sym___DATE__] = ACTIONS(4746),
    [anon_sym___FILE__] = ACTIONS(4746),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4746),
    [anon_sym___FUNCTION__] = ACTIONS(4746),
    [anon_sym___LINE__] = ACTIONS(4746),
    [anon_sym___MODULE__] = ACTIONS(4746),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4746),
    [anon_sym___TIME__] = ACTIONS(4746),
    [anon_sym___TIMESTAMP__] = ACTIONS(4746),
    [anon_sym___VENDOR__] = ACTIONS(4746),
    [anon_sym___VERSION__] = ACTIONS(4746),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4748),
    [sym_float_literal] = ACTIONS(4748),
    [sym__string] = ACTIONS(4748),
  },
  [1468] = {
    [sym_identifier] = ACTIONS(4750),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4752),
    [anon_sym_RBRACE] = ACTIONS(4752),
    [anon_sym_LBRACE] = ACTIONS(4752),
    [anon_sym_DOT] = ACTIONS(4752),
    [anon_sym_AMP] = ACTIONS(4752),
    [anon_sym_DASH] = ACTIONS(4750),
    [anon_sym_DASH_DASH] = ACTIONS(4752),
    [anon_sym_PLUS] = ACTIONS(4750),
    [anon_sym_PLUS_PLUS] = ACTIONS(4752),
    [anon_sym_BANG] = ACTIONS(4752),
    [anon_sym_LPAREN] = ACTIONS(4752),
    [anon_sym_RPAREN] = ACTIONS(4752),
    [anon_sym_LBRACK] = ACTIONS(4752),
    [anon_sym_SEMI] = ACTIONS(4752),
    [anon_sym_DOLLAR] = ACTIONS(4752),
    [anon_sym_STAR] = ACTIONS(4752),
    [anon_sym_TILDE] = ACTIONS(4752),
    [anon_sym_AT] = ACTIONS(4752),
    [sym_bool] = ACTIONS(4750),
    [sym_byte] = ACTIONS(4750),
    [sym_ubyte] = ACTIONS(4750),
    [sym_char] = ACTIONS(4750),
    [sym_short] = ACTIONS(4750),
    [sym_ushort] = ACTIONS(4750),
    [sym_int] = ACTIONS(4750),
    [sym_uint] = ACTIONS(4750),
    [sym_long] = ACTIONS(4750),
    [sym_ulong] = ACTIONS(4750),
    [sym_cent] = ACTIONS(4750),
    [sym_ucent] = ACTIONS(4750),
    [sym_wchar] = ACTIONS(4750),
    [sym_dchar] = ACTIONS(4750),
    [sym_float] = ACTIONS(4750),
    [sym_double] = ACTIONS(4750),
    [sym_real] = ACTIONS(4750),
    [sym_ifloat] = ACTIONS(4750),
    [sym_idouble] = ACTIONS(4750),
    [sym_ireal] = ACTIONS(4750),
    [sym_cfloat] = ACTIONS(4750),
    [sym_cdouble] = ACTIONS(4750),
    [sym_creal] = ACTIONS(4750),
    [sym_size_t] = ACTIONS(4750),
    [sym_ptrdiff_t] = ACTIONS(4750),
    [sym_string] = ACTIONS(4750),
    [sym_cstring] = ACTIONS(4750),
    [sym_dstring] = ACTIONS(4750),
    [sym_wstring] = ACTIONS(4750),
    [sym_noreturn] = ACTIONS(4750),
    [sym_true] = ACTIONS(4750),
    [sym_false] = ACTIONS(4750),
    [sym_null] = ACTIONS(4750),
    [sym_super] = ACTIONS(4750),
    [sym_this] = ACTIONS(4750),
    [sym_abstract] = ACTIONS(4750),
    [sym_alias] = ACTIONS(4750),
    [sym_align] = ACTIONS(4750),
    [sym_asm] = ACTIONS(4750),
    [sym_assert] = ACTIONS(4750),
    [sym_auto] = ACTIONS(4750),
    [sym_break] = ACTIONS(4750),
    [sym_case] = ACTIONS(4750),
    [sym_cast] = ACTIONS(4750),
    [sym_catch] = ACTIONS(4750),
    [sym_class] = ACTIONS(4750),
    [sym_const] = ACTIONS(4750),
    [sym_continue] = ACTIONS(4750),
    [sym_debug] = ACTIONS(4750),
    [sym_default] = ACTIONS(4750),
    [sym_delegate] = ACTIONS(4750),
    [sym_delete] = ACTIONS(4750),
    [sym_deprecated] = ACTIONS(4750),
    [sym_do] = ACTIONS(4750),
    [sym_else] = ACTIONS(4750),
    [sym_enum] = ACTIONS(4750),
    [sym_export] = ACTIONS(4750),
    [sym_extern] = ACTIONS(4750),
    [sym_final] = ACTIONS(4750),
    [sym_finally] = ACTIONS(4750),
    [sym_for] = ACTIONS(4750),
    [sym_foreach] = ACTIONS(4750),
    [sym_foreach_reverse] = ACTIONS(4750),
    [sym_function] = ACTIONS(4750),
    [sym_goto] = ACTIONS(4750),
    [sym_if] = ACTIONS(4750),
    [sym_immutable] = ACTIONS(4750),
    [sym_import] = ACTIONS(4750),
    [sym_in] = ACTIONS(4750),
    [sym_inout] = ACTIONS(4750),
    [sym_interface] = ACTIONS(4750),
    [sym_invariant] = ACTIONS(4750),
    [sym_is] = ACTIONS(4750),
    [sym_mixin] = ACTIONS(4750),
    [sym_new] = ACTIONS(4750),
    [sym_nothrow] = ACTIONS(4750),
    [sym_out] = ACTIONS(4750),
    [sym_override] = ACTIONS(4750),
    [sym_package] = ACTIONS(4750),
    [sym_pragma] = ACTIONS(4750),
    [sym_private] = ACTIONS(4750),
    [sym_protected] = ACTIONS(4750),
    [sym_public] = ACTIONS(4750),
    [sym_pure] = ACTIONS(4750),
    [sym_ref] = ACTIONS(4750),
    [sym_return] = ACTIONS(4750),
    [sym_scope] = ACTIONS(4750),
    [sym_shared] = ACTIONS(4750),
    [sym_static] = ACTIONS(4750),
    [sym_struct] = ACTIONS(4750),
    [sym_switch] = ACTIONS(4750),
    [sym_synchronized] = ACTIONS(4750),
    [sym_template] = ACTIONS(4750),
    [sym_throw] = ACTIONS(4750),
    [sym_try] = ACTIONS(4750),
    [sym_typeid] = ACTIONS(4750),
    [sym_typeof] = ACTIONS(4750),
    [sym_union] = ACTIONS(4750),
    [sym_unittest] = ACTIONS(4750),
    [sym_version] = ACTIONS(4750),
    [sym_while] = ACTIONS(4750),
    [sym_with] = ACTIONS(4750),
    [sym_gshared] = ACTIONS(4750),
    [sym_traits] = ACTIONS(4750),
    [sym_vector] = ACTIONS(4750),
    [sym_void] = ACTIONS(4750),
    [anon_sym_BQUOTE] = ACTIONS(4752),
    [anon_sym_r_DQUOTE] = ACTIONS(4752),
    [anon_sym_x_DQUOTE] = ACTIONS(4752),
    [anon_sym_DQUOTE] = ACTIONS(4752),
    [anon_sym_i_BQUOTE] = ACTIONS(4752),
    [anon_sym_i_DQUOTE] = ACTIONS(4752),
    [anon_sym_iq_LBRACE] = ACTIONS(4752),
    [aux_sym_char_literal_token1] = ACTIONS(4752),
    [anon_sym_SQUOTE] = ACTIONS(4750),
    [anon_sym___DATE__] = ACTIONS(4750),
    [anon_sym___FILE__] = ACTIONS(4750),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4750),
    [anon_sym___FUNCTION__] = ACTIONS(4750),
    [anon_sym___LINE__] = ACTIONS(4750),
    [anon_sym___MODULE__] = ACTIONS(4750),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4750),
    [anon_sym___TIME__] = ACTIONS(4750),
    [anon_sym___TIMESTAMP__] = ACTIONS(4750),
    [anon_sym___VENDOR__] = ACTIONS(4750),
    [anon_sym___VERSION__] = ACTIONS(4750),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4752),
    [sym_float_literal] = ACTIONS(4752),
    [sym__string] = ACTIONS(4752),
  },
  [1469] = {
    [sym_identifier] = ACTIONS(4754),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4756),
    [anon_sym_RBRACE] = ACTIONS(4756),
    [anon_sym_LBRACE] = ACTIONS(4756),
    [anon_sym_DOT] = ACTIONS(4756),
    [anon_sym_AMP] = ACTIONS(4756),
    [anon_sym_DASH] = ACTIONS(4754),
    [anon_sym_DASH_DASH] = ACTIONS(4756),
    [anon_sym_PLUS] = ACTIONS(4754),
    [anon_sym_PLUS_PLUS] = ACTIONS(4756),
    [anon_sym_BANG] = ACTIONS(4756),
    [anon_sym_LPAREN] = ACTIONS(4756),
    [anon_sym_RPAREN] = ACTIONS(4756),
    [anon_sym_LBRACK] = ACTIONS(4756),
    [anon_sym_SEMI] = ACTIONS(4756),
    [anon_sym_DOLLAR] = ACTIONS(4756),
    [anon_sym_STAR] = ACTIONS(4756),
    [anon_sym_TILDE] = ACTIONS(4756),
    [anon_sym_AT] = ACTIONS(4756),
    [sym_bool] = ACTIONS(4754),
    [sym_byte] = ACTIONS(4754),
    [sym_ubyte] = ACTIONS(4754),
    [sym_char] = ACTIONS(4754),
    [sym_short] = ACTIONS(4754),
    [sym_ushort] = ACTIONS(4754),
    [sym_int] = ACTIONS(4754),
    [sym_uint] = ACTIONS(4754),
    [sym_long] = ACTIONS(4754),
    [sym_ulong] = ACTIONS(4754),
    [sym_cent] = ACTIONS(4754),
    [sym_ucent] = ACTIONS(4754),
    [sym_wchar] = ACTIONS(4754),
    [sym_dchar] = ACTIONS(4754),
    [sym_float] = ACTIONS(4754),
    [sym_double] = ACTIONS(4754),
    [sym_real] = ACTIONS(4754),
    [sym_ifloat] = ACTIONS(4754),
    [sym_idouble] = ACTIONS(4754),
    [sym_ireal] = ACTIONS(4754),
    [sym_cfloat] = ACTIONS(4754),
    [sym_cdouble] = ACTIONS(4754),
    [sym_creal] = ACTIONS(4754),
    [sym_size_t] = ACTIONS(4754),
    [sym_ptrdiff_t] = ACTIONS(4754),
    [sym_string] = ACTIONS(4754),
    [sym_cstring] = ACTIONS(4754),
    [sym_dstring] = ACTIONS(4754),
    [sym_wstring] = ACTIONS(4754),
    [sym_noreturn] = ACTIONS(4754),
    [sym_true] = ACTIONS(4754),
    [sym_false] = ACTIONS(4754),
    [sym_null] = ACTIONS(4754),
    [sym_super] = ACTIONS(4754),
    [sym_this] = ACTIONS(4754),
    [sym_abstract] = ACTIONS(4754),
    [sym_alias] = ACTIONS(4754),
    [sym_align] = ACTIONS(4754),
    [sym_asm] = ACTIONS(4754),
    [sym_assert] = ACTIONS(4754),
    [sym_auto] = ACTIONS(4754),
    [sym_break] = ACTIONS(4754),
    [sym_case] = ACTIONS(4754),
    [sym_cast] = ACTIONS(4754),
    [sym_catch] = ACTIONS(4754),
    [sym_class] = ACTIONS(4754),
    [sym_const] = ACTIONS(4754),
    [sym_continue] = ACTIONS(4754),
    [sym_debug] = ACTIONS(4754),
    [sym_default] = ACTIONS(4754),
    [sym_delegate] = ACTIONS(4754),
    [sym_delete] = ACTIONS(4754),
    [sym_deprecated] = ACTIONS(4754),
    [sym_do] = ACTIONS(4754),
    [sym_else] = ACTIONS(4754),
    [sym_enum] = ACTIONS(4754),
    [sym_export] = ACTIONS(4754),
    [sym_extern] = ACTIONS(4754),
    [sym_final] = ACTIONS(4754),
    [sym_finally] = ACTIONS(4754),
    [sym_for] = ACTIONS(4754),
    [sym_foreach] = ACTIONS(4754),
    [sym_foreach_reverse] = ACTIONS(4754),
    [sym_function] = ACTIONS(4754),
    [sym_goto] = ACTIONS(4754),
    [sym_if] = ACTIONS(4754),
    [sym_immutable] = ACTIONS(4754),
    [sym_import] = ACTIONS(4754),
    [sym_in] = ACTIONS(4754),
    [sym_inout] = ACTIONS(4754),
    [sym_interface] = ACTIONS(4754),
    [sym_invariant] = ACTIONS(4754),
    [sym_is] = ACTIONS(4754),
    [sym_mixin] = ACTIONS(4754),
    [sym_new] = ACTIONS(4754),
    [sym_nothrow] = ACTIONS(4754),
    [sym_out] = ACTIONS(4754),
    [sym_override] = ACTIONS(4754),
    [sym_package] = ACTIONS(4754),
    [sym_pragma] = ACTIONS(4754),
    [sym_private] = ACTIONS(4754),
    [sym_protected] = ACTIONS(4754),
    [sym_public] = ACTIONS(4754),
    [sym_pure] = ACTIONS(4754),
    [sym_ref] = ACTIONS(4754),
    [sym_return] = ACTIONS(4754),
    [sym_scope] = ACTIONS(4754),
    [sym_shared] = ACTIONS(4754),
    [sym_static] = ACTIONS(4754),
    [sym_struct] = ACTIONS(4754),
    [sym_switch] = ACTIONS(4754),
    [sym_synchronized] = ACTIONS(4754),
    [sym_template] = ACTIONS(4754),
    [sym_throw] = ACTIONS(4754),
    [sym_try] = ACTIONS(4754),
    [sym_typeid] = ACTIONS(4754),
    [sym_typeof] = ACTIONS(4754),
    [sym_union] = ACTIONS(4754),
    [sym_unittest] = ACTIONS(4754),
    [sym_version] = ACTIONS(4754),
    [sym_while] = ACTIONS(4754),
    [sym_with] = ACTIONS(4754),
    [sym_gshared] = ACTIONS(4754),
    [sym_traits] = ACTIONS(4754),
    [sym_vector] = ACTIONS(4754),
    [sym_void] = ACTIONS(4754),
    [anon_sym_BQUOTE] = ACTIONS(4756),
    [anon_sym_r_DQUOTE] = ACTIONS(4756),
    [anon_sym_x_DQUOTE] = ACTIONS(4756),
    [anon_sym_DQUOTE] = ACTIONS(4756),
    [anon_sym_i_BQUOTE] = ACTIONS(4756),
    [anon_sym_i_DQUOTE] = ACTIONS(4756),
    [anon_sym_iq_LBRACE] = ACTIONS(4756),
    [aux_sym_char_literal_token1] = ACTIONS(4756),
    [anon_sym_SQUOTE] = ACTIONS(4754),
    [anon_sym___DATE__] = ACTIONS(4754),
    [anon_sym___FILE__] = ACTIONS(4754),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4754),
    [anon_sym___FUNCTION__] = ACTIONS(4754),
    [anon_sym___LINE__] = ACTIONS(4754),
    [anon_sym___MODULE__] = ACTIONS(4754),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4754),
    [anon_sym___TIME__] = ACTIONS(4754),
    [anon_sym___TIMESTAMP__] = ACTIONS(4754),
    [anon_sym___VENDOR__] = ACTIONS(4754),
    [anon_sym___VERSION__] = ACTIONS(4754),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4756),
    [sym_float_literal] = ACTIONS(4756),
    [sym__string] = ACTIONS(4756),
  },
  [1470] = {
    [sym_identifier] = ACTIONS(4758),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4760),
    [anon_sym_RBRACE] = ACTIONS(4760),
    [anon_sym_LBRACE] = ACTIONS(4760),
    [anon_sym_DOT] = ACTIONS(4760),
    [anon_sym_AMP] = ACTIONS(4760),
    [anon_sym_DASH] = ACTIONS(4758),
    [anon_sym_DASH_DASH] = ACTIONS(4760),
    [anon_sym_PLUS] = ACTIONS(4758),
    [anon_sym_PLUS_PLUS] = ACTIONS(4760),
    [anon_sym_BANG] = ACTIONS(4760),
    [anon_sym_LPAREN] = ACTIONS(4760),
    [anon_sym_RPAREN] = ACTIONS(4760),
    [anon_sym_LBRACK] = ACTIONS(4760),
    [anon_sym_SEMI] = ACTIONS(4760),
    [anon_sym_DOLLAR] = ACTIONS(4760),
    [anon_sym_STAR] = ACTIONS(4760),
    [anon_sym_TILDE] = ACTIONS(4760),
    [anon_sym_AT] = ACTIONS(4760),
    [sym_bool] = ACTIONS(4758),
    [sym_byte] = ACTIONS(4758),
    [sym_ubyte] = ACTIONS(4758),
    [sym_char] = ACTIONS(4758),
    [sym_short] = ACTIONS(4758),
    [sym_ushort] = ACTIONS(4758),
    [sym_int] = ACTIONS(4758),
    [sym_uint] = ACTIONS(4758),
    [sym_long] = ACTIONS(4758),
    [sym_ulong] = ACTIONS(4758),
    [sym_cent] = ACTIONS(4758),
    [sym_ucent] = ACTIONS(4758),
    [sym_wchar] = ACTIONS(4758),
    [sym_dchar] = ACTIONS(4758),
    [sym_float] = ACTIONS(4758),
    [sym_double] = ACTIONS(4758),
    [sym_real] = ACTIONS(4758),
    [sym_ifloat] = ACTIONS(4758),
    [sym_idouble] = ACTIONS(4758),
    [sym_ireal] = ACTIONS(4758),
    [sym_cfloat] = ACTIONS(4758),
    [sym_cdouble] = ACTIONS(4758),
    [sym_creal] = ACTIONS(4758),
    [sym_size_t] = ACTIONS(4758),
    [sym_ptrdiff_t] = ACTIONS(4758),
    [sym_string] = ACTIONS(4758),
    [sym_cstring] = ACTIONS(4758),
    [sym_dstring] = ACTIONS(4758),
    [sym_wstring] = ACTIONS(4758),
    [sym_noreturn] = ACTIONS(4758),
    [sym_true] = ACTIONS(4758),
    [sym_false] = ACTIONS(4758),
    [sym_null] = ACTIONS(4758),
    [sym_super] = ACTIONS(4758),
    [sym_this] = ACTIONS(4758),
    [sym_abstract] = ACTIONS(4758),
    [sym_alias] = ACTIONS(4758),
    [sym_align] = ACTIONS(4758),
    [sym_asm] = ACTIONS(4758),
    [sym_assert] = ACTIONS(4758),
    [sym_auto] = ACTIONS(4758),
    [sym_break] = ACTIONS(4758),
    [sym_case] = ACTIONS(4758),
    [sym_cast] = ACTIONS(4758),
    [sym_catch] = ACTIONS(4758),
    [sym_class] = ACTIONS(4758),
    [sym_const] = ACTIONS(4758),
    [sym_continue] = ACTIONS(4758),
    [sym_debug] = ACTIONS(4758),
    [sym_default] = ACTIONS(4758),
    [sym_delegate] = ACTIONS(4758),
    [sym_delete] = ACTIONS(4758),
    [sym_deprecated] = ACTIONS(4758),
    [sym_do] = ACTIONS(4758),
    [sym_else] = ACTIONS(4758),
    [sym_enum] = ACTIONS(4758),
    [sym_export] = ACTIONS(4758),
    [sym_extern] = ACTIONS(4758),
    [sym_final] = ACTIONS(4758),
    [sym_finally] = ACTIONS(4758),
    [sym_for] = ACTIONS(4758),
    [sym_foreach] = ACTIONS(4758),
    [sym_foreach_reverse] = ACTIONS(4758),
    [sym_function] = ACTIONS(4758),
    [sym_goto] = ACTIONS(4758),
    [sym_if] = ACTIONS(4758),
    [sym_immutable] = ACTIONS(4758),
    [sym_import] = ACTIONS(4758),
    [sym_in] = ACTIONS(4758),
    [sym_inout] = ACTIONS(4758),
    [sym_interface] = ACTIONS(4758),
    [sym_invariant] = ACTIONS(4758),
    [sym_is] = ACTIONS(4758),
    [sym_mixin] = ACTIONS(4758),
    [sym_new] = ACTIONS(4758),
    [sym_nothrow] = ACTIONS(4758),
    [sym_out] = ACTIONS(4758),
    [sym_override] = ACTIONS(4758),
    [sym_package] = ACTIONS(4758),
    [sym_pragma] = ACTIONS(4758),
    [sym_private] = ACTIONS(4758),
    [sym_protected] = ACTIONS(4758),
    [sym_public] = ACTIONS(4758),
    [sym_pure] = ACTIONS(4758),
    [sym_ref] = ACTIONS(4758),
    [sym_return] = ACTIONS(4758),
    [sym_scope] = ACTIONS(4758),
    [sym_shared] = ACTIONS(4758),
    [sym_static] = ACTIONS(4758),
    [sym_struct] = ACTIONS(4758),
    [sym_switch] = ACTIONS(4758),
    [sym_synchronized] = ACTIONS(4758),
    [sym_template] = ACTIONS(4758),
    [sym_throw] = ACTIONS(4758),
    [sym_try] = ACTIONS(4758),
    [sym_typeid] = ACTIONS(4758),
    [sym_typeof] = ACTIONS(4758),
    [sym_union] = ACTIONS(4758),
    [sym_unittest] = ACTIONS(4758),
    [sym_version] = ACTIONS(4758),
    [sym_while] = ACTIONS(4758),
    [sym_with] = ACTIONS(4758),
    [sym_gshared] = ACTIONS(4758),
    [sym_traits] = ACTIONS(4758),
    [sym_vector] = ACTIONS(4758),
    [sym_void] = ACTIONS(4758),
    [anon_sym_BQUOTE] = ACTIONS(4760),
    [anon_sym_r_DQUOTE] = ACTIONS(4760),
    [anon_sym_x_DQUOTE] = ACTIONS(4760),
    [anon_sym_DQUOTE] = ACTIONS(4760),
    [anon_sym_i_BQUOTE] = ACTIONS(4760),
    [anon_sym_i_DQUOTE] = ACTIONS(4760),
    [anon_sym_iq_LBRACE] = ACTIONS(4760),
    [aux_sym_char_literal_token1] = ACTIONS(4760),
    [anon_sym_SQUOTE] = ACTIONS(4758),
    [anon_sym___DATE__] = ACTIONS(4758),
    [anon_sym___FILE__] = ACTIONS(4758),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4758),
    [anon_sym___FUNCTION__] = ACTIONS(4758),
    [anon_sym___LINE__] = ACTIONS(4758),
    [anon_sym___MODULE__] = ACTIONS(4758),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4758),
    [anon_sym___TIME__] = ACTIONS(4758),
    [anon_sym___TIMESTAMP__] = ACTIONS(4758),
    [anon_sym___VENDOR__] = ACTIONS(4758),
    [anon_sym___VERSION__] = ACTIONS(4758),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4760),
    [sym_float_literal] = ACTIONS(4760),
    [sym__string] = ACTIONS(4760),
  },
  [1471] = {
    [sym_identifier] = ACTIONS(4762),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4764),
    [anon_sym_RBRACE] = ACTIONS(4764),
    [anon_sym_LBRACE] = ACTIONS(4764),
    [anon_sym_DOT] = ACTIONS(4764),
    [anon_sym_AMP] = ACTIONS(4764),
    [anon_sym_DASH] = ACTIONS(4762),
    [anon_sym_DASH_DASH] = ACTIONS(4764),
    [anon_sym_PLUS] = ACTIONS(4762),
    [anon_sym_PLUS_PLUS] = ACTIONS(4764),
    [anon_sym_BANG] = ACTIONS(4764),
    [anon_sym_LPAREN] = ACTIONS(4764),
    [anon_sym_RPAREN] = ACTIONS(4764),
    [anon_sym_LBRACK] = ACTIONS(4764),
    [anon_sym_SEMI] = ACTIONS(4764),
    [anon_sym_DOLLAR] = ACTIONS(4764),
    [anon_sym_STAR] = ACTIONS(4764),
    [anon_sym_TILDE] = ACTIONS(4764),
    [anon_sym_AT] = ACTIONS(4764),
    [sym_bool] = ACTIONS(4762),
    [sym_byte] = ACTIONS(4762),
    [sym_ubyte] = ACTIONS(4762),
    [sym_char] = ACTIONS(4762),
    [sym_short] = ACTIONS(4762),
    [sym_ushort] = ACTIONS(4762),
    [sym_int] = ACTIONS(4762),
    [sym_uint] = ACTIONS(4762),
    [sym_long] = ACTIONS(4762),
    [sym_ulong] = ACTIONS(4762),
    [sym_cent] = ACTIONS(4762),
    [sym_ucent] = ACTIONS(4762),
    [sym_wchar] = ACTIONS(4762),
    [sym_dchar] = ACTIONS(4762),
    [sym_float] = ACTIONS(4762),
    [sym_double] = ACTIONS(4762),
    [sym_real] = ACTIONS(4762),
    [sym_ifloat] = ACTIONS(4762),
    [sym_idouble] = ACTIONS(4762),
    [sym_ireal] = ACTIONS(4762),
    [sym_cfloat] = ACTIONS(4762),
    [sym_cdouble] = ACTIONS(4762),
    [sym_creal] = ACTIONS(4762),
    [sym_size_t] = ACTIONS(4762),
    [sym_ptrdiff_t] = ACTIONS(4762),
    [sym_string] = ACTIONS(4762),
    [sym_cstring] = ACTIONS(4762),
    [sym_dstring] = ACTIONS(4762),
    [sym_wstring] = ACTIONS(4762),
    [sym_noreturn] = ACTIONS(4762),
    [sym_true] = ACTIONS(4762),
    [sym_false] = ACTIONS(4762),
    [sym_null] = ACTIONS(4762),
    [sym_super] = ACTIONS(4762),
    [sym_this] = ACTIONS(4762),
    [sym_abstract] = ACTIONS(4762),
    [sym_alias] = ACTIONS(4762),
    [sym_align] = ACTIONS(4762),
    [sym_asm] = ACTIONS(4762),
    [sym_assert] = ACTIONS(4762),
    [sym_auto] = ACTIONS(4762),
    [sym_break] = ACTIONS(4762),
    [sym_case] = ACTIONS(4762),
    [sym_cast] = ACTIONS(4762),
    [sym_catch] = ACTIONS(4762),
    [sym_class] = ACTIONS(4762),
    [sym_const] = ACTIONS(4762),
    [sym_continue] = ACTIONS(4762),
    [sym_debug] = ACTIONS(4762),
    [sym_default] = ACTIONS(4762),
    [sym_delegate] = ACTIONS(4762),
    [sym_delete] = ACTIONS(4762),
    [sym_deprecated] = ACTIONS(4762),
    [sym_do] = ACTIONS(4762),
    [sym_else] = ACTIONS(4762),
    [sym_enum] = ACTIONS(4762),
    [sym_export] = ACTIONS(4762),
    [sym_extern] = ACTIONS(4762),
    [sym_final] = ACTIONS(4762),
    [sym_finally] = ACTIONS(4762),
    [sym_for] = ACTIONS(4762),
    [sym_foreach] = ACTIONS(4762),
    [sym_foreach_reverse] = ACTIONS(4762),
    [sym_function] = ACTIONS(4762),
    [sym_goto] = ACTIONS(4762),
    [sym_if] = ACTIONS(4762),
    [sym_immutable] = ACTIONS(4762),
    [sym_import] = ACTIONS(4762),
    [sym_in] = ACTIONS(4762),
    [sym_inout] = ACTIONS(4762),
    [sym_interface] = ACTIONS(4762),
    [sym_invariant] = ACTIONS(4762),
    [sym_is] = ACTIONS(4762),
    [sym_mixin] = ACTIONS(4762),
    [sym_new] = ACTIONS(4762),
    [sym_nothrow] = ACTIONS(4762),
    [sym_out] = ACTIONS(4762),
    [sym_override] = ACTIONS(4762),
    [sym_package] = ACTIONS(4762),
    [sym_pragma] = ACTIONS(4762),
    [sym_private] = ACTIONS(4762),
    [sym_protected] = ACTIONS(4762),
    [sym_public] = ACTIONS(4762),
    [sym_pure] = ACTIONS(4762),
    [sym_ref] = ACTIONS(4762),
    [sym_return] = ACTIONS(4762),
    [sym_scope] = ACTIONS(4762),
    [sym_shared] = ACTIONS(4762),
    [sym_static] = ACTIONS(4762),
    [sym_struct] = ACTIONS(4762),
    [sym_switch] = ACTIONS(4762),
    [sym_synchronized] = ACTIONS(4762),
    [sym_template] = ACTIONS(4762),
    [sym_throw] = ACTIONS(4762),
    [sym_try] = ACTIONS(4762),
    [sym_typeid] = ACTIONS(4762),
    [sym_typeof] = ACTIONS(4762),
    [sym_union] = ACTIONS(4762),
    [sym_unittest] = ACTIONS(4762),
    [sym_version] = ACTIONS(4762),
    [sym_while] = ACTIONS(4762),
    [sym_with] = ACTIONS(4762),
    [sym_gshared] = ACTIONS(4762),
    [sym_traits] = ACTIONS(4762),
    [sym_vector] = ACTIONS(4762),
    [sym_void] = ACTIONS(4762),
    [anon_sym_BQUOTE] = ACTIONS(4764),
    [anon_sym_r_DQUOTE] = ACTIONS(4764),
    [anon_sym_x_DQUOTE] = ACTIONS(4764),
    [anon_sym_DQUOTE] = ACTIONS(4764),
    [anon_sym_i_BQUOTE] = ACTIONS(4764),
    [anon_sym_i_DQUOTE] = ACTIONS(4764),
    [anon_sym_iq_LBRACE] = ACTIONS(4764),
    [aux_sym_char_literal_token1] = ACTIONS(4764),
    [anon_sym_SQUOTE] = ACTIONS(4762),
    [anon_sym___DATE__] = ACTIONS(4762),
    [anon_sym___FILE__] = ACTIONS(4762),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4762),
    [anon_sym___FUNCTION__] = ACTIONS(4762),
    [anon_sym___LINE__] = ACTIONS(4762),
    [anon_sym___MODULE__] = ACTIONS(4762),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4762),
    [anon_sym___TIME__] = ACTIONS(4762),
    [anon_sym___TIMESTAMP__] = ACTIONS(4762),
    [anon_sym___VENDOR__] = ACTIONS(4762),
    [anon_sym___VERSION__] = ACTIONS(4762),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4764),
    [sym_float_literal] = ACTIONS(4764),
    [sym__string] = ACTIONS(4764),
  },
  [1472] = {
    [sym_identifier] = ACTIONS(4766),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4768),
    [anon_sym_RBRACE] = ACTIONS(4768),
    [anon_sym_LBRACE] = ACTIONS(4768),
    [anon_sym_DOT] = ACTIONS(4768),
    [anon_sym_AMP] = ACTIONS(4768),
    [anon_sym_DASH] = ACTIONS(4766),
    [anon_sym_DASH_DASH] = ACTIONS(4768),
    [anon_sym_PLUS] = ACTIONS(4766),
    [anon_sym_PLUS_PLUS] = ACTIONS(4768),
    [anon_sym_BANG] = ACTIONS(4768),
    [anon_sym_LPAREN] = ACTIONS(4768),
    [anon_sym_RPAREN] = ACTIONS(4768),
    [anon_sym_LBRACK] = ACTIONS(4768),
    [anon_sym_SEMI] = ACTIONS(4768),
    [anon_sym_DOLLAR] = ACTIONS(4768),
    [anon_sym_STAR] = ACTIONS(4768),
    [anon_sym_TILDE] = ACTIONS(4768),
    [anon_sym_AT] = ACTIONS(4768),
    [sym_bool] = ACTIONS(4766),
    [sym_byte] = ACTIONS(4766),
    [sym_ubyte] = ACTIONS(4766),
    [sym_char] = ACTIONS(4766),
    [sym_short] = ACTIONS(4766),
    [sym_ushort] = ACTIONS(4766),
    [sym_int] = ACTIONS(4766),
    [sym_uint] = ACTIONS(4766),
    [sym_long] = ACTIONS(4766),
    [sym_ulong] = ACTIONS(4766),
    [sym_cent] = ACTIONS(4766),
    [sym_ucent] = ACTIONS(4766),
    [sym_wchar] = ACTIONS(4766),
    [sym_dchar] = ACTIONS(4766),
    [sym_float] = ACTIONS(4766),
    [sym_double] = ACTIONS(4766),
    [sym_real] = ACTIONS(4766),
    [sym_ifloat] = ACTIONS(4766),
    [sym_idouble] = ACTIONS(4766),
    [sym_ireal] = ACTIONS(4766),
    [sym_cfloat] = ACTIONS(4766),
    [sym_cdouble] = ACTIONS(4766),
    [sym_creal] = ACTIONS(4766),
    [sym_size_t] = ACTIONS(4766),
    [sym_ptrdiff_t] = ACTIONS(4766),
    [sym_string] = ACTIONS(4766),
    [sym_cstring] = ACTIONS(4766),
    [sym_dstring] = ACTIONS(4766),
    [sym_wstring] = ACTIONS(4766),
    [sym_noreturn] = ACTIONS(4766),
    [sym_true] = ACTIONS(4766),
    [sym_false] = ACTIONS(4766),
    [sym_null] = ACTIONS(4766),
    [sym_super] = ACTIONS(4766),
    [sym_this] = ACTIONS(4766),
    [sym_abstract] = ACTIONS(4766),
    [sym_alias] = ACTIONS(4766),
    [sym_align] = ACTIONS(4766),
    [sym_asm] = ACTIONS(4766),
    [sym_assert] = ACTIONS(4766),
    [sym_auto] = ACTIONS(4766),
    [sym_break] = ACTIONS(4766),
    [sym_case] = ACTIONS(4766),
    [sym_cast] = ACTIONS(4766),
    [sym_catch] = ACTIONS(4766),
    [sym_class] = ACTIONS(4766),
    [sym_const] = ACTIONS(4766),
    [sym_continue] = ACTIONS(4766),
    [sym_debug] = ACTIONS(4766),
    [sym_default] = ACTIONS(4766),
    [sym_delegate] = ACTIONS(4766),
    [sym_delete] = ACTIONS(4766),
    [sym_deprecated] = ACTIONS(4766),
    [sym_do] = ACTIONS(4766),
    [sym_else] = ACTIONS(4766),
    [sym_enum] = ACTIONS(4766),
    [sym_export] = ACTIONS(4766),
    [sym_extern] = ACTIONS(4766),
    [sym_final] = ACTIONS(4766),
    [sym_finally] = ACTIONS(4766),
    [sym_for] = ACTIONS(4766),
    [sym_foreach] = ACTIONS(4766),
    [sym_foreach_reverse] = ACTIONS(4766),
    [sym_function] = ACTIONS(4766),
    [sym_goto] = ACTIONS(4766),
    [sym_if] = ACTIONS(4766),
    [sym_immutable] = ACTIONS(4766),
    [sym_import] = ACTIONS(4766),
    [sym_in] = ACTIONS(4766),
    [sym_inout] = ACTIONS(4766),
    [sym_interface] = ACTIONS(4766),
    [sym_invariant] = ACTIONS(4766),
    [sym_is] = ACTIONS(4766),
    [sym_mixin] = ACTIONS(4766),
    [sym_new] = ACTIONS(4766),
    [sym_nothrow] = ACTIONS(4766),
    [sym_out] = ACTIONS(4766),
    [sym_override] = ACTIONS(4766),
    [sym_package] = ACTIONS(4766),
    [sym_pragma] = ACTIONS(4766),
    [sym_private] = ACTIONS(4766),
    [sym_protected] = ACTIONS(4766),
    [sym_public] = ACTIONS(4766),
    [sym_pure] = ACTIONS(4766),
    [sym_ref] = ACTIONS(4766),
    [sym_return] = ACTIONS(4766),
    [sym_scope] = ACTIONS(4766),
    [sym_shared] = ACTIONS(4766),
    [sym_static] = ACTIONS(4766),
    [sym_struct] = ACTIONS(4766),
    [sym_switch] = ACTIONS(4766),
    [sym_synchronized] = ACTIONS(4766),
    [sym_template] = ACTIONS(4766),
    [sym_throw] = ACTIONS(4766),
    [sym_try] = ACTIONS(4766),
    [sym_typeid] = ACTIONS(4766),
    [sym_typeof] = ACTIONS(4766),
    [sym_union] = ACTIONS(4766),
    [sym_unittest] = ACTIONS(4766),
    [sym_version] = ACTIONS(4766),
    [sym_while] = ACTIONS(4766),
    [sym_with] = ACTIONS(4766),
    [sym_gshared] = ACTIONS(4766),
    [sym_traits] = ACTIONS(4766),
    [sym_vector] = ACTIONS(4766),
    [sym_void] = ACTIONS(4766),
    [anon_sym_BQUOTE] = ACTIONS(4768),
    [anon_sym_r_DQUOTE] = ACTIONS(4768),
    [anon_sym_x_DQUOTE] = ACTIONS(4768),
    [anon_sym_DQUOTE] = ACTIONS(4768),
    [anon_sym_i_BQUOTE] = ACTIONS(4768),
    [anon_sym_i_DQUOTE] = ACTIONS(4768),
    [anon_sym_iq_LBRACE] = ACTIONS(4768),
    [aux_sym_char_literal_token1] = ACTIONS(4768),
    [anon_sym_SQUOTE] = ACTIONS(4766),
    [anon_sym___DATE__] = ACTIONS(4766),
    [anon_sym___FILE__] = ACTIONS(4766),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4766),
    [anon_sym___FUNCTION__] = ACTIONS(4766),
    [anon_sym___LINE__] = ACTIONS(4766),
    [anon_sym___MODULE__] = ACTIONS(4766),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4766),
    [anon_sym___TIME__] = ACTIONS(4766),
    [anon_sym___TIMESTAMP__] = ACTIONS(4766),
    [anon_sym___VENDOR__] = ACTIONS(4766),
    [anon_sym___VERSION__] = ACTIONS(4766),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4768),
    [sym_float_literal] = ACTIONS(4768),
    [sym__string] = ACTIONS(4768),
  },
  [1473] = {
    [sym_identifier] = ACTIONS(4770),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4772),
    [anon_sym_RBRACE] = ACTIONS(4772),
    [anon_sym_LBRACE] = ACTIONS(4772),
    [anon_sym_DOT] = ACTIONS(4772),
    [anon_sym_AMP] = ACTIONS(4772),
    [anon_sym_DASH] = ACTIONS(4770),
    [anon_sym_DASH_DASH] = ACTIONS(4772),
    [anon_sym_PLUS] = ACTIONS(4770),
    [anon_sym_PLUS_PLUS] = ACTIONS(4772),
    [anon_sym_BANG] = ACTIONS(4772),
    [anon_sym_LPAREN] = ACTIONS(4772),
    [anon_sym_RPAREN] = ACTIONS(4772),
    [anon_sym_LBRACK] = ACTIONS(4772),
    [anon_sym_SEMI] = ACTIONS(4772),
    [anon_sym_DOLLAR] = ACTIONS(4772),
    [anon_sym_STAR] = ACTIONS(4772),
    [anon_sym_TILDE] = ACTIONS(4772),
    [anon_sym_AT] = ACTIONS(4772),
    [sym_bool] = ACTIONS(4770),
    [sym_byte] = ACTIONS(4770),
    [sym_ubyte] = ACTIONS(4770),
    [sym_char] = ACTIONS(4770),
    [sym_short] = ACTIONS(4770),
    [sym_ushort] = ACTIONS(4770),
    [sym_int] = ACTIONS(4770),
    [sym_uint] = ACTIONS(4770),
    [sym_long] = ACTIONS(4770),
    [sym_ulong] = ACTIONS(4770),
    [sym_cent] = ACTIONS(4770),
    [sym_ucent] = ACTIONS(4770),
    [sym_wchar] = ACTIONS(4770),
    [sym_dchar] = ACTIONS(4770),
    [sym_float] = ACTIONS(4770),
    [sym_double] = ACTIONS(4770),
    [sym_real] = ACTIONS(4770),
    [sym_ifloat] = ACTIONS(4770),
    [sym_idouble] = ACTIONS(4770),
    [sym_ireal] = ACTIONS(4770),
    [sym_cfloat] = ACTIONS(4770),
    [sym_cdouble] = ACTIONS(4770),
    [sym_creal] = ACTIONS(4770),
    [sym_size_t] = ACTIONS(4770),
    [sym_ptrdiff_t] = ACTIONS(4770),
    [sym_string] = ACTIONS(4770),
    [sym_cstring] = ACTIONS(4770),
    [sym_dstring] = ACTIONS(4770),
    [sym_wstring] = ACTIONS(4770),
    [sym_noreturn] = ACTIONS(4770),
    [sym_true] = ACTIONS(4770),
    [sym_false] = ACTIONS(4770),
    [sym_null] = ACTIONS(4770),
    [sym_super] = ACTIONS(4770),
    [sym_this] = ACTIONS(4770),
    [sym_abstract] = ACTIONS(4770),
    [sym_alias] = ACTIONS(4770),
    [sym_align] = ACTIONS(4770),
    [sym_asm] = ACTIONS(4770),
    [sym_assert] = ACTIONS(4770),
    [sym_auto] = ACTIONS(4770),
    [sym_break] = ACTIONS(4770),
    [sym_case] = ACTIONS(4770),
    [sym_cast] = ACTIONS(4770),
    [sym_catch] = ACTIONS(4770),
    [sym_class] = ACTIONS(4770),
    [sym_const] = ACTIONS(4770),
    [sym_continue] = ACTIONS(4770),
    [sym_debug] = ACTIONS(4770),
    [sym_default] = ACTIONS(4770),
    [sym_delegate] = ACTIONS(4770),
    [sym_delete] = ACTIONS(4770),
    [sym_deprecated] = ACTIONS(4770),
    [sym_do] = ACTIONS(4770),
    [sym_else] = ACTIONS(4770),
    [sym_enum] = ACTIONS(4770),
    [sym_export] = ACTIONS(4770),
    [sym_extern] = ACTIONS(4770),
    [sym_final] = ACTIONS(4770),
    [sym_finally] = ACTIONS(4770),
    [sym_for] = ACTIONS(4770),
    [sym_foreach] = ACTIONS(4770),
    [sym_foreach_reverse] = ACTIONS(4770),
    [sym_function] = ACTIONS(4770),
    [sym_goto] = ACTIONS(4770),
    [sym_if] = ACTIONS(4770),
    [sym_immutable] = ACTIONS(4770),
    [sym_import] = ACTIONS(4770),
    [sym_in] = ACTIONS(4770),
    [sym_inout] = ACTIONS(4770),
    [sym_interface] = ACTIONS(4770),
    [sym_invariant] = ACTIONS(4770),
    [sym_is] = ACTIONS(4770),
    [sym_mixin] = ACTIONS(4770),
    [sym_new] = ACTIONS(4770),
    [sym_nothrow] = ACTIONS(4770),
    [sym_out] = ACTIONS(4770),
    [sym_override] = ACTIONS(4770),
    [sym_package] = ACTIONS(4770),
    [sym_pragma] = ACTIONS(4770),
    [sym_private] = ACTIONS(4770),
    [sym_protected] = ACTIONS(4770),
    [sym_public] = ACTIONS(4770),
    [sym_pure] = ACTIONS(4770),
    [sym_ref] = ACTIONS(4770),
    [sym_return] = ACTIONS(4770),
    [sym_scope] = ACTIONS(4770),
    [sym_shared] = ACTIONS(4770),
    [sym_static] = ACTIONS(4770),
    [sym_struct] = ACTIONS(4770),
    [sym_switch] = ACTIONS(4770),
    [sym_synchronized] = ACTIONS(4770),
    [sym_template] = ACTIONS(4770),
    [sym_throw] = ACTIONS(4770),
    [sym_try] = ACTIONS(4770),
    [sym_typeid] = ACTIONS(4770),
    [sym_typeof] = ACTIONS(4770),
    [sym_union] = ACTIONS(4770),
    [sym_unittest] = ACTIONS(4770),
    [sym_version] = ACTIONS(4770),
    [sym_while] = ACTIONS(4770),
    [sym_with] = ACTIONS(4770),
    [sym_gshared] = ACTIONS(4770),
    [sym_traits] = ACTIONS(4770),
    [sym_vector] = ACTIONS(4770),
    [sym_void] = ACTIONS(4770),
    [anon_sym_BQUOTE] = ACTIONS(4772),
    [anon_sym_r_DQUOTE] = ACTIONS(4772),
    [anon_sym_x_DQUOTE] = ACTIONS(4772),
    [anon_sym_DQUOTE] = ACTIONS(4772),
    [anon_sym_i_BQUOTE] = ACTIONS(4772),
    [anon_sym_i_DQUOTE] = ACTIONS(4772),
    [anon_sym_iq_LBRACE] = ACTIONS(4772),
    [aux_sym_char_literal_token1] = ACTIONS(4772),
    [anon_sym_SQUOTE] = ACTIONS(4770),
    [anon_sym___DATE__] = ACTIONS(4770),
    [anon_sym___FILE__] = ACTIONS(4770),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4770),
    [anon_sym___FUNCTION__] = ACTIONS(4770),
    [anon_sym___LINE__] = ACTIONS(4770),
    [anon_sym___MODULE__] = ACTIONS(4770),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4770),
    [anon_sym___TIME__] = ACTIONS(4770),
    [anon_sym___TIMESTAMP__] = ACTIONS(4770),
    [anon_sym___VENDOR__] = ACTIONS(4770),
    [anon_sym___VERSION__] = ACTIONS(4770),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4772),
    [sym_float_literal] = ACTIONS(4772),
    [sym__string] = ACTIONS(4772),
  },
  [1474] = {
    [sym_identifier] = ACTIONS(4774),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4776),
    [anon_sym_RBRACE] = ACTIONS(4776),
    [anon_sym_LBRACE] = ACTIONS(4776),
    [anon_sym_DOT] = ACTIONS(4776),
    [anon_sym_AMP] = ACTIONS(4776),
    [anon_sym_DASH] = ACTIONS(4774),
    [anon_sym_DASH_DASH] = ACTIONS(4776),
    [anon_sym_PLUS] = ACTIONS(4774),
    [anon_sym_PLUS_PLUS] = ACTIONS(4776),
    [anon_sym_BANG] = ACTIONS(4776),
    [anon_sym_LPAREN] = ACTIONS(4776),
    [anon_sym_RPAREN] = ACTIONS(4776),
    [anon_sym_LBRACK] = ACTIONS(4776),
    [anon_sym_SEMI] = ACTIONS(4776),
    [anon_sym_DOLLAR] = ACTIONS(4776),
    [anon_sym_STAR] = ACTIONS(4776),
    [anon_sym_TILDE] = ACTIONS(4776),
    [anon_sym_AT] = ACTIONS(4776),
    [sym_bool] = ACTIONS(4774),
    [sym_byte] = ACTIONS(4774),
    [sym_ubyte] = ACTIONS(4774),
    [sym_char] = ACTIONS(4774),
    [sym_short] = ACTIONS(4774),
    [sym_ushort] = ACTIONS(4774),
    [sym_int] = ACTIONS(4774),
    [sym_uint] = ACTIONS(4774),
    [sym_long] = ACTIONS(4774),
    [sym_ulong] = ACTIONS(4774),
    [sym_cent] = ACTIONS(4774),
    [sym_ucent] = ACTIONS(4774),
    [sym_wchar] = ACTIONS(4774),
    [sym_dchar] = ACTIONS(4774),
    [sym_float] = ACTIONS(4774),
    [sym_double] = ACTIONS(4774),
    [sym_real] = ACTIONS(4774),
    [sym_ifloat] = ACTIONS(4774),
    [sym_idouble] = ACTIONS(4774),
    [sym_ireal] = ACTIONS(4774),
    [sym_cfloat] = ACTIONS(4774),
    [sym_cdouble] = ACTIONS(4774),
    [sym_creal] = ACTIONS(4774),
    [sym_size_t] = ACTIONS(4774),
    [sym_ptrdiff_t] = ACTIONS(4774),
    [sym_string] = ACTIONS(4774),
    [sym_cstring] = ACTIONS(4774),
    [sym_dstring] = ACTIONS(4774),
    [sym_wstring] = ACTIONS(4774),
    [sym_noreturn] = ACTIONS(4774),
    [sym_true] = ACTIONS(4774),
    [sym_false] = ACTIONS(4774),
    [sym_null] = ACTIONS(4774),
    [sym_super] = ACTIONS(4774),
    [sym_this] = ACTIONS(4774),
    [sym_abstract] = ACTIONS(4774),
    [sym_alias] = ACTIONS(4774),
    [sym_align] = ACTIONS(4774),
    [sym_asm] = ACTIONS(4774),
    [sym_assert] = ACTIONS(4774),
    [sym_auto] = ACTIONS(4774),
    [sym_break] = ACTIONS(4774),
    [sym_case] = ACTIONS(4774),
    [sym_cast] = ACTIONS(4774),
    [sym_catch] = ACTIONS(4774),
    [sym_class] = ACTIONS(4774),
    [sym_const] = ACTIONS(4774),
    [sym_continue] = ACTIONS(4774),
    [sym_debug] = ACTIONS(4774),
    [sym_default] = ACTIONS(4774),
    [sym_delegate] = ACTIONS(4774),
    [sym_delete] = ACTIONS(4774),
    [sym_deprecated] = ACTIONS(4774),
    [sym_do] = ACTIONS(4774),
    [sym_else] = ACTIONS(4774),
    [sym_enum] = ACTIONS(4774),
    [sym_export] = ACTIONS(4774),
    [sym_extern] = ACTIONS(4774),
    [sym_final] = ACTIONS(4774),
    [sym_finally] = ACTIONS(4774),
    [sym_for] = ACTIONS(4774),
    [sym_foreach] = ACTIONS(4774),
    [sym_foreach_reverse] = ACTIONS(4774),
    [sym_function] = ACTIONS(4774),
    [sym_goto] = ACTIONS(4774),
    [sym_if] = ACTIONS(4774),
    [sym_immutable] = ACTIONS(4774),
    [sym_import] = ACTIONS(4774),
    [sym_in] = ACTIONS(4774),
    [sym_inout] = ACTIONS(4774),
    [sym_interface] = ACTIONS(4774),
    [sym_invariant] = ACTIONS(4774),
    [sym_is] = ACTIONS(4774),
    [sym_mixin] = ACTIONS(4774),
    [sym_new] = ACTIONS(4774),
    [sym_nothrow] = ACTIONS(4774),
    [sym_out] = ACTIONS(4774),
    [sym_override] = ACTIONS(4774),
    [sym_package] = ACTIONS(4774),
    [sym_pragma] = ACTIONS(4774),
    [sym_private] = ACTIONS(4774),
    [sym_protected] = ACTIONS(4774),
    [sym_public] = ACTIONS(4774),
    [sym_pure] = ACTIONS(4774),
    [sym_ref] = ACTIONS(4774),
    [sym_return] = ACTIONS(4774),
    [sym_scope] = ACTIONS(4774),
    [sym_shared] = ACTIONS(4774),
    [sym_static] = ACTIONS(4774),
    [sym_struct] = ACTIONS(4774),
    [sym_switch] = ACTIONS(4774),
    [sym_synchronized] = ACTIONS(4774),
    [sym_template] = ACTIONS(4774),
    [sym_throw] = ACTIONS(4774),
    [sym_try] = ACTIONS(4774),
    [sym_typeid] = ACTIONS(4774),
    [sym_typeof] = ACTIONS(4774),
    [sym_union] = ACTIONS(4774),
    [sym_unittest] = ACTIONS(4774),
    [sym_version] = ACTIONS(4774),
    [sym_while] = ACTIONS(4774),
    [sym_with] = ACTIONS(4774),
    [sym_gshared] = ACTIONS(4774),
    [sym_traits] = ACTIONS(4774),
    [sym_vector] = ACTIONS(4774),
    [sym_void] = ACTIONS(4774),
    [anon_sym_BQUOTE] = ACTIONS(4776),
    [anon_sym_r_DQUOTE] = ACTIONS(4776),
    [anon_sym_x_DQUOTE] = ACTIONS(4776),
    [anon_sym_DQUOTE] = ACTIONS(4776),
    [anon_sym_i_BQUOTE] = ACTIONS(4776),
    [anon_sym_i_DQUOTE] = ACTIONS(4776),
    [anon_sym_iq_LBRACE] = ACTIONS(4776),
    [aux_sym_char_literal_token1] = ACTIONS(4776),
    [anon_sym_SQUOTE] = ACTIONS(4774),
    [anon_sym___DATE__] = ACTIONS(4774),
    [anon_sym___FILE__] = ACTIONS(4774),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4774),
    [anon_sym___FUNCTION__] = ACTIONS(4774),
    [anon_sym___LINE__] = ACTIONS(4774),
    [anon_sym___MODULE__] = ACTIONS(4774),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4774),
    [anon_sym___TIME__] = ACTIONS(4774),
    [anon_sym___TIMESTAMP__] = ACTIONS(4774),
    [anon_sym___VENDOR__] = ACTIONS(4774),
    [anon_sym___VERSION__] = ACTIONS(4774),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4776),
    [sym_float_literal] = ACTIONS(4776),
    [sym__string] = ACTIONS(4776),
  },
  [1475] = {
    [sym_identifier] = ACTIONS(4778),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4780),
    [anon_sym_RBRACE] = ACTIONS(4780),
    [anon_sym_LBRACE] = ACTIONS(4780),
    [anon_sym_DOT] = ACTIONS(4780),
    [anon_sym_AMP] = ACTIONS(4780),
    [anon_sym_DASH] = ACTIONS(4778),
    [anon_sym_DASH_DASH] = ACTIONS(4780),
    [anon_sym_PLUS] = ACTIONS(4778),
    [anon_sym_PLUS_PLUS] = ACTIONS(4780),
    [anon_sym_BANG] = ACTIONS(4780),
    [anon_sym_LPAREN] = ACTIONS(4780),
    [anon_sym_RPAREN] = ACTIONS(4780),
    [anon_sym_LBRACK] = ACTIONS(4780),
    [anon_sym_SEMI] = ACTIONS(4780),
    [anon_sym_DOLLAR] = ACTIONS(4780),
    [anon_sym_STAR] = ACTIONS(4780),
    [anon_sym_TILDE] = ACTIONS(4780),
    [anon_sym_AT] = ACTIONS(4780),
    [sym_bool] = ACTIONS(4778),
    [sym_byte] = ACTIONS(4778),
    [sym_ubyte] = ACTIONS(4778),
    [sym_char] = ACTIONS(4778),
    [sym_short] = ACTIONS(4778),
    [sym_ushort] = ACTIONS(4778),
    [sym_int] = ACTIONS(4778),
    [sym_uint] = ACTIONS(4778),
    [sym_long] = ACTIONS(4778),
    [sym_ulong] = ACTIONS(4778),
    [sym_cent] = ACTIONS(4778),
    [sym_ucent] = ACTIONS(4778),
    [sym_wchar] = ACTIONS(4778),
    [sym_dchar] = ACTIONS(4778),
    [sym_float] = ACTIONS(4778),
    [sym_double] = ACTIONS(4778),
    [sym_real] = ACTIONS(4778),
    [sym_ifloat] = ACTIONS(4778),
    [sym_idouble] = ACTIONS(4778),
    [sym_ireal] = ACTIONS(4778),
    [sym_cfloat] = ACTIONS(4778),
    [sym_cdouble] = ACTIONS(4778),
    [sym_creal] = ACTIONS(4778),
    [sym_size_t] = ACTIONS(4778),
    [sym_ptrdiff_t] = ACTIONS(4778),
    [sym_string] = ACTIONS(4778),
    [sym_cstring] = ACTIONS(4778),
    [sym_dstring] = ACTIONS(4778),
    [sym_wstring] = ACTIONS(4778),
    [sym_noreturn] = ACTIONS(4778),
    [sym_true] = ACTIONS(4778),
    [sym_false] = ACTIONS(4778),
    [sym_null] = ACTIONS(4778),
    [sym_super] = ACTIONS(4778),
    [sym_this] = ACTIONS(4778),
    [sym_abstract] = ACTIONS(4778),
    [sym_alias] = ACTIONS(4778),
    [sym_align] = ACTIONS(4778),
    [sym_asm] = ACTIONS(4778),
    [sym_assert] = ACTIONS(4778),
    [sym_auto] = ACTIONS(4778),
    [sym_break] = ACTIONS(4778),
    [sym_case] = ACTIONS(4778),
    [sym_cast] = ACTIONS(4778),
    [sym_catch] = ACTIONS(4778),
    [sym_class] = ACTIONS(4778),
    [sym_const] = ACTIONS(4778),
    [sym_continue] = ACTIONS(4778),
    [sym_debug] = ACTIONS(4778),
    [sym_default] = ACTIONS(4778),
    [sym_delegate] = ACTIONS(4778),
    [sym_delete] = ACTIONS(4778),
    [sym_deprecated] = ACTIONS(4778),
    [sym_do] = ACTIONS(4778),
    [sym_else] = ACTIONS(4778),
    [sym_enum] = ACTIONS(4778),
    [sym_export] = ACTIONS(4778),
    [sym_extern] = ACTIONS(4778),
    [sym_final] = ACTIONS(4778),
    [sym_finally] = ACTIONS(4778),
    [sym_for] = ACTIONS(4778),
    [sym_foreach] = ACTIONS(4778),
    [sym_foreach_reverse] = ACTIONS(4778),
    [sym_function] = ACTIONS(4778),
    [sym_goto] = ACTIONS(4778),
    [sym_if] = ACTIONS(4778),
    [sym_immutable] = ACTIONS(4778),
    [sym_import] = ACTIONS(4778),
    [sym_in] = ACTIONS(4778),
    [sym_inout] = ACTIONS(4778),
    [sym_interface] = ACTIONS(4778),
    [sym_invariant] = ACTIONS(4778),
    [sym_is] = ACTIONS(4778),
    [sym_mixin] = ACTIONS(4778),
    [sym_new] = ACTIONS(4778),
    [sym_nothrow] = ACTIONS(4778),
    [sym_out] = ACTIONS(4778),
    [sym_override] = ACTIONS(4778),
    [sym_package] = ACTIONS(4778),
    [sym_pragma] = ACTIONS(4778),
    [sym_private] = ACTIONS(4778),
    [sym_protected] = ACTIONS(4778),
    [sym_public] = ACTIONS(4778),
    [sym_pure] = ACTIONS(4778),
    [sym_ref] = ACTIONS(4778),
    [sym_return] = ACTIONS(4778),
    [sym_scope] = ACTIONS(4778),
    [sym_shared] = ACTIONS(4778),
    [sym_static] = ACTIONS(4778),
    [sym_struct] = ACTIONS(4778),
    [sym_switch] = ACTIONS(4778),
    [sym_synchronized] = ACTIONS(4778),
    [sym_template] = ACTIONS(4778),
    [sym_throw] = ACTIONS(4778),
    [sym_try] = ACTIONS(4778),
    [sym_typeid] = ACTIONS(4778),
    [sym_typeof] = ACTIONS(4778),
    [sym_union] = ACTIONS(4778),
    [sym_unittest] = ACTIONS(4778),
    [sym_version] = ACTIONS(4778),
    [sym_while] = ACTIONS(4778),
    [sym_with] = ACTIONS(4778),
    [sym_gshared] = ACTIONS(4778),
    [sym_traits] = ACTIONS(4778),
    [sym_vector] = ACTIONS(4778),
    [sym_void] = ACTIONS(4778),
    [anon_sym_BQUOTE] = ACTIONS(4780),
    [anon_sym_r_DQUOTE] = ACTIONS(4780),
    [anon_sym_x_DQUOTE] = ACTIONS(4780),
    [anon_sym_DQUOTE] = ACTIONS(4780),
    [anon_sym_i_BQUOTE] = ACTIONS(4780),
    [anon_sym_i_DQUOTE] = ACTIONS(4780),
    [anon_sym_iq_LBRACE] = ACTIONS(4780),
    [aux_sym_char_literal_token1] = ACTIONS(4780),
    [anon_sym_SQUOTE] = ACTIONS(4778),
    [anon_sym___DATE__] = ACTIONS(4778),
    [anon_sym___FILE__] = ACTIONS(4778),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4778),
    [anon_sym___FUNCTION__] = ACTIONS(4778),
    [anon_sym___LINE__] = ACTIONS(4778),
    [anon_sym___MODULE__] = ACTIONS(4778),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4778),
    [anon_sym___TIME__] = ACTIONS(4778),
    [anon_sym___TIMESTAMP__] = ACTIONS(4778),
    [anon_sym___VENDOR__] = ACTIONS(4778),
    [anon_sym___VERSION__] = ACTIONS(4778),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4780),
    [sym_float_literal] = ACTIONS(4780),
    [sym__string] = ACTIONS(4780),
  },
  [1476] = {
    [sym_identifier] = ACTIONS(4782),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4785),
    [anon_sym_RBRACE] = ACTIONS(4785),
    [anon_sym_LBRACE] = ACTIONS(4785),
    [anon_sym_DOT] = ACTIONS(4785),
    [anon_sym_AMP] = ACTIONS(4785),
    [anon_sym_DASH] = ACTIONS(4782),
    [anon_sym_DASH_DASH] = ACTIONS(4785),
    [anon_sym_PLUS] = ACTIONS(4782),
    [anon_sym_PLUS_PLUS] = ACTIONS(4785),
    [anon_sym_BANG] = ACTIONS(4785),
    [anon_sym_LPAREN] = ACTIONS(4785),
    [anon_sym_RPAREN] = ACTIONS(4785),
    [anon_sym_LBRACK] = ACTIONS(4785),
    [anon_sym_SEMI] = ACTIONS(4785),
    [anon_sym_DOLLAR] = ACTIONS(4785),
    [anon_sym_STAR] = ACTIONS(4785),
    [anon_sym_TILDE] = ACTIONS(4785),
    [anon_sym_AT] = ACTIONS(4785),
    [sym_bool] = ACTIONS(4782),
    [sym_byte] = ACTIONS(4782),
    [sym_ubyte] = ACTIONS(4782),
    [sym_char] = ACTIONS(4782),
    [sym_short] = ACTIONS(4782),
    [sym_ushort] = ACTIONS(4782),
    [sym_int] = ACTIONS(4782),
    [sym_uint] = ACTIONS(4782),
    [sym_long] = ACTIONS(4782),
    [sym_ulong] = ACTIONS(4782),
    [sym_cent] = ACTIONS(4782),
    [sym_ucent] = ACTIONS(4782),
    [sym_wchar] = ACTIONS(4782),
    [sym_dchar] = ACTIONS(4782),
    [sym_float] = ACTIONS(4782),
    [sym_double] = ACTIONS(4782),
    [sym_real] = ACTIONS(4782),
    [sym_ifloat] = ACTIONS(4782),
    [sym_idouble] = ACTIONS(4782),
    [sym_ireal] = ACTIONS(4782),
    [sym_cfloat] = ACTIONS(4782),
    [sym_cdouble] = ACTIONS(4782),
    [sym_creal] = ACTIONS(4782),
    [sym_size_t] = ACTIONS(4782),
    [sym_ptrdiff_t] = ACTIONS(4782),
    [sym_string] = ACTIONS(4782),
    [sym_cstring] = ACTIONS(4782),
    [sym_dstring] = ACTIONS(4782),
    [sym_wstring] = ACTIONS(4782),
    [sym_noreturn] = ACTIONS(4782),
    [sym_true] = ACTIONS(4782),
    [sym_false] = ACTIONS(4782),
    [sym_null] = ACTIONS(4782),
    [sym_super] = ACTIONS(4782),
    [sym_this] = ACTIONS(4782),
    [sym_abstract] = ACTIONS(4782),
    [sym_alias] = ACTIONS(4782),
    [sym_align] = ACTIONS(4782),
    [sym_asm] = ACTIONS(4782),
    [sym_assert] = ACTIONS(4782),
    [sym_auto] = ACTIONS(4782),
    [sym_break] = ACTIONS(4782),
    [sym_case] = ACTIONS(4782),
    [sym_cast] = ACTIONS(4782),
    [sym_catch] = ACTIONS(4782),
    [sym_class] = ACTIONS(4782),
    [sym_const] = ACTIONS(4782),
    [sym_continue] = ACTIONS(4782),
    [sym_debug] = ACTIONS(4782),
    [sym_default] = ACTIONS(4782),
    [sym_delegate] = ACTIONS(4782),
    [sym_delete] = ACTIONS(4782),
    [sym_deprecated] = ACTIONS(4782),
    [sym_do] = ACTIONS(4782),
    [sym_else] = ACTIONS(4782),
    [sym_enum] = ACTIONS(4782),
    [sym_export] = ACTIONS(4782),
    [sym_extern] = ACTIONS(4782),
    [sym_final] = ACTIONS(4782),
    [sym_finally] = ACTIONS(4782),
    [sym_for] = ACTIONS(4782),
    [sym_foreach] = ACTIONS(4782),
    [sym_foreach_reverse] = ACTIONS(4782),
    [sym_function] = ACTIONS(4782),
    [sym_goto] = ACTIONS(4782),
    [sym_if] = ACTIONS(4782),
    [sym_immutable] = ACTIONS(4782),
    [sym_import] = ACTIONS(4782),
    [sym_in] = ACTIONS(4782),
    [sym_inout] = ACTIONS(4782),
    [sym_interface] = ACTIONS(4782),
    [sym_invariant] = ACTIONS(4782),
    [sym_is] = ACTIONS(4782),
    [sym_mixin] = ACTIONS(4782),
    [sym_new] = ACTIONS(4782),
    [sym_nothrow] = ACTIONS(4782),
    [sym_out] = ACTIONS(4782),
    [sym_override] = ACTIONS(4782),
    [sym_package] = ACTIONS(4782),
    [sym_pragma] = ACTIONS(4782),
    [sym_private] = ACTIONS(4782),
    [sym_protected] = ACTIONS(4782),
    [sym_public] = ACTIONS(4782),
    [sym_pure] = ACTIONS(4782),
    [sym_ref] = ACTIONS(4782),
    [sym_return] = ACTIONS(4782),
    [sym_scope] = ACTIONS(4782),
    [sym_shared] = ACTIONS(4782),
    [sym_static] = ACTIONS(4782),
    [sym_struct] = ACTIONS(4782),
    [sym_switch] = ACTIONS(4782),
    [sym_synchronized] = ACTIONS(4782),
    [sym_template] = ACTIONS(4782),
    [sym_throw] = ACTIONS(4782),
    [sym_try] = ACTIONS(4782),
    [sym_typeid] = ACTIONS(4782),
    [sym_typeof] = ACTIONS(4782),
    [sym_union] = ACTIONS(4782),
    [sym_unittest] = ACTIONS(4782),
    [sym_version] = ACTIONS(4782),
    [sym_while] = ACTIONS(4782),
    [sym_with] = ACTIONS(4782),
    [sym_gshared] = ACTIONS(4782),
    [sym_traits] = ACTIONS(4782),
    [sym_vector] = ACTIONS(4782),
    [sym_void] = ACTIONS(4782),
    [anon_sym_BQUOTE] = ACTIONS(4785),
    [anon_sym_r_DQUOTE] = ACTIONS(4785),
    [anon_sym_x_DQUOTE] = ACTIONS(4785),
    [anon_sym_DQUOTE] = ACTIONS(4785),
    [anon_sym_i_BQUOTE] = ACTIONS(4785),
    [anon_sym_i_DQUOTE] = ACTIONS(4785),
    [anon_sym_iq_LBRACE] = ACTIONS(4785),
    [aux_sym_char_literal_token1] = ACTIONS(4785),
    [anon_sym_SQUOTE] = ACTIONS(4782),
    [anon_sym___DATE__] = ACTIONS(4782),
    [anon_sym___FILE__] = ACTIONS(4782),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4782),
    [anon_sym___FUNCTION__] = ACTIONS(4782),
    [anon_sym___LINE__] = ACTIONS(4782),
    [anon_sym___MODULE__] = ACTIONS(4782),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4782),
    [anon_sym___TIME__] = ACTIONS(4782),
    [anon_sym___TIMESTAMP__] = ACTIONS(4782),
    [anon_sym___VENDOR__] = ACTIONS(4782),
    [anon_sym___VERSION__] = ACTIONS(4782),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4785),
    [sym_float_literal] = ACTIONS(4785),
    [sym__string] = ACTIONS(4785),
  },
  [1477] = {
    [sym_identifier] = ACTIONS(4788),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4790),
    [anon_sym_RBRACE] = ACTIONS(4790),
    [anon_sym_LBRACE] = ACTIONS(4790),
    [anon_sym_DOT] = ACTIONS(4790),
    [anon_sym_AMP] = ACTIONS(4790),
    [anon_sym_DASH] = ACTIONS(4788),
    [anon_sym_DASH_DASH] = ACTIONS(4790),
    [anon_sym_PLUS] = ACTIONS(4788),
    [anon_sym_PLUS_PLUS] = ACTIONS(4790),
    [anon_sym_BANG] = ACTIONS(4790),
    [anon_sym_LPAREN] = ACTIONS(4790),
    [anon_sym_RPAREN] = ACTIONS(4790),
    [anon_sym_LBRACK] = ACTIONS(4790),
    [anon_sym_SEMI] = ACTIONS(4790),
    [anon_sym_DOLLAR] = ACTIONS(4790),
    [anon_sym_STAR] = ACTIONS(4790),
    [anon_sym_TILDE] = ACTIONS(4790),
    [anon_sym_AT] = ACTIONS(4790),
    [sym_bool] = ACTIONS(4788),
    [sym_byte] = ACTIONS(4788),
    [sym_ubyte] = ACTIONS(4788),
    [sym_char] = ACTIONS(4788),
    [sym_short] = ACTIONS(4788),
    [sym_ushort] = ACTIONS(4788),
    [sym_int] = ACTIONS(4788),
    [sym_uint] = ACTIONS(4788),
    [sym_long] = ACTIONS(4788),
    [sym_ulong] = ACTIONS(4788),
    [sym_cent] = ACTIONS(4788),
    [sym_ucent] = ACTIONS(4788),
    [sym_wchar] = ACTIONS(4788),
    [sym_dchar] = ACTIONS(4788),
    [sym_float] = ACTIONS(4788),
    [sym_double] = ACTIONS(4788),
    [sym_real] = ACTIONS(4788),
    [sym_ifloat] = ACTIONS(4788),
    [sym_idouble] = ACTIONS(4788),
    [sym_ireal] = ACTIONS(4788),
    [sym_cfloat] = ACTIONS(4788),
    [sym_cdouble] = ACTIONS(4788),
    [sym_creal] = ACTIONS(4788),
    [sym_size_t] = ACTIONS(4788),
    [sym_ptrdiff_t] = ACTIONS(4788),
    [sym_string] = ACTIONS(4788),
    [sym_cstring] = ACTIONS(4788),
    [sym_dstring] = ACTIONS(4788),
    [sym_wstring] = ACTIONS(4788),
    [sym_noreturn] = ACTIONS(4788),
    [sym_true] = ACTIONS(4788),
    [sym_false] = ACTIONS(4788),
    [sym_null] = ACTIONS(4788),
    [sym_super] = ACTIONS(4788),
    [sym_this] = ACTIONS(4788),
    [sym_abstract] = ACTIONS(4788),
    [sym_alias] = ACTIONS(4788),
    [sym_align] = ACTIONS(4788),
    [sym_asm] = ACTIONS(4788),
    [sym_assert] = ACTIONS(4788),
    [sym_auto] = ACTIONS(4788),
    [sym_break] = ACTIONS(4788),
    [sym_case] = ACTIONS(4788),
    [sym_cast] = ACTIONS(4788),
    [sym_catch] = ACTIONS(4788),
    [sym_class] = ACTIONS(4788),
    [sym_const] = ACTIONS(4788),
    [sym_continue] = ACTIONS(4788),
    [sym_debug] = ACTIONS(4788),
    [sym_default] = ACTIONS(4788),
    [sym_delegate] = ACTIONS(4788),
    [sym_delete] = ACTIONS(4788),
    [sym_deprecated] = ACTIONS(4788),
    [sym_do] = ACTIONS(4788),
    [sym_else] = ACTIONS(4788),
    [sym_enum] = ACTIONS(4788),
    [sym_export] = ACTIONS(4788),
    [sym_extern] = ACTIONS(4788),
    [sym_final] = ACTIONS(4788),
    [sym_finally] = ACTIONS(4788),
    [sym_for] = ACTIONS(4788),
    [sym_foreach] = ACTIONS(4788),
    [sym_foreach_reverse] = ACTIONS(4788),
    [sym_function] = ACTIONS(4788),
    [sym_goto] = ACTIONS(4788),
    [sym_if] = ACTIONS(4788),
    [sym_immutable] = ACTIONS(4788),
    [sym_import] = ACTIONS(4788),
    [sym_in] = ACTIONS(4788),
    [sym_inout] = ACTIONS(4788),
    [sym_interface] = ACTIONS(4788),
    [sym_invariant] = ACTIONS(4788),
    [sym_is] = ACTIONS(4788),
    [sym_mixin] = ACTIONS(4788),
    [sym_new] = ACTIONS(4788),
    [sym_nothrow] = ACTIONS(4788),
    [sym_out] = ACTIONS(4788),
    [sym_override] = ACTIONS(4788),
    [sym_package] = ACTIONS(4788),
    [sym_pragma] = ACTIONS(4788),
    [sym_private] = ACTIONS(4788),
    [sym_protected] = ACTIONS(4788),
    [sym_public] = ACTIONS(4788),
    [sym_pure] = ACTIONS(4788),
    [sym_ref] = ACTIONS(4788),
    [sym_return] = ACTIONS(4788),
    [sym_scope] = ACTIONS(4788),
    [sym_shared] = ACTIONS(4788),
    [sym_static] = ACTIONS(4788),
    [sym_struct] = ACTIONS(4788),
    [sym_switch] = ACTIONS(4788),
    [sym_synchronized] = ACTIONS(4788),
    [sym_template] = ACTIONS(4788),
    [sym_throw] = ACTIONS(4788),
    [sym_try] = ACTIONS(4788),
    [sym_typeid] = ACTIONS(4788),
    [sym_typeof] = ACTIONS(4788),
    [sym_union] = ACTIONS(4788),
    [sym_unittest] = ACTIONS(4788),
    [sym_version] = ACTIONS(4788),
    [sym_while] = ACTIONS(4788),
    [sym_with] = ACTIONS(4788),
    [sym_gshared] = ACTIONS(4788),
    [sym_traits] = ACTIONS(4788),
    [sym_vector] = ACTIONS(4788),
    [sym_void] = ACTIONS(4788),
    [anon_sym_BQUOTE] = ACTIONS(4790),
    [anon_sym_r_DQUOTE] = ACTIONS(4790),
    [anon_sym_x_DQUOTE] = ACTIONS(4790),
    [anon_sym_DQUOTE] = ACTIONS(4790),
    [anon_sym_i_BQUOTE] = ACTIONS(4790),
    [anon_sym_i_DQUOTE] = ACTIONS(4790),
    [anon_sym_iq_LBRACE] = ACTIONS(4790),
    [aux_sym_char_literal_token1] = ACTIONS(4790),
    [anon_sym_SQUOTE] = ACTIONS(4788),
    [anon_sym___DATE__] = ACTIONS(4788),
    [anon_sym___FILE__] = ACTIONS(4788),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4788),
    [anon_sym___FUNCTION__] = ACTIONS(4788),
    [anon_sym___LINE__] = ACTIONS(4788),
    [anon_sym___MODULE__] = ACTIONS(4788),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4788),
    [anon_sym___TIME__] = ACTIONS(4788),
    [anon_sym___TIMESTAMP__] = ACTIONS(4788),
    [anon_sym___VENDOR__] = ACTIONS(4788),
    [anon_sym___VERSION__] = ACTIONS(4788),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4790),
    [sym_float_literal] = ACTIONS(4790),
    [sym__string] = ACTIONS(4790),
  },
  [1478] = {
    [sym_identifier] = ACTIONS(4792),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4795),
    [anon_sym_RBRACE] = ACTIONS(4795),
    [anon_sym_LBRACE] = ACTIONS(4795),
    [anon_sym_DOT] = ACTIONS(4795),
    [anon_sym_AMP] = ACTIONS(4795),
    [anon_sym_DASH] = ACTIONS(4792),
    [anon_sym_DASH_DASH] = ACTIONS(4795),
    [anon_sym_PLUS] = ACTIONS(4792),
    [anon_sym_PLUS_PLUS] = ACTIONS(4795),
    [anon_sym_BANG] = ACTIONS(4795),
    [anon_sym_LPAREN] = ACTIONS(4795),
    [anon_sym_RPAREN] = ACTIONS(4795),
    [anon_sym_LBRACK] = ACTIONS(4795),
    [anon_sym_SEMI] = ACTIONS(4795),
    [anon_sym_DOLLAR] = ACTIONS(4795),
    [anon_sym_STAR] = ACTIONS(4795),
    [anon_sym_TILDE] = ACTIONS(4795),
    [anon_sym_AT] = ACTIONS(4795),
    [sym_bool] = ACTIONS(4792),
    [sym_byte] = ACTIONS(4792),
    [sym_ubyte] = ACTIONS(4792),
    [sym_char] = ACTIONS(4792),
    [sym_short] = ACTIONS(4792),
    [sym_ushort] = ACTIONS(4792),
    [sym_int] = ACTIONS(4792),
    [sym_uint] = ACTIONS(4792),
    [sym_long] = ACTIONS(4792),
    [sym_ulong] = ACTIONS(4792),
    [sym_cent] = ACTIONS(4792),
    [sym_ucent] = ACTIONS(4792),
    [sym_wchar] = ACTIONS(4792),
    [sym_dchar] = ACTIONS(4792),
    [sym_float] = ACTIONS(4792),
    [sym_double] = ACTIONS(4792),
    [sym_real] = ACTIONS(4792),
    [sym_ifloat] = ACTIONS(4792),
    [sym_idouble] = ACTIONS(4792),
    [sym_ireal] = ACTIONS(4792),
    [sym_cfloat] = ACTIONS(4792),
    [sym_cdouble] = ACTIONS(4792),
    [sym_creal] = ACTIONS(4792),
    [sym_size_t] = ACTIONS(4792),
    [sym_ptrdiff_t] = ACTIONS(4792),
    [sym_string] = ACTIONS(4792),
    [sym_cstring] = ACTIONS(4792),
    [sym_dstring] = ACTIONS(4792),
    [sym_wstring] = ACTIONS(4792),
    [sym_noreturn] = ACTIONS(4792),
    [sym_true] = ACTIONS(4792),
    [sym_false] = ACTIONS(4792),
    [sym_null] = ACTIONS(4792),
    [sym_super] = ACTIONS(4792),
    [sym_this] = ACTIONS(4792),
    [sym_abstract] = ACTIONS(4792),
    [sym_alias] = ACTIONS(4792),
    [sym_align] = ACTIONS(4792),
    [sym_asm] = ACTIONS(4792),
    [sym_assert] = ACTIONS(4792),
    [sym_auto] = ACTIONS(4792),
    [sym_break] = ACTIONS(4792),
    [sym_case] = ACTIONS(4792),
    [sym_cast] = ACTIONS(4792),
    [sym_catch] = ACTIONS(4792),
    [sym_class] = ACTIONS(4792),
    [sym_const] = ACTIONS(4792),
    [sym_continue] = ACTIONS(4792),
    [sym_debug] = ACTIONS(4792),
    [sym_default] = ACTIONS(4792),
    [sym_delegate] = ACTIONS(4792),
    [sym_delete] = ACTIONS(4792),
    [sym_deprecated] = ACTIONS(4792),
    [sym_do] = ACTIONS(4792),
    [sym_else] = ACTIONS(4792),
    [sym_enum] = ACTIONS(4792),
    [sym_export] = ACTIONS(4792),
    [sym_extern] = ACTIONS(4792),
    [sym_final] = ACTIONS(4792),
    [sym_finally] = ACTIONS(4792),
    [sym_for] = ACTIONS(4792),
    [sym_foreach] = ACTIONS(4792),
    [sym_foreach_reverse] = ACTIONS(4792),
    [sym_function] = ACTIONS(4792),
    [sym_goto] = ACTIONS(4792),
    [sym_if] = ACTIONS(4792),
    [sym_immutable] = ACTIONS(4792),
    [sym_import] = ACTIONS(4792),
    [sym_in] = ACTIONS(4792),
    [sym_inout] = ACTIONS(4792),
    [sym_interface] = ACTIONS(4792),
    [sym_invariant] = ACTIONS(4792),
    [sym_is] = ACTIONS(4792),
    [sym_mixin] = ACTIONS(4792),
    [sym_new] = ACTIONS(4792),
    [sym_nothrow] = ACTIONS(4792),
    [sym_out] = ACTIONS(4792),
    [sym_override] = ACTIONS(4792),
    [sym_package] = ACTIONS(4792),
    [sym_pragma] = ACTIONS(4792),
    [sym_private] = ACTIONS(4792),
    [sym_protected] = ACTIONS(4792),
    [sym_public] = ACTIONS(4792),
    [sym_pure] = ACTIONS(4792),
    [sym_ref] = ACTIONS(4792),
    [sym_return] = ACTIONS(4792),
    [sym_scope] = ACTIONS(4792),
    [sym_shared] = ACTIONS(4792),
    [sym_static] = ACTIONS(4792),
    [sym_struct] = ACTIONS(4792),
    [sym_switch] = ACTIONS(4792),
    [sym_synchronized] = ACTIONS(4792),
    [sym_template] = ACTIONS(4792),
    [sym_throw] = ACTIONS(4792),
    [sym_try] = ACTIONS(4792),
    [sym_typeid] = ACTIONS(4792),
    [sym_typeof] = ACTIONS(4792),
    [sym_union] = ACTIONS(4792),
    [sym_unittest] = ACTIONS(4792),
    [sym_version] = ACTIONS(4792),
    [sym_while] = ACTIONS(4792),
    [sym_with] = ACTIONS(4792),
    [sym_gshared] = ACTIONS(4792),
    [sym_traits] = ACTIONS(4792),
    [sym_vector] = ACTIONS(4792),
    [sym_void] = ACTIONS(4792),
    [anon_sym_BQUOTE] = ACTIONS(4795),
    [anon_sym_r_DQUOTE] = ACTIONS(4795),
    [anon_sym_x_DQUOTE] = ACTIONS(4795),
    [anon_sym_DQUOTE] = ACTIONS(4795),
    [anon_sym_i_BQUOTE] = ACTIONS(4795),
    [anon_sym_i_DQUOTE] = ACTIONS(4795),
    [anon_sym_iq_LBRACE] = ACTIONS(4795),
    [aux_sym_char_literal_token1] = ACTIONS(4795),
    [anon_sym_SQUOTE] = ACTIONS(4792),
    [anon_sym___DATE__] = ACTIONS(4792),
    [anon_sym___FILE__] = ACTIONS(4792),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4792),
    [anon_sym___FUNCTION__] = ACTIONS(4792),
    [anon_sym___LINE__] = ACTIONS(4792),
    [anon_sym___MODULE__] = ACTIONS(4792),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4792),
    [anon_sym___TIME__] = ACTIONS(4792),
    [anon_sym___TIMESTAMP__] = ACTIONS(4792),
    [anon_sym___VENDOR__] = ACTIONS(4792),
    [anon_sym___VERSION__] = ACTIONS(4792),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4795),
    [sym_float_literal] = ACTIONS(4795),
    [sym__string] = ACTIONS(4795),
  },
  [1479] = {
    [sym_identifier] = ACTIONS(4798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4800),
    [anon_sym_RBRACE] = ACTIONS(4800),
    [anon_sym_LBRACE] = ACTIONS(4800),
    [anon_sym_DOT] = ACTIONS(4800),
    [anon_sym_AMP] = ACTIONS(4800),
    [anon_sym_DASH] = ACTIONS(4798),
    [anon_sym_DASH_DASH] = ACTIONS(4800),
    [anon_sym_PLUS] = ACTIONS(4798),
    [anon_sym_PLUS_PLUS] = ACTIONS(4800),
    [anon_sym_BANG] = ACTIONS(4800),
    [anon_sym_LPAREN] = ACTIONS(4800),
    [anon_sym_RPAREN] = ACTIONS(4800),
    [anon_sym_LBRACK] = ACTIONS(4800),
    [anon_sym_SEMI] = ACTIONS(4800),
    [anon_sym_DOLLAR] = ACTIONS(4800),
    [anon_sym_STAR] = ACTIONS(4800),
    [anon_sym_TILDE] = ACTIONS(4800),
    [anon_sym_AT] = ACTIONS(4800),
    [sym_bool] = ACTIONS(4798),
    [sym_byte] = ACTIONS(4798),
    [sym_ubyte] = ACTIONS(4798),
    [sym_char] = ACTIONS(4798),
    [sym_short] = ACTIONS(4798),
    [sym_ushort] = ACTIONS(4798),
    [sym_int] = ACTIONS(4798),
    [sym_uint] = ACTIONS(4798),
    [sym_long] = ACTIONS(4798),
    [sym_ulong] = ACTIONS(4798),
    [sym_cent] = ACTIONS(4798),
    [sym_ucent] = ACTIONS(4798),
    [sym_wchar] = ACTIONS(4798),
    [sym_dchar] = ACTIONS(4798),
    [sym_float] = ACTIONS(4798),
    [sym_double] = ACTIONS(4798),
    [sym_real] = ACTIONS(4798),
    [sym_ifloat] = ACTIONS(4798),
    [sym_idouble] = ACTIONS(4798),
    [sym_ireal] = ACTIONS(4798),
    [sym_cfloat] = ACTIONS(4798),
    [sym_cdouble] = ACTIONS(4798),
    [sym_creal] = ACTIONS(4798),
    [sym_size_t] = ACTIONS(4798),
    [sym_ptrdiff_t] = ACTIONS(4798),
    [sym_string] = ACTIONS(4798),
    [sym_cstring] = ACTIONS(4798),
    [sym_dstring] = ACTIONS(4798),
    [sym_wstring] = ACTIONS(4798),
    [sym_noreturn] = ACTIONS(4798),
    [sym_true] = ACTIONS(4798),
    [sym_false] = ACTIONS(4798),
    [sym_null] = ACTIONS(4798),
    [sym_super] = ACTIONS(4798),
    [sym_this] = ACTIONS(4798),
    [sym_abstract] = ACTIONS(4798),
    [sym_alias] = ACTIONS(4798),
    [sym_align] = ACTIONS(4798),
    [sym_asm] = ACTIONS(4798),
    [sym_assert] = ACTIONS(4798),
    [sym_auto] = ACTIONS(4798),
    [sym_break] = ACTIONS(4798),
    [sym_case] = ACTIONS(4798),
    [sym_cast] = ACTIONS(4798),
    [sym_catch] = ACTIONS(4798),
    [sym_class] = ACTIONS(4798),
    [sym_const] = ACTIONS(4798),
    [sym_continue] = ACTIONS(4798),
    [sym_debug] = ACTIONS(4798),
    [sym_default] = ACTIONS(4798),
    [sym_delegate] = ACTIONS(4798),
    [sym_delete] = ACTIONS(4798),
    [sym_deprecated] = ACTIONS(4798),
    [sym_do] = ACTIONS(4798),
    [sym_else] = ACTIONS(4798),
    [sym_enum] = ACTIONS(4798),
    [sym_export] = ACTIONS(4798),
    [sym_extern] = ACTIONS(4798),
    [sym_final] = ACTIONS(4798),
    [sym_finally] = ACTIONS(4798),
    [sym_for] = ACTIONS(4798),
    [sym_foreach] = ACTIONS(4798),
    [sym_foreach_reverse] = ACTIONS(4798),
    [sym_function] = ACTIONS(4798),
    [sym_goto] = ACTIONS(4798),
    [sym_if] = ACTIONS(4798),
    [sym_immutable] = ACTIONS(4798),
    [sym_import] = ACTIONS(4798),
    [sym_in] = ACTIONS(4798),
    [sym_inout] = ACTIONS(4798),
    [sym_interface] = ACTIONS(4798),
    [sym_invariant] = ACTIONS(4798),
    [sym_is] = ACTIONS(4798),
    [sym_mixin] = ACTIONS(4798),
    [sym_new] = ACTIONS(4798),
    [sym_nothrow] = ACTIONS(4798),
    [sym_out] = ACTIONS(4798),
    [sym_override] = ACTIONS(4798),
    [sym_package] = ACTIONS(4798),
    [sym_pragma] = ACTIONS(4798),
    [sym_private] = ACTIONS(4798),
    [sym_protected] = ACTIONS(4798),
    [sym_public] = ACTIONS(4798),
    [sym_pure] = ACTIONS(4798),
    [sym_ref] = ACTIONS(4798),
    [sym_return] = ACTIONS(4798),
    [sym_scope] = ACTIONS(4798),
    [sym_shared] = ACTIONS(4798),
    [sym_static] = ACTIONS(4798),
    [sym_struct] = ACTIONS(4798),
    [sym_switch] = ACTIONS(4798),
    [sym_synchronized] = ACTIONS(4798),
    [sym_template] = ACTIONS(4798),
    [sym_throw] = ACTIONS(4798),
    [sym_try] = ACTIONS(4798),
    [sym_typeid] = ACTIONS(4798),
    [sym_typeof] = ACTIONS(4798),
    [sym_union] = ACTIONS(4798),
    [sym_unittest] = ACTIONS(4798),
    [sym_version] = ACTIONS(4798),
    [sym_while] = ACTIONS(4798),
    [sym_with] = ACTIONS(4798),
    [sym_gshared] = ACTIONS(4798),
    [sym_traits] = ACTIONS(4798),
    [sym_vector] = ACTIONS(4798),
    [sym_void] = ACTIONS(4798),
    [anon_sym_BQUOTE] = ACTIONS(4800),
    [anon_sym_r_DQUOTE] = ACTIONS(4800),
    [anon_sym_x_DQUOTE] = ACTIONS(4800),
    [anon_sym_DQUOTE] = ACTIONS(4800),
    [anon_sym_i_BQUOTE] = ACTIONS(4800),
    [anon_sym_i_DQUOTE] = ACTIONS(4800),
    [anon_sym_iq_LBRACE] = ACTIONS(4800),
    [aux_sym_char_literal_token1] = ACTIONS(4800),
    [anon_sym_SQUOTE] = ACTIONS(4798),
    [anon_sym___DATE__] = ACTIONS(4798),
    [anon_sym___FILE__] = ACTIONS(4798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4798),
    [anon_sym___FUNCTION__] = ACTIONS(4798),
    [anon_sym___LINE__] = ACTIONS(4798),
    [anon_sym___MODULE__] = ACTIONS(4798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4798),
    [anon_sym___TIME__] = ACTIONS(4798),
    [anon_sym___TIMESTAMP__] = ACTIONS(4798),
    [anon_sym___VENDOR__] = ACTIONS(4798),
    [anon_sym___VERSION__] = ACTIONS(4798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4800),
    [sym_float_literal] = ACTIONS(4800),
    [sym__string] = ACTIONS(4800),
  },
  [1480] = {
    [sym_identifier] = ACTIONS(4802),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4804),
    [anon_sym_RBRACE] = ACTIONS(4804),
    [anon_sym_LBRACE] = ACTIONS(4804),
    [anon_sym_DOT] = ACTIONS(4804),
    [anon_sym_AMP] = ACTIONS(4804),
    [anon_sym_DASH] = ACTIONS(4802),
    [anon_sym_DASH_DASH] = ACTIONS(4804),
    [anon_sym_PLUS] = ACTIONS(4802),
    [anon_sym_PLUS_PLUS] = ACTIONS(4804),
    [anon_sym_BANG] = ACTIONS(4804),
    [anon_sym_LPAREN] = ACTIONS(4804),
    [anon_sym_RPAREN] = ACTIONS(4804),
    [anon_sym_LBRACK] = ACTIONS(4804),
    [anon_sym_SEMI] = ACTIONS(4804),
    [anon_sym_DOLLAR] = ACTIONS(4804),
    [anon_sym_STAR] = ACTIONS(4804),
    [anon_sym_TILDE] = ACTIONS(4804),
    [anon_sym_AT] = ACTIONS(4804),
    [sym_bool] = ACTIONS(4802),
    [sym_byte] = ACTIONS(4802),
    [sym_ubyte] = ACTIONS(4802),
    [sym_char] = ACTIONS(4802),
    [sym_short] = ACTIONS(4802),
    [sym_ushort] = ACTIONS(4802),
    [sym_int] = ACTIONS(4802),
    [sym_uint] = ACTIONS(4802),
    [sym_long] = ACTIONS(4802),
    [sym_ulong] = ACTIONS(4802),
    [sym_cent] = ACTIONS(4802),
    [sym_ucent] = ACTIONS(4802),
    [sym_wchar] = ACTIONS(4802),
    [sym_dchar] = ACTIONS(4802),
    [sym_float] = ACTIONS(4802),
    [sym_double] = ACTIONS(4802),
    [sym_real] = ACTIONS(4802),
    [sym_ifloat] = ACTIONS(4802),
    [sym_idouble] = ACTIONS(4802),
    [sym_ireal] = ACTIONS(4802),
    [sym_cfloat] = ACTIONS(4802),
    [sym_cdouble] = ACTIONS(4802),
    [sym_creal] = ACTIONS(4802),
    [sym_size_t] = ACTIONS(4802),
    [sym_ptrdiff_t] = ACTIONS(4802),
    [sym_string] = ACTIONS(4802),
    [sym_cstring] = ACTIONS(4802),
    [sym_dstring] = ACTIONS(4802),
    [sym_wstring] = ACTIONS(4802),
    [sym_noreturn] = ACTIONS(4802),
    [sym_true] = ACTIONS(4802),
    [sym_false] = ACTIONS(4802),
    [sym_null] = ACTIONS(4802),
    [sym_super] = ACTIONS(4802),
    [sym_this] = ACTIONS(4802),
    [sym_abstract] = ACTIONS(4802),
    [sym_alias] = ACTIONS(4802),
    [sym_align] = ACTIONS(4802),
    [sym_asm] = ACTIONS(4802),
    [sym_assert] = ACTIONS(4802),
    [sym_auto] = ACTIONS(4802),
    [sym_break] = ACTIONS(4802),
    [sym_case] = ACTIONS(4802),
    [sym_cast] = ACTIONS(4802),
    [sym_catch] = ACTIONS(4802),
    [sym_class] = ACTIONS(4802),
    [sym_const] = ACTIONS(4802),
    [sym_continue] = ACTIONS(4802),
    [sym_debug] = ACTIONS(4802),
    [sym_default] = ACTIONS(4802),
    [sym_delegate] = ACTIONS(4802),
    [sym_delete] = ACTIONS(4802),
    [sym_deprecated] = ACTIONS(4802),
    [sym_do] = ACTIONS(4802),
    [sym_else] = ACTIONS(4802),
    [sym_enum] = ACTIONS(4802),
    [sym_export] = ACTIONS(4802),
    [sym_extern] = ACTIONS(4802),
    [sym_final] = ACTIONS(4802),
    [sym_finally] = ACTIONS(4802),
    [sym_for] = ACTIONS(4802),
    [sym_foreach] = ACTIONS(4802),
    [sym_foreach_reverse] = ACTIONS(4802),
    [sym_function] = ACTIONS(4802),
    [sym_goto] = ACTIONS(4802),
    [sym_if] = ACTIONS(4802),
    [sym_immutable] = ACTIONS(4802),
    [sym_import] = ACTIONS(4802),
    [sym_in] = ACTIONS(4802),
    [sym_inout] = ACTIONS(4802),
    [sym_interface] = ACTIONS(4802),
    [sym_invariant] = ACTIONS(4802),
    [sym_is] = ACTIONS(4802),
    [sym_mixin] = ACTIONS(4802),
    [sym_new] = ACTIONS(4802),
    [sym_nothrow] = ACTIONS(4802),
    [sym_out] = ACTIONS(4802),
    [sym_override] = ACTIONS(4802),
    [sym_package] = ACTIONS(4802),
    [sym_pragma] = ACTIONS(4802),
    [sym_private] = ACTIONS(4802),
    [sym_protected] = ACTIONS(4802),
    [sym_public] = ACTIONS(4802),
    [sym_pure] = ACTIONS(4802),
    [sym_ref] = ACTIONS(4802),
    [sym_return] = ACTIONS(4802),
    [sym_scope] = ACTIONS(4802),
    [sym_shared] = ACTIONS(4802),
    [sym_static] = ACTIONS(4802),
    [sym_struct] = ACTIONS(4802),
    [sym_switch] = ACTIONS(4802),
    [sym_synchronized] = ACTIONS(4802),
    [sym_template] = ACTIONS(4802),
    [sym_throw] = ACTIONS(4802),
    [sym_try] = ACTIONS(4802),
    [sym_typeid] = ACTIONS(4802),
    [sym_typeof] = ACTIONS(4802),
    [sym_union] = ACTIONS(4802),
    [sym_unittest] = ACTIONS(4802),
    [sym_version] = ACTIONS(4802),
    [sym_while] = ACTIONS(4802),
    [sym_with] = ACTIONS(4802),
    [sym_gshared] = ACTIONS(4802),
    [sym_traits] = ACTIONS(4802),
    [sym_vector] = ACTIONS(4802),
    [sym_void] = ACTIONS(4802),
    [anon_sym_BQUOTE] = ACTIONS(4804),
    [anon_sym_r_DQUOTE] = ACTIONS(4804),
    [anon_sym_x_DQUOTE] = ACTIONS(4804),
    [anon_sym_DQUOTE] = ACTIONS(4804),
    [anon_sym_i_BQUOTE] = ACTIONS(4804),
    [anon_sym_i_DQUOTE] = ACTIONS(4804),
    [anon_sym_iq_LBRACE] = ACTIONS(4804),
    [aux_sym_char_literal_token1] = ACTIONS(4804),
    [anon_sym_SQUOTE] = ACTIONS(4802),
    [anon_sym___DATE__] = ACTIONS(4802),
    [anon_sym___FILE__] = ACTIONS(4802),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4802),
    [anon_sym___FUNCTION__] = ACTIONS(4802),
    [anon_sym___LINE__] = ACTIONS(4802),
    [anon_sym___MODULE__] = ACTIONS(4802),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4802),
    [anon_sym___TIME__] = ACTIONS(4802),
    [anon_sym___TIMESTAMP__] = ACTIONS(4802),
    [anon_sym___VENDOR__] = ACTIONS(4802),
    [anon_sym___VERSION__] = ACTIONS(4802),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4804),
    [sym_float_literal] = ACTIONS(4804),
    [sym__string] = ACTIONS(4804),
  },
  [1481] = {
    [sym_identifier] = ACTIONS(4806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4808),
    [anon_sym_RBRACE] = ACTIONS(4808),
    [anon_sym_LBRACE] = ACTIONS(4808),
    [anon_sym_DOT] = ACTIONS(4808),
    [anon_sym_AMP] = ACTIONS(4808),
    [anon_sym_DASH] = ACTIONS(4806),
    [anon_sym_DASH_DASH] = ACTIONS(4808),
    [anon_sym_PLUS] = ACTIONS(4806),
    [anon_sym_PLUS_PLUS] = ACTIONS(4808),
    [anon_sym_BANG] = ACTIONS(4808),
    [anon_sym_LPAREN] = ACTIONS(4808),
    [anon_sym_RPAREN] = ACTIONS(4808),
    [anon_sym_LBRACK] = ACTIONS(4808),
    [anon_sym_SEMI] = ACTIONS(4808),
    [anon_sym_DOLLAR] = ACTIONS(4808),
    [anon_sym_STAR] = ACTIONS(4808),
    [anon_sym_TILDE] = ACTIONS(4808),
    [anon_sym_AT] = ACTIONS(4808),
    [sym_bool] = ACTIONS(4806),
    [sym_byte] = ACTIONS(4806),
    [sym_ubyte] = ACTIONS(4806),
    [sym_char] = ACTIONS(4806),
    [sym_short] = ACTIONS(4806),
    [sym_ushort] = ACTIONS(4806),
    [sym_int] = ACTIONS(4806),
    [sym_uint] = ACTIONS(4806),
    [sym_long] = ACTIONS(4806),
    [sym_ulong] = ACTIONS(4806),
    [sym_cent] = ACTIONS(4806),
    [sym_ucent] = ACTIONS(4806),
    [sym_wchar] = ACTIONS(4806),
    [sym_dchar] = ACTIONS(4806),
    [sym_float] = ACTIONS(4806),
    [sym_double] = ACTIONS(4806),
    [sym_real] = ACTIONS(4806),
    [sym_ifloat] = ACTIONS(4806),
    [sym_idouble] = ACTIONS(4806),
    [sym_ireal] = ACTIONS(4806),
    [sym_cfloat] = ACTIONS(4806),
    [sym_cdouble] = ACTIONS(4806),
    [sym_creal] = ACTIONS(4806),
    [sym_size_t] = ACTIONS(4806),
    [sym_ptrdiff_t] = ACTIONS(4806),
    [sym_string] = ACTIONS(4806),
    [sym_cstring] = ACTIONS(4806),
    [sym_dstring] = ACTIONS(4806),
    [sym_wstring] = ACTIONS(4806),
    [sym_noreturn] = ACTIONS(4806),
    [sym_true] = ACTIONS(4806),
    [sym_false] = ACTIONS(4806),
    [sym_null] = ACTIONS(4806),
    [sym_super] = ACTIONS(4806),
    [sym_this] = ACTIONS(4806),
    [sym_abstract] = ACTIONS(4806),
    [sym_alias] = ACTIONS(4806),
    [sym_align] = ACTIONS(4806),
    [sym_asm] = ACTIONS(4806),
    [sym_assert] = ACTIONS(4806),
    [sym_auto] = ACTIONS(4806),
    [sym_break] = ACTIONS(4806),
    [sym_case] = ACTIONS(4806),
    [sym_cast] = ACTIONS(4806),
    [sym_catch] = ACTIONS(4806),
    [sym_class] = ACTIONS(4806),
    [sym_const] = ACTIONS(4806),
    [sym_continue] = ACTIONS(4806),
    [sym_debug] = ACTIONS(4806),
    [sym_default] = ACTIONS(4806),
    [sym_delegate] = ACTIONS(4806),
    [sym_delete] = ACTIONS(4806),
    [sym_deprecated] = ACTIONS(4806),
    [sym_do] = ACTIONS(4806),
    [sym_else] = ACTIONS(4806),
    [sym_enum] = ACTIONS(4806),
    [sym_export] = ACTIONS(4806),
    [sym_extern] = ACTIONS(4806),
    [sym_final] = ACTIONS(4806),
    [sym_finally] = ACTIONS(4806),
    [sym_for] = ACTIONS(4806),
    [sym_foreach] = ACTIONS(4806),
    [sym_foreach_reverse] = ACTIONS(4806),
    [sym_function] = ACTIONS(4806),
    [sym_goto] = ACTIONS(4806),
    [sym_if] = ACTIONS(4806),
    [sym_immutable] = ACTIONS(4806),
    [sym_import] = ACTIONS(4806),
    [sym_in] = ACTIONS(4806),
    [sym_inout] = ACTIONS(4806),
    [sym_interface] = ACTIONS(4806),
    [sym_invariant] = ACTIONS(4806),
    [sym_is] = ACTIONS(4806),
    [sym_mixin] = ACTIONS(4806),
    [sym_new] = ACTIONS(4806),
    [sym_nothrow] = ACTIONS(4806),
    [sym_out] = ACTIONS(4806),
    [sym_override] = ACTIONS(4806),
    [sym_package] = ACTIONS(4806),
    [sym_pragma] = ACTIONS(4806),
    [sym_private] = ACTIONS(4806),
    [sym_protected] = ACTIONS(4806),
    [sym_public] = ACTIONS(4806),
    [sym_pure] = ACTIONS(4806),
    [sym_ref] = ACTIONS(4806),
    [sym_return] = ACTIONS(4806),
    [sym_scope] = ACTIONS(4806),
    [sym_shared] = ACTIONS(4806),
    [sym_static] = ACTIONS(4806),
    [sym_struct] = ACTIONS(4806),
    [sym_switch] = ACTIONS(4806),
    [sym_synchronized] = ACTIONS(4806),
    [sym_template] = ACTIONS(4806),
    [sym_throw] = ACTIONS(4806),
    [sym_try] = ACTIONS(4806),
    [sym_typeid] = ACTIONS(4806),
    [sym_typeof] = ACTIONS(4806),
    [sym_union] = ACTIONS(4806),
    [sym_unittest] = ACTIONS(4806),
    [sym_version] = ACTIONS(4806),
    [sym_while] = ACTIONS(4806),
    [sym_with] = ACTIONS(4806),
    [sym_gshared] = ACTIONS(4806),
    [sym_traits] = ACTIONS(4806),
    [sym_vector] = ACTIONS(4806),
    [sym_void] = ACTIONS(4806),
    [anon_sym_BQUOTE] = ACTIONS(4808),
    [anon_sym_r_DQUOTE] = ACTIONS(4808),
    [anon_sym_x_DQUOTE] = ACTIONS(4808),
    [anon_sym_DQUOTE] = ACTIONS(4808),
    [anon_sym_i_BQUOTE] = ACTIONS(4808),
    [anon_sym_i_DQUOTE] = ACTIONS(4808),
    [anon_sym_iq_LBRACE] = ACTIONS(4808),
    [aux_sym_char_literal_token1] = ACTIONS(4808),
    [anon_sym_SQUOTE] = ACTIONS(4806),
    [anon_sym___DATE__] = ACTIONS(4806),
    [anon_sym___FILE__] = ACTIONS(4806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4806),
    [anon_sym___FUNCTION__] = ACTIONS(4806),
    [anon_sym___LINE__] = ACTIONS(4806),
    [anon_sym___MODULE__] = ACTIONS(4806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4806),
    [anon_sym___TIME__] = ACTIONS(4806),
    [anon_sym___TIMESTAMP__] = ACTIONS(4806),
    [anon_sym___VENDOR__] = ACTIONS(4806),
    [anon_sym___VERSION__] = ACTIONS(4806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4808),
    [sym_float_literal] = ACTIONS(4808),
    [sym__string] = ACTIONS(4808),
  },
  [1482] = {
    [sym_identifier] = ACTIONS(4810),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4812),
    [anon_sym_RBRACE] = ACTIONS(4812),
    [anon_sym_LBRACE] = ACTIONS(4812),
    [anon_sym_DOT] = ACTIONS(4812),
    [anon_sym_AMP] = ACTIONS(4812),
    [anon_sym_DASH] = ACTIONS(4810),
    [anon_sym_DASH_DASH] = ACTIONS(4812),
    [anon_sym_PLUS] = ACTIONS(4810),
    [anon_sym_PLUS_PLUS] = ACTIONS(4812),
    [anon_sym_BANG] = ACTIONS(4812),
    [anon_sym_LPAREN] = ACTIONS(4812),
    [anon_sym_RPAREN] = ACTIONS(4812),
    [anon_sym_LBRACK] = ACTIONS(4812),
    [anon_sym_SEMI] = ACTIONS(4812),
    [anon_sym_DOLLAR] = ACTIONS(4812),
    [anon_sym_STAR] = ACTIONS(4812),
    [anon_sym_TILDE] = ACTIONS(4812),
    [anon_sym_AT] = ACTIONS(4812),
    [sym_bool] = ACTIONS(4810),
    [sym_byte] = ACTIONS(4810),
    [sym_ubyte] = ACTIONS(4810),
    [sym_char] = ACTIONS(4810),
    [sym_short] = ACTIONS(4810),
    [sym_ushort] = ACTIONS(4810),
    [sym_int] = ACTIONS(4810),
    [sym_uint] = ACTIONS(4810),
    [sym_long] = ACTIONS(4810),
    [sym_ulong] = ACTIONS(4810),
    [sym_cent] = ACTIONS(4810),
    [sym_ucent] = ACTIONS(4810),
    [sym_wchar] = ACTIONS(4810),
    [sym_dchar] = ACTIONS(4810),
    [sym_float] = ACTIONS(4810),
    [sym_double] = ACTIONS(4810),
    [sym_real] = ACTIONS(4810),
    [sym_ifloat] = ACTIONS(4810),
    [sym_idouble] = ACTIONS(4810),
    [sym_ireal] = ACTIONS(4810),
    [sym_cfloat] = ACTIONS(4810),
    [sym_cdouble] = ACTIONS(4810),
    [sym_creal] = ACTIONS(4810),
    [sym_size_t] = ACTIONS(4810),
    [sym_ptrdiff_t] = ACTIONS(4810),
    [sym_string] = ACTIONS(4810),
    [sym_cstring] = ACTIONS(4810),
    [sym_dstring] = ACTIONS(4810),
    [sym_wstring] = ACTIONS(4810),
    [sym_noreturn] = ACTIONS(4810),
    [sym_true] = ACTIONS(4810),
    [sym_false] = ACTIONS(4810),
    [sym_null] = ACTIONS(4810),
    [sym_super] = ACTIONS(4810),
    [sym_this] = ACTIONS(4810),
    [sym_abstract] = ACTIONS(4810),
    [sym_alias] = ACTIONS(4810),
    [sym_align] = ACTIONS(4810),
    [sym_asm] = ACTIONS(4810),
    [sym_assert] = ACTIONS(4810),
    [sym_auto] = ACTIONS(4810),
    [sym_break] = ACTIONS(4810),
    [sym_case] = ACTIONS(4810),
    [sym_cast] = ACTIONS(4810),
    [sym_catch] = ACTIONS(4810),
    [sym_class] = ACTIONS(4810),
    [sym_const] = ACTIONS(4810),
    [sym_continue] = ACTIONS(4810),
    [sym_debug] = ACTIONS(4810),
    [sym_default] = ACTIONS(4810),
    [sym_delegate] = ACTIONS(4810),
    [sym_delete] = ACTIONS(4810),
    [sym_deprecated] = ACTIONS(4810),
    [sym_do] = ACTIONS(4810),
    [sym_else] = ACTIONS(4810),
    [sym_enum] = ACTIONS(4810),
    [sym_export] = ACTIONS(4810),
    [sym_extern] = ACTIONS(4810),
    [sym_final] = ACTIONS(4810),
    [sym_finally] = ACTIONS(4810),
    [sym_for] = ACTIONS(4810),
    [sym_foreach] = ACTIONS(4810),
    [sym_foreach_reverse] = ACTIONS(4810),
    [sym_function] = ACTIONS(4810),
    [sym_goto] = ACTIONS(4810),
    [sym_if] = ACTIONS(4810),
    [sym_immutable] = ACTIONS(4810),
    [sym_import] = ACTIONS(4810),
    [sym_in] = ACTIONS(4810),
    [sym_inout] = ACTIONS(4810),
    [sym_interface] = ACTIONS(4810),
    [sym_invariant] = ACTIONS(4810),
    [sym_is] = ACTIONS(4810),
    [sym_mixin] = ACTIONS(4810),
    [sym_new] = ACTIONS(4810),
    [sym_nothrow] = ACTIONS(4810),
    [sym_out] = ACTIONS(4810),
    [sym_override] = ACTIONS(4810),
    [sym_package] = ACTIONS(4810),
    [sym_pragma] = ACTIONS(4810),
    [sym_private] = ACTIONS(4810),
    [sym_protected] = ACTIONS(4810),
    [sym_public] = ACTIONS(4810),
    [sym_pure] = ACTIONS(4810),
    [sym_ref] = ACTIONS(4810),
    [sym_return] = ACTIONS(4810),
    [sym_scope] = ACTIONS(4810),
    [sym_shared] = ACTIONS(4810),
    [sym_static] = ACTIONS(4810),
    [sym_struct] = ACTIONS(4810),
    [sym_switch] = ACTIONS(4810),
    [sym_synchronized] = ACTIONS(4810),
    [sym_template] = ACTIONS(4810),
    [sym_throw] = ACTIONS(4810),
    [sym_try] = ACTIONS(4810),
    [sym_typeid] = ACTIONS(4810),
    [sym_typeof] = ACTIONS(4810),
    [sym_union] = ACTIONS(4810),
    [sym_unittest] = ACTIONS(4810),
    [sym_version] = ACTIONS(4810),
    [sym_while] = ACTIONS(4810),
    [sym_with] = ACTIONS(4810),
    [sym_gshared] = ACTIONS(4810),
    [sym_traits] = ACTIONS(4810),
    [sym_vector] = ACTIONS(4810),
    [sym_void] = ACTIONS(4810),
    [anon_sym_BQUOTE] = ACTIONS(4812),
    [anon_sym_r_DQUOTE] = ACTIONS(4812),
    [anon_sym_x_DQUOTE] = ACTIONS(4812),
    [anon_sym_DQUOTE] = ACTIONS(4812),
    [anon_sym_i_BQUOTE] = ACTIONS(4812),
    [anon_sym_i_DQUOTE] = ACTIONS(4812),
    [anon_sym_iq_LBRACE] = ACTIONS(4812),
    [aux_sym_char_literal_token1] = ACTIONS(4812),
    [anon_sym_SQUOTE] = ACTIONS(4810),
    [anon_sym___DATE__] = ACTIONS(4810),
    [anon_sym___FILE__] = ACTIONS(4810),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4810),
    [anon_sym___FUNCTION__] = ACTIONS(4810),
    [anon_sym___LINE__] = ACTIONS(4810),
    [anon_sym___MODULE__] = ACTIONS(4810),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4810),
    [anon_sym___TIME__] = ACTIONS(4810),
    [anon_sym___TIMESTAMP__] = ACTIONS(4810),
    [anon_sym___VENDOR__] = ACTIONS(4810),
    [anon_sym___VERSION__] = ACTIONS(4810),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4812),
    [sym_float_literal] = ACTIONS(4812),
    [sym__string] = ACTIONS(4812),
  },
  [1483] = {
    [sym_identifier] = ACTIONS(4814),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4816),
    [anon_sym_RBRACE] = ACTIONS(4816),
    [anon_sym_LBRACE] = ACTIONS(4816),
    [anon_sym_DOT] = ACTIONS(4816),
    [anon_sym_AMP] = ACTIONS(4816),
    [anon_sym_DASH] = ACTIONS(4814),
    [anon_sym_DASH_DASH] = ACTIONS(4816),
    [anon_sym_PLUS] = ACTIONS(4814),
    [anon_sym_PLUS_PLUS] = ACTIONS(4816),
    [anon_sym_BANG] = ACTIONS(4816),
    [anon_sym_LPAREN] = ACTIONS(4816),
    [anon_sym_RPAREN] = ACTIONS(4816),
    [anon_sym_LBRACK] = ACTIONS(4816),
    [anon_sym_SEMI] = ACTIONS(4816),
    [anon_sym_DOLLAR] = ACTIONS(4816),
    [anon_sym_STAR] = ACTIONS(4816),
    [anon_sym_TILDE] = ACTIONS(4816),
    [anon_sym_AT] = ACTIONS(4816),
    [sym_bool] = ACTIONS(4814),
    [sym_byte] = ACTIONS(4814),
    [sym_ubyte] = ACTIONS(4814),
    [sym_char] = ACTIONS(4814),
    [sym_short] = ACTIONS(4814),
    [sym_ushort] = ACTIONS(4814),
    [sym_int] = ACTIONS(4814),
    [sym_uint] = ACTIONS(4814),
    [sym_long] = ACTIONS(4814),
    [sym_ulong] = ACTIONS(4814),
    [sym_cent] = ACTIONS(4814),
    [sym_ucent] = ACTIONS(4814),
    [sym_wchar] = ACTIONS(4814),
    [sym_dchar] = ACTIONS(4814),
    [sym_float] = ACTIONS(4814),
    [sym_double] = ACTIONS(4814),
    [sym_real] = ACTIONS(4814),
    [sym_ifloat] = ACTIONS(4814),
    [sym_idouble] = ACTIONS(4814),
    [sym_ireal] = ACTIONS(4814),
    [sym_cfloat] = ACTIONS(4814),
    [sym_cdouble] = ACTIONS(4814),
    [sym_creal] = ACTIONS(4814),
    [sym_size_t] = ACTIONS(4814),
    [sym_ptrdiff_t] = ACTIONS(4814),
    [sym_string] = ACTIONS(4814),
    [sym_cstring] = ACTIONS(4814),
    [sym_dstring] = ACTIONS(4814),
    [sym_wstring] = ACTIONS(4814),
    [sym_noreturn] = ACTIONS(4814),
    [sym_true] = ACTIONS(4814),
    [sym_false] = ACTIONS(4814),
    [sym_null] = ACTIONS(4814),
    [sym_super] = ACTIONS(4814),
    [sym_this] = ACTIONS(4814),
    [sym_abstract] = ACTIONS(4814),
    [sym_alias] = ACTIONS(4814),
    [sym_align] = ACTIONS(4814),
    [sym_asm] = ACTIONS(4814),
    [sym_assert] = ACTIONS(4814),
    [sym_auto] = ACTIONS(4814),
    [sym_break] = ACTIONS(4814),
    [sym_case] = ACTIONS(4814),
    [sym_cast] = ACTIONS(4814),
    [sym_catch] = ACTIONS(4814),
    [sym_class] = ACTIONS(4814),
    [sym_const] = ACTIONS(4814),
    [sym_continue] = ACTIONS(4814),
    [sym_debug] = ACTIONS(4814),
    [sym_default] = ACTIONS(4814),
    [sym_delegate] = ACTIONS(4814),
    [sym_delete] = ACTIONS(4814),
    [sym_deprecated] = ACTIONS(4814),
    [sym_do] = ACTIONS(4814),
    [sym_else] = ACTIONS(4814),
    [sym_enum] = ACTIONS(4814),
    [sym_export] = ACTIONS(4814),
    [sym_extern] = ACTIONS(4814),
    [sym_final] = ACTIONS(4814),
    [sym_finally] = ACTIONS(4814),
    [sym_for] = ACTIONS(4814),
    [sym_foreach] = ACTIONS(4814),
    [sym_foreach_reverse] = ACTIONS(4814),
    [sym_function] = ACTIONS(4814),
    [sym_goto] = ACTIONS(4814),
    [sym_if] = ACTIONS(4814),
    [sym_immutable] = ACTIONS(4814),
    [sym_import] = ACTIONS(4814),
    [sym_in] = ACTIONS(4814),
    [sym_inout] = ACTIONS(4814),
    [sym_interface] = ACTIONS(4814),
    [sym_invariant] = ACTIONS(4814),
    [sym_is] = ACTIONS(4814),
    [sym_mixin] = ACTIONS(4814),
    [sym_new] = ACTIONS(4814),
    [sym_nothrow] = ACTIONS(4814),
    [sym_out] = ACTIONS(4814),
    [sym_override] = ACTIONS(4814),
    [sym_package] = ACTIONS(4814),
    [sym_pragma] = ACTIONS(4814),
    [sym_private] = ACTIONS(4814),
    [sym_protected] = ACTIONS(4814),
    [sym_public] = ACTIONS(4814),
    [sym_pure] = ACTIONS(4814),
    [sym_ref] = ACTIONS(4814),
    [sym_return] = ACTIONS(4814),
    [sym_scope] = ACTIONS(4814),
    [sym_shared] = ACTIONS(4814),
    [sym_static] = ACTIONS(4814),
    [sym_struct] = ACTIONS(4814),
    [sym_switch] = ACTIONS(4814),
    [sym_synchronized] = ACTIONS(4814),
    [sym_template] = ACTIONS(4814),
    [sym_throw] = ACTIONS(4814),
    [sym_try] = ACTIONS(4814),
    [sym_typeid] = ACTIONS(4814),
    [sym_typeof] = ACTIONS(4814),
    [sym_union] = ACTIONS(4814),
    [sym_unittest] = ACTIONS(4814),
    [sym_version] = ACTIONS(4814),
    [sym_while] = ACTIONS(4814),
    [sym_with] = ACTIONS(4814),
    [sym_gshared] = ACTIONS(4814),
    [sym_traits] = ACTIONS(4814),
    [sym_vector] = ACTIONS(4814),
    [sym_void] = ACTIONS(4814),
    [anon_sym_BQUOTE] = ACTIONS(4816),
    [anon_sym_r_DQUOTE] = ACTIONS(4816),
    [anon_sym_x_DQUOTE] = ACTIONS(4816),
    [anon_sym_DQUOTE] = ACTIONS(4816),
    [anon_sym_i_BQUOTE] = ACTIONS(4816),
    [anon_sym_i_DQUOTE] = ACTIONS(4816),
    [anon_sym_iq_LBRACE] = ACTIONS(4816),
    [aux_sym_char_literal_token1] = ACTIONS(4816),
    [anon_sym_SQUOTE] = ACTIONS(4814),
    [anon_sym___DATE__] = ACTIONS(4814),
    [anon_sym___FILE__] = ACTIONS(4814),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4814),
    [anon_sym___FUNCTION__] = ACTIONS(4814),
    [anon_sym___LINE__] = ACTIONS(4814),
    [anon_sym___MODULE__] = ACTIONS(4814),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4814),
    [anon_sym___TIME__] = ACTIONS(4814),
    [anon_sym___TIMESTAMP__] = ACTIONS(4814),
    [anon_sym___VENDOR__] = ACTIONS(4814),
    [anon_sym___VERSION__] = ACTIONS(4814),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4816),
    [sym_float_literal] = ACTIONS(4816),
    [sym__string] = ACTIONS(4816),
  },
  [1484] = {
    [sym_identifier] = ACTIONS(4818),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4820),
    [anon_sym_RBRACE] = ACTIONS(4820),
    [anon_sym_LBRACE] = ACTIONS(4820),
    [anon_sym_DOT] = ACTIONS(4820),
    [anon_sym_AMP] = ACTIONS(4820),
    [anon_sym_DASH] = ACTIONS(4818),
    [anon_sym_DASH_DASH] = ACTIONS(4820),
    [anon_sym_PLUS] = ACTIONS(4818),
    [anon_sym_PLUS_PLUS] = ACTIONS(4820),
    [anon_sym_BANG] = ACTIONS(4820),
    [anon_sym_LPAREN] = ACTIONS(4820),
    [anon_sym_RPAREN] = ACTIONS(4820),
    [anon_sym_LBRACK] = ACTIONS(4820),
    [anon_sym_SEMI] = ACTIONS(4820),
    [anon_sym_DOLLAR] = ACTIONS(4820),
    [anon_sym_STAR] = ACTIONS(4820),
    [anon_sym_TILDE] = ACTIONS(4820),
    [anon_sym_AT] = ACTIONS(4820),
    [sym_bool] = ACTIONS(4818),
    [sym_byte] = ACTIONS(4818),
    [sym_ubyte] = ACTIONS(4818),
    [sym_char] = ACTIONS(4818),
    [sym_short] = ACTIONS(4818),
    [sym_ushort] = ACTIONS(4818),
    [sym_int] = ACTIONS(4818),
    [sym_uint] = ACTIONS(4818),
    [sym_long] = ACTIONS(4818),
    [sym_ulong] = ACTIONS(4818),
    [sym_cent] = ACTIONS(4818),
    [sym_ucent] = ACTIONS(4818),
    [sym_wchar] = ACTIONS(4818),
    [sym_dchar] = ACTIONS(4818),
    [sym_float] = ACTIONS(4818),
    [sym_double] = ACTIONS(4818),
    [sym_real] = ACTIONS(4818),
    [sym_ifloat] = ACTIONS(4818),
    [sym_idouble] = ACTIONS(4818),
    [sym_ireal] = ACTIONS(4818),
    [sym_cfloat] = ACTIONS(4818),
    [sym_cdouble] = ACTIONS(4818),
    [sym_creal] = ACTIONS(4818),
    [sym_size_t] = ACTIONS(4818),
    [sym_ptrdiff_t] = ACTIONS(4818),
    [sym_string] = ACTIONS(4818),
    [sym_cstring] = ACTIONS(4818),
    [sym_dstring] = ACTIONS(4818),
    [sym_wstring] = ACTIONS(4818),
    [sym_noreturn] = ACTIONS(4818),
    [sym_true] = ACTIONS(4818),
    [sym_false] = ACTIONS(4818),
    [sym_null] = ACTIONS(4818),
    [sym_super] = ACTIONS(4818),
    [sym_this] = ACTIONS(4818),
    [sym_abstract] = ACTIONS(4818),
    [sym_alias] = ACTIONS(4818),
    [sym_align] = ACTIONS(4818),
    [sym_asm] = ACTIONS(4818),
    [sym_assert] = ACTIONS(4818),
    [sym_auto] = ACTIONS(4818),
    [sym_break] = ACTIONS(4818),
    [sym_case] = ACTIONS(4818),
    [sym_cast] = ACTIONS(4818),
    [sym_catch] = ACTIONS(4818),
    [sym_class] = ACTIONS(4818),
    [sym_const] = ACTIONS(4818),
    [sym_continue] = ACTIONS(4818),
    [sym_debug] = ACTIONS(4818),
    [sym_default] = ACTIONS(4818),
    [sym_delegate] = ACTIONS(4818),
    [sym_delete] = ACTIONS(4818),
    [sym_deprecated] = ACTIONS(4818),
    [sym_do] = ACTIONS(4818),
    [sym_else] = ACTIONS(4818),
    [sym_enum] = ACTIONS(4818),
    [sym_export] = ACTIONS(4818),
    [sym_extern] = ACTIONS(4818),
    [sym_final] = ACTIONS(4818),
    [sym_finally] = ACTIONS(4818),
    [sym_for] = ACTIONS(4818),
    [sym_foreach] = ACTIONS(4818),
    [sym_foreach_reverse] = ACTIONS(4818),
    [sym_function] = ACTIONS(4818),
    [sym_goto] = ACTIONS(4818),
    [sym_if] = ACTIONS(4818),
    [sym_immutable] = ACTIONS(4818),
    [sym_import] = ACTIONS(4818),
    [sym_in] = ACTIONS(4818),
    [sym_inout] = ACTIONS(4818),
    [sym_interface] = ACTIONS(4818),
    [sym_invariant] = ACTIONS(4818),
    [sym_is] = ACTIONS(4818),
    [sym_mixin] = ACTIONS(4818),
    [sym_new] = ACTIONS(4818),
    [sym_nothrow] = ACTIONS(4818),
    [sym_out] = ACTIONS(4818),
    [sym_override] = ACTIONS(4818),
    [sym_package] = ACTIONS(4818),
    [sym_pragma] = ACTIONS(4818),
    [sym_private] = ACTIONS(4818),
    [sym_protected] = ACTIONS(4818),
    [sym_public] = ACTIONS(4818),
    [sym_pure] = ACTIONS(4818),
    [sym_ref] = ACTIONS(4818),
    [sym_return] = ACTIONS(4818),
    [sym_scope] = ACTIONS(4818),
    [sym_shared] = ACTIONS(4818),
    [sym_static] = ACTIONS(4818),
    [sym_struct] = ACTIONS(4818),
    [sym_switch] = ACTIONS(4818),
    [sym_synchronized] = ACTIONS(4818),
    [sym_template] = ACTIONS(4818),
    [sym_throw] = ACTIONS(4818),
    [sym_try] = ACTIONS(4818),
    [sym_typeid] = ACTIONS(4818),
    [sym_typeof] = ACTIONS(4818),
    [sym_union] = ACTIONS(4818),
    [sym_unittest] = ACTIONS(4818),
    [sym_version] = ACTIONS(4818),
    [sym_while] = ACTIONS(4818),
    [sym_with] = ACTIONS(4818),
    [sym_gshared] = ACTIONS(4818),
    [sym_traits] = ACTIONS(4818),
    [sym_vector] = ACTIONS(4818),
    [sym_void] = ACTIONS(4818),
    [anon_sym_BQUOTE] = ACTIONS(4820),
    [anon_sym_r_DQUOTE] = ACTIONS(4820),
    [anon_sym_x_DQUOTE] = ACTIONS(4820),
    [anon_sym_DQUOTE] = ACTIONS(4820),
    [anon_sym_i_BQUOTE] = ACTIONS(4820),
    [anon_sym_i_DQUOTE] = ACTIONS(4820),
    [anon_sym_iq_LBRACE] = ACTIONS(4820),
    [aux_sym_char_literal_token1] = ACTIONS(4820),
    [anon_sym_SQUOTE] = ACTIONS(4818),
    [anon_sym___DATE__] = ACTIONS(4818),
    [anon_sym___FILE__] = ACTIONS(4818),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4818),
    [anon_sym___FUNCTION__] = ACTIONS(4818),
    [anon_sym___LINE__] = ACTIONS(4818),
    [anon_sym___MODULE__] = ACTIONS(4818),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4818),
    [anon_sym___TIME__] = ACTIONS(4818),
    [anon_sym___TIMESTAMP__] = ACTIONS(4818),
    [anon_sym___VENDOR__] = ACTIONS(4818),
    [anon_sym___VERSION__] = ACTIONS(4818),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4820),
    [sym_float_literal] = ACTIONS(4820),
    [sym__string] = ACTIONS(4820),
  },
  [1485] = {
    [sym_identifier] = ACTIONS(4822),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4824),
    [anon_sym_RBRACE] = ACTIONS(4824),
    [anon_sym_LBRACE] = ACTIONS(4824),
    [anon_sym_DOT] = ACTIONS(4824),
    [anon_sym_AMP] = ACTIONS(4824),
    [anon_sym_DASH] = ACTIONS(4822),
    [anon_sym_DASH_DASH] = ACTIONS(4824),
    [anon_sym_PLUS] = ACTIONS(4822),
    [anon_sym_PLUS_PLUS] = ACTIONS(4824),
    [anon_sym_BANG] = ACTIONS(4824),
    [anon_sym_LPAREN] = ACTIONS(4824),
    [anon_sym_RPAREN] = ACTIONS(4824),
    [anon_sym_LBRACK] = ACTIONS(4824),
    [anon_sym_SEMI] = ACTIONS(4824),
    [anon_sym_DOLLAR] = ACTIONS(4824),
    [anon_sym_STAR] = ACTIONS(4824),
    [anon_sym_TILDE] = ACTIONS(4824),
    [anon_sym_AT] = ACTIONS(4824),
    [sym_bool] = ACTIONS(4822),
    [sym_byte] = ACTIONS(4822),
    [sym_ubyte] = ACTIONS(4822),
    [sym_char] = ACTIONS(4822),
    [sym_short] = ACTIONS(4822),
    [sym_ushort] = ACTIONS(4822),
    [sym_int] = ACTIONS(4822),
    [sym_uint] = ACTIONS(4822),
    [sym_long] = ACTIONS(4822),
    [sym_ulong] = ACTIONS(4822),
    [sym_cent] = ACTIONS(4822),
    [sym_ucent] = ACTIONS(4822),
    [sym_wchar] = ACTIONS(4822),
    [sym_dchar] = ACTIONS(4822),
    [sym_float] = ACTIONS(4822),
    [sym_double] = ACTIONS(4822),
    [sym_real] = ACTIONS(4822),
    [sym_ifloat] = ACTIONS(4822),
    [sym_idouble] = ACTIONS(4822),
    [sym_ireal] = ACTIONS(4822),
    [sym_cfloat] = ACTIONS(4822),
    [sym_cdouble] = ACTIONS(4822),
    [sym_creal] = ACTIONS(4822),
    [sym_size_t] = ACTIONS(4822),
    [sym_ptrdiff_t] = ACTIONS(4822),
    [sym_string] = ACTIONS(4822),
    [sym_cstring] = ACTIONS(4822),
    [sym_dstring] = ACTIONS(4822),
    [sym_wstring] = ACTIONS(4822),
    [sym_noreturn] = ACTIONS(4822),
    [sym_true] = ACTIONS(4822),
    [sym_false] = ACTIONS(4822),
    [sym_null] = ACTIONS(4822),
    [sym_super] = ACTIONS(4822),
    [sym_this] = ACTIONS(4822),
    [sym_abstract] = ACTIONS(4822),
    [sym_alias] = ACTIONS(4822),
    [sym_align] = ACTIONS(4822),
    [sym_asm] = ACTIONS(4822),
    [sym_assert] = ACTIONS(4822),
    [sym_auto] = ACTIONS(4822),
    [sym_break] = ACTIONS(4822),
    [sym_case] = ACTIONS(4822),
    [sym_cast] = ACTIONS(4822),
    [sym_catch] = ACTIONS(4822),
    [sym_class] = ACTIONS(4822),
    [sym_const] = ACTIONS(4822),
    [sym_continue] = ACTIONS(4822),
    [sym_debug] = ACTIONS(4822),
    [sym_default] = ACTIONS(4822),
    [sym_delegate] = ACTIONS(4822),
    [sym_delete] = ACTIONS(4822),
    [sym_deprecated] = ACTIONS(4822),
    [sym_do] = ACTIONS(4822),
    [sym_else] = ACTIONS(4822),
    [sym_enum] = ACTIONS(4822),
    [sym_export] = ACTIONS(4822),
    [sym_extern] = ACTIONS(4822),
    [sym_final] = ACTIONS(4822),
    [sym_finally] = ACTIONS(4822),
    [sym_for] = ACTIONS(4822),
    [sym_foreach] = ACTIONS(4822),
    [sym_foreach_reverse] = ACTIONS(4822),
    [sym_function] = ACTIONS(4822),
    [sym_goto] = ACTIONS(4822),
    [sym_if] = ACTIONS(4822),
    [sym_immutable] = ACTIONS(4822),
    [sym_import] = ACTIONS(4822),
    [sym_in] = ACTIONS(4822),
    [sym_inout] = ACTIONS(4822),
    [sym_interface] = ACTIONS(4822),
    [sym_invariant] = ACTIONS(4822),
    [sym_is] = ACTIONS(4822),
    [sym_mixin] = ACTIONS(4822),
    [sym_new] = ACTIONS(4822),
    [sym_nothrow] = ACTIONS(4822),
    [sym_out] = ACTIONS(4822),
    [sym_override] = ACTIONS(4822),
    [sym_package] = ACTIONS(4822),
    [sym_pragma] = ACTIONS(4822),
    [sym_private] = ACTIONS(4822),
    [sym_protected] = ACTIONS(4822),
    [sym_public] = ACTIONS(4822),
    [sym_pure] = ACTIONS(4822),
    [sym_ref] = ACTIONS(4822),
    [sym_return] = ACTIONS(4822),
    [sym_scope] = ACTIONS(4822),
    [sym_shared] = ACTIONS(4822),
    [sym_static] = ACTIONS(4822),
    [sym_struct] = ACTIONS(4822),
    [sym_switch] = ACTIONS(4822),
    [sym_synchronized] = ACTIONS(4822),
    [sym_template] = ACTIONS(4822),
    [sym_throw] = ACTIONS(4822),
    [sym_try] = ACTIONS(4822),
    [sym_typeid] = ACTIONS(4822),
    [sym_typeof] = ACTIONS(4822),
    [sym_union] = ACTIONS(4822),
    [sym_unittest] = ACTIONS(4822),
    [sym_version] = ACTIONS(4822),
    [sym_while] = ACTIONS(4822),
    [sym_with] = ACTIONS(4822),
    [sym_gshared] = ACTIONS(4822),
    [sym_traits] = ACTIONS(4822),
    [sym_vector] = ACTIONS(4822),
    [sym_void] = ACTIONS(4822),
    [anon_sym_BQUOTE] = ACTIONS(4824),
    [anon_sym_r_DQUOTE] = ACTIONS(4824),
    [anon_sym_x_DQUOTE] = ACTIONS(4824),
    [anon_sym_DQUOTE] = ACTIONS(4824),
    [anon_sym_i_BQUOTE] = ACTIONS(4824),
    [anon_sym_i_DQUOTE] = ACTIONS(4824),
    [anon_sym_iq_LBRACE] = ACTIONS(4824),
    [aux_sym_char_literal_token1] = ACTIONS(4824),
    [anon_sym_SQUOTE] = ACTIONS(4822),
    [anon_sym___DATE__] = ACTIONS(4822),
    [anon_sym___FILE__] = ACTIONS(4822),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4822),
    [anon_sym___FUNCTION__] = ACTIONS(4822),
    [anon_sym___LINE__] = ACTIONS(4822),
    [anon_sym___MODULE__] = ACTIONS(4822),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4822),
    [anon_sym___TIME__] = ACTIONS(4822),
    [anon_sym___TIMESTAMP__] = ACTIONS(4822),
    [anon_sym___VENDOR__] = ACTIONS(4822),
    [anon_sym___VERSION__] = ACTIONS(4822),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4824),
    [sym_float_literal] = ACTIONS(4824),
    [sym__string] = ACTIONS(4824),
  },
  [1486] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_finally] = ACTIONS(2665),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [1487] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(4826),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_finally] = ACTIONS(2665),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [1488] = {
    [sym_identifier] = ACTIONS(4828),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4830),
    [anon_sym_RBRACE] = ACTIONS(4830),
    [anon_sym_LBRACE] = ACTIONS(4830),
    [anon_sym_DOT] = ACTIONS(4830),
    [anon_sym_AMP] = ACTIONS(4830),
    [anon_sym_DASH] = ACTIONS(4828),
    [anon_sym_DASH_DASH] = ACTIONS(4830),
    [anon_sym_PLUS] = ACTIONS(4828),
    [anon_sym_PLUS_PLUS] = ACTIONS(4830),
    [anon_sym_BANG] = ACTIONS(4830),
    [anon_sym_LPAREN] = ACTIONS(4830),
    [anon_sym_RPAREN] = ACTIONS(4830),
    [anon_sym_LBRACK] = ACTIONS(4830),
    [anon_sym_SEMI] = ACTIONS(4830),
    [anon_sym_DOLLAR] = ACTIONS(4830),
    [anon_sym_STAR] = ACTIONS(4830),
    [anon_sym_TILDE] = ACTIONS(4830),
    [anon_sym_AT] = ACTIONS(4830),
    [sym_bool] = ACTIONS(4828),
    [sym_byte] = ACTIONS(4828),
    [sym_ubyte] = ACTIONS(4828),
    [sym_char] = ACTIONS(4828),
    [sym_short] = ACTIONS(4828),
    [sym_ushort] = ACTIONS(4828),
    [sym_int] = ACTIONS(4828),
    [sym_uint] = ACTIONS(4828),
    [sym_long] = ACTIONS(4828),
    [sym_ulong] = ACTIONS(4828),
    [sym_cent] = ACTIONS(4828),
    [sym_ucent] = ACTIONS(4828),
    [sym_wchar] = ACTIONS(4828),
    [sym_dchar] = ACTIONS(4828),
    [sym_float] = ACTIONS(4828),
    [sym_double] = ACTIONS(4828),
    [sym_real] = ACTIONS(4828),
    [sym_ifloat] = ACTIONS(4828),
    [sym_idouble] = ACTIONS(4828),
    [sym_ireal] = ACTIONS(4828),
    [sym_cfloat] = ACTIONS(4828),
    [sym_cdouble] = ACTIONS(4828),
    [sym_creal] = ACTIONS(4828),
    [sym_size_t] = ACTIONS(4828),
    [sym_ptrdiff_t] = ACTIONS(4828),
    [sym_string] = ACTIONS(4828),
    [sym_cstring] = ACTIONS(4828),
    [sym_dstring] = ACTIONS(4828),
    [sym_wstring] = ACTIONS(4828),
    [sym_noreturn] = ACTIONS(4828),
    [sym_true] = ACTIONS(4828),
    [sym_false] = ACTIONS(4828),
    [sym_null] = ACTIONS(4828),
    [sym_super] = ACTIONS(4828),
    [sym_this] = ACTIONS(4828),
    [sym_abstract] = ACTIONS(4828),
    [sym_alias] = ACTIONS(4828),
    [sym_align] = ACTIONS(4828),
    [sym_asm] = ACTIONS(4828),
    [sym_assert] = ACTIONS(4828),
    [sym_auto] = ACTIONS(4828),
    [sym_break] = ACTIONS(4828),
    [sym_case] = ACTIONS(4828),
    [sym_cast] = ACTIONS(4828),
    [sym_catch] = ACTIONS(4828),
    [sym_class] = ACTIONS(4828),
    [sym_const] = ACTIONS(4828),
    [sym_continue] = ACTIONS(4828),
    [sym_debug] = ACTIONS(4828),
    [sym_default] = ACTIONS(4828),
    [sym_delegate] = ACTIONS(4828),
    [sym_delete] = ACTIONS(4828),
    [sym_deprecated] = ACTIONS(4828),
    [sym_do] = ACTIONS(4828),
    [sym_else] = ACTIONS(4828),
    [sym_enum] = ACTIONS(4828),
    [sym_export] = ACTIONS(4828),
    [sym_extern] = ACTIONS(4828),
    [sym_final] = ACTIONS(4828),
    [sym_finally] = ACTIONS(4828),
    [sym_for] = ACTIONS(4828),
    [sym_foreach] = ACTIONS(4828),
    [sym_foreach_reverse] = ACTIONS(4828),
    [sym_function] = ACTIONS(4828),
    [sym_goto] = ACTIONS(4828),
    [sym_if] = ACTIONS(4828),
    [sym_immutable] = ACTIONS(4828),
    [sym_import] = ACTIONS(4828),
    [sym_in] = ACTIONS(4828),
    [sym_inout] = ACTIONS(4828),
    [sym_interface] = ACTIONS(4828),
    [sym_invariant] = ACTIONS(4828),
    [sym_is] = ACTIONS(4828),
    [sym_mixin] = ACTIONS(4828),
    [sym_new] = ACTIONS(4828),
    [sym_nothrow] = ACTIONS(4828),
    [sym_out] = ACTIONS(4828),
    [sym_override] = ACTIONS(4828),
    [sym_package] = ACTIONS(4828),
    [sym_pragma] = ACTIONS(4828),
    [sym_private] = ACTIONS(4828),
    [sym_protected] = ACTIONS(4828),
    [sym_public] = ACTIONS(4828),
    [sym_pure] = ACTIONS(4828),
    [sym_ref] = ACTIONS(4828),
    [sym_return] = ACTIONS(4828),
    [sym_scope] = ACTIONS(4828),
    [sym_shared] = ACTIONS(4828),
    [sym_static] = ACTIONS(4828),
    [sym_struct] = ACTIONS(4828),
    [sym_switch] = ACTIONS(4828),
    [sym_synchronized] = ACTIONS(4828),
    [sym_template] = ACTIONS(4828),
    [sym_throw] = ACTIONS(4828),
    [sym_try] = ACTIONS(4828),
    [sym_typeid] = ACTIONS(4828),
    [sym_typeof] = ACTIONS(4828),
    [sym_union] = ACTIONS(4828),
    [sym_unittest] = ACTIONS(4828),
    [sym_version] = ACTIONS(4828),
    [sym_while] = ACTIONS(4828),
    [sym_with] = ACTIONS(4828),
    [sym_gshared] = ACTIONS(4828),
    [sym_traits] = ACTIONS(4828),
    [sym_vector] = ACTIONS(4828),
    [sym_void] = ACTIONS(4828),
    [anon_sym_BQUOTE] = ACTIONS(4830),
    [anon_sym_r_DQUOTE] = ACTIONS(4830),
    [anon_sym_x_DQUOTE] = ACTIONS(4830),
    [anon_sym_DQUOTE] = ACTIONS(4830),
    [anon_sym_i_BQUOTE] = ACTIONS(4830),
    [anon_sym_i_DQUOTE] = ACTIONS(4830),
    [anon_sym_iq_LBRACE] = ACTIONS(4830),
    [aux_sym_char_literal_token1] = ACTIONS(4830),
    [anon_sym_SQUOTE] = ACTIONS(4828),
    [anon_sym___DATE__] = ACTIONS(4828),
    [anon_sym___FILE__] = ACTIONS(4828),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4828),
    [anon_sym___FUNCTION__] = ACTIONS(4828),
    [anon_sym___LINE__] = ACTIONS(4828),
    [anon_sym___MODULE__] = ACTIONS(4828),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4828),
    [anon_sym___TIME__] = ACTIONS(4828),
    [anon_sym___TIMESTAMP__] = ACTIONS(4828),
    [anon_sym___VENDOR__] = ACTIONS(4828),
    [anon_sym___VERSION__] = ACTIONS(4828),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4830),
    [sym_float_literal] = ACTIONS(4830),
    [sym__string] = ACTIONS(4830),
  },
  [1489] = {
    [sym_identifier] = ACTIONS(4832),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4834),
    [anon_sym_RBRACE] = ACTIONS(4834),
    [anon_sym_LBRACE] = ACTIONS(4834),
    [anon_sym_DOT] = ACTIONS(4834),
    [anon_sym_AMP] = ACTIONS(4834),
    [anon_sym_DASH] = ACTIONS(4832),
    [anon_sym_DASH_DASH] = ACTIONS(4834),
    [anon_sym_PLUS] = ACTIONS(4832),
    [anon_sym_PLUS_PLUS] = ACTIONS(4834),
    [anon_sym_BANG] = ACTIONS(4834),
    [anon_sym_LPAREN] = ACTIONS(4834),
    [anon_sym_RPAREN] = ACTIONS(4834),
    [anon_sym_LBRACK] = ACTIONS(4834),
    [anon_sym_SEMI] = ACTIONS(4834),
    [anon_sym_DOLLAR] = ACTIONS(4834),
    [anon_sym_STAR] = ACTIONS(4834),
    [anon_sym_TILDE] = ACTIONS(4834),
    [anon_sym_AT] = ACTIONS(4834),
    [sym_bool] = ACTIONS(4832),
    [sym_byte] = ACTIONS(4832),
    [sym_ubyte] = ACTIONS(4832),
    [sym_char] = ACTIONS(4832),
    [sym_short] = ACTIONS(4832),
    [sym_ushort] = ACTIONS(4832),
    [sym_int] = ACTIONS(4832),
    [sym_uint] = ACTIONS(4832),
    [sym_long] = ACTIONS(4832),
    [sym_ulong] = ACTIONS(4832),
    [sym_cent] = ACTIONS(4832),
    [sym_ucent] = ACTIONS(4832),
    [sym_wchar] = ACTIONS(4832),
    [sym_dchar] = ACTIONS(4832),
    [sym_float] = ACTIONS(4832),
    [sym_double] = ACTIONS(4832),
    [sym_real] = ACTIONS(4832),
    [sym_ifloat] = ACTIONS(4832),
    [sym_idouble] = ACTIONS(4832),
    [sym_ireal] = ACTIONS(4832),
    [sym_cfloat] = ACTIONS(4832),
    [sym_cdouble] = ACTIONS(4832),
    [sym_creal] = ACTIONS(4832),
    [sym_size_t] = ACTIONS(4832),
    [sym_ptrdiff_t] = ACTIONS(4832),
    [sym_string] = ACTIONS(4832),
    [sym_cstring] = ACTIONS(4832),
    [sym_dstring] = ACTIONS(4832),
    [sym_wstring] = ACTIONS(4832),
    [sym_noreturn] = ACTIONS(4832),
    [sym_true] = ACTIONS(4832),
    [sym_false] = ACTIONS(4832),
    [sym_null] = ACTIONS(4832),
    [sym_super] = ACTIONS(4832),
    [sym_this] = ACTIONS(4832),
    [sym_abstract] = ACTIONS(4832),
    [sym_alias] = ACTIONS(4832),
    [sym_align] = ACTIONS(4832),
    [sym_asm] = ACTIONS(4832),
    [sym_assert] = ACTIONS(4832),
    [sym_auto] = ACTIONS(4832),
    [sym_break] = ACTIONS(4832),
    [sym_case] = ACTIONS(4832),
    [sym_cast] = ACTIONS(4832),
    [sym_catch] = ACTIONS(4832),
    [sym_class] = ACTIONS(4832),
    [sym_const] = ACTIONS(4832),
    [sym_continue] = ACTIONS(4832),
    [sym_debug] = ACTIONS(4832),
    [sym_default] = ACTIONS(4832),
    [sym_delegate] = ACTIONS(4832),
    [sym_delete] = ACTIONS(4832),
    [sym_deprecated] = ACTIONS(4832),
    [sym_do] = ACTIONS(4832),
    [sym_else] = ACTIONS(4832),
    [sym_enum] = ACTIONS(4832),
    [sym_export] = ACTIONS(4832),
    [sym_extern] = ACTIONS(4832),
    [sym_final] = ACTIONS(4832),
    [sym_finally] = ACTIONS(4832),
    [sym_for] = ACTIONS(4832),
    [sym_foreach] = ACTIONS(4832),
    [sym_foreach_reverse] = ACTIONS(4832),
    [sym_function] = ACTIONS(4832),
    [sym_goto] = ACTIONS(4832),
    [sym_if] = ACTIONS(4832),
    [sym_immutable] = ACTIONS(4832),
    [sym_import] = ACTIONS(4832),
    [sym_in] = ACTIONS(4832),
    [sym_inout] = ACTIONS(4832),
    [sym_interface] = ACTIONS(4832),
    [sym_invariant] = ACTIONS(4832),
    [sym_is] = ACTIONS(4832),
    [sym_mixin] = ACTIONS(4832),
    [sym_new] = ACTIONS(4832),
    [sym_nothrow] = ACTIONS(4832),
    [sym_out] = ACTIONS(4832),
    [sym_override] = ACTIONS(4832),
    [sym_package] = ACTIONS(4832),
    [sym_pragma] = ACTIONS(4832),
    [sym_private] = ACTIONS(4832),
    [sym_protected] = ACTIONS(4832),
    [sym_public] = ACTIONS(4832),
    [sym_pure] = ACTIONS(4832),
    [sym_ref] = ACTIONS(4832),
    [sym_return] = ACTIONS(4832),
    [sym_scope] = ACTIONS(4832),
    [sym_shared] = ACTIONS(4832),
    [sym_static] = ACTIONS(4832),
    [sym_struct] = ACTIONS(4832),
    [sym_switch] = ACTIONS(4832),
    [sym_synchronized] = ACTIONS(4832),
    [sym_template] = ACTIONS(4832),
    [sym_throw] = ACTIONS(4832),
    [sym_try] = ACTIONS(4832),
    [sym_typeid] = ACTIONS(4832),
    [sym_typeof] = ACTIONS(4832),
    [sym_union] = ACTIONS(4832),
    [sym_unittest] = ACTIONS(4832),
    [sym_version] = ACTIONS(4832),
    [sym_while] = ACTIONS(4832),
    [sym_with] = ACTIONS(4832),
    [sym_gshared] = ACTIONS(4832),
    [sym_traits] = ACTIONS(4832),
    [sym_vector] = ACTIONS(4832),
    [sym_void] = ACTIONS(4832),
    [anon_sym_BQUOTE] = ACTIONS(4834),
    [anon_sym_r_DQUOTE] = ACTIONS(4834),
    [anon_sym_x_DQUOTE] = ACTIONS(4834),
    [anon_sym_DQUOTE] = ACTIONS(4834),
    [anon_sym_i_BQUOTE] = ACTIONS(4834),
    [anon_sym_i_DQUOTE] = ACTIONS(4834),
    [anon_sym_iq_LBRACE] = ACTIONS(4834),
    [aux_sym_char_literal_token1] = ACTIONS(4834),
    [anon_sym_SQUOTE] = ACTIONS(4832),
    [anon_sym___DATE__] = ACTIONS(4832),
    [anon_sym___FILE__] = ACTIONS(4832),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4832),
    [anon_sym___FUNCTION__] = ACTIONS(4832),
    [anon_sym___LINE__] = ACTIONS(4832),
    [anon_sym___MODULE__] = ACTIONS(4832),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4832),
    [anon_sym___TIME__] = ACTIONS(4832),
    [anon_sym___TIMESTAMP__] = ACTIONS(4832),
    [anon_sym___VENDOR__] = ACTIONS(4832),
    [anon_sym___VERSION__] = ACTIONS(4832),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4834),
    [sym_float_literal] = ACTIONS(4834),
    [sym__string] = ACTIONS(4834),
  },
  [1490] = {
    [sym_identifier] = ACTIONS(4836),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4838),
    [anon_sym_RBRACE] = ACTIONS(4838),
    [anon_sym_LBRACE] = ACTIONS(4838),
    [anon_sym_DOT] = ACTIONS(4838),
    [anon_sym_AMP] = ACTIONS(4838),
    [anon_sym_DASH] = ACTIONS(4836),
    [anon_sym_DASH_DASH] = ACTIONS(4838),
    [anon_sym_PLUS] = ACTIONS(4836),
    [anon_sym_PLUS_PLUS] = ACTIONS(4838),
    [anon_sym_BANG] = ACTIONS(4838),
    [anon_sym_LPAREN] = ACTIONS(4838),
    [anon_sym_RPAREN] = ACTIONS(4838),
    [anon_sym_LBRACK] = ACTIONS(4838),
    [anon_sym_SEMI] = ACTIONS(4838),
    [anon_sym_DOLLAR] = ACTIONS(4838),
    [anon_sym_STAR] = ACTIONS(4838),
    [anon_sym_TILDE] = ACTIONS(4838),
    [anon_sym_AT] = ACTIONS(4838),
    [sym_bool] = ACTIONS(4836),
    [sym_byte] = ACTIONS(4836),
    [sym_ubyte] = ACTIONS(4836),
    [sym_char] = ACTIONS(4836),
    [sym_short] = ACTIONS(4836),
    [sym_ushort] = ACTIONS(4836),
    [sym_int] = ACTIONS(4836),
    [sym_uint] = ACTIONS(4836),
    [sym_long] = ACTIONS(4836),
    [sym_ulong] = ACTIONS(4836),
    [sym_cent] = ACTIONS(4836),
    [sym_ucent] = ACTIONS(4836),
    [sym_wchar] = ACTIONS(4836),
    [sym_dchar] = ACTIONS(4836),
    [sym_float] = ACTIONS(4836),
    [sym_double] = ACTIONS(4836),
    [sym_real] = ACTIONS(4836),
    [sym_ifloat] = ACTIONS(4836),
    [sym_idouble] = ACTIONS(4836),
    [sym_ireal] = ACTIONS(4836),
    [sym_cfloat] = ACTIONS(4836),
    [sym_cdouble] = ACTIONS(4836),
    [sym_creal] = ACTIONS(4836),
    [sym_size_t] = ACTIONS(4836),
    [sym_ptrdiff_t] = ACTIONS(4836),
    [sym_string] = ACTIONS(4836),
    [sym_cstring] = ACTIONS(4836),
    [sym_dstring] = ACTIONS(4836),
    [sym_wstring] = ACTIONS(4836),
    [sym_noreturn] = ACTIONS(4836),
    [sym_true] = ACTIONS(4836),
    [sym_false] = ACTIONS(4836),
    [sym_null] = ACTIONS(4836),
    [sym_super] = ACTIONS(4836),
    [sym_this] = ACTIONS(4836),
    [sym_abstract] = ACTIONS(4836),
    [sym_alias] = ACTIONS(4836),
    [sym_align] = ACTIONS(4836),
    [sym_asm] = ACTIONS(4836),
    [sym_assert] = ACTIONS(4836),
    [sym_auto] = ACTIONS(4836),
    [sym_break] = ACTIONS(4836),
    [sym_case] = ACTIONS(4836),
    [sym_cast] = ACTIONS(4836),
    [sym_catch] = ACTIONS(4836),
    [sym_class] = ACTIONS(4836),
    [sym_const] = ACTIONS(4836),
    [sym_continue] = ACTIONS(4836),
    [sym_debug] = ACTIONS(4836),
    [sym_default] = ACTIONS(4836),
    [sym_delegate] = ACTIONS(4836),
    [sym_delete] = ACTIONS(4836),
    [sym_deprecated] = ACTIONS(4836),
    [sym_do] = ACTIONS(4836),
    [sym_else] = ACTIONS(4836),
    [sym_enum] = ACTIONS(4836),
    [sym_export] = ACTIONS(4836),
    [sym_extern] = ACTIONS(4836),
    [sym_final] = ACTIONS(4836),
    [sym_finally] = ACTIONS(4836),
    [sym_for] = ACTIONS(4836),
    [sym_foreach] = ACTIONS(4836),
    [sym_foreach_reverse] = ACTIONS(4836),
    [sym_function] = ACTIONS(4836),
    [sym_goto] = ACTIONS(4836),
    [sym_if] = ACTIONS(4836),
    [sym_immutable] = ACTIONS(4836),
    [sym_import] = ACTIONS(4836),
    [sym_in] = ACTIONS(4836),
    [sym_inout] = ACTIONS(4836),
    [sym_interface] = ACTIONS(4836),
    [sym_invariant] = ACTIONS(4836),
    [sym_is] = ACTIONS(4836),
    [sym_mixin] = ACTIONS(4836),
    [sym_new] = ACTIONS(4836),
    [sym_nothrow] = ACTIONS(4836),
    [sym_out] = ACTIONS(4836),
    [sym_override] = ACTIONS(4836),
    [sym_package] = ACTIONS(4836),
    [sym_pragma] = ACTIONS(4836),
    [sym_private] = ACTIONS(4836),
    [sym_protected] = ACTIONS(4836),
    [sym_public] = ACTIONS(4836),
    [sym_pure] = ACTIONS(4836),
    [sym_ref] = ACTIONS(4836),
    [sym_return] = ACTIONS(4836),
    [sym_scope] = ACTIONS(4836),
    [sym_shared] = ACTIONS(4836),
    [sym_static] = ACTIONS(4836),
    [sym_struct] = ACTIONS(4836),
    [sym_switch] = ACTIONS(4836),
    [sym_synchronized] = ACTIONS(4836),
    [sym_template] = ACTIONS(4836),
    [sym_throw] = ACTIONS(4836),
    [sym_try] = ACTIONS(4836),
    [sym_typeid] = ACTIONS(4836),
    [sym_typeof] = ACTIONS(4836),
    [sym_union] = ACTIONS(4836),
    [sym_unittest] = ACTIONS(4836),
    [sym_version] = ACTIONS(4836),
    [sym_while] = ACTIONS(4836),
    [sym_with] = ACTIONS(4836),
    [sym_gshared] = ACTIONS(4836),
    [sym_traits] = ACTIONS(4836),
    [sym_vector] = ACTIONS(4836),
    [sym_void] = ACTIONS(4836),
    [anon_sym_BQUOTE] = ACTIONS(4838),
    [anon_sym_r_DQUOTE] = ACTIONS(4838),
    [anon_sym_x_DQUOTE] = ACTIONS(4838),
    [anon_sym_DQUOTE] = ACTIONS(4838),
    [anon_sym_i_BQUOTE] = ACTIONS(4838),
    [anon_sym_i_DQUOTE] = ACTIONS(4838),
    [anon_sym_iq_LBRACE] = ACTIONS(4838),
    [aux_sym_char_literal_token1] = ACTIONS(4838),
    [anon_sym_SQUOTE] = ACTIONS(4836),
    [anon_sym___DATE__] = ACTIONS(4836),
    [anon_sym___FILE__] = ACTIONS(4836),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4836),
    [anon_sym___FUNCTION__] = ACTIONS(4836),
    [anon_sym___LINE__] = ACTIONS(4836),
    [anon_sym___MODULE__] = ACTIONS(4836),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4836),
    [anon_sym___TIME__] = ACTIONS(4836),
    [anon_sym___TIMESTAMP__] = ACTIONS(4836),
    [anon_sym___VENDOR__] = ACTIONS(4836),
    [anon_sym___VERSION__] = ACTIONS(4836),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4838),
    [sym_float_literal] = ACTIONS(4838),
    [sym__string] = ACTIONS(4838),
  },
  [1491] = {
    [sym_identifier] = ACTIONS(4840),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4842),
    [anon_sym_RBRACE] = ACTIONS(4842),
    [anon_sym_LBRACE] = ACTIONS(4842),
    [anon_sym_DOT] = ACTIONS(4842),
    [anon_sym_AMP] = ACTIONS(4842),
    [anon_sym_DASH] = ACTIONS(4840),
    [anon_sym_DASH_DASH] = ACTIONS(4842),
    [anon_sym_PLUS] = ACTIONS(4840),
    [anon_sym_PLUS_PLUS] = ACTIONS(4842),
    [anon_sym_BANG] = ACTIONS(4842),
    [anon_sym_LPAREN] = ACTIONS(4842),
    [anon_sym_RPAREN] = ACTIONS(4842),
    [anon_sym_LBRACK] = ACTIONS(4842),
    [anon_sym_SEMI] = ACTIONS(4842),
    [anon_sym_DOLLAR] = ACTIONS(4842),
    [anon_sym_STAR] = ACTIONS(4842),
    [anon_sym_TILDE] = ACTIONS(4842),
    [anon_sym_AT] = ACTIONS(4842),
    [sym_bool] = ACTIONS(4840),
    [sym_byte] = ACTIONS(4840),
    [sym_ubyte] = ACTIONS(4840),
    [sym_char] = ACTIONS(4840),
    [sym_short] = ACTIONS(4840),
    [sym_ushort] = ACTIONS(4840),
    [sym_int] = ACTIONS(4840),
    [sym_uint] = ACTIONS(4840),
    [sym_long] = ACTIONS(4840),
    [sym_ulong] = ACTIONS(4840),
    [sym_cent] = ACTIONS(4840),
    [sym_ucent] = ACTIONS(4840),
    [sym_wchar] = ACTIONS(4840),
    [sym_dchar] = ACTIONS(4840),
    [sym_float] = ACTIONS(4840),
    [sym_double] = ACTIONS(4840),
    [sym_real] = ACTIONS(4840),
    [sym_ifloat] = ACTIONS(4840),
    [sym_idouble] = ACTIONS(4840),
    [sym_ireal] = ACTIONS(4840),
    [sym_cfloat] = ACTIONS(4840),
    [sym_cdouble] = ACTIONS(4840),
    [sym_creal] = ACTIONS(4840),
    [sym_size_t] = ACTIONS(4840),
    [sym_ptrdiff_t] = ACTIONS(4840),
    [sym_string] = ACTIONS(4840),
    [sym_cstring] = ACTIONS(4840),
    [sym_dstring] = ACTIONS(4840),
    [sym_wstring] = ACTIONS(4840),
    [sym_noreturn] = ACTIONS(4840),
    [sym_true] = ACTIONS(4840),
    [sym_false] = ACTIONS(4840),
    [sym_null] = ACTIONS(4840),
    [sym_super] = ACTIONS(4840),
    [sym_this] = ACTIONS(4840),
    [sym_abstract] = ACTIONS(4840),
    [sym_alias] = ACTIONS(4840),
    [sym_align] = ACTIONS(4840),
    [sym_asm] = ACTIONS(4840),
    [sym_assert] = ACTIONS(4840),
    [sym_auto] = ACTIONS(4840),
    [sym_break] = ACTIONS(4840),
    [sym_case] = ACTIONS(4840),
    [sym_cast] = ACTIONS(4840),
    [sym_catch] = ACTIONS(4840),
    [sym_class] = ACTIONS(4840),
    [sym_const] = ACTIONS(4840),
    [sym_continue] = ACTIONS(4840),
    [sym_debug] = ACTIONS(4840),
    [sym_default] = ACTIONS(4840),
    [sym_delegate] = ACTIONS(4840),
    [sym_delete] = ACTIONS(4840),
    [sym_deprecated] = ACTIONS(4840),
    [sym_do] = ACTIONS(4840),
    [sym_else] = ACTIONS(4840),
    [sym_enum] = ACTIONS(4840),
    [sym_export] = ACTIONS(4840),
    [sym_extern] = ACTIONS(4840),
    [sym_final] = ACTIONS(4840),
    [sym_finally] = ACTIONS(4840),
    [sym_for] = ACTIONS(4840),
    [sym_foreach] = ACTIONS(4840),
    [sym_foreach_reverse] = ACTIONS(4840),
    [sym_function] = ACTIONS(4840),
    [sym_goto] = ACTIONS(4840),
    [sym_if] = ACTIONS(4840),
    [sym_immutable] = ACTIONS(4840),
    [sym_import] = ACTIONS(4840),
    [sym_in] = ACTIONS(4840),
    [sym_inout] = ACTIONS(4840),
    [sym_interface] = ACTIONS(4840),
    [sym_invariant] = ACTIONS(4840),
    [sym_is] = ACTIONS(4840),
    [sym_mixin] = ACTIONS(4840),
    [sym_new] = ACTIONS(4840),
    [sym_nothrow] = ACTIONS(4840),
    [sym_out] = ACTIONS(4840),
    [sym_override] = ACTIONS(4840),
    [sym_package] = ACTIONS(4840),
    [sym_pragma] = ACTIONS(4840),
    [sym_private] = ACTIONS(4840),
    [sym_protected] = ACTIONS(4840),
    [sym_public] = ACTIONS(4840),
    [sym_pure] = ACTIONS(4840),
    [sym_ref] = ACTIONS(4840),
    [sym_return] = ACTIONS(4840),
    [sym_scope] = ACTIONS(4840),
    [sym_shared] = ACTIONS(4840),
    [sym_static] = ACTIONS(4840),
    [sym_struct] = ACTIONS(4840),
    [sym_switch] = ACTIONS(4840),
    [sym_synchronized] = ACTIONS(4840),
    [sym_template] = ACTIONS(4840),
    [sym_throw] = ACTIONS(4840),
    [sym_try] = ACTIONS(4840),
    [sym_typeid] = ACTIONS(4840),
    [sym_typeof] = ACTIONS(4840),
    [sym_union] = ACTIONS(4840),
    [sym_unittest] = ACTIONS(4840),
    [sym_version] = ACTIONS(4840),
    [sym_while] = ACTIONS(4840),
    [sym_with] = ACTIONS(4840),
    [sym_gshared] = ACTIONS(4840),
    [sym_traits] = ACTIONS(4840),
    [sym_vector] = ACTIONS(4840),
    [sym_void] = ACTIONS(4840),
    [anon_sym_BQUOTE] = ACTIONS(4842),
    [anon_sym_r_DQUOTE] = ACTIONS(4842),
    [anon_sym_x_DQUOTE] = ACTIONS(4842),
    [anon_sym_DQUOTE] = ACTIONS(4842),
    [anon_sym_i_BQUOTE] = ACTIONS(4842),
    [anon_sym_i_DQUOTE] = ACTIONS(4842),
    [anon_sym_iq_LBRACE] = ACTIONS(4842),
    [aux_sym_char_literal_token1] = ACTIONS(4842),
    [anon_sym_SQUOTE] = ACTIONS(4840),
    [anon_sym___DATE__] = ACTIONS(4840),
    [anon_sym___FILE__] = ACTIONS(4840),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4840),
    [anon_sym___FUNCTION__] = ACTIONS(4840),
    [anon_sym___LINE__] = ACTIONS(4840),
    [anon_sym___MODULE__] = ACTIONS(4840),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4840),
    [anon_sym___TIME__] = ACTIONS(4840),
    [anon_sym___TIMESTAMP__] = ACTIONS(4840),
    [anon_sym___VENDOR__] = ACTIONS(4840),
    [anon_sym___VERSION__] = ACTIONS(4840),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4842),
    [sym_float_literal] = ACTIONS(4842),
    [sym__string] = ACTIONS(4842),
  },
  [1492] = {
    [sym_identifier] = ACTIONS(4844),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4846),
    [anon_sym_RBRACE] = ACTIONS(4846),
    [anon_sym_LBRACE] = ACTIONS(4846),
    [anon_sym_DOT] = ACTIONS(4846),
    [anon_sym_AMP] = ACTIONS(4846),
    [anon_sym_DASH] = ACTIONS(4844),
    [anon_sym_DASH_DASH] = ACTIONS(4846),
    [anon_sym_PLUS] = ACTIONS(4844),
    [anon_sym_PLUS_PLUS] = ACTIONS(4846),
    [anon_sym_BANG] = ACTIONS(4846),
    [anon_sym_LPAREN] = ACTIONS(4846),
    [anon_sym_RPAREN] = ACTIONS(4846),
    [anon_sym_LBRACK] = ACTIONS(4846),
    [anon_sym_SEMI] = ACTIONS(4846),
    [anon_sym_DOLLAR] = ACTIONS(4846),
    [anon_sym_STAR] = ACTIONS(4846),
    [anon_sym_TILDE] = ACTIONS(4846),
    [anon_sym_AT] = ACTIONS(4846),
    [sym_bool] = ACTIONS(4844),
    [sym_byte] = ACTIONS(4844),
    [sym_ubyte] = ACTIONS(4844),
    [sym_char] = ACTIONS(4844),
    [sym_short] = ACTIONS(4844),
    [sym_ushort] = ACTIONS(4844),
    [sym_int] = ACTIONS(4844),
    [sym_uint] = ACTIONS(4844),
    [sym_long] = ACTIONS(4844),
    [sym_ulong] = ACTIONS(4844),
    [sym_cent] = ACTIONS(4844),
    [sym_ucent] = ACTIONS(4844),
    [sym_wchar] = ACTIONS(4844),
    [sym_dchar] = ACTIONS(4844),
    [sym_float] = ACTIONS(4844),
    [sym_double] = ACTIONS(4844),
    [sym_real] = ACTIONS(4844),
    [sym_ifloat] = ACTIONS(4844),
    [sym_idouble] = ACTIONS(4844),
    [sym_ireal] = ACTIONS(4844),
    [sym_cfloat] = ACTIONS(4844),
    [sym_cdouble] = ACTIONS(4844),
    [sym_creal] = ACTIONS(4844),
    [sym_size_t] = ACTIONS(4844),
    [sym_ptrdiff_t] = ACTIONS(4844),
    [sym_string] = ACTIONS(4844),
    [sym_cstring] = ACTIONS(4844),
    [sym_dstring] = ACTIONS(4844),
    [sym_wstring] = ACTIONS(4844),
    [sym_noreturn] = ACTIONS(4844),
    [sym_true] = ACTIONS(4844),
    [sym_false] = ACTIONS(4844),
    [sym_null] = ACTIONS(4844),
    [sym_super] = ACTIONS(4844),
    [sym_this] = ACTIONS(4844),
    [sym_abstract] = ACTIONS(4844),
    [sym_alias] = ACTIONS(4844),
    [sym_align] = ACTIONS(4844),
    [sym_asm] = ACTIONS(4844),
    [sym_assert] = ACTIONS(4844),
    [sym_auto] = ACTIONS(4844),
    [sym_break] = ACTIONS(4844),
    [sym_case] = ACTIONS(4844),
    [sym_cast] = ACTIONS(4844),
    [sym_catch] = ACTIONS(4844),
    [sym_class] = ACTIONS(4844),
    [sym_const] = ACTIONS(4844),
    [sym_continue] = ACTIONS(4844),
    [sym_debug] = ACTIONS(4844),
    [sym_default] = ACTIONS(4844),
    [sym_delegate] = ACTIONS(4844),
    [sym_delete] = ACTIONS(4844),
    [sym_deprecated] = ACTIONS(4844),
    [sym_do] = ACTIONS(4844),
    [sym_else] = ACTIONS(4844),
    [sym_enum] = ACTIONS(4844),
    [sym_export] = ACTIONS(4844),
    [sym_extern] = ACTIONS(4844),
    [sym_final] = ACTIONS(4844),
    [sym_finally] = ACTIONS(4844),
    [sym_for] = ACTIONS(4844),
    [sym_foreach] = ACTIONS(4844),
    [sym_foreach_reverse] = ACTIONS(4844),
    [sym_function] = ACTIONS(4844),
    [sym_goto] = ACTIONS(4844),
    [sym_if] = ACTIONS(4844),
    [sym_immutable] = ACTIONS(4844),
    [sym_import] = ACTIONS(4844),
    [sym_in] = ACTIONS(4844),
    [sym_inout] = ACTIONS(4844),
    [sym_interface] = ACTIONS(4844),
    [sym_invariant] = ACTIONS(4844),
    [sym_is] = ACTIONS(4844),
    [sym_mixin] = ACTIONS(4844),
    [sym_new] = ACTIONS(4844),
    [sym_nothrow] = ACTIONS(4844),
    [sym_out] = ACTIONS(4844),
    [sym_override] = ACTIONS(4844),
    [sym_package] = ACTIONS(4844),
    [sym_pragma] = ACTIONS(4844),
    [sym_private] = ACTIONS(4844),
    [sym_protected] = ACTIONS(4844),
    [sym_public] = ACTIONS(4844),
    [sym_pure] = ACTIONS(4844),
    [sym_ref] = ACTIONS(4844),
    [sym_return] = ACTIONS(4844),
    [sym_scope] = ACTIONS(4844),
    [sym_shared] = ACTIONS(4844),
    [sym_static] = ACTIONS(4844),
    [sym_struct] = ACTIONS(4844),
    [sym_switch] = ACTIONS(4844),
    [sym_synchronized] = ACTIONS(4844),
    [sym_template] = ACTIONS(4844),
    [sym_throw] = ACTIONS(4844),
    [sym_try] = ACTIONS(4844),
    [sym_typeid] = ACTIONS(4844),
    [sym_typeof] = ACTIONS(4844),
    [sym_union] = ACTIONS(4844),
    [sym_unittest] = ACTIONS(4844),
    [sym_version] = ACTIONS(4844),
    [sym_while] = ACTIONS(4844),
    [sym_with] = ACTIONS(4844),
    [sym_gshared] = ACTIONS(4844),
    [sym_traits] = ACTIONS(4844),
    [sym_vector] = ACTIONS(4844),
    [sym_void] = ACTIONS(4844),
    [anon_sym_BQUOTE] = ACTIONS(4846),
    [anon_sym_r_DQUOTE] = ACTIONS(4846),
    [anon_sym_x_DQUOTE] = ACTIONS(4846),
    [anon_sym_DQUOTE] = ACTIONS(4846),
    [anon_sym_i_BQUOTE] = ACTIONS(4846),
    [anon_sym_i_DQUOTE] = ACTIONS(4846),
    [anon_sym_iq_LBRACE] = ACTIONS(4846),
    [aux_sym_char_literal_token1] = ACTIONS(4846),
    [anon_sym_SQUOTE] = ACTIONS(4844),
    [anon_sym___DATE__] = ACTIONS(4844),
    [anon_sym___FILE__] = ACTIONS(4844),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4844),
    [anon_sym___FUNCTION__] = ACTIONS(4844),
    [anon_sym___LINE__] = ACTIONS(4844),
    [anon_sym___MODULE__] = ACTIONS(4844),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4844),
    [anon_sym___TIME__] = ACTIONS(4844),
    [anon_sym___TIMESTAMP__] = ACTIONS(4844),
    [anon_sym___VENDOR__] = ACTIONS(4844),
    [anon_sym___VERSION__] = ACTIONS(4844),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4846),
    [sym_float_literal] = ACTIONS(4846),
    [sym__string] = ACTIONS(4846),
  },
  [1493] = {
    [sym_identifier] = ACTIONS(4848),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4850),
    [anon_sym_RBRACE] = ACTIONS(4850),
    [anon_sym_LBRACE] = ACTIONS(4850),
    [anon_sym_DOT] = ACTIONS(4850),
    [anon_sym_AMP] = ACTIONS(4850),
    [anon_sym_DASH] = ACTIONS(4848),
    [anon_sym_DASH_DASH] = ACTIONS(4850),
    [anon_sym_PLUS] = ACTIONS(4848),
    [anon_sym_PLUS_PLUS] = ACTIONS(4850),
    [anon_sym_BANG] = ACTIONS(4850),
    [anon_sym_LPAREN] = ACTIONS(4850),
    [anon_sym_RPAREN] = ACTIONS(4850),
    [anon_sym_LBRACK] = ACTIONS(4850),
    [anon_sym_SEMI] = ACTIONS(4850),
    [anon_sym_DOLLAR] = ACTIONS(4850),
    [anon_sym_STAR] = ACTIONS(4850),
    [anon_sym_TILDE] = ACTIONS(4850),
    [anon_sym_AT] = ACTIONS(4850),
    [sym_bool] = ACTIONS(4848),
    [sym_byte] = ACTIONS(4848),
    [sym_ubyte] = ACTIONS(4848),
    [sym_char] = ACTIONS(4848),
    [sym_short] = ACTIONS(4848),
    [sym_ushort] = ACTIONS(4848),
    [sym_int] = ACTIONS(4848),
    [sym_uint] = ACTIONS(4848),
    [sym_long] = ACTIONS(4848),
    [sym_ulong] = ACTIONS(4848),
    [sym_cent] = ACTIONS(4848),
    [sym_ucent] = ACTIONS(4848),
    [sym_wchar] = ACTIONS(4848),
    [sym_dchar] = ACTIONS(4848),
    [sym_float] = ACTIONS(4848),
    [sym_double] = ACTIONS(4848),
    [sym_real] = ACTIONS(4848),
    [sym_ifloat] = ACTIONS(4848),
    [sym_idouble] = ACTIONS(4848),
    [sym_ireal] = ACTIONS(4848),
    [sym_cfloat] = ACTIONS(4848),
    [sym_cdouble] = ACTIONS(4848),
    [sym_creal] = ACTIONS(4848),
    [sym_size_t] = ACTIONS(4848),
    [sym_ptrdiff_t] = ACTIONS(4848),
    [sym_string] = ACTIONS(4848),
    [sym_cstring] = ACTIONS(4848),
    [sym_dstring] = ACTIONS(4848),
    [sym_wstring] = ACTIONS(4848),
    [sym_noreturn] = ACTIONS(4848),
    [sym_true] = ACTIONS(4848),
    [sym_false] = ACTIONS(4848),
    [sym_null] = ACTIONS(4848),
    [sym_super] = ACTIONS(4848),
    [sym_this] = ACTIONS(4848),
    [sym_abstract] = ACTIONS(4848),
    [sym_alias] = ACTIONS(4848),
    [sym_align] = ACTIONS(4848),
    [sym_asm] = ACTIONS(4848),
    [sym_assert] = ACTIONS(4848),
    [sym_auto] = ACTIONS(4848),
    [sym_break] = ACTIONS(4848),
    [sym_case] = ACTIONS(4848),
    [sym_cast] = ACTIONS(4848),
    [sym_catch] = ACTIONS(4848),
    [sym_class] = ACTIONS(4848),
    [sym_const] = ACTIONS(4848),
    [sym_continue] = ACTIONS(4848),
    [sym_debug] = ACTIONS(4848),
    [sym_default] = ACTIONS(4848),
    [sym_delegate] = ACTIONS(4848),
    [sym_delete] = ACTIONS(4848),
    [sym_deprecated] = ACTIONS(4848),
    [sym_do] = ACTIONS(4848),
    [sym_else] = ACTIONS(4848),
    [sym_enum] = ACTIONS(4848),
    [sym_export] = ACTIONS(4848),
    [sym_extern] = ACTIONS(4848),
    [sym_final] = ACTIONS(4848),
    [sym_finally] = ACTIONS(4848),
    [sym_for] = ACTIONS(4848),
    [sym_foreach] = ACTIONS(4848),
    [sym_foreach_reverse] = ACTIONS(4848),
    [sym_function] = ACTIONS(4848),
    [sym_goto] = ACTIONS(4848),
    [sym_if] = ACTIONS(4848),
    [sym_immutable] = ACTIONS(4848),
    [sym_import] = ACTIONS(4848),
    [sym_in] = ACTIONS(4848),
    [sym_inout] = ACTIONS(4848),
    [sym_interface] = ACTIONS(4848),
    [sym_invariant] = ACTIONS(4848),
    [sym_is] = ACTIONS(4848),
    [sym_mixin] = ACTIONS(4848),
    [sym_new] = ACTIONS(4848),
    [sym_nothrow] = ACTIONS(4848),
    [sym_out] = ACTIONS(4848),
    [sym_override] = ACTIONS(4848),
    [sym_package] = ACTIONS(4848),
    [sym_pragma] = ACTIONS(4848),
    [sym_private] = ACTIONS(4848),
    [sym_protected] = ACTIONS(4848),
    [sym_public] = ACTIONS(4848),
    [sym_pure] = ACTIONS(4848),
    [sym_ref] = ACTIONS(4848),
    [sym_return] = ACTIONS(4848),
    [sym_scope] = ACTIONS(4848),
    [sym_shared] = ACTIONS(4848),
    [sym_static] = ACTIONS(4848),
    [sym_struct] = ACTIONS(4848),
    [sym_switch] = ACTIONS(4848),
    [sym_synchronized] = ACTIONS(4848),
    [sym_template] = ACTIONS(4848),
    [sym_throw] = ACTIONS(4848),
    [sym_try] = ACTIONS(4848),
    [sym_typeid] = ACTIONS(4848),
    [sym_typeof] = ACTIONS(4848),
    [sym_union] = ACTIONS(4848),
    [sym_unittest] = ACTIONS(4848),
    [sym_version] = ACTIONS(4848),
    [sym_while] = ACTIONS(4848),
    [sym_with] = ACTIONS(4848),
    [sym_gshared] = ACTIONS(4848),
    [sym_traits] = ACTIONS(4848),
    [sym_vector] = ACTIONS(4848),
    [sym_void] = ACTIONS(4848),
    [anon_sym_BQUOTE] = ACTIONS(4850),
    [anon_sym_r_DQUOTE] = ACTIONS(4850),
    [anon_sym_x_DQUOTE] = ACTIONS(4850),
    [anon_sym_DQUOTE] = ACTIONS(4850),
    [anon_sym_i_BQUOTE] = ACTIONS(4850),
    [anon_sym_i_DQUOTE] = ACTIONS(4850),
    [anon_sym_iq_LBRACE] = ACTIONS(4850),
    [aux_sym_char_literal_token1] = ACTIONS(4850),
    [anon_sym_SQUOTE] = ACTIONS(4848),
    [anon_sym___DATE__] = ACTIONS(4848),
    [anon_sym___FILE__] = ACTIONS(4848),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4848),
    [anon_sym___FUNCTION__] = ACTIONS(4848),
    [anon_sym___LINE__] = ACTIONS(4848),
    [anon_sym___MODULE__] = ACTIONS(4848),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4848),
    [anon_sym___TIME__] = ACTIONS(4848),
    [anon_sym___TIMESTAMP__] = ACTIONS(4848),
    [anon_sym___VENDOR__] = ACTIONS(4848),
    [anon_sym___VERSION__] = ACTIONS(4848),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4850),
    [sym_float_literal] = ACTIONS(4850),
    [sym__string] = ACTIONS(4850),
  },
  [1494] = {
    [sym_identifier] = ACTIONS(4852),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4854),
    [anon_sym_RBRACE] = ACTIONS(4854),
    [anon_sym_LBRACE] = ACTIONS(4854),
    [anon_sym_DOT] = ACTIONS(4854),
    [anon_sym_AMP] = ACTIONS(4854),
    [anon_sym_DASH] = ACTIONS(4852),
    [anon_sym_DASH_DASH] = ACTIONS(4854),
    [anon_sym_PLUS] = ACTIONS(4852),
    [anon_sym_PLUS_PLUS] = ACTIONS(4854),
    [anon_sym_BANG] = ACTIONS(4854),
    [anon_sym_LPAREN] = ACTIONS(4854),
    [anon_sym_RPAREN] = ACTIONS(4854),
    [anon_sym_LBRACK] = ACTIONS(4854),
    [anon_sym_SEMI] = ACTIONS(4854),
    [anon_sym_DOLLAR] = ACTIONS(4854),
    [anon_sym_STAR] = ACTIONS(4854),
    [anon_sym_TILDE] = ACTIONS(4854),
    [anon_sym_AT] = ACTIONS(4854),
    [sym_bool] = ACTIONS(4852),
    [sym_byte] = ACTIONS(4852),
    [sym_ubyte] = ACTIONS(4852),
    [sym_char] = ACTIONS(4852),
    [sym_short] = ACTIONS(4852),
    [sym_ushort] = ACTIONS(4852),
    [sym_int] = ACTIONS(4852),
    [sym_uint] = ACTIONS(4852),
    [sym_long] = ACTIONS(4852),
    [sym_ulong] = ACTIONS(4852),
    [sym_cent] = ACTIONS(4852),
    [sym_ucent] = ACTIONS(4852),
    [sym_wchar] = ACTIONS(4852),
    [sym_dchar] = ACTIONS(4852),
    [sym_float] = ACTIONS(4852),
    [sym_double] = ACTIONS(4852),
    [sym_real] = ACTIONS(4852),
    [sym_ifloat] = ACTIONS(4852),
    [sym_idouble] = ACTIONS(4852),
    [sym_ireal] = ACTIONS(4852),
    [sym_cfloat] = ACTIONS(4852),
    [sym_cdouble] = ACTIONS(4852),
    [sym_creal] = ACTIONS(4852),
    [sym_size_t] = ACTIONS(4852),
    [sym_ptrdiff_t] = ACTIONS(4852),
    [sym_string] = ACTIONS(4852),
    [sym_cstring] = ACTIONS(4852),
    [sym_dstring] = ACTIONS(4852),
    [sym_wstring] = ACTIONS(4852),
    [sym_noreturn] = ACTIONS(4852),
    [sym_true] = ACTIONS(4852),
    [sym_false] = ACTIONS(4852),
    [sym_null] = ACTIONS(4852),
    [sym_super] = ACTIONS(4852),
    [sym_this] = ACTIONS(4852),
    [sym_abstract] = ACTIONS(4852),
    [sym_alias] = ACTIONS(4852),
    [sym_align] = ACTIONS(4852),
    [sym_asm] = ACTIONS(4852),
    [sym_assert] = ACTIONS(4852),
    [sym_auto] = ACTIONS(4852),
    [sym_break] = ACTIONS(4852),
    [sym_case] = ACTIONS(4852),
    [sym_cast] = ACTIONS(4852),
    [sym_catch] = ACTIONS(4852),
    [sym_class] = ACTIONS(4852),
    [sym_const] = ACTIONS(4852),
    [sym_continue] = ACTIONS(4852),
    [sym_debug] = ACTIONS(4852),
    [sym_default] = ACTIONS(4852),
    [sym_delegate] = ACTIONS(4852),
    [sym_delete] = ACTIONS(4852),
    [sym_deprecated] = ACTIONS(4852),
    [sym_do] = ACTIONS(4852),
    [sym_else] = ACTIONS(4852),
    [sym_enum] = ACTIONS(4852),
    [sym_export] = ACTIONS(4852),
    [sym_extern] = ACTIONS(4852),
    [sym_final] = ACTIONS(4852),
    [sym_finally] = ACTIONS(4852),
    [sym_for] = ACTIONS(4852),
    [sym_foreach] = ACTIONS(4852),
    [sym_foreach_reverse] = ACTIONS(4852),
    [sym_function] = ACTIONS(4852),
    [sym_goto] = ACTIONS(4852),
    [sym_if] = ACTIONS(4852),
    [sym_immutable] = ACTIONS(4852),
    [sym_import] = ACTIONS(4852),
    [sym_in] = ACTIONS(4852),
    [sym_inout] = ACTIONS(4852),
    [sym_interface] = ACTIONS(4852),
    [sym_invariant] = ACTIONS(4852),
    [sym_is] = ACTIONS(4852),
    [sym_mixin] = ACTIONS(4852),
    [sym_new] = ACTIONS(4852),
    [sym_nothrow] = ACTIONS(4852),
    [sym_out] = ACTIONS(4852),
    [sym_override] = ACTIONS(4852),
    [sym_package] = ACTIONS(4852),
    [sym_pragma] = ACTIONS(4852),
    [sym_private] = ACTIONS(4852),
    [sym_protected] = ACTIONS(4852),
    [sym_public] = ACTIONS(4852),
    [sym_pure] = ACTIONS(4852),
    [sym_ref] = ACTIONS(4852),
    [sym_return] = ACTIONS(4852),
    [sym_scope] = ACTIONS(4852),
    [sym_shared] = ACTIONS(4852),
    [sym_static] = ACTIONS(4852),
    [sym_struct] = ACTIONS(4852),
    [sym_switch] = ACTIONS(4852),
    [sym_synchronized] = ACTIONS(4852),
    [sym_template] = ACTIONS(4852),
    [sym_throw] = ACTIONS(4852),
    [sym_try] = ACTIONS(4852),
    [sym_typeid] = ACTIONS(4852),
    [sym_typeof] = ACTIONS(4852),
    [sym_union] = ACTIONS(4852),
    [sym_unittest] = ACTIONS(4852),
    [sym_version] = ACTIONS(4852),
    [sym_while] = ACTIONS(4852),
    [sym_with] = ACTIONS(4852),
    [sym_gshared] = ACTIONS(4852),
    [sym_traits] = ACTIONS(4852),
    [sym_vector] = ACTIONS(4852),
    [sym_void] = ACTIONS(4852),
    [anon_sym_BQUOTE] = ACTIONS(4854),
    [anon_sym_r_DQUOTE] = ACTIONS(4854),
    [anon_sym_x_DQUOTE] = ACTIONS(4854),
    [anon_sym_DQUOTE] = ACTIONS(4854),
    [anon_sym_i_BQUOTE] = ACTIONS(4854),
    [anon_sym_i_DQUOTE] = ACTIONS(4854),
    [anon_sym_iq_LBRACE] = ACTIONS(4854),
    [aux_sym_char_literal_token1] = ACTIONS(4854),
    [anon_sym_SQUOTE] = ACTIONS(4852),
    [anon_sym___DATE__] = ACTIONS(4852),
    [anon_sym___FILE__] = ACTIONS(4852),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4852),
    [anon_sym___FUNCTION__] = ACTIONS(4852),
    [anon_sym___LINE__] = ACTIONS(4852),
    [anon_sym___MODULE__] = ACTIONS(4852),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4852),
    [anon_sym___TIME__] = ACTIONS(4852),
    [anon_sym___TIMESTAMP__] = ACTIONS(4852),
    [anon_sym___VENDOR__] = ACTIONS(4852),
    [anon_sym___VERSION__] = ACTIONS(4852),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4854),
    [sym_float_literal] = ACTIONS(4854),
    [sym__string] = ACTIONS(4854),
  },
  [1495] = {
    [sym_identifier] = ACTIONS(4856),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4858),
    [anon_sym_RBRACE] = ACTIONS(4858),
    [anon_sym_LBRACE] = ACTIONS(4858),
    [anon_sym_DOT] = ACTIONS(4858),
    [anon_sym_AMP] = ACTIONS(4858),
    [anon_sym_DASH] = ACTIONS(4856),
    [anon_sym_DASH_DASH] = ACTIONS(4858),
    [anon_sym_PLUS] = ACTIONS(4856),
    [anon_sym_PLUS_PLUS] = ACTIONS(4858),
    [anon_sym_BANG] = ACTIONS(4858),
    [anon_sym_LPAREN] = ACTIONS(4858),
    [anon_sym_RPAREN] = ACTIONS(4858),
    [anon_sym_LBRACK] = ACTIONS(4858),
    [anon_sym_SEMI] = ACTIONS(4858),
    [anon_sym_DOLLAR] = ACTIONS(4858),
    [anon_sym_STAR] = ACTIONS(4858),
    [anon_sym_TILDE] = ACTIONS(4858),
    [anon_sym_AT] = ACTIONS(4858),
    [sym_bool] = ACTIONS(4856),
    [sym_byte] = ACTIONS(4856),
    [sym_ubyte] = ACTIONS(4856),
    [sym_char] = ACTIONS(4856),
    [sym_short] = ACTIONS(4856),
    [sym_ushort] = ACTIONS(4856),
    [sym_int] = ACTIONS(4856),
    [sym_uint] = ACTIONS(4856),
    [sym_long] = ACTIONS(4856),
    [sym_ulong] = ACTIONS(4856),
    [sym_cent] = ACTIONS(4856),
    [sym_ucent] = ACTIONS(4856),
    [sym_wchar] = ACTIONS(4856),
    [sym_dchar] = ACTIONS(4856),
    [sym_float] = ACTIONS(4856),
    [sym_double] = ACTIONS(4856),
    [sym_real] = ACTIONS(4856),
    [sym_ifloat] = ACTIONS(4856),
    [sym_idouble] = ACTIONS(4856),
    [sym_ireal] = ACTIONS(4856),
    [sym_cfloat] = ACTIONS(4856),
    [sym_cdouble] = ACTIONS(4856),
    [sym_creal] = ACTIONS(4856),
    [sym_size_t] = ACTIONS(4856),
    [sym_ptrdiff_t] = ACTIONS(4856),
    [sym_string] = ACTIONS(4856),
    [sym_cstring] = ACTIONS(4856),
    [sym_dstring] = ACTIONS(4856),
    [sym_wstring] = ACTIONS(4856),
    [sym_noreturn] = ACTIONS(4856),
    [sym_true] = ACTIONS(4856),
    [sym_false] = ACTIONS(4856),
    [sym_null] = ACTIONS(4856),
    [sym_super] = ACTIONS(4856),
    [sym_this] = ACTIONS(4856),
    [sym_abstract] = ACTIONS(4856),
    [sym_alias] = ACTIONS(4856),
    [sym_align] = ACTIONS(4856),
    [sym_asm] = ACTIONS(4856),
    [sym_assert] = ACTIONS(4856),
    [sym_auto] = ACTIONS(4856),
    [sym_break] = ACTIONS(4856),
    [sym_case] = ACTIONS(4856),
    [sym_cast] = ACTIONS(4856),
    [sym_catch] = ACTIONS(4856),
    [sym_class] = ACTIONS(4856),
    [sym_const] = ACTIONS(4856),
    [sym_continue] = ACTIONS(4856),
    [sym_debug] = ACTIONS(4856),
    [sym_default] = ACTIONS(4856),
    [sym_delegate] = ACTIONS(4856),
    [sym_delete] = ACTIONS(4856),
    [sym_deprecated] = ACTIONS(4856),
    [sym_do] = ACTIONS(4856),
    [sym_else] = ACTIONS(4856),
    [sym_enum] = ACTIONS(4856),
    [sym_export] = ACTIONS(4856),
    [sym_extern] = ACTIONS(4856),
    [sym_final] = ACTIONS(4856),
    [sym_finally] = ACTIONS(4856),
    [sym_for] = ACTIONS(4856),
    [sym_foreach] = ACTIONS(4856),
    [sym_foreach_reverse] = ACTIONS(4856),
    [sym_function] = ACTIONS(4856),
    [sym_goto] = ACTIONS(4856),
    [sym_if] = ACTIONS(4856),
    [sym_immutable] = ACTIONS(4856),
    [sym_import] = ACTIONS(4856),
    [sym_in] = ACTIONS(4856),
    [sym_inout] = ACTIONS(4856),
    [sym_interface] = ACTIONS(4856),
    [sym_invariant] = ACTIONS(4856),
    [sym_is] = ACTIONS(4856),
    [sym_mixin] = ACTIONS(4856),
    [sym_new] = ACTIONS(4856),
    [sym_nothrow] = ACTIONS(4856),
    [sym_out] = ACTIONS(4856),
    [sym_override] = ACTIONS(4856),
    [sym_package] = ACTIONS(4856),
    [sym_pragma] = ACTIONS(4856),
    [sym_private] = ACTIONS(4856),
    [sym_protected] = ACTIONS(4856),
    [sym_public] = ACTIONS(4856),
    [sym_pure] = ACTIONS(4856),
    [sym_ref] = ACTIONS(4856),
    [sym_return] = ACTIONS(4856),
    [sym_scope] = ACTIONS(4856),
    [sym_shared] = ACTIONS(4856),
    [sym_static] = ACTIONS(4856),
    [sym_struct] = ACTIONS(4856),
    [sym_switch] = ACTIONS(4856),
    [sym_synchronized] = ACTIONS(4856),
    [sym_template] = ACTIONS(4856),
    [sym_throw] = ACTIONS(4856),
    [sym_try] = ACTIONS(4856),
    [sym_typeid] = ACTIONS(4856),
    [sym_typeof] = ACTIONS(4856),
    [sym_union] = ACTIONS(4856),
    [sym_unittest] = ACTIONS(4856),
    [sym_version] = ACTIONS(4856),
    [sym_while] = ACTIONS(4856),
    [sym_with] = ACTIONS(4856),
    [sym_gshared] = ACTIONS(4856),
    [sym_traits] = ACTIONS(4856),
    [sym_vector] = ACTIONS(4856),
    [sym_void] = ACTIONS(4856),
    [anon_sym_BQUOTE] = ACTIONS(4858),
    [anon_sym_r_DQUOTE] = ACTIONS(4858),
    [anon_sym_x_DQUOTE] = ACTIONS(4858),
    [anon_sym_DQUOTE] = ACTIONS(4858),
    [anon_sym_i_BQUOTE] = ACTIONS(4858),
    [anon_sym_i_DQUOTE] = ACTIONS(4858),
    [anon_sym_iq_LBRACE] = ACTIONS(4858),
    [aux_sym_char_literal_token1] = ACTIONS(4858),
    [anon_sym_SQUOTE] = ACTIONS(4856),
    [anon_sym___DATE__] = ACTIONS(4856),
    [anon_sym___FILE__] = ACTIONS(4856),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4856),
    [anon_sym___FUNCTION__] = ACTIONS(4856),
    [anon_sym___LINE__] = ACTIONS(4856),
    [anon_sym___MODULE__] = ACTIONS(4856),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4856),
    [anon_sym___TIME__] = ACTIONS(4856),
    [anon_sym___TIMESTAMP__] = ACTIONS(4856),
    [anon_sym___VENDOR__] = ACTIONS(4856),
    [anon_sym___VERSION__] = ACTIONS(4856),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4858),
    [sym_float_literal] = ACTIONS(4858),
    [sym__string] = ACTIONS(4858),
  },
  [1496] = {
    [sym_identifier] = ACTIONS(4860),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4862),
    [anon_sym_RBRACE] = ACTIONS(4862),
    [anon_sym_LBRACE] = ACTIONS(4862),
    [anon_sym_DOT] = ACTIONS(4862),
    [anon_sym_AMP] = ACTIONS(4862),
    [anon_sym_DASH] = ACTIONS(4860),
    [anon_sym_DASH_DASH] = ACTIONS(4862),
    [anon_sym_PLUS] = ACTIONS(4860),
    [anon_sym_PLUS_PLUS] = ACTIONS(4862),
    [anon_sym_BANG] = ACTIONS(4862),
    [anon_sym_LPAREN] = ACTIONS(4862),
    [anon_sym_RPAREN] = ACTIONS(4862),
    [anon_sym_LBRACK] = ACTIONS(4862),
    [anon_sym_SEMI] = ACTIONS(4862),
    [anon_sym_DOLLAR] = ACTIONS(4862),
    [anon_sym_STAR] = ACTIONS(4862),
    [anon_sym_TILDE] = ACTIONS(4862),
    [anon_sym_AT] = ACTIONS(4862),
    [sym_bool] = ACTIONS(4860),
    [sym_byte] = ACTIONS(4860),
    [sym_ubyte] = ACTIONS(4860),
    [sym_char] = ACTIONS(4860),
    [sym_short] = ACTIONS(4860),
    [sym_ushort] = ACTIONS(4860),
    [sym_int] = ACTIONS(4860),
    [sym_uint] = ACTIONS(4860),
    [sym_long] = ACTIONS(4860),
    [sym_ulong] = ACTIONS(4860),
    [sym_cent] = ACTIONS(4860),
    [sym_ucent] = ACTIONS(4860),
    [sym_wchar] = ACTIONS(4860),
    [sym_dchar] = ACTIONS(4860),
    [sym_float] = ACTIONS(4860),
    [sym_double] = ACTIONS(4860),
    [sym_real] = ACTIONS(4860),
    [sym_ifloat] = ACTIONS(4860),
    [sym_idouble] = ACTIONS(4860),
    [sym_ireal] = ACTIONS(4860),
    [sym_cfloat] = ACTIONS(4860),
    [sym_cdouble] = ACTIONS(4860),
    [sym_creal] = ACTIONS(4860),
    [sym_size_t] = ACTIONS(4860),
    [sym_ptrdiff_t] = ACTIONS(4860),
    [sym_string] = ACTIONS(4860),
    [sym_cstring] = ACTIONS(4860),
    [sym_dstring] = ACTIONS(4860),
    [sym_wstring] = ACTIONS(4860),
    [sym_noreturn] = ACTIONS(4860),
    [sym_true] = ACTIONS(4860),
    [sym_false] = ACTIONS(4860),
    [sym_null] = ACTIONS(4860),
    [sym_super] = ACTIONS(4860),
    [sym_this] = ACTIONS(4860),
    [sym_abstract] = ACTIONS(4860),
    [sym_alias] = ACTIONS(4860),
    [sym_align] = ACTIONS(4860),
    [sym_asm] = ACTIONS(4860),
    [sym_assert] = ACTIONS(4860),
    [sym_auto] = ACTIONS(4860),
    [sym_break] = ACTIONS(4860),
    [sym_case] = ACTIONS(4860),
    [sym_cast] = ACTIONS(4860),
    [sym_catch] = ACTIONS(4860),
    [sym_class] = ACTIONS(4860),
    [sym_const] = ACTIONS(4860),
    [sym_continue] = ACTIONS(4860),
    [sym_debug] = ACTIONS(4860),
    [sym_default] = ACTIONS(4860),
    [sym_delegate] = ACTIONS(4860),
    [sym_delete] = ACTIONS(4860),
    [sym_deprecated] = ACTIONS(4860),
    [sym_do] = ACTIONS(4860),
    [sym_else] = ACTIONS(4860),
    [sym_enum] = ACTIONS(4860),
    [sym_export] = ACTIONS(4860),
    [sym_extern] = ACTIONS(4860),
    [sym_final] = ACTIONS(4860),
    [sym_finally] = ACTIONS(4860),
    [sym_for] = ACTIONS(4860),
    [sym_foreach] = ACTIONS(4860),
    [sym_foreach_reverse] = ACTIONS(4860),
    [sym_function] = ACTIONS(4860),
    [sym_goto] = ACTIONS(4860),
    [sym_if] = ACTIONS(4860),
    [sym_immutable] = ACTIONS(4860),
    [sym_import] = ACTIONS(4860),
    [sym_in] = ACTIONS(4860),
    [sym_inout] = ACTIONS(4860),
    [sym_interface] = ACTIONS(4860),
    [sym_invariant] = ACTIONS(4860),
    [sym_is] = ACTIONS(4860),
    [sym_mixin] = ACTIONS(4860),
    [sym_new] = ACTIONS(4860),
    [sym_nothrow] = ACTIONS(4860),
    [sym_out] = ACTIONS(4860),
    [sym_override] = ACTIONS(4860),
    [sym_package] = ACTIONS(4860),
    [sym_pragma] = ACTIONS(4860),
    [sym_private] = ACTIONS(4860),
    [sym_protected] = ACTIONS(4860),
    [sym_public] = ACTIONS(4860),
    [sym_pure] = ACTIONS(4860),
    [sym_ref] = ACTIONS(4860),
    [sym_return] = ACTIONS(4860),
    [sym_scope] = ACTIONS(4860),
    [sym_shared] = ACTIONS(4860),
    [sym_static] = ACTIONS(4860),
    [sym_struct] = ACTIONS(4860),
    [sym_switch] = ACTIONS(4860),
    [sym_synchronized] = ACTIONS(4860),
    [sym_template] = ACTIONS(4860),
    [sym_throw] = ACTIONS(4860),
    [sym_try] = ACTIONS(4860),
    [sym_typeid] = ACTIONS(4860),
    [sym_typeof] = ACTIONS(4860),
    [sym_union] = ACTIONS(4860),
    [sym_unittest] = ACTIONS(4860),
    [sym_version] = ACTIONS(4860),
    [sym_while] = ACTIONS(4860),
    [sym_with] = ACTIONS(4860),
    [sym_gshared] = ACTIONS(4860),
    [sym_traits] = ACTIONS(4860),
    [sym_vector] = ACTIONS(4860),
    [sym_void] = ACTIONS(4860),
    [anon_sym_BQUOTE] = ACTIONS(4862),
    [anon_sym_r_DQUOTE] = ACTIONS(4862),
    [anon_sym_x_DQUOTE] = ACTIONS(4862),
    [anon_sym_DQUOTE] = ACTIONS(4862),
    [anon_sym_i_BQUOTE] = ACTIONS(4862),
    [anon_sym_i_DQUOTE] = ACTIONS(4862),
    [anon_sym_iq_LBRACE] = ACTIONS(4862),
    [aux_sym_char_literal_token1] = ACTIONS(4862),
    [anon_sym_SQUOTE] = ACTIONS(4860),
    [anon_sym___DATE__] = ACTIONS(4860),
    [anon_sym___FILE__] = ACTIONS(4860),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4860),
    [anon_sym___FUNCTION__] = ACTIONS(4860),
    [anon_sym___LINE__] = ACTIONS(4860),
    [anon_sym___MODULE__] = ACTIONS(4860),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4860),
    [anon_sym___TIME__] = ACTIONS(4860),
    [anon_sym___TIMESTAMP__] = ACTIONS(4860),
    [anon_sym___VENDOR__] = ACTIONS(4860),
    [anon_sym___VERSION__] = ACTIONS(4860),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4862),
    [sym_float_literal] = ACTIONS(4862),
    [sym__string] = ACTIONS(4862),
  },
  [1497] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_finally] = ACTIONS(2798),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [1498] = {
    [sym_identifier] = ACTIONS(4864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4866),
    [anon_sym_RBRACE] = ACTIONS(4866),
    [anon_sym_LBRACE] = ACTIONS(4866),
    [anon_sym_DOT] = ACTIONS(4866),
    [anon_sym_AMP] = ACTIONS(4866),
    [anon_sym_DASH] = ACTIONS(4864),
    [anon_sym_DASH_DASH] = ACTIONS(4866),
    [anon_sym_PLUS] = ACTIONS(4864),
    [anon_sym_PLUS_PLUS] = ACTIONS(4866),
    [anon_sym_BANG] = ACTIONS(4866),
    [anon_sym_LPAREN] = ACTIONS(4866),
    [anon_sym_RPAREN] = ACTIONS(4866),
    [anon_sym_LBRACK] = ACTIONS(4866),
    [anon_sym_SEMI] = ACTIONS(4866),
    [anon_sym_DOLLAR] = ACTIONS(4866),
    [anon_sym_STAR] = ACTIONS(4866),
    [anon_sym_TILDE] = ACTIONS(4866),
    [anon_sym_AT] = ACTIONS(4866),
    [sym_bool] = ACTIONS(4864),
    [sym_byte] = ACTIONS(4864),
    [sym_ubyte] = ACTIONS(4864),
    [sym_char] = ACTIONS(4864),
    [sym_short] = ACTIONS(4864),
    [sym_ushort] = ACTIONS(4864),
    [sym_int] = ACTIONS(4864),
    [sym_uint] = ACTIONS(4864),
    [sym_long] = ACTIONS(4864),
    [sym_ulong] = ACTIONS(4864),
    [sym_cent] = ACTIONS(4864),
    [sym_ucent] = ACTIONS(4864),
    [sym_wchar] = ACTIONS(4864),
    [sym_dchar] = ACTIONS(4864),
    [sym_float] = ACTIONS(4864),
    [sym_double] = ACTIONS(4864),
    [sym_real] = ACTIONS(4864),
    [sym_ifloat] = ACTIONS(4864),
    [sym_idouble] = ACTIONS(4864),
    [sym_ireal] = ACTIONS(4864),
    [sym_cfloat] = ACTIONS(4864),
    [sym_cdouble] = ACTIONS(4864),
    [sym_creal] = ACTIONS(4864),
    [sym_size_t] = ACTIONS(4864),
    [sym_ptrdiff_t] = ACTIONS(4864),
    [sym_string] = ACTIONS(4864),
    [sym_cstring] = ACTIONS(4864),
    [sym_dstring] = ACTIONS(4864),
    [sym_wstring] = ACTIONS(4864),
    [sym_noreturn] = ACTIONS(4864),
    [sym_true] = ACTIONS(4864),
    [sym_false] = ACTIONS(4864),
    [sym_null] = ACTIONS(4864),
    [sym_super] = ACTIONS(4864),
    [sym_this] = ACTIONS(4864),
    [sym_abstract] = ACTIONS(4864),
    [sym_alias] = ACTIONS(4864),
    [sym_align] = ACTIONS(4864),
    [sym_asm] = ACTIONS(4864),
    [sym_assert] = ACTIONS(4864),
    [sym_auto] = ACTIONS(4864),
    [sym_break] = ACTIONS(4864),
    [sym_case] = ACTIONS(4864),
    [sym_cast] = ACTIONS(4864),
    [sym_catch] = ACTIONS(4864),
    [sym_class] = ACTIONS(4864),
    [sym_const] = ACTIONS(4864),
    [sym_continue] = ACTIONS(4864),
    [sym_debug] = ACTIONS(4864),
    [sym_default] = ACTIONS(4864),
    [sym_delegate] = ACTIONS(4864),
    [sym_delete] = ACTIONS(4864),
    [sym_deprecated] = ACTIONS(4864),
    [sym_do] = ACTIONS(4864),
    [sym_else] = ACTIONS(4864),
    [sym_enum] = ACTIONS(4864),
    [sym_export] = ACTIONS(4864),
    [sym_extern] = ACTIONS(4864),
    [sym_final] = ACTIONS(4864),
    [sym_finally] = ACTIONS(4864),
    [sym_for] = ACTIONS(4864),
    [sym_foreach] = ACTIONS(4864),
    [sym_foreach_reverse] = ACTIONS(4864),
    [sym_function] = ACTIONS(4864),
    [sym_goto] = ACTIONS(4864),
    [sym_if] = ACTIONS(4864),
    [sym_immutable] = ACTIONS(4864),
    [sym_import] = ACTIONS(4864),
    [sym_in] = ACTIONS(4864),
    [sym_inout] = ACTIONS(4864),
    [sym_interface] = ACTIONS(4864),
    [sym_invariant] = ACTIONS(4864),
    [sym_is] = ACTIONS(4864),
    [sym_mixin] = ACTIONS(4864),
    [sym_new] = ACTIONS(4864),
    [sym_nothrow] = ACTIONS(4864),
    [sym_out] = ACTIONS(4864),
    [sym_override] = ACTIONS(4864),
    [sym_package] = ACTIONS(4864),
    [sym_pragma] = ACTIONS(4864),
    [sym_private] = ACTIONS(4864),
    [sym_protected] = ACTIONS(4864),
    [sym_public] = ACTIONS(4864),
    [sym_pure] = ACTIONS(4864),
    [sym_ref] = ACTIONS(4864),
    [sym_return] = ACTIONS(4864),
    [sym_scope] = ACTIONS(4864),
    [sym_shared] = ACTIONS(4864),
    [sym_static] = ACTIONS(4864),
    [sym_struct] = ACTIONS(4864),
    [sym_switch] = ACTIONS(4864),
    [sym_synchronized] = ACTIONS(4864),
    [sym_template] = ACTIONS(4864),
    [sym_throw] = ACTIONS(4864),
    [sym_try] = ACTIONS(4864),
    [sym_typeid] = ACTIONS(4864),
    [sym_typeof] = ACTIONS(4864),
    [sym_union] = ACTIONS(4864),
    [sym_unittest] = ACTIONS(4864),
    [sym_version] = ACTIONS(4864),
    [sym_while] = ACTIONS(4864),
    [sym_with] = ACTIONS(4864),
    [sym_gshared] = ACTIONS(4864),
    [sym_traits] = ACTIONS(4864),
    [sym_vector] = ACTIONS(4864),
    [sym_void] = ACTIONS(4864),
    [anon_sym_BQUOTE] = ACTIONS(4866),
    [anon_sym_r_DQUOTE] = ACTIONS(4866),
    [anon_sym_x_DQUOTE] = ACTIONS(4866),
    [anon_sym_DQUOTE] = ACTIONS(4866),
    [anon_sym_i_BQUOTE] = ACTIONS(4866),
    [anon_sym_i_DQUOTE] = ACTIONS(4866),
    [anon_sym_iq_LBRACE] = ACTIONS(4866),
    [aux_sym_char_literal_token1] = ACTIONS(4866),
    [anon_sym_SQUOTE] = ACTIONS(4864),
    [anon_sym___DATE__] = ACTIONS(4864),
    [anon_sym___FILE__] = ACTIONS(4864),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4864),
    [anon_sym___FUNCTION__] = ACTIONS(4864),
    [anon_sym___LINE__] = ACTIONS(4864),
    [anon_sym___MODULE__] = ACTIONS(4864),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4864),
    [anon_sym___TIME__] = ACTIONS(4864),
    [anon_sym___TIMESTAMP__] = ACTIONS(4864),
    [anon_sym___VENDOR__] = ACTIONS(4864),
    [anon_sym___VERSION__] = ACTIONS(4864),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4866),
    [sym_float_literal] = ACTIONS(4866),
    [sym__string] = ACTIONS(4866),
  },
  [1499] = {
    [sym_identifier] = ACTIONS(4868),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4870),
    [anon_sym_RBRACE] = ACTIONS(4870),
    [anon_sym_LBRACE] = ACTIONS(4870),
    [anon_sym_DOT] = ACTIONS(4870),
    [anon_sym_AMP] = ACTIONS(4870),
    [anon_sym_DASH] = ACTIONS(4868),
    [anon_sym_DASH_DASH] = ACTIONS(4870),
    [anon_sym_PLUS] = ACTIONS(4868),
    [anon_sym_PLUS_PLUS] = ACTIONS(4870),
    [anon_sym_BANG] = ACTIONS(4870),
    [anon_sym_LPAREN] = ACTIONS(4870),
    [anon_sym_RPAREN] = ACTIONS(4870),
    [anon_sym_LBRACK] = ACTIONS(4870),
    [anon_sym_SEMI] = ACTIONS(4870),
    [anon_sym_DOLLAR] = ACTIONS(4870),
    [anon_sym_STAR] = ACTIONS(4870),
    [anon_sym_TILDE] = ACTIONS(4870),
    [anon_sym_AT] = ACTIONS(4870),
    [sym_bool] = ACTIONS(4868),
    [sym_byte] = ACTIONS(4868),
    [sym_ubyte] = ACTIONS(4868),
    [sym_char] = ACTIONS(4868),
    [sym_short] = ACTIONS(4868),
    [sym_ushort] = ACTIONS(4868),
    [sym_int] = ACTIONS(4868),
    [sym_uint] = ACTIONS(4868),
    [sym_long] = ACTIONS(4868),
    [sym_ulong] = ACTIONS(4868),
    [sym_cent] = ACTIONS(4868),
    [sym_ucent] = ACTIONS(4868),
    [sym_wchar] = ACTIONS(4868),
    [sym_dchar] = ACTIONS(4868),
    [sym_float] = ACTIONS(4868),
    [sym_double] = ACTIONS(4868),
    [sym_real] = ACTIONS(4868),
    [sym_ifloat] = ACTIONS(4868),
    [sym_idouble] = ACTIONS(4868),
    [sym_ireal] = ACTIONS(4868),
    [sym_cfloat] = ACTIONS(4868),
    [sym_cdouble] = ACTIONS(4868),
    [sym_creal] = ACTIONS(4868),
    [sym_size_t] = ACTIONS(4868),
    [sym_ptrdiff_t] = ACTIONS(4868),
    [sym_string] = ACTIONS(4868),
    [sym_cstring] = ACTIONS(4868),
    [sym_dstring] = ACTIONS(4868),
    [sym_wstring] = ACTIONS(4868),
    [sym_noreturn] = ACTIONS(4868),
    [sym_true] = ACTIONS(4868),
    [sym_false] = ACTIONS(4868),
    [sym_null] = ACTIONS(4868),
    [sym_super] = ACTIONS(4868),
    [sym_this] = ACTIONS(4868),
    [sym_abstract] = ACTIONS(4868),
    [sym_alias] = ACTIONS(4868),
    [sym_align] = ACTIONS(4868),
    [sym_asm] = ACTIONS(4868),
    [sym_assert] = ACTIONS(4868),
    [sym_auto] = ACTIONS(4868),
    [sym_break] = ACTIONS(4868),
    [sym_case] = ACTIONS(4868),
    [sym_cast] = ACTIONS(4868),
    [sym_catch] = ACTIONS(4868),
    [sym_class] = ACTIONS(4868),
    [sym_const] = ACTIONS(4868),
    [sym_continue] = ACTIONS(4868),
    [sym_debug] = ACTIONS(4868),
    [sym_default] = ACTIONS(4868),
    [sym_delegate] = ACTIONS(4868),
    [sym_delete] = ACTIONS(4868),
    [sym_deprecated] = ACTIONS(4868),
    [sym_do] = ACTIONS(4868),
    [sym_else] = ACTIONS(4868),
    [sym_enum] = ACTIONS(4868),
    [sym_export] = ACTIONS(4868),
    [sym_extern] = ACTIONS(4868),
    [sym_final] = ACTIONS(4868),
    [sym_finally] = ACTIONS(4868),
    [sym_for] = ACTIONS(4868),
    [sym_foreach] = ACTIONS(4868),
    [sym_foreach_reverse] = ACTIONS(4868),
    [sym_function] = ACTIONS(4868),
    [sym_goto] = ACTIONS(4868),
    [sym_if] = ACTIONS(4868),
    [sym_immutable] = ACTIONS(4868),
    [sym_import] = ACTIONS(4868),
    [sym_in] = ACTIONS(4868),
    [sym_inout] = ACTIONS(4868),
    [sym_interface] = ACTIONS(4868),
    [sym_invariant] = ACTIONS(4868),
    [sym_is] = ACTIONS(4868),
    [sym_mixin] = ACTIONS(4868),
    [sym_new] = ACTIONS(4868),
    [sym_nothrow] = ACTIONS(4868),
    [sym_out] = ACTIONS(4868),
    [sym_override] = ACTIONS(4868),
    [sym_package] = ACTIONS(4868),
    [sym_pragma] = ACTIONS(4868),
    [sym_private] = ACTIONS(4868),
    [sym_protected] = ACTIONS(4868),
    [sym_public] = ACTIONS(4868),
    [sym_pure] = ACTIONS(4868),
    [sym_ref] = ACTIONS(4868),
    [sym_return] = ACTIONS(4868),
    [sym_scope] = ACTIONS(4868),
    [sym_shared] = ACTIONS(4868),
    [sym_static] = ACTIONS(4868),
    [sym_struct] = ACTIONS(4868),
    [sym_switch] = ACTIONS(4868),
    [sym_synchronized] = ACTIONS(4868),
    [sym_template] = ACTIONS(4868),
    [sym_throw] = ACTIONS(4868),
    [sym_try] = ACTIONS(4868),
    [sym_typeid] = ACTIONS(4868),
    [sym_typeof] = ACTIONS(4868),
    [sym_union] = ACTIONS(4868),
    [sym_unittest] = ACTIONS(4868),
    [sym_version] = ACTIONS(4868),
    [sym_while] = ACTIONS(4868),
    [sym_with] = ACTIONS(4868),
    [sym_gshared] = ACTIONS(4868),
    [sym_traits] = ACTIONS(4868),
    [sym_vector] = ACTIONS(4868),
    [sym_void] = ACTIONS(4868),
    [anon_sym_BQUOTE] = ACTIONS(4870),
    [anon_sym_r_DQUOTE] = ACTIONS(4870),
    [anon_sym_x_DQUOTE] = ACTIONS(4870),
    [anon_sym_DQUOTE] = ACTIONS(4870),
    [anon_sym_i_BQUOTE] = ACTIONS(4870),
    [anon_sym_i_DQUOTE] = ACTIONS(4870),
    [anon_sym_iq_LBRACE] = ACTIONS(4870),
    [aux_sym_char_literal_token1] = ACTIONS(4870),
    [anon_sym_SQUOTE] = ACTIONS(4868),
    [anon_sym___DATE__] = ACTIONS(4868),
    [anon_sym___FILE__] = ACTIONS(4868),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4868),
    [anon_sym___FUNCTION__] = ACTIONS(4868),
    [anon_sym___LINE__] = ACTIONS(4868),
    [anon_sym___MODULE__] = ACTIONS(4868),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4868),
    [anon_sym___TIME__] = ACTIONS(4868),
    [anon_sym___TIMESTAMP__] = ACTIONS(4868),
    [anon_sym___VENDOR__] = ACTIONS(4868),
    [anon_sym___VERSION__] = ACTIONS(4868),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4870),
    [sym_float_literal] = ACTIONS(4870),
    [sym__string] = ACTIONS(4870),
  },
  [1500] = {
    [sym_identifier] = ACTIONS(4872),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4874),
    [anon_sym_RBRACE] = ACTIONS(4874),
    [anon_sym_LBRACE] = ACTIONS(4874),
    [anon_sym_DOT] = ACTIONS(4874),
    [anon_sym_AMP] = ACTIONS(4874),
    [anon_sym_DASH] = ACTIONS(4872),
    [anon_sym_DASH_DASH] = ACTIONS(4874),
    [anon_sym_PLUS] = ACTIONS(4872),
    [anon_sym_PLUS_PLUS] = ACTIONS(4874),
    [anon_sym_BANG] = ACTIONS(4874),
    [anon_sym_LPAREN] = ACTIONS(4874),
    [anon_sym_RPAREN] = ACTIONS(4874),
    [anon_sym_LBRACK] = ACTIONS(4874),
    [anon_sym_SEMI] = ACTIONS(4874),
    [anon_sym_DOLLAR] = ACTIONS(4874),
    [anon_sym_STAR] = ACTIONS(4874),
    [anon_sym_TILDE] = ACTIONS(4874),
    [anon_sym_AT] = ACTIONS(4874),
    [sym_bool] = ACTIONS(4872),
    [sym_byte] = ACTIONS(4872),
    [sym_ubyte] = ACTIONS(4872),
    [sym_char] = ACTIONS(4872),
    [sym_short] = ACTIONS(4872),
    [sym_ushort] = ACTIONS(4872),
    [sym_int] = ACTIONS(4872),
    [sym_uint] = ACTIONS(4872),
    [sym_long] = ACTIONS(4872),
    [sym_ulong] = ACTIONS(4872),
    [sym_cent] = ACTIONS(4872),
    [sym_ucent] = ACTIONS(4872),
    [sym_wchar] = ACTIONS(4872),
    [sym_dchar] = ACTIONS(4872),
    [sym_float] = ACTIONS(4872),
    [sym_double] = ACTIONS(4872),
    [sym_real] = ACTIONS(4872),
    [sym_ifloat] = ACTIONS(4872),
    [sym_idouble] = ACTIONS(4872),
    [sym_ireal] = ACTIONS(4872),
    [sym_cfloat] = ACTIONS(4872),
    [sym_cdouble] = ACTIONS(4872),
    [sym_creal] = ACTIONS(4872),
    [sym_size_t] = ACTIONS(4872),
    [sym_ptrdiff_t] = ACTIONS(4872),
    [sym_string] = ACTIONS(4872),
    [sym_cstring] = ACTIONS(4872),
    [sym_dstring] = ACTIONS(4872),
    [sym_wstring] = ACTIONS(4872),
    [sym_noreturn] = ACTIONS(4872),
    [sym_true] = ACTIONS(4872),
    [sym_false] = ACTIONS(4872),
    [sym_null] = ACTIONS(4872),
    [sym_super] = ACTIONS(4872),
    [sym_this] = ACTIONS(4872),
    [sym_abstract] = ACTIONS(4872),
    [sym_alias] = ACTIONS(4872),
    [sym_align] = ACTIONS(4872),
    [sym_asm] = ACTIONS(4872),
    [sym_assert] = ACTIONS(4872),
    [sym_auto] = ACTIONS(4872),
    [sym_break] = ACTIONS(4872),
    [sym_case] = ACTIONS(4872),
    [sym_cast] = ACTIONS(4872),
    [sym_catch] = ACTIONS(4872),
    [sym_class] = ACTIONS(4872),
    [sym_const] = ACTIONS(4872),
    [sym_continue] = ACTIONS(4872),
    [sym_debug] = ACTIONS(4872),
    [sym_default] = ACTIONS(4872),
    [sym_delegate] = ACTIONS(4872),
    [sym_delete] = ACTIONS(4872),
    [sym_deprecated] = ACTIONS(4872),
    [sym_do] = ACTIONS(4872),
    [sym_else] = ACTIONS(4872),
    [sym_enum] = ACTIONS(4872),
    [sym_export] = ACTIONS(4872),
    [sym_extern] = ACTIONS(4872),
    [sym_final] = ACTIONS(4872),
    [sym_finally] = ACTIONS(4872),
    [sym_for] = ACTIONS(4872),
    [sym_foreach] = ACTIONS(4872),
    [sym_foreach_reverse] = ACTIONS(4872),
    [sym_function] = ACTIONS(4872),
    [sym_goto] = ACTIONS(4872),
    [sym_if] = ACTIONS(4872),
    [sym_immutable] = ACTIONS(4872),
    [sym_import] = ACTIONS(4872),
    [sym_in] = ACTIONS(4872),
    [sym_inout] = ACTIONS(4872),
    [sym_interface] = ACTIONS(4872),
    [sym_invariant] = ACTIONS(4872),
    [sym_is] = ACTIONS(4872),
    [sym_mixin] = ACTIONS(4872),
    [sym_new] = ACTIONS(4872),
    [sym_nothrow] = ACTIONS(4872),
    [sym_out] = ACTIONS(4872),
    [sym_override] = ACTIONS(4872),
    [sym_package] = ACTIONS(4872),
    [sym_pragma] = ACTIONS(4872),
    [sym_private] = ACTIONS(4872),
    [sym_protected] = ACTIONS(4872),
    [sym_public] = ACTIONS(4872),
    [sym_pure] = ACTIONS(4872),
    [sym_ref] = ACTIONS(4872),
    [sym_return] = ACTIONS(4872),
    [sym_scope] = ACTIONS(4872),
    [sym_shared] = ACTIONS(4872),
    [sym_static] = ACTIONS(4872),
    [sym_struct] = ACTIONS(4872),
    [sym_switch] = ACTIONS(4872),
    [sym_synchronized] = ACTIONS(4872),
    [sym_template] = ACTIONS(4872),
    [sym_throw] = ACTIONS(4872),
    [sym_try] = ACTIONS(4872),
    [sym_typeid] = ACTIONS(4872),
    [sym_typeof] = ACTIONS(4872),
    [sym_union] = ACTIONS(4872),
    [sym_unittest] = ACTIONS(4872),
    [sym_version] = ACTIONS(4872),
    [sym_while] = ACTIONS(4872),
    [sym_with] = ACTIONS(4872),
    [sym_gshared] = ACTIONS(4872),
    [sym_traits] = ACTIONS(4872),
    [sym_vector] = ACTIONS(4872),
    [sym_void] = ACTIONS(4872),
    [anon_sym_BQUOTE] = ACTIONS(4874),
    [anon_sym_r_DQUOTE] = ACTIONS(4874),
    [anon_sym_x_DQUOTE] = ACTIONS(4874),
    [anon_sym_DQUOTE] = ACTIONS(4874),
    [anon_sym_i_BQUOTE] = ACTIONS(4874),
    [anon_sym_i_DQUOTE] = ACTIONS(4874),
    [anon_sym_iq_LBRACE] = ACTIONS(4874),
    [aux_sym_char_literal_token1] = ACTIONS(4874),
    [anon_sym_SQUOTE] = ACTIONS(4872),
    [anon_sym___DATE__] = ACTIONS(4872),
    [anon_sym___FILE__] = ACTIONS(4872),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4872),
    [anon_sym___FUNCTION__] = ACTIONS(4872),
    [anon_sym___LINE__] = ACTIONS(4872),
    [anon_sym___MODULE__] = ACTIONS(4872),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4872),
    [anon_sym___TIME__] = ACTIONS(4872),
    [anon_sym___TIMESTAMP__] = ACTIONS(4872),
    [anon_sym___VENDOR__] = ACTIONS(4872),
    [anon_sym___VERSION__] = ACTIONS(4872),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4874),
    [sym_float_literal] = ACTIONS(4874),
    [sym__string] = ACTIONS(4874),
  },
  [1501] = {
    [sym_identifier] = ACTIONS(2812),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2810),
    [anon_sym_RBRACE] = ACTIONS(2810),
    [anon_sym_LBRACE] = ACTIONS(2810),
    [anon_sym_DOT] = ACTIONS(2810),
    [anon_sym_AMP] = ACTIONS(2810),
    [anon_sym_DASH] = ACTIONS(2812),
    [anon_sym_DASH_DASH] = ACTIONS(2810),
    [anon_sym_PLUS] = ACTIONS(2812),
    [anon_sym_PLUS_PLUS] = ACTIONS(2810),
    [anon_sym_BANG] = ACTIONS(2810),
    [anon_sym_LPAREN] = ACTIONS(2810),
    [anon_sym_RPAREN] = ACTIONS(2810),
    [anon_sym_LBRACK] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2810),
    [anon_sym_DOLLAR] = ACTIONS(2810),
    [anon_sym_STAR] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2810),
    [anon_sym_AT] = ACTIONS(2810),
    [sym_bool] = ACTIONS(2812),
    [sym_byte] = ACTIONS(2812),
    [sym_ubyte] = ACTIONS(2812),
    [sym_char] = ACTIONS(2812),
    [sym_short] = ACTIONS(2812),
    [sym_ushort] = ACTIONS(2812),
    [sym_int] = ACTIONS(2812),
    [sym_uint] = ACTIONS(2812),
    [sym_long] = ACTIONS(2812),
    [sym_ulong] = ACTIONS(2812),
    [sym_cent] = ACTIONS(2812),
    [sym_ucent] = ACTIONS(2812),
    [sym_wchar] = ACTIONS(2812),
    [sym_dchar] = ACTIONS(2812),
    [sym_float] = ACTIONS(2812),
    [sym_double] = ACTIONS(2812),
    [sym_real] = ACTIONS(2812),
    [sym_ifloat] = ACTIONS(2812),
    [sym_idouble] = ACTIONS(2812),
    [sym_ireal] = ACTIONS(2812),
    [sym_cfloat] = ACTIONS(2812),
    [sym_cdouble] = ACTIONS(2812),
    [sym_creal] = ACTIONS(2812),
    [sym_size_t] = ACTIONS(2812),
    [sym_ptrdiff_t] = ACTIONS(2812),
    [sym_string] = ACTIONS(2812),
    [sym_cstring] = ACTIONS(2812),
    [sym_dstring] = ACTIONS(2812),
    [sym_wstring] = ACTIONS(2812),
    [sym_noreturn] = ACTIONS(2812),
    [sym_true] = ACTIONS(2812),
    [sym_false] = ACTIONS(2812),
    [sym_null] = ACTIONS(2812),
    [sym_super] = ACTIONS(2812),
    [sym_this] = ACTIONS(2812),
    [sym_abstract] = ACTIONS(2812),
    [sym_alias] = ACTIONS(2812),
    [sym_align] = ACTIONS(2812),
    [sym_asm] = ACTIONS(2812),
    [sym_assert] = ACTIONS(2812),
    [sym_auto] = ACTIONS(2812),
    [sym_break] = ACTIONS(2812),
    [sym_case] = ACTIONS(2812),
    [sym_cast] = ACTIONS(2812),
    [sym_catch] = ACTIONS(2812),
    [sym_class] = ACTIONS(2812),
    [sym_const] = ACTIONS(2812),
    [sym_continue] = ACTIONS(2812),
    [sym_debug] = ACTIONS(2812),
    [sym_default] = ACTIONS(2812),
    [sym_delegate] = ACTIONS(2812),
    [sym_delete] = ACTIONS(2812),
    [sym_deprecated] = ACTIONS(2812),
    [sym_do] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(2812),
    [sym_export] = ACTIONS(2812),
    [sym_extern] = ACTIONS(2812),
    [sym_final] = ACTIONS(2812),
    [sym_finally] = ACTIONS(2812),
    [sym_for] = ACTIONS(2812),
    [sym_foreach] = ACTIONS(2812),
    [sym_foreach_reverse] = ACTIONS(2812),
    [sym_function] = ACTIONS(2812),
    [sym_goto] = ACTIONS(2812),
    [sym_if] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(2812),
    [sym_import] = ACTIONS(2812),
    [sym_in] = ACTIONS(2812),
    [sym_inout] = ACTIONS(2812),
    [sym_interface] = ACTIONS(2812),
    [sym_invariant] = ACTIONS(2812),
    [sym_is] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2812),
    [sym_new] = ACTIONS(2812),
    [sym_nothrow] = ACTIONS(2812),
    [sym_out] = ACTIONS(2812),
    [sym_override] = ACTIONS(2812),
    [sym_package] = ACTIONS(2812),
    [sym_pragma] = ACTIONS(2812),
    [sym_private] = ACTIONS(2812),
    [sym_protected] = ACTIONS(2812),
    [sym_public] = ACTIONS(2812),
    [sym_pure] = ACTIONS(2812),
    [sym_ref] = ACTIONS(2812),
    [sym_return] = ACTIONS(2812),
    [sym_scope] = ACTIONS(2812),
    [sym_shared] = ACTIONS(2812),
    [sym_static] = ACTIONS(2812),
    [sym_struct] = ACTIONS(2812),
    [sym_switch] = ACTIONS(2812),
    [sym_synchronized] = ACTIONS(2812),
    [sym_template] = ACTIONS(2812),
    [sym_throw] = ACTIONS(2812),
    [sym_try] = ACTIONS(2812),
    [sym_typeid] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(2812),
    [sym_union] = ACTIONS(2812),
    [sym_unittest] = ACTIONS(2812),
    [sym_version] = ACTIONS(2812),
    [sym_while] = ACTIONS(2812),
    [sym_with] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(2812),
    [sym_traits] = ACTIONS(2812),
    [sym_vector] = ACTIONS(2812),
    [sym_void] = ACTIONS(2812),
    [anon_sym_BQUOTE] = ACTIONS(2810),
    [anon_sym_r_DQUOTE] = ACTIONS(2810),
    [anon_sym_x_DQUOTE] = ACTIONS(2810),
    [anon_sym_DQUOTE] = ACTIONS(2810),
    [anon_sym_i_BQUOTE] = ACTIONS(2810),
    [anon_sym_i_DQUOTE] = ACTIONS(2810),
    [anon_sym_iq_LBRACE] = ACTIONS(2810),
    [aux_sym_char_literal_token1] = ACTIONS(2810),
    [anon_sym_SQUOTE] = ACTIONS(2812),
    [anon_sym___DATE__] = ACTIONS(2812),
    [anon_sym___FILE__] = ACTIONS(2812),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2812),
    [anon_sym___FUNCTION__] = ACTIONS(2812),
    [anon_sym___LINE__] = ACTIONS(2812),
    [anon_sym___MODULE__] = ACTIONS(2812),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2812),
    [anon_sym___TIME__] = ACTIONS(2812),
    [anon_sym___TIMESTAMP__] = ACTIONS(2812),
    [anon_sym___VENDOR__] = ACTIONS(2812),
    [anon_sym___VERSION__] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2810),
    [sym_float_literal] = ACTIONS(2810),
    [sym__string] = ACTIONS(2810),
  },
  [1502] = {
    [sym_identifier] = ACTIONS(4876),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4878),
    [anon_sym_RBRACE] = ACTIONS(4878),
    [anon_sym_LBRACE] = ACTIONS(4878),
    [anon_sym_DOT] = ACTIONS(4878),
    [anon_sym_AMP] = ACTIONS(4878),
    [anon_sym_DASH] = ACTIONS(4876),
    [anon_sym_DASH_DASH] = ACTIONS(4878),
    [anon_sym_PLUS] = ACTIONS(4876),
    [anon_sym_PLUS_PLUS] = ACTIONS(4878),
    [anon_sym_BANG] = ACTIONS(4878),
    [anon_sym_LPAREN] = ACTIONS(4878),
    [anon_sym_RPAREN] = ACTIONS(4878),
    [anon_sym_LBRACK] = ACTIONS(4878),
    [anon_sym_SEMI] = ACTIONS(4878),
    [anon_sym_DOLLAR] = ACTIONS(4878),
    [anon_sym_STAR] = ACTIONS(4878),
    [anon_sym_TILDE] = ACTIONS(4878),
    [anon_sym_AT] = ACTIONS(4878),
    [sym_bool] = ACTIONS(4876),
    [sym_byte] = ACTIONS(4876),
    [sym_ubyte] = ACTIONS(4876),
    [sym_char] = ACTIONS(4876),
    [sym_short] = ACTIONS(4876),
    [sym_ushort] = ACTIONS(4876),
    [sym_int] = ACTIONS(4876),
    [sym_uint] = ACTIONS(4876),
    [sym_long] = ACTIONS(4876),
    [sym_ulong] = ACTIONS(4876),
    [sym_cent] = ACTIONS(4876),
    [sym_ucent] = ACTIONS(4876),
    [sym_wchar] = ACTIONS(4876),
    [sym_dchar] = ACTIONS(4876),
    [sym_float] = ACTIONS(4876),
    [sym_double] = ACTIONS(4876),
    [sym_real] = ACTIONS(4876),
    [sym_ifloat] = ACTIONS(4876),
    [sym_idouble] = ACTIONS(4876),
    [sym_ireal] = ACTIONS(4876),
    [sym_cfloat] = ACTIONS(4876),
    [sym_cdouble] = ACTIONS(4876),
    [sym_creal] = ACTIONS(4876),
    [sym_size_t] = ACTIONS(4876),
    [sym_ptrdiff_t] = ACTIONS(4876),
    [sym_string] = ACTIONS(4876),
    [sym_cstring] = ACTIONS(4876),
    [sym_dstring] = ACTIONS(4876),
    [sym_wstring] = ACTIONS(4876),
    [sym_noreturn] = ACTIONS(4876),
    [sym_true] = ACTIONS(4876),
    [sym_false] = ACTIONS(4876),
    [sym_null] = ACTIONS(4876),
    [sym_super] = ACTIONS(4876),
    [sym_this] = ACTIONS(4876),
    [sym_abstract] = ACTIONS(4876),
    [sym_alias] = ACTIONS(4876),
    [sym_align] = ACTIONS(4876),
    [sym_asm] = ACTIONS(4876),
    [sym_assert] = ACTIONS(4876),
    [sym_auto] = ACTIONS(4876),
    [sym_break] = ACTIONS(4876),
    [sym_case] = ACTIONS(4876),
    [sym_cast] = ACTIONS(4876),
    [sym_catch] = ACTIONS(4876),
    [sym_class] = ACTIONS(4876),
    [sym_const] = ACTIONS(4876),
    [sym_continue] = ACTIONS(4876),
    [sym_debug] = ACTIONS(4876),
    [sym_default] = ACTIONS(4876),
    [sym_delegate] = ACTIONS(4876),
    [sym_delete] = ACTIONS(4876),
    [sym_deprecated] = ACTIONS(4876),
    [sym_do] = ACTIONS(4876),
    [sym_else] = ACTIONS(4876),
    [sym_enum] = ACTIONS(4876),
    [sym_export] = ACTIONS(4876),
    [sym_extern] = ACTIONS(4876),
    [sym_final] = ACTIONS(4876),
    [sym_finally] = ACTIONS(4876),
    [sym_for] = ACTIONS(4876),
    [sym_foreach] = ACTIONS(4876),
    [sym_foreach_reverse] = ACTIONS(4876),
    [sym_function] = ACTIONS(4876),
    [sym_goto] = ACTIONS(4876),
    [sym_if] = ACTIONS(4876),
    [sym_immutable] = ACTIONS(4876),
    [sym_import] = ACTIONS(4876),
    [sym_in] = ACTIONS(4876),
    [sym_inout] = ACTIONS(4876),
    [sym_interface] = ACTIONS(4876),
    [sym_invariant] = ACTIONS(4876),
    [sym_is] = ACTIONS(4876),
    [sym_mixin] = ACTIONS(4876),
    [sym_new] = ACTIONS(4876),
    [sym_nothrow] = ACTIONS(4876),
    [sym_out] = ACTIONS(4876),
    [sym_override] = ACTIONS(4876),
    [sym_package] = ACTIONS(4876),
    [sym_pragma] = ACTIONS(4876),
    [sym_private] = ACTIONS(4876),
    [sym_protected] = ACTIONS(4876),
    [sym_public] = ACTIONS(4876),
    [sym_pure] = ACTIONS(4876),
    [sym_ref] = ACTIONS(4876),
    [sym_return] = ACTIONS(4876),
    [sym_scope] = ACTIONS(4876),
    [sym_shared] = ACTIONS(4876),
    [sym_static] = ACTIONS(4876),
    [sym_struct] = ACTIONS(4876),
    [sym_switch] = ACTIONS(4876),
    [sym_synchronized] = ACTIONS(4876),
    [sym_template] = ACTIONS(4876),
    [sym_throw] = ACTIONS(4876),
    [sym_try] = ACTIONS(4876),
    [sym_typeid] = ACTIONS(4876),
    [sym_typeof] = ACTIONS(4876),
    [sym_union] = ACTIONS(4876),
    [sym_unittest] = ACTIONS(4876),
    [sym_version] = ACTIONS(4876),
    [sym_while] = ACTIONS(4876),
    [sym_with] = ACTIONS(4876),
    [sym_gshared] = ACTIONS(4876),
    [sym_traits] = ACTIONS(4876),
    [sym_vector] = ACTIONS(4876),
    [sym_void] = ACTIONS(4876),
    [anon_sym_BQUOTE] = ACTIONS(4878),
    [anon_sym_r_DQUOTE] = ACTIONS(4878),
    [anon_sym_x_DQUOTE] = ACTIONS(4878),
    [anon_sym_DQUOTE] = ACTIONS(4878),
    [anon_sym_i_BQUOTE] = ACTIONS(4878),
    [anon_sym_i_DQUOTE] = ACTIONS(4878),
    [anon_sym_iq_LBRACE] = ACTIONS(4878),
    [aux_sym_char_literal_token1] = ACTIONS(4878),
    [anon_sym_SQUOTE] = ACTIONS(4876),
    [anon_sym___DATE__] = ACTIONS(4876),
    [anon_sym___FILE__] = ACTIONS(4876),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4876),
    [anon_sym___FUNCTION__] = ACTIONS(4876),
    [anon_sym___LINE__] = ACTIONS(4876),
    [anon_sym___MODULE__] = ACTIONS(4876),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4876),
    [anon_sym___TIME__] = ACTIONS(4876),
    [anon_sym___TIMESTAMP__] = ACTIONS(4876),
    [anon_sym___VENDOR__] = ACTIONS(4876),
    [anon_sym___VERSION__] = ACTIONS(4876),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4878),
    [sym_float_literal] = ACTIONS(4878),
    [sym__string] = ACTIONS(4878),
  },
  [1503] = {
    [sym_identifier] = ACTIONS(4880),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4882),
    [anon_sym_RBRACE] = ACTIONS(4882),
    [anon_sym_LBRACE] = ACTIONS(4882),
    [anon_sym_DOT] = ACTIONS(4882),
    [anon_sym_AMP] = ACTIONS(4882),
    [anon_sym_DASH] = ACTIONS(4880),
    [anon_sym_DASH_DASH] = ACTIONS(4882),
    [anon_sym_PLUS] = ACTIONS(4880),
    [anon_sym_PLUS_PLUS] = ACTIONS(4882),
    [anon_sym_BANG] = ACTIONS(4882),
    [anon_sym_LPAREN] = ACTIONS(4882),
    [anon_sym_RPAREN] = ACTIONS(4882),
    [anon_sym_LBRACK] = ACTIONS(4882),
    [anon_sym_SEMI] = ACTIONS(4882),
    [anon_sym_DOLLAR] = ACTIONS(4882),
    [anon_sym_STAR] = ACTIONS(4882),
    [anon_sym_TILDE] = ACTIONS(4882),
    [anon_sym_AT] = ACTIONS(4882),
    [sym_bool] = ACTIONS(4880),
    [sym_byte] = ACTIONS(4880),
    [sym_ubyte] = ACTIONS(4880),
    [sym_char] = ACTIONS(4880),
    [sym_short] = ACTIONS(4880),
    [sym_ushort] = ACTIONS(4880),
    [sym_int] = ACTIONS(4880),
    [sym_uint] = ACTIONS(4880),
    [sym_long] = ACTIONS(4880),
    [sym_ulong] = ACTIONS(4880),
    [sym_cent] = ACTIONS(4880),
    [sym_ucent] = ACTIONS(4880),
    [sym_wchar] = ACTIONS(4880),
    [sym_dchar] = ACTIONS(4880),
    [sym_float] = ACTIONS(4880),
    [sym_double] = ACTIONS(4880),
    [sym_real] = ACTIONS(4880),
    [sym_ifloat] = ACTIONS(4880),
    [sym_idouble] = ACTIONS(4880),
    [sym_ireal] = ACTIONS(4880),
    [sym_cfloat] = ACTIONS(4880),
    [sym_cdouble] = ACTIONS(4880),
    [sym_creal] = ACTIONS(4880),
    [sym_size_t] = ACTIONS(4880),
    [sym_ptrdiff_t] = ACTIONS(4880),
    [sym_string] = ACTIONS(4880),
    [sym_cstring] = ACTIONS(4880),
    [sym_dstring] = ACTIONS(4880),
    [sym_wstring] = ACTIONS(4880),
    [sym_noreturn] = ACTIONS(4880),
    [sym_true] = ACTIONS(4880),
    [sym_false] = ACTIONS(4880),
    [sym_null] = ACTIONS(4880),
    [sym_super] = ACTIONS(4880),
    [sym_this] = ACTIONS(4880),
    [sym_abstract] = ACTIONS(4880),
    [sym_alias] = ACTIONS(4880),
    [sym_align] = ACTIONS(4880),
    [sym_asm] = ACTIONS(4880),
    [sym_assert] = ACTIONS(4880),
    [sym_auto] = ACTIONS(4880),
    [sym_break] = ACTIONS(4880),
    [sym_case] = ACTIONS(4880),
    [sym_cast] = ACTIONS(4880),
    [sym_catch] = ACTIONS(4880),
    [sym_class] = ACTIONS(4880),
    [sym_const] = ACTIONS(4880),
    [sym_continue] = ACTIONS(4880),
    [sym_debug] = ACTIONS(4880),
    [sym_default] = ACTIONS(4880),
    [sym_delegate] = ACTIONS(4880),
    [sym_delete] = ACTIONS(4880),
    [sym_deprecated] = ACTIONS(4880),
    [sym_do] = ACTIONS(4880),
    [sym_else] = ACTIONS(4880),
    [sym_enum] = ACTIONS(4880),
    [sym_export] = ACTIONS(4880),
    [sym_extern] = ACTIONS(4880),
    [sym_final] = ACTIONS(4880),
    [sym_finally] = ACTIONS(4880),
    [sym_for] = ACTIONS(4880),
    [sym_foreach] = ACTIONS(4880),
    [sym_foreach_reverse] = ACTIONS(4880),
    [sym_function] = ACTIONS(4880),
    [sym_goto] = ACTIONS(4880),
    [sym_if] = ACTIONS(4880),
    [sym_immutable] = ACTIONS(4880),
    [sym_import] = ACTIONS(4880),
    [sym_in] = ACTIONS(4880),
    [sym_inout] = ACTIONS(4880),
    [sym_interface] = ACTIONS(4880),
    [sym_invariant] = ACTIONS(4880),
    [sym_is] = ACTIONS(4880),
    [sym_mixin] = ACTIONS(4880),
    [sym_new] = ACTIONS(4880),
    [sym_nothrow] = ACTIONS(4880),
    [sym_out] = ACTIONS(4880),
    [sym_override] = ACTIONS(4880),
    [sym_package] = ACTIONS(4880),
    [sym_pragma] = ACTIONS(4880),
    [sym_private] = ACTIONS(4880),
    [sym_protected] = ACTIONS(4880),
    [sym_public] = ACTIONS(4880),
    [sym_pure] = ACTIONS(4880),
    [sym_ref] = ACTIONS(4880),
    [sym_return] = ACTIONS(4880),
    [sym_scope] = ACTIONS(4880),
    [sym_shared] = ACTIONS(4880),
    [sym_static] = ACTIONS(4880),
    [sym_struct] = ACTIONS(4880),
    [sym_switch] = ACTIONS(4880),
    [sym_synchronized] = ACTIONS(4880),
    [sym_template] = ACTIONS(4880),
    [sym_throw] = ACTIONS(4880),
    [sym_try] = ACTIONS(4880),
    [sym_typeid] = ACTIONS(4880),
    [sym_typeof] = ACTIONS(4880),
    [sym_union] = ACTIONS(4880),
    [sym_unittest] = ACTIONS(4880),
    [sym_version] = ACTIONS(4880),
    [sym_while] = ACTIONS(4880),
    [sym_with] = ACTIONS(4880),
    [sym_gshared] = ACTIONS(4880),
    [sym_traits] = ACTIONS(4880),
    [sym_vector] = ACTIONS(4880),
    [sym_void] = ACTIONS(4880),
    [anon_sym_BQUOTE] = ACTIONS(4882),
    [anon_sym_r_DQUOTE] = ACTIONS(4882),
    [anon_sym_x_DQUOTE] = ACTIONS(4882),
    [anon_sym_DQUOTE] = ACTIONS(4882),
    [anon_sym_i_BQUOTE] = ACTIONS(4882),
    [anon_sym_i_DQUOTE] = ACTIONS(4882),
    [anon_sym_iq_LBRACE] = ACTIONS(4882),
    [aux_sym_char_literal_token1] = ACTIONS(4882),
    [anon_sym_SQUOTE] = ACTIONS(4880),
    [anon_sym___DATE__] = ACTIONS(4880),
    [anon_sym___FILE__] = ACTIONS(4880),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4880),
    [anon_sym___FUNCTION__] = ACTIONS(4880),
    [anon_sym___LINE__] = ACTIONS(4880),
    [anon_sym___MODULE__] = ACTIONS(4880),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4880),
    [anon_sym___TIME__] = ACTIONS(4880),
    [anon_sym___TIMESTAMP__] = ACTIONS(4880),
    [anon_sym___VENDOR__] = ACTIONS(4880),
    [anon_sym___VERSION__] = ACTIONS(4880),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4882),
    [sym_float_literal] = ACTIONS(4882),
    [sym__string] = ACTIONS(4882),
  },
  [1504] = {
    [sym_identifier] = ACTIONS(4884),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4886),
    [anon_sym_RBRACE] = ACTIONS(4886),
    [anon_sym_LBRACE] = ACTIONS(4886),
    [anon_sym_DOT] = ACTIONS(4886),
    [anon_sym_AMP] = ACTIONS(4886),
    [anon_sym_DASH] = ACTIONS(4884),
    [anon_sym_DASH_DASH] = ACTIONS(4886),
    [anon_sym_PLUS] = ACTIONS(4884),
    [anon_sym_PLUS_PLUS] = ACTIONS(4886),
    [anon_sym_BANG] = ACTIONS(4886),
    [anon_sym_LPAREN] = ACTIONS(4886),
    [anon_sym_RPAREN] = ACTIONS(4886),
    [anon_sym_LBRACK] = ACTIONS(4886),
    [anon_sym_SEMI] = ACTIONS(4886),
    [anon_sym_DOLLAR] = ACTIONS(4886),
    [anon_sym_STAR] = ACTIONS(4886),
    [anon_sym_TILDE] = ACTIONS(4886),
    [anon_sym_AT] = ACTIONS(4886),
    [sym_bool] = ACTIONS(4884),
    [sym_byte] = ACTIONS(4884),
    [sym_ubyte] = ACTIONS(4884),
    [sym_char] = ACTIONS(4884),
    [sym_short] = ACTIONS(4884),
    [sym_ushort] = ACTIONS(4884),
    [sym_int] = ACTIONS(4884),
    [sym_uint] = ACTIONS(4884),
    [sym_long] = ACTIONS(4884),
    [sym_ulong] = ACTIONS(4884),
    [sym_cent] = ACTIONS(4884),
    [sym_ucent] = ACTIONS(4884),
    [sym_wchar] = ACTIONS(4884),
    [sym_dchar] = ACTIONS(4884),
    [sym_float] = ACTIONS(4884),
    [sym_double] = ACTIONS(4884),
    [sym_real] = ACTIONS(4884),
    [sym_ifloat] = ACTIONS(4884),
    [sym_idouble] = ACTIONS(4884),
    [sym_ireal] = ACTIONS(4884),
    [sym_cfloat] = ACTIONS(4884),
    [sym_cdouble] = ACTIONS(4884),
    [sym_creal] = ACTIONS(4884),
    [sym_size_t] = ACTIONS(4884),
    [sym_ptrdiff_t] = ACTIONS(4884),
    [sym_string] = ACTIONS(4884),
    [sym_cstring] = ACTIONS(4884),
    [sym_dstring] = ACTIONS(4884),
    [sym_wstring] = ACTIONS(4884),
    [sym_noreturn] = ACTIONS(4884),
    [sym_true] = ACTIONS(4884),
    [sym_false] = ACTIONS(4884),
    [sym_null] = ACTIONS(4884),
    [sym_super] = ACTIONS(4884),
    [sym_this] = ACTIONS(4884),
    [sym_abstract] = ACTIONS(4884),
    [sym_alias] = ACTIONS(4884),
    [sym_align] = ACTIONS(4884),
    [sym_asm] = ACTIONS(4884),
    [sym_assert] = ACTIONS(4884),
    [sym_auto] = ACTIONS(4884),
    [sym_break] = ACTIONS(4884),
    [sym_case] = ACTIONS(4884),
    [sym_cast] = ACTIONS(4884),
    [sym_catch] = ACTIONS(4884),
    [sym_class] = ACTIONS(4884),
    [sym_const] = ACTIONS(4884),
    [sym_continue] = ACTIONS(4884),
    [sym_debug] = ACTIONS(4884),
    [sym_default] = ACTIONS(4884),
    [sym_delegate] = ACTIONS(4884),
    [sym_delete] = ACTIONS(4884),
    [sym_deprecated] = ACTIONS(4884),
    [sym_do] = ACTIONS(4884),
    [sym_else] = ACTIONS(4884),
    [sym_enum] = ACTIONS(4884),
    [sym_export] = ACTIONS(4884),
    [sym_extern] = ACTIONS(4884),
    [sym_final] = ACTIONS(4884),
    [sym_finally] = ACTIONS(4884),
    [sym_for] = ACTIONS(4884),
    [sym_foreach] = ACTIONS(4884),
    [sym_foreach_reverse] = ACTIONS(4884),
    [sym_function] = ACTIONS(4884),
    [sym_goto] = ACTIONS(4884),
    [sym_if] = ACTIONS(4884),
    [sym_immutable] = ACTIONS(4884),
    [sym_import] = ACTIONS(4884),
    [sym_in] = ACTIONS(4884),
    [sym_inout] = ACTIONS(4884),
    [sym_interface] = ACTIONS(4884),
    [sym_invariant] = ACTIONS(4884),
    [sym_is] = ACTIONS(4884),
    [sym_mixin] = ACTIONS(4884),
    [sym_new] = ACTIONS(4884),
    [sym_nothrow] = ACTIONS(4884),
    [sym_out] = ACTIONS(4884),
    [sym_override] = ACTIONS(4884),
    [sym_package] = ACTIONS(4884),
    [sym_pragma] = ACTIONS(4884),
    [sym_private] = ACTIONS(4884),
    [sym_protected] = ACTIONS(4884),
    [sym_public] = ACTIONS(4884),
    [sym_pure] = ACTIONS(4884),
    [sym_ref] = ACTIONS(4884),
    [sym_return] = ACTIONS(4884),
    [sym_scope] = ACTIONS(4884),
    [sym_shared] = ACTIONS(4884),
    [sym_static] = ACTIONS(4884),
    [sym_struct] = ACTIONS(4884),
    [sym_switch] = ACTIONS(4884),
    [sym_synchronized] = ACTIONS(4884),
    [sym_template] = ACTIONS(4884),
    [sym_throw] = ACTIONS(4884),
    [sym_try] = ACTIONS(4884),
    [sym_typeid] = ACTIONS(4884),
    [sym_typeof] = ACTIONS(4884),
    [sym_union] = ACTIONS(4884),
    [sym_unittest] = ACTIONS(4884),
    [sym_version] = ACTIONS(4884),
    [sym_while] = ACTIONS(4884),
    [sym_with] = ACTIONS(4884),
    [sym_gshared] = ACTIONS(4884),
    [sym_traits] = ACTIONS(4884),
    [sym_vector] = ACTIONS(4884),
    [sym_void] = ACTIONS(4884),
    [anon_sym_BQUOTE] = ACTIONS(4886),
    [anon_sym_r_DQUOTE] = ACTIONS(4886),
    [anon_sym_x_DQUOTE] = ACTIONS(4886),
    [anon_sym_DQUOTE] = ACTIONS(4886),
    [anon_sym_i_BQUOTE] = ACTIONS(4886),
    [anon_sym_i_DQUOTE] = ACTIONS(4886),
    [anon_sym_iq_LBRACE] = ACTIONS(4886),
    [aux_sym_char_literal_token1] = ACTIONS(4886),
    [anon_sym_SQUOTE] = ACTIONS(4884),
    [anon_sym___DATE__] = ACTIONS(4884),
    [anon_sym___FILE__] = ACTIONS(4884),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4884),
    [anon_sym___FUNCTION__] = ACTIONS(4884),
    [anon_sym___LINE__] = ACTIONS(4884),
    [anon_sym___MODULE__] = ACTIONS(4884),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4884),
    [anon_sym___TIME__] = ACTIONS(4884),
    [anon_sym___TIMESTAMP__] = ACTIONS(4884),
    [anon_sym___VENDOR__] = ACTIONS(4884),
    [anon_sym___VERSION__] = ACTIONS(4884),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4886),
    [sym_float_literal] = ACTIONS(4886),
    [sym__string] = ACTIONS(4886),
  },
  [1505] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3072),
    [anon_sym_RBRACE] = ACTIONS(3072),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_AMP] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3070),
    [anon_sym_DASH_DASH] = ACTIONS(3072),
    [anon_sym_PLUS] = ACTIONS(3070),
    [anon_sym_PLUS_PLUS] = ACTIONS(3072),
    [anon_sym_BANG] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3072),
    [anon_sym_RPAREN] = ACTIONS(3072),
    [anon_sym_LBRACK] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_DOLLAR] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_true] = ACTIONS(3070),
    [sym_false] = ACTIONS(3070),
    [sym_null] = ACTIONS(3070),
    [sym_super] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_asm] = ACTIONS(3070),
    [sym_assert] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_break] = ACTIONS(3070),
    [sym_case] = ACTIONS(3070),
    [sym_cast] = ACTIONS(3070),
    [sym_catch] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_continue] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_default] = ACTIONS(3070),
    [sym_delegate] = ACTIONS(3070),
    [sym_delete] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_finally] = ACTIONS(3070),
    [sym_for] = ACTIONS(3070),
    [sym_foreach] = ACTIONS(3070),
    [sym_foreach_reverse] = ACTIONS(3070),
    [sym_function] = ACTIONS(3070),
    [sym_goto] = ACTIONS(3070),
    [sym_if] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_is] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_new] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_switch] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_throw] = ACTIONS(3070),
    [sym_try] = ACTIONS(3070),
    [sym_typeid] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_with] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [anon_sym_BQUOTE] = ACTIONS(3072),
    [anon_sym_r_DQUOTE] = ACTIONS(3072),
    [anon_sym_x_DQUOTE] = ACTIONS(3072),
    [anon_sym_DQUOTE] = ACTIONS(3072),
    [anon_sym_i_BQUOTE] = ACTIONS(3072),
    [anon_sym_i_DQUOTE] = ACTIONS(3072),
    [anon_sym_iq_LBRACE] = ACTIONS(3072),
    [aux_sym_char_literal_token1] = ACTIONS(3072),
    [anon_sym_SQUOTE] = ACTIONS(3070),
    [anon_sym___DATE__] = ACTIONS(3070),
    [anon_sym___FILE__] = ACTIONS(3070),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3070),
    [anon_sym___FUNCTION__] = ACTIONS(3070),
    [anon_sym___LINE__] = ACTIONS(3070),
    [anon_sym___MODULE__] = ACTIONS(3070),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3070),
    [anon_sym___TIME__] = ACTIONS(3070),
    [anon_sym___TIMESTAMP__] = ACTIONS(3070),
    [anon_sym___VENDOR__] = ACTIONS(3070),
    [anon_sym___VERSION__] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3072),
    [sym_float_literal] = ACTIONS(3072),
    [sym__string] = ACTIONS(3072),
  },
  [1506] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3104),
    [anon_sym_RBRACE] = ACTIONS(3104),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_AMP] = ACTIONS(3104),
    [anon_sym_DASH] = ACTIONS(3102),
    [anon_sym_DASH_DASH] = ACTIONS(3104),
    [anon_sym_PLUS] = ACTIONS(3102),
    [anon_sym_PLUS_PLUS] = ACTIONS(3104),
    [anon_sym_BANG] = ACTIONS(3104),
    [anon_sym_LPAREN] = ACTIONS(3104),
    [anon_sym_RPAREN] = ACTIONS(3104),
    [anon_sym_LBRACK] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_DOLLAR] = ACTIONS(3104),
    [anon_sym_STAR] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3104),
    [anon_sym_AT] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_true] = ACTIONS(3102),
    [sym_false] = ACTIONS(3102),
    [sym_null] = ACTIONS(3102),
    [sym_super] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_abstract] = ACTIONS(3102),
    [sym_alias] = ACTIONS(3102),
    [sym_align] = ACTIONS(3102),
    [sym_asm] = ACTIONS(3102),
    [sym_assert] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_break] = ACTIONS(3102),
    [sym_case] = ACTIONS(3102),
    [sym_cast] = ACTIONS(3102),
    [sym_catch] = ACTIONS(3102),
    [sym_class] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_continue] = ACTIONS(3102),
    [sym_debug] = ACTIONS(3102),
    [sym_default] = ACTIONS(3102),
    [sym_delegate] = ACTIONS(3102),
    [sym_delete] = ACTIONS(3102),
    [sym_deprecated] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_enum] = ACTIONS(3102),
    [sym_export] = ACTIONS(3102),
    [sym_extern] = ACTIONS(3102),
    [sym_final] = ACTIONS(3102),
    [sym_finally] = ACTIONS(3102),
    [sym_for] = ACTIONS(3102),
    [sym_foreach] = ACTIONS(3102),
    [sym_foreach_reverse] = ACTIONS(3102),
    [sym_function] = ACTIONS(3102),
    [sym_goto] = ACTIONS(3102),
    [sym_if] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_interface] = ACTIONS(3102),
    [sym_invariant] = ACTIONS(3102),
    [sym_is] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_new] = ACTIONS(3102),
    [sym_nothrow] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_override] = ACTIONS(3102),
    [sym_package] = ACTIONS(3102),
    [sym_pragma] = ACTIONS(3102),
    [sym_private] = ACTIONS(3102),
    [sym_protected] = ACTIONS(3102),
    [sym_public] = ACTIONS(3102),
    [sym_pure] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_return] = ACTIONS(3102),
    [sym_scope] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_static] = ACTIONS(3102),
    [sym_struct] = ACTIONS(3102),
    [sym_switch] = ACTIONS(3102),
    [sym_synchronized] = ACTIONS(3102),
    [sym_template] = ACTIONS(3102),
    [sym_throw] = ACTIONS(3102),
    [sym_try] = ACTIONS(3102),
    [sym_typeid] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_union] = ACTIONS(3102),
    [sym_unittest] = ACTIONS(3102),
    [sym_version] = ACTIONS(3102),
    [sym_while] = ACTIONS(3102),
    [sym_with] = ACTIONS(3102),
    [sym_gshared] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [anon_sym_BQUOTE] = ACTIONS(3104),
    [anon_sym_r_DQUOTE] = ACTIONS(3104),
    [anon_sym_x_DQUOTE] = ACTIONS(3104),
    [anon_sym_DQUOTE] = ACTIONS(3104),
    [anon_sym_i_BQUOTE] = ACTIONS(3104),
    [anon_sym_i_DQUOTE] = ACTIONS(3104),
    [anon_sym_iq_LBRACE] = ACTIONS(3104),
    [aux_sym_char_literal_token1] = ACTIONS(3104),
    [anon_sym_SQUOTE] = ACTIONS(3102),
    [anon_sym___DATE__] = ACTIONS(3102),
    [anon_sym___FILE__] = ACTIONS(3102),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3102),
    [anon_sym___FUNCTION__] = ACTIONS(3102),
    [anon_sym___LINE__] = ACTIONS(3102),
    [anon_sym___MODULE__] = ACTIONS(3102),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3102),
    [anon_sym___TIME__] = ACTIONS(3102),
    [anon_sym___TIMESTAMP__] = ACTIONS(3102),
    [anon_sym___VENDOR__] = ACTIONS(3102),
    [anon_sym___VERSION__] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3104),
    [sym_float_literal] = ACTIONS(3104),
    [sym__string] = ACTIONS(3104),
  },
  [1507] = {
    [sym_identifier] = ACTIONS(4888),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4890),
    [anon_sym_RBRACE] = ACTIONS(4890),
    [anon_sym_LBRACE] = ACTIONS(4890),
    [anon_sym_DOT] = ACTIONS(4890),
    [anon_sym_AMP] = ACTIONS(4890),
    [anon_sym_DASH] = ACTIONS(4888),
    [anon_sym_DASH_DASH] = ACTIONS(4890),
    [anon_sym_PLUS] = ACTIONS(4888),
    [anon_sym_PLUS_PLUS] = ACTIONS(4890),
    [anon_sym_BANG] = ACTIONS(4890),
    [anon_sym_LPAREN] = ACTIONS(4890),
    [anon_sym_RPAREN] = ACTIONS(4890),
    [anon_sym_LBRACK] = ACTIONS(4890),
    [anon_sym_SEMI] = ACTIONS(4890),
    [anon_sym_DOLLAR] = ACTIONS(4890),
    [anon_sym_STAR] = ACTIONS(4890),
    [anon_sym_TILDE] = ACTIONS(4890),
    [anon_sym_AT] = ACTIONS(4890),
    [sym_bool] = ACTIONS(4888),
    [sym_byte] = ACTIONS(4888),
    [sym_ubyte] = ACTIONS(4888),
    [sym_char] = ACTIONS(4888),
    [sym_short] = ACTIONS(4888),
    [sym_ushort] = ACTIONS(4888),
    [sym_int] = ACTIONS(4888),
    [sym_uint] = ACTIONS(4888),
    [sym_long] = ACTIONS(4888),
    [sym_ulong] = ACTIONS(4888),
    [sym_cent] = ACTIONS(4888),
    [sym_ucent] = ACTIONS(4888),
    [sym_wchar] = ACTIONS(4888),
    [sym_dchar] = ACTIONS(4888),
    [sym_float] = ACTIONS(4888),
    [sym_double] = ACTIONS(4888),
    [sym_real] = ACTIONS(4888),
    [sym_ifloat] = ACTIONS(4888),
    [sym_idouble] = ACTIONS(4888),
    [sym_ireal] = ACTIONS(4888),
    [sym_cfloat] = ACTIONS(4888),
    [sym_cdouble] = ACTIONS(4888),
    [sym_creal] = ACTIONS(4888),
    [sym_size_t] = ACTIONS(4888),
    [sym_ptrdiff_t] = ACTIONS(4888),
    [sym_string] = ACTIONS(4888),
    [sym_cstring] = ACTIONS(4888),
    [sym_dstring] = ACTIONS(4888),
    [sym_wstring] = ACTIONS(4888),
    [sym_noreturn] = ACTIONS(4888),
    [sym_true] = ACTIONS(4888),
    [sym_false] = ACTIONS(4888),
    [sym_null] = ACTIONS(4888),
    [sym_super] = ACTIONS(4888),
    [sym_this] = ACTIONS(4888),
    [sym_abstract] = ACTIONS(4888),
    [sym_alias] = ACTIONS(4888),
    [sym_align] = ACTIONS(4888),
    [sym_asm] = ACTIONS(4888),
    [sym_assert] = ACTIONS(4888),
    [sym_auto] = ACTIONS(4888),
    [sym_break] = ACTIONS(4888),
    [sym_case] = ACTIONS(4888),
    [sym_cast] = ACTIONS(4888),
    [sym_catch] = ACTIONS(4888),
    [sym_class] = ACTIONS(4888),
    [sym_const] = ACTIONS(4888),
    [sym_continue] = ACTIONS(4888),
    [sym_debug] = ACTIONS(4888),
    [sym_default] = ACTIONS(4888),
    [sym_delegate] = ACTIONS(4888),
    [sym_delete] = ACTIONS(4888),
    [sym_deprecated] = ACTIONS(4888),
    [sym_do] = ACTIONS(4888),
    [sym_else] = ACTIONS(4888),
    [sym_enum] = ACTIONS(4888),
    [sym_export] = ACTIONS(4888),
    [sym_extern] = ACTIONS(4888),
    [sym_final] = ACTIONS(4888),
    [sym_finally] = ACTIONS(4888),
    [sym_for] = ACTIONS(4888),
    [sym_foreach] = ACTIONS(4888),
    [sym_foreach_reverse] = ACTIONS(4888),
    [sym_function] = ACTIONS(4888),
    [sym_goto] = ACTIONS(4888),
    [sym_if] = ACTIONS(4888),
    [sym_immutable] = ACTIONS(4888),
    [sym_import] = ACTIONS(4888),
    [sym_in] = ACTIONS(4888),
    [sym_inout] = ACTIONS(4888),
    [sym_interface] = ACTIONS(4888),
    [sym_invariant] = ACTIONS(4888),
    [sym_is] = ACTIONS(4888),
    [sym_mixin] = ACTIONS(4888),
    [sym_new] = ACTIONS(4888),
    [sym_nothrow] = ACTIONS(4888),
    [sym_out] = ACTIONS(4888),
    [sym_override] = ACTIONS(4888),
    [sym_package] = ACTIONS(4888),
    [sym_pragma] = ACTIONS(4888),
    [sym_private] = ACTIONS(4888),
    [sym_protected] = ACTIONS(4888),
    [sym_public] = ACTIONS(4888),
    [sym_pure] = ACTIONS(4888),
    [sym_ref] = ACTIONS(4888),
    [sym_return] = ACTIONS(4888),
    [sym_scope] = ACTIONS(4888),
    [sym_shared] = ACTIONS(4888),
    [sym_static] = ACTIONS(4888),
    [sym_struct] = ACTIONS(4888),
    [sym_switch] = ACTIONS(4888),
    [sym_synchronized] = ACTIONS(4888),
    [sym_template] = ACTIONS(4888),
    [sym_throw] = ACTIONS(4888),
    [sym_try] = ACTIONS(4888),
    [sym_typeid] = ACTIONS(4888),
    [sym_typeof] = ACTIONS(4888),
    [sym_union] = ACTIONS(4888),
    [sym_unittest] = ACTIONS(4888),
    [sym_version] = ACTIONS(4888),
    [sym_while] = ACTIONS(4888),
    [sym_with] = ACTIONS(4888),
    [sym_gshared] = ACTIONS(4888),
    [sym_traits] = ACTIONS(4888),
    [sym_vector] = ACTIONS(4888),
    [sym_void] = ACTIONS(4888),
    [anon_sym_BQUOTE] = ACTIONS(4890),
    [anon_sym_r_DQUOTE] = ACTIONS(4890),
    [anon_sym_x_DQUOTE] = ACTIONS(4890),
    [anon_sym_DQUOTE] = ACTIONS(4890),
    [anon_sym_i_BQUOTE] = ACTIONS(4890),
    [anon_sym_i_DQUOTE] = ACTIONS(4890),
    [anon_sym_iq_LBRACE] = ACTIONS(4890),
    [aux_sym_char_literal_token1] = ACTIONS(4890),
    [anon_sym_SQUOTE] = ACTIONS(4888),
    [anon_sym___DATE__] = ACTIONS(4888),
    [anon_sym___FILE__] = ACTIONS(4888),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4888),
    [anon_sym___FUNCTION__] = ACTIONS(4888),
    [anon_sym___LINE__] = ACTIONS(4888),
    [anon_sym___MODULE__] = ACTIONS(4888),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4888),
    [anon_sym___TIME__] = ACTIONS(4888),
    [anon_sym___TIMESTAMP__] = ACTIONS(4888),
    [anon_sym___VENDOR__] = ACTIONS(4888),
    [anon_sym___VERSION__] = ACTIONS(4888),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4890),
    [sym_float_literal] = ACTIONS(4890),
    [sym__string] = ACTIONS(4890),
  },
  [1508] = {
    [sym_identifier] = ACTIONS(4892),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4894),
    [anon_sym_RBRACE] = ACTIONS(4894),
    [anon_sym_LBRACE] = ACTIONS(4894),
    [anon_sym_DOT] = ACTIONS(4894),
    [anon_sym_AMP] = ACTIONS(4894),
    [anon_sym_DASH] = ACTIONS(4892),
    [anon_sym_DASH_DASH] = ACTIONS(4894),
    [anon_sym_PLUS] = ACTIONS(4892),
    [anon_sym_PLUS_PLUS] = ACTIONS(4894),
    [anon_sym_BANG] = ACTIONS(4894),
    [anon_sym_LPAREN] = ACTIONS(4894),
    [anon_sym_RPAREN] = ACTIONS(4894),
    [anon_sym_LBRACK] = ACTIONS(4894),
    [anon_sym_SEMI] = ACTIONS(4894),
    [anon_sym_DOLLAR] = ACTIONS(4894),
    [anon_sym_STAR] = ACTIONS(4894),
    [anon_sym_TILDE] = ACTIONS(4894),
    [anon_sym_AT] = ACTIONS(4894),
    [sym_bool] = ACTIONS(4892),
    [sym_byte] = ACTIONS(4892),
    [sym_ubyte] = ACTIONS(4892),
    [sym_char] = ACTIONS(4892),
    [sym_short] = ACTIONS(4892),
    [sym_ushort] = ACTIONS(4892),
    [sym_int] = ACTIONS(4892),
    [sym_uint] = ACTIONS(4892),
    [sym_long] = ACTIONS(4892),
    [sym_ulong] = ACTIONS(4892),
    [sym_cent] = ACTIONS(4892),
    [sym_ucent] = ACTIONS(4892),
    [sym_wchar] = ACTIONS(4892),
    [sym_dchar] = ACTIONS(4892),
    [sym_float] = ACTIONS(4892),
    [sym_double] = ACTIONS(4892),
    [sym_real] = ACTIONS(4892),
    [sym_ifloat] = ACTIONS(4892),
    [sym_idouble] = ACTIONS(4892),
    [sym_ireal] = ACTIONS(4892),
    [sym_cfloat] = ACTIONS(4892),
    [sym_cdouble] = ACTIONS(4892),
    [sym_creal] = ACTIONS(4892),
    [sym_size_t] = ACTIONS(4892),
    [sym_ptrdiff_t] = ACTIONS(4892),
    [sym_string] = ACTIONS(4892),
    [sym_cstring] = ACTIONS(4892),
    [sym_dstring] = ACTIONS(4892),
    [sym_wstring] = ACTIONS(4892),
    [sym_noreturn] = ACTIONS(4892),
    [sym_true] = ACTIONS(4892),
    [sym_false] = ACTIONS(4892),
    [sym_null] = ACTIONS(4892),
    [sym_super] = ACTIONS(4892),
    [sym_this] = ACTIONS(4892),
    [sym_abstract] = ACTIONS(4892),
    [sym_alias] = ACTIONS(4892),
    [sym_align] = ACTIONS(4892),
    [sym_asm] = ACTIONS(4892),
    [sym_assert] = ACTIONS(4892),
    [sym_auto] = ACTIONS(4892),
    [sym_break] = ACTIONS(4892),
    [sym_case] = ACTIONS(4892),
    [sym_cast] = ACTIONS(4892),
    [sym_catch] = ACTIONS(4892),
    [sym_class] = ACTIONS(4892),
    [sym_const] = ACTIONS(4892),
    [sym_continue] = ACTIONS(4892),
    [sym_debug] = ACTIONS(4892),
    [sym_default] = ACTIONS(4892),
    [sym_delegate] = ACTIONS(4892),
    [sym_delete] = ACTIONS(4892),
    [sym_deprecated] = ACTIONS(4892),
    [sym_do] = ACTIONS(4892),
    [sym_else] = ACTIONS(4892),
    [sym_enum] = ACTIONS(4892),
    [sym_export] = ACTIONS(4892),
    [sym_extern] = ACTIONS(4892),
    [sym_final] = ACTIONS(4892),
    [sym_finally] = ACTIONS(4892),
    [sym_for] = ACTIONS(4892),
    [sym_foreach] = ACTIONS(4892),
    [sym_foreach_reverse] = ACTIONS(4892),
    [sym_function] = ACTIONS(4892),
    [sym_goto] = ACTIONS(4892),
    [sym_if] = ACTIONS(4892),
    [sym_immutable] = ACTIONS(4892),
    [sym_import] = ACTIONS(4892),
    [sym_in] = ACTIONS(4892),
    [sym_inout] = ACTIONS(4892),
    [sym_interface] = ACTIONS(4892),
    [sym_invariant] = ACTIONS(4892),
    [sym_is] = ACTIONS(4892),
    [sym_mixin] = ACTIONS(4892),
    [sym_new] = ACTIONS(4892),
    [sym_nothrow] = ACTIONS(4892),
    [sym_out] = ACTIONS(4892),
    [sym_override] = ACTIONS(4892),
    [sym_package] = ACTIONS(4892),
    [sym_pragma] = ACTIONS(4892),
    [sym_private] = ACTIONS(4892),
    [sym_protected] = ACTIONS(4892),
    [sym_public] = ACTIONS(4892),
    [sym_pure] = ACTIONS(4892),
    [sym_ref] = ACTIONS(4892),
    [sym_return] = ACTIONS(4892),
    [sym_scope] = ACTIONS(4892),
    [sym_shared] = ACTIONS(4892),
    [sym_static] = ACTIONS(4892),
    [sym_struct] = ACTIONS(4892),
    [sym_switch] = ACTIONS(4892),
    [sym_synchronized] = ACTIONS(4892),
    [sym_template] = ACTIONS(4892),
    [sym_throw] = ACTIONS(4892),
    [sym_try] = ACTIONS(4892),
    [sym_typeid] = ACTIONS(4892),
    [sym_typeof] = ACTIONS(4892),
    [sym_union] = ACTIONS(4892),
    [sym_unittest] = ACTIONS(4892),
    [sym_version] = ACTIONS(4892),
    [sym_while] = ACTIONS(4892),
    [sym_with] = ACTIONS(4892),
    [sym_gshared] = ACTIONS(4892),
    [sym_traits] = ACTIONS(4892),
    [sym_vector] = ACTIONS(4892),
    [sym_void] = ACTIONS(4892),
    [anon_sym_BQUOTE] = ACTIONS(4894),
    [anon_sym_r_DQUOTE] = ACTIONS(4894),
    [anon_sym_x_DQUOTE] = ACTIONS(4894),
    [anon_sym_DQUOTE] = ACTIONS(4894),
    [anon_sym_i_BQUOTE] = ACTIONS(4894),
    [anon_sym_i_DQUOTE] = ACTIONS(4894),
    [anon_sym_iq_LBRACE] = ACTIONS(4894),
    [aux_sym_char_literal_token1] = ACTIONS(4894),
    [anon_sym_SQUOTE] = ACTIONS(4892),
    [anon_sym___DATE__] = ACTIONS(4892),
    [anon_sym___FILE__] = ACTIONS(4892),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4892),
    [anon_sym___FUNCTION__] = ACTIONS(4892),
    [anon_sym___LINE__] = ACTIONS(4892),
    [anon_sym___MODULE__] = ACTIONS(4892),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4892),
    [anon_sym___TIME__] = ACTIONS(4892),
    [anon_sym___TIMESTAMP__] = ACTIONS(4892),
    [anon_sym___VENDOR__] = ACTIONS(4892),
    [anon_sym___VERSION__] = ACTIONS(4892),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4894),
    [sym_float_literal] = ACTIONS(4894),
    [sym__string] = ACTIONS(4894),
  },
  [1509] = {
    [sym_identifier] = ACTIONS(4896),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4898),
    [anon_sym_RBRACE] = ACTIONS(4898),
    [anon_sym_LBRACE] = ACTIONS(4898),
    [anon_sym_DOT] = ACTIONS(4898),
    [anon_sym_AMP] = ACTIONS(4898),
    [anon_sym_DASH] = ACTIONS(4896),
    [anon_sym_DASH_DASH] = ACTIONS(4898),
    [anon_sym_PLUS] = ACTIONS(4896),
    [anon_sym_PLUS_PLUS] = ACTIONS(4898),
    [anon_sym_BANG] = ACTIONS(4898),
    [anon_sym_LPAREN] = ACTIONS(4898),
    [anon_sym_RPAREN] = ACTIONS(4898),
    [anon_sym_LBRACK] = ACTIONS(4898),
    [anon_sym_SEMI] = ACTIONS(4898),
    [anon_sym_DOLLAR] = ACTIONS(4898),
    [anon_sym_STAR] = ACTIONS(4898),
    [anon_sym_TILDE] = ACTIONS(4898),
    [anon_sym_AT] = ACTIONS(4898),
    [sym_bool] = ACTIONS(4896),
    [sym_byte] = ACTIONS(4896),
    [sym_ubyte] = ACTIONS(4896),
    [sym_char] = ACTIONS(4896),
    [sym_short] = ACTIONS(4896),
    [sym_ushort] = ACTIONS(4896),
    [sym_int] = ACTIONS(4896),
    [sym_uint] = ACTIONS(4896),
    [sym_long] = ACTIONS(4896),
    [sym_ulong] = ACTIONS(4896),
    [sym_cent] = ACTIONS(4896),
    [sym_ucent] = ACTIONS(4896),
    [sym_wchar] = ACTIONS(4896),
    [sym_dchar] = ACTIONS(4896),
    [sym_float] = ACTIONS(4896),
    [sym_double] = ACTIONS(4896),
    [sym_real] = ACTIONS(4896),
    [sym_ifloat] = ACTIONS(4896),
    [sym_idouble] = ACTIONS(4896),
    [sym_ireal] = ACTIONS(4896),
    [sym_cfloat] = ACTIONS(4896),
    [sym_cdouble] = ACTIONS(4896),
    [sym_creal] = ACTIONS(4896),
    [sym_size_t] = ACTIONS(4896),
    [sym_ptrdiff_t] = ACTIONS(4896),
    [sym_string] = ACTIONS(4896),
    [sym_cstring] = ACTIONS(4896),
    [sym_dstring] = ACTIONS(4896),
    [sym_wstring] = ACTIONS(4896),
    [sym_noreturn] = ACTIONS(4896),
    [sym_true] = ACTIONS(4896),
    [sym_false] = ACTIONS(4896),
    [sym_null] = ACTIONS(4896),
    [sym_super] = ACTIONS(4896),
    [sym_this] = ACTIONS(4896),
    [sym_abstract] = ACTIONS(4896),
    [sym_alias] = ACTIONS(4896),
    [sym_align] = ACTIONS(4896),
    [sym_asm] = ACTIONS(4896),
    [sym_assert] = ACTIONS(4896),
    [sym_auto] = ACTIONS(4896),
    [sym_break] = ACTIONS(4896),
    [sym_case] = ACTIONS(4896),
    [sym_cast] = ACTIONS(4896),
    [sym_catch] = ACTIONS(4896),
    [sym_class] = ACTIONS(4896),
    [sym_const] = ACTIONS(4896),
    [sym_continue] = ACTIONS(4896),
    [sym_debug] = ACTIONS(4896),
    [sym_default] = ACTIONS(4896),
    [sym_delegate] = ACTIONS(4896),
    [sym_delete] = ACTIONS(4896),
    [sym_deprecated] = ACTIONS(4896),
    [sym_do] = ACTIONS(4896),
    [sym_else] = ACTIONS(4896),
    [sym_enum] = ACTIONS(4896),
    [sym_export] = ACTIONS(4896),
    [sym_extern] = ACTIONS(4896),
    [sym_final] = ACTIONS(4896),
    [sym_finally] = ACTIONS(4896),
    [sym_for] = ACTIONS(4896),
    [sym_foreach] = ACTIONS(4896),
    [sym_foreach_reverse] = ACTIONS(4896),
    [sym_function] = ACTIONS(4896),
    [sym_goto] = ACTIONS(4896),
    [sym_if] = ACTIONS(4896),
    [sym_immutable] = ACTIONS(4896),
    [sym_import] = ACTIONS(4896),
    [sym_in] = ACTIONS(4896),
    [sym_inout] = ACTIONS(4896),
    [sym_interface] = ACTIONS(4896),
    [sym_invariant] = ACTIONS(4896),
    [sym_is] = ACTIONS(4896),
    [sym_mixin] = ACTIONS(4896),
    [sym_new] = ACTIONS(4896),
    [sym_nothrow] = ACTIONS(4896),
    [sym_out] = ACTIONS(4896),
    [sym_override] = ACTIONS(4896),
    [sym_package] = ACTIONS(4896),
    [sym_pragma] = ACTIONS(4896),
    [sym_private] = ACTIONS(4896),
    [sym_protected] = ACTIONS(4896),
    [sym_public] = ACTIONS(4896),
    [sym_pure] = ACTIONS(4896),
    [sym_ref] = ACTIONS(4896),
    [sym_return] = ACTIONS(4896),
    [sym_scope] = ACTIONS(4896),
    [sym_shared] = ACTIONS(4896),
    [sym_static] = ACTIONS(4896),
    [sym_struct] = ACTIONS(4896),
    [sym_switch] = ACTIONS(4896),
    [sym_synchronized] = ACTIONS(4896),
    [sym_template] = ACTIONS(4896),
    [sym_throw] = ACTIONS(4896),
    [sym_try] = ACTIONS(4896),
    [sym_typeid] = ACTIONS(4896),
    [sym_typeof] = ACTIONS(4896),
    [sym_union] = ACTIONS(4896),
    [sym_unittest] = ACTIONS(4896),
    [sym_version] = ACTIONS(4896),
    [sym_while] = ACTIONS(4896),
    [sym_with] = ACTIONS(4896),
    [sym_gshared] = ACTIONS(4896),
    [sym_traits] = ACTIONS(4896),
    [sym_vector] = ACTIONS(4896),
    [sym_void] = ACTIONS(4896),
    [anon_sym_BQUOTE] = ACTIONS(4898),
    [anon_sym_r_DQUOTE] = ACTIONS(4898),
    [anon_sym_x_DQUOTE] = ACTIONS(4898),
    [anon_sym_DQUOTE] = ACTIONS(4898),
    [anon_sym_i_BQUOTE] = ACTIONS(4898),
    [anon_sym_i_DQUOTE] = ACTIONS(4898),
    [anon_sym_iq_LBRACE] = ACTIONS(4898),
    [aux_sym_char_literal_token1] = ACTIONS(4898),
    [anon_sym_SQUOTE] = ACTIONS(4896),
    [anon_sym___DATE__] = ACTIONS(4896),
    [anon_sym___FILE__] = ACTIONS(4896),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4896),
    [anon_sym___FUNCTION__] = ACTIONS(4896),
    [anon_sym___LINE__] = ACTIONS(4896),
    [anon_sym___MODULE__] = ACTIONS(4896),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4896),
    [anon_sym___TIME__] = ACTIONS(4896),
    [anon_sym___TIMESTAMP__] = ACTIONS(4896),
    [anon_sym___VENDOR__] = ACTIONS(4896),
    [anon_sym___VERSION__] = ACTIONS(4896),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4898),
    [sym_float_literal] = ACTIONS(4898),
    [sym__string] = ACTIONS(4898),
  },
  [1510] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3100),
    [anon_sym_RBRACE] = ACTIONS(3100),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_AMP] = ACTIONS(3100),
    [anon_sym_DASH] = ACTIONS(3098),
    [anon_sym_DASH_DASH] = ACTIONS(3100),
    [anon_sym_PLUS] = ACTIONS(3098),
    [anon_sym_PLUS_PLUS] = ACTIONS(3100),
    [anon_sym_BANG] = ACTIONS(3100),
    [anon_sym_LPAREN] = ACTIONS(3100),
    [anon_sym_RPAREN] = ACTIONS(3100),
    [anon_sym_LBRACK] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_DOLLAR] = ACTIONS(3100),
    [anon_sym_STAR] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3100),
    [anon_sym_AT] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_true] = ACTIONS(3098),
    [sym_false] = ACTIONS(3098),
    [sym_null] = ACTIONS(3098),
    [sym_super] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_abstract] = ACTIONS(3098),
    [sym_alias] = ACTIONS(3098),
    [sym_align] = ACTIONS(3098),
    [sym_asm] = ACTIONS(3098),
    [sym_assert] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_break] = ACTIONS(3098),
    [sym_case] = ACTIONS(3098),
    [sym_cast] = ACTIONS(3098),
    [sym_catch] = ACTIONS(3098),
    [sym_class] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_continue] = ACTIONS(3098),
    [sym_debug] = ACTIONS(3098),
    [sym_default] = ACTIONS(3098),
    [sym_delegate] = ACTIONS(3098),
    [sym_delete] = ACTIONS(3098),
    [sym_deprecated] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_enum] = ACTIONS(3098),
    [sym_export] = ACTIONS(3098),
    [sym_extern] = ACTIONS(3098),
    [sym_final] = ACTIONS(3098),
    [sym_finally] = ACTIONS(3098),
    [sym_for] = ACTIONS(3098),
    [sym_foreach] = ACTIONS(3098),
    [sym_foreach_reverse] = ACTIONS(3098),
    [sym_function] = ACTIONS(3098),
    [sym_goto] = ACTIONS(3098),
    [sym_if] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_interface] = ACTIONS(3098),
    [sym_invariant] = ACTIONS(3098),
    [sym_is] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_new] = ACTIONS(3098),
    [sym_nothrow] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_override] = ACTIONS(3098),
    [sym_package] = ACTIONS(3098),
    [sym_pragma] = ACTIONS(3098),
    [sym_private] = ACTIONS(3098),
    [sym_protected] = ACTIONS(3098),
    [sym_public] = ACTIONS(3098),
    [sym_pure] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_return] = ACTIONS(3098),
    [sym_scope] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_static] = ACTIONS(3098),
    [sym_struct] = ACTIONS(3098),
    [sym_switch] = ACTIONS(3098),
    [sym_synchronized] = ACTIONS(3098),
    [sym_template] = ACTIONS(3098),
    [sym_throw] = ACTIONS(3098),
    [sym_try] = ACTIONS(3098),
    [sym_typeid] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_union] = ACTIONS(3098),
    [sym_unittest] = ACTIONS(3098),
    [sym_version] = ACTIONS(3098),
    [sym_while] = ACTIONS(3098),
    [sym_with] = ACTIONS(3098),
    [sym_gshared] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [anon_sym_BQUOTE] = ACTIONS(3100),
    [anon_sym_r_DQUOTE] = ACTIONS(3100),
    [anon_sym_x_DQUOTE] = ACTIONS(3100),
    [anon_sym_DQUOTE] = ACTIONS(3100),
    [anon_sym_i_BQUOTE] = ACTIONS(3100),
    [anon_sym_i_DQUOTE] = ACTIONS(3100),
    [anon_sym_iq_LBRACE] = ACTIONS(3100),
    [aux_sym_char_literal_token1] = ACTIONS(3100),
    [anon_sym_SQUOTE] = ACTIONS(3098),
    [anon_sym___DATE__] = ACTIONS(3098),
    [anon_sym___FILE__] = ACTIONS(3098),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3098),
    [anon_sym___FUNCTION__] = ACTIONS(3098),
    [anon_sym___LINE__] = ACTIONS(3098),
    [anon_sym___MODULE__] = ACTIONS(3098),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3098),
    [anon_sym___TIME__] = ACTIONS(3098),
    [anon_sym___TIMESTAMP__] = ACTIONS(3098),
    [anon_sym___VENDOR__] = ACTIONS(3098),
    [anon_sym___VERSION__] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3100),
    [sym_float_literal] = ACTIONS(3100),
    [sym__string] = ACTIONS(3100),
  },
  [1511] = {
    [sym_identifier] = ACTIONS(4900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4902),
    [anon_sym_RBRACE] = ACTIONS(4902),
    [anon_sym_LBRACE] = ACTIONS(4902),
    [anon_sym_DOT] = ACTIONS(4902),
    [anon_sym_AMP] = ACTIONS(4902),
    [anon_sym_DASH] = ACTIONS(4900),
    [anon_sym_DASH_DASH] = ACTIONS(4902),
    [anon_sym_PLUS] = ACTIONS(4900),
    [anon_sym_PLUS_PLUS] = ACTIONS(4902),
    [anon_sym_BANG] = ACTIONS(4902),
    [anon_sym_LPAREN] = ACTIONS(4902),
    [anon_sym_RPAREN] = ACTIONS(4902),
    [anon_sym_LBRACK] = ACTIONS(4902),
    [anon_sym_SEMI] = ACTIONS(4902),
    [anon_sym_DOLLAR] = ACTIONS(4902),
    [anon_sym_STAR] = ACTIONS(4902),
    [anon_sym_TILDE] = ACTIONS(4902),
    [anon_sym_AT] = ACTIONS(4902),
    [sym_bool] = ACTIONS(4900),
    [sym_byte] = ACTIONS(4900),
    [sym_ubyte] = ACTIONS(4900),
    [sym_char] = ACTIONS(4900),
    [sym_short] = ACTIONS(4900),
    [sym_ushort] = ACTIONS(4900),
    [sym_int] = ACTIONS(4900),
    [sym_uint] = ACTIONS(4900),
    [sym_long] = ACTIONS(4900),
    [sym_ulong] = ACTIONS(4900),
    [sym_cent] = ACTIONS(4900),
    [sym_ucent] = ACTIONS(4900),
    [sym_wchar] = ACTIONS(4900),
    [sym_dchar] = ACTIONS(4900),
    [sym_float] = ACTIONS(4900),
    [sym_double] = ACTIONS(4900),
    [sym_real] = ACTIONS(4900),
    [sym_ifloat] = ACTIONS(4900),
    [sym_idouble] = ACTIONS(4900),
    [sym_ireal] = ACTIONS(4900),
    [sym_cfloat] = ACTIONS(4900),
    [sym_cdouble] = ACTIONS(4900),
    [sym_creal] = ACTIONS(4900),
    [sym_size_t] = ACTIONS(4900),
    [sym_ptrdiff_t] = ACTIONS(4900),
    [sym_string] = ACTIONS(4900),
    [sym_cstring] = ACTIONS(4900),
    [sym_dstring] = ACTIONS(4900),
    [sym_wstring] = ACTIONS(4900),
    [sym_noreturn] = ACTIONS(4900),
    [sym_true] = ACTIONS(4900),
    [sym_false] = ACTIONS(4900),
    [sym_null] = ACTIONS(4900),
    [sym_super] = ACTIONS(4900),
    [sym_this] = ACTIONS(4900),
    [sym_abstract] = ACTIONS(4900),
    [sym_alias] = ACTIONS(4900),
    [sym_align] = ACTIONS(4900),
    [sym_asm] = ACTIONS(4900),
    [sym_assert] = ACTIONS(4900),
    [sym_auto] = ACTIONS(4900),
    [sym_break] = ACTIONS(4900),
    [sym_case] = ACTIONS(4900),
    [sym_cast] = ACTIONS(4900),
    [sym_catch] = ACTIONS(4900),
    [sym_class] = ACTIONS(4900),
    [sym_const] = ACTIONS(4900),
    [sym_continue] = ACTIONS(4900),
    [sym_debug] = ACTIONS(4900),
    [sym_default] = ACTIONS(4900),
    [sym_delegate] = ACTIONS(4900),
    [sym_delete] = ACTIONS(4900),
    [sym_deprecated] = ACTIONS(4900),
    [sym_do] = ACTIONS(4900),
    [sym_else] = ACTIONS(4900),
    [sym_enum] = ACTIONS(4900),
    [sym_export] = ACTIONS(4900),
    [sym_extern] = ACTIONS(4900),
    [sym_final] = ACTIONS(4900),
    [sym_finally] = ACTIONS(4900),
    [sym_for] = ACTIONS(4900),
    [sym_foreach] = ACTIONS(4900),
    [sym_foreach_reverse] = ACTIONS(4900),
    [sym_function] = ACTIONS(4900),
    [sym_goto] = ACTIONS(4900),
    [sym_if] = ACTIONS(4900),
    [sym_immutable] = ACTIONS(4900),
    [sym_import] = ACTIONS(4900),
    [sym_in] = ACTIONS(4900),
    [sym_inout] = ACTIONS(4900),
    [sym_interface] = ACTIONS(4900),
    [sym_invariant] = ACTIONS(4900),
    [sym_is] = ACTIONS(4900),
    [sym_mixin] = ACTIONS(4900),
    [sym_new] = ACTIONS(4900),
    [sym_nothrow] = ACTIONS(4900),
    [sym_out] = ACTIONS(4900),
    [sym_override] = ACTIONS(4900),
    [sym_package] = ACTIONS(4900),
    [sym_pragma] = ACTIONS(4900),
    [sym_private] = ACTIONS(4900),
    [sym_protected] = ACTIONS(4900),
    [sym_public] = ACTIONS(4900),
    [sym_pure] = ACTIONS(4900),
    [sym_ref] = ACTIONS(4900),
    [sym_return] = ACTIONS(4900),
    [sym_scope] = ACTIONS(4900),
    [sym_shared] = ACTIONS(4900),
    [sym_static] = ACTIONS(4900),
    [sym_struct] = ACTIONS(4900),
    [sym_switch] = ACTIONS(4900),
    [sym_synchronized] = ACTIONS(4900),
    [sym_template] = ACTIONS(4900),
    [sym_throw] = ACTIONS(4900),
    [sym_try] = ACTIONS(4900),
    [sym_typeid] = ACTIONS(4900),
    [sym_typeof] = ACTIONS(4900),
    [sym_union] = ACTIONS(4900),
    [sym_unittest] = ACTIONS(4900),
    [sym_version] = ACTIONS(4900),
    [sym_while] = ACTIONS(4900),
    [sym_with] = ACTIONS(4900),
    [sym_gshared] = ACTIONS(4900),
    [sym_traits] = ACTIONS(4900),
    [sym_vector] = ACTIONS(4900),
    [sym_void] = ACTIONS(4900),
    [anon_sym_BQUOTE] = ACTIONS(4902),
    [anon_sym_r_DQUOTE] = ACTIONS(4902),
    [anon_sym_x_DQUOTE] = ACTIONS(4902),
    [anon_sym_DQUOTE] = ACTIONS(4902),
    [anon_sym_i_BQUOTE] = ACTIONS(4902),
    [anon_sym_i_DQUOTE] = ACTIONS(4902),
    [anon_sym_iq_LBRACE] = ACTIONS(4902),
    [aux_sym_char_literal_token1] = ACTIONS(4902),
    [anon_sym_SQUOTE] = ACTIONS(4900),
    [anon_sym___DATE__] = ACTIONS(4900),
    [anon_sym___FILE__] = ACTIONS(4900),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4900),
    [anon_sym___FUNCTION__] = ACTIONS(4900),
    [anon_sym___LINE__] = ACTIONS(4900),
    [anon_sym___MODULE__] = ACTIONS(4900),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4900),
    [anon_sym___TIME__] = ACTIONS(4900),
    [anon_sym___TIMESTAMP__] = ACTIONS(4900),
    [anon_sym___VENDOR__] = ACTIONS(4900),
    [anon_sym___VERSION__] = ACTIONS(4900),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4902),
    [sym_float_literal] = ACTIONS(4902),
    [sym__string] = ACTIONS(4902),
  },
  [1512] = {
    [sym_identifier] = ACTIONS(4904),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4906),
    [anon_sym_RBRACE] = ACTIONS(4906),
    [anon_sym_LBRACE] = ACTIONS(4906),
    [anon_sym_DOT] = ACTIONS(4906),
    [anon_sym_AMP] = ACTIONS(4906),
    [anon_sym_DASH] = ACTIONS(4904),
    [anon_sym_DASH_DASH] = ACTIONS(4906),
    [anon_sym_PLUS] = ACTIONS(4904),
    [anon_sym_PLUS_PLUS] = ACTIONS(4906),
    [anon_sym_BANG] = ACTIONS(4906),
    [anon_sym_LPAREN] = ACTIONS(4906),
    [anon_sym_RPAREN] = ACTIONS(4906),
    [anon_sym_LBRACK] = ACTIONS(4906),
    [anon_sym_SEMI] = ACTIONS(4906),
    [anon_sym_DOLLAR] = ACTIONS(4906),
    [anon_sym_STAR] = ACTIONS(4906),
    [anon_sym_TILDE] = ACTIONS(4906),
    [anon_sym_AT] = ACTIONS(4906),
    [sym_bool] = ACTIONS(4904),
    [sym_byte] = ACTIONS(4904),
    [sym_ubyte] = ACTIONS(4904),
    [sym_char] = ACTIONS(4904),
    [sym_short] = ACTIONS(4904),
    [sym_ushort] = ACTIONS(4904),
    [sym_int] = ACTIONS(4904),
    [sym_uint] = ACTIONS(4904),
    [sym_long] = ACTIONS(4904),
    [sym_ulong] = ACTIONS(4904),
    [sym_cent] = ACTIONS(4904),
    [sym_ucent] = ACTIONS(4904),
    [sym_wchar] = ACTIONS(4904),
    [sym_dchar] = ACTIONS(4904),
    [sym_float] = ACTIONS(4904),
    [sym_double] = ACTIONS(4904),
    [sym_real] = ACTIONS(4904),
    [sym_ifloat] = ACTIONS(4904),
    [sym_idouble] = ACTIONS(4904),
    [sym_ireal] = ACTIONS(4904),
    [sym_cfloat] = ACTIONS(4904),
    [sym_cdouble] = ACTIONS(4904),
    [sym_creal] = ACTIONS(4904),
    [sym_size_t] = ACTIONS(4904),
    [sym_ptrdiff_t] = ACTIONS(4904),
    [sym_string] = ACTIONS(4904),
    [sym_cstring] = ACTIONS(4904),
    [sym_dstring] = ACTIONS(4904),
    [sym_wstring] = ACTIONS(4904),
    [sym_noreturn] = ACTIONS(4904),
    [sym_true] = ACTIONS(4904),
    [sym_false] = ACTIONS(4904),
    [sym_null] = ACTIONS(4904),
    [sym_super] = ACTIONS(4904),
    [sym_this] = ACTIONS(4904),
    [sym_abstract] = ACTIONS(4904),
    [sym_alias] = ACTIONS(4904),
    [sym_align] = ACTIONS(4904),
    [sym_asm] = ACTIONS(4904),
    [sym_assert] = ACTIONS(4904),
    [sym_auto] = ACTIONS(4904),
    [sym_break] = ACTIONS(4904),
    [sym_case] = ACTIONS(4904),
    [sym_cast] = ACTIONS(4904),
    [sym_catch] = ACTIONS(4904),
    [sym_class] = ACTIONS(4904),
    [sym_const] = ACTIONS(4904),
    [sym_continue] = ACTIONS(4904),
    [sym_debug] = ACTIONS(4904),
    [sym_default] = ACTIONS(4904),
    [sym_delegate] = ACTIONS(4904),
    [sym_delete] = ACTIONS(4904),
    [sym_deprecated] = ACTIONS(4904),
    [sym_do] = ACTIONS(4904),
    [sym_else] = ACTIONS(4904),
    [sym_enum] = ACTIONS(4904),
    [sym_export] = ACTIONS(4904),
    [sym_extern] = ACTIONS(4904),
    [sym_final] = ACTIONS(4904),
    [sym_finally] = ACTIONS(4904),
    [sym_for] = ACTIONS(4904),
    [sym_foreach] = ACTIONS(4904),
    [sym_foreach_reverse] = ACTIONS(4904),
    [sym_function] = ACTIONS(4904),
    [sym_goto] = ACTIONS(4904),
    [sym_if] = ACTIONS(4904),
    [sym_immutable] = ACTIONS(4904),
    [sym_import] = ACTIONS(4904),
    [sym_in] = ACTIONS(4904),
    [sym_inout] = ACTIONS(4904),
    [sym_interface] = ACTIONS(4904),
    [sym_invariant] = ACTIONS(4904),
    [sym_is] = ACTIONS(4904),
    [sym_mixin] = ACTIONS(4904),
    [sym_new] = ACTIONS(4904),
    [sym_nothrow] = ACTIONS(4904),
    [sym_out] = ACTIONS(4904),
    [sym_override] = ACTIONS(4904),
    [sym_package] = ACTIONS(4904),
    [sym_pragma] = ACTIONS(4904),
    [sym_private] = ACTIONS(4904),
    [sym_protected] = ACTIONS(4904),
    [sym_public] = ACTIONS(4904),
    [sym_pure] = ACTIONS(4904),
    [sym_ref] = ACTIONS(4904),
    [sym_return] = ACTIONS(4904),
    [sym_scope] = ACTIONS(4904),
    [sym_shared] = ACTIONS(4904),
    [sym_static] = ACTIONS(4904),
    [sym_struct] = ACTIONS(4904),
    [sym_switch] = ACTIONS(4904),
    [sym_synchronized] = ACTIONS(4904),
    [sym_template] = ACTIONS(4904),
    [sym_throw] = ACTIONS(4904),
    [sym_try] = ACTIONS(4904),
    [sym_typeid] = ACTIONS(4904),
    [sym_typeof] = ACTIONS(4904),
    [sym_union] = ACTIONS(4904),
    [sym_unittest] = ACTIONS(4904),
    [sym_version] = ACTIONS(4904),
    [sym_while] = ACTIONS(4904),
    [sym_with] = ACTIONS(4904),
    [sym_gshared] = ACTIONS(4904),
    [sym_traits] = ACTIONS(4904),
    [sym_vector] = ACTIONS(4904),
    [sym_void] = ACTIONS(4904),
    [anon_sym_BQUOTE] = ACTIONS(4906),
    [anon_sym_r_DQUOTE] = ACTIONS(4906),
    [anon_sym_x_DQUOTE] = ACTIONS(4906),
    [anon_sym_DQUOTE] = ACTIONS(4906),
    [anon_sym_i_BQUOTE] = ACTIONS(4906),
    [anon_sym_i_DQUOTE] = ACTIONS(4906),
    [anon_sym_iq_LBRACE] = ACTIONS(4906),
    [aux_sym_char_literal_token1] = ACTIONS(4906),
    [anon_sym_SQUOTE] = ACTIONS(4904),
    [anon_sym___DATE__] = ACTIONS(4904),
    [anon_sym___FILE__] = ACTIONS(4904),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4904),
    [anon_sym___FUNCTION__] = ACTIONS(4904),
    [anon_sym___LINE__] = ACTIONS(4904),
    [anon_sym___MODULE__] = ACTIONS(4904),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4904),
    [anon_sym___TIME__] = ACTIONS(4904),
    [anon_sym___TIMESTAMP__] = ACTIONS(4904),
    [anon_sym___VENDOR__] = ACTIONS(4904),
    [anon_sym___VERSION__] = ACTIONS(4904),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4906),
    [sym_float_literal] = ACTIONS(4906),
    [sym__string] = ACTIONS(4906),
  },
  [1513] = {
    [sym_identifier] = ACTIONS(4908),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4910),
    [anon_sym_RBRACE] = ACTIONS(4910),
    [anon_sym_LBRACE] = ACTIONS(4910),
    [anon_sym_DOT] = ACTIONS(4910),
    [anon_sym_AMP] = ACTIONS(4910),
    [anon_sym_DASH] = ACTIONS(4908),
    [anon_sym_DASH_DASH] = ACTIONS(4910),
    [anon_sym_PLUS] = ACTIONS(4908),
    [anon_sym_PLUS_PLUS] = ACTIONS(4910),
    [anon_sym_BANG] = ACTIONS(4910),
    [anon_sym_LPAREN] = ACTIONS(4910),
    [anon_sym_RPAREN] = ACTIONS(4910),
    [anon_sym_LBRACK] = ACTIONS(4910),
    [anon_sym_SEMI] = ACTIONS(4910),
    [anon_sym_DOLLAR] = ACTIONS(4910),
    [anon_sym_STAR] = ACTIONS(4910),
    [anon_sym_TILDE] = ACTIONS(4910),
    [anon_sym_AT] = ACTIONS(4910),
    [sym_bool] = ACTIONS(4908),
    [sym_byte] = ACTIONS(4908),
    [sym_ubyte] = ACTIONS(4908),
    [sym_char] = ACTIONS(4908),
    [sym_short] = ACTIONS(4908),
    [sym_ushort] = ACTIONS(4908),
    [sym_int] = ACTIONS(4908),
    [sym_uint] = ACTIONS(4908),
    [sym_long] = ACTIONS(4908),
    [sym_ulong] = ACTIONS(4908),
    [sym_cent] = ACTIONS(4908),
    [sym_ucent] = ACTIONS(4908),
    [sym_wchar] = ACTIONS(4908),
    [sym_dchar] = ACTIONS(4908),
    [sym_float] = ACTIONS(4908),
    [sym_double] = ACTIONS(4908),
    [sym_real] = ACTIONS(4908),
    [sym_ifloat] = ACTIONS(4908),
    [sym_idouble] = ACTIONS(4908),
    [sym_ireal] = ACTIONS(4908),
    [sym_cfloat] = ACTIONS(4908),
    [sym_cdouble] = ACTIONS(4908),
    [sym_creal] = ACTIONS(4908),
    [sym_size_t] = ACTIONS(4908),
    [sym_ptrdiff_t] = ACTIONS(4908),
    [sym_string] = ACTIONS(4908),
    [sym_cstring] = ACTIONS(4908),
    [sym_dstring] = ACTIONS(4908),
    [sym_wstring] = ACTIONS(4908),
    [sym_noreturn] = ACTIONS(4908),
    [sym_true] = ACTIONS(4908),
    [sym_false] = ACTIONS(4908),
    [sym_null] = ACTIONS(4908),
    [sym_super] = ACTIONS(4908),
    [sym_this] = ACTIONS(4908),
    [sym_abstract] = ACTIONS(4908),
    [sym_alias] = ACTIONS(4908),
    [sym_align] = ACTIONS(4908),
    [sym_asm] = ACTIONS(4908),
    [sym_assert] = ACTIONS(4908),
    [sym_auto] = ACTIONS(4908),
    [sym_break] = ACTIONS(4908),
    [sym_case] = ACTIONS(4908),
    [sym_cast] = ACTIONS(4908),
    [sym_catch] = ACTIONS(4908),
    [sym_class] = ACTIONS(4908),
    [sym_const] = ACTIONS(4908),
    [sym_continue] = ACTIONS(4908),
    [sym_debug] = ACTIONS(4908),
    [sym_default] = ACTIONS(4908),
    [sym_delegate] = ACTIONS(4908),
    [sym_delete] = ACTIONS(4908),
    [sym_deprecated] = ACTIONS(4908),
    [sym_do] = ACTIONS(4908),
    [sym_else] = ACTIONS(4908),
    [sym_enum] = ACTIONS(4908),
    [sym_export] = ACTIONS(4908),
    [sym_extern] = ACTIONS(4908),
    [sym_final] = ACTIONS(4908),
    [sym_finally] = ACTIONS(4908),
    [sym_for] = ACTIONS(4908),
    [sym_foreach] = ACTIONS(4908),
    [sym_foreach_reverse] = ACTIONS(4908),
    [sym_function] = ACTIONS(4908),
    [sym_goto] = ACTIONS(4908),
    [sym_if] = ACTIONS(4908),
    [sym_immutable] = ACTIONS(4908),
    [sym_import] = ACTIONS(4908),
    [sym_in] = ACTIONS(4908),
    [sym_inout] = ACTIONS(4908),
    [sym_interface] = ACTIONS(4908),
    [sym_invariant] = ACTIONS(4908),
    [sym_is] = ACTIONS(4908),
    [sym_mixin] = ACTIONS(4908),
    [sym_new] = ACTIONS(4908),
    [sym_nothrow] = ACTIONS(4908),
    [sym_out] = ACTIONS(4908),
    [sym_override] = ACTIONS(4908),
    [sym_package] = ACTIONS(4908),
    [sym_pragma] = ACTIONS(4908),
    [sym_private] = ACTIONS(4908),
    [sym_protected] = ACTIONS(4908),
    [sym_public] = ACTIONS(4908),
    [sym_pure] = ACTIONS(4908),
    [sym_ref] = ACTIONS(4908),
    [sym_return] = ACTIONS(4908),
    [sym_scope] = ACTIONS(4908),
    [sym_shared] = ACTIONS(4908),
    [sym_static] = ACTIONS(4908),
    [sym_struct] = ACTIONS(4908),
    [sym_switch] = ACTIONS(4908),
    [sym_synchronized] = ACTIONS(4908),
    [sym_template] = ACTIONS(4908),
    [sym_throw] = ACTIONS(4908),
    [sym_try] = ACTIONS(4908),
    [sym_typeid] = ACTIONS(4908),
    [sym_typeof] = ACTIONS(4908),
    [sym_union] = ACTIONS(4908),
    [sym_unittest] = ACTIONS(4908),
    [sym_version] = ACTIONS(4908),
    [sym_while] = ACTIONS(4908),
    [sym_with] = ACTIONS(4908),
    [sym_gshared] = ACTIONS(4908),
    [sym_traits] = ACTIONS(4908),
    [sym_vector] = ACTIONS(4908),
    [sym_void] = ACTIONS(4908),
    [anon_sym_BQUOTE] = ACTIONS(4910),
    [anon_sym_r_DQUOTE] = ACTIONS(4910),
    [anon_sym_x_DQUOTE] = ACTIONS(4910),
    [anon_sym_DQUOTE] = ACTIONS(4910),
    [anon_sym_i_BQUOTE] = ACTIONS(4910),
    [anon_sym_i_DQUOTE] = ACTIONS(4910),
    [anon_sym_iq_LBRACE] = ACTIONS(4910),
    [aux_sym_char_literal_token1] = ACTIONS(4910),
    [anon_sym_SQUOTE] = ACTIONS(4908),
    [anon_sym___DATE__] = ACTIONS(4908),
    [anon_sym___FILE__] = ACTIONS(4908),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4908),
    [anon_sym___FUNCTION__] = ACTIONS(4908),
    [anon_sym___LINE__] = ACTIONS(4908),
    [anon_sym___MODULE__] = ACTIONS(4908),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4908),
    [anon_sym___TIME__] = ACTIONS(4908),
    [anon_sym___TIMESTAMP__] = ACTIONS(4908),
    [anon_sym___VENDOR__] = ACTIONS(4908),
    [anon_sym___VERSION__] = ACTIONS(4908),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4910),
    [sym_float_literal] = ACTIONS(4910),
    [sym__string] = ACTIONS(4910),
  },
  [1514] = {
    [sym_identifier] = ACTIONS(4912),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4914),
    [anon_sym_RBRACE] = ACTIONS(4914),
    [anon_sym_LBRACE] = ACTIONS(4914),
    [anon_sym_DOT] = ACTIONS(4914),
    [anon_sym_AMP] = ACTIONS(4914),
    [anon_sym_DASH] = ACTIONS(4912),
    [anon_sym_DASH_DASH] = ACTIONS(4914),
    [anon_sym_PLUS] = ACTIONS(4912),
    [anon_sym_PLUS_PLUS] = ACTIONS(4914),
    [anon_sym_BANG] = ACTIONS(4914),
    [anon_sym_LPAREN] = ACTIONS(4914),
    [anon_sym_RPAREN] = ACTIONS(4914),
    [anon_sym_LBRACK] = ACTIONS(4914),
    [anon_sym_SEMI] = ACTIONS(4914),
    [anon_sym_DOLLAR] = ACTIONS(4914),
    [anon_sym_STAR] = ACTIONS(4914),
    [anon_sym_TILDE] = ACTIONS(4914),
    [anon_sym_AT] = ACTIONS(4914),
    [sym_bool] = ACTIONS(4912),
    [sym_byte] = ACTIONS(4912),
    [sym_ubyte] = ACTIONS(4912),
    [sym_char] = ACTIONS(4912),
    [sym_short] = ACTIONS(4912),
    [sym_ushort] = ACTIONS(4912),
    [sym_int] = ACTIONS(4912),
    [sym_uint] = ACTIONS(4912),
    [sym_long] = ACTIONS(4912),
    [sym_ulong] = ACTIONS(4912),
    [sym_cent] = ACTIONS(4912),
    [sym_ucent] = ACTIONS(4912),
    [sym_wchar] = ACTIONS(4912),
    [sym_dchar] = ACTIONS(4912),
    [sym_float] = ACTIONS(4912),
    [sym_double] = ACTIONS(4912),
    [sym_real] = ACTIONS(4912),
    [sym_ifloat] = ACTIONS(4912),
    [sym_idouble] = ACTIONS(4912),
    [sym_ireal] = ACTIONS(4912),
    [sym_cfloat] = ACTIONS(4912),
    [sym_cdouble] = ACTIONS(4912),
    [sym_creal] = ACTIONS(4912),
    [sym_size_t] = ACTIONS(4912),
    [sym_ptrdiff_t] = ACTIONS(4912),
    [sym_string] = ACTIONS(4912),
    [sym_cstring] = ACTIONS(4912),
    [sym_dstring] = ACTIONS(4912),
    [sym_wstring] = ACTIONS(4912),
    [sym_noreturn] = ACTIONS(4912),
    [sym_true] = ACTIONS(4912),
    [sym_false] = ACTIONS(4912),
    [sym_null] = ACTIONS(4912),
    [sym_super] = ACTIONS(4912),
    [sym_this] = ACTIONS(4912),
    [sym_abstract] = ACTIONS(4912),
    [sym_alias] = ACTIONS(4912),
    [sym_align] = ACTIONS(4912),
    [sym_asm] = ACTIONS(4912),
    [sym_assert] = ACTIONS(4912),
    [sym_auto] = ACTIONS(4912),
    [sym_break] = ACTIONS(4912),
    [sym_case] = ACTIONS(4912),
    [sym_cast] = ACTIONS(4912),
    [sym_catch] = ACTIONS(4912),
    [sym_class] = ACTIONS(4912),
    [sym_const] = ACTIONS(4912),
    [sym_continue] = ACTIONS(4912),
    [sym_debug] = ACTIONS(4912),
    [sym_default] = ACTIONS(4912),
    [sym_delegate] = ACTIONS(4912),
    [sym_delete] = ACTIONS(4912),
    [sym_deprecated] = ACTIONS(4912),
    [sym_do] = ACTIONS(4912),
    [sym_else] = ACTIONS(4912),
    [sym_enum] = ACTIONS(4912),
    [sym_export] = ACTIONS(4912),
    [sym_extern] = ACTIONS(4912),
    [sym_final] = ACTIONS(4912),
    [sym_finally] = ACTIONS(4912),
    [sym_for] = ACTIONS(4912),
    [sym_foreach] = ACTIONS(4912),
    [sym_foreach_reverse] = ACTIONS(4912),
    [sym_function] = ACTIONS(4912),
    [sym_goto] = ACTIONS(4912),
    [sym_if] = ACTIONS(4912),
    [sym_immutable] = ACTIONS(4912),
    [sym_import] = ACTIONS(4912),
    [sym_in] = ACTIONS(4912),
    [sym_inout] = ACTIONS(4912),
    [sym_interface] = ACTIONS(4912),
    [sym_invariant] = ACTIONS(4912),
    [sym_is] = ACTIONS(4912),
    [sym_mixin] = ACTIONS(4912),
    [sym_new] = ACTIONS(4912),
    [sym_nothrow] = ACTIONS(4912),
    [sym_out] = ACTIONS(4912),
    [sym_override] = ACTIONS(4912),
    [sym_package] = ACTIONS(4912),
    [sym_pragma] = ACTIONS(4912),
    [sym_private] = ACTIONS(4912),
    [sym_protected] = ACTIONS(4912),
    [sym_public] = ACTIONS(4912),
    [sym_pure] = ACTIONS(4912),
    [sym_ref] = ACTIONS(4912),
    [sym_return] = ACTIONS(4912),
    [sym_scope] = ACTIONS(4912),
    [sym_shared] = ACTIONS(4912),
    [sym_static] = ACTIONS(4912),
    [sym_struct] = ACTIONS(4912),
    [sym_switch] = ACTIONS(4912),
    [sym_synchronized] = ACTIONS(4912),
    [sym_template] = ACTIONS(4912),
    [sym_throw] = ACTIONS(4912),
    [sym_try] = ACTIONS(4912),
    [sym_typeid] = ACTIONS(4912),
    [sym_typeof] = ACTIONS(4912),
    [sym_union] = ACTIONS(4912),
    [sym_unittest] = ACTIONS(4912),
    [sym_version] = ACTIONS(4912),
    [sym_while] = ACTIONS(4912),
    [sym_with] = ACTIONS(4912),
    [sym_gshared] = ACTIONS(4912),
    [sym_traits] = ACTIONS(4912),
    [sym_vector] = ACTIONS(4912),
    [sym_void] = ACTIONS(4912),
    [anon_sym_BQUOTE] = ACTIONS(4914),
    [anon_sym_r_DQUOTE] = ACTIONS(4914),
    [anon_sym_x_DQUOTE] = ACTIONS(4914),
    [anon_sym_DQUOTE] = ACTIONS(4914),
    [anon_sym_i_BQUOTE] = ACTIONS(4914),
    [anon_sym_i_DQUOTE] = ACTIONS(4914),
    [anon_sym_iq_LBRACE] = ACTIONS(4914),
    [aux_sym_char_literal_token1] = ACTIONS(4914),
    [anon_sym_SQUOTE] = ACTIONS(4912),
    [anon_sym___DATE__] = ACTIONS(4912),
    [anon_sym___FILE__] = ACTIONS(4912),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4912),
    [anon_sym___FUNCTION__] = ACTIONS(4912),
    [anon_sym___LINE__] = ACTIONS(4912),
    [anon_sym___MODULE__] = ACTIONS(4912),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4912),
    [anon_sym___TIME__] = ACTIONS(4912),
    [anon_sym___TIMESTAMP__] = ACTIONS(4912),
    [anon_sym___VENDOR__] = ACTIONS(4912),
    [anon_sym___VERSION__] = ACTIONS(4912),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4914),
    [sym_float_literal] = ACTIONS(4914),
    [sym__string] = ACTIONS(4914),
  },
  [1515] = {
    [sym_identifier] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2782),
    [anon_sym_RBRACE] = ACTIONS(2782),
    [anon_sym_LBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(2782),
    [anon_sym_AMP] = ACTIONS(2782),
    [anon_sym_DASH] = ACTIONS(2784),
    [anon_sym_DASH_DASH] = ACTIONS(2782),
    [anon_sym_PLUS] = ACTIONS(2784),
    [anon_sym_PLUS_PLUS] = ACTIONS(2782),
    [anon_sym_BANG] = ACTIONS(2782),
    [anon_sym_LPAREN] = ACTIONS(2782),
    [anon_sym_RPAREN] = ACTIONS(2782),
    [anon_sym_LBRACK] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2782),
    [anon_sym_DOLLAR] = ACTIONS(2782),
    [anon_sym_STAR] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2782),
    [anon_sym_AT] = ACTIONS(2782),
    [sym_bool] = ACTIONS(2784),
    [sym_byte] = ACTIONS(2784),
    [sym_ubyte] = ACTIONS(2784),
    [sym_char] = ACTIONS(2784),
    [sym_short] = ACTIONS(2784),
    [sym_ushort] = ACTIONS(2784),
    [sym_int] = ACTIONS(2784),
    [sym_uint] = ACTIONS(2784),
    [sym_long] = ACTIONS(2784),
    [sym_ulong] = ACTIONS(2784),
    [sym_cent] = ACTIONS(2784),
    [sym_ucent] = ACTIONS(2784),
    [sym_wchar] = ACTIONS(2784),
    [sym_dchar] = ACTIONS(2784),
    [sym_float] = ACTIONS(2784),
    [sym_double] = ACTIONS(2784),
    [sym_real] = ACTIONS(2784),
    [sym_ifloat] = ACTIONS(2784),
    [sym_idouble] = ACTIONS(2784),
    [sym_ireal] = ACTIONS(2784),
    [sym_cfloat] = ACTIONS(2784),
    [sym_cdouble] = ACTIONS(2784),
    [sym_creal] = ACTIONS(2784),
    [sym_size_t] = ACTIONS(2784),
    [sym_ptrdiff_t] = ACTIONS(2784),
    [sym_string] = ACTIONS(2784),
    [sym_cstring] = ACTIONS(2784),
    [sym_dstring] = ACTIONS(2784),
    [sym_wstring] = ACTIONS(2784),
    [sym_noreturn] = ACTIONS(2784),
    [sym_true] = ACTIONS(2784),
    [sym_false] = ACTIONS(2784),
    [sym_null] = ACTIONS(2784),
    [sym_super] = ACTIONS(2784),
    [sym_this] = ACTIONS(2784),
    [sym_abstract] = ACTIONS(2784),
    [sym_alias] = ACTIONS(2784),
    [sym_align] = ACTIONS(2784),
    [sym_asm] = ACTIONS(2784),
    [sym_assert] = ACTIONS(2784),
    [sym_auto] = ACTIONS(2784),
    [sym_break] = ACTIONS(2784),
    [sym_case] = ACTIONS(2784),
    [sym_cast] = ACTIONS(2784),
    [sym_catch] = ACTIONS(2784),
    [sym_class] = ACTIONS(2784),
    [sym_const] = ACTIONS(2784),
    [sym_continue] = ACTIONS(2784),
    [sym_debug] = ACTIONS(2784),
    [sym_default] = ACTIONS(2784),
    [sym_delegate] = ACTIONS(2784),
    [sym_delete] = ACTIONS(2784),
    [sym_deprecated] = ACTIONS(2784),
    [sym_do] = ACTIONS(2784),
    [sym_else] = ACTIONS(4916),
    [sym_enum] = ACTIONS(2784),
    [sym_export] = ACTIONS(2784),
    [sym_extern] = ACTIONS(2784),
    [sym_final] = ACTIONS(2784),
    [sym_finally] = ACTIONS(2784),
    [sym_for] = ACTIONS(2784),
    [sym_foreach] = ACTIONS(2784),
    [sym_foreach_reverse] = ACTIONS(2784),
    [sym_function] = ACTIONS(2784),
    [sym_goto] = ACTIONS(2784),
    [sym_if] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(2784),
    [sym_import] = ACTIONS(2784),
    [sym_in] = ACTIONS(2784),
    [sym_inout] = ACTIONS(2784),
    [sym_interface] = ACTIONS(2784),
    [sym_invariant] = ACTIONS(2784),
    [sym_is] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2784),
    [sym_new] = ACTIONS(2784),
    [sym_nothrow] = ACTIONS(2784),
    [sym_out] = ACTIONS(2784),
    [sym_override] = ACTIONS(2784),
    [sym_package] = ACTIONS(2784),
    [sym_pragma] = ACTIONS(2784),
    [sym_private] = ACTIONS(2784),
    [sym_protected] = ACTIONS(2784),
    [sym_public] = ACTIONS(2784),
    [sym_pure] = ACTIONS(2784),
    [sym_ref] = ACTIONS(2784),
    [sym_return] = ACTIONS(2784),
    [sym_scope] = ACTIONS(2784),
    [sym_shared] = ACTIONS(2784),
    [sym_static] = ACTIONS(2784),
    [sym_struct] = ACTIONS(2784),
    [sym_switch] = ACTIONS(2784),
    [sym_synchronized] = ACTIONS(2784),
    [sym_template] = ACTIONS(2784),
    [sym_throw] = ACTIONS(2784),
    [sym_try] = ACTIONS(2784),
    [sym_typeid] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(2784),
    [sym_union] = ACTIONS(2784),
    [sym_unittest] = ACTIONS(2784),
    [sym_version] = ACTIONS(2784),
    [sym_while] = ACTIONS(2784),
    [sym_with] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(2784),
    [sym_traits] = ACTIONS(2784),
    [sym_vector] = ACTIONS(2784),
    [sym_void] = ACTIONS(2784),
    [anon_sym_BQUOTE] = ACTIONS(2782),
    [anon_sym_r_DQUOTE] = ACTIONS(2782),
    [anon_sym_x_DQUOTE] = ACTIONS(2782),
    [anon_sym_DQUOTE] = ACTIONS(2782),
    [anon_sym_i_BQUOTE] = ACTIONS(2782),
    [anon_sym_i_DQUOTE] = ACTIONS(2782),
    [anon_sym_iq_LBRACE] = ACTIONS(2782),
    [aux_sym_char_literal_token1] = ACTIONS(2782),
    [anon_sym_SQUOTE] = ACTIONS(2784),
    [anon_sym___DATE__] = ACTIONS(2784),
    [anon_sym___FILE__] = ACTIONS(2784),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2784),
    [anon_sym___FUNCTION__] = ACTIONS(2784),
    [anon_sym___LINE__] = ACTIONS(2784),
    [anon_sym___MODULE__] = ACTIONS(2784),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2784),
    [anon_sym___TIME__] = ACTIONS(2784),
    [anon_sym___TIMESTAMP__] = ACTIONS(2784),
    [anon_sym___VENDOR__] = ACTIONS(2784),
    [anon_sym___VERSION__] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2782),
    [sym_float_literal] = ACTIONS(2782),
    [sym__string] = ACTIONS(2782),
  },
  [1516] = {
    [sym_identifier] = ACTIONS(4918),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4920),
    [anon_sym_RBRACE] = ACTIONS(4920),
    [anon_sym_LBRACE] = ACTIONS(4920),
    [anon_sym_DOT] = ACTIONS(4920),
    [anon_sym_AMP] = ACTIONS(4920),
    [anon_sym_DASH] = ACTIONS(4918),
    [anon_sym_DASH_DASH] = ACTIONS(4920),
    [anon_sym_PLUS] = ACTIONS(4918),
    [anon_sym_PLUS_PLUS] = ACTIONS(4920),
    [anon_sym_BANG] = ACTIONS(4920),
    [anon_sym_LPAREN] = ACTIONS(4920),
    [anon_sym_RPAREN] = ACTIONS(4920),
    [anon_sym_LBRACK] = ACTIONS(4920),
    [anon_sym_SEMI] = ACTIONS(4920),
    [anon_sym_DOLLAR] = ACTIONS(4920),
    [anon_sym_STAR] = ACTIONS(4920),
    [anon_sym_TILDE] = ACTIONS(4920),
    [anon_sym_AT] = ACTIONS(4920),
    [sym_bool] = ACTIONS(4918),
    [sym_byte] = ACTIONS(4918),
    [sym_ubyte] = ACTIONS(4918),
    [sym_char] = ACTIONS(4918),
    [sym_short] = ACTIONS(4918),
    [sym_ushort] = ACTIONS(4918),
    [sym_int] = ACTIONS(4918),
    [sym_uint] = ACTIONS(4918),
    [sym_long] = ACTIONS(4918),
    [sym_ulong] = ACTIONS(4918),
    [sym_cent] = ACTIONS(4918),
    [sym_ucent] = ACTIONS(4918),
    [sym_wchar] = ACTIONS(4918),
    [sym_dchar] = ACTIONS(4918),
    [sym_float] = ACTIONS(4918),
    [sym_double] = ACTIONS(4918),
    [sym_real] = ACTIONS(4918),
    [sym_ifloat] = ACTIONS(4918),
    [sym_idouble] = ACTIONS(4918),
    [sym_ireal] = ACTIONS(4918),
    [sym_cfloat] = ACTIONS(4918),
    [sym_cdouble] = ACTIONS(4918),
    [sym_creal] = ACTIONS(4918),
    [sym_size_t] = ACTIONS(4918),
    [sym_ptrdiff_t] = ACTIONS(4918),
    [sym_string] = ACTIONS(4918),
    [sym_cstring] = ACTIONS(4918),
    [sym_dstring] = ACTIONS(4918),
    [sym_wstring] = ACTIONS(4918),
    [sym_noreturn] = ACTIONS(4918),
    [sym_true] = ACTIONS(4918),
    [sym_false] = ACTIONS(4918),
    [sym_null] = ACTIONS(4918),
    [sym_super] = ACTIONS(4918),
    [sym_this] = ACTIONS(4918),
    [sym_abstract] = ACTIONS(4918),
    [sym_alias] = ACTIONS(4918),
    [sym_align] = ACTIONS(4918),
    [sym_asm] = ACTIONS(4918),
    [sym_assert] = ACTIONS(4918),
    [sym_auto] = ACTIONS(4918),
    [sym_break] = ACTIONS(4918),
    [sym_case] = ACTIONS(4918),
    [sym_cast] = ACTIONS(4918),
    [sym_catch] = ACTIONS(4918),
    [sym_class] = ACTIONS(4918),
    [sym_const] = ACTIONS(4918),
    [sym_continue] = ACTIONS(4918),
    [sym_debug] = ACTIONS(4918),
    [sym_default] = ACTIONS(4918),
    [sym_delegate] = ACTIONS(4918),
    [sym_delete] = ACTIONS(4918),
    [sym_deprecated] = ACTIONS(4918),
    [sym_do] = ACTIONS(4918),
    [sym_else] = ACTIONS(4918),
    [sym_enum] = ACTIONS(4918),
    [sym_export] = ACTIONS(4918),
    [sym_extern] = ACTIONS(4918),
    [sym_final] = ACTIONS(4918),
    [sym_finally] = ACTIONS(4918),
    [sym_for] = ACTIONS(4918),
    [sym_foreach] = ACTIONS(4918),
    [sym_foreach_reverse] = ACTIONS(4918),
    [sym_function] = ACTIONS(4918),
    [sym_goto] = ACTIONS(4918),
    [sym_if] = ACTIONS(4918),
    [sym_immutable] = ACTIONS(4918),
    [sym_import] = ACTIONS(4918),
    [sym_in] = ACTIONS(4918),
    [sym_inout] = ACTIONS(4918),
    [sym_interface] = ACTIONS(4918),
    [sym_invariant] = ACTIONS(4918),
    [sym_is] = ACTIONS(4918),
    [sym_mixin] = ACTIONS(4918),
    [sym_new] = ACTIONS(4918),
    [sym_nothrow] = ACTIONS(4918),
    [sym_out] = ACTIONS(4918),
    [sym_override] = ACTIONS(4918),
    [sym_package] = ACTIONS(4918),
    [sym_pragma] = ACTIONS(4918),
    [sym_private] = ACTIONS(4918),
    [sym_protected] = ACTIONS(4918),
    [sym_public] = ACTIONS(4918),
    [sym_pure] = ACTIONS(4918),
    [sym_ref] = ACTIONS(4918),
    [sym_return] = ACTIONS(4918),
    [sym_scope] = ACTIONS(4918),
    [sym_shared] = ACTIONS(4918),
    [sym_static] = ACTIONS(4918),
    [sym_struct] = ACTIONS(4918),
    [sym_switch] = ACTIONS(4918),
    [sym_synchronized] = ACTIONS(4918),
    [sym_template] = ACTIONS(4918),
    [sym_throw] = ACTIONS(4918),
    [sym_try] = ACTIONS(4918),
    [sym_typeid] = ACTIONS(4918),
    [sym_typeof] = ACTIONS(4918),
    [sym_union] = ACTIONS(4918),
    [sym_unittest] = ACTIONS(4918),
    [sym_version] = ACTIONS(4918),
    [sym_while] = ACTIONS(4918),
    [sym_with] = ACTIONS(4918),
    [sym_gshared] = ACTIONS(4918),
    [sym_traits] = ACTIONS(4918),
    [sym_vector] = ACTIONS(4918),
    [sym_void] = ACTIONS(4918),
    [anon_sym_BQUOTE] = ACTIONS(4920),
    [anon_sym_r_DQUOTE] = ACTIONS(4920),
    [anon_sym_x_DQUOTE] = ACTIONS(4920),
    [anon_sym_DQUOTE] = ACTIONS(4920),
    [anon_sym_i_BQUOTE] = ACTIONS(4920),
    [anon_sym_i_DQUOTE] = ACTIONS(4920),
    [anon_sym_iq_LBRACE] = ACTIONS(4920),
    [aux_sym_char_literal_token1] = ACTIONS(4920),
    [anon_sym_SQUOTE] = ACTIONS(4918),
    [anon_sym___DATE__] = ACTIONS(4918),
    [anon_sym___FILE__] = ACTIONS(4918),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4918),
    [anon_sym___FUNCTION__] = ACTIONS(4918),
    [anon_sym___LINE__] = ACTIONS(4918),
    [anon_sym___MODULE__] = ACTIONS(4918),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4918),
    [anon_sym___TIME__] = ACTIONS(4918),
    [anon_sym___TIMESTAMP__] = ACTIONS(4918),
    [anon_sym___VENDOR__] = ACTIONS(4918),
    [anon_sym___VERSION__] = ACTIONS(4918),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4920),
    [sym_float_literal] = ACTIONS(4920),
    [sym__string] = ACTIONS(4920),
  },
  [1517] = {
    [sym_identifier] = ACTIONS(4922),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4924),
    [anon_sym_RBRACE] = ACTIONS(4924),
    [anon_sym_LBRACE] = ACTIONS(4924),
    [anon_sym_DOT] = ACTIONS(4924),
    [anon_sym_AMP] = ACTIONS(4924),
    [anon_sym_DASH] = ACTIONS(4922),
    [anon_sym_DASH_DASH] = ACTIONS(4924),
    [anon_sym_PLUS] = ACTIONS(4922),
    [anon_sym_PLUS_PLUS] = ACTIONS(4924),
    [anon_sym_BANG] = ACTIONS(4924),
    [anon_sym_LPAREN] = ACTIONS(4924),
    [anon_sym_RPAREN] = ACTIONS(4924),
    [anon_sym_LBRACK] = ACTIONS(4924),
    [anon_sym_SEMI] = ACTIONS(4924),
    [anon_sym_DOLLAR] = ACTIONS(4924),
    [anon_sym_STAR] = ACTIONS(4924),
    [anon_sym_TILDE] = ACTIONS(4924),
    [anon_sym_AT] = ACTIONS(4924),
    [sym_bool] = ACTIONS(4922),
    [sym_byte] = ACTIONS(4922),
    [sym_ubyte] = ACTIONS(4922),
    [sym_char] = ACTIONS(4922),
    [sym_short] = ACTIONS(4922),
    [sym_ushort] = ACTIONS(4922),
    [sym_int] = ACTIONS(4922),
    [sym_uint] = ACTIONS(4922),
    [sym_long] = ACTIONS(4922),
    [sym_ulong] = ACTIONS(4922),
    [sym_cent] = ACTIONS(4922),
    [sym_ucent] = ACTIONS(4922),
    [sym_wchar] = ACTIONS(4922),
    [sym_dchar] = ACTIONS(4922),
    [sym_float] = ACTIONS(4922),
    [sym_double] = ACTIONS(4922),
    [sym_real] = ACTIONS(4922),
    [sym_ifloat] = ACTIONS(4922),
    [sym_idouble] = ACTIONS(4922),
    [sym_ireal] = ACTIONS(4922),
    [sym_cfloat] = ACTIONS(4922),
    [sym_cdouble] = ACTIONS(4922),
    [sym_creal] = ACTIONS(4922),
    [sym_size_t] = ACTIONS(4922),
    [sym_ptrdiff_t] = ACTIONS(4922),
    [sym_string] = ACTIONS(4922),
    [sym_cstring] = ACTIONS(4922),
    [sym_dstring] = ACTIONS(4922),
    [sym_wstring] = ACTIONS(4922),
    [sym_noreturn] = ACTIONS(4922),
    [sym_true] = ACTIONS(4922),
    [sym_false] = ACTIONS(4922),
    [sym_null] = ACTIONS(4922),
    [sym_super] = ACTIONS(4922),
    [sym_this] = ACTIONS(4922),
    [sym_abstract] = ACTIONS(4922),
    [sym_alias] = ACTIONS(4922),
    [sym_align] = ACTIONS(4922),
    [sym_asm] = ACTIONS(4922),
    [sym_assert] = ACTIONS(4922),
    [sym_auto] = ACTIONS(4922),
    [sym_break] = ACTIONS(4922),
    [sym_case] = ACTIONS(4922),
    [sym_cast] = ACTIONS(4922),
    [sym_catch] = ACTIONS(4922),
    [sym_class] = ACTIONS(4922),
    [sym_const] = ACTIONS(4922),
    [sym_continue] = ACTIONS(4922),
    [sym_debug] = ACTIONS(4922),
    [sym_default] = ACTIONS(4922),
    [sym_delegate] = ACTIONS(4922),
    [sym_delete] = ACTIONS(4922),
    [sym_deprecated] = ACTIONS(4922),
    [sym_do] = ACTIONS(4922),
    [sym_else] = ACTIONS(4922),
    [sym_enum] = ACTIONS(4922),
    [sym_export] = ACTIONS(4922),
    [sym_extern] = ACTIONS(4922),
    [sym_final] = ACTIONS(4922),
    [sym_finally] = ACTIONS(4922),
    [sym_for] = ACTIONS(4922),
    [sym_foreach] = ACTIONS(4922),
    [sym_foreach_reverse] = ACTIONS(4922),
    [sym_function] = ACTIONS(4922),
    [sym_goto] = ACTIONS(4922),
    [sym_if] = ACTIONS(4922),
    [sym_immutable] = ACTIONS(4922),
    [sym_import] = ACTIONS(4922),
    [sym_in] = ACTIONS(4922),
    [sym_inout] = ACTIONS(4922),
    [sym_interface] = ACTIONS(4922),
    [sym_invariant] = ACTIONS(4922),
    [sym_is] = ACTIONS(4922),
    [sym_mixin] = ACTIONS(4922),
    [sym_new] = ACTIONS(4922),
    [sym_nothrow] = ACTIONS(4922),
    [sym_out] = ACTIONS(4922),
    [sym_override] = ACTIONS(4922),
    [sym_package] = ACTIONS(4922),
    [sym_pragma] = ACTIONS(4922),
    [sym_private] = ACTIONS(4922),
    [sym_protected] = ACTIONS(4922),
    [sym_public] = ACTIONS(4922),
    [sym_pure] = ACTIONS(4922),
    [sym_ref] = ACTIONS(4922),
    [sym_return] = ACTIONS(4922),
    [sym_scope] = ACTIONS(4922),
    [sym_shared] = ACTIONS(4922),
    [sym_static] = ACTIONS(4922),
    [sym_struct] = ACTIONS(4922),
    [sym_switch] = ACTIONS(4922),
    [sym_synchronized] = ACTIONS(4922),
    [sym_template] = ACTIONS(4922),
    [sym_throw] = ACTIONS(4922),
    [sym_try] = ACTIONS(4922),
    [sym_typeid] = ACTIONS(4922),
    [sym_typeof] = ACTIONS(4922),
    [sym_union] = ACTIONS(4922),
    [sym_unittest] = ACTIONS(4922),
    [sym_version] = ACTIONS(4922),
    [sym_while] = ACTIONS(4922),
    [sym_with] = ACTIONS(4922),
    [sym_gshared] = ACTIONS(4922),
    [sym_traits] = ACTIONS(4922),
    [sym_vector] = ACTIONS(4922),
    [sym_void] = ACTIONS(4922),
    [anon_sym_BQUOTE] = ACTIONS(4924),
    [anon_sym_r_DQUOTE] = ACTIONS(4924),
    [anon_sym_x_DQUOTE] = ACTIONS(4924),
    [anon_sym_DQUOTE] = ACTIONS(4924),
    [anon_sym_i_BQUOTE] = ACTIONS(4924),
    [anon_sym_i_DQUOTE] = ACTIONS(4924),
    [anon_sym_iq_LBRACE] = ACTIONS(4924),
    [aux_sym_char_literal_token1] = ACTIONS(4924),
    [anon_sym_SQUOTE] = ACTIONS(4922),
    [anon_sym___DATE__] = ACTIONS(4922),
    [anon_sym___FILE__] = ACTIONS(4922),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4922),
    [anon_sym___FUNCTION__] = ACTIONS(4922),
    [anon_sym___LINE__] = ACTIONS(4922),
    [anon_sym___MODULE__] = ACTIONS(4922),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4922),
    [anon_sym___TIME__] = ACTIONS(4922),
    [anon_sym___TIMESTAMP__] = ACTIONS(4922),
    [anon_sym___VENDOR__] = ACTIONS(4922),
    [anon_sym___VERSION__] = ACTIONS(4922),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4924),
    [sym_float_literal] = ACTIONS(4924),
    [sym__string] = ACTIONS(4924),
  },
  [1518] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4618),
    [anon_sym_RBRACE] = ACTIONS(4618),
    [anon_sym_LBRACE] = ACTIONS(4926),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_AMP] = ACTIONS(4618),
    [anon_sym_DASH] = ACTIONS(4616),
    [anon_sym_DASH_DASH] = ACTIONS(4618),
    [anon_sym_PLUS] = ACTIONS(4616),
    [anon_sym_PLUS_PLUS] = ACTIONS(4618),
    [anon_sym_BANG] = ACTIONS(4618),
    [anon_sym_LPAREN] = ACTIONS(4618),
    [anon_sym_RPAREN] = ACTIONS(4618),
    [anon_sym_LBRACK] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4926),
    [anon_sym_DOLLAR] = ACTIONS(4618),
    [anon_sym_STAR] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_true] = ACTIONS(4616),
    [sym_false] = ACTIONS(4616),
    [sym_null] = ACTIONS(4616),
    [sym_super] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_asm] = ACTIONS(4616),
    [sym_assert] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_break] = ACTIONS(4616),
    [sym_case] = ACTIONS(4616),
    [sym_cast] = ACTIONS(4616),
    [sym_catch] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_continue] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_default] = ACTIONS(4616),
    [sym_delegate] = ACTIONS(4616),
    [sym_delete] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_do] = ACTIONS(4929),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_finally] = ACTIONS(4616),
    [sym_for] = ACTIONS(4616),
    [sym_foreach] = ACTIONS(4616),
    [sym_foreach_reverse] = ACTIONS(4616),
    [sym_function] = ACTIONS(4616),
    [sym_goto] = ACTIONS(4616),
    [sym_if] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(4929),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_is] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_new] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_out] = ACTIONS(4929),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_switch] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_throw] = ACTIONS(4616),
    [sym_try] = ACTIONS(4616),
    [sym_typeid] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_with] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [anon_sym_BQUOTE] = ACTIONS(4618),
    [anon_sym_r_DQUOTE] = ACTIONS(4618),
    [anon_sym_x_DQUOTE] = ACTIONS(4618),
    [anon_sym_DQUOTE] = ACTIONS(4618),
    [anon_sym_i_BQUOTE] = ACTIONS(4618),
    [anon_sym_i_DQUOTE] = ACTIONS(4618),
    [anon_sym_iq_LBRACE] = ACTIONS(4618),
    [aux_sym_char_literal_token1] = ACTIONS(4618),
    [anon_sym_SQUOTE] = ACTIONS(4616),
    [anon_sym___DATE__] = ACTIONS(4616),
    [anon_sym___FILE__] = ACTIONS(4616),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4616),
    [anon_sym___FUNCTION__] = ACTIONS(4616),
    [anon_sym___LINE__] = ACTIONS(4616),
    [anon_sym___MODULE__] = ACTIONS(4616),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4616),
    [anon_sym___TIME__] = ACTIONS(4616),
    [anon_sym___TIMESTAMP__] = ACTIONS(4616),
    [anon_sym___VENDOR__] = ACTIONS(4616),
    [anon_sym___VERSION__] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4618),
    [sym_float_literal] = ACTIONS(4618),
    [sym__string] = ACTIONS(4618),
  },
  [1519] = {
    [sym_identifier] = ACTIONS(4932),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4934),
    [anon_sym_RBRACE] = ACTIONS(4934),
    [anon_sym_LBRACE] = ACTIONS(4934),
    [anon_sym_DOT] = ACTIONS(4934),
    [anon_sym_AMP] = ACTIONS(4934),
    [anon_sym_DASH] = ACTIONS(4932),
    [anon_sym_DASH_DASH] = ACTIONS(4934),
    [anon_sym_PLUS] = ACTIONS(4932),
    [anon_sym_PLUS_PLUS] = ACTIONS(4934),
    [anon_sym_BANG] = ACTIONS(4934),
    [anon_sym_LPAREN] = ACTIONS(4934),
    [anon_sym_RPAREN] = ACTIONS(4934),
    [anon_sym_LBRACK] = ACTIONS(4934),
    [anon_sym_SEMI] = ACTIONS(4934),
    [anon_sym_DOLLAR] = ACTIONS(4934),
    [anon_sym_STAR] = ACTIONS(4934),
    [anon_sym_TILDE] = ACTIONS(4934),
    [anon_sym_AT] = ACTIONS(4934),
    [sym_bool] = ACTIONS(4932),
    [sym_byte] = ACTIONS(4932),
    [sym_ubyte] = ACTIONS(4932),
    [sym_char] = ACTIONS(4932),
    [sym_short] = ACTIONS(4932),
    [sym_ushort] = ACTIONS(4932),
    [sym_int] = ACTIONS(4932),
    [sym_uint] = ACTIONS(4932),
    [sym_long] = ACTIONS(4932),
    [sym_ulong] = ACTIONS(4932),
    [sym_cent] = ACTIONS(4932),
    [sym_ucent] = ACTIONS(4932),
    [sym_wchar] = ACTIONS(4932),
    [sym_dchar] = ACTIONS(4932),
    [sym_float] = ACTIONS(4932),
    [sym_double] = ACTIONS(4932),
    [sym_real] = ACTIONS(4932),
    [sym_ifloat] = ACTIONS(4932),
    [sym_idouble] = ACTIONS(4932),
    [sym_ireal] = ACTIONS(4932),
    [sym_cfloat] = ACTIONS(4932),
    [sym_cdouble] = ACTIONS(4932),
    [sym_creal] = ACTIONS(4932),
    [sym_size_t] = ACTIONS(4932),
    [sym_ptrdiff_t] = ACTIONS(4932),
    [sym_string] = ACTIONS(4932),
    [sym_cstring] = ACTIONS(4932),
    [sym_dstring] = ACTIONS(4932),
    [sym_wstring] = ACTIONS(4932),
    [sym_noreturn] = ACTIONS(4932),
    [sym_true] = ACTIONS(4932),
    [sym_false] = ACTIONS(4932),
    [sym_null] = ACTIONS(4932),
    [sym_super] = ACTIONS(4932),
    [sym_this] = ACTIONS(4932),
    [sym_abstract] = ACTIONS(4932),
    [sym_alias] = ACTIONS(4932),
    [sym_align] = ACTIONS(4932),
    [sym_asm] = ACTIONS(4932),
    [sym_assert] = ACTIONS(4932),
    [sym_auto] = ACTIONS(4932),
    [sym_break] = ACTIONS(4932),
    [sym_case] = ACTIONS(4932),
    [sym_cast] = ACTIONS(4932),
    [sym_catch] = ACTIONS(4932),
    [sym_class] = ACTIONS(4932),
    [sym_const] = ACTIONS(4932),
    [sym_continue] = ACTIONS(4932),
    [sym_debug] = ACTIONS(4932),
    [sym_default] = ACTIONS(4932),
    [sym_delegate] = ACTIONS(4932),
    [sym_delete] = ACTIONS(4932),
    [sym_deprecated] = ACTIONS(4932),
    [sym_do] = ACTIONS(4932),
    [sym_else] = ACTIONS(4932),
    [sym_enum] = ACTIONS(4932),
    [sym_export] = ACTIONS(4932),
    [sym_extern] = ACTIONS(4932),
    [sym_final] = ACTIONS(4932),
    [sym_finally] = ACTIONS(4932),
    [sym_for] = ACTIONS(4932),
    [sym_foreach] = ACTIONS(4932),
    [sym_foreach_reverse] = ACTIONS(4932),
    [sym_function] = ACTIONS(4932),
    [sym_goto] = ACTIONS(4932),
    [sym_if] = ACTIONS(4932),
    [sym_immutable] = ACTIONS(4932),
    [sym_import] = ACTIONS(4932),
    [sym_in] = ACTIONS(4932),
    [sym_inout] = ACTIONS(4932),
    [sym_interface] = ACTIONS(4932),
    [sym_invariant] = ACTIONS(4932),
    [sym_is] = ACTIONS(4932),
    [sym_mixin] = ACTIONS(4932),
    [sym_new] = ACTIONS(4932),
    [sym_nothrow] = ACTIONS(4932),
    [sym_out] = ACTIONS(4932),
    [sym_override] = ACTIONS(4932),
    [sym_package] = ACTIONS(4932),
    [sym_pragma] = ACTIONS(4932),
    [sym_private] = ACTIONS(4932),
    [sym_protected] = ACTIONS(4932),
    [sym_public] = ACTIONS(4932),
    [sym_pure] = ACTIONS(4932),
    [sym_ref] = ACTIONS(4932),
    [sym_return] = ACTIONS(4932),
    [sym_scope] = ACTIONS(4932),
    [sym_shared] = ACTIONS(4932),
    [sym_static] = ACTIONS(4932),
    [sym_struct] = ACTIONS(4932),
    [sym_switch] = ACTIONS(4932),
    [sym_synchronized] = ACTIONS(4932),
    [sym_template] = ACTIONS(4932),
    [sym_throw] = ACTIONS(4932),
    [sym_try] = ACTIONS(4932),
    [sym_typeid] = ACTIONS(4932),
    [sym_typeof] = ACTIONS(4932),
    [sym_union] = ACTIONS(4932),
    [sym_unittest] = ACTIONS(4932),
    [sym_version] = ACTIONS(4932),
    [sym_while] = ACTIONS(4932),
    [sym_with] = ACTIONS(4932),
    [sym_gshared] = ACTIONS(4932),
    [sym_traits] = ACTIONS(4932),
    [sym_vector] = ACTIONS(4932),
    [sym_void] = ACTIONS(4932),
    [anon_sym_BQUOTE] = ACTIONS(4934),
    [anon_sym_r_DQUOTE] = ACTIONS(4934),
    [anon_sym_x_DQUOTE] = ACTIONS(4934),
    [anon_sym_DQUOTE] = ACTIONS(4934),
    [anon_sym_i_BQUOTE] = ACTIONS(4934),
    [anon_sym_i_DQUOTE] = ACTIONS(4934),
    [anon_sym_iq_LBRACE] = ACTIONS(4934),
    [aux_sym_char_literal_token1] = ACTIONS(4934),
    [anon_sym_SQUOTE] = ACTIONS(4932),
    [anon_sym___DATE__] = ACTIONS(4932),
    [anon_sym___FILE__] = ACTIONS(4932),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4932),
    [anon_sym___FUNCTION__] = ACTIONS(4932),
    [anon_sym___LINE__] = ACTIONS(4932),
    [anon_sym___MODULE__] = ACTIONS(4932),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4932),
    [anon_sym___TIME__] = ACTIONS(4932),
    [anon_sym___TIMESTAMP__] = ACTIONS(4932),
    [anon_sym___VENDOR__] = ACTIONS(4932),
    [anon_sym___VERSION__] = ACTIONS(4932),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4934),
    [sym_float_literal] = ACTIONS(4934),
    [sym__string] = ACTIONS(4934),
  },
  [1520] = {
    [sym_identifier] = ACTIONS(4936),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4938),
    [anon_sym_RBRACE] = ACTIONS(4938),
    [anon_sym_LBRACE] = ACTIONS(4938),
    [anon_sym_DOT] = ACTIONS(4938),
    [anon_sym_AMP] = ACTIONS(4938),
    [anon_sym_DASH] = ACTIONS(4936),
    [anon_sym_DASH_DASH] = ACTIONS(4938),
    [anon_sym_PLUS] = ACTIONS(4936),
    [anon_sym_PLUS_PLUS] = ACTIONS(4938),
    [anon_sym_BANG] = ACTIONS(4938),
    [anon_sym_LPAREN] = ACTIONS(4938),
    [anon_sym_RPAREN] = ACTIONS(4938),
    [anon_sym_LBRACK] = ACTIONS(4938),
    [anon_sym_SEMI] = ACTIONS(4938),
    [anon_sym_DOLLAR] = ACTIONS(4938),
    [anon_sym_STAR] = ACTIONS(4938),
    [anon_sym_TILDE] = ACTIONS(4938),
    [anon_sym_AT] = ACTIONS(4938),
    [sym_bool] = ACTIONS(4936),
    [sym_byte] = ACTIONS(4936),
    [sym_ubyte] = ACTIONS(4936),
    [sym_char] = ACTIONS(4936),
    [sym_short] = ACTIONS(4936),
    [sym_ushort] = ACTIONS(4936),
    [sym_int] = ACTIONS(4936),
    [sym_uint] = ACTIONS(4936),
    [sym_long] = ACTIONS(4936),
    [sym_ulong] = ACTIONS(4936),
    [sym_cent] = ACTIONS(4936),
    [sym_ucent] = ACTIONS(4936),
    [sym_wchar] = ACTIONS(4936),
    [sym_dchar] = ACTIONS(4936),
    [sym_float] = ACTIONS(4936),
    [sym_double] = ACTIONS(4936),
    [sym_real] = ACTIONS(4936),
    [sym_ifloat] = ACTIONS(4936),
    [sym_idouble] = ACTIONS(4936),
    [sym_ireal] = ACTIONS(4936),
    [sym_cfloat] = ACTIONS(4936),
    [sym_cdouble] = ACTIONS(4936),
    [sym_creal] = ACTIONS(4936),
    [sym_size_t] = ACTIONS(4936),
    [sym_ptrdiff_t] = ACTIONS(4936),
    [sym_string] = ACTIONS(4936),
    [sym_cstring] = ACTIONS(4936),
    [sym_dstring] = ACTIONS(4936),
    [sym_wstring] = ACTIONS(4936),
    [sym_noreturn] = ACTIONS(4936),
    [sym_true] = ACTIONS(4936),
    [sym_false] = ACTIONS(4936),
    [sym_null] = ACTIONS(4936),
    [sym_super] = ACTIONS(4936),
    [sym_this] = ACTIONS(4936),
    [sym_abstract] = ACTIONS(4936),
    [sym_alias] = ACTIONS(4936),
    [sym_align] = ACTIONS(4936),
    [sym_asm] = ACTIONS(4936),
    [sym_assert] = ACTIONS(4936),
    [sym_auto] = ACTIONS(4936),
    [sym_break] = ACTIONS(4936),
    [sym_case] = ACTIONS(4936),
    [sym_cast] = ACTIONS(4936),
    [sym_catch] = ACTIONS(4936),
    [sym_class] = ACTIONS(4936),
    [sym_const] = ACTIONS(4936),
    [sym_continue] = ACTIONS(4936),
    [sym_debug] = ACTIONS(4936),
    [sym_default] = ACTIONS(4936),
    [sym_delegate] = ACTIONS(4936),
    [sym_delete] = ACTIONS(4936),
    [sym_deprecated] = ACTIONS(4936),
    [sym_do] = ACTIONS(4936),
    [sym_else] = ACTIONS(4936),
    [sym_enum] = ACTIONS(4936),
    [sym_export] = ACTIONS(4936),
    [sym_extern] = ACTIONS(4936),
    [sym_final] = ACTIONS(4936),
    [sym_finally] = ACTIONS(4936),
    [sym_for] = ACTIONS(4936),
    [sym_foreach] = ACTIONS(4936),
    [sym_foreach_reverse] = ACTIONS(4936),
    [sym_function] = ACTIONS(4936),
    [sym_goto] = ACTIONS(4936),
    [sym_if] = ACTIONS(4936),
    [sym_immutable] = ACTIONS(4936),
    [sym_import] = ACTIONS(4936),
    [sym_in] = ACTIONS(4936),
    [sym_inout] = ACTIONS(4936),
    [sym_interface] = ACTIONS(4936),
    [sym_invariant] = ACTIONS(4936),
    [sym_is] = ACTIONS(4936),
    [sym_mixin] = ACTIONS(4936),
    [sym_new] = ACTIONS(4936),
    [sym_nothrow] = ACTIONS(4936),
    [sym_out] = ACTIONS(4936),
    [sym_override] = ACTIONS(4936),
    [sym_package] = ACTIONS(4936),
    [sym_pragma] = ACTIONS(4936),
    [sym_private] = ACTIONS(4936),
    [sym_protected] = ACTIONS(4936),
    [sym_public] = ACTIONS(4936),
    [sym_pure] = ACTIONS(4936),
    [sym_ref] = ACTIONS(4936),
    [sym_return] = ACTIONS(4936),
    [sym_scope] = ACTIONS(4936),
    [sym_shared] = ACTIONS(4936),
    [sym_static] = ACTIONS(4936),
    [sym_struct] = ACTIONS(4936),
    [sym_switch] = ACTIONS(4936),
    [sym_synchronized] = ACTIONS(4936),
    [sym_template] = ACTIONS(4936),
    [sym_throw] = ACTIONS(4936),
    [sym_try] = ACTIONS(4936),
    [sym_typeid] = ACTIONS(4936),
    [sym_typeof] = ACTIONS(4936),
    [sym_union] = ACTIONS(4936),
    [sym_unittest] = ACTIONS(4936),
    [sym_version] = ACTIONS(4936),
    [sym_while] = ACTIONS(4936),
    [sym_with] = ACTIONS(4936),
    [sym_gshared] = ACTIONS(4936),
    [sym_traits] = ACTIONS(4936),
    [sym_vector] = ACTIONS(4936),
    [sym_void] = ACTIONS(4936),
    [anon_sym_BQUOTE] = ACTIONS(4938),
    [anon_sym_r_DQUOTE] = ACTIONS(4938),
    [anon_sym_x_DQUOTE] = ACTIONS(4938),
    [anon_sym_DQUOTE] = ACTIONS(4938),
    [anon_sym_i_BQUOTE] = ACTIONS(4938),
    [anon_sym_i_DQUOTE] = ACTIONS(4938),
    [anon_sym_iq_LBRACE] = ACTIONS(4938),
    [aux_sym_char_literal_token1] = ACTIONS(4938),
    [anon_sym_SQUOTE] = ACTIONS(4936),
    [anon_sym___DATE__] = ACTIONS(4936),
    [anon_sym___FILE__] = ACTIONS(4936),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4936),
    [anon_sym___FUNCTION__] = ACTIONS(4936),
    [anon_sym___LINE__] = ACTIONS(4936),
    [anon_sym___MODULE__] = ACTIONS(4936),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4936),
    [anon_sym___TIME__] = ACTIONS(4936),
    [anon_sym___TIMESTAMP__] = ACTIONS(4936),
    [anon_sym___VENDOR__] = ACTIONS(4936),
    [anon_sym___VERSION__] = ACTIONS(4936),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4938),
    [sym_float_literal] = ACTIONS(4938),
    [sym__string] = ACTIONS(4938),
  },
  [1521] = {
    [sym_identifier] = ACTIONS(4940),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4942),
    [anon_sym_RBRACE] = ACTIONS(4942),
    [anon_sym_LBRACE] = ACTIONS(4942),
    [anon_sym_DOT] = ACTIONS(4942),
    [anon_sym_AMP] = ACTIONS(4942),
    [anon_sym_DASH] = ACTIONS(4940),
    [anon_sym_DASH_DASH] = ACTIONS(4942),
    [anon_sym_PLUS] = ACTIONS(4940),
    [anon_sym_PLUS_PLUS] = ACTIONS(4942),
    [anon_sym_BANG] = ACTIONS(4942),
    [anon_sym_LPAREN] = ACTIONS(4942),
    [anon_sym_RPAREN] = ACTIONS(4942),
    [anon_sym_LBRACK] = ACTIONS(4942),
    [anon_sym_SEMI] = ACTIONS(4942),
    [anon_sym_DOLLAR] = ACTIONS(4942),
    [anon_sym_STAR] = ACTIONS(4942),
    [anon_sym_TILDE] = ACTIONS(4942),
    [anon_sym_AT] = ACTIONS(4942),
    [sym_bool] = ACTIONS(4940),
    [sym_byte] = ACTIONS(4940),
    [sym_ubyte] = ACTIONS(4940),
    [sym_char] = ACTIONS(4940),
    [sym_short] = ACTIONS(4940),
    [sym_ushort] = ACTIONS(4940),
    [sym_int] = ACTIONS(4940),
    [sym_uint] = ACTIONS(4940),
    [sym_long] = ACTIONS(4940),
    [sym_ulong] = ACTIONS(4940),
    [sym_cent] = ACTIONS(4940),
    [sym_ucent] = ACTIONS(4940),
    [sym_wchar] = ACTIONS(4940),
    [sym_dchar] = ACTIONS(4940),
    [sym_float] = ACTIONS(4940),
    [sym_double] = ACTIONS(4940),
    [sym_real] = ACTIONS(4940),
    [sym_ifloat] = ACTIONS(4940),
    [sym_idouble] = ACTIONS(4940),
    [sym_ireal] = ACTIONS(4940),
    [sym_cfloat] = ACTIONS(4940),
    [sym_cdouble] = ACTIONS(4940),
    [sym_creal] = ACTIONS(4940),
    [sym_size_t] = ACTIONS(4940),
    [sym_ptrdiff_t] = ACTIONS(4940),
    [sym_string] = ACTIONS(4940),
    [sym_cstring] = ACTIONS(4940),
    [sym_dstring] = ACTIONS(4940),
    [sym_wstring] = ACTIONS(4940),
    [sym_noreturn] = ACTIONS(4940),
    [sym_true] = ACTIONS(4940),
    [sym_false] = ACTIONS(4940),
    [sym_null] = ACTIONS(4940),
    [sym_super] = ACTIONS(4940),
    [sym_this] = ACTIONS(4940),
    [sym_abstract] = ACTIONS(4940),
    [sym_alias] = ACTIONS(4940),
    [sym_align] = ACTIONS(4940),
    [sym_asm] = ACTIONS(4940),
    [sym_assert] = ACTIONS(4940),
    [sym_auto] = ACTIONS(4940),
    [sym_break] = ACTIONS(4940),
    [sym_case] = ACTIONS(4940),
    [sym_cast] = ACTIONS(4940),
    [sym_catch] = ACTIONS(4940),
    [sym_class] = ACTIONS(4940),
    [sym_const] = ACTIONS(4940),
    [sym_continue] = ACTIONS(4940),
    [sym_debug] = ACTIONS(4940),
    [sym_default] = ACTIONS(4940),
    [sym_delegate] = ACTIONS(4940),
    [sym_delete] = ACTIONS(4940),
    [sym_deprecated] = ACTIONS(4940),
    [sym_do] = ACTIONS(4940),
    [sym_else] = ACTIONS(4940),
    [sym_enum] = ACTIONS(4940),
    [sym_export] = ACTIONS(4940),
    [sym_extern] = ACTIONS(4940),
    [sym_final] = ACTIONS(4940),
    [sym_finally] = ACTIONS(4940),
    [sym_for] = ACTIONS(4940),
    [sym_foreach] = ACTIONS(4940),
    [sym_foreach_reverse] = ACTIONS(4940),
    [sym_function] = ACTIONS(4940),
    [sym_goto] = ACTIONS(4940),
    [sym_if] = ACTIONS(4940),
    [sym_immutable] = ACTIONS(4940),
    [sym_import] = ACTIONS(4940),
    [sym_in] = ACTIONS(4940),
    [sym_inout] = ACTIONS(4940),
    [sym_interface] = ACTIONS(4940),
    [sym_invariant] = ACTIONS(4940),
    [sym_is] = ACTIONS(4940),
    [sym_mixin] = ACTIONS(4940),
    [sym_new] = ACTIONS(4940),
    [sym_nothrow] = ACTIONS(4940),
    [sym_out] = ACTIONS(4940),
    [sym_override] = ACTIONS(4940),
    [sym_package] = ACTIONS(4940),
    [sym_pragma] = ACTIONS(4940),
    [sym_private] = ACTIONS(4940),
    [sym_protected] = ACTIONS(4940),
    [sym_public] = ACTIONS(4940),
    [sym_pure] = ACTIONS(4940),
    [sym_ref] = ACTIONS(4940),
    [sym_return] = ACTIONS(4940),
    [sym_scope] = ACTIONS(4940),
    [sym_shared] = ACTIONS(4940),
    [sym_static] = ACTIONS(4940),
    [sym_struct] = ACTIONS(4940),
    [sym_switch] = ACTIONS(4940),
    [sym_synchronized] = ACTIONS(4940),
    [sym_template] = ACTIONS(4940),
    [sym_throw] = ACTIONS(4940),
    [sym_try] = ACTIONS(4940),
    [sym_typeid] = ACTIONS(4940),
    [sym_typeof] = ACTIONS(4940),
    [sym_union] = ACTIONS(4940),
    [sym_unittest] = ACTIONS(4940),
    [sym_version] = ACTIONS(4940),
    [sym_while] = ACTIONS(4940),
    [sym_with] = ACTIONS(4940),
    [sym_gshared] = ACTIONS(4940),
    [sym_traits] = ACTIONS(4940),
    [sym_vector] = ACTIONS(4940),
    [sym_void] = ACTIONS(4940),
    [anon_sym_BQUOTE] = ACTIONS(4942),
    [anon_sym_r_DQUOTE] = ACTIONS(4942),
    [anon_sym_x_DQUOTE] = ACTIONS(4942),
    [anon_sym_DQUOTE] = ACTIONS(4942),
    [anon_sym_i_BQUOTE] = ACTIONS(4942),
    [anon_sym_i_DQUOTE] = ACTIONS(4942),
    [anon_sym_iq_LBRACE] = ACTIONS(4942),
    [aux_sym_char_literal_token1] = ACTIONS(4942),
    [anon_sym_SQUOTE] = ACTIONS(4940),
    [anon_sym___DATE__] = ACTIONS(4940),
    [anon_sym___FILE__] = ACTIONS(4940),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4940),
    [anon_sym___FUNCTION__] = ACTIONS(4940),
    [anon_sym___LINE__] = ACTIONS(4940),
    [anon_sym___MODULE__] = ACTIONS(4940),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4940),
    [anon_sym___TIME__] = ACTIONS(4940),
    [anon_sym___TIMESTAMP__] = ACTIONS(4940),
    [anon_sym___VENDOR__] = ACTIONS(4940),
    [anon_sym___VERSION__] = ACTIONS(4940),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4942),
    [sym_float_literal] = ACTIONS(4942),
    [sym__string] = ACTIONS(4942),
  },
  [1522] = {
    [sym_identifier] = ACTIONS(4944),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4946),
    [anon_sym_RBRACE] = ACTIONS(4946),
    [anon_sym_LBRACE] = ACTIONS(4946),
    [anon_sym_DOT] = ACTIONS(4946),
    [anon_sym_AMP] = ACTIONS(4946),
    [anon_sym_DASH] = ACTIONS(4944),
    [anon_sym_DASH_DASH] = ACTIONS(4946),
    [anon_sym_PLUS] = ACTIONS(4944),
    [anon_sym_PLUS_PLUS] = ACTIONS(4946),
    [anon_sym_BANG] = ACTIONS(4946),
    [anon_sym_LPAREN] = ACTIONS(4946),
    [anon_sym_RPAREN] = ACTIONS(4946),
    [anon_sym_LBRACK] = ACTIONS(4946),
    [anon_sym_SEMI] = ACTIONS(4946),
    [anon_sym_DOLLAR] = ACTIONS(4946),
    [anon_sym_STAR] = ACTIONS(4946),
    [anon_sym_TILDE] = ACTIONS(4946),
    [anon_sym_AT] = ACTIONS(4946),
    [sym_bool] = ACTIONS(4944),
    [sym_byte] = ACTIONS(4944),
    [sym_ubyte] = ACTIONS(4944),
    [sym_char] = ACTIONS(4944),
    [sym_short] = ACTIONS(4944),
    [sym_ushort] = ACTIONS(4944),
    [sym_int] = ACTIONS(4944),
    [sym_uint] = ACTIONS(4944),
    [sym_long] = ACTIONS(4944),
    [sym_ulong] = ACTIONS(4944),
    [sym_cent] = ACTIONS(4944),
    [sym_ucent] = ACTIONS(4944),
    [sym_wchar] = ACTIONS(4944),
    [sym_dchar] = ACTIONS(4944),
    [sym_float] = ACTIONS(4944),
    [sym_double] = ACTIONS(4944),
    [sym_real] = ACTIONS(4944),
    [sym_ifloat] = ACTIONS(4944),
    [sym_idouble] = ACTIONS(4944),
    [sym_ireal] = ACTIONS(4944),
    [sym_cfloat] = ACTIONS(4944),
    [sym_cdouble] = ACTIONS(4944),
    [sym_creal] = ACTIONS(4944),
    [sym_size_t] = ACTIONS(4944),
    [sym_ptrdiff_t] = ACTIONS(4944),
    [sym_string] = ACTIONS(4944),
    [sym_cstring] = ACTIONS(4944),
    [sym_dstring] = ACTIONS(4944),
    [sym_wstring] = ACTIONS(4944),
    [sym_noreturn] = ACTIONS(4944),
    [sym_true] = ACTIONS(4944),
    [sym_false] = ACTIONS(4944),
    [sym_null] = ACTIONS(4944),
    [sym_super] = ACTIONS(4944),
    [sym_this] = ACTIONS(4944),
    [sym_abstract] = ACTIONS(4944),
    [sym_alias] = ACTIONS(4944),
    [sym_align] = ACTIONS(4944),
    [sym_asm] = ACTIONS(4944),
    [sym_assert] = ACTIONS(4944),
    [sym_auto] = ACTIONS(4944),
    [sym_break] = ACTIONS(4944),
    [sym_case] = ACTIONS(4944),
    [sym_cast] = ACTIONS(4944),
    [sym_catch] = ACTIONS(4944),
    [sym_class] = ACTIONS(4944),
    [sym_const] = ACTIONS(4944),
    [sym_continue] = ACTIONS(4944),
    [sym_debug] = ACTIONS(4944),
    [sym_default] = ACTIONS(4944),
    [sym_delegate] = ACTIONS(4944),
    [sym_delete] = ACTIONS(4944),
    [sym_deprecated] = ACTIONS(4944),
    [sym_do] = ACTIONS(4944),
    [sym_else] = ACTIONS(4944),
    [sym_enum] = ACTIONS(4944),
    [sym_export] = ACTIONS(4944),
    [sym_extern] = ACTIONS(4944),
    [sym_final] = ACTIONS(4944),
    [sym_finally] = ACTIONS(4944),
    [sym_for] = ACTIONS(4944),
    [sym_foreach] = ACTIONS(4944),
    [sym_foreach_reverse] = ACTIONS(4944),
    [sym_function] = ACTIONS(4944),
    [sym_goto] = ACTIONS(4944),
    [sym_if] = ACTIONS(4944),
    [sym_immutable] = ACTIONS(4944),
    [sym_import] = ACTIONS(4944),
    [sym_in] = ACTIONS(4944),
    [sym_inout] = ACTIONS(4944),
    [sym_interface] = ACTIONS(4944),
    [sym_invariant] = ACTIONS(4944),
    [sym_is] = ACTIONS(4944),
    [sym_mixin] = ACTIONS(4944),
    [sym_new] = ACTIONS(4944),
    [sym_nothrow] = ACTIONS(4944),
    [sym_out] = ACTIONS(4944),
    [sym_override] = ACTIONS(4944),
    [sym_package] = ACTIONS(4944),
    [sym_pragma] = ACTIONS(4944),
    [sym_private] = ACTIONS(4944),
    [sym_protected] = ACTIONS(4944),
    [sym_public] = ACTIONS(4944),
    [sym_pure] = ACTIONS(4944),
    [sym_ref] = ACTIONS(4944),
    [sym_return] = ACTIONS(4944),
    [sym_scope] = ACTIONS(4944),
    [sym_shared] = ACTIONS(4944),
    [sym_static] = ACTIONS(4944),
    [sym_struct] = ACTIONS(4944),
    [sym_switch] = ACTIONS(4944),
    [sym_synchronized] = ACTIONS(4944),
    [sym_template] = ACTIONS(4944),
    [sym_throw] = ACTIONS(4944),
    [sym_try] = ACTIONS(4944),
    [sym_typeid] = ACTIONS(4944),
    [sym_typeof] = ACTIONS(4944),
    [sym_union] = ACTIONS(4944),
    [sym_unittest] = ACTIONS(4944),
    [sym_version] = ACTIONS(4944),
    [sym_while] = ACTIONS(4944),
    [sym_with] = ACTIONS(4944),
    [sym_gshared] = ACTIONS(4944),
    [sym_traits] = ACTIONS(4944),
    [sym_vector] = ACTIONS(4944),
    [sym_void] = ACTIONS(4944),
    [anon_sym_BQUOTE] = ACTIONS(4946),
    [anon_sym_r_DQUOTE] = ACTIONS(4946),
    [anon_sym_x_DQUOTE] = ACTIONS(4946),
    [anon_sym_DQUOTE] = ACTIONS(4946),
    [anon_sym_i_BQUOTE] = ACTIONS(4946),
    [anon_sym_i_DQUOTE] = ACTIONS(4946),
    [anon_sym_iq_LBRACE] = ACTIONS(4946),
    [aux_sym_char_literal_token1] = ACTIONS(4946),
    [anon_sym_SQUOTE] = ACTIONS(4944),
    [anon_sym___DATE__] = ACTIONS(4944),
    [anon_sym___FILE__] = ACTIONS(4944),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4944),
    [anon_sym___FUNCTION__] = ACTIONS(4944),
    [anon_sym___LINE__] = ACTIONS(4944),
    [anon_sym___MODULE__] = ACTIONS(4944),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4944),
    [anon_sym___TIME__] = ACTIONS(4944),
    [anon_sym___TIMESTAMP__] = ACTIONS(4944),
    [anon_sym___VENDOR__] = ACTIONS(4944),
    [anon_sym___VERSION__] = ACTIONS(4944),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4946),
    [sym_float_literal] = ACTIONS(4946),
    [sym__string] = ACTIONS(4946),
  },
  [1523] = {
    [sym_identifier] = ACTIONS(4948),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4950),
    [anon_sym_RBRACE] = ACTIONS(4950),
    [anon_sym_LBRACE] = ACTIONS(4950),
    [anon_sym_DOT] = ACTIONS(4950),
    [anon_sym_AMP] = ACTIONS(4950),
    [anon_sym_DASH] = ACTIONS(4948),
    [anon_sym_DASH_DASH] = ACTIONS(4950),
    [anon_sym_PLUS] = ACTIONS(4948),
    [anon_sym_PLUS_PLUS] = ACTIONS(4950),
    [anon_sym_BANG] = ACTIONS(4950),
    [anon_sym_LPAREN] = ACTIONS(4950),
    [anon_sym_RPAREN] = ACTIONS(4950),
    [anon_sym_LBRACK] = ACTIONS(4950),
    [anon_sym_SEMI] = ACTIONS(4950),
    [anon_sym_DOLLAR] = ACTIONS(4950),
    [anon_sym_STAR] = ACTIONS(4950),
    [anon_sym_TILDE] = ACTIONS(4950),
    [anon_sym_AT] = ACTIONS(4950),
    [sym_bool] = ACTIONS(4948),
    [sym_byte] = ACTIONS(4948),
    [sym_ubyte] = ACTIONS(4948),
    [sym_char] = ACTIONS(4948),
    [sym_short] = ACTIONS(4948),
    [sym_ushort] = ACTIONS(4948),
    [sym_int] = ACTIONS(4948),
    [sym_uint] = ACTIONS(4948),
    [sym_long] = ACTIONS(4948),
    [sym_ulong] = ACTIONS(4948),
    [sym_cent] = ACTIONS(4948),
    [sym_ucent] = ACTIONS(4948),
    [sym_wchar] = ACTIONS(4948),
    [sym_dchar] = ACTIONS(4948),
    [sym_float] = ACTIONS(4948),
    [sym_double] = ACTIONS(4948),
    [sym_real] = ACTIONS(4948),
    [sym_ifloat] = ACTIONS(4948),
    [sym_idouble] = ACTIONS(4948),
    [sym_ireal] = ACTIONS(4948),
    [sym_cfloat] = ACTIONS(4948),
    [sym_cdouble] = ACTIONS(4948),
    [sym_creal] = ACTIONS(4948),
    [sym_size_t] = ACTIONS(4948),
    [sym_ptrdiff_t] = ACTIONS(4948),
    [sym_string] = ACTIONS(4948),
    [sym_cstring] = ACTIONS(4948),
    [sym_dstring] = ACTIONS(4948),
    [sym_wstring] = ACTIONS(4948),
    [sym_noreturn] = ACTIONS(4948),
    [sym_true] = ACTIONS(4948),
    [sym_false] = ACTIONS(4948),
    [sym_null] = ACTIONS(4948),
    [sym_super] = ACTIONS(4948),
    [sym_this] = ACTIONS(4948),
    [sym_abstract] = ACTIONS(4948),
    [sym_alias] = ACTIONS(4948),
    [sym_align] = ACTIONS(4948),
    [sym_asm] = ACTIONS(4948),
    [sym_assert] = ACTIONS(4948),
    [sym_auto] = ACTIONS(4948),
    [sym_break] = ACTIONS(4948),
    [sym_case] = ACTIONS(4948),
    [sym_cast] = ACTIONS(4948),
    [sym_catch] = ACTIONS(4948),
    [sym_class] = ACTIONS(4948),
    [sym_const] = ACTIONS(4948),
    [sym_continue] = ACTIONS(4948),
    [sym_debug] = ACTIONS(4948),
    [sym_default] = ACTIONS(4948),
    [sym_delegate] = ACTIONS(4948),
    [sym_delete] = ACTIONS(4948),
    [sym_deprecated] = ACTIONS(4948),
    [sym_do] = ACTIONS(4948),
    [sym_else] = ACTIONS(4948),
    [sym_enum] = ACTIONS(4948),
    [sym_export] = ACTIONS(4948),
    [sym_extern] = ACTIONS(4948),
    [sym_final] = ACTIONS(4948),
    [sym_finally] = ACTIONS(4948),
    [sym_for] = ACTIONS(4948),
    [sym_foreach] = ACTIONS(4948),
    [sym_foreach_reverse] = ACTIONS(4948),
    [sym_function] = ACTIONS(4948),
    [sym_goto] = ACTIONS(4948),
    [sym_if] = ACTIONS(4948),
    [sym_immutable] = ACTIONS(4948),
    [sym_import] = ACTIONS(4948),
    [sym_in] = ACTIONS(4948),
    [sym_inout] = ACTIONS(4948),
    [sym_interface] = ACTIONS(4948),
    [sym_invariant] = ACTIONS(4948),
    [sym_is] = ACTIONS(4948),
    [sym_mixin] = ACTIONS(4948),
    [sym_new] = ACTIONS(4948),
    [sym_nothrow] = ACTIONS(4948),
    [sym_out] = ACTIONS(4948),
    [sym_override] = ACTIONS(4948),
    [sym_package] = ACTIONS(4948),
    [sym_pragma] = ACTIONS(4948),
    [sym_private] = ACTIONS(4948),
    [sym_protected] = ACTIONS(4948),
    [sym_public] = ACTIONS(4948),
    [sym_pure] = ACTIONS(4948),
    [sym_ref] = ACTIONS(4948),
    [sym_return] = ACTIONS(4948),
    [sym_scope] = ACTIONS(4948),
    [sym_shared] = ACTIONS(4948),
    [sym_static] = ACTIONS(4948),
    [sym_struct] = ACTIONS(4948),
    [sym_switch] = ACTIONS(4948),
    [sym_synchronized] = ACTIONS(4948),
    [sym_template] = ACTIONS(4948),
    [sym_throw] = ACTIONS(4948),
    [sym_try] = ACTIONS(4948),
    [sym_typeid] = ACTIONS(4948),
    [sym_typeof] = ACTIONS(4948),
    [sym_union] = ACTIONS(4948),
    [sym_unittest] = ACTIONS(4948),
    [sym_version] = ACTIONS(4948),
    [sym_while] = ACTIONS(4948),
    [sym_with] = ACTIONS(4948),
    [sym_gshared] = ACTIONS(4948),
    [sym_traits] = ACTIONS(4948),
    [sym_vector] = ACTIONS(4948),
    [sym_void] = ACTIONS(4948),
    [anon_sym_BQUOTE] = ACTIONS(4950),
    [anon_sym_r_DQUOTE] = ACTIONS(4950),
    [anon_sym_x_DQUOTE] = ACTIONS(4950),
    [anon_sym_DQUOTE] = ACTIONS(4950),
    [anon_sym_i_BQUOTE] = ACTIONS(4950),
    [anon_sym_i_DQUOTE] = ACTIONS(4950),
    [anon_sym_iq_LBRACE] = ACTIONS(4950),
    [aux_sym_char_literal_token1] = ACTIONS(4950),
    [anon_sym_SQUOTE] = ACTIONS(4948),
    [anon_sym___DATE__] = ACTIONS(4948),
    [anon_sym___FILE__] = ACTIONS(4948),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4948),
    [anon_sym___FUNCTION__] = ACTIONS(4948),
    [anon_sym___LINE__] = ACTIONS(4948),
    [anon_sym___MODULE__] = ACTIONS(4948),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4948),
    [anon_sym___TIME__] = ACTIONS(4948),
    [anon_sym___TIMESTAMP__] = ACTIONS(4948),
    [anon_sym___VENDOR__] = ACTIONS(4948),
    [anon_sym___VERSION__] = ACTIONS(4948),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4950),
    [sym_float_literal] = ACTIONS(4950),
    [sym__string] = ACTIONS(4950),
  },
  [1524] = {
    [sym_identifier] = ACTIONS(4952),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4954),
    [anon_sym_RBRACE] = ACTIONS(4954),
    [anon_sym_LBRACE] = ACTIONS(4954),
    [anon_sym_DOT] = ACTIONS(4954),
    [anon_sym_AMP] = ACTIONS(4954),
    [anon_sym_DASH] = ACTIONS(4952),
    [anon_sym_DASH_DASH] = ACTIONS(4954),
    [anon_sym_PLUS] = ACTIONS(4952),
    [anon_sym_PLUS_PLUS] = ACTIONS(4954),
    [anon_sym_BANG] = ACTIONS(4954),
    [anon_sym_LPAREN] = ACTIONS(4954),
    [anon_sym_RPAREN] = ACTIONS(4954),
    [anon_sym_LBRACK] = ACTIONS(4954),
    [anon_sym_SEMI] = ACTIONS(4954),
    [anon_sym_DOLLAR] = ACTIONS(4954),
    [anon_sym_STAR] = ACTIONS(4954),
    [anon_sym_TILDE] = ACTIONS(4954),
    [anon_sym_AT] = ACTIONS(4954),
    [sym_bool] = ACTIONS(4952),
    [sym_byte] = ACTIONS(4952),
    [sym_ubyte] = ACTIONS(4952),
    [sym_char] = ACTIONS(4952),
    [sym_short] = ACTIONS(4952),
    [sym_ushort] = ACTIONS(4952),
    [sym_int] = ACTIONS(4952),
    [sym_uint] = ACTIONS(4952),
    [sym_long] = ACTIONS(4952),
    [sym_ulong] = ACTIONS(4952),
    [sym_cent] = ACTIONS(4952),
    [sym_ucent] = ACTIONS(4952),
    [sym_wchar] = ACTIONS(4952),
    [sym_dchar] = ACTIONS(4952),
    [sym_float] = ACTIONS(4952),
    [sym_double] = ACTIONS(4952),
    [sym_real] = ACTIONS(4952),
    [sym_ifloat] = ACTIONS(4952),
    [sym_idouble] = ACTIONS(4952),
    [sym_ireal] = ACTIONS(4952),
    [sym_cfloat] = ACTIONS(4952),
    [sym_cdouble] = ACTIONS(4952),
    [sym_creal] = ACTIONS(4952),
    [sym_size_t] = ACTIONS(4952),
    [sym_ptrdiff_t] = ACTIONS(4952),
    [sym_string] = ACTIONS(4952),
    [sym_cstring] = ACTIONS(4952),
    [sym_dstring] = ACTIONS(4952),
    [sym_wstring] = ACTIONS(4952),
    [sym_noreturn] = ACTIONS(4952),
    [sym_true] = ACTIONS(4952),
    [sym_false] = ACTIONS(4952),
    [sym_null] = ACTIONS(4952),
    [sym_super] = ACTIONS(4952),
    [sym_this] = ACTIONS(4952),
    [sym_abstract] = ACTIONS(4952),
    [sym_alias] = ACTIONS(4952),
    [sym_align] = ACTIONS(4952),
    [sym_asm] = ACTIONS(4952),
    [sym_assert] = ACTIONS(4952),
    [sym_auto] = ACTIONS(4952),
    [sym_break] = ACTIONS(4952),
    [sym_case] = ACTIONS(4952),
    [sym_cast] = ACTIONS(4952),
    [sym_catch] = ACTIONS(4952),
    [sym_class] = ACTIONS(4952),
    [sym_const] = ACTIONS(4952),
    [sym_continue] = ACTIONS(4952),
    [sym_debug] = ACTIONS(4952),
    [sym_default] = ACTIONS(4952),
    [sym_delegate] = ACTIONS(4952),
    [sym_delete] = ACTIONS(4952),
    [sym_deprecated] = ACTIONS(4952),
    [sym_do] = ACTIONS(4952),
    [sym_else] = ACTIONS(4952),
    [sym_enum] = ACTIONS(4952),
    [sym_export] = ACTIONS(4952),
    [sym_extern] = ACTIONS(4952),
    [sym_final] = ACTIONS(4952),
    [sym_finally] = ACTIONS(4952),
    [sym_for] = ACTIONS(4952),
    [sym_foreach] = ACTIONS(4952),
    [sym_foreach_reverse] = ACTIONS(4952),
    [sym_function] = ACTIONS(4952),
    [sym_goto] = ACTIONS(4952),
    [sym_if] = ACTIONS(4952),
    [sym_immutable] = ACTIONS(4952),
    [sym_import] = ACTIONS(4952),
    [sym_in] = ACTIONS(4952),
    [sym_inout] = ACTIONS(4952),
    [sym_interface] = ACTIONS(4952),
    [sym_invariant] = ACTIONS(4952),
    [sym_is] = ACTIONS(4952),
    [sym_mixin] = ACTIONS(4952),
    [sym_new] = ACTIONS(4952),
    [sym_nothrow] = ACTIONS(4952),
    [sym_out] = ACTIONS(4952),
    [sym_override] = ACTIONS(4952),
    [sym_package] = ACTIONS(4952),
    [sym_pragma] = ACTIONS(4952),
    [sym_private] = ACTIONS(4952),
    [sym_protected] = ACTIONS(4952),
    [sym_public] = ACTIONS(4952),
    [sym_pure] = ACTIONS(4952),
    [sym_ref] = ACTIONS(4952),
    [sym_return] = ACTIONS(4952),
    [sym_scope] = ACTIONS(4952),
    [sym_shared] = ACTIONS(4952),
    [sym_static] = ACTIONS(4952),
    [sym_struct] = ACTIONS(4952),
    [sym_switch] = ACTIONS(4952),
    [sym_synchronized] = ACTIONS(4952),
    [sym_template] = ACTIONS(4952),
    [sym_throw] = ACTIONS(4952),
    [sym_try] = ACTIONS(4952),
    [sym_typeid] = ACTIONS(4952),
    [sym_typeof] = ACTIONS(4952),
    [sym_union] = ACTIONS(4952),
    [sym_unittest] = ACTIONS(4952),
    [sym_version] = ACTIONS(4952),
    [sym_while] = ACTIONS(4952),
    [sym_with] = ACTIONS(4952),
    [sym_gshared] = ACTIONS(4952),
    [sym_traits] = ACTIONS(4952),
    [sym_vector] = ACTIONS(4952),
    [sym_void] = ACTIONS(4952),
    [anon_sym_BQUOTE] = ACTIONS(4954),
    [anon_sym_r_DQUOTE] = ACTIONS(4954),
    [anon_sym_x_DQUOTE] = ACTIONS(4954),
    [anon_sym_DQUOTE] = ACTIONS(4954),
    [anon_sym_i_BQUOTE] = ACTIONS(4954),
    [anon_sym_i_DQUOTE] = ACTIONS(4954),
    [anon_sym_iq_LBRACE] = ACTIONS(4954),
    [aux_sym_char_literal_token1] = ACTIONS(4954),
    [anon_sym_SQUOTE] = ACTIONS(4952),
    [anon_sym___DATE__] = ACTIONS(4952),
    [anon_sym___FILE__] = ACTIONS(4952),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4952),
    [anon_sym___FUNCTION__] = ACTIONS(4952),
    [anon_sym___LINE__] = ACTIONS(4952),
    [anon_sym___MODULE__] = ACTIONS(4952),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4952),
    [anon_sym___TIME__] = ACTIONS(4952),
    [anon_sym___TIMESTAMP__] = ACTIONS(4952),
    [anon_sym___VENDOR__] = ACTIONS(4952),
    [anon_sym___VERSION__] = ACTIONS(4952),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4954),
    [sym_float_literal] = ACTIONS(4954),
    [sym__string] = ACTIONS(4954),
  },
  [1525] = {
    [sym_identifier] = ACTIONS(4956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4958),
    [anon_sym_RBRACE] = ACTIONS(4958),
    [anon_sym_LBRACE] = ACTIONS(4958),
    [anon_sym_DOT] = ACTIONS(4958),
    [anon_sym_AMP] = ACTIONS(4958),
    [anon_sym_DASH] = ACTIONS(4956),
    [anon_sym_DASH_DASH] = ACTIONS(4958),
    [anon_sym_PLUS] = ACTIONS(4956),
    [anon_sym_PLUS_PLUS] = ACTIONS(4958),
    [anon_sym_BANG] = ACTIONS(4958),
    [anon_sym_LPAREN] = ACTIONS(4958),
    [anon_sym_RPAREN] = ACTIONS(4958),
    [anon_sym_LBRACK] = ACTIONS(4958),
    [anon_sym_SEMI] = ACTIONS(4958),
    [anon_sym_DOLLAR] = ACTIONS(4958),
    [anon_sym_STAR] = ACTIONS(4958),
    [anon_sym_TILDE] = ACTIONS(4958),
    [anon_sym_AT] = ACTIONS(4958),
    [sym_bool] = ACTIONS(4956),
    [sym_byte] = ACTIONS(4956),
    [sym_ubyte] = ACTIONS(4956),
    [sym_char] = ACTIONS(4956),
    [sym_short] = ACTIONS(4956),
    [sym_ushort] = ACTIONS(4956),
    [sym_int] = ACTIONS(4956),
    [sym_uint] = ACTIONS(4956),
    [sym_long] = ACTIONS(4956),
    [sym_ulong] = ACTIONS(4956),
    [sym_cent] = ACTIONS(4956),
    [sym_ucent] = ACTIONS(4956),
    [sym_wchar] = ACTIONS(4956),
    [sym_dchar] = ACTIONS(4956),
    [sym_float] = ACTIONS(4956),
    [sym_double] = ACTIONS(4956),
    [sym_real] = ACTIONS(4956),
    [sym_ifloat] = ACTIONS(4956),
    [sym_idouble] = ACTIONS(4956),
    [sym_ireal] = ACTIONS(4956),
    [sym_cfloat] = ACTIONS(4956),
    [sym_cdouble] = ACTIONS(4956),
    [sym_creal] = ACTIONS(4956),
    [sym_size_t] = ACTIONS(4956),
    [sym_ptrdiff_t] = ACTIONS(4956),
    [sym_string] = ACTIONS(4956),
    [sym_cstring] = ACTIONS(4956),
    [sym_dstring] = ACTIONS(4956),
    [sym_wstring] = ACTIONS(4956),
    [sym_noreturn] = ACTIONS(4956),
    [sym_true] = ACTIONS(4956),
    [sym_false] = ACTIONS(4956),
    [sym_null] = ACTIONS(4956),
    [sym_super] = ACTIONS(4956),
    [sym_this] = ACTIONS(4956),
    [sym_abstract] = ACTIONS(4956),
    [sym_alias] = ACTIONS(4956),
    [sym_align] = ACTIONS(4956),
    [sym_asm] = ACTIONS(4956),
    [sym_assert] = ACTIONS(4956),
    [sym_auto] = ACTIONS(4956),
    [sym_break] = ACTIONS(4956),
    [sym_case] = ACTIONS(4956),
    [sym_cast] = ACTIONS(4956),
    [sym_catch] = ACTIONS(4956),
    [sym_class] = ACTIONS(4956),
    [sym_const] = ACTIONS(4956),
    [sym_continue] = ACTIONS(4956),
    [sym_debug] = ACTIONS(4956),
    [sym_default] = ACTIONS(4956),
    [sym_delegate] = ACTIONS(4956),
    [sym_delete] = ACTIONS(4956),
    [sym_deprecated] = ACTIONS(4956),
    [sym_do] = ACTIONS(4956),
    [sym_else] = ACTIONS(4956),
    [sym_enum] = ACTIONS(4956),
    [sym_export] = ACTIONS(4956),
    [sym_extern] = ACTIONS(4956),
    [sym_final] = ACTIONS(4956),
    [sym_finally] = ACTIONS(4956),
    [sym_for] = ACTIONS(4956),
    [sym_foreach] = ACTIONS(4956),
    [sym_foreach_reverse] = ACTIONS(4956),
    [sym_function] = ACTIONS(4956),
    [sym_goto] = ACTIONS(4956),
    [sym_if] = ACTIONS(4956),
    [sym_immutable] = ACTIONS(4956),
    [sym_import] = ACTIONS(4956),
    [sym_in] = ACTIONS(4956),
    [sym_inout] = ACTIONS(4956),
    [sym_interface] = ACTIONS(4956),
    [sym_invariant] = ACTIONS(4956),
    [sym_is] = ACTIONS(4956),
    [sym_mixin] = ACTIONS(4956),
    [sym_new] = ACTIONS(4956),
    [sym_nothrow] = ACTIONS(4956),
    [sym_out] = ACTIONS(4956),
    [sym_override] = ACTIONS(4956),
    [sym_package] = ACTIONS(4956),
    [sym_pragma] = ACTIONS(4956),
    [sym_private] = ACTIONS(4956),
    [sym_protected] = ACTIONS(4956),
    [sym_public] = ACTIONS(4956),
    [sym_pure] = ACTIONS(4956),
    [sym_ref] = ACTIONS(4956),
    [sym_return] = ACTIONS(4956),
    [sym_scope] = ACTIONS(4956),
    [sym_shared] = ACTIONS(4956),
    [sym_static] = ACTIONS(4956),
    [sym_struct] = ACTIONS(4956),
    [sym_switch] = ACTIONS(4956),
    [sym_synchronized] = ACTIONS(4956),
    [sym_template] = ACTIONS(4956),
    [sym_throw] = ACTIONS(4956),
    [sym_try] = ACTIONS(4956),
    [sym_typeid] = ACTIONS(4956),
    [sym_typeof] = ACTIONS(4956),
    [sym_union] = ACTIONS(4956),
    [sym_unittest] = ACTIONS(4956),
    [sym_version] = ACTIONS(4956),
    [sym_while] = ACTIONS(4956),
    [sym_with] = ACTIONS(4956),
    [sym_gshared] = ACTIONS(4956),
    [sym_traits] = ACTIONS(4956),
    [sym_vector] = ACTIONS(4956),
    [sym_void] = ACTIONS(4956),
    [anon_sym_BQUOTE] = ACTIONS(4958),
    [anon_sym_r_DQUOTE] = ACTIONS(4958),
    [anon_sym_x_DQUOTE] = ACTIONS(4958),
    [anon_sym_DQUOTE] = ACTIONS(4958),
    [anon_sym_i_BQUOTE] = ACTIONS(4958),
    [anon_sym_i_DQUOTE] = ACTIONS(4958),
    [anon_sym_iq_LBRACE] = ACTIONS(4958),
    [aux_sym_char_literal_token1] = ACTIONS(4958),
    [anon_sym_SQUOTE] = ACTIONS(4956),
    [anon_sym___DATE__] = ACTIONS(4956),
    [anon_sym___FILE__] = ACTIONS(4956),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4956),
    [anon_sym___FUNCTION__] = ACTIONS(4956),
    [anon_sym___LINE__] = ACTIONS(4956),
    [anon_sym___MODULE__] = ACTIONS(4956),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4956),
    [anon_sym___TIME__] = ACTIONS(4956),
    [anon_sym___TIMESTAMP__] = ACTIONS(4956),
    [anon_sym___VENDOR__] = ACTIONS(4956),
    [anon_sym___VERSION__] = ACTIONS(4956),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4958),
    [sym_float_literal] = ACTIONS(4958),
    [sym__string] = ACTIONS(4958),
  },
  [1526] = {
    [sym_identifier] = ACTIONS(4960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4962),
    [anon_sym_RBRACE] = ACTIONS(4962),
    [anon_sym_LBRACE] = ACTIONS(4962),
    [anon_sym_DOT] = ACTIONS(4962),
    [anon_sym_AMP] = ACTIONS(4962),
    [anon_sym_DASH] = ACTIONS(4960),
    [anon_sym_DASH_DASH] = ACTIONS(4962),
    [anon_sym_PLUS] = ACTIONS(4960),
    [anon_sym_PLUS_PLUS] = ACTIONS(4962),
    [anon_sym_BANG] = ACTIONS(4962),
    [anon_sym_LPAREN] = ACTIONS(4962),
    [anon_sym_RPAREN] = ACTIONS(4962),
    [anon_sym_LBRACK] = ACTIONS(4962),
    [anon_sym_SEMI] = ACTIONS(4962),
    [anon_sym_DOLLAR] = ACTIONS(4962),
    [anon_sym_STAR] = ACTIONS(4962),
    [anon_sym_TILDE] = ACTIONS(4962),
    [anon_sym_AT] = ACTIONS(4962),
    [sym_bool] = ACTIONS(4960),
    [sym_byte] = ACTIONS(4960),
    [sym_ubyte] = ACTIONS(4960),
    [sym_char] = ACTIONS(4960),
    [sym_short] = ACTIONS(4960),
    [sym_ushort] = ACTIONS(4960),
    [sym_int] = ACTIONS(4960),
    [sym_uint] = ACTIONS(4960),
    [sym_long] = ACTIONS(4960),
    [sym_ulong] = ACTIONS(4960),
    [sym_cent] = ACTIONS(4960),
    [sym_ucent] = ACTIONS(4960),
    [sym_wchar] = ACTIONS(4960),
    [sym_dchar] = ACTIONS(4960),
    [sym_float] = ACTIONS(4960),
    [sym_double] = ACTIONS(4960),
    [sym_real] = ACTIONS(4960),
    [sym_ifloat] = ACTIONS(4960),
    [sym_idouble] = ACTIONS(4960),
    [sym_ireal] = ACTIONS(4960),
    [sym_cfloat] = ACTIONS(4960),
    [sym_cdouble] = ACTIONS(4960),
    [sym_creal] = ACTIONS(4960),
    [sym_size_t] = ACTIONS(4960),
    [sym_ptrdiff_t] = ACTIONS(4960),
    [sym_string] = ACTIONS(4960),
    [sym_cstring] = ACTIONS(4960),
    [sym_dstring] = ACTIONS(4960),
    [sym_wstring] = ACTIONS(4960),
    [sym_noreturn] = ACTIONS(4960),
    [sym_true] = ACTIONS(4960),
    [sym_false] = ACTIONS(4960),
    [sym_null] = ACTIONS(4960),
    [sym_super] = ACTIONS(4960),
    [sym_this] = ACTIONS(4960),
    [sym_abstract] = ACTIONS(4960),
    [sym_alias] = ACTIONS(4960),
    [sym_align] = ACTIONS(4960),
    [sym_asm] = ACTIONS(4960),
    [sym_assert] = ACTIONS(4960),
    [sym_auto] = ACTIONS(4960),
    [sym_break] = ACTIONS(4960),
    [sym_case] = ACTIONS(4960),
    [sym_cast] = ACTIONS(4960),
    [sym_catch] = ACTIONS(4960),
    [sym_class] = ACTIONS(4960),
    [sym_const] = ACTIONS(4960),
    [sym_continue] = ACTIONS(4960),
    [sym_debug] = ACTIONS(4960),
    [sym_default] = ACTIONS(4960),
    [sym_delegate] = ACTIONS(4960),
    [sym_delete] = ACTIONS(4960),
    [sym_deprecated] = ACTIONS(4960),
    [sym_do] = ACTIONS(4960),
    [sym_else] = ACTIONS(4960),
    [sym_enum] = ACTIONS(4960),
    [sym_export] = ACTIONS(4960),
    [sym_extern] = ACTIONS(4960),
    [sym_final] = ACTIONS(4960),
    [sym_finally] = ACTIONS(4960),
    [sym_for] = ACTIONS(4960),
    [sym_foreach] = ACTIONS(4960),
    [sym_foreach_reverse] = ACTIONS(4960),
    [sym_function] = ACTIONS(4960),
    [sym_goto] = ACTIONS(4960),
    [sym_if] = ACTIONS(4960),
    [sym_immutable] = ACTIONS(4960),
    [sym_import] = ACTIONS(4960),
    [sym_in] = ACTIONS(4960),
    [sym_inout] = ACTIONS(4960),
    [sym_interface] = ACTIONS(4960),
    [sym_invariant] = ACTIONS(4960),
    [sym_is] = ACTIONS(4960),
    [sym_mixin] = ACTIONS(4960),
    [sym_new] = ACTIONS(4960),
    [sym_nothrow] = ACTIONS(4960),
    [sym_out] = ACTIONS(4960),
    [sym_override] = ACTIONS(4960),
    [sym_package] = ACTIONS(4960),
    [sym_pragma] = ACTIONS(4960),
    [sym_private] = ACTIONS(4960),
    [sym_protected] = ACTIONS(4960),
    [sym_public] = ACTIONS(4960),
    [sym_pure] = ACTIONS(4960),
    [sym_ref] = ACTIONS(4960),
    [sym_return] = ACTIONS(4960),
    [sym_scope] = ACTIONS(4960),
    [sym_shared] = ACTIONS(4960),
    [sym_static] = ACTIONS(4960),
    [sym_struct] = ACTIONS(4960),
    [sym_switch] = ACTIONS(4960),
    [sym_synchronized] = ACTIONS(4960),
    [sym_template] = ACTIONS(4960),
    [sym_throw] = ACTIONS(4960),
    [sym_try] = ACTIONS(4960),
    [sym_typeid] = ACTIONS(4960),
    [sym_typeof] = ACTIONS(4960),
    [sym_union] = ACTIONS(4960),
    [sym_unittest] = ACTIONS(4960),
    [sym_version] = ACTIONS(4960),
    [sym_while] = ACTIONS(4960),
    [sym_with] = ACTIONS(4960),
    [sym_gshared] = ACTIONS(4960),
    [sym_traits] = ACTIONS(4960),
    [sym_vector] = ACTIONS(4960),
    [sym_void] = ACTIONS(4960),
    [anon_sym_BQUOTE] = ACTIONS(4962),
    [anon_sym_r_DQUOTE] = ACTIONS(4962),
    [anon_sym_x_DQUOTE] = ACTIONS(4962),
    [anon_sym_DQUOTE] = ACTIONS(4962),
    [anon_sym_i_BQUOTE] = ACTIONS(4962),
    [anon_sym_i_DQUOTE] = ACTIONS(4962),
    [anon_sym_iq_LBRACE] = ACTIONS(4962),
    [aux_sym_char_literal_token1] = ACTIONS(4962),
    [anon_sym_SQUOTE] = ACTIONS(4960),
    [anon_sym___DATE__] = ACTIONS(4960),
    [anon_sym___FILE__] = ACTIONS(4960),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4960),
    [anon_sym___FUNCTION__] = ACTIONS(4960),
    [anon_sym___LINE__] = ACTIONS(4960),
    [anon_sym___MODULE__] = ACTIONS(4960),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4960),
    [anon_sym___TIME__] = ACTIONS(4960),
    [anon_sym___TIMESTAMP__] = ACTIONS(4960),
    [anon_sym___VENDOR__] = ACTIONS(4960),
    [anon_sym___VERSION__] = ACTIONS(4960),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4962),
    [sym_float_literal] = ACTIONS(4962),
    [sym__string] = ACTIONS(4962),
  },
  [1527] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_RBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [anon_sym_AT] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_abstract] = ACTIONS(4359),
    [sym_alias] = ACTIONS(4359),
    [sym_align] = ACTIONS(4359),
    [sym_asm] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_break] = ACTIONS(4359),
    [sym_case] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_catch] = ACTIONS(4359),
    [sym_class] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_continue] = ACTIONS(4359),
    [sym_debug] = ACTIONS(4359),
    [sym_default] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_deprecated] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(4964),
    [sym_enum] = ACTIONS(4359),
    [sym_export] = ACTIONS(4359),
    [sym_extern] = ACTIONS(4359),
    [sym_final] = ACTIONS(4359),
    [sym_finally] = ACTIONS(4359),
    [sym_for] = ACTIONS(4359),
    [sym_foreach] = ACTIONS(4359),
    [sym_foreach_reverse] = ACTIONS(4359),
    [sym_function] = ACTIONS(4359),
    [sym_goto] = ACTIONS(4359),
    [sym_if] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_interface] = ACTIONS(4359),
    [sym_invariant] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_nothrow] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_override] = ACTIONS(4359),
    [sym_package] = ACTIONS(4359),
    [sym_pragma] = ACTIONS(4359),
    [sym_private] = ACTIONS(4359),
    [sym_protected] = ACTIONS(4359),
    [sym_public] = ACTIONS(4359),
    [sym_pure] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_return] = ACTIONS(4359),
    [sym_scope] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_static] = ACTIONS(4359),
    [sym_struct] = ACTIONS(4359),
    [sym_switch] = ACTIONS(4359),
    [sym_synchronized] = ACTIONS(4359),
    [sym_template] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_try] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_union] = ACTIONS(4359),
    [sym_unittest] = ACTIONS(4359),
    [sym_version] = ACTIONS(4359),
    [sym_while] = ACTIONS(4359),
    [sym_with] = ACTIONS(4359),
    [sym_gshared] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [1528] = {
    [sym_identifier] = ACTIONS(4966),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4968),
    [anon_sym_RBRACE] = ACTIONS(4968),
    [anon_sym_LBRACE] = ACTIONS(4968),
    [anon_sym_DOT] = ACTIONS(4968),
    [anon_sym_AMP] = ACTIONS(4968),
    [anon_sym_DASH] = ACTIONS(4966),
    [anon_sym_DASH_DASH] = ACTIONS(4968),
    [anon_sym_PLUS] = ACTIONS(4966),
    [anon_sym_PLUS_PLUS] = ACTIONS(4968),
    [anon_sym_BANG] = ACTIONS(4968),
    [anon_sym_LPAREN] = ACTIONS(4968),
    [anon_sym_RPAREN] = ACTIONS(4968),
    [anon_sym_LBRACK] = ACTIONS(4968),
    [anon_sym_SEMI] = ACTIONS(4968),
    [anon_sym_DOLLAR] = ACTIONS(4968),
    [anon_sym_STAR] = ACTIONS(4968),
    [anon_sym_TILDE] = ACTIONS(4968),
    [anon_sym_AT] = ACTIONS(4968),
    [sym_bool] = ACTIONS(4966),
    [sym_byte] = ACTIONS(4966),
    [sym_ubyte] = ACTIONS(4966),
    [sym_char] = ACTIONS(4966),
    [sym_short] = ACTIONS(4966),
    [sym_ushort] = ACTIONS(4966),
    [sym_int] = ACTIONS(4966),
    [sym_uint] = ACTIONS(4966),
    [sym_long] = ACTIONS(4966),
    [sym_ulong] = ACTIONS(4966),
    [sym_cent] = ACTIONS(4966),
    [sym_ucent] = ACTIONS(4966),
    [sym_wchar] = ACTIONS(4966),
    [sym_dchar] = ACTIONS(4966),
    [sym_float] = ACTIONS(4966),
    [sym_double] = ACTIONS(4966),
    [sym_real] = ACTIONS(4966),
    [sym_ifloat] = ACTIONS(4966),
    [sym_idouble] = ACTIONS(4966),
    [sym_ireal] = ACTIONS(4966),
    [sym_cfloat] = ACTIONS(4966),
    [sym_cdouble] = ACTIONS(4966),
    [sym_creal] = ACTIONS(4966),
    [sym_size_t] = ACTIONS(4966),
    [sym_ptrdiff_t] = ACTIONS(4966),
    [sym_string] = ACTIONS(4966),
    [sym_cstring] = ACTIONS(4966),
    [sym_dstring] = ACTIONS(4966),
    [sym_wstring] = ACTIONS(4966),
    [sym_noreturn] = ACTIONS(4966),
    [sym_true] = ACTIONS(4966),
    [sym_false] = ACTIONS(4966),
    [sym_null] = ACTIONS(4966),
    [sym_super] = ACTIONS(4966),
    [sym_this] = ACTIONS(4966),
    [sym_abstract] = ACTIONS(4966),
    [sym_alias] = ACTIONS(4966),
    [sym_align] = ACTIONS(4966),
    [sym_asm] = ACTIONS(4966),
    [sym_assert] = ACTIONS(4966),
    [sym_auto] = ACTIONS(4966),
    [sym_break] = ACTIONS(4966),
    [sym_case] = ACTIONS(4966),
    [sym_cast] = ACTIONS(4966),
    [sym_catch] = ACTIONS(4966),
    [sym_class] = ACTIONS(4966),
    [sym_const] = ACTIONS(4966),
    [sym_continue] = ACTIONS(4966),
    [sym_debug] = ACTIONS(4966),
    [sym_default] = ACTIONS(4966),
    [sym_delegate] = ACTIONS(4966),
    [sym_delete] = ACTIONS(4966),
    [sym_deprecated] = ACTIONS(4966),
    [sym_do] = ACTIONS(4966),
    [sym_else] = ACTIONS(4966),
    [sym_enum] = ACTIONS(4966),
    [sym_export] = ACTIONS(4966),
    [sym_extern] = ACTIONS(4966),
    [sym_final] = ACTIONS(4966),
    [sym_finally] = ACTIONS(4966),
    [sym_for] = ACTIONS(4966),
    [sym_foreach] = ACTIONS(4966),
    [sym_foreach_reverse] = ACTIONS(4966),
    [sym_function] = ACTIONS(4966),
    [sym_goto] = ACTIONS(4966),
    [sym_if] = ACTIONS(4966),
    [sym_immutable] = ACTIONS(4966),
    [sym_import] = ACTIONS(4966),
    [sym_in] = ACTIONS(4966),
    [sym_inout] = ACTIONS(4966),
    [sym_interface] = ACTIONS(4966),
    [sym_invariant] = ACTIONS(4966),
    [sym_is] = ACTIONS(4966),
    [sym_mixin] = ACTIONS(4966),
    [sym_new] = ACTIONS(4966),
    [sym_nothrow] = ACTIONS(4966),
    [sym_out] = ACTIONS(4966),
    [sym_override] = ACTIONS(4966),
    [sym_package] = ACTIONS(4966),
    [sym_pragma] = ACTIONS(4966),
    [sym_private] = ACTIONS(4966),
    [sym_protected] = ACTIONS(4966),
    [sym_public] = ACTIONS(4966),
    [sym_pure] = ACTIONS(4966),
    [sym_ref] = ACTIONS(4966),
    [sym_return] = ACTIONS(4966),
    [sym_scope] = ACTIONS(4966),
    [sym_shared] = ACTIONS(4966),
    [sym_static] = ACTIONS(4966),
    [sym_struct] = ACTIONS(4966),
    [sym_switch] = ACTIONS(4966),
    [sym_synchronized] = ACTIONS(4966),
    [sym_template] = ACTIONS(4966),
    [sym_throw] = ACTIONS(4966),
    [sym_try] = ACTIONS(4966),
    [sym_typeid] = ACTIONS(4966),
    [sym_typeof] = ACTIONS(4966),
    [sym_union] = ACTIONS(4966),
    [sym_unittest] = ACTIONS(4966),
    [sym_version] = ACTIONS(4966),
    [sym_while] = ACTIONS(4966),
    [sym_with] = ACTIONS(4966),
    [sym_gshared] = ACTIONS(4966),
    [sym_traits] = ACTIONS(4966),
    [sym_vector] = ACTIONS(4966),
    [sym_void] = ACTIONS(4966),
    [anon_sym_BQUOTE] = ACTIONS(4968),
    [anon_sym_r_DQUOTE] = ACTIONS(4968),
    [anon_sym_x_DQUOTE] = ACTIONS(4968),
    [anon_sym_DQUOTE] = ACTIONS(4968),
    [anon_sym_i_BQUOTE] = ACTIONS(4968),
    [anon_sym_i_DQUOTE] = ACTIONS(4968),
    [anon_sym_iq_LBRACE] = ACTIONS(4968),
    [aux_sym_char_literal_token1] = ACTIONS(4968),
    [anon_sym_SQUOTE] = ACTIONS(4966),
    [anon_sym___DATE__] = ACTIONS(4966),
    [anon_sym___FILE__] = ACTIONS(4966),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4966),
    [anon_sym___FUNCTION__] = ACTIONS(4966),
    [anon_sym___LINE__] = ACTIONS(4966),
    [anon_sym___MODULE__] = ACTIONS(4966),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4966),
    [anon_sym___TIME__] = ACTIONS(4966),
    [anon_sym___TIMESTAMP__] = ACTIONS(4966),
    [anon_sym___VENDOR__] = ACTIONS(4966),
    [anon_sym___VERSION__] = ACTIONS(4966),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4968),
    [sym_float_literal] = ACTIONS(4968),
    [sym__string] = ACTIONS(4968),
  },
  [1529] = {
    [sym_identifier] = ACTIONS(4970),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4972),
    [anon_sym_RBRACE] = ACTIONS(4972),
    [anon_sym_LBRACE] = ACTIONS(4972),
    [anon_sym_DOT] = ACTIONS(4972),
    [anon_sym_AMP] = ACTIONS(4972),
    [anon_sym_DASH] = ACTIONS(4970),
    [anon_sym_DASH_DASH] = ACTIONS(4972),
    [anon_sym_PLUS] = ACTIONS(4970),
    [anon_sym_PLUS_PLUS] = ACTIONS(4972),
    [anon_sym_BANG] = ACTIONS(4972),
    [anon_sym_LPAREN] = ACTIONS(4972),
    [anon_sym_RPAREN] = ACTIONS(4972),
    [anon_sym_LBRACK] = ACTIONS(4972),
    [anon_sym_SEMI] = ACTIONS(4972),
    [anon_sym_DOLLAR] = ACTIONS(4972),
    [anon_sym_STAR] = ACTIONS(4972),
    [anon_sym_TILDE] = ACTIONS(4972),
    [anon_sym_AT] = ACTIONS(4972),
    [sym_bool] = ACTIONS(4970),
    [sym_byte] = ACTIONS(4970),
    [sym_ubyte] = ACTIONS(4970),
    [sym_char] = ACTIONS(4970),
    [sym_short] = ACTIONS(4970),
    [sym_ushort] = ACTIONS(4970),
    [sym_int] = ACTIONS(4970),
    [sym_uint] = ACTIONS(4970),
    [sym_long] = ACTIONS(4970),
    [sym_ulong] = ACTIONS(4970),
    [sym_cent] = ACTIONS(4970),
    [sym_ucent] = ACTIONS(4970),
    [sym_wchar] = ACTIONS(4970),
    [sym_dchar] = ACTIONS(4970),
    [sym_float] = ACTIONS(4970),
    [sym_double] = ACTIONS(4970),
    [sym_real] = ACTIONS(4970),
    [sym_ifloat] = ACTIONS(4970),
    [sym_idouble] = ACTIONS(4970),
    [sym_ireal] = ACTIONS(4970),
    [sym_cfloat] = ACTIONS(4970),
    [sym_cdouble] = ACTIONS(4970),
    [sym_creal] = ACTIONS(4970),
    [sym_size_t] = ACTIONS(4970),
    [sym_ptrdiff_t] = ACTIONS(4970),
    [sym_string] = ACTIONS(4970),
    [sym_cstring] = ACTIONS(4970),
    [sym_dstring] = ACTIONS(4970),
    [sym_wstring] = ACTIONS(4970),
    [sym_noreturn] = ACTIONS(4970),
    [sym_true] = ACTIONS(4970),
    [sym_false] = ACTIONS(4970),
    [sym_null] = ACTIONS(4970),
    [sym_super] = ACTIONS(4970),
    [sym_this] = ACTIONS(4970),
    [sym_abstract] = ACTIONS(4970),
    [sym_alias] = ACTIONS(4970),
    [sym_align] = ACTIONS(4970),
    [sym_asm] = ACTIONS(4970),
    [sym_assert] = ACTIONS(4970),
    [sym_auto] = ACTIONS(4970),
    [sym_break] = ACTIONS(4970),
    [sym_case] = ACTIONS(4970),
    [sym_cast] = ACTIONS(4970),
    [sym_catch] = ACTIONS(4970),
    [sym_class] = ACTIONS(4970),
    [sym_const] = ACTIONS(4970),
    [sym_continue] = ACTIONS(4970),
    [sym_debug] = ACTIONS(4970),
    [sym_default] = ACTIONS(4970),
    [sym_delegate] = ACTIONS(4970),
    [sym_delete] = ACTIONS(4970),
    [sym_deprecated] = ACTIONS(4970),
    [sym_do] = ACTIONS(4970),
    [sym_else] = ACTIONS(4970),
    [sym_enum] = ACTIONS(4970),
    [sym_export] = ACTIONS(4970),
    [sym_extern] = ACTIONS(4970),
    [sym_final] = ACTIONS(4970),
    [sym_finally] = ACTIONS(4970),
    [sym_for] = ACTIONS(4970),
    [sym_foreach] = ACTIONS(4970),
    [sym_foreach_reverse] = ACTIONS(4970),
    [sym_function] = ACTIONS(4970),
    [sym_goto] = ACTIONS(4970),
    [sym_if] = ACTIONS(4970),
    [sym_immutable] = ACTIONS(4970),
    [sym_import] = ACTIONS(4970),
    [sym_in] = ACTIONS(4970),
    [sym_inout] = ACTIONS(4970),
    [sym_interface] = ACTIONS(4970),
    [sym_invariant] = ACTIONS(4970),
    [sym_is] = ACTIONS(4970),
    [sym_mixin] = ACTIONS(4970),
    [sym_new] = ACTIONS(4970),
    [sym_nothrow] = ACTIONS(4970),
    [sym_out] = ACTIONS(4970),
    [sym_override] = ACTIONS(4970),
    [sym_package] = ACTIONS(4970),
    [sym_pragma] = ACTIONS(4970),
    [sym_private] = ACTIONS(4970),
    [sym_protected] = ACTIONS(4970),
    [sym_public] = ACTIONS(4970),
    [sym_pure] = ACTIONS(4970),
    [sym_ref] = ACTIONS(4970),
    [sym_return] = ACTIONS(4970),
    [sym_scope] = ACTIONS(4970),
    [sym_shared] = ACTIONS(4970),
    [sym_static] = ACTIONS(4970),
    [sym_struct] = ACTIONS(4970),
    [sym_switch] = ACTIONS(4970),
    [sym_synchronized] = ACTIONS(4970),
    [sym_template] = ACTIONS(4970),
    [sym_throw] = ACTIONS(4970),
    [sym_try] = ACTIONS(4970),
    [sym_typeid] = ACTIONS(4970),
    [sym_typeof] = ACTIONS(4970),
    [sym_union] = ACTIONS(4970),
    [sym_unittest] = ACTIONS(4970),
    [sym_version] = ACTIONS(4970),
    [sym_while] = ACTIONS(4970),
    [sym_with] = ACTIONS(4970),
    [sym_gshared] = ACTIONS(4970),
    [sym_traits] = ACTIONS(4970),
    [sym_vector] = ACTIONS(4970),
    [sym_void] = ACTIONS(4970),
    [anon_sym_BQUOTE] = ACTIONS(4972),
    [anon_sym_r_DQUOTE] = ACTIONS(4972),
    [anon_sym_x_DQUOTE] = ACTIONS(4972),
    [anon_sym_DQUOTE] = ACTIONS(4972),
    [anon_sym_i_BQUOTE] = ACTIONS(4972),
    [anon_sym_i_DQUOTE] = ACTIONS(4972),
    [anon_sym_iq_LBRACE] = ACTIONS(4972),
    [aux_sym_char_literal_token1] = ACTIONS(4972),
    [anon_sym_SQUOTE] = ACTIONS(4970),
    [anon_sym___DATE__] = ACTIONS(4970),
    [anon_sym___FILE__] = ACTIONS(4970),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4970),
    [anon_sym___FUNCTION__] = ACTIONS(4970),
    [anon_sym___LINE__] = ACTIONS(4970),
    [anon_sym___MODULE__] = ACTIONS(4970),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4970),
    [anon_sym___TIME__] = ACTIONS(4970),
    [anon_sym___TIMESTAMP__] = ACTIONS(4970),
    [anon_sym___VENDOR__] = ACTIONS(4970),
    [anon_sym___VERSION__] = ACTIONS(4970),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4972),
    [sym_float_literal] = ACTIONS(4972),
    [sym__string] = ACTIONS(4972),
  },
  [1530] = {
    [sym_identifier] = ACTIONS(4974),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4976),
    [anon_sym_RBRACE] = ACTIONS(4976),
    [anon_sym_LBRACE] = ACTIONS(4976),
    [anon_sym_DOT] = ACTIONS(4976),
    [anon_sym_AMP] = ACTIONS(4976),
    [anon_sym_DASH] = ACTIONS(4974),
    [anon_sym_DASH_DASH] = ACTIONS(4976),
    [anon_sym_PLUS] = ACTIONS(4974),
    [anon_sym_PLUS_PLUS] = ACTIONS(4976),
    [anon_sym_BANG] = ACTIONS(4976),
    [anon_sym_LPAREN] = ACTIONS(4976),
    [anon_sym_RPAREN] = ACTIONS(4976),
    [anon_sym_LBRACK] = ACTIONS(4976),
    [anon_sym_SEMI] = ACTIONS(4976),
    [anon_sym_DOLLAR] = ACTIONS(4976),
    [anon_sym_STAR] = ACTIONS(4976),
    [anon_sym_TILDE] = ACTIONS(4976),
    [anon_sym_AT] = ACTIONS(4976),
    [sym_bool] = ACTIONS(4974),
    [sym_byte] = ACTIONS(4974),
    [sym_ubyte] = ACTIONS(4974),
    [sym_char] = ACTIONS(4974),
    [sym_short] = ACTIONS(4974),
    [sym_ushort] = ACTIONS(4974),
    [sym_int] = ACTIONS(4974),
    [sym_uint] = ACTIONS(4974),
    [sym_long] = ACTIONS(4974),
    [sym_ulong] = ACTIONS(4974),
    [sym_cent] = ACTIONS(4974),
    [sym_ucent] = ACTIONS(4974),
    [sym_wchar] = ACTIONS(4974),
    [sym_dchar] = ACTIONS(4974),
    [sym_float] = ACTIONS(4974),
    [sym_double] = ACTIONS(4974),
    [sym_real] = ACTIONS(4974),
    [sym_ifloat] = ACTIONS(4974),
    [sym_idouble] = ACTIONS(4974),
    [sym_ireal] = ACTIONS(4974),
    [sym_cfloat] = ACTIONS(4974),
    [sym_cdouble] = ACTIONS(4974),
    [sym_creal] = ACTIONS(4974),
    [sym_size_t] = ACTIONS(4974),
    [sym_ptrdiff_t] = ACTIONS(4974),
    [sym_string] = ACTIONS(4974),
    [sym_cstring] = ACTIONS(4974),
    [sym_dstring] = ACTIONS(4974),
    [sym_wstring] = ACTIONS(4974),
    [sym_noreturn] = ACTIONS(4974),
    [sym_true] = ACTIONS(4974),
    [sym_false] = ACTIONS(4974),
    [sym_null] = ACTIONS(4974),
    [sym_super] = ACTIONS(4974),
    [sym_this] = ACTIONS(4974),
    [sym_abstract] = ACTIONS(4974),
    [sym_alias] = ACTIONS(4974),
    [sym_align] = ACTIONS(4974),
    [sym_asm] = ACTIONS(4974),
    [sym_assert] = ACTIONS(4974),
    [sym_auto] = ACTIONS(4974),
    [sym_break] = ACTIONS(4974),
    [sym_case] = ACTIONS(4974),
    [sym_cast] = ACTIONS(4974),
    [sym_catch] = ACTIONS(4974),
    [sym_class] = ACTIONS(4974),
    [sym_const] = ACTIONS(4974),
    [sym_continue] = ACTIONS(4974),
    [sym_debug] = ACTIONS(4974),
    [sym_default] = ACTIONS(4974),
    [sym_delegate] = ACTIONS(4974),
    [sym_delete] = ACTIONS(4974),
    [sym_deprecated] = ACTIONS(4974),
    [sym_do] = ACTIONS(4974),
    [sym_else] = ACTIONS(4974),
    [sym_enum] = ACTIONS(4974),
    [sym_export] = ACTIONS(4974),
    [sym_extern] = ACTIONS(4974),
    [sym_final] = ACTIONS(4974),
    [sym_finally] = ACTIONS(4974),
    [sym_for] = ACTIONS(4974),
    [sym_foreach] = ACTIONS(4974),
    [sym_foreach_reverse] = ACTIONS(4974),
    [sym_function] = ACTIONS(4974),
    [sym_goto] = ACTIONS(4974),
    [sym_if] = ACTIONS(4974),
    [sym_immutable] = ACTIONS(4974),
    [sym_import] = ACTIONS(4974),
    [sym_in] = ACTIONS(4974),
    [sym_inout] = ACTIONS(4974),
    [sym_interface] = ACTIONS(4974),
    [sym_invariant] = ACTIONS(4974),
    [sym_is] = ACTIONS(4974),
    [sym_mixin] = ACTIONS(4974),
    [sym_new] = ACTIONS(4974),
    [sym_nothrow] = ACTIONS(4974),
    [sym_out] = ACTIONS(4974),
    [sym_override] = ACTIONS(4974),
    [sym_package] = ACTIONS(4974),
    [sym_pragma] = ACTIONS(4974),
    [sym_private] = ACTIONS(4974),
    [sym_protected] = ACTIONS(4974),
    [sym_public] = ACTIONS(4974),
    [sym_pure] = ACTIONS(4974),
    [sym_ref] = ACTIONS(4974),
    [sym_return] = ACTIONS(4974),
    [sym_scope] = ACTIONS(4974),
    [sym_shared] = ACTIONS(4974),
    [sym_static] = ACTIONS(4974),
    [sym_struct] = ACTIONS(4974),
    [sym_switch] = ACTIONS(4974),
    [sym_synchronized] = ACTIONS(4974),
    [sym_template] = ACTIONS(4974),
    [sym_throw] = ACTIONS(4974),
    [sym_try] = ACTIONS(4974),
    [sym_typeid] = ACTIONS(4974),
    [sym_typeof] = ACTIONS(4974),
    [sym_union] = ACTIONS(4974),
    [sym_unittest] = ACTIONS(4974),
    [sym_version] = ACTIONS(4974),
    [sym_while] = ACTIONS(4974),
    [sym_with] = ACTIONS(4974),
    [sym_gshared] = ACTIONS(4974),
    [sym_traits] = ACTIONS(4974),
    [sym_vector] = ACTIONS(4974),
    [sym_void] = ACTIONS(4974),
    [anon_sym_BQUOTE] = ACTIONS(4976),
    [anon_sym_r_DQUOTE] = ACTIONS(4976),
    [anon_sym_x_DQUOTE] = ACTIONS(4976),
    [anon_sym_DQUOTE] = ACTIONS(4976),
    [anon_sym_i_BQUOTE] = ACTIONS(4976),
    [anon_sym_i_DQUOTE] = ACTIONS(4976),
    [anon_sym_iq_LBRACE] = ACTIONS(4976),
    [aux_sym_char_literal_token1] = ACTIONS(4976),
    [anon_sym_SQUOTE] = ACTIONS(4974),
    [anon_sym___DATE__] = ACTIONS(4974),
    [anon_sym___FILE__] = ACTIONS(4974),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4974),
    [anon_sym___FUNCTION__] = ACTIONS(4974),
    [anon_sym___LINE__] = ACTIONS(4974),
    [anon_sym___MODULE__] = ACTIONS(4974),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4974),
    [anon_sym___TIME__] = ACTIONS(4974),
    [anon_sym___TIMESTAMP__] = ACTIONS(4974),
    [anon_sym___VENDOR__] = ACTIONS(4974),
    [anon_sym___VERSION__] = ACTIONS(4974),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4976),
    [sym_float_literal] = ACTIONS(4976),
    [sym__string] = ACTIONS(4976),
  },
  [1531] = {
    [sym_identifier] = ACTIONS(4978),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4980),
    [anon_sym_RBRACE] = ACTIONS(4980),
    [anon_sym_LBRACE] = ACTIONS(4980),
    [anon_sym_DOT] = ACTIONS(4980),
    [anon_sym_AMP] = ACTIONS(4980),
    [anon_sym_DASH] = ACTIONS(4978),
    [anon_sym_DASH_DASH] = ACTIONS(4980),
    [anon_sym_PLUS] = ACTIONS(4978),
    [anon_sym_PLUS_PLUS] = ACTIONS(4980),
    [anon_sym_BANG] = ACTIONS(4980),
    [anon_sym_LPAREN] = ACTIONS(4980),
    [anon_sym_RPAREN] = ACTIONS(4980),
    [anon_sym_LBRACK] = ACTIONS(4980),
    [anon_sym_SEMI] = ACTIONS(4980),
    [anon_sym_DOLLAR] = ACTIONS(4980),
    [anon_sym_STAR] = ACTIONS(4980),
    [anon_sym_TILDE] = ACTIONS(4980),
    [anon_sym_AT] = ACTIONS(4980),
    [sym_bool] = ACTIONS(4978),
    [sym_byte] = ACTIONS(4978),
    [sym_ubyte] = ACTIONS(4978),
    [sym_char] = ACTIONS(4978),
    [sym_short] = ACTIONS(4978),
    [sym_ushort] = ACTIONS(4978),
    [sym_int] = ACTIONS(4978),
    [sym_uint] = ACTIONS(4978),
    [sym_long] = ACTIONS(4978),
    [sym_ulong] = ACTIONS(4978),
    [sym_cent] = ACTIONS(4978),
    [sym_ucent] = ACTIONS(4978),
    [sym_wchar] = ACTIONS(4978),
    [sym_dchar] = ACTIONS(4978),
    [sym_float] = ACTIONS(4978),
    [sym_double] = ACTIONS(4978),
    [sym_real] = ACTIONS(4978),
    [sym_ifloat] = ACTIONS(4978),
    [sym_idouble] = ACTIONS(4978),
    [sym_ireal] = ACTIONS(4978),
    [sym_cfloat] = ACTIONS(4978),
    [sym_cdouble] = ACTIONS(4978),
    [sym_creal] = ACTIONS(4978),
    [sym_size_t] = ACTIONS(4978),
    [sym_ptrdiff_t] = ACTIONS(4978),
    [sym_string] = ACTIONS(4978),
    [sym_cstring] = ACTIONS(4978),
    [sym_dstring] = ACTIONS(4978),
    [sym_wstring] = ACTIONS(4978),
    [sym_noreturn] = ACTIONS(4978),
    [sym_true] = ACTIONS(4978),
    [sym_false] = ACTIONS(4978),
    [sym_null] = ACTIONS(4978),
    [sym_super] = ACTIONS(4978),
    [sym_this] = ACTIONS(4978),
    [sym_abstract] = ACTIONS(4978),
    [sym_alias] = ACTIONS(4978),
    [sym_align] = ACTIONS(4978),
    [sym_asm] = ACTIONS(4978),
    [sym_assert] = ACTIONS(4978),
    [sym_auto] = ACTIONS(4978),
    [sym_break] = ACTIONS(4978),
    [sym_case] = ACTIONS(4978),
    [sym_cast] = ACTIONS(4978),
    [sym_catch] = ACTIONS(4978),
    [sym_class] = ACTIONS(4978),
    [sym_const] = ACTIONS(4978),
    [sym_continue] = ACTIONS(4978),
    [sym_debug] = ACTIONS(4978),
    [sym_default] = ACTIONS(4978),
    [sym_delegate] = ACTIONS(4978),
    [sym_delete] = ACTIONS(4978),
    [sym_deprecated] = ACTIONS(4978),
    [sym_do] = ACTIONS(4978),
    [sym_else] = ACTIONS(4978),
    [sym_enum] = ACTIONS(4978),
    [sym_export] = ACTIONS(4978),
    [sym_extern] = ACTIONS(4978),
    [sym_final] = ACTIONS(4978),
    [sym_finally] = ACTIONS(4978),
    [sym_for] = ACTIONS(4978),
    [sym_foreach] = ACTIONS(4978),
    [sym_foreach_reverse] = ACTIONS(4978),
    [sym_function] = ACTIONS(4978),
    [sym_goto] = ACTIONS(4978),
    [sym_if] = ACTIONS(4978),
    [sym_immutable] = ACTIONS(4978),
    [sym_import] = ACTIONS(4978),
    [sym_in] = ACTIONS(4978),
    [sym_inout] = ACTIONS(4978),
    [sym_interface] = ACTIONS(4978),
    [sym_invariant] = ACTIONS(4978),
    [sym_is] = ACTIONS(4978),
    [sym_mixin] = ACTIONS(4978),
    [sym_new] = ACTIONS(4978),
    [sym_nothrow] = ACTIONS(4978),
    [sym_out] = ACTIONS(4978),
    [sym_override] = ACTIONS(4978),
    [sym_package] = ACTIONS(4978),
    [sym_pragma] = ACTIONS(4978),
    [sym_private] = ACTIONS(4978),
    [sym_protected] = ACTIONS(4978),
    [sym_public] = ACTIONS(4978),
    [sym_pure] = ACTIONS(4978),
    [sym_ref] = ACTIONS(4978),
    [sym_return] = ACTIONS(4978),
    [sym_scope] = ACTIONS(4978),
    [sym_shared] = ACTIONS(4978),
    [sym_static] = ACTIONS(4978),
    [sym_struct] = ACTIONS(4978),
    [sym_switch] = ACTIONS(4978),
    [sym_synchronized] = ACTIONS(4978),
    [sym_template] = ACTIONS(4978),
    [sym_throw] = ACTIONS(4978),
    [sym_try] = ACTIONS(4978),
    [sym_typeid] = ACTIONS(4978),
    [sym_typeof] = ACTIONS(4978),
    [sym_union] = ACTIONS(4978),
    [sym_unittest] = ACTIONS(4978),
    [sym_version] = ACTIONS(4978),
    [sym_while] = ACTIONS(4978),
    [sym_with] = ACTIONS(4978),
    [sym_gshared] = ACTIONS(4978),
    [sym_traits] = ACTIONS(4978),
    [sym_vector] = ACTIONS(4978),
    [sym_void] = ACTIONS(4978),
    [anon_sym_BQUOTE] = ACTIONS(4980),
    [anon_sym_r_DQUOTE] = ACTIONS(4980),
    [anon_sym_x_DQUOTE] = ACTIONS(4980),
    [anon_sym_DQUOTE] = ACTIONS(4980),
    [anon_sym_i_BQUOTE] = ACTIONS(4980),
    [anon_sym_i_DQUOTE] = ACTIONS(4980),
    [anon_sym_iq_LBRACE] = ACTIONS(4980),
    [aux_sym_char_literal_token1] = ACTIONS(4980),
    [anon_sym_SQUOTE] = ACTIONS(4978),
    [anon_sym___DATE__] = ACTIONS(4978),
    [anon_sym___FILE__] = ACTIONS(4978),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4978),
    [anon_sym___FUNCTION__] = ACTIONS(4978),
    [anon_sym___LINE__] = ACTIONS(4978),
    [anon_sym___MODULE__] = ACTIONS(4978),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4978),
    [anon_sym___TIME__] = ACTIONS(4978),
    [anon_sym___TIMESTAMP__] = ACTIONS(4978),
    [anon_sym___VENDOR__] = ACTIONS(4978),
    [anon_sym___VERSION__] = ACTIONS(4978),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4980),
    [sym_float_literal] = ACTIONS(4980),
    [sym__string] = ACTIONS(4980),
  },
  [1532] = {
    [sym_identifier] = ACTIONS(4982),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4984),
    [anon_sym_RBRACE] = ACTIONS(4984),
    [anon_sym_LBRACE] = ACTIONS(4984),
    [anon_sym_DOT] = ACTIONS(4984),
    [anon_sym_AMP] = ACTIONS(4984),
    [anon_sym_DASH] = ACTIONS(4982),
    [anon_sym_DASH_DASH] = ACTIONS(4984),
    [anon_sym_PLUS] = ACTIONS(4982),
    [anon_sym_PLUS_PLUS] = ACTIONS(4984),
    [anon_sym_BANG] = ACTIONS(4984),
    [anon_sym_LPAREN] = ACTIONS(4984),
    [anon_sym_RPAREN] = ACTIONS(4984),
    [anon_sym_LBRACK] = ACTIONS(4984),
    [anon_sym_SEMI] = ACTIONS(4984),
    [anon_sym_DOLLAR] = ACTIONS(4984),
    [anon_sym_STAR] = ACTIONS(4984),
    [anon_sym_TILDE] = ACTIONS(4984),
    [anon_sym_AT] = ACTIONS(4984),
    [sym_bool] = ACTIONS(4982),
    [sym_byte] = ACTIONS(4982),
    [sym_ubyte] = ACTIONS(4982),
    [sym_char] = ACTIONS(4982),
    [sym_short] = ACTIONS(4982),
    [sym_ushort] = ACTIONS(4982),
    [sym_int] = ACTIONS(4982),
    [sym_uint] = ACTIONS(4982),
    [sym_long] = ACTIONS(4982),
    [sym_ulong] = ACTIONS(4982),
    [sym_cent] = ACTIONS(4982),
    [sym_ucent] = ACTIONS(4982),
    [sym_wchar] = ACTIONS(4982),
    [sym_dchar] = ACTIONS(4982),
    [sym_float] = ACTIONS(4982),
    [sym_double] = ACTIONS(4982),
    [sym_real] = ACTIONS(4982),
    [sym_ifloat] = ACTIONS(4982),
    [sym_idouble] = ACTIONS(4982),
    [sym_ireal] = ACTIONS(4982),
    [sym_cfloat] = ACTIONS(4982),
    [sym_cdouble] = ACTIONS(4982),
    [sym_creal] = ACTIONS(4982),
    [sym_size_t] = ACTIONS(4982),
    [sym_ptrdiff_t] = ACTIONS(4982),
    [sym_string] = ACTIONS(4982),
    [sym_cstring] = ACTIONS(4982),
    [sym_dstring] = ACTIONS(4982),
    [sym_wstring] = ACTIONS(4982),
    [sym_noreturn] = ACTIONS(4982),
    [sym_true] = ACTIONS(4982),
    [sym_false] = ACTIONS(4982),
    [sym_null] = ACTIONS(4982),
    [sym_super] = ACTIONS(4982),
    [sym_this] = ACTIONS(4982),
    [sym_abstract] = ACTIONS(4982),
    [sym_alias] = ACTIONS(4982),
    [sym_align] = ACTIONS(4982),
    [sym_asm] = ACTIONS(4982),
    [sym_assert] = ACTIONS(4982),
    [sym_auto] = ACTIONS(4982),
    [sym_break] = ACTIONS(4982),
    [sym_case] = ACTIONS(4982),
    [sym_cast] = ACTIONS(4982),
    [sym_catch] = ACTIONS(4982),
    [sym_class] = ACTIONS(4982),
    [sym_const] = ACTIONS(4982),
    [sym_continue] = ACTIONS(4982),
    [sym_debug] = ACTIONS(4982),
    [sym_default] = ACTIONS(4982),
    [sym_delegate] = ACTIONS(4982),
    [sym_delete] = ACTIONS(4982),
    [sym_deprecated] = ACTIONS(4982),
    [sym_do] = ACTIONS(4982),
    [sym_else] = ACTIONS(4982),
    [sym_enum] = ACTIONS(4982),
    [sym_export] = ACTIONS(4982),
    [sym_extern] = ACTIONS(4982),
    [sym_final] = ACTIONS(4982),
    [sym_finally] = ACTIONS(4982),
    [sym_for] = ACTIONS(4982),
    [sym_foreach] = ACTIONS(4982),
    [sym_foreach_reverse] = ACTIONS(4982),
    [sym_function] = ACTIONS(4982),
    [sym_goto] = ACTIONS(4982),
    [sym_if] = ACTIONS(4982),
    [sym_immutable] = ACTIONS(4982),
    [sym_import] = ACTIONS(4982),
    [sym_in] = ACTIONS(4982),
    [sym_inout] = ACTIONS(4982),
    [sym_interface] = ACTIONS(4982),
    [sym_invariant] = ACTIONS(4982),
    [sym_is] = ACTIONS(4982),
    [sym_mixin] = ACTIONS(4982),
    [sym_new] = ACTIONS(4982),
    [sym_nothrow] = ACTIONS(4982),
    [sym_out] = ACTIONS(4982),
    [sym_override] = ACTIONS(4982),
    [sym_package] = ACTIONS(4982),
    [sym_pragma] = ACTIONS(4982),
    [sym_private] = ACTIONS(4982),
    [sym_protected] = ACTIONS(4982),
    [sym_public] = ACTIONS(4982),
    [sym_pure] = ACTIONS(4982),
    [sym_ref] = ACTIONS(4982),
    [sym_return] = ACTIONS(4982),
    [sym_scope] = ACTIONS(4982),
    [sym_shared] = ACTIONS(4982),
    [sym_static] = ACTIONS(4982),
    [sym_struct] = ACTIONS(4982),
    [sym_switch] = ACTIONS(4982),
    [sym_synchronized] = ACTIONS(4982),
    [sym_template] = ACTIONS(4982),
    [sym_throw] = ACTIONS(4982),
    [sym_try] = ACTIONS(4982),
    [sym_typeid] = ACTIONS(4982),
    [sym_typeof] = ACTIONS(4982),
    [sym_union] = ACTIONS(4982),
    [sym_unittest] = ACTIONS(4982),
    [sym_version] = ACTIONS(4982),
    [sym_while] = ACTIONS(4982),
    [sym_with] = ACTIONS(4982),
    [sym_gshared] = ACTIONS(4982),
    [sym_traits] = ACTIONS(4982),
    [sym_vector] = ACTIONS(4982),
    [sym_void] = ACTIONS(4982),
    [anon_sym_BQUOTE] = ACTIONS(4984),
    [anon_sym_r_DQUOTE] = ACTIONS(4984),
    [anon_sym_x_DQUOTE] = ACTIONS(4984),
    [anon_sym_DQUOTE] = ACTIONS(4984),
    [anon_sym_i_BQUOTE] = ACTIONS(4984),
    [anon_sym_i_DQUOTE] = ACTIONS(4984),
    [anon_sym_iq_LBRACE] = ACTIONS(4984),
    [aux_sym_char_literal_token1] = ACTIONS(4984),
    [anon_sym_SQUOTE] = ACTIONS(4982),
    [anon_sym___DATE__] = ACTIONS(4982),
    [anon_sym___FILE__] = ACTIONS(4982),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4982),
    [anon_sym___FUNCTION__] = ACTIONS(4982),
    [anon_sym___LINE__] = ACTIONS(4982),
    [anon_sym___MODULE__] = ACTIONS(4982),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4982),
    [anon_sym___TIME__] = ACTIONS(4982),
    [anon_sym___TIMESTAMP__] = ACTIONS(4982),
    [anon_sym___VENDOR__] = ACTIONS(4982),
    [anon_sym___VERSION__] = ACTIONS(4982),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4984),
    [sym_float_literal] = ACTIONS(4984),
    [sym__string] = ACTIONS(4984),
  },
  [1533] = {
    [sym_identifier] = ACTIONS(4986),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4988),
    [anon_sym_RBRACE] = ACTIONS(4988),
    [anon_sym_LBRACE] = ACTIONS(4988),
    [anon_sym_DOT] = ACTIONS(4988),
    [anon_sym_AMP] = ACTIONS(4988),
    [anon_sym_DASH] = ACTIONS(4986),
    [anon_sym_DASH_DASH] = ACTIONS(4988),
    [anon_sym_PLUS] = ACTIONS(4986),
    [anon_sym_PLUS_PLUS] = ACTIONS(4988),
    [anon_sym_BANG] = ACTIONS(4988),
    [anon_sym_LPAREN] = ACTIONS(4988),
    [anon_sym_RPAREN] = ACTIONS(4988),
    [anon_sym_LBRACK] = ACTIONS(4988),
    [anon_sym_SEMI] = ACTIONS(4988),
    [anon_sym_DOLLAR] = ACTIONS(4988),
    [anon_sym_STAR] = ACTIONS(4988),
    [anon_sym_TILDE] = ACTIONS(4988),
    [anon_sym_AT] = ACTIONS(4988),
    [sym_bool] = ACTIONS(4986),
    [sym_byte] = ACTIONS(4986),
    [sym_ubyte] = ACTIONS(4986),
    [sym_char] = ACTIONS(4986),
    [sym_short] = ACTIONS(4986),
    [sym_ushort] = ACTIONS(4986),
    [sym_int] = ACTIONS(4986),
    [sym_uint] = ACTIONS(4986),
    [sym_long] = ACTIONS(4986),
    [sym_ulong] = ACTIONS(4986),
    [sym_cent] = ACTIONS(4986),
    [sym_ucent] = ACTIONS(4986),
    [sym_wchar] = ACTIONS(4986),
    [sym_dchar] = ACTIONS(4986),
    [sym_float] = ACTIONS(4986),
    [sym_double] = ACTIONS(4986),
    [sym_real] = ACTIONS(4986),
    [sym_ifloat] = ACTIONS(4986),
    [sym_idouble] = ACTIONS(4986),
    [sym_ireal] = ACTIONS(4986),
    [sym_cfloat] = ACTIONS(4986),
    [sym_cdouble] = ACTIONS(4986),
    [sym_creal] = ACTIONS(4986),
    [sym_size_t] = ACTIONS(4986),
    [sym_ptrdiff_t] = ACTIONS(4986),
    [sym_string] = ACTIONS(4986),
    [sym_cstring] = ACTIONS(4986),
    [sym_dstring] = ACTIONS(4986),
    [sym_wstring] = ACTIONS(4986),
    [sym_noreturn] = ACTIONS(4986),
    [sym_true] = ACTIONS(4986),
    [sym_false] = ACTIONS(4986),
    [sym_null] = ACTIONS(4986),
    [sym_super] = ACTIONS(4986),
    [sym_this] = ACTIONS(4986),
    [sym_abstract] = ACTIONS(4986),
    [sym_alias] = ACTIONS(4986),
    [sym_align] = ACTIONS(4986),
    [sym_asm] = ACTIONS(4986),
    [sym_assert] = ACTIONS(4986),
    [sym_auto] = ACTIONS(4986),
    [sym_break] = ACTIONS(4986),
    [sym_case] = ACTIONS(4986),
    [sym_cast] = ACTIONS(4986),
    [sym_catch] = ACTIONS(4986),
    [sym_class] = ACTIONS(4986),
    [sym_const] = ACTIONS(4986),
    [sym_continue] = ACTIONS(4986),
    [sym_debug] = ACTIONS(4986),
    [sym_default] = ACTIONS(4986),
    [sym_delegate] = ACTIONS(4986),
    [sym_delete] = ACTIONS(4986),
    [sym_deprecated] = ACTIONS(4986),
    [sym_do] = ACTIONS(4986),
    [sym_else] = ACTIONS(4986),
    [sym_enum] = ACTIONS(4986),
    [sym_export] = ACTIONS(4986),
    [sym_extern] = ACTIONS(4986),
    [sym_final] = ACTIONS(4986),
    [sym_finally] = ACTIONS(4986),
    [sym_for] = ACTIONS(4986),
    [sym_foreach] = ACTIONS(4986),
    [sym_foreach_reverse] = ACTIONS(4986),
    [sym_function] = ACTIONS(4986),
    [sym_goto] = ACTIONS(4986),
    [sym_if] = ACTIONS(4986),
    [sym_immutable] = ACTIONS(4986),
    [sym_import] = ACTIONS(4986),
    [sym_in] = ACTIONS(4986),
    [sym_inout] = ACTIONS(4986),
    [sym_interface] = ACTIONS(4986),
    [sym_invariant] = ACTIONS(4986),
    [sym_is] = ACTIONS(4986),
    [sym_mixin] = ACTIONS(4986),
    [sym_new] = ACTIONS(4986),
    [sym_nothrow] = ACTIONS(4986),
    [sym_out] = ACTIONS(4986),
    [sym_override] = ACTIONS(4986),
    [sym_package] = ACTIONS(4986),
    [sym_pragma] = ACTIONS(4986),
    [sym_private] = ACTIONS(4986),
    [sym_protected] = ACTIONS(4986),
    [sym_public] = ACTIONS(4986),
    [sym_pure] = ACTIONS(4986),
    [sym_ref] = ACTIONS(4986),
    [sym_return] = ACTIONS(4986),
    [sym_scope] = ACTIONS(4986),
    [sym_shared] = ACTIONS(4986),
    [sym_static] = ACTIONS(4986),
    [sym_struct] = ACTIONS(4986),
    [sym_switch] = ACTIONS(4986),
    [sym_synchronized] = ACTIONS(4986),
    [sym_template] = ACTIONS(4986),
    [sym_throw] = ACTIONS(4986),
    [sym_try] = ACTIONS(4986),
    [sym_typeid] = ACTIONS(4986),
    [sym_typeof] = ACTIONS(4986),
    [sym_union] = ACTIONS(4986),
    [sym_unittest] = ACTIONS(4986),
    [sym_version] = ACTIONS(4986),
    [sym_while] = ACTIONS(4986),
    [sym_with] = ACTIONS(4986),
    [sym_gshared] = ACTIONS(4986),
    [sym_traits] = ACTIONS(4986),
    [sym_vector] = ACTIONS(4986),
    [sym_void] = ACTIONS(4986),
    [anon_sym_BQUOTE] = ACTIONS(4988),
    [anon_sym_r_DQUOTE] = ACTIONS(4988),
    [anon_sym_x_DQUOTE] = ACTIONS(4988),
    [anon_sym_DQUOTE] = ACTIONS(4988),
    [anon_sym_i_BQUOTE] = ACTIONS(4988),
    [anon_sym_i_DQUOTE] = ACTIONS(4988),
    [anon_sym_iq_LBRACE] = ACTIONS(4988),
    [aux_sym_char_literal_token1] = ACTIONS(4988),
    [anon_sym_SQUOTE] = ACTIONS(4986),
    [anon_sym___DATE__] = ACTIONS(4986),
    [anon_sym___FILE__] = ACTIONS(4986),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4986),
    [anon_sym___FUNCTION__] = ACTIONS(4986),
    [anon_sym___LINE__] = ACTIONS(4986),
    [anon_sym___MODULE__] = ACTIONS(4986),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4986),
    [anon_sym___TIME__] = ACTIONS(4986),
    [anon_sym___TIMESTAMP__] = ACTIONS(4986),
    [anon_sym___VENDOR__] = ACTIONS(4986),
    [anon_sym___VERSION__] = ACTIONS(4986),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4988),
    [sym_float_literal] = ACTIONS(4988),
    [sym__string] = ACTIONS(4988),
  },
  [1534] = {
    [sym_identifier] = ACTIONS(4990),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4992),
    [anon_sym_RBRACE] = ACTIONS(4992),
    [anon_sym_LBRACE] = ACTIONS(4992),
    [anon_sym_DOT] = ACTIONS(4992),
    [anon_sym_AMP] = ACTIONS(4992),
    [anon_sym_DASH] = ACTIONS(4990),
    [anon_sym_DASH_DASH] = ACTIONS(4992),
    [anon_sym_PLUS] = ACTIONS(4990),
    [anon_sym_PLUS_PLUS] = ACTIONS(4992),
    [anon_sym_BANG] = ACTIONS(4992),
    [anon_sym_LPAREN] = ACTIONS(4992),
    [anon_sym_RPAREN] = ACTIONS(4992),
    [anon_sym_LBRACK] = ACTIONS(4992),
    [anon_sym_SEMI] = ACTIONS(4992),
    [anon_sym_DOLLAR] = ACTIONS(4992),
    [anon_sym_STAR] = ACTIONS(4992),
    [anon_sym_TILDE] = ACTIONS(4992),
    [anon_sym_AT] = ACTIONS(4992),
    [sym_bool] = ACTIONS(4990),
    [sym_byte] = ACTIONS(4990),
    [sym_ubyte] = ACTIONS(4990),
    [sym_char] = ACTIONS(4990),
    [sym_short] = ACTIONS(4990),
    [sym_ushort] = ACTIONS(4990),
    [sym_int] = ACTIONS(4990),
    [sym_uint] = ACTIONS(4990),
    [sym_long] = ACTIONS(4990),
    [sym_ulong] = ACTIONS(4990),
    [sym_cent] = ACTIONS(4990),
    [sym_ucent] = ACTIONS(4990),
    [sym_wchar] = ACTIONS(4990),
    [sym_dchar] = ACTIONS(4990),
    [sym_float] = ACTIONS(4990),
    [sym_double] = ACTIONS(4990),
    [sym_real] = ACTIONS(4990),
    [sym_ifloat] = ACTIONS(4990),
    [sym_idouble] = ACTIONS(4990),
    [sym_ireal] = ACTIONS(4990),
    [sym_cfloat] = ACTIONS(4990),
    [sym_cdouble] = ACTIONS(4990),
    [sym_creal] = ACTIONS(4990),
    [sym_size_t] = ACTIONS(4990),
    [sym_ptrdiff_t] = ACTIONS(4990),
    [sym_string] = ACTIONS(4990),
    [sym_cstring] = ACTIONS(4990),
    [sym_dstring] = ACTIONS(4990),
    [sym_wstring] = ACTIONS(4990),
    [sym_noreturn] = ACTIONS(4990),
    [sym_true] = ACTIONS(4990),
    [sym_false] = ACTIONS(4990),
    [sym_null] = ACTIONS(4990),
    [sym_super] = ACTIONS(4990),
    [sym_this] = ACTIONS(4990),
    [sym_abstract] = ACTIONS(4990),
    [sym_alias] = ACTIONS(4990),
    [sym_align] = ACTIONS(4990),
    [sym_asm] = ACTIONS(4990),
    [sym_assert] = ACTIONS(4990),
    [sym_auto] = ACTIONS(4990),
    [sym_break] = ACTIONS(4990),
    [sym_case] = ACTIONS(4990),
    [sym_cast] = ACTIONS(4990),
    [sym_catch] = ACTIONS(4990),
    [sym_class] = ACTIONS(4990),
    [sym_const] = ACTIONS(4990),
    [sym_continue] = ACTIONS(4990),
    [sym_debug] = ACTIONS(4990),
    [sym_default] = ACTIONS(4990),
    [sym_delegate] = ACTIONS(4990),
    [sym_delete] = ACTIONS(4990),
    [sym_deprecated] = ACTIONS(4990),
    [sym_do] = ACTIONS(4990),
    [sym_else] = ACTIONS(4990),
    [sym_enum] = ACTIONS(4990),
    [sym_export] = ACTIONS(4990),
    [sym_extern] = ACTIONS(4990),
    [sym_final] = ACTIONS(4990),
    [sym_finally] = ACTIONS(4990),
    [sym_for] = ACTIONS(4990),
    [sym_foreach] = ACTIONS(4990),
    [sym_foreach_reverse] = ACTIONS(4990),
    [sym_function] = ACTIONS(4990),
    [sym_goto] = ACTIONS(4990),
    [sym_if] = ACTIONS(4990),
    [sym_immutable] = ACTIONS(4990),
    [sym_import] = ACTIONS(4990),
    [sym_in] = ACTIONS(4990),
    [sym_inout] = ACTIONS(4990),
    [sym_interface] = ACTIONS(4990),
    [sym_invariant] = ACTIONS(4990),
    [sym_is] = ACTIONS(4990),
    [sym_mixin] = ACTIONS(4990),
    [sym_new] = ACTIONS(4990),
    [sym_nothrow] = ACTIONS(4990),
    [sym_out] = ACTIONS(4990),
    [sym_override] = ACTIONS(4990),
    [sym_package] = ACTIONS(4990),
    [sym_pragma] = ACTIONS(4990),
    [sym_private] = ACTIONS(4990),
    [sym_protected] = ACTIONS(4990),
    [sym_public] = ACTIONS(4990),
    [sym_pure] = ACTIONS(4990),
    [sym_ref] = ACTIONS(4990),
    [sym_return] = ACTIONS(4990),
    [sym_scope] = ACTIONS(4990),
    [sym_shared] = ACTIONS(4990),
    [sym_static] = ACTIONS(4990),
    [sym_struct] = ACTIONS(4990),
    [sym_switch] = ACTIONS(4990),
    [sym_synchronized] = ACTIONS(4990),
    [sym_template] = ACTIONS(4990),
    [sym_throw] = ACTIONS(4990),
    [sym_try] = ACTIONS(4990),
    [sym_typeid] = ACTIONS(4990),
    [sym_typeof] = ACTIONS(4990),
    [sym_union] = ACTIONS(4990),
    [sym_unittest] = ACTIONS(4990),
    [sym_version] = ACTIONS(4990),
    [sym_while] = ACTIONS(4990),
    [sym_with] = ACTIONS(4990),
    [sym_gshared] = ACTIONS(4990),
    [sym_traits] = ACTIONS(4990),
    [sym_vector] = ACTIONS(4990),
    [sym_void] = ACTIONS(4990),
    [anon_sym_BQUOTE] = ACTIONS(4992),
    [anon_sym_r_DQUOTE] = ACTIONS(4992),
    [anon_sym_x_DQUOTE] = ACTIONS(4992),
    [anon_sym_DQUOTE] = ACTIONS(4992),
    [anon_sym_i_BQUOTE] = ACTIONS(4992),
    [anon_sym_i_DQUOTE] = ACTIONS(4992),
    [anon_sym_iq_LBRACE] = ACTIONS(4992),
    [aux_sym_char_literal_token1] = ACTIONS(4992),
    [anon_sym_SQUOTE] = ACTIONS(4990),
    [anon_sym___DATE__] = ACTIONS(4990),
    [anon_sym___FILE__] = ACTIONS(4990),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4990),
    [anon_sym___FUNCTION__] = ACTIONS(4990),
    [anon_sym___LINE__] = ACTIONS(4990),
    [anon_sym___MODULE__] = ACTIONS(4990),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4990),
    [anon_sym___TIME__] = ACTIONS(4990),
    [anon_sym___TIMESTAMP__] = ACTIONS(4990),
    [anon_sym___VENDOR__] = ACTIONS(4990),
    [anon_sym___VERSION__] = ACTIONS(4990),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4992),
    [sym_float_literal] = ACTIONS(4992),
    [sym__string] = ACTIONS(4992),
  },
  [1535] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_RBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [anon_sym_AT] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_abstract] = ACTIONS(4640),
    [sym_alias] = ACTIONS(4640),
    [sym_align] = ACTIONS(4640),
    [sym_asm] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_break] = ACTIONS(4640),
    [sym_case] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_catch] = ACTIONS(4640),
    [sym_class] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_continue] = ACTIONS(4640),
    [sym_debug] = ACTIONS(4640),
    [sym_default] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_deprecated] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(4994),
    [sym_enum] = ACTIONS(4640),
    [sym_export] = ACTIONS(4640),
    [sym_extern] = ACTIONS(4640),
    [sym_final] = ACTIONS(4640),
    [sym_finally] = ACTIONS(4640),
    [sym_for] = ACTIONS(4640),
    [sym_foreach] = ACTIONS(4640),
    [sym_foreach_reverse] = ACTIONS(4640),
    [sym_function] = ACTIONS(4640),
    [sym_goto] = ACTIONS(4640),
    [sym_if] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_interface] = ACTIONS(4640),
    [sym_invariant] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_nothrow] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_override] = ACTIONS(4640),
    [sym_package] = ACTIONS(4640),
    [sym_pragma] = ACTIONS(4640),
    [sym_private] = ACTIONS(4640),
    [sym_protected] = ACTIONS(4640),
    [sym_public] = ACTIONS(4640),
    [sym_pure] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_return] = ACTIONS(4640),
    [sym_scope] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_static] = ACTIONS(4640),
    [sym_struct] = ACTIONS(4640),
    [sym_switch] = ACTIONS(4640),
    [sym_synchronized] = ACTIONS(4640),
    [sym_template] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_try] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_union] = ACTIONS(4640),
    [sym_unittest] = ACTIONS(4640),
    [sym_version] = ACTIONS(4640),
    [sym_while] = ACTIONS(4640),
    [sym_with] = ACTIONS(4640),
    [sym_gshared] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [1536] = {
    [sym_identifier] = ACTIONS(4996),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4998),
    [anon_sym_RBRACE] = ACTIONS(4998),
    [anon_sym_LBRACE] = ACTIONS(4998),
    [anon_sym_DOT] = ACTIONS(4998),
    [anon_sym_AMP] = ACTIONS(4998),
    [anon_sym_DASH] = ACTIONS(4996),
    [anon_sym_DASH_DASH] = ACTIONS(4998),
    [anon_sym_PLUS] = ACTIONS(4996),
    [anon_sym_PLUS_PLUS] = ACTIONS(4998),
    [anon_sym_BANG] = ACTIONS(4998),
    [anon_sym_LPAREN] = ACTIONS(4998),
    [anon_sym_RPAREN] = ACTIONS(4998),
    [anon_sym_LBRACK] = ACTIONS(4998),
    [anon_sym_SEMI] = ACTIONS(4998),
    [anon_sym_DOLLAR] = ACTIONS(4998),
    [anon_sym_STAR] = ACTIONS(4998),
    [anon_sym_TILDE] = ACTIONS(4998),
    [anon_sym_AT] = ACTIONS(4998),
    [sym_bool] = ACTIONS(4996),
    [sym_byte] = ACTIONS(4996),
    [sym_ubyte] = ACTIONS(4996),
    [sym_char] = ACTIONS(4996),
    [sym_short] = ACTIONS(4996),
    [sym_ushort] = ACTIONS(4996),
    [sym_int] = ACTIONS(4996),
    [sym_uint] = ACTIONS(4996),
    [sym_long] = ACTIONS(4996),
    [sym_ulong] = ACTIONS(4996),
    [sym_cent] = ACTIONS(4996),
    [sym_ucent] = ACTIONS(4996),
    [sym_wchar] = ACTIONS(4996),
    [sym_dchar] = ACTIONS(4996),
    [sym_float] = ACTIONS(4996),
    [sym_double] = ACTIONS(4996),
    [sym_real] = ACTIONS(4996),
    [sym_ifloat] = ACTIONS(4996),
    [sym_idouble] = ACTIONS(4996),
    [sym_ireal] = ACTIONS(4996),
    [sym_cfloat] = ACTIONS(4996),
    [sym_cdouble] = ACTIONS(4996),
    [sym_creal] = ACTIONS(4996),
    [sym_size_t] = ACTIONS(4996),
    [sym_ptrdiff_t] = ACTIONS(4996),
    [sym_string] = ACTIONS(4996),
    [sym_cstring] = ACTIONS(4996),
    [sym_dstring] = ACTIONS(4996),
    [sym_wstring] = ACTIONS(4996),
    [sym_noreturn] = ACTIONS(4996),
    [sym_true] = ACTIONS(4996),
    [sym_false] = ACTIONS(4996),
    [sym_null] = ACTIONS(4996),
    [sym_super] = ACTIONS(4996),
    [sym_this] = ACTIONS(4996),
    [sym_abstract] = ACTIONS(4996),
    [sym_alias] = ACTIONS(4996),
    [sym_align] = ACTIONS(4996),
    [sym_asm] = ACTIONS(4996),
    [sym_assert] = ACTIONS(4996),
    [sym_auto] = ACTIONS(4996),
    [sym_break] = ACTIONS(4996),
    [sym_case] = ACTIONS(4996),
    [sym_cast] = ACTIONS(4996),
    [sym_catch] = ACTIONS(4996),
    [sym_class] = ACTIONS(4996),
    [sym_const] = ACTIONS(4996),
    [sym_continue] = ACTIONS(4996),
    [sym_debug] = ACTIONS(4996),
    [sym_default] = ACTIONS(4996),
    [sym_delegate] = ACTIONS(4996),
    [sym_delete] = ACTIONS(4996),
    [sym_deprecated] = ACTIONS(4996),
    [sym_do] = ACTIONS(4996),
    [sym_else] = ACTIONS(4996),
    [sym_enum] = ACTIONS(4996),
    [sym_export] = ACTIONS(4996),
    [sym_extern] = ACTIONS(4996),
    [sym_final] = ACTIONS(4996),
    [sym_finally] = ACTIONS(4996),
    [sym_for] = ACTIONS(4996),
    [sym_foreach] = ACTIONS(4996),
    [sym_foreach_reverse] = ACTIONS(4996),
    [sym_function] = ACTIONS(4996),
    [sym_goto] = ACTIONS(4996),
    [sym_if] = ACTIONS(4996),
    [sym_immutable] = ACTIONS(4996),
    [sym_import] = ACTIONS(4996),
    [sym_in] = ACTIONS(4996),
    [sym_inout] = ACTIONS(4996),
    [sym_interface] = ACTIONS(4996),
    [sym_invariant] = ACTIONS(4996),
    [sym_is] = ACTIONS(4996),
    [sym_mixin] = ACTIONS(4996),
    [sym_new] = ACTIONS(4996),
    [sym_nothrow] = ACTIONS(4996),
    [sym_out] = ACTIONS(4996),
    [sym_override] = ACTIONS(4996),
    [sym_package] = ACTIONS(4996),
    [sym_pragma] = ACTIONS(4996),
    [sym_private] = ACTIONS(4996),
    [sym_protected] = ACTIONS(4996),
    [sym_public] = ACTIONS(4996),
    [sym_pure] = ACTIONS(4996),
    [sym_ref] = ACTIONS(4996),
    [sym_return] = ACTIONS(4996),
    [sym_scope] = ACTIONS(4996),
    [sym_shared] = ACTIONS(4996),
    [sym_static] = ACTIONS(4996),
    [sym_struct] = ACTIONS(4996),
    [sym_switch] = ACTIONS(4996),
    [sym_synchronized] = ACTIONS(4996),
    [sym_template] = ACTIONS(4996),
    [sym_throw] = ACTIONS(4996),
    [sym_try] = ACTIONS(4996),
    [sym_typeid] = ACTIONS(4996),
    [sym_typeof] = ACTIONS(4996),
    [sym_union] = ACTIONS(4996),
    [sym_unittest] = ACTIONS(4996),
    [sym_version] = ACTIONS(4996),
    [sym_while] = ACTIONS(4996),
    [sym_with] = ACTIONS(4996),
    [sym_gshared] = ACTIONS(4996),
    [sym_traits] = ACTIONS(4996),
    [sym_vector] = ACTIONS(4996),
    [sym_void] = ACTIONS(4996),
    [anon_sym_BQUOTE] = ACTIONS(4998),
    [anon_sym_r_DQUOTE] = ACTIONS(4998),
    [anon_sym_x_DQUOTE] = ACTIONS(4998),
    [anon_sym_DQUOTE] = ACTIONS(4998),
    [anon_sym_i_BQUOTE] = ACTIONS(4998),
    [anon_sym_i_DQUOTE] = ACTIONS(4998),
    [anon_sym_iq_LBRACE] = ACTIONS(4998),
    [aux_sym_char_literal_token1] = ACTIONS(4998),
    [anon_sym_SQUOTE] = ACTIONS(4996),
    [anon_sym___DATE__] = ACTIONS(4996),
    [anon_sym___FILE__] = ACTIONS(4996),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4996),
    [anon_sym___FUNCTION__] = ACTIONS(4996),
    [anon_sym___LINE__] = ACTIONS(4996),
    [anon_sym___MODULE__] = ACTIONS(4996),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4996),
    [anon_sym___TIME__] = ACTIONS(4996),
    [anon_sym___TIMESTAMP__] = ACTIONS(4996),
    [anon_sym___VENDOR__] = ACTIONS(4996),
    [anon_sym___VERSION__] = ACTIONS(4996),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4998),
    [sym_float_literal] = ACTIONS(4998),
    [sym__string] = ACTIONS(4998),
  },
  [1537] = {
    [sym_identifier] = ACTIONS(5000),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5002),
    [anon_sym_RBRACE] = ACTIONS(5002),
    [anon_sym_LBRACE] = ACTIONS(5002),
    [anon_sym_DOT] = ACTIONS(5002),
    [anon_sym_AMP] = ACTIONS(5002),
    [anon_sym_DASH] = ACTIONS(5000),
    [anon_sym_DASH_DASH] = ACTIONS(5002),
    [anon_sym_PLUS] = ACTIONS(5000),
    [anon_sym_PLUS_PLUS] = ACTIONS(5002),
    [anon_sym_BANG] = ACTIONS(5002),
    [anon_sym_LPAREN] = ACTIONS(5002),
    [anon_sym_RPAREN] = ACTIONS(5002),
    [anon_sym_LBRACK] = ACTIONS(5002),
    [anon_sym_SEMI] = ACTIONS(5002),
    [anon_sym_DOLLAR] = ACTIONS(5002),
    [anon_sym_STAR] = ACTIONS(5002),
    [anon_sym_TILDE] = ACTIONS(5002),
    [anon_sym_AT] = ACTIONS(5002),
    [sym_bool] = ACTIONS(5000),
    [sym_byte] = ACTIONS(5000),
    [sym_ubyte] = ACTIONS(5000),
    [sym_char] = ACTIONS(5000),
    [sym_short] = ACTIONS(5000),
    [sym_ushort] = ACTIONS(5000),
    [sym_int] = ACTIONS(5000),
    [sym_uint] = ACTIONS(5000),
    [sym_long] = ACTIONS(5000),
    [sym_ulong] = ACTIONS(5000),
    [sym_cent] = ACTIONS(5000),
    [sym_ucent] = ACTIONS(5000),
    [sym_wchar] = ACTIONS(5000),
    [sym_dchar] = ACTIONS(5000),
    [sym_float] = ACTIONS(5000),
    [sym_double] = ACTIONS(5000),
    [sym_real] = ACTIONS(5000),
    [sym_ifloat] = ACTIONS(5000),
    [sym_idouble] = ACTIONS(5000),
    [sym_ireal] = ACTIONS(5000),
    [sym_cfloat] = ACTIONS(5000),
    [sym_cdouble] = ACTIONS(5000),
    [sym_creal] = ACTIONS(5000),
    [sym_size_t] = ACTIONS(5000),
    [sym_ptrdiff_t] = ACTIONS(5000),
    [sym_string] = ACTIONS(5000),
    [sym_cstring] = ACTIONS(5000),
    [sym_dstring] = ACTIONS(5000),
    [sym_wstring] = ACTIONS(5000),
    [sym_noreturn] = ACTIONS(5000),
    [sym_true] = ACTIONS(5000),
    [sym_false] = ACTIONS(5000),
    [sym_null] = ACTIONS(5000),
    [sym_super] = ACTIONS(5000),
    [sym_this] = ACTIONS(5000),
    [sym_abstract] = ACTIONS(5000),
    [sym_alias] = ACTIONS(5000),
    [sym_align] = ACTIONS(5000),
    [sym_asm] = ACTIONS(5000),
    [sym_assert] = ACTIONS(5000),
    [sym_auto] = ACTIONS(5000),
    [sym_break] = ACTIONS(5000),
    [sym_case] = ACTIONS(5000),
    [sym_cast] = ACTIONS(5000),
    [sym_catch] = ACTIONS(5000),
    [sym_class] = ACTIONS(5000),
    [sym_const] = ACTIONS(5000),
    [sym_continue] = ACTIONS(5000),
    [sym_debug] = ACTIONS(5000),
    [sym_default] = ACTIONS(5000),
    [sym_delegate] = ACTIONS(5000),
    [sym_delete] = ACTIONS(5000),
    [sym_deprecated] = ACTIONS(5000),
    [sym_do] = ACTIONS(5000),
    [sym_else] = ACTIONS(5000),
    [sym_enum] = ACTIONS(5000),
    [sym_export] = ACTIONS(5000),
    [sym_extern] = ACTIONS(5000),
    [sym_final] = ACTIONS(5000),
    [sym_finally] = ACTIONS(5000),
    [sym_for] = ACTIONS(5000),
    [sym_foreach] = ACTIONS(5000),
    [sym_foreach_reverse] = ACTIONS(5000),
    [sym_function] = ACTIONS(5000),
    [sym_goto] = ACTIONS(5000),
    [sym_if] = ACTIONS(5000),
    [sym_immutable] = ACTIONS(5000),
    [sym_import] = ACTIONS(5000),
    [sym_in] = ACTIONS(5000),
    [sym_inout] = ACTIONS(5000),
    [sym_interface] = ACTIONS(5000),
    [sym_invariant] = ACTIONS(5000),
    [sym_is] = ACTIONS(5000),
    [sym_mixin] = ACTIONS(5000),
    [sym_new] = ACTIONS(5000),
    [sym_nothrow] = ACTIONS(5000),
    [sym_out] = ACTIONS(5000),
    [sym_override] = ACTIONS(5000),
    [sym_package] = ACTIONS(5000),
    [sym_pragma] = ACTIONS(5000),
    [sym_private] = ACTIONS(5000),
    [sym_protected] = ACTIONS(5000),
    [sym_public] = ACTIONS(5000),
    [sym_pure] = ACTIONS(5000),
    [sym_ref] = ACTIONS(5000),
    [sym_return] = ACTIONS(5000),
    [sym_scope] = ACTIONS(5000),
    [sym_shared] = ACTIONS(5000),
    [sym_static] = ACTIONS(5000),
    [sym_struct] = ACTIONS(5000),
    [sym_switch] = ACTIONS(5000),
    [sym_synchronized] = ACTIONS(5000),
    [sym_template] = ACTIONS(5000),
    [sym_throw] = ACTIONS(5000),
    [sym_try] = ACTIONS(5000),
    [sym_typeid] = ACTIONS(5000),
    [sym_typeof] = ACTIONS(5000),
    [sym_union] = ACTIONS(5000),
    [sym_unittest] = ACTIONS(5000),
    [sym_version] = ACTIONS(5000),
    [sym_while] = ACTIONS(5000),
    [sym_with] = ACTIONS(5000),
    [sym_gshared] = ACTIONS(5000),
    [sym_traits] = ACTIONS(5000),
    [sym_vector] = ACTIONS(5000),
    [sym_void] = ACTIONS(5000),
    [anon_sym_BQUOTE] = ACTIONS(5002),
    [anon_sym_r_DQUOTE] = ACTIONS(5002),
    [anon_sym_x_DQUOTE] = ACTIONS(5002),
    [anon_sym_DQUOTE] = ACTIONS(5002),
    [anon_sym_i_BQUOTE] = ACTIONS(5002),
    [anon_sym_i_DQUOTE] = ACTIONS(5002),
    [anon_sym_iq_LBRACE] = ACTIONS(5002),
    [aux_sym_char_literal_token1] = ACTIONS(5002),
    [anon_sym_SQUOTE] = ACTIONS(5000),
    [anon_sym___DATE__] = ACTIONS(5000),
    [anon_sym___FILE__] = ACTIONS(5000),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5000),
    [anon_sym___FUNCTION__] = ACTIONS(5000),
    [anon_sym___LINE__] = ACTIONS(5000),
    [anon_sym___MODULE__] = ACTIONS(5000),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5000),
    [anon_sym___TIME__] = ACTIONS(5000),
    [anon_sym___TIMESTAMP__] = ACTIONS(5000),
    [anon_sym___VENDOR__] = ACTIONS(5000),
    [anon_sym___VERSION__] = ACTIONS(5000),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5002),
    [sym_float_literal] = ACTIONS(5002),
    [sym__string] = ACTIONS(5002),
  },
  [1538] = {
    [sym_identifier] = ACTIONS(5004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5006),
    [anon_sym_RBRACE] = ACTIONS(5006),
    [anon_sym_LBRACE] = ACTIONS(5006),
    [anon_sym_DOT] = ACTIONS(5006),
    [anon_sym_AMP] = ACTIONS(5006),
    [anon_sym_DASH] = ACTIONS(5004),
    [anon_sym_DASH_DASH] = ACTIONS(5006),
    [anon_sym_PLUS] = ACTIONS(5004),
    [anon_sym_PLUS_PLUS] = ACTIONS(5006),
    [anon_sym_BANG] = ACTIONS(5006),
    [anon_sym_LPAREN] = ACTIONS(5006),
    [anon_sym_RPAREN] = ACTIONS(5006),
    [anon_sym_LBRACK] = ACTIONS(5006),
    [anon_sym_SEMI] = ACTIONS(5006),
    [anon_sym_DOLLAR] = ACTIONS(5006),
    [anon_sym_STAR] = ACTIONS(5006),
    [anon_sym_TILDE] = ACTIONS(5006),
    [anon_sym_AT] = ACTIONS(5006),
    [sym_bool] = ACTIONS(5004),
    [sym_byte] = ACTIONS(5004),
    [sym_ubyte] = ACTIONS(5004),
    [sym_char] = ACTIONS(5004),
    [sym_short] = ACTIONS(5004),
    [sym_ushort] = ACTIONS(5004),
    [sym_int] = ACTIONS(5004),
    [sym_uint] = ACTIONS(5004),
    [sym_long] = ACTIONS(5004),
    [sym_ulong] = ACTIONS(5004),
    [sym_cent] = ACTIONS(5004),
    [sym_ucent] = ACTIONS(5004),
    [sym_wchar] = ACTIONS(5004),
    [sym_dchar] = ACTIONS(5004),
    [sym_float] = ACTIONS(5004),
    [sym_double] = ACTIONS(5004),
    [sym_real] = ACTIONS(5004),
    [sym_ifloat] = ACTIONS(5004),
    [sym_idouble] = ACTIONS(5004),
    [sym_ireal] = ACTIONS(5004),
    [sym_cfloat] = ACTIONS(5004),
    [sym_cdouble] = ACTIONS(5004),
    [sym_creal] = ACTIONS(5004),
    [sym_size_t] = ACTIONS(5004),
    [sym_ptrdiff_t] = ACTIONS(5004),
    [sym_string] = ACTIONS(5004),
    [sym_cstring] = ACTIONS(5004),
    [sym_dstring] = ACTIONS(5004),
    [sym_wstring] = ACTIONS(5004),
    [sym_noreturn] = ACTIONS(5004),
    [sym_true] = ACTIONS(5004),
    [sym_false] = ACTIONS(5004),
    [sym_null] = ACTIONS(5004),
    [sym_super] = ACTIONS(5004),
    [sym_this] = ACTIONS(5004),
    [sym_abstract] = ACTIONS(5004),
    [sym_alias] = ACTIONS(5004),
    [sym_align] = ACTIONS(5004),
    [sym_asm] = ACTIONS(5004),
    [sym_assert] = ACTIONS(5004),
    [sym_auto] = ACTIONS(5004),
    [sym_break] = ACTIONS(5004),
    [sym_case] = ACTIONS(5004),
    [sym_cast] = ACTIONS(5004),
    [sym_catch] = ACTIONS(5004),
    [sym_class] = ACTIONS(5004),
    [sym_const] = ACTIONS(5004),
    [sym_continue] = ACTIONS(5004),
    [sym_debug] = ACTIONS(5004),
    [sym_default] = ACTIONS(5004),
    [sym_delegate] = ACTIONS(5004),
    [sym_delete] = ACTIONS(5004),
    [sym_deprecated] = ACTIONS(5004),
    [sym_do] = ACTIONS(5004),
    [sym_else] = ACTIONS(5004),
    [sym_enum] = ACTIONS(5004),
    [sym_export] = ACTIONS(5004),
    [sym_extern] = ACTIONS(5004),
    [sym_final] = ACTIONS(5004),
    [sym_finally] = ACTIONS(5004),
    [sym_for] = ACTIONS(5004),
    [sym_foreach] = ACTIONS(5004),
    [sym_foreach_reverse] = ACTIONS(5004),
    [sym_function] = ACTIONS(5004),
    [sym_goto] = ACTIONS(5004),
    [sym_if] = ACTIONS(5004),
    [sym_immutable] = ACTIONS(5004),
    [sym_import] = ACTIONS(5004),
    [sym_in] = ACTIONS(5004),
    [sym_inout] = ACTIONS(5004),
    [sym_interface] = ACTIONS(5004),
    [sym_invariant] = ACTIONS(5004),
    [sym_is] = ACTIONS(5004),
    [sym_mixin] = ACTIONS(5004),
    [sym_new] = ACTIONS(5004),
    [sym_nothrow] = ACTIONS(5004),
    [sym_out] = ACTIONS(5004),
    [sym_override] = ACTIONS(5004),
    [sym_package] = ACTIONS(5004),
    [sym_pragma] = ACTIONS(5004),
    [sym_private] = ACTIONS(5004),
    [sym_protected] = ACTIONS(5004),
    [sym_public] = ACTIONS(5004),
    [sym_pure] = ACTIONS(5004),
    [sym_ref] = ACTIONS(5004),
    [sym_return] = ACTIONS(5004),
    [sym_scope] = ACTIONS(5004),
    [sym_shared] = ACTIONS(5004),
    [sym_static] = ACTIONS(5004),
    [sym_struct] = ACTIONS(5004),
    [sym_switch] = ACTIONS(5004),
    [sym_synchronized] = ACTIONS(5004),
    [sym_template] = ACTIONS(5004),
    [sym_throw] = ACTIONS(5004),
    [sym_try] = ACTIONS(5004),
    [sym_typeid] = ACTIONS(5004),
    [sym_typeof] = ACTIONS(5004),
    [sym_union] = ACTIONS(5004),
    [sym_unittest] = ACTIONS(5004),
    [sym_version] = ACTIONS(5004),
    [sym_while] = ACTIONS(5004),
    [sym_with] = ACTIONS(5004),
    [sym_gshared] = ACTIONS(5004),
    [sym_traits] = ACTIONS(5004),
    [sym_vector] = ACTIONS(5004),
    [sym_void] = ACTIONS(5004),
    [anon_sym_BQUOTE] = ACTIONS(5006),
    [anon_sym_r_DQUOTE] = ACTIONS(5006),
    [anon_sym_x_DQUOTE] = ACTIONS(5006),
    [anon_sym_DQUOTE] = ACTIONS(5006),
    [anon_sym_i_BQUOTE] = ACTIONS(5006),
    [anon_sym_i_DQUOTE] = ACTIONS(5006),
    [anon_sym_iq_LBRACE] = ACTIONS(5006),
    [aux_sym_char_literal_token1] = ACTIONS(5006),
    [anon_sym_SQUOTE] = ACTIONS(5004),
    [anon_sym___DATE__] = ACTIONS(5004),
    [anon_sym___FILE__] = ACTIONS(5004),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5004),
    [anon_sym___FUNCTION__] = ACTIONS(5004),
    [anon_sym___LINE__] = ACTIONS(5004),
    [anon_sym___MODULE__] = ACTIONS(5004),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5004),
    [anon_sym___TIME__] = ACTIONS(5004),
    [anon_sym___TIMESTAMP__] = ACTIONS(5004),
    [anon_sym___VENDOR__] = ACTIONS(5004),
    [anon_sym___VERSION__] = ACTIONS(5004),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5006),
    [sym_float_literal] = ACTIONS(5006),
    [sym__string] = ACTIONS(5006),
  },
  [1539] = {
    [sym_identifier] = ACTIONS(5008),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5010),
    [anon_sym_RBRACE] = ACTIONS(5010),
    [anon_sym_LBRACE] = ACTIONS(5010),
    [anon_sym_DOT] = ACTIONS(5010),
    [anon_sym_AMP] = ACTIONS(5010),
    [anon_sym_DASH] = ACTIONS(5008),
    [anon_sym_DASH_DASH] = ACTIONS(5010),
    [anon_sym_PLUS] = ACTIONS(5008),
    [anon_sym_PLUS_PLUS] = ACTIONS(5010),
    [anon_sym_BANG] = ACTIONS(5010),
    [anon_sym_LPAREN] = ACTIONS(5010),
    [anon_sym_RPAREN] = ACTIONS(5010),
    [anon_sym_LBRACK] = ACTIONS(5010),
    [anon_sym_SEMI] = ACTIONS(5010),
    [anon_sym_DOLLAR] = ACTIONS(5010),
    [anon_sym_STAR] = ACTIONS(5010),
    [anon_sym_TILDE] = ACTIONS(5010),
    [anon_sym_AT] = ACTIONS(5010),
    [sym_bool] = ACTIONS(5008),
    [sym_byte] = ACTIONS(5008),
    [sym_ubyte] = ACTIONS(5008),
    [sym_char] = ACTIONS(5008),
    [sym_short] = ACTIONS(5008),
    [sym_ushort] = ACTIONS(5008),
    [sym_int] = ACTIONS(5008),
    [sym_uint] = ACTIONS(5008),
    [sym_long] = ACTIONS(5008),
    [sym_ulong] = ACTIONS(5008),
    [sym_cent] = ACTIONS(5008),
    [sym_ucent] = ACTIONS(5008),
    [sym_wchar] = ACTIONS(5008),
    [sym_dchar] = ACTIONS(5008),
    [sym_float] = ACTIONS(5008),
    [sym_double] = ACTIONS(5008),
    [sym_real] = ACTIONS(5008),
    [sym_ifloat] = ACTIONS(5008),
    [sym_idouble] = ACTIONS(5008),
    [sym_ireal] = ACTIONS(5008),
    [sym_cfloat] = ACTIONS(5008),
    [sym_cdouble] = ACTIONS(5008),
    [sym_creal] = ACTIONS(5008),
    [sym_size_t] = ACTIONS(5008),
    [sym_ptrdiff_t] = ACTIONS(5008),
    [sym_string] = ACTIONS(5008),
    [sym_cstring] = ACTIONS(5008),
    [sym_dstring] = ACTIONS(5008),
    [sym_wstring] = ACTIONS(5008),
    [sym_noreturn] = ACTIONS(5008),
    [sym_true] = ACTIONS(5008),
    [sym_false] = ACTIONS(5008),
    [sym_null] = ACTIONS(5008),
    [sym_super] = ACTIONS(5008),
    [sym_this] = ACTIONS(5008),
    [sym_abstract] = ACTIONS(5008),
    [sym_alias] = ACTIONS(5008),
    [sym_align] = ACTIONS(5008),
    [sym_asm] = ACTIONS(5008),
    [sym_assert] = ACTIONS(5008),
    [sym_auto] = ACTIONS(5008),
    [sym_break] = ACTIONS(5008),
    [sym_case] = ACTIONS(5008),
    [sym_cast] = ACTIONS(5008),
    [sym_catch] = ACTIONS(5008),
    [sym_class] = ACTIONS(5008),
    [sym_const] = ACTIONS(5008),
    [sym_continue] = ACTIONS(5008),
    [sym_debug] = ACTIONS(5008),
    [sym_default] = ACTIONS(5008),
    [sym_delegate] = ACTIONS(5008),
    [sym_delete] = ACTIONS(5008),
    [sym_deprecated] = ACTIONS(5008),
    [sym_do] = ACTIONS(5008),
    [sym_else] = ACTIONS(5008),
    [sym_enum] = ACTIONS(5008),
    [sym_export] = ACTIONS(5008),
    [sym_extern] = ACTIONS(5008),
    [sym_final] = ACTIONS(5008),
    [sym_finally] = ACTIONS(5008),
    [sym_for] = ACTIONS(5008),
    [sym_foreach] = ACTIONS(5008),
    [sym_foreach_reverse] = ACTIONS(5008),
    [sym_function] = ACTIONS(5008),
    [sym_goto] = ACTIONS(5008),
    [sym_if] = ACTIONS(5008),
    [sym_immutable] = ACTIONS(5008),
    [sym_import] = ACTIONS(5008),
    [sym_in] = ACTIONS(5008),
    [sym_inout] = ACTIONS(5008),
    [sym_interface] = ACTIONS(5008),
    [sym_invariant] = ACTIONS(5008),
    [sym_is] = ACTIONS(5008),
    [sym_mixin] = ACTIONS(5008),
    [sym_new] = ACTIONS(5008),
    [sym_nothrow] = ACTIONS(5008),
    [sym_out] = ACTIONS(5008),
    [sym_override] = ACTIONS(5008),
    [sym_package] = ACTIONS(5008),
    [sym_pragma] = ACTIONS(5008),
    [sym_private] = ACTIONS(5008),
    [sym_protected] = ACTIONS(5008),
    [sym_public] = ACTIONS(5008),
    [sym_pure] = ACTIONS(5008),
    [sym_ref] = ACTIONS(5008),
    [sym_return] = ACTIONS(5008),
    [sym_scope] = ACTIONS(5008),
    [sym_shared] = ACTIONS(5008),
    [sym_static] = ACTIONS(5008),
    [sym_struct] = ACTIONS(5008),
    [sym_switch] = ACTIONS(5008),
    [sym_synchronized] = ACTIONS(5008),
    [sym_template] = ACTIONS(5008),
    [sym_throw] = ACTIONS(5008),
    [sym_try] = ACTIONS(5008),
    [sym_typeid] = ACTIONS(5008),
    [sym_typeof] = ACTIONS(5008),
    [sym_union] = ACTIONS(5008),
    [sym_unittest] = ACTIONS(5008),
    [sym_version] = ACTIONS(5008),
    [sym_while] = ACTIONS(5008),
    [sym_with] = ACTIONS(5008),
    [sym_gshared] = ACTIONS(5008),
    [sym_traits] = ACTIONS(5008),
    [sym_vector] = ACTIONS(5008),
    [sym_void] = ACTIONS(5008),
    [anon_sym_BQUOTE] = ACTIONS(5010),
    [anon_sym_r_DQUOTE] = ACTIONS(5010),
    [anon_sym_x_DQUOTE] = ACTIONS(5010),
    [anon_sym_DQUOTE] = ACTIONS(5010),
    [anon_sym_i_BQUOTE] = ACTIONS(5010),
    [anon_sym_i_DQUOTE] = ACTIONS(5010),
    [anon_sym_iq_LBRACE] = ACTIONS(5010),
    [aux_sym_char_literal_token1] = ACTIONS(5010),
    [anon_sym_SQUOTE] = ACTIONS(5008),
    [anon_sym___DATE__] = ACTIONS(5008),
    [anon_sym___FILE__] = ACTIONS(5008),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5008),
    [anon_sym___FUNCTION__] = ACTIONS(5008),
    [anon_sym___LINE__] = ACTIONS(5008),
    [anon_sym___MODULE__] = ACTIONS(5008),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5008),
    [anon_sym___TIME__] = ACTIONS(5008),
    [anon_sym___TIMESTAMP__] = ACTIONS(5008),
    [anon_sym___VENDOR__] = ACTIONS(5008),
    [anon_sym___VERSION__] = ACTIONS(5008),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5010),
    [sym_float_literal] = ACTIONS(5010),
    [sym__string] = ACTIONS(5010),
  },
  [1540] = {
    [sym_identifier] = ACTIONS(5012),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5014),
    [anon_sym_RBRACE] = ACTIONS(5014),
    [anon_sym_LBRACE] = ACTIONS(5014),
    [anon_sym_DOT] = ACTIONS(5014),
    [anon_sym_AMP] = ACTIONS(5014),
    [anon_sym_DASH] = ACTIONS(5012),
    [anon_sym_DASH_DASH] = ACTIONS(5014),
    [anon_sym_PLUS] = ACTIONS(5012),
    [anon_sym_PLUS_PLUS] = ACTIONS(5014),
    [anon_sym_BANG] = ACTIONS(5014),
    [anon_sym_LPAREN] = ACTIONS(5014),
    [anon_sym_RPAREN] = ACTIONS(5014),
    [anon_sym_LBRACK] = ACTIONS(5014),
    [anon_sym_SEMI] = ACTIONS(5014),
    [anon_sym_DOLLAR] = ACTIONS(5014),
    [anon_sym_STAR] = ACTIONS(5014),
    [anon_sym_TILDE] = ACTIONS(5014),
    [anon_sym_AT] = ACTIONS(5014),
    [sym_bool] = ACTIONS(5012),
    [sym_byte] = ACTIONS(5012),
    [sym_ubyte] = ACTIONS(5012),
    [sym_char] = ACTIONS(5012),
    [sym_short] = ACTIONS(5012),
    [sym_ushort] = ACTIONS(5012),
    [sym_int] = ACTIONS(5012),
    [sym_uint] = ACTIONS(5012),
    [sym_long] = ACTIONS(5012),
    [sym_ulong] = ACTIONS(5012),
    [sym_cent] = ACTIONS(5012),
    [sym_ucent] = ACTIONS(5012),
    [sym_wchar] = ACTIONS(5012),
    [sym_dchar] = ACTIONS(5012),
    [sym_float] = ACTIONS(5012),
    [sym_double] = ACTIONS(5012),
    [sym_real] = ACTIONS(5012),
    [sym_ifloat] = ACTIONS(5012),
    [sym_idouble] = ACTIONS(5012),
    [sym_ireal] = ACTIONS(5012),
    [sym_cfloat] = ACTIONS(5012),
    [sym_cdouble] = ACTIONS(5012),
    [sym_creal] = ACTIONS(5012),
    [sym_size_t] = ACTIONS(5012),
    [sym_ptrdiff_t] = ACTIONS(5012),
    [sym_string] = ACTIONS(5012),
    [sym_cstring] = ACTIONS(5012),
    [sym_dstring] = ACTIONS(5012),
    [sym_wstring] = ACTIONS(5012),
    [sym_noreturn] = ACTIONS(5012),
    [sym_true] = ACTIONS(5012),
    [sym_false] = ACTIONS(5012),
    [sym_null] = ACTIONS(5012),
    [sym_super] = ACTIONS(5012),
    [sym_this] = ACTIONS(5012),
    [sym_abstract] = ACTIONS(5012),
    [sym_alias] = ACTIONS(5012),
    [sym_align] = ACTIONS(5012),
    [sym_asm] = ACTIONS(5012),
    [sym_assert] = ACTIONS(5012),
    [sym_auto] = ACTIONS(5012),
    [sym_break] = ACTIONS(5012),
    [sym_case] = ACTIONS(5012),
    [sym_cast] = ACTIONS(5012),
    [sym_catch] = ACTIONS(5012),
    [sym_class] = ACTIONS(5012),
    [sym_const] = ACTIONS(5012),
    [sym_continue] = ACTIONS(5012),
    [sym_debug] = ACTIONS(5012),
    [sym_default] = ACTIONS(5012),
    [sym_delegate] = ACTIONS(5012),
    [sym_delete] = ACTIONS(5012),
    [sym_deprecated] = ACTIONS(5012),
    [sym_do] = ACTIONS(5012),
    [sym_else] = ACTIONS(5012),
    [sym_enum] = ACTIONS(5012),
    [sym_export] = ACTIONS(5012),
    [sym_extern] = ACTIONS(5012),
    [sym_final] = ACTIONS(5012),
    [sym_finally] = ACTIONS(5012),
    [sym_for] = ACTIONS(5012),
    [sym_foreach] = ACTIONS(5012),
    [sym_foreach_reverse] = ACTIONS(5012),
    [sym_function] = ACTIONS(5012),
    [sym_goto] = ACTIONS(5012),
    [sym_if] = ACTIONS(5012),
    [sym_immutable] = ACTIONS(5012),
    [sym_import] = ACTIONS(5012),
    [sym_in] = ACTIONS(5012),
    [sym_inout] = ACTIONS(5012),
    [sym_interface] = ACTIONS(5012),
    [sym_invariant] = ACTIONS(5012),
    [sym_is] = ACTIONS(5012),
    [sym_mixin] = ACTIONS(5012),
    [sym_new] = ACTIONS(5012),
    [sym_nothrow] = ACTIONS(5012),
    [sym_out] = ACTIONS(5012),
    [sym_override] = ACTIONS(5012),
    [sym_package] = ACTIONS(5012),
    [sym_pragma] = ACTIONS(5012),
    [sym_private] = ACTIONS(5012),
    [sym_protected] = ACTIONS(5012),
    [sym_public] = ACTIONS(5012),
    [sym_pure] = ACTIONS(5012),
    [sym_ref] = ACTIONS(5012),
    [sym_return] = ACTIONS(5012),
    [sym_scope] = ACTIONS(5012),
    [sym_shared] = ACTIONS(5012),
    [sym_static] = ACTIONS(5012),
    [sym_struct] = ACTIONS(5012),
    [sym_switch] = ACTIONS(5012),
    [sym_synchronized] = ACTIONS(5012),
    [sym_template] = ACTIONS(5012),
    [sym_throw] = ACTIONS(5012),
    [sym_try] = ACTIONS(5012),
    [sym_typeid] = ACTIONS(5012),
    [sym_typeof] = ACTIONS(5012),
    [sym_union] = ACTIONS(5012),
    [sym_unittest] = ACTIONS(5012),
    [sym_version] = ACTIONS(5012),
    [sym_while] = ACTIONS(5012),
    [sym_with] = ACTIONS(5012),
    [sym_gshared] = ACTIONS(5012),
    [sym_traits] = ACTIONS(5012),
    [sym_vector] = ACTIONS(5012),
    [sym_void] = ACTIONS(5012),
    [anon_sym_BQUOTE] = ACTIONS(5014),
    [anon_sym_r_DQUOTE] = ACTIONS(5014),
    [anon_sym_x_DQUOTE] = ACTIONS(5014),
    [anon_sym_DQUOTE] = ACTIONS(5014),
    [anon_sym_i_BQUOTE] = ACTIONS(5014),
    [anon_sym_i_DQUOTE] = ACTIONS(5014),
    [anon_sym_iq_LBRACE] = ACTIONS(5014),
    [aux_sym_char_literal_token1] = ACTIONS(5014),
    [anon_sym_SQUOTE] = ACTIONS(5012),
    [anon_sym___DATE__] = ACTIONS(5012),
    [anon_sym___FILE__] = ACTIONS(5012),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5012),
    [anon_sym___FUNCTION__] = ACTIONS(5012),
    [anon_sym___LINE__] = ACTIONS(5012),
    [anon_sym___MODULE__] = ACTIONS(5012),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5012),
    [anon_sym___TIME__] = ACTIONS(5012),
    [anon_sym___TIMESTAMP__] = ACTIONS(5012),
    [anon_sym___VENDOR__] = ACTIONS(5012),
    [anon_sym___VERSION__] = ACTIONS(5012),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5014),
    [sym_float_literal] = ACTIONS(5014),
    [sym__string] = ACTIONS(5014),
  },
  [1541] = {
    [sym_identifier] = ACTIONS(5016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5018),
    [anon_sym_RBRACE] = ACTIONS(5018),
    [anon_sym_LBRACE] = ACTIONS(5018),
    [anon_sym_DOT] = ACTIONS(5018),
    [anon_sym_AMP] = ACTIONS(5018),
    [anon_sym_DASH] = ACTIONS(5016),
    [anon_sym_DASH_DASH] = ACTIONS(5018),
    [anon_sym_PLUS] = ACTIONS(5016),
    [anon_sym_PLUS_PLUS] = ACTIONS(5018),
    [anon_sym_BANG] = ACTIONS(5018),
    [anon_sym_LPAREN] = ACTIONS(5018),
    [anon_sym_RPAREN] = ACTIONS(5018),
    [anon_sym_LBRACK] = ACTIONS(5018),
    [anon_sym_SEMI] = ACTIONS(5018),
    [anon_sym_DOLLAR] = ACTIONS(5018),
    [anon_sym_STAR] = ACTIONS(5018),
    [anon_sym_TILDE] = ACTIONS(5018),
    [anon_sym_AT] = ACTIONS(5018),
    [sym_bool] = ACTIONS(5016),
    [sym_byte] = ACTIONS(5016),
    [sym_ubyte] = ACTIONS(5016),
    [sym_char] = ACTIONS(5016),
    [sym_short] = ACTIONS(5016),
    [sym_ushort] = ACTIONS(5016),
    [sym_int] = ACTIONS(5016),
    [sym_uint] = ACTIONS(5016),
    [sym_long] = ACTIONS(5016),
    [sym_ulong] = ACTIONS(5016),
    [sym_cent] = ACTIONS(5016),
    [sym_ucent] = ACTIONS(5016),
    [sym_wchar] = ACTIONS(5016),
    [sym_dchar] = ACTIONS(5016),
    [sym_float] = ACTIONS(5016),
    [sym_double] = ACTIONS(5016),
    [sym_real] = ACTIONS(5016),
    [sym_ifloat] = ACTIONS(5016),
    [sym_idouble] = ACTIONS(5016),
    [sym_ireal] = ACTIONS(5016),
    [sym_cfloat] = ACTIONS(5016),
    [sym_cdouble] = ACTIONS(5016),
    [sym_creal] = ACTIONS(5016),
    [sym_size_t] = ACTIONS(5016),
    [sym_ptrdiff_t] = ACTIONS(5016),
    [sym_string] = ACTIONS(5016),
    [sym_cstring] = ACTIONS(5016),
    [sym_dstring] = ACTIONS(5016),
    [sym_wstring] = ACTIONS(5016),
    [sym_noreturn] = ACTIONS(5016),
    [sym_true] = ACTIONS(5016),
    [sym_false] = ACTIONS(5016),
    [sym_null] = ACTIONS(5016),
    [sym_super] = ACTIONS(5016),
    [sym_this] = ACTIONS(5016),
    [sym_abstract] = ACTIONS(5016),
    [sym_alias] = ACTIONS(5016),
    [sym_align] = ACTIONS(5016),
    [sym_asm] = ACTIONS(5016),
    [sym_assert] = ACTIONS(5016),
    [sym_auto] = ACTIONS(5016),
    [sym_break] = ACTIONS(5016),
    [sym_case] = ACTIONS(5016),
    [sym_cast] = ACTIONS(5016),
    [sym_catch] = ACTIONS(5016),
    [sym_class] = ACTIONS(5016),
    [sym_const] = ACTIONS(5016),
    [sym_continue] = ACTIONS(5016),
    [sym_debug] = ACTIONS(5016),
    [sym_default] = ACTIONS(5016),
    [sym_delegate] = ACTIONS(5016),
    [sym_delete] = ACTIONS(5016),
    [sym_deprecated] = ACTIONS(5016),
    [sym_do] = ACTIONS(5016),
    [sym_else] = ACTIONS(5016),
    [sym_enum] = ACTIONS(5016),
    [sym_export] = ACTIONS(5016),
    [sym_extern] = ACTIONS(5016),
    [sym_final] = ACTIONS(5016),
    [sym_finally] = ACTIONS(5016),
    [sym_for] = ACTIONS(5016),
    [sym_foreach] = ACTIONS(5016),
    [sym_foreach_reverse] = ACTIONS(5016),
    [sym_function] = ACTIONS(5016),
    [sym_goto] = ACTIONS(5016),
    [sym_if] = ACTIONS(5016),
    [sym_immutable] = ACTIONS(5016),
    [sym_import] = ACTIONS(5016),
    [sym_in] = ACTIONS(5016),
    [sym_inout] = ACTIONS(5016),
    [sym_interface] = ACTIONS(5016),
    [sym_invariant] = ACTIONS(5016),
    [sym_is] = ACTIONS(5016),
    [sym_mixin] = ACTIONS(5016),
    [sym_new] = ACTIONS(5016),
    [sym_nothrow] = ACTIONS(5016),
    [sym_out] = ACTIONS(5016),
    [sym_override] = ACTIONS(5016),
    [sym_package] = ACTIONS(5016),
    [sym_pragma] = ACTIONS(5016),
    [sym_private] = ACTIONS(5016),
    [sym_protected] = ACTIONS(5016),
    [sym_public] = ACTIONS(5016),
    [sym_pure] = ACTIONS(5016),
    [sym_ref] = ACTIONS(5016),
    [sym_return] = ACTIONS(5016),
    [sym_scope] = ACTIONS(5016),
    [sym_shared] = ACTIONS(5016),
    [sym_static] = ACTIONS(5016),
    [sym_struct] = ACTIONS(5016),
    [sym_switch] = ACTIONS(5016),
    [sym_synchronized] = ACTIONS(5016),
    [sym_template] = ACTIONS(5016),
    [sym_throw] = ACTIONS(5016),
    [sym_try] = ACTIONS(5016),
    [sym_typeid] = ACTIONS(5016),
    [sym_typeof] = ACTIONS(5016),
    [sym_union] = ACTIONS(5016),
    [sym_unittest] = ACTIONS(5016),
    [sym_version] = ACTIONS(5016),
    [sym_while] = ACTIONS(5016),
    [sym_with] = ACTIONS(5016),
    [sym_gshared] = ACTIONS(5016),
    [sym_traits] = ACTIONS(5016),
    [sym_vector] = ACTIONS(5016),
    [sym_void] = ACTIONS(5016),
    [anon_sym_BQUOTE] = ACTIONS(5018),
    [anon_sym_r_DQUOTE] = ACTIONS(5018),
    [anon_sym_x_DQUOTE] = ACTIONS(5018),
    [anon_sym_DQUOTE] = ACTIONS(5018),
    [anon_sym_i_BQUOTE] = ACTIONS(5018),
    [anon_sym_i_DQUOTE] = ACTIONS(5018),
    [anon_sym_iq_LBRACE] = ACTIONS(5018),
    [aux_sym_char_literal_token1] = ACTIONS(5018),
    [anon_sym_SQUOTE] = ACTIONS(5016),
    [anon_sym___DATE__] = ACTIONS(5016),
    [anon_sym___FILE__] = ACTIONS(5016),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5016),
    [anon_sym___FUNCTION__] = ACTIONS(5016),
    [anon_sym___LINE__] = ACTIONS(5016),
    [anon_sym___MODULE__] = ACTIONS(5016),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5016),
    [anon_sym___TIME__] = ACTIONS(5016),
    [anon_sym___TIMESTAMP__] = ACTIONS(5016),
    [anon_sym___VENDOR__] = ACTIONS(5016),
    [anon_sym___VERSION__] = ACTIONS(5016),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5018),
    [sym_float_literal] = ACTIONS(5018),
    [sym__string] = ACTIONS(5018),
  },
  [1542] = {
    [sym_identifier] = ACTIONS(5020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5022),
    [anon_sym_RBRACE] = ACTIONS(5022),
    [anon_sym_LBRACE] = ACTIONS(5022),
    [anon_sym_DOT] = ACTIONS(5022),
    [anon_sym_AMP] = ACTIONS(5022),
    [anon_sym_DASH] = ACTIONS(5020),
    [anon_sym_DASH_DASH] = ACTIONS(5022),
    [anon_sym_PLUS] = ACTIONS(5020),
    [anon_sym_PLUS_PLUS] = ACTIONS(5022),
    [anon_sym_BANG] = ACTIONS(5022),
    [anon_sym_LPAREN] = ACTIONS(5022),
    [anon_sym_RPAREN] = ACTIONS(5022),
    [anon_sym_LBRACK] = ACTIONS(5022),
    [anon_sym_SEMI] = ACTIONS(5022),
    [anon_sym_DOLLAR] = ACTIONS(5022),
    [anon_sym_STAR] = ACTIONS(5022),
    [anon_sym_TILDE] = ACTIONS(5022),
    [anon_sym_AT] = ACTIONS(5022),
    [sym_bool] = ACTIONS(5020),
    [sym_byte] = ACTIONS(5020),
    [sym_ubyte] = ACTIONS(5020),
    [sym_char] = ACTIONS(5020),
    [sym_short] = ACTIONS(5020),
    [sym_ushort] = ACTIONS(5020),
    [sym_int] = ACTIONS(5020),
    [sym_uint] = ACTIONS(5020),
    [sym_long] = ACTIONS(5020),
    [sym_ulong] = ACTIONS(5020),
    [sym_cent] = ACTIONS(5020),
    [sym_ucent] = ACTIONS(5020),
    [sym_wchar] = ACTIONS(5020),
    [sym_dchar] = ACTIONS(5020),
    [sym_float] = ACTIONS(5020),
    [sym_double] = ACTIONS(5020),
    [sym_real] = ACTIONS(5020),
    [sym_ifloat] = ACTIONS(5020),
    [sym_idouble] = ACTIONS(5020),
    [sym_ireal] = ACTIONS(5020),
    [sym_cfloat] = ACTIONS(5020),
    [sym_cdouble] = ACTIONS(5020),
    [sym_creal] = ACTIONS(5020),
    [sym_size_t] = ACTIONS(5020),
    [sym_ptrdiff_t] = ACTIONS(5020),
    [sym_string] = ACTIONS(5020),
    [sym_cstring] = ACTIONS(5020),
    [sym_dstring] = ACTIONS(5020),
    [sym_wstring] = ACTIONS(5020),
    [sym_noreturn] = ACTIONS(5020),
    [sym_true] = ACTIONS(5020),
    [sym_false] = ACTIONS(5020),
    [sym_null] = ACTIONS(5020),
    [sym_super] = ACTIONS(5020),
    [sym_this] = ACTIONS(5020),
    [sym_abstract] = ACTIONS(5020),
    [sym_alias] = ACTIONS(5020),
    [sym_align] = ACTIONS(5020),
    [sym_asm] = ACTIONS(5020),
    [sym_assert] = ACTIONS(5020),
    [sym_auto] = ACTIONS(5020),
    [sym_break] = ACTIONS(5020),
    [sym_case] = ACTIONS(5020),
    [sym_cast] = ACTIONS(5020),
    [sym_catch] = ACTIONS(5020),
    [sym_class] = ACTIONS(5020),
    [sym_const] = ACTIONS(5020),
    [sym_continue] = ACTIONS(5020),
    [sym_debug] = ACTIONS(5020),
    [sym_default] = ACTIONS(5020),
    [sym_delegate] = ACTIONS(5020),
    [sym_delete] = ACTIONS(5020),
    [sym_deprecated] = ACTIONS(5020),
    [sym_do] = ACTIONS(5020),
    [sym_else] = ACTIONS(5020),
    [sym_enum] = ACTIONS(5020),
    [sym_export] = ACTIONS(5020),
    [sym_extern] = ACTIONS(5020),
    [sym_final] = ACTIONS(5020),
    [sym_finally] = ACTIONS(5020),
    [sym_for] = ACTIONS(5020),
    [sym_foreach] = ACTIONS(5020),
    [sym_foreach_reverse] = ACTIONS(5020),
    [sym_function] = ACTIONS(5020),
    [sym_goto] = ACTIONS(5020),
    [sym_if] = ACTIONS(5020),
    [sym_immutable] = ACTIONS(5020),
    [sym_import] = ACTIONS(5020),
    [sym_in] = ACTIONS(5020),
    [sym_inout] = ACTIONS(5020),
    [sym_interface] = ACTIONS(5020),
    [sym_invariant] = ACTIONS(5020),
    [sym_is] = ACTIONS(5020),
    [sym_mixin] = ACTIONS(5020),
    [sym_new] = ACTIONS(5020),
    [sym_nothrow] = ACTIONS(5020),
    [sym_out] = ACTIONS(5020),
    [sym_override] = ACTIONS(5020),
    [sym_package] = ACTIONS(5020),
    [sym_pragma] = ACTIONS(5020),
    [sym_private] = ACTIONS(5020),
    [sym_protected] = ACTIONS(5020),
    [sym_public] = ACTIONS(5020),
    [sym_pure] = ACTIONS(5020),
    [sym_ref] = ACTIONS(5020),
    [sym_return] = ACTIONS(5020),
    [sym_scope] = ACTIONS(5020),
    [sym_shared] = ACTIONS(5020),
    [sym_static] = ACTIONS(5020),
    [sym_struct] = ACTIONS(5020),
    [sym_switch] = ACTIONS(5020),
    [sym_synchronized] = ACTIONS(5020),
    [sym_template] = ACTIONS(5020),
    [sym_throw] = ACTIONS(5020),
    [sym_try] = ACTIONS(5020),
    [sym_typeid] = ACTIONS(5020),
    [sym_typeof] = ACTIONS(5020),
    [sym_union] = ACTIONS(5020),
    [sym_unittest] = ACTIONS(5020),
    [sym_version] = ACTIONS(5020),
    [sym_while] = ACTIONS(5020),
    [sym_with] = ACTIONS(5020),
    [sym_gshared] = ACTIONS(5020),
    [sym_traits] = ACTIONS(5020),
    [sym_vector] = ACTIONS(5020),
    [sym_void] = ACTIONS(5020),
    [anon_sym_BQUOTE] = ACTIONS(5022),
    [anon_sym_r_DQUOTE] = ACTIONS(5022),
    [anon_sym_x_DQUOTE] = ACTIONS(5022),
    [anon_sym_DQUOTE] = ACTIONS(5022),
    [anon_sym_i_BQUOTE] = ACTIONS(5022),
    [anon_sym_i_DQUOTE] = ACTIONS(5022),
    [anon_sym_iq_LBRACE] = ACTIONS(5022),
    [aux_sym_char_literal_token1] = ACTIONS(5022),
    [anon_sym_SQUOTE] = ACTIONS(5020),
    [anon_sym___DATE__] = ACTIONS(5020),
    [anon_sym___FILE__] = ACTIONS(5020),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5020),
    [anon_sym___FUNCTION__] = ACTIONS(5020),
    [anon_sym___LINE__] = ACTIONS(5020),
    [anon_sym___MODULE__] = ACTIONS(5020),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5020),
    [anon_sym___TIME__] = ACTIONS(5020),
    [anon_sym___TIMESTAMP__] = ACTIONS(5020),
    [anon_sym___VENDOR__] = ACTIONS(5020),
    [anon_sym___VERSION__] = ACTIONS(5020),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5022),
    [sym_float_literal] = ACTIONS(5022),
    [sym__string] = ACTIONS(5022),
  },
  [1543] = {
    [sym_identifier] = ACTIONS(5024),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5026),
    [anon_sym_RBRACE] = ACTIONS(5026),
    [anon_sym_LBRACE] = ACTIONS(5026),
    [anon_sym_DOT] = ACTIONS(5026),
    [anon_sym_AMP] = ACTIONS(5026),
    [anon_sym_DASH] = ACTIONS(5024),
    [anon_sym_DASH_DASH] = ACTIONS(5026),
    [anon_sym_PLUS] = ACTIONS(5024),
    [anon_sym_PLUS_PLUS] = ACTIONS(5026),
    [anon_sym_BANG] = ACTIONS(5026),
    [anon_sym_LPAREN] = ACTIONS(5026),
    [anon_sym_RPAREN] = ACTIONS(5026),
    [anon_sym_LBRACK] = ACTIONS(5026),
    [anon_sym_SEMI] = ACTIONS(5026),
    [anon_sym_DOLLAR] = ACTIONS(5026),
    [anon_sym_STAR] = ACTIONS(5026),
    [anon_sym_TILDE] = ACTIONS(5026),
    [anon_sym_AT] = ACTIONS(5026),
    [sym_bool] = ACTIONS(5024),
    [sym_byte] = ACTIONS(5024),
    [sym_ubyte] = ACTIONS(5024),
    [sym_char] = ACTIONS(5024),
    [sym_short] = ACTIONS(5024),
    [sym_ushort] = ACTIONS(5024),
    [sym_int] = ACTIONS(5024),
    [sym_uint] = ACTIONS(5024),
    [sym_long] = ACTIONS(5024),
    [sym_ulong] = ACTIONS(5024),
    [sym_cent] = ACTIONS(5024),
    [sym_ucent] = ACTIONS(5024),
    [sym_wchar] = ACTIONS(5024),
    [sym_dchar] = ACTIONS(5024),
    [sym_float] = ACTIONS(5024),
    [sym_double] = ACTIONS(5024),
    [sym_real] = ACTIONS(5024),
    [sym_ifloat] = ACTIONS(5024),
    [sym_idouble] = ACTIONS(5024),
    [sym_ireal] = ACTIONS(5024),
    [sym_cfloat] = ACTIONS(5024),
    [sym_cdouble] = ACTIONS(5024),
    [sym_creal] = ACTIONS(5024),
    [sym_size_t] = ACTIONS(5024),
    [sym_ptrdiff_t] = ACTIONS(5024),
    [sym_string] = ACTIONS(5024),
    [sym_cstring] = ACTIONS(5024),
    [sym_dstring] = ACTIONS(5024),
    [sym_wstring] = ACTIONS(5024),
    [sym_noreturn] = ACTIONS(5024),
    [sym_true] = ACTIONS(5024),
    [sym_false] = ACTIONS(5024),
    [sym_null] = ACTIONS(5024),
    [sym_super] = ACTIONS(5024),
    [sym_this] = ACTIONS(5024),
    [sym_abstract] = ACTIONS(5024),
    [sym_alias] = ACTIONS(5024),
    [sym_align] = ACTIONS(5024),
    [sym_asm] = ACTIONS(5024),
    [sym_assert] = ACTIONS(5024),
    [sym_auto] = ACTIONS(5024),
    [sym_break] = ACTIONS(5024),
    [sym_case] = ACTIONS(5024),
    [sym_cast] = ACTIONS(5024),
    [sym_catch] = ACTIONS(5024),
    [sym_class] = ACTIONS(5024),
    [sym_const] = ACTIONS(5024),
    [sym_continue] = ACTIONS(5024),
    [sym_debug] = ACTIONS(5024),
    [sym_default] = ACTIONS(5024),
    [sym_delegate] = ACTIONS(5024),
    [sym_delete] = ACTIONS(5024),
    [sym_deprecated] = ACTIONS(5024),
    [sym_do] = ACTIONS(5024),
    [sym_else] = ACTIONS(5024),
    [sym_enum] = ACTIONS(5024),
    [sym_export] = ACTIONS(5024),
    [sym_extern] = ACTIONS(5024),
    [sym_final] = ACTIONS(5024),
    [sym_finally] = ACTIONS(5024),
    [sym_for] = ACTIONS(5024),
    [sym_foreach] = ACTIONS(5024),
    [sym_foreach_reverse] = ACTIONS(5024),
    [sym_function] = ACTIONS(5024),
    [sym_goto] = ACTIONS(5024),
    [sym_if] = ACTIONS(5024),
    [sym_immutable] = ACTIONS(5024),
    [sym_import] = ACTIONS(5024),
    [sym_in] = ACTIONS(5024),
    [sym_inout] = ACTIONS(5024),
    [sym_interface] = ACTIONS(5024),
    [sym_invariant] = ACTIONS(5024),
    [sym_is] = ACTIONS(5024),
    [sym_mixin] = ACTIONS(5024),
    [sym_new] = ACTIONS(5024),
    [sym_nothrow] = ACTIONS(5024),
    [sym_out] = ACTIONS(5024),
    [sym_override] = ACTIONS(5024),
    [sym_package] = ACTIONS(5024),
    [sym_pragma] = ACTIONS(5024),
    [sym_private] = ACTIONS(5024),
    [sym_protected] = ACTIONS(5024),
    [sym_public] = ACTIONS(5024),
    [sym_pure] = ACTIONS(5024),
    [sym_ref] = ACTIONS(5024),
    [sym_return] = ACTIONS(5024),
    [sym_scope] = ACTIONS(5024),
    [sym_shared] = ACTIONS(5024),
    [sym_static] = ACTIONS(5024),
    [sym_struct] = ACTIONS(5024),
    [sym_switch] = ACTIONS(5024),
    [sym_synchronized] = ACTIONS(5024),
    [sym_template] = ACTIONS(5024),
    [sym_throw] = ACTIONS(5024),
    [sym_try] = ACTIONS(5024),
    [sym_typeid] = ACTIONS(5024),
    [sym_typeof] = ACTIONS(5024),
    [sym_union] = ACTIONS(5024),
    [sym_unittest] = ACTIONS(5024),
    [sym_version] = ACTIONS(5024),
    [sym_while] = ACTIONS(5024),
    [sym_with] = ACTIONS(5024),
    [sym_gshared] = ACTIONS(5024),
    [sym_traits] = ACTIONS(5024),
    [sym_vector] = ACTIONS(5024),
    [sym_void] = ACTIONS(5024),
    [anon_sym_BQUOTE] = ACTIONS(5026),
    [anon_sym_r_DQUOTE] = ACTIONS(5026),
    [anon_sym_x_DQUOTE] = ACTIONS(5026),
    [anon_sym_DQUOTE] = ACTIONS(5026),
    [anon_sym_i_BQUOTE] = ACTIONS(5026),
    [anon_sym_i_DQUOTE] = ACTIONS(5026),
    [anon_sym_iq_LBRACE] = ACTIONS(5026),
    [aux_sym_char_literal_token1] = ACTIONS(5026),
    [anon_sym_SQUOTE] = ACTIONS(5024),
    [anon_sym___DATE__] = ACTIONS(5024),
    [anon_sym___FILE__] = ACTIONS(5024),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5024),
    [anon_sym___FUNCTION__] = ACTIONS(5024),
    [anon_sym___LINE__] = ACTIONS(5024),
    [anon_sym___MODULE__] = ACTIONS(5024),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5024),
    [anon_sym___TIME__] = ACTIONS(5024),
    [anon_sym___TIMESTAMP__] = ACTIONS(5024),
    [anon_sym___VENDOR__] = ACTIONS(5024),
    [anon_sym___VERSION__] = ACTIONS(5024),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5026),
    [sym_float_literal] = ACTIONS(5026),
    [sym__string] = ACTIONS(5026),
  },
  [1544] = {
    [sym_identifier] = ACTIONS(5028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5030),
    [anon_sym_RBRACE] = ACTIONS(5030),
    [anon_sym_LBRACE] = ACTIONS(5030),
    [anon_sym_DOT] = ACTIONS(5030),
    [anon_sym_AMP] = ACTIONS(5030),
    [anon_sym_DASH] = ACTIONS(5028),
    [anon_sym_DASH_DASH] = ACTIONS(5030),
    [anon_sym_PLUS] = ACTIONS(5028),
    [anon_sym_PLUS_PLUS] = ACTIONS(5030),
    [anon_sym_BANG] = ACTIONS(5030),
    [anon_sym_LPAREN] = ACTIONS(5030),
    [anon_sym_RPAREN] = ACTIONS(5030),
    [anon_sym_LBRACK] = ACTIONS(5030),
    [anon_sym_SEMI] = ACTIONS(5030),
    [anon_sym_DOLLAR] = ACTIONS(5030),
    [anon_sym_STAR] = ACTIONS(5030),
    [anon_sym_TILDE] = ACTIONS(5030),
    [anon_sym_AT] = ACTIONS(5030),
    [sym_bool] = ACTIONS(5028),
    [sym_byte] = ACTIONS(5028),
    [sym_ubyte] = ACTIONS(5028),
    [sym_char] = ACTIONS(5028),
    [sym_short] = ACTIONS(5028),
    [sym_ushort] = ACTIONS(5028),
    [sym_int] = ACTIONS(5028),
    [sym_uint] = ACTIONS(5028),
    [sym_long] = ACTIONS(5028),
    [sym_ulong] = ACTIONS(5028),
    [sym_cent] = ACTIONS(5028),
    [sym_ucent] = ACTIONS(5028),
    [sym_wchar] = ACTIONS(5028),
    [sym_dchar] = ACTIONS(5028),
    [sym_float] = ACTIONS(5028),
    [sym_double] = ACTIONS(5028),
    [sym_real] = ACTIONS(5028),
    [sym_ifloat] = ACTIONS(5028),
    [sym_idouble] = ACTIONS(5028),
    [sym_ireal] = ACTIONS(5028),
    [sym_cfloat] = ACTIONS(5028),
    [sym_cdouble] = ACTIONS(5028),
    [sym_creal] = ACTIONS(5028),
    [sym_size_t] = ACTIONS(5028),
    [sym_ptrdiff_t] = ACTIONS(5028),
    [sym_string] = ACTIONS(5028),
    [sym_cstring] = ACTIONS(5028),
    [sym_dstring] = ACTIONS(5028),
    [sym_wstring] = ACTIONS(5028),
    [sym_noreturn] = ACTIONS(5028),
    [sym_true] = ACTIONS(5028),
    [sym_false] = ACTIONS(5028),
    [sym_null] = ACTIONS(5028),
    [sym_super] = ACTIONS(5028),
    [sym_this] = ACTIONS(5028),
    [sym_abstract] = ACTIONS(5028),
    [sym_alias] = ACTIONS(5028),
    [sym_align] = ACTIONS(5028),
    [sym_asm] = ACTIONS(5028),
    [sym_assert] = ACTIONS(5028),
    [sym_auto] = ACTIONS(5028),
    [sym_break] = ACTIONS(5028),
    [sym_case] = ACTIONS(5028),
    [sym_cast] = ACTIONS(5028),
    [sym_catch] = ACTIONS(5028),
    [sym_class] = ACTIONS(5028),
    [sym_const] = ACTIONS(5028),
    [sym_continue] = ACTIONS(5028),
    [sym_debug] = ACTIONS(5028),
    [sym_default] = ACTIONS(5028),
    [sym_delegate] = ACTIONS(5028),
    [sym_delete] = ACTIONS(5028),
    [sym_deprecated] = ACTIONS(5028),
    [sym_do] = ACTIONS(5028),
    [sym_else] = ACTIONS(5028),
    [sym_enum] = ACTIONS(5028),
    [sym_export] = ACTIONS(5028),
    [sym_extern] = ACTIONS(5028),
    [sym_final] = ACTIONS(5028),
    [sym_finally] = ACTIONS(5028),
    [sym_for] = ACTIONS(5028),
    [sym_foreach] = ACTIONS(5028),
    [sym_foreach_reverse] = ACTIONS(5028),
    [sym_function] = ACTIONS(5028),
    [sym_goto] = ACTIONS(5028),
    [sym_if] = ACTIONS(5028),
    [sym_immutable] = ACTIONS(5028),
    [sym_import] = ACTIONS(5028),
    [sym_in] = ACTIONS(5028),
    [sym_inout] = ACTIONS(5028),
    [sym_interface] = ACTIONS(5028),
    [sym_invariant] = ACTIONS(5028),
    [sym_is] = ACTIONS(5028),
    [sym_mixin] = ACTIONS(5028),
    [sym_new] = ACTIONS(5028),
    [sym_nothrow] = ACTIONS(5028),
    [sym_out] = ACTIONS(5028),
    [sym_override] = ACTIONS(5028),
    [sym_package] = ACTIONS(5028),
    [sym_pragma] = ACTIONS(5028),
    [sym_private] = ACTIONS(5028),
    [sym_protected] = ACTIONS(5028),
    [sym_public] = ACTIONS(5028),
    [sym_pure] = ACTIONS(5028),
    [sym_ref] = ACTIONS(5028),
    [sym_return] = ACTIONS(5028),
    [sym_scope] = ACTIONS(5028),
    [sym_shared] = ACTIONS(5028),
    [sym_static] = ACTIONS(5028),
    [sym_struct] = ACTIONS(5028),
    [sym_switch] = ACTIONS(5028),
    [sym_synchronized] = ACTIONS(5028),
    [sym_template] = ACTIONS(5028),
    [sym_throw] = ACTIONS(5028),
    [sym_try] = ACTIONS(5028),
    [sym_typeid] = ACTIONS(5028),
    [sym_typeof] = ACTIONS(5028),
    [sym_union] = ACTIONS(5028),
    [sym_unittest] = ACTIONS(5028),
    [sym_version] = ACTIONS(5028),
    [sym_while] = ACTIONS(5028),
    [sym_with] = ACTIONS(5028),
    [sym_gshared] = ACTIONS(5028),
    [sym_traits] = ACTIONS(5028),
    [sym_vector] = ACTIONS(5028),
    [sym_void] = ACTIONS(5028),
    [anon_sym_BQUOTE] = ACTIONS(5030),
    [anon_sym_r_DQUOTE] = ACTIONS(5030),
    [anon_sym_x_DQUOTE] = ACTIONS(5030),
    [anon_sym_DQUOTE] = ACTIONS(5030),
    [anon_sym_i_BQUOTE] = ACTIONS(5030),
    [anon_sym_i_DQUOTE] = ACTIONS(5030),
    [anon_sym_iq_LBRACE] = ACTIONS(5030),
    [aux_sym_char_literal_token1] = ACTIONS(5030),
    [anon_sym_SQUOTE] = ACTIONS(5028),
    [anon_sym___DATE__] = ACTIONS(5028),
    [anon_sym___FILE__] = ACTIONS(5028),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5028),
    [anon_sym___FUNCTION__] = ACTIONS(5028),
    [anon_sym___LINE__] = ACTIONS(5028),
    [anon_sym___MODULE__] = ACTIONS(5028),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5028),
    [anon_sym___TIME__] = ACTIONS(5028),
    [anon_sym___TIMESTAMP__] = ACTIONS(5028),
    [anon_sym___VENDOR__] = ACTIONS(5028),
    [anon_sym___VERSION__] = ACTIONS(5028),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5030),
    [sym_float_literal] = ACTIONS(5030),
    [sym__string] = ACTIONS(5030),
  },
  [1545] = {
    [sym_identifier] = ACTIONS(5032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5034),
    [anon_sym_RBRACE] = ACTIONS(5034),
    [anon_sym_LBRACE] = ACTIONS(5034),
    [anon_sym_DOT] = ACTIONS(5034),
    [anon_sym_AMP] = ACTIONS(5034),
    [anon_sym_DASH] = ACTIONS(5032),
    [anon_sym_DASH_DASH] = ACTIONS(5034),
    [anon_sym_PLUS] = ACTIONS(5032),
    [anon_sym_PLUS_PLUS] = ACTIONS(5034),
    [anon_sym_BANG] = ACTIONS(5034),
    [anon_sym_LPAREN] = ACTIONS(5034),
    [anon_sym_RPAREN] = ACTIONS(5034),
    [anon_sym_LBRACK] = ACTIONS(5034),
    [anon_sym_SEMI] = ACTIONS(5034),
    [anon_sym_DOLLAR] = ACTIONS(5034),
    [anon_sym_STAR] = ACTIONS(5034),
    [anon_sym_TILDE] = ACTIONS(5034),
    [anon_sym_AT] = ACTIONS(5034),
    [sym_bool] = ACTIONS(5032),
    [sym_byte] = ACTIONS(5032),
    [sym_ubyte] = ACTIONS(5032),
    [sym_char] = ACTIONS(5032),
    [sym_short] = ACTIONS(5032),
    [sym_ushort] = ACTIONS(5032),
    [sym_int] = ACTIONS(5032),
    [sym_uint] = ACTIONS(5032),
    [sym_long] = ACTIONS(5032),
    [sym_ulong] = ACTIONS(5032),
    [sym_cent] = ACTIONS(5032),
    [sym_ucent] = ACTIONS(5032),
    [sym_wchar] = ACTIONS(5032),
    [sym_dchar] = ACTIONS(5032),
    [sym_float] = ACTIONS(5032),
    [sym_double] = ACTIONS(5032),
    [sym_real] = ACTIONS(5032),
    [sym_ifloat] = ACTIONS(5032),
    [sym_idouble] = ACTIONS(5032),
    [sym_ireal] = ACTIONS(5032),
    [sym_cfloat] = ACTIONS(5032),
    [sym_cdouble] = ACTIONS(5032),
    [sym_creal] = ACTIONS(5032),
    [sym_size_t] = ACTIONS(5032),
    [sym_ptrdiff_t] = ACTIONS(5032),
    [sym_string] = ACTIONS(5032),
    [sym_cstring] = ACTIONS(5032),
    [sym_dstring] = ACTIONS(5032),
    [sym_wstring] = ACTIONS(5032),
    [sym_noreturn] = ACTIONS(5032),
    [sym_true] = ACTIONS(5032),
    [sym_false] = ACTIONS(5032),
    [sym_null] = ACTIONS(5032),
    [sym_super] = ACTIONS(5032),
    [sym_this] = ACTIONS(5032),
    [sym_abstract] = ACTIONS(5032),
    [sym_alias] = ACTIONS(5032),
    [sym_align] = ACTIONS(5032),
    [sym_asm] = ACTIONS(5032),
    [sym_assert] = ACTIONS(5032),
    [sym_auto] = ACTIONS(5032),
    [sym_break] = ACTIONS(5032),
    [sym_case] = ACTIONS(5032),
    [sym_cast] = ACTIONS(5032),
    [sym_catch] = ACTIONS(5032),
    [sym_class] = ACTIONS(5032),
    [sym_const] = ACTIONS(5032),
    [sym_continue] = ACTIONS(5032),
    [sym_debug] = ACTIONS(5032),
    [sym_default] = ACTIONS(5032),
    [sym_delegate] = ACTIONS(5032),
    [sym_delete] = ACTIONS(5032),
    [sym_deprecated] = ACTIONS(5032),
    [sym_do] = ACTIONS(5032),
    [sym_else] = ACTIONS(5032),
    [sym_enum] = ACTIONS(5032),
    [sym_export] = ACTIONS(5032),
    [sym_extern] = ACTIONS(5032),
    [sym_final] = ACTIONS(5032),
    [sym_finally] = ACTIONS(5032),
    [sym_for] = ACTIONS(5032),
    [sym_foreach] = ACTIONS(5032),
    [sym_foreach_reverse] = ACTIONS(5032),
    [sym_function] = ACTIONS(5032),
    [sym_goto] = ACTIONS(5032),
    [sym_if] = ACTIONS(5032),
    [sym_immutable] = ACTIONS(5032),
    [sym_import] = ACTIONS(5032),
    [sym_in] = ACTIONS(5032),
    [sym_inout] = ACTIONS(5032),
    [sym_interface] = ACTIONS(5032),
    [sym_invariant] = ACTIONS(5032),
    [sym_is] = ACTIONS(5032),
    [sym_mixin] = ACTIONS(5032),
    [sym_new] = ACTIONS(5032),
    [sym_nothrow] = ACTIONS(5032),
    [sym_out] = ACTIONS(5032),
    [sym_override] = ACTIONS(5032),
    [sym_package] = ACTIONS(5032),
    [sym_pragma] = ACTIONS(5032),
    [sym_private] = ACTIONS(5032),
    [sym_protected] = ACTIONS(5032),
    [sym_public] = ACTIONS(5032),
    [sym_pure] = ACTIONS(5032),
    [sym_ref] = ACTIONS(5032),
    [sym_return] = ACTIONS(5032),
    [sym_scope] = ACTIONS(5032),
    [sym_shared] = ACTIONS(5032),
    [sym_static] = ACTIONS(5032),
    [sym_struct] = ACTIONS(5032),
    [sym_switch] = ACTIONS(5032),
    [sym_synchronized] = ACTIONS(5032),
    [sym_template] = ACTIONS(5032),
    [sym_throw] = ACTIONS(5032),
    [sym_try] = ACTIONS(5032),
    [sym_typeid] = ACTIONS(5032),
    [sym_typeof] = ACTIONS(5032),
    [sym_union] = ACTIONS(5032),
    [sym_unittest] = ACTIONS(5032),
    [sym_version] = ACTIONS(5032),
    [sym_while] = ACTIONS(5032),
    [sym_with] = ACTIONS(5032),
    [sym_gshared] = ACTIONS(5032),
    [sym_traits] = ACTIONS(5032),
    [sym_vector] = ACTIONS(5032),
    [sym_void] = ACTIONS(5032),
    [anon_sym_BQUOTE] = ACTIONS(5034),
    [anon_sym_r_DQUOTE] = ACTIONS(5034),
    [anon_sym_x_DQUOTE] = ACTIONS(5034),
    [anon_sym_DQUOTE] = ACTIONS(5034),
    [anon_sym_i_BQUOTE] = ACTIONS(5034),
    [anon_sym_i_DQUOTE] = ACTIONS(5034),
    [anon_sym_iq_LBRACE] = ACTIONS(5034),
    [aux_sym_char_literal_token1] = ACTIONS(5034),
    [anon_sym_SQUOTE] = ACTIONS(5032),
    [anon_sym___DATE__] = ACTIONS(5032),
    [anon_sym___FILE__] = ACTIONS(5032),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5032),
    [anon_sym___FUNCTION__] = ACTIONS(5032),
    [anon_sym___LINE__] = ACTIONS(5032),
    [anon_sym___MODULE__] = ACTIONS(5032),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5032),
    [anon_sym___TIME__] = ACTIONS(5032),
    [anon_sym___TIMESTAMP__] = ACTIONS(5032),
    [anon_sym___VENDOR__] = ACTIONS(5032),
    [anon_sym___VERSION__] = ACTIONS(5032),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5034),
    [sym_float_literal] = ACTIONS(5034),
    [sym__string] = ACTIONS(5034),
  },
  [1546] = {
    [sym_identifier] = ACTIONS(5036),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5038),
    [anon_sym_RBRACE] = ACTIONS(5038),
    [anon_sym_LBRACE] = ACTIONS(5038),
    [anon_sym_DOT] = ACTIONS(5038),
    [anon_sym_AMP] = ACTIONS(5038),
    [anon_sym_DASH] = ACTIONS(5036),
    [anon_sym_DASH_DASH] = ACTIONS(5038),
    [anon_sym_PLUS] = ACTIONS(5036),
    [anon_sym_PLUS_PLUS] = ACTIONS(5038),
    [anon_sym_BANG] = ACTIONS(5038),
    [anon_sym_LPAREN] = ACTIONS(5038),
    [anon_sym_RPAREN] = ACTIONS(5038),
    [anon_sym_LBRACK] = ACTIONS(5038),
    [anon_sym_SEMI] = ACTIONS(5038),
    [anon_sym_DOLLAR] = ACTIONS(5038),
    [anon_sym_STAR] = ACTIONS(5038),
    [anon_sym_TILDE] = ACTIONS(5038),
    [anon_sym_AT] = ACTIONS(5038),
    [sym_bool] = ACTIONS(5036),
    [sym_byte] = ACTIONS(5036),
    [sym_ubyte] = ACTIONS(5036),
    [sym_char] = ACTIONS(5036),
    [sym_short] = ACTIONS(5036),
    [sym_ushort] = ACTIONS(5036),
    [sym_int] = ACTIONS(5036),
    [sym_uint] = ACTIONS(5036),
    [sym_long] = ACTIONS(5036),
    [sym_ulong] = ACTIONS(5036),
    [sym_cent] = ACTIONS(5036),
    [sym_ucent] = ACTIONS(5036),
    [sym_wchar] = ACTIONS(5036),
    [sym_dchar] = ACTIONS(5036),
    [sym_float] = ACTIONS(5036),
    [sym_double] = ACTIONS(5036),
    [sym_real] = ACTIONS(5036),
    [sym_ifloat] = ACTIONS(5036),
    [sym_idouble] = ACTIONS(5036),
    [sym_ireal] = ACTIONS(5036),
    [sym_cfloat] = ACTIONS(5036),
    [sym_cdouble] = ACTIONS(5036),
    [sym_creal] = ACTIONS(5036),
    [sym_size_t] = ACTIONS(5036),
    [sym_ptrdiff_t] = ACTIONS(5036),
    [sym_string] = ACTIONS(5036),
    [sym_cstring] = ACTIONS(5036),
    [sym_dstring] = ACTIONS(5036),
    [sym_wstring] = ACTIONS(5036),
    [sym_noreturn] = ACTIONS(5036),
    [sym_true] = ACTIONS(5036),
    [sym_false] = ACTIONS(5036),
    [sym_null] = ACTIONS(5036),
    [sym_super] = ACTIONS(5036),
    [sym_this] = ACTIONS(5036),
    [sym_abstract] = ACTIONS(5036),
    [sym_alias] = ACTIONS(5036),
    [sym_align] = ACTIONS(5036),
    [sym_asm] = ACTIONS(5036),
    [sym_assert] = ACTIONS(5036),
    [sym_auto] = ACTIONS(5036),
    [sym_break] = ACTIONS(5036),
    [sym_case] = ACTIONS(5036),
    [sym_cast] = ACTIONS(5036),
    [sym_catch] = ACTIONS(5036),
    [sym_class] = ACTIONS(5036),
    [sym_const] = ACTIONS(5036),
    [sym_continue] = ACTIONS(5036),
    [sym_debug] = ACTIONS(5036),
    [sym_default] = ACTIONS(5036),
    [sym_delegate] = ACTIONS(5036),
    [sym_delete] = ACTIONS(5036),
    [sym_deprecated] = ACTIONS(5036),
    [sym_do] = ACTIONS(5036),
    [sym_else] = ACTIONS(5036),
    [sym_enum] = ACTIONS(5036),
    [sym_export] = ACTIONS(5036),
    [sym_extern] = ACTIONS(5036),
    [sym_final] = ACTIONS(5036),
    [sym_finally] = ACTIONS(5036),
    [sym_for] = ACTIONS(5036),
    [sym_foreach] = ACTIONS(5036),
    [sym_foreach_reverse] = ACTIONS(5036),
    [sym_function] = ACTIONS(5036),
    [sym_goto] = ACTIONS(5036),
    [sym_if] = ACTIONS(5036),
    [sym_immutable] = ACTIONS(5036),
    [sym_import] = ACTIONS(5036),
    [sym_in] = ACTIONS(5036),
    [sym_inout] = ACTIONS(5036),
    [sym_interface] = ACTIONS(5036),
    [sym_invariant] = ACTIONS(5036),
    [sym_is] = ACTIONS(5036),
    [sym_mixin] = ACTIONS(5036),
    [sym_new] = ACTIONS(5036),
    [sym_nothrow] = ACTIONS(5036),
    [sym_out] = ACTIONS(5036),
    [sym_override] = ACTIONS(5036),
    [sym_package] = ACTIONS(5036),
    [sym_pragma] = ACTIONS(5036),
    [sym_private] = ACTIONS(5036),
    [sym_protected] = ACTIONS(5036),
    [sym_public] = ACTIONS(5036),
    [sym_pure] = ACTIONS(5036),
    [sym_ref] = ACTIONS(5036),
    [sym_return] = ACTIONS(5036),
    [sym_scope] = ACTIONS(5036),
    [sym_shared] = ACTIONS(5036),
    [sym_static] = ACTIONS(5036),
    [sym_struct] = ACTIONS(5036),
    [sym_switch] = ACTIONS(5036),
    [sym_synchronized] = ACTIONS(5036),
    [sym_template] = ACTIONS(5036),
    [sym_throw] = ACTIONS(5036),
    [sym_try] = ACTIONS(5036),
    [sym_typeid] = ACTIONS(5036),
    [sym_typeof] = ACTIONS(5036),
    [sym_union] = ACTIONS(5036),
    [sym_unittest] = ACTIONS(5036),
    [sym_version] = ACTIONS(5036),
    [sym_while] = ACTIONS(5036),
    [sym_with] = ACTIONS(5036),
    [sym_gshared] = ACTIONS(5036),
    [sym_traits] = ACTIONS(5036),
    [sym_vector] = ACTIONS(5036),
    [sym_void] = ACTIONS(5036),
    [anon_sym_BQUOTE] = ACTIONS(5038),
    [anon_sym_r_DQUOTE] = ACTIONS(5038),
    [anon_sym_x_DQUOTE] = ACTIONS(5038),
    [anon_sym_DQUOTE] = ACTIONS(5038),
    [anon_sym_i_BQUOTE] = ACTIONS(5038),
    [anon_sym_i_DQUOTE] = ACTIONS(5038),
    [anon_sym_iq_LBRACE] = ACTIONS(5038),
    [aux_sym_char_literal_token1] = ACTIONS(5038),
    [anon_sym_SQUOTE] = ACTIONS(5036),
    [anon_sym___DATE__] = ACTIONS(5036),
    [anon_sym___FILE__] = ACTIONS(5036),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5036),
    [anon_sym___FUNCTION__] = ACTIONS(5036),
    [anon_sym___LINE__] = ACTIONS(5036),
    [anon_sym___MODULE__] = ACTIONS(5036),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5036),
    [anon_sym___TIME__] = ACTIONS(5036),
    [anon_sym___TIMESTAMP__] = ACTIONS(5036),
    [anon_sym___VENDOR__] = ACTIONS(5036),
    [anon_sym___VERSION__] = ACTIONS(5036),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5038),
    [sym_float_literal] = ACTIONS(5038),
    [sym__string] = ACTIONS(5038),
  },
  [1547] = {
    [sym_identifier] = ACTIONS(5040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5042),
    [anon_sym_RBRACE] = ACTIONS(5042),
    [anon_sym_LBRACE] = ACTIONS(5042),
    [anon_sym_DOT] = ACTIONS(5042),
    [anon_sym_AMP] = ACTIONS(5042),
    [anon_sym_DASH] = ACTIONS(5040),
    [anon_sym_DASH_DASH] = ACTIONS(5042),
    [anon_sym_PLUS] = ACTIONS(5040),
    [anon_sym_PLUS_PLUS] = ACTIONS(5042),
    [anon_sym_BANG] = ACTIONS(5042),
    [anon_sym_LPAREN] = ACTIONS(5042),
    [anon_sym_RPAREN] = ACTIONS(5042),
    [anon_sym_LBRACK] = ACTIONS(5042),
    [anon_sym_SEMI] = ACTIONS(5042),
    [anon_sym_DOLLAR] = ACTIONS(5042),
    [anon_sym_STAR] = ACTIONS(5042),
    [anon_sym_TILDE] = ACTIONS(5042),
    [anon_sym_AT] = ACTIONS(5042),
    [sym_bool] = ACTIONS(5040),
    [sym_byte] = ACTIONS(5040),
    [sym_ubyte] = ACTIONS(5040),
    [sym_char] = ACTIONS(5040),
    [sym_short] = ACTIONS(5040),
    [sym_ushort] = ACTIONS(5040),
    [sym_int] = ACTIONS(5040),
    [sym_uint] = ACTIONS(5040),
    [sym_long] = ACTIONS(5040),
    [sym_ulong] = ACTIONS(5040),
    [sym_cent] = ACTIONS(5040),
    [sym_ucent] = ACTIONS(5040),
    [sym_wchar] = ACTIONS(5040),
    [sym_dchar] = ACTIONS(5040),
    [sym_float] = ACTIONS(5040),
    [sym_double] = ACTIONS(5040),
    [sym_real] = ACTIONS(5040),
    [sym_ifloat] = ACTIONS(5040),
    [sym_idouble] = ACTIONS(5040),
    [sym_ireal] = ACTIONS(5040),
    [sym_cfloat] = ACTIONS(5040),
    [sym_cdouble] = ACTIONS(5040),
    [sym_creal] = ACTIONS(5040),
    [sym_size_t] = ACTIONS(5040),
    [sym_ptrdiff_t] = ACTIONS(5040),
    [sym_string] = ACTIONS(5040),
    [sym_cstring] = ACTIONS(5040),
    [sym_dstring] = ACTIONS(5040),
    [sym_wstring] = ACTIONS(5040),
    [sym_noreturn] = ACTIONS(5040),
    [sym_true] = ACTIONS(5040),
    [sym_false] = ACTIONS(5040),
    [sym_null] = ACTIONS(5040),
    [sym_super] = ACTIONS(5040),
    [sym_this] = ACTIONS(5040),
    [sym_abstract] = ACTIONS(5040),
    [sym_alias] = ACTIONS(5040),
    [sym_align] = ACTIONS(5040),
    [sym_asm] = ACTIONS(5040),
    [sym_assert] = ACTIONS(5040),
    [sym_auto] = ACTIONS(5040),
    [sym_break] = ACTIONS(5040),
    [sym_case] = ACTIONS(5040),
    [sym_cast] = ACTIONS(5040),
    [sym_catch] = ACTIONS(5040),
    [sym_class] = ACTIONS(5040),
    [sym_const] = ACTIONS(5040),
    [sym_continue] = ACTIONS(5040),
    [sym_debug] = ACTIONS(5040),
    [sym_default] = ACTIONS(5040),
    [sym_delegate] = ACTIONS(5040),
    [sym_delete] = ACTIONS(5040),
    [sym_deprecated] = ACTIONS(5040),
    [sym_do] = ACTIONS(5040),
    [sym_else] = ACTIONS(5040),
    [sym_enum] = ACTIONS(5040),
    [sym_export] = ACTIONS(5040),
    [sym_extern] = ACTIONS(5040),
    [sym_final] = ACTIONS(5040),
    [sym_finally] = ACTIONS(5040),
    [sym_for] = ACTIONS(5040),
    [sym_foreach] = ACTIONS(5040),
    [sym_foreach_reverse] = ACTIONS(5040),
    [sym_function] = ACTIONS(5040),
    [sym_goto] = ACTIONS(5040),
    [sym_if] = ACTIONS(5040),
    [sym_immutable] = ACTIONS(5040),
    [sym_import] = ACTIONS(5040),
    [sym_in] = ACTIONS(5040),
    [sym_inout] = ACTIONS(5040),
    [sym_interface] = ACTIONS(5040),
    [sym_invariant] = ACTIONS(5040),
    [sym_is] = ACTIONS(5040),
    [sym_mixin] = ACTIONS(5040),
    [sym_new] = ACTIONS(5040),
    [sym_nothrow] = ACTIONS(5040),
    [sym_out] = ACTIONS(5040),
    [sym_override] = ACTIONS(5040),
    [sym_package] = ACTIONS(5040),
    [sym_pragma] = ACTIONS(5040),
    [sym_private] = ACTIONS(5040),
    [sym_protected] = ACTIONS(5040),
    [sym_public] = ACTIONS(5040),
    [sym_pure] = ACTIONS(5040),
    [sym_ref] = ACTIONS(5040),
    [sym_return] = ACTIONS(5040),
    [sym_scope] = ACTIONS(5040),
    [sym_shared] = ACTIONS(5040),
    [sym_static] = ACTIONS(5040),
    [sym_struct] = ACTIONS(5040),
    [sym_switch] = ACTIONS(5040),
    [sym_synchronized] = ACTIONS(5040),
    [sym_template] = ACTIONS(5040),
    [sym_throw] = ACTIONS(5040),
    [sym_try] = ACTIONS(5040),
    [sym_typeid] = ACTIONS(5040),
    [sym_typeof] = ACTIONS(5040),
    [sym_union] = ACTIONS(5040),
    [sym_unittest] = ACTIONS(5040),
    [sym_version] = ACTIONS(5040),
    [sym_while] = ACTIONS(5040),
    [sym_with] = ACTIONS(5040),
    [sym_gshared] = ACTIONS(5040),
    [sym_traits] = ACTIONS(5040),
    [sym_vector] = ACTIONS(5040),
    [sym_void] = ACTIONS(5040),
    [anon_sym_BQUOTE] = ACTIONS(5042),
    [anon_sym_r_DQUOTE] = ACTIONS(5042),
    [anon_sym_x_DQUOTE] = ACTIONS(5042),
    [anon_sym_DQUOTE] = ACTIONS(5042),
    [anon_sym_i_BQUOTE] = ACTIONS(5042),
    [anon_sym_i_DQUOTE] = ACTIONS(5042),
    [anon_sym_iq_LBRACE] = ACTIONS(5042),
    [aux_sym_char_literal_token1] = ACTIONS(5042),
    [anon_sym_SQUOTE] = ACTIONS(5040),
    [anon_sym___DATE__] = ACTIONS(5040),
    [anon_sym___FILE__] = ACTIONS(5040),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5040),
    [anon_sym___FUNCTION__] = ACTIONS(5040),
    [anon_sym___LINE__] = ACTIONS(5040),
    [anon_sym___MODULE__] = ACTIONS(5040),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5040),
    [anon_sym___TIME__] = ACTIONS(5040),
    [anon_sym___TIMESTAMP__] = ACTIONS(5040),
    [anon_sym___VENDOR__] = ACTIONS(5040),
    [anon_sym___VERSION__] = ACTIONS(5040),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5042),
    [sym_float_literal] = ACTIONS(5042),
    [sym__string] = ACTIONS(5042),
  },
  [1548] = {
    [sym_identifier] = ACTIONS(5044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5046),
    [anon_sym_RBRACE] = ACTIONS(5046),
    [anon_sym_LBRACE] = ACTIONS(5046),
    [anon_sym_DOT] = ACTIONS(5046),
    [anon_sym_AMP] = ACTIONS(5046),
    [anon_sym_DASH] = ACTIONS(5044),
    [anon_sym_DASH_DASH] = ACTIONS(5046),
    [anon_sym_PLUS] = ACTIONS(5044),
    [anon_sym_PLUS_PLUS] = ACTIONS(5046),
    [anon_sym_BANG] = ACTIONS(5046),
    [anon_sym_LPAREN] = ACTIONS(5046),
    [anon_sym_RPAREN] = ACTIONS(5046),
    [anon_sym_LBRACK] = ACTIONS(5046),
    [anon_sym_SEMI] = ACTIONS(5046),
    [anon_sym_DOLLAR] = ACTIONS(5046),
    [anon_sym_STAR] = ACTIONS(5046),
    [anon_sym_TILDE] = ACTIONS(5046),
    [anon_sym_AT] = ACTIONS(5046),
    [sym_bool] = ACTIONS(5044),
    [sym_byte] = ACTIONS(5044),
    [sym_ubyte] = ACTIONS(5044),
    [sym_char] = ACTIONS(5044),
    [sym_short] = ACTIONS(5044),
    [sym_ushort] = ACTIONS(5044),
    [sym_int] = ACTIONS(5044),
    [sym_uint] = ACTIONS(5044),
    [sym_long] = ACTIONS(5044),
    [sym_ulong] = ACTIONS(5044),
    [sym_cent] = ACTIONS(5044),
    [sym_ucent] = ACTIONS(5044),
    [sym_wchar] = ACTIONS(5044),
    [sym_dchar] = ACTIONS(5044),
    [sym_float] = ACTIONS(5044),
    [sym_double] = ACTIONS(5044),
    [sym_real] = ACTIONS(5044),
    [sym_ifloat] = ACTIONS(5044),
    [sym_idouble] = ACTIONS(5044),
    [sym_ireal] = ACTIONS(5044),
    [sym_cfloat] = ACTIONS(5044),
    [sym_cdouble] = ACTIONS(5044),
    [sym_creal] = ACTIONS(5044),
    [sym_size_t] = ACTIONS(5044),
    [sym_ptrdiff_t] = ACTIONS(5044),
    [sym_string] = ACTIONS(5044),
    [sym_cstring] = ACTIONS(5044),
    [sym_dstring] = ACTIONS(5044),
    [sym_wstring] = ACTIONS(5044),
    [sym_noreturn] = ACTIONS(5044),
    [sym_true] = ACTIONS(5044),
    [sym_false] = ACTIONS(5044),
    [sym_null] = ACTIONS(5044),
    [sym_super] = ACTIONS(5044),
    [sym_this] = ACTIONS(5044),
    [sym_abstract] = ACTIONS(5044),
    [sym_alias] = ACTIONS(5044),
    [sym_align] = ACTIONS(5044),
    [sym_asm] = ACTIONS(5044),
    [sym_assert] = ACTIONS(5044),
    [sym_auto] = ACTIONS(5044),
    [sym_break] = ACTIONS(5044),
    [sym_case] = ACTIONS(5044),
    [sym_cast] = ACTIONS(5044),
    [sym_catch] = ACTIONS(5044),
    [sym_class] = ACTIONS(5044),
    [sym_const] = ACTIONS(5044),
    [sym_continue] = ACTIONS(5044),
    [sym_debug] = ACTIONS(5044),
    [sym_default] = ACTIONS(5044),
    [sym_delegate] = ACTIONS(5044),
    [sym_delete] = ACTIONS(5044),
    [sym_deprecated] = ACTIONS(5044),
    [sym_do] = ACTIONS(5044),
    [sym_else] = ACTIONS(5044),
    [sym_enum] = ACTIONS(5044),
    [sym_export] = ACTIONS(5044),
    [sym_extern] = ACTIONS(5044),
    [sym_final] = ACTIONS(5044),
    [sym_finally] = ACTIONS(5044),
    [sym_for] = ACTIONS(5044),
    [sym_foreach] = ACTIONS(5044),
    [sym_foreach_reverse] = ACTIONS(5044),
    [sym_function] = ACTIONS(5044),
    [sym_goto] = ACTIONS(5044),
    [sym_if] = ACTIONS(5044),
    [sym_immutable] = ACTIONS(5044),
    [sym_import] = ACTIONS(5044),
    [sym_in] = ACTIONS(5044),
    [sym_inout] = ACTIONS(5044),
    [sym_interface] = ACTIONS(5044),
    [sym_invariant] = ACTIONS(5044),
    [sym_is] = ACTIONS(5044),
    [sym_mixin] = ACTIONS(5044),
    [sym_new] = ACTIONS(5044),
    [sym_nothrow] = ACTIONS(5044),
    [sym_out] = ACTIONS(5044),
    [sym_override] = ACTIONS(5044),
    [sym_package] = ACTIONS(5044),
    [sym_pragma] = ACTIONS(5044),
    [sym_private] = ACTIONS(5044),
    [sym_protected] = ACTIONS(5044),
    [sym_public] = ACTIONS(5044),
    [sym_pure] = ACTIONS(5044),
    [sym_ref] = ACTIONS(5044),
    [sym_return] = ACTIONS(5044),
    [sym_scope] = ACTIONS(5044),
    [sym_shared] = ACTIONS(5044),
    [sym_static] = ACTIONS(5044),
    [sym_struct] = ACTIONS(5044),
    [sym_switch] = ACTIONS(5044),
    [sym_synchronized] = ACTIONS(5044),
    [sym_template] = ACTIONS(5044),
    [sym_throw] = ACTIONS(5044),
    [sym_try] = ACTIONS(5044),
    [sym_typeid] = ACTIONS(5044),
    [sym_typeof] = ACTIONS(5044),
    [sym_union] = ACTIONS(5044),
    [sym_unittest] = ACTIONS(5044),
    [sym_version] = ACTIONS(5044),
    [sym_while] = ACTIONS(5044),
    [sym_with] = ACTIONS(5044),
    [sym_gshared] = ACTIONS(5044),
    [sym_traits] = ACTIONS(5044),
    [sym_vector] = ACTIONS(5044),
    [sym_void] = ACTIONS(5044),
    [anon_sym_BQUOTE] = ACTIONS(5046),
    [anon_sym_r_DQUOTE] = ACTIONS(5046),
    [anon_sym_x_DQUOTE] = ACTIONS(5046),
    [anon_sym_DQUOTE] = ACTIONS(5046),
    [anon_sym_i_BQUOTE] = ACTIONS(5046),
    [anon_sym_i_DQUOTE] = ACTIONS(5046),
    [anon_sym_iq_LBRACE] = ACTIONS(5046),
    [aux_sym_char_literal_token1] = ACTIONS(5046),
    [anon_sym_SQUOTE] = ACTIONS(5044),
    [anon_sym___DATE__] = ACTIONS(5044),
    [anon_sym___FILE__] = ACTIONS(5044),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5044),
    [anon_sym___FUNCTION__] = ACTIONS(5044),
    [anon_sym___LINE__] = ACTIONS(5044),
    [anon_sym___MODULE__] = ACTIONS(5044),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5044),
    [anon_sym___TIME__] = ACTIONS(5044),
    [anon_sym___TIMESTAMP__] = ACTIONS(5044),
    [anon_sym___VENDOR__] = ACTIONS(5044),
    [anon_sym___VERSION__] = ACTIONS(5044),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5046),
    [sym_float_literal] = ACTIONS(5046),
    [sym__string] = ACTIONS(5046),
  },
  [1549] = {
    [sym_identifier] = ACTIONS(5048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5050),
    [anon_sym_RBRACE] = ACTIONS(5050),
    [anon_sym_LBRACE] = ACTIONS(5050),
    [anon_sym_DOT] = ACTIONS(5050),
    [anon_sym_AMP] = ACTIONS(5050),
    [anon_sym_DASH] = ACTIONS(5048),
    [anon_sym_DASH_DASH] = ACTIONS(5050),
    [anon_sym_PLUS] = ACTIONS(5048),
    [anon_sym_PLUS_PLUS] = ACTIONS(5050),
    [anon_sym_BANG] = ACTIONS(5050),
    [anon_sym_LPAREN] = ACTIONS(5050),
    [anon_sym_RPAREN] = ACTIONS(5050),
    [anon_sym_LBRACK] = ACTIONS(5050),
    [anon_sym_SEMI] = ACTIONS(5050),
    [anon_sym_DOLLAR] = ACTIONS(5050),
    [anon_sym_STAR] = ACTIONS(5050),
    [anon_sym_TILDE] = ACTIONS(5050),
    [anon_sym_AT] = ACTIONS(5050),
    [sym_bool] = ACTIONS(5048),
    [sym_byte] = ACTIONS(5048),
    [sym_ubyte] = ACTIONS(5048),
    [sym_char] = ACTIONS(5048),
    [sym_short] = ACTIONS(5048),
    [sym_ushort] = ACTIONS(5048),
    [sym_int] = ACTIONS(5048),
    [sym_uint] = ACTIONS(5048),
    [sym_long] = ACTIONS(5048),
    [sym_ulong] = ACTIONS(5048),
    [sym_cent] = ACTIONS(5048),
    [sym_ucent] = ACTIONS(5048),
    [sym_wchar] = ACTIONS(5048),
    [sym_dchar] = ACTIONS(5048),
    [sym_float] = ACTIONS(5048),
    [sym_double] = ACTIONS(5048),
    [sym_real] = ACTIONS(5048),
    [sym_ifloat] = ACTIONS(5048),
    [sym_idouble] = ACTIONS(5048),
    [sym_ireal] = ACTIONS(5048),
    [sym_cfloat] = ACTIONS(5048),
    [sym_cdouble] = ACTIONS(5048),
    [sym_creal] = ACTIONS(5048),
    [sym_size_t] = ACTIONS(5048),
    [sym_ptrdiff_t] = ACTIONS(5048),
    [sym_string] = ACTIONS(5048),
    [sym_cstring] = ACTIONS(5048),
    [sym_dstring] = ACTIONS(5048),
    [sym_wstring] = ACTIONS(5048),
    [sym_noreturn] = ACTIONS(5048),
    [sym_true] = ACTIONS(5048),
    [sym_false] = ACTIONS(5048),
    [sym_null] = ACTIONS(5048),
    [sym_super] = ACTIONS(5048),
    [sym_this] = ACTIONS(5048),
    [sym_abstract] = ACTIONS(5048),
    [sym_alias] = ACTIONS(5048),
    [sym_align] = ACTIONS(5048),
    [sym_asm] = ACTIONS(5048),
    [sym_assert] = ACTIONS(5048),
    [sym_auto] = ACTIONS(5048),
    [sym_break] = ACTIONS(5048),
    [sym_case] = ACTIONS(5048),
    [sym_cast] = ACTIONS(5048),
    [sym_catch] = ACTIONS(5048),
    [sym_class] = ACTIONS(5048),
    [sym_const] = ACTIONS(5048),
    [sym_continue] = ACTIONS(5048),
    [sym_debug] = ACTIONS(5048),
    [sym_default] = ACTIONS(5048),
    [sym_delegate] = ACTIONS(5048),
    [sym_delete] = ACTIONS(5048),
    [sym_deprecated] = ACTIONS(5048),
    [sym_do] = ACTIONS(5048),
    [sym_else] = ACTIONS(5048),
    [sym_enum] = ACTIONS(5048),
    [sym_export] = ACTIONS(5048),
    [sym_extern] = ACTIONS(5048),
    [sym_final] = ACTIONS(5048),
    [sym_finally] = ACTIONS(5048),
    [sym_for] = ACTIONS(5048),
    [sym_foreach] = ACTIONS(5048),
    [sym_foreach_reverse] = ACTIONS(5048),
    [sym_function] = ACTIONS(5048),
    [sym_goto] = ACTIONS(5048),
    [sym_if] = ACTIONS(5048),
    [sym_immutable] = ACTIONS(5048),
    [sym_import] = ACTIONS(5048),
    [sym_in] = ACTIONS(5048),
    [sym_inout] = ACTIONS(5048),
    [sym_interface] = ACTIONS(5048),
    [sym_invariant] = ACTIONS(5048),
    [sym_is] = ACTIONS(5048),
    [sym_mixin] = ACTIONS(5048),
    [sym_new] = ACTIONS(5048),
    [sym_nothrow] = ACTIONS(5048),
    [sym_out] = ACTIONS(5048),
    [sym_override] = ACTIONS(5048),
    [sym_package] = ACTIONS(5048),
    [sym_pragma] = ACTIONS(5048),
    [sym_private] = ACTIONS(5048),
    [sym_protected] = ACTIONS(5048),
    [sym_public] = ACTIONS(5048),
    [sym_pure] = ACTIONS(5048),
    [sym_ref] = ACTIONS(5048),
    [sym_return] = ACTIONS(5048),
    [sym_scope] = ACTIONS(5048),
    [sym_shared] = ACTIONS(5048),
    [sym_static] = ACTIONS(5048),
    [sym_struct] = ACTIONS(5048),
    [sym_switch] = ACTIONS(5048),
    [sym_synchronized] = ACTIONS(5048),
    [sym_template] = ACTIONS(5048),
    [sym_throw] = ACTIONS(5048),
    [sym_try] = ACTIONS(5048),
    [sym_typeid] = ACTIONS(5048),
    [sym_typeof] = ACTIONS(5048),
    [sym_union] = ACTIONS(5048),
    [sym_unittest] = ACTIONS(5048),
    [sym_version] = ACTIONS(5048),
    [sym_while] = ACTIONS(5048),
    [sym_with] = ACTIONS(5048),
    [sym_gshared] = ACTIONS(5048),
    [sym_traits] = ACTIONS(5048),
    [sym_vector] = ACTIONS(5048),
    [sym_void] = ACTIONS(5048),
    [anon_sym_BQUOTE] = ACTIONS(5050),
    [anon_sym_r_DQUOTE] = ACTIONS(5050),
    [anon_sym_x_DQUOTE] = ACTIONS(5050),
    [anon_sym_DQUOTE] = ACTIONS(5050),
    [anon_sym_i_BQUOTE] = ACTIONS(5050),
    [anon_sym_i_DQUOTE] = ACTIONS(5050),
    [anon_sym_iq_LBRACE] = ACTIONS(5050),
    [aux_sym_char_literal_token1] = ACTIONS(5050),
    [anon_sym_SQUOTE] = ACTIONS(5048),
    [anon_sym___DATE__] = ACTIONS(5048),
    [anon_sym___FILE__] = ACTIONS(5048),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5048),
    [anon_sym___FUNCTION__] = ACTIONS(5048),
    [anon_sym___LINE__] = ACTIONS(5048),
    [anon_sym___MODULE__] = ACTIONS(5048),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5048),
    [anon_sym___TIME__] = ACTIONS(5048),
    [anon_sym___TIMESTAMP__] = ACTIONS(5048),
    [anon_sym___VENDOR__] = ACTIONS(5048),
    [anon_sym___VERSION__] = ACTIONS(5048),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5050),
    [sym_float_literal] = ACTIONS(5050),
    [sym__string] = ACTIONS(5050),
  },
  [1550] = {
    [sym_identifier] = ACTIONS(5052),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5054),
    [anon_sym_RBRACE] = ACTIONS(5054),
    [anon_sym_LBRACE] = ACTIONS(5054),
    [anon_sym_DOT] = ACTIONS(5054),
    [anon_sym_AMP] = ACTIONS(5054),
    [anon_sym_DASH] = ACTIONS(5052),
    [anon_sym_DASH_DASH] = ACTIONS(5054),
    [anon_sym_PLUS] = ACTIONS(5052),
    [anon_sym_PLUS_PLUS] = ACTIONS(5054),
    [anon_sym_BANG] = ACTIONS(5054),
    [anon_sym_LPAREN] = ACTIONS(5054),
    [anon_sym_RPAREN] = ACTIONS(5054),
    [anon_sym_LBRACK] = ACTIONS(5054),
    [anon_sym_SEMI] = ACTIONS(5054),
    [anon_sym_DOLLAR] = ACTIONS(5054),
    [anon_sym_STAR] = ACTIONS(5054),
    [anon_sym_TILDE] = ACTIONS(5054),
    [anon_sym_AT] = ACTIONS(5054),
    [sym_bool] = ACTIONS(5052),
    [sym_byte] = ACTIONS(5052),
    [sym_ubyte] = ACTIONS(5052),
    [sym_char] = ACTIONS(5052),
    [sym_short] = ACTIONS(5052),
    [sym_ushort] = ACTIONS(5052),
    [sym_int] = ACTIONS(5052),
    [sym_uint] = ACTIONS(5052),
    [sym_long] = ACTIONS(5052),
    [sym_ulong] = ACTIONS(5052),
    [sym_cent] = ACTIONS(5052),
    [sym_ucent] = ACTIONS(5052),
    [sym_wchar] = ACTIONS(5052),
    [sym_dchar] = ACTIONS(5052),
    [sym_float] = ACTIONS(5052),
    [sym_double] = ACTIONS(5052),
    [sym_real] = ACTIONS(5052),
    [sym_ifloat] = ACTIONS(5052),
    [sym_idouble] = ACTIONS(5052),
    [sym_ireal] = ACTIONS(5052),
    [sym_cfloat] = ACTIONS(5052),
    [sym_cdouble] = ACTIONS(5052),
    [sym_creal] = ACTIONS(5052),
    [sym_size_t] = ACTIONS(5052),
    [sym_ptrdiff_t] = ACTIONS(5052),
    [sym_string] = ACTIONS(5052),
    [sym_cstring] = ACTIONS(5052),
    [sym_dstring] = ACTIONS(5052),
    [sym_wstring] = ACTIONS(5052),
    [sym_noreturn] = ACTIONS(5052),
    [sym_true] = ACTIONS(5052),
    [sym_false] = ACTIONS(5052),
    [sym_null] = ACTIONS(5052),
    [sym_super] = ACTIONS(5052),
    [sym_this] = ACTIONS(5052),
    [sym_abstract] = ACTIONS(5052),
    [sym_alias] = ACTIONS(5052),
    [sym_align] = ACTIONS(5052),
    [sym_asm] = ACTIONS(5052),
    [sym_assert] = ACTIONS(5052),
    [sym_auto] = ACTIONS(5052),
    [sym_break] = ACTIONS(5052),
    [sym_case] = ACTIONS(5052),
    [sym_cast] = ACTIONS(5052),
    [sym_catch] = ACTIONS(5052),
    [sym_class] = ACTIONS(5052),
    [sym_const] = ACTIONS(5052),
    [sym_continue] = ACTIONS(5052),
    [sym_debug] = ACTIONS(5052),
    [sym_default] = ACTIONS(5052),
    [sym_delegate] = ACTIONS(5052),
    [sym_delete] = ACTIONS(5052),
    [sym_deprecated] = ACTIONS(5052),
    [sym_do] = ACTIONS(5052),
    [sym_else] = ACTIONS(5052),
    [sym_enum] = ACTIONS(5052),
    [sym_export] = ACTIONS(5052),
    [sym_extern] = ACTIONS(5052),
    [sym_final] = ACTIONS(5052),
    [sym_finally] = ACTIONS(5052),
    [sym_for] = ACTIONS(5052),
    [sym_foreach] = ACTIONS(5052),
    [sym_foreach_reverse] = ACTIONS(5052),
    [sym_function] = ACTIONS(5052),
    [sym_goto] = ACTIONS(5052),
    [sym_if] = ACTIONS(5052),
    [sym_immutable] = ACTIONS(5052),
    [sym_import] = ACTIONS(5052),
    [sym_in] = ACTIONS(5052),
    [sym_inout] = ACTIONS(5052),
    [sym_interface] = ACTIONS(5052),
    [sym_invariant] = ACTIONS(5052),
    [sym_is] = ACTIONS(5052),
    [sym_mixin] = ACTIONS(5052),
    [sym_new] = ACTIONS(5052),
    [sym_nothrow] = ACTIONS(5052),
    [sym_out] = ACTIONS(5052),
    [sym_override] = ACTIONS(5052),
    [sym_package] = ACTIONS(5052),
    [sym_pragma] = ACTIONS(5052),
    [sym_private] = ACTIONS(5052),
    [sym_protected] = ACTIONS(5052),
    [sym_public] = ACTIONS(5052),
    [sym_pure] = ACTIONS(5052),
    [sym_ref] = ACTIONS(5052),
    [sym_return] = ACTIONS(5052),
    [sym_scope] = ACTIONS(5052),
    [sym_shared] = ACTIONS(5052),
    [sym_static] = ACTIONS(5052),
    [sym_struct] = ACTIONS(5052),
    [sym_switch] = ACTIONS(5052),
    [sym_synchronized] = ACTIONS(5052),
    [sym_template] = ACTIONS(5052),
    [sym_throw] = ACTIONS(5052),
    [sym_try] = ACTIONS(5052),
    [sym_typeid] = ACTIONS(5052),
    [sym_typeof] = ACTIONS(5052),
    [sym_union] = ACTIONS(5052),
    [sym_unittest] = ACTIONS(5052),
    [sym_version] = ACTIONS(5052),
    [sym_while] = ACTIONS(5052),
    [sym_with] = ACTIONS(5052),
    [sym_gshared] = ACTIONS(5052),
    [sym_traits] = ACTIONS(5052),
    [sym_vector] = ACTIONS(5052),
    [sym_void] = ACTIONS(5052),
    [anon_sym_BQUOTE] = ACTIONS(5054),
    [anon_sym_r_DQUOTE] = ACTIONS(5054),
    [anon_sym_x_DQUOTE] = ACTIONS(5054),
    [anon_sym_DQUOTE] = ACTIONS(5054),
    [anon_sym_i_BQUOTE] = ACTIONS(5054),
    [anon_sym_i_DQUOTE] = ACTIONS(5054),
    [anon_sym_iq_LBRACE] = ACTIONS(5054),
    [aux_sym_char_literal_token1] = ACTIONS(5054),
    [anon_sym_SQUOTE] = ACTIONS(5052),
    [anon_sym___DATE__] = ACTIONS(5052),
    [anon_sym___FILE__] = ACTIONS(5052),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5052),
    [anon_sym___FUNCTION__] = ACTIONS(5052),
    [anon_sym___LINE__] = ACTIONS(5052),
    [anon_sym___MODULE__] = ACTIONS(5052),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5052),
    [anon_sym___TIME__] = ACTIONS(5052),
    [anon_sym___TIMESTAMP__] = ACTIONS(5052),
    [anon_sym___VENDOR__] = ACTIONS(5052),
    [anon_sym___VERSION__] = ACTIONS(5052),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5054),
    [sym_float_literal] = ACTIONS(5054),
    [sym__string] = ACTIONS(5054),
  },
  [1551] = {
    [sym_identifier] = ACTIONS(5056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5058),
    [anon_sym_RBRACE] = ACTIONS(5058),
    [anon_sym_LBRACE] = ACTIONS(5058),
    [anon_sym_DOT] = ACTIONS(5058),
    [anon_sym_AMP] = ACTIONS(5058),
    [anon_sym_DASH] = ACTIONS(5056),
    [anon_sym_DASH_DASH] = ACTIONS(5058),
    [anon_sym_PLUS] = ACTIONS(5056),
    [anon_sym_PLUS_PLUS] = ACTIONS(5058),
    [anon_sym_BANG] = ACTIONS(5058),
    [anon_sym_LPAREN] = ACTIONS(5058),
    [anon_sym_RPAREN] = ACTIONS(5058),
    [anon_sym_LBRACK] = ACTIONS(5058),
    [anon_sym_SEMI] = ACTIONS(5058),
    [anon_sym_DOLLAR] = ACTIONS(5058),
    [anon_sym_STAR] = ACTIONS(5058),
    [anon_sym_TILDE] = ACTIONS(5058),
    [anon_sym_AT] = ACTIONS(5058),
    [sym_bool] = ACTIONS(5056),
    [sym_byte] = ACTIONS(5056),
    [sym_ubyte] = ACTIONS(5056),
    [sym_char] = ACTIONS(5056),
    [sym_short] = ACTIONS(5056),
    [sym_ushort] = ACTIONS(5056),
    [sym_int] = ACTIONS(5056),
    [sym_uint] = ACTIONS(5056),
    [sym_long] = ACTIONS(5056),
    [sym_ulong] = ACTIONS(5056),
    [sym_cent] = ACTIONS(5056),
    [sym_ucent] = ACTIONS(5056),
    [sym_wchar] = ACTIONS(5056),
    [sym_dchar] = ACTIONS(5056),
    [sym_float] = ACTIONS(5056),
    [sym_double] = ACTIONS(5056),
    [sym_real] = ACTIONS(5056),
    [sym_ifloat] = ACTIONS(5056),
    [sym_idouble] = ACTIONS(5056),
    [sym_ireal] = ACTIONS(5056),
    [sym_cfloat] = ACTIONS(5056),
    [sym_cdouble] = ACTIONS(5056),
    [sym_creal] = ACTIONS(5056),
    [sym_size_t] = ACTIONS(5056),
    [sym_ptrdiff_t] = ACTIONS(5056),
    [sym_string] = ACTIONS(5056),
    [sym_cstring] = ACTIONS(5056),
    [sym_dstring] = ACTIONS(5056),
    [sym_wstring] = ACTIONS(5056),
    [sym_noreturn] = ACTIONS(5056),
    [sym_true] = ACTIONS(5056),
    [sym_false] = ACTIONS(5056),
    [sym_null] = ACTIONS(5056),
    [sym_super] = ACTIONS(5056),
    [sym_this] = ACTIONS(5056),
    [sym_abstract] = ACTIONS(5056),
    [sym_alias] = ACTIONS(5056),
    [sym_align] = ACTIONS(5056),
    [sym_asm] = ACTIONS(5056),
    [sym_assert] = ACTIONS(5056),
    [sym_auto] = ACTIONS(5056),
    [sym_break] = ACTIONS(5056),
    [sym_case] = ACTIONS(5056),
    [sym_cast] = ACTIONS(5056),
    [sym_catch] = ACTIONS(5056),
    [sym_class] = ACTIONS(5056),
    [sym_const] = ACTIONS(5056),
    [sym_continue] = ACTIONS(5056),
    [sym_debug] = ACTIONS(5056),
    [sym_default] = ACTIONS(5056),
    [sym_delegate] = ACTIONS(5056),
    [sym_delete] = ACTIONS(5056),
    [sym_deprecated] = ACTIONS(5056),
    [sym_do] = ACTIONS(5056),
    [sym_else] = ACTIONS(5056),
    [sym_enum] = ACTIONS(5056),
    [sym_export] = ACTIONS(5056),
    [sym_extern] = ACTIONS(5056),
    [sym_final] = ACTIONS(5056),
    [sym_finally] = ACTIONS(5056),
    [sym_for] = ACTIONS(5056),
    [sym_foreach] = ACTIONS(5056),
    [sym_foreach_reverse] = ACTIONS(5056),
    [sym_function] = ACTIONS(5056),
    [sym_goto] = ACTIONS(5056),
    [sym_if] = ACTIONS(5056),
    [sym_immutable] = ACTIONS(5056),
    [sym_import] = ACTIONS(5056),
    [sym_in] = ACTIONS(5056),
    [sym_inout] = ACTIONS(5056),
    [sym_interface] = ACTIONS(5056),
    [sym_invariant] = ACTIONS(5056),
    [sym_is] = ACTIONS(5056),
    [sym_mixin] = ACTIONS(5056),
    [sym_new] = ACTIONS(5056),
    [sym_nothrow] = ACTIONS(5056),
    [sym_out] = ACTIONS(5056),
    [sym_override] = ACTIONS(5056),
    [sym_package] = ACTIONS(5056),
    [sym_pragma] = ACTIONS(5056),
    [sym_private] = ACTIONS(5056),
    [sym_protected] = ACTIONS(5056),
    [sym_public] = ACTIONS(5056),
    [sym_pure] = ACTIONS(5056),
    [sym_ref] = ACTIONS(5056),
    [sym_return] = ACTIONS(5056),
    [sym_scope] = ACTIONS(5056),
    [sym_shared] = ACTIONS(5056),
    [sym_static] = ACTIONS(5056),
    [sym_struct] = ACTIONS(5056),
    [sym_switch] = ACTIONS(5056),
    [sym_synchronized] = ACTIONS(5056),
    [sym_template] = ACTIONS(5056),
    [sym_throw] = ACTIONS(5056),
    [sym_try] = ACTIONS(5056),
    [sym_typeid] = ACTIONS(5056),
    [sym_typeof] = ACTIONS(5056),
    [sym_union] = ACTIONS(5056),
    [sym_unittest] = ACTIONS(5056),
    [sym_version] = ACTIONS(5056),
    [sym_while] = ACTIONS(5056),
    [sym_with] = ACTIONS(5056),
    [sym_gshared] = ACTIONS(5056),
    [sym_traits] = ACTIONS(5056),
    [sym_vector] = ACTIONS(5056),
    [sym_void] = ACTIONS(5056),
    [anon_sym_BQUOTE] = ACTIONS(5058),
    [anon_sym_r_DQUOTE] = ACTIONS(5058),
    [anon_sym_x_DQUOTE] = ACTIONS(5058),
    [anon_sym_DQUOTE] = ACTIONS(5058),
    [anon_sym_i_BQUOTE] = ACTIONS(5058),
    [anon_sym_i_DQUOTE] = ACTIONS(5058),
    [anon_sym_iq_LBRACE] = ACTIONS(5058),
    [aux_sym_char_literal_token1] = ACTIONS(5058),
    [anon_sym_SQUOTE] = ACTIONS(5056),
    [anon_sym___DATE__] = ACTIONS(5056),
    [anon_sym___FILE__] = ACTIONS(5056),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5056),
    [anon_sym___FUNCTION__] = ACTIONS(5056),
    [anon_sym___LINE__] = ACTIONS(5056),
    [anon_sym___MODULE__] = ACTIONS(5056),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5056),
    [anon_sym___TIME__] = ACTIONS(5056),
    [anon_sym___TIMESTAMP__] = ACTIONS(5056),
    [anon_sym___VENDOR__] = ACTIONS(5056),
    [anon_sym___VERSION__] = ACTIONS(5056),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5058),
    [sym_float_literal] = ACTIONS(5058),
    [sym__string] = ACTIONS(5058),
  },
  [1552] = {
    [sym_identifier] = ACTIONS(5060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5062),
    [anon_sym_RBRACE] = ACTIONS(5062),
    [anon_sym_LBRACE] = ACTIONS(5062),
    [anon_sym_DOT] = ACTIONS(5062),
    [anon_sym_AMP] = ACTIONS(5062),
    [anon_sym_DASH] = ACTIONS(5060),
    [anon_sym_DASH_DASH] = ACTIONS(5062),
    [anon_sym_PLUS] = ACTIONS(5060),
    [anon_sym_PLUS_PLUS] = ACTIONS(5062),
    [anon_sym_BANG] = ACTIONS(5062),
    [anon_sym_LPAREN] = ACTIONS(5062),
    [anon_sym_RPAREN] = ACTIONS(5062),
    [anon_sym_LBRACK] = ACTIONS(5062),
    [anon_sym_SEMI] = ACTIONS(5062),
    [anon_sym_DOLLAR] = ACTIONS(5062),
    [anon_sym_STAR] = ACTIONS(5062),
    [anon_sym_TILDE] = ACTIONS(5062),
    [anon_sym_AT] = ACTIONS(5062),
    [sym_bool] = ACTIONS(5060),
    [sym_byte] = ACTIONS(5060),
    [sym_ubyte] = ACTIONS(5060),
    [sym_char] = ACTIONS(5060),
    [sym_short] = ACTIONS(5060),
    [sym_ushort] = ACTIONS(5060),
    [sym_int] = ACTIONS(5060),
    [sym_uint] = ACTIONS(5060),
    [sym_long] = ACTIONS(5060),
    [sym_ulong] = ACTIONS(5060),
    [sym_cent] = ACTIONS(5060),
    [sym_ucent] = ACTIONS(5060),
    [sym_wchar] = ACTIONS(5060),
    [sym_dchar] = ACTIONS(5060),
    [sym_float] = ACTIONS(5060),
    [sym_double] = ACTIONS(5060),
    [sym_real] = ACTIONS(5060),
    [sym_ifloat] = ACTIONS(5060),
    [sym_idouble] = ACTIONS(5060),
    [sym_ireal] = ACTIONS(5060),
    [sym_cfloat] = ACTIONS(5060),
    [sym_cdouble] = ACTIONS(5060),
    [sym_creal] = ACTIONS(5060),
    [sym_size_t] = ACTIONS(5060),
    [sym_ptrdiff_t] = ACTIONS(5060),
    [sym_string] = ACTIONS(5060),
    [sym_cstring] = ACTIONS(5060),
    [sym_dstring] = ACTIONS(5060),
    [sym_wstring] = ACTIONS(5060),
    [sym_noreturn] = ACTIONS(5060),
    [sym_true] = ACTIONS(5060),
    [sym_false] = ACTIONS(5060),
    [sym_null] = ACTIONS(5060),
    [sym_super] = ACTIONS(5060),
    [sym_this] = ACTIONS(5060),
    [sym_abstract] = ACTIONS(5060),
    [sym_alias] = ACTIONS(5060),
    [sym_align] = ACTIONS(5060),
    [sym_asm] = ACTIONS(5060),
    [sym_assert] = ACTIONS(5060),
    [sym_auto] = ACTIONS(5060),
    [sym_break] = ACTIONS(5060),
    [sym_case] = ACTIONS(5060),
    [sym_cast] = ACTIONS(5060),
    [sym_catch] = ACTIONS(5060),
    [sym_class] = ACTIONS(5060),
    [sym_const] = ACTIONS(5060),
    [sym_continue] = ACTIONS(5060),
    [sym_debug] = ACTIONS(5060),
    [sym_default] = ACTIONS(5060),
    [sym_delegate] = ACTIONS(5060),
    [sym_delete] = ACTIONS(5060),
    [sym_deprecated] = ACTIONS(5060),
    [sym_do] = ACTIONS(5060),
    [sym_else] = ACTIONS(5060),
    [sym_enum] = ACTIONS(5060),
    [sym_export] = ACTIONS(5060),
    [sym_extern] = ACTIONS(5060),
    [sym_final] = ACTIONS(5060),
    [sym_finally] = ACTIONS(5060),
    [sym_for] = ACTIONS(5060),
    [sym_foreach] = ACTIONS(5060),
    [sym_foreach_reverse] = ACTIONS(5060),
    [sym_function] = ACTIONS(5060),
    [sym_goto] = ACTIONS(5060),
    [sym_if] = ACTIONS(5060),
    [sym_immutable] = ACTIONS(5060),
    [sym_import] = ACTIONS(5060),
    [sym_in] = ACTIONS(5060),
    [sym_inout] = ACTIONS(5060),
    [sym_interface] = ACTIONS(5060),
    [sym_invariant] = ACTIONS(5060),
    [sym_is] = ACTIONS(5060),
    [sym_mixin] = ACTIONS(5060),
    [sym_new] = ACTIONS(5060),
    [sym_nothrow] = ACTIONS(5060),
    [sym_out] = ACTIONS(5060),
    [sym_override] = ACTIONS(5060),
    [sym_package] = ACTIONS(5060),
    [sym_pragma] = ACTIONS(5060),
    [sym_private] = ACTIONS(5060),
    [sym_protected] = ACTIONS(5060),
    [sym_public] = ACTIONS(5060),
    [sym_pure] = ACTIONS(5060),
    [sym_ref] = ACTIONS(5060),
    [sym_return] = ACTIONS(5060),
    [sym_scope] = ACTIONS(5060),
    [sym_shared] = ACTIONS(5060),
    [sym_static] = ACTIONS(5060),
    [sym_struct] = ACTIONS(5060),
    [sym_switch] = ACTIONS(5060),
    [sym_synchronized] = ACTIONS(5060),
    [sym_template] = ACTIONS(5060),
    [sym_throw] = ACTIONS(5060),
    [sym_try] = ACTIONS(5060),
    [sym_typeid] = ACTIONS(5060),
    [sym_typeof] = ACTIONS(5060),
    [sym_union] = ACTIONS(5060),
    [sym_unittest] = ACTIONS(5060),
    [sym_version] = ACTIONS(5060),
    [sym_while] = ACTIONS(5060),
    [sym_with] = ACTIONS(5060),
    [sym_gshared] = ACTIONS(5060),
    [sym_traits] = ACTIONS(5060),
    [sym_vector] = ACTIONS(5060),
    [sym_void] = ACTIONS(5060),
    [anon_sym_BQUOTE] = ACTIONS(5062),
    [anon_sym_r_DQUOTE] = ACTIONS(5062),
    [anon_sym_x_DQUOTE] = ACTIONS(5062),
    [anon_sym_DQUOTE] = ACTIONS(5062),
    [anon_sym_i_BQUOTE] = ACTIONS(5062),
    [anon_sym_i_DQUOTE] = ACTIONS(5062),
    [anon_sym_iq_LBRACE] = ACTIONS(5062),
    [aux_sym_char_literal_token1] = ACTIONS(5062),
    [anon_sym_SQUOTE] = ACTIONS(5060),
    [anon_sym___DATE__] = ACTIONS(5060),
    [anon_sym___FILE__] = ACTIONS(5060),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5060),
    [anon_sym___FUNCTION__] = ACTIONS(5060),
    [anon_sym___LINE__] = ACTIONS(5060),
    [anon_sym___MODULE__] = ACTIONS(5060),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5060),
    [anon_sym___TIME__] = ACTIONS(5060),
    [anon_sym___TIMESTAMP__] = ACTIONS(5060),
    [anon_sym___VENDOR__] = ACTIONS(5060),
    [anon_sym___VERSION__] = ACTIONS(5060),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5062),
    [sym_float_literal] = ACTIONS(5062),
    [sym__string] = ACTIONS(5062),
  },
  [1553] = {
    [sym_identifier] = ACTIONS(5064),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5066),
    [anon_sym_RBRACE] = ACTIONS(5066),
    [anon_sym_LBRACE] = ACTIONS(5066),
    [anon_sym_DOT] = ACTIONS(5066),
    [anon_sym_AMP] = ACTIONS(5066),
    [anon_sym_DASH] = ACTIONS(5064),
    [anon_sym_DASH_DASH] = ACTIONS(5066),
    [anon_sym_PLUS] = ACTIONS(5064),
    [anon_sym_PLUS_PLUS] = ACTIONS(5066),
    [anon_sym_BANG] = ACTIONS(5066),
    [anon_sym_LPAREN] = ACTIONS(5066),
    [anon_sym_RPAREN] = ACTIONS(5066),
    [anon_sym_LBRACK] = ACTIONS(5066),
    [anon_sym_SEMI] = ACTIONS(5066),
    [anon_sym_DOLLAR] = ACTIONS(5066),
    [anon_sym_STAR] = ACTIONS(5066),
    [anon_sym_TILDE] = ACTIONS(5066),
    [anon_sym_AT] = ACTIONS(5066),
    [sym_bool] = ACTIONS(5064),
    [sym_byte] = ACTIONS(5064),
    [sym_ubyte] = ACTIONS(5064),
    [sym_char] = ACTIONS(5064),
    [sym_short] = ACTIONS(5064),
    [sym_ushort] = ACTIONS(5064),
    [sym_int] = ACTIONS(5064),
    [sym_uint] = ACTIONS(5064),
    [sym_long] = ACTIONS(5064),
    [sym_ulong] = ACTIONS(5064),
    [sym_cent] = ACTIONS(5064),
    [sym_ucent] = ACTIONS(5064),
    [sym_wchar] = ACTIONS(5064),
    [sym_dchar] = ACTIONS(5064),
    [sym_float] = ACTIONS(5064),
    [sym_double] = ACTIONS(5064),
    [sym_real] = ACTIONS(5064),
    [sym_ifloat] = ACTIONS(5064),
    [sym_idouble] = ACTIONS(5064),
    [sym_ireal] = ACTIONS(5064),
    [sym_cfloat] = ACTIONS(5064),
    [sym_cdouble] = ACTIONS(5064),
    [sym_creal] = ACTIONS(5064),
    [sym_size_t] = ACTIONS(5064),
    [sym_ptrdiff_t] = ACTIONS(5064),
    [sym_string] = ACTIONS(5064),
    [sym_cstring] = ACTIONS(5064),
    [sym_dstring] = ACTIONS(5064),
    [sym_wstring] = ACTIONS(5064),
    [sym_noreturn] = ACTIONS(5064),
    [sym_true] = ACTIONS(5064),
    [sym_false] = ACTIONS(5064),
    [sym_null] = ACTIONS(5064),
    [sym_super] = ACTIONS(5064),
    [sym_this] = ACTIONS(5064),
    [sym_abstract] = ACTIONS(5064),
    [sym_alias] = ACTIONS(5064),
    [sym_align] = ACTIONS(5064),
    [sym_asm] = ACTIONS(5064),
    [sym_assert] = ACTIONS(5064),
    [sym_auto] = ACTIONS(5064),
    [sym_break] = ACTIONS(5064),
    [sym_case] = ACTIONS(5064),
    [sym_cast] = ACTIONS(5064),
    [sym_catch] = ACTIONS(5064),
    [sym_class] = ACTIONS(5064),
    [sym_const] = ACTIONS(5064),
    [sym_continue] = ACTIONS(5064),
    [sym_debug] = ACTIONS(5064),
    [sym_default] = ACTIONS(5064),
    [sym_delegate] = ACTIONS(5064),
    [sym_delete] = ACTIONS(5064),
    [sym_deprecated] = ACTIONS(5064),
    [sym_do] = ACTIONS(5064),
    [sym_else] = ACTIONS(5064),
    [sym_enum] = ACTIONS(5064),
    [sym_export] = ACTIONS(5064),
    [sym_extern] = ACTIONS(5064),
    [sym_final] = ACTIONS(5064),
    [sym_finally] = ACTIONS(5064),
    [sym_for] = ACTIONS(5064),
    [sym_foreach] = ACTIONS(5064),
    [sym_foreach_reverse] = ACTIONS(5064),
    [sym_function] = ACTIONS(5064),
    [sym_goto] = ACTIONS(5064),
    [sym_if] = ACTIONS(5064),
    [sym_immutable] = ACTIONS(5064),
    [sym_import] = ACTIONS(5064),
    [sym_in] = ACTIONS(5064),
    [sym_inout] = ACTIONS(5064),
    [sym_interface] = ACTIONS(5064),
    [sym_invariant] = ACTIONS(5064),
    [sym_is] = ACTIONS(5064),
    [sym_mixin] = ACTIONS(5064),
    [sym_new] = ACTIONS(5064),
    [sym_nothrow] = ACTIONS(5064),
    [sym_out] = ACTIONS(5064),
    [sym_override] = ACTIONS(5064),
    [sym_package] = ACTIONS(5064),
    [sym_pragma] = ACTIONS(5064),
    [sym_private] = ACTIONS(5064),
    [sym_protected] = ACTIONS(5064),
    [sym_public] = ACTIONS(5064),
    [sym_pure] = ACTIONS(5064),
    [sym_ref] = ACTIONS(5064),
    [sym_return] = ACTIONS(5064),
    [sym_scope] = ACTIONS(5064),
    [sym_shared] = ACTIONS(5064),
    [sym_static] = ACTIONS(5064),
    [sym_struct] = ACTIONS(5064),
    [sym_switch] = ACTIONS(5064),
    [sym_synchronized] = ACTIONS(5064),
    [sym_template] = ACTIONS(5064),
    [sym_throw] = ACTIONS(5064),
    [sym_try] = ACTIONS(5064),
    [sym_typeid] = ACTIONS(5064),
    [sym_typeof] = ACTIONS(5064),
    [sym_union] = ACTIONS(5064),
    [sym_unittest] = ACTIONS(5064),
    [sym_version] = ACTIONS(5064),
    [sym_while] = ACTIONS(5064),
    [sym_with] = ACTIONS(5064),
    [sym_gshared] = ACTIONS(5064),
    [sym_traits] = ACTIONS(5064),
    [sym_vector] = ACTIONS(5064),
    [sym_void] = ACTIONS(5064),
    [anon_sym_BQUOTE] = ACTIONS(5066),
    [anon_sym_r_DQUOTE] = ACTIONS(5066),
    [anon_sym_x_DQUOTE] = ACTIONS(5066),
    [anon_sym_DQUOTE] = ACTIONS(5066),
    [anon_sym_i_BQUOTE] = ACTIONS(5066),
    [anon_sym_i_DQUOTE] = ACTIONS(5066),
    [anon_sym_iq_LBRACE] = ACTIONS(5066),
    [aux_sym_char_literal_token1] = ACTIONS(5066),
    [anon_sym_SQUOTE] = ACTIONS(5064),
    [anon_sym___DATE__] = ACTIONS(5064),
    [anon_sym___FILE__] = ACTIONS(5064),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5064),
    [anon_sym___FUNCTION__] = ACTIONS(5064),
    [anon_sym___LINE__] = ACTIONS(5064),
    [anon_sym___MODULE__] = ACTIONS(5064),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5064),
    [anon_sym___TIME__] = ACTIONS(5064),
    [anon_sym___TIMESTAMP__] = ACTIONS(5064),
    [anon_sym___VENDOR__] = ACTIONS(5064),
    [anon_sym___VERSION__] = ACTIONS(5064),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5066),
    [sym_float_literal] = ACTIONS(5066),
    [sym__string] = ACTIONS(5066),
  },
  [1554] = {
    [sym_identifier] = ACTIONS(5068),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5070),
    [anon_sym_RBRACE] = ACTIONS(5070),
    [anon_sym_LBRACE] = ACTIONS(5070),
    [anon_sym_DOT] = ACTIONS(5070),
    [anon_sym_AMP] = ACTIONS(5070),
    [anon_sym_DASH] = ACTIONS(5068),
    [anon_sym_DASH_DASH] = ACTIONS(5070),
    [anon_sym_PLUS] = ACTIONS(5068),
    [anon_sym_PLUS_PLUS] = ACTIONS(5070),
    [anon_sym_BANG] = ACTIONS(5070),
    [anon_sym_LPAREN] = ACTIONS(5070),
    [anon_sym_RPAREN] = ACTIONS(5070),
    [anon_sym_LBRACK] = ACTIONS(5070),
    [anon_sym_SEMI] = ACTIONS(5070),
    [anon_sym_DOLLAR] = ACTIONS(5070),
    [anon_sym_STAR] = ACTIONS(5070),
    [anon_sym_TILDE] = ACTIONS(5070),
    [anon_sym_AT] = ACTIONS(5070),
    [sym_bool] = ACTIONS(5068),
    [sym_byte] = ACTIONS(5068),
    [sym_ubyte] = ACTIONS(5068),
    [sym_char] = ACTIONS(5068),
    [sym_short] = ACTIONS(5068),
    [sym_ushort] = ACTIONS(5068),
    [sym_int] = ACTIONS(5068),
    [sym_uint] = ACTIONS(5068),
    [sym_long] = ACTIONS(5068),
    [sym_ulong] = ACTIONS(5068),
    [sym_cent] = ACTIONS(5068),
    [sym_ucent] = ACTIONS(5068),
    [sym_wchar] = ACTIONS(5068),
    [sym_dchar] = ACTIONS(5068),
    [sym_float] = ACTIONS(5068),
    [sym_double] = ACTIONS(5068),
    [sym_real] = ACTIONS(5068),
    [sym_ifloat] = ACTIONS(5068),
    [sym_idouble] = ACTIONS(5068),
    [sym_ireal] = ACTIONS(5068),
    [sym_cfloat] = ACTIONS(5068),
    [sym_cdouble] = ACTIONS(5068),
    [sym_creal] = ACTIONS(5068),
    [sym_size_t] = ACTIONS(5068),
    [sym_ptrdiff_t] = ACTIONS(5068),
    [sym_string] = ACTIONS(5068),
    [sym_cstring] = ACTIONS(5068),
    [sym_dstring] = ACTIONS(5068),
    [sym_wstring] = ACTIONS(5068),
    [sym_noreturn] = ACTIONS(5068),
    [sym_true] = ACTIONS(5068),
    [sym_false] = ACTIONS(5068),
    [sym_null] = ACTIONS(5068),
    [sym_super] = ACTIONS(5068),
    [sym_this] = ACTIONS(5068),
    [sym_abstract] = ACTIONS(5068),
    [sym_alias] = ACTIONS(5068),
    [sym_align] = ACTIONS(5068),
    [sym_asm] = ACTIONS(5068),
    [sym_assert] = ACTIONS(5068),
    [sym_auto] = ACTIONS(5068),
    [sym_break] = ACTIONS(5068),
    [sym_case] = ACTIONS(5068),
    [sym_cast] = ACTIONS(5068),
    [sym_catch] = ACTIONS(5068),
    [sym_class] = ACTIONS(5068),
    [sym_const] = ACTIONS(5068),
    [sym_continue] = ACTIONS(5068),
    [sym_debug] = ACTIONS(5068),
    [sym_default] = ACTIONS(5068),
    [sym_delegate] = ACTIONS(5068),
    [sym_delete] = ACTIONS(5068),
    [sym_deprecated] = ACTIONS(5068),
    [sym_do] = ACTIONS(5068),
    [sym_else] = ACTIONS(5068),
    [sym_enum] = ACTIONS(5068),
    [sym_export] = ACTIONS(5068),
    [sym_extern] = ACTIONS(5068),
    [sym_final] = ACTIONS(5068),
    [sym_finally] = ACTIONS(5068),
    [sym_for] = ACTIONS(5068),
    [sym_foreach] = ACTIONS(5068),
    [sym_foreach_reverse] = ACTIONS(5068),
    [sym_function] = ACTIONS(5068),
    [sym_goto] = ACTIONS(5068),
    [sym_if] = ACTIONS(5068),
    [sym_immutable] = ACTIONS(5068),
    [sym_import] = ACTIONS(5068),
    [sym_in] = ACTIONS(5068),
    [sym_inout] = ACTIONS(5068),
    [sym_interface] = ACTIONS(5068),
    [sym_invariant] = ACTIONS(5068),
    [sym_is] = ACTIONS(5068),
    [sym_mixin] = ACTIONS(5068),
    [sym_new] = ACTIONS(5068),
    [sym_nothrow] = ACTIONS(5068),
    [sym_out] = ACTIONS(5068),
    [sym_override] = ACTIONS(5068),
    [sym_package] = ACTIONS(5068),
    [sym_pragma] = ACTIONS(5068),
    [sym_private] = ACTIONS(5068),
    [sym_protected] = ACTIONS(5068),
    [sym_public] = ACTIONS(5068),
    [sym_pure] = ACTIONS(5068),
    [sym_ref] = ACTIONS(5068),
    [sym_return] = ACTIONS(5068),
    [sym_scope] = ACTIONS(5068),
    [sym_shared] = ACTIONS(5068),
    [sym_static] = ACTIONS(5068),
    [sym_struct] = ACTIONS(5068),
    [sym_switch] = ACTIONS(5068),
    [sym_synchronized] = ACTIONS(5068),
    [sym_template] = ACTIONS(5068),
    [sym_throw] = ACTIONS(5068),
    [sym_try] = ACTIONS(5068),
    [sym_typeid] = ACTIONS(5068),
    [sym_typeof] = ACTIONS(5068),
    [sym_union] = ACTIONS(5068),
    [sym_unittest] = ACTIONS(5068),
    [sym_version] = ACTIONS(5068),
    [sym_while] = ACTIONS(5068),
    [sym_with] = ACTIONS(5068),
    [sym_gshared] = ACTIONS(5068),
    [sym_traits] = ACTIONS(5068),
    [sym_vector] = ACTIONS(5068),
    [sym_void] = ACTIONS(5068),
    [anon_sym_BQUOTE] = ACTIONS(5070),
    [anon_sym_r_DQUOTE] = ACTIONS(5070),
    [anon_sym_x_DQUOTE] = ACTIONS(5070),
    [anon_sym_DQUOTE] = ACTIONS(5070),
    [anon_sym_i_BQUOTE] = ACTIONS(5070),
    [anon_sym_i_DQUOTE] = ACTIONS(5070),
    [anon_sym_iq_LBRACE] = ACTIONS(5070),
    [aux_sym_char_literal_token1] = ACTIONS(5070),
    [anon_sym_SQUOTE] = ACTIONS(5068),
    [anon_sym___DATE__] = ACTIONS(5068),
    [anon_sym___FILE__] = ACTIONS(5068),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5068),
    [anon_sym___FUNCTION__] = ACTIONS(5068),
    [anon_sym___LINE__] = ACTIONS(5068),
    [anon_sym___MODULE__] = ACTIONS(5068),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5068),
    [anon_sym___TIME__] = ACTIONS(5068),
    [anon_sym___TIMESTAMP__] = ACTIONS(5068),
    [anon_sym___VENDOR__] = ACTIONS(5068),
    [anon_sym___VERSION__] = ACTIONS(5068),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5070),
    [sym_float_literal] = ACTIONS(5070),
    [sym__string] = ACTIONS(5070),
  },
  [1555] = {
    [sym_identifier] = ACTIONS(5072),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5074),
    [anon_sym_RBRACE] = ACTIONS(5074),
    [anon_sym_LBRACE] = ACTIONS(5074),
    [anon_sym_DOT] = ACTIONS(5074),
    [anon_sym_AMP] = ACTIONS(5074),
    [anon_sym_DASH] = ACTIONS(5072),
    [anon_sym_DASH_DASH] = ACTIONS(5074),
    [anon_sym_PLUS] = ACTIONS(5072),
    [anon_sym_PLUS_PLUS] = ACTIONS(5074),
    [anon_sym_BANG] = ACTIONS(5074),
    [anon_sym_LPAREN] = ACTIONS(5074),
    [anon_sym_RPAREN] = ACTIONS(5074),
    [anon_sym_LBRACK] = ACTIONS(5074),
    [anon_sym_SEMI] = ACTIONS(5074),
    [anon_sym_DOLLAR] = ACTIONS(5074),
    [anon_sym_STAR] = ACTIONS(5074),
    [anon_sym_TILDE] = ACTIONS(5074),
    [anon_sym_AT] = ACTIONS(5074),
    [sym_bool] = ACTIONS(5072),
    [sym_byte] = ACTIONS(5072),
    [sym_ubyte] = ACTIONS(5072),
    [sym_char] = ACTIONS(5072),
    [sym_short] = ACTIONS(5072),
    [sym_ushort] = ACTIONS(5072),
    [sym_int] = ACTIONS(5072),
    [sym_uint] = ACTIONS(5072),
    [sym_long] = ACTIONS(5072),
    [sym_ulong] = ACTIONS(5072),
    [sym_cent] = ACTIONS(5072),
    [sym_ucent] = ACTIONS(5072),
    [sym_wchar] = ACTIONS(5072),
    [sym_dchar] = ACTIONS(5072),
    [sym_float] = ACTIONS(5072),
    [sym_double] = ACTIONS(5072),
    [sym_real] = ACTIONS(5072),
    [sym_ifloat] = ACTIONS(5072),
    [sym_idouble] = ACTIONS(5072),
    [sym_ireal] = ACTIONS(5072),
    [sym_cfloat] = ACTIONS(5072),
    [sym_cdouble] = ACTIONS(5072),
    [sym_creal] = ACTIONS(5072),
    [sym_size_t] = ACTIONS(5072),
    [sym_ptrdiff_t] = ACTIONS(5072),
    [sym_string] = ACTIONS(5072),
    [sym_cstring] = ACTIONS(5072),
    [sym_dstring] = ACTIONS(5072),
    [sym_wstring] = ACTIONS(5072),
    [sym_noreturn] = ACTIONS(5072),
    [sym_true] = ACTIONS(5072),
    [sym_false] = ACTIONS(5072),
    [sym_null] = ACTIONS(5072),
    [sym_super] = ACTIONS(5072),
    [sym_this] = ACTIONS(5072),
    [sym_abstract] = ACTIONS(5072),
    [sym_alias] = ACTIONS(5072),
    [sym_align] = ACTIONS(5072),
    [sym_asm] = ACTIONS(5072),
    [sym_assert] = ACTIONS(5072),
    [sym_auto] = ACTIONS(5072),
    [sym_break] = ACTIONS(5072),
    [sym_case] = ACTIONS(5072),
    [sym_cast] = ACTIONS(5072),
    [sym_catch] = ACTIONS(5072),
    [sym_class] = ACTIONS(5072),
    [sym_const] = ACTIONS(5072),
    [sym_continue] = ACTIONS(5072),
    [sym_debug] = ACTIONS(5072),
    [sym_default] = ACTIONS(5072),
    [sym_delegate] = ACTIONS(5072),
    [sym_delete] = ACTIONS(5072),
    [sym_deprecated] = ACTIONS(5072),
    [sym_do] = ACTIONS(5072),
    [sym_else] = ACTIONS(5072),
    [sym_enum] = ACTIONS(5072),
    [sym_export] = ACTIONS(5072),
    [sym_extern] = ACTIONS(5072),
    [sym_final] = ACTIONS(5072),
    [sym_finally] = ACTIONS(5072),
    [sym_for] = ACTIONS(5072),
    [sym_foreach] = ACTIONS(5072),
    [sym_foreach_reverse] = ACTIONS(5072),
    [sym_function] = ACTIONS(5072),
    [sym_goto] = ACTIONS(5072),
    [sym_if] = ACTIONS(5072),
    [sym_immutable] = ACTIONS(5072),
    [sym_import] = ACTIONS(5072),
    [sym_in] = ACTIONS(5072),
    [sym_inout] = ACTIONS(5072),
    [sym_interface] = ACTIONS(5072),
    [sym_invariant] = ACTIONS(5072),
    [sym_is] = ACTIONS(5072),
    [sym_mixin] = ACTIONS(5072),
    [sym_new] = ACTIONS(5072),
    [sym_nothrow] = ACTIONS(5072),
    [sym_out] = ACTIONS(5072),
    [sym_override] = ACTIONS(5072),
    [sym_package] = ACTIONS(5072),
    [sym_pragma] = ACTIONS(5072),
    [sym_private] = ACTIONS(5072),
    [sym_protected] = ACTIONS(5072),
    [sym_public] = ACTIONS(5072),
    [sym_pure] = ACTIONS(5072),
    [sym_ref] = ACTIONS(5072),
    [sym_return] = ACTIONS(5072),
    [sym_scope] = ACTIONS(5072),
    [sym_shared] = ACTIONS(5072),
    [sym_static] = ACTIONS(5072),
    [sym_struct] = ACTIONS(5072),
    [sym_switch] = ACTIONS(5072),
    [sym_synchronized] = ACTIONS(5072),
    [sym_template] = ACTIONS(5072),
    [sym_throw] = ACTIONS(5072),
    [sym_try] = ACTIONS(5072),
    [sym_typeid] = ACTIONS(5072),
    [sym_typeof] = ACTIONS(5072),
    [sym_union] = ACTIONS(5072),
    [sym_unittest] = ACTIONS(5072),
    [sym_version] = ACTIONS(5072),
    [sym_while] = ACTIONS(5072),
    [sym_with] = ACTIONS(5072),
    [sym_gshared] = ACTIONS(5072),
    [sym_traits] = ACTIONS(5072),
    [sym_vector] = ACTIONS(5072),
    [sym_void] = ACTIONS(5072),
    [anon_sym_BQUOTE] = ACTIONS(5074),
    [anon_sym_r_DQUOTE] = ACTIONS(5074),
    [anon_sym_x_DQUOTE] = ACTIONS(5074),
    [anon_sym_DQUOTE] = ACTIONS(5074),
    [anon_sym_i_BQUOTE] = ACTIONS(5074),
    [anon_sym_i_DQUOTE] = ACTIONS(5074),
    [anon_sym_iq_LBRACE] = ACTIONS(5074),
    [aux_sym_char_literal_token1] = ACTIONS(5074),
    [anon_sym_SQUOTE] = ACTIONS(5072),
    [anon_sym___DATE__] = ACTIONS(5072),
    [anon_sym___FILE__] = ACTIONS(5072),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5072),
    [anon_sym___FUNCTION__] = ACTIONS(5072),
    [anon_sym___LINE__] = ACTIONS(5072),
    [anon_sym___MODULE__] = ACTIONS(5072),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5072),
    [anon_sym___TIME__] = ACTIONS(5072),
    [anon_sym___TIMESTAMP__] = ACTIONS(5072),
    [anon_sym___VENDOR__] = ACTIONS(5072),
    [anon_sym___VERSION__] = ACTIONS(5072),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5074),
    [sym_float_literal] = ACTIONS(5074),
    [sym__string] = ACTIONS(5074),
  },
  [1556] = {
    [sym_identifier] = ACTIONS(5076),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5078),
    [anon_sym_RBRACE] = ACTIONS(5078),
    [anon_sym_LBRACE] = ACTIONS(5078),
    [anon_sym_DOT] = ACTIONS(5078),
    [anon_sym_AMP] = ACTIONS(5078),
    [anon_sym_DASH] = ACTIONS(5076),
    [anon_sym_DASH_DASH] = ACTIONS(5078),
    [anon_sym_PLUS] = ACTIONS(5076),
    [anon_sym_PLUS_PLUS] = ACTIONS(5078),
    [anon_sym_BANG] = ACTIONS(5078),
    [anon_sym_LPAREN] = ACTIONS(5078),
    [anon_sym_RPAREN] = ACTIONS(5078),
    [anon_sym_LBRACK] = ACTIONS(5078),
    [anon_sym_SEMI] = ACTIONS(5078),
    [anon_sym_DOLLAR] = ACTIONS(5078),
    [anon_sym_STAR] = ACTIONS(5078),
    [anon_sym_TILDE] = ACTIONS(5078),
    [anon_sym_AT] = ACTIONS(5078),
    [sym_bool] = ACTIONS(5076),
    [sym_byte] = ACTIONS(5076),
    [sym_ubyte] = ACTIONS(5076),
    [sym_char] = ACTIONS(5076),
    [sym_short] = ACTIONS(5076),
    [sym_ushort] = ACTIONS(5076),
    [sym_int] = ACTIONS(5076),
    [sym_uint] = ACTIONS(5076),
    [sym_long] = ACTIONS(5076),
    [sym_ulong] = ACTIONS(5076),
    [sym_cent] = ACTIONS(5076),
    [sym_ucent] = ACTIONS(5076),
    [sym_wchar] = ACTIONS(5076),
    [sym_dchar] = ACTIONS(5076),
    [sym_float] = ACTIONS(5076),
    [sym_double] = ACTIONS(5076),
    [sym_real] = ACTIONS(5076),
    [sym_ifloat] = ACTIONS(5076),
    [sym_idouble] = ACTIONS(5076),
    [sym_ireal] = ACTIONS(5076),
    [sym_cfloat] = ACTIONS(5076),
    [sym_cdouble] = ACTIONS(5076),
    [sym_creal] = ACTIONS(5076),
    [sym_size_t] = ACTIONS(5076),
    [sym_ptrdiff_t] = ACTIONS(5076),
    [sym_string] = ACTIONS(5076),
    [sym_cstring] = ACTIONS(5076),
    [sym_dstring] = ACTIONS(5076),
    [sym_wstring] = ACTIONS(5076),
    [sym_noreturn] = ACTIONS(5076),
    [sym_true] = ACTIONS(5076),
    [sym_false] = ACTIONS(5076),
    [sym_null] = ACTIONS(5076),
    [sym_super] = ACTIONS(5076),
    [sym_this] = ACTIONS(5076),
    [sym_abstract] = ACTIONS(5076),
    [sym_alias] = ACTIONS(5076),
    [sym_align] = ACTIONS(5076),
    [sym_asm] = ACTIONS(5076),
    [sym_assert] = ACTIONS(5076),
    [sym_auto] = ACTIONS(5076),
    [sym_break] = ACTIONS(5076),
    [sym_case] = ACTIONS(5076),
    [sym_cast] = ACTIONS(5076),
    [sym_catch] = ACTIONS(5076),
    [sym_class] = ACTIONS(5076),
    [sym_const] = ACTIONS(5076),
    [sym_continue] = ACTIONS(5076),
    [sym_debug] = ACTIONS(5076),
    [sym_default] = ACTIONS(5076),
    [sym_delegate] = ACTIONS(5076),
    [sym_delete] = ACTIONS(5076),
    [sym_deprecated] = ACTIONS(5076),
    [sym_do] = ACTIONS(5076),
    [sym_else] = ACTIONS(5076),
    [sym_enum] = ACTIONS(5076),
    [sym_export] = ACTIONS(5076),
    [sym_extern] = ACTIONS(5076),
    [sym_final] = ACTIONS(5076),
    [sym_finally] = ACTIONS(5076),
    [sym_for] = ACTIONS(5076),
    [sym_foreach] = ACTIONS(5076),
    [sym_foreach_reverse] = ACTIONS(5076),
    [sym_function] = ACTIONS(5076),
    [sym_goto] = ACTIONS(5076),
    [sym_if] = ACTIONS(5076),
    [sym_immutable] = ACTIONS(5076),
    [sym_import] = ACTIONS(5076),
    [sym_in] = ACTIONS(5076),
    [sym_inout] = ACTIONS(5076),
    [sym_interface] = ACTIONS(5076),
    [sym_invariant] = ACTIONS(5076),
    [sym_is] = ACTIONS(5076),
    [sym_mixin] = ACTIONS(5076),
    [sym_new] = ACTIONS(5076),
    [sym_nothrow] = ACTIONS(5076),
    [sym_out] = ACTIONS(5076),
    [sym_override] = ACTIONS(5076),
    [sym_package] = ACTIONS(5076),
    [sym_pragma] = ACTIONS(5076),
    [sym_private] = ACTIONS(5076),
    [sym_protected] = ACTIONS(5076),
    [sym_public] = ACTIONS(5076),
    [sym_pure] = ACTIONS(5076),
    [sym_ref] = ACTIONS(5076),
    [sym_return] = ACTIONS(5076),
    [sym_scope] = ACTIONS(5076),
    [sym_shared] = ACTIONS(5076),
    [sym_static] = ACTIONS(5076),
    [sym_struct] = ACTIONS(5076),
    [sym_switch] = ACTIONS(5076),
    [sym_synchronized] = ACTIONS(5076),
    [sym_template] = ACTIONS(5076),
    [sym_throw] = ACTIONS(5076),
    [sym_try] = ACTIONS(5076),
    [sym_typeid] = ACTIONS(5076),
    [sym_typeof] = ACTIONS(5076),
    [sym_union] = ACTIONS(5076),
    [sym_unittest] = ACTIONS(5076),
    [sym_version] = ACTIONS(5076),
    [sym_while] = ACTIONS(5076),
    [sym_with] = ACTIONS(5076),
    [sym_gshared] = ACTIONS(5076),
    [sym_traits] = ACTIONS(5076),
    [sym_vector] = ACTIONS(5076),
    [sym_void] = ACTIONS(5076),
    [anon_sym_BQUOTE] = ACTIONS(5078),
    [anon_sym_r_DQUOTE] = ACTIONS(5078),
    [anon_sym_x_DQUOTE] = ACTIONS(5078),
    [anon_sym_DQUOTE] = ACTIONS(5078),
    [anon_sym_i_BQUOTE] = ACTIONS(5078),
    [anon_sym_i_DQUOTE] = ACTIONS(5078),
    [anon_sym_iq_LBRACE] = ACTIONS(5078),
    [aux_sym_char_literal_token1] = ACTIONS(5078),
    [anon_sym_SQUOTE] = ACTIONS(5076),
    [anon_sym___DATE__] = ACTIONS(5076),
    [anon_sym___FILE__] = ACTIONS(5076),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5076),
    [anon_sym___FUNCTION__] = ACTIONS(5076),
    [anon_sym___LINE__] = ACTIONS(5076),
    [anon_sym___MODULE__] = ACTIONS(5076),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5076),
    [anon_sym___TIME__] = ACTIONS(5076),
    [anon_sym___TIMESTAMP__] = ACTIONS(5076),
    [anon_sym___VENDOR__] = ACTIONS(5076),
    [anon_sym___VERSION__] = ACTIONS(5076),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5078),
    [sym_float_literal] = ACTIONS(5078),
    [sym__string] = ACTIONS(5078),
  },
  [1557] = {
    [sym_identifier] = ACTIONS(5080),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5082),
    [anon_sym_RBRACE] = ACTIONS(5082),
    [anon_sym_LBRACE] = ACTIONS(5082),
    [anon_sym_DOT] = ACTIONS(5082),
    [anon_sym_AMP] = ACTIONS(5082),
    [anon_sym_DASH] = ACTIONS(5080),
    [anon_sym_DASH_DASH] = ACTIONS(5082),
    [anon_sym_PLUS] = ACTIONS(5080),
    [anon_sym_PLUS_PLUS] = ACTIONS(5082),
    [anon_sym_BANG] = ACTIONS(5082),
    [anon_sym_LPAREN] = ACTIONS(5082),
    [anon_sym_RPAREN] = ACTIONS(5082),
    [anon_sym_LBRACK] = ACTIONS(5082),
    [anon_sym_SEMI] = ACTIONS(5082),
    [anon_sym_DOLLAR] = ACTIONS(5082),
    [anon_sym_STAR] = ACTIONS(5082),
    [anon_sym_TILDE] = ACTIONS(5082),
    [anon_sym_AT] = ACTIONS(5082),
    [sym_bool] = ACTIONS(5080),
    [sym_byte] = ACTIONS(5080),
    [sym_ubyte] = ACTIONS(5080),
    [sym_char] = ACTIONS(5080),
    [sym_short] = ACTIONS(5080),
    [sym_ushort] = ACTIONS(5080),
    [sym_int] = ACTIONS(5080),
    [sym_uint] = ACTIONS(5080),
    [sym_long] = ACTIONS(5080),
    [sym_ulong] = ACTIONS(5080),
    [sym_cent] = ACTIONS(5080),
    [sym_ucent] = ACTIONS(5080),
    [sym_wchar] = ACTIONS(5080),
    [sym_dchar] = ACTIONS(5080),
    [sym_float] = ACTIONS(5080),
    [sym_double] = ACTIONS(5080),
    [sym_real] = ACTIONS(5080),
    [sym_ifloat] = ACTIONS(5080),
    [sym_idouble] = ACTIONS(5080),
    [sym_ireal] = ACTIONS(5080),
    [sym_cfloat] = ACTIONS(5080),
    [sym_cdouble] = ACTIONS(5080),
    [sym_creal] = ACTIONS(5080),
    [sym_size_t] = ACTIONS(5080),
    [sym_ptrdiff_t] = ACTIONS(5080),
    [sym_string] = ACTIONS(5080),
    [sym_cstring] = ACTIONS(5080),
    [sym_dstring] = ACTIONS(5080),
    [sym_wstring] = ACTIONS(5080),
    [sym_noreturn] = ACTIONS(5080),
    [sym_true] = ACTIONS(5080),
    [sym_false] = ACTIONS(5080),
    [sym_null] = ACTIONS(5080),
    [sym_super] = ACTIONS(5080),
    [sym_this] = ACTIONS(5080),
    [sym_abstract] = ACTIONS(5080),
    [sym_alias] = ACTIONS(5080),
    [sym_align] = ACTIONS(5080),
    [sym_asm] = ACTIONS(5080),
    [sym_assert] = ACTIONS(5080),
    [sym_auto] = ACTIONS(5080),
    [sym_break] = ACTIONS(5080),
    [sym_case] = ACTIONS(5080),
    [sym_cast] = ACTIONS(5080),
    [sym_catch] = ACTIONS(5080),
    [sym_class] = ACTIONS(5080),
    [sym_const] = ACTIONS(5080),
    [sym_continue] = ACTIONS(5080),
    [sym_debug] = ACTIONS(5080),
    [sym_default] = ACTIONS(5080),
    [sym_delegate] = ACTIONS(5080),
    [sym_delete] = ACTIONS(5080),
    [sym_deprecated] = ACTIONS(5080),
    [sym_do] = ACTIONS(5080),
    [sym_else] = ACTIONS(5080),
    [sym_enum] = ACTIONS(5080),
    [sym_export] = ACTIONS(5080),
    [sym_extern] = ACTIONS(5080),
    [sym_final] = ACTIONS(5080),
    [sym_finally] = ACTIONS(5080),
    [sym_for] = ACTIONS(5080),
    [sym_foreach] = ACTIONS(5080),
    [sym_foreach_reverse] = ACTIONS(5080),
    [sym_function] = ACTIONS(5080),
    [sym_goto] = ACTIONS(5080),
    [sym_if] = ACTIONS(5080),
    [sym_immutable] = ACTIONS(5080),
    [sym_import] = ACTIONS(5080),
    [sym_in] = ACTIONS(5080),
    [sym_inout] = ACTIONS(5080),
    [sym_interface] = ACTIONS(5080),
    [sym_invariant] = ACTIONS(5080),
    [sym_is] = ACTIONS(5080),
    [sym_mixin] = ACTIONS(5080),
    [sym_new] = ACTIONS(5080),
    [sym_nothrow] = ACTIONS(5080),
    [sym_out] = ACTIONS(5080),
    [sym_override] = ACTIONS(5080),
    [sym_package] = ACTIONS(5080),
    [sym_pragma] = ACTIONS(5080),
    [sym_private] = ACTIONS(5080),
    [sym_protected] = ACTIONS(5080),
    [sym_public] = ACTIONS(5080),
    [sym_pure] = ACTIONS(5080),
    [sym_ref] = ACTIONS(5080),
    [sym_return] = ACTIONS(5080),
    [sym_scope] = ACTIONS(5080),
    [sym_shared] = ACTIONS(5080),
    [sym_static] = ACTIONS(5080),
    [sym_struct] = ACTIONS(5080),
    [sym_switch] = ACTIONS(5080),
    [sym_synchronized] = ACTIONS(5080),
    [sym_template] = ACTIONS(5080),
    [sym_throw] = ACTIONS(5080),
    [sym_try] = ACTIONS(5080),
    [sym_typeid] = ACTIONS(5080),
    [sym_typeof] = ACTIONS(5080),
    [sym_union] = ACTIONS(5080),
    [sym_unittest] = ACTIONS(5080),
    [sym_version] = ACTIONS(5080),
    [sym_while] = ACTIONS(5080),
    [sym_with] = ACTIONS(5080),
    [sym_gshared] = ACTIONS(5080),
    [sym_traits] = ACTIONS(5080),
    [sym_vector] = ACTIONS(5080),
    [sym_void] = ACTIONS(5080),
    [anon_sym_BQUOTE] = ACTIONS(5082),
    [anon_sym_r_DQUOTE] = ACTIONS(5082),
    [anon_sym_x_DQUOTE] = ACTIONS(5082),
    [anon_sym_DQUOTE] = ACTIONS(5082),
    [anon_sym_i_BQUOTE] = ACTIONS(5082),
    [anon_sym_i_DQUOTE] = ACTIONS(5082),
    [anon_sym_iq_LBRACE] = ACTIONS(5082),
    [aux_sym_char_literal_token1] = ACTIONS(5082),
    [anon_sym_SQUOTE] = ACTIONS(5080),
    [anon_sym___DATE__] = ACTIONS(5080),
    [anon_sym___FILE__] = ACTIONS(5080),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5080),
    [anon_sym___FUNCTION__] = ACTIONS(5080),
    [anon_sym___LINE__] = ACTIONS(5080),
    [anon_sym___MODULE__] = ACTIONS(5080),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5080),
    [anon_sym___TIME__] = ACTIONS(5080),
    [anon_sym___TIMESTAMP__] = ACTIONS(5080),
    [anon_sym___VENDOR__] = ACTIONS(5080),
    [anon_sym___VERSION__] = ACTIONS(5080),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5082),
    [sym_float_literal] = ACTIONS(5082),
    [sym__string] = ACTIONS(5082),
  },
  [1558] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4299),
    [anon_sym_RBRACE] = ACTIONS(4299),
    [anon_sym_LBRACE] = ACTIONS(5084),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_AMP] = ACTIONS(4299),
    [anon_sym_DASH] = ACTIONS(4297),
    [anon_sym_DASH_DASH] = ACTIONS(4299),
    [anon_sym_PLUS] = ACTIONS(4297),
    [anon_sym_PLUS_PLUS] = ACTIONS(4299),
    [anon_sym_BANG] = ACTIONS(4299),
    [anon_sym_LPAREN] = ACTIONS(4299),
    [anon_sym_RPAREN] = ACTIONS(4299),
    [anon_sym_LBRACK] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(5084),
    [anon_sym_DOLLAR] = ACTIONS(4299),
    [anon_sym_STAR] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_true] = ACTIONS(4297),
    [sym_false] = ACTIONS(4297),
    [sym_null] = ACTIONS(4297),
    [sym_super] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_asm] = ACTIONS(4297),
    [sym_assert] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_break] = ACTIONS(4297),
    [sym_case] = ACTIONS(4297),
    [sym_cast] = ACTIONS(4297),
    [sym_catch] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_continue] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_default] = ACTIONS(4297),
    [sym_delegate] = ACTIONS(4297),
    [sym_delete] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_do] = ACTIONS(5087),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_finally] = ACTIONS(4297),
    [sym_for] = ACTIONS(4297),
    [sym_foreach] = ACTIONS(4297),
    [sym_foreach_reverse] = ACTIONS(4297),
    [sym_function] = ACTIONS(4297),
    [sym_goto] = ACTIONS(4297),
    [sym_if] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(5087),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_is] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_new] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_out] = ACTIONS(5087),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_switch] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_throw] = ACTIONS(4297),
    [sym_try] = ACTIONS(4297),
    [sym_typeid] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_with] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [anon_sym_BQUOTE] = ACTIONS(4299),
    [anon_sym_r_DQUOTE] = ACTIONS(4299),
    [anon_sym_x_DQUOTE] = ACTIONS(4299),
    [anon_sym_DQUOTE] = ACTIONS(4299),
    [anon_sym_i_BQUOTE] = ACTIONS(4299),
    [anon_sym_i_DQUOTE] = ACTIONS(4299),
    [anon_sym_iq_LBRACE] = ACTIONS(4299),
    [aux_sym_char_literal_token1] = ACTIONS(4299),
    [anon_sym_SQUOTE] = ACTIONS(4297),
    [anon_sym___DATE__] = ACTIONS(4297),
    [anon_sym___FILE__] = ACTIONS(4297),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4297),
    [anon_sym___FUNCTION__] = ACTIONS(4297),
    [anon_sym___LINE__] = ACTIONS(4297),
    [anon_sym___MODULE__] = ACTIONS(4297),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4297),
    [anon_sym___TIME__] = ACTIONS(4297),
    [anon_sym___TIMESTAMP__] = ACTIONS(4297),
    [anon_sym___VENDOR__] = ACTIONS(4297),
    [anon_sym___VERSION__] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4299),
    [sym_float_literal] = ACTIONS(4299),
    [sym__string] = ACTIONS(4299),
  },
  [1559] = {
    [sym_identifier] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2804),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_LBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(2804),
    [anon_sym_AMP] = ACTIONS(2804),
    [anon_sym_DASH] = ACTIONS(2806),
    [anon_sym_DASH_DASH] = ACTIONS(2804),
    [anon_sym_PLUS] = ACTIONS(2806),
    [anon_sym_PLUS_PLUS] = ACTIONS(2804),
    [anon_sym_BANG] = ACTIONS(2804),
    [anon_sym_LPAREN] = ACTIONS(2804),
    [anon_sym_RPAREN] = ACTIONS(2804),
    [anon_sym_LBRACK] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2804),
    [anon_sym_DOLLAR] = ACTIONS(2804),
    [anon_sym_STAR] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2804),
    [anon_sym_AT] = ACTIONS(2804),
    [sym_bool] = ACTIONS(2806),
    [sym_byte] = ACTIONS(2806),
    [sym_ubyte] = ACTIONS(2806),
    [sym_char] = ACTIONS(2806),
    [sym_short] = ACTIONS(2806),
    [sym_ushort] = ACTIONS(2806),
    [sym_int] = ACTIONS(2806),
    [sym_uint] = ACTIONS(2806),
    [sym_long] = ACTIONS(2806),
    [sym_ulong] = ACTIONS(2806),
    [sym_cent] = ACTIONS(2806),
    [sym_ucent] = ACTIONS(2806),
    [sym_wchar] = ACTIONS(2806),
    [sym_dchar] = ACTIONS(2806),
    [sym_float] = ACTIONS(2806),
    [sym_double] = ACTIONS(2806),
    [sym_real] = ACTIONS(2806),
    [sym_ifloat] = ACTIONS(2806),
    [sym_idouble] = ACTIONS(2806),
    [sym_ireal] = ACTIONS(2806),
    [sym_cfloat] = ACTIONS(2806),
    [sym_cdouble] = ACTIONS(2806),
    [sym_creal] = ACTIONS(2806),
    [sym_size_t] = ACTIONS(2806),
    [sym_ptrdiff_t] = ACTIONS(2806),
    [sym_string] = ACTIONS(2806),
    [sym_cstring] = ACTIONS(2806),
    [sym_dstring] = ACTIONS(2806),
    [sym_wstring] = ACTIONS(2806),
    [sym_noreturn] = ACTIONS(2806),
    [sym_true] = ACTIONS(2806),
    [sym_false] = ACTIONS(2806),
    [sym_null] = ACTIONS(2806),
    [sym_super] = ACTIONS(2806),
    [sym_this] = ACTIONS(2806),
    [sym_abstract] = ACTIONS(2806),
    [sym_alias] = ACTIONS(2806),
    [sym_align] = ACTIONS(2806),
    [sym_asm] = ACTIONS(2806),
    [sym_assert] = ACTIONS(2806),
    [sym_auto] = ACTIONS(2806),
    [sym_break] = ACTIONS(2806),
    [sym_case] = ACTIONS(2806),
    [sym_cast] = ACTIONS(2806),
    [sym_class] = ACTIONS(2806),
    [sym_const] = ACTIONS(2806),
    [sym_continue] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2806),
    [sym_default] = ACTIONS(2806),
    [sym_delegate] = ACTIONS(2806),
    [sym_delete] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(2806),
    [sym_do] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(2806),
    [sym_export] = ACTIONS(2806),
    [sym_extern] = ACTIONS(2806),
    [sym_final] = ACTIONS(2806),
    [sym_for] = ACTIONS(2806),
    [sym_foreach] = ACTIONS(2806),
    [sym_foreach_reverse] = ACTIONS(2806),
    [sym_function] = ACTIONS(2806),
    [sym_goto] = ACTIONS(2806),
    [sym_if] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(2806),
    [sym_import] = ACTIONS(2806),
    [sym_in] = ACTIONS(2806),
    [sym_inout] = ACTIONS(2806),
    [sym_interface] = ACTIONS(2806),
    [sym_invariant] = ACTIONS(2806),
    [sym_is] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2806),
    [sym_new] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(2806),
    [sym_out] = ACTIONS(2806),
    [sym_override] = ACTIONS(2806),
    [sym_package] = ACTIONS(2806),
    [sym_pragma] = ACTIONS(2806),
    [sym_private] = ACTIONS(2806),
    [sym_protected] = ACTIONS(2806),
    [sym_public] = ACTIONS(2806),
    [sym_pure] = ACTIONS(2806),
    [sym_ref] = ACTIONS(2806),
    [sym_return] = ACTIONS(2806),
    [sym_scope] = ACTIONS(2806),
    [sym_shared] = ACTIONS(2806),
    [sym_static] = ACTIONS(2806),
    [sym_struct] = ACTIONS(2806),
    [sym_switch] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(2806),
    [sym_template] = ACTIONS(2806),
    [sym_throw] = ACTIONS(2806),
    [sym_try] = ACTIONS(2806),
    [sym_typeid] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(2806),
    [sym_union] = ACTIONS(2806),
    [sym_unittest] = ACTIONS(2806),
    [sym_version] = ACTIONS(2806),
    [sym_while] = ACTIONS(2806),
    [sym_with] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(2806),
    [sym_traits] = ACTIONS(2806),
    [sym_vector] = ACTIONS(2806),
    [sym_void] = ACTIONS(2806),
    [anon_sym_BQUOTE] = ACTIONS(2804),
    [anon_sym_r_DQUOTE] = ACTIONS(2804),
    [anon_sym_x_DQUOTE] = ACTIONS(2804),
    [anon_sym_DQUOTE] = ACTIONS(2804),
    [anon_sym_i_BQUOTE] = ACTIONS(2804),
    [anon_sym_i_DQUOTE] = ACTIONS(2804),
    [anon_sym_iq_LBRACE] = ACTIONS(2804),
    [aux_sym_char_literal_token1] = ACTIONS(2804),
    [anon_sym_SQUOTE] = ACTIONS(2806),
    [anon_sym___DATE__] = ACTIONS(2806),
    [anon_sym___FILE__] = ACTIONS(2806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2806),
    [anon_sym___FUNCTION__] = ACTIONS(2806),
    [anon_sym___LINE__] = ACTIONS(2806),
    [anon_sym___MODULE__] = ACTIONS(2806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2806),
    [anon_sym___TIME__] = ACTIONS(2806),
    [anon_sym___TIMESTAMP__] = ACTIONS(2806),
    [anon_sym___VENDOR__] = ACTIONS(2806),
    [anon_sym___VERSION__] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2804),
    [sym_float_literal] = ACTIONS(2804),
    [sym__string] = ACTIONS(2804),
  },
  [1560] = {
    [sym_identifier] = ACTIONS(4966),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4968),
    [anon_sym_RBRACE] = ACTIONS(4968),
    [anon_sym_LBRACE] = ACTIONS(4968),
    [anon_sym_DOT] = ACTIONS(4968),
    [anon_sym_AMP] = ACTIONS(4968),
    [anon_sym_DASH] = ACTIONS(4966),
    [anon_sym_DASH_DASH] = ACTIONS(4968),
    [anon_sym_PLUS] = ACTIONS(4966),
    [anon_sym_PLUS_PLUS] = ACTIONS(4968),
    [anon_sym_BANG] = ACTIONS(4968),
    [anon_sym_LPAREN] = ACTIONS(4968),
    [anon_sym_RPAREN] = ACTIONS(4968),
    [anon_sym_LBRACK] = ACTIONS(4968),
    [anon_sym_SEMI] = ACTIONS(4968),
    [anon_sym_DOLLAR] = ACTIONS(4968),
    [anon_sym_STAR] = ACTIONS(4968),
    [anon_sym_TILDE] = ACTIONS(4968),
    [anon_sym_AT] = ACTIONS(4968),
    [sym_bool] = ACTIONS(4966),
    [sym_byte] = ACTIONS(4966),
    [sym_ubyte] = ACTIONS(4966),
    [sym_char] = ACTIONS(4966),
    [sym_short] = ACTIONS(4966),
    [sym_ushort] = ACTIONS(4966),
    [sym_int] = ACTIONS(4966),
    [sym_uint] = ACTIONS(4966),
    [sym_long] = ACTIONS(4966),
    [sym_ulong] = ACTIONS(4966),
    [sym_cent] = ACTIONS(4966),
    [sym_ucent] = ACTIONS(4966),
    [sym_wchar] = ACTIONS(4966),
    [sym_dchar] = ACTIONS(4966),
    [sym_float] = ACTIONS(4966),
    [sym_double] = ACTIONS(4966),
    [sym_real] = ACTIONS(4966),
    [sym_ifloat] = ACTIONS(4966),
    [sym_idouble] = ACTIONS(4966),
    [sym_ireal] = ACTIONS(4966),
    [sym_cfloat] = ACTIONS(4966),
    [sym_cdouble] = ACTIONS(4966),
    [sym_creal] = ACTIONS(4966),
    [sym_size_t] = ACTIONS(4966),
    [sym_ptrdiff_t] = ACTIONS(4966),
    [sym_string] = ACTIONS(4966),
    [sym_cstring] = ACTIONS(4966),
    [sym_dstring] = ACTIONS(4966),
    [sym_wstring] = ACTIONS(4966),
    [sym_noreturn] = ACTIONS(4966),
    [sym_true] = ACTIONS(4966),
    [sym_false] = ACTIONS(4966),
    [sym_null] = ACTIONS(4966),
    [sym_super] = ACTIONS(4966),
    [sym_this] = ACTIONS(4966),
    [sym_abstract] = ACTIONS(4966),
    [sym_alias] = ACTIONS(4966),
    [sym_align] = ACTIONS(4966),
    [sym_asm] = ACTIONS(4966),
    [sym_assert] = ACTIONS(4966),
    [sym_auto] = ACTIONS(4966),
    [sym_break] = ACTIONS(4966),
    [sym_case] = ACTIONS(4966),
    [sym_cast] = ACTIONS(4966),
    [sym_class] = ACTIONS(4966),
    [sym_const] = ACTIONS(4966),
    [sym_continue] = ACTIONS(4966),
    [sym_debug] = ACTIONS(4966),
    [sym_default] = ACTIONS(4966),
    [sym_delegate] = ACTIONS(4966),
    [sym_delete] = ACTIONS(4966),
    [sym_deprecated] = ACTIONS(4966),
    [sym_do] = ACTIONS(4966),
    [sym_else] = ACTIONS(4966),
    [sym_enum] = ACTIONS(4966),
    [sym_export] = ACTIONS(4966),
    [sym_extern] = ACTIONS(4966),
    [sym_final] = ACTIONS(4966),
    [sym_for] = ACTIONS(4966),
    [sym_foreach] = ACTIONS(4966),
    [sym_foreach_reverse] = ACTIONS(4966),
    [sym_function] = ACTIONS(4966),
    [sym_goto] = ACTIONS(4966),
    [sym_if] = ACTIONS(4966),
    [sym_immutable] = ACTIONS(4966),
    [sym_import] = ACTIONS(4966),
    [sym_in] = ACTIONS(4966),
    [sym_inout] = ACTIONS(4966),
    [sym_interface] = ACTIONS(4966),
    [sym_invariant] = ACTIONS(4966),
    [sym_is] = ACTIONS(4966),
    [sym_mixin] = ACTIONS(4966),
    [sym_new] = ACTIONS(4966),
    [sym_nothrow] = ACTIONS(4966),
    [sym_out] = ACTIONS(4966),
    [sym_override] = ACTIONS(4966),
    [sym_package] = ACTIONS(4966),
    [sym_pragma] = ACTIONS(4966),
    [sym_private] = ACTIONS(4966),
    [sym_protected] = ACTIONS(4966),
    [sym_public] = ACTIONS(4966),
    [sym_pure] = ACTIONS(4966),
    [sym_ref] = ACTIONS(4966),
    [sym_return] = ACTIONS(4966),
    [sym_scope] = ACTIONS(4966),
    [sym_shared] = ACTIONS(4966),
    [sym_static] = ACTIONS(4966),
    [sym_struct] = ACTIONS(4966),
    [sym_switch] = ACTIONS(4966),
    [sym_synchronized] = ACTIONS(4966),
    [sym_template] = ACTIONS(4966),
    [sym_throw] = ACTIONS(4966),
    [sym_try] = ACTIONS(4966),
    [sym_typeid] = ACTIONS(4966),
    [sym_typeof] = ACTIONS(4966),
    [sym_union] = ACTIONS(4966),
    [sym_unittest] = ACTIONS(4966),
    [sym_version] = ACTIONS(4966),
    [sym_while] = ACTIONS(4966),
    [sym_with] = ACTIONS(4966),
    [sym_gshared] = ACTIONS(4966),
    [sym_traits] = ACTIONS(4966),
    [sym_vector] = ACTIONS(4966),
    [sym_void] = ACTIONS(4966),
    [anon_sym_BQUOTE] = ACTIONS(4968),
    [anon_sym_r_DQUOTE] = ACTIONS(4968),
    [anon_sym_x_DQUOTE] = ACTIONS(4968),
    [anon_sym_DQUOTE] = ACTIONS(4968),
    [anon_sym_i_BQUOTE] = ACTIONS(4968),
    [anon_sym_i_DQUOTE] = ACTIONS(4968),
    [anon_sym_iq_LBRACE] = ACTIONS(4968),
    [aux_sym_char_literal_token1] = ACTIONS(4968),
    [anon_sym_SQUOTE] = ACTIONS(4966),
    [anon_sym___DATE__] = ACTIONS(4966),
    [anon_sym___FILE__] = ACTIONS(4966),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4966),
    [anon_sym___FUNCTION__] = ACTIONS(4966),
    [anon_sym___LINE__] = ACTIONS(4966),
    [anon_sym___MODULE__] = ACTIONS(4966),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4966),
    [anon_sym___TIME__] = ACTIONS(4966),
    [anon_sym___TIMESTAMP__] = ACTIONS(4966),
    [anon_sym___VENDOR__] = ACTIONS(4966),
    [anon_sym___VERSION__] = ACTIONS(4966),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4968),
    [sym_float_literal] = ACTIONS(4968),
    [sym__string] = ACTIONS(4968),
  },
  [1561] = {
    [sym_identifier] = ACTIONS(4810),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4812),
    [anon_sym_RBRACE] = ACTIONS(4812),
    [anon_sym_LBRACE] = ACTIONS(4812),
    [anon_sym_DOT] = ACTIONS(4812),
    [anon_sym_AMP] = ACTIONS(4812),
    [anon_sym_DASH] = ACTIONS(4810),
    [anon_sym_DASH_DASH] = ACTIONS(4812),
    [anon_sym_PLUS] = ACTIONS(4810),
    [anon_sym_PLUS_PLUS] = ACTIONS(4812),
    [anon_sym_BANG] = ACTIONS(4812),
    [anon_sym_LPAREN] = ACTIONS(4812),
    [anon_sym_RPAREN] = ACTIONS(4812),
    [anon_sym_LBRACK] = ACTIONS(4812),
    [anon_sym_SEMI] = ACTIONS(4812),
    [anon_sym_DOLLAR] = ACTIONS(4812),
    [anon_sym_STAR] = ACTIONS(4812),
    [anon_sym_TILDE] = ACTIONS(4812),
    [anon_sym_AT] = ACTIONS(4812),
    [sym_bool] = ACTIONS(4810),
    [sym_byte] = ACTIONS(4810),
    [sym_ubyte] = ACTIONS(4810),
    [sym_char] = ACTIONS(4810),
    [sym_short] = ACTIONS(4810),
    [sym_ushort] = ACTIONS(4810),
    [sym_int] = ACTIONS(4810),
    [sym_uint] = ACTIONS(4810),
    [sym_long] = ACTIONS(4810),
    [sym_ulong] = ACTIONS(4810),
    [sym_cent] = ACTIONS(4810),
    [sym_ucent] = ACTIONS(4810),
    [sym_wchar] = ACTIONS(4810),
    [sym_dchar] = ACTIONS(4810),
    [sym_float] = ACTIONS(4810),
    [sym_double] = ACTIONS(4810),
    [sym_real] = ACTIONS(4810),
    [sym_ifloat] = ACTIONS(4810),
    [sym_idouble] = ACTIONS(4810),
    [sym_ireal] = ACTIONS(4810),
    [sym_cfloat] = ACTIONS(4810),
    [sym_cdouble] = ACTIONS(4810),
    [sym_creal] = ACTIONS(4810),
    [sym_size_t] = ACTIONS(4810),
    [sym_ptrdiff_t] = ACTIONS(4810),
    [sym_string] = ACTIONS(4810),
    [sym_cstring] = ACTIONS(4810),
    [sym_dstring] = ACTIONS(4810),
    [sym_wstring] = ACTIONS(4810),
    [sym_noreturn] = ACTIONS(4810),
    [sym_true] = ACTIONS(4810),
    [sym_false] = ACTIONS(4810),
    [sym_null] = ACTIONS(4810),
    [sym_super] = ACTIONS(4810),
    [sym_this] = ACTIONS(4810),
    [sym_abstract] = ACTIONS(4810),
    [sym_alias] = ACTIONS(4810),
    [sym_align] = ACTIONS(4810),
    [sym_asm] = ACTIONS(4810),
    [sym_assert] = ACTIONS(4810),
    [sym_auto] = ACTIONS(4810),
    [sym_break] = ACTIONS(4810),
    [sym_case] = ACTIONS(4810),
    [sym_cast] = ACTIONS(4810),
    [sym_class] = ACTIONS(4810),
    [sym_const] = ACTIONS(4810),
    [sym_continue] = ACTIONS(4810),
    [sym_debug] = ACTIONS(4810),
    [sym_default] = ACTIONS(4810),
    [sym_delegate] = ACTIONS(4810),
    [sym_delete] = ACTIONS(4810),
    [sym_deprecated] = ACTIONS(4810),
    [sym_do] = ACTIONS(4810),
    [sym_else] = ACTIONS(4810),
    [sym_enum] = ACTIONS(4810),
    [sym_export] = ACTIONS(4810),
    [sym_extern] = ACTIONS(4810),
    [sym_final] = ACTIONS(4810),
    [sym_for] = ACTIONS(4810),
    [sym_foreach] = ACTIONS(4810),
    [sym_foreach_reverse] = ACTIONS(4810),
    [sym_function] = ACTIONS(4810),
    [sym_goto] = ACTIONS(4810),
    [sym_if] = ACTIONS(4810),
    [sym_immutable] = ACTIONS(4810),
    [sym_import] = ACTIONS(4810),
    [sym_in] = ACTIONS(4810),
    [sym_inout] = ACTIONS(4810),
    [sym_interface] = ACTIONS(4810),
    [sym_invariant] = ACTIONS(4810),
    [sym_is] = ACTIONS(4810),
    [sym_mixin] = ACTIONS(4810),
    [sym_new] = ACTIONS(4810),
    [sym_nothrow] = ACTIONS(4810),
    [sym_out] = ACTIONS(4810),
    [sym_override] = ACTIONS(4810),
    [sym_package] = ACTIONS(4810),
    [sym_pragma] = ACTIONS(4810),
    [sym_private] = ACTIONS(4810),
    [sym_protected] = ACTIONS(4810),
    [sym_public] = ACTIONS(4810),
    [sym_pure] = ACTIONS(4810),
    [sym_ref] = ACTIONS(4810),
    [sym_return] = ACTIONS(4810),
    [sym_scope] = ACTIONS(4810),
    [sym_shared] = ACTIONS(4810),
    [sym_static] = ACTIONS(4810),
    [sym_struct] = ACTIONS(4810),
    [sym_switch] = ACTIONS(4810),
    [sym_synchronized] = ACTIONS(4810),
    [sym_template] = ACTIONS(4810),
    [sym_throw] = ACTIONS(4810),
    [sym_try] = ACTIONS(4810),
    [sym_typeid] = ACTIONS(4810),
    [sym_typeof] = ACTIONS(4810),
    [sym_union] = ACTIONS(4810),
    [sym_unittest] = ACTIONS(4810),
    [sym_version] = ACTIONS(4810),
    [sym_while] = ACTIONS(4810),
    [sym_with] = ACTIONS(4810),
    [sym_gshared] = ACTIONS(4810),
    [sym_traits] = ACTIONS(4810),
    [sym_vector] = ACTIONS(4810),
    [sym_void] = ACTIONS(4810),
    [anon_sym_BQUOTE] = ACTIONS(4812),
    [anon_sym_r_DQUOTE] = ACTIONS(4812),
    [anon_sym_x_DQUOTE] = ACTIONS(4812),
    [anon_sym_DQUOTE] = ACTIONS(4812),
    [anon_sym_i_BQUOTE] = ACTIONS(4812),
    [anon_sym_i_DQUOTE] = ACTIONS(4812),
    [anon_sym_iq_LBRACE] = ACTIONS(4812),
    [aux_sym_char_literal_token1] = ACTIONS(4812),
    [anon_sym_SQUOTE] = ACTIONS(4810),
    [anon_sym___DATE__] = ACTIONS(4810),
    [anon_sym___FILE__] = ACTIONS(4810),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4810),
    [anon_sym___FUNCTION__] = ACTIONS(4810),
    [anon_sym___LINE__] = ACTIONS(4810),
    [anon_sym___MODULE__] = ACTIONS(4810),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4810),
    [anon_sym___TIME__] = ACTIONS(4810),
    [anon_sym___TIMESTAMP__] = ACTIONS(4810),
    [anon_sym___VENDOR__] = ACTIONS(4810),
    [anon_sym___VERSION__] = ACTIONS(4810),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4812),
    [sym_float_literal] = ACTIONS(4812),
    [sym__string] = ACTIONS(4812),
  },
  [1562] = {
    [sym_identifier] = ACTIONS(4666),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4668),
    [anon_sym_RBRACE] = ACTIONS(4668),
    [anon_sym_LBRACE] = ACTIONS(4668),
    [anon_sym_DOT] = ACTIONS(4668),
    [anon_sym_AMP] = ACTIONS(4668),
    [anon_sym_DASH] = ACTIONS(4666),
    [anon_sym_DASH_DASH] = ACTIONS(4668),
    [anon_sym_PLUS] = ACTIONS(4666),
    [anon_sym_PLUS_PLUS] = ACTIONS(4668),
    [anon_sym_BANG] = ACTIONS(4668),
    [anon_sym_LPAREN] = ACTIONS(4668),
    [anon_sym_RPAREN] = ACTIONS(4668),
    [anon_sym_LBRACK] = ACTIONS(4668),
    [anon_sym_SEMI] = ACTIONS(4668),
    [anon_sym_DOLLAR] = ACTIONS(4668),
    [anon_sym_STAR] = ACTIONS(4668),
    [anon_sym_TILDE] = ACTIONS(4668),
    [anon_sym_AT] = ACTIONS(4668),
    [sym_bool] = ACTIONS(4666),
    [sym_byte] = ACTIONS(4666),
    [sym_ubyte] = ACTIONS(4666),
    [sym_char] = ACTIONS(4666),
    [sym_short] = ACTIONS(4666),
    [sym_ushort] = ACTIONS(4666),
    [sym_int] = ACTIONS(4666),
    [sym_uint] = ACTIONS(4666),
    [sym_long] = ACTIONS(4666),
    [sym_ulong] = ACTIONS(4666),
    [sym_cent] = ACTIONS(4666),
    [sym_ucent] = ACTIONS(4666),
    [sym_wchar] = ACTIONS(4666),
    [sym_dchar] = ACTIONS(4666),
    [sym_float] = ACTIONS(4666),
    [sym_double] = ACTIONS(4666),
    [sym_real] = ACTIONS(4666),
    [sym_ifloat] = ACTIONS(4666),
    [sym_idouble] = ACTIONS(4666),
    [sym_ireal] = ACTIONS(4666),
    [sym_cfloat] = ACTIONS(4666),
    [sym_cdouble] = ACTIONS(4666),
    [sym_creal] = ACTIONS(4666),
    [sym_size_t] = ACTIONS(4666),
    [sym_ptrdiff_t] = ACTIONS(4666),
    [sym_string] = ACTIONS(4666),
    [sym_cstring] = ACTIONS(4666),
    [sym_dstring] = ACTIONS(4666),
    [sym_wstring] = ACTIONS(4666),
    [sym_noreturn] = ACTIONS(4666),
    [sym_true] = ACTIONS(4666),
    [sym_false] = ACTIONS(4666),
    [sym_null] = ACTIONS(4666),
    [sym_super] = ACTIONS(4666),
    [sym_this] = ACTIONS(4666),
    [sym_abstract] = ACTIONS(4666),
    [sym_alias] = ACTIONS(4666),
    [sym_align] = ACTIONS(4666),
    [sym_asm] = ACTIONS(4666),
    [sym_assert] = ACTIONS(4666),
    [sym_auto] = ACTIONS(4666),
    [sym_break] = ACTIONS(4666),
    [sym_case] = ACTIONS(4666),
    [sym_cast] = ACTIONS(4666),
    [sym_class] = ACTIONS(4666),
    [sym_const] = ACTIONS(4666),
    [sym_continue] = ACTIONS(4666),
    [sym_debug] = ACTIONS(4666),
    [sym_default] = ACTIONS(4666),
    [sym_delegate] = ACTIONS(4666),
    [sym_delete] = ACTIONS(4666),
    [sym_deprecated] = ACTIONS(4666),
    [sym_do] = ACTIONS(4666),
    [sym_else] = ACTIONS(4666),
    [sym_enum] = ACTIONS(4666),
    [sym_export] = ACTIONS(4666),
    [sym_extern] = ACTIONS(4666),
    [sym_final] = ACTIONS(4666),
    [sym_for] = ACTIONS(4666),
    [sym_foreach] = ACTIONS(4666),
    [sym_foreach_reverse] = ACTIONS(4666),
    [sym_function] = ACTIONS(4666),
    [sym_goto] = ACTIONS(4666),
    [sym_if] = ACTIONS(4666),
    [sym_immutable] = ACTIONS(4666),
    [sym_import] = ACTIONS(4666),
    [sym_in] = ACTIONS(4666),
    [sym_inout] = ACTIONS(4666),
    [sym_interface] = ACTIONS(4666),
    [sym_invariant] = ACTIONS(4666),
    [sym_is] = ACTIONS(4666),
    [sym_mixin] = ACTIONS(4666),
    [sym_new] = ACTIONS(4666),
    [sym_nothrow] = ACTIONS(4666),
    [sym_out] = ACTIONS(4666),
    [sym_override] = ACTIONS(4666),
    [sym_package] = ACTIONS(4666),
    [sym_pragma] = ACTIONS(4666),
    [sym_private] = ACTIONS(4666),
    [sym_protected] = ACTIONS(4666),
    [sym_public] = ACTIONS(4666),
    [sym_pure] = ACTIONS(4666),
    [sym_ref] = ACTIONS(4666),
    [sym_return] = ACTIONS(4666),
    [sym_scope] = ACTIONS(4666),
    [sym_shared] = ACTIONS(4666),
    [sym_static] = ACTIONS(4666),
    [sym_struct] = ACTIONS(4666),
    [sym_switch] = ACTIONS(4666),
    [sym_synchronized] = ACTIONS(4666),
    [sym_template] = ACTIONS(4666),
    [sym_throw] = ACTIONS(4666),
    [sym_try] = ACTIONS(4666),
    [sym_typeid] = ACTIONS(4666),
    [sym_typeof] = ACTIONS(4666),
    [sym_union] = ACTIONS(4666),
    [sym_unittest] = ACTIONS(4666),
    [sym_version] = ACTIONS(4666),
    [sym_while] = ACTIONS(4666),
    [sym_with] = ACTIONS(4666),
    [sym_gshared] = ACTIONS(4666),
    [sym_traits] = ACTIONS(4666),
    [sym_vector] = ACTIONS(4666),
    [sym_void] = ACTIONS(4666),
    [anon_sym_BQUOTE] = ACTIONS(4668),
    [anon_sym_r_DQUOTE] = ACTIONS(4668),
    [anon_sym_x_DQUOTE] = ACTIONS(4668),
    [anon_sym_DQUOTE] = ACTIONS(4668),
    [anon_sym_i_BQUOTE] = ACTIONS(4668),
    [anon_sym_i_DQUOTE] = ACTIONS(4668),
    [anon_sym_iq_LBRACE] = ACTIONS(4668),
    [aux_sym_char_literal_token1] = ACTIONS(4668),
    [anon_sym_SQUOTE] = ACTIONS(4666),
    [anon_sym___DATE__] = ACTIONS(4666),
    [anon_sym___FILE__] = ACTIONS(4666),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4666),
    [anon_sym___FUNCTION__] = ACTIONS(4666),
    [anon_sym___LINE__] = ACTIONS(4666),
    [anon_sym___MODULE__] = ACTIONS(4666),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4666),
    [anon_sym___TIME__] = ACTIONS(4666),
    [anon_sym___TIMESTAMP__] = ACTIONS(4666),
    [anon_sym___VENDOR__] = ACTIONS(4666),
    [anon_sym___VERSION__] = ACTIONS(4666),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4668),
    [sym_float_literal] = ACTIONS(4668),
    [sym__string] = ACTIONS(4668),
  },
  [1563] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_RBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [anon_sym_AT] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_abstract] = ACTIONS(4365),
    [sym_alias] = ACTIONS(4365),
    [sym_align] = ACTIONS(4365),
    [sym_asm] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_break] = ACTIONS(4365),
    [sym_case] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_class] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_continue] = ACTIONS(4365),
    [sym_debug] = ACTIONS(4365),
    [sym_default] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_deprecated] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(5090),
    [sym_enum] = ACTIONS(4365),
    [sym_export] = ACTIONS(4365),
    [sym_extern] = ACTIONS(4365),
    [sym_final] = ACTIONS(4365),
    [sym_for] = ACTIONS(4365),
    [sym_foreach] = ACTIONS(4365),
    [sym_foreach_reverse] = ACTIONS(4365),
    [sym_function] = ACTIONS(4365),
    [sym_goto] = ACTIONS(4365),
    [sym_if] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_interface] = ACTIONS(4365),
    [sym_invariant] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_nothrow] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_override] = ACTIONS(4365),
    [sym_package] = ACTIONS(4365),
    [sym_pragma] = ACTIONS(4365),
    [sym_private] = ACTIONS(4365),
    [sym_protected] = ACTIONS(4365),
    [sym_public] = ACTIONS(4365),
    [sym_pure] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_return] = ACTIONS(4365),
    [sym_scope] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_static] = ACTIONS(4365),
    [sym_struct] = ACTIONS(4365),
    [sym_switch] = ACTIONS(4365),
    [sym_synchronized] = ACTIONS(4365),
    [sym_template] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_try] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_union] = ACTIONS(4365),
    [sym_unittest] = ACTIONS(4365),
    [sym_version] = ACTIONS(4365),
    [sym_while] = ACTIONS(4365),
    [sym_with] = ACTIONS(4365),
    [sym_gshared] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [1564] = {
    [sym_identifier] = ACTIONS(4892),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4894),
    [anon_sym_RBRACE] = ACTIONS(4894),
    [anon_sym_LBRACE] = ACTIONS(4894),
    [anon_sym_DOT] = ACTIONS(4894),
    [anon_sym_AMP] = ACTIONS(4894),
    [anon_sym_DASH] = ACTIONS(4892),
    [anon_sym_DASH_DASH] = ACTIONS(4894),
    [anon_sym_PLUS] = ACTIONS(4892),
    [anon_sym_PLUS_PLUS] = ACTIONS(4894),
    [anon_sym_BANG] = ACTIONS(4894),
    [anon_sym_LPAREN] = ACTIONS(4894),
    [anon_sym_RPAREN] = ACTIONS(4894),
    [anon_sym_LBRACK] = ACTIONS(4894),
    [anon_sym_SEMI] = ACTIONS(4894),
    [anon_sym_DOLLAR] = ACTIONS(4894),
    [anon_sym_STAR] = ACTIONS(4894),
    [anon_sym_TILDE] = ACTIONS(4894),
    [anon_sym_AT] = ACTIONS(4894),
    [sym_bool] = ACTIONS(4892),
    [sym_byte] = ACTIONS(4892),
    [sym_ubyte] = ACTIONS(4892),
    [sym_char] = ACTIONS(4892),
    [sym_short] = ACTIONS(4892),
    [sym_ushort] = ACTIONS(4892),
    [sym_int] = ACTIONS(4892),
    [sym_uint] = ACTIONS(4892),
    [sym_long] = ACTIONS(4892),
    [sym_ulong] = ACTIONS(4892),
    [sym_cent] = ACTIONS(4892),
    [sym_ucent] = ACTIONS(4892),
    [sym_wchar] = ACTIONS(4892),
    [sym_dchar] = ACTIONS(4892),
    [sym_float] = ACTIONS(4892),
    [sym_double] = ACTIONS(4892),
    [sym_real] = ACTIONS(4892),
    [sym_ifloat] = ACTIONS(4892),
    [sym_idouble] = ACTIONS(4892),
    [sym_ireal] = ACTIONS(4892),
    [sym_cfloat] = ACTIONS(4892),
    [sym_cdouble] = ACTIONS(4892),
    [sym_creal] = ACTIONS(4892),
    [sym_size_t] = ACTIONS(4892),
    [sym_ptrdiff_t] = ACTIONS(4892),
    [sym_string] = ACTIONS(4892),
    [sym_cstring] = ACTIONS(4892),
    [sym_dstring] = ACTIONS(4892),
    [sym_wstring] = ACTIONS(4892),
    [sym_noreturn] = ACTIONS(4892),
    [sym_true] = ACTIONS(4892),
    [sym_false] = ACTIONS(4892),
    [sym_null] = ACTIONS(4892),
    [sym_super] = ACTIONS(4892),
    [sym_this] = ACTIONS(4892),
    [sym_abstract] = ACTIONS(4892),
    [sym_alias] = ACTIONS(4892),
    [sym_align] = ACTIONS(4892),
    [sym_asm] = ACTIONS(4892),
    [sym_assert] = ACTIONS(4892),
    [sym_auto] = ACTIONS(4892),
    [sym_break] = ACTIONS(4892),
    [sym_case] = ACTIONS(4892),
    [sym_cast] = ACTIONS(4892),
    [sym_class] = ACTIONS(4892),
    [sym_const] = ACTIONS(4892),
    [sym_continue] = ACTIONS(4892),
    [sym_debug] = ACTIONS(4892),
    [sym_default] = ACTIONS(4892),
    [sym_delegate] = ACTIONS(4892),
    [sym_delete] = ACTIONS(4892),
    [sym_deprecated] = ACTIONS(4892),
    [sym_do] = ACTIONS(4892),
    [sym_else] = ACTIONS(4892),
    [sym_enum] = ACTIONS(4892),
    [sym_export] = ACTIONS(4892),
    [sym_extern] = ACTIONS(4892),
    [sym_final] = ACTIONS(4892),
    [sym_for] = ACTIONS(4892),
    [sym_foreach] = ACTIONS(4892),
    [sym_foreach_reverse] = ACTIONS(4892),
    [sym_function] = ACTIONS(4892),
    [sym_goto] = ACTIONS(4892),
    [sym_if] = ACTIONS(4892),
    [sym_immutable] = ACTIONS(4892),
    [sym_import] = ACTIONS(4892),
    [sym_in] = ACTIONS(4892),
    [sym_inout] = ACTIONS(4892),
    [sym_interface] = ACTIONS(4892),
    [sym_invariant] = ACTIONS(4892),
    [sym_is] = ACTIONS(4892),
    [sym_mixin] = ACTIONS(4892),
    [sym_new] = ACTIONS(4892),
    [sym_nothrow] = ACTIONS(4892),
    [sym_out] = ACTIONS(4892),
    [sym_override] = ACTIONS(4892),
    [sym_package] = ACTIONS(4892),
    [sym_pragma] = ACTIONS(4892),
    [sym_private] = ACTIONS(4892),
    [sym_protected] = ACTIONS(4892),
    [sym_public] = ACTIONS(4892),
    [sym_pure] = ACTIONS(4892),
    [sym_ref] = ACTIONS(4892),
    [sym_return] = ACTIONS(4892),
    [sym_scope] = ACTIONS(4892),
    [sym_shared] = ACTIONS(4892),
    [sym_static] = ACTIONS(4892),
    [sym_struct] = ACTIONS(4892),
    [sym_switch] = ACTIONS(4892),
    [sym_synchronized] = ACTIONS(4892),
    [sym_template] = ACTIONS(4892),
    [sym_throw] = ACTIONS(4892),
    [sym_try] = ACTIONS(4892),
    [sym_typeid] = ACTIONS(4892),
    [sym_typeof] = ACTIONS(4892),
    [sym_union] = ACTIONS(4892),
    [sym_unittest] = ACTIONS(4892),
    [sym_version] = ACTIONS(4892),
    [sym_while] = ACTIONS(4892),
    [sym_with] = ACTIONS(4892),
    [sym_gshared] = ACTIONS(4892),
    [sym_traits] = ACTIONS(4892),
    [sym_vector] = ACTIONS(4892),
    [sym_void] = ACTIONS(4892),
    [anon_sym_BQUOTE] = ACTIONS(4894),
    [anon_sym_r_DQUOTE] = ACTIONS(4894),
    [anon_sym_x_DQUOTE] = ACTIONS(4894),
    [anon_sym_DQUOTE] = ACTIONS(4894),
    [anon_sym_i_BQUOTE] = ACTIONS(4894),
    [anon_sym_i_DQUOTE] = ACTIONS(4894),
    [anon_sym_iq_LBRACE] = ACTIONS(4894),
    [aux_sym_char_literal_token1] = ACTIONS(4894),
    [anon_sym_SQUOTE] = ACTIONS(4892),
    [anon_sym___DATE__] = ACTIONS(4892),
    [anon_sym___FILE__] = ACTIONS(4892),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4892),
    [anon_sym___FUNCTION__] = ACTIONS(4892),
    [anon_sym___LINE__] = ACTIONS(4892),
    [anon_sym___MODULE__] = ACTIONS(4892),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4892),
    [anon_sym___TIME__] = ACTIONS(4892),
    [anon_sym___TIMESTAMP__] = ACTIONS(4892),
    [anon_sym___VENDOR__] = ACTIONS(4892),
    [anon_sym___VERSION__] = ACTIONS(4892),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4894),
    [sym_float_literal] = ACTIONS(4894),
    [sym__string] = ACTIONS(4894),
  },
  [1565] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3100),
    [anon_sym_RBRACE] = ACTIONS(3100),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_AMP] = ACTIONS(3100),
    [anon_sym_DASH] = ACTIONS(3098),
    [anon_sym_DASH_DASH] = ACTIONS(3100),
    [anon_sym_PLUS] = ACTIONS(3098),
    [anon_sym_PLUS_PLUS] = ACTIONS(3100),
    [anon_sym_BANG] = ACTIONS(3100),
    [anon_sym_LPAREN] = ACTIONS(3100),
    [anon_sym_RPAREN] = ACTIONS(3100),
    [anon_sym_LBRACK] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_DOLLAR] = ACTIONS(3100),
    [anon_sym_STAR] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3100),
    [anon_sym_AT] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_true] = ACTIONS(3098),
    [sym_false] = ACTIONS(3098),
    [sym_null] = ACTIONS(3098),
    [sym_super] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_abstract] = ACTIONS(3098),
    [sym_alias] = ACTIONS(3098),
    [sym_align] = ACTIONS(3098),
    [sym_asm] = ACTIONS(3098),
    [sym_assert] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_break] = ACTIONS(3098),
    [sym_case] = ACTIONS(3098),
    [sym_cast] = ACTIONS(3098),
    [sym_class] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_continue] = ACTIONS(3098),
    [sym_debug] = ACTIONS(3098),
    [sym_default] = ACTIONS(3098),
    [sym_delegate] = ACTIONS(3098),
    [sym_delete] = ACTIONS(3098),
    [sym_deprecated] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_enum] = ACTIONS(3098),
    [sym_export] = ACTIONS(3098),
    [sym_extern] = ACTIONS(3098),
    [sym_final] = ACTIONS(3098),
    [sym_for] = ACTIONS(3098),
    [sym_foreach] = ACTIONS(3098),
    [sym_foreach_reverse] = ACTIONS(3098),
    [sym_function] = ACTIONS(3098),
    [sym_goto] = ACTIONS(3098),
    [sym_if] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_interface] = ACTIONS(3098),
    [sym_invariant] = ACTIONS(3098),
    [sym_is] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_new] = ACTIONS(3098),
    [sym_nothrow] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_override] = ACTIONS(3098),
    [sym_package] = ACTIONS(3098),
    [sym_pragma] = ACTIONS(3098),
    [sym_private] = ACTIONS(3098),
    [sym_protected] = ACTIONS(3098),
    [sym_public] = ACTIONS(3098),
    [sym_pure] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_return] = ACTIONS(3098),
    [sym_scope] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_static] = ACTIONS(3098),
    [sym_struct] = ACTIONS(3098),
    [sym_switch] = ACTIONS(3098),
    [sym_synchronized] = ACTIONS(3098),
    [sym_template] = ACTIONS(3098),
    [sym_throw] = ACTIONS(3098),
    [sym_try] = ACTIONS(3098),
    [sym_typeid] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_union] = ACTIONS(3098),
    [sym_unittest] = ACTIONS(3098),
    [sym_version] = ACTIONS(3098),
    [sym_while] = ACTIONS(3098),
    [sym_with] = ACTIONS(3098),
    [sym_gshared] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [anon_sym_BQUOTE] = ACTIONS(3100),
    [anon_sym_r_DQUOTE] = ACTIONS(3100),
    [anon_sym_x_DQUOTE] = ACTIONS(3100),
    [anon_sym_DQUOTE] = ACTIONS(3100),
    [anon_sym_i_BQUOTE] = ACTIONS(3100),
    [anon_sym_i_DQUOTE] = ACTIONS(3100),
    [anon_sym_iq_LBRACE] = ACTIONS(3100),
    [aux_sym_char_literal_token1] = ACTIONS(3100),
    [anon_sym_SQUOTE] = ACTIONS(3098),
    [anon_sym___DATE__] = ACTIONS(3098),
    [anon_sym___FILE__] = ACTIONS(3098),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3098),
    [anon_sym___FUNCTION__] = ACTIONS(3098),
    [anon_sym___LINE__] = ACTIONS(3098),
    [anon_sym___MODULE__] = ACTIONS(3098),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3098),
    [anon_sym___TIME__] = ACTIONS(3098),
    [anon_sym___TIMESTAMP__] = ACTIONS(3098),
    [anon_sym___VENDOR__] = ACTIONS(3098),
    [anon_sym___VERSION__] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3100),
    [sym_float_literal] = ACTIONS(3100),
    [sym__string] = ACTIONS(3100),
  },
  [1566] = {
    [sym_identifier] = ACTIONS(4446),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4448),
    [anon_sym_RBRACE] = ACTIONS(4448),
    [anon_sym_LBRACE] = ACTIONS(4448),
    [anon_sym_DOT] = ACTIONS(4448),
    [anon_sym_AMP] = ACTIONS(4448),
    [anon_sym_DASH] = ACTIONS(4446),
    [anon_sym_DASH_DASH] = ACTIONS(4448),
    [anon_sym_PLUS] = ACTIONS(4446),
    [anon_sym_PLUS_PLUS] = ACTIONS(4448),
    [anon_sym_BANG] = ACTIONS(4448),
    [anon_sym_LPAREN] = ACTIONS(4448),
    [anon_sym_RPAREN] = ACTIONS(4448),
    [anon_sym_LBRACK] = ACTIONS(4448),
    [anon_sym_SEMI] = ACTIONS(4448),
    [anon_sym_DOLLAR] = ACTIONS(4448),
    [anon_sym_STAR] = ACTIONS(4448),
    [anon_sym_TILDE] = ACTIONS(4448),
    [anon_sym_AT] = ACTIONS(4448),
    [sym_bool] = ACTIONS(4446),
    [sym_byte] = ACTIONS(4446),
    [sym_ubyte] = ACTIONS(4446),
    [sym_char] = ACTIONS(4446),
    [sym_short] = ACTIONS(4446),
    [sym_ushort] = ACTIONS(4446),
    [sym_int] = ACTIONS(4446),
    [sym_uint] = ACTIONS(4446),
    [sym_long] = ACTIONS(4446),
    [sym_ulong] = ACTIONS(4446),
    [sym_cent] = ACTIONS(4446),
    [sym_ucent] = ACTIONS(4446),
    [sym_wchar] = ACTIONS(4446),
    [sym_dchar] = ACTIONS(4446),
    [sym_float] = ACTIONS(4446),
    [sym_double] = ACTIONS(4446),
    [sym_real] = ACTIONS(4446),
    [sym_ifloat] = ACTIONS(4446),
    [sym_idouble] = ACTIONS(4446),
    [sym_ireal] = ACTIONS(4446),
    [sym_cfloat] = ACTIONS(4446),
    [sym_cdouble] = ACTIONS(4446),
    [sym_creal] = ACTIONS(4446),
    [sym_size_t] = ACTIONS(4446),
    [sym_ptrdiff_t] = ACTIONS(4446),
    [sym_string] = ACTIONS(4446),
    [sym_cstring] = ACTIONS(4446),
    [sym_dstring] = ACTIONS(4446),
    [sym_wstring] = ACTIONS(4446),
    [sym_noreturn] = ACTIONS(4446),
    [sym_true] = ACTIONS(4446),
    [sym_false] = ACTIONS(4446),
    [sym_null] = ACTIONS(4446),
    [sym_super] = ACTIONS(4446),
    [sym_this] = ACTIONS(4446),
    [sym_abstract] = ACTIONS(4446),
    [sym_alias] = ACTIONS(4446),
    [sym_align] = ACTIONS(4446),
    [sym_asm] = ACTIONS(4446),
    [sym_assert] = ACTIONS(4446),
    [sym_auto] = ACTIONS(4446),
    [sym_break] = ACTIONS(4446),
    [sym_case] = ACTIONS(4446),
    [sym_cast] = ACTIONS(4446),
    [sym_class] = ACTIONS(4446),
    [sym_const] = ACTIONS(4446),
    [sym_continue] = ACTIONS(4446),
    [sym_debug] = ACTIONS(4446),
    [sym_default] = ACTIONS(4446),
    [sym_delegate] = ACTIONS(4446),
    [sym_delete] = ACTIONS(4446),
    [sym_deprecated] = ACTIONS(4446),
    [sym_do] = ACTIONS(4446),
    [sym_else] = ACTIONS(5094),
    [sym_enum] = ACTIONS(4446),
    [sym_export] = ACTIONS(4446),
    [sym_extern] = ACTIONS(4446),
    [sym_final] = ACTIONS(4446),
    [sym_for] = ACTIONS(4446),
    [sym_foreach] = ACTIONS(4446),
    [sym_foreach_reverse] = ACTIONS(4446),
    [sym_function] = ACTIONS(4446),
    [sym_goto] = ACTIONS(4446),
    [sym_if] = ACTIONS(4446),
    [sym_immutable] = ACTIONS(4446),
    [sym_import] = ACTIONS(4446),
    [sym_in] = ACTIONS(4446),
    [sym_inout] = ACTIONS(4446),
    [sym_interface] = ACTIONS(4446),
    [sym_invariant] = ACTIONS(4446),
    [sym_is] = ACTIONS(4446),
    [sym_mixin] = ACTIONS(4446),
    [sym_new] = ACTIONS(4446),
    [sym_nothrow] = ACTIONS(4446),
    [sym_out] = ACTIONS(4446),
    [sym_override] = ACTIONS(4446),
    [sym_package] = ACTIONS(4446),
    [sym_pragma] = ACTIONS(4446),
    [sym_private] = ACTIONS(4446),
    [sym_protected] = ACTIONS(4446),
    [sym_public] = ACTIONS(4446),
    [sym_pure] = ACTIONS(4446),
    [sym_ref] = ACTIONS(4446),
    [sym_return] = ACTIONS(4446),
    [sym_scope] = ACTIONS(4446),
    [sym_shared] = ACTIONS(4446),
    [sym_static] = ACTIONS(4446),
    [sym_struct] = ACTIONS(4446),
    [sym_switch] = ACTIONS(4446),
    [sym_synchronized] = ACTIONS(4446),
    [sym_template] = ACTIONS(4446),
    [sym_throw] = ACTIONS(4446),
    [sym_try] = ACTIONS(4446),
    [sym_typeid] = ACTIONS(4446),
    [sym_typeof] = ACTIONS(4446),
    [sym_union] = ACTIONS(4446),
    [sym_unittest] = ACTIONS(4446),
    [sym_version] = ACTIONS(4446),
    [sym_while] = ACTIONS(4446),
    [sym_with] = ACTIONS(4446),
    [sym_gshared] = ACTIONS(4446),
    [sym_traits] = ACTIONS(4446),
    [sym_vector] = ACTIONS(4446),
    [sym_void] = ACTIONS(4446),
    [anon_sym_BQUOTE] = ACTIONS(4448),
    [anon_sym_r_DQUOTE] = ACTIONS(4448),
    [anon_sym_x_DQUOTE] = ACTIONS(4448),
    [anon_sym_DQUOTE] = ACTIONS(4448),
    [anon_sym_i_BQUOTE] = ACTIONS(4448),
    [anon_sym_i_DQUOTE] = ACTIONS(4448),
    [anon_sym_iq_LBRACE] = ACTIONS(4448),
    [aux_sym_char_literal_token1] = ACTIONS(4448),
    [anon_sym_SQUOTE] = ACTIONS(4446),
    [anon_sym___DATE__] = ACTIONS(4446),
    [anon_sym___FILE__] = ACTIONS(4446),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4446),
    [anon_sym___FUNCTION__] = ACTIONS(4446),
    [anon_sym___LINE__] = ACTIONS(4446),
    [anon_sym___MODULE__] = ACTIONS(4446),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4446),
    [anon_sym___TIME__] = ACTIONS(4446),
    [anon_sym___TIMESTAMP__] = ACTIONS(4446),
    [anon_sym___VENDOR__] = ACTIONS(4446),
    [anon_sym___VERSION__] = ACTIONS(4446),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4448),
    [sym_float_literal] = ACTIONS(4448),
    [sym__string] = ACTIONS(4448),
  },
  [1567] = {
    [sym_identifier] = ACTIONS(4528),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4531),
    [anon_sym_RBRACE] = ACTIONS(4531),
    [anon_sym_LBRACE] = ACTIONS(4531),
    [anon_sym_DOT] = ACTIONS(4531),
    [anon_sym_AMP] = ACTIONS(4531),
    [anon_sym_DASH] = ACTIONS(4528),
    [anon_sym_DASH_DASH] = ACTIONS(4531),
    [anon_sym_PLUS] = ACTIONS(4528),
    [anon_sym_PLUS_PLUS] = ACTIONS(4531),
    [anon_sym_BANG] = ACTIONS(4531),
    [anon_sym_LPAREN] = ACTIONS(4531),
    [anon_sym_RPAREN] = ACTIONS(4531),
    [anon_sym_LBRACK] = ACTIONS(4531),
    [anon_sym_SEMI] = ACTIONS(4531),
    [anon_sym_DOLLAR] = ACTIONS(4531),
    [anon_sym_STAR] = ACTIONS(4531),
    [anon_sym_TILDE] = ACTIONS(4531),
    [anon_sym_AT] = ACTIONS(4531),
    [sym_bool] = ACTIONS(4528),
    [sym_byte] = ACTIONS(4528),
    [sym_ubyte] = ACTIONS(4528),
    [sym_char] = ACTIONS(4528),
    [sym_short] = ACTIONS(4528),
    [sym_ushort] = ACTIONS(4528),
    [sym_int] = ACTIONS(4528),
    [sym_uint] = ACTIONS(4528),
    [sym_long] = ACTIONS(4528),
    [sym_ulong] = ACTIONS(4528),
    [sym_cent] = ACTIONS(4528),
    [sym_ucent] = ACTIONS(4528),
    [sym_wchar] = ACTIONS(4528),
    [sym_dchar] = ACTIONS(4528),
    [sym_float] = ACTIONS(4528),
    [sym_double] = ACTIONS(4528),
    [sym_real] = ACTIONS(4528),
    [sym_ifloat] = ACTIONS(4528),
    [sym_idouble] = ACTIONS(4528),
    [sym_ireal] = ACTIONS(4528),
    [sym_cfloat] = ACTIONS(4528),
    [sym_cdouble] = ACTIONS(4528),
    [sym_creal] = ACTIONS(4528),
    [sym_size_t] = ACTIONS(4528),
    [sym_ptrdiff_t] = ACTIONS(4528),
    [sym_string] = ACTIONS(4528),
    [sym_cstring] = ACTIONS(4528),
    [sym_dstring] = ACTIONS(4528),
    [sym_wstring] = ACTIONS(4528),
    [sym_noreturn] = ACTIONS(4528),
    [sym_true] = ACTIONS(4528),
    [sym_false] = ACTIONS(4528),
    [sym_null] = ACTIONS(4528),
    [sym_super] = ACTIONS(4528),
    [sym_this] = ACTIONS(4528),
    [sym_abstract] = ACTIONS(4528),
    [sym_alias] = ACTIONS(4528),
    [sym_align] = ACTIONS(4528),
    [sym_asm] = ACTIONS(4528),
    [sym_assert] = ACTIONS(4528),
    [sym_auto] = ACTIONS(4528),
    [sym_break] = ACTIONS(4528),
    [sym_case] = ACTIONS(4528),
    [sym_cast] = ACTIONS(4528),
    [sym_class] = ACTIONS(4528),
    [sym_const] = ACTIONS(4528),
    [sym_continue] = ACTIONS(4528),
    [sym_debug] = ACTIONS(4528),
    [sym_default] = ACTIONS(4528),
    [sym_delegate] = ACTIONS(4528),
    [sym_delete] = ACTIONS(4528),
    [sym_deprecated] = ACTIONS(4528),
    [sym_do] = ACTIONS(4528),
    [sym_else] = ACTIONS(4528),
    [sym_enum] = ACTIONS(4528),
    [sym_export] = ACTIONS(4528),
    [sym_extern] = ACTIONS(4528),
    [sym_final] = ACTIONS(4528),
    [sym_for] = ACTIONS(4528),
    [sym_foreach] = ACTIONS(4528),
    [sym_foreach_reverse] = ACTIONS(4528),
    [sym_function] = ACTIONS(4528),
    [sym_goto] = ACTIONS(4528),
    [sym_if] = ACTIONS(4528),
    [sym_immutable] = ACTIONS(4528),
    [sym_import] = ACTIONS(4528),
    [sym_in] = ACTIONS(4528),
    [sym_inout] = ACTIONS(4528),
    [sym_interface] = ACTIONS(4528),
    [sym_invariant] = ACTIONS(4528),
    [sym_is] = ACTIONS(4528),
    [sym_mixin] = ACTIONS(4528),
    [sym_new] = ACTIONS(4528),
    [sym_nothrow] = ACTIONS(4528),
    [sym_out] = ACTIONS(4528),
    [sym_override] = ACTIONS(4528),
    [sym_package] = ACTIONS(4528),
    [sym_pragma] = ACTIONS(4528),
    [sym_private] = ACTIONS(4528),
    [sym_protected] = ACTIONS(4528),
    [sym_public] = ACTIONS(4528),
    [sym_pure] = ACTIONS(4528),
    [sym_ref] = ACTIONS(4528),
    [sym_return] = ACTIONS(4528),
    [sym_scope] = ACTIONS(4528),
    [sym_shared] = ACTIONS(4528),
    [sym_static] = ACTIONS(4528),
    [sym_struct] = ACTIONS(4528),
    [sym_switch] = ACTIONS(4528),
    [sym_synchronized] = ACTIONS(4528),
    [sym_template] = ACTIONS(4528),
    [sym_throw] = ACTIONS(4528),
    [sym_try] = ACTIONS(4528),
    [sym_typeid] = ACTIONS(4528),
    [sym_typeof] = ACTIONS(4528),
    [sym_union] = ACTIONS(4528),
    [sym_unittest] = ACTIONS(4528),
    [sym_version] = ACTIONS(4528),
    [sym_while] = ACTIONS(4528),
    [sym_with] = ACTIONS(4528),
    [sym_gshared] = ACTIONS(4528),
    [sym_traits] = ACTIONS(4528),
    [sym_vector] = ACTIONS(4528),
    [sym_void] = ACTIONS(4528),
    [anon_sym_BQUOTE] = ACTIONS(4531),
    [anon_sym_r_DQUOTE] = ACTIONS(4531),
    [anon_sym_x_DQUOTE] = ACTIONS(4531),
    [anon_sym_DQUOTE] = ACTIONS(4531),
    [anon_sym_i_BQUOTE] = ACTIONS(4531),
    [anon_sym_i_DQUOTE] = ACTIONS(4531),
    [anon_sym_iq_LBRACE] = ACTIONS(4531),
    [aux_sym_char_literal_token1] = ACTIONS(4531),
    [anon_sym_SQUOTE] = ACTIONS(4528),
    [anon_sym___DATE__] = ACTIONS(4528),
    [anon_sym___FILE__] = ACTIONS(4528),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4528),
    [anon_sym___FUNCTION__] = ACTIONS(4528),
    [anon_sym___LINE__] = ACTIONS(4528),
    [anon_sym___MODULE__] = ACTIONS(4528),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4528),
    [anon_sym___TIME__] = ACTIONS(4528),
    [anon_sym___TIMESTAMP__] = ACTIONS(4528),
    [anon_sym___VENDOR__] = ACTIONS(4528),
    [anon_sym___VERSION__] = ACTIONS(4528),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4531),
    [sym_float_literal] = ACTIONS(4531),
    [sym__string] = ACTIONS(4531),
  },
  [1568] = {
    [sym_identifier] = ACTIONS(4758),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4760),
    [anon_sym_RBRACE] = ACTIONS(4760),
    [anon_sym_LBRACE] = ACTIONS(4760),
    [anon_sym_DOT] = ACTIONS(4760),
    [anon_sym_AMP] = ACTIONS(4760),
    [anon_sym_DASH] = ACTIONS(4758),
    [anon_sym_DASH_DASH] = ACTIONS(4760),
    [anon_sym_PLUS] = ACTIONS(4758),
    [anon_sym_PLUS_PLUS] = ACTIONS(4760),
    [anon_sym_BANG] = ACTIONS(4760),
    [anon_sym_LPAREN] = ACTIONS(4760),
    [anon_sym_RPAREN] = ACTIONS(4760),
    [anon_sym_LBRACK] = ACTIONS(4760),
    [anon_sym_SEMI] = ACTIONS(4760),
    [anon_sym_DOLLAR] = ACTIONS(4760),
    [anon_sym_STAR] = ACTIONS(4760),
    [anon_sym_TILDE] = ACTIONS(4760),
    [anon_sym_AT] = ACTIONS(4760),
    [sym_bool] = ACTIONS(4758),
    [sym_byte] = ACTIONS(4758),
    [sym_ubyte] = ACTIONS(4758),
    [sym_char] = ACTIONS(4758),
    [sym_short] = ACTIONS(4758),
    [sym_ushort] = ACTIONS(4758),
    [sym_int] = ACTIONS(4758),
    [sym_uint] = ACTIONS(4758),
    [sym_long] = ACTIONS(4758),
    [sym_ulong] = ACTIONS(4758),
    [sym_cent] = ACTIONS(4758),
    [sym_ucent] = ACTIONS(4758),
    [sym_wchar] = ACTIONS(4758),
    [sym_dchar] = ACTIONS(4758),
    [sym_float] = ACTIONS(4758),
    [sym_double] = ACTIONS(4758),
    [sym_real] = ACTIONS(4758),
    [sym_ifloat] = ACTIONS(4758),
    [sym_idouble] = ACTIONS(4758),
    [sym_ireal] = ACTIONS(4758),
    [sym_cfloat] = ACTIONS(4758),
    [sym_cdouble] = ACTIONS(4758),
    [sym_creal] = ACTIONS(4758),
    [sym_size_t] = ACTIONS(4758),
    [sym_ptrdiff_t] = ACTIONS(4758),
    [sym_string] = ACTIONS(4758),
    [sym_cstring] = ACTIONS(4758),
    [sym_dstring] = ACTIONS(4758),
    [sym_wstring] = ACTIONS(4758),
    [sym_noreturn] = ACTIONS(4758),
    [sym_true] = ACTIONS(4758),
    [sym_false] = ACTIONS(4758),
    [sym_null] = ACTIONS(4758),
    [sym_super] = ACTIONS(4758),
    [sym_this] = ACTIONS(4758),
    [sym_abstract] = ACTIONS(4758),
    [sym_alias] = ACTIONS(4758),
    [sym_align] = ACTIONS(4758),
    [sym_asm] = ACTIONS(4758),
    [sym_assert] = ACTIONS(4758),
    [sym_auto] = ACTIONS(4758),
    [sym_break] = ACTIONS(4758),
    [sym_case] = ACTIONS(4758),
    [sym_cast] = ACTIONS(4758),
    [sym_class] = ACTIONS(4758),
    [sym_const] = ACTIONS(4758),
    [sym_continue] = ACTIONS(4758),
    [sym_debug] = ACTIONS(4758),
    [sym_default] = ACTIONS(4758),
    [sym_delegate] = ACTIONS(4758),
    [sym_delete] = ACTIONS(4758),
    [sym_deprecated] = ACTIONS(4758),
    [sym_do] = ACTIONS(4758),
    [sym_else] = ACTIONS(4758),
    [sym_enum] = ACTIONS(4758),
    [sym_export] = ACTIONS(4758),
    [sym_extern] = ACTIONS(4758),
    [sym_final] = ACTIONS(4758),
    [sym_for] = ACTIONS(4758),
    [sym_foreach] = ACTIONS(4758),
    [sym_foreach_reverse] = ACTIONS(4758),
    [sym_function] = ACTIONS(4758),
    [sym_goto] = ACTIONS(4758),
    [sym_if] = ACTIONS(4758),
    [sym_immutable] = ACTIONS(4758),
    [sym_import] = ACTIONS(4758),
    [sym_in] = ACTIONS(4758),
    [sym_inout] = ACTIONS(4758),
    [sym_interface] = ACTIONS(4758),
    [sym_invariant] = ACTIONS(4758),
    [sym_is] = ACTIONS(4758),
    [sym_mixin] = ACTIONS(4758),
    [sym_new] = ACTIONS(4758),
    [sym_nothrow] = ACTIONS(4758),
    [sym_out] = ACTIONS(4758),
    [sym_override] = ACTIONS(4758),
    [sym_package] = ACTIONS(4758),
    [sym_pragma] = ACTIONS(4758),
    [sym_private] = ACTIONS(4758),
    [sym_protected] = ACTIONS(4758),
    [sym_public] = ACTIONS(4758),
    [sym_pure] = ACTIONS(4758),
    [sym_ref] = ACTIONS(4758),
    [sym_return] = ACTIONS(4758),
    [sym_scope] = ACTIONS(4758),
    [sym_shared] = ACTIONS(4758),
    [sym_static] = ACTIONS(4758),
    [sym_struct] = ACTIONS(4758),
    [sym_switch] = ACTIONS(4758),
    [sym_synchronized] = ACTIONS(4758),
    [sym_template] = ACTIONS(4758),
    [sym_throw] = ACTIONS(4758),
    [sym_try] = ACTIONS(4758),
    [sym_typeid] = ACTIONS(4758),
    [sym_typeof] = ACTIONS(4758),
    [sym_union] = ACTIONS(4758),
    [sym_unittest] = ACTIONS(4758),
    [sym_version] = ACTIONS(4758),
    [sym_while] = ACTIONS(4758),
    [sym_with] = ACTIONS(4758),
    [sym_gshared] = ACTIONS(4758),
    [sym_traits] = ACTIONS(4758),
    [sym_vector] = ACTIONS(4758),
    [sym_void] = ACTIONS(4758),
    [anon_sym_BQUOTE] = ACTIONS(4760),
    [anon_sym_r_DQUOTE] = ACTIONS(4760),
    [anon_sym_x_DQUOTE] = ACTIONS(4760),
    [anon_sym_DQUOTE] = ACTIONS(4760),
    [anon_sym_i_BQUOTE] = ACTIONS(4760),
    [anon_sym_i_DQUOTE] = ACTIONS(4760),
    [anon_sym_iq_LBRACE] = ACTIONS(4760),
    [aux_sym_char_literal_token1] = ACTIONS(4760),
    [anon_sym_SQUOTE] = ACTIONS(4758),
    [anon_sym___DATE__] = ACTIONS(4758),
    [anon_sym___FILE__] = ACTIONS(4758),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4758),
    [anon_sym___FUNCTION__] = ACTIONS(4758),
    [anon_sym___LINE__] = ACTIONS(4758),
    [anon_sym___MODULE__] = ACTIONS(4758),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4758),
    [anon_sym___TIME__] = ACTIONS(4758),
    [anon_sym___TIMESTAMP__] = ACTIONS(4758),
    [anon_sym___VENDOR__] = ACTIONS(4758),
    [anon_sym___VERSION__] = ACTIONS(4758),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4760),
    [sym_float_literal] = ACTIONS(4760),
    [sym__string] = ACTIONS(4760),
  },
  [1569] = {
    [sym_identifier] = ACTIONS(4646),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4648),
    [anon_sym_RBRACE] = ACTIONS(4648),
    [anon_sym_LBRACE] = ACTIONS(4648),
    [anon_sym_DOT] = ACTIONS(4648),
    [anon_sym_AMP] = ACTIONS(4648),
    [anon_sym_DASH] = ACTIONS(4646),
    [anon_sym_DASH_DASH] = ACTIONS(4648),
    [anon_sym_PLUS] = ACTIONS(4646),
    [anon_sym_PLUS_PLUS] = ACTIONS(4648),
    [anon_sym_BANG] = ACTIONS(4648),
    [anon_sym_LPAREN] = ACTIONS(4648),
    [anon_sym_RPAREN] = ACTIONS(4648),
    [anon_sym_LBRACK] = ACTIONS(4648),
    [anon_sym_SEMI] = ACTIONS(4648),
    [anon_sym_DOLLAR] = ACTIONS(4648),
    [anon_sym_STAR] = ACTIONS(4648),
    [anon_sym_TILDE] = ACTIONS(4648),
    [anon_sym_AT] = ACTIONS(4648),
    [sym_bool] = ACTIONS(4646),
    [sym_byte] = ACTIONS(4646),
    [sym_ubyte] = ACTIONS(4646),
    [sym_char] = ACTIONS(4646),
    [sym_short] = ACTIONS(4646),
    [sym_ushort] = ACTIONS(4646),
    [sym_int] = ACTIONS(4646),
    [sym_uint] = ACTIONS(4646),
    [sym_long] = ACTIONS(4646),
    [sym_ulong] = ACTIONS(4646),
    [sym_cent] = ACTIONS(4646),
    [sym_ucent] = ACTIONS(4646),
    [sym_wchar] = ACTIONS(4646),
    [sym_dchar] = ACTIONS(4646),
    [sym_float] = ACTIONS(4646),
    [sym_double] = ACTIONS(4646),
    [sym_real] = ACTIONS(4646),
    [sym_ifloat] = ACTIONS(4646),
    [sym_idouble] = ACTIONS(4646),
    [sym_ireal] = ACTIONS(4646),
    [sym_cfloat] = ACTIONS(4646),
    [sym_cdouble] = ACTIONS(4646),
    [sym_creal] = ACTIONS(4646),
    [sym_size_t] = ACTIONS(4646),
    [sym_ptrdiff_t] = ACTIONS(4646),
    [sym_string] = ACTIONS(4646),
    [sym_cstring] = ACTIONS(4646),
    [sym_dstring] = ACTIONS(4646),
    [sym_wstring] = ACTIONS(4646),
    [sym_noreturn] = ACTIONS(4646),
    [sym_true] = ACTIONS(4646),
    [sym_false] = ACTIONS(4646),
    [sym_null] = ACTIONS(4646),
    [sym_super] = ACTIONS(4646),
    [sym_this] = ACTIONS(4646),
    [sym_abstract] = ACTIONS(4646),
    [sym_alias] = ACTIONS(4646),
    [sym_align] = ACTIONS(4646),
    [sym_asm] = ACTIONS(4646),
    [sym_assert] = ACTIONS(4646),
    [sym_auto] = ACTIONS(4646),
    [sym_break] = ACTIONS(4646),
    [sym_case] = ACTIONS(4646),
    [sym_cast] = ACTIONS(4646),
    [sym_class] = ACTIONS(4646),
    [sym_const] = ACTIONS(4646),
    [sym_continue] = ACTIONS(4646),
    [sym_debug] = ACTIONS(4646),
    [sym_default] = ACTIONS(4646),
    [sym_delegate] = ACTIONS(4646),
    [sym_delete] = ACTIONS(4646),
    [sym_deprecated] = ACTIONS(4646),
    [sym_do] = ACTIONS(4646),
    [sym_else] = ACTIONS(4646),
    [sym_enum] = ACTIONS(4646),
    [sym_export] = ACTIONS(4646),
    [sym_extern] = ACTIONS(4646),
    [sym_final] = ACTIONS(4646),
    [sym_for] = ACTIONS(4646),
    [sym_foreach] = ACTIONS(4646),
    [sym_foreach_reverse] = ACTIONS(4646),
    [sym_function] = ACTIONS(4646),
    [sym_goto] = ACTIONS(4646),
    [sym_if] = ACTIONS(4646),
    [sym_immutable] = ACTIONS(4646),
    [sym_import] = ACTIONS(4646),
    [sym_in] = ACTIONS(4646),
    [sym_inout] = ACTIONS(4646),
    [sym_interface] = ACTIONS(4646),
    [sym_invariant] = ACTIONS(4646),
    [sym_is] = ACTIONS(4646),
    [sym_mixin] = ACTIONS(4646),
    [sym_new] = ACTIONS(4646),
    [sym_nothrow] = ACTIONS(4646),
    [sym_out] = ACTIONS(4646),
    [sym_override] = ACTIONS(4646),
    [sym_package] = ACTIONS(4646),
    [sym_pragma] = ACTIONS(4646),
    [sym_private] = ACTIONS(4646),
    [sym_protected] = ACTIONS(4646),
    [sym_public] = ACTIONS(4646),
    [sym_pure] = ACTIONS(4646),
    [sym_ref] = ACTIONS(4646),
    [sym_return] = ACTIONS(4646),
    [sym_scope] = ACTIONS(4646),
    [sym_shared] = ACTIONS(4646),
    [sym_static] = ACTIONS(4646),
    [sym_struct] = ACTIONS(4646),
    [sym_switch] = ACTIONS(4646),
    [sym_synchronized] = ACTIONS(4646),
    [sym_template] = ACTIONS(4646),
    [sym_throw] = ACTIONS(4646),
    [sym_try] = ACTIONS(4646),
    [sym_typeid] = ACTIONS(4646),
    [sym_typeof] = ACTIONS(4646),
    [sym_union] = ACTIONS(4646),
    [sym_unittest] = ACTIONS(4646),
    [sym_version] = ACTIONS(4646),
    [sym_while] = ACTIONS(4646),
    [sym_with] = ACTIONS(4646),
    [sym_gshared] = ACTIONS(4646),
    [sym_traits] = ACTIONS(4646),
    [sym_vector] = ACTIONS(4646),
    [sym_void] = ACTIONS(4646),
    [anon_sym_BQUOTE] = ACTIONS(4648),
    [anon_sym_r_DQUOTE] = ACTIONS(4648),
    [anon_sym_x_DQUOTE] = ACTIONS(4648),
    [anon_sym_DQUOTE] = ACTIONS(4648),
    [anon_sym_i_BQUOTE] = ACTIONS(4648),
    [anon_sym_i_DQUOTE] = ACTIONS(4648),
    [anon_sym_iq_LBRACE] = ACTIONS(4648),
    [aux_sym_char_literal_token1] = ACTIONS(4648),
    [anon_sym_SQUOTE] = ACTIONS(4646),
    [anon_sym___DATE__] = ACTIONS(4646),
    [anon_sym___FILE__] = ACTIONS(4646),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4646),
    [anon_sym___FUNCTION__] = ACTIONS(4646),
    [anon_sym___LINE__] = ACTIONS(4646),
    [anon_sym___MODULE__] = ACTIONS(4646),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4646),
    [anon_sym___TIME__] = ACTIONS(4646),
    [anon_sym___TIMESTAMP__] = ACTIONS(4646),
    [anon_sym___VENDOR__] = ACTIONS(4646),
    [anon_sym___VERSION__] = ACTIONS(4646),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4648),
    [sym_float_literal] = ACTIONS(4648),
    [sym__string] = ACTIONS(4648),
  },
  [1570] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_RBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [anon_sym_AT] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_abstract] = ACTIONS(4640),
    [sym_alias] = ACTIONS(4640),
    [sym_align] = ACTIONS(4640),
    [sym_asm] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_break] = ACTIONS(4640),
    [sym_case] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_class] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_continue] = ACTIONS(4640),
    [sym_debug] = ACTIONS(4640),
    [sym_default] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_deprecated] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(5096),
    [sym_enum] = ACTIONS(4640),
    [sym_export] = ACTIONS(4640),
    [sym_extern] = ACTIONS(4640),
    [sym_final] = ACTIONS(4640),
    [sym_for] = ACTIONS(4640),
    [sym_foreach] = ACTIONS(4640),
    [sym_foreach_reverse] = ACTIONS(4640),
    [sym_function] = ACTIONS(4640),
    [sym_goto] = ACTIONS(4640),
    [sym_if] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_interface] = ACTIONS(4640),
    [sym_invariant] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_nothrow] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_override] = ACTIONS(4640),
    [sym_package] = ACTIONS(4640),
    [sym_pragma] = ACTIONS(4640),
    [sym_private] = ACTIONS(4640),
    [sym_protected] = ACTIONS(4640),
    [sym_public] = ACTIONS(4640),
    [sym_pure] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_return] = ACTIONS(4640),
    [sym_scope] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_static] = ACTIONS(4640),
    [sym_struct] = ACTIONS(4640),
    [sym_switch] = ACTIONS(4640),
    [sym_synchronized] = ACTIONS(4640),
    [sym_template] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_try] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_union] = ACTIONS(4640),
    [sym_unittest] = ACTIONS(4640),
    [sym_version] = ACTIONS(4640),
    [sym_while] = ACTIONS(4640),
    [sym_with] = ACTIONS(4640),
    [sym_gshared] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [1571] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(5098),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [1572] = {
    [sym_identifier] = ACTIONS(4426),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4428),
    [anon_sym_RBRACE] = ACTIONS(4428),
    [anon_sym_LBRACE] = ACTIONS(4428),
    [anon_sym_DOT] = ACTIONS(4428),
    [anon_sym_AMP] = ACTIONS(4428),
    [anon_sym_DASH] = ACTIONS(4426),
    [anon_sym_DASH_DASH] = ACTIONS(4428),
    [anon_sym_PLUS] = ACTIONS(4426),
    [anon_sym_PLUS_PLUS] = ACTIONS(4428),
    [anon_sym_BANG] = ACTIONS(4428),
    [anon_sym_LPAREN] = ACTIONS(4428),
    [anon_sym_RPAREN] = ACTIONS(4428),
    [anon_sym_LBRACK] = ACTIONS(4428),
    [anon_sym_SEMI] = ACTIONS(4428),
    [anon_sym_DOLLAR] = ACTIONS(4428),
    [anon_sym_STAR] = ACTIONS(4428),
    [anon_sym_TILDE] = ACTIONS(4428),
    [anon_sym_AT] = ACTIONS(4428),
    [sym_bool] = ACTIONS(4426),
    [sym_byte] = ACTIONS(4426),
    [sym_ubyte] = ACTIONS(4426),
    [sym_char] = ACTIONS(4426),
    [sym_short] = ACTIONS(4426),
    [sym_ushort] = ACTIONS(4426),
    [sym_int] = ACTIONS(4426),
    [sym_uint] = ACTIONS(4426),
    [sym_long] = ACTIONS(4426),
    [sym_ulong] = ACTIONS(4426),
    [sym_cent] = ACTIONS(4426),
    [sym_ucent] = ACTIONS(4426),
    [sym_wchar] = ACTIONS(4426),
    [sym_dchar] = ACTIONS(4426),
    [sym_float] = ACTIONS(4426),
    [sym_double] = ACTIONS(4426),
    [sym_real] = ACTIONS(4426),
    [sym_ifloat] = ACTIONS(4426),
    [sym_idouble] = ACTIONS(4426),
    [sym_ireal] = ACTIONS(4426),
    [sym_cfloat] = ACTIONS(4426),
    [sym_cdouble] = ACTIONS(4426),
    [sym_creal] = ACTIONS(4426),
    [sym_size_t] = ACTIONS(4426),
    [sym_ptrdiff_t] = ACTIONS(4426),
    [sym_string] = ACTIONS(4426),
    [sym_cstring] = ACTIONS(4426),
    [sym_dstring] = ACTIONS(4426),
    [sym_wstring] = ACTIONS(4426),
    [sym_noreturn] = ACTIONS(4426),
    [sym_true] = ACTIONS(4426),
    [sym_false] = ACTIONS(4426),
    [sym_null] = ACTIONS(4426),
    [sym_super] = ACTIONS(4426),
    [sym_this] = ACTIONS(4426),
    [sym_abstract] = ACTIONS(4426),
    [sym_alias] = ACTIONS(4426),
    [sym_align] = ACTIONS(4426),
    [sym_asm] = ACTIONS(4426),
    [sym_assert] = ACTIONS(4426),
    [sym_auto] = ACTIONS(4426),
    [sym_break] = ACTIONS(4426),
    [sym_case] = ACTIONS(4426),
    [sym_cast] = ACTIONS(4426),
    [sym_class] = ACTIONS(4426),
    [sym_const] = ACTIONS(4426),
    [sym_continue] = ACTIONS(4426),
    [sym_debug] = ACTIONS(4426),
    [sym_default] = ACTIONS(4426),
    [sym_delegate] = ACTIONS(4426),
    [sym_delete] = ACTIONS(4426),
    [sym_deprecated] = ACTIONS(4426),
    [sym_do] = ACTIONS(4426),
    [sym_else] = ACTIONS(4426),
    [sym_enum] = ACTIONS(4426),
    [sym_export] = ACTIONS(4426),
    [sym_extern] = ACTIONS(4426),
    [sym_final] = ACTIONS(4426),
    [sym_for] = ACTIONS(4426),
    [sym_foreach] = ACTIONS(4426),
    [sym_foreach_reverse] = ACTIONS(4426),
    [sym_function] = ACTIONS(4426),
    [sym_goto] = ACTIONS(4426),
    [sym_if] = ACTIONS(4426),
    [sym_immutable] = ACTIONS(4426),
    [sym_import] = ACTIONS(4426),
    [sym_in] = ACTIONS(4426),
    [sym_inout] = ACTIONS(4426),
    [sym_interface] = ACTIONS(4426),
    [sym_invariant] = ACTIONS(4426),
    [sym_is] = ACTIONS(4426),
    [sym_mixin] = ACTIONS(4426),
    [sym_new] = ACTIONS(4426),
    [sym_nothrow] = ACTIONS(4426),
    [sym_out] = ACTIONS(4426),
    [sym_override] = ACTIONS(4426),
    [sym_package] = ACTIONS(4426),
    [sym_pragma] = ACTIONS(4426),
    [sym_private] = ACTIONS(4426),
    [sym_protected] = ACTIONS(4426),
    [sym_public] = ACTIONS(4426),
    [sym_pure] = ACTIONS(4426),
    [sym_ref] = ACTIONS(4426),
    [sym_return] = ACTIONS(4426),
    [sym_scope] = ACTIONS(4426),
    [sym_shared] = ACTIONS(4426),
    [sym_static] = ACTIONS(4426),
    [sym_struct] = ACTIONS(4426),
    [sym_switch] = ACTIONS(4426),
    [sym_synchronized] = ACTIONS(4426),
    [sym_template] = ACTIONS(4426),
    [sym_throw] = ACTIONS(4426),
    [sym_try] = ACTIONS(4426),
    [sym_typeid] = ACTIONS(4426),
    [sym_typeof] = ACTIONS(4426),
    [sym_union] = ACTIONS(4426),
    [sym_unittest] = ACTIONS(4426),
    [sym_version] = ACTIONS(4426),
    [sym_while] = ACTIONS(4426),
    [sym_with] = ACTIONS(4426),
    [sym_gshared] = ACTIONS(4426),
    [sym_traits] = ACTIONS(4426),
    [sym_vector] = ACTIONS(4426),
    [sym_void] = ACTIONS(4426),
    [anon_sym_BQUOTE] = ACTIONS(4428),
    [anon_sym_r_DQUOTE] = ACTIONS(4428),
    [anon_sym_x_DQUOTE] = ACTIONS(4428),
    [anon_sym_DQUOTE] = ACTIONS(4428),
    [anon_sym_i_BQUOTE] = ACTIONS(4428),
    [anon_sym_i_DQUOTE] = ACTIONS(4428),
    [anon_sym_iq_LBRACE] = ACTIONS(4428),
    [aux_sym_char_literal_token1] = ACTIONS(4428),
    [anon_sym_SQUOTE] = ACTIONS(4426),
    [anon_sym___DATE__] = ACTIONS(4426),
    [anon_sym___FILE__] = ACTIONS(4426),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4426),
    [anon_sym___FUNCTION__] = ACTIONS(4426),
    [anon_sym___LINE__] = ACTIONS(4426),
    [anon_sym___MODULE__] = ACTIONS(4426),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4426),
    [anon_sym___TIME__] = ACTIONS(4426),
    [anon_sym___TIMESTAMP__] = ACTIONS(4426),
    [anon_sym___VENDOR__] = ACTIONS(4426),
    [anon_sym___VERSION__] = ACTIONS(4426),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4428),
    [sym_float_literal] = ACTIONS(4428),
    [sym__string] = ACTIONS(4428),
  },
  [1573] = {
    [sym_identifier] = ACTIONS(5068),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5070),
    [anon_sym_RBRACE] = ACTIONS(5070),
    [anon_sym_LBRACE] = ACTIONS(5070),
    [anon_sym_DOT] = ACTIONS(5070),
    [anon_sym_AMP] = ACTIONS(5070),
    [anon_sym_DASH] = ACTIONS(5068),
    [anon_sym_DASH_DASH] = ACTIONS(5070),
    [anon_sym_PLUS] = ACTIONS(5068),
    [anon_sym_PLUS_PLUS] = ACTIONS(5070),
    [anon_sym_BANG] = ACTIONS(5070),
    [anon_sym_LPAREN] = ACTIONS(5070),
    [anon_sym_RPAREN] = ACTIONS(5070),
    [anon_sym_LBRACK] = ACTIONS(5070),
    [anon_sym_SEMI] = ACTIONS(5070),
    [anon_sym_DOLLAR] = ACTIONS(5070),
    [anon_sym_STAR] = ACTIONS(5070),
    [anon_sym_TILDE] = ACTIONS(5070),
    [anon_sym_AT] = ACTIONS(5070),
    [sym_bool] = ACTIONS(5068),
    [sym_byte] = ACTIONS(5068),
    [sym_ubyte] = ACTIONS(5068),
    [sym_char] = ACTIONS(5068),
    [sym_short] = ACTIONS(5068),
    [sym_ushort] = ACTIONS(5068),
    [sym_int] = ACTIONS(5068),
    [sym_uint] = ACTIONS(5068),
    [sym_long] = ACTIONS(5068),
    [sym_ulong] = ACTIONS(5068),
    [sym_cent] = ACTIONS(5068),
    [sym_ucent] = ACTIONS(5068),
    [sym_wchar] = ACTIONS(5068),
    [sym_dchar] = ACTIONS(5068),
    [sym_float] = ACTIONS(5068),
    [sym_double] = ACTIONS(5068),
    [sym_real] = ACTIONS(5068),
    [sym_ifloat] = ACTIONS(5068),
    [sym_idouble] = ACTIONS(5068),
    [sym_ireal] = ACTIONS(5068),
    [sym_cfloat] = ACTIONS(5068),
    [sym_cdouble] = ACTIONS(5068),
    [sym_creal] = ACTIONS(5068),
    [sym_size_t] = ACTIONS(5068),
    [sym_ptrdiff_t] = ACTIONS(5068),
    [sym_string] = ACTIONS(5068),
    [sym_cstring] = ACTIONS(5068),
    [sym_dstring] = ACTIONS(5068),
    [sym_wstring] = ACTIONS(5068),
    [sym_noreturn] = ACTIONS(5068),
    [sym_true] = ACTIONS(5068),
    [sym_false] = ACTIONS(5068),
    [sym_null] = ACTIONS(5068),
    [sym_super] = ACTIONS(5068),
    [sym_this] = ACTIONS(5068),
    [sym_abstract] = ACTIONS(5068),
    [sym_alias] = ACTIONS(5068),
    [sym_align] = ACTIONS(5068),
    [sym_asm] = ACTIONS(5068),
    [sym_assert] = ACTIONS(5068),
    [sym_auto] = ACTIONS(5068),
    [sym_break] = ACTIONS(5068),
    [sym_case] = ACTIONS(5068),
    [sym_cast] = ACTIONS(5068),
    [sym_class] = ACTIONS(5068),
    [sym_const] = ACTIONS(5068),
    [sym_continue] = ACTIONS(5068),
    [sym_debug] = ACTIONS(5068),
    [sym_default] = ACTIONS(5068),
    [sym_delegate] = ACTIONS(5068),
    [sym_delete] = ACTIONS(5068),
    [sym_deprecated] = ACTIONS(5068),
    [sym_do] = ACTIONS(5068),
    [sym_else] = ACTIONS(5068),
    [sym_enum] = ACTIONS(5068),
    [sym_export] = ACTIONS(5068),
    [sym_extern] = ACTIONS(5068),
    [sym_final] = ACTIONS(5068),
    [sym_for] = ACTIONS(5068),
    [sym_foreach] = ACTIONS(5068),
    [sym_foreach_reverse] = ACTIONS(5068),
    [sym_function] = ACTIONS(5068),
    [sym_goto] = ACTIONS(5068),
    [sym_if] = ACTIONS(5068),
    [sym_immutable] = ACTIONS(5068),
    [sym_import] = ACTIONS(5068),
    [sym_in] = ACTIONS(5068),
    [sym_inout] = ACTIONS(5068),
    [sym_interface] = ACTIONS(5068),
    [sym_invariant] = ACTIONS(5068),
    [sym_is] = ACTIONS(5068),
    [sym_mixin] = ACTIONS(5068),
    [sym_new] = ACTIONS(5068),
    [sym_nothrow] = ACTIONS(5068),
    [sym_out] = ACTIONS(5068),
    [sym_override] = ACTIONS(5068),
    [sym_package] = ACTIONS(5068),
    [sym_pragma] = ACTIONS(5068),
    [sym_private] = ACTIONS(5068),
    [sym_protected] = ACTIONS(5068),
    [sym_public] = ACTIONS(5068),
    [sym_pure] = ACTIONS(5068),
    [sym_ref] = ACTIONS(5068),
    [sym_return] = ACTIONS(5068),
    [sym_scope] = ACTIONS(5068),
    [sym_shared] = ACTIONS(5068),
    [sym_static] = ACTIONS(5068),
    [sym_struct] = ACTIONS(5068),
    [sym_switch] = ACTIONS(5068),
    [sym_synchronized] = ACTIONS(5068),
    [sym_template] = ACTIONS(5068),
    [sym_throw] = ACTIONS(5068),
    [sym_try] = ACTIONS(5068),
    [sym_typeid] = ACTIONS(5068),
    [sym_typeof] = ACTIONS(5068),
    [sym_union] = ACTIONS(5068),
    [sym_unittest] = ACTIONS(5068),
    [sym_version] = ACTIONS(5068),
    [sym_while] = ACTIONS(5068),
    [sym_with] = ACTIONS(5068),
    [sym_gshared] = ACTIONS(5068),
    [sym_traits] = ACTIONS(5068),
    [sym_vector] = ACTIONS(5068),
    [sym_void] = ACTIONS(5068),
    [anon_sym_BQUOTE] = ACTIONS(5070),
    [anon_sym_r_DQUOTE] = ACTIONS(5070),
    [anon_sym_x_DQUOTE] = ACTIONS(5070),
    [anon_sym_DQUOTE] = ACTIONS(5070),
    [anon_sym_i_BQUOTE] = ACTIONS(5070),
    [anon_sym_i_DQUOTE] = ACTIONS(5070),
    [anon_sym_iq_LBRACE] = ACTIONS(5070),
    [aux_sym_char_literal_token1] = ACTIONS(5070),
    [anon_sym_SQUOTE] = ACTIONS(5068),
    [anon_sym___DATE__] = ACTIONS(5068),
    [anon_sym___FILE__] = ACTIONS(5068),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5068),
    [anon_sym___FUNCTION__] = ACTIONS(5068),
    [anon_sym___LINE__] = ACTIONS(5068),
    [anon_sym___MODULE__] = ACTIONS(5068),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5068),
    [anon_sym___TIME__] = ACTIONS(5068),
    [anon_sym___TIMESTAMP__] = ACTIONS(5068),
    [anon_sym___VENDOR__] = ACTIONS(5068),
    [anon_sym___VERSION__] = ACTIONS(5068),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5070),
    [sym_float_literal] = ACTIONS(5070),
    [sym__string] = ACTIONS(5070),
  },
  [1574] = {
    [sym_identifier] = ACTIONS(5048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5050),
    [anon_sym_RBRACE] = ACTIONS(5050),
    [anon_sym_LBRACE] = ACTIONS(5050),
    [anon_sym_DOT] = ACTIONS(5050),
    [anon_sym_AMP] = ACTIONS(5050),
    [anon_sym_DASH] = ACTIONS(5048),
    [anon_sym_DASH_DASH] = ACTIONS(5050),
    [anon_sym_PLUS] = ACTIONS(5048),
    [anon_sym_PLUS_PLUS] = ACTIONS(5050),
    [anon_sym_BANG] = ACTIONS(5050),
    [anon_sym_LPAREN] = ACTIONS(5050),
    [anon_sym_RPAREN] = ACTIONS(5050),
    [anon_sym_LBRACK] = ACTIONS(5050),
    [anon_sym_SEMI] = ACTIONS(5050),
    [anon_sym_DOLLAR] = ACTIONS(5050),
    [anon_sym_STAR] = ACTIONS(5050),
    [anon_sym_TILDE] = ACTIONS(5050),
    [anon_sym_AT] = ACTIONS(5050),
    [sym_bool] = ACTIONS(5048),
    [sym_byte] = ACTIONS(5048),
    [sym_ubyte] = ACTIONS(5048),
    [sym_char] = ACTIONS(5048),
    [sym_short] = ACTIONS(5048),
    [sym_ushort] = ACTIONS(5048),
    [sym_int] = ACTIONS(5048),
    [sym_uint] = ACTIONS(5048),
    [sym_long] = ACTIONS(5048),
    [sym_ulong] = ACTIONS(5048),
    [sym_cent] = ACTIONS(5048),
    [sym_ucent] = ACTIONS(5048),
    [sym_wchar] = ACTIONS(5048),
    [sym_dchar] = ACTIONS(5048),
    [sym_float] = ACTIONS(5048),
    [sym_double] = ACTIONS(5048),
    [sym_real] = ACTIONS(5048),
    [sym_ifloat] = ACTIONS(5048),
    [sym_idouble] = ACTIONS(5048),
    [sym_ireal] = ACTIONS(5048),
    [sym_cfloat] = ACTIONS(5048),
    [sym_cdouble] = ACTIONS(5048),
    [sym_creal] = ACTIONS(5048),
    [sym_size_t] = ACTIONS(5048),
    [sym_ptrdiff_t] = ACTIONS(5048),
    [sym_string] = ACTIONS(5048),
    [sym_cstring] = ACTIONS(5048),
    [sym_dstring] = ACTIONS(5048),
    [sym_wstring] = ACTIONS(5048),
    [sym_noreturn] = ACTIONS(5048),
    [sym_true] = ACTIONS(5048),
    [sym_false] = ACTIONS(5048),
    [sym_null] = ACTIONS(5048),
    [sym_super] = ACTIONS(5048),
    [sym_this] = ACTIONS(5048),
    [sym_abstract] = ACTIONS(5048),
    [sym_alias] = ACTIONS(5048),
    [sym_align] = ACTIONS(5048),
    [sym_asm] = ACTIONS(5048),
    [sym_assert] = ACTIONS(5048),
    [sym_auto] = ACTIONS(5048),
    [sym_break] = ACTIONS(5048),
    [sym_case] = ACTIONS(5048),
    [sym_cast] = ACTIONS(5048),
    [sym_class] = ACTIONS(5048),
    [sym_const] = ACTIONS(5048),
    [sym_continue] = ACTIONS(5048),
    [sym_debug] = ACTIONS(5048),
    [sym_default] = ACTIONS(5048),
    [sym_delegate] = ACTIONS(5048),
    [sym_delete] = ACTIONS(5048),
    [sym_deprecated] = ACTIONS(5048),
    [sym_do] = ACTIONS(5048),
    [sym_else] = ACTIONS(5048),
    [sym_enum] = ACTIONS(5048),
    [sym_export] = ACTIONS(5048),
    [sym_extern] = ACTIONS(5048),
    [sym_final] = ACTIONS(5048),
    [sym_for] = ACTIONS(5048),
    [sym_foreach] = ACTIONS(5048),
    [sym_foreach_reverse] = ACTIONS(5048),
    [sym_function] = ACTIONS(5048),
    [sym_goto] = ACTIONS(5048),
    [sym_if] = ACTIONS(5048),
    [sym_immutable] = ACTIONS(5048),
    [sym_import] = ACTIONS(5048),
    [sym_in] = ACTIONS(5048),
    [sym_inout] = ACTIONS(5048),
    [sym_interface] = ACTIONS(5048),
    [sym_invariant] = ACTIONS(5048),
    [sym_is] = ACTIONS(5048),
    [sym_mixin] = ACTIONS(5048),
    [sym_new] = ACTIONS(5048),
    [sym_nothrow] = ACTIONS(5048),
    [sym_out] = ACTIONS(5048),
    [sym_override] = ACTIONS(5048),
    [sym_package] = ACTIONS(5048),
    [sym_pragma] = ACTIONS(5048),
    [sym_private] = ACTIONS(5048),
    [sym_protected] = ACTIONS(5048),
    [sym_public] = ACTIONS(5048),
    [sym_pure] = ACTIONS(5048),
    [sym_ref] = ACTIONS(5048),
    [sym_return] = ACTIONS(5048),
    [sym_scope] = ACTIONS(5048),
    [sym_shared] = ACTIONS(5048),
    [sym_static] = ACTIONS(5048),
    [sym_struct] = ACTIONS(5048),
    [sym_switch] = ACTIONS(5048),
    [sym_synchronized] = ACTIONS(5048),
    [sym_template] = ACTIONS(5048),
    [sym_throw] = ACTIONS(5048),
    [sym_try] = ACTIONS(5048),
    [sym_typeid] = ACTIONS(5048),
    [sym_typeof] = ACTIONS(5048),
    [sym_union] = ACTIONS(5048),
    [sym_unittest] = ACTIONS(5048),
    [sym_version] = ACTIONS(5048),
    [sym_while] = ACTIONS(5048),
    [sym_with] = ACTIONS(5048),
    [sym_gshared] = ACTIONS(5048),
    [sym_traits] = ACTIONS(5048),
    [sym_vector] = ACTIONS(5048),
    [sym_void] = ACTIONS(5048),
    [anon_sym_BQUOTE] = ACTIONS(5050),
    [anon_sym_r_DQUOTE] = ACTIONS(5050),
    [anon_sym_x_DQUOTE] = ACTIONS(5050),
    [anon_sym_DQUOTE] = ACTIONS(5050),
    [anon_sym_i_BQUOTE] = ACTIONS(5050),
    [anon_sym_i_DQUOTE] = ACTIONS(5050),
    [anon_sym_iq_LBRACE] = ACTIONS(5050),
    [aux_sym_char_literal_token1] = ACTIONS(5050),
    [anon_sym_SQUOTE] = ACTIONS(5048),
    [anon_sym___DATE__] = ACTIONS(5048),
    [anon_sym___FILE__] = ACTIONS(5048),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5048),
    [anon_sym___FUNCTION__] = ACTIONS(5048),
    [anon_sym___LINE__] = ACTIONS(5048),
    [anon_sym___MODULE__] = ACTIONS(5048),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5048),
    [anon_sym___TIME__] = ACTIONS(5048),
    [anon_sym___TIMESTAMP__] = ACTIONS(5048),
    [anon_sym___VENDOR__] = ACTIONS(5048),
    [anon_sym___VERSION__] = ACTIONS(5048),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5050),
    [sym_float_literal] = ACTIONS(5050),
    [sym__string] = ACTIONS(5050),
  },
  [1575] = {
    [sym_identifier] = ACTIONS(4750),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4752),
    [anon_sym_RBRACE] = ACTIONS(4752),
    [anon_sym_LBRACE] = ACTIONS(4752),
    [anon_sym_DOT] = ACTIONS(4752),
    [anon_sym_AMP] = ACTIONS(4752),
    [anon_sym_DASH] = ACTIONS(4750),
    [anon_sym_DASH_DASH] = ACTIONS(4752),
    [anon_sym_PLUS] = ACTIONS(4750),
    [anon_sym_PLUS_PLUS] = ACTIONS(4752),
    [anon_sym_BANG] = ACTIONS(4752),
    [anon_sym_LPAREN] = ACTIONS(4752),
    [anon_sym_RPAREN] = ACTIONS(4752),
    [anon_sym_LBRACK] = ACTIONS(4752),
    [anon_sym_SEMI] = ACTIONS(4752),
    [anon_sym_DOLLAR] = ACTIONS(4752),
    [anon_sym_STAR] = ACTIONS(4752),
    [anon_sym_TILDE] = ACTIONS(4752),
    [anon_sym_AT] = ACTIONS(4752),
    [sym_bool] = ACTIONS(4750),
    [sym_byte] = ACTIONS(4750),
    [sym_ubyte] = ACTIONS(4750),
    [sym_char] = ACTIONS(4750),
    [sym_short] = ACTIONS(4750),
    [sym_ushort] = ACTIONS(4750),
    [sym_int] = ACTIONS(4750),
    [sym_uint] = ACTIONS(4750),
    [sym_long] = ACTIONS(4750),
    [sym_ulong] = ACTIONS(4750),
    [sym_cent] = ACTIONS(4750),
    [sym_ucent] = ACTIONS(4750),
    [sym_wchar] = ACTIONS(4750),
    [sym_dchar] = ACTIONS(4750),
    [sym_float] = ACTIONS(4750),
    [sym_double] = ACTIONS(4750),
    [sym_real] = ACTIONS(4750),
    [sym_ifloat] = ACTIONS(4750),
    [sym_idouble] = ACTIONS(4750),
    [sym_ireal] = ACTIONS(4750),
    [sym_cfloat] = ACTIONS(4750),
    [sym_cdouble] = ACTIONS(4750),
    [sym_creal] = ACTIONS(4750),
    [sym_size_t] = ACTIONS(4750),
    [sym_ptrdiff_t] = ACTIONS(4750),
    [sym_string] = ACTIONS(4750),
    [sym_cstring] = ACTIONS(4750),
    [sym_dstring] = ACTIONS(4750),
    [sym_wstring] = ACTIONS(4750),
    [sym_noreturn] = ACTIONS(4750),
    [sym_true] = ACTIONS(4750),
    [sym_false] = ACTIONS(4750),
    [sym_null] = ACTIONS(4750),
    [sym_super] = ACTIONS(4750),
    [sym_this] = ACTIONS(4750),
    [sym_abstract] = ACTIONS(4750),
    [sym_alias] = ACTIONS(4750),
    [sym_align] = ACTIONS(4750),
    [sym_asm] = ACTIONS(4750),
    [sym_assert] = ACTIONS(4750),
    [sym_auto] = ACTIONS(4750),
    [sym_break] = ACTIONS(4750),
    [sym_case] = ACTIONS(4750),
    [sym_cast] = ACTIONS(4750),
    [sym_class] = ACTIONS(4750),
    [sym_const] = ACTIONS(4750),
    [sym_continue] = ACTIONS(4750),
    [sym_debug] = ACTIONS(4750),
    [sym_default] = ACTIONS(4750),
    [sym_delegate] = ACTIONS(4750),
    [sym_delete] = ACTIONS(4750),
    [sym_deprecated] = ACTIONS(4750),
    [sym_do] = ACTIONS(4750),
    [sym_else] = ACTIONS(4750),
    [sym_enum] = ACTIONS(4750),
    [sym_export] = ACTIONS(4750),
    [sym_extern] = ACTIONS(4750),
    [sym_final] = ACTIONS(4750),
    [sym_for] = ACTIONS(4750),
    [sym_foreach] = ACTIONS(4750),
    [sym_foreach_reverse] = ACTIONS(4750),
    [sym_function] = ACTIONS(4750),
    [sym_goto] = ACTIONS(4750),
    [sym_if] = ACTIONS(4750),
    [sym_immutable] = ACTIONS(4750),
    [sym_import] = ACTIONS(4750),
    [sym_in] = ACTIONS(4750),
    [sym_inout] = ACTIONS(4750),
    [sym_interface] = ACTIONS(4750),
    [sym_invariant] = ACTIONS(4750),
    [sym_is] = ACTIONS(4750),
    [sym_mixin] = ACTIONS(4750),
    [sym_new] = ACTIONS(4750),
    [sym_nothrow] = ACTIONS(4750),
    [sym_out] = ACTIONS(4750),
    [sym_override] = ACTIONS(4750),
    [sym_package] = ACTIONS(4750),
    [sym_pragma] = ACTIONS(4750),
    [sym_private] = ACTIONS(4750),
    [sym_protected] = ACTIONS(4750),
    [sym_public] = ACTIONS(4750),
    [sym_pure] = ACTIONS(4750),
    [sym_ref] = ACTIONS(4750),
    [sym_return] = ACTIONS(4750),
    [sym_scope] = ACTIONS(4750),
    [sym_shared] = ACTIONS(4750),
    [sym_static] = ACTIONS(4750),
    [sym_struct] = ACTIONS(4750),
    [sym_switch] = ACTIONS(4750),
    [sym_synchronized] = ACTIONS(4750),
    [sym_template] = ACTIONS(4750),
    [sym_throw] = ACTIONS(4750),
    [sym_try] = ACTIONS(4750),
    [sym_typeid] = ACTIONS(4750),
    [sym_typeof] = ACTIONS(4750),
    [sym_union] = ACTIONS(4750),
    [sym_unittest] = ACTIONS(4750),
    [sym_version] = ACTIONS(4750),
    [sym_while] = ACTIONS(4750),
    [sym_with] = ACTIONS(4750),
    [sym_gshared] = ACTIONS(4750),
    [sym_traits] = ACTIONS(4750),
    [sym_vector] = ACTIONS(4750),
    [sym_void] = ACTIONS(4750),
    [anon_sym_BQUOTE] = ACTIONS(4752),
    [anon_sym_r_DQUOTE] = ACTIONS(4752),
    [anon_sym_x_DQUOTE] = ACTIONS(4752),
    [anon_sym_DQUOTE] = ACTIONS(4752),
    [anon_sym_i_BQUOTE] = ACTIONS(4752),
    [anon_sym_i_DQUOTE] = ACTIONS(4752),
    [anon_sym_iq_LBRACE] = ACTIONS(4752),
    [aux_sym_char_literal_token1] = ACTIONS(4752),
    [anon_sym_SQUOTE] = ACTIONS(4750),
    [anon_sym___DATE__] = ACTIONS(4750),
    [anon_sym___FILE__] = ACTIONS(4750),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4750),
    [anon_sym___FUNCTION__] = ACTIONS(4750),
    [anon_sym___LINE__] = ACTIONS(4750),
    [anon_sym___MODULE__] = ACTIONS(4750),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4750),
    [anon_sym___TIME__] = ACTIONS(4750),
    [anon_sym___TIMESTAMP__] = ACTIONS(4750),
    [anon_sym___VENDOR__] = ACTIONS(4750),
    [anon_sym___VERSION__] = ACTIONS(4750),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4752),
    [sym_float_literal] = ACTIONS(4752),
    [sym__string] = ACTIONS(4752),
  },
  [1576] = {
    [sym_identifier] = ACTIONS(4746),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4748),
    [anon_sym_RBRACE] = ACTIONS(4748),
    [anon_sym_LBRACE] = ACTIONS(4748),
    [anon_sym_DOT] = ACTIONS(4748),
    [anon_sym_AMP] = ACTIONS(4748),
    [anon_sym_DASH] = ACTIONS(4746),
    [anon_sym_DASH_DASH] = ACTIONS(4748),
    [anon_sym_PLUS] = ACTIONS(4746),
    [anon_sym_PLUS_PLUS] = ACTIONS(4748),
    [anon_sym_BANG] = ACTIONS(4748),
    [anon_sym_LPAREN] = ACTIONS(4748),
    [anon_sym_RPAREN] = ACTIONS(4748),
    [anon_sym_LBRACK] = ACTIONS(4748),
    [anon_sym_SEMI] = ACTIONS(4748),
    [anon_sym_DOLLAR] = ACTIONS(4748),
    [anon_sym_STAR] = ACTIONS(4748),
    [anon_sym_TILDE] = ACTIONS(4748),
    [anon_sym_AT] = ACTIONS(4748),
    [sym_bool] = ACTIONS(4746),
    [sym_byte] = ACTIONS(4746),
    [sym_ubyte] = ACTIONS(4746),
    [sym_char] = ACTIONS(4746),
    [sym_short] = ACTIONS(4746),
    [sym_ushort] = ACTIONS(4746),
    [sym_int] = ACTIONS(4746),
    [sym_uint] = ACTIONS(4746),
    [sym_long] = ACTIONS(4746),
    [sym_ulong] = ACTIONS(4746),
    [sym_cent] = ACTIONS(4746),
    [sym_ucent] = ACTIONS(4746),
    [sym_wchar] = ACTIONS(4746),
    [sym_dchar] = ACTIONS(4746),
    [sym_float] = ACTIONS(4746),
    [sym_double] = ACTIONS(4746),
    [sym_real] = ACTIONS(4746),
    [sym_ifloat] = ACTIONS(4746),
    [sym_idouble] = ACTIONS(4746),
    [sym_ireal] = ACTIONS(4746),
    [sym_cfloat] = ACTIONS(4746),
    [sym_cdouble] = ACTIONS(4746),
    [sym_creal] = ACTIONS(4746),
    [sym_size_t] = ACTIONS(4746),
    [sym_ptrdiff_t] = ACTIONS(4746),
    [sym_string] = ACTIONS(4746),
    [sym_cstring] = ACTIONS(4746),
    [sym_dstring] = ACTIONS(4746),
    [sym_wstring] = ACTIONS(4746),
    [sym_noreturn] = ACTIONS(4746),
    [sym_true] = ACTIONS(4746),
    [sym_false] = ACTIONS(4746),
    [sym_null] = ACTIONS(4746),
    [sym_super] = ACTIONS(4746),
    [sym_this] = ACTIONS(4746),
    [sym_abstract] = ACTIONS(4746),
    [sym_alias] = ACTIONS(4746),
    [sym_align] = ACTIONS(4746),
    [sym_asm] = ACTIONS(4746),
    [sym_assert] = ACTIONS(4746),
    [sym_auto] = ACTIONS(4746),
    [sym_break] = ACTIONS(4746),
    [sym_case] = ACTIONS(4746),
    [sym_cast] = ACTIONS(4746),
    [sym_class] = ACTIONS(4746),
    [sym_const] = ACTIONS(4746),
    [sym_continue] = ACTIONS(4746),
    [sym_debug] = ACTIONS(4746),
    [sym_default] = ACTIONS(4746),
    [sym_delegate] = ACTIONS(4746),
    [sym_delete] = ACTIONS(4746),
    [sym_deprecated] = ACTIONS(4746),
    [sym_do] = ACTIONS(4746),
    [sym_else] = ACTIONS(4746),
    [sym_enum] = ACTIONS(4746),
    [sym_export] = ACTIONS(4746),
    [sym_extern] = ACTIONS(4746),
    [sym_final] = ACTIONS(4746),
    [sym_for] = ACTIONS(4746),
    [sym_foreach] = ACTIONS(4746),
    [sym_foreach_reverse] = ACTIONS(4746),
    [sym_function] = ACTIONS(4746),
    [sym_goto] = ACTIONS(4746),
    [sym_if] = ACTIONS(4746),
    [sym_immutable] = ACTIONS(4746),
    [sym_import] = ACTIONS(4746),
    [sym_in] = ACTIONS(4746),
    [sym_inout] = ACTIONS(4746),
    [sym_interface] = ACTIONS(4746),
    [sym_invariant] = ACTIONS(4746),
    [sym_is] = ACTIONS(4746),
    [sym_mixin] = ACTIONS(4746),
    [sym_new] = ACTIONS(4746),
    [sym_nothrow] = ACTIONS(4746),
    [sym_out] = ACTIONS(4746),
    [sym_override] = ACTIONS(4746),
    [sym_package] = ACTIONS(4746),
    [sym_pragma] = ACTIONS(4746),
    [sym_private] = ACTIONS(4746),
    [sym_protected] = ACTIONS(4746),
    [sym_public] = ACTIONS(4746),
    [sym_pure] = ACTIONS(4746),
    [sym_ref] = ACTIONS(4746),
    [sym_return] = ACTIONS(4746),
    [sym_scope] = ACTIONS(4746),
    [sym_shared] = ACTIONS(4746),
    [sym_static] = ACTIONS(4746),
    [sym_struct] = ACTIONS(4746),
    [sym_switch] = ACTIONS(4746),
    [sym_synchronized] = ACTIONS(4746),
    [sym_template] = ACTIONS(4746),
    [sym_throw] = ACTIONS(4746),
    [sym_try] = ACTIONS(4746),
    [sym_typeid] = ACTIONS(4746),
    [sym_typeof] = ACTIONS(4746),
    [sym_union] = ACTIONS(4746),
    [sym_unittest] = ACTIONS(4746),
    [sym_version] = ACTIONS(4746),
    [sym_while] = ACTIONS(4746),
    [sym_with] = ACTIONS(4746),
    [sym_gshared] = ACTIONS(4746),
    [sym_traits] = ACTIONS(4746),
    [sym_vector] = ACTIONS(4746),
    [sym_void] = ACTIONS(4746),
    [anon_sym_BQUOTE] = ACTIONS(4748),
    [anon_sym_r_DQUOTE] = ACTIONS(4748),
    [anon_sym_x_DQUOTE] = ACTIONS(4748),
    [anon_sym_DQUOTE] = ACTIONS(4748),
    [anon_sym_i_BQUOTE] = ACTIONS(4748),
    [anon_sym_i_DQUOTE] = ACTIONS(4748),
    [anon_sym_iq_LBRACE] = ACTIONS(4748),
    [aux_sym_char_literal_token1] = ACTIONS(4748),
    [anon_sym_SQUOTE] = ACTIONS(4746),
    [anon_sym___DATE__] = ACTIONS(4746),
    [anon_sym___FILE__] = ACTIONS(4746),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4746),
    [anon_sym___FUNCTION__] = ACTIONS(4746),
    [anon_sym___LINE__] = ACTIONS(4746),
    [anon_sym___MODULE__] = ACTIONS(4746),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4746),
    [anon_sym___TIME__] = ACTIONS(4746),
    [anon_sym___TIMESTAMP__] = ACTIONS(4746),
    [anon_sym___VENDOR__] = ACTIONS(4746),
    [anon_sym___VERSION__] = ACTIONS(4746),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4748),
    [sym_float_literal] = ACTIONS(4748),
    [sym__string] = ACTIONS(4748),
  },
  [1577] = {
    [sym_identifier] = ACTIONS(5032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5034),
    [anon_sym_RBRACE] = ACTIONS(5034),
    [anon_sym_LBRACE] = ACTIONS(5034),
    [anon_sym_DOT] = ACTIONS(5034),
    [anon_sym_AMP] = ACTIONS(5034),
    [anon_sym_DASH] = ACTIONS(5032),
    [anon_sym_DASH_DASH] = ACTIONS(5034),
    [anon_sym_PLUS] = ACTIONS(5032),
    [anon_sym_PLUS_PLUS] = ACTIONS(5034),
    [anon_sym_BANG] = ACTIONS(5034),
    [anon_sym_LPAREN] = ACTIONS(5034),
    [anon_sym_RPAREN] = ACTIONS(5034),
    [anon_sym_LBRACK] = ACTIONS(5034),
    [anon_sym_SEMI] = ACTIONS(5034),
    [anon_sym_DOLLAR] = ACTIONS(5034),
    [anon_sym_STAR] = ACTIONS(5034),
    [anon_sym_TILDE] = ACTIONS(5034),
    [anon_sym_AT] = ACTIONS(5034),
    [sym_bool] = ACTIONS(5032),
    [sym_byte] = ACTIONS(5032),
    [sym_ubyte] = ACTIONS(5032),
    [sym_char] = ACTIONS(5032),
    [sym_short] = ACTIONS(5032),
    [sym_ushort] = ACTIONS(5032),
    [sym_int] = ACTIONS(5032),
    [sym_uint] = ACTIONS(5032),
    [sym_long] = ACTIONS(5032),
    [sym_ulong] = ACTIONS(5032),
    [sym_cent] = ACTIONS(5032),
    [sym_ucent] = ACTIONS(5032),
    [sym_wchar] = ACTIONS(5032),
    [sym_dchar] = ACTIONS(5032),
    [sym_float] = ACTIONS(5032),
    [sym_double] = ACTIONS(5032),
    [sym_real] = ACTIONS(5032),
    [sym_ifloat] = ACTIONS(5032),
    [sym_idouble] = ACTIONS(5032),
    [sym_ireal] = ACTIONS(5032),
    [sym_cfloat] = ACTIONS(5032),
    [sym_cdouble] = ACTIONS(5032),
    [sym_creal] = ACTIONS(5032),
    [sym_size_t] = ACTIONS(5032),
    [sym_ptrdiff_t] = ACTIONS(5032),
    [sym_string] = ACTIONS(5032),
    [sym_cstring] = ACTIONS(5032),
    [sym_dstring] = ACTIONS(5032),
    [sym_wstring] = ACTIONS(5032),
    [sym_noreturn] = ACTIONS(5032),
    [sym_true] = ACTIONS(5032),
    [sym_false] = ACTIONS(5032),
    [sym_null] = ACTIONS(5032),
    [sym_super] = ACTIONS(5032),
    [sym_this] = ACTIONS(5032),
    [sym_abstract] = ACTIONS(5032),
    [sym_alias] = ACTIONS(5032),
    [sym_align] = ACTIONS(5032),
    [sym_asm] = ACTIONS(5032),
    [sym_assert] = ACTIONS(5032),
    [sym_auto] = ACTIONS(5032),
    [sym_break] = ACTIONS(5032),
    [sym_case] = ACTIONS(5032),
    [sym_cast] = ACTIONS(5032),
    [sym_class] = ACTIONS(5032),
    [sym_const] = ACTIONS(5032),
    [sym_continue] = ACTIONS(5032),
    [sym_debug] = ACTIONS(5032),
    [sym_default] = ACTIONS(5032),
    [sym_delegate] = ACTIONS(5032),
    [sym_delete] = ACTIONS(5032),
    [sym_deprecated] = ACTIONS(5032),
    [sym_do] = ACTIONS(5032),
    [sym_else] = ACTIONS(5032),
    [sym_enum] = ACTIONS(5032),
    [sym_export] = ACTIONS(5032),
    [sym_extern] = ACTIONS(5032),
    [sym_final] = ACTIONS(5032),
    [sym_for] = ACTIONS(5032),
    [sym_foreach] = ACTIONS(5032),
    [sym_foreach_reverse] = ACTIONS(5032),
    [sym_function] = ACTIONS(5032),
    [sym_goto] = ACTIONS(5032),
    [sym_if] = ACTIONS(5032),
    [sym_immutable] = ACTIONS(5032),
    [sym_import] = ACTIONS(5032),
    [sym_in] = ACTIONS(5032),
    [sym_inout] = ACTIONS(5032),
    [sym_interface] = ACTIONS(5032),
    [sym_invariant] = ACTIONS(5032),
    [sym_is] = ACTIONS(5032),
    [sym_mixin] = ACTIONS(5032),
    [sym_new] = ACTIONS(5032),
    [sym_nothrow] = ACTIONS(5032),
    [sym_out] = ACTIONS(5032),
    [sym_override] = ACTIONS(5032),
    [sym_package] = ACTIONS(5032),
    [sym_pragma] = ACTIONS(5032),
    [sym_private] = ACTIONS(5032),
    [sym_protected] = ACTIONS(5032),
    [sym_public] = ACTIONS(5032),
    [sym_pure] = ACTIONS(5032),
    [sym_ref] = ACTIONS(5032),
    [sym_return] = ACTIONS(5032),
    [sym_scope] = ACTIONS(5032),
    [sym_shared] = ACTIONS(5032),
    [sym_static] = ACTIONS(5032),
    [sym_struct] = ACTIONS(5032),
    [sym_switch] = ACTIONS(5032),
    [sym_synchronized] = ACTIONS(5032),
    [sym_template] = ACTIONS(5032),
    [sym_throw] = ACTIONS(5032),
    [sym_try] = ACTIONS(5032),
    [sym_typeid] = ACTIONS(5032),
    [sym_typeof] = ACTIONS(5032),
    [sym_union] = ACTIONS(5032),
    [sym_unittest] = ACTIONS(5032),
    [sym_version] = ACTIONS(5032),
    [sym_while] = ACTIONS(5032),
    [sym_with] = ACTIONS(5032),
    [sym_gshared] = ACTIONS(5032),
    [sym_traits] = ACTIONS(5032),
    [sym_vector] = ACTIONS(5032),
    [sym_void] = ACTIONS(5032),
    [anon_sym_BQUOTE] = ACTIONS(5034),
    [anon_sym_r_DQUOTE] = ACTIONS(5034),
    [anon_sym_x_DQUOTE] = ACTIONS(5034),
    [anon_sym_DQUOTE] = ACTIONS(5034),
    [anon_sym_i_BQUOTE] = ACTIONS(5034),
    [anon_sym_i_DQUOTE] = ACTIONS(5034),
    [anon_sym_iq_LBRACE] = ACTIONS(5034),
    [aux_sym_char_literal_token1] = ACTIONS(5034),
    [anon_sym_SQUOTE] = ACTIONS(5032),
    [anon_sym___DATE__] = ACTIONS(5032),
    [anon_sym___FILE__] = ACTIONS(5032),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5032),
    [anon_sym___FUNCTION__] = ACTIONS(5032),
    [anon_sym___LINE__] = ACTIONS(5032),
    [anon_sym___MODULE__] = ACTIONS(5032),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5032),
    [anon_sym___TIME__] = ACTIONS(5032),
    [anon_sym___TIMESTAMP__] = ACTIONS(5032),
    [anon_sym___VENDOR__] = ACTIONS(5032),
    [anon_sym___VERSION__] = ACTIONS(5032),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5034),
    [sym_float_literal] = ACTIONS(5034),
    [sym__string] = ACTIONS(5034),
  },
  [1578] = {
    [sym_identifier] = ACTIONS(4480),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4482),
    [anon_sym_RBRACE] = ACTIONS(4482),
    [anon_sym_LBRACE] = ACTIONS(4482),
    [anon_sym_DOT] = ACTIONS(4482),
    [anon_sym_AMP] = ACTIONS(4482),
    [anon_sym_DASH] = ACTIONS(4480),
    [anon_sym_DASH_DASH] = ACTIONS(4482),
    [anon_sym_PLUS] = ACTIONS(4480),
    [anon_sym_PLUS_PLUS] = ACTIONS(4482),
    [anon_sym_BANG] = ACTIONS(4482),
    [anon_sym_LPAREN] = ACTIONS(4482),
    [anon_sym_RPAREN] = ACTIONS(4482),
    [anon_sym_LBRACK] = ACTIONS(4482),
    [anon_sym_SEMI] = ACTIONS(4482),
    [anon_sym_DOLLAR] = ACTIONS(4482),
    [anon_sym_STAR] = ACTIONS(4482),
    [anon_sym_TILDE] = ACTIONS(4482),
    [anon_sym_AT] = ACTIONS(4482),
    [sym_bool] = ACTIONS(4480),
    [sym_byte] = ACTIONS(4480),
    [sym_ubyte] = ACTIONS(4480),
    [sym_char] = ACTIONS(4480),
    [sym_short] = ACTIONS(4480),
    [sym_ushort] = ACTIONS(4480),
    [sym_int] = ACTIONS(4480),
    [sym_uint] = ACTIONS(4480),
    [sym_long] = ACTIONS(4480),
    [sym_ulong] = ACTIONS(4480),
    [sym_cent] = ACTIONS(4480),
    [sym_ucent] = ACTIONS(4480),
    [sym_wchar] = ACTIONS(4480),
    [sym_dchar] = ACTIONS(4480),
    [sym_float] = ACTIONS(4480),
    [sym_double] = ACTIONS(4480),
    [sym_real] = ACTIONS(4480),
    [sym_ifloat] = ACTIONS(4480),
    [sym_idouble] = ACTIONS(4480),
    [sym_ireal] = ACTIONS(4480),
    [sym_cfloat] = ACTIONS(4480),
    [sym_cdouble] = ACTIONS(4480),
    [sym_creal] = ACTIONS(4480),
    [sym_size_t] = ACTIONS(4480),
    [sym_ptrdiff_t] = ACTIONS(4480),
    [sym_string] = ACTIONS(4480),
    [sym_cstring] = ACTIONS(4480),
    [sym_dstring] = ACTIONS(4480),
    [sym_wstring] = ACTIONS(4480),
    [sym_noreturn] = ACTIONS(4480),
    [sym_true] = ACTIONS(4480),
    [sym_false] = ACTIONS(4480),
    [sym_null] = ACTIONS(4480),
    [sym_super] = ACTIONS(4480),
    [sym_this] = ACTIONS(4480),
    [sym_abstract] = ACTIONS(4480),
    [sym_alias] = ACTIONS(4480),
    [sym_align] = ACTIONS(4480),
    [sym_asm] = ACTIONS(4480),
    [sym_assert] = ACTIONS(4480),
    [sym_auto] = ACTIONS(4480),
    [sym_break] = ACTIONS(4480),
    [sym_case] = ACTIONS(4480),
    [sym_cast] = ACTIONS(4480),
    [sym_class] = ACTIONS(4480),
    [sym_const] = ACTIONS(4480),
    [sym_continue] = ACTIONS(4480),
    [sym_debug] = ACTIONS(4480),
    [sym_default] = ACTIONS(4480),
    [sym_delegate] = ACTIONS(4480),
    [sym_delete] = ACTIONS(4480),
    [sym_deprecated] = ACTIONS(4480),
    [sym_do] = ACTIONS(4480),
    [sym_else] = ACTIONS(4480),
    [sym_enum] = ACTIONS(4480),
    [sym_export] = ACTIONS(4480),
    [sym_extern] = ACTIONS(4480),
    [sym_final] = ACTIONS(4480),
    [sym_for] = ACTIONS(4480),
    [sym_foreach] = ACTIONS(4480),
    [sym_foreach_reverse] = ACTIONS(4480),
    [sym_function] = ACTIONS(4480),
    [sym_goto] = ACTIONS(4480),
    [sym_if] = ACTIONS(4480),
    [sym_immutable] = ACTIONS(4480),
    [sym_import] = ACTIONS(4480),
    [sym_in] = ACTIONS(4480),
    [sym_inout] = ACTIONS(4480),
    [sym_interface] = ACTIONS(4480),
    [sym_invariant] = ACTIONS(4480),
    [sym_is] = ACTIONS(4480),
    [sym_mixin] = ACTIONS(4480),
    [sym_new] = ACTIONS(4480),
    [sym_nothrow] = ACTIONS(4480),
    [sym_out] = ACTIONS(4480),
    [sym_override] = ACTIONS(4480),
    [sym_package] = ACTIONS(4480),
    [sym_pragma] = ACTIONS(4480),
    [sym_private] = ACTIONS(4480),
    [sym_protected] = ACTIONS(4480),
    [sym_public] = ACTIONS(4480),
    [sym_pure] = ACTIONS(4480),
    [sym_ref] = ACTIONS(4480),
    [sym_return] = ACTIONS(4480),
    [sym_scope] = ACTIONS(4480),
    [sym_shared] = ACTIONS(4480),
    [sym_static] = ACTIONS(4480),
    [sym_struct] = ACTIONS(4480),
    [sym_switch] = ACTIONS(4480),
    [sym_synchronized] = ACTIONS(4480),
    [sym_template] = ACTIONS(4480),
    [sym_throw] = ACTIONS(4480),
    [sym_try] = ACTIONS(4480),
    [sym_typeid] = ACTIONS(4480),
    [sym_typeof] = ACTIONS(4480),
    [sym_union] = ACTIONS(4480),
    [sym_unittest] = ACTIONS(4480),
    [sym_version] = ACTIONS(4480),
    [sym_while] = ACTIONS(4480),
    [sym_with] = ACTIONS(4480),
    [sym_gshared] = ACTIONS(4480),
    [sym_traits] = ACTIONS(4480),
    [sym_vector] = ACTIONS(4480),
    [sym_void] = ACTIONS(4480),
    [anon_sym_BQUOTE] = ACTIONS(4482),
    [anon_sym_r_DQUOTE] = ACTIONS(4482),
    [anon_sym_x_DQUOTE] = ACTIONS(4482),
    [anon_sym_DQUOTE] = ACTIONS(4482),
    [anon_sym_i_BQUOTE] = ACTIONS(4482),
    [anon_sym_i_DQUOTE] = ACTIONS(4482),
    [anon_sym_iq_LBRACE] = ACTIONS(4482),
    [aux_sym_char_literal_token1] = ACTIONS(4482),
    [anon_sym_SQUOTE] = ACTIONS(4480),
    [anon_sym___DATE__] = ACTIONS(4480),
    [anon_sym___FILE__] = ACTIONS(4480),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4480),
    [anon_sym___FUNCTION__] = ACTIONS(4480),
    [anon_sym___LINE__] = ACTIONS(4480),
    [anon_sym___MODULE__] = ACTIONS(4480),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4480),
    [anon_sym___TIME__] = ACTIONS(4480),
    [anon_sym___TIMESTAMP__] = ACTIONS(4480),
    [anon_sym___VENDOR__] = ACTIONS(4480),
    [anon_sym___VERSION__] = ACTIONS(4480),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4482),
    [sym_float_literal] = ACTIONS(4482),
    [sym__string] = ACTIONS(4482),
  },
  [1579] = {
    [sym_identifier] = ACTIONS(4602),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4604),
    [anon_sym_RBRACE] = ACTIONS(4604),
    [anon_sym_LBRACE] = ACTIONS(4604),
    [anon_sym_DOT] = ACTIONS(4604),
    [anon_sym_AMP] = ACTIONS(4604),
    [anon_sym_DASH] = ACTIONS(4602),
    [anon_sym_DASH_DASH] = ACTIONS(4604),
    [anon_sym_PLUS] = ACTIONS(4602),
    [anon_sym_PLUS_PLUS] = ACTIONS(4604),
    [anon_sym_BANG] = ACTIONS(4604),
    [anon_sym_LPAREN] = ACTIONS(4604),
    [anon_sym_RPAREN] = ACTIONS(4604),
    [anon_sym_LBRACK] = ACTIONS(4604),
    [anon_sym_SEMI] = ACTIONS(4604),
    [anon_sym_DOLLAR] = ACTIONS(4604),
    [anon_sym_STAR] = ACTIONS(4604),
    [anon_sym_TILDE] = ACTIONS(4604),
    [anon_sym_AT] = ACTIONS(4604),
    [sym_bool] = ACTIONS(4602),
    [sym_byte] = ACTIONS(4602),
    [sym_ubyte] = ACTIONS(4602),
    [sym_char] = ACTIONS(4602),
    [sym_short] = ACTIONS(4602),
    [sym_ushort] = ACTIONS(4602),
    [sym_int] = ACTIONS(4602),
    [sym_uint] = ACTIONS(4602),
    [sym_long] = ACTIONS(4602),
    [sym_ulong] = ACTIONS(4602),
    [sym_cent] = ACTIONS(4602),
    [sym_ucent] = ACTIONS(4602),
    [sym_wchar] = ACTIONS(4602),
    [sym_dchar] = ACTIONS(4602),
    [sym_float] = ACTIONS(4602),
    [sym_double] = ACTIONS(4602),
    [sym_real] = ACTIONS(4602),
    [sym_ifloat] = ACTIONS(4602),
    [sym_idouble] = ACTIONS(4602),
    [sym_ireal] = ACTIONS(4602),
    [sym_cfloat] = ACTIONS(4602),
    [sym_cdouble] = ACTIONS(4602),
    [sym_creal] = ACTIONS(4602),
    [sym_size_t] = ACTIONS(4602),
    [sym_ptrdiff_t] = ACTIONS(4602),
    [sym_string] = ACTIONS(4602),
    [sym_cstring] = ACTIONS(4602),
    [sym_dstring] = ACTIONS(4602),
    [sym_wstring] = ACTIONS(4602),
    [sym_noreturn] = ACTIONS(4602),
    [sym_true] = ACTIONS(4602),
    [sym_false] = ACTIONS(4602),
    [sym_null] = ACTIONS(4602),
    [sym_super] = ACTIONS(4602),
    [sym_this] = ACTIONS(4602),
    [sym_abstract] = ACTIONS(4602),
    [sym_alias] = ACTIONS(4602),
    [sym_align] = ACTIONS(4602),
    [sym_asm] = ACTIONS(4602),
    [sym_assert] = ACTIONS(4602),
    [sym_auto] = ACTIONS(4602),
    [sym_break] = ACTIONS(4602),
    [sym_case] = ACTIONS(4602),
    [sym_cast] = ACTIONS(4602),
    [sym_class] = ACTIONS(4602),
    [sym_const] = ACTIONS(4602),
    [sym_continue] = ACTIONS(4602),
    [sym_debug] = ACTIONS(4602),
    [sym_default] = ACTIONS(4602),
    [sym_delegate] = ACTIONS(4602),
    [sym_delete] = ACTIONS(4602),
    [sym_deprecated] = ACTIONS(4602),
    [sym_do] = ACTIONS(4602),
    [sym_else] = ACTIONS(4602),
    [sym_enum] = ACTIONS(4602),
    [sym_export] = ACTIONS(4602),
    [sym_extern] = ACTIONS(4602),
    [sym_final] = ACTIONS(4602),
    [sym_for] = ACTIONS(4602),
    [sym_foreach] = ACTIONS(4602),
    [sym_foreach_reverse] = ACTIONS(4602),
    [sym_function] = ACTIONS(4602),
    [sym_goto] = ACTIONS(4602),
    [sym_if] = ACTIONS(4602),
    [sym_immutable] = ACTIONS(4602),
    [sym_import] = ACTIONS(4602),
    [sym_in] = ACTIONS(4602),
    [sym_inout] = ACTIONS(4602),
    [sym_interface] = ACTIONS(4602),
    [sym_invariant] = ACTIONS(4602),
    [sym_is] = ACTIONS(4602),
    [sym_mixin] = ACTIONS(4602),
    [sym_new] = ACTIONS(4602),
    [sym_nothrow] = ACTIONS(4602),
    [sym_out] = ACTIONS(4602),
    [sym_override] = ACTIONS(4602),
    [sym_package] = ACTIONS(4602),
    [sym_pragma] = ACTIONS(4602),
    [sym_private] = ACTIONS(4602),
    [sym_protected] = ACTIONS(4602),
    [sym_public] = ACTIONS(4602),
    [sym_pure] = ACTIONS(4602),
    [sym_ref] = ACTIONS(4602),
    [sym_return] = ACTIONS(4602),
    [sym_scope] = ACTIONS(4602),
    [sym_shared] = ACTIONS(4602),
    [sym_static] = ACTIONS(4602),
    [sym_struct] = ACTIONS(4602),
    [sym_switch] = ACTIONS(4602),
    [sym_synchronized] = ACTIONS(4602),
    [sym_template] = ACTIONS(4602),
    [sym_throw] = ACTIONS(4602),
    [sym_try] = ACTIONS(4602),
    [sym_typeid] = ACTIONS(4602),
    [sym_typeof] = ACTIONS(4602),
    [sym_union] = ACTIONS(4602),
    [sym_unittest] = ACTIONS(4602),
    [sym_version] = ACTIONS(4602),
    [sym_while] = ACTIONS(4602),
    [sym_with] = ACTIONS(4602),
    [sym_gshared] = ACTIONS(4602),
    [sym_traits] = ACTIONS(4602),
    [sym_vector] = ACTIONS(4602),
    [sym_void] = ACTIONS(4602),
    [anon_sym_BQUOTE] = ACTIONS(4604),
    [anon_sym_r_DQUOTE] = ACTIONS(4604),
    [anon_sym_x_DQUOTE] = ACTIONS(4604),
    [anon_sym_DQUOTE] = ACTIONS(4604),
    [anon_sym_i_BQUOTE] = ACTIONS(4604),
    [anon_sym_i_DQUOTE] = ACTIONS(4604),
    [anon_sym_iq_LBRACE] = ACTIONS(4604),
    [aux_sym_char_literal_token1] = ACTIONS(4604),
    [anon_sym_SQUOTE] = ACTIONS(4602),
    [anon_sym___DATE__] = ACTIONS(4602),
    [anon_sym___FILE__] = ACTIONS(4602),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4602),
    [anon_sym___FUNCTION__] = ACTIONS(4602),
    [anon_sym___LINE__] = ACTIONS(4602),
    [anon_sym___MODULE__] = ACTIONS(4602),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4602),
    [anon_sym___TIME__] = ACTIONS(4602),
    [anon_sym___TIMESTAMP__] = ACTIONS(4602),
    [anon_sym___VENDOR__] = ACTIONS(4602),
    [anon_sym___VERSION__] = ACTIONS(4602),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4604),
    [sym_float_literal] = ACTIONS(4604),
    [sym__string] = ACTIONS(4604),
  },
  [1580] = {
    [sym_identifier] = ACTIONS(4724),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4726),
    [anon_sym_RBRACE] = ACTIONS(4726),
    [anon_sym_LBRACE] = ACTIONS(4726),
    [anon_sym_DOT] = ACTIONS(4726),
    [anon_sym_AMP] = ACTIONS(4726),
    [anon_sym_DASH] = ACTIONS(4724),
    [anon_sym_DASH_DASH] = ACTIONS(4726),
    [anon_sym_PLUS] = ACTIONS(4724),
    [anon_sym_PLUS_PLUS] = ACTIONS(4726),
    [anon_sym_BANG] = ACTIONS(4726),
    [anon_sym_LPAREN] = ACTIONS(4726),
    [anon_sym_RPAREN] = ACTIONS(4726),
    [anon_sym_LBRACK] = ACTIONS(4726),
    [anon_sym_SEMI] = ACTIONS(4726),
    [anon_sym_DOLLAR] = ACTIONS(4726),
    [anon_sym_STAR] = ACTIONS(4726),
    [anon_sym_TILDE] = ACTIONS(4726),
    [anon_sym_AT] = ACTIONS(4726),
    [sym_bool] = ACTIONS(4724),
    [sym_byte] = ACTIONS(4724),
    [sym_ubyte] = ACTIONS(4724),
    [sym_char] = ACTIONS(4724),
    [sym_short] = ACTIONS(4724),
    [sym_ushort] = ACTIONS(4724),
    [sym_int] = ACTIONS(4724),
    [sym_uint] = ACTIONS(4724),
    [sym_long] = ACTIONS(4724),
    [sym_ulong] = ACTIONS(4724),
    [sym_cent] = ACTIONS(4724),
    [sym_ucent] = ACTIONS(4724),
    [sym_wchar] = ACTIONS(4724),
    [sym_dchar] = ACTIONS(4724),
    [sym_float] = ACTIONS(4724),
    [sym_double] = ACTIONS(4724),
    [sym_real] = ACTIONS(4724),
    [sym_ifloat] = ACTIONS(4724),
    [sym_idouble] = ACTIONS(4724),
    [sym_ireal] = ACTIONS(4724),
    [sym_cfloat] = ACTIONS(4724),
    [sym_cdouble] = ACTIONS(4724),
    [sym_creal] = ACTIONS(4724),
    [sym_size_t] = ACTIONS(4724),
    [sym_ptrdiff_t] = ACTIONS(4724),
    [sym_string] = ACTIONS(4724),
    [sym_cstring] = ACTIONS(4724),
    [sym_dstring] = ACTIONS(4724),
    [sym_wstring] = ACTIONS(4724),
    [sym_noreturn] = ACTIONS(4724),
    [sym_true] = ACTIONS(4724),
    [sym_false] = ACTIONS(4724),
    [sym_null] = ACTIONS(4724),
    [sym_super] = ACTIONS(4724),
    [sym_this] = ACTIONS(4724),
    [sym_abstract] = ACTIONS(4724),
    [sym_alias] = ACTIONS(4724),
    [sym_align] = ACTIONS(4724),
    [sym_asm] = ACTIONS(4724),
    [sym_assert] = ACTIONS(4724),
    [sym_auto] = ACTIONS(4724),
    [sym_break] = ACTIONS(4724),
    [sym_case] = ACTIONS(4724),
    [sym_cast] = ACTIONS(4724),
    [sym_class] = ACTIONS(4724),
    [sym_const] = ACTIONS(4724),
    [sym_continue] = ACTIONS(4724),
    [sym_debug] = ACTIONS(4724),
    [sym_default] = ACTIONS(4724),
    [sym_delegate] = ACTIONS(4724),
    [sym_delete] = ACTIONS(4724),
    [sym_deprecated] = ACTIONS(4724),
    [sym_do] = ACTIONS(4724),
    [sym_else] = ACTIONS(4724),
    [sym_enum] = ACTIONS(4724),
    [sym_export] = ACTIONS(4724),
    [sym_extern] = ACTIONS(4724),
    [sym_final] = ACTIONS(4724),
    [sym_for] = ACTIONS(4724),
    [sym_foreach] = ACTIONS(4724),
    [sym_foreach_reverse] = ACTIONS(4724),
    [sym_function] = ACTIONS(4724),
    [sym_goto] = ACTIONS(4724),
    [sym_if] = ACTIONS(4724),
    [sym_immutable] = ACTIONS(4724),
    [sym_import] = ACTIONS(4724),
    [sym_in] = ACTIONS(4724),
    [sym_inout] = ACTIONS(4724),
    [sym_interface] = ACTIONS(4724),
    [sym_invariant] = ACTIONS(4724),
    [sym_is] = ACTIONS(4724),
    [sym_mixin] = ACTIONS(4724),
    [sym_new] = ACTIONS(4724),
    [sym_nothrow] = ACTIONS(4724),
    [sym_out] = ACTIONS(4724),
    [sym_override] = ACTIONS(4724),
    [sym_package] = ACTIONS(4724),
    [sym_pragma] = ACTIONS(4724),
    [sym_private] = ACTIONS(4724),
    [sym_protected] = ACTIONS(4724),
    [sym_public] = ACTIONS(4724),
    [sym_pure] = ACTIONS(4724),
    [sym_ref] = ACTIONS(4724),
    [sym_return] = ACTIONS(4724),
    [sym_scope] = ACTIONS(4724),
    [sym_shared] = ACTIONS(4724),
    [sym_static] = ACTIONS(4724),
    [sym_struct] = ACTIONS(4724),
    [sym_switch] = ACTIONS(4724),
    [sym_synchronized] = ACTIONS(4724),
    [sym_template] = ACTIONS(4724),
    [sym_throw] = ACTIONS(4724),
    [sym_try] = ACTIONS(4724),
    [sym_typeid] = ACTIONS(4724),
    [sym_typeof] = ACTIONS(4724),
    [sym_union] = ACTIONS(4724),
    [sym_unittest] = ACTIONS(4724),
    [sym_version] = ACTIONS(4724),
    [sym_while] = ACTIONS(4724),
    [sym_with] = ACTIONS(4724),
    [sym_gshared] = ACTIONS(4724),
    [sym_traits] = ACTIONS(4724),
    [sym_vector] = ACTIONS(4724),
    [sym_void] = ACTIONS(4724),
    [anon_sym_BQUOTE] = ACTIONS(4726),
    [anon_sym_r_DQUOTE] = ACTIONS(4726),
    [anon_sym_x_DQUOTE] = ACTIONS(4726),
    [anon_sym_DQUOTE] = ACTIONS(4726),
    [anon_sym_i_BQUOTE] = ACTIONS(4726),
    [anon_sym_i_DQUOTE] = ACTIONS(4726),
    [anon_sym_iq_LBRACE] = ACTIONS(4726),
    [aux_sym_char_literal_token1] = ACTIONS(4726),
    [anon_sym_SQUOTE] = ACTIONS(4724),
    [anon_sym___DATE__] = ACTIONS(4724),
    [anon_sym___FILE__] = ACTIONS(4724),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4724),
    [anon_sym___FUNCTION__] = ACTIONS(4724),
    [anon_sym___LINE__] = ACTIONS(4724),
    [anon_sym___MODULE__] = ACTIONS(4724),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4724),
    [anon_sym___TIME__] = ACTIONS(4724),
    [anon_sym___TIMESTAMP__] = ACTIONS(4724),
    [anon_sym___VENDOR__] = ACTIONS(4724),
    [anon_sym___VERSION__] = ACTIONS(4724),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4726),
    [sym_float_literal] = ACTIONS(4726),
    [sym__string] = ACTIONS(4726),
  },
  [1581] = {
    [sym_identifier] = ACTIONS(5020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5022),
    [anon_sym_RBRACE] = ACTIONS(5022),
    [anon_sym_LBRACE] = ACTIONS(5022),
    [anon_sym_DOT] = ACTIONS(5022),
    [anon_sym_AMP] = ACTIONS(5022),
    [anon_sym_DASH] = ACTIONS(5020),
    [anon_sym_DASH_DASH] = ACTIONS(5022),
    [anon_sym_PLUS] = ACTIONS(5020),
    [anon_sym_PLUS_PLUS] = ACTIONS(5022),
    [anon_sym_BANG] = ACTIONS(5022),
    [anon_sym_LPAREN] = ACTIONS(5022),
    [anon_sym_RPAREN] = ACTIONS(5022),
    [anon_sym_LBRACK] = ACTIONS(5022),
    [anon_sym_SEMI] = ACTIONS(5022),
    [anon_sym_DOLLAR] = ACTIONS(5022),
    [anon_sym_STAR] = ACTIONS(5022),
    [anon_sym_TILDE] = ACTIONS(5022),
    [anon_sym_AT] = ACTIONS(5022),
    [sym_bool] = ACTIONS(5020),
    [sym_byte] = ACTIONS(5020),
    [sym_ubyte] = ACTIONS(5020),
    [sym_char] = ACTIONS(5020),
    [sym_short] = ACTIONS(5020),
    [sym_ushort] = ACTIONS(5020),
    [sym_int] = ACTIONS(5020),
    [sym_uint] = ACTIONS(5020),
    [sym_long] = ACTIONS(5020),
    [sym_ulong] = ACTIONS(5020),
    [sym_cent] = ACTIONS(5020),
    [sym_ucent] = ACTIONS(5020),
    [sym_wchar] = ACTIONS(5020),
    [sym_dchar] = ACTIONS(5020),
    [sym_float] = ACTIONS(5020),
    [sym_double] = ACTIONS(5020),
    [sym_real] = ACTIONS(5020),
    [sym_ifloat] = ACTIONS(5020),
    [sym_idouble] = ACTIONS(5020),
    [sym_ireal] = ACTIONS(5020),
    [sym_cfloat] = ACTIONS(5020),
    [sym_cdouble] = ACTIONS(5020),
    [sym_creal] = ACTIONS(5020),
    [sym_size_t] = ACTIONS(5020),
    [sym_ptrdiff_t] = ACTIONS(5020),
    [sym_string] = ACTIONS(5020),
    [sym_cstring] = ACTIONS(5020),
    [sym_dstring] = ACTIONS(5020),
    [sym_wstring] = ACTIONS(5020),
    [sym_noreturn] = ACTIONS(5020),
    [sym_true] = ACTIONS(5020),
    [sym_false] = ACTIONS(5020),
    [sym_null] = ACTIONS(5020),
    [sym_super] = ACTIONS(5020),
    [sym_this] = ACTIONS(5020),
    [sym_abstract] = ACTIONS(5020),
    [sym_alias] = ACTIONS(5020),
    [sym_align] = ACTIONS(5020),
    [sym_asm] = ACTIONS(5020),
    [sym_assert] = ACTIONS(5020),
    [sym_auto] = ACTIONS(5020),
    [sym_break] = ACTIONS(5020),
    [sym_case] = ACTIONS(5020),
    [sym_cast] = ACTIONS(5020),
    [sym_class] = ACTIONS(5020),
    [sym_const] = ACTIONS(5020),
    [sym_continue] = ACTIONS(5020),
    [sym_debug] = ACTIONS(5020),
    [sym_default] = ACTIONS(5020),
    [sym_delegate] = ACTIONS(5020),
    [sym_delete] = ACTIONS(5020),
    [sym_deprecated] = ACTIONS(5020),
    [sym_do] = ACTIONS(5020),
    [sym_else] = ACTIONS(5020),
    [sym_enum] = ACTIONS(5020),
    [sym_export] = ACTIONS(5020),
    [sym_extern] = ACTIONS(5020),
    [sym_final] = ACTIONS(5020),
    [sym_for] = ACTIONS(5020),
    [sym_foreach] = ACTIONS(5020),
    [sym_foreach_reverse] = ACTIONS(5020),
    [sym_function] = ACTIONS(5020),
    [sym_goto] = ACTIONS(5020),
    [sym_if] = ACTIONS(5020),
    [sym_immutable] = ACTIONS(5020),
    [sym_import] = ACTIONS(5020),
    [sym_in] = ACTIONS(5020),
    [sym_inout] = ACTIONS(5020),
    [sym_interface] = ACTIONS(5020),
    [sym_invariant] = ACTIONS(5020),
    [sym_is] = ACTIONS(5020),
    [sym_mixin] = ACTIONS(5020),
    [sym_new] = ACTIONS(5020),
    [sym_nothrow] = ACTIONS(5020),
    [sym_out] = ACTIONS(5020),
    [sym_override] = ACTIONS(5020),
    [sym_package] = ACTIONS(5020),
    [sym_pragma] = ACTIONS(5020),
    [sym_private] = ACTIONS(5020),
    [sym_protected] = ACTIONS(5020),
    [sym_public] = ACTIONS(5020),
    [sym_pure] = ACTIONS(5020),
    [sym_ref] = ACTIONS(5020),
    [sym_return] = ACTIONS(5020),
    [sym_scope] = ACTIONS(5020),
    [sym_shared] = ACTIONS(5020),
    [sym_static] = ACTIONS(5020),
    [sym_struct] = ACTIONS(5020),
    [sym_switch] = ACTIONS(5020),
    [sym_synchronized] = ACTIONS(5020),
    [sym_template] = ACTIONS(5020),
    [sym_throw] = ACTIONS(5020),
    [sym_try] = ACTIONS(5020),
    [sym_typeid] = ACTIONS(5020),
    [sym_typeof] = ACTIONS(5020),
    [sym_union] = ACTIONS(5020),
    [sym_unittest] = ACTIONS(5020),
    [sym_version] = ACTIONS(5020),
    [sym_while] = ACTIONS(5020),
    [sym_with] = ACTIONS(5020),
    [sym_gshared] = ACTIONS(5020),
    [sym_traits] = ACTIONS(5020),
    [sym_vector] = ACTIONS(5020),
    [sym_void] = ACTIONS(5020),
    [anon_sym_BQUOTE] = ACTIONS(5022),
    [anon_sym_r_DQUOTE] = ACTIONS(5022),
    [anon_sym_x_DQUOTE] = ACTIONS(5022),
    [anon_sym_DQUOTE] = ACTIONS(5022),
    [anon_sym_i_BQUOTE] = ACTIONS(5022),
    [anon_sym_i_DQUOTE] = ACTIONS(5022),
    [anon_sym_iq_LBRACE] = ACTIONS(5022),
    [aux_sym_char_literal_token1] = ACTIONS(5022),
    [anon_sym_SQUOTE] = ACTIONS(5020),
    [anon_sym___DATE__] = ACTIONS(5020),
    [anon_sym___FILE__] = ACTIONS(5020),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5020),
    [anon_sym___FUNCTION__] = ACTIONS(5020),
    [anon_sym___LINE__] = ACTIONS(5020),
    [anon_sym___MODULE__] = ACTIONS(5020),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5020),
    [anon_sym___TIME__] = ACTIONS(5020),
    [anon_sym___TIMESTAMP__] = ACTIONS(5020),
    [anon_sym___VENDOR__] = ACTIONS(5020),
    [anon_sym___VERSION__] = ACTIONS(5020),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5022),
    [sym_float_literal] = ACTIONS(5022),
    [sym__string] = ACTIONS(5022),
  },
  [1582] = {
    [sym_identifier] = ACTIONS(5016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5018),
    [anon_sym_RBRACE] = ACTIONS(5018),
    [anon_sym_LBRACE] = ACTIONS(5018),
    [anon_sym_DOT] = ACTIONS(5018),
    [anon_sym_AMP] = ACTIONS(5018),
    [anon_sym_DASH] = ACTIONS(5016),
    [anon_sym_DASH_DASH] = ACTIONS(5018),
    [anon_sym_PLUS] = ACTIONS(5016),
    [anon_sym_PLUS_PLUS] = ACTIONS(5018),
    [anon_sym_BANG] = ACTIONS(5018),
    [anon_sym_LPAREN] = ACTIONS(5018),
    [anon_sym_RPAREN] = ACTIONS(5018),
    [anon_sym_LBRACK] = ACTIONS(5018),
    [anon_sym_SEMI] = ACTIONS(5018),
    [anon_sym_DOLLAR] = ACTIONS(5018),
    [anon_sym_STAR] = ACTIONS(5018),
    [anon_sym_TILDE] = ACTIONS(5018),
    [anon_sym_AT] = ACTIONS(5018),
    [sym_bool] = ACTIONS(5016),
    [sym_byte] = ACTIONS(5016),
    [sym_ubyte] = ACTIONS(5016),
    [sym_char] = ACTIONS(5016),
    [sym_short] = ACTIONS(5016),
    [sym_ushort] = ACTIONS(5016),
    [sym_int] = ACTIONS(5016),
    [sym_uint] = ACTIONS(5016),
    [sym_long] = ACTIONS(5016),
    [sym_ulong] = ACTIONS(5016),
    [sym_cent] = ACTIONS(5016),
    [sym_ucent] = ACTIONS(5016),
    [sym_wchar] = ACTIONS(5016),
    [sym_dchar] = ACTIONS(5016),
    [sym_float] = ACTIONS(5016),
    [sym_double] = ACTIONS(5016),
    [sym_real] = ACTIONS(5016),
    [sym_ifloat] = ACTIONS(5016),
    [sym_idouble] = ACTIONS(5016),
    [sym_ireal] = ACTIONS(5016),
    [sym_cfloat] = ACTIONS(5016),
    [sym_cdouble] = ACTIONS(5016),
    [sym_creal] = ACTIONS(5016),
    [sym_size_t] = ACTIONS(5016),
    [sym_ptrdiff_t] = ACTIONS(5016),
    [sym_string] = ACTIONS(5016),
    [sym_cstring] = ACTIONS(5016),
    [sym_dstring] = ACTIONS(5016),
    [sym_wstring] = ACTIONS(5016),
    [sym_noreturn] = ACTIONS(5016),
    [sym_true] = ACTIONS(5016),
    [sym_false] = ACTIONS(5016),
    [sym_null] = ACTIONS(5016),
    [sym_super] = ACTIONS(5016),
    [sym_this] = ACTIONS(5016),
    [sym_abstract] = ACTIONS(5016),
    [sym_alias] = ACTIONS(5016),
    [sym_align] = ACTIONS(5016),
    [sym_asm] = ACTIONS(5016),
    [sym_assert] = ACTIONS(5016),
    [sym_auto] = ACTIONS(5016),
    [sym_break] = ACTIONS(5016),
    [sym_case] = ACTIONS(5016),
    [sym_cast] = ACTIONS(5016),
    [sym_class] = ACTIONS(5016),
    [sym_const] = ACTIONS(5016),
    [sym_continue] = ACTIONS(5016),
    [sym_debug] = ACTIONS(5016),
    [sym_default] = ACTIONS(5016),
    [sym_delegate] = ACTIONS(5016),
    [sym_delete] = ACTIONS(5016),
    [sym_deprecated] = ACTIONS(5016),
    [sym_do] = ACTIONS(5016),
    [sym_else] = ACTIONS(5016),
    [sym_enum] = ACTIONS(5016),
    [sym_export] = ACTIONS(5016),
    [sym_extern] = ACTIONS(5016),
    [sym_final] = ACTIONS(5016),
    [sym_for] = ACTIONS(5016),
    [sym_foreach] = ACTIONS(5016),
    [sym_foreach_reverse] = ACTIONS(5016),
    [sym_function] = ACTIONS(5016),
    [sym_goto] = ACTIONS(5016),
    [sym_if] = ACTIONS(5016),
    [sym_immutable] = ACTIONS(5016),
    [sym_import] = ACTIONS(5016),
    [sym_in] = ACTIONS(5016),
    [sym_inout] = ACTIONS(5016),
    [sym_interface] = ACTIONS(5016),
    [sym_invariant] = ACTIONS(5016),
    [sym_is] = ACTIONS(5016),
    [sym_mixin] = ACTIONS(5016),
    [sym_new] = ACTIONS(5016),
    [sym_nothrow] = ACTIONS(5016),
    [sym_out] = ACTIONS(5016),
    [sym_override] = ACTIONS(5016),
    [sym_package] = ACTIONS(5016),
    [sym_pragma] = ACTIONS(5016),
    [sym_private] = ACTIONS(5016),
    [sym_protected] = ACTIONS(5016),
    [sym_public] = ACTIONS(5016),
    [sym_pure] = ACTIONS(5016),
    [sym_ref] = ACTIONS(5016),
    [sym_return] = ACTIONS(5016),
    [sym_scope] = ACTIONS(5016),
    [sym_shared] = ACTIONS(5016),
    [sym_static] = ACTIONS(5016),
    [sym_struct] = ACTIONS(5016),
    [sym_switch] = ACTIONS(5016),
    [sym_synchronized] = ACTIONS(5016),
    [sym_template] = ACTIONS(5016),
    [sym_throw] = ACTIONS(5016),
    [sym_try] = ACTIONS(5016),
    [sym_typeid] = ACTIONS(5016),
    [sym_typeof] = ACTIONS(5016),
    [sym_union] = ACTIONS(5016),
    [sym_unittest] = ACTIONS(5016),
    [sym_version] = ACTIONS(5016),
    [sym_while] = ACTIONS(5016),
    [sym_with] = ACTIONS(5016),
    [sym_gshared] = ACTIONS(5016),
    [sym_traits] = ACTIONS(5016),
    [sym_vector] = ACTIONS(5016),
    [sym_void] = ACTIONS(5016),
    [anon_sym_BQUOTE] = ACTIONS(5018),
    [anon_sym_r_DQUOTE] = ACTIONS(5018),
    [anon_sym_x_DQUOTE] = ACTIONS(5018),
    [anon_sym_DQUOTE] = ACTIONS(5018),
    [anon_sym_i_BQUOTE] = ACTIONS(5018),
    [anon_sym_i_DQUOTE] = ACTIONS(5018),
    [anon_sym_iq_LBRACE] = ACTIONS(5018),
    [aux_sym_char_literal_token1] = ACTIONS(5018),
    [anon_sym_SQUOTE] = ACTIONS(5016),
    [anon_sym___DATE__] = ACTIONS(5016),
    [anon_sym___FILE__] = ACTIONS(5016),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5016),
    [anon_sym___FUNCTION__] = ACTIONS(5016),
    [anon_sym___LINE__] = ACTIONS(5016),
    [anon_sym___MODULE__] = ACTIONS(5016),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5016),
    [anon_sym___TIME__] = ACTIONS(5016),
    [anon_sym___TIMESTAMP__] = ACTIONS(5016),
    [anon_sym___VENDOR__] = ACTIONS(5016),
    [anon_sym___VERSION__] = ACTIONS(5016),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5018),
    [sym_float_literal] = ACTIONS(5018),
    [sym__string] = ACTIONS(5018),
  },
  [1583] = {
    [sym_identifier] = ACTIONS(4806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4808),
    [anon_sym_RBRACE] = ACTIONS(4808),
    [anon_sym_LBRACE] = ACTIONS(4808),
    [anon_sym_DOT] = ACTIONS(4808),
    [anon_sym_AMP] = ACTIONS(4808),
    [anon_sym_DASH] = ACTIONS(4806),
    [anon_sym_DASH_DASH] = ACTIONS(4808),
    [anon_sym_PLUS] = ACTIONS(4806),
    [anon_sym_PLUS_PLUS] = ACTIONS(4808),
    [anon_sym_BANG] = ACTIONS(4808),
    [anon_sym_LPAREN] = ACTIONS(4808),
    [anon_sym_RPAREN] = ACTIONS(4808),
    [anon_sym_LBRACK] = ACTIONS(4808),
    [anon_sym_SEMI] = ACTIONS(4808),
    [anon_sym_DOLLAR] = ACTIONS(4808),
    [anon_sym_STAR] = ACTIONS(4808),
    [anon_sym_TILDE] = ACTIONS(4808),
    [anon_sym_AT] = ACTIONS(4808),
    [sym_bool] = ACTIONS(4806),
    [sym_byte] = ACTIONS(4806),
    [sym_ubyte] = ACTIONS(4806),
    [sym_char] = ACTIONS(4806),
    [sym_short] = ACTIONS(4806),
    [sym_ushort] = ACTIONS(4806),
    [sym_int] = ACTIONS(4806),
    [sym_uint] = ACTIONS(4806),
    [sym_long] = ACTIONS(4806),
    [sym_ulong] = ACTIONS(4806),
    [sym_cent] = ACTIONS(4806),
    [sym_ucent] = ACTIONS(4806),
    [sym_wchar] = ACTIONS(4806),
    [sym_dchar] = ACTIONS(4806),
    [sym_float] = ACTIONS(4806),
    [sym_double] = ACTIONS(4806),
    [sym_real] = ACTIONS(4806),
    [sym_ifloat] = ACTIONS(4806),
    [sym_idouble] = ACTIONS(4806),
    [sym_ireal] = ACTIONS(4806),
    [sym_cfloat] = ACTIONS(4806),
    [sym_cdouble] = ACTIONS(4806),
    [sym_creal] = ACTIONS(4806),
    [sym_size_t] = ACTIONS(4806),
    [sym_ptrdiff_t] = ACTIONS(4806),
    [sym_string] = ACTIONS(4806),
    [sym_cstring] = ACTIONS(4806),
    [sym_dstring] = ACTIONS(4806),
    [sym_wstring] = ACTIONS(4806),
    [sym_noreturn] = ACTIONS(4806),
    [sym_true] = ACTIONS(4806),
    [sym_false] = ACTIONS(4806),
    [sym_null] = ACTIONS(4806),
    [sym_super] = ACTIONS(4806),
    [sym_this] = ACTIONS(4806),
    [sym_abstract] = ACTIONS(4806),
    [sym_alias] = ACTIONS(4806),
    [sym_align] = ACTIONS(4806),
    [sym_asm] = ACTIONS(4806),
    [sym_assert] = ACTIONS(4806),
    [sym_auto] = ACTIONS(4806),
    [sym_break] = ACTIONS(4806),
    [sym_case] = ACTIONS(4806),
    [sym_cast] = ACTIONS(4806),
    [sym_class] = ACTIONS(4806),
    [sym_const] = ACTIONS(4806),
    [sym_continue] = ACTIONS(4806),
    [sym_debug] = ACTIONS(4806),
    [sym_default] = ACTIONS(4806),
    [sym_delegate] = ACTIONS(4806),
    [sym_delete] = ACTIONS(4806),
    [sym_deprecated] = ACTIONS(4806),
    [sym_do] = ACTIONS(4806),
    [sym_else] = ACTIONS(4806),
    [sym_enum] = ACTIONS(4806),
    [sym_export] = ACTIONS(4806),
    [sym_extern] = ACTIONS(4806),
    [sym_final] = ACTIONS(4806),
    [sym_for] = ACTIONS(4806),
    [sym_foreach] = ACTIONS(4806),
    [sym_foreach_reverse] = ACTIONS(4806),
    [sym_function] = ACTIONS(4806),
    [sym_goto] = ACTIONS(4806),
    [sym_if] = ACTIONS(4806),
    [sym_immutable] = ACTIONS(4806),
    [sym_import] = ACTIONS(4806),
    [sym_in] = ACTIONS(4806),
    [sym_inout] = ACTIONS(4806),
    [sym_interface] = ACTIONS(4806),
    [sym_invariant] = ACTIONS(4806),
    [sym_is] = ACTIONS(4806),
    [sym_mixin] = ACTIONS(4806),
    [sym_new] = ACTIONS(4806),
    [sym_nothrow] = ACTIONS(4806),
    [sym_out] = ACTIONS(4806),
    [sym_override] = ACTIONS(4806),
    [sym_package] = ACTIONS(4806),
    [sym_pragma] = ACTIONS(4806),
    [sym_private] = ACTIONS(4806),
    [sym_protected] = ACTIONS(4806),
    [sym_public] = ACTIONS(4806),
    [sym_pure] = ACTIONS(4806),
    [sym_ref] = ACTIONS(4806),
    [sym_return] = ACTIONS(4806),
    [sym_scope] = ACTIONS(4806),
    [sym_shared] = ACTIONS(4806),
    [sym_static] = ACTIONS(4806),
    [sym_struct] = ACTIONS(4806),
    [sym_switch] = ACTIONS(4806),
    [sym_synchronized] = ACTIONS(4806),
    [sym_template] = ACTIONS(4806),
    [sym_throw] = ACTIONS(4806),
    [sym_try] = ACTIONS(4806),
    [sym_typeid] = ACTIONS(4806),
    [sym_typeof] = ACTIONS(4806),
    [sym_union] = ACTIONS(4806),
    [sym_unittest] = ACTIONS(4806),
    [sym_version] = ACTIONS(4806),
    [sym_while] = ACTIONS(4806),
    [sym_with] = ACTIONS(4806),
    [sym_gshared] = ACTIONS(4806),
    [sym_traits] = ACTIONS(4806),
    [sym_vector] = ACTIONS(4806),
    [sym_void] = ACTIONS(4806),
    [anon_sym_BQUOTE] = ACTIONS(4808),
    [anon_sym_r_DQUOTE] = ACTIONS(4808),
    [anon_sym_x_DQUOTE] = ACTIONS(4808),
    [anon_sym_DQUOTE] = ACTIONS(4808),
    [anon_sym_i_BQUOTE] = ACTIONS(4808),
    [anon_sym_i_DQUOTE] = ACTIONS(4808),
    [anon_sym_iq_LBRACE] = ACTIONS(4808),
    [aux_sym_char_literal_token1] = ACTIONS(4808),
    [anon_sym_SQUOTE] = ACTIONS(4806),
    [anon_sym___DATE__] = ACTIONS(4806),
    [anon_sym___FILE__] = ACTIONS(4806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4806),
    [anon_sym___FUNCTION__] = ACTIONS(4806),
    [anon_sym___LINE__] = ACTIONS(4806),
    [anon_sym___MODULE__] = ACTIONS(4806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4806),
    [anon_sym___TIME__] = ACTIONS(4806),
    [anon_sym___TIMESTAMP__] = ACTIONS(4806),
    [anon_sym___VENDOR__] = ACTIONS(4806),
    [anon_sym___VERSION__] = ACTIONS(4806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4808),
    [sym_float_literal] = ACTIONS(4808),
    [sym__string] = ACTIONS(4808),
  },
  [1584] = {
    [sym_identifier] = ACTIONS(4802),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4804),
    [anon_sym_RBRACE] = ACTIONS(4804),
    [anon_sym_LBRACE] = ACTIONS(4804),
    [anon_sym_DOT] = ACTIONS(4804),
    [anon_sym_AMP] = ACTIONS(4804),
    [anon_sym_DASH] = ACTIONS(4802),
    [anon_sym_DASH_DASH] = ACTIONS(4804),
    [anon_sym_PLUS] = ACTIONS(4802),
    [anon_sym_PLUS_PLUS] = ACTIONS(4804),
    [anon_sym_BANG] = ACTIONS(4804),
    [anon_sym_LPAREN] = ACTIONS(4804),
    [anon_sym_RPAREN] = ACTIONS(4804),
    [anon_sym_LBRACK] = ACTIONS(4804),
    [anon_sym_SEMI] = ACTIONS(4804),
    [anon_sym_DOLLAR] = ACTIONS(4804),
    [anon_sym_STAR] = ACTIONS(4804),
    [anon_sym_TILDE] = ACTIONS(4804),
    [anon_sym_AT] = ACTIONS(4804),
    [sym_bool] = ACTIONS(4802),
    [sym_byte] = ACTIONS(4802),
    [sym_ubyte] = ACTIONS(4802),
    [sym_char] = ACTIONS(4802),
    [sym_short] = ACTIONS(4802),
    [sym_ushort] = ACTIONS(4802),
    [sym_int] = ACTIONS(4802),
    [sym_uint] = ACTIONS(4802),
    [sym_long] = ACTIONS(4802),
    [sym_ulong] = ACTIONS(4802),
    [sym_cent] = ACTIONS(4802),
    [sym_ucent] = ACTIONS(4802),
    [sym_wchar] = ACTIONS(4802),
    [sym_dchar] = ACTIONS(4802),
    [sym_float] = ACTIONS(4802),
    [sym_double] = ACTIONS(4802),
    [sym_real] = ACTIONS(4802),
    [sym_ifloat] = ACTIONS(4802),
    [sym_idouble] = ACTIONS(4802),
    [sym_ireal] = ACTIONS(4802),
    [sym_cfloat] = ACTIONS(4802),
    [sym_cdouble] = ACTIONS(4802),
    [sym_creal] = ACTIONS(4802),
    [sym_size_t] = ACTIONS(4802),
    [sym_ptrdiff_t] = ACTIONS(4802),
    [sym_string] = ACTIONS(4802),
    [sym_cstring] = ACTIONS(4802),
    [sym_dstring] = ACTIONS(4802),
    [sym_wstring] = ACTIONS(4802),
    [sym_noreturn] = ACTIONS(4802),
    [sym_true] = ACTIONS(4802),
    [sym_false] = ACTIONS(4802),
    [sym_null] = ACTIONS(4802),
    [sym_super] = ACTIONS(4802),
    [sym_this] = ACTIONS(4802),
    [sym_abstract] = ACTIONS(4802),
    [sym_alias] = ACTIONS(4802),
    [sym_align] = ACTIONS(4802),
    [sym_asm] = ACTIONS(4802),
    [sym_assert] = ACTIONS(4802),
    [sym_auto] = ACTIONS(4802),
    [sym_break] = ACTIONS(4802),
    [sym_case] = ACTIONS(4802),
    [sym_cast] = ACTIONS(4802),
    [sym_class] = ACTIONS(4802),
    [sym_const] = ACTIONS(4802),
    [sym_continue] = ACTIONS(4802),
    [sym_debug] = ACTIONS(4802),
    [sym_default] = ACTIONS(4802),
    [sym_delegate] = ACTIONS(4802),
    [sym_delete] = ACTIONS(4802),
    [sym_deprecated] = ACTIONS(4802),
    [sym_do] = ACTIONS(4802),
    [sym_else] = ACTIONS(4802),
    [sym_enum] = ACTIONS(4802),
    [sym_export] = ACTIONS(4802),
    [sym_extern] = ACTIONS(4802),
    [sym_final] = ACTIONS(4802),
    [sym_for] = ACTIONS(4802),
    [sym_foreach] = ACTIONS(4802),
    [sym_foreach_reverse] = ACTIONS(4802),
    [sym_function] = ACTIONS(4802),
    [sym_goto] = ACTIONS(4802),
    [sym_if] = ACTIONS(4802),
    [sym_immutable] = ACTIONS(4802),
    [sym_import] = ACTIONS(4802),
    [sym_in] = ACTIONS(4802),
    [sym_inout] = ACTIONS(4802),
    [sym_interface] = ACTIONS(4802),
    [sym_invariant] = ACTIONS(4802),
    [sym_is] = ACTIONS(4802),
    [sym_mixin] = ACTIONS(4802),
    [sym_new] = ACTIONS(4802),
    [sym_nothrow] = ACTIONS(4802),
    [sym_out] = ACTIONS(4802),
    [sym_override] = ACTIONS(4802),
    [sym_package] = ACTIONS(4802),
    [sym_pragma] = ACTIONS(4802),
    [sym_private] = ACTIONS(4802),
    [sym_protected] = ACTIONS(4802),
    [sym_public] = ACTIONS(4802),
    [sym_pure] = ACTIONS(4802),
    [sym_ref] = ACTIONS(4802),
    [sym_return] = ACTIONS(4802),
    [sym_scope] = ACTIONS(4802),
    [sym_shared] = ACTIONS(4802),
    [sym_static] = ACTIONS(4802),
    [sym_struct] = ACTIONS(4802),
    [sym_switch] = ACTIONS(4802),
    [sym_synchronized] = ACTIONS(4802),
    [sym_template] = ACTIONS(4802),
    [sym_throw] = ACTIONS(4802),
    [sym_try] = ACTIONS(4802),
    [sym_typeid] = ACTIONS(4802),
    [sym_typeof] = ACTIONS(4802),
    [sym_union] = ACTIONS(4802),
    [sym_unittest] = ACTIONS(4802),
    [sym_version] = ACTIONS(4802),
    [sym_while] = ACTIONS(4802),
    [sym_with] = ACTIONS(4802),
    [sym_gshared] = ACTIONS(4802),
    [sym_traits] = ACTIONS(4802),
    [sym_vector] = ACTIONS(4802),
    [sym_void] = ACTIONS(4802),
    [anon_sym_BQUOTE] = ACTIONS(4804),
    [anon_sym_r_DQUOTE] = ACTIONS(4804),
    [anon_sym_x_DQUOTE] = ACTIONS(4804),
    [anon_sym_DQUOTE] = ACTIONS(4804),
    [anon_sym_i_BQUOTE] = ACTIONS(4804),
    [anon_sym_i_DQUOTE] = ACTIONS(4804),
    [anon_sym_iq_LBRACE] = ACTIONS(4804),
    [aux_sym_char_literal_token1] = ACTIONS(4804),
    [anon_sym_SQUOTE] = ACTIONS(4802),
    [anon_sym___DATE__] = ACTIONS(4802),
    [anon_sym___FILE__] = ACTIONS(4802),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4802),
    [anon_sym___FUNCTION__] = ACTIONS(4802),
    [anon_sym___LINE__] = ACTIONS(4802),
    [anon_sym___MODULE__] = ACTIONS(4802),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4802),
    [anon_sym___TIME__] = ACTIONS(4802),
    [anon_sym___TIMESTAMP__] = ACTIONS(4802),
    [anon_sym___VENDOR__] = ACTIONS(4802),
    [anon_sym___VERSION__] = ACTIONS(4802),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4804),
    [sym_float_literal] = ACTIONS(4804),
    [sym__string] = ACTIONS(4804),
  },
  [1585] = {
    [sym_identifier] = ACTIONS(4828),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4830),
    [anon_sym_RBRACE] = ACTIONS(4830),
    [anon_sym_LBRACE] = ACTIONS(4830),
    [anon_sym_DOT] = ACTIONS(4830),
    [anon_sym_AMP] = ACTIONS(4830),
    [anon_sym_DASH] = ACTIONS(4828),
    [anon_sym_DASH_DASH] = ACTIONS(4830),
    [anon_sym_PLUS] = ACTIONS(4828),
    [anon_sym_PLUS_PLUS] = ACTIONS(4830),
    [anon_sym_BANG] = ACTIONS(4830),
    [anon_sym_LPAREN] = ACTIONS(4830),
    [anon_sym_RPAREN] = ACTIONS(4830),
    [anon_sym_LBRACK] = ACTIONS(4830),
    [anon_sym_SEMI] = ACTIONS(4830),
    [anon_sym_DOLLAR] = ACTIONS(4830),
    [anon_sym_STAR] = ACTIONS(4830),
    [anon_sym_TILDE] = ACTIONS(4830),
    [anon_sym_AT] = ACTIONS(4830),
    [sym_bool] = ACTIONS(4828),
    [sym_byte] = ACTIONS(4828),
    [sym_ubyte] = ACTIONS(4828),
    [sym_char] = ACTIONS(4828),
    [sym_short] = ACTIONS(4828),
    [sym_ushort] = ACTIONS(4828),
    [sym_int] = ACTIONS(4828),
    [sym_uint] = ACTIONS(4828),
    [sym_long] = ACTIONS(4828),
    [sym_ulong] = ACTIONS(4828),
    [sym_cent] = ACTIONS(4828),
    [sym_ucent] = ACTIONS(4828),
    [sym_wchar] = ACTIONS(4828),
    [sym_dchar] = ACTIONS(4828),
    [sym_float] = ACTIONS(4828),
    [sym_double] = ACTIONS(4828),
    [sym_real] = ACTIONS(4828),
    [sym_ifloat] = ACTIONS(4828),
    [sym_idouble] = ACTIONS(4828),
    [sym_ireal] = ACTIONS(4828),
    [sym_cfloat] = ACTIONS(4828),
    [sym_cdouble] = ACTIONS(4828),
    [sym_creal] = ACTIONS(4828),
    [sym_size_t] = ACTIONS(4828),
    [sym_ptrdiff_t] = ACTIONS(4828),
    [sym_string] = ACTIONS(4828),
    [sym_cstring] = ACTIONS(4828),
    [sym_dstring] = ACTIONS(4828),
    [sym_wstring] = ACTIONS(4828),
    [sym_noreturn] = ACTIONS(4828),
    [sym_true] = ACTIONS(4828),
    [sym_false] = ACTIONS(4828),
    [sym_null] = ACTIONS(4828),
    [sym_super] = ACTIONS(4828),
    [sym_this] = ACTIONS(4828),
    [sym_abstract] = ACTIONS(4828),
    [sym_alias] = ACTIONS(4828),
    [sym_align] = ACTIONS(4828),
    [sym_asm] = ACTIONS(4828),
    [sym_assert] = ACTIONS(4828),
    [sym_auto] = ACTIONS(4828),
    [sym_break] = ACTIONS(4828),
    [sym_case] = ACTIONS(4828),
    [sym_cast] = ACTIONS(4828),
    [sym_class] = ACTIONS(4828),
    [sym_const] = ACTIONS(4828),
    [sym_continue] = ACTIONS(4828),
    [sym_debug] = ACTIONS(4828),
    [sym_default] = ACTIONS(4828),
    [sym_delegate] = ACTIONS(4828),
    [sym_delete] = ACTIONS(4828),
    [sym_deprecated] = ACTIONS(4828),
    [sym_do] = ACTIONS(4828),
    [sym_else] = ACTIONS(4828),
    [sym_enum] = ACTIONS(4828),
    [sym_export] = ACTIONS(4828),
    [sym_extern] = ACTIONS(4828),
    [sym_final] = ACTIONS(4828),
    [sym_for] = ACTIONS(4828),
    [sym_foreach] = ACTIONS(4828),
    [sym_foreach_reverse] = ACTIONS(4828),
    [sym_function] = ACTIONS(4828),
    [sym_goto] = ACTIONS(4828),
    [sym_if] = ACTIONS(4828),
    [sym_immutable] = ACTIONS(4828),
    [sym_import] = ACTIONS(4828),
    [sym_in] = ACTIONS(4828),
    [sym_inout] = ACTIONS(4828),
    [sym_interface] = ACTIONS(4828),
    [sym_invariant] = ACTIONS(4828),
    [sym_is] = ACTIONS(4828),
    [sym_mixin] = ACTIONS(4828),
    [sym_new] = ACTIONS(4828),
    [sym_nothrow] = ACTIONS(4828),
    [sym_out] = ACTIONS(4828),
    [sym_override] = ACTIONS(4828),
    [sym_package] = ACTIONS(4828),
    [sym_pragma] = ACTIONS(4828),
    [sym_private] = ACTIONS(4828),
    [sym_protected] = ACTIONS(4828),
    [sym_public] = ACTIONS(4828),
    [sym_pure] = ACTIONS(4828),
    [sym_ref] = ACTIONS(4828),
    [sym_return] = ACTIONS(4828),
    [sym_scope] = ACTIONS(4828),
    [sym_shared] = ACTIONS(4828),
    [sym_static] = ACTIONS(4828),
    [sym_struct] = ACTIONS(4828),
    [sym_switch] = ACTIONS(4828),
    [sym_synchronized] = ACTIONS(4828),
    [sym_template] = ACTIONS(4828),
    [sym_throw] = ACTIONS(4828),
    [sym_try] = ACTIONS(4828),
    [sym_typeid] = ACTIONS(4828),
    [sym_typeof] = ACTIONS(4828),
    [sym_union] = ACTIONS(4828),
    [sym_unittest] = ACTIONS(4828),
    [sym_version] = ACTIONS(4828),
    [sym_while] = ACTIONS(4828),
    [sym_with] = ACTIONS(4828),
    [sym_gshared] = ACTIONS(4828),
    [sym_traits] = ACTIONS(4828),
    [sym_vector] = ACTIONS(4828),
    [sym_void] = ACTIONS(4828),
    [anon_sym_BQUOTE] = ACTIONS(4830),
    [anon_sym_r_DQUOTE] = ACTIONS(4830),
    [anon_sym_x_DQUOTE] = ACTIONS(4830),
    [anon_sym_DQUOTE] = ACTIONS(4830),
    [anon_sym_i_BQUOTE] = ACTIONS(4830),
    [anon_sym_i_DQUOTE] = ACTIONS(4830),
    [anon_sym_iq_LBRACE] = ACTIONS(4830),
    [aux_sym_char_literal_token1] = ACTIONS(4830),
    [anon_sym_SQUOTE] = ACTIONS(4828),
    [anon_sym___DATE__] = ACTIONS(4828),
    [anon_sym___FILE__] = ACTIONS(4828),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4828),
    [anon_sym___FUNCTION__] = ACTIONS(4828),
    [anon_sym___LINE__] = ACTIONS(4828),
    [anon_sym___MODULE__] = ACTIONS(4828),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4828),
    [anon_sym___TIME__] = ACTIONS(4828),
    [anon_sym___TIMESTAMP__] = ACTIONS(4828),
    [anon_sym___VENDOR__] = ACTIONS(4828),
    [anon_sym___VERSION__] = ACTIONS(4828),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4830),
    [sym_float_literal] = ACTIONS(4830),
    [sym__string] = ACTIONS(4830),
  },
  [1586] = {
    [sym_identifier] = ACTIONS(4990),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4992),
    [anon_sym_RBRACE] = ACTIONS(4992),
    [anon_sym_LBRACE] = ACTIONS(4992),
    [anon_sym_DOT] = ACTIONS(4992),
    [anon_sym_AMP] = ACTIONS(4992),
    [anon_sym_DASH] = ACTIONS(4990),
    [anon_sym_DASH_DASH] = ACTIONS(4992),
    [anon_sym_PLUS] = ACTIONS(4990),
    [anon_sym_PLUS_PLUS] = ACTIONS(4992),
    [anon_sym_BANG] = ACTIONS(4992),
    [anon_sym_LPAREN] = ACTIONS(4992),
    [anon_sym_RPAREN] = ACTIONS(4992),
    [anon_sym_LBRACK] = ACTIONS(4992),
    [anon_sym_SEMI] = ACTIONS(4992),
    [anon_sym_DOLLAR] = ACTIONS(4992),
    [anon_sym_STAR] = ACTIONS(4992),
    [anon_sym_TILDE] = ACTIONS(4992),
    [anon_sym_AT] = ACTIONS(4992),
    [sym_bool] = ACTIONS(4990),
    [sym_byte] = ACTIONS(4990),
    [sym_ubyte] = ACTIONS(4990),
    [sym_char] = ACTIONS(4990),
    [sym_short] = ACTIONS(4990),
    [sym_ushort] = ACTIONS(4990),
    [sym_int] = ACTIONS(4990),
    [sym_uint] = ACTIONS(4990),
    [sym_long] = ACTIONS(4990),
    [sym_ulong] = ACTIONS(4990),
    [sym_cent] = ACTIONS(4990),
    [sym_ucent] = ACTIONS(4990),
    [sym_wchar] = ACTIONS(4990),
    [sym_dchar] = ACTIONS(4990),
    [sym_float] = ACTIONS(4990),
    [sym_double] = ACTIONS(4990),
    [sym_real] = ACTIONS(4990),
    [sym_ifloat] = ACTIONS(4990),
    [sym_idouble] = ACTIONS(4990),
    [sym_ireal] = ACTIONS(4990),
    [sym_cfloat] = ACTIONS(4990),
    [sym_cdouble] = ACTIONS(4990),
    [sym_creal] = ACTIONS(4990),
    [sym_size_t] = ACTIONS(4990),
    [sym_ptrdiff_t] = ACTIONS(4990),
    [sym_string] = ACTIONS(4990),
    [sym_cstring] = ACTIONS(4990),
    [sym_dstring] = ACTIONS(4990),
    [sym_wstring] = ACTIONS(4990),
    [sym_noreturn] = ACTIONS(4990),
    [sym_true] = ACTIONS(4990),
    [sym_false] = ACTIONS(4990),
    [sym_null] = ACTIONS(4990),
    [sym_super] = ACTIONS(4990),
    [sym_this] = ACTIONS(4990),
    [sym_abstract] = ACTIONS(4990),
    [sym_alias] = ACTIONS(4990),
    [sym_align] = ACTIONS(4990),
    [sym_asm] = ACTIONS(4990),
    [sym_assert] = ACTIONS(4990),
    [sym_auto] = ACTIONS(4990),
    [sym_break] = ACTIONS(4990),
    [sym_case] = ACTIONS(4990),
    [sym_cast] = ACTIONS(4990),
    [sym_class] = ACTIONS(4990),
    [sym_const] = ACTIONS(4990),
    [sym_continue] = ACTIONS(4990),
    [sym_debug] = ACTIONS(4990),
    [sym_default] = ACTIONS(4990),
    [sym_delegate] = ACTIONS(4990),
    [sym_delete] = ACTIONS(4990),
    [sym_deprecated] = ACTIONS(4990),
    [sym_do] = ACTIONS(4990),
    [sym_else] = ACTIONS(4990),
    [sym_enum] = ACTIONS(4990),
    [sym_export] = ACTIONS(4990),
    [sym_extern] = ACTIONS(4990),
    [sym_final] = ACTIONS(4990),
    [sym_for] = ACTIONS(4990),
    [sym_foreach] = ACTIONS(4990),
    [sym_foreach_reverse] = ACTIONS(4990),
    [sym_function] = ACTIONS(4990),
    [sym_goto] = ACTIONS(4990),
    [sym_if] = ACTIONS(4990),
    [sym_immutable] = ACTIONS(4990),
    [sym_import] = ACTIONS(4990),
    [sym_in] = ACTIONS(4990),
    [sym_inout] = ACTIONS(4990),
    [sym_interface] = ACTIONS(4990),
    [sym_invariant] = ACTIONS(4990),
    [sym_is] = ACTIONS(4990),
    [sym_mixin] = ACTIONS(4990),
    [sym_new] = ACTIONS(4990),
    [sym_nothrow] = ACTIONS(4990),
    [sym_out] = ACTIONS(4990),
    [sym_override] = ACTIONS(4990),
    [sym_package] = ACTIONS(4990),
    [sym_pragma] = ACTIONS(4990),
    [sym_private] = ACTIONS(4990),
    [sym_protected] = ACTIONS(4990),
    [sym_public] = ACTIONS(4990),
    [sym_pure] = ACTIONS(4990),
    [sym_ref] = ACTIONS(4990),
    [sym_return] = ACTIONS(4990),
    [sym_scope] = ACTIONS(4990),
    [sym_shared] = ACTIONS(4990),
    [sym_static] = ACTIONS(4990),
    [sym_struct] = ACTIONS(4990),
    [sym_switch] = ACTIONS(4990),
    [sym_synchronized] = ACTIONS(4990),
    [sym_template] = ACTIONS(4990),
    [sym_throw] = ACTIONS(4990),
    [sym_try] = ACTIONS(4990),
    [sym_typeid] = ACTIONS(4990),
    [sym_typeof] = ACTIONS(4990),
    [sym_union] = ACTIONS(4990),
    [sym_unittest] = ACTIONS(4990),
    [sym_version] = ACTIONS(4990),
    [sym_while] = ACTIONS(4990),
    [sym_with] = ACTIONS(4990),
    [sym_gshared] = ACTIONS(4990),
    [sym_traits] = ACTIONS(4990),
    [sym_vector] = ACTIONS(4990),
    [sym_void] = ACTIONS(4990),
    [anon_sym_BQUOTE] = ACTIONS(4992),
    [anon_sym_r_DQUOTE] = ACTIONS(4992),
    [anon_sym_x_DQUOTE] = ACTIONS(4992),
    [anon_sym_DQUOTE] = ACTIONS(4992),
    [anon_sym_i_BQUOTE] = ACTIONS(4992),
    [anon_sym_i_DQUOTE] = ACTIONS(4992),
    [anon_sym_iq_LBRACE] = ACTIONS(4992),
    [aux_sym_char_literal_token1] = ACTIONS(4992),
    [anon_sym_SQUOTE] = ACTIONS(4990),
    [anon_sym___DATE__] = ACTIONS(4990),
    [anon_sym___FILE__] = ACTIONS(4990),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4990),
    [anon_sym___FUNCTION__] = ACTIONS(4990),
    [anon_sym___LINE__] = ACTIONS(4990),
    [anon_sym___MODULE__] = ACTIONS(4990),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4990),
    [anon_sym___TIME__] = ACTIONS(4990),
    [anon_sym___TIMESTAMP__] = ACTIONS(4990),
    [anon_sym___VENDOR__] = ACTIONS(4990),
    [anon_sym___VERSION__] = ACTIONS(4990),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4992),
    [sym_float_literal] = ACTIONS(4992),
    [sym__string] = ACTIONS(4992),
  },
  [1587] = {
    [sym_identifier] = ACTIONS(4782),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4785),
    [anon_sym_RBRACE] = ACTIONS(4785),
    [anon_sym_LBRACE] = ACTIONS(4785),
    [anon_sym_DOT] = ACTIONS(4785),
    [anon_sym_AMP] = ACTIONS(4785),
    [anon_sym_DASH] = ACTIONS(4782),
    [anon_sym_DASH_DASH] = ACTIONS(4785),
    [anon_sym_PLUS] = ACTIONS(4782),
    [anon_sym_PLUS_PLUS] = ACTIONS(4785),
    [anon_sym_BANG] = ACTIONS(4785),
    [anon_sym_LPAREN] = ACTIONS(4785),
    [anon_sym_RPAREN] = ACTIONS(4785),
    [anon_sym_LBRACK] = ACTIONS(4785),
    [anon_sym_SEMI] = ACTIONS(4785),
    [anon_sym_DOLLAR] = ACTIONS(4785),
    [anon_sym_STAR] = ACTIONS(4785),
    [anon_sym_TILDE] = ACTIONS(4785),
    [anon_sym_AT] = ACTIONS(4785),
    [sym_bool] = ACTIONS(4782),
    [sym_byte] = ACTIONS(4782),
    [sym_ubyte] = ACTIONS(4782),
    [sym_char] = ACTIONS(4782),
    [sym_short] = ACTIONS(4782),
    [sym_ushort] = ACTIONS(4782),
    [sym_int] = ACTIONS(4782),
    [sym_uint] = ACTIONS(4782),
    [sym_long] = ACTIONS(4782),
    [sym_ulong] = ACTIONS(4782),
    [sym_cent] = ACTIONS(4782),
    [sym_ucent] = ACTIONS(4782),
    [sym_wchar] = ACTIONS(4782),
    [sym_dchar] = ACTIONS(4782),
    [sym_float] = ACTIONS(4782),
    [sym_double] = ACTIONS(4782),
    [sym_real] = ACTIONS(4782),
    [sym_ifloat] = ACTIONS(4782),
    [sym_idouble] = ACTIONS(4782),
    [sym_ireal] = ACTIONS(4782),
    [sym_cfloat] = ACTIONS(4782),
    [sym_cdouble] = ACTIONS(4782),
    [sym_creal] = ACTIONS(4782),
    [sym_size_t] = ACTIONS(4782),
    [sym_ptrdiff_t] = ACTIONS(4782),
    [sym_string] = ACTIONS(4782),
    [sym_cstring] = ACTIONS(4782),
    [sym_dstring] = ACTIONS(4782),
    [sym_wstring] = ACTIONS(4782),
    [sym_noreturn] = ACTIONS(4782),
    [sym_true] = ACTIONS(4782),
    [sym_false] = ACTIONS(4782),
    [sym_null] = ACTIONS(4782),
    [sym_super] = ACTIONS(4782),
    [sym_this] = ACTIONS(4782),
    [sym_abstract] = ACTIONS(4782),
    [sym_alias] = ACTIONS(4782),
    [sym_align] = ACTIONS(4782),
    [sym_asm] = ACTIONS(4782),
    [sym_assert] = ACTIONS(4782),
    [sym_auto] = ACTIONS(4782),
    [sym_break] = ACTIONS(4782),
    [sym_case] = ACTIONS(4782),
    [sym_cast] = ACTIONS(4782),
    [sym_class] = ACTIONS(4782),
    [sym_const] = ACTIONS(4782),
    [sym_continue] = ACTIONS(4782),
    [sym_debug] = ACTIONS(4782),
    [sym_default] = ACTIONS(4782),
    [sym_delegate] = ACTIONS(4782),
    [sym_delete] = ACTIONS(4782),
    [sym_deprecated] = ACTIONS(4782),
    [sym_do] = ACTIONS(4782),
    [sym_else] = ACTIONS(4782),
    [sym_enum] = ACTIONS(4782),
    [sym_export] = ACTIONS(4782),
    [sym_extern] = ACTIONS(4782),
    [sym_final] = ACTIONS(4782),
    [sym_for] = ACTIONS(4782),
    [sym_foreach] = ACTIONS(4782),
    [sym_foreach_reverse] = ACTIONS(4782),
    [sym_function] = ACTIONS(4782),
    [sym_goto] = ACTIONS(4782),
    [sym_if] = ACTIONS(4782),
    [sym_immutable] = ACTIONS(4782),
    [sym_import] = ACTIONS(4782),
    [sym_in] = ACTIONS(4782),
    [sym_inout] = ACTIONS(4782),
    [sym_interface] = ACTIONS(4782),
    [sym_invariant] = ACTIONS(4782),
    [sym_is] = ACTIONS(4782),
    [sym_mixin] = ACTIONS(4782),
    [sym_new] = ACTIONS(4782),
    [sym_nothrow] = ACTIONS(4782),
    [sym_out] = ACTIONS(4782),
    [sym_override] = ACTIONS(4782),
    [sym_package] = ACTIONS(4782),
    [sym_pragma] = ACTIONS(4782),
    [sym_private] = ACTIONS(4782),
    [sym_protected] = ACTIONS(4782),
    [sym_public] = ACTIONS(4782),
    [sym_pure] = ACTIONS(4782),
    [sym_ref] = ACTIONS(4782),
    [sym_return] = ACTIONS(4782),
    [sym_scope] = ACTIONS(4782),
    [sym_shared] = ACTIONS(4782),
    [sym_static] = ACTIONS(4782),
    [sym_struct] = ACTIONS(4782),
    [sym_switch] = ACTIONS(4782),
    [sym_synchronized] = ACTIONS(4782),
    [sym_template] = ACTIONS(4782),
    [sym_throw] = ACTIONS(4782),
    [sym_try] = ACTIONS(4782),
    [sym_typeid] = ACTIONS(4782),
    [sym_typeof] = ACTIONS(4782),
    [sym_union] = ACTIONS(4782),
    [sym_unittest] = ACTIONS(4782),
    [sym_version] = ACTIONS(4782),
    [sym_while] = ACTIONS(4782),
    [sym_with] = ACTIONS(4782),
    [sym_gshared] = ACTIONS(4782),
    [sym_traits] = ACTIONS(4782),
    [sym_vector] = ACTIONS(4782),
    [sym_void] = ACTIONS(4782),
    [anon_sym_BQUOTE] = ACTIONS(4785),
    [anon_sym_r_DQUOTE] = ACTIONS(4785),
    [anon_sym_x_DQUOTE] = ACTIONS(4785),
    [anon_sym_DQUOTE] = ACTIONS(4785),
    [anon_sym_i_BQUOTE] = ACTIONS(4785),
    [anon_sym_i_DQUOTE] = ACTIONS(4785),
    [anon_sym_iq_LBRACE] = ACTIONS(4785),
    [aux_sym_char_literal_token1] = ACTIONS(4785),
    [anon_sym_SQUOTE] = ACTIONS(4782),
    [anon_sym___DATE__] = ACTIONS(4782),
    [anon_sym___FILE__] = ACTIONS(4782),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4782),
    [anon_sym___FUNCTION__] = ACTIONS(4782),
    [anon_sym___LINE__] = ACTIONS(4782),
    [anon_sym___MODULE__] = ACTIONS(4782),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4782),
    [anon_sym___TIME__] = ACTIONS(4782),
    [anon_sym___TIMESTAMP__] = ACTIONS(4782),
    [anon_sym___VENDOR__] = ACTIONS(4782),
    [anon_sym___VERSION__] = ACTIONS(4782),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4785),
    [sym_float_literal] = ACTIONS(4785),
    [sym__string] = ACTIONS(4785),
  },
  [1588] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_RBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [anon_sym_AT] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_abstract] = ACTIONS(4359),
    [sym_alias] = ACTIONS(4359),
    [sym_align] = ACTIONS(4359),
    [sym_asm] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_break] = ACTIONS(4359),
    [sym_case] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_class] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_continue] = ACTIONS(4359),
    [sym_debug] = ACTIONS(4359),
    [sym_default] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_deprecated] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(5100),
    [sym_enum] = ACTIONS(4359),
    [sym_export] = ACTIONS(4359),
    [sym_extern] = ACTIONS(4359),
    [sym_final] = ACTIONS(4359),
    [sym_for] = ACTIONS(4359),
    [sym_foreach] = ACTIONS(4359),
    [sym_foreach_reverse] = ACTIONS(4359),
    [sym_function] = ACTIONS(4359),
    [sym_goto] = ACTIONS(4359),
    [sym_if] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_interface] = ACTIONS(4359),
    [sym_invariant] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_nothrow] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_override] = ACTIONS(4359),
    [sym_package] = ACTIONS(4359),
    [sym_pragma] = ACTIONS(4359),
    [sym_private] = ACTIONS(4359),
    [sym_protected] = ACTIONS(4359),
    [sym_public] = ACTIONS(4359),
    [sym_pure] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_return] = ACTIONS(4359),
    [sym_scope] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_static] = ACTIONS(4359),
    [sym_struct] = ACTIONS(4359),
    [sym_switch] = ACTIONS(4359),
    [sym_synchronized] = ACTIONS(4359),
    [sym_template] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_try] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_union] = ACTIONS(4359),
    [sym_unittest] = ACTIONS(4359),
    [sym_version] = ACTIONS(4359),
    [sym_while] = ACTIONS(4359),
    [sym_with] = ACTIONS(4359),
    [sym_gshared] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [1589] = {
    [sym_identifier] = ACTIONS(4840),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4842),
    [anon_sym_RBRACE] = ACTIONS(4842),
    [anon_sym_LBRACE] = ACTIONS(4842),
    [anon_sym_DOT] = ACTIONS(4842),
    [anon_sym_AMP] = ACTIONS(4842),
    [anon_sym_DASH] = ACTIONS(4840),
    [anon_sym_DASH_DASH] = ACTIONS(4842),
    [anon_sym_PLUS] = ACTIONS(4840),
    [anon_sym_PLUS_PLUS] = ACTIONS(4842),
    [anon_sym_BANG] = ACTIONS(4842),
    [anon_sym_LPAREN] = ACTIONS(4842),
    [anon_sym_RPAREN] = ACTIONS(4842),
    [anon_sym_LBRACK] = ACTIONS(4842),
    [anon_sym_SEMI] = ACTIONS(4842),
    [anon_sym_DOLLAR] = ACTIONS(4842),
    [anon_sym_STAR] = ACTIONS(4842),
    [anon_sym_TILDE] = ACTIONS(4842),
    [anon_sym_AT] = ACTIONS(4842),
    [sym_bool] = ACTIONS(4840),
    [sym_byte] = ACTIONS(4840),
    [sym_ubyte] = ACTIONS(4840),
    [sym_char] = ACTIONS(4840),
    [sym_short] = ACTIONS(4840),
    [sym_ushort] = ACTIONS(4840),
    [sym_int] = ACTIONS(4840),
    [sym_uint] = ACTIONS(4840),
    [sym_long] = ACTIONS(4840),
    [sym_ulong] = ACTIONS(4840),
    [sym_cent] = ACTIONS(4840),
    [sym_ucent] = ACTIONS(4840),
    [sym_wchar] = ACTIONS(4840),
    [sym_dchar] = ACTIONS(4840),
    [sym_float] = ACTIONS(4840),
    [sym_double] = ACTIONS(4840),
    [sym_real] = ACTIONS(4840),
    [sym_ifloat] = ACTIONS(4840),
    [sym_idouble] = ACTIONS(4840),
    [sym_ireal] = ACTIONS(4840),
    [sym_cfloat] = ACTIONS(4840),
    [sym_cdouble] = ACTIONS(4840),
    [sym_creal] = ACTIONS(4840),
    [sym_size_t] = ACTIONS(4840),
    [sym_ptrdiff_t] = ACTIONS(4840),
    [sym_string] = ACTIONS(4840),
    [sym_cstring] = ACTIONS(4840),
    [sym_dstring] = ACTIONS(4840),
    [sym_wstring] = ACTIONS(4840),
    [sym_noreturn] = ACTIONS(4840),
    [sym_true] = ACTIONS(4840),
    [sym_false] = ACTIONS(4840),
    [sym_null] = ACTIONS(4840),
    [sym_super] = ACTIONS(4840),
    [sym_this] = ACTIONS(4840),
    [sym_abstract] = ACTIONS(4840),
    [sym_alias] = ACTIONS(4840),
    [sym_align] = ACTIONS(4840),
    [sym_asm] = ACTIONS(4840),
    [sym_assert] = ACTIONS(4840),
    [sym_auto] = ACTIONS(4840),
    [sym_break] = ACTIONS(4840),
    [sym_case] = ACTIONS(4840),
    [sym_cast] = ACTIONS(4840),
    [sym_class] = ACTIONS(4840),
    [sym_const] = ACTIONS(4840),
    [sym_continue] = ACTIONS(4840),
    [sym_debug] = ACTIONS(4840),
    [sym_default] = ACTIONS(4840),
    [sym_delegate] = ACTIONS(4840),
    [sym_delete] = ACTIONS(4840),
    [sym_deprecated] = ACTIONS(4840),
    [sym_do] = ACTIONS(4840),
    [sym_else] = ACTIONS(4840),
    [sym_enum] = ACTIONS(4840),
    [sym_export] = ACTIONS(4840),
    [sym_extern] = ACTIONS(4840),
    [sym_final] = ACTIONS(4840),
    [sym_for] = ACTIONS(4840),
    [sym_foreach] = ACTIONS(4840),
    [sym_foreach_reverse] = ACTIONS(4840),
    [sym_function] = ACTIONS(4840),
    [sym_goto] = ACTIONS(4840),
    [sym_if] = ACTIONS(4840),
    [sym_immutable] = ACTIONS(4840),
    [sym_import] = ACTIONS(4840),
    [sym_in] = ACTIONS(4840),
    [sym_inout] = ACTIONS(4840),
    [sym_interface] = ACTIONS(4840),
    [sym_invariant] = ACTIONS(4840),
    [sym_is] = ACTIONS(4840),
    [sym_mixin] = ACTIONS(4840),
    [sym_new] = ACTIONS(4840),
    [sym_nothrow] = ACTIONS(4840),
    [sym_out] = ACTIONS(4840),
    [sym_override] = ACTIONS(4840),
    [sym_package] = ACTIONS(4840),
    [sym_pragma] = ACTIONS(4840),
    [sym_private] = ACTIONS(4840),
    [sym_protected] = ACTIONS(4840),
    [sym_public] = ACTIONS(4840),
    [sym_pure] = ACTIONS(4840),
    [sym_ref] = ACTIONS(4840),
    [sym_return] = ACTIONS(4840),
    [sym_scope] = ACTIONS(4840),
    [sym_shared] = ACTIONS(4840),
    [sym_static] = ACTIONS(4840),
    [sym_struct] = ACTIONS(4840),
    [sym_switch] = ACTIONS(4840),
    [sym_synchronized] = ACTIONS(4840),
    [sym_template] = ACTIONS(4840),
    [sym_throw] = ACTIONS(4840),
    [sym_try] = ACTIONS(4840),
    [sym_typeid] = ACTIONS(4840),
    [sym_typeof] = ACTIONS(4840),
    [sym_union] = ACTIONS(4840),
    [sym_unittest] = ACTIONS(4840),
    [sym_version] = ACTIONS(4840),
    [sym_while] = ACTIONS(4840),
    [sym_with] = ACTIONS(4840),
    [sym_gshared] = ACTIONS(4840),
    [sym_traits] = ACTIONS(4840),
    [sym_vector] = ACTIONS(4840),
    [sym_void] = ACTIONS(4840),
    [anon_sym_BQUOTE] = ACTIONS(4842),
    [anon_sym_r_DQUOTE] = ACTIONS(4842),
    [anon_sym_x_DQUOTE] = ACTIONS(4842),
    [anon_sym_DQUOTE] = ACTIONS(4842),
    [anon_sym_i_BQUOTE] = ACTIONS(4842),
    [anon_sym_i_DQUOTE] = ACTIONS(4842),
    [anon_sym_iq_LBRACE] = ACTIONS(4842),
    [aux_sym_char_literal_token1] = ACTIONS(4842),
    [anon_sym_SQUOTE] = ACTIONS(4840),
    [anon_sym___DATE__] = ACTIONS(4840),
    [anon_sym___FILE__] = ACTIONS(4840),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4840),
    [anon_sym___FUNCTION__] = ACTIONS(4840),
    [anon_sym___LINE__] = ACTIONS(4840),
    [anon_sym___MODULE__] = ACTIONS(4840),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4840),
    [anon_sym___TIME__] = ACTIONS(4840),
    [anon_sym___TIMESTAMP__] = ACTIONS(4840),
    [anon_sym___VENDOR__] = ACTIONS(4840),
    [anon_sym___VERSION__] = ACTIONS(4840),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4842),
    [sym_float_literal] = ACTIONS(4842),
    [sym__string] = ACTIONS(4842),
  },
  [1590] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_RBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [anon_sym_AT] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_abstract] = ACTIONS(4365),
    [sym_alias] = ACTIONS(4365),
    [sym_align] = ACTIONS(4365),
    [sym_asm] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_break] = ACTIONS(4365),
    [sym_case] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_class] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_continue] = ACTIONS(4365),
    [sym_debug] = ACTIONS(4365),
    [sym_default] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_deprecated] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(5102),
    [sym_enum] = ACTIONS(4365),
    [sym_export] = ACTIONS(4365),
    [sym_extern] = ACTIONS(4365),
    [sym_final] = ACTIONS(4365),
    [sym_for] = ACTIONS(4365),
    [sym_foreach] = ACTIONS(4365),
    [sym_foreach_reverse] = ACTIONS(4365),
    [sym_function] = ACTIONS(4365),
    [sym_goto] = ACTIONS(4365),
    [sym_if] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_interface] = ACTIONS(4365),
    [sym_invariant] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_nothrow] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_override] = ACTIONS(4365),
    [sym_package] = ACTIONS(4365),
    [sym_pragma] = ACTIONS(4365),
    [sym_private] = ACTIONS(4365),
    [sym_protected] = ACTIONS(4365),
    [sym_public] = ACTIONS(4365),
    [sym_pure] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_return] = ACTIONS(4365),
    [sym_scope] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_static] = ACTIONS(4365),
    [sym_struct] = ACTIONS(4365),
    [sym_switch] = ACTIONS(4365),
    [sym_synchronized] = ACTIONS(4365),
    [sym_template] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_try] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_union] = ACTIONS(4365),
    [sym_unittest] = ACTIONS(4365),
    [sym_version] = ACTIONS(4365),
    [sym_while] = ACTIONS(4365),
    [sym_with] = ACTIONS(4365),
    [sym_gshared] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [1591] = {
    [sym_identifier] = ACTIONS(4762),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4764),
    [anon_sym_RBRACE] = ACTIONS(4764),
    [anon_sym_LBRACE] = ACTIONS(4764),
    [anon_sym_DOT] = ACTIONS(4764),
    [anon_sym_AMP] = ACTIONS(4764),
    [anon_sym_DASH] = ACTIONS(4762),
    [anon_sym_DASH_DASH] = ACTIONS(4764),
    [anon_sym_PLUS] = ACTIONS(4762),
    [anon_sym_PLUS_PLUS] = ACTIONS(4764),
    [anon_sym_BANG] = ACTIONS(4764),
    [anon_sym_LPAREN] = ACTIONS(4764),
    [anon_sym_RPAREN] = ACTIONS(4764),
    [anon_sym_LBRACK] = ACTIONS(4764),
    [anon_sym_SEMI] = ACTIONS(4764),
    [anon_sym_DOLLAR] = ACTIONS(4764),
    [anon_sym_STAR] = ACTIONS(4764),
    [anon_sym_TILDE] = ACTIONS(4764),
    [anon_sym_AT] = ACTIONS(4764),
    [sym_bool] = ACTIONS(4762),
    [sym_byte] = ACTIONS(4762),
    [sym_ubyte] = ACTIONS(4762),
    [sym_char] = ACTIONS(4762),
    [sym_short] = ACTIONS(4762),
    [sym_ushort] = ACTIONS(4762),
    [sym_int] = ACTIONS(4762),
    [sym_uint] = ACTIONS(4762),
    [sym_long] = ACTIONS(4762),
    [sym_ulong] = ACTIONS(4762),
    [sym_cent] = ACTIONS(4762),
    [sym_ucent] = ACTIONS(4762),
    [sym_wchar] = ACTIONS(4762),
    [sym_dchar] = ACTIONS(4762),
    [sym_float] = ACTIONS(4762),
    [sym_double] = ACTIONS(4762),
    [sym_real] = ACTIONS(4762),
    [sym_ifloat] = ACTIONS(4762),
    [sym_idouble] = ACTIONS(4762),
    [sym_ireal] = ACTIONS(4762),
    [sym_cfloat] = ACTIONS(4762),
    [sym_cdouble] = ACTIONS(4762),
    [sym_creal] = ACTIONS(4762),
    [sym_size_t] = ACTIONS(4762),
    [sym_ptrdiff_t] = ACTIONS(4762),
    [sym_string] = ACTIONS(4762),
    [sym_cstring] = ACTIONS(4762),
    [sym_dstring] = ACTIONS(4762),
    [sym_wstring] = ACTIONS(4762),
    [sym_noreturn] = ACTIONS(4762),
    [sym_true] = ACTIONS(4762),
    [sym_false] = ACTIONS(4762),
    [sym_null] = ACTIONS(4762),
    [sym_super] = ACTIONS(4762),
    [sym_this] = ACTIONS(4762),
    [sym_abstract] = ACTIONS(4762),
    [sym_alias] = ACTIONS(4762),
    [sym_align] = ACTIONS(4762),
    [sym_asm] = ACTIONS(4762),
    [sym_assert] = ACTIONS(4762),
    [sym_auto] = ACTIONS(4762),
    [sym_break] = ACTIONS(4762),
    [sym_case] = ACTIONS(4762),
    [sym_cast] = ACTIONS(4762),
    [sym_class] = ACTIONS(4762),
    [sym_const] = ACTIONS(4762),
    [sym_continue] = ACTIONS(4762),
    [sym_debug] = ACTIONS(4762),
    [sym_default] = ACTIONS(4762),
    [sym_delegate] = ACTIONS(4762),
    [sym_delete] = ACTIONS(4762),
    [sym_deprecated] = ACTIONS(4762),
    [sym_do] = ACTIONS(4762),
    [sym_else] = ACTIONS(4762),
    [sym_enum] = ACTIONS(4762),
    [sym_export] = ACTIONS(4762),
    [sym_extern] = ACTIONS(4762),
    [sym_final] = ACTIONS(4762),
    [sym_for] = ACTIONS(4762),
    [sym_foreach] = ACTIONS(4762),
    [sym_foreach_reverse] = ACTIONS(4762),
    [sym_function] = ACTIONS(4762),
    [sym_goto] = ACTIONS(4762),
    [sym_if] = ACTIONS(4762),
    [sym_immutable] = ACTIONS(4762),
    [sym_import] = ACTIONS(4762),
    [sym_in] = ACTIONS(4762),
    [sym_inout] = ACTIONS(4762),
    [sym_interface] = ACTIONS(4762),
    [sym_invariant] = ACTIONS(4762),
    [sym_is] = ACTIONS(4762),
    [sym_mixin] = ACTIONS(4762),
    [sym_new] = ACTIONS(4762),
    [sym_nothrow] = ACTIONS(4762),
    [sym_out] = ACTIONS(4762),
    [sym_override] = ACTIONS(4762),
    [sym_package] = ACTIONS(4762),
    [sym_pragma] = ACTIONS(4762),
    [sym_private] = ACTIONS(4762),
    [sym_protected] = ACTIONS(4762),
    [sym_public] = ACTIONS(4762),
    [sym_pure] = ACTIONS(4762),
    [sym_ref] = ACTIONS(4762),
    [sym_return] = ACTIONS(4762),
    [sym_scope] = ACTIONS(4762),
    [sym_shared] = ACTIONS(4762),
    [sym_static] = ACTIONS(4762),
    [sym_struct] = ACTIONS(4762),
    [sym_switch] = ACTIONS(4762),
    [sym_synchronized] = ACTIONS(4762),
    [sym_template] = ACTIONS(4762),
    [sym_throw] = ACTIONS(4762),
    [sym_try] = ACTIONS(4762),
    [sym_typeid] = ACTIONS(4762),
    [sym_typeof] = ACTIONS(4762),
    [sym_union] = ACTIONS(4762),
    [sym_unittest] = ACTIONS(4762),
    [sym_version] = ACTIONS(4762),
    [sym_while] = ACTIONS(4762),
    [sym_with] = ACTIONS(4762),
    [sym_gshared] = ACTIONS(4762),
    [sym_traits] = ACTIONS(4762),
    [sym_vector] = ACTIONS(4762),
    [sym_void] = ACTIONS(4762),
    [anon_sym_BQUOTE] = ACTIONS(4764),
    [anon_sym_r_DQUOTE] = ACTIONS(4764),
    [anon_sym_x_DQUOTE] = ACTIONS(4764),
    [anon_sym_DQUOTE] = ACTIONS(4764),
    [anon_sym_i_BQUOTE] = ACTIONS(4764),
    [anon_sym_i_DQUOTE] = ACTIONS(4764),
    [anon_sym_iq_LBRACE] = ACTIONS(4764),
    [aux_sym_char_literal_token1] = ACTIONS(4764),
    [anon_sym_SQUOTE] = ACTIONS(4762),
    [anon_sym___DATE__] = ACTIONS(4762),
    [anon_sym___FILE__] = ACTIONS(4762),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4762),
    [anon_sym___FUNCTION__] = ACTIONS(4762),
    [anon_sym___LINE__] = ACTIONS(4762),
    [anon_sym___MODULE__] = ACTIONS(4762),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4762),
    [anon_sym___TIME__] = ACTIONS(4762),
    [anon_sym___TIMESTAMP__] = ACTIONS(4762),
    [anon_sym___VENDOR__] = ACTIONS(4762),
    [anon_sym___VERSION__] = ACTIONS(4762),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4764),
    [sym_float_literal] = ACTIONS(4764),
    [sym__string] = ACTIONS(4764),
  },
  [1592] = {
    [sym_identifier] = ACTIONS(4986),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4988),
    [anon_sym_RBRACE] = ACTIONS(4988),
    [anon_sym_LBRACE] = ACTIONS(4988),
    [anon_sym_DOT] = ACTIONS(4988),
    [anon_sym_AMP] = ACTIONS(4988),
    [anon_sym_DASH] = ACTIONS(4986),
    [anon_sym_DASH_DASH] = ACTIONS(4988),
    [anon_sym_PLUS] = ACTIONS(4986),
    [anon_sym_PLUS_PLUS] = ACTIONS(4988),
    [anon_sym_BANG] = ACTIONS(4988),
    [anon_sym_LPAREN] = ACTIONS(4988),
    [anon_sym_RPAREN] = ACTIONS(4988),
    [anon_sym_LBRACK] = ACTIONS(4988),
    [anon_sym_SEMI] = ACTIONS(4988),
    [anon_sym_DOLLAR] = ACTIONS(4988),
    [anon_sym_STAR] = ACTIONS(4988),
    [anon_sym_TILDE] = ACTIONS(4988),
    [anon_sym_AT] = ACTIONS(4988),
    [sym_bool] = ACTIONS(4986),
    [sym_byte] = ACTIONS(4986),
    [sym_ubyte] = ACTIONS(4986),
    [sym_char] = ACTIONS(4986),
    [sym_short] = ACTIONS(4986),
    [sym_ushort] = ACTIONS(4986),
    [sym_int] = ACTIONS(4986),
    [sym_uint] = ACTIONS(4986),
    [sym_long] = ACTIONS(4986),
    [sym_ulong] = ACTIONS(4986),
    [sym_cent] = ACTIONS(4986),
    [sym_ucent] = ACTIONS(4986),
    [sym_wchar] = ACTIONS(4986),
    [sym_dchar] = ACTIONS(4986),
    [sym_float] = ACTIONS(4986),
    [sym_double] = ACTIONS(4986),
    [sym_real] = ACTIONS(4986),
    [sym_ifloat] = ACTIONS(4986),
    [sym_idouble] = ACTIONS(4986),
    [sym_ireal] = ACTIONS(4986),
    [sym_cfloat] = ACTIONS(4986),
    [sym_cdouble] = ACTIONS(4986),
    [sym_creal] = ACTIONS(4986),
    [sym_size_t] = ACTIONS(4986),
    [sym_ptrdiff_t] = ACTIONS(4986),
    [sym_string] = ACTIONS(4986),
    [sym_cstring] = ACTIONS(4986),
    [sym_dstring] = ACTIONS(4986),
    [sym_wstring] = ACTIONS(4986),
    [sym_noreturn] = ACTIONS(4986),
    [sym_true] = ACTIONS(4986),
    [sym_false] = ACTIONS(4986),
    [sym_null] = ACTIONS(4986),
    [sym_super] = ACTIONS(4986),
    [sym_this] = ACTIONS(4986),
    [sym_abstract] = ACTIONS(4986),
    [sym_alias] = ACTIONS(4986),
    [sym_align] = ACTIONS(4986),
    [sym_asm] = ACTIONS(4986),
    [sym_assert] = ACTIONS(4986),
    [sym_auto] = ACTIONS(4986),
    [sym_break] = ACTIONS(4986),
    [sym_case] = ACTIONS(4986),
    [sym_cast] = ACTIONS(4986),
    [sym_class] = ACTIONS(4986),
    [sym_const] = ACTIONS(4986),
    [sym_continue] = ACTIONS(4986),
    [sym_debug] = ACTIONS(4986),
    [sym_default] = ACTIONS(4986),
    [sym_delegate] = ACTIONS(4986),
    [sym_delete] = ACTIONS(4986),
    [sym_deprecated] = ACTIONS(4986),
    [sym_do] = ACTIONS(4986),
    [sym_else] = ACTIONS(4986),
    [sym_enum] = ACTIONS(4986),
    [sym_export] = ACTIONS(4986),
    [sym_extern] = ACTIONS(4986),
    [sym_final] = ACTIONS(4986),
    [sym_for] = ACTIONS(4986),
    [sym_foreach] = ACTIONS(4986),
    [sym_foreach_reverse] = ACTIONS(4986),
    [sym_function] = ACTIONS(4986),
    [sym_goto] = ACTIONS(4986),
    [sym_if] = ACTIONS(4986),
    [sym_immutable] = ACTIONS(4986),
    [sym_import] = ACTIONS(4986),
    [sym_in] = ACTIONS(4986),
    [sym_inout] = ACTIONS(4986),
    [sym_interface] = ACTIONS(4986),
    [sym_invariant] = ACTIONS(4986),
    [sym_is] = ACTIONS(4986),
    [sym_mixin] = ACTIONS(4986),
    [sym_new] = ACTIONS(4986),
    [sym_nothrow] = ACTIONS(4986),
    [sym_out] = ACTIONS(4986),
    [sym_override] = ACTIONS(4986),
    [sym_package] = ACTIONS(4986),
    [sym_pragma] = ACTIONS(4986),
    [sym_private] = ACTIONS(4986),
    [sym_protected] = ACTIONS(4986),
    [sym_public] = ACTIONS(4986),
    [sym_pure] = ACTIONS(4986),
    [sym_ref] = ACTIONS(4986),
    [sym_return] = ACTIONS(4986),
    [sym_scope] = ACTIONS(4986),
    [sym_shared] = ACTIONS(4986),
    [sym_static] = ACTIONS(4986),
    [sym_struct] = ACTIONS(4986),
    [sym_switch] = ACTIONS(4986),
    [sym_synchronized] = ACTIONS(4986),
    [sym_template] = ACTIONS(4986),
    [sym_throw] = ACTIONS(4986),
    [sym_try] = ACTIONS(4986),
    [sym_typeid] = ACTIONS(4986),
    [sym_typeof] = ACTIONS(4986),
    [sym_union] = ACTIONS(4986),
    [sym_unittest] = ACTIONS(4986),
    [sym_version] = ACTIONS(4986),
    [sym_while] = ACTIONS(4986),
    [sym_with] = ACTIONS(4986),
    [sym_gshared] = ACTIONS(4986),
    [sym_traits] = ACTIONS(4986),
    [sym_vector] = ACTIONS(4986),
    [sym_void] = ACTIONS(4986),
    [anon_sym_BQUOTE] = ACTIONS(4988),
    [anon_sym_r_DQUOTE] = ACTIONS(4988),
    [anon_sym_x_DQUOTE] = ACTIONS(4988),
    [anon_sym_DQUOTE] = ACTIONS(4988),
    [anon_sym_i_BQUOTE] = ACTIONS(4988),
    [anon_sym_i_DQUOTE] = ACTIONS(4988),
    [anon_sym_iq_LBRACE] = ACTIONS(4988),
    [aux_sym_char_literal_token1] = ACTIONS(4988),
    [anon_sym_SQUOTE] = ACTIONS(4986),
    [anon_sym___DATE__] = ACTIONS(4986),
    [anon_sym___FILE__] = ACTIONS(4986),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4986),
    [anon_sym___FUNCTION__] = ACTIONS(4986),
    [anon_sym___LINE__] = ACTIONS(4986),
    [anon_sym___MODULE__] = ACTIONS(4986),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4986),
    [anon_sym___TIME__] = ACTIONS(4986),
    [anon_sym___TIMESTAMP__] = ACTIONS(4986),
    [anon_sym___VENDOR__] = ACTIONS(4986),
    [anon_sym___VERSION__] = ACTIONS(4986),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4988),
    [sym_float_literal] = ACTIONS(4988),
    [sym__string] = ACTIONS(4988),
  },
  [1593] = {
    [sym_identifier] = ACTIONS(4982),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4984),
    [anon_sym_RBRACE] = ACTIONS(4984),
    [anon_sym_LBRACE] = ACTIONS(4984),
    [anon_sym_DOT] = ACTIONS(4984),
    [anon_sym_AMP] = ACTIONS(4984),
    [anon_sym_DASH] = ACTIONS(4982),
    [anon_sym_DASH_DASH] = ACTIONS(4984),
    [anon_sym_PLUS] = ACTIONS(4982),
    [anon_sym_PLUS_PLUS] = ACTIONS(4984),
    [anon_sym_BANG] = ACTIONS(4984),
    [anon_sym_LPAREN] = ACTIONS(4984),
    [anon_sym_RPAREN] = ACTIONS(4984),
    [anon_sym_LBRACK] = ACTIONS(4984),
    [anon_sym_SEMI] = ACTIONS(4984),
    [anon_sym_DOLLAR] = ACTIONS(4984),
    [anon_sym_STAR] = ACTIONS(4984),
    [anon_sym_TILDE] = ACTIONS(4984),
    [anon_sym_AT] = ACTIONS(4984),
    [sym_bool] = ACTIONS(4982),
    [sym_byte] = ACTIONS(4982),
    [sym_ubyte] = ACTIONS(4982),
    [sym_char] = ACTIONS(4982),
    [sym_short] = ACTIONS(4982),
    [sym_ushort] = ACTIONS(4982),
    [sym_int] = ACTIONS(4982),
    [sym_uint] = ACTIONS(4982),
    [sym_long] = ACTIONS(4982),
    [sym_ulong] = ACTIONS(4982),
    [sym_cent] = ACTIONS(4982),
    [sym_ucent] = ACTIONS(4982),
    [sym_wchar] = ACTIONS(4982),
    [sym_dchar] = ACTIONS(4982),
    [sym_float] = ACTIONS(4982),
    [sym_double] = ACTIONS(4982),
    [sym_real] = ACTIONS(4982),
    [sym_ifloat] = ACTIONS(4982),
    [sym_idouble] = ACTIONS(4982),
    [sym_ireal] = ACTIONS(4982),
    [sym_cfloat] = ACTIONS(4982),
    [sym_cdouble] = ACTIONS(4982),
    [sym_creal] = ACTIONS(4982),
    [sym_size_t] = ACTIONS(4982),
    [sym_ptrdiff_t] = ACTIONS(4982),
    [sym_string] = ACTIONS(4982),
    [sym_cstring] = ACTIONS(4982),
    [sym_dstring] = ACTIONS(4982),
    [sym_wstring] = ACTIONS(4982),
    [sym_noreturn] = ACTIONS(4982),
    [sym_true] = ACTIONS(4982),
    [sym_false] = ACTIONS(4982),
    [sym_null] = ACTIONS(4982),
    [sym_super] = ACTIONS(4982),
    [sym_this] = ACTIONS(4982),
    [sym_abstract] = ACTIONS(4982),
    [sym_alias] = ACTIONS(4982),
    [sym_align] = ACTIONS(4982),
    [sym_asm] = ACTIONS(4982),
    [sym_assert] = ACTIONS(4982),
    [sym_auto] = ACTIONS(4982),
    [sym_break] = ACTIONS(4982),
    [sym_case] = ACTIONS(4982),
    [sym_cast] = ACTIONS(4982),
    [sym_class] = ACTIONS(4982),
    [sym_const] = ACTIONS(4982),
    [sym_continue] = ACTIONS(4982),
    [sym_debug] = ACTIONS(4982),
    [sym_default] = ACTIONS(4982),
    [sym_delegate] = ACTIONS(4982),
    [sym_delete] = ACTIONS(4982),
    [sym_deprecated] = ACTIONS(4982),
    [sym_do] = ACTIONS(4982),
    [sym_else] = ACTIONS(4982),
    [sym_enum] = ACTIONS(4982),
    [sym_export] = ACTIONS(4982),
    [sym_extern] = ACTIONS(4982),
    [sym_final] = ACTIONS(4982),
    [sym_for] = ACTIONS(4982),
    [sym_foreach] = ACTIONS(4982),
    [sym_foreach_reverse] = ACTIONS(4982),
    [sym_function] = ACTIONS(4982),
    [sym_goto] = ACTIONS(4982),
    [sym_if] = ACTIONS(4982),
    [sym_immutable] = ACTIONS(4982),
    [sym_import] = ACTIONS(4982),
    [sym_in] = ACTIONS(4982),
    [sym_inout] = ACTIONS(4982),
    [sym_interface] = ACTIONS(4982),
    [sym_invariant] = ACTIONS(4982),
    [sym_is] = ACTIONS(4982),
    [sym_mixin] = ACTIONS(4982),
    [sym_new] = ACTIONS(4982),
    [sym_nothrow] = ACTIONS(4982),
    [sym_out] = ACTIONS(4982),
    [sym_override] = ACTIONS(4982),
    [sym_package] = ACTIONS(4982),
    [sym_pragma] = ACTIONS(4982),
    [sym_private] = ACTIONS(4982),
    [sym_protected] = ACTIONS(4982),
    [sym_public] = ACTIONS(4982),
    [sym_pure] = ACTIONS(4982),
    [sym_ref] = ACTIONS(4982),
    [sym_return] = ACTIONS(4982),
    [sym_scope] = ACTIONS(4982),
    [sym_shared] = ACTIONS(4982),
    [sym_static] = ACTIONS(4982),
    [sym_struct] = ACTIONS(4982),
    [sym_switch] = ACTIONS(4982),
    [sym_synchronized] = ACTIONS(4982),
    [sym_template] = ACTIONS(4982),
    [sym_throw] = ACTIONS(4982),
    [sym_try] = ACTIONS(4982),
    [sym_typeid] = ACTIONS(4982),
    [sym_typeof] = ACTIONS(4982),
    [sym_union] = ACTIONS(4982),
    [sym_unittest] = ACTIONS(4982),
    [sym_version] = ACTIONS(4982),
    [sym_while] = ACTIONS(4982),
    [sym_with] = ACTIONS(4982),
    [sym_gshared] = ACTIONS(4982),
    [sym_traits] = ACTIONS(4982),
    [sym_vector] = ACTIONS(4982),
    [sym_void] = ACTIONS(4982),
    [anon_sym_BQUOTE] = ACTIONS(4984),
    [anon_sym_r_DQUOTE] = ACTIONS(4984),
    [anon_sym_x_DQUOTE] = ACTIONS(4984),
    [anon_sym_DQUOTE] = ACTIONS(4984),
    [anon_sym_i_BQUOTE] = ACTIONS(4984),
    [anon_sym_i_DQUOTE] = ACTIONS(4984),
    [anon_sym_iq_LBRACE] = ACTIONS(4984),
    [aux_sym_char_literal_token1] = ACTIONS(4984),
    [anon_sym_SQUOTE] = ACTIONS(4982),
    [anon_sym___DATE__] = ACTIONS(4982),
    [anon_sym___FILE__] = ACTIONS(4982),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4982),
    [anon_sym___FUNCTION__] = ACTIONS(4982),
    [anon_sym___LINE__] = ACTIONS(4982),
    [anon_sym___MODULE__] = ACTIONS(4982),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4982),
    [anon_sym___TIME__] = ACTIONS(4982),
    [anon_sym___TIMESTAMP__] = ACTIONS(4982),
    [anon_sym___VENDOR__] = ACTIONS(4982),
    [anon_sym___VERSION__] = ACTIONS(4982),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4984),
    [sym_float_literal] = ACTIONS(4984),
    [sym__string] = ACTIONS(4984),
  },
  [1594] = {
    [sym_identifier] = ACTIONS(4978),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4980),
    [anon_sym_RBRACE] = ACTIONS(4980),
    [anon_sym_LBRACE] = ACTIONS(4980),
    [anon_sym_DOT] = ACTIONS(4980),
    [anon_sym_AMP] = ACTIONS(4980),
    [anon_sym_DASH] = ACTIONS(4978),
    [anon_sym_DASH_DASH] = ACTIONS(4980),
    [anon_sym_PLUS] = ACTIONS(4978),
    [anon_sym_PLUS_PLUS] = ACTIONS(4980),
    [anon_sym_BANG] = ACTIONS(4980),
    [anon_sym_LPAREN] = ACTIONS(4980),
    [anon_sym_RPAREN] = ACTIONS(4980),
    [anon_sym_LBRACK] = ACTIONS(4980),
    [anon_sym_SEMI] = ACTIONS(4980),
    [anon_sym_DOLLAR] = ACTIONS(4980),
    [anon_sym_STAR] = ACTIONS(4980),
    [anon_sym_TILDE] = ACTIONS(4980),
    [anon_sym_AT] = ACTIONS(4980),
    [sym_bool] = ACTIONS(4978),
    [sym_byte] = ACTIONS(4978),
    [sym_ubyte] = ACTIONS(4978),
    [sym_char] = ACTIONS(4978),
    [sym_short] = ACTIONS(4978),
    [sym_ushort] = ACTIONS(4978),
    [sym_int] = ACTIONS(4978),
    [sym_uint] = ACTIONS(4978),
    [sym_long] = ACTIONS(4978),
    [sym_ulong] = ACTIONS(4978),
    [sym_cent] = ACTIONS(4978),
    [sym_ucent] = ACTIONS(4978),
    [sym_wchar] = ACTIONS(4978),
    [sym_dchar] = ACTIONS(4978),
    [sym_float] = ACTIONS(4978),
    [sym_double] = ACTIONS(4978),
    [sym_real] = ACTIONS(4978),
    [sym_ifloat] = ACTIONS(4978),
    [sym_idouble] = ACTIONS(4978),
    [sym_ireal] = ACTIONS(4978),
    [sym_cfloat] = ACTIONS(4978),
    [sym_cdouble] = ACTIONS(4978),
    [sym_creal] = ACTIONS(4978),
    [sym_size_t] = ACTIONS(4978),
    [sym_ptrdiff_t] = ACTIONS(4978),
    [sym_string] = ACTIONS(4978),
    [sym_cstring] = ACTIONS(4978),
    [sym_dstring] = ACTIONS(4978),
    [sym_wstring] = ACTIONS(4978),
    [sym_noreturn] = ACTIONS(4978),
    [sym_true] = ACTIONS(4978),
    [sym_false] = ACTIONS(4978),
    [sym_null] = ACTIONS(4978),
    [sym_super] = ACTIONS(4978),
    [sym_this] = ACTIONS(4978),
    [sym_abstract] = ACTIONS(4978),
    [sym_alias] = ACTIONS(4978),
    [sym_align] = ACTIONS(4978),
    [sym_asm] = ACTIONS(4978),
    [sym_assert] = ACTIONS(4978),
    [sym_auto] = ACTIONS(4978),
    [sym_break] = ACTIONS(4978),
    [sym_case] = ACTIONS(4978),
    [sym_cast] = ACTIONS(4978),
    [sym_class] = ACTIONS(4978),
    [sym_const] = ACTIONS(4978),
    [sym_continue] = ACTIONS(4978),
    [sym_debug] = ACTIONS(4978),
    [sym_default] = ACTIONS(4978),
    [sym_delegate] = ACTIONS(4978),
    [sym_delete] = ACTIONS(4978),
    [sym_deprecated] = ACTIONS(4978),
    [sym_do] = ACTIONS(4978),
    [sym_else] = ACTIONS(4978),
    [sym_enum] = ACTIONS(4978),
    [sym_export] = ACTIONS(4978),
    [sym_extern] = ACTIONS(4978),
    [sym_final] = ACTIONS(4978),
    [sym_for] = ACTIONS(4978),
    [sym_foreach] = ACTIONS(4978),
    [sym_foreach_reverse] = ACTIONS(4978),
    [sym_function] = ACTIONS(4978),
    [sym_goto] = ACTIONS(4978),
    [sym_if] = ACTIONS(4978),
    [sym_immutable] = ACTIONS(4978),
    [sym_import] = ACTIONS(4978),
    [sym_in] = ACTIONS(4978),
    [sym_inout] = ACTIONS(4978),
    [sym_interface] = ACTIONS(4978),
    [sym_invariant] = ACTIONS(4978),
    [sym_is] = ACTIONS(4978),
    [sym_mixin] = ACTIONS(4978),
    [sym_new] = ACTIONS(4978),
    [sym_nothrow] = ACTIONS(4978),
    [sym_out] = ACTIONS(4978),
    [sym_override] = ACTIONS(4978),
    [sym_package] = ACTIONS(4978),
    [sym_pragma] = ACTIONS(4978),
    [sym_private] = ACTIONS(4978),
    [sym_protected] = ACTIONS(4978),
    [sym_public] = ACTIONS(4978),
    [sym_pure] = ACTIONS(4978),
    [sym_ref] = ACTIONS(4978),
    [sym_return] = ACTIONS(4978),
    [sym_scope] = ACTIONS(4978),
    [sym_shared] = ACTIONS(4978),
    [sym_static] = ACTIONS(4978),
    [sym_struct] = ACTIONS(4978),
    [sym_switch] = ACTIONS(4978),
    [sym_synchronized] = ACTIONS(4978),
    [sym_template] = ACTIONS(4978),
    [sym_throw] = ACTIONS(4978),
    [sym_try] = ACTIONS(4978),
    [sym_typeid] = ACTIONS(4978),
    [sym_typeof] = ACTIONS(4978),
    [sym_union] = ACTIONS(4978),
    [sym_unittest] = ACTIONS(4978),
    [sym_version] = ACTIONS(4978),
    [sym_while] = ACTIONS(4978),
    [sym_with] = ACTIONS(4978),
    [sym_gshared] = ACTIONS(4978),
    [sym_traits] = ACTIONS(4978),
    [sym_vector] = ACTIONS(4978),
    [sym_void] = ACTIONS(4978),
    [anon_sym_BQUOTE] = ACTIONS(4980),
    [anon_sym_r_DQUOTE] = ACTIONS(4980),
    [anon_sym_x_DQUOTE] = ACTIONS(4980),
    [anon_sym_DQUOTE] = ACTIONS(4980),
    [anon_sym_i_BQUOTE] = ACTIONS(4980),
    [anon_sym_i_DQUOTE] = ACTIONS(4980),
    [anon_sym_iq_LBRACE] = ACTIONS(4980),
    [aux_sym_char_literal_token1] = ACTIONS(4980),
    [anon_sym_SQUOTE] = ACTIONS(4978),
    [anon_sym___DATE__] = ACTIONS(4978),
    [anon_sym___FILE__] = ACTIONS(4978),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4978),
    [anon_sym___FUNCTION__] = ACTIONS(4978),
    [anon_sym___LINE__] = ACTIONS(4978),
    [anon_sym___MODULE__] = ACTIONS(4978),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4978),
    [anon_sym___TIME__] = ACTIONS(4978),
    [anon_sym___TIMESTAMP__] = ACTIONS(4978),
    [anon_sym___VENDOR__] = ACTIONS(4978),
    [anon_sym___VERSION__] = ACTIONS(4978),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4980),
    [sym_float_literal] = ACTIONS(4980),
    [sym__string] = ACTIONS(4980),
  },
  [1595] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_asm] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_break] = ACTIONS(2665),
    [sym_case] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_continue] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_default] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_for] = ACTIONS(2665),
    [sym_foreach] = ACTIONS(2665),
    [sym_foreach_reverse] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_goto] = ACTIONS(2665),
    [sym_if] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_new] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_out] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_switch] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_throw] = ACTIONS(2665),
    [sym_try] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_with] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [1596] = {
    [sym_identifier] = ACTIONS(4594),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4596),
    [anon_sym_RBRACE] = ACTIONS(4596),
    [anon_sym_LBRACE] = ACTIONS(4596),
    [anon_sym_DOT] = ACTIONS(4596),
    [anon_sym_AMP] = ACTIONS(4596),
    [anon_sym_DASH] = ACTIONS(4594),
    [anon_sym_DASH_DASH] = ACTIONS(4596),
    [anon_sym_PLUS] = ACTIONS(4594),
    [anon_sym_PLUS_PLUS] = ACTIONS(4596),
    [anon_sym_BANG] = ACTIONS(4596),
    [anon_sym_LPAREN] = ACTIONS(4596),
    [anon_sym_RPAREN] = ACTIONS(4596),
    [anon_sym_LBRACK] = ACTIONS(4596),
    [anon_sym_SEMI] = ACTIONS(4596),
    [anon_sym_DOLLAR] = ACTIONS(4596),
    [anon_sym_STAR] = ACTIONS(4596),
    [anon_sym_TILDE] = ACTIONS(4596),
    [anon_sym_AT] = ACTIONS(4596),
    [sym_bool] = ACTIONS(4594),
    [sym_byte] = ACTIONS(4594),
    [sym_ubyte] = ACTIONS(4594),
    [sym_char] = ACTIONS(4594),
    [sym_short] = ACTIONS(4594),
    [sym_ushort] = ACTIONS(4594),
    [sym_int] = ACTIONS(4594),
    [sym_uint] = ACTIONS(4594),
    [sym_long] = ACTIONS(4594),
    [sym_ulong] = ACTIONS(4594),
    [sym_cent] = ACTIONS(4594),
    [sym_ucent] = ACTIONS(4594),
    [sym_wchar] = ACTIONS(4594),
    [sym_dchar] = ACTIONS(4594),
    [sym_float] = ACTIONS(4594),
    [sym_double] = ACTIONS(4594),
    [sym_real] = ACTIONS(4594),
    [sym_ifloat] = ACTIONS(4594),
    [sym_idouble] = ACTIONS(4594),
    [sym_ireal] = ACTIONS(4594),
    [sym_cfloat] = ACTIONS(4594),
    [sym_cdouble] = ACTIONS(4594),
    [sym_creal] = ACTIONS(4594),
    [sym_size_t] = ACTIONS(4594),
    [sym_ptrdiff_t] = ACTIONS(4594),
    [sym_string] = ACTIONS(4594),
    [sym_cstring] = ACTIONS(4594),
    [sym_dstring] = ACTIONS(4594),
    [sym_wstring] = ACTIONS(4594),
    [sym_noreturn] = ACTIONS(4594),
    [sym_true] = ACTIONS(4594),
    [sym_false] = ACTIONS(4594),
    [sym_null] = ACTIONS(4594),
    [sym_super] = ACTIONS(4594),
    [sym_this] = ACTIONS(4594),
    [sym_abstract] = ACTIONS(4594),
    [sym_alias] = ACTIONS(4594),
    [sym_align] = ACTIONS(4594),
    [sym_asm] = ACTIONS(4594),
    [sym_assert] = ACTIONS(4594),
    [sym_auto] = ACTIONS(4594),
    [sym_break] = ACTIONS(4594),
    [sym_case] = ACTIONS(4594),
    [sym_cast] = ACTIONS(4594),
    [sym_class] = ACTIONS(4594),
    [sym_const] = ACTIONS(4594),
    [sym_continue] = ACTIONS(4594),
    [sym_debug] = ACTIONS(4594),
    [sym_default] = ACTIONS(4594),
    [sym_delegate] = ACTIONS(4594),
    [sym_delete] = ACTIONS(4594),
    [sym_deprecated] = ACTIONS(4594),
    [sym_do] = ACTIONS(4594),
    [sym_else] = ACTIONS(4594),
    [sym_enum] = ACTIONS(4594),
    [sym_export] = ACTIONS(4594),
    [sym_extern] = ACTIONS(4594),
    [sym_final] = ACTIONS(4594),
    [sym_for] = ACTIONS(4594),
    [sym_foreach] = ACTIONS(4594),
    [sym_foreach_reverse] = ACTIONS(4594),
    [sym_function] = ACTIONS(4594),
    [sym_goto] = ACTIONS(4594),
    [sym_if] = ACTIONS(4594),
    [sym_immutable] = ACTIONS(4594),
    [sym_import] = ACTIONS(4594),
    [sym_in] = ACTIONS(4594),
    [sym_inout] = ACTIONS(4594),
    [sym_interface] = ACTIONS(4594),
    [sym_invariant] = ACTIONS(4594),
    [sym_is] = ACTIONS(4594),
    [sym_mixin] = ACTIONS(4594),
    [sym_new] = ACTIONS(4594),
    [sym_nothrow] = ACTIONS(4594),
    [sym_out] = ACTIONS(4594),
    [sym_override] = ACTIONS(4594),
    [sym_package] = ACTIONS(4594),
    [sym_pragma] = ACTIONS(4594),
    [sym_private] = ACTIONS(4594),
    [sym_protected] = ACTIONS(4594),
    [sym_public] = ACTIONS(4594),
    [sym_pure] = ACTIONS(4594),
    [sym_ref] = ACTIONS(4594),
    [sym_return] = ACTIONS(4594),
    [sym_scope] = ACTIONS(4594),
    [sym_shared] = ACTIONS(4594),
    [sym_static] = ACTIONS(4594),
    [sym_struct] = ACTIONS(4594),
    [sym_switch] = ACTIONS(4594),
    [sym_synchronized] = ACTIONS(4594),
    [sym_template] = ACTIONS(4594),
    [sym_throw] = ACTIONS(4594),
    [sym_try] = ACTIONS(4594),
    [sym_typeid] = ACTIONS(4594),
    [sym_typeof] = ACTIONS(4594),
    [sym_union] = ACTIONS(4594),
    [sym_unittest] = ACTIONS(4594),
    [sym_version] = ACTIONS(4594),
    [sym_while] = ACTIONS(4594),
    [sym_with] = ACTIONS(4594),
    [sym_gshared] = ACTIONS(4594),
    [sym_traits] = ACTIONS(4594),
    [sym_vector] = ACTIONS(4594),
    [sym_void] = ACTIONS(4594),
    [anon_sym_BQUOTE] = ACTIONS(4596),
    [anon_sym_r_DQUOTE] = ACTIONS(4596),
    [anon_sym_x_DQUOTE] = ACTIONS(4596),
    [anon_sym_DQUOTE] = ACTIONS(4596),
    [anon_sym_i_BQUOTE] = ACTIONS(4596),
    [anon_sym_i_DQUOTE] = ACTIONS(4596),
    [anon_sym_iq_LBRACE] = ACTIONS(4596),
    [aux_sym_char_literal_token1] = ACTIONS(4596),
    [anon_sym_SQUOTE] = ACTIONS(4594),
    [anon_sym___DATE__] = ACTIONS(4594),
    [anon_sym___FILE__] = ACTIONS(4594),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4594),
    [anon_sym___FUNCTION__] = ACTIONS(4594),
    [anon_sym___LINE__] = ACTIONS(4594),
    [anon_sym___MODULE__] = ACTIONS(4594),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4594),
    [anon_sym___TIME__] = ACTIONS(4594),
    [anon_sym___TIMESTAMP__] = ACTIONS(4594),
    [anon_sym___VENDOR__] = ACTIONS(4594),
    [anon_sym___VERSION__] = ACTIONS(4594),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4596),
    [sym_float_literal] = ACTIONS(4596),
    [sym__string] = ACTIONS(4596),
  },
  [1597] = {
    [sym_identifier] = ACTIONS(4880),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4882),
    [anon_sym_RBRACE] = ACTIONS(4882),
    [anon_sym_LBRACE] = ACTIONS(4882),
    [anon_sym_DOT] = ACTIONS(4882),
    [anon_sym_AMP] = ACTIONS(4882),
    [anon_sym_DASH] = ACTIONS(4880),
    [anon_sym_DASH_DASH] = ACTIONS(4882),
    [anon_sym_PLUS] = ACTIONS(4880),
    [anon_sym_PLUS_PLUS] = ACTIONS(4882),
    [anon_sym_BANG] = ACTIONS(4882),
    [anon_sym_LPAREN] = ACTIONS(4882),
    [anon_sym_RPAREN] = ACTIONS(4882),
    [anon_sym_LBRACK] = ACTIONS(4882),
    [anon_sym_SEMI] = ACTIONS(4882),
    [anon_sym_DOLLAR] = ACTIONS(4882),
    [anon_sym_STAR] = ACTIONS(4882),
    [anon_sym_TILDE] = ACTIONS(4882),
    [anon_sym_AT] = ACTIONS(4882),
    [sym_bool] = ACTIONS(4880),
    [sym_byte] = ACTIONS(4880),
    [sym_ubyte] = ACTIONS(4880),
    [sym_char] = ACTIONS(4880),
    [sym_short] = ACTIONS(4880),
    [sym_ushort] = ACTIONS(4880),
    [sym_int] = ACTIONS(4880),
    [sym_uint] = ACTIONS(4880),
    [sym_long] = ACTIONS(4880),
    [sym_ulong] = ACTIONS(4880),
    [sym_cent] = ACTIONS(4880),
    [sym_ucent] = ACTIONS(4880),
    [sym_wchar] = ACTIONS(4880),
    [sym_dchar] = ACTIONS(4880),
    [sym_float] = ACTIONS(4880),
    [sym_double] = ACTIONS(4880),
    [sym_real] = ACTIONS(4880),
    [sym_ifloat] = ACTIONS(4880),
    [sym_idouble] = ACTIONS(4880),
    [sym_ireal] = ACTIONS(4880),
    [sym_cfloat] = ACTIONS(4880),
    [sym_cdouble] = ACTIONS(4880),
    [sym_creal] = ACTIONS(4880),
    [sym_size_t] = ACTIONS(4880),
    [sym_ptrdiff_t] = ACTIONS(4880),
    [sym_string] = ACTIONS(4880),
    [sym_cstring] = ACTIONS(4880),
    [sym_dstring] = ACTIONS(4880),
    [sym_wstring] = ACTIONS(4880),
    [sym_noreturn] = ACTIONS(4880),
    [sym_true] = ACTIONS(4880),
    [sym_false] = ACTIONS(4880),
    [sym_null] = ACTIONS(4880),
    [sym_super] = ACTIONS(4880),
    [sym_this] = ACTIONS(4880),
    [sym_abstract] = ACTIONS(4880),
    [sym_alias] = ACTIONS(4880),
    [sym_align] = ACTIONS(4880),
    [sym_asm] = ACTIONS(4880),
    [sym_assert] = ACTIONS(4880),
    [sym_auto] = ACTIONS(4880),
    [sym_break] = ACTIONS(4880),
    [sym_case] = ACTIONS(4880),
    [sym_cast] = ACTIONS(4880),
    [sym_class] = ACTIONS(4880),
    [sym_const] = ACTIONS(4880),
    [sym_continue] = ACTIONS(4880),
    [sym_debug] = ACTIONS(4880),
    [sym_default] = ACTIONS(4880),
    [sym_delegate] = ACTIONS(4880),
    [sym_delete] = ACTIONS(4880),
    [sym_deprecated] = ACTIONS(4880),
    [sym_do] = ACTIONS(4880),
    [sym_else] = ACTIONS(4880),
    [sym_enum] = ACTIONS(4880),
    [sym_export] = ACTIONS(4880),
    [sym_extern] = ACTIONS(4880),
    [sym_final] = ACTIONS(4880),
    [sym_for] = ACTIONS(4880),
    [sym_foreach] = ACTIONS(4880),
    [sym_foreach_reverse] = ACTIONS(4880),
    [sym_function] = ACTIONS(4880),
    [sym_goto] = ACTIONS(4880),
    [sym_if] = ACTIONS(4880),
    [sym_immutable] = ACTIONS(4880),
    [sym_import] = ACTIONS(4880),
    [sym_in] = ACTIONS(4880),
    [sym_inout] = ACTIONS(4880),
    [sym_interface] = ACTIONS(4880),
    [sym_invariant] = ACTIONS(4880),
    [sym_is] = ACTIONS(4880),
    [sym_mixin] = ACTIONS(4880),
    [sym_new] = ACTIONS(4880),
    [sym_nothrow] = ACTIONS(4880),
    [sym_out] = ACTIONS(4880),
    [sym_override] = ACTIONS(4880),
    [sym_package] = ACTIONS(4880),
    [sym_pragma] = ACTIONS(4880),
    [sym_private] = ACTIONS(4880),
    [sym_protected] = ACTIONS(4880),
    [sym_public] = ACTIONS(4880),
    [sym_pure] = ACTIONS(4880),
    [sym_ref] = ACTIONS(4880),
    [sym_return] = ACTIONS(4880),
    [sym_scope] = ACTIONS(4880),
    [sym_shared] = ACTIONS(4880),
    [sym_static] = ACTIONS(4880),
    [sym_struct] = ACTIONS(4880),
    [sym_switch] = ACTIONS(4880),
    [sym_synchronized] = ACTIONS(4880),
    [sym_template] = ACTIONS(4880),
    [sym_throw] = ACTIONS(4880),
    [sym_try] = ACTIONS(4880),
    [sym_typeid] = ACTIONS(4880),
    [sym_typeof] = ACTIONS(4880),
    [sym_union] = ACTIONS(4880),
    [sym_unittest] = ACTIONS(4880),
    [sym_version] = ACTIONS(4880),
    [sym_while] = ACTIONS(4880),
    [sym_with] = ACTIONS(4880),
    [sym_gshared] = ACTIONS(4880),
    [sym_traits] = ACTIONS(4880),
    [sym_vector] = ACTIONS(4880),
    [sym_void] = ACTIONS(4880),
    [anon_sym_BQUOTE] = ACTIONS(4882),
    [anon_sym_r_DQUOTE] = ACTIONS(4882),
    [anon_sym_x_DQUOTE] = ACTIONS(4882),
    [anon_sym_DQUOTE] = ACTIONS(4882),
    [anon_sym_i_BQUOTE] = ACTIONS(4882),
    [anon_sym_i_DQUOTE] = ACTIONS(4882),
    [anon_sym_iq_LBRACE] = ACTIONS(4882),
    [aux_sym_char_literal_token1] = ACTIONS(4882),
    [anon_sym_SQUOTE] = ACTIONS(4880),
    [anon_sym___DATE__] = ACTIONS(4880),
    [anon_sym___FILE__] = ACTIONS(4880),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4880),
    [anon_sym___FUNCTION__] = ACTIONS(4880),
    [anon_sym___LINE__] = ACTIONS(4880),
    [anon_sym___MODULE__] = ACTIONS(4880),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4880),
    [anon_sym___TIME__] = ACTIONS(4880),
    [anon_sym___TIMESTAMP__] = ACTIONS(4880),
    [anon_sym___VENDOR__] = ACTIONS(4880),
    [anon_sym___VERSION__] = ACTIONS(4880),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4882),
    [sym_float_literal] = ACTIONS(4882),
    [sym__string] = ACTIONS(4882),
  },
  [1598] = {
    [sym_identifier] = ACTIONS(4884),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4886),
    [anon_sym_RBRACE] = ACTIONS(4886),
    [anon_sym_LBRACE] = ACTIONS(4886),
    [anon_sym_DOT] = ACTIONS(4886),
    [anon_sym_AMP] = ACTIONS(4886),
    [anon_sym_DASH] = ACTIONS(4884),
    [anon_sym_DASH_DASH] = ACTIONS(4886),
    [anon_sym_PLUS] = ACTIONS(4884),
    [anon_sym_PLUS_PLUS] = ACTIONS(4886),
    [anon_sym_BANG] = ACTIONS(4886),
    [anon_sym_LPAREN] = ACTIONS(4886),
    [anon_sym_RPAREN] = ACTIONS(4886),
    [anon_sym_LBRACK] = ACTIONS(4886),
    [anon_sym_SEMI] = ACTIONS(4886),
    [anon_sym_DOLLAR] = ACTIONS(4886),
    [anon_sym_STAR] = ACTIONS(4886),
    [anon_sym_TILDE] = ACTIONS(4886),
    [anon_sym_AT] = ACTIONS(4886),
    [sym_bool] = ACTIONS(4884),
    [sym_byte] = ACTIONS(4884),
    [sym_ubyte] = ACTIONS(4884),
    [sym_char] = ACTIONS(4884),
    [sym_short] = ACTIONS(4884),
    [sym_ushort] = ACTIONS(4884),
    [sym_int] = ACTIONS(4884),
    [sym_uint] = ACTIONS(4884),
    [sym_long] = ACTIONS(4884),
    [sym_ulong] = ACTIONS(4884),
    [sym_cent] = ACTIONS(4884),
    [sym_ucent] = ACTIONS(4884),
    [sym_wchar] = ACTIONS(4884),
    [sym_dchar] = ACTIONS(4884),
    [sym_float] = ACTIONS(4884),
    [sym_double] = ACTIONS(4884),
    [sym_real] = ACTIONS(4884),
    [sym_ifloat] = ACTIONS(4884),
    [sym_idouble] = ACTIONS(4884),
    [sym_ireal] = ACTIONS(4884),
    [sym_cfloat] = ACTIONS(4884),
    [sym_cdouble] = ACTIONS(4884),
    [sym_creal] = ACTIONS(4884),
    [sym_size_t] = ACTIONS(4884),
    [sym_ptrdiff_t] = ACTIONS(4884),
    [sym_string] = ACTIONS(4884),
    [sym_cstring] = ACTIONS(4884),
    [sym_dstring] = ACTIONS(4884),
    [sym_wstring] = ACTIONS(4884),
    [sym_noreturn] = ACTIONS(4884),
    [sym_true] = ACTIONS(4884),
    [sym_false] = ACTIONS(4884),
    [sym_null] = ACTIONS(4884),
    [sym_super] = ACTIONS(4884),
    [sym_this] = ACTIONS(4884),
    [sym_abstract] = ACTIONS(4884),
    [sym_alias] = ACTIONS(4884),
    [sym_align] = ACTIONS(4884),
    [sym_asm] = ACTIONS(4884),
    [sym_assert] = ACTIONS(4884),
    [sym_auto] = ACTIONS(4884),
    [sym_break] = ACTIONS(4884),
    [sym_case] = ACTIONS(4884),
    [sym_cast] = ACTIONS(4884),
    [sym_class] = ACTIONS(4884),
    [sym_const] = ACTIONS(4884),
    [sym_continue] = ACTIONS(4884),
    [sym_debug] = ACTIONS(4884),
    [sym_default] = ACTIONS(4884),
    [sym_delegate] = ACTIONS(4884),
    [sym_delete] = ACTIONS(4884),
    [sym_deprecated] = ACTIONS(4884),
    [sym_do] = ACTIONS(4884),
    [sym_else] = ACTIONS(4884),
    [sym_enum] = ACTIONS(4884),
    [sym_export] = ACTIONS(4884),
    [sym_extern] = ACTIONS(4884),
    [sym_final] = ACTIONS(4884),
    [sym_for] = ACTIONS(4884),
    [sym_foreach] = ACTIONS(4884),
    [sym_foreach_reverse] = ACTIONS(4884),
    [sym_function] = ACTIONS(4884),
    [sym_goto] = ACTIONS(4884),
    [sym_if] = ACTIONS(4884),
    [sym_immutable] = ACTIONS(4884),
    [sym_import] = ACTIONS(4884),
    [sym_in] = ACTIONS(4884),
    [sym_inout] = ACTIONS(4884),
    [sym_interface] = ACTIONS(4884),
    [sym_invariant] = ACTIONS(4884),
    [sym_is] = ACTIONS(4884),
    [sym_mixin] = ACTIONS(4884),
    [sym_new] = ACTIONS(4884),
    [sym_nothrow] = ACTIONS(4884),
    [sym_out] = ACTIONS(4884),
    [sym_override] = ACTIONS(4884),
    [sym_package] = ACTIONS(4884),
    [sym_pragma] = ACTIONS(4884),
    [sym_private] = ACTIONS(4884),
    [sym_protected] = ACTIONS(4884),
    [sym_public] = ACTIONS(4884),
    [sym_pure] = ACTIONS(4884),
    [sym_ref] = ACTIONS(4884),
    [sym_return] = ACTIONS(4884),
    [sym_scope] = ACTIONS(4884),
    [sym_shared] = ACTIONS(4884),
    [sym_static] = ACTIONS(4884),
    [sym_struct] = ACTIONS(4884),
    [sym_switch] = ACTIONS(4884),
    [sym_synchronized] = ACTIONS(4884),
    [sym_template] = ACTIONS(4884),
    [sym_throw] = ACTIONS(4884),
    [sym_try] = ACTIONS(4884),
    [sym_typeid] = ACTIONS(4884),
    [sym_typeof] = ACTIONS(4884),
    [sym_union] = ACTIONS(4884),
    [sym_unittest] = ACTIONS(4884),
    [sym_version] = ACTIONS(4884),
    [sym_while] = ACTIONS(4884),
    [sym_with] = ACTIONS(4884),
    [sym_gshared] = ACTIONS(4884),
    [sym_traits] = ACTIONS(4884),
    [sym_vector] = ACTIONS(4884),
    [sym_void] = ACTIONS(4884),
    [anon_sym_BQUOTE] = ACTIONS(4886),
    [anon_sym_r_DQUOTE] = ACTIONS(4886),
    [anon_sym_x_DQUOTE] = ACTIONS(4886),
    [anon_sym_DQUOTE] = ACTIONS(4886),
    [anon_sym_i_BQUOTE] = ACTIONS(4886),
    [anon_sym_i_DQUOTE] = ACTIONS(4886),
    [anon_sym_iq_LBRACE] = ACTIONS(4886),
    [aux_sym_char_literal_token1] = ACTIONS(4886),
    [anon_sym_SQUOTE] = ACTIONS(4884),
    [anon_sym___DATE__] = ACTIONS(4884),
    [anon_sym___FILE__] = ACTIONS(4884),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4884),
    [anon_sym___FUNCTION__] = ACTIONS(4884),
    [anon_sym___LINE__] = ACTIONS(4884),
    [anon_sym___MODULE__] = ACTIONS(4884),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4884),
    [anon_sym___TIME__] = ACTIONS(4884),
    [anon_sym___TIMESTAMP__] = ACTIONS(4884),
    [anon_sym___VENDOR__] = ACTIONS(4884),
    [anon_sym___VERSION__] = ACTIONS(4884),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4886),
    [sym_float_literal] = ACTIONS(4886),
    [sym__string] = ACTIONS(4886),
  },
  [1599] = {
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_RBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [anon_sym_AT] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_abstract] = ACTIONS(4149),
    [sym_alias] = ACTIONS(4149),
    [sym_align] = ACTIONS(4149),
    [sym_asm] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_break] = ACTIONS(4149),
    [sym_case] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_class] = ACTIONS(4149),
    [sym_const] = ACTIONS(4149),
    [sym_continue] = ACTIONS(4149),
    [sym_debug] = ACTIONS(4149),
    [sym_default] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_deprecated] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_else] = ACTIONS(4149),
    [sym_enum] = ACTIONS(4149),
    [sym_export] = ACTIONS(4149),
    [sym_extern] = ACTIONS(4149),
    [sym_final] = ACTIONS(4149),
    [sym_for] = ACTIONS(4149),
    [sym_foreach] = ACTIONS(4149),
    [sym_foreach_reverse] = ACTIONS(4149),
    [sym_function] = ACTIONS(4149),
    [sym_goto] = ACTIONS(4149),
    [sym_if] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_interface] = ACTIONS(4149),
    [sym_invariant] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_nothrow] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_override] = ACTIONS(4149),
    [sym_package] = ACTIONS(4149),
    [sym_pragma] = ACTIONS(4149),
    [sym_private] = ACTIONS(4149),
    [sym_protected] = ACTIONS(4149),
    [sym_public] = ACTIONS(4149),
    [sym_pure] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_return] = ACTIONS(4149),
    [sym_scope] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_static] = ACTIONS(4149),
    [sym_struct] = ACTIONS(4149),
    [sym_switch] = ACTIONS(4149),
    [sym_synchronized] = ACTIONS(4149),
    [sym_template] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_try] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_union] = ACTIONS(4149),
    [sym_unittest] = ACTIONS(4149),
    [sym_version] = ACTIONS(4149),
    [sym_while] = ACTIONS(4149),
    [sym_with] = ACTIONS(4149),
    [sym_gshared] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [1600] = {
    [sym_identifier] = ACTIONS(4918),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4920),
    [anon_sym_RBRACE] = ACTIONS(4920),
    [anon_sym_LBRACE] = ACTIONS(4920),
    [anon_sym_DOT] = ACTIONS(4920),
    [anon_sym_AMP] = ACTIONS(4920),
    [anon_sym_DASH] = ACTIONS(4918),
    [anon_sym_DASH_DASH] = ACTIONS(4920),
    [anon_sym_PLUS] = ACTIONS(4918),
    [anon_sym_PLUS_PLUS] = ACTIONS(4920),
    [anon_sym_BANG] = ACTIONS(4920),
    [anon_sym_LPAREN] = ACTIONS(4920),
    [anon_sym_RPAREN] = ACTIONS(4920),
    [anon_sym_LBRACK] = ACTIONS(4920),
    [anon_sym_SEMI] = ACTIONS(4920),
    [anon_sym_DOLLAR] = ACTIONS(4920),
    [anon_sym_STAR] = ACTIONS(4920),
    [anon_sym_TILDE] = ACTIONS(4920),
    [anon_sym_AT] = ACTIONS(4920),
    [sym_bool] = ACTIONS(4918),
    [sym_byte] = ACTIONS(4918),
    [sym_ubyte] = ACTIONS(4918),
    [sym_char] = ACTIONS(4918),
    [sym_short] = ACTIONS(4918),
    [sym_ushort] = ACTIONS(4918),
    [sym_int] = ACTIONS(4918),
    [sym_uint] = ACTIONS(4918),
    [sym_long] = ACTIONS(4918),
    [sym_ulong] = ACTIONS(4918),
    [sym_cent] = ACTIONS(4918),
    [sym_ucent] = ACTIONS(4918),
    [sym_wchar] = ACTIONS(4918),
    [sym_dchar] = ACTIONS(4918),
    [sym_float] = ACTIONS(4918),
    [sym_double] = ACTIONS(4918),
    [sym_real] = ACTIONS(4918),
    [sym_ifloat] = ACTIONS(4918),
    [sym_idouble] = ACTIONS(4918),
    [sym_ireal] = ACTIONS(4918),
    [sym_cfloat] = ACTIONS(4918),
    [sym_cdouble] = ACTIONS(4918),
    [sym_creal] = ACTIONS(4918),
    [sym_size_t] = ACTIONS(4918),
    [sym_ptrdiff_t] = ACTIONS(4918),
    [sym_string] = ACTIONS(4918),
    [sym_cstring] = ACTIONS(4918),
    [sym_dstring] = ACTIONS(4918),
    [sym_wstring] = ACTIONS(4918),
    [sym_noreturn] = ACTIONS(4918),
    [sym_true] = ACTIONS(4918),
    [sym_false] = ACTIONS(4918),
    [sym_null] = ACTIONS(4918),
    [sym_super] = ACTIONS(4918),
    [sym_this] = ACTIONS(4918),
    [sym_abstract] = ACTIONS(4918),
    [sym_alias] = ACTIONS(4918),
    [sym_align] = ACTIONS(4918),
    [sym_asm] = ACTIONS(4918),
    [sym_assert] = ACTIONS(4918),
    [sym_auto] = ACTIONS(4918),
    [sym_break] = ACTIONS(4918),
    [sym_case] = ACTIONS(4918),
    [sym_cast] = ACTIONS(4918),
    [sym_class] = ACTIONS(4918),
    [sym_const] = ACTIONS(4918),
    [sym_continue] = ACTIONS(4918),
    [sym_debug] = ACTIONS(4918),
    [sym_default] = ACTIONS(4918),
    [sym_delegate] = ACTIONS(4918),
    [sym_delete] = ACTIONS(4918),
    [sym_deprecated] = ACTIONS(4918),
    [sym_do] = ACTIONS(4918),
    [sym_else] = ACTIONS(4918),
    [sym_enum] = ACTIONS(4918),
    [sym_export] = ACTIONS(4918),
    [sym_extern] = ACTIONS(4918),
    [sym_final] = ACTIONS(4918),
    [sym_for] = ACTIONS(4918),
    [sym_foreach] = ACTIONS(4918),
    [sym_foreach_reverse] = ACTIONS(4918),
    [sym_function] = ACTIONS(4918),
    [sym_goto] = ACTIONS(4918),
    [sym_if] = ACTIONS(4918),
    [sym_immutable] = ACTIONS(4918),
    [sym_import] = ACTIONS(4918),
    [sym_in] = ACTIONS(4918),
    [sym_inout] = ACTIONS(4918),
    [sym_interface] = ACTIONS(4918),
    [sym_invariant] = ACTIONS(4918),
    [sym_is] = ACTIONS(4918),
    [sym_mixin] = ACTIONS(4918),
    [sym_new] = ACTIONS(4918),
    [sym_nothrow] = ACTIONS(4918),
    [sym_out] = ACTIONS(4918),
    [sym_override] = ACTIONS(4918),
    [sym_package] = ACTIONS(4918),
    [sym_pragma] = ACTIONS(4918),
    [sym_private] = ACTIONS(4918),
    [sym_protected] = ACTIONS(4918),
    [sym_public] = ACTIONS(4918),
    [sym_pure] = ACTIONS(4918),
    [sym_ref] = ACTIONS(4918),
    [sym_return] = ACTIONS(4918),
    [sym_scope] = ACTIONS(4918),
    [sym_shared] = ACTIONS(4918),
    [sym_static] = ACTIONS(4918),
    [sym_struct] = ACTIONS(4918),
    [sym_switch] = ACTIONS(4918),
    [sym_synchronized] = ACTIONS(4918),
    [sym_template] = ACTIONS(4918),
    [sym_throw] = ACTIONS(4918),
    [sym_try] = ACTIONS(4918),
    [sym_typeid] = ACTIONS(4918),
    [sym_typeof] = ACTIONS(4918),
    [sym_union] = ACTIONS(4918),
    [sym_unittest] = ACTIONS(4918),
    [sym_version] = ACTIONS(4918),
    [sym_while] = ACTIONS(4918),
    [sym_with] = ACTIONS(4918),
    [sym_gshared] = ACTIONS(4918),
    [sym_traits] = ACTIONS(4918),
    [sym_vector] = ACTIONS(4918),
    [sym_void] = ACTIONS(4918),
    [anon_sym_BQUOTE] = ACTIONS(4920),
    [anon_sym_r_DQUOTE] = ACTIONS(4920),
    [anon_sym_x_DQUOTE] = ACTIONS(4920),
    [anon_sym_DQUOTE] = ACTIONS(4920),
    [anon_sym_i_BQUOTE] = ACTIONS(4920),
    [anon_sym_i_DQUOTE] = ACTIONS(4920),
    [anon_sym_iq_LBRACE] = ACTIONS(4920),
    [aux_sym_char_literal_token1] = ACTIONS(4920),
    [anon_sym_SQUOTE] = ACTIONS(4918),
    [anon_sym___DATE__] = ACTIONS(4918),
    [anon_sym___FILE__] = ACTIONS(4918),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4918),
    [anon_sym___FUNCTION__] = ACTIONS(4918),
    [anon_sym___LINE__] = ACTIONS(4918),
    [anon_sym___MODULE__] = ACTIONS(4918),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4918),
    [anon_sym___TIME__] = ACTIONS(4918),
    [anon_sym___TIMESTAMP__] = ACTIONS(4918),
    [anon_sym___VENDOR__] = ACTIONS(4918),
    [anon_sym___VERSION__] = ACTIONS(4918),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4920),
    [sym_float_literal] = ACTIONS(4920),
    [sym__string] = ACTIONS(4920),
  },
  [1601] = {
    [sym_identifier] = ACTIONS(4912),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4914),
    [anon_sym_RBRACE] = ACTIONS(4914),
    [anon_sym_LBRACE] = ACTIONS(4914),
    [anon_sym_DOT] = ACTIONS(4914),
    [anon_sym_AMP] = ACTIONS(4914),
    [anon_sym_DASH] = ACTIONS(4912),
    [anon_sym_DASH_DASH] = ACTIONS(4914),
    [anon_sym_PLUS] = ACTIONS(4912),
    [anon_sym_PLUS_PLUS] = ACTIONS(4914),
    [anon_sym_BANG] = ACTIONS(4914),
    [anon_sym_LPAREN] = ACTIONS(4914),
    [anon_sym_RPAREN] = ACTIONS(4914),
    [anon_sym_LBRACK] = ACTIONS(4914),
    [anon_sym_SEMI] = ACTIONS(4914),
    [anon_sym_DOLLAR] = ACTIONS(4914),
    [anon_sym_STAR] = ACTIONS(4914),
    [anon_sym_TILDE] = ACTIONS(4914),
    [anon_sym_AT] = ACTIONS(4914),
    [sym_bool] = ACTIONS(4912),
    [sym_byte] = ACTIONS(4912),
    [sym_ubyte] = ACTIONS(4912),
    [sym_char] = ACTIONS(4912),
    [sym_short] = ACTIONS(4912),
    [sym_ushort] = ACTIONS(4912),
    [sym_int] = ACTIONS(4912),
    [sym_uint] = ACTIONS(4912),
    [sym_long] = ACTIONS(4912),
    [sym_ulong] = ACTIONS(4912),
    [sym_cent] = ACTIONS(4912),
    [sym_ucent] = ACTIONS(4912),
    [sym_wchar] = ACTIONS(4912),
    [sym_dchar] = ACTIONS(4912),
    [sym_float] = ACTIONS(4912),
    [sym_double] = ACTIONS(4912),
    [sym_real] = ACTIONS(4912),
    [sym_ifloat] = ACTIONS(4912),
    [sym_idouble] = ACTIONS(4912),
    [sym_ireal] = ACTIONS(4912),
    [sym_cfloat] = ACTIONS(4912),
    [sym_cdouble] = ACTIONS(4912),
    [sym_creal] = ACTIONS(4912),
    [sym_size_t] = ACTIONS(4912),
    [sym_ptrdiff_t] = ACTIONS(4912),
    [sym_string] = ACTIONS(4912),
    [sym_cstring] = ACTIONS(4912),
    [sym_dstring] = ACTIONS(4912),
    [sym_wstring] = ACTIONS(4912),
    [sym_noreturn] = ACTIONS(4912),
    [sym_true] = ACTIONS(4912),
    [sym_false] = ACTIONS(4912),
    [sym_null] = ACTIONS(4912),
    [sym_super] = ACTIONS(4912),
    [sym_this] = ACTIONS(4912),
    [sym_abstract] = ACTIONS(4912),
    [sym_alias] = ACTIONS(4912),
    [sym_align] = ACTIONS(4912),
    [sym_asm] = ACTIONS(4912),
    [sym_assert] = ACTIONS(4912),
    [sym_auto] = ACTIONS(4912),
    [sym_break] = ACTIONS(4912),
    [sym_case] = ACTIONS(4912),
    [sym_cast] = ACTIONS(4912),
    [sym_class] = ACTIONS(4912),
    [sym_const] = ACTIONS(4912),
    [sym_continue] = ACTIONS(4912),
    [sym_debug] = ACTIONS(4912),
    [sym_default] = ACTIONS(4912),
    [sym_delegate] = ACTIONS(4912),
    [sym_delete] = ACTIONS(4912),
    [sym_deprecated] = ACTIONS(4912),
    [sym_do] = ACTIONS(4912),
    [sym_else] = ACTIONS(4912),
    [sym_enum] = ACTIONS(4912),
    [sym_export] = ACTIONS(4912),
    [sym_extern] = ACTIONS(4912),
    [sym_final] = ACTIONS(4912),
    [sym_for] = ACTIONS(4912),
    [sym_foreach] = ACTIONS(4912),
    [sym_foreach_reverse] = ACTIONS(4912),
    [sym_function] = ACTIONS(4912),
    [sym_goto] = ACTIONS(4912),
    [sym_if] = ACTIONS(4912),
    [sym_immutable] = ACTIONS(4912),
    [sym_import] = ACTIONS(4912),
    [sym_in] = ACTIONS(4912),
    [sym_inout] = ACTIONS(4912),
    [sym_interface] = ACTIONS(4912),
    [sym_invariant] = ACTIONS(4912),
    [sym_is] = ACTIONS(4912),
    [sym_mixin] = ACTIONS(4912),
    [sym_new] = ACTIONS(4912),
    [sym_nothrow] = ACTIONS(4912),
    [sym_out] = ACTIONS(4912),
    [sym_override] = ACTIONS(4912),
    [sym_package] = ACTIONS(4912),
    [sym_pragma] = ACTIONS(4912),
    [sym_private] = ACTIONS(4912),
    [sym_protected] = ACTIONS(4912),
    [sym_public] = ACTIONS(4912),
    [sym_pure] = ACTIONS(4912),
    [sym_ref] = ACTIONS(4912),
    [sym_return] = ACTIONS(4912),
    [sym_scope] = ACTIONS(4912),
    [sym_shared] = ACTIONS(4912),
    [sym_static] = ACTIONS(4912),
    [sym_struct] = ACTIONS(4912),
    [sym_switch] = ACTIONS(4912),
    [sym_synchronized] = ACTIONS(4912),
    [sym_template] = ACTIONS(4912),
    [sym_throw] = ACTIONS(4912),
    [sym_try] = ACTIONS(4912),
    [sym_typeid] = ACTIONS(4912),
    [sym_typeof] = ACTIONS(4912),
    [sym_union] = ACTIONS(4912),
    [sym_unittest] = ACTIONS(4912),
    [sym_version] = ACTIONS(4912),
    [sym_while] = ACTIONS(4912),
    [sym_with] = ACTIONS(4912),
    [sym_gshared] = ACTIONS(4912),
    [sym_traits] = ACTIONS(4912),
    [sym_vector] = ACTIONS(4912),
    [sym_void] = ACTIONS(4912),
    [anon_sym_BQUOTE] = ACTIONS(4914),
    [anon_sym_r_DQUOTE] = ACTIONS(4914),
    [anon_sym_x_DQUOTE] = ACTIONS(4914),
    [anon_sym_DQUOTE] = ACTIONS(4914),
    [anon_sym_i_BQUOTE] = ACTIONS(4914),
    [anon_sym_i_DQUOTE] = ACTIONS(4914),
    [anon_sym_iq_LBRACE] = ACTIONS(4914),
    [aux_sym_char_literal_token1] = ACTIONS(4914),
    [anon_sym_SQUOTE] = ACTIONS(4912),
    [anon_sym___DATE__] = ACTIONS(4912),
    [anon_sym___FILE__] = ACTIONS(4912),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4912),
    [anon_sym___FUNCTION__] = ACTIONS(4912),
    [anon_sym___LINE__] = ACTIONS(4912),
    [anon_sym___MODULE__] = ACTIONS(4912),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4912),
    [anon_sym___TIME__] = ACTIONS(4912),
    [anon_sym___TIMESTAMP__] = ACTIONS(4912),
    [anon_sym___VENDOR__] = ACTIONS(4912),
    [anon_sym___VERSION__] = ACTIONS(4912),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4914),
    [sym_float_literal] = ACTIONS(4914),
    [sym__string] = ACTIONS(4914),
  },
  [1602] = {
    [sym_identifier] = ACTIONS(4374),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4376),
    [anon_sym_RBRACE] = ACTIONS(4376),
    [anon_sym_LBRACE] = ACTIONS(4376),
    [anon_sym_DOT] = ACTIONS(4376),
    [anon_sym_AMP] = ACTIONS(4376),
    [anon_sym_DASH] = ACTIONS(4374),
    [anon_sym_DASH_DASH] = ACTIONS(4376),
    [anon_sym_PLUS] = ACTIONS(4374),
    [anon_sym_PLUS_PLUS] = ACTIONS(4376),
    [anon_sym_BANG] = ACTIONS(4376),
    [anon_sym_LPAREN] = ACTIONS(4376),
    [anon_sym_RPAREN] = ACTIONS(4376),
    [anon_sym_LBRACK] = ACTIONS(4376),
    [anon_sym_SEMI] = ACTIONS(4376),
    [anon_sym_DOLLAR] = ACTIONS(4376),
    [anon_sym_STAR] = ACTIONS(4376),
    [anon_sym_TILDE] = ACTIONS(4376),
    [anon_sym_AT] = ACTIONS(4376),
    [sym_bool] = ACTIONS(4374),
    [sym_byte] = ACTIONS(4374),
    [sym_ubyte] = ACTIONS(4374),
    [sym_char] = ACTIONS(4374),
    [sym_short] = ACTIONS(4374),
    [sym_ushort] = ACTIONS(4374),
    [sym_int] = ACTIONS(4374),
    [sym_uint] = ACTIONS(4374),
    [sym_long] = ACTIONS(4374),
    [sym_ulong] = ACTIONS(4374),
    [sym_cent] = ACTIONS(4374),
    [sym_ucent] = ACTIONS(4374),
    [sym_wchar] = ACTIONS(4374),
    [sym_dchar] = ACTIONS(4374),
    [sym_float] = ACTIONS(4374),
    [sym_double] = ACTIONS(4374),
    [sym_real] = ACTIONS(4374),
    [sym_ifloat] = ACTIONS(4374),
    [sym_idouble] = ACTIONS(4374),
    [sym_ireal] = ACTIONS(4374),
    [sym_cfloat] = ACTIONS(4374),
    [sym_cdouble] = ACTIONS(4374),
    [sym_creal] = ACTIONS(4374),
    [sym_size_t] = ACTIONS(4374),
    [sym_ptrdiff_t] = ACTIONS(4374),
    [sym_string] = ACTIONS(4374),
    [sym_cstring] = ACTIONS(4374),
    [sym_dstring] = ACTIONS(4374),
    [sym_wstring] = ACTIONS(4374),
    [sym_noreturn] = ACTIONS(4374),
    [sym_true] = ACTIONS(4374),
    [sym_false] = ACTIONS(4374),
    [sym_null] = ACTIONS(4374),
    [sym_super] = ACTIONS(4374),
    [sym_this] = ACTIONS(4374),
    [sym_abstract] = ACTIONS(4374),
    [sym_alias] = ACTIONS(4374),
    [sym_align] = ACTIONS(4374),
    [sym_asm] = ACTIONS(4374),
    [sym_assert] = ACTIONS(4374),
    [sym_auto] = ACTIONS(4374),
    [sym_break] = ACTIONS(4374),
    [sym_case] = ACTIONS(4374),
    [sym_cast] = ACTIONS(4374),
    [sym_class] = ACTIONS(4374),
    [sym_const] = ACTIONS(4374),
    [sym_continue] = ACTIONS(4374),
    [sym_debug] = ACTIONS(4374),
    [sym_default] = ACTIONS(4374),
    [sym_delegate] = ACTIONS(4374),
    [sym_delete] = ACTIONS(4374),
    [sym_deprecated] = ACTIONS(4374),
    [sym_do] = ACTIONS(4374),
    [sym_else] = ACTIONS(4374),
    [sym_enum] = ACTIONS(4374),
    [sym_export] = ACTIONS(4374),
    [sym_extern] = ACTIONS(4374),
    [sym_final] = ACTIONS(4374),
    [sym_for] = ACTIONS(4374),
    [sym_foreach] = ACTIONS(4374),
    [sym_foreach_reverse] = ACTIONS(4374),
    [sym_function] = ACTIONS(4374),
    [sym_goto] = ACTIONS(4374),
    [sym_if] = ACTIONS(4374),
    [sym_immutable] = ACTIONS(4374),
    [sym_import] = ACTIONS(4374),
    [sym_in] = ACTIONS(4374),
    [sym_inout] = ACTIONS(4374),
    [sym_interface] = ACTIONS(4374),
    [sym_invariant] = ACTIONS(4374),
    [sym_is] = ACTIONS(4374),
    [sym_mixin] = ACTIONS(4374),
    [sym_new] = ACTIONS(4374),
    [sym_nothrow] = ACTIONS(4374),
    [sym_out] = ACTIONS(4374),
    [sym_override] = ACTIONS(4374),
    [sym_package] = ACTIONS(4374),
    [sym_pragma] = ACTIONS(4374),
    [sym_private] = ACTIONS(4374),
    [sym_protected] = ACTIONS(4374),
    [sym_public] = ACTIONS(4374),
    [sym_pure] = ACTIONS(4374),
    [sym_ref] = ACTIONS(4374),
    [sym_return] = ACTIONS(4374),
    [sym_scope] = ACTIONS(4374),
    [sym_shared] = ACTIONS(4374),
    [sym_static] = ACTIONS(4374),
    [sym_struct] = ACTIONS(4374),
    [sym_switch] = ACTIONS(4374),
    [sym_synchronized] = ACTIONS(4374),
    [sym_template] = ACTIONS(4374),
    [sym_throw] = ACTIONS(4374),
    [sym_try] = ACTIONS(4374),
    [sym_typeid] = ACTIONS(4374),
    [sym_typeof] = ACTIONS(4374),
    [sym_union] = ACTIONS(4374),
    [sym_unittest] = ACTIONS(4374),
    [sym_version] = ACTIONS(4374),
    [sym_while] = ACTIONS(4374),
    [sym_with] = ACTIONS(4374),
    [sym_gshared] = ACTIONS(4374),
    [sym_traits] = ACTIONS(4374),
    [sym_vector] = ACTIONS(4374),
    [sym_void] = ACTIONS(4374),
    [anon_sym_BQUOTE] = ACTIONS(4376),
    [anon_sym_r_DQUOTE] = ACTIONS(4376),
    [anon_sym_x_DQUOTE] = ACTIONS(4376),
    [anon_sym_DQUOTE] = ACTIONS(4376),
    [anon_sym_i_BQUOTE] = ACTIONS(4376),
    [anon_sym_i_DQUOTE] = ACTIONS(4376),
    [anon_sym_iq_LBRACE] = ACTIONS(4376),
    [aux_sym_char_literal_token1] = ACTIONS(4376),
    [anon_sym_SQUOTE] = ACTIONS(4374),
    [anon_sym___DATE__] = ACTIONS(4374),
    [anon_sym___FILE__] = ACTIONS(4374),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4374),
    [anon_sym___FUNCTION__] = ACTIONS(4374),
    [anon_sym___LINE__] = ACTIONS(4374),
    [anon_sym___MODULE__] = ACTIONS(4374),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4374),
    [anon_sym___TIME__] = ACTIONS(4374),
    [anon_sym___TIMESTAMP__] = ACTIONS(4374),
    [anon_sym___VENDOR__] = ACTIONS(4374),
    [anon_sym___VERSION__] = ACTIONS(4374),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4376),
    [sym_float_literal] = ACTIONS(4376),
    [sym__string] = ACTIONS(4376),
  },
  [1603] = {
    [sym_identifier] = ACTIONS(4402),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4404),
    [anon_sym_RBRACE] = ACTIONS(4404),
    [anon_sym_LBRACE] = ACTIONS(4404),
    [anon_sym_DOT] = ACTIONS(4404),
    [anon_sym_AMP] = ACTIONS(4404),
    [anon_sym_DASH] = ACTIONS(4402),
    [anon_sym_DASH_DASH] = ACTIONS(4404),
    [anon_sym_PLUS] = ACTIONS(4402),
    [anon_sym_PLUS_PLUS] = ACTIONS(4404),
    [anon_sym_BANG] = ACTIONS(4404),
    [anon_sym_LPAREN] = ACTIONS(4404),
    [anon_sym_RPAREN] = ACTIONS(4404),
    [anon_sym_LBRACK] = ACTIONS(4404),
    [anon_sym_SEMI] = ACTIONS(4404),
    [anon_sym_DOLLAR] = ACTIONS(4404),
    [anon_sym_STAR] = ACTIONS(4404),
    [anon_sym_TILDE] = ACTIONS(4404),
    [anon_sym_AT] = ACTIONS(4404),
    [sym_bool] = ACTIONS(4402),
    [sym_byte] = ACTIONS(4402),
    [sym_ubyte] = ACTIONS(4402),
    [sym_char] = ACTIONS(4402),
    [sym_short] = ACTIONS(4402),
    [sym_ushort] = ACTIONS(4402),
    [sym_int] = ACTIONS(4402),
    [sym_uint] = ACTIONS(4402),
    [sym_long] = ACTIONS(4402),
    [sym_ulong] = ACTIONS(4402),
    [sym_cent] = ACTIONS(4402),
    [sym_ucent] = ACTIONS(4402),
    [sym_wchar] = ACTIONS(4402),
    [sym_dchar] = ACTIONS(4402),
    [sym_float] = ACTIONS(4402),
    [sym_double] = ACTIONS(4402),
    [sym_real] = ACTIONS(4402),
    [sym_ifloat] = ACTIONS(4402),
    [sym_idouble] = ACTIONS(4402),
    [sym_ireal] = ACTIONS(4402),
    [sym_cfloat] = ACTIONS(4402),
    [sym_cdouble] = ACTIONS(4402),
    [sym_creal] = ACTIONS(4402),
    [sym_size_t] = ACTIONS(4402),
    [sym_ptrdiff_t] = ACTIONS(4402),
    [sym_string] = ACTIONS(4402),
    [sym_cstring] = ACTIONS(4402),
    [sym_dstring] = ACTIONS(4402),
    [sym_wstring] = ACTIONS(4402),
    [sym_noreturn] = ACTIONS(4402),
    [sym_true] = ACTIONS(4402),
    [sym_false] = ACTIONS(4402),
    [sym_null] = ACTIONS(4402),
    [sym_super] = ACTIONS(4402),
    [sym_this] = ACTIONS(4402),
    [sym_abstract] = ACTIONS(4402),
    [sym_alias] = ACTIONS(4402),
    [sym_align] = ACTIONS(4402),
    [sym_asm] = ACTIONS(4402),
    [sym_assert] = ACTIONS(4402),
    [sym_auto] = ACTIONS(4402),
    [sym_break] = ACTIONS(4402),
    [sym_case] = ACTIONS(4402),
    [sym_cast] = ACTIONS(4402),
    [sym_class] = ACTIONS(4402),
    [sym_const] = ACTIONS(4402),
    [sym_continue] = ACTIONS(4402),
    [sym_debug] = ACTIONS(4402),
    [sym_default] = ACTIONS(4402),
    [sym_delegate] = ACTIONS(4402),
    [sym_delete] = ACTIONS(4402),
    [sym_deprecated] = ACTIONS(4402),
    [sym_do] = ACTIONS(4402),
    [sym_else] = ACTIONS(4402),
    [sym_enum] = ACTIONS(4402),
    [sym_export] = ACTIONS(4402),
    [sym_extern] = ACTIONS(4402),
    [sym_final] = ACTIONS(4402),
    [sym_for] = ACTIONS(4402),
    [sym_foreach] = ACTIONS(4402),
    [sym_foreach_reverse] = ACTIONS(4402),
    [sym_function] = ACTIONS(4402),
    [sym_goto] = ACTIONS(4402),
    [sym_if] = ACTIONS(4402),
    [sym_immutable] = ACTIONS(4402),
    [sym_import] = ACTIONS(4402),
    [sym_in] = ACTIONS(4402),
    [sym_inout] = ACTIONS(4402),
    [sym_interface] = ACTIONS(4402),
    [sym_invariant] = ACTIONS(4402),
    [sym_is] = ACTIONS(4402),
    [sym_mixin] = ACTIONS(4402),
    [sym_new] = ACTIONS(4402),
    [sym_nothrow] = ACTIONS(4402),
    [sym_out] = ACTIONS(4402),
    [sym_override] = ACTIONS(4402),
    [sym_package] = ACTIONS(4402),
    [sym_pragma] = ACTIONS(4402),
    [sym_private] = ACTIONS(4402),
    [sym_protected] = ACTIONS(4402),
    [sym_public] = ACTIONS(4402),
    [sym_pure] = ACTIONS(4402),
    [sym_ref] = ACTIONS(4402),
    [sym_return] = ACTIONS(4402),
    [sym_scope] = ACTIONS(4402),
    [sym_shared] = ACTIONS(4402),
    [sym_static] = ACTIONS(4402),
    [sym_struct] = ACTIONS(4402),
    [sym_switch] = ACTIONS(4402),
    [sym_synchronized] = ACTIONS(4402),
    [sym_template] = ACTIONS(4402),
    [sym_throw] = ACTIONS(4402),
    [sym_try] = ACTIONS(4402),
    [sym_typeid] = ACTIONS(4402),
    [sym_typeof] = ACTIONS(4402),
    [sym_union] = ACTIONS(4402),
    [sym_unittest] = ACTIONS(4402),
    [sym_version] = ACTIONS(4402),
    [sym_while] = ACTIONS(4402),
    [sym_with] = ACTIONS(4402),
    [sym_gshared] = ACTIONS(4402),
    [sym_traits] = ACTIONS(4402),
    [sym_vector] = ACTIONS(4402),
    [sym_void] = ACTIONS(4402),
    [anon_sym_BQUOTE] = ACTIONS(4404),
    [anon_sym_r_DQUOTE] = ACTIONS(4404),
    [anon_sym_x_DQUOTE] = ACTIONS(4404),
    [anon_sym_DQUOTE] = ACTIONS(4404),
    [anon_sym_i_BQUOTE] = ACTIONS(4404),
    [anon_sym_i_DQUOTE] = ACTIONS(4404),
    [anon_sym_iq_LBRACE] = ACTIONS(4404),
    [aux_sym_char_literal_token1] = ACTIONS(4404),
    [anon_sym_SQUOTE] = ACTIONS(4402),
    [anon_sym___DATE__] = ACTIONS(4402),
    [anon_sym___FILE__] = ACTIONS(4402),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4402),
    [anon_sym___FUNCTION__] = ACTIONS(4402),
    [anon_sym___LINE__] = ACTIONS(4402),
    [anon_sym___MODULE__] = ACTIONS(4402),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4402),
    [anon_sym___TIME__] = ACTIONS(4402),
    [anon_sym___TIMESTAMP__] = ACTIONS(4402),
    [anon_sym___VENDOR__] = ACTIONS(4402),
    [anon_sym___VERSION__] = ACTIONS(4402),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4404),
    [sym_float_literal] = ACTIONS(4404),
    [sym__string] = ACTIONS(4404),
  },
  [1604] = {
    [sym_identifier] = ACTIONS(4740),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4743),
    [anon_sym_RBRACE] = ACTIONS(4743),
    [anon_sym_LBRACE] = ACTIONS(4743),
    [anon_sym_DOT] = ACTIONS(4743),
    [anon_sym_AMP] = ACTIONS(4743),
    [anon_sym_DASH] = ACTIONS(4740),
    [anon_sym_DASH_DASH] = ACTIONS(4743),
    [anon_sym_PLUS] = ACTIONS(4740),
    [anon_sym_PLUS_PLUS] = ACTIONS(4743),
    [anon_sym_BANG] = ACTIONS(4743),
    [anon_sym_LPAREN] = ACTIONS(4743),
    [anon_sym_RPAREN] = ACTIONS(4743),
    [anon_sym_LBRACK] = ACTIONS(4743),
    [anon_sym_SEMI] = ACTIONS(4743),
    [anon_sym_DOLLAR] = ACTIONS(4743),
    [anon_sym_STAR] = ACTIONS(4743),
    [anon_sym_TILDE] = ACTIONS(4743),
    [anon_sym_AT] = ACTIONS(4743),
    [sym_bool] = ACTIONS(4740),
    [sym_byte] = ACTIONS(4740),
    [sym_ubyte] = ACTIONS(4740),
    [sym_char] = ACTIONS(4740),
    [sym_short] = ACTIONS(4740),
    [sym_ushort] = ACTIONS(4740),
    [sym_int] = ACTIONS(4740),
    [sym_uint] = ACTIONS(4740),
    [sym_long] = ACTIONS(4740),
    [sym_ulong] = ACTIONS(4740),
    [sym_cent] = ACTIONS(4740),
    [sym_ucent] = ACTIONS(4740),
    [sym_wchar] = ACTIONS(4740),
    [sym_dchar] = ACTIONS(4740),
    [sym_float] = ACTIONS(4740),
    [sym_double] = ACTIONS(4740),
    [sym_real] = ACTIONS(4740),
    [sym_ifloat] = ACTIONS(4740),
    [sym_idouble] = ACTIONS(4740),
    [sym_ireal] = ACTIONS(4740),
    [sym_cfloat] = ACTIONS(4740),
    [sym_cdouble] = ACTIONS(4740),
    [sym_creal] = ACTIONS(4740),
    [sym_size_t] = ACTIONS(4740),
    [sym_ptrdiff_t] = ACTIONS(4740),
    [sym_string] = ACTIONS(4740),
    [sym_cstring] = ACTIONS(4740),
    [sym_dstring] = ACTIONS(4740),
    [sym_wstring] = ACTIONS(4740),
    [sym_noreturn] = ACTIONS(4740),
    [sym_true] = ACTIONS(4740),
    [sym_false] = ACTIONS(4740),
    [sym_null] = ACTIONS(4740),
    [sym_super] = ACTIONS(4740),
    [sym_this] = ACTIONS(4740),
    [sym_abstract] = ACTIONS(4740),
    [sym_alias] = ACTIONS(4740),
    [sym_align] = ACTIONS(4740),
    [sym_asm] = ACTIONS(4740),
    [sym_assert] = ACTIONS(4740),
    [sym_auto] = ACTIONS(4740),
    [sym_break] = ACTIONS(4740),
    [sym_case] = ACTIONS(4740),
    [sym_cast] = ACTIONS(4740),
    [sym_class] = ACTIONS(4740),
    [sym_const] = ACTIONS(4740),
    [sym_continue] = ACTIONS(4740),
    [sym_debug] = ACTIONS(4740),
    [sym_default] = ACTIONS(4740),
    [sym_delegate] = ACTIONS(4740),
    [sym_delete] = ACTIONS(4740),
    [sym_deprecated] = ACTIONS(4740),
    [sym_do] = ACTIONS(4740),
    [sym_else] = ACTIONS(4740),
    [sym_enum] = ACTIONS(4740),
    [sym_export] = ACTIONS(4740),
    [sym_extern] = ACTIONS(4740),
    [sym_final] = ACTIONS(4740),
    [sym_for] = ACTIONS(4740),
    [sym_foreach] = ACTIONS(4740),
    [sym_foreach_reverse] = ACTIONS(4740),
    [sym_function] = ACTIONS(4740),
    [sym_goto] = ACTIONS(4740),
    [sym_if] = ACTIONS(4740),
    [sym_immutable] = ACTIONS(4740),
    [sym_import] = ACTIONS(4740),
    [sym_in] = ACTIONS(4740),
    [sym_inout] = ACTIONS(4740),
    [sym_interface] = ACTIONS(4740),
    [sym_invariant] = ACTIONS(4740),
    [sym_is] = ACTIONS(4740),
    [sym_mixin] = ACTIONS(4740),
    [sym_new] = ACTIONS(4740),
    [sym_nothrow] = ACTIONS(4740),
    [sym_out] = ACTIONS(4740),
    [sym_override] = ACTIONS(4740),
    [sym_package] = ACTIONS(4740),
    [sym_pragma] = ACTIONS(4740),
    [sym_private] = ACTIONS(4740),
    [sym_protected] = ACTIONS(4740),
    [sym_public] = ACTIONS(4740),
    [sym_pure] = ACTIONS(4740),
    [sym_ref] = ACTIONS(4740),
    [sym_return] = ACTIONS(4740),
    [sym_scope] = ACTIONS(4740),
    [sym_shared] = ACTIONS(4740),
    [sym_static] = ACTIONS(4740),
    [sym_struct] = ACTIONS(4740),
    [sym_switch] = ACTIONS(4740),
    [sym_synchronized] = ACTIONS(4740),
    [sym_template] = ACTIONS(4740),
    [sym_throw] = ACTIONS(4740),
    [sym_try] = ACTIONS(4740),
    [sym_typeid] = ACTIONS(4740),
    [sym_typeof] = ACTIONS(4740),
    [sym_union] = ACTIONS(4740),
    [sym_unittest] = ACTIONS(4740),
    [sym_version] = ACTIONS(4740),
    [sym_while] = ACTIONS(4740),
    [sym_with] = ACTIONS(4740),
    [sym_gshared] = ACTIONS(4740),
    [sym_traits] = ACTIONS(4740),
    [sym_vector] = ACTIONS(4740),
    [sym_void] = ACTIONS(4740),
    [anon_sym_BQUOTE] = ACTIONS(4743),
    [anon_sym_r_DQUOTE] = ACTIONS(4743),
    [anon_sym_x_DQUOTE] = ACTIONS(4743),
    [anon_sym_DQUOTE] = ACTIONS(4743),
    [anon_sym_i_BQUOTE] = ACTIONS(4743),
    [anon_sym_i_DQUOTE] = ACTIONS(4743),
    [anon_sym_iq_LBRACE] = ACTIONS(4743),
    [aux_sym_char_literal_token1] = ACTIONS(4743),
    [anon_sym_SQUOTE] = ACTIONS(4740),
    [anon_sym___DATE__] = ACTIONS(4740),
    [anon_sym___FILE__] = ACTIONS(4740),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4740),
    [anon_sym___FUNCTION__] = ACTIONS(4740),
    [anon_sym___LINE__] = ACTIONS(4740),
    [anon_sym___MODULE__] = ACTIONS(4740),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4740),
    [anon_sym___TIME__] = ACTIONS(4740),
    [anon_sym___TIMESTAMP__] = ACTIONS(4740),
    [anon_sym___VENDOR__] = ACTIONS(4740),
    [anon_sym___VERSION__] = ACTIONS(4740),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4743),
    [sym_float_literal] = ACTIONS(4743),
    [sym__string] = ACTIONS(4743),
  },
  [1605] = {
    [sym_identifier] = ACTIONS(4728),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4730),
    [anon_sym_RBRACE] = ACTIONS(4730),
    [anon_sym_LBRACE] = ACTIONS(4730),
    [anon_sym_DOT] = ACTIONS(4730),
    [anon_sym_AMP] = ACTIONS(4730),
    [anon_sym_DASH] = ACTIONS(4728),
    [anon_sym_DASH_DASH] = ACTIONS(4730),
    [anon_sym_PLUS] = ACTIONS(4728),
    [anon_sym_PLUS_PLUS] = ACTIONS(4730),
    [anon_sym_BANG] = ACTIONS(4730),
    [anon_sym_LPAREN] = ACTIONS(4730),
    [anon_sym_RPAREN] = ACTIONS(4730),
    [anon_sym_LBRACK] = ACTIONS(4730),
    [anon_sym_SEMI] = ACTIONS(4730),
    [anon_sym_DOLLAR] = ACTIONS(4730),
    [anon_sym_STAR] = ACTIONS(4730),
    [anon_sym_TILDE] = ACTIONS(4730),
    [anon_sym_AT] = ACTIONS(4730),
    [sym_bool] = ACTIONS(4728),
    [sym_byte] = ACTIONS(4728),
    [sym_ubyte] = ACTIONS(4728),
    [sym_char] = ACTIONS(4728),
    [sym_short] = ACTIONS(4728),
    [sym_ushort] = ACTIONS(4728),
    [sym_int] = ACTIONS(4728),
    [sym_uint] = ACTIONS(4728),
    [sym_long] = ACTIONS(4728),
    [sym_ulong] = ACTIONS(4728),
    [sym_cent] = ACTIONS(4728),
    [sym_ucent] = ACTIONS(4728),
    [sym_wchar] = ACTIONS(4728),
    [sym_dchar] = ACTIONS(4728),
    [sym_float] = ACTIONS(4728),
    [sym_double] = ACTIONS(4728),
    [sym_real] = ACTIONS(4728),
    [sym_ifloat] = ACTIONS(4728),
    [sym_idouble] = ACTIONS(4728),
    [sym_ireal] = ACTIONS(4728),
    [sym_cfloat] = ACTIONS(4728),
    [sym_cdouble] = ACTIONS(4728),
    [sym_creal] = ACTIONS(4728),
    [sym_size_t] = ACTIONS(4728),
    [sym_ptrdiff_t] = ACTIONS(4728),
    [sym_string] = ACTIONS(4728),
    [sym_cstring] = ACTIONS(4728),
    [sym_dstring] = ACTIONS(4728),
    [sym_wstring] = ACTIONS(4728),
    [sym_noreturn] = ACTIONS(4728),
    [sym_true] = ACTIONS(4728),
    [sym_false] = ACTIONS(4728),
    [sym_null] = ACTIONS(4728),
    [sym_super] = ACTIONS(4728),
    [sym_this] = ACTIONS(4728),
    [sym_abstract] = ACTIONS(4728),
    [sym_alias] = ACTIONS(4728),
    [sym_align] = ACTIONS(4728),
    [sym_asm] = ACTIONS(4728),
    [sym_assert] = ACTIONS(4728),
    [sym_auto] = ACTIONS(4728),
    [sym_break] = ACTIONS(4728),
    [sym_case] = ACTIONS(4728),
    [sym_cast] = ACTIONS(4728),
    [sym_class] = ACTIONS(4728),
    [sym_const] = ACTIONS(4728),
    [sym_continue] = ACTIONS(4728),
    [sym_debug] = ACTIONS(4728),
    [sym_default] = ACTIONS(4728),
    [sym_delegate] = ACTIONS(4728),
    [sym_delete] = ACTIONS(4728),
    [sym_deprecated] = ACTIONS(4728),
    [sym_do] = ACTIONS(4728),
    [sym_else] = ACTIONS(4728),
    [sym_enum] = ACTIONS(4728),
    [sym_export] = ACTIONS(4728),
    [sym_extern] = ACTIONS(4728),
    [sym_final] = ACTIONS(4728),
    [sym_for] = ACTIONS(4728),
    [sym_foreach] = ACTIONS(4728),
    [sym_foreach_reverse] = ACTIONS(4728),
    [sym_function] = ACTIONS(4728),
    [sym_goto] = ACTIONS(4728),
    [sym_if] = ACTIONS(4728),
    [sym_immutable] = ACTIONS(4728),
    [sym_import] = ACTIONS(4728),
    [sym_in] = ACTIONS(4728),
    [sym_inout] = ACTIONS(4728),
    [sym_interface] = ACTIONS(4728),
    [sym_invariant] = ACTIONS(4728),
    [sym_is] = ACTIONS(4728),
    [sym_mixin] = ACTIONS(4728),
    [sym_new] = ACTIONS(4728),
    [sym_nothrow] = ACTIONS(4728),
    [sym_out] = ACTIONS(4728),
    [sym_override] = ACTIONS(4728),
    [sym_package] = ACTIONS(4728),
    [sym_pragma] = ACTIONS(4728),
    [sym_private] = ACTIONS(4728),
    [sym_protected] = ACTIONS(4728),
    [sym_public] = ACTIONS(4728),
    [sym_pure] = ACTIONS(4728),
    [sym_ref] = ACTIONS(4728),
    [sym_return] = ACTIONS(4728),
    [sym_scope] = ACTIONS(4728),
    [sym_shared] = ACTIONS(4728),
    [sym_static] = ACTIONS(4728),
    [sym_struct] = ACTIONS(4728),
    [sym_switch] = ACTIONS(4728),
    [sym_synchronized] = ACTIONS(4728),
    [sym_template] = ACTIONS(4728),
    [sym_throw] = ACTIONS(4728),
    [sym_try] = ACTIONS(4728),
    [sym_typeid] = ACTIONS(4728),
    [sym_typeof] = ACTIONS(4728),
    [sym_union] = ACTIONS(4728),
    [sym_unittest] = ACTIONS(4728),
    [sym_version] = ACTIONS(4728),
    [sym_while] = ACTIONS(4728),
    [sym_with] = ACTIONS(4728),
    [sym_gshared] = ACTIONS(4728),
    [sym_traits] = ACTIONS(4728),
    [sym_vector] = ACTIONS(4728),
    [sym_void] = ACTIONS(4728),
    [anon_sym_BQUOTE] = ACTIONS(4730),
    [anon_sym_r_DQUOTE] = ACTIONS(4730),
    [anon_sym_x_DQUOTE] = ACTIONS(4730),
    [anon_sym_DQUOTE] = ACTIONS(4730),
    [anon_sym_i_BQUOTE] = ACTIONS(4730),
    [anon_sym_i_DQUOTE] = ACTIONS(4730),
    [anon_sym_iq_LBRACE] = ACTIONS(4730),
    [aux_sym_char_literal_token1] = ACTIONS(4730),
    [anon_sym_SQUOTE] = ACTIONS(4728),
    [anon_sym___DATE__] = ACTIONS(4728),
    [anon_sym___FILE__] = ACTIONS(4728),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4728),
    [anon_sym___FUNCTION__] = ACTIONS(4728),
    [anon_sym___LINE__] = ACTIONS(4728),
    [anon_sym___MODULE__] = ACTIONS(4728),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4728),
    [anon_sym___TIME__] = ACTIONS(4728),
    [anon_sym___TIMESTAMP__] = ACTIONS(4728),
    [anon_sym___VENDOR__] = ACTIONS(4728),
    [anon_sym___VERSION__] = ACTIONS(4728),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4730),
    [sym_float_literal] = ACTIONS(4730),
    [sym__string] = ACTIONS(4730),
  },
  [1606] = {
    [sym_identifier] = ACTIONS(4904),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4906),
    [anon_sym_RBRACE] = ACTIONS(4906),
    [anon_sym_LBRACE] = ACTIONS(4906),
    [anon_sym_DOT] = ACTIONS(4906),
    [anon_sym_AMP] = ACTIONS(4906),
    [anon_sym_DASH] = ACTIONS(4904),
    [anon_sym_DASH_DASH] = ACTIONS(4906),
    [anon_sym_PLUS] = ACTIONS(4904),
    [anon_sym_PLUS_PLUS] = ACTIONS(4906),
    [anon_sym_BANG] = ACTIONS(4906),
    [anon_sym_LPAREN] = ACTIONS(4906),
    [anon_sym_RPAREN] = ACTIONS(4906),
    [anon_sym_LBRACK] = ACTIONS(4906),
    [anon_sym_SEMI] = ACTIONS(4906),
    [anon_sym_DOLLAR] = ACTIONS(4906),
    [anon_sym_STAR] = ACTIONS(4906),
    [anon_sym_TILDE] = ACTIONS(4906),
    [anon_sym_AT] = ACTIONS(4906),
    [sym_bool] = ACTIONS(4904),
    [sym_byte] = ACTIONS(4904),
    [sym_ubyte] = ACTIONS(4904),
    [sym_char] = ACTIONS(4904),
    [sym_short] = ACTIONS(4904),
    [sym_ushort] = ACTIONS(4904),
    [sym_int] = ACTIONS(4904),
    [sym_uint] = ACTIONS(4904),
    [sym_long] = ACTIONS(4904),
    [sym_ulong] = ACTIONS(4904),
    [sym_cent] = ACTIONS(4904),
    [sym_ucent] = ACTIONS(4904),
    [sym_wchar] = ACTIONS(4904),
    [sym_dchar] = ACTIONS(4904),
    [sym_float] = ACTIONS(4904),
    [sym_double] = ACTIONS(4904),
    [sym_real] = ACTIONS(4904),
    [sym_ifloat] = ACTIONS(4904),
    [sym_idouble] = ACTIONS(4904),
    [sym_ireal] = ACTIONS(4904),
    [sym_cfloat] = ACTIONS(4904),
    [sym_cdouble] = ACTIONS(4904),
    [sym_creal] = ACTIONS(4904),
    [sym_size_t] = ACTIONS(4904),
    [sym_ptrdiff_t] = ACTIONS(4904),
    [sym_string] = ACTIONS(4904),
    [sym_cstring] = ACTIONS(4904),
    [sym_dstring] = ACTIONS(4904),
    [sym_wstring] = ACTIONS(4904),
    [sym_noreturn] = ACTIONS(4904),
    [sym_true] = ACTIONS(4904),
    [sym_false] = ACTIONS(4904),
    [sym_null] = ACTIONS(4904),
    [sym_super] = ACTIONS(4904),
    [sym_this] = ACTIONS(4904),
    [sym_abstract] = ACTIONS(4904),
    [sym_alias] = ACTIONS(4904),
    [sym_align] = ACTIONS(4904),
    [sym_asm] = ACTIONS(4904),
    [sym_assert] = ACTIONS(4904),
    [sym_auto] = ACTIONS(4904),
    [sym_break] = ACTIONS(4904),
    [sym_case] = ACTIONS(4904),
    [sym_cast] = ACTIONS(4904),
    [sym_class] = ACTIONS(4904),
    [sym_const] = ACTIONS(4904),
    [sym_continue] = ACTIONS(4904),
    [sym_debug] = ACTIONS(4904),
    [sym_default] = ACTIONS(4904),
    [sym_delegate] = ACTIONS(4904),
    [sym_delete] = ACTIONS(4904),
    [sym_deprecated] = ACTIONS(4904),
    [sym_do] = ACTIONS(4904),
    [sym_else] = ACTIONS(4904),
    [sym_enum] = ACTIONS(4904),
    [sym_export] = ACTIONS(4904),
    [sym_extern] = ACTIONS(4904),
    [sym_final] = ACTIONS(4904),
    [sym_for] = ACTIONS(4904),
    [sym_foreach] = ACTIONS(4904),
    [sym_foreach_reverse] = ACTIONS(4904),
    [sym_function] = ACTIONS(4904),
    [sym_goto] = ACTIONS(4904),
    [sym_if] = ACTIONS(4904),
    [sym_immutable] = ACTIONS(4904),
    [sym_import] = ACTIONS(4904),
    [sym_in] = ACTIONS(4904),
    [sym_inout] = ACTIONS(4904),
    [sym_interface] = ACTIONS(4904),
    [sym_invariant] = ACTIONS(4904),
    [sym_is] = ACTIONS(4904),
    [sym_mixin] = ACTIONS(4904),
    [sym_new] = ACTIONS(4904),
    [sym_nothrow] = ACTIONS(4904),
    [sym_out] = ACTIONS(4904),
    [sym_override] = ACTIONS(4904),
    [sym_package] = ACTIONS(4904),
    [sym_pragma] = ACTIONS(4904),
    [sym_private] = ACTIONS(4904),
    [sym_protected] = ACTIONS(4904),
    [sym_public] = ACTIONS(4904),
    [sym_pure] = ACTIONS(4904),
    [sym_ref] = ACTIONS(4904),
    [sym_return] = ACTIONS(4904),
    [sym_scope] = ACTIONS(4904),
    [sym_shared] = ACTIONS(4904),
    [sym_static] = ACTIONS(4904),
    [sym_struct] = ACTIONS(4904),
    [sym_switch] = ACTIONS(4904),
    [sym_synchronized] = ACTIONS(4904),
    [sym_template] = ACTIONS(4904),
    [sym_throw] = ACTIONS(4904),
    [sym_try] = ACTIONS(4904),
    [sym_typeid] = ACTIONS(4904),
    [sym_typeof] = ACTIONS(4904),
    [sym_union] = ACTIONS(4904),
    [sym_unittest] = ACTIONS(4904),
    [sym_version] = ACTIONS(4904),
    [sym_while] = ACTIONS(4904),
    [sym_with] = ACTIONS(4904),
    [sym_gshared] = ACTIONS(4904),
    [sym_traits] = ACTIONS(4904),
    [sym_vector] = ACTIONS(4904),
    [sym_void] = ACTIONS(4904),
    [anon_sym_BQUOTE] = ACTIONS(4906),
    [anon_sym_r_DQUOTE] = ACTIONS(4906),
    [anon_sym_x_DQUOTE] = ACTIONS(4906),
    [anon_sym_DQUOTE] = ACTIONS(4906),
    [anon_sym_i_BQUOTE] = ACTIONS(4906),
    [anon_sym_i_DQUOTE] = ACTIONS(4906),
    [anon_sym_iq_LBRACE] = ACTIONS(4906),
    [aux_sym_char_literal_token1] = ACTIONS(4906),
    [anon_sym_SQUOTE] = ACTIONS(4904),
    [anon_sym___DATE__] = ACTIONS(4904),
    [anon_sym___FILE__] = ACTIONS(4904),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4904),
    [anon_sym___FUNCTION__] = ACTIONS(4904),
    [anon_sym___LINE__] = ACTIONS(4904),
    [anon_sym___MODULE__] = ACTIONS(4904),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4904),
    [anon_sym___TIME__] = ACTIONS(4904),
    [anon_sym___TIMESTAMP__] = ACTIONS(4904),
    [anon_sym___VENDOR__] = ACTIONS(4904),
    [anon_sym___VERSION__] = ACTIONS(4904),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4906),
    [sym_float_literal] = ACTIONS(4906),
    [sym__string] = ACTIONS(4906),
  },
  [1607] = {
    [sym_identifier] = ACTIONS(4900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4902),
    [anon_sym_RBRACE] = ACTIONS(4902),
    [anon_sym_LBRACE] = ACTIONS(4902),
    [anon_sym_DOT] = ACTIONS(4902),
    [anon_sym_AMP] = ACTIONS(4902),
    [anon_sym_DASH] = ACTIONS(4900),
    [anon_sym_DASH_DASH] = ACTIONS(4902),
    [anon_sym_PLUS] = ACTIONS(4900),
    [anon_sym_PLUS_PLUS] = ACTIONS(4902),
    [anon_sym_BANG] = ACTIONS(4902),
    [anon_sym_LPAREN] = ACTIONS(4902),
    [anon_sym_RPAREN] = ACTIONS(4902),
    [anon_sym_LBRACK] = ACTIONS(4902),
    [anon_sym_SEMI] = ACTIONS(4902),
    [anon_sym_DOLLAR] = ACTIONS(4902),
    [anon_sym_STAR] = ACTIONS(4902),
    [anon_sym_TILDE] = ACTIONS(4902),
    [anon_sym_AT] = ACTIONS(4902),
    [sym_bool] = ACTIONS(4900),
    [sym_byte] = ACTIONS(4900),
    [sym_ubyte] = ACTIONS(4900),
    [sym_char] = ACTIONS(4900),
    [sym_short] = ACTIONS(4900),
    [sym_ushort] = ACTIONS(4900),
    [sym_int] = ACTIONS(4900),
    [sym_uint] = ACTIONS(4900),
    [sym_long] = ACTIONS(4900),
    [sym_ulong] = ACTIONS(4900),
    [sym_cent] = ACTIONS(4900),
    [sym_ucent] = ACTIONS(4900),
    [sym_wchar] = ACTIONS(4900),
    [sym_dchar] = ACTIONS(4900),
    [sym_float] = ACTIONS(4900),
    [sym_double] = ACTIONS(4900),
    [sym_real] = ACTIONS(4900),
    [sym_ifloat] = ACTIONS(4900),
    [sym_idouble] = ACTIONS(4900),
    [sym_ireal] = ACTIONS(4900),
    [sym_cfloat] = ACTIONS(4900),
    [sym_cdouble] = ACTIONS(4900),
    [sym_creal] = ACTIONS(4900),
    [sym_size_t] = ACTIONS(4900),
    [sym_ptrdiff_t] = ACTIONS(4900),
    [sym_string] = ACTIONS(4900),
    [sym_cstring] = ACTIONS(4900),
    [sym_dstring] = ACTIONS(4900),
    [sym_wstring] = ACTIONS(4900),
    [sym_noreturn] = ACTIONS(4900),
    [sym_true] = ACTIONS(4900),
    [sym_false] = ACTIONS(4900),
    [sym_null] = ACTIONS(4900),
    [sym_super] = ACTIONS(4900),
    [sym_this] = ACTIONS(4900),
    [sym_abstract] = ACTIONS(4900),
    [sym_alias] = ACTIONS(4900),
    [sym_align] = ACTIONS(4900),
    [sym_asm] = ACTIONS(4900),
    [sym_assert] = ACTIONS(4900),
    [sym_auto] = ACTIONS(4900),
    [sym_break] = ACTIONS(4900),
    [sym_case] = ACTIONS(4900),
    [sym_cast] = ACTIONS(4900),
    [sym_class] = ACTIONS(4900),
    [sym_const] = ACTIONS(4900),
    [sym_continue] = ACTIONS(4900),
    [sym_debug] = ACTIONS(4900),
    [sym_default] = ACTIONS(4900),
    [sym_delegate] = ACTIONS(4900),
    [sym_delete] = ACTIONS(4900),
    [sym_deprecated] = ACTIONS(4900),
    [sym_do] = ACTIONS(4900),
    [sym_else] = ACTIONS(4900),
    [sym_enum] = ACTIONS(4900),
    [sym_export] = ACTIONS(4900),
    [sym_extern] = ACTIONS(4900),
    [sym_final] = ACTIONS(4900),
    [sym_for] = ACTIONS(4900),
    [sym_foreach] = ACTIONS(4900),
    [sym_foreach_reverse] = ACTIONS(4900),
    [sym_function] = ACTIONS(4900),
    [sym_goto] = ACTIONS(4900),
    [sym_if] = ACTIONS(4900),
    [sym_immutable] = ACTIONS(4900),
    [sym_import] = ACTIONS(4900),
    [sym_in] = ACTIONS(4900),
    [sym_inout] = ACTIONS(4900),
    [sym_interface] = ACTIONS(4900),
    [sym_invariant] = ACTIONS(4900),
    [sym_is] = ACTIONS(4900),
    [sym_mixin] = ACTIONS(4900),
    [sym_new] = ACTIONS(4900),
    [sym_nothrow] = ACTIONS(4900),
    [sym_out] = ACTIONS(4900),
    [sym_override] = ACTIONS(4900),
    [sym_package] = ACTIONS(4900),
    [sym_pragma] = ACTIONS(4900),
    [sym_private] = ACTIONS(4900),
    [sym_protected] = ACTIONS(4900),
    [sym_public] = ACTIONS(4900),
    [sym_pure] = ACTIONS(4900),
    [sym_ref] = ACTIONS(4900),
    [sym_return] = ACTIONS(4900),
    [sym_scope] = ACTIONS(4900),
    [sym_shared] = ACTIONS(4900),
    [sym_static] = ACTIONS(4900),
    [sym_struct] = ACTIONS(4900),
    [sym_switch] = ACTIONS(4900),
    [sym_synchronized] = ACTIONS(4900),
    [sym_template] = ACTIONS(4900),
    [sym_throw] = ACTIONS(4900),
    [sym_try] = ACTIONS(4900),
    [sym_typeid] = ACTIONS(4900),
    [sym_typeof] = ACTIONS(4900),
    [sym_union] = ACTIONS(4900),
    [sym_unittest] = ACTIONS(4900),
    [sym_version] = ACTIONS(4900),
    [sym_while] = ACTIONS(4900),
    [sym_with] = ACTIONS(4900),
    [sym_gshared] = ACTIONS(4900),
    [sym_traits] = ACTIONS(4900),
    [sym_vector] = ACTIONS(4900),
    [sym_void] = ACTIONS(4900),
    [anon_sym_BQUOTE] = ACTIONS(4902),
    [anon_sym_r_DQUOTE] = ACTIONS(4902),
    [anon_sym_x_DQUOTE] = ACTIONS(4902),
    [anon_sym_DQUOTE] = ACTIONS(4902),
    [anon_sym_i_BQUOTE] = ACTIONS(4902),
    [anon_sym_i_DQUOTE] = ACTIONS(4902),
    [anon_sym_iq_LBRACE] = ACTIONS(4902),
    [aux_sym_char_literal_token1] = ACTIONS(4902),
    [anon_sym_SQUOTE] = ACTIONS(4900),
    [anon_sym___DATE__] = ACTIONS(4900),
    [anon_sym___FILE__] = ACTIONS(4900),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4900),
    [anon_sym___FUNCTION__] = ACTIONS(4900),
    [anon_sym___LINE__] = ACTIONS(4900),
    [anon_sym___MODULE__] = ACTIONS(4900),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4900),
    [anon_sym___TIME__] = ACTIONS(4900),
    [anon_sym___TIMESTAMP__] = ACTIONS(4900),
    [anon_sym___VENDOR__] = ACTIONS(4900),
    [anon_sym___VERSION__] = ACTIONS(4900),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4902),
    [sym_float_literal] = ACTIONS(4902),
    [sym__string] = ACTIONS(4902),
  },
  [1608] = {
    [sym_identifier] = ACTIONS(4822),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4824),
    [anon_sym_RBRACE] = ACTIONS(4824),
    [anon_sym_LBRACE] = ACTIONS(4824),
    [anon_sym_DOT] = ACTIONS(4824),
    [anon_sym_AMP] = ACTIONS(4824),
    [anon_sym_DASH] = ACTIONS(4822),
    [anon_sym_DASH_DASH] = ACTIONS(4824),
    [anon_sym_PLUS] = ACTIONS(4822),
    [anon_sym_PLUS_PLUS] = ACTIONS(4824),
    [anon_sym_BANG] = ACTIONS(4824),
    [anon_sym_LPAREN] = ACTIONS(4824),
    [anon_sym_RPAREN] = ACTIONS(4824),
    [anon_sym_LBRACK] = ACTIONS(4824),
    [anon_sym_SEMI] = ACTIONS(4824),
    [anon_sym_DOLLAR] = ACTIONS(4824),
    [anon_sym_STAR] = ACTIONS(4824),
    [anon_sym_TILDE] = ACTIONS(4824),
    [anon_sym_AT] = ACTIONS(4824),
    [sym_bool] = ACTIONS(4822),
    [sym_byte] = ACTIONS(4822),
    [sym_ubyte] = ACTIONS(4822),
    [sym_char] = ACTIONS(4822),
    [sym_short] = ACTIONS(4822),
    [sym_ushort] = ACTIONS(4822),
    [sym_int] = ACTIONS(4822),
    [sym_uint] = ACTIONS(4822),
    [sym_long] = ACTIONS(4822),
    [sym_ulong] = ACTIONS(4822),
    [sym_cent] = ACTIONS(4822),
    [sym_ucent] = ACTIONS(4822),
    [sym_wchar] = ACTIONS(4822),
    [sym_dchar] = ACTIONS(4822),
    [sym_float] = ACTIONS(4822),
    [sym_double] = ACTIONS(4822),
    [sym_real] = ACTIONS(4822),
    [sym_ifloat] = ACTIONS(4822),
    [sym_idouble] = ACTIONS(4822),
    [sym_ireal] = ACTIONS(4822),
    [sym_cfloat] = ACTIONS(4822),
    [sym_cdouble] = ACTIONS(4822),
    [sym_creal] = ACTIONS(4822),
    [sym_size_t] = ACTIONS(4822),
    [sym_ptrdiff_t] = ACTIONS(4822),
    [sym_string] = ACTIONS(4822),
    [sym_cstring] = ACTIONS(4822),
    [sym_dstring] = ACTIONS(4822),
    [sym_wstring] = ACTIONS(4822),
    [sym_noreturn] = ACTIONS(4822),
    [sym_true] = ACTIONS(4822),
    [sym_false] = ACTIONS(4822),
    [sym_null] = ACTIONS(4822),
    [sym_super] = ACTIONS(4822),
    [sym_this] = ACTIONS(4822),
    [sym_abstract] = ACTIONS(4822),
    [sym_alias] = ACTIONS(4822),
    [sym_align] = ACTIONS(4822),
    [sym_asm] = ACTIONS(4822),
    [sym_assert] = ACTIONS(4822),
    [sym_auto] = ACTIONS(4822),
    [sym_break] = ACTIONS(4822),
    [sym_case] = ACTIONS(4822),
    [sym_cast] = ACTIONS(4822),
    [sym_class] = ACTIONS(4822),
    [sym_const] = ACTIONS(4822),
    [sym_continue] = ACTIONS(4822),
    [sym_debug] = ACTIONS(4822),
    [sym_default] = ACTIONS(4822),
    [sym_delegate] = ACTIONS(4822),
    [sym_delete] = ACTIONS(4822),
    [sym_deprecated] = ACTIONS(4822),
    [sym_do] = ACTIONS(4822),
    [sym_else] = ACTIONS(4822),
    [sym_enum] = ACTIONS(4822),
    [sym_export] = ACTIONS(4822),
    [sym_extern] = ACTIONS(4822),
    [sym_final] = ACTIONS(4822),
    [sym_for] = ACTIONS(4822),
    [sym_foreach] = ACTIONS(4822),
    [sym_foreach_reverse] = ACTIONS(4822),
    [sym_function] = ACTIONS(4822),
    [sym_goto] = ACTIONS(4822),
    [sym_if] = ACTIONS(4822),
    [sym_immutable] = ACTIONS(4822),
    [sym_import] = ACTIONS(4822),
    [sym_in] = ACTIONS(4822),
    [sym_inout] = ACTIONS(4822),
    [sym_interface] = ACTIONS(4822),
    [sym_invariant] = ACTIONS(4822),
    [sym_is] = ACTIONS(4822),
    [sym_mixin] = ACTIONS(4822),
    [sym_new] = ACTIONS(4822),
    [sym_nothrow] = ACTIONS(4822),
    [sym_out] = ACTIONS(4822),
    [sym_override] = ACTIONS(4822),
    [sym_package] = ACTIONS(4822),
    [sym_pragma] = ACTIONS(4822),
    [sym_private] = ACTIONS(4822),
    [sym_protected] = ACTIONS(4822),
    [sym_public] = ACTIONS(4822),
    [sym_pure] = ACTIONS(4822),
    [sym_ref] = ACTIONS(4822),
    [sym_return] = ACTIONS(4822),
    [sym_scope] = ACTIONS(4822),
    [sym_shared] = ACTIONS(4822),
    [sym_static] = ACTIONS(4822),
    [sym_struct] = ACTIONS(4822),
    [sym_switch] = ACTIONS(4822),
    [sym_synchronized] = ACTIONS(4822),
    [sym_template] = ACTIONS(4822),
    [sym_throw] = ACTIONS(4822),
    [sym_try] = ACTIONS(4822),
    [sym_typeid] = ACTIONS(4822),
    [sym_typeof] = ACTIONS(4822),
    [sym_union] = ACTIONS(4822),
    [sym_unittest] = ACTIONS(4822),
    [sym_version] = ACTIONS(4822),
    [sym_while] = ACTIONS(4822),
    [sym_with] = ACTIONS(4822),
    [sym_gshared] = ACTIONS(4822),
    [sym_traits] = ACTIONS(4822),
    [sym_vector] = ACTIONS(4822),
    [sym_void] = ACTIONS(4822),
    [anon_sym_BQUOTE] = ACTIONS(4824),
    [anon_sym_r_DQUOTE] = ACTIONS(4824),
    [anon_sym_x_DQUOTE] = ACTIONS(4824),
    [anon_sym_DQUOTE] = ACTIONS(4824),
    [anon_sym_i_BQUOTE] = ACTIONS(4824),
    [anon_sym_i_DQUOTE] = ACTIONS(4824),
    [anon_sym_iq_LBRACE] = ACTIONS(4824),
    [aux_sym_char_literal_token1] = ACTIONS(4824),
    [anon_sym_SQUOTE] = ACTIONS(4822),
    [anon_sym___DATE__] = ACTIONS(4822),
    [anon_sym___FILE__] = ACTIONS(4822),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4822),
    [anon_sym___FUNCTION__] = ACTIONS(4822),
    [anon_sym___LINE__] = ACTIONS(4822),
    [anon_sym___MODULE__] = ACTIONS(4822),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4822),
    [anon_sym___TIME__] = ACTIONS(4822),
    [anon_sym___TIMESTAMP__] = ACTIONS(4822),
    [anon_sym___VENDOR__] = ACTIONS(4822),
    [anon_sym___VERSION__] = ACTIONS(4822),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4824),
    [sym_float_literal] = ACTIONS(4824),
    [sym__string] = ACTIONS(4824),
  },
  [1609] = {
    [sym_identifier] = ACTIONS(4582),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4584),
    [anon_sym_RBRACE] = ACTIONS(4584),
    [anon_sym_LBRACE] = ACTIONS(4584),
    [anon_sym_DOT] = ACTIONS(4584),
    [anon_sym_AMP] = ACTIONS(4584),
    [anon_sym_DASH] = ACTIONS(4582),
    [anon_sym_DASH_DASH] = ACTIONS(4584),
    [anon_sym_PLUS] = ACTIONS(4582),
    [anon_sym_PLUS_PLUS] = ACTIONS(4584),
    [anon_sym_BANG] = ACTIONS(4584),
    [anon_sym_LPAREN] = ACTIONS(4584),
    [anon_sym_RPAREN] = ACTIONS(4584),
    [anon_sym_LBRACK] = ACTIONS(4584),
    [anon_sym_SEMI] = ACTIONS(4584),
    [anon_sym_DOLLAR] = ACTIONS(4584),
    [anon_sym_STAR] = ACTIONS(4584),
    [anon_sym_TILDE] = ACTIONS(4584),
    [anon_sym_AT] = ACTIONS(4584),
    [sym_bool] = ACTIONS(4582),
    [sym_byte] = ACTIONS(4582),
    [sym_ubyte] = ACTIONS(4582),
    [sym_char] = ACTIONS(4582),
    [sym_short] = ACTIONS(4582),
    [sym_ushort] = ACTIONS(4582),
    [sym_int] = ACTIONS(4582),
    [sym_uint] = ACTIONS(4582),
    [sym_long] = ACTIONS(4582),
    [sym_ulong] = ACTIONS(4582),
    [sym_cent] = ACTIONS(4582),
    [sym_ucent] = ACTIONS(4582),
    [sym_wchar] = ACTIONS(4582),
    [sym_dchar] = ACTIONS(4582),
    [sym_float] = ACTIONS(4582),
    [sym_double] = ACTIONS(4582),
    [sym_real] = ACTIONS(4582),
    [sym_ifloat] = ACTIONS(4582),
    [sym_idouble] = ACTIONS(4582),
    [sym_ireal] = ACTIONS(4582),
    [sym_cfloat] = ACTIONS(4582),
    [sym_cdouble] = ACTIONS(4582),
    [sym_creal] = ACTIONS(4582),
    [sym_size_t] = ACTIONS(4582),
    [sym_ptrdiff_t] = ACTIONS(4582),
    [sym_string] = ACTIONS(4582),
    [sym_cstring] = ACTIONS(4582),
    [sym_dstring] = ACTIONS(4582),
    [sym_wstring] = ACTIONS(4582),
    [sym_noreturn] = ACTIONS(4582),
    [sym_true] = ACTIONS(4582),
    [sym_false] = ACTIONS(4582),
    [sym_null] = ACTIONS(4582),
    [sym_super] = ACTIONS(4582),
    [sym_this] = ACTIONS(4582),
    [sym_abstract] = ACTIONS(4582),
    [sym_alias] = ACTIONS(4582),
    [sym_align] = ACTIONS(4582),
    [sym_asm] = ACTIONS(4582),
    [sym_assert] = ACTIONS(4582),
    [sym_auto] = ACTIONS(4582),
    [sym_break] = ACTIONS(4582),
    [sym_case] = ACTIONS(4582),
    [sym_cast] = ACTIONS(4582),
    [sym_class] = ACTIONS(4582),
    [sym_const] = ACTIONS(4582),
    [sym_continue] = ACTIONS(4582),
    [sym_debug] = ACTIONS(4582),
    [sym_default] = ACTIONS(4582),
    [sym_delegate] = ACTIONS(4582),
    [sym_delete] = ACTIONS(4582),
    [sym_deprecated] = ACTIONS(4582),
    [sym_do] = ACTIONS(4582),
    [sym_else] = ACTIONS(4582),
    [sym_enum] = ACTIONS(4582),
    [sym_export] = ACTIONS(4582),
    [sym_extern] = ACTIONS(4582),
    [sym_final] = ACTIONS(4582),
    [sym_for] = ACTIONS(4582),
    [sym_foreach] = ACTIONS(4582),
    [sym_foreach_reverse] = ACTIONS(4582),
    [sym_function] = ACTIONS(4582),
    [sym_goto] = ACTIONS(4582),
    [sym_if] = ACTIONS(4582),
    [sym_immutable] = ACTIONS(4582),
    [sym_import] = ACTIONS(4582),
    [sym_in] = ACTIONS(4582),
    [sym_inout] = ACTIONS(4582),
    [sym_interface] = ACTIONS(4582),
    [sym_invariant] = ACTIONS(4582),
    [sym_is] = ACTIONS(4582),
    [sym_mixin] = ACTIONS(4582),
    [sym_new] = ACTIONS(4582),
    [sym_nothrow] = ACTIONS(4582),
    [sym_out] = ACTIONS(4582),
    [sym_override] = ACTIONS(4582),
    [sym_package] = ACTIONS(4582),
    [sym_pragma] = ACTIONS(4582),
    [sym_private] = ACTIONS(4582),
    [sym_protected] = ACTIONS(4582),
    [sym_public] = ACTIONS(4582),
    [sym_pure] = ACTIONS(4582),
    [sym_ref] = ACTIONS(4582),
    [sym_return] = ACTIONS(4582),
    [sym_scope] = ACTIONS(4582),
    [sym_shared] = ACTIONS(4582),
    [sym_static] = ACTIONS(4582),
    [sym_struct] = ACTIONS(4582),
    [sym_switch] = ACTIONS(4582),
    [sym_synchronized] = ACTIONS(4582),
    [sym_template] = ACTIONS(4582),
    [sym_throw] = ACTIONS(4582),
    [sym_try] = ACTIONS(4582),
    [sym_typeid] = ACTIONS(4582),
    [sym_typeof] = ACTIONS(4582),
    [sym_union] = ACTIONS(4582),
    [sym_unittest] = ACTIONS(4582),
    [sym_version] = ACTIONS(4582),
    [sym_while] = ACTIONS(4582),
    [sym_with] = ACTIONS(4582),
    [sym_gshared] = ACTIONS(4582),
    [sym_traits] = ACTIONS(4582),
    [sym_vector] = ACTIONS(4582),
    [sym_void] = ACTIONS(4582),
    [anon_sym_BQUOTE] = ACTIONS(4584),
    [anon_sym_r_DQUOTE] = ACTIONS(4584),
    [anon_sym_x_DQUOTE] = ACTIONS(4584),
    [anon_sym_DQUOTE] = ACTIONS(4584),
    [anon_sym_i_BQUOTE] = ACTIONS(4584),
    [anon_sym_i_DQUOTE] = ACTIONS(4584),
    [anon_sym_iq_LBRACE] = ACTIONS(4584),
    [aux_sym_char_literal_token1] = ACTIONS(4584),
    [anon_sym_SQUOTE] = ACTIONS(4582),
    [anon_sym___DATE__] = ACTIONS(4582),
    [anon_sym___FILE__] = ACTIONS(4582),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4582),
    [anon_sym___FUNCTION__] = ACTIONS(4582),
    [anon_sym___LINE__] = ACTIONS(4582),
    [anon_sym___MODULE__] = ACTIONS(4582),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4582),
    [anon_sym___TIME__] = ACTIONS(4582),
    [anon_sym___TIMESTAMP__] = ACTIONS(4582),
    [anon_sym___VENDOR__] = ACTIONS(4582),
    [anon_sym___VERSION__] = ACTIONS(4582),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4584),
    [sym_float_literal] = ACTIONS(4584),
    [sym__string] = ACTIONS(4584),
  },
  [1610] = {
    [sym_identifier] = ACTIONS(4896),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4898),
    [anon_sym_RBRACE] = ACTIONS(4898),
    [anon_sym_LBRACE] = ACTIONS(4898),
    [anon_sym_DOT] = ACTIONS(4898),
    [anon_sym_AMP] = ACTIONS(4898),
    [anon_sym_DASH] = ACTIONS(4896),
    [anon_sym_DASH_DASH] = ACTIONS(4898),
    [anon_sym_PLUS] = ACTIONS(4896),
    [anon_sym_PLUS_PLUS] = ACTIONS(4898),
    [anon_sym_BANG] = ACTIONS(4898),
    [anon_sym_LPAREN] = ACTIONS(4898),
    [anon_sym_RPAREN] = ACTIONS(4898),
    [anon_sym_LBRACK] = ACTIONS(4898),
    [anon_sym_SEMI] = ACTIONS(4898),
    [anon_sym_DOLLAR] = ACTIONS(4898),
    [anon_sym_STAR] = ACTIONS(4898),
    [anon_sym_TILDE] = ACTIONS(4898),
    [anon_sym_AT] = ACTIONS(4898),
    [sym_bool] = ACTIONS(4896),
    [sym_byte] = ACTIONS(4896),
    [sym_ubyte] = ACTIONS(4896),
    [sym_char] = ACTIONS(4896),
    [sym_short] = ACTIONS(4896),
    [sym_ushort] = ACTIONS(4896),
    [sym_int] = ACTIONS(4896),
    [sym_uint] = ACTIONS(4896),
    [sym_long] = ACTIONS(4896),
    [sym_ulong] = ACTIONS(4896),
    [sym_cent] = ACTIONS(4896),
    [sym_ucent] = ACTIONS(4896),
    [sym_wchar] = ACTIONS(4896),
    [sym_dchar] = ACTIONS(4896),
    [sym_float] = ACTIONS(4896),
    [sym_double] = ACTIONS(4896),
    [sym_real] = ACTIONS(4896),
    [sym_ifloat] = ACTIONS(4896),
    [sym_idouble] = ACTIONS(4896),
    [sym_ireal] = ACTIONS(4896),
    [sym_cfloat] = ACTIONS(4896),
    [sym_cdouble] = ACTIONS(4896),
    [sym_creal] = ACTIONS(4896),
    [sym_size_t] = ACTIONS(4896),
    [sym_ptrdiff_t] = ACTIONS(4896),
    [sym_string] = ACTIONS(4896),
    [sym_cstring] = ACTIONS(4896),
    [sym_dstring] = ACTIONS(4896),
    [sym_wstring] = ACTIONS(4896),
    [sym_noreturn] = ACTIONS(4896),
    [sym_true] = ACTIONS(4896),
    [sym_false] = ACTIONS(4896),
    [sym_null] = ACTIONS(4896),
    [sym_super] = ACTIONS(4896),
    [sym_this] = ACTIONS(4896),
    [sym_abstract] = ACTIONS(4896),
    [sym_alias] = ACTIONS(4896),
    [sym_align] = ACTIONS(4896),
    [sym_asm] = ACTIONS(4896),
    [sym_assert] = ACTIONS(4896),
    [sym_auto] = ACTIONS(4896),
    [sym_break] = ACTIONS(4896),
    [sym_case] = ACTIONS(4896),
    [sym_cast] = ACTIONS(4896),
    [sym_class] = ACTIONS(4896),
    [sym_const] = ACTIONS(4896),
    [sym_continue] = ACTIONS(4896),
    [sym_debug] = ACTIONS(4896),
    [sym_default] = ACTIONS(4896),
    [sym_delegate] = ACTIONS(4896),
    [sym_delete] = ACTIONS(4896),
    [sym_deprecated] = ACTIONS(4896),
    [sym_do] = ACTIONS(4896),
    [sym_else] = ACTIONS(4896),
    [sym_enum] = ACTIONS(4896),
    [sym_export] = ACTIONS(4896),
    [sym_extern] = ACTIONS(4896),
    [sym_final] = ACTIONS(4896),
    [sym_for] = ACTIONS(4896),
    [sym_foreach] = ACTIONS(4896),
    [sym_foreach_reverse] = ACTIONS(4896),
    [sym_function] = ACTIONS(4896),
    [sym_goto] = ACTIONS(4896),
    [sym_if] = ACTIONS(4896),
    [sym_immutable] = ACTIONS(4896),
    [sym_import] = ACTIONS(4896),
    [sym_in] = ACTIONS(4896),
    [sym_inout] = ACTIONS(4896),
    [sym_interface] = ACTIONS(4896),
    [sym_invariant] = ACTIONS(4896),
    [sym_is] = ACTIONS(4896),
    [sym_mixin] = ACTIONS(4896),
    [sym_new] = ACTIONS(4896),
    [sym_nothrow] = ACTIONS(4896),
    [sym_out] = ACTIONS(4896),
    [sym_override] = ACTIONS(4896),
    [sym_package] = ACTIONS(4896),
    [sym_pragma] = ACTIONS(4896),
    [sym_private] = ACTIONS(4896),
    [sym_protected] = ACTIONS(4896),
    [sym_public] = ACTIONS(4896),
    [sym_pure] = ACTIONS(4896),
    [sym_ref] = ACTIONS(4896),
    [sym_return] = ACTIONS(4896),
    [sym_scope] = ACTIONS(4896),
    [sym_shared] = ACTIONS(4896),
    [sym_static] = ACTIONS(4896),
    [sym_struct] = ACTIONS(4896),
    [sym_switch] = ACTIONS(4896),
    [sym_synchronized] = ACTIONS(4896),
    [sym_template] = ACTIONS(4896),
    [sym_throw] = ACTIONS(4896),
    [sym_try] = ACTIONS(4896),
    [sym_typeid] = ACTIONS(4896),
    [sym_typeof] = ACTIONS(4896),
    [sym_union] = ACTIONS(4896),
    [sym_unittest] = ACTIONS(4896),
    [sym_version] = ACTIONS(4896),
    [sym_while] = ACTIONS(4896),
    [sym_with] = ACTIONS(4896),
    [sym_gshared] = ACTIONS(4896),
    [sym_traits] = ACTIONS(4896),
    [sym_vector] = ACTIONS(4896),
    [sym_void] = ACTIONS(4896),
    [anon_sym_BQUOTE] = ACTIONS(4898),
    [anon_sym_r_DQUOTE] = ACTIONS(4898),
    [anon_sym_x_DQUOTE] = ACTIONS(4898),
    [anon_sym_DQUOTE] = ACTIONS(4898),
    [anon_sym_i_BQUOTE] = ACTIONS(4898),
    [anon_sym_i_DQUOTE] = ACTIONS(4898),
    [anon_sym_iq_LBRACE] = ACTIONS(4898),
    [aux_sym_char_literal_token1] = ACTIONS(4898),
    [anon_sym_SQUOTE] = ACTIONS(4896),
    [anon_sym___DATE__] = ACTIONS(4896),
    [anon_sym___FILE__] = ACTIONS(4896),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4896),
    [anon_sym___FUNCTION__] = ACTIONS(4896),
    [anon_sym___LINE__] = ACTIONS(4896),
    [anon_sym___MODULE__] = ACTIONS(4896),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4896),
    [anon_sym___TIME__] = ACTIONS(4896),
    [anon_sym___TIMESTAMP__] = ACTIONS(4896),
    [anon_sym___VENDOR__] = ACTIONS(4896),
    [anon_sym___VERSION__] = ACTIONS(4896),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4898),
    [sym_float_literal] = ACTIONS(4898),
    [sym__string] = ACTIONS(4898),
  },
  [1611] = {
    [sym_identifier] = ACTIONS(4716),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4718),
    [anon_sym_RBRACE] = ACTIONS(4718),
    [anon_sym_LBRACE] = ACTIONS(4718),
    [anon_sym_DOT] = ACTIONS(4718),
    [anon_sym_AMP] = ACTIONS(4718),
    [anon_sym_DASH] = ACTIONS(4716),
    [anon_sym_DASH_DASH] = ACTIONS(4718),
    [anon_sym_PLUS] = ACTIONS(4716),
    [anon_sym_PLUS_PLUS] = ACTIONS(4718),
    [anon_sym_BANG] = ACTIONS(4718),
    [anon_sym_LPAREN] = ACTIONS(4718),
    [anon_sym_RPAREN] = ACTIONS(4718),
    [anon_sym_LBRACK] = ACTIONS(4718),
    [anon_sym_SEMI] = ACTIONS(4718),
    [anon_sym_DOLLAR] = ACTIONS(4718),
    [anon_sym_STAR] = ACTIONS(4718),
    [anon_sym_TILDE] = ACTIONS(4718),
    [anon_sym_AT] = ACTIONS(4718),
    [sym_bool] = ACTIONS(4716),
    [sym_byte] = ACTIONS(4716),
    [sym_ubyte] = ACTIONS(4716),
    [sym_char] = ACTIONS(4716),
    [sym_short] = ACTIONS(4716),
    [sym_ushort] = ACTIONS(4716),
    [sym_int] = ACTIONS(4716),
    [sym_uint] = ACTIONS(4716),
    [sym_long] = ACTIONS(4716),
    [sym_ulong] = ACTIONS(4716),
    [sym_cent] = ACTIONS(4716),
    [sym_ucent] = ACTIONS(4716),
    [sym_wchar] = ACTIONS(4716),
    [sym_dchar] = ACTIONS(4716),
    [sym_float] = ACTIONS(4716),
    [sym_double] = ACTIONS(4716),
    [sym_real] = ACTIONS(4716),
    [sym_ifloat] = ACTIONS(4716),
    [sym_idouble] = ACTIONS(4716),
    [sym_ireal] = ACTIONS(4716),
    [sym_cfloat] = ACTIONS(4716),
    [sym_cdouble] = ACTIONS(4716),
    [sym_creal] = ACTIONS(4716),
    [sym_size_t] = ACTIONS(4716),
    [sym_ptrdiff_t] = ACTIONS(4716),
    [sym_string] = ACTIONS(4716),
    [sym_cstring] = ACTIONS(4716),
    [sym_dstring] = ACTIONS(4716),
    [sym_wstring] = ACTIONS(4716),
    [sym_noreturn] = ACTIONS(4716),
    [sym_true] = ACTIONS(4716),
    [sym_false] = ACTIONS(4716),
    [sym_null] = ACTIONS(4716),
    [sym_super] = ACTIONS(4716),
    [sym_this] = ACTIONS(4716),
    [sym_abstract] = ACTIONS(4716),
    [sym_alias] = ACTIONS(4716),
    [sym_align] = ACTIONS(4716),
    [sym_asm] = ACTIONS(4716),
    [sym_assert] = ACTIONS(4716),
    [sym_auto] = ACTIONS(4716),
    [sym_break] = ACTIONS(4716),
    [sym_case] = ACTIONS(4716),
    [sym_cast] = ACTIONS(4716),
    [sym_class] = ACTIONS(4716),
    [sym_const] = ACTIONS(4716),
    [sym_continue] = ACTIONS(4716),
    [sym_debug] = ACTIONS(4716),
    [sym_default] = ACTIONS(4716),
    [sym_delegate] = ACTIONS(4716),
    [sym_delete] = ACTIONS(4716),
    [sym_deprecated] = ACTIONS(4716),
    [sym_do] = ACTIONS(4716),
    [sym_else] = ACTIONS(4716),
    [sym_enum] = ACTIONS(4716),
    [sym_export] = ACTIONS(4716),
    [sym_extern] = ACTIONS(4716),
    [sym_final] = ACTIONS(4716),
    [sym_for] = ACTIONS(4716),
    [sym_foreach] = ACTIONS(4716),
    [sym_foreach_reverse] = ACTIONS(4716),
    [sym_function] = ACTIONS(4716),
    [sym_goto] = ACTIONS(4716),
    [sym_if] = ACTIONS(4716),
    [sym_immutable] = ACTIONS(4716),
    [sym_import] = ACTIONS(4716),
    [sym_in] = ACTIONS(4716),
    [sym_inout] = ACTIONS(4716),
    [sym_interface] = ACTIONS(4716),
    [sym_invariant] = ACTIONS(4716),
    [sym_is] = ACTIONS(4716),
    [sym_mixin] = ACTIONS(4716),
    [sym_new] = ACTIONS(4716),
    [sym_nothrow] = ACTIONS(4716),
    [sym_out] = ACTIONS(4716),
    [sym_override] = ACTIONS(4716),
    [sym_package] = ACTIONS(4716),
    [sym_pragma] = ACTIONS(4716),
    [sym_private] = ACTIONS(4716),
    [sym_protected] = ACTIONS(4716),
    [sym_public] = ACTIONS(4716),
    [sym_pure] = ACTIONS(4716),
    [sym_ref] = ACTIONS(4716),
    [sym_return] = ACTIONS(4716),
    [sym_scope] = ACTIONS(4716),
    [sym_shared] = ACTIONS(4716),
    [sym_static] = ACTIONS(4716),
    [sym_struct] = ACTIONS(4716),
    [sym_switch] = ACTIONS(4716),
    [sym_synchronized] = ACTIONS(4716),
    [sym_template] = ACTIONS(4716),
    [sym_throw] = ACTIONS(4716),
    [sym_try] = ACTIONS(4716),
    [sym_typeid] = ACTIONS(4716),
    [sym_typeof] = ACTIONS(4716),
    [sym_union] = ACTIONS(4716),
    [sym_unittest] = ACTIONS(4716),
    [sym_version] = ACTIONS(4716),
    [sym_while] = ACTIONS(4716),
    [sym_with] = ACTIONS(4716),
    [sym_gshared] = ACTIONS(4716),
    [sym_traits] = ACTIONS(4716),
    [sym_vector] = ACTIONS(4716),
    [sym_void] = ACTIONS(4716),
    [anon_sym_BQUOTE] = ACTIONS(4718),
    [anon_sym_r_DQUOTE] = ACTIONS(4718),
    [anon_sym_x_DQUOTE] = ACTIONS(4718),
    [anon_sym_DQUOTE] = ACTIONS(4718),
    [anon_sym_i_BQUOTE] = ACTIONS(4718),
    [anon_sym_i_DQUOTE] = ACTIONS(4718),
    [anon_sym_iq_LBRACE] = ACTIONS(4718),
    [aux_sym_char_literal_token1] = ACTIONS(4718),
    [anon_sym_SQUOTE] = ACTIONS(4716),
    [anon_sym___DATE__] = ACTIONS(4716),
    [anon_sym___FILE__] = ACTIONS(4716),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4716),
    [anon_sym___FUNCTION__] = ACTIONS(4716),
    [anon_sym___LINE__] = ACTIONS(4716),
    [anon_sym___MODULE__] = ACTIONS(4716),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4716),
    [anon_sym___TIME__] = ACTIONS(4716),
    [anon_sym___TIMESTAMP__] = ACTIONS(4716),
    [anon_sym___VENDOR__] = ACTIONS(4716),
    [anon_sym___VERSION__] = ACTIONS(4716),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4718),
    [sym_float_literal] = ACTIONS(4718),
    [sym__string] = ACTIONS(4718),
  },
  [1612] = {
    [sym_identifier] = ACTIONS(4698),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4701),
    [anon_sym_RBRACE] = ACTIONS(4701),
    [anon_sym_LBRACE] = ACTIONS(4701),
    [anon_sym_DOT] = ACTIONS(4701),
    [anon_sym_AMP] = ACTIONS(4701),
    [anon_sym_DASH] = ACTIONS(4698),
    [anon_sym_DASH_DASH] = ACTIONS(4701),
    [anon_sym_PLUS] = ACTIONS(4698),
    [anon_sym_PLUS_PLUS] = ACTIONS(4701),
    [anon_sym_BANG] = ACTIONS(4701),
    [anon_sym_LPAREN] = ACTIONS(4701),
    [anon_sym_RPAREN] = ACTIONS(4701),
    [anon_sym_LBRACK] = ACTIONS(4701),
    [anon_sym_SEMI] = ACTIONS(4701),
    [anon_sym_DOLLAR] = ACTIONS(4701),
    [anon_sym_STAR] = ACTIONS(4701),
    [anon_sym_TILDE] = ACTIONS(4701),
    [anon_sym_AT] = ACTIONS(4701),
    [sym_bool] = ACTIONS(4698),
    [sym_byte] = ACTIONS(4698),
    [sym_ubyte] = ACTIONS(4698),
    [sym_char] = ACTIONS(4698),
    [sym_short] = ACTIONS(4698),
    [sym_ushort] = ACTIONS(4698),
    [sym_int] = ACTIONS(4698),
    [sym_uint] = ACTIONS(4698),
    [sym_long] = ACTIONS(4698),
    [sym_ulong] = ACTIONS(4698),
    [sym_cent] = ACTIONS(4698),
    [sym_ucent] = ACTIONS(4698),
    [sym_wchar] = ACTIONS(4698),
    [sym_dchar] = ACTIONS(4698),
    [sym_float] = ACTIONS(4698),
    [sym_double] = ACTIONS(4698),
    [sym_real] = ACTIONS(4698),
    [sym_ifloat] = ACTIONS(4698),
    [sym_idouble] = ACTIONS(4698),
    [sym_ireal] = ACTIONS(4698),
    [sym_cfloat] = ACTIONS(4698),
    [sym_cdouble] = ACTIONS(4698),
    [sym_creal] = ACTIONS(4698),
    [sym_size_t] = ACTIONS(4698),
    [sym_ptrdiff_t] = ACTIONS(4698),
    [sym_string] = ACTIONS(4698),
    [sym_cstring] = ACTIONS(4698),
    [sym_dstring] = ACTIONS(4698),
    [sym_wstring] = ACTIONS(4698),
    [sym_noreturn] = ACTIONS(4698),
    [sym_true] = ACTIONS(4698),
    [sym_false] = ACTIONS(4698),
    [sym_null] = ACTIONS(4698),
    [sym_super] = ACTIONS(4698),
    [sym_this] = ACTIONS(4698),
    [sym_abstract] = ACTIONS(4698),
    [sym_alias] = ACTIONS(4698),
    [sym_align] = ACTIONS(4698),
    [sym_asm] = ACTIONS(4698),
    [sym_assert] = ACTIONS(4698),
    [sym_auto] = ACTIONS(4698),
    [sym_break] = ACTIONS(4698),
    [sym_case] = ACTIONS(4698),
    [sym_cast] = ACTIONS(4698),
    [sym_class] = ACTIONS(4698),
    [sym_const] = ACTIONS(4698),
    [sym_continue] = ACTIONS(4698),
    [sym_debug] = ACTIONS(4698),
    [sym_default] = ACTIONS(4698),
    [sym_delegate] = ACTIONS(4698),
    [sym_delete] = ACTIONS(4698),
    [sym_deprecated] = ACTIONS(4698),
    [sym_do] = ACTIONS(4698),
    [sym_else] = ACTIONS(4698),
    [sym_enum] = ACTIONS(4698),
    [sym_export] = ACTIONS(4698),
    [sym_extern] = ACTIONS(4698),
    [sym_final] = ACTIONS(4698),
    [sym_for] = ACTIONS(4698),
    [sym_foreach] = ACTIONS(4698),
    [sym_foreach_reverse] = ACTIONS(4698),
    [sym_function] = ACTIONS(4698),
    [sym_goto] = ACTIONS(4698),
    [sym_if] = ACTIONS(4698),
    [sym_immutable] = ACTIONS(4698),
    [sym_import] = ACTIONS(4698),
    [sym_in] = ACTIONS(4698),
    [sym_inout] = ACTIONS(4698),
    [sym_interface] = ACTIONS(4698),
    [sym_invariant] = ACTIONS(4698),
    [sym_is] = ACTIONS(4698),
    [sym_mixin] = ACTIONS(4698),
    [sym_new] = ACTIONS(4698),
    [sym_nothrow] = ACTIONS(4698),
    [sym_out] = ACTIONS(4698),
    [sym_override] = ACTIONS(4698),
    [sym_package] = ACTIONS(4698),
    [sym_pragma] = ACTIONS(4698),
    [sym_private] = ACTIONS(4698),
    [sym_protected] = ACTIONS(4698),
    [sym_public] = ACTIONS(4698),
    [sym_pure] = ACTIONS(4698),
    [sym_ref] = ACTIONS(4698),
    [sym_return] = ACTIONS(4698),
    [sym_scope] = ACTIONS(4698),
    [sym_shared] = ACTIONS(4698),
    [sym_static] = ACTIONS(4698),
    [sym_struct] = ACTIONS(4698),
    [sym_switch] = ACTIONS(4698),
    [sym_synchronized] = ACTIONS(4698),
    [sym_template] = ACTIONS(4698),
    [sym_throw] = ACTIONS(4698),
    [sym_try] = ACTIONS(4698),
    [sym_typeid] = ACTIONS(4698),
    [sym_typeof] = ACTIONS(4698),
    [sym_union] = ACTIONS(4698),
    [sym_unittest] = ACTIONS(4698),
    [sym_version] = ACTIONS(4698),
    [sym_while] = ACTIONS(4698),
    [sym_with] = ACTIONS(4698),
    [sym_gshared] = ACTIONS(4698),
    [sym_traits] = ACTIONS(4698),
    [sym_vector] = ACTIONS(4698),
    [sym_void] = ACTIONS(4698),
    [anon_sym_BQUOTE] = ACTIONS(4701),
    [anon_sym_r_DQUOTE] = ACTIONS(4701),
    [anon_sym_x_DQUOTE] = ACTIONS(4701),
    [anon_sym_DQUOTE] = ACTIONS(4701),
    [anon_sym_i_BQUOTE] = ACTIONS(4701),
    [anon_sym_i_DQUOTE] = ACTIONS(4701),
    [anon_sym_iq_LBRACE] = ACTIONS(4701),
    [aux_sym_char_literal_token1] = ACTIONS(4701),
    [anon_sym_SQUOTE] = ACTIONS(4698),
    [anon_sym___DATE__] = ACTIONS(4698),
    [anon_sym___FILE__] = ACTIONS(4698),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4698),
    [anon_sym___FUNCTION__] = ACTIONS(4698),
    [anon_sym___LINE__] = ACTIONS(4698),
    [anon_sym___MODULE__] = ACTIONS(4698),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4698),
    [anon_sym___TIME__] = ACTIONS(4698),
    [anon_sym___TIMESTAMP__] = ACTIONS(4698),
    [anon_sym___VENDOR__] = ACTIONS(4698),
    [anon_sym___VERSION__] = ACTIONS(4698),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4701),
    [sym_float_literal] = ACTIONS(4701),
    [sym__string] = ACTIONS(4701),
  },
  [1613] = {
    [sym_identifier] = ACTIONS(4422),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4424),
    [anon_sym_RBRACE] = ACTIONS(4424),
    [anon_sym_LBRACE] = ACTIONS(4424),
    [anon_sym_DOT] = ACTIONS(4424),
    [anon_sym_AMP] = ACTIONS(4424),
    [anon_sym_DASH] = ACTIONS(4422),
    [anon_sym_DASH_DASH] = ACTIONS(4424),
    [anon_sym_PLUS] = ACTIONS(4422),
    [anon_sym_PLUS_PLUS] = ACTIONS(4424),
    [anon_sym_BANG] = ACTIONS(4424),
    [anon_sym_LPAREN] = ACTIONS(4424),
    [anon_sym_RPAREN] = ACTIONS(4424),
    [anon_sym_LBRACK] = ACTIONS(4424),
    [anon_sym_SEMI] = ACTIONS(4424),
    [anon_sym_DOLLAR] = ACTIONS(4424),
    [anon_sym_STAR] = ACTIONS(4424),
    [anon_sym_TILDE] = ACTIONS(4424),
    [anon_sym_AT] = ACTIONS(4424),
    [sym_bool] = ACTIONS(4422),
    [sym_byte] = ACTIONS(4422),
    [sym_ubyte] = ACTIONS(4422),
    [sym_char] = ACTIONS(4422),
    [sym_short] = ACTIONS(4422),
    [sym_ushort] = ACTIONS(4422),
    [sym_int] = ACTIONS(4422),
    [sym_uint] = ACTIONS(4422),
    [sym_long] = ACTIONS(4422),
    [sym_ulong] = ACTIONS(4422),
    [sym_cent] = ACTIONS(4422),
    [sym_ucent] = ACTIONS(4422),
    [sym_wchar] = ACTIONS(4422),
    [sym_dchar] = ACTIONS(4422),
    [sym_float] = ACTIONS(4422),
    [sym_double] = ACTIONS(4422),
    [sym_real] = ACTIONS(4422),
    [sym_ifloat] = ACTIONS(4422),
    [sym_idouble] = ACTIONS(4422),
    [sym_ireal] = ACTIONS(4422),
    [sym_cfloat] = ACTIONS(4422),
    [sym_cdouble] = ACTIONS(4422),
    [sym_creal] = ACTIONS(4422),
    [sym_size_t] = ACTIONS(4422),
    [sym_ptrdiff_t] = ACTIONS(4422),
    [sym_string] = ACTIONS(4422),
    [sym_cstring] = ACTIONS(4422),
    [sym_dstring] = ACTIONS(4422),
    [sym_wstring] = ACTIONS(4422),
    [sym_noreturn] = ACTIONS(4422),
    [sym_true] = ACTIONS(4422),
    [sym_false] = ACTIONS(4422),
    [sym_null] = ACTIONS(4422),
    [sym_super] = ACTIONS(4422),
    [sym_this] = ACTIONS(4422),
    [sym_abstract] = ACTIONS(4422),
    [sym_alias] = ACTIONS(4422),
    [sym_align] = ACTIONS(4422),
    [sym_asm] = ACTIONS(4422),
    [sym_assert] = ACTIONS(4422),
    [sym_auto] = ACTIONS(4422),
    [sym_break] = ACTIONS(4422),
    [sym_case] = ACTIONS(4422),
    [sym_cast] = ACTIONS(4422),
    [sym_class] = ACTIONS(4422),
    [sym_const] = ACTIONS(4422),
    [sym_continue] = ACTIONS(4422),
    [sym_debug] = ACTIONS(4422),
    [sym_default] = ACTIONS(4422),
    [sym_delegate] = ACTIONS(4422),
    [sym_delete] = ACTIONS(4422),
    [sym_deprecated] = ACTIONS(4422),
    [sym_do] = ACTIONS(4422),
    [sym_else] = ACTIONS(4422),
    [sym_enum] = ACTIONS(4422),
    [sym_export] = ACTIONS(4422),
    [sym_extern] = ACTIONS(4422),
    [sym_final] = ACTIONS(4422),
    [sym_for] = ACTIONS(4422),
    [sym_foreach] = ACTIONS(4422),
    [sym_foreach_reverse] = ACTIONS(4422),
    [sym_function] = ACTIONS(4422),
    [sym_goto] = ACTIONS(4422),
    [sym_if] = ACTIONS(4422),
    [sym_immutable] = ACTIONS(4422),
    [sym_import] = ACTIONS(4422),
    [sym_in] = ACTIONS(4422),
    [sym_inout] = ACTIONS(4422),
    [sym_interface] = ACTIONS(4422),
    [sym_invariant] = ACTIONS(4422),
    [sym_is] = ACTIONS(4422),
    [sym_mixin] = ACTIONS(4422),
    [sym_new] = ACTIONS(4422),
    [sym_nothrow] = ACTIONS(4422),
    [sym_out] = ACTIONS(4422),
    [sym_override] = ACTIONS(4422),
    [sym_package] = ACTIONS(4422),
    [sym_pragma] = ACTIONS(4422),
    [sym_private] = ACTIONS(4422),
    [sym_protected] = ACTIONS(4422),
    [sym_public] = ACTIONS(4422),
    [sym_pure] = ACTIONS(4422),
    [sym_ref] = ACTIONS(4422),
    [sym_return] = ACTIONS(4422),
    [sym_scope] = ACTIONS(4422),
    [sym_shared] = ACTIONS(4422),
    [sym_static] = ACTIONS(4422),
    [sym_struct] = ACTIONS(4422),
    [sym_switch] = ACTIONS(4422),
    [sym_synchronized] = ACTIONS(4422),
    [sym_template] = ACTIONS(4422),
    [sym_throw] = ACTIONS(4422),
    [sym_try] = ACTIONS(4422),
    [sym_typeid] = ACTIONS(4422),
    [sym_typeof] = ACTIONS(4422),
    [sym_union] = ACTIONS(4422),
    [sym_unittest] = ACTIONS(4422),
    [sym_version] = ACTIONS(4422),
    [sym_while] = ACTIONS(4422),
    [sym_with] = ACTIONS(4422),
    [sym_gshared] = ACTIONS(4422),
    [sym_traits] = ACTIONS(4422),
    [sym_vector] = ACTIONS(4422),
    [sym_void] = ACTIONS(4422),
    [anon_sym_BQUOTE] = ACTIONS(4424),
    [anon_sym_r_DQUOTE] = ACTIONS(4424),
    [anon_sym_x_DQUOTE] = ACTIONS(4424),
    [anon_sym_DQUOTE] = ACTIONS(4424),
    [anon_sym_i_BQUOTE] = ACTIONS(4424),
    [anon_sym_i_DQUOTE] = ACTIONS(4424),
    [anon_sym_iq_LBRACE] = ACTIONS(4424),
    [aux_sym_char_literal_token1] = ACTIONS(4424),
    [anon_sym_SQUOTE] = ACTIONS(4422),
    [anon_sym___DATE__] = ACTIONS(4422),
    [anon_sym___FILE__] = ACTIONS(4422),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4422),
    [anon_sym___FUNCTION__] = ACTIONS(4422),
    [anon_sym___LINE__] = ACTIONS(4422),
    [anon_sym___MODULE__] = ACTIONS(4422),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4422),
    [anon_sym___TIME__] = ACTIONS(4422),
    [anon_sym___TIMESTAMP__] = ACTIONS(4422),
    [anon_sym___VENDOR__] = ACTIONS(4422),
    [anon_sym___VERSION__] = ACTIONS(4422),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4424),
    [sym_float_literal] = ACTIONS(4424),
    [sym__string] = ACTIONS(4424),
  },
  [1614] = {
    [sym_identifier] = ACTIONS(4888),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4890),
    [anon_sym_RBRACE] = ACTIONS(4890),
    [anon_sym_LBRACE] = ACTIONS(4890),
    [anon_sym_DOT] = ACTIONS(4890),
    [anon_sym_AMP] = ACTIONS(4890),
    [anon_sym_DASH] = ACTIONS(4888),
    [anon_sym_DASH_DASH] = ACTIONS(4890),
    [anon_sym_PLUS] = ACTIONS(4888),
    [anon_sym_PLUS_PLUS] = ACTIONS(4890),
    [anon_sym_BANG] = ACTIONS(4890),
    [anon_sym_LPAREN] = ACTIONS(4890),
    [anon_sym_RPAREN] = ACTIONS(4890),
    [anon_sym_LBRACK] = ACTIONS(4890),
    [anon_sym_SEMI] = ACTIONS(4890),
    [anon_sym_DOLLAR] = ACTIONS(4890),
    [anon_sym_STAR] = ACTIONS(4890),
    [anon_sym_TILDE] = ACTIONS(4890),
    [anon_sym_AT] = ACTIONS(4890),
    [sym_bool] = ACTIONS(4888),
    [sym_byte] = ACTIONS(4888),
    [sym_ubyte] = ACTIONS(4888),
    [sym_char] = ACTIONS(4888),
    [sym_short] = ACTIONS(4888),
    [sym_ushort] = ACTIONS(4888),
    [sym_int] = ACTIONS(4888),
    [sym_uint] = ACTIONS(4888),
    [sym_long] = ACTIONS(4888),
    [sym_ulong] = ACTIONS(4888),
    [sym_cent] = ACTIONS(4888),
    [sym_ucent] = ACTIONS(4888),
    [sym_wchar] = ACTIONS(4888),
    [sym_dchar] = ACTIONS(4888),
    [sym_float] = ACTIONS(4888),
    [sym_double] = ACTIONS(4888),
    [sym_real] = ACTIONS(4888),
    [sym_ifloat] = ACTIONS(4888),
    [sym_idouble] = ACTIONS(4888),
    [sym_ireal] = ACTIONS(4888),
    [sym_cfloat] = ACTIONS(4888),
    [sym_cdouble] = ACTIONS(4888),
    [sym_creal] = ACTIONS(4888),
    [sym_size_t] = ACTIONS(4888),
    [sym_ptrdiff_t] = ACTIONS(4888),
    [sym_string] = ACTIONS(4888),
    [sym_cstring] = ACTIONS(4888),
    [sym_dstring] = ACTIONS(4888),
    [sym_wstring] = ACTIONS(4888),
    [sym_noreturn] = ACTIONS(4888),
    [sym_true] = ACTIONS(4888),
    [sym_false] = ACTIONS(4888),
    [sym_null] = ACTIONS(4888),
    [sym_super] = ACTIONS(4888),
    [sym_this] = ACTIONS(4888),
    [sym_abstract] = ACTIONS(4888),
    [sym_alias] = ACTIONS(4888),
    [sym_align] = ACTIONS(4888),
    [sym_asm] = ACTIONS(4888),
    [sym_assert] = ACTIONS(4888),
    [sym_auto] = ACTIONS(4888),
    [sym_break] = ACTIONS(4888),
    [sym_case] = ACTIONS(4888),
    [sym_cast] = ACTIONS(4888),
    [sym_class] = ACTIONS(4888),
    [sym_const] = ACTIONS(4888),
    [sym_continue] = ACTIONS(4888),
    [sym_debug] = ACTIONS(4888),
    [sym_default] = ACTIONS(4888),
    [sym_delegate] = ACTIONS(4888),
    [sym_delete] = ACTIONS(4888),
    [sym_deprecated] = ACTIONS(4888),
    [sym_do] = ACTIONS(4888),
    [sym_else] = ACTIONS(4888),
    [sym_enum] = ACTIONS(4888),
    [sym_export] = ACTIONS(4888),
    [sym_extern] = ACTIONS(4888),
    [sym_final] = ACTIONS(4888),
    [sym_for] = ACTIONS(4888),
    [sym_foreach] = ACTIONS(4888),
    [sym_foreach_reverse] = ACTIONS(4888),
    [sym_function] = ACTIONS(4888),
    [sym_goto] = ACTIONS(4888),
    [sym_if] = ACTIONS(4888),
    [sym_immutable] = ACTIONS(4888),
    [sym_import] = ACTIONS(4888),
    [sym_in] = ACTIONS(4888),
    [sym_inout] = ACTIONS(4888),
    [sym_interface] = ACTIONS(4888),
    [sym_invariant] = ACTIONS(4888),
    [sym_is] = ACTIONS(4888),
    [sym_mixin] = ACTIONS(4888),
    [sym_new] = ACTIONS(4888),
    [sym_nothrow] = ACTIONS(4888),
    [sym_out] = ACTIONS(4888),
    [sym_override] = ACTIONS(4888),
    [sym_package] = ACTIONS(4888),
    [sym_pragma] = ACTIONS(4888),
    [sym_private] = ACTIONS(4888),
    [sym_protected] = ACTIONS(4888),
    [sym_public] = ACTIONS(4888),
    [sym_pure] = ACTIONS(4888),
    [sym_ref] = ACTIONS(4888),
    [sym_return] = ACTIONS(4888),
    [sym_scope] = ACTIONS(4888),
    [sym_shared] = ACTIONS(4888),
    [sym_static] = ACTIONS(4888),
    [sym_struct] = ACTIONS(4888),
    [sym_switch] = ACTIONS(4888),
    [sym_synchronized] = ACTIONS(4888),
    [sym_template] = ACTIONS(4888),
    [sym_throw] = ACTIONS(4888),
    [sym_try] = ACTIONS(4888),
    [sym_typeid] = ACTIONS(4888),
    [sym_typeof] = ACTIONS(4888),
    [sym_union] = ACTIONS(4888),
    [sym_unittest] = ACTIONS(4888),
    [sym_version] = ACTIONS(4888),
    [sym_while] = ACTIONS(4888),
    [sym_with] = ACTIONS(4888),
    [sym_gshared] = ACTIONS(4888),
    [sym_traits] = ACTIONS(4888),
    [sym_vector] = ACTIONS(4888),
    [sym_void] = ACTIONS(4888),
    [anon_sym_BQUOTE] = ACTIONS(4890),
    [anon_sym_r_DQUOTE] = ACTIONS(4890),
    [anon_sym_x_DQUOTE] = ACTIONS(4890),
    [anon_sym_DQUOTE] = ACTIONS(4890),
    [anon_sym_i_BQUOTE] = ACTIONS(4890),
    [anon_sym_i_DQUOTE] = ACTIONS(4890),
    [anon_sym_iq_LBRACE] = ACTIONS(4890),
    [aux_sym_char_literal_token1] = ACTIONS(4890),
    [anon_sym_SQUOTE] = ACTIONS(4888),
    [anon_sym___DATE__] = ACTIONS(4888),
    [anon_sym___FILE__] = ACTIONS(4888),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4888),
    [anon_sym___FUNCTION__] = ACTIONS(4888),
    [anon_sym___LINE__] = ACTIONS(4888),
    [anon_sym___MODULE__] = ACTIONS(4888),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4888),
    [anon_sym___TIME__] = ACTIONS(4888),
    [anon_sym___TIMESTAMP__] = ACTIONS(4888),
    [anon_sym___VENDOR__] = ACTIONS(4888),
    [anon_sym___VERSION__] = ACTIONS(4888),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4890),
    [sym_float_literal] = ACTIONS(4890),
    [sym__string] = ACTIONS(4890),
  },
  [1615] = {
    [sym_identifier] = ACTIONS(4289),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4291),
    [anon_sym_RBRACE] = ACTIONS(4291),
    [anon_sym_LBRACE] = ACTIONS(4291),
    [anon_sym_DOT] = ACTIONS(4291),
    [anon_sym_AMP] = ACTIONS(4291),
    [anon_sym_DASH] = ACTIONS(4289),
    [anon_sym_DASH_DASH] = ACTIONS(4291),
    [anon_sym_PLUS] = ACTIONS(4289),
    [anon_sym_PLUS_PLUS] = ACTIONS(4291),
    [anon_sym_BANG] = ACTIONS(4291),
    [anon_sym_LPAREN] = ACTIONS(4291),
    [anon_sym_RPAREN] = ACTIONS(4291),
    [anon_sym_LBRACK] = ACTIONS(4291),
    [anon_sym_SEMI] = ACTIONS(4291),
    [anon_sym_DOLLAR] = ACTIONS(4291),
    [anon_sym_STAR] = ACTIONS(4291),
    [anon_sym_TILDE] = ACTIONS(4291),
    [anon_sym_AT] = ACTIONS(4291),
    [sym_bool] = ACTIONS(4289),
    [sym_byte] = ACTIONS(4289),
    [sym_ubyte] = ACTIONS(4289),
    [sym_char] = ACTIONS(4289),
    [sym_short] = ACTIONS(4289),
    [sym_ushort] = ACTIONS(4289),
    [sym_int] = ACTIONS(4289),
    [sym_uint] = ACTIONS(4289),
    [sym_long] = ACTIONS(4289),
    [sym_ulong] = ACTIONS(4289),
    [sym_cent] = ACTIONS(4289),
    [sym_ucent] = ACTIONS(4289),
    [sym_wchar] = ACTIONS(4289),
    [sym_dchar] = ACTIONS(4289),
    [sym_float] = ACTIONS(4289),
    [sym_double] = ACTIONS(4289),
    [sym_real] = ACTIONS(4289),
    [sym_ifloat] = ACTIONS(4289),
    [sym_idouble] = ACTIONS(4289),
    [sym_ireal] = ACTIONS(4289),
    [sym_cfloat] = ACTIONS(4289),
    [sym_cdouble] = ACTIONS(4289),
    [sym_creal] = ACTIONS(4289),
    [sym_size_t] = ACTIONS(4289),
    [sym_ptrdiff_t] = ACTIONS(4289),
    [sym_string] = ACTIONS(4289),
    [sym_cstring] = ACTIONS(4289),
    [sym_dstring] = ACTIONS(4289),
    [sym_wstring] = ACTIONS(4289),
    [sym_noreturn] = ACTIONS(4289),
    [sym_true] = ACTIONS(4289),
    [sym_false] = ACTIONS(4289),
    [sym_null] = ACTIONS(4289),
    [sym_super] = ACTIONS(4289),
    [sym_this] = ACTIONS(4289),
    [sym_abstract] = ACTIONS(4289),
    [sym_alias] = ACTIONS(4289),
    [sym_align] = ACTIONS(4289),
    [sym_asm] = ACTIONS(4289),
    [sym_assert] = ACTIONS(4289),
    [sym_auto] = ACTIONS(4289),
    [sym_break] = ACTIONS(4289),
    [sym_case] = ACTIONS(4289),
    [sym_cast] = ACTIONS(4289),
    [sym_class] = ACTIONS(4289),
    [sym_const] = ACTIONS(4289),
    [sym_continue] = ACTIONS(4289),
    [sym_debug] = ACTIONS(4289),
    [sym_default] = ACTIONS(4289),
    [sym_delegate] = ACTIONS(4289),
    [sym_delete] = ACTIONS(4289),
    [sym_deprecated] = ACTIONS(4289),
    [sym_do] = ACTIONS(4289),
    [sym_else] = ACTIONS(4289),
    [sym_enum] = ACTIONS(4289),
    [sym_export] = ACTIONS(4289),
    [sym_extern] = ACTIONS(4289),
    [sym_final] = ACTIONS(4289),
    [sym_for] = ACTIONS(4289),
    [sym_foreach] = ACTIONS(4289),
    [sym_foreach_reverse] = ACTIONS(4289),
    [sym_function] = ACTIONS(4289),
    [sym_goto] = ACTIONS(4289),
    [sym_if] = ACTIONS(4289),
    [sym_immutable] = ACTIONS(4289),
    [sym_import] = ACTIONS(4289),
    [sym_in] = ACTIONS(4289),
    [sym_inout] = ACTIONS(4289),
    [sym_interface] = ACTIONS(4289),
    [sym_invariant] = ACTIONS(4289),
    [sym_is] = ACTIONS(4289),
    [sym_mixin] = ACTIONS(4289),
    [sym_new] = ACTIONS(4289),
    [sym_nothrow] = ACTIONS(4289),
    [sym_out] = ACTIONS(4289),
    [sym_override] = ACTIONS(4289),
    [sym_package] = ACTIONS(4289),
    [sym_pragma] = ACTIONS(4289),
    [sym_private] = ACTIONS(4289),
    [sym_protected] = ACTIONS(4289),
    [sym_public] = ACTIONS(4289),
    [sym_pure] = ACTIONS(4289),
    [sym_ref] = ACTIONS(4289),
    [sym_return] = ACTIONS(4289),
    [sym_scope] = ACTIONS(4289),
    [sym_shared] = ACTIONS(4289),
    [sym_static] = ACTIONS(4289),
    [sym_struct] = ACTIONS(4289),
    [sym_switch] = ACTIONS(4289),
    [sym_synchronized] = ACTIONS(4289),
    [sym_template] = ACTIONS(4289),
    [sym_throw] = ACTIONS(4289),
    [sym_try] = ACTIONS(4289),
    [sym_typeid] = ACTIONS(4289),
    [sym_typeof] = ACTIONS(4289),
    [sym_union] = ACTIONS(4289),
    [sym_unittest] = ACTIONS(4289),
    [sym_version] = ACTIONS(4289),
    [sym_while] = ACTIONS(4289),
    [sym_with] = ACTIONS(4289),
    [sym_gshared] = ACTIONS(4289),
    [sym_traits] = ACTIONS(4289),
    [sym_vector] = ACTIONS(4289),
    [sym_void] = ACTIONS(4289),
    [anon_sym_BQUOTE] = ACTIONS(4291),
    [anon_sym_r_DQUOTE] = ACTIONS(4291),
    [anon_sym_x_DQUOTE] = ACTIONS(4291),
    [anon_sym_DQUOTE] = ACTIONS(4291),
    [anon_sym_i_BQUOTE] = ACTIONS(4291),
    [anon_sym_i_DQUOTE] = ACTIONS(4291),
    [anon_sym_iq_LBRACE] = ACTIONS(4291),
    [aux_sym_char_literal_token1] = ACTIONS(4291),
    [anon_sym_SQUOTE] = ACTIONS(4289),
    [anon_sym___DATE__] = ACTIONS(4289),
    [anon_sym___FILE__] = ACTIONS(4289),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4289),
    [anon_sym___FUNCTION__] = ACTIONS(4289),
    [anon_sym___LINE__] = ACTIONS(4289),
    [anon_sym___MODULE__] = ACTIONS(4289),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4289),
    [anon_sym___TIME__] = ACTIONS(4289),
    [anon_sym___TIMESTAMP__] = ACTIONS(4289),
    [anon_sym___VENDOR__] = ACTIONS(4289),
    [anon_sym___VERSION__] = ACTIONS(4289),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4291),
    [sym_float_literal] = ACTIONS(4291),
    [sym__string] = ACTIONS(4291),
  },
  [1616] = {
    [sym_identifier] = ACTIONS(2812),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2810),
    [anon_sym_RBRACE] = ACTIONS(2810),
    [anon_sym_LBRACE] = ACTIONS(2810),
    [anon_sym_DOT] = ACTIONS(2810),
    [anon_sym_AMP] = ACTIONS(2810),
    [anon_sym_DASH] = ACTIONS(2812),
    [anon_sym_DASH_DASH] = ACTIONS(2810),
    [anon_sym_PLUS] = ACTIONS(2812),
    [anon_sym_PLUS_PLUS] = ACTIONS(2810),
    [anon_sym_BANG] = ACTIONS(2810),
    [anon_sym_LPAREN] = ACTIONS(2810),
    [anon_sym_RPAREN] = ACTIONS(2810),
    [anon_sym_LBRACK] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2810),
    [anon_sym_DOLLAR] = ACTIONS(2810),
    [anon_sym_STAR] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2810),
    [anon_sym_AT] = ACTIONS(2810),
    [sym_bool] = ACTIONS(2812),
    [sym_byte] = ACTIONS(2812),
    [sym_ubyte] = ACTIONS(2812),
    [sym_char] = ACTIONS(2812),
    [sym_short] = ACTIONS(2812),
    [sym_ushort] = ACTIONS(2812),
    [sym_int] = ACTIONS(2812),
    [sym_uint] = ACTIONS(2812),
    [sym_long] = ACTIONS(2812),
    [sym_ulong] = ACTIONS(2812),
    [sym_cent] = ACTIONS(2812),
    [sym_ucent] = ACTIONS(2812),
    [sym_wchar] = ACTIONS(2812),
    [sym_dchar] = ACTIONS(2812),
    [sym_float] = ACTIONS(2812),
    [sym_double] = ACTIONS(2812),
    [sym_real] = ACTIONS(2812),
    [sym_ifloat] = ACTIONS(2812),
    [sym_idouble] = ACTIONS(2812),
    [sym_ireal] = ACTIONS(2812),
    [sym_cfloat] = ACTIONS(2812),
    [sym_cdouble] = ACTIONS(2812),
    [sym_creal] = ACTIONS(2812),
    [sym_size_t] = ACTIONS(2812),
    [sym_ptrdiff_t] = ACTIONS(2812),
    [sym_string] = ACTIONS(2812),
    [sym_cstring] = ACTIONS(2812),
    [sym_dstring] = ACTIONS(2812),
    [sym_wstring] = ACTIONS(2812),
    [sym_noreturn] = ACTIONS(2812),
    [sym_true] = ACTIONS(2812),
    [sym_false] = ACTIONS(2812),
    [sym_null] = ACTIONS(2812),
    [sym_super] = ACTIONS(2812),
    [sym_this] = ACTIONS(2812),
    [sym_abstract] = ACTIONS(2812),
    [sym_alias] = ACTIONS(2812),
    [sym_align] = ACTIONS(2812),
    [sym_asm] = ACTIONS(2812),
    [sym_assert] = ACTIONS(2812),
    [sym_auto] = ACTIONS(2812),
    [sym_break] = ACTIONS(2812),
    [sym_case] = ACTIONS(2812),
    [sym_cast] = ACTIONS(2812),
    [sym_class] = ACTIONS(2812),
    [sym_const] = ACTIONS(2812),
    [sym_continue] = ACTIONS(2812),
    [sym_debug] = ACTIONS(2812),
    [sym_default] = ACTIONS(2812),
    [sym_delegate] = ACTIONS(2812),
    [sym_delete] = ACTIONS(2812),
    [sym_deprecated] = ACTIONS(2812),
    [sym_do] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(2812),
    [sym_export] = ACTIONS(2812),
    [sym_extern] = ACTIONS(2812),
    [sym_final] = ACTIONS(2812),
    [sym_for] = ACTIONS(2812),
    [sym_foreach] = ACTIONS(2812),
    [sym_foreach_reverse] = ACTIONS(2812),
    [sym_function] = ACTIONS(2812),
    [sym_goto] = ACTIONS(2812),
    [sym_if] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(2812),
    [sym_import] = ACTIONS(2812),
    [sym_in] = ACTIONS(2812),
    [sym_inout] = ACTIONS(2812),
    [sym_interface] = ACTIONS(2812),
    [sym_invariant] = ACTIONS(2812),
    [sym_is] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2812),
    [sym_new] = ACTIONS(2812),
    [sym_nothrow] = ACTIONS(2812),
    [sym_out] = ACTIONS(2812),
    [sym_override] = ACTIONS(2812),
    [sym_package] = ACTIONS(2812),
    [sym_pragma] = ACTIONS(2812),
    [sym_private] = ACTIONS(2812),
    [sym_protected] = ACTIONS(2812),
    [sym_public] = ACTIONS(2812),
    [sym_pure] = ACTIONS(2812),
    [sym_ref] = ACTIONS(2812),
    [sym_return] = ACTIONS(2812),
    [sym_scope] = ACTIONS(2812),
    [sym_shared] = ACTIONS(2812),
    [sym_static] = ACTIONS(2812),
    [sym_struct] = ACTIONS(2812),
    [sym_switch] = ACTIONS(2812),
    [sym_synchronized] = ACTIONS(2812),
    [sym_template] = ACTIONS(2812),
    [sym_throw] = ACTIONS(2812),
    [sym_try] = ACTIONS(2812),
    [sym_typeid] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(2812),
    [sym_union] = ACTIONS(2812),
    [sym_unittest] = ACTIONS(2812),
    [sym_version] = ACTIONS(2812),
    [sym_while] = ACTIONS(2812),
    [sym_with] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(2812),
    [sym_traits] = ACTIONS(2812),
    [sym_vector] = ACTIONS(2812),
    [sym_void] = ACTIONS(2812),
    [anon_sym_BQUOTE] = ACTIONS(2810),
    [anon_sym_r_DQUOTE] = ACTIONS(2810),
    [anon_sym_x_DQUOTE] = ACTIONS(2810),
    [anon_sym_DQUOTE] = ACTIONS(2810),
    [anon_sym_i_BQUOTE] = ACTIONS(2810),
    [anon_sym_i_DQUOTE] = ACTIONS(2810),
    [anon_sym_iq_LBRACE] = ACTIONS(2810),
    [aux_sym_char_literal_token1] = ACTIONS(2810),
    [anon_sym_SQUOTE] = ACTIONS(2812),
    [anon_sym___DATE__] = ACTIONS(2812),
    [anon_sym___FILE__] = ACTIONS(2812),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2812),
    [anon_sym___FUNCTION__] = ACTIONS(2812),
    [anon_sym___LINE__] = ACTIONS(2812),
    [anon_sym___MODULE__] = ACTIONS(2812),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2812),
    [anon_sym___TIME__] = ACTIONS(2812),
    [anon_sym___TIMESTAMP__] = ACTIONS(2812),
    [anon_sym___VENDOR__] = ACTIONS(2812),
    [anon_sym___VERSION__] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2810),
    [sym_float_literal] = ACTIONS(2810),
    [sym__string] = ACTIONS(2810),
  },
  [1617] = {
    [sym_identifier] = ACTIONS(4378),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4380),
    [anon_sym_RBRACE] = ACTIONS(4380),
    [anon_sym_LBRACE] = ACTIONS(4380),
    [anon_sym_DOT] = ACTIONS(4380),
    [anon_sym_AMP] = ACTIONS(4380),
    [anon_sym_DASH] = ACTIONS(4378),
    [anon_sym_DASH_DASH] = ACTIONS(4380),
    [anon_sym_PLUS] = ACTIONS(4378),
    [anon_sym_PLUS_PLUS] = ACTIONS(4380),
    [anon_sym_BANG] = ACTIONS(4380),
    [anon_sym_LPAREN] = ACTIONS(4380),
    [anon_sym_RPAREN] = ACTIONS(4380),
    [anon_sym_LBRACK] = ACTIONS(4380),
    [anon_sym_SEMI] = ACTIONS(4380),
    [anon_sym_DOLLAR] = ACTIONS(4380),
    [anon_sym_STAR] = ACTIONS(4380),
    [anon_sym_TILDE] = ACTIONS(4380),
    [anon_sym_AT] = ACTIONS(4380),
    [sym_bool] = ACTIONS(4378),
    [sym_byte] = ACTIONS(4378),
    [sym_ubyte] = ACTIONS(4378),
    [sym_char] = ACTIONS(4378),
    [sym_short] = ACTIONS(4378),
    [sym_ushort] = ACTIONS(4378),
    [sym_int] = ACTIONS(4378),
    [sym_uint] = ACTIONS(4378),
    [sym_long] = ACTIONS(4378),
    [sym_ulong] = ACTIONS(4378),
    [sym_cent] = ACTIONS(4378),
    [sym_ucent] = ACTIONS(4378),
    [sym_wchar] = ACTIONS(4378),
    [sym_dchar] = ACTIONS(4378),
    [sym_float] = ACTIONS(4378),
    [sym_double] = ACTIONS(4378),
    [sym_real] = ACTIONS(4378),
    [sym_ifloat] = ACTIONS(4378),
    [sym_idouble] = ACTIONS(4378),
    [sym_ireal] = ACTIONS(4378),
    [sym_cfloat] = ACTIONS(4378),
    [sym_cdouble] = ACTIONS(4378),
    [sym_creal] = ACTIONS(4378),
    [sym_size_t] = ACTIONS(4378),
    [sym_ptrdiff_t] = ACTIONS(4378),
    [sym_string] = ACTIONS(4378),
    [sym_cstring] = ACTIONS(4378),
    [sym_dstring] = ACTIONS(4378),
    [sym_wstring] = ACTIONS(4378),
    [sym_noreturn] = ACTIONS(4378),
    [sym_true] = ACTIONS(4378),
    [sym_false] = ACTIONS(4378),
    [sym_null] = ACTIONS(4378),
    [sym_super] = ACTIONS(4378),
    [sym_this] = ACTIONS(4378),
    [sym_abstract] = ACTIONS(4378),
    [sym_alias] = ACTIONS(4378),
    [sym_align] = ACTIONS(4378),
    [sym_asm] = ACTIONS(4378),
    [sym_assert] = ACTIONS(4378),
    [sym_auto] = ACTIONS(4378),
    [sym_break] = ACTIONS(4378),
    [sym_case] = ACTIONS(4378),
    [sym_cast] = ACTIONS(4378),
    [sym_class] = ACTIONS(4378),
    [sym_const] = ACTIONS(4378),
    [sym_continue] = ACTIONS(4378),
    [sym_debug] = ACTIONS(4378),
    [sym_default] = ACTIONS(4378),
    [sym_delegate] = ACTIONS(4378),
    [sym_delete] = ACTIONS(4378),
    [sym_deprecated] = ACTIONS(4378),
    [sym_do] = ACTIONS(4378),
    [sym_else] = ACTIONS(4378),
    [sym_enum] = ACTIONS(4378),
    [sym_export] = ACTIONS(4378),
    [sym_extern] = ACTIONS(4378),
    [sym_final] = ACTIONS(4378),
    [sym_for] = ACTIONS(4378),
    [sym_foreach] = ACTIONS(4378),
    [sym_foreach_reverse] = ACTIONS(4378),
    [sym_function] = ACTIONS(4378),
    [sym_goto] = ACTIONS(4378),
    [sym_if] = ACTIONS(4378),
    [sym_immutable] = ACTIONS(4378),
    [sym_import] = ACTIONS(4378),
    [sym_in] = ACTIONS(4378),
    [sym_inout] = ACTIONS(4378),
    [sym_interface] = ACTIONS(4378),
    [sym_invariant] = ACTIONS(4378),
    [sym_is] = ACTIONS(4378),
    [sym_mixin] = ACTIONS(4378),
    [sym_new] = ACTIONS(4378),
    [sym_nothrow] = ACTIONS(4378),
    [sym_out] = ACTIONS(4378),
    [sym_override] = ACTIONS(4378),
    [sym_package] = ACTIONS(4378),
    [sym_pragma] = ACTIONS(4378),
    [sym_private] = ACTIONS(4378),
    [sym_protected] = ACTIONS(4378),
    [sym_public] = ACTIONS(4378),
    [sym_pure] = ACTIONS(4378),
    [sym_ref] = ACTIONS(4378),
    [sym_return] = ACTIONS(4378),
    [sym_scope] = ACTIONS(4378),
    [sym_shared] = ACTIONS(4378),
    [sym_static] = ACTIONS(4378),
    [sym_struct] = ACTIONS(4378),
    [sym_switch] = ACTIONS(4378),
    [sym_synchronized] = ACTIONS(4378),
    [sym_template] = ACTIONS(4378),
    [sym_throw] = ACTIONS(4378),
    [sym_try] = ACTIONS(4378),
    [sym_typeid] = ACTIONS(4378),
    [sym_typeof] = ACTIONS(4378),
    [sym_union] = ACTIONS(4378),
    [sym_unittest] = ACTIONS(4378),
    [sym_version] = ACTIONS(4378),
    [sym_while] = ACTIONS(4378),
    [sym_with] = ACTIONS(4378),
    [sym_gshared] = ACTIONS(4378),
    [sym_traits] = ACTIONS(4378),
    [sym_vector] = ACTIONS(4378),
    [sym_void] = ACTIONS(4378),
    [anon_sym_BQUOTE] = ACTIONS(4380),
    [anon_sym_r_DQUOTE] = ACTIONS(4380),
    [anon_sym_x_DQUOTE] = ACTIONS(4380),
    [anon_sym_DQUOTE] = ACTIONS(4380),
    [anon_sym_i_BQUOTE] = ACTIONS(4380),
    [anon_sym_i_DQUOTE] = ACTIONS(4380),
    [anon_sym_iq_LBRACE] = ACTIONS(4380),
    [aux_sym_char_literal_token1] = ACTIONS(4380),
    [anon_sym_SQUOTE] = ACTIONS(4378),
    [anon_sym___DATE__] = ACTIONS(4378),
    [anon_sym___FILE__] = ACTIONS(4378),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4378),
    [anon_sym___FUNCTION__] = ACTIONS(4378),
    [anon_sym___LINE__] = ACTIONS(4378),
    [anon_sym___MODULE__] = ACTIONS(4378),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4378),
    [anon_sym___TIME__] = ACTIONS(4378),
    [anon_sym___TIMESTAMP__] = ACTIONS(4378),
    [anon_sym___VENDOR__] = ACTIONS(4378),
    [anon_sym___VERSION__] = ACTIONS(4378),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4380),
    [sym_float_literal] = ACTIONS(4380),
    [sym__string] = ACTIONS(4380),
  },
  [1618] = {
    [sym_identifier] = ACTIONS(4868),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4870),
    [anon_sym_RBRACE] = ACTIONS(4870),
    [anon_sym_LBRACE] = ACTIONS(4870),
    [anon_sym_DOT] = ACTIONS(4870),
    [anon_sym_AMP] = ACTIONS(4870),
    [anon_sym_DASH] = ACTIONS(4868),
    [anon_sym_DASH_DASH] = ACTIONS(4870),
    [anon_sym_PLUS] = ACTIONS(4868),
    [anon_sym_PLUS_PLUS] = ACTIONS(4870),
    [anon_sym_BANG] = ACTIONS(4870),
    [anon_sym_LPAREN] = ACTIONS(4870),
    [anon_sym_RPAREN] = ACTIONS(4870),
    [anon_sym_LBRACK] = ACTIONS(4870),
    [anon_sym_SEMI] = ACTIONS(4870),
    [anon_sym_DOLLAR] = ACTIONS(4870),
    [anon_sym_STAR] = ACTIONS(4870),
    [anon_sym_TILDE] = ACTIONS(4870),
    [anon_sym_AT] = ACTIONS(4870),
    [sym_bool] = ACTIONS(4868),
    [sym_byte] = ACTIONS(4868),
    [sym_ubyte] = ACTIONS(4868),
    [sym_char] = ACTIONS(4868),
    [sym_short] = ACTIONS(4868),
    [sym_ushort] = ACTIONS(4868),
    [sym_int] = ACTIONS(4868),
    [sym_uint] = ACTIONS(4868),
    [sym_long] = ACTIONS(4868),
    [sym_ulong] = ACTIONS(4868),
    [sym_cent] = ACTIONS(4868),
    [sym_ucent] = ACTIONS(4868),
    [sym_wchar] = ACTIONS(4868),
    [sym_dchar] = ACTIONS(4868),
    [sym_float] = ACTIONS(4868),
    [sym_double] = ACTIONS(4868),
    [sym_real] = ACTIONS(4868),
    [sym_ifloat] = ACTIONS(4868),
    [sym_idouble] = ACTIONS(4868),
    [sym_ireal] = ACTIONS(4868),
    [sym_cfloat] = ACTIONS(4868),
    [sym_cdouble] = ACTIONS(4868),
    [sym_creal] = ACTIONS(4868),
    [sym_size_t] = ACTIONS(4868),
    [sym_ptrdiff_t] = ACTIONS(4868),
    [sym_string] = ACTIONS(4868),
    [sym_cstring] = ACTIONS(4868),
    [sym_dstring] = ACTIONS(4868),
    [sym_wstring] = ACTIONS(4868),
    [sym_noreturn] = ACTIONS(4868),
    [sym_true] = ACTIONS(4868),
    [sym_false] = ACTIONS(4868),
    [sym_null] = ACTIONS(4868),
    [sym_super] = ACTIONS(4868),
    [sym_this] = ACTIONS(4868),
    [sym_abstract] = ACTIONS(4868),
    [sym_alias] = ACTIONS(4868),
    [sym_align] = ACTIONS(4868),
    [sym_asm] = ACTIONS(4868),
    [sym_assert] = ACTIONS(4868),
    [sym_auto] = ACTIONS(4868),
    [sym_break] = ACTIONS(4868),
    [sym_case] = ACTIONS(4868),
    [sym_cast] = ACTIONS(4868),
    [sym_class] = ACTIONS(4868),
    [sym_const] = ACTIONS(4868),
    [sym_continue] = ACTIONS(4868),
    [sym_debug] = ACTIONS(4868),
    [sym_default] = ACTIONS(4868),
    [sym_delegate] = ACTIONS(4868),
    [sym_delete] = ACTIONS(4868),
    [sym_deprecated] = ACTIONS(4868),
    [sym_do] = ACTIONS(4868),
    [sym_else] = ACTIONS(4868),
    [sym_enum] = ACTIONS(4868),
    [sym_export] = ACTIONS(4868),
    [sym_extern] = ACTIONS(4868),
    [sym_final] = ACTIONS(4868),
    [sym_for] = ACTIONS(4868),
    [sym_foreach] = ACTIONS(4868),
    [sym_foreach_reverse] = ACTIONS(4868),
    [sym_function] = ACTIONS(4868),
    [sym_goto] = ACTIONS(4868),
    [sym_if] = ACTIONS(4868),
    [sym_immutable] = ACTIONS(4868),
    [sym_import] = ACTIONS(4868),
    [sym_in] = ACTIONS(4868),
    [sym_inout] = ACTIONS(4868),
    [sym_interface] = ACTIONS(4868),
    [sym_invariant] = ACTIONS(4868),
    [sym_is] = ACTIONS(4868),
    [sym_mixin] = ACTIONS(4868),
    [sym_new] = ACTIONS(4868),
    [sym_nothrow] = ACTIONS(4868),
    [sym_out] = ACTIONS(4868),
    [sym_override] = ACTIONS(4868),
    [sym_package] = ACTIONS(4868),
    [sym_pragma] = ACTIONS(4868),
    [sym_private] = ACTIONS(4868),
    [sym_protected] = ACTIONS(4868),
    [sym_public] = ACTIONS(4868),
    [sym_pure] = ACTIONS(4868),
    [sym_ref] = ACTIONS(4868),
    [sym_return] = ACTIONS(4868),
    [sym_scope] = ACTIONS(4868),
    [sym_shared] = ACTIONS(4868),
    [sym_static] = ACTIONS(4868),
    [sym_struct] = ACTIONS(4868),
    [sym_switch] = ACTIONS(4868),
    [sym_synchronized] = ACTIONS(4868),
    [sym_template] = ACTIONS(4868),
    [sym_throw] = ACTIONS(4868),
    [sym_try] = ACTIONS(4868),
    [sym_typeid] = ACTIONS(4868),
    [sym_typeof] = ACTIONS(4868),
    [sym_union] = ACTIONS(4868),
    [sym_unittest] = ACTIONS(4868),
    [sym_version] = ACTIONS(4868),
    [sym_while] = ACTIONS(4868),
    [sym_with] = ACTIONS(4868),
    [sym_gshared] = ACTIONS(4868),
    [sym_traits] = ACTIONS(4868),
    [sym_vector] = ACTIONS(4868),
    [sym_void] = ACTIONS(4868),
    [anon_sym_BQUOTE] = ACTIONS(4870),
    [anon_sym_r_DQUOTE] = ACTIONS(4870),
    [anon_sym_x_DQUOTE] = ACTIONS(4870),
    [anon_sym_DQUOTE] = ACTIONS(4870),
    [anon_sym_i_BQUOTE] = ACTIONS(4870),
    [anon_sym_i_DQUOTE] = ACTIONS(4870),
    [anon_sym_iq_LBRACE] = ACTIONS(4870),
    [aux_sym_char_literal_token1] = ACTIONS(4870),
    [anon_sym_SQUOTE] = ACTIONS(4868),
    [anon_sym___DATE__] = ACTIONS(4868),
    [anon_sym___FILE__] = ACTIONS(4868),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4868),
    [anon_sym___FUNCTION__] = ACTIONS(4868),
    [anon_sym___LINE__] = ACTIONS(4868),
    [anon_sym___MODULE__] = ACTIONS(4868),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4868),
    [anon_sym___TIME__] = ACTIONS(4868),
    [anon_sym___TIMESTAMP__] = ACTIONS(4868),
    [anon_sym___VENDOR__] = ACTIONS(4868),
    [anon_sym___VERSION__] = ACTIONS(4868),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4870),
    [sym_float_literal] = ACTIONS(4870),
    [sym__string] = ACTIONS(4870),
  },
  [1619] = {
    [sym_identifier] = ACTIONS(4818),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4820),
    [anon_sym_RBRACE] = ACTIONS(4820),
    [anon_sym_LBRACE] = ACTIONS(4820),
    [anon_sym_DOT] = ACTIONS(4820),
    [anon_sym_AMP] = ACTIONS(4820),
    [anon_sym_DASH] = ACTIONS(4818),
    [anon_sym_DASH_DASH] = ACTIONS(4820),
    [anon_sym_PLUS] = ACTIONS(4818),
    [anon_sym_PLUS_PLUS] = ACTIONS(4820),
    [anon_sym_BANG] = ACTIONS(4820),
    [anon_sym_LPAREN] = ACTIONS(4820),
    [anon_sym_RPAREN] = ACTIONS(4820),
    [anon_sym_LBRACK] = ACTIONS(4820),
    [anon_sym_SEMI] = ACTIONS(4820),
    [anon_sym_DOLLAR] = ACTIONS(4820),
    [anon_sym_STAR] = ACTIONS(4820),
    [anon_sym_TILDE] = ACTIONS(4820),
    [anon_sym_AT] = ACTIONS(4820),
    [sym_bool] = ACTIONS(4818),
    [sym_byte] = ACTIONS(4818),
    [sym_ubyte] = ACTIONS(4818),
    [sym_char] = ACTIONS(4818),
    [sym_short] = ACTIONS(4818),
    [sym_ushort] = ACTIONS(4818),
    [sym_int] = ACTIONS(4818),
    [sym_uint] = ACTIONS(4818),
    [sym_long] = ACTIONS(4818),
    [sym_ulong] = ACTIONS(4818),
    [sym_cent] = ACTIONS(4818),
    [sym_ucent] = ACTIONS(4818),
    [sym_wchar] = ACTIONS(4818),
    [sym_dchar] = ACTIONS(4818),
    [sym_float] = ACTIONS(4818),
    [sym_double] = ACTIONS(4818),
    [sym_real] = ACTIONS(4818),
    [sym_ifloat] = ACTIONS(4818),
    [sym_idouble] = ACTIONS(4818),
    [sym_ireal] = ACTIONS(4818),
    [sym_cfloat] = ACTIONS(4818),
    [sym_cdouble] = ACTIONS(4818),
    [sym_creal] = ACTIONS(4818),
    [sym_size_t] = ACTIONS(4818),
    [sym_ptrdiff_t] = ACTIONS(4818),
    [sym_string] = ACTIONS(4818),
    [sym_cstring] = ACTIONS(4818),
    [sym_dstring] = ACTIONS(4818),
    [sym_wstring] = ACTIONS(4818),
    [sym_noreturn] = ACTIONS(4818),
    [sym_true] = ACTIONS(4818),
    [sym_false] = ACTIONS(4818),
    [sym_null] = ACTIONS(4818),
    [sym_super] = ACTIONS(4818),
    [sym_this] = ACTIONS(4818),
    [sym_abstract] = ACTIONS(4818),
    [sym_alias] = ACTIONS(4818),
    [sym_align] = ACTIONS(4818),
    [sym_asm] = ACTIONS(4818),
    [sym_assert] = ACTIONS(4818),
    [sym_auto] = ACTIONS(4818),
    [sym_break] = ACTIONS(4818),
    [sym_case] = ACTIONS(4818),
    [sym_cast] = ACTIONS(4818),
    [sym_class] = ACTIONS(4818),
    [sym_const] = ACTIONS(4818),
    [sym_continue] = ACTIONS(4818),
    [sym_debug] = ACTIONS(4818),
    [sym_default] = ACTIONS(4818),
    [sym_delegate] = ACTIONS(4818),
    [sym_delete] = ACTIONS(4818),
    [sym_deprecated] = ACTIONS(4818),
    [sym_do] = ACTIONS(4818),
    [sym_else] = ACTIONS(4818),
    [sym_enum] = ACTIONS(4818),
    [sym_export] = ACTIONS(4818),
    [sym_extern] = ACTIONS(4818),
    [sym_final] = ACTIONS(4818),
    [sym_for] = ACTIONS(4818),
    [sym_foreach] = ACTIONS(4818),
    [sym_foreach_reverse] = ACTIONS(4818),
    [sym_function] = ACTIONS(4818),
    [sym_goto] = ACTIONS(4818),
    [sym_if] = ACTIONS(4818),
    [sym_immutable] = ACTIONS(4818),
    [sym_import] = ACTIONS(4818),
    [sym_in] = ACTIONS(4818),
    [sym_inout] = ACTIONS(4818),
    [sym_interface] = ACTIONS(4818),
    [sym_invariant] = ACTIONS(4818),
    [sym_is] = ACTIONS(4818),
    [sym_mixin] = ACTIONS(4818),
    [sym_new] = ACTIONS(4818),
    [sym_nothrow] = ACTIONS(4818),
    [sym_out] = ACTIONS(4818),
    [sym_override] = ACTIONS(4818),
    [sym_package] = ACTIONS(4818),
    [sym_pragma] = ACTIONS(4818),
    [sym_private] = ACTIONS(4818),
    [sym_protected] = ACTIONS(4818),
    [sym_public] = ACTIONS(4818),
    [sym_pure] = ACTIONS(4818),
    [sym_ref] = ACTIONS(4818),
    [sym_return] = ACTIONS(4818),
    [sym_scope] = ACTIONS(4818),
    [sym_shared] = ACTIONS(4818),
    [sym_static] = ACTIONS(4818),
    [sym_struct] = ACTIONS(4818),
    [sym_switch] = ACTIONS(4818),
    [sym_synchronized] = ACTIONS(4818),
    [sym_template] = ACTIONS(4818),
    [sym_throw] = ACTIONS(4818),
    [sym_try] = ACTIONS(4818),
    [sym_typeid] = ACTIONS(4818),
    [sym_typeof] = ACTIONS(4818),
    [sym_union] = ACTIONS(4818),
    [sym_unittest] = ACTIONS(4818),
    [sym_version] = ACTIONS(4818),
    [sym_while] = ACTIONS(4818),
    [sym_with] = ACTIONS(4818),
    [sym_gshared] = ACTIONS(4818),
    [sym_traits] = ACTIONS(4818),
    [sym_vector] = ACTIONS(4818),
    [sym_void] = ACTIONS(4818),
    [anon_sym_BQUOTE] = ACTIONS(4820),
    [anon_sym_r_DQUOTE] = ACTIONS(4820),
    [anon_sym_x_DQUOTE] = ACTIONS(4820),
    [anon_sym_DQUOTE] = ACTIONS(4820),
    [anon_sym_i_BQUOTE] = ACTIONS(4820),
    [anon_sym_i_DQUOTE] = ACTIONS(4820),
    [anon_sym_iq_LBRACE] = ACTIONS(4820),
    [aux_sym_char_literal_token1] = ACTIONS(4820),
    [anon_sym_SQUOTE] = ACTIONS(4818),
    [anon_sym___DATE__] = ACTIONS(4818),
    [anon_sym___FILE__] = ACTIONS(4818),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4818),
    [anon_sym___FUNCTION__] = ACTIONS(4818),
    [anon_sym___LINE__] = ACTIONS(4818),
    [anon_sym___MODULE__] = ACTIONS(4818),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4818),
    [anon_sym___TIME__] = ACTIONS(4818),
    [anon_sym___TIMESTAMP__] = ACTIONS(4818),
    [anon_sym___VENDOR__] = ACTIONS(4818),
    [anon_sym___VERSION__] = ACTIONS(4818),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4820),
    [sym_float_literal] = ACTIONS(4820),
    [sym__string] = ACTIONS(4820),
  },
  [1620] = {
    [sym_identifier] = ACTIONS(4864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4866),
    [anon_sym_RBRACE] = ACTIONS(4866),
    [anon_sym_LBRACE] = ACTIONS(4866),
    [anon_sym_DOT] = ACTIONS(4866),
    [anon_sym_AMP] = ACTIONS(4866),
    [anon_sym_DASH] = ACTIONS(4864),
    [anon_sym_DASH_DASH] = ACTIONS(4866),
    [anon_sym_PLUS] = ACTIONS(4864),
    [anon_sym_PLUS_PLUS] = ACTIONS(4866),
    [anon_sym_BANG] = ACTIONS(4866),
    [anon_sym_LPAREN] = ACTIONS(4866),
    [anon_sym_RPAREN] = ACTIONS(4866),
    [anon_sym_LBRACK] = ACTIONS(4866),
    [anon_sym_SEMI] = ACTIONS(4866),
    [anon_sym_DOLLAR] = ACTIONS(4866),
    [anon_sym_STAR] = ACTIONS(4866),
    [anon_sym_TILDE] = ACTIONS(4866),
    [anon_sym_AT] = ACTIONS(4866),
    [sym_bool] = ACTIONS(4864),
    [sym_byte] = ACTIONS(4864),
    [sym_ubyte] = ACTIONS(4864),
    [sym_char] = ACTIONS(4864),
    [sym_short] = ACTIONS(4864),
    [sym_ushort] = ACTIONS(4864),
    [sym_int] = ACTIONS(4864),
    [sym_uint] = ACTIONS(4864),
    [sym_long] = ACTIONS(4864),
    [sym_ulong] = ACTIONS(4864),
    [sym_cent] = ACTIONS(4864),
    [sym_ucent] = ACTIONS(4864),
    [sym_wchar] = ACTIONS(4864),
    [sym_dchar] = ACTIONS(4864),
    [sym_float] = ACTIONS(4864),
    [sym_double] = ACTIONS(4864),
    [sym_real] = ACTIONS(4864),
    [sym_ifloat] = ACTIONS(4864),
    [sym_idouble] = ACTIONS(4864),
    [sym_ireal] = ACTIONS(4864),
    [sym_cfloat] = ACTIONS(4864),
    [sym_cdouble] = ACTIONS(4864),
    [sym_creal] = ACTIONS(4864),
    [sym_size_t] = ACTIONS(4864),
    [sym_ptrdiff_t] = ACTIONS(4864),
    [sym_string] = ACTIONS(4864),
    [sym_cstring] = ACTIONS(4864),
    [sym_dstring] = ACTIONS(4864),
    [sym_wstring] = ACTIONS(4864),
    [sym_noreturn] = ACTIONS(4864),
    [sym_true] = ACTIONS(4864),
    [sym_false] = ACTIONS(4864),
    [sym_null] = ACTIONS(4864),
    [sym_super] = ACTIONS(4864),
    [sym_this] = ACTIONS(4864),
    [sym_abstract] = ACTIONS(4864),
    [sym_alias] = ACTIONS(4864),
    [sym_align] = ACTIONS(4864),
    [sym_asm] = ACTIONS(4864),
    [sym_assert] = ACTIONS(4864),
    [sym_auto] = ACTIONS(4864),
    [sym_break] = ACTIONS(4864),
    [sym_case] = ACTIONS(4864),
    [sym_cast] = ACTIONS(4864),
    [sym_class] = ACTIONS(4864),
    [sym_const] = ACTIONS(4864),
    [sym_continue] = ACTIONS(4864),
    [sym_debug] = ACTIONS(4864),
    [sym_default] = ACTIONS(4864),
    [sym_delegate] = ACTIONS(4864),
    [sym_delete] = ACTIONS(4864),
    [sym_deprecated] = ACTIONS(4864),
    [sym_do] = ACTIONS(4864),
    [sym_else] = ACTIONS(4864),
    [sym_enum] = ACTIONS(4864),
    [sym_export] = ACTIONS(4864),
    [sym_extern] = ACTIONS(4864),
    [sym_final] = ACTIONS(4864),
    [sym_for] = ACTIONS(4864),
    [sym_foreach] = ACTIONS(4864),
    [sym_foreach_reverse] = ACTIONS(4864),
    [sym_function] = ACTIONS(4864),
    [sym_goto] = ACTIONS(4864),
    [sym_if] = ACTIONS(4864),
    [sym_immutable] = ACTIONS(4864),
    [sym_import] = ACTIONS(4864),
    [sym_in] = ACTIONS(4864),
    [sym_inout] = ACTIONS(4864),
    [sym_interface] = ACTIONS(4864),
    [sym_invariant] = ACTIONS(4864),
    [sym_is] = ACTIONS(4864),
    [sym_mixin] = ACTIONS(4864),
    [sym_new] = ACTIONS(4864),
    [sym_nothrow] = ACTIONS(4864),
    [sym_out] = ACTIONS(4864),
    [sym_override] = ACTIONS(4864),
    [sym_package] = ACTIONS(4864),
    [sym_pragma] = ACTIONS(4864),
    [sym_private] = ACTIONS(4864),
    [sym_protected] = ACTIONS(4864),
    [sym_public] = ACTIONS(4864),
    [sym_pure] = ACTIONS(4864),
    [sym_ref] = ACTIONS(4864),
    [sym_return] = ACTIONS(4864),
    [sym_scope] = ACTIONS(4864),
    [sym_shared] = ACTIONS(4864),
    [sym_static] = ACTIONS(4864),
    [sym_struct] = ACTIONS(4864),
    [sym_switch] = ACTIONS(4864),
    [sym_synchronized] = ACTIONS(4864),
    [sym_template] = ACTIONS(4864),
    [sym_throw] = ACTIONS(4864),
    [sym_try] = ACTIONS(4864),
    [sym_typeid] = ACTIONS(4864),
    [sym_typeof] = ACTIONS(4864),
    [sym_union] = ACTIONS(4864),
    [sym_unittest] = ACTIONS(4864),
    [sym_version] = ACTIONS(4864),
    [sym_while] = ACTIONS(4864),
    [sym_with] = ACTIONS(4864),
    [sym_gshared] = ACTIONS(4864),
    [sym_traits] = ACTIONS(4864),
    [sym_vector] = ACTIONS(4864),
    [sym_void] = ACTIONS(4864),
    [anon_sym_BQUOTE] = ACTIONS(4866),
    [anon_sym_r_DQUOTE] = ACTIONS(4866),
    [anon_sym_x_DQUOTE] = ACTIONS(4866),
    [anon_sym_DQUOTE] = ACTIONS(4866),
    [anon_sym_i_BQUOTE] = ACTIONS(4866),
    [anon_sym_i_DQUOTE] = ACTIONS(4866),
    [anon_sym_iq_LBRACE] = ACTIONS(4866),
    [aux_sym_char_literal_token1] = ACTIONS(4866),
    [anon_sym_SQUOTE] = ACTIONS(4864),
    [anon_sym___DATE__] = ACTIONS(4864),
    [anon_sym___FILE__] = ACTIONS(4864),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4864),
    [anon_sym___FUNCTION__] = ACTIONS(4864),
    [anon_sym___LINE__] = ACTIONS(4864),
    [anon_sym___MODULE__] = ACTIONS(4864),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4864),
    [anon_sym___TIME__] = ACTIONS(4864),
    [anon_sym___TIMESTAMP__] = ACTIONS(4864),
    [anon_sym___VENDOR__] = ACTIONS(4864),
    [anon_sym___VERSION__] = ACTIONS(4864),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4866),
    [sym_float_literal] = ACTIONS(4866),
    [sym__string] = ACTIONS(4866),
  },
  [1621] = {
    [sym_identifier] = ACTIONS(4814),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4816),
    [anon_sym_RBRACE] = ACTIONS(4816),
    [anon_sym_LBRACE] = ACTIONS(4816),
    [anon_sym_DOT] = ACTIONS(4816),
    [anon_sym_AMP] = ACTIONS(4816),
    [anon_sym_DASH] = ACTIONS(4814),
    [anon_sym_DASH_DASH] = ACTIONS(4816),
    [anon_sym_PLUS] = ACTIONS(4814),
    [anon_sym_PLUS_PLUS] = ACTIONS(4816),
    [anon_sym_BANG] = ACTIONS(4816),
    [anon_sym_LPAREN] = ACTIONS(4816),
    [anon_sym_RPAREN] = ACTIONS(4816),
    [anon_sym_LBRACK] = ACTIONS(4816),
    [anon_sym_SEMI] = ACTIONS(4816),
    [anon_sym_DOLLAR] = ACTIONS(4816),
    [anon_sym_STAR] = ACTIONS(4816),
    [anon_sym_TILDE] = ACTIONS(4816),
    [anon_sym_AT] = ACTIONS(4816),
    [sym_bool] = ACTIONS(4814),
    [sym_byte] = ACTIONS(4814),
    [sym_ubyte] = ACTIONS(4814),
    [sym_char] = ACTIONS(4814),
    [sym_short] = ACTIONS(4814),
    [sym_ushort] = ACTIONS(4814),
    [sym_int] = ACTIONS(4814),
    [sym_uint] = ACTIONS(4814),
    [sym_long] = ACTIONS(4814),
    [sym_ulong] = ACTIONS(4814),
    [sym_cent] = ACTIONS(4814),
    [sym_ucent] = ACTIONS(4814),
    [sym_wchar] = ACTIONS(4814),
    [sym_dchar] = ACTIONS(4814),
    [sym_float] = ACTIONS(4814),
    [sym_double] = ACTIONS(4814),
    [sym_real] = ACTIONS(4814),
    [sym_ifloat] = ACTIONS(4814),
    [sym_idouble] = ACTIONS(4814),
    [sym_ireal] = ACTIONS(4814),
    [sym_cfloat] = ACTIONS(4814),
    [sym_cdouble] = ACTIONS(4814),
    [sym_creal] = ACTIONS(4814),
    [sym_size_t] = ACTIONS(4814),
    [sym_ptrdiff_t] = ACTIONS(4814),
    [sym_string] = ACTIONS(4814),
    [sym_cstring] = ACTIONS(4814),
    [sym_dstring] = ACTIONS(4814),
    [sym_wstring] = ACTIONS(4814),
    [sym_noreturn] = ACTIONS(4814),
    [sym_true] = ACTIONS(4814),
    [sym_false] = ACTIONS(4814),
    [sym_null] = ACTIONS(4814),
    [sym_super] = ACTIONS(4814),
    [sym_this] = ACTIONS(4814),
    [sym_abstract] = ACTIONS(4814),
    [sym_alias] = ACTIONS(4814),
    [sym_align] = ACTIONS(4814),
    [sym_asm] = ACTIONS(4814),
    [sym_assert] = ACTIONS(4814),
    [sym_auto] = ACTIONS(4814),
    [sym_break] = ACTIONS(4814),
    [sym_case] = ACTIONS(4814),
    [sym_cast] = ACTIONS(4814),
    [sym_class] = ACTIONS(4814),
    [sym_const] = ACTIONS(4814),
    [sym_continue] = ACTIONS(4814),
    [sym_debug] = ACTIONS(4814),
    [sym_default] = ACTIONS(4814),
    [sym_delegate] = ACTIONS(4814),
    [sym_delete] = ACTIONS(4814),
    [sym_deprecated] = ACTIONS(4814),
    [sym_do] = ACTIONS(4814),
    [sym_else] = ACTIONS(4814),
    [sym_enum] = ACTIONS(4814),
    [sym_export] = ACTIONS(4814),
    [sym_extern] = ACTIONS(4814),
    [sym_final] = ACTIONS(4814),
    [sym_for] = ACTIONS(4814),
    [sym_foreach] = ACTIONS(4814),
    [sym_foreach_reverse] = ACTIONS(4814),
    [sym_function] = ACTIONS(4814),
    [sym_goto] = ACTIONS(4814),
    [sym_if] = ACTIONS(4814),
    [sym_immutable] = ACTIONS(4814),
    [sym_import] = ACTIONS(4814),
    [sym_in] = ACTIONS(4814),
    [sym_inout] = ACTIONS(4814),
    [sym_interface] = ACTIONS(4814),
    [sym_invariant] = ACTIONS(4814),
    [sym_is] = ACTIONS(4814),
    [sym_mixin] = ACTIONS(4814),
    [sym_new] = ACTIONS(4814),
    [sym_nothrow] = ACTIONS(4814),
    [sym_out] = ACTIONS(4814),
    [sym_override] = ACTIONS(4814),
    [sym_package] = ACTIONS(4814),
    [sym_pragma] = ACTIONS(4814),
    [sym_private] = ACTIONS(4814),
    [sym_protected] = ACTIONS(4814),
    [sym_public] = ACTIONS(4814),
    [sym_pure] = ACTIONS(4814),
    [sym_ref] = ACTIONS(4814),
    [sym_return] = ACTIONS(4814),
    [sym_scope] = ACTIONS(4814),
    [sym_shared] = ACTIONS(4814),
    [sym_static] = ACTIONS(4814),
    [sym_struct] = ACTIONS(4814),
    [sym_switch] = ACTIONS(4814),
    [sym_synchronized] = ACTIONS(4814),
    [sym_template] = ACTIONS(4814),
    [sym_throw] = ACTIONS(4814),
    [sym_try] = ACTIONS(4814),
    [sym_typeid] = ACTIONS(4814),
    [sym_typeof] = ACTIONS(4814),
    [sym_union] = ACTIONS(4814),
    [sym_unittest] = ACTIONS(4814),
    [sym_version] = ACTIONS(4814),
    [sym_while] = ACTIONS(4814),
    [sym_with] = ACTIONS(4814),
    [sym_gshared] = ACTIONS(4814),
    [sym_traits] = ACTIONS(4814),
    [sym_vector] = ACTIONS(4814),
    [sym_void] = ACTIONS(4814),
    [anon_sym_BQUOTE] = ACTIONS(4816),
    [anon_sym_r_DQUOTE] = ACTIONS(4816),
    [anon_sym_x_DQUOTE] = ACTIONS(4816),
    [anon_sym_DQUOTE] = ACTIONS(4816),
    [anon_sym_i_BQUOTE] = ACTIONS(4816),
    [anon_sym_i_DQUOTE] = ACTIONS(4816),
    [anon_sym_iq_LBRACE] = ACTIONS(4816),
    [aux_sym_char_literal_token1] = ACTIONS(4816),
    [anon_sym_SQUOTE] = ACTIONS(4814),
    [anon_sym___DATE__] = ACTIONS(4814),
    [anon_sym___FILE__] = ACTIONS(4814),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4814),
    [anon_sym___FUNCTION__] = ACTIONS(4814),
    [anon_sym___LINE__] = ACTIONS(4814),
    [anon_sym___MODULE__] = ACTIONS(4814),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4814),
    [anon_sym___TIME__] = ACTIONS(4814),
    [anon_sym___TIMESTAMP__] = ACTIONS(4814),
    [anon_sym___VENDOR__] = ACTIONS(4814),
    [anon_sym___VERSION__] = ACTIONS(4814),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4816),
    [sym_float_literal] = ACTIONS(4816),
    [sym__string] = ACTIONS(4816),
  },
  [1622] = {
    [sym_identifier] = ACTIONS(4952),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4954),
    [anon_sym_RBRACE] = ACTIONS(4954),
    [anon_sym_LBRACE] = ACTIONS(4954),
    [anon_sym_DOT] = ACTIONS(4954),
    [anon_sym_AMP] = ACTIONS(4954),
    [anon_sym_DASH] = ACTIONS(4952),
    [anon_sym_DASH_DASH] = ACTIONS(4954),
    [anon_sym_PLUS] = ACTIONS(4952),
    [anon_sym_PLUS_PLUS] = ACTIONS(4954),
    [anon_sym_BANG] = ACTIONS(4954),
    [anon_sym_LPAREN] = ACTIONS(4954),
    [anon_sym_RPAREN] = ACTIONS(4954),
    [anon_sym_LBRACK] = ACTIONS(4954),
    [anon_sym_SEMI] = ACTIONS(4954),
    [anon_sym_DOLLAR] = ACTIONS(4954),
    [anon_sym_STAR] = ACTIONS(4954),
    [anon_sym_TILDE] = ACTIONS(4954),
    [anon_sym_AT] = ACTIONS(4954),
    [sym_bool] = ACTIONS(4952),
    [sym_byte] = ACTIONS(4952),
    [sym_ubyte] = ACTIONS(4952),
    [sym_char] = ACTIONS(4952),
    [sym_short] = ACTIONS(4952),
    [sym_ushort] = ACTIONS(4952),
    [sym_int] = ACTIONS(4952),
    [sym_uint] = ACTIONS(4952),
    [sym_long] = ACTIONS(4952),
    [sym_ulong] = ACTIONS(4952),
    [sym_cent] = ACTIONS(4952),
    [sym_ucent] = ACTIONS(4952),
    [sym_wchar] = ACTIONS(4952),
    [sym_dchar] = ACTIONS(4952),
    [sym_float] = ACTIONS(4952),
    [sym_double] = ACTIONS(4952),
    [sym_real] = ACTIONS(4952),
    [sym_ifloat] = ACTIONS(4952),
    [sym_idouble] = ACTIONS(4952),
    [sym_ireal] = ACTIONS(4952),
    [sym_cfloat] = ACTIONS(4952),
    [sym_cdouble] = ACTIONS(4952),
    [sym_creal] = ACTIONS(4952),
    [sym_size_t] = ACTIONS(4952),
    [sym_ptrdiff_t] = ACTIONS(4952),
    [sym_string] = ACTIONS(4952),
    [sym_cstring] = ACTIONS(4952),
    [sym_dstring] = ACTIONS(4952),
    [sym_wstring] = ACTIONS(4952),
    [sym_noreturn] = ACTIONS(4952),
    [sym_true] = ACTIONS(4952),
    [sym_false] = ACTIONS(4952),
    [sym_null] = ACTIONS(4952),
    [sym_super] = ACTIONS(4952),
    [sym_this] = ACTIONS(4952),
    [sym_abstract] = ACTIONS(4952),
    [sym_alias] = ACTIONS(4952),
    [sym_align] = ACTIONS(4952),
    [sym_asm] = ACTIONS(4952),
    [sym_assert] = ACTIONS(4952),
    [sym_auto] = ACTIONS(4952),
    [sym_break] = ACTIONS(4952),
    [sym_case] = ACTIONS(4952),
    [sym_cast] = ACTIONS(4952),
    [sym_class] = ACTIONS(4952),
    [sym_const] = ACTIONS(4952),
    [sym_continue] = ACTIONS(4952),
    [sym_debug] = ACTIONS(4952),
    [sym_default] = ACTIONS(4952),
    [sym_delegate] = ACTIONS(4952),
    [sym_delete] = ACTIONS(4952),
    [sym_deprecated] = ACTIONS(4952),
    [sym_do] = ACTIONS(4952),
    [sym_else] = ACTIONS(4952),
    [sym_enum] = ACTIONS(4952),
    [sym_export] = ACTIONS(4952),
    [sym_extern] = ACTIONS(4952),
    [sym_final] = ACTIONS(4952),
    [sym_for] = ACTIONS(4952),
    [sym_foreach] = ACTIONS(4952),
    [sym_foreach_reverse] = ACTIONS(4952),
    [sym_function] = ACTIONS(4952),
    [sym_goto] = ACTIONS(4952),
    [sym_if] = ACTIONS(4952),
    [sym_immutable] = ACTIONS(4952),
    [sym_import] = ACTIONS(4952),
    [sym_in] = ACTIONS(4952),
    [sym_inout] = ACTIONS(4952),
    [sym_interface] = ACTIONS(4952),
    [sym_invariant] = ACTIONS(4952),
    [sym_is] = ACTIONS(4952),
    [sym_mixin] = ACTIONS(4952),
    [sym_new] = ACTIONS(4952),
    [sym_nothrow] = ACTIONS(4952),
    [sym_out] = ACTIONS(4952),
    [sym_override] = ACTIONS(4952),
    [sym_package] = ACTIONS(4952),
    [sym_pragma] = ACTIONS(4952),
    [sym_private] = ACTIONS(4952),
    [sym_protected] = ACTIONS(4952),
    [sym_public] = ACTIONS(4952),
    [sym_pure] = ACTIONS(4952),
    [sym_ref] = ACTIONS(4952),
    [sym_return] = ACTIONS(4952),
    [sym_scope] = ACTIONS(4952),
    [sym_shared] = ACTIONS(4952),
    [sym_static] = ACTIONS(4952),
    [sym_struct] = ACTIONS(4952),
    [sym_switch] = ACTIONS(4952),
    [sym_synchronized] = ACTIONS(4952),
    [sym_template] = ACTIONS(4952),
    [sym_throw] = ACTIONS(4952),
    [sym_try] = ACTIONS(4952),
    [sym_typeid] = ACTIONS(4952),
    [sym_typeof] = ACTIONS(4952),
    [sym_union] = ACTIONS(4952),
    [sym_unittest] = ACTIONS(4952),
    [sym_version] = ACTIONS(4952),
    [sym_while] = ACTIONS(4952),
    [sym_with] = ACTIONS(4952),
    [sym_gshared] = ACTIONS(4952),
    [sym_traits] = ACTIONS(4952),
    [sym_vector] = ACTIONS(4952),
    [sym_void] = ACTIONS(4952),
    [anon_sym_BQUOTE] = ACTIONS(4954),
    [anon_sym_r_DQUOTE] = ACTIONS(4954),
    [anon_sym_x_DQUOTE] = ACTIONS(4954),
    [anon_sym_DQUOTE] = ACTIONS(4954),
    [anon_sym_i_BQUOTE] = ACTIONS(4954),
    [anon_sym_i_DQUOTE] = ACTIONS(4954),
    [anon_sym_iq_LBRACE] = ACTIONS(4954),
    [aux_sym_char_literal_token1] = ACTIONS(4954),
    [anon_sym_SQUOTE] = ACTIONS(4952),
    [anon_sym___DATE__] = ACTIONS(4952),
    [anon_sym___FILE__] = ACTIONS(4952),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4952),
    [anon_sym___FUNCTION__] = ACTIONS(4952),
    [anon_sym___LINE__] = ACTIONS(4952),
    [anon_sym___MODULE__] = ACTIONS(4952),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4952),
    [anon_sym___TIME__] = ACTIONS(4952),
    [anon_sym___TIMESTAMP__] = ACTIONS(4952),
    [anon_sym___VENDOR__] = ACTIONS(4952),
    [anon_sym___VERSION__] = ACTIONS(4952),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4954),
    [sym_float_literal] = ACTIONS(4954),
    [sym__string] = ACTIONS(4954),
  },
  [1623] = {
    [sym_identifier] = ACTIONS(4944),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4946),
    [anon_sym_RBRACE] = ACTIONS(4946),
    [anon_sym_LBRACE] = ACTIONS(4946),
    [anon_sym_DOT] = ACTIONS(4946),
    [anon_sym_AMP] = ACTIONS(4946),
    [anon_sym_DASH] = ACTIONS(4944),
    [anon_sym_DASH_DASH] = ACTIONS(4946),
    [anon_sym_PLUS] = ACTIONS(4944),
    [anon_sym_PLUS_PLUS] = ACTIONS(4946),
    [anon_sym_BANG] = ACTIONS(4946),
    [anon_sym_LPAREN] = ACTIONS(4946),
    [anon_sym_RPAREN] = ACTIONS(4946),
    [anon_sym_LBRACK] = ACTIONS(4946),
    [anon_sym_SEMI] = ACTIONS(4946),
    [anon_sym_DOLLAR] = ACTIONS(4946),
    [anon_sym_STAR] = ACTIONS(4946),
    [anon_sym_TILDE] = ACTIONS(4946),
    [anon_sym_AT] = ACTIONS(4946),
    [sym_bool] = ACTIONS(4944),
    [sym_byte] = ACTIONS(4944),
    [sym_ubyte] = ACTIONS(4944),
    [sym_char] = ACTIONS(4944),
    [sym_short] = ACTIONS(4944),
    [sym_ushort] = ACTIONS(4944),
    [sym_int] = ACTIONS(4944),
    [sym_uint] = ACTIONS(4944),
    [sym_long] = ACTIONS(4944),
    [sym_ulong] = ACTIONS(4944),
    [sym_cent] = ACTIONS(4944),
    [sym_ucent] = ACTIONS(4944),
    [sym_wchar] = ACTIONS(4944),
    [sym_dchar] = ACTIONS(4944),
    [sym_float] = ACTIONS(4944),
    [sym_double] = ACTIONS(4944),
    [sym_real] = ACTIONS(4944),
    [sym_ifloat] = ACTIONS(4944),
    [sym_idouble] = ACTIONS(4944),
    [sym_ireal] = ACTIONS(4944),
    [sym_cfloat] = ACTIONS(4944),
    [sym_cdouble] = ACTIONS(4944),
    [sym_creal] = ACTIONS(4944),
    [sym_size_t] = ACTIONS(4944),
    [sym_ptrdiff_t] = ACTIONS(4944),
    [sym_string] = ACTIONS(4944),
    [sym_cstring] = ACTIONS(4944),
    [sym_dstring] = ACTIONS(4944),
    [sym_wstring] = ACTIONS(4944),
    [sym_noreturn] = ACTIONS(4944),
    [sym_true] = ACTIONS(4944),
    [sym_false] = ACTIONS(4944),
    [sym_null] = ACTIONS(4944),
    [sym_super] = ACTIONS(4944),
    [sym_this] = ACTIONS(4944),
    [sym_abstract] = ACTIONS(4944),
    [sym_alias] = ACTIONS(4944),
    [sym_align] = ACTIONS(4944),
    [sym_asm] = ACTIONS(4944),
    [sym_assert] = ACTIONS(4944),
    [sym_auto] = ACTIONS(4944),
    [sym_break] = ACTIONS(4944),
    [sym_case] = ACTIONS(4944),
    [sym_cast] = ACTIONS(4944),
    [sym_class] = ACTIONS(4944),
    [sym_const] = ACTIONS(4944),
    [sym_continue] = ACTIONS(4944),
    [sym_debug] = ACTIONS(4944),
    [sym_default] = ACTIONS(4944),
    [sym_delegate] = ACTIONS(4944),
    [sym_delete] = ACTIONS(4944),
    [sym_deprecated] = ACTIONS(4944),
    [sym_do] = ACTIONS(4944),
    [sym_else] = ACTIONS(4944),
    [sym_enum] = ACTIONS(4944),
    [sym_export] = ACTIONS(4944),
    [sym_extern] = ACTIONS(4944),
    [sym_final] = ACTIONS(4944),
    [sym_for] = ACTIONS(4944),
    [sym_foreach] = ACTIONS(4944),
    [sym_foreach_reverse] = ACTIONS(4944),
    [sym_function] = ACTIONS(4944),
    [sym_goto] = ACTIONS(4944),
    [sym_if] = ACTIONS(4944),
    [sym_immutable] = ACTIONS(4944),
    [sym_import] = ACTIONS(4944),
    [sym_in] = ACTIONS(4944),
    [sym_inout] = ACTIONS(4944),
    [sym_interface] = ACTIONS(4944),
    [sym_invariant] = ACTIONS(4944),
    [sym_is] = ACTIONS(4944),
    [sym_mixin] = ACTIONS(4944),
    [sym_new] = ACTIONS(4944),
    [sym_nothrow] = ACTIONS(4944),
    [sym_out] = ACTIONS(4944),
    [sym_override] = ACTIONS(4944),
    [sym_package] = ACTIONS(4944),
    [sym_pragma] = ACTIONS(4944),
    [sym_private] = ACTIONS(4944),
    [sym_protected] = ACTIONS(4944),
    [sym_public] = ACTIONS(4944),
    [sym_pure] = ACTIONS(4944),
    [sym_ref] = ACTIONS(4944),
    [sym_return] = ACTIONS(4944),
    [sym_scope] = ACTIONS(4944),
    [sym_shared] = ACTIONS(4944),
    [sym_static] = ACTIONS(4944),
    [sym_struct] = ACTIONS(4944),
    [sym_switch] = ACTIONS(4944),
    [sym_synchronized] = ACTIONS(4944),
    [sym_template] = ACTIONS(4944),
    [sym_throw] = ACTIONS(4944),
    [sym_try] = ACTIONS(4944),
    [sym_typeid] = ACTIONS(4944),
    [sym_typeof] = ACTIONS(4944),
    [sym_union] = ACTIONS(4944),
    [sym_unittest] = ACTIONS(4944),
    [sym_version] = ACTIONS(4944),
    [sym_while] = ACTIONS(4944),
    [sym_with] = ACTIONS(4944),
    [sym_gshared] = ACTIONS(4944),
    [sym_traits] = ACTIONS(4944),
    [sym_vector] = ACTIONS(4944),
    [sym_void] = ACTIONS(4944),
    [anon_sym_BQUOTE] = ACTIONS(4946),
    [anon_sym_r_DQUOTE] = ACTIONS(4946),
    [anon_sym_x_DQUOTE] = ACTIONS(4946),
    [anon_sym_DQUOTE] = ACTIONS(4946),
    [anon_sym_i_BQUOTE] = ACTIONS(4946),
    [anon_sym_i_DQUOTE] = ACTIONS(4946),
    [anon_sym_iq_LBRACE] = ACTIONS(4946),
    [aux_sym_char_literal_token1] = ACTIONS(4946),
    [anon_sym_SQUOTE] = ACTIONS(4944),
    [anon_sym___DATE__] = ACTIONS(4944),
    [anon_sym___FILE__] = ACTIONS(4944),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4944),
    [anon_sym___FUNCTION__] = ACTIONS(4944),
    [anon_sym___LINE__] = ACTIONS(4944),
    [anon_sym___MODULE__] = ACTIONS(4944),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4944),
    [anon_sym___TIME__] = ACTIONS(4944),
    [anon_sym___TIMESTAMP__] = ACTIONS(4944),
    [anon_sym___VENDOR__] = ACTIONS(4944),
    [anon_sym___VERSION__] = ACTIONS(4944),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4946),
    [sym_float_literal] = ACTIONS(4946),
    [sym__string] = ACTIONS(4946),
  },
  [1624] = {
    [sym_identifier] = ACTIONS(5028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5030),
    [anon_sym_RBRACE] = ACTIONS(5030),
    [anon_sym_LBRACE] = ACTIONS(5030),
    [anon_sym_DOT] = ACTIONS(5030),
    [anon_sym_AMP] = ACTIONS(5030),
    [anon_sym_DASH] = ACTIONS(5028),
    [anon_sym_DASH_DASH] = ACTIONS(5030),
    [anon_sym_PLUS] = ACTIONS(5028),
    [anon_sym_PLUS_PLUS] = ACTIONS(5030),
    [anon_sym_BANG] = ACTIONS(5030),
    [anon_sym_LPAREN] = ACTIONS(5030),
    [anon_sym_RPAREN] = ACTIONS(5030),
    [anon_sym_LBRACK] = ACTIONS(5030),
    [anon_sym_SEMI] = ACTIONS(5030),
    [anon_sym_DOLLAR] = ACTIONS(5030),
    [anon_sym_STAR] = ACTIONS(5030),
    [anon_sym_TILDE] = ACTIONS(5030),
    [anon_sym_AT] = ACTIONS(5030),
    [sym_bool] = ACTIONS(5028),
    [sym_byte] = ACTIONS(5028),
    [sym_ubyte] = ACTIONS(5028),
    [sym_char] = ACTIONS(5028),
    [sym_short] = ACTIONS(5028),
    [sym_ushort] = ACTIONS(5028),
    [sym_int] = ACTIONS(5028),
    [sym_uint] = ACTIONS(5028),
    [sym_long] = ACTIONS(5028),
    [sym_ulong] = ACTIONS(5028),
    [sym_cent] = ACTIONS(5028),
    [sym_ucent] = ACTIONS(5028),
    [sym_wchar] = ACTIONS(5028),
    [sym_dchar] = ACTIONS(5028),
    [sym_float] = ACTIONS(5028),
    [sym_double] = ACTIONS(5028),
    [sym_real] = ACTIONS(5028),
    [sym_ifloat] = ACTIONS(5028),
    [sym_idouble] = ACTIONS(5028),
    [sym_ireal] = ACTIONS(5028),
    [sym_cfloat] = ACTIONS(5028),
    [sym_cdouble] = ACTIONS(5028),
    [sym_creal] = ACTIONS(5028),
    [sym_size_t] = ACTIONS(5028),
    [sym_ptrdiff_t] = ACTIONS(5028),
    [sym_string] = ACTIONS(5028),
    [sym_cstring] = ACTIONS(5028),
    [sym_dstring] = ACTIONS(5028),
    [sym_wstring] = ACTIONS(5028),
    [sym_noreturn] = ACTIONS(5028),
    [sym_true] = ACTIONS(5028),
    [sym_false] = ACTIONS(5028),
    [sym_null] = ACTIONS(5028),
    [sym_super] = ACTIONS(5028),
    [sym_this] = ACTIONS(5028),
    [sym_abstract] = ACTIONS(5028),
    [sym_alias] = ACTIONS(5028),
    [sym_align] = ACTIONS(5028),
    [sym_asm] = ACTIONS(5028),
    [sym_assert] = ACTIONS(5028),
    [sym_auto] = ACTIONS(5028),
    [sym_break] = ACTIONS(5028),
    [sym_case] = ACTIONS(5028),
    [sym_cast] = ACTIONS(5028),
    [sym_class] = ACTIONS(5028),
    [sym_const] = ACTIONS(5028),
    [sym_continue] = ACTIONS(5028),
    [sym_debug] = ACTIONS(5028),
    [sym_default] = ACTIONS(5028),
    [sym_delegate] = ACTIONS(5028),
    [sym_delete] = ACTIONS(5028),
    [sym_deprecated] = ACTIONS(5028),
    [sym_do] = ACTIONS(5028),
    [sym_else] = ACTIONS(5028),
    [sym_enum] = ACTIONS(5028),
    [sym_export] = ACTIONS(5028),
    [sym_extern] = ACTIONS(5028),
    [sym_final] = ACTIONS(5028),
    [sym_for] = ACTIONS(5028),
    [sym_foreach] = ACTIONS(5028),
    [sym_foreach_reverse] = ACTIONS(5028),
    [sym_function] = ACTIONS(5028),
    [sym_goto] = ACTIONS(5028),
    [sym_if] = ACTIONS(5028),
    [sym_immutable] = ACTIONS(5028),
    [sym_import] = ACTIONS(5028),
    [sym_in] = ACTIONS(5028),
    [sym_inout] = ACTIONS(5028),
    [sym_interface] = ACTIONS(5028),
    [sym_invariant] = ACTIONS(5028),
    [sym_is] = ACTIONS(5028),
    [sym_mixin] = ACTIONS(5028),
    [sym_new] = ACTIONS(5028),
    [sym_nothrow] = ACTIONS(5028),
    [sym_out] = ACTIONS(5028),
    [sym_override] = ACTIONS(5028),
    [sym_package] = ACTIONS(5028),
    [sym_pragma] = ACTIONS(5028),
    [sym_private] = ACTIONS(5028),
    [sym_protected] = ACTIONS(5028),
    [sym_public] = ACTIONS(5028),
    [sym_pure] = ACTIONS(5028),
    [sym_ref] = ACTIONS(5028),
    [sym_return] = ACTIONS(5028),
    [sym_scope] = ACTIONS(5028),
    [sym_shared] = ACTIONS(5028),
    [sym_static] = ACTIONS(5028),
    [sym_struct] = ACTIONS(5028),
    [sym_switch] = ACTIONS(5028),
    [sym_synchronized] = ACTIONS(5028),
    [sym_template] = ACTIONS(5028),
    [sym_throw] = ACTIONS(5028),
    [sym_try] = ACTIONS(5028),
    [sym_typeid] = ACTIONS(5028),
    [sym_typeof] = ACTIONS(5028),
    [sym_union] = ACTIONS(5028),
    [sym_unittest] = ACTIONS(5028),
    [sym_version] = ACTIONS(5028),
    [sym_while] = ACTIONS(5028),
    [sym_with] = ACTIONS(5028),
    [sym_gshared] = ACTIONS(5028),
    [sym_traits] = ACTIONS(5028),
    [sym_vector] = ACTIONS(5028),
    [sym_void] = ACTIONS(5028),
    [anon_sym_BQUOTE] = ACTIONS(5030),
    [anon_sym_r_DQUOTE] = ACTIONS(5030),
    [anon_sym_x_DQUOTE] = ACTIONS(5030),
    [anon_sym_DQUOTE] = ACTIONS(5030),
    [anon_sym_i_BQUOTE] = ACTIONS(5030),
    [anon_sym_i_DQUOTE] = ACTIONS(5030),
    [anon_sym_iq_LBRACE] = ACTIONS(5030),
    [aux_sym_char_literal_token1] = ACTIONS(5030),
    [anon_sym_SQUOTE] = ACTIONS(5028),
    [anon_sym___DATE__] = ACTIONS(5028),
    [anon_sym___FILE__] = ACTIONS(5028),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5028),
    [anon_sym___FUNCTION__] = ACTIONS(5028),
    [anon_sym___LINE__] = ACTIONS(5028),
    [anon_sym___MODULE__] = ACTIONS(5028),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5028),
    [anon_sym___TIME__] = ACTIONS(5028),
    [anon_sym___TIMESTAMP__] = ACTIONS(5028),
    [anon_sym___VENDOR__] = ACTIONS(5028),
    [anon_sym___VERSION__] = ACTIONS(5028),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5030),
    [sym_float_literal] = ACTIONS(5030),
    [sym__string] = ACTIONS(5030),
  },
  [1625] = {
    [sym_identifier] = ACTIONS(4285),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4287),
    [anon_sym_RBRACE] = ACTIONS(4287),
    [anon_sym_LBRACE] = ACTIONS(4287),
    [anon_sym_DOT] = ACTIONS(4287),
    [anon_sym_AMP] = ACTIONS(4287),
    [anon_sym_DASH] = ACTIONS(4285),
    [anon_sym_DASH_DASH] = ACTIONS(4287),
    [anon_sym_PLUS] = ACTIONS(4285),
    [anon_sym_PLUS_PLUS] = ACTIONS(4287),
    [anon_sym_BANG] = ACTIONS(4287),
    [anon_sym_LPAREN] = ACTIONS(4287),
    [anon_sym_RPAREN] = ACTIONS(4287),
    [anon_sym_LBRACK] = ACTIONS(4287),
    [anon_sym_SEMI] = ACTIONS(4287),
    [anon_sym_DOLLAR] = ACTIONS(4287),
    [anon_sym_STAR] = ACTIONS(4287),
    [anon_sym_TILDE] = ACTIONS(4287),
    [anon_sym_AT] = ACTIONS(4287),
    [sym_bool] = ACTIONS(4285),
    [sym_byte] = ACTIONS(4285),
    [sym_ubyte] = ACTIONS(4285),
    [sym_char] = ACTIONS(4285),
    [sym_short] = ACTIONS(4285),
    [sym_ushort] = ACTIONS(4285),
    [sym_int] = ACTIONS(4285),
    [sym_uint] = ACTIONS(4285),
    [sym_long] = ACTIONS(4285),
    [sym_ulong] = ACTIONS(4285),
    [sym_cent] = ACTIONS(4285),
    [sym_ucent] = ACTIONS(4285),
    [sym_wchar] = ACTIONS(4285),
    [sym_dchar] = ACTIONS(4285),
    [sym_float] = ACTIONS(4285),
    [sym_double] = ACTIONS(4285),
    [sym_real] = ACTIONS(4285),
    [sym_ifloat] = ACTIONS(4285),
    [sym_idouble] = ACTIONS(4285),
    [sym_ireal] = ACTIONS(4285),
    [sym_cfloat] = ACTIONS(4285),
    [sym_cdouble] = ACTIONS(4285),
    [sym_creal] = ACTIONS(4285),
    [sym_size_t] = ACTIONS(4285),
    [sym_ptrdiff_t] = ACTIONS(4285),
    [sym_string] = ACTIONS(4285),
    [sym_cstring] = ACTIONS(4285),
    [sym_dstring] = ACTIONS(4285),
    [sym_wstring] = ACTIONS(4285),
    [sym_noreturn] = ACTIONS(4285),
    [sym_true] = ACTIONS(4285),
    [sym_false] = ACTIONS(4285),
    [sym_null] = ACTIONS(4285),
    [sym_super] = ACTIONS(4285),
    [sym_this] = ACTIONS(4285),
    [sym_abstract] = ACTIONS(4285),
    [sym_alias] = ACTIONS(4285),
    [sym_align] = ACTIONS(4285),
    [sym_asm] = ACTIONS(4285),
    [sym_assert] = ACTIONS(4285),
    [sym_auto] = ACTIONS(4285),
    [sym_break] = ACTIONS(4285),
    [sym_case] = ACTIONS(4285),
    [sym_cast] = ACTIONS(4285),
    [sym_class] = ACTIONS(4285),
    [sym_const] = ACTIONS(4285),
    [sym_continue] = ACTIONS(4285),
    [sym_debug] = ACTIONS(4285),
    [sym_default] = ACTIONS(4285),
    [sym_delegate] = ACTIONS(4285),
    [sym_delete] = ACTIONS(4285),
    [sym_deprecated] = ACTIONS(4285),
    [sym_do] = ACTIONS(4285),
    [sym_else] = ACTIONS(4285),
    [sym_enum] = ACTIONS(4285),
    [sym_export] = ACTIONS(4285),
    [sym_extern] = ACTIONS(4285),
    [sym_final] = ACTIONS(4285),
    [sym_for] = ACTIONS(4285),
    [sym_foreach] = ACTIONS(4285),
    [sym_foreach_reverse] = ACTIONS(4285),
    [sym_function] = ACTIONS(4285),
    [sym_goto] = ACTIONS(4285),
    [sym_if] = ACTIONS(4285),
    [sym_immutable] = ACTIONS(4285),
    [sym_import] = ACTIONS(4285),
    [sym_in] = ACTIONS(4285),
    [sym_inout] = ACTIONS(4285),
    [sym_interface] = ACTIONS(4285),
    [sym_invariant] = ACTIONS(4285),
    [sym_is] = ACTIONS(4285),
    [sym_mixin] = ACTIONS(4285),
    [sym_new] = ACTIONS(4285),
    [sym_nothrow] = ACTIONS(4285),
    [sym_out] = ACTIONS(4285),
    [sym_override] = ACTIONS(4285),
    [sym_package] = ACTIONS(4285),
    [sym_pragma] = ACTIONS(4285),
    [sym_private] = ACTIONS(4285),
    [sym_protected] = ACTIONS(4285),
    [sym_public] = ACTIONS(4285),
    [sym_pure] = ACTIONS(4285),
    [sym_ref] = ACTIONS(4285),
    [sym_return] = ACTIONS(4285),
    [sym_scope] = ACTIONS(4285),
    [sym_shared] = ACTIONS(4285),
    [sym_static] = ACTIONS(4285),
    [sym_struct] = ACTIONS(4285),
    [sym_switch] = ACTIONS(4285),
    [sym_synchronized] = ACTIONS(4285),
    [sym_template] = ACTIONS(4285),
    [sym_throw] = ACTIONS(4285),
    [sym_try] = ACTIONS(4285),
    [sym_typeid] = ACTIONS(4285),
    [sym_typeof] = ACTIONS(4285),
    [sym_union] = ACTIONS(4285),
    [sym_unittest] = ACTIONS(4285),
    [sym_version] = ACTIONS(4285),
    [sym_while] = ACTIONS(4285),
    [sym_with] = ACTIONS(4285),
    [sym_gshared] = ACTIONS(4285),
    [sym_traits] = ACTIONS(4285),
    [sym_vector] = ACTIONS(4285),
    [sym_void] = ACTIONS(4285),
    [anon_sym_BQUOTE] = ACTIONS(4287),
    [anon_sym_r_DQUOTE] = ACTIONS(4287),
    [anon_sym_x_DQUOTE] = ACTIONS(4287),
    [anon_sym_DQUOTE] = ACTIONS(4287),
    [anon_sym_i_BQUOTE] = ACTIONS(4287),
    [anon_sym_i_DQUOTE] = ACTIONS(4287),
    [anon_sym_iq_LBRACE] = ACTIONS(4287),
    [aux_sym_char_literal_token1] = ACTIONS(4287),
    [anon_sym_SQUOTE] = ACTIONS(4285),
    [anon_sym___DATE__] = ACTIONS(4285),
    [anon_sym___FILE__] = ACTIONS(4285),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4285),
    [anon_sym___FUNCTION__] = ACTIONS(4285),
    [anon_sym___LINE__] = ACTIONS(4285),
    [anon_sym___MODULE__] = ACTIONS(4285),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4285),
    [anon_sym___TIME__] = ACTIONS(4285),
    [anon_sym___TIMESTAMP__] = ACTIONS(4285),
    [anon_sym___VENDOR__] = ACTIONS(4285),
    [anon_sym___VERSION__] = ACTIONS(4285),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4287),
    [sym_float_literal] = ACTIONS(4287),
    [sym__string] = ACTIONS(4287),
  },
  [1626] = {
    [sym_identifier] = ACTIONS(5004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5006),
    [anon_sym_RBRACE] = ACTIONS(5006),
    [anon_sym_LBRACE] = ACTIONS(5006),
    [anon_sym_DOT] = ACTIONS(5006),
    [anon_sym_AMP] = ACTIONS(5006),
    [anon_sym_DASH] = ACTIONS(5004),
    [anon_sym_DASH_DASH] = ACTIONS(5006),
    [anon_sym_PLUS] = ACTIONS(5004),
    [anon_sym_PLUS_PLUS] = ACTIONS(5006),
    [anon_sym_BANG] = ACTIONS(5006),
    [anon_sym_LPAREN] = ACTIONS(5006),
    [anon_sym_RPAREN] = ACTIONS(5006),
    [anon_sym_LBRACK] = ACTIONS(5006),
    [anon_sym_SEMI] = ACTIONS(5006),
    [anon_sym_DOLLAR] = ACTIONS(5006),
    [anon_sym_STAR] = ACTIONS(5006),
    [anon_sym_TILDE] = ACTIONS(5006),
    [anon_sym_AT] = ACTIONS(5006),
    [sym_bool] = ACTIONS(5004),
    [sym_byte] = ACTIONS(5004),
    [sym_ubyte] = ACTIONS(5004),
    [sym_char] = ACTIONS(5004),
    [sym_short] = ACTIONS(5004),
    [sym_ushort] = ACTIONS(5004),
    [sym_int] = ACTIONS(5004),
    [sym_uint] = ACTIONS(5004),
    [sym_long] = ACTIONS(5004),
    [sym_ulong] = ACTIONS(5004),
    [sym_cent] = ACTIONS(5004),
    [sym_ucent] = ACTIONS(5004),
    [sym_wchar] = ACTIONS(5004),
    [sym_dchar] = ACTIONS(5004),
    [sym_float] = ACTIONS(5004),
    [sym_double] = ACTIONS(5004),
    [sym_real] = ACTIONS(5004),
    [sym_ifloat] = ACTIONS(5004),
    [sym_idouble] = ACTIONS(5004),
    [sym_ireal] = ACTIONS(5004),
    [sym_cfloat] = ACTIONS(5004),
    [sym_cdouble] = ACTIONS(5004),
    [sym_creal] = ACTIONS(5004),
    [sym_size_t] = ACTIONS(5004),
    [sym_ptrdiff_t] = ACTIONS(5004),
    [sym_string] = ACTIONS(5004),
    [sym_cstring] = ACTIONS(5004),
    [sym_dstring] = ACTIONS(5004),
    [sym_wstring] = ACTIONS(5004),
    [sym_noreturn] = ACTIONS(5004),
    [sym_true] = ACTIONS(5004),
    [sym_false] = ACTIONS(5004),
    [sym_null] = ACTIONS(5004),
    [sym_super] = ACTIONS(5004),
    [sym_this] = ACTIONS(5004),
    [sym_abstract] = ACTIONS(5004),
    [sym_alias] = ACTIONS(5004),
    [sym_align] = ACTIONS(5004),
    [sym_asm] = ACTIONS(5004),
    [sym_assert] = ACTIONS(5004),
    [sym_auto] = ACTIONS(5004),
    [sym_break] = ACTIONS(5004),
    [sym_case] = ACTIONS(5004),
    [sym_cast] = ACTIONS(5004),
    [sym_class] = ACTIONS(5004),
    [sym_const] = ACTIONS(5004),
    [sym_continue] = ACTIONS(5004),
    [sym_debug] = ACTIONS(5004),
    [sym_default] = ACTIONS(5004),
    [sym_delegate] = ACTIONS(5004),
    [sym_delete] = ACTIONS(5004),
    [sym_deprecated] = ACTIONS(5004),
    [sym_do] = ACTIONS(5004),
    [sym_else] = ACTIONS(5004),
    [sym_enum] = ACTIONS(5004),
    [sym_export] = ACTIONS(5004),
    [sym_extern] = ACTIONS(5004),
    [sym_final] = ACTIONS(5004),
    [sym_for] = ACTIONS(5004),
    [sym_foreach] = ACTIONS(5004),
    [sym_foreach_reverse] = ACTIONS(5004),
    [sym_function] = ACTIONS(5004),
    [sym_goto] = ACTIONS(5004),
    [sym_if] = ACTIONS(5004),
    [sym_immutable] = ACTIONS(5004),
    [sym_import] = ACTIONS(5004),
    [sym_in] = ACTIONS(5004),
    [sym_inout] = ACTIONS(5004),
    [sym_interface] = ACTIONS(5004),
    [sym_invariant] = ACTIONS(5004),
    [sym_is] = ACTIONS(5004),
    [sym_mixin] = ACTIONS(5004),
    [sym_new] = ACTIONS(5004),
    [sym_nothrow] = ACTIONS(5004),
    [sym_out] = ACTIONS(5004),
    [sym_override] = ACTIONS(5004),
    [sym_package] = ACTIONS(5004),
    [sym_pragma] = ACTIONS(5004),
    [sym_private] = ACTIONS(5004),
    [sym_protected] = ACTIONS(5004),
    [sym_public] = ACTIONS(5004),
    [sym_pure] = ACTIONS(5004),
    [sym_ref] = ACTIONS(5004),
    [sym_return] = ACTIONS(5004),
    [sym_scope] = ACTIONS(5004),
    [sym_shared] = ACTIONS(5004),
    [sym_static] = ACTIONS(5004),
    [sym_struct] = ACTIONS(5004),
    [sym_switch] = ACTIONS(5004),
    [sym_synchronized] = ACTIONS(5004),
    [sym_template] = ACTIONS(5004),
    [sym_throw] = ACTIONS(5004),
    [sym_try] = ACTIONS(5004),
    [sym_typeid] = ACTIONS(5004),
    [sym_typeof] = ACTIONS(5004),
    [sym_union] = ACTIONS(5004),
    [sym_unittest] = ACTIONS(5004),
    [sym_version] = ACTIONS(5004),
    [sym_while] = ACTIONS(5004),
    [sym_with] = ACTIONS(5004),
    [sym_gshared] = ACTIONS(5004),
    [sym_traits] = ACTIONS(5004),
    [sym_vector] = ACTIONS(5004),
    [sym_void] = ACTIONS(5004),
    [anon_sym_BQUOTE] = ACTIONS(5006),
    [anon_sym_r_DQUOTE] = ACTIONS(5006),
    [anon_sym_x_DQUOTE] = ACTIONS(5006),
    [anon_sym_DQUOTE] = ACTIONS(5006),
    [anon_sym_i_BQUOTE] = ACTIONS(5006),
    [anon_sym_i_DQUOTE] = ACTIONS(5006),
    [anon_sym_iq_LBRACE] = ACTIONS(5006),
    [aux_sym_char_literal_token1] = ACTIONS(5006),
    [anon_sym_SQUOTE] = ACTIONS(5004),
    [anon_sym___DATE__] = ACTIONS(5004),
    [anon_sym___FILE__] = ACTIONS(5004),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5004),
    [anon_sym___FUNCTION__] = ACTIONS(5004),
    [anon_sym___LINE__] = ACTIONS(5004),
    [anon_sym___MODULE__] = ACTIONS(5004),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5004),
    [anon_sym___TIME__] = ACTIONS(5004),
    [anon_sym___TIMESTAMP__] = ACTIONS(5004),
    [anon_sym___VENDOR__] = ACTIONS(5004),
    [anon_sym___VERSION__] = ACTIONS(5004),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5006),
    [sym_float_literal] = ACTIONS(5006),
    [sym__string] = ACTIONS(5006),
  },
  [1627] = {
    [sym_identifier] = ACTIONS(5080),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5082),
    [anon_sym_RBRACE] = ACTIONS(5082),
    [anon_sym_LBRACE] = ACTIONS(5082),
    [anon_sym_DOT] = ACTIONS(5082),
    [anon_sym_AMP] = ACTIONS(5082),
    [anon_sym_DASH] = ACTIONS(5080),
    [anon_sym_DASH_DASH] = ACTIONS(5082),
    [anon_sym_PLUS] = ACTIONS(5080),
    [anon_sym_PLUS_PLUS] = ACTIONS(5082),
    [anon_sym_BANG] = ACTIONS(5082),
    [anon_sym_LPAREN] = ACTIONS(5082),
    [anon_sym_RPAREN] = ACTIONS(5082),
    [anon_sym_LBRACK] = ACTIONS(5082),
    [anon_sym_SEMI] = ACTIONS(5082),
    [anon_sym_DOLLAR] = ACTIONS(5082),
    [anon_sym_STAR] = ACTIONS(5082),
    [anon_sym_TILDE] = ACTIONS(5082),
    [anon_sym_AT] = ACTIONS(5082),
    [sym_bool] = ACTIONS(5080),
    [sym_byte] = ACTIONS(5080),
    [sym_ubyte] = ACTIONS(5080),
    [sym_char] = ACTIONS(5080),
    [sym_short] = ACTIONS(5080),
    [sym_ushort] = ACTIONS(5080),
    [sym_int] = ACTIONS(5080),
    [sym_uint] = ACTIONS(5080),
    [sym_long] = ACTIONS(5080),
    [sym_ulong] = ACTIONS(5080),
    [sym_cent] = ACTIONS(5080),
    [sym_ucent] = ACTIONS(5080),
    [sym_wchar] = ACTIONS(5080),
    [sym_dchar] = ACTIONS(5080),
    [sym_float] = ACTIONS(5080),
    [sym_double] = ACTIONS(5080),
    [sym_real] = ACTIONS(5080),
    [sym_ifloat] = ACTIONS(5080),
    [sym_idouble] = ACTIONS(5080),
    [sym_ireal] = ACTIONS(5080),
    [sym_cfloat] = ACTIONS(5080),
    [sym_cdouble] = ACTIONS(5080),
    [sym_creal] = ACTIONS(5080),
    [sym_size_t] = ACTIONS(5080),
    [sym_ptrdiff_t] = ACTIONS(5080),
    [sym_string] = ACTIONS(5080),
    [sym_cstring] = ACTIONS(5080),
    [sym_dstring] = ACTIONS(5080),
    [sym_wstring] = ACTIONS(5080),
    [sym_noreturn] = ACTIONS(5080),
    [sym_true] = ACTIONS(5080),
    [sym_false] = ACTIONS(5080),
    [sym_null] = ACTIONS(5080),
    [sym_super] = ACTIONS(5080),
    [sym_this] = ACTIONS(5080),
    [sym_abstract] = ACTIONS(5080),
    [sym_alias] = ACTIONS(5080),
    [sym_align] = ACTIONS(5080),
    [sym_asm] = ACTIONS(5080),
    [sym_assert] = ACTIONS(5080),
    [sym_auto] = ACTIONS(5080),
    [sym_break] = ACTIONS(5080),
    [sym_case] = ACTIONS(5080),
    [sym_cast] = ACTIONS(5080),
    [sym_class] = ACTIONS(5080),
    [sym_const] = ACTIONS(5080),
    [sym_continue] = ACTIONS(5080),
    [sym_debug] = ACTIONS(5080),
    [sym_default] = ACTIONS(5080),
    [sym_delegate] = ACTIONS(5080),
    [sym_delete] = ACTIONS(5080),
    [sym_deprecated] = ACTIONS(5080),
    [sym_do] = ACTIONS(5080),
    [sym_else] = ACTIONS(5080),
    [sym_enum] = ACTIONS(5080),
    [sym_export] = ACTIONS(5080),
    [sym_extern] = ACTIONS(5080),
    [sym_final] = ACTIONS(5080),
    [sym_for] = ACTIONS(5080),
    [sym_foreach] = ACTIONS(5080),
    [sym_foreach_reverse] = ACTIONS(5080),
    [sym_function] = ACTIONS(5080),
    [sym_goto] = ACTIONS(5080),
    [sym_if] = ACTIONS(5080),
    [sym_immutable] = ACTIONS(5080),
    [sym_import] = ACTIONS(5080),
    [sym_in] = ACTIONS(5080),
    [sym_inout] = ACTIONS(5080),
    [sym_interface] = ACTIONS(5080),
    [sym_invariant] = ACTIONS(5080),
    [sym_is] = ACTIONS(5080),
    [sym_mixin] = ACTIONS(5080),
    [sym_new] = ACTIONS(5080),
    [sym_nothrow] = ACTIONS(5080),
    [sym_out] = ACTIONS(5080),
    [sym_override] = ACTIONS(5080),
    [sym_package] = ACTIONS(5080),
    [sym_pragma] = ACTIONS(5080),
    [sym_private] = ACTIONS(5080),
    [sym_protected] = ACTIONS(5080),
    [sym_public] = ACTIONS(5080),
    [sym_pure] = ACTIONS(5080),
    [sym_ref] = ACTIONS(5080),
    [sym_return] = ACTIONS(5080),
    [sym_scope] = ACTIONS(5080),
    [sym_shared] = ACTIONS(5080),
    [sym_static] = ACTIONS(5080),
    [sym_struct] = ACTIONS(5080),
    [sym_switch] = ACTIONS(5080),
    [sym_synchronized] = ACTIONS(5080),
    [sym_template] = ACTIONS(5080),
    [sym_throw] = ACTIONS(5080),
    [sym_try] = ACTIONS(5080),
    [sym_typeid] = ACTIONS(5080),
    [sym_typeof] = ACTIONS(5080),
    [sym_union] = ACTIONS(5080),
    [sym_unittest] = ACTIONS(5080),
    [sym_version] = ACTIONS(5080),
    [sym_while] = ACTIONS(5080),
    [sym_with] = ACTIONS(5080),
    [sym_gshared] = ACTIONS(5080),
    [sym_traits] = ACTIONS(5080),
    [sym_vector] = ACTIONS(5080),
    [sym_void] = ACTIONS(5080),
    [anon_sym_BQUOTE] = ACTIONS(5082),
    [anon_sym_r_DQUOTE] = ACTIONS(5082),
    [anon_sym_x_DQUOTE] = ACTIONS(5082),
    [anon_sym_DQUOTE] = ACTIONS(5082),
    [anon_sym_i_BQUOTE] = ACTIONS(5082),
    [anon_sym_i_DQUOTE] = ACTIONS(5082),
    [anon_sym_iq_LBRACE] = ACTIONS(5082),
    [aux_sym_char_literal_token1] = ACTIONS(5082),
    [anon_sym_SQUOTE] = ACTIONS(5080),
    [anon_sym___DATE__] = ACTIONS(5080),
    [anon_sym___FILE__] = ACTIONS(5080),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5080),
    [anon_sym___FUNCTION__] = ACTIONS(5080),
    [anon_sym___LINE__] = ACTIONS(5080),
    [anon_sym___MODULE__] = ACTIONS(5080),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5080),
    [anon_sym___TIME__] = ACTIONS(5080),
    [anon_sym___TIMESTAMP__] = ACTIONS(5080),
    [anon_sym___VENDOR__] = ACTIONS(5080),
    [anon_sym___VERSION__] = ACTIONS(5080),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5082),
    [sym_float_literal] = ACTIONS(5082),
    [sym__string] = ACTIONS(5082),
  },
  [1628] = {
    [sym_identifier] = ACTIONS(5076),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5078),
    [anon_sym_RBRACE] = ACTIONS(5078),
    [anon_sym_LBRACE] = ACTIONS(5078),
    [anon_sym_DOT] = ACTIONS(5078),
    [anon_sym_AMP] = ACTIONS(5078),
    [anon_sym_DASH] = ACTIONS(5076),
    [anon_sym_DASH_DASH] = ACTIONS(5078),
    [anon_sym_PLUS] = ACTIONS(5076),
    [anon_sym_PLUS_PLUS] = ACTIONS(5078),
    [anon_sym_BANG] = ACTIONS(5078),
    [anon_sym_LPAREN] = ACTIONS(5078),
    [anon_sym_RPAREN] = ACTIONS(5078),
    [anon_sym_LBRACK] = ACTIONS(5078),
    [anon_sym_SEMI] = ACTIONS(5078),
    [anon_sym_DOLLAR] = ACTIONS(5078),
    [anon_sym_STAR] = ACTIONS(5078),
    [anon_sym_TILDE] = ACTIONS(5078),
    [anon_sym_AT] = ACTIONS(5078),
    [sym_bool] = ACTIONS(5076),
    [sym_byte] = ACTIONS(5076),
    [sym_ubyte] = ACTIONS(5076),
    [sym_char] = ACTIONS(5076),
    [sym_short] = ACTIONS(5076),
    [sym_ushort] = ACTIONS(5076),
    [sym_int] = ACTIONS(5076),
    [sym_uint] = ACTIONS(5076),
    [sym_long] = ACTIONS(5076),
    [sym_ulong] = ACTIONS(5076),
    [sym_cent] = ACTIONS(5076),
    [sym_ucent] = ACTIONS(5076),
    [sym_wchar] = ACTIONS(5076),
    [sym_dchar] = ACTIONS(5076),
    [sym_float] = ACTIONS(5076),
    [sym_double] = ACTIONS(5076),
    [sym_real] = ACTIONS(5076),
    [sym_ifloat] = ACTIONS(5076),
    [sym_idouble] = ACTIONS(5076),
    [sym_ireal] = ACTIONS(5076),
    [sym_cfloat] = ACTIONS(5076),
    [sym_cdouble] = ACTIONS(5076),
    [sym_creal] = ACTIONS(5076),
    [sym_size_t] = ACTIONS(5076),
    [sym_ptrdiff_t] = ACTIONS(5076),
    [sym_string] = ACTIONS(5076),
    [sym_cstring] = ACTIONS(5076),
    [sym_dstring] = ACTIONS(5076),
    [sym_wstring] = ACTIONS(5076),
    [sym_noreturn] = ACTIONS(5076),
    [sym_true] = ACTIONS(5076),
    [sym_false] = ACTIONS(5076),
    [sym_null] = ACTIONS(5076),
    [sym_super] = ACTIONS(5076),
    [sym_this] = ACTIONS(5076),
    [sym_abstract] = ACTIONS(5076),
    [sym_alias] = ACTIONS(5076),
    [sym_align] = ACTIONS(5076),
    [sym_asm] = ACTIONS(5076),
    [sym_assert] = ACTIONS(5076),
    [sym_auto] = ACTIONS(5076),
    [sym_break] = ACTIONS(5076),
    [sym_case] = ACTIONS(5076),
    [sym_cast] = ACTIONS(5076),
    [sym_class] = ACTIONS(5076),
    [sym_const] = ACTIONS(5076),
    [sym_continue] = ACTIONS(5076),
    [sym_debug] = ACTIONS(5076),
    [sym_default] = ACTIONS(5076),
    [sym_delegate] = ACTIONS(5076),
    [sym_delete] = ACTIONS(5076),
    [sym_deprecated] = ACTIONS(5076),
    [sym_do] = ACTIONS(5076),
    [sym_else] = ACTIONS(5076),
    [sym_enum] = ACTIONS(5076),
    [sym_export] = ACTIONS(5076),
    [sym_extern] = ACTIONS(5076),
    [sym_final] = ACTIONS(5076),
    [sym_for] = ACTIONS(5076),
    [sym_foreach] = ACTIONS(5076),
    [sym_foreach_reverse] = ACTIONS(5076),
    [sym_function] = ACTIONS(5076),
    [sym_goto] = ACTIONS(5076),
    [sym_if] = ACTIONS(5076),
    [sym_immutable] = ACTIONS(5076),
    [sym_import] = ACTIONS(5076),
    [sym_in] = ACTIONS(5076),
    [sym_inout] = ACTIONS(5076),
    [sym_interface] = ACTIONS(5076),
    [sym_invariant] = ACTIONS(5076),
    [sym_is] = ACTIONS(5076),
    [sym_mixin] = ACTIONS(5076),
    [sym_new] = ACTIONS(5076),
    [sym_nothrow] = ACTIONS(5076),
    [sym_out] = ACTIONS(5076),
    [sym_override] = ACTIONS(5076),
    [sym_package] = ACTIONS(5076),
    [sym_pragma] = ACTIONS(5076),
    [sym_private] = ACTIONS(5076),
    [sym_protected] = ACTIONS(5076),
    [sym_public] = ACTIONS(5076),
    [sym_pure] = ACTIONS(5076),
    [sym_ref] = ACTIONS(5076),
    [sym_return] = ACTIONS(5076),
    [sym_scope] = ACTIONS(5076),
    [sym_shared] = ACTIONS(5076),
    [sym_static] = ACTIONS(5076),
    [sym_struct] = ACTIONS(5076),
    [sym_switch] = ACTIONS(5076),
    [sym_synchronized] = ACTIONS(5076),
    [sym_template] = ACTIONS(5076),
    [sym_throw] = ACTIONS(5076),
    [sym_try] = ACTIONS(5076),
    [sym_typeid] = ACTIONS(5076),
    [sym_typeof] = ACTIONS(5076),
    [sym_union] = ACTIONS(5076),
    [sym_unittest] = ACTIONS(5076),
    [sym_version] = ACTIONS(5076),
    [sym_while] = ACTIONS(5076),
    [sym_with] = ACTIONS(5076),
    [sym_gshared] = ACTIONS(5076),
    [sym_traits] = ACTIONS(5076),
    [sym_vector] = ACTIONS(5076),
    [sym_void] = ACTIONS(5076),
    [anon_sym_BQUOTE] = ACTIONS(5078),
    [anon_sym_r_DQUOTE] = ACTIONS(5078),
    [anon_sym_x_DQUOTE] = ACTIONS(5078),
    [anon_sym_DQUOTE] = ACTIONS(5078),
    [anon_sym_i_BQUOTE] = ACTIONS(5078),
    [anon_sym_i_DQUOTE] = ACTIONS(5078),
    [anon_sym_iq_LBRACE] = ACTIONS(5078),
    [aux_sym_char_literal_token1] = ACTIONS(5078),
    [anon_sym_SQUOTE] = ACTIONS(5076),
    [anon_sym___DATE__] = ACTIONS(5076),
    [anon_sym___FILE__] = ACTIONS(5076),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5076),
    [anon_sym___FUNCTION__] = ACTIONS(5076),
    [anon_sym___LINE__] = ACTIONS(5076),
    [anon_sym___MODULE__] = ACTIONS(5076),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5076),
    [anon_sym___TIME__] = ACTIONS(5076),
    [anon_sym___TIMESTAMP__] = ACTIONS(5076),
    [anon_sym___VENDOR__] = ACTIONS(5076),
    [anon_sym___VERSION__] = ACTIONS(5076),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5078),
    [sym_float_literal] = ACTIONS(5078),
    [sym__string] = ACTIONS(5078),
  },
  [1629] = {
    [sym_identifier] = ACTIONS(4844),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4846),
    [anon_sym_RBRACE] = ACTIONS(4846),
    [anon_sym_LBRACE] = ACTIONS(4846),
    [anon_sym_DOT] = ACTIONS(4846),
    [anon_sym_AMP] = ACTIONS(4846),
    [anon_sym_DASH] = ACTIONS(4844),
    [anon_sym_DASH_DASH] = ACTIONS(4846),
    [anon_sym_PLUS] = ACTIONS(4844),
    [anon_sym_PLUS_PLUS] = ACTIONS(4846),
    [anon_sym_BANG] = ACTIONS(4846),
    [anon_sym_LPAREN] = ACTIONS(4846),
    [anon_sym_RPAREN] = ACTIONS(4846),
    [anon_sym_LBRACK] = ACTIONS(4846),
    [anon_sym_SEMI] = ACTIONS(4846),
    [anon_sym_DOLLAR] = ACTIONS(4846),
    [anon_sym_STAR] = ACTIONS(4846),
    [anon_sym_TILDE] = ACTIONS(4846),
    [anon_sym_AT] = ACTIONS(4846),
    [sym_bool] = ACTIONS(4844),
    [sym_byte] = ACTIONS(4844),
    [sym_ubyte] = ACTIONS(4844),
    [sym_char] = ACTIONS(4844),
    [sym_short] = ACTIONS(4844),
    [sym_ushort] = ACTIONS(4844),
    [sym_int] = ACTIONS(4844),
    [sym_uint] = ACTIONS(4844),
    [sym_long] = ACTIONS(4844),
    [sym_ulong] = ACTIONS(4844),
    [sym_cent] = ACTIONS(4844),
    [sym_ucent] = ACTIONS(4844),
    [sym_wchar] = ACTIONS(4844),
    [sym_dchar] = ACTIONS(4844),
    [sym_float] = ACTIONS(4844),
    [sym_double] = ACTIONS(4844),
    [sym_real] = ACTIONS(4844),
    [sym_ifloat] = ACTIONS(4844),
    [sym_idouble] = ACTIONS(4844),
    [sym_ireal] = ACTIONS(4844),
    [sym_cfloat] = ACTIONS(4844),
    [sym_cdouble] = ACTIONS(4844),
    [sym_creal] = ACTIONS(4844),
    [sym_size_t] = ACTIONS(4844),
    [sym_ptrdiff_t] = ACTIONS(4844),
    [sym_string] = ACTIONS(4844),
    [sym_cstring] = ACTIONS(4844),
    [sym_dstring] = ACTIONS(4844),
    [sym_wstring] = ACTIONS(4844),
    [sym_noreturn] = ACTIONS(4844),
    [sym_true] = ACTIONS(4844),
    [sym_false] = ACTIONS(4844),
    [sym_null] = ACTIONS(4844),
    [sym_super] = ACTIONS(4844),
    [sym_this] = ACTIONS(4844),
    [sym_abstract] = ACTIONS(4844),
    [sym_alias] = ACTIONS(4844),
    [sym_align] = ACTIONS(4844),
    [sym_asm] = ACTIONS(4844),
    [sym_assert] = ACTIONS(4844),
    [sym_auto] = ACTIONS(4844),
    [sym_break] = ACTIONS(4844),
    [sym_case] = ACTIONS(4844),
    [sym_cast] = ACTIONS(4844),
    [sym_class] = ACTIONS(4844),
    [sym_const] = ACTIONS(4844),
    [sym_continue] = ACTIONS(4844),
    [sym_debug] = ACTIONS(4844),
    [sym_default] = ACTIONS(4844),
    [sym_delegate] = ACTIONS(4844),
    [sym_delete] = ACTIONS(4844),
    [sym_deprecated] = ACTIONS(4844),
    [sym_do] = ACTIONS(4844),
    [sym_else] = ACTIONS(4844),
    [sym_enum] = ACTIONS(4844),
    [sym_export] = ACTIONS(4844),
    [sym_extern] = ACTIONS(4844),
    [sym_final] = ACTIONS(4844),
    [sym_for] = ACTIONS(4844),
    [sym_foreach] = ACTIONS(4844),
    [sym_foreach_reverse] = ACTIONS(4844),
    [sym_function] = ACTIONS(4844),
    [sym_goto] = ACTIONS(4844),
    [sym_if] = ACTIONS(4844),
    [sym_immutable] = ACTIONS(4844),
    [sym_import] = ACTIONS(4844),
    [sym_in] = ACTIONS(4844),
    [sym_inout] = ACTIONS(4844),
    [sym_interface] = ACTIONS(4844),
    [sym_invariant] = ACTIONS(4844),
    [sym_is] = ACTIONS(4844),
    [sym_mixin] = ACTIONS(4844),
    [sym_new] = ACTIONS(4844),
    [sym_nothrow] = ACTIONS(4844),
    [sym_out] = ACTIONS(4844),
    [sym_override] = ACTIONS(4844),
    [sym_package] = ACTIONS(4844),
    [sym_pragma] = ACTIONS(4844),
    [sym_private] = ACTIONS(4844),
    [sym_protected] = ACTIONS(4844),
    [sym_public] = ACTIONS(4844),
    [sym_pure] = ACTIONS(4844),
    [sym_ref] = ACTIONS(4844),
    [sym_return] = ACTIONS(4844),
    [sym_scope] = ACTIONS(4844),
    [sym_shared] = ACTIONS(4844),
    [sym_static] = ACTIONS(4844),
    [sym_struct] = ACTIONS(4844),
    [sym_switch] = ACTIONS(4844),
    [sym_synchronized] = ACTIONS(4844),
    [sym_template] = ACTIONS(4844),
    [sym_throw] = ACTIONS(4844),
    [sym_try] = ACTIONS(4844),
    [sym_typeid] = ACTIONS(4844),
    [sym_typeof] = ACTIONS(4844),
    [sym_union] = ACTIONS(4844),
    [sym_unittest] = ACTIONS(4844),
    [sym_version] = ACTIONS(4844),
    [sym_while] = ACTIONS(4844),
    [sym_with] = ACTIONS(4844),
    [sym_gshared] = ACTIONS(4844),
    [sym_traits] = ACTIONS(4844),
    [sym_vector] = ACTIONS(4844),
    [sym_void] = ACTIONS(4844),
    [anon_sym_BQUOTE] = ACTIONS(4846),
    [anon_sym_r_DQUOTE] = ACTIONS(4846),
    [anon_sym_x_DQUOTE] = ACTIONS(4846),
    [anon_sym_DQUOTE] = ACTIONS(4846),
    [anon_sym_i_BQUOTE] = ACTIONS(4846),
    [anon_sym_i_DQUOTE] = ACTIONS(4846),
    [anon_sym_iq_LBRACE] = ACTIONS(4846),
    [aux_sym_char_literal_token1] = ACTIONS(4846),
    [anon_sym_SQUOTE] = ACTIONS(4844),
    [anon_sym___DATE__] = ACTIONS(4844),
    [anon_sym___FILE__] = ACTIONS(4844),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4844),
    [anon_sym___FUNCTION__] = ACTIONS(4844),
    [anon_sym___LINE__] = ACTIONS(4844),
    [anon_sym___MODULE__] = ACTIONS(4844),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4844),
    [anon_sym___TIME__] = ACTIONS(4844),
    [anon_sym___TIMESTAMP__] = ACTIONS(4844),
    [anon_sym___VENDOR__] = ACTIONS(4844),
    [anon_sym___VERSION__] = ACTIONS(4844),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4846),
    [sym_float_literal] = ACTIONS(4846),
    [sym__string] = ACTIONS(4846),
  },
  [1630] = {
    [sym_identifier] = ACTIONS(4836),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4838),
    [anon_sym_RBRACE] = ACTIONS(4838),
    [anon_sym_LBRACE] = ACTIONS(4838),
    [anon_sym_DOT] = ACTIONS(4838),
    [anon_sym_AMP] = ACTIONS(4838),
    [anon_sym_DASH] = ACTIONS(4836),
    [anon_sym_DASH_DASH] = ACTIONS(4838),
    [anon_sym_PLUS] = ACTIONS(4836),
    [anon_sym_PLUS_PLUS] = ACTIONS(4838),
    [anon_sym_BANG] = ACTIONS(4838),
    [anon_sym_LPAREN] = ACTIONS(4838),
    [anon_sym_RPAREN] = ACTIONS(4838),
    [anon_sym_LBRACK] = ACTIONS(4838),
    [anon_sym_SEMI] = ACTIONS(4838),
    [anon_sym_DOLLAR] = ACTIONS(4838),
    [anon_sym_STAR] = ACTIONS(4838),
    [anon_sym_TILDE] = ACTIONS(4838),
    [anon_sym_AT] = ACTIONS(4838),
    [sym_bool] = ACTIONS(4836),
    [sym_byte] = ACTIONS(4836),
    [sym_ubyte] = ACTIONS(4836),
    [sym_char] = ACTIONS(4836),
    [sym_short] = ACTIONS(4836),
    [sym_ushort] = ACTIONS(4836),
    [sym_int] = ACTIONS(4836),
    [sym_uint] = ACTIONS(4836),
    [sym_long] = ACTIONS(4836),
    [sym_ulong] = ACTIONS(4836),
    [sym_cent] = ACTIONS(4836),
    [sym_ucent] = ACTIONS(4836),
    [sym_wchar] = ACTIONS(4836),
    [sym_dchar] = ACTIONS(4836),
    [sym_float] = ACTIONS(4836),
    [sym_double] = ACTIONS(4836),
    [sym_real] = ACTIONS(4836),
    [sym_ifloat] = ACTIONS(4836),
    [sym_idouble] = ACTIONS(4836),
    [sym_ireal] = ACTIONS(4836),
    [sym_cfloat] = ACTIONS(4836),
    [sym_cdouble] = ACTIONS(4836),
    [sym_creal] = ACTIONS(4836),
    [sym_size_t] = ACTIONS(4836),
    [sym_ptrdiff_t] = ACTIONS(4836),
    [sym_string] = ACTIONS(4836),
    [sym_cstring] = ACTIONS(4836),
    [sym_dstring] = ACTIONS(4836),
    [sym_wstring] = ACTIONS(4836),
    [sym_noreturn] = ACTIONS(4836),
    [sym_true] = ACTIONS(4836),
    [sym_false] = ACTIONS(4836),
    [sym_null] = ACTIONS(4836),
    [sym_super] = ACTIONS(4836),
    [sym_this] = ACTIONS(4836),
    [sym_abstract] = ACTIONS(4836),
    [sym_alias] = ACTIONS(4836),
    [sym_align] = ACTIONS(4836),
    [sym_asm] = ACTIONS(4836),
    [sym_assert] = ACTIONS(4836),
    [sym_auto] = ACTIONS(4836),
    [sym_break] = ACTIONS(4836),
    [sym_case] = ACTIONS(4836),
    [sym_cast] = ACTIONS(4836),
    [sym_class] = ACTIONS(4836),
    [sym_const] = ACTIONS(4836),
    [sym_continue] = ACTIONS(4836),
    [sym_debug] = ACTIONS(4836),
    [sym_default] = ACTIONS(4836),
    [sym_delegate] = ACTIONS(4836),
    [sym_delete] = ACTIONS(4836),
    [sym_deprecated] = ACTIONS(4836),
    [sym_do] = ACTIONS(4836),
    [sym_else] = ACTIONS(4836),
    [sym_enum] = ACTIONS(4836),
    [sym_export] = ACTIONS(4836),
    [sym_extern] = ACTIONS(4836),
    [sym_final] = ACTIONS(4836),
    [sym_for] = ACTIONS(4836),
    [sym_foreach] = ACTIONS(4836),
    [sym_foreach_reverse] = ACTIONS(4836),
    [sym_function] = ACTIONS(4836),
    [sym_goto] = ACTIONS(4836),
    [sym_if] = ACTIONS(4836),
    [sym_immutable] = ACTIONS(4836),
    [sym_import] = ACTIONS(4836),
    [sym_in] = ACTIONS(4836),
    [sym_inout] = ACTIONS(4836),
    [sym_interface] = ACTIONS(4836),
    [sym_invariant] = ACTIONS(4836),
    [sym_is] = ACTIONS(4836),
    [sym_mixin] = ACTIONS(4836),
    [sym_new] = ACTIONS(4836),
    [sym_nothrow] = ACTIONS(4836),
    [sym_out] = ACTIONS(4836),
    [sym_override] = ACTIONS(4836),
    [sym_package] = ACTIONS(4836),
    [sym_pragma] = ACTIONS(4836),
    [sym_private] = ACTIONS(4836),
    [sym_protected] = ACTIONS(4836),
    [sym_public] = ACTIONS(4836),
    [sym_pure] = ACTIONS(4836),
    [sym_ref] = ACTIONS(4836),
    [sym_return] = ACTIONS(4836),
    [sym_scope] = ACTIONS(4836),
    [sym_shared] = ACTIONS(4836),
    [sym_static] = ACTIONS(4836),
    [sym_struct] = ACTIONS(4836),
    [sym_switch] = ACTIONS(4836),
    [sym_synchronized] = ACTIONS(4836),
    [sym_template] = ACTIONS(4836),
    [sym_throw] = ACTIONS(4836),
    [sym_try] = ACTIONS(4836),
    [sym_typeid] = ACTIONS(4836),
    [sym_typeof] = ACTIONS(4836),
    [sym_union] = ACTIONS(4836),
    [sym_unittest] = ACTIONS(4836),
    [sym_version] = ACTIONS(4836),
    [sym_while] = ACTIONS(4836),
    [sym_with] = ACTIONS(4836),
    [sym_gshared] = ACTIONS(4836),
    [sym_traits] = ACTIONS(4836),
    [sym_vector] = ACTIONS(4836),
    [sym_void] = ACTIONS(4836),
    [anon_sym_BQUOTE] = ACTIONS(4838),
    [anon_sym_r_DQUOTE] = ACTIONS(4838),
    [anon_sym_x_DQUOTE] = ACTIONS(4838),
    [anon_sym_DQUOTE] = ACTIONS(4838),
    [anon_sym_i_BQUOTE] = ACTIONS(4838),
    [anon_sym_i_DQUOTE] = ACTIONS(4838),
    [anon_sym_iq_LBRACE] = ACTIONS(4838),
    [aux_sym_char_literal_token1] = ACTIONS(4838),
    [anon_sym_SQUOTE] = ACTIONS(4836),
    [anon_sym___DATE__] = ACTIONS(4836),
    [anon_sym___FILE__] = ACTIONS(4836),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4836),
    [anon_sym___FUNCTION__] = ACTIONS(4836),
    [anon_sym___LINE__] = ACTIONS(4836),
    [anon_sym___MODULE__] = ACTIONS(4836),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4836),
    [anon_sym___TIME__] = ACTIONS(4836),
    [anon_sym___TIMESTAMP__] = ACTIONS(4836),
    [anon_sym___VENDOR__] = ACTIONS(4836),
    [anon_sym___VERSION__] = ACTIONS(4836),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4838),
    [sym_float_literal] = ACTIONS(4838),
    [sym__string] = ACTIONS(4838),
  },
  [1631] = {
    [sym_identifier] = ACTIONS(4574),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4576),
    [anon_sym_RBRACE] = ACTIONS(4576),
    [anon_sym_LBRACE] = ACTIONS(4576),
    [anon_sym_DOT] = ACTIONS(4576),
    [anon_sym_AMP] = ACTIONS(4576),
    [anon_sym_DASH] = ACTIONS(4574),
    [anon_sym_DASH_DASH] = ACTIONS(4576),
    [anon_sym_PLUS] = ACTIONS(4574),
    [anon_sym_PLUS_PLUS] = ACTIONS(4576),
    [anon_sym_BANG] = ACTIONS(4576),
    [anon_sym_LPAREN] = ACTIONS(4576),
    [anon_sym_RPAREN] = ACTIONS(4576),
    [anon_sym_LBRACK] = ACTIONS(4576),
    [anon_sym_SEMI] = ACTIONS(4576),
    [anon_sym_DOLLAR] = ACTIONS(4576),
    [anon_sym_STAR] = ACTIONS(4576),
    [anon_sym_TILDE] = ACTIONS(4576),
    [anon_sym_AT] = ACTIONS(4576),
    [sym_bool] = ACTIONS(4574),
    [sym_byte] = ACTIONS(4574),
    [sym_ubyte] = ACTIONS(4574),
    [sym_char] = ACTIONS(4574),
    [sym_short] = ACTIONS(4574),
    [sym_ushort] = ACTIONS(4574),
    [sym_int] = ACTIONS(4574),
    [sym_uint] = ACTIONS(4574),
    [sym_long] = ACTIONS(4574),
    [sym_ulong] = ACTIONS(4574),
    [sym_cent] = ACTIONS(4574),
    [sym_ucent] = ACTIONS(4574),
    [sym_wchar] = ACTIONS(4574),
    [sym_dchar] = ACTIONS(4574),
    [sym_float] = ACTIONS(4574),
    [sym_double] = ACTIONS(4574),
    [sym_real] = ACTIONS(4574),
    [sym_ifloat] = ACTIONS(4574),
    [sym_idouble] = ACTIONS(4574),
    [sym_ireal] = ACTIONS(4574),
    [sym_cfloat] = ACTIONS(4574),
    [sym_cdouble] = ACTIONS(4574),
    [sym_creal] = ACTIONS(4574),
    [sym_size_t] = ACTIONS(4574),
    [sym_ptrdiff_t] = ACTIONS(4574),
    [sym_string] = ACTIONS(4574),
    [sym_cstring] = ACTIONS(4574),
    [sym_dstring] = ACTIONS(4574),
    [sym_wstring] = ACTIONS(4574),
    [sym_noreturn] = ACTIONS(4574),
    [sym_true] = ACTIONS(4574),
    [sym_false] = ACTIONS(4574),
    [sym_null] = ACTIONS(4574),
    [sym_super] = ACTIONS(4574),
    [sym_this] = ACTIONS(4574),
    [sym_abstract] = ACTIONS(4574),
    [sym_alias] = ACTIONS(4574),
    [sym_align] = ACTIONS(4574),
    [sym_asm] = ACTIONS(4574),
    [sym_assert] = ACTIONS(4574),
    [sym_auto] = ACTIONS(4574),
    [sym_break] = ACTIONS(4574),
    [sym_case] = ACTIONS(4574),
    [sym_cast] = ACTIONS(4574),
    [sym_class] = ACTIONS(4574),
    [sym_const] = ACTIONS(4574),
    [sym_continue] = ACTIONS(4574),
    [sym_debug] = ACTIONS(4574),
    [sym_default] = ACTIONS(4574),
    [sym_delegate] = ACTIONS(4574),
    [sym_delete] = ACTIONS(4574),
    [sym_deprecated] = ACTIONS(4574),
    [sym_do] = ACTIONS(4574),
    [sym_else] = ACTIONS(4574),
    [sym_enum] = ACTIONS(4574),
    [sym_export] = ACTIONS(4574),
    [sym_extern] = ACTIONS(4574),
    [sym_final] = ACTIONS(4574),
    [sym_for] = ACTIONS(4574),
    [sym_foreach] = ACTIONS(4574),
    [sym_foreach_reverse] = ACTIONS(4574),
    [sym_function] = ACTIONS(4574),
    [sym_goto] = ACTIONS(4574),
    [sym_if] = ACTIONS(4574),
    [sym_immutable] = ACTIONS(4574),
    [sym_import] = ACTIONS(4574),
    [sym_in] = ACTIONS(4574),
    [sym_inout] = ACTIONS(4574),
    [sym_interface] = ACTIONS(4574),
    [sym_invariant] = ACTIONS(4574),
    [sym_is] = ACTIONS(4574),
    [sym_mixin] = ACTIONS(4574),
    [sym_new] = ACTIONS(4574),
    [sym_nothrow] = ACTIONS(4574),
    [sym_out] = ACTIONS(4574),
    [sym_override] = ACTIONS(4574),
    [sym_package] = ACTIONS(4574),
    [sym_pragma] = ACTIONS(4574),
    [sym_private] = ACTIONS(4574),
    [sym_protected] = ACTIONS(4574),
    [sym_public] = ACTIONS(4574),
    [sym_pure] = ACTIONS(4574),
    [sym_ref] = ACTIONS(4574),
    [sym_return] = ACTIONS(4574),
    [sym_scope] = ACTIONS(4574),
    [sym_shared] = ACTIONS(4574),
    [sym_static] = ACTIONS(4574),
    [sym_struct] = ACTIONS(4574),
    [sym_switch] = ACTIONS(4574),
    [sym_synchronized] = ACTIONS(4574),
    [sym_template] = ACTIONS(4574),
    [sym_throw] = ACTIONS(4574),
    [sym_try] = ACTIONS(4574),
    [sym_typeid] = ACTIONS(4574),
    [sym_typeof] = ACTIONS(4574),
    [sym_union] = ACTIONS(4574),
    [sym_unittest] = ACTIONS(4574),
    [sym_version] = ACTIONS(4574),
    [sym_while] = ACTIONS(4574),
    [sym_with] = ACTIONS(4574),
    [sym_gshared] = ACTIONS(4574),
    [sym_traits] = ACTIONS(4574),
    [sym_vector] = ACTIONS(4574),
    [sym_void] = ACTIONS(4574),
    [anon_sym_BQUOTE] = ACTIONS(4576),
    [anon_sym_r_DQUOTE] = ACTIONS(4576),
    [anon_sym_x_DQUOTE] = ACTIONS(4576),
    [anon_sym_DQUOTE] = ACTIONS(4576),
    [anon_sym_i_BQUOTE] = ACTIONS(4576),
    [anon_sym_i_DQUOTE] = ACTIONS(4576),
    [anon_sym_iq_LBRACE] = ACTIONS(4576),
    [aux_sym_char_literal_token1] = ACTIONS(4576),
    [anon_sym_SQUOTE] = ACTIONS(4574),
    [anon_sym___DATE__] = ACTIONS(4574),
    [anon_sym___FILE__] = ACTIONS(4574),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4574),
    [anon_sym___FUNCTION__] = ACTIONS(4574),
    [anon_sym___LINE__] = ACTIONS(4574),
    [anon_sym___MODULE__] = ACTIONS(4574),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4574),
    [anon_sym___TIME__] = ACTIONS(4574),
    [anon_sym___TIMESTAMP__] = ACTIONS(4574),
    [anon_sym___VENDOR__] = ACTIONS(4574),
    [anon_sym___VERSION__] = ACTIONS(4574),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4576),
    [sym_float_literal] = ACTIONS(4576),
    [sym__string] = ACTIONS(4576),
  },
  [1632] = {
    [sym_identifier] = ACTIONS(4832),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4834),
    [anon_sym_RBRACE] = ACTIONS(4834),
    [anon_sym_LBRACE] = ACTIONS(4834),
    [anon_sym_DOT] = ACTIONS(4834),
    [anon_sym_AMP] = ACTIONS(4834),
    [anon_sym_DASH] = ACTIONS(4832),
    [anon_sym_DASH_DASH] = ACTIONS(4834),
    [anon_sym_PLUS] = ACTIONS(4832),
    [anon_sym_PLUS_PLUS] = ACTIONS(4834),
    [anon_sym_BANG] = ACTIONS(4834),
    [anon_sym_LPAREN] = ACTIONS(4834),
    [anon_sym_RPAREN] = ACTIONS(4834),
    [anon_sym_LBRACK] = ACTIONS(4834),
    [anon_sym_SEMI] = ACTIONS(4834),
    [anon_sym_DOLLAR] = ACTIONS(4834),
    [anon_sym_STAR] = ACTIONS(4834),
    [anon_sym_TILDE] = ACTIONS(4834),
    [anon_sym_AT] = ACTIONS(4834),
    [sym_bool] = ACTIONS(4832),
    [sym_byte] = ACTIONS(4832),
    [sym_ubyte] = ACTIONS(4832),
    [sym_char] = ACTIONS(4832),
    [sym_short] = ACTIONS(4832),
    [sym_ushort] = ACTIONS(4832),
    [sym_int] = ACTIONS(4832),
    [sym_uint] = ACTIONS(4832),
    [sym_long] = ACTIONS(4832),
    [sym_ulong] = ACTIONS(4832),
    [sym_cent] = ACTIONS(4832),
    [sym_ucent] = ACTIONS(4832),
    [sym_wchar] = ACTIONS(4832),
    [sym_dchar] = ACTIONS(4832),
    [sym_float] = ACTIONS(4832),
    [sym_double] = ACTIONS(4832),
    [sym_real] = ACTIONS(4832),
    [sym_ifloat] = ACTIONS(4832),
    [sym_idouble] = ACTIONS(4832),
    [sym_ireal] = ACTIONS(4832),
    [sym_cfloat] = ACTIONS(4832),
    [sym_cdouble] = ACTIONS(4832),
    [sym_creal] = ACTIONS(4832),
    [sym_size_t] = ACTIONS(4832),
    [sym_ptrdiff_t] = ACTIONS(4832),
    [sym_string] = ACTIONS(4832),
    [sym_cstring] = ACTIONS(4832),
    [sym_dstring] = ACTIONS(4832),
    [sym_wstring] = ACTIONS(4832),
    [sym_noreturn] = ACTIONS(4832),
    [sym_true] = ACTIONS(4832),
    [sym_false] = ACTIONS(4832),
    [sym_null] = ACTIONS(4832),
    [sym_super] = ACTIONS(4832),
    [sym_this] = ACTIONS(4832),
    [sym_abstract] = ACTIONS(4832),
    [sym_alias] = ACTIONS(4832),
    [sym_align] = ACTIONS(4832),
    [sym_asm] = ACTIONS(4832),
    [sym_assert] = ACTIONS(4832),
    [sym_auto] = ACTIONS(4832),
    [sym_break] = ACTIONS(4832),
    [sym_case] = ACTIONS(4832),
    [sym_cast] = ACTIONS(4832),
    [sym_class] = ACTIONS(4832),
    [sym_const] = ACTIONS(4832),
    [sym_continue] = ACTIONS(4832),
    [sym_debug] = ACTIONS(4832),
    [sym_default] = ACTIONS(4832),
    [sym_delegate] = ACTIONS(4832),
    [sym_delete] = ACTIONS(4832),
    [sym_deprecated] = ACTIONS(4832),
    [sym_do] = ACTIONS(4832),
    [sym_else] = ACTIONS(4832),
    [sym_enum] = ACTIONS(4832),
    [sym_export] = ACTIONS(4832),
    [sym_extern] = ACTIONS(4832),
    [sym_final] = ACTIONS(4832),
    [sym_for] = ACTIONS(4832),
    [sym_foreach] = ACTIONS(4832),
    [sym_foreach_reverse] = ACTIONS(4832),
    [sym_function] = ACTIONS(4832),
    [sym_goto] = ACTIONS(4832),
    [sym_if] = ACTIONS(4832),
    [sym_immutable] = ACTIONS(4832),
    [sym_import] = ACTIONS(4832),
    [sym_in] = ACTIONS(4832),
    [sym_inout] = ACTIONS(4832),
    [sym_interface] = ACTIONS(4832),
    [sym_invariant] = ACTIONS(4832),
    [sym_is] = ACTIONS(4832),
    [sym_mixin] = ACTIONS(4832),
    [sym_new] = ACTIONS(4832),
    [sym_nothrow] = ACTIONS(4832),
    [sym_out] = ACTIONS(4832),
    [sym_override] = ACTIONS(4832),
    [sym_package] = ACTIONS(4832),
    [sym_pragma] = ACTIONS(4832),
    [sym_private] = ACTIONS(4832),
    [sym_protected] = ACTIONS(4832),
    [sym_public] = ACTIONS(4832),
    [sym_pure] = ACTIONS(4832),
    [sym_ref] = ACTIONS(4832),
    [sym_return] = ACTIONS(4832),
    [sym_scope] = ACTIONS(4832),
    [sym_shared] = ACTIONS(4832),
    [sym_static] = ACTIONS(4832),
    [sym_struct] = ACTIONS(4832),
    [sym_switch] = ACTIONS(4832),
    [sym_synchronized] = ACTIONS(4832),
    [sym_template] = ACTIONS(4832),
    [sym_throw] = ACTIONS(4832),
    [sym_try] = ACTIONS(4832),
    [sym_typeid] = ACTIONS(4832),
    [sym_typeof] = ACTIONS(4832),
    [sym_union] = ACTIONS(4832),
    [sym_unittest] = ACTIONS(4832),
    [sym_version] = ACTIONS(4832),
    [sym_while] = ACTIONS(4832),
    [sym_with] = ACTIONS(4832),
    [sym_gshared] = ACTIONS(4832),
    [sym_traits] = ACTIONS(4832),
    [sym_vector] = ACTIONS(4832),
    [sym_void] = ACTIONS(4832),
    [anon_sym_BQUOTE] = ACTIONS(4834),
    [anon_sym_r_DQUOTE] = ACTIONS(4834),
    [anon_sym_x_DQUOTE] = ACTIONS(4834),
    [anon_sym_DQUOTE] = ACTIONS(4834),
    [anon_sym_i_BQUOTE] = ACTIONS(4834),
    [anon_sym_i_DQUOTE] = ACTIONS(4834),
    [anon_sym_iq_LBRACE] = ACTIONS(4834),
    [aux_sym_char_literal_token1] = ACTIONS(4834),
    [anon_sym_SQUOTE] = ACTIONS(4832),
    [anon_sym___DATE__] = ACTIONS(4832),
    [anon_sym___FILE__] = ACTIONS(4832),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4832),
    [anon_sym___FUNCTION__] = ACTIONS(4832),
    [anon_sym___LINE__] = ACTIONS(4832),
    [anon_sym___MODULE__] = ACTIONS(4832),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4832),
    [anon_sym___TIME__] = ACTIONS(4832),
    [anon_sym___TIMESTAMP__] = ACTIONS(4832),
    [anon_sym___VENDOR__] = ACTIONS(4832),
    [anon_sym___VERSION__] = ACTIONS(4832),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4834),
    [sym_float_literal] = ACTIONS(4834),
    [sym__string] = ACTIONS(4834),
  },
  [1633] = {
    [sym_identifier] = ACTIONS(4788),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4790),
    [anon_sym_RBRACE] = ACTIONS(4790),
    [anon_sym_LBRACE] = ACTIONS(4790),
    [anon_sym_DOT] = ACTIONS(4790),
    [anon_sym_AMP] = ACTIONS(4790),
    [anon_sym_DASH] = ACTIONS(4788),
    [anon_sym_DASH_DASH] = ACTIONS(4790),
    [anon_sym_PLUS] = ACTIONS(4788),
    [anon_sym_PLUS_PLUS] = ACTIONS(4790),
    [anon_sym_BANG] = ACTIONS(4790),
    [anon_sym_LPAREN] = ACTIONS(4790),
    [anon_sym_RPAREN] = ACTIONS(4790),
    [anon_sym_LBRACK] = ACTIONS(4790),
    [anon_sym_SEMI] = ACTIONS(4790),
    [anon_sym_DOLLAR] = ACTIONS(4790),
    [anon_sym_STAR] = ACTIONS(4790),
    [anon_sym_TILDE] = ACTIONS(4790),
    [anon_sym_AT] = ACTIONS(4790),
    [sym_bool] = ACTIONS(4788),
    [sym_byte] = ACTIONS(4788),
    [sym_ubyte] = ACTIONS(4788),
    [sym_char] = ACTIONS(4788),
    [sym_short] = ACTIONS(4788),
    [sym_ushort] = ACTIONS(4788),
    [sym_int] = ACTIONS(4788),
    [sym_uint] = ACTIONS(4788),
    [sym_long] = ACTIONS(4788),
    [sym_ulong] = ACTIONS(4788),
    [sym_cent] = ACTIONS(4788),
    [sym_ucent] = ACTIONS(4788),
    [sym_wchar] = ACTIONS(4788),
    [sym_dchar] = ACTIONS(4788),
    [sym_float] = ACTIONS(4788),
    [sym_double] = ACTIONS(4788),
    [sym_real] = ACTIONS(4788),
    [sym_ifloat] = ACTIONS(4788),
    [sym_idouble] = ACTIONS(4788),
    [sym_ireal] = ACTIONS(4788),
    [sym_cfloat] = ACTIONS(4788),
    [sym_cdouble] = ACTIONS(4788),
    [sym_creal] = ACTIONS(4788),
    [sym_size_t] = ACTIONS(4788),
    [sym_ptrdiff_t] = ACTIONS(4788),
    [sym_string] = ACTIONS(4788),
    [sym_cstring] = ACTIONS(4788),
    [sym_dstring] = ACTIONS(4788),
    [sym_wstring] = ACTIONS(4788),
    [sym_noreturn] = ACTIONS(4788),
    [sym_true] = ACTIONS(4788),
    [sym_false] = ACTIONS(4788),
    [sym_null] = ACTIONS(4788),
    [sym_super] = ACTIONS(4788),
    [sym_this] = ACTIONS(4788),
    [sym_abstract] = ACTIONS(4788),
    [sym_alias] = ACTIONS(4788),
    [sym_align] = ACTIONS(4788),
    [sym_asm] = ACTIONS(4788),
    [sym_assert] = ACTIONS(4788),
    [sym_auto] = ACTIONS(4788),
    [sym_break] = ACTIONS(4788),
    [sym_case] = ACTIONS(4788),
    [sym_cast] = ACTIONS(4788),
    [sym_class] = ACTIONS(4788),
    [sym_const] = ACTIONS(4788),
    [sym_continue] = ACTIONS(4788),
    [sym_debug] = ACTIONS(4788),
    [sym_default] = ACTIONS(4788),
    [sym_delegate] = ACTIONS(4788),
    [sym_delete] = ACTIONS(4788),
    [sym_deprecated] = ACTIONS(4788),
    [sym_do] = ACTIONS(4788),
    [sym_else] = ACTIONS(4788),
    [sym_enum] = ACTIONS(4788),
    [sym_export] = ACTIONS(4788),
    [sym_extern] = ACTIONS(4788),
    [sym_final] = ACTIONS(4788),
    [sym_for] = ACTIONS(4788),
    [sym_foreach] = ACTIONS(4788),
    [sym_foreach_reverse] = ACTIONS(4788),
    [sym_function] = ACTIONS(4788),
    [sym_goto] = ACTIONS(4788),
    [sym_if] = ACTIONS(4788),
    [sym_immutable] = ACTIONS(4788),
    [sym_import] = ACTIONS(4788),
    [sym_in] = ACTIONS(4788),
    [sym_inout] = ACTIONS(4788),
    [sym_interface] = ACTIONS(4788),
    [sym_invariant] = ACTIONS(4788),
    [sym_is] = ACTIONS(4788),
    [sym_mixin] = ACTIONS(4788),
    [sym_new] = ACTIONS(4788),
    [sym_nothrow] = ACTIONS(4788),
    [sym_out] = ACTIONS(4788),
    [sym_override] = ACTIONS(4788),
    [sym_package] = ACTIONS(4788),
    [sym_pragma] = ACTIONS(4788),
    [sym_private] = ACTIONS(4788),
    [sym_protected] = ACTIONS(4788),
    [sym_public] = ACTIONS(4788),
    [sym_pure] = ACTIONS(4788),
    [sym_ref] = ACTIONS(4788),
    [sym_return] = ACTIONS(4788),
    [sym_scope] = ACTIONS(4788),
    [sym_shared] = ACTIONS(4788),
    [sym_static] = ACTIONS(4788),
    [sym_struct] = ACTIONS(4788),
    [sym_switch] = ACTIONS(4788),
    [sym_synchronized] = ACTIONS(4788),
    [sym_template] = ACTIONS(4788),
    [sym_throw] = ACTIONS(4788),
    [sym_try] = ACTIONS(4788),
    [sym_typeid] = ACTIONS(4788),
    [sym_typeof] = ACTIONS(4788),
    [sym_union] = ACTIONS(4788),
    [sym_unittest] = ACTIONS(4788),
    [sym_version] = ACTIONS(4788),
    [sym_while] = ACTIONS(4788),
    [sym_with] = ACTIONS(4788),
    [sym_gshared] = ACTIONS(4788),
    [sym_traits] = ACTIONS(4788),
    [sym_vector] = ACTIONS(4788),
    [sym_void] = ACTIONS(4788),
    [anon_sym_BQUOTE] = ACTIONS(4790),
    [anon_sym_r_DQUOTE] = ACTIONS(4790),
    [anon_sym_x_DQUOTE] = ACTIONS(4790),
    [anon_sym_DQUOTE] = ACTIONS(4790),
    [anon_sym_i_BQUOTE] = ACTIONS(4790),
    [anon_sym_i_DQUOTE] = ACTIONS(4790),
    [anon_sym_iq_LBRACE] = ACTIONS(4790),
    [aux_sym_char_literal_token1] = ACTIONS(4790),
    [anon_sym_SQUOTE] = ACTIONS(4788),
    [anon_sym___DATE__] = ACTIONS(4788),
    [anon_sym___FILE__] = ACTIONS(4788),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4788),
    [anon_sym___FUNCTION__] = ACTIONS(4788),
    [anon_sym___LINE__] = ACTIONS(4788),
    [anon_sym___MODULE__] = ACTIONS(4788),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4788),
    [anon_sym___TIME__] = ACTIONS(4788),
    [anon_sym___TIMESTAMP__] = ACTIONS(4788),
    [anon_sym___VENDOR__] = ACTIONS(4788),
    [anon_sym___VERSION__] = ACTIONS(4788),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4790),
    [sym_float_literal] = ACTIONS(4790),
    [sym__string] = ACTIONS(4790),
  },
  [1634] = {
    [sym_identifier] = ACTIONS(4774),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4776),
    [anon_sym_RBRACE] = ACTIONS(4776),
    [anon_sym_LBRACE] = ACTIONS(4776),
    [anon_sym_DOT] = ACTIONS(4776),
    [anon_sym_AMP] = ACTIONS(4776),
    [anon_sym_DASH] = ACTIONS(4774),
    [anon_sym_DASH_DASH] = ACTIONS(4776),
    [anon_sym_PLUS] = ACTIONS(4774),
    [anon_sym_PLUS_PLUS] = ACTIONS(4776),
    [anon_sym_BANG] = ACTIONS(4776),
    [anon_sym_LPAREN] = ACTIONS(4776),
    [anon_sym_RPAREN] = ACTIONS(4776),
    [anon_sym_LBRACK] = ACTIONS(4776),
    [anon_sym_SEMI] = ACTIONS(4776),
    [anon_sym_DOLLAR] = ACTIONS(4776),
    [anon_sym_STAR] = ACTIONS(4776),
    [anon_sym_TILDE] = ACTIONS(4776),
    [anon_sym_AT] = ACTIONS(4776),
    [sym_bool] = ACTIONS(4774),
    [sym_byte] = ACTIONS(4774),
    [sym_ubyte] = ACTIONS(4774),
    [sym_char] = ACTIONS(4774),
    [sym_short] = ACTIONS(4774),
    [sym_ushort] = ACTIONS(4774),
    [sym_int] = ACTIONS(4774),
    [sym_uint] = ACTIONS(4774),
    [sym_long] = ACTIONS(4774),
    [sym_ulong] = ACTIONS(4774),
    [sym_cent] = ACTIONS(4774),
    [sym_ucent] = ACTIONS(4774),
    [sym_wchar] = ACTIONS(4774),
    [sym_dchar] = ACTIONS(4774),
    [sym_float] = ACTIONS(4774),
    [sym_double] = ACTIONS(4774),
    [sym_real] = ACTIONS(4774),
    [sym_ifloat] = ACTIONS(4774),
    [sym_idouble] = ACTIONS(4774),
    [sym_ireal] = ACTIONS(4774),
    [sym_cfloat] = ACTIONS(4774),
    [sym_cdouble] = ACTIONS(4774),
    [sym_creal] = ACTIONS(4774),
    [sym_size_t] = ACTIONS(4774),
    [sym_ptrdiff_t] = ACTIONS(4774),
    [sym_string] = ACTIONS(4774),
    [sym_cstring] = ACTIONS(4774),
    [sym_dstring] = ACTIONS(4774),
    [sym_wstring] = ACTIONS(4774),
    [sym_noreturn] = ACTIONS(4774),
    [sym_true] = ACTIONS(4774),
    [sym_false] = ACTIONS(4774),
    [sym_null] = ACTIONS(4774),
    [sym_super] = ACTIONS(4774),
    [sym_this] = ACTIONS(4774),
    [sym_abstract] = ACTIONS(4774),
    [sym_alias] = ACTIONS(4774),
    [sym_align] = ACTIONS(4774),
    [sym_asm] = ACTIONS(4774),
    [sym_assert] = ACTIONS(4774),
    [sym_auto] = ACTIONS(4774),
    [sym_break] = ACTIONS(4774),
    [sym_case] = ACTIONS(4774),
    [sym_cast] = ACTIONS(4774),
    [sym_class] = ACTIONS(4774),
    [sym_const] = ACTIONS(4774),
    [sym_continue] = ACTIONS(4774),
    [sym_debug] = ACTIONS(4774),
    [sym_default] = ACTIONS(4774),
    [sym_delegate] = ACTIONS(4774),
    [sym_delete] = ACTIONS(4774),
    [sym_deprecated] = ACTIONS(4774),
    [sym_do] = ACTIONS(4774),
    [sym_else] = ACTIONS(4774),
    [sym_enum] = ACTIONS(4774),
    [sym_export] = ACTIONS(4774),
    [sym_extern] = ACTIONS(4774),
    [sym_final] = ACTIONS(4774),
    [sym_for] = ACTIONS(4774),
    [sym_foreach] = ACTIONS(4774),
    [sym_foreach_reverse] = ACTIONS(4774),
    [sym_function] = ACTIONS(4774),
    [sym_goto] = ACTIONS(4774),
    [sym_if] = ACTIONS(4774),
    [sym_immutable] = ACTIONS(4774),
    [sym_import] = ACTIONS(4774),
    [sym_in] = ACTIONS(4774),
    [sym_inout] = ACTIONS(4774),
    [sym_interface] = ACTIONS(4774),
    [sym_invariant] = ACTIONS(4774),
    [sym_is] = ACTIONS(4774),
    [sym_mixin] = ACTIONS(4774),
    [sym_new] = ACTIONS(4774),
    [sym_nothrow] = ACTIONS(4774),
    [sym_out] = ACTIONS(4774),
    [sym_override] = ACTIONS(4774),
    [sym_package] = ACTIONS(4774),
    [sym_pragma] = ACTIONS(4774),
    [sym_private] = ACTIONS(4774),
    [sym_protected] = ACTIONS(4774),
    [sym_public] = ACTIONS(4774),
    [sym_pure] = ACTIONS(4774),
    [sym_ref] = ACTIONS(4774),
    [sym_return] = ACTIONS(4774),
    [sym_scope] = ACTIONS(4774),
    [sym_shared] = ACTIONS(4774),
    [sym_static] = ACTIONS(4774),
    [sym_struct] = ACTIONS(4774),
    [sym_switch] = ACTIONS(4774),
    [sym_synchronized] = ACTIONS(4774),
    [sym_template] = ACTIONS(4774),
    [sym_throw] = ACTIONS(4774),
    [sym_try] = ACTIONS(4774),
    [sym_typeid] = ACTIONS(4774),
    [sym_typeof] = ACTIONS(4774),
    [sym_union] = ACTIONS(4774),
    [sym_unittest] = ACTIONS(4774),
    [sym_version] = ACTIONS(4774),
    [sym_while] = ACTIONS(4774),
    [sym_with] = ACTIONS(4774),
    [sym_gshared] = ACTIONS(4774),
    [sym_traits] = ACTIONS(4774),
    [sym_vector] = ACTIONS(4774),
    [sym_void] = ACTIONS(4774),
    [anon_sym_BQUOTE] = ACTIONS(4776),
    [anon_sym_r_DQUOTE] = ACTIONS(4776),
    [anon_sym_x_DQUOTE] = ACTIONS(4776),
    [anon_sym_DQUOTE] = ACTIONS(4776),
    [anon_sym_i_BQUOTE] = ACTIONS(4776),
    [anon_sym_i_DQUOTE] = ACTIONS(4776),
    [anon_sym_iq_LBRACE] = ACTIONS(4776),
    [aux_sym_char_literal_token1] = ACTIONS(4776),
    [anon_sym_SQUOTE] = ACTIONS(4774),
    [anon_sym___DATE__] = ACTIONS(4774),
    [anon_sym___FILE__] = ACTIONS(4774),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4774),
    [anon_sym___FUNCTION__] = ACTIONS(4774),
    [anon_sym___LINE__] = ACTIONS(4774),
    [anon_sym___MODULE__] = ACTIONS(4774),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4774),
    [anon_sym___TIME__] = ACTIONS(4774),
    [anon_sym___TIMESTAMP__] = ACTIONS(4774),
    [anon_sym___VENDOR__] = ACTIONS(4774),
    [anon_sym___VERSION__] = ACTIONS(4774),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4776),
    [sym_float_literal] = ACTIONS(4776),
    [sym__string] = ACTIONS(4776),
  },
  [1635] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_RBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [anon_sym_AT] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_abstract] = ACTIONS(4640),
    [sym_alias] = ACTIONS(4640),
    [sym_align] = ACTIONS(4640),
    [sym_asm] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_break] = ACTIONS(4640),
    [sym_case] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_class] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_continue] = ACTIONS(4640),
    [sym_debug] = ACTIONS(4640),
    [sym_default] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_deprecated] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(5105),
    [sym_enum] = ACTIONS(4640),
    [sym_export] = ACTIONS(4640),
    [sym_extern] = ACTIONS(4640),
    [sym_final] = ACTIONS(4640),
    [sym_for] = ACTIONS(4640),
    [sym_foreach] = ACTIONS(4640),
    [sym_foreach_reverse] = ACTIONS(4640),
    [sym_function] = ACTIONS(4640),
    [sym_goto] = ACTIONS(4640),
    [sym_if] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_interface] = ACTIONS(4640),
    [sym_invariant] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_nothrow] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_override] = ACTIONS(4640),
    [sym_package] = ACTIONS(4640),
    [sym_pragma] = ACTIONS(4640),
    [sym_private] = ACTIONS(4640),
    [sym_protected] = ACTIONS(4640),
    [sym_public] = ACTIONS(4640),
    [sym_pure] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_return] = ACTIONS(4640),
    [sym_scope] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_static] = ACTIONS(4640),
    [sym_struct] = ACTIONS(4640),
    [sym_switch] = ACTIONS(4640),
    [sym_synchronized] = ACTIONS(4640),
    [sym_template] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_try] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_union] = ACTIONS(4640),
    [sym_unittest] = ACTIONS(4640),
    [sym_version] = ACTIONS(4640),
    [sym_while] = ACTIONS(4640),
    [sym_with] = ACTIONS(4640),
    [sym_gshared] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [1636] = {
    [sym_identifier] = ACTIONS(4566),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4568),
    [anon_sym_RBRACE] = ACTIONS(4568),
    [anon_sym_LBRACE] = ACTIONS(4568),
    [anon_sym_DOT] = ACTIONS(4568),
    [anon_sym_AMP] = ACTIONS(4568),
    [anon_sym_DASH] = ACTIONS(4566),
    [anon_sym_DASH_DASH] = ACTIONS(4568),
    [anon_sym_PLUS] = ACTIONS(4566),
    [anon_sym_PLUS_PLUS] = ACTIONS(4568),
    [anon_sym_BANG] = ACTIONS(4568),
    [anon_sym_LPAREN] = ACTIONS(4568),
    [anon_sym_RPAREN] = ACTIONS(4568),
    [anon_sym_LBRACK] = ACTIONS(4568),
    [anon_sym_SEMI] = ACTIONS(4568),
    [anon_sym_DOLLAR] = ACTIONS(4568),
    [anon_sym_STAR] = ACTIONS(4568),
    [anon_sym_TILDE] = ACTIONS(4568),
    [anon_sym_AT] = ACTIONS(4568),
    [sym_bool] = ACTIONS(4566),
    [sym_byte] = ACTIONS(4566),
    [sym_ubyte] = ACTIONS(4566),
    [sym_char] = ACTIONS(4566),
    [sym_short] = ACTIONS(4566),
    [sym_ushort] = ACTIONS(4566),
    [sym_int] = ACTIONS(4566),
    [sym_uint] = ACTIONS(4566),
    [sym_long] = ACTIONS(4566),
    [sym_ulong] = ACTIONS(4566),
    [sym_cent] = ACTIONS(4566),
    [sym_ucent] = ACTIONS(4566),
    [sym_wchar] = ACTIONS(4566),
    [sym_dchar] = ACTIONS(4566),
    [sym_float] = ACTIONS(4566),
    [sym_double] = ACTIONS(4566),
    [sym_real] = ACTIONS(4566),
    [sym_ifloat] = ACTIONS(4566),
    [sym_idouble] = ACTIONS(4566),
    [sym_ireal] = ACTIONS(4566),
    [sym_cfloat] = ACTIONS(4566),
    [sym_cdouble] = ACTIONS(4566),
    [sym_creal] = ACTIONS(4566),
    [sym_size_t] = ACTIONS(4566),
    [sym_ptrdiff_t] = ACTIONS(4566),
    [sym_string] = ACTIONS(4566),
    [sym_cstring] = ACTIONS(4566),
    [sym_dstring] = ACTIONS(4566),
    [sym_wstring] = ACTIONS(4566),
    [sym_noreturn] = ACTIONS(4566),
    [sym_true] = ACTIONS(4566),
    [sym_false] = ACTIONS(4566),
    [sym_null] = ACTIONS(4566),
    [sym_super] = ACTIONS(4566),
    [sym_this] = ACTIONS(4566),
    [sym_abstract] = ACTIONS(4566),
    [sym_alias] = ACTIONS(4566),
    [sym_align] = ACTIONS(4566),
    [sym_asm] = ACTIONS(4566),
    [sym_assert] = ACTIONS(4566),
    [sym_auto] = ACTIONS(4566),
    [sym_break] = ACTIONS(4566),
    [sym_case] = ACTIONS(4566),
    [sym_cast] = ACTIONS(4566),
    [sym_class] = ACTIONS(4566),
    [sym_const] = ACTIONS(4566),
    [sym_continue] = ACTIONS(4566),
    [sym_debug] = ACTIONS(4566),
    [sym_default] = ACTIONS(4566),
    [sym_delegate] = ACTIONS(4566),
    [sym_delete] = ACTIONS(4566),
    [sym_deprecated] = ACTIONS(4566),
    [sym_do] = ACTIONS(4566),
    [sym_else] = ACTIONS(4566),
    [sym_enum] = ACTIONS(4566),
    [sym_export] = ACTIONS(4566),
    [sym_extern] = ACTIONS(4566),
    [sym_final] = ACTIONS(4566),
    [sym_for] = ACTIONS(4566),
    [sym_foreach] = ACTIONS(4566),
    [sym_foreach_reverse] = ACTIONS(4566),
    [sym_function] = ACTIONS(4566),
    [sym_goto] = ACTIONS(4566),
    [sym_if] = ACTIONS(4566),
    [sym_immutable] = ACTIONS(4566),
    [sym_import] = ACTIONS(4566),
    [sym_in] = ACTIONS(4566),
    [sym_inout] = ACTIONS(4566),
    [sym_interface] = ACTIONS(4566),
    [sym_invariant] = ACTIONS(4566),
    [sym_is] = ACTIONS(4566),
    [sym_mixin] = ACTIONS(4566),
    [sym_new] = ACTIONS(4566),
    [sym_nothrow] = ACTIONS(4566),
    [sym_out] = ACTIONS(4566),
    [sym_override] = ACTIONS(4566),
    [sym_package] = ACTIONS(4566),
    [sym_pragma] = ACTIONS(4566),
    [sym_private] = ACTIONS(4566),
    [sym_protected] = ACTIONS(4566),
    [sym_public] = ACTIONS(4566),
    [sym_pure] = ACTIONS(4566),
    [sym_ref] = ACTIONS(4566),
    [sym_return] = ACTIONS(4566),
    [sym_scope] = ACTIONS(4566),
    [sym_shared] = ACTIONS(4566),
    [sym_static] = ACTIONS(4566),
    [sym_struct] = ACTIONS(4566),
    [sym_switch] = ACTIONS(4566),
    [sym_synchronized] = ACTIONS(4566),
    [sym_template] = ACTIONS(4566),
    [sym_throw] = ACTIONS(4566),
    [sym_try] = ACTIONS(4566),
    [sym_typeid] = ACTIONS(4566),
    [sym_typeof] = ACTIONS(4566),
    [sym_union] = ACTIONS(4566),
    [sym_unittest] = ACTIONS(4566),
    [sym_version] = ACTIONS(4566),
    [sym_while] = ACTIONS(4566),
    [sym_with] = ACTIONS(4566),
    [sym_gshared] = ACTIONS(4566),
    [sym_traits] = ACTIONS(4566),
    [sym_vector] = ACTIONS(4566),
    [sym_void] = ACTIONS(4566),
    [anon_sym_BQUOTE] = ACTIONS(4568),
    [anon_sym_r_DQUOTE] = ACTIONS(4568),
    [anon_sym_x_DQUOTE] = ACTIONS(4568),
    [anon_sym_DQUOTE] = ACTIONS(4568),
    [anon_sym_i_BQUOTE] = ACTIONS(4568),
    [anon_sym_i_DQUOTE] = ACTIONS(4568),
    [anon_sym_iq_LBRACE] = ACTIONS(4568),
    [aux_sym_char_literal_token1] = ACTIONS(4568),
    [anon_sym_SQUOTE] = ACTIONS(4566),
    [anon_sym___DATE__] = ACTIONS(4566),
    [anon_sym___FILE__] = ACTIONS(4566),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4566),
    [anon_sym___FUNCTION__] = ACTIONS(4566),
    [anon_sym___LINE__] = ACTIONS(4566),
    [anon_sym___MODULE__] = ACTIONS(4566),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4566),
    [anon_sym___TIME__] = ACTIONS(4566),
    [anon_sym___TIMESTAMP__] = ACTIONS(4566),
    [anon_sym___VENDOR__] = ACTIONS(4566),
    [anon_sym___VERSION__] = ACTIONS(4566),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4568),
    [sym_float_literal] = ACTIONS(4568),
    [sym__string] = ACTIONS(4568),
  },
  [1637] = {
    [sym_identifier] = ACTIONS(4558),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4560),
    [anon_sym_RBRACE] = ACTIONS(4560),
    [anon_sym_LBRACE] = ACTIONS(4560),
    [anon_sym_DOT] = ACTIONS(4560),
    [anon_sym_AMP] = ACTIONS(4560),
    [anon_sym_DASH] = ACTIONS(4558),
    [anon_sym_DASH_DASH] = ACTIONS(4560),
    [anon_sym_PLUS] = ACTIONS(4558),
    [anon_sym_PLUS_PLUS] = ACTIONS(4560),
    [anon_sym_BANG] = ACTIONS(4560),
    [anon_sym_LPAREN] = ACTIONS(4560),
    [anon_sym_RPAREN] = ACTIONS(4560),
    [anon_sym_LBRACK] = ACTIONS(4560),
    [anon_sym_SEMI] = ACTIONS(4560),
    [anon_sym_DOLLAR] = ACTIONS(4560),
    [anon_sym_STAR] = ACTIONS(4560),
    [anon_sym_TILDE] = ACTIONS(4560),
    [anon_sym_AT] = ACTIONS(4560),
    [sym_bool] = ACTIONS(4558),
    [sym_byte] = ACTIONS(4558),
    [sym_ubyte] = ACTIONS(4558),
    [sym_char] = ACTIONS(4558),
    [sym_short] = ACTIONS(4558),
    [sym_ushort] = ACTIONS(4558),
    [sym_int] = ACTIONS(4558),
    [sym_uint] = ACTIONS(4558),
    [sym_long] = ACTIONS(4558),
    [sym_ulong] = ACTIONS(4558),
    [sym_cent] = ACTIONS(4558),
    [sym_ucent] = ACTIONS(4558),
    [sym_wchar] = ACTIONS(4558),
    [sym_dchar] = ACTIONS(4558),
    [sym_float] = ACTIONS(4558),
    [sym_double] = ACTIONS(4558),
    [sym_real] = ACTIONS(4558),
    [sym_ifloat] = ACTIONS(4558),
    [sym_idouble] = ACTIONS(4558),
    [sym_ireal] = ACTIONS(4558),
    [sym_cfloat] = ACTIONS(4558),
    [sym_cdouble] = ACTIONS(4558),
    [sym_creal] = ACTIONS(4558),
    [sym_size_t] = ACTIONS(4558),
    [sym_ptrdiff_t] = ACTIONS(4558),
    [sym_string] = ACTIONS(4558),
    [sym_cstring] = ACTIONS(4558),
    [sym_dstring] = ACTIONS(4558),
    [sym_wstring] = ACTIONS(4558),
    [sym_noreturn] = ACTIONS(4558),
    [sym_true] = ACTIONS(4558),
    [sym_false] = ACTIONS(4558),
    [sym_null] = ACTIONS(4558),
    [sym_super] = ACTIONS(4558),
    [sym_this] = ACTIONS(4558),
    [sym_abstract] = ACTIONS(4558),
    [sym_alias] = ACTIONS(4558),
    [sym_align] = ACTIONS(4558),
    [sym_asm] = ACTIONS(4558),
    [sym_assert] = ACTIONS(4558),
    [sym_auto] = ACTIONS(4558),
    [sym_break] = ACTIONS(4558),
    [sym_case] = ACTIONS(4558),
    [sym_cast] = ACTIONS(4558),
    [sym_class] = ACTIONS(4558),
    [sym_const] = ACTIONS(4558),
    [sym_continue] = ACTIONS(4558),
    [sym_debug] = ACTIONS(4558),
    [sym_default] = ACTIONS(4558),
    [sym_delegate] = ACTIONS(4558),
    [sym_delete] = ACTIONS(4558),
    [sym_deprecated] = ACTIONS(4558),
    [sym_do] = ACTIONS(4558),
    [sym_else] = ACTIONS(4558),
    [sym_enum] = ACTIONS(4558),
    [sym_export] = ACTIONS(4558),
    [sym_extern] = ACTIONS(4558),
    [sym_final] = ACTIONS(4558),
    [sym_for] = ACTIONS(4558),
    [sym_foreach] = ACTIONS(4558),
    [sym_foreach_reverse] = ACTIONS(4558),
    [sym_function] = ACTIONS(4558),
    [sym_goto] = ACTIONS(4558),
    [sym_if] = ACTIONS(4558),
    [sym_immutable] = ACTIONS(4558),
    [sym_import] = ACTIONS(4558),
    [sym_in] = ACTIONS(4558),
    [sym_inout] = ACTIONS(4558),
    [sym_interface] = ACTIONS(4558),
    [sym_invariant] = ACTIONS(4558),
    [sym_is] = ACTIONS(4558),
    [sym_mixin] = ACTIONS(4558),
    [sym_new] = ACTIONS(4558),
    [sym_nothrow] = ACTIONS(4558),
    [sym_out] = ACTIONS(4558),
    [sym_override] = ACTIONS(4558),
    [sym_package] = ACTIONS(4558),
    [sym_pragma] = ACTIONS(4558),
    [sym_private] = ACTIONS(4558),
    [sym_protected] = ACTIONS(4558),
    [sym_public] = ACTIONS(4558),
    [sym_pure] = ACTIONS(4558),
    [sym_ref] = ACTIONS(4558),
    [sym_return] = ACTIONS(4558),
    [sym_scope] = ACTIONS(4558),
    [sym_shared] = ACTIONS(4558),
    [sym_static] = ACTIONS(4558),
    [sym_struct] = ACTIONS(4558),
    [sym_switch] = ACTIONS(4558),
    [sym_synchronized] = ACTIONS(4558),
    [sym_template] = ACTIONS(4558),
    [sym_throw] = ACTIONS(4558),
    [sym_try] = ACTIONS(4558),
    [sym_typeid] = ACTIONS(4558),
    [sym_typeof] = ACTIONS(4558),
    [sym_union] = ACTIONS(4558),
    [sym_unittest] = ACTIONS(4558),
    [sym_version] = ACTIONS(4558),
    [sym_while] = ACTIONS(4558),
    [sym_with] = ACTIONS(4558),
    [sym_gshared] = ACTIONS(4558),
    [sym_traits] = ACTIONS(4558),
    [sym_vector] = ACTIONS(4558),
    [sym_void] = ACTIONS(4558),
    [anon_sym_BQUOTE] = ACTIONS(4560),
    [anon_sym_r_DQUOTE] = ACTIONS(4560),
    [anon_sym_x_DQUOTE] = ACTIONS(4560),
    [anon_sym_DQUOTE] = ACTIONS(4560),
    [anon_sym_i_BQUOTE] = ACTIONS(4560),
    [anon_sym_i_DQUOTE] = ACTIONS(4560),
    [anon_sym_iq_LBRACE] = ACTIONS(4560),
    [aux_sym_char_literal_token1] = ACTIONS(4560),
    [anon_sym_SQUOTE] = ACTIONS(4558),
    [anon_sym___DATE__] = ACTIONS(4558),
    [anon_sym___FILE__] = ACTIONS(4558),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4558),
    [anon_sym___FUNCTION__] = ACTIONS(4558),
    [anon_sym___LINE__] = ACTIONS(4558),
    [anon_sym___MODULE__] = ACTIONS(4558),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4558),
    [anon_sym___TIME__] = ACTIONS(4558),
    [anon_sym___TIMESTAMP__] = ACTIONS(4558),
    [anon_sym___VENDOR__] = ACTIONS(4558),
    [anon_sym___VERSION__] = ACTIONS(4558),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4560),
    [sym_float_literal] = ACTIONS(4560),
    [sym__string] = ACTIONS(4560),
  },
  [1638] = {
    [sym_identifier] = ACTIONS(4554),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4556),
    [anon_sym_RBRACE] = ACTIONS(4556),
    [anon_sym_LBRACE] = ACTIONS(4556),
    [anon_sym_DOT] = ACTIONS(4556),
    [anon_sym_AMP] = ACTIONS(4556),
    [anon_sym_DASH] = ACTIONS(4554),
    [anon_sym_DASH_DASH] = ACTIONS(4556),
    [anon_sym_PLUS] = ACTIONS(4554),
    [anon_sym_PLUS_PLUS] = ACTIONS(4556),
    [anon_sym_BANG] = ACTIONS(4556),
    [anon_sym_LPAREN] = ACTIONS(4556),
    [anon_sym_RPAREN] = ACTIONS(4556),
    [anon_sym_LBRACK] = ACTIONS(4556),
    [anon_sym_SEMI] = ACTIONS(4556),
    [anon_sym_DOLLAR] = ACTIONS(4556),
    [anon_sym_STAR] = ACTIONS(4556),
    [anon_sym_TILDE] = ACTIONS(4556),
    [anon_sym_AT] = ACTIONS(4556),
    [sym_bool] = ACTIONS(4554),
    [sym_byte] = ACTIONS(4554),
    [sym_ubyte] = ACTIONS(4554),
    [sym_char] = ACTIONS(4554),
    [sym_short] = ACTIONS(4554),
    [sym_ushort] = ACTIONS(4554),
    [sym_int] = ACTIONS(4554),
    [sym_uint] = ACTIONS(4554),
    [sym_long] = ACTIONS(4554),
    [sym_ulong] = ACTIONS(4554),
    [sym_cent] = ACTIONS(4554),
    [sym_ucent] = ACTIONS(4554),
    [sym_wchar] = ACTIONS(4554),
    [sym_dchar] = ACTIONS(4554),
    [sym_float] = ACTIONS(4554),
    [sym_double] = ACTIONS(4554),
    [sym_real] = ACTIONS(4554),
    [sym_ifloat] = ACTIONS(4554),
    [sym_idouble] = ACTIONS(4554),
    [sym_ireal] = ACTIONS(4554),
    [sym_cfloat] = ACTIONS(4554),
    [sym_cdouble] = ACTIONS(4554),
    [sym_creal] = ACTIONS(4554),
    [sym_size_t] = ACTIONS(4554),
    [sym_ptrdiff_t] = ACTIONS(4554),
    [sym_string] = ACTIONS(4554),
    [sym_cstring] = ACTIONS(4554),
    [sym_dstring] = ACTIONS(4554),
    [sym_wstring] = ACTIONS(4554),
    [sym_noreturn] = ACTIONS(4554),
    [sym_true] = ACTIONS(4554),
    [sym_false] = ACTIONS(4554),
    [sym_null] = ACTIONS(4554),
    [sym_super] = ACTIONS(4554),
    [sym_this] = ACTIONS(4554),
    [sym_abstract] = ACTIONS(4554),
    [sym_alias] = ACTIONS(4554),
    [sym_align] = ACTIONS(4554),
    [sym_asm] = ACTIONS(4554),
    [sym_assert] = ACTIONS(4554),
    [sym_auto] = ACTIONS(4554),
    [sym_break] = ACTIONS(4554),
    [sym_case] = ACTIONS(4554),
    [sym_cast] = ACTIONS(4554),
    [sym_class] = ACTIONS(4554),
    [sym_const] = ACTIONS(4554),
    [sym_continue] = ACTIONS(4554),
    [sym_debug] = ACTIONS(4554),
    [sym_default] = ACTIONS(4554),
    [sym_delegate] = ACTIONS(4554),
    [sym_delete] = ACTIONS(4554),
    [sym_deprecated] = ACTIONS(4554),
    [sym_do] = ACTIONS(4554),
    [sym_else] = ACTIONS(4554),
    [sym_enum] = ACTIONS(4554),
    [sym_export] = ACTIONS(4554),
    [sym_extern] = ACTIONS(4554),
    [sym_final] = ACTIONS(4554),
    [sym_for] = ACTIONS(4554),
    [sym_foreach] = ACTIONS(4554),
    [sym_foreach_reverse] = ACTIONS(4554),
    [sym_function] = ACTIONS(4554),
    [sym_goto] = ACTIONS(4554),
    [sym_if] = ACTIONS(4554),
    [sym_immutable] = ACTIONS(4554),
    [sym_import] = ACTIONS(4554),
    [sym_in] = ACTIONS(4554),
    [sym_inout] = ACTIONS(4554),
    [sym_interface] = ACTIONS(4554),
    [sym_invariant] = ACTIONS(4554),
    [sym_is] = ACTIONS(4554),
    [sym_mixin] = ACTIONS(4554),
    [sym_new] = ACTIONS(4554),
    [sym_nothrow] = ACTIONS(4554),
    [sym_out] = ACTIONS(4554),
    [sym_override] = ACTIONS(4554),
    [sym_package] = ACTIONS(4554),
    [sym_pragma] = ACTIONS(4554),
    [sym_private] = ACTIONS(4554),
    [sym_protected] = ACTIONS(4554),
    [sym_public] = ACTIONS(4554),
    [sym_pure] = ACTIONS(4554),
    [sym_ref] = ACTIONS(4554),
    [sym_return] = ACTIONS(4554),
    [sym_scope] = ACTIONS(4554),
    [sym_shared] = ACTIONS(4554),
    [sym_static] = ACTIONS(4554),
    [sym_struct] = ACTIONS(4554),
    [sym_switch] = ACTIONS(4554),
    [sym_synchronized] = ACTIONS(4554),
    [sym_template] = ACTIONS(4554),
    [sym_throw] = ACTIONS(4554),
    [sym_try] = ACTIONS(4554),
    [sym_typeid] = ACTIONS(4554),
    [sym_typeof] = ACTIONS(4554),
    [sym_union] = ACTIONS(4554),
    [sym_unittest] = ACTIONS(4554),
    [sym_version] = ACTIONS(4554),
    [sym_while] = ACTIONS(4554),
    [sym_with] = ACTIONS(4554),
    [sym_gshared] = ACTIONS(4554),
    [sym_traits] = ACTIONS(4554),
    [sym_vector] = ACTIONS(4554),
    [sym_void] = ACTIONS(4554),
    [anon_sym_BQUOTE] = ACTIONS(4556),
    [anon_sym_r_DQUOTE] = ACTIONS(4556),
    [anon_sym_x_DQUOTE] = ACTIONS(4556),
    [anon_sym_DQUOTE] = ACTIONS(4556),
    [anon_sym_i_BQUOTE] = ACTIONS(4556),
    [anon_sym_i_DQUOTE] = ACTIONS(4556),
    [anon_sym_iq_LBRACE] = ACTIONS(4556),
    [aux_sym_char_literal_token1] = ACTIONS(4556),
    [anon_sym_SQUOTE] = ACTIONS(4554),
    [anon_sym___DATE__] = ACTIONS(4554),
    [anon_sym___FILE__] = ACTIONS(4554),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4554),
    [anon_sym___FUNCTION__] = ACTIONS(4554),
    [anon_sym___LINE__] = ACTIONS(4554),
    [anon_sym___MODULE__] = ACTIONS(4554),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4554),
    [anon_sym___TIME__] = ACTIONS(4554),
    [anon_sym___TIMESTAMP__] = ACTIONS(4554),
    [anon_sym___VENDOR__] = ACTIONS(4554),
    [anon_sym___VERSION__] = ACTIONS(4554),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4556),
    [sym_float_literal] = ACTIONS(4556),
    [sym__string] = ACTIONS(4556),
  },
  [1639] = {
    [sym_identifier] = ACTIONS(4550),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4552),
    [anon_sym_RBRACE] = ACTIONS(4552),
    [anon_sym_LBRACE] = ACTIONS(4552),
    [anon_sym_DOT] = ACTIONS(4552),
    [anon_sym_AMP] = ACTIONS(4552),
    [anon_sym_DASH] = ACTIONS(4550),
    [anon_sym_DASH_DASH] = ACTIONS(4552),
    [anon_sym_PLUS] = ACTIONS(4550),
    [anon_sym_PLUS_PLUS] = ACTIONS(4552),
    [anon_sym_BANG] = ACTIONS(4552),
    [anon_sym_LPAREN] = ACTIONS(4552),
    [anon_sym_RPAREN] = ACTIONS(4552),
    [anon_sym_LBRACK] = ACTIONS(4552),
    [anon_sym_SEMI] = ACTIONS(4552),
    [anon_sym_DOLLAR] = ACTIONS(4552),
    [anon_sym_STAR] = ACTIONS(4552),
    [anon_sym_TILDE] = ACTIONS(4552),
    [anon_sym_AT] = ACTIONS(4552),
    [sym_bool] = ACTIONS(4550),
    [sym_byte] = ACTIONS(4550),
    [sym_ubyte] = ACTIONS(4550),
    [sym_char] = ACTIONS(4550),
    [sym_short] = ACTIONS(4550),
    [sym_ushort] = ACTIONS(4550),
    [sym_int] = ACTIONS(4550),
    [sym_uint] = ACTIONS(4550),
    [sym_long] = ACTIONS(4550),
    [sym_ulong] = ACTIONS(4550),
    [sym_cent] = ACTIONS(4550),
    [sym_ucent] = ACTIONS(4550),
    [sym_wchar] = ACTIONS(4550),
    [sym_dchar] = ACTIONS(4550),
    [sym_float] = ACTIONS(4550),
    [sym_double] = ACTIONS(4550),
    [sym_real] = ACTIONS(4550),
    [sym_ifloat] = ACTIONS(4550),
    [sym_idouble] = ACTIONS(4550),
    [sym_ireal] = ACTIONS(4550),
    [sym_cfloat] = ACTIONS(4550),
    [sym_cdouble] = ACTIONS(4550),
    [sym_creal] = ACTIONS(4550),
    [sym_size_t] = ACTIONS(4550),
    [sym_ptrdiff_t] = ACTIONS(4550),
    [sym_string] = ACTIONS(4550),
    [sym_cstring] = ACTIONS(4550),
    [sym_dstring] = ACTIONS(4550),
    [sym_wstring] = ACTIONS(4550),
    [sym_noreturn] = ACTIONS(4550),
    [sym_true] = ACTIONS(4550),
    [sym_false] = ACTIONS(4550),
    [sym_null] = ACTIONS(4550),
    [sym_super] = ACTIONS(4550),
    [sym_this] = ACTIONS(4550),
    [sym_abstract] = ACTIONS(4550),
    [sym_alias] = ACTIONS(4550),
    [sym_align] = ACTIONS(4550),
    [sym_asm] = ACTIONS(4550),
    [sym_assert] = ACTIONS(4550),
    [sym_auto] = ACTIONS(4550),
    [sym_break] = ACTIONS(4550),
    [sym_case] = ACTIONS(4550),
    [sym_cast] = ACTIONS(4550),
    [sym_class] = ACTIONS(4550),
    [sym_const] = ACTIONS(4550),
    [sym_continue] = ACTIONS(4550),
    [sym_debug] = ACTIONS(4550),
    [sym_default] = ACTIONS(4550),
    [sym_delegate] = ACTIONS(4550),
    [sym_delete] = ACTIONS(4550),
    [sym_deprecated] = ACTIONS(4550),
    [sym_do] = ACTIONS(4550),
    [sym_else] = ACTIONS(4550),
    [sym_enum] = ACTIONS(4550),
    [sym_export] = ACTIONS(4550),
    [sym_extern] = ACTIONS(4550),
    [sym_final] = ACTIONS(4550),
    [sym_for] = ACTIONS(4550),
    [sym_foreach] = ACTIONS(4550),
    [sym_foreach_reverse] = ACTIONS(4550),
    [sym_function] = ACTIONS(4550),
    [sym_goto] = ACTIONS(4550),
    [sym_if] = ACTIONS(4550),
    [sym_immutable] = ACTIONS(4550),
    [sym_import] = ACTIONS(4550),
    [sym_in] = ACTIONS(4550),
    [sym_inout] = ACTIONS(4550),
    [sym_interface] = ACTIONS(4550),
    [sym_invariant] = ACTIONS(4550),
    [sym_is] = ACTIONS(4550),
    [sym_mixin] = ACTIONS(4550),
    [sym_new] = ACTIONS(4550),
    [sym_nothrow] = ACTIONS(4550),
    [sym_out] = ACTIONS(4550),
    [sym_override] = ACTIONS(4550),
    [sym_package] = ACTIONS(4550),
    [sym_pragma] = ACTIONS(4550),
    [sym_private] = ACTIONS(4550),
    [sym_protected] = ACTIONS(4550),
    [sym_public] = ACTIONS(4550),
    [sym_pure] = ACTIONS(4550),
    [sym_ref] = ACTIONS(4550),
    [sym_return] = ACTIONS(4550),
    [sym_scope] = ACTIONS(4550),
    [sym_shared] = ACTIONS(4550),
    [sym_static] = ACTIONS(4550),
    [sym_struct] = ACTIONS(4550),
    [sym_switch] = ACTIONS(4550),
    [sym_synchronized] = ACTIONS(4550),
    [sym_template] = ACTIONS(4550),
    [sym_throw] = ACTIONS(4550),
    [sym_try] = ACTIONS(4550),
    [sym_typeid] = ACTIONS(4550),
    [sym_typeof] = ACTIONS(4550),
    [sym_union] = ACTIONS(4550),
    [sym_unittest] = ACTIONS(4550),
    [sym_version] = ACTIONS(4550),
    [sym_while] = ACTIONS(4550),
    [sym_with] = ACTIONS(4550),
    [sym_gshared] = ACTIONS(4550),
    [sym_traits] = ACTIONS(4550),
    [sym_vector] = ACTIONS(4550),
    [sym_void] = ACTIONS(4550),
    [anon_sym_BQUOTE] = ACTIONS(4552),
    [anon_sym_r_DQUOTE] = ACTIONS(4552),
    [anon_sym_x_DQUOTE] = ACTIONS(4552),
    [anon_sym_DQUOTE] = ACTIONS(4552),
    [anon_sym_i_BQUOTE] = ACTIONS(4552),
    [anon_sym_i_DQUOTE] = ACTIONS(4552),
    [anon_sym_iq_LBRACE] = ACTIONS(4552),
    [aux_sym_char_literal_token1] = ACTIONS(4552),
    [anon_sym_SQUOTE] = ACTIONS(4550),
    [anon_sym___DATE__] = ACTIONS(4550),
    [anon_sym___FILE__] = ACTIONS(4550),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4550),
    [anon_sym___FUNCTION__] = ACTIONS(4550),
    [anon_sym___LINE__] = ACTIONS(4550),
    [anon_sym___MODULE__] = ACTIONS(4550),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4550),
    [anon_sym___TIME__] = ACTIONS(4550),
    [anon_sym___TIMESTAMP__] = ACTIONS(4550),
    [anon_sym___VENDOR__] = ACTIONS(4550),
    [anon_sym___VERSION__] = ACTIONS(4550),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4552),
    [sym_float_literal] = ACTIONS(4552),
    [sym__string] = ACTIONS(4552),
  },
  [1640] = {
    [sym_identifier] = ACTIONS(4542),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4544),
    [anon_sym_RBRACE] = ACTIONS(4544),
    [anon_sym_LBRACE] = ACTIONS(4544),
    [anon_sym_DOT] = ACTIONS(4544),
    [anon_sym_AMP] = ACTIONS(4544),
    [anon_sym_DASH] = ACTIONS(4542),
    [anon_sym_DASH_DASH] = ACTIONS(4544),
    [anon_sym_PLUS] = ACTIONS(4542),
    [anon_sym_PLUS_PLUS] = ACTIONS(4544),
    [anon_sym_BANG] = ACTIONS(4544),
    [anon_sym_LPAREN] = ACTIONS(4544),
    [anon_sym_RPAREN] = ACTIONS(4544),
    [anon_sym_LBRACK] = ACTIONS(4544),
    [anon_sym_SEMI] = ACTIONS(4544),
    [anon_sym_DOLLAR] = ACTIONS(4544),
    [anon_sym_STAR] = ACTIONS(4544),
    [anon_sym_TILDE] = ACTIONS(4544),
    [anon_sym_AT] = ACTIONS(4544),
    [sym_bool] = ACTIONS(4542),
    [sym_byte] = ACTIONS(4542),
    [sym_ubyte] = ACTIONS(4542),
    [sym_char] = ACTIONS(4542),
    [sym_short] = ACTIONS(4542),
    [sym_ushort] = ACTIONS(4542),
    [sym_int] = ACTIONS(4542),
    [sym_uint] = ACTIONS(4542),
    [sym_long] = ACTIONS(4542),
    [sym_ulong] = ACTIONS(4542),
    [sym_cent] = ACTIONS(4542),
    [sym_ucent] = ACTIONS(4542),
    [sym_wchar] = ACTIONS(4542),
    [sym_dchar] = ACTIONS(4542),
    [sym_float] = ACTIONS(4542),
    [sym_double] = ACTIONS(4542),
    [sym_real] = ACTIONS(4542),
    [sym_ifloat] = ACTIONS(4542),
    [sym_idouble] = ACTIONS(4542),
    [sym_ireal] = ACTIONS(4542),
    [sym_cfloat] = ACTIONS(4542),
    [sym_cdouble] = ACTIONS(4542),
    [sym_creal] = ACTIONS(4542),
    [sym_size_t] = ACTIONS(4542),
    [sym_ptrdiff_t] = ACTIONS(4542),
    [sym_string] = ACTIONS(4542),
    [sym_cstring] = ACTIONS(4542),
    [sym_dstring] = ACTIONS(4542),
    [sym_wstring] = ACTIONS(4542),
    [sym_noreturn] = ACTIONS(4542),
    [sym_true] = ACTIONS(4542),
    [sym_false] = ACTIONS(4542),
    [sym_null] = ACTIONS(4542),
    [sym_super] = ACTIONS(4542),
    [sym_this] = ACTIONS(4542),
    [sym_abstract] = ACTIONS(4542),
    [sym_alias] = ACTIONS(4542),
    [sym_align] = ACTIONS(4542),
    [sym_asm] = ACTIONS(4542),
    [sym_assert] = ACTIONS(4542),
    [sym_auto] = ACTIONS(4542),
    [sym_break] = ACTIONS(4542),
    [sym_case] = ACTIONS(4542),
    [sym_cast] = ACTIONS(4542),
    [sym_class] = ACTIONS(4542),
    [sym_const] = ACTIONS(4542),
    [sym_continue] = ACTIONS(4542),
    [sym_debug] = ACTIONS(4542),
    [sym_default] = ACTIONS(4542),
    [sym_delegate] = ACTIONS(4542),
    [sym_delete] = ACTIONS(4542),
    [sym_deprecated] = ACTIONS(4542),
    [sym_do] = ACTIONS(4542),
    [sym_else] = ACTIONS(4542),
    [sym_enum] = ACTIONS(4542),
    [sym_export] = ACTIONS(4542),
    [sym_extern] = ACTIONS(4542),
    [sym_final] = ACTIONS(4542),
    [sym_for] = ACTIONS(4542),
    [sym_foreach] = ACTIONS(4542),
    [sym_foreach_reverse] = ACTIONS(4542),
    [sym_function] = ACTIONS(4542),
    [sym_goto] = ACTIONS(4542),
    [sym_if] = ACTIONS(4542),
    [sym_immutable] = ACTIONS(4542),
    [sym_import] = ACTIONS(4542),
    [sym_in] = ACTIONS(4542),
    [sym_inout] = ACTIONS(4542),
    [sym_interface] = ACTIONS(4542),
    [sym_invariant] = ACTIONS(4542),
    [sym_is] = ACTIONS(4542),
    [sym_mixin] = ACTIONS(4542),
    [sym_new] = ACTIONS(4542),
    [sym_nothrow] = ACTIONS(4542),
    [sym_out] = ACTIONS(4542),
    [sym_override] = ACTIONS(4542),
    [sym_package] = ACTIONS(4542),
    [sym_pragma] = ACTIONS(4542),
    [sym_private] = ACTIONS(4542),
    [sym_protected] = ACTIONS(4542),
    [sym_public] = ACTIONS(4542),
    [sym_pure] = ACTIONS(4542),
    [sym_ref] = ACTIONS(4542),
    [sym_return] = ACTIONS(4542),
    [sym_scope] = ACTIONS(4542),
    [sym_shared] = ACTIONS(4542),
    [sym_static] = ACTIONS(4542),
    [sym_struct] = ACTIONS(4542),
    [sym_switch] = ACTIONS(4542),
    [sym_synchronized] = ACTIONS(4542),
    [sym_template] = ACTIONS(4542),
    [sym_throw] = ACTIONS(4542),
    [sym_try] = ACTIONS(4542),
    [sym_typeid] = ACTIONS(4542),
    [sym_typeof] = ACTIONS(4542),
    [sym_union] = ACTIONS(4542),
    [sym_unittest] = ACTIONS(4542),
    [sym_version] = ACTIONS(4542),
    [sym_while] = ACTIONS(4542),
    [sym_with] = ACTIONS(4542),
    [sym_gshared] = ACTIONS(4542),
    [sym_traits] = ACTIONS(4542),
    [sym_vector] = ACTIONS(4542),
    [sym_void] = ACTIONS(4542),
    [anon_sym_BQUOTE] = ACTIONS(4544),
    [anon_sym_r_DQUOTE] = ACTIONS(4544),
    [anon_sym_x_DQUOTE] = ACTIONS(4544),
    [anon_sym_DQUOTE] = ACTIONS(4544),
    [anon_sym_i_BQUOTE] = ACTIONS(4544),
    [anon_sym_i_DQUOTE] = ACTIONS(4544),
    [anon_sym_iq_LBRACE] = ACTIONS(4544),
    [aux_sym_char_literal_token1] = ACTIONS(4544),
    [anon_sym_SQUOTE] = ACTIONS(4542),
    [anon_sym___DATE__] = ACTIONS(4542),
    [anon_sym___FILE__] = ACTIONS(4542),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4542),
    [anon_sym___FUNCTION__] = ACTIONS(4542),
    [anon_sym___LINE__] = ACTIONS(4542),
    [anon_sym___MODULE__] = ACTIONS(4542),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4542),
    [anon_sym___TIME__] = ACTIONS(4542),
    [anon_sym___TIMESTAMP__] = ACTIONS(4542),
    [anon_sym___VENDOR__] = ACTIONS(4542),
    [anon_sym___VERSION__] = ACTIONS(4542),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4544),
    [sym_float_literal] = ACTIONS(4544),
    [sym__string] = ACTIONS(4544),
  },
  [1641] = {
    [sym_identifier] = ACTIONS(4736),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4738),
    [anon_sym_RBRACE] = ACTIONS(4738),
    [anon_sym_LBRACE] = ACTIONS(4738),
    [anon_sym_DOT] = ACTIONS(4738),
    [anon_sym_AMP] = ACTIONS(4738),
    [anon_sym_DASH] = ACTIONS(4736),
    [anon_sym_DASH_DASH] = ACTIONS(4738),
    [anon_sym_PLUS] = ACTIONS(4736),
    [anon_sym_PLUS_PLUS] = ACTIONS(4738),
    [anon_sym_BANG] = ACTIONS(4738),
    [anon_sym_LPAREN] = ACTIONS(4738),
    [anon_sym_RPAREN] = ACTIONS(4738),
    [anon_sym_LBRACK] = ACTIONS(4738),
    [anon_sym_SEMI] = ACTIONS(4738),
    [anon_sym_DOLLAR] = ACTIONS(4738),
    [anon_sym_STAR] = ACTIONS(4738),
    [anon_sym_TILDE] = ACTIONS(4738),
    [anon_sym_AT] = ACTIONS(4738),
    [sym_bool] = ACTIONS(4736),
    [sym_byte] = ACTIONS(4736),
    [sym_ubyte] = ACTIONS(4736),
    [sym_char] = ACTIONS(4736),
    [sym_short] = ACTIONS(4736),
    [sym_ushort] = ACTIONS(4736),
    [sym_int] = ACTIONS(4736),
    [sym_uint] = ACTIONS(4736),
    [sym_long] = ACTIONS(4736),
    [sym_ulong] = ACTIONS(4736),
    [sym_cent] = ACTIONS(4736),
    [sym_ucent] = ACTIONS(4736),
    [sym_wchar] = ACTIONS(4736),
    [sym_dchar] = ACTIONS(4736),
    [sym_float] = ACTIONS(4736),
    [sym_double] = ACTIONS(4736),
    [sym_real] = ACTIONS(4736),
    [sym_ifloat] = ACTIONS(4736),
    [sym_idouble] = ACTIONS(4736),
    [sym_ireal] = ACTIONS(4736),
    [sym_cfloat] = ACTIONS(4736),
    [sym_cdouble] = ACTIONS(4736),
    [sym_creal] = ACTIONS(4736),
    [sym_size_t] = ACTIONS(4736),
    [sym_ptrdiff_t] = ACTIONS(4736),
    [sym_string] = ACTIONS(4736),
    [sym_cstring] = ACTIONS(4736),
    [sym_dstring] = ACTIONS(4736),
    [sym_wstring] = ACTIONS(4736),
    [sym_noreturn] = ACTIONS(4736),
    [sym_true] = ACTIONS(4736),
    [sym_false] = ACTIONS(4736),
    [sym_null] = ACTIONS(4736),
    [sym_super] = ACTIONS(4736),
    [sym_this] = ACTIONS(4736),
    [sym_abstract] = ACTIONS(4736),
    [sym_alias] = ACTIONS(4736),
    [sym_align] = ACTIONS(4736),
    [sym_asm] = ACTIONS(4736),
    [sym_assert] = ACTIONS(4736),
    [sym_auto] = ACTIONS(4736),
    [sym_break] = ACTIONS(4736),
    [sym_case] = ACTIONS(4736),
    [sym_cast] = ACTIONS(4736),
    [sym_class] = ACTIONS(4736),
    [sym_const] = ACTIONS(4736),
    [sym_continue] = ACTIONS(4736),
    [sym_debug] = ACTIONS(4736),
    [sym_default] = ACTIONS(4736),
    [sym_delegate] = ACTIONS(4736),
    [sym_delete] = ACTIONS(4736),
    [sym_deprecated] = ACTIONS(4736),
    [sym_do] = ACTIONS(4736),
    [sym_else] = ACTIONS(4736),
    [sym_enum] = ACTIONS(4736),
    [sym_export] = ACTIONS(4736),
    [sym_extern] = ACTIONS(4736),
    [sym_final] = ACTIONS(4736),
    [sym_for] = ACTIONS(4736),
    [sym_foreach] = ACTIONS(4736),
    [sym_foreach_reverse] = ACTIONS(4736),
    [sym_function] = ACTIONS(4736),
    [sym_goto] = ACTIONS(4736),
    [sym_if] = ACTIONS(4736),
    [sym_immutable] = ACTIONS(4736),
    [sym_import] = ACTIONS(4736),
    [sym_in] = ACTIONS(4736),
    [sym_inout] = ACTIONS(4736),
    [sym_interface] = ACTIONS(4736),
    [sym_invariant] = ACTIONS(4736),
    [sym_is] = ACTIONS(4736),
    [sym_mixin] = ACTIONS(4736),
    [sym_new] = ACTIONS(4736),
    [sym_nothrow] = ACTIONS(4736),
    [sym_out] = ACTIONS(4736),
    [sym_override] = ACTIONS(4736),
    [sym_package] = ACTIONS(4736),
    [sym_pragma] = ACTIONS(4736),
    [sym_private] = ACTIONS(4736),
    [sym_protected] = ACTIONS(4736),
    [sym_public] = ACTIONS(4736),
    [sym_pure] = ACTIONS(4736),
    [sym_ref] = ACTIONS(4736),
    [sym_return] = ACTIONS(4736),
    [sym_scope] = ACTIONS(4736),
    [sym_shared] = ACTIONS(4736),
    [sym_static] = ACTIONS(4736),
    [sym_struct] = ACTIONS(4736),
    [sym_switch] = ACTIONS(4736),
    [sym_synchronized] = ACTIONS(4736),
    [sym_template] = ACTIONS(4736),
    [sym_throw] = ACTIONS(4736),
    [sym_try] = ACTIONS(4736),
    [sym_typeid] = ACTIONS(4736),
    [sym_typeof] = ACTIONS(4736),
    [sym_union] = ACTIONS(4736),
    [sym_unittest] = ACTIONS(4736),
    [sym_version] = ACTIONS(4736),
    [sym_while] = ACTIONS(4736),
    [sym_with] = ACTIONS(4736),
    [sym_gshared] = ACTIONS(4736),
    [sym_traits] = ACTIONS(4736),
    [sym_vector] = ACTIONS(4736),
    [sym_void] = ACTIONS(4736),
    [anon_sym_BQUOTE] = ACTIONS(4738),
    [anon_sym_r_DQUOTE] = ACTIONS(4738),
    [anon_sym_x_DQUOTE] = ACTIONS(4738),
    [anon_sym_DQUOTE] = ACTIONS(4738),
    [anon_sym_i_BQUOTE] = ACTIONS(4738),
    [anon_sym_i_DQUOTE] = ACTIONS(4738),
    [anon_sym_iq_LBRACE] = ACTIONS(4738),
    [aux_sym_char_literal_token1] = ACTIONS(4738),
    [anon_sym_SQUOTE] = ACTIONS(4736),
    [anon_sym___DATE__] = ACTIONS(4736),
    [anon_sym___FILE__] = ACTIONS(4736),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4736),
    [anon_sym___FUNCTION__] = ACTIONS(4736),
    [anon_sym___LINE__] = ACTIONS(4736),
    [anon_sym___MODULE__] = ACTIONS(4736),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4736),
    [anon_sym___TIME__] = ACTIONS(4736),
    [anon_sym___TIMESTAMP__] = ACTIONS(4736),
    [anon_sym___VENDOR__] = ACTIONS(4736),
    [anon_sym___VERSION__] = ACTIONS(4736),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4738),
    [sym_float_literal] = ACTIONS(4738),
    [sym__string] = ACTIONS(4738),
  },
  [1642] = {
    [sym_identifier] = ACTIONS(4732),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4734),
    [anon_sym_RBRACE] = ACTIONS(4734),
    [anon_sym_LBRACE] = ACTIONS(4734),
    [anon_sym_DOT] = ACTIONS(4734),
    [anon_sym_AMP] = ACTIONS(4734),
    [anon_sym_DASH] = ACTIONS(4732),
    [anon_sym_DASH_DASH] = ACTIONS(4734),
    [anon_sym_PLUS] = ACTIONS(4732),
    [anon_sym_PLUS_PLUS] = ACTIONS(4734),
    [anon_sym_BANG] = ACTIONS(4734),
    [anon_sym_LPAREN] = ACTIONS(4734),
    [anon_sym_RPAREN] = ACTIONS(4734),
    [anon_sym_LBRACK] = ACTIONS(4734),
    [anon_sym_SEMI] = ACTIONS(4734),
    [anon_sym_DOLLAR] = ACTIONS(4734),
    [anon_sym_STAR] = ACTIONS(4734),
    [anon_sym_TILDE] = ACTIONS(4734),
    [anon_sym_AT] = ACTIONS(4734),
    [sym_bool] = ACTIONS(4732),
    [sym_byte] = ACTIONS(4732),
    [sym_ubyte] = ACTIONS(4732),
    [sym_char] = ACTIONS(4732),
    [sym_short] = ACTIONS(4732),
    [sym_ushort] = ACTIONS(4732),
    [sym_int] = ACTIONS(4732),
    [sym_uint] = ACTIONS(4732),
    [sym_long] = ACTIONS(4732),
    [sym_ulong] = ACTIONS(4732),
    [sym_cent] = ACTIONS(4732),
    [sym_ucent] = ACTIONS(4732),
    [sym_wchar] = ACTIONS(4732),
    [sym_dchar] = ACTIONS(4732),
    [sym_float] = ACTIONS(4732),
    [sym_double] = ACTIONS(4732),
    [sym_real] = ACTIONS(4732),
    [sym_ifloat] = ACTIONS(4732),
    [sym_idouble] = ACTIONS(4732),
    [sym_ireal] = ACTIONS(4732),
    [sym_cfloat] = ACTIONS(4732),
    [sym_cdouble] = ACTIONS(4732),
    [sym_creal] = ACTIONS(4732),
    [sym_size_t] = ACTIONS(4732),
    [sym_ptrdiff_t] = ACTIONS(4732),
    [sym_string] = ACTIONS(4732),
    [sym_cstring] = ACTIONS(4732),
    [sym_dstring] = ACTIONS(4732),
    [sym_wstring] = ACTIONS(4732),
    [sym_noreturn] = ACTIONS(4732),
    [sym_true] = ACTIONS(4732),
    [sym_false] = ACTIONS(4732),
    [sym_null] = ACTIONS(4732),
    [sym_super] = ACTIONS(4732),
    [sym_this] = ACTIONS(4732),
    [sym_abstract] = ACTIONS(4732),
    [sym_alias] = ACTIONS(4732),
    [sym_align] = ACTIONS(4732),
    [sym_asm] = ACTIONS(4732),
    [sym_assert] = ACTIONS(4732),
    [sym_auto] = ACTIONS(4732),
    [sym_break] = ACTIONS(4732),
    [sym_case] = ACTIONS(4732),
    [sym_cast] = ACTIONS(4732),
    [sym_class] = ACTIONS(4732),
    [sym_const] = ACTIONS(4732),
    [sym_continue] = ACTIONS(4732),
    [sym_debug] = ACTIONS(4732),
    [sym_default] = ACTIONS(4732),
    [sym_delegate] = ACTIONS(4732),
    [sym_delete] = ACTIONS(4732),
    [sym_deprecated] = ACTIONS(4732),
    [sym_do] = ACTIONS(4732),
    [sym_else] = ACTIONS(4732),
    [sym_enum] = ACTIONS(4732),
    [sym_export] = ACTIONS(4732),
    [sym_extern] = ACTIONS(4732),
    [sym_final] = ACTIONS(4732),
    [sym_for] = ACTIONS(4732),
    [sym_foreach] = ACTIONS(4732),
    [sym_foreach_reverse] = ACTIONS(4732),
    [sym_function] = ACTIONS(4732),
    [sym_goto] = ACTIONS(4732),
    [sym_if] = ACTIONS(4732),
    [sym_immutable] = ACTIONS(4732),
    [sym_import] = ACTIONS(4732),
    [sym_in] = ACTIONS(4732),
    [sym_inout] = ACTIONS(4732),
    [sym_interface] = ACTIONS(4732),
    [sym_invariant] = ACTIONS(4732),
    [sym_is] = ACTIONS(4732),
    [sym_mixin] = ACTIONS(4732),
    [sym_new] = ACTIONS(4732),
    [sym_nothrow] = ACTIONS(4732),
    [sym_out] = ACTIONS(4732),
    [sym_override] = ACTIONS(4732),
    [sym_package] = ACTIONS(4732),
    [sym_pragma] = ACTIONS(4732),
    [sym_private] = ACTIONS(4732),
    [sym_protected] = ACTIONS(4732),
    [sym_public] = ACTIONS(4732),
    [sym_pure] = ACTIONS(4732),
    [sym_ref] = ACTIONS(4732),
    [sym_return] = ACTIONS(4732),
    [sym_scope] = ACTIONS(4732),
    [sym_shared] = ACTIONS(4732),
    [sym_static] = ACTIONS(4732),
    [sym_struct] = ACTIONS(4732),
    [sym_switch] = ACTIONS(4732),
    [sym_synchronized] = ACTIONS(4732),
    [sym_template] = ACTIONS(4732),
    [sym_throw] = ACTIONS(4732),
    [sym_try] = ACTIONS(4732),
    [sym_typeid] = ACTIONS(4732),
    [sym_typeof] = ACTIONS(4732),
    [sym_union] = ACTIONS(4732),
    [sym_unittest] = ACTIONS(4732),
    [sym_version] = ACTIONS(4732),
    [sym_while] = ACTIONS(4732),
    [sym_with] = ACTIONS(4732),
    [sym_gshared] = ACTIONS(4732),
    [sym_traits] = ACTIONS(4732),
    [sym_vector] = ACTIONS(4732),
    [sym_void] = ACTIONS(4732),
    [anon_sym_BQUOTE] = ACTIONS(4734),
    [anon_sym_r_DQUOTE] = ACTIONS(4734),
    [anon_sym_x_DQUOTE] = ACTIONS(4734),
    [anon_sym_DQUOTE] = ACTIONS(4734),
    [anon_sym_i_BQUOTE] = ACTIONS(4734),
    [anon_sym_i_DQUOTE] = ACTIONS(4734),
    [anon_sym_iq_LBRACE] = ACTIONS(4734),
    [aux_sym_char_literal_token1] = ACTIONS(4734),
    [anon_sym_SQUOTE] = ACTIONS(4732),
    [anon_sym___DATE__] = ACTIONS(4732),
    [anon_sym___FILE__] = ACTIONS(4732),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4732),
    [anon_sym___FUNCTION__] = ACTIONS(4732),
    [anon_sym___LINE__] = ACTIONS(4732),
    [anon_sym___MODULE__] = ACTIONS(4732),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4732),
    [anon_sym___TIME__] = ACTIONS(4732),
    [anon_sym___TIMESTAMP__] = ACTIONS(4732),
    [anon_sym___VENDOR__] = ACTIONS(4732),
    [anon_sym___VERSION__] = ACTIONS(4732),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4734),
    [sym_float_literal] = ACTIONS(4734),
    [sym__string] = ACTIONS(4734),
  },
  [1643] = {
    [sym_identifier] = ACTIONS(4720),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4722),
    [anon_sym_RBRACE] = ACTIONS(4722),
    [anon_sym_LBRACE] = ACTIONS(4722),
    [anon_sym_DOT] = ACTIONS(4722),
    [anon_sym_AMP] = ACTIONS(4722),
    [anon_sym_DASH] = ACTIONS(4720),
    [anon_sym_DASH_DASH] = ACTIONS(4722),
    [anon_sym_PLUS] = ACTIONS(4720),
    [anon_sym_PLUS_PLUS] = ACTIONS(4722),
    [anon_sym_BANG] = ACTIONS(4722),
    [anon_sym_LPAREN] = ACTIONS(4722),
    [anon_sym_RPAREN] = ACTIONS(4722),
    [anon_sym_LBRACK] = ACTIONS(4722),
    [anon_sym_SEMI] = ACTIONS(4722),
    [anon_sym_DOLLAR] = ACTIONS(4722),
    [anon_sym_STAR] = ACTIONS(4722),
    [anon_sym_TILDE] = ACTIONS(4722),
    [anon_sym_AT] = ACTIONS(4722),
    [sym_bool] = ACTIONS(4720),
    [sym_byte] = ACTIONS(4720),
    [sym_ubyte] = ACTIONS(4720),
    [sym_char] = ACTIONS(4720),
    [sym_short] = ACTIONS(4720),
    [sym_ushort] = ACTIONS(4720),
    [sym_int] = ACTIONS(4720),
    [sym_uint] = ACTIONS(4720),
    [sym_long] = ACTIONS(4720),
    [sym_ulong] = ACTIONS(4720),
    [sym_cent] = ACTIONS(4720),
    [sym_ucent] = ACTIONS(4720),
    [sym_wchar] = ACTIONS(4720),
    [sym_dchar] = ACTIONS(4720),
    [sym_float] = ACTIONS(4720),
    [sym_double] = ACTIONS(4720),
    [sym_real] = ACTIONS(4720),
    [sym_ifloat] = ACTIONS(4720),
    [sym_idouble] = ACTIONS(4720),
    [sym_ireal] = ACTIONS(4720),
    [sym_cfloat] = ACTIONS(4720),
    [sym_cdouble] = ACTIONS(4720),
    [sym_creal] = ACTIONS(4720),
    [sym_size_t] = ACTIONS(4720),
    [sym_ptrdiff_t] = ACTIONS(4720),
    [sym_string] = ACTIONS(4720),
    [sym_cstring] = ACTIONS(4720),
    [sym_dstring] = ACTIONS(4720),
    [sym_wstring] = ACTIONS(4720),
    [sym_noreturn] = ACTIONS(4720),
    [sym_true] = ACTIONS(4720),
    [sym_false] = ACTIONS(4720),
    [sym_null] = ACTIONS(4720),
    [sym_super] = ACTIONS(4720),
    [sym_this] = ACTIONS(4720),
    [sym_abstract] = ACTIONS(4720),
    [sym_alias] = ACTIONS(4720),
    [sym_align] = ACTIONS(4720),
    [sym_asm] = ACTIONS(4720),
    [sym_assert] = ACTIONS(4720),
    [sym_auto] = ACTIONS(4720),
    [sym_break] = ACTIONS(4720),
    [sym_case] = ACTIONS(4720),
    [sym_cast] = ACTIONS(4720),
    [sym_class] = ACTIONS(4720),
    [sym_const] = ACTIONS(4720),
    [sym_continue] = ACTIONS(4720),
    [sym_debug] = ACTIONS(4720),
    [sym_default] = ACTIONS(4720),
    [sym_delegate] = ACTIONS(4720),
    [sym_delete] = ACTIONS(4720),
    [sym_deprecated] = ACTIONS(4720),
    [sym_do] = ACTIONS(4720),
    [sym_else] = ACTIONS(4720),
    [sym_enum] = ACTIONS(4720),
    [sym_export] = ACTIONS(4720),
    [sym_extern] = ACTIONS(4720),
    [sym_final] = ACTIONS(4720),
    [sym_for] = ACTIONS(4720),
    [sym_foreach] = ACTIONS(4720),
    [sym_foreach_reverse] = ACTIONS(4720),
    [sym_function] = ACTIONS(4720),
    [sym_goto] = ACTIONS(4720),
    [sym_if] = ACTIONS(4720),
    [sym_immutable] = ACTIONS(4720),
    [sym_import] = ACTIONS(4720),
    [sym_in] = ACTIONS(4720),
    [sym_inout] = ACTIONS(4720),
    [sym_interface] = ACTIONS(4720),
    [sym_invariant] = ACTIONS(4720),
    [sym_is] = ACTIONS(4720),
    [sym_mixin] = ACTIONS(4720),
    [sym_new] = ACTIONS(4720),
    [sym_nothrow] = ACTIONS(4720),
    [sym_out] = ACTIONS(4720),
    [sym_override] = ACTIONS(4720),
    [sym_package] = ACTIONS(4720),
    [sym_pragma] = ACTIONS(4720),
    [sym_private] = ACTIONS(4720),
    [sym_protected] = ACTIONS(4720),
    [sym_public] = ACTIONS(4720),
    [sym_pure] = ACTIONS(4720),
    [sym_ref] = ACTIONS(4720),
    [sym_return] = ACTIONS(4720),
    [sym_scope] = ACTIONS(4720),
    [sym_shared] = ACTIONS(4720),
    [sym_static] = ACTIONS(4720),
    [sym_struct] = ACTIONS(4720),
    [sym_switch] = ACTIONS(4720),
    [sym_synchronized] = ACTIONS(4720),
    [sym_template] = ACTIONS(4720),
    [sym_throw] = ACTIONS(4720),
    [sym_try] = ACTIONS(4720),
    [sym_typeid] = ACTIONS(4720),
    [sym_typeof] = ACTIONS(4720),
    [sym_union] = ACTIONS(4720),
    [sym_unittest] = ACTIONS(4720),
    [sym_version] = ACTIONS(4720),
    [sym_while] = ACTIONS(4720),
    [sym_with] = ACTIONS(4720),
    [sym_gshared] = ACTIONS(4720),
    [sym_traits] = ACTIONS(4720),
    [sym_vector] = ACTIONS(4720),
    [sym_void] = ACTIONS(4720),
    [anon_sym_BQUOTE] = ACTIONS(4722),
    [anon_sym_r_DQUOTE] = ACTIONS(4722),
    [anon_sym_x_DQUOTE] = ACTIONS(4722),
    [anon_sym_DQUOTE] = ACTIONS(4722),
    [anon_sym_i_BQUOTE] = ACTIONS(4722),
    [anon_sym_i_DQUOTE] = ACTIONS(4722),
    [anon_sym_iq_LBRACE] = ACTIONS(4722),
    [aux_sym_char_literal_token1] = ACTIONS(4722),
    [anon_sym_SQUOTE] = ACTIONS(4720),
    [anon_sym___DATE__] = ACTIONS(4720),
    [anon_sym___FILE__] = ACTIONS(4720),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4720),
    [anon_sym___FUNCTION__] = ACTIONS(4720),
    [anon_sym___LINE__] = ACTIONS(4720),
    [anon_sym___MODULE__] = ACTIONS(4720),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4720),
    [anon_sym___TIME__] = ACTIONS(4720),
    [anon_sym___TIMESTAMP__] = ACTIONS(4720),
    [anon_sym___VENDOR__] = ACTIONS(4720),
    [anon_sym___VERSION__] = ACTIONS(4720),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4722),
    [sym_float_literal] = ACTIONS(4722),
    [sym__string] = ACTIONS(4722),
  },
  [1644] = {
    [sym_identifier] = ACTIONS(4516),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4518),
    [anon_sym_RBRACE] = ACTIONS(4518),
    [anon_sym_LBRACE] = ACTIONS(4518),
    [anon_sym_DOT] = ACTIONS(4518),
    [anon_sym_AMP] = ACTIONS(4518),
    [anon_sym_DASH] = ACTIONS(4516),
    [anon_sym_DASH_DASH] = ACTIONS(4518),
    [anon_sym_PLUS] = ACTIONS(4516),
    [anon_sym_PLUS_PLUS] = ACTIONS(4518),
    [anon_sym_BANG] = ACTIONS(4518),
    [anon_sym_LPAREN] = ACTIONS(4518),
    [anon_sym_RPAREN] = ACTIONS(4518),
    [anon_sym_LBRACK] = ACTIONS(4518),
    [anon_sym_SEMI] = ACTIONS(4518),
    [anon_sym_DOLLAR] = ACTIONS(4518),
    [anon_sym_STAR] = ACTIONS(4518),
    [anon_sym_TILDE] = ACTIONS(4518),
    [anon_sym_AT] = ACTIONS(4518),
    [sym_bool] = ACTIONS(4516),
    [sym_byte] = ACTIONS(4516),
    [sym_ubyte] = ACTIONS(4516),
    [sym_char] = ACTIONS(4516),
    [sym_short] = ACTIONS(4516),
    [sym_ushort] = ACTIONS(4516),
    [sym_int] = ACTIONS(4516),
    [sym_uint] = ACTIONS(4516),
    [sym_long] = ACTIONS(4516),
    [sym_ulong] = ACTIONS(4516),
    [sym_cent] = ACTIONS(4516),
    [sym_ucent] = ACTIONS(4516),
    [sym_wchar] = ACTIONS(4516),
    [sym_dchar] = ACTIONS(4516),
    [sym_float] = ACTIONS(4516),
    [sym_double] = ACTIONS(4516),
    [sym_real] = ACTIONS(4516),
    [sym_ifloat] = ACTIONS(4516),
    [sym_idouble] = ACTIONS(4516),
    [sym_ireal] = ACTIONS(4516),
    [sym_cfloat] = ACTIONS(4516),
    [sym_cdouble] = ACTIONS(4516),
    [sym_creal] = ACTIONS(4516),
    [sym_size_t] = ACTIONS(4516),
    [sym_ptrdiff_t] = ACTIONS(4516),
    [sym_string] = ACTIONS(4516),
    [sym_cstring] = ACTIONS(4516),
    [sym_dstring] = ACTIONS(4516),
    [sym_wstring] = ACTIONS(4516),
    [sym_noreturn] = ACTIONS(4516),
    [sym_true] = ACTIONS(4516),
    [sym_false] = ACTIONS(4516),
    [sym_null] = ACTIONS(4516),
    [sym_super] = ACTIONS(4516),
    [sym_this] = ACTIONS(4516),
    [sym_abstract] = ACTIONS(4516),
    [sym_alias] = ACTIONS(4516),
    [sym_align] = ACTIONS(4516),
    [sym_asm] = ACTIONS(4516),
    [sym_assert] = ACTIONS(4516),
    [sym_auto] = ACTIONS(4516),
    [sym_break] = ACTIONS(4516),
    [sym_case] = ACTIONS(4516),
    [sym_cast] = ACTIONS(4516),
    [sym_class] = ACTIONS(4516),
    [sym_const] = ACTIONS(4516),
    [sym_continue] = ACTIONS(4516),
    [sym_debug] = ACTIONS(4516),
    [sym_default] = ACTIONS(4516),
    [sym_delegate] = ACTIONS(4516),
    [sym_delete] = ACTIONS(4516),
    [sym_deprecated] = ACTIONS(4516),
    [sym_do] = ACTIONS(4516),
    [sym_else] = ACTIONS(4516),
    [sym_enum] = ACTIONS(4516),
    [sym_export] = ACTIONS(4516),
    [sym_extern] = ACTIONS(4516),
    [sym_final] = ACTIONS(4516),
    [sym_for] = ACTIONS(4516),
    [sym_foreach] = ACTIONS(4516),
    [sym_foreach_reverse] = ACTIONS(4516),
    [sym_function] = ACTIONS(4516),
    [sym_goto] = ACTIONS(4516),
    [sym_if] = ACTIONS(4516),
    [sym_immutable] = ACTIONS(4516),
    [sym_import] = ACTIONS(4516),
    [sym_in] = ACTIONS(4516),
    [sym_inout] = ACTIONS(4516),
    [sym_interface] = ACTIONS(4516),
    [sym_invariant] = ACTIONS(4516),
    [sym_is] = ACTIONS(4516),
    [sym_mixin] = ACTIONS(4516),
    [sym_new] = ACTIONS(4516),
    [sym_nothrow] = ACTIONS(4516),
    [sym_out] = ACTIONS(4516),
    [sym_override] = ACTIONS(4516),
    [sym_package] = ACTIONS(4516),
    [sym_pragma] = ACTIONS(4516),
    [sym_private] = ACTIONS(4516),
    [sym_protected] = ACTIONS(4516),
    [sym_public] = ACTIONS(4516),
    [sym_pure] = ACTIONS(4516),
    [sym_ref] = ACTIONS(4516),
    [sym_return] = ACTIONS(4516),
    [sym_scope] = ACTIONS(4516),
    [sym_shared] = ACTIONS(4516),
    [sym_static] = ACTIONS(4516),
    [sym_struct] = ACTIONS(4516),
    [sym_switch] = ACTIONS(4516),
    [sym_synchronized] = ACTIONS(4516),
    [sym_template] = ACTIONS(4516),
    [sym_throw] = ACTIONS(4516),
    [sym_try] = ACTIONS(4516),
    [sym_typeid] = ACTIONS(4516),
    [sym_typeof] = ACTIONS(4516),
    [sym_union] = ACTIONS(4516),
    [sym_unittest] = ACTIONS(4516),
    [sym_version] = ACTIONS(4516),
    [sym_while] = ACTIONS(4516),
    [sym_with] = ACTIONS(4516),
    [sym_gshared] = ACTIONS(4516),
    [sym_traits] = ACTIONS(4516),
    [sym_vector] = ACTIONS(4516),
    [sym_void] = ACTIONS(4516),
    [anon_sym_BQUOTE] = ACTIONS(4518),
    [anon_sym_r_DQUOTE] = ACTIONS(4518),
    [anon_sym_x_DQUOTE] = ACTIONS(4518),
    [anon_sym_DQUOTE] = ACTIONS(4518),
    [anon_sym_i_BQUOTE] = ACTIONS(4518),
    [anon_sym_i_DQUOTE] = ACTIONS(4518),
    [anon_sym_iq_LBRACE] = ACTIONS(4518),
    [aux_sym_char_literal_token1] = ACTIONS(4518),
    [anon_sym_SQUOTE] = ACTIONS(4516),
    [anon_sym___DATE__] = ACTIONS(4516),
    [anon_sym___FILE__] = ACTIONS(4516),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4516),
    [anon_sym___FUNCTION__] = ACTIONS(4516),
    [anon_sym___LINE__] = ACTIONS(4516),
    [anon_sym___MODULE__] = ACTIONS(4516),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4516),
    [anon_sym___TIME__] = ACTIONS(4516),
    [anon_sym___TIMESTAMP__] = ACTIONS(4516),
    [anon_sym___VENDOR__] = ACTIONS(4516),
    [anon_sym___VERSION__] = ACTIONS(4516),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4518),
    [sym_float_literal] = ACTIONS(4518),
    [sym__string] = ACTIONS(4518),
  },
  [1645] = {
    [sym_identifier] = ACTIONS(4508),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4510),
    [anon_sym_RBRACE] = ACTIONS(4510),
    [anon_sym_LBRACE] = ACTIONS(4510),
    [anon_sym_DOT] = ACTIONS(4510),
    [anon_sym_AMP] = ACTIONS(4510),
    [anon_sym_DASH] = ACTIONS(4508),
    [anon_sym_DASH_DASH] = ACTIONS(4510),
    [anon_sym_PLUS] = ACTIONS(4508),
    [anon_sym_PLUS_PLUS] = ACTIONS(4510),
    [anon_sym_BANG] = ACTIONS(4510),
    [anon_sym_LPAREN] = ACTIONS(4510),
    [anon_sym_RPAREN] = ACTIONS(4510),
    [anon_sym_LBRACK] = ACTIONS(4510),
    [anon_sym_SEMI] = ACTIONS(4510),
    [anon_sym_DOLLAR] = ACTIONS(4510),
    [anon_sym_STAR] = ACTIONS(4510),
    [anon_sym_TILDE] = ACTIONS(4510),
    [anon_sym_AT] = ACTIONS(4510),
    [sym_bool] = ACTIONS(4508),
    [sym_byte] = ACTIONS(4508),
    [sym_ubyte] = ACTIONS(4508),
    [sym_char] = ACTIONS(4508),
    [sym_short] = ACTIONS(4508),
    [sym_ushort] = ACTIONS(4508),
    [sym_int] = ACTIONS(4508),
    [sym_uint] = ACTIONS(4508),
    [sym_long] = ACTIONS(4508),
    [sym_ulong] = ACTIONS(4508),
    [sym_cent] = ACTIONS(4508),
    [sym_ucent] = ACTIONS(4508),
    [sym_wchar] = ACTIONS(4508),
    [sym_dchar] = ACTIONS(4508),
    [sym_float] = ACTIONS(4508),
    [sym_double] = ACTIONS(4508),
    [sym_real] = ACTIONS(4508),
    [sym_ifloat] = ACTIONS(4508),
    [sym_idouble] = ACTIONS(4508),
    [sym_ireal] = ACTIONS(4508),
    [sym_cfloat] = ACTIONS(4508),
    [sym_cdouble] = ACTIONS(4508),
    [sym_creal] = ACTIONS(4508),
    [sym_size_t] = ACTIONS(4508),
    [sym_ptrdiff_t] = ACTIONS(4508),
    [sym_string] = ACTIONS(4508),
    [sym_cstring] = ACTIONS(4508),
    [sym_dstring] = ACTIONS(4508),
    [sym_wstring] = ACTIONS(4508),
    [sym_noreturn] = ACTIONS(4508),
    [sym_true] = ACTIONS(4508),
    [sym_false] = ACTIONS(4508),
    [sym_null] = ACTIONS(4508),
    [sym_super] = ACTIONS(4508),
    [sym_this] = ACTIONS(4508),
    [sym_abstract] = ACTIONS(4508),
    [sym_alias] = ACTIONS(4508),
    [sym_align] = ACTIONS(4508),
    [sym_asm] = ACTIONS(4508),
    [sym_assert] = ACTIONS(4508),
    [sym_auto] = ACTIONS(4508),
    [sym_break] = ACTIONS(4508),
    [sym_case] = ACTIONS(4508),
    [sym_cast] = ACTIONS(4508),
    [sym_class] = ACTIONS(4508),
    [sym_const] = ACTIONS(4508),
    [sym_continue] = ACTIONS(4508),
    [sym_debug] = ACTIONS(4508),
    [sym_default] = ACTIONS(4508),
    [sym_delegate] = ACTIONS(4508),
    [sym_delete] = ACTIONS(4508),
    [sym_deprecated] = ACTIONS(4508),
    [sym_do] = ACTIONS(4508),
    [sym_else] = ACTIONS(4508),
    [sym_enum] = ACTIONS(4508),
    [sym_export] = ACTIONS(4508),
    [sym_extern] = ACTIONS(4508),
    [sym_final] = ACTIONS(4508),
    [sym_for] = ACTIONS(4508),
    [sym_foreach] = ACTIONS(4508),
    [sym_foreach_reverse] = ACTIONS(4508),
    [sym_function] = ACTIONS(4508),
    [sym_goto] = ACTIONS(4508),
    [sym_if] = ACTIONS(4508),
    [sym_immutable] = ACTIONS(4508),
    [sym_import] = ACTIONS(4508),
    [sym_in] = ACTIONS(4508),
    [sym_inout] = ACTIONS(4508),
    [sym_interface] = ACTIONS(4508),
    [sym_invariant] = ACTIONS(4508),
    [sym_is] = ACTIONS(4508),
    [sym_mixin] = ACTIONS(4508),
    [sym_new] = ACTIONS(4508),
    [sym_nothrow] = ACTIONS(4508),
    [sym_out] = ACTIONS(4508),
    [sym_override] = ACTIONS(4508),
    [sym_package] = ACTIONS(4508),
    [sym_pragma] = ACTIONS(4508),
    [sym_private] = ACTIONS(4508),
    [sym_protected] = ACTIONS(4508),
    [sym_public] = ACTIONS(4508),
    [sym_pure] = ACTIONS(4508),
    [sym_ref] = ACTIONS(4508),
    [sym_return] = ACTIONS(4508),
    [sym_scope] = ACTIONS(4508),
    [sym_shared] = ACTIONS(4508),
    [sym_static] = ACTIONS(4508),
    [sym_struct] = ACTIONS(4508),
    [sym_switch] = ACTIONS(4508),
    [sym_synchronized] = ACTIONS(4508),
    [sym_template] = ACTIONS(4508),
    [sym_throw] = ACTIONS(4508),
    [sym_try] = ACTIONS(4508),
    [sym_typeid] = ACTIONS(4508),
    [sym_typeof] = ACTIONS(4508),
    [sym_union] = ACTIONS(4508),
    [sym_unittest] = ACTIONS(4508),
    [sym_version] = ACTIONS(4508),
    [sym_while] = ACTIONS(4508),
    [sym_with] = ACTIONS(4508),
    [sym_gshared] = ACTIONS(4508),
    [sym_traits] = ACTIONS(4508),
    [sym_vector] = ACTIONS(4508),
    [sym_void] = ACTIONS(4508),
    [anon_sym_BQUOTE] = ACTIONS(4510),
    [anon_sym_r_DQUOTE] = ACTIONS(4510),
    [anon_sym_x_DQUOTE] = ACTIONS(4510),
    [anon_sym_DQUOTE] = ACTIONS(4510),
    [anon_sym_i_BQUOTE] = ACTIONS(4510),
    [anon_sym_i_DQUOTE] = ACTIONS(4510),
    [anon_sym_iq_LBRACE] = ACTIONS(4510),
    [aux_sym_char_literal_token1] = ACTIONS(4510),
    [anon_sym_SQUOTE] = ACTIONS(4508),
    [anon_sym___DATE__] = ACTIONS(4508),
    [anon_sym___FILE__] = ACTIONS(4508),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4508),
    [anon_sym___FUNCTION__] = ACTIONS(4508),
    [anon_sym___LINE__] = ACTIONS(4508),
    [anon_sym___MODULE__] = ACTIONS(4508),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4508),
    [anon_sym___TIME__] = ACTIONS(4508),
    [anon_sym___TIMESTAMP__] = ACTIONS(4508),
    [anon_sym___VENDOR__] = ACTIONS(4508),
    [anon_sym___VERSION__] = ACTIONS(4508),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4510),
    [sym_float_literal] = ACTIONS(4510),
    [sym__string] = ACTIONS(4510),
  },
  [1646] = {
    [sym_identifier] = ACTIONS(4712),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4714),
    [anon_sym_RBRACE] = ACTIONS(4714),
    [anon_sym_LBRACE] = ACTIONS(4714),
    [anon_sym_DOT] = ACTIONS(4714),
    [anon_sym_AMP] = ACTIONS(4714),
    [anon_sym_DASH] = ACTIONS(4712),
    [anon_sym_DASH_DASH] = ACTIONS(4714),
    [anon_sym_PLUS] = ACTIONS(4712),
    [anon_sym_PLUS_PLUS] = ACTIONS(4714),
    [anon_sym_BANG] = ACTIONS(4714),
    [anon_sym_LPAREN] = ACTIONS(4714),
    [anon_sym_RPAREN] = ACTIONS(4714),
    [anon_sym_LBRACK] = ACTIONS(4714),
    [anon_sym_SEMI] = ACTIONS(4714),
    [anon_sym_DOLLAR] = ACTIONS(4714),
    [anon_sym_STAR] = ACTIONS(4714),
    [anon_sym_TILDE] = ACTIONS(4714),
    [anon_sym_AT] = ACTIONS(4714),
    [sym_bool] = ACTIONS(4712),
    [sym_byte] = ACTIONS(4712),
    [sym_ubyte] = ACTIONS(4712),
    [sym_char] = ACTIONS(4712),
    [sym_short] = ACTIONS(4712),
    [sym_ushort] = ACTIONS(4712),
    [sym_int] = ACTIONS(4712),
    [sym_uint] = ACTIONS(4712),
    [sym_long] = ACTIONS(4712),
    [sym_ulong] = ACTIONS(4712),
    [sym_cent] = ACTIONS(4712),
    [sym_ucent] = ACTIONS(4712),
    [sym_wchar] = ACTIONS(4712),
    [sym_dchar] = ACTIONS(4712),
    [sym_float] = ACTIONS(4712),
    [sym_double] = ACTIONS(4712),
    [sym_real] = ACTIONS(4712),
    [sym_ifloat] = ACTIONS(4712),
    [sym_idouble] = ACTIONS(4712),
    [sym_ireal] = ACTIONS(4712),
    [sym_cfloat] = ACTIONS(4712),
    [sym_cdouble] = ACTIONS(4712),
    [sym_creal] = ACTIONS(4712),
    [sym_size_t] = ACTIONS(4712),
    [sym_ptrdiff_t] = ACTIONS(4712),
    [sym_string] = ACTIONS(4712),
    [sym_cstring] = ACTIONS(4712),
    [sym_dstring] = ACTIONS(4712),
    [sym_wstring] = ACTIONS(4712),
    [sym_noreturn] = ACTIONS(4712),
    [sym_true] = ACTIONS(4712),
    [sym_false] = ACTIONS(4712),
    [sym_null] = ACTIONS(4712),
    [sym_super] = ACTIONS(4712),
    [sym_this] = ACTIONS(4712),
    [sym_abstract] = ACTIONS(4712),
    [sym_alias] = ACTIONS(4712),
    [sym_align] = ACTIONS(4712),
    [sym_asm] = ACTIONS(4712),
    [sym_assert] = ACTIONS(4712),
    [sym_auto] = ACTIONS(4712),
    [sym_break] = ACTIONS(4712),
    [sym_case] = ACTIONS(4712),
    [sym_cast] = ACTIONS(4712),
    [sym_class] = ACTIONS(4712),
    [sym_const] = ACTIONS(4712),
    [sym_continue] = ACTIONS(4712),
    [sym_debug] = ACTIONS(4712),
    [sym_default] = ACTIONS(4712),
    [sym_delegate] = ACTIONS(4712),
    [sym_delete] = ACTIONS(4712),
    [sym_deprecated] = ACTIONS(4712),
    [sym_do] = ACTIONS(4712),
    [sym_else] = ACTIONS(4712),
    [sym_enum] = ACTIONS(4712),
    [sym_export] = ACTIONS(4712),
    [sym_extern] = ACTIONS(4712),
    [sym_final] = ACTIONS(4712),
    [sym_for] = ACTIONS(4712),
    [sym_foreach] = ACTIONS(4712),
    [sym_foreach_reverse] = ACTIONS(4712),
    [sym_function] = ACTIONS(4712),
    [sym_goto] = ACTIONS(4712),
    [sym_if] = ACTIONS(4712),
    [sym_immutable] = ACTIONS(4712),
    [sym_import] = ACTIONS(4712),
    [sym_in] = ACTIONS(4712),
    [sym_inout] = ACTIONS(4712),
    [sym_interface] = ACTIONS(4712),
    [sym_invariant] = ACTIONS(4712),
    [sym_is] = ACTIONS(4712),
    [sym_mixin] = ACTIONS(4712),
    [sym_new] = ACTIONS(4712),
    [sym_nothrow] = ACTIONS(4712),
    [sym_out] = ACTIONS(4712),
    [sym_override] = ACTIONS(4712),
    [sym_package] = ACTIONS(4712),
    [sym_pragma] = ACTIONS(4712),
    [sym_private] = ACTIONS(4712),
    [sym_protected] = ACTIONS(4712),
    [sym_public] = ACTIONS(4712),
    [sym_pure] = ACTIONS(4712),
    [sym_ref] = ACTIONS(4712),
    [sym_return] = ACTIONS(4712),
    [sym_scope] = ACTIONS(4712),
    [sym_shared] = ACTIONS(4712),
    [sym_static] = ACTIONS(4712),
    [sym_struct] = ACTIONS(4712),
    [sym_switch] = ACTIONS(4712),
    [sym_synchronized] = ACTIONS(4712),
    [sym_template] = ACTIONS(4712),
    [sym_throw] = ACTIONS(4712),
    [sym_try] = ACTIONS(4712),
    [sym_typeid] = ACTIONS(4712),
    [sym_typeof] = ACTIONS(4712),
    [sym_union] = ACTIONS(4712),
    [sym_unittest] = ACTIONS(4712),
    [sym_version] = ACTIONS(4712),
    [sym_while] = ACTIONS(4712),
    [sym_with] = ACTIONS(4712),
    [sym_gshared] = ACTIONS(4712),
    [sym_traits] = ACTIONS(4712),
    [sym_vector] = ACTIONS(4712),
    [sym_void] = ACTIONS(4712),
    [anon_sym_BQUOTE] = ACTIONS(4714),
    [anon_sym_r_DQUOTE] = ACTIONS(4714),
    [anon_sym_x_DQUOTE] = ACTIONS(4714),
    [anon_sym_DQUOTE] = ACTIONS(4714),
    [anon_sym_i_BQUOTE] = ACTIONS(4714),
    [anon_sym_i_DQUOTE] = ACTIONS(4714),
    [anon_sym_iq_LBRACE] = ACTIONS(4714),
    [aux_sym_char_literal_token1] = ACTIONS(4714),
    [anon_sym_SQUOTE] = ACTIONS(4712),
    [anon_sym___DATE__] = ACTIONS(4712),
    [anon_sym___FILE__] = ACTIONS(4712),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4712),
    [anon_sym___FUNCTION__] = ACTIONS(4712),
    [anon_sym___LINE__] = ACTIONS(4712),
    [anon_sym___MODULE__] = ACTIONS(4712),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4712),
    [anon_sym___TIME__] = ACTIONS(4712),
    [anon_sym___TIMESTAMP__] = ACTIONS(4712),
    [anon_sym___VENDOR__] = ACTIONS(4712),
    [anon_sym___VERSION__] = ACTIONS(4712),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4714),
    [sym_float_literal] = ACTIONS(4714),
    [sym__string] = ACTIONS(4714),
  },
  [1647] = {
    [sym_identifier] = ACTIONS(4704),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4706),
    [anon_sym_RBRACE] = ACTIONS(4706),
    [anon_sym_LBRACE] = ACTIONS(4706),
    [anon_sym_DOT] = ACTIONS(4706),
    [anon_sym_AMP] = ACTIONS(4706),
    [anon_sym_DASH] = ACTIONS(4704),
    [anon_sym_DASH_DASH] = ACTIONS(4706),
    [anon_sym_PLUS] = ACTIONS(4704),
    [anon_sym_PLUS_PLUS] = ACTIONS(4706),
    [anon_sym_BANG] = ACTIONS(4706),
    [anon_sym_LPAREN] = ACTIONS(4706),
    [anon_sym_RPAREN] = ACTIONS(4706),
    [anon_sym_LBRACK] = ACTIONS(4706),
    [anon_sym_SEMI] = ACTIONS(4706),
    [anon_sym_DOLLAR] = ACTIONS(4706),
    [anon_sym_STAR] = ACTIONS(4706),
    [anon_sym_TILDE] = ACTIONS(4706),
    [anon_sym_AT] = ACTIONS(4706),
    [sym_bool] = ACTIONS(4704),
    [sym_byte] = ACTIONS(4704),
    [sym_ubyte] = ACTIONS(4704),
    [sym_char] = ACTIONS(4704),
    [sym_short] = ACTIONS(4704),
    [sym_ushort] = ACTIONS(4704),
    [sym_int] = ACTIONS(4704),
    [sym_uint] = ACTIONS(4704),
    [sym_long] = ACTIONS(4704),
    [sym_ulong] = ACTIONS(4704),
    [sym_cent] = ACTIONS(4704),
    [sym_ucent] = ACTIONS(4704),
    [sym_wchar] = ACTIONS(4704),
    [sym_dchar] = ACTIONS(4704),
    [sym_float] = ACTIONS(4704),
    [sym_double] = ACTIONS(4704),
    [sym_real] = ACTIONS(4704),
    [sym_ifloat] = ACTIONS(4704),
    [sym_idouble] = ACTIONS(4704),
    [sym_ireal] = ACTIONS(4704),
    [sym_cfloat] = ACTIONS(4704),
    [sym_cdouble] = ACTIONS(4704),
    [sym_creal] = ACTIONS(4704),
    [sym_size_t] = ACTIONS(4704),
    [sym_ptrdiff_t] = ACTIONS(4704),
    [sym_string] = ACTIONS(4704),
    [sym_cstring] = ACTIONS(4704),
    [sym_dstring] = ACTIONS(4704),
    [sym_wstring] = ACTIONS(4704),
    [sym_noreturn] = ACTIONS(4704),
    [sym_true] = ACTIONS(4704),
    [sym_false] = ACTIONS(4704),
    [sym_null] = ACTIONS(4704),
    [sym_super] = ACTIONS(4704),
    [sym_this] = ACTIONS(4704),
    [sym_abstract] = ACTIONS(4704),
    [sym_alias] = ACTIONS(4704),
    [sym_align] = ACTIONS(4704),
    [sym_asm] = ACTIONS(4704),
    [sym_assert] = ACTIONS(4704),
    [sym_auto] = ACTIONS(4704),
    [sym_break] = ACTIONS(4704),
    [sym_case] = ACTIONS(4704),
    [sym_cast] = ACTIONS(4704),
    [sym_class] = ACTIONS(4704),
    [sym_const] = ACTIONS(4704),
    [sym_continue] = ACTIONS(4704),
    [sym_debug] = ACTIONS(4704),
    [sym_default] = ACTIONS(4704),
    [sym_delegate] = ACTIONS(4704),
    [sym_delete] = ACTIONS(4704),
    [sym_deprecated] = ACTIONS(4704),
    [sym_do] = ACTIONS(4704),
    [sym_else] = ACTIONS(4704),
    [sym_enum] = ACTIONS(4704),
    [sym_export] = ACTIONS(4704),
    [sym_extern] = ACTIONS(4704),
    [sym_final] = ACTIONS(4704),
    [sym_for] = ACTIONS(4704),
    [sym_foreach] = ACTIONS(4704),
    [sym_foreach_reverse] = ACTIONS(4704),
    [sym_function] = ACTIONS(4704),
    [sym_goto] = ACTIONS(4704),
    [sym_if] = ACTIONS(4704),
    [sym_immutable] = ACTIONS(4704),
    [sym_import] = ACTIONS(4704),
    [sym_in] = ACTIONS(4704),
    [sym_inout] = ACTIONS(4704),
    [sym_interface] = ACTIONS(4704),
    [sym_invariant] = ACTIONS(4704),
    [sym_is] = ACTIONS(4704),
    [sym_mixin] = ACTIONS(4704),
    [sym_new] = ACTIONS(4704),
    [sym_nothrow] = ACTIONS(4704),
    [sym_out] = ACTIONS(4704),
    [sym_override] = ACTIONS(4704),
    [sym_package] = ACTIONS(4704),
    [sym_pragma] = ACTIONS(4704),
    [sym_private] = ACTIONS(4704),
    [sym_protected] = ACTIONS(4704),
    [sym_public] = ACTIONS(4704),
    [sym_pure] = ACTIONS(4704),
    [sym_ref] = ACTIONS(4704),
    [sym_return] = ACTIONS(4704),
    [sym_scope] = ACTIONS(4704),
    [sym_shared] = ACTIONS(4704),
    [sym_static] = ACTIONS(4704),
    [sym_struct] = ACTIONS(4704),
    [sym_switch] = ACTIONS(4704),
    [sym_synchronized] = ACTIONS(4704),
    [sym_template] = ACTIONS(4704),
    [sym_throw] = ACTIONS(4704),
    [sym_try] = ACTIONS(4704),
    [sym_typeid] = ACTIONS(4704),
    [sym_typeof] = ACTIONS(4704),
    [sym_union] = ACTIONS(4704),
    [sym_unittest] = ACTIONS(4704),
    [sym_version] = ACTIONS(4704),
    [sym_while] = ACTIONS(4704),
    [sym_with] = ACTIONS(4704),
    [sym_gshared] = ACTIONS(4704),
    [sym_traits] = ACTIONS(4704),
    [sym_vector] = ACTIONS(4704),
    [sym_void] = ACTIONS(4704),
    [anon_sym_BQUOTE] = ACTIONS(4706),
    [anon_sym_r_DQUOTE] = ACTIONS(4706),
    [anon_sym_x_DQUOTE] = ACTIONS(4706),
    [anon_sym_DQUOTE] = ACTIONS(4706),
    [anon_sym_i_BQUOTE] = ACTIONS(4706),
    [anon_sym_i_DQUOTE] = ACTIONS(4706),
    [anon_sym_iq_LBRACE] = ACTIONS(4706),
    [aux_sym_char_literal_token1] = ACTIONS(4706),
    [anon_sym_SQUOTE] = ACTIONS(4704),
    [anon_sym___DATE__] = ACTIONS(4704),
    [anon_sym___FILE__] = ACTIONS(4704),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4704),
    [anon_sym___FUNCTION__] = ACTIONS(4704),
    [anon_sym___LINE__] = ACTIONS(4704),
    [anon_sym___MODULE__] = ACTIONS(4704),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4704),
    [anon_sym___TIME__] = ACTIONS(4704),
    [anon_sym___TIMESTAMP__] = ACTIONS(4704),
    [anon_sym___VENDOR__] = ACTIONS(4704),
    [anon_sym___VERSION__] = ACTIONS(4704),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4706),
    [sym_float_literal] = ACTIONS(4706),
    [sym__string] = ACTIONS(4706),
  },
  [1648] = {
    [sym_identifier] = ACTIONS(4562),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4564),
    [anon_sym_RBRACE] = ACTIONS(4564),
    [anon_sym_LBRACE] = ACTIONS(4564),
    [anon_sym_DOT] = ACTIONS(4564),
    [anon_sym_AMP] = ACTIONS(4564),
    [anon_sym_DASH] = ACTIONS(4562),
    [anon_sym_DASH_DASH] = ACTIONS(4564),
    [anon_sym_PLUS] = ACTIONS(4562),
    [anon_sym_PLUS_PLUS] = ACTIONS(4564),
    [anon_sym_BANG] = ACTIONS(4564),
    [anon_sym_LPAREN] = ACTIONS(4564),
    [anon_sym_RPAREN] = ACTIONS(4564),
    [anon_sym_LBRACK] = ACTIONS(4564),
    [anon_sym_SEMI] = ACTIONS(4564),
    [anon_sym_DOLLAR] = ACTIONS(4564),
    [anon_sym_STAR] = ACTIONS(4564),
    [anon_sym_TILDE] = ACTIONS(4564),
    [anon_sym_AT] = ACTIONS(4564),
    [sym_bool] = ACTIONS(4562),
    [sym_byte] = ACTIONS(4562),
    [sym_ubyte] = ACTIONS(4562),
    [sym_char] = ACTIONS(4562),
    [sym_short] = ACTIONS(4562),
    [sym_ushort] = ACTIONS(4562),
    [sym_int] = ACTIONS(4562),
    [sym_uint] = ACTIONS(4562),
    [sym_long] = ACTIONS(4562),
    [sym_ulong] = ACTIONS(4562),
    [sym_cent] = ACTIONS(4562),
    [sym_ucent] = ACTIONS(4562),
    [sym_wchar] = ACTIONS(4562),
    [sym_dchar] = ACTIONS(4562),
    [sym_float] = ACTIONS(4562),
    [sym_double] = ACTIONS(4562),
    [sym_real] = ACTIONS(4562),
    [sym_ifloat] = ACTIONS(4562),
    [sym_idouble] = ACTIONS(4562),
    [sym_ireal] = ACTIONS(4562),
    [sym_cfloat] = ACTIONS(4562),
    [sym_cdouble] = ACTIONS(4562),
    [sym_creal] = ACTIONS(4562),
    [sym_size_t] = ACTIONS(4562),
    [sym_ptrdiff_t] = ACTIONS(4562),
    [sym_string] = ACTIONS(4562),
    [sym_cstring] = ACTIONS(4562),
    [sym_dstring] = ACTIONS(4562),
    [sym_wstring] = ACTIONS(4562),
    [sym_noreturn] = ACTIONS(4562),
    [sym_true] = ACTIONS(4562),
    [sym_false] = ACTIONS(4562),
    [sym_null] = ACTIONS(4562),
    [sym_super] = ACTIONS(4562),
    [sym_this] = ACTIONS(4562),
    [sym_abstract] = ACTIONS(4562),
    [sym_alias] = ACTIONS(4562),
    [sym_align] = ACTIONS(4562),
    [sym_asm] = ACTIONS(4562),
    [sym_assert] = ACTIONS(4562),
    [sym_auto] = ACTIONS(4562),
    [sym_break] = ACTIONS(4562),
    [sym_case] = ACTIONS(4562),
    [sym_cast] = ACTIONS(4562),
    [sym_class] = ACTIONS(4562),
    [sym_const] = ACTIONS(4562),
    [sym_continue] = ACTIONS(4562),
    [sym_debug] = ACTIONS(4562),
    [sym_default] = ACTIONS(4562),
    [sym_delegate] = ACTIONS(4562),
    [sym_delete] = ACTIONS(4562),
    [sym_deprecated] = ACTIONS(4562),
    [sym_do] = ACTIONS(4562),
    [sym_else] = ACTIONS(4562),
    [sym_enum] = ACTIONS(4562),
    [sym_export] = ACTIONS(4562),
    [sym_extern] = ACTIONS(4562),
    [sym_final] = ACTIONS(4562),
    [sym_for] = ACTIONS(4562),
    [sym_foreach] = ACTIONS(4562),
    [sym_foreach_reverse] = ACTIONS(4562),
    [sym_function] = ACTIONS(4562),
    [sym_goto] = ACTIONS(4562),
    [sym_if] = ACTIONS(4562),
    [sym_immutable] = ACTIONS(4562),
    [sym_import] = ACTIONS(4562),
    [sym_in] = ACTIONS(4562),
    [sym_inout] = ACTIONS(4562),
    [sym_interface] = ACTIONS(4562),
    [sym_invariant] = ACTIONS(4562),
    [sym_is] = ACTIONS(4562),
    [sym_mixin] = ACTIONS(4562),
    [sym_new] = ACTIONS(4562),
    [sym_nothrow] = ACTIONS(4562),
    [sym_out] = ACTIONS(4562),
    [sym_override] = ACTIONS(4562),
    [sym_package] = ACTIONS(4562),
    [sym_pragma] = ACTIONS(4562),
    [sym_private] = ACTIONS(4562),
    [sym_protected] = ACTIONS(4562),
    [sym_public] = ACTIONS(4562),
    [sym_pure] = ACTIONS(4562),
    [sym_ref] = ACTIONS(4562),
    [sym_return] = ACTIONS(4562),
    [sym_scope] = ACTIONS(4562),
    [sym_shared] = ACTIONS(4562),
    [sym_static] = ACTIONS(4562),
    [sym_struct] = ACTIONS(4562),
    [sym_switch] = ACTIONS(4562),
    [sym_synchronized] = ACTIONS(4562),
    [sym_template] = ACTIONS(4562),
    [sym_throw] = ACTIONS(4562),
    [sym_try] = ACTIONS(4562),
    [sym_typeid] = ACTIONS(4562),
    [sym_typeof] = ACTIONS(4562),
    [sym_union] = ACTIONS(4562),
    [sym_unittest] = ACTIONS(4562),
    [sym_version] = ACTIONS(4562),
    [sym_while] = ACTIONS(4562),
    [sym_with] = ACTIONS(4562),
    [sym_gshared] = ACTIONS(4562),
    [sym_traits] = ACTIONS(4562),
    [sym_vector] = ACTIONS(4562),
    [sym_void] = ACTIONS(4562),
    [anon_sym_BQUOTE] = ACTIONS(4564),
    [anon_sym_r_DQUOTE] = ACTIONS(4564),
    [anon_sym_x_DQUOTE] = ACTIONS(4564),
    [anon_sym_DQUOTE] = ACTIONS(4564),
    [anon_sym_i_BQUOTE] = ACTIONS(4564),
    [anon_sym_i_DQUOTE] = ACTIONS(4564),
    [anon_sym_iq_LBRACE] = ACTIONS(4564),
    [aux_sym_char_literal_token1] = ACTIONS(4564),
    [anon_sym_SQUOTE] = ACTIONS(4562),
    [anon_sym___DATE__] = ACTIONS(4562),
    [anon_sym___FILE__] = ACTIONS(4562),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4562),
    [anon_sym___FUNCTION__] = ACTIONS(4562),
    [anon_sym___LINE__] = ACTIONS(4562),
    [anon_sym___MODULE__] = ACTIONS(4562),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4562),
    [anon_sym___TIME__] = ACTIONS(4562),
    [anon_sym___TIMESTAMP__] = ACTIONS(4562),
    [anon_sym___VENDOR__] = ACTIONS(4562),
    [anon_sym___VERSION__] = ACTIONS(4562),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4564),
    [sym_float_literal] = ACTIONS(4564),
    [sym__string] = ACTIONS(4564),
  },
  [1649] = {
    [sym_identifier] = ACTIONS(4347),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4349),
    [anon_sym_RBRACE] = ACTIONS(4349),
    [anon_sym_LBRACE] = ACTIONS(4349),
    [anon_sym_DOT] = ACTIONS(4349),
    [anon_sym_AMP] = ACTIONS(4349),
    [anon_sym_DASH] = ACTIONS(4347),
    [anon_sym_DASH_DASH] = ACTIONS(4349),
    [anon_sym_PLUS] = ACTIONS(4347),
    [anon_sym_PLUS_PLUS] = ACTIONS(4349),
    [anon_sym_BANG] = ACTIONS(4349),
    [anon_sym_LPAREN] = ACTIONS(4349),
    [anon_sym_RPAREN] = ACTIONS(4349),
    [anon_sym_LBRACK] = ACTIONS(4349),
    [anon_sym_SEMI] = ACTIONS(4349),
    [anon_sym_DOLLAR] = ACTIONS(4349),
    [anon_sym_STAR] = ACTIONS(4349),
    [anon_sym_TILDE] = ACTIONS(4349),
    [anon_sym_AT] = ACTIONS(4349),
    [sym_bool] = ACTIONS(4347),
    [sym_byte] = ACTIONS(4347),
    [sym_ubyte] = ACTIONS(4347),
    [sym_char] = ACTIONS(4347),
    [sym_short] = ACTIONS(4347),
    [sym_ushort] = ACTIONS(4347),
    [sym_int] = ACTIONS(4347),
    [sym_uint] = ACTIONS(4347),
    [sym_long] = ACTIONS(4347),
    [sym_ulong] = ACTIONS(4347),
    [sym_cent] = ACTIONS(4347),
    [sym_ucent] = ACTIONS(4347),
    [sym_wchar] = ACTIONS(4347),
    [sym_dchar] = ACTIONS(4347),
    [sym_float] = ACTIONS(4347),
    [sym_double] = ACTIONS(4347),
    [sym_real] = ACTIONS(4347),
    [sym_ifloat] = ACTIONS(4347),
    [sym_idouble] = ACTIONS(4347),
    [sym_ireal] = ACTIONS(4347),
    [sym_cfloat] = ACTIONS(4347),
    [sym_cdouble] = ACTIONS(4347),
    [sym_creal] = ACTIONS(4347),
    [sym_size_t] = ACTIONS(4347),
    [sym_ptrdiff_t] = ACTIONS(4347),
    [sym_string] = ACTIONS(4347),
    [sym_cstring] = ACTIONS(4347),
    [sym_dstring] = ACTIONS(4347),
    [sym_wstring] = ACTIONS(4347),
    [sym_noreturn] = ACTIONS(4347),
    [sym_true] = ACTIONS(4347),
    [sym_false] = ACTIONS(4347),
    [sym_null] = ACTIONS(4347),
    [sym_super] = ACTIONS(4347),
    [sym_this] = ACTIONS(4347),
    [sym_abstract] = ACTIONS(4347),
    [sym_alias] = ACTIONS(4347),
    [sym_align] = ACTIONS(4347),
    [sym_asm] = ACTIONS(4347),
    [sym_assert] = ACTIONS(4347),
    [sym_auto] = ACTIONS(4347),
    [sym_break] = ACTIONS(4347),
    [sym_case] = ACTIONS(4347),
    [sym_cast] = ACTIONS(4347),
    [sym_class] = ACTIONS(4347),
    [sym_const] = ACTIONS(4347),
    [sym_continue] = ACTIONS(4347),
    [sym_debug] = ACTIONS(4347),
    [sym_default] = ACTIONS(4347),
    [sym_delegate] = ACTIONS(4347),
    [sym_delete] = ACTIONS(4347),
    [sym_deprecated] = ACTIONS(4347),
    [sym_do] = ACTIONS(4347),
    [sym_else] = ACTIONS(4347),
    [sym_enum] = ACTIONS(4347),
    [sym_export] = ACTIONS(4347),
    [sym_extern] = ACTIONS(4347),
    [sym_final] = ACTIONS(4347),
    [sym_for] = ACTIONS(4347),
    [sym_foreach] = ACTIONS(4347),
    [sym_foreach_reverse] = ACTIONS(4347),
    [sym_function] = ACTIONS(4347),
    [sym_goto] = ACTIONS(4347),
    [sym_if] = ACTIONS(4347),
    [sym_immutable] = ACTIONS(4347),
    [sym_import] = ACTIONS(4347),
    [sym_in] = ACTIONS(4347),
    [sym_inout] = ACTIONS(4347),
    [sym_interface] = ACTIONS(4347),
    [sym_invariant] = ACTIONS(4347),
    [sym_is] = ACTIONS(4347),
    [sym_mixin] = ACTIONS(4347),
    [sym_new] = ACTIONS(4347),
    [sym_nothrow] = ACTIONS(4347),
    [sym_out] = ACTIONS(4347),
    [sym_override] = ACTIONS(4347),
    [sym_package] = ACTIONS(4347),
    [sym_pragma] = ACTIONS(4347),
    [sym_private] = ACTIONS(4347),
    [sym_protected] = ACTIONS(4347),
    [sym_public] = ACTIONS(4347),
    [sym_pure] = ACTIONS(4347),
    [sym_ref] = ACTIONS(4347),
    [sym_return] = ACTIONS(4347),
    [sym_scope] = ACTIONS(4347),
    [sym_shared] = ACTIONS(4347),
    [sym_static] = ACTIONS(4347),
    [sym_struct] = ACTIONS(4347),
    [sym_switch] = ACTIONS(4347),
    [sym_synchronized] = ACTIONS(4347),
    [sym_template] = ACTIONS(4347),
    [sym_throw] = ACTIONS(4347),
    [sym_try] = ACTIONS(4347),
    [sym_typeid] = ACTIONS(4347),
    [sym_typeof] = ACTIONS(4347),
    [sym_union] = ACTIONS(4347),
    [sym_unittest] = ACTIONS(4347),
    [sym_version] = ACTIONS(4347),
    [sym_while] = ACTIONS(4347),
    [sym_with] = ACTIONS(4347),
    [sym_gshared] = ACTIONS(4347),
    [sym_traits] = ACTIONS(4347),
    [sym_vector] = ACTIONS(4347),
    [sym_void] = ACTIONS(4347),
    [anon_sym_BQUOTE] = ACTIONS(4349),
    [anon_sym_r_DQUOTE] = ACTIONS(4349),
    [anon_sym_x_DQUOTE] = ACTIONS(4349),
    [anon_sym_DQUOTE] = ACTIONS(4349),
    [anon_sym_i_BQUOTE] = ACTIONS(4349),
    [anon_sym_i_DQUOTE] = ACTIONS(4349),
    [anon_sym_iq_LBRACE] = ACTIONS(4349),
    [aux_sym_char_literal_token1] = ACTIONS(4349),
    [anon_sym_SQUOTE] = ACTIONS(4347),
    [anon_sym___DATE__] = ACTIONS(4347),
    [anon_sym___FILE__] = ACTIONS(4347),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4347),
    [anon_sym___FUNCTION__] = ACTIONS(4347),
    [anon_sym___LINE__] = ACTIONS(4347),
    [anon_sym___MODULE__] = ACTIONS(4347),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4347),
    [anon_sym___TIME__] = ACTIONS(4347),
    [anon_sym___TIMESTAMP__] = ACTIONS(4347),
    [anon_sym___VENDOR__] = ACTIONS(4347),
    [anon_sym___VERSION__] = ACTIONS(4347),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4349),
    [sym_float_literal] = ACTIONS(4349),
    [sym__string] = ACTIONS(4349),
  },
  [1650] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3104),
    [anon_sym_RBRACE] = ACTIONS(3104),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_AMP] = ACTIONS(3104),
    [anon_sym_DASH] = ACTIONS(3102),
    [anon_sym_DASH_DASH] = ACTIONS(3104),
    [anon_sym_PLUS] = ACTIONS(3102),
    [anon_sym_PLUS_PLUS] = ACTIONS(3104),
    [anon_sym_BANG] = ACTIONS(3104),
    [anon_sym_LPAREN] = ACTIONS(3104),
    [anon_sym_RPAREN] = ACTIONS(3104),
    [anon_sym_LBRACK] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_DOLLAR] = ACTIONS(3104),
    [anon_sym_STAR] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3104),
    [anon_sym_AT] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_true] = ACTIONS(3102),
    [sym_false] = ACTIONS(3102),
    [sym_null] = ACTIONS(3102),
    [sym_super] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_abstract] = ACTIONS(3102),
    [sym_alias] = ACTIONS(3102),
    [sym_align] = ACTIONS(3102),
    [sym_asm] = ACTIONS(3102),
    [sym_assert] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_break] = ACTIONS(3102),
    [sym_case] = ACTIONS(3102),
    [sym_cast] = ACTIONS(3102),
    [sym_class] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_continue] = ACTIONS(3102),
    [sym_debug] = ACTIONS(3102),
    [sym_default] = ACTIONS(3102),
    [sym_delegate] = ACTIONS(3102),
    [sym_delete] = ACTIONS(3102),
    [sym_deprecated] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_enum] = ACTIONS(3102),
    [sym_export] = ACTIONS(3102),
    [sym_extern] = ACTIONS(3102),
    [sym_final] = ACTIONS(3102),
    [sym_for] = ACTIONS(3102),
    [sym_foreach] = ACTIONS(3102),
    [sym_foreach_reverse] = ACTIONS(3102),
    [sym_function] = ACTIONS(3102),
    [sym_goto] = ACTIONS(3102),
    [sym_if] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_interface] = ACTIONS(3102),
    [sym_invariant] = ACTIONS(3102),
    [sym_is] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_new] = ACTIONS(3102),
    [sym_nothrow] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_override] = ACTIONS(3102),
    [sym_package] = ACTIONS(3102),
    [sym_pragma] = ACTIONS(3102),
    [sym_private] = ACTIONS(3102),
    [sym_protected] = ACTIONS(3102),
    [sym_public] = ACTIONS(3102),
    [sym_pure] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_return] = ACTIONS(3102),
    [sym_scope] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_static] = ACTIONS(3102),
    [sym_struct] = ACTIONS(3102),
    [sym_switch] = ACTIONS(3102),
    [sym_synchronized] = ACTIONS(3102),
    [sym_template] = ACTIONS(3102),
    [sym_throw] = ACTIONS(3102),
    [sym_try] = ACTIONS(3102),
    [sym_typeid] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_union] = ACTIONS(3102),
    [sym_unittest] = ACTIONS(3102),
    [sym_version] = ACTIONS(3102),
    [sym_while] = ACTIONS(3102),
    [sym_with] = ACTIONS(3102),
    [sym_gshared] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [anon_sym_BQUOTE] = ACTIONS(3104),
    [anon_sym_r_DQUOTE] = ACTIONS(3104),
    [anon_sym_x_DQUOTE] = ACTIONS(3104),
    [anon_sym_DQUOTE] = ACTIONS(3104),
    [anon_sym_i_BQUOTE] = ACTIONS(3104),
    [anon_sym_i_DQUOTE] = ACTIONS(3104),
    [anon_sym_iq_LBRACE] = ACTIONS(3104),
    [aux_sym_char_literal_token1] = ACTIONS(3104),
    [anon_sym_SQUOTE] = ACTIONS(3102),
    [anon_sym___DATE__] = ACTIONS(3102),
    [anon_sym___FILE__] = ACTIONS(3102),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3102),
    [anon_sym___FUNCTION__] = ACTIONS(3102),
    [anon_sym___LINE__] = ACTIONS(3102),
    [anon_sym___MODULE__] = ACTIONS(3102),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3102),
    [anon_sym___TIME__] = ACTIONS(3102),
    [anon_sym___TIMESTAMP__] = ACTIONS(3102),
    [anon_sym___VENDOR__] = ACTIONS(3102),
    [anon_sym___VERSION__] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3104),
    [sym_float_literal] = ACTIONS(3104),
    [sym__string] = ACTIONS(3104),
  },
  [1651] = {
    [sym_identifier] = ACTIONS(4438),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4440),
    [anon_sym_RBRACE] = ACTIONS(4440),
    [anon_sym_LBRACE] = ACTIONS(4440),
    [anon_sym_DOT] = ACTIONS(4440),
    [anon_sym_AMP] = ACTIONS(4440),
    [anon_sym_DASH] = ACTIONS(4438),
    [anon_sym_DASH_DASH] = ACTIONS(4440),
    [anon_sym_PLUS] = ACTIONS(4438),
    [anon_sym_PLUS_PLUS] = ACTIONS(4440),
    [anon_sym_BANG] = ACTIONS(4440),
    [anon_sym_LPAREN] = ACTIONS(4440),
    [anon_sym_RPAREN] = ACTIONS(4440),
    [anon_sym_LBRACK] = ACTIONS(4440),
    [anon_sym_SEMI] = ACTIONS(4440),
    [anon_sym_DOLLAR] = ACTIONS(4440),
    [anon_sym_STAR] = ACTIONS(4440),
    [anon_sym_TILDE] = ACTIONS(4440),
    [anon_sym_AT] = ACTIONS(4440),
    [sym_bool] = ACTIONS(4438),
    [sym_byte] = ACTIONS(4438),
    [sym_ubyte] = ACTIONS(4438),
    [sym_char] = ACTIONS(4438),
    [sym_short] = ACTIONS(4438),
    [sym_ushort] = ACTIONS(4438),
    [sym_int] = ACTIONS(4438),
    [sym_uint] = ACTIONS(4438),
    [sym_long] = ACTIONS(4438),
    [sym_ulong] = ACTIONS(4438),
    [sym_cent] = ACTIONS(4438),
    [sym_ucent] = ACTIONS(4438),
    [sym_wchar] = ACTIONS(4438),
    [sym_dchar] = ACTIONS(4438),
    [sym_float] = ACTIONS(4438),
    [sym_double] = ACTIONS(4438),
    [sym_real] = ACTIONS(4438),
    [sym_ifloat] = ACTIONS(4438),
    [sym_idouble] = ACTIONS(4438),
    [sym_ireal] = ACTIONS(4438),
    [sym_cfloat] = ACTIONS(4438),
    [sym_cdouble] = ACTIONS(4438),
    [sym_creal] = ACTIONS(4438),
    [sym_size_t] = ACTIONS(4438),
    [sym_ptrdiff_t] = ACTIONS(4438),
    [sym_string] = ACTIONS(4438),
    [sym_cstring] = ACTIONS(4438),
    [sym_dstring] = ACTIONS(4438),
    [sym_wstring] = ACTIONS(4438),
    [sym_noreturn] = ACTIONS(4438),
    [sym_true] = ACTIONS(4438),
    [sym_false] = ACTIONS(4438),
    [sym_null] = ACTIONS(4438),
    [sym_super] = ACTIONS(4438),
    [sym_this] = ACTIONS(4438),
    [sym_abstract] = ACTIONS(4438),
    [sym_alias] = ACTIONS(4438),
    [sym_align] = ACTIONS(4438),
    [sym_asm] = ACTIONS(4438),
    [sym_assert] = ACTIONS(4438),
    [sym_auto] = ACTIONS(4438),
    [sym_break] = ACTIONS(4438),
    [sym_case] = ACTIONS(4438),
    [sym_cast] = ACTIONS(4438),
    [sym_class] = ACTIONS(4438),
    [sym_const] = ACTIONS(4438),
    [sym_continue] = ACTIONS(4438),
    [sym_debug] = ACTIONS(4438),
    [sym_default] = ACTIONS(4438),
    [sym_delegate] = ACTIONS(4438),
    [sym_delete] = ACTIONS(4438),
    [sym_deprecated] = ACTIONS(4438),
    [sym_do] = ACTIONS(4438),
    [sym_else] = ACTIONS(4438),
    [sym_enum] = ACTIONS(4438),
    [sym_export] = ACTIONS(4438),
    [sym_extern] = ACTIONS(4438),
    [sym_final] = ACTIONS(4438),
    [sym_for] = ACTIONS(4438),
    [sym_foreach] = ACTIONS(4438),
    [sym_foreach_reverse] = ACTIONS(4438),
    [sym_function] = ACTIONS(4438),
    [sym_goto] = ACTIONS(4438),
    [sym_if] = ACTIONS(4438),
    [sym_immutable] = ACTIONS(4438),
    [sym_import] = ACTIONS(4438),
    [sym_in] = ACTIONS(4438),
    [sym_inout] = ACTIONS(4438),
    [sym_interface] = ACTIONS(4438),
    [sym_invariant] = ACTIONS(4438),
    [sym_is] = ACTIONS(4438),
    [sym_mixin] = ACTIONS(4438),
    [sym_new] = ACTIONS(4438),
    [sym_nothrow] = ACTIONS(4438),
    [sym_out] = ACTIONS(4438),
    [sym_override] = ACTIONS(4438),
    [sym_package] = ACTIONS(4438),
    [sym_pragma] = ACTIONS(4438),
    [sym_private] = ACTIONS(4438),
    [sym_protected] = ACTIONS(4438),
    [sym_public] = ACTIONS(4438),
    [sym_pure] = ACTIONS(4438),
    [sym_ref] = ACTIONS(4438),
    [sym_return] = ACTIONS(4438),
    [sym_scope] = ACTIONS(4438),
    [sym_shared] = ACTIONS(4438),
    [sym_static] = ACTIONS(4438),
    [sym_struct] = ACTIONS(4438),
    [sym_switch] = ACTIONS(4438),
    [sym_synchronized] = ACTIONS(4438),
    [sym_template] = ACTIONS(4438),
    [sym_throw] = ACTIONS(4438),
    [sym_try] = ACTIONS(4438),
    [sym_typeid] = ACTIONS(4438),
    [sym_typeof] = ACTIONS(4438),
    [sym_union] = ACTIONS(4438),
    [sym_unittest] = ACTIONS(4438),
    [sym_version] = ACTIONS(4438),
    [sym_while] = ACTIONS(4438),
    [sym_with] = ACTIONS(4438),
    [sym_gshared] = ACTIONS(4438),
    [sym_traits] = ACTIONS(4438),
    [sym_vector] = ACTIONS(4438),
    [sym_void] = ACTIONS(4438),
    [anon_sym_BQUOTE] = ACTIONS(4440),
    [anon_sym_r_DQUOTE] = ACTIONS(4440),
    [anon_sym_x_DQUOTE] = ACTIONS(4440),
    [anon_sym_DQUOTE] = ACTIONS(4440),
    [anon_sym_i_BQUOTE] = ACTIONS(4440),
    [anon_sym_i_DQUOTE] = ACTIONS(4440),
    [anon_sym_iq_LBRACE] = ACTIONS(4440),
    [aux_sym_char_literal_token1] = ACTIONS(4440),
    [anon_sym_SQUOTE] = ACTIONS(4438),
    [anon_sym___DATE__] = ACTIONS(4438),
    [anon_sym___FILE__] = ACTIONS(4438),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4438),
    [anon_sym___FUNCTION__] = ACTIONS(4438),
    [anon_sym___LINE__] = ACTIONS(4438),
    [anon_sym___MODULE__] = ACTIONS(4438),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4438),
    [anon_sym___TIME__] = ACTIONS(4438),
    [anon_sym___TIMESTAMP__] = ACTIONS(4438),
    [anon_sym___VENDOR__] = ACTIONS(4438),
    [anon_sym___VERSION__] = ACTIONS(4438),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4440),
    [sym_float_literal] = ACTIONS(4440),
    [sym__string] = ACTIONS(4440),
  },
  [1652] = {
    [sym_identifier] = ACTIONS(4686),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4688),
    [anon_sym_RBRACE] = ACTIONS(4688),
    [anon_sym_LBRACE] = ACTIONS(4688),
    [anon_sym_DOT] = ACTIONS(4688),
    [anon_sym_AMP] = ACTIONS(4688),
    [anon_sym_DASH] = ACTIONS(4686),
    [anon_sym_DASH_DASH] = ACTIONS(4688),
    [anon_sym_PLUS] = ACTIONS(4686),
    [anon_sym_PLUS_PLUS] = ACTIONS(4688),
    [anon_sym_BANG] = ACTIONS(4688),
    [anon_sym_LPAREN] = ACTIONS(4688),
    [anon_sym_RPAREN] = ACTIONS(4688),
    [anon_sym_LBRACK] = ACTIONS(4688),
    [anon_sym_SEMI] = ACTIONS(4688),
    [anon_sym_DOLLAR] = ACTIONS(4688),
    [anon_sym_STAR] = ACTIONS(4688),
    [anon_sym_TILDE] = ACTIONS(4688),
    [anon_sym_AT] = ACTIONS(4688),
    [sym_bool] = ACTIONS(4686),
    [sym_byte] = ACTIONS(4686),
    [sym_ubyte] = ACTIONS(4686),
    [sym_char] = ACTIONS(4686),
    [sym_short] = ACTIONS(4686),
    [sym_ushort] = ACTIONS(4686),
    [sym_int] = ACTIONS(4686),
    [sym_uint] = ACTIONS(4686),
    [sym_long] = ACTIONS(4686),
    [sym_ulong] = ACTIONS(4686),
    [sym_cent] = ACTIONS(4686),
    [sym_ucent] = ACTIONS(4686),
    [sym_wchar] = ACTIONS(4686),
    [sym_dchar] = ACTIONS(4686),
    [sym_float] = ACTIONS(4686),
    [sym_double] = ACTIONS(4686),
    [sym_real] = ACTIONS(4686),
    [sym_ifloat] = ACTIONS(4686),
    [sym_idouble] = ACTIONS(4686),
    [sym_ireal] = ACTIONS(4686),
    [sym_cfloat] = ACTIONS(4686),
    [sym_cdouble] = ACTIONS(4686),
    [sym_creal] = ACTIONS(4686),
    [sym_size_t] = ACTIONS(4686),
    [sym_ptrdiff_t] = ACTIONS(4686),
    [sym_string] = ACTIONS(4686),
    [sym_cstring] = ACTIONS(4686),
    [sym_dstring] = ACTIONS(4686),
    [sym_wstring] = ACTIONS(4686),
    [sym_noreturn] = ACTIONS(4686),
    [sym_true] = ACTIONS(4686),
    [sym_false] = ACTIONS(4686),
    [sym_null] = ACTIONS(4686),
    [sym_super] = ACTIONS(4686),
    [sym_this] = ACTIONS(4686),
    [sym_abstract] = ACTIONS(4686),
    [sym_alias] = ACTIONS(4686),
    [sym_align] = ACTIONS(4686),
    [sym_asm] = ACTIONS(4686),
    [sym_assert] = ACTIONS(4686),
    [sym_auto] = ACTIONS(4686),
    [sym_break] = ACTIONS(4686),
    [sym_case] = ACTIONS(4686),
    [sym_cast] = ACTIONS(4686),
    [sym_class] = ACTIONS(4686),
    [sym_const] = ACTIONS(4686),
    [sym_continue] = ACTIONS(4686),
    [sym_debug] = ACTIONS(4686),
    [sym_default] = ACTIONS(4686),
    [sym_delegate] = ACTIONS(4686),
    [sym_delete] = ACTIONS(4686),
    [sym_deprecated] = ACTIONS(4686),
    [sym_do] = ACTIONS(4686),
    [sym_else] = ACTIONS(4686),
    [sym_enum] = ACTIONS(4686),
    [sym_export] = ACTIONS(4686),
    [sym_extern] = ACTIONS(4686),
    [sym_final] = ACTIONS(4686),
    [sym_for] = ACTIONS(4686),
    [sym_foreach] = ACTIONS(4686),
    [sym_foreach_reverse] = ACTIONS(4686),
    [sym_function] = ACTIONS(4686),
    [sym_goto] = ACTIONS(4686),
    [sym_if] = ACTIONS(4686),
    [sym_immutable] = ACTIONS(4686),
    [sym_import] = ACTIONS(4686),
    [sym_in] = ACTIONS(4686),
    [sym_inout] = ACTIONS(4686),
    [sym_interface] = ACTIONS(4686),
    [sym_invariant] = ACTIONS(4686),
    [sym_is] = ACTIONS(4686),
    [sym_mixin] = ACTIONS(4686),
    [sym_new] = ACTIONS(4686),
    [sym_nothrow] = ACTIONS(4686),
    [sym_out] = ACTIONS(4686),
    [sym_override] = ACTIONS(4686),
    [sym_package] = ACTIONS(4686),
    [sym_pragma] = ACTIONS(4686),
    [sym_private] = ACTIONS(4686),
    [sym_protected] = ACTIONS(4686),
    [sym_public] = ACTIONS(4686),
    [sym_pure] = ACTIONS(4686),
    [sym_ref] = ACTIONS(4686),
    [sym_return] = ACTIONS(4686),
    [sym_scope] = ACTIONS(4686),
    [sym_shared] = ACTIONS(4686),
    [sym_static] = ACTIONS(4686),
    [sym_struct] = ACTIONS(4686),
    [sym_switch] = ACTIONS(4686),
    [sym_synchronized] = ACTIONS(4686),
    [sym_template] = ACTIONS(4686),
    [sym_throw] = ACTIONS(4686),
    [sym_try] = ACTIONS(4686),
    [sym_typeid] = ACTIONS(4686),
    [sym_typeof] = ACTIONS(4686),
    [sym_union] = ACTIONS(4686),
    [sym_unittest] = ACTIONS(4686),
    [sym_version] = ACTIONS(4686),
    [sym_while] = ACTIONS(4686),
    [sym_with] = ACTIONS(4686),
    [sym_gshared] = ACTIONS(4686),
    [sym_traits] = ACTIONS(4686),
    [sym_vector] = ACTIONS(4686),
    [sym_void] = ACTIONS(4686),
    [anon_sym_BQUOTE] = ACTIONS(4688),
    [anon_sym_r_DQUOTE] = ACTIONS(4688),
    [anon_sym_x_DQUOTE] = ACTIONS(4688),
    [anon_sym_DQUOTE] = ACTIONS(4688),
    [anon_sym_i_BQUOTE] = ACTIONS(4688),
    [anon_sym_i_DQUOTE] = ACTIONS(4688),
    [anon_sym_iq_LBRACE] = ACTIONS(4688),
    [aux_sym_char_literal_token1] = ACTIONS(4688),
    [anon_sym_SQUOTE] = ACTIONS(4686),
    [anon_sym___DATE__] = ACTIONS(4686),
    [anon_sym___FILE__] = ACTIONS(4686),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4686),
    [anon_sym___FUNCTION__] = ACTIONS(4686),
    [anon_sym___LINE__] = ACTIONS(4686),
    [anon_sym___MODULE__] = ACTIONS(4686),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4686),
    [anon_sym___TIME__] = ACTIONS(4686),
    [anon_sym___TIMESTAMP__] = ACTIONS(4686),
    [anon_sym___VENDOR__] = ACTIONS(4686),
    [anon_sym___VERSION__] = ACTIONS(4686),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4688),
    [sym_float_literal] = ACTIONS(4688),
    [sym__string] = ACTIONS(4688),
  },
  [1653] = {
    [sym_identifier] = ACTIONS(4682),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4684),
    [anon_sym_RBRACE] = ACTIONS(4684),
    [anon_sym_LBRACE] = ACTIONS(4684),
    [anon_sym_DOT] = ACTIONS(4684),
    [anon_sym_AMP] = ACTIONS(4684),
    [anon_sym_DASH] = ACTIONS(4682),
    [anon_sym_DASH_DASH] = ACTIONS(4684),
    [anon_sym_PLUS] = ACTIONS(4682),
    [anon_sym_PLUS_PLUS] = ACTIONS(4684),
    [anon_sym_BANG] = ACTIONS(4684),
    [anon_sym_LPAREN] = ACTIONS(4684),
    [anon_sym_RPAREN] = ACTIONS(4684),
    [anon_sym_LBRACK] = ACTIONS(4684),
    [anon_sym_SEMI] = ACTIONS(4684),
    [anon_sym_DOLLAR] = ACTIONS(4684),
    [anon_sym_STAR] = ACTIONS(4684),
    [anon_sym_TILDE] = ACTIONS(4684),
    [anon_sym_AT] = ACTIONS(4684),
    [sym_bool] = ACTIONS(4682),
    [sym_byte] = ACTIONS(4682),
    [sym_ubyte] = ACTIONS(4682),
    [sym_char] = ACTIONS(4682),
    [sym_short] = ACTIONS(4682),
    [sym_ushort] = ACTIONS(4682),
    [sym_int] = ACTIONS(4682),
    [sym_uint] = ACTIONS(4682),
    [sym_long] = ACTIONS(4682),
    [sym_ulong] = ACTIONS(4682),
    [sym_cent] = ACTIONS(4682),
    [sym_ucent] = ACTIONS(4682),
    [sym_wchar] = ACTIONS(4682),
    [sym_dchar] = ACTIONS(4682),
    [sym_float] = ACTIONS(4682),
    [sym_double] = ACTIONS(4682),
    [sym_real] = ACTIONS(4682),
    [sym_ifloat] = ACTIONS(4682),
    [sym_idouble] = ACTIONS(4682),
    [sym_ireal] = ACTIONS(4682),
    [sym_cfloat] = ACTIONS(4682),
    [sym_cdouble] = ACTIONS(4682),
    [sym_creal] = ACTIONS(4682),
    [sym_size_t] = ACTIONS(4682),
    [sym_ptrdiff_t] = ACTIONS(4682),
    [sym_string] = ACTIONS(4682),
    [sym_cstring] = ACTIONS(4682),
    [sym_dstring] = ACTIONS(4682),
    [sym_wstring] = ACTIONS(4682),
    [sym_noreturn] = ACTIONS(4682),
    [sym_true] = ACTIONS(4682),
    [sym_false] = ACTIONS(4682),
    [sym_null] = ACTIONS(4682),
    [sym_super] = ACTIONS(4682),
    [sym_this] = ACTIONS(4682),
    [sym_abstract] = ACTIONS(4682),
    [sym_alias] = ACTIONS(4682),
    [sym_align] = ACTIONS(4682),
    [sym_asm] = ACTIONS(4682),
    [sym_assert] = ACTIONS(4682),
    [sym_auto] = ACTIONS(4682),
    [sym_break] = ACTIONS(4682),
    [sym_case] = ACTIONS(4682),
    [sym_cast] = ACTIONS(4682),
    [sym_class] = ACTIONS(4682),
    [sym_const] = ACTIONS(4682),
    [sym_continue] = ACTIONS(4682),
    [sym_debug] = ACTIONS(4682),
    [sym_default] = ACTIONS(4682),
    [sym_delegate] = ACTIONS(4682),
    [sym_delete] = ACTIONS(4682),
    [sym_deprecated] = ACTIONS(4682),
    [sym_do] = ACTIONS(4682),
    [sym_else] = ACTIONS(4682),
    [sym_enum] = ACTIONS(4682),
    [sym_export] = ACTIONS(4682),
    [sym_extern] = ACTIONS(4682),
    [sym_final] = ACTIONS(4682),
    [sym_for] = ACTIONS(4682),
    [sym_foreach] = ACTIONS(4682),
    [sym_foreach_reverse] = ACTIONS(4682),
    [sym_function] = ACTIONS(4682),
    [sym_goto] = ACTIONS(4682),
    [sym_if] = ACTIONS(4682),
    [sym_immutable] = ACTIONS(4682),
    [sym_import] = ACTIONS(4682),
    [sym_in] = ACTIONS(4682),
    [sym_inout] = ACTIONS(4682),
    [sym_interface] = ACTIONS(4682),
    [sym_invariant] = ACTIONS(4682),
    [sym_is] = ACTIONS(4682),
    [sym_mixin] = ACTIONS(4682),
    [sym_new] = ACTIONS(4682),
    [sym_nothrow] = ACTIONS(4682),
    [sym_out] = ACTIONS(4682),
    [sym_override] = ACTIONS(4682),
    [sym_package] = ACTIONS(4682),
    [sym_pragma] = ACTIONS(4682),
    [sym_private] = ACTIONS(4682),
    [sym_protected] = ACTIONS(4682),
    [sym_public] = ACTIONS(4682),
    [sym_pure] = ACTIONS(4682),
    [sym_ref] = ACTIONS(4682),
    [sym_return] = ACTIONS(4682),
    [sym_scope] = ACTIONS(4682),
    [sym_shared] = ACTIONS(4682),
    [sym_static] = ACTIONS(4682),
    [sym_struct] = ACTIONS(4682),
    [sym_switch] = ACTIONS(4682),
    [sym_synchronized] = ACTIONS(4682),
    [sym_template] = ACTIONS(4682),
    [sym_throw] = ACTIONS(4682),
    [sym_try] = ACTIONS(4682),
    [sym_typeid] = ACTIONS(4682),
    [sym_typeof] = ACTIONS(4682),
    [sym_union] = ACTIONS(4682),
    [sym_unittest] = ACTIONS(4682),
    [sym_version] = ACTIONS(4682),
    [sym_while] = ACTIONS(4682),
    [sym_with] = ACTIONS(4682),
    [sym_gshared] = ACTIONS(4682),
    [sym_traits] = ACTIONS(4682),
    [sym_vector] = ACTIONS(4682),
    [sym_void] = ACTIONS(4682),
    [anon_sym_BQUOTE] = ACTIONS(4684),
    [anon_sym_r_DQUOTE] = ACTIONS(4684),
    [anon_sym_x_DQUOTE] = ACTIONS(4684),
    [anon_sym_DQUOTE] = ACTIONS(4684),
    [anon_sym_i_BQUOTE] = ACTIONS(4684),
    [anon_sym_i_DQUOTE] = ACTIONS(4684),
    [anon_sym_iq_LBRACE] = ACTIONS(4684),
    [aux_sym_char_literal_token1] = ACTIONS(4684),
    [anon_sym_SQUOTE] = ACTIONS(4682),
    [anon_sym___DATE__] = ACTIONS(4682),
    [anon_sym___FILE__] = ACTIONS(4682),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4682),
    [anon_sym___FUNCTION__] = ACTIONS(4682),
    [anon_sym___LINE__] = ACTIONS(4682),
    [anon_sym___MODULE__] = ACTIONS(4682),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4682),
    [anon_sym___TIME__] = ACTIONS(4682),
    [anon_sym___TIMESTAMP__] = ACTIONS(4682),
    [anon_sym___VENDOR__] = ACTIONS(4682),
    [anon_sym___VERSION__] = ACTIONS(4682),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4684),
    [sym_float_literal] = ACTIONS(4684),
    [sym__string] = ACTIONS(4684),
  },
  [1654] = {
    [sym_identifier] = ACTIONS(4674),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4676),
    [anon_sym_RBRACE] = ACTIONS(4676),
    [anon_sym_LBRACE] = ACTIONS(4676),
    [anon_sym_DOT] = ACTIONS(4676),
    [anon_sym_AMP] = ACTIONS(4676),
    [anon_sym_DASH] = ACTIONS(4674),
    [anon_sym_DASH_DASH] = ACTIONS(4676),
    [anon_sym_PLUS] = ACTIONS(4674),
    [anon_sym_PLUS_PLUS] = ACTIONS(4676),
    [anon_sym_BANG] = ACTIONS(4676),
    [anon_sym_LPAREN] = ACTIONS(4676),
    [anon_sym_RPAREN] = ACTIONS(4676),
    [anon_sym_LBRACK] = ACTIONS(4676),
    [anon_sym_SEMI] = ACTIONS(4676),
    [anon_sym_DOLLAR] = ACTIONS(4676),
    [anon_sym_STAR] = ACTIONS(4676),
    [anon_sym_TILDE] = ACTIONS(4676),
    [anon_sym_AT] = ACTIONS(4676),
    [sym_bool] = ACTIONS(4674),
    [sym_byte] = ACTIONS(4674),
    [sym_ubyte] = ACTIONS(4674),
    [sym_char] = ACTIONS(4674),
    [sym_short] = ACTIONS(4674),
    [sym_ushort] = ACTIONS(4674),
    [sym_int] = ACTIONS(4674),
    [sym_uint] = ACTIONS(4674),
    [sym_long] = ACTIONS(4674),
    [sym_ulong] = ACTIONS(4674),
    [sym_cent] = ACTIONS(4674),
    [sym_ucent] = ACTIONS(4674),
    [sym_wchar] = ACTIONS(4674),
    [sym_dchar] = ACTIONS(4674),
    [sym_float] = ACTIONS(4674),
    [sym_double] = ACTIONS(4674),
    [sym_real] = ACTIONS(4674),
    [sym_ifloat] = ACTIONS(4674),
    [sym_idouble] = ACTIONS(4674),
    [sym_ireal] = ACTIONS(4674),
    [sym_cfloat] = ACTIONS(4674),
    [sym_cdouble] = ACTIONS(4674),
    [sym_creal] = ACTIONS(4674),
    [sym_size_t] = ACTIONS(4674),
    [sym_ptrdiff_t] = ACTIONS(4674),
    [sym_string] = ACTIONS(4674),
    [sym_cstring] = ACTIONS(4674),
    [sym_dstring] = ACTIONS(4674),
    [sym_wstring] = ACTIONS(4674),
    [sym_noreturn] = ACTIONS(4674),
    [sym_true] = ACTIONS(4674),
    [sym_false] = ACTIONS(4674),
    [sym_null] = ACTIONS(4674),
    [sym_super] = ACTIONS(4674),
    [sym_this] = ACTIONS(4674),
    [sym_abstract] = ACTIONS(4674),
    [sym_alias] = ACTIONS(4674),
    [sym_align] = ACTIONS(4674),
    [sym_asm] = ACTIONS(4674),
    [sym_assert] = ACTIONS(4674),
    [sym_auto] = ACTIONS(4674),
    [sym_break] = ACTIONS(4674),
    [sym_case] = ACTIONS(4674),
    [sym_cast] = ACTIONS(4674),
    [sym_class] = ACTIONS(4674),
    [sym_const] = ACTIONS(4674),
    [sym_continue] = ACTIONS(4674),
    [sym_debug] = ACTIONS(4674),
    [sym_default] = ACTIONS(4674),
    [sym_delegate] = ACTIONS(4674),
    [sym_delete] = ACTIONS(4674),
    [sym_deprecated] = ACTIONS(4674),
    [sym_do] = ACTIONS(4674),
    [sym_else] = ACTIONS(4674),
    [sym_enum] = ACTIONS(4674),
    [sym_export] = ACTIONS(4674),
    [sym_extern] = ACTIONS(4674),
    [sym_final] = ACTIONS(4674),
    [sym_for] = ACTIONS(4674),
    [sym_foreach] = ACTIONS(4674),
    [sym_foreach_reverse] = ACTIONS(4674),
    [sym_function] = ACTIONS(4674),
    [sym_goto] = ACTIONS(4674),
    [sym_if] = ACTIONS(4674),
    [sym_immutable] = ACTIONS(4674),
    [sym_import] = ACTIONS(4674),
    [sym_in] = ACTIONS(4674),
    [sym_inout] = ACTIONS(4674),
    [sym_interface] = ACTIONS(4674),
    [sym_invariant] = ACTIONS(4674),
    [sym_is] = ACTIONS(4674),
    [sym_mixin] = ACTIONS(4674),
    [sym_new] = ACTIONS(4674),
    [sym_nothrow] = ACTIONS(4674),
    [sym_out] = ACTIONS(4674),
    [sym_override] = ACTIONS(4674),
    [sym_package] = ACTIONS(4674),
    [sym_pragma] = ACTIONS(4674),
    [sym_private] = ACTIONS(4674),
    [sym_protected] = ACTIONS(4674),
    [sym_public] = ACTIONS(4674),
    [sym_pure] = ACTIONS(4674),
    [sym_ref] = ACTIONS(4674),
    [sym_return] = ACTIONS(4674),
    [sym_scope] = ACTIONS(4674),
    [sym_shared] = ACTIONS(4674),
    [sym_static] = ACTIONS(4674),
    [sym_struct] = ACTIONS(4674),
    [sym_switch] = ACTIONS(4674),
    [sym_synchronized] = ACTIONS(4674),
    [sym_template] = ACTIONS(4674),
    [sym_throw] = ACTIONS(4674),
    [sym_try] = ACTIONS(4674),
    [sym_typeid] = ACTIONS(4674),
    [sym_typeof] = ACTIONS(4674),
    [sym_union] = ACTIONS(4674),
    [sym_unittest] = ACTIONS(4674),
    [sym_version] = ACTIONS(4674),
    [sym_while] = ACTIONS(4674),
    [sym_with] = ACTIONS(4674),
    [sym_gshared] = ACTIONS(4674),
    [sym_traits] = ACTIONS(4674),
    [sym_vector] = ACTIONS(4674),
    [sym_void] = ACTIONS(4674),
    [anon_sym_BQUOTE] = ACTIONS(4676),
    [anon_sym_r_DQUOTE] = ACTIONS(4676),
    [anon_sym_x_DQUOTE] = ACTIONS(4676),
    [anon_sym_DQUOTE] = ACTIONS(4676),
    [anon_sym_i_BQUOTE] = ACTIONS(4676),
    [anon_sym_i_DQUOTE] = ACTIONS(4676),
    [anon_sym_iq_LBRACE] = ACTIONS(4676),
    [aux_sym_char_literal_token1] = ACTIONS(4676),
    [anon_sym_SQUOTE] = ACTIONS(4674),
    [anon_sym___DATE__] = ACTIONS(4674),
    [anon_sym___FILE__] = ACTIONS(4674),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4674),
    [anon_sym___FUNCTION__] = ACTIONS(4674),
    [anon_sym___LINE__] = ACTIONS(4674),
    [anon_sym___MODULE__] = ACTIONS(4674),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4674),
    [anon_sym___TIME__] = ACTIONS(4674),
    [anon_sym___TIMESTAMP__] = ACTIONS(4674),
    [anon_sym___VENDOR__] = ACTIONS(4674),
    [anon_sym___VERSION__] = ACTIONS(4674),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4676),
    [sym_float_literal] = ACTIONS(4676),
    [sym__string] = ACTIONS(4676),
  },
  [1655] = {
    [sym_identifier] = ACTIONS(4908),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4910),
    [anon_sym_RBRACE] = ACTIONS(4910),
    [anon_sym_LBRACE] = ACTIONS(4910),
    [anon_sym_DOT] = ACTIONS(4910),
    [anon_sym_AMP] = ACTIONS(4910),
    [anon_sym_DASH] = ACTIONS(4908),
    [anon_sym_DASH_DASH] = ACTIONS(4910),
    [anon_sym_PLUS] = ACTIONS(4908),
    [anon_sym_PLUS_PLUS] = ACTIONS(4910),
    [anon_sym_BANG] = ACTIONS(4910),
    [anon_sym_LPAREN] = ACTIONS(4910),
    [anon_sym_RPAREN] = ACTIONS(4910),
    [anon_sym_LBRACK] = ACTIONS(4910),
    [anon_sym_SEMI] = ACTIONS(4910),
    [anon_sym_DOLLAR] = ACTIONS(4910),
    [anon_sym_STAR] = ACTIONS(4910),
    [anon_sym_TILDE] = ACTIONS(4910),
    [anon_sym_AT] = ACTIONS(4910),
    [sym_bool] = ACTIONS(4908),
    [sym_byte] = ACTIONS(4908),
    [sym_ubyte] = ACTIONS(4908),
    [sym_char] = ACTIONS(4908),
    [sym_short] = ACTIONS(4908),
    [sym_ushort] = ACTIONS(4908),
    [sym_int] = ACTIONS(4908),
    [sym_uint] = ACTIONS(4908),
    [sym_long] = ACTIONS(4908),
    [sym_ulong] = ACTIONS(4908),
    [sym_cent] = ACTIONS(4908),
    [sym_ucent] = ACTIONS(4908),
    [sym_wchar] = ACTIONS(4908),
    [sym_dchar] = ACTIONS(4908),
    [sym_float] = ACTIONS(4908),
    [sym_double] = ACTIONS(4908),
    [sym_real] = ACTIONS(4908),
    [sym_ifloat] = ACTIONS(4908),
    [sym_idouble] = ACTIONS(4908),
    [sym_ireal] = ACTIONS(4908),
    [sym_cfloat] = ACTIONS(4908),
    [sym_cdouble] = ACTIONS(4908),
    [sym_creal] = ACTIONS(4908),
    [sym_size_t] = ACTIONS(4908),
    [sym_ptrdiff_t] = ACTIONS(4908),
    [sym_string] = ACTIONS(4908),
    [sym_cstring] = ACTIONS(4908),
    [sym_dstring] = ACTIONS(4908),
    [sym_wstring] = ACTIONS(4908),
    [sym_noreturn] = ACTIONS(4908),
    [sym_true] = ACTIONS(4908),
    [sym_false] = ACTIONS(4908),
    [sym_null] = ACTIONS(4908),
    [sym_super] = ACTIONS(4908),
    [sym_this] = ACTIONS(4908),
    [sym_abstract] = ACTIONS(4908),
    [sym_alias] = ACTIONS(4908),
    [sym_align] = ACTIONS(4908),
    [sym_asm] = ACTIONS(4908),
    [sym_assert] = ACTIONS(4908),
    [sym_auto] = ACTIONS(4908),
    [sym_break] = ACTIONS(4908),
    [sym_case] = ACTIONS(4908),
    [sym_cast] = ACTIONS(4908),
    [sym_class] = ACTIONS(4908),
    [sym_const] = ACTIONS(4908),
    [sym_continue] = ACTIONS(4908),
    [sym_debug] = ACTIONS(4908),
    [sym_default] = ACTIONS(4908),
    [sym_delegate] = ACTIONS(4908),
    [sym_delete] = ACTIONS(4908),
    [sym_deprecated] = ACTIONS(4908),
    [sym_do] = ACTIONS(4908),
    [sym_else] = ACTIONS(4908),
    [sym_enum] = ACTIONS(4908),
    [sym_export] = ACTIONS(4908),
    [sym_extern] = ACTIONS(4908),
    [sym_final] = ACTIONS(4908),
    [sym_for] = ACTIONS(4908),
    [sym_foreach] = ACTIONS(4908),
    [sym_foreach_reverse] = ACTIONS(4908),
    [sym_function] = ACTIONS(4908),
    [sym_goto] = ACTIONS(4908),
    [sym_if] = ACTIONS(4908),
    [sym_immutable] = ACTIONS(4908),
    [sym_import] = ACTIONS(4908),
    [sym_in] = ACTIONS(4908),
    [sym_inout] = ACTIONS(4908),
    [sym_interface] = ACTIONS(4908),
    [sym_invariant] = ACTIONS(4908),
    [sym_is] = ACTIONS(4908),
    [sym_mixin] = ACTIONS(4908),
    [sym_new] = ACTIONS(4908),
    [sym_nothrow] = ACTIONS(4908),
    [sym_out] = ACTIONS(4908),
    [sym_override] = ACTIONS(4908),
    [sym_package] = ACTIONS(4908),
    [sym_pragma] = ACTIONS(4908),
    [sym_private] = ACTIONS(4908),
    [sym_protected] = ACTIONS(4908),
    [sym_public] = ACTIONS(4908),
    [sym_pure] = ACTIONS(4908),
    [sym_ref] = ACTIONS(4908),
    [sym_return] = ACTIONS(4908),
    [sym_scope] = ACTIONS(4908),
    [sym_shared] = ACTIONS(4908),
    [sym_static] = ACTIONS(4908),
    [sym_struct] = ACTIONS(4908),
    [sym_switch] = ACTIONS(4908),
    [sym_synchronized] = ACTIONS(4908),
    [sym_template] = ACTIONS(4908),
    [sym_throw] = ACTIONS(4908),
    [sym_try] = ACTIONS(4908),
    [sym_typeid] = ACTIONS(4908),
    [sym_typeof] = ACTIONS(4908),
    [sym_union] = ACTIONS(4908),
    [sym_unittest] = ACTIONS(4908),
    [sym_version] = ACTIONS(4908),
    [sym_while] = ACTIONS(4908),
    [sym_with] = ACTIONS(4908),
    [sym_gshared] = ACTIONS(4908),
    [sym_traits] = ACTIONS(4908),
    [sym_vector] = ACTIONS(4908),
    [sym_void] = ACTIONS(4908),
    [anon_sym_BQUOTE] = ACTIONS(4910),
    [anon_sym_r_DQUOTE] = ACTIONS(4910),
    [anon_sym_x_DQUOTE] = ACTIONS(4910),
    [anon_sym_DQUOTE] = ACTIONS(4910),
    [anon_sym_i_BQUOTE] = ACTIONS(4910),
    [anon_sym_i_DQUOTE] = ACTIONS(4910),
    [anon_sym_iq_LBRACE] = ACTIONS(4910),
    [aux_sym_char_literal_token1] = ACTIONS(4910),
    [anon_sym_SQUOTE] = ACTIONS(4908),
    [anon_sym___DATE__] = ACTIONS(4908),
    [anon_sym___FILE__] = ACTIONS(4908),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4908),
    [anon_sym___FUNCTION__] = ACTIONS(4908),
    [anon_sym___LINE__] = ACTIONS(4908),
    [anon_sym___MODULE__] = ACTIONS(4908),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4908),
    [anon_sym___TIME__] = ACTIONS(4908),
    [anon_sym___TIMESTAMP__] = ACTIONS(4908),
    [anon_sym___VENDOR__] = ACTIONS(4908),
    [anon_sym___VERSION__] = ACTIONS(4908),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4910),
    [sym_float_literal] = ACTIONS(4910),
    [sym__string] = ACTIONS(4910),
  },
  [1656] = {
    [sym_identifier] = ACTIONS(4670),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4672),
    [anon_sym_RBRACE] = ACTIONS(4672),
    [anon_sym_LBRACE] = ACTIONS(4672),
    [anon_sym_DOT] = ACTIONS(4672),
    [anon_sym_AMP] = ACTIONS(4672),
    [anon_sym_DASH] = ACTIONS(4670),
    [anon_sym_DASH_DASH] = ACTIONS(4672),
    [anon_sym_PLUS] = ACTIONS(4670),
    [anon_sym_PLUS_PLUS] = ACTIONS(4672),
    [anon_sym_BANG] = ACTIONS(4672),
    [anon_sym_LPAREN] = ACTIONS(4672),
    [anon_sym_RPAREN] = ACTIONS(4672),
    [anon_sym_LBRACK] = ACTIONS(4672),
    [anon_sym_SEMI] = ACTIONS(4672),
    [anon_sym_DOLLAR] = ACTIONS(4672),
    [anon_sym_STAR] = ACTIONS(4672),
    [anon_sym_TILDE] = ACTIONS(4672),
    [anon_sym_AT] = ACTIONS(4672),
    [sym_bool] = ACTIONS(4670),
    [sym_byte] = ACTIONS(4670),
    [sym_ubyte] = ACTIONS(4670),
    [sym_char] = ACTIONS(4670),
    [sym_short] = ACTIONS(4670),
    [sym_ushort] = ACTIONS(4670),
    [sym_int] = ACTIONS(4670),
    [sym_uint] = ACTIONS(4670),
    [sym_long] = ACTIONS(4670),
    [sym_ulong] = ACTIONS(4670),
    [sym_cent] = ACTIONS(4670),
    [sym_ucent] = ACTIONS(4670),
    [sym_wchar] = ACTIONS(4670),
    [sym_dchar] = ACTIONS(4670),
    [sym_float] = ACTIONS(4670),
    [sym_double] = ACTIONS(4670),
    [sym_real] = ACTIONS(4670),
    [sym_ifloat] = ACTIONS(4670),
    [sym_idouble] = ACTIONS(4670),
    [sym_ireal] = ACTIONS(4670),
    [sym_cfloat] = ACTIONS(4670),
    [sym_cdouble] = ACTIONS(4670),
    [sym_creal] = ACTIONS(4670),
    [sym_size_t] = ACTIONS(4670),
    [sym_ptrdiff_t] = ACTIONS(4670),
    [sym_string] = ACTIONS(4670),
    [sym_cstring] = ACTIONS(4670),
    [sym_dstring] = ACTIONS(4670),
    [sym_wstring] = ACTIONS(4670),
    [sym_noreturn] = ACTIONS(4670),
    [sym_true] = ACTIONS(4670),
    [sym_false] = ACTIONS(4670),
    [sym_null] = ACTIONS(4670),
    [sym_super] = ACTIONS(4670),
    [sym_this] = ACTIONS(4670),
    [sym_abstract] = ACTIONS(4670),
    [sym_alias] = ACTIONS(4670),
    [sym_align] = ACTIONS(4670),
    [sym_asm] = ACTIONS(4670),
    [sym_assert] = ACTIONS(4670),
    [sym_auto] = ACTIONS(4670),
    [sym_break] = ACTIONS(4670),
    [sym_case] = ACTIONS(4670),
    [sym_cast] = ACTIONS(4670),
    [sym_class] = ACTIONS(4670),
    [sym_const] = ACTIONS(4670),
    [sym_continue] = ACTIONS(4670),
    [sym_debug] = ACTIONS(4670),
    [sym_default] = ACTIONS(4670),
    [sym_delegate] = ACTIONS(4670),
    [sym_delete] = ACTIONS(4670),
    [sym_deprecated] = ACTIONS(4670),
    [sym_do] = ACTIONS(4670),
    [sym_else] = ACTIONS(4670),
    [sym_enum] = ACTIONS(4670),
    [sym_export] = ACTIONS(4670),
    [sym_extern] = ACTIONS(4670),
    [sym_final] = ACTIONS(4670),
    [sym_for] = ACTIONS(4670),
    [sym_foreach] = ACTIONS(4670),
    [sym_foreach_reverse] = ACTIONS(4670),
    [sym_function] = ACTIONS(4670),
    [sym_goto] = ACTIONS(4670),
    [sym_if] = ACTIONS(4670),
    [sym_immutable] = ACTIONS(4670),
    [sym_import] = ACTIONS(4670),
    [sym_in] = ACTIONS(4670),
    [sym_inout] = ACTIONS(4670),
    [sym_interface] = ACTIONS(4670),
    [sym_invariant] = ACTIONS(4670),
    [sym_is] = ACTIONS(4670),
    [sym_mixin] = ACTIONS(4670),
    [sym_new] = ACTIONS(4670),
    [sym_nothrow] = ACTIONS(4670),
    [sym_out] = ACTIONS(4670),
    [sym_override] = ACTIONS(4670),
    [sym_package] = ACTIONS(4670),
    [sym_pragma] = ACTIONS(4670),
    [sym_private] = ACTIONS(4670),
    [sym_protected] = ACTIONS(4670),
    [sym_public] = ACTIONS(4670),
    [sym_pure] = ACTIONS(4670),
    [sym_ref] = ACTIONS(4670),
    [sym_return] = ACTIONS(4670),
    [sym_scope] = ACTIONS(4670),
    [sym_shared] = ACTIONS(4670),
    [sym_static] = ACTIONS(4670),
    [sym_struct] = ACTIONS(4670),
    [sym_switch] = ACTIONS(4670),
    [sym_synchronized] = ACTIONS(4670),
    [sym_template] = ACTIONS(4670),
    [sym_throw] = ACTIONS(4670),
    [sym_try] = ACTIONS(4670),
    [sym_typeid] = ACTIONS(4670),
    [sym_typeof] = ACTIONS(4670),
    [sym_union] = ACTIONS(4670),
    [sym_unittest] = ACTIONS(4670),
    [sym_version] = ACTIONS(4670),
    [sym_while] = ACTIONS(4670),
    [sym_with] = ACTIONS(4670),
    [sym_gshared] = ACTIONS(4670),
    [sym_traits] = ACTIONS(4670),
    [sym_vector] = ACTIONS(4670),
    [sym_void] = ACTIONS(4670),
    [anon_sym_BQUOTE] = ACTIONS(4672),
    [anon_sym_r_DQUOTE] = ACTIONS(4672),
    [anon_sym_x_DQUOTE] = ACTIONS(4672),
    [anon_sym_DQUOTE] = ACTIONS(4672),
    [anon_sym_i_BQUOTE] = ACTIONS(4672),
    [anon_sym_i_DQUOTE] = ACTIONS(4672),
    [anon_sym_iq_LBRACE] = ACTIONS(4672),
    [aux_sym_char_literal_token1] = ACTIONS(4672),
    [anon_sym_SQUOTE] = ACTIONS(4670),
    [anon_sym___DATE__] = ACTIONS(4670),
    [anon_sym___FILE__] = ACTIONS(4670),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4670),
    [anon_sym___FUNCTION__] = ACTIONS(4670),
    [anon_sym___LINE__] = ACTIONS(4670),
    [anon_sym___MODULE__] = ACTIONS(4670),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4670),
    [anon_sym___TIME__] = ACTIONS(4670),
    [anon_sym___TIMESTAMP__] = ACTIONS(4670),
    [anon_sym___VENDOR__] = ACTIONS(4670),
    [anon_sym___VERSION__] = ACTIONS(4670),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4672),
    [sym_float_literal] = ACTIONS(4672),
    [sym__string] = ACTIONS(4672),
  },
  [1657] = {
    [sym_identifier] = ACTIONS(4430),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4432),
    [anon_sym_RBRACE] = ACTIONS(4432),
    [anon_sym_LBRACE] = ACTIONS(4432),
    [anon_sym_DOT] = ACTIONS(4432),
    [anon_sym_AMP] = ACTIONS(4432),
    [anon_sym_DASH] = ACTIONS(4430),
    [anon_sym_DASH_DASH] = ACTIONS(4432),
    [anon_sym_PLUS] = ACTIONS(4430),
    [anon_sym_PLUS_PLUS] = ACTIONS(4432),
    [anon_sym_BANG] = ACTIONS(4432),
    [anon_sym_LPAREN] = ACTIONS(4432),
    [anon_sym_RPAREN] = ACTIONS(4432),
    [anon_sym_LBRACK] = ACTIONS(4432),
    [anon_sym_SEMI] = ACTIONS(4432),
    [anon_sym_DOLLAR] = ACTIONS(4432),
    [anon_sym_STAR] = ACTIONS(4432),
    [anon_sym_TILDE] = ACTIONS(4432),
    [anon_sym_AT] = ACTIONS(4432),
    [sym_bool] = ACTIONS(4430),
    [sym_byte] = ACTIONS(4430),
    [sym_ubyte] = ACTIONS(4430),
    [sym_char] = ACTIONS(4430),
    [sym_short] = ACTIONS(4430),
    [sym_ushort] = ACTIONS(4430),
    [sym_int] = ACTIONS(4430),
    [sym_uint] = ACTIONS(4430),
    [sym_long] = ACTIONS(4430),
    [sym_ulong] = ACTIONS(4430),
    [sym_cent] = ACTIONS(4430),
    [sym_ucent] = ACTIONS(4430),
    [sym_wchar] = ACTIONS(4430),
    [sym_dchar] = ACTIONS(4430),
    [sym_float] = ACTIONS(4430),
    [sym_double] = ACTIONS(4430),
    [sym_real] = ACTIONS(4430),
    [sym_ifloat] = ACTIONS(4430),
    [sym_idouble] = ACTIONS(4430),
    [sym_ireal] = ACTIONS(4430),
    [sym_cfloat] = ACTIONS(4430),
    [sym_cdouble] = ACTIONS(4430),
    [sym_creal] = ACTIONS(4430),
    [sym_size_t] = ACTIONS(4430),
    [sym_ptrdiff_t] = ACTIONS(4430),
    [sym_string] = ACTIONS(4430),
    [sym_cstring] = ACTIONS(4430),
    [sym_dstring] = ACTIONS(4430),
    [sym_wstring] = ACTIONS(4430),
    [sym_noreturn] = ACTIONS(4430),
    [sym_true] = ACTIONS(4430),
    [sym_false] = ACTIONS(4430),
    [sym_null] = ACTIONS(4430),
    [sym_super] = ACTIONS(4430),
    [sym_this] = ACTIONS(4430),
    [sym_abstract] = ACTIONS(4430),
    [sym_alias] = ACTIONS(4430),
    [sym_align] = ACTIONS(4430),
    [sym_asm] = ACTIONS(4430),
    [sym_assert] = ACTIONS(4430),
    [sym_auto] = ACTIONS(4430),
    [sym_break] = ACTIONS(4430),
    [sym_case] = ACTIONS(4430),
    [sym_cast] = ACTIONS(4430),
    [sym_class] = ACTIONS(4430),
    [sym_const] = ACTIONS(4430),
    [sym_continue] = ACTIONS(4430),
    [sym_debug] = ACTIONS(4430),
    [sym_default] = ACTIONS(4430),
    [sym_delegate] = ACTIONS(4430),
    [sym_delete] = ACTIONS(4430),
    [sym_deprecated] = ACTIONS(4430),
    [sym_do] = ACTIONS(4430),
    [sym_else] = ACTIONS(4430),
    [sym_enum] = ACTIONS(4430),
    [sym_export] = ACTIONS(4430),
    [sym_extern] = ACTIONS(4430),
    [sym_final] = ACTIONS(4430),
    [sym_for] = ACTIONS(4430),
    [sym_foreach] = ACTIONS(4430),
    [sym_foreach_reverse] = ACTIONS(4430),
    [sym_function] = ACTIONS(4430),
    [sym_goto] = ACTIONS(4430),
    [sym_if] = ACTIONS(4430),
    [sym_immutable] = ACTIONS(4430),
    [sym_import] = ACTIONS(4430),
    [sym_in] = ACTIONS(4430),
    [sym_inout] = ACTIONS(4430),
    [sym_interface] = ACTIONS(4430),
    [sym_invariant] = ACTIONS(4430),
    [sym_is] = ACTIONS(4430),
    [sym_mixin] = ACTIONS(4430),
    [sym_new] = ACTIONS(4430),
    [sym_nothrow] = ACTIONS(4430),
    [sym_out] = ACTIONS(4430),
    [sym_override] = ACTIONS(4430),
    [sym_package] = ACTIONS(4430),
    [sym_pragma] = ACTIONS(4430),
    [sym_private] = ACTIONS(4430),
    [sym_protected] = ACTIONS(4430),
    [sym_public] = ACTIONS(4430),
    [sym_pure] = ACTIONS(4430),
    [sym_ref] = ACTIONS(4430),
    [sym_return] = ACTIONS(4430),
    [sym_scope] = ACTIONS(4430),
    [sym_shared] = ACTIONS(4430),
    [sym_static] = ACTIONS(4430),
    [sym_struct] = ACTIONS(4430),
    [sym_switch] = ACTIONS(4430),
    [sym_synchronized] = ACTIONS(4430),
    [sym_template] = ACTIONS(4430),
    [sym_throw] = ACTIONS(4430),
    [sym_try] = ACTIONS(4430),
    [sym_typeid] = ACTIONS(4430),
    [sym_typeof] = ACTIONS(4430),
    [sym_union] = ACTIONS(4430),
    [sym_unittest] = ACTIONS(4430),
    [sym_version] = ACTIONS(4430),
    [sym_while] = ACTIONS(4430),
    [sym_with] = ACTIONS(4430),
    [sym_gshared] = ACTIONS(4430),
    [sym_traits] = ACTIONS(4430),
    [sym_vector] = ACTIONS(4430),
    [sym_void] = ACTIONS(4430),
    [anon_sym_BQUOTE] = ACTIONS(4432),
    [anon_sym_r_DQUOTE] = ACTIONS(4432),
    [anon_sym_x_DQUOTE] = ACTIONS(4432),
    [anon_sym_DQUOTE] = ACTIONS(4432),
    [anon_sym_i_BQUOTE] = ACTIONS(4432),
    [anon_sym_i_DQUOTE] = ACTIONS(4432),
    [anon_sym_iq_LBRACE] = ACTIONS(4432),
    [aux_sym_char_literal_token1] = ACTIONS(4432),
    [anon_sym_SQUOTE] = ACTIONS(4430),
    [anon_sym___DATE__] = ACTIONS(4430),
    [anon_sym___FILE__] = ACTIONS(4430),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4430),
    [anon_sym___FUNCTION__] = ACTIONS(4430),
    [anon_sym___LINE__] = ACTIONS(4430),
    [anon_sym___MODULE__] = ACTIONS(4430),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4430),
    [anon_sym___TIME__] = ACTIONS(4430),
    [anon_sym___TIMESTAMP__] = ACTIONS(4430),
    [anon_sym___VENDOR__] = ACTIONS(4430),
    [anon_sym___VERSION__] = ACTIONS(4430),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4432),
    [sym_float_literal] = ACTIONS(4432),
    [sym__string] = ACTIONS(4432),
  },
  [1658] = {
    [sym_identifier] = ACTIONS(4546),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4548),
    [anon_sym_RBRACE] = ACTIONS(4548),
    [anon_sym_LBRACE] = ACTIONS(4548),
    [anon_sym_DOT] = ACTIONS(4548),
    [anon_sym_AMP] = ACTIONS(4548),
    [anon_sym_DASH] = ACTIONS(4546),
    [anon_sym_DASH_DASH] = ACTIONS(4548),
    [anon_sym_PLUS] = ACTIONS(4546),
    [anon_sym_PLUS_PLUS] = ACTIONS(4548),
    [anon_sym_BANG] = ACTIONS(4548),
    [anon_sym_LPAREN] = ACTIONS(4548),
    [anon_sym_RPAREN] = ACTIONS(4548),
    [anon_sym_LBRACK] = ACTIONS(4548),
    [anon_sym_SEMI] = ACTIONS(4548),
    [anon_sym_DOLLAR] = ACTIONS(4548),
    [anon_sym_STAR] = ACTIONS(4548),
    [anon_sym_TILDE] = ACTIONS(4548),
    [anon_sym_AT] = ACTIONS(4548),
    [sym_bool] = ACTIONS(4546),
    [sym_byte] = ACTIONS(4546),
    [sym_ubyte] = ACTIONS(4546),
    [sym_char] = ACTIONS(4546),
    [sym_short] = ACTIONS(4546),
    [sym_ushort] = ACTIONS(4546),
    [sym_int] = ACTIONS(4546),
    [sym_uint] = ACTIONS(4546),
    [sym_long] = ACTIONS(4546),
    [sym_ulong] = ACTIONS(4546),
    [sym_cent] = ACTIONS(4546),
    [sym_ucent] = ACTIONS(4546),
    [sym_wchar] = ACTIONS(4546),
    [sym_dchar] = ACTIONS(4546),
    [sym_float] = ACTIONS(4546),
    [sym_double] = ACTIONS(4546),
    [sym_real] = ACTIONS(4546),
    [sym_ifloat] = ACTIONS(4546),
    [sym_idouble] = ACTIONS(4546),
    [sym_ireal] = ACTIONS(4546),
    [sym_cfloat] = ACTIONS(4546),
    [sym_cdouble] = ACTIONS(4546),
    [sym_creal] = ACTIONS(4546),
    [sym_size_t] = ACTIONS(4546),
    [sym_ptrdiff_t] = ACTIONS(4546),
    [sym_string] = ACTIONS(4546),
    [sym_cstring] = ACTIONS(4546),
    [sym_dstring] = ACTIONS(4546),
    [sym_wstring] = ACTIONS(4546),
    [sym_noreturn] = ACTIONS(4546),
    [sym_true] = ACTIONS(4546),
    [sym_false] = ACTIONS(4546),
    [sym_null] = ACTIONS(4546),
    [sym_super] = ACTIONS(4546),
    [sym_this] = ACTIONS(4546),
    [sym_abstract] = ACTIONS(4546),
    [sym_alias] = ACTIONS(4546),
    [sym_align] = ACTIONS(4546),
    [sym_asm] = ACTIONS(4546),
    [sym_assert] = ACTIONS(4546),
    [sym_auto] = ACTIONS(4546),
    [sym_break] = ACTIONS(4546),
    [sym_case] = ACTIONS(4546),
    [sym_cast] = ACTIONS(4546),
    [sym_class] = ACTIONS(4546),
    [sym_const] = ACTIONS(4546),
    [sym_continue] = ACTIONS(4546),
    [sym_debug] = ACTIONS(4546),
    [sym_default] = ACTIONS(4546),
    [sym_delegate] = ACTIONS(4546),
    [sym_delete] = ACTIONS(4546),
    [sym_deprecated] = ACTIONS(4546),
    [sym_do] = ACTIONS(4546),
    [sym_else] = ACTIONS(4546),
    [sym_enum] = ACTIONS(4546),
    [sym_export] = ACTIONS(4546),
    [sym_extern] = ACTIONS(4546),
    [sym_final] = ACTIONS(4546),
    [sym_for] = ACTIONS(4546),
    [sym_foreach] = ACTIONS(4546),
    [sym_foreach_reverse] = ACTIONS(4546),
    [sym_function] = ACTIONS(4546),
    [sym_goto] = ACTIONS(4546),
    [sym_if] = ACTIONS(4546),
    [sym_immutable] = ACTIONS(4546),
    [sym_import] = ACTIONS(4546),
    [sym_in] = ACTIONS(4546),
    [sym_inout] = ACTIONS(4546),
    [sym_interface] = ACTIONS(4546),
    [sym_invariant] = ACTIONS(4546),
    [sym_is] = ACTIONS(4546),
    [sym_mixin] = ACTIONS(4546),
    [sym_new] = ACTIONS(4546),
    [sym_nothrow] = ACTIONS(4546),
    [sym_out] = ACTIONS(4546),
    [sym_override] = ACTIONS(4546),
    [sym_package] = ACTIONS(4546),
    [sym_pragma] = ACTIONS(4546),
    [sym_private] = ACTIONS(4546),
    [sym_protected] = ACTIONS(4546),
    [sym_public] = ACTIONS(4546),
    [sym_pure] = ACTIONS(4546),
    [sym_ref] = ACTIONS(4546),
    [sym_return] = ACTIONS(4546),
    [sym_scope] = ACTIONS(4546),
    [sym_shared] = ACTIONS(4546),
    [sym_static] = ACTIONS(4546),
    [sym_struct] = ACTIONS(4546),
    [sym_switch] = ACTIONS(4546),
    [sym_synchronized] = ACTIONS(4546),
    [sym_template] = ACTIONS(4546),
    [sym_throw] = ACTIONS(4546),
    [sym_try] = ACTIONS(4546),
    [sym_typeid] = ACTIONS(4546),
    [sym_typeof] = ACTIONS(4546),
    [sym_union] = ACTIONS(4546),
    [sym_unittest] = ACTIONS(4546),
    [sym_version] = ACTIONS(4546),
    [sym_while] = ACTIONS(4546),
    [sym_with] = ACTIONS(4546),
    [sym_gshared] = ACTIONS(4546),
    [sym_traits] = ACTIONS(4546),
    [sym_vector] = ACTIONS(4546),
    [sym_void] = ACTIONS(4546),
    [anon_sym_BQUOTE] = ACTIONS(4548),
    [anon_sym_r_DQUOTE] = ACTIONS(4548),
    [anon_sym_x_DQUOTE] = ACTIONS(4548),
    [anon_sym_DQUOTE] = ACTIONS(4548),
    [anon_sym_i_BQUOTE] = ACTIONS(4548),
    [anon_sym_i_DQUOTE] = ACTIONS(4548),
    [anon_sym_iq_LBRACE] = ACTIONS(4548),
    [aux_sym_char_literal_token1] = ACTIONS(4548),
    [anon_sym_SQUOTE] = ACTIONS(4546),
    [anon_sym___DATE__] = ACTIONS(4546),
    [anon_sym___FILE__] = ACTIONS(4546),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4546),
    [anon_sym___FUNCTION__] = ACTIONS(4546),
    [anon_sym___LINE__] = ACTIONS(4546),
    [anon_sym___MODULE__] = ACTIONS(4546),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4546),
    [anon_sym___TIME__] = ACTIONS(4546),
    [anon_sym___TIMESTAMP__] = ACTIONS(4546),
    [anon_sym___VENDOR__] = ACTIONS(4546),
    [anon_sym___VERSION__] = ACTIONS(4546),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4548),
    [sym_float_literal] = ACTIONS(4548),
    [sym__string] = ACTIONS(4548),
  },
  [1659] = {
    [sym_identifier] = ACTIONS(4922),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4924),
    [anon_sym_RBRACE] = ACTIONS(4924),
    [anon_sym_LBRACE] = ACTIONS(4924),
    [anon_sym_DOT] = ACTIONS(4924),
    [anon_sym_AMP] = ACTIONS(4924),
    [anon_sym_DASH] = ACTIONS(4922),
    [anon_sym_DASH_DASH] = ACTIONS(4924),
    [anon_sym_PLUS] = ACTIONS(4922),
    [anon_sym_PLUS_PLUS] = ACTIONS(4924),
    [anon_sym_BANG] = ACTIONS(4924),
    [anon_sym_LPAREN] = ACTIONS(4924),
    [anon_sym_RPAREN] = ACTIONS(4924),
    [anon_sym_LBRACK] = ACTIONS(4924),
    [anon_sym_SEMI] = ACTIONS(4924),
    [anon_sym_DOLLAR] = ACTIONS(4924),
    [anon_sym_STAR] = ACTIONS(4924),
    [anon_sym_TILDE] = ACTIONS(4924),
    [anon_sym_AT] = ACTIONS(4924),
    [sym_bool] = ACTIONS(4922),
    [sym_byte] = ACTIONS(4922),
    [sym_ubyte] = ACTIONS(4922),
    [sym_char] = ACTIONS(4922),
    [sym_short] = ACTIONS(4922),
    [sym_ushort] = ACTIONS(4922),
    [sym_int] = ACTIONS(4922),
    [sym_uint] = ACTIONS(4922),
    [sym_long] = ACTIONS(4922),
    [sym_ulong] = ACTIONS(4922),
    [sym_cent] = ACTIONS(4922),
    [sym_ucent] = ACTIONS(4922),
    [sym_wchar] = ACTIONS(4922),
    [sym_dchar] = ACTIONS(4922),
    [sym_float] = ACTIONS(4922),
    [sym_double] = ACTIONS(4922),
    [sym_real] = ACTIONS(4922),
    [sym_ifloat] = ACTIONS(4922),
    [sym_idouble] = ACTIONS(4922),
    [sym_ireal] = ACTIONS(4922),
    [sym_cfloat] = ACTIONS(4922),
    [sym_cdouble] = ACTIONS(4922),
    [sym_creal] = ACTIONS(4922),
    [sym_size_t] = ACTIONS(4922),
    [sym_ptrdiff_t] = ACTIONS(4922),
    [sym_string] = ACTIONS(4922),
    [sym_cstring] = ACTIONS(4922),
    [sym_dstring] = ACTIONS(4922),
    [sym_wstring] = ACTIONS(4922),
    [sym_noreturn] = ACTIONS(4922),
    [sym_true] = ACTIONS(4922),
    [sym_false] = ACTIONS(4922),
    [sym_null] = ACTIONS(4922),
    [sym_super] = ACTIONS(4922),
    [sym_this] = ACTIONS(4922),
    [sym_abstract] = ACTIONS(4922),
    [sym_alias] = ACTIONS(4922),
    [sym_align] = ACTIONS(4922),
    [sym_asm] = ACTIONS(4922),
    [sym_assert] = ACTIONS(4922),
    [sym_auto] = ACTIONS(4922),
    [sym_break] = ACTIONS(4922),
    [sym_case] = ACTIONS(4922),
    [sym_cast] = ACTIONS(4922),
    [sym_class] = ACTIONS(4922),
    [sym_const] = ACTIONS(4922),
    [sym_continue] = ACTIONS(4922),
    [sym_debug] = ACTIONS(4922),
    [sym_default] = ACTIONS(4922),
    [sym_delegate] = ACTIONS(4922),
    [sym_delete] = ACTIONS(4922),
    [sym_deprecated] = ACTIONS(4922),
    [sym_do] = ACTIONS(4922),
    [sym_else] = ACTIONS(4922),
    [sym_enum] = ACTIONS(4922),
    [sym_export] = ACTIONS(4922),
    [sym_extern] = ACTIONS(4922),
    [sym_final] = ACTIONS(4922),
    [sym_for] = ACTIONS(4922),
    [sym_foreach] = ACTIONS(4922),
    [sym_foreach_reverse] = ACTIONS(4922),
    [sym_function] = ACTIONS(4922),
    [sym_goto] = ACTIONS(4922),
    [sym_if] = ACTIONS(4922),
    [sym_immutable] = ACTIONS(4922),
    [sym_import] = ACTIONS(4922),
    [sym_in] = ACTIONS(4922),
    [sym_inout] = ACTIONS(4922),
    [sym_interface] = ACTIONS(4922),
    [sym_invariant] = ACTIONS(4922),
    [sym_is] = ACTIONS(4922),
    [sym_mixin] = ACTIONS(4922),
    [sym_new] = ACTIONS(4922),
    [sym_nothrow] = ACTIONS(4922),
    [sym_out] = ACTIONS(4922),
    [sym_override] = ACTIONS(4922),
    [sym_package] = ACTIONS(4922),
    [sym_pragma] = ACTIONS(4922),
    [sym_private] = ACTIONS(4922),
    [sym_protected] = ACTIONS(4922),
    [sym_public] = ACTIONS(4922),
    [sym_pure] = ACTIONS(4922),
    [sym_ref] = ACTIONS(4922),
    [sym_return] = ACTIONS(4922),
    [sym_scope] = ACTIONS(4922),
    [sym_shared] = ACTIONS(4922),
    [sym_static] = ACTIONS(4922),
    [sym_struct] = ACTIONS(4922),
    [sym_switch] = ACTIONS(4922),
    [sym_synchronized] = ACTIONS(4922),
    [sym_template] = ACTIONS(4922),
    [sym_throw] = ACTIONS(4922),
    [sym_try] = ACTIONS(4922),
    [sym_typeid] = ACTIONS(4922),
    [sym_typeof] = ACTIONS(4922),
    [sym_union] = ACTIONS(4922),
    [sym_unittest] = ACTIONS(4922),
    [sym_version] = ACTIONS(4922),
    [sym_while] = ACTIONS(4922),
    [sym_with] = ACTIONS(4922),
    [sym_gshared] = ACTIONS(4922),
    [sym_traits] = ACTIONS(4922),
    [sym_vector] = ACTIONS(4922),
    [sym_void] = ACTIONS(4922),
    [anon_sym_BQUOTE] = ACTIONS(4924),
    [anon_sym_r_DQUOTE] = ACTIONS(4924),
    [anon_sym_x_DQUOTE] = ACTIONS(4924),
    [anon_sym_DQUOTE] = ACTIONS(4924),
    [anon_sym_i_BQUOTE] = ACTIONS(4924),
    [anon_sym_i_DQUOTE] = ACTIONS(4924),
    [anon_sym_iq_LBRACE] = ACTIONS(4924),
    [aux_sym_char_literal_token1] = ACTIONS(4924),
    [anon_sym_SQUOTE] = ACTIONS(4922),
    [anon_sym___DATE__] = ACTIONS(4922),
    [anon_sym___FILE__] = ACTIONS(4922),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4922),
    [anon_sym___FUNCTION__] = ACTIONS(4922),
    [anon_sym___LINE__] = ACTIONS(4922),
    [anon_sym___MODULE__] = ACTIONS(4922),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4922),
    [anon_sym___TIME__] = ACTIONS(4922),
    [anon_sym___TIMESTAMP__] = ACTIONS(4922),
    [anon_sym___VENDOR__] = ACTIONS(4922),
    [anon_sym___VERSION__] = ACTIONS(4922),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4924),
    [sym_float_literal] = ACTIONS(4924),
    [sym__string] = ACTIONS(4924),
  },
  [1660] = {
    [sym_identifier] = ACTIONS(4662),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4664),
    [anon_sym_RBRACE] = ACTIONS(4664),
    [anon_sym_LBRACE] = ACTIONS(4664),
    [anon_sym_DOT] = ACTIONS(4664),
    [anon_sym_AMP] = ACTIONS(4664),
    [anon_sym_DASH] = ACTIONS(4662),
    [anon_sym_DASH_DASH] = ACTIONS(4664),
    [anon_sym_PLUS] = ACTIONS(4662),
    [anon_sym_PLUS_PLUS] = ACTIONS(4664),
    [anon_sym_BANG] = ACTIONS(4664),
    [anon_sym_LPAREN] = ACTIONS(4664),
    [anon_sym_RPAREN] = ACTIONS(4664),
    [anon_sym_LBRACK] = ACTIONS(4664),
    [anon_sym_SEMI] = ACTIONS(4664),
    [anon_sym_DOLLAR] = ACTIONS(4664),
    [anon_sym_STAR] = ACTIONS(4664),
    [anon_sym_TILDE] = ACTIONS(4664),
    [anon_sym_AT] = ACTIONS(4664),
    [sym_bool] = ACTIONS(4662),
    [sym_byte] = ACTIONS(4662),
    [sym_ubyte] = ACTIONS(4662),
    [sym_char] = ACTIONS(4662),
    [sym_short] = ACTIONS(4662),
    [sym_ushort] = ACTIONS(4662),
    [sym_int] = ACTIONS(4662),
    [sym_uint] = ACTIONS(4662),
    [sym_long] = ACTIONS(4662),
    [sym_ulong] = ACTIONS(4662),
    [sym_cent] = ACTIONS(4662),
    [sym_ucent] = ACTIONS(4662),
    [sym_wchar] = ACTIONS(4662),
    [sym_dchar] = ACTIONS(4662),
    [sym_float] = ACTIONS(4662),
    [sym_double] = ACTIONS(4662),
    [sym_real] = ACTIONS(4662),
    [sym_ifloat] = ACTIONS(4662),
    [sym_idouble] = ACTIONS(4662),
    [sym_ireal] = ACTIONS(4662),
    [sym_cfloat] = ACTIONS(4662),
    [sym_cdouble] = ACTIONS(4662),
    [sym_creal] = ACTIONS(4662),
    [sym_size_t] = ACTIONS(4662),
    [sym_ptrdiff_t] = ACTIONS(4662),
    [sym_string] = ACTIONS(4662),
    [sym_cstring] = ACTIONS(4662),
    [sym_dstring] = ACTIONS(4662),
    [sym_wstring] = ACTIONS(4662),
    [sym_noreturn] = ACTIONS(4662),
    [sym_true] = ACTIONS(4662),
    [sym_false] = ACTIONS(4662),
    [sym_null] = ACTIONS(4662),
    [sym_super] = ACTIONS(4662),
    [sym_this] = ACTIONS(4662),
    [sym_abstract] = ACTIONS(4662),
    [sym_alias] = ACTIONS(4662),
    [sym_align] = ACTIONS(4662),
    [sym_asm] = ACTIONS(4662),
    [sym_assert] = ACTIONS(4662),
    [sym_auto] = ACTIONS(4662),
    [sym_break] = ACTIONS(4662),
    [sym_case] = ACTIONS(4662),
    [sym_cast] = ACTIONS(4662),
    [sym_class] = ACTIONS(4662),
    [sym_const] = ACTIONS(4662),
    [sym_continue] = ACTIONS(4662),
    [sym_debug] = ACTIONS(4662),
    [sym_default] = ACTIONS(4662),
    [sym_delegate] = ACTIONS(4662),
    [sym_delete] = ACTIONS(4662),
    [sym_deprecated] = ACTIONS(4662),
    [sym_do] = ACTIONS(4662),
    [sym_else] = ACTIONS(4662),
    [sym_enum] = ACTIONS(4662),
    [sym_export] = ACTIONS(4662),
    [sym_extern] = ACTIONS(4662),
    [sym_final] = ACTIONS(4662),
    [sym_for] = ACTIONS(4662),
    [sym_foreach] = ACTIONS(4662),
    [sym_foreach_reverse] = ACTIONS(4662),
    [sym_function] = ACTIONS(4662),
    [sym_goto] = ACTIONS(4662),
    [sym_if] = ACTIONS(4662),
    [sym_immutable] = ACTIONS(4662),
    [sym_import] = ACTIONS(4662),
    [sym_in] = ACTIONS(4662),
    [sym_inout] = ACTIONS(4662),
    [sym_interface] = ACTIONS(4662),
    [sym_invariant] = ACTIONS(4662),
    [sym_is] = ACTIONS(4662),
    [sym_mixin] = ACTIONS(4662),
    [sym_new] = ACTIONS(4662),
    [sym_nothrow] = ACTIONS(4662),
    [sym_out] = ACTIONS(4662),
    [sym_override] = ACTIONS(4662),
    [sym_package] = ACTIONS(4662),
    [sym_pragma] = ACTIONS(4662),
    [sym_private] = ACTIONS(4662),
    [sym_protected] = ACTIONS(4662),
    [sym_public] = ACTIONS(4662),
    [sym_pure] = ACTIONS(4662),
    [sym_ref] = ACTIONS(4662),
    [sym_return] = ACTIONS(4662),
    [sym_scope] = ACTIONS(4662),
    [sym_shared] = ACTIONS(4662),
    [sym_static] = ACTIONS(4662),
    [sym_struct] = ACTIONS(4662),
    [sym_switch] = ACTIONS(4662),
    [sym_synchronized] = ACTIONS(4662),
    [sym_template] = ACTIONS(4662),
    [sym_throw] = ACTIONS(4662),
    [sym_try] = ACTIONS(4662),
    [sym_typeid] = ACTIONS(4662),
    [sym_typeof] = ACTIONS(4662),
    [sym_union] = ACTIONS(4662),
    [sym_unittest] = ACTIONS(4662),
    [sym_version] = ACTIONS(4662),
    [sym_while] = ACTIONS(4662),
    [sym_with] = ACTIONS(4662),
    [sym_gshared] = ACTIONS(4662),
    [sym_traits] = ACTIONS(4662),
    [sym_vector] = ACTIONS(4662),
    [sym_void] = ACTIONS(4662),
    [anon_sym_BQUOTE] = ACTIONS(4664),
    [anon_sym_r_DQUOTE] = ACTIONS(4664),
    [anon_sym_x_DQUOTE] = ACTIONS(4664),
    [anon_sym_DQUOTE] = ACTIONS(4664),
    [anon_sym_i_BQUOTE] = ACTIONS(4664),
    [anon_sym_i_DQUOTE] = ACTIONS(4664),
    [anon_sym_iq_LBRACE] = ACTIONS(4664),
    [aux_sym_char_literal_token1] = ACTIONS(4664),
    [anon_sym_SQUOTE] = ACTIONS(4662),
    [anon_sym___DATE__] = ACTIONS(4662),
    [anon_sym___FILE__] = ACTIONS(4662),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4662),
    [anon_sym___FUNCTION__] = ACTIONS(4662),
    [anon_sym___LINE__] = ACTIONS(4662),
    [anon_sym___MODULE__] = ACTIONS(4662),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4662),
    [anon_sym___TIME__] = ACTIONS(4662),
    [anon_sym___TIMESTAMP__] = ACTIONS(4662),
    [anon_sym___VENDOR__] = ACTIONS(4662),
    [anon_sym___VERSION__] = ACTIONS(4662),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4664),
    [sym_float_literal] = ACTIONS(4664),
    [sym__string] = ACTIONS(4664),
  },
  [1661] = {
    [sym_identifier] = ACTIONS(4650),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4652),
    [anon_sym_RBRACE] = ACTIONS(4652),
    [anon_sym_LBRACE] = ACTIONS(4652),
    [anon_sym_DOT] = ACTIONS(4652),
    [anon_sym_AMP] = ACTIONS(4652),
    [anon_sym_DASH] = ACTIONS(4650),
    [anon_sym_DASH_DASH] = ACTIONS(4652),
    [anon_sym_PLUS] = ACTIONS(4650),
    [anon_sym_PLUS_PLUS] = ACTIONS(4652),
    [anon_sym_BANG] = ACTIONS(4652),
    [anon_sym_LPAREN] = ACTIONS(4652),
    [anon_sym_RPAREN] = ACTIONS(4652),
    [anon_sym_LBRACK] = ACTIONS(4652),
    [anon_sym_SEMI] = ACTIONS(4652),
    [anon_sym_DOLLAR] = ACTIONS(4652),
    [anon_sym_STAR] = ACTIONS(4652),
    [anon_sym_TILDE] = ACTIONS(4652),
    [anon_sym_AT] = ACTIONS(4652),
    [sym_bool] = ACTIONS(4650),
    [sym_byte] = ACTIONS(4650),
    [sym_ubyte] = ACTIONS(4650),
    [sym_char] = ACTIONS(4650),
    [sym_short] = ACTIONS(4650),
    [sym_ushort] = ACTIONS(4650),
    [sym_int] = ACTIONS(4650),
    [sym_uint] = ACTIONS(4650),
    [sym_long] = ACTIONS(4650),
    [sym_ulong] = ACTIONS(4650),
    [sym_cent] = ACTIONS(4650),
    [sym_ucent] = ACTIONS(4650),
    [sym_wchar] = ACTIONS(4650),
    [sym_dchar] = ACTIONS(4650),
    [sym_float] = ACTIONS(4650),
    [sym_double] = ACTIONS(4650),
    [sym_real] = ACTIONS(4650),
    [sym_ifloat] = ACTIONS(4650),
    [sym_idouble] = ACTIONS(4650),
    [sym_ireal] = ACTIONS(4650),
    [sym_cfloat] = ACTIONS(4650),
    [sym_cdouble] = ACTIONS(4650),
    [sym_creal] = ACTIONS(4650),
    [sym_size_t] = ACTIONS(4650),
    [sym_ptrdiff_t] = ACTIONS(4650),
    [sym_string] = ACTIONS(4650),
    [sym_cstring] = ACTIONS(4650),
    [sym_dstring] = ACTIONS(4650),
    [sym_wstring] = ACTIONS(4650),
    [sym_noreturn] = ACTIONS(4650),
    [sym_true] = ACTIONS(4650),
    [sym_false] = ACTIONS(4650),
    [sym_null] = ACTIONS(4650),
    [sym_super] = ACTIONS(4650),
    [sym_this] = ACTIONS(4650),
    [sym_abstract] = ACTIONS(4650),
    [sym_alias] = ACTIONS(4650),
    [sym_align] = ACTIONS(4650),
    [sym_asm] = ACTIONS(4650),
    [sym_assert] = ACTIONS(4650),
    [sym_auto] = ACTIONS(4650),
    [sym_break] = ACTIONS(4650),
    [sym_case] = ACTIONS(4650),
    [sym_cast] = ACTIONS(4650),
    [sym_class] = ACTIONS(4650),
    [sym_const] = ACTIONS(4650),
    [sym_continue] = ACTIONS(4650),
    [sym_debug] = ACTIONS(4650),
    [sym_default] = ACTIONS(4650),
    [sym_delegate] = ACTIONS(4650),
    [sym_delete] = ACTIONS(4650),
    [sym_deprecated] = ACTIONS(4650),
    [sym_do] = ACTIONS(4650),
    [sym_else] = ACTIONS(4650),
    [sym_enum] = ACTIONS(4650),
    [sym_export] = ACTIONS(4650),
    [sym_extern] = ACTIONS(4650),
    [sym_final] = ACTIONS(4650),
    [sym_for] = ACTIONS(4650),
    [sym_foreach] = ACTIONS(4650),
    [sym_foreach_reverse] = ACTIONS(4650),
    [sym_function] = ACTIONS(4650),
    [sym_goto] = ACTIONS(4650),
    [sym_if] = ACTIONS(4650),
    [sym_immutable] = ACTIONS(4650),
    [sym_import] = ACTIONS(4650),
    [sym_in] = ACTIONS(4650),
    [sym_inout] = ACTIONS(4650),
    [sym_interface] = ACTIONS(4650),
    [sym_invariant] = ACTIONS(4650),
    [sym_is] = ACTIONS(4650),
    [sym_mixin] = ACTIONS(4650),
    [sym_new] = ACTIONS(4650),
    [sym_nothrow] = ACTIONS(4650),
    [sym_out] = ACTIONS(4650),
    [sym_override] = ACTIONS(4650),
    [sym_package] = ACTIONS(4650),
    [sym_pragma] = ACTIONS(4650),
    [sym_private] = ACTIONS(4650),
    [sym_protected] = ACTIONS(4650),
    [sym_public] = ACTIONS(4650),
    [sym_pure] = ACTIONS(4650),
    [sym_ref] = ACTIONS(4650),
    [sym_return] = ACTIONS(4650),
    [sym_scope] = ACTIONS(4650),
    [sym_shared] = ACTIONS(4650),
    [sym_static] = ACTIONS(4650),
    [sym_struct] = ACTIONS(4650),
    [sym_switch] = ACTIONS(4650),
    [sym_synchronized] = ACTIONS(4650),
    [sym_template] = ACTIONS(4650),
    [sym_throw] = ACTIONS(4650),
    [sym_try] = ACTIONS(4650),
    [sym_typeid] = ACTIONS(4650),
    [sym_typeof] = ACTIONS(4650),
    [sym_union] = ACTIONS(4650),
    [sym_unittest] = ACTIONS(4650),
    [sym_version] = ACTIONS(4650),
    [sym_while] = ACTIONS(4650),
    [sym_with] = ACTIONS(4650),
    [sym_gshared] = ACTIONS(4650),
    [sym_traits] = ACTIONS(4650),
    [sym_vector] = ACTIONS(4650),
    [sym_void] = ACTIONS(4650),
    [anon_sym_BQUOTE] = ACTIONS(4652),
    [anon_sym_r_DQUOTE] = ACTIONS(4652),
    [anon_sym_x_DQUOTE] = ACTIONS(4652),
    [anon_sym_DQUOTE] = ACTIONS(4652),
    [anon_sym_i_BQUOTE] = ACTIONS(4652),
    [anon_sym_i_DQUOTE] = ACTIONS(4652),
    [anon_sym_iq_LBRACE] = ACTIONS(4652),
    [aux_sym_char_literal_token1] = ACTIONS(4652),
    [anon_sym_SQUOTE] = ACTIONS(4650),
    [anon_sym___DATE__] = ACTIONS(4650),
    [anon_sym___FILE__] = ACTIONS(4650),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4650),
    [anon_sym___FUNCTION__] = ACTIONS(4650),
    [anon_sym___LINE__] = ACTIONS(4650),
    [anon_sym___MODULE__] = ACTIONS(4650),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4650),
    [anon_sym___TIME__] = ACTIONS(4650),
    [anon_sym___TIMESTAMP__] = ACTIONS(4650),
    [anon_sym___VENDOR__] = ACTIONS(4650),
    [anon_sym___VERSION__] = ACTIONS(4650),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4652),
    [sym_float_literal] = ACTIONS(4652),
    [sym__string] = ACTIONS(4652),
  },
  [1662] = {
    [sym_identifier] = ACTIONS(4940),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4942),
    [anon_sym_RBRACE] = ACTIONS(4942),
    [anon_sym_LBRACE] = ACTIONS(4942),
    [anon_sym_DOT] = ACTIONS(4942),
    [anon_sym_AMP] = ACTIONS(4942),
    [anon_sym_DASH] = ACTIONS(4940),
    [anon_sym_DASH_DASH] = ACTIONS(4942),
    [anon_sym_PLUS] = ACTIONS(4940),
    [anon_sym_PLUS_PLUS] = ACTIONS(4942),
    [anon_sym_BANG] = ACTIONS(4942),
    [anon_sym_LPAREN] = ACTIONS(4942),
    [anon_sym_RPAREN] = ACTIONS(4942),
    [anon_sym_LBRACK] = ACTIONS(4942),
    [anon_sym_SEMI] = ACTIONS(4942),
    [anon_sym_DOLLAR] = ACTIONS(4942),
    [anon_sym_STAR] = ACTIONS(4942),
    [anon_sym_TILDE] = ACTIONS(4942),
    [anon_sym_AT] = ACTIONS(4942),
    [sym_bool] = ACTIONS(4940),
    [sym_byte] = ACTIONS(4940),
    [sym_ubyte] = ACTIONS(4940),
    [sym_char] = ACTIONS(4940),
    [sym_short] = ACTIONS(4940),
    [sym_ushort] = ACTIONS(4940),
    [sym_int] = ACTIONS(4940),
    [sym_uint] = ACTIONS(4940),
    [sym_long] = ACTIONS(4940),
    [sym_ulong] = ACTIONS(4940),
    [sym_cent] = ACTIONS(4940),
    [sym_ucent] = ACTIONS(4940),
    [sym_wchar] = ACTIONS(4940),
    [sym_dchar] = ACTIONS(4940),
    [sym_float] = ACTIONS(4940),
    [sym_double] = ACTIONS(4940),
    [sym_real] = ACTIONS(4940),
    [sym_ifloat] = ACTIONS(4940),
    [sym_idouble] = ACTIONS(4940),
    [sym_ireal] = ACTIONS(4940),
    [sym_cfloat] = ACTIONS(4940),
    [sym_cdouble] = ACTIONS(4940),
    [sym_creal] = ACTIONS(4940),
    [sym_size_t] = ACTIONS(4940),
    [sym_ptrdiff_t] = ACTIONS(4940),
    [sym_string] = ACTIONS(4940),
    [sym_cstring] = ACTIONS(4940),
    [sym_dstring] = ACTIONS(4940),
    [sym_wstring] = ACTIONS(4940),
    [sym_noreturn] = ACTIONS(4940),
    [sym_true] = ACTIONS(4940),
    [sym_false] = ACTIONS(4940),
    [sym_null] = ACTIONS(4940),
    [sym_super] = ACTIONS(4940),
    [sym_this] = ACTIONS(4940),
    [sym_abstract] = ACTIONS(4940),
    [sym_alias] = ACTIONS(4940),
    [sym_align] = ACTIONS(4940),
    [sym_asm] = ACTIONS(4940),
    [sym_assert] = ACTIONS(4940),
    [sym_auto] = ACTIONS(4940),
    [sym_break] = ACTIONS(4940),
    [sym_case] = ACTIONS(4940),
    [sym_cast] = ACTIONS(4940),
    [sym_class] = ACTIONS(4940),
    [sym_const] = ACTIONS(4940),
    [sym_continue] = ACTIONS(4940),
    [sym_debug] = ACTIONS(4940),
    [sym_default] = ACTIONS(4940),
    [sym_delegate] = ACTIONS(4940),
    [sym_delete] = ACTIONS(4940),
    [sym_deprecated] = ACTIONS(4940),
    [sym_do] = ACTIONS(4940),
    [sym_else] = ACTIONS(4940),
    [sym_enum] = ACTIONS(4940),
    [sym_export] = ACTIONS(4940),
    [sym_extern] = ACTIONS(4940),
    [sym_final] = ACTIONS(4940),
    [sym_for] = ACTIONS(4940),
    [sym_foreach] = ACTIONS(4940),
    [sym_foreach_reverse] = ACTIONS(4940),
    [sym_function] = ACTIONS(4940),
    [sym_goto] = ACTIONS(4940),
    [sym_if] = ACTIONS(4940),
    [sym_immutable] = ACTIONS(4940),
    [sym_import] = ACTIONS(4940),
    [sym_in] = ACTIONS(4940),
    [sym_inout] = ACTIONS(4940),
    [sym_interface] = ACTIONS(4940),
    [sym_invariant] = ACTIONS(4940),
    [sym_is] = ACTIONS(4940),
    [sym_mixin] = ACTIONS(4940),
    [sym_new] = ACTIONS(4940),
    [sym_nothrow] = ACTIONS(4940),
    [sym_out] = ACTIONS(4940),
    [sym_override] = ACTIONS(4940),
    [sym_package] = ACTIONS(4940),
    [sym_pragma] = ACTIONS(4940),
    [sym_private] = ACTIONS(4940),
    [sym_protected] = ACTIONS(4940),
    [sym_public] = ACTIONS(4940),
    [sym_pure] = ACTIONS(4940),
    [sym_ref] = ACTIONS(4940),
    [sym_return] = ACTIONS(4940),
    [sym_scope] = ACTIONS(4940),
    [sym_shared] = ACTIONS(4940),
    [sym_static] = ACTIONS(4940),
    [sym_struct] = ACTIONS(4940),
    [sym_switch] = ACTIONS(4940),
    [sym_synchronized] = ACTIONS(4940),
    [sym_template] = ACTIONS(4940),
    [sym_throw] = ACTIONS(4940),
    [sym_try] = ACTIONS(4940),
    [sym_typeid] = ACTIONS(4940),
    [sym_typeof] = ACTIONS(4940),
    [sym_union] = ACTIONS(4940),
    [sym_unittest] = ACTIONS(4940),
    [sym_version] = ACTIONS(4940),
    [sym_while] = ACTIONS(4940),
    [sym_with] = ACTIONS(4940),
    [sym_gshared] = ACTIONS(4940),
    [sym_traits] = ACTIONS(4940),
    [sym_vector] = ACTIONS(4940),
    [sym_void] = ACTIONS(4940),
    [anon_sym_BQUOTE] = ACTIONS(4942),
    [anon_sym_r_DQUOTE] = ACTIONS(4942),
    [anon_sym_x_DQUOTE] = ACTIONS(4942),
    [anon_sym_DQUOTE] = ACTIONS(4942),
    [anon_sym_i_BQUOTE] = ACTIONS(4942),
    [anon_sym_i_DQUOTE] = ACTIONS(4942),
    [anon_sym_iq_LBRACE] = ACTIONS(4942),
    [aux_sym_char_literal_token1] = ACTIONS(4942),
    [anon_sym_SQUOTE] = ACTIONS(4940),
    [anon_sym___DATE__] = ACTIONS(4940),
    [anon_sym___FILE__] = ACTIONS(4940),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4940),
    [anon_sym___FUNCTION__] = ACTIONS(4940),
    [anon_sym___LINE__] = ACTIONS(4940),
    [anon_sym___MODULE__] = ACTIONS(4940),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4940),
    [anon_sym___TIME__] = ACTIONS(4940),
    [anon_sym___TIMESTAMP__] = ACTIONS(4940),
    [anon_sym___VENDOR__] = ACTIONS(4940),
    [anon_sym___VERSION__] = ACTIONS(4940),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4942),
    [sym_float_literal] = ACTIONS(4942),
    [sym__string] = ACTIONS(4942),
  },
  [1663] = {
    [sym_identifier] = ACTIONS(4792),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4795),
    [anon_sym_RBRACE] = ACTIONS(4795),
    [anon_sym_LBRACE] = ACTIONS(4795),
    [anon_sym_DOT] = ACTIONS(4795),
    [anon_sym_AMP] = ACTIONS(4795),
    [anon_sym_DASH] = ACTIONS(4792),
    [anon_sym_DASH_DASH] = ACTIONS(4795),
    [anon_sym_PLUS] = ACTIONS(4792),
    [anon_sym_PLUS_PLUS] = ACTIONS(4795),
    [anon_sym_BANG] = ACTIONS(4795),
    [anon_sym_LPAREN] = ACTIONS(4795),
    [anon_sym_RPAREN] = ACTIONS(4795),
    [anon_sym_LBRACK] = ACTIONS(4795),
    [anon_sym_SEMI] = ACTIONS(4795),
    [anon_sym_DOLLAR] = ACTIONS(4795),
    [anon_sym_STAR] = ACTIONS(4795),
    [anon_sym_TILDE] = ACTIONS(4795),
    [anon_sym_AT] = ACTIONS(4795),
    [sym_bool] = ACTIONS(4792),
    [sym_byte] = ACTIONS(4792),
    [sym_ubyte] = ACTIONS(4792),
    [sym_char] = ACTIONS(4792),
    [sym_short] = ACTIONS(4792),
    [sym_ushort] = ACTIONS(4792),
    [sym_int] = ACTIONS(4792),
    [sym_uint] = ACTIONS(4792),
    [sym_long] = ACTIONS(4792),
    [sym_ulong] = ACTIONS(4792),
    [sym_cent] = ACTIONS(4792),
    [sym_ucent] = ACTIONS(4792),
    [sym_wchar] = ACTIONS(4792),
    [sym_dchar] = ACTIONS(4792),
    [sym_float] = ACTIONS(4792),
    [sym_double] = ACTIONS(4792),
    [sym_real] = ACTIONS(4792),
    [sym_ifloat] = ACTIONS(4792),
    [sym_idouble] = ACTIONS(4792),
    [sym_ireal] = ACTIONS(4792),
    [sym_cfloat] = ACTIONS(4792),
    [sym_cdouble] = ACTIONS(4792),
    [sym_creal] = ACTIONS(4792),
    [sym_size_t] = ACTIONS(4792),
    [sym_ptrdiff_t] = ACTIONS(4792),
    [sym_string] = ACTIONS(4792),
    [sym_cstring] = ACTIONS(4792),
    [sym_dstring] = ACTIONS(4792),
    [sym_wstring] = ACTIONS(4792),
    [sym_noreturn] = ACTIONS(4792),
    [sym_true] = ACTIONS(4792),
    [sym_false] = ACTIONS(4792),
    [sym_null] = ACTIONS(4792),
    [sym_super] = ACTIONS(4792),
    [sym_this] = ACTIONS(4792),
    [sym_abstract] = ACTIONS(4792),
    [sym_alias] = ACTIONS(4792),
    [sym_align] = ACTIONS(4792),
    [sym_asm] = ACTIONS(4792),
    [sym_assert] = ACTIONS(4792),
    [sym_auto] = ACTIONS(4792),
    [sym_break] = ACTIONS(4792),
    [sym_case] = ACTIONS(4792),
    [sym_cast] = ACTIONS(4792),
    [sym_class] = ACTIONS(4792),
    [sym_const] = ACTIONS(4792),
    [sym_continue] = ACTIONS(4792),
    [sym_debug] = ACTIONS(4792),
    [sym_default] = ACTIONS(4792),
    [sym_delegate] = ACTIONS(4792),
    [sym_delete] = ACTIONS(4792),
    [sym_deprecated] = ACTIONS(4792),
    [sym_do] = ACTIONS(4792),
    [sym_else] = ACTIONS(4792),
    [sym_enum] = ACTIONS(4792),
    [sym_export] = ACTIONS(4792),
    [sym_extern] = ACTIONS(4792),
    [sym_final] = ACTIONS(4792),
    [sym_for] = ACTIONS(4792),
    [sym_foreach] = ACTIONS(4792),
    [sym_foreach_reverse] = ACTIONS(4792),
    [sym_function] = ACTIONS(4792),
    [sym_goto] = ACTIONS(4792),
    [sym_if] = ACTIONS(4792),
    [sym_immutable] = ACTIONS(4792),
    [sym_import] = ACTIONS(4792),
    [sym_in] = ACTIONS(4792),
    [sym_inout] = ACTIONS(4792),
    [sym_interface] = ACTIONS(4792),
    [sym_invariant] = ACTIONS(4792),
    [sym_is] = ACTIONS(4792),
    [sym_mixin] = ACTIONS(4792),
    [sym_new] = ACTIONS(4792),
    [sym_nothrow] = ACTIONS(4792),
    [sym_out] = ACTIONS(4792),
    [sym_override] = ACTIONS(4792),
    [sym_package] = ACTIONS(4792),
    [sym_pragma] = ACTIONS(4792),
    [sym_private] = ACTIONS(4792),
    [sym_protected] = ACTIONS(4792),
    [sym_public] = ACTIONS(4792),
    [sym_pure] = ACTIONS(4792),
    [sym_ref] = ACTIONS(4792),
    [sym_return] = ACTIONS(4792),
    [sym_scope] = ACTIONS(4792),
    [sym_shared] = ACTIONS(4792),
    [sym_static] = ACTIONS(4792),
    [sym_struct] = ACTIONS(4792),
    [sym_switch] = ACTIONS(4792),
    [sym_synchronized] = ACTIONS(4792),
    [sym_template] = ACTIONS(4792),
    [sym_throw] = ACTIONS(4792),
    [sym_try] = ACTIONS(4792),
    [sym_typeid] = ACTIONS(4792),
    [sym_typeof] = ACTIONS(4792),
    [sym_union] = ACTIONS(4792),
    [sym_unittest] = ACTIONS(4792),
    [sym_version] = ACTIONS(4792),
    [sym_while] = ACTIONS(4792),
    [sym_with] = ACTIONS(4792),
    [sym_gshared] = ACTIONS(4792),
    [sym_traits] = ACTIONS(4792),
    [sym_vector] = ACTIONS(4792),
    [sym_void] = ACTIONS(4792),
    [anon_sym_BQUOTE] = ACTIONS(4795),
    [anon_sym_r_DQUOTE] = ACTIONS(4795),
    [anon_sym_x_DQUOTE] = ACTIONS(4795),
    [anon_sym_DQUOTE] = ACTIONS(4795),
    [anon_sym_i_BQUOTE] = ACTIONS(4795),
    [anon_sym_i_DQUOTE] = ACTIONS(4795),
    [anon_sym_iq_LBRACE] = ACTIONS(4795),
    [aux_sym_char_literal_token1] = ACTIONS(4795),
    [anon_sym_SQUOTE] = ACTIONS(4792),
    [anon_sym___DATE__] = ACTIONS(4792),
    [anon_sym___FILE__] = ACTIONS(4792),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4792),
    [anon_sym___FUNCTION__] = ACTIONS(4792),
    [anon_sym___LINE__] = ACTIONS(4792),
    [anon_sym___MODULE__] = ACTIONS(4792),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4792),
    [anon_sym___TIME__] = ACTIONS(4792),
    [anon_sym___TIMESTAMP__] = ACTIONS(4792),
    [anon_sym___VENDOR__] = ACTIONS(4792),
    [anon_sym___VERSION__] = ACTIONS(4792),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4795),
    [sym_float_literal] = ACTIONS(4795),
    [sym__string] = ACTIONS(4795),
  },
  [1664] = {
    [sym_identifier] = ACTIONS(4524),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4526),
    [anon_sym_RBRACE] = ACTIONS(4526),
    [anon_sym_LBRACE] = ACTIONS(4526),
    [anon_sym_DOT] = ACTIONS(4526),
    [anon_sym_AMP] = ACTIONS(4526),
    [anon_sym_DASH] = ACTIONS(4524),
    [anon_sym_DASH_DASH] = ACTIONS(4526),
    [anon_sym_PLUS] = ACTIONS(4524),
    [anon_sym_PLUS_PLUS] = ACTIONS(4526),
    [anon_sym_BANG] = ACTIONS(4526),
    [anon_sym_LPAREN] = ACTIONS(4526),
    [anon_sym_RPAREN] = ACTIONS(4526),
    [anon_sym_LBRACK] = ACTIONS(4526),
    [anon_sym_SEMI] = ACTIONS(4526),
    [anon_sym_DOLLAR] = ACTIONS(4526),
    [anon_sym_STAR] = ACTIONS(4526),
    [anon_sym_TILDE] = ACTIONS(4526),
    [anon_sym_AT] = ACTIONS(4526),
    [sym_bool] = ACTIONS(4524),
    [sym_byte] = ACTIONS(4524),
    [sym_ubyte] = ACTIONS(4524),
    [sym_char] = ACTIONS(4524),
    [sym_short] = ACTIONS(4524),
    [sym_ushort] = ACTIONS(4524),
    [sym_int] = ACTIONS(4524),
    [sym_uint] = ACTIONS(4524),
    [sym_long] = ACTIONS(4524),
    [sym_ulong] = ACTIONS(4524),
    [sym_cent] = ACTIONS(4524),
    [sym_ucent] = ACTIONS(4524),
    [sym_wchar] = ACTIONS(4524),
    [sym_dchar] = ACTIONS(4524),
    [sym_float] = ACTIONS(4524),
    [sym_double] = ACTIONS(4524),
    [sym_real] = ACTIONS(4524),
    [sym_ifloat] = ACTIONS(4524),
    [sym_idouble] = ACTIONS(4524),
    [sym_ireal] = ACTIONS(4524),
    [sym_cfloat] = ACTIONS(4524),
    [sym_cdouble] = ACTIONS(4524),
    [sym_creal] = ACTIONS(4524),
    [sym_size_t] = ACTIONS(4524),
    [sym_ptrdiff_t] = ACTIONS(4524),
    [sym_string] = ACTIONS(4524),
    [sym_cstring] = ACTIONS(4524),
    [sym_dstring] = ACTIONS(4524),
    [sym_wstring] = ACTIONS(4524),
    [sym_noreturn] = ACTIONS(4524),
    [sym_true] = ACTIONS(4524),
    [sym_false] = ACTIONS(4524),
    [sym_null] = ACTIONS(4524),
    [sym_super] = ACTIONS(4524),
    [sym_this] = ACTIONS(4524),
    [sym_abstract] = ACTIONS(4524),
    [sym_alias] = ACTIONS(4524),
    [sym_align] = ACTIONS(4524),
    [sym_asm] = ACTIONS(4524),
    [sym_assert] = ACTIONS(4524),
    [sym_auto] = ACTIONS(4524),
    [sym_break] = ACTIONS(4524),
    [sym_case] = ACTIONS(4524),
    [sym_cast] = ACTIONS(4524),
    [sym_class] = ACTIONS(4524),
    [sym_const] = ACTIONS(4524),
    [sym_continue] = ACTIONS(4524),
    [sym_debug] = ACTIONS(4524),
    [sym_default] = ACTIONS(4524),
    [sym_delegate] = ACTIONS(4524),
    [sym_delete] = ACTIONS(4524),
    [sym_deprecated] = ACTIONS(4524),
    [sym_do] = ACTIONS(4524),
    [sym_else] = ACTIONS(4524),
    [sym_enum] = ACTIONS(4524),
    [sym_export] = ACTIONS(4524),
    [sym_extern] = ACTIONS(4524),
    [sym_final] = ACTIONS(4524),
    [sym_for] = ACTIONS(4524),
    [sym_foreach] = ACTIONS(4524),
    [sym_foreach_reverse] = ACTIONS(4524),
    [sym_function] = ACTIONS(4524),
    [sym_goto] = ACTIONS(4524),
    [sym_if] = ACTIONS(4524),
    [sym_immutable] = ACTIONS(4524),
    [sym_import] = ACTIONS(4524),
    [sym_in] = ACTIONS(4524),
    [sym_inout] = ACTIONS(4524),
    [sym_interface] = ACTIONS(4524),
    [sym_invariant] = ACTIONS(4524),
    [sym_is] = ACTIONS(4524),
    [sym_mixin] = ACTIONS(4524),
    [sym_new] = ACTIONS(4524),
    [sym_nothrow] = ACTIONS(4524),
    [sym_out] = ACTIONS(4524),
    [sym_override] = ACTIONS(4524),
    [sym_package] = ACTIONS(4524),
    [sym_pragma] = ACTIONS(4524),
    [sym_private] = ACTIONS(4524),
    [sym_protected] = ACTIONS(4524),
    [sym_public] = ACTIONS(4524),
    [sym_pure] = ACTIONS(4524),
    [sym_ref] = ACTIONS(4524),
    [sym_return] = ACTIONS(4524),
    [sym_scope] = ACTIONS(4524),
    [sym_shared] = ACTIONS(4524),
    [sym_static] = ACTIONS(4524),
    [sym_struct] = ACTIONS(4524),
    [sym_switch] = ACTIONS(4524),
    [sym_synchronized] = ACTIONS(4524),
    [sym_template] = ACTIONS(4524),
    [sym_throw] = ACTIONS(4524),
    [sym_try] = ACTIONS(4524),
    [sym_typeid] = ACTIONS(4524),
    [sym_typeof] = ACTIONS(4524),
    [sym_union] = ACTIONS(4524),
    [sym_unittest] = ACTIONS(4524),
    [sym_version] = ACTIONS(4524),
    [sym_while] = ACTIONS(4524),
    [sym_with] = ACTIONS(4524),
    [sym_gshared] = ACTIONS(4524),
    [sym_traits] = ACTIONS(4524),
    [sym_vector] = ACTIONS(4524),
    [sym_void] = ACTIONS(4524),
    [anon_sym_BQUOTE] = ACTIONS(4526),
    [anon_sym_r_DQUOTE] = ACTIONS(4526),
    [anon_sym_x_DQUOTE] = ACTIONS(4526),
    [anon_sym_DQUOTE] = ACTIONS(4526),
    [anon_sym_i_BQUOTE] = ACTIONS(4526),
    [anon_sym_i_DQUOTE] = ACTIONS(4526),
    [anon_sym_iq_LBRACE] = ACTIONS(4526),
    [aux_sym_char_literal_token1] = ACTIONS(4526),
    [anon_sym_SQUOTE] = ACTIONS(4524),
    [anon_sym___DATE__] = ACTIONS(4524),
    [anon_sym___FILE__] = ACTIONS(4524),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4524),
    [anon_sym___FUNCTION__] = ACTIONS(4524),
    [anon_sym___LINE__] = ACTIONS(4524),
    [anon_sym___MODULE__] = ACTIONS(4524),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4524),
    [anon_sym___TIME__] = ACTIONS(4524),
    [anon_sym___TIMESTAMP__] = ACTIONS(4524),
    [anon_sym___VENDOR__] = ACTIONS(4524),
    [anon_sym___VERSION__] = ACTIONS(4524),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4526),
    [sym_float_literal] = ACTIONS(4526),
    [sym__string] = ACTIONS(4526),
  },
  [1665] = {
    [sym_identifier] = ACTIONS(4504),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4506),
    [anon_sym_RBRACE] = ACTIONS(4506),
    [anon_sym_LBRACE] = ACTIONS(4506),
    [anon_sym_DOT] = ACTIONS(4506),
    [anon_sym_AMP] = ACTIONS(4506),
    [anon_sym_DASH] = ACTIONS(4504),
    [anon_sym_DASH_DASH] = ACTIONS(4506),
    [anon_sym_PLUS] = ACTIONS(4504),
    [anon_sym_PLUS_PLUS] = ACTIONS(4506),
    [anon_sym_BANG] = ACTIONS(4506),
    [anon_sym_LPAREN] = ACTIONS(4506),
    [anon_sym_RPAREN] = ACTIONS(4506),
    [anon_sym_LBRACK] = ACTIONS(4506),
    [anon_sym_SEMI] = ACTIONS(4506),
    [anon_sym_DOLLAR] = ACTIONS(4506),
    [anon_sym_STAR] = ACTIONS(4506),
    [anon_sym_TILDE] = ACTIONS(4506),
    [anon_sym_AT] = ACTIONS(4506),
    [sym_bool] = ACTIONS(4504),
    [sym_byte] = ACTIONS(4504),
    [sym_ubyte] = ACTIONS(4504),
    [sym_char] = ACTIONS(4504),
    [sym_short] = ACTIONS(4504),
    [sym_ushort] = ACTIONS(4504),
    [sym_int] = ACTIONS(4504),
    [sym_uint] = ACTIONS(4504),
    [sym_long] = ACTIONS(4504),
    [sym_ulong] = ACTIONS(4504),
    [sym_cent] = ACTIONS(4504),
    [sym_ucent] = ACTIONS(4504),
    [sym_wchar] = ACTIONS(4504),
    [sym_dchar] = ACTIONS(4504),
    [sym_float] = ACTIONS(4504),
    [sym_double] = ACTIONS(4504),
    [sym_real] = ACTIONS(4504),
    [sym_ifloat] = ACTIONS(4504),
    [sym_idouble] = ACTIONS(4504),
    [sym_ireal] = ACTIONS(4504),
    [sym_cfloat] = ACTIONS(4504),
    [sym_cdouble] = ACTIONS(4504),
    [sym_creal] = ACTIONS(4504),
    [sym_size_t] = ACTIONS(4504),
    [sym_ptrdiff_t] = ACTIONS(4504),
    [sym_string] = ACTIONS(4504),
    [sym_cstring] = ACTIONS(4504),
    [sym_dstring] = ACTIONS(4504),
    [sym_wstring] = ACTIONS(4504),
    [sym_noreturn] = ACTIONS(4504),
    [sym_true] = ACTIONS(4504),
    [sym_false] = ACTIONS(4504),
    [sym_null] = ACTIONS(4504),
    [sym_super] = ACTIONS(4504),
    [sym_this] = ACTIONS(4504),
    [sym_abstract] = ACTIONS(4504),
    [sym_alias] = ACTIONS(4504),
    [sym_align] = ACTIONS(4504),
    [sym_asm] = ACTIONS(4504),
    [sym_assert] = ACTIONS(4504),
    [sym_auto] = ACTIONS(4504),
    [sym_break] = ACTIONS(4504),
    [sym_case] = ACTIONS(4504),
    [sym_cast] = ACTIONS(4504),
    [sym_class] = ACTIONS(4504),
    [sym_const] = ACTIONS(4504),
    [sym_continue] = ACTIONS(4504),
    [sym_debug] = ACTIONS(4504),
    [sym_default] = ACTIONS(4504),
    [sym_delegate] = ACTIONS(4504),
    [sym_delete] = ACTIONS(4504),
    [sym_deprecated] = ACTIONS(4504),
    [sym_do] = ACTIONS(4504),
    [sym_else] = ACTIONS(4504),
    [sym_enum] = ACTIONS(4504),
    [sym_export] = ACTIONS(4504),
    [sym_extern] = ACTIONS(4504),
    [sym_final] = ACTIONS(4504),
    [sym_for] = ACTIONS(4504),
    [sym_foreach] = ACTIONS(4504),
    [sym_foreach_reverse] = ACTIONS(4504),
    [sym_function] = ACTIONS(4504),
    [sym_goto] = ACTIONS(4504),
    [sym_if] = ACTIONS(4504),
    [sym_immutable] = ACTIONS(4504),
    [sym_import] = ACTIONS(4504),
    [sym_in] = ACTIONS(4504),
    [sym_inout] = ACTIONS(4504),
    [sym_interface] = ACTIONS(4504),
    [sym_invariant] = ACTIONS(4504),
    [sym_is] = ACTIONS(4504),
    [sym_mixin] = ACTIONS(4504),
    [sym_new] = ACTIONS(4504),
    [sym_nothrow] = ACTIONS(4504),
    [sym_out] = ACTIONS(4504),
    [sym_override] = ACTIONS(4504),
    [sym_package] = ACTIONS(4504),
    [sym_pragma] = ACTIONS(4504),
    [sym_private] = ACTIONS(4504),
    [sym_protected] = ACTIONS(4504),
    [sym_public] = ACTIONS(4504),
    [sym_pure] = ACTIONS(4504),
    [sym_ref] = ACTIONS(4504),
    [sym_return] = ACTIONS(4504),
    [sym_scope] = ACTIONS(4504),
    [sym_shared] = ACTIONS(4504),
    [sym_static] = ACTIONS(4504),
    [sym_struct] = ACTIONS(4504),
    [sym_switch] = ACTIONS(4504),
    [sym_synchronized] = ACTIONS(4504),
    [sym_template] = ACTIONS(4504),
    [sym_throw] = ACTIONS(4504),
    [sym_try] = ACTIONS(4504),
    [sym_typeid] = ACTIONS(4504),
    [sym_typeof] = ACTIONS(4504),
    [sym_union] = ACTIONS(4504),
    [sym_unittest] = ACTIONS(4504),
    [sym_version] = ACTIONS(4504),
    [sym_while] = ACTIONS(4504),
    [sym_with] = ACTIONS(4504),
    [sym_gshared] = ACTIONS(4504),
    [sym_traits] = ACTIONS(4504),
    [sym_vector] = ACTIONS(4504),
    [sym_void] = ACTIONS(4504),
    [anon_sym_BQUOTE] = ACTIONS(4506),
    [anon_sym_r_DQUOTE] = ACTIONS(4506),
    [anon_sym_x_DQUOTE] = ACTIONS(4506),
    [anon_sym_DQUOTE] = ACTIONS(4506),
    [anon_sym_i_BQUOTE] = ACTIONS(4506),
    [anon_sym_i_DQUOTE] = ACTIONS(4506),
    [anon_sym_iq_LBRACE] = ACTIONS(4506),
    [aux_sym_char_literal_token1] = ACTIONS(4506),
    [anon_sym_SQUOTE] = ACTIONS(4504),
    [anon_sym___DATE__] = ACTIONS(4504),
    [anon_sym___FILE__] = ACTIONS(4504),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4504),
    [anon_sym___FUNCTION__] = ACTIONS(4504),
    [anon_sym___LINE__] = ACTIONS(4504),
    [anon_sym___MODULE__] = ACTIONS(4504),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4504),
    [anon_sym___TIME__] = ACTIONS(4504),
    [anon_sym___TIMESTAMP__] = ACTIONS(4504),
    [anon_sym___VENDOR__] = ACTIONS(4504),
    [anon_sym___VERSION__] = ACTIONS(4504),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4506),
    [sym_float_literal] = ACTIONS(4506),
    [sym__string] = ACTIONS(4506),
  },
  [1666] = {
    [sym_identifier] = ACTIONS(4492),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4494),
    [anon_sym_RBRACE] = ACTIONS(4494),
    [anon_sym_LBRACE] = ACTIONS(4494),
    [anon_sym_DOT] = ACTIONS(4494),
    [anon_sym_AMP] = ACTIONS(4494),
    [anon_sym_DASH] = ACTIONS(4492),
    [anon_sym_DASH_DASH] = ACTIONS(4494),
    [anon_sym_PLUS] = ACTIONS(4492),
    [anon_sym_PLUS_PLUS] = ACTIONS(4494),
    [anon_sym_BANG] = ACTIONS(4494),
    [anon_sym_LPAREN] = ACTIONS(4494),
    [anon_sym_RPAREN] = ACTIONS(4494),
    [anon_sym_LBRACK] = ACTIONS(4494),
    [anon_sym_SEMI] = ACTIONS(4494),
    [anon_sym_DOLLAR] = ACTIONS(4494),
    [anon_sym_STAR] = ACTIONS(4494),
    [anon_sym_TILDE] = ACTIONS(4494),
    [anon_sym_AT] = ACTIONS(4494),
    [sym_bool] = ACTIONS(4492),
    [sym_byte] = ACTIONS(4492),
    [sym_ubyte] = ACTIONS(4492),
    [sym_char] = ACTIONS(4492),
    [sym_short] = ACTIONS(4492),
    [sym_ushort] = ACTIONS(4492),
    [sym_int] = ACTIONS(4492),
    [sym_uint] = ACTIONS(4492),
    [sym_long] = ACTIONS(4492),
    [sym_ulong] = ACTIONS(4492),
    [sym_cent] = ACTIONS(4492),
    [sym_ucent] = ACTIONS(4492),
    [sym_wchar] = ACTIONS(4492),
    [sym_dchar] = ACTIONS(4492),
    [sym_float] = ACTIONS(4492),
    [sym_double] = ACTIONS(4492),
    [sym_real] = ACTIONS(4492),
    [sym_ifloat] = ACTIONS(4492),
    [sym_idouble] = ACTIONS(4492),
    [sym_ireal] = ACTIONS(4492),
    [sym_cfloat] = ACTIONS(4492),
    [sym_cdouble] = ACTIONS(4492),
    [sym_creal] = ACTIONS(4492),
    [sym_size_t] = ACTIONS(4492),
    [sym_ptrdiff_t] = ACTIONS(4492),
    [sym_string] = ACTIONS(4492),
    [sym_cstring] = ACTIONS(4492),
    [sym_dstring] = ACTIONS(4492),
    [sym_wstring] = ACTIONS(4492),
    [sym_noreturn] = ACTIONS(4492),
    [sym_true] = ACTIONS(4492),
    [sym_false] = ACTIONS(4492),
    [sym_null] = ACTIONS(4492),
    [sym_super] = ACTIONS(4492),
    [sym_this] = ACTIONS(4492),
    [sym_abstract] = ACTIONS(4492),
    [sym_alias] = ACTIONS(4492),
    [sym_align] = ACTIONS(4492),
    [sym_asm] = ACTIONS(4492),
    [sym_assert] = ACTIONS(4492),
    [sym_auto] = ACTIONS(4492),
    [sym_break] = ACTIONS(4492),
    [sym_case] = ACTIONS(4492),
    [sym_cast] = ACTIONS(4492),
    [sym_class] = ACTIONS(4492),
    [sym_const] = ACTIONS(4492),
    [sym_continue] = ACTIONS(4492),
    [sym_debug] = ACTIONS(4492),
    [sym_default] = ACTIONS(4492),
    [sym_delegate] = ACTIONS(4492),
    [sym_delete] = ACTIONS(4492),
    [sym_deprecated] = ACTIONS(4492),
    [sym_do] = ACTIONS(4492),
    [sym_else] = ACTIONS(4492),
    [sym_enum] = ACTIONS(4492),
    [sym_export] = ACTIONS(4492),
    [sym_extern] = ACTIONS(4492),
    [sym_final] = ACTIONS(4492),
    [sym_for] = ACTIONS(4492),
    [sym_foreach] = ACTIONS(4492),
    [sym_foreach_reverse] = ACTIONS(4492),
    [sym_function] = ACTIONS(4492),
    [sym_goto] = ACTIONS(4492),
    [sym_if] = ACTIONS(4492),
    [sym_immutable] = ACTIONS(4492),
    [sym_import] = ACTIONS(4492),
    [sym_in] = ACTIONS(4492),
    [sym_inout] = ACTIONS(4492),
    [sym_interface] = ACTIONS(4492),
    [sym_invariant] = ACTIONS(4492),
    [sym_is] = ACTIONS(4492),
    [sym_mixin] = ACTIONS(4492),
    [sym_new] = ACTIONS(4492),
    [sym_nothrow] = ACTIONS(4492),
    [sym_out] = ACTIONS(4492),
    [sym_override] = ACTIONS(4492),
    [sym_package] = ACTIONS(4492),
    [sym_pragma] = ACTIONS(4492),
    [sym_private] = ACTIONS(4492),
    [sym_protected] = ACTIONS(4492),
    [sym_public] = ACTIONS(4492),
    [sym_pure] = ACTIONS(4492),
    [sym_ref] = ACTIONS(4492),
    [sym_return] = ACTIONS(4492),
    [sym_scope] = ACTIONS(4492),
    [sym_shared] = ACTIONS(4492),
    [sym_static] = ACTIONS(4492),
    [sym_struct] = ACTIONS(4492),
    [sym_switch] = ACTIONS(4492),
    [sym_synchronized] = ACTIONS(4492),
    [sym_template] = ACTIONS(4492),
    [sym_throw] = ACTIONS(4492),
    [sym_try] = ACTIONS(4492),
    [sym_typeid] = ACTIONS(4492),
    [sym_typeof] = ACTIONS(4492),
    [sym_union] = ACTIONS(4492),
    [sym_unittest] = ACTIONS(4492),
    [sym_version] = ACTIONS(4492),
    [sym_while] = ACTIONS(4492),
    [sym_with] = ACTIONS(4492),
    [sym_gshared] = ACTIONS(4492),
    [sym_traits] = ACTIONS(4492),
    [sym_vector] = ACTIONS(4492),
    [sym_void] = ACTIONS(4492),
    [anon_sym_BQUOTE] = ACTIONS(4494),
    [anon_sym_r_DQUOTE] = ACTIONS(4494),
    [anon_sym_x_DQUOTE] = ACTIONS(4494),
    [anon_sym_DQUOTE] = ACTIONS(4494),
    [anon_sym_i_BQUOTE] = ACTIONS(4494),
    [anon_sym_i_DQUOTE] = ACTIONS(4494),
    [anon_sym_iq_LBRACE] = ACTIONS(4494),
    [aux_sym_char_literal_token1] = ACTIONS(4494),
    [anon_sym_SQUOTE] = ACTIONS(4492),
    [anon_sym___DATE__] = ACTIONS(4492),
    [anon_sym___FILE__] = ACTIONS(4492),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4492),
    [anon_sym___FUNCTION__] = ACTIONS(4492),
    [anon_sym___LINE__] = ACTIONS(4492),
    [anon_sym___MODULE__] = ACTIONS(4492),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4492),
    [anon_sym___TIME__] = ACTIONS(4492),
    [anon_sym___TIMESTAMP__] = ACTIONS(4492),
    [anon_sym___VENDOR__] = ACTIONS(4492),
    [anon_sym___VERSION__] = ACTIONS(4492),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4494),
    [sym_float_literal] = ACTIONS(4494),
    [sym__string] = ACTIONS(4494),
  },
  [1667] = {
    [sym_identifier] = ACTIONS(4488),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4490),
    [anon_sym_RBRACE] = ACTIONS(4490),
    [anon_sym_LBRACE] = ACTIONS(4490),
    [anon_sym_DOT] = ACTIONS(4490),
    [anon_sym_AMP] = ACTIONS(4490),
    [anon_sym_DASH] = ACTIONS(4488),
    [anon_sym_DASH_DASH] = ACTIONS(4490),
    [anon_sym_PLUS] = ACTIONS(4488),
    [anon_sym_PLUS_PLUS] = ACTIONS(4490),
    [anon_sym_BANG] = ACTIONS(4490),
    [anon_sym_LPAREN] = ACTIONS(4490),
    [anon_sym_RPAREN] = ACTIONS(4490),
    [anon_sym_LBRACK] = ACTIONS(4490),
    [anon_sym_SEMI] = ACTIONS(4490),
    [anon_sym_DOLLAR] = ACTIONS(4490),
    [anon_sym_STAR] = ACTIONS(4490),
    [anon_sym_TILDE] = ACTIONS(4490),
    [anon_sym_AT] = ACTIONS(4490),
    [sym_bool] = ACTIONS(4488),
    [sym_byte] = ACTIONS(4488),
    [sym_ubyte] = ACTIONS(4488),
    [sym_char] = ACTIONS(4488),
    [sym_short] = ACTIONS(4488),
    [sym_ushort] = ACTIONS(4488),
    [sym_int] = ACTIONS(4488),
    [sym_uint] = ACTIONS(4488),
    [sym_long] = ACTIONS(4488),
    [sym_ulong] = ACTIONS(4488),
    [sym_cent] = ACTIONS(4488),
    [sym_ucent] = ACTIONS(4488),
    [sym_wchar] = ACTIONS(4488),
    [sym_dchar] = ACTIONS(4488),
    [sym_float] = ACTIONS(4488),
    [sym_double] = ACTIONS(4488),
    [sym_real] = ACTIONS(4488),
    [sym_ifloat] = ACTIONS(4488),
    [sym_idouble] = ACTIONS(4488),
    [sym_ireal] = ACTIONS(4488),
    [sym_cfloat] = ACTIONS(4488),
    [sym_cdouble] = ACTIONS(4488),
    [sym_creal] = ACTIONS(4488),
    [sym_size_t] = ACTIONS(4488),
    [sym_ptrdiff_t] = ACTIONS(4488),
    [sym_string] = ACTIONS(4488),
    [sym_cstring] = ACTIONS(4488),
    [sym_dstring] = ACTIONS(4488),
    [sym_wstring] = ACTIONS(4488),
    [sym_noreturn] = ACTIONS(4488),
    [sym_true] = ACTIONS(4488),
    [sym_false] = ACTIONS(4488),
    [sym_null] = ACTIONS(4488),
    [sym_super] = ACTIONS(4488),
    [sym_this] = ACTIONS(4488),
    [sym_abstract] = ACTIONS(4488),
    [sym_alias] = ACTIONS(4488),
    [sym_align] = ACTIONS(4488),
    [sym_asm] = ACTIONS(4488),
    [sym_assert] = ACTIONS(4488),
    [sym_auto] = ACTIONS(4488),
    [sym_break] = ACTIONS(4488),
    [sym_case] = ACTIONS(4488),
    [sym_cast] = ACTIONS(4488),
    [sym_class] = ACTIONS(4488),
    [sym_const] = ACTIONS(4488),
    [sym_continue] = ACTIONS(4488),
    [sym_debug] = ACTIONS(4488),
    [sym_default] = ACTIONS(4488),
    [sym_delegate] = ACTIONS(4488),
    [sym_delete] = ACTIONS(4488),
    [sym_deprecated] = ACTIONS(4488),
    [sym_do] = ACTIONS(4488),
    [sym_else] = ACTIONS(4488),
    [sym_enum] = ACTIONS(4488),
    [sym_export] = ACTIONS(4488),
    [sym_extern] = ACTIONS(4488),
    [sym_final] = ACTIONS(4488),
    [sym_for] = ACTIONS(4488),
    [sym_foreach] = ACTIONS(4488),
    [sym_foreach_reverse] = ACTIONS(4488),
    [sym_function] = ACTIONS(4488),
    [sym_goto] = ACTIONS(4488),
    [sym_if] = ACTIONS(4488),
    [sym_immutable] = ACTIONS(4488),
    [sym_import] = ACTIONS(4488),
    [sym_in] = ACTIONS(4488),
    [sym_inout] = ACTIONS(4488),
    [sym_interface] = ACTIONS(4488),
    [sym_invariant] = ACTIONS(4488),
    [sym_is] = ACTIONS(4488),
    [sym_mixin] = ACTIONS(4488),
    [sym_new] = ACTIONS(4488),
    [sym_nothrow] = ACTIONS(4488),
    [sym_out] = ACTIONS(4488),
    [sym_override] = ACTIONS(4488),
    [sym_package] = ACTIONS(4488),
    [sym_pragma] = ACTIONS(4488),
    [sym_private] = ACTIONS(4488),
    [sym_protected] = ACTIONS(4488),
    [sym_public] = ACTIONS(4488),
    [sym_pure] = ACTIONS(4488),
    [sym_ref] = ACTIONS(4488),
    [sym_return] = ACTIONS(4488),
    [sym_scope] = ACTIONS(4488),
    [sym_shared] = ACTIONS(4488),
    [sym_static] = ACTIONS(4488),
    [sym_struct] = ACTIONS(4488),
    [sym_switch] = ACTIONS(4488),
    [sym_synchronized] = ACTIONS(4488),
    [sym_template] = ACTIONS(4488),
    [sym_throw] = ACTIONS(4488),
    [sym_try] = ACTIONS(4488),
    [sym_typeid] = ACTIONS(4488),
    [sym_typeof] = ACTIONS(4488),
    [sym_union] = ACTIONS(4488),
    [sym_unittest] = ACTIONS(4488),
    [sym_version] = ACTIONS(4488),
    [sym_while] = ACTIONS(4488),
    [sym_with] = ACTIONS(4488),
    [sym_gshared] = ACTIONS(4488),
    [sym_traits] = ACTIONS(4488),
    [sym_vector] = ACTIONS(4488),
    [sym_void] = ACTIONS(4488),
    [anon_sym_BQUOTE] = ACTIONS(4490),
    [anon_sym_r_DQUOTE] = ACTIONS(4490),
    [anon_sym_x_DQUOTE] = ACTIONS(4490),
    [anon_sym_DQUOTE] = ACTIONS(4490),
    [anon_sym_i_BQUOTE] = ACTIONS(4490),
    [anon_sym_i_DQUOTE] = ACTIONS(4490),
    [anon_sym_iq_LBRACE] = ACTIONS(4490),
    [aux_sym_char_literal_token1] = ACTIONS(4490),
    [anon_sym_SQUOTE] = ACTIONS(4488),
    [anon_sym___DATE__] = ACTIONS(4488),
    [anon_sym___FILE__] = ACTIONS(4488),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4488),
    [anon_sym___FUNCTION__] = ACTIONS(4488),
    [anon_sym___LINE__] = ACTIONS(4488),
    [anon_sym___MODULE__] = ACTIONS(4488),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4488),
    [anon_sym___TIME__] = ACTIONS(4488),
    [anon_sym___TIMESTAMP__] = ACTIONS(4488),
    [anon_sym___VENDOR__] = ACTIONS(4488),
    [anon_sym___VERSION__] = ACTIONS(4488),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4490),
    [sym_float_literal] = ACTIONS(4490),
    [sym__string] = ACTIONS(4490),
  },
  [1668] = {
    [sym_identifier] = ACTIONS(4948),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4950),
    [anon_sym_RBRACE] = ACTIONS(4950),
    [anon_sym_LBRACE] = ACTIONS(4950),
    [anon_sym_DOT] = ACTIONS(4950),
    [anon_sym_AMP] = ACTIONS(4950),
    [anon_sym_DASH] = ACTIONS(4948),
    [anon_sym_DASH_DASH] = ACTIONS(4950),
    [anon_sym_PLUS] = ACTIONS(4948),
    [anon_sym_PLUS_PLUS] = ACTIONS(4950),
    [anon_sym_BANG] = ACTIONS(4950),
    [anon_sym_LPAREN] = ACTIONS(4950),
    [anon_sym_RPAREN] = ACTIONS(4950),
    [anon_sym_LBRACK] = ACTIONS(4950),
    [anon_sym_SEMI] = ACTIONS(4950),
    [anon_sym_DOLLAR] = ACTIONS(4950),
    [anon_sym_STAR] = ACTIONS(4950),
    [anon_sym_TILDE] = ACTIONS(4950),
    [anon_sym_AT] = ACTIONS(4950),
    [sym_bool] = ACTIONS(4948),
    [sym_byte] = ACTIONS(4948),
    [sym_ubyte] = ACTIONS(4948),
    [sym_char] = ACTIONS(4948),
    [sym_short] = ACTIONS(4948),
    [sym_ushort] = ACTIONS(4948),
    [sym_int] = ACTIONS(4948),
    [sym_uint] = ACTIONS(4948),
    [sym_long] = ACTIONS(4948),
    [sym_ulong] = ACTIONS(4948),
    [sym_cent] = ACTIONS(4948),
    [sym_ucent] = ACTIONS(4948),
    [sym_wchar] = ACTIONS(4948),
    [sym_dchar] = ACTIONS(4948),
    [sym_float] = ACTIONS(4948),
    [sym_double] = ACTIONS(4948),
    [sym_real] = ACTIONS(4948),
    [sym_ifloat] = ACTIONS(4948),
    [sym_idouble] = ACTIONS(4948),
    [sym_ireal] = ACTIONS(4948),
    [sym_cfloat] = ACTIONS(4948),
    [sym_cdouble] = ACTIONS(4948),
    [sym_creal] = ACTIONS(4948),
    [sym_size_t] = ACTIONS(4948),
    [sym_ptrdiff_t] = ACTIONS(4948),
    [sym_string] = ACTIONS(4948),
    [sym_cstring] = ACTIONS(4948),
    [sym_dstring] = ACTIONS(4948),
    [sym_wstring] = ACTIONS(4948),
    [sym_noreturn] = ACTIONS(4948),
    [sym_true] = ACTIONS(4948),
    [sym_false] = ACTIONS(4948),
    [sym_null] = ACTIONS(4948),
    [sym_super] = ACTIONS(4948),
    [sym_this] = ACTIONS(4948),
    [sym_abstract] = ACTIONS(4948),
    [sym_alias] = ACTIONS(4948),
    [sym_align] = ACTIONS(4948),
    [sym_asm] = ACTIONS(4948),
    [sym_assert] = ACTIONS(4948),
    [sym_auto] = ACTIONS(4948),
    [sym_break] = ACTIONS(4948),
    [sym_case] = ACTIONS(4948),
    [sym_cast] = ACTIONS(4948),
    [sym_class] = ACTIONS(4948),
    [sym_const] = ACTIONS(4948),
    [sym_continue] = ACTIONS(4948),
    [sym_debug] = ACTIONS(4948),
    [sym_default] = ACTIONS(4948),
    [sym_delegate] = ACTIONS(4948),
    [sym_delete] = ACTIONS(4948),
    [sym_deprecated] = ACTIONS(4948),
    [sym_do] = ACTIONS(4948),
    [sym_else] = ACTIONS(4948),
    [sym_enum] = ACTIONS(4948),
    [sym_export] = ACTIONS(4948),
    [sym_extern] = ACTIONS(4948),
    [sym_final] = ACTIONS(4948),
    [sym_for] = ACTIONS(4948),
    [sym_foreach] = ACTIONS(4948),
    [sym_foreach_reverse] = ACTIONS(4948),
    [sym_function] = ACTIONS(4948),
    [sym_goto] = ACTIONS(4948),
    [sym_if] = ACTIONS(4948),
    [sym_immutable] = ACTIONS(4948),
    [sym_import] = ACTIONS(4948),
    [sym_in] = ACTIONS(4948),
    [sym_inout] = ACTIONS(4948),
    [sym_interface] = ACTIONS(4948),
    [sym_invariant] = ACTIONS(4948),
    [sym_is] = ACTIONS(4948),
    [sym_mixin] = ACTIONS(4948),
    [sym_new] = ACTIONS(4948),
    [sym_nothrow] = ACTIONS(4948),
    [sym_out] = ACTIONS(4948),
    [sym_override] = ACTIONS(4948),
    [sym_package] = ACTIONS(4948),
    [sym_pragma] = ACTIONS(4948),
    [sym_private] = ACTIONS(4948),
    [sym_protected] = ACTIONS(4948),
    [sym_public] = ACTIONS(4948),
    [sym_pure] = ACTIONS(4948),
    [sym_ref] = ACTIONS(4948),
    [sym_return] = ACTIONS(4948),
    [sym_scope] = ACTIONS(4948),
    [sym_shared] = ACTIONS(4948),
    [sym_static] = ACTIONS(4948),
    [sym_struct] = ACTIONS(4948),
    [sym_switch] = ACTIONS(4948),
    [sym_synchronized] = ACTIONS(4948),
    [sym_template] = ACTIONS(4948),
    [sym_throw] = ACTIONS(4948),
    [sym_try] = ACTIONS(4948),
    [sym_typeid] = ACTIONS(4948),
    [sym_typeof] = ACTIONS(4948),
    [sym_union] = ACTIONS(4948),
    [sym_unittest] = ACTIONS(4948),
    [sym_version] = ACTIONS(4948),
    [sym_while] = ACTIONS(4948),
    [sym_with] = ACTIONS(4948),
    [sym_gshared] = ACTIONS(4948),
    [sym_traits] = ACTIONS(4948),
    [sym_vector] = ACTIONS(4948),
    [sym_void] = ACTIONS(4948),
    [anon_sym_BQUOTE] = ACTIONS(4950),
    [anon_sym_r_DQUOTE] = ACTIONS(4950),
    [anon_sym_x_DQUOTE] = ACTIONS(4950),
    [anon_sym_DQUOTE] = ACTIONS(4950),
    [anon_sym_i_BQUOTE] = ACTIONS(4950),
    [anon_sym_i_DQUOTE] = ACTIONS(4950),
    [anon_sym_iq_LBRACE] = ACTIONS(4950),
    [aux_sym_char_literal_token1] = ACTIONS(4950),
    [anon_sym_SQUOTE] = ACTIONS(4948),
    [anon_sym___DATE__] = ACTIONS(4948),
    [anon_sym___FILE__] = ACTIONS(4948),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4948),
    [anon_sym___FUNCTION__] = ACTIONS(4948),
    [anon_sym___LINE__] = ACTIONS(4948),
    [anon_sym___MODULE__] = ACTIONS(4948),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4948),
    [anon_sym___TIME__] = ACTIONS(4948),
    [anon_sym___TIMESTAMP__] = ACTIONS(4948),
    [anon_sym___VENDOR__] = ACTIONS(4948),
    [anon_sym___VERSION__] = ACTIONS(4948),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4950),
    [sym_float_literal] = ACTIONS(4950),
    [sym__string] = ACTIONS(4950),
  },
  [1669] = {
    [sym_identifier] = ACTIONS(4956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4958),
    [anon_sym_RBRACE] = ACTIONS(4958),
    [anon_sym_LBRACE] = ACTIONS(4958),
    [anon_sym_DOT] = ACTIONS(4958),
    [anon_sym_AMP] = ACTIONS(4958),
    [anon_sym_DASH] = ACTIONS(4956),
    [anon_sym_DASH_DASH] = ACTIONS(4958),
    [anon_sym_PLUS] = ACTIONS(4956),
    [anon_sym_PLUS_PLUS] = ACTIONS(4958),
    [anon_sym_BANG] = ACTIONS(4958),
    [anon_sym_LPAREN] = ACTIONS(4958),
    [anon_sym_RPAREN] = ACTIONS(4958),
    [anon_sym_LBRACK] = ACTIONS(4958),
    [anon_sym_SEMI] = ACTIONS(4958),
    [anon_sym_DOLLAR] = ACTIONS(4958),
    [anon_sym_STAR] = ACTIONS(4958),
    [anon_sym_TILDE] = ACTIONS(4958),
    [anon_sym_AT] = ACTIONS(4958),
    [sym_bool] = ACTIONS(4956),
    [sym_byte] = ACTIONS(4956),
    [sym_ubyte] = ACTIONS(4956),
    [sym_char] = ACTIONS(4956),
    [sym_short] = ACTIONS(4956),
    [sym_ushort] = ACTIONS(4956),
    [sym_int] = ACTIONS(4956),
    [sym_uint] = ACTIONS(4956),
    [sym_long] = ACTIONS(4956),
    [sym_ulong] = ACTIONS(4956),
    [sym_cent] = ACTIONS(4956),
    [sym_ucent] = ACTIONS(4956),
    [sym_wchar] = ACTIONS(4956),
    [sym_dchar] = ACTIONS(4956),
    [sym_float] = ACTIONS(4956),
    [sym_double] = ACTIONS(4956),
    [sym_real] = ACTIONS(4956),
    [sym_ifloat] = ACTIONS(4956),
    [sym_idouble] = ACTIONS(4956),
    [sym_ireal] = ACTIONS(4956),
    [sym_cfloat] = ACTIONS(4956),
    [sym_cdouble] = ACTIONS(4956),
    [sym_creal] = ACTIONS(4956),
    [sym_size_t] = ACTIONS(4956),
    [sym_ptrdiff_t] = ACTIONS(4956),
    [sym_string] = ACTIONS(4956),
    [sym_cstring] = ACTIONS(4956),
    [sym_dstring] = ACTIONS(4956),
    [sym_wstring] = ACTIONS(4956),
    [sym_noreturn] = ACTIONS(4956),
    [sym_true] = ACTIONS(4956),
    [sym_false] = ACTIONS(4956),
    [sym_null] = ACTIONS(4956),
    [sym_super] = ACTIONS(4956),
    [sym_this] = ACTIONS(4956),
    [sym_abstract] = ACTIONS(4956),
    [sym_alias] = ACTIONS(4956),
    [sym_align] = ACTIONS(4956),
    [sym_asm] = ACTIONS(4956),
    [sym_assert] = ACTIONS(4956),
    [sym_auto] = ACTIONS(4956),
    [sym_break] = ACTIONS(4956),
    [sym_case] = ACTIONS(4956),
    [sym_cast] = ACTIONS(4956),
    [sym_class] = ACTIONS(4956),
    [sym_const] = ACTIONS(4956),
    [sym_continue] = ACTIONS(4956),
    [sym_debug] = ACTIONS(4956),
    [sym_default] = ACTIONS(4956),
    [sym_delegate] = ACTIONS(4956),
    [sym_delete] = ACTIONS(4956),
    [sym_deprecated] = ACTIONS(4956),
    [sym_do] = ACTIONS(4956),
    [sym_else] = ACTIONS(4956),
    [sym_enum] = ACTIONS(4956),
    [sym_export] = ACTIONS(4956),
    [sym_extern] = ACTIONS(4956),
    [sym_final] = ACTIONS(4956),
    [sym_for] = ACTIONS(4956),
    [sym_foreach] = ACTIONS(4956),
    [sym_foreach_reverse] = ACTIONS(4956),
    [sym_function] = ACTIONS(4956),
    [sym_goto] = ACTIONS(4956),
    [sym_if] = ACTIONS(4956),
    [sym_immutable] = ACTIONS(4956),
    [sym_import] = ACTIONS(4956),
    [sym_in] = ACTIONS(4956),
    [sym_inout] = ACTIONS(4956),
    [sym_interface] = ACTIONS(4956),
    [sym_invariant] = ACTIONS(4956),
    [sym_is] = ACTIONS(4956),
    [sym_mixin] = ACTIONS(4956),
    [sym_new] = ACTIONS(4956),
    [sym_nothrow] = ACTIONS(4956),
    [sym_out] = ACTIONS(4956),
    [sym_override] = ACTIONS(4956),
    [sym_package] = ACTIONS(4956),
    [sym_pragma] = ACTIONS(4956),
    [sym_private] = ACTIONS(4956),
    [sym_protected] = ACTIONS(4956),
    [sym_public] = ACTIONS(4956),
    [sym_pure] = ACTIONS(4956),
    [sym_ref] = ACTIONS(4956),
    [sym_return] = ACTIONS(4956),
    [sym_scope] = ACTIONS(4956),
    [sym_shared] = ACTIONS(4956),
    [sym_static] = ACTIONS(4956),
    [sym_struct] = ACTIONS(4956),
    [sym_switch] = ACTIONS(4956),
    [sym_synchronized] = ACTIONS(4956),
    [sym_template] = ACTIONS(4956),
    [sym_throw] = ACTIONS(4956),
    [sym_try] = ACTIONS(4956),
    [sym_typeid] = ACTIONS(4956),
    [sym_typeof] = ACTIONS(4956),
    [sym_union] = ACTIONS(4956),
    [sym_unittest] = ACTIONS(4956),
    [sym_version] = ACTIONS(4956),
    [sym_while] = ACTIONS(4956),
    [sym_with] = ACTIONS(4956),
    [sym_gshared] = ACTIONS(4956),
    [sym_traits] = ACTIONS(4956),
    [sym_vector] = ACTIONS(4956),
    [sym_void] = ACTIONS(4956),
    [anon_sym_BQUOTE] = ACTIONS(4958),
    [anon_sym_r_DQUOTE] = ACTIONS(4958),
    [anon_sym_x_DQUOTE] = ACTIONS(4958),
    [anon_sym_DQUOTE] = ACTIONS(4958),
    [anon_sym_i_BQUOTE] = ACTIONS(4958),
    [anon_sym_i_DQUOTE] = ACTIONS(4958),
    [anon_sym_iq_LBRACE] = ACTIONS(4958),
    [aux_sym_char_literal_token1] = ACTIONS(4958),
    [anon_sym_SQUOTE] = ACTIONS(4956),
    [anon_sym___DATE__] = ACTIONS(4956),
    [anon_sym___FILE__] = ACTIONS(4956),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4956),
    [anon_sym___FUNCTION__] = ACTIONS(4956),
    [anon_sym___LINE__] = ACTIONS(4956),
    [anon_sym___MODULE__] = ACTIONS(4956),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4956),
    [anon_sym___TIME__] = ACTIONS(4956),
    [anon_sym___TIMESTAMP__] = ACTIONS(4956),
    [anon_sym___VENDOR__] = ACTIONS(4956),
    [anon_sym___VERSION__] = ACTIONS(4956),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4958),
    [sym_float_literal] = ACTIONS(4958),
    [sym__string] = ACTIONS(4958),
  },
  [1670] = {
    [sym_identifier] = ACTIONS(4484),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4486),
    [anon_sym_RBRACE] = ACTIONS(4486),
    [anon_sym_LBRACE] = ACTIONS(4486),
    [anon_sym_DOT] = ACTIONS(4486),
    [anon_sym_AMP] = ACTIONS(4486),
    [anon_sym_DASH] = ACTIONS(4484),
    [anon_sym_DASH_DASH] = ACTIONS(4486),
    [anon_sym_PLUS] = ACTIONS(4484),
    [anon_sym_PLUS_PLUS] = ACTIONS(4486),
    [anon_sym_BANG] = ACTIONS(4486),
    [anon_sym_LPAREN] = ACTIONS(4486),
    [anon_sym_RPAREN] = ACTIONS(4486),
    [anon_sym_LBRACK] = ACTIONS(4486),
    [anon_sym_SEMI] = ACTIONS(4486),
    [anon_sym_DOLLAR] = ACTIONS(4486),
    [anon_sym_STAR] = ACTIONS(4486),
    [anon_sym_TILDE] = ACTIONS(4486),
    [anon_sym_AT] = ACTIONS(4486),
    [sym_bool] = ACTIONS(4484),
    [sym_byte] = ACTIONS(4484),
    [sym_ubyte] = ACTIONS(4484),
    [sym_char] = ACTIONS(4484),
    [sym_short] = ACTIONS(4484),
    [sym_ushort] = ACTIONS(4484),
    [sym_int] = ACTIONS(4484),
    [sym_uint] = ACTIONS(4484),
    [sym_long] = ACTIONS(4484),
    [sym_ulong] = ACTIONS(4484),
    [sym_cent] = ACTIONS(4484),
    [sym_ucent] = ACTIONS(4484),
    [sym_wchar] = ACTIONS(4484),
    [sym_dchar] = ACTIONS(4484),
    [sym_float] = ACTIONS(4484),
    [sym_double] = ACTIONS(4484),
    [sym_real] = ACTIONS(4484),
    [sym_ifloat] = ACTIONS(4484),
    [sym_idouble] = ACTIONS(4484),
    [sym_ireal] = ACTIONS(4484),
    [sym_cfloat] = ACTIONS(4484),
    [sym_cdouble] = ACTIONS(4484),
    [sym_creal] = ACTIONS(4484),
    [sym_size_t] = ACTIONS(4484),
    [sym_ptrdiff_t] = ACTIONS(4484),
    [sym_string] = ACTIONS(4484),
    [sym_cstring] = ACTIONS(4484),
    [sym_dstring] = ACTIONS(4484),
    [sym_wstring] = ACTIONS(4484),
    [sym_noreturn] = ACTIONS(4484),
    [sym_true] = ACTIONS(4484),
    [sym_false] = ACTIONS(4484),
    [sym_null] = ACTIONS(4484),
    [sym_super] = ACTIONS(4484),
    [sym_this] = ACTIONS(4484),
    [sym_abstract] = ACTIONS(4484),
    [sym_alias] = ACTIONS(4484),
    [sym_align] = ACTIONS(4484),
    [sym_asm] = ACTIONS(4484),
    [sym_assert] = ACTIONS(4484),
    [sym_auto] = ACTIONS(4484),
    [sym_break] = ACTIONS(4484),
    [sym_case] = ACTIONS(4484),
    [sym_cast] = ACTIONS(4484),
    [sym_class] = ACTIONS(4484),
    [sym_const] = ACTIONS(4484),
    [sym_continue] = ACTIONS(4484),
    [sym_debug] = ACTIONS(4484),
    [sym_default] = ACTIONS(4484),
    [sym_delegate] = ACTIONS(4484),
    [sym_delete] = ACTIONS(4484),
    [sym_deprecated] = ACTIONS(4484),
    [sym_do] = ACTIONS(4484),
    [sym_else] = ACTIONS(4484),
    [sym_enum] = ACTIONS(4484),
    [sym_export] = ACTIONS(4484),
    [sym_extern] = ACTIONS(4484),
    [sym_final] = ACTIONS(4484),
    [sym_for] = ACTIONS(4484),
    [sym_foreach] = ACTIONS(4484),
    [sym_foreach_reverse] = ACTIONS(4484),
    [sym_function] = ACTIONS(4484),
    [sym_goto] = ACTIONS(4484),
    [sym_if] = ACTIONS(4484),
    [sym_immutable] = ACTIONS(4484),
    [sym_import] = ACTIONS(4484),
    [sym_in] = ACTIONS(4484),
    [sym_inout] = ACTIONS(4484),
    [sym_interface] = ACTIONS(4484),
    [sym_invariant] = ACTIONS(4484),
    [sym_is] = ACTIONS(4484),
    [sym_mixin] = ACTIONS(4484),
    [sym_new] = ACTIONS(4484),
    [sym_nothrow] = ACTIONS(4484),
    [sym_out] = ACTIONS(4484),
    [sym_override] = ACTIONS(4484),
    [sym_package] = ACTIONS(4484),
    [sym_pragma] = ACTIONS(4484),
    [sym_private] = ACTIONS(4484),
    [sym_protected] = ACTIONS(4484),
    [sym_public] = ACTIONS(4484),
    [sym_pure] = ACTIONS(4484),
    [sym_ref] = ACTIONS(4484),
    [sym_return] = ACTIONS(4484),
    [sym_scope] = ACTIONS(4484),
    [sym_shared] = ACTIONS(4484),
    [sym_static] = ACTIONS(4484),
    [sym_struct] = ACTIONS(4484),
    [sym_switch] = ACTIONS(4484),
    [sym_synchronized] = ACTIONS(4484),
    [sym_template] = ACTIONS(4484),
    [sym_throw] = ACTIONS(4484),
    [sym_try] = ACTIONS(4484),
    [sym_typeid] = ACTIONS(4484),
    [sym_typeof] = ACTIONS(4484),
    [sym_union] = ACTIONS(4484),
    [sym_unittest] = ACTIONS(4484),
    [sym_version] = ACTIONS(4484),
    [sym_while] = ACTIONS(4484),
    [sym_with] = ACTIONS(4484),
    [sym_gshared] = ACTIONS(4484),
    [sym_traits] = ACTIONS(4484),
    [sym_vector] = ACTIONS(4484),
    [sym_void] = ACTIONS(4484),
    [anon_sym_BQUOTE] = ACTIONS(4486),
    [anon_sym_r_DQUOTE] = ACTIONS(4486),
    [anon_sym_x_DQUOTE] = ACTIONS(4486),
    [anon_sym_DQUOTE] = ACTIONS(4486),
    [anon_sym_i_BQUOTE] = ACTIONS(4486),
    [anon_sym_i_DQUOTE] = ACTIONS(4486),
    [anon_sym_iq_LBRACE] = ACTIONS(4486),
    [aux_sym_char_literal_token1] = ACTIONS(4486),
    [anon_sym_SQUOTE] = ACTIONS(4484),
    [anon_sym___DATE__] = ACTIONS(4484),
    [anon_sym___FILE__] = ACTIONS(4484),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4484),
    [anon_sym___FUNCTION__] = ACTIONS(4484),
    [anon_sym___LINE__] = ACTIONS(4484),
    [anon_sym___MODULE__] = ACTIONS(4484),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4484),
    [anon_sym___TIME__] = ACTIONS(4484),
    [anon_sym___TIMESTAMP__] = ACTIONS(4484),
    [anon_sym___VENDOR__] = ACTIONS(4484),
    [anon_sym___VERSION__] = ACTIONS(4484),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4486),
    [sym_float_literal] = ACTIONS(4486),
    [sym__string] = ACTIONS(4486),
  },
  [1671] = {
    [sym_identifier] = ACTIONS(5072),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5074),
    [anon_sym_RBRACE] = ACTIONS(5074),
    [anon_sym_LBRACE] = ACTIONS(5074),
    [anon_sym_DOT] = ACTIONS(5074),
    [anon_sym_AMP] = ACTIONS(5074),
    [anon_sym_DASH] = ACTIONS(5072),
    [anon_sym_DASH_DASH] = ACTIONS(5074),
    [anon_sym_PLUS] = ACTIONS(5072),
    [anon_sym_PLUS_PLUS] = ACTIONS(5074),
    [anon_sym_BANG] = ACTIONS(5074),
    [anon_sym_LPAREN] = ACTIONS(5074),
    [anon_sym_RPAREN] = ACTIONS(5074),
    [anon_sym_LBRACK] = ACTIONS(5074),
    [anon_sym_SEMI] = ACTIONS(5074),
    [anon_sym_DOLLAR] = ACTIONS(5074),
    [anon_sym_STAR] = ACTIONS(5074),
    [anon_sym_TILDE] = ACTIONS(5074),
    [anon_sym_AT] = ACTIONS(5074),
    [sym_bool] = ACTIONS(5072),
    [sym_byte] = ACTIONS(5072),
    [sym_ubyte] = ACTIONS(5072),
    [sym_char] = ACTIONS(5072),
    [sym_short] = ACTIONS(5072),
    [sym_ushort] = ACTIONS(5072),
    [sym_int] = ACTIONS(5072),
    [sym_uint] = ACTIONS(5072),
    [sym_long] = ACTIONS(5072),
    [sym_ulong] = ACTIONS(5072),
    [sym_cent] = ACTIONS(5072),
    [sym_ucent] = ACTIONS(5072),
    [sym_wchar] = ACTIONS(5072),
    [sym_dchar] = ACTIONS(5072),
    [sym_float] = ACTIONS(5072),
    [sym_double] = ACTIONS(5072),
    [sym_real] = ACTIONS(5072),
    [sym_ifloat] = ACTIONS(5072),
    [sym_idouble] = ACTIONS(5072),
    [sym_ireal] = ACTIONS(5072),
    [sym_cfloat] = ACTIONS(5072),
    [sym_cdouble] = ACTIONS(5072),
    [sym_creal] = ACTIONS(5072),
    [sym_size_t] = ACTIONS(5072),
    [sym_ptrdiff_t] = ACTIONS(5072),
    [sym_string] = ACTIONS(5072),
    [sym_cstring] = ACTIONS(5072),
    [sym_dstring] = ACTIONS(5072),
    [sym_wstring] = ACTIONS(5072),
    [sym_noreturn] = ACTIONS(5072),
    [sym_true] = ACTIONS(5072),
    [sym_false] = ACTIONS(5072),
    [sym_null] = ACTIONS(5072),
    [sym_super] = ACTIONS(5072),
    [sym_this] = ACTIONS(5072),
    [sym_abstract] = ACTIONS(5072),
    [sym_alias] = ACTIONS(5072),
    [sym_align] = ACTIONS(5072),
    [sym_asm] = ACTIONS(5072),
    [sym_assert] = ACTIONS(5072),
    [sym_auto] = ACTIONS(5072),
    [sym_break] = ACTIONS(5072),
    [sym_case] = ACTIONS(5072),
    [sym_cast] = ACTIONS(5072),
    [sym_class] = ACTIONS(5072),
    [sym_const] = ACTIONS(5072),
    [sym_continue] = ACTIONS(5072),
    [sym_debug] = ACTIONS(5072),
    [sym_default] = ACTIONS(5072),
    [sym_delegate] = ACTIONS(5072),
    [sym_delete] = ACTIONS(5072),
    [sym_deprecated] = ACTIONS(5072),
    [sym_do] = ACTIONS(5072),
    [sym_else] = ACTIONS(5072),
    [sym_enum] = ACTIONS(5072),
    [sym_export] = ACTIONS(5072),
    [sym_extern] = ACTIONS(5072),
    [sym_final] = ACTIONS(5072),
    [sym_for] = ACTIONS(5072),
    [sym_foreach] = ACTIONS(5072),
    [sym_foreach_reverse] = ACTIONS(5072),
    [sym_function] = ACTIONS(5072),
    [sym_goto] = ACTIONS(5072),
    [sym_if] = ACTIONS(5072),
    [sym_immutable] = ACTIONS(5072),
    [sym_import] = ACTIONS(5072),
    [sym_in] = ACTIONS(5072),
    [sym_inout] = ACTIONS(5072),
    [sym_interface] = ACTIONS(5072),
    [sym_invariant] = ACTIONS(5072),
    [sym_is] = ACTIONS(5072),
    [sym_mixin] = ACTIONS(5072),
    [sym_new] = ACTIONS(5072),
    [sym_nothrow] = ACTIONS(5072),
    [sym_out] = ACTIONS(5072),
    [sym_override] = ACTIONS(5072),
    [sym_package] = ACTIONS(5072),
    [sym_pragma] = ACTIONS(5072),
    [sym_private] = ACTIONS(5072),
    [sym_protected] = ACTIONS(5072),
    [sym_public] = ACTIONS(5072),
    [sym_pure] = ACTIONS(5072),
    [sym_ref] = ACTIONS(5072),
    [sym_return] = ACTIONS(5072),
    [sym_scope] = ACTIONS(5072),
    [sym_shared] = ACTIONS(5072),
    [sym_static] = ACTIONS(5072),
    [sym_struct] = ACTIONS(5072),
    [sym_switch] = ACTIONS(5072),
    [sym_synchronized] = ACTIONS(5072),
    [sym_template] = ACTIONS(5072),
    [sym_throw] = ACTIONS(5072),
    [sym_try] = ACTIONS(5072),
    [sym_typeid] = ACTIONS(5072),
    [sym_typeof] = ACTIONS(5072),
    [sym_union] = ACTIONS(5072),
    [sym_unittest] = ACTIONS(5072),
    [sym_version] = ACTIONS(5072),
    [sym_while] = ACTIONS(5072),
    [sym_with] = ACTIONS(5072),
    [sym_gshared] = ACTIONS(5072),
    [sym_traits] = ACTIONS(5072),
    [sym_vector] = ACTIONS(5072),
    [sym_void] = ACTIONS(5072),
    [anon_sym_BQUOTE] = ACTIONS(5074),
    [anon_sym_r_DQUOTE] = ACTIONS(5074),
    [anon_sym_x_DQUOTE] = ACTIONS(5074),
    [anon_sym_DQUOTE] = ACTIONS(5074),
    [anon_sym_i_BQUOTE] = ACTIONS(5074),
    [anon_sym_i_DQUOTE] = ACTIONS(5074),
    [anon_sym_iq_LBRACE] = ACTIONS(5074),
    [aux_sym_char_literal_token1] = ACTIONS(5074),
    [anon_sym_SQUOTE] = ACTIONS(5072),
    [anon_sym___DATE__] = ACTIONS(5072),
    [anon_sym___FILE__] = ACTIONS(5072),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5072),
    [anon_sym___FUNCTION__] = ACTIONS(5072),
    [anon_sym___LINE__] = ACTIONS(5072),
    [anon_sym___MODULE__] = ACTIONS(5072),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5072),
    [anon_sym___TIME__] = ACTIONS(5072),
    [anon_sym___TIMESTAMP__] = ACTIONS(5072),
    [anon_sym___VENDOR__] = ACTIONS(5072),
    [anon_sym___VERSION__] = ACTIONS(5072),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5074),
    [sym_float_literal] = ACTIONS(5074),
    [sym__string] = ACTIONS(5074),
  },
  [1672] = {
    [sym_identifier] = ACTIONS(4690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4692),
    [anon_sym_RBRACE] = ACTIONS(4692),
    [anon_sym_LBRACE] = ACTIONS(4692),
    [anon_sym_DOT] = ACTIONS(4692),
    [anon_sym_AMP] = ACTIONS(4692),
    [anon_sym_DASH] = ACTIONS(4690),
    [anon_sym_DASH_DASH] = ACTIONS(4692),
    [anon_sym_PLUS] = ACTIONS(4690),
    [anon_sym_PLUS_PLUS] = ACTIONS(4692),
    [anon_sym_BANG] = ACTIONS(4692),
    [anon_sym_LPAREN] = ACTIONS(4692),
    [anon_sym_RPAREN] = ACTIONS(4692),
    [anon_sym_LBRACK] = ACTIONS(4692),
    [anon_sym_SEMI] = ACTIONS(4692),
    [anon_sym_DOLLAR] = ACTIONS(4692),
    [anon_sym_STAR] = ACTIONS(4692),
    [anon_sym_TILDE] = ACTIONS(4692),
    [anon_sym_AT] = ACTIONS(4692),
    [sym_bool] = ACTIONS(4690),
    [sym_byte] = ACTIONS(4690),
    [sym_ubyte] = ACTIONS(4690),
    [sym_char] = ACTIONS(4690),
    [sym_short] = ACTIONS(4690),
    [sym_ushort] = ACTIONS(4690),
    [sym_int] = ACTIONS(4690),
    [sym_uint] = ACTIONS(4690),
    [sym_long] = ACTIONS(4690),
    [sym_ulong] = ACTIONS(4690),
    [sym_cent] = ACTIONS(4690),
    [sym_ucent] = ACTIONS(4690),
    [sym_wchar] = ACTIONS(4690),
    [sym_dchar] = ACTIONS(4690),
    [sym_float] = ACTIONS(4690),
    [sym_double] = ACTIONS(4690),
    [sym_real] = ACTIONS(4690),
    [sym_ifloat] = ACTIONS(4690),
    [sym_idouble] = ACTIONS(4690),
    [sym_ireal] = ACTIONS(4690),
    [sym_cfloat] = ACTIONS(4690),
    [sym_cdouble] = ACTIONS(4690),
    [sym_creal] = ACTIONS(4690),
    [sym_size_t] = ACTIONS(4690),
    [sym_ptrdiff_t] = ACTIONS(4690),
    [sym_string] = ACTIONS(4690),
    [sym_cstring] = ACTIONS(4690),
    [sym_dstring] = ACTIONS(4690),
    [sym_wstring] = ACTIONS(4690),
    [sym_noreturn] = ACTIONS(4690),
    [sym_true] = ACTIONS(4690),
    [sym_false] = ACTIONS(4690),
    [sym_null] = ACTIONS(4690),
    [sym_super] = ACTIONS(4690),
    [sym_this] = ACTIONS(4690),
    [sym_abstract] = ACTIONS(4690),
    [sym_alias] = ACTIONS(4690),
    [sym_align] = ACTIONS(4690),
    [sym_asm] = ACTIONS(4690),
    [sym_assert] = ACTIONS(4690),
    [sym_auto] = ACTIONS(4690),
    [sym_break] = ACTIONS(4690),
    [sym_case] = ACTIONS(4690),
    [sym_cast] = ACTIONS(4690),
    [sym_class] = ACTIONS(4690),
    [sym_const] = ACTIONS(4690),
    [sym_continue] = ACTIONS(4690),
    [sym_debug] = ACTIONS(4690),
    [sym_default] = ACTIONS(4690),
    [sym_delegate] = ACTIONS(4690),
    [sym_delete] = ACTIONS(4690),
    [sym_deprecated] = ACTIONS(4690),
    [sym_do] = ACTIONS(4690),
    [sym_else] = ACTIONS(4690),
    [sym_enum] = ACTIONS(4690),
    [sym_export] = ACTIONS(4690),
    [sym_extern] = ACTIONS(4690),
    [sym_final] = ACTIONS(4690),
    [sym_for] = ACTIONS(4690),
    [sym_foreach] = ACTIONS(4690),
    [sym_foreach_reverse] = ACTIONS(4690),
    [sym_function] = ACTIONS(4690),
    [sym_goto] = ACTIONS(4690),
    [sym_if] = ACTIONS(4690),
    [sym_immutable] = ACTIONS(4690),
    [sym_import] = ACTIONS(4690),
    [sym_in] = ACTIONS(4690),
    [sym_inout] = ACTIONS(4690),
    [sym_interface] = ACTIONS(4690),
    [sym_invariant] = ACTIONS(4690),
    [sym_is] = ACTIONS(4690),
    [sym_mixin] = ACTIONS(4690),
    [sym_new] = ACTIONS(4690),
    [sym_nothrow] = ACTIONS(4690),
    [sym_out] = ACTIONS(4690),
    [sym_override] = ACTIONS(4690),
    [sym_package] = ACTIONS(4690),
    [sym_pragma] = ACTIONS(4690),
    [sym_private] = ACTIONS(4690),
    [sym_protected] = ACTIONS(4690),
    [sym_public] = ACTIONS(4690),
    [sym_pure] = ACTIONS(4690),
    [sym_ref] = ACTIONS(4690),
    [sym_return] = ACTIONS(4690),
    [sym_scope] = ACTIONS(4690),
    [sym_shared] = ACTIONS(4690),
    [sym_static] = ACTIONS(4690),
    [sym_struct] = ACTIONS(4690),
    [sym_switch] = ACTIONS(4690),
    [sym_synchronized] = ACTIONS(4690),
    [sym_template] = ACTIONS(4690),
    [sym_throw] = ACTIONS(4690),
    [sym_try] = ACTIONS(4690),
    [sym_typeid] = ACTIONS(4690),
    [sym_typeof] = ACTIONS(4690),
    [sym_union] = ACTIONS(4690),
    [sym_unittest] = ACTIONS(4690),
    [sym_version] = ACTIONS(4690),
    [sym_while] = ACTIONS(4690),
    [sym_with] = ACTIONS(4690),
    [sym_gshared] = ACTIONS(4690),
    [sym_traits] = ACTIONS(4690),
    [sym_vector] = ACTIONS(4690),
    [sym_void] = ACTIONS(4690),
    [anon_sym_BQUOTE] = ACTIONS(4692),
    [anon_sym_r_DQUOTE] = ACTIONS(4692),
    [anon_sym_x_DQUOTE] = ACTIONS(4692),
    [anon_sym_DQUOTE] = ACTIONS(4692),
    [anon_sym_i_BQUOTE] = ACTIONS(4692),
    [anon_sym_i_DQUOTE] = ACTIONS(4692),
    [anon_sym_iq_LBRACE] = ACTIONS(4692),
    [aux_sym_char_literal_token1] = ACTIONS(4692),
    [anon_sym_SQUOTE] = ACTIONS(4690),
    [anon_sym___DATE__] = ACTIONS(4690),
    [anon_sym___FILE__] = ACTIONS(4690),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4690),
    [anon_sym___FUNCTION__] = ACTIONS(4690),
    [anon_sym___LINE__] = ACTIONS(4690),
    [anon_sym___MODULE__] = ACTIONS(4690),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4690),
    [anon_sym___TIME__] = ACTIONS(4690),
    [anon_sym___TIMESTAMP__] = ACTIONS(4690),
    [anon_sym___VENDOR__] = ACTIONS(4690),
    [anon_sym___VERSION__] = ACTIONS(4690),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4692),
    [sym_float_literal] = ACTIONS(4692),
    [sym__string] = ACTIONS(4692),
  },
  [1673] = {
    [sym_identifier] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2643),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_LBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(2643),
    [anon_sym_AMP] = ACTIONS(2643),
    [anon_sym_DASH] = ACTIONS(2645),
    [anon_sym_DASH_DASH] = ACTIONS(2643),
    [anon_sym_PLUS] = ACTIONS(2645),
    [anon_sym_PLUS_PLUS] = ACTIONS(2643),
    [anon_sym_BANG] = ACTIONS(2643),
    [anon_sym_LPAREN] = ACTIONS(2643),
    [anon_sym_RPAREN] = ACTIONS(2643),
    [anon_sym_LBRACK] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2643),
    [anon_sym_DOLLAR] = ACTIONS(2643),
    [anon_sym_STAR] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2643),
    [anon_sym_AT] = ACTIONS(2643),
    [sym_bool] = ACTIONS(2645),
    [sym_byte] = ACTIONS(2645),
    [sym_ubyte] = ACTIONS(2645),
    [sym_char] = ACTIONS(2645),
    [sym_short] = ACTIONS(2645),
    [sym_ushort] = ACTIONS(2645),
    [sym_int] = ACTIONS(2645),
    [sym_uint] = ACTIONS(2645),
    [sym_long] = ACTIONS(2645),
    [sym_ulong] = ACTIONS(2645),
    [sym_cent] = ACTIONS(2645),
    [sym_ucent] = ACTIONS(2645),
    [sym_wchar] = ACTIONS(2645),
    [sym_dchar] = ACTIONS(2645),
    [sym_float] = ACTIONS(2645),
    [sym_double] = ACTIONS(2645),
    [sym_real] = ACTIONS(2645),
    [sym_ifloat] = ACTIONS(2645),
    [sym_idouble] = ACTIONS(2645),
    [sym_ireal] = ACTIONS(2645),
    [sym_cfloat] = ACTIONS(2645),
    [sym_cdouble] = ACTIONS(2645),
    [sym_creal] = ACTIONS(2645),
    [sym_size_t] = ACTIONS(2645),
    [sym_ptrdiff_t] = ACTIONS(2645),
    [sym_string] = ACTIONS(2645),
    [sym_cstring] = ACTIONS(2645),
    [sym_dstring] = ACTIONS(2645),
    [sym_wstring] = ACTIONS(2645),
    [sym_noreturn] = ACTIONS(2645),
    [sym_true] = ACTIONS(2645),
    [sym_false] = ACTIONS(2645),
    [sym_null] = ACTIONS(2645),
    [sym_super] = ACTIONS(2645),
    [sym_this] = ACTIONS(2645),
    [sym_abstract] = ACTIONS(2645),
    [sym_alias] = ACTIONS(2645),
    [sym_align] = ACTIONS(2645),
    [sym_asm] = ACTIONS(2645),
    [sym_assert] = ACTIONS(2645),
    [sym_auto] = ACTIONS(2645),
    [sym_break] = ACTIONS(2645),
    [sym_case] = ACTIONS(2645),
    [sym_cast] = ACTIONS(2645),
    [sym_class] = ACTIONS(2645),
    [sym_const] = ACTIONS(2645),
    [sym_continue] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2645),
    [sym_default] = ACTIONS(2645),
    [sym_delegate] = ACTIONS(2645),
    [sym_delete] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(2645),
    [sym_do] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(2645),
    [sym_export] = ACTIONS(2645),
    [sym_extern] = ACTIONS(2645),
    [sym_final] = ACTIONS(2645),
    [sym_for] = ACTIONS(2645),
    [sym_foreach] = ACTIONS(2645),
    [sym_foreach_reverse] = ACTIONS(2645),
    [sym_function] = ACTIONS(2645),
    [sym_goto] = ACTIONS(2645),
    [sym_if] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(2645),
    [sym_import] = ACTIONS(2645),
    [sym_in] = ACTIONS(2645),
    [sym_inout] = ACTIONS(2645),
    [sym_interface] = ACTIONS(2645),
    [sym_invariant] = ACTIONS(2645),
    [sym_is] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2645),
    [sym_new] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(2645),
    [sym_out] = ACTIONS(2645),
    [sym_override] = ACTIONS(2645),
    [sym_package] = ACTIONS(2645),
    [sym_pragma] = ACTIONS(2645),
    [sym_private] = ACTIONS(2645),
    [sym_protected] = ACTIONS(2645),
    [sym_public] = ACTIONS(2645),
    [sym_pure] = ACTIONS(2645),
    [sym_ref] = ACTIONS(2645),
    [sym_return] = ACTIONS(2645),
    [sym_scope] = ACTIONS(2645),
    [sym_shared] = ACTIONS(2645),
    [sym_static] = ACTIONS(2645),
    [sym_struct] = ACTIONS(2645),
    [sym_switch] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(2645),
    [sym_template] = ACTIONS(2645),
    [sym_throw] = ACTIONS(2645),
    [sym_try] = ACTIONS(2645),
    [sym_typeid] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(2645),
    [sym_union] = ACTIONS(2645),
    [sym_unittest] = ACTIONS(2645),
    [sym_version] = ACTIONS(2645),
    [sym_while] = ACTIONS(2645),
    [sym_with] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(2645),
    [sym_traits] = ACTIONS(2645),
    [sym_vector] = ACTIONS(2645),
    [sym_void] = ACTIONS(2645),
    [anon_sym_BQUOTE] = ACTIONS(2643),
    [anon_sym_r_DQUOTE] = ACTIONS(2643),
    [anon_sym_x_DQUOTE] = ACTIONS(2643),
    [anon_sym_DQUOTE] = ACTIONS(2643),
    [anon_sym_i_BQUOTE] = ACTIONS(2643),
    [anon_sym_i_DQUOTE] = ACTIONS(2643),
    [anon_sym_iq_LBRACE] = ACTIONS(2643),
    [aux_sym_char_literal_token1] = ACTIONS(2643),
    [anon_sym_SQUOTE] = ACTIONS(2645),
    [anon_sym___DATE__] = ACTIONS(2645),
    [anon_sym___FILE__] = ACTIONS(2645),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2645),
    [anon_sym___FUNCTION__] = ACTIONS(2645),
    [anon_sym___LINE__] = ACTIONS(2645),
    [anon_sym___MODULE__] = ACTIONS(2645),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2645),
    [anon_sym___TIME__] = ACTIONS(2645),
    [anon_sym___TIMESTAMP__] = ACTIONS(2645),
    [anon_sym___VENDOR__] = ACTIONS(2645),
    [anon_sym___VERSION__] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2643),
    [sym_float_literal] = ACTIONS(2643),
    [sym__string] = ACTIONS(2643),
  },
  [1674] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4299),
    [anon_sym_RBRACE] = ACTIONS(4299),
    [anon_sym_LBRACE] = ACTIONS(4299),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_AMP] = ACTIONS(4299),
    [anon_sym_DASH] = ACTIONS(4297),
    [anon_sym_DASH_DASH] = ACTIONS(4299),
    [anon_sym_PLUS] = ACTIONS(4297),
    [anon_sym_PLUS_PLUS] = ACTIONS(4299),
    [anon_sym_BANG] = ACTIONS(4299),
    [anon_sym_LPAREN] = ACTIONS(4299),
    [anon_sym_RPAREN] = ACTIONS(4299),
    [anon_sym_LBRACK] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(4299),
    [anon_sym_DOLLAR] = ACTIONS(4299),
    [anon_sym_STAR] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_true] = ACTIONS(4297),
    [sym_false] = ACTIONS(4297),
    [sym_null] = ACTIONS(4297),
    [sym_super] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_asm] = ACTIONS(4297),
    [sym_assert] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_break] = ACTIONS(4297),
    [sym_case] = ACTIONS(4297),
    [sym_cast] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_continue] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_default] = ACTIONS(4297),
    [sym_delegate] = ACTIONS(4297),
    [sym_delete] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_do] = ACTIONS(4297),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_for] = ACTIONS(4297),
    [sym_foreach] = ACTIONS(4297),
    [sym_foreach_reverse] = ACTIONS(4297),
    [sym_function] = ACTIONS(4297),
    [sym_goto] = ACTIONS(4297),
    [sym_if] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(4297),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_is] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_new] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_out] = ACTIONS(4297),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_switch] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_throw] = ACTIONS(4297),
    [sym_try] = ACTIONS(4297),
    [sym_typeid] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_with] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [anon_sym_BQUOTE] = ACTIONS(4299),
    [anon_sym_r_DQUOTE] = ACTIONS(4299),
    [anon_sym_x_DQUOTE] = ACTIONS(4299),
    [anon_sym_DQUOTE] = ACTIONS(4299),
    [anon_sym_i_BQUOTE] = ACTIONS(4299),
    [anon_sym_i_DQUOTE] = ACTIONS(4299),
    [anon_sym_iq_LBRACE] = ACTIONS(4299),
    [aux_sym_char_literal_token1] = ACTIONS(4299),
    [anon_sym_SQUOTE] = ACTIONS(4297),
    [anon_sym___DATE__] = ACTIONS(4297),
    [anon_sym___FILE__] = ACTIONS(4297),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4297),
    [anon_sym___FUNCTION__] = ACTIONS(4297),
    [anon_sym___LINE__] = ACTIONS(4297),
    [anon_sym___MODULE__] = ACTIONS(4297),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4297),
    [anon_sym___TIME__] = ACTIONS(4297),
    [anon_sym___TIMESTAMP__] = ACTIONS(4297),
    [anon_sym___VENDOR__] = ACTIONS(4297),
    [anon_sym___VERSION__] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4299),
    [sym_float_literal] = ACTIONS(4299),
    [sym__string] = ACTIONS(4299),
  },
  [1675] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_RBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [anon_sym_AT] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_abstract] = ACTIONS(4359),
    [sym_alias] = ACTIONS(4359),
    [sym_align] = ACTIONS(4359),
    [sym_asm] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_break] = ACTIONS(4359),
    [sym_case] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_class] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_continue] = ACTIONS(4359),
    [sym_debug] = ACTIONS(4359),
    [sym_default] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_deprecated] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(5107),
    [sym_enum] = ACTIONS(4359),
    [sym_export] = ACTIONS(4359),
    [sym_extern] = ACTIONS(4359),
    [sym_final] = ACTIONS(4359),
    [sym_for] = ACTIONS(4359),
    [sym_foreach] = ACTIONS(4359),
    [sym_foreach_reverse] = ACTIONS(4359),
    [sym_function] = ACTIONS(4359),
    [sym_goto] = ACTIONS(4359),
    [sym_if] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_interface] = ACTIONS(4359),
    [sym_invariant] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_nothrow] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_override] = ACTIONS(4359),
    [sym_package] = ACTIONS(4359),
    [sym_pragma] = ACTIONS(4359),
    [sym_private] = ACTIONS(4359),
    [sym_protected] = ACTIONS(4359),
    [sym_public] = ACTIONS(4359),
    [sym_pure] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_return] = ACTIONS(4359),
    [sym_scope] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_static] = ACTIONS(4359),
    [sym_struct] = ACTIONS(4359),
    [sym_switch] = ACTIONS(4359),
    [sym_synchronized] = ACTIONS(4359),
    [sym_template] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_try] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_union] = ACTIONS(4359),
    [sym_unittest] = ACTIONS(4359),
    [sym_version] = ACTIONS(4359),
    [sym_while] = ACTIONS(4359),
    [sym_with] = ACTIONS(4359),
    [sym_gshared] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [1676] = {
    [sym_identifier] = ACTIONS(4570),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4572),
    [anon_sym_RBRACE] = ACTIONS(4572),
    [anon_sym_LBRACE] = ACTIONS(4572),
    [anon_sym_DOT] = ACTIONS(4572),
    [anon_sym_AMP] = ACTIONS(4572),
    [anon_sym_DASH] = ACTIONS(4570),
    [anon_sym_DASH_DASH] = ACTIONS(4572),
    [anon_sym_PLUS] = ACTIONS(4570),
    [anon_sym_PLUS_PLUS] = ACTIONS(4572),
    [anon_sym_BANG] = ACTIONS(4572),
    [anon_sym_LPAREN] = ACTIONS(4572),
    [anon_sym_RPAREN] = ACTIONS(4572),
    [anon_sym_LBRACK] = ACTIONS(4572),
    [anon_sym_SEMI] = ACTIONS(4572),
    [anon_sym_DOLLAR] = ACTIONS(4572),
    [anon_sym_STAR] = ACTIONS(4572),
    [anon_sym_TILDE] = ACTIONS(4572),
    [anon_sym_AT] = ACTIONS(4572),
    [sym_bool] = ACTIONS(4570),
    [sym_byte] = ACTIONS(4570),
    [sym_ubyte] = ACTIONS(4570),
    [sym_char] = ACTIONS(4570),
    [sym_short] = ACTIONS(4570),
    [sym_ushort] = ACTIONS(4570),
    [sym_int] = ACTIONS(4570),
    [sym_uint] = ACTIONS(4570),
    [sym_long] = ACTIONS(4570),
    [sym_ulong] = ACTIONS(4570),
    [sym_cent] = ACTIONS(4570),
    [sym_ucent] = ACTIONS(4570),
    [sym_wchar] = ACTIONS(4570),
    [sym_dchar] = ACTIONS(4570),
    [sym_float] = ACTIONS(4570),
    [sym_double] = ACTIONS(4570),
    [sym_real] = ACTIONS(4570),
    [sym_ifloat] = ACTIONS(4570),
    [sym_idouble] = ACTIONS(4570),
    [sym_ireal] = ACTIONS(4570),
    [sym_cfloat] = ACTIONS(4570),
    [sym_cdouble] = ACTIONS(4570),
    [sym_creal] = ACTIONS(4570),
    [sym_size_t] = ACTIONS(4570),
    [sym_ptrdiff_t] = ACTIONS(4570),
    [sym_string] = ACTIONS(4570),
    [sym_cstring] = ACTIONS(4570),
    [sym_dstring] = ACTIONS(4570),
    [sym_wstring] = ACTIONS(4570),
    [sym_noreturn] = ACTIONS(4570),
    [sym_true] = ACTIONS(4570),
    [sym_false] = ACTIONS(4570),
    [sym_null] = ACTIONS(4570),
    [sym_super] = ACTIONS(4570),
    [sym_this] = ACTIONS(4570),
    [sym_abstract] = ACTIONS(4570),
    [sym_alias] = ACTIONS(4570),
    [sym_align] = ACTIONS(4570),
    [sym_asm] = ACTIONS(4570),
    [sym_assert] = ACTIONS(4570),
    [sym_auto] = ACTIONS(4570),
    [sym_break] = ACTIONS(4570),
    [sym_case] = ACTIONS(4570),
    [sym_cast] = ACTIONS(4570),
    [sym_class] = ACTIONS(4570),
    [sym_const] = ACTIONS(4570),
    [sym_continue] = ACTIONS(4570),
    [sym_debug] = ACTIONS(4570),
    [sym_default] = ACTIONS(4570),
    [sym_delegate] = ACTIONS(4570),
    [sym_delete] = ACTIONS(4570),
    [sym_deprecated] = ACTIONS(4570),
    [sym_do] = ACTIONS(4570),
    [sym_else] = ACTIONS(4570),
    [sym_enum] = ACTIONS(4570),
    [sym_export] = ACTIONS(4570),
    [sym_extern] = ACTIONS(4570),
    [sym_final] = ACTIONS(4570),
    [sym_for] = ACTIONS(4570),
    [sym_foreach] = ACTIONS(4570),
    [sym_foreach_reverse] = ACTIONS(4570),
    [sym_function] = ACTIONS(4570),
    [sym_goto] = ACTIONS(4570),
    [sym_if] = ACTIONS(4570),
    [sym_immutable] = ACTIONS(4570),
    [sym_import] = ACTIONS(4570),
    [sym_in] = ACTIONS(4570),
    [sym_inout] = ACTIONS(4570),
    [sym_interface] = ACTIONS(4570),
    [sym_invariant] = ACTIONS(4570),
    [sym_is] = ACTIONS(4570),
    [sym_mixin] = ACTIONS(4570),
    [sym_new] = ACTIONS(4570),
    [sym_nothrow] = ACTIONS(4570),
    [sym_out] = ACTIONS(4570),
    [sym_override] = ACTIONS(4570),
    [sym_package] = ACTIONS(4570),
    [sym_pragma] = ACTIONS(4570),
    [sym_private] = ACTIONS(4570),
    [sym_protected] = ACTIONS(4570),
    [sym_public] = ACTIONS(4570),
    [sym_pure] = ACTIONS(4570),
    [sym_ref] = ACTIONS(4570),
    [sym_return] = ACTIONS(4570),
    [sym_scope] = ACTIONS(4570),
    [sym_shared] = ACTIONS(4570),
    [sym_static] = ACTIONS(4570),
    [sym_struct] = ACTIONS(4570),
    [sym_switch] = ACTIONS(4570),
    [sym_synchronized] = ACTIONS(4570),
    [sym_template] = ACTIONS(4570),
    [sym_throw] = ACTIONS(4570),
    [sym_try] = ACTIONS(4570),
    [sym_typeid] = ACTIONS(4570),
    [sym_typeof] = ACTIONS(4570),
    [sym_union] = ACTIONS(4570),
    [sym_unittest] = ACTIONS(4570),
    [sym_version] = ACTIONS(4570),
    [sym_while] = ACTIONS(4570),
    [sym_with] = ACTIONS(4570),
    [sym_gshared] = ACTIONS(4570),
    [sym_traits] = ACTIONS(4570),
    [sym_vector] = ACTIONS(4570),
    [sym_void] = ACTIONS(4570),
    [anon_sym_BQUOTE] = ACTIONS(4572),
    [anon_sym_r_DQUOTE] = ACTIONS(4572),
    [anon_sym_x_DQUOTE] = ACTIONS(4572),
    [anon_sym_DQUOTE] = ACTIONS(4572),
    [anon_sym_i_BQUOTE] = ACTIONS(4572),
    [anon_sym_i_DQUOTE] = ACTIONS(4572),
    [anon_sym_iq_LBRACE] = ACTIONS(4572),
    [aux_sym_char_literal_token1] = ACTIONS(4572),
    [anon_sym_SQUOTE] = ACTIONS(4570),
    [anon_sym___DATE__] = ACTIONS(4570),
    [anon_sym___FILE__] = ACTIONS(4570),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4570),
    [anon_sym___FUNCTION__] = ACTIONS(4570),
    [anon_sym___LINE__] = ACTIONS(4570),
    [anon_sym___MODULE__] = ACTIONS(4570),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4570),
    [anon_sym___TIME__] = ACTIONS(4570),
    [anon_sym___TIMESTAMP__] = ACTIONS(4570),
    [anon_sym___VENDOR__] = ACTIONS(4570),
    [anon_sym___VERSION__] = ACTIONS(4570),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4572),
    [sym_float_literal] = ACTIONS(4572),
    [sym__string] = ACTIONS(4572),
  },
  [1677] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4299),
    [anon_sym_RBRACE] = ACTIONS(4299),
    [anon_sym_LBRACE] = ACTIONS(5084),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_AMP] = ACTIONS(4299),
    [anon_sym_DASH] = ACTIONS(4297),
    [anon_sym_DASH_DASH] = ACTIONS(4299),
    [anon_sym_PLUS] = ACTIONS(4297),
    [anon_sym_PLUS_PLUS] = ACTIONS(4299),
    [anon_sym_BANG] = ACTIONS(4299),
    [anon_sym_LPAREN] = ACTIONS(4299),
    [anon_sym_RPAREN] = ACTIONS(4299),
    [anon_sym_LBRACK] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(5084),
    [anon_sym_DOLLAR] = ACTIONS(4299),
    [anon_sym_STAR] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_true] = ACTIONS(4297),
    [sym_false] = ACTIONS(4297),
    [sym_null] = ACTIONS(4297),
    [sym_super] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_asm] = ACTIONS(4297),
    [sym_assert] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_break] = ACTIONS(4297),
    [sym_case] = ACTIONS(4297),
    [sym_cast] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_continue] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_default] = ACTIONS(4297),
    [sym_delegate] = ACTIONS(4297),
    [sym_delete] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_do] = ACTIONS(5087),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_for] = ACTIONS(4297),
    [sym_foreach] = ACTIONS(4297),
    [sym_foreach_reverse] = ACTIONS(4297),
    [sym_function] = ACTIONS(4297),
    [sym_goto] = ACTIONS(4297),
    [sym_if] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(5087),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_is] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_new] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_out] = ACTIONS(5087),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_switch] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_throw] = ACTIONS(4297),
    [sym_try] = ACTIONS(4297),
    [sym_typeid] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_with] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [anon_sym_BQUOTE] = ACTIONS(4299),
    [anon_sym_r_DQUOTE] = ACTIONS(4299),
    [anon_sym_x_DQUOTE] = ACTIONS(4299),
    [anon_sym_DQUOTE] = ACTIONS(4299),
    [anon_sym_i_BQUOTE] = ACTIONS(4299),
    [anon_sym_i_DQUOTE] = ACTIONS(4299),
    [anon_sym_iq_LBRACE] = ACTIONS(4299),
    [aux_sym_char_literal_token1] = ACTIONS(4299),
    [anon_sym_SQUOTE] = ACTIONS(4297),
    [anon_sym___DATE__] = ACTIONS(4297),
    [anon_sym___FILE__] = ACTIONS(4297),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4297),
    [anon_sym___FUNCTION__] = ACTIONS(4297),
    [anon_sym___LINE__] = ACTIONS(4297),
    [anon_sym___MODULE__] = ACTIONS(4297),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4297),
    [anon_sym___TIME__] = ACTIONS(4297),
    [anon_sym___TIMESTAMP__] = ACTIONS(4297),
    [anon_sym___VENDOR__] = ACTIONS(4297),
    [anon_sym___VERSION__] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4299),
    [sym_float_literal] = ACTIONS(4299),
    [sym__string] = ACTIONS(4299),
  },
  [1678] = {
    [sym_identifier] = ACTIONS(4476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4478),
    [anon_sym_RBRACE] = ACTIONS(4478),
    [anon_sym_LBRACE] = ACTIONS(4478),
    [anon_sym_DOT] = ACTIONS(4478),
    [anon_sym_AMP] = ACTIONS(4478),
    [anon_sym_DASH] = ACTIONS(4476),
    [anon_sym_DASH_DASH] = ACTIONS(4478),
    [anon_sym_PLUS] = ACTIONS(4476),
    [anon_sym_PLUS_PLUS] = ACTIONS(4478),
    [anon_sym_BANG] = ACTIONS(4478),
    [anon_sym_LPAREN] = ACTIONS(4478),
    [anon_sym_RPAREN] = ACTIONS(4478),
    [anon_sym_LBRACK] = ACTIONS(4478),
    [anon_sym_SEMI] = ACTIONS(4478),
    [anon_sym_DOLLAR] = ACTIONS(4478),
    [anon_sym_STAR] = ACTIONS(4478),
    [anon_sym_TILDE] = ACTIONS(4478),
    [anon_sym_AT] = ACTIONS(4478),
    [sym_bool] = ACTIONS(4476),
    [sym_byte] = ACTIONS(4476),
    [sym_ubyte] = ACTIONS(4476),
    [sym_char] = ACTIONS(4476),
    [sym_short] = ACTIONS(4476),
    [sym_ushort] = ACTIONS(4476),
    [sym_int] = ACTIONS(4476),
    [sym_uint] = ACTIONS(4476),
    [sym_long] = ACTIONS(4476),
    [sym_ulong] = ACTIONS(4476),
    [sym_cent] = ACTIONS(4476),
    [sym_ucent] = ACTIONS(4476),
    [sym_wchar] = ACTIONS(4476),
    [sym_dchar] = ACTIONS(4476),
    [sym_float] = ACTIONS(4476),
    [sym_double] = ACTIONS(4476),
    [sym_real] = ACTIONS(4476),
    [sym_ifloat] = ACTIONS(4476),
    [sym_idouble] = ACTIONS(4476),
    [sym_ireal] = ACTIONS(4476),
    [sym_cfloat] = ACTIONS(4476),
    [sym_cdouble] = ACTIONS(4476),
    [sym_creal] = ACTIONS(4476),
    [sym_size_t] = ACTIONS(4476),
    [sym_ptrdiff_t] = ACTIONS(4476),
    [sym_string] = ACTIONS(4476),
    [sym_cstring] = ACTIONS(4476),
    [sym_dstring] = ACTIONS(4476),
    [sym_wstring] = ACTIONS(4476),
    [sym_noreturn] = ACTIONS(4476),
    [sym_true] = ACTIONS(4476),
    [sym_false] = ACTIONS(4476),
    [sym_null] = ACTIONS(4476),
    [sym_super] = ACTIONS(4476),
    [sym_this] = ACTIONS(4476),
    [sym_abstract] = ACTIONS(4476),
    [sym_alias] = ACTIONS(4476),
    [sym_align] = ACTIONS(4476),
    [sym_asm] = ACTIONS(4476),
    [sym_assert] = ACTIONS(4476),
    [sym_auto] = ACTIONS(4476),
    [sym_break] = ACTIONS(4476),
    [sym_case] = ACTIONS(4476),
    [sym_cast] = ACTIONS(4476),
    [sym_class] = ACTIONS(4476),
    [sym_const] = ACTIONS(4476),
    [sym_continue] = ACTIONS(4476),
    [sym_debug] = ACTIONS(4476),
    [sym_default] = ACTIONS(4476),
    [sym_delegate] = ACTIONS(4476),
    [sym_delete] = ACTIONS(4476),
    [sym_deprecated] = ACTIONS(4476),
    [sym_do] = ACTIONS(4476),
    [sym_else] = ACTIONS(4476),
    [sym_enum] = ACTIONS(4476),
    [sym_export] = ACTIONS(4476),
    [sym_extern] = ACTIONS(4476),
    [sym_final] = ACTIONS(4476),
    [sym_for] = ACTIONS(4476),
    [sym_foreach] = ACTIONS(4476),
    [sym_foreach_reverse] = ACTIONS(4476),
    [sym_function] = ACTIONS(4476),
    [sym_goto] = ACTIONS(4476),
    [sym_if] = ACTIONS(4476),
    [sym_immutable] = ACTIONS(4476),
    [sym_import] = ACTIONS(4476),
    [sym_in] = ACTIONS(4476),
    [sym_inout] = ACTIONS(4476),
    [sym_interface] = ACTIONS(4476),
    [sym_invariant] = ACTIONS(4476),
    [sym_is] = ACTIONS(4476),
    [sym_mixin] = ACTIONS(4476),
    [sym_new] = ACTIONS(4476),
    [sym_nothrow] = ACTIONS(4476),
    [sym_out] = ACTIONS(4476),
    [sym_override] = ACTIONS(4476),
    [sym_package] = ACTIONS(4476),
    [sym_pragma] = ACTIONS(4476),
    [sym_private] = ACTIONS(4476),
    [sym_protected] = ACTIONS(4476),
    [sym_public] = ACTIONS(4476),
    [sym_pure] = ACTIONS(4476),
    [sym_ref] = ACTIONS(4476),
    [sym_return] = ACTIONS(4476),
    [sym_scope] = ACTIONS(4476),
    [sym_shared] = ACTIONS(4476),
    [sym_static] = ACTIONS(4476),
    [sym_struct] = ACTIONS(4476),
    [sym_switch] = ACTIONS(4476),
    [sym_synchronized] = ACTIONS(4476),
    [sym_template] = ACTIONS(4476),
    [sym_throw] = ACTIONS(4476),
    [sym_try] = ACTIONS(4476),
    [sym_typeid] = ACTIONS(4476),
    [sym_typeof] = ACTIONS(4476),
    [sym_union] = ACTIONS(4476),
    [sym_unittest] = ACTIONS(4476),
    [sym_version] = ACTIONS(4476),
    [sym_while] = ACTIONS(4476),
    [sym_with] = ACTIONS(4476),
    [sym_gshared] = ACTIONS(4476),
    [sym_traits] = ACTIONS(4476),
    [sym_vector] = ACTIONS(4476),
    [sym_void] = ACTIONS(4476),
    [anon_sym_BQUOTE] = ACTIONS(4478),
    [anon_sym_r_DQUOTE] = ACTIONS(4478),
    [anon_sym_x_DQUOTE] = ACTIONS(4478),
    [anon_sym_DQUOTE] = ACTIONS(4478),
    [anon_sym_i_BQUOTE] = ACTIONS(4478),
    [anon_sym_i_DQUOTE] = ACTIONS(4478),
    [anon_sym_iq_LBRACE] = ACTIONS(4478),
    [aux_sym_char_literal_token1] = ACTIONS(4478),
    [anon_sym_SQUOTE] = ACTIONS(4476),
    [anon_sym___DATE__] = ACTIONS(4476),
    [anon_sym___FILE__] = ACTIONS(4476),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4476),
    [anon_sym___FUNCTION__] = ACTIONS(4476),
    [anon_sym___LINE__] = ACTIONS(4476),
    [anon_sym___MODULE__] = ACTIONS(4476),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4476),
    [anon_sym___TIME__] = ACTIONS(4476),
    [anon_sym___TIMESTAMP__] = ACTIONS(4476),
    [anon_sym___VENDOR__] = ACTIONS(4476),
    [anon_sym___VERSION__] = ACTIONS(4476),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4478),
    [sym_float_literal] = ACTIONS(4478),
    [sym__string] = ACTIONS(4478),
  },
  [1679] = {
    [sym_identifier] = ACTIONS(4468),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4470),
    [anon_sym_RBRACE] = ACTIONS(4470),
    [anon_sym_LBRACE] = ACTIONS(4470),
    [anon_sym_DOT] = ACTIONS(4470),
    [anon_sym_AMP] = ACTIONS(4470),
    [anon_sym_DASH] = ACTIONS(4468),
    [anon_sym_DASH_DASH] = ACTIONS(4470),
    [anon_sym_PLUS] = ACTIONS(4468),
    [anon_sym_PLUS_PLUS] = ACTIONS(4470),
    [anon_sym_BANG] = ACTIONS(4470),
    [anon_sym_LPAREN] = ACTIONS(4470),
    [anon_sym_RPAREN] = ACTIONS(4470),
    [anon_sym_LBRACK] = ACTIONS(4470),
    [anon_sym_SEMI] = ACTIONS(4470),
    [anon_sym_DOLLAR] = ACTIONS(4470),
    [anon_sym_STAR] = ACTIONS(4470),
    [anon_sym_TILDE] = ACTIONS(4470),
    [anon_sym_AT] = ACTIONS(4470),
    [sym_bool] = ACTIONS(4468),
    [sym_byte] = ACTIONS(4468),
    [sym_ubyte] = ACTIONS(4468),
    [sym_char] = ACTIONS(4468),
    [sym_short] = ACTIONS(4468),
    [sym_ushort] = ACTIONS(4468),
    [sym_int] = ACTIONS(4468),
    [sym_uint] = ACTIONS(4468),
    [sym_long] = ACTIONS(4468),
    [sym_ulong] = ACTIONS(4468),
    [sym_cent] = ACTIONS(4468),
    [sym_ucent] = ACTIONS(4468),
    [sym_wchar] = ACTIONS(4468),
    [sym_dchar] = ACTIONS(4468),
    [sym_float] = ACTIONS(4468),
    [sym_double] = ACTIONS(4468),
    [sym_real] = ACTIONS(4468),
    [sym_ifloat] = ACTIONS(4468),
    [sym_idouble] = ACTIONS(4468),
    [sym_ireal] = ACTIONS(4468),
    [sym_cfloat] = ACTIONS(4468),
    [sym_cdouble] = ACTIONS(4468),
    [sym_creal] = ACTIONS(4468),
    [sym_size_t] = ACTIONS(4468),
    [sym_ptrdiff_t] = ACTIONS(4468),
    [sym_string] = ACTIONS(4468),
    [sym_cstring] = ACTIONS(4468),
    [sym_dstring] = ACTIONS(4468),
    [sym_wstring] = ACTIONS(4468),
    [sym_noreturn] = ACTIONS(4468),
    [sym_true] = ACTIONS(4468),
    [sym_false] = ACTIONS(4468),
    [sym_null] = ACTIONS(4468),
    [sym_super] = ACTIONS(4468),
    [sym_this] = ACTIONS(4468),
    [sym_abstract] = ACTIONS(4468),
    [sym_alias] = ACTIONS(4468),
    [sym_align] = ACTIONS(4468),
    [sym_asm] = ACTIONS(4468),
    [sym_assert] = ACTIONS(4468),
    [sym_auto] = ACTIONS(4468),
    [sym_break] = ACTIONS(4468),
    [sym_case] = ACTIONS(4468),
    [sym_cast] = ACTIONS(4468),
    [sym_class] = ACTIONS(4468),
    [sym_const] = ACTIONS(4468),
    [sym_continue] = ACTIONS(4468),
    [sym_debug] = ACTIONS(4468),
    [sym_default] = ACTIONS(4468),
    [sym_delegate] = ACTIONS(4468),
    [sym_delete] = ACTIONS(4468),
    [sym_deprecated] = ACTIONS(4468),
    [sym_do] = ACTIONS(4468),
    [sym_else] = ACTIONS(4468),
    [sym_enum] = ACTIONS(4468),
    [sym_export] = ACTIONS(4468),
    [sym_extern] = ACTIONS(4468),
    [sym_final] = ACTIONS(4468),
    [sym_for] = ACTIONS(4468),
    [sym_foreach] = ACTIONS(4468),
    [sym_foreach_reverse] = ACTIONS(4468),
    [sym_function] = ACTIONS(4468),
    [sym_goto] = ACTIONS(4468),
    [sym_if] = ACTIONS(4468),
    [sym_immutable] = ACTIONS(4468),
    [sym_import] = ACTIONS(4468),
    [sym_in] = ACTIONS(4468),
    [sym_inout] = ACTIONS(4468),
    [sym_interface] = ACTIONS(4468),
    [sym_invariant] = ACTIONS(4468),
    [sym_is] = ACTIONS(4468),
    [sym_mixin] = ACTIONS(4468),
    [sym_new] = ACTIONS(4468),
    [sym_nothrow] = ACTIONS(4468),
    [sym_out] = ACTIONS(4468),
    [sym_override] = ACTIONS(4468),
    [sym_package] = ACTIONS(4468),
    [sym_pragma] = ACTIONS(4468),
    [sym_private] = ACTIONS(4468),
    [sym_protected] = ACTIONS(4468),
    [sym_public] = ACTIONS(4468),
    [sym_pure] = ACTIONS(4468),
    [sym_ref] = ACTIONS(4468),
    [sym_return] = ACTIONS(4468),
    [sym_scope] = ACTIONS(4468),
    [sym_shared] = ACTIONS(4468),
    [sym_static] = ACTIONS(4468),
    [sym_struct] = ACTIONS(4468),
    [sym_switch] = ACTIONS(4468),
    [sym_synchronized] = ACTIONS(4468),
    [sym_template] = ACTIONS(4468),
    [sym_throw] = ACTIONS(4468),
    [sym_try] = ACTIONS(4468),
    [sym_typeid] = ACTIONS(4468),
    [sym_typeof] = ACTIONS(4468),
    [sym_union] = ACTIONS(4468),
    [sym_unittest] = ACTIONS(4468),
    [sym_version] = ACTIONS(4468),
    [sym_while] = ACTIONS(4468),
    [sym_with] = ACTIONS(4468),
    [sym_gshared] = ACTIONS(4468),
    [sym_traits] = ACTIONS(4468),
    [sym_vector] = ACTIONS(4468),
    [sym_void] = ACTIONS(4468),
    [anon_sym_BQUOTE] = ACTIONS(4470),
    [anon_sym_r_DQUOTE] = ACTIONS(4470),
    [anon_sym_x_DQUOTE] = ACTIONS(4470),
    [anon_sym_DQUOTE] = ACTIONS(4470),
    [anon_sym_i_BQUOTE] = ACTIONS(4470),
    [anon_sym_i_DQUOTE] = ACTIONS(4470),
    [anon_sym_iq_LBRACE] = ACTIONS(4470),
    [aux_sym_char_literal_token1] = ACTIONS(4470),
    [anon_sym_SQUOTE] = ACTIONS(4468),
    [anon_sym___DATE__] = ACTIONS(4468),
    [anon_sym___FILE__] = ACTIONS(4468),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4468),
    [anon_sym___FUNCTION__] = ACTIONS(4468),
    [anon_sym___LINE__] = ACTIONS(4468),
    [anon_sym___MODULE__] = ACTIONS(4468),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4468),
    [anon_sym___TIME__] = ACTIONS(4468),
    [anon_sym___TIMESTAMP__] = ACTIONS(4468),
    [anon_sym___VENDOR__] = ACTIONS(4468),
    [anon_sym___VERSION__] = ACTIONS(4468),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4470),
    [sym_float_literal] = ACTIONS(4470),
    [sym__string] = ACTIONS(4470),
  },
  [1680] = {
    [sym_identifier] = ACTIONS(4766),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4768),
    [anon_sym_RBRACE] = ACTIONS(4768),
    [anon_sym_LBRACE] = ACTIONS(4768),
    [anon_sym_DOT] = ACTIONS(4768),
    [anon_sym_AMP] = ACTIONS(4768),
    [anon_sym_DASH] = ACTIONS(4766),
    [anon_sym_DASH_DASH] = ACTIONS(4768),
    [anon_sym_PLUS] = ACTIONS(4766),
    [anon_sym_PLUS_PLUS] = ACTIONS(4768),
    [anon_sym_BANG] = ACTIONS(4768),
    [anon_sym_LPAREN] = ACTIONS(4768),
    [anon_sym_RPAREN] = ACTIONS(4768),
    [anon_sym_LBRACK] = ACTIONS(4768),
    [anon_sym_SEMI] = ACTIONS(4768),
    [anon_sym_DOLLAR] = ACTIONS(4768),
    [anon_sym_STAR] = ACTIONS(4768),
    [anon_sym_TILDE] = ACTIONS(4768),
    [anon_sym_AT] = ACTIONS(4768),
    [sym_bool] = ACTIONS(4766),
    [sym_byte] = ACTIONS(4766),
    [sym_ubyte] = ACTIONS(4766),
    [sym_char] = ACTIONS(4766),
    [sym_short] = ACTIONS(4766),
    [sym_ushort] = ACTIONS(4766),
    [sym_int] = ACTIONS(4766),
    [sym_uint] = ACTIONS(4766),
    [sym_long] = ACTIONS(4766),
    [sym_ulong] = ACTIONS(4766),
    [sym_cent] = ACTIONS(4766),
    [sym_ucent] = ACTIONS(4766),
    [sym_wchar] = ACTIONS(4766),
    [sym_dchar] = ACTIONS(4766),
    [sym_float] = ACTIONS(4766),
    [sym_double] = ACTIONS(4766),
    [sym_real] = ACTIONS(4766),
    [sym_ifloat] = ACTIONS(4766),
    [sym_idouble] = ACTIONS(4766),
    [sym_ireal] = ACTIONS(4766),
    [sym_cfloat] = ACTIONS(4766),
    [sym_cdouble] = ACTIONS(4766),
    [sym_creal] = ACTIONS(4766),
    [sym_size_t] = ACTIONS(4766),
    [sym_ptrdiff_t] = ACTIONS(4766),
    [sym_string] = ACTIONS(4766),
    [sym_cstring] = ACTIONS(4766),
    [sym_dstring] = ACTIONS(4766),
    [sym_wstring] = ACTIONS(4766),
    [sym_noreturn] = ACTIONS(4766),
    [sym_true] = ACTIONS(4766),
    [sym_false] = ACTIONS(4766),
    [sym_null] = ACTIONS(4766),
    [sym_super] = ACTIONS(4766),
    [sym_this] = ACTIONS(4766),
    [sym_abstract] = ACTIONS(4766),
    [sym_alias] = ACTIONS(4766),
    [sym_align] = ACTIONS(4766),
    [sym_asm] = ACTIONS(4766),
    [sym_assert] = ACTIONS(4766),
    [sym_auto] = ACTIONS(4766),
    [sym_break] = ACTIONS(4766),
    [sym_case] = ACTIONS(4766),
    [sym_cast] = ACTIONS(4766),
    [sym_class] = ACTIONS(4766),
    [sym_const] = ACTIONS(4766),
    [sym_continue] = ACTIONS(4766),
    [sym_debug] = ACTIONS(4766),
    [sym_default] = ACTIONS(4766),
    [sym_delegate] = ACTIONS(4766),
    [sym_delete] = ACTIONS(4766),
    [sym_deprecated] = ACTIONS(4766),
    [sym_do] = ACTIONS(4766),
    [sym_else] = ACTIONS(4766),
    [sym_enum] = ACTIONS(4766),
    [sym_export] = ACTIONS(4766),
    [sym_extern] = ACTIONS(4766),
    [sym_final] = ACTIONS(4766),
    [sym_for] = ACTIONS(4766),
    [sym_foreach] = ACTIONS(4766),
    [sym_foreach_reverse] = ACTIONS(4766),
    [sym_function] = ACTIONS(4766),
    [sym_goto] = ACTIONS(4766),
    [sym_if] = ACTIONS(4766),
    [sym_immutable] = ACTIONS(4766),
    [sym_import] = ACTIONS(4766),
    [sym_in] = ACTIONS(4766),
    [sym_inout] = ACTIONS(4766),
    [sym_interface] = ACTIONS(4766),
    [sym_invariant] = ACTIONS(4766),
    [sym_is] = ACTIONS(4766),
    [sym_mixin] = ACTIONS(4766),
    [sym_new] = ACTIONS(4766),
    [sym_nothrow] = ACTIONS(4766),
    [sym_out] = ACTIONS(4766),
    [sym_override] = ACTIONS(4766),
    [sym_package] = ACTIONS(4766),
    [sym_pragma] = ACTIONS(4766),
    [sym_private] = ACTIONS(4766),
    [sym_protected] = ACTIONS(4766),
    [sym_public] = ACTIONS(4766),
    [sym_pure] = ACTIONS(4766),
    [sym_ref] = ACTIONS(4766),
    [sym_return] = ACTIONS(4766),
    [sym_scope] = ACTIONS(4766),
    [sym_shared] = ACTIONS(4766),
    [sym_static] = ACTIONS(4766),
    [sym_struct] = ACTIONS(4766),
    [sym_switch] = ACTIONS(4766),
    [sym_synchronized] = ACTIONS(4766),
    [sym_template] = ACTIONS(4766),
    [sym_throw] = ACTIONS(4766),
    [sym_try] = ACTIONS(4766),
    [sym_typeid] = ACTIONS(4766),
    [sym_typeof] = ACTIONS(4766),
    [sym_union] = ACTIONS(4766),
    [sym_unittest] = ACTIONS(4766),
    [sym_version] = ACTIONS(4766),
    [sym_while] = ACTIONS(4766),
    [sym_with] = ACTIONS(4766),
    [sym_gshared] = ACTIONS(4766),
    [sym_traits] = ACTIONS(4766),
    [sym_vector] = ACTIONS(4766),
    [sym_void] = ACTIONS(4766),
    [anon_sym_BQUOTE] = ACTIONS(4768),
    [anon_sym_r_DQUOTE] = ACTIONS(4768),
    [anon_sym_x_DQUOTE] = ACTIONS(4768),
    [anon_sym_DQUOTE] = ACTIONS(4768),
    [anon_sym_i_BQUOTE] = ACTIONS(4768),
    [anon_sym_i_DQUOTE] = ACTIONS(4768),
    [anon_sym_iq_LBRACE] = ACTIONS(4768),
    [aux_sym_char_literal_token1] = ACTIONS(4768),
    [anon_sym_SQUOTE] = ACTIONS(4766),
    [anon_sym___DATE__] = ACTIONS(4766),
    [anon_sym___FILE__] = ACTIONS(4766),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4766),
    [anon_sym___FUNCTION__] = ACTIONS(4766),
    [anon_sym___LINE__] = ACTIONS(4766),
    [anon_sym___MODULE__] = ACTIONS(4766),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4766),
    [anon_sym___TIME__] = ACTIONS(4766),
    [anon_sym___TIMESTAMP__] = ACTIONS(4766),
    [anon_sym___VENDOR__] = ACTIONS(4766),
    [anon_sym___VERSION__] = ACTIONS(4766),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4768),
    [sym_float_literal] = ACTIONS(4768),
    [sym__string] = ACTIONS(4768),
  },
  [1681] = {
    [sym_identifier] = ACTIONS(4770),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4772),
    [anon_sym_RBRACE] = ACTIONS(4772),
    [anon_sym_LBRACE] = ACTIONS(4772),
    [anon_sym_DOT] = ACTIONS(4772),
    [anon_sym_AMP] = ACTIONS(4772),
    [anon_sym_DASH] = ACTIONS(4770),
    [anon_sym_DASH_DASH] = ACTIONS(4772),
    [anon_sym_PLUS] = ACTIONS(4770),
    [anon_sym_PLUS_PLUS] = ACTIONS(4772),
    [anon_sym_BANG] = ACTIONS(4772),
    [anon_sym_LPAREN] = ACTIONS(4772),
    [anon_sym_RPAREN] = ACTIONS(4772),
    [anon_sym_LBRACK] = ACTIONS(4772),
    [anon_sym_SEMI] = ACTIONS(4772),
    [anon_sym_DOLLAR] = ACTIONS(4772),
    [anon_sym_STAR] = ACTIONS(4772),
    [anon_sym_TILDE] = ACTIONS(4772),
    [anon_sym_AT] = ACTIONS(4772),
    [sym_bool] = ACTIONS(4770),
    [sym_byte] = ACTIONS(4770),
    [sym_ubyte] = ACTIONS(4770),
    [sym_char] = ACTIONS(4770),
    [sym_short] = ACTIONS(4770),
    [sym_ushort] = ACTIONS(4770),
    [sym_int] = ACTIONS(4770),
    [sym_uint] = ACTIONS(4770),
    [sym_long] = ACTIONS(4770),
    [sym_ulong] = ACTIONS(4770),
    [sym_cent] = ACTIONS(4770),
    [sym_ucent] = ACTIONS(4770),
    [sym_wchar] = ACTIONS(4770),
    [sym_dchar] = ACTIONS(4770),
    [sym_float] = ACTIONS(4770),
    [sym_double] = ACTIONS(4770),
    [sym_real] = ACTIONS(4770),
    [sym_ifloat] = ACTIONS(4770),
    [sym_idouble] = ACTIONS(4770),
    [sym_ireal] = ACTIONS(4770),
    [sym_cfloat] = ACTIONS(4770),
    [sym_cdouble] = ACTIONS(4770),
    [sym_creal] = ACTIONS(4770),
    [sym_size_t] = ACTIONS(4770),
    [sym_ptrdiff_t] = ACTIONS(4770),
    [sym_string] = ACTIONS(4770),
    [sym_cstring] = ACTIONS(4770),
    [sym_dstring] = ACTIONS(4770),
    [sym_wstring] = ACTIONS(4770),
    [sym_noreturn] = ACTIONS(4770),
    [sym_true] = ACTIONS(4770),
    [sym_false] = ACTIONS(4770),
    [sym_null] = ACTIONS(4770),
    [sym_super] = ACTIONS(4770),
    [sym_this] = ACTIONS(4770),
    [sym_abstract] = ACTIONS(4770),
    [sym_alias] = ACTIONS(4770),
    [sym_align] = ACTIONS(4770),
    [sym_asm] = ACTIONS(4770),
    [sym_assert] = ACTIONS(4770),
    [sym_auto] = ACTIONS(4770),
    [sym_break] = ACTIONS(4770),
    [sym_case] = ACTIONS(4770),
    [sym_cast] = ACTIONS(4770),
    [sym_class] = ACTIONS(4770),
    [sym_const] = ACTIONS(4770),
    [sym_continue] = ACTIONS(4770),
    [sym_debug] = ACTIONS(4770),
    [sym_default] = ACTIONS(4770),
    [sym_delegate] = ACTIONS(4770),
    [sym_delete] = ACTIONS(4770),
    [sym_deprecated] = ACTIONS(4770),
    [sym_do] = ACTIONS(4770),
    [sym_else] = ACTIONS(4770),
    [sym_enum] = ACTIONS(4770),
    [sym_export] = ACTIONS(4770),
    [sym_extern] = ACTIONS(4770),
    [sym_final] = ACTIONS(4770),
    [sym_for] = ACTIONS(4770),
    [sym_foreach] = ACTIONS(4770),
    [sym_foreach_reverse] = ACTIONS(4770),
    [sym_function] = ACTIONS(4770),
    [sym_goto] = ACTIONS(4770),
    [sym_if] = ACTIONS(4770),
    [sym_immutable] = ACTIONS(4770),
    [sym_import] = ACTIONS(4770),
    [sym_in] = ACTIONS(4770),
    [sym_inout] = ACTIONS(4770),
    [sym_interface] = ACTIONS(4770),
    [sym_invariant] = ACTIONS(4770),
    [sym_is] = ACTIONS(4770),
    [sym_mixin] = ACTIONS(4770),
    [sym_new] = ACTIONS(4770),
    [sym_nothrow] = ACTIONS(4770),
    [sym_out] = ACTIONS(4770),
    [sym_override] = ACTIONS(4770),
    [sym_package] = ACTIONS(4770),
    [sym_pragma] = ACTIONS(4770),
    [sym_private] = ACTIONS(4770),
    [sym_protected] = ACTIONS(4770),
    [sym_public] = ACTIONS(4770),
    [sym_pure] = ACTIONS(4770),
    [sym_ref] = ACTIONS(4770),
    [sym_return] = ACTIONS(4770),
    [sym_scope] = ACTIONS(4770),
    [sym_shared] = ACTIONS(4770),
    [sym_static] = ACTIONS(4770),
    [sym_struct] = ACTIONS(4770),
    [sym_switch] = ACTIONS(4770),
    [sym_synchronized] = ACTIONS(4770),
    [sym_template] = ACTIONS(4770),
    [sym_throw] = ACTIONS(4770),
    [sym_try] = ACTIONS(4770),
    [sym_typeid] = ACTIONS(4770),
    [sym_typeof] = ACTIONS(4770),
    [sym_union] = ACTIONS(4770),
    [sym_unittest] = ACTIONS(4770),
    [sym_version] = ACTIONS(4770),
    [sym_while] = ACTIONS(4770),
    [sym_with] = ACTIONS(4770),
    [sym_gshared] = ACTIONS(4770),
    [sym_traits] = ACTIONS(4770),
    [sym_vector] = ACTIONS(4770),
    [sym_void] = ACTIONS(4770),
    [anon_sym_BQUOTE] = ACTIONS(4772),
    [anon_sym_r_DQUOTE] = ACTIONS(4772),
    [anon_sym_x_DQUOTE] = ACTIONS(4772),
    [anon_sym_DQUOTE] = ACTIONS(4772),
    [anon_sym_i_BQUOTE] = ACTIONS(4772),
    [anon_sym_i_DQUOTE] = ACTIONS(4772),
    [anon_sym_iq_LBRACE] = ACTIONS(4772),
    [aux_sym_char_literal_token1] = ACTIONS(4772),
    [anon_sym_SQUOTE] = ACTIONS(4770),
    [anon_sym___DATE__] = ACTIONS(4770),
    [anon_sym___FILE__] = ACTIONS(4770),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4770),
    [anon_sym___FUNCTION__] = ACTIONS(4770),
    [anon_sym___LINE__] = ACTIONS(4770),
    [anon_sym___MODULE__] = ACTIONS(4770),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4770),
    [anon_sym___TIME__] = ACTIONS(4770),
    [anon_sym___TIMESTAMP__] = ACTIONS(4770),
    [anon_sym___VENDOR__] = ACTIONS(4770),
    [anon_sym___VERSION__] = ACTIONS(4770),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4772),
    [sym_float_literal] = ACTIONS(4772),
    [sym__string] = ACTIONS(4772),
  },
  [1682] = {
    [sym_identifier] = ACTIONS(4778),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4780),
    [anon_sym_RBRACE] = ACTIONS(4780),
    [anon_sym_LBRACE] = ACTIONS(4780),
    [anon_sym_DOT] = ACTIONS(4780),
    [anon_sym_AMP] = ACTIONS(4780),
    [anon_sym_DASH] = ACTIONS(4778),
    [anon_sym_DASH_DASH] = ACTIONS(4780),
    [anon_sym_PLUS] = ACTIONS(4778),
    [anon_sym_PLUS_PLUS] = ACTIONS(4780),
    [anon_sym_BANG] = ACTIONS(4780),
    [anon_sym_LPAREN] = ACTIONS(4780),
    [anon_sym_RPAREN] = ACTIONS(4780),
    [anon_sym_LBRACK] = ACTIONS(4780),
    [anon_sym_SEMI] = ACTIONS(4780),
    [anon_sym_DOLLAR] = ACTIONS(4780),
    [anon_sym_STAR] = ACTIONS(4780),
    [anon_sym_TILDE] = ACTIONS(4780),
    [anon_sym_AT] = ACTIONS(4780),
    [sym_bool] = ACTIONS(4778),
    [sym_byte] = ACTIONS(4778),
    [sym_ubyte] = ACTIONS(4778),
    [sym_char] = ACTIONS(4778),
    [sym_short] = ACTIONS(4778),
    [sym_ushort] = ACTIONS(4778),
    [sym_int] = ACTIONS(4778),
    [sym_uint] = ACTIONS(4778),
    [sym_long] = ACTIONS(4778),
    [sym_ulong] = ACTIONS(4778),
    [sym_cent] = ACTIONS(4778),
    [sym_ucent] = ACTIONS(4778),
    [sym_wchar] = ACTIONS(4778),
    [sym_dchar] = ACTIONS(4778),
    [sym_float] = ACTIONS(4778),
    [sym_double] = ACTIONS(4778),
    [sym_real] = ACTIONS(4778),
    [sym_ifloat] = ACTIONS(4778),
    [sym_idouble] = ACTIONS(4778),
    [sym_ireal] = ACTIONS(4778),
    [sym_cfloat] = ACTIONS(4778),
    [sym_cdouble] = ACTIONS(4778),
    [sym_creal] = ACTIONS(4778),
    [sym_size_t] = ACTIONS(4778),
    [sym_ptrdiff_t] = ACTIONS(4778),
    [sym_string] = ACTIONS(4778),
    [sym_cstring] = ACTIONS(4778),
    [sym_dstring] = ACTIONS(4778),
    [sym_wstring] = ACTIONS(4778),
    [sym_noreturn] = ACTIONS(4778),
    [sym_true] = ACTIONS(4778),
    [sym_false] = ACTIONS(4778),
    [sym_null] = ACTIONS(4778),
    [sym_super] = ACTIONS(4778),
    [sym_this] = ACTIONS(4778),
    [sym_abstract] = ACTIONS(4778),
    [sym_alias] = ACTIONS(4778),
    [sym_align] = ACTIONS(4778),
    [sym_asm] = ACTIONS(4778),
    [sym_assert] = ACTIONS(4778),
    [sym_auto] = ACTIONS(4778),
    [sym_break] = ACTIONS(4778),
    [sym_case] = ACTIONS(4778),
    [sym_cast] = ACTIONS(4778),
    [sym_class] = ACTIONS(4778),
    [sym_const] = ACTIONS(4778),
    [sym_continue] = ACTIONS(4778),
    [sym_debug] = ACTIONS(4778),
    [sym_default] = ACTIONS(4778),
    [sym_delegate] = ACTIONS(4778),
    [sym_delete] = ACTIONS(4778),
    [sym_deprecated] = ACTIONS(4778),
    [sym_do] = ACTIONS(4778),
    [sym_else] = ACTIONS(4778),
    [sym_enum] = ACTIONS(4778),
    [sym_export] = ACTIONS(4778),
    [sym_extern] = ACTIONS(4778),
    [sym_final] = ACTIONS(4778),
    [sym_for] = ACTIONS(4778),
    [sym_foreach] = ACTIONS(4778),
    [sym_foreach_reverse] = ACTIONS(4778),
    [sym_function] = ACTIONS(4778),
    [sym_goto] = ACTIONS(4778),
    [sym_if] = ACTIONS(4778),
    [sym_immutable] = ACTIONS(4778),
    [sym_import] = ACTIONS(4778),
    [sym_in] = ACTIONS(4778),
    [sym_inout] = ACTIONS(4778),
    [sym_interface] = ACTIONS(4778),
    [sym_invariant] = ACTIONS(4778),
    [sym_is] = ACTIONS(4778),
    [sym_mixin] = ACTIONS(4778),
    [sym_new] = ACTIONS(4778),
    [sym_nothrow] = ACTIONS(4778),
    [sym_out] = ACTIONS(4778),
    [sym_override] = ACTIONS(4778),
    [sym_package] = ACTIONS(4778),
    [sym_pragma] = ACTIONS(4778),
    [sym_private] = ACTIONS(4778),
    [sym_protected] = ACTIONS(4778),
    [sym_public] = ACTIONS(4778),
    [sym_pure] = ACTIONS(4778),
    [sym_ref] = ACTIONS(4778),
    [sym_return] = ACTIONS(4778),
    [sym_scope] = ACTIONS(4778),
    [sym_shared] = ACTIONS(4778),
    [sym_static] = ACTIONS(4778),
    [sym_struct] = ACTIONS(4778),
    [sym_switch] = ACTIONS(4778),
    [sym_synchronized] = ACTIONS(4778),
    [sym_template] = ACTIONS(4778),
    [sym_throw] = ACTIONS(4778),
    [sym_try] = ACTIONS(4778),
    [sym_typeid] = ACTIONS(4778),
    [sym_typeof] = ACTIONS(4778),
    [sym_union] = ACTIONS(4778),
    [sym_unittest] = ACTIONS(4778),
    [sym_version] = ACTIONS(4778),
    [sym_while] = ACTIONS(4778),
    [sym_with] = ACTIONS(4778),
    [sym_gshared] = ACTIONS(4778),
    [sym_traits] = ACTIONS(4778),
    [sym_vector] = ACTIONS(4778),
    [sym_void] = ACTIONS(4778),
    [anon_sym_BQUOTE] = ACTIONS(4780),
    [anon_sym_r_DQUOTE] = ACTIONS(4780),
    [anon_sym_x_DQUOTE] = ACTIONS(4780),
    [anon_sym_DQUOTE] = ACTIONS(4780),
    [anon_sym_i_BQUOTE] = ACTIONS(4780),
    [anon_sym_i_DQUOTE] = ACTIONS(4780),
    [anon_sym_iq_LBRACE] = ACTIONS(4780),
    [aux_sym_char_literal_token1] = ACTIONS(4780),
    [anon_sym_SQUOTE] = ACTIONS(4778),
    [anon_sym___DATE__] = ACTIONS(4778),
    [anon_sym___FILE__] = ACTIONS(4778),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4778),
    [anon_sym___FUNCTION__] = ACTIONS(4778),
    [anon_sym___LINE__] = ACTIONS(4778),
    [anon_sym___MODULE__] = ACTIONS(4778),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4778),
    [anon_sym___TIME__] = ACTIONS(4778),
    [anon_sym___TIMESTAMP__] = ACTIONS(4778),
    [anon_sym___VENDOR__] = ACTIONS(4778),
    [anon_sym___VERSION__] = ACTIONS(4778),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4780),
    [sym_float_literal] = ACTIONS(4780),
    [sym__string] = ACTIONS(4780),
  },
  [1683] = {
    [sym_identifier] = ACTIONS(4798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4800),
    [anon_sym_RBRACE] = ACTIONS(4800),
    [anon_sym_LBRACE] = ACTIONS(4800),
    [anon_sym_DOT] = ACTIONS(4800),
    [anon_sym_AMP] = ACTIONS(4800),
    [anon_sym_DASH] = ACTIONS(4798),
    [anon_sym_DASH_DASH] = ACTIONS(4800),
    [anon_sym_PLUS] = ACTIONS(4798),
    [anon_sym_PLUS_PLUS] = ACTIONS(4800),
    [anon_sym_BANG] = ACTIONS(4800),
    [anon_sym_LPAREN] = ACTIONS(4800),
    [anon_sym_RPAREN] = ACTIONS(4800),
    [anon_sym_LBRACK] = ACTIONS(4800),
    [anon_sym_SEMI] = ACTIONS(4800),
    [anon_sym_DOLLAR] = ACTIONS(4800),
    [anon_sym_STAR] = ACTIONS(4800),
    [anon_sym_TILDE] = ACTIONS(4800),
    [anon_sym_AT] = ACTIONS(4800),
    [sym_bool] = ACTIONS(4798),
    [sym_byte] = ACTIONS(4798),
    [sym_ubyte] = ACTIONS(4798),
    [sym_char] = ACTIONS(4798),
    [sym_short] = ACTIONS(4798),
    [sym_ushort] = ACTIONS(4798),
    [sym_int] = ACTIONS(4798),
    [sym_uint] = ACTIONS(4798),
    [sym_long] = ACTIONS(4798),
    [sym_ulong] = ACTIONS(4798),
    [sym_cent] = ACTIONS(4798),
    [sym_ucent] = ACTIONS(4798),
    [sym_wchar] = ACTIONS(4798),
    [sym_dchar] = ACTIONS(4798),
    [sym_float] = ACTIONS(4798),
    [sym_double] = ACTIONS(4798),
    [sym_real] = ACTIONS(4798),
    [sym_ifloat] = ACTIONS(4798),
    [sym_idouble] = ACTIONS(4798),
    [sym_ireal] = ACTIONS(4798),
    [sym_cfloat] = ACTIONS(4798),
    [sym_cdouble] = ACTIONS(4798),
    [sym_creal] = ACTIONS(4798),
    [sym_size_t] = ACTIONS(4798),
    [sym_ptrdiff_t] = ACTIONS(4798),
    [sym_string] = ACTIONS(4798),
    [sym_cstring] = ACTIONS(4798),
    [sym_dstring] = ACTIONS(4798),
    [sym_wstring] = ACTIONS(4798),
    [sym_noreturn] = ACTIONS(4798),
    [sym_true] = ACTIONS(4798),
    [sym_false] = ACTIONS(4798),
    [sym_null] = ACTIONS(4798),
    [sym_super] = ACTIONS(4798),
    [sym_this] = ACTIONS(4798),
    [sym_abstract] = ACTIONS(4798),
    [sym_alias] = ACTIONS(4798),
    [sym_align] = ACTIONS(4798),
    [sym_asm] = ACTIONS(4798),
    [sym_assert] = ACTIONS(4798),
    [sym_auto] = ACTIONS(4798),
    [sym_break] = ACTIONS(4798),
    [sym_case] = ACTIONS(4798),
    [sym_cast] = ACTIONS(4798),
    [sym_class] = ACTIONS(4798),
    [sym_const] = ACTIONS(4798),
    [sym_continue] = ACTIONS(4798),
    [sym_debug] = ACTIONS(4798),
    [sym_default] = ACTIONS(4798),
    [sym_delegate] = ACTIONS(4798),
    [sym_delete] = ACTIONS(4798),
    [sym_deprecated] = ACTIONS(4798),
    [sym_do] = ACTIONS(4798),
    [sym_else] = ACTIONS(4798),
    [sym_enum] = ACTIONS(4798),
    [sym_export] = ACTIONS(4798),
    [sym_extern] = ACTIONS(4798),
    [sym_final] = ACTIONS(4798),
    [sym_for] = ACTIONS(4798),
    [sym_foreach] = ACTIONS(4798),
    [sym_foreach_reverse] = ACTIONS(4798),
    [sym_function] = ACTIONS(4798),
    [sym_goto] = ACTIONS(4798),
    [sym_if] = ACTIONS(4798),
    [sym_immutable] = ACTIONS(4798),
    [sym_import] = ACTIONS(4798),
    [sym_in] = ACTIONS(4798),
    [sym_inout] = ACTIONS(4798),
    [sym_interface] = ACTIONS(4798),
    [sym_invariant] = ACTIONS(4798),
    [sym_is] = ACTIONS(4798),
    [sym_mixin] = ACTIONS(4798),
    [sym_new] = ACTIONS(4798),
    [sym_nothrow] = ACTIONS(4798),
    [sym_out] = ACTIONS(4798),
    [sym_override] = ACTIONS(4798),
    [sym_package] = ACTIONS(4798),
    [sym_pragma] = ACTIONS(4798),
    [sym_private] = ACTIONS(4798),
    [sym_protected] = ACTIONS(4798),
    [sym_public] = ACTIONS(4798),
    [sym_pure] = ACTIONS(4798),
    [sym_ref] = ACTIONS(4798),
    [sym_return] = ACTIONS(4798),
    [sym_scope] = ACTIONS(4798),
    [sym_shared] = ACTIONS(4798),
    [sym_static] = ACTIONS(4798),
    [sym_struct] = ACTIONS(4798),
    [sym_switch] = ACTIONS(4798),
    [sym_synchronized] = ACTIONS(4798),
    [sym_template] = ACTIONS(4798),
    [sym_throw] = ACTIONS(4798),
    [sym_try] = ACTIONS(4798),
    [sym_typeid] = ACTIONS(4798),
    [sym_typeof] = ACTIONS(4798),
    [sym_union] = ACTIONS(4798),
    [sym_unittest] = ACTIONS(4798),
    [sym_version] = ACTIONS(4798),
    [sym_while] = ACTIONS(4798),
    [sym_with] = ACTIONS(4798),
    [sym_gshared] = ACTIONS(4798),
    [sym_traits] = ACTIONS(4798),
    [sym_vector] = ACTIONS(4798),
    [sym_void] = ACTIONS(4798),
    [anon_sym_BQUOTE] = ACTIONS(4800),
    [anon_sym_r_DQUOTE] = ACTIONS(4800),
    [anon_sym_x_DQUOTE] = ACTIONS(4800),
    [anon_sym_DQUOTE] = ACTIONS(4800),
    [anon_sym_i_BQUOTE] = ACTIONS(4800),
    [anon_sym_i_DQUOTE] = ACTIONS(4800),
    [anon_sym_iq_LBRACE] = ACTIONS(4800),
    [aux_sym_char_literal_token1] = ACTIONS(4800),
    [anon_sym_SQUOTE] = ACTIONS(4798),
    [anon_sym___DATE__] = ACTIONS(4798),
    [anon_sym___FILE__] = ACTIONS(4798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4798),
    [anon_sym___FUNCTION__] = ACTIONS(4798),
    [anon_sym___LINE__] = ACTIONS(4798),
    [anon_sym___MODULE__] = ACTIONS(4798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4798),
    [anon_sym___TIME__] = ACTIONS(4798),
    [anon_sym___TIMESTAMP__] = ACTIONS(4798),
    [anon_sym___VENDOR__] = ACTIONS(4798),
    [anon_sym___VERSION__] = ACTIONS(4798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4800),
    [sym_float_literal] = ACTIONS(4800),
    [sym__string] = ACTIONS(4800),
  },
  [1684] = {
    [sym_identifier] = ACTIONS(4852),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4854),
    [anon_sym_RBRACE] = ACTIONS(4854),
    [anon_sym_LBRACE] = ACTIONS(4854),
    [anon_sym_DOT] = ACTIONS(4854),
    [anon_sym_AMP] = ACTIONS(4854),
    [anon_sym_DASH] = ACTIONS(4852),
    [anon_sym_DASH_DASH] = ACTIONS(4854),
    [anon_sym_PLUS] = ACTIONS(4852),
    [anon_sym_PLUS_PLUS] = ACTIONS(4854),
    [anon_sym_BANG] = ACTIONS(4854),
    [anon_sym_LPAREN] = ACTIONS(4854),
    [anon_sym_RPAREN] = ACTIONS(4854),
    [anon_sym_LBRACK] = ACTIONS(4854),
    [anon_sym_SEMI] = ACTIONS(4854),
    [anon_sym_DOLLAR] = ACTIONS(4854),
    [anon_sym_STAR] = ACTIONS(4854),
    [anon_sym_TILDE] = ACTIONS(4854),
    [anon_sym_AT] = ACTIONS(4854),
    [sym_bool] = ACTIONS(4852),
    [sym_byte] = ACTIONS(4852),
    [sym_ubyte] = ACTIONS(4852),
    [sym_char] = ACTIONS(4852),
    [sym_short] = ACTIONS(4852),
    [sym_ushort] = ACTIONS(4852),
    [sym_int] = ACTIONS(4852),
    [sym_uint] = ACTIONS(4852),
    [sym_long] = ACTIONS(4852),
    [sym_ulong] = ACTIONS(4852),
    [sym_cent] = ACTIONS(4852),
    [sym_ucent] = ACTIONS(4852),
    [sym_wchar] = ACTIONS(4852),
    [sym_dchar] = ACTIONS(4852),
    [sym_float] = ACTIONS(4852),
    [sym_double] = ACTIONS(4852),
    [sym_real] = ACTIONS(4852),
    [sym_ifloat] = ACTIONS(4852),
    [sym_idouble] = ACTIONS(4852),
    [sym_ireal] = ACTIONS(4852),
    [sym_cfloat] = ACTIONS(4852),
    [sym_cdouble] = ACTIONS(4852),
    [sym_creal] = ACTIONS(4852),
    [sym_size_t] = ACTIONS(4852),
    [sym_ptrdiff_t] = ACTIONS(4852),
    [sym_string] = ACTIONS(4852),
    [sym_cstring] = ACTIONS(4852),
    [sym_dstring] = ACTIONS(4852),
    [sym_wstring] = ACTIONS(4852),
    [sym_noreturn] = ACTIONS(4852),
    [sym_true] = ACTIONS(4852),
    [sym_false] = ACTIONS(4852),
    [sym_null] = ACTIONS(4852),
    [sym_super] = ACTIONS(4852),
    [sym_this] = ACTIONS(4852),
    [sym_abstract] = ACTIONS(4852),
    [sym_alias] = ACTIONS(4852),
    [sym_align] = ACTIONS(4852),
    [sym_asm] = ACTIONS(4852),
    [sym_assert] = ACTIONS(4852),
    [sym_auto] = ACTIONS(4852),
    [sym_break] = ACTIONS(4852),
    [sym_case] = ACTIONS(4852),
    [sym_cast] = ACTIONS(4852),
    [sym_class] = ACTIONS(4852),
    [sym_const] = ACTIONS(4852),
    [sym_continue] = ACTIONS(4852),
    [sym_debug] = ACTIONS(4852),
    [sym_default] = ACTIONS(4852),
    [sym_delegate] = ACTIONS(4852),
    [sym_delete] = ACTIONS(4852),
    [sym_deprecated] = ACTIONS(4852),
    [sym_do] = ACTIONS(4852),
    [sym_else] = ACTIONS(4852),
    [sym_enum] = ACTIONS(4852),
    [sym_export] = ACTIONS(4852),
    [sym_extern] = ACTIONS(4852),
    [sym_final] = ACTIONS(4852),
    [sym_for] = ACTIONS(4852),
    [sym_foreach] = ACTIONS(4852),
    [sym_foreach_reverse] = ACTIONS(4852),
    [sym_function] = ACTIONS(4852),
    [sym_goto] = ACTIONS(4852),
    [sym_if] = ACTIONS(4852),
    [sym_immutable] = ACTIONS(4852),
    [sym_import] = ACTIONS(4852),
    [sym_in] = ACTIONS(4852),
    [sym_inout] = ACTIONS(4852),
    [sym_interface] = ACTIONS(4852),
    [sym_invariant] = ACTIONS(4852),
    [sym_is] = ACTIONS(4852),
    [sym_mixin] = ACTIONS(4852),
    [sym_new] = ACTIONS(4852),
    [sym_nothrow] = ACTIONS(4852),
    [sym_out] = ACTIONS(4852),
    [sym_override] = ACTIONS(4852),
    [sym_package] = ACTIONS(4852),
    [sym_pragma] = ACTIONS(4852),
    [sym_private] = ACTIONS(4852),
    [sym_protected] = ACTIONS(4852),
    [sym_public] = ACTIONS(4852),
    [sym_pure] = ACTIONS(4852),
    [sym_ref] = ACTIONS(4852),
    [sym_return] = ACTIONS(4852),
    [sym_scope] = ACTIONS(4852),
    [sym_shared] = ACTIONS(4852),
    [sym_static] = ACTIONS(4852),
    [sym_struct] = ACTIONS(4852),
    [sym_switch] = ACTIONS(4852),
    [sym_synchronized] = ACTIONS(4852),
    [sym_template] = ACTIONS(4852),
    [sym_throw] = ACTIONS(4852),
    [sym_try] = ACTIONS(4852),
    [sym_typeid] = ACTIONS(4852),
    [sym_typeof] = ACTIONS(4852),
    [sym_union] = ACTIONS(4852),
    [sym_unittest] = ACTIONS(4852),
    [sym_version] = ACTIONS(4852),
    [sym_while] = ACTIONS(4852),
    [sym_with] = ACTIONS(4852),
    [sym_gshared] = ACTIONS(4852),
    [sym_traits] = ACTIONS(4852),
    [sym_vector] = ACTIONS(4852),
    [sym_void] = ACTIONS(4852),
    [anon_sym_BQUOTE] = ACTIONS(4854),
    [anon_sym_r_DQUOTE] = ACTIONS(4854),
    [anon_sym_x_DQUOTE] = ACTIONS(4854),
    [anon_sym_DQUOTE] = ACTIONS(4854),
    [anon_sym_i_BQUOTE] = ACTIONS(4854),
    [anon_sym_i_DQUOTE] = ACTIONS(4854),
    [anon_sym_iq_LBRACE] = ACTIONS(4854),
    [aux_sym_char_literal_token1] = ACTIONS(4854),
    [anon_sym_SQUOTE] = ACTIONS(4852),
    [anon_sym___DATE__] = ACTIONS(4852),
    [anon_sym___FILE__] = ACTIONS(4852),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4852),
    [anon_sym___FUNCTION__] = ACTIONS(4852),
    [anon_sym___LINE__] = ACTIONS(4852),
    [anon_sym___MODULE__] = ACTIONS(4852),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4852),
    [anon_sym___TIME__] = ACTIONS(4852),
    [anon_sym___TIMESTAMP__] = ACTIONS(4852),
    [anon_sym___VENDOR__] = ACTIONS(4852),
    [anon_sym___VERSION__] = ACTIONS(4852),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4854),
    [sym_float_literal] = ACTIONS(4854),
    [sym__string] = ACTIONS(4854),
  },
  [1685] = {
    [sym_identifier] = ACTIONS(4860),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4862),
    [anon_sym_RBRACE] = ACTIONS(4862),
    [anon_sym_LBRACE] = ACTIONS(4862),
    [anon_sym_DOT] = ACTIONS(4862),
    [anon_sym_AMP] = ACTIONS(4862),
    [anon_sym_DASH] = ACTIONS(4860),
    [anon_sym_DASH_DASH] = ACTIONS(4862),
    [anon_sym_PLUS] = ACTIONS(4860),
    [anon_sym_PLUS_PLUS] = ACTIONS(4862),
    [anon_sym_BANG] = ACTIONS(4862),
    [anon_sym_LPAREN] = ACTIONS(4862),
    [anon_sym_RPAREN] = ACTIONS(4862),
    [anon_sym_LBRACK] = ACTIONS(4862),
    [anon_sym_SEMI] = ACTIONS(4862),
    [anon_sym_DOLLAR] = ACTIONS(4862),
    [anon_sym_STAR] = ACTIONS(4862),
    [anon_sym_TILDE] = ACTIONS(4862),
    [anon_sym_AT] = ACTIONS(4862),
    [sym_bool] = ACTIONS(4860),
    [sym_byte] = ACTIONS(4860),
    [sym_ubyte] = ACTIONS(4860),
    [sym_char] = ACTIONS(4860),
    [sym_short] = ACTIONS(4860),
    [sym_ushort] = ACTIONS(4860),
    [sym_int] = ACTIONS(4860),
    [sym_uint] = ACTIONS(4860),
    [sym_long] = ACTIONS(4860),
    [sym_ulong] = ACTIONS(4860),
    [sym_cent] = ACTIONS(4860),
    [sym_ucent] = ACTIONS(4860),
    [sym_wchar] = ACTIONS(4860),
    [sym_dchar] = ACTIONS(4860),
    [sym_float] = ACTIONS(4860),
    [sym_double] = ACTIONS(4860),
    [sym_real] = ACTIONS(4860),
    [sym_ifloat] = ACTIONS(4860),
    [sym_idouble] = ACTIONS(4860),
    [sym_ireal] = ACTIONS(4860),
    [sym_cfloat] = ACTIONS(4860),
    [sym_cdouble] = ACTIONS(4860),
    [sym_creal] = ACTIONS(4860),
    [sym_size_t] = ACTIONS(4860),
    [sym_ptrdiff_t] = ACTIONS(4860),
    [sym_string] = ACTIONS(4860),
    [sym_cstring] = ACTIONS(4860),
    [sym_dstring] = ACTIONS(4860),
    [sym_wstring] = ACTIONS(4860),
    [sym_noreturn] = ACTIONS(4860),
    [sym_true] = ACTIONS(4860),
    [sym_false] = ACTIONS(4860),
    [sym_null] = ACTIONS(4860),
    [sym_super] = ACTIONS(4860),
    [sym_this] = ACTIONS(4860),
    [sym_abstract] = ACTIONS(4860),
    [sym_alias] = ACTIONS(4860),
    [sym_align] = ACTIONS(4860),
    [sym_asm] = ACTIONS(4860),
    [sym_assert] = ACTIONS(4860),
    [sym_auto] = ACTIONS(4860),
    [sym_break] = ACTIONS(4860),
    [sym_case] = ACTIONS(4860),
    [sym_cast] = ACTIONS(4860),
    [sym_class] = ACTIONS(4860),
    [sym_const] = ACTIONS(4860),
    [sym_continue] = ACTIONS(4860),
    [sym_debug] = ACTIONS(4860),
    [sym_default] = ACTIONS(4860),
    [sym_delegate] = ACTIONS(4860),
    [sym_delete] = ACTIONS(4860),
    [sym_deprecated] = ACTIONS(4860),
    [sym_do] = ACTIONS(4860),
    [sym_else] = ACTIONS(4860),
    [sym_enum] = ACTIONS(4860),
    [sym_export] = ACTIONS(4860),
    [sym_extern] = ACTIONS(4860),
    [sym_final] = ACTIONS(4860),
    [sym_for] = ACTIONS(4860),
    [sym_foreach] = ACTIONS(4860),
    [sym_foreach_reverse] = ACTIONS(4860),
    [sym_function] = ACTIONS(4860),
    [sym_goto] = ACTIONS(4860),
    [sym_if] = ACTIONS(4860),
    [sym_immutable] = ACTIONS(4860),
    [sym_import] = ACTIONS(4860),
    [sym_in] = ACTIONS(4860),
    [sym_inout] = ACTIONS(4860),
    [sym_interface] = ACTIONS(4860),
    [sym_invariant] = ACTIONS(4860),
    [sym_is] = ACTIONS(4860),
    [sym_mixin] = ACTIONS(4860),
    [sym_new] = ACTIONS(4860),
    [sym_nothrow] = ACTIONS(4860),
    [sym_out] = ACTIONS(4860),
    [sym_override] = ACTIONS(4860),
    [sym_package] = ACTIONS(4860),
    [sym_pragma] = ACTIONS(4860),
    [sym_private] = ACTIONS(4860),
    [sym_protected] = ACTIONS(4860),
    [sym_public] = ACTIONS(4860),
    [sym_pure] = ACTIONS(4860),
    [sym_ref] = ACTIONS(4860),
    [sym_return] = ACTIONS(4860),
    [sym_scope] = ACTIONS(4860),
    [sym_shared] = ACTIONS(4860),
    [sym_static] = ACTIONS(4860),
    [sym_struct] = ACTIONS(4860),
    [sym_switch] = ACTIONS(4860),
    [sym_synchronized] = ACTIONS(4860),
    [sym_template] = ACTIONS(4860),
    [sym_throw] = ACTIONS(4860),
    [sym_try] = ACTIONS(4860),
    [sym_typeid] = ACTIONS(4860),
    [sym_typeof] = ACTIONS(4860),
    [sym_union] = ACTIONS(4860),
    [sym_unittest] = ACTIONS(4860),
    [sym_version] = ACTIONS(4860),
    [sym_while] = ACTIONS(4860),
    [sym_with] = ACTIONS(4860),
    [sym_gshared] = ACTIONS(4860),
    [sym_traits] = ACTIONS(4860),
    [sym_vector] = ACTIONS(4860),
    [sym_void] = ACTIONS(4860),
    [anon_sym_BQUOTE] = ACTIONS(4862),
    [anon_sym_r_DQUOTE] = ACTIONS(4862),
    [anon_sym_x_DQUOTE] = ACTIONS(4862),
    [anon_sym_DQUOTE] = ACTIONS(4862),
    [anon_sym_i_BQUOTE] = ACTIONS(4862),
    [anon_sym_i_DQUOTE] = ACTIONS(4862),
    [anon_sym_iq_LBRACE] = ACTIONS(4862),
    [aux_sym_char_literal_token1] = ACTIONS(4862),
    [anon_sym_SQUOTE] = ACTIONS(4860),
    [anon_sym___DATE__] = ACTIONS(4860),
    [anon_sym___FILE__] = ACTIONS(4860),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4860),
    [anon_sym___FUNCTION__] = ACTIONS(4860),
    [anon_sym___LINE__] = ACTIONS(4860),
    [anon_sym___MODULE__] = ACTIONS(4860),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4860),
    [anon_sym___TIME__] = ACTIONS(4860),
    [anon_sym___TIMESTAMP__] = ACTIONS(4860),
    [anon_sym___VENDOR__] = ACTIONS(4860),
    [anon_sym___VERSION__] = ACTIONS(4860),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4862),
    [sym_float_literal] = ACTIONS(4862),
    [sym__string] = ACTIONS(4862),
  },
  [1686] = {
    [sym_identifier] = ACTIONS(4960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4962),
    [anon_sym_RBRACE] = ACTIONS(4962),
    [anon_sym_LBRACE] = ACTIONS(4962),
    [anon_sym_DOT] = ACTIONS(4962),
    [anon_sym_AMP] = ACTIONS(4962),
    [anon_sym_DASH] = ACTIONS(4960),
    [anon_sym_DASH_DASH] = ACTIONS(4962),
    [anon_sym_PLUS] = ACTIONS(4960),
    [anon_sym_PLUS_PLUS] = ACTIONS(4962),
    [anon_sym_BANG] = ACTIONS(4962),
    [anon_sym_LPAREN] = ACTIONS(4962),
    [anon_sym_RPAREN] = ACTIONS(4962),
    [anon_sym_LBRACK] = ACTIONS(4962),
    [anon_sym_SEMI] = ACTIONS(4962),
    [anon_sym_DOLLAR] = ACTIONS(4962),
    [anon_sym_STAR] = ACTIONS(4962),
    [anon_sym_TILDE] = ACTIONS(4962),
    [anon_sym_AT] = ACTIONS(4962),
    [sym_bool] = ACTIONS(4960),
    [sym_byte] = ACTIONS(4960),
    [sym_ubyte] = ACTIONS(4960),
    [sym_char] = ACTIONS(4960),
    [sym_short] = ACTIONS(4960),
    [sym_ushort] = ACTIONS(4960),
    [sym_int] = ACTIONS(4960),
    [sym_uint] = ACTIONS(4960),
    [sym_long] = ACTIONS(4960),
    [sym_ulong] = ACTIONS(4960),
    [sym_cent] = ACTIONS(4960),
    [sym_ucent] = ACTIONS(4960),
    [sym_wchar] = ACTIONS(4960),
    [sym_dchar] = ACTIONS(4960),
    [sym_float] = ACTIONS(4960),
    [sym_double] = ACTIONS(4960),
    [sym_real] = ACTIONS(4960),
    [sym_ifloat] = ACTIONS(4960),
    [sym_idouble] = ACTIONS(4960),
    [sym_ireal] = ACTIONS(4960),
    [sym_cfloat] = ACTIONS(4960),
    [sym_cdouble] = ACTIONS(4960),
    [sym_creal] = ACTIONS(4960),
    [sym_size_t] = ACTIONS(4960),
    [sym_ptrdiff_t] = ACTIONS(4960),
    [sym_string] = ACTIONS(4960),
    [sym_cstring] = ACTIONS(4960),
    [sym_dstring] = ACTIONS(4960),
    [sym_wstring] = ACTIONS(4960),
    [sym_noreturn] = ACTIONS(4960),
    [sym_true] = ACTIONS(4960),
    [sym_false] = ACTIONS(4960),
    [sym_null] = ACTIONS(4960),
    [sym_super] = ACTIONS(4960),
    [sym_this] = ACTIONS(4960),
    [sym_abstract] = ACTIONS(4960),
    [sym_alias] = ACTIONS(4960),
    [sym_align] = ACTIONS(4960),
    [sym_asm] = ACTIONS(4960),
    [sym_assert] = ACTIONS(4960),
    [sym_auto] = ACTIONS(4960),
    [sym_break] = ACTIONS(4960),
    [sym_case] = ACTIONS(4960),
    [sym_cast] = ACTIONS(4960),
    [sym_class] = ACTIONS(4960),
    [sym_const] = ACTIONS(4960),
    [sym_continue] = ACTIONS(4960),
    [sym_debug] = ACTIONS(4960),
    [sym_default] = ACTIONS(4960),
    [sym_delegate] = ACTIONS(4960),
    [sym_delete] = ACTIONS(4960),
    [sym_deprecated] = ACTIONS(4960),
    [sym_do] = ACTIONS(4960),
    [sym_else] = ACTIONS(4960),
    [sym_enum] = ACTIONS(4960),
    [sym_export] = ACTIONS(4960),
    [sym_extern] = ACTIONS(4960),
    [sym_final] = ACTIONS(4960),
    [sym_for] = ACTIONS(4960),
    [sym_foreach] = ACTIONS(4960),
    [sym_foreach_reverse] = ACTIONS(4960),
    [sym_function] = ACTIONS(4960),
    [sym_goto] = ACTIONS(4960),
    [sym_if] = ACTIONS(4960),
    [sym_immutable] = ACTIONS(4960),
    [sym_import] = ACTIONS(4960),
    [sym_in] = ACTIONS(4960),
    [sym_inout] = ACTIONS(4960),
    [sym_interface] = ACTIONS(4960),
    [sym_invariant] = ACTIONS(4960),
    [sym_is] = ACTIONS(4960),
    [sym_mixin] = ACTIONS(4960),
    [sym_new] = ACTIONS(4960),
    [sym_nothrow] = ACTIONS(4960),
    [sym_out] = ACTIONS(4960),
    [sym_override] = ACTIONS(4960),
    [sym_package] = ACTIONS(4960),
    [sym_pragma] = ACTIONS(4960),
    [sym_private] = ACTIONS(4960),
    [sym_protected] = ACTIONS(4960),
    [sym_public] = ACTIONS(4960),
    [sym_pure] = ACTIONS(4960),
    [sym_ref] = ACTIONS(4960),
    [sym_return] = ACTIONS(4960),
    [sym_scope] = ACTIONS(4960),
    [sym_shared] = ACTIONS(4960),
    [sym_static] = ACTIONS(4960),
    [sym_struct] = ACTIONS(4960),
    [sym_switch] = ACTIONS(4960),
    [sym_synchronized] = ACTIONS(4960),
    [sym_template] = ACTIONS(4960),
    [sym_throw] = ACTIONS(4960),
    [sym_try] = ACTIONS(4960),
    [sym_typeid] = ACTIONS(4960),
    [sym_typeof] = ACTIONS(4960),
    [sym_union] = ACTIONS(4960),
    [sym_unittest] = ACTIONS(4960),
    [sym_version] = ACTIONS(4960),
    [sym_while] = ACTIONS(4960),
    [sym_with] = ACTIONS(4960),
    [sym_gshared] = ACTIONS(4960),
    [sym_traits] = ACTIONS(4960),
    [sym_vector] = ACTIONS(4960),
    [sym_void] = ACTIONS(4960),
    [anon_sym_BQUOTE] = ACTIONS(4962),
    [anon_sym_r_DQUOTE] = ACTIONS(4962),
    [anon_sym_x_DQUOTE] = ACTIONS(4962),
    [anon_sym_DQUOTE] = ACTIONS(4962),
    [anon_sym_i_BQUOTE] = ACTIONS(4962),
    [anon_sym_i_DQUOTE] = ACTIONS(4962),
    [anon_sym_iq_LBRACE] = ACTIONS(4962),
    [aux_sym_char_literal_token1] = ACTIONS(4962),
    [anon_sym_SQUOTE] = ACTIONS(4960),
    [anon_sym___DATE__] = ACTIONS(4960),
    [anon_sym___FILE__] = ACTIONS(4960),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4960),
    [anon_sym___FUNCTION__] = ACTIONS(4960),
    [anon_sym___LINE__] = ACTIONS(4960),
    [anon_sym___MODULE__] = ACTIONS(4960),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4960),
    [anon_sym___TIME__] = ACTIONS(4960),
    [anon_sym___TIMESTAMP__] = ACTIONS(4960),
    [anon_sym___VENDOR__] = ACTIONS(4960),
    [anon_sym___VERSION__] = ACTIONS(4960),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4962),
    [sym_float_literal] = ACTIONS(4962),
    [sym__string] = ACTIONS(4962),
  },
  [1687] = {
    [sym_identifier] = ACTIONS(4382),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4384),
    [anon_sym_RBRACE] = ACTIONS(4384),
    [anon_sym_LBRACE] = ACTIONS(4384),
    [anon_sym_DOT] = ACTIONS(4384),
    [anon_sym_AMP] = ACTIONS(4384),
    [anon_sym_DASH] = ACTIONS(4382),
    [anon_sym_DASH_DASH] = ACTIONS(4384),
    [anon_sym_PLUS] = ACTIONS(4382),
    [anon_sym_PLUS_PLUS] = ACTIONS(4384),
    [anon_sym_BANG] = ACTIONS(4384),
    [anon_sym_LPAREN] = ACTIONS(4384),
    [anon_sym_RPAREN] = ACTIONS(4384),
    [anon_sym_LBRACK] = ACTIONS(4384),
    [anon_sym_SEMI] = ACTIONS(4384),
    [anon_sym_DOLLAR] = ACTIONS(4384),
    [anon_sym_STAR] = ACTIONS(4384),
    [anon_sym_TILDE] = ACTIONS(4384),
    [anon_sym_AT] = ACTIONS(4384),
    [sym_bool] = ACTIONS(4382),
    [sym_byte] = ACTIONS(4382),
    [sym_ubyte] = ACTIONS(4382),
    [sym_char] = ACTIONS(4382),
    [sym_short] = ACTIONS(4382),
    [sym_ushort] = ACTIONS(4382),
    [sym_int] = ACTIONS(4382),
    [sym_uint] = ACTIONS(4382),
    [sym_long] = ACTIONS(4382),
    [sym_ulong] = ACTIONS(4382),
    [sym_cent] = ACTIONS(4382),
    [sym_ucent] = ACTIONS(4382),
    [sym_wchar] = ACTIONS(4382),
    [sym_dchar] = ACTIONS(4382),
    [sym_float] = ACTIONS(4382),
    [sym_double] = ACTIONS(4382),
    [sym_real] = ACTIONS(4382),
    [sym_ifloat] = ACTIONS(4382),
    [sym_idouble] = ACTIONS(4382),
    [sym_ireal] = ACTIONS(4382),
    [sym_cfloat] = ACTIONS(4382),
    [sym_cdouble] = ACTIONS(4382),
    [sym_creal] = ACTIONS(4382),
    [sym_size_t] = ACTIONS(4382),
    [sym_ptrdiff_t] = ACTIONS(4382),
    [sym_string] = ACTIONS(4382),
    [sym_cstring] = ACTIONS(4382),
    [sym_dstring] = ACTIONS(4382),
    [sym_wstring] = ACTIONS(4382),
    [sym_noreturn] = ACTIONS(4382),
    [sym_true] = ACTIONS(4382),
    [sym_false] = ACTIONS(4382),
    [sym_null] = ACTIONS(4382),
    [sym_super] = ACTIONS(4382),
    [sym_this] = ACTIONS(4382),
    [sym_abstract] = ACTIONS(4382),
    [sym_alias] = ACTIONS(4382),
    [sym_align] = ACTIONS(4382),
    [sym_asm] = ACTIONS(4382),
    [sym_assert] = ACTIONS(4382),
    [sym_auto] = ACTIONS(4382),
    [sym_break] = ACTIONS(4382),
    [sym_case] = ACTIONS(4382),
    [sym_cast] = ACTIONS(4382),
    [sym_class] = ACTIONS(4382),
    [sym_const] = ACTIONS(4382),
    [sym_continue] = ACTIONS(4382),
    [sym_debug] = ACTIONS(4382),
    [sym_default] = ACTIONS(4382),
    [sym_delegate] = ACTIONS(4382),
    [sym_delete] = ACTIONS(4382),
    [sym_deprecated] = ACTIONS(4382),
    [sym_do] = ACTIONS(4382),
    [sym_else] = ACTIONS(4382),
    [sym_enum] = ACTIONS(4382),
    [sym_export] = ACTIONS(4382),
    [sym_extern] = ACTIONS(4382),
    [sym_final] = ACTIONS(4382),
    [sym_for] = ACTIONS(4382),
    [sym_foreach] = ACTIONS(4382),
    [sym_foreach_reverse] = ACTIONS(4382),
    [sym_function] = ACTIONS(4382),
    [sym_goto] = ACTIONS(4382),
    [sym_if] = ACTIONS(4382),
    [sym_immutable] = ACTIONS(4382),
    [sym_import] = ACTIONS(4382),
    [sym_in] = ACTIONS(4382),
    [sym_inout] = ACTIONS(4382),
    [sym_interface] = ACTIONS(4382),
    [sym_invariant] = ACTIONS(4382),
    [sym_is] = ACTIONS(4382),
    [sym_mixin] = ACTIONS(4382),
    [sym_new] = ACTIONS(4382),
    [sym_nothrow] = ACTIONS(4382),
    [sym_out] = ACTIONS(4382),
    [sym_override] = ACTIONS(4382),
    [sym_package] = ACTIONS(4382),
    [sym_pragma] = ACTIONS(4382),
    [sym_private] = ACTIONS(4382),
    [sym_protected] = ACTIONS(4382),
    [sym_public] = ACTIONS(4382),
    [sym_pure] = ACTIONS(4382),
    [sym_ref] = ACTIONS(4382),
    [sym_return] = ACTIONS(4382),
    [sym_scope] = ACTIONS(4382),
    [sym_shared] = ACTIONS(4382),
    [sym_static] = ACTIONS(4382),
    [sym_struct] = ACTIONS(4382),
    [sym_switch] = ACTIONS(4382),
    [sym_synchronized] = ACTIONS(4382),
    [sym_template] = ACTIONS(4382),
    [sym_throw] = ACTIONS(4382),
    [sym_try] = ACTIONS(4382),
    [sym_typeid] = ACTIONS(4382),
    [sym_typeof] = ACTIONS(4382),
    [sym_union] = ACTIONS(4382),
    [sym_unittest] = ACTIONS(4382),
    [sym_version] = ACTIONS(4382),
    [sym_while] = ACTIONS(4382),
    [sym_with] = ACTIONS(4382),
    [sym_gshared] = ACTIONS(4382),
    [sym_traits] = ACTIONS(4382),
    [sym_vector] = ACTIONS(4382),
    [sym_void] = ACTIONS(4382),
    [anon_sym_BQUOTE] = ACTIONS(4384),
    [anon_sym_r_DQUOTE] = ACTIONS(4384),
    [anon_sym_x_DQUOTE] = ACTIONS(4384),
    [anon_sym_DQUOTE] = ACTIONS(4384),
    [anon_sym_i_BQUOTE] = ACTIONS(4384),
    [anon_sym_i_DQUOTE] = ACTIONS(4384),
    [anon_sym_iq_LBRACE] = ACTIONS(4384),
    [aux_sym_char_literal_token1] = ACTIONS(4384),
    [anon_sym_SQUOTE] = ACTIONS(4382),
    [anon_sym___DATE__] = ACTIONS(4382),
    [anon_sym___FILE__] = ACTIONS(4382),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4382),
    [anon_sym___FUNCTION__] = ACTIONS(4382),
    [anon_sym___LINE__] = ACTIONS(4382),
    [anon_sym___MODULE__] = ACTIONS(4382),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4382),
    [anon_sym___TIME__] = ACTIONS(4382),
    [anon_sym___TIMESTAMP__] = ACTIONS(4382),
    [anon_sym___VENDOR__] = ACTIONS(4382),
    [anon_sym___VERSION__] = ACTIONS(4382),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4384),
    [sym_float_literal] = ACTIONS(4384),
    [sym__string] = ACTIONS(4384),
  },
  [1688] = {
    [sym_identifier] = ACTIONS(4390),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4394),
    [anon_sym_RBRACE] = ACTIONS(4394),
    [anon_sym_LBRACE] = ACTIONS(4394),
    [anon_sym_DOT] = ACTIONS(4394),
    [anon_sym_AMP] = ACTIONS(4394),
    [anon_sym_DASH] = ACTIONS(4390),
    [anon_sym_DASH_DASH] = ACTIONS(4394),
    [anon_sym_PLUS] = ACTIONS(4390),
    [anon_sym_PLUS_PLUS] = ACTIONS(4394),
    [anon_sym_BANG] = ACTIONS(4394),
    [anon_sym_LPAREN] = ACTIONS(4394),
    [anon_sym_RPAREN] = ACTIONS(4394),
    [anon_sym_LBRACK] = ACTIONS(4394),
    [anon_sym_SEMI] = ACTIONS(4394),
    [anon_sym_DOLLAR] = ACTIONS(4394),
    [anon_sym_STAR] = ACTIONS(4394),
    [anon_sym_TILDE] = ACTIONS(4394),
    [anon_sym_AT] = ACTIONS(4394),
    [sym_bool] = ACTIONS(4390),
    [sym_byte] = ACTIONS(4390),
    [sym_ubyte] = ACTIONS(4390),
    [sym_char] = ACTIONS(4390),
    [sym_short] = ACTIONS(4390),
    [sym_ushort] = ACTIONS(4390),
    [sym_int] = ACTIONS(4390),
    [sym_uint] = ACTIONS(4390),
    [sym_long] = ACTIONS(4390),
    [sym_ulong] = ACTIONS(4390),
    [sym_cent] = ACTIONS(4390),
    [sym_ucent] = ACTIONS(4390),
    [sym_wchar] = ACTIONS(4390),
    [sym_dchar] = ACTIONS(4390),
    [sym_float] = ACTIONS(4390),
    [sym_double] = ACTIONS(4390),
    [sym_real] = ACTIONS(4390),
    [sym_ifloat] = ACTIONS(4390),
    [sym_idouble] = ACTIONS(4390),
    [sym_ireal] = ACTIONS(4390),
    [sym_cfloat] = ACTIONS(4390),
    [sym_cdouble] = ACTIONS(4390),
    [sym_creal] = ACTIONS(4390),
    [sym_size_t] = ACTIONS(4390),
    [sym_ptrdiff_t] = ACTIONS(4390),
    [sym_string] = ACTIONS(4390),
    [sym_cstring] = ACTIONS(4390),
    [sym_dstring] = ACTIONS(4390),
    [sym_wstring] = ACTIONS(4390),
    [sym_noreturn] = ACTIONS(4390),
    [sym_true] = ACTIONS(4390),
    [sym_false] = ACTIONS(4390),
    [sym_null] = ACTIONS(4390),
    [sym_super] = ACTIONS(4390),
    [sym_this] = ACTIONS(4390),
    [sym_abstract] = ACTIONS(4390),
    [sym_alias] = ACTIONS(4390),
    [sym_align] = ACTIONS(4390),
    [sym_asm] = ACTIONS(4390),
    [sym_assert] = ACTIONS(4390),
    [sym_auto] = ACTIONS(4390),
    [sym_break] = ACTIONS(4390),
    [sym_case] = ACTIONS(4390),
    [sym_cast] = ACTIONS(4390),
    [sym_class] = ACTIONS(4390),
    [sym_const] = ACTIONS(4390),
    [sym_continue] = ACTIONS(4390),
    [sym_debug] = ACTIONS(4390),
    [sym_default] = ACTIONS(4390),
    [sym_delegate] = ACTIONS(4390),
    [sym_delete] = ACTIONS(4390),
    [sym_deprecated] = ACTIONS(4390),
    [sym_do] = ACTIONS(4390),
    [sym_else] = ACTIONS(4390),
    [sym_enum] = ACTIONS(4390),
    [sym_export] = ACTIONS(4390),
    [sym_extern] = ACTIONS(4390),
    [sym_final] = ACTIONS(4390),
    [sym_for] = ACTIONS(4390),
    [sym_foreach] = ACTIONS(4390),
    [sym_foreach_reverse] = ACTIONS(4390),
    [sym_function] = ACTIONS(4390),
    [sym_goto] = ACTIONS(4390),
    [sym_if] = ACTIONS(4390),
    [sym_immutable] = ACTIONS(4390),
    [sym_import] = ACTIONS(4390),
    [sym_in] = ACTIONS(4390),
    [sym_inout] = ACTIONS(4390),
    [sym_interface] = ACTIONS(4390),
    [sym_invariant] = ACTIONS(4390),
    [sym_is] = ACTIONS(4390),
    [sym_mixin] = ACTIONS(4390),
    [sym_new] = ACTIONS(4390),
    [sym_nothrow] = ACTIONS(4390),
    [sym_out] = ACTIONS(4390),
    [sym_override] = ACTIONS(4390),
    [sym_package] = ACTIONS(4390),
    [sym_pragma] = ACTIONS(4390),
    [sym_private] = ACTIONS(4390),
    [sym_protected] = ACTIONS(4390),
    [sym_public] = ACTIONS(4390),
    [sym_pure] = ACTIONS(4390),
    [sym_ref] = ACTIONS(4390),
    [sym_return] = ACTIONS(4390),
    [sym_scope] = ACTIONS(4390),
    [sym_shared] = ACTIONS(4390),
    [sym_static] = ACTIONS(4390),
    [sym_struct] = ACTIONS(4390),
    [sym_switch] = ACTIONS(4390),
    [sym_synchronized] = ACTIONS(4390),
    [sym_template] = ACTIONS(4390),
    [sym_throw] = ACTIONS(4390),
    [sym_try] = ACTIONS(4390),
    [sym_typeid] = ACTIONS(4390),
    [sym_typeof] = ACTIONS(4390),
    [sym_union] = ACTIONS(4390),
    [sym_unittest] = ACTIONS(4390),
    [sym_version] = ACTIONS(4390),
    [sym_while] = ACTIONS(4390),
    [sym_with] = ACTIONS(4390),
    [sym_gshared] = ACTIONS(4390),
    [sym_traits] = ACTIONS(4390),
    [sym_vector] = ACTIONS(4390),
    [sym_void] = ACTIONS(4390),
    [anon_sym_BQUOTE] = ACTIONS(4394),
    [anon_sym_r_DQUOTE] = ACTIONS(4394),
    [anon_sym_x_DQUOTE] = ACTIONS(4394),
    [anon_sym_DQUOTE] = ACTIONS(4394),
    [anon_sym_i_BQUOTE] = ACTIONS(4394),
    [anon_sym_i_DQUOTE] = ACTIONS(4394),
    [anon_sym_iq_LBRACE] = ACTIONS(4394),
    [aux_sym_char_literal_token1] = ACTIONS(4394),
    [anon_sym_SQUOTE] = ACTIONS(4390),
    [anon_sym___DATE__] = ACTIONS(4390),
    [anon_sym___FILE__] = ACTIONS(4390),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4390),
    [anon_sym___FUNCTION__] = ACTIONS(4390),
    [anon_sym___LINE__] = ACTIONS(4390),
    [anon_sym___MODULE__] = ACTIONS(4390),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4390),
    [anon_sym___TIME__] = ACTIONS(4390),
    [anon_sym___TIMESTAMP__] = ACTIONS(4390),
    [anon_sym___VENDOR__] = ACTIONS(4390),
    [anon_sym___VERSION__] = ACTIONS(4390),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4394),
    [sym_float_literal] = ACTIONS(4394),
    [sym__string] = ACTIONS(4394),
  },
  [1689] = {
    [sym_identifier] = ACTIONS(4538),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4540),
    [anon_sym_RBRACE] = ACTIONS(4540),
    [anon_sym_LBRACE] = ACTIONS(4540),
    [anon_sym_DOT] = ACTIONS(4540),
    [anon_sym_AMP] = ACTIONS(4540),
    [anon_sym_DASH] = ACTIONS(4538),
    [anon_sym_DASH_DASH] = ACTIONS(4540),
    [anon_sym_PLUS] = ACTIONS(4538),
    [anon_sym_PLUS_PLUS] = ACTIONS(4540),
    [anon_sym_BANG] = ACTIONS(4540),
    [anon_sym_LPAREN] = ACTIONS(4540),
    [anon_sym_RPAREN] = ACTIONS(4540),
    [anon_sym_LBRACK] = ACTIONS(4540),
    [anon_sym_SEMI] = ACTIONS(4540),
    [anon_sym_DOLLAR] = ACTIONS(4540),
    [anon_sym_STAR] = ACTIONS(4540),
    [anon_sym_TILDE] = ACTIONS(4540),
    [anon_sym_AT] = ACTIONS(4540),
    [sym_bool] = ACTIONS(4538),
    [sym_byte] = ACTIONS(4538),
    [sym_ubyte] = ACTIONS(4538),
    [sym_char] = ACTIONS(4538),
    [sym_short] = ACTIONS(4538),
    [sym_ushort] = ACTIONS(4538),
    [sym_int] = ACTIONS(4538),
    [sym_uint] = ACTIONS(4538),
    [sym_long] = ACTIONS(4538),
    [sym_ulong] = ACTIONS(4538),
    [sym_cent] = ACTIONS(4538),
    [sym_ucent] = ACTIONS(4538),
    [sym_wchar] = ACTIONS(4538),
    [sym_dchar] = ACTIONS(4538),
    [sym_float] = ACTIONS(4538),
    [sym_double] = ACTIONS(4538),
    [sym_real] = ACTIONS(4538),
    [sym_ifloat] = ACTIONS(4538),
    [sym_idouble] = ACTIONS(4538),
    [sym_ireal] = ACTIONS(4538),
    [sym_cfloat] = ACTIONS(4538),
    [sym_cdouble] = ACTIONS(4538),
    [sym_creal] = ACTIONS(4538),
    [sym_size_t] = ACTIONS(4538),
    [sym_ptrdiff_t] = ACTIONS(4538),
    [sym_string] = ACTIONS(4538),
    [sym_cstring] = ACTIONS(4538),
    [sym_dstring] = ACTIONS(4538),
    [sym_wstring] = ACTIONS(4538),
    [sym_noreturn] = ACTIONS(4538),
    [sym_true] = ACTIONS(4538),
    [sym_false] = ACTIONS(4538),
    [sym_null] = ACTIONS(4538),
    [sym_super] = ACTIONS(4538),
    [sym_this] = ACTIONS(4538),
    [sym_abstract] = ACTIONS(4538),
    [sym_alias] = ACTIONS(4538),
    [sym_align] = ACTIONS(4538),
    [sym_asm] = ACTIONS(4538),
    [sym_assert] = ACTIONS(4538),
    [sym_auto] = ACTIONS(4538),
    [sym_break] = ACTIONS(4538),
    [sym_case] = ACTIONS(4538),
    [sym_cast] = ACTIONS(4538),
    [sym_class] = ACTIONS(4538),
    [sym_const] = ACTIONS(4538),
    [sym_continue] = ACTIONS(4538),
    [sym_debug] = ACTIONS(4538),
    [sym_default] = ACTIONS(4538),
    [sym_delegate] = ACTIONS(4538),
    [sym_delete] = ACTIONS(4538),
    [sym_deprecated] = ACTIONS(4538),
    [sym_do] = ACTIONS(4538),
    [sym_else] = ACTIONS(4538),
    [sym_enum] = ACTIONS(4538),
    [sym_export] = ACTIONS(4538),
    [sym_extern] = ACTIONS(4538),
    [sym_final] = ACTIONS(4538),
    [sym_for] = ACTIONS(4538),
    [sym_foreach] = ACTIONS(4538),
    [sym_foreach_reverse] = ACTIONS(4538),
    [sym_function] = ACTIONS(4538),
    [sym_goto] = ACTIONS(4538),
    [sym_if] = ACTIONS(4538),
    [sym_immutable] = ACTIONS(4538),
    [sym_import] = ACTIONS(4538),
    [sym_in] = ACTIONS(4538),
    [sym_inout] = ACTIONS(4538),
    [sym_interface] = ACTIONS(4538),
    [sym_invariant] = ACTIONS(4538),
    [sym_is] = ACTIONS(4538),
    [sym_mixin] = ACTIONS(4538),
    [sym_new] = ACTIONS(4538),
    [sym_nothrow] = ACTIONS(4538),
    [sym_out] = ACTIONS(4538),
    [sym_override] = ACTIONS(4538),
    [sym_package] = ACTIONS(4538),
    [sym_pragma] = ACTIONS(4538),
    [sym_private] = ACTIONS(4538),
    [sym_protected] = ACTIONS(4538),
    [sym_public] = ACTIONS(4538),
    [sym_pure] = ACTIONS(4538),
    [sym_ref] = ACTIONS(4538),
    [sym_return] = ACTIONS(4538),
    [sym_scope] = ACTIONS(4538),
    [sym_shared] = ACTIONS(4538),
    [sym_static] = ACTIONS(4538),
    [sym_struct] = ACTIONS(4538),
    [sym_switch] = ACTIONS(4538),
    [sym_synchronized] = ACTIONS(4538),
    [sym_template] = ACTIONS(4538),
    [sym_throw] = ACTIONS(4538),
    [sym_try] = ACTIONS(4538),
    [sym_typeid] = ACTIONS(4538),
    [sym_typeof] = ACTIONS(4538),
    [sym_union] = ACTIONS(4538),
    [sym_unittest] = ACTIONS(4538),
    [sym_version] = ACTIONS(4538),
    [sym_while] = ACTIONS(4538),
    [sym_with] = ACTIONS(4538),
    [sym_gshared] = ACTIONS(4538),
    [sym_traits] = ACTIONS(4538),
    [sym_vector] = ACTIONS(4538),
    [sym_void] = ACTIONS(4538),
    [anon_sym_BQUOTE] = ACTIONS(4540),
    [anon_sym_r_DQUOTE] = ACTIONS(4540),
    [anon_sym_x_DQUOTE] = ACTIONS(4540),
    [anon_sym_DQUOTE] = ACTIONS(4540),
    [anon_sym_i_BQUOTE] = ACTIONS(4540),
    [anon_sym_i_DQUOTE] = ACTIONS(4540),
    [anon_sym_iq_LBRACE] = ACTIONS(4540),
    [aux_sym_char_literal_token1] = ACTIONS(4540),
    [anon_sym_SQUOTE] = ACTIONS(4538),
    [anon_sym___DATE__] = ACTIONS(4538),
    [anon_sym___FILE__] = ACTIONS(4538),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4538),
    [anon_sym___FUNCTION__] = ACTIONS(4538),
    [anon_sym___LINE__] = ACTIONS(4538),
    [anon_sym___MODULE__] = ACTIONS(4538),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4538),
    [anon_sym___TIME__] = ACTIONS(4538),
    [anon_sym___TIMESTAMP__] = ACTIONS(4538),
    [anon_sym___VENDOR__] = ACTIONS(4538),
    [anon_sym___VERSION__] = ACTIONS(4538),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4540),
    [sym_float_literal] = ACTIONS(4540),
    [sym__string] = ACTIONS(4540),
  },
  [1690] = {
    [sym_identifier] = ACTIONS(4460),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4462),
    [anon_sym_RBRACE] = ACTIONS(4462),
    [anon_sym_LBRACE] = ACTIONS(4462),
    [anon_sym_DOT] = ACTIONS(4462),
    [anon_sym_AMP] = ACTIONS(4462),
    [anon_sym_DASH] = ACTIONS(4460),
    [anon_sym_DASH_DASH] = ACTIONS(4462),
    [anon_sym_PLUS] = ACTIONS(4460),
    [anon_sym_PLUS_PLUS] = ACTIONS(4462),
    [anon_sym_BANG] = ACTIONS(4462),
    [anon_sym_LPAREN] = ACTIONS(4462),
    [anon_sym_RPAREN] = ACTIONS(4462),
    [anon_sym_LBRACK] = ACTIONS(4462),
    [anon_sym_SEMI] = ACTIONS(4462),
    [anon_sym_DOLLAR] = ACTIONS(4462),
    [anon_sym_STAR] = ACTIONS(4462),
    [anon_sym_TILDE] = ACTIONS(4462),
    [anon_sym_AT] = ACTIONS(4462),
    [sym_bool] = ACTIONS(4460),
    [sym_byte] = ACTIONS(4460),
    [sym_ubyte] = ACTIONS(4460),
    [sym_char] = ACTIONS(4460),
    [sym_short] = ACTIONS(4460),
    [sym_ushort] = ACTIONS(4460),
    [sym_int] = ACTIONS(4460),
    [sym_uint] = ACTIONS(4460),
    [sym_long] = ACTIONS(4460),
    [sym_ulong] = ACTIONS(4460),
    [sym_cent] = ACTIONS(4460),
    [sym_ucent] = ACTIONS(4460),
    [sym_wchar] = ACTIONS(4460),
    [sym_dchar] = ACTIONS(4460),
    [sym_float] = ACTIONS(4460),
    [sym_double] = ACTIONS(4460),
    [sym_real] = ACTIONS(4460),
    [sym_ifloat] = ACTIONS(4460),
    [sym_idouble] = ACTIONS(4460),
    [sym_ireal] = ACTIONS(4460),
    [sym_cfloat] = ACTIONS(4460),
    [sym_cdouble] = ACTIONS(4460),
    [sym_creal] = ACTIONS(4460),
    [sym_size_t] = ACTIONS(4460),
    [sym_ptrdiff_t] = ACTIONS(4460),
    [sym_string] = ACTIONS(4460),
    [sym_cstring] = ACTIONS(4460),
    [sym_dstring] = ACTIONS(4460),
    [sym_wstring] = ACTIONS(4460),
    [sym_noreturn] = ACTIONS(4460),
    [sym_true] = ACTIONS(4460),
    [sym_false] = ACTIONS(4460),
    [sym_null] = ACTIONS(4460),
    [sym_super] = ACTIONS(4460),
    [sym_this] = ACTIONS(4460),
    [sym_abstract] = ACTIONS(4460),
    [sym_alias] = ACTIONS(4460),
    [sym_align] = ACTIONS(4460),
    [sym_asm] = ACTIONS(4460),
    [sym_assert] = ACTIONS(4460),
    [sym_auto] = ACTIONS(4460),
    [sym_break] = ACTIONS(4460),
    [sym_case] = ACTIONS(4460),
    [sym_cast] = ACTIONS(4460),
    [sym_class] = ACTIONS(4460),
    [sym_const] = ACTIONS(4460),
    [sym_continue] = ACTIONS(4460),
    [sym_debug] = ACTIONS(4460),
    [sym_default] = ACTIONS(4460),
    [sym_delegate] = ACTIONS(4460),
    [sym_delete] = ACTIONS(4460),
    [sym_deprecated] = ACTIONS(4460),
    [sym_do] = ACTIONS(4460),
    [sym_else] = ACTIONS(4460),
    [sym_enum] = ACTIONS(4460),
    [sym_export] = ACTIONS(4460),
    [sym_extern] = ACTIONS(4460),
    [sym_final] = ACTIONS(4460),
    [sym_for] = ACTIONS(4460),
    [sym_foreach] = ACTIONS(4460),
    [sym_foreach_reverse] = ACTIONS(4460),
    [sym_function] = ACTIONS(4460),
    [sym_goto] = ACTIONS(4460),
    [sym_if] = ACTIONS(4460),
    [sym_immutable] = ACTIONS(4460),
    [sym_import] = ACTIONS(4460),
    [sym_in] = ACTIONS(4460),
    [sym_inout] = ACTIONS(4460),
    [sym_interface] = ACTIONS(4460),
    [sym_invariant] = ACTIONS(4460),
    [sym_is] = ACTIONS(4460),
    [sym_mixin] = ACTIONS(4460),
    [sym_new] = ACTIONS(4460),
    [sym_nothrow] = ACTIONS(4460),
    [sym_out] = ACTIONS(4460),
    [sym_override] = ACTIONS(4460),
    [sym_package] = ACTIONS(4460),
    [sym_pragma] = ACTIONS(4460),
    [sym_private] = ACTIONS(4460),
    [sym_protected] = ACTIONS(4460),
    [sym_public] = ACTIONS(4460),
    [sym_pure] = ACTIONS(4460),
    [sym_ref] = ACTIONS(4460),
    [sym_return] = ACTIONS(4460),
    [sym_scope] = ACTIONS(4460),
    [sym_shared] = ACTIONS(4460),
    [sym_static] = ACTIONS(4460),
    [sym_struct] = ACTIONS(4460),
    [sym_switch] = ACTIONS(4460),
    [sym_synchronized] = ACTIONS(4460),
    [sym_template] = ACTIONS(4460),
    [sym_throw] = ACTIONS(4460),
    [sym_try] = ACTIONS(4460),
    [sym_typeid] = ACTIONS(4460),
    [sym_typeof] = ACTIONS(4460),
    [sym_union] = ACTIONS(4460),
    [sym_unittest] = ACTIONS(4460),
    [sym_version] = ACTIONS(4460),
    [sym_while] = ACTIONS(4460),
    [sym_with] = ACTIONS(4460),
    [sym_gshared] = ACTIONS(4460),
    [sym_traits] = ACTIONS(4460),
    [sym_vector] = ACTIONS(4460),
    [sym_void] = ACTIONS(4460),
    [anon_sym_BQUOTE] = ACTIONS(4462),
    [anon_sym_r_DQUOTE] = ACTIONS(4462),
    [anon_sym_x_DQUOTE] = ACTIONS(4462),
    [anon_sym_DQUOTE] = ACTIONS(4462),
    [anon_sym_i_BQUOTE] = ACTIONS(4462),
    [anon_sym_i_DQUOTE] = ACTIONS(4462),
    [anon_sym_iq_LBRACE] = ACTIONS(4462),
    [aux_sym_char_literal_token1] = ACTIONS(4462),
    [anon_sym_SQUOTE] = ACTIONS(4460),
    [anon_sym___DATE__] = ACTIONS(4460),
    [anon_sym___FILE__] = ACTIONS(4460),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4460),
    [anon_sym___FUNCTION__] = ACTIONS(4460),
    [anon_sym___LINE__] = ACTIONS(4460),
    [anon_sym___MODULE__] = ACTIONS(4460),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4460),
    [anon_sym___TIME__] = ACTIONS(4460),
    [anon_sym___TIMESTAMP__] = ACTIONS(4460),
    [anon_sym___VENDOR__] = ACTIONS(4460),
    [anon_sym___VERSION__] = ACTIONS(4460),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4462),
    [sym_float_literal] = ACTIONS(4462),
    [sym__string] = ACTIONS(4462),
  },
  [1691] = {
    [sym_identifier] = ACTIONS(4658),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4660),
    [anon_sym_RBRACE] = ACTIONS(4660),
    [anon_sym_LBRACE] = ACTIONS(4660),
    [anon_sym_DOT] = ACTIONS(4660),
    [anon_sym_AMP] = ACTIONS(4660),
    [anon_sym_DASH] = ACTIONS(4658),
    [anon_sym_DASH_DASH] = ACTIONS(4660),
    [anon_sym_PLUS] = ACTIONS(4658),
    [anon_sym_PLUS_PLUS] = ACTIONS(4660),
    [anon_sym_BANG] = ACTIONS(4660),
    [anon_sym_LPAREN] = ACTIONS(4660),
    [anon_sym_RPAREN] = ACTIONS(4660),
    [anon_sym_LBRACK] = ACTIONS(4660),
    [anon_sym_SEMI] = ACTIONS(4660),
    [anon_sym_DOLLAR] = ACTIONS(4660),
    [anon_sym_STAR] = ACTIONS(4660),
    [anon_sym_TILDE] = ACTIONS(4660),
    [anon_sym_AT] = ACTIONS(4660),
    [sym_bool] = ACTIONS(4658),
    [sym_byte] = ACTIONS(4658),
    [sym_ubyte] = ACTIONS(4658),
    [sym_char] = ACTIONS(4658),
    [sym_short] = ACTIONS(4658),
    [sym_ushort] = ACTIONS(4658),
    [sym_int] = ACTIONS(4658),
    [sym_uint] = ACTIONS(4658),
    [sym_long] = ACTIONS(4658),
    [sym_ulong] = ACTIONS(4658),
    [sym_cent] = ACTIONS(4658),
    [sym_ucent] = ACTIONS(4658),
    [sym_wchar] = ACTIONS(4658),
    [sym_dchar] = ACTIONS(4658),
    [sym_float] = ACTIONS(4658),
    [sym_double] = ACTIONS(4658),
    [sym_real] = ACTIONS(4658),
    [sym_ifloat] = ACTIONS(4658),
    [sym_idouble] = ACTIONS(4658),
    [sym_ireal] = ACTIONS(4658),
    [sym_cfloat] = ACTIONS(4658),
    [sym_cdouble] = ACTIONS(4658),
    [sym_creal] = ACTIONS(4658),
    [sym_size_t] = ACTIONS(4658),
    [sym_ptrdiff_t] = ACTIONS(4658),
    [sym_string] = ACTIONS(4658),
    [sym_cstring] = ACTIONS(4658),
    [sym_dstring] = ACTIONS(4658),
    [sym_wstring] = ACTIONS(4658),
    [sym_noreturn] = ACTIONS(4658),
    [sym_true] = ACTIONS(4658),
    [sym_false] = ACTIONS(4658),
    [sym_null] = ACTIONS(4658),
    [sym_super] = ACTIONS(4658),
    [sym_this] = ACTIONS(4658),
    [sym_abstract] = ACTIONS(4658),
    [sym_alias] = ACTIONS(4658),
    [sym_align] = ACTIONS(4658),
    [sym_asm] = ACTIONS(4658),
    [sym_assert] = ACTIONS(4658),
    [sym_auto] = ACTIONS(4658),
    [sym_break] = ACTIONS(4658),
    [sym_case] = ACTIONS(4658),
    [sym_cast] = ACTIONS(4658),
    [sym_class] = ACTIONS(4658),
    [sym_const] = ACTIONS(4658),
    [sym_continue] = ACTIONS(4658),
    [sym_debug] = ACTIONS(4658),
    [sym_default] = ACTIONS(4658),
    [sym_delegate] = ACTIONS(4658),
    [sym_delete] = ACTIONS(4658),
    [sym_deprecated] = ACTIONS(4658),
    [sym_do] = ACTIONS(4658),
    [sym_else] = ACTIONS(4658),
    [sym_enum] = ACTIONS(4658),
    [sym_export] = ACTIONS(4658),
    [sym_extern] = ACTIONS(4658),
    [sym_final] = ACTIONS(4658),
    [sym_for] = ACTIONS(4658),
    [sym_foreach] = ACTIONS(4658),
    [sym_foreach_reverse] = ACTIONS(4658),
    [sym_function] = ACTIONS(4658),
    [sym_goto] = ACTIONS(4658),
    [sym_if] = ACTIONS(4658),
    [sym_immutable] = ACTIONS(4658),
    [sym_import] = ACTIONS(4658),
    [sym_in] = ACTIONS(4658),
    [sym_inout] = ACTIONS(4658),
    [sym_interface] = ACTIONS(4658),
    [sym_invariant] = ACTIONS(4658),
    [sym_is] = ACTIONS(4658),
    [sym_mixin] = ACTIONS(4658),
    [sym_new] = ACTIONS(4658),
    [sym_nothrow] = ACTIONS(4658),
    [sym_out] = ACTIONS(4658),
    [sym_override] = ACTIONS(4658),
    [sym_package] = ACTIONS(4658),
    [sym_pragma] = ACTIONS(4658),
    [sym_private] = ACTIONS(4658),
    [sym_protected] = ACTIONS(4658),
    [sym_public] = ACTIONS(4658),
    [sym_pure] = ACTIONS(4658),
    [sym_ref] = ACTIONS(4658),
    [sym_return] = ACTIONS(4658),
    [sym_scope] = ACTIONS(4658),
    [sym_shared] = ACTIONS(4658),
    [sym_static] = ACTIONS(4658),
    [sym_struct] = ACTIONS(4658),
    [sym_switch] = ACTIONS(4658),
    [sym_synchronized] = ACTIONS(4658),
    [sym_template] = ACTIONS(4658),
    [sym_throw] = ACTIONS(4658),
    [sym_try] = ACTIONS(4658),
    [sym_typeid] = ACTIONS(4658),
    [sym_typeof] = ACTIONS(4658),
    [sym_union] = ACTIONS(4658),
    [sym_unittest] = ACTIONS(4658),
    [sym_version] = ACTIONS(4658),
    [sym_while] = ACTIONS(4658),
    [sym_with] = ACTIONS(4658),
    [sym_gshared] = ACTIONS(4658),
    [sym_traits] = ACTIONS(4658),
    [sym_vector] = ACTIONS(4658),
    [sym_void] = ACTIONS(4658),
    [anon_sym_BQUOTE] = ACTIONS(4660),
    [anon_sym_r_DQUOTE] = ACTIONS(4660),
    [anon_sym_x_DQUOTE] = ACTIONS(4660),
    [anon_sym_DQUOTE] = ACTIONS(4660),
    [anon_sym_i_BQUOTE] = ACTIONS(4660),
    [anon_sym_i_DQUOTE] = ACTIONS(4660),
    [anon_sym_iq_LBRACE] = ACTIONS(4660),
    [aux_sym_char_literal_token1] = ACTIONS(4660),
    [anon_sym_SQUOTE] = ACTIONS(4658),
    [anon_sym___DATE__] = ACTIONS(4658),
    [anon_sym___FILE__] = ACTIONS(4658),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4658),
    [anon_sym___FUNCTION__] = ACTIONS(4658),
    [anon_sym___LINE__] = ACTIONS(4658),
    [anon_sym___MODULE__] = ACTIONS(4658),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4658),
    [anon_sym___TIME__] = ACTIONS(4658),
    [anon_sym___TIMESTAMP__] = ACTIONS(4658),
    [anon_sym___VENDOR__] = ACTIONS(4658),
    [anon_sym___VERSION__] = ACTIONS(4658),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4660),
    [sym_float_literal] = ACTIONS(4660),
    [sym__string] = ACTIONS(4660),
  },
  [1692] = {
    [sym_identifier] = ACTIONS(4654),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4656),
    [anon_sym_RBRACE] = ACTIONS(4656),
    [anon_sym_LBRACE] = ACTIONS(4656),
    [anon_sym_DOT] = ACTIONS(4656),
    [anon_sym_AMP] = ACTIONS(4656),
    [anon_sym_DASH] = ACTIONS(4654),
    [anon_sym_DASH_DASH] = ACTIONS(4656),
    [anon_sym_PLUS] = ACTIONS(4654),
    [anon_sym_PLUS_PLUS] = ACTIONS(4656),
    [anon_sym_BANG] = ACTIONS(4656),
    [anon_sym_LPAREN] = ACTIONS(4656),
    [anon_sym_RPAREN] = ACTIONS(4656),
    [anon_sym_LBRACK] = ACTIONS(4656),
    [anon_sym_SEMI] = ACTIONS(4656),
    [anon_sym_DOLLAR] = ACTIONS(4656),
    [anon_sym_STAR] = ACTIONS(4656),
    [anon_sym_TILDE] = ACTIONS(4656),
    [anon_sym_AT] = ACTIONS(4656),
    [sym_bool] = ACTIONS(4654),
    [sym_byte] = ACTIONS(4654),
    [sym_ubyte] = ACTIONS(4654),
    [sym_char] = ACTIONS(4654),
    [sym_short] = ACTIONS(4654),
    [sym_ushort] = ACTIONS(4654),
    [sym_int] = ACTIONS(4654),
    [sym_uint] = ACTIONS(4654),
    [sym_long] = ACTIONS(4654),
    [sym_ulong] = ACTIONS(4654),
    [sym_cent] = ACTIONS(4654),
    [sym_ucent] = ACTIONS(4654),
    [sym_wchar] = ACTIONS(4654),
    [sym_dchar] = ACTIONS(4654),
    [sym_float] = ACTIONS(4654),
    [sym_double] = ACTIONS(4654),
    [sym_real] = ACTIONS(4654),
    [sym_ifloat] = ACTIONS(4654),
    [sym_idouble] = ACTIONS(4654),
    [sym_ireal] = ACTIONS(4654),
    [sym_cfloat] = ACTIONS(4654),
    [sym_cdouble] = ACTIONS(4654),
    [sym_creal] = ACTIONS(4654),
    [sym_size_t] = ACTIONS(4654),
    [sym_ptrdiff_t] = ACTIONS(4654),
    [sym_string] = ACTIONS(4654),
    [sym_cstring] = ACTIONS(4654),
    [sym_dstring] = ACTIONS(4654),
    [sym_wstring] = ACTIONS(4654),
    [sym_noreturn] = ACTIONS(4654),
    [sym_true] = ACTIONS(4654),
    [sym_false] = ACTIONS(4654),
    [sym_null] = ACTIONS(4654),
    [sym_super] = ACTIONS(4654),
    [sym_this] = ACTIONS(4654),
    [sym_abstract] = ACTIONS(4654),
    [sym_alias] = ACTIONS(4654),
    [sym_align] = ACTIONS(4654),
    [sym_asm] = ACTIONS(4654),
    [sym_assert] = ACTIONS(4654),
    [sym_auto] = ACTIONS(4654),
    [sym_break] = ACTIONS(4654),
    [sym_case] = ACTIONS(4654),
    [sym_cast] = ACTIONS(4654),
    [sym_class] = ACTIONS(4654),
    [sym_const] = ACTIONS(4654),
    [sym_continue] = ACTIONS(4654),
    [sym_debug] = ACTIONS(4654),
    [sym_default] = ACTIONS(4654),
    [sym_delegate] = ACTIONS(4654),
    [sym_delete] = ACTIONS(4654),
    [sym_deprecated] = ACTIONS(4654),
    [sym_do] = ACTIONS(4654),
    [sym_else] = ACTIONS(4654),
    [sym_enum] = ACTIONS(4654),
    [sym_export] = ACTIONS(4654),
    [sym_extern] = ACTIONS(4654),
    [sym_final] = ACTIONS(4654),
    [sym_for] = ACTIONS(4654),
    [sym_foreach] = ACTIONS(4654),
    [sym_foreach_reverse] = ACTIONS(4654),
    [sym_function] = ACTIONS(4654),
    [sym_goto] = ACTIONS(4654),
    [sym_if] = ACTIONS(4654),
    [sym_immutable] = ACTIONS(4654),
    [sym_import] = ACTIONS(4654),
    [sym_in] = ACTIONS(4654),
    [sym_inout] = ACTIONS(4654),
    [sym_interface] = ACTIONS(4654),
    [sym_invariant] = ACTIONS(4654),
    [sym_is] = ACTIONS(4654),
    [sym_mixin] = ACTIONS(4654),
    [sym_new] = ACTIONS(4654),
    [sym_nothrow] = ACTIONS(4654),
    [sym_out] = ACTIONS(4654),
    [sym_override] = ACTIONS(4654),
    [sym_package] = ACTIONS(4654),
    [sym_pragma] = ACTIONS(4654),
    [sym_private] = ACTIONS(4654),
    [sym_protected] = ACTIONS(4654),
    [sym_public] = ACTIONS(4654),
    [sym_pure] = ACTIONS(4654),
    [sym_ref] = ACTIONS(4654),
    [sym_return] = ACTIONS(4654),
    [sym_scope] = ACTIONS(4654),
    [sym_shared] = ACTIONS(4654),
    [sym_static] = ACTIONS(4654),
    [sym_struct] = ACTIONS(4654),
    [sym_switch] = ACTIONS(4654),
    [sym_synchronized] = ACTIONS(4654),
    [sym_template] = ACTIONS(4654),
    [sym_throw] = ACTIONS(4654),
    [sym_try] = ACTIONS(4654),
    [sym_typeid] = ACTIONS(4654),
    [sym_typeof] = ACTIONS(4654),
    [sym_union] = ACTIONS(4654),
    [sym_unittest] = ACTIONS(4654),
    [sym_version] = ACTIONS(4654),
    [sym_while] = ACTIONS(4654),
    [sym_with] = ACTIONS(4654),
    [sym_gshared] = ACTIONS(4654),
    [sym_traits] = ACTIONS(4654),
    [sym_vector] = ACTIONS(4654),
    [sym_void] = ACTIONS(4654),
    [anon_sym_BQUOTE] = ACTIONS(4656),
    [anon_sym_r_DQUOTE] = ACTIONS(4656),
    [anon_sym_x_DQUOTE] = ACTIONS(4656),
    [anon_sym_DQUOTE] = ACTIONS(4656),
    [anon_sym_i_BQUOTE] = ACTIONS(4656),
    [anon_sym_i_DQUOTE] = ACTIONS(4656),
    [anon_sym_iq_LBRACE] = ACTIONS(4656),
    [aux_sym_char_literal_token1] = ACTIONS(4656),
    [anon_sym_SQUOTE] = ACTIONS(4654),
    [anon_sym___DATE__] = ACTIONS(4654),
    [anon_sym___FILE__] = ACTIONS(4654),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4654),
    [anon_sym___FUNCTION__] = ACTIONS(4654),
    [anon_sym___LINE__] = ACTIONS(4654),
    [anon_sym___MODULE__] = ACTIONS(4654),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4654),
    [anon_sym___TIME__] = ACTIONS(4654),
    [anon_sym___TIMESTAMP__] = ACTIONS(4654),
    [anon_sym___VENDOR__] = ACTIONS(4654),
    [anon_sym___VERSION__] = ACTIONS(4654),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4656),
    [sym_float_literal] = ACTIONS(4656),
    [sym__string] = ACTIONS(4656),
  },
  [1693] = {
    [sym_identifier] = ACTIONS(4578),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4580),
    [anon_sym_RBRACE] = ACTIONS(4580),
    [anon_sym_LBRACE] = ACTIONS(4580),
    [anon_sym_DOT] = ACTIONS(4580),
    [anon_sym_AMP] = ACTIONS(4580),
    [anon_sym_DASH] = ACTIONS(4578),
    [anon_sym_DASH_DASH] = ACTIONS(4580),
    [anon_sym_PLUS] = ACTIONS(4578),
    [anon_sym_PLUS_PLUS] = ACTIONS(4580),
    [anon_sym_BANG] = ACTIONS(4580),
    [anon_sym_LPAREN] = ACTIONS(4580),
    [anon_sym_RPAREN] = ACTIONS(4580),
    [anon_sym_LBRACK] = ACTIONS(4580),
    [anon_sym_SEMI] = ACTIONS(4580),
    [anon_sym_DOLLAR] = ACTIONS(4580),
    [anon_sym_STAR] = ACTIONS(4580),
    [anon_sym_TILDE] = ACTIONS(4580),
    [anon_sym_AT] = ACTIONS(4580),
    [sym_bool] = ACTIONS(4578),
    [sym_byte] = ACTIONS(4578),
    [sym_ubyte] = ACTIONS(4578),
    [sym_char] = ACTIONS(4578),
    [sym_short] = ACTIONS(4578),
    [sym_ushort] = ACTIONS(4578),
    [sym_int] = ACTIONS(4578),
    [sym_uint] = ACTIONS(4578),
    [sym_long] = ACTIONS(4578),
    [sym_ulong] = ACTIONS(4578),
    [sym_cent] = ACTIONS(4578),
    [sym_ucent] = ACTIONS(4578),
    [sym_wchar] = ACTIONS(4578),
    [sym_dchar] = ACTIONS(4578),
    [sym_float] = ACTIONS(4578),
    [sym_double] = ACTIONS(4578),
    [sym_real] = ACTIONS(4578),
    [sym_ifloat] = ACTIONS(4578),
    [sym_idouble] = ACTIONS(4578),
    [sym_ireal] = ACTIONS(4578),
    [sym_cfloat] = ACTIONS(4578),
    [sym_cdouble] = ACTIONS(4578),
    [sym_creal] = ACTIONS(4578),
    [sym_size_t] = ACTIONS(4578),
    [sym_ptrdiff_t] = ACTIONS(4578),
    [sym_string] = ACTIONS(4578),
    [sym_cstring] = ACTIONS(4578),
    [sym_dstring] = ACTIONS(4578),
    [sym_wstring] = ACTIONS(4578),
    [sym_noreturn] = ACTIONS(4578),
    [sym_true] = ACTIONS(4578),
    [sym_false] = ACTIONS(4578),
    [sym_null] = ACTIONS(4578),
    [sym_super] = ACTIONS(4578),
    [sym_this] = ACTIONS(4578),
    [sym_abstract] = ACTIONS(4578),
    [sym_alias] = ACTIONS(4578),
    [sym_align] = ACTIONS(4578),
    [sym_asm] = ACTIONS(4578),
    [sym_assert] = ACTIONS(4578),
    [sym_auto] = ACTIONS(4578),
    [sym_break] = ACTIONS(4578),
    [sym_case] = ACTIONS(4578),
    [sym_cast] = ACTIONS(4578),
    [sym_class] = ACTIONS(4578),
    [sym_const] = ACTIONS(4578),
    [sym_continue] = ACTIONS(4578),
    [sym_debug] = ACTIONS(4578),
    [sym_default] = ACTIONS(4578),
    [sym_delegate] = ACTIONS(4578),
    [sym_delete] = ACTIONS(4578),
    [sym_deprecated] = ACTIONS(4578),
    [sym_do] = ACTIONS(4578),
    [sym_else] = ACTIONS(4578),
    [sym_enum] = ACTIONS(4578),
    [sym_export] = ACTIONS(4578),
    [sym_extern] = ACTIONS(4578),
    [sym_final] = ACTIONS(4578),
    [sym_for] = ACTIONS(4578),
    [sym_foreach] = ACTIONS(4578),
    [sym_foreach_reverse] = ACTIONS(4578),
    [sym_function] = ACTIONS(4578),
    [sym_goto] = ACTIONS(4578),
    [sym_if] = ACTIONS(4578),
    [sym_immutable] = ACTIONS(4578),
    [sym_import] = ACTIONS(4578),
    [sym_in] = ACTIONS(4578),
    [sym_inout] = ACTIONS(4578),
    [sym_interface] = ACTIONS(4578),
    [sym_invariant] = ACTIONS(4578),
    [sym_is] = ACTIONS(4578),
    [sym_mixin] = ACTIONS(4578),
    [sym_new] = ACTIONS(4578),
    [sym_nothrow] = ACTIONS(4578),
    [sym_out] = ACTIONS(4578),
    [sym_override] = ACTIONS(4578),
    [sym_package] = ACTIONS(4578),
    [sym_pragma] = ACTIONS(4578),
    [sym_private] = ACTIONS(4578),
    [sym_protected] = ACTIONS(4578),
    [sym_public] = ACTIONS(4578),
    [sym_pure] = ACTIONS(4578),
    [sym_ref] = ACTIONS(4578),
    [sym_return] = ACTIONS(4578),
    [sym_scope] = ACTIONS(4578),
    [sym_shared] = ACTIONS(4578),
    [sym_static] = ACTIONS(4578),
    [sym_struct] = ACTIONS(4578),
    [sym_switch] = ACTIONS(4578),
    [sym_synchronized] = ACTIONS(4578),
    [sym_template] = ACTIONS(4578),
    [sym_throw] = ACTIONS(4578),
    [sym_try] = ACTIONS(4578),
    [sym_typeid] = ACTIONS(4578),
    [sym_typeof] = ACTIONS(4578),
    [sym_union] = ACTIONS(4578),
    [sym_unittest] = ACTIONS(4578),
    [sym_version] = ACTIONS(4578),
    [sym_while] = ACTIONS(4578),
    [sym_with] = ACTIONS(4578),
    [sym_gshared] = ACTIONS(4578),
    [sym_traits] = ACTIONS(4578),
    [sym_vector] = ACTIONS(4578),
    [sym_void] = ACTIONS(4578),
    [anon_sym_BQUOTE] = ACTIONS(4580),
    [anon_sym_r_DQUOTE] = ACTIONS(4580),
    [anon_sym_x_DQUOTE] = ACTIONS(4580),
    [anon_sym_DQUOTE] = ACTIONS(4580),
    [anon_sym_i_BQUOTE] = ACTIONS(4580),
    [anon_sym_i_DQUOTE] = ACTIONS(4580),
    [anon_sym_iq_LBRACE] = ACTIONS(4580),
    [aux_sym_char_literal_token1] = ACTIONS(4580),
    [anon_sym_SQUOTE] = ACTIONS(4578),
    [anon_sym___DATE__] = ACTIONS(4578),
    [anon_sym___FILE__] = ACTIONS(4578),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4578),
    [anon_sym___FUNCTION__] = ACTIONS(4578),
    [anon_sym___LINE__] = ACTIONS(4578),
    [anon_sym___MODULE__] = ACTIONS(4578),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4578),
    [anon_sym___TIME__] = ACTIONS(4578),
    [anon_sym___TIMESTAMP__] = ACTIONS(4578),
    [anon_sym___VENDOR__] = ACTIONS(4578),
    [anon_sym___VERSION__] = ACTIONS(4578),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4580),
    [sym_float_literal] = ACTIONS(4580),
    [sym__string] = ACTIONS(4580),
  },
  [1694] = {
    [sym_identifier] = ACTIONS(5056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5058),
    [anon_sym_RBRACE] = ACTIONS(5058),
    [anon_sym_LBRACE] = ACTIONS(5058),
    [anon_sym_DOT] = ACTIONS(5058),
    [anon_sym_AMP] = ACTIONS(5058),
    [anon_sym_DASH] = ACTIONS(5056),
    [anon_sym_DASH_DASH] = ACTIONS(5058),
    [anon_sym_PLUS] = ACTIONS(5056),
    [anon_sym_PLUS_PLUS] = ACTIONS(5058),
    [anon_sym_BANG] = ACTIONS(5058),
    [anon_sym_LPAREN] = ACTIONS(5058),
    [anon_sym_RPAREN] = ACTIONS(5058),
    [anon_sym_LBRACK] = ACTIONS(5058),
    [anon_sym_SEMI] = ACTIONS(5058),
    [anon_sym_DOLLAR] = ACTIONS(5058),
    [anon_sym_STAR] = ACTIONS(5058),
    [anon_sym_TILDE] = ACTIONS(5058),
    [anon_sym_AT] = ACTIONS(5058),
    [sym_bool] = ACTIONS(5056),
    [sym_byte] = ACTIONS(5056),
    [sym_ubyte] = ACTIONS(5056),
    [sym_char] = ACTIONS(5056),
    [sym_short] = ACTIONS(5056),
    [sym_ushort] = ACTIONS(5056),
    [sym_int] = ACTIONS(5056),
    [sym_uint] = ACTIONS(5056),
    [sym_long] = ACTIONS(5056),
    [sym_ulong] = ACTIONS(5056),
    [sym_cent] = ACTIONS(5056),
    [sym_ucent] = ACTIONS(5056),
    [sym_wchar] = ACTIONS(5056),
    [sym_dchar] = ACTIONS(5056),
    [sym_float] = ACTIONS(5056),
    [sym_double] = ACTIONS(5056),
    [sym_real] = ACTIONS(5056),
    [sym_ifloat] = ACTIONS(5056),
    [sym_idouble] = ACTIONS(5056),
    [sym_ireal] = ACTIONS(5056),
    [sym_cfloat] = ACTIONS(5056),
    [sym_cdouble] = ACTIONS(5056),
    [sym_creal] = ACTIONS(5056),
    [sym_size_t] = ACTIONS(5056),
    [sym_ptrdiff_t] = ACTIONS(5056),
    [sym_string] = ACTIONS(5056),
    [sym_cstring] = ACTIONS(5056),
    [sym_dstring] = ACTIONS(5056),
    [sym_wstring] = ACTIONS(5056),
    [sym_noreturn] = ACTIONS(5056),
    [sym_true] = ACTIONS(5056),
    [sym_false] = ACTIONS(5056),
    [sym_null] = ACTIONS(5056),
    [sym_super] = ACTIONS(5056),
    [sym_this] = ACTIONS(5056),
    [sym_abstract] = ACTIONS(5056),
    [sym_alias] = ACTIONS(5056),
    [sym_align] = ACTIONS(5056),
    [sym_asm] = ACTIONS(5056),
    [sym_assert] = ACTIONS(5056),
    [sym_auto] = ACTIONS(5056),
    [sym_break] = ACTIONS(5056),
    [sym_case] = ACTIONS(5056),
    [sym_cast] = ACTIONS(5056),
    [sym_class] = ACTIONS(5056),
    [sym_const] = ACTIONS(5056),
    [sym_continue] = ACTIONS(5056),
    [sym_debug] = ACTIONS(5056),
    [sym_default] = ACTIONS(5056),
    [sym_delegate] = ACTIONS(5056),
    [sym_delete] = ACTIONS(5056),
    [sym_deprecated] = ACTIONS(5056),
    [sym_do] = ACTIONS(5056),
    [sym_else] = ACTIONS(5056),
    [sym_enum] = ACTIONS(5056),
    [sym_export] = ACTIONS(5056),
    [sym_extern] = ACTIONS(5056),
    [sym_final] = ACTIONS(5056),
    [sym_for] = ACTIONS(5056),
    [sym_foreach] = ACTIONS(5056),
    [sym_foreach_reverse] = ACTIONS(5056),
    [sym_function] = ACTIONS(5056),
    [sym_goto] = ACTIONS(5056),
    [sym_if] = ACTIONS(5056),
    [sym_immutable] = ACTIONS(5056),
    [sym_import] = ACTIONS(5056),
    [sym_in] = ACTIONS(5056),
    [sym_inout] = ACTIONS(5056),
    [sym_interface] = ACTIONS(5056),
    [sym_invariant] = ACTIONS(5056),
    [sym_is] = ACTIONS(5056),
    [sym_mixin] = ACTIONS(5056),
    [sym_new] = ACTIONS(5056),
    [sym_nothrow] = ACTIONS(5056),
    [sym_out] = ACTIONS(5056),
    [sym_override] = ACTIONS(5056),
    [sym_package] = ACTIONS(5056),
    [sym_pragma] = ACTIONS(5056),
    [sym_private] = ACTIONS(5056),
    [sym_protected] = ACTIONS(5056),
    [sym_public] = ACTIONS(5056),
    [sym_pure] = ACTIONS(5056),
    [sym_ref] = ACTIONS(5056),
    [sym_return] = ACTIONS(5056),
    [sym_scope] = ACTIONS(5056),
    [sym_shared] = ACTIONS(5056),
    [sym_static] = ACTIONS(5056),
    [sym_struct] = ACTIONS(5056),
    [sym_switch] = ACTIONS(5056),
    [sym_synchronized] = ACTIONS(5056),
    [sym_template] = ACTIONS(5056),
    [sym_throw] = ACTIONS(5056),
    [sym_try] = ACTIONS(5056),
    [sym_typeid] = ACTIONS(5056),
    [sym_typeof] = ACTIONS(5056),
    [sym_union] = ACTIONS(5056),
    [sym_unittest] = ACTIONS(5056),
    [sym_version] = ACTIONS(5056),
    [sym_while] = ACTIONS(5056),
    [sym_with] = ACTIONS(5056),
    [sym_gshared] = ACTIONS(5056),
    [sym_traits] = ACTIONS(5056),
    [sym_vector] = ACTIONS(5056),
    [sym_void] = ACTIONS(5056),
    [anon_sym_BQUOTE] = ACTIONS(5058),
    [anon_sym_r_DQUOTE] = ACTIONS(5058),
    [anon_sym_x_DQUOTE] = ACTIONS(5058),
    [anon_sym_DQUOTE] = ACTIONS(5058),
    [anon_sym_i_BQUOTE] = ACTIONS(5058),
    [anon_sym_i_DQUOTE] = ACTIONS(5058),
    [anon_sym_iq_LBRACE] = ACTIONS(5058),
    [aux_sym_char_literal_token1] = ACTIONS(5058),
    [anon_sym_SQUOTE] = ACTIONS(5056),
    [anon_sym___DATE__] = ACTIONS(5056),
    [anon_sym___FILE__] = ACTIONS(5056),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5056),
    [anon_sym___FUNCTION__] = ACTIONS(5056),
    [anon_sym___LINE__] = ACTIONS(5056),
    [anon_sym___MODULE__] = ACTIONS(5056),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5056),
    [anon_sym___TIME__] = ACTIONS(5056),
    [anon_sym___TIMESTAMP__] = ACTIONS(5056),
    [anon_sym___VENDOR__] = ACTIONS(5056),
    [anon_sym___VERSION__] = ACTIONS(5056),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5058),
    [sym_float_literal] = ACTIONS(5058),
    [sym__string] = ACTIONS(5058),
  },
  [1695] = {
    [sym_identifier] = ACTIONS(5044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5046),
    [anon_sym_RBRACE] = ACTIONS(5046),
    [anon_sym_LBRACE] = ACTIONS(5046),
    [anon_sym_DOT] = ACTIONS(5046),
    [anon_sym_AMP] = ACTIONS(5046),
    [anon_sym_DASH] = ACTIONS(5044),
    [anon_sym_DASH_DASH] = ACTIONS(5046),
    [anon_sym_PLUS] = ACTIONS(5044),
    [anon_sym_PLUS_PLUS] = ACTIONS(5046),
    [anon_sym_BANG] = ACTIONS(5046),
    [anon_sym_LPAREN] = ACTIONS(5046),
    [anon_sym_RPAREN] = ACTIONS(5046),
    [anon_sym_LBRACK] = ACTIONS(5046),
    [anon_sym_SEMI] = ACTIONS(5046),
    [anon_sym_DOLLAR] = ACTIONS(5046),
    [anon_sym_STAR] = ACTIONS(5046),
    [anon_sym_TILDE] = ACTIONS(5046),
    [anon_sym_AT] = ACTIONS(5046),
    [sym_bool] = ACTIONS(5044),
    [sym_byte] = ACTIONS(5044),
    [sym_ubyte] = ACTIONS(5044),
    [sym_char] = ACTIONS(5044),
    [sym_short] = ACTIONS(5044),
    [sym_ushort] = ACTIONS(5044),
    [sym_int] = ACTIONS(5044),
    [sym_uint] = ACTIONS(5044),
    [sym_long] = ACTIONS(5044),
    [sym_ulong] = ACTIONS(5044),
    [sym_cent] = ACTIONS(5044),
    [sym_ucent] = ACTIONS(5044),
    [sym_wchar] = ACTIONS(5044),
    [sym_dchar] = ACTIONS(5044),
    [sym_float] = ACTIONS(5044),
    [sym_double] = ACTIONS(5044),
    [sym_real] = ACTIONS(5044),
    [sym_ifloat] = ACTIONS(5044),
    [sym_idouble] = ACTIONS(5044),
    [sym_ireal] = ACTIONS(5044),
    [sym_cfloat] = ACTIONS(5044),
    [sym_cdouble] = ACTIONS(5044),
    [sym_creal] = ACTIONS(5044),
    [sym_size_t] = ACTIONS(5044),
    [sym_ptrdiff_t] = ACTIONS(5044),
    [sym_string] = ACTIONS(5044),
    [sym_cstring] = ACTIONS(5044),
    [sym_dstring] = ACTIONS(5044),
    [sym_wstring] = ACTIONS(5044),
    [sym_noreturn] = ACTIONS(5044),
    [sym_true] = ACTIONS(5044),
    [sym_false] = ACTIONS(5044),
    [sym_null] = ACTIONS(5044),
    [sym_super] = ACTIONS(5044),
    [sym_this] = ACTIONS(5044),
    [sym_abstract] = ACTIONS(5044),
    [sym_alias] = ACTIONS(5044),
    [sym_align] = ACTIONS(5044),
    [sym_asm] = ACTIONS(5044),
    [sym_assert] = ACTIONS(5044),
    [sym_auto] = ACTIONS(5044),
    [sym_break] = ACTIONS(5044),
    [sym_case] = ACTIONS(5044),
    [sym_cast] = ACTIONS(5044),
    [sym_class] = ACTIONS(5044),
    [sym_const] = ACTIONS(5044),
    [sym_continue] = ACTIONS(5044),
    [sym_debug] = ACTIONS(5044),
    [sym_default] = ACTIONS(5044),
    [sym_delegate] = ACTIONS(5044),
    [sym_delete] = ACTIONS(5044),
    [sym_deprecated] = ACTIONS(5044),
    [sym_do] = ACTIONS(5044),
    [sym_else] = ACTIONS(5044),
    [sym_enum] = ACTIONS(5044),
    [sym_export] = ACTIONS(5044),
    [sym_extern] = ACTIONS(5044),
    [sym_final] = ACTIONS(5044),
    [sym_for] = ACTIONS(5044),
    [sym_foreach] = ACTIONS(5044),
    [sym_foreach_reverse] = ACTIONS(5044),
    [sym_function] = ACTIONS(5044),
    [sym_goto] = ACTIONS(5044),
    [sym_if] = ACTIONS(5044),
    [sym_immutable] = ACTIONS(5044),
    [sym_import] = ACTIONS(5044),
    [sym_in] = ACTIONS(5044),
    [sym_inout] = ACTIONS(5044),
    [sym_interface] = ACTIONS(5044),
    [sym_invariant] = ACTIONS(5044),
    [sym_is] = ACTIONS(5044),
    [sym_mixin] = ACTIONS(5044),
    [sym_new] = ACTIONS(5044),
    [sym_nothrow] = ACTIONS(5044),
    [sym_out] = ACTIONS(5044),
    [sym_override] = ACTIONS(5044),
    [sym_package] = ACTIONS(5044),
    [sym_pragma] = ACTIONS(5044),
    [sym_private] = ACTIONS(5044),
    [sym_protected] = ACTIONS(5044),
    [sym_public] = ACTIONS(5044),
    [sym_pure] = ACTIONS(5044),
    [sym_ref] = ACTIONS(5044),
    [sym_return] = ACTIONS(5044),
    [sym_scope] = ACTIONS(5044),
    [sym_shared] = ACTIONS(5044),
    [sym_static] = ACTIONS(5044),
    [sym_struct] = ACTIONS(5044),
    [sym_switch] = ACTIONS(5044),
    [sym_synchronized] = ACTIONS(5044),
    [sym_template] = ACTIONS(5044),
    [sym_throw] = ACTIONS(5044),
    [sym_try] = ACTIONS(5044),
    [sym_typeid] = ACTIONS(5044),
    [sym_typeof] = ACTIONS(5044),
    [sym_union] = ACTIONS(5044),
    [sym_unittest] = ACTIONS(5044),
    [sym_version] = ACTIONS(5044),
    [sym_while] = ACTIONS(5044),
    [sym_with] = ACTIONS(5044),
    [sym_gshared] = ACTIONS(5044),
    [sym_traits] = ACTIONS(5044),
    [sym_vector] = ACTIONS(5044),
    [sym_void] = ACTIONS(5044),
    [anon_sym_BQUOTE] = ACTIONS(5046),
    [anon_sym_r_DQUOTE] = ACTIONS(5046),
    [anon_sym_x_DQUOTE] = ACTIONS(5046),
    [anon_sym_DQUOTE] = ACTIONS(5046),
    [anon_sym_i_BQUOTE] = ACTIONS(5046),
    [anon_sym_i_DQUOTE] = ACTIONS(5046),
    [anon_sym_iq_LBRACE] = ACTIONS(5046),
    [aux_sym_char_literal_token1] = ACTIONS(5046),
    [anon_sym_SQUOTE] = ACTIONS(5044),
    [anon_sym___DATE__] = ACTIONS(5044),
    [anon_sym___FILE__] = ACTIONS(5044),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5044),
    [anon_sym___FUNCTION__] = ACTIONS(5044),
    [anon_sym___LINE__] = ACTIONS(5044),
    [anon_sym___MODULE__] = ACTIONS(5044),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5044),
    [anon_sym___TIME__] = ACTIONS(5044),
    [anon_sym___TIMESTAMP__] = ACTIONS(5044),
    [anon_sym___VENDOR__] = ACTIONS(5044),
    [anon_sym___VERSION__] = ACTIONS(5044),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5046),
    [sym_float_literal] = ACTIONS(5046),
    [sym__string] = ACTIONS(5046),
  },
  [1696] = {
    [sym_identifier] = ACTIONS(4598),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4600),
    [anon_sym_RBRACE] = ACTIONS(4600),
    [anon_sym_LBRACE] = ACTIONS(4600),
    [anon_sym_DOT] = ACTIONS(4600),
    [anon_sym_AMP] = ACTIONS(4600),
    [anon_sym_DASH] = ACTIONS(4598),
    [anon_sym_DASH_DASH] = ACTIONS(4600),
    [anon_sym_PLUS] = ACTIONS(4598),
    [anon_sym_PLUS_PLUS] = ACTIONS(4600),
    [anon_sym_BANG] = ACTIONS(4600),
    [anon_sym_LPAREN] = ACTIONS(4600),
    [anon_sym_RPAREN] = ACTIONS(4600),
    [anon_sym_LBRACK] = ACTIONS(4600),
    [anon_sym_SEMI] = ACTIONS(4600),
    [anon_sym_DOLLAR] = ACTIONS(4600),
    [anon_sym_STAR] = ACTIONS(4600),
    [anon_sym_TILDE] = ACTIONS(4600),
    [anon_sym_AT] = ACTIONS(4600),
    [sym_bool] = ACTIONS(4598),
    [sym_byte] = ACTIONS(4598),
    [sym_ubyte] = ACTIONS(4598),
    [sym_char] = ACTIONS(4598),
    [sym_short] = ACTIONS(4598),
    [sym_ushort] = ACTIONS(4598),
    [sym_int] = ACTIONS(4598),
    [sym_uint] = ACTIONS(4598),
    [sym_long] = ACTIONS(4598),
    [sym_ulong] = ACTIONS(4598),
    [sym_cent] = ACTIONS(4598),
    [sym_ucent] = ACTIONS(4598),
    [sym_wchar] = ACTIONS(4598),
    [sym_dchar] = ACTIONS(4598),
    [sym_float] = ACTIONS(4598),
    [sym_double] = ACTIONS(4598),
    [sym_real] = ACTIONS(4598),
    [sym_ifloat] = ACTIONS(4598),
    [sym_idouble] = ACTIONS(4598),
    [sym_ireal] = ACTIONS(4598),
    [sym_cfloat] = ACTIONS(4598),
    [sym_cdouble] = ACTIONS(4598),
    [sym_creal] = ACTIONS(4598),
    [sym_size_t] = ACTIONS(4598),
    [sym_ptrdiff_t] = ACTIONS(4598),
    [sym_string] = ACTIONS(4598),
    [sym_cstring] = ACTIONS(4598),
    [sym_dstring] = ACTIONS(4598),
    [sym_wstring] = ACTIONS(4598),
    [sym_noreturn] = ACTIONS(4598),
    [sym_true] = ACTIONS(4598),
    [sym_false] = ACTIONS(4598),
    [sym_null] = ACTIONS(4598),
    [sym_super] = ACTIONS(4598),
    [sym_this] = ACTIONS(4598),
    [sym_abstract] = ACTIONS(4598),
    [sym_alias] = ACTIONS(4598),
    [sym_align] = ACTIONS(4598),
    [sym_asm] = ACTIONS(4598),
    [sym_assert] = ACTIONS(4598),
    [sym_auto] = ACTIONS(4598),
    [sym_break] = ACTIONS(4598),
    [sym_case] = ACTIONS(4598),
    [sym_cast] = ACTIONS(4598),
    [sym_class] = ACTIONS(4598),
    [sym_const] = ACTIONS(4598),
    [sym_continue] = ACTIONS(4598),
    [sym_debug] = ACTIONS(4598),
    [sym_default] = ACTIONS(4598),
    [sym_delegate] = ACTIONS(4598),
    [sym_delete] = ACTIONS(4598),
    [sym_deprecated] = ACTIONS(4598),
    [sym_do] = ACTIONS(4598),
    [sym_else] = ACTIONS(4598),
    [sym_enum] = ACTIONS(4598),
    [sym_export] = ACTIONS(4598),
    [sym_extern] = ACTIONS(4598),
    [sym_final] = ACTIONS(4598),
    [sym_for] = ACTIONS(4598),
    [sym_foreach] = ACTIONS(4598),
    [sym_foreach_reverse] = ACTIONS(4598),
    [sym_function] = ACTIONS(4598),
    [sym_goto] = ACTIONS(4598),
    [sym_if] = ACTIONS(4598),
    [sym_immutable] = ACTIONS(4598),
    [sym_import] = ACTIONS(4598),
    [sym_in] = ACTIONS(4598),
    [sym_inout] = ACTIONS(4598),
    [sym_interface] = ACTIONS(4598),
    [sym_invariant] = ACTIONS(4598),
    [sym_is] = ACTIONS(4598),
    [sym_mixin] = ACTIONS(4598),
    [sym_new] = ACTIONS(4598),
    [sym_nothrow] = ACTIONS(4598),
    [sym_out] = ACTIONS(4598),
    [sym_override] = ACTIONS(4598),
    [sym_package] = ACTIONS(4598),
    [sym_pragma] = ACTIONS(4598),
    [sym_private] = ACTIONS(4598),
    [sym_protected] = ACTIONS(4598),
    [sym_public] = ACTIONS(4598),
    [sym_pure] = ACTIONS(4598),
    [sym_ref] = ACTIONS(4598),
    [sym_return] = ACTIONS(4598),
    [sym_scope] = ACTIONS(4598),
    [sym_shared] = ACTIONS(4598),
    [sym_static] = ACTIONS(4598),
    [sym_struct] = ACTIONS(4598),
    [sym_switch] = ACTIONS(4598),
    [sym_synchronized] = ACTIONS(4598),
    [sym_template] = ACTIONS(4598),
    [sym_throw] = ACTIONS(4598),
    [sym_try] = ACTIONS(4598),
    [sym_typeid] = ACTIONS(4598),
    [sym_typeof] = ACTIONS(4598),
    [sym_union] = ACTIONS(4598),
    [sym_unittest] = ACTIONS(4598),
    [sym_version] = ACTIONS(4598),
    [sym_while] = ACTIONS(4598),
    [sym_with] = ACTIONS(4598),
    [sym_gshared] = ACTIONS(4598),
    [sym_traits] = ACTIONS(4598),
    [sym_vector] = ACTIONS(4598),
    [sym_void] = ACTIONS(4598),
    [anon_sym_BQUOTE] = ACTIONS(4600),
    [anon_sym_r_DQUOTE] = ACTIONS(4600),
    [anon_sym_x_DQUOTE] = ACTIONS(4600),
    [anon_sym_DQUOTE] = ACTIONS(4600),
    [anon_sym_i_BQUOTE] = ACTIONS(4600),
    [anon_sym_i_DQUOTE] = ACTIONS(4600),
    [anon_sym_iq_LBRACE] = ACTIONS(4600),
    [aux_sym_char_literal_token1] = ACTIONS(4600),
    [anon_sym_SQUOTE] = ACTIONS(4598),
    [anon_sym___DATE__] = ACTIONS(4598),
    [anon_sym___FILE__] = ACTIONS(4598),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4598),
    [anon_sym___FUNCTION__] = ACTIONS(4598),
    [anon_sym___LINE__] = ACTIONS(4598),
    [anon_sym___MODULE__] = ACTIONS(4598),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4598),
    [anon_sym___TIME__] = ACTIONS(4598),
    [anon_sym___TIMESTAMP__] = ACTIONS(4598),
    [anon_sym___VENDOR__] = ACTIONS(4598),
    [anon_sym___VERSION__] = ACTIONS(4598),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4600),
    [sym_float_literal] = ACTIONS(4600),
    [sym__string] = ACTIONS(4600),
  },
  [1697] = {
    [sym_identifier] = ACTIONS(5040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5042),
    [anon_sym_RBRACE] = ACTIONS(5042),
    [anon_sym_LBRACE] = ACTIONS(5042),
    [anon_sym_DOT] = ACTIONS(5042),
    [anon_sym_AMP] = ACTIONS(5042),
    [anon_sym_DASH] = ACTIONS(5040),
    [anon_sym_DASH_DASH] = ACTIONS(5042),
    [anon_sym_PLUS] = ACTIONS(5040),
    [anon_sym_PLUS_PLUS] = ACTIONS(5042),
    [anon_sym_BANG] = ACTIONS(5042),
    [anon_sym_LPAREN] = ACTIONS(5042),
    [anon_sym_RPAREN] = ACTIONS(5042),
    [anon_sym_LBRACK] = ACTIONS(5042),
    [anon_sym_SEMI] = ACTIONS(5042),
    [anon_sym_DOLLAR] = ACTIONS(5042),
    [anon_sym_STAR] = ACTIONS(5042),
    [anon_sym_TILDE] = ACTIONS(5042),
    [anon_sym_AT] = ACTIONS(5042),
    [sym_bool] = ACTIONS(5040),
    [sym_byte] = ACTIONS(5040),
    [sym_ubyte] = ACTIONS(5040),
    [sym_char] = ACTIONS(5040),
    [sym_short] = ACTIONS(5040),
    [sym_ushort] = ACTIONS(5040),
    [sym_int] = ACTIONS(5040),
    [sym_uint] = ACTIONS(5040),
    [sym_long] = ACTIONS(5040),
    [sym_ulong] = ACTIONS(5040),
    [sym_cent] = ACTIONS(5040),
    [sym_ucent] = ACTIONS(5040),
    [sym_wchar] = ACTIONS(5040),
    [sym_dchar] = ACTIONS(5040),
    [sym_float] = ACTIONS(5040),
    [sym_double] = ACTIONS(5040),
    [sym_real] = ACTIONS(5040),
    [sym_ifloat] = ACTIONS(5040),
    [sym_idouble] = ACTIONS(5040),
    [sym_ireal] = ACTIONS(5040),
    [sym_cfloat] = ACTIONS(5040),
    [sym_cdouble] = ACTIONS(5040),
    [sym_creal] = ACTIONS(5040),
    [sym_size_t] = ACTIONS(5040),
    [sym_ptrdiff_t] = ACTIONS(5040),
    [sym_string] = ACTIONS(5040),
    [sym_cstring] = ACTIONS(5040),
    [sym_dstring] = ACTIONS(5040),
    [sym_wstring] = ACTIONS(5040),
    [sym_noreturn] = ACTIONS(5040),
    [sym_true] = ACTIONS(5040),
    [sym_false] = ACTIONS(5040),
    [sym_null] = ACTIONS(5040),
    [sym_super] = ACTIONS(5040),
    [sym_this] = ACTIONS(5040),
    [sym_abstract] = ACTIONS(5040),
    [sym_alias] = ACTIONS(5040),
    [sym_align] = ACTIONS(5040),
    [sym_asm] = ACTIONS(5040),
    [sym_assert] = ACTIONS(5040),
    [sym_auto] = ACTIONS(5040),
    [sym_break] = ACTIONS(5040),
    [sym_case] = ACTIONS(5040),
    [sym_cast] = ACTIONS(5040),
    [sym_class] = ACTIONS(5040),
    [sym_const] = ACTIONS(5040),
    [sym_continue] = ACTIONS(5040),
    [sym_debug] = ACTIONS(5040),
    [sym_default] = ACTIONS(5040),
    [sym_delegate] = ACTIONS(5040),
    [sym_delete] = ACTIONS(5040),
    [sym_deprecated] = ACTIONS(5040),
    [sym_do] = ACTIONS(5040),
    [sym_else] = ACTIONS(5040),
    [sym_enum] = ACTIONS(5040),
    [sym_export] = ACTIONS(5040),
    [sym_extern] = ACTIONS(5040),
    [sym_final] = ACTIONS(5040),
    [sym_for] = ACTIONS(5040),
    [sym_foreach] = ACTIONS(5040),
    [sym_foreach_reverse] = ACTIONS(5040),
    [sym_function] = ACTIONS(5040),
    [sym_goto] = ACTIONS(5040),
    [sym_if] = ACTIONS(5040),
    [sym_immutable] = ACTIONS(5040),
    [sym_import] = ACTIONS(5040),
    [sym_in] = ACTIONS(5040),
    [sym_inout] = ACTIONS(5040),
    [sym_interface] = ACTIONS(5040),
    [sym_invariant] = ACTIONS(5040),
    [sym_is] = ACTIONS(5040),
    [sym_mixin] = ACTIONS(5040),
    [sym_new] = ACTIONS(5040),
    [sym_nothrow] = ACTIONS(5040),
    [sym_out] = ACTIONS(5040),
    [sym_override] = ACTIONS(5040),
    [sym_package] = ACTIONS(5040),
    [sym_pragma] = ACTIONS(5040),
    [sym_private] = ACTIONS(5040),
    [sym_protected] = ACTIONS(5040),
    [sym_public] = ACTIONS(5040),
    [sym_pure] = ACTIONS(5040),
    [sym_ref] = ACTIONS(5040),
    [sym_return] = ACTIONS(5040),
    [sym_scope] = ACTIONS(5040),
    [sym_shared] = ACTIONS(5040),
    [sym_static] = ACTIONS(5040),
    [sym_struct] = ACTIONS(5040),
    [sym_switch] = ACTIONS(5040),
    [sym_synchronized] = ACTIONS(5040),
    [sym_template] = ACTIONS(5040),
    [sym_throw] = ACTIONS(5040),
    [sym_try] = ACTIONS(5040),
    [sym_typeid] = ACTIONS(5040),
    [sym_typeof] = ACTIONS(5040),
    [sym_union] = ACTIONS(5040),
    [sym_unittest] = ACTIONS(5040),
    [sym_version] = ACTIONS(5040),
    [sym_while] = ACTIONS(5040),
    [sym_with] = ACTIONS(5040),
    [sym_gshared] = ACTIONS(5040),
    [sym_traits] = ACTIONS(5040),
    [sym_vector] = ACTIONS(5040),
    [sym_void] = ACTIONS(5040),
    [anon_sym_BQUOTE] = ACTIONS(5042),
    [anon_sym_r_DQUOTE] = ACTIONS(5042),
    [anon_sym_x_DQUOTE] = ACTIONS(5042),
    [anon_sym_DQUOTE] = ACTIONS(5042),
    [anon_sym_i_BQUOTE] = ACTIONS(5042),
    [anon_sym_i_DQUOTE] = ACTIONS(5042),
    [anon_sym_iq_LBRACE] = ACTIONS(5042),
    [aux_sym_char_literal_token1] = ACTIONS(5042),
    [anon_sym_SQUOTE] = ACTIONS(5040),
    [anon_sym___DATE__] = ACTIONS(5040),
    [anon_sym___FILE__] = ACTIONS(5040),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5040),
    [anon_sym___FUNCTION__] = ACTIONS(5040),
    [anon_sym___LINE__] = ACTIONS(5040),
    [anon_sym___MODULE__] = ACTIONS(5040),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5040),
    [anon_sym___TIME__] = ACTIONS(5040),
    [anon_sym___TIMESTAMP__] = ACTIONS(5040),
    [anon_sym___VENDOR__] = ACTIONS(5040),
    [anon_sym___VERSION__] = ACTIONS(5040),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5042),
    [sym_float_literal] = ACTIONS(5042),
    [sym__string] = ACTIONS(5042),
  },
  [1698] = {
    [sym_identifier] = ACTIONS(4636),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4638),
    [anon_sym_RBRACE] = ACTIONS(4638),
    [anon_sym_LBRACE] = ACTIONS(4638),
    [anon_sym_DOT] = ACTIONS(4638),
    [anon_sym_AMP] = ACTIONS(4638),
    [anon_sym_DASH] = ACTIONS(4636),
    [anon_sym_DASH_DASH] = ACTIONS(4638),
    [anon_sym_PLUS] = ACTIONS(4636),
    [anon_sym_PLUS_PLUS] = ACTIONS(4638),
    [anon_sym_BANG] = ACTIONS(4638),
    [anon_sym_LPAREN] = ACTIONS(4638),
    [anon_sym_RPAREN] = ACTIONS(4638),
    [anon_sym_LBRACK] = ACTIONS(4638),
    [anon_sym_SEMI] = ACTIONS(4638),
    [anon_sym_DOLLAR] = ACTIONS(4638),
    [anon_sym_STAR] = ACTIONS(4638),
    [anon_sym_TILDE] = ACTIONS(4638),
    [anon_sym_AT] = ACTIONS(4638),
    [sym_bool] = ACTIONS(4636),
    [sym_byte] = ACTIONS(4636),
    [sym_ubyte] = ACTIONS(4636),
    [sym_char] = ACTIONS(4636),
    [sym_short] = ACTIONS(4636),
    [sym_ushort] = ACTIONS(4636),
    [sym_int] = ACTIONS(4636),
    [sym_uint] = ACTIONS(4636),
    [sym_long] = ACTIONS(4636),
    [sym_ulong] = ACTIONS(4636),
    [sym_cent] = ACTIONS(4636),
    [sym_ucent] = ACTIONS(4636),
    [sym_wchar] = ACTIONS(4636),
    [sym_dchar] = ACTIONS(4636),
    [sym_float] = ACTIONS(4636),
    [sym_double] = ACTIONS(4636),
    [sym_real] = ACTIONS(4636),
    [sym_ifloat] = ACTIONS(4636),
    [sym_idouble] = ACTIONS(4636),
    [sym_ireal] = ACTIONS(4636),
    [sym_cfloat] = ACTIONS(4636),
    [sym_cdouble] = ACTIONS(4636),
    [sym_creal] = ACTIONS(4636),
    [sym_size_t] = ACTIONS(4636),
    [sym_ptrdiff_t] = ACTIONS(4636),
    [sym_string] = ACTIONS(4636),
    [sym_cstring] = ACTIONS(4636),
    [sym_dstring] = ACTIONS(4636),
    [sym_wstring] = ACTIONS(4636),
    [sym_noreturn] = ACTIONS(4636),
    [sym_true] = ACTIONS(4636),
    [sym_false] = ACTIONS(4636),
    [sym_null] = ACTIONS(4636),
    [sym_super] = ACTIONS(4636),
    [sym_this] = ACTIONS(4636),
    [sym_abstract] = ACTIONS(4636),
    [sym_alias] = ACTIONS(4636),
    [sym_align] = ACTIONS(4636),
    [sym_asm] = ACTIONS(4636),
    [sym_assert] = ACTIONS(4636),
    [sym_auto] = ACTIONS(4636),
    [sym_break] = ACTIONS(4636),
    [sym_case] = ACTIONS(4636),
    [sym_cast] = ACTIONS(4636),
    [sym_class] = ACTIONS(4636),
    [sym_const] = ACTIONS(4636),
    [sym_continue] = ACTIONS(4636),
    [sym_debug] = ACTIONS(4636),
    [sym_default] = ACTIONS(4636),
    [sym_delegate] = ACTIONS(4636),
    [sym_delete] = ACTIONS(4636),
    [sym_deprecated] = ACTIONS(4636),
    [sym_do] = ACTIONS(4636),
    [sym_else] = ACTIONS(4636),
    [sym_enum] = ACTIONS(4636),
    [sym_export] = ACTIONS(4636),
    [sym_extern] = ACTIONS(4636),
    [sym_final] = ACTIONS(4636),
    [sym_for] = ACTIONS(4636),
    [sym_foreach] = ACTIONS(4636),
    [sym_foreach_reverse] = ACTIONS(4636),
    [sym_function] = ACTIONS(4636),
    [sym_goto] = ACTIONS(4636),
    [sym_if] = ACTIONS(4636),
    [sym_immutable] = ACTIONS(4636),
    [sym_import] = ACTIONS(4636),
    [sym_in] = ACTIONS(4636),
    [sym_inout] = ACTIONS(4636),
    [sym_interface] = ACTIONS(4636),
    [sym_invariant] = ACTIONS(4636),
    [sym_is] = ACTIONS(4636),
    [sym_mixin] = ACTIONS(4636),
    [sym_new] = ACTIONS(4636),
    [sym_nothrow] = ACTIONS(4636),
    [sym_out] = ACTIONS(4636),
    [sym_override] = ACTIONS(4636),
    [sym_package] = ACTIONS(4636),
    [sym_pragma] = ACTIONS(4636),
    [sym_private] = ACTIONS(4636),
    [sym_protected] = ACTIONS(4636),
    [sym_public] = ACTIONS(4636),
    [sym_pure] = ACTIONS(4636),
    [sym_ref] = ACTIONS(4636),
    [sym_return] = ACTIONS(4636),
    [sym_scope] = ACTIONS(4636),
    [sym_shared] = ACTIONS(4636),
    [sym_static] = ACTIONS(4636),
    [sym_struct] = ACTIONS(4636),
    [sym_switch] = ACTIONS(4636),
    [sym_synchronized] = ACTIONS(4636),
    [sym_template] = ACTIONS(4636),
    [sym_throw] = ACTIONS(4636),
    [sym_try] = ACTIONS(4636),
    [sym_typeid] = ACTIONS(4636),
    [sym_typeof] = ACTIONS(4636),
    [sym_union] = ACTIONS(4636),
    [sym_unittest] = ACTIONS(4636),
    [sym_version] = ACTIONS(4636),
    [sym_while] = ACTIONS(4636),
    [sym_with] = ACTIONS(4636),
    [sym_gshared] = ACTIONS(4636),
    [sym_traits] = ACTIONS(4636),
    [sym_vector] = ACTIONS(4636),
    [sym_void] = ACTIONS(4636),
    [anon_sym_BQUOTE] = ACTIONS(4638),
    [anon_sym_r_DQUOTE] = ACTIONS(4638),
    [anon_sym_x_DQUOTE] = ACTIONS(4638),
    [anon_sym_DQUOTE] = ACTIONS(4638),
    [anon_sym_i_BQUOTE] = ACTIONS(4638),
    [anon_sym_i_DQUOTE] = ACTIONS(4638),
    [anon_sym_iq_LBRACE] = ACTIONS(4638),
    [aux_sym_char_literal_token1] = ACTIONS(4638),
    [anon_sym_SQUOTE] = ACTIONS(4636),
    [anon_sym___DATE__] = ACTIONS(4636),
    [anon_sym___FILE__] = ACTIONS(4636),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4636),
    [anon_sym___FUNCTION__] = ACTIONS(4636),
    [anon_sym___LINE__] = ACTIONS(4636),
    [anon_sym___MODULE__] = ACTIONS(4636),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4636),
    [anon_sym___TIME__] = ACTIONS(4636),
    [anon_sym___TIMESTAMP__] = ACTIONS(4636),
    [anon_sym___VENDOR__] = ACTIONS(4636),
    [anon_sym___VERSION__] = ACTIONS(4636),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4638),
    [sym_float_literal] = ACTIONS(4638),
    [sym__string] = ACTIONS(4638),
  },
  [1699] = {
    [sym_identifier] = ACTIONS(4936),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4938),
    [anon_sym_RBRACE] = ACTIONS(4938),
    [anon_sym_LBRACE] = ACTIONS(4938),
    [anon_sym_DOT] = ACTIONS(4938),
    [anon_sym_AMP] = ACTIONS(4938),
    [anon_sym_DASH] = ACTIONS(4936),
    [anon_sym_DASH_DASH] = ACTIONS(4938),
    [anon_sym_PLUS] = ACTIONS(4936),
    [anon_sym_PLUS_PLUS] = ACTIONS(4938),
    [anon_sym_BANG] = ACTIONS(4938),
    [anon_sym_LPAREN] = ACTIONS(4938),
    [anon_sym_RPAREN] = ACTIONS(4938),
    [anon_sym_LBRACK] = ACTIONS(4938),
    [anon_sym_SEMI] = ACTIONS(4938),
    [anon_sym_DOLLAR] = ACTIONS(4938),
    [anon_sym_STAR] = ACTIONS(4938),
    [anon_sym_TILDE] = ACTIONS(4938),
    [anon_sym_AT] = ACTIONS(4938),
    [sym_bool] = ACTIONS(4936),
    [sym_byte] = ACTIONS(4936),
    [sym_ubyte] = ACTIONS(4936),
    [sym_char] = ACTIONS(4936),
    [sym_short] = ACTIONS(4936),
    [sym_ushort] = ACTIONS(4936),
    [sym_int] = ACTIONS(4936),
    [sym_uint] = ACTIONS(4936),
    [sym_long] = ACTIONS(4936),
    [sym_ulong] = ACTIONS(4936),
    [sym_cent] = ACTIONS(4936),
    [sym_ucent] = ACTIONS(4936),
    [sym_wchar] = ACTIONS(4936),
    [sym_dchar] = ACTIONS(4936),
    [sym_float] = ACTIONS(4936),
    [sym_double] = ACTIONS(4936),
    [sym_real] = ACTIONS(4936),
    [sym_ifloat] = ACTIONS(4936),
    [sym_idouble] = ACTIONS(4936),
    [sym_ireal] = ACTIONS(4936),
    [sym_cfloat] = ACTIONS(4936),
    [sym_cdouble] = ACTIONS(4936),
    [sym_creal] = ACTIONS(4936),
    [sym_size_t] = ACTIONS(4936),
    [sym_ptrdiff_t] = ACTIONS(4936),
    [sym_string] = ACTIONS(4936),
    [sym_cstring] = ACTIONS(4936),
    [sym_dstring] = ACTIONS(4936),
    [sym_wstring] = ACTIONS(4936),
    [sym_noreturn] = ACTIONS(4936),
    [sym_true] = ACTIONS(4936),
    [sym_false] = ACTIONS(4936),
    [sym_null] = ACTIONS(4936),
    [sym_super] = ACTIONS(4936),
    [sym_this] = ACTIONS(4936),
    [sym_abstract] = ACTIONS(4936),
    [sym_alias] = ACTIONS(4936),
    [sym_align] = ACTIONS(4936),
    [sym_asm] = ACTIONS(4936),
    [sym_assert] = ACTIONS(4936),
    [sym_auto] = ACTIONS(4936),
    [sym_break] = ACTIONS(4936),
    [sym_case] = ACTIONS(4936),
    [sym_cast] = ACTIONS(4936),
    [sym_class] = ACTIONS(4936),
    [sym_const] = ACTIONS(4936),
    [sym_continue] = ACTIONS(4936),
    [sym_debug] = ACTIONS(4936),
    [sym_default] = ACTIONS(4936),
    [sym_delegate] = ACTIONS(4936),
    [sym_delete] = ACTIONS(4936),
    [sym_deprecated] = ACTIONS(4936),
    [sym_do] = ACTIONS(4936),
    [sym_else] = ACTIONS(4936),
    [sym_enum] = ACTIONS(4936),
    [sym_export] = ACTIONS(4936),
    [sym_extern] = ACTIONS(4936),
    [sym_final] = ACTIONS(4936),
    [sym_for] = ACTIONS(4936),
    [sym_foreach] = ACTIONS(4936),
    [sym_foreach_reverse] = ACTIONS(4936),
    [sym_function] = ACTIONS(4936),
    [sym_goto] = ACTIONS(4936),
    [sym_if] = ACTIONS(4936),
    [sym_immutable] = ACTIONS(4936),
    [sym_import] = ACTIONS(4936),
    [sym_in] = ACTIONS(4936),
    [sym_inout] = ACTIONS(4936),
    [sym_interface] = ACTIONS(4936),
    [sym_invariant] = ACTIONS(4936),
    [sym_is] = ACTIONS(4936),
    [sym_mixin] = ACTIONS(4936),
    [sym_new] = ACTIONS(4936),
    [sym_nothrow] = ACTIONS(4936),
    [sym_out] = ACTIONS(4936),
    [sym_override] = ACTIONS(4936),
    [sym_package] = ACTIONS(4936),
    [sym_pragma] = ACTIONS(4936),
    [sym_private] = ACTIONS(4936),
    [sym_protected] = ACTIONS(4936),
    [sym_public] = ACTIONS(4936),
    [sym_pure] = ACTIONS(4936),
    [sym_ref] = ACTIONS(4936),
    [sym_return] = ACTIONS(4936),
    [sym_scope] = ACTIONS(4936),
    [sym_shared] = ACTIONS(4936),
    [sym_static] = ACTIONS(4936),
    [sym_struct] = ACTIONS(4936),
    [sym_switch] = ACTIONS(4936),
    [sym_synchronized] = ACTIONS(4936),
    [sym_template] = ACTIONS(4936),
    [sym_throw] = ACTIONS(4936),
    [sym_try] = ACTIONS(4936),
    [sym_typeid] = ACTIONS(4936),
    [sym_typeof] = ACTIONS(4936),
    [sym_union] = ACTIONS(4936),
    [sym_unittest] = ACTIONS(4936),
    [sym_version] = ACTIONS(4936),
    [sym_while] = ACTIONS(4936),
    [sym_with] = ACTIONS(4936),
    [sym_gshared] = ACTIONS(4936),
    [sym_traits] = ACTIONS(4936),
    [sym_vector] = ACTIONS(4936),
    [sym_void] = ACTIONS(4936),
    [anon_sym_BQUOTE] = ACTIONS(4938),
    [anon_sym_r_DQUOTE] = ACTIONS(4938),
    [anon_sym_x_DQUOTE] = ACTIONS(4938),
    [anon_sym_DQUOTE] = ACTIONS(4938),
    [anon_sym_i_BQUOTE] = ACTIONS(4938),
    [anon_sym_i_DQUOTE] = ACTIONS(4938),
    [anon_sym_iq_LBRACE] = ACTIONS(4938),
    [aux_sym_char_literal_token1] = ACTIONS(4938),
    [anon_sym_SQUOTE] = ACTIONS(4936),
    [anon_sym___DATE__] = ACTIONS(4936),
    [anon_sym___FILE__] = ACTIONS(4936),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4936),
    [anon_sym___FUNCTION__] = ACTIONS(4936),
    [anon_sym___LINE__] = ACTIONS(4936),
    [anon_sym___MODULE__] = ACTIONS(4936),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4936),
    [anon_sym___TIME__] = ACTIONS(4936),
    [anon_sym___TIMESTAMP__] = ACTIONS(4936),
    [anon_sym___VENDOR__] = ACTIONS(4936),
    [anon_sym___VERSION__] = ACTIONS(4936),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4938),
    [sym_float_literal] = ACTIONS(4938),
    [sym__string] = ACTIONS(4938),
  },
  [1700] = {
    [sym_identifier] = ACTIONS(4452),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4454),
    [anon_sym_RBRACE] = ACTIONS(4454),
    [anon_sym_LBRACE] = ACTIONS(4454),
    [anon_sym_DOT] = ACTIONS(4454),
    [anon_sym_AMP] = ACTIONS(4454),
    [anon_sym_DASH] = ACTIONS(4452),
    [anon_sym_DASH_DASH] = ACTIONS(4454),
    [anon_sym_PLUS] = ACTIONS(4452),
    [anon_sym_PLUS_PLUS] = ACTIONS(4454),
    [anon_sym_BANG] = ACTIONS(4454),
    [anon_sym_LPAREN] = ACTIONS(4454),
    [anon_sym_RPAREN] = ACTIONS(4454),
    [anon_sym_LBRACK] = ACTIONS(4454),
    [anon_sym_SEMI] = ACTIONS(4454),
    [anon_sym_DOLLAR] = ACTIONS(4454),
    [anon_sym_STAR] = ACTIONS(4454),
    [anon_sym_TILDE] = ACTIONS(4454),
    [anon_sym_AT] = ACTIONS(4454),
    [sym_bool] = ACTIONS(4452),
    [sym_byte] = ACTIONS(4452),
    [sym_ubyte] = ACTIONS(4452),
    [sym_char] = ACTIONS(4452),
    [sym_short] = ACTIONS(4452),
    [sym_ushort] = ACTIONS(4452),
    [sym_int] = ACTIONS(4452),
    [sym_uint] = ACTIONS(4452),
    [sym_long] = ACTIONS(4452),
    [sym_ulong] = ACTIONS(4452),
    [sym_cent] = ACTIONS(4452),
    [sym_ucent] = ACTIONS(4452),
    [sym_wchar] = ACTIONS(4452),
    [sym_dchar] = ACTIONS(4452),
    [sym_float] = ACTIONS(4452),
    [sym_double] = ACTIONS(4452),
    [sym_real] = ACTIONS(4452),
    [sym_ifloat] = ACTIONS(4452),
    [sym_idouble] = ACTIONS(4452),
    [sym_ireal] = ACTIONS(4452),
    [sym_cfloat] = ACTIONS(4452),
    [sym_cdouble] = ACTIONS(4452),
    [sym_creal] = ACTIONS(4452),
    [sym_size_t] = ACTIONS(4452),
    [sym_ptrdiff_t] = ACTIONS(4452),
    [sym_string] = ACTIONS(4452),
    [sym_cstring] = ACTIONS(4452),
    [sym_dstring] = ACTIONS(4452),
    [sym_wstring] = ACTIONS(4452),
    [sym_noreturn] = ACTIONS(4452),
    [sym_true] = ACTIONS(4452),
    [sym_false] = ACTIONS(4452),
    [sym_null] = ACTIONS(4452),
    [sym_super] = ACTIONS(4452),
    [sym_this] = ACTIONS(4452),
    [sym_abstract] = ACTIONS(4452),
    [sym_alias] = ACTIONS(4452),
    [sym_align] = ACTIONS(4452),
    [sym_asm] = ACTIONS(4452),
    [sym_assert] = ACTIONS(4452),
    [sym_auto] = ACTIONS(4452),
    [sym_break] = ACTIONS(4452),
    [sym_case] = ACTIONS(4452),
    [sym_cast] = ACTIONS(4452),
    [sym_class] = ACTIONS(4452),
    [sym_const] = ACTIONS(4452),
    [sym_continue] = ACTIONS(4452),
    [sym_debug] = ACTIONS(4452),
    [sym_default] = ACTIONS(4452),
    [sym_delegate] = ACTIONS(4452),
    [sym_delete] = ACTIONS(4452),
    [sym_deprecated] = ACTIONS(4452),
    [sym_do] = ACTIONS(4452),
    [sym_else] = ACTIONS(4452),
    [sym_enum] = ACTIONS(4452),
    [sym_export] = ACTIONS(4452),
    [sym_extern] = ACTIONS(4452),
    [sym_final] = ACTIONS(4452),
    [sym_for] = ACTIONS(4452),
    [sym_foreach] = ACTIONS(4452),
    [sym_foreach_reverse] = ACTIONS(4452),
    [sym_function] = ACTIONS(4452),
    [sym_goto] = ACTIONS(4452),
    [sym_if] = ACTIONS(4452),
    [sym_immutable] = ACTIONS(4452),
    [sym_import] = ACTIONS(4452),
    [sym_in] = ACTIONS(4452),
    [sym_inout] = ACTIONS(4452),
    [sym_interface] = ACTIONS(4452),
    [sym_invariant] = ACTIONS(4452),
    [sym_is] = ACTIONS(4452),
    [sym_mixin] = ACTIONS(4452),
    [sym_new] = ACTIONS(4452),
    [sym_nothrow] = ACTIONS(4452),
    [sym_out] = ACTIONS(4452),
    [sym_override] = ACTIONS(4452),
    [sym_package] = ACTIONS(4452),
    [sym_pragma] = ACTIONS(4452),
    [sym_private] = ACTIONS(4452),
    [sym_protected] = ACTIONS(4452),
    [sym_public] = ACTIONS(4452),
    [sym_pure] = ACTIONS(4452),
    [sym_ref] = ACTIONS(4452),
    [sym_return] = ACTIONS(4452),
    [sym_scope] = ACTIONS(4452),
    [sym_shared] = ACTIONS(4452),
    [sym_static] = ACTIONS(4452),
    [sym_struct] = ACTIONS(4452),
    [sym_switch] = ACTIONS(4452),
    [sym_synchronized] = ACTIONS(4452),
    [sym_template] = ACTIONS(4452),
    [sym_throw] = ACTIONS(4452),
    [sym_try] = ACTIONS(4452),
    [sym_typeid] = ACTIONS(4452),
    [sym_typeof] = ACTIONS(4452),
    [sym_union] = ACTIONS(4452),
    [sym_unittest] = ACTIONS(4452),
    [sym_version] = ACTIONS(4452),
    [sym_while] = ACTIONS(4452),
    [sym_with] = ACTIONS(4452),
    [sym_gshared] = ACTIONS(4452),
    [sym_traits] = ACTIONS(4452),
    [sym_vector] = ACTIONS(4452),
    [sym_void] = ACTIONS(4452),
    [anon_sym_BQUOTE] = ACTIONS(4454),
    [anon_sym_r_DQUOTE] = ACTIONS(4454),
    [anon_sym_x_DQUOTE] = ACTIONS(4454),
    [anon_sym_DQUOTE] = ACTIONS(4454),
    [anon_sym_i_BQUOTE] = ACTIONS(4454),
    [anon_sym_i_DQUOTE] = ACTIONS(4454),
    [anon_sym_iq_LBRACE] = ACTIONS(4454),
    [aux_sym_char_literal_token1] = ACTIONS(4454),
    [anon_sym_SQUOTE] = ACTIONS(4452),
    [anon_sym___DATE__] = ACTIONS(4452),
    [anon_sym___FILE__] = ACTIONS(4452),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4452),
    [anon_sym___FUNCTION__] = ACTIONS(4452),
    [anon_sym___LINE__] = ACTIONS(4452),
    [anon_sym___MODULE__] = ACTIONS(4452),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4452),
    [anon_sym___TIME__] = ACTIONS(4452),
    [anon_sym___TIMESTAMP__] = ACTIONS(4452),
    [anon_sym___VENDOR__] = ACTIONS(4452),
    [anon_sym___VERSION__] = ACTIONS(4452),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4454),
    [sym_float_literal] = ACTIONS(4454),
    [sym__string] = ACTIONS(4454),
  },
  [1701] = {
    [sym_identifier] = ACTIONS(4974),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4976),
    [anon_sym_RBRACE] = ACTIONS(4976),
    [anon_sym_LBRACE] = ACTIONS(4976),
    [anon_sym_DOT] = ACTIONS(4976),
    [anon_sym_AMP] = ACTIONS(4976),
    [anon_sym_DASH] = ACTIONS(4974),
    [anon_sym_DASH_DASH] = ACTIONS(4976),
    [anon_sym_PLUS] = ACTIONS(4974),
    [anon_sym_PLUS_PLUS] = ACTIONS(4976),
    [anon_sym_BANG] = ACTIONS(4976),
    [anon_sym_LPAREN] = ACTIONS(4976),
    [anon_sym_RPAREN] = ACTIONS(4976),
    [anon_sym_LBRACK] = ACTIONS(4976),
    [anon_sym_SEMI] = ACTIONS(4976),
    [anon_sym_DOLLAR] = ACTIONS(4976),
    [anon_sym_STAR] = ACTIONS(4976),
    [anon_sym_TILDE] = ACTIONS(4976),
    [anon_sym_AT] = ACTIONS(4976),
    [sym_bool] = ACTIONS(4974),
    [sym_byte] = ACTIONS(4974),
    [sym_ubyte] = ACTIONS(4974),
    [sym_char] = ACTIONS(4974),
    [sym_short] = ACTIONS(4974),
    [sym_ushort] = ACTIONS(4974),
    [sym_int] = ACTIONS(4974),
    [sym_uint] = ACTIONS(4974),
    [sym_long] = ACTIONS(4974),
    [sym_ulong] = ACTIONS(4974),
    [sym_cent] = ACTIONS(4974),
    [sym_ucent] = ACTIONS(4974),
    [sym_wchar] = ACTIONS(4974),
    [sym_dchar] = ACTIONS(4974),
    [sym_float] = ACTIONS(4974),
    [sym_double] = ACTIONS(4974),
    [sym_real] = ACTIONS(4974),
    [sym_ifloat] = ACTIONS(4974),
    [sym_idouble] = ACTIONS(4974),
    [sym_ireal] = ACTIONS(4974),
    [sym_cfloat] = ACTIONS(4974),
    [sym_cdouble] = ACTIONS(4974),
    [sym_creal] = ACTIONS(4974),
    [sym_size_t] = ACTIONS(4974),
    [sym_ptrdiff_t] = ACTIONS(4974),
    [sym_string] = ACTIONS(4974),
    [sym_cstring] = ACTIONS(4974),
    [sym_dstring] = ACTIONS(4974),
    [sym_wstring] = ACTIONS(4974),
    [sym_noreturn] = ACTIONS(4974),
    [sym_true] = ACTIONS(4974),
    [sym_false] = ACTIONS(4974),
    [sym_null] = ACTIONS(4974),
    [sym_super] = ACTIONS(4974),
    [sym_this] = ACTIONS(4974),
    [sym_abstract] = ACTIONS(4974),
    [sym_alias] = ACTIONS(4974),
    [sym_align] = ACTIONS(4974),
    [sym_asm] = ACTIONS(4974),
    [sym_assert] = ACTIONS(4974),
    [sym_auto] = ACTIONS(4974),
    [sym_break] = ACTIONS(4974),
    [sym_case] = ACTIONS(4974),
    [sym_cast] = ACTIONS(4974),
    [sym_class] = ACTIONS(4974),
    [sym_const] = ACTIONS(4974),
    [sym_continue] = ACTIONS(4974),
    [sym_debug] = ACTIONS(4974),
    [sym_default] = ACTIONS(4974),
    [sym_delegate] = ACTIONS(4974),
    [sym_delete] = ACTIONS(4974),
    [sym_deprecated] = ACTIONS(4974),
    [sym_do] = ACTIONS(4974),
    [sym_else] = ACTIONS(4974),
    [sym_enum] = ACTIONS(4974),
    [sym_export] = ACTIONS(4974),
    [sym_extern] = ACTIONS(4974),
    [sym_final] = ACTIONS(4974),
    [sym_for] = ACTIONS(4974),
    [sym_foreach] = ACTIONS(4974),
    [sym_foreach_reverse] = ACTIONS(4974),
    [sym_function] = ACTIONS(4974),
    [sym_goto] = ACTIONS(4974),
    [sym_if] = ACTIONS(4974),
    [sym_immutable] = ACTIONS(4974),
    [sym_import] = ACTIONS(4974),
    [sym_in] = ACTIONS(4974),
    [sym_inout] = ACTIONS(4974),
    [sym_interface] = ACTIONS(4974),
    [sym_invariant] = ACTIONS(4974),
    [sym_is] = ACTIONS(4974),
    [sym_mixin] = ACTIONS(4974),
    [sym_new] = ACTIONS(4974),
    [sym_nothrow] = ACTIONS(4974),
    [sym_out] = ACTIONS(4974),
    [sym_override] = ACTIONS(4974),
    [sym_package] = ACTIONS(4974),
    [sym_pragma] = ACTIONS(4974),
    [sym_private] = ACTIONS(4974),
    [sym_protected] = ACTIONS(4974),
    [sym_public] = ACTIONS(4974),
    [sym_pure] = ACTIONS(4974),
    [sym_ref] = ACTIONS(4974),
    [sym_return] = ACTIONS(4974),
    [sym_scope] = ACTIONS(4974),
    [sym_shared] = ACTIONS(4974),
    [sym_static] = ACTIONS(4974),
    [sym_struct] = ACTIONS(4974),
    [sym_switch] = ACTIONS(4974),
    [sym_synchronized] = ACTIONS(4974),
    [sym_template] = ACTIONS(4974),
    [sym_throw] = ACTIONS(4974),
    [sym_try] = ACTIONS(4974),
    [sym_typeid] = ACTIONS(4974),
    [sym_typeof] = ACTIONS(4974),
    [sym_union] = ACTIONS(4974),
    [sym_unittest] = ACTIONS(4974),
    [sym_version] = ACTIONS(4974),
    [sym_while] = ACTIONS(4974),
    [sym_with] = ACTIONS(4974),
    [sym_gshared] = ACTIONS(4974),
    [sym_traits] = ACTIONS(4974),
    [sym_vector] = ACTIONS(4974),
    [sym_void] = ACTIONS(4974),
    [anon_sym_BQUOTE] = ACTIONS(4976),
    [anon_sym_r_DQUOTE] = ACTIONS(4976),
    [anon_sym_x_DQUOTE] = ACTIONS(4976),
    [anon_sym_DQUOTE] = ACTIONS(4976),
    [anon_sym_i_BQUOTE] = ACTIONS(4976),
    [anon_sym_i_DQUOTE] = ACTIONS(4976),
    [anon_sym_iq_LBRACE] = ACTIONS(4976),
    [aux_sym_char_literal_token1] = ACTIONS(4976),
    [anon_sym_SQUOTE] = ACTIONS(4974),
    [anon_sym___DATE__] = ACTIONS(4974),
    [anon_sym___FILE__] = ACTIONS(4974),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4974),
    [anon_sym___FUNCTION__] = ACTIONS(4974),
    [anon_sym___LINE__] = ACTIONS(4974),
    [anon_sym___MODULE__] = ACTIONS(4974),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4974),
    [anon_sym___TIME__] = ACTIONS(4974),
    [anon_sym___TIMESTAMP__] = ACTIONS(4974),
    [anon_sym___VENDOR__] = ACTIONS(4974),
    [anon_sym___VERSION__] = ACTIONS(4974),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4976),
    [sym_float_literal] = ACTIONS(4976),
    [sym__string] = ACTIONS(4976),
  },
  [1702] = {
    [sym_identifier] = ACTIONS(5036),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5038),
    [anon_sym_RBRACE] = ACTIONS(5038),
    [anon_sym_LBRACE] = ACTIONS(5038),
    [anon_sym_DOT] = ACTIONS(5038),
    [anon_sym_AMP] = ACTIONS(5038),
    [anon_sym_DASH] = ACTIONS(5036),
    [anon_sym_DASH_DASH] = ACTIONS(5038),
    [anon_sym_PLUS] = ACTIONS(5036),
    [anon_sym_PLUS_PLUS] = ACTIONS(5038),
    [anon_sym_BANG] = ACTIONS(5038),
    [anon_sym_LPAREN] = ACTIONS(5038),
    [anon_sym_RPAREN] = ACTIONS(5038),
    [anon_sym_LBRACK] = ACTIONS(5038),
    [anon_sym_SEMI] = ACTIONS(5038),
    [anon_sym_DOLLAR] = ACTIONS(5038),
    [anon_sym_STAR] = ACTIONS(5038),
    [anon_sym_TILDE] = ACTIONS(5038),
    [anon_sym_AT] = ACTIONS(5038),
    [sym_bool] = ACTIONS(5036),
    [sym_byte] = ACTIONS(5036),
    [sym_ubyte] = ACTIONS(5036),
    [sym_char] = ACTIONS(5036),
    [sym_short] = ACTIONS(5036),
    [sym_ushort] = ACTIONS(5036),
    [sym_int] = ACTIONS(5036),
    [sym_uint] = ACTIONS(5036),
    [sym_long] = ACTIONS(5036),
    [sym_ulong] = ACTIONS(5036),
    [sym_cent] = ACTIONS(5036),
    [sym_ucent] = ACTIONS(5036),
    [sym_wchar] = ACTIONS(5036),
    [sym_dchar] = ACTIONS(5036),
    [sym_float] = ACTIONS(5036),
    [sym_double] = ACTIONS(5036),
    [sym_real] = ACTIONS(5036),
    [sym_ifloat] = ACTIONS(5036),
    [sym_idouble] = ACTIONS(5036),
    [sym_ireal] = ACTIONS(5036),
    [sym_cfloat] = ACTIONS(5036),
    [sym_cdouble] = ACTIONS(5036),
    [sym_creal] = ACTIONS(5036),
    [sym_size_t] = ACTIONS(5036),
    [sym_ptrdiff_t] = ACTIONS(5036),
    [sym_string] = ACTIONS(5036),
    [sym_cstring] = ACTIONS(5036),
    [sym_dstring] = ACTIONS(5036),
    [sym_wstring] = ACTIONS(5036),
    [sym_noreturn] = ACTIONS(5036),
    [sym_true] = ACTIONS(5036),
    [sym_false] = ACTIONS(5036),
    [sym_null] = ACTIONS(5036),
    [sym_super] = ACTIONS(5036),
    [sym_this] = ACTIONS(5036),
    [sym_abstract] = ACTIONS(5036),
    [sym_alias] = ACTIONS(5036),
    [sym_align] = ACTIONS(5036),
    [sym_asm] = ACTIONS(5036),
    [sym_assert] = ACTIONS(5036),
    [sym_auto] = ACTIONS(5036),
    [sym_break] = ACTIONS(5036),
    [sym_case] = ACTIONS(5036),
    [sym_cast] = ACTIONS(5036),
    [sym_class] = ACTIONS(5036),
    [sym_const] = ACTIONS(5036),
    [sym_continue] = ACTIONS(5036),
    [sym_debug] = ACTIONS(5036),
    [sym_default] = ACTIONS(5036),
    [sym_delegate] = ACTIONS(5036),
    [sym_delete] = ACTIONS(5036),
    [sym_deprecated] = ACTIONS(5036),
    [sym_do] = ACTIONS(5036),
    [sym_else] = ACTIONS(5036),
    [sym_enum] = ACTIONS(5036),
    [sym_export] = ACTIONS(5036),
    [sym_extern] = ACTIONS(5036),
    [sym_final] = ACTIONS(5036),
    [sym_for] = ACTIONS(5036),
    [sym_foreach] = ACTIONS(5036),
    [sym_foreach_reverse] = ACTIONS(5036),
    [sym_function] = ACTIONS(5036),
    [sym_goto] = ACTIONS(5036),
    [sym_if] = ACTIONS(5036),
    [sym_immutable] = ACTIONS(5036),
    [sym_import] = ACTIONS(5036),
    [sym_in] = ACTIONS(5036),
    [sym_inout] = ACTIONS(5036),
    [sym_interface] = ACTIONS(5036),
    [sym_invariant] = ACTIONS(5036),
    [sym_is] = ACTIONS(5036),
    [sym_mixin] = ACTIONS(5036),
    [sym_new] = ACTIONS(5036),
    [sym_nothrow] = ACTIONS(5036),
    [sym_out] = ACTIONS(5036),
    [sym_override] = ACTIONS(5036),
    [sym_package] = ACTIONS(5036),
    [sym_pragma] = ACTIONS(5036),
    [sym_private] = ACTIONS(5036),
    [sym_protected] = ACTIONS(5036),
    [sym_public] = ACTIONS(5036),
    [sym_pure] = ACTIONS(5036),
    [sym_ref] = ACTIONS(5036),
    [sym_return] = ACTIONS(5036),
    [sym_scope] = ACTIONS(5036),
    [sym_shared] = ACTIONS(5036),
    [sym_static] = ACTIONS(5036),
    [sym_struct] = ACTIONS(5036),
    [sym_switch] = ACTIONS(5036),
    [sym_synchronized] = ACTIONS(5036),
    [sym_template] = ACTIONS(5036),
    [sym_throw] = ACTIONS(5036),
    [sym_try] = ACTIONS(5036),
    [sym_typeid] = ACTIONS(5036),
    [sym_typeof] = ACTIONS(5036),
    [sym_union] = ACTIONS(5036),
    [sym_unittest] = ACTIONS(5036),
    [sym_version] = ACTIONS(5036),
    [sym_while] = ACTIONS(5036),
    [sym_with] = ACTIONS(5036),
    [sym_gshared] = ACTIONS(5036),
    [sym_traits] = ACTIONS(5036),
    [sym_vector] = ACTIONS(5036),
    [sym_void] = ACTIONS(5036),
    [anon_sym_BQUOTE] = ACTIONS(5038),
    [anon_sym_r_DQUOTE] = ACTIONS(5038),
    [anon_sym_x_DQUOTE] = ACTIONS(5038),
    [anon_sym_DQUOTE] = ACTIONS(5038),
    [anon_sym_i_BQUOTE] = ACTIONS(5038),
    [anon_sym_i_DQUOTE] = ACTIONS(5038),
    [anon_sym_iq_LBRACE] = ACTIONS(5038),
    [aux_sym_char_literal_token1] = ACTIONS(5038),
    [anon_sym_SQUOTE] = ACTIONS(5036),
    [anon_sym___DATE__] = ACTIONS(5036),
    [anon_sym___FILE__] = ACTIONS(5036),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5036),
    [anon_sym___FUNCTION__] = ACTIONS(5036),
    [anon_sym___LINE__] = ACTIONS(5036),
    [anon_sym___MODULE__] = ACTIONS(5036),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5036),
    [anon_sym___TIME__] = ACTIONS(5036),
    [anon_sym___TIMESTAMP__] = ACTIONS(5036),
    [anon_sym___VENDOR__] = ACTIONS(5036),
    [anon_sym___VERSION__] = ACTIONS(5036),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5038),
    [sym_float_literal] = ACTIONS(5038),
    [sym__string] = ACTIONS(5038),
  },
  [1703] = {
    [sym_identifier] = ACTIONS(4434),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4436),
    [anon_sym_RBRACE] = ACTIONS(4436),
    [anon_sym_LBRACE] = ACTIONS(4436),
    [anon_sym_DOT] = ACTIONS(4436),
    [anon_sym_AMP] = ACTIONS(4436),
    [anon_sym_DASH] = ACTIONS(4434),
    [anon_sym_DASH_DASH] = ACTIONS(4436),
    [anon_sym_PLUS] = ACTIONS(4434),
    [anon_sym_PLUS_PLUS] = ACTIONS(4436),
    [anon_sym_BANG] = ACTIONS(4436),
    [anon_sym_LPAREN] = ACTIONS(4436),
    [anon_sym_RPAREN] = ACTIONS(4436),
    [anon_sym_LBRACK] = ACTIONS(4436),
    [anon_sym_SEMI] = ACTIONS(4436),
    [anon_sym_DOLLAR] = ACTIONS(4436),
    [anon_sym_STAR] = ACTIONS(4436),
    [anon_sym_TILDE] = ACTIONS(4436),
    [anon_sym_AT] = ACTIONS(4436),
    [sym_bool] = ACTIONS(4434),
    [sym_byte] = ACTIONS(4434),
    [sym_ubyte] = ACTIONS(4434),
    [sym_char] = ACTIONS(4434),
    [sym_short] = ACTIONS(4434),
    [sym_ushort] = ACTIONS(4434),
    [sym_int] = ACTIONS(4434),
    [sym_uint] = ACTIONS(4434),
    [sym_long] = ACTIONS(4434),
    [sym_ulong] = ACTIONS(4434),
    [sym_cent] = ACTIONS(4434),
    [sym_ucent] = ACTIONS(4434),
    [sym_wchar] = ACTIONS(4434),
    [sym_dchar] = ACTIONS(4434),
    [sym_float] = ACTIONS(4434),
    [sym_double] = ACTIONS(4434),
    [sym_real] = ACTIONS(4434),
    [sym_ifloat] = ACTIONS(4434),
    [sym_idouble] = ACTIONS(4434),
    [sym_ireal] = ACTIONS(4434),
    [sym_cfloat] = ACTIONS(4434),
    [sym_cdouble] = ACTIONS(4434),
    [sym_creal] = ACTIONS(4434),
    [sym_size_t] = ACTIONS(4434),
    [sym_ptrdiff_t] = ACTIONS(4434),
    [sym_string] = ACTIONS(4434),
    [sym_cstring] = ACTIONS(4434),
    [sym_dstring] = ACTIONS(4434),
    [sym_wstring] = ACTIONS(4434),
    [sym_noreturn] = ACTIONS(4434),
    [sym_true] = ACTIONS(4434),
    [sym_false] = ACTIONS(4434),
    [sym_null] = ACTIONS(4434),
    [sym_super] = ACTIONS(4434),
    [sym_this] = ACTIONS(4434),
    [sym_abstract] = ACTIONS(4434),
    [sym_alias] = ACTIONS(4434),
    [sym_align] = ACTIONS(4434),
    [sym_asm] = ACTIONS(4434),
    [sym_assert] = ACTIONS(4434),
    [sym_auto] = ACTIONS(4434),
    [sym_break] = ACTIONS(4434),
    [sym_case] = ACTIONS(4434),
    [sym_cast] = ACTIONS(4434),
    [sym_class] = ACTIONS(4434),
    [sym_const] = ACTIONS(4434),
    [sym_continue] = ACTIONS(4434),
    [sym_debug] = ACTIONS(4434),
    [sym_default] = ACTIONS(4434),
    [sym_delegate] = ACTIONS(4434),
    [sym_delete] = ACTIONS(4434),
    [sym_deprecated] = ACTIONS(4434),
    [sym_do] = ACTIONS(4434),
    [sym_else] = ACTIONS(4434),
    [sym_enum] = ACTIONS(4434),
    [sym_export] = ACTIONS(4434),
    [sym_extern] = ACTIONS(4434),
    [sym_final] = ACTIONS(4434),
    [sym_for] = ACTIONS(4434),
    [sym_foreach] = ACTIONS(4434),
    [sym_foreach_reverse] = ACTIONS(4434),
    [sym_function] = ACTIONS(4434),
    [sym_goto] = ACTIONS(4434),
    [sym_if] = ACTIONS(4434),
    [sym_immutable] = ACTIONS(4434),
    [sym_import] = ACTIONS(4434),
    [sym_in] = ACTIONS(4434),
    [sym_inout] = ACTIONS(4434),
    [sym_interface] = ACTIONS(4434),
    [sym_invariant] = ACTIONS(4434),
    [sym_is] = ACTIONS(4434),
    [sym_mixin] = ACTIONS(4434),
    [sym_new] = ACTIONS(4434),
    [sym_nothrow] = ACTIONS(4434),
    [sym_out] = ACTIONS(4434),
    [sym_override] = ACTIONS(4434),
    [sym_package] = ACTIONS(4434),
    [sym_pragma] = ACTIONS(4434),
    [sym_private] = ACTIONS(4434),
    [sym_protected] = ACTIONS(4434),
    [sym_public] = ACTIONS(4434),
    [sym_pure] = ACTIONS(4434),
    [sym_ref] = ACTIONS(4434),
    [sym_return] = ACTIONS(4434),
    [sym_scope] = ACTIONS(4434),
    [sym_shared] = ACTIONS(4434),
    [sym_static] = ACTIONS(4434),
    [sym_struct] = ACTIONS(4434),
    [sym_switch] = ACTIONS(4434),
    [sym_synchronized] = ACTIONS(4434),
    [sym_template] = ACTIONS(4434),
    [sym_throw] = ACTIONS(4434),
    [sym_try] = ACTIONS(4434),
    [sym_typeid] = ACTIONS(4434),
    [sym_typeof] = ACTIONS(4434),
    [sym_union] = ACTIONS(4434),
    [sym_unittest] = ACTIONS(4434),
    [sym_version] = ACTIONS(4434),
    [sym_while] = ACTIONS(4434),
    [sym_with] = ACTIONS(4434),
    [sym_gshared] = ACTIONS(4434),
    [sym_traits] = ACTIONS(4434),
    [sym_vector] = ACTIONS(4434),
    [sym_void] = ACTIONS(4434),
    [anon_sym_BQUOTE] = ACTIONS(4436),
    [anon_sym_r_DQUOTE] = ACTIONS(4436),
    [anon_sym_x_DQUOTE] = ACTIONS(4436),
    [anon_sym_DQUOTE] = ACTIONS(4436),
    [anon_sym_i_BQUOTE] = ACTIONS(4436),
    [anon_sym_i_DQUOTE] = ACTIONS(4436),
    [anon_sym_iq_LBRACE] = ACTIONS(4436),
    [aux_sym_char_literal_token1] = ACTIONS(4436),
    [anon_sym_SQUOTE] = ACTIONS(4434),
    [anon_sym___DATE__] = ACTIONS(4434),
    [anon_sym___FILE__] = ACTIONS(4434),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4434),
    [anon_sym___FUNCTION__] = ACTIONS(4434),
    [anon_sym___LINE__] = ACTIONS(4434),
    [anon_sym___MODULE__] = ACTIONS(4434),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4434),
    [anon_sym___TIME__] = ACTIONS(4434),
    [anon_sym___TIMESTAMP__] = ACTIONS(4434),
    [anon_sym___VENDOR__] = ACTIONS(4434),
    [anon_sym___VERSION__] = ACTIONS(4434),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4436),
    [sym_float_literal] = ACTIONS(4436),
    [sym__string] = ACTIONS(4436),
  },
  [1704] = {
    [sym_identifier] = ACTIONS(4406),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4408),
    [anon_sym_RBRACE] = ACTIONS(4408),
    [anon_sym_LBRACE] = ACTIONS(4408),
    [anon_sym_DOT] = ACTIONS(4408),
    [anon_sym_AMP] = ACTIONS(4408),
    [anon_sym_DASH] = ACTIONS(4406),
    [anon_sym_DASH_DASH] = ACTIONS(4408),
    [anon_sym_PLUS] = ACTIONS(4406),
    [anon_sym_PLUS_PLUS] = ACTIONS(4408),
    [anon_sym_BANG] = ACTIONS(4408),
    [anon_sym_LPAREN] = ACTIONS(4408),
    [anon_sym_RPAREN] = ACTIONS(4408),
    [anon_sym_LBRACK] = ACTIONS(4408),
    [anon_sym_SEMI] = ACTIONS(4408),
    [anon_sym_DOLLAR] = ACTIONS(4408),
    [anon_sym_STAR] = ACTIONS(4408),
    [anon_sym_TILDE] = ACTIONS(4408),
    [anon_sym_AT] = ACTIONS(4408),
    [sym_bool] = ACTIONS(4406),
    [sym_byte] = ACTIONS(4406),
    [sym_ubyte] = ACTIONS(4406),
    [sym_char] = ACTIONS(4406),
    [sym_short] = ACTIONS(4406),
    [sym_ushort] = ACTIONS(4406),
    [sym_int] = ACTIONS(4406),
    [sym_uint] = ACTIONS(4406),
    [sym_long] = ACTIONS(4406),
    [sym_ulong] = ACTIONS(4406),
    [sym_cent] = ACTIONS(4406),
    [sym_ucent] = ACTIONS(4406),
    [sym_wchar] = ACTIONS(4406),
    [sym_dchar] = ACTIONS(4406),
    [sym_float] = ACTIONS(4406),
    [sym_double] = ACTIONS(4406),
    [sym_real] = ACTIONS(4406),
    [sym_ifloat] = ACTIONS(4406),
    [sym_idouble] = ACTIONS(4406),
    [sym_ireal] = ACTIONS(4406),
    [sym_cfloat] = ACTIONS(4406),
    [sym_cdouble] = ACTIONS(4406),
    [sym_creal] = ACTIONS(4406),
    [sym_size_t] = ACTIONS(4406),
    [sym_ptrdiff_t] = ACTIONS(4406),
    [sym_string] = ACTIONS(4406),
    [sym_cstring] = ACTIONS(4406),
    [sym_dstring] = ACTIONS(4406),
    [sym_wstring] = ACTIONS(4406),
    [sym_noreturn] = ACTIONS(4406),
    [sym_true] = ACTIONS(4406),
    [sym_false] = ACTIONS(4406),
    [sym_null] = ACTIONS(4406),
    [sym_super] = ACTIONS(4406),
    [sym_this] = ACTIONS(4406),
    [sym_abstract] = ACTIONS(4406),
    [sym_alias] = ACTIONS(4406),
    [sym_align] = ACTIONS(4406),
    [sym_asm] = ACTIONS(4406),
    [sym_assert] = ACTIONS(4406),
    [sym_auto] = ACTIONS(4406),
    [sym_break] = ACTIONS(4406),
    [sym_case] = ACTIONS(4406),
    [sym_cast] = ACTIONS(4406),
    [sym_class] = ACTIONS(4406),
    [sym_const] = ACTIONS(4406),
    [sym_continue] = ACTIONS(4406),
    [sym_debug] = ACTIONS(4406),
    [sym_default] = ACTIONS(4406),
    [sym_delegate] = ACTIONS(4406),
    [sym_delete] = ACTIONS(4406),
    [sym_deprecated] = ACTIONS(4406),
    [sym_do] = ACTIONS(4406),
    [sym_else] = ACTIONS(4406),
    [sym_enum] = ACTIONS(4406),
    [sym_export] = ACTIONS(4406),
    [sym_extern] = ACTIONS(4406),
    [sym_final] = ACTIONS(4406),
    [sym_for] = ACTIONS(4406),
    [sym_foreach] = ACTIONS(4406),
    [sym_foreach_reverse] = ACTIONS(4406),
    [sym_function] = ACTIONS(4406),
    [sym_goto] = ACTIONS(4406),
    [sym_if] = ACTIONS(4406),
    [sym_immutable] = ACTIONS(4406),
    [sym_import] = ACTIONS(4406),
    [sym_in] = ACTIONS(4406),
    [sym_inout] = ACTIONS(4406),
    [sym_interface] = ACTIONS(4406),
    [sym_invariant] = ACTIONS(4406),
    [sym_is] = ACTIONS(4406),
    [sym_mixin] = ACTIONS(4406),
    [sym_new] = ACTIONS(4406),
    [sym_nothrow] = ACTIONS(4406),
    [sym_out] = ACTIONS(4406),
    [sym_override] = ACTIONS(4406),
    [sym_package] = ACTIONS(4406),
    [sym_pragma] = ACTIONS(4406),
    [sym_private] = ACTIONS(4406),
    [sym_protected] = ACTIONS(4406),
    [sym_public] = ACTIONS(4406),
    [sym_pure] = ACTIONS(4406),
    [sym_ref] = ACTIONS(4406),
    [sym_return] = ACTIONS(4406),
    [sym_scope] = ACTIONS(4406),
    [sym_shared] = ACTIONS(4406),
    [sym_static] = ACTIONS(4406),
    [sym_struct] = ACTIONS(4406),
    [sym_switch] = ACTIONS(4406),
    [sym_synchronized] = ACTIONS(4406),
    [sym_template] = ACTIONS(4406),
    [sym_throw] = ACTIONS(4406),
    [sym_try] = ACTIONS(4406),
    [sym_typeid] = ACTIONS(4406),
    [sym_typeof] = ACTIONS(4406),
    [sym_union] = ACTIONS(4406),
    [sym_unittest] = ACTIONS(4406),
    [sym_version] = ACTIONS(4406),
    [sym_while] = ACTIONS(4406),
    [sym_with] = ACTIONS(4406),
    [sym_gshared] = ACTIONS(4406),
    [sym_traits] = ACTIONS(4406),
    [sym_vector] = ACTIONS(4406),
    [sym_void] = ACTIONS(4406),
    [anon_sym_BQUOTE] = ACTIONS(4408),
    [anon_sym_r_DQUOTE] = ACTIONS(4408),
    [anon_sym_x_DQUOTE] = ACTIONS(4408),
    [anon_sym_DQUOTE] = ACTIONS(4408),
    [anon_sym_i_BQUOTE] = ACTIONS(4408),
    [anon_sym_i_DQUOTE] = ACTIONS(4408),
    [anon_sym_iq_LBRACE] = ACTIONS(4408),
    [aux_sym_char_literal_token1] = ACTIONS(4408),
    [anon_sym_SQUOTE] = ACTIONS(4406),
    [anon_sym___DATE__] = ACTIONS(4406),
    [anon_sym___FILE__] = ACTIONS(4406),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4406),
    [anon_sym___FUNCTION__] = ACTIONS(4406),
    [anon_sym___LINE__] = ACTIONS(4406),
    [anon_sym___MODULE__] = ACTIONS(4406),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4406),
    [anon_sym___TIME__] = ACTIONS(4406),
    [anon_sym___TIMESTAMP__] = ACTIONS(4406),
    [anon_sym___VENDOR__] = ACTIONS(4406),
    [anon_sym___VERSION__] = ACTIONS(4406),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4408),
    [sym_float_literal] = ACTIONS(4408),
    [sym__string] = ACTIONS(4408),
  },
  [1705] = {
    [sym_identifier] = ACTIONS(4932),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4934),
    [anon_sym_RBRACE] = ACTIONS(4934),
    [anon_sym_LBRACE] = ACTIONS(4934),
    [anon_sym_DOT] = ACTIONS(4934),
    [anon_sym_AMP] = ACTIONS(4934),
    [anon_sym_DASH] = ACTIONS(4932),
    [anon_sym_DASH_DASH] = ACTIONS(4934),
    [anon_sym_PLUS] = ACTIONS(4932),
    [anon_sym_PLUS_PLUS] = ACTIONS(4934),
    [anon_sym_BANG] = ACTIONS(4934),
    [anon_sym_LPAREN] = ACTIONS(4934),
    [anon_sym_RPAREN] = ACTIONS(4934),
    [anon_sym_LBRACK] = ACTIONS(4934),
    [anon_sym_SEMI] = ACTIONS(4934),
    [anon_sym_DOLLAR] = ACTIONS(4934),
    [anon_sym_STAR] = ACTIONS(4934),
    [anon_sym_TILDE] = ACTIONS(4934),
    [anon_sym_AT] = ACTIONS(4934),
    [sym_bool] = ACTIONS(4932),
    [sym_byte] = ACTIONS(4932),
    [sym_ubyte] = ACTIONS(4932),
    [sym_char] = ACTIONS(4932),
    [sym_short] = ACTIONS(4932),
    [sym_ushort] = ACTIONS(4932),
    [sym_int] = ACTIONS(4932),
    [sym_uint] = ACTIONS(4932),
    [sym_long] = ACTIONS(4932),
    [sym_ulong] = ACTIONS(4932),
    [sym_cent] = ACTIONS(4932),
    [sym_ucent] = ACTIONS(4932),
    [sym_wchar] = ACTIONS(4932),
    [sym_dchar] = ACTIONS(4932),
    [sym_float] = ACTIONS(4932),
    [sym_double] = ACTIONS(4932),
    [sym_real] = ACTIONS(4932),
    [sym_ifloat] = ACTIONS(4932),
    [sym_idouble] = ACTIONS(4932),
    [sym_ireal] = ACTIONS(4932),
    [sym_cfloat] = ACTIONS(4932),
    [sym_cdouble] = ACTIONS(4932),
    [sym_creal] = ACTIONS(4932),
    [sym_size_t] = ACTIONS(4932),
    [sym_ptrdiff_t] = ACTIONS(4932),
    [sym_string] = ACTIONS(4932),
    [sym_cstring] = ACTIONS(4932),
    [sym_dstring] = ACTIONS(4932),
    [sym_wstring] = ACTIONS(4932),
    [sym_noreturn] = ACTIONS(4932),
    [sym_true] = ACTIONS(4932),
    [sym_false] = ACTIONS(4932),
    [sym_null] = ACTIONS(4932),
    [sym_super] = ACTIONS(4932),
    [sym_this] = ACTIONS(4932),
    [sym_abstract] = ACTIONS(4932),
    [sym_alias] = ACTIONS(4932),
    [sym_align] = ACTIONS(4932),
    [sym_asm] = ACTIONS(4932),
    [sym_assert] = ACTIONS(4932),
    [sym_auto] = ACTIONS(4932),
    [sym_break] = ACTIONS(4932),
    [sym_case] = ACTIONS(4932),
    [sym_cast] = ACTIONS(4932),
    [sym_class] = ACTIONS(4932),
    [sym_const] = ACTIONS(4932),
    [sym_continue] = ACTIONS(4932),
    [sym_debug] = ACTIONS(4932),
    [sym_default] = ACTIONS(4932),
    [sym_delegate] = ACTIONS(4932),
    [sym_delete] = ACTIONS(4932),
    [sym_deprecated] = ACTIONS(4932),
    [sym_do] = ACTIONS(4932),
    [sym_else] = ACTIONS(4932),
    [sym_enum] = ACTIONS(4932),
    [sym_export] = ACTIONS(4932),
    [sym_extern] = ACTIONS(4932),
    [sym_final] = ACTIONS(4932),
    [sym_for] = ACTIONS(4932),
    [sym_foreach] = ACTIONS(4932),
    [sym_foreach_reverse] = ACTIONS(4932),
    [sym_function] = ACTIONS(4932),
    [sym_goto] = ACTIONS(4932),
    [sym_if] = ACTIONS(4932),
    [sym_immutable] = ACTIONS(4932),
    [sym_import] = ACTIONS(4932),
    [sym_in] = ACTIONS(4932),
    [sym_inout] = ACTIONS(4932),
    [sym_interface] = ACTIONS(4932),
    [sym_invariant] = ACTIONS(4932),
    [sym_is] = ACTIONS(4932),
    [sym_mixin] = ACTIONS(4932),
    [sym_new] = ACTIONS(4932),
    [sym_nothrow] = ACTIONS(4932),
    [sym_out] = ACTIONS(4932),
    [sym_override] = ACTIONS(4932),
    [sym_package] = ACTIONS(4932),
    [sym_pragma] = ACTIONS(4932),
    [sym_private] = ACTIONS(4932),
    [sym_protected] = ACTIONS(4932),
    [sym_public] = ACTIONS(4932),
    [sym_pure] = ACTIONS(4932),
    [sym_ref] = ACTIONS(4932),
    [sym_return] = ACTIONS(4932),
    [sym_scope] = ACTIONS(4932),
    [sym_shared] = ACTIONS(4932),
    [sym_static] = ACTIONS(4932),
    [sym_struct] = ACTIONS(4932),
    [sym_switch] = ACTIONS(4932),
    [sym_synchronized] = ACTIONS(4932),
    [sym_template] = ACTIONS(4932),
    [sym_throw] = ACTIONS(4932),
    [sym_try] = ACTIONS(4932),
    [sym_typeid] = ACTIONS(4932),
    [sym_typeof] = ACTIONS(4932),
    [sym_union] = ACTIONS(4932),
    [sym_unittest] = ACTIONS(4932),
    [sym_version] = ACTIONS(4932),
    [sym_while] = ACTIONS(4932),
    [sym_with] = ACTIONS(4932),
    [sym_gshared] = ACTIONS(4932),
    [sym_traits] = ACTIONS(4932),
    [sym_vector] = ACTIONS(4932),
    [sym_void] = ACTIONS(4932),
    [anon_sym_BQUOTE] = ACTIONS(4934),
    [anon_sym_r_DQUOTE] = ACTIONS(4934),
    [anon_sym_x_DQUOTE] = ACTIONS(4934),
    [anon_sym_DQUOTE] = ACTIONS(4934),
    [anon_sym_i_BQUOTE] = ACTIONS(4934),
    [anon_sym_i_DQUOTE] = ACTIONS(4934),
    [anon_sym_iq_LBRACE] = ACTIONS(4934),
    [aux_sym_char_literal_token1] = ACTIONS(4934),
    [anon_sym_SQUOTE] = ACTIONS(4932),
    [anon_sym___DATE__] = ACTIONS(4932),
    [anon_sym___FILE__] = ACTIONS(4932),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4932),
    [anon_sym___FUNCTION__] = ACTIONS(4932),
    [anon_sym___LINE__] = ACTIONS(4932),
    [anon_sym___MODULE__] = ACTIONS(4932),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4932),
    [anon_sym___TIME__] = ACTIONS(4932),
    [anon_sym___TIMESTAMP__] = ACTIONS(4932),
    [anon_sym___VENDOR__] = ACTIONS(4932),
    [anon_sym___VERSION__] = ACTIONS(4932),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4934),
    [sym_float_literal] = ACTIONS(4934),
    [sym__string] = ACTIONS(4934),
  },
  [1706] = {
    [sym_identifier] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2782),
    [anon_sym_RBRACE] = ACTIONS(2782),
    [anon_sym_LBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(2782),
    [anon_sym_AMP] = ACTIONS(2782),
    [anon_sym_DASH] = ACTIONS(2784),
    [anon_sym_DASH_DASH] = ACTIONS(2782),
    [anon_sym_PLUS] = ACTIONS(2784),
    [anon_sym_PLUS_PLUS] = ACTIONS(2782),
    [anon_sym_BANG] = ACTIONS(2782),
    [anon_sym_LPAREN] = ACTIONS(2782),
    [anon_sym_RPAREN] = ACTIONS(2782),
    [anon_sym_LBRACK] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2782),
    [anon_sym_DOLLAR] = ACTIONS(2782),
    [anon_sym_STAR] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2782),
    [anon_sym_AT] = ACTIONS(2782),
    [sym_bool] = ACTIONS(2784),
    [sym_byte] = ACTIONS(2784),
    [sym_ubyte] = ACTIONS(2784),
    [sym_char] = ACTIONS(2784),
    [sym_short] = ACTIONS(2784),
    [sym_ushort] = ACTIONS(2784),
    [sym_int] = ACTIONS(2784),
    [sym_uint] = ACTIONS(2784),
    [sym_long] = ACTIONS(2784),
    [sym_ulong] = ACTIONS(2784),
    [sym_cent] = ACTIONS(2784),
    [sym_ucent] = ACTIONS(2784),
    [sym_wchar] = ACTIONS(2784),
    [sym_dchar] = ACTIONS(2784),
    [sym_float] = ACTIONS(2784),
    [sym_double] = ACTIONS(2784),
    [sym_real] = ACTIONS(2784),
    [sym_ifloat] = ACTIONS(2784),
    [sym_idouble] = ACTIONS(2784),
    [sym_ireal] = ACTIONS(2784),
    [sym_cfloat] = ACTIONS(2784),
    [sym_cdouble] = ACTIONS(2784),
    [sym_creal] = ACTIONS(2784),
    [sym_size_t] = ACTIONS(2784),
    [sym_ptrdiff_t] = ACTIONS(2784),
    [sym_string] = ACTIONS(2784),
    [sym_cstring] = ACTIONS(2784),
    [sym_dstring] = ACTIONS(2784),
    [sym_wstring] = ACTIONS(2784),
    [sym_noreturn] = ACTIONS(2784),
    [sym_true] = ACTIONS(2784),
    [sym_false] = ACTIONS(2784),
    [sym_null] = ACTIONS(2784),
    [sym_super] = ACTIONS(2784),
    [sym_this] = ACTIONS(2784),
    [sym_abstract] = ACTIONS(2784),
    [sym_alias] = ACTIONS(2784),
    [sym_align] = ACTIONS(2784),
    [sym_asm] = ACTIONS(2784),
    [sym_assert] = ACTIONS(2784),
    [sym_auto] = ACTIONS(2784),
    [sym_break] = ACTIONS(2784),
    [sym_case] = ACTIONS(2784),
    [sym_cast] = ACTIONS(2784),
    [sym_class] = ACTIONS(2784),
    [sym_const] = ACTIONS(2784),
    [sym_continue] = ACTIONS(2784),
    [sym_debug] = ACTIONS(2784),
    [sym_default] = ACTIONS(2784),
    [sym_delegate] = ACTIONS(2784),
    [sym_delete] = ACTIONS(2784),
    [sym_deprecated] = ACTIONS(2784),
    [sym_do] = ACTIONS(2784),
    [sym_else] = ACTIONS(5109),
    [sym_enum] = ACTIONS(2784),
    [sym_export] = ACTIONS(2784),
    [sym_extern] = ACTIONS(2784),
    [sym_final] = ACTIONS(2784),
    [sym_for] = ACTIONS(2784),
    [sym_foreach] = ACTIONS(2784),
    [sym_foreach_reverse] = ACTIONS(2784),
    [sym_function] = ACTIONS(2784),
    [sym_goto] = ACTIONS(2784),
    [sym_if] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(2784),
    [sym_import] = ACTIONS(2784),
    [sym_in] = ACTIONS(2784),
    [sym_inout] = ACTIONS(2784),
    [sym_interface] = ACTIONS(2784),
    [sym_invariant] = ACTIONS(2784),
    [sym_is] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2784),
    [sym_new] = ACTIONS(2784),
    [sym_nothrow] = ACTIONS(2784),
    [sym_out] = ACTIONS(2784),
    [sym_override] = ACTIONS(2784),
    [sym_package] = ACTIONS(2784),
    [sym_pragma] = ACTIONS(2784),
    [sym_private] = ACTIONS(2784),
    [sym_protected] = ACTIONS(2784),
    [sym_public] = ACTIONS(2784),
    [sym_pure] = ACTIONS(2784),
    [sym_ref] = ACTIONS(2784),
    [sym_return] = ACTIONS(2784),
    [sym_scope] = ACTIONS(2784),
    [sym_shared] = ACTIONS(2784),
    [sym_static] = ACTIONS(2784),
    [sym_struct] = ACTIONS(2784),
    [sym_switch] = ACTIONS(2784),
    [sym_synchronized] = ACTIONS(2784),
    [sym_template] = ACTIONS(2784),
    [sym_throw] = ACTIONS(2784),
    [sym_try] = ACTIONS(2784),
    [sym_typeid] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(2784),
    [sym_union] = ACTIONS(2784),
    [sym_unittest] = ACTIONS(2784),
    [sym_version] = ACTIONS(2784),
    [sym_while] = ACTIONS(2784),
    [sym_with] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(2784),
    [sym_traits] = ACTIONS(2784),
    [sym_vector] = ACTIONS(2784),
    [sym_void] = ACTIONS(2784),
    [anon_sym_BQUOTE] = ACTIONS(2782),
    [anon_sym_r_DQUOTE] = ACTIONS(2782),
    [anon_sym_x_DQUOTE] = ACTIONS(2782),
    [anon_sym_DQUOTE] = ACTIONS(2782),
    [anon_sym_i_BQUOTE] = ACTIONS(2782),
    [anon_sym_i_DQUOTE] = ACTIONS(2782),
    [anon_sym_iq_LBRACE] = ACTIONS(2782),
    [aux_sym_char_literal_token1] = ACTIONS(2782),
    [anon_sym_SQUOTE] = ACTIONS(2784),
    [anon_sym___DATE__] = ACTIONS(2784),
    [anon_sym___FILE__] = ACTIONS(2784),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2784),
    [anon_sym___FUNCTION__] = ACTIONS(2784),
    [anon_sym___LINE__] = ACTIONS(2784),
    [anon_sym___MODULE__] = ACTIONS(2784),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2784),
    [anon_sym___TIME__] = ACTIONS(2784),
    [anon_sym___TIMESTAMP__] = ACTIONS(2784),
    [anon_sym___VENDOR__] = ACTIONS(2784),
    [anon_sym___VERSION__] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2782),
    [sym_float_literal] = ACTIONS(2782),
    [sym__string] = ACTIONS(2782),
  },
  [1707] = {
    [sym_identifier] = ACTIONS(4410),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4412),
    [anon_sym_RBRACE] = ACTIONS(4412),
    [anon_sym_LBRACE] = ACTIONS(4412),
    [anon_sym_DOT] = ACTIONS(4412),
    [anon_sym_AMP] = ACTIONS(4412),
    [anon_sym_DASH] = ACTIONS(4410),
    [anon_sym_DASH_DASH] = ACTIONS(4412),
    [anon_sym_PLUS] = ACTIONS(4410),
    [anon_sym_PLUS_PLUS] = ACTIONS(4412),
    [anon_sym_BANG] = ACTIONS(4412),
    [anon_sym_LPAREN] = ACTIONS(4412),
    [anon_sym_RPAREN] = ACTIONS(4412),
    [anon_sym_LBRACK] = ACTIONS(4412),
    [anon_sym_SEMI] = ACTIONS(4412),
    [anon_sym_DOLLAR] = ACTIONS(4412),
    [anon_sym_STAR] = ACTIONS(4412),
    [anon_sym_TILDE] = ACTIONS(4412),
    [anon_sym_AT] = ACTIONS(4412),
    [sym_bool] = ACTIONS(4410),
    [sym_byte] = ACTIONS(4410),
    [sym_ubyte] = ACTIONS(4410),
    [sym_char] = ACTIONS(4410),
    [sym_short] = ACTIONS(4410),
    [sym_ushort] = ACTIONS(4410),
    [sym_int] = ACTIONS(4410),
    [sym_uint] = ACTIONS(4410),
    [sym_long] = ACTIONS(4410),
    [sym_ulong] = ACTIONS(4410),
    [sym_cent] = ACTIONS(4410),
    [sym_ucent] = ACTIONS(4410),
    [sym_wchar] = ACTIONS(4410),
    [sym_dchar] = ACTIONS(4410),
    [sym_float] = ACTIONS(4410),
    [sym_double] = ACTIONS(4410),
    [sym_real] = ACTIONS(4410),
    [sym_ifloat] = ACTIONS(4410),
    [sym_idouble] = ACTIONS(4410),
    [sym_ireal] = ACTIONS(4410),
    [sym_cfloat] = ACTIONS(4410),
    [sym_cdouble] = ACTIONS(4410),
    [sym_creal] = ACTIONS(4410),
    [sym_size_t] = ACTIONS(4410),
    [sym_ptrdiff_t] = ACTIONS(4410),
    [sym_string] = ACTIONS(4410),
    [sym_cstring] = ACTIONS(4410),
    [sym_dstring] = ACTIONS(4410),
    [sym_wstring] = ACTIONS(4410),
    [sym_noreturn] = ACTIONS(4410),
    [sym_true] = ACTIONS(4410),
    [sym_false] = ACTIONS(4410),
    [sym_null] = ACTIONS(4410),
    [sym_super] = ACTIONS(4410),
    [sym_this] = ACTIONS(4410),
    [sym_abstract] = ACTIONS(4410),
    [sym_alias] = ACTIONS(4410),
    [sym_align] = ACTIONS(4410),
    [sym_asm] = ACTIONS(4410),
    [sym_assert] = ACTIONS(4410),
    [sym_auto] = ACTIONS(4410),
    [sym_break] = ACTIONS(4410),
    [sym_case] = ACTIONS(4410),
    [sym_cast] = ACTIONS(4410),
    [sym_class] = ACTIONS(4410),
    [sym_const] = ACTIONS(4410),
    [sym_continue] = ACTIONS(4410),
    [sym_debug] = ACTIONS(4410),
    [sym_default] = ACTIONS(4410),
    [sym_delegate] = ACTIONS(4410),
    [sym_delete] = ACTIONS(4410),
    [sym_deprecated] = ACTIONS(4410),
    [sym_do] = ACTIONS(4410),
    [sym_else] = ACTIONS(4410),
    [sym_enum] = ACTIONS(4410),
    [sym_export] = ACTIONS(4410),
    [sym_extern] = ACTIONS(4410),
    [sym_final] = ACTIONS(4410),
    [sym_for] = ACTIONS(4410),
    [sym_foreach] = ACTIONS(4410),
    [sym_foreach_reverse] = ACTIONS(4410),
    [sym_function] = ACTIONS(4410),
    [sym_goto] = ACTIONS(4410),
    [sym_if] = ACTIONS(4410),
    [sym_immutable] = ACTIONS(4410),
    [sym_import] = ACTIONS(4410),
    [sym_in] = ACTIONS(4410),
    [sym_inout] = ACTIONS(4410),
    [sym_interface] = ACTIONS(4410),
    [sym_invariant] = ACTIONS(4410),
    [sym_is] = ACTIONS(4410),
    [sym_mixin] = ACTIONS(4410),
    [sym_new] = ACTIONS(4410),
    [sym_nothrow] = ACTIONS(4410),
    [sym_out] = ACTIONS(4410),
    [sym_override] = ACTIONS(4410),
    [sym_package] = ACTIONS(4410),
    [sym_pragma] = ACTIONS(4410),
    [sym_private] = ACTIONS(4410),
    [sym_protected] = ACTIONS(4410),
    [sym_public] = ACTIONS(4410),
    [sym_pure] = ACTIONS(4410),
    [sym_ref] = ACTIONS(4410),
    [sym_return] = ACTIONS(4410),
    [sym_scope] = ACTIONS(4410),
    [sym_shared] = ACTIONS(4410),
    [sym_static] = ACTIONS(4410),
    [sym_struct] = ACTIONS(4410),
    [sym_switch] = ACTIONS(4410),
    [sym_synchronized] = ACTIONS(4410),
    [sym_template] = ACTIONS(4410),
    [sym_throw] = ACTIONS(4410),
    [sym_try] = ACTIONS(4410),
    [sym_typeid] = ACTIONS(4410),
    [sym_typeof] = ACTIONS(4410),
    [sym_union] = ACTIONS(4410),
    [sym_unittest] = ACTIONS(4410),
    [sym_version] = ACTIONS(4410),
    [sym_while] = ACTIONS(4410),
    [sym_with] = ACTIONS(4410),
    [sym_gshared] = ACTIONS(4410),
    [sym_traits] = ACTIONS(4410),
    [sym_vector] = ACTIONS(4410),
    [sym_void] = ACTIONS(4410),
    [anon_sym_BQUOTE] = ACTIONS(4412),
    [anon_sym_r_DQUOTE] = ACTIONS(4412),
    [anon_sym_x_DQUOTE] = ACTIONS(4412),
    [anon_sym_DQUOTE] = ACTIONS(4412),
    [anon_sym_i_BQUOTE] = ACTIONS(4412),
    [anon_sym_i_DQUOTE] = ACTIONS(4412),
    [anon_sym_iq_LBRACE] = ACTIONS(4412),
    [aux_sym_char_literal_token1] = ACTIONS(4412),
    [anon_sym_SQUOTE] = ACTIONS(4410),
    [anon_sym___DATE__] = ACTIONS(4410),
    [anon_sym___FILE__] = ACTIONS(4410),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4410),
    [anon_sym___FUNCTION__] = ACTIONS(4410),
    [anon_sym___LINE__] = ACTIONS(4410),
    [anon_sym___MODULE__] = ACTIONS(4410),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4410),
    [anon_sym___TIME__] = ACTIONS(4410),
    [anon_sym___TIMESTAMP__] = ACTIONS(4410),
    [anon_sym___VENDOR__] = ACTIONS(4410),
    [anon_sym___VERSION__] = ACTIONS(4410),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4412),
    [sym_float_literal] = ACTIONS(4412),
    [sym__string] = ACTIONS(4412),
  },
  [1708] = {
    [sym_identifier] = ACTIONS(4398),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4400),
    [anon_sym_RBRACE] = ACTIONS(4400),
    [anon_sym_LBRACE] = ACTIONS(4400),
    [anon_sym_DOT] = ACTIONS(4400),
    [anon_sym_AMP] = ACTIONS(4400),
    [anon_sym_DASH] = ACTIONS(4398),
    [anon_sym_DASH_DASH] = ACTIONS(4400),
    [anon_sym_PLUS] = ACTIONS(4398),
    [anon_sym_PLUS_PLUS] = ACTIONS(4400),
    [anon_sym_BANG] = ACTIONS(4400),
    [anon_sym_LPAREN] = ACTIONS(4400),
    [anon_sym_RPAREN] = ACTIONS(4400),
    [anon_sym_LBRACK] = ACTIONS(4400),
    [anon_sym_SEMI] = ACTIONS(4400),
    [anon_sym_DOLLAR] = ACTIONS(4400),
    [anon_sym_STAR] = ACTIONS(4400),
    [anon_sym_TILDE] = ACTIONS(4400),
    [anon_sym_AT] = ACTIONS(4400),
    [sym_bool] = ACTIONS(4398),
    [sym_byte] = ACTIONS(4398),
    [sym_ubyte] = ACTIONS(4398),
    [sym_char] = ACTIONS(4398),
    [sym_short] = ACTIONS(4398),
    [sym_ushort] = ACTIONS(4398),
    [sym_int] = ACTIONS(4398),
    [sym_uint] = ACTIONS(4398),
    [sym_long] = ACTIONS(4398),
    [sym_ulong] = ACTIONS(4398),
    [sym_cent] = ACTIONS(4398),
    [sym_ucent] = ACTIONS(4398),
    [sym_wchar] = ACTIONS(4398),
    [sym_dchar] = ACTIONS(4398),
    [sym_float] = ACTIONS(4398),
    [sym_double] = ACTIONS(4398),
    [sym_real] = ACTIONS(4398),
    [sym_ifloat] = ACTIONS(4398),
    [sym_idouble] = ACTIONS(4398),
    [sym_ireal] = ACTIONS(4398),
    [sym_cfloat] = ACTIONS(4398),
    [sym_cdouble] = ACTIONS(4398),
    [sym_creal] = ACTIONS(4398),
    [sym_size_t] = ACTIONS(4398),
    [sym_ptrdiff_t] = ACTIONS(4398),
    [sym_string] = ACTIONS(4398),
    [sym_cstring] = ACTIONS(4398),
    [sym_dstring] = ACTIONS(4398),
    [sym_wstring] = ACTIONS(4398),
    [sym_noreturn] = ACTIONS(4398),
    [sym_true] = ACTIONS(4398),
    [sym_false] = ACTIONS(4398),
    [sym_null] = ACTIONS(4398),
    [sym_super] = ACTIONS(4398),
    [sym_this] = ACTIONS(4398),
    [sym_abstract] = ACTIONS(4398),
    [sym_alias] = ACTIONS(4398),
    [sym_align] = ACTIONS(4398),
    [sym_asm] = ACTIONS(4398),
    [sym_assert] = ACTIONS(4398),
    [sym_auto] = ACTIONS(4398),
    [sym_break] = ACTIONS(4398),
    [sym_case] = ACTIONS(4398),
    [sym_cast] = ACTIONS(4398),
    [sym_class] = ACTIONS(4398),
    [sym_const] = ACTIONS(4398),
    [sym_continue] = ACTIONS(4398),
    [sym_debug] = ACTIONS(4398),
    [sym_default] = ACTIONS(4398),
    [sym_delegate] = ACTIONS(4398),
    [sym_delete] = ACTIONS(4398),
    [sym_deprecated] = ACTIONS(4398),
    [sym_do] = ACTIONS(4398),
    [sym_else] = ACTIONS(4398),
    [sym_enum] = ACTIONS(4398),
    [sym_export] = ACTIONS(4398),
    [sym_extern] = ACTIONS(4398),
    [sym_final] = ACTIONS(4398),
    [sym_for] = ACTIONS(4398),
    [sym_foreach] = ACTIONS(4398),
    [sym_foreach_reverse] = ACTIONS(4398),
    [sym_function] = ACTIONS(4398),
    [sym_goto] = ACTIONS(4398),
    [sym_if] = ACTIONS(4398),
    [sym_immutable] = ACTIONS(4398),
    [sym_import] = ACTIONS(4398),
    [sym_in] = ACTIONS(4398),
    [sym_inout] = ACTIONS(4398),
    [sym_interface] = ACTIONS(4398),
    [sym_invariant] = ACTIONS(4398),
    [sym_is] = ACTIONS(4398),
    [sym_mixin] = ACTIONS(4398),
    [sym_new] = ACTIONS(4398),
    [sym_nothrow] = ACTIONS(4398),
    [sym_out] = ACTIONS(4398),
    [sym_override] = ACTIONS(4398),
    [sym_package] = ACTIONS(4398),
    [sym_pragma] = ACTIONS(4398),
    [sym_private] = ACTIONS(4398),
    [sym_protected] = ACTIONS(4398),
    [sym_public] = ACTIONS(4398),
    [sym_pure] = ACTIONS(4398),
    [sym_ref] = ACTIONS(4398),
    [sym_return] = ACTIONS(4398),
    [sym_scope] = ACTIONS(4398),
    [sym_shared] = ACTIONS(4398),
    [sym_static] = ACTIONS(4398),
    [sym_struct] = ACTIONS(4398),
    [sym_switch] = ACTIONS(4398),
    [sym_synchronized] = ACTIONS(4398),
    [sym_template] = ACTIONS(4398),
    [sym_throw] = ACTIONS(4398),
    [sym_try] = ACTIONS(4398),
    [sym_typeid] = ACTIONS(4398),
    [sym_typeof] = ACTIONS(4398),
    [sym_union] = ACTIONS(4398),
    [sym_unittest] = ACTIONS(4398),
    [sym_version] = ACTIONS(4398),
    [sym_while] = ACTIONS(4398),
    [sym_with] = ACTIONS(4398),
    [sym_gshared] = ACTIONS(4398),
    [sym_traits] = ACTIONS(4398),
    [sym_vector] = ACTIONS(4398),
    [sym_void] = ACTIONS(4398),
    [anon_sym_BQUOTE] = ACTIONS(4400),
    [anon_sym_r_DQUOTE] = ACTIONS(4400),
    [anon_sym_x_DQUOTE] = ACTIONS(4400),
    [anon_sym_DQUOTE] = ACTIONS(4400),
    [anon_sym_i_BQUOTE] = ACTIONS(4400),
    [anon_sym_i_DQUOTE] = ACTIONS(4400),
    [anon_sym_iq_LBRACE] = ACTIONS(4400),
    [aux_sym_char_literal_token1] = ACTIONS(4400),
    [anon_sym_SQUOTE] = ACTIONS(4398),
    [anon_sym___DATE__] = ACTIONS(4398),
    [anon_sym___FILE__] = ACTIONS(4398),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4398),
    [anon_sym___FUNCTION__] = ACTIONS(4398),
    [anon_sym___LINE__] = ACTIONS(4398),
    [anon_sym___MODULE__] = ACTIONS(4398),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4398),
    [anon_sym___TIME__] = ACTIONS(4398),
    [anon_sym___TIMESTAMP__] = ACTIONS(4398),
    [anon_sym___VENDOR__] = ACTIONS(4398),
    [anon_sym___VERSION__] = ACTIONS(4398),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4400),
    [sym_float_literal] = ACTIONS(4400),
    [sym__string] = ACTIONS(4400),
  },
  [1709] = {
    [sym_identifier] = ACTIONS(4876),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4878),
    [anon_sym_RBRACE] = ACTIONS(4878),
    [anon_sym_LBRACE] = ACTIONS(4878),
    [anon_sym_DOT] = ACTIONS(4878),
    [anon_sym_AMP] = ACTIONS(4878),
    [anon_sym_DASH] = ACTIONS(4876),
    [anon_sym_DASH_DASH] = ACTIONS(4878),
    [anon_sym_PLUS] = ACTIONS(4876),
    [anon_sym_PLUS_PLUS] = ACTIONS(4878),
    [anon_sym_BANG] = ACTIONS(4878),
    [anon_sym_LPAREN] = ACTIONS(4878),
    [anon_sym_RPAREN] = ACTIONS(4878),
    [anon_sym_LBRACK] = ACTIONS(4878),
    [anon_sym_SEMI] = ACTIONS(4878),
    [anon_sym_DOLLAR] = ACTIONS(4878),
    [anon_sym_STAR] = ACTIONS(4878),
    [anon_sym_TILDE] = ACTIONS(4878),
    [anon_sym_AT] = ACTIONS(4878),
    [sym_bool] = ACTIONS(4876),
    [sym_byte] = ACTIONS(4876),
    [sym_ubyte] = ACTIONS(4876),
    [sym_char] = ACTIONS(4876),
    [sym_short] = ACTIONS(4876),
    [sym_ushort] = ACTIONS(4876),
    [sym_int] = ACTIONS(4876),
    [sym_uint] = ACTIONS(4876),
    [sym_long] = ACTIONS(4876),
    [sym_ulong] = ACTIONS(4876),
    [sym_cent] = ACTIONS(4876),
    [sym_ucent] = ACTIONS(4876),
    [sym_wchar] = ACTIONS(4876),
    [sym_dchar] = ACTIONS(4876),
    [sym_float] = ACTIONS(4876),
    [sym_double] = ACTIONS(4876),
    [sym_real] = ACTIONS(4876),
    [sym_ifloat] = ACTIONS(4876),
    [sym_idouble] = ACTIONS(4876),
    [sym_ireal] = ACTIONS(4876),
    [sym_cfloat] = ACTIONS(4876),
    [sym_cdouble] = ACTIONS(4876),
    [sym_creal] = ACTIONS(4876),
    [sym_size_t] = ACTIONS(4876),
    [sym_ptrdiff_t] = ACTIONS(4876),
    [sym_string] = ACTIONS(4876),
    [sym_cstring] = ACTIONS(4876),
    [sym_dstring] = ACTIONS(4876),
    [sym_wstring] = ACTIONS(4876),
    [sym_noreturn] = ACTIONS(4876),
    [sym_true] = ACTIONS(4876),
    [sym_false] = ACTIONS(4876),
    [sym_null] = ACTIONS(4876),
    [sym_super] = ACTIONS(4876),
    [sym_this] = ACTIONS(4876),
    [sym_abstract] = ACTIONS(4876),
    [sym_alias] = ACTIONS(4876),
    [sym_align] = ACTIONS(4876),
    [sym_asm] = ACTIONS(4876),
    [sym_assert] = ACTIONS(4876),
    [sym_auto] = ACTIONS(4876),
    [sym_break] = ACTIONS(4876),
    [sym_case] = ACTIONS(4876),
    [sym_cast] = ACTIONS(4876),
    [sym_class] = ACTIONS(4876),
    [sym_const] = ACTIONS(4876),
    [sym_continue] = ACTIONS(4876),
    [sym_debug] = ACTIONS(4876),
    [sym_default] = ACTIONS(4876),
    [sym_delegate] = ACTIONS(4876),
    [sym_delete] = ACTIONS(4876),
    [sym_deprecated] = ACTIONS(4876),
    [sym_do] = ACTIONS(4876),
    [sym_else] = ACTIONS(4876),
    [sym_enum] = ACTIONS(4876),
    [sym_export] = ACTIONS(4876),
    [sym_extern] = ACTIONS(4876),
    [sym_final] = ACTIONS(4876),
    [sym_for] = ACTIONS(4876),
    [sym_foreach] = ACTIONS(4876),
    [sym_foreach_reverse] = ACTIONS(4876),
    [sym_function] = ACTIONS(4876),
    [sym_goto] = ACTIONS(4876),
    [sym_if] = ACTIONS(4876),
    [sym_immutable] = ACTIONS(4876),
    [sym_import] = ACTIONS(4876),
    [sym_in] = ACTIONS(4876),
    [sym_inout] = ACTIONS(4876),
    [sym_interface] = ACTIONS(4876),
    [sym_invariant] = ACTIONS(4876),
    [sym_is] = ACTIONS(4876),
    [sym_mixin] = ACTIONS(4876),
    [sym_new] = ACTIONS(4876),
    [sym_nothrow] = ACTIONS(4876),
    [sym_out] = ACTIONS(4876),
    [sym_override] = ACTIONS(4876),
    [sym_package] = ACTIONS(4876),
    [sym_pragma] = ACTIONS(4876),
    [sym_private] = ACTIONS(4876),
    [sym_protected] = ACTIONS(4876),
    [sym_public] = ACTIONS(4876),
    [sym_pure] = ACTIONS(4876),
    [sym_ref] = ACTIONS(4876),
    [sym_return] = ACTIONS(4876),
    [sym_scope] = ACTIONS(4876),
    [sym_shared] = ACTIONS(4876),
    [sym_static] = ACTIONS(4876),
    [sym_struct] = ACTIONS(4876),
    [sym_switch] = ACTIONS(4876),
    [sym_synchronized] = ACTIONS(4876),
    [sym_template] = ACTIONS(4876),
    [sym_throw] = ACTIONS(4876),
    [sym_try] = ACTIONS(4876),
    [sym_typeid] = ACTIONS(4876),
    [sym_typeof] = ACTIONS(4876),
    [sym_union] = ACTIONS(4876),
    [sym_unittest] = ACTIONS(4876),
    [sym_version] = ACTIONS(4876),
    [sym_while] = ACTIONS(4876),
    [sym_with] = ACTIONS(4876),
    [sym_gshared] = ACTIONS(4876),
    [sym_traits] = ACTIONS(4876),
    [sym_vector] = ACTIONS(4876),
    [sym_void] = ACTIONS(4876),
    [anon_sym_BQUOTE] = ACTIONS(4878),
    [anon_sym_r_DQUOTE] = ACTIONS(4878),
    [anon_sym_x_DQUOTE] = ACTIONS(4878),
    [anon_sym_DQUOTE] = ACTIONS(4878),
    [anon_sym_i_BQUOTE] = ACTIONS(4878),
    [anon_sym_i_DQUOTE] = ACTIONS(4878),
    [anon_sym_iq_LBRACE] = ACTIONS(4878),
    [aux_sym_char_literal_token1] = ACTIONS(4878),
    [anon_sym_SQUOTE] = ACTIONS(4876),
    [anon_sym___DATE__] = ACTIONS(4876),
    [anon_sym___FILE__] = ACTIONS(4876),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4876),
    [anon_sym___FUNCTION__] = ACTIONS(4876),
    [anon_sym___LINE__] = ACTIONS(4876),
    [anon_sym___MODULE__] = ACTIONS(4876),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4876),
    [anon_sym___TIME__] = ACTIONS(4876),
    [anon_sym___TIMESTAMP__] = ACTIONS(4876),
    [anon_sym___VENDOR__] = ACTIONS(4876),
    [anon_sym___VERSION__] = ACTIONS(4876),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4878),
    [sym_float_literal] = ACTIONS(4878),
    [sym__string] = ACTIONS(4878),
  },
  [1710] = {
    [sym_identifier] = ACTIONS(4872),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4874),
    [anon_sym_RBRACE] = ACTIONS(4874),
    [anon_sym_LBRACE] = ACTIONS(4874),
    [anon_sym_DOT] = ACTIONS(4874),
    [anon_sym_AMP] = ACTIONS(4874),
    [anon_sym_DASH] = ACTIONS(4872),
    [anon_sym_DASH_DASH] = ACTIONS(4874),
    [anon_sym_PLUS] = ACTIONS(4872),
    [anon_sym_PLUS_PLUS] = ACTIONS(4874),
    [anon_sym_BANG] = ACTIONS(4874),
    [anon_sym_LPAREN] = ACTIONS(4874),
    [anon_sym_RPAREN] = ACTIONS(4874),
    [anon_sym_LBRACK] = ACTIONS(4874),
    [anon_sym_SEMI] = ACTIONS(4874),
    [anon_sym_DOLLAR] = ACTIONS(4874),
    [anon_sym_STAR] = ACTIONS(4874),
    [anon_sym_TILDE] = ACTIONS(4874),
    [anon_sym_AT] = ACTIONS(4874),
    [sym_bool] = ACTIONS(4872),
    [sym_byte] = ACTIONS(4872),
    [sym_ubyte] = ACTIONS(4872),
    [sym_char] = ACTIONS(4872),
    [sym_short] = ACTIONS(4872),
    [sym_ushort] = ACTIONS(4872),
    [sym_int] = ACTIONS(4872),
    [sym_uint] = ACTIONS(4872),
    [sym_long] = ACTIONS(4872),
    [sym_ulong] = ACTIONS(4872),
    [sym_cent] = ACTIONS(4872),
    [sym_ucent] = ACTIONS(4872),
    [sym_wchar] = ACTIONS(4872),
    [sym_dchar] = ACTIONS(4872),
    [sym_float] = ACTIONS(4872),
    [sym_double] = ACTIONS(4872),
    [sym_real] = ACTIONS(4872),
    [sym_ifloat] = ACTIONS(4872),
    [sym_idouble] = ACTIONS(4872),
    [sym_ireal] = ACTIONS(4872),
    [sym_cfloat] = ACTIONS(4872),
    [sym_cdouble] = ACTIONS(4872),
    [sym_creal] = ACTIONS(4872),
    [sym_size_t] = ACTIONS(4872),
    [sym_ptrdiff_t] = ACTIONS(4872),
    [sym_string] = ACTIONS(4872),
    [sym_cstring] = ACTIONS(4872),
    [sym_dstring] = ACTIONS(4872),
    [sym_wstring] = ACTIONS(4872),
    [sym_noreturn] = ACTIONS(4872),
    [sym_true] = ACTIONS(4872),
    [sym_false] = ACTIONS(4872),
    [sym_null] = ACTIONS(4872),
    [sym_super] = ACTIONS(4872),
    [sym_this] = ACTIONS(4872),
    [sym_abstract] = ACTIONS(4872),
    [sym_alias] = ACTIONS(4872),
    [sym_align] = ACTIONS(4872),
    [sym_asm] = ACTIONS(4872),
    [sym_assert] = ACTIONS(4872),
    [sym_auto] = ACTIONS(4872),
    [sym_break] = ACTIONS(4872),
    [sym_case] = ACTIONS(4872),
    [sym_cast] = ACTIONS(4872),
    [sym_class] = ACTIONS(4872),
    [sym_const] = ACTIONS(4872),
    [sym_continue] = ACTIONS(4872),
    [sym_debug] = ACTIONS(4872),
    [sym_default] = ACTIONS(4872),
    [sym_delegate] = ACTIONS(4872),
    [sym_delete] = ACTIONS(4872),
    [sym_deprecated] = ACTIONS(4872),
    [sym_do] = ACTIONS(4872),
    [sym_else] = ACTIONS(4872),
    [sym_enum] = ACTIONS(4872),
    [sym_export] = ACTIONS(4872),
    [sym_extern] = ACTIONS(4872),
    [sym_final] = ACTIONS(4872),
    [sym_for] = ACTIONS(4872),
    [sym_foreach] = ACTIONS(4872),
    [sym_foreach_reverse] = ACTIONS(4872),
    [sym_function] = ACTIONS(4872),
    [sym_goto] = ACTIONS(4872),
    [sym_if] = ACTIONS(4872),
    [sym_immutable] = ACTIONS(4872),
    [sym_import] = ACTIONS(4872),
    [sym_in] = ACTIONS(4872),
    [sym_inout] = ACTIONS(4872),
    [sym_interface] = ACTIONS(4872),
    [sym_invariant] = ACTIONS(4872),
    [sym_is] = ACTIONS(4872),
    [sym_mixin] = ACTIONS(4872),
    [sym_new] = ACTIONS(4872),
    [sym_nothrow] = ACTIONS(4872),
    [sym_out] = ACTIONS(4872),
    [sym_override] = ACTIONS(4872),
    [sym_package] = ACTIONS(4872),
    [sym_pragma] = ACTIONS(4872),
    [sym_private] = ACTIONS(4872),
    [sym_protected] = ACTIONS(4872),
    [sym_public] = ACTIONS(4872),
    [sym_pure] = ACTIONS(4872),
    [sym_ref] = ACTIONS(4872),
    [sym_return] = ACTIONS(4872),
    [sym_scope] = ACTIONS(4872),
    [sym_shared] = ACTIONS(4872),
    [sym_static] = ACTIONS(4872),
    [sym_struct] = ACTIONS(4872),
    [sym_switch] = ACTIONS(4872),
    [sym_synchronized] = ACTIONS(4872),
    [sym_template] = ACTIONS(4872),
    [sym_throw] = ACTIONS(4872),
    [sym_try] = ACTIONS(4872),
    [sym_typeid] = ACTIONS(4872),
    [sym_typeof] = ACTIONS(4872),
    [sym_union] = ACTIONS(4872),
    [sym_unittest] = ACTIONS(4872),
    [sym_version] = ACTIONS(4872),
    [sym_while] = ACTIONS(4872),
    [sym_with] = ACTIONS(4872),
    [sym_gshared] = ACTIONS(4872),
    [sym_traits] = ACTIONS(4872),
    [sym_vector] = ACTIONS(4872),
    [sym_void] = ACTIONS(4872),
    [anon_sym_BQUOTE] = ACTIONS(4874),
    [anon_sym_r_DQUOTE] = ACTIONS(4874),
    [anon_sym_x_DQUOTE] = ACTIONS(4874),
    [anon_sym_DQUOTE] = ACTIONS(4874),
    [anon_sym_i_BQUOTE] = ACTIONS(4874),
    [anon_sym_i_DQUOTE] = ACTIONS(4874),
    [anon_sym_iq_LBRACE] = ACTIONS(4874),
    [aux_sym_char_literal_token1] = ACTIONS(4874),
    [anon_sym_SQUOTE] = ACTIONS(4872),
    [anon_sym___DATE__] = ACTIONS(4872),
    [anon_sym___FILE__] = ACTIONS(4872),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4872),
    [anon_sym___FUNCTION__] = ACTIONS(4872),
    [anon_sym___LINE__] = ACTIONS(4872),
    [anon_sym___MODULE__] = ACTIONS(4872),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4872),
    [anon_sym___TIME__] = ACTIONS(4872),
    [anon_sym___TIMESTAMP__] = ACTIONS(4872),
    [anon_sym___VENDOR__] = ACTIONS(4872),
    [anon_sym___VERSION__] = ACTIONS(4872),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4874),
    [sym_float_literal] = ACTIONS(4874),
    [sym__string] = ACTIONS(4874),
  },
  [1711] = {
    [sym_identifier] = ACTIONS(4856),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4858),
    [anon_sym_RBRACE] = ACTIONS(4858),
    [anon_sym_LBRACE] = ACTIONS(4858),
    [anon_sym_DOT] = ACTIONS(4858),
    [anon_sym_AMP] = ACTIONS(4858),
    [anon_sym_DASH] = ACTIONS(4856),
    [anon_sym_DASH_DASH] = ACTIONS(4858),
    [anon_sym_PLUS] = ACTIONS(4856),
    [anon_sym_PLUS_PLUS] = ACTIONS(4858),
    [anon_sym_BANG] = ACTIONS(4858),
    [anon_sym_LPAREN] = ACTIONS(4858),
    [anon_sym_RPAREN] = ACTIONS(4858),
    [anon_sym_LBRACK] = ACTIONS(4858),
    [anon_sym_SEMI] = ACTIONS(4858),
    [anon_sym_DOLLAR] = ACTIONS(4858),
    [anon_sym_STAR] = ACTIONS(4858),
    [anon_sym_TILDE] = ACTIONS(4858),
    [anon_sym_AT] = ACTIONS(4858),
    [sym_bool] = ACTIONS(4856),
    [sym_byte] = ACTIONS(4856),
    [sym_ubyte] = ACTIONS(4856),
    [sym_char] = ACTIONS(4856),
    [sym_short] = ACTIONS(4856),
    [sym_ushort] = ACTIONS(4856),
    [sym_int] = ACTIONS(4856),
    [sym_uint] = ACTIONS(4856),
    [sym_long] = ACTIONS(4856),
    [sym_ulong] = ACTIONS(4856),
    [sym_cent] = ACTIONS(4856),
    [sym_ucent] = ACTIONS(4856),
    [sym_wchar] = ACTIONS(4856),
    [sym_dchar] = ACTIONS(4856),
    [sym_float] = ACTIONS(4856),
    [sym_double] = ACTIONS(4856),
    [sym_real] = ACTIONS(4856),
    [sym_ifloat] = ACTIONS(4856),
    [sym_idouble] = ACTIONS(4856),
    [sym_ireal] = ACTIONS(4856),
    [sym_cfloat] = ACTIONS(4856),
    [sym_cdouble] = ACTIONS(4856),
    [sym_creal] = ACTIONS(4856),
    [sym_size_t] = ACTIONS(4856),
    [sym_ptrdiff_t] = ACTIONS(4856),
    [sym_string] = ACTIONS(4856),
    [sym_cstring] = ACTIONS(4856),
    [sym_dstring] = ACTIONS(4856),
    [sym_wstring] = ACTIONS(4856),
    [sym_noreturn] = ACTIONS(4856),
    [sym_true] = ACTIONS(4856),
    [sym_false] = ACTIONS(4856),
    [sym_null] = ACTIONS(4856),
    [sym_super] = ACTIONS(4856),
    [sym_this] = ACTIONS(4856),
    [sym_abstract] = ACTIONS(4856),
    [sym_alias] = ACTIONS(4856),
    [sym_align] = ACTIONS(4856),
    [sym_asm] = ACTIONS(4856),
    [sym_assert] = ACTIONS(4856),
    [sym_auto] = ACTIONS(4856),
    [sym_break] = ACTIONS(4856),
    [sym_case] = ACTIONS(4856),
    [sym_cast] = ACTIONS(4856),
    [sym_class] = ACTIONS(4856),
    [sym_const] = ACTIONS(4856),
    [sym_continue] = ACTIONS(4856),
    [sym_debug] = ACTIONS(4856),
    [sym_default] = ACTIONS(4856),
    [sym_delegate] = ACTIONS(4856),
    [sym_delete] = ACTIONS(4856),
    [sym_deprecated] = ACTIONS(4856),
    [sym_do] = ACTIONS(4856),
    [sym_else] = ACTIONS(4856),
    [sym_enum] = ACTIONS(4856),
    [sym_export] = ACTIONS(4856),
    [sym_extern] = ACTIONS(4856),
    [sym_final] = ACTIONS(4856),
    [sym_for] = ACTIONS(4856),
    [sym_foreach] = ACTIONS(4856),
    [sym_foreach_reverse] = ACTIONS(4856),
    [sym_function] = ACTIONS(4856),
    [sym_goto] = ACTIONS(4856),
    [sym_if] = ACTIONS(4856),
    [sym_immutable] = ACTIONS(4856),
    [sym_import] = ACTIONS(4856),
    [sym_in] = ACTIONS(4856),
    [sym_inout] = ACTIONS(4856),
    [sym_interface] = ACTIONS(4856),
    [sym_invariant] = ACTIONS(4856),
    [sym_is] = ACTIONS(4856),
    [sym_mixin] = ACTIONS(4856),
    [sym_new] = ACTIONS(4856),
    [sym_nothrow] = ACTIONS(4856),
    [sym_out] = ACTIONS(4856),
    [sym_override] = ACTIONS(4856),
    [sym_package] = ACTIONS(4856),
    [sym_pragma] = ACTIONS(4856),
    [sym_private] = ACTIONS(4856),
    [sym_protected] = ACTIONS(4856),
    [sym_public] = ACTIONS(4856),
    [sym_pure] = ACTIONS(4856),
    [sym_ref] = ACTIONS(4856),
    [sym_return] = ACTIONS(4856),
    [sym_scope] = ACTIONS(4856),
    [sym_shared] = ACTIONS(4856),
    [sym_static] = ACTIONS(4856),
    [sym_struct] = ACTIONS(4856),
    [sym_switch] = ACTIONS(4856),
    [sym_synchronized] = ACTIONS(4856),
    [sym_template] = ACTIONS(4856),
    [sym_throw] = ACTIONS(4856),
    [sym_try] = ACTIONS(4856),
    [sym_typeid] = ACTIONS(4856),
    [sym_typeof] = ACTIONS(4856),
    [sym_union] = ACTIONS(4856),
    [sym_unittest] = ACTIONS(4856),
    [sym_version] = ACTIONS(4856),
    [sym_while] = ACTIONS(4856),
    [sym_with] = ACTIONS(4856),
    [sym_gshared] = ACTIONS(4856),
    [sym_traits] = ACTIONS(4856),
    [sym_vector] = ACTIONS(4856),
    [sym_void] = ACTIONS(4856),
    [anon_sym_BQUOTE] = ACTIONS(4858),
    [anon_sym_r_DQUOTE] = ACTIONS(4858),
    [anon_sym_x_DQUOTE] = ACTIONS(4858),
    [anon_sym_DQUOTE] = ACTIONS(4858),
    [anon_sym_i_BQUOTE] = ACTIONS(4858),
    [anon_sym_i_DQUOTE] = ACTIONS(4858),
    [anon_sym_iq_LBRACE] = ACTIONS(4858),
    [aux_sym_char_literal_token1] = ACTIONS(4858),
    [anon_sym_SQUOTE] = ACTIONS(4856),
    [anon_sym___DATE__] = ACTIONS(4856),
    [anon_sym___FILE__] = ACTIONS(4856),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4856),
    [anon_sym___FUNCTION__] = ACTIONS(4856),
    [anon_sym___LINE__] = ACTIONS(4856),
    [anon_sym___MODULE__] = ACTIONS(4856),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4856),
    [anon_sym___TIME__] = ACTIONS(4856),
    [anon_sym___TIMESTAMP__] = ACTIONS(4856),
    [anon_sym___VENDOR__] = ACTIONS(4856),
    [anon_sym___VERSION__] = ACTIONS(4856),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4858),
    [sym_float_literal] = ACTIONS(4858),
    [sym__string] = ACTIONS(4858),
  },
  [1712] = {
    [sym_identifier] = ACTIONS(4305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4307),
    [anon_sym_RBRACE] = ACTIONS(4307),
    [anon_sym_LBRACE] = ACTIONS(4307),
    [anon_sym_DOT] = ACTIONS(4307),
    [anon_sym_AMP] = ACTIONS(4307),
    [anon_sym_DASH] = ACTIONS(4305),
    [anon_sym_DASH_DASH] = ACTIONS(4307),
    [anon_sym_PLUS] = ACTIONS(4305),
    [anon_sym_PLUS_PLUS] = ACTIONS(4307),
    [anon_sym_BANG] = ACTIONS(4307),
    [anon_sym_LPAREN] = ACTIONS(4307),
    [anon_sym_RPAREN] = ACTIONS(4307),
    [anon_sym_LBRACK] = ACTIONS(4307),
    [anon_sym_SEMI] = ACTIONS(4307),
    [anon_sym_DOLLAR] = ACTIONS(4307),
    [anon_sym_STAR] = ACTIONS(4307),
    [anon_sym_TILDE] = ACTIONS(4307),
    [anon_sym_AT] = ACTIONS(4307),
    [sym_bool] = ACTIONS(4305),
    [sym_byte] = ACTIONS(4305),
    [sym_ubyte] = ACTIONS(4305),
    [sym_char] = ACTIONS(4305),
    [sym_short] = ACTIONS(4305),
    [sym_ushort] = ACTIONS(4305),
    [sym_int] = ACTIONS(4305),
    [sym_uint] = ACTIONS(4305),
    [sym_long] = ACTIONS(4305),
    [sym_ulong] = ACTIONS(4305),
    [sym_cent] = ACTIONS(4305),
    [sym_ucent] = ACTIONS(4305),
    [sym_wchar] = ACTIONS(4305),
    [sym_dchar] = ACTIONS(4305),
    [sym_float] = ACTIONS(4305),
    [sym_double] = ACTIONS(4305),
    [sym_real] = ACTIONS(4305),
    [sym_ifloat] = ACTIONS(4305),
    [sym_idouble] = ACTIONS(4305),
    [sym_ireal] = ACTIONS(4305),
    [sym_cfloat] = ACTIONS(4305),
    [sym_cdouble] = ACTIONS(4305),
    [sym_creal] = ACTIONS(4305),
    [sym_size_t] = ACTIONS(4305),
    [sym_ptrdiff_t] = ACTIONS(4305),
    [sym_string] = ACTIONS(4305),
    [sym_cstring] = ACTIONS(4305),
    [sym_dstring] = ACTIONS(4305),
    [sym_wstring] = ACTIONS(4305),
    [sym_noreturn] = ACTIONS(4305),
    [sym_true] = ACTIONS(4305),
    [sym_false] = ACTIONS(4305),
    [sym_null] = ACTIONS(4305),
    [sym_super] = ACTIONS(4305),
    [sym_this] = ACTIONS(4305),
    [sym_abstract] = ACTIONS(4305),
    [sym_alias] = ACTIONS(4305),
    [sym_align] = ACTIONS(4305),
    [sym_asm] = ACTIONS(4305),
    [sym_assert] = ACTIONS(4305),
    [sym_auto] = ACTIONS(4305),
    [sym_break] = ACTIONS(4305),
    [sym_case] = ACTIONS(4305),
    [sym_cast] = ACTIONS(4305),
    [sym_class] = ACTIONS(4305),
    [sym_const] = ACTIONS(4305),
    [sym_continue] = ACTIONS(4305),
    [sym_debug] = ACTIONS(4305),
    [sym_default] = ACTIONS(4305),
    [sym_delegate] = ACTIONS(4305),
    [sym_delete] = ACTIONS(4305),
    [sym_deprecated] = ACTIONS(4305),
    [sym_do] = ACTIONS(4305),
    [sym_else] = ACTIONS(4305),
    [sym_enum] = ACTIONS(4305),
    [sym_export] = ACTIONS(4305),
    [sym_extern] = ACTIONS(4305),
    [sym_final] = ACTIONS(4305),
    [sym_for] = ACTIONS(4305),
    [sym_foreach] = ACTIONS(4305),
    [sym_foreach_reverse] = ACTIONS(4305),
    [sym_function] = ACTIONS(4305),
    [sym_goto] = ACTIONS(4305),
    [sym_if] = ACTIONS(4305),
    [sym_immutable] = ACTIONS(4305),
    [sym_import] = ACTIONS(4305),
    [sym_in] = ACTIONS(4305),
    [sym_inout] = ACTIONS(4305),
    [sym_interface] = ACTIONS(4305),
    [sym_invariant] = ACTIONS(4305),
    [sym_is] = ACTIONS(4305),
    [sym_mixin] = ACTIONS(4305),
    [sym_new] = ACTIONS(4305),
    [sym_nothrow] = ACTIONS(4305),
    [sym_out] = ACTIONS(4305),
    [sym_override] = ACTIONS(4305),
    [sym_package] = ACTIONS(4305),
    [sym_pragma] = ACTIONS(4305),
    [sym_private] = ACTIONS(4305),
    [sym_protected] = ACTIONS(4305),
    [sym_public] = ACTIONS(4305),
    [sym_pure] = ACTIONS(4305),
    [sym_ref] = ACTIONS(4305),
    [sym_return] = ACTIONS(4305),
    [sym_scope] = ACTIONS(4305),
    [sym_shared] = ACTIONS(4305),
    [sym_static] = ACTIONS(4305),
    [sym_struct] = ACTIONS(4305),
    [sym_switch] = ACTIONS(4305),
    [sym_synchronized] = ACTIONS(4305),
    [sym_template] = ACTIONS(4305),
    [sym_throw] = ACTIONS(4305),
    [sym_try] = ACTIONS(4305),
    [sym_typeid] = ACTIONS(4305),
    [sym_typeof] = ACTIONS(4305),
    [sym_union] = ACTIONS(4305),
    [sym_unittest] = ACTIONS(4305),
    [sym_version] = ACTIONS(4305),
    [sym_while] = ACTIONS(4305),
    [sym_with] = ACTIONS(4305),
    [sym_gshared] = ACTIONS(4305),
    [sym_traits] = ACTIONS(4305),
    [sym_vector] = ACTIONS(4305),
    [sym_void] = ACTIONS(4305),
    [anon_sym_BQUOTE] = ACTIONS(4307),
    [anon_sym_r_DQUOTE] = ACTIONS(4307),
    [anon_sym_x_DQUOTE] = ACTIONS(4307),
    [anon_sym_DQUOTE] = ACTIONS(4307),
    [anon_sym_i_BQUOTE] = ACTIONS(4307),
    [anon_sym_i_DQUOTE] = ACTIONS(4307),
    [anon_sym_iq_LBRACE] = ACTIONS(4307),
    [aux_sym_char_literal_token1] = ACTIONS(4307),
    [anon_sym_SQUOTE] = ACTIONS(4305),
    [anon_sym___DATE__] = ACTIONS(4305),
    [anon_sym___FILE__] = ACTIONS(4305),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4305),
    [anon_sym___FUNCTION__] = ACTIONS(4305),
    [anon_sym___LINE__] = ACTIONS(4305),
    [anon_sym___MODULE__] = ACTIONS(4305),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4305),
    [anon_sym___TIME__] = ACTIONS(4305),
    [anon_sym___TIMESTAMP__] = ACTIONS(4305),
    [anon_sym___VENDOR__] = ACTIONS(4305),
    [anon_sym___VERSION__] = ACTIONS(4305),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4307),
    [sym_float_literal] = ACTIONS(4307),
    [sym__string] = ACTIONS(4307),
  },
  [1713] = {
    [sym_identifier] = ACTIONS(4309),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4311),
    [anon_sym_RBRACE] = ACTIONS(4311),
    [anon_sym_LBRACE] = ACTIONS(4311),
    [anon_sym_DOT] = ACTIONS(4311),
    [anon_sym_AMP] = ACTIONS(4311),
    [anon_sym_DASH] = ACTIONS(4309),
    [anon_sym_DASH_DASH] = ACTIONS(4311),
    [anon_sym_PLUS] = ACTIONS(4309),
    [anon_sym_PLUS_PLUS] = ACTIONS(4311),
    [anon_sym_BANG] = ACTIONS(4311),
    [anon_sym_LPAREN] = ACTIONS(4311),
    [anon_sym_RPAREN] = ACTIONS(4311),
    [anon_sym_LBRACK] = ACTIONS(4311),
    [anon_sym_SEMI] = ACTIONS(4311),
    [anon_sym_DOLLAR] = ACTIONS(4311),
    [anon_sym_STAR] = ACTIONS(4311),
    [anon_sym_TILDE] = ACTIONS(4311),
    [anon_sym_AT] = ACTIONS(4311),
    [sym_bool] = ACTIONS(4309),
    [sym_byte] = ACTIONS(4309),
    [sym_ubyte] = ACTIONS(4309),
    [sym_char] = ACTIONS(4309),
    [sym_short] = ACTIONS(4309),
    [sym_ushort] = ACTIONS(4309),
    [sym_int] = ACTIONS(4309),
    [sym_uint] = ACTIONS(4309),
    [sym_long] = ACTIONS(4309),
    [sym_ulong] = ACTIONS(4309),
    [sym_cent] = ACTIONS(4309),
    [sym_ucent] = ACTIONS(4309),
    [sym_wchar] = ACTIONS(4309),
    [sym_dchar] = ACTIONS(4309),
    [sym_float] = ACTIONS(4309),
    [sym_double] = ACTIONS(4309),
    [sym_real] = ACTIONS(4309),
    [sym_ifloat] = ACTIONS(4309),
    [sym_idouble] = ACTIONS(4309),
    [sym_ireal] = ACTIONS(4309),
    [sym_cfloat] = ACTIONS(4309),
    [sym_cdouble] = ACTIONS(4309),
    [sym_creal] = ACTIONS(4309),
    [sym_size_t] = ACTIONS(4309),
    [sym_ptrdiff_t] = ACTIONS(4309),
    [sym_string] = ACTIONS(4309),
    [sym_cstring] = ACTIONS(4309),
    [sym_dstring] = ACTIONS(4309),
    [sym_wstring] = ACTIONS(4309),
    [sym_noreturn] = ACTIONS(4309),
    [sym_true] = ACTIONS(4309),
    [sym_false] = ACTIONS(4309),
    [sym_null] = ACTIONS(4309),
    [sym_super] = ACTIONS(4309),
    [sym_this] = ACTIONS(4309),
    [sym_abstract] = ACTIONS(4309),
    [sym_alias] = ACTIONS(4309),
    [sym_align] = ACTIONS(4309),
    [sym_asm] = ACTIONS(4309),
    [sym_assert] = ACTIONS(4309),
    [sym_auto] = ACTIONS(4309),
    [sym_break] = ACTIONS(4309),
    [sym_case] = ACTIONS(4309),
    [sym_cast] = ACTIONS(4309),
    [sym_class] = ACTIONS(4309),
    [sym_const] = ACTIONS(4309),
    [sym_continue] = ACTIONS(4309),
    [sym_debug] = ACTIONS(4309),
    [sym_default] = ACTIONS(4309),
    [sym_delegate] = ACTIONS(4309),
    [sym_delete] = ACTIONS(4309),
    [sym_deprecated] = ACTIONS(4309),
    [sym_do] = ACTIONS(4309),
    [sym_else] = ACTIONS(4309),
    [sym_enum] = ACTIONS(4309),
    [sym_export] = ACTIONS(4309),
    [sym_extern] = ACTIONS(4309),
    [sym_final] = ACTIONS(4309),
    [sym_for] = ACTIONS(4309),
    [sym_foreach] = ACTIONS(4309),
    [sym_foreach_reverse] = ACTIONS(4309),
    [sym_function] = ACTIONS(4309),
    [sym_goto] = ACTIONS(4309),
    [sym_if] = ACTIONS(4309),
    [sym_immutable] = ACTIONS(4309),
    [sym_import] = ACTIONS(4309),
    [sym_in] = ACTIONS(4309),
    [sym_inout] = ACTIONS(4309),
    [sym_interface] = ACTIONS(4309),
    [sym_invariant] = ACTIONS(4309),
    [sym_is] = ACTIONS(4309),
    [sym_mixin] = ACTIONS(4309),
    [sym_new] = ACTIONS(4309),
    [sym_nothrow] = ACTIONS(4309),
    [sym_out] = ACTIONS(4309),
    [sym_override] = ACTIONS(4309),
    [sym_package] = ACTIONS(4309),
    [sym_pragma] = ACTIONS(4309),
    [sym_private] = ACTIONS(4309),
    [sym_protected] = ACTIONS(4309),
    [sym_public] = ACTIONS(4309),
    [sym_pure] = ACTIONS(4309),
    [sym_ref] = ACTIONS(4309),
    [sym_return] = ACTIONS(4309),
    [sym_scope] = ACTIONS(4309),
    [sym_shared] = ACTIONS(4309),
    [sym_static] = ACTIONS(4309),
    [sym_struct] = ACTIONS(4309),
    [sym_switch] = ACTIONS(4309),
    [sym_synchronized] = ACTIONS(4309),
    [sym_template] = ACTIONS(4309),
    [sym_throw] = ACTIONS(4309),
    [sym_try] = ACTIONS(4309),
    [sym_typeid] = ACTIONS(4309),
    [sym_typeof] = ACTIONS(4309),
    [sym_union] = ACTIONS(4309),
    [sym_unittest] = ACTIONS(4309),
    [sym_version] = ACTIONS(4309),
    [sym_while] = ACTIONS(4309),
    [sym_with] = ACTIONS(4309),
    [sym_gshared] = ACTIONS(4309),
    [sym_traits] = ACTIONS(4309),
    [sym_vector] = ACTIONS(4309),
    [sym_void] = ACTIONS(4309),
    [anon_sym_BQUOTE] = ACTIONS(4311),
    [anon_sym_r_DQUOTE] = ACTIONS(4311),
    [anon_sym_x_DQUOTE] = ACTIONS(4311),
    [anon_sym_DQUOTE] = ACTIONS(4311),
    [anon_sym_i_BQUOTE] = ACTIONS(4311),
    [anon_sym_i_DQUOTE] = ACTIONS(4311),
    [anon_sym_iq_LBRACE] = ACTIONS(4311),
    [aux_sym_char_literal_token1] = ACTIONS(4311),
    [anon_sym_SQUOTE] = ACTIONS(4309),
    [anon_sym___DATE__] = ACTIONS(4309),
    [anon_sym___FILE__] = ACTIONS(4309),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4309),
    [anon_sym___FUNCTION__] = ACTIONS(4309),
    [anon_sym___LINE__] = ACTIONS(4309),
    [anon_sym___MODULE__] = ACTIONS(4309),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4309),
    [anon_sym___TIME__] = ACTIONS(4309),
    [anon_sym___TIMESTAMP__] = ACTIONS(4309),
    [anon_sym___VENDOR__] = ACTIONS(4309),
    [anon_sym___VERSION__] = ACTIONS(4309),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4311),
    [sym_float_literal] = ACTIONS(4311),
    [sym__string] = ACTIONS(4311),
  },
  [1714] = {
    [sym_identifier] = ACTIONS(4321),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4324),
    [anon_sym_RBRACE] = ACTIONS(4324),
    [anon_sym_LBRACE] = ACTIONS(4324),
    [anon_sym_DOT] = ACTIONS(4324),
    [anon_sym_AMP] = ACTIONS(4324),
    [anon_sym_DASH] = ACTIONS(4321),
    [anon_sym_DASH_DASH] = ACTIONS(4324),
    [anon_sym_PLUS] = ACTIONS(4321),
    [anon_sym_PLUS_PLUS] = ACTIONS(4324),
    [anon_sym_BANG] = ACTIONS(4324),
    [anon_sym_LPAREN] = ACTIONS(4324),
    [anon_sym_RPAREN] = ACTIONS(4324),
    [anon_sym_LBRACK] = ACTIONS(4324),
    [anon_sym_SEMI] = ACTIONS(4324),
    [anon_sym_DOLLAR] = ACTIONS(4324),
    [anon_sym_STAR] = ACTIONS(4324),
    [anon_sym_TILDE] = ACTIONS(4324),
    [anon_sym_AT] = ACTIONS(4324),
    [sym_bool] = ACTIONS(4321),
    [sym_byte] = ACTIONS(4321),
    [sym_ubyte] = ACTIONS(4321),
    [sym_char] = ACTIONS(4321),
    [sym_short] = ACTIONS(4321),
    [sym_ushort] = ACTIONS(4321),
    [sym_int] = ACTIONS(4321),
    [sym_uint] = ACTIONS(4321),
    [sym_long] = ACTIONS(4321),
    [sym_ulong] = ACTIONS(4321),
    [sym_cent] = ACTIONS(4321),
    [sym_ucent] = ACTIONS(4321),
    [sym_wchar] = ACTIONS(4321),
    [sym_dchar] = ACTIONS(4321),
    [sym_float] = ACTIONS(4321),
    [sym_double] = ACTIONS(4321),
    [sym_real] = ACTIONS(4321),
    [sym_ifloat] = ACTIONS(4321),
    [sym_idouble] = ACTIONS(4321),
    [sym_ireal] = ACTIONS(4321),
    [sym_cfloat] = ACTIONS(4321),
    [sym_cdouble] = ACTIONS(4321),
    [sym_creal] = ACTIONS(4321),
    [sym_size_t] = ACTIONS(4321),
    [sym_ptrdiff_t] = ACTIONS(4321),
    [sym_string] = ACTIONS(4321),
    [sym_cstring] = ACTIONS(4321),
    [sym_dstring] = ACTIONS(4321),
    [sym_wstring] = ACTIONS(4321),
    [sym_noreturn] = ACTIONS(4321),
    [sym_true] = ACTIONS(4321),
    [sym_false] = ACTIONS(4321),
    [sym_null] = ACTIONS(4321),
    [sym_super] = ACTIONS(4321),
    [sym_this] = ACTIONS(4321),
    [sym_abstract] = ACTIONS(4321),
    [sym_alias] = ACTIONS(4321),
    [sym_align] = ACTIONS(4321),
    [sym_asm] = ACTIONS(4321),
    [sym_assert] = ACTIONS(4321),
    [sym_auto] = ACTIONS(4321),
    [sym_break] = ACTIONS(4321),
    [sym_case] = ACTIONS(4321),
    [sym_cast] = ACTIONS(4321),
    [sym_class] = ACTIONS(4321),
    [sym_const] = ACTIONS(4321),
    [sym_continue] = ACTIONS(4321),
    [sym_debug] = ACTIONS(4321),
    [sym_default] = ACTIONS(4321),
    [sym_delegate] = ACTIONS(4321),
    [sym_delete] = ACTIONS(4321),
    [sym_deprecated] = ACTIONS(4321),
    [sym_do] = ACTIONS(4321),
    [sym_else] = ACTIONS(4321),
    [sym_enum] = ACTIONS(4321),
    [sym_export] = ACTIONS(4321),
    [sym_extern] = ACTIONS(4321),
    [sym_final] = ACTIONS(4321),
    [sym_for] = ACTIONS(4321),
    [sym_foreach] = ACTIONS(4321),
    [sym_foreach_reverse] = ACTIONS(4321),
    [sym_function] = ACTIONS(4321),
    [sym_goto] = ACTIONS(4321),
    [sym_if] = ACTIONS(4321),
    [sym_immutable] = ACTIONS(4321),
    [sym_import] = ACTIONS(4321),
    [sym_in] = ACTIONS(4321),
    [sym_inout] = ACTIONS(4321),
    [sym_interface] = ACTIONS(4321),
    [sym_invariant] = ACTIONS(4321),
    [sym_is] = ACTIONS(4321),
    [sym_mixin] = ACTIONS(4321),
    [sym_new] = ACTIONS(4321),
    [sym_nothrow] = ACTIONS(4321),
    [sym_out] = ACTIONS(4321),
    [sym_override] = ACTIONS(4321),
    [sym_package] = ACTIONS(4321),
    [sym_pragma] = ACTIONS(4321),
    [sym_private] = ACTIONS(4321),
    [sym_protected] = ACTIONS(4321),
    [sym_public] = ACTIONS(4321),
    [sym_pure] = ACTIONS(4321),
    [sym_ref] = ACTIONS(4321),
    [sym_return] = ACTIONS(4321),
    [sym_scope] = ACTIONS(4321),
    [sym_shared] = ACTIONS(4321),
    [sym_static] = ACTIONS(4321),
    [sym_struct] = ACTIONS(4321),
    [sym_switch] = ACTIONS(4321),
    [sym_synchronized] = ACTIONS(4321),
    [sym_template] = ACTIONS(4321),
    [sym_throw] = ACTIONS(4321),
    [sym_try] = ACTIONS(4321),
    [sym_typeid] = ACTIONS(4321),
    [sym_typeof] = ACTIONS(4321),
    [sym_union] = ACTIONS(4321),
    [sym_unittest] = ACTIONS(4321),
    [sym_version] = ACTIONS(4321),
    [sym_while] = ACTIONS(4321),
    [sym_with] = ACTIONS(4321),
    [sym_gshared] = ACTIONS(4321),
    [sym_traits] = ACTIONS(4321),
    [sym_vector] = ACTIONS(4321),
    [sym_void] = ACTIONS(4321),
    [anon_sym_BQUOTE] = ACTIONS(4324),
    [anon_sym_r_DQUOTE] = ACTIONS(4324),
    [anon_sym_x_DQUOTE] = ACTIONS(4324),
    [anon_sym_DQUOTE] = ACTIONS(4324),
    [anon_sym_i_BQUOTE] = ACTIONS(4324),
    [anon_sym_i_DQUOTE] = ACTIONS(4324),
    [anon_sym_iq_LBRACE] = ACTIONS(4324),
    [aux_sym_char_literal_token1] = ACTIONS(4324),
    [anon_sym_SQUOTE] = ACTIONS(4321),
    [anon_sym___DATE__] = ACTIONS(4321),
    [anon_sym___FILE__] = ACTIONS(4321),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4321),
    [anon_sym___FUNCTION__] = ACTIONS(4321),
    [anon_sym___LINE__] = ACTIONS(4321),
    [anon_sym___MODULE__] = ACTIONS(4321),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4321),
    [anon_sym___TIME__] = ACTIONS(4321),
    [anon_sym___TIMESTAMP__] = ACTIONS(4321),
    [anon_sym___VENDOR__] = ACTIONS(4321),
    [anon_sym___VERSION__] = ACTIONS(4321),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4324),
    [sym_float_literal] = ACTIONS(4324),
    [sym__string] = ACTIONS(4324),
  },
  [1715] = {
    [sym_identifier] = ACTIONS(4335),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4337),
    [anon_sym_RBRACE] = ACTIONS(4337),
    [anon_sym_LBRACE] = ACTIONS(4337),
    [anon_sym_DOT] = ACTIONS(4337),
    [anon_sym_AMP] = ACTIONS(4337),
    [anon_sym_DASH] = ACTIONS(4335),
    [anon_sym_DASH_DASH] = ACTIONS(4337),
    [anon_sym_PLUS] = ACTIONS(4335),
    [anon_sym_PLUS_PLUS] = ACTIONS(4337),
    [anon_sym_BANG] = ACTIONS(4337),
    [anon_sym_LPAREN] = ACTIONS(4337),
    [anon_sym_RPAREN] = ACTIONS(4337),
    [anon_sym_LBRACK] = ACTIONS(4337),
    [anon_sym_SEMI] = ACTIONS(4337),
    [anon_sym_DOLLAR] = ACTIONS(4337),
    [anon_sym_STAR] = ACTIONS(4337),
    [anon_sym_TILDE] = ACTIONS(4337),
    [anon_sym_AT] = ACTIONS(4337),
    [sym_bool] = ACTIONS(4335),
    [sym_byte] = ACTIONS(4335),
    [sym_ubyte] = ACTIONS(4335),
    [sym_char] = ACTIONS(4335),
    [sym_short] = ACTIONS(4335),
    [sym_ushort] = ACTIONS(4335),
    [sym_int] = ACTIONS(4335),
    [sym_uint] = ACTIONS(4335),
    [sym_long] = ACTIONS(4335),
    [sym_ulong] = ACTIONS(4335),
    [sym_cent] = ACTIONS(4335),
    [sym_ucent] = ACTIONS(4335),
    [sym_wchar] = ACTIONS(4335),
    [sym_dchar] = ACTIONS(4335),
    [sym_float] = ACTIONS(4335),
    [sym_double] = ACTIONS(4335),
    [sym_real] = ACTIONS(4335),
    [sym_ifloat] = ACTIONS(4335),
    [sym_idouble] = ACTIONS(4335),
    [sym_ireal] = ACTIONS(4335),
    [sym_cfloat] = ACTIONS(4335),
    [sym_cdouble] = ACTIONS(4335),
    [sym_creal] = ACTIONS(4335),
    [sym_size_t] = ACTIONS(4335),
    [sym_ptrdiff_t] = ACTIONS(4335),
    [sym_string] = ACTIONS(4335),
    [sym_cstring] = ACTIONS(4335),
    [sym_dstring] = ACTIONS(4335),
    [sym_wstring] = ACTIONS(4335),
    [sym_noreturn] = ACTIONS(4335),
    [sym_true] = ACTIONS(4335),
    [sym_false] = ACTIONS(4335),
    [sym_null] = ACTIONS(4335),
    [sym_super] = ACTIONS(4335),
    [sym_this] = ACTIONS(4335),
    [sym_abstract] = ACTIONS(4335),
    [sym_alias] = ACTIONS(4335),
    [sym_align] = ACTIONS(4335),
    [sym_asm] = ACTIONS(4335),
    [sym_assert] = ACTIONS(4335),
    [sym_auto] = ACTIONS(4335),
    [sym_break] = ACTIONS(4335),
    [sym_case] = ACTIONS(4335),
    [sym_cast] = ACTIONS(4335),
    [sym_class] = ACTIONS(4335),
    [sym_const] = ACTIONS(4335),
    [sym_continue] = ACTIONS(4335),
    [sym_debug] = ACTIONS(4335),
    [sym_default] = ACTIONS(4335),
    [sym_delegate] = ACTIONS(4335),
    [sym_delete] = ACTIONS(4335),
    [sym_deprecated] = ACTIONS(4335),
    [sym_do] = ACTIONS(4335),
    [sym_else] = ACTIONS(4335),
    [sym_enum] = ACTIONS(4335),
    [sym_export] = ACTIONS(4335),
    [sym_extern] = ACTIONS(4335),
    [sym_final] = ACTIONS(4335),
    [sym_for] = ACTIONS(4335),
    [sym_foreach] = ACTIONS(4335),
    [sym_foreach_reverse] = ACTIONS(4335),
    [sym_function] = ACTIONS(4335),
    [sym_goto] = ACTIONS(4335),
    [sym_if] = ACTIONS(4335),
    [sym_immutable] = ACTIONS(4335),
    [sym_import] = ACTIONS(4335),
    [sym_in] = ACTIONS(4335),
    [sym_inout] = ACTIONS(4335),
    [sym_interface] = ACTIONS(4335),
    [sym_invariant] = ACTIONS(4335),
    [sym_is] = ACTIONS(4335),
    [sym_mixin] = ACTIONS(4335),
    [sym_new] = ACTIONS(4335),
    [sym_nothrow] = ACTIONS(4335),
    [sym_out] = ACTIONS(4335),
    [sym_override] = ACTIONS(4335),
    [sym_package] = ACTIONS(4335),
    [sym_pragma] = ACTIONS(4335),
    [sym_private] = ACTIONS(4335),
    [sym_protected] = ACTIONS(4335),
    [sym_public] = ACTIONS(4335),
    [sym_pure] = ACTIONS(4335),
    [sym_ref] = ACTIONS(4335),
    [sym_return] = ACTIONS(4335),
    [sym_scope] = ACTIONS(4335),
    [sym_shared] = ACTIONS(4335),
    [sym_static] = ACTIONS(4335),
    [sym_struct] = ACTIONS(4335),
    [sym_switch] = ACTIONS(4335),
    [sym_synchronized] = ACTIONS(4335),
    [sym_template] = ACTIONS(4335),
    [sym_throw] = ACTIONS(4335),
    [sym_try] = ACTIONS(4335),
    [sym_typeid] = ACTIONS(4335),
    [sym_typeof] = ACTIONS(4335),
    [sym_union] = ACTIONS(4335),
    [sym_unittest] = ACTIONS(4335),
    [sym_version] = ACTIONS(4335),
    [sym_while] = ACTIONS(4335),
    [sym_with] = ACTIONS(4335),
    [sym_gshared] = ACTIONS(4335),
    [sym_traits] = ACTIONS(4335),
    [sym_vector] = ACTIONS(4335),
    [sym_void] = ACTIONS(4335),
    [anon_sym_BQUOTE] = ACTIONS(4337),
    [anon_sym_r_DQUOTE] = ACTIONS(4337),
    [anon_sym_x_DQUOTE] = ACTIONS(4337),
    [anon_sym_DQUOTE] = ACTIONS(4337),
    [anon_sym_i_BQUOTE] = ACTIONS(4337),
    [anon_sym_i_DQUOTE] = ACTIONS(4337),
    [anon_sym_iq_LBRACE] = ACTIONS(4337),
    [aux_sym_char_literal_token1] = ACTIONS(4337),
    [anon_sym_SQUOTE] = ACTIONS(4335),
    [anon_sym___DATE__] = ACTIONS(4335),
    [anon_sym___FILE__] = ACTIONS(4335),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4335),
    [anon_sym___FUNCTION__] = ACTIONS(4335),
    [anon_sym___LINE__] = ACTIONS(4335),
    [anon_sym___MODULE__] = ACTIONS(4335),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4335),
    [anon_sym___TIME__] = ACTIONS(4335),
    [anon_sym___TIMESTAMP__] = ACTIONS(4335),
    [anon_sym___VENDOR__] = ACTIONS(4335),
    [anon_sym___VERSION__] = ACTIONS(4335),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4337),
    [sym_float_literal] = ACTIONS(4337),
    [sym__string] = ACTIONS(4337),
  },
  [1716] = {
    [sym_identifier] = ACTIONS(4386),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4388),
    [anon_sym_RBRACE] = ACTIONS(4388),
    [anon_sym_LBRACE] = ACTIONS(4388),
    [anon_sym_DOT] = ACTIONS(4388),
    [anon_sym_AMP] = ACTIONS(4388),
    [anon_sym_DASH] = ACTIONS(4386),
    [anon_sym_DASH_DASH] = ACTIONS(4388),
    [anon_sym_PLUS] = ACTIONS(4386),
    [anon_sym_PLUS_PLUS] = ACTIONS(4388),
    [anon_sym_BANG] = ACTIONS(4388),
    [anon_sym_LPAREN] = ACTIONS(4388),
    [anon_sym_RPAREN] = ACTIONS(4388),
    [anon_sym_LBRACK] = ACTIONS(4388),
    [anon_sym_SEMI] = ACTIONS(4388),
    [anon_sym_DOLLAR] = ACTIONS(4388),
    [anon_sym_STAR] = ACTIONS(4388),
    [anon_sym_TILDE] = ACTIONS(4388),
    [anon_sym_AT] = ACTIONS(4388),
    [sym_bool] = ACTIONS(4386),
    [sym_byte] = ACTIONS(4386),
    [sym_ubyte] = ACTIONS(4386),
    [sym_char] = ACTIONS(4386),
    [sym_short] = ACTIONS(4386),
    [sym_ushort] = ACTIONS(4386),
    [sym_int] = ACTIONS(4386),
    [sym_uint] = ACTIONS(4386),
    [sym_long] = ACTIONS(4386),
    [sym_ulong] = ACTIONS(4386),
    [sym_cent] = ACTIONS(4386),
    [sym_ucent] = ACTIONS(4386),
    [sym_wchar] = ACTIONS(4386),
    [sym_dchar] = ACTIONS(4386),
    [sym_float] = ACTIONS(4386),
    [sym_double] = ACTIONS(4386),
    [sym_real] = ACTIONS(4386),
    [sym_ifloat] = ACTIONS(4386),
    [sym_idouble] = ACTIONS(4386),
    [sym_ireal] = ACTIONS(4386),
    [sym_cfloat] = ACTIONS(4386),
    [sym_cdouble] = ACTIONS(4386),
    [sym_creal] = ACTIONS(4386),
    [sym_size_t] = ACTIONS(4386),
    [sym_ptrdiff_t] = ACTIONS(4386),
    [sym_string] = ACTIONS(4386),
    [sym_cstring] = ACTIONS(4386),
    [sym_dstring] = ACTIONS(4386),
    [sym_wstring] = ACTIONS(4386),
    [sym_noreturn] = ACTIONS(4386),
    [sym_true] = ACTIONS(4386),
    [sym_false] = ACTIONS(4386),
    [sym_null] = ACTIONS(4386),
    [sym_super] = ACTIONS(4386),
    [sym_this] = ACTIONS(4386),
    [sym_abstract] = ACTIONS(4386),
    [sym_alias] = ACTIONS(4386),
    [sym_align] = ACTIONS(4386),
    [sym_asm] = ACTIONS(4386),
    [sym_assert] = ACTIONS(4386),
    [sym_auto] = ACTIONS(4386),
    [sym_break] = ACTIONS(4386),
    [sym_case] = ACTIONS(4386),
    [sym_cast] = ACTIONS(4386),
    [sym_class] = ACTIONS(4386),
    [sym_const] = ACTIONS(4386),
    [sym_continue] = ACTIONS(4386),
    [sym_debug] = ACTIONS(4386),
    [sym_default] = ACTIONS(4386),
    [sym_delegate] = ACTIONS(4386),
    [sym_delete] = ACTIONS(4386),
    [sym_deprecated] = ACTIONS(4386),
    [sym_do] = ACTIONS(4386),
    [sym_else] = ACTIONS(4386),
    [sym_enum] = ACTIONS(4386),
    [sym_export] = ACTIONS(4386),
    [sym_extern] = ACTIONS(4386),
    [sym_final] = ACTIONS(4386),
    [sym_for] = ACTIONS(4386),
    [sym_foreach] = ACTIONS(4386),
    [sym_foreach_reverse] = ACTIONS(4386),
    [sym_function] = ACTIONS(4386),
    [sym_goto] = ACTIONS(4386),
    [sym_if] = ACTIONS(4386),
    [sym_immutable] = ACTIONS(4386),
    [sym_import] = ACTIONS(4386),
    [sym_in] = ACTIONS(4386),
    [sym_inout] = ACTIONS(4386),
    [sym_interface] = ACTIONS(4386),
    [sym_invariant] = ACTIONS(4386),
    [sym_is] = ACTIONS(4386),
    [sym_mixin] = ACTIONS(4386),
    [sym_new] = ACTIONS(4386),
    [sym_nothrow] = ACTIONS(4386),
    [sym_out] = ACTIONS(4386),
    [sym_override] = ACTIONS(4386),
    [sym_package] = ACTIONS(4386),
    [sym_pragma] = ACTIONS(4386),
    [sym_private] = ACTIONS(4386),
    [sym_protected] = ACTIONS(4386),
    [sym_public] = ACTIONS(4386),
    [sym_pure] = ACTIONS(4386),
    [sym_ref] = ACTIONS(4386),
    [sym_return] = ACTIONS(4386),
    [sym_scope] = ACTIONS(4386),
    [sym_shared] = ACTIONS(4386),
    [sym_static] = ACTIONS(4386),
    [sym_struct] = ACTIONS(4386),
    [sym_switch] = ACTIONS(4386),
    [sym_synchronized] = ACTIONS(4386),
    [sym_template] = ACTIONS(4386),
    [sym_throw] = ACTIONS(4386),
    [sym_try] = ACTIONS(4386),
    [sym_typeid] = ACTIONS(4386),
    [sym_typeof] = ACTIONS(4386),
    [sym_union] = ACTIONS(4386),
    [sym_unittest] = ACTIONS(4386),
    [sym_version] = ACTIONS(4386),
    [sym_while] = ACTIONS(4386),
    [sym_with] = ACTIONS(4386),
    [sym_gshared] = ACTIONS(4386),
    [sym_traits] = ACTIONS(4386),
    [sym_vector] = ACTIONS(4386),
    [sym_void] = ACTIONS(4386),
    [anon_sym_BQUOTE] = ACTIONS(4388),
    [anon_sym_r_DQUOTE] = ACTIONS(4388),
    [anon_sym_x_DQUOTE] = ACTIONS(4388),
    [anon_sym_DQUOTE] = ACTIONS(4388),
    [anon_sym_i_BQUOTE] = ACTIONS(4388),
    [anon_sym_i_DQUOTE] = ACTIONS(4388),
    [anon_sym_iq_LBRACE] = ACTIONS(4388),
    [aux_sym_char_literal_token1] = ACTIONS(4388),
    [anon_sym_SQUOTE] = ACTIONS(4386),
    [anon_sym___DATE__] = ACTIONS(4386),
    [anon_sym___FILE__] = ACTIONS(4386),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4386),
    [anon_sym___FUNCTION__] = ACTIONS(4386),
    [anon_sym___LINE__] = ACTIONS(4386),
    [anon_sym___MODULE__] = ACTIONS(4386),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4386),
    [anon_sym___TIME__] = ACTIONS(4386),
    [anon_sym___TIMESTAMP__] = ACTIONS(4386),
    [anon_sym___VENDOR__] = ACTIONS(4386),
    [anon_sym___VERSION__] = ACTIONS(4386),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4388),
    [sym_float_literal] = ACTIONS(4388),
    [sym__string] = ACTIONS(4388),
  },
  [1717] = {
    [sym_identifier] = ACTIONS(4355),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4357),
    [anon_sym_RBRACE] = ACTIONS(4357),
    [anon_sym_LBRACE] = ACTIONS(4357),
    [anon_sym_DOT] = ACTIONS(4357),
    [anon_sym_AMP] = ACTIONS(4357),
    [anon_sym_DASH] = ACTIONS(4355),
    [anon_sym_DASH_DASH] = ACTIONS(4357),
    [anon_sym_PLUS] = ACTIONS(4355),
    [anon_sym_PLUS_PLUS] = ACTIONS(4357),
    [anon_sym_BANG] = ACTIONS(4357),
    [anon_sym_LPAREN] = ACTIONS(4357),
    [anon_sym_RPAREN] = ACTIONS(4357),
    [anon_sym_LBRACK] = ACTIONS(4357),
    [anon_sym_SEMI] = ACTIONS(4357),
    [anon_sym_DOLLAR] = ACTIONS(4357),
    [anon_sym_STAR] = ACTIONS(4357),
    [anon_sym_TILDE] = ACTIONS(4357),
    [anon_sym_AT] = ACTIONS(4357),
    [sym_bool] = ACTIONS(4355),
    [sym_byte] = ACTIONS(4355),
    [sym_ubyte] = ACTIONS(4355),
    [sym_char] = ACTIONS(4355),
    [sym_short] = ACTIONS(4355),
    [sym_ushort] = ACTIONS(4355),
    [sym_int] = ACTIONS(4355),
    [sym_uint] = ACTIONS(4355),
    [sym_long] = ACTIONS(4355),
    [sym_ulong] = ACTIONS(4355),
    [sym_cent] = ACTIONS(4355),
    [sym_ucent] = ACTIONS(4355),
    [sym_wchar] = ACTIONS(4355),
    [sym_dchar] = ACTIONS(4355),
    [sym_float] = ACTIONS(4355),
    [sym_double] = ACTIONS(4355),
    [sym_real] = ACTIONS(4355),
    [sym_ifloat] = ACTIONS(4355),
    [sym_idouble] = ACTIONS(4355),
    [sym_ireal] = ACTIONS(4355),
    [sym_cfloat] = ACTIONS(4355),
    [sym_cdouble] = ACTIONS(4355),
    [sym_creal] = ACTIONS(4355),
    [sym_size_t] = ACTIONS(4355),
    [sym_ptrdiff_t] = ACTIONS(4355),
    [sym_string] = ACTIONS(4355),
    [sym_cstring] = ACTIONS(4355),
    [sym_dstring] = ACTIONS(4355),
    [sym_wstring] = ACTIONS(4355),
    [sym_noreturn] = ACTIONS(4355),
    [sym_true] = ACTIONS(4355),
    [sym_false] = ACTIONS(4355),
    [sym_null] = ACTIONS(4355),
    [sym_super] = ACTIONS(4355),
    [sym_this] = ACTIONS(4355),
    [sym_abstract] = ACTIONS(4355),
    [sym_alias] = ACTIONS(4355),
    [sym_align] = ACTIONS(4355),
    [sym_asm] = ACTIONS(4355),
    [sym_assert] = ACTIONS(4355),
    [sym_auto] = ACTIONS(4355),
    [sym_break] = ACTIONS(4355),
    [sym_case] = ACTIONS(4355),
    [sym_cast] = ACTIONS(4355),
    [sym_class] = ACTIONS(4355),
    [sym_const] = ACTIONS(4355),
    [sym_continue] = ACTIONS(4355),
    [sym_debug] = ACTIONS(4355),
    [sym_default] = ACTIONS(4355),
    [sym_delegate] = ACTIONS(4355),
    [sym_delete] = ACTIONS(4355),
    [sym_deprecated] = ACTIONS(4355),
    [sym_do] = ACTIONS(4355),
    [sym_else] = ACTIONS(4355),
    [sym_enum] = ACTIONS(4355),
    [sym_export] = ACTIONS(4355),
    [sym_extern] = ACTIONS(4355),
    [sym_final] = ACTIONS(4355),
    [sym_for] = ACTIONS(4355),
    [sym_foreach] = ACTIONS(4355),
    [sym_foreach_reverse] = ACTIONS(4355),
    [sym_function] = ACTIONS(4355),
    [sym_goto] = ACTIONS(4355),
    [sym_if] = ACTIONS(4355),
    [sym_immutable] = ACTIONS(4355),
    [sym_import] = ACTIONS(4355),
    [sym_in] = ACTIONS(4355),
    [sym_inout] = ACTIONS(4355),
    [sym_interface] = ACTIONS(4355),
    [sym_invariant] = ACTIONS(4355),
    [sym_is] = ACTIONS(4355),
    [sym_mixin] = ACTIONS(4355),
    [sym_new] = ACTIONS(4355),
    [sym_nothrow] = ACTIONS(4355),
    [sym_out] = ACTIONS(4355),
    [sym_override] = ACTIONS(4355),
    [sym_package] = ACTIONS(4355),
    [sym_pragma] = ACTIONS(4355),
    [sym_private] = ACTIONS(4355),
    [sym_protected] = ACTIONS(4355),
    [sym_public] = ACTIONS(4355),
    [sym_pure] = ACTIONS(4355),
    [sym_ref] = ACTIONS(4355),
    [sym_return] = ACTIONS(4355),
    [sym_scope] = ACTIONS(4355),
    [sym_shared] = ACTIONS(4355),
    [sym_static] = ACTIONS(4355),
    [sym_struct] = ACTIONS(4355),
    [sym_switch] = ACTIONS(4355),
    [sym_synchronized] = ACTIONS(4355),
    [sym_template] = ACTIONS(4355),
    [sym_throw] = ACTIONS(4355),
    [sym_try] = ACTIONS(4355),
    [sym_typeid] = ACTIONS(4355),
    [sym_typeof] = ACTIONS(4355),
    [sym_union] = ACTIONS(4355),
    [sym_unittest] = ACTIONS(4355),
    [sym_version] = ACTIONS(4355),
    [sym_while] = ACTIONS(4355),
    [sym_with] = ACTIONS(4355),
    [sym_gshared] = ACTIONS(4355),
    [sym_traits] = ACTIONS(4355),
    [sym_vector] = ACTIONS(4355),
    [sym_void] = ACTIONS(4355),
    [anon_sym_BQUOTE] = ACTIONS(4357),
    [anon_sym_r_DQUOTE] = ACTIONS(4357),
    [anon_sym_x_DQUOTE] = ACTIONS(4357),
    [anon_sym_DQUOTE] = ACTIONS(4357),
    [anon_sym_i_BQUOTE] = ACTIONS(4357),
    [anon_sym_i_DQUOTE] = ACTIONS(4357),
    [anon_sym_iq_LBRACE] = ACTIONS(4357),
    [aux_sym_char_literal_token1] = ACTIONS(4357),
    [anon_sym_SQUOTE] = ACTIONS(4355),
    [anon_sym___DATE__] = ACTIONS(4355),
    [anon_sym___FILE__] = ACTIONS(4355),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4355),
    [anon_sym___FUNCTION__] = ACTIONS(4355),
    [anon_sym___LINE__] = ACTIONS(4355),
    [anon_sym___MODULE__] = ACTIONS(4355),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4355),
    [anon_sym___TIME__] = ACTIONS(4355),
    [anon_sym___TIMESTAMP__] = ACTIONS(4355),
    [anon_sym___VENDOR__] = ACTIONS(4355),
    [anon_sym___VERSION__] = ACTIONS(4355),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4357),
    [sym_float_literal] = ACTIONS(4357),
    [sym__string] = ACTIONS(4357),
  },
  [1718] = {
    [sym_identifier] = ACTIONS(4343),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4345),
    [anon_sym_RBRACE] = ACTIONS(4345),
    [anon_sym_LBRACE] = ACTIONS(4345),
    [anon_sym_DOT] = ACTIONS(4345),
    [anon_sym_AMP] = ACTIONS(4345),
    [anon_sym_DASH] = ACTIONS(4343),
    [anon_sym_DASH_DASH] = ACTIONS(4345),
    [anon_sym_PLUS] = ACTIONS(4343),
    [anon_sym_PLUS_PLUS] = ACTIONS(4345),
    [anon_sym_BANG] = ACTIONS(4345),
    [anon_sym_LPAREN] = ACTIONS(4345),
    [anon_sym_RPAREN] = ACTIONS(4345),
    [anon_sym_LBRACK] = ACTIONS(4345),
    [anon_sym_SEMI] = ACTIONS(4345),
    [anon_sym_DOLLAR] = ACTIONS(4345),
    [anon_sym_STAR] = ACTIONS(4345),
    [anon_sym_TILDE] = ACTIONS(4345),
    [anon_sym_AT] = ACTIONS(4345),
    [sym_bool] = ACTIONS(4343),
    [sym_byte] = ACTIONS(4343),
    [sym_ubyte] = ACTIONS(4343),
    [sym_char] = ACTIONS(4343),
    [sym_short] = ACTIONS(4343),
    [sym_ushort] = ACTIONS(4343),
    [sym_int] = ACTIONS(4343),
    [sym_uint] = ACTIONS(4343),
    [sym_long] = ACTIONS(4343),
    [sym_ulong] = ACTIONS(4343),
    [sym_cent] = ACTIONS(4343),
    [sym_ucent] = ACTIONS(4343),
    [sym_wchar] = ACTIONS(4343),
    [sym_dchar] = ACTIONS(4343),
    [sym_float] = ACTIONS(4343),
    [sym_double] = ACTIONS(4343),
    [sym_real] = ACTIONS(4343),
    [sym_ifloat] = ACTIONS(4343),
    [sym_idouble] = ACTIONS(4343),
    [sym_ireal] = ACTIONS(4343),
    [sym_cfloat] = ACTIONS(4343),
    [sym_cdouble] = ACTIONS(4343),
    [sym_creal] = ACTIONS(4343),
    [sym_size_t] = ACTIONS(4343),
    [sym_ptrdiff_t] = ACTIONS(4343),
    [sym_string] = ACTIONS(4343),
    [sym_cstring] = ACTIONS(4343),
    [sym_dstring] = ACTIONS(4343),
    [sym_wstring] = ACTIONS(4343),
    [sym_noreturn] = ACTIONS(4343),
    [sym_true] = ACTIONS(4343),
    [sym_false] = ACTIONS(4343),
    [sym_null] = ACTIONS(4343),
    [sym_super] = ACTIONS(4343),
    [sym_this] = ACTIONS(4343),
    [sym_abstract] = ACTIONS(4343),
    [sym_alias] = ACTIONS(4343),
    [sym_align] = ACTIONS(4343),
    [sym_asm] = ACTIONS(4343),
    [sym_assert] = ACTIONS(4343),
    [sym_auto] = ACTIONS(4343),
    [sym_break] = ACTIONS(4343),
    [sym_case] = ACTIONS(4343),
    [sym_cast] = ACTIONS(4343),
    [sym_class] = ACTIONS(4343),
    [sym_const] = ACTIONS(4343),
    [sym_continue] = ACTIONS(4343),
    [sym_debug] = ACTIONS(4343),
    [sym_default] = ACTIONS(4343),
    [sym_delegate] = ACTIONS(4343),
    [sym_delete] = ACTIONS(4343),
    [sym_deprecated] = ACTIONS(4343),
    [sym_do] = ACTIONS(4343),
    [sym_else] = ACTIONS(4343),
    [sym_enum] = ACTIONS(4343),
    [sym_export] = ACTIONS(4343),
    [sym_extern] = ACTIONS(4343),
    [sym_final] = ACTIONS(4343),
    [sym_for] = ACTIONS(4343),
    [sym_foreach] = ACTIONS(4343),
    [sym_foreach_reverse] = ACTIONS(4343),
    [sym_function] = ACTIONS(4343),
    [sym_goto] = ACTIONS(4343),
    [sym_if] = ACTIONS(4343),
    [sym_immutable] = ACTIONS(4343),
    [sym_import] = ACTIONS(4343),
    [sym_in] = ACTIONS(4343),
    [sym_inout] = ACTIONS(4343),
    [sym_interface] = ACTIONS(4343),
    [sym_invariant] = ACTIONS(4343),
    [sym_is] = ACTIONS(4343),
    [sym_mixin] = ACTIONS(4343),
    [sym_new] = ACTIONS(4343),
    [sym_nothrow] = ACTIONS(4343),
    [sym_out] = ACTIONS(4343),
    [sym_override] = ACTIONS(4343),
    [sym_package] = ACTIONS(4343),
    [sym_pragma] = ACTIONS(4343),
    [sym_private] = ACTIONS(4343),
    [sym_protected] = ACTIONS(4343),
    [sym_public] = ACTIONS(4343),
    [sym_pure] = ACTIONS(4343),
    [sym_ref] = ACTIONS(4343),
    [sym_return] = ACTIONS(4343),
    [sym_scope] = ACTIONS(4343),
    [sym_shared] = ACTIONS(4343),
    [sym_static] = ACTIONS(4343),
    [sym_struct] = ACTIONS(4343),
    [sym_switch] = ACTIONS(4343),
    [sym_synchronized] = ACTIONS(4343),
    [sym_template] = ACTIONS(4343),
    [sym_throw] = ACTIONS(4343),
    [sym_try] = ACTIONS(4343),
    [sym_typeid] = ACTIONS(4343),
    [sym_typeof] = ACTIONS(4343),
    [sym_union] = ACTIONS(4343),
    [sym_unittest] = ACTIONS(4343),
    [sym_version] = ACTIONS(4343),
    [sym_while] = ACTIONS(4343),
    [sym_with] = ACTIONS(4343),
    [sym_gshared] = ACTIONS(4343),
    [sym_traits] = ACTIONS(4343),
    [sym_vector] = ACTIONS(4343),
    [sym_void] = ACTIONS(4343),
    [anon_sym_BQUOTE] = ACTIONS(4345),
    [anon_sym_r_DQUOTE] = ACTIONS(4345),
    [anon_sym_x_DQUOTE] = ACTIONS(4345),
    [anon_sym_DQUOTE] = ACTIONS(4345),
    [anon_sym_i_BQUOTE] = ACTIONS(4345),
    [anon_sym_i_DQUOTE] = ACTIONS(4345),
    [anon_sym_iq_LBRACE] = ACTIONS(4345),
    [aux_sym_char_literal_token1] = ACTIONS(4345),
    [anon_sym_SQUOTE] = ACTIONS(4343),
    [anon_sym___DATE__] = ACTIONS(4343),
    [anon_sym___FILE__] = ACTIONS(4343),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4343),
    [anon_sym___FUNCTION__] = ACTIONS(4343),
    [anon_sym___LINE__] = ACTIONS(4343),
    [anon_sym___MODULE__] = ACTIONS(4343),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4343),
    [anon_sym___TIME__] = ACTIONS(4343),
    [anon_sym___TIMESTAMP__] = ACTIONS(4343),
    [anon_sym___VENDOR__] = ACTIONS(4343),
    [anon_sym___VERSION__] = ACTIONS(4343),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4345),
    [sym_float_literal] = ACTIONS(4345),
    [sym__string] = ACTIONS(4345),
  },
  [1719] = {
    [sym_identifier] = ACTIONS(4331),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4333),
    [anon_sym_RBRACE] = ACTIONS(4333),
    [anon_sym_LBRACE] = ACTIONS(4333),
    [anon_sym_DOT] = ACTIONS(4333),
    [anon_sym_AMP] = ACTIONS(4333),
    [anon_sym_DASH] = ACTIONS(4331),
    [anon_sym_DASH_DASH] = ACTIONS(4333),
    [anon_sym_PLUS] = ACTIONS(4331),
    [anon_sym_PLUS_PLUS] = ACTIONS(4333),
    [anon_sym_BANG] = ACTIONS(4333),
    [anon_sym_LPAREN] = ACTIONS(4333),
    [anon_sym_RPAREN] = ACTIONS(4333),
    [anon_sym_LBRACK] = ACTIONS(4333),
    [anon_sym_SEMI] = ACTIONS(4333),
    [anon_sym_DOLLAR] = ACTIONS(4333),
    [anon_sym_STAR] = ACTIONS(4333),
    [anon_sym_TILDE] = ACTIONS(4333),
    [anon_sym_AT] = ACTIONS(4333),
    [sym_bool] = ACTIONS(4331),
    [sym_byte] = ACTIONS(4331),
    [sym_ubyte] = ACTIONS(4331),
    [sym_char] = ACTIONS(4331),
    [sym_short] = ACTIONS(4331),
    [sym_ushort] = ACTIONS(4331),
    [sym_int] = ACTIONS(4331),
    [sym_uint] = ACTIONS(4331),
    [sym_long] = ACTIONS(4331),
    [sym_ulong] = ACTIONS(4331),
    [sym_cent] = ACTIONS(4331),
    [sym_ucent] = ACTIONS(4331),
    [sym_wchar] = ACTIONS(4331),
    [sym_dchar] = ACTIONS(4331),
    [sym_float] = ACTIONS(4331),
    [sym_double] = ACTIONS(4331),
    [sym_real] = ACTIONS(4331),
    [sym_ifloat] = ACTIONS(4331),
    [sym_idouble] = ACTIONS(4331),
    [sym_ireal] = ACTIONS(4331),
    [sym_cfloat] = ACTIONS(4331),
    [sym_cdouble] = ACTIONS(4331),
    [sym_creal] = ACTIONS(4331),
    [sym_size_t] = ACTIONS(4331),
    [sym_ptrdiff_t] = ACTIONS(4331),
    [sym_string] = ACTIONS(4331),
    [sym_cstring] = ACTIONS(4331),
    [sym_dstring] = ACTIONS(4331),
    [sym_wstring] = ACTIONS(4331),
    [sym_noreturn] = ACTIONS(4331),
    [sym_true] = ACTIONS(4331),
    [sym_false] = ACTIONS(4331),
    [sym_null] = ACTIONS(4331),
    [sym_super] = ACTIONS(4331),
    [sym_this] = ACTIONS(4331),
    [sym_abstract] = ACTIONS(4331),
    [sym_alias] = ACTIONS(4331),
    [sym_align] = ACTIONS(4331),
    [sym_asm] = ACTIONS(4331),
    [sym_assert] = ACTIONS(4331),
    [sym_auto] = ACTIONS(4331),
    [sym_break] = ACTIONS(4331),
    [sym_case] = ACTIONS(4331),
    [sym_cast] = ACTIONS(4331),
    [sym_class] = ACTIONS(4331),
    [sym_const] = ACTIONS(4331),
    [sym_continue] = ACTIONS(4331),
    [sym_debug] = ACTIONS(4331),
    [sym_default] = ACTIONS(4331),
    [sym_delegate] = ACTIONS(4331),
    [sym_delete] = ACTIONS(4331),
    [sym_deprecated] = ACTIONS(4331),
    [sym_do] = ACTIONS(4331),
    [sym_else] = ACTIONS(4331),
    [sym_enum] = ACTIONS(4331),
    [sym_export] = ACTIONS(4331),
    [sym_extern] = ACTIONS(4331),
    [sym_final] = ACTIONS(4331),
    [sym_for] = ACTIONS(4331),
    [sym_foreach] = ACTIONS(4331),
    [sym_foreach_reverse] = ACTIONS(4331),
    [sym_function] = ACTIONS(4331),
    [sym_goto] = ACTIONS(4331),
    [sym_if] = ACTIONS(4331),
    [sym_immutable] = ACTIONS(4331),
    [sym_import] = ACTIONS(4331),
    [sym_in] = ACTIONS(4331),
    [sym_inout] = ACTIONS(4331),
    [sym_interface] = ACTIONS(4331),
    [sym_invariant] = ACTIONS(4331),
    [sym_is] = ACTIONS(4331),
    [sym_mixin] = ACTIONS(4331),
    [sym_new] = ACTIONS(4331),
    [sym_nothrow] = ACTIONS(4331),
    [sym_out] = ACTIONS(4331),
    [sym_override] = ACTIONS(4331),
    [sym_package] = ACTIONS(4331),
    [sym_pragma] = ACTIONS(4331),
    [sym_private] = ACTIONS(4331),
    [sym_protected] = ACTIONS(4331),
    [sym_public] = ACTIONS(4331),
    [sym_pure] = ACTIONS(4331),
    [sym_ref] = ACTIONS(4331),
    [sym_return] = ACTIONS(4331),
    [sym_scope] = ACTIONS(4331),
    [sym_shared] = ACTIONS(4331),
    [sym_static] = ACTIONS(4331),
    [sym_struct] = ACTIONS(4331),
    [sym_switch] = ACTIONS(4331),
    [sym_synchronized] = ACTIONS(4331),
    [sym_template] = ACTIONS(4331),
    [sym_throw] = ACTIONS(4331),
    [sym_try] = ACTIONS(4331),
    [sym_typeid] = ACTIONS(4331),
    [sym_typeof] = ACTIONS(4331),
    [sym_union] = ACTIONS(4331),
    [sym_unittest] = ACTIONS(4331),
    [sym_version] = ACTIONS(4331),
    [sym_while] = ACTIONS(4331),
    [sym_with] = ACTIONS(4331),
    [sym_gshared] = ACTIONS(4331),
    [sym_traits] = ACTIONS(4331),
    [sym_vector] = ACTIONS(4331),
    [sym_void] = ACTIONS(4331),
    [anon_sym_BQUOTE] = ACTIONS(4333),
    [anon_sym_r_DQUOTE] = ACTIONS(4333),
    [anon_sym_x_DQUOTE] = ACTIONS(4333),
    [anon_sym_DQUOTE] = ACTIONS(4333),
    [anon_sym_i_BQUOTE] = ACTIONS(4333),
    [anon_sym_i_DQUOTE] = ACTIONS(4333),
    [anon_sym_iq_LBRACE] = ACTIONS(4333),
    [aux_sym_char_literal_token1] = ACTIONS(4333),
    [anon_sym_SQUOTE] = ACTIONS(4331),
    [anon_sym___DATE__] = ACTIONS(4331),
    [anon_sym___FILE__] = ACTIONS(4331),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4331),
    [anon_sym___FUNCTION__] = ACTIONS(4331),
    [anon_sym___LINE__] = ACTIONS(4331),
    [anon_sym___MODULE__] = ACTIONS(4331),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4331),
    [anon_sym___TIME__] = ACTIONS(4331),
    [anon_sym___TIMESTAMP__] = ACTIONS(4331),
    [anon_sym___VENDOR__] = ACTIONS(4331),
    [anon_sym___VERSION__] = ACTIONS(4331),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4333),
    [sym_float_literal] = ACTIONS(4333),
    [sym__string] = ACTIONS(4333),
  },
  [1720] = {
    [sym_identifier] = ACTIONS(4317),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4319),
    [anon_sym_RBRACE] = ACTIONS(4319),
    [anon_sym_LBRACE] = ACTIONS(4319),
    [anon_sym_DOT] = ACTIONS(4319),
    [anon_sym_AMP] = ACTIONS(4319),
    [anon_sym_DASH] = ACTIONS(4317),
    [anon_sym_DASH_DASH] = ACTIONS(4319),
    [anon_sym_PLUS] = ACTIONS(4317),
    [anon_sym_PLUS_PLUS] = ACTIONS(4319),
    [anon_sym_BANG] = ACTIONS(4319),
    [anon_sym_LPAREN] = ACTIONS(4319),
    [anon_sym_RPAREN] = ACTIONS(4319),
    [anon_sym_LBRACK] = ACTIONS(4319),
    [anon_sym_SEMI] = ACTIONS(4319),
    [anon_sym_DOLLAR] = ACTIONS(4319),
    [anon_sym_STAR] = ACTIONS(4319),
    [anon_sym_TILDE] = ACTIONS(4319),
    [anon_sym_AT] = ACTIONS(4319),
    [sym_bool] = ACTIONS(4317),
    [sym_byte] = ACTIONS(4317),
    [sym_ubyte] = ACTIONS(4317),
    [sym_char] = ACTIONS(4317),
    [sym_short] = ACTIONS(4317),
    [sym_ushort] = ACTIONS(4317),
    [sym_int] = ACTIONS(4317),
    [sym_uint] = ACTIONS(4317),
    [sym_long] = ACTIONS(4317),
    [sym_ulong] = ACTIONS(4317),
    [sym_cent] = ACTIONS(4317),
    [sym_ucent] = ACTIONS(4317),
    [sym_wchar] = ACTIONS(4317),
    [sym_dchar] = ACTIONS(4317),
    [sym_float] = ACTIONS(4317),
    [sym_double] = ACTIONS(4317),
    [sym_real] = ACTIONS(4317),
    [sym_ifloat] = ACTIONS(4317),
    [sym_idouble] = ACTIONS(4317),
    [sym_ireal] = ACTIONS(4317),
    [sym_cfloat] = ACTIONS(4317),
    [sym_cdouble] = ACTIONS(4317),
    [sym_creal] = ACTIONS(4317),
    [sym_size_t] = ACTIONS(4317),
    [sym_ptrdiff_t] = ACTIONS(4317),
    [sym_string] = ACTIONS(4317),
    [sym_cstring] = ACTIONS(4317),
    [sym_dstring] = ACTIONS(4317),
    [sym_wstring] = ACTIONS(4317),
    [sym_noreturn] = ACTIONS(4317),
    [sym_true] = ACTIONS(4317),
    [sym_false] = ACTIONS(4317),
    [sym_null] = ACTIONS(4317),
    [sym_super] = ACTIONS(4317),
    [sym_this] = ACTIONS(4317),
    [sym_abstract] = ACTIONS(4317),
    [sym_alias] = ACTIONS(4317),
    [sym_align] = ACTIONS(4317),
    [sym_asm] = ACTIONS(4317),
    [sym_assert] = ACTIONS(4317),
    [sym_auto] = ACTIONS(4317),
    [sym_break] = ACTIONS(4317),
    [sym_case] = ACTIONS(4317),
    [sym_cast] = ACTIONS(4317),
    [sym_class] = ACTIONS(4317),
    [sym_const] = ACTIONS(4317),
    [sym_continue] = ACTIONS(4317),
    [sym_debug] = ACTIONS(4317),
    [sym_default] = ACTIONS(4317),
    [sym_delegate] = ACTIONS(4317),
    [sym_delete] = ACTIONS(4317),
    [sym_deprecated] = ACTIONS(4317),
    [sym_do] = ACTIONS(4317),
    [sym_else] = ACTIONS(4317),
    [sym_enum] = ACTIONS(4317),
    [sym_export] = ACTIONS(4317),
    [sym_extern] = ACTIONS(4317),
    [sym_final] = ACTIONS(4317),
    [sym_for] = ACTIONS(4317),
    [sym_foreach] = ACTIONS(4317),
    [sym_foreach_reverse] = ACTIONS(4317),
    [sym_function] = ACTIONS(4317),
    [sym_goto] = ACTIONS(4317),
    [sym_if] = ACTIONS(4317),
    [sym_immutable] = ACTIONS(4317),
    [sym_import] = ACTIONS(4317),
    [sym_in] = ACTIONS(4317),
    [sym_inout] = ACTIONS(4317),
    [sym_interface] = ACTIONS(4317),
    [sym_invariant] = ACTIONS(4317),
    [sym_is] = ACTIONS(4317),
    [sym_mixin] = ACTIONS(4317),
    [sym_new] = ACTIONS(4317),
    [sym_nothrow] = ACTIONS(4317),
    [sym_out] = ACTIONS(4317),
    [sym_override] = ACTIONS(4317),
    [sym_package] = ACTIONS(4317),
    [sym_pragma] = ACTIONS(4317),
    [sym_private] = ACTIONS(4317),
    [sym_protected] = ACTIONS(4317),
    [sym_public] = ACTIONS(4317),
    [sym_pure] = ACTIONS(4317),
    [sym_ref] = ACTIONS(4317),
    [sym_return] = ACTIONS(4317),
    [sym_scope] = ACTIONS(4317),
    [sym_shared] = ACTIONS(4317),
    [sym_static] = ACTIONS(4317),
    [sym_struct] = ACTIONS(4317),
    [sym_switch] = ACTIONS(4317),
    [sym_synchronized] = ACTIONS(4317),
    [sym_template] = ACTIONS(4317),
    [sym_throw] = ACTIONS(4317),
    [sym_try] = ACTIONS(4317),
    [sym_typeid] = ACTIONS(4317),
    [sym_typeof] = ACTIONS(4317),
    [sym_union] = ACTIONS(4317),
    [sym_unittest] = ACTIONS(4317),
    [sym_version] = ACTIONS(4317),
    [sym_while] = ACTIONS(4317),
    [sym_with] = ACTIONS(4317),
    [sym_gshared] = ACTIONS(4317),
    [sym_traits] = ACTIONS(4317),
    [sym_vector] = ACTIONS(4317),
    [sym_void] = ACTIONS(4317),
    [anon_sym_BQUOTE] = ACTIONS(4319),
    [anon_sym_r_DQUOTE] = ACTIONS(4319),
    [anon_sym_x_DQUOTE] = ACTIONS(4319),
    [anon_sym_DQUOTE] = ACTIONS(4319),
    [anon_sym_i_BQUOTE] = ACTIONS(4319),
    [anon_sym_i_DQUOTE] = ACTIONS(4319),
    [anon_sym_iq_LBRACE] = ACTIONS(4319),
    [aux_sym_char_literal_token1] = ACTIONS(4319),
    [anon_sym_SQUOTE] = ACTIONS(4317),
    [anon_sym___DATE__] = ACTIONS(4317),
    [anon_sym___FILE__] = ACTIONS(4317),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4317),
    [anon_sym___FUNCTION__] = ACTIONS(4317),
    [anon_sym___LINE__] = ACTIONS(4317),
    [anon_sym___MODULE__] = ACTIONS(4317),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4317),
    [anon_sym___TIME__] = ACTIONS(4317),
    [anon_sym___TIMESTAMP__] = ACTIONS(4317),
    [anon_sym___VENDOR__] = ACTIONS(4317),
    [anon_sym___VERSION__] = ACTIONS(4317),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4319),
    [sym_float_literal] = ACTIONS(4319),
    [sym__string] = ACTIONS(4319),
  },
  [1721] = {
    [sym_identifier] = ACTIONS(4301),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4303),
    [anon_sym_RBRACE] = ACTIONS(4303),
    [anon_sym_LBRACE] = ACTIONS(4303),
    [anon_sym_DOT] = ACTIONS(4303),
    [anon_sym_AMP] = ACTIONS(4303),
    [anon_sym_DASH] = ACTIONS(4301),
    [anon_sym_DASH_DASH] = ACTIONS(4303),
    [anon_sym_PLUS] = ACTIONS(4301),
    [anon_sym_PLUS_PLUS] = ACTIONS(4303),
    [anon_sym_BANG] = ACTIONS(4303),
    [anon_sym_LPAREN] = ACTIONS(4303),
    [anon_sym_RPAREN] = ACTIONS(4303),
    [anon_sym_LBRACK] = ACTIONS(4303),
    [anon_sym_SEMI] = ACTIONS(4303),
    [anon_sym_DOLLAR] = ACTIONS(4303),
    [anon_sym_STAR] = ACTIONS(4303),
    [anon_sym_TILDE] = ACTIONS(4303),
    [anon_sym_AT] = ACTIONS(4303),
    [sym_bool] = ACTIONS(4301),
    [sym_byte] = ACTIONS(4301),
    [sym_ubyte] = ACTIONS(4301),
    [sym_char] = ACTIONS(4301),
    [sym_short] = ACTIONS(4301),
    [sym_ushort] = ACTIONS(4301),
    [sym_int] = ACTIONS(4301),
    [sym_uint] = ACTIONS(4301),
    [sym_long] = ACTIONS(4301),
    [sym_ulong] = ACTIONS(4301),
    [sym_cent] = ACTIONS(4301),
    [sym_ucent] = ACTIONS(4301),
    [sym_wchar] = ACTIONS(4301),
    [sym_dchar] = ACTIONS(4301),
    [sym_float] = ACTIONS(4301),
    [sym_double] = ACTIONS(4301),
    [sym_real] = ACTIONS(4301),
    [sym_ifloat] = ACTIONS(4301),
    [sym_idouble] = ACTIONS(4301),
    [sym_ireal] = ACTIONS(4301),
    [sym_cfloat] = ACTIONS(4301),
    [sym_cdouble] = ACTIONS(4301),
    [sym_creal] = ACTIONS(4301),
    [sym_size_t] = ACTIONS(4301),
    [sym_ptrdiff_t] = ACTIONS(4301),
    [sym_string] = ACTIONS(4301),
    [sym_cstring] = ACTIONS(4301),
    [sym_dstring] = ACTIONS(4301),
    [sym_wstring] = ACTIONS(4301),
    [sym_noreturn] = ACTIONS(4301),
    [sym_true] = ACTIONS(4301),
    [sym_false] = ACTIONS(4301),
    [sym_null] = ACTIONS(4301),
    [sym_super] = ACTIONS(4301),
    [sym_this] = ACTIONS(4301),
    [sym_abstract] = ACTIONS(4301),
    [sym_alias] = ACTIONS(4301),
    [sym_align] = ACTIONS(4301),
    [sym_asm] = ACTIONS(4301),
    [sym_assert] = ACTIONS(4301),
    [sym_auto] = ACTIONS(4301),
    [sym_break] = ACTIONS(4301),
    [sym_case] = ACTIONS(4301),
    [sym_cast] = ACTIONS(4301),
    [sym_class] = ACTIONS(4301),
    [sym_const] = ACTIONS(4301),
    [sym_continue] = ACTIONS(4301),
    [sym_debug] = ACTIONS(4301),
    [sym_default] = ACTIONS(4301),
    [sym_delegate] = ACTIONS(4301),
    [sym_delete] = ACTIONS(4301),
    [sym_deprecated] = ACTIONS(4301),
    [sym_do] = ACTIONS(4301),
    [sym_else] = ACTIONS(4301),
    [sym_enum] = ACTIONS(4301),
    [sym_export] = ACTIONS(4301),
    [sym_extern] = ACTIONS(4301),
    [sym_final] = ACTIONS(4301),
    [sym_for] = ACTIONS(4301),
    [sym_foreach] = ACTIONS(4301),
    [sym_foreach_reverse] = ACTIONS(4301),
    [sym_function] = ACTIONS(4301),
    [sym_goto] = ACTIONS(4301),
    [sym_if] = ACTIONS(4301),
    [sym_immutable] = ACTIONS(4301),
    [sym_import] = ACTIONS(4301),
    [sym_in] = ACTIONS(4301),
    [sym_inout] = ACTIONS(4301),
    [sym_interface] = ACTIONS(4301),
    [sym_invariant] = ACTIONS(4301),
    [sym_is] = ACTIONS(4301),
    [sym_mixin] = ACTIONS(4301),
    [sym_new] = ACTIONS(4301),
    [sym_nothrow] = ACTIONS(4301),
    [sym_out] = ACTIONS(4301),
    [sym_override] = ACTIONS(4301),
    [sym_package] = ACTIONS(4301),
    [sym_pragma] = ACTIONS(4301),
    [sym_private] = ACTIONS(4301),
    [sym_protected] = ACTIONS(4301),
    [sym_public] = ACTIONS(4301),
    [sym_pure] = ACTIONS(4301),
    [sym_ref] = ACTIONS(4301),
    [sym_return] = ACTIONS(4301),
    [sym_scope] = ACTIONS(4301),
    [sym_shared] = ACTIONS(4301),
    [sym_static] = ACTIONS(4301),
    [sym_struct] = ACTIONS(4301),
    [sym_switch] = ACTIONS(4301),
    [sym_synchronized] = ACTIONS(4301),
    [sym_template] = ACTIONS(4301),
    [sym_throw] = ACTIONS(4301),
    [sym_try] = ACTIONS(4301),
    [sym_typeid] = ACTIONS(4301),
    [sym_typeof] = ACTIONS(4301),
    [sym_union] = ACTIONS(4301),
    [sym_unittest] = ACTIONS(4301),
    [sym_version] = ACTIONS(4301),
    [sym_while] = ACTIONS(4301),
    [sym_with] = ACTIONS(4301),
    [sym_gshared] = ACTIONS(4301),
    [sym_traits] = ACTIONS(4301),
    [sym_vector] = ACTIONS(4301),
    [sym_void] = ACTIONS(4301),
    [anon_sym_BQUOTE] = ACTIONS(4303),
    [anon_sym_r_DQUOTE] = ACTIONS(4303),
    [anon_sym_x_DQUOTE] = ACTIONS(4303),
    [anon_sym_DQUOTE] = ACTIONS(4303),
    [anon_sym_i_BQUOTE] = ACTIONS(4303),
    [anon_sym_i_DQUOTE] = ACTIONS(4303),
    [anon_sym_iq_LBRACE] = ACTIONS(4303),
    [aux_sym_char_literal_token1] = ACTIONS(4303),
    [anon_sym_SQUOTE] = ACTIONS(4301),
    [anon_sym___DATE__] = ACTIONS(4301),
    [anon_sym___FILE__] = ACTIONS(4301),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4301),
    [anon_sym___FUNCTION__] = ACTIONS(4301),
    [anon_sym___LINE__] = ACTIONS(4301),
    [anon_sym___MODULE__] = ACTIONS(4301),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4301),
    [anon_sym___TIME__] = ACTIONS(4301),
    [anon_sym___TIMESTAMP__] = ACTIONS(4301),
    [anon_sym___VENDOR__] = ACTIONS(4301),
    [anon_sym___VERSION__] = ACTIONS(4301),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4303),
    [sym_float_literal] = ACTIONS(4303),
    [sym__string] = ACTIONS(4303),
  },
  [1722] = {
    [sym_identifier] = ACTIONS(4708),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4710),
    [anon_sym_RBRACE] = ACTIONS(4710),
    [anon_sym_LBRACE] = ACTIONS(4710),
    [anon_sym_DOT] = ACTIONS(4710),
    [anon_sym_AMP] = ACTIONS(4710),
    [anon_sym_DASH] = ACTIONS(4708),
    [anon_sym_DASH_DASH] = ACTIONS(4710),
    [anon_sym_PLUS] = ACTIONS(4708),
    [anon_sym_PLUS_PLUS] = ACTIONS(4710),
    [anon_sym_BANG] = ACTIONS(4710),
    [anon_sym_LPAREN] = ACTIONS(4710),
    [anon_sym_RPAREN] = ACTIONS(4710),
    [anon_sym_LBRACK] = ACTIONS(4710),
    [anon_sym_SEMI] = ACTIONS(4710),
    [anon_sym_DOLLAR] = ACTIONS(4710),
    [anon_sym_STAR] = ACTIONS(4710),
    [anon_sym_TILDE] = ACTIONS(4710),
    [anon_sym_AT] = ACTIONS(4710),
    [sym_bool] = ACTIONS(4708),
    [sym_byte] = ACTIONS(4708),
    [sym_ubyte] = ACTIONS(4708),
    [sym_char] = ACTIONS(4708),
    [sym_short] = ACTIONS(4708),
    [sym_ushort] = ACTIONS(4708),
    [sym_int] = ACTIONS(4708),
    [sym_uint] = ACTIONS(4708),
    [sym_long] = ACTIONS(4708),
    [sym_ulong] = ACTIONS(4708),
    [sym_cent] = ACTIONS(4708),
    [sym_ucent] = ACTIONS(4708),
    [sym_wchar] = ACTIONS(4708),
    [sym_dchar] = ACTIONS(4708),
    [sym_float] = ACTIONS(4708),
    [sym_double] = ACTIONS(4708),
    [sym_real] = ACTIONS(4708),
    [sym_ifloat] = ACTIONS(4708),
    [sym_idouble] = ACTIONS(4708),
    [sym_ireal] = ACTIONS(4708),
    [sym_cfloat] = ACTIONS(4708),
    [sym_cdouble] = ACTIONS(4708),
    [sym_creal] = ACTIONS(4708),
    [sym_size_t] = ACTIONS(4708),
    [sym_ptrdiff_t] = ACTIONS(4708),
    [sym_string] = ACTIONS(4708),
    [sym_cstring] = ACTIONS(4708),
    [sym_dstring] = ACTIONS(4708),
    [sym_wstring] = ACTIONS(4708),
    [sym_noreturn] = ACTIONS(4708),
    [sym_true] = ACTIONS(4708),
    [sym_false] = ACTIONS(4708),
    [sym_null] = ACTIONS(4708),
    [sym_super] = ACTIONS(4708),
    [sym_this] = ACTIONS(4708),
    [sym_abstract] = ACTIONS(4708),
    [sym_alias] = ACTIONS(4708),
    [sym_align] = ACTIONS(4708),
    [sym_asm] = ACTIONS(4708),
    [sym_assert] = ACTIONS(4708),
    [sym_auto] = ACTIONS(4708),
    [sym_break] = ACTIONS(4708),
    [sym_case] = ACTIONS(4708),
    [sym_cast] = ACTIONS(4708),
    [sym_class] = ACTIONS(4708),
    [sym_const] = ACTIONS(4708),
    [sym_continue] = ACTIONS(4708),
    [sym_debug] = ACTIONS(4708),
    [sym_default] = ACTIONS(4708),
    [sym_delegate] = ACTIONS(4708),
    [sym_delete] = ACTIONS(4708),
    [sym_deprecated] = ACTIONS(4708),
    [sym_do] = ACTIONS(4708),
    [sym_else] = ACTIONS(4708),
    [sym_enum] = ACTIONS(4708),
    [sym_export] = ACTIONS(4708),
    [sym_extern] = ACTIONS(4708),
    [sym_final] = ACTIONS(4708),
    [sym_for] = ACTIONS(4708),
    [sym_foreach] = ACTIONS(4708),
    [sym_foreach_reverse] = ACTIONS(4708),
    [sym_function] = ACTIONS(4708),
    [sym_goto] = ACTIONS(4708),
    [sym_if] = ACTIONS(4708),
    [sym_immutable] = ACTIONS(4708),
    [sym_import] = ACTIONS(4708),
    [sym_in] = ACTIONS(4708),
    [sym_inout] = ACTIONS(4708),
    [sym_interface] = ACTIONS(4708),
    [sym_invariant] = ACTIONS(4708),
    [sym_is] = ACTIONS(4708),
    [sym_mixin] = ACTIONS(4708),
    [sym_new] = ACTIONS(4708),
    [sym_nothrow] = ACTIONS(4708),
    [sym_out] = ACTIONS(4708),
    [sym_override] = ACTIONS(4708),
    [sym_package] = ACTIONS(4708),
    [sym_pragma] = ACTIONS(4708),
    [sym_private] = ACTIONS(4708),
    [sym_protected] = ACTIONS(4708),
    [sym_public] = ACTIONS(4708),
    [sym_pure] = ACTIONS(4708),
    [sym_ref] = ACTIONS(4708),
    [sym_return] = ACTIONS(4708),
    [sym_scope] = ACTIONS(4708),
    [sym_shared] = ACTIONS(4708),
    [sym_static] = ACTIONS(4708),
    [sym_struct] = ACTIONS(4708),
    [sym_switch] = ACTIONS(4708),
    [sym_synchronized] = ACTIONS(4708),
    [sym_template] = ACTIONS(4708),
    [sym_throw] = ACTIONS(4708),
    [sym_try] = ACTIONS(4708),
    [sym_typeid] = ACTIONS(4708),
    [sym_typeof] = ACTIONS(4708),
    [sym_union] = ACTIONS(4708),
    [sym_unittest] = ACTIONS(4708),
    [sym_version] = ACTIONS(4708),
    [sym_while] = ACTIONS(4708),
    [sym_with] = ACTIONS(4708),
    [sym_gshared] = ACTIONS(4708),
    [sym_traits] = ACTIONS(4708),
    [sym_vector] = ACTIONS(4708),
    [sym_void] = ACTIONS(4708),
    [anon_sym_BQUOTE] = ACTIONS(4710),
    [anon_sym_r_DQUOTE] = ACTIONS(4710),
    [anon_sym_x_DQUOTE] = ACTIONS(4710),
    [anon_sym_DQUOTE] = ACTIONS(4710),
    [anon_sym_i_BQUOTE] = ACTIONS(4710),
    [anon_sym_i_DQUOTE] = ACTIONS(4710),
    [anon_sym_iq_LBRACE] = ACTIONS(4710),
    [aux_sym_char_literal_token1] = ACTIONS(4710),
    [anon_sym_SQUOTE] = ACTIONS(4708),
    [anon_sym___DATE__] = ACTIONS(4708),
    [anon_sym___FILE__] = ACTIONS(4708),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4708),
    [anon_sym___FUNCTION__] = ACTIONS(4708),
    [anon_sym___LINE__] = ACTIONS(4708),
    [anon_sym___MODULE__] = ACTIONS(4708),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4708),
    [anon_sym___TIME__] = ACTIONS(4708),
    [anon_sym___TIMESTAMP__] = ACTIONS(4708),
    [anon_sym___VENDOR__] = ACTIONS(4708),
    [anon_sym___VERSION__] = ACTIONS(4708),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4710),
    [sym_float_literal] = ACTIONS(4710),
    [sym__string] = ACTIONS(4710),
  },
  [1723] = {
    [sym_identifier] = ACTIONS(4586),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4588),
    [anon_sym_RBRACE] = ACTIONS(4588),
    [anon_sym_LBRACE] = ACTIONS(4588),
    [anon_sym_DOT] = ACTIONS(4588),
    [anon_sym_AMP] = ACTIONS(4588),
    [anon_sym_DASH] = ACTIONS(4586),
    [anon_sym_DASH_DASH] = ACTIONS(4588),
    [anon_sym_PLUS] = ACTIONS(4586),
    [anon_sym_PLUS_PLUS] = ACTIONS(4588),
    [anon_sym_BANG] = ACTIONS(4588),
    [anon_sym_LPAREN] = ACTIONS(4588),
    [anon_sym_RPAREN] = ACTIONS(4588),
    [anon_sym_LBRACK] = ACTIONS(4588),
    [anon_sym_SEMI] = ACTIONS(4588),
    [anon_sym_DOLLAR] = ACTIONS(4588),
    [anon_sym_STAR] = ACTIONS(4588),
    [anon_sym_TILDE] = ACTIONS(4588),
    [anon_sym_AT] = ACTIONS(4588),
    [sym_bool] = ACTIONS(4586),
    [sym_byte] = ACTIONS(4586),
    [sym_ubyte] = ACTIONS(4586),
    [sym_char] = ACTIONS(4586),
    [sym_short] = ACTIONS(4586),
    [sym_ushort] = ACTIONS(4586),
    [sym_int] = ACTIONS(4586),
    [sym_uint] = ACTIONS(4586),
    [sym_long] = ACTIONS(4586),
    [sym_ulong] = ACTIONS(4586),
    [sym_cent] = ACTIONS(4586),
    [sym_ucent] = ACTIONS(4586),
    [sym_wchar] = ACTIONS(4586),
    [sym_dchar] = ACTIONS(4586),
    [sym_float] = ACTIONS(4586),
    [sym_double] = ACTIONS(4586),
    [sym_real] = ACTIONS(4586),
    [sym_ifloat] = ACTIONS(4586),
    [sym_idouble] = ACTIONS(4586),
    [sym_ireal] = ACTIONS(4586),
    [sym_cfloat] = ACTIONS(4586),
    [sym_cdouble] = ACTIONS(4586),
    [sym_creal] = ACTIONS(4586),
    [sym_size_t] = ACTIONS(4586),
    [sym_ptrdiff_t] = ACTIONS(4586),
    [sym_string] = ACTIONS(4586),
    [sym_cstring] = ACTIONS(4586),
    [sym_dstring] = ACTIONS(4586),
    [sym_wstring] = ACTIONS(4586),
    [sym_noreturn] = ACTIONS(4586),
    [sym_true] = ACTIONS(4586),
    [sym_false] = ACTIONS(4586),
    [sym_null] = ACTIONS(4586),
    [sym_super] = ACTIONS(4586),
    [sym_this] = ACTIONS(4586),
    [sym_abstract] = ACTIONS(4586),
    [sym_alias] = ACTIONS(4586),
    [sym_align] = ACTIONS(4586),
    [sym_asm] = ACTIONS(4586),
    [sym_assert] = ACTIONS(4586),
    [sym_auto] = ACTIONS(4586),
    [sym_break] = ACTIONS(4586),
    [sym_case] = ACTIONS(4586),
    [sym_cast] = ACTIONS(4586),
    [sym_class] = ACTIONS(4586),
    [sym_const] = ACTIONS(4586),
    [sym_continue] = ACTIONS(4586),
    [sym_debug] = ACTIONS(4586),
    [sym_default] = ACTIONS(4586),
    [sym_delegate] = ACTIONS(4586),
    [sym_delete] = ACTIONS(4586),
    [sym_deprecated] = ACTIONS(4586),
    [sym_do] = ACTIONS(4586),
    [sym_else] = ACTIONS(4586),
    [sym_enum] = ACTIONS(4586),
    [sym_export] = ACTIONS(4586),
    [sym_extern] = ACTIONS(4586),
    [sym_final] = ACTIONS(4586),
    [sym_for] = ACTIONS(4586),
    [sym_foreach] = ACTIONS(4586),
    [sym_foreach_reverse] = ACTIONS(4586),
    [sym_function] = ACTIONS(4586),
    [sym_goto] = ACTIONS(4586),
    [sym_if] = ACTIONS(4586),
    [sym_immutable] = ACTIONS(4586),
    [sym_import] = ACTIONS(4586),
    [sym_in] = ACTIONS(4586),
    [sym_inout] = ACTIONS(4586),
    [sym_interface] = ACTIONS(4586),
    [sym_invariant] = ACTIONS(4586),
    [sym_is] = ACTIONS(4586),
    [sym_mixin] = ACTIONS(4586),
    [sym_new] = ACTIONS(4586),
    [sym_nothrow] = ACTIONS(4586),
    [sym_out] = ACTIONS(4586),
    [sym_override] = ACTIONS(4586),
    [sym_package] = ACTIONS(4586),
    [sym_pragma] = ACTIONS(4586),
    [sym_private] = ACTIONS(4586),
    [sym_protected] = ACTIONS(4586),
    [sym_public] = ACTIONS(4586),
    [sym_pure] = ACTIONS(4586),
    [sym_ref] = ACTIONS(4586),
    [sym_return] = ACTIONS(4586),
    [sym_scope] = ACTIONS(4586),
    [sym_shared] = ACTIONS(4586),
    [sym_static] = ACTIONS(4586),
    [sym_struct] = ACTIONS(4586),
    [sym_switch] = ACTIONS(4586),
    [sym_synchronized] = ACTIONS(4586),
    [sym_template] = ACTIONS(4586),
    [sym_throw] = ACTIONS(4586),
    [sym_try] = ACTIONS(4586),
    [sym_typeid] = ACTIONS(4586),
    [sym_typeof] = ACTIONS(4586),
    [sym_union] = ACTIONS(4586),
    [sym_unittest] = ACTIONS(4586),
    [sym_version] = ACTIONS(4586),
    [sym_while] = ACTIONS(4586),
    [sym_with] = ACTIONS(4586),
    [sym_gshared] = ACTIONS(4586),
    [sym_traits] = ACTIONS(4586),
    [sym_vector] = ACTIONS(4586),
    [sym_void] = ACTIONS(4586),
    [anon_sym_BQUOTE] = ACTIONS(4588),
    [anon_sym_r_DQUOTE] = ACTIONS(4588),
    [anon_sym_x_DQUOTE] = ACTIONS(4588),
    [anon_sym_DQUOTE] = ACTIONS(4588),
    [anon_sym_i_BQUOTE] = ACTIONS(4588),
    [anon_sym_i_DQUOTE] = ACTIONS(4588),
    [anon_sym_iq_LBRACE] = ACTIONS(4588),
    [aux_sym_char_literal_token1] = ACTIONS(4588),
    [anon_sym_SQUOTE] = ACTIONS(4586),
    [anon_sym___DATE__] = ACTIONS(4586),
    [anon_sym___FILE__] = ACTIONS(4586),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4586),
    [anon_sym___FUNCTION__] = ACTIONS(4586),
    [anon_sym___LINE__] = ACTIONS(4586),
    [anon_sym___MODULE__] = ACTIONS(4586),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4586),
    [anon_sym___TIME__] = ACTIONS(4586),
    [anon_sym___TIMESTAMP__] = ACTIONS(4586),
    [anon_sym___VENDOR__] = ACTIONS(4586),
    [anon_sym___VERSION__] = ACTIONS(4586),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4588),
    [sym_float_literal] = ACTIONS(4588),
    [sym__string] = ACTIONS(4588),
  },
  [1724] = {
    [sym_identifier] = ACTIONS(4590),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4592),
    [anon_sym_RBRACE] = ACTIONS(4592),
    [anon_sym_LBRACE] = ACTIONS(4592),
    [anon_sym_DOT] = ACTIONS(4592),
    [anon_sym_AMP] = ACTIONS(4592),
    [anon_sym_DASH] = ACTIONS(4590),
    [anon_sym_DASH_DASH] = ACTIONS(4592),
    [anon_sym_PLUS] = ACTIONS(4590),
    [anon_sym_PLUS_PLUS] = ACTIONS(4592),
    [anon_sym_BANG] = ACTIONS(4592),
    [anon_sym_LPAREN] = ACTIONS(4592),
    [anon_sym_RPAREN] = ACTIONS(4592),
    [anon_sym_LBRACK] = ACTIONS(4592),
    [anon_sym_SEMI] = ACTIONS(4592),
    [anon_sym_DOLLAR] = ACTIONS(4592),
    [anon_sym_STAR] = ACTIONS(4592),
    [anon_sym_TILDE] = ACTIONS(4592),
    [anon_sym_AT] = ACTIONS(4592),
    [sym_bool] = ACTIONS(4590),
    [sym_byte] = ACTIONS(4590),
    [sym_ubyte] = ACTIONS(4590),
    [sym_char] = ACTIONS(4590),
    [sym_short] = ACTIONS(4590),
    [sym_ushort] = ACTIONS(4590),
    [sym_int] = ACTIONS(4590),
    [sym_uint] = ACTIONS(4590),
    [sym_long] = ACTIONS(4590),
    [sym_ulong] = ACTIONS(4590),
    [sym_cent] = ACTIONS(4590),
    [sym_ucent] = ACTIONS(4590),
    [sym_wchar] = ACTIONS(4590),
    [sym_dchar] = ACTIONS(4590),
    [sym_float] = ACTIONS(4590),
    [sym_double] = ACTIONS(4590),
    [sym_real] = ACTIONS(4590),
    [sym_ifloat] = ACTIONS(4590),
    [sym_idouble] = ACTIONS(4590),
    [sym_ireal] = ACTIONS(4590),
    [sym_cfloat] = ACTIONS(4590),
    [sym_cdouble] = ACTIONS(4590),
    [sym_creal] = ACTIONS(4590),
    [sym_size_t] = ACTIONS(4590),
    [sym_ptrdiff_t] = ACTIONS(4590),
    [sym_string] = ACTIONS(4590),
    [sym_cstring] = ACTIONS(4590),
    [sym_dstring] = ACTIONS(4590),
    [sym_wstring] = ACTIONS(4590),
    [sym_noreturn] = ACTIONS(4590),
    [sym_true] = ACTIONS(4590),
    [sym_false] = ACTIONS(4590),
    [sym_null] = ACTIONS(4590),
    [sym_super] = ACTIONS(4590),
    [sym_this] = ACTIONS(4590),
    [sym_abstract] = ACTIONS(4590),
    [sym_alias] = ACTIONS(4590),
    [sym_align] = ACTIONS(4590),
    [sym_asm] = ACTIONS(4590),
    [sym_assert] = ACTIONS(4590),
    [sym_auto] = ACTIONS(4590),
    [sym_break] = ACTIONS(4590),
    [sym_case] = ACTIONS(4590),
    [sym_cast] = ACTIONS(4590),
    [sym_class] = ACTIONS(4590),
    [sym_const] = ACTIONS(4590),
    [sym_continue] = ACTIONS(4590),
    [sym_debug] = ACTIONS(4590),
    [sym_default] = ACTIONS(4590),
    [sym_delegate] = ACTIONS(4590),
    [sym_delete] = ACTIONS(4590),
    [sym_deprecated] = ACTIONS(4590),
    [sym_do] = ACTIONS(4590),
    [sym_else] = ACTIONS(4590),
    [sym_enum] = ACTIONS(4590),
    [sym_export] = ACTIONS(4590),
    [sym_extern] = ACTIONS(4590),
    [sym_final] = ACTIONS(4590),
    [sym_for] = ACTIONS(4590),
    [sym_foreach] = ACTIONS(4590),
    [sym_foreach_reverse] = ACTIONS(4590),
    [sym_function] = ACTIONS(4590),
    [sym_goto] = ACTIONS(4590),
    [sym_if] = ACTIONS(4590),
    [sym_immutable] = ACTIONS(4590),
    [sym_import] = ACTIONS(4590),
    [sym_in] = ACTIONS(4590),
    [sym_inout] = ACTIONS(4590),
    [sym_interface] = ACTIONS(4590),
    [sym_invariant] = ACTIONS(4590),
    [sym_is] = ACTIONS(4590),
    [sym_mixin] = ACTIONS(4590),
    [sym_new] = ACTIONS(4590),
    [sym_nothrow] = ACTIONS(4590),
    [sym_out] = ACTIONS(4590),
    [sym_override] = ACTIONS(4590),
    [sym_package] = ACTIONS(4590),
    [sym_pragma] = ACTIONS(4590),
    [sym_private] = ACTIONS(4590),
    [sym_protected] = ACTIONS(4590),
    [sym_public] = ACTIONS(4590),
    [sym_pure] = ACTIONS(4590),
    [sym_ref] = ACTIONS(4590),
    [sym_return] = ACTIONS(4590),
    [sym_scope] = ACTIONS(4590),
    [sym_shared] = ACTIONS(4590),
    [sym_static] = ACTIONS(4590),
    [sym_struct] = ACTIONS(4590),
    [sym_switch] = ACTIONS(4590),
    [sym_synchronized] = ACTIONS(4590),
    [sym_template] = ACTIONS(4590),
    [sym_throw] = ACTIONS(4590),
    [sym_try] = ACTIONS(4590),
    [sym_typeid] = ACTIONS(4590),
    [sym_typeof] = ACTIONS(4590),
    [sym_union] = ACTIONS(4590),
    [sym_unittest] = ACTIONS(4590),
    [sym_version] = ACTIONS(4590),
    [sym_while] = ACTIONS(4590),
    [sym_with] = ACTIONS(4590),
    [sym_gshared] = ACTIONS(4590),
    [sym_traits] = ACTIONS(4590),
    [sym_vector] = ACTIONS(4590),
    [sym_void] = ACTIONS(4590),
    [anon_sym_BQUOTE] = ACTIONS(4592),
    [anon_sym_r_DQUOTE] = ACTIONS(4592),
    [anon_sym_x_DQUOTE] = ACTIONS(4592),
    [anon_sym_DQUOTE] = ACTIONS(4592),
    [anon_sym_i_BQUOTE] = ACTIONS(4592),
    [anon_sym_i_DQUOTE] = ACTIONS(4592),
    [anon_sym_iq_LBRACE] = ACTIONS(4592),
    [aux_sym_char_literal_token1] = ACTIONS(4592),
    [anon_sym_SQUOTE] = ACTIONS(4590),
    [anon_sym___DATE__] = ACTIONS(4590),
    [anon_sym___FILE__] = ACTIONS(4590),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4590),
    [anon_sym___FUNCTION__] = ACTIONS(4590),
    [anon_sym___LINE__] = ACTIONS(4590),
    [anon_sym___MODULE__] = ACTIONS(4590),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4590),
    [anon_sym___TIME__] = ACTIONS(4590),
    [anon_sym___TIMESTAMP__] = ACTIONS(4590),
    [anon_sym___VENDOR__] = ACTIONS(4590),
    [anon_sym___VERSION__] = ACTIONS(4590),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4592),
    [sym_float_literal] = ACTIONS(4592),
    [sym__string] = ACTIONS(4592),
  },
  [1725] = {
    [sym_identifier] = ACTIONS(4632),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4634),
    [anon_sym_RBRACE] = ACTIONS(4634),
    [anon_sym_LBRACE] = ACTIONS(4634),
    [anon_sym_DOT] = ACTIONS(4634),
    [anon_sym_AMP] = ACTIONS(4634),
    [anon_sym_DASH] = ACTIONS(4632),
    [anon_sym_DASH_DASH] = ACTIONS(4634),
    [anon_sym_PLUS] = ACTIONS(4632),
    [anon_sym_PLUS_PLUS] = ACTIONS(4634),
    [anon_sym_BANG] = ACTIONS(4634),
    [anon_sym_LPAREN] = ACTIONS(4634),
    [anon_sym_RPAREN] = ACTIONS(4634),
    [anon_sym_LBRACK] = ACTIONS(4634),
    [anon_sym_SEMI] = ACTIONS(4634),
    [anon_sym_DOLLAR] = ACTIONS(4634),
    [anon_sym_STAR] = ACTIONS(4634),
    [anon_sym_TILDE] = ACTIONS(4634),
    [anon_sym_AT] = ACTIONS(4634),
    [sym_bool] = ACTIONS(4632),
    [sym_byte] = ACTIONS(4632),
    [sym_ubyte] = ACTIONS(4632),
    [sym_char] = ACTIONS(4632),
    [sym_short] = ACTIONS(4632),
    [sym_ushort] = ACTIONS(4632),
    [sym_int] = ACTIONS(4632),
    [sym_uint] = ACTIONS(4632),
    [sym_long] = ACTIONS(4632),
    [sym_ulong] = ACTIONS(4632),
    [sym_cent] = ACTIONS(4632),
    [sym_ucent] = ACTIONS(4632),
    [sym_wchar] = ACTIONS(4632),
    [sym_dchar] = ACTIONS(4632),
    [sym_float] = ACTIONS(4632),
    [sym_double] = ACTIONS(4632),
    [sym_real] = ACTIONS(4632),
    [sym_ifloat] = ACTIONS(4632),
    [sym_idouble] = ACTIONS(4632),
    [sym_ireal] = ACTIONS(4632),
    [sym_cfloat] = ACTIONS(4632),
    [sym_cdouble] = ACTIONS(4632),
    [sym_creal] = ACTIONS(4632),
    [sym_size_t] = ACTIONS(4632),
    [sym_ptrdiff_t] = ACTIONS(4632),
    [sym_string] = ACTIONS(4632),
    [sym_cstring] = ACTIONS(4632),
    [sym_dstring] = ACTIONS(4632),
    [sym_wstring] = ACTIONS(4632),
    [sym_noreturn] = ACTIONS(4632),
    [sym_true] = ACTIONS(4632),
    [sym_false] = ACTIONS(4632),
    [sym_null] = ACTIONS(4632),
    [sym_super] = ACTIONS(4632),
    [sym_this] = ACTIONS(4632),
    [sym_abstract] = ACTIONS(4632),
    [sym_alias] = ACTIONS(4632),
    [sym_align] = ACTIONS(4632),
    [sym_asm] = ACTIONS(4632),
    [sym_assert] = ACTIONS(4632),
    [sym_auto] = ACTIONS(4632),
    [sym_break] = ACTIONS(4632),
    [sym_case] = ACTIONS(4632),
    [sym_cast] = ACTIONS(4632),
    [sym_class] = ACTIONS(4632),
    [sym_const] = ACTIONS(4632),
    [sym_continue] = ACTIONS(4632),
    [sym_debug] = ACTIONS(4632),
    [sym_default] = ACTIONS(4632),
    [sym_delegate] = ACTIONS(4632),
    [sym_delete] = ACTIONS(4632),
    [sym_deprecated] = ACTIONS(4632),
    [sym_do] = ACTIONS(4632),
    [sym_else] = ACTIONS(4632),
    [sym_enum] = ACTIONS(4632),
    [sym_export] = ACTIONS(4632),
    [sym_extern] = ACTIONS(4632),
    [sym_final] = ACTIONS(4632),
    [sym_for] = ACTIONS(4632),
    [sym_foreach] = ACTIONS(4632),
    [sym_foreach_reverse] = ACTIONS(4632),
    [sym_function] = ACTIONS(4632),
    [sym_goto] = ACTIONS(4632),
    [sym_if] = ACTIONS(4632),
    [sym_immutable] = ACTIONS(4632),
    [sym_import] = ACTIONS(4632),
    [sym_in] = ACTIONS(4632),
    [sym_inout] = ACTIONS(4632),
    [sym_interface] = ACTIONS(4632),
    [sym_invariant] = ACTIONS(4632),
    [sym_is] = ACTIONS(4632),
    [sym_mixin] = ACTIONS(4632),
    [sym_new] = ACTIONS(4632),
    [sym_nothrow] = ACTIONS(4632),
    [sym_out] = ACTIONS(4632),
    [sym_override] = ACTIONS(4632),
    [sym_package] = ACTIONS(4632),
    [sym_pragma] = ACTIONS(4632),
    [sym_private] = ACTIONS(4632),
    [sym_protected] = ACTIONS(4632),
    [sym_public] = ACTIONS(4632),
    [sym_pure] = ACTIONS(4632),
    [sym_ref] = ACTIONS(4632),
    [sym_return] = ACTIONS(4632),
    [sym_scope] = ACTIONS(4632),
    [sym_shared] = ACTIONS(4632),
    [sym_static] = ACTIONS(4632),
    [sym_struct] = ACTIONS(4632),
    [sym_switch] = ACTIONS(4632),
    [sym_synchronized] = ACTIONS(4632),
    [sym_template] = ACTIONS(4632),
    [sym_throw] = ACTIONS(4632),
    [sym_try] = ACTIONS(4632),
    [sym_typeid] = ACTIONS(4632),
    [sym_typeof] = ACTIONS(4632),
    [sym_union] = ACTIONS(4632),
    [sym_unittest] = ACTIONS(4632),
    [sym_version] = ACTIONS(4632),
    [sym_while] = ACTIONS(4632),
    [sym_with] = ACTIONS(4632),
    [sym_gshared] = ACTIONS(4632),
    [sym_traits] = ACTIONS(4632),
    [sym_vector] = ACTIONS(4632),
    [sym_void] = ACTIONS(4632),
    [anon_sym_BQUOTE] = ACTIONS(4634),
    [anon_sym_r_DQUOTE] = ACTIONS(4634),
    [anon_sym_x_DQUOTE] = ACTIONS(4634),
    [anon_sym_DQUOTE] = ACTIONS(4634),
    [anon_sym_i_BQUOTE] = ACTIONS(4634),
    [anon_sym_i_DQUOTE] = ACTIONS(4634),
    [anon_sym_iq_LBRACE] = ACTIONS(4634),
    [aux_sym_char_literal_token1] = ACTIONS(4634),
    [anon_sym_SQUOTE] = ACTIONS(4632),
    [anon_sym___DATE__] = ACTIONS(4632),
    [anon_sym___FILE__] = ACTIONS(4632),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4632),
    [anon_sym___FUNCTION__] = ACTIONS(4632),
    [anon_sym___LINE__] = ACTIONS(4632),
    [anon_sym___MODULE__] = ACTIONS(4632),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4632),
    [anon_sym___TIME__] = ACTIONS(4632),
    [anon_sym___TIMESTAMP__] = ACTIONS(4632),
    [anon_sym___VENDOR__] = ACTIONS(4632),
    [anon_sym___VERSION__] = ACTIONS(4632),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4634),
    [sym_float_literal] = ACTIONS(4634),
    [sym__string] = ACTIONS(4634),
  },
  [1726] = {
    [sym_identifier] = ACTIONS(5064),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5066),
    [anon_sym_RBRACE] = ACTIONS(5066),
    [anon_sym_LBRACE] = ACTIONS(5066),
    [anon_sym_DOT] = ACTIONS(5066),
    [anon_sym_AMP] = ACTIONS(5066),
    [anon_sym_DASH] = ACTIONS(5064),
    [anon_sym_DASH_DASH] = ACTIONS(5066),
    [anon_sym_PLUS] = ACTIONS(5064),
    [anon_sym_PLUS_PLUS] = ACTIONS(5066),
    [anon_sym_BANG] = ACTIONS(5066),
    [anon_sym_LPAREN] = ACTIONS(5066),
    [anon_sym_RPAREN] = ACTIONS(5066),
    [anon_sym_LBRACK] = ACTIONS(5066),
    [anon_sym_SEMI] = ACTIONS(5066),
    [anon_sym_DOLLAR] = ACTIONS(5066),
    [anon_sym_STAR] = ACTIONS(5066),
    [anon_sym_TILDE] = ACTIONS(5066),
    [anon_sym_AT] = ACTIONS(5066),
    [sym_bool] = ACTIONS(5064),
    [sym_byte] = ACTIONS(5064),
    [sym_ubyte] = ACTIONS(5064),
    [sym_char] = ACTIONS(5064),
    [sym_short] = ACTIONS(5064),
    [sym_ushort] = ACTIONS(5064),
    [sym_int] = ACTIONS(5064),
    [sym_uint] = ACTIONS(5064),
    [sym_long] = ACTIONS(5064),
    [sym_ulong] = ACTIONS(5064),
    [sym_cent] = ACTIONS(5064),
    [sym_ucent] = ACTIONS(5064),
    [sym_wchar] = ACTIONS(5064),
    [sym_dchar] = ACTIONS(5064),
    [sym_float] = ACTIONS(5064),
    [sym_double] = ACTIONS(5064),
    [sym_real] = ACTIONS(5064),
    [sym_ifloat] = ACTIONS(5064),
    [sym_idouble] = ACTIONS(5064),
    [sym_ireal] = ACTIONS(5064),
    [sym_cfloat] = ACTIONS(5064),
    [sym_cdouble] = ACTIONS(5064),
    [sym_creal] = ACTIONS(5064),
    [sym_size_t] = ACTIONS(5064),
    [sym_ptrdiff_t] = ACTIONS(5064),
    [sym_string] = ACTIONS(5064),
    [sym_cstring] = ACTIONS(5064),
    [sym_dstring] = ACTIONS(5064),
    [sym_wstring] = ACTIONS(5064),
    [sym_noreturn] = ACTIONS(5064),
    [sym_true] = ACTIONS(5064),
    [sym_false] = ACTIONS(5064),
    [sym_null] = ACTIONS(5064),
    [sym_super] = ACTIONS(5064),
    [sym_this] = ACTIONS(5064),
    [sym_abstract] = ACTIONS(5064),
    [sym_alias] = ACTIONS(5064),
    [sym_align] = ACTIONS(5064),
    [sym_asm] = ACTIONS(5064),
    [sym_assert] = ACTIONS(5064),
    [sym_auto] = ACTIONS(5064),
    [sym_break] = ACTIONS(5064),
    [sym_case] = ACTIONS(5064),
    [sym_cast] = ACTIONS(5064),
    [sym_class] = ACTIONS(5064),
    [sym_const] = ACTIONS(5064),
    [sym_continue] = ACTIONS(5064),
    [sym_debug] = ACTIONS(5064),
    [sym_default] = ACTIONS(5064),
    [sym_delegate] = ACTIONS(5064),
    [sym_delete] = ACTIONS(5064),
    [sym_deprecated] = ACTIONS(5064),
    [sym_do] = ACTIONS(5064),
    [sym_else] = ACTIONS(5064),
    [sym_enum] = ACTIONS(5064),
    [sym_export] = ACTIONS(5064),
    [sym_extern] = ACTIONS(5064),
    [sym_final] = ACTIONS(5064),
    [sym_for] = ACTIONS(5064),
    [sym_foreach] = ACTIONS(5064),
    [sym_foreach_reverse] = ACTIONS(5064),
    [sym_function] = ACTIONS(5064),
    [sym_goto] = ACTIONS(5064),
    [sym_if] = ACTIONS(5064),
    [sym_immutable] = ACTIONS(5064),
    [sym_import] = ACTIONS(5064),
    [sym_in] = ACTIONS(5064),
    [sym_inout] = ACTIONS(5064),
    [sym_interface] = ACTIONS(5064),
    [sym_invariant] = ACTIONS(5064),
    [sym_is] = ACTIONS(5064),
    [sym_mixin] = ACTIONS(5064),
    [sym_new] = ACTIONS(5064),
    [sym_nothrow] = ACTIONS(5064),
    [sym_out] = ACTIONS(5064),
    [sym_override] = ACTIONS(5064),
    [sym_package] = ACTIONS(5064),
    [sym_pragma] = ACTIONS(5064),
    [sym_private] = ACTIONS(5064),
    [sym_protected] = ACTIONS(5064),
    [sym_public] = ACTIONS(5064),
    [sym_pure] = ACTIONS(5064),
    [sym_ref] = ACTIONS(5064),
    [sym_return] = ACTIONS(5064),
    [sym_scope] = ACTIONS(5064),
    [sym_shared] = ACTIONS(5064),
    [sym_static] = ACTIONS(5064),
    [sym_struct] = ACTIONS(5064),
    [sym_switch] = ACTIONS(5064),
    [sym_synchronized] = ACTIONS(5064),
    [sym_template] = ACTIONS(5064),
    [sym_throw] = ACTIONS(5064),
    [sym_try] = ACTIONS(5064),
    [sym_typeid] = ACTIONS(5064),
    [sym_typeof] = ACTIONS(5064),
    [sym_union] = ACTIONS(5064),
    [sym_unittest] = ACTIONS(5064),
    [sym_version] = ACTIONS(5064),
    [sym_while] = ACTIONS(5064),
    [sym_with] = ACTIONS(5064),
    [sym_gshared] = ACTIONS(5064),
    [sym_traits] = ACTIONS(5064),
    [sym_vector] = ACTIONS(5064),
    [sym_void] = ACTIONS(5064),
    [anon_sym_BQUOTE] = ACTIONS(5066),
    [anon_sym_r_DQUOTE] = ACTIONS(5066),
    [anon_sym_x_DQUOTE] = ACTIONS(5066),
    [anon_sym_DQUOTE] = ACTIONS(5066),
    [anon_sym_i_BQUOTE] = ACTIONS(5066),
    [anon_sym_i_DQUOTE] = ACTIONS(5066),
    [anon_sym_iq_LBRACE] = ACTIONS(5066),
    [aux_sym_char_literal_token1] = ACTIONS(5066),
    [anon_sym_SQUOTE] = ACTIONS(5064),
    [anon_sym___DATE__] = ACTIONS(5064),
    [anon_sym___FILE__] = ACTIONS(5064),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5064),
    [anon_sym___FUNCTION__] = ACTIONS(5064),
    [anon_sym___LINE__] = ACTIONS(5064),
    [anon_sym___MODULE__] = ACTIONS(5064),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5064),
    [anon_sym___TIME__] = ACTIONS(5064),
    [anon_sym___TIMESTAMP__] = ACTIONS(5064),
    [anon_sym___VENDOR__] = ACTIONS(5064),
    [anon_sym___VERSION__] = ACTIONS(5064),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5066),
    [sym_float_literal] = ACTIONS(5066),
    [sym__string] = ACTIONS(5066),
  },
  [1727] = {
    [sym_identifier] = ACTIONS(4628),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4630),
    [anon_sym_RBRACE] = ACTIONS(4630),
    [anon_sym_LBRACE] = ACTIONS(4630),
    [anon_sym_DOT] = ACTIONS(4630),
    [anon_sym_AMP] = ACTIONS(4630),
    [anon_sym_DASH] = ACTIONS(4628),
    [anon_sym_DASH_DASH] = ACTIONS(4630),
    [anon_sym_PLUS] = ACTIONS(4628),
    [anon_sym_PLUS_PLUS] = ACTIONS(4630),
    [anon_sym_BANG] = ACTIONS(4630),
    [anon_sym_LPAREN] = ACTIONS(4630),
    [anon_sym_RPAREN] = ACTIONS(4630),
    [anon_sym_LBRACK] = ACTIONS(4630),
    [anon_sym_SEMI] = ACTIONS(4630),
    [anon_sym_DOLLAR] = ACTIONS(4630),
    [anon_sym_STAR] = ACTIONS(4630),
    [anon_sym_TILDE] = ACTIONS(4630),
    [anon_sym_AT] = ACTIONS(4630),
    [sym_bool] = ACTIONS(4628),
    [sym_byte] = ACTIONS(4628),
    [sym_ubyte] = ACTIONS(4628),
    [sym_char] = ACTIONS(4628),
    [sym_short] = ACTIONS(4628),
    [sym_ushort] = ACTIONS(4628),
    [sym_int] = ACTIONS(4628),
    [sym_uint] = ACTIONS(4628),
    [sym_long] = ACTIONS(4628),
    [sym_ulong] = ACTIONS(4628),
    [sym_cent] = ACTIONS(4628),
    [sym_ucent] = ACTIONS(4628),
    [sym_wchar] = ACTIONS(4628),
    [sym_dchar] = ACTIONS(4628),
    [sym_float] = ACTIONS(4628),
    [sym_double] = ACTIONS(4628),
    [sym_real] = ACTIONS(4628),
    [sym_ifloat] = ACTIONS(4628),
    [sym_idouble] = ACTIONS(4628),
    [sym_ireal] = ACTIONS(4628),
    [sym_cfloat] = ACTIONS(4628),
    [sym_cdouble] = ACTIONS(4628),
    [sym_creal] = ACTIONS(4628),
    [sym_size_t] = ACTIONS(4628),
    [sym_ptrdiff_t] = ACTIONS(4628),
    [sym_string] = ACTIONS(4628),
    [sym_cstring] = ACTIONS(4628),
    [sym_dstring] = ACTIONS(4628),
    [sym_wstring] = ACTIONS(4628),
    [sym_noreturn] = ACTIONS(4628),
    [sym_true] = ACTIONS(4628),
    [sym_false] = ACTIONS(4628),
    [sym_null] = ACTIONS(4628),
    [sym_super] = ACTIONS(4628),
    [sym_this] = ACTIONS(4628),
    [sym_abstract] = ACTIONS(4628),
    [sym_alias] = ACTIONS(4628),
    [sym_align] = ACTIONS(4628),
    [sym_asm] = ACTIONS(4628),
    [sym_assert] = ACTIONS(4628),
    [sym_auto] = ACTIONS(4628),
    [sym_break] = ACTIONS(4628),
    [sym_case] = ACTIONS(4628),
    [sym_cast] = ACTIONS(4628),
    [sym_class] = ACTIONS(4628),
    [sym_const] = ACTIONS(4628),
    [sym_continue] = ACTIONS(4628),
    [sym_debug] = ACTIONS(4628),
    [sym_default] = ACTIONS(4628),
    [sym_delegate] = ACTIONS(4628),
    [sym_delete] = ACTIONS(4628),
    [sym_deprecated] = ACTIONS(4628),
    [sym_do] = ACTIONS(4628),
    [sym_else] = ACTIONS(4628),
    [sym_enum] = ACTIONS(4628),
    [sym_export] = ACTIONS(4628),
    [sym_extern] = ACTIONS(4628),
    [sym_final] = ACTIONS(4628),
    [sym_for] = ACTIONS(4628),
    [sym_foreach] = ACTIONS(4628),
    [sym_foreach_reverse] = ACTIONS(4628),
    [sym_function] = ACTIONS(4628),
    [sym_goto] = ACTIONS(4628),
    [sym_if] = ACTIONS(4628),
    [sym_immutable] = ACTIONS(4628),
    [sym_import] = ACTIONS(4628),
    [sym_in] = ACTIONS(4628),
    [sym_inout] = ACTIONS(4628),
    [sym_interface] = ACTIONS(4628),
    [sym_invariant] = ACTIONS(4628),
    [sym_is] = ACTIONS(4628),
    [sym_mixin] = ACTIONS(4628),
    [sym_new] = ACTIONS(4628),
    [sym_nothrow] = ACTIONS(4628),
    [sym_out] = ACTIONS(4628),
    [sym_override] = ACTIONS(4628),
    [sym_package] = ACTIONS(4628),
    [sym_pragma] = ACTIONS(4628),
    [sym_private] = ACTIONS(4628),
    [sym_protected] = ACTIONS(4628),
    [sym_public] = ACTIONS(4628),
    [sym_pure] = ACTIONS(4628),
    [sym_ref] = ACTIONS(4628),
    [sym_return] = ACTIONS(4628),
    [sym_scope] = ACTIONS(4628),
    [sym_shared] = ACTIONS(4628),
    [sym_static] = ACTIONS(4628),
    [sym_struct] = ACTIONS(4628),
    [sym_switch] = ACTIONS(4628),
    [sym_synchronized] = ACTIONS(4628),
    [sym_template] = ACTIONS(4628),
    [sym_throw] = ACTIONS(4628),
    [sym_try] = ACTIONS(4628),
    [sym_typeid] = ACTIONS(4628),
    [sym_typeof] = ACTIONS(4628),
    [sym_union] = ACTIONS(4628),
    [sym_unittest] = ACTIONS(4628),
    [sym_version] = ACTIONS(4628),
    [sym_while] = ACTIONS(4628),
    [sym_with] = ACTIONS(4628),
    [sym_gshared] = ACTIONS(4628),
    [sym_traits] = ACTIONS(4628),
    [sym_vector] = ACTIONS(4628),
    [sym_void] = ACTIONS(4628),
    [anon_sym_BQUOTE] = ACTIONS(4630),
    [anon_sym_r_DQUOTE] = ACTIONS(4630),
    [anon_sym_x_DQUOTE] = ACTIONS(4630),
    [anon_sym_DQUOTE] = ACTIONS(4630),
    [anon_sym_i_BQUOTE] = ACTIONS(4630),
    [anon_sym_i_DQUOTE] = ACTIONS(4630),
    [anon_sym_iq_LBRACE] = ACTIONS(4630),
    [aux_sym_char_literal_token1] = ACTIONS(4630),
    [anon_sym_SQUOTE] = ACTIONS(4628),
    [anon_sym___DATE__] = ACTIONS(4628),
    [anon_sym___FILE__] = ACTIONS(4628),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4628),
    [anon_sym___FUNCTION__] = ACTIONS(4628),
    [anon_sym___LINE__] = ACTIONS(4628),
    [anon_sym___MODULE__] = ACTIONS(4628),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4628),
    [anon_sym___TIME__] = ACTIONS(4628),
    [anon_sym___TIMESTAMP__] = ACTIONS(4628),
    [anon_sym___VENDOR__] = ACTIONS(4628),
    [anon_sym___VERSION__] = ACTIONS(4628),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4630),
    [sym_float_literal] = ACTIONS(4630),
    [sym__string] = ACTIONS(4630),
  },
  [1728] = {
    [sym_identifier] = ACTIONS(4624),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4626),
    [anon_sym_RBRACE] = ACTIONS(4626),
    [anon_sym_LBRACE] = ACTIONS(4626),
    [anon_sym_DOT] = ACTIONS(4626),
    [anon_sym_AMP] = ACTIONS(4626),
    [anon_sym_DASH] = ACTIONS(4624),
    [anon_sym_DASH_DASH] = ACTIONS(4626),
    [anon_sym_PLUS] = ACTIONS(4624),
    [anon_sym_PLUS_PLUS] = ACTIONS(4626),
    [anon_sym_BANG] = ACTIONS(4626),
    [anon_sym_LPAREN] = ACTIONS(4626),
    [anon_sym_RPAREN] = ACTIONS(4626),
    [anon_sym_LBRACK] = ACTIONS(4626),
    [anon_sym_SEMI] = ACTIONS(4626),
    [anon_sym_DOLLAR] = ACTIONS(4626),
    [anon_sym_STAR] = ACTIONS(4626),
    [anon_sym_TILDE] = ACTIONS(4626),
    [anon_sym_AT] = ACTIONS(4626),
    [sym_bool] = ACTIONS(4624),
    [sym_byte] = ACTIONS(4624),
    [sym_ubyte] = ACTIONS(4624),
    [sym_char] = ACTIONS(4624),
    [sym_short] = ACTIONS(4624),
    [sym_ushort] = ACTIONS(4624),
    [sym_int] = ACTIONS(4624),
    [sym_uint] = ACTIONS(4624),
    [sym_long] = ACTIONS(4624),
    [sym_ulong] = ACTIONS(4624),
    [sym_cent] = ACTIONS(4624),
    [sym_ucent] = ACTIONS(4624),
    [sym_wchar] = ACTIONS(4624),
    [sym_dchar] = ACTIONS(4624),
    [sym_float] = ACTIONS(4624),
    [sym_double] = ACTIONS(4624),
    [sym_real] = ACTIONS(4624),
    [sym_ifloat] = ACTIONS(4624),
    [sym_idouble] = ACTIONS(4624),
    [sym_ireal] = ACTIONS(4624),
    [sym_cfloat] = ACTIONS(4624),
    [sym_cdouble] = ACTIONS(4624),
    [sym_creal] = ACTIONS(4624),
    [sym_size_t] = ACTIONS(4624),
    [sym_ptrdiff_t] = ACTIONS(4624),
    [sym_string] = ACTIONS(4624),
    [sym_cstring] = ACTIONS(4624),
    [sym_dstring] = ACTIONS(4624),
    [sym_wstring] = ACTIONS(4624),
    [sym_noreturn] = ACTIONS(4624),
    [sym_true] = ACTIONS(4624),
    [sym_false] = ACTIONS(4624),
    [sym_null] = ACTIONS(4624),
    [sym_super] = ACTIONS(4624),
    [sym_this] = ACTIONS(4624),
    [sym_abstract] = ACTIONS(4624),
    [sym_alias] = ACTIONS(4624),
    [sym_align] = ACTIONS(4624),
    [sym_asm] = ACTIONS(4624),
    [sym_assert] = ACTIONS(4624),
    [sym_auto] = ACTIONS(4624),
    [sym_break] = ACTIONS(4624),
    [sym_case] = ACTIONS(4624),
    [sym_cast] = ACTIONS(4624),
    [sym_class] = ACTIONS(4624),
    [sym_const] = ACTIONS(4624),
    [sym_continue] = ACTIONS(4624),
    [sym_debug] = ACTIONS(4624),
    [sym_default] = ACTIONS(4624),
    [sym_delegate] = ACTIONS(4624),
    [sym_delete] = ACTIONS(4624),
    [sym_deprecated] = ACTIONS(4624),
    [sym_do] = ACTIONS(4624),
    [sym_else] = ACTIONS(4624),
    [sym_enum] = ACTIONS(4624),
    [sym_export] = ACTIONS(4624),
    [sym_extern] = ACTIONS(4624),
    [sym_final] = ACTIONS(4624),
    [sym_for] = ACTIONS(4624),
    [sym_foreach] = ACTIONS(4624),
    [sym_foreach_reverse] = ACTIONS(4624),
    [sym_function] = ACTIONS(4624),
    [sym_goto] = ACTIONS(4624),
    [sym_if] = ACTIONS(4624),
    [sym_immutable] = ACTIONS(4624),
    [sym_import] = ACTIONS(4624),
    [sym_in] = ACTIONS(4624),
    [sym_inout] = ACTIONS(4624),
    [sym_interface] = ACTIONS(4624),
    [sym_invariant] = ACTIONS(4624),
    [sym_is] = ACTIONS(4624),
    [sym_mixin] = ACTIONS(4624),
    [sym_new] = ACTIONS(4624),
    [sym_nothrow] = ACTIONS(4624),
    [sym_out] = ACTIONS(4624),
    [sym_override] = ACTIONS(4624),
    [sym_package] = ACTIONS(4624),
    [sym_pragma] = ACTIONS(4624),
    [sym_private] = ACTIONS(4624),
    [sym_protected] = ACTIONS(4624),
    [sym_public] = ACTIONS(4624),
    [sym_pure] = ACTIONS(4624),
    [sym_ref] = ACTIONS(4624),
    [sym_return] = ACTIONS(4624),
    [sym_scope] = ACTIONS(4624),
    [sym_shared] = ACTIONS(4624),
    [sym_static] = ACTIONS(4624),
    [sym_struct] = ACTIONS(4624),
    [sym_switch] = ACTIONS(4624),
    [sym_synchronized] = ACTIONS(4624),
    [sym_template] = ACTIONS(4624),
    [sym_throw] = ACTIONS(4624),
    [sym_try] = ACTIONS(4624),
    [sym_typeid] = ACTIONS(4624),
    [sym_typeof] = ACTIONS(4624),
    [sym_union] = ACTIONS(4624),
    [sym_unittest] = ACTIONS(4624),
    [sym_version] = ACTIONS(4624),
    [sym_while] = ACTIONS(4624),
    [sym_with] = ACTIONS(4624),
    [sym_gshared] = ACTIONS(4624),
    [sym_traits] = ACTIONS(4624),
    [sym_vector] = ACTIONS(4624),
    [sym_void] = ACTIONS(4624),
    [anon_sym_BQUOTE] = ACTIONS(4626),
    [anon_sym_r_DQUOTE] = ACTIONS(4626),
    [anon_sym_x_DQUOTE] = ACTIONS(4626),
    [anon_sym_DQUOTE] = ACTIONS(4626),
    [anon_sym_i_BQUOTE] = ACTIONS(4626),
    [anon_sym_i_DQUOTE] = ACTIONS(4626),
    [anon_sym_iq_LBRACE] = ACTIONS(4626),
    [aux_sym_char_literal_token1] = ACTIONS(4626),
    [anon_sym_SQUOTE] = ACTIONS(4624),
    [anon_sym___DATE__] = ACTIONS(4624),
    [anon_sym___FILE__] = ACTIONS(4624),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4624),
    [anon_sym___FUNCTION__] = ACTIONS(4624),
    [anon_sym___LINE__] = ACTIONS(4624),
    [anon_sym___MODULE__] = ACTIONS(4624),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4624),
    [anon_sym___TIME__] = ACTIONS(4624),
    [anon_sym___TIMESTAMP__] = ACTIONS(4624),
    [anon_sym___VENDOR__] = ACTIONS(4624),
    [anon_sym___VERSION__] = ACTIONS(4624),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4626),
    [sym_float_literal] = ACTIONS(4626),
    [sym__string] = ACTIONS(4626),
  },
  [1729] = {
    [sym_identifier] = ACTIONS(4996),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4998),
    [anon_sym_RBRACE] = ACTIONS(4998),
    [anon_sym_LBRACE] = ACTIONS(4998),
    [anon_sym_DOT] = ACTIONS(4998),
    [anon_sym_AMP] = ACTIONS(4998),
    [anon_sym_DASH] = ACTIONS(4996),
    [anon_sym_DASH_DASH] = ACTIONS(4998),
    [anon_sym_PLUS] = ACTIONS(4996),
    [anon_sym_PLUS_PLUS] = ACTIONS(4998),
    [anon_sym_BANG] = ACTIONS(4998),
    [anon_sym_LPAREN] = ACTIONS(4998),
    [anon_sym_RPAREN] = ACTIONS(4998),
    [anon_sym_LBRACK] = ACTIONS(4998),
    [anon_sym_SEMI] = ACTIONS(4998),
    [anon_sym_DOLLAR] = ACTIONS(4998),
    [anon_sym_STAR] = ACTIONS(4998),
    [anon_sym_TILDE] = ACTIONS(4998),
    [anon_sym_AT] = ACTIONS(4998),
    [sym_bool] = ACTIONS(4996),
    [sym_byte] = ACTIONS(4996),
    [sym_ubyte] = ACTIONS(4996),
    [sym_char] = ACTIONS(4996),
    [sym_short] = ACTIONS(4996),
    [sym_ushort] = ACTIONS(4996),
    [sym_int] = ACTIONS(4996),
    [sym_uint] = ACTIONS(4996),
    [sym_long] = ACTIONS(4996),
    [sym_ulong] = ACTIONS(4996),
    [sym_cent] = ACTIONS(4996),
    [sym_ucent] = ACTIONS(4996),
    [sym_wchar] = ACTIONS(4996),
    [sym_dchar] = ACTIONS(4996),
    [sym_float] = ACTIONS(4996),
    [sym_double] = ACTIONS(4996),
    [sym_real] = ACTIONS(4996),
    [sym_ifloat] = ACTIONS(4996),
    [sym_idouble] = ACTIONS(4996),
    [sym_ireal] = ACTIONS(4996),
    [sym_cfloat] = ACTIONS(4996),
    [sym_cdouble] = ACTIONS(4996),
    [sym_creal] = ACTIONS(4996),
    [sym_size_t] = ACTIONS(4996),
    [sym_ptrdiff_t] = ACTIONS(4996),
    [sym_string] = ACTIONS(4996),
    [sym_cstring] = ACTIONS(4996),
    [sym_dstring] = ACTIONS(4996),
    [sym_wstring] = ACTIONS(4996),
    [sym_noreturn] = ACTIONS(4996),
    [sym_true] = ACTIONS(4996),
    [sym_false] = ACTIONS(4996),
    [sym_null] = ACTIONS(4996),
    [sym_super] = ACTIONS(4996),
    [sym_this] = ACTIONS(4996),
    [sym_abstract] = ACTIONS(4996),
    [sym_alias] = ACTIONS(4996),
    [sym_align] = ACTIONS(4996),
    [sym_asm] = ACTIONS(4996),
    [sym_assert] = ACTIONS(4996),
    [sym_auto] = ACTIONS(4996),
    [sym_break] = ACTIONS(4996),
    [sym_case] = ACTIONS(4996),
    [sym_cast] = ACTIONS(4996),
    [sym_class] = ACTIONS(4996),
    [sym_const] = ACTIONS(4996),
    [sym_continue] = ACTIONS(4996),
    [sym_debug] = ACTIONS(4996),
    [sym_default] = ACTIONS(4996),
    [sym_delegate] = ACTIONS(4996),
    [sym_delete] = ACTIONS(4996),
    [sym_deprecated] = ACTIONS(4996),
    [sym_do] = ACTIONS(4996),
    [sym_else] = ACTIONS(4996),
    [sym_enum] = ACTIONS(4996),
    [sym_export] = ACTIONS(4996),
    [sym_extern] = ACTIONS(4996),
    [sym_final] = ACTIONS(4996),
    [sym_for] = ACTIONS(4996),
    [sym_foreach] = ACTIONS(4996),
    [sym_foreach_reverse] = ACTIONS(4996),
    [sym_function] = ACTIONS(4996),
    [sym_goto] = ACTIONS(4996),
    [sym_if] = ACTIONS(4996),
    [sym_immutable] = ACTIONS(4996),
    [sym_import] = ACTIONS(4996),
    [sym_in] = ACTIONS(4996),
    [sym_inout] = ACTIONS(4996),
    [sym_interface] = ACTIONS(4996),
    [sym_invariant] = ACTIONS(4996),
    [sym_is] = ACTIONS(4996),
    [sym_mixin] = ACTIONS(4996),
    [sym_new] = ACTIONS(4996),
    [sym_nothrow] = ACTIONS(4996),
    [sym_out] = ACTIONS(4996),
    [sym_override] = ACTIONS(4996),
    [sym_package] = ACTIONS(4996),
    [sym_pragma] = ACTIONS(4996),
    [sym_private] = ACTIONS(4996),
    [sym_protected] = ACTIONS(4996),
    [sym_public] = ACTIONS(4996),
    [sym_pure] = ACTIONS(4996),
    [sym_ref] = ACTIONS(4996),
    [sym_return] = ACTIONS(4996),
    [sym_scope] = ACTIONS(4996),
    [sym_shared] = ACTIONS(4996),
    [sym_static] = ACTIONS(4996),
    [sym_struct] = ACTIONS(4996),
    [sym_switch] = ACTIONS(4996),
    [sym_synchronized] = ACTIONS(4996),
    [sym_template] = ACTIONS(4996),
    [sym_throw] = ACTIONS(4996),
    [sym_try] = ACTIONS(4996),
    [sym_typeid] = ACTIONS(4996),
    [sym_typeof] = ACTIONS(4996),
    [sym_union] = ACTIONS(4996),
    [sym_unittest] = ACTIONS(4996),
    [sym_version] = ACTIONS(4996),
    [sym_while] = ACTIONS(4996),
    [sym_with] = ACTIONS(4996),
    [sym_gshared] = ACTIONS(4996),
    [sym_traits] = ACTIONS(4996),
    [sym_vector] = ACTIONS(4996),
    [sym_void] = ACTIONS(4996),
    [anon_sym_BQUOTE] = ACTIONS(4998),
    [anon_sym_r_DQUOTE] = ACTIONS(4998),
    [anon_sym_x_DQUOTE] = ACTIONS(4998),
    [anon_sym_DQUOTE] = ACTIONS(4998),
    [anon_sym_i_BQUOTE] = ACTIONS(4998),
    [anon_sym_i_DQUOTE] = ACTIONS(4998),
    [anon_sym_iq_LBRACE] = ACTIONS(4998),
    [aux_sym_char_literal_token1] = ACTIONS(4998),
    [anon_sym_SQUOTE] = ACTIONS(4996),
    [anon_sym___DATE__] = ACTIONS(4996),
    [anon_sym___FILE__] = ACTIONS(4996),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4996),
    [anon_sym___FUNCTION__] = ACTIONS(4996),
    [anon_sym___LINE__] = ACTIONS(4996),
    [anon_sym___MODULE__] = ACTIONS(4996),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4996),
    [anon_sym___TIME__] = ACTIONS(4996),
    [anon_sym___TIMESTAMP__] = ACTIONS(4996),
    [anon_sym___VENDOR__] = ACTIONS(4996),
    [anon_sym___VERSION__] = ACTIONS(4996),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4998),
    [sym_float_literal] = ACTIONS(4998),
    [sym__string] = ACTIONS(4998),
  },
  [1730] = {
    [sym_identifier] = ACTIONS(5000),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5002),
    [anon_sym_RBRACE] = ACTIONS(5002),
    [anon_sym_LBRACE] = ACTIONS(5002),
    [anon_sym_DOT] = ACTIONS(5002),
    [anon_sym_AMP] = ACTIONS(5002),
    [anon_sym_DASH] = ACTIONS(5000),
    [anon_sym_DASH_DASH] = ACTIONS(5002),
    [anon_sym_PLUS] = ACTIONS(5000),
    [anon_sym_PLUS_PLUS] = ACTIONS(5002),
    [anon_sym_BANG] = ACTIONS(5002),
    [anon_sym_LPAREN] = ACTIONS(5002),
    [anon_sym_RPAREN] = ACTIONS(5002),
    [anon_sym_LBRACK] = ACTIONS(5002),
    [anon_sym_SEMI] = ACTIONS(5002),
    [anon_sym_DOLLAR] = ACTIONS(5002),
    [anon_sym_STAR] = ACTIONS(5002),
    [anon_sym_TILDE] = ACTIONS(5002),
    [anon_sym_AT] = ACTIONS(5002),
    [sym_bool] = ACTIONS(5000),
    [sym_byte] = ACTIONS(5000),
    [sym_ubyte] = ACTIONS(5000),
    [sym_char] = ACTIONS(5000),
    [sym_short] = ACTIONS(5000),
    [sym_ushort] = ACTIONS(5000),
    [sym_int] = ACTIONS(5000),
    [sym_uint] = ACTIONS(5000),
    [sym_long] = ACTIONS(5000),
    [sym_ulong] = ACTIONS(5000),
    [sym_cent] = ACTIONS(5000),
    [sym_ucent] = ACTIONS(5000),
    [sym_wchar] = ACTIONS(5000),
    [sym_dchar] = ACTIONS(5000),
    [sym_float] = ACTIONS(5000),
    [sym_double] = ACTIONS(5000),
    [sym_real] = ACTIONS(5000),
    [sym_ifloat] = ACTIONS(5000),
    [sym_idouble] = ACTIONS(5000),
    [sym_ireal] = ACTIONS(5000),
    [sym_cfloat] = ACTIONS(5000),
    [sym_cdouble] = ACTIONS(5000),
    [sym_creal] = ACTIONS(5000),
    [sym_size_t] = ACTIONS(5000),
    [sym_ptrdiff_t] = ACTIONS(5000),
    [sym_string] = ACTIONS(5000),
    [sym_cstring] = ACTIONS(5000),
    [sym_dstring] = ACTIONS(5000),
    [sym_wstring] = ACTIONS(5000),
    [sym_noreturn] = ACTIONS(5000),
    [sym_true] = ACTIONS(5000),
    [sym_false] = ACTIONS(5000),
    [sym_null] = ACTIONS(5000),
    [sym_super] = ACTIONS(5000),
    [sym_this] = ACTIONS(5000),
    [sym_abstract] = ACTIONS(5000),
    [sym_alias] = ACTIONS(5000),
    [sym_align] = ACTIONS(5000),
    [sym_asm] = ACTIONS(5000),
    [sym_assert] = ACTIONS(5000),
    [sym_auto] = ACTIONS(5000),
    [sym_break] = ACTIONS(5000),
    [sym_case] = ACTIONS(5000),
    [sym_cast] = ACTIONS(5000),
    [sym_class] = ACTIONS(5000),
    [sym_const] = ACTIONS(5000),
    [sym_continue] = ACTIONS(5000),
    [sym_debug] = ACTIONS(5000),
    [sym_default] = ACTIONS(5000),
    [sym_delegate] = ACTIONS(5000),
    [sym_delete] = ACTIONS(5000),
    [sym_deprecated] = ACTIONS(5000),
    [sym_do] = ACTIONS(5000),
    [sym_else] = ACTIONS(5000),
    [sym_enum] = ACTIONS(5000),
    [sym_export] = ACTIONS(5000),
    [sym_extern] = ACTIONS(5000),
    [sym_final] = ACTIONS(5000),
    [sym_for] = ACTIONS(5000),
    [sym_foreach] = ACTIONS(5000),
    [sym_foreach_reverse] = ACTIONS(5000),
    [sym_function] = ACTIONS(5000),
    [sym_goto] = ACTIONS(5000),
    [sym_if] = ACTIONS(5000),
    [sym_immutable] = ACTIONS(5000),
    [sym_import] = ACTIONS(5000),
    [sym_in] = ACTIONS(5000),
    [sym_inout] = ACTIONS(5000),
    [sym_interface] = ACTIONS(5000),
    [sym_invariant] = ACTIONS(5000),
    [sym_is] = ACTIONS(5000),
    [sym_mixin] = ACTIONS(5000),
    [sym_new] = ACTIONS(5000),
    [sym_nothrow] = ACTIONS(5000),
    [sym_out] = ACTIONS(5000),
    [sym_override] = ACTIONS(5000),
    [sym_package] = ACTIONS(5000),
    [sym_pragma] = ACTIONS(5000),
    [sym_private] = ACTIONS(5000),
    [sym_protected] = ACTIONS(5000),
    [sym_public] = ACTIONS(5000),
    [sym_pure] = ACTIONS(5000),
    [sym_ref] = ACTIONS(5000),
    [sym_return] = ACTIONS(5000),
    [sym_scope] = ACTIONS(5000),
    [sym_shared] = ACTIONS(5000),
    [sym_static] = ACTIONS(5000),
    [sym_struct] = ACTIONS(5000),
    [sym_switch] = ACTIONS(5000),
    [sym_synchronized] = ACTIONS(5000),
    [sym_template] = ACTIONS(5000),
    [sym_throw] = ACTIONS(5000),
    [sym_try] = ACTIONS(5000),
    [sym_typeid] = ACTIONS(5000),
    [sym_typeof] = ACTIONS(5000),
    [sym_union] = ACTIONS(5000),
    [sym_unittest] = ACTIONS(5000),
    [sym_version] = ACTIONS(5000),
    [sym_while] = ACTIONS(5000),
    [sym_with] = ACTIONS(5000),
    [sym_gshared] = ACTIONS(5000),
    [sym_traits] = ACTIONS(5000),
    [sym_vector] = ACTIONS(5000),
    [sym_void] = ACTIONS(5000),
    [anon_sym_BQUOTE] = ACTIONS(5002),
    [anon_sym_r_DQUOTE] = ACTIONS(5002),
    [anon_sym_x_DQUOTE] = ACTIONS(5002),
    [anon_sym_DQUOTE] = ACTIONS(5002),
    [anon_sym_i_BQUOTE] = ACTIONS(5002),
    [anon_sym_i_DQUOTE] = ACTIONS(5002),
    [anon_sym_iq_LBRACE] = ACTIONS(5002),
    [aux_sym_char_literal_token1] = ACTIONS(5002),
    [anon_sym_SQUOTE] = ACTIONS(5000),
    [anon_sym___DATE__] = ACTIONS(5000),
    [anon_sym___FILE__] = ACTIONS(5000),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5000),
    [anon_sym___FUNCTION__] = ACTIONS(5000),
    [anon_sym___LINE__] = ACTIONS(5000),
    [anon_sym___MODULE__] = ACTIONS(5000),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5000),
    [anon_sym___TIME__] = ACTIONS(5000),
    [anon_sym___TIMESTAMP__] = ACTIONS(5000),
    [anon_sym___VENDOR__] = ACTIONS(5000),
    [anon_sym___VERSION__] = ACTIONS(5000),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5002),
    [sym_float_literal] = ACTIONS(5002),
    [sym__string] = ACTIONS(5002),
  },
  [1731] = {
    [sym_identifier] = ACTIONS(5060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5062),
    [anon_sym_RBRACE] = ACTIONS(5062),
    [anon_sym_LBRACE] = ACTIONS(5062),
    [anon_sym_DOT] = ACTIONS(5062),
    [anon_sym_AMP] = ACTIONS(5062),
    [anon_sym_DASH] = ACTIONS(5060),
    [anon_sym_DASH_DASH] = ACTIONS(5062),
    [anon_sym_PLUS] = ACTIONS(5060),
    [anon_sym_PLUS_PLUS] = ACTIONS(5062),
    [anon_sym_BANG] = ACTIONS(5062),
    [anon_sym_LPAREN] = ACTIONS(5062),
    [anon_sym_RPAREN] = ACTIONS(5062),
    [anon_sym_LBRACK] = ACTIONS(5062),
    [anon_sym_SEMI] = ACTIONS(5062),
    [anon_sym_DOLLAR] = ACTIONS(5062),
    [anon_sym_STAR] = ACTIONS(5062),
    [anon_sym_TILDE] = ACTIONS(5062),
    [anon_sym_AT] = ACTIONS(5062),
    [sym_bool] = ACTIONS(5060),
    [sym_byte] = ACTIONS(5060),
    [sym_ubyte] = ACTIONS(5060),
    [sym_char] = ACTIONS(5060),
    [sym_short] = ACTIONS(5060),
    [sym_ushort] = ACTIONS(5060),
    [sym_int] = ACTIONS(5060),
    [sym_uint] = ACTIONS(5060),
    [sym_long] = ACTIONS(5060),
    [sym_ulong] = ACTIONS(5060),
    [sym_cent] = ACTIONS(5060),
    [sym_ucent] = ACTIONS(5060),
    [sym_wchar] = ACTIONS(5060),
    [sym_dchar] = ACTIONS(5060),
    [sym_float] = ACTIONS(5060),
    [sym_double] = ACTIONS(5060),
    [sym_real] = ACTIONS(5060),
    [sym_ifloat] = ACTIONS(5060),
    [sym_idouble] = ACTIONS(5060),
    [sym_ireal] = ACTIONS(5060),
    [sym_cfloat] = ACTIONS(5060),
    [sym_cdouble] = ACTIONS(5060),
    [sym_creal] = ACTIONS(5060),
    [sym_size_t] = ACTIONS(5060),
    [sym_ptrdiff_t] = ACTIONS(5060),
    [sym_string] = ACTIONS(5060),
    [sym_cstring] = ACTIONS(5060),
    [sym_dstring] = ACTIONS(5060),
    [sym_wstring] = ACTIONS(5060),
    [sym_noreturn] = ACTIONS(5060),
    [sym_true] = ACTIONS(5060),
    [sym_false] = ACTIONS(5060),
    [sym_null] = ACTIONS(5060),
    [sym_super] = ACTIONS(5060),
    [sym_this] = ACTIONS(5060),
    [sym_abstract] = ACTIONS(5060),
    [sym_alias] = ACTIONS(5060),
    [sym_align] = ACTIONS(5060),
    [sym_asm] = ACTIONS(5060),
    [sym_assert] = ACTIONS(5060),
    [sym_auto] = ACTIONS(5060),
    [sym_break] = ACTIONS(5060),
    [sym_case] = ACTIONS(5060),
    [sym_cast] = ACTIONS(5060),
    [sym_class] = ACTIONS(5060),
    [sym_const] = ACTIONS(5060),
    [sym_continue] = ACTIONS(5060),
    [sym_debug] = ACTIONS(5060),
    [sym_default] = ACTIONS(5060),
    [sym_delegate] = ACTIONS(5060),
    [sym_delete] = ACTIONS(5060),
    [sym_deprecated] = ACTIONS(5060),
    [sym_do] = ACTIONS(5060),
    [sym_else] = ACTIONS(5060),
    [sym_enum] = ACTIONS(5060),
    [sym_export] = ACTIONS(5060),
    [sym_extern] = ACTIONS(5060),
    [sym_final] = ACTIONS(5060),
    [sym_for] = ACTIONS(5060),
    [sym_foreach] = ACTIONS(5060),
    [sym_foreach_reverse] = ACTIONS(5060),
    [sym_function] = ACTIONS(5060),
    [sym_goto] = ACTIONS(5060),
    [sym_if] = ACTIONS(5060),
    [sym_immutable] = ACTIONS(5060),
    [sym_import] = ACTIONS(5060),
    [sym_in] = ACTIONS(5060),
    [sym_inout] = ACTIONS(5060),
    [sym_interface] = ACTIONS(5060),
    [sym_invariant] = ACTIONS(5060),
    [sym_is] = ACTIONS(5060),
    [sym_mixin] = ACTIONS(5060),
    [sym_new] = ACTIONS(5060),
    [sym_nothrow] = ACTIONS(5060),
    [sym_out] = ACTIONS(5060),
    [sym_override] = ACTIONS(5060),
    [sym_package] = ACTIONS(5060),
    [sym_pragma] = ACTIONS(5060),
    [sym_private] = ACTIONS(5060),
    [sym_protected] = ACTIONS(5060),
    [sym_public] = ACTIONS(5060),
    [sym_pure] = ACTIONS(5060),
    [sym_ref] = ACTIONS(5060),
    [sym_return] = ACTIONS(5060),
    [sym_scope] = ACTIONS(5060),
    [sym_shared] = ACTIONS(5060),
    [sym_static] = ACTIONS(5060),
    [sym_struct] = ACTIONS(5060),
    [sym_switch] = ACTIONS(5060),
    [sym_synchronized] = ACTIONS(5060),
    [sym_template] = ACTIONS(5060),
    [sym_throw] = ACTIONS(5060),
    [sym_try] = ACTIONS(5060),
    [sym_typeid] = ACTIONS(5060),
    [sym_typeof] = ACTIONS(5060),
    [sym_union] = ACTIONS(5060),
    [sym_unittest] = ACTIONS(5060),
    [sym_version] = ACTIONS(5060),
    [sym_while] = ACTIONS(5060),
    [sym_with] = ACTIONS(5060),
    [sym_gshared] = ACTIONS(5060),
    [sym_traits] = ACTIONS(5060),
    [sym_vector] = ACTIONS(5060),
    [sym_void] = ACTIONS(5060),
    [anon_sym_BQUOTE] = ACTIONS(5062),
    [anon_sym_r_DQUOTE] = ACTIONS(5062),
    [anon_sym_x_DQUOTE] = ACTIONS(5062),
    [anon_sym_DQUOTE] = ACTIONS(5062),
    [anon_sym_i_BQUOTE] = ACTIONS(5062),
    [anon_sym_i_DQUOTE] = ACTIONS(5062),
    [anon_sym_iq_LBRACE] = ACTIONS(5062),
    [aux_sym_char_literal_token1] = ACTIONS(5062),
    [anon_sym_SQUOTE] = ACTIONS(5060),
    [anon_sym___DATE__] = ACTIONS(5060),
    [anon_sym___FILE__] = ACTIONS(5060),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5060),
    [anon_sym___FUNCTION__] = ACTIONS(5060),
    [anon_sym___LINE__] = ACTIONS(5060),
    [anon_sym___MODULE__] = ACTIONS(5060),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5060),
    [anon_sym___TIME__] = ACTIONS(5060),
    [anon_sym___TIMESTAMP__] = ACTIONS(5060),
    [anon_sym___VENDOR__] = ACTIONS(5060),
    [anon_sym___VERSION__] = ACTIONS(5060),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5062),
    [sym_float_literal] = ACTIONS(5062),
    [sym__string] = ACTIONS(5062),
  },
  [1732] = {
    [sym_identifier] = ACTIONS(5008),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5010),
    [anon_sym_RBRACE] = ACTIONS(5010),
    [anon_sym_LBRACE] = ACTIONS(5010),
    [anon_sym_DOT] = ACTIONS(5010),
    [anon_sym_AMP] = ACTIONS(5010),
    [anon_sym_DASH] = ACTIONS(5008),
    [anon_sym_DASH_DASH] = ACTIONS(5010),
    [anon_sym_PLUS] = ACTIONS(5008),
    [anon_sym_PLUS_PLUS] = ACTIONS(5010),
    [anon_sym_BANG] = ACTIONS(5010),
    [anon_sym_LPAREN] = ACTIONS(5010),
    [anon_sym_RPAREN] = ACTIONS(5010),
    [anon_sym_LBRACK] = ACTIONS(5010),
    [anon_sym_SEMI] = ACTIONS(5010),
    [anon_sym_DOLLAR] = ACTIONS(5010),
    [anon_sym_STAR] = ACTIONS(5010),
    [anon_sym_TILDE] = ACTIONS(5010),
    [anon_sym_AT] = ACTIONS(5010),
    [sym_bool] = ACTIONS(5008),
    [sym_byte] = ACTIONS(5008),
    [sym_ubyte] = ACTIONS(5008),
    [sym_char] = ACTIONS(5008),
    [sym_short] = ACTIONS(5008),
    [sym_ushort] = ACTIONS(5008),
    [sym_int] = ACTIONS(5008),
    [sym_uint] = ACTIONS(5008),
    [sym_long] = ACTIONS(5008),
    [sym_ulong] = ACTIONS(5008),
    [sym_cent] = ACTIONS(5008),
    [sym_ucent] = ACTIONS(5008),
    [sym_wchar] = ACTIONS(5008),
    [sym_dchar] = ACTIONS(5008),
    [sym_float] = ACTIONS(5008),
    [sym_double] = ACTIONS(5008),
    [sym_real] = ACTIONS(5008),
    [sym_ifloat] = ACTIONS(5008),
    [sym_idouble] = ACTIONS(5008),
    [sym_ireal] = ACTIONS(5008),
    [sym_cfloat] = ACTIONS(5008),
    [sym_cdouble] = ACTIONS(5008),
    [sym_creal] = ACTIONS(5008),
    [sym_size_t] = ACTIONS(5008),
    [sym_ptrdiff_t] = ACTIONS(5008),
    [sym_string] = ACTIONS(5008),
    [sym_cstring] = ACTIONS(5008),
    [sym_dstring] = ACTIONS(5008),
    [sym_wstring] = ACTIONS(5008),
    [sym_noreturn] = ACTIONS(5008),
    [sym_true] = ACTIONS(5008),
    [sym_false] = ACTIONS(5008),
    [sym_null] = ACTIONS(5008),
    [sym_super] = ACTIONS(5008),
    [sym_this] = ACTIONS(5008),
    [sym_abstract] = ACTIONS(5008),
    [sym_alias] = ACTIONS(5008),
    [sym_align] = ACTIONS(5008),
    [sym_asm] = ACTIONS(5008),
    [sym_assert] = ACTIONS(5008),
    [sym_auto] = ACTIONS(5008),
    [sym_break] = ACTIONS(5008),
    [sym_case] = ACTIONS(5008),
    [sym_cast] = ACTIONS(5008),
    [sym_class] = ACTIONS(5008),
    [sym_const] = ACTIONS(5008),
    [sym_continue] = ACTIONS(5008),
    [sym_debug] = ACTIONS(5008),
    [sym_default] = ACTIONS(5008),
    [sym_delegate] = ACTIONS(5008),
    [sym_delete] = ACTIONS(5008),
    [sym_deprecated] = ACTIONS(5008),
    [sym_do] = ACTIONS(5008),
    [sym_else] = ACTIONS(5008),
    [sym_enum] = ACTIONS(5008),
    [sym_export] = ACTIONS(5008),
    [sym_extern] = ACTIONS(5008),
    [sym_final] = ACTIONS(5008),
    [sym_for] = ACTIONS(5008),
    [sym_foreach] = ACTIONS(5008),
    [sym_foreach_reverse] = ACTIONS(5008),
    [sym_function] = ACTIONS(5008),
    [sym_goto] = ACTIONS(5008),
    [sym_if] = ACTIONS(5008),
    [sym_immutable] = ACTIONS(5008),
    [sym_import] = ACTIONS(5008),
    [sym_in] = ACTIONS(5008),
    [sym_inout] = ACTIONS(5008),
    [sym_interface] = ACTIONS(5008),
    [sym_invariant] = ACTIONS(5008),
    [sym_is] = ACTIONS(5008),
    [sym_mixin] = ACTIONS(5008),
    [sym_new] = ACTIONS(5008),
    [sym_nothrow] = ACTIONS(5008),
    [sym_out] = ACTIONS(5008),
    [sym_override] = ACTIONS(5008),
    [sym_package] = ACTIONS(5008),
    [sym_pragma] = ACTIONS(5008),
    [sym_private] = ACTIONS(5008),
    [sym_protected] = ACTIONS(5008),
    [sym_public] = ACTIONS(5008),
    [sym_pure] = ACTIONS(5008),
    [sym_ref] = ACTIONS(5008),
    [sym_return] = ACTIONS(5008),
    [sym_scope] = ACTIONS(5008),
    [sym_shared] = ACTIONS(5008),
    [sym_static] = ACTIONS(5008),
    [sym_struct] = ACTIONS(5008),
    [sym_switch] = ACTIONS(5008),
    [sym_synchronized] = ACTIONS(5008),
    [sym_template] = ACTIONS(5008),
    [sym_throw] = ACTIONS(5008),
    [sym_try] = ACTIONS(5008),
    [sym_typeid] = ACTIONS(5008),
    [sym_typeof] = ACTIONS(5008),
    [sym_union] = ACTIONS(5008),
    [sym_unittest] = ACTIONS(5008),
    [sym_version] = ACTIONS(5008),
    [sym_while] = ACTIONS(5008),
    [sym_with] = ACTIONS(5008),
    [sym_gshared] = ACTIONS(5008),
    [sym_traits] = ACTIONS(5008),
    [sym_vector] = ACTIONS(5008),
    [sym_void] = ACTIONS(5008),
    [anon_sym_BQUOTE] = ACTIONS(5010),
    [anon_sym_r_DQUOTE] = ACTIONS(5010),
    [anon_sym_x_DQUOTE] = ACTIONS(5010),
    [anon_sym_DQUOTE] = ACTIONS(5010),
    [anon_sym_i_BQUOTE] = ACTIONS(5010),
    [anon_sym_i_DQUOTE] = ACTIONS(5010),
    [anon_sym_iq_LBRACE] = ACTIONS(5010),
    [aux_sym_char_literal_token1] = ACTIONS(5010),
    [anon_sym_SQUOTE] = ACTIONS(5008),
    [anon_sym___DATE__] = ACTIONS(5008),
    [anon_sym___FILE__] = ACTIONS(5008),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5008),
    [anon_sym___FUNCTION__] = ACTIONS(5008),
    [anon_sym___LINE__] = ACTIONS(5008),
    [anon_sym___MODULE__] = ACTIONS(5008),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5008),
    [anon_sym___TIME__] = ACTIONS(5008),
    [anon_sym___TIMESTAMP__] = ACTIONS(5008),
    [anon_sym___VENDOR__] = ACTIONS(5008),
    [anon_sym___VERSION__] = ACTIONS(5008),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5010),
    [sym_float_literal] = ACTIONS(5010),
    [sym__string] = ACTIONS(5010),
  },
  [1733] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3072),
    [anon_sym_RBRACE] = ACTIONS(3072),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_AMP] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3070),
    [anon_sym_DASH_DASH] = ACTIONS(3072),
    [anon_sym_PLUS] = ACTIONS(3070),
    [anon_sym_PLUS_PLUS] = ACTIONS(3072),
    [anon_sym_BANG] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3072),
    [anon_sym_RPAREN] = ACTIONS(3072),
    [anon_sym_LBRACK] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_DOLLAR] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_true] = ACTIONS(3070),
    [sym_false] = ACTIONS(3070),
    [sym_null] = ACTIONS(3070),
    [sym_super] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_asm] = ACTIONS(3070),
    [sym_assert] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_break] = ACTIONS(3070),
    [sym_case] = ACTIONS(3070),
    [sym_cast] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_continue] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_default] = ACTIONS(3070),
    [sym_delegate] = ACTIONS(3070),
    [sym_delete] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_for] = ACTIONS(3070),
    [sym_foreach] = ACTIONS(3070),
    [sym_foreach_reverse] = ACTIONS(3070),
    [sym_function] = ACTIONS(3070),
    [sym_goto] = ACTIONS(3070),
    [sym_if] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_is] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_new] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_switch] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_throw] = ACTIONS(3070),
    [sym_try] = ACTIONS(3070),
    [sym_typeid] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_with] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [anon_sym_BQUOTE] = ACTIONS(3072),
    [anon_sym_r_DQUOTE] = ACTIONS(3072),
    [anon_sym_x_DQUOTE] = ACTIONS(3072),
    [anon_sym_DQUOTE] = ACTIONS(3072),
    [anon_sym_i_BQUOTE] = ACTIONS(3072),
    [anon_sym_i_DQUOTE] = ACTIONS(3072),
    [anon_sym_iq_LBRACE] = ACTIONS(3072),
    [aux_sym_char_literal_token1] = ACTIONS(3072),
    [anon_sym_SQUOTE] = ACTIONS(3070),
    [anon_sym___DATE__] = ACTIONS(3070),
    [anon_sym___FILE__] = ACTIONS(3070),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3070),
    [anon_sym___FUNCTION__] = ACTIONS(3070),
    [anon_sym___LINE__] = ACTIONS(3070),
    [anon_sym___MODULE__] = ACTIONS(3070),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3070),
    [anon_sym___TIME__] = ACTIONS(3070),
    [anon_sym___TIMESTAMP__] = ACTIONS(3070),
    [anon_sym___VENDOR__] = ACTIONS(3070),
    [anon_sym___VERSION__] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3072),
    [sym_float_literal] = ACTIONS(3072),
    [sym__string] = ACTIONS(3072),
  },
  [1734] = {
    [sym_identifier] = ACTIONS(4606),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4608),
    [anon_sym_RBRACE] = ACTIONS(4608),
    [anon_sym_LBRACE] = ACTIONS(4608),
    [anon_sym_DOT] = ACTIONS(4608),
    [anon_sym_AMP] = ACTIONS(4608),
    [anon_sym_DASH] = ACTIONS(4606),
    [anon_sym_DASH_DASH] = ACTIONS(4608),
    [anon_sym_PLUS] = ACTIONS(4606),
    [anon_sym_PLUS_PLUS] = ACTIONS(4608),
    [anon_sym_BANG] = ACTIONS(4608),
    [anon_sym_LPAREN] = ACTIONS(4608),
    [anon_sym_RPAREN] = ACTIONS(4608),
    [anon_sym_LBRACK] = ACTIONS(4608),
    [anon_sym_SEMI] = ACTIONS(4608),
    [anon_sym_DOLLAR] = ACTIONS(4608),
    [anon_sym_STAR] = ACTIONS(4608),
    [anon_sym_TILDE] = ACTIONS(4608),
    [anon_sym_AT] = ACTIONS(4608),
    [sym_bool] = ACTIONS(4606),
    [sym_byte] = ACTIONS(4606),
    [sym_ubyte] = ACTIONS(4606),
    [sym_char] = ACTIONS(4606),
    [sym_short] = ACTIONS(4606),
    [sym_ushort] = ACTIONS(4606),
    [sym_int] = ACTIONS(4606),
    [sym_uint] = ACTIONS(4606),
    [sym_long] = ACTIONS(4606),
    [sym_ulong] = ACTIONS(4606),
    [sym_cent] = ACTIONS(4606),
    [sym_ucent] = ACTIONS(4606),
    [sym_wchar] = ACTIONS(4606),
    [sym_dchar] = ACTIONS(4606),
    [sym_float] = ACTIONS(4606),
    [sym_double] = ACTIONS(4606),
    [sym_real] = ACTIONS(4606),
    [sym_ifloat] = ACTIONS(4606),
    [sym_idouble] = ACTIONS(4606),
    [sym_ireal] = ACTIONS(4606),
    [sym_cfloat] = ACTIONS(4606),
    [sym_cdouble] = ACTIONS(4606),
    [sym_creal] = ACTIONS(4606),
    [sym_size_t] = ACTIONS(4606),
    [sym_ptrdiff_t] = ACTIONS(4606),
    [sym_string] = ACTIONS(4606),
    [sym_cstring] = ACTIONS(4606),
    [sym_dstring] = ACTIONS(4606),
    [sym_wstring] = ACTIONS(4606),
    [sym_noreturn] = ACTIONS(4606),
    [sym_true] = ACTIONS(4606),
    [sym_false] = ACTIONS(4606),
    [sym_null] = ACTIONS(4606),
    [sym_super] = ACTIONS(4606),
    [sym_this] = ACTIONS(4606),
    [sym_abstract] = ACTIONS(4606),
    [sym_alias] = ACTIONS(4606),
    [sym_align] = ACTIONS(4606),
    [sym_asm] = ACTIONS(4606),
    [sym_assert] = ACTIONS(4606),
    [sym_auto] = ACTIONS(4606),
    [sym_break] = ACTIONS(4606),
    [sym_case] = ACTIONS(4606),
    [sym_cast] = ACTIONS(4606),
    [sym_class] = ACTIONS(4606),
    [sym_const] = ACTIONS(4606),
    [sym_continue] = ACTIONS(4606),
    [sym_debug] = ACTIONS(4606),
    [sym_default] = ACTIONS(4606),
    [sym_delegate] = ACTIONS(4606),
    [sym_delete] = ACTIONS(4606),
    [sym_deprecated] = ACTIONS(4606),
    [sym_do] = ACTIONS(4606),
    [sym_else] = ACTIONS(4606),
    [sym_enum] = ACTIONS(4606),
    [sym_export] = ACTIONS(4606),
    [sym_extern] = ACTIONS(4606),
    [sym_final] = ACTIONS(4606),
    [sym_for] = ACTIONS(4606),
    [sym_foreach] = ACTIONS(4606),
    [sym_foreach_reverse] = ACTIONS(4606),
    [sym_function] = ACTIONS(4606),
    [sym_goto] = ACTIONS(4606),
    [sym_if] = ACTIONS(4606),
    [sym_immutable] = ACTIONS(4606),
    [sym_import] = ACTIONS(4606),
    [sym_in] = ACTIONS(4606),
    [sym_inout] = ACTIONS(4606),
    [sym_interface] = ACTIONS(4606),
    [sym_invariant] = ACTIONS(4606),
    [sym_is] = ACTIONS(4606),
    [sym_mixin] = ACTIONS(4606),
    [sym_new] = ACTIONS(4606),
    [sym_nothrow] = ACTIONS(4606),
    [sym_out] = ACTIONS(4606),
    [sym_override] = ACTIONS(4606),
    [sym_package] = ACTIONS(4606),
    [sym_pragma] = ACTIONS(4606),
    [sym_private] = ACTIONS(4606),
    [sym_protected] = ACTIONS(4606),
    [sym_public] = ACTIONS(4606),
    [sym_pure] = ACTIONS(4606),
    [sym_ref] = ACTIONS(4606),
    [sym_return] = ACTIONS(4606),
    [sym_scope] = ACTIONS(4606),
    [sym_shared] = ACTIONS(4606),
    [sym_static] = ACTIONS(4606),
    [sym_struct] = ACTIONS(4606),
    [sym_switch] = ACTIONS(4606),
    [sym_synchronized] = ACTIONS(4606),
    [sym_template] = ACTIONS(4606),
    [sym_throw] = ACTIONS(4606),
    [sym_try] = ACTIONS(4606),
    [sym_typeid] = ACTIONS(4606),
    [sym_typeof] = ACTIONS(4606),
    [sym_union] = ACTIONS(4606),
    [sym_unittest] = ACTIONS(4606),
    [sym_version] = ACTIONS(4606),
    [sym_while] = ACTIONS(4606),
    [sym_with] = ACTIONS(4606),
    [sym_gshared] = ACTIONS(4606),
    [sym_traits] = ACTIONS(4606),
    [sym_vector] = ACTIONS(4606),
    [sym_void] = ACTIONS(4606),
    [anon_sym_BQUOTE] = ACTIONS(4608),
    [anon_sym_r_DQUOTE] = ACTIONS(4608),
    [anon_sym_x_DQUOTE] = ACTIONS(4608),
    [anon_sym_DQUOTE] = ACTIONS(4608),
    [anon_sym_i_BQUOTE] = ACTIONS(4608),
    [anon_sym_i_DQUOTE] = ACTIONS(4608),
    [anon_sym_iq_LBRACE] = ACTIONS(4608),
    [aux_sym_char_literal_token1] = ACTIONS(4608),
    [anon_sym_SQUOTE] = ACTIONS(4606),
    [anon_sym___DATE__] = ACTIONS(4606),
    [anon_sym___FILE__] = ACTIONS(4606),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4606),
    [anon_sym___FUNCTION__] = ACTIONS(4606),
    [anon_sym___LINE__] = ACTIONS(4606),
    [anon_sym___MODULE__] = ACTIONS(4606),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4606),
    [anon_sym___TIME__] = ACTIONS(4606),
    [anon_sym___TIMESTAMP__] = ACTIONS(4606),
    [anon_sym___VENDOR__] = ACTIONS(4606),
    [anon_sym___VERSION__] = ACTIONS(4606),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4608),
    [sym_float_literal] = ACTIONS(4608),
    [sym__string] = ACTIONS(4608),
  },
  [1735] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(5111),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [1736] = {
    [sym_identifier] = ACTIONS(4694),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4696),
    [anon_sym_RBRACE] = ACTIONS(4696),
    [anon_sym_LBRACE] = ACTIONS(4696),
    [anon_sym_DOT] = ACTIONS(4696),
    [anon_sym_AMP] = ACTIONS(4696),
    [anon_sym_DASH] = ACTIONS(4694),
    [anon_sym_DASH_DASH] = ACTIONS(4696),
    [anon_sym_PLUS] = ACTIONS(4694),
    [anon_sym_PLUS_PLUS] = ACTIONS(4696),
    [anon_sym_BANG] = ACTIONS(4696),
    [anon_sym_LPAREN] = ACTIONS(4696),
    [anon_sym_RPAREN] = ACTIONS(4696),
    [anon_sym_LBRACK] = ACTIONS(4696),
    [anon_sym_SEMI] = ACTIONS(4696),
    [anon_sym_DOLLAR] = ACTIONS(4696),
    [anon_sym_STAR] = ACTIONS(4696),
    [anon_sym_TILDE] = ACTIONS(4696),
    [anon_sym_AT] = ACTIONS(4696),
    [sym_bool] = ACTIONS(4694),
    [sym_byte] = ACTIONS(4694),
    [sym_ubyte] = ACTIONS(4694),
    [sym_char] = ACTIONS(4694),
    [sym_short] = ACTIONS(4694),
    [sym_ushort] = ACTIONS(4694),
    [sym_int] = ACTIONS(4694),
    [sym_uint] = ACTIONS(4694),
    [sym_long] = ACTIONS(4694),
    [sym_ulong] = ACTIONS(4694),
    [sym_cent] = ACTIONS(4694),
    [sym_ucent] = ACTIONS(4694),
    [sym_wchar] = ACTIONS(4694),
    [sym_dchar] = ACTIONS(4694),
    [sym_float] = ACTIONS(4694),
    [sym_double] = ACTIONS(4694),
    [sym_real] = ACTIONS(4694),
    [sym_ifloat] = ACTIONS(4694),
    [sym_idouble] = ACTIONS(4694),
    [sym_ireal] = ACTIONS(4694),
    [sym_cfloat] = ACTIONS(4694),
    [sym_cdouble] = ACTIONS(4694),
    [sym_creal] = ACTIONS(4694),
    [sym_size_t] = ACTIONS(4694),
    [sym_ptrdiff_t] = ACTIONS(4694),
    [sym_string] = ACTIONS(4694),
    [sym_cstring] = ACTIONS(4694),
    [sym_dstring] = ACTIONS(4694),
    [sym_wstring] = ACTIONS(4694),
    [sym_noreturn] = ACTIONS(4694),
    [sym_true] = ACTIONS(4694),
    [sym_false] = ACTIONS(4694),
    [sym_null] = ACTIONS(4694),
    [sym_super] = ACTIONS(4694),
    [sym_this] = ACTIONS(4694),
    [sym_abstract] = ACTIONS(4694),
    [sym_alias] = ACTIONS(4694),
    [sym_align] = ACTIONS(4694),
    [sym_asm] = ACTIONS(4694),
    [sym_assert] = ACTIONS(4694),
    [sym_auto] = ACTIONS(4694),
    [sym_break] = ACTIONS(4694),
    [sym_case] = ACTIONS(4694),
    [sym_cast] = ACTIONS(4694),
    [sym_class] = ACTIONS(4694),
    [sym_const] = ACTIONS(4694),
    [sym_continue] = ACTIONS(4694),
    [sym_debug] = ACTIONS(4694),
    [sym_default] = ACTIONS(4694),
    [sym_delegate] = ACTIONS(4694),
    [sym_delete] = ACTIONS(4694),
    [sym_deprecated] = ACTIONS(4694),
    [sym_do] = ACTIONS(4694),
    [sym_else] = ACTIONS(4694),
    [sym_enum] = ACTIONS(4694),
    [sym_export] = ACTIONS(4694),
    [sym_extern] = ACTIONS(4694),
    [sym_final] = ACTIONS(4694),
    [sym_for] = ACTIONS(4694),
    [sym_foreach] = ACTIONS(4694),
    [sym_foreach_reverse] = ACTIONS(4694),
    [sym_function] = ACTIONS(4694),
    [sym_goto] = ACTIONS(4694),
    [sym_if] = ACTIONS(4694),
    [sym_immutable] = ACTIONS(4694),
    [sym_import] = ACTIONS(4694),
    [sym_in] = ACTIONS(4694),
    [sym_inout] = ACTIONS(4694),
    [sym_interface] = ACTIONS(4694),
    [sym_invariant] = ACTIONS(4694),
    [sym_is] = ACTIONS(4694),
    [sym_mixin] = ACTIONS(4694),
    [sym_new] = ACTIONS(4694),
    [sym_nothrow] = ACTIONS(4694),
    [sym_out] = ACTIONS(4694),
    [sym_override] = ACTIONS(4694),
    [sym_package] = ACTIONS(4694),
    [sym_pragma] = ACTIONS(4694),
    [sym_private] = ACTIONS(4694),
    [sym_protected] = ACTIONS(4694),
    [sym_public] = ACTIONS(4694),
    [sym_pure] = ACTIONS(4694),
    [sym_ref] = ACTIONS(4694),
    [sym_return] = ACTIONS(4694),
    [sym_scope] = ACTIONS(4694),
    [sym_shared] = ACTIONS(4694),
    [sym_static] = ACTIONS(4694),
    [sym_struct] = ACTIONS(4694),
    [sym_switch] = ACTIONS(4694),
    [sym_synchronized] = ACTIONS(4694),
    [sym_template] = ACTIONS(4694),
    [sym_throw] = ACTIONS(4694),
    [sym_try] = ACTIONS(4694),
    [sym_typeid] = ACTIONS(4694),
    [sym_typeof] = ACTIONS(4694),
    [sym_union] = ACTIONS(4694),
    [sym_unittest] = ACTIONS(4694),
    [sym_version] = ACTIONS(4694),
    [sym_while] = ACTIONS(4694),
    [sym_with] = ACTIONS(4694),
    [sym_gshared] = ACTIONS(4694),
    [sym_traits] = ACTIONS(4694),
    [sym_vector] = ACTIONS(4694),
    [sym_void] = ACTIONS(4694),
    [anon_sym_BQUOTE] = ACTIONS(4696),
    [anon_sym_r_DQUOTE] = ACTIONS(4696),
    [anon_sym_x_DQUOTE] = ACTIONS(4696),
    [anon_sym_DQUOTE] = ACTIONS(4696),
    [anon_sym_i_BQUOTE] = ACTIONS(4696),
    [anon_sym_i_DQUOTE] = ACTIONS(4696),
    [anon_sym_iq_LBRACE] = ACTIONS(4696),
    [aux_sym_char_literal_token1] = ACTIONS(4696),
    [anon_sym_SQUOTE] = ACTIONS(4694),
    [anon_sym___DATE__] = ACTIONS(4694),
    [anon_sym___FILE__] = ACTIONS(4694),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4694),
    [anon_sym___FUNCTION__] = ACTIONS(4694),
    [anon_sym___LINE__] = ACTIONS(4694),
    [anon_sym___MODULE__] = ACTIONS(4694),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4694),
    [anon_sym___TIME__] = ACTIONS(4694),
    [anon_sym___TIMESTAMP__] = ACTIONS(4694),
    [anon_sym___VENDOR__] = ACTIONS(4694),
    [anon_sym___VERSION__] = ACTIONS(4694),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4696),
    [sym_float_literal] = ACTIONS(4696),
    [sym__string] = ACTIONS(4696),
  },
  [1737] = {
    [sym_identifier] = ACTIONS(4534),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4536),
    [anon_sym_RBRACE] = ACTIONS(4536),
    [anon_sym_LBRACE] = ACTIONS(4536),
    [anon_sym_DOT] = ACTIONS(4536),
    [anon_sym_AMP] = ACTIONS(4536),
    [anon_sym_DASH] = ACTIONS(4534),
    [anon_sym_DASH_DASH] = ACTIONS(4536),
    [anon_sym_PLUS] = ACTIONS(4534),
    [anon_sym_PLUS_PLUS] = ACTIONS(4536),
    [anon_sym_BANG] = ACTIONS(4536),
    [anon_sym_LPAREN] = ACTIONS(4536),
    [anon_sym_RPAREN] = ACTIONS(4536),
    [anon_sym_LBRACK] = ACTIONS(4536),
    [anon_sym_SEMI] = ACTIONS(4536),
    [anon_sym_DOLLAR] = ACTIONS(4536),
    [anon_sym_STAR] = ACTIONS(4536),
    [anon_sym_TILDE] = ACTIONS(4536),
    [anon_sym_AT] = ACTIONS(4536),
    [sym_bool] = ACTIONS(4534),
    [sym_byte] = ACTIONS(4534),
    [sym_ubyte] = ACTIONS(4534),
    [sym_char] = ACTIONS(4534),
    [sym_short] = ACTIONS(4534),
    [sym_ushort] = ACTIONS(4534),
    [sym_int] = ACTIONS(4534),
    [sym_uint] = ACTIONS(4534),
    [sym_long] = ACTIONS(4534),
    [sym_ulong] = ACTIONS(4534),
    [sym_cent] = ACTIONS(4534),
    [sym_ucent] = ACTIONS(4534),
    [sym_wchar] = ACTIONS(4534),
    [sym_dchar] = ACTIONS(4534),
    [sym_float] = ACTIONS(4534),
    [sym_double] = ACTIONS(4534),
    [sym_real] = ACTIONS(4534),
    [sym_ifloat] = ACTIONS(4534),
    [sym_idouble] = ACTIONS(4534),
    [sym_ireal] = ACTIONS(4534),
    [sym_cfloat] = ACTIONS(4534),
    [sym_cdouble] = ACTIONS(4534),
    [sym_creal] = ACTIONS(4534),
    [sym_size_t] = ACTIONS(4534),
    [sym_ptrdiff_t] = ACTIONS(4534),
    [sym_string] = ACTIONS(4534),
    [sym_cstring] = ACTIONS(4534),
    [sym_dstring] = ACTIONS(4534),
    [sym_wstring] = ACTIONS(4534),
    [sym_noreturn] = ACTIONS(4534),
    [sym_true] = ACTIONS(4534),
    [sym_false] = ACTIONS(4534),
    [sym_null] = ACTIONS(4534),
    [sym_super] = ACTIONS(4534),
    [sym_this] = ACTIONS(4534),
    [sym_abstract] = ACTIONS(4534),
    [sym_alias] = ACTIONS(4534),
    [sym_align] = ACTIONS(4534),
    [sym_asm] = ACTIONS(4534),
    [sym_assert] = ACTIONS(4534),
    [sym_auto] = ACTIONS(4534),
    [sym_break] = ACTIONS(4534),
    [sym_case] = ACTIONS(4534),
    [sym_cast] = ACTIONS(4534),
    [sym_class] = ACTIONS(4534),
    [sym_const] = ACTIONS(4534),
    [sym_continue] = ACTIONS(4534),
    [sym_debug] = ACTIONS(4534),
    [sym_default] = ACTIONS(4534),
    [sym_delegate] = ACTIONS(4534),
    [sym_delete] = ACTIONS(4534),
    [sym_deprecated] = ACTIONS(4534),
    [sym_do] = ACTIONS(4534),
    [sym_else] = ACTIONS(4534),
    [sym_enum] = ACTIONS(4534),
    [sym_export] = ACTIONS(4534),
    [sym_extern] = ACTIONS(4534),
    [sym_final] = ACTIONS(4534),
    [sym_for] = ACTIONS(4534),
    [sym_foreach] = ACTIONS(4534),
    [sym_foreach_reverse] = ACTIONS(4534),
    [sym_function] = ACTIONS(4534),
    [sym_goto] = ACTIONS(4534),
    [sym_if] = ACTIONS(4534),
    [sym_immutable] = ACTIONS(4534),
    [sym_import] = ACTIONS(4534),
    [sym_in] = ACTIONS(4534),
    [sym_inout] = ACTIONS(4534),
    [sym_interface] = ACTIONS(4534),
    [sym_invariant] = ACTIONS(4534),
    [sym_is] = ACTIONS(4534),
    [sym_mixin] = ACTIONS(4534),
    [sym_new] = ACTIONS(4534),
    [sym_nothrow] = ACTIONS(4534),
    [sym_out] = ACTIONS(4534),
    [sym_override] = ACTIONS(4534),
    [sym_package] = ACTIONS(4534),
    [sym_pragma] = ACTIONS(4534),
    [sym_private] = ACTIONS(4534),
    [sym_protected] = ACTIONS(4534),
    [sym_public] = ACTIONS(4534),
    [sym_pure] = ACTIONS(4534),
    [sym_ref] = ACTIONS(4534),
    [sym_return] = ACTIONS(4534),
    [sym_scope] = ACTIONS(4534),
    [sym_shared] = ACTIONS(4534),
    [sym_static] = ACTIONS(4534),
    [sym_struct] = ACTIONS(4534),
    [sym_switch] = ACTIONS(4534),
    [sym_synchronized] = ACTIONS(4534),
    [sym_template] = ACTIONS(4534),
    [sym_throw] = ACTIONS(4534),
    [sym_try] = ACTIONS(4534),
    [sym_typeid] = ACTIONS(4534),
    [sym_typeof] = ACTIONS(4534),
    [sym_union] = ACTIONS(4534),
    [sym_unittest] = ACTIONS(4534),
    [sym_version] = ACTIONS(4534),
    [sym_while] = ACTIONS(4534),
    [sym_with] = ACTIONS(4534),
    [sym_gshared] = ACTIONS(4534),
    [sym_traits] = ACTIONS(4534),
    [sym_vector] = ACTIONS(4534),
    [sym_void] = ACTIONS(4534),
    [anon_sym_BQUOTE] = ACTIONS(4536),
    [anon_sym_r_DQUOTE] = ACTIONS(4536),
    [anon_sym_x_DQUOTE] = ACTIONS(4536),
    [anon_sym_DQUOTE] = ACTIONS(4536),
    [anon_sym_i_BQUOTE] = ACTIONS(4536),
    [anon_sym_i_DQUOTE] = ACTIONS(4536),
    [anon_sym_iq_LBRACE] = ACTIONS(4536),
    [aux_sym_char_literal_token1] = ACTIONS(4536),
    [anon_sym_SQUOTE] = ACTIONS(4534),
    [anon_sym___DATE__] = ACTIONS(4534),
    [anon_sym___FILE__] = ACTIONS(4534),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4534),
    [anon_sym___FUNCTION__] = ACTIONS(4534),
    [anon_sym___LINE__] = ACTIONS(4534),
    [anon_sym___MODULE__] = ACTIONS(4534),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4534),
    [anon_sym___TIME__] = ACTIONS(4534),
    [anon_sym___TIMESTAMP__] = ACTIONS(4534),
    [anon_sym___VENDOR__] = ACTIONS(4534),
    [anon_sym___VERSION__] = ACTIONS(4534),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4536),
    [sym_float_literal] = ACTIONS(4536),
    [sym__string] = ACTIONS(4536),
  },
  [1738] = {
    [sym_identifier] = ACTIONS(4754),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4756),
    [anon_sym_RBRACE] = ACTIONS(4756),
    [anon_sym_LBRACE] = ACTIONS(4756),
    [anon_sym_DOT] = ACTIONS(4756),
    [anon_sym_AMP] = ACTIONS(4756),
    [anon_sym_DASH] = ACTIONS(4754),
    [anon_sym_DASH_DASH] = ACTIONS(4756),
    [anon_sym_PLUS] = ACTIONS(4754),
    [anon_sym_PLUS_PLUS] = ACTIONS(4756),
    [anon_sym_BANG] = ACTIONS(4756),
    [anon_sym_LPAREN] = ACTIONS(4756),
    [anon_sym_RPAREN] = ACTIONS(4756),
    [anon_sym_LBRACK] = ACTIONS(4756),
    [anon_sym_SEMI] = ACTIONS(4756),
    [anon_sym_DOLLAR] = ACTIONS(4756),
    [anon_sym_STAR] = ACTIONS(4756),
    [anon_sym_TILDE] = ACTIONS(4756),
    [anon_sym_AT] = ACTIONS(4756),
    [sym_bool] = ACTIONS(4754),
    [sym_byte] = ACTIONS(4754),
    [sym_ubyte] = ACTIONS(4754),
    [sym_char] = ACTIONS(4754),
    [sym_short] = ACTIONS(4754),
    [sym_ushort] = ACTIONS(4754),
    [sym_int] = ACTIONS(4754),
    [sym_uint] = ACTIONS(4754),
    [sym_long] = ACTIONS(4754),
    [sym_ulong] = ACTIONS(4754),
    [sym_cent] = ACTIONS(4754),
    [sym_ucent] = ACTIONS(4754),
    [sym_wchar] = ACTIONS(4754),
    [sym_dchar] = ACTIONS(4754),
    [sym_float] = ACTIONS(4754),
    [sym_double] = ACTIONS(4754),
    [sym_real] = ACTIONS(4754),
    [sym_ifloat] = ACTIONS(4754),
    [sym_idouble] = ACTIONS(4754),
    [sym_ireal] = ACTIONS(4754),
    [sym_cfloat] = ACTIONS(4754),
    [sym_cdouble] = ACTIONS(4754),
    [sym_creal] = ACTIONS(4754),
    [sym_size_t] = ACTIONS(4754),
    [sym_ptrdiff_t] = ACTIONS(4754),
    [sym_string] = ACTIONS(4754),
    [sym_cstring] = ACTIONS(4754),
    [sym_dstring] = ACTIONS(4754),
    [sym_wstring] = ACTIONS(4754),
    [sym_noreturn] = ACTIONS(4754),
    [sym_true] = ACTIONS(4754),
    [sym_false] = ACTIONS(4754),
    [sym_null] = ACTIONS(4754),
    [sym_super] = ACTIONS(4754),
    [sym_this] = ACTIONS(4754),
    [sym_abstract] = ACTIONS(4754),
    [sym_alias] = ACTIONS(4754),
    [sym_align] = ACTIONS(4754),
    [sym_asm] = ACTIONS(4754),
    [sym_assert] = ACTIONS(4754),
    [sym_auto] = ACTIONS(4754),
    [sym_break] = ACTIONS(4754),
    [sym_case] = ACTIONS(4754),
    [sym_cast] = ACTIONS(4754),
    [sym_class] = ACTIONS(4754),
    [sym_const] = ACTIONS(4754),
    [sym_continue] = ACTIONS(4754),
    [sym_debug] = ACTIONS(4754),
    [sym_default] = ACTIONS(4754),
    [sym_delegate] = ACTIONS(4754),
    [sym_delete] = ACTIONS(4754),
    [sym_deprecated] = ACTIONS(4754),
    [sym_do] = ACTIONS(4754),
    [sym_else] = ACTIONS(4754),
    [sym_enum] = ACTIONS(4754),
    [sym_export] = ACTIONS(4754),
    [sym_extern] = ACTIONS(4754),
    [sym_final] = ACTIONS(4754),
    [sym_for] = ACTIONS(4754),
    [sym_foreach] = ACTIONS(4754),
    [sym_foreach_reverse] = ACTIONS(4754),
    [sym_function] = ACTIONS(4754),
    [sym_goto] = ACTIONS(4754),
    [sym_if] = ACTIONS(4754),
    [sym_immutable] = ACTIONS(4754),
    [sym_import] = ACTIONS(4754),
    [sym_in] = ACTIONS(4754),
    [sym_inout] = ACTIONS(4754),
    [sym_interface] = ACTIONS(4754),
    [sym_invariant] = ACTIONS(4754),
    [sym_is] = ACTIONS(4754),
    [sym_mixin] = ACTIONS(4754),
    [sym_new] = ACTIONS(4754),
    [sym_nothrow] = ACTIONS(4754),
    [sym_out] = ACTIONS(4754),
    [sym_override] = ACTIONS(4754),
    [sym_package] = ACTIONS(4754),
    [sym_pragma] = ACTIONS(4754),
    [sym_private] = ACTIONS(4754),
    [sym_protected] = ACTIONS(4754),
    [sym_public] = ACTIONS(4754),
    [sym_pure] = ACTIONS(4754),
    [sym_ref] = ACTIONS(4754),
    [sym_return] = ACTIONS(4754),
    [sym_scope] = ACTIONS(4754),
    [sym_shared] = ACTIONS(4754),
    [sym_static] = ACTIONS(4754),
    [sym_struct] = ACTIONS(4754),
    [sym_switch] = ACTIONS(4754),
    [sym_synchronized] = ACTIONS(4754),
    [sym_template] = ACTIONS(4754),
    [sym_throw] = ACTIONS(4754),
    [sym_try] = ACTIONS(4754),
    [sym_typeid] = ACTIONS(4754),
    [sym_typeof] = ACTIONS(4754),
    [sym_union] = ACTIONS(4754),
    [sym_unittest] = ACTIONS(4754),
    [sym_version] = ACTIONS(4754),
    [sym_while] = ACTIONS(4754),
    [sym_with] = ACTIONS(4754),
    [sym_gshared] = ACTIONS(4754),
    [sym_traits] = ACTIONS(4754),
    [sym_vector] = ACTIONS(4754),
    [sym_void] = ACTIONS(4754),
    [anon_sym_BQUOTE] = ACTIONS(4756),
    [anon_sym_r_DQUOTE] = ACTIONS(4756),
    [anon_sym_x_DQUOTE] = ACTIONS(4756),
    [anon_sym_DQUOTE] = ACTIONS(4756),
    [anon_sym_i_BQUOTE] = ACTIONS(4756),
    [anon_sym_i_DQUOTE] = ACTIONS(4756),
    [anon_sym_iq_LBRACE] = ACTIONS(4756),
    [aux_sym_char_literal_token1] = ACTIONS(4756),
    [anon_sym_SQUOTE] = ACTIONS(4754),
    [anon_sym___DATE__] = ACTIONS(4754),
    [anon_sym___FILE__] = ACTIONS(4754),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4754),
    [anon_sym___FUNCTION__] = ACTIONS(4754),
    [anon_sym___LINE__] = ACTIONS(4754),
    [anon_sym___MODULE__] = ACTIONS(4754),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4754),
    [anon_sym___TIME__] = ACTIONS(4754),
    [anon_sym___TIMESTAMP__] = ACTIONS(4754),
    [anon_sym___VENDOR__] = ACTIONS(4754),
    [anon_sym___VERSION__] = ACTIONS(4754),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4756),
    [sym_float_literal] = ACTIONS(4756),
    [sym__string] = ACTIONS(4756),
  },
  [1739] = {
    [sym_identifier] = ACTIONS(4848),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4850),
    [anon_sym_RBRACE] = ACTIONS(4850),
    [anon_sym_LBRACE] = ACTIONS(4850),
    [anon_sym_DOT] = ACTIONS(4850),
    [anon_sym_AMP] = ACTIONS(4850),
    [anon_sym_DASH] = ACTIONS(4848),
    [anon_sym_DASH_DASH] = ACTIONS(4850),
    [anon_sym_PLUS] = ACTIONS(4848),
    [anon_sym_PLUS_PLUS] = ACTIONS(4850),
    [anon_sym_BANG] = ACTIONS(4850),
    [anon_sym_LPAREN] = ACTIONS(4850),
    [anon_sym_RPAREN] = ACTIONS(4850),
    [anon_sym_LBRACK] = ACTIONS(4850),
    [anon_sym_SEMI] = ACTIONS(4850),
    [anon_sym_DOLLAR] = ACTIONS(4850),
    [anon_sym_STAR] = ACTIONS(4850),
    [anon_sym_TILDE] = ACTIONS(4850),
    [anon_sym_AT] = ACTIONS(4850),
    [sym_bool] = ACTIONS(4848),
    [sym_byte] = ACTIONS(4848),
    [sym_ubyte] = ACTIONS(4848),
    [sym_char] = ACTIONS(4848),
    [sym_short] = ACTIONS(4848),
    [sym_ushort] = ACTIONS(4848),
    [sym_int] = ACTIONS(4848),
    [sym_uint] = ACTIONS(4848),
    [sym_long] = ACTIONS(4848),
    [sym_ulong] = ACTIONS(4848),
    [sym_cent] = ACTIONS(4848),
    [sym_ucent] = ACTIONS(4848),
    [sym_wchar] = ACTIONS(4848),
    [sym_dchar] = ACTIONS(4848),
    [sym_float] = ACTIONS(4848),
    [sym_double] = ACTIONS(4848),
    [sym_real] = ACTIONS(4848),
    [sym_ifloat] = ACTIONS(4848),
    [sym_idouble] = ACTIONS(4848),
    [sym_ireal] = ACTIONS(4848),
    [sym_cfloat] = ACTIONS(4848),
    [sym_cdouble] = ACTIONS(4848),
    [sym_creal] = ACTIONS(4848),
    [sym_size_t] = ACTIONS(4848),
    [sym_ptrdiff_t] = ACTIONS(4848),
    [sym_string] = ACTIONS(4848),
    [sym_cstring] = ACTIONS(4848),
    [sym_dstring] = ACTIONS(4848),
    [sym_wstring] = ACTIONS(4848),
    [sym_noreturn] = ACTIONS(4848),
    [sym_true] = ACTIONS(4848),
    [sym_false] = ACTIONS(4848),
    [sym_null] = ACTIONS(4848),
    [sym_super] = ACTIONS(4848),
    [sym_this] = ACTIONS(4848),
    [sym_abstract] = ACTIONS(4848),
    [sym_alias] = ACTIONS(4848),
    [sym_align] = ACTIONS(4848),
    [sym_asm] = ACTIONS(4848),
    [sym_assert] = ACTIONS(4848),
    [sym_auto] = ACTIONS(4848),
    [sym_break] = ACTIONS(4848),
    [sym_case] = ACTIONS(4848),
    [sym_cast] = ACTIONS(4848),
    [sym_class] = ACTIONS(4848),
    [sym_const] = ACTIONS(4848),
    [sym_continue] = ACTIONS(4848),
    [sym_debug] = ACTIONS(4848),
    [sym_default] = ACTIONS(4848),
    [sym_delegate] = ACTIONS(4848),
    [sym_delete] = ACTIONS(4848),
    [sym_deprecated] = ACTIONS(4848),
    [sym_do] = ACTIONS(4848),
    [sym_else] = ACTIONS(4848),
    [sym_enum] = ACTIONS(4848),
    [sym_export] = ACTIONS(4848),
    [sym_extern] = ACTIONS(4848),
    [sym_final] = ACTIONS(4848),
    [sym_for] = ACTIONS(4848),
    [sym_foreach] = ACTIONS(4848),
    [sym_foreach_reverse] = ACTIONS(4848),
    [sym_function] = ACTIONS(4848),
    [sym_goto] = ACTIONS(4848),
    [sym_if] = ACTIONS(4848),
    [sym_immutable] = ACTIONS(4848),
    [sym_import] = ACTIONS(4848),
    [sym_in] = ACTIONS(4848),
    [sym_inout] = ACTIONS(4848),
    [sym_interface] = ACTIONS(4848),
    [sym_invariant] = ACTIONS(4848),
    [sym_is] = ACTIONS(4848),
    [sym_mixin] = ACTIONS(4848),
    [sym_new] = ACTIONS(4848),
    [sym_nothrow] = ACTIONS(4848),
    [sym_out] = ACTIONS(4848),
    [sym_override] = ACTIONS(4848),
    [sym_package] = ACTIONS(4848),
    [sym_pragma] = ACTIONS(4848),
    [sym_private] = ACTIONS(4848),
    [sym_protected] = ACTIONS(4848),
    [sym_public] = ACTIONS(4848),
    [sym_pure] = ACTIONS(4848),
    [sym_ref] = ACTIONS(4848),
    [sym_return] = ACTIONS(4848),
    [sym_scope] = ACTIONS(4848),
    [sym_shared] = ACTIONS(4848),
    [sym_static] = ACTIONS(4848),
    [sym_struct] = ACTIONS(4848),
    [sym_switch] = ACTIONS(4848),
    [sym_synchronized] = ACTIONS(4848),
    [sym_template] = ACTIONS(4848),
    [sym_throw] = ACTIONS(4848),
    [sym_try] = ACTIONS(4848),
    [sym_typeid] = ACTIONS(4848),
    [sym_typeof] = ACTIONS(4848),
    [sym_union] = ACTIONS(4848),
    [sym_unittest] = ACTIONS(4848),
    [sym_version] = ACTIONS(4848),
    [sym_while] = ACTIONS(4848),
    [sym_with] = ACTIONS(4848),
    [sym_gshared] = ACTIONS(4848),
    [sym_traits] = ACTIONS(4848),
    [sym_vector] = ACTIONS(4848),
    [sym_void] = ACTIONS(4848),
    [anon_sym_BQUOTE] = ACTIONS(4850),
    [anon_sym_r_DQUOTE] = ACTIONS(4850),
    [anon_sym_x_DQUOTE] = ACTIONS(4850),
    [anon_sym_DQUOTE] = ACTIONS(4850),
    [anon_sym_i_BQUOTE] = ACTIONS(4850),
    [anon_sym_i_DQUOTE] = ACTIONS(4850),
    [anon_sym_iq_LBRACE] = ACTIONS(4850),
    [aux_sym_char_literal_token1] = ACTIONS(4850),
    [anon_sym_SQUOTE] = ACTIONS(4848),
    [anon_sym___DATE__] = ACTIONS(4848),
    [anon_sym___FILE__] = ACTIONS(4848),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4848),
    [anon_sym___FUNCTION__] = ACTIONS(4848),
    [anon_sym___LINE__] = ACTIONS(4848),
    [anon_sym___MODULE__] = ACTIONS(4848),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4848),
    [anon_sym___TIME__] = ACTIONS(4848),
    [anon_sym___TIMESTAMP__] = ACTIONS(4848),
    [anon_sym___VENDOR__] = ACTIONS(4848),
    [anon_sym___VERSION__] = ACTIONS(4848),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4850),
    [sym_float_literal] = ACTIONS(4850),
    [sym__string] = ACTIONS(4850),
  },
  [1740] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_asm] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_break] = ACTIONS(2798),
    [sym_case] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_continue] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_default] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_for] = ACTIONS(2798),
    [sym_foreach] = ACTIONS(2798),
    [sym_foreach_reverse] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_goto] = ACTIONS(2798),
    [sym_if] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_new] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_out] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_switch] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_throw] = ACTIONS(2798),
    [sym_try] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_with] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [1741] = {
    [sym_identifier] = ACTIONS(4442),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4444),
    [anon_sym_RBRACE] = ACTIONS(4444),
    [anon_sym_LBRACE] = ACTIONS(4444),
    [anon_sym_DOT] = ACTIONS(4444),
    [anon_sym_AMP] = ACTIONS(4444),
    [anon_sym_DASH] = ACTIONS(4442),
    [anon_sym_DASH_DASH] = ACTIONS(4444),
    [anon_sym_PLUS] = ACTIONS(4442),
    [anon_sym_PLUS_PLUS] = ACTIONS(4444),
    [anon_sym_BANG] = ACTIONS(4444),
    [anon_sym_LPAREN] = ACTIONS(4444),
    [anon_sym_RPAREN] = ACTIONS(4444),
    [anon_sym_LBRACK] = ACTIONS(4444),
    [anon_sym_SEMI] = ACTIONS(4444),
    [anon_sym_DOLLAR] = ACTIONS(4444),
    [anon_sym_STAR] = ACTIONS(4444),
    [anon_sym_TILDE] = ACTIONS(4444),
    [anon_sym_AT] = ACTIONS(4444),
    [sym_bool] = ACTIONS(4442),
    [sym_byte] = ACTIONS(4442),
    [sym_ubyte] = ACTIONS(4442),
    [sym_char] = ACTIONS(4442),
    [sym_short] = ACTIONS(4442),
    [sym_ushort] = ACTIONS(4442),
    [sym_int] = ACTIONS(4442),
    [sym_uint] = ACTIONS(4442),
    [sym_long] = ACTIONS(4442),
    [sym_ulong] = ACTIONS(4442),
    [sym_cent] = ACTIONS(4442),
    [sym_ucent] = ACTIONS(4442),
    [sym_wchar] = ACTIONS(4442),
    [sym_dchar] = ACTIONS(4442),
    [sym_float] = ACTIONS(4442),
    [sym_double] = ACTIONS(4442),
    [sym_real] = ACTIONS(4442),
    [sym_ifloat] = ACTIONS(4442),
    [sym_idouble] = ACTIONS(4442),
    [sym_ireal] = ACTIONS(4442),
    [sym_cfloat] = ACTIONS(4442),
    [sym_cdouble] = ACTIONS(4442),
    [sym_creal] = ACTIONS(4442),
    [sym_size_t] = ACTIONS(4442),
    [sym_ptrdiff_t] = ACTIONS(4442),
    [sym_string] = ACTIONS(4442),
    [sym_cstring] = ACTIONS(4442),
    [sym_dstring] = ACTIONS(4442),
    [sym_wstring] = ACTIONS(4442),
    [sym_noreturn] = ACTIONS(4442),
    [sym_true] = ACTIONS(4442),
    [sym_false] = ACTIONS(4442),
    [sym_null] = ACTIONS(4442),
    [sym_super] = ACTIONS(4442),
    [sym_this] = ACTIONS(4442),
    [sym_abstract] = ACTIONS(4442),
    [sym_alias] = ACTIONS(4442),
    [sym_align] = ACTIONS(4442),
    [sym_asm] = ACTIONS(4442),
    [sym_assert] = ACTIONS(4442),
    [sym_auto] = ACTIONS(4442),
    [sym_break] = ACTIONS(4442),
    [sym_case] = ACTIONS(4442),
    [sym_cast] = ACTIONS(4442),
    [sym_class] = ACTIONS(4442),
    [sym_const] = ACTIONS(4442),
    [sym_continue] = ACTIONS(4442),
    [sym_debug] = ACTIONS(4442),
    [sym_default] = ACTIONS(4442),
    [sym_delegate] = ACTIONS(4442),
    [sym_delete] = ACTIONS(4442),
    [sym_deprecated] = ACTIONS(4442),
    [sym_do] = ACTIONS(4442),
    [sym_else] = ACTIONS(4442),
    [sym_enum] = ACTIONS(4442),
    [sym_export] = ACTIONS(4442),
    [sym_extern] = ACTIONS(4442),
    [sym_final] = ACTIONS(4442),
    [sym_for] = ACTIONS(4442),
    [sym_foreach] = ACTIONS(4442),
    [sym_foreach_reverse] = ACTIONS(4442),
    [sym_function] = ACTIONS(4442),
    [sym_goto] = ACTIONS(4442),
    [sym_if] = ACTIONS(4442),
    [sym_immutable] = ACTIONS(4442),
    [sym_import] = ACTIONS(4442),
    [sym_in] = ACTIONS(4442),
    [sym_inout] = ACTIONS(4442),
    [sym_interface] = ACTIONS(4442),
    [sym_invariant] = ACTIONS(4442),
    [sym_is] = ACTIONS(4442),
    [sym_mixin] = ACTIONS(4442),
    [sym_new] = ACTIONS(4442),
    [sym_nothrow] = ACTIONS(4442),
    [sym_out] = ACTIONS(4442),
    [sym_override] = ACTIONS(4442),
    [sym_package] = ACTIONS(4442),
    [sym_pragma] = ACTIONS(4442),
    [sym_private] = ACTIONS(4442),
    [sym_protected] = ACTIONS(4442),
    [sym_public] = ACTIONS(4442),
    [sym_pure] = ACTIONS(4442),
    [sym_ref] = ACTIONS(4442),
    [sym_return] = ACTIONS(4442),
    [sym_scope] = ACTIONS(4442),
    [sym_shared] = ACTIONS(4442),
    [sym_static] = ACTIONS(4442),
    [sym_struct] = ACTIONS(4442),
    [sym_switch] = ACTIONS(4442),
    [sym_synchronized] = ACTIONS(4442),
    [sym_template] = ACTIONS(4442),
    [sym_throw] = ACTIONS(4442),
    [sym_try] = ACTIONS(4442),
    [sym_typeid] = ACTIONS(4442),
    [sym_typeof] = ACTIONS(4442),
    [sym_union] = ACTIONS(4442),
    [sym_unittest] = ACTIONS(4442),
    [sym_version] = ACTIONS(4442),
    [sym_while] = ACTIONS(4442),
    [sym_with] = ACTIONS(4442),
    [sym_gshared] = ACTIONS(4442),
    [sym_traits] = ACTIONS(4442),
    [sym_vector] = ACTIONS(4442),
    [sym_void] = ACTIONS(4442),
    [anon_sym_BQUOTE] = ACTIONS(4444),
    [anon_sym_r_DQUOTE] = ACTIONS(4444),
    [anon_sym_x_DQUOTE] = ACTIONS(4444),
    [anon_sym_DQUOTE] = ACTIONS(4444),
    [anon_sym_i_BQUOTE] = ACTIONS(4444),
    [anon_sym_i_DQUOTE] = ACTIONS(4444),
    [anon_sym_iq_LBRACE] = ACTIONS(4444),
    [aux_sym_char_literal_token1] = ACTIONS(4444),
    [anon_sym_SQUOTE] = ACTIONS(4442),
    [anon_sym___DATE__] = ACTIONS(4442),
    [anon_sym___FILE__] = ACTIONS(4442),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4442),
    [anon_sym___FUNCTION__] = ACTIONS(4442),
    [anon_sym___LINE__] = ACTIONS(4442),
    [anon_sym___MODULE__] = ACTIONS(4442),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4442),
    [anon_sym___TIME__] = ACTIONS(4442),
    [anon_sym___TIMESTAMP__] = ACTIONS(4442),
    [anon_sym___VENDOR__] = ACTIONS(4442),
    [anon_sym___VERSION__] = ACTIONS(4442),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4444),
    [sym_float_literal] = ACTIONS(4444),
    [sym__string] = ACTIONS(4444),
  },
  [1742] = {
    [sym_identifier] = ACTIONS(4293),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4295),
    [anon_sym_RBRACE] = ACTIONS(4295),
    [anon_sym_LBRACE] = ACTIONS(4295),
    [anon_sym_DOT] = ACTIONS(4295),
    [anon_sym_AMP] = ACTIONS(4295),
    [anon_sym_DASH] = ACTIONS(4293),
    [anon_sym_DASH_DASH] = ACTIONS(4295),
    [anon_sym_PLUS] = ACTIONS(4293),
    [anon_sym_PLUS_PLUS] = ACTIONS(4295),
    [anon_sym_BANG] = ACTIONS(4295),
    [anon_sym_LPAREN] = ACTIONS(4295),
    [anon_sym_RPAREN] = ACTIONS(4295),
    [anon_sym_LBRACK] = ACTIONS(4295),
    [anon_sym_SEMI] = ACTIONS(4295),
    [anon_sym_DOLLAR] = ACTIONS(4295),
    [anon_sym_STAR] = ACTIONS(4295),
    [anon_sym_TILDE] = ACTIONS(4295),
    [anon_sym_AT] = ACTIONS(4295),
    [sym_bool] = ACTIONS(4293),
    [sym_byte] = ACTIONS(4293),
    [sym_ubyte] = ACTIONS(4293),
    [sym_char] = ACTIONS(4293),
    [sym_short] = ACTIONS(4293),
    [sym_ushort] = ACTIONS(4293),
    [sym_int] = ACTIONS(4293),
    [sym_uint] = ACTIONS(4293),
    [sym_long] = ACTIONS(4293),
    [sym_ulong] = ACTIONS(4293),
    [sym_cent] = ACTIONS(4293),
    [sym_ucent] = ACTIONS(4293),
    [sym_wchar] = ACTIONS(4293),
    [sym_dchar] = ACTIONS(4293),
    [sym_float] = ACTIONS(4293),
    [sym_double] = ACTIONS(4293),
    [sym_real] = ACTIONS(4293),
    [sym_ifloat] = ACTIONS(4293),
    [sym_idouble] = ACTIONS(4293),
    [sym_ireal] = ACTIONS(4293),
    [sym_cfloat] = ACTIONS(4293),
    [sym_cdouble] = ACTIONS(4293),
    [sym_creal] = ACTIONS(4293),
    [sym_size_t] = ACTIONS(4293),
    [sym_ptrdiff_t] = ACTIONS(4293),
    [sym_string] = ACTIONS(4293),
    [sym_cstring] = ACTIONS(4293),
    [sym_dstring] = ACTIONS(4293),
    [sym_wstring] = ACTIONS(4293),
    [sym_noreturn] = ACTIONS(4293),
    [sym_true] = ACTIONS(4293),
    [sym_false] = ACTIONS(4293),
    [sym_null] = ACTIONS(4293),
    [sym_super] = ACTIONS(4293),
    [sym_this] = ACTIONS(4293),
    [sym_abstract] = ACTIONS(4293),
    [sym_alias] = ACTIONS(4293),
    [sym_align] = ACTIONS(4293),
    [sym_asm] = ACTIONS(4293),
    [sym_assert] = ACTIONS(4293),
    [sym_auto] = ACTIONS(4293),
    [sym_break] = ACTIONS(4293),
    [sym_case] = ACTIONS(4293),
    [sym_cast] = ACTIONS(4293),
    [sym_class] = ACTIONS(4293),
    [sym_const] = ACTIONS(4293),
    [sym_continue] = ACTIONS(4293),
    [sym_debug] = ACTIONS(4293),
    [sym_default] = ACTIONS(4293),
    [sym_delegate] = ACTIONS(4293),
    [sym_delete] = ACTIONS(4293),
    [sym_deprecated] = ACTIONS(4293),
    [sym_do] = ACTIONS(4293),
    [sym_else] = ACTIONS(4293),
    [sym_enum] = ACTIONS(4293),
    [sym_export] = ACTIONS(4293),
    [sym_extern] = ACTIONS(4293),
    [sym_final] = ACTIONS(4293),
    [sym_for] = ACTIONS(4293),
    [sym_foreach] = ACTIONS(4293),
    [sym_foreach_reverse] = ACTIONS(4293),
    [sym_function] = ACTIONS(4293),
    [sym_goto] = ACTIONS(4293),
    [sym_if] = ACTIONS(4293),
    [sym_immutable] = ACTIONS(4293),
    [sym_import] = ACTIONS(4293),
    [sym_in] = ACTIONS(4293),
    [sym_inout] = ACTIONS(4293),
    [sym_interface] = ACTIONS(4293),
    [sym_invariant] = ACTIONS(4293),
    [sym_is] = ACTIONS(4293),
    [sym_mixin] = ACTIONS(4293),
    [sym_new] = ACTIONS(4293),
    [sym_nothrow] = ACTIONS(4293),
    [sym_out] = ACTIONS(4293),
    [sym_override] = ACTIONS(4293),
    [sym_package] = ACTIONS(4293),
    [sym_pragma] = ACTIONS(4293),
    [sym_private] = ACTIONS(4293),
    [sym_protected] = ACTIONS(4293),
    [sym_public] = ACTIONS(4293),
    [sym_pure] = ACTIONS(4293),
    [sym_ref] = ACTIONS(4293),
    [sym_return] = ACTIONS(4293),
    [sym_scope] = ACTIONS(4293),
    [sym_shared] = ACTIONS(4293),
    [sym_static] = ACTIONS(4293),
    [sym_struct] = ACTIONS(4293),
    [sym_switch] = ACTIONS(4293),
    [sym_synchronized] = ACTIONS(4293),
    [sym_template] = ACTIONS(4293),
    [sym_throw] = ACTIONS(4293),
    [sym_try] = ACTIONS(4293),
    [sym_typeid] = ACTIONS(4293),
    [sym_typeof] = ACTIONS(4293),
    [sym_union] = ACTIONS(4293),
    [sym_unittest] = ACTIONS(4293),
    [sym_version] = ACTIONS(4293),
    [sym_while] = ACTIONS(4293),
    [sym_with] = ACTIONS(4293),
    [sym_gshared] = ACTIONS(4293),
    [sym_traits] = ACTIONS(4293),
    [sym_vector] = ACTIONS(4293),
    [sym_void] = ACTIONS(4293),
    [anon_sym_BQUOTE] = ACTIONS(4295),
    [anon_sym_r_DQUOTE] = ACTIONS(4295),
    [anon_sym_x_DQUOTE] = ACTIONS(4295),
    [anon_sym_DQUOTE] = ACTIONS(4295),
    [anon_sym_i_BQUOTE] = ACTIONS(4295),
    [anon_sym_i_DQUOTE] = ACTIONS(4295),
    [anon_sym_iq_LBRACE] = ACTIONS(4295),
    [aux_sym_char_literal_token1] = ACTIONS(4295),
    [anon_sym_SQUOTE] = ACTIONS(4293),
    [anon_sym___DATE__] = ACTIONS(4293),
    [anon_sym___FILE__] = ACTIONS(4293),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4293),
    [anon_sym___FUNCTION__] = ACTIONS(4293),
    [anon_sym___LINE__] = ACTIONS(4293),
    [anon_sym___MODULE__] = ACTIONS(4293),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4293),
    [anon_sym___TIME__] = ACTIONS(4293),
    [anon_sym___TIMESTAMP__] = ACTIONS(4293),
    [anon_sym___VENDOR__] = ACTIONS(4293),
    [anon_sym___VERSION__] = ACTIONS(4293),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4295),
    [sym_float_literal] = ACTIONS(4295),
    [sym__string] = ACTIONS(4295),
  },
  [1743] = {
    [sym_identifier] = ACTIONS(4313),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4315),
    [anon_sym_RBRACE] = ACTIONS(4315),
    [anon_sym_LBRACE] = ACTIONS(4315),
    [anon_sym_DOT] = ACTIONS(4315),
    [anon_sym_AMP] = ACTIONS(4315),
    [anon_sym_DASH] = ACTIONS(4313),
    [anon_sym_DASH_DASH] = ACTIONS(4315),
    [anon_sym_PLUS] = ACTIONS(4313),
    [anon_sym_PLUS_PLUS] = ACTIONS(4315),
    [anon_sym_BANG] = ACTIONS(4315),
    [anon_sym_LPAREN] = ACTIONS(4315),
    [anon_sym_RPAREN] = ACTIONS(4315),
    [anon_sym_LBRACK] = ACTIONS(4315),
    [anon_sym_SEMI] = ACTIONS(4315),
    [anon_sym_DOLLAR] = ACTIONS(4315),
    [anon_sym_STAR] = ACTIONS(4315),
    [anon_sym_TILDE] = ACTIONS(4315),
    [anon_sym_AT] = ACTIONS(4315),
    [sym_bool] = ACTIONS(4313),
    [sym_byte] = ACTIONS(4313),
    [sym_ubyte] = ACTIONS(4313),
    [sym_char] = ACTIONS(4313),
    [sym_short] = ACTIONS(4313),
    [sym_ushort] = ACTIONS(4313),
    [sym_int] = ACTIONS(4313),
    [sym_uint] = ACTIONS(4313),
    [sym_long] = ACTIONS(4313),
    [sym_ulong] = ACTIONS(4313),
    [sym_cent] = ACTIONS(4313),
    [sym_ucent] = ACTIONS(4313),
    [sym_wchar] = ACTIONS(4313),
    [sym_dchar] = ACTIONS(4313),
    [sym_float] = ACTIONS(4313),
    [sym_double] = ACTIONS(4313),
    [sym_real] = ACTIONS(4313),
    [sym_ifloat] = ACTIONS(4313),
    [sym_idouble] = ACTIONS(4313),
    [sym_ireal] = ACTIONS(4313),
    [sym_cfloat] = ACTIONS(4313),
    [sym_cdouble] = ACTIONS(4313),
    [sym_creal] = ACTIONS(4313),
    [sym_size_t] = ACTIONS(4313),
    [sym_ptrdiff_t] = ACTIONS(4313),
    [sym_string] = ACTIONS(4313),
    [sym_cstring] = ACTIONS(4313),
    [sym_dstring] = ACTIONS(4313),
    [sym_wstring] = ACTIONS(4313),
    [sym_noreturn] = ACTIONS(4313),
    [sym_true] = ACTIONS(4313),
    [sym_false] = ACTIONS(4313),
    [sym_null] = ACTIONS(4313),
    [sym_super] = ACTIONS(4313),
    [sym_this] = ACTIONS(4313),
    [sym_abstract] = ACTIONS(4313),
    [sym_alias] = ACTIONS(4313),
    [sym_align] = ACTIONS(4313),
    [sym_asm] = ACTIONS(4313),
    [sym_assert] = ACTIONS(4313),
    [sym_auto] = ACTIONS(4313),
    [sym_break] = ACTIONS(4313),
    [sym_case] = ACTIONS(4313),
    [sym_cast] = ACTIONS(4313),
    [sym_class] = ACTIONS(4313),
    [sym_const] = ACTIONS(4313),
    [sym_continue] = ACTIONS(4313),
    [sym_debug] = ACTIONS(4313),
    [sym_default] = ACTIONS(4313),
    [sym_delegate] = ACTIONS(4313),
    [sym_delete] = ACTIONS(4313),
    [sym_deprecated] = ACTIONS(4313),
    [sym_do] = ACTIONS(4313),
    [sym_else] = ACTIONS(4313),
    [sym_enum] = ACTIONS(4313),
    [sym_export] = ACTIONS(4313),
    [sym_extern] = ACTIONS(4313),
    [sym_final] = ACTIONS(4313),
    [sym_for] = ACTIONS(4313),
    [sym_foreach] = ACTIONS(4313),
    [sym_foreach_reverse] = ACTIONS(4313),
    [sym_function] = ACTIONS(4313),
    [sym_goto] = ACTIONS(4313),
    [sym_if] = ACTIONS(4313),
    [sym_immutable] = ACTIONS(4313),
    [sym_import] = ACTIONS(4313),
    [sym_in] = ACTIONS(4313),
    [sym_inout] = ACTIONS(4313),
    [sym_interface] = ACTIONS(4313),
    [sym_invariant] = ACTIONS(4313),
    [sym_is] = ACTIONS(4313),
    [sym_mixin] = ACTIONS(4313),
    [sym_new] = ACTIONS(4313),
    [sym_nothrow] = ACTIONS(4313),
    [sym_out] = ACTIONS(4313),
    [sym_override] = ACTIONS(4313),
    [sym_package] = ACTIONS(4313),
    [sym_pragma] = ACTIONS(4313),
    [sym_private] = ACTIONS(4313),
    [sym_protected] = ACTIONS(4313),
    [sym_public] = ACTIONS(4313),
    [sym_pure] = ACTIONS(4313),
    [sym_ref] = ACTIONS(4313),
    [sym_return] = ACTIONS(4313),
    [sym_scope] = ACTIONS(4313),
    [sym_shared] = ACTIONS(4313),
    [sym_static] = ACTIONS(4313),
    [sym_struct] = ACTIONS(4313),
    [sym_switch] = ACTIONS(4313),
    [sym_synchronized] = ACTIONS(4313),
    [sym_template] = ACTIONS(4313),
    [sym_throw] = ACTIONS(4313),
    [sym_try] = ACTIONS(4313),
    [sym_typeid] = ACTIONS(4313),
    [sym_typeof] = ACTIONS(4313),
    [sym_union] = ACTIONS(4313),
    [sym_unittest] = ACTIONS(4313),
    [sym_version] = ACTIONS(4313),
    [sym_while] = ACTIONS(4313),
    [sym_with] = ACTIONS(4313),
    [sym_gshared] = ACTIONS(4313),
    [sym_traits] = ACTIONS(4313),
    [sym_vector] = ACTIONS(4313),
    [sym_void] = ACTIONS(4313),
    [anon_sym_BQUOTE] = ACTIONS(4315),
    [anon_sym_r_DQUOTE] = ACTIONS(4315),
    [anon_sym_x_DQUOTE] = ACTIONS(4315),
    [anon_sym_DQUOTE] = ACTIONS(4315),
    [anon_sym_i_BQUOTE] = ACTIONS(4315),
    [anon_sym_i_DQUOTE] = ACTIONS(4315),
    [anon_sym_iq_LBRACE] = ACTIONS(4315),
    [aux_sym_char_literal_token1] = ACTIONS(4315),
    [anon_sym_SQUOTE] = ACTIONS(4313),
    [anon_sym___DATE__] = ACTIONS(4313),
    [anon_sym___FILE__] = ACTIONS(4313),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4313),
    [anon_sym___FUNCTION__] = ACTIONS(4313),
    [anon_sym___LINE__] = ACTIONS(4313),
    [anon_sym___MODULE__] = ACTIONS(4313),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4313),
    [anon_sym___TIME__] = ACTIONS(4313),
    [anon_sym___TIMESTAMP__] = ACTIONS(4313),
    [anon_sym___VENDOR__] = ACTIONS(4313),
    [anon_sym___VERSION__] = ACTIONS(4313),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4315),
    [sym_float_literal] = ACTIONS(4315),
    [sym__string] = ACTIONS(4315),
  },
  [1744] = {
    [sym_identifier] = ACTIONS(4327),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4329),
    [anon_sym_RBRACE] = ACTIONS(4329),
    [anon_sym_LBRACE] = ACTIONS(4329),
    [anon_sym_DOT] = ACTIONS(4329),
    [anon_sym_AMP] = ACTIONS(4329),
    [anon_sym_DASH] = ACTIONS(4327),
    [anon_sym_DASH_DASH] = ACTIONS(4329),
    [anon_sym_PLUS] = ACTIONS(4327),
    [anon_sym_PLUS_PLUS] = ACTIONS(4329),
    [anon_sym_BANG] = ACTIONS(4329),
    [anon_sym_LPAREN] = ACTIONS(4329),
    [anon_sym_RPAREN] = ACTIONS(4329),
    [anon_sym_LBRACK] = ACTIONS(4329),
    [anon_sym_SEMI] = ACTIONS(4329),
    [anon_sym_DOLLAR] = ACTIONS(4329),
    [anon_sym_STAR] = ACTIONS(4329),
    [anon_sym_TILDE] = ACTIONS(4329),
    [anon_sym_AT] = ACTIONS(4329),
    [sym_bool] = ACTIONS(4327),
    [sym_byte] = ACTIONS(4327),
    [sym_ubyte] = ACTIONS(4327),
    [sym_char] = ACTIONS(4327),
    [sym_short] = ACTIONS(4327),
    [sym_ushort] = ACTIONS(4327),
    [sym_int] = ACTIONS(4327),
    [sym_uint] = ACTIONS(4327),
    [sym_long] = ACTIONS(4327),
    [sym_ulong] = ACTIONS(4327),
    [sym_cent] = ACTIONS(4327),
    [sym_ucent] = ACTIONS(4327),
    [sym_wchar] = ACTIONS(4327),
    [sym_dchar] = ACTIONS(4327),
    [sym_float] = ACTIONS(4327),
    [sym_double] = ACTIONS(4327),
    [sym_real] = ACTIONS(4327),
    [sym_ifloat] = ACTIONS(4327),
    [sym_idouble] = ACTIONS(4327),
    [sym_ireal] = ACTIONS(4327),
    [sym_cfloat] = ACTIONS(4327),
    [sym_cdouble] = ACTIONS(4327),
    [sym_creal] = ACTIONS(4327),
    [sym_size_t] = ACTIONS(4327),
    [sym_ptrdiff_t] = ACTIONS(4327),
    [sym_string] = ACTIONS(4327),
    [sym_cstring] = ACTIONS(4327),
    [sym_dstring] = ACTIONS(4327),
    [sym_wstring] = ACTIONS(4327),
    [sym_noreturn] = ACTIONS(4327),
    [sym_true] = ACTIONS(4327),
    [sym_false] = ACTIONS(4327),
    [sym_null] = ACTIONS(4327),
    [sym_super] = ACTIONS(4327),
    [sym_this] = ACTIONS(4327),
    [sym_abstract] = ACTIONS(4327),
    [sym_alias] = ACTIONS(4327),
    [sym_align] = ACTIONS(4327),
    [sym_asm] = ACTIONS(4327),
    [sym_assert] = ACTIONS(4327),
    [sym_auto] = ACTIONS(4327),
    [sym_break] = ACTIONS(4327),
    [sym_case] = ACTIONS(4327),
    [sym_cast] = ACTIONS(4327),
    [sym_class] = ACTIONS(4327),
    [sym_const] = ACTIONS(4327),
    [sym_continue] = ACTIONS(4327),
    [sym_debug] = ACTIONS(4327),
    [sym_default] = ACTIONS(4327),
    [sym_delegate] = ACTIONS(4327),
    [sym_delete] = ACTIONS(4327),
    [sym_deprecated] = ACTIONS(4327),
    [sym_do] = ACTIONS(4327),
    [sym_else] = ACTIONS(4327),
    [sym_enum] = ACTIONS(4327),
    [sym_export] = ACTIONS(4327),
    [sym_extern] = ACTIONS(4327),
    [sym_final] = ACTIONS(4327),
    [sym_for] = ACTIONS(4327),
    [sym_foreach] = ACTIONS(4327),
    [sym_foreach_reverse] = ACTIONS(4327),
    [sym_function] = ACTIONS(4327),
    [sym_goto] = ACTIONS(4327),
    [sym_if] = ACTIONS(4327),
    [sym_immutable] = ACTIONS(4327),
    [sym_import] = ACTIONS(4327),
    [sym_in] = ACTIONS(4327),
    [sym_inout] = ACTIONS(4327),
    [sym_interface] = ACTIONS(4327),
    [sym_invariant] = ACTIONS(4327),
    [sym_is] = ACTIONS(4327),
    [sym_mixin] = ACTIONS(4327),
    [sym_new] = ACTIONS(4327),
    [sym_nothrow] = ACTIONS(4327),
    [sym_out] = ACTIONS(4327),
    [sym_override] = ACTIONS(4327),
    [sym_package] = ACTIONS(4327),
    [sym_pragma] = ACTIONS(4327),
    [sym_private] = ACTIONS(4327),
    [sym_protected] = ACTIONS(4327),
    [sym_public] = ACTIONS(4327),
    [sym_pure] = ACTIONS(4327),
    [sym_ref] = ACTIONS(4327),
    [sym_return] = ACTIONS(4327),
    [sym_scope] = ACTIONS(4327),
    [sym_shared] = ACTIONS(4327),
    [sym_static] = ACTIONS(4327),
    [sym_struct] = ACTIONS(4327),
    [sym_switch] = ACTIONS(4327),
    [sym_synchronized] = ACTIONS(4327),
    [sym_template] = ACTIONS(4327),
    [sym_throw] = ACTIONS(4327),
    [sym_try] = ACTIONS(4327),
    [sym_typeid] = ACTIONS(4327),
    [sym_typeof] = ACTIONS(4327),
    [sym_union] = ACTIONS(4327),
    [sym_unittest] = ACTIONS(4327),
    [sym_version] = ACTIONS(4327),
    [sym_while] = ACTIONS(4327),
    [sym_with] = ACTIONS(4327),
    [sym_gshared] = ACTIONS(4327),
    [sym_traits] = ACTIONS(4327),
    [sym_vector] = ACTIONS(4327),
    [sym_void] = ACTIONS(4327),
    [anon_sym_BQUOTE] = ACTIONS(4329),
    [anon_sym_r_DQUOTE] = ACTIONS(4329),
    [anon_sym_x_DQUOTE] = ACTIONS(4329),
    [anon_sym_DQUOTE] = ACTIONS(4329),
    [anon_sym_i_BQUOTE] = ACTIONS(4329),
    [anon_sym_i_DQUOTE] = ACTIONS(4329),
    [anon_sym_iq_LBRACE] = ACTIONS(4329),
    [aux_sym_char_literal_token1] = ACTIONS(4329),
    [anon_sym_SQUOTE] = ACTIONS(4327),
    [anon_sym___DATE__] = ACTIONS(4327),
    [anon_sym___FILE__] = ACTIONS(4327),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4327),
    [anon_sym___FUNCTION__] = ACTIONS(4327),
    [anon_sym___LINE__] = ACTIONS(4327),
    [anon_sym___MODULE__] = ACTIONS(4327),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4327),
    [anon_sym___TIME__] = ACTIONS(4327),
    [anon_sym___TIMESTAMP__] = ACTIONS(4327),
    [anon_sym___VENDOR__] = ACTIONS(4327),
    [anon_sym___VERSION__] = ACTIONS(4327),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4329),
    [sym_float_literal] = ACTIONS(4329),
    [sym__string] = ACTIONS(4329),
  },
  [1745] = {
    [sym_identifier] = ACTIONS(4339),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4341),
    [anon_sym_RBRACE] = ACTIONS(4341),
    [anon_sym_LBRACE] = ACTIONS(4341),
    [anon_sym_DOT] = ACTIONS(4341),
    [anon_sym_AMP] = ACTIONS(4341),
    [anon_sym_DASH] = ACTIONS(4339),
    [anon_sym_DASH_DASH] = ACTIONS(4341),
    [anon_sym_PLUS] = ACTIONS(4339),
    [anon_sym_PLUS_PLUS] = ACTIONS(4341),
    [anon_sym_BANG] = ACTIONS(4341),
    [anon_sym_LPAREN] = ACTIONS(4341),
    [anon_sym_RPAREN] = ACTIONS(4341),
    [anon_sym_LBRACK] = ACTIONS(4341),
    [anon_sym_SEMI] = ACTIONS(4341),
    [anon_sym_DOLLAR] = ACTIONS(4341),
    [anon_sym_STAR] = ACTIONS(4341),
    [anon_sym_TILDE] = ACTIONS(4341),
    [anon_sym_AT] = ACTIONS(4341),
    [sym_bool] = ACTIONS(4339),
    [sym_byte] = ACTIONS(4339),
    [sym_ubyte] = ACTIONS(4339),
    [sym_char] = ACTIONS(4339),
    [sym_short] = ACTIONS(4339),
    [sym_ushort] = ACTIONS(4339),
    [sym_int] = ACTIONS(4339),
    [sym_uint] = ACTIONS(4339),
    [sym_long] = ACTIONS(4339),
    [sym_ulong] = ACTIONS(4339),
    [sym_cent] = ACTIONS(4339),
    [sym_ucent] = ACTIONS(4339),
    [sym_wchar] = ACTIONS(4339),
    [sym_dchar] = ACTIONS(4339),
    [sym_float] = ACTIONS(4339),
    [sym_double] = ACTIONS(4339),
    [sym_real] = ACTIONS(4339),
    [sym_ifloat] = ACTIONS(4339),
    [sym_idouble] = ACTIONS(4339),
    [sym_ireal] = ACTIONS(4339),
    [sym_cfloat] = ACTIONS(4339),
    [sym_cdouble] = ACTIONS(4339),
    [sym_creal] = ACTIONS(4339),
    [sym_size_t] = ACTIONS(4339),
    [sym_ptrdiff_t] = ACTIONS(4339),
    [sym_string] = ACTIONS(4339),
    [sym_cstring] = ACTIONS(4339),
    [sym_dstring] = ACTIONS(4339),
    [sym_wstring] = ACTIONS(4339),
    [sym_noreturn] = ACTIONS(4339),
    [sym_true] = ACTIONS(4339),
    [sym_false] = ACTIONS(4339),
    [sym_null] = ACTIONS(4339),
    [sym_super] = ACTIONS(4339),
    [sym_this] = ACTIONS(4339),
    [sym_abstract] = ACTIONS(4339),
    [sym_alias] = ACTIONS(4339),
    [sym_align] = ACTIONS(4339),
    [sym_asm] = ACTIONS(4339),
    [sym_assert] = ACTIONS(4339),
    [sym_auto] = ACTIONS(4339),
    [sym_break] = ACTIONS(4339),
    [sym_case] = ACTIONS(4339),
    [sym_cast] = ACTIONS(4339),
    [sym_class] = ACTIONS(4339),
    [sym_const] = ACTIONS(4339),
    [sym_continue] = ACTIONS(4339),
    [sym_debug] = ACTIONS(4339),
    [sym_default] = ACTIONS(4339),
    [sym_delegate] = ACTIONS(4339),
    [sym_delete] = ACTIONS(4339),
    [sym_deprecated] = ACTIONS(4339),
    [sym_do] = ACTIONS(4339),
    [sym_else] = ACTIONS(4339),
    [sym_enum] = ACTIONS(4339),
    [sym_export] = ACTIONS(4339),
    [sym_extern] = ACTIONS(4339),
    [sym_final] = ACTIONS(4339),
    [sym_for] = ACTIONS(4339),
    [sym_foreach] = ACTIONS(4339),
    [sym_foreach_reverse] = ACTIONS(4339),
    [sym_function] = ACTIONS(4339),
    [sym_goto] = ACTIONS(4339),
    [sym_if] = ACTIONS(4339),
    [sym_immutable] = ACTIONS(4339),
    [sym_import] = ACTIONS(4339),
    [sym_in] = ACTIONS(4339),
    [sym_inout] = ACTIONS(4339),
    [sym_interface] = ACTIONS(4339),
    [sym_invariant] = ACTIONS(4339),
    [sym_is] = ACTIONS(4339),
    [sym_mixin] = ACTIONS(4339),
    [sym_new] = ACTIONS(4339),
    [sym_nothrow] = ACTIONS(4339),
    [sym_out] = ACTIONS(4339),
    [sym_override] = ACTIONS(4339),
    [sym_package] = ACTIONS(4339),
    [sym_pragma] = ACTIONS(4339),
    [sym_private] = ACTIONS(4339),
    [sym_protected] = ACTIONS(4339),
    [sym_public] = ACTIONS(4339),
    [sym_pure] = ACTIONS(4339),
    [sym_ref] = ACTIONS(4339),
    [sym_return] = ACTIONS(4339),
    [sym_scope] = ACTIONS(4339),
    [sym_shared] = ACTIONS(4339),
    [sym_static] = ACTIONS(4339),
    [sym_struct] = ACTIONS(4339),
    [sym_switch] = ACTIONS(4339),
    [sym_synchronized] = ACTIONS(4339),
    [sym_template] = ACTIONS(4339),
    [sym_throw] = ACTIONS(4339),
    [sym_try] = ACTIONS(4339),
    [sym_typeid] = ACTIONS(4339),
    [sym_typeof] = ACTIONS(4339),
    [sym_union] = ACTIONS(4339),
    [sym_unittest] = ACTIONS(4339),
    [sym_version] = ACTIONS(4339),
    [sym_while] = ACTIONS(4339),
    [sym_with] = ACTIONS(4339),
    [sym_gshared] = ACTIONS(4339),
    [sym_traits] = ACTIONS(4339),
    [sym_vector] = ACTIONS(4339),
    [sym_void] = ACTIONS(4339),
    [anon_sym_BQUOTE] = ACTIONS(4341),
    [anon_sym_r_DQUOTE] = ACTIONS(4341),
    [anon_sym_x_DQUOTE] = ACTIONS(4341),
    [anon_sym_DQUOTE] = ACTIONS(4341),
    [anon_sym_i_BQUOTE] = ACTIONS(4341),
    [anon_sym_i_DQUOTE] = ACTIONS(4341),
    [anon_sym_iq_LBRACE] = ACTIONS(4341),
    [aux_sym_char_literal_token1] = ACTIONS(4341),
    [anon_sym_SQUOTE] = ACTIONS(4339),
    [anon_sym___DATE__] = ACTIONS(4339),
    [anon_sym___FILE__] = ACTIONS(4339),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4339),
    [anon_sym___FUNCTION__] = ACTIONS(4339),
    [anon_sym___LINE__] = ACTIONS(4339),
    [anon_sym___MODULE__] = ACTIONS(4339),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4339),
    [anon_sym___TIME__] = ACTIONS(4339),
    [anon_sym___TIMESTAMP__] = ACTIONS(4339),
    [anon_sym___VENDOR__] = ACTIONS(4339),
    [anon_sym___VERSION__] = ACTIONS(4339),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4341),
    [sym_float_literal] = ACTIONS(4341),
    [sym__string] = ACTIONS(4341),
  },
  [1746] = {
    [sym_identifier] = ACTIONS(4520),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4522),
    [anon_sym_RBRACE] = ACTIONS(4522),
    [anon_sym_LBRACE] = ACTIONS(4522),
    [anon_sym_DOT] = ACTIONS(4522),
    [anon_sym_AMP] = ACTIONS(4522),
    [anon_sym_DASH] = ACTIONS(4520),
    [anon_sym_DASH_DASH] = ACTIONS(4522),
    [anon_sym_PLUS] = ACTIONS(4520),
    [anon_sym_PLUS_PLUS] = ACTIONS(4522),
    [anon_sym_BANG] = ACTIONS(4522),
    [anon_sym_LPAREN] = ACTIONS(4522),
    [anon_sym_RPAREN] = ACTIONS(4522),
    [anon_sym_LBRACK] = ACTIONS(4522),
    [anon_sym_SEMI] = ACTIONS(4522),
    [anon_sym_DOLLAR] = ACTIONS(4522),
    [anon_sym_STAR] = ACTIONS(4522),
    [anon_sym_TILDE] = ACTIONS(4522),
    [anon_sym_AT] = ACTIONS(4522),
    [sym_bool] = ACTIONS(4520),
    [sym_byte] = ACTIONS(4520),
    [sym_ubyte] = ACTIONS(4520),
    [sym_char] = ACTIONS(4520),
    [sym_short] = ACTIONS(4520),
    [sym_ushort] = ACTIONS(4520),
    [sym_int] = ACTIONS(4520),
    [sym_uint] = ACTIONS(4520),
    [sym_long] = ACTIONS(4520),
    [sym_ulong] = ACTIONS(4520),
    [sym_cent] = ACTIONS(4520),
    [sym_ucent] = ACTIONS(4520),
    [sym_wchar] = ACTIONS(4520),
    [sym_dchar] = ACTIONS(4520),
    [sym_float] = ACTIONS(4520),
    [sym_double] = ACTIONS(4520),
    [sym_real] = ACTIONS(4520),
    [sym_ifloat] = ACTIONS(4520),
    [sym_idouble] = ACTIONS(4520),
    [sym_ireal] = ACTIONS(4520),
    [sym_cfloat] = ACTIONS(4520),
    [sym_cdouble] = ACTIONS(4520),
    [sym_creal] = ACTIONS(4520),
    [sym_size_t] = ACTIONS(4520),
    [sym_ptrdiff_t] = ACTIONS(4520),
    [sym_string] = ACTIONS(4520),
    [sym_cstring] = ACTIONS(4520),
    [sym_dstring] = ACTIONS(4520),
    [sym_wstring] = ACTIONS(4520),
    [sym_noreturn] = ACTIONS(4520),
    [sym_true] = ACTIONS(4520),
    [sym_false] = ACTIONS(4520),
    [sym_null] = ACTIONS(4520),
    [sym_super] = ACTIONS(4520),
    [sym_this] = ACTIONS(4520),
    [sym_abstract] = ACTIONS(4520),
    [sym_alias] = ACTIONS(4520),
    [sym_align] = ACTIONS(4520),
    [sym_asm] = ACTIONS(4520),
    [sym_assert] = ACTIONS(4520),
    [sym_auto] = ACTIONS(4520),
    [sym_break] = ACTIONS(4520),
    [sym_case] = ACTIONS(4520),
    [sym_cast] = ACTIONS(4520),
    [sym_class] = ACTIONS(4520),
    [sym_const] = ACTIONS(4520),
    [sym_continue] = ACTIONS(4520),
    [sym_debug] = ACTIONS(4520),
    [sym_default] = ACTIONS(4520),
    [sym_delegate] = ACTIONS(4520),
    [sym_delete] = ACTIONS(4520),
    [sym_deprecated] = ACTIONS(4520),
    [sym_do] = ACTIONS(4520),
    [sym_else] = ACTIONS(4520),
    [sym_enum] = ACTIONS(4520),
    [sym_export] = ACTIONS(4520),
    [sym_extern] = ACTIONS(4520),
    [sym_final] = ACTIONS(4520),
    [sym_for] = ACTIONS(4520),
    [sym_foreach] = ACTIONS(4520),
    [sym_foreach_reverse] = ACTIONS(4520),
    [sym_function] = ACTIONS(4520),
    [sym_goto] = ACTIONS(4520),
    [sym_if] = ACTIONS(4520),
    [sym_immutable] = ACTIONS(4520),
    [sym_import] = ACTIONS(4520),
    [sym_in] = ACTIONS(4520),
    [sym_inout] = ACTIONS(4520),
    [sym_interface] = ACTIONS(4520),
    [sym_invariant] = ACTIONS(4520),
    [sym_is] = ACTIONS(4520),
    [sym_mixin] = ACTIONS(4520),
    [sym_new] = ACTIONS(4520),
    [sym_nothrow] = ACTIONS(4520),
    [sym_out] = ACTIONS(4520),
    [sym_override] = ACTIONS(4520),
    [sym_package] = ACTIONS(4520),
    [sym_pragma] = ACTIONS(4520),
    [sym_private] = ACTIONS(4520),
    [sym_protected] = ACTIONS(4520),
    [sym_public] = ACTIONS(4520),
    [sym_pure] = ACTIONS(4520),
    [sym_ref] = ACTIONS(4520),
    [sym_return] = ACTIONS(4520),
    [sym_scope] = ACTIONS(4520),
    [sym_shared] = ACTIONS(4520),
    [sym_static] = ACTIONS(4520),
    [sym_struct] = ACTIONS(4520),
    [sym_switch] = ACTIONS(4520),
    [sym_synchronized] = ACTIONS(4520),
    [sym_template] = ACTIONS(4520),
    [sym_throw] = ACTIONS(4520),
    [sym_try] = ACTIONS(4520),
    [sym_typeid] = ACTIONS(4520),
    [sym_typeof] = ACTIONS(4520),
    [sym_union] = ACTIONS(4520),
    [sym_unittest] = ACTIONS(4520),
    [sym_version] = ACTIONS(4520),
    [sym_while] = ACTIONS(4520),
    [sym_with] = ACTIONS(4520),
    [sym_gshared] = ACTIONS(4520),
    [sym_traits] = ACTIONS(4520),
    [sym_vector] = ACTIONS(4520),
    [sym_void] = ACTIONS(4520),
    [anon_sym_BQUOTE] = ACTIONS(4522),
    [anon_sym_r_DQUOTE] = ACTIONS(4522),
    [anon_sym_x_DQUOTE] = ACTIONS(4522),
    [anon_sym_DQUOTE] = ACTIONS(4522),
    [anon_sym_i_BQUOTE] = ACTIONS(4522),
    [anon_sym_i_DQUOTE] = ACTIONS(4522),
    [anon_sym_iq_LBRACE] = ACTIONS(4522),
    [aux_sym_char_literal_token1] = ACTIONS(4522),
    [anon_sym_SQUOTE] = ACTIONS(4520),
    [anon_sym___DATE__] = ACTIONS(4520),
    [anon_sym___FILE__] = ACTIONS(4520),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4520),
    [anon_sym___FUNCTION__] = ACTIONS(4520),
    [anon_sym___LINE__] = ACTIONS(4520),
    [anon_sym___MODULE__] = ACTIONS(4520),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4520),
    [anon_sym___TIME__] = ACTIONS(4520),
    [anon_sym___TIMESTAMP__] = ACTIONS(4520),
    [anon_sym___VENDOR__] = ACTIONS(4520),
    [anon_sym___VERSION__] = ACTIONS(4520),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4522),
    [sym_float_literal] = ACTIONS(4522),
    [sym__string] = ACTIONS(4522),
  },
  [1747] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4618),
    [anon_sym_RBRACE] = ACTIONS(4618),
    [anon_sym_LBRACE] = ACTIONS(4926),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_AMP] = ACTIONS(4618),
    [anon_sym_DASH] = ACTIONS(4616),
    [anon_sym_DASH_DASH] = ACTIONS(4618),
    [anon_sym_PLUS] = ACTIONS(4616),
    [anon_sym_PLUS_PLUS] = ACTIONS(4618),
    [anon_sym_BANG] = ACTIONS(4618),
    [anon_sym_LPAREN] = ACTIONS(4618),
    [anon_sym_RPAREN] = ACTIONS(4618),
    [anon_sym_LBRACK] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4926),
    [anon_sym_DOLLAR] = ACTIONS(4618),
    [anon_sym_STAR] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_true] = ACTIONS(4616),
    [sym_false] = ACTIONS(4616),
    [sym_null] = ACTIONS(4616),
    [sym_super] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_asm] = ACTIONS(4616),
    [sym_assert] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_break] = ACTIONS(4616),
    [sym_case] = ACTIONS(4616),
    [sym_cast] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_continue] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_default] = ACTIONS(4616),
    [sym_delegate] = ACTIONS(4616),
    [sym_delete] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_do] = ACTIONS(4929),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_for] = ACTIONS(4616),
    [sym_foreach] = ACTIONS(4616),
    [sym_foreach_reverse] = ACTIONS(4616),
    [sym_function] = ACTIONS(4616),
    [sym_goto] = ACTIONS(4616),
    [sym_if] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(4929),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_is] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_new] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_out] = ACTIONS(4929),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_switch] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_throw] = ACTIONS(4616),
    [sym_try] = ACTIONS(4616),
    [sym_typeid] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_with] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [anon_sym_BQUOTE] = ACTIONS(4618),
    [anon_sym_r_DQUOTE] = ACTIONS(4618),
    [anon_sym_x_DQUOTE] = ACTIONS(4618),
    [anon_sym_DQUOTE] = ACTIONS(4618),
    [anon_sym_i_BQUOTE] = ACTIONS(4618),
    [anon_sym_i_DQUOTE] = ACTIONS(4618),
    [anon_sym_iq_LBRACE] = ACTIONS(4618),
    [aux_sym_char_literal_token1] = ACTIONS(4618),
    [anon_sym_SQUOTE] = ACTIONS(4616),
    [anon_sym___DATE__] = ACTIONS(4616),
    [anon_sym___FILE__] = ACTIONS(4616),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4616),
    [anon_sym___FUNCTION__] = ACTIONS(4616),
    [anon_sym___LINE__] = ACTIONS(4616),
    [anon_sym___MODULE__] = ACTIONS(4616),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4616),
    [anon_sym___TIME__] = ACTIONS(4616),
    [anon_sym___TIMESTAMP__] = ACTIONS(4616),
    [anon_sym___VENDOR__] = ACTIONS(4616),
    [anon_sym___VERSION__] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4618),
    [sym_float_literal] = ACTIONS(4618),
    [sym__string] = ACTIONS(4618),
  },
  [1748] = {
    [sym_identifier] = ACTIONS(4512),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4514),
    [anon_sym_RBRACE] = ACTIONS(4514),
    [anon_sym_LBRACE] = ACTIONS(4514),
    [anon_sym_DOT] = ACTIONS(4514),
    [anon_sym_AMP] = ACTIONS(4514),
    [anon_sym_DASH] = ACTIONS(4512),
    [anon_sym_DASH_DASH] = ACTIONS(4514),
    [anon_sym_PLUS] = ACTIONS(4512),
    [anon_sym_PLUS_PLUS] = ACTIONS(4514),
    [anon_sym_BANG] = ACTIONS(4514),
    [anon_sym_LPAREN] = ACTIONS(4514),
    [anon_sym_RPAREN] = ACTIONS(4514),
    [anon_sym_LBRACK] = ACTIONS(4514),
    [anon_sym_SEMI] = ACTIONS(4514),
    [anon_sym_DOLLAR] = ACTIONS(4514),
    [anon_sym_STAR] = ACTIONS(4514),
    [anon_sym_TILDE] = ACTIONS(4514),
    [anon_sym_AT] = ACTIONS(4514),
    [sym_bool] = ACTIONS(4512),
    [sym_byte] = ACTIONS(4512),
    [sym_ubyte] = ACTIONS(4512),
    [sym_char] = ACTIONS(4512),
    [sym_short] = ACTIONS(4512),
    [sym_ushort] = ACTIONS(4512),
    [sym_int] = ACTIONS(4512),
    [sym_uint] = ACTIONS(4512),
    [sym_long] = ACTIONS(4512),
    [sym_ulong] = ACTIONS(4512),
    [sym_cent] = ACTIONS(4512),
    [sym_ucent] = ACTIONS(4512),
    [sym_wchar] = ACTIONS(4512),
    [sym_dchar] = ACTIONS(4512),
    [sym_float] = ACTIONS(4512),
    [sym_double] = ACTIONS(4512),
    [sym_real] = ACTIONS(4512),
    [sym_ifloat] = ACTIONS(4512),
    [sym_idouble] = ACTIONS(4512),
    [sym_ireal] = ACTIONS(4512),
    [sym_cfloat] = ACTIONS(4512),
    [sym_cdouble] = ACTIONS(4512),
    [sym_creal] = ACTIONS(4512),
    [sym_size_t] = ACTIONS(4512),
    [sym_ptrdiff_t] = ACTIONS(4512),
    [sym_string] = ACTIONS(4512),
    [sym_cstring] = ACTIONS(4512),
    [sym_dstring] = ACTIONS(4512),
    [sym_wstring] = ACTIONS(4512),
    [sym_noreturn] = ACTIONS(4512),
    [sym_true] = ACTIONS(4512),
    [sym_false] = ACTIONS(4512),
    [sym_null] = ACTIONS(4512),
    [sym_super] = ACTIONS(4512),
    [sym_this] = ACTIONS(4512),
    [sym_abstract] = ACTIONS(4512),
    [sym_alias] = ACTIONS(4512),
    [sym_align] = ACTIONS(4512),
    [sym_asm] = ACTIONS(4512),
    [sym_assert] = ACTIONS(4512),
    [sym_auto] = ACTIONS(4512),
    [sym_break] = ACTIONS(4512),
    [sym_case] = ACTIONS(4512),
    [sym_cast] = ACTIONS(4512),
    [sym_class] = ACTIONS(4512),
    [sym_const] = ACTIONS(4512),
    [sym_continue] = ACTIONS(4512),
    [sym_debug] = ACTIONS(4512),
    [sym_default] = ACTIONS(4512),
    [sym_delegate] = ACTIONS(4512),
    [sym_delete] = ACTIONS(4512),
    [sym_deprecated] = ACTIONS(4512),
    [sym_do] = ACTIONS(4512),
    [sym_else] = ACTIONS(4512),
    [sym_enum] = ACTIONS(4512),
    [sym_export] = ACTIONS(4512),
    [sym_extern] = ACTIONS(4512),
    [sym_final] = ACTIONS(4512),
    [sym_for] = ACTIONS(4512),
    [sym_foreach] = ACTIONS(4512),
    [sym_foreach_reverse] = ACTIONS(4512),
    [sym_function] = ACTIONS(4512),
    [sym_goto] = ACTIONS(4512),
    [sym_if] = ACTIONS(4512),
    [sym_immutable] = ACTIONS(4512),
    [sym_import] = ACTIONS(4512),
    [sym_in] = ACTIONS(4512),
    [sym_inout] = ACTIONS(4512),
    [sym_interface] = ACTIONS(4512),
    [sym_invariant] = ACTIONS(4512),
    [sym_is] = ACTIONS(4512),
    [sym_mixin] = ACTIONS(4512),
    [sym_new] = ACTIONS(4512),
    [sym_nothrow] = ACTIONS(4512),
    [sym_out] = ACTIONS(4512),
    [sym_override] = ACTIONS(4512),
    [sym_package] = ACTIONS(4512),
    [sym_pragma] = ACTIONS(4512),
    [sym_private] = ACTIONS(4512),
    [sym_protected] = ACTIONS(4512),
    [sym_public] = ACTIONS(4512),
    [sym_pure] = ACTIONS(4512),
    [sym_ref] = ACTIONS(4512),
    [sym_return] = ACTIONS(4512),
    [sym_scope] = ACTIONS(4512),
    [sym_shared] = ACTIONS(4512),
    [sym_static] = ACTIONS(4512),
    [sym_struct] = ACTIONS(4512),
    [sym_switch] = ACTIONS(4512),
    [sym_synchronized] = ACTIONS(4512),
    [sym_template] = ACTIONS(4512),
    [sym_throw] = ACTIONS(4512),
    [sym_try] = ACTIONS(4512),
    [sym_typeid] = ACTIONS(4512),
    [sym_typeof] = ACTIONS(4512),
    [sym_union] = ACTIONS(4512),
    [sym_unittest] = ACTIONS(4512),
    [sym_version] = ACTIONS(4512),
    [sym_while] = ACTIONS(4512),
    [sym_with] = ACTIONS(4512),
    [sym_gshared] = ACTIONS(4512),
    [sym_traits] = ACTIONS(4512),
    [sym_vector] = ACTIONS(4512),
    [sym_void] = ACTIONS(4512),
    [anon_sym_BQUOTE] = ACTIONS(4514),
    [anon_sym_r_DQUOTE] = ACTIONS(4514),
    [anon_sym_x_DQUOTE] = ACTIONS(4514),
    [anon_sym_DQUOTE] = ACTIONS(4514),
    [anon_sym_i_BQUOTE] = ACTIONS(4514),
    [anon_sym_i_DQUOTE] = ACTIONS(4514),
    [anon_sym_iq_LBRACE] = ACTIONS(4514),
    [aux_sym_char_literal_token1] = ACTIONS(4514),
    [anon_sym_SQUOTE] = ACTIONS(4512),
    [anon_sym___DATE__] = ACTIONS(4512),
    [anon_sym___FILE__] = ACTIONS(4512),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4512),
    [anon_sym___FUNCTION__] = ACTIONS(4512),
    [anon_sym___LINE__] = ACTIONS(4512),
    [anon_sym___MODULE__] = ACTIONS(4512),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4512),
    [anon_sym___TIME__] = ACTIONS(4512),
    [anon_sym___TIMESTAMP__] = ACTIONS(4512),
    [anon_sym___VENDOR__] = ACTIONS(4512),
    [anon_sym___VERSION__] = ACTIONS(4512),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4514),
    [sym_float_literal] = ACTIONS(4514),
    [sym__string] = ACTIONS(4514),
  },
  [1749] = {
    [sym_identifier] = ACTIONS(4620),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4622),
    [anon_sym_RBRACE] = ACTIONS(4622),
    [anon_sym_LBRACE] = ACTIONS(4622),
    [anon_sym_DOT] = ACTIONS(4622),
    [anon_sym_AMP] = ACTIONS(4622),
    [anon_sym_DASH] = ACTIONS(4620),
    [anon_sym_DASH_DASH] = ACTIONS(4622),
    [anon_sym_PLUS] = ACTIONS(4620),
    [anon_sym_PLUS_PLUS] = ACTIONS(4622),
    [anon_sym_BANG] = ACTIONS(4622),
    [anon_sym_LPAREN] = ACTIONS(4622),
    [anon_sym_RPAREN] = ACTIONS(4622),
    [anon_sym_LBRACK] = ACTIONS(4622),
    [anon_sym_SEMI] = ACTIONS(4622),
    [anon_sym_DOLLAR] = ACTIONS(4622),
    [anon_sym_STAR] = ACTIONS(4622),
    [anon_sym_TILDE] = ACTIONS(4622),
    [anon_sym_AT] = ACTIONS(4622),
    [sym_bool] = ACTIONS(4620),
    [sym_byte] = ACTIONS(4620),
    [sym_ubyte] = ACTIONS(4620),
    [sym_char] = ACTIONS(4620),
    [sym_short] = ACTIONS(4620),
    [sym_ushort] = ACTIONS(4620),
    [sym_int] = ACTIONS(4620),
    [sym_uint] = ACTIONS(4620),
    [sym_long] = ACTIONS(4620),
    [sym_ulong] = ACTIONS(4620),
    [sym_cent] = ACTIONS(4620),
    [sym_ucent] = ACTIONS(4620),
    [sym_wchar] = ACTIONS(4620),
    [sym_dchar] = ACTIONS(4620),
    [sym_float] = ACTIONS(4620),
    [sym_double] = ACTIONS(4620),
    [sym_real] = ACTIONS(4620),
    [sym_ifloat] = ACTIONS(4620),
    [sym_idouble] = ACTIONS(4620),
    [sym_ireal] = ACTIONS(4620),
    [sym_cfloat] = ACTIONS(4620),
    [sym_cdouble] = ACTIONS(4620),
    [sym_creal] = ACTIONS(4620),
    [sym_size_t] = ACTIONS(4620),
    [sym_ptrdiff_t] = ACTIONS(4620),
    [sym_string] = ACTIONS(4620),
    [sym_cstring] = ACTIONS(4620),
    [sym_dstring] = ACTIONS(4620),
    [sym_wstring] = ACTIONS(4620),
    [sym_noreturn] = ACTIONS(4620),
    [sym_true] = ACTIONS(4620),
    [sym_false] = ACTIONS(4620),
    [sym_null] = ACTIONS(4620),
    [sym_super] = ACTIONS(4620),
    [sym_this] = ACTIONS(4620),
    [sym_abstract] = ACTIONS(4620),
    [sym_alias] = ACTIONS(4620),
    [sym_align] = ACTIONS(4620),
    [sym_asm] = ACTIONS(4620),
    [sym_assert] = ACTIONS(4620),
    [sym_auto] = ACTIONS(4620),
    [sym_break] = ACTIONS(4620),
    [sym_case] = ACTIONS(4620),
    [sym_cast] = ACTIONS(4620),
    [sym_class] = ACTIONS(4620),
    [sym_const] = ACTIONS(4620),
    [sym_continue] = ACTIONS(4620),
    [sym_debug] = ACTIONS(4620),
    [sym_default] = ACTIONS(4620),
    [sym_delegate] = ACTIONS(4620),
    [sym_delete] = ACTIONS(4620),
    [sym_deprecated] = ACTIONS(4620),
    [sym_do] = ACTIONS(4620),
    [sym_else] = ACTIONS(4620),
    [sym_enum] = ACTIONS(4620),
    [sym_export] = ACTIONS(4620),
    [sym_extern] = ACTIONS(4620),
    [sym_final] = ACTIONS(4620),
    [sym_for] = ACTIONS(4620),
    [sym_foreach] = ACTIONS(4620),
    [sym_foreach_reverse] = ACTIONS(4620),
    [sym_function] = ACTIONS(4620),
    [sym_goto] = ACTIONS(4620),
    [sym_if] = ACTIONS(4620),
    [sym_immutable] = ACTIONS(4620),
    [sym_import] = ACTIONS(4620),
    [sym_in] = ACTIONS(4620),
    [sym_inout] = ACTIONS(4620),
    [sym_interface] = ACTIONS(4620),
    [sym_invariant] = ACTIONS(4620),
    [sym_is] = ACTIONS(4620),
    [sym_mixin] = ACTIONS(4620),
    [sym_new] = ACTIONS(4620),
    [sym_nothrow] = ACTIONS(4620),
    [sym_out] = ACTIONS(4620),
    [sym_override] = ACTIONS(4620),
    [sym_package] = ACTIONS(4620),
    [sym_pragma] = ACTIONS(4620),
    [sym_private] = ACTIONS(4620),
    [sym_protected] = ACTIONS(4620),
    [sym_public] = ACTIONS(4620),
    [sym_pure] = ACTIONS(4620),
    [sym_ref] = ACTIONS(4620),
    [sym_return] = ACTIONS(4620),
    [sym_scope] = ACTIONS(4620),
    [sym_shared] = ACTIONS(4620),
    [sym_static] = ACTIONS(4620),
    [sym_struct] = ACTIONS(4620),
    [sym_switch] = ACTIONS(4620),
    [sym_synchronized] = ACTIONS(4620),
    [sym_template] = ACTIONS(4620),
    [sym_throw] = ACTIONS(4620),
    [sym_try] = ACTIONS(4620),
    [sym_typeid] = ACTIONS(4620),
    [sym_typeof] = ACTIONS(4620),
    [sym_union] = ACTIONS(4620),
    [sym_unittest] = ACTIONS(4620),
    [sym_version] = ACTIONS(4620),
    [sym_while] = ACTIONS(4620),
    [sym_with] = ACTIONS(4620),
    [sym_gshared] = ACTIONS(4620),
    [sym_traits] = ACTIONS(4620),
    [sym_vector] = ACTIONS(4620),
    [sym_void] = ACTIONS(4620),
    [anon_sym_BQUOTE] = ACTIONS(4622),
    [anon_sym_r_DQUOTE] = ACTIONS(4622),
    [anon_sym_x_DQUOTE] = ACTIONS(4622),
    [anon_sym_DQUOTE] = ACTIONS(4622),
    [anon_sym_i_BQUOTE] = ACTIONS(4622),
    [anon_sym_i_DQUOTE] = ACTIONS(4622),
    [anon_sym_iq_LBRACE] = ACTIONS(4622),
    [aux_sym_char_literal_token1] = ACTIONS(4622),
    [anon_sym_SQUOTE] = ACTIONS(4620),
    [anon_sym___DATE__] = ACTIONS(4620),
    [anon_sym___FILE__] = ACTIONS(4620),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4620),
    [anon_sym___FUNCTION__] = ACTIONS(4620),
    [anon_sym___LINE__] = ACTIONS(4620),
    [anon_sym___MODULE__] = ACTIONS(4620),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4620),
    [anon_sym___TIME__] = ACTIONS(4620),
    [anon_sym___TIMESTAMP__] = ACTIONS(4620),
    [anon_sym___VENDOR__] = ACTIONS(4620),
    [anon_sym___VERSION__] = ACTIONS(4620),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4622),
    [sym_float_literal] = ACTIONS(4622),
    [sym__string] = ACTIONS(4622),
  },
  [1750] = {
    [sym_identifier] = ACTIONS(4414),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4416),
    [anon_sym_RBRACE] = ACTIONS(4416),
    [anon_sym_LBRACE] = ACTIONS(4416),
    [anon_sym_DOT] = ACTIONS(4416),
    [anon_sym_AMP] = ACTIONS(4416),
    [anon_sym_DASH] = ACTIONS(4414),
    [anon_sym_DASH_DASH] = ACTIONS(4416),
    [anon_sym_PLUS] = ACTIONS(4414),
    [anon_sym_PLUS_PLUS] = ACTIONS(4416),
    [anon_sym_BANG] = ACTIONS(4416),
    [anon_sym_LPAREN] = ACTIONS(4416),
    [anon_sym_RPAREN] = ACTIONS(4416),
    [anon_sym_LBRACK] = ACTIONS(4416),
    [anon_sym_SEMI] = ACTIONS(4416),
    [anon_sym_DOLLAR] = ACTIONS(4416),
    [anon_sym_STAR] = ACTIONS(4416),
    [anon_sym_TILDE] = ACTIONS(4416),
    [anon_sym_AT] = ACTIONS(4416),
    [sym_bool] = ACTIONS(4414),
    [sym_byte] = ACTIONS(4414),
    [sym_ubyte] = ACTIONS(4414),
    [sym_char] = ACTIONS(4414),
    [sym_short] = ACTIONS(4414),
    [sym_ushort] = ACTIONS(4414),
    [sym_int] = ACTIONS(4414),
    [sym_uint] = ACTIONS(4414),
    [sym_long] = ACTIONS(4414),
    [sym_ulong] = ACTIONS(4414),
    [sym_cent] = ACTIONS(4414),
    [sym_ucent] = ACTIONS(4414),
    [sym_wchar] = ACTIONS(4414),
    [sym_dchar] = ACTIONS(4414),
    [sym_float] = ACTIONS(4414),
    [sym_double] = ACTIONS(4414),
    [sym_real] = ACTIONS(4414),
    [sym_ifloat] = ACTIONS(4414),
    [sym_idouble] = ACTIONS(4414),
    [sym_ireal] = ACTIONS(4414),
    [sym_cfloat] = ACTIONS(4414),
    [sym_cdouble] = ACTIONS(4414),
    [sym_creal] = ACTIONS(4414),
    [sym_size_t] = ACTIONS(4414),
    [sym_ptrdiff_t] = ACTIONS(4414),
    [sym_string] = ACTIONS(4414),
    [sym_cstring] = ACTIONS(4414),
    [sym_dstring] = ACTIONS(4414),
    [sym_wstring] = ACTIONS(4414),
    [sym_noreturn] = ACTIONS(4414),
    [sym_true] = ACTIONS(4414),
    [sym_false] = ACTIONS(4414),
    [sym_null] = ACTIONS(4414),
    [sym_super] = ACTIONS(4414),
    [sym_this] = ACTIONS(4414),
    [sym_abstract] = ACTIONS(4414),
    [sym_alias] = ACTIONS(4414),
    [sym_align] = ACTIONS(4414),
    [sym_asm] = ACTIONS(4414),
    [sym_assert] = ACTIONS(4414),
    [sym_auto] = ACTIONS(4414),
    [sym_break] = ACTIONS(4414),
    [sym_case] = ACTIONS(4414),
    [sym_cast] = ACTIONS(4414),
    [sym_class] = ACTIONS(4414),
    [sym_const] = ACTIONS(4414),
    [sym_continue] = ACTIONS(4414),
    [sym_debug] = ACTIONS(4414),
    [sym_default] = ACTIONS(4414),
    [sym_delegate] = ACTIONS(4414),
    [sym_delete] = ACTIONS(4414),
    [sym_deprecated] = ACTIONS(4414),
    [sym_do] = ACTIONS(4414),
    [sym_else] = ACTIONS(4414),
    [sym_enum] = ACTIONS(4414),
    [sym_export] = ACTIONS(4414),
    [sym_extern] = ACTIONS(4414),
    [sym_final] = ACTIONS(4414),
    [sym_for] = ACTIONS(4414),
    [sym_foreach] = ACTIONS(4414),
    [sym_foreach_reverse] = ACTIONS(4414),
    [sym_function] = ACTIONS(4414),
    [sym_goto] = ACTIONS(4414),
    [sym_if] = ACTIONS(4414),
    [sym_immutable] = ACTIONS(4414),
    [sym_import] = ACTIONS(4414),
    [sym_in] = ACTIONS(4414),
    [sym_inout] = ACTIONS(4414),
    [sym_interface] = ACTIONS(4414),
    [sym_invariant] = ACTIONS(4414),
    [sym_is] = ACTIONS(4414),
    [sym_mixin] = ACTIONS(4414),
    [sym_new] = ACTIONS(4414),
    [sym_nothrow] = ACTIONS(4414),
    [sym_out] = ACTIONS(4414),
    [sym_override] = ACTIONS(4414),
    [sym_package] = ACTIONS(4414),
    [sym_pragma] = ACTIONS(4414),
    [sym_private] = ACTIONS(4414),
    [sym_protected] = ACTIONS(4414),
    [sym_public] = ACTIONS(4414),
    [sym_pure] = ACTIONS(4414),
    [sym_ref] = ACTIONS(4414),
    [sym_return] = ACTIONS(4414),
    [sym_scope] = ACTIONS(4414),
    [sym_shared] = ACTIONS(4414),
    [sym_static] = ACTIONS(4414),
    [sym_struct] = ACTIONS(4414),
    [sym_switch] = ACTIONS(4414),
    [sym_synchronized] = ACTIONS(4414),
    [sym_template] = ACTIONS(4414),
    [sym_throw] = ACTIONS(4414),
    [sym_try] = ACTIONS(4414),
    [sym_typeid] = ACTIONS(4414),
    [sym_typeof] = ACTIONS(4414),
    [sym_union] = ACTIONS(4414),
    [sym_unittest] = ACTIONS(4414),
    [sym_version] = ACTIONS(4414),
    [sym_while] = ACTIONS(4414),
    [sym_with] = ACTIONS(4414),
    [sym_gshared] = ACTIONS(4414),
    [sym_traits] = ACTIONS(4414),
    [sym_vector] = ACTIONS(4414),
    [sym_void] = ACTIONS(4414),
    [anon_sym_BQUOTE] = ACTIONS(4416),
    [anon_sym_r_DQUOTE] = ACTIONS(4416),
    [anon_sym_x_DQUOTE] = ACTIONS(4416),
    [anon_sym_DQUOTE] = ACTIONS(4416),
    [anon_sym_i_BQUOTE] = ACTIONS(4416),
    [anon_sym_i_DQUOTE] = ACTIONS(4416),
    [anon_sym_iq_LBRACE] = ACTIONS(4416),
    [aux_sym_char_literal_token1] = ACTIONS(4416),
    [anon_sym_SQUOTE] = ACTIONS(4414),
    [anon_sym___DATE__] = ACTIONS(4414),
    [anon_sym___FILE__] = ACTIONS(4414),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4414),
    [anon_sym___FUNCTION__] = ACTIONS(4414),
    [anon_sym___LINE__] = ACTIONS(4414),
    [anon_sym___MODULE__] = ACTIONS(4414),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4414),
    [anon_sym___TIME__] = ACTIONS(4414),
    [anon_sym___TIMESTAMP__] = ACTIONS(4414),
    [anon_sym___VENDOR__] = ACTIONS(4414),
    [anon_sym___VERSION__] = ACTIONS(4414),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4416),
    [sym_float_literal] = ACTIONS(4416),
    [sym__string] = ACTIONS(4416),
  },
  [1751] = {
    [sym_identifier] = ACTIONS(4418),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4420),
    [anon_sym_RBRACE] = ACTIONS(4420),
    [anon_sym_LBRACE] = ACTIONS(4420),
    [anon_sym_DOT] = ACTIONS(4420),
    [anon_sym_AMP] = ACTIONS(4420),
    [anon_sym_DASH] = ACTIONS(4418),
    [anon_sym_DASH_DASH] = ACTIONS(4420),
    [anon_sym_PLUS] = ACTIONS(4418),
    [anon_sym_PLUS_PLUS] = ACTIONS(4420),
    [anon_sym_BANG] = ACTIONS(4420),
    [anon_sym_LPAREN] = ACTIONS(4420),
    [anon_sym_RPAREN] = ACTIONS(4420),
    [anon_sym_LBRACK] = ACTIONS(4420),
    [anon_sym_SEMI] = ACTIONS(4420),
    [anon_sym_DOLLAR] = ACTIONS(4420),
    [anon_sym_STAR] = ACTIONS(4420),
    [anon_sym_TILDE] = ACTIONS(4420),
    [anon_sym_AT] = ACTIONS(4420),
    [sym_bool] = ACTIONS(4418),
    [sym_byte] = ACTIONS(4418),
    [sym_ubyte] = ACTIONS(4418),
    [sym_char] = ACTIONS(4418),
    [sym_short] = ACTIONS(4418),
    [sym_ushort] = ACTIONS(4418),
    [sym_int] = ACTIONS(4418),
    [sym_uint] = ACTIONS(4418),
    [sym_long] = ACTIONS(4418),
    [sym_ulong] = ACTIONS(4418),
    [sym_cent] = ACTIONS(4418),
    [sym_ucent] = ACTIONS(4418),
    [sym_wchar] = ACTIONS(4418),
    [sym_dchar] = ACTIONS(4418),
    [sym_float] = ACTIONS(4418),
    [sym_double] = ACTIONS(4418),
    [sym_real] = ACTIONS(4418),
    [sym_ifloat] = ACTIONS(4418),
    [sym_idouble] = ACTIONS(4418),
    [sym_ireal] = ACTIONS(4418),
    [sym_cfloat] = ACTIONS(4418),
    [sym_cdouble] = ACTIONS(4418),
    [sym_creal] = ACTIONS(4418),
    [sym_size_t] = ACTIONS(4418),
    [sym_ptrdiff_t] = ACTIONS(4418),
    [sym_string] = ACTIONS(4418),
    [sym_cstring] = ACTIONS(4418),
    [sym_dstring] = ACTIONS(4418),
    [sym_wstring] = ACTIONS(4418),
    [sym_noreturn] = ACTIONS(4418),
    [sym_true] = ACTIONS(4418),
    [sym_false] = ACTIONS(4418),
    [sym_null] = ACTIONS(4418),
    [sym_super] = ACTIONS(4418),
    [sym_this] = ACTIONS(4418),
    [sym_abstract] = ACTIONS(4418),
    [sym_alias] = ACTIONS(4418),
    [sym_align] = ACTIONS(4418),
    [sym_asm] = ACTIONS(4418),
    [sym_assert] = ACTIONS(4418),
    [sym_auto] = ACTIONS(4418),
    [sym_break] = ACTIONS(4418),
    [sym_case] = ACTIONS(4418),
    [sym_cast] = ACTIONS(4418),
    [sym_class] = ACTIONS(4418),
    [sym_const] = ACTIONS(4418),
    [sym_continue] = ACTIONS(4418),
    [sym_debug] = ACTIONS(4418),
    [sym_default] = ACTIONS(4418),
    [sym_delegate] = ACTIONS(4418),
    [sym_delete] = ACTIONS(4418),
    [sym_deprecated] = ACTIONS(4418),
    [sym_do] = ACTIONS(4418),
    [sym_else] = ACTIONS(4418),
    [sym_enum] = ACTIONS(4418),
    [sym_export] = ACTIONS(4418),
    [sym_extern] = ACTIONS(4418),
    [sym_final] = ACTIONS(4418),
    [sym_for] = ACTIONS(4418),
    [sym_foreach] = ACTIONS(4418),
    [sym_foreach_reverse] = ACTIONS(4418),
    [sym_function] = ACTIONS(4418),
    [sym_goto] = ACTIONS(4418),
    [sym_if] = ACTIONS(4418),
    [sym_immutable] = ACTIONS(4418),
    [sym_import] = ACTIONS(4418),
    [sym_in] = ACTIONS(4418),
    [sym_inout] = ACTIONS(4418),
    [sym_interface] = ACTIONS(4418),
    [sym_invariant] = ACTIONS(4418),
    [sym_is] = ACTIONS(4418),
    [sym_mixin] = ACTIONS(4418),
    [sym_new] = ACTIONS(4418),
    [sym_nothrow] = ACTIONS(4418),
    [sym_out] = ACTIONS(4418),
    [sym_override] = ACTIONS(4418),
    [sym_package] = ACTIONS(4418),
    [sym_pragma] = ACTIONS(4418),
    [sym_private] = ACTIONS(4418),
    [sym_protected] = ACTIONS(4418),
    [sym_public] = ACTIONS(4418),
    [sym_pure] = ACTIONS(4418),
    [sym_ref] = ACTIONS(4418),
    [sym_return] = ACTIONS(4418),
    [sym_scope] = ACTIONS(4418),
    [sym_shared] = ACTIONS(4418),
    [sym_static] = ACTIONS(4418),
    [sym_struct] = ACTIONS(4418),
    [sym_switch] = ACTIONS(4418),
    [sym_synchronized] = ACTIONS(4418),
    [sym_template] = ACTIONS(4418),
    [sym_throw] = ACTIONS(4418),
    [sym_try] = ACTIONS(4418),
    [sym_typeid] = ACTIONS(4418),
    [sym_typeof] = ACTIONS(4418),
    [sym_union] = ACTIONS(4418),
    [sym_unittest] = ACTIONS(4418),
    [sym_version] = ACTIONS(4418),
    [sym_while] = ACTIONS(4418),
    [sym_with] = ACTIONS(4418),
    [sym_gshared] = ACTIONS(4418),
    [sym_traits] = ACTIONS(4418),
    [sym_vector] = ACTIONS(4418),
    [sym_void] = ACTIONS(4418),
    [anon_sym_BQUOTE] = ACTIONS(4420),
    [anon_sym_r_DQUOTE] = ACTIONS(4420),
    [anon_sym_x_DQUOTE] = ACTIONS(4420),
    [anon_sym_DQUOTE] = ACTIONS(4420),
    [anon_sym_i_BQUOTE] = ACTIONS(4420),
    [anon_sym_i_DQUOTE] = ACTIONS(4420),
    [anon_sym_iq_LBRACE] = ACTIONS(4420),
    [aux_sym_char_literal_token1] = ACTIONS(4420),
    [anon_sym_SQUOTE] = ACTIONS(4418),
    [anon_sym___DATE__] = ACTIONS(4418),
    [anon_sym___FILE__] = ACTIONS(4418),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4418),
    [anon_sym___FUNCTION__] = ACTIONS(4418),
    [anon_sym___LINE__] = ACTIONS(4418),
    [anon_sym___MODULE__] = ACTIONS(4418),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4418),
    [anon_sym___TIME__] = ACTIONS(4418),
    [anon_sym___TIMESTAMP__] = ACTIONS(4418),
    [anon_sym___VENDOR__] = ACTIONS(4418),
    [anon_sym___VERSION__] = ACTIONS(4418),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4420),
    [sym_float_literal] = ACTIONS(4420),
    [sym__string] = ACTIONS(4420),
  },
  [1752] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4618),
    [anon_sym_RBRACE] = ACTIONS(4618),
    [anon_sym_LBRACE] = ACTIONS(4618),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_AMP] = ACTIONS(4618),
    [anon_sym_DASH] = ACTIONS(4616),
    [anon_sym_DASH_DASH] = ACTIONS(4618),
    [anon_sym_PLUS] = ACTIONS(4616),
    [anon_sym_PLUS_PLUS] = ACTIONS(4618),
    [anon_sym_BANG] = ACTIONS(4618),
    [anon_sym_LPAREN] = ACTIONS(4618),
    [anon_sym_RPAREN] = ACTIONS(4618),
    [anon_sym_LBRACK] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4618),
    [anon_sym_DOLLAR] = ACTIONS(4618),
    [anon_sym_STAR] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_true] = ACTIONS(4616),
    [sym_false] = ACTIONS(4616),
    [sym_null] = ACTIONS(4616),
    [sym_super] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_asm] = ACTIONS(4616),
    [sym_assert] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_break] = ACTIONS(4616),
    [sym_case] = ACTIONS(4616),
    [sym_cast] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_continue] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_default] = ACTIONS(4616),
    [sym_delegate] = ACTIONS(4616),
    [sym_delete] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_do] = ACTIONS(4616),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_for] = ACTIONS(4616),
    [sym_foreach] = ACTIONS(4616),
    [sym_foreach_reverse] = ACTIONS(4616),
    [sym_function] = ACTIONS(4616),
    [sym_goto] = ACTIONS(4616),
    [sym_if] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(4616),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_is] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_new] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_out] = ACTIONS(4616),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_switch] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_throw] = ACTIONS(4616),
    [sym_try] = ACTIONS(4616),
    [sym_typeid] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_with] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [anon_sym_BQUOTE] = ACTIONS(4618),
    [anon_sym_r_DQUOTE] = ACTIONS(4618),
    [anon_sym_x_DQUOTE] = ACTIONS(4618),
    [anon_sym_DQUOTE] = ACTIONS(4618),
    [anon_sym_i_BQUOTE] = ACTIONS(4618),
    [anon_sym_i_DQUOTE] = ACTIONS(4618),
    [anon_sym_iq_LBRACE] = ACTIONS(4618),
    [aux_sym_char_literal_token1] = ACTIONS(4618),
    [anon_sym_SQUOTE] = ACTIONS(4616),
    [anon_sym___DATE__] = ACTIONS(4616),
    [anon_sym___FILE__] = ACTIONS(4616),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4616),
    [anon_sym___FUNCTION__] = ACTIONS(4616),
    [anon_sym___LINE__] = ACTIONS(4616),
    [anon_sym___MODULE__] = ACTIONS(4616),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4616),
    [anon_sym___TIME__] = ACTIONS(4616),
    [anon_sym___TIMESTAMP__] = ACTIONS(4616),
    [anon_sym___VENDOR__] = ACTIONS(4616),
    [anon_sym___VERSION__] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4618),
    [sym_float_literal] = ACTIONS(4618),
    [sym__string] = ACTIONS(4618),
  },
  [1753] = {
    [sym_identifier] = ACTIONS(5024),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5026),
    [anon_sym_RBRACE] = ACTIONS(5026),
    [anon_sym_LBRACE] = ACTIONS(5026),
    [anon_sym_DOT] = ACTIONS(5026),
    [anon_sym_AMP] = ACTIONS(5026),
    [anon_sym_DASH] = ACTIONS(5024),
    [anon_sym_DASH_DASH] = ACTIONS(5026),
    [anon_sym_PLUS] = ACTIONS(5024),
    [anon_sym_PLUS_PLUS] = ACTIONS(5026),
    [anon_sym_BANG] = ACTIONS(5026),
    [anon_sym_LPAREN] = ACTIONS(5026),
    [anon_sym_RPAREN] = ACTIONS(5026),
    [anon_sym_LBRACK] = ACTIONS(5026),
    [anon_sym_SEMI] = ACTIONS(5026),
    [anon_sym_DOLLAR] = ACTIONS(5026),
    [anon_sym_STAR] = ACTIONS(5026),
    [anon_sym_TILDE] = ACTIONS(5026),
    [anon_sym_AT] = ACTIONS(5026),
    [sym_bool] = ACTIONS(5024),
    [sym_byte] = ACTIONS(5024),
    [sym_ubyte] = ACTIONS(5024),
    [sym_char] = ACTIONS(5024),
    [sym_short] = ACTIONS(5024),
    [sym_ushort] = ACTIONS(5024),
    [sym_int] = ACTIONS(5024),
    [sym_uint] = ACTIONS(5024),
    [sym_long] = ACTIONS(5024),
    [sym_ulong] = ACTIONS(5024),
    [sym_cent] = ACTIONS(5024),
    [sym_ucent] = ACTIONS(5024),
    [sym_wchar] = ACTIONS(5024),
    [sym_dchar] = ACTIONS(5024),
    [sym_float] = ACTIONS(5024),
    [sym_double] = ACTIONS(5024),
    [sym_real] = ACTIONS(5024),
    [sym_ifloat] = ACTIONS(5024),
    [sym_idouble] = ACTIONS(5024),
    [sym_ireal] = ACTIONS(5024),
    [sym_cfloat] = ACTIONS(5024),
    [sym_cdouble] = ACTIONS(5024),
    [sym_creal] = ACTIONS(5024),
    [sym_size_t] = ACTIONS(5024),
    [sym_ptrdiff_t] = ACTIONS(5024),
    [sym_string] = ACTIONS(5024),
    [sym_cstring] = ACTIONS(5024),
    [sym_dstring] = ACTIONS(5024),
    [sym_wstring] = ACTIONS(5024),
    [sym_noreturn] = ACTIONS(5024),
    [sym_true] = ACTIONS(5024),
    [sym_false] = ACTIONS(5024),
    [sym_null] = ACTIONS(5024),
    [sym_super] = ACTIONS(5024),
    [sym_this] = ACTIONS(5024),
    [sym_abstract] = ACTIONS(5024),
    [sym_alias] = ACTIONS(5024),
    [sym_align] = ACTIONS(5024),
    [sym_asm] = ACTIONS(5024),
    [sym_assert] = ACTIONS(5024),
    [sym_auto] = ACTIONS(5024),
    [sym_break] = ACTIONS(5024),
    [sym_case] = ACTIONS(5024),
    [sym_cast] = ACTIONS(5024),
    [sym_class] = ACTIONS(5024),
    [sym_const] = ACTIONS(5024),
    [sym_continue] = ACTIONS(5024),
    [sym_debug] = ACTIONS(5024),
    [sym_default] = ACTIONS(5024),
    [sym_delegate] = ACTIONS(5024),
    [sym_delete] = ACTIONS(5024),
    [sym_deprecated] = ACTIONS(5024),
    [sym_do] = ACTIONS(5024),
    [sym_else] = ACTIONS(5024),
    [sym_enum] = ACTIONS(5024),
    [sym_export] = ACTIONS(5024),
    [sym_extern] = ACTIONS(5024),
    [sym_final] = ACTIONS(5024),
    [sym_for] = ACTIONS(5024),
    [sym_foreach] = ACTIONS(5024),
    [sym_foreach_reverse] = ACTIONS(5024),
    [sym_function] = ACTIONS(5024),
    [sym_goto] = ACTIONS(5024),
    [sym_if] = ACTIONS(5024),
    [sym_immutable] = ACTIONS(5024),
    [sym_import] = ACTIONS(5024),
    [sym_in] = ACTIONS(5024),
    [sym_inout] = ACTIONS(5024),
    [sym_interface] = ACTIONS(5024),
    [sym_invariant] = ACTIONS(5024),
    [sym_is] = ACTIONS(5024),
    [sym_mixin] = ACTIONS(5024),
    [sym_new] = ACTIONS(5024),
    [sym_nothrow] = ACTIONS(5024),
    [sym_out] = ACTIONS(5024),
    [sym_override] = ACTIONS(5024),
    [sym_package] = ACTIONS(5024),
    [sym_pragma] = ACTIONS(5024),
    [sym_private] = ACTIONS(5024),
    [sym_protected] = ACTIONS(5024),
    [sym_public] = ACTIONS(5024),
    [sym_pure] = ACTIONS(5024),
    [sym_ref] = ACTIONS(5024),
    [sym_return] = ACTIONS(5024),
    [sym_scope] = ACTIONS(5024),
    [sym_shared] = ACTIONS(5024),
    [sym_static] = ACTIONS(5024),
    [sym_struct] = ACTIONS(5024),
    [sym_switch] = ACTIONS(5024),
    [sym_synchronized] = ACTIONS(5024),
    [sym_template] = ACTIONS(5024),
    [sym_throw] = ACTIONS(5024),
    [sym_try] = ACTIONS(5024),
    [sym_typeid] = ACTIONS(5024),
    [sym_typeof] = ACTIONS(5024),
    [sym_union] = ACTIONS(5024),
    [sym_unittest] = ACTIONS(5024),
    [sym_version] = ACTIONS(5024),
    [sym_while] = ACTIONS(5024),
    [sym_with] = ACTIONS(5024),
    [sym_gshared] = ACTIONS(5024),
    [sym_traits] = ACTIONS(5024),
    [sym_vector] = ACTIONS(5024),
    [sym_void] = ACTIONS(5024),
    [anon_sym_BQUOTE] = ACTIONS(5026),
    [anon_sym_r_DQUOTE] = ACTIONS(5026),
    [anon_sym_x_DQUOTE] = ACTIONS(5026),
    [anon_sym_DQUOTE] = ACTIONS(5026),
    [anon_sym_i_BQUOTE] = ACTIONS(5026),
    [anon_sym_i_DQUOTE] = ACTIONS(5026),
    [anon_sym_iq_LBRACE] = ACTIONS(5026),
    [aux_sym_char_literal_token1] = ACTIONS(5026),
    [anon_sym_SQUOTE] = ACTIONS(5024),
    [anon_sym___DATE__] = ACTIONS(5024),
    [anon_sym___FILE__] = ACTIONS(5024),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5024),
    [anon_sym___FUNCTION__] = ACTIONS(5024),
    [anon_sym___LINE__] = ACTIONS(5024),
    [anon_sym___MODULE__] = ACTIONS(5024),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5024),
    [anon_sym___TIME__] = ACTIONS(5024),
    [anon_sym___TIMESTAMP__] = ACTIONS(5024),
    [anon_sym___VENDOR__] = ACTIONS(5024),
    [anon_sym___VERSION__] = ACTIONS(5024),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5026),
    [sym_float_literal] = ACTIONS(5026),
    [sym__string] = ACTIONS(5026),
  },
  [1754] = {
    [sym_identifier] = ACTIONS(4456),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4458),
    [anon_sym_RBRACE] = ACTIONS(4458),
    [anon_sym_LBRACE] = ACTIONS(4458),
    [anon_sym_DOT] = ACTIONS(4458),
    [anon_sym_AMP] = ACTIONS(4458),
    [anon_sym_DASH] = ACTIONS(4456),
    [anon_sym_DASH_DASH] = ACTIONS(4458),
    [anon_sym_PLUS] = ACTIONS(4456),
    [anon_sym_PLUS_PLUS] = ACTIONS(4458),
    [anon_sym_BANG] = ACTIONS(4458),
    [anon_sym_LPAREN] = ACTIONS(4458),
    [anon_sym_RPAREN] = ACTIONS(4458),
    [anon_sym_LBRACK] = ACTIONS(4458),
    [anon_sym_SEMI] = ACTIONS(4458),
    [anon_sym_DOLLAR] = ACTIONS(4458),
    [anon_sym_STAR] = ACTIONS(4458),
    [anon_sym_TILDE] = ACTIONS(4458),
    [anon_sym_AT] = ACTIONS(4458),
    [sym_bool] = ACTIONS(4456),
    [sym_byte] = ACTIONS(4456),
    [sym_ubyte] = ACTIONS(4456),
    [sym_char] = ACTIONS(4456),
    [sym_short] = ACTIONS(4456),
    [sym_ushort] = ACTIONS(4456),
    [sym_int] = ACTIONS(4456),
    [sym_uint] = ACTIONS(4456),
    [sym_long] = ACTIONS(4456),
    [sym_ulong] = ACTIONS(4456),
    [sym_cent] = ACTIONS(4456),
    [sym_ucent] = ACTIONS(4456),
    [sym_wchar] = ACTIONS(4456),
    [sym_dchar] = ACTIONS(4456),
    [sym_float] = ACTIONS(4456),
    [sym_double] = ACTIONS(4456),
    [sym_real] = ACTIONS(4456),
    [sym_ifloat] = ACTIONS(4456),
    [sym_idouble] = ACTIONS(4456),
    [sym_ireal] = ACTIONS(4456),
    [sym_cfloat] = ACTIONS(4456),
    [sym_cdouble] = ACTIONS(4456),
    [sym_creal] = ACTIONS(4456),
    [sym_size_t] = ACTIONS(4456),
    [sym_ptrdiff_t] = ACTIONS(4456),
    [sym_string] = ACTIONS(4456),
    [sym_cstring] = ACTIONS(4456),
    [sym_dstring] = ACTIONS(4456),
    [sym_wstring] = ACTIONS(4456),
    [sym_noreturn] = ACTIONS(4456),
    [sym_true] = ACTIONS(4456),
    [sym_false] = ACTIONS(4456),
    [sym_null] = ACTIONS(4456),
    [sym_super] = ACTIONS(4456),
    [sym_this] = ACTIONS(4456),
    [sym_abstract] = ACTIONS(4456),
    [sym_alias] = ACTIONS(4456),
    [sym_align] = ACTIONS(4456),
    [sym_asm] = ACTIONS(4456),
    [sym_assert] = ACTIONS(4456),
    [sym_auto] = ACTIONS(4456),
    [sym_break] = ACTIONS(4456),
    [sym_case] = ACTIONS(4456),
    [sym_cast] = ACTIONS(4456),
    [sym_class] = ACTIONS(4456),
    [sym_const] = ACTIONS(4456),
    [sym_continue] = ACTIONS(4456),
    [sym_debug] = ACTIONS(4456),
    [sym_default] = ACTIONS(4456),
    [sym_delegate] = ACTIONS(4456),
    [sym_delete] = ACTIONS(4456),
    [sym_deprecated] = ACTIONS(4456),
    [sym_do] = ACTIONS(4456),
    [sym_else] = ACTIONS(4456),
    [sym_enum] = ACTIONS(4456),
    [sym_export] = ACTIONS(4456),
    [sym_extern] = ACTIONS(4456),
    [sym_final] = ACTIONS(4456),
    [sym_for] = ACTIONS(4456),
    [sym_foreach] = ACTIONS(4456),
    [sym_foreach_reverse] = ACTIONS(4456),
    [sym_function] = ACTIONS(4456),
    [sym_goto] = ACTIONS(4456),
    [sym_if] = ACTIONS(4456),
    [sym_immutable] = ACTIONS(4456),
    [sym_import] = ACTIONS(4456),
    [sym_in] = ACTIONS(4456),
    [sym_inout] = ACTIONS(4456),
    [sym_interface] = ACTIONS(4456),
    [sym_invariant] = ACTIONS(4456),
    [sym_is] = ACTIONS(4456),
    [sym_mixin] = ACTIONS(4456),
    [sym_new] = ACTIONS(4456),
    [sym_nothrow] = ACTIONS(4456),
    [sym_out] = ACTIONS(4456),
    [sym_override] = ACTIONS(4456),
    [sym_package] = ACTIONS(4456),
    [sym_pragma] = ACTIONS(4456),
    [sym_private] = ACTIONS(4456),
    [sym_protected] = ACTIONS(4456),
    [sym_public] = ACTIONS(4456),
    [sym_pure] = ACTIONS(4456),
    [sym_ref] = ACTIONS(4456),
    [sym_return] = ACTIONS(4456),
    [sym_scope] = ACTIONS(4456),
    [sym_shared] = ACTIONS(4456),
    [sym_static] = ACTIONS(4456),
    [sym_struct] = ACTIONS(4456),
    [sym_switch] = ACTIONS(4456),
    [sym_synchronized] = ACTIONS(4456),
    [sym_template] = ACTIONS(4456),
    [sym_throw] = ACTIONS(4456),
    [sym_try] = ACTIONS(4456),
    [sym_typeid] = ACTIONS(4456),
    [sym_typeof] = ACTIONS(4456),
    [sym_union] = ACTIONS(4456),
    [sym_unittest] = ACTIONS(4456),
    [sym_version] = ACTIONS(4456),
    [sym_while] = ACTIONS(4456),
    [sym_with] = ACTIONS(4456),
    [sym_gshared] = ACTIONS(4456),
    [sym_traits] = ACTIONS(4456),
    [sym_vector] = ACTIONS(4456),
    [sym_void] = ACTIONS(4456),
    [anon_sym_BQUOTE] = ACTIONS(4458),
    [anon_sym_r_DQUOTE] = ACTIONS(4458),
    [anon_sym_x_DQUOTE] = ACTIONS(4458),
    [anon_sym_DQUOTE] = ACTIONS(4458),
    [anon_sym_i_BQUOTE] = ACTIONS(4458),
    [anon_sym_i_DQUOTE] = ACTIONS(4458),
    [anon_sym_iq_LBRACE] = ACTIONS(4458),
    [aux_sym_char_literal_token1] = ACTIONS(4458),
    [anon_sym_SQUOTE] = ACTIONS(4456),
    [anon_sym___DATE__] = ACTIONS(4456),
    [anon_sym___FILE__] = ACTIONS(4456),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4456),
    [anon_sym___FUNCTION__] = ACTIONS(4456),
    [anon_sym___LINE__] = ACTIONS(4456),
    [anon_sym___MODULE__] = ACTIONS(4456),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4456),
    [anon_sym___TIME__] = ACTIONS(4456),
    [anon_sym___TIMESTAMP__] = ACTIONS(4456),
    [anon_sym___VENDOR__] = ACTIONS(4456),
    [anon_sym___VERSION__] = ACTIONS(4456),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4458),
    [sym_float_literal] = ACTIONS(4458),
    [sym__string] = ACTIONS(4458),
  },
  [1755] = {
    [sym_identifier] = ACTIONS(4464),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4466),
    [anon_sym_RBRACE] = ACTIONS(4466),
    [anon_sym_LBRACE] = ACTIONS(4466),
    [anon_sym_DOT] = ACTIONS(4466),
    [anon_sym_AMP] = ACTIONS(4466),
    [anon_sym_DASH] = ACTIONS(4464),
    [anon_sym_DASH_DASH] = ACTIONS(4466),
    [anon_sym_PLUS] = ACTIONS(4464),
    [anon_sym_PLUS_PLUS] = ACTIONS(4466),
    [anon_sym_BANG] = ACTIONS(4466),
    [anon_sym_LPAREN] = ACTIONS(4466),
    [anon_sym_RPAREN] = ACTIONS(4466),
    [anon_sym_LBRACK] = ACTIONS(4466),
    [anon_sym_SEMI] = ACTIONS(4466),
    [anon_sym_DOLLAR] = ACTIONS(4466),
    [anon_sym_STAR] = ACTIONS(4466),
    [anon_sym_TILDE] = ACTIONS(4466),
    [anon_sym_AT] = ACTIONS(4466),
    [sym_bool] = ACTIONS(4464),
    [sym_byte] = ACTIONS(4464),
    [sym_ubyte] = ACTIONS(4464),
    [sym_char] = ACTIONS(4464),
    [sym_short] = ACTIONS(4464),
    [sym_ushort] = ACTIONS(4464),
    [sym_int] = ACTIONS(4464),
    [sym_uint] = ACTIONS(4464),
    [sym_long] = ACTIONS(4464),
    [sym_ulong] = ACTIONS(4464),
    [sym_cent] = ACTIONS(4464),
    [sym_ucent] = ACTIONS(4464),
    [sym_wchar] = ACTIONS(4464),
    [sym_dchar] = ACTIONS(4464),
    [sym_float] = ACTIONS(4464),
    [sym_double] = ACTIONS(4464),
    [sym_real] = ACTIONS(4464),
    [sym_ifloat] = ACTIONS(4464),
    [sym_idouble] = ACTIONS(4464),
    [sym_ireal] = ACTIONS(4464),
    [sym_cfloat] = ACTIONS(4464),
    [sym_cdouble] = ACTIONS(4464),
    [sym_creal] = ACTIONS(4464),
    [sym_size_t] = ACTIONS(4464),
    [sym_ptrdiff_t] = ACTIONS(4464),
    [sym_string] = ACTIONS(4464),
    [sym_cstring] = ACTIONS(4464),
    [sym_dstring] = ACTIONS(4464),
    [sym_wstring] = ACTIONS(4464),
    [sym_noreturn] = ACTIONS(4464),
    [sym_true] = ACTIONS(4464),
    [sym_false] = ACTIONS(4464),
    [sym_null] = ACTIONS(4464),
    [sym_super] = ACTIONS(4464),
    [sym_this] = ACTIONS(4464),
    [sym_abstract] = ACTIONS(4464),
    [sym_alias] = ACTIONS(4464),
    [sym_align] = ACTIONS(4464),
    [sym_asm] = ACTIONS(4464),
    [sym_assert] = ACTIONS(4464),
    [sym_auto] = ACTIONS(4464),
    [sym_break] = ACTIONS(4464),
    [sym_case] = ACTIONS(4464),
    [sym_cast] = ACTIONS(4464),
    [sym_class] = ACTIONS(4464),
    [sym_const] = ACTIONS(4464),
    [sym_continue] = ACTIONS(4464),
    [sym_debug] = ACTIONS(4464),
    [sym_default] = ACTIONS(4464),
    [sym_delegate] = ACTIONS(4464),
    [sym_delete] = ACTIONS(4464),
    [sym_deprecated] = ACTIONS(4464),
    [sym_do] = ACTIONS(4464),
    [sym_else] = ACTIONS(4464),
    [sym_enum] = ACTIONS(4464),
    [sym_export] = ACTIONS(4464),
    [sym_extern] = ACTIONS(4464),
    [sym_final] = ACTIONS(4464),
    [sym_for] = ACTIONS(4464),
    [sym_foreach] = ACTIONS(4464),
    [sym_foreach_reverse] = ACTIONS(4464),
    [sym_function] = ACTIONS(4464),
    [sym_goto] = ACTIONS(4464),
    [sym_if] = ACTIONS(4464),
    [sym_immutable] = ACTIONS(4464),
    [sym_import] = ACTIONS(4464),
    [sym_in] = ACTIONS(4464),
    [sym_inout] = ACTIONS(4464),
    [sym_interface] = ACTIONS(4464),
    [sym_invariant] = ACTIONS(4464),
    [sym_is] = ACTIONS(4464),
    [sym_mixin] = ACTIONS(4464),
    [sym_new] = ACTIONS(4464),
    [sym_nothrow] = ACTIONS(4464),
    [sym_out] = ACTIONS(4464),
    [sym_override] = ACTIONS(4464),
    [sym_package] = ACTIONS(4464),
    [sym_pragma] = ACTIONS(4464),
    [sym_private] = ACTIONS(4464),
    [sym_protected] = ACTIONS(4464),
    [sym_public] = ACTIONS(4464),
    [sym_pure] = ACTIONS(4464),
    [sym_ref] = ACTIONS(4464),
    [sym_return] = ACTIONS(4464),
    [sym_scope] = ACTIONS(4464),
    [sym_shared] = ACTIONS(4464),
    [sym_static] = ACTIONS(4464),
    [sym_struct] = ACTIONS(4464),
    [sym_switch] = ACTIONS(4464),
    [sym_synchronized] = ACTIONS(4464),
    [sym_template] = ACTIONS(4464),
    [sym_throw] = ACTIONS(4464),
    [sym_try] = ACTIONS(4464),
    [sym_typeid] = ACTIONS(4464),
    [sym_typeof] = ACTIONS(4464),
    [sym_union] = ACTIONS(4464),
    [sym_unittest] = ACTIONS(4464),
    [sym_version] = ACTIONS(4464),
    [sym_while] = ACTIONS(4464),
    [sym_with] = ACTIONS(4464),
    [sym_gshared] = ACTIONS(4464),
    [sym_traits] = ACTIONS(4464),
    [sym_vector] = ACTIONS(4464),
    [sym_void] = ACTIONS(4464),
    [anon_sym_BQUOTE] = ACTIONS(4466),
    [anon_sym_r_DQUOTE] = ACTIONS(4466),
    [anon_sym_x_DQUOTE] = ACTIONS(4466),
    [anon_sym_DQUOTE] = ACTIONS(4466),
    [anon_sym_i_BQUOTE] = ACTIONS(4466),
    [anon_sym_i_DQUOTE] = ACTIONS(4466),
    [anon_sym_iq_LBRACE] = ACTIONS(4466),
    [aux_sym_char_literal_token1] = ACTIONS(4466),
    [anon_sym_SQUOTE] = ACTIONS(4464),
    [anon_sym___DATE__] = ACTIONS(4464),
    [anon_sym___FILE__] = ACTIONS(4464),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4464),
    [anon_sym___FUNCTION__] = ACTIONS(4464),
    [anon_sym___LINE__] = ACTIONS(4464),
    [anon_sym___MODULE__] = ACTIONS(4464),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4464),
    [anon_sym___TIME__] = ACTIONS(4464),
    [anon_sym___TIMESTAMP__] = ACTIONS(4464),
    [anon_sym___VENDOR__] = ACTIONS(4464),
    [anon_sym___VERSION__] = ACTIONS(4464),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4466),
    [sym_float_literal] = ACTIONS(4466),
    [sym__string] = ACTIONS(4466),
  },
  [1756] = {
    [sym_identifier] = ACTIONS(4472),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4474),
    [anon_sym_RBRACE] = ACTIONS(4474),
    [anon_sym_LBRACE] = ACTIONS(4474),
    [anon_sym_DOT] = ACTIONS(4474),
    [anon_sym_AMP] = ACTIONS(4474),
    [anon_sym_DASH] = ACTIONS(4472),
    [anon_sym_DASH_DASH] = ACTIONS(4474),
    [anon_sym_PLUS] = ACTIONS(4472),
    [anon_sym_PLUS_PLUS] = ACTIONS(4474),
    [anon_sym_BANG] = ACTIONS(4474),
    [anon_sym_LPAREN] = ACTIONS(4474),
    [anon_sym_RPAREN] = ACTIONS(4474),
    [anon_sym_LBRACK] = ACTIONS(4474),
    [anon_sym_SEMI] = ACTIONS(4474),
    [anon_sym_DOLLAR] = ACTIONS(4474),
    [anon_sym_STAR] = ACTIONS(4474),
    [anon_sym_TILDE] = ACTIONS(4474),
    [anon_sym_AT] = ACTIONS(4474),
    [sym_bool] = ACTIONS(4472),
    [sym_byte] = ACTIONS(4472),
    [sym_ubyte] = ACTIONS(4472),
    [sym_char] = ACTIONS(4472),
    [sym_short] = ACTIONS(4472),
    [sym_ushort] = ACTIONS(4472),
    [sym_int] = ACTIONS(4472),
    [sym_uint] = ACTIONS(4472),
    [sym_long] = ACTIONS(4472),
    [sym_ulong] = ACTIONS(4472),
    [sym_cent] = ACTIONS(4472),
    [sym_ucent] = ACTIONS(4472),
    [sym_wchar] = ACTIONS(4472),
    [sym_dchar] = ACTIONS(4472),
    [sym_float] = ACTIONS(4472),
    [sym_double] = ACTIONS(4472),
    [sym_real] = ACTIONS(4472),
    [sym_ifloat] = ACTIONS(4472),
    [sym_idouble] = ACTIONS(4472),
    [sym_ireal] = ACTIONS(4472),
    [sym_cfloat] = ACTIONS(4472),
    [sym_cdouble] = ACTIONS(4472),
    [sym_creal] = ACTIONS(4472),
    [sym_size_t] = ACTIONS(4472),
    [sym_ptrdiff_t] = ACTIONS(4472),
    [sym_string] = ACTIONS(4472),
    [sym_cstring] = ACTIONS(4472),
    [sym_dstring] = ACTIONS(4472),
    [sym_wstring] = ACTIONS(4472),
    [sym_noreturn] = ACTIONS(4472),
    [sym_true] = ACTIONS(4472),
    [sym_false] = ACTIONS(4472),
    [sym_null] = ACTIONS(4472),
    [sym_super] = ACTIONS(4472),
    [sym_this] = ACTIONS(4472),
    [sym_abstract] = ACTIONS(4472),
    [sym_alias] = ACTIONS(4472),
    [sym_align] = ACTIONS(4472),
    [sym_asm] = ACTIONS(4472),
    [sym_assert] = ACTIONS(4472),
    [sym_auto] = ACTIONS(4472),
    [sym_break] = ACTIONS(4472),
    [sym_case] = ACTIONS(4472),
    [sym_cast] = ACTIONS(4472),
    [sym_class] = ACTIONS(4472),
    [sym_const] = ACTIONS(4472),
    [sym_continue] = ACTIONS(4472),
    [sym_debug] = ACTIONS(4472),
    [sym_default] = ACTIONS(4472),
    [sym_delegate] = ACTIONS(4472),
    [sym_delete] = ACTIONS(4472),
    [sym_deprecated] = ACTIONS(4472),
    [sym_do] = ACTIONS(4472),
    [sym_else] = ACTIONS(4472),
    [sym_enum] = ACTIONS(4472),
    [sym_export] = ACTIONS(4472),
    [sym_extern] = ACTIONS(4472),
    [sym_final] = ACTIONS(4472),
    [sym_for] = ACTIONS(4472),
    [sym_foreach] = ACTIONS(4472),
    [sym_foreach_reverse] = ACTIONS(4472),
    [sym_function] = ACTIONS(4472),
    [sym_goto] = ACTIONS(4472),
    [sym_if] = ACTIONS(4472),
    [sym_immutable] = ACTIONS(4472),
    [sym_import] = ACTIONS(4472),
    [sym_in] = ACTIONS(4472),
    [sym_inout] = ACTIONS(4472),
    [sym_interface] = ACTIONS(4472),
    [sym_invariant] = ACTIONS(4472),
    [sym_is] = ACTIONS(4472),
    [sym_mixin] = ACTIONS(4472),
    [sym_new] = ACTIONS(4472),
    [sym_nothrow] = ACTIONS(4472),
    [sym_out] = ACTIONS(4472),
    [sym_override] = ACTIONS(4472),
    [sym_package] = ACTIONS(4472),
    [sym_pragma] = ACTIONS(4472),
    [sym_private] = ACTIONS(4472),
    [sym_protected] = ACTIONS(4472),
    [sym_public] = ACTIONS(4472),
    [sym_pure] = ACTIONS(4472),
    [sym_ref] = ACTIONS(4472),
    [sym_return] = ACTIONS(4472),
    [sym_scope] = ACTIONS(4472),
    [sym_shared] = ACTIONS(4472),
    [sym_static] = ACTIONS(4472),
    [sym_struct] = ACTIONS(4472),
    [sym_switch] = ACTIONS(4472),
    [sym_synchronized] = ACTIONS(4472),
    [sym_template] = ACTIONS(4472),
    [sym_throw] = ACTIONS(4472),
    [sym_try] = ACTIONS(4472),
    [sym_typeid] = ACTIONS(4472),
    [sym_typeof] = ACTIONS(4472),
    [sym_union] = ACTIONS(4472),
    [sym_unittest] = ACTIONS(4472),
    [sym_version] = ACTIONS(4472),
    [sym_while] = ACTIONS(4472),
    [sym_with] = ACTIONS(4472),
    [sym_gshared] = ACTIONS(4472),
    [sym_traits] = ACTIONS(4472),
    [sym_vector] = ACTIONS(4472),
    [sym_void] = ACTIONS(4472),
    [anon_sym_BQUOTE] = ACTIONS(4474),
    [anon_sym_r_DQUOTE] = ACTIONS(4474),
    [anon_sym_x_DQUOTE] = ACTIONS(4474),
    [anon_sym_DQUOTE] = ACTIONS(4474),
    [anon_sym_i_BQUOTE] = ACTIONS(4474),
    [anon_sym_i_DQUOTE] = ACTIONS(4474),
    [anon_sym_iq_LBRACE] = ACTIONS(4474),
    [aux_sym_char_literal_token1] = ACTIONS(4474),
    [anon_sym_SQUOTE] = ACTIONS(4472),
    [anon_sym___DATE__] = ACTIONS(4472),
    [anon_sym___FILE__] = ACTIONS(4472),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4472),
    [anon_sym___FUNCTION__] = ACTIONS(4472),
    [anon_sym___LINE__] = ACTIONS(4472),
    [anon_sym___MODULE__] = ACTIONS(4472),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4472),
    [anon_sym___TIME__] = ACTIONS(4472),
    [anon_sym___TIMESTAMP__] = ACTIONS(4472),
    [anon_sym___VENDOR__] = ACTIONS(4472),
    [anon_sym___VERSION__] = ACTIONS(4472),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4474),
    [sym_float_literal] = ACTIONS(4474),
    [sym__string] = ACTIONS(4474),
  },
  [1757] = {
    [sym_identifier] = ACTIONS(4496),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4498),
    [anon_sym_RBRACE] = ACTIONS(4498),
    [anon_sym_LBRACE] = ACTIONS(4498),
    [anon_sym_DOT] = ACTIONS(4498),
    [anon_sym_AMP] = ACTIONS(4498),
    [anon_sym_DASH] = ACTIONS(4496),
    [anon_sym_DASH_DASH] = ACTIONS(4498),
    [anon_sym_PLUS] = ACTIONS(4496),
    [anon_sym_PLUS_PLUS] = ACTIONS(4498),
    [anon_sym_BANG] = ACTIONS(4498),
    [anon_sym_LPAREN] = ACTIONS(4498),
    [anon_sym_RPAREN] = ACTIONS(4498),
    [anon_sym_LBRACK] = ACTIONS(4498),
    [anon_sym_SEMI] = ACTIONS(4498),
    [anon_sym_DOLLAR] = ACTIONS(4498),
    [anon_sym_STAR] = ACTIONS(4498),
    [anon_sym_TILDE] = ACTIONS(4498),
    [anon_sym_AT] = ACTIONS(4498),
    [sym_bool] = ACTIONS(4496),
    [sym_byte] = ACTIONS(4496),
    [sym_ubyte] = ACTIONS(4496),
    [sym_char] = ACTIONS(4496),
    [sym_short] = ACTIONS(4496),
    [sym_ushort] = ACTIONS(4496),
    [sym_int] = ACTIONS(4496),
    [sym_uint] = ACTIONS(4496),
    [sym_long] = ACTIONS(4496),
    [sym_ulong] = ACTIONS(4496),
    [sym_cent] = ACTIONS(4496),
    [sym_ucent] = ACTIONS(4496),
    [sym_wchar] = ACTIONS(4496),
    [sym_dchar] = ACTIONS(4496),
    [sym_float] = ACTIONS(4496),
    [sym_double] = ACTIONS(4496),
    [sym_real] = ACTIONS(4496),
    [sym_ifloat] = ACTIONS(4496),
    [sym_idouble] = ACTIONS(4496),
    [sym_ireal] = ACTIONS(4496),
    [sym_cfloat] = ACTIONS(4496),
    [sym_cdouble] = ACTIONS(4496),
    [sym_creal] = ACTIONS(4496),
    [sym_size_t] = ACTIONS(4496),
    [sym_ptrdiff_t] = ACTIONS(4496),
    [sym_string] = ACTIONS(4496),
    [sym_cstring] = ACTIONS(4496),
    [sym_dstring] = ACTIONS(4496),
    [sym_wstring] = ACTIONS(4496),
    [sym_noreturn] = ACTIONS(4496),
    [sym_true] = ACTIONS(4496),
    [sym_false] = ACTIONS(4496),
    [sym_null] = ACTIONS(4496),
    [sym_super] = ACTIONS(4496),
    [sym_this] = ACTIONS(4496),
    [sym_abstract] = ACTIONS(4496),
    [sym_alias] = ACTIONS(4496),
    [sym_align] = ACTIONS(4496),
    [sym_asm] = ACTIONS(4496),
    [sym_assert] = ACTIONS(4496),
    [sym_auto] = ACTIONS(4496),
    [sym_break] = ACTIONS(4496),
    [sym_case] = ACTIONS(4496),
    [sym_cast] = ACTIONS(4496),
    [sym_class] = ACTIONS(4496),
    [sym_const] = ACTIONS(4496),
    [sym_continue] = ACTIONS(4496),
    [sym_debug] = ACTIONS(4496),
    [sym_default] = ACTIONS(4496),
    [sym_delegate] = ACTIONS(4496),
    [sym_delete] = ACTIONS(4496),
    [sym_deprecated] = ACTIONS(4496),
    [sym_do] = ACTIONS(4496),
    [sym_else] = ACTIONS(4496),
    [sym_enum] = ACTIONS(4496),
    [sym_export] = ACTIONS(4496),
    [sym_extern] = ACTIONS(4496),
    [sym_final] = ACTIONS(4496),
    [sym_for] = ACTIONS(4496),
    [sym_foreach] = ACTIONS(4496),
    [sym_foreach_reverse] = ACTIONS(4496),
    [sym_function] = ACTIONS(4496),
    [sym_goto] = ACTIONS(4496),
    [sym_if] = ACTIONS(4496),
    [sym_immutable] = ACTIONS(4496),
    [sym_import] = ACTIONS(4496),
    [sym_in] = ACTIONS(4496),
    [sym_inout] = ACTIONS(4496),
    [sym_interface] = ACTIONS(4496),
    [sym_invariant] = ACTIONS(4496),
    [sym_is] = ACTIONS(4496),
    [sym_mixin] = ACTIONS(4496),
    [sym_new] = ACTIONS(4496),
    [sym_nothrow] = ACTIONS(4496),
    [sym_out] = ACTIONS(4496),
    [sym_override] = ACTIONS(4496),
    [sym_package] = ACTIONS(4496),
    [sym_pragma] = ACTIONS(4496),
    [sym_private] = ACTIONS(4496),
    [sym_protected] = ACTIONS(4496),
    [sym_public] = ACTIONS(4496),
    [sym_pure] = ACTIONS(4496),
    [sym_ref] = ACTIONS(4496),
    [sym_return] = ACTIONS(4496),
    [sym_scope] = ACTIONS(4496),
    [sym_shared] = ACTIONS(4496),
    [sym_static] = ACTIONS(4496),
    [sym_struct] = ACTIONS(4496),
    [sym_switch] = ACTIONS(4496),
    [sym_synchronized] = ACTIONS(4496),
    [sym_template] = ACTIONS(4496),
    [sym_throw] = ACTIONS(4496),
    [sym_try] = ACTIONS(4496),
    [sym_typeid] = ACTIONS(4496),
    [sym_typeof] = ACTIONS(4496),
    [sym_union] = ACTIONS(4496),
    [sym_unittest] = ACTIONS(4496),
    [sym_version] = ACTIONS(4496),
    [sym_while] = ACTIONS(4496),
    [sym_with] = ACTIONS(4496),
    [sym_gshared] = ACTIONS(4496),
    [sym_traits] = ACTIONS(4496),
    [sym_vector] = ACTIONS(4496),
    [sym_void] = ACTIONS(4496),
    [anon_sym_BQUOTE] = ACTIONS(4498),
    [anon_sym_r_DQUOTE] = ACTIONS(4498),
    [anon_sym_x_DQUOTE] = ACTIONS(4498),
    [anon_sym_DQUOTE] = ACTIONS(4498),
    [anon_sym_i_BQUOTE] = ACTIONS(4498),
    [anon_sym_i_DQUOTE] = ACTIONS(4498),
    [anon_sym_iq_LBRACE] = ACTIONS(4498),
    [aux_sym_char_literal_token1] = ACTIONS(4498),
    [anon_sym_SQUOTE] = ACTIONS(4496),
    [anon_sym___DATE__] = ACTIONS(4496),
    [anon_sym___FILE__] = ACTIONS(4496),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4496),
    [anon_sym___FUNCTION__] = ACTIONS(4496),
    [anon_sym___LINE__] = ACTIONS(4496),
    [anon_sym___MODULE__] = ACTIONS(4496),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4496),
    [anon_sym___TIME__] = ACTIONS(4496),
    [anon_sym___TIMESTAMP__] = ACTIONS(4496),
    [anon_sym___VENDOR__] = ACTIONS(4496),
    [anon_sym___VERSION__] = ACTIONS(4496),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4498),
    [sym_float_literal] = ACTIONS(4498),
    [sym__string] = ACTIONS(4498),
  },
  [1758] = {
    [sym_identifier] = ACTIONS(4610),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4612),
    [anon_sym_RBRACE] = ACTIONS(4612),
    [anon_sym_LBRACE] = ACTIONS(4612),
    [anon_sym_DOT] = ACTIONS(4612),
    [anon_sym_AMP] = ACTIONS(4612),
    [anon_sym_DASH] = ACTIONS(4610),
    [anon_sym_DASH_DASH] = ACTIONS(4612),
    [anon_sym_PLUS] = ACTIONS(4610),
    [anon_sym_PLUS_PLUS] = ACTIONS(4612),
    [anon_sym_BANG] = ACTIONS(4612),
    [anon_sym_LPAREN] = ACTIONS(4612),
    [anon_sym_RPAREN] = ACTIONS(4612),
    [anon_sym_LBRACK] = ACTIONS(4612),
    [anon_sym_SEMI] = ACTIONS(4612),
    [anon_sym_DOLLAR] = ACTIONS(4612),
    [anon_sym_STAR] = ACTIONS(4612),
    [anon_sym_TILDE] = ACTIONS(4612),
    [anon_sym_AT] = ACTIONS(4612),
    [sym_bool] = ACTIONS(4610),
    [sym_byte] = ACTIONS(4610),
    [sym_ubyte] = ACTIONS(4610),
    [sym_char] = ACTIONS(4610),
    [sym_short] = ACTIONS(4610),
    [sym_ushort] = ACTIONS(4610),
    [sym_int] = ACTIONS(4610),
    [sym_uint] = ACTIONS(4610),
    [sym_long] = ACTIONS(4610),
    [sym_ulong] = ACTIONS(4610),
    [sym_cent] = ACTIONS(4610),
    [sym_ucent] = ACTIONS(4610),
    [sym_wchar] = ACTIONS(4610),
    [sym_dchar] = ACTIONS(4610),
    [sym_float] = ACTIONS(4610),
    [sym_double] = ACTIONS(4610),
    [sym_real] = ACTIONS(4610),
    [sym_ifloat] = ACTIONS(4610),
    [sym_idouble] = ACTIONS(4610),
    [sym_ireal] = ACTIONS(4610),
    [sym_cfloat] = ACTIONS(4610),
    [sym_cdouble] = ACTIONS(4610),
    [sym_creal] = ACTIONS(4610),
    [sym_size_t] = ACTIONS(4610),
    [sym_ptrdiff_t] = ACTIONS(4610),
    [sym_string] = ACTIONS(4610),
    [sym_cstring] = ACTIONS(4610),
    [sym_dstring] = ACTIONS(4610),
    [sym_wstring] = ACTIONS(4610),
    [sym_noreturn] = ACTIONS(4610),
    [sym_true] = ACTIONS(4610),
    [sym_false] = ACTIONS(4610),
    [sym_null] = ACTIONS(4610),
    [sym_super] = ACTIONS(4610),
    [sym_this] = ACTIONS(4610),
    [sym_abstract] = ACTIONS(4610),
    [sym_alias] = ACTIONS(4610),
    [sym_align] = ACTIONS(4610),
    [sym_asm] = ACTIONS(4610),
    [sym_assert] = ACTIONS(4610),
    [sym_auto] = ACTIONS(4610),
    [sym_break] = ACTIONS(4610),
    [sym_case] = ACTIONS(4610),
    [sym_cast] = ACTIONS(4610),
    [sym_class] = ACTIONS(4610),
    [sym_const] = ACTIONS(4610),
    [sym_continue] = ACTIONS(4610),
    [sym_debug] = ACTIONS(4610),
    [sym_default] = ACTIONS(4610),
    [sym_delegate] = ACTIONS(4610),
    [sym_delete] = ACTIONS(4610),
    [sym_deprecated] = ACTIONS(4610),
    [sym_do] = ACTIONS(4610),
    [sym_else] = ACTIONS(4610),
    [sym_enum] = ACTIONS(4610),
    [sym_export] = ACTIONS(4610),
    [sym_extern] = ACTIONS(4610),
    [sym_final] = ACTIONS(4610),
    [sym_for] = ACTIONS(4610),
    [sym_foreach] = ACTIONS(4610),
    [sym_foreach_reverse] = ACTIONS(4610),
    [sym_function] = ACTIONS(4610),
    [sym_goto] = ACTIONS(4610),
    [sym_if] = ACTIONS(4610),
    [sym_immutable] = ACTIONS(4610),
    [sym_import] = ACTIONS(4610),
    [sym_in] = ACTIONS(4610),
    [sym_inout] = ACTIONS(4610),
    [sym_interface] = ACTIONS(4610),
    [sym_invariant] = ACTIONS(4610),
    [sym_is] = ACTIONS(4610),
    [sym_mixin] = ACTIONS(4610),
    [sym_new] = ACTIONS(4610),
    [sym_nothrow] = ACTIONS(4610),
    [sym_out] = ACTIONS(4610),
    [sym_override] = ACTIONS(4610),
    [sym_package] = ACTIONS(4610),
    [sym_pragma] = ACTIONS(4610),
    [sym_private] = ACTIONS(4610),
    [sym_protected] = ACTIONS(4610),
    [sym_public] = ACTIONS(4610),
    [sym_pure] = ACTIONS(4610),
    [sym_ref] = ACTIONS(4610),
    [sym_return] = ACTIONS(4610),
    [sym_scope] = ACTIONS(4610),
    [sym_shared] = ACTIONS(4610),
    [sym_static] = ACTIONS(4610),
    [sym_struct] = ACTIONS(4610),
    [sym_switch] = ACTIONS(4610),
    [sym_synchronized] = ACTIONS(4610),
    [sym_template] = ACTIONS(4610),
    [sym_throw] = ACTIONS(4610),
    [sym_try] = ACTIONS(4610),
    [sym_typeid] = ACTIONS(4610),
    [sym_typeof] = ACTIONS(4610),
    [sym_union] = ACTIONS(4610),
    [sym_unittest] = ACTIONS(4610),
    [sym_version] = ACTIONS(4610),
    [sym_while] = ACTIONS(4610),
    [sym_with] = ACTIONS(4610),
    [sym_gshared] = ACTIONS(4610),
    [sym_traits] = ACTIONS(4610),
    [sym_vector] = ACTIONS(4610),
    [sym_void] = ACTIONS(4610),
    [anon_sym_BQUOTE] = ACTIONS(4612),
    [anon_sym_r_DQUOTE] = ACTIONS(4612),
    [anon_sym_x_DQUOTE] = ACTIONS(4612),
    [anon_sym_DQUOTE] = ACTIONS(4612),
    [anon_sym_i_BQUOTE] = ACTIONS(4612),
    [anon_sym_i_DQUOTE] = ACTIONS(4612),
    [anon_sym_iq_LBRACE] = ACTIONS(4612),
    [aux_sym_char_literal_token1] = ACTIONS(4612),
    [anon_sym_SQUOTE] = ACTIONS(4610),
    [anon_sym___DATE__] = ACTIONS(4610),
    [anon_sym___FILE__] = ACTIONS(4610),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4610),
    [anon_sym___FUNCTION__] = ACTIONS(4610),
    [anon_sym___LINE__] = ACTIONS(4610),
    [anon_sym___MODULE__] = ACTIONS(4610),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4610),
    [anon_sym___TIME__] = ACTIONS(4610),
    [anon_sym___TIMESTAMP__] = ACTIONS(4610),
    [anon_sym___VENDOR__] = ACTIONS(4610),
    [anon_sym___VERSION__] = ACTIONS(4610),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4612),
    [sym_float_literal] = ACTIONS(4612),
    [sym__string] = ACTIONS(4612),
  },
  [1759] = {
    [sym_identifier] = ACTIONS(5012),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5014),
    [anon_sym_RBRACE] = ACTIONS(5014),
    [anon_sym_LBRACE] = ACTIONS(5014),
    [anon_sym_DOT] = ACTIONS(5014),
    [anon_sym_AMP] = ACTIONS(5014),
    [anon_sym_DASH] = ACTIONS(5012),
    [anon_sym_DASH_DASH] = ACTIONS(5014),
    [anon_sym_PLUS] = ACTIONS(5012),
    [anon_sym_PLUS_PLUS] = ACTIONS(5014),
    [anon_sym_BANG] = ACTIONS(5014),
    [anon_sym_LPAREN] = ACTIONS(5014),
    [anon_sym_RPAREN] = ACTIONS(5014),
    [anon_sym_LBRACK] = ACTIONS(5014),
    [anon_sym_SEMI] = ACTIONS(5014),
    [anon_sym_DOLLAR] = ACTIONS(5014),
    [anon_sym_STAR] = ACTIONS(5014),
    [anon_sym_TILDE] = ACTIONS(5014),
    [anon_sym_AT] = ACTIONS(5014),
    [sym_bool] = ACTIONS(5012),
    [sym_byte] = ACTIONS(5012),
    [sym_ubyte] = ACTIONS(5012),
    [sym_char] = ACTIONS(5012),
    [sym_short] = ACTIONS(5012),
    [sym_ushort] = ACTIONS(5012),
    [sym_int] = ACTIONS(5012),
    [sym_uint] = ACTIONS(5012),
    [sym_long] = ACTIONS(5012),
    [sym_ulong] = ACTIONS(5012),
    [sym_cent] = ACTIONS(5012),
    [sym_ucent] = ACTIONS(5012),
    [sym_wchar] = ACTIONS(5012),
    [sym_dchar] = ACTIONS(5012),
    [sym_float] = ACTIONS(5012),
    [sym_double] = ACTIONS(5012),
    [sym_real] = ACTIONS(5012),
    [sym_ifloat] = ACTIONS(5012),
    [sym_idouble] = ACTIONS(5012),
    [sym_ireal] = ACTIONS(5012),
    [sym_cfloat] = ACTIONS(5012),
    [sym_cdouble] = ACTIONS(5012),
    [sym_creal] = ACTIONS(5012),
    [sym_size_t] = ACTIONS(5012),
    [sym_ptrdiff_t] = ACTIONS(5012),
    [sym_string] = ACTIONS(5012),
    [sym_cstring] = ACTIONS(5012),
    [sym_dstring] = ACTIONS(5012),
    [sym_wstring] = ACTIONS(5012),
    [sym_noreturn] = ACTIONS(5012),
    [sym_true] = ACTIONS(5012),
    [sym_false] = ACTIONS(5012),
    [sym_null] = ACTIONS(5012),
    [sym_super] = ACTIONS(5012),
    [sym_this] = ACTIONS(5012),
    [sym_abstract] = ACTIONS(5012),
    [sym_alias] = ACTIONS(5012),
    [sym_align] = ACTIONS(5012),
    [sym_asm] = ACTIONS(5012),
    [sym_assert] = ACTIONS(5012),
    [sym_auto] = ACTIONS(5012),
    [sym_break] = ACTIONS(5012),
    [sym_case] = ACTIONS(5012),
    [sym_cast] = ACTIONS(5012),
    [sym_class] = ACTIONS(5012),
    [sym_const] = ACTIONS(5012),
    [sym_continue] = ACTIONS(5012),
    [sym_debug] = ACTIONS(5012),
    [sym_default] = ACTIONS(5012),
    [sym_delegate] = ACTIONS(5012),
    [sym_delete] = ACTIONS(5012),
    [sym_deprecated] = ACTIONS(5012),
    [sym_do] = ACTIONS(5012),
    [sym_else] = ACTIONS(5012),
    [sym_enum] = ACTIONS(5012),
    [sym_export] = ACTIONS(5012),
    [sym_extern] = ACTIONS(5012),
    [sym_final] = ACTIONS(5012),
    [sym_for] = ACTIONS(5012),
    [sym_foreach] = ACTIONS(5012),
    [sym_foreach_reverse] = ACTIONS(5012),
    [sym_function] = ACTIONS(5012),
    [sym_goto] = ACTIONS(5012),
    [sym_if] = ACTIONS(5012),
    [sym_immutable] = ACTIONS(5012),
    [sym_import] = ACTIONS(5012),
    [sym_in] = ACTIONS(5012),
    [sym_inout] = ACTIONS(5012),
    [sym_interface] = ACTIONS(5012),
    [sym_invariant] = ACTIONS(5012),
    [sym_is] = ACTIONS(5012),
    [sym_mixin] = ACTIONS(5012),
    [sym_new] = ACTIONS(5012),
    [sym_nothrow] = ACTIONS(5012),
    [sym_out] = ACTIONS(5012),
    [sym_override] = ACTIONS(5012),
    [sym_package] = ACTIONS(5012),
    [sym_pragma] = ACTIONS(5012),
    [sym_private] = ACTIONS(5012),
    [sym_protected] = ACTIONS(5012),
    [sym_public] = ACTIONS(5012),
    [sym_pure] = ACTIONS(5012),
    [sym_ref] = ACTIONS(5012),
    [sym_return] = ACTIONS(5012),
    [sym_scope] = ACTIONS(5012),
    [sym_shared] = ACTIONS(5012),
    [sym_static] = ACTIONS(5012),
    [sym_struct] = ACTIONS(5012),
    [sym_switch] = ACTIONS(5012),
    [sym_synchronized] = ACTIONS(5012),
    [sym_template] = ACTIONS(5012),
    [sym_throw] = ACTIONS(5012),
    [sym_try] = ACTIONS(5012),
    [sym_typeid] = ACTIONS(5012),
    [sym_typeof] = ACTIONS(5012),
    [sym_union] = ACTIONS(5012),
    [sym_unittest] = ACTIONS(5012),
    [sym_version] = ACTIONS(5012),
    [sym_while] = ACTIONS(5012),
    [sym_with] = ACTIONS(5012),
    [sym_gshared] = ACTIONS(5012),
    [sym_traits] = ACTIONS(5012),
    [sym_vector] = ACTIONS(5012),
    [sym_void] = ACTIONS(5012),
    [anon_sym_BQUOTE] = ACTIONS(5014),
    [anon_sym_r_DQUOTE] = ACTIONS(5014),
    [anon_sym_x_DQUOTE] = ACTIONS(5014),
    [anon_sym_DQUOTE] = ACTIONS(5014),
    [anon_sym_i_BQUOTE] = ACTIONS(5014),
    [anon_sym_i_DQUOTE] = ACTIONS(5014),
    [anon_sym_iq_LBRACE] = ACTIONS(5014),
    [aux_sym_char_literal_token1] = ACTIONS(5014),
    [anon_sym_SQUOTE] = ACTIONS(5012),
    [anon_sym___DATE__] = ACTIONS(5012),
    [anon_sym___FILE__] = ACTIONS(5012),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5012),
    [anon_sym___FUNCTION__] = ACTIONS(5012),
    [anon_sym___LINE__] = ACTIONS(5012),
    [anon_sym___MODULE__] = ACTIONS(5012),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5012),
    [anon_sym___TIME__] = ACTIONS(5012),
    [anon_sym___TIMESTAMP__] = ACTIONS(5012),
    [anon_sym___VENDOR__] = ACTIONS(5012),
    [anon_sym___VERSION__] = ACTIONS(5012),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5014),
    [sym_float_literal] = ACTIONS(5014),
    [sym__string] = ACTIONS(5014),
  },
  [1760] = {
    [sym_identifier] = ACTIONS(4500),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4502),
    [anon_sym_RBRACE] = ACTIONS(4502),
    [anon_sym_LBRACE] = ACTIONS(4502),
    [anon_sym_DOT] = ACTIONS(4502),
    [anon_sym_AMP] = ACTIONS(4502),
    [anon_sym_DASH] = ACTIONS(4500),
    [anon_sym_DASH_DASH] = ACTIONS(4502),
    [anon_sym_PLUS] = ACTIONS(4500),
    [anon_sym_PLUS_PLUS] = ACTIONS(4502),
    [anon_sym_BANG] = ACTIONS(4502),
    [anon_sym_LPAREN] = ACTIONS(4502),
    [anon_sym_RPAREN] = ACTIONS(4502),
    [anon_sym_LBRACK] = ACTIONS(4502),
    [anon_sym_SEMI] = ACTIONS(4502),
    [anon_sym_DOLLAR] = ACTIONS(4502),
    [anon_sym_STAR] = ACTIONS(4502),
    [anon_sym_TILDE] = ACTIONS(4502),
    [anon_sym_AT] = ACTIONS(4502),
    [sym_bool] = ACTIONS(4500),
    [sym_byte] = ACTIONS(4500),
    [sym_ubyte] = ACTIONS(4500),
    [sym_char] = ACTIONS(4500),
    [sym_short] = ACTIONS(4500),
    [sym_ushort] = ACTIONS(4500),
    [sym_int] = ACTIONS(4500),
    [sym_uint] = ACTIONS(4500),
    [sym_long] = ACTIONS(4500),
    [sym_ulong] = ACTIONS(4500),
    [sym_cent] = ACTIONS(4500),
    [sym_ucent] = ACTIONS(4500),
    [sym_wchar] = ACTIONS(4500),
    [sym_dchar] = ACTIONS(4500),
    [sym_float] = ACTIONS(4500),
    [sym_double] = ACTIONS(4500),
    [sym_real] = ACTIONS(4500),
    [sym_ifloat] = ACTIONS(4500),
    [sym_idouble] = ACTIONS(4500),
    [sym_ireal] = ACTIONS(4500),
    [sym_cfloat] = ACTIONS(4500),
    [sym_cdouble] = ACTIONS(4500),
    [sym_creal] = ACTIONS(4500),
    [sym_size_t] = ACTIONS(4500),
    [sym_ptrdiff_t] = ACTIONS(4500),
    [sym_string] = ACTIONS(4500),
    [sym_cstring] = ACTIONS(4500),
    [sym_dstring] = ACTIONS(4500),
    [sym_wstring] = ACTIONS(4500),
    [sym_noreturn] = ACTIONS(4500),
    [sym_true] = ACTIONS(4500),
    [sym_false] = ACTIONS(4500),
    [sym_null] = ACTIONS(4500),
    [sym_super] = ACTIONS(4500),
    [sym_this] = ACTIONS(4500),
    [sym_abstract] = ACTIONS(4500),
    [sym_alias] = ACTIONS(4500),
    [sym_align] = ACTIONS(4500),
    [sym_asm] = ACTIONS(4500),
    [sym_assert] = ACTIONS(4500),
    [sym_auto] = ACTIONS(4500),
    [sym_break] = ACTIONS(4500),
    [sym_case] = ACTIONS(4500),
    [sym_cast] = ACTIONS(4500),
    [sym_class] = ACTIONS(4500),
    [sym_const] = ACTIONS(4500),
    [sym_continue] = ACTIONS(4500),
    [sym_debug] = ACTIONS(4500),
    [sym_default] = ACTIONS(4500),
    [sym_delegate] = ACTIONS(4500),
    [sym_delete] = ACTIONS(4500),
    [sym_deprecated] = ACTIONS(4500),
    [sym_do] = ACTIONS(4500),
    [sym_else] = ACTIONS(4500),
    [sym_enum] = ACTIONS(4500),
    [sym_export] = ACTIONS(4500),
    [sym_extern] = ACTIONS(4500),
    [sym_final] = ACTIONS(4500),
    [sym_for] = ACTIONS(4500),
    [sym_foreach] = ACTIONS(4500),
    [sym_foreach_reverse] = ACTIONS(4500),
    [sym_function] = ACTIONS(4500),
    [sym_goto] = ACTIONS(4500),
    [sym_if] = ACTIONS(4500),
    [sym_immutable] = ACTIONS(4500),
    [sym_import] = ACTIONS(4500),
    [sym_in] = ACTIONS(4500),
    [sym_inout] = ACTIONS(4500),
    [sym_interface] = ACTIONS(4500),
    [sym_invariant] = ACTIONS(4500),
    [sym_is] = ACTIONS(4500),
    [sym_mixin] = ACTIONS(4500),
    [sym_new] = ACTIONS(4500),
    [sym_nothrow] = ACTIONS(4500),
    [sym_out] = ACTIONS(4500),
    [sym_override] = ACTIONS(4500),
    [sym_package] = ACTIONS(4500),
    [sym_pragma] = ACTIONS(4500),
    [sym_private] = ACTIONS(4500),
    [sym_protected] = ACTIONS(4500),
    [sym_public] = ACTIONS(4500),
    [sym_pure] = ACTIONS(4500),
    [sym_ref] = ACTIONS(4500),
    [sym_return] = ACTIONS(4500),
    [sym_scope] = ACTIONS(4500),
    [sym_shared] = ACTIONS(4500),
    [sym_static] = ACTIONS(4500),
    [sym_struct] = ACTIONS(4500),
    [sym_switch] = ACTIONS(4500),
    [sym_synchronized] = ACTIONS(4500),
    [sym_template] = ACTIONS(4500),
    [sym_throw] = ACTIONS(4500),
    [sym_try] = ACTIONS(4500),
    [sym_typeid] = ACTIONS(4500),
    [sym_typeof] = ACTIONS(4500),
    [sym_union] = ACTIONS(4500),
    [sym_unittest] = ACTIONS(4500),
    [sym_version] = ACTIONS(4500),
    [sym_while] = ACTIONS(4500),
    [sym_with] = ACTIONS(4500),
    [sym_gshared] = ACTIONS(4500),
    [sym_traits] = ACTIONS(4500),
    [sym_vector] = ACTIONS(4500),
    [sym_void] = ACTIONS(4500),
    [anon_sym_BQUOTE] = ACTIONS(4502),
    [anon_sym_r_DQUOTE] = ACTIONS(4502),
    [anon_sym_x_DQUOTE] = ACTIONS(4502),
    [anon_sym_DQUOTE] = ACTIONS(4502),
    [anon_sym_i_BQUOTE] = ACTIONS(4502),
    [anon_sym_i_DQUOTE] = ACTIONS(4502),
    [anon_sym_iq_LBRACE] = ACTIONS(4502),
    [aux_sym_char_literal_token1] = ACTIONS(4502),
    [anon_sym_SQUOTE] = ACTIONS(4500),
    [anon_sym___DATE__] = ACTIONS(4500),
    [anon_sym___FILE__] = ACTIONS(4500),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4500),
    [anon_sym___FUNCTION__] = ACTIONS(4500),
    [anon_sym___LINE__] = ACTIONS(4500),
    [anon_sym___MODULE__] = ACTIONS(4500),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4500),
    [anon_sym___TIME__] = ACTIONS(4500),
    [anon_sym___TIMESTAMP__] = ACTIONS(4500),
    [anon_sym___VENDOR__] = ACTIONS(4500),
    [anon_sym___VERSION__] = ACTIONS(4500),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4502),
    [sym_float_literal] = ACTIONS(4502),
    [sym__string] = ACTIONS(4502),
  },
  [1761] = {
    [sym_identifier] = ACTIONS(4970),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4972),
    [anon_sym_RBRACE] = ACTIONS(4972),
    [anon_sym_LBRACE] = ACTIONS(4972),
    [anon_sym_DOT] = ACTIONS(4972),
    [anon_sym_AMP] = ACTIONS(4972),
    [anon_sym_DASH] = ACTIONS(4970),
    [anon_sym_DASH_DASH] = ACTIONS(4972),
    [anon_sym_PLUS] = ACTIONS(4970),
    [anon_sym_PLUS_PLUS] = ACTIONS(4972),
    [anon_sym_BANG] = ACTIONS(4972),
    [anon_sym_LPAREN] = ACTIONS(4972),
    [anon_sym_RPAREN] = ACTIONS(4972),
    [anon_sym_LBRACK] = ACTIONS(4972),
    [anon_sym_SEMI] = ACTIONS(4972),
    [anon_sym_DOLLAR] = ACTIONS(4972),
    [anon_sym_STAR] = ACTIONS(4972),
    [anon_sym_TILDE] = ACTIONS(4972),
    [anon_sym_AT] = ACTIONS(4972),
    [sym_bool] = ACTIONS(4970),
    [sym_byte] = ACTIONS(4970),
    [sym_ubyte] = ACTIONS(4970),
    [sym_char] = ACTIONS(4970),
    [sym_short] = ACTIONS(4970),
    [sym_ushort] = ACTIONS(4970),
    [sym_int] = ACTIONS(4970),
    [sym_uint] = ACTIONS(4970),
    [sym_long] = ACTIONS(4970),
    [sym_ulong] = ACTIONS(4970),
    [sym_cent] = ACTIONS(4970),
    [sym_ucent] = ACTIONS(4970),
    [sym_wchar] = ACTIONS(4970),
    [sym_dchar] = ACTIONS(4970),
    [sym_float] = ACTIONS(4970),
    [sym_double] = ACTIONS(4970),
    [sym_real] = ACTIONS(4970),
    [sym_ifloat] = ACTIONS(4970),
    [sym_idouble] = ACTIONS(4970),
    [sym_ireal] = ACTIONS(4970),
    [sym_cfloat] = ACTIONS(4970),
    [sym_cdouble] = ACTIONS(4970),
    [sym_creal] = ACTIONS(4970),
    [sym_size_t] = ACTIONS(4970),
    [sym_ptrdiff_t] = ACTIONS(4970),
    [sym_string] = ACTIONS(4970),
    [sym_cstring] = ACTIONS(4970),
    [sym_dstring] = ACTIONS(4970),
    [sym_wstring] = ACTIONS(4970),
    [sym_noreturn] = ACTIONS(4970),
    [sym_true] = ACTIONS(4970),
    [sym_false] = ACTIONS(4970),
    [sym_null] = ACTIONS(4970),
    [sym_super] = ACTIONS(4970),
    [sym_this] = ACTIONS(4970),
    [sym_abstract] = ACTIONS(4970),
    [sym_alias] = ACTIONS(4970),
    [sym_align] = ACTIONS(4970),
    [sym_asm] = ACTIONS(4970),
    [sym_assert] = ACTIONS(4970),
    [sym_auto] = ACTIONS(4970),
    [sym_break] = ACTIONS(4970),
    [sym_case] = ACTIONS(4970),
    [sym_cast] = ACTIONS(4970),
    [sym_class] = ACTIONS(4970),
    [sym_const] = ACTIONS(4970),
    [sym_continue] = ACTIONS(4970),
    [sym_debug] = ACTIONS(4970),
    [sym_default] = ACTIONS(4970),
    [sym_delegate] = ACTIONS(4970),
    [sym_delete] = ACTIONS(4970),
    [sym_deprecated] = ACTIONS(4970),
    [sym_do] = ACTIONS(4970),
    [sym_else] = ACTIONS(4970),
    [sym_enum] = ACTIONS(4970),
    [sym_export] = ACTIONS(4970),
    [sym_extern] = ACTIONS(4970),
    [sym_final] = ACTIONS(4970),
    [sym_for] = ACTIONS(4970),
    [sym_foreach] = ACTIONS(4970),
    [sym_foreach_reverse] = ACTIONS(4970),
    [sym_function] = ACTIONS(4970),
    [sym_goto] = ACTIONS(4970),
    [sym_if] = ACTIONS(4970),
    [sym_immutable] = ACTIONS(4970),
    [sym_import] = ACTIONS(4970),
    [sym_in] = ACTIONS(4970),
    [sym_inout] = ACTIONS(4970),
    [sym_interface] = ACTIONS(4970),
    [sym_invariant] = ACTIONS(4970),
    [sym_is] = ACTIONS(4970),
    [sym_mixin] = ACTIONS(4970),
    [sym_new] = ACTIONS(4970),
    [sym_nothrow] = ACTIONS(4970),
    [sym_out] = ACTIONS(4970),
    [sym_override] = ACTIONS(4970),
    [sym_package] = ACTIONS(4970),
    [sym_pragma] = ACTIONS(4970),
    [sym_private] = ACTIONS(4970),
    [sym_protected] = ACTIONS(4970),
    [sym_public] = ACTIONS(4970),
    [sym_pure] = ACTIONS(4970),
    [sym_ref] = ACTIONS(4970),
    [sym_return] = ACTIONS(4970),
    [sym_scope] = ACTIONS(4970),
    [sym_shared] = ACTIONS(4970),
    [sym_static] = ACTIONS(4970),
    [sym_struct] = ACTIONS(4970),
    [sym_switch] = ACTIONS(4970),
    [sym_synchronized] = ACTIONS(4970),
    [sym_template] = ACTIONS(4970),
    [sym_throw] = ACTIONS(4970),
    [sym_try] = ACTIONS(4970),
    [sym_typeid] = ACTIONS(4970),
    [sym_typeof] = ACTIONS(4970),
    [sym_union] = ACTIONS(4970),
    [sym_unittest] = ACTIONS(4970),
    [sym_version] = ACTIONS(4970),
    [sym_while] = ACTIONS(4970),
    [sym_with] = ACTIONS(4970),
    [sym_gshared] = ACTIONS(4970),
    [sym_traits] = ACTIONS(4970),
    [sym_vector] = ACTIONS(4970),
    [sym_void] = ACTIONS(4970),
    [anon_sym_BQUOTE] = ACTIONS(4972),
    [anon_sym_r_DQUOTE] = ACTIONS(4972),
    [anon_sym_x_DQUOTE] = ACTIONS(4972),
    [anon_sym_DQUOTE] = ACTIONS(4972),
    [anon_sym_i_BQUOTE] = ACTIONS(4972),
    [anon_sym_i_DQUOTE] = ACTIONS(4972),
    [anon_sym_iq_LBRACE] = ACTIONS(4972),
    [aux_sym_char_literal_token1] = ACTIONS(4972),
    [anon_sym_SQUOTE] = ACTIONS(4970),
    [anon_sym___DATE__] = ACTIONS(4970),
    [anon_sym___FILE__] = ACTIONS(4970),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4970),
    [anon_sym___FUNCTION__] = ACTIONS(4970),
    [anon_sym___LINE__] = ACTIONS(4970),
    [anon_sym___MODULE__] = ACTIONS(4970),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4970),
    [anon_sym___TIME__] = ACTIONS(4970),
    [anon_sym___TIMESTAMP__] = ACTIONS(4970),
    [anon_sym___VENDOR__] = ACTIONS(4970),
    [anon_sym___VERSION__] = ACTIONS(4970),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4972),
    [sym_float_literal] = ACTIONS(4972),
    [sym__string] = ACTIONS(4972),
  },
  [1762] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5115),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_AMP] = ACTIONS(5115),
    [anon_sym_DASH] = ACTIONS(5113),
    [anon_sym_DASH_DASH] = ACTIONS(5115),
    [anon_sym_PLUS] = ACTIONS(5113),
    [anon_sym_PLUS_PLUS] = ACTIONS(5115),
    [anon_sym_BANG] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(5117),
    [anon_sym_LBRACK] = ACTIONS(5115),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_DOLLAR] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5119),
    [anon_sym_STAR] = ACTIONS(5115),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_true] = ACTIONS(5113),
    [sym_false] = ACTIONS(5113),
    [sym_null] = ACTIONS(5113),
    [sym_super] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_asm] = ACTIONS(5113),
    [sym_assert] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_break] = ACTIONS(5113),
    [sym_case] = ACTIONS(5113),
    [sym_cast] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_continue] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_default] = ACTIONS(5113),
    [sym_delegate] = ACTIONS(5113),
    [sym_delete] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_do] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_for] = ACTIONS(5113),
    [sym_foreach] = ACTIONS(5113),
    [sym_foreach_reverse] = ACTIONS(5113),
    [sym_function] = ACTIONS(5113),
    [sym_goto] = ACTIONS(5113),
    [sym_if] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_in] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_is] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_new] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_out] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_switch] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_throw] = ACTIONS(5113),
    [sym_try] = ACTIONS(5113),
    [sym_typeid] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_while] = ACTIONS(5113),
    [sym_with] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [anon_sym_BQUOTE] = ACTIONS(5115),
    [anon_sym_r_DQUOTE] = ACTIONS(5115),
    [anon_sym_x_DQUOTE] = ACTIONS(5115),
    [anon_sym_DQUOTE] = ACTIONS(5115),
    [anon_sym_i_BQUOTE] = ACTIONS(5115),
    [anon_sym_i_DQUOTE] = ACTIONS(5115),
    [anon_sym_iq_LBRACE] = ACTIONS(5115),
    [aux_sym_char_literal_token1] = ACTIONS(5115),
    [anon_sym_SQUOTE] = ACTIONS(5113),
    [anon_sym___DATE__] = ACTIONS(5113),
    [anon_sym___FILE__] = ACTIONS(5113),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5113),
    [anon_sym___FUNCTION__] = ACTIONS(5113),
    [anon_sym___LINE__] = ACTIONS(5113),
    [anon_sym___MODULE__] = ACTIONS(5113),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5113),
    [anon_sym___TIME__] = ACTIONS(5113),
    [anon_sym___TIMESTAMP__] = ACTIONS(5113),
    [anon_sym___VENDOR__] = ACTIONS(5113),
    [anon_sym___VERSION__] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5115),
    [sym_float_literal] = ACTIONS(5115),
    [sym__string] = ACTIONS(5115),
  },
  [1763] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5115),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_AMP] = ACTIONS(5115),
    [anon_sym_DASH] = ACTIONS(5113),
    [anon_sym_DASH_DASH] = ACTIONS(5115),
    [anon_sym_PLUS] = ACTIONS(5113),
    [anon_sym_PLUS_PLUS] = ACTIONS(5115),
    [anon_sym_BANG] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(5117),
    [anon_sym_LBRACK] = ACTIONS(5115),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_DOLLAR] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5121),
    [anon_sym_STAR] = ACTIONS(5115),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_true] = ACTIONS(5113),
    [sym_false] = ACTIONS(5113),
    [sym_null] = ACTIONS(5113),
    [sym_super] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_asm] = ACTIONS(5113),
    [sym_assert] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_break] = ACTIONS(5113),
    [sym_case] = ACTIONS(5113),
    [sym_cast] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_continue] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_default] = ACTIONS(5113),
    [sym_delegate] = ACTIONS(5113),
    [sym_delete] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_do] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_for] = ACTIONS(5113),
    [sym_foreach] = ACTIONS(5113),
    [sym_foreach_reverse] = ACTIONS(5113),
    [sym_function] = ACTIONS(5113),
    [sym_goto] = ACTIONS(5113),
    [sym_if] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_in] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_is] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_new] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_out] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_switch] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_throw] = ACTIONS(5113),
    [sym_try] = ACTIONS(5113),
    [sym_typeid] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_while] = ACTIONS(5113),
    [sym_with] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [anon_sym_BQUOTE] = ACTIONS(5115),
    [anon_sym_r_DQUOTE] = ACTIONS(5115),
    [anon_sym_x_DQUOTE] = ACTIONS(5115),
    [anon_sym_DQUOTE] = ACTIONS(5115),
    [anon_sym_i_BQUOTE] = ACTIONS(5115),
    [anon_sym_i_DQUOTE] = ACTIONS(5115),
    [anon_sym_iq_LBRACE] = ACTIONS(5115),
    [aux_sym_char_literal_token1] = ACTIONS(5115),
    [anon_sym_SQUOTE] = ACTIONS(5113),
    [anon_sym___DATE__] = ACTIONS(5113),
    [anon_sym___FILE__] = ACTIONS(5113),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5113),
    [anon_sym___FUNCTION__] = ACTIONS(5113),
    [anon_sym___LINE__] = ACTIONS(5113),
    [anon_sym___MODULE__] = ACTIONS(5113),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5113),
    [anon_sym___TIME__] = ACTIONS(5113),
    [anon_sym___TIMESTAMP__] = ACTIONS(5113),
    [anon_sym___VENDOR__] = ACTIONS(5113),
    [anon_sym___VERSION__] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5115),
    [sym_float_literal] = ACTIONS(5115),
    [sym__string] = ACTIONS(5115),
  },
  [1764] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5115),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_AMP] = ACTIONS(5115),
    [anon_sym_DASH] = ACTIONS(5113),
    [anon_sym_DASH_DASH] = ACTIONS(5115),
    [anon_sym_PLUS] = ACTIONS(5113),
    [anon_sym_PLUS_PLUS] = ACTIONS(5115),
    [anon_sym_BANG] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(5117),
    [anon_sym_LBRACK] = ACTIONS(5115),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_DOLLAR] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5123),
    [anon_sym_STAR] = ACTIONS(5115),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_true] = ACTIONS(5113),
    [sym_false] = ACTIONS(5113),
    [sym_null] = ACTIONS(5113),
    [sym_super] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_asm] = ACTIONS(5113),
    [sym_assert] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_break] = ACTIONS(5113),
    [sym_case] = ACTIONS(5113),
    [sym_cast] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_continue] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_default] = ACTIONS(5113),
    [sym_delegate] = ACTIONS(5113),
    [sym_delete] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_do] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_for] = ACTIONS(5113),
    [sym_foreach] = ACTIONS(5113),
    [sym_foreach_reverse] = ACTIONS(5113),
    [sym_function] = ACTIONS(5113),
    [sym_goto] = ACTIONS(5113),
    [sym_if] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_in] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_is] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_new] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_out] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_switch] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_throw] = ACTIONS(5113),
    [sym_try] = ACTIONS(5113),
    [sym_typeid] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_while] = ACTIONS(5113),
    [sym_with] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [anon_sym_BQUOTE] = ACTIONS(5115),
    [anon_sym_r_DQUOTE] = ACTIONS(5115),
    [anon_sym_x_DQUOTE] = ACTIONS(5115),
    [anon_sym_DQUOTE] = ACTIONS(5115),
    [anon_sym_i_BQUOTE] = ACTIONS(5115),
    [anon_sym_i_DQUOTE] = ACTIONS(5115),
    [anon_sym_iq_LBRACE] = ACTIONS(5115),
    [aux_sym_char_literal_token1] = ACTIONS(5115),
    [anon_sym_SQUOTE] = ACTIONS(5113),
    [anon_sym___DATE__] = ACTIONS(5113),
    [anon_sym___FILE__] = ACTIONS(5113),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5113),
    [anon_sym___FUNCTION__] = ACTIONS(5113),
    [anon_sym___LINE__] = ACTIONS(5113),
    [anon_sym___MODULE__] = ACTIONS(5113),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5113),
    [anon_sym___TIME__] = ACTIONS(5113),
    [anon_sym___TIMESTAMP__] = ACTIONS(5113),
    [anon_sym___VENDOR__] = ACTIONS(5113),
    [anon_sym___VERSION__] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5115),
    [sym_float_literal] = ACTIONS(5115),
    [sym__string] = ACTIONS(5115),
  },
  [1765] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5115),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_AMP] = ACTIONS(5115),
    [anon_sym_DASH] = ACTIONS(5113),
    [anon_sym_DASH_DASH] = ACTIONS(5115),
    [anon_sym_PLUS] = ACTIONS(5113),
    [anon_sym_PLUS_PLUS] = ACTIONS(5115),
    [anon_sym_BANG] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(5117),
    [anon_sym_LBRACK] = ACTIONS(5115),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_DOLLAR] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5125),
    [anon_sym_STAR] = ACTIONS(5115),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_true] = ACTIONS(5113),
    [sym_false] = ACTIONS(5113),
    [sym_null] = ACTIONS(5113),
    [sym_super] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_asm] = ACTIONS(5113),
    [sym_assert] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_break] = ACTIONS(5113),
    [sym_case] = ACTIONS(5113),
    [sym_cast] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_continue] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_default] = ACTIONS(5113),
    [sym_delegate] = ACTIONS(5113),
    [sym_delete] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_do] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_for] = ACTIONS(5113),
    [sym_foreach] = ACTIONS(5113),
    [sym_foreach_reverse] = ACTIONS(5113),
    [sym_function] = ACTIONS(5113),
    [sym_goto] = ACTIONS(5113),
    [sym_if] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_in] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_is] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_new] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_out] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_switch] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_throw] = ACTIONS(5113),
    [sym_try] = ACTIONS(5113),
    [sym_typeid] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_while] = ACTIONS(5113),
    [sym_with] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [anon_sym_BQUOTE] = ACTIONS(5115),
    [anon_sym_r_DQUOTE] = ACTIONS(5115),
    [anon_sym_x_DQUOTE] = ACTIONS(5115),
    [anon_sym_DQUOTE] = ACTIONS(5115),
    [anon_sym_i_BQUOTE] = ACTIONS(5115),
    [anon_sym_i_DQUOTE] = ACTIONS(5115),
    [anon_sym_iq_LBRACE] = ACTIONS(5115),
    [aux_sym_char_literal_token1] = ACTIONS(5115),
    [anon_sym_SQUOTE] = ACTIONS(5113),
    [anon_sym___DATE__] = ACTIONS(5113),
    [anon_sym___FILE__] = ACTIONS(5113),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5113),
    [anon_sym___FUNCTION__] = ACTIONS(5113),
    [anon_sym___LINE__] = ACTIONS(5113),
    [anon_sym___MODULE__] = ACTIONS(5113),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5113),
    [anon_sym___TIME__] = ACTIONS(5113),
    [anon_sym___TIMESTAMP__] = ACTIONS(5113),
    [anon_sym___VENDOR__] = ACTIONS(5113),
    [anon_sym___VERSION__] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5115),
    [sym_float_literal] = ACTIONS(5115),
    [sym__string] = ACTIONS(5115),
  },
  [1766] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5115),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_AMP] = ACTIONS(5115),
    [anon_sym_DASH] = ACTIONS(5113),
    [anon_sym_DASH_DASH] = ACTIONS(5115),
    [anon_sym_PLUS] = ACTIONS(5113),
    [anon_sym_PLUS_PLUS] = ACTIONS(5115),
    [anon_sym_BANG] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(5117),
    [anon_sym_LBRACK] = ACTIONS(5115),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_DOLLAR] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5127),
    [anon_sym_STAR] = ACTIONS(5115),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_true] = ACTIONS(5113),
    [sym_false] = ACTIONS(5113),
    [sym_null] = ACTIONS(5113),
    [sym_super] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_asm] = ACTIONS(5113),
    [sym_assert] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_break] = ACTIONS(5113),
    [sym_case] = ACTIONS(5113),
    [sym_cast] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_continue] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_default] = ACTIONS(5113),
    [sym_delegate] = ACTIONS(5113),
    [sym_delete] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_do] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_for] = ACTIONS(5113),
    [sym_foreach] = ACTIONS(5113),
    [sym_foreach_reverse] = ACTIONS(5113),
    [sym_function] = ACTIONS(5113),
    [sym_goto] = ACTIONS(5113),
    [sym_if] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_in] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_is] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_new] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_out] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_switch] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_throw] = ACTIONS(5113),
    [sym_try] = ACTIONS(5113),
    [sym_typeid] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_while] = ACTIONS(5113),
    [sym_with] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [anon_sym_BQUOTE] = ACTIONS(5115),
    [anon_sym_r_DQUOTE] = ACTIONS(5115),
    [anon_sym_x_DQUOTE] = ACTIONS(5115),
    [anon_sym_DQUOTE] = ACTIONS(5115),
    [anon_sym_i_BQUOTE] = ACTIONS(5115),
    [anon_sym_i_DQUOTE] = ACTIONS(5115),
    [anon_sym_iq_LBRACE] = ACTIONS(5115),
    [aux_sym_char_literal_token1] = ACTIONS(5115),
    [anon_sym_SQUOTE] = ACTIONS(5113),
    [anon_sym___DATE__] = ACTIONS(5113),
    [anon_sym___FILE__] = ACTIONS(5113),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5113),
    [anon_sym___FUNCTION__] = ACTIONS(5113),
    [anon_sym___LINE__] = ACTIONS(5113),
    [anon_sym___MODULE__] = ACTIONS(5113),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5113),
    [anon_sym___TIME__] = ACTIONS(5113),
    [anon_sym___TIMESTAMP__] = ACTIONS(5113),
    [anon_sym___VENDOR__] = ACTIONS(5113),
    [anon_sym___VERSION__] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5115),
    [sym_float_literal] = ACTIONS(5115),
    [sym__string] = ACTIONS(5115),
  },
  [1767] = {
    [sym_identifier] = ACTIONS(2137),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2108),
    [anon_sym_RBRACE] = ACTIONS(2108),
    [anon_sym_LBRACE] = ACTIONS(2108),
    [anon_sym_DOT] = ACTIONS(2108),
    [anon_sym_AMP] = ACTIONS(2108),
    [anon_sym_DASH] = ACTIONS(2137),
    [anon_sym_DASH_DASH] = ACTIONS(2108),
    [anon_sym_PLUS] = ACTIONS(2137),
    [anon_sym_PLUS_PLUS] = ACTIONS(2108),
    [anon_sym_BANG] = ACTIONS(2108),
    [anon_sym_LPAREN] = ACTIONS(2108),
    [anon_sym_LBRACK] = ACTIONS(2108),
    [anon_sym_SEMI] = ACTIONS(2108),
    [anon_sym_DOLLAR] = ACTIONS(2108),
    [anon_sym_STAR] = ACTIONS(2108),
    [anon_sym_TILDE] = ACTIONS(2108),
    [anon_sym_AT] = ACTIONS(2108),
    [sym_bool] = ACTIONS(2137),
    [sym_byte] = ACTIONS(2137),
    [sym_ubyte] = ACTIONS(2137),
    [sym_char] = ACTIONS(2137),
    [sym_short] = ACTIONS(2137),
    [sym_ushort] = ACTIONS(2137),
    [sym_int] = ACTIONS(2137),
    [sym_uint] = ACTIONS(2137),
    [sym_long] = ACTIONS(2137),
    [sym_ulong] = ACTIONS(2137),
    [sym_cent] = ACTIONS(2137),
    [sym_ucent] = ACTIONS(2137),
    [sym_wchar] = ACTIONS(2137),
    [sym_dchar] = ACTIONS(2137),
    [sym_float] = ACTIONS(2137),
    [sym_double] = ACTIONS(2137),
    [sym_real] = ACTIONS(2137),
    [sym_ifloat] = ACTIONS(2137),
    [sym_idouble] = ACTIONS(2137),
    [sym_ireal] = ACTIONS(2137),
    [sym_cfloat] = ACTIONS(2137),
    [sym_cdouble] = ACTIONS(2137),
    [sym_creal] = ACTIONS(2137),
    [sym_size_t] = ACTIONS(2137),
    [sym_ptrdiff_t] = ACTIONS(2137),
    [sym_string] = ACTIONS(2137),
    [sym_cstring] = ACTIONS(2137),
    [sym_dstring] = ACTIONS(2137),
    [sym_wstring] = ACTIONS(2137),
    [sym_noreturn] = ACTIONS(2137),
    [sym_true] = ACTIONS(2137),
    [sym_false] = ACTIONS(2137),
    [sym_null] = ACTIONS(2137),
    [sym_super] = ACTIONS(2137),
    [sym_this] = ACTIONS(2137),
    [sym_abstract] = ACTIONS(2137),
    [sym_alias] = ACTIONS(2137),
    [sym_align] = ACTIONS(2137),
    [sym_asm] = ACTIONS(2137),
    [sym_assert] = ACTIONS(2137),
    [sym_auto] = ACTIONS(2137),
    [sym_break] = ACTIONS(2137),
    [sym_case] = ACTIONS(2137),
    [sym_cast] = ACTIONS(2137),
    [sym_class] = ACTIONS(2137),
    [sym_const] = ACTIONS(2137),
    [sym_continue] = ACTIONS(2137),
    [sym_debug] = ACTIONS(2137),
    [sym_default] = ACTIONS(2137),
    [sym_delegate] = ACTIONS(2137),
    [sym_delete] = ACTIONS(2137),
    [sym_deprecated] = ACTIONS(2137),
    [sym_do] = ACTIONS(2137),
    [sym_enum] = ACTIONS(2137),
    [sym_export] = ACTIONS(2137),
    [sym_extern] = ACTIONS(2137),
    [sym_final] = ACTIONS(2137),
    [sym_for] = ACTIONS(2137),
    [sym_foreach] = ACTIONS(2137),
    [sym_foreach_reverse] = ACTIONS(2137),
    [sym_function] = ACTIONS(2137),
    [sym_goto] = ACTIONS(2137),
    [sym_if] = ACTIONS(2137),
    [sym_immutable] = ACTIONS(2137),
    [sym_import] = ACTIONS(2137),
    [sym_in] = ACTIONS(2137),
    [sym_inout] = ACTIONS(2137),
    [sym_interface] = ACTIONS(2137),
    [sym_invariant] = ACTIONS(2137),
    [sym_is] = ACTIONS(2137),
    [sym_mixin] = ACTIONS(2137),
    [sym_new] = ACTIONS(2137),
    [sym_nothrow] = ACTIONS(2137),
    [sym_out] = ACTIONS(2137),
    [sym_override] = ACTIONS(2137),
    [sym_package] = ACTIONS(2137),
    [sym_pragma] = ACTIONS(2137),
    [sym_private] = ACTIONS(2137),
    [sym_protected] = ACTIONS(2137),
    [sym_public] = ACTIONS(2137),
    [sym_pure] = ACTIONS(2137),
    [sym_ref] = ACTIONS(2137),
    [sym_return] = ACTIONS(2137),
    [sym_scope] = ACTIONS(2137),
    [sym_shared] = ACTIONS(2137),
    [sym_static] = ACTIONS(2137),
    [sym_struct] = ACTIONS(2137),
    [sym_switch] = ACTIONS(2137),
    [sym_synchronized] = ACTIONS(2137),
    [sym_template] = ACTIONS(2137),
    [sym_throw] = ACTIONS(2137),
    [sym_try] = ACTIONS(2137),
    [sym_typeid] = ACTIONS(2137),
    [sym_typeof] = ACTIONS(2137),
    [sym_union] = ACTIONS(2137),
    [sym_unittest] = ACTIONS(2137),
    [sym_version] = ACTIONS(2137),
    [sym_while] = ACTIONS(2137),
    [sym_with] = ACTIONS(2137),
    [sym_gshared] = ACTIONS(2137),
    [sym_traits] = ACTIONS(2137),
    [sym_vector] = ACTIONS(2137),
    [sym_void] = ACTIONS(2137),
    [anon_sym_BQUOTE] = ACTIONS(2108),
    [anon_sym_r_DQUOTE] = ACTIONS(2108),
    [anon_sym_x_DQUOTE] = ACTIONS(2108),
    [anon_sym_DQUOTE] = ACTIONS(2108),
    [anon_sym_i_BQUOTE] = ACTIONS(2108),
    [anon_sym_i_DQUOTE] = ACTIONS(2108),
    [anon_sym_iq_LBRACE] = ACTIONS(2108),
    [aux_sym_char_literal_token1] = ACTIONS(2108),
    [anon_sym_SQUOTE] = ACTIONS(2137),
    [anon_sym___DATE__] = ACTIONS(2137),
    [anon_sym___FILE__] = ACTIONS(2137),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2137),
    [anon_sym___FUNCTION__] = ACTIONS(2137),
    [anon_sym___LINE__] = ACTIONS(2137),
    [anon_sym___MODULE__] = ACTIONS(2137),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2137),
    [anon_sym___TIME__] = ACTIONS(2137),
    [anon_sym___TIMESTAMP__] = ACTIONS(2137),
    [anon_sym___VENDOR__] = ACTIONS(2137),
    [anon_sym___VERSION__] = ACTIONS(2137),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2108),
    [sym_float_literal] = ACTIONS(2108),
    [sym__string] = ACTIONS(2108),
  },
  [1768] = {
    [sym_identifier] = ACTIONS(5129),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5132),
    [anon_sym_RBRACE] = ACTIONS(5134),
    [anon_sym_LBRACE] = ACTIONS(5132),
    [anon_sym_DOT] = ACTIONS(5134),
    [anon_sym_AMP] = ACTIONS(5132),
    [anon_sym_DASH] = ACTIONS(5137),
    [anon_sym_DASH_DASH] = ACTIONS(5132),
    [anon_sym_PLUS] = ACTIONS(5137),
    [anon_sym_PLUS_PLUS] = ACTIONS(5132),
    [anon_sym_BANG] = ACTIONS(5132),
    [anon_sym_LPAREN] = ACTIONS(5132),
    [anon_sym_LBRACK] = ACTIONS(5132),
    [anon_sym_SEMI] = ACTIONS(5134),
    [anon_sym_DOLLAR] = ACTIONS(5132),
    [anon_sym_STAR] = ACTIONS(5132),
    [anon_sym_TILDE] = ACTIONS(5134),
    [anon_sym_AT] = ACTIONS(5134),
    [sym_bool] = ACTIONS(5129),
    [sym_byte] = ACTIONS(5129),
    [sym_ubyte] = ACTIONS(5129),
    [sym_char] = ACTIONS(5129),
    [sym_short] = ACTIONS(5129),
    [sym_ushort] = ACTIONS(5129),
    [sym_int] = ACTIONS(5129),
    [sym_uint] = ACTIONS(5129),
    [sym_long] = ACTIONS(5129),
    [sym_ulong] = ACTIONS(5129),
    [sym_cent] = ACTIONS(5129),
    [sym_ucent] = ACTIONS(5129),
    [sym_wchar] = ACTIONS(5129),
    [sym_dchar] = ACTIONS(5129),
    [sym_float] = ACTIONS(5129),
    [sym_double] = ACTIONS(5129),
    [sym_real] = ACTIONS(5129),
    [sym_ifloat] = ACTIONS(5129),
    [sym_idouble] = ACTIONS(5129),
    [sym_ireal] = ACTIONS(5129),
    [sym_cfloat] = ACTIONS(5129),
    [sym_cdouble] = ACTIONS(5129),
    [sym_creal] = ACTIONS(5129),
    [sym_size_t] = ACTIONS(5129),
    [sym_ptrdiff_t] = ACTIONS(5129),
    [sym_string] = ACTIONS(5129),
    [sym_cstring] = ACTIONS(5129),
    [sym_dstring] = ACTIONS(5129),
    [sym_wstring] = ACTIONS(5129),
    [sym_noreturn] = ACTIONS(5129),
    [sym_true] = ACTIONS(5137),
    [sym_false] = ACTIONS(5137),
    [sym_null] = ACTIONS(5137),
    [sym_super] = ACTIONS(5137),
    [sym_this] = ACTIONS(5129),
    [sym_abstract] = ACTIONS(5129),
    [sym_alias] = ACTIONS(5129),
    [sym_align] = ACTIONS(5129),
    [sym_asm] = ACTIONS(5137),
    [sym_assert] = ACTIONS(5137),
    [sym_auto] = ACTIONS(5129),
    [sym_break] = ACTIONS(5137),
    [sym_case] = ACTIONS(5137),
    [sym_cast] = ACTIONS(5137),
    [sym_class] = ACTIONS(5129),
    [sym_const] = ACTIONS(5129),
    [sym_continue] = ACTIONS(5137),
    [sym_debug] = ACTIONS(5129),
    [sym_default] = ACTIONS(5137),
    [sym_delegate] = ACTIONS(5137),
    [sym_delete] = ACTIONS(5137),
    [sym_deprecated] = ACTIONS(5129),
    [sym_do] = ACTIONS(5137),
    [sym_enum] = ACTIONS(5129),
    [sym_export] = ACTIONS(5129),
    [sym_extern] = ACTIONS(5129),
    [sym_final] = ACTIONS(5129),
    [sym_for] = ACTIONS(5137),
    [sym_foreach] = ACTIONS(5137),
    [sym_foreach_reverse] = ACTIONS(5137),
    [sym_function] = ACTIONS(5137),
    [sym_goto] = ACTIONS(5137),
    [sym_if] = ACTIONS(5137),
    [sym_immutable] = ACTIONS(5129),
    [sym_import] = ACTIONS(5129),
    [sym_in] = ACTIONS(5137),
    [sym_inout] = ACTIONS(5129),
    [sym_interface] = ACTIONS(5129),
    [sym_invariant] = ACTIONS(5129),
    [sym_is] = ACTIONS(5137),
    [sym_mixin] = ACTIONS(5129),
    [sym_new] = ACTIONS(5137),
    [sym_nothrow] = ACTIONS(5129),
    [sym_out] = ACTIONS(5137),
    [sym_override] = ACTIONS(5129),
    [sym_package] = ACTIONS(5129),
    [sym_pragma] = ACTIONS(5129),
    [sym_private] = ACTIONS(5129),
    [sym_protected] = ACTIONS(5129),
    [sym_public] = ACTIONS(5129),
    [sym_pure] = ACTIONS(5129),
    [sym_ref] = ACTIONS(5129),
    [sym_return] = ACTIONS(5129),
    [sym_scope] = ACTIONS(5129),
    [sym_shared] = ACTIONS(5129),
    [sym_static] = ACTIONS(5129),
    [sym_struct] = ACTIONS(5129),
    [sym_switch] = ACTIONS(5137),
    [sym_synchronized] = ACTIONS(5129),
    [sym_template] = ACTIONS(5129),
    [sym_throw] = ACTIONS(5137),
    [sym_try] = ACTIONS(5137),
    [sym_typeid] = ACTIONS(5137),
    [sym_typeof] = ACTIONS(5129),
    [sym_union] = ACTIONS(5129),
    [sym_unittest] = ACTIONS(5129),
    [sym_version] = ACTIONS(5129),
    [sym_while] = ACTIONS(5137),
    [sym_with] = ACTIONS(5137),
    [sym_gshared] = ACTIONS(5129),
    [sym_traits] = ACTIONS(5129),
    [sym_vector] = ACTIONS(5129),
    [sym_void] = ACTIONS(5129),
    [anon_sym_BQUOTE] = ACTIONS(5132),
    [anon_sym_r_DQUOTE] = ACTIONS(5132),
    [anon_sym_x_DQUOTE] = ACTIONS(5132),
    [anon_sym_DQUOTE] = ACTIONS(5132),
    [anon_sym_i_BQUOTE] = ACTIONS(5132),
    [anon_sym_i_DQUOTE] = ACTIONS(5132),
    [anon_sym_iq_LBRACE] = ACTIONS(5132),
    [aux_sym_char_literal_token1] = ACTIONS(5132),
    [anon_sym_SQUOTE] = ACTIONS(5137),
    [anon_sym___DATE__] = ACTIONS(5137),
    [anon_sym___FILE__] = ACTIONS(5137),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5137),
    [anon_sym___FUNCTION__] = ACTIONS(5137),
    [anon_sym___LINE__] = ACTIONS(5137),
    [anon_sym___MODULE__] = ACTIONS(5137),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5137),
    [anon_sym___TIME__] = ACTIONS(5137),
    [anon_sym___TIMESTAMP__] = ACTIONS(5137),
    [anon_sym___VENDOR__] = ACTIONS(5137),
    [anon_sym___VERSION__] = ACTIONS(5137),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5132),
    [sym_float_literal] = ACTIONS(5132),
    [sym__string] = ACTIONS(5132),
  },
  [1769] = {
    [sym_identifier] = ACTIONS(5139),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5141),
    [anon_sym_LBRACE] = ACTIONS(5141),
    [anon_sym_DOT] = ACTIONS(5141),
    [anon_sym_AMP] = ACTIONS(5141),
    [anon_sym_DASH] = ACTIONS(5139),
    [anon_sym_DASH_DASH] = ACTIONS(5141),
    [anon_sym_PLUS] = ACTIONS(5139),
    [anon_sym_PLUS_PLUS] = ACTIONS(5141),
    [anon_sym_BANG] = ACTIONS(5141),
    [anon_sym_LPAREN] = ACTIONS(5141),
    [anon_sym_LBRACK] = ACTIONS(5141),
    [anon_sym_SEMI] = ACTIONS(5141),
    [anon_sym_COLON] = ACTIONS(5141),
    [anon_sym_DOLLAR] = ACTIONS(5141),
    [anon_sym_STAR] = ACTIONS(5141),
    [anon_sym_TILDE] = ACTIONS(5141),
    [anon_sym_AT] = ACTIONS(5141),
    [sym_bool] = ACTIONS(5139),
    [sym_byte] = ACTIONS(5139),
    [sym_ubyte] = ACTIONS(5139),
    [sym_char] = ACTIONS(5139),
    [sym_short] = ACTIONS(5139),
    [sym_ushort] = ACTIONS(5139),
    [sym_int] = ACTIONS(5139),
    [sym_uint] = ACTIONS(5139),
    [sym_long] = ACTIONS(5139),
    [sym_ulong] = ACTIONS(5139),
    [sym_cent] = ACTIONS(5139),
    [sym_ucent] = ACTIONS(5139),
    [sym_wchar] = ACTIONS(5139),
    [sym_dchar] = ACTIONS(5139),
    [sym_float] = ACTIONS(5139),
    [sym_double] = ACTIONS(5139),
    [sym_real] = ACTIONS(5139),
    [sym_ifloat] = ACTIONS(5139),
    [sym_idouble] = ACTIONS(5139),
    [sym_ireal] = ACTIONS(5139),
    [sym_cfloat] = ACTIONS(5139),
    [sym_cdouble] = ACTIONS(5139),
    [sym_creal] = ACTIONS(5139),
    [sym_size_t] = ACTIONS(5139),
    [sym_ptrdiff_t] = ACTIONS(5139),
    [sym_string] = ACTIONS(5139),
    [sym_cstring] = ACTIONS(5139),
    [sym_dstring] = ACTIONS(5139),
    [sym_wstring] = ACTIONS(5139),
    [sym_noreturn] = ACTIONS(5139),
    [sym_true] = ACTIONS(5139),
    [sym_false] = ACTIONS(5139),
    [sym_null] = ACTIONS(5139),
    [sym_super] = ACTIONS(5139),
    [sym_this] = ACTIONS(5139),
    [sym_abstract] = ACTIONS(5139),
    [sym_alias] = ACTIONS(5139),
    [sym_align] = ACTIONS(5139),
    [sym_asm] = ACTIONS(5139),
    [sym_assert] = ACTIONS(5139),
    [sym_auto] = ACTIONS(5139),
    [sym_break] = ACTIONS(5139),
    [sym_case] = ACTIONS(5139),
    [sym_cast] = ACTIONS(5139),
    [sym_class] = ACTIONS(5139),
    [sym_const] = ACTIONS(5139),
    [sym_continue] = ACTIONS(5139),
    [sym_debug] = ACTIONS(5139),
    [sym_default] = ACTIONS(5139),
    [sym_delegate] = ACTIONS(5139),
    [sym_delete] = ACTIONS(5139),
    [sym_deprecated] = ACTIONS(5139),
    [sym_do] = ACTIONS(5139),
    [sym_enum] = ACTIONS(5139),
    [sym_export] = ACTIONS(5139),
    [sym_extern] = ACTIONS(5139),
    [sym_final] = ACTIONS(5139),
    [sym_for] = ACTIONS(5139),
    [sym_foreach] = ACTIONS(5139),
    [sym_foreach_reverse] = ACTIONS(5139),
    [sym_function] = ACTIONS(5139),
    [sym_goto] = ACTIONS(5139),
    [sym_if] = ACTIONS(5139),
    [sym_immutable] = ACTIONS(5139),
    [sym_import] = ACTIONS(5139),
    [sym_in] = ACTIONS(5139),
    [sym_inout] = ACTIONS(5139),
    [sym_interface] = ACTIONS(5139),
    [sym_invariant] = ACTIONS(5139),
    [sym_is] = ACTIONS(5139),
    [sym_mixin] = ACTIONS(5139),
    [sym_new] = ACTIONS(5139),
    [sym_nothrow] = ACTIONS(5139),
    [sym_out] = ACTIONS(5139),
    [sym_override] = ACTIONS(5139),
    [sym_package] = ACTIONS(5139),
    [sym_pragma] = ACTIONS(5139),
    [sym_private] = ACTIONS(5139),
    [sym_protected] = ACTIONS(5139),
    [sym_public] = ACTIONS(5139),
    [sym_pure] = ACTIONS(5139),
    [sym_ref] = ACTIONS(5139),
    [sym_return] = ACTIONS(5139),
    [sym_scope] = ACTIONS(5139),
    [sym_shared] = ACTIONS(5139),
    [sym_static] = ACTIONS(5139),
    [sym_struct] = ACTIONS(5139),
    [sym_switch] = ACTIONS(5139),
    [sym_synchronized] = ACTIONS(5139),
    [sym_template] = ACTIONS(5139),
    [sym_throw] = ACTIONS(5139),
    [sym_try] = ACTIONS(5139),
    [sym_typeid] = ACTIONS(5139),
    [sym_typeof] = ACTIONS(5139),
    [sym_union] = ACTIONS(5139),
    [sym_unittest] = ACTIONS(5139),
    [sym_version] = ACTIONS(5139),
    [sym_while] = ACTIONS(5139),
    [sym_with] = ACTIONS(5139),
    [sym_gshared] = ACTIONS(5139),
    [sym_traits] = ACTIONS(5139),
    [sym_vector] = ACTIONS(5139),
    [sym_void] = ACTIONS(5139),
    [anon_sym_BQUOTE] = ACTIONS(5141),
    [anon_sym_r_DQUOTE] = ACTIONS(5141),
    [anon_sym_x_DQUOTE] = ACTIONS(5141),
    [anon_sym_DQUOTE] = ACTIONS(5141),
    [anon_sym_i_BQUOTE] = ACTIONS(5141),
    [anon_sym_i_DQUOTE] = ACTIONS(5141),
    [anon_sym_iq_LBRACE] = ACTIONS(5141),
    [aux_sym_char_literal_token1] = ACTIONS(5141),
    [anon_sym_SQUOTE] = ACTIONS(5139),
    [anon_sym___DATE__] = ACTIONS(5139),
    [anon_sym___FILE__] = ACTIONS(5139),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5139),
    [anon_sym___FUNCTION__] = ACTIONS(5139),
    [anon_sym___LINE__] = ACTIONS(5139),
    [anon_sym___MODULE__] = ACTIONS(5139),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5139),
    [anon_sym___TIME__] = ACTIONS(5139),
    [anon_sym___TIMESTAMP__] = ACTIONS(5139),
    [anon_sym___VENDOR__] = ACTIONS(5139),
    [anon_sym___VERSION__] = ACTIONS(5139),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5141),
    [sym_float_literal] = ACTIONS(5141),
    [sym__string] = ACTIONS(5141),
  },
  [1770] = {
    [sym_identifier] = ACTIONS(5143),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5145),
    [anon_sym_LBRACE] = ACTIONS(5145),
    [anon_sym_DOT] = ACTIONS(5145),
    [anon_sym_AMP] = ACTIONS(5145),
    [anon_sym_DASH] = ACTIONS(5143),
    [anon_sym_DASH_DASH] = ACTIONS(5145),
    [anon_sym_PLUS] = ACTIONS(5143),
    [anon_sym_PLUS_PLUS] = ACTIONS(5145),
    [anon_sym_BANG] = ACTIONS(5145),
    [anon_sym_LPAREN] = ACTIONS(5145),
    [anon_sym_LBRACK] = ACTIONS(5145),
    [anon_sym_SEMI] = ACTIONS(5145),
    [anon_sym_COLON] = ACTIONS(5145),
    [anon_sym_DOLLAR] = ACTIONS(5145),
    [anon_sym_STAR] = ACTIONS(5145),
    [anon_sym_TILDE] = ACTIONS(5145),
    [anon_sym_AT] = ACTIONS(5145),
    [sym_bool] = ACTIONS(5143),
    [sym_byte] = ACTIONS(5143),
    [sym_ubyte] = ACTIONS(5143),
    [sym_char] = ACTIONS(5143),
    [sym_short] = ACTIONS(5143),
    [sym_ushort] = ACTIONS(5143),
    [sym_int] = ACTIONS(5143),
    [sym_uint] = ACTIONS(5143),
    [sym_long] = ACTIONS(5143),
    [sym_ulong] = ACTIONS(5143),
    [sym_cent] = ACTIONS(5143),
    [sym_ucent] = ACTIONS(5143),
    [sym_wchar] = ACTIONS(5143),
    [sym_dchar] = ACTIONS(5143),
    [sym_float] = ACTIONS(5143),
    [sym_double] = ACTIONS(5143),
    [sym_real] = ACTIONS(5143),
    [sym_ifloat] = ACTIONS(5143),
    [sym_idouble] = ACTIONS(5143),
    [sym_ireal] = ACTIONS(5143),
    [sym_cfloat] = ACTIONS(5143),
    [sym_cdouble] = ACTIONS(5143),
    [sym_creal] = ACTIONS(5143),
    [sym_size_t] = ACTIONS(5143),
    [sym_ptrdiff_t] = ACTIONS(5143),
    [sym_string] = ACTIONS(5143),
    [sym_cstring] = ACTIONS(5143),
    [sym_dstring] = ACTIONS(5143),
    [sym_wstring] = ACTIONS(5143),
    [sym_noreturn] = ACTIONS(5143),
    [sym_true] = ACTIONS(5143),
    [sym_false] = ACTIONS(5143),
    [sym_null] = ACTIONS(5143),
    [sym_super] = ACTIONS(5143),
    [sym_this] = ACTIONS(5143),
    [sym_abstract] = ACTIONS(5143),
    [sym_alias] = ACTIONS(5143),
    [sym_align] = ACTIONS(5143),
    [sym_asm] = ACTIONS(5143),
    [sym_assert] = ACTIONS(5143),
    [sym_auto] = ACTIONS(5143),
    [sym_break] = ACTIONS(5143),
    [sym_case] = ACTIONS(5143),
    [sym_cast] = ACTIONS(5143),
    [sym_class] = ACTIONS(5143),
    [sym_const] = ACTIONS(5143),
    [sym_continue] = ACTIONS(5143),
    [sym_debug] = ACTIONS(5143),
    [sym_default] = ACTIONS(5143),
    [sym_delegate] = ACTIONS(5143),
    [sym_delete] = ACTIONS(5143),
    [sym_deprecated] = ACTIONS(5143),
    [sym_do] = ACTIONS(5143),
    [sym_enum] = ACTIONS(5143),
    [sym_export] = ACTIONS(5143),
    [sym_extern] = ACTIONS(5143),
    [sym_final] = ACTIONS(5143),
    [sym_for] = ACTIONS(5143),
    [sym_foreach] = ACTIONS(5143),
    [sym_foreach_reverse] = ACTIONS(5143),
    [sym_function] = ACTIONS(5143),
    [sym_goto] = ACTIONS(5143),
    [sym_if] = ACTIONS(5143),
    [sym_immutable] = ACTIONS(5143),
    [sym_import] = ACTIONS(5143),
    [sym_in] = ACTIONS(5143),
    [sym_inout] = ACTIONS(5143),
    [sym_interface] = ACTIONS(5143),
    [sym_invariant] = ACTIONS(5143),
    [sym_is] = ACTIONS(5143),
    [sym_mixin] = ACTIONS(5143),
    [sym_new] = ACTIONS(5143),
    [sym_nothrow] = ACTIONS(5143),
    [sym_out] = ACTIONS(5143),
    [sym_override] = ACTIONS(5143),
    [sym_package] = ACTIONS(5143),
    [sym_pragma] = ACTIONS(5143),
    [sym_private] = ACTIONS(5143),
    [sym_protected] = ACTIONS(5143),
    [sym_public] = ACTIONS(5143),
    [sym_pure] = ACTIONS(5143),
    [sym_ref] = ACTIONS(5143),
    [sym_return] = ACTIONS(5143),
    [sym_scope] = ACTIONS(5143),
    [sym_shared] = ACTIONS(5143),
    [sym_static] = ACTIONS(5143),
    [sym_struct] = ACTIONS(5143),
    [sym_switch] = ACTIONS(5143),
    [sym_synchronized] = ACTIONS(5143),
    [sym_template] = ACTIONS(5143),
    [sym_throw] = ACTIONS(5143),
    [sym_try] = ACTIONS(5143),
    [sym_typeid] = ACTIONS(5143),
    [sym_typeof] = ACTIONS(5143),
    [sym_union] = ACTIONS(5143),
    [sym_unittest] = ACTIONS(5143),
    [sym_version] = ACTIONS(5143),
    [sym_while] = ACTIONS(5143),
    [sym_with] = ACTIONS(5143),
    [sym_gshared] = ACTIONS(5143),
    [sym_traits] = ACTIONS(5143),
    [sym_vector] = ACTIONS(5143),
    [sym_void] = ACTIONS(5143),
    [anon_sym_BQUOTE] = ACTIONS(5145),
    [anon_sym_r_DQUOTE] = ACTIONS(5145),
    [anon_sym_x_DQUOTE] = ACTIONS(5145),
    [anon_sym_DQUOTE] = ACTIONS(5145),
    [anon_sym_i_BQUOTE] = ACTIONS(5145),
    [anon_sym_i_DQUOTE] = ACTIONS(5145),
    [anon_sym_iq_LBRACE] = ACTIONS(5145),
    [aux_sym_char_literal_token1] = ACTIONS(5145),
    [anon_sym_SQUOTE] = ACTIONS(5143),
    [anon_sym___DATE__] = ACTIONS(5143),
    [anon_sym___FILE__] = ACTIONS(5143),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5143),
    [anon_sym___FUNCTION__] = ACTIONS(5143),
    [anon_sym___LINE__] = ACTIONS(5143),
    [anon_sym___MODULE__] = ACTIONS(5143),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5143),
    [anon_sym___TIME__] = ACTIONS(5143),
    [anon_sym___TIMESTAMP__] = ACTIONS(5143),
    [anon_sym___VENDOR__] = ACTIONS(5143),
    [anon_sym___VERSION__] = ACTIONS(5143),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5145),
    [sym_float_literal] = ACTIONS(5145),
    [sym__string] = ACTIONS(5145),
  },
  [1771] = {
    [sym_identifier] = ACTIONS(5147),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5149),
    [anon_sym_LBRACE] = ACTIONS(5149),
    [anon_sym_DOT] = ACTIONS(5149),
    [anon_sym_AMP] = ACTIONS(5149),
    [anon_sym_DASH] = ACTIONS(5147),
    [anon_sym_DASH_DASH] = ACTIONS(5149),
    [anon_sym_PLUS] = ACTIONS(5147),
    [anon_sym_PLUS_PLUS] = ACTIONS(5149),
    [anon_sym_BANG] = ACTIONS(5149),
    [anon_sym_LPAREN] = ACTIONS(5149),
    [anon_sym_LBRACK] = ACTIONS(5149),
    [anon_sym_SEMI] = ACTIONS(5149),
    [anon_sym_COLON] = ACTIONS(5149),
    [anon_sym_DOLLAR] = ACTIONS(5149),
    [anon_sym_STAR] = ACTIONS(5149),
    [anon_sym_TILDE] = ACTIONS(5149),
    [anon_sym_AT] = ACTIONS(5149),
    [sym_bool] = ACTIONS(5147),
    [sym_byte] = ACTIONS(5147),
    [sym_ubyte] = ACTIONS(5147),
    [sym_char] = ACTIONS(5147),
    [sym_short] = ACTIONS(5147),
    [sym_ushort] = ACTIONS(5147),
    [sym_int] = ACTIONS(5147),
    [sym_uint] = ACTIONS(5147),
    [sym_long] = ACTIONS(5147),
    [sym_ulong] = ACTIONS(5147),
    [sym_cent] = ACTIONS(5147),
    [sym_ucent] = ACTIONS(5147),
    [sym_wchar] = ACTIONS(5147),
    [sym_dchar] = ACTIONS(5147),
    [sym_float] = ACTIONS(5147),
    [sym_double] = ACTIONS(5147),
    [sym_real] = ACTIONS(5147),
    [sym_ifloat] = ACTIONS(5147),
    [sym_idouble] = ACTIONS(5147),
    [sym_ireal] = ACTIONS(5147),
    [sym_cfloat] = ACTIONS(5147),
    [sym_cdouble] = ACTIONS(5147),
    [sym_creal] = ACTIONS(5147),
    [sym_size_t] = ACTIONS(5147),
    [sym_ptrdiff_t] = ACTIONS(5147),
    [sym_string] = ACTIONS(5147),
    [sym_cstring] = ACTIONS(5147),
    [sym_dstring] = ACTIONS(5147),
    [sym_wstring] = ACTIONS(5147),
    [sym_noreturn] = ACTIONS(5147),
    [sym_true] = ACTIONS(5147),
    [sym_false] = ACTIONS(5147),
    [sym_null] = ACTIONS(5147),
    [sym_super] = ACTIONS(5147),
    [sym_this] = ACTIONS(5147),
    [sym_abstract] = ACTIONS(5147),
    [sym_alias] = ACTIONS(5147),
    [sym_align] = ACTIONS(5147),
    [sym_asm] = ACTIONS(5147),
    [sym_assert] = ACTIONS(5147),
    [sym_auto] = ACTIONS(5147),
    [sym_break] = ACTIONS(5147),
    [sym_case] = ACTIONS(5147),
    [sym_cast] = ACTIONS(5147),
    [sym_class] = ACTIONS(5147),
    [sym_const] = ACTIONS(5147),
    [sym_continue] = ACTIONS(5147),
    [sym_debug] = ACTIONS(5147),
    [sym_default] = ACTIONS(5147),
    [sym_delegate] = ACTIONS(5147),
    [sym_delete] = ACTIONS(5147),
    [sym_deprecated] = ACTIONS(5147),
    [sym_do] = ACTIONS(5147),
    [sym_enum] = ACTIONS(5147),
    [sym_export] = ACTIONS(5147),
    [sym_extern] = ACTIONS(5147),
    [sym_final] = ACTIONS(5147),
    [sym_for] = ACTIONS(5147),
    [sym_foreach] = ACTIONS(5147),
    [sym_foreach_reverse] = ACTIONS(5147),
    [sym_function] = ACTIONS(5147),
    [sym_goto] = ACTIONS(5147),
    [sym_if] = ACTIONS(5147),
    [sym_immutable] = ACTIONS(5147),
    [sym_import] = ACTIONS(5147),
    [sym_in] = ACTIONS(5147),
    [sym_inout] = ACTIONS(5147),
    [sym_interface] = ACTIONS(5147),
    [sym_invariant] = ACTIONS(5147),
    [sym_is] = ACTIONS(5147),
    [sym_mixin] = ACTIONS(5147),
    [sym_new] = ACTIONS(5147),
    [sym_nothrow] = ACTIONS(5147),
    [sym_out] = ACTIONS(5147),
    [sym_override] = ACTIONS(5147),
    [sym_package] = ACTIONS(5147),
    [sym_pragma] = ACTIONS(5147),
    [sym_private] = ACTIONS(5147),
    [sym_protected] = ACTIONS(5147),
    [sym_public] = ACTIONS(5147),
    [sym_pure] = ACTIONS(5147),
    [sym_ref] = ACTIONS(5147),
    [sym_return] = ACTIONS(5147),
    [sym_scope] = ACTIONS(5147),
    [sym_shared] = ACTIONS(5147),
    [sym_static] = ACTIONS(5147),
    [sym_struct] = ACTIONS(5147),
    [sym_switch] = ACTIONS(5147),
    [sym_synchronized] = ACTIONS(5147),
    [sym_template] = ACTIONS(5147),
    [sym_throw] = ACTIONS(5147),
    [sym_try] = ACTIONS(5147),
    [sym_typeid] = ACTIONS(5147),
    [sym_typeof] = ACTIONS(5147),
    [sym_union] = ACTIONS(5147),
    [sym_unittest] = ACTIONS(5147),
    [sym_version] = ACTIONS(5147),
    [sym_while] = ACTIONS(5147),
    [sym_with] = ACTIONS(5147),
    [sym_gshared] = ACTIONS(5147),
    [sym_traits] = ACTIONS(5147),
    [sym_vector] = ACTIONS(5147),
    [sym_void] = ACTIONS(5147),
    [anon_sym_BQUOTE] = ACTIONS(5149),
    [anon_sym_r_DQUOTE] = ACTIONS(5149),
    [anon_sym_x_DQUOTE] = ACTIONS(5149),
    [anon_sym_DQUOTE] = ACTIONS(5149),
    [anon_sym_i_BQUOTE] = ACTIONS(5149),
    [anon_sym_i_DQUOTE] = ACTIONS(5149),
    [anon_sym_iq_LBRACE] = ACTIONS(5149),
    [aux_sym_char_literal_token1] = ACTIONS(5149),
    [anon_sym_SQUOTE] = ACTIONS(5147),
    [anon_sym___DATE__] = ACTIONS(5147),
    [anon_sym___FILE__] = ACTIONS(5147),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5147),
    [anon_sym___FUNCTION__] = ACTIONS(5147),
    [anon_sym___LINE__] = ACTIONS(5147),
    [anon_sym___MODULE__] = ACTIONS(5147),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5147),
    [anon_sym___TIME__] = ACTIONS(5147),
    [anon_sym___TIMESTAMP__] = ACTIONS(5147),
    [anon_sym___VENDOR__] = ACTIONS(5147),
    [anon_sym___VERSION__] = ACTIONS(5147),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5149),
    [sym_float_literal] = ACTIONS(5149),
    [sym__string] = ACTIONS(5149),
  },
  [1772] = {
    [sym_identifier] = ACTIONS(5151),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5153),
    [anon_sym_LBRACE] = ACTIONS(5153),
    [anon_sym_DOT] = ACTIONS(5153),
    [anon_sym_AMP] = ACTIONS(5153),
    [anon_sym_DASH] = ACTIONS(5151),
    [anon_sym_DASH_DASH] = ACTIONS(5153),
    [anon_sym_PLUS] = ACTIONS(5151),
    [anon_sym_PLUS_PLUS] = ACTIONS(5153),
    [anon_sym_BANG] = ACTIONS(5153),
    [anon_sym_LPAREN] = ACTIONS(5153),
    [anon_sym_LBRACK] = ACTIONS(5153),
    [anon_sym_SEMI] = ACTIONS(5153),
    [anon_sym_COLON] = ACTIONS(5153),
    [anon_sym_DOLLAR] = ACTIONS(5153),
    [anon_sym_STAR] = ACTIONS(5153),
    [anon_sym_TILDE] = ACTIONS(5153),
    [anon_sym_AT] = ACTIONS(5153),
    [sym_bool] = ACTIONS(5151),
    [sym_byte] = ACTIONS(5151),
    [sym_ubyte] = ACTIONS(5151),
    [sym_char] = ACTIONS(5151),
    [sym_short] = ACTIONS(5151),
    [sym_ushort] = ACTIONS(5151),
    [sym_int] = ACTIONS(5151),
    [sym_uint] = ACTIONS(5151),
    [sym_long] = ACTIONS(5151),
    [sym_ulong] = ACTIONS(5151),
    [sym_cent] = ACTIONS(5151),
    [sym_ucent] = ACTIONS(5151),
    [sym_wchar] = ACTIONS(5151),
    [sym_dchar] = ACTIONS(5151),
    [sym_float] = ACTIONS(5151),
    [sym_double] = ACTIONS(5151),
    [sym_real] = ACTIONS(5151),
    [sym_ifloat] = ACTIONS(5151),
    [sym_idouble] = ACTIONS(5151),
    [sym_ireal] = ACTIONS(5151),
    [sym_cfloat] = ACTIONS(5151),
    [sym_cdouble] = ACTIONS(5151),
    [sym_creal] = ACTIONS(5151),
    [sym_size_t] = ACTIONS(5151),
    [sym_ptrdiff_t] = ACTIONS(5151),
    [sym_string] = ACTIONS(5151),
    [sym_cstring] = ACTIONS(5151),
    [sym_dstring] = ACTIONS(5151),
    [sym_wstring] = ACTIONS(5151),
    [sym_noreturn] = ACTIONS(5151),
    [sym_true] = ACTIONS(5151),
    [sym_false] = ACTIONS(5151),
    [sym_null] = ACTIONS(5151),
    [sym_super] = ACTIONS(5151),
    [sym_this] = ACTIONS(5151),
    [sym_abstract] = ACTIONS(5151),
    [sym_alias] = ACTIONS(5151),
    [sym_align] = ACTIONS(5151),
    [sym_asm] = ACTIONS(5151),
    [sym_assert] = ACTIONS(5151),
    [sym_auto] = ACTIONS(5151),
    [sym_break] = ACTIONS(5151),
    [sym_case] = ACTIONS(5151),
    [sym_cast] = ACTIONS(5151),
    [sym_class] = ACTIONS(5151),
    [sym_const] = ACTIONS(5151),
    [sym_continue] = ACTIONS(5151),
    [sym_debug] = ACTIONS(5151),
    [sym_default] = ACTIONS(5151),
    [sym_delegate] = ACTIONS(5151),
    [sym_delete] = ACTIONS(5151),
    [sym_deprecated] = ACTIONS(5151),
    [sym_do] = ACTIONS(5151),
    [sym_enum] = ACTIONS(5151),
    [sym_export] = ACTIONS(5151),
    [sym_extern] = ACTIONS(5151),
    [sym_final] = ACTIONS(5151),
    [sym_for] = ACTIONS(5151),
    [sym_foreach] = ACTIONS(5151),
    [sym_foreach_reverse] = ACTIONS(5151),
    [sym_function] = ACTIONS(5151),
    [sym_goto] = ACTIONS(5151),
    [sym_if] = ACTIONS(5151),
    [sym_immutable] = ACTIONS(5151),
    [sym_import] = ACTIONS(5151),
    [sym_in] = ACTIONS(5151),
    [sym_inout] = ACTIONS(5151),
    [sym_interface] = ACTIONS(5151),
    [sym_invariant] = ACTIONS(5151),
    [sym_is] = ACTIONS(5151),
    [sym_mixin] = ACTIONS(5151),
    [sym_new] = ACTIONS(5151),
    [sym_nothrow] = ACTIONS(5151),
    [sym_out] = ACTIONS(5151),
    [sym_override] = ACTIONS(5151),
    [sym_package] = ACTIONS(5151),
    [sym_pragma] = ACTIONS(5151),
    [sym_private] = ACTIONS(5151),
    [sym_protected] = ACTIONS(5151),
    [sym_public] = ACTIONS(5151),
    [sym_pure] = ACTIONS(5151),
    [sym_ref] = ACTIONS(5151),
    [sym_return] = ACTIONS(5151),
    [sym_scope] = ACTIONS(5151),
    [sym_shared] = ACTIONS(5151),
    [sym_static] = ACTIONS(5151),
    [sym_struct] = ACTIONS(5151),
    [sym_switch] = ACTIONS(5151),
    [sym_synchronized] = ACTIONS(5151),
    [sym_template] = ACTIONS(5151),
    [sym_throw] = ACTIONS(5151),
    [sym_try] = ACTIONS(5151),
    [sym_typeid] = ACTIONS(5151),
    [sym_typeof] = ACTIONS(5151),
    [sym_union] = ACTIONS(5151),
    [sym_unittest] = ACTIONS(5151),
    [sym_version] = ACTIONS(5151),
    [sym_while] = ACTIONS(5151),
    [sym_with] = ACTIONS(5151),
    [sym_gshared] = ACTIONS(5151),
    [sym_traits] = ACTIONS(5151),
    [sym_vector] = ACTIONS(5151),
    [sym_void] = ACTIONS(5151),
    [anon_sym_BQUOTE] = ACTIONS(5153),
    [anon_sym_r_DQUOTE] = ACTIONS(5153),
    [anon_sym_x_DQUOTE] = ACTIONS(5153),
    [anon_sym_DQUOTE] = ACTIONS(5153),
    [anon_sym_i_BQUOTE] = ACTIONS(5153),
    [anon_sym_i_DQUOTE] = ACTIONS(5153),
    [anon_sym_iq_LBRACE] = ACTIONS(5153),
    [aux_sym_char_literal_token1] = ACTIONS(5153),
    [anon_sym_SQUOTE] = ACTIONS(5151),
    [anon_sym___DATE__] = ACTIONS(5151),
    [anon_sym___FILE__] = ACTIONS(5151),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5151),
    [anon_sym___FUNCTION__] = ACTIONS(5151),
    [anon_sym___LINE__] = ACTIONS(5151),
    [anon_sym___MODULE__] = ACTIONS(5151),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5151),
    [anon_sym___TIME__] = ACTIONS(5151),
    [anon_sym___TIMESTAMP__] = ACTIONS(5151),
    [anon_sym___VENDOR__] = ACTIONS(5151),
    [anon_sym___VERSION__] = ACTIONS(5151),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5153),
    [sym_float_literal] = ACTIONS(5153),
    [sym__string] = ACTIONS(5153),
  },
  [1773] = {
    [sym_identifier] = ACTIONS(5155),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5157),
    [anon_sym_LBRACE] = ACTIONS(5157),
    [anon_sym_DOT] = ACTIONS(5157),
    [anon_sym_AMP] = ACTIONS(5157),
    [anon_sym_DASH] = ACTIONS(5155),
    [anon_sym_DASH_DASH] = ACTIONS(5157),
    [anon_sym_PLUS] = ACTIONS(5155),
    [anon_sym_PLUS_PLUS] = ACTIONS(5157),
    [anon_sym_BANG] = ACTIONS(5157),
    [anon_sym_LPAREN] = ACTIONS(5157),
    [anon_sym_LBRACK] = ACTIONS(5157),
    [anon_sym_SEMI] = ACTIONS(5157),
    [anon_sym_COLON] = ACTIONS(5157),
    [anon_sym_DOLLAR] = ACTIONS(5157),
    [anon_sym_STAR] = ACTIONS(5157),
    [anon_sym_TILDE] = ACTIONS(5157),
    [anon_sym_AT] = ACTIONS(5157),
    [sym_bool] = ACTIONS(5155),
    [sym_byte] = ACTIONS(5155),
    [sym_ubyte] = ACTIONS(5155),
    [sym_char] = ACTIONS(5155),
    [sym_short] = ACTIONS(5155),
    [sym_ushort] = ACTIONS(5155),
    [sym_int] = ACTIONS(5155),
    [sym_uint] = ACTIONS(5155),
    [sym_long] = ACTIONS(5155),
    [sym_ulong] = ACTIONS(5155),
    [sym_cent] = ACTIONS(5155),
    [sym_ucent] = ACTIONS(5155),
    [sym_wchar] = ACTIONS(5155),
    [sym_dchar] = ACTIONS(5155),
    [sym_float] = ACTIONS(5155),
    [sym_double] = ACTIONS(5155),
    [sym_real] = ACTIONS(5155),
    [sym_ifloat] = ACTIONS(5155),
    [sym_idouble] = ACTIONS(5155),
    [sym_ireal] = ACTIONS(5155),
    [sym_cfloat] = ACTIONS(5155),
    [sym_cdouble] = ACTIONS(5155),
    [sym_creal] = ACTIONS(5155),
    [sym_size_t] = ACTIONS(5155),
    [sym_ptrdiff_t] = ACTIONS(5155),
    [sym_string] = ACTIONS(5155),
    [sym_cstring] = ACTIONS(5155),
    [sym_dstring] = ACTIONS(5155),
    [sym_wstring] = ACTIONS(5155),
    [sym_noreturn] = ACTIONS(5155),
    [sym_true] = ACTIONS(5155),
    [sym_false] = ACTIONS(5155),
    [sym_null] = ACTIONS(5155),
    [sym_super] = ACTIONS(5155),
    [sym_this] = ACTIONS(5155),
    [sym_abstract] = ACTIONS(5155),
    [sym_alias] = ACTIONS(5155),
    [sym_align] = ACTIONS(5155),
    [sym_asm] = ACTIONS(5155),
    [sym_assert] = ACTIONS(5155),
    [sym_auto] = ACTIONS(5155),
    [sym_break] = ACTIONS(5155),
    [sym_case] = ACTIONS(5155),
    [sym_cast] = ACTIONS(5155),
    [sym_class] = ACTIONS(5155),
    [sym_const] = ACTIONS(5155),
    [sym_continue] = ACTIONS(5155),
    [sym_debug] = ACTIONS(5155),
    [sym_default] = ACTIONS(5155),
    [sym_delegate] = ACTIONS(5155),
    [sym_delete] = ACTIONS(5155),
    [sym_deprecated] = ACTIONS(5155),
    [sym_do] = ACTIONS(5155),
    [sym_enum] = ACTIONS(5155),
    [sym_export] = ACTIONS(5155),
    [sym_extern] = ACTIONS(5155),
    [sym_final] = ACTIONS(5155),
    [sym_for] = ACTIONS(5155),
    [sym_foreach] = ACTIONS(5155),
    [sym_foreach_reverse] = ACTIONS(5155),
    [sym_function] = ACTIONS(5155),
    [sym_goto] = ACTIONS(5155),
    [sym_if] = ACTIONS(5155),
    [sym_immutable] = ACTIONS(5155),
    [sym_import] = ACTIONS(5155),
    [sym_in] = ACTIONS(5155),
    [sym_inout] = ACTIONS(5155),
    [sym_interface] = ACTIONS(5155),
    [sym_invariant] = ACTIONS(5155),
    [sym_is] = ACTIONS(5155),
    [sym_mixin] = ACTIONS(5155),
    [sym_new] = ACTIONS(5155),
    [sym_nothrow] = ACTIONS(5155),
    [sym_out] = ACTIONS(5155),
    [sym_override] = ACTIONS(5155),
    [sym_package] = ACTIONS(5155),
    [sym_pragma] = ACTIONS(5155),
    [sym_private] = ACTIONS(5155),
    [sym_protected] = ACTIONS(5155),
    [sym_public] = ACTIONS(5155),
    [sym_pure] = ACTIONS(5155),
    [sym_ref] = ACTIONS(5155),
    [sym_return] = ACTIONS(5155),
    [sym_scope] = ACTIONS(5155),
    [sym_shared] = ACTIONS(5155),
    [sym_static] = ACTIONS(5155),
    [sym_struct] = ACTIONS(5155),
    [sym_switch] = ACTIONS(5155),
    [sym_synchronized] = ACTIONS(5155),
    [sym_template] = ACTIONS(5155),
    [sym_throw] = ACTIONS(5155),
    [sym_try] = ACTIONS(5155),
    [sym_typeid] = ACTIONS(5155),
    [sym_typeof] = ACTIONS(5155),
    [sym_union] = ACTIONS(5155),
    [sym_unittest] = ACTIONS(5155),
    [sym_version] = ACTIONS(5155),
    [sym_while] = ACTIONS(5155),
    [sym_with] = ACTIONS(5155),
    [sym_gshared] = ACTIONS(5155),
    [sym_traits] = ACTIONS(5155),
    [sym_vector] = ACTIONS(5155),
    [sym_void] = ACTIONS(5155),
    [anon_sym_BQUOTE] = ACTIONS(5157),
    [anon_sym_r_DQUOTE] = ACTIONS(5157),
    [anon_sym_x_DQUOTE] = ACTIONS(5157),
    [anon_sym_DQUOTE] = ACTIONS(5157),
    [anon_sym_i_BQUOTE] = ACTIONS(5157),
    [anon_sym_i_DQUOTE] = ACTIONS(5157),
    [anon_sym_iq_LBRACE] = ACTIONS(5157),
    [aux_sym_char_literal_token1] = ACTIONS(5157),
    [anon_sym_SQUOTE] = ACTIONS(5155),
    [anon_sym___DATE__] = ACTIONS(5155),
    [anon_sym___FILE__] = ACTIONS(5155),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5155),
    [anon_sym___FUNCTION__] = ACTIONS(5155),
    [anon_sym___LINE__] = ACTIONS(5155),
    [anon_sym___MODULE__] = ACTIONS(5155),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5155),
    [anon_sym___TIME__] = ACTIONS(5155),
    [anon_sym___TIMESTAMP__] = ACTIONS(5155),
    [anon_sym___VENDOR__] = ACTIONS(5155),
    [anon_sym___VERSION__] = ACTIONS(5155),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5157),
    [sym_float_literal] = ACTIONS(5157),
    [sym__string] = ACTIONS(5157),
  },
  [1774] = {
    [sym_identifier] = ACTIONS(5159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5161),
    [anon_sym_LBRACE] = ACTIONS(5161),
    [anon_sym_DOT] = ACTIONS(5161),
    [anon_sym_AMP] = ACTIONS(5161),
    [anon_sym_DASH] = ACTIONS(5159),
    [anon_sym_DASH_DASH] = ACTIONS(5161),
    [anon_sym_PLUS] = ACTIONS(5159),
    [anon_sym_PLUS_PLUS] = ACTIONS(5161),
    [anon_sym_BANG] = ACTIONS(5161),
    [anon_sym_LPAREN] = ACTIONS(5161),
    [anon_sym_LBRACK] = ACTIONS(5161),
    [anon_sym_SEMI] = ACTIONS(5161),
    [anon_sym_COLON] = ACTIONS(5161),
    [anon_sym_DOLLAR] = ACTIONS(5161),
    [anon_sym_STAR] = ACTIONS(5161),
    [anon_sym_TILDE] = ACTIONS(5161),
    [anon_sym_AT] = ACTIONS(5161),
    [sym_bool] = ACTIONS(5159),
    [sym_byte] = ACTIONS(5159),
    [sym_ubyte] = ACTIONS(5159),
    [sym_char] = ACTIONS(5159),
    [sym_short] = ACTIONS(5159),
    [sym_ushort] = ACTIONS(5159),
    [sym_int] = ACTIONS(5159),
    [sym_uint] = ACTIONS(5159),
    [sym_long] = ACTIONS(5159),
    [sym_ulong] = ACTIONS(5159),
    [sym_cent] = ACTIONS(5159),
    [sym_ucent] = ACTIONS(5159),
    [sym_wchar] = ACTIONS(5159),
    [sym_dchar] = ACTIONS(5159),
    [sym_float] = ACTIONS(5159),
    [sym_double] = ACTIONS(5159),
    [sym_real] = ACTIONS(5159),
    [sym_ifloat] = ACTIONS(5159),
    [sym_idouble] = ACTIONS(5159),
    [sym_ireal] = ACTIONS(5159),
    [sym_cfloat] = ACTIONS(5159),
    [sym_cdouble] = ACTIONS(5159),
    [sym_creal] = ACTIONS(5159),
    [sym_size_t] = ACTIONS(5159),
    [sym_ptrdiff_t] = ACTIONS(5159),
    [sym_string] = ACTIONS(5159),
    [sym_cstring] = ACTIONS(5159),
    [sym_dstring] = ACTIONS(5159),
    [sym_wstring] = ACTIONS(5159),
    [sym_noreturn] = ACTIONS(5159),
    [sym_true] = ACTIONS(5159),
    [sym_false] = ACTIONS(5159),
    [sym_null] = ACTIONS(5159),
    [sym_super] = ACTIONS(5159),
    [sym_this] = ACTIONS(5159),
    [sym_abstract] = ACTIONS(5159),
    [sym_alias] = ACTIONS(5159),
    [sym_align] = ACTIONS(5159),
    [sym_asm] = ACTIONS(5159),
    [sym_assert] = ACTIONS(5159),
    [sym_auto] = ACTIONS(5159),
    [sym_break] = ACTIONS(5159),
    [sym_case] = ACTIONS(5159),
    [sym_cast] = ACTIONS(5159),
    [sym_class] = ACTIONS(5159),
    [sym_const] = ACTIONS(5159),
    [sym_continue] = ACTIONS(5159),
    [sym_debug] = ACTIONS(5159),
    [sym_default] = ACTIONS(5159),
    [sym_delegate] = ACTIONS(5159),
    [sym_delete] = ACTIONS(5159),
    [sym_deprecated] = ACTIONS(5159),
    [sym_do] = ACTIONS(5159),
    [sym_enum] = ACTIONS(5159),
    [sym_export] = ACTIONS(5159),
    [sym_extern] = ACTIONS(5159),
    [sym_final] = ACTIONS(5159),
    [sym_for] = ACTIONS(5159),
    [sym_foreach] = ACTIONS(5159),
    [sym_foreach_reverse] = ACTIONS(5159),
    [sym_function] = ACTIONS(5159),
    [sym_goto] = ACTIONS(5159),
    [sym_if] = ACTIONS(5159),
    [sym_immutable] = ACTIONS(5159),
    [sym_import] = ACTIONS(5159),
    [sym_in] = ACTIONS(5159),
    [sym_inout] = ACTIONS(5159),
    [sym_interface] = ACTIONS(5159),
    [sym_invariant] = ACTIONS(5159),
    [sym_is] = ACTIONS(5159),
    [sym_mixin] = ACTIONS(5159),
    [sym_new] = ACTIONS(5159),
    [sym_nothrow] = ACTIONS(5159),
    [sym_out] = ACTIONS(5159),
    [sym_override] = ACTIONS(5159),
    [sym_package] = ACTIONS(5159),
    [sym_pragma] = ACTIONS(5159),
    [sym_private] = ACTIONS(5159),
    [sym_protected] = ACTIONS(5159),
    [sym_public] = ACTIONS(5159),
    [sym_pure] = ACTIONS(5159),
    [sym_ref] = ACTIONS(5159),
    [sym_return] = ACTIONS(5159),
    [sym_scope] = ACTIONS(5159),
    [sym_shared] = ACTIONS(5159),
    [sym_static] = ACTIONS(5159),
    [sym_struct] = ACTIONS(5159),
    [sym_switch] = ACTIONS(5159),
    [sym_synchronized] = ACTIONS(5159),
    [sym_template] = ACTIONS(5159),
    [sym_throw] = ACTIONS(5159),
    [sym_try] = ACTIONS(5159),
    [sym_typeid] = ACTIONS(5159),
    [sym_typeof] = ACTIONS(5159),
    [sym_union] = ACTIONS(5159),
    [sym_unittest] = ACTIONS(5159),
    [sym_version] = ACTIONS(5159),
    [sym_while] = ACTIONS(5159),
    [sym_with] = ACTIONS(5159),
    [sym_gshared] = ACTIONS(5159),
    [sym_traits] = ACTIONS(5159),
    [sym_vector] = ACTIONS(5159),
    [sym_void] = ACTIONS(5159),
    [anon_sym_BQUOTE] = ACTIONS(5161),
    [anon_sym_r_DQUOTE] = ACTIONS(5161),
    [anon_sym_x_DQUOTE] = ACTIONS(5161),
    [anon_sym_DQUOTE] = ACTIONS(5161),
    [anon_sym_i_BQUOTE] = ACTIONS(5161),
    [anon_sym_i_DQUOTE] = ACTIONS(5161),
    [anon_sym_iq_LBRACE] = ACTIONS(5161),
    [aux_sym_char_literal_token1] = ACTIONS(5161),
    [anon_sym_SQUOTE] = ACTIONS(5159),
    [anon_sym___DATE__] = ACTIONS(5159),
    [anon_sym___FILE__] = ACTIONS(5159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5159),
    [anon_sym___FUNCTION__] = ACTIONS(5159),
    [anon_sym___LINE__] = ACTIONS(5159),
    [anon_sym___MODULE__] = ACTIONS(5159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5159),
    [anon_sym___TIME__] = ACTIONS(5159),
    [anon_sym___TIMESTAMP__] = ACTIONS(5159),
    [anon_sym___VENDOR__] = ACTIONS(5159),
    [anon_sym___VERSION__] = ACTIONS(5159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5161),
    [sym_float_literal] = ACTIONS(5161),
    [sym__string] = ACTIONS(5161),
  },
  [1775] = {
    [sym_identifier] = ACTIONS(5163),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5165),
    [anon_sym_LBRACE] = ACTIONS(5165),
    [anon_sym_DOT] = ACTIONS(5165),
    [anon_sym_AMP] = ACTIONS(5165),
    [anon_sym_DASH] = ACTIONS(5163),
    [anon_sym_DASH_DASH] = ACTIONS(5165),
    [anon_sym_PLUS] = ACTIONS(5163),
    [anon_sym_PLUS_PLUS] = ACTIONS(5165),
    [anon_sym_BANG] = ACTIONS(5165),
    [anon_sym_LPAREN] = ACTIONS(5165),
    [anon_sym_LBRACK] = ACTIONS(5165),
    [anon_sym_SEMI] = ACTIONS(5165),
    [anon_sym_DOLLAR] = ACTIONS(5165),
    [anon_sym_STAR] = ACTIONS(5165),
    [anon_sym_TILDE] = ACTIONS(5165),
    [anon_sym_AT] = ACTIONS(5165),
    [sym_bool] = ACTIONS(5163),
    [sym_byte] = ACTIONS(5163),
    [sym_ubyte] = ACTIONS(5163),
    [sym_char] = ACTIONS(5163),
    [sym_short] = ACTIONS(5163),
    [sym_ushort] = ACTIONS(5163),
    [sym_int] = ACTIONS(5163),
    [sym_uint] = ACTIONS(5163),
    [sym_long] = ACTIONS(5163),
    [sym_ulong] = ACTIONS(5163),
    [sym_cent] = ACTIONS(5163),
    [sym_ucent] = ACTIONS(5163),
    [sym_wchar] = ACTIONS(5163),
    [sym_dchar] = ACTIONS(5163),
    [sym_float] = ACTIONS(5163),
    [sym_double] = ACTIONS(5163),
    [sym_real] = ACTIONS(5163),
    [sym_ifloat] = ACTIONS(5163),
    [sym_idouble] = ACTIONS(5163),
    [sym_ireal] = ACTIONS(5163),
    [sym_cfloat] = ACTIONS(5163),
    [sym_cdouble] = ACTIONS(5163),
    [sym_creal] = ACTIONS(5163),
    [sym_size_t] = ACTIONS(5163),
    [sym_ptrdiff_t] = ACTIONS(5163),
    [sym_string] = ACTIONS(5163),
    [sym_cstring] = ACTIONS(5163),
    [sym_dstring] = ACTIONS(5163),
    [sym_wstring] = ACTIONS(5163),
    [sym_noreturn] = ACTIONS(5163),
    [sym_true] = ACTIONS(5163),
    [sym_false] = ACTIONS(5163),
    [sym_null] = ACTIONS(5163),
    [sym_super] = ACTIONS(5163),
    [sym_this] = ACTIONS(5163),
    [sym_abstract] = ACTIONS(5163),
    [sym_alias] = ACTIONS(5163),
    [sym_align] = ACTIONS(5163),
    [sym_asm] = ACTIONS(5163),
    [sym_assert] = ACTIONS(5163),
    [sym_auto] = ACTIONS(5163),
    [sym_break] = ACTIONS(5163),
    [sym_case] = ACTIONS(5163),
    [sym_cast] = ACTIONS(5163),
    [sym_class] = ACTIONS(5163),
    [sym_const] = ACTIONS(5163),
    [sym_continue] = ACTIONS(5163),
    [sym_debug] = ACTIONS(5163),
    [sym_default] = ACTIONS(5163),
    [sym_delegate] = ACTIONS(5163),
    [sym_delete] = ACTIONS(5163),
    [sym_deprecated] = ACTIONS(5163),
    [sym_do] = ACTIONS(5163),
    [sym_enum] = ACTIONS(5163),
    [sym_export] = ACTIONS(5163),
    [sym_extern] = ACTIONS(5163),
    [sym_final] = ACTIONS(5163),
    [sym_for] = ACTIONS(5163),
    [sym_foreach] = ACTIONS(5163),
    [sym_foreach_reverse] = ACTIONS(5163),
    [sym_function] = ACTIONS(5163),
    [sym_goto] = ACTIONS(5163),
    [sym_if] = ACTIONS(5163),
    [sym_immutable] = ACTIONS(5163),
    [sym_import] = ACTIONS(5163),
    [sym_in] = ACTIONS(5163),
    [sym_inout] = ACTIONS(5163),
    [sym_interface] = ACTIONS(5163),
    [sym_invariant] = ACTIONS(5163),
    [sym_is] = ACTIONS(5163),
    [sym_mixin] = ACTIONS(5163),
    [sym_new] = ACTIONS(5163),
    [sym_nothrow] = ACTIONS(5163),
    [sym_out] = ACTIONS(5163),
    [sym_override] = ACTIONS(5163),
    [sym_package] = ACTIONS(5163),
    [sym_pragma] = ACTIONS(5163),
    [sym_private] = ACTIONS(5163),
    [sym_protected] = ACTIONS(5163),
    [sym_public] = ACTIONS(5163),
    [sym_pure] = ACTIONS(5163),
    [sym_ref] = ACTIONS(5163),
    [sym_return] = ACTIONS(5163),
    [sym_scope] = ACTIONS(5163),
    [sym_shared] = ACTIONS(5163),
    [sym_static] = ACTIONS(5163),
    [sym_struct] = ACTIONS(5163),
    [sym_switch] = ACTIONS(5163),
    [sym_synchronized] = ACTIONS(5163),
    [sym_template] = ACTIONS(5163),
    [sym_throw] = ACTIONS(5163),
    [sym_try] = ACTIONS(5163),
    [sym_typeid] = ACTIONS(5163),
    [sym_typeof] = ACTIONS(5163),
    [sym_union] = ACTIONS(5163),
    [sym_unittest] = ACTIONS(5163),
    [sym_version] = ACTIONS(5163),
    [sym_while] = ACTIONS(5163),
    [sym_with] = ACTIONS(5163),
    [sym_gshared] = ACTIONS(5163),
    [sym_traits] = ACTIONS(5163),
    [sym_vector] = ACTIONS(5163),
    [sym_void] = ACTIONS(5163),
    [anon_sym_BQUOTE] = ACTIONS(5165),
    [anon_sym_r_DQUOTE] = ACTIONS(5165),
    [anon_sym_x_DQUOTE] = ACTIONS(5165),
    [anon_sym_DQUOTE] = ACTIONS(5165),
    [anon_sym_i_BQUOTE] = ACTIONS(5165),
    [anon_sym_i_DQUOTE] = ACTIONS(5165),
    [anon_sym_iq_LBRACE] = ACTIONS(5165),
    [aux_sym_char_literal_token1] = ACTIONS(5165),
    [anon_sym_SQUOTE] = ACTIONS(5163),
    [anon_sym___DATE__] = ACTIONS(5163),
    [anon_sym___FILE__] = ACTIONS(5163),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5163),
    [anon_sym___FUNCTION__] = ACTIONS(5163),
    [anon_sym___LINE__] = ACTIONS(5163),
    [anon_sym___MODULE__] = ACTIONS(5163),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5163),
    [anon_sym___TIME__] = ACTIONS(5163),
    [anon_sym___TIMESTAMP__] = ACTIONS(5163),
    [anon_sym___VENDOR__] = ACTIONS(5163),
    [anon_sym___VERSION__] = ACTIONS(5163),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5165),
    [sym_float_literal] = ACTIONS(5165),
    [sym__string] = ACTIONS(5165),
  },
  [1776] = {
    [sym_identifier] = ACTIONS(5167),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5169),
    [anon_sym_LBRACE] = ACTIONS(5169),
    [anon_sym_DOT] = ACTIONS(5169),
    [anon_sym_AMP] = ACTIONS(5169),
    [anon_sym_DASH] = ACTIONS(5167),
    [anon_sym_DASH_DASH] = ACTIONS(5169),
    [anon_sym_PLUS] = ACTIONS(5167),
    [anon_sym_PLUS_PLUS] = ACTIONS(5169),
    [anon_sym_BANG] = ACTIONS(5169),
    [anon_sym_LPAREN] = ACTIONS(5169),
    [anon_sym_LBRACK] = ACTIONS(5169),
    [anon_sym_SEMI] = ACTIONS(5169),
    [anon_sym_DOLLAR] = ACTIONS(5169),
    [anon_sym_STAR] = ACTIONS(5169),
    [anon_sym_TILDE] = ACTIONS(5169),
    [anon_sym_AT] = ACTIONS(5169),
    [sym_bool] = ACTIONS(5167),
    [sym_byte] = ACTIONS(5167),
    [sym_ubyte] = ACTIONS(5167),
    [sym_char] = ACTIONS(5167),
    [sym_short] = ACTIONS(5167),
    [sym_ushort] = ACTIONS(5167),
    [sym_int] = ACTIONS(5167),
    [sym_uint] = ACTIONS(5167),
    [sym_long] = ACTIONS(5167),
    [sym_ulong] = ACTIONS(5167),
    [sym_cent] = ACTIONS(5167),
    [sym_ucent] = ACTIONS(5167),
    [sym_wchar] = ACTIONS(5167),
    [sym_dchar] = ACTIONS(5167),
    [sym_float] = ACTIONS(5167),
    [sym_double] = ACTIONS(5167),
    [sym_real] = ACTIONS(5167),
    [sym_ifloat] = ACTIONS(5167),
    [sym_idouble] = ACTIONS(5167),
    [sym_ireal] = ACTIONS(5167),
    [sym_cfloat] = ACTIONS(5167),
    [sym_cdouble] = ACTIONS(5167),
    [sym_creal] = ACTIONS(5167),
    [sym_size_t] = ACTIONS(5167),
    [sym_ptrdiff_t] = ACTIONS(5167),
    [sym_string] = ACTIONS(5167),
    [sym_cstring] = ACTIONS(5167),
    [sym_dstring] = ACTIONS(5167),
    [sym_wstring] = ACTIONS(5167),
    [sym_noreturn] = ACTIONS(5167),
    [sym_true] = ACTIONS(5167),
    [sym_false] = ACTIONS(5167),
    [sym_null] = ACTIONS(5167),
    [sym_super] = ACTIONS(5167),
    [sym_this] = ACTIONS(5167),
    [sym_abstract] = ACTIONS(5167),
    [sym_alias] = ACTIONS(5167),
    [sym_align] = ACTIONS(5167),
    [sym_asm] = ACTIONS(5167),
    [sym_assert] = ACTIONS(5167),
    [sym_auto] = ACTIONS(5167),
    [sym_break] = ACTIONS(5167),
    [sym_case] = ACTIONS(5167),
    [sym_cast] = ACTIONS(5167),
    [sym_class] = ACTIONS(5167),
    [sym_const] = ACTIONS(5167),
    [sym_continue] = ACTIONS(5167),
    [sym_debug] = ACTIONS(5167),
    [sym_default] = ACTIONS(5167),
    [sym_delegate] = ACTIONS(5167),
    [sym_delete] = ACTIONS(5167),
    [sym_deprecated] = ACTIONS(5167),
    [sym_do] = ACTIONS(5167),
    [sym_enum] = ACTIONS(5167),
    [sym_export] = ACTIONS(5167),
    [sym_extern] = ACTIONS(5167),
    [sym_final] = ACTIONS(5167),
    [sym_for] = ACTIONS(5167),
    [sym_foreach] = ACTIONS(5167),
    [sym_foreach_reverse] = ACTIONS(5167),
    [sym_function] = ACTIONS(5167),
    [sym_goto] = ACTIONS(5167),
    [sym_if] = ACTIONS(5167),
    [sym_immutable] = ACTIONS(5167),
    [sym_import] = ACTIONS(5167),
    [sym_in] = ACTIONS(5167),
    [sym_inout] = ACTIONS(5167),
    [sym_interface] = ACTIONS(5167),
    [sym_invariant] = ACTIONS(5167),
    [sym_is] = ACTIONS(5167),
    [sym_mixin] = ACTIONS(5167),
    [sym_new] = ACTIONS(5167),
    [sym_nothrow] = ACTIONS(5167),
    [sym_out] = ACTIONS(5167),
    [sym_override] = ACTIONS(5167),
    [sym_package] = ACTIONS(5167),
    [sym_pragma] = ACTIONS(5167),
    [sym_private] = ACTIONS(5167),
    [sym_protected] = ACTIONS(5167),
    [sym_public] = ACTIONS(5167),
    [sym_pure] = ACTIONS(5167),
    [sym_ref] = ACTIONS(5167),
    [sym_return] = ACTIONS(5167),
    [sym_scope] = ACTIONS(5167),
    [sym_shared] = ACTIONS(5167),
    [sym_static] = ACTIONS(5167),
    [sym_struct] = ACTIONS(5167),
    [sym_switch] = ACTIONS(5167),
    [sym_synchronized] = ACTIONS(5167),
    [sym_template] = ACTIONS(5167),
    [sym_throw] = ACTIONS(5167),
    [sym_try] = ACTIONS(5167),
    [sym_typeid] = ACTIONS(5167),
    [sym_typeof] = ACTIONS(5167),
    [sym_union] = ACTIONS(5167),
    [sym_unittest] = ACTIONS(5167),
    [sym_version] = ACTIONS(5167),
    [sym_while] = ACTIONS(5167),
    [sym_with] = ACTIONS(5167),
    [sym_gshared] = ACTIONS(5167),
    [sym_traits] = ACTIONS(5167),
    [sym_vector] = ACTIONS(5167),
    [sym_void] = ACTIONS(5167),
    [anon_sym_BQUOTE] = ACTIONS(5169),
    [anon_sym_r_DQUOTE] = ACTIONS(5169),
    [anon_sym_x_DQUOTE] = ACTIONS(5169),
    [anon_sym_DQUOTE] = ACTIONS(5169),
    [anon_sym_i_BQUOTE] = ACTIONS(5169),
    [anon_sym_i_DQUOTE] = ACTIONS(5169),
    [anon_sym_iq_LBRACE] = ACTIONS(5169),
    [aux_sym_char_literal_token1] = ACTIONS(5169),
    [anon_sym_SQUOTE] = ACTIONS(5167),
    [anon_sym___DATE__] = ACTIONS(5167),
    [anon_sym___FILE__] = ACTIONS(5167),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5167),
    [anon_sym___FUNCTION__] = ACTIONS(5167),
    [anon_sym___LINE__] = ACTIONS(5167),
    [anon_sym___MODULE__] = ACTIONS(5167),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5167),
    [anon_sym___TIME__] = ACTIONS(5167),
    [anon_sym___TIMESTAMP__] = ACTIONS(5167),
    [anon_sym___VENDOR__] = ACTIONS(5167),
    [anon_sym___VERSION__] = ACTIONS(5167),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5169),
    [sym_float_literal] = ACTIONS(5169),
    [sym__string] = ACTIONS(5169),
  },
  [1777] = {
    [sym_module_def] = STATE(6672),
    [sym_module_declaration] = STATE(1812),
    [sym_import_declaration] = STATE(1813),
    [sym_mixin_declaration] = STATE(1813),
    [sym__declaration] = STATE(1813),
    [sym__declaration2] = STATE(1813),
    [sym_variable_declaration] = STATE(1813),
    [sym_manifest_constant] = STATE(1813),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1813),
    [sym_alias_declaration] = STATE(1813),
    [sym_alias_reassign] = STATE(1813),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1813),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2518),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2920),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1813),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1813),
    [sym_union_declaration] = STATE(1813),
    [sym_postblit] = STATE(1813),
    [sym_invariant_declaration] = STATE(1813),
    [sym_class_declaration] = STATE(1813),
    [sym_constructor] = STATE(1813),
    [sym_destructor] = STATE(1813),
    [sym_alias_this] = STATE(1813),
    [sym_interface_declaration] = STATE(1813),
    [sym_enum_declaration] = STATE(1813),
    [sym_anonymous_enum_declaration] = STATE(1813),
    [sym_function_declaration] = STATE(1813),
    [sym_template_declaration] = STATE(1813),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1813),
    [sym_template_mixin] = STATE(1813),
    [sym_conditional_declaration] = STATE(1813),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1813),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1813),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1813),
    [sym_static_assert] = STATE(1813),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1813),
    [aux_sym_source_file_repeat1] = STATE(1813),
    [aux_sym_module_declaration_repeat1] = STATE(5343),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(5171),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(5173),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5175),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_module] = ACTIONS(53),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1778] = {
    [sym_import_declaration] = STATE(1781),
    [sym_mixin_declaration] = STATE(1781),
    [sym__declaration] = STATE(1781),
    [sym__declaration2] = STATE(1781),
    [sym_variable_declaration] = STATE(1781),
    [sym_manifest_constant] = STATE(1781),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1781),
    [sym_alias_declaration] = STATE(1781),
    [sym_alias_reassign] = STATE(1781),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1781),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1781),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1781),
    [sym_union_declaration] = STATE(1781),
    [sym_postblit] = STATE(1781),
    [sym_invariant_declaration] = STATE(1781),
    [sym_class_declaration] = STATE(1781),
    [sym_constructor] = STATE(1781),
    [sym_destructor] = STATE(1781),
    [sym_alias_this] = STATE(1781),
    [sym_interface_declaration] = STATE(1781),
    [sym_enum_declaration] = STATE(1781),
    [sym_anonymous_enum_declaration] = STATE(1781),
    [sym_function_declaration] = STATE(1781),
    [sym_template_declaration] = STATE(1781),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1781),
    [sym_template_mixin] = STATE(1781),
    [sym_conditional_declaration] = STATE(1781),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1781),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1781),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1781),
    [sym_static_assert] = STATE(1781),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1781),
    [aux_sym_source_file_repeat1] = STATE(1781),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5179),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2812),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1779] = {
    [sym_import_declaration] = STATE(1781),
    [sym_mixin_declaration] = STATE(1781),
    [sym__declaration] = STATE(1781),
    [sym__declaration2] = STATE(1781),
    [sym_variable_declaration] = STATE(1781),
    [sym_manifest_constant] = STATE(1781),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1781),
    [sym_alias_declaration] = STATE(1781),
    [sym_alias_reassign] = STATE(1781),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1781),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1781),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1781),
    [sym_union_declaration] = STATE(1781),
    [sym_postblit] = STATE(1781),
    [sym_invariant_declaration] = STATE(1781),
    [sym_class_declaration] = STATE(1781),
    [sym_constructor] = STATE(1781),
    [sym_destructor] = STATE(1781),
    [sym_alias_this] = STATE(1781),
    [sym_interface_declaration] = STATE(1781),
    [sym_enum_declaration] = STATE(1781),
    [sym_anonymous_enum_declaration] = STATE(1781),
    [sym_function_declaration] = STATE(1781),
    [sym_template_declaration] = STATE(1781),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1781),
    [sym_template_mixin] = STATE(1781),
    [sym_conditional_declaration] = STATE(1781),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1781),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1781),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1781),
    [sym_static_assert] = STATE(1781),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1781),
    [aux_sym_source_file_repeat1] = STATE(1781),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5179),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2806),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1780] = {
    [sym_import_declaration] = STATE(1788),
    [sym_mixin_declaration] = STATE(1788),
    [sym__declaration] = STATE(1788),
    [sym__declaration2] = STATE(1788),
    [sym_variable_declaration] = STATE(1788),
    [sym_manifest_constant] = STATE(1788),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1788),
    [sym_alias_declaration] = STATE(1788),
    [sym_alias_reassign] = STATE(1788),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1788),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1788),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1788),
    [sym_union_declaration] = STATE(1788),
    [sym_postblit] = STATE(1788),
    [sym_invariant_declaration] = STATE(1788),
    [sym_class_declaration] = STATE(1788),
    [sym_constructor] = STATE(1788),
    [sym_destructor] = STATE(1788),
    [sym_alias_this] = STATE(1788),
    [sym_interface_declaration] = STATE(1788),
    [sym_enum_declaration] = STATE(1788),
    [sym_anonymous_enum_declaration] = STATE(1788),
    [sym_function_declaration] = STATE(1788),
    [sym_template_declaration] = STATE(1788),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1788),
    [sym_template_mixin] = STATE(1788),
    [sym_conditional_declaration] = STATE(1788),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1788),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1788),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1788),
    [sym_static_assert] = STATE(1788),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1788),
    [aux_sym_source_file_repeat1] = STATE(1788),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5203),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1781] = {
    [sym_import_declaration] = STATE(1781),
    [sym_mixin_declaration] = STATE(1781),
    [sym__declaration] = STATE(1781),
    [sym__declaration2] = STATE(1781),
    [sym_variable_declaration] = STATE(1781),
    [sym_manifest_constant] = STATE(1781),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1781),
    [sym_alias_declaration] = STATE(1781),
    [sym_alias_reassign] = STATE(1781),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1781),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1781),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1781),
    [sym_union_declaration] = STATE(1781),
    [sym_postblit] = STATE(1781),
    [sym_invariant_declaration] = STATE(1781),
    [sym_class_declaration] = STATE(1781),
    [sym_constructor] = STATE(1781),
    [sym_destructor] = STATE(1781),
    [sym_alias_this] = STATE(1781),
    [sym_interface_declaration] = STATE(1781),
    [sym_enum_declaration] = STATE(1781),
    [sym_anonymous_enum_declaration] = STATE(1781),
    [sym_function_declaration] = STATE(1781),
    [sym_template_declaration] = STATE(1781),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1781),
    [sym_template_mixin] = STATE(1781),
    [sym_conditional_declaration] = STATE(1781),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1781),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1781),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1781),
    [sym_static_assert] = STATE(1781),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1781),
    [aux_sym_source_file_repeat1] = STATE(1781),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5205),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2674),
    [anon_sym_SEMI] = ACTIONS(5208),
    [anon_sym_TILDE] = ACTIONS(5211),
    [anon_sym_AT] = ACTIONS(2685),
    [sym_bool] = ACTIONS(2688),
    [sym_byte] = ACTIONS(2688),
    [sym_ubyte] = ACTIONS(2688),
    [sym_char] = ACTIONS(2688),
    [sym_short] = ACTIONS(2688),
    [sym_ushort] = ACTIONS(2688),
    [sym_int] = ACTIONS(2688),
    [sym_uint] = ACTIONS(2688),
    [sym_long] = ACTIONS(2688),
    [sym_ulong] = ACTIONS(2688),
    [sym_cent] = ACTIONS(2688),
    [sym_ucent] = ACTIONS(2688),
    [sym_wchar] = ACTIONS(2688),
    [sym_dchar] = ACTIONS(2688),
    [sym_float] = ACTIONS(2688),
    [sym_double] = ACTIONS(2688),
    [sym_real] = ACTIONS(2688),
    [sym_ifloat] = ACTIONS(2688),
    [sym_idouble] = ACTIONS(2688),
    [sym_ireal] = ACTIONS(2688),
    [sym_cfloat] = ACTIONS(2688),
    [sym_cdouble] = ACTIONS(2688),
    [sym_creal] = ACTIONS(2688),
    [sym_size_t] = ACTIONS(2688),
    [sym_ptrdiff_t] = ACTIONS(2688),
    [sym_string] = ACTIONS(2688),
    [sym_cstring] = ACTIONS(2688),
    [sym_dstring] = ACTIONS(2688),
    [sym_wstring] = ACTIONS(2688),
    [sym_noreturn] = ACTIONS(2688),
    [sym_this] = ACTIONS(5214),
    [sym_abstract] = ACTIONS(2694),
    [sym_alias] = ACTIONS(5217),
    [sym_align] = ACTIONS(2700),
    [sym_auto] = ACTIONS(2694),
    [sym_catch] = ACTIONS(2677),
    [sym_class] = ACTIONS(5220),
    [sym_const] = ACTIONS(2706),
    [sym_debug] = ACTIONS(5223),
    [sym_deprecated] = ACTIONS(2712),
    [sym_else] = ACTIONS(2677),
    [sym_enum] = ACTIONS(5226),
    [sym_export] = ACTIONS(5229),
    [sym_extern] = ACTIONS(2721),
    [sym_final] = ACTIONS(2694),
    [sym_finally] = ACTIONS(2677),
    [sym_immutable] = ACTIONS(2706),
    [sym_import] = ACTIONS(5232),
    [sym_inout] = ACTIONS(2706),
    [sym_interface] = ACTIONS(5235),
    [sym_invariant] = ACTIONS(5238),
    [sym_mixin] = ACTIONS(5241),
    [sym_nothrow] = ACTIONS(2694),
    [sym_override] = ACTIONS(2694),
    [sym_package] = ACTIONS(2736),
    [sym_pragma] = ACTIONS(2739),
    [sym_private] = ACTIONS(5229),
    [sym_protected] = ACTIONS(5229),
    [sym_public] = ACTIONS(5229),
    [sym_pure] = ACTIONS(2694),
    [sym_ref] = ACTIONS(2694),
    [sym_return] = ACTIONS(5229),
    [sym_scope] = ACTIONS(2694),
    [sym_shared] = ACTIONS(5244),
    [sym_static] = ACTIONS(5247),
    [sym_struct] = ACTIONS(5250),
    [sym_synchronized] = ACTIONS(2694),
    [sym_template] = ACTIONS(5253),
    [sym_typeof] = ACTIONS(2754),
    [sym_union] = ACTIONS(5256),
    [sym_unittest] = ACTIONS(5259),
    [sym_version] = ACTIONS(5262),
    [sym_while] = ACTIONS(2677),
    [sym_gshared] = ACTIONS(2694),
    [sym_traits] = ACTIONS(2766),
    [sym_vector] = ACTIONS(2769),
    [sym_void] = ACTIONS(2688),
    [sym_directive] = ACTIONS(3),
  },
  [1782] = {
    [sym_import_declaration] = STATE(1785),
    [sym_mixin_declaration] = STATE(1785),
    [sym__declaration] = STATE(1785),
    [sym__declaration2] = STATE(1785),
    [sym_variable_declaration] = STATE(1785),
    [sym_manifest_constant] = STATE(1785),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1785),
    [sym_alias_declaration] = STATE(1785),
    [sym_alias_reassign] = STATE(1785),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1785),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1785),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1785),
    [sym_union_declaration] = STATE(1785),
    [sym_postblit] = STATE(1785),
    [sym_invariant_declaration] = STATE(1785),
    [sym_class_declaration] = STATE(1785),
    [sym_constructor] = STATE(1785),
    [sym_destructor] = STATE(1785),
    [sym_alias_this] = STATE(1785),
    [sym_interface_declaration] = STATE(1785),
    [sym_enum_declaration] = STATE(1785),
    [sym_anonymous_enum_declaration] = STATE(1785),
    [sym_function_declaration] = STATE(1785),
    [sym_template_declaration] = STATE(1785),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1785),
    [sym_template_mixin] = STATE(1785),
    [sym_conditional_declaration] = STATE(1785),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1785),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1785),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1785),
    [sym_static_assert] = STATE(1785),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1785),
    [aux_sym_source_file_repeat1] = STATE(1785),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5265),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1783] = {
    [sym_import_declaration] = STATE(1779),
    [sym_mixin_declaration] = STATE(1779),
    [sym__declaration] = STATE(1779),
    [sym__declaration2] = STATE(1779),
    [sym_variable_declaration] = STATE(1779),
    [sym_manifest_constant] = STATE(1779),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1779),
    [sym_alias_declaration] = STATE(1779),
    [sym_alias_reassign] = STATE(1779),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1779),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1779),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1779),
    [sym_union_declaration] = STATE(1779),
    [sym_postblit] = STATE(1779),
    [sym_invariant_declaration] = STATE(1779),
    [sym_class_declaration] = STATE(1779),
    [sym_constructor] = STATE(1779),
    [sym_destructor] = STATE(1779),
    [sym_alias_this] = STATE(1779),
    [sym_interface_declaration] = STATE(1779),
    [sym_enum_declaration] = STATE(1779),
    [sym_anonymous_enum_declaration] = STATE(1779),
    [sym_function_declaration] = STATE(1779),
    [sym_template_declaration] = STATE(1779),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1779),
    [sym_template_mixin] = STATE(1779),
    [sym_conditional_declaration] = STATE(1779),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1779),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1779),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1779),
    [sym_static_assert] = STATE(1779),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1779),
    [aux_sym_source_file_repeat1] = STATE(1779),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5267),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2645),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1784] = {
    [sym_import_declaration] = STATE(1781),
    [sym_mixin_declaration] = STATE(1781),
    [sym__declaration] = STATE(1781),
    [sym__declaration2] = STATE(1781),
    [sym_variable_declaration] = STATE(1781),
    [sym_manifest_constant] = STATE(1781),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1781),
    [sym_alias_declaration] = STATE(1781),
    [sym_alias_reassign] = STATE(1781),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1781),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1781),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1781),
    [sym_union_declaration] = STATE(1781),
    [sym_postblit] = STATE(1781),
    [sym_invariant_declaration] = STATE(1781),
    [sym_class_declaration] = STATE(1781),
    [sym_constructor] = STATE(1781),
    [sym_destructor] = STATE(1781),
    [sym_alias_this] = STATE(1781),
    [sym_interface_declaration] = STATE(1781),
    [sym_enum_declaration] = STATE(1781),
    [sym_anonymous_enum_declaration] = STATE(1781),
    [sym_function_declaration] = STATE(1781),
    [sym_template_declaration] = STATE(1781),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1781),
    [sym_template_mixin] = STATE(1781),
    [sym_conditional_declaration] = STATE(1781),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1781),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1781),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1781),
    [sym_static_assert] = STATE(1781),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1781),
    [aux_sym_source_file_repeat1] = STATE(1781),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5179),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1785] = {
    [sym_import_declaration] = STATE(1781),
    [sym_mixin_declaration] = STATE(1781),
    [sym__declaration] = STATE(1781),
    [sym__declaration2] = STATE(1781),
    [sym_variable_declaration] = STATE(1781),
    [sym_manifest_constant] = STATE(1781),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1781),
    [sym_alias_declaration] = STATE(1781),
    [sym_alias_reassign] = STATE(1781),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1781),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1781),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1781),
    [sym_union_declaration] = STATE(1781),
    [sym_postblit] = STATE(1781),
    [sym_invariant_declaration] = STATE(1781),
    [sym_class_declaration] = STATE(1781),
    [sym_constructor] = STATE(1781),
    [sym_destructor] = STATE(1781),
    [sym_alias_this] = STATE(1781),
    [sym_interface_declaration] = STATE(1781),
    [sym_enum_declaration] = STATE(1781),
    [sym_anonymous_enum_declaration] = STATE(1781),
    [sym_function_declaration] = STATE(1781),
    [sym_template_declaration] = STATE(1781),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1781),
    [sym_template_mixin] = STATE(1781),
    [sym_conditional_declaration] = STATE(1781),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1781),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1781),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1781),
    [sym_static_assert] = STATE(1781),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1781),
    [aux_sym_source_file_repeat1] = STATE(1781),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5179),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2645),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1786] = {
    [sym_import_declaration] = STATE(1781),
    [sym_mixin_declaration] = STATE(1781),
    [sym__declaration] = STATE(1781),
    [sym__declaration2] = STATE(1781),
    [sym_variable_declaration] = STATE(1781),
    [sym_manifest_constant] = STATE(1781),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1781),
    [sym_alias_declaration] = STATE(1781),
    [sym_alias_reassign] = STATE(1781),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1781),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1781),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1781),
    [sym_union_declaration] = STATE(1781),
    [sym_postblit] = STATE(1781),
    [sym_invariant_declaration] = STATE(1781),
    [sym_class_declaration] = STATE(1781),
    [sym_constructor] = STATE(1781),
    [sym_destructor] = STATE(1781),
    [sym_alias_this] = STATE(1781),
    [sym_interface_declaration] = STATE(1781),
    [sym_enum_declaration] = STATE(1781),
    [sym_anonymous_enum_declaration] = STATE(1781),
    [sym_function_declaration] = STATE(1781),
    [sym_template_declaration] = STATE(1781),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1781),
    [sym_template_mixin] = STATE(1781),
    [sym_conditional_declaration] = STATE(1781),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1781),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1781),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1781),
    [sym_static_assert] = STATE(1781),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1781),
    [aux_sym_source_file_repeat1] = STATE(1781),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5179),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2784),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2784),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1787] = {
    [sym_import_declaration] = STATE(1778),
    [sym_mixin_declaration] = STATE(1778),
    [sym__declaration] = STATE(1778),
    [sym__declaration2] = STATE(1778),
    [sym_variable_declaration] = STATE(1778),
    [sym_manifest_constant] = STATE(1778),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1778),
    [sym_alias_declaration] = STATE(1778),
    [sym_alias_reassign] = STATE(1778),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1778),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1778),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1778),
    [sym_union_declaration] = STATE(1778),
    [sym_postblit] = STATE(1778),
    [sym_invariant_declaration] = STATE(1778),
    [sym_class_declaration] = STATE(1778),
    [sym_constructor] = STATE(1778),
    [sym_destructor] = STATE(1778),
    [sym_alias_this] = STATE(1778),
    [sym_interface_declaration] = STATE(1778),
    [sym_enum_declaration] = STATE(1778),
    [sym_anonymous_enum_declaration] = STATE(1778),
    [sym_function_declaration] = STATE(1778),
    [sym_template_declaration] = STATE(1778),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1778),
    [sym_template_mixin] = STATE(1778),
    [sym_conditional_declaration] = STATE(1778),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1778),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1778),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1778),
    [sym_static_assert] = STATE(1778),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1778),
    [aux_sym_source_file_repeat1] = STATE(1778),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5269),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2806),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1788] = {
    [sym_import_declaration] = STATE(1781),
    [sym_mixin_declaration] = STATE(1781),
    [sym__declaration] = STATE(1781),
    [sym__declaration2] = STATE(1781),
    [sym_variable_declaration] = STATE(1781),
    [sym_manifest_constant] = STATE(1781),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1781),
    [sym_alias_declaration] = STATE(1781),
    [sym_alias_reassign] = STATE(1781),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1781),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1781),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1781),
    [sym_union_declaration] = STATE(1781),
    [sym_postblit] = STATE(1781),
    [sym_invariant_declaration] = STATE(1781),
    [sym_class_declaration] = STATE(1781),
    [sym_constructor] = STATE(1781),
    [sym_destructor] = STATE(1781),
    [sym_alias_this] = STATE(1781),
    [sym_interface_declaration] = STATE(1781),
    [sym_enum_declaration] = STATE(1781),
    [sym_anonymous_enum_declaration] = STATE(1781),
    [sym_function_declaration] = STATE(1781),
    [sym_template_declaration] = STATE(1781),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1781),
    [sym_template_mixin] = STATE(1781),
    [sym_conditional_declaration] = STATE(1781),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1781),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1781),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1781),
    [sym_static_assert] = STATE(1781),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1781),
    [aux_sym_source_file_repeat1] = STATE(1781),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5179),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_finally] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1789] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1790] = {
    [sym_import_declaration] = STATE(1809),
    [sym_mixin_declaration] = STATE(1809),
    [sym__declaration] = STATE(1809),
    [sym__declaration2] = STATE(1809),
    [sym_variable_declaration] = STATE(1809),
    [sym_manifest_constant] = STATE(1809),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1809),
    [sym_alias_declaration] = STATE(1809),
    [sym_alias_reassign] = STATE(1809),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1809),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1809),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1809),
    [sym_union_declaration] = STATE(1809),
    [sym_postblit] = STATE(1809),
    [sym_invariant_declaration] = STATE(1809),
    [sym_class_declaration] = STATE(1809),
    [sym_constructor] = STATE(1809),
    [sym_destructor] = STATE(1809),
    [sym_alias_this] = STATE(1809),
    [sym_interface_declaration] = STATE(1809),
    [sym_enum_declaration] = STATE(1809),
    [sym_anonymous_enum_declaration] = STATE(1809),
    [sym_function_declaration] = STATE(1809),
    [sym_template_declaration] = STATE(1809),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1809),
    [sym_template_mixin] = STATE(1809),
    [sym_conditional_declaration] = STATE(1809),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1809),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1809),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1809),
    [sym_static_assert] = STATE(1809),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1809),
    [aux_sym_source_file_repeat1] = STATE(1809),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2796),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5311),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1791] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2782),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2784),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1792] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2663),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1793] = {
    [sym_import_declaration] = STATE(1807),
    [sym_mixin_declaration] = STATE(1807),
    [sym__declaration] = STATE(1807),
    [sym__declaration2] = STATE(1807),
    [sym_variable_declaration] = STATE(1807),
    [sym_manifest_constant] = STATE(1807),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1807),
    [sym_alias_declaration] = STATE(1807),
    [sym_alias_reassign] = STATE(1807),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1807),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1807),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1807),
    [sym_union_declaration] = STATE(1807),
    [sym_postblit] = STATE(1807),
    [sym_invariant_declaration] = STATE(1807),
    [sym_class_declaration] = STATE(1807),
    [sym_constructor] = STATE(1807),
    [sym_destructor] = STATE(1807),
    [sym_alias_this] = STATE(1807),
    [sym_interface_declaration] = STATE(1807),
    [sym_enum_declaration] = STATE(1807),
    [sym_anonymous_enum_declaration] = STATE(1807),
    [sym_function_declaration] = STATE(1807),
    [sym_template_declaration] = STATE(1807),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1807),
    [sym_template_mixin] = STATE(1807),
    [sym_conditional_declaration] = STATE(1807),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1807),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1807),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1807),
    [sym_static_assert] = STATE(1807),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1807),
    [aux_sym_source_file_repeat1] = STATE(1807),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5315),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1794] = {
    [sym_import_declaration] = STATE(1789),
    [sym_mixin_declaration] = STATE(1789),
    [sym__declaration] = STATE(1789),
    [sym__declaration2] = STATE(1789),
    [sym_variable_declaration] = STATE(1789),
    [sym_manifest_constant] = STATE(1789),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1789),
    [sym_alias_declaration] = STATE(1789),
    [sym_alias_reassign] = STATE(1789),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1789),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1789),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1789),
    [sym_union_declaration] = STATE(1789),
    [sym_postblit] = STATE(1789),
    [sym_invariant_declaration] = STATE(1789),
    [sym_class_declaration] = STATE(1789),
    [sym_constructor] = STATE(1789),
    [sym_destructor] = STATE(1789),
    [sym_alias_this] = STATE(1789),
    [sym_interface_declaration] = STATE(1789),
    [sym_enum_declaration] = STATE(1789),
    [sym_anonymous_enum_declaration] = STATE(1789),
    [sym_function_declaration] = STATE(1789),
    [sym_template_declaration] = STATE(1789),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1789),
    [sym_template_mixin] = STATE(1789),
    [sym_conditional_declaration] = STATE(1789),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1789),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1789),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1789),
    [sym_static_assert] = STATE(1789),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1789),
    [aux_sym_source_file_repeat1] = STATE(1789),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5317),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1795] = {
    [sym_import_declaration] = STATE(1806),
    [sym_mixin_declaration] = STATE(1806),
    [sym__declaration] = STATE(1806),
    [sym__declaration2] = STATE(1806),
    [sym_variable_declaration] = STATE(1806),
    [sym_manifest_constant] = STATE(1806),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1806),
    [sym_alias_declaration] = STATE(1806),
    [sym_alias_reassign] = STATE(1806),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1806),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1806),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1806),
    [sym_union_declaration] = STATE(1806),
    [sym_postblit] = STATE(1806),
    [sym_invariant_declaration] = STATE(1806),
    [sym_class_declaration] = STATE(1806),
    [sym_constructor] = STATE(1806),
    [sym_destructor] = STATE(1806),
    [sym_alias_this] = STATE(1806),
    [sym_interface_declaration] = STATE(1806),
    [sym_enum_declaration] = STATE(1806),
    [sym_anonymous_enum_declaration] = STATE(1806),
    [sym_function_declaration] = STATE(1806),
    [sym_template_declaration] = STATE(1806),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1806),
    [sym_template_mixin] = STATE(1806),
    [sym_conditional_declaration] = STATE(1806),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1806),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1806),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1806),
    [sym_static_assert] = STATE(1806),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1806),
    [aux_sym_source_file_repeat1] = STATE(1806),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2663),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5319),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1796] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2810),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1797] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1798] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1799] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5321),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2672),
    [anon_sym_DOT] = ACTIONS(2674),
    [anon_sym_SEMI] = ACTIONS(5324),
    [anon_sym_TILDE] = ACTIONS(5327),
    [anon_sym_AT] = ACTIONS(2685),
    [sym_bool] = ACTIONS(2688),
    [sym_byte] = ACTIONS(2688),
    [sym_ubyte] = ACTIONS(2688),
    [sym_char] = ACTIONS(2688),
    [sym_short] = ACTIONS(2688),
    [sym_ushort] = ACTIONS(2688),
    [sym_int] = ACTIONS(2688),
    [sym_uint] = ACTIONS(2688),
    [sym_long] = ACTIONS(2688),
    [sym_ulong] = ACTIONS(2688),
    [sym_cent] = ACTIONS(2688),
    [sym_ucent] = ACTIONS(2688),
    [sym_wchar] = ACTIONS(2688),
    [sym_dchar] = ACTIONS(2688),
    [sym_float] = ACTIONS(2688),
    [sym_double] = ACTIONS(2688),
    [sym_real] = ACTIONS(2688),
    [sym_ifloat] = ACTIONS(2688),
    [sym_idouble] = ACTIONS(2688),
    [sym_ireal] = ACTIONS(2688),
    [sym_cfloat] = ACTIONS(2688),
    [sym_cdouble] = ACTIONS(2688),
    [sym_creal] = ACTIONS(2688),
    [sym_size_t] = ACTIONS(2688),
    [sym_ptrdiff_t] = ACTIONS(2688),
    [sym_string] = ACTIONS(2688),
    [sym_cstring] = ACTIONS(2688),
    [sym_dstring] = ACTIONS(2688),
    [sym_wstring] = ACTIONS(2688),
    [sym_noreturn] = ACTIONS(2688),
    [sym_this] = ACTIONS(5330),
    [sym_abstract] = ACTIONS(2694),
    [sym_alias] = ACTIONS(5333),
    [sym_align] = ACTIONS(2700),
    [sym_auto] = ACTIONS(2694),
    [sym_class] = ACTIONS(5336),
    [sym_const] = ACTIONS(2706),
    [sym_debug] = ACTIONS(5339),
    [sym_deprecated] = ACTIONS(2712),
    [sym_else] = ACTIONS(2677),
    [sym_enum] = ACTIONS(5342),
    [sym_export] = ACTIONS(5345),
    [sym_extern] = ACTIONS(2721),
    [sym_final] = ACTIONS(2694),
    [sym_immutable] = ACTIONS(2706),
    [sym_import] = ACTIONS(5348),
    [sym_inout] = ACTIONS(2706),
    [sym_interface] = ACTIONS(5351),
    [sym_invariant] = ACTIONS(5354),
    [sym_mixin] = ACTIONS(5357),
    [sym_nothrow] = ACTIONS(2694),
    [sym_override] = ACTIONS(2694),
    [sym_package] = ACTIONS(2736),
    [sym_pragma] = ACTIONS(2739),
    [sym_private] = ACTIONS(5345),
    [sym_protected] = ACTIONS(5345),
    [sym_public] = ACTIONS(5345),
    [sym_pure] = ACTIONS(2694),
    [sym_ref] = ACTIONS(2694),
    [sym_return] = ACTIONS(5345),
    [sym_scope] = ACTIONS(2694),
    [sym_shared] = ACTIONS(5360),
    [sym_static] = ACTIONS(5363),
    [sym_struct] = ACTIONS(5366),
    [sym_synchronized] = ACTIONS(2694),
    [sym_template] = ACTIONS(5369),
    [sym_typeof] = ACTIONS(2754),
    [sym_union] = ACTIONS(5372),
    [sym_unittest] = ACTIONS(5375),
    [sym_version] = ACTIONS(5378),
    [sym_while] = ACTIONS(2677),
    [sym_gshared] = ACTIONS(2694),
    [sym_traits] = ACTIONS(2766),
    [sym_vector] = ACTIONS(2769),
    [sym_void] = ACTIONS(2688),
    [sym_directive] = ACTIONS(3),
  },
  [1800] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2672),
    [sym_identifier] = ACTIONS(5381),
    [sym_end_file] = ACTIONS(2677),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2674),
    [anon_sym_SEMI] = ACTIONS(5384),
    [anon_sym_TILDE] = ACTIONS(5387),
    [anon_sym_AT] = ACTIONS(2685),
    [sym_bool] = ACTIONS(2688),
    [sym_byte] = ACTIONS(2688),
    [sym_ubyte] = ACTIONS(2688),
    [sym_char] = ACTIONS(2688),
    [sym_short] = ACTIONS(2688),
    [sym_ushort] = ACTIONS(2688),
    [sym_int] = ACTIONS(2688),
    [sym_uint] = ACTIONS(2688),
    [sym_long] = ACTIONS(2688),
    [sym_ulong] = ACTIONS(2688),
    [sym_cent] = ACTIONS(2688),
    [sym_ucent] = ACTIONS(2688),
    [sym_wchar] = ACTIONS(2688),
    [sym_dchar] = ACTIONS(2688),
    [sym_float] = ACTIONS(2688),
    [sym_double] = ACTIONS(2688),
    [sym_real] = ACTIONS(2688),
    [sym_ifloat] = ACTIONS(2688),
    [sym_idouble] = ACTIONS(2688),
    [sym_ireal] = ACTIONS(2688),
    [sym_cfloat] = ACTIONS(2688),
    [sym_cdouble] = ACTIONS(2688),
    [sym_creal] = ACTIONS(2688),
    [sym_size_t] = ACTIONS(2688),
    [sym_ptrdiff_t] = ACTIONS(2688),
    [sym_string] = ACTIONS(2688),
    [sym_cstring] = ACTIONS(2688),
    [sym_dstring] = ACTIONS(2688),
    [sym_wstring] = ACTIONS(2688),
    [sym_noreturn] = ACTIONS(2688),
    [sym_this] = ACTIONS(5390),
    [sym_abstract] = ACTIONS(2694),
    [sym_alias] = ACTIONS(5393),
    [sym_align] = ACTIONS(2700),
    [sym_auto] = ACTIONS(2694),
    [sym_class] = ACTIONS(5396),
    [sym_const] = ACTIONS(2706),
    [sym_debug] = ACTIONS(5399),
    [sym_deprecated] = ACTIONS(2712),
    [sym_else] = ACTIONS(2677),
    [sym_enum] = ACTIONS(5402),
    [sym_export] = ACTIONS(5405),
    [sym_extern] = ACTIONS(2721),
    [sym_final] = ACTIONS(2694),
    [sym_immutable] = ACTIONS(2706),
    [sym_import] = ACTIONS(5408),
    [sym_inout] = ACTIONS(2706),
    [sym_interface] = ACTIONS(5411),
    [sym_invariant] = ACTIONS(5414),
    [sym_mixin] = ACTIONS(5417),
    [sym_nothrow] = ACTIONS(2694),
    [sym_override] = ACTIONS(2694),
    [sym_package] = ACTIONS(2736),
    [sym_pragma] = ACTIONS(2739),
    [sym_private] = ACTIONS(5405),
    [sym_protected] = ACTIONS(5405),
    [sym_public] = ACTIONS(5405),
    [sym_pure] = ACTIONS(2694),
    [sym_ref] = ACTIONS(2694),
    [sym_return] = ACTIONS(5405),
    [sym_scope] = ACTIONS(2694),
    [sym_shared] = ACTIONS(5420),
    [sym_static] = ACTIONS(5423),
    [sym_struct] = ACTIONS(5426),
    [sym_synchronized] = ACTIONS(2694),
    [sym_template] = ACTIONS(5429),
    [sym_typeof] = ACTIONS(2754),
    [sym_union] = ACTIONS(5432),
    [sym_unittest] = ACTIONS(5435),
    [sym_version] = ACTIONS(5438),
    [sym_gshared] = ACTIONS(2694),
    [sym_traits] = ACTIONS(2766),
    [sym_vector] = ACTIONS(2769),
    [sym_void] = ACTIONS(2688),
    [sym_directive] = ACTIONS(3),
  },
  [1801] = {
    [sym_import_declaration] = STATE(1805),
    [sym_mixin_declaration] = STATE(1805),
    [sym__declaration] = STATE(1805),
    [sym__declaration2] = STATE(1805),
    [sym_variable_declaration] = STATE(1805),
    [sym_manifest_constant] = STATE(1805),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1805),
    [sym_alias_declaration] = STATE(1805),
    [sym_alias_reassign] = STATE(1805),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1805),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1805),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1805),
    [sym_union_declaration] = STATE(1805),
    [sym_postblit] = STATE(1805),
    [sym_invariant_declaration] = STATE(1805),
    [sym_class_declaration] = STATE(1805),
    [sym_constructor] = STATE(1805),
    [sym_destructor] = STATE(1805),
    [sym_alias_this] = STATE(1805),
    [sym_interface_declaration] = STATE(1805),
    [sym_enum_declaration] = STATE(1805),
    [sym_anonymous_enum_declaration] = STATE(1805),
    [sym_function_declaration] = STATE(1805),
    [sym_template_declaration] = STATE(1805),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1805),
    [sym_template_mixin] = STATE(1805),
    [sym_conditional_declaration] = STATE(1805),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1805),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1805),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1805),
    [sym_static_assert] = STATE(1805),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1805),
    [aux_sym_source_file_repeat1] = STATE(1805),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2643),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5441),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1802] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2784),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1803] = {
    [sym_import_declaration] = STATE(1808),
    [sym_mixin_declaration] = STATE(1808),
    [sym__declaration] = STATE(1808),
    [sym__declaration2] = STATE(1808),
    [sym_variable_declaration] = STATE(1808),
    [sym_manifest_constant] = STATE(1808),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1808),
    [sym_alias_declaration] = STATE(1808),
    [sym_alias_reassign] = STATE(1808),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1808),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1808),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1808),
    [sym_union_declaration] = STATE(1808),
    [sym_postblit] = STATE(1808),
    [sym_invariant_declaration] = STATE(1808),
    [sym_class_declaration] = STATE(1808),
    [sym_constructor] = STATE(1808),
    [sym_destructor] = STATE(1808),
    [sym_alias_this] = STATE(1808),
    [sym_interface_declaration] = STATE(1808),
    [sym_enum_declaration] = STATE(1808),
    [sym_anonymous_enum_declaration] = STATE(1808),
    [sym_function_declaration] = STATE(1808),
    [sym_template_declaration] = STATE(1808),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1808),
    [sym_template_mixin] = STATE(1808),
    [sym_conditional_declaration] = STATE(1808),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1808),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1808),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1808),
    [sym_static_assert] = STATE(1808),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1808),
    [aux_sym_source_file_repeat1] = STATE(1808),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2804),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5443),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1804] = {
    [sym_import_declaration] = STATE(1798),
    [sym_mixin_declaration] = STATE(1798),
    [sym__declaration] = STATE(1798),
    [sym__declaration2] = STATE(1798),
    [sym_variable_declaration] = STATE(1798),
    [sym_manifest_constant] = STATE(1798),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1798),
    [sym_alias_declaration] = STATE(1798),
    [sym_alias_reassign] = STATE(1798),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1798),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1798),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1798),
    [sym_union_declaration] = STATE(1798),
    [sym_postblit] = STATE(1798),
    [sym_invariant_declaration] = STATE(1798),
    [sym_class_declaration] = STATE(1798),
    [sym_constructor] = STATE(1798),
    [sym_destructor] = STATE(1798),
    [sym_alias_this] = STATE(1798),
    [sym_interface_declaration] = STATE(1798),
    [sym_enum_declaration] = STATE(1798),
    [sym_anonymous_enum_declaration] = STATE(1798),
    [sym_function_declaration] = STATE(1798),
    [sym_template_declaration] = STATE(1798),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1798),
    [sym_template_mixin] = STATE(1798),
    [sym_conditional_declaration] = STATE(1798),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1798),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1798),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1798),
    [sym_static_assert] = STATE(1798),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1798),
    [aux_sym_source_file_repeat1] = STATE(1798),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5445),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1805] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2804),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1806] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2796),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1807] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1808] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2810),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2812),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1809] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(2643),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1810] = {
    [sym_import_declaration] = STATE(1796),
    [sym_mixin_declaration] = STATE(1796),
    [sym__declaration] = STATE(1796),
    [sym__declaration2] = STATE(1796),
    [sym_variable_declaration] = STATE(1796),
    [sym_manifest_constant] = STATE(1796),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1796),
    [sym_alias_declaration] = STATE(1796),
    [sym_alias_reassign] = STATE(1796),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1796),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1796),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1796),
    [sym_union_declaration] = STATE(1796),
    [sym_postblit] = STATE(1796),
    [sym_invariant_declaration] = STATE(1796),
    [sym_class_declaration] = STATE(1796),
    [sym_constructor] = STATE(1796),
    [sym_destructor] = STATE(1796),
    [sym_alias_this] = STATE(1796),
    [sym_interface_declaration] = STATE(1796),
    [sym_enum_declaration] = STATE(1796),
    [sym_anonymous_enum_declaration] = STATE(1796),
    [sym_function_declaration] = STATE(1796),
    [sym_template_declaration] = STATE(1796),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1796),
    [sym_template_mixin] = STATE(1796),
    [sym_conditional_declaration] = STATE(1796),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1796),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1796),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1796),
    [sym_static_assert] = STATE(1796),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1796),
    [aux_sym_source_file_repeat1] = STATE(1796),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5447),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_while] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1811] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(5171),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(5173),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1812] = {
    [sym_import_declaration] = STATE(1814),
    [sym_mixin_declaration] = STATE(1814),
    [sym__declaration] = STATE(1814),
    [sym__declaration2] = STATE(1814),
    [sym_variable_declaration] = STATE(1814),
    [sym_manifest_constant] = STATE(1814),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1814),
    [sym_alias_declaration] = STATE(1814),
    [sym_alias_reassign] = STATE(1814),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1814),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1814),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1814),
    [sym_union_declaration] = STATE(1814),
    [sym_postblit] = STATE(1814),
    [sym_invariant_declaration] = STATE(1814),
    [sym_class_declaration] = STATE(1814),
    [sym_constructor] = STATE(1814),
    [sym_destructor] = STATE(1814),
    [sym_alias_this] = STATE(1814),
    [sym_interface_declaration] = STATE(1814),
    [sym_enum_declaration] = STATE(1814),
    [sym_anonymous_enum_declaration] = STATE(1814),
    [sym_function_declaration] = STATE(1814),
    [sym_template_declaration] = STATE(1814),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1814),
    [sym_template_mixin] = STATE(1814),
    [sym_conditional_declaration] = STATE(1814),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1814),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1814),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1814),
    [sym_static_assert] = STATE(1814),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1814),
    [aux_sym_source_file_repeat1] = STATE(1814),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(5449),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(5451),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5453),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1813] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(5455),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(5457),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1814] = {
    [sym_import_declaration] = STATE(1800),
    [sym_mixin_declaration] = STATE(1800),
    [sym__declaration] = STATE(1800),
    [sym__declaration2] = STATE(1800),
    [sym_variable_declaration] = STATE(1800),
    [sym_manifest_constant] = STATE(1800),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1800),
    [sym_alias_declaration] = STATE(1800),
    [sym_alias_reassign] = STATE(1800),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1800),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1800),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1800),
    [sym_union_declaration] = STATE(1800),
    [sym_postblit] = STATE(1800),
    [sym_invariant_declaration] = STATE(1800),
    [sym_class_declaration] = STATE(1800),
    [sym_constructor] = STATE(1800),
    [sym_destructor] = STATE(1800),
    [sym_alias_this] = STATE(1800),
    [sym_interface_declaration] = STATE(1800),
    [sym_enum_declaration] = STATE(1800),
    [sym_anonymous_enum_declaration] = STATE(1800),
    [sym_function_declaration] = STATE(1800),
    [sym_template_declaration] = STATE(1800),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1800),
    [sym_template_mixin] = STATE(1800),
    [sym_conditional_declaration] = STATE(1800),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1800),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1800),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1800),
    [sym_static_assert] = STATE(1800),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1800),
    [aux_sym_source_file_repeat1] = STATE(1800),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [ts_builtin_sym_end] = ACTIONS(5459),
    [sym_identifier] = ACTIONS(7),
    [sym_end_file] = ACTIONS(5461),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5313),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1815] = {
    [sym_import_declaration] = STATE(2014),
    [sym_mixin_declaration] = STATE(2014),
    [sym__declaration] = STATE(2014),
    [sym__declaration2] = STATE(2014),
    [sym_variable_declaration] = STATE(2014),
    [sym_manifest_constant] = STATE(2014),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2014),
    [sym_alias_declaration] = STATE(2014),
    [sym_alias_reassign] = STATE(2014),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2014),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2014),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2014),
    [sym_union_declaration] = STATE(2014),
    [sym_postblit] = STATE(2014),
    [sym_invariant_declaration] = STATE(2014),
    [sym_class_declaration] = STATE(2014),
    [sym_constructor] = STATE(2014),
    [sym_destructor] = STATE(2014),
    [sym_alias_this] = STATE(2014),
    [sym_interface_declaration] = STATE(2014),
    [sym_enum_declaration] = STATE(2014),
    [sym_anonymous_enum_declaration] = STATE(2014),
    [sym_function_declaration] = STATE(2014),
    [sym_template_declaration] = STATE(2014),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2014),
    [sym_template_mixin] = STATE(2014),
    [sym_conditional_declaration] = STATE(2014),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2014),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2014),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2014),
    [sym_static_assert] = STATE(2014),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2014),
    [aux_sym_source_file_repeat1] = STATE(2014),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5463),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5465),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1816] = {
    [sym_import_declaration] = STATE(1829),
    [sym_mixin_declaration] = STATE(1829),
    [sym__declaration] = STATE(1829),
    [sym__declaration2] = STATE(1829),
    [sym_variable_declaration] = STATE(1829),
    [sym_manifest_constant] = STATE(1829),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1829),
    [sym_alias_declaration] = STATE(1829),
    [sym_alias_reassign] = STATE(1829),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1829),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1829),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1829),
    [sym_union_declaration] = STATE(1829),
    [sym_postblit] = STATE(1829),
    [sym_invariant_declaration] = STATE(1829),
    [sym_class_declaration] = STATE(1829),
    [sym_constructor] = STATE(1829),
    [sym_destructor] = STATE(1829),
    [sym_alias_this] = STATE(1829),
    [sym_interface_declaration] = STATE(1829),
    [sym_enum_declaration] = STATE(1829),
    [sym_anonymous_enum_declaration] = STATE(1829),
    [sym_function_declaration] = STATE(1829),
    [sym_template_declaration] = STATE(1829),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1829),
    [sym_template_mixin] = STATE(1829),
    [sym_conditional_declaration] = STATE(1829),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1829),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1829),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1829),
    [sym_static_assert] = STATE(1829),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1829),
    [aux_sym_source_file_repeat1] = STATE(1829),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5467),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5469),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1817] = {
    [sym_import_declaration] = STATE(1888),
    [sym_mixin_declaration] = STATE(1888),
    [sym__declaration] = STATE(1888),
    [sym__declaration2] = STATE(1888),
    [sym_variable_declaration] = STATE(1888),
    [sym_manifest_constant] = STATE(1888),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1888),
    [sym_alias_declaration] = STATE(1888),
    [sym_alias_reassign] = STATE(1888),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1888),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1888),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1888),
    [sym_union_declaration] = STATE(1888),
    [sym_postblit] = STATE(1888),
    [sym_invariant_declaration] = STATE(1888),
    [sym_class_declaration] = STATE(1888),
    [sym_constructor] = STATE(1888),
    [sym_destructor] = STATE(1888),
    [sym_alias_this] = STATE(1888),
    [sym_interface_declaration] = STATE(1888),
    [sym_enum_declaration] = STATE(1888),
    [sym_anonymous_enum_declaration] = STATE(1888),
    [sym_function_declaration] = STATE(1888),
    [sym_template_declaration] = STATE(1888),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1888),
    [sym_template_mixin] = STATE(1888),
    [sym_conditional_declaration] = STATE(1888),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1888),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1888),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1888),
    [sym_static_assert] = STATE(1888),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1888),
    [aux_sym_source_file_repeat1] = STATE(1888),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5471),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5473),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1818] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5475),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1819] = {
    [sym_import_declaration] = STATE(2622),
    [sym_mixin_declaration] = STATE(2622),
    [sym__declaration] = STATE(2622),
    [sym__declaration2] = STATE(2622),
    [sym_variable_declaration] = STATE(2622),
    [sym_manifest_constant] = STATE(2622),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2622),
    [sym_alias_declaration] = STATE(2622),
    [sym_alias_reassign] = STATE(2622),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2622),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2622),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2622),
    [sym_union_declaration] = STATE(2622),
    [sym_postblit] = STATE(2622),
    [sym_invariant_declaration] = STATE(2622),
    [sym_class_declaration] = STATE(2622),
    [sym_constructor] = STATE(2622),
    [sym_destructor] = STATE(2622),
    [sym_alias_this] = STATE(2622),
    [sym_interface_declaration] = STATE(2622),
    [sym_enum_declaration] = STATE(2622),
    [sym_anonymous_enum_declaration] = STATE(2622),
    [sym_function_declaration] = STATE(2622),
    [sym_template_declaration] = STATE(2622),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2622),
    [sym_template_mixin] = STATE(2622),
    [sym_conditional_declaration] = STATE(2622),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2622),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2622),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2622),
    [sym_static_assert] = STATE(2622),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2622),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5477),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5479),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1820] = {
    [sym_import_declaration] = STATE(1882),
    [sym_mixin_declaration] = STATE(1882),
    [sym__declaration] = STATE(1882),
    [sym__declaration2] = STATE(1882),
    [sym_variable_declaration] = STATE(1882),
    [sym_manifest_constant] = STATE(1882),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1882),
    [sym_alias_declaration] = STATE(1882),
    [sym_alias_reassign] = STATE(1882),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1882),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1882),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1882),
    [sym_union_declaration] = STATE(1882),
    [sym_postblit] = STATE(1882),
    [sym_invariant_declaration] = STATE(1882),
    [sym_class_declaration] = STATE(1882),
    [sym_constructor] = STATE(1882),
    [sym_destructor] = STATE(1882),
    [sym_alias_this] = STATE(1882),
    [sym_interface_declaration] = STATE(1882),
    [sym_enum_declaration] = STATE(1882),
    [sym_anonymous_enum_declaration] = STATE(1882),
    [sym_function_declaration] = STATE(1882),
    [sym_template_declaration] = STATE(1882),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1882),
    [sym_template_mixin] = STATE(1882),
    [sym_conditional_declaration] = STATE(1882),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1882),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1882),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1882),
    [sym_static_assert] = STATE(1882),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1882),
    [aux_sym_source_file_repeat1] = STATE(1882),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5481),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5483),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1821] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5485),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1822] = {
    [sym_import_declaration] = STATE(1740),
    [sym_mixin_declaration] = STATE(1740),
    [sym__declaration] = STATE(1740),
    [sym__declaration2] = STATE(1740),
    [sym_variable_declaration] = STATE(1740),
    [sym_manifest_constant] = STATE(1740),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1740),
    [sym_alias_declaration] = STATE(1740),
    [sym_alias_reassign] = STATE(1740),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1740),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1740),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1740),
    [sym_union_declaration] = STATE(1740),
    [sym_postblit] = STATE(1740),
    [sym_invariant_declaration] = STATE(1740),
    [sym_class_declaration] = STATE(1740),
    [sym_constructor] = STATE(1740),
    [sym_destructor] = STATE(1740),
    [sym_alias_this] = STATE(1740),
    [sym_interface_declaration] = STATE(1740),
    [sym_enum_declaration] = STATE(1740),
    [sym_anonymous_enum_declaration] = STATE(1740),
    [sym_function_declaration] = STATE(1740),
    [sym_template_declaration] = STATE(1740),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1740),
    [sym_template_mixin] = STATE(1740),
    [sym_conditional_declaration] = STATE(1740),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1740),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1740),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1740),
    [sym_static_assert] = STATE(1740),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1740),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5487),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5489),
    [anon_sym_COLON] = ACTIONS(5491),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1823] = {
    [sym_import_declaration] = STATE(1921),
    [sym_mixin_declaration] = STATE(1921),
    [sym__declaration] = STATE(1921),
    [sym__declaration2] = STATE(1921),
    [sym_variable_declaration] = STATE(1921),
    [sym_manifest_constant] = STATE(1921),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1921),
    [sym_alias_declaration] = STATE(1921),
    [sym_alias_reassign] = STATE(1921),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1921),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1921),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1921),
    [sym_union_declaration] = STATE(1921),
    [sym_postblit] = STATE(1921),
    [sym_invariant_declaration] = STATE(1921),
    [sym_class_declaration] = STATE(1921),
    [sym_constructor] = STATE(1921),
    [sym_destructor] = STATE(1921),
    [sym_alias_this] = STATE(1921),
    [sym_interface_declaration] = STATE(1921),
    [sym_enum_declaration] = STATE(1921),
    [sym_anonymous_enum_declaration] = STATE(1921),
    [sym_function_declaration] = STATE(1921),
    [sym_template_declaration] = STATE(1921),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1921),
    [sym_template_mixin] = STATE(1921),
    [sym_conditional_declaration] = STATE(1921),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1921),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1921),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1921),
    [sym_static_assert] = STATE(1921),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1921),
    [aux_sym_source_file_repeat1] = STATE(1921),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5493),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5495),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1824] = {
    [sym_import_declaration] = STATE(1955),
    [sym_mixin_declaration] = STATE(1955),
    [sym__declaration] = STATE(1955),
    [sym__declaration2] = STATE(1955),
    [sym_variable_declaration] = STATE(1955),
    [sym_manifest_constant] = STATE(1955),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1955),
    [sym_alias_declaration] = STATE(1955),
    [sym_alias_reassign] = STATE(1955),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1955),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1955),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1955),
    [sym_union_declaration] = STATE(1955),
    [sym_postblit] = STATE(1955),
    [sym_invariant_declaration] = STATE(1955),
    [sym_class_declaration] = STATE(1955),
    [sym_constructor] = STATE(1955),
    [sym_destructor] = STATE(1955),
    [sym_alias_this] = STATE(1955),
    [sym_interface_declaration] = STATE(1955),
    [sym_enum_declaration] = STATE(1955),
    [sym_anonymous_enum_declaration] = STATE(1955),
    [sym_function_declaration] = STATE(1955),
    [sym_template_declaration] = STATE(1955),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1955),
    [sym_template_mixin] = STATE(1955),
    [sym_conditional_declaration] = STATE(1955),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1955),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1955),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1955),
    [sym_static_assert] = STATE(1955),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1955),
    [aux_sym_source_file_repeat1] = STATE(1955),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5497),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5499),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1825] = {
    [sym_import_declaration] = STATE(2818),
    [sym_mixin_declaration] = STATE(2818),
    [sym__declaration] = STATE(2818),
    [sym__declaration2] = STATE(2818),
    [sym_variable_declaration] = STATE(2818),
    [sym_manifest_constant] = STATE(2818),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2818),
    [sym_alias_declaration] = STATE(2818),
    [sym_alias_reassign] = STATE(2818),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2818),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2818),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2818),
    [sym_union_declaration] = STATE(2818),
    [sym_postblit] = STATE(2818),
    [sym_invariant_declaration] = STATE(2818),
    [sym_class_declaration] = STATE(2818),
    [sym_constructor] = STATE(2818),
    [sym_destructor] = STATE(2818),
    [sym_alias_this] = STATE(2818),
    [sym_interface_declaration] = STATE(2818),
    [sym_enum_declaration] = STATE(2818),
    [sym_anonymous_enum_declaration] = STATE(2818),
    [sym_function_declaration] = STATE(2818),
    [sym_template_declaration] = STATE(2818),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2818),
    [sym_template_mixin] = STATE(2818),
    [sym_conditional_declaration] = STATE(2818),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2818),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2818),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2818),
    [sym_static_assert] = STATE(2818),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2818),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5501),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5503),
    [anon_sym_COLON] = ACTIONS(5505),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1826] = {
    [sym_import_declaration] = STATE(2059),
    [sym_mixin_declaration] = STATE(2059),
    [sym__declaration] = STATE(2059),
    [sym__declaration2] = STATE(2059),
    [sym_variable_declaration] = STATE(2059),
    [sym_manifest_constant] = STATE(2059),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2059),
    [sym_alias_declaration] = STATE(2059),
    [sym_alias_reassign] = STATE(2059),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2059),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2059),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2059),
    [sym_union_declaration] = STATE(2059),
    [sym_postblit] = STATE(2059),
    [sym_invariant_declaration] = STATE(2059),
    [sym_class_declaration] = STATE(2059),
    [sym_constructor] = STATE(2059),
    [sym_destructor] = STATE(2059),
    [sym_alias_this] = STATE(2059),
    [sym_interface_declaration] = STATE(2059),
    [sym_enum_declaration] = STATE(2059),
    [sym_anonymous_enum_declaration] = STATE(2059),
    [sym_function_declaration] = STATE(2059),
    [sym_template_declaration] = STATE(2059),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2059),
    [sym_template_mixin] = STATE(2059),
    [sym_conditional_declaration] = STATE(2059),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2059),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2059),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2059),
    [sym_static_assert] = STATE(2059),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2059),
    [aux_sym_source_file_repeat1] = STATE(2059),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5507),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5509),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1827] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5481),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1828] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5511),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1829] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5513),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1830] = {
    [sym_import_declaration] = STATE(2244),
    [sym_mixin_declaration] = STATE(2244),
    [sym__declaration] = STATE(2244),
    [sym__declaration2] = STATE(2244),
    [sym_variable_declaration] = STATE(2244),
    [sym_manifest_constant] = STATE(2244),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2244),
    [sym_alias_declaration] = STATE(2244),
    [sym_alias_reassign] = STATE(2244),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2244),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2244),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2244),
    [sym_union_declaration] = STATE(2244),
    [sym_postblit] = STATE(2244),
    [sym_invariant_declaration] = STATE(2244),
    [sym_class_declaration] = STATE(2244),
    [sym_constructor] = STATE(2244),
    [sym_destructor] = STATE(2244),
    [sym_alias_this] = STATE(2244),
    [sym_interface_declaration] = STATE(2244),
    [sym_enum_declaration] = STATE(2244),
    [sym_anonymous_enum_declaration] = STATE(2244),
    [sym_function_declaration] = STATE(2244),
    [sym_template_declaration] = STATE(2244),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2244),
    [sym_template_mixin] = STATE(2244),
    [sym_conditional_declaration] = STATE(2244),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2244),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2244),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2244),
    [sym_static_assert] = STATE(2244),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2244),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5517),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5519),
    [anon_sym_COLON] = ACTIONS(5521),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1831] = {
    [sym_import_declaration] = STATE(2779),
    [sym_mixin_declaration] = STATE(2779),
    [sym__declaration] = STATE(2779),
    [sym__declaration2] = STATE(2779),
    [sym_variable_declaration] = STATE(2779),
    [sym_manifest_constant] = STATE(2779),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2779),
    [sym_alias_declaration] = STATE(2779),
    [sym_alias_reassign] = STATE(2779),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2779),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2779),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2779),
    [sym_union_declaration] = STATE(2779),
    [sym_postblit] = STATE(2779),
    [sym_invariant_declaration] = STATE(2779),
    [sym_class_declaration] = STATE(2779),
    [sym_constructor] = STATE(2779),
    [sym_destructor] = STATE(2779),
    [sym_alias_this] = STATE(2779),
    [sym_interface_declaration] = STATE(2779),
    [sym_enum_declaration] = STATE(2779),
    [sym_anonymous_enum_declaration] = STATE(2779),
    [sym_function_declaration] = STATE(2779),
    [sym_template_declaration] = STATE(2779),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2779),
    [sym_template_mixin] = STATE(2779),
    [sym_conditional_declaration] = STATE(2779),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2779),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2779),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2779),
    [sym_static_assert] = STATE(2779),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2779),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5537),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5539),
    [anon_sym_COLON] = ACTIONS(5541),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1832] = {
    [sym_import_declaration] = STATE(1931),
    [sym_mixin_declaration] = STATE(1931),
    [sym__declaration] = STATE(1931),
    [sym__declaration2] = STATE(1931),
    [sym_variable_declaration] = STATE(1931),
    [sym_manifest_constant] = STATE(1931),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1931),
    [sym_alias_declaration] = STATE(1931),
    [sym_alias_reassign] = STATE(1931),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1931),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1931),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1931),
    [sym_union_declaration] = STATE(1931),
    [sym_postblit] = STATE(1931),
    [sym_invariant_declaration] = STATE(1931),
    [sym_class_declaration] = STATE(1931),
    [sym_constructor] = STATE(1931),
    [sym_destructor] = STATE(1931),
    [sym_alias_this] = STATE(1931),
    [sym_interface_declaration] = STATE(1931),
    [sym_enum_declaration] = STATE(1931),
    [sym_anonymous_enum_declaration] = STATE(1931),
    [sym_function_declaration] = STATE(1931),
    [sym_template_declaration] = STATE(1931),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1931),
    [sym_template_mixin] = STATE(1931),
    [sym_conditional_declaration] = STATE(1931),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1931),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1931),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1931),
    [sym_static_assert] = STATE(1931),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1931),
    [aux_sym_source_file_repeat1] = STATE(1931),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5543),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5545),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1833] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5547),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1834] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5549),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1835] = {
    [sym_import_declaration] = STATE(2377),
    [sym_mixin_declaration] = STATE(2377),
    [sym__declaration] = STATE(2377),
    [sym__declaration2] = STATE(2377),
    [sym_variable_declaration] = STATE(2377),
    [sym_manifest_constant] = STATE(2377),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2377),
    [sym_alias_declaration] = STATE(2377),
    [sym_alias_reassign] = STATE(2377),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2377),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2377),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2377),
    [sym_union_declaration] = STATE(2377),
    [sym_postblit] = STATE(2377),
    [sym_invariant_declaration] = STATE(2377),
    [sym_class_declaration] = STATE(2377),
    [sym_constructor] = STATE(2377),
    [sym_destructor] = STATE(2377),
    [sym_alias_this] = STATE(2377),
    [sym_interface_declaration] = STATE(2377),
    [sym_enum_declaration] = STATE(2377),
    [sym_anonymous_enum_declaration] = STATE(2377),
    [sym_function_declaration] = STATE(2377),
    [sym_template_declaration] = STATE(2377),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2377),
    [sym_template_mixin] = STATE(2377),
    [sym_conditional_declaration] = STATE(2377),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2377),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2377),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2377),
    [sym_static_assert] = STATE(2377),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2377),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5551),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5553),
    [anon_sym_COLON] = ACTIONS(830),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1836] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5555),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1837] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5557),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1838] = {
    [sym_import_declaration] = STATE(1705),
    [sym_mixin_declaration] = STATE(1705),
    [sym__declaration] = STATE(1705),
    [sym__declaration2] = STATE(1705),
    [sym_variable_declaration] = STATE(1705),
    [sym_manifest_constant] = STATE(1705),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1705),
    [sym_alias_declaration] = STATE(1705),
    [sym_alias_reassign] = STATE(1705),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1705),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1705),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1705),
    [sym_union_declaration] = STATE(1705),
    [sym_postblit] = STATE(1705),
    [sym_invariant_declaration] = STATE(1705),
    [sym_class_declaration] = STATE(1705),
    [sym_constructor] = STATE(1705),
    [sym_destructor] = STATE(1705),
    [sym_alias_this] = STATE(1705),
    [sym_interface_declaration] = STATE(1705),
    [sym_enum_declaration] = STATE(1705),
    [sym_anonymous_enum_declaration] = STATE(1705),
    [sym_function_declaration] = STATE(1705),
    [sym_template_declaration] = STATE(1705),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1705),
    [sym_template_mixin] = STATE(1705),
    [sym_conditional_declaration] = STATE(1705),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1705),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1705),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1705),
    [sym_static_assert] = STATE(1705),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1705),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5559),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5561),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1839] = {
    [sym_import_declaration] = STATE(2645),
    [sym_mixin_declaration] = STATE(2645),
    [sym__declaration] = STATE(2645),
    [sym__declaration2] = STATE(2645),
    [sym_variable_declaration] = STATE(2645),
    [sym_manifest_constant] = STATE(2645),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2645),
    [sym_alias_declaration] = STATE(2645),
    [sym_alias_reassign] = STATE(2645),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2645),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2645),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2645),
    [sym_union_declaration] = STATE(2645),
    [sym_postblit] = STATE(2645),
    [sym_invariant_declaration] = STATE(2645),
    [sym_class_declaration] = STATE(2645),
    [sym_constructor] = STATE(2645),
    [sym_destructor] = STATE(2645),
    [sym_alias_this] = STATE(2645),
    [sym_interface_declaration] = STATE(2645),
    [sym_enum_declaration] = STATE(2645),
    [sym_anonymous_enum_declaration] = STATE(2645),
    [sym_function_declaration] = STATE(2645),
    [sym_template_declaration] = STATE(2645),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2645),
    [sym_template_mixin] = STATE(2645),
    [sym_conditional_declaration] = STATE(2645),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2645),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2645),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2645),
    [sym_static_assert] = STATE(2645),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2645),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5563),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5565),
    [anon_sym_COLON] = ACTIONS(5567),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1840] = {
    [sym_import_declaration] = STATE(1945),
    [sym_mixin_declaration] = STATE(1945),
    [sym__declaration] = STATE(1945),
    [sym__declaration2] = STATE(1945),
    [sym_variable_declaration] = STATE(1945),
    [sym_manifest_constant] = STATE(1945),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1945),
    [sym_alias_declaration] = STATE(1945),
    [sym_alias_reassign] = STATE(1945),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1945),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1945),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1945),
    [sym_union_declaration] = STATE(1945),
    [sym_postblit] = STATE(1945),
    [sym_invariant_declaration] = STATE(1945),
    [sym_class_declaration] = STATE(1945),
    [sym_constructor] = STATE(1945),
    [sym_destructor] = STATE(1945),
    [sym_alias_this] = STATE(1945),
    [sym_interface_declaration] = STATE(1945),
    [sym_enum_declaration] = STATE(1945),
    [sym_anonymous_enum_declaration] = STATE(1945),
    [sym_function_declaration] = STATE(1945),
    [sym_template_declaration] = STATE(1945),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1945),
    [sym_template_mixin] = STATE(1945),
    [sym_conditional_declaration] = STATE(1945),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1945),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1945),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1945),
    [sym_static_assert] = STATE(1945),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1945),
    [aux_sym_source_file_repeat1] = STATE(1945),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5575),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5577),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1841] = {
    [sym_import_declaration] = STATE(2043),
    [sym_mixin_declaration] = STATE(2043),
    [sym__declaration] = STATE(2043),
    [sym__declaration2] = STATE(2043),
    [sym_variable_declaration] = STATE(2043),
    [sym_manifest_constant] = STATE(2043),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2043),
    [sym_alias_declaration] = STATE(2043),
    [sym_alias_reassign] = STATE(2043),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2043),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2043),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2043),
    [sym_union_declaration] = STATE(2043),
    [sym_postblit] = STATE(2043),
    [sym_invariant_declaration] = STATE(2043),
    [sym_class_declaration] = STATE(2043),
    [sym_constructor] = STATE(2043),
    [sym_destructor] = STATE(2043),
    [sym_alias_this] = STATE(2043),
    [sym_interface_declaration] = STATE(2043),
    [sym_enum_declaration] = STATE(2043),
    [sym_anonymous_enum_declaration] = STATE(2043),
    [sym_function_declaration] = STATE(2043),
    [sym_template_declaration] = STATE(2043),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2043),
    [sym_template_mixin] = STATE(2043),
    [sym_conditional_declaration] = STATE(2043),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2043),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2043),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2043),
    [sym_static_assert] = STATE(2043),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2043),
    [aux_sym_source_file_repeat1] = STATE(2043),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5489),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5579),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1842] = {
    [sym_import_declaration] = STATE(2739),
    [sym_mixin_declaration] = STATE(2739),
    [sym__declaration] = STATE(2739),
    [sym__declaration2] = STATE(2739),
    [sym_variable_declaration] = STATE(2739),
    [sym_manifest_constant] = STATE(2739),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2739),
    [sym_alias_declaration] = STATE(2739),
    [sym_alias_reassign] = STATE(2739),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2739),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2739),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2739),
    [sym_union_declaration] = STATE(2739),
    [sym_postblit] = STATE(2739),
    [sym_invariant_declaration] = STATE(2739),
    [sym_class_declaration] = STATE(2739),
    [sym_constructor] = STATE(2739),
    [sym_destructor] = STATE(2739),
    [sym_alias_this] = STATE(2739),
    [sym_interface_declaration] = STATE(2739),
    [sym_enum_declaration] = STATE(2739),
    [sym_anonymous_enum_declaration] = STATE(2739),
    [sym_function_declaration] = STATE(2739),
    [sym_template_declaration] = STATE(2739),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2739),
    [sym_template_mixin] = STATE(2739),
    [sym_conditional_declaration] = STATE(2739),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2739),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2739),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2739),
    [sym_static_assert] = STATE(2739),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2739),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5581),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5583),
    [anon_sym_COLON] = ACTIONS(5585),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1843] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5593),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1844] = {
    [sym_import_declaration] = STATE(6447),
    [sym_mixin_declaration] = STATE(6447),
    [sym__declaration] = STATE(6447),
    [sym__declaration2] = STATE(6447),
    [sym_variable_declaration] = STATE(6447),
    [sym_manifest_constant] = STATE(6447),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(6447),
    [sym_alias_declaration] = STATE(6447),
    [sym_alias_reassign] = STATE(6447),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(6447),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(6447),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(6447),
    [sym_union_declaration] = STATE(6447),
    [sym_postblit] = STATE(6447),
    [sym_invariant_declaration] = STATE(6447),
    [sym_class_declaration] = STATE(6447),
    [sym_constructor] = STATE(6447),
    [sym_destructor] = STATE(6447),
    [sym_alias_this] = STATE(6447),
    [sym_interface_declaration] = STATE(6447),
    [sym_enum_declaration] = STATE(6447),
    [sym_anonymous_enum_declaration] = STATE(6447),
    [sym_function_declaration] = STATE(6447),
    [sym_template_declaration] = STATE(6447),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(6447),
    [sym_template_mixin] = STATE(6447),
    [sym_conditional_declaration] = STATE(6447),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(6447),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(6447),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(6447),
    [sym_static_assert] = STATE(6447),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(6447),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5595),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5597),
    [anon_sym_COLON] = ACTIONS(5599),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1845] = {
    [sym_import_declaration] = STATE(1993),
    [sym_mixin_declaration] = STATE(1993),
    [sym__declaration] = STATE(1993),
    [sym__declaration2] = STATE(1993),
    [sym_variable_declaration] = STATE(1993),
    [sym_manifest_constant] = STATE(1993),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1993),
    [sym_alias_declaration] = STATE(1993),
    [sym_alias_reassign] = STATE(1993),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1993),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1993),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1993),
    [sym_union_declaration] = STATE(1993),
    [sym_postblit] = STATE(1993),
    [sym_invariant_declaration] = STATE(1993),
    [sym_class_declaration] = STATE(1993),
    [sym_constructor] = STATE(1993),
    [sym_destructor] = STATE(1993),
    [sym_alias_this] = STATE(1993),
    [sym_interface_declaration] = STATE(1993),
    [sym_enum_declaration] = STATE(1993),
    [sym_anonymous_enum_declaration] = STATE(1993),
    [sym_function_declaration] = STATE(1993),
    [sym_template_declaration] = STATE(1993),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1993),
    [sym_template_mixin] = STATE(1993),
    [sym_conditional_declaration] = STATE(1993),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1993),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1993),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1993),
    [sym_static_assert] = STATE(1993),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1993),
    [aux_sym_source_file_repeat1] = STATE(1993),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5601),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5603),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1846] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5605),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1847] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5607),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1848] = {
    [sym_import_declaration] = STATE(1974),
    [sym_mixin_declaration] = STATE(1974),
    [sym__declaration] = STATE(1974),
    [sym__declaration2] = STATE(1974),
    [sym_variable_declaration] = STATE(1974),
    [sym_manifest_constant] = STATE(1974),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1974),
    [sym_alias_declaration] = STATE(1974),
    [sym_alias_reassign] = STATE(1974),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1974),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1974),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1974),
    [sym_union_declaration] = STATE(1974),
    [sym_postblit] = STATE(1974),
    [sym_invariant_declaration] = STATE(1974),
    [sym_class_declaration] = STATE(1974),
    [sym_constructor] = STATE(1974),
    [sym_destructor] = STATE(1974),
    [sym_alias_this] = STATE(1974),
    [sym_interface_declaration] = STATE(1974),
    [sym_enum_declaration] = STATE(1974),
    [sym_anonymous_enum_declaration] = STATE(1974),
    [sym_function_declaration] = STATE(1974),
    [sym_template_declaration] = STATE(1974),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1974),
    [sym_template_mixin] = STATE(1974),
    [sym_conditional_declaration] = STATE(1974),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1974),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1974),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1974),
    [sym_static_assert] = STATE(1974),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1974),
    [aux_sym_source_file_repeat1] = STATE(1974),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5609),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5611),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1849] = {
    [sym_import_declaration] = STATE(1827),
    [sym_mixin_declaration] = STATE(1827),
    [sym__declaration] = STATE(1827),
    [sym__declaration2] = STATE(1827),
    [sym_variable_declaration] = STATE(1827),
    [sym_manifest_constant] = STATE(1827),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1827),
    [sym_alias_declaration] = STATE(1827),
    [sym_alias_reassign] = STATE(1827),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1827),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1827),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1827),
    [sym_union_declaration] = STATE(1827),
    [sym_postblit] = STATE(1827),
    [sym_invariant_declaration] = STATE(1827),
    [sym_class_declaration] = STATE(1827),
    [sym_constructor] = STATE(1827),
    [sym_destructor] = STATE(1827),
    [sym_alias_this] = STATE(1827),
    [sym_interface_declaration] = STATE(1827),
    [sym_enum_declaration] = STATE(1827),
    [sym_anonymous_enum_declaration] = STATE(1827),
    [sym_function_declaration] = STATE(1827),
    [sym_template_declaration] = STATE(1827),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1827),
    [sym_template_mixin] = STATE(1827),
    [sym_conditional_declaration] = STATE(1827),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1827),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1827),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1827),
    [sym_static_assert] = STATE(1827),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1827),
    [aux_sym_source_file_repeat1] = STATE(1827),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5615),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1850] = {
    [sym_import_declaration] = STATE(1953),
    [sym_mixin_declaration] = STATE(1953),
    [sym__declaration] = STATE(1953),
    [sym__declaration2] = STATE(1953),
    [sym_variable_declaration] = STATE(1953),
    [sym_manifest_constant] = STATE(1953),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1953),
    [sym_alias_declaration] = STATE(1953),
    [sym_alias_reassign] = STATE(1953),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1953),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1953),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1953),
    [sym_union_declaration] = STATE(1953),
    [sym_postblit] = STATE(1953),
    [sym_invariant_declaration] = STATE(1953),
    [sym_class_declaration] = STATE(1953),
    [sym_constructor] = STATE(1953),
    [sym_destructor] = STATE(1953),
    [sym_alias_this] = STATE(1953),
    [sym_interface_declaration] = STATE(1953),
    [sym_enum_declaration] = STATE(1953),
    [sym_anonymous_enum_declaration] = STATE(1953),
    [sym_function_declaration] = STATE(1953),
    [sym_template_declaration] = STATE(1953),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1953),
    [sym_template_mixin] = STATE(1953),
    [sym_conditional_declaration] = STATE(1953),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1953),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1953),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1953),
    [sym_static_assert] = STATE(1953),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1953),
    [aux_sym_source_file_repeat1] = STATE(1953),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5617),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5619),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1851] = {
    [sym_import_declaration] = STATE(1948),
    [sym_mixin_declaration] = STATE(1948),
    [sym__declaration] = STATE(1948),
    [sym__declaration2] = STATE(1948),
    [sym_variable_declaration] = STATE(1948),
    [sym_manifest_constant] = STATE(1948),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1948),
    [sym_alias_declaration] = STATE(1948),
    [sym_alias_reassign] = STATE(1948),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1948),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1948),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1948),
    [sym_union_declaration] = STATE(1948),
    [sym_postblit] = STATE(1948),
    [sym_invariant_declaration] = STATE(1948),
    [sym_class_declaration] = STATE(1948),
    [sym_constructor] = STATE(1948),
    [sym_destructor] = STATE(1948),
    [sym_alias_this] = STATE(1948),
    [sym_interface_declaration] = STATE(1948),
    [sym_enum_declaration] = STATE(1948),
    [sym_anonymous_enum_declaration] = STATE(1948),
    [sym_function_declaration] = STATE(1948),
    [sym_template_declaration] = STATE(1948),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1948),
    [sym_template_mixin] = STATE(1948),
    [sym_conditional_declaration] = STATE(1948),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1948),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1948),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1948),
    [sym_static_assert] = STATE(1948),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1948),
    [aux_sym_source_file_repeat1] = STATE(1948),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5621),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5623),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1852] = {
    [sym_import_declaration] = STATE(1497),
    [sym_mixin_declaration] = STATE(1497),
    [sym__declaration] = STATE(1497),
    [sym__declaration2] = STATE(1497),
    [sym_variable_declaration] = STATE(1497),
    [sym_manifest_constant] = STATE(1497),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1497),
    [sym_alias_declaration] = STATE(1497),
    [sym_alias_reassign] = STATE(1497),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1497),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1497),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1497),
    [sym_union_declaration] = STATE(1497),
    [sym_postblit] = STATE(1497),
    [sym_invariant_declaration] = STATE(1497),
    [sym_class_declaration] = STATE(1497),
    [sym_constructor] = STATE(1497),
    [sym_destructor] = STATE(1497),
    [sym_alias_this] = STATE(1497),
    [sym_interface_declaration] = STATE(1497),
    [sym_enum_declaration] = STATE(1497),
    [sym_anonymous_enum_declaration] = STATE(1497),
    [sym_function_declaration] = STATE(1497),
    [sym_template_declaration] = STATE(1497),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1497),
    [sym_template_mixin] = STATE(1497),
    [sym_conditional_declaration] = STATE(1497),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1497),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1497),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1497),
    [sym_static_assert] = STATE(1497),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1497),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5625),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5627),
    [anon_sym_COLON] = ACTIONS(5629),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1853] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5631),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1854] = {
    [sym_import_declaration] = STATE(2724),
    [sym_mixin_declaration] = STATE(2724),
    [sym__declaration] = STATE(2724),
    [sym__declaration2] = STATE(2724),
    [sym_variable_declaration] = STATE(2724),
    [sym_manifest_constant] = STATE(2724),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2724),
    [sym_alias_declaration] = STATE(2724),
    [sym_alias_reassign] = STATE(2724),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2724),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2724),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2724),
    [sym_union_declaration] = STATE(2724),
    [sym_postblit] = STATE(2724),
    [sym_invariant_declaration] = STATE(2724),
    [sym_class_declaration] = STATE(2724),
    [sym_constructor] = STATE(2724),
    [sym_destructor] = STATE(2724),
    [sym_alias_this] = STATE(2724),
    [sym_interface_declaration] = STATE(2724),
    [sym_enum_declaration] = STATE(2724),
    [sym_anonymous_enum_declaration] = STATE(2724),
    [sym_function_declaration] = STATE(2724),
    [sym_template_declaration] = STATE(2724),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2724),
    [sym_template_mixin] = STATE(2724),
    [sym_conditional_declaration] = STATE(2724),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2724),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2724),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2724),
    [sym_static_assert] = STATE(2724),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2724),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5633),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5635),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1855] = {
    [sym_import_declaration] = STATE(2829),
    [sym_mixin_declaration] = STATE(2829),
    [sym__declaration] = STATE(2829),
    [sym__declaration2] = STATE(2829),
    [sym_variable_declaration] = STATE(2829),
    [sym_manifest_constant] = STATE(2829),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2829),
    [sym_alias_declaration] = STATE(2829),
    [sym_alias_reassign] = STATE(2829),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2829),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2829),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2829),
    [sym_union_declaration] = STATE(2829),
    [sym_postblit] = STATE(2829),
    [sym_invariant_declaration] = STATE(2829),
    [sym_class_declaration] = STATE(2829),
    [sym_constructor] = STATE(2829),
    [sym_destructor] = STATE(2829),
    [sym_alias_this] = STATE(2829),
    [sym_interface_declaration] = STATE(2829),
    [sym_enum_declaration] = STATE(2829),
    [sym_anonymous_enum_declaration] = STATE(2829),
    [sym_function_declaration] = STATE(2829),
    [sym_template_declaration] = STATE(2829),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2829),
    [sym_template_mixin] = STATE(2829),
    [sym_conditional_declaration] = STATE(2829),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2829),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2829),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2829),
    [sym_static_assert] = STATE(2829),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2829),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5637),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5471),
    [anon_sym_COLON] = ACTIONS(5599),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1856] = {
    [sym_import_declaration] = STATE(2070),
    [sym_mixin_declaration] = STATE(2070),
    [sym__declaration] = STATE(2070),
    [sym__declaration2] = STATE(2070),
    [sym_variable_declaration] = STATE(2070),
    [sym_manifest_constant] = STATE(2070),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2070),
    [sym_alias_declaration] = STATE(2070),
    [sym_alias_reassign] = STATE(2070),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2070),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2070),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2070),
    [sym_union_declaration] = STATE(2070),
    [sym_postblit] = STATE(2070),
    [sym_invariant_declaration] = STATE(2070),
    [sym_class_declaration] = STATE(2070),
    [sym_constructor] = STATE(2070),
    [sym_destructor] = STATE(2070),
    [sym_alias_this] = STATE(2070),
    [sym_interface_declaration] = STATE(2070),
    [sym_enum_declaration] = STATE(2070),
    [sym_anonymous_enum_declaration] = STATE(2070),
    [sym_function_declaration] = STATE(2070),
    [sym_template_declaration] = STATE(2070),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2070),
    [sym_template_mixin] = STATE(2070),
    [sym_conditional_declaration] = STATE(2070),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2070),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2070),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2070),
    [sym_static_assert] = STATE(2070),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2070),
    [aux_sym_source_file_repeat1] = STATE(2070),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5593),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5639),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1857] = {
    [sym_import_declaration] = STATE(2369),
    [sym_mixin_declaration] = STATE(2369),
    [sym__declaration] = STATE(2369),
    [sym__declaration2] = STATE(2369),
    [sym_variable_declaration] = STATE(2369),
    [sym_manifest_constant] = STATE(2369),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2369),
    [sym_alias_declaration] = STATE(2369),
    [sym_alias_reassign] = STATE(2369),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2369),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2369),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2369),
    [sym_union_declaration] = STATE(2369),
    [sym_postblit] = STATE(2369),
    [sym_invariant_declaration] = STATE(2369),
    [sym_class_declaration] = STATE(2369),
    [sym_constructor] = STATE(2369),
    [sym_destructor] = STATE(2369),
    [sym_alias_this] = STATE(2369),
    [sym_interface_declaration] = STATE(2369),
    [sym_enum_declaration] = STATE(2369),
    [sym_anonymous_enum_declaration] = STATE(2369),
    [sym_function_declaration] = STATE(2369),
    [sym_template_declaration] = STATE(2369),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2369),
    [sym_template_mixin] = STATE(2369),
    [sym_conditional_declaration] = STATE(2369),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2369),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2369),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2369),
    [sym_static_assert] = STATE(2369),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2369),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5641),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5643),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1858] = {
    [sym_import_declaration] = STATE(1879),
    [sym_mixin_declaration] = STATE(1879),
    [sym__declaration] = STATE(1879),
    [sym__declaration2] = STATE(1879),
    [sym_variable_declaration] = STATE(1879),
    [sym_manifest_constant] = STATE(1879),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1879),
    [sym_alias_declaration] = STATE(1879),
    [sym_alias_reassign] = STATE(1879),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1879),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1879),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1879),
    [sym_union_declaration] = STATE(1879),
    [sym_postblit] = STATE(1879),
    [sym_invariant_declaration] = STATE(1879),
    [sym_class_declaration] = STATE(1879),
    [sym_constructor] = STATE(1879),
    [sym_destructor] = STATE(1879),
    [sym_alias_this] = STATE(1879),
    [sym_interface_declaration] = STATE(1879),
    [sym_enum_declaration] = STATE(1879),
    [sym_anonymous_enum_declaration] = STATE(1879),
    [sym_function_declaration] = STATE(1879),
    [sym_template_declaration] = STATE(1879),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1879),
    [sym_template_mixin] = STATE(1879),
    [sym_conditional_declaration] = STATE(1879),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1879),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1879),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1879),
    [sym_static_assert] = STATE(1879),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1879),
    [aux_sym_source_file_repeat1] = STATE(1879),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5645),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5647),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1859] = {
    [sym_import_declaration] = STATE(1873),
    [sym_mixin_declaration] = STATE(1873),
    [sym__declaration] = STATE(1873),
    [sym__declaration2] = STATE(1873),
    [sym_variable_declaration] = STATE(1873),
    [sym_manifest_constant] = STATE(1873),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1873),
    [sym_alias_declaration] = STATE(1873),
    [sym_alias_reassign] = STATE(1873),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1873),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1873),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1873),
    [sym_union_declaration] = STATE(1873),
    [sym_postblit] = STATE(1873),
    [sym_invariant_declaration] = STATE(1873),
    [sym_class_declaration] = STATE(1873),
    [sym_constructor] = STATE(1873),
    [sym_destructor] = STATE(1873),
    [sym_alias_this] = STATE(1873),
    [sym_interface_declaration] = STATE(1873),
    [sym_enum_declaration] = STATE(1873),
    [sym_anonymous_enum_declaration] = STATE(1873),
    [sym_function_declaration] = STATE(1873),
    [sym_template_declaration] = STATE(1873),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1873),
    [sym_template_mixin] = STATE(1873),
    [sym_conditional_declaration] = STATE(1873),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1873),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1873),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1873),
    [sym_static_assert] = STATE(1873),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1873),
    [aux_sym_source_file_repeat1] = STATE(1873),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5649),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5651),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1860] = {
    [sym_import_declaration] = STATE(1872),
    [sym_mixin_declaration] = STATE(1872),
    [sym__declaration] = STATE(1872),
    [sym__declaration2] = STATE(1872),
    [sym_variable_declaration] = STATE(1872),
    [sym_manifest_constant] = STATE(1872),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1872),
    [sym_alias_declaration] = STATE(1872),
    [sym_alias_reassign] = STATE(1872),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1872),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1872),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1872),
    [sym_union_declaration] = STATE(1872),
    [sym_postblit] = STATE(1872),
    [sym_invariant_declaration] = STATE(1872),
    [sym_class_declaration] = STATE(1872),
    [sym_constructor] = STATE(1872),
    [sym_destructor] = STATE(1872),
    [sym_alias_this] = STATE(1872),
    [sym_interface_declaration] = STATE(1872),
    [sym_enum_declaration] = STATE(1872),
    [sym_anonymous_enum_declaration] = STATE(1872),
    [sym_function_declaration] = STATE(1872),
    [sym_template_declaration] = STATE(1872),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1872),
    [sym_template_mixin] = STATE(1872),
    [sym_conditional_declaration] = STATE(1872),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1872),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1872),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1872),
    [sym_static_assert] = STATE(1872),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1872),
    [aux_sym_source_file_repeat1] = STATE(1872),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5653),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5655),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1861] = {
    [sym_import_declaration] = STATE(2007),
    [sym_mixin_declaration] = STATE(2007),
    [sym__declaration] = STATE(2007),
    [sym__declaration2] = STATE(2007),
    [sym_variable_declaration] = STATE(2007),
    [sym_manifest_constant] = STATE(2007),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2007),
    [sym_alias_declaration] = STATE(2007),
    [sym_alias_reassign] = STATE(2007),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2007),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2007),
    [sym_union_declaration] = STATE(2007),
    [sym_postblit] = STATE(2007),
    [sym_invariant_declaration] = STATE(2007),
    [sym_class_declaration] = STATE(2007),
    [sym_constructor] = STATE(2007),
    [sym_destructor] = STATE(2007),
    [sym_alias_this] = STATE(2007),
    [sym_interface_declaration] = STATE(2007),
    [sym_enum_declaration] = STATE(2007),
    [sym_anonymous_enum_declaration] = STATE(2007),
    [sym_function_declaration] = STATE(2007),
    [sym_template_declaration] = STATE(2007),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2007),
    [sym_template_mixin] = STATE(2007),
    [sym_conditional_declaration] = STATE(2007),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2007),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2007),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2007),
    [sym_static_assert] = STATE(2007),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2007),
    [aux_sym_source_file_repeat1] = STATE(2007),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5657),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5659),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1862] = {
    [sym_import_declaration] = STATE(1821),
    [sym_mixin_declaration] = STATE(1821),
    [sym__declaration] = STATE(1821),
    [sym__declaration2] = STATE(1821),
    [sym_variable_declaration] = STATE(1821),
    [sym_manifest_constant] = STATE(1821),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1821),
    [sym_alias_declaration] = STATE(1821),
    [sym_alias_reassign] = STATE(1821),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1821),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1821),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1821),
    [sym_union_declaration] = STATE(1821),
    [sym_postblit] = STATE(1821),
    [sym_invariant_declaration] = STATE(1821),
    [sym_class_declaration] = STATE(1821),
    [sym_constructor] = STATE(1821),
    [sym_destructor] = STATE(1821),
    [sym_alias_this] = STATE(1821),
    [sym_interface_declaration] = STATE(1821),
    [sym_enum_declaration] = STATE(1821),
    [sym_anonymous_enum_declaration] = STATE(1821),
    [sym_function_declaration] = STATE(1821),
    [sym_template_declaration] = STATE(1821),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1821),
    [sym_template_mixin] = STATE(1821),
    [sym_conditional_declaration] = STATE(1821),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1821),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1821),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1821),
    [sym_static_assert] = STATE(1821),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1821),
    [aux_sym_source_file_repeat1] = STATE(1821),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5661),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5663),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1863] = {
    [sym_import_declaration] = STATE(1834),
    [sym_mixin_declaration] = STATE(1834),
    [sym__declaration] = STATE(1834),
    [sym__declaration2] = STATE(1834),
    [sym_variable_declaration] = STATE(1834),
    [sym_manifest_constant] = STATE(1834),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1834),
    [sym_alias_declaration] = STATE(1834),
    [sym_alias_reassign] = STATE(1834),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1834),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1834),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1834),
    [sym_union_declaration] = STATE(1834),
    [sym_postblit] = STATE(1834),
    [sym_invariant_declaration] = STATE(1834),
    [sym_class_declaration] = STATE(1834),
    [sym_constructor] = STATE(1834),
    [sym_destructor] = STATE(1834),
    [sym_alias_this] = STATE(1834),
    [sym_interface_declaration] = STATE(1834),
    [sym_enum_declaration] = STATE(1834),
    [sym_anonymous_enum_declaration] = STATE(1834),
    [sym_function_declaration] = STATE(1834),
    [sym_template_declaration] = STATE(1834),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1834),
    [sym_template_mixin] = STATE(1834),
    [sym_conditional_declaration] = STATE(1834),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1834),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1834),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1834),
    [sym_static_assert] = STATE(1834),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1834),
    [aux_sym_source_file_repeat1] = STATE(1834),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5665),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5667),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1864] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5669),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1865] = {
    [sym_import_declaration] = STATE(2609),
    [sym_mixin_declaration] = STATE(2609),
    [sym__declaration] = STATE(2609),
    [sym__declaration2] = STATE(2609),
    [sym_variable_declaration] = STATE(2609),
    [sym_manifest_constant] = STATE(2609),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2609),
    [sym_alias_declaration] = STATE(2609),
    [sym_alias_reassign] = STATE(2609),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2609),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2609),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2609),
    [sym_union_declaration] = STATE(2609),
    [sym_postblit] = STATE(2609),
    [sym_invariant_declaration] = STATE(2609),
    [sym_class_declaration] = STATE(2609),
    [sym_constructor] = STATE(2609),
    [sym_destructor] = STATE(2609),
    [sym_alias_this] = STATE(2609),
    [sym_interface_declaration] = STATE(2609),
    [sym_enum_declaration] = STATE(2609),
    [sym_anonymous_enum_declaration] = STATE(2609),
    [sym_function_declaration] = STATE(2609),
    [sym_template_declaration] = STATE(2609),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2609),
    [sym_template_mixin] = STATE(2609),
    [sym_conditional_declaration] = STATE(2609),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2609),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2609),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2609),
    [sym_static_assert] = STATE(2609),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2609),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5671),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5673),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1866] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5675),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1867] = {
    [sym_import_declaration] = STATE(1644),
    [sym_mixin_declaration] = STATE(1644),
    [sym__declaration] = STATE(1644),
    [sym__declaration2] = STATE(1644),
    [sym_variable_declaration] = STATE(1644),
    [sym_manifest_constant] = STATE(1644),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1644),
    [sym_alias_declaration] = STATE(1644),
    [sym_alias_reassign] = STATE(1644),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1644),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1644),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1644),
    [sym_union_declaration] = STATE(1644),
    [sym_postblit] = STATE(1644),
    [sym_invariant_declaration] = STATE(1644),
    [sym_class_declaration] = STATE(1644),
    [sym_constructor] = STATE(1644),
    [sym_destructor] = STATE(1644),
    [sym_alias_this] = STATE(1644),
    [sym_interface_declaration] = STATE(1644),
    [sym_enum_declaration] = STATE(1644),
    [sym_anonymous_enum_declaration] = STATE(1644),
    [sym_function_declaration] = STATE(1644),
    [sym_template_declaration] = STATE(1644),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1644),
    [sym_template_mixin] = STATE(1644),
    [sym_conditional_declaration] = STATE(1644),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1644),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1644),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1644),
    [sym_static_assert] = STATE(1644),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1644),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5677),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5679),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1868] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5681),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1869] = {
    [sym_import_declaration] = STATE(2480),
    [sym_mixin_declaration] = STATE(2480),
    [sym__declaration] = STATE(2480),
    [sym__declaration2] = STATE(2480),
    [sym_variable_declaration] = STATE(2480),
    [sym_manifest_constant] = STATE(2480),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2480),
    [sym_alias_declaration] = STATE(2480),
    [sym_alias_reassign] = STATE(2480),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2480),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2480),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2480),
    [sym_union_declaration] = STATE(2480),
    [sym_postblit] = STATE(2480),
    [sym_invariant_declaration] = STATE(2480),
    [sym_class_declaration] = STATE(2480),
    [sym_constructor] = STATE(2480),
    [sym_destructor] = STATE(2480),
    [sym_alias_this] = STATE(2480),
    [sym_interface_declaration] = STATE(2480),
    [sym_enum_declaration] = STATE(2480),
    [sym_anonymous_enum_declaration] = STATE(2480),
    [sym_function_declaration] = STATE(2480),
    [sym_template_declaration] = STATE(2480),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2480),
    [sym_template_mixin] = STATE(2480),
    [sym_conditional_declaration] = STATE(2480),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2480),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2480),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2480),
    [sym_static_assert] = STATE(2480),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2480),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5683),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5685),
    [anon_sym_COLON] = ACTIONS(5505),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1870] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5687),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1871] = {
    [sym_import_declaration] = STATE(2495),
    [sym_mixin_declaration] = STATE(2495),
    [sym__declaration] = STATE(2495),
    [sym__declaration2] = STATE(2495),
    [sym_variable_declaration] = STATE(2495),
    [sym_manifest_constant] = STATE(2495),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2495),
    [sym_alias_declaration] = STATE(2495),
    [sym_alias_reassign] = STATE(2495),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2495),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2495),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2495),
    [sym_union_declaration] = STATE(2495),
    [sym_postblit] = STATE(2495),
    [sym_invariant_declaration] = STATE(2495),
    [sym_class_declaration] = STATE(2495),
    [sym_constructor] = STATE(2495),
    [sym_destructor] = STATE(2495),
    [sym_alias_this] = STATE(2495),
    [sym_interface_declaration] = STATE(2495),
    [sym_enum_declaration] = STATE(2495),
    [sym_anonymous_enum_declaration] = STATE(2495),
    [sym_function_declaration] = STATE(2495),
    [sym_template_declaration] = STATE(2495),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2495),
    [sym_template_mixin] = STATE(2495),
    [sym_conditional_declaration] = STATE(2495),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2495),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2495),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2495),
    [sym_static_assert] = STATE(2495),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2495),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5689),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5691),
    [anon_sym_COLON] = ACTIONS(5693),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1872] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5695),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1873] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5697),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1874] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5699),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1875] = {
    [sym_import_declaration] = STATE(1926),
    [sym_mixin_declaration] = STATE(1926),
    [sym__declaration] = STATE(1926),
    [sym__declaration2] = STATE(1926),
    [sym_variable_declaration] = STATE(1926),
    [sym_manifest_constant] = STATE(1926),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1926),
    [sym_alias_declaration] = STATE(1926),
    [sym_alias_reassign] = STATE(1926),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1926),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1926),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1926),
    [sym_union_declaration] = STATE(1926),
    [sym_postblit] = STATE(1926),
    [sym_invariant_declaration] = STATE(1926),
    [sym_class_declaration] = STATE(1926),
    [sym_constructor] = STATE(1926),
    [sym_destructor] = STATE(1926),
    [sym_alias_this] = STATE(1926),
    [sym_interface_declaration] = STATE(1926),
    [sym_enum_declaration] = STATE(1926),
    [sym_anonymous_enum_declaration] = STATE(1926),
    [sym_function_declaration] = STATE(1926),
    [sym_template_declaration] = STATE(1926),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1926),
    [sym_template_mixin] = STATE(1926),
    [sym_conditional_declaration] = STATE(1926),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1926),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1926),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1926),
    [sym_static_assert] = STATE(1926),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1926),
    [aux_sym_source_file_repeat1] = STATE(1926),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5701),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5703),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1876] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1877] = {
    [sym_import_declaration] = STATE(1991),
    [sym_mixin_declaration] = STATE(1991),
    [sym__declaration] = STATE(1991),
    [sym__declaration2] = STATE(1991),
    [sym_variable_declaration] = STATE(1991),
    [sym_manifest_constant] = STATE(1991),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1991),
    [sym_alias_declaration] = STATE(1991),
    [sym_alias_reassign] = STATE(1991),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1991),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1991),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1991),
    [sym_union_declaration] = STATE(1991),
    [sym_postblit] = STATE(1991),
    [sym_invariant_declaration] = STATE(1991),
    [sym_class_declaration] = STATE(1991),
    [sym_constructor] = STATE(1991),
    [sym_destructor] = STATE(1991),
    [sym_alias_this] = STATE(1991),
    [sym_interface_declaration] = STATE(1991),
    [sym_enum_declaration] = STATE(1991),
    [sym_anonymous_enum_declaration] = STATE(1991),
    [sym_function_declaration] = STATE(1991),
    [sym_template_declaration] = STATE(1991),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1991),
    [sym_template_mixin] = STATE(1991),
    [sym_conditional_declaration] = STATE(1991),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1991),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1991),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1991),
    [sym_static_assert] = STATE(1991),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1991),
    [aux_sym_source_file_repeat1] = STATE(1991),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5681),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5705),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1878] = {
    [sym_import_declaration] = STATE(1409),
    [sym_mixin_declaration] = STATE(1409),
    [sym__declaration] = STATE(1409),
    [sym__declaration2] = STATE(1409),
    [sym_variable_declaration] = STATE(1409),
    [sym_manifest_constant] = STATE(1409),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1409),
    [sym_alias_declaration] = STATE(1409),
    [sym_alias_reassign] = STATE(1409),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1409),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1409),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1409),
    [sym_union_declaration] = STATE(1409),
    [sym_postblit] = STATE(1409),
    [sym_invariant_declaration] = STATE(1409),
    [sym_class_declaration] = STATE(1409),
    [sym_constructor] = STATE(1409),
    [sym_destructor] = STATE(1409),
    [sym_alias_this] = STATE(1409),
    [sym_interface_declaration] = STATE(1409),
    [sym_enum_declaration] = STATE(1409),
    [sym_anonymous_enum_declaration] = STATE(1409),
    [sym_function_declaration] = STATE(1409),
    [sym_template_declaration] = STATE(1409),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1409),
    [sym_template_mixin] = STATE(1409),
    [sym_conditional_declaration] = STATE(1409),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1409),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1409),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1409),
    [sym_static_assert] = STATE(1409),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1409),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5707),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5709),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1879] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5711),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1880] = {
    [sym_import_declaration] = STATE(1465),
    [sym_mixin_declaration] = STATE(1465),
    [sym__declaration] = STATE(1465),
    [sym__declaration2] = STATE(1465),
    [sym_variable_declaration] = STATE(1465),
    [sym_manifest_constant] = STATE(1465),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1465),
    [sym_alias_declaration] = STATE(1465),
    [sym_alias_reassign] = STATE(1465),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1465),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1465),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1465),
    [sym_union_declaration] = STATE(1465),
    [sym_postblit] = STATE(1465),
    [sym_invariant_declaration] = STATE(1465),
    [sym_class_declaration] = STATE(1465),
    [sym_constructor] = STATE(1465),
    [sym_destructor] = STATE(1465),
    [sym_alias_this] = STATE(1465),
    [sym_interface_declaration] = STATE(1465),
    [sym_enum_declaration] = STATE(1465),
    [sym_anonymous_enum_declaration] = STATE(1465),
    [sym_function_declaration] = STATE(1465),
    [sym_template_declaration] = STATE(1465),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1465),
    [sym_template_mixin] = STATE(1465),
    [sym_conditional_declaration] = STATE(1465),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1465),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1465),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1465),
    [sym_static_assert] = STATE(1465),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1465),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5713),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5715),
    [anon_sym_COLON] = ACTIONS(5717),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1881] = {
    [sym_import_declaration] = STATE(2278),
    [sym_mixin_declaration] = STATE(2278),
    [sym__declaration] = STATE(2278),
    [sym__declaration2] = STATE(2278),
    [sym_variable_declaration] = STATE(2278),
    [sym_manifest_constant] = STATE(2278),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2278),
    [sym_alias_declaration] = STATE(2278),
    [sym_alias_reassign] = STATE(2278),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2278),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2278),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2278),
    [sym_union_declaration] = STATE(2278),
    [sym_postblit] = STATE(2278),
    [sym_invariant_declaration] = STATE(2278),
    [sym_class_declaration] = STATE(2278),
    [sym_constructor] = STATE(2278),
    [sym_destructor] = STATE(2278),
    [sym_alias_this] = STATE(2278),
    [sym_interface_declaration] = STATE(2278),
    [sym_enum_declaration] = STATE(2278),
    [sym_anonymous_enum_declaration] = STATE(2278),
    [sym_function_declaration] = STATE(2278),
    [sym_template_declaration] = STATE(2278),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2278),
    [sym_template_mixin] = STATE(2278),
    [sym_conditional_declaration] = STATE(2278),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2278),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2278),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2278),
    [sym_static_assert] = STATE(2278),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2278),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5719),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5721),
    [anon_sym_COLON] = ACTIONS(5717),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1882] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5725),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1883] = {
    [sym_import_declaration] = STATE(2024),
    [sym_mixin_declaration] = STATE(2024),
    [sym__declaration] = STATE(2024),
    [sym__declaration2] = STATE(2024),
    [sym_variable_declaration] = STATE(2024),
    [sym_manifest_constant] = STATE(2024),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2024),
    [sym_alias_declaration] = STATE(2024),
    [sym_alias_reassign] = STATE(2024),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2024),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2024),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2024),
    [sym_union_declaration] = STATE(2024),
    [sym_postblit] = STATE(2024),
    [sym_invariant_declaration] = STATE(2024),
    [sym_class_declaration] = STATE(2024),
    [sym_constructor] = STATE(2024),
    [sym_destructor] = STATE(2024),
    [sym_alias_this] = STATE(2024),
    [sym_interface_declaration] = STATE(2024),
    [sym_enum_declaration] = STATE(2024),
    [sym_anonymous_enum_declaration] = STATE(2024),
    [sym_function_declaration] = STATE(2024),
    [sym_template_declaration] = STATE(2024),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2024),
    [sym_template_mixin] = STATE(2024),
    [sym_conditional_declaration] = STATE(2024),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2024),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2024),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2024),
    [sym_static_assert] = STATE(2024),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2024),
    [aux_sym_source_file_repeat1] = STATE(2024),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5695),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5727),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1884] = {
    [sym_import_declaration] = STATE(2044),
    [sym_mixin_declaration] = STATE(2044),
    [sym__declaration] = STATE(2044),
    [sym__declaration2] = STATE(2044),
    [sym_variable_declaration] = STATE(2044),
    [sym_manifest_constant] = STATE(2044),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2044),
    [sym_alias_declaration] = STATE(2044),
    [sym_alias_reassign] = STATE(2044),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2044),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2044),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2044),
    [sym_union_declaration] = STATE(2044),
    [sym_postblit] = STATE(2044),
    [sym_invariant_declaration] = STATE(2044),
    [sym_class_declaration] = STATE(2044),
    [sym_constructor] = STATE(2044),
    [sym_destructor] = STATE(2044),
    [sym_alias_this] = STATE(2044),
    [sym_interface_declaration] = STATE(2044),
    [sym_enum_declaration] = STATE(2044),
    [sym_anonymous_enum_declaration] = STATE(2044),
    [sym_function_declaration] = STATE(2044),
    [sym_template_declaration] = STATE(2044),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2044),
    [sym_template_mixin] = STATE(2044),
    [sym_conditional_declaration] = STATE(2044),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2044),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2044),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2044),
    [sym_static_assert] = STATE(2044),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2044),
    [aux_sym_source_file_repeat1] = STATE(2044),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5697),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5729),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1885] = {
    [sym_import_declaration] = STATE(2066),
    [sym_mixin_declaration] = STATE(2066),
    [sym__declaration] = STATE(2066),
    [sym__declaration2] = STATE(2066),
    [sym_variable_declaration] = STATE(2066),
    [sym_manifest_constant] = STATE(2066),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2066),
    [sym_alias_declaration] = STATE(2066),
    [sym_alias_reassign] = STATE(2066),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2066),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2066),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2066),
    [sym_union_declaration] = STATE(2066),
    [sym_postblit] = STATE(2066),
    [sym_invariant_declaration] = STATE(2066),
    [sym_class_declaration] = STATE(2066),
    [sym_constructor] = STATE(2066),
    [sym_destructor] = STATE(2066),
    [sym_alias_this] = STATE(2066),
    [sym_interface_declaration] = STATE(2066),
    [sym_enum_declaration] = STATE(2066),
    [sym_anonymous_enum_declaration] = STATE(2066),
    [sym_function_declaration] = STATE(2066),
    [sym_template_declaration] = STATE(2066),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2066),
    [sym_template_mixin] = STATE(2066),
    [sym_conditional_declaration] = STATE(2066),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2066),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2066),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2066),
    [sym_static_assert] = STATE(2066),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2066),
    [aux_sym_source_file_repeat1] = STATE(2066),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5675),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5731),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1886] = {
    [sym_import_declaration] = STATE(1968),
    [sym_mixin_declaration] = STATE(1968),
    [sym__declaration] = STATE(1968),
    [sym__declaration2] = STATE(1968),
    [sym_variable_declaration] = STATE(1968),
    [sym_manifest_constant] = STATE(1968),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1968),
    [sym_alias_declaration] = STATE(1968),
    [sym_alias_reassign] = STATE(1968),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1968),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1968),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1968),
    [sym_union_declaration] = STATE(1968),
    [sym_postblit] = STATE(1968),
    [sym_invariant_declaration] = STATE(1968),
    [sym_class_declaration] = STATE(1968),
    [sym_constructor] = STATE(1968),
    [sym_destructor] = STATE(1968),
    [sym_alias_this] = STATE(1968),
    [sym_interface_declaration] = STATE(1968),
    [sym_enum_declaration] = STATE(1968),
    [sym_anonymous_enum_declaration] = STATE(1968),
    [sym_function_declaration] = STATE(1968),
    [sym_template_declaration] = STATE(1968),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1968),
    [sym_template_mixin] = STATE(1968),
    [sym_conditional_declaration] = STATE(1968),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1968),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1968),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1968),
    [sym_static_assert] = STATE(1968),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1968),
    [aux_sym_source_file_repeat1] = STATE(1968),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5475),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5733),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1887] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5735),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1888] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5737),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1889] = {
    [sym_import_declaration] = STATE(1887),
    [sym_mixin_declaration] = STATE(1887),
    [sym__declaration] = STATE(1887),
    [sym__declaration2] = STATE(1887),
    [sym_variable_declaration] = STATE(1887),
    [sym_manifest_constant] = STATE(1887),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1887),
    [sym_alias_declaration] = STATE(1887),
    [sym_alias_reassign] = STATE(1887),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1887),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1887),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1887),
    [sym_union_declaration] = STATE(1887),
    [sym_postblit] = STATE(1887),
    [sym_invariant_declaration] = STATE(1887),
    [sym_class_declaration] = STATE(1887),
    [sym_constructor] = STATE(1887),
    [sym_destructor] = STATE(1887),
    [sym_alias_this] = STATE(1887),
    [sym_interface_declaration] = STATE(1887),
    [sym_enum_declaration] = STATE(1887),
    [sym_anonymous_enum_declaration] = STATE(1887),
    [sym_function_declaration] = STATE(1887),
    [sym_template_declaration] = STATE(1887),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1887),
    [sym_template_mixin] = STATE(1887),
    [sym_conditional_declaration] = STATE(1887),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1887),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1887),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1887),
    [sym_static_assert] = STATE(1887),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1887),
    [aux_sym_source_file_repeat1] = STATE(1887),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5739),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5741),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1890] = {
    [sym_import_declaration] = STATE(2022),
    [sym_mixin_declaration] = STATE(2022),
    [sym__declaration] = STATE(2022),
    [sym__declaration2] = STATE(2022),
    [sym_variable_declaration] = STATE(2022),
    [sym_manifest_constant] = STATE(2022),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2022),
    [sym_alias_declaration] = STATE(2022),
    [sym_alias_reassign] = STATE(2022),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2022),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2022),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2022),
    [sym_union_declaration] = STATE(2022),
    [sym_postblit] = STATE(2022),
    [sym_invariant_declaration] = STATE(2022),
    [sym_class_declaration] = STATE(2022),
    [sym_constructor] = STATE(2022),
    [sym_destructor] = STATE(2022),
    [sym_alias_this] = STATE(2022),
    [sym_interface_declaration] = STATE(2022),
    [sym_enum_declaration] = STATE(2022),
    [sym_anonymous_enum_declaration] = STATE(2022),
    [sym_function_declaration] = STATE(2022),
    [sym_template_declaration] = STATE(2022),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2022),
    [sym_template_mixin] = STATE(2022),
    [sym_conditional_declaration] = STATE(2022),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2022),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2022),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2022),
    [sym_static_assert] = STATE(2022),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2022),
    [aux_sym_source_file_repeat1] = STATE(2022),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5743),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5745),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1891] = {
    [sym_import_declaration] = STATE(1391),
    [sym_mixin_declaration] = STATE(1391),
    [sym__declaration] = STATE(1391),
    [sym__declaration2] = STATE(1391),
    [sym_variable_declaration] = STATE(1391),
    [sym_manifest_constant] = STATE(1391),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1391),
    [sym_alias_declaration] = STATE(1391),
    [sym_alias_reassign] = STATE(1391),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1391),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1391),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1391),
    [sym_union_declaration] = STATE(1391),
    [sym_postblit] = STATE(1391),
    [sym_invariant_declaration] = STATE(1391),
    [sym_class_declaration] = STATE(1391),
    [sym_constructor] = STATE(1391),
    [sym_destructor] = STATE(1391),
    [sym_alias_this] = STATE(1391),
    [sym_interface_declaration] = STATE(1391),
    [sym_enum_declaration] = STATE(1391),
    [sym_anonymous_enum_declaration] = STATE(1391),
    [sym_function_declaration] = STATE(1391),
    [sym_template_declaration] = STATE(1391),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1391),
    [sym_template_mixin] = STATE(1391),
    [sym_conditional_declaration] = STATE(1391),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1391),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1391),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1391),
    [sym_static_assert] = STATE(1391),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1391),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5747),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5749),
    [anon_sym_COLON] = ACTIONS(1024),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1892] = {
    [sym_import_declaration] = STATE(1399),
    [sym_mixin_declaration] = STATE(1399),
    [sym__declaration] = STATE(1399),
    [sym__declaration2] = STATE(1399),
    [sym_variable_declaration] = STATE(1399),
    [sym_manifest_constant] = STATE(1399),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1399),
    [sym_alias_declaration] = STATE(1399),
    [sym_alias_reassign] = STATE(1399),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1399),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1399),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1399),
    [sym_union_declaration] = STATE(1399),
    [sym_postblit] = STATE(1399),
    [sym_invariant_declaration] = STATE(1399),
    [sym_class_declaration] = STATE(1399),
    [sym_constructor] = STATE(1399),
    [sym_destructor] = STATE(1399),
    [sym_alias_this] = STATE(1399),
    [sym_interface_declaration] = STATE(1399),
    [sym_enum_declaration] = STATE(1399),
    [sym_anonymous_enum_declaration] = STATE(1399),
    [sym_function_declaration] = STATE(1399),
    [sym_template_declaration] = STATE(1399),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1399),
    [sym_template_mixin] = STATE(1399),
    [sym_conditional_declaration] = STATE(1399),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1399),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1399),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1399),
    [sym_static_assert] = STATE(1399),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1399),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5751),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5753),
    [anon_sym_COLON] = ACTIONS(5755),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1893] = {
    [sym_import_declaration] = STATE(2371),
    [sym_mixin_declaration] = STATE(2371),
    [sym__declaration] = STATE(2371),
    [sym__declaration2] = STATE(2371),
    [sym_variable_declaration] = STATE(2371),
    [sym_manifest_constant] = STATE(2371),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2371),
    [sym_alias_declaration] = STATE(2371),
    [sym_alias_reassign] = STATE(2371),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2371),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2371),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2371),
    [sym_union_declaration] = STATE(2371),
    [sym_postblit] = STATE(2371),
    [sym_invariant_declaration] = STATE(2371),
    [sym_class_declaration] = STATE(2371),
    [sym_constructor] = STATE(2371),
    [sym_destructor] = STATE(2371),
    [sym_alias_this] = STATE(2371),
    [sym_interface_declaration] = STATE(2371),
    [sym_enum_declaration] = STATE(2371),
    [sym_anonymous_enum_declaration] = STATE(2371),
    [sym_function_declaration] = STATE(2371),
    [sym_template_declaration] = STATE(2371),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2371),
    [sym_template_mixin] = STATE(2371),
    [sym_conditional_declaration] = STATE(2371),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2371),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2371),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2371),
    [sym_static_assert] = STATE(2371),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2371),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5757),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5759),
    [anon_sym_COLON] = ACTIONS(5761),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1894] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5661),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1895] = {
    [sym_import_declaration] = STATE(2064),
    [sym_mixin_declaration] = STATE(2064),
    [sym__declaration] = STATE(2064),
    [sym__declaration2] = STATE(2064),
    [sym_variable_declaration] = STATE(2064),
    [sym_manifest_constant] = STATE(2064),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2064),
    [sym_alias_declaration] = STATE(2064),
    [sym_alias_reassign] = STATE(2064),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2064),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2064),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2064),
    [sym_union_declaration] = STATE(2064),
    [sym_postblit] = STATE(2064),
    [sym_invariant_declaration] = STATE(2064),
    [sym_class_declaration] = STATE(2064),
    [sym_constructor] = STATE(2064),
    [sym_destructor] = STATE(2064),
    [sym_alias_this] = STATE(2064),
    [sym_interface_declaration] = STATE(2064),
    [sym_enum_declaration] = STATE(2064),
    [sym_anonymous_enum_declaration] = STATE(2064),
    [sym_function_declaration] = STATE(2064),
    [sym_template_declaration] = STATE(2064),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2064),
    [sym_template_mixin] = STATE(2064),
    [sym_conditional_declaration] = STATE(2064),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2064),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2064),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2064),
    [sym_static_assert] = STATE(2064),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2064),
    [aux_sym_source_file_repeat1] = STATE(2064),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5539),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5763),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1896] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5539),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1897] = {
    [sym_import_declaration] = STATE(2244),
    [sym_mixin_declaration] = STATE(2244),
    [sym__declaration] = STATE(2244),
    [sym__declaration2] = STATE(2244),
    [sym_variable_declaration] = STATE(2244),
    [sym_manifest_constant] = STATE(2244),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2244),
    [sym_alias_declaration] = STATE(2244),
    [sym_alias_reassign] = STATE(2244),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2244),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2244),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2244),
    [sym_union_declaration] = STATE(2244),
    [sym_postblit] = STATE(2244),
    [sym_invariant_declaration] = STATE(2244),
    [sym_class_declaration] = STATE(2244),
    [sym_constructor] = STATE(2244),
    [sym_destructor] = STATE(2244),
    [sym_alias_this] = STATE(2244),
    [sym_interface_declaration] = STATE(2244),
    [sym_enum_declaration] = STATE(2244),
    [sym_anonymous_enum_declaration] = STATE(2244),
    [sym_function_declaration] = STATE(2244),
    [sym_template_declaration] = STATE(2244),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2244),
    [sym_template_mixin] = STATE(2244),
    [sym_conditional_declaration] = STATE(2244),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2244),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2244),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2244),
    [sym_static_assert] = STATE(2244),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2244),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5517),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5519),
    [anon_sym_COLON] = ACTIONS(5755),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1898] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5765),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1899] = {
    [sym_import_declaration] = STATE(5730),
    [sym_mixin_declaration] = STATE(5730),
    [sym__declaration] = STATE(5730),
    [sym__declaration2] = STATE(5730),
    [sym_variable_declaration] = STATE(5730),
    [sym_manifest_constant] = STATE(5730),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5730),
    [sym_alias_declaration] = STATE(5730),
    [sym_alias_reassign] = STATE(5730),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(5730),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5730),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(5730),
    [sym_union_declaration] = STATE(5730),
    [sym_postblit] = STATE(5730),
    [sym_invariant_declaration] = STATE(5730),
    [sym_class_declaration] = STATE(5730),
    [sym_constructor] = STATE(5730),
    [sym_destructor] = STATE(5730),
    [sym_alias_this] = STATE(5730),
    [sym_interface_declaration] = STATE(5730),
    [sym_enum_declaration] = STATE(5730),
    [sym_anonymous_enum_declaration] = STATE(5730),
    [sym_function_declaration] = STATE(5730),
    [sym_template_declaration] = STATE(5730),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(5730),
    [sym_template_mixin] = STATE(5730),
    [sym_conditional_declaration] = STATE(5730),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(5730),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(5730),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(5730),
    [sym_static_assert] = STATE(5730),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(5730),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5767),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5769),
    [anon_sym_COLON] = ACTIONS(5771),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1900] = {
    [sym_import_declaration] = STATE(2036),
    [sym_mixin_declaration] = STATE(2036),
    [sym__declaration] = STATE(2036),
    [sym__declaration2] = STATE(2036),
    [sym_variable_declaration] = STATE(2036),
    [sym_manifest_constant] = STATE(2036),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2036),
    [sym_alias_declaration] = STATE(2036),
    [sym_alias_reassign] = STATE(2036),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2036),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2036),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2036),
    [sym_union_declaration] = STATE(2036),
    [sym_postblit] = STATE(2036),
    [sym_invariant_declaration] = STATE(2036),
    [sym_class_declaration] = STATE(2036),
    [sym_constructor] = STATE(2036),
    [sym_destructor] = STATE(2036),
    [sym_alias_this] = STATE(2036),
    [sym_interface_declaration] = STATE(2036),
    [sym_enum_declaration] = STATE(2036),
    [sym_anonymous_enum_declaration] = STATE(2036),
    [sym_function_declaration] = STATE(2036),
    [sym_template_declaration] = STATE(2036),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2036),
    [sym_template_mixin] = STATE(2036),
    [sym_conditional_declaration] = STATE(2036),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2036),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2036),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2036),
    [sym_static_assert] = STATE(2036),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2036),
    [aux_sym_source_file_repeat1] = STATE(2036),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5773),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5775),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1901] = {
    [sym_import_declaration] = STATE(2012),
    [sym_mixin_declaration] = STATE(2012),
    [sym__declaration] = STATE(2012),
    [sym__declaration2] = STATE(2012),
    [sym_variable_declaration] = STATE(2012),
    [sym_manifest_constant] = STATE(2012),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2012),
    [sym_alias_declaration] = STATE(2012),
    [sym_alias_reassign] = STATE(2012),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2012),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2012),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2012),
    [sym_union_declaration] = STATE(2012),
    [sym_postblit] = STATE(2012),
    [sym_invariant_declaration] = STATE(2012),
    [sym_class_declaration] = STATE(2012),
    [sym_constructor] = STATE(2012),
    [sym_destructor] = STATE(2012),
    [sym_alias_this] = STATE(2012),
    [sym_interface_declaration] = STATE(2012),
    [sym_enum_declaration] = STATE(2012),
    [sym_anonymous_enum_declaration] = STATE(2012),
    [sym_function_declaration] = STATE(2012),
    [sym_template_declaration] = STATE(2012),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2012),
    [sym_template_mixin] = STATE(2012),
    [sym_conditional_declaration] = STATE(2012),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2012),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2012),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2012),
    [sym_static_assert] = STATE(2012),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2012),
    [aux_sym_source_file_repeat1] = STATE(2012),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5777),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5779),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1902] = {
    [sym_import_declaration] = STATE(2049),
    [sym_mixin_declaration] = STATE(2049),
    [sym__declaration] = STATE(2049),
    [sym__declaration2] = STATE(2049),
    [sym_variable_declaration] = STATE(2049),
    [sym_manifest_constant] = STATE(2049),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2049),
    [sym_alias_declaration] = STATE(2049),
    [sym_alias_reassign] = STATE(2049),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2049),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2049),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2049),
    [sym_union_declaration] = STATE(2049),
    [sym_postblit] = STATE(2049),
    [sym_invariant_declaration] = STATE(2049),
    [sym_class_declaration] = STATE(2049),
    [sym_constructor] = STATE(2049),
    [sym_destructor] = STATE(2049),
    [sym_alias_this] = STATE(2049),
    [sym_interface_declaration] = STATE(2049),
    [sym_enum_declaration] = STATE(2049),
    [sym_anonymous_enum_declaration] = STATE(2049),
    [sym_function_declaration] = STATE(2049),
    [sym_template_declaration] = STATE(2049),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2049),
    [sym_template_mixin] = STATE(2049),
    [sym_conditional_declaration] = STATE(2049),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2049),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2049),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2049),
    [sym_static_assert] = STATE(2049),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2049),
    [aux_sym_source_file_repeat1] = STATE(2049),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5781),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5783),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1903] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5785),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1904] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5787),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1905] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5789),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1906] = {
    [sym_import_declaration] = STATE(1914),
    [sym_mixin_declaration] = STATE(1914),
    [sym__declaration] = STATE(1914),
    [sym__declaration2] = STATE(1914),
    [sym_variable_declaration] = STATE(1914),
    [sym_manifest_constant] = STATE(1914),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1914),
    [sym_alias_declaration] = STATE(1914),
    [sym_alias_reassign] = STATE(1914),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1914),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1914),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1914),
    [sym_union_declaration] = STATE(1914),
    [sym_postblit] = STATE(1914),
    [sym_invariant_declaration] = STATE(1914),
    [sym_class_declaration] = STATE(1914),
    [sym_constructor] = STATE(1914),
    [sym_destructor] = STATE(1914),
    [sym_alias_this] = STATE(1914),
    [sym_interface_declaration] = STATE(1914),
    [sym_enum_declaration] = STATE(1914),
    [sym_anonymous_enum_declaration] = STATE(1914),
    [sym_function_declaration] = STATE(1914),
    [sym_template_declaration] = STATE(1914),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1914),
    [sym_template_mixin] = STATE(1914),
    [sym_conditional_declaration] = STATE(1914),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1914),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1914),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1914),
    [sym_static_assert] = STATE(1914),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1914),
    [aux_sym_source_file_repeat1] = STATE(1914),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5691),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5791),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1907] = {
    [sym_import_declaration] = STATE(2028),
    [sym_mixin_declaration] = STATE(2028),
    [sym__declaration] = STATE(2028),
    [sym__declaration2] = STATE(2028),
    [sym_variable_declaration] = STATE(2028),
    [sym_manifest_constant] = STATE(2028),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2028),
    [sym_alias_declaration] = STATE(2028),
    [sym_alias_reassign] = STATE(2028),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2028),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2028),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2028),
    [sym_union_declaration] = STATE(2028),
    [sym_postblit] = STATE(2028),
    [sym_invariant_declaration] = STATE(2028),
    [sym_class_declaration] = STATE(2028),
    [sym_constructor] = STATE(2028),
    [sym_destructor] = STATE(2028),
    [sym_alias_this] = STATE(2028),
    [sym_interface_declaration] = STATE(2028),
    [sym_enum_declaration] = STATE(2028),
    [sym_anonymous_enum_declaration] = STATE(2028),
    [sym_function_declaration] = STATE(2028),
    [sym_template_declaration] = STATE(2028),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2028),
    [sym_template_mixin] = STATE(2028),
    [sym_conditional_declaration] = STATE(2028),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2028),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2028),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2028),
    [sym_static_assert] = STATE(2028),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2028),
    [aux_sym_source_file_repeat1] = STATE(2028),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5765),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5793),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1908] = {
    [sym_import_declaration] = STATE(1566),
    [sym_mixin_declaration] = STATE(1566),
    [sym__declaration] = STATE(1566),
    [sym__declaration2] = STATE(1566),
    [sym_variable_declaration] = STATE(1566),
    [sym_manifest_constant] = STATE(1566),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1566),
    [sym_alias_declaration] = STATE(1566),
    [sym_alias_reassign] = STATE(1566),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1566),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1566),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1566),
    [sym_union_declaration] = STATE(1566),
    [sym_postblit] = STATE(1566),
    [sym_invariant_declaration] = STATE(1566),
    [sym_class_declaration] = STATE(1566),
    [sym_constructor] = STATE(1566),
    [sym_destructor] = STATE(1566),
    [sym_alias_this] = STATE(1566),
    [sym_interface_declaration] = STATE(1566),
    [sym_enum_declaration] = STATE(1566),
    [sym_anonymous_enum_declaration] = STATE(1566),
    [sym_function_declaration] = STATE(1566),
    [sym_template_declaration] = STATE(1566),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1566),
    [sym_template_mixin] = STATE(1566),
    [sym_conditional_declaration] = STATE(1566),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1566),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1566),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1566),
    [sym_static_assert] = STATE(1566),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1566),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5795),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5797),
    [anon_sym_COLON] = ACTIONS(830),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1909] = {
    [sym_import_declaration] = STATE(2589),
    [sym_mixin_declaration] = STATE(2589),
    [sym__declaration] = STATE(2589),
    [sym__declaration2] = STATE(2589),
    [sym_variable_declaration] = STATE(2589),
    [sym_manifest_constant] = STATE(2589),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2589),
    [sym_alias_declaration] = STATE(2589),
    [sym_alias_reassign] = STATE(2589),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2589),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2589),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2589),
    [sym_union_declaration] = STATE(2589),
    [sym_postblit] = STATE(2589),
    [sym_invariant_declaration] = STATE(2589),
    [sym_class_declaration] = STATE(2589),
    [sym_constructor] = STATE(2589),
    [sym_destructor] = STATE(2589),
    [sym_alias_this] = STATE(2589),
    [sym_interface_declaration] = STATE(2589),
    [sym_enum_declaration] = STATE(2589),
    [sym_anonymous_enum_declaration] = STATE(2589),
    [sym_function_declaration] = STATE(2589),
    [sym_template_declaration] = STATE(2589),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2589),
    [sym_template_mixin] = STATE(2589),
    [sym_conditional_declaration] = STATE(2589),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2589),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2589),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2589),
    [sym_static_assert] = STATE(2589),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2589),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5799),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5801),
    [anon_sym_COLON] = ACTIONS(5803),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1910] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5691),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1911] = {
    [sym_import_declaration] = STATE(1519),
    [sym_mixin_declaration] = STATE(1519),
    [sym__declaration] = STATE(1519),
    [sym__declaration2] = STATE(1519),
    [sym_variable_declaration] = STATE(1519),
    [sym_manifest_constant] = STATE(1519),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1519),
    [sym_alias_declaration] = STATE(1519),
    [sym_alias_reassign] = STATE(1519),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1519),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1519),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1519),
    [sym_union_declaration] = STATE(1519),
    [sym_postblit] = STATE(1519),
    [sym_invariant_declaration] = STATE(1519),
    [sym_class_declaration] = STATE(1519),
    [sym_constructor] = STATE(1519),
    [sym_destructor] = STATE(1519),
    [sym_alias_this] = STATE(1519),
    [sym_interface_declaration] = STATE(1519),
    [sym_enum_declaration] = STATE(1519),
    [sym_anonymous_enum_declaration] = STATE(1519),
    [sym_function_declaration] = STATE(1519),
    [sym_template_declaration] = STATE(1519),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1519),
    [sym_template_mixin] = STATE(1519),
    [sym_conditional_declaration] = STATE(1519),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1519),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1519),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1519),
    [sym_static_assert] = STATE(1519),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1519),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5805),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5807),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1912] = {
    [sym_import_declaration] = STATE(2069),
    [sym_mixin_declaration] = STATE(2069),
    [sym__declaration] = STATE(2069),
    [sym__declaration2] = STATE(2069),
    [sym_variable_declaration] = STATE(2069),
    [sym_manifest_constant] = STATE(2069),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2069),
    [sym_alias_declaration] = STATE(2069),
    [sym_alias_reassign] = STATE(2069),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2069),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2069),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2069),
    [sym_union_declaration] = STATE(2069),
    [sym_postblit] = STATE(2069),
    [sym_invariant_declaration] = STATE(2069),
    [sym_class_declaration] = STATE(2069),
    [sym_constructor] = STATE(2069),
    [sym_destructor] = STATE(2069),
    [sym_alias_this] = STATE(2069),
    [sym_interface_declaration] = STATE(2069),
    [sym_enum_declaration] = STATE(2069),
    [sym_anonymous_enum_declaration] = STATE(2069),
    [sym_function_declaration] = STATE(2069),
    [sym_template_declaration] = STATE(2069),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2069),
    [sym_template_mixin] = STATE(2069),
    [sym_conditional_declaration] = STATE(2069),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2069),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2069),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2069),
    [sym_static_assert] = STATE(2069),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2069),
    [aux_sym_source_file_repeat1] = STATE(2069),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5669),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5809),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1913] = {
    [sym_import_declaration] = STATE(1966),
    [sym_mixin_declaration] = STATE(1966),
    [sym__declaration] = STATE(1966),
    [sym__declaration2] = STATE(1966),
    [sym_variable_declaration] = STATE(1966),
    [sym_manifest_constant] = STATE(1966),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1966),
    [sym_alias_declaration] = STATE(1966),
    [sym_alias_reassign] = STATE(1966),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1966),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1966),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1966),
    [sym_union_declaration] = STATE(1966),
    [sym_postblit] = STATE(1966),
    [sym_invariant_declaration] = STATE(1966),
    [sym_class_declaration] = STATE(1966),
    [sym_constructor] = STATE(1966),
    [sym_destructor] = STATE(1966),
    [sym_alias_this] = STATE(1966),
    [sym_interface_declaration] = STATE(1966),
    [sym_enum_declaration] = STATE(1966),
    [sym_anonymous_enum_declaration] = STATE(1966),
    [sym_function_declaration] = STATE(1966),
    [sym_template_declaration] = STATE(1966),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1966),
    [sym_template_mixin] = STATE(1966),
    [sym_conditional_declaration] = STATE(1966),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1966),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1966),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1966),
    [sym_static_assert] = STATE(1966),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1966),
    [aux_sym_source_file_repeat1] = STATE(1966),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5715),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5811),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1914] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5813),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1915] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5815),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1916] = {
    [sym_import_declaration] = STATE(1876),
    [sym_mixin_declaration] = STATE(1876),
    [sym__declaration] = STATE(1876),
    [sym__declaration2] = STATE(1876),
    [sym_variable_declaration] = STATE(1876),
    [sym_manifest_constant] = STATE(1876),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1876),
    [sym_alias_declaration] = STATE(1876),
    [sym_alias_reassign] = STATE(1876),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1876),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1876),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1876),
    [sym_union_declaration] = STATE(1876),
    [sym_postblit] = STATE(1876),
    [sym_invariant_declaration] = STATE(1876),
    [sym_class_declaration] = STATE(1876),
    [sym_constructor] = STATE(1876),
    [sym_destructor] = STATE(1876),
    [sym_alias_this] = STATE(1876),
    [sym_interface_declaration] = STATE(1876),
    [sym_enum_declaration] = STATE(1876),
    [sym_anonymous_enum_declaration] = STATE(1876),
    [sym_function_declaration] = STATE(1876),
    [sym_template_declaration] = STATE(1876),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1876),
    [sym_template_mixin] = STATE(1876),
    [sym_conditional_declaration] = STATE(1876),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1876),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1876),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1876),
    [sym_static_assert] = STATE(1876),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1876),
    [aux_sym_source_file_repeat1] = STATE(1876),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5817),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5819),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1917] = {
    [sym_import_declaration] = STATE(5620),
    [sym_mixin_declaration] = STATE(5620),
    [sym__declaration] = STATE(5620),
    [sym__declaration2] = STATE(5620),
    [sym_variable_declaration] = STATE(5620),
    [sym_manifest_constant] = STATE(5620),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(5620),
    [sym_alias_declaration] = STATE(5620),
    [sym_alias_reassign] = STATE(5620),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(5620),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(5620),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(5620),
    [sym_union_declaration] = STATE(5620),
    [sym_postblit] = STATE(5620),
    [sym_invariant_declaration] = STATE(5620),
    [sym_class_declaration] = STATE(5620),
    [sym_constructor] = STATE(5620),
    [sym_destructor] = STATE(5620),
    [sym_alias_this] = STATE(5620),
    [sym_interface_declaration] = STATE(5620),
    [sym_enum_declaration] = STATE(5620),
    [sym_anonymous_enum_declaration] = STATE(5620),
    [sym_function_declaration] = STATE(5620),
    [sym_template_declaration] = STATE(5620),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(5620),
    [sym_template_mixin] = STATE(5620),
    [sym_conditional_declaration] = STATE(5620),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(5620),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(5620),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(5620),
    [sym_static_assert] = STATE(5620),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(5620),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5821),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5823),
    [anon_sym_COLON] = ACTIONS(1168),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1918] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5825),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1919] = {
    [sym_import_declaration] = STATE(1924),
    [sym_mixin_declaration] = STATE(1924),
    [sym__declaration] = STATE(1924),
    [sym__declaration2] = STATE(1924),
    [sym_variable_declaration] = STATE(1924),
    [sym_manifest_constant] = STATE(1924),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1924),
    [sym_alias_declaration] = STATE(1924),
    [sym_alias_reassign] = STATE(1924),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1924),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1924),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1924),
    [sym_union_declaration] = STATE(1924),
    [sym_postblit] = STATE(1924),
    [sym_invariant_declaration] = STATE(1924),
    [sym_class_declaration] = STATE(1924),
    [sym_constructor] = STATE(1924),
    [sym_destructor] = STATE(1924),
    [sym_alias_this] = STATE(1924),
    [sym_interface_declaration] = STATE(1924),
    [sym_enum_declaration] = STATE(1924),
    [sym_anonymous_enum_declaration] = STATE(1924),
    [sym_function_declaration] = STATE(1924),
    [sym_template_declaration] = STATE(1924),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1924),
    [sym_template_mixin] = STATE(1924),
    [sym_conditional_declaration] = STATE(1924),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1924),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1924),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1924),
    [sym_static_assert] = STATE(1924),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1924),
    [aux_sym_source_file_repeat1] = STATE(1924),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5825),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5827),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1920] = {
    [sym_import_declaration] = STATE(2645),
    [sym_mixin_declaration] = STATE(2645),
    [sym__declaration] = STATE(2645),
    [sym__declaration2] = STATE(2645),
    [sym_variable_declaration] = STATE(2645),
    [sym_manifest_constant] = STATE(2645),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2645),
    [sym_alias_declaration] = STATE(2645),
    [sym_alias_reassign] = STATE(2645),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2645),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2645),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2645),
    [sym_union_declaration] = STATE(2645),
    [sym_postblit] = STATE(2645),
    [sym_invariant_declaration] = STATE(2645),
    [sym_class_declaration] = STATE(2645),
    [sym_constructor] = STATE(2645),
    [sym_destructor] = STATE(2645),
    [sym_alias_this] = STATE(2645),
    [sym_interface_declaration] = STATE(2645),
    [sym_enum_declaration] = STATE(2645),
    [sym_anonymous_enum_declaration] = STATE(2645),
    [sym_function_declaration] = STATE(2645),
    [sym_template_declaration] = STATE(2645),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2645),
    [sym_template_mixin] = STATE(2645),
    [sym_conditional_declaration] = STATE(2645),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2645),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2645),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2645),
    [sym_static_assert] = STATE(2645),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2645),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5563),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5565),
    [anon_sym_COLON] = ACTIONS(5567),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1921] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5829),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1922] = {
    [sym_import_declaration] = STATE(1673),
    [sym_mixin_declaration] = STATE(1673),
    [sym__declaration] = STATE(1673),
    [sym__declaration2] = STATE(1673),
    [sym_variable_declaration] = STATE(1673),
    [sym_manifest_constant] = STATE(1673),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1673),
    [sym_alias_declaration] = STATE(1673),
    [sym_alias_reassign] = STATE(1673),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1673),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1673),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1673),
    [sym_union_declaration] = STATE(1673),
    [sym_postblit] = STATE(1673),
    [sym_invariant_declaration] = STATE(1673),
    [sym_class_declaration] = STATE(1673),
    [sym_constructor] = STATE(1673),
    [sym_destructor] = STATE(1673),
    [sym_alias_this] = STATE(1673),
    [sym_interface_declaration] = STATE(1673),
    [sym_enum_declaration] = STATE(1673),
    [sym_anonymous_enum_declaration] = STATE(1673),
    [sym_function_declaration] = STATE(1673),
    [sym_template_declaration] = STATE(1673),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1673),
    [sym_template_mixin] = STATE(1673),
    [sym_conditional_declaration] = STATE(1673),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1673),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1673),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1673),
    [sym_static_assert] = STATE(1673),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1673),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5831),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5833),
    [anon_sym_COLON] = ACTIONS(5521),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1923] = {
    [sym_import_declaration] = STATE(2071),
    [sym_mixin_declaration] = STATE(2071),
    [sym__declaration] = STATE(2071),
    [sym__declaration2] = STATE(2071),
    [sym_variable_declaration] = STATE(2071),
    [sym_manifest_constant] = STATE(2071),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2071),
    [sym_alias_declaration] = STATE(2071),
    [sym_alias_reassign] = STATE(2071),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2071),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2071),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2071),
    [sym_union_declaration] = STATE(2071),
    [sym_postblit] = STATE(2071),
    [sym_invariant_declaration] = STATE(2071),
    [sym_class_declaration] = STATE(2071),
    [sym_constructor] = STATE(2071),
    [sym_destructor] = STATE(2071),
    [sym_alias_this] = STATE(2071),
    [sym_interface_declaration] = STATE(2071),
    [sym_enum_declaration] = STATE(2071),
    [sym_anonymous_enum_declaration] = STATE(2071),
    [sym_function_declaration] = STATE(2071),
    [sym_template_declaration] = STATE(2071),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2071),
    [sym_template_mixin] = STATE(2071),
    [sym_conditional_declaration] = STATE(2071),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2071),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2071),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2071),
    [sym_static_assert] = STATE(2071),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2071),
    [aux_sym_source_file_repeat1] = STATE(2071),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5737),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5835),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1924] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5701),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1925] = {
    [sym_import_declaration] = STATE(2339),
    [sym_mixin_declaration] = STATE(2339),
    [sym__declaration] = STATE(2339),
    [sym__declaration2] = STATE(2339),
    [sym_variable_declaration] = STATE(2339),
    [sym_manifest_constant] = STATE(2339),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2339),
    [sym_alias_declaration] = STATE(2339),
    [sym_alias_reassign] = STATE(2339),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2339),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2339),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2339),
    [sym_union_declaration] = STATE(2339),
    [sym_postblit] = STATE(2339),
    [sym_invariant_declaration] = STATE(2339),
    [sym_class_declaration] = STATE(2339),
    [sym_constructor] = STATE(2339),
    [sym_destructor] = STATE(2339),
    [sym_alias_this] = STATE(2339),
    [sym_interface_declaration] = STATE(2339),
    [sym_enum_declaration] = STATE(2339),
    [sym_anonymous_enum_declaration] = STATE(2339),
    [sym_function_declaration] = STATE(2339),
    [sym_template_declaration] = STATE(2339),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2339),
    [sym_template_mixin] = STATE(2339),
    [sym_conditional_declaration] = STATE(2339),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2339),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2339),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2339),
    [sym_static_assert] = STATE(2339),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2339),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5837),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5839),
    [anon_sym_COLON] = ACTIONS(1024),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1926] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5841),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1927] = {
    [sym_import_declaration] = STATE(1515),
    [sym_mixin_declaration] = STATE(1515),
    [sym__declaration] = STATE(1515),
    [sym__declaration2] = STATE(1515),
    [sym_variable_declaration] = STATE(1515),
    [sym_manifest_constant] = STATE(1515),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1515),
    [sym_alias_declaration] = STATE(1515),
    [sym_alias_reassign] = STATE(1515),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1515),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1515),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1515),
    [sym_union_declaration] = STATE(1515),
    [sym_postblit] = STATE(1515),
    [sym_invariant_declaration] = STATE(1515),
    [sym_class_declaration] = STATE(1515),
    [sym_constructor] = STATE(1515),
    [sym_destructor] = STATE(1515),
    [sym_alias_this] = STATE(1515),
    [sym_interface_declaration] = STATE(1515),
    [sym_enum_declaration] = STATE(1515),
    [sym_anonymous_enum_declaration] = STATE(1515),
    [sym_function_declaration] = STATE(1515),
    [sym_template_declaration] = STATE(1515),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1515),
    [sym_template_mixin] = STATE(1515),
    [sym_conditional_declaration] = STATE(1515),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1515),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1515),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1515),
    [sym_static_assert] = STATE(1515),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1515),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5843),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5649),
    [anon_sym_COLON] = ACTIONS(5845),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1928] = {
    [sym_import_declaration] = STATE(2346),
    [sym_mixin_declaration] = STATE(2346),
    [sym__declaration] = STATE(2346),
    [sym__declaration2] = STATE(2346),
    [sym_variable_declaration] = STATE(2346),
    [sym_manifest_constant] = STATE(2346),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2346),
    [sym_alias_declaration] = STATE(2346),
    [sym_alias_reassign] = STATE(2346),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2346),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2346),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2346),
    [sym_union_declaration] = STATE(2346),
    [sym_postblit] = STATE(2346),
    [sym_invariant_declaration] = STATE(2346),
    [sym_class_declaration] = STATE(2346),
    [sym_constructor] = STATE(2346),
    [sym_destructor] = STATE(2346),
    [sym_alias_this] = STATE(2346),
    [sym_interface_declaration] = STATE(2346),
    [sym_enum_declaration] = STATE(2346),
    [sym_anonymous_enum_declaration] = STATE(2346),
    [sym_function_declaration] = STATE(2346),
    [sym_template_declaration] = STATE(2346),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2346),
    [sym_template_mixin] = STATE(2346),
    [sym_conditional_declaration] = STATE(2346),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2346),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2346),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2346),
    [sym_static_assert] = STATE(2346),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2346),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5847),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5849),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1929] = {
    [sym_import_declaration] = STATE(2061),
    [sym_mixin_declaration] = STATE(2061),
    [sym__declaration] = STATE(2061),
    [sym__declaration2] = STATE(2061),
    [sym_variable_declaration] = STATE(2061),
    [sym_manifest_constant] = STATE(2061),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2061),
    [sym_alias_declaration] = STATE(2061),
    [sym_alias_reassign] = STATE(2061),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2061),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2061),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2061),
    [sym_union_declaration] = STATE(2061),
    [sym_postblit] = STATE(2061),
    [sym_invariant_declaration] = STATE(2061),
    [sym_class_declaration] = STATE(2061),
    [sym_constructor] = STATE(2061),
    [sym_destructor] = STATE(2061),
    [sym_alias_this] = STATE(2061),
    [sym_interface_declaration] = STATE(2061),
    [sym_enum_declaration] = STATE(2061),
    [sym_anonymous_enum_declaration] = STATE(2061),
    [sym_function_declaration] = STATE(2061),
    [sym_template_declaration] = STATE(2061),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2061),
    [sym_template_mixin] = STATE(2061),
    [sym_conditional_declaration] = STATE(2061),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2061),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2061),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2061),
    [sym_static_assert] = STATE(2061),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2061),
    [aux_sym_source_file_repeat1] = STATE(2061),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5813),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5851),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1930] = {
    [sym_import_declaration] = STATE(2038),
    [sym_mixin_declaration] = STATE(2038),
    [sym__declaration] = STATE(2038),
    [sym__declaration2] = STATE(2038),
    [sym_variable_declaration] = STATE(2038),
    [sym_manifest_constant] = STATE(2038),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2038),
    [sym_alias_declaration] = STATE(2038),
    [sym_alias_reassign] = STATE(2038),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2038),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2038),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2038),
    [sym_union_declaration] = STATE(2038),
    [sym_postblit] = STATE(2038),
    [sym_invariant_declaration] = STATE(2038),
    [sym_class_declaration] = STATE(2038),
    [sym_constructor] = STATE(2038),
    [sym_destructor] = STATE(2038),
    [sym_alias_this] = STATE(2038),
    [sym_interface_declaration] = STATE(2038),
    [sym_enum_declaration] = STATE(2038),
    [sym_anonymous_enum_declaration] = STATE(2038),
    [sym_function_declaration] = STATE(2038),
    [sym_template_declaration] = STATE(2038),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2038),
    [sym_template_mixin] = STATE(2038),
    [sym_conditional_declaration] = STATE(2038),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2038),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2038),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2038),
    [sym_static_assert] = STATE(2038),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2038),
    [aux_sym_source_file_repeat1] = STATE(2038),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5853),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5855),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1931] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5857),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1932] = {
    [sym_import_declaration] = STATE(1944),
    [sym_mixin_declaration] = STATE(1944),
    [sym__declaration] = STATE(1944),
    [sym__declaration2] = STATE(1944),
    [sym_variable_declaration] = STATE(1944),
    [sym_manifest_constant] = STATE(1944),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1944),
    [sym_alias_declaration] = STATE(1944),
    [sym_alias_reassign] = STATE(1944),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1944),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1944),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1944),
    [sym_union_declaration] = STATE(1944),
    [sym_postblit] = STATE(1944),
    [sym_invariant_declaration] = STATE(1944),
    [sym_class_declaration] = STATE(1944),
    [sym_constructor] = STATE(1944),
    [sym_destructor] = STATE(1944),
    [sym_alias_this] = STATE(1944),
    [sym_interface_declaration] = STATE(1944),
    [sym_enum_declaration] = STATE(1944),
    [sym_anonymous_enum_declaration] = STATE(1944),
    [sym_function_declaration] = STATE(1944),
    [sym_template_declaration] = STATE(1944),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1944),
    [sym_template_mixin] = STATE(1944),
    [sym_conditional_declaration] = STATE(1944),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1944),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1944),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1944),
    [sym_static_assert] = STATE(1944),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1944),
    [aux_sym_source_file_repeat1] = STATE(1944),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5597),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5859),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1933] = {
    [sym_import_declaration] = STATE(1903),
    [sym_mixin_declaration] = STATE(1903),
    [sym__declaration] = STATE(1903),
    [sym__declaration2] = STATE(1903),
    [sym_variable_declaration] = STATE(1903),
    [sym_manifest_constant] = STATE(1903),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1903),
    [sym_alias_declaration] = STATE(1903),
    [sym_alias_reassign] = STATE(1903),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1903),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1903),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1903),
    [sym_union_declaration] = STATE(1903),
    [sym_postblit] = STATE(1903),
    [sym_invariant_declaration] = STATE(1903),
    [sym_class_declaration] = STATE(1903),
    [sym_constructor] = STATE(1903),
    [sym_destructor] = STATE(1903),
    [sym_alias_this] = STATE(1903),
    [sym_interface_declaration] = STATE(1903),
    [sym_enum_declaration] = STATE(1903),
    [sym_anonymous_enum_declaration] = STATE(1903),
    [sym_function_declaration] = STATE(1903),
    [sym_template_declaration] = STATE(1903),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1903),
    [sym_template_mixin] = STATE(1903),
    [sym_conditional_declaration] = STATE(1903),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1903),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1903),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1903),
    [sym_static_assert] = STATE(1903),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1903),
    [aux_sym_source_file_repeat1] = STATE(1903),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5861),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5863),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1934] = {
    [sym_import_declaration] = STATE(2589),
    [sym_mixin_declaration] = STATE(2589),
    [sym__declaration] = STATE(2589),
    [sym__declaration2] = STATE(2589),
    [sym_variable_declaration] = STATE(2589),
    [sym_manifest_constant] = STATE(2589),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2589),
    [sym_alias_declaration] = STATE(2589),
    [sym_alias_reassign] = STATE(2589),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2589),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2589),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2589),
    [sym_union_declaration] = STATE(2589),
    [sym_postblit] = STATE(2589),
    [sym_invariant_declaration] = STATE(2589),
    [sym_class_declaration] = STATE(2589),
    [sym_constructor] = STATE(2589),
    [sym_destructor] = STATE(2589),
    [sym_alias_this] = STATE(2589),
    [sym_interface_declaration] = STATE(2589),
    [sym_enum_declaration] = STATE(2589),
    [sym_anonymous_enum_declaration] = STATE(2589),
    [sym_function_declaration] = STATE(2589),
    [sym_template_declaration] = STATE(2589),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2589),
    [sym_template_mixin] = STATE(2589),
    [sym_conditional_declaration] = STATE(2589),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2589),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2589),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2589),
    [sym_static_assert] = STATE(2589),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2589),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5799),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5801),
    [anon_sym_COLON] = ACTIONS(5803),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1935] = {
    [sym_import_declaration] = STATE(2186),
    [sym_mixin_declaration] = STATE(2186),
    [sym__declaration] = STATE(2186),
    [sym__declaration2] = STATE(2186),
    [sym_variable_declaration] = STATE(2186),
    [sym_manifest_constant] = STATE(2186),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2186),
    [sym_alias_declaration] = STATE(2186),
    [sym_alias_reassign] = STATE(2186),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2186),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2186),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2186),
    [sym_union_declaration] = STATE(2186),
    [sym_postblit] = STATE(2186),
    [sym_invariant_declaration] = STATE(2186),
    [sym_class_declaration] = STATE(2186),
    [sym_constructor] = STATE(2186),
    [sym_destructor] = STATE(2186),
    [sym_alias_this] = STATE(2186),
    [sym_interface_declaration] = STATE(2186),
    [sym_enum_declaration] = STATE(2186),
    [sym_anonymous_enum_declaration] = STATE(2186),
    [sym_function_declaration] = STATE(2186),
    [sym_template_declaration] = STATE(2186),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2186),
    [sym_template_mixin] = STATE(2186),
    [sym_conditional_declaration] = STATE(2186),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2186),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2186),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2186),
    [sym_static_assert] = STATE(2186),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2186),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5865),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5463),
    [anon_sym_COLON] = ACTIONS(5629),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1936] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5867),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1937] = {
    [sym_import_declaration] = STATE(1985),
    [sym_mixin_declaration] = STATE(1985),
    [sym__declaration] = STATE(1985),
    [sym__declaration2] = STATE(1985),
    [sym_variable_declaration] = STATE(1985),
    [sym_manifest_constant] = STATE(1985),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1985),
    [sym_alias_declaration] = STATE(1985),
    [sym_alias_reassign] = STATE(1985),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1985),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1985),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1985),
    [sym_union_declaration] = STATE(1985),
    [sym_postblit] = STATE(1985),
    [sym_invariant_declaration] = STATE(1985),
    [sym_class_declaration] = STATE(1985),
    [sym_constructor] = STATE(1985),
    [sym_destructor] = STATE(1985),
    [sym_alias_this] = STATE(1985),
    [sym_interface_declaration] = STATE(1985),
    [sym_enum_declaration] = STATE(1985),
    [sym_anonymous_enum_declaration] = STATE(1985),
    [sym_function_declaration] = STATE(1985),
    [sym_template_declaration] = STATE(1985),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1985),
    [sym_template_mixin] = STATE(1985),
    [sym_conditional_declaration] = STATE(1985),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1985),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1985),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1985),
    [sym_static_assert] = STATE(1985),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1985),
    [aux_sym_source_file_repeat1] = STATE(1985),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5759),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5869),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1938] = {
    [sym_import_declaration] = STATE(1987),
    [sym_mixin_declaration] = STATE(1987),
    [sym__declaration] = STATE(1987),
    [sym__declaration2] = STATE(1987),
    [sym_variable_declaration] = STATE(1987),
    [sym_manifest_constant] = STATE(1987),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1987),
    [sym_alias_declaration] = STATE(1987),
    [sym_alias_reassign] = STATE(1987),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1987),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1987),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1987),
    [sym_union_declaration] = STATE(1987),
    [sym_postblit] = STATE(1987),
    [sym_invariant_declaration] = STATE(1987),
    [sym_class_declaration] = STATE(1987),
    [sym_constructor] = STATE(1987),
    [sym_destructor] = STATE(1987),
    [sym_alias_this] = STATE(1987),
    [sym_interface_declaration] = STATE(1987),
    [sym_enum_declaration] = STATE(1987),
    [sym_anonymous_enum_declaration] = STATE(1987),
    [sym_function_declaration] = STATE(1987),
    [sym_template_declaration] = STATE(1987),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1987),
    [sym_template_mixin] = STATE(1987),
    [sym_conditional_declaration] = STATE(1987),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1987),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1987),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1987),
    [sym_static_assert] = STATE(1987),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1987),
    [aux_sym_source_file_repeat1] = STATE(1987),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5871),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5873),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1939] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5875),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1940] = {
    [sym_import_declaration] = STATE(2060),
    [sym_mixin_declaration] = STATE(2060),
    [sym__declaration] = STATE(2060),
    [sym__declaration2] = STATE(2060),
    [sym_variable_declaration] = STATE(2060),
    [sym_manifest_constant] = STATE(2060),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2060),
    [sym_alias_declaration] = STATE(2060),
    [sym_alias_reassign] = STATE(2060),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2060),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2060),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2060),
    [sym_union_declaration] = STATE(2060),
    [sym_postblit] = STATE(2060),
    [sym_invariant_declaration] = STATE(2060),
    [sym_class_declaration] = STATE(2060),
    [sym_constructor] = STATE(2060),
    [sym_destructor] = STATE(2060),
    [sym_alias_this] = STATE(2060),
    [sym_interface_declaration] = STATE(2060),
    [sym_enum_declaration] = STATE(2060),
    [sym_anonymous_enum_declaration] = STATE(2060),
    [sym_function_declaration] = STATE(2060),
    [sym_template_declaration] = STATE(2060),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2060),
    [sym_template_mixin] = STATE(2060),
    [sym_conditional_declaration] = STATE(2060),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2060),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2060),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2060),
    [sym_static_assert] = STATE(2060),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2060),
    [aux_sym_source_file_repeat1] = STATE(2060),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5877),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5879),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1941] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5739),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1942] = {
    [sym_import_declaration] = STATE(1837),
    [sym_mixin_declaration] = STATE(1837),
    [sym__declaration] = STATE(1837),
    [sym__declaration2] = STATE(1837),
    [sym_variable_declaration] = STATE(1837),
    [sym_manifest_constant] = STATE(1837),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1837),
    [sym_alias_declaration] = STATE(1837),
    [sym_alias_reassign] = STATE(1837),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1837),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1837),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1837),
    [sym_union_declaration] = STATE(1837),
    [sym_postblit] = STATE(1837),
    [sym_invariant_declaration] = STATE(1837),
    [sym_class_declaration] = STATE(1837),
    [sym_constructor] = STATE(1837),
    [sym_destructor] = STATE(1837),
    [sym_alias_this] = STATE(1837),
    [sym_interface_declaration] = STATE(1837),
    [sym_enum_declaration] = STATE(1837),
    [sym_anonymous_enum_declaration] = STATE(1837),
    [sym_function_declaration] = STATE(1837),
    [sym_template_declaration] = STATE(1837),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1837),
    [sym_template_mixin] = STATE(1837),
    [sym_conditional_declaration] = STATE(1837),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1837),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1837),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1837),
    [sym_static_assert] = STATE(1837),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1837),
    [aux_sym_source_file_repeat1] = STATE(1837),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5881),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5883),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1943] = {
    [sym_import_declaration] = STATE(1936),
    [sym_mixin_declaration] = STATE(1936),
    [sym__declaration] = STATE(1936),
    [sym__declaration2] = STATE(1936),
    [sym_variable_declaration] = STATE(1936),
    [sym_manifest_constant] = STATE(1936),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1936),
    [sym_alias_declaration] = STATE(1936),
    [sym_alias_reassign] = STATE(1936),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1936),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1936),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1936),
    [sym_union_declaration] = STATE(1936),
    [sym_postblit] = STATE(1936),
    [sym_invariant_declaration] = STATE(1936),
    [sym_class_declaration] = STATE(1936),
    [sym_constructor] = STATE(1936),
    [sym_destructor] = STATE(1936),
    [sym_alias_this] = STATE(1936),
    [sym_interface_declaration] = STATE(1936),
    [sym_enum_declaration] = STATE(1936),
    [sym_anonymous_enum_declaration] = STATE(1936),
    [sym_function_declaration] = STATE(1936),
    [sym_template_declaration] = STATE(1936),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1936),
    [sym_template_mixin] = STATE(1936),
    [sym_conditional_declaration] = STATE(1936),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1936),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1936),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1936),
    [sym_static_assert] = STATE(1936),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1936),
    [aux_sym_source_file_repeat1] = STATE(1936),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5875),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5885),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1944] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5887),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1945] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5889),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1946] = {
    [sym_import_declaration] = STATE(2606),
    [sym_mixin_declaration] = STATE(2606),
    [sym__declaration] = STATE(2606),
    [sym__declaration2] = STATE(2606),
    [sym_variable_declaration] = STATE(2606),
    [sym_manifest_constant] = STATE(2606),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2606),
    [sym_alias_declaration] = STATE(2606),
    [sym_alias_reassign] = STATE(2606),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2606),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2606),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2606),
    [sym_union_declaration] = STATE(2606),
    [sym_postblit] = STATE(2606),
    [sym_invariant_declaration] = STATE(2606),
    [sym_class_declaration] = STATE(2606),
    [sym_constructor] = STATE(2606),
    [sym_destructor] = STATE(2606),
    [sym_alias_this] = STATE(2606),
    [sym_interface_declaration] = STATE(2606),
    [sym_enum_declaration] = STATE(2606),
    [sym_anonymous_enum_declaration] = STATE(2606),
    [sym_function_declaration] = STATE(2606),
    [sym_template_declaration] = STATE(2606),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2606),
    [sym_template_mixin] = STATE(2606),
    [sym_conditional_declaration] = STATE(2606),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2606),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2606),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2606),
    [sym_static_assert] = STATE(2606),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2606),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5891),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5893),
    [anon_sym_COLON] = ACTIONS(1168),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1947] = {
    [sym_import_declaration] = STATE(2230),
    [sym_mixin_declaration] = STATE(2230),
    [sym__declaration] = STATE(2230),
    [sym__declaration2] = STATE(2230),
    [sym_variable_declaration] = STATE(2230),
    [sym_manifest_constant] = STATE(2230),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2230),
    [sym_alias_declaration] = STATE(2230),
    [sym_alias_reassign] = STATE(2230),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2230),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2230),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2230),
    [sym_union_declaration] = STATE(2230),
    [sym_postblit] = STATE(2230),
    [sym_invariant_declaration] = STATE(2230),
    [sym_class_declaration] = STATE(2230),
    [sym_constructor] = STATE(2230),
    [sym_destructor] = STATE(2230),
    [sym_alias_this] = STATE(2230),
    [sym_interface_declaration] = STATE(2230),
    [sym_enum_declaration] = STATE(2230),
    [sym_anonymous_enum_declaration] = STATE(2230),
    [sym_function_declaration] = STATE(2230),
    [sym_template_declaration] = STATE(2230),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2230),
    [sym_template_mixin] = STATE(2230),
    [sym_conditional_declaration] = STATE(2230),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2230),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2230),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2230),
    [sym_static_assert] = STATE(2230),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2230),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5895),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5897),
    [anon_sym_COLON] = ACTIONS(5899),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1948] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5901),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1949] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5903),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1950] = {
    [sym_import_declaration] = STATE(2622),
    [sym_mixin_declaration] = STATE(2622),
    [sym__declaration] = STATE(2622),
    [sym__declaration2] = STATE(2622),
    [sym_variable_declaration] = STATE(2622),
    [sym_manifest_constant] = STATE(2622),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2622),
    [sym_alias_declaration] = STATE(2622),
    [sym_alias_reassign] = STATE(2622),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2622),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2622),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2622),
    [sym_union_declaration] = STATE(2622),
    [sym_postblit] = STATE(2622),
    [sym_invariant_declaration] = STATE(2622),
    [sym_class_declaration] = STATE(2622),
    [sym_constructor] = STATE(2622),
    [sym_destructor] = STATE(2622),
    [sym_alias_this] = STATE(2622),
    [sym_interface_declaration] = STATE(2622),
    [sym_enum_declaration] = STATE(2622),
    [sym_anonymous_enum_declaration] = STATE(2622),
    [sym_function_declaration] = STATE(2622),
    [sym_template_declaration] = STATE(2622),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2622),
    [sym_template_mixin] = STATE(2622),
    [sym_conditional_declaration] = STATE(2622),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2622),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2622),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2622),
    [sym_static_assert] = STATE(2622),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2622),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5477),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5479),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1951] = {
    [sym_import_declaration] = STATE(2496),
    [sym_mixin_declaration] = STATE(2496),
    [sym__declaration] = STATE(2496),
    [sym__declaration2] = STATE(2496),
    [sym_variable_declaration] = STATE(2496),
    [sym_manifest_constant] = STATE(2496),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2496),
    [sym_alias_declaration] = STATE(2496),
    [sym_alias_reassign] = STATE(2496),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2496),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2496),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2496),
    [sym_union_declaration] = STATE(2496),
    [sym_postblit] = STATE(2496),
    [sym_invariant_declaration] = STATE(2496),
    [sym_class_declaration] = STATE(2496),
    [sym_constructor] = STATE(2496),
    [sym_destructor] = STATE(2496),
    [sym_alias_this] = STATE(2496),
    [sym_interface_declaration] = STATE(2496),
    [sym_enum_declaration] = STATE(2496),
    [sym_anonymous_enum_declaration] = STATE(2496),
    [sym_function_declaration] = STATE(2496),
    [sym_template_declaration] = STATE(2496),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2496),
    [sym_template_mixin] = STATE(2496),
    [sym_conditional_declaration] = STATE(2496),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2496),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2496),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2496),
    [sym_static_assert] = STATE(2496),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2496),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5905),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5907),
    [anon_sym_COLON] = ACTIONS(5909),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1952] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5911),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1953] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5913),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1954] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5871),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1955] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5621),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1956] = {
    [sym_import_declaration] = STATE(2511),
    [sym_mixin_declaration] = STATE(2511),
    [sym__declaration] = STATE(2511),
    [sym__declaration2] = STATE(2511),
    [sym_variable_declaration] = STATE(2511),
    [sym_manifest_constant] = STATE(2511),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2511),
    [sym_alias_declaration] = STATE(2511),
    [sym_alias_reassign] = STATE(2511),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2511),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2511),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2511),
    [sym_union_declaration] = STATE(2511),
    [sym_postblit] = STATE(2511),
    [sym_invariant_declaration] = STATE(2511),
    [sym_class_declaration] = STATE(2511),
    [sym_constructor] = STATE(2511),
    [sym_destructor] = STATE(2511),
    [sym_alias_this] = STATE(2511),
    [sym_interface_declaration] = STATE(2511),
    [sym_enum_declaration] = STATE(2511),
    [sym_anonymous_enum_declaration] = STATE(2511),
    [sym_function_declaration] = STATE(2511),
    [sym_template_declaration] = STATE(2511),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2511),
    [sym_template_mixin] = STATE(2511),
    [sym_conditional_declaration] = STATE(2511),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2511),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2511),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2511),
    [sym_static_assert] = STATE(2511),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2511),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5915),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5917),
    [anon_sym_COLON] = ACTIONS(5919),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1957] = {
    [sym_import_declaration] = STATE(2736),
    [sym_mixin_declaration] = STATE(2736),
    [sym__declaration] = STATE(2736),
    [sym__declaration2] = STATE(2736),
    [sym_variable_declaration] = STATE(2736),
    [sym_manifest_constant] = STATE(2736),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2736),
    [sym_alias_declaration] = STATE(2736),
    [sym_alias_reassign] = STATE(2736),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2736),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2736),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2736),
    [sym_union_declaration] = STATE(2736),
    [sym_postblit] = STATE(2736),
    [sym_invariant_declaration] = STATE(2736),
    [sym_class_declaration] = STATE(2736),
    [sym_constructor] = STATE(2736),
    [sym_destructor] = STATE(2736),
    [sym_alias_this] = STATE(2736),
    [sym_interface_declaration] = STATE(2736),
    [sym_enum_declaration] = STATE(2736),
    [sym_anonymous_enum_declaration] = STATE(2736),
    [sym_function_declaration] = STATE(2736),
    [sym_template_declaration] = STATE(2736),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2736),
    [sym_template_mixin] = STATE(2736),
    [sym_conditional_declaration] = STATE(2736),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2736),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2736),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2736),
    [sym_static_assert] = STATE(2736),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2736),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5921),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5777),
    [anon_sym_COLON] = ACTIONS(5771),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1958] = {
    [sym_import_declaration] = STATE(1915),
    [sym_mixin_declaration] = STATE(1915),
    [sym__declaration] = STATE(1915),
    [sym__declaration2] = STATE(1915),
    [sym_variable_declaration] = STATE(1915),
    [sym_manifest_constant] = STATE(1915),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1915),
    [sym_alias_declaration] = STATE(1915),
    [sym_alias_reassign] = STATE(1915),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1915),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1915),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1915),
    [sym_union_declaration] = STATE(1915),
    [sym_postblit] = STATE(1915),
    [sym_invariant_declaration] = STATE(1915),
    [sym_class_declaration] = STATE(1915),
    [sym_constructor] = STATE(1915),
    [sym_destructor] = STATE(1915),
    [sym_alias_this] = STATE(1915),
    [sym_interface_declaration] = STATE(1915),
    [sym_enum_declaration] = STATE(1915),
    [sym_anonymous_enum_declaration] = STATE(1915),
    [sym_function_declaration] = STATE(1915),
    [sym_template_declaration] = STATE(1915),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1915),
    [sym_template_mixin] = STATE(1915),
    [sym_conditional_declaration] = STATE(1915),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1915),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1915),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1915),
    [sym_static_assert] = STATE(1915),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1915),
    [aux_sym_source_file_repeat1] = STATE(1915),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5923),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5925),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1959] = {
    [sym_import_declaration] = STATE(1836),
    [sym_mixin_declaration] = STATE(1836),
    [sym__declaration] = STATE(1836),
    [sym__declaration2] = STATE(1836),
    [sym_variable_declaration] = STATE(1836),
    [sym_manifest_constant] = STATE(1836),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1836),
    [sym_alias_declaration] = STATE(1836),
    [sym_alias_reassign] = STATE(1836),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1836),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1836),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1836),
    [sym_union_declaration] = STATE(1836),
    [sym_postblit] = STATE(1836),
    [sym_invariant_declaration] = STATE(1836),
    [sym_class_declaration] = STATE(1836),
    [sym_constructor] = STATE(1836),
    [sym_destructor] = STATE(1836),
    [sym_alias_this] = STATE(1836),
    [sym_interface_declaration] = STATE(1836),
    [sym_enum_declaration] = STATE(1836),
    [sym_anonymous_enum_declaration] = STATE(1836),
    [sym_function_declaration] = STATE(1836),
    [sym_template_declaration] = STATE(1836),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1836),
    [sym_template_mixin] = STATE(1836),
    [sym_conditional_declaration] = STATE(1836),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1836),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1836),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1836),
    [sym_static_assert] = STATE(1836),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1836),
    [aux_sym_source_file_repeat1] = STATE(1836),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5927),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5929),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1960] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5931),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1961] = {
    [sym_import_declaration] = STATE(2086),
    [sym_mixin_declaration] = STATE(2086),
    [sym__declaration] = STATE(2086),
    [sym__declaration2] = STATE(2086),
    [sym_variable_declaration] = STATE(2086),
    [sym_manifest_constant] = STATE(2086),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2086),
    [sym_alias_declaration] = STATE(2086),
    [sym_alias_reassign] = STATE(2086),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2086),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2086),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2086),
    [sym_union_declaration] = STATE(2086),
    [sym_postblit] = STATE(2086),
    [sym_invariant_declaration] = STATE(2086),
    [sym_class_declaration] = STATE(2086),
    [sym_constructor] = STATE(2086),
    [sym_destructor] = STATE(2086),
    [sym_alias_this] = STATE(2086),
    [sym_interface_declaration] = STATE(2086),
    [sym_enum_declaration] = STATE(2086),
    [sym_anonymous_enum_declaration] = STATE(2086),
    [sym_function_declaration] = STATE(2086),
    [sym_template_declaration] = STATE(2086),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2086),
    [sym_template_mixin] = STATE(2086),
    [sym_conditional_declaration] = STATE(2086),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2086),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2086),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2086),
    [sym_static_assert] = STATE(2086),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2086),
    [aux_sym_source_file_repeat1] = STATE(2086),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5913),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5933),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1962] = {
    [sym_import_declaration] = STATE(1595),
    [sym_mixin_declaration] = STATE(1595),
    [sym__declaration] = STATE(1595),
    [sym__declaration2] = STATE(1595),
    [sym_variable_declaration] = STATE(1595),
    [sym_manifest_constant] = STATE(1595),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1595),
    [sym_alias_declaration] = STATE(1595),
    [sym_alias_reassign] = STATE(1595),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1595),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1595),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1595),
    [sym_union_declaration] = STATE(1595),
    [sym_postblit] = STATE(1595),
    [sym_invariant_declaration] = STATE(1595),
    [sym_class_declaration] = STATE(1595),
    [sym_constructor] = STATE(1595),
    [sym_destructor] = STATE(1595),
    [sym_alias_this] = STATE(1595),
    [sym_interface_declaration] = STATE(1595),
    [sym_enum_declaration] = STATE(1595),
    [sym_anonymous_enum_declaration] = STATE(1595),
    [sym_function_declaration] = STATE(1595),
    [sym_template_declaration] = STATE(1595),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1595),
    [sym_template_mixin] = STATE(1595),
    [sym_conditional_declaration] = STATE(1595),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1595),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1595),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1595),
    [sym_static_assert] = STATE(1595),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1595),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5935),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5937),
    [anon_sym_COLON] = ACTIONS(5899),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1963] = {
    [sym_import_declaration] = STATE(2495),
    [sym_mixin_declaration] = STATE(2495),
    [sym__declaration] = STATE(2495),
    [sym__declaration2] = STATE(2495),
    [sym_variable_declaration] = STATE(2495),
    [sym_manifest_constant] = STATE(2495),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2495),
    [sym_alias_declaration] = STATE(2495),
    [sym_alias_reassign] = STATE(2495),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2495),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2495),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2495),
    [sym_union_declaration] = STATE(2495),
    [sym_postblit] = STATE(2495),
    [sym_invariant_declaration] = STATE(2495),
    [sym_class_declaration] = STATE(2495),
    [sym_constructor] = STATE(2495),
    [sym_destructor] = STATE(2495),
    [sym_alias_this] = STATE(2495),
    [sym_interface_declaration] = STATE(2495),
    [sym_enum_declaration] = STATE(2495),
    [sym_anonymous_enum_declaration] = STATE(2495),
    [sym_function_declaration] = STATE(2495),
    [sym_template_declaration] = STATE(2495),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2495),
    [sym_template_mixin] = STATE(2495),
    [sym_conditional_declaration] = STATE(2495),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2495),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2495),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2495),
    [sym_static_assert] = STATE(2495),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2495),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5689),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5691),
    [anon_sym_COLON] = ACTIONS(5939),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1964] = {
    [sym_import_declaration] = STATE(2569),
    [sym_mixin_declaration] = STATE(2569),
    [sym__declaration] = STATE(2569),
    [sym__declaration2] = STATE(2569),
    [sym_variable_declaration] = STATE(2569),
    [sym_manifest_constant] = STATE(2569),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2569),
    [sym_alias_declaration] = STATE(2569),
    [sym_alias_reassign] = STATE(2569),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2569),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2569),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2569),
    [sym_union_declaration] = STATE(2569),
    [sym_postblit] = STATE(2569),
    [sym_invariant_declaration] = STATE(2569),
    [sym_class_declaration] = STATE(2569),
    [sym_constructor] = STATE(2569),
    [sym_destructor] = STATE(2569),
    [sym_alias_this] = STATE(2569),
    [sym_interface_declaration] = STATE(2569),
    [sym_enum_declaration] = STATE(2569),
    [sym_anonymous_enum_declaration] = STATE(2569),
    [sym_function_declaration] = STATE(2569),
    [sym_template_declaration] = STATE(2569),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2569),
    [sym_template_mixin] = STATE(2569),
    [sym_conditional_declaration] = STATE(2569),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2569),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2569),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2569),
    [sym_static_assert] = STATE(2569),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2569),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5941),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5943),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1965] = {
    [sym_import_declaration] = STATE(1870),
    [sym_mixin_declaration] = STATE(1870),
    [sym__declaration] = STATE(1870),
    [sym__declaration2] = STATE(1870),
    [sym_variable_declaration] = STATE(1870),
    [sym_manifest_constant] = STATE(1870),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1870),
    [sym_alias_declaration] = STATE(1870),
    [sym_alias_reassign] = STATE(1870),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1870),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1870),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1870),
    [sym_union_declaration] = STATE(1870),
    [sym_postblit] = STATE(1870),
    [sym_invariant_declaration] = STATE(1870),
    [sym_class_declaration] = STATE(1870),
    [sym_constructor] = STATE(1870),
    [sym_destructor] = STATE(1870),
    [sym_alias_this] = STATE(1870),
    [sym_interface_declaration] = STATE(1870),
    [sym_enum_declaration] = STATE(1870),
    [sym_anonymous_enum_declaration] = STATE(1870),
    [sym_function_declaration] = STATE(1870),
    [sym_template_declaration] = STATE(1870),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1870),
    [sym_template_mixin] = STATE(1870),
    [sym_conditional_declaration] = STATE(1870),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1870),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1870),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1870),
    [sym_static_assert] = STATE(1870),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1870),
    [aux_sym_source_file_repeat1] = STATE(1870),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5631),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5945),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1966] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5923),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1967] = {
    [sym_import_declaration] = STATE(2230),
    [sym_mixin_declaration] = STATE(2230),
    [sym__declaration] = STATE(2230),
    [sym__declaration2] = STATE(2230),
    [sym_variable_declaration] = STATE(2230),
    [sym_manifest_constant] = STATE(2230),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2230),
    [sym_alias_declaration] = STATE(2230),
    [sym_alias_reassign] = STATE(2230),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2230),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2230),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2230),
    [sym_union_declaration] = STATE(2230),
    [sym_postblit] = STATE(2230),
    [sym_invariant_declaration] = STATE(2230),
    [sym_class_declaration] = STATE(2230),
    [sym_constructor] = STATE(2230),
    [sym_destructor] = STATE(2230),
    [sym_alias_this] = STATE(2230),
    [sym_interface_declaration] = STATE(2230),
    [sym_enum_declaration] = STATE(2230),
    [sym_anonymous_enum_declaration] = STATE(2230),
    [sym_function_declaration] = STATE(2230),
    [sym_template_declaration] = STATE(2230),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2230),
    [sym_template_mixin] = STATE(2230),
    [sym_conditional_declaration] = STATE(2230),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2230),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2230),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2230),
    [sym_static_assert] = STATE(2230),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2230),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5895),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5897),
    [anon_sym_COLON] = ACTIONS(5947),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1968] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5949),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1969] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5951),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1970] = {
    [sym_import_declaration] = STATE(2480),
    [sym_mixin_declaration] = STATE(2480),
    [sym__declaration] = STATE(2480),
    [sym__declaration2] = STATE(2480),
    [sym_variable_declaration] = STATE(2480),
    [sym_manifest_constant] = STATE(2480),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2480),
    [sym_alias_declaration] = STATE(2480),
    [sym_alias_reassign] = STATE(2480),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2480),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2480),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2480),
    [sym_union_declaration] = STATE(2480),
    [sym_postblit] = STATE(2480),
    [sym_invariant_declaration] = STATE(2480),
    [sym_class_declaration] = STATE(2480),
    [sym_constructor] = STATE(2480),
    [sym_destructor] = STATE(2480),
    [sym_alias_this] = STATE(2480),
    [sym_interface_declaration] = STATE(2480),
    [sym_enum_declaration] = STATE(2480),
    [sym_anonymous_enum_declaration] = STATE(2480),
    [sym_function_declaration] = STATE(2480),
    [sym_template_declaration] = STATE(2480),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2480),
    [sym_template_mixin] = STATE(2480),
    [sym_conditional_declaration] = STATE(2480),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2480),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2480),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2480),
    [sym_static_assert] = STATE(2480),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2480),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5683),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5685),
    [anon_sym_COLON] = ACTIONS(5953),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1971] = {
    [sym_import_declaration] = STATE(1939),
    [sym_mixin_declaration] = STATE(1939),
    [sym__declaration] = STATE(1939),
    [sym__declaration2] = STATE(1939),
    [sym_variable_declaration] = STATE(1939),
    [sym_manifest_constant] = STATE(1939),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1939),
    [sym_alias_declaration] = STATE(1939),
    [sym_alias_reassign] = STATE(1939),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1939),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1939),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1939),
    [sym_union_declaration] = STATE(1939),
    [sym_postblit] = STATE(1939),
    [sym_invariant_declaration] = STATE(1939),
    [sym_class_declaration] = STATE(1939),
    [sym_constructor] = STATE(1939),
    [sym_destructor] = STATE(1939),
    [sym_alias_this] = STATE(1939),
    [sym_interface_declaration] = STATE(1939),
    [sym_enum_declaration] = STATE(1939),
    [sym_anonymous_enum_declaration] = STATE(1939),
    [sym_function_declaration] = STATE(1939),
    [sym_template_declaration] = STATE(1939),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1939),
    [sym_template_mixin] = STATE(1939),
    [sym_conditional_declaration] = STATE(1939),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1939),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1939),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1939),
    [sym_static_assert] = STATE(1939),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1939),
    [aux_sym_source_file_repeat1] = STATE(1939),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5911),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5955),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1972] = {
    [sym_import_declaration] = STATE(1853),
    [sym_mixin_declaration] = STATE(1853),
    [sym__declaration] = STATE(1853),
    [sym__declaration2] = STATE(1853),
    [sym_variable_declaration] = STATE(1853),
    [sym_manifest_constant] = STATE(1853),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1853),
    [sym_alias_declaration] = STATE(1853),
    [sym_alias_reassign] = STATE(1853),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1853),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1853),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1853),
    [sym_union_declaration] = STATE(1853),
    [sym_postblit] = STATE(1853),
    [sym_invariant_declaration] = STATE(1853),
    [sym_class_declaration] = STATE(1853),
    [sym_constructor] = STATE(1853),
    [sym_destructor] = STATE(1853),
    [sym_alias_this] = STATE(1853),
    [sym_interface_declaration] = STATE(1853),
    [sym_enum_declaration] = STATE(1853),
    [sym_anonymous_enum_declaration] = STATE(1853),
    [sym_function_declaration] = STATE(1853),
    [sym_template_declaration] = STATE(1853),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1853),
    [sym_template_mixin] = STATE(1853),
    [sym_conditional_declaration] = STATE(1853),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1853),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1853),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1853),
    [sym_static_assert] = STATE(1853),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1853),
    [aux_sym_source_file_repeat1] = STATE(1853),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5511),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5957),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1973] = {
    [sym_import_declaration] = STATE(1960),
    [sym_mixin_declaration] = STATE(1960),
    [sym__declaration] = STATE(1960),
    [sym__declaration2] = STATE(1960),
    [sym_variable_declaration] = STATE(1960),
    [sym_manifest_constant] = STATE(1960),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1960),
    [sym_alias_declaration] = STATE(1960),
    [sym_alias_reassign] = STATE(1960),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1960),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1960),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1960),
    [sym_union_declaration] = STATE(1960),
    [sym_postblit] = STATE(1960),
    [sym_invariant_declaration] = STATE(1960),
    [sym_class_declaration] = STATE(1960),
    [sym_constructor] = STATE(1960),
    [sym_destructor] = STATE(1960),
    [sym_alias_this] = STATE(1960),
    [sym_interface_declaration] = STATE(1960),
    [sym_enum_declaration] = STATE(1960),
    [sym_anonymous_enum_declaration] = STATE(1960),
    [sym_function_declaration] = STATE(1960),
    [sym_template_declaration] = STATE(1960),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1960),
    [sym_template_mixin] = STATE(1960),
    [sym_conditional_declaration] = STATE(1960),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1960),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1960),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1960),
    [sym_static_assert] = STATE(1960),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1960),
    [aux_sym_source_file_repeat1] = STATE(1960),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5959),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5961),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1974] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5497),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1975] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5963),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1976] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5965),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1977] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5967),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1978] = {
    [sym_import_declaration] = STATE(2340),
    [sym_mixin_declaration] = STATE(2340),
    [sym__declaration] = STATE(2340),
    [sym__declaration2] = STATE(2340),
    [sym_variable_declaration] = STATE(2340),
    [sym_manifest_constant] = STATE(2340),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2340),
    [sym_alias_declaration] = STATE(2340),
    [sym_alias_reassign] = STATE(2340),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2340),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2340),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2340),
    [sym_union_declaration] = STATE(2340),
    [sym_postblit] = STATE(2340),
    [sym_invariant_declaration] = STATE(2340),
    [sym_class_declaration] = STATE(2340),
    [sym_constructor] = STATE(2340),
    [sym_destructor] = STATE(2340),
    [sym_alias_this] = STATE(2340),
    [sym_interface_declaration] = STATE(2340),
    [sym_enum_declaration] = STATE(2340),
    [sym_anonymous_enum_declaration] = STATE(2340),
    [sym_function_declaration] = STATE(2340),
    [sym_template_declaration] = STATE(2340),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2340),
    [sym_template_mixin] = STATE(2340),
    [sym_conditional_declaration] = STATE(2340),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2340),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2340),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2340),
    [sym_static_assert] = STATE(2340),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2340),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5969),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5971),
    [anon_sym_COLON] = ACTIONS(5845),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1979] = {
    [sym_import_declaration] = STATE(1918),
    [sym_mixin_declaration] = STATE(1918),
    [sym__declaration] = STATE(1918),
    [sym__declaration2] = STATE(1918),
    [sym_variable_declaration] = STATE(1918),
    [sym_manifest_constant] = STATE(1918),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1918),
    [sym_alias_declaration] = STATE(1918),
    [sym_alias_reassign] = STATE(1918),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1918),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1918),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1918),
    [sym_union_declaration] = STATE(1918),
    [sym_postblit] = STATE(1918),
    [sym_invariant_declaration] = STATE(1918),
    [sym_class_declaration] = STATE(1918),
    [sym_constructor] = STATE(1918),
    [sym_destructor] = STATE(1918),
    [sym_alias_this] = STATE(1918),
    [sym_interface_declaration] = STATE(1918),
    [sym_enum_declaration] = STATE(1918),
    [sym_anonymous_enum_declaration] = STATE(1918),
    [sym_function_declaration] = STATE(1918),
    [sym_template_declaration] = STATE(1918),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1918),
    [sym_template_mixin] = STATE(1918),
    [sym_conditional_declaration] = STATE(1918),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1918),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1918),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1918),
    [sym_static_assert] = STATE(1918),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1918),
    [aux_sym_source_file_repeat1] = STATE(1918),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5973),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5975),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1980] = {
    [sym_import_declaration] = STATE(1910),
    [sym_mixin_declaration] = STATE(1910),
    [sym__declaration] = STATE(1910),
    [sym__declaration2] = STATE(1910),
    [sym_variable_declaration] = STATE(1910),
    [sym_manifest_constant] = STATE(1910),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1910),
    [sym_alias_declaration] = STATE(1910),
    [sym_alias_reassign] = STATE(1910),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1910),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1910),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1910),
    [sym_union_declaration] = STATE(1910),
    [sym_postblit] = STATE(1910),
    [sym_invariant_declaration] = STATE(1910),
    [sym_class_declaration] = STATE(1910),
    [sym_constructor] = STATE(1910),
    [sym_destructor] = STATE(1910),
    [sym_alias_this] = STATE(1910),
    [sym_interface_declaration] = STATE(1910),
    [sym_enum_declaration] = STATE(1910),
    [sym_anonymous_enum_declaration] = STATE(1910),
    [sym_function_declaration] = STATE(1910),
    [sym_template_declaration] = STATE(1910),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1910),
    [sym_template_mixin] = STATE(1910),
    [sym_conditional_declaration] = STATE(1910),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1910),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1910),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1910),
    [sym_static_assert] = STATE(1910),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1910),
    [aux_sym_source_file_repeat1] = STATE(1910),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5977),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5979),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1981] = {
    [sym_import_declaration] = STATE(1706),
    [sym_mixin_declaration] = STATE(1706),
    [sym__declaration] = STATE(1706),
    [sym__declaration2] = STATE(1706),
    [sym_variable_declaration] = STATE(1706),
    [sym_manifest_constant] = STATE(1706),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1706),
    [sym_alias_declaration] = STATE(1706),
    [sym_alias_reassign] = STATE(1706),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1706),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1706),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1706),
    [sym_union_declaration] = STATE(1706),
    [sym_postblit] = STATE(1706),
    [sym_invariant_declaration] = STATE(1706),
    [sym_class_declaration] = STATE(1706),
    [sym_constructor] = STATE(1706),
    [sym_destructor] = STATE(1706),
    [sym_alias_this] = STATE(1706),
    [sym_interface_declaration] = STATE(1706),
    [sym_enum_declaration] = STATE(1706),
    [sym_anonymous_enum_declaration] = STATE(1706),
    [sym_function_declaration] = STATE(1706),
    [sym_template_declaration] = STATE(1706),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1706),
    [sym_template_mixin] = STATE(1706),
    [sym_conditional_declaration] = STATE(1706),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1706),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1706),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1706),
    [sym_static_assert] = STATE(1706),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1706),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5981),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5983),
    [anon_sym_COLON] = ACTIONS(5761),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1982] = {
    [sym_import_declaration] = STATE(1952),
    [sym_mixin_declaration] = STATE(1952),
    [sym__declaration] = STATE(1952),
    [sym__declaration2] = STATE(1952),
    [sym_variable_declaration] = STATE(1952),
    [sym_manifest_constant] = STATE(1952),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1952),
    [sym_alias_declaration] = STATE(1952),
    [sym_alias_reassign] = STATE(1952),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1952),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1952),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1952),
    [sym_union_declaration] = STATE(1952),
    [sym_postblit] = STATE(1952),
    [sym_invariant_declaration] = STATE(1952),
    [sym_class_declaration] = STATE(1952),
    [sym_constructor] = STATE(1952),
    [sym_destructor] = STATE(1952),
    [sym_alias_this] = STATE(1952),
    [sym_interface_declaration] = STATE(1952),
    [sym_enum_declaration] = STATE(1952),
    [sym_anonymous_enum_declaration] = STATE(1952),
    [sym_function_declaration] = STATE(1952),
    [sym_template_declaration] = STATE(1952),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1952),
    [sym_template_mixin] = STATE(1952),
    [sym_conditional_declaration] = STATE(1952),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1952),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1952),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1952),
    [sym_static_assert] = STATE(1952),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1952),
    [aux_sym_source_file_repeat1] = STATE(1952),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5985),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5987),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1983] = {
    [sym_import_declaration] = STATE(1975),
    [sym_mixin_declaration] = STATE(1975),
    [sym__declaration] = STATE(1975),
    [sym__declaration2] = STATE(1975),
    [sym_variable_declaration] = STATE(1975),
    [sym_manifest_constant] = STATE(1975),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1975),
    [sym_alias_declaration] = STATE(1975),
    [sym_alias_reassign] = STATE(1975),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1975),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1975),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1975),
    [sym_union_declaration] = STATE(1975),
    [sym_postblit] = STATE(1975),
    [sym_invariant_declaration] = STATE(1975),
    [sym_class_declaration] = STATE(1975),
    [sym_constructor] = STATE(1975),
    [sym_destructor] = STATE(1975),
    [sym_alias_this] = STATE(1975),
    [sym_interface_declaration] = STATE(1975),
    [sym_enum_declaration] = STATE(1975),
    [sym_anonymous_enum_declaration] = STATE(1975),
    [sym_function_declaration] = STATE(1975),
    [sym_template_declaration] = STATE(1975),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1975),
    [sym_template_mixin] = STATE(1975),
    [sym_conditional_declaration] = STATE(1975),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1975),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1975),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1975),
    [sym_static_assert] = STATE(1975),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1975),
    [aux_sym_source_file_repeat1] = STATE(1975),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5989),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5991),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1984] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5715),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1985] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5993),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1986] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5995),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1987] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5959),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1988] = {
    [sym_import_declaration] = STATE(2496),
    [sym_mixin_declaration] = STATE(2496),
    [sym__declaration] = STATE(2496),
    [sym__declaration2] = STATE(2496),
    [sym_variable_declaration] = STATE(2496),
    [sym_manifest_constant] = STATE(2496),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2496),
    [sym_alias_declaration] = STATE(2496),
    [sym_alias_reassign] = STATE(2496),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2496),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2496),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2496),
    [sym_union_declaration] = STATE(2496),
    [sym_postblit] = STATE(2496),
    [sym_invariant_declaration] = STATE(2496),
    [sym_class_declaration] = STATE(2496),
    [sym_constructor] = STATE(2496),
    [sym_destructor] = STATE(2496),
    [sym_alias_this] = STATE(2496),
    [sym_interface_declaration] = STATE(2496),
    [sym_enum_declaration] = STATE(2496),
    [sym_anonymous_enum_declaration] = STATE(2496),
    [sym_function_declaration] = STATE(2496),
    [sym_template_declaration] = STATE(2496),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2496),
    [sym_template_mixin] = STATE(2496),
    [sym_conditional_declaration] = STATE(2496),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2496),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2496),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2496),
    [sym_static_assert] = STATE(2496),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2496),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5905),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5907),
    [anon_sym_COLON] = ACTIONS(5909),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1989] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5997),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1990] = {
    [sym_import_declaration] = STATE(1864),
    [sym_mixin_declaration] = STATE(1864),
    [sym__declaration] = STATE(1864),
    [sym__declaration2] = STATE(1864),
    [sym_variable_declaration] = STATE(1864),
    [sym_manifest_constant] = STATE(1864),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1864),
    [sym_alias_declaration] = STATE(1864),
    [sym_alias_reassign] = STATE(1864),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1864),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1864),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1864),
    [sym_union_declaration] = STATE(1864),
    [sym_postblit] = STATE(1864),
    [sym_invariant_declaration] = STATE(1864),
    [sym_class_declaration] = STATE(1864),
    [sym_constructor] = STATE(1864),
    [sym_destructor] = STATE(1864),
    [sym_alias_this] = STATE(1864),
    [sym_interface_declaration] = STATE(1864),
    [sym_enum_declaration] = STATE(1864),
    [sym_anonymous_enum_declaration] = STATE(1864),
    [sym_function_declaration] = STATE(1864),
    [sym_template_declaration] = STATE(1864),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1864),
    [sym_template_mixin] = STATE(1864),
    [sym_conditional_declaration] = STATE(1864),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1864),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1864),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1864),
    [sym_static_assert] = STATE(1864),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1864),
    [aux_sym_source_file_repeat1] = STATE(1864),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5999),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6001),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1991] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5927),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1992] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5989),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1993] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6003),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1994] = {
    [sym_import_declaration] = STATE(1828),
    [sym_mixin_declaration] = STATE(1828),
    [sym__declaration] = STATE(1828),
    [sym__declaration2] = STATE(1828),
    [sym_variable_declaration] = STATE(1828),
    [sym_manifest_constant] = STATE(1828),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1828),
    [sym_alias_declaration] = STATE(1828),
    [sym_alias_reassign] = STATE(1828),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1828),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1828),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1828),
    [sym_union_declaration] = STATE(1828),
    [sym_postblit] = STATE(1828),
    [sym_invariant_declaration] = STATE(1828),
    [sym_class_declaration] = STATE(1828),
    [sym_constructor] = STATE(1828),
    [sym_destructor] = STATE(1828),
    [sym_alias_this] = STATE(1828),
    [sym_interface_declaration] = STATE(1828),
    [sym_enum_declaration] = STATE(1828),
    [sym_anonymous_enum_declaration] = STATE(1828),
    [sym_function_declaration] = STATE(1828),
    [sym_template_declaration] = STATE(1828),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1828),
    [sym_template_mixin] = STATE(1828),
    [sym_conditional_declaration] = STATE(1828),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1828),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1828),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1828),
    [sym_static_assert] = STATE(1828),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1828),
    [aux_sym_source_file_repeat1] = STATE(1828),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6005),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6007),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1995] = {
    [sym_import_declaration] = STATE(2040),
    [sym_mixin_declaration] = STATE(2040),
    [sym__declaration] = STATE(2040),
    [sym__declaration2] = STATE(2040),
    [sym_variable_declaration] = STATE(2040),
    [sym_manifest_constant] = STATE(2040),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2040),
    [sym_alias_declaration] = STATE(2040),
    [sym_alias_reassign] = STATE(2040),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2040),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2040),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2040),
    [sym_union_declaration] = STATE(2040),
    [sym_postblit] = STATE(2040),
    [sym_invariant_declaration] = STATE(2040),
    [sym_class_declaration] = STATE(2040),
    [sym_constructor] = STATE(2040),
    [sym_destructor] = STATE(2040),
    [sym_alias_this] = STATE(2040),
    [sym_interface_declaration] = STATE(2040),
    [sym_enum_declaration] = STATE(2040),
    [sym_anonymous_enum_declaration] = STATE(2040),
    [sym_function_declaration] = STATE(2040),
    [sym_template_declaration] = STATE(2040),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2040),
    [sym_template_mixin] = STATE(2040),
    [sym_conditional_declaration] = STATE(2040),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2040),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2040),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2040),
    [sym_static_assert] = STATE(2040),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2040),
    [aux_sym_source_file_repeat1] = STATE(2040),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5769),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6009),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1996] = {
    [sym_import_declaration] = STATE(1818),
    [sym_mixin_declaration] = STATE(1818),
    [sym__declaration] = STATE(1818),
    [sym__declaration2] = STATE(1818),
    [sym_variable_declaration] = STATE(1818),
    [sym_manifest_constant] = STATE(1818),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1818),
    [sym_alias_declaration] = STATE(1818),
    [sym_alias_reassign] = STATE(1818),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1818),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1818),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1818),
    [sym_union_declaration] = STATE(1818),
    [sym_postblit] = STATE(1818),
    [sym_invariant_declaration] = STATE(1818),
    [sym_class_declaration] = STATE(1818),
    [sym_constructor] = STATE(1818),
    [sym_destructor] = STATE(1818),
    [sym_alias_this] = STATE(1818),
    [sym_interface_declaration] = STATE(1818),
    [sym_enum_declaration] = STATE(1818),
    [sym_anonymous_enum_declaration] = STATE(1818),
    [sym_function_declaration] = STATE(1818),
    [sym_template_declaration] = STATE(1818),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1818),
    [sym_template_mixin] = STATE(1818),
    [sym_conditional_declaration] = STATE(1818),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1818),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1818),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1818),
    [sym_static_assert] = STATE(1818),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1818),
    [aux_sym_source_file_repeat1] = STATE(1818),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6003),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6011),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1997] = {
    [sym_import_declaration] = STATE(2844),
    [sym_mixin_declaration] = STATE(2844),
    [sym__declaration] = STATE(2844),
    [sym__declaration2] = STATE(2844),
    [sym_variable_declaration] = STATE(2844),
    [sym_manifest_constant] = STATE(2844),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2844),
    [sym_alias_declaration] = STATE(2844),
    [sym_alias_reassign] = STATE(2844),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2844),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2844),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2844),
    [sym_union_declaration] = STATE(2844),
    [sym_postblit] = STATE(2844),
    [sym_invariant_declaration] = STATE(2844),
    [sym_class_declaration] = STATE(2844),
    [sym_constructor] = STATE(2844),
    [sym_destructor] = STATE(2844),
    [sym_alias_this] = STATE(2844),
    [sym_interface_declaration] = STATE(2844),
    [sym_enum_declaration] = STATE(2844),
    [sym_anonymous_enum_declaration] = STATE(2844),
    [sym_function_declaration] = STATE(2844),
    [sym_template_declaration] = STATE(2844),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2844),
    [sym_template_mixin] = STATE(2844),
    [sym_conditional_declaration] = STATE(2844),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2844),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2844),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2844),
    [sym_static_assert] = STATE(2844),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2844),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6013),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6015),
    [anon_sym_COLON] = ACTIONS(5585),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1998] = {
    [sym_import_declaration] = STATE(1846),
    [sym_mixin_declaration] = STATE(1846),
    [sym__declaration] = STATE(1846),
    [sym__declaration2] = STATE(1846),
    [sym_variable_declaration] = STATE(1846),
    [sym_manifest_constant] = STATE(1846),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1846),
    [sym_alias_declaration] = STATE(1846),
    [sym_alias_reassign] = STATE(1846),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1846),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1846),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1846),
    [sym_union_declaration] = STATE(1846),
    [sym_postblit] = STATE(1846),
    [sym_invariant_declaration] = STATE(1846),
    [sym_class_declaration] = STATE(1846),
    [sym_constructor] = STATE(1846),
    [sym_destructor] = STATE(1846),
    [sym_alias_this] = STATE(1846),
    [sym_interface_declaration] = STATE(1846),
    [sym_enum_declaration] = STATE(1846),
    [sym_anonymous_enum_declaration] = STATE(1846),
    [sym_function_declaration] = STATE(1846),
    [sym_template_declaration] = STATE(1846),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1846),
    [sym_template_mixin] = STATE(1846),
    [sym_conditional_declaration] = STATE(1846),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1846),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1846),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1846),
    [sym_static_assert] = STATE(1846),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1846),
    [aux_sym_source_file_repeat1] = STATE(1846),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5983),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6017),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [1999] = {
    [sym_import_declaration] = STATE(1954),
    [sym_mixin_declaration] = STATE(1954),
    [sym__declaration] = STATE(1954),
    [sym__declaration2] = STATE(1954),
    [sym_variable_declaration] = STATE(1954),
    [sym_manifest_constant] = STATE(1954),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1954),
    [sym_alias_declaration] = STATE(1954),
    [sym_alias_reassign] = STATE(1954),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1954),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1954),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1954),
    [sym_union_declaration] = STATE(1954),
    [sym_postblit] = STATE(1954),
    [sym_invariant_declaration] = STATE(1954),
    [sym_class_declaration] = STATE(1954),
    [sym_constructor] = STATE(1954),
    [sym_destructor] = STATE(1954),
    [sym_alias_this] = STATE(1954),
    [sym_interface_declaration] = STATE(1954),
    [sym_enum_declaration] = STATE(1954),
    [sym_anonymous_enum_declaration] = STATE(1954),
    [sym_function_declaration] = STATE(1954),
    [sym_template_declaration] = STATE(1954),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1954),
    [sym_template_mixin] = STATE(1954),
    [sym_conditional_declaration] = STATE(1954),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1954),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1954),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1954),
    [sym_static_assert] = STATE(1954),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1954),
    [aux_sym_source_file_repeat1] = STATE(1954),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6019),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6021),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2000] = {
    [sym_import_declaration] = STATE(2569),
    [sym_mixin_declaration] = STATE(2569),
    [sym__declaration] = STATE(2569),
    [sym__declaration2] = STATE(2569),
    [sym_variable_declaration] = STATE(2569),
    [sym_manifest_constant] = STATE(2569),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2569),
    [sym_alias_declaration] = STATE(2569),
    [sym_alias_reassign] = STATE(2569),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2569),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2569),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2569),
    [sym_union_declaration] = STATE(2569),
    [sym_postblit] = STATE(2569),
    [sym_invariant_declaration] = STATE(2569),
    [sym_class_declaration] = STATE(2569),
    [sym_constructor] = STATE(2569),
    [sym_destructor] = STATE(2569),
    [sym_alias_this] = STATE(2569),
    [sym_interface_declaration] = STATE(2569),
    [sym_enum_declaration] = STATE(2569),
    [sym_anonymous_enum_declaration] = STATE(2569),
    [sym_function_declaration] = STATE(2569),
    [sym_template_declaration] = STATE(2569),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2569),
    [sym_template_mixin] = STATE(2569),
    [sym_conditional_declaration] = STATE(2569),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2569),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2569),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2569),
    [sym_static_assert] = STATE(2569),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2569),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5941),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5943),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2001] = {
    [sym_import_declaration] = STATE(1559),
    [sym_mixin_declaration] = STATE(1559),
    [sym__declaration] = STATE(1559),
    [sym__declaration2] = STATE(1559),
    [sym_variable_declaration] = STATE(1559),
    [sym_manifest_constant] = STATE(1559),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1559),
    [sym_alias_declaration] = STATE(1559),
    [sym_alias_reassign] = STATE(1559),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1559),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1559),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1559),
    [sym_union_declaration] = STATE(1559),
    [sym_postblit] = STATE(1559),
    [sym_invariant_declaration] = STATE(1559),
    [sym_class_declaration] = STATE(1559),
    [sym_constructor] = STATE(1559),
    [sym_destructor] = STATE(1559),
    [sym_alias_this] = STATE(1559),
    [sym_interface_declaration] = STATE(1559),
    [sym_enum_declaration] = STATE(1559),
    [sym_anonymous_enum_declaration] = STATE(1559),
    [sym_function_declaration] = STATE(1559),
    [sym_template_declaration] = STATE(1559),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1559),
    [sym_template_mixin] = STATE(1559),
    [sym_conditional_declaration] = STATE(1559),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1559),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1559),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1559),
    [sym_static_assert] = STATE(1559),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1559),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6023),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5681),
    [anon_sym_COLON] = ACTIONS(6025),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2002] = {
    [sym_import_declaration] = STATE(1904),
    [sym_mixin_declaration] = STATE(1904),
    [sym__declaration] = STATE(1904),
    [sym__declaration2] = STATE(1904),
    [sym_variable_declaration] = STATE(1904),
    [sym_manifest_constant] = STATE(1904),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1904),
    [sym_alias_declaration] = STATE(1904),
    [sym_alias_reassign] = STATE(1904),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1904),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1904),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1904),
    [sym_union_declaration] = STATE(1904),
    [sym_postblit] = STATE(1904),
    [sym_invariant_declaration] = STATE(1904),
    [sym_class_declaration] = STATE(1904),
    [sym_constructor] = STATE(1904),
    [sym_destructor] = STATE(1904),
    [sym_alias_this] = STATE(1904),
    [sym_interface_declaration] = STATE(1904),
    [sym_enum_declaration] = STATE(1904),
    [sym_anonymous_enum_declaration] = STATE(1904),
    [sym_function_declaration] = STATE(1904),
    [sym_template_declaration] = STATE(1904),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1904),
    [sym_template_mixin] = STATE(1904),
    [sym_conditional_declaration] = STATE(1904),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1904),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1904),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1904),
    [sym_static_assert] = STATE(1904),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1904),
    [aux_sym_source_file_repeat1] = STATE(1904),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6027),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6029),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2003] = {
    [sym_import_declaration] = STATE(1486),
    [sym_mixin_declaration] = STATE(1486),
    [sym__declaration] = STATE(1486),
    [sym__declaration2] = STATE(1486),
    [sym_variable_declaration] = STATE(1486),
    [sym_manifest_constant] = STATE(1486),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1486),
    [sym_alias_declaration] = STATE(1486),
    [sym_alias_reassign] = STATE(1486),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1486),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1486),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1486),
    [sym_union_declaration] = STATE(1486),
    [sym_postblit] = STATE(1486),
    [sym_invariant_declaration] = STATE(1486),
    [sym_class_declaration] = STATE(1486),
    [sym_constructor] = STATE(1486),
    [sym_destructor] = STATE(1486),
    [sym_alias_this] = STATE(1486),
    [sym_interface_declaration] = STATE(1486),
    [sym_enum_declaration] = STATE(1486),
    [sym_anonymous_enum_declaration] = STATE(1486),
    [sym_function_declaration] = STATE(1486),
    [sym_template_declaration] = STATE(1486),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1486),
    [sym_template_mixin] = STATE(1486),
    [sym_conditional_declaration] = STATE(1486),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1486),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1486),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1486),
    [sym_static_assert] = STATE(1486),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1486),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6031),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6033),
    [anon_sym_COLON] = ACTIONS(5947),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2004] = {
    [sym_import_declaration] = STATE(2085),
    [sym_mixin_declaration] = STATE(2085),
    [sym__declaration] = STATE(2085),
    [sym__declaration2] = STATE(2085),
    [sym_variable_declaration] = STATE(2085),
    [sym_manifest_constant] = STATE(2085),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2085),
    [sym_alias_declaration] = STATE(2085),
    [sym_alias_reassign] = STATE(2085),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2085),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2085),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2085),
    [sym_union_declaration] = STATE(2085),
    [sym_postblit] = STATE(2085),
    [sym_invariant_declaration] = STATE(2085),
    [sym_class_declaration] = STATE(2085),
    [sym_constructor] = STATE(2085),
    [sym_destructor] = STATE(2085),
    [sym_alias_this] = STATE(2085),
    [sym_interface_declaration] = STATE(2085),
    [sym_enum_declaration] = STATE(2085),
    [sym_anonymous_enum_declaration] = STATE(2085),
    [sym_function_declaration] = STATE(2085),
    [sym_template_declaration] = STATE(2085),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2085),
    [sym_template_mixin] = STATE(2085),
    [sym_conditional_declaration] = STATE(2085),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2085),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2085),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2085),
    [sym_static_assert] = STATE(2085),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2085),
    [aux_sym_source_file_repeat1] = STATE(2085),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5627),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6035),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2005] = {
    [sym_import_declaration] = STATE(2690),
    [sym_mixin_declaration] = STATE(2690),
    [sym__declaration] = STATE(2690),
    [sym__declaration2] = STATE(2690),
    [sym_variable_declaration] = STATE(2690),
    [sym_manifest_constant] = STATE(2690),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2690),
    [sym_alias_declaration] = STATE(2690),
    [sym_alias_reassign] = STATE(2690),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2690),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2690),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2690),
    [sym_union_declaration] = STATE(2690),
    [sym_postblit] = STATE(2690),
    [sym_invariant_declaration] = STATE(2690),
    [sym_class_declaration] = STATE(2690),
    [sym_constructor] = STATE(2690),
    [sym_destructor] = STATE(2690),
    [sym_alias_this] = STATE(2690),
    [sym_interface_declaration] = STATE(2690),
    [sym_enum_declaration] = STATE(2690),
    [sym_anonymous_enum_declaration] = STATE(2690),
    [sym_function_declaration] = STATE(2690),
    [sym_template_declaration] = STATE(2690),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2690),
    [sym_template_mixin] = STATE(2690),
    [sym_conditional_declaration] = STATE(2690),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2690),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2690),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2690),
    [sym_static_assert] = STATE(2690),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2690),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6037),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5977),
    [anon_sym_COLON] = ACTIONS(6039),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2006] = {
    [sym_import_declaration] = STATE(1989),
    [sym_mixin_declaration] = STATE(1989),
    [sym__declaration] = STATE(1989),
    [sym__declaration2] = STATE(1989),
    [sym_variable_declaration] = STATE(1989),
    [sym_manifest_constant] = STATE(1989),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1989),
    [sym_alias_declaration] = STATE(1989),
    [sym_alias_reassign] = STATE(1989),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1989),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1989),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1989),
    [sym_union_declaration] = STATE(1989),
    [sym_postblit] = STATE(1989),
    [sym_invariant_declaration] = STATE(1989),
    [sym_class_declaration] = STATE(1989),
    [sym_constructor] = STATE(1989),
    [sym_destructor] = STATE(1989),
    [sym_alias_this] = STATE(1989),
    [sym_interface_declaration] = STATE(1989),
    [sym_enum_declaration] = STATE(1989),
    [sym_anonymous_enum_declaration] = STATE(1989),
    [sym_function_declaration] = STATE(1989),
    [sym_template_declaration] = STATE(1989),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1989),
    [sym_template_mixin] = STATE(1989),
    [sym_conditional_declaration] = STATE(1989),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1989),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1989),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1989),
    [sym_static_assert] = STATE(1989),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1989),
    [aux_sym_source_file_repeat1] = STATE(1989),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6041),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6043),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2007] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6045),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2008] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5977),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2009] = {
    [sym_import_declaration] = STATE(2031),
    [sym_mixin_declaration] = STATE(2031),
    [sym__declaration] = STATE(2031),
    [sym__declaration2] = STATE(2031),
    [sym_variable_declaration] = STATE(2031),
    [sym_manifest_constant] = STATE(2031),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2031),
    [sym_alias_declaration] = STATE(2031),
    [sym_alias_reassign] = STATE(2031),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2031),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2031),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2031),
    [sym_union_declaration] = STATE(2031),
    [sym_postblit] = STATE(2031),
    [sym_invariant_declaration] = STATE(2031),
    [sym_class_declaration] = STATE(2031),
    [sym_constructor] = STATE(2031),
    [sym_destructor] = STATE(2031),
    [sym_alias_this] = STATE(2031),
    [sym_interface_declaration] = STATE(2031),
    [sym_enum_declaration] = STATE(2031),
    [sym_anonymous_enum_declaration] = STATE(2031),
    [sym_function_declaration] = STATE(2031),
    [sym_template_declaration] = STATE(2031),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2031),
    [sym_template_mixin] = STATE(2031),
    [sym_conditional_declaration] = STATE(2031),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2031),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2031),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2031),
    [sym_static_assert] = STATE(2031),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2031),
    [aux_sym_source_file_repeat1] = STATE(2031),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6045),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6047),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2010] = {
    [sym_import_declaration] = STATE(2035),
    [sym_mixin_declaration] = STATE(2035),
    [sym__declaration] = STATE(2035),
    [sym__declaration2] = STATE(2035),
    [sym_variable_declaration] = STATE(2035),
    [sym_manifest_constant] = STATE(2035),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2035),
    [sym_alias_declaration] = STATE(2035),
    [sym_alias_reassign] = STATE(2035),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2035),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2035),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2035),
    [sym_union_declaration] = STATE(2035),
    [sym_postblit] = STATE(2035),
    [sym_invariant_declaration] = STATE(2035),
    [sym_class_declaration] = STATE(2035),
    [sym_constructor] = STATE(2035),
    [sym_destructor] = STATE(2035),
    [sym_alias_this] = STATE(2035),
    [sym_interface_declaration] = STATE(2035),
    [sym_enum_declaration] = STATE(2035),
    [sym_anonymous_enum_declaration] = STATE(2035),
    [sym_function_declaration] = STATE(2035),
    [sym_template_declaration] = STATE(2035),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2035),
    [sym_template_mixin] = STATE(2035),
    [sym_conditional_declaration] = STATE(2035),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2035),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2035),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2035),
    [sym_static_assert] = STATE(2035),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2035),
    [aux_sym_source_file_repeat1] = STATE(2035),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5519),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6049),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2011] = {
    [sym_import_declaration] = STATE(1949),
    [sym_mixin_declaration] = STATE(1949),
    [sym__declaration] = STATE(1949),
    [sym__declaration2] = STATE(1949),
    [sym_variable_declaration] = STATE(1949),
    [sym_manifest_constant] = STATE(1949),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1949),
    [sym_alias_declaration] = STATE(1949),
    [sym_alias_reassign] = STATE(1949),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1949),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1949),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1949),
    [sym_union_declaration] = STATE(1949),
    [sym_postblit] = STATE(1949),
    [sym_invariant_declaration] = STATE(1949),
    [sym_class_declaration] = STATE(1949),
    [sym_constructor] = STATE(1949),
    [sym_destructor] = STATE(1949),
    [sym_alias_this] = STATE(1949),
    [sym_interface_declaration] = STATE(1949),
    [sym_enum_declaration] = STATE(1949),
    [sym_anonymous_enum_declaration] = STATE(1949),
    [sym_function_declaration] = STATE(1949),
    [sym_template_declaration] = STATE(1949),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1949),
    [sym_template_mixin] = STATE(1949),
    [sym_conditional_declaration] = STATE(1949),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1949),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1949),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1949),
    [sym_static_assert] = STATE(1949),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1949),
    [aux_sym_source_file_repeat1] = STATE(1949),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6051),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6053),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2012] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6055),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2013] = {
    [sym_import_declaration] = STATE(2609),
    [sym_mixin_declaration] = STATE(2609),
    [sym__declaration] = STATE(2609),
    [sym__declaration2] = STATE(2609),
    [sym_variable_declaration] = STATE(2609),
    [sym_manifest_constant] = STATE(2609),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2609),
    [sym_alias_declaration] = STATE(2609),
    [sym_alias_reassign] = STATE(2609),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2609),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2609),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2609),
    [sym_union_declaration] = STATE(2609),
    [sym_postblit] = STATE(2609),
    [sym_invariant_declaration] = STATE(2609),
    [sym_class_declaration] = STATE(2609),
    [sym_constructor] = STATE(2609),
    [sym_destructor] = STATE(2609),
    [sym_alias_this] = STATE(2609),
    [sym_interface_declaration] = STATE(2609),
    [sym_enum_declaration] = STATE(2609),
    [sym_anonymous_enum_declaration] = STATE(2609),
    [sym_function_declaration] = STATE(2609),
    [sym_template_declaration] = STATE(2609),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2609),
    [sym_template_mixin] = STATE(2609),
    [sym_conditional_declaration] = STATE(2609),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2609),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2609),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2609),
    [sym_static_assert] = STATE(2609),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2609),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5671),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5673),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2014] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5519),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2015] = {
    [sym_import_declaration] = STATE(2073),
    [sym_mixin_declaration] = STATE(2073),
    [sym__declaration] = STATE(2073),
    [sym__declaration2] = STATE(2073),
    [sym_variable_declaration] = STATE(2073),
    [sym_manifest_constant] = STATE(2073),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2073),
    [sym_alias_declaration] = STATE(2073),
    [sym_alias_reassign] = STATE(2073),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2073),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2073),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2073),
    [sym_union_declaration] = STATE(2073),
    [sym_postblit] = STATE(2073),
    [sym_invariant_declaration] = STATE(2073),
    [sym_class_declaration] = STATE(2073),
    [sym_constructor] = STATE(2073),
    [sym_destructor] = STATE(2073),
    [sym_alias_this] = STATE(2073),
    [sym_interface_declaration] = STATE(2073),
    [sym_enum_declaration] = STATE(2073),
    [sym_anonymous_enum_declaration] = STATE(2073),
    [sym_function_declaration] = STATE(2073),
    [sym_template_declaration] = STATE(2073),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2073),
    [sym_template_mixin] = STATE(2073),
    [sym_conditional_declaration] = STATE(2073),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2073),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2073),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2073),
    [sym_static_assert] = STATE(2073),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2073),
    [aux_sym_source_file_repeat1] = STATE(2073),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5887),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6057),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2016] = {
    [sym_import_declaration] = STATE(2021),
    [sym_mixin_declaration] = STATE(2021),
    [sym__declaration] = STATE(2021),
    [sym__declaration2] = STATE(2021),
    [sym_variable_declaration] = STATE(2021),
    [sym_manifest_constant] = STATE(2021),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2021),
    [sym_alias_declaration] = STATE(2021),
    [sym_alias_reassign] = STATE(2021),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2021),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2021),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2021),
    [sym_union_declaration] = STATE(2021),
    [sym_postblit] = STATE(2021),
    [sym_invariant_declaration] = STATE(2021),
    [sym_class_declaration] = STATE(2021),
    [sym_constructor] = STATE(2021),
    [sym_destructor] = STATE(2021),
    [sym_alias_this] = STATE(2021),
    [sym_interface_declaration] = STATE(2021),
    [sym_enum_declaration] = STATE(2021),
    [sym_anonymous_enum_declaration] = STATE(2021),
    [sym_function_declaration] = STATE(2021),
    [sym_template_declaration] = STATE(2021),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2021),
    [sym_template_mixin] = STATE(2021),
    [sym_conditional_declaration] = STATE(2021),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2021),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2021),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2021),
    [sym_static_assert] = STATE(2021),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2021),
    [aux_sym_source_file_repeat1] = STATE(2021),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6059),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6061),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2017] = {
    [sym_import_declaration] = STATE(1986),
    [sym_mixin_declaration] = STATE(1986),
    [sym__declaration] = STATE(1986),
    [sym__declaration2] = STATE(1986),
    [sym_variable_declaration] = STATE(1986),
    [sym_manifest_constant] = STATE(1986),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1986),
    [sym_alias_declaration] = STATE(1986),
    [sym_alias_reassign] = STATE(1986),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1986),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1986),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1986),
    [sym_union_declaration] = STATE(1986),
    [sym_postblit] = STATE(1986),
    [sym_invariant_declaration] = STATE(1986),
    [sym_class_declaration] = STATE(1986),
    [sym_constructor] = STATE(1986),
    [sym_destructor] = STATE(1986),
    [sym_alias_this] = STATE(1986),
    [sym_interface_declaration] = STATE(1986),
    [sym_enum_declaration] = STATE(1986),
    [sym_anonymous_enum_declaration] = STATE(1986),
    [sym_function_declaration] = STATE(1986),
    [sym_template_declaration] = STATE(1986),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1986),
    [sym_template_mixin] = STATE(1986),
    [sym_conditional_declaration] = STATE(1986),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1986),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1986),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1986),
    [sym_static_assert] = STATE(1986),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1986),
    [aux_sym_source_file_repeat1] = STATE(1986),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6063),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6065),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2018] = {
    [sym_import_declaration] = STATE(1976),
    [sym_mixin_declaration] = STATE(1976),
    [sym__declaration] = STATE(1976),
    [sym__declaration2] = STATE(1976),
    [sym_variable_declaration] = STATE(1976),
    [sym_manifest_constant] = STATE(1976),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1976),
    [sym_alias_declaration] = STATE(1976),
    [sym_alias_reassign] = STATE(1976),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1976),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1976),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1976),
    [sym_union_declaration] = STATE(1976),
    [sym_postblit] = STATE(1976),
    [sym_invariant_declaration] = STATE(1976),
    [sym_class_declaration] = STATE(1976),
    [sym_constructor] = STATE(1976),
    [sym_destructor] = STATE(1976),
    [sym_alias_this] = STATE(1976),
    [sym_interface_declaration] = STATE(1976),
    [sym_enum_declaration] = STATE(1976),
    [sym_anonymous_enum_declaration] = STATE(1976),
    [sym_function_declaration] = STATE(1976),
    [sym_template_declaration] = STATE(1976),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1976),
    [sym_template_mixin] = STATE(1976),
    [sym_conditional_declaration] = STATE(1976),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1976),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1976),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1976),
    [sym_static_assert] = STATE(1976),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1976),
    [aux_sym_source_file_repeat1] = STATE(1976),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5993),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6067),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2019] = {
    [sym_import_declaration] = STATE(2096),
    [sym_mixin_declaration] = STATE(2096),
    [sym__declaration] = STATE(2096),
    [sym__declaration2] = STATE(2096),
    [sym_variable_declaration] = STATE(2096),
    [sym_manifest_constant] = STATE(2096),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2096),
    [sym_alias_declaration] = STATE(2096),
    [sym_alias_reassign] = STATE(2096),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2096),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2096),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2096),
    [sym_union_declaration] = STATE(2096),
    [sym_postblit] = STATE(2096),
    [sym_invariant_declaration] = STATE(2096),
    [sym_class_declaration] = STATE(2096),
    [sym_constructor] = STATE(2096),
    [sym_destructor] = STATE(2096),
    [sym_alias_this] = STATE(2096),
    [sym_interface_declaration] = STATE(2096),
    [sym_enum_declaration] = STATE(2096),
    [sym_anonymous_enum_declaration] = STATE(2096),
    [sym_function_declaration] = STATE(2096),
    [sym_template_declaration] = STATE(2096),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2096),
    [sym_template_mixin] = STATE(2096),
    [sym_conditional_declaration] = STATE(2096),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2096),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2096),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2096),
    [sym_static_assert] = STATE(2096),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2096),
    [aux_sym_source_file_repeat1] = STATE(2096),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6069),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6071),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2020] = {
    [sym_import_declaration] = STATE(2815),
    [sym_mixin_declaration] = STATE(2815),
    [sym__declaration] = STATE(2815),
    [sym__declaration2] = STATE(2815),
    [sym_variable_declaration] = STATE(2815),
    [sym_manifest_constant] = STATE(2815),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2815),
    [sym_alias_declaration] = STATE(2815),
    [sym_alias_reassign] = STATE(2815),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2815),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2815),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2815),
    [sym_union_declaration] = STATE(2815),
    [sym_postblit] = STATE(2815),
    [sym_invariant_declaration] = STATE(2815),
    [sym_class_declaration] = STATE(2815),
    [sym_constructor] = STATE(2815),
    [sym_destructor] = STATE(2815),
    [sym_alias_this] = STATE(2815),
    [sym_interface_declaration] = STATE(2815),
    [sym_enum_declaration] = STATE(2815),
    [sym_anonymous_enum_declaration] = STATE(2815),
    [sym_function_declaration] = STATE(2815),
    [sym_template_declaration] = STATE(2815),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2815),
    [sym_template_mixin] = STATE(2815),
    [sym_conditional_declaration] = STATE(2815),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2815),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2815),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2815),
    [sym_static_assert] = STATE(2815),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2815),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6073),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6051),
    [anon_sym_COLON] = ACTIONS(6075),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2021] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6077),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2022] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6079),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2023] = {
    [sym_import_declaration] = STATE(1992),
    [sym_mixin_declaration] = STATE(1992),
    [sym__declaration] = STATE(1992),
    [sym__declaration2] = STATE(1992),
    [sym_variable_declaration] = STATE(1992),
    [sym_manifest_constant] = STATE(1992),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1992),
    [sym_alias_declaration] = STATE(1992),
    [sym_alias_reassign] = STATE(1992),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1992),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1992),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1992),
    [sym_union_declaration] = STATE(1992),
    [sym_postblit] = STATE(1992),
    [sym_invariant_declaration] = STATE(1992),
    [sym_class_declaration] = STATE(1992),
    [sym_constructor] = STATE(1992),
    [sym_destructor] = STATE(1992),
    [sym_alias_this] = STATE(1992),
    [sym_interface_declaration] = STATE(1992),
    [sym_enum_declaration] = STATE(1992),
    [sym_anonymous_enum_declaration] = STATE(1992),
    [sym_function_declaration] = STATE(1992),
    [sym_template_declaration] = STATE(1992),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1992),
    [sym_template_mixin] = STATE(1992),
    [sym_conditional_declaration] = STATE(1992),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1992),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1992),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1992),
    [sym_static_assert] = STATE(1992),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1992),
    [aux_sym_source_file_repeat1] = STATE(1992),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5565),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6081),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2024] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6083),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2025] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6085),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2026] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6087),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2027] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5565),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2028] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6041),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2029] = {
    [sym_import_declaration] = STATE(2724),
    [sym_mixin_declaration] = STATE(2724),
    [sym__declaration] = STATE(2724),
    [sym__declaration2] = STATE(2724),
    [sym_variable_declaration] = STATE(2724),
    [sym_manifest_constant] = STATE(2724),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2724),
    [sym_alias_declaration] = STATE(2724),
    [sym_alias_reassign] = STATE(2724),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2724),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2724),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2724),
    [sym_union_declaration] = STATE(2724),
    [sym_postblit] = STATE(2724),
    [sym_invariant_declaration] = STATE(2724),
    [sym_class_declaration] = STATE(2724),
    [sym_constructor] = STATE(2724),
    [sym_destructor] = STATE(2724),
    [sym_alias_this] = STATE(2724),
    [sym_interface_declaration] = STATE(2724),
    [sym_enum_declaration] = STATE(2724),
    [sym_anonymous_enum_declaration] = STATE(2724),
    [sym_function_declaration] = STATE(2724),
    [sym_template_declaration] = STATE(2724),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2724),
    [sym_template_mixin] = STATE(2724),
    [sym_conditional_declaration] = STATE(2724),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2724),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2724),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2724),
    [sym_static_assert] = STATE(2724),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2724),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5633),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5635),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2030] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6063),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2031] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6089),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2032] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6091),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2033] = {
    [sym_import_declaration] = STATE(1868),
    [sym_mixin_declaration] = STATE(1868),
    [sym__declaration] = STATE(1868),
    [sym__declaration2] = STATE(1868),
    [sym_variable_declaration] = STATE(1868),
    [sym_manifest_constant] = STATE(1868),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1868),
    [sym_alias_declaration] = STATE(1868),
    [sym_alias_reassign] = STATE(1868),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1868),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1868),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1868),
    [sym_union_declaration] = STATE(1868),
    [sym_postblit] = STATE(1868),
    [sym_invariant_declaration] = STATE(1868),
    [sym_class_declaration] = STATE(1868),
    [sym_constructor] = STATE(1868),
    [sym_destructor] = STATE(1868),
    [sym_alias_this] = STATE(1868),
    [sym_interface_declaration] = STATE(1868),
    [sym_enum_declaration] = STATE(1868),
    [sym_anonymous_enum_declaration] = STATE(1868),
    [sym_function_declaration] = STATE(1868),
    [sym_template_declaration] = STATE(1868),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1868),
    [sym_template_mixin] = STATE(1868),
    [sym_conditional_declaration] = STATE(1868),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1868),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1868),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1868),
    [sym_static_assert] = STATE(1868),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1868),
    [aux_sym_source_file_repeat1] = STATE(1868),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5833),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6093),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2034] = {
    [sym_import_declaration] = STATE(1905),
    [sym_mixin_declaration] = STATE(1905),
    [sym__declaration] = STATE(1905),
    [sym__declaration2] = STATE(1905),
    [sym_variable_declaration] = STATE(1905),
    [sym_manifest_constant] = STATE(1905),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1905),
    [sym_alias_declaration] = STATE(1905),
    [sym_alias_reassign] = STATE(1905),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1905),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1905),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1905),
    [sym_union_declaration] = STATE(1905),
    [sym_postblit] = STATE(1905),
    [sym_invariant_declaration] = STATE(1905),
    [sym_class_declaration] = STATE(1905),
    [sym_constructor] = STATE(1905),
    [sym_destructor] = STATE(1905),
    [sym_alias_this] = STATE(1905),
    [sym_interface_declaration] = STATE(1905),
    [sym_enum_declaration] = STATE(1905),
    [sym_anonymous_enum_declaration] = STATE(1905),
    [sym_function_declaration] = STATE(1905),
    [sym_template_declaration] = STATE(1905),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1905),
    [sym_template_mixin] = STATE(1905),
    [sym_conditional_declaration] = STATE(1905),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1905),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1905),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1905),
    [sym_static_assert] = STATE(1905),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1905),
    [aux_sym_source_file_repeat1] = STATE(1905),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5903),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6095),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2035] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5721),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2036] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6097),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2037] = {
    [sym_import_declaration] = STATE(1941),
    [sym_mixin_declaration] = STATE(1941),
    [sym__declaration] = STATE(1941),
    [sym__declaration2] = STATE(1941),
    [sym_variable_declaration] = STATE(1941),
    [sym_manifest_constant] = STATE(1941),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1941),
    [sym_alias_declaration] = STATE(1941),
    [sym_alias_reassign] = STATE(1941),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1941),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1941),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1941),
    [sym_union_declaration] = STATE(1941),
    [sym_postblit] = STATE(1941),
    [sym_invariant_declaration] = STATE(1941),
    [sym_class_declaration] = STATE(1941),
    [sym_constructor] = STATE(1941),
    [sym_destructor] = STATE(1941),
    [sym_alias_this] = STATE(1941),
    [sym_interface_declaration] = STATE(1941),
    [sym_enum_declaration] = STATE(1941),
    [sym_anonymous_enum_declaration] = STATE(1941),
    [sym_function_declaration] = STATE(1941),
    [sym_template_declaration] = STATE(1941),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1941),
    [sym_template_mixin] = STATE(1941),
    [sym_conditional_declaration] = STATE(1941),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1941),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1941),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1941),
    [sym_static_assert] = STATE(1941),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1941),
    [aux_sym_source_file_repeat1] = STATE(1941),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5721),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6099),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2038] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6101),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2039] = {
    [sym_import_declaration] = STATE(2690),
    [sym_mixin_declaration] = STATE(2690),
    [sym__declaration] = STATE(2690),
    [sym__declaration2] = STATE(2690),
    [sym_variable_declaration] = STATE(2690),
    [sym_manifest_constant] = STATE(2690),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2690),
    [sym_alias_declaration] = STATE(2690),
    [sym_alias_reassign] = STATE(2690),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2690),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2690),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2690),
    [sym_union_declaration] = STATE(2690),
    [sym_postblit] = STATE(2690),
    [sym_invariant_declaration] = STATE(2690),
    [sym_class_declaration] = STATE(2690),
    [sym_constructor] = STATE(2690),
    [sym_destructor] = STATE(2690),
    [sym_alias_this] = STATE(2690),
    [sym_interface_declaration] = STATE(2690),
    [sym_enum_declaration] = STATE(2690),
    [sym_anonymous_enum_declaration] = STATE(2690),
    [sym_function_declaration] = STATE(2690),
    [sym_template_declaration] = STATE(2690),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2690),
    [sym_template_mixin] = STATE(2690),
    [sym_conditional_declaration] = STATE(2690),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2690),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2690),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2690),
    [sym_static_assert] = STATE(2690),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2690),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6037),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5977),
    [anon_sym_COLON] = ACTIONS(5541),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2040] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6103),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2041] = {
    [sym_import_declaration] = STATE(1833),
    [sym_mixin_declaration] = STATE(1833),
    [sym__declaration] = STATE(1833),
    [sym__declaration2] = STATE(1833),
    [sym_variable_declaration] = STATE(1833),
    [sym_manifest_constant] = STATE(1833),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1833),
    [sym_alias_declaration] = STATE(1833),
    [sym_alias_reassign] = STATE(1833),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1833),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1833),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1833),
    [sym_union_declaration] = STATE(1833),
    [sym_postblit] = STATE(1833),
    [sym_invariant_declaration] = STATE(1833),
    [sym_class_declaration] = STATE(1833),
    [sym_constructor] = STATE(1833),
    [sym_destructor] = STATE(1833),
    [sym_alias_this] = STATE(1833),
    [sym_interface_declaration] = STATE(1833),
    [sym_enum_declaration] = STATE(1833),
    [sym_anonymous_enum_declaration] = STATE(1833),
    [sym_function_declaration] = STATE(1833),
    [sym_template_declaration] = STATE(1833),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1833),
    [sym_template_mixin] = STATE(1833),
    [sym_conditional_declaration] = STATE(1833),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1833),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1833),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1833),
    [sym_static_assert] = STATE(1833),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1833),
    [aux_sym_source_file_repeat1] = STATE(1833),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5513),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6105),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2042] = {
    [sym_import_declaration] = STATE(2863),
    [sym_mixin_declaration] = STATE(2863),
    [sym__declaration] = STATE(2863),
    [sym__declaration2] = STATE(2863),
    [sym_variable_declaration] = STATE(2863),
    [sym_manifest_constant] = STATE(2863),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2863),
    [sym_alias_declaration] = STATE(2863),
    [sym_alias_reassign] = STATE(2863),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2863),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2863),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2863),
    [sym_union_declaration] = STATE(2863),
    [sym_postblit] = STATE(2863),
    [sym_invariant_declaration] = STATE(2863),
    [sym_class_declaration] = STATE(2863),
    [sym_constructor] = STATE(2863),
    [sym_destructor] = STATE(2863),
    [sym_alias_this] = STATE(2863),
    [sym_interface_declaration] = STATE(2863),
    [sym_enum_declaration] = STATE(2863),
    [sym_anonymous_enum_declaration] = STATE(2863),
    [sym_function_declaration] = STATE(2863),
    [sym_template_declaration] = STATE(2863),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2863),
    [sym_template_mixin] = STATE(2863),
    [sym_conditional_declaration] = STATE(2863),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2863),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2863),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2863),
    [sym_static_assert] = STATE(2863),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2863),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6107),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6109),
    [anon_sym_COLON] = ACTIONS(6111),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2043] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5833),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2044] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6113),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2045] = {
    [sym_import_declaration] = STATE(2278),
    [sym_mixin_declaration] = STATE(2278),
    [sym__declaration] = STATE(2278),
    [sym__declaration2] = STATE(2278),
    [sym_variable_declaration] = STATE(2278),
    [sym_manifest_constant] = STATE(2278),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2278),
    [sym_alias_declaration] = STATE(2278),
    [sym_alias_reassign] = STATE(2278),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2278),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2278),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2278),
    [sym_union_declaration] = STATE(2278),
    [sym_postblit] = STATE(2278),
    [sym_invariant_declaration] = STATE(2278),
    [sym_class_declaration] = STATE(2278),
    [sym_constructor] = STATE(2278),
    [sym_destructor] = STATE(2278),
    [sym_alias_this] = STATE(2278),
    [sym_interface_declaration] = STATE(2278),
    [sym_enum_declaration] = STATE(2278),
    [sym_anonymous_enum_declaration] = STATE(2278),
    [sym_function_declaration] = STATE(2278),
    [sym_template_declaration] = STATE(2278),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2278),
    [sym_template_mixin] = STATE(2278),
    [sym_conditional_declaration] = STATE(2278),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2278),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2278),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2278),
    [sym_static_assert] = STATE(2278),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2278),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5719),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5721),
    [anon_sym_COLON] = ACTIONS(6025),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2046] = {
    [sym_import_declaration] = STATE(1843),
    [sym_mixin_declaration] = STATE(1843),
    [sym__declaration] = STATE(1843),
    [sym__declaration2] = STATE(1843),
    [sym_variable_declaration] = STATE(1843),
    [sym_manifest_constant] = STATE(1843),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1843),
    [sym_alias_declaration] = STATE(1843),
    [sym_alias_reassign] = STATE(1843),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1843),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1843),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1843),
    [sym_union_declaration] = STATE(1843),
    [sym_postblit] = STATE(1843),
    [sym_invariant_declaration] = STATE(1843),
    [sym_class_declaration] = STATE(1843),
    [sym_constructor] = STATE(1843),
    [sym_destructor] = STATE(1843),
    [sym_alias_this] = STATE(1843),
    [sym_interface_declaration] = STATE(1843),
    [sym_enum_declaration] = STATE(1843),
    [sym_anonymous_enum_declaration] = STATE(1843),
    [sym_function_declaration] = STATE(1843),
    [sym_template_declaration] = STATE(1843),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1843),
    [sym_template_mixin] = STATE(1843),
    [sym_conditional_declaration] = STATE(1843),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1843),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1843),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1843),
    [sym_static_assert] = STATE(1843),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1843),
    [aux_sym_source_file_repeat1] = STATE(1843),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6115),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6117),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2047] = {
    [sym_import_declaration] = STATE(2082),
    [sym_mixin_declaration] = STATE(2082),
    [sym__declaration] = STATE(2082),
    [sym__declaration2] = STATE(2082),
    [sym_variable_declaration] = STATE(2082),
    [sym_manifest_constant] = STATE(2082),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2082),
    [sym_alias_declaration] = STATE(2082),
    [sym_alias_reassign] = STATE(2082),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2082),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2082),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2082),
    [sym_union_declaration] = STATE(2082),
    [sym_postblit] = STATE(2082),
    [sym_invariant_declaration] = STATE(2082),
    [sym_class_declaration] = STATE(2082),
    [sym_constructor] = STATE(2082),
    [sym_destructor] = STATE(2082),
    [sym_alias_this] = STATE(2082),
    [sym_interface_declaration] = STATE(2082),
    [sym_enum_declaration] = STATE(2082),
    [sym_anonymous_enum_declaration] = STATE(2082),
    [sym_function_declaration] = STATE(2082),
    [sym_template_declaration] = STATE(2082),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2082),
    [sym_template_mixin] = STATE(2082),
    [sym_conditional_declaration] = STATE(2082),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2082),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2082),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2082),
    [sym_static_assert] = STATE(2082),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2082),
    [aux_sym_source_file_repeat1] = STATE(2082),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6119),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6121),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2048] = {
    [sym_import_declaration] = STATE(1969),
    [sym_mixin_declaration] = STATE(1969),
    [sym__declaration] = STATE(1969),
    [sym__declaration2] = STATE(1969),
    [sym_variable_declaration] = STATE(1969),
    [sym_manifest_constant] = STATE(1969),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1969),
    [sym_alias_declaration] = STATE(1969),
    [sym_alias_reassign] = STATE(1969),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1969),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1969),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1969),
    [sym_union_declaration] = STATE(1969),
    [sym_postblit] = STATE(1969),
    [sym_invariant_declaration] = STATE(1969),
    [sym_class_declaration] = STATE(1969),
    [sym_constructor] = STATE(1969),
    [sym_destructor] = STATE(1969),
    [sym_alias_this] = STATE(1969),
    [sym_interface_declaration] = STATE(1969),
    [sym_enum_declaration] = STATE(1969),
    [sym_anonymous_enum_declaration] = STATE(1969),
    [sym_function_declaration] = STATE(1969),
    [sym_template_declaration] = STATE(1969),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1969),
    [sym_template_mixin] = STATE(1969),
    [sym_conditional_declaration] = STATE(1969),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1969),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1969),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1969),
    [sym_static_assert] = STATE(1969),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1969),
    [aux_sym_source_file_repeat1] = STATE(1969),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6101),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6123),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2049] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6125),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2050] = {
    [sym_import_declaration] = STATE(1866),
    [sym_mixin_declaration] = STATE(1866),
    [sym__declaration] = STATE(1866),
    [sym__declaration2] = STATE(1866),
    [sym_variable_declaration] = STATE(1866),
    [sym_manifest_constant] = STATE(1866),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1866),
    [sym_alias_declaration] = STATE(1866),
    [sym_alias_reassign] = STATE(1866),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1866),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1866),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1866),
    [sym_union_declaration] = STATE(1866),
    [sym_postblit] = STATE(1866),
    [sym_invariant_declaration] = STATE(1866),
    [sym_class_declaration] = STATE(1866),
    [sym_constructor] = STATE(1866),
    [sym_destructor] = STATE(1866),
    [sym_alias_this] = STATE(1866),
    [sym_interface_declaration] = STATE(1866),
    [sym_enum_declaration] = STATE(1866),
    [sym_anonymous_enum_declaration] = STATE(1866),
    [sym_function_declaration] = STATE(1866),
    [sym_template_declaration] = STATE(1866),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1866),
    [sym_template_mixin] = STATE(1866),
    [sym_conditional_declaration] = STATE(1866),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1866),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1866),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1866),
    [sym_static_assert] = STATE(1866),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1866),
    [aux_sym_source_file_repeat1] = STATE(1866),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6127),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6129),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2051] = {
    [sym_import_declaration] = STATE(2026),
    [sym_mixin_declaration] = STATE(2026),
    [sym__declaration] = STATE(2026),
    [sym__declaration2] = STATE(2026),
    [sym_variable_declaration] = STATE(2026),
    [sym_manifest_constant] = STATE(2026),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2026),
    [sym_alias_declaration] = STATE(2026),
    [sym_alias_reassign] = STATE(2026),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2026),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2026),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2026),
    [sym_union_declaration] = STATE(2026),
    [sym_postblit] = STATE(2026),
    [sym_invariant_declaration] = STATE(2026),
    [sym_class_declaration] = STATE(2026),
    [sym_constructor] = STATE(2026),
    [sym_destructor] = STATE(2026),
    [sym_alias_this] = STATE(2026),
    [sym_interface_declaration] = STATE(2026),
    [sym_enum_declaration] = STATE(2026),
    [sym_anonymous_enum_declaration] = STATE(2026),
    [sym_function_declaration] = STATE(2026),
    [sym_template_declaration] = STATE(2026),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2026),
    [sym_template_mixin] = STATE(2026),
    [sym_conditional_declaration] = STATE(2026),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2026),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2026),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2026),
    [sym_static_assert] = STATE(2026),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2026),
    [aux_sym_source_file_repeat1] = STATE(2026),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6131),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6133),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2052] = {
    [sym_import_declaration] = STATE(1874),
    [sym_mixin_declaration] = STATE(1874),
    [sym__declaration] = STATE(1874),
    [sym__declaration2] = STATE(1874),
    [sym_variable_declaration] = STATE(1874),
    [sym_manifest_constant] = STATE(1874),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1874),
    [sym_alias_declaration] = STATE(1874),
    [sym_alias_reassign] = STATE(1874),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1874),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1874),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1874),
    [sym_union_declaration] = STATE(1874),
    [sym_postblit] = STATE(1874),
    [sym_invariant_declaration] = STATE(1874),
    [sym_class_declaration] = STATE(1874),
    [sym_constructor] = STATE(1874),
    [sym_destructor] = STATE(1874),
    [sym_alias_this] = STATE(1874),
    [sym_interface_declaration] = STATE(1874),
    [sym_enum_declaration] = STATE(1874),
    [sym_anonymous_enum_declaration] = STATE(1874),
    [sym_function_declaration] = STATE(1874),
    [sym_template_declaration] = STATE(1874),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1874),
    [sym_template_mixin] = STATE(1874),
    [sym_conditional_declaration] = STATE(1874),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1874),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1874),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1874),
    [sym_static_assert] = STATE(1874),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1874),
    [aux_sym_source_file_repeat1] = STATE(1874),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6089),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6135),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2053] = {
    [sym_import_declaration] = STATE(2078),
    [sym_mixin_declaration] = STATE(2078),
    [sym__declaration] = STATE(2078),
    [sym__declaration2] = STATE(2078),
    [sym_variable_declaration] = STATE(2078),
    [sym_manifest_constant] = STATE(2078),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2078),
    [sym_alias_declaration] = STATE(2078),
    [sym_alias_reassign] = STATE(2078),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2078),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2078),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2078),
    [sym_union_declaration] = STATE(2078),
    [sym_postblit] = STATE(2078),
    [sym_invariant_declaration] = STATE(2078),
    [sym_class_declaration] = STATE(2078),
    [sym_constructor] = STATE(2078),
    [sym_destructor] = STATE(2078),
    [sym_alias_this] = STATE(2078),
    [sym_interface_declaration] = STATE(2078),
    [sym_enum_declaration] = STATE(2078),
    [sym_anonymous_enum_declaration] = STATE(2078),
    [sym_function_declaration] = STATE(2078),
    [sym_template_declaration] = STATE(2078),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2078),
    [sym_template_mixin] = STATE(2078),
    [sym_conditional_declaration] = STATE(2078),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2078),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2078),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2078),
    [sym_static_assert] = STATE(2078),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2078),
    [aux_sym_source_file_repeat1] = STATE(2078),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6097),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6137),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2054] = {
    [sym_import_declaration] = STATE(2032),
    [sym_mixin_declaration] = STATE(2032),
    [sym__declaration] = STATE(2032),
    [sym__declaration2] = STATE(2032),
    [sym_variable_declaration] = STATE(2032),
    [sym_manifest_constant] = STATE(2032),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2032),
    [sym_alias_declaration] = STATE(2032),
    [sym_alias_reassign] = STATE(2032),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2032),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2032),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2032),
    [sym_union_declaration] = STATE(2032),
    [sym_postblit] = STATE(2032),
    [sym_invariant_declaration] = STATE(2032),
    [sym_class_declaration] = STATE(2032),
    [sym_constructor] = STATE(2032),
    [sym_destructor] = STATE(2032),
    [sym_alias_this] = STATE(2032),
    [sym_interface_declaration] = STATE(2032),
    [sym_enum_declaration] = STATE(2032),
    [sym_anonymous_enum_declaration] = STATE(2032),
    [sym_function_declaration] = STATE(2032),
    [sym_template_declaration] = STATE(2032),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2032),
    [sym_template_mixin] = STATE(2032),
    [sym_conditional_declaration] = STATE(2032),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2032),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2032),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2032),
    [sym_static_assert] = STATE(2032),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2032),
    [aux_sym_source_file_repeat1] = STATE(2032),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6103),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6139),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2055] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6131),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2056] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6141),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2057] = {
    [sym_import_declaration] = STATE(2025),
    [sym_mixin_declaration] = STATE(2025),
    [sym__declaration] = STATE(2025),
    [sym__declaration2] = STATE(2025),
    [sym_variable_declaration] = STATE(2025),
    [sym_manifest_constant] = STATE(2025),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2025),
    [sym_alias_declaration] = STATE(2025),
    [sym_alias_reassign] = STATE(2025),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2025),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2025),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2025),
    [sym_union_declaration] = STATE(2025),
    [sym_postblit] = STATE(2025),
    [sym_invariant_declaration] = STATE(2025),
    [sym_class_declaration] = STATE(2025),
    [sym_constructor] = STATE(2025),
    [sym_destructor] = STATE(2025),
    [sym_alias_this] = STATE(2025),
    [sym_interface_declaration] = STATE(2025),
    [sym_enum_declaration] = STATE(2025),
    [sym_anonymous_enum_declaration] = STATE(2025),
    [sym_function_declaration] = STATE(2025),
    [sym_template_declaration] = STATE(2025),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2025),
    [sym_template_mixin] = STATE(2025),
    [sym_conditional_declaration] = STATE(2025),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2025),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2025),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2025),
    [sym_static_assert] = STATE(2025),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2025),
    [aux_sym_source_file_repeat1] = STATE(2025),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6143),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6145),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2058] = {
    [sym_import_declaration] = STATE(1896),
    [sym_mixin_declaration] = STATE(1896),
    [sym__declaration] = STATE(1896),
    [sym__declaration2] = STATE(1896),
    [sym_variable_declaration] = STATE(1896),
    [sym_manifest_constant] = STATE(1896),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1896),
    [sym_alias_declaration] = STATE(1896),
    [sym_alias_reassign] = STATE(1896),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1896),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1896),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1896),
    [sym_union_declaration] = STATE(1896),
    [sym_postblit] = STATE(1896),
    [sym_invariant_declaration] = STATE(1896),
    [sym_class_declaration] = STATE(1896),
    [sym_constructor] = STATE(1896),
    [sym_destructor] = STATE(1896),
    [sym_alias_this] = STATE(1896),
    [sym_interface_declaration] = STATE(1896),
    [sym_enum_declaration] = STATE(1896),
    [sym_anonymous_enum_declaration] = STATE(1896),
    [sym_function_declaration] = STATE(1896),
    [sym_template_declaration] = STATE(1896),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1896),
    [sym_template_mixin] = STATE(1896),
    [sym_conditional_declaration] = STATE(1896),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1896),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1896),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1896),
    [sym_static_assert] = STATE(1896),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1896),
    [aux_sym_source_file_repeat1] = STATE(1896),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6015),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6147),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2059] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6149),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2060] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6151),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2061] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6153),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2062] = {
    [sym_import_declaration] = STATE(1984),
    [sym_mixin_declaration] = STATE(1984),
    [sym__declaration] = STATE(1984),
    [sym__declaration2] = STATE(1984),
    [sym_variable_declaration] = STATE(1984),
    [sym_manifest_constant] = STATE(1984),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1984),
    [sym_alias_declaration] = STATE(1984),
    [sym_alias_reassign] = STATE(1984),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1984),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1984),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1984),
    [sym_union_declaration] = STATE(1984),
    [sym_postblit] = STATE(1984),
    [sym_invariant_declaration] = STATE(1984),
    [sym_class_declaration] = STATE(1984),
    [sym_constructor] = STATE(1984),
    [sym_destructor] = STATE(1984),
    [sym_alias_this] = STATE(1984),
    [sym_interface_declaration] = STATE(1984),
    [sym_enum_declaration] = STATE(1984),
    [sym_anonymous_enum_declaration] = STATE(1984),
    [sym_function_declaration] = STATE(1984),
    [sym_template_declaration] = STATE(1984),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1984),
    [sym_template_mixin] = STATE(1984),
    [sym_conditional_declaration] = STATE(1984),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1984),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1984),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1984),
    [sym_static_assert] = STATE(1984),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1984),
    [aux_sym_source_file_repeat1] = STATE(1984),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5753),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6155),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2063] = {
    [sym_import_declaration] = STATE(2030),
    [sym_mixin_declaration] = STATE(2030),
    [sym__declaration] = STATE(2030),
    [sym__declaration2] = STATE(2030),
    [sym_variable_declaration] = STATE(2030),
    [sym_manifest_constant] = STATE(2030),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2030),
    [sym_alias_declaration] = STATE(2030),
    [sym_alias_reassign] = STATE(2030),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2030),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2030),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2030),
    [sym_union_declaration] = STATE(2030),
    [sym_postblit] = STATE(2030),
    [sym_invariant_declaration] = STATE(2030),
    [sym_class_declaration] = STATE(2030),
    [sym_constructor] = STATE(2030),
    [sym_destructor] = STATE(2030),
    [sym_alias_this] = STATE(2030),
    [sym_interface_declaration] = STATE(2030),
    [sym_enum_declaration] = STATE(2030),
    [sym_anonymous_enum_declaration] = STATE(2030),
    [sym_function_declaration] = STATE(2030),
    [sym_template_declaration] = STATE(2030),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2030),
    [sym_template_mixin] = STATE(2030),
    [sym_conditional_declaration] = STATE(2030),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2030),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2030),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2030),
    [sym_static_assert] = STATE(2030),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2030),
    [aux_sym_source_file_repeat1] = STATE(2030),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6157),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6159),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2064] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6157),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2065] = {
    [sym_import_declaration] = STATE(2828),
    [sym_mixin_declaration] = STATE(2828),
    [sym__declaration] = STATE(2828),
    [sym__declaration2] = STATE(2828),
    [sym_variable_declaration] = STATE(2828),
    [sym_manifest_constant] = STATE(2828),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2828),
    [sym_alias_declaration] = STATE(2828),
    [sym_alias_reassign] = STATE(2828),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2828),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2828),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2828),
    [sym_union_declaration] = STATE(2828),
    [sym_postblit] = STATE(2828),
    [sym_invariant_declaration] = STATE(2828),
    [sym_class_declaration] = STATE(2828),
    [sym_constructor] = STATE(2828),
    [sym_destructor] = STATE(2828),
    [sym_alias_this] = STATE(2828),
    [sym_interface_declaration] = STATE(2828),
    [sym_enum_declaration] = STATE(2828),
    [sym_anonymous_enum_declaration] = STATE(2828),
    [sym_function_declaration] = STATE(2828),
    [sym_template_declaration] = STATE(2828),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2828),
    [sym_template_mixin] = STATE(2828),
    [sym_conditional_declaration] = STATE(2828),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2828),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2828),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2828),
    [sym_static_assert] = STATE(2828),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2828),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6161),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6163),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2066] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6143),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2067] = {
    [sym_import_declaration] = STATE(2186),
    [sym_mixin_declaration] = STATE(2186),
    [sym__declaration] = STATE(2186),
    [sym__declaration2] = STATE(2186),
    [sym_variable_declaration] = STATE(2186),
    [sym_manifest_constant] = STATE(2186),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2186),
    [sym_alias_declaration] = STATE(2186),
    [sym_alias_reassign] = STATE(2186),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2186),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2186),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2186),
    [sym_union_declaration] = STATE(2186),
    [sym_postblit] = STATE(2186),
    [sym_invariant_declaration] = STATE(2186),
    [sym_class_declaration] = STATE(2186),
    [sym_constructor] = STATE(2186),
    [sym_destructor] = STATE(2186),
    [sym_alias_this] = STATE(2186),
    [sym_interface_declaration] = STATE(2186),
    [sym_enum_declaration] = STATE(2186),
    [sym_anonymous_enum_declaration] = STATE(2186),
    [sym_function_declaration] = STATE(2186),
    [sym_template_declaration] = STATE(2186),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2186),
    [sym_template_mixin] = STATE(2186),
    [sym_conditional_declaration] = STATE(2186),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2186),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2186),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2186),
    [sym_static_assert] = STATE(2186),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2186),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5865),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5463),
    [anon_sym_COLON] = ACTIONS(5491),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2068] = {
    [sym_import_declaration] = STATE(2896),
    [sym_mixin_declaration] = STATE(2896),
    [sym__declaration] = STATE(2896),
    [sym__declaration2] = STATE(2896),
    [sym_variable_declaration] = STATE(2896),
    [sym_manifest_constant] = STATE(2896),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2896),
    [sym_alias_declaration] = STATE(2896),
    [sym_alias_reassign] = STATE(2896),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2896),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2896),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2896),
    [sym_union_declaration] = STATE(2896),
    [sym_postblit] = STATE(2896),
    [sym_invariant_declaration] = STATE(2896),
    [sym_class_declaration] = STATE(2896),
    [sym_constructor] = STATE(2896),
    [sym_destructor] = STATE(2896),
    [sym_alias_this] = STATE(2896),
    [sym_interface_declaration] = STATE(2896),
    [sym_enum_declaration] = STATE(2896),
    [sym_anonymous_enum_declaration] = STATE(2896),
    [sym_function_declaration] = STATE(2896),
    [sym_template_declaration] = STATE(2896),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2896),
    [sym_template_mixin] = STATE(2896),
    [sym_conditional_declaration] = STATE(2896),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2896),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2896),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2896),
    [sym_static_assert] = STATE(2896),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2896),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6165),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6167),
    [anon_sym_COLON] = ACTIONS(1739),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2069] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6169),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2070] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6119),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2071] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6171),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2072] = {
    [sym_import_declaration] = STATE(2346),
    [sym_mixin_declaration] = STATE(2346),
    [sym__declaration] = STATE(2346),
    [sym__declaration2] = STATE(2346),
    [sym_variable_declaration] = STATE(2346),
    [sym_manifest_constant] = STATE(2346),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2346),
    [sym_alias_declaration] = STATE(2346),
    [sym_alias_reassign] = STATE(2346),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2346),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2346),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2346),
    [sym_union_declaration] = STATE(2346),
    [sym_postblit] = STATE(2346),
    [sym_invariant_declaration] = STATE(2346),
    [sym_class_declaration] = STATE(2346),
    [sym_constructor] = STATE(2346),
    [sym_destructor] = STATE(2346),
    [sym_alias_this] = STATE(2346),
    [sym_interface_declaration] = STATE(2346),
    [sym_enum_declaration] = STATE(2346),
    [sym_anonymous_enum_declaration] = STATE(2346),
    [sym_function_declaration] = STATE(2346),
    [sym_template_declaration] = STATE(2346),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2346),
    [sym_template_mixin] = STATE(2346),
    [sym_conditional_declaration] = STATE(2346),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2346),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2346),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2346),
    [sym_static_assert] = STATE(2346),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2346),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5847),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5849),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2073] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6173),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2074] = {
    [sym_import_declaration] = STATE(2511),
    [sym_mixin_declaration] = STATE(2511),
    [sym__declaration] = STATE(2511),
    [sym__declaration2] = STATE(2511),
    [sym_variable_declaration] = STATE(2511),
    [sym_manifest_constant] = STATE(2511),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2511),
    [sym_alias_declaration] = STATE(2511),
    [sym_alias_reassign] = STATE(2511),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2511),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2511),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2511),
    [sym_union_declaration] = STATE(2511),
    [sym_postblit] = STATE(2511),
    [sym_invariant_declaration] = STATE(2511),
    [sym_class_declaration] = STATE(2511),
    [sym_constructor] = STATE(2511),
    [sym_destructor] = STATE(2511),
    [sym_alias_this] = STATE(2511),
    [sym_interface_declaration] = STATE(2511),
    [sym_enum_declaration] = STATE(2511),
    [sym_anonymous_enum_declaration] = STATE(2511),
    [sym_function_declaration] = STATE(2511),
    [sym_template_declaration] = STATE(2511),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2511),
    [sym_template_mixin] = STATE(2511),
    [sym_conditional_declaration] = STATE(2511),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2511),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2511),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2511),
    [sym_static_assert] = STATE(2511),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2511),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5915),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5917),
    [anon_sym_COLON] = ACTIONS(5919),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2075] = {
    [sym_import_declaration] = STATE(2055),
    [sym_mixin_declaration] = STATE(2055),
    [sym__declaration] = STATE(2055),
    [sym__declaration2] = STATE(2055),
    [sym_variable_declaration] = STATE(2055),
    [sym_manifest_constant] = STATE(2055),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2055),
    [sym_alias_declaration] = STATE(2055),
    [sym_alias_reassign] = STATE(2055),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2055),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2055),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2055),
    [sym_union_declaration] = STATE(2055),
    [sym_postblit] = STATE(2055),
    [sym_invariant_declaration] = STATE(2055),
    [sym_class_declaration] = STATE(2055),
    [sym_constructor] = STATE(2055),
    [sym_destructor] = STATE(2055),
    [sym_alias_this] = STATE(2055),
    [sym_interface_declaration] = STATE(2055),
    [sym_enum_declaration] = STATE(2055),
    [sym_anonymous_enum_declaration] = STATE(2055),
    [sym_function_declaration] = STATE(2055),
    [sym_template_declaration] = STATE(2055),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2055),
    [sym_template_mixin] = STATE(2055),
    [sym_conditional_declaration] = STATE(2055),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2055),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2055),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2055),
    [sym_static_assert] = STATE(2055),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2055),
    [aux_sym_source_file_repeat1] = STATE(2055),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5971),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6175),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2076] = {
    [sym_import_declaration] = STATE(1894),
    [sym_mixin_declaration] = STATE(1894),
    [sym__declaration] = STATE(1894),
    [sym__declaration2] = STATE(1894),
    [sym_variable_declaration] = STATE(1894),
    [sym_manifest_constant] = STATE(1894),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1894),
    [sym_alias_declaration] = STATE(1894),
    [sym_alias_reassign] = STATE(1894),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1894),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1894),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1894),
    [sym_union_declaration] = STATE(1894),
    [sym_postblit] = STATE(1894),
    [sym_invariant_declaration] = STATE(1894),
    [sym_class_declaration] = STATE(1894),
    [sym_constructor] = STATE(1894),
    [sym_destructor] = STATE(1894),
    [sym_alias_this] = STATE(1894),
    [sym_interface_declaration] = STATE(1894),
    [sym_enum_declaration] = STATE(1894),
    [sym_anonymous_enum_declaration] = STATE(1894),
    [sym_function_declaration] = STATE(1894),
    [sym_template_declaration] = STATE(1894),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1894),
    [sym_template_mixin] = STATE(1894),
    [sym_conditional_declaration] = STATE(1894),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1894),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1894),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1894),
    [sym_static_assert] = STATE(1894),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1894),
    [aux_sym_source_file_repeat1] = STATE(1894),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6177),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6179),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2077] = {
    [sym_import_declaration] = STATE(1977),
    [sym_mixin_declaration] = STATE(1977),
    [sym__declaration] = STATE(1977),
    [sym__declaration2] = STATE(1977),
    [sym_variable_declaration] = STATE(1977),
    [sym_manifest_constant] = STATE(1977),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1977),
    [sym_alias_declaration] = STATE(1977),
    [sym_alias_reassign] = STATE(1977),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1977),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1977),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1977),
    [sym_union_declaration] = STATE(1977),
    [sym_postblit] = STATE(1977),
    [sym_invariant_declaration] = STATE(1977),
    [sym_class_declaration] = STATE(1977),
    [sym_constructor] = STATE(1977),
    [sym_destructor] = STATE(1977),
    [sym_alias_this] = STATE(1977),
    [sym_interface_declaration] = STATE(1977),
    [sym_enum_declaration] = STATE(1977),
    [sym_anonymous_enum_declaration] = STATE(1977),
    [sym_function_declaration] = STATE(1977),
    [sym_template_declaration] = STATE(1977),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1977),
    [sym_template_mixin] = STATE(1977),
    [sym_conditional_declaration] = STATE(1977),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1977),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1977),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1977),
    [sym_static_assert] = STATE(1977),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1977),
    [aux_sym_source_file_repeat1] = STATE(1977),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6181),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6183),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2078] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6185),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2079] = {
    [sym_import_declaration] = STATE(2008),
    [sym_mixin_declaration] = STATE(2008),
    [sym__declaration] = STATE(2008),
    [sym__declaration2] = STATE(2008),
    [sym_variable_declaration] = STATE(2008),
    [sym_manifest_constant] = STATE(2008),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2008),
    [sym_alias_declaration] = STATE(2008),
    [sym_alias_reassign] = STATE(2008),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2008),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2008),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2008),
    [sym_union_declaration] = STATE(2008),
    [sym_postblit] = STATE(2008),
    [sym_invariant_declaration] = STATE(2008),
    [sym_class_declaration] = STATE(2008),
    [sym_constructor] = STATE(2008),
    [sym_destructor] = STATE(2008),
    [sym_alias_this] = STATE(2008),
    [sym_interface_declaration] = STATE(2008),
    [sym_enum_declaration] = STATE(2008),
    [sym_anonymous_enum_declaration] = STATE(2008),
    [sym_function_declaration] = STATE(2008),
    [sym_template_declaration] = STATE(2008),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2008),
    [sym_template_mixin] = STATE(2008),
    [sym_conditional_declaration] = STATE(2008),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2008),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2008),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2008),
    [sym_static_assert] = STATE(2008),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2008),
    [aux_sym_source_file_repeat1] = STATE(2008),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5583),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6187),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2080] = {
    [sym_import_declaration] = STATE(2773),
    [sym_mixin_declaration] = STATE(2773),
    [sym__declaration] = STATE(2773),
    [sym__declaration2] = STATE(2773),
    [sym_variable_declaration] = STATE(2773),
    [sym_manifest_constant] = STATE(2773),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2773),
    [sym_alias_declaration] = STATE(2773),
    [sym_alias_reassign] = STATE(2773),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2773),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2773),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2773),
    [sym_union_declaration] = STATE(2773),
    [sym_postblit] = STATE(2773),
    [sym_invariant_declaration] = STATE(2773),
    [sym_class_declaration] = STATE(2773),
    [sym_constructor] = STATE(2773),
    [sym_destructor] = STATE(2773),
    [sym_alias_this] = STATE(2773),
    [sym_interface_declaration] = STATE(2773),
    [sym_enum_declaration] = STATE(2773),
    [sym_anonymous_enum_declaration] = STATE(2773),
    [sym_function_declaration] = STATE(2773),
    [sym_template_declaration] = STATE(2773),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2773),
    [sym_template_mixin] = STATE(2773),
    [sym_conditional_declaration] = STATE(2773),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2773),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2773),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2773),
    [sym_static_assert] = STATE(2773),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2773),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6189),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6191),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2081] = {
    [sym_import_declaration] = STATE(2739),
    [sym_mixin_declaration] = STATE(2739),
    [sym__declaration] = STATE(2739),
    [sym__declaration2] = STATE(2739),
    [sym_variable_declaration] = STATE(2739),
    [sym_manifest_constant] = STATE(2739),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2739),
    [sym_alias_declaration] = STATE(2739),
    [sym_alias_reassign] = STATE(2739),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2739),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2739),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2739),
    [sym_union_declaration] = STATE(2739),
    [sym_postblit] = STATE(2739),
    [sym_invariant_declaration] = STATE(2739),
    [sym_class_declaration] = STATE(2739),
    [sym_constructor] = STATE(2739),
    [sym_destructor] = STATE(2739),
    [sym_alias_this] = STATE(2739),
    [sym_interface_declaration] = STATE(2739),
    [sym_enum_declaration] = STATE(2739),
    [sym_anonymous_enum_declaration] = STATE(2739),
    [sym_function_declaration] = STATE(2739),
    [sym_template_declaration] = STATE(2739),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2739),
    [sym_template_mixin] = STATE(2739),
    [sym_conditional_declaration] = STATE(2739),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2739),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2739),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2739),
    [sym_static_assert] = STATE(2739),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2739),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5581),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5583),
    [anon_sym_COLON] = ACTIONS(6193),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2082] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6195),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2083] = {
    [sym_import_declaration] = STATE(6424),
    [sym_mixin_declaration] = STATE(6424),
    [sym__declaration] = STATE(6424),
    [sym__declaration2] = STATE(6424),
    [sym_variable_declaration] = STATE(6424),
    [sym_manifest_constant] = STATE(6424),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(6424),
    [sym_alias_declaration] = STATE(6424),
    [sym_alias_reassign] = STATE(6424),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(6424),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(6424),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(6424),
    [sym_union_declaration] = STATE(6424),
    [sym_postblit] = STATE(6424),
    [sym_invariant_declaration] = STATE(6424),
    [sym_class_declaration] = STATE(6424),
    [sym_constructor] = STATE(6424),
    [sym_destructor] = STATE(6424),
    [sym_alias_this] = STATE(6424),
    [sym_interface_declaration] = STATE(6424),
    [sym_enum_declaration] = STATE(6424),
    [sym_anonymous_enum_declaration] = STATE(6424),
    [sym_function_declaration] = STATE(6424),
    [sym_template_declaration] = STATE(6424),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(6424),
    [sym_template_mixin] = STATE(6424),
    [sym_conditional_declaration] = STATE(6424),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(6424),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(6424),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(6424),
    [sym_static_assert] = STATE(6424),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(6424),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6197),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6199),
    [anon_sym_COLON] = ACTIONS(1739),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2084] = {
    [sym_import_declaration] = STATE(2056),
    [sym_mixin_declaration] = STATE(2056),
    [sym__declaration] = STATE(2056),
    [sym__declaration2] = STATE(2056),
    [sym_variable_declaration] = STATE(2056),
    [sym_manifest_constant] = STATE(2056),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2056),
    [sym_alias_declaration] = STATE(2056),
    [sym_alias_reassign] = STATE(2056),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2056),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2056),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2056),
    [sym_union_declaration] = STATE(2056),
    [sym_postblit] = STATE(2056),
    [sym_invariant_declaration] = STATE(2056),
    [sym_class_declaration] = STATE(2056),
    [sym_constructor] = STATE(2056),
    [sym_destructor] = STATE(2056),
    [sym_alias_this] = STATE(2056),
    [sym_interface_declaration] = STATE(2056),
    [sym_enum_declaration] = STATE(2056),
    [sym_anonymous_enum_declaration] = STATE(2056),
    [sym_function_declaration] = STATE(2056),
    [sym_template_declaration] = STATE(2056),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2056),
    [sym_template_mixin] = STATE(2056),
    [sym_conditional_declaration] = STATE(2056),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2056),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2056),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2056),
    [sym_static_assert] = STATE(2056),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2056),
    [aux_sym_source_file_repeat1] = STATE(2056),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6201),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6203),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2085] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5753),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2086] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6069),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2087] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5801),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2088] = {
    [sym_import_declaration] = STATE(2369),
    [sym_mixin_declaration] = STATE(2369),
    [sym__declaration] = STATE(2369),
    [sym__declaration2] = STATE(2369),
    [sym_variable_declaration] = STATE(2369),
    [sym_manifest_constant] = STATE(2369),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2369),
    [sym_alias_declaration] = STATE(2369),
    [sym_alias_reassign] = STATE(2369),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2369),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2369),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2369),
    [sym_union_declaration] = STATE(2369),
    [sym_postblit] = STATE(2369),
    [sym_invariant_declaration] = STATE(2369),
    [sym_class_declaration] = STATE(2369),
    [sym_constructor] = STATE(2369),
    [sym_destructor] = STATE(2369),
    [sym_alias_this] = STATE(2369),
    [sym_interface_declaration] = STATE(2369),
    [sym_enum_declaration] = STATE(2369),
    [sym_anonymous_enum_declaration] = STATE(2369),
    [sym_function_declaration] = STATE(2369),
    [sym_template_declaration] = STATE(2369),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2369),
    [sym_template_mixin] = STATE(2369),
    [sym_conditional_declaration] = STATE(2369),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2369),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2369),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2369),
    [sym_static_assert] = STATE(2369),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2369),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5641),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5643),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2089] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6205),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2090] = {
    [sym_import_declaration] = STATE(2787),
    [sym_mixin_declaration] = STATE(2787),
    [sym__declaration] = STATE(2787),
    [sym__declaration2] = STATE(2787),
    [sym_variable_declaration] = STATE(2787),
    [sym_manifest_constant] = STATE(2787),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2787),
    [sym_alias_declaration] = STATE(2787),
    [sym_alias_reassign] = STATE(2787),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2787),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2787),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2787),
    [sym_union_declaration] = STATE(2787),
    [sym_postblit] = STATE(2787),
    [sym_invariant_declaration] = STATE(2787),
    [sym_class_declaration] = STATE(2787),
    [sym_constructor] = STATE(2787),
    [sym_destructor] = STATE(2787),
    [sym_alias_this] = STATE(2787),
    [sym_interface_declaration] = STATE(2787),
    [sym_enum_declaration] = STATE(2787),
    [sym_anonymous_enum_declaration] = STATE(2787),
    [sym_function_declaration] = STATE(2787),
    [sym_template_declaration] = STATE(2787),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2787),
    [sym_template_mixin] = STATE(2787),
    [sym_conditional_declaration] = STATE(2787),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2787),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2787),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2787),
    [sym_static_assert] = STATE(2787),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2787),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6207),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6157),
    [anon_sym_COLON] = ACTIONS(5939),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2091] = {
    [sym_import_declaration] = STATE(1898),
    [sym_mixin_declaration] = STATE(1898),
    [sym__declaration] = STATE(1898),
    [sym__declaration2] = STATE(1898),
    [sym_variable_declaration] = STATE(1898),
    [sym_manifest_constant] = STATE(1898),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1898),
    [sym_alias_declaration] = STATE(1898),
    [sym_alias_reassign] = STATE(1898),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1898),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1898),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1898),
    [sym_union_declaration] = STATE(1898),
    [sym_postblit] = STATE(1898),
    [sym_invariant_declaration] = STATE(1898),
    [sym_class_declaration] = STATE(1898),
    [sym_constructor] = STATE(1898),
    [sym_destructor] = STATE(1898),
    [sym_alias_this] = STATE(1898),
    [sym_interface_declaration] = STATE(1898),
    [sym_enum_declaration] = STATE(1898),
    [sym_anonymous_enum_declaration] = STATE(1898),
    [sym_function_declaration] = STATE(1898),
    [sym_template_declaration] = STATE(1898),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1898),
    [sym_template_mixin] = STATE(1898),
    [sym_conditional_declaration] = STATE(1898),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1898),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1898),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1898),
    [sym_static_assert] = STATE(1898),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1898),
    [aux_sym_source_file_repeat1] = STATE(1898),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6209),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6211),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2092] = {
    [sym_import_declaration] = STATE(2087),
    [sym_mixin_declaration] = STATE(2087),
    [sym__declaration] = STATE(2087),
    [sym__declaration2] = STATE(2087),
    [sym_variable_declaration] = STATE(2087),
    [sym_manifest_constant] = STATE(2087),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2087),
    [sym_alias_declaration] = STATE(2087),
    [sym_alias_reassign] = STATE(2087),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2087),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2087),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2087),
    [sym_union_declaration] = STATE(2087),
    [sym_postblit] = STATE(2087),
    [sym_invariant_declaration] = STATE(2087),
    [sym_class_declaration] = STATE(2087),
    [sym_constructor] = STATE(2087),
    [sym_destructor] = STATE(2087),
    [sym_alias_this] = STATE(2087),
    [sym_interface_declaration] = STATE(2087),
    [sym_enum_declaration] = STATE(2087),
    [sym_anonymous_enum_declaration] = STATE(2087),
    [sym_function_declaration] = STATE(2087),
    [sym_template_declaration] = STATE(2087),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2087),
    [sym_template_mixin] = STATE(2087),
    [sym_conditional_declaration] = STATE(2087),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2087),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2087),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2087),
    [sym_static_assert] = STATE(2087),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2087),
    [aux_sym_source_file_repeat1] = STATE(2087),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5907),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6213),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2093] = {
    [sym_import_declaration] = STATE(2089),
    [sym_mixin_declaration] = STATE(2089),
    [sym__declaration] = STATE(2089),
    [sym__declaration2] = STATE(2089),
    [sym_variable_declaration] = STATE(2089),
    [sym_manifest_constant] = STATE(2089),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2089),
    [sym_alias_declaration] = STATE(2089),
    [sym_alias_reassign] = STATE(2089),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2089),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2089),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2089),
    [sym_union_declaration] = STATE(2089),
    [sym_postblit] = STATE(2089),
    [sym_invariant_declaration] = STATE(2089),
    [sym_class_declaration] = STATE(2089),
    [sym_constructor] = STATE(2089),
    [sym_destructor] = STATE(2089),
    [sym_alias_this] = STATE(2089),
    [sym_interface_declaration] = STATE(2089),
    [sym_enum_declaration] = STATE(2089),
    [sym_anonymous_enum_declaration] = STATE(2089),
    [sym_function_declaration] = STATE(2089),
    [sym_template_declaration] = STATE(2089),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2089),
    [sym_template_mixin] = STATE(2089),
    [sym_conditional_declaration] = STATE(2089),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2089),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2089),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2089),
    [sym_static_assert] = STATE(2089),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2089),
    [aux_sym_source_file_repeat1] = STATE(2089),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6055),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6215),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2094] = {
    [sym_import_declaration] = STATE(1847),
    [sym_mixin_declaration] = STATE(1847),
    [sym__declaration] = STATE(1847),
    [sym__declaration2] = STATE(1847),
    [sym_variable_declaration] = STATE(1847),
    [sym_manifest_constant] = STATE(1847),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1847),
    [sym_alias_declaration] = STATE(1847),
    [sym_alias_reassign] = STATE(1847),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1847),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1847),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1847),
    [sym_union_declaration] = STATE(1847),
    [sym_postblit] = STATE(1847),
    [sym_invariant_declaration] = STATE(1847),
    [sym_class_declaration] = STATE(1847),
    [sym_constructor] = STATE(1847),
    [sym_destructor] = STATE(1847),
    [sym_alias_this] = STATE(1847),
    [sym_interface_declaration] = STATE(1847),
    [sym_enum_declaration] = STATE(1847),
    [sym_anonymous_enum_declaration] = STATE(1847),
    [sym_function_declaration] = STATE(1847),
    [sym_template_declaration] = STATE(1847),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1847),
    [sym_template_mixin] = STATE(1847),
    [sym_conditional_declaration] = STATE(1847),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1847),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1847),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1847),
    [sym_static_assert] = STATE(1847),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1847),
    [aux_sym_source_file_repeat1] = STATE(1847),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5605),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6217),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2095] = {
    [sym_import_declaration] = STATE(2027),
    [sym_mixin_declaration] = STATE(2027),
    [sym__declaration] = STATE(2027),
    [sym__declaration2] = STATE(2027),
    [sym_variable_declaration] = STATE(2027),
    [sym_manifest_constant] = STATE(2027),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2027),
    [sym_alias_declaration] = STATE(2027),
    [sym_alias_reassign] = STATE(2027),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2027),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2027),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2027),
    [sym_union_declaration] = STATE(2027),
    [sym_postblit] = STATE(2027),
    [sym_invariant_declaration] = STATE(2027),
    [sym_class_declaration] = STATE(2027),
    [sym_constructor] = STATE(2027),
    [sym_destructor] = STATE(2027),
    [sym_alias_this] = STATE(2027),
    [sym_interface_declaration] = STATE(2027),
    [sym_enum_declaration] = STATE(2027),
    [sym_anonymous_enum_declaration] = STATE(2027),
    [sym_function_declaration] = STATE(2027),
    [sym_template_declaration] = STATE(2027),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2027),
    [sym_template_mixin] = STATE(2027),
    [sym_conditional_declaration] = STATE(2027),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2027),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2027),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2027),
    [sym_static_assert] = STATE(2027),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2027),
    [aux_sym_source_file_repeat1] = STATE(2027),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5801),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6219),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2096] = {
    [sym_import_declaration] = STATE(1799),
    [sym_mixin_declaration] = STATE(1799),
    [sym__declaration] = STATE(1799),
    [sym__declaration2] = STATE(1799),
    [sym_variable_declaration] = STATE(1799),
    [sym_manifest_constant] = STATE(1799),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1799),
    [sym_alias_declaration] = STATE(1799),
    [sym_alias_reassign] = STATE(1799),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1799),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1799),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1799),
    [sym_union_declaration] = STATE(1799),
    [sym_postblit] = STATE(1799),
    [sym_invariant_declaration] = STATE(1799),
    [sym_class_declaration] = STATE(1799),
    [sym_constructor] = STATE(1799),
    [sym_destructor] = STATE(1799),
    [sym_alias_this] = STATE(1799),
    [sym_interface_declaration] = STATE(1799),
    [sym_enum_declaration] = STATE(1799),
    [sym_anonymous_enum_declaration] = STATE(1799),
    [sym_function_declaration] = STATE(1799),
    [sym_template_declaration] = STATE(1799),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1799),
    [sym_template_mixin] = STATE(1799),
    [sym_conditional_declaration] = STATE(1799),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1799),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1799),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1799),
    [sym_static_assert] = STATE(1799),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1799),
    [aux_sym_source_file_repeat1] = STATE(1799),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6221),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5273),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2097] = {
    [sym_import_declaration] = STATE(2522),
    [sym_mixin_declaration] = STATE(2522),
    [sym__declaration] = STATE(2522),
    [sym__declaration2] = STATE(2522),
    [sym_variable_declaration] = STATE(2522),
    [sym_manifest_constant] = STATE(2522),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2522),
    [sym_alias_declaration] = STATE(2522),
    [sym_alias_reassign] = STATE(2522),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2522),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2522),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2522),
    [sym_union_declaration] = STATE(2522),
    [sym_postblit] = STATE(2522),
    [sym_invariant_declaration] = STATE(2522),
    [sym_class_declaration] = STATE(2522),
    [sym_constructor] = STATE(2522),
    [sym_destructor] = STATE(2522),
    [sym_alias_this] = STATE(2522),
    [sym_interface_declaration] = STATE(2522),
    [sym_enum_declaration] = STATE(2522),
    [sym_anonymous_enum_declaration] = STATE(2522),
    [sym_function_declaration] = STATE(2522),
    [sym_template_declaration] = STATE(2522),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2522),
    [sym_template_mixin] = STATE(2522),
    [sym_conditional_declaration] = STATE(2522),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2522),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2522),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2522),
    [sym_static_assert] = STATE(2522),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2522),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6223),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6225),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2098] = {
    [sym_import_declaration] = STATE(1802),
    [sym_mixin_declaration] = STATE(1802),
    [sym__declaration] = STATE(1802),
    [sym__declaration2] = STATE(1802),
    [sym_variable_declaration] = STATE(1802),
    [sym_manifest_constant] = STATE(1802),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1802),
    [sym_alias_declaration] = STATE(1802),
    [sym_alias_reassign] = STATE(1802),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1802),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1802),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1802),
    [sym_union_declaration] = STATE(1802),
    [sym_postblit] = STATE(1802),
    [sym_invariant_declaration] = STATE(1802),
    [sym_class_declaration] = STATE(1802),
    [sym_constructor] = STATE(1802),
    [sym_destructor] = STATE(1802),
    [sym_alias_this] = STATE(1802),
    [sym_interface_declaration] = STATE(1802),
    [sym_enum_declaration] = STATE(1802),
    [sym_anonymous_enum_declaration] = STATE(1802),
    [sym_function_declaration] = STATE(1802),
    [sym_template_declaration] = STATE(1802),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1802),
    [sym_template_mixin] = STATE(1802),
    [sym_conditional_declaration] = STATE(1802),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1802),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1802),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1802),
    [sym_static_assert] = STATE(1802),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1802),
    [aux_sym_source_file_repeat1] = STATE(1802),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6227),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2099] = {
    [sym_import_declaration] = STATE(2846),
    [sym_mixin_declaration] = STATE(2846),
    [sym__declaration] = STATE(2846),
    [sym__declaration2] = STATE(2846),
    [sym_variable_declaration] = STATE(2846),
    [sym_manifest_constant] = STATE(2846),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2846),
    [sym_alias_declaration] = STATE(2846),
    [sym_alias_reassign] = STATE(2846),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2846),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2846),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2846),
    [sym_union_declaration] = STATE(2846),
    [sym_postblit] = STATE(2846),
    [sym_invariant_declaration] = STATE(2846),
    [sym_class_declaration] = STATE(2846),
    [sym_constructor] = STATE(2846),
    [sym_destructor] = STATE(2846),
    [sym_alias_this] = STATE(2846),
    [sym_interface_declaration] = STATE(2846),
    [sym_enum_declaration] = STATE(2846),
    [sym_anonymous_enum_declaration] = STATE(2846),
    [sym_function_declaration] = STATE(2846),
    [sym_template_declaration] = STATE(2846),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2846),
    [sym_template_mixin] = STATE(2846),
    [sym_conditional_declaration] = STATE(2846),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2846),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2846),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2846),
    [sym_static_assert] = STATE(2846),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2846),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6229),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5497),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2100] = {
    [sym_identifier] = ACTIONS(3074),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3076),
    [anon_sym_LBRACE] = ACTIONS(3076),
    [anon_sym_SLASH] = ACTIONS(3078),
    [anon_sym_SLASH_EQ] = ACTIONS(3080),
    [anon_sym_DOT] = ACTIONS(3082),
    [anon_sym_AMP] = ACTIONS(3085),
    [anon_sym_AMP_EQ] = ACTIONS(3080),
    [anon_sym_AMP_AMP] = ACTIONS(3080),
    [anon_sym_PIPE] = ACTIONS(3078),
    [anon_sym_PIPE_EQ] = ACTIONS(3080),
    [anon_sym_PIPE_PIPE] = ACTIONS(3080),
    [anon_sym_DASH] = ACTIONS(3085),
    [anon_sym_DASH_EQ] = ACTIONS(3080),
    [anon_sym_DASH_DASH] = ACTIONS(3082),
    [anon_sym_PLUS] = ACTIONS(3085),
    [anon_sym_PLUS_EQ] = ACTIONS(3080),
    [anon_sym_PLUS_PLUS] = ACTIONS(3082),
    [anon_sym_LT] = ACTIONS(3078),
    [anon_sym_LT_EQ] = ACTIONS(3080),
    [anon_sym_LT_LT] = ACTIONS(3078),
    [anon_sym_LT_LT_EQ] = ACTIONS(3080),
    [anon_sym_GT] = ACTIONS(3078),
    [anon_sym_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3080),
    [anon_sym_GT_GT] = ACTIONS(3078),
    [anon_sym_GT_GT_GT] = ACTIONS(3078),
    [anon_sym_BANG] = ACTIONS(3074),
    [anon_sym_BANG_EQ] = ACTIONS(3080),
    [anon_sym_LPAREN] = ACTIONS(3082),
    [anon_sym_RPAREN] = ACTIONS(3076),
    [anon_sym_LBRACK] = ACTIONS(3082),
    [anon_sym_QMARK] = ACTIONS(3080),
    [anon_sym_COMMA] = ACTIONS(3080),
    [anon_sym_SEMI] = ACTIONS(3082),
    [anon_sym_DOLLAR] = ACTIONS(3076),
    [anon_sym_EQ] = ACTIONS(3078),
    [anon_sym_EQ_EQ] = ACTIONS(3080),
    [anon_sym_STAR] = ACTIONS(3085),
    [anon_sym_STAR_EQ] = ACTIONS(3080),
    [anon_sym_PERCENT] = ACTIONS(3078),
    [anon_sym_PERCENT_EQ] = ACTIONS(3080),
    [anon_sym_CARET] = ACTIONS(3078),
    [anon_sym_CARET_EQ] = ACTIONS(3080),
    [anon_sym_CARET_CARET] = ACTIONS(3078),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3080),
    [anon_sym_TILDE] = ACTIONS(3085),
    [anon_sym_TILDE_EQ] = ACTIONS(3080),
    [sym_bool] = ACTIONS(3074),
    [sym_byte] = ACTIONS(3074),
    [sym_ubyte] = ACTIONS(3074),
    [sym_char] = ACTIONS(3074),
    [sym_short] = ACTIONS(3074),
    [sym_ushort] = ACTIONS(3074),
    [sym_int] = ACTIONS(3074),
    [sym_uint] = ACTIONS(3074),
    [sym_long] = ACTIONS(3074),
    [sym_ulong] = ACTIONS(3074),
    [sym_cent] = ACTIONS(3074),
    [sym_ucent] = ACTIONS(3074),
    [sym_wchar] = ACTIONS(3074),
    [sym_dchar] = ACTIONS(3074),
    [sym_float] = ACTIONS(3074),
    [sym_double] = ACTIONS(3074),
    [sym_real] = ACTIONS(3074),
    [sym_ifloat] = ACTIONS(3074),
    [sym_idouble] = ACTIONS(3074),
    [sym_ireal] = ACTIONS(3074),
    [sym_cfloat] = ACTIONS(3074),
    [sym_cdouble] = ACTIONS(3074),
    [sym_creal] = ACTIONS(3074),
    [sym_size_t] = ACTIONS(3074),
    [sym_ptrdiff_t] = ACTIONS(3074),
    [sym_string] = ACTIONS(3074),
    [sym_cstring] = ACTIONS(3074),
    [sym_dstring] = ACTIONS(3074),
    [sym_wstring] = ACTIONS(3074),
    [sym_noreturn] = ACTIONS(3074),
    [sym_true] = ACTIONS(3074),
    [sym_false] = ACTIONS(3074),
    [sym_null] = ACTIONS(3074),
    [sym_super] = ACTIONS(3074),
    [sym_this] = ACTIONS(3074),
    [sym_assert] = ACTIONS(3074),
    [sym_auto] = ACTIONS(3074),
    [sym_cast] = ACTIONS(3074),
    [sym_catch] = ACTIONS(3074),
    [sym_const] = ACTIONS(3074),
    [sym_delegate] = ACTIONS(3074),
    [sym_delete] = ACTIONS(3074),
    [sym_do] = ACTIONS(3074),
    [sym_else] = ACTIONS(3074),
    [sym_finally] = ACTIONS(3074),
    [sym_function] = ACTIONS(3074),
    [sym_immutable] = ACTIONS(3074),
    [sym_import] = ACTIONS(3074),
    [sym_in] = ACTIONS(3085),
    [sym_inout] = ACTIONS(3074),
    [sym_is] = ACTIONS(3085),
    [sym_mixin] = ACTIONS(3074),
    [sym_new] = ACTIONS(3074),
    [sym_out] = ACTIONS(3074),
    [sym_ref] = ACTIONS(3074),
    [sym_shared] = ACTIONS(3074),
    [sym_throw] = ACTIONS(3074),
    [sym_typeid] = ACTIONS(3074),
    [sym_typeof] = ACTIONS(3074),
    [sym_traits] = ACTIONS(3074),
    [sym_vector] = ACTIONS(3074),
    [sym_void] = ACTIONS(3074),
    [anon_sym_BQUOTE] = ACTIONS(3076),
    [anon_sym_r_DQUOTE] = ACTIONS(3076),
    [anon_sym_x_DQUOTE] = ACTIONS(3076),
    [anon_sym_DQUOTE] = ACTIONS(3076),
    [anon_sym_i_BQUOTE] = ACTIONS(3076),
    [anon_sym_i_DQUOTE] = ACTIONS(3076),
    [anon_sym_iq_LBRACE] = ACTIONS(3076),
    [aux_sym_char_literal_token1] = ACTIONS(3076),
    [anon_sym_SQUOTE] = ACTIONS(3074),
    [anon_sym___DATE__] = ACTIONS(3074),
    [anon_sym___FILE__] = ACTIONS(3074),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3074),
    [anon_sym___FUNCTION__] = ACTIONS(3074),
    [anon_sym___LINE__] = ACTIONS(3074),
    [anon_sym___MODULE__] = ACTIONS(3074),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3074),
    [anon_sym___TIME__] = ACTIONS(3074),
    [anon_sym___TIMESTAMP__] = ACTIONS(3074),
    [anon_sym___VENDOR__] = ACTIONS(3074),
    [anon_sym___VERSION__] = ACTIONS(3074),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3076),
    [sym_float_literal] = ACTIONS(3076),
    [sym__string] = ACTIONS(3076),
    [sym_not_in] = ACTIONS(3080),
    [sym_not_is] = ACTIONS(3080),
  },
  [2101] = {
    [sym_import_declaration] = STATE(2770),
    [sym_mixin_declaration] = STATE(2770),
    [sym__declaration] = STATE(2770),
    [sym__declaration2] = STATE(2770),
    [sym_variable_declaration] = STATE(2770),
    [sym_manifest_constant] = STATE(2770),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2770),
    [sym_alias_declaration] = STATE(2770),
    [sym_alias_reassign] = STATE(2770),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2770),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2770),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2770),
    [sym_union_declaration] = STATE(2770),
    [sym_postblit] = STATE(2770),
    [sym_invariant_declaration] = STATE(2770),
    [sym_class_declaration] = STATE(2770),
    [sym_constructor] = STATE(2770),
    [sym_destructor] = STATE(2770),
    [sym_alias_this] = STATE(2770),
    [sym_interface_declaration] = STATE(2770),
    [sym_enum_declaration] = STATE(2770),
    [sym_anonymous_enum_declaration] = STATE(2770),
    [sym_function_declaration] = STATE(2770),
    [sym_template_declaration] = STATE(2770),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2770),
    [sym_template_mixin] = STATE(2770),
    [sym_conditional_declaration] = STATE(2770),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2770),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2770),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2770),
    [sym_static_assert] = STATE(2770),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2770),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6231),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5609),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2102] = {
    [sym_import_declaration] = STATE(1784),
    [sym_mixin_declaration] = STATE(1784),
    [sym__declaration] = STATE(1784),
    [sym__declaration2] = STATE(1784),
    [sym_variable_declaration] = STATE(1784),
    [sym_manifest_constant] = STATE(1784),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1784),
    [sym_alias_declaration] = STATE(1784),
    [sym_alias_reassign] = STATE(1784),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1784),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1784),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1784),
    [sym_union_declaration] = STATE(1784),
    [sym_postblit] = STATE(1784),
    [sym_invariant_declaration] = STATE(1784),
    [sym_class_declaration] = STATE(1784),
    [sym_constructor] = STATE(1784),
    [sym_destructor] = STATE(1784),
    [sym_alias_this] = STATE(1784),
    [sym_interface_declaration] = STATE(1784),
    [sym_enum_declaration] = STATE(1784),
    [sym_anonymous_enum_declaration] = STATE(1784),
    [sym_function_declaration] = STATE(1784),
    [sym_template_declaration] = STATE(1784),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1784),
    [sym_template_mixin] = STATE(1784),
    [sym_conditional_declaration] = STATE(1784),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1784),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1784),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1784),
    [sym_static_assert] = STATE(1784),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1784),
    [aux_sym_source_file_repeat1] = STATE(1784),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6233),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2103] = {
    [sym_import_declaration] = STATE(1710),
    [sym_mixin_declaration] = STATE(1710),
    [sym__declaration] = STATE(1710),
    [sym__declaration2] = STATE(1710),
    [sym_variable_declaration] = STATE(1710),
    [sym_manifest_constant] = STATE(1710),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1710),
    [sym_alias_declaration] = STATE(1710),
    [sym_alias_reassign] = STATE(1710),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1710),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1710),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1710),
    [sym_union_declaration] = STATE(1710),
    [sym_postblit] = STATE(1710),
    [sym_invariant_declaration] = STATE(1710),
    [sym_class_declaration] = STATE(1710),
    [sym_constructor] = STATE(1710),
    [sym_destructor] = STATE(1710),
    [sym_alias_this] = STATE(1710),
    [sym_interface_declaration] = STATE(1710),
    [sym_enum_declaration] = STATE(1710),
    [sym_anonymous_enum_declaration] = STATE(1710),
    [sym_function_declaration] = STATE(1710),
    [sym_template_declaration] = STATE(1710),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1710),
    [sym_template_mixin] = STATE(1710),
    [sym_conditional_declaration] = STATE(1710),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1710),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1710),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1710),
    [sym_static_assert] = STATE(1710),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1710),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6235),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6237),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2104] = {
    [sym_import_declaration] = STATE(2592),
    [sym_mixin_declaration] = STATE(2592),
    [sym__declaration] = STATE(2592),
    [sym__declaration2] = STATE(2592),
    [sym_variable_declaration] = STATE(2592),
    [sym_manifest_constant] = STATE(2592),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2592),
    [sym_alias_declaration] = STATE(2592),
    [sym_alias_reassign] = STATE(2592),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2592),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2592),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2592),
    [sym_union_declaration] = STATE(2592),
    [sym_postblit] = STATE(2592),
    [sym_invariant_declaration] = STATE(2592),
    [sym_class_declaration] = STATE(2592),
    [sym_constructor] = STATE(2592),
    [sym_destructor] = STATE(2592),
    [sym_alias_this] = STATE(2592),
    [sym_interface_declaration] = STATE(2592),
    [sym_enum_declaration] = STATE(2592),
    [sym_anonymous_enum_declaration] = STATE(2592),
    [sym_function_declaration] = STATE(2592),
    [sym_template_declaration] = STATE(2592),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2592),
    [sym_template_mixin] = STATE(2592),
    [sym_conditional_declaration] = STATE(2592),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2592),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2592),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2592),
    [sym_static_assert] = STATE(2592),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2592),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6239),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6115),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2105] = {
    [sym_import_declaration] = STATE(2778),
    [sym_mixin_declaration] = STATE(2778),
    [sym__declaration] = STATE(2778),
    [sym__declaration2] = STATE(2778),
    [sym_variable_declaration] = STATE(2778),
    [sym_manifest_constant] = STATE(2778),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(2778),
    [sym_alias_declaration] = STATE(2778),
    [sym_alias_reassign] = STATE(2778),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2778),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2778),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(2778),
    [sym_union_declaration] = STATE(2778),
    [sym_postblit] = STATE(2778),
    [sym_invariant_declaration] = STATE(2778),
    [sym_class_declaration] = STATE(2778),
    [sym_constructor] = STATE(2778),
    [sym_destructor] = STATE(2778),
    [sym_alias_this] = STATE(2778),
    [sym_interface_declaration] = STATE(2778),
    [sym_enum_declaration] = STATE(2778),
    [sym_anonymous_enum_declaration] = STATE(2778),
    [sym_function_declaration] = STATE(2778),
    [sym_template_declaration] = STATE(2778),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2778),
    [sym_template_mixin] = STATE(2778),
    [sym_conditional_declaration] = STATE(2778),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2778),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2778),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2778),
    [sym_static_assert] = STATE(2778),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2778),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6241),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6243),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2106] = {
    [sym_import_declaration] = STATE(1791),
    [sym_mixin_declaration] = STATE(1791),
    [sym__declaration] = STATE(1791),
    [sym__declaration2] = STATE(1791),
    [sym_variable_declaration] = STATE(1791),
    [sym_manifest_constant] = STATE(1791),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1791),
    [sym_alias_declaration] = STATE(1791),
    [sym_alias_reassign] = STATE(1791),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1791),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1791),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1791),
    [sym_union_declaration] = STATE(1791),
    [sym_postblit] = STATE(1791),
    [sym_invariant_declaration] = STATE(1791),
    [sym_class_declaration] = STATE(1791),
    [sym_constructor] = STATE(1791),
    [sym_destructor] = STATE(1791),
    [sym_alias_this] = STATE(1791),
    [sym_interface_declaration] = STATE(1791),
    [sym_enum_declaration] = STATE(1791),
    [sym_anonymous_enum_declaration] = STATE(1791),
    [sym_function_declaration] = STATE(1791),
    [sym_template_declaration] = STATE(1791),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1791),
    [sym_template_mixin] = STATE(1791),
    [sym_conditional_declaration] = STATE(1791),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1791),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1791),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1791),
    [sym_static_assert] = STATE(1791),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1791),
    [aux_sym_source_file_repeat1] = STATE(1791),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6245),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2107] = {
    [sym_import_declaration] = STATE(607),
    [sym_mixin_declaration] = STATE(607),
    [sym__declaration] = STATE(607),
    [sym__declaration2] = STATE(607),
    [sym_variable_declaration] = STATE(607),
    [sym_manifest_constant] = STATE(607),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(607),
    [sym_alias_declaration] = STATE(607),
    [sym_alias_reassign] = STATE(607),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(607),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(607),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(607),
    [sym_union_declaration] = STATE(607),
    [sym_postblit] = STATE(607),
    [sym_invariant_declaration] = STATE(607),
    [sym_class_declaration] = STATE(607),
    [sym_constructor] = STATE(607),
    [sym_destructor] = STATE(607),
    [sym_alias_this] = STATE(607),
    [sym_interface_declaration] = STATE(607),
    [sym_enum_declaration] = STATE(607),
    [sym_anonymous_enum_declaration] = STATE(607),
    [sym_function_declaration] = STATE(607),
    [sym_template_declaration] = STATE(607),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(607),
    [sym_template_mixin] = STATE(607),
    [sym_conditional_declaration] = STATE(607),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(607),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(607),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(607),
    [sym_static_assert] = STATE(607),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(607),
    [aux_sym_source_file_repeat1] = STATE(607),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6247),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2108] = {
    [sym_import_declaration] = STATE(2627),
    [sym_mixin_declaration] = STATE(2627),
    [sym__declaration] = STATE(2627),
    [sym__declaration2] = STATE(2627),
    [sym_variable_declaration] = STATE(2627),
    [sym_manifest_constant] = STATE(2627),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(2627),
    [sym_alias_declaration] = STATE(2627),
    [sym_alias_reassign] = STATE(2627),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2627),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2627),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2627),
    [sym_union_declaration] = STATE(2627),
    [sym_postblit] = STATE(2627),
    [sym_invariant_declaration] = STATE(2627),
    [sym_class_declaration] = STATE(2627),
    [sym_constructor] = STATE(2627),
    [sym_destructor] = STATE(2627),
    [sym_alias_this] = STATE(2627),
    [sym_interface_declaration] = STATE(2627),
    [sym_enum_declaration] = STATE(2627),
    [sym_anonymous_enum_declaration] = STATE(2627),
    [sym_function_declaration] = STATE(2627),
    [sym_template_declaration] = STATE(2627),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2627),
    [sym_template_mixin] = STATE(2627),
    [sym_conditional_declaration] = STATE(2627),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2627),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2627),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2627),
    [sym_static_assert] = STATE(2627),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2627),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6249),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5593),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2109] = {
    [sym_import_declaration] = STATE(1792),
    [sym_mixin_declaration] = STATE(1792),
    [sym__declaration] = STATE(1792),
    [sym__declaration2] = STATE(1792),
    [sym_variable_declaration] = STATE(1792),
    [sym_manifest_constant] = STATE(1792),
    [sym_storage_class] = STATE(3002),
    [sym_auto_declaration] = STATE(1792),
    [sym_alias_declaration] = STATE(1792),
    [sym_alias_reassign] = STATE(1792),
    [sym_type] = STATE(5674),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1792),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2153),
    [sym__attribute] = STATE(2153),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1792),
    [sym_pragma_expression] = STATE(1819),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(1792),
    [sym_union_declaration] = STATE(1792),
    [sym_postblit] = STATE(1792),
    [sym_invariant_declaration] = STATE(1792),
    [sym_class_declaration] = STATE(1792),
    [sym_constructor] = STATE(1792),
    [sym_destructor] = STATE(1792),
    [sym_alias_this] = STATE(1792),
    [sym_interface_declaration] = STATE(1792),
    [sym_enum_declaration] = STATE(1792),
    [sym_anonymous_enum_declaration] = STATE(1792),
    [sym_function_declaration] = STATE(1792),
    [sym_template_declaration] = STATE(1792),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1792),
    [sym_template_mixin] = STATE(1792),
    [sym_conditional_declaration] = STATE(1792),
    [sym_condition] = STATE(2042),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1792),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1792),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1792),
    [sym_static_assert] = STATE(1792),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1792),
    [aux_sym_source_file_repeat1] = STATE(1792),
    [aux_sym_import_declaration_repeat1] = STATE(2153),
    [aux_sym_variable_declaration_repeat1] = STATE(3002),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6251),
    [anon_sym_TILDE] = ACTIONS(17),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(23),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(41),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(41),
    [sym_protected] = ACTIONS(41),
    [sym_public] = ACTIONS(41),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(41),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(59),
    [sym_static] = ACTIONS(61),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2110] = {
    [sym_identifier] = ACTIONS(3112),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3115),
    [anon_sym_LBRACE] = ACTIONS(3115),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3115),
    [anon_sym_AMP] = ACTIONS(3112),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3112),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3115),
    [anon_sym_PLUS] = ACTIONS(3112),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3115),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3112),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3115),
    [anon_sym_RPAREN] = ACTIONS(3115),
    [anon_sym_LBRACK] = ACTIONS(3115),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3115),
    [anon_sym_DOLLAR] = ACTIONS(3115),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3112),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3112),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3112),
    [sym_byte] = ACTIONS(3112),
    [sym_ubyte] = ACTIONS(3112),
    [sym_char] = ACTIONS(3112),
    [sym_short] = ACTIONS(3112),
    [sym_ushort] = ACTIONS(3112),
    [sym_int] = ACTIONS(3112),
    [sym_uint] = ACTIONS(3112),
    [sym_long] = ACTIONS(3112),
    [sym_ulong] = ACTIONS(3112),
    [sym_cent] = ACTIONS(3112),
    [sym_ucent] = ACTIONS(3112),
    [sym_wchar] = ACTIONS(3112),
    [sym_dchar] = ACTIONS(3112),
    [sym_float] = ACTIONS(3112),
    [sym_double] = ACTIONS(3112),
    [sym_real] = ACTIONS(3112),
    [sym_ifloat] = ACTIONS(3112),
    [sym_idouble] = ACTIONS(3112),
    [sym_ireal] = ACTIONS(3112),
    [sym_cfloat] = ACTIONS(3112),
    [sym_cdouble] = ACTIONS(3112),
    [sym_creal] = ACTIONS(3112),
    [sym_size_t] = ACTIONS(3112),
    [sym_ptrdiff_t] = ACTIONS(3112),
    [sym_string] = ACTIONS(3112),
    [sym_cstring] = ACTIONS(3112),
    [sym_dstring] = ACTIONS(3112),
    [sym_wstring] = ACTIONS(3112),
    [sym_noreturn] = ACTIONS(3112),
    [sym_true] = ACTIONS(3112),
    [sym_false] = ACTIONS(3112),
    [sym_null] = ACTIONS(3112),
    [sym_super] = ACTIONS(3112),
    [sym_this] = ACTIONS(3112),
    [sym_assert] = ACTIONS(3112),
    [sym_auto] = ACTIONS(3112),
    [sym_cast] = ACTIONS(3112),
    [sym_catch] = ACTIONS(3112),
    [sym_const] = ACTIONS(3112),
    [sym_delegate] = ACTIONS(3112),
    [sym_delete] = ACTIONS(3112),
    [sym_do] = ACTIONS(3112),
    [sym_else] = ACTIONS(3112),
    [sym_finally] = ACTIONS(3112),
    [sym_function] = ACTIONS(3112),
    [sym_immutable] = ACTIONS(3112),
    [sym_import] = ACTIONS(3112),
    [sym_in] = ACTIONS(3112),
    [sym_inout] = ACTIONS(3112),
    [sym_is] = ACTIONS(3112),
    [sym_mixin] = ACTIONS(3112),
    [sym_new] = ACTIONS(3112),
    [sym_out] = ACTIONS(3112),
    [sym_ref] = ACTIONS(3112),
    [sym_shared] = ACTIONS(3112),
    [sym_throw] = ACTIONS(3112),
    [sym_typeid] = ACTIONS(3112),
    [sym_typeof] = ACTIONS(3112),
    [sym_traits] = ACTIONS(3112),
    [sym_vector] = ACTIONS(3112),
    [sym_void] = ACTIONS(3112),
    [anon_sym_BQUOTE] = ACTIONS(3115),
    [anon_sym_r_DQUOTE] = ACTIONS(3115),
    [anon_sym_x_DQUOTE] = ACTIONS(3115),
    [anon_sym_DQUOTE] = ACTIONS(3115),
    [anon_sym_i_BQUOTE] = ACTIONS(3115),
    [anon_sym_i_DQUOTE] = ACTIONS(3115),
    [anon_sym_iq_LBRACE] = ACTIONS(3115),
    [aux_sym_char_literal_token1] = ACTIONS(3115),
    [anon_sym_SQUOTE] = ACTIONS(3112),
    [anon_sym___DATE__] = ACTIONS(3112),
    [anon_sym___FILE__] = ACTIONS(3112),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3112),
    [anon_sym___FUNCTION__] = ACTIONS(3112),
    [anon_sym___LINE__] = ACTIONS(3112),
    [anon_sym___MODULE__] = ACTIONS(3112),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3112),
    [anon_sym___TIME__] = ACTIONS(3112),
    [anon_sym___TIMESTAMP__] = ACTIONS(3112),
    [anon_sym___VENDOR__] = ACTIONS(3112),
    [anon_sym___VERSION__] = ACTIONS(3112),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3115),
    [sym_float_literal] = ACTIONS(3115),
    [sym__string] = ACTIONS(3115),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2111] = {
    [sym_import_declaration] = STATE(2627),
    [sym_mixin_declaration] = STATE(2627),
    [sym__declaration] = STATE(2627),
    [sym__declaration2] = STATE(2627),
    [sym_variable_declaration] = STATE(2627),
    [sym_manifest_constant] = STATE(2627),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2627),
    [sym_alias_declaration] = STATE(2627),
    [sym_alias_reassign] = STATE(2627),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2627),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2627),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2627),
    [sym_union_declaration] = STATE(2627),
    [sym_postblit] = STATE(2627),
    [sym_invariant_declaration] = STATE(2627),
    [sym_class_declaration] = STATE(2627),
    [sym_constructor] = STATE(2627),
    [sym_destructor] = STATE(2627),
    [sym_alias_this] = STATE(2627),
    [sym_interface_declaration] = STATE(2627),
    [sym_enum_declaration] = STATE(2627),
    [sym_anonymous_enum_declaration] = STATE(2627),
    [sym_function_declaration] = STATE(2627),
    [sym_template_declaration] = STATE(2627),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2627),
    [sym_template_mixin] = STATE(2627),
    [sym_conditional_declaration] = STATE(2627),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2627),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2627),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2627),
    [sym_static_assert] = STATE(2627),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2627),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6249),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5593),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2112] = {
    [sym_import_declaration] = STATE(1529),
    [sym_mixin_declaration] = STATE(1529),
    [sym__declaration] = STATE(1529),
    [sym__declaration2] = STATE(1529),
    [sym_variable_declaration] = STATE(1529),
    [sym_manifest_constant] = STATE(1529),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1529),
    [sym_alias_declaration] = STATE(1529),
    [sym_alias_reassign] = STATE(1529),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1529),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1529),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1529),
    [sym_union_declaration] = STATE(1529),
    [sym_postblit] = STATE(1529),
    [sym_invariant_declaration] = STATE(1529),
    [sym_class_declaration] = STATE(1529),
    [sym_constructor] = STATE(1529),
    [sym_destructor] = STATE(1529),
    [sym_alias_this] = STATE(1529),
    [sym_interface_declaration] = STATE(1529),
    [sym_enum_declaration] = STATE(1529),
    [sym_anonymous_enum_declaration] = STATE(1529),
    [sym_function_declaration] = STATE(1529),
    [sym_template_declaration] = STATE(1529),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1529),
    [sym_template_mixin] = STATE(1529),
    [sym_conditional_declaration] = STATE(1529),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1529),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1529),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1529),
    [sym_static_assert] = STATE(1529),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1529),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6253),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5817),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2113] = {
    [sym_import_declaration] = STATE(594),
    [sym_mixin_declaration] = STATE(594),
    [sym__declaration] = STATE(594),
    [sym__declaration2] = STATE(594),
    [sym_variable_declaration] = STATE(594),
    [sym_manifest_constant] = STATE(594),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(594),
    [sym_alias_declaration] = STATE(594),
    [sym_alias_reassign] = STATE(594),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(594),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(594),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(594),
    [sym_union_declaration] = STATE(594),
    [sym_postblit] = STATE(594),
    [sym_invariant_declaration] = STATE(594),
    [sym_class_declaration] = STATE(594),
    [sym_constructor] = STATE(594),
    [sym_destructor] = STATE(594),
    [sym_alias_this] = STATE(594),
    [sym_interface_declaration] = STATE(594),
    [sym_enum_declaration] = STATE(594),
    [sym_anonymous_enum_declaration] = STATE(594),
    [sym_function_declaration] = STATE(594),
    [sym_template_declaration] = STATE(594),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(594),
    [sym_template_mixin] = STATE(594),
    [sym_conditional_declaration] = STATE(594),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(594),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(594),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(594),
    [sym_static_assert] = STATE(594),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(594),
    [aux_sym_source_file_repeat1] = STATE(594),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6255),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2114] = {
    [sym_identifier] = ACTIONS(3064),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3067),
    [anon_sym_LBRACE] = ACTIONS(3067),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3067),
    [anon_sym_AMP] = ACTIONS(3064),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3064),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3067),
    [anon_sym_PLUS] = ACTIONS(3064),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3067),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3064),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3067),
    [anon_sym_RPAREN] = ACTIONS(3067),
    [anon_sym_LBRACK] = ACTIONS(3067),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3067),
    [anon_sym_DOLLAR] = ACTIONS(3067),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3064),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3064),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3064),
    [sym_byte] = ACTIONS(3064),
    [sym_ubyte] = ACTIONS(3064),
    [sym_char] = ACTIONS(3064),
    [sym_short] = ACTIONS(3064),
    [sym_ushort] = ACTIONS(3064),
    [sym_int] = ACTIONS(3064),
    [sym_uint] = ACTIONS(3064),
    [sym_long] = ACTIONS(3064),
    [sym_ulong] = ACTIONS(3064),
    [sym_cent] = ACTIONS(3064),
    [sym_ucent] = ACTIONS(3064),
    [sym_wchar] = ACTIONS(3064),
    [sym_dchar] = ACTIONS(3064),
    [sym_float] = ACTIONS(3064),
    [sym_double] = ACTIONS(3064),
    [sym_real] = ACTIONS(3064),
    [sym_ifloat] = ACTIONS(3064),
    [sym_idouble] = ACTIONS(3064),
    [sym_ireal] = ACTIONS(3064),
    [sym_cfloat] = ACTIONS(3064),
    [sym_cdouble] = ACTIONS(3064),
    [sym_creal] = ACTIONS(3064),
    [sym_size_t] = ACTIONS(3064),
    [sym_ptrdiff_t] = ACTIONS(3064),
    [sym_string] = ACTIONS(3064),
    [sym_cstring] = ACTIONS(3064),
    [sym_dstring] = ACTIONS(3064),
    [sym_wstring] = ACTIONS(3064),
    [sym_noreturn] = ACTIONS(3064),
    [sym_true] = ACTIONS(3064),
    [sym_false] = ACTIONS(3064),
    [sym_null] = ACTIONS(3064),
    [sym_super] = ACTIONS(3064),
    [sym_this] = ACTIONS(3064),
    [sym_assert] = ACTIONS(3064),
    [sym_auto] = ACTIONS(3064),
    [sym_cast] = ACTIONS(3064),
    [sym_catch] = ACTIONS(3064),
    [sym_const] = ACTIONS(3064),
    [sym_delegate] = ACTIONS(3064),
    [sym_delete] = ACTIONS(3064),
    [sym_do] = ACTIONS(3064),
    [sym_else] = ACTIONS(3064),
    [sym_finally] = ACTIONS(3064),
    [sym_function] = ACTIONS(3064),
    [sym_immutable] = ACTIONS(3064),
    [sym_import] = ACTIONS(3064),
    [sym_in] = ACTIONS(3064),
    [sym_inout] = ACTIONS(3064),
    [sym_is] = ACTIONS(3064),
    [sym_mixin] = ACTIONS(3064),
    [sym_new] = ACTIONS(3064),
    [sym_out] = ACTIONS(3064),
    [sym_ref] = ACTIONS(3064),
    [sym_shared] = ACTIONS(3064),
    [sym_throw] = ACTIONS(3064),
    [sym_typeid] = ACTIONS(3064),
    [sym_typeof] = ACTIONS(3064),
    [sym_traits] = ACTIONS(3064),
    [sym_vector] = ACTIONS(3064),
    [sym_void] = ACTIONS(3064),
    [anon_sym_BQUOTE] = ACTIONS(3067),
    [anon_sym_r_DQUOTE] = ACTIONS(3067),
    [anon_sym_x_DQUOTE] = ACTIONS(3067),
    [anon_sym_DQUOTE] = ACTIONS(3067),
    [anon_sym_i_BQUOTE] = ACTIONS(3067),
    [anon_sym_i_DQUOTE] = ACTIONS(3067),
    [anon_sym_iq_LBRACE] = ACTIONS(3067),
    [aux_sym_char_literal_token1] = ACTIONS(3067),
    [anon_sym_SQUOTE] = ACTIONS(3064),
    [anon_sym___DATE__] = ACTIONS(3064),
    [anon_sym___FILE__] = ACTIONS(3064),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3064),
    [anon_sym___FUNCTION__] = ACTIONS(3064),
    [anon_sym___LINE__] = ACTIONS(3064),
    [anon_sym___MODULE__] = ACTIONS(3064),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3064),
    [anon_sym___TIME__] = ACTIONS(3064),
    [anon_sym___TIMESTAMP__] = ACTIONS(3064),
    [anon_sym___VENDOR__] = ACTIONS(3064),
    [anon_sym___VERSION__] = ACTIONS(3064),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3067),
    [sym_float_literal] = ACTIONS(3067),
    [sym__string] = ACTIONS(3067),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2115] = {
    [sym_import_declaration] = STATE(1545),
    [sym_mixin_declaration] = STATE(1545),
    [sym__declaration] = STATE(1545),
    [sym__declaration2] = STATE(1545),
    [sym_variable_declaration] = STATE(1545),
    [sym_manifest_constant] = STATE(1545),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1545),
    [sym_alias_declaration] = STATE(1545),
    [sym_alias_reassign] = STATE(1545),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1545),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1545),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1545),
    [sym_union_declaration] = STATE(1545),
    [sym_postblit] = STATE(1545),
    [sym_invariant_declaration] = STATE(1545),
    [sym_class_declaration] = STATE(1545),
    [sym_constructor] = STATE(1545),
    [sym_destructor] = STATE(1545),
    [sym_alias_this] = STATE(1545),
    [sym_interface_declaration] = STATE(1545),
    [sym_enum_declaration] = STATE(1545),
    [sym_anonymous_enum_declaration] = STATE(1545),
    [sym_function_declaration] = STATE(1545),
    [sym_template_declaration] = STATE(1545),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1545),
    [sym_template_mixin] = STATE(1545),
    [sym_conditional_declaration] = STATE(1545),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1545),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1545),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1545),
    [sym_static_assert] = STATE(1545),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1545),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6257),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5613),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2116] = {
    [sym_identifier] = ACTIONS(3106),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3109),
    [anon_sym_LBRACE] = ACTIONS(3109),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3109),
    [anon_sym_AMP] = ACTIONS(3106),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3106),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3109),
    [anon_sym_PLUS] = ACTIONS(3106),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3109),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3106),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3109),
    [anon_sym_RPAREN] = ACTIONS(3109),
    [anon_sym_LBRACK] = ACTIONS(3109),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3109),
    [anon_sym_DOLLAR] = ACTIONS(3109),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3106),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3106),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3106),
    [sym_byte] = ACTIONS(3106),
    [sym_ubyte] = ACTIONS(3106),
    [sym_char] = ACTIONS(3106),
    [sym_short] = ACTIONS(3106),
    [sym_ushort] = ACTIONS(3106),
    [sym_int] = ACTIONS(3106),
    [sym_uint] = ACTIONS(3106),
    [sym_long] = ACTIONS(3106),
    [sym_ulong] = ACTIONS(3106),
    [sym_cent] = ACTIONS(3106),
    [sym_ucent] = ACTIONS(3106),
    [sym_wchar] = ACTIONS(3106),
    [sym_dchar] = ACTIONS(3106),
    [sym_float] = ACTIONS(3106),
    [sym_double] = ACTIONS(3106),
    [sym_real] = ACTIONS(3106),
    [sym_ifloat] = ACTIONS(3106),
    [sym_idouble] = ACTIONS(3106),
    [sym_ireal] = ACTIONS(3106),
    [sym_cfloat] = ACTIONS(3106),
    [sym_cdouble] = ACTIONS(3106),
    [sym_creal] = ACTIONS(3106),
    [sym_size_t] = ACTIONS(3106),
    [sym_ptrdiff_t] = ACTIONS(3106),
    [sym_string] = ACTIONS(3106),
    [sym_cstring] = ACTIONS(3106),
    [sym_dstring] = ACTIONS(3106),
    [sym_wstring] = ACTIONS(3106),
    [sym_noreturn] = ACTIONS(3106),
    [sym_true] = ACTIONS(3106),
    [sym_false] = ACTIONS(3106),
    [sym_null] = ACTIONS(3106),
    [sym_super] = ACTIONS(3106),
    [sym_this] = ACTIONS(3106),
    [sym_assert] = ACTIONS(3106),
    [sym_auto] = ACTIONS(3106),
    [sym_cast] = ACTIONS(3106),
    [sym_catch] = ACTIONS(3106),
    [sym_const] = ACTIONS(3106),
    [sym_delegate] = ACTIONS(3106),
    [sym_delete] = ACTIONS(3106),
    [sym_do] = ACTIONS(3106),
    [sym_else] = ACTIONS(3106),
    [sym_finally] = ACTIONS(3106),
    [sym_function] = ACTIONS(3106),
    [sym_immutable] = ACTIONS(3106),
    [sym_import] = ACTIONS(3106),
    [sym_in] = ACTIONS(3106),
    [sym_inout] = ACTIONS(3106),
    [sym_is] = ACTIONS(3106),
    [sym_mixin] = ACTIONS(3106),
    [sym_new] = ACTIONS(3106),
    [sym_out] = ACTIONS(3106),
    [sym_ref] = ACTIONS(3106),
    [sym_shared] = ACTIONS(3106),
    [sym_throw] = ACTIONS(3106),
    [sym_typeid] = ACTIONS(3106),
    [sym_typeof] = ACTIONS(3106),
    [sym_traits] = ACTIONS(3106),
    [sym_vector] = ACTIONS(3106),
    [sym_void] = ACTIONS(3106),
    [anon_sym_BQUOTE] = ACTIONS(3109),
    [anon_sym_r_DQUOTE] = ACTIONS(3109),
    [anon_sym_x_DQUOTE] = ACTIONS(3109),
    [anon_sym_DQUOTE] = ACTIONS(3109),
    [anon_sym_i_BQUOTE] = ACTIONS(3109),
    [anon_sym_i_DQUOTE] = ACTIONS(3109),
    [anon_sym_iq_LBRACE] = ACTIONS(3109),
    [aux_sym_char_literal_token1] = ACTIONS(3109),
    [anon_sym_SQUOTE] = ACTIONS(3106),
    [anon_sym___DATE__] = ACTIONS(3106),
    [anon_sym___FILE__] = ACTIONS(3106),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3106),
    [anon_sym___FUNCTION__] = ACTIONS(3106),
    [anon_sym___LINE__] = ACTIONS(3106),
    [anon_sym___MODULE__] = ACTIONS(3106),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3106),
    [anon_sym___TIME__] = ACTIONS(3106),
    [anon_sym___TIMESTAMP__] = ACTIONS(3106),
    [anon_sym___VENDOR__] = ACTIONS(3106),
    [anon_sym___VERSION__] = ACTIONS(3106),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3109),
    [sym_float_literal] = ACTIONS(3109),
    [sym__string] = ACTIONS(3109),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2117] = {
    [sym_import_declaration] = STATE(2522),
    [sym_mixin_declaration] = STATE(2522),
    [sym__declaration] = STATE(2522),
    [sym__declaration2] = STATE(2522),
    [sym_variable_declaration] = STATE(2522),
    [sym_manifest_constant] = STATE(2522),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2522),
    [sym_alias_declaration] = STATE(2522),
    [sym_alias_reassign] = STATE(2522),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2522),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2522),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2522),
    [sym_union_declaration] = STATE(2522),
    [sym_postblit] = STATE(2522),
    [sym_invariant_declaration] = STATE(2522),
    [sym_class_declaration] = STATE(2522),
    [sym_constructor] = STATE(2522),
    [sym_destructor] = STATE(2522),
    [sym_alias_this] = STATE(2522),
    [sym_interface_declaration] = STATE(2522),
    [sym_enum_declaration] = STATE(2522),
    [sym_anonymous_enum_declaration] = STATE(2522),
    [sym_function_declaration] = STATE(2522),
    [sym_template_declaration] = STATE(2522),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2522),
    [sym_template_mixin] = STATE(2522),
    [sym_conditional_declaration] = STATE(2522),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2522),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2522),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2522),
    [sym_static_assert] = STATE(2522),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2522),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6223),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6225),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2118] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_catch] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(6259),
    [sym_finally] = ACTIONS(3088),
    [sym_function] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2119] = {
    [sym_import_declaration] = STATE(2592),
    [sym_mixin_declaration] = STATE(2592),
    [sym__declaration] = STATE(2592),
    [sym__declaration2] = STATE(2592),
    [sym_variable_declaration] = STATE(2592),
    [sym_manifest_constant] = STATE(2592),
    [sym_storage_class] = STATE(3003),
    [sym_auto_declaration] = STATE(2592),
    [sym_alias_declaration] = STATE(2592),
    [sym_alias_reassign] = STATE(2592),
    [sym_type] = STATE(5611),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2592),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2154),
    [sym__attribute] = STATE(2154),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2592),
    [sym_pragma_expression] = STATE(1950),
    [sym_mixin_expression] = STATE(5311),
    [sym_struct_declaration] = STATE(2592),
    [sym_union_declaration] = STATE(2592),
    [sym_postblit] = STATE(2592),
    [sym_invariant_declaration] = STATE(2592),
    [sym_class_declaration] = STATE(2592),
    [sym_constructor] = STATE(2592),
    [sym_destructor] = STATE(2592),
    [sym_alias_this] = STATE(2592),
    [sym_interface_declaration] = STATE(2592),
    [sym_enum_declaration] = STATE(2592),
    [sym_anonymous_enum_declaration] = STATE(2592),
    [sym_function_declaration] = STATE(2592),
    [sym_template_declaration] = STATE(2592),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2592),
    [sym_template_mixin] = STATE(2592),
    [sym_conditional_declaration] = STATE(2592),
    [sym_condition] = STATE(2083),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2592),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2592),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2592),
    [sym_static_assert] = STATE(2592),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2592),
    [aux_sym_import_declaration_repeat1] = STATE(2154),
    [aux_sym_variable_declaration_repeat1] = STATE(3003),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6239),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6115),
    [anon_sym_TILDE] = ACTIONS(5587),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5589),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(27),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(31),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(35),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(39),
    [sym_export] = ACTIONS(1284),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(45),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(47),
    [sym_invariant] = ACTIONS(49),
    [sym_mixin] = ACTIONS(51),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1284),
    [sym_protected] = ACTIONS(1284),
    [sym_public] = ACTIONS(1284),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1284),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1747),
    [sym_static] = ACTIONS(5591),
    [sym_struct] = ACTIONS(63),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(65),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(69),
    [sym_unittest] = ACTIONS(71),
    [sym_version] = ACTIONS(73),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2120] = {
    [sym_import_declaration] = STATE(2292),
    [sym_mixin_declaration] = STATE(2292),
    [sym__declaration] = STATE(2292),
    [sym__declaration2] = STATE(2292),
    [sym_variable_declaration] = STATE(2292),
    [sym_manifest_constant] = STATE(2292),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2292),
    [sym_alias_declaration] = STATE(2292),
    [sym_alias_reassign] = STATE(2292),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2292),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2292),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2292),
    [sym_union_declaration] = STATE(2292),
    [sym_postblit] = STATE(2292),
    [sym_invariant_declaration] = STATE(2292),
    [sym_class_declaration] = STATE(2292),
    [sym_constructor] = STATE(2292),
    [sym_destructor] = STATE(2292),
    [sym_alias_this] = STATE(2292),
    [sym_interface_declaration] = STATE(2292),
    [sym_enum_declaration] = STATE(2292),
    [sym_anonymous_enum_declaration] = STATE(2292),
    [sym_function_declaration] = STATE(2292),
    [sym_template_declaration] = STATE(2292),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2292),
    [sym_template_mixin] = STATE(2292),
    [sym_conditional_declaration] = STATE(2292),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2292),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2292),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2292),
    [sym_static_assert] = STATE(2292),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2292),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6263),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6265),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2121] = {
    [sym_import_declaration] = STATE(609),
    [sym_mixin_declaration] = STATE(609),
    [sym__declaration] = STATE(609),
    [sym__declaration2] = STATE(609),
    [sym_variable_declaration] = STATE(609),
    [sym_manifest_constant] = STATE(609),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(609),
    [sym_alias_declaration] = STATE(609),
    [sym_alias_reassign] = STATE(609),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(609),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(609),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(609),
    [sym_union_declaration] = STATE(609),
    [sym_postblit] = STATE(609),
    [sym_invariant_declaration] = STATE(609),
    [sym_class_declaration] = STATE(609),
    [sym_constructor] = STATE(609),
    [sym_destructor] = STATE(609),
    [sym_alias_this] = STATE(609),
    [sym_interface_declaration] = STATE(609),
    [sym_enum_declaration] = STATE(609),
    [sym_anonymous_enum_declaration] = STATE(609),
    [sym_function_declaration] = STATE(609),
    [sym_template_declaration] = STATE(609),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(609),
    [sym_template_mixin] = STATE(609),
    [sym_conditional_declaration] = STATE(609),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(609),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(609),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(609),
    [sym_static_assert] = STATE(609),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(609),
    [aux_sym_source_file_repeat1] = STATE(609),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6267),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2122] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_catch] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(6269),
    [sym_finally] = ACTIONS(3088),
    [sym_function] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2123] = {
    [sym_import_declaration] = STATE(1761),
    [sym_mixin_declaration] = STATE(1761),
    [sym__declaration] = STATE(1761),
    [sym__declaration2] = STATE(1761),
    [sym_variable_declaration] = STATE(1761),
    [sym_manifest_constant] = STATE(1761),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1761),
    [sym_alias_declaration] = STATE(1761),
    [sym_alias_reassign] = STATE(1761),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1761),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1761),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1761),
    [sym_union_declaration] = STATE(1761),
    [sym_postblit] = STATE(1761),
    [sym_invariant_declaration] = STATE(1761),
    [sym_class_declaration] = STATE(1761),
    [sym_constructor] = STATE(1761),
    [sym_destructor] = STATE(1761),
    [sym_alias_this] = STATE(1761),
    [sym_interface_declaration] = STATE(1761),
    [sym_enum_declaration] = STATE(1761),
    [sym_anonymous_enum_declaration] = STATE(1761),
    [sym_function_declaration] = STATE(1761),
    [sym_template_declaration] = STATE(1761),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1761),
    [sym_template_mixin] = STATE(1761),
    [sym_conditional_declaration] = STATE(1761),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1761),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1761),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1761),
    [sym_static_assert] = STATE(1761),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1761),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6272),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6005),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2124] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3100),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_SLASH] = ACTIONS(3098),
    [anon_sym_SLASH_EQ] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_AMP] = ACTIONS(3098),
    [anon_sym_AMP_EQ] = ACTIONS(3100),
    [anon_sym_AMP_AMP] = ACTIONS(3100),
    [anon_sym_PIPE] = ACTIONS(3098),
    [anon_sym_PIPE_EQ] = ACTIONS(3100),
    [anon_sym_PIPE_PIPE] = ACTIONS(3100),
    [anon_sym_DASH] = ACTIONS(3098),
    [anon_sym_DASH_EQ] = ACTIONS(3100),
    [anon_sym_DASH_DASH] = ACTIONS(3100),
    [anon_sym_PLUS] = ACTIONS(3098),
    [anon_sym_PLUS_EQ] = ACTIONS(3100),
    [anon_sym_PLUS_PLUS] = ACTIONS(3100),
    [anon_sym_LT] = ACTIONS(3098),
    [anon_sym_LT_EQ] = ACTIONS(3100),
    [anon_sym_LT_LT] = ACTIONS(3098),
    [anon_sym_LT_LT_EQ] = ACTIONS(3100),
    [anon_sym_GT] = ACTIONS(3098),
    [anon_sym_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3100),
    [anon_sym_GT_GT] = ACTIONS(3098),
    [anon_sym_GT_GT_GT] = ACTIONS(3098),
    [anon_sym_BANG] = ACTIONS(3098),
    [anon_sym_BANG_EQ] = ACTIONS(3100),
    [anon_sym_LPAREN] = ACTIONS(3100),
    [anon_sym_RPAREN] = ACTIONS(3100),
    [anon_sym_LBRACK] = ACTIONS(3100),
    [anon_sym_QMARK] = ACTIONS(3100),
    [anon_sym_COMMA] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_DOLLAR] = ACTIONS(3100),
    [anon_sym_EQ] = ACTIONS(3098),
    [anon_sym_EQ_EQ] = ACTIONS(3100),
    [anon_sym_STAR] = ACTIONS(3098),
    [anon_sym_STAR_EQ] = ACTIONS(3100),
    [anon_sym_PERCENT] = ACTIONS(3098),
    [anon_sym_PERCENT_EQ] = ACTIONS(3100),
    [anon_sym_CARET] = ACTIONS(3098),
    [anon_sym_CARET_EQ] = ACTIONS(3100),
    [anon_sym_CARET_CARET] = ACTIONS(3098),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3098),
    [anon_sym_TILDE_EQ] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_true] = ACTIONS(3098),
    [sym_false] = ACTIONS(3098),
    [sym_null] = ACTIONS(3098),
    [sym_super] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_assert] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_cast] = ACTIONS(3098),
    [sym_catch] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_delegate] = ACTIONS(3098),
    [sym_delete] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_finally] = ACTIONS(3098),
    [sym_function] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_is] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_new] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_throw] = ACTIONS(3098),
    [sym_typeid] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [anon_sym_BQUOTE] = ACTIONS(3100),
    [anon_sym_r_DQUOTE] = ACTIONS(3100),
    [anon_sym_x_DQUOTE] = ACTIONS(3100),
    [anon_sym_DQUOTE] = ACTIONS(3100),
    [anon_sym_i_BQUOTE] = ACTIONS(3100),
    [anon_sym_i_DQUOTE] = ACTIONS(3100),
    [anon_sym_iq_LBRACE] = ACTIONS(3100),
    [aux_sym_char_literal_token1] = ACTIONS(3100),
    [anon_sym_SQUOTE] = ACTIONS(3098),
    [anon_sym___DATE__] = ACTIONS(3098),
    [anon_sym___FILE__] = ACTIONS(3098),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3098),
    [anon_sym___FUNCTION__] = ACTIONS(3098),
    [anon_sym___LINE__] = ACTIONS(3098),
    [anon_sym___MODULE__] = ACTIONS(3098),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3098),
    [anon_sym___TIME__] = ACTIONS(3098),
    [anon_sym___TIMESTAMP__] = ACTIONS(3098),
    [anon_sym___VENDOR__] = ACTIONS(3098),
    [anon_sym___VERSION__] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3100),
    [sym_float_literal] = ACTIONS(3100),
    [sym__string] = ACTIONS(3100),
    [sym_not_in] = ACTIONS(3100),
    [sym_not_is] = ACTIONS(3100),
  },
  [2125] = {
    [sym_import_declaration] = STATE(2309),
    [sym_mixin_declaration] = STATE(2309),
    [sym__declaration] = STATE(2309),
    [sym__declaration2] = STATE(2309),
    [sym_variable_declaration] = STATE(2309),
    [sym_manifest_constant] = STATE(2309),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2309),
    [sym_alias_declaration] = STATE(2309),
    [sym_alias_reassign] = STATE(2309),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2309),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2309),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2309),
    [sym_union_declaration] = STATE(2309),
    [sym_postblit] = STATE(2309),
    [sym_invariant_declaration] = STATE(2309),
    [sym_class_declaration] = STATE(2309),
    [sym_constructor] = STATE(2309),
    [sym_destructor] = STATE(2309),
    [sym_alias_this] = STATE(2309),
    [sym_interface_declaration] = STATE(2309),
    [sym_enum_declaration] = STATE(2309),
    [sym_anonymous_enum_declaration] = STATE(2309),
    [sym_function_declaration] = STATE(2309),
    [sym_template_declaration] = STATE(2309),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2309),
    [sym_template_mixin] = STATE(2309),
    [sym_conditional_declaration] = STATE(2309),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2309),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2309),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2309),
    [sym_static_assert] = STATE(2309),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2309),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6274),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5617),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2126] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3104),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_SLASH] = ACTIONS(3102),
    [anon_sym_SLASH_EQ] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_AMP] = ACTIONS(3102),
    [anon_sym_AMP_EQ] = ACTIONS(3104),
    [anon_sym_AMP_AMP] = ACTIONS(3104),
    [anon_sym_PIPE] = ACTIONS(3102),
    [anon_sym_PIPE_EQ] = ACTIONS(3104),
    [anon_sym_PIPE_PIPE] = ACTIONS(3104),
    [anon_sym_DASH] = ACTIONS(3102),
    [anon_sym_DASH_EQ] = ACTIONS(3104),
    [anon_sym_DASH_DASH] = ACTIONS(3104),
    [anon_sym_PLUS] = ACTIONS(3102),
    [anon_sym_PLUS_EQ] = ACTIONS(3104),
    [anon_sym_PLUS_PLUS] = ACTIONS(3104),
    [anon_sym_LT] = ACTIONS(3102),
    [anon_sym_LT_EQ] = ACTIONS(3104),
    [anon_sym_LT_LT] = ACTIONS(3102),
    [anon_sym_LT_LT_EQ] = ACTIONS(3104),
    [anon_sym_GT] = ACTIONS(3102),
    [anon_sym_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3104),
    [anon_sym_GT_GT] = ACTIONS(3102),
    [anon_sym_GT_GT_GT] = ACTIONS(3102),
    [anon_sym_BANG] = ACTIONS(3102),
    [anon_sym_BANG_EQ] = ACTIONS(3104),
    [anon_sym_LPAREN] = ACTIONS(3104),
    [anon_sym_RPAREN] = ACTIONS(3104),
    [anon_sym_LBRACK] = ACTIONS(3104),
    [anon_sym_QMARK] = ACTIONS(3104),
    [anon_sym_COMMA] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_DOLLAR] = ACTIONS(3104),
    [anon_sym_EQ] = ACTIONS(3102),
    [anon_sym_EQ_EQ] = ACTIONS(3104),
    [anon_sym_STAR] = ACTIONS(3102),
    [anon_sym_STAR_EQ] = ACTIONS(3104),
    [anon_sym_PERCENT] = ACTIONS(3102),
    [anon_sym_PERCENT_EQ] = ACTIONS(3104),
    [anon_sym_CARET] = ACTIONS(3102),
    [anon_sym_CARET_EQ] = ACTIONS(3104),
    [anon_sym_CARET_CARET] = ACTIONS(3102),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3102),
    [anon_sym_TILDE_EQ] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_true] = ACTIONS(3102),
    [sym_false] = ACTIONS(3102),
    [sym_null] = ACTIONS(3102),
    [sym_super] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_assert] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_cast] = ACTIONS(3102),
    [sym_catch] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_delegate] = ACTIONS(3102),
    [sym_delete] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_finally] = ACTIONS(3102),
    [sym_function] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_is] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_new] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_throw] = ACTIONS(3102),
    [sym_typeid] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [anon_sym_BQUOTE] = ACTIONS(3104),
    [anon_sym_r_DQUOTE] = ACTIONS(3104),
    [anon_sym_x_DQUOTE] = ACTIONS(3104),
    [anon_sym_DQUOTE] = ACTIONS(3104),
    [anon_sym_i_BQUOTE] = ACTIONS(3104),
    [anon_sym_i_DQUOTE] = ACTIONS(3104),
    [anon_sym_iq_LBRACE] = ACTIONS(3104),
    [aux_sym_char_literal_token1] = ACTIONS(3104),
    [anon_sym_SQUOTE] = ACTIONS(3102),
    [anon_sym___DATE__] = ACTIONS(3102),
    [anon_sym___FILE__] = ACTIONS(3102),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3102),
    [anon_sym___FUNCTION__] = ACTIONS(3102),
    [anon_sym___LINE__] = ACTIONS(3102),
    [anon_sym___MODULE__] = ACTIONS(3102),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3102),
    [anon_sym___TIME__] = ACTIONS(3102),
    [anon_sym___TIMESTAMP__] = ACTIONS(3102),
    [anon_sym___VENDOR__] = ACTIONS(3102),
    [anon_sym___VERSION__] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3104),
    [sym_float_literal] = ACTIONS(3104),
    [sym__string] = ACTIONS(3104),
    [sym_not_in] = ACTIONS(3104),
    [sym_not_is] = ACTIONS(3104),
  },
  [2127] = {
    [sym_import_declaration] = STATE(2320),
    [sym_mixin_declaration] = STATE(2320),
    [sym__declaration] = STATE(2320),
    [sym__declaration2] = STATE(2320),
    [sym_variable_declaration] = STATE(2320),
    [sym_manifest_constant] = STATE(2320),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2320),
    [sym_alias_declaration] = STATE(2320),
    [sym_alias_reassign] = STATE(2320),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2320),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2161),
    [sym__attribute] = STATE(2161),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2320),
    [sym_pragma_expression] = STATE(1857),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2320),
    [sym_union_declaration] = STATE(2320),
    [sym_postblit] = STATE(2320),
    [sym_invariant_declaration] = STATE(2320),
    [sym_class_declaration] = STATE(2320),
    [sym_constructor] = STATE(2320),
    [sym_destructor] = STATE(2320),
    [sym_alias_this] = STATE(2320),
    [sym_interface_declaration] = STATE(2320),
    [sym_enum_declaration] = STATE(2320),
    [sym_anonymous_enum_declaration] = STATE(2320),
    [sym_function_declaration] = STATE(2320),
    [sym_template_declaration] = STATE(2320),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2320),
    [sym_template_mixin] = STATE(2320),
    [sym_conditional_declaration] = STATE(2320),
    [sym_condition] = STATE(1835),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2320),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2320),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2320),
    [sym_static_assert] = STATE(2320),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2320),
    [aux_sym_import_declaration_repeat1] = STATE(2161),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6276),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5913),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(872),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(872),
    [sym_protected] = ACTIONS(872),
    [sym_public] = ACTIONS(872),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(872),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5533),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2128] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3072),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_AMP] = ACTIONS(3070),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3070),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3072),
    [anon_sym_PLUS] = ACTIONS(3070),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3072),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3070),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3072),
    [anon_sym_RPAREN] = ACTIONS(3072),
    [anon_sym_LBRACK] = ACTIONS(3072),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_DOLLAR] = ACTIONS(3072),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3070),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3070),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_true] = ACTIONS(3070),
    [sym_false] = ACTIONS(3070),
    [sym_null] = ACTIONS(3070),
    [sym_super] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_assert] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_cast] = ACTIONS(3070),
    [sym_catch] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_delegate] = ACTIONS(3070),
    [sym_delete] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_finally] = ACTIONS(3070),
    [sym_function] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_is] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_new] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_throw] = ACTIONS(3070),
    [sym_typeid] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [anon_sym_BQUOTE] = ACTIONS(3072),
    [anon_sym_r_DQUOTE] = ACTIONS(3072),
    [anon_sym_x_DQUOTE] = ACTIONS(3072),
    [anon_sym_DQUOTE] = ACTIONS(3072),
    [anon_sym_i_BQUOTE] = ACTIONS(3072),
    [anon_sym_i_DQUOTE] = ACTIONS(3072),
    [anon_sym_iq_LBRACE] = ACTIONS(3072),
    [aux_sym_char_literal_token1] = ACTIONS(3072),
    [anon_sym_SQUOTE] = ACTIONS(3070),
    [anon_sym___DATE__] = ACTIONS(3070),
    [anon_sym___FILE__] = ACTIONS(3070),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3070),
    [anon_sym___FUNCTION__] = ACTIONS(3070),
    [anon_sym___LINE__] = ACTIONS(3070),
    [anon_sym___MODULE__] = ACTIONS(3070),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3070),
    [anon_sym___TIME__] = ACTIONS(3070),
    [anon_sym___TIMESTAMP__] = ACTIONS(3070),
    [anon_sym___VENDOR__] = ACTIONS(3070),
    [anon_sym___VERSION__] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3072),
    [sym_float_literal] = ACTIONS(3072),
    [sym__string] = ACTIONS(3072),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2129] = {
    [sym_import_declaration] = STATE(590),
    [sym_mixin_declaration] = STATE(590),
    [sym__declaration] = STATE(590),
    [sym__declaration2] = STATE(590),
    [sym_variable_declaration] = STATE(590),
    [sym_manifest_constant] = STATE(590),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(590),
    [sym_alias_declaration] = STATE(590),
    [sym_alias_reassign] = STATE(590),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(590),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(590),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(590),
    [sym_union_declaration] = STATE(590),
    [sym_postblit] = STATE(590),
    [sym_invariant_declaration] = STATE(590),
    [sym_class_declaration] = STATE(590),
    [sym_constructor] = STATE(590),
    [sym_destructor] = STATE(590),
    [sym_alias_this] = STATE(590),
    [sym_interface_declaration] = STATE(590),
    [sym_enum_declaration] = STATE(590),
    [sym_anonymous_enum_declaration] = STATE(590),
    [sym_function_declaration] = STATE(590),
    [sym_template_declaration] = STATE(590),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(590),
    [sym_template_mixin] = STATE(590),
    [sym_conditional_declaration] = STATE(590),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(590),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(590),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(590),
    [sym_static_assert] = STATE(590),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(590),
    [aux_sym_source_file_repeat1] = STATE(590),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6278),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2130] = {
    [sym_import_declaration] = STATE(1797),
    [sym_mixin_declaration] = STATE(1797),
    [sym__declaration] = STATE(1797),
    [sym__declaration2] = STATE(1797),
    [sym_variable_declaration] = STATE(1797),
    [sym_manifest_constant] = STATE(1797),
    [sym_storage_class] = STATE(3005),
    [sym_auto_declaration] = STATE(1797),
    [sym_alias_declaration] = STATE(1797),
    [sym_alias_reassign] = STATE(1797),
    [sym_type] = STATE(5583),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1797),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2155),
    [sym__attribute] = STATE(2155),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1797),
    [sym_pragma_expression] = STATE(2080),
    [sym_mixin_expression] = STATE(5309),
    [sym_struct_declaration] = STATE(1797),
    [sym_union_declaration] = STATE(1797),
    [sym_postblit] = STATE(1797),
    [sym_invariant_declaration] = STATE(1797),
    [sym_class_declaration] = STATE(1797),
    [sym_constructor] = STATE(1797),
    [sym_destructor] = STATE(1797),
    [sym_alias_this] = STATE(1797),
    [sym_interface_declaration] = STATE(1797),
    [sym_enum_declaration] = STATE(1797),
    [sym_anonymous_enum_declaration] = STATE(1797),
    [sym_function_declaration] = STATE(1797),
    [sym_template_declaration] = STATE(1797),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1797),
    [sym_template_mixin] = STATE(1797),
    [sym_conditional_declaration] = STATE(1797),
    [sym_condition] = STATE(2068),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1797),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1797),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1797),
    [sym_static_assert] = STATE(1797),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1797),
    [aux_sym_source_file_repeat1] = STATE(1797),
    [aux_sym_import_declaration_repeat1] = STATE(2155),
    [aux_sym_variable_declaration_repeat1] = STATE(3005),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6280),
    [anon_sym_TILDE] = ACTIONS(5275),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5277),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(5279),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(5281),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5283),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(5285),
    [sym_export] = ACTIONS(5287),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5289),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(5291),
    [sym_invariant] = ACTIONS(5293),
    [sym_mixin] = ACTIONS(5295),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5287),
    [sym_protected] = ACTIONS(5287),
    [sym_public] = ACTIONS(5287),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5287),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5297),
    [sym_static] = ACTIONS(5299),
    [sym_struct] = ACTIONS(5301),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(5303),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(5305),
    [sym_unittest] = ACTIONS(5307),
    [sym_version] = ACTIONS(5309),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2131] = {
    [sym_identifier] = ACTIONS(3118),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3121),
    [anon_sym_LBRACE] = ACTIONS(3121),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3121),
    [anon_sym_AMP] = ACTIONS(3118),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3118),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3121),
    [anon_sym_PLUS] = ACTIONS(3118),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3121),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3118),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3121),
    [anon_sym_RPAREN] = ACTIONS(3121),
    [anon_sym_LBRACK] = ACTIONS(3121),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3121),
    [anon_sym_DOLLAR] = ACTIONS(3121),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3118),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3118),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3118),
    [sym_byte] = ACTIONS(3118),
    [sym_ubyte] = ACTIONS(3118),
    [sym_char] = ACTIONS(3118),
    [sym_short] = ACTIONS(3118),
    [sym_ushort] = ACTIONS(3118),
    [sym_int] = ACTIONS(3118),
    [sym_uint] = ACTIONS(3118),
    [sym_long] = ACTIONS(3118),
    [sym_ulong] = ACTIONS(3118),
    [sym_cent] = ACTIONS(3118),
    [sym_ucent] = ACTIONS(3118),
    [sym_wchar] = ACTIONS(3118),
    [sym_dchar] = ACTIONS(3118),
    [sym_float] = ACTIONS(3118),
    [sym_double] = ACTIONS(3118),
    [sym_real] = ACTIONS(3118),
    [sym_ifloat] = ACTIONS(3118),
    [sym_idouble] = ACTIONS(3118),
    [sym_ireal] = ACTIONS(3118),
    [sym_cfloat] = ACTIONS(3118),
    [sym_cdouble] = ACTIONS(3118),
    [sym_creal] = ACTIONS(3118),
    [sym_size_t] = ACTIONS(3118),
    [sym_ptrdiff_t] = ACTIONS(3118),
    [sym_string] = ACTIONS(3118),
    [sym_cstring] = ACTIONS(3118),
    [sym_dstring] = ACTIONS(3118),
    [sym_wstring] = ACTIONS(3118),
    [sym_noreturn] = ACTIONS(3118),
    [sym_true] = ACTIONS(3118),
    [sym_false] = ACTIONS(3118),
    [sym_null] = ACTIONS(3118),
    [sym_super] = ACTIONS(3118),
    [sym_this] = ACTIONS(3118),
    [sym_assert] = ACTIONS(3118),
    [sym_auto] = ACTIONS(3118),
    [sym_cast] = ACTIONS(3118),
    [sym_catch] = ACTIONS(3118),
    [sym_const] = ACTIONS(3118),
    [sym_delegate] = ACTIONS(3118),
    [sym_delete] = ACTIONS(3118),
    [sym_do] = ACTIONS(3118),
    [sym_else] = ACTIONS(3118),
    [sym_finally] = ACTIONS(3118),
    [sym_function] = ACTIONS(3118),
    [sym_immutable] = ACTIONS(3118),
    [sym_import] = ACTIONS(3118),
    [sym_in] = ACTIONS(3118),
    [sym_inout] = ACTIONS(3118),
    [sym_is] = ACTIONS(3118),
    [sym_mixin] = ACTIONS(3118),
    [sym_new] = ACTIONS(3118),
    [sym_out] = ACTIONS(3118),
    [sym_ref] = ACTIONS(3118),
    [sym_shared] = ACTIONS(3118),
    [sym_throw] = ACTIONS(3118),
    [sym_typeid] = ACTIONS(3118),
    [sym_typeof] = ACTIONS(3118),
    [sym_traits] = ACTIONS(3118),
    [sym_vector] = ACTIONS(3118),
    [sym_void] = ACTIONS(3118),
    [anon_sym_BQUOTE] = ACTIONS(3121),
    [anon_sym_r_DQUOTE] = ACTIONS(3121),
    [anon_sym_x_DQUOTE] = ACTIONS(3121),
    [anon_sym_DQUOTE] = ACTIONS(3121),
    [anon_sym_i_BQUOTE] = ACTIONS(3121),
    [anon_sym_i_DQUOTE] = ACTIONS(3121),
    [anon_sym_iq_LBRACE] = ACTIONS(3121),
    [aux_sym_char_literal_token1] = ACTIONS(3121),
    [anon_sym_SQUOTE] = ACTIONS(3118),
    [anon_sym___DATE__] = ACTIONS(3118),
    [anon_sym___FILE__] = ACTIONS(3118),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3118),
    [anon_sym___FUNCTION__] = ACTIONS(3118),
    [anon_sym___LINE__] = ACTIONS(3118),
    [anon_sym___MODULE__] = ACTIONS(3118),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3118),
    [anon_sym___TIME__] = ACTIONS(3118),
    [anon_sym___TIMESTAMP__] = ACTIONS(3118),
    [anon_sym___VENDOR__] = ACTIONS(3118),
    [anon_sym___VERSION__] = ACTIONS(3118),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3121),
    [sym_float_literal] = ACTIONS(3121),
    [sym__string] = ACTIONS(3121),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2132] = {
    [sym_import_declaration] = STATE(2320),
    [sym_mixin_declaration] = STATE(2320),
    [sym__declaration] = STATE(2320),
    [sym__declaration2] = STATE(2320),
    [sym_variable_declaration] = STATE(2320),
    [sym_manifest_constant] = STATE(2320),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2320),
    [sym_alias_declaration] = STATE(2320),
    [sym_alias_reassign] = STATE(2320),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2320),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2320),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2320),
    [sym_union_declaration] = STATE(2320),
    [sym_postblit] = STATE(2320),
    [sym_invariant_declaration] = STATE(2320),
    [sym_class_declaration] = STATE(2320),
    [sym_constructor] = STATE(2320),
    [sym_destructor] = STATE(2320),
    [sym_alias_this] = STATE(2320),
    [sym_interface_declaration] = STATE(2320),
    [sym_enum_declaration] = STATE(2320),
    [sym_anonymous_enum_declaration] = STATE(2320),
    [sym_function_declaration] = STATE(2320),
    [sym_template_declaration] = STATE(2320),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2320),
    [sym_template_mixin] = STATE(2320),
    [sym_conditional_declaration] = STATE(2320),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2320),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2320),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2320),
    [sym_static_assert] = STATE(2320),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2320),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6276),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5913),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2133] = {
    [sym_import_declaration] = STATE(2653),
    [sym_mixin_declaration] = STATE(2653),
    [sym__declaration] = STATE(2653),
    [sym__declaration2] = STATE(2653),
    [sym_variable_declaration] = STATE(2653),
    [sym_manifest_constant] = STATE(2653),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2653),
    [sym_alias_declaration] = STATE(2653),
    [sym_alias_reassign] = STATE(2653),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2653),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2653),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2653),
    [sym_union_declaration] = STATE(2653),
    [sym_postblit] = STATE(2653),
    [sym_invariant_declaration] = STATE(2653),
    [sym_class_declaration] = STATE(2653),
    [sym_constructor] = STATE(2653),
    [sym_destructor] = STATE(2653),
    [sym_alias_this] = STATE(2653),
    [sym_interface_declaration] = STATE(2653),
    [sym_enum_declaration] = STATE(2653),
    [sym_anonymous_enum_declaration] = STATE(2653),
    [sym_function_declaration] = STATE(2653),
    [sym_template_declaration] = STATE(2653),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2653),
    [sym_template_mixin] = STATE(2653),
    [sym_conditional_declaration] = STATE(2653),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2653),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2653),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2653),
    [sym_static_assert] = STATE(2653),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2653),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6282),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6284),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2134] = {
    [sym_import_declaration] = STATE(1786),
    [sym_mixin_declaration] = STATE(1786),
    [sym__declaration] = STATE(1786),
    [sym__declaration2] = STATE(1786),
    [sym_variable_declaration] = STATE(1786),
    [sym_manifest_constant] = STATE(1786),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(1786),
    [sym_alias_declaration] = STATE(1786),
    [sym_alias_reassign] = STATE(1786),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1786),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1786),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(1786),
    [sym_union_declaration] = STATE(1786),
    [sym_postblit] = STATE(1786),
    [sym_invariant_declaration] = STATE(1786),
    [sym_class_declaration] = STATE(1786),
    [sym_constructor] = STATE(1786),
    [sym_destructor] = STATE(1786),
    [sym_alias_this] = STATE(1786),
    [sym_interface_declaration] = STATE(1786),
    [sym_enum_declaration] = STATE(1786),
    [sym_anonymous_enum_declaration] = STATE(1786),
    [sym_function_declaration] = STATE(1786),
    [sym_template_declaration] = STATE(1786),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1786),
    [sym_template_mixin] = STATE(1786),
    [sym_conditional_declaration] = STATE(1786),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1786),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1786),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1786),
    [sym_static_assert] = STATE(1786),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1786),
    [aux_sym_source_file_repeat1] = STATE(1786),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6286),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2135] = {
    [sym_import_declaration] = STATE(2653),
    [sym_mixin_declaration] = STATE(2653),
    [sym__declaration] = STATE(2653),
    [sym__declaration2] = STATE(2653),
    [sym_variable_declaration] = STATE(2653),
    [sym_manifest_constant] = STATE(2653),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2653),
    [sym_alias_declaration] = STATE(2653),
    [sym_alias_reassign] = STATE(2653),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2653),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2653),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2653),
    [sym_union_declaration] = STATE(2653),
    [sym_postblit] = STATE(2653),
    [sym_invariant_declaration] = STATE(2653),
    [sym_class_declaration] = STATE(2653),
    [sym_constructor] = STATE(2653),
    [sym_destructor] = STATE(2653),
    [sym_alias_this] = STATE(2653),
    [sym_interface_declaration] = STATE(2653),
    [sym_enum_declaration] = STATE(2653),
    [sym_anonymous_enum_declaration] = STATE(2653),
    [sym_function_declaration] = STATE(2653),
    [sym_template_declaration] = STATE(2653),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2653),
    [sym_template_mixin] = STATE(2653),
    [sym_conditional_declaration] = STATE(2653),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2653),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2653),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2653),
    [sym_static_assert] = STATE(2653),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2653),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6282),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6284),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2136] = {
    [sym_import_declaration] = STATE(2309),
    [sym_mixin_declaration] = STATE(2309),
    [sym__declaration] = STATE(2309),
    [sym__declaration2] = STATE(2309),
    [sym_variable_declaration] = STATE(2309),
    [sym_manifest_constant] = STATE(2309),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2309),
    [sym_alias_declaration] = STATE(2309),
    [sym_alias_reassign] = STATE(2309),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2309),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2309),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2309),
    [sym_union_declaration] = STATE(2309),
    [sym_postblit] = STATE(2309),
    [sym_invariant_declaration] = STATE(2309),
    [sym_class_declaration] = STATE(2309),
    [sym_constructor] = STATE(2309),
    [sym_destructor] = STATE(2309),
    [sym_alias_this] = STATE(2309),
    [sym_interface_declaration] = STATE(2309),
    [sym_enum_declaration] = STATE(2309),
    [sym_anonymous_enum_declaration] = STATE(2309),
    [sym_function_declaration] = STATE(2309),
    [sym_template_declaration] = STATE(2309),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2309),
    [sym_template_mixin] = STATE(2309),
    [sym_conditional_declaration] = STATE(2309),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2309),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2309),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2309),
    [sym_static_assert] = STATE(2309),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2309),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6274),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5617),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2137] = {
    [sym_import_declaration] = STATE(2663),
    [sym_mixin_declaration] = STATE(2663),
    [sym__declaration] = STATE(2663),
    [sym__declaration2] = STATE(2663),
    [sym_variable_declaration] = STATE(2663),
    [sym_manifest_constant] = STATE(2663),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2663),
    [sym_alias_declaration] = STATE(2663),
    [sym_alias_reassign] = STATE(2663),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2663),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2663),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2663),
    [sym_union_declaration] = STATE(2663),
    [sym_postblit] = STATE(2663),
    [sym_invariant_declaration] = STATE(2663),
    [sym_class_declaration] = STATE(2663),
    [sym_constructor] = STATE(2663),
    [sym_destructor] = STATE(2663),
    [sym_alias_this] = STATE(2663),
    [sym_interface_declaration] = STATE(2663),
    [sym_enum_declaration] = STATE(2663),
    [sym_anonymous_enum_declaration] = STATE(2663),
    [sym_function_declaration] = STATE(2663),
    [sym_template_declaration] = STATE(2663),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2663),
    [sym_template_mixin] = STATE(2663),
    [sym_conditional_declaration] = STATE(2663),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2663),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2663),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2663),
    [sym_static_assert] = STATE(2663),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2663),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6288),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5985),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2138] = {
    [sym_import_declaration] = STATE(2672),
    [sym_mixin_declaration] = STATE(2672),
    [sym__declaration] = STATE(2672),
    [sym__declaration2] = STATE(2672),
    [sym_variable_declaration] = STATE(2672),
    [sym_manifest_constant] = STATE(2672),
    [sym_storage_class] = STATE(3007),
    [sym_auto_declaration] = STATE(2672),
    [sym_alias_declaration] = STATE(2672),
    [sym_alias_reassign] = STATE(2672),
    [sym_type] = STATE(5639),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2672),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2160),
    [sym__attribute] = STATE(2160),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2672),
    [sym_pragma_expression] = STATE(1865),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2672),
    [sym_union_declaration] = STATE(2672),
    [sym_postblit] = STATE(2672),
    [sym_invariant_declaration] = STATE(2672),
    [sym_class_declaration] = STATE(2672),
    [sym_constructor] = STATE(2672),
    [sym_destructor] = STATE(2672),
    [sym_alias_this] = STATE(2672),
    [sym_interface_declaration] = STATE(2672),
    [sym_enum_declaration] = STATE(2672),
    [sym_anonymous_enum_declaration] = STATE(2672),
    [sym_function_declaration] = STATE(2672),
    [sym_template_declaration] = STATE(2672),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2672),
    [sym_template_mixin] = STATE(2672),
    [sym_conditional_declaration] = STATE(2672),
    [sym_condition] = STATE(1946),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2672),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2672),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2672),
    [sym_static_assert] = STATE(2672),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2672),
    [aux_sym_import_declaration_repeat1] = STATE(2160),
    [aux_sym_variable_declaration_repeat1] = STATE(3007),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6290),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5911),
    [anon_sym_TILDE] = ACTIONS(5181),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5183),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(5187),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(5191),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(5187),
    [sym_protected] = ACTIONS(5187),
    [sym_public] = ACTIONS(5187),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(5187),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(5195),
    [sym_static] = ACTIONS(5197),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(5199),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2139] = {
    [sym_import_declaration] = STATE(2663),
    [sym_mixin_declaration] = STATE(2663),
    [sym__declaration] = STATE(2663),
    [sym__declaration2] = STATE(2663),
    [sym_variable_declaration] = STATE(2663),
    [sym_manifest_constant] = STATE(2663),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2663),
    [sym_alias_declaration] = STATE(2663),
    [sym_alias_reassign] = STATE(2663),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2663),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2663),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2663),
    [sym_union_declaration] = STATE(2663),
    [sym_postblit] = STATE(2663),
    [sym_invariant_declaration] = STATE(2663),
    [sym_class_declaration] = STATE(2663),
    [sym_constructor] = STATE(2663),
    [sym_destructor] = STATE(2663),
    [sym_alias_this] = STATE(2663),
    [sym_interface_declaration] = STATE(2663),
    [sym_enum_declaration] = STATE(2663),
    [sym_anonymous_enum_declaration] = STATE(2663),
    [sym_function_declaration] = STATE(2663),
    [sym_template_declaration] = STATE(2663),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2663),
    [sym_template_mixin] = STATE(2663),
    [sym_conditional_declaration] = STATE(2663),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2663),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2663),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2663),
    [sym_static_assert] = STATE(2663),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2663),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6288),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5985),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2140] = {
    [sym_import_declaration] = STATE(2672),
    [sym_mixin_declaration] = STATE(2672),
    [sym__declaration] = STATE(2672),
    [sym__declaration2] = STATE(2672),
    [sym_variable_declaration] = STATE(2672),
    [sym_manifest_constant] = STATE(2672),
    [sym_storage_class] = STATE(3006),
    [sym_auto_declaration] = STATE(2672),
    [sym_alias_declaration] = STATE(2672),
    [sym_alias_reassign] = STATE(2672),
    [sym_type] = STATE(5707),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2672),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2157),
    [sym__attribute] = STATE(2157),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2672),
    [sym_pragma_expression] = STATE(2013),
    [sym_mixin_expression] = STATE(5313),
    [sym_struct_declaration] = STATE(2672),
    [sym_union_declaration] = STATE(2672),
    [sym_postblit] = STATE(2672),
    [sym_invariant_declaration] = STATE(2672),
    [sym_class_declaration] = STATE(2672),
    [sym_constructor] = STATE(2672),
    [sym_destructor] = STATE(2672),
    [sym_alias_this] = STATE(2672),
    [sym_interface_declaration] = STATE(2672),
    [sym_enum_declaration] = STATE(2672),
    [sym_anonymous_enum_declaration] = STATE(2672),
    [sym_function_declaration] = STATE(2672),
    [sym_template_declaration] = STATE(2672),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2672),
    [sym_template_mixin] = STATE(2672),
    [sym_conditional_declaration] = STATE(2672),
    [sym_condition] = STATE(1917),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2672),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2672),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2672),
    [sym_static_assert] = STATE(2672),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2672),
    [aux_sym_import_declaration_repeat1] = STATE(2157),
    [aux_sym_variable_declaration_repeat1] = STATE(3006),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6290),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5911),
    [anon_sym_TILDE] = ACTIONS(5569),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5571),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(1042),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(1048),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5185),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(1170),
    [sym_export] = ACTIONS(1060),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5189),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(1076),
    [sym_invariant] = ACTIONS(1078),
    [sym_mixin] = ACTIONS(5193),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(1060),
    [sym_protected] = ACTIONS(1060),
    [sym_public] = ACTIONS(1060),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(1060),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(1178),
    [sym_static] = ACTIONS(5573),
    [sym_struct] = ACTIONS(1098),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(1106),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(1110),
    [sym_unittest] = ACTIONS(1112),
    [sym_version] = ACTIONS(5201),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2141] = {
    [sym_import_declaration] = STATE(1577),
    [sym_mixin_declaration] = STATE(1577),
    [sym__declaration] = STATE(1577),
    [sym__declaration2] = STATE(1577),
    [sym_variable_declaration] = STATE(1577),
    [sym_manifest_constant] = STATE(1577),
    [sym_storage_class] = STATE(2996),
    [sym_auto_declaration] = STATE(1577),
    [sym_alias_declaration] = STATE(1577),
    [sym_alias_reassign] = STATE(1577),
    [sym_type] = STATE(5680),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1577),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2158),
    [sym__attribute] = STATE(2158),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1577),
    [sym_pragma_expression] = STATE(1867),
    [sym_mixin_expression] = STATE(5281),
    [sym_struct_declaration] = STATE(1577),
    [sym_union_declaration] = STATE(1577),
    [sym_postblit] = STATE(1577),
    [sym_invariant_declaration] = STATE(1577),
    [sym_class_declaration] = STATE(1577),
    [sym_constructor] = STATE(1577),
    [sym_destructor] = STATE(1577),
    [sym_alias_this] = STATE(1577),
    [sym_interface_declaration] = STATE(1577),
    [sym_enum_declaration] = STATE(1577),
    [sym_anonymous_enum_declaration] = STATE(1577),
    [sym_function_declaration] = STATE(1577),
    [sym_template_declaration] = STATE(1577),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1577),
    [sym_template_mixin] = STATE(1577),
    [sym_conditional_declaration] = STATE(1577),
    [sym_condition] = STATE(1908),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1577),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1577),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1577),
    [sym_static_assert] = STATE(1577),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1577),
    [aux_sym_import_declaration_repeat1] = STATE(2158),
    [aux_sym_variable_declaration_repeat1] = STATE(2996),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2870),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6292),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(5511),
    [anon_sym_TILDE] = ACTIONS(2874),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2876),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(109),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(123),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2878),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(137),
    [sym_export] = ACTIONS(139),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2880),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(157),
    [sym_invariant] = ACTIONS(159),
    [sym_mixin] = ACTIONS(2882),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(139),
    [sym_protected] = ACTIONS(139),
    [sym_public] = ACTIONS(139),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(139),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(177),
    [sym_static] = ACTIONS(2884),
    [sym_struct] = ACTIONS(181),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(187),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(197),
    [sym_unittest] = ACTIONS(199),
    [sym_version] = ACTIONS(2886),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2142] = {
    [sym_import_declaration] = STATE(2292),
    [sym_mixin_declaration] = STATE(2292),
    [sym__declaration] = STATE(2292),
    [sym__declaration2] = STATE(2292),
    [sym_variable_declaration] = STATE(2292),
    [sym_manifest_constant] = STATE(2292),
    [sym_storage_class] = STATE(2995),
    [sym_auto_declaration] = STATE(2292),
    [sym_alias_declaration] = STATE(2292),
    [sym_alias_reassign] = STATE(2292),
    [sym_type] = STATE(5640),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(2292),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2159),
    [sym__attribute] = STATE(2159),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(2292),
    [sym_pragma_expression] = STATE(2088),
    [sym_mixin_expression] = STATE(5303),
    [sym_struct_declaration] = STATE(2292),
    [sym_union_declaration] = STATE(2292),
    [sym_postblit] = STATE(2292),
    [sym_invariant_declaration] = STATE(2292),
    [sym_class_declaration] = STATE(2292),
    [sym_constructor] = STATE(2292),
    [sym_destructor] = STATE(2292),
    [sym_alias_this] = STATE(2292),
    [sym_interface_declaration] = STATE(2292),
    [sym_enum_declaration] = STATE(2292),
    [sym_anonymous_enum_declaration] = STATE(2292),
    [sym_function_declaration] = STATE(2292),
    [sym_template_declaration] = STATE(2292),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(2292),
    [sym_template_mixin] = STATE(2292),
    [sym_conditional_declaration] = STATE(2292),
    [sym_condition] = STATE(1925),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(2292),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(2292),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(2292),
    [sym_static_assert] = STATE(2292),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(2292),
    [aux_sym_import_declaration_repeat1] = STATE(2159),
    [aux_sym_variable_declaration_repeat1] = STATE(2995),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(5515),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6263),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6265),
    [anon_sym_TILDE] = ACTIONS(5523),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(5525),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(704),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(720),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(5527),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(870),
    [sym_export] = ACTIONS(742),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(5529),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(762),
    [sym_invariant] = ACTIONS(764),
    [sym_mixin] = ACTIONS(5531),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(742),
    [sym_protected] = ACTIONS(742),
    [sym_public] = ACTIONS(742),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(742),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(886),
    [sym_static] = ACTIONS(5723),
    [sym_struct] = ACTIONS(788),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(796),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(804),
    [sym_unittest] = ACTIONS(806),
    [sym_version] = ACTIONS(5535),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2143] = {
    [sym_import_declaration] = STATE(1500),
    [sym_mixin_declaration] = STATE(1500),
    [sym__declaration] = STATE(1500),
    [sym__declaration2] = STATE(1500),
    [sym_variable_declaration] = STATE(1500),
    [sym_manifest_constant] = STATE(1500),
    [sym_storage_class] = STATE(2988),
    [sym_auto_declaration] = STATE(1500),
    [sym_alias_declaration] = STATE(1500),
    [sym_alias_reassign] = STATE(1500),
    [sym_type] = STATE(5678),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_attribute_declaration] = STATE(1500),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2150),
    [sym__attribute] = STATE(2150),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_declaration] = STATE(1500),
    [sym_pragma_expression] = STATE(1878),
    [sym_mixin_expression] = STATE(5259),
    [sym_struct_declaration] = STATE(1500),
    [sym_union_declaration] = STATE(1500),
    [sym_postblit] = STATE(1500),
    [sym_invariant_declaration] = STATE(1500),
    [sym_class_declaration] = STATE(1500),
    [sym_constructor] = STATE(1500),
    [sym_destructor] = STATE(1500),
    [sym_alias_this] = STATE(1500),
    [sym_interface_declaration] = STATE(1500),
    [sym_enum_declaration] = STATE(1500),
    [sym_anonymous_enum_declaration] = STATE(1500),
    [sym_function_declaration] = STATE(1500),
    [sym_template_declaration] = STATE(1500),
    [sym_template_instance] = STATE(5035),
    [sym_mixin_template_declaration] = STATE(1500),
    [sym_template_mixin] = STATE(1500),
    [sym_conditional_declaration] = STATE(1500),
    [sym_condition] = STATE(1891),
    [sym_version_condition] = STATE(2924),
    [sym_version_specification] = STATE(1500),
    [sym_debug_condition] = STATE(2924),
    [sym_debug_specification] = STATE(1500),
    [sym_static_if_condition] = STATE(2924),
    [sym_static_foreach_declaration] = STATE(1500),
    [sym_static_assert] = STATE(1500),
    [sym_traits_expression] = STATE(4997),
    [sym_unittest_declaration] = STATE(1500),
    [aux_sym_import_declaration_repeat1] = STATE(2150),
    [aux_sym_variable_declaration_repeat1] = STATE(2988),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(2641),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6294),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_SEMI] = ACTIONS(6296),
    [anon_sym_TILDE] = ACTIONS(2649),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(2651),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(261),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(269),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(2653),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(277),
    [sym_export] = ACTIONS(279),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(2655),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(293),
    [sym_invariant] = ACTIONS(295),
    [sym_mixin] = ACTIONS(2657),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(279),
    [sym_protected] = ACTIONS(279),
    [sym_public] = ACTIONS(279),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(279),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(303),
    [sym_static] = ACTIONS(2659),
    [sym_struct] = ACTIONS(307),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(313),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(317),
    [sym_unittest] = ACTIONS(319),
    [sym_version] = ACTIONS(2661),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2144] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(6298),
    [sym_function] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2145] = {
    [sym_identifier] = ACTIONS(3088),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3091),
    [anon_sym_LBRACE] = ACTIONS(3091),
    [anon_sym_SLASH] = ACTIONS(3070),
    [anon_sym_SLASH_EQ] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3091),
    [anon_sym_AMP] = ACTIONS(3088),
    [anon_sym_AMP_EQ] = ACTIONS(3072),
    [anon_sym_AMP_AMP] = ACTIONS(3072),
    [anon_sym_PIPE] = ACTIONS(3070),
    [anon_sym_PIPE_EQ] = ACTIONS(3072),
    [anon_sym_PIPE_PIPE] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3088),
    [anon_sym_DASH_EQ] = ACTIONS(3072),
    [anon_sym_DASH_DASH] = ACTIONS(3091),
    [anon_sym_PLUS] = ACTIONS(3088),
    [anon_sym_PLUS_EQ] = ACTIONS(3072),
    [anon_sym_PLUS_PLUS] = ACTIONS(3091),
    [anon_sym_LT] = ACTIONS(3070),
    [anon_sym_LT_EQ] = ACTIONS(3072),
    [anon_sym_LT_LT] = ACTIONS(3070),
    [anon_sym_LT_LT_EQ] = ACTIONS(3072),
    [anon_sym_GT] = ACTIONS(3070),
    [anon_sym_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(3072),
    [anon_sym_GT_GT] = ACTIONS(3070),
    [anon_sym_GT_GT_GT] = ACTIONS(3070),
    [anon_sym_BANG] = ACTIONS(3088),
    [anon_sym_BANG_EQ] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3091),
    [anon_sym_RPAREN] = ACTIONS(3091),
    [anon_sym_LBRACK] = ACTIONS(3091),
    [anon_sym_QMARK] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3091),
    [anon_sym_DOLLAR] = ACTIONS(3091),
    [anon_sym_EQ] = ACTIONS(3070),
    [anon_sym_EQ_EQ] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3088),
    [anon_sym_STAR_EQ] = ACTIONS(3072),
    [anon_sym_PERCENT] = ACTIONS(3070),
    [anon_sym_PERCENT_EQ] = ACTIONS(3072),
    [anon_sym_CARET] = ACTIONS(3070),
    [anon_sym_CARET_EQ] = ACTIONS(3072),
    [anon_sym_CARET_CARET] = ACTIONS(3070),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3088),
    [anon_sym_TILDE_EQ] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3088),
    [sym_byte] = ACTIONS(3088),
    [sym_ubyte] = ACTIONS(3088),
    [sym_char] = ACTIONS(3088),
    [sym_short] = ACTIONS(3088),
    [sym_ushort] = ACTIONS(3088),
    [sym_int] = ACTIONS(3088),
    [sym_uint] = ACTIONS(3088),
    [sym_long] = ACTIONS(3088),
    [sym_ulong] = ACTIONS(3088),
    [sym_cent] = ACTIONS(3088),
    [sym_ucent] = ACTIONS(3088),
    [sym_wchar] = ACTIONS(3088),
    [sym_dchar] = ACTIONS(3088),
    [sym_float] = ACTIONS(3088),
    [sym_double] = ACTIONS(3088),
    [sym_real] = ACTIONS(3088),
    [sym_ifloat] = ACTIONS(3088),
    [sym_idouble] = ACTIONS(3088),
    [sym_ireal] = ACTIONS(3088),
    [sym_cfloat] = ACTIONS(3088),
    [sym_cdouble] = ACTIONS(3088),
    [sym_creal] = ACTIONS(3088),
    [sym_size_t] = ACTIONS(3088),
    [sym_ptrdiff_t] = ACTIONS(3088),
    [sym_string] = ACTIONS(3088),
    [sym_cstring] = ACTIONS(3088),
    [sym_dstring] = ACTIONS(3088),
    [sym_wstring] = ACTIONS(3088),
    [sym_noreturn] = ACTIONS(3088),
    [sym_true] = ACTIONS(3088),
    [sym_false] = ACTIONS(3088),
    [sym_null] = ACTIONS(3088),
    [sym_super] = ACTIONS(3088),
    [sym_this] = ACTIONS(3088),
    [sym_assert] = ACTIONS(3088),
    [sym_auto] = ACTIONS(3088),
    [sym_cast] = ACTIONS(3088),
    [sym_const] = ACTIONS(3088),
    [sym_delegate] = ACTIONS(3088),
    [sym_delete] = ACTIONS(3088),
    [sym_do] = ACTIONS(3088),
    [sym_else] = ACTIONS(6301),
    [sym_function] = ACTIONS(3088),
    [sym_immutable] = ACTIONS(3088),
    [sym_import] = ACTIONS(3088),
    [sym_in] = ACTIONS(3088),
    [sym_inout] = ACTIONS(3088),
    [sym_is] = ACTIONS(3088),
    [sym_mixin] = ACTIONS(3088),
    [sym_new] = ACTIONS(3088),
    [sym_out] = ACTIONS(3088),
    [sym_ref] = ACTIONS(3088),
    [sym_shared] = ACTIONS(3088),
    [sym_throw] = ACTIONS(3088),
    [sym_typeid] = ACTIONS(3088),
    [sym_typeof] = ACTIONS(3088),
    [sym_traits] = ACTIONS(3088),
    [sym_vector] = ACTIONS(3088),
    [sym_void] = ACTIONS(3088),
    [anon_sym_BQUOTE] = ACTIONS(3091),
    [anon_sym_r_DQUOTE] = ACTIONS(3091),
    [anon_sym_x_DQUOTE] = ACTIONS(3091),
    [anon_sym_DQUOTE] = ACTIONS(3091),
    [anon_sym_i_BQUOTE] = ACTIONS(3091),
    [anon_sym_i_DQUOTE] = ACTIONS(3091),
    [anon_sym_iq_LBRACE] = ACTIONS(3091),
    [aux_sym_char_literal_token1] = ACTIONS(3091),
    [anon_sym_SQUOTE] = ACTIONS(3088),
    [anon_sym___DATE__] = ACTIONS(3088),
    [anon_sym___FILE__] = ACTIONS(3088),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3088),
    [anon_sym___FUNCTION__] = ACTIONS(3088),
    [anon_sym___LINE__] = ACTIONS(3088),
    [anon_sym___MODULE__] = ACTIONS(3088),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3088),
    [anon_sym___TIME__] = ACTIONS(3088),
    [anon_sym___TIMESTAMP__] = ACTIONS(3088),
    [anon_sym___VENDOR__] = ACTIONS(3088),
    [anon_sym___VERSION__] = ACTIONS(3088),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3091),
    [sym_float_literal] = ACTIONS(3091),
    [sym__string] = ACTIONS(3091),
    [sym_not_in] = ACTIONS(3072),
    [sym_not_is] = ACTIONS(3072),
  },
  [2146] = {
    [sym_catch_statement] = STATE(2147),
    [sym_finally_statement] = STATE(2289),
    [aux_sym_try_statement_repeat1] = STATE(2147),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(6305),
    [sym_const] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_else] = ACTIONS(4159),
    [sym_finally] = ACTIONS(6307),
    [sym_function] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [2147] = {
    [sym_catch_statement] = STATE(2152),
    [sym_finally_statement] = STATE(2332),
    [aux_sym_try_statement_repeat1] = STATE(2152),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(6305),
    [sym_const] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_else] = ACTIONS(4149),
    [sym_finally] = ACTIONS(6307),
    [sym_function] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [2148] = {
    [sym_catch_statement] = STATE(2149),
    [sym_finally_statement] = STATE(2289),
    [aux_sym_try_statement_repeat1] = STATE(2149),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(6305),
    [sym_const] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_else] = ACTIONS(4159),
    [sym_finally] = ACTIONS(6309),
    [sym_function] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [2149] = {
    [sym_catch_statement] = STATE(2152),
    [sym_finally_statement] = STATE(2332),
    [aux_sym_try_statement_repeat1] = STATE(2152),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(6305),
    [sym_const] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_else] = ACTIONS(4149),
    [sym_finally] = ACTIONS(6309),
    [sym_function] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [2150] = {
    [sym_storage_class] = STATE(2997),
    [sym_type] = STATE(5722),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(1911),
    [sym_mixin_expression] = STATE(5276),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1927),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(2997),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6311),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6313),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6315),
    [anon_sym_TILDE] = ACTIONS(6317),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6319),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6321),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6323),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6327),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6331),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6333),
    [sym_invariant] = ACTIONS(6335),
    [sym_mixin] = ACTIONS(6337),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6339),
    [sym_static] = ACTIONS(6341),
    [sym_struct] = ACTIONS(6343),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6345),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6347),
    [sym_unittest] = ACTIONS(6349),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2151] = {
    [sym_catch_statement] = STATE(2162),
    [sym_finally_statement] = STATE(2289),
    [aux_sym_try_statement_repeat1] = STATE(2162),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(6353),
    [sym_const] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_finally] = ACTIONS(6355),
    [sym_function] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [2152] = {
    [sym_catch_statement] = STATE(2152),
    [aux_sym_try_statement_repeat1] = STATE(2152),
    [sym_identifier] = ACTIONS(4169),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4171),
    [anon_sym_LBRACE] = ACTIONS(4171),
    [anon_sym_DOT] = ACTIONS(4171),
    [anon_sym_AMP] = ACTIONS(4171),
    [anon_sym_DASH] = ACTIONS(4169),
    [anon_sym_DASH_DASH] = ACTIONS(4171),
    [anon_sym_PLUS] = ACTIONS(4169),
    [anon_sym_PLUS_PLUS] = ACTIONS(4171),
    [anon_sym_BANG] = ACTIONS(4171),
    [anon_sym_LPAREN] = ACTIONS(4171),
    [anon_sym_RPAREN] = ACTIONS(4171),
    [anon_sym_LBRACK] = ACTIONS(4171),
    [anon_sym_SEMI] = ACTIONS(4171),
    [anon_sym_DOLLAR] = ACTIONS(4171),
    [anon_sym_STAR] = ACTIONS(4171),
    [anon_sym_TILDE] = ACTIONS(4171),
    [sym_bool] = ACTIONS(4169),
    [sym_byte] = ACTIONS(4169),
    [sym_ubyte] = ACTIONS(4169),
    [sym_char] = ACTIONS(4169),
    [sym_short] = ACTIONS(4169),
    [sym_ushort] = ACTIONS(4169),
    [sym_int] = ACTIONS(4169),
    [sym_uint] = ACTIONS(4169),
    [sym_long] = ACTIONS(4169),
    [sym_ulong] = ACTIONS(4169),
    [sym_cent] = ACTIONS(4169),
    [sym_ucent] = ACTIONS(4169),
    [sym_wchar] = ACTIONS(4169),
    [sym_dchar] = ACTIONS(4169),
    [sym_float] = ACTIONS(4169),
    [sym_double] = ACTIONS(4169),
    [sym_real] = ACTIONS(4169),
    [sym_ifloat] = ACTIONS(4169),
    [sym_idouble] = ACTIONS(4169),
    [sym_ireal] = ACTIONS(4169),
    [sym_cfloat] = ACTIONS(4169),
    [sym_cdouble] = ACTIONS(4169),
    [sym_creal] = ACTIONS(4169),
    [sym_size_t] = ACTIONS(4169),
    [sym_ptrdiff_t] = ACTIONS(4169),
    [sym_string] = ACTIONS(4169),
    [sym_cstring] = ACTIONS(4169),
    [sym_dstring] = ACTIONS(4169),
    [sym_wstring] = ACTIONS(4169),
    [sym_noreturn] = ACTIONS(4169),
    [sym_true] = ACTIONS(4169),
    [sym_false] = ACTIONS(4169),
    [sym_null] = ACTIONS(4169),
    [sym_super] = ACTIONS(4169),
    [sym_this] = ACTIONS(4169),
    [sym_assert] = ACTIONS(4169),
    [sym_auto] = ACTIONS(4169),
    [sym_cast] = ACTIONS(4169),
    [sym_catch] = ACTIONS(6357),
    [sym_const] = ACTIONS(4169),
    [sym_delegate] = ACTIONS(4169),
    [sym_delete] = ACTIONS(4169),
    [sym_do] = ACTIONS(4169),
    [sym_else] = ACTIONS(4169),
    [sym_finally] = ACTIONS(4169),
    [sym_function] = ACTIONS(4169),
    [sym_immutable] = ACTIONS(4169),
    [sym_import] = ACTIONS(4169),
    [sym_in] = ACTIONS(4169),
    [sym_inout] = ACTIONS(4169),
    [sym_is] = ACTIONS(4169),
    [sym_mixin] = ACTIONS(4169),
    [sym_new] = ACTIONS(4169),
    [sym_out] = ACTIONS(4169),
    [sym_ref] = ACTIONS(4169),
    [sym_shared] = ACTIONS(4169),
    [sym_throw] = ACTIONS(4169),
    [sym_typeid] = ACTIONS(4169),
    [sym_typeof] = ACTIONS(4169),
    [sym_traits] = ACTIONS(4169),
    [sym_vector] = ACTIONS(4169),
    [sym_void] = ACTIONS(4169),
    [anon_sym_BQUOTE] = ACTIONS(4171),
    [anon_sym_r_DQUOTE] = ACTIONS(4171),
    [anon_sym_x_DQUOTE] = ACTIONS(4171),
    [anon_sym_DQUOTE] = ACTIONS(4171),
    [anon_sym_i_BQUOTE] = ACTIONS(4171),
    [anon_sym_i_DQUOTE] = ACTIONS(4171),
    [anon_sym_iq_LBRACE] = ACTIONS(4171),
    [aux_sym_char_literal_token1] = ACTIONS(4171),
    [anon_sym_SQUOTE] = ACTIONS(4169),
    [anon_sym___DATE__] = ACTIONS(4169),
    [anon_sym___FILE__] = ACTIONS(4169),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4169),
    [anon_sym___FUNCTION__] = ACTIONS(4169),
    [anon_sym___LINE__] = ACTIONS(4169),
    [anon_sym___MODULE__] = ACTIONS(4169),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4169),
    [anon_sym___TIME__] = ACTIONS(4169),
    [anon_sym___TIMESTAMP__] = ACTIONS(4169),
    [anon_sym___VENDOR__] = ACTIONS(4169),
    [anon_sym___VERSION__] = ACTIONS(4169),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4171),
    [sym_float_literal] = ACTIONS(4171),
    [sym__string] = ACTIONS(4171),
  },
  [2153] = {
    [sym_storage_class] = STATE(3014),
    [sym_type] = STATE(5618),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(2029),
    [sym_mixin_expression] = STATE(5241),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(2020),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(3014),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6360),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6362),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6364),
    [anon_sym_TILDE] = ACTIONS(6366),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6368),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6370),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6372),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6374),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6376),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6378),
    [sym_invariant] = ACTIONS(6380),
    [sym_mixin] = ACTIONS(6382),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6384),
    [sym_static] = ACTIONS(6386),
    [sym_struct] = ACTIONS(6388),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6390),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6392),
    [sym_unittest] = ACTIONS(6394),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2154] = {
    [sym_storage_class] = STATE(2989),
    [sym_type] = STATE(5576),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(1854),
    [sym_mixin_expression] = STATE(5241),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1844),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(2989),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6360),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6362),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6364),
    [anon_sym_TILDE] = ACTIONS(6396),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6398),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6370),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6372),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6374),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6376),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6378),
    [sym_invariant] = ACTIONS(6380),
    [sym_mixin] = ACTIONS(6382),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6400),
    [sym_static] = ACTIONS(6402),
    [sym_struct] = ACTIONS(6388),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6390),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6392),
    [sym_unittest] = ACTIONS(6394),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2155] = {
    [sym_storage_class] = STATE(3001),
    [sym_type] = STATE(5715),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(2065),
    [sym_mixin_expression] = STATE(5247),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1855),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(3001),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6404),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6406),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6408),
    [anon_sym_TILDE] = ACTIONS(6410),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6412),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6414),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6416),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6418),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6420),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6422),
    [sym_invariant] = ACTIONS(6424),
    [sym_mixin] = ACTIONS(6426),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6428),
    [sym_static] = ACTIONS(6430),
    [sym_struct] = ACTIONS(6432),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6434),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6436),
    [sym_unittest] = ACTIONS(6438),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2156] = {
    [sym_catch_statement] = STATE(2164),
    [sym_finally_statement] = STATE(2332),
    [aux_sym_try_statement_repeat1] = STATE(2164),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(6353),
    [sym_const] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_finally] = ACTIONS(6440),
    [sym_function] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [2157] = {
    [sym_storage_class] = STATE(3012),
    [sym_type] = STATE(5693),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(1964),
    [sym_mixin_expression] = STATE(5302),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1899),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(3012),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6442),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6444),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6446),
    [anon_sym_TILDE] = ACTIONS(6448),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6450),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6452),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6454),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6456),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6458),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6460),
    [sym_invariant] = ACTIONS(6462),
    [sym_mixin] = ACTIONS(6464),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6466),
    [sym_static] = ACTIONS(6468),
    [sym_struct] = ACTIONS(6470),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6472),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6474),
    [sym_unittest] = ACTIONS(6476),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2158] = {
    [sym_storage_class] = STATE(3008),
    [sym_type] = STATE(5593),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(1838),
    [sym_mixin_expression] = STATE(5291),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1981),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(3008),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6478),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6480),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6482),
    [anon_sym_TILDE] = ACTIONS(6484),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6486),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6488),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6490),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6492),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6494),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6496),
    [sym_invariant] = ACTIONS(6498),
    [sym_mixin] = ACTIONS(6500),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6502),
    [sym_static] = ACTIONS(6504),
    [sym_struct] = ACTIONS(6506),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6508),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6510),
    [sym_unittest] = ACTIONS(6512),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2159] = {
    [sym_storage_class] = STATE(2992),
    [sym_type] = STATE(5606),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(1928),
    [sym_mixin_expression] = STATE(5310),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1978),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(2992),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6514),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6516),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6518),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6522),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6524),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6526),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6528),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6530),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6532),
    [sym_invariant] = ACTIONS(6534),
    [sym_mixin] = ACTIONS(6536),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6538),
    [sym_static] = ACTIONS(6540),
    [sym_struct] = ACTIONS(6542),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6544),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6546),
    [sym_unittest] = ACTIONS(6548),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2160] = {
    [sym_storage_class] = STATE(2990),
    [sym_type] = STATE(5614),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(2000),
    [sym_mixin_expression] = STATE(5302),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1957),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(2990),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6442),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6444),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6446),
    [anon_sym_TILDE] = ACTIONS(6550),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6552),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6452),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6454),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6456),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6458),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6460),
    [sym_invariant] = ACTIONS(6554),
    [sym_mixin] = ACTIONS(6464),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6556),
    [sym_static] = ACTIONS(6558),
    [sym_struct] = ACTIONS(6470),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6472),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6474),
    [sym_unittest] = ACTIONS(6560),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2161] = {
    [sym_storage_class] = STATE(2992),
    [sym_type] = STATE(5606),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(2072),
    [sym_mixin_expression] = STATE(5310),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1893),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(2992),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6514),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6516),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6518),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6522),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6524),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6526),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6528),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6530),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6532),
    [sym_invariant] = ACTIONS(6534),
    [sym_mixin] = ACTIONS(6536),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6538),
    [sym_static] = ACTIONS(6540),
    [sym_struct] = ACTIONS(6542),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6544),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6546),
    [sym_unittest] = ACTIONS(6548),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2162] = {
    [sym_catch_statement] = STATE(2164),
    [sym_finally_statement] = STATE(2332),
    [aux_sym_try_statement_repeat1] = STATE(2164),
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(6353),
    [sym_const] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_finally] = ACTIONS(6355),
    [sym_function] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [2163] = {
    [sym_catch_statement] = STATE(2156),
    [sym_finally_statement] = STATE(2289),
    [aux_sym_try_statement_repeat1] = STATE(2156),
    [sym_identifier] = ACTIONS(4159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4161),
    [anon_sym_LBRACE] = ACTIONS(4161),
    [anon_sym_DOT] = ACTIONS(4161),
    [anon_sym_AMP] = ACTIONS(4161),
    [anon_sym_DASH] = ACTIONS(4159),
    [anon_sym_DASH_DASH] = ACTIONS(4161),
    [anon_sym_PLUS] = ACTIONS(4159),
    [anon_sym_PLUS_PLUS] = ACTIONS(4161),
    [anon_sym_BANG] = ACTIONS(4161),
    [anon_sym_LPAREN] = ACTIONS(4161),
    [anon_sym_RPAREN] = ACTIONS(4161),
    [anon_sym_LBRACK] = ACTIONS(4161),
    [anon_sym_SEMI] = ACTIONS(4161),
    [anon_sym_DOLLAR] = ACTIONS(4161),
    [anon_sym_STAR] = ACTIONS(4161),
    [anon_sym_TILDE] = ACTIONS(4161),
    [sym_bool] = ACTIONS(4159),
    [sym_byte] = ACTIONS(4159),
    [sym_ubyte] = ACTIONS(4159),
    [sym_char] = ACTIONS(4159),
    [sym_short] = ACTIONS(4159),
    [sym_ushort] = ACTIONS(4159),
    [sym_int] = ACTIONS(4159),
    [sym_uint] = ACTIONS(4159),
    [sym_long] = ACTIONS(4159),
    [sym_ulong] = ACTIONS(4159),
    [sym_cent] = ACTIONS(4159),
    [sym_ucent] = ACTIONS(4159),
    [sym_wchar] = ACTIONS(4159),
    [sym_dchar] = ACTIONS(4159),
    [sym_float] = ACTIONS(4159),
    [sym_double] = ACTIONS(4159),
    [sym_real] = ACTIONS(4159),
    [sym_ifloat] = ACTIONS(4159),
    [sym_idouble] = ACTIONS(4159),
    [sym_ireal] = ACTIONS(4159),
    [sym_cfloat] = ACTIONS(4159),
    [sym_cdouble] = ACTIONS(4159),
    [sym_creal] = ACTIONS(4159),
    [sym_size_t] = ACTIONS(4159),
    [sym_ptrdiff_t] = ACTIONS(4159),
    [sym_string] = ACTIONS(4159),
    [sym_cstring] = ACTIONS(4159),
    [sym_dstring] = ACTIONS(4159),
    [sym_wstring] = ACTIONS(4159),
    [sym_noreturn] = ACTIONS(4159),
    [sym_true] = ACTIONS(4159),
    [sym_false] = ACTIONS(4159),
    [sym_null] = ACTIONS(4159),
    [sym_super] = ACTIONS(4159),
    [sym_this] = ACTIONS(4159),
    [sym_assert] = ACTIONS(4159),
    [sym_auto] = ACTIONS(4159),
    [sym_cast] = ACTIONS(4159),
    [sym_catch] = ACTIONS(6353),
    [sym_const] = ACTIONS(4159),
    [sym_delegate] = ACTIONS(4159),
    [sym_delete] = ACTIONS(4159),
    [sym_do] = ACTIONS(4159),
    [sym_finally] = ACTIONS(6440),
    [sym_function] = ACTIONS(4159),
    [sym_immutable] = ACTIONS(4159),
    [sym_import] = ACTIONS(4159),
    [sym_in] = ACTIONS(4159),
    [sym_inout] = ACTIONS(4159),
    [sym_is] = ACTIONS(4159),
    [sym_mixin] = ACTIONS(4159),
    [sym_new] = ACTIONS(4159),
    [sym_out] = ACTIONS(4159),
    [sym_ref] = ACTIONS(4159),
    [sym_shared] = ACTIONS(4159),
    [sym_throw] = ACTIONS(4159),
    [sym_typeid] = ACTIONS(4159),
    [sym_typeof] = ACTIONS(4159),
    [sym_traits] = ACTIONS(4159),
    [sym_vector] = ACTIONS(4159),
    [sym_void] = ACTIONS(4159),
    [anon_sym_BQUOTE] = ACTIONS(4161),
    [anon_sym_r_DQUOTE] = ACTIONS(4161),
    [anon_sym_x_DQUOTE] = ACTIONS(4161),
    [anon_sym_DQUOTE] = ACTIONS(4161),
    [anon_sym_i_BQUOTE] = ACTIONS(4161),
    [anon_sym_i_DQUOTE] = ACTIONS(4161),
    [anon_sym_iq_LBRACE] = ACTIONS(4161),
    [aux_sym_char_literal_token1] = ACTIONS(4161),
    [anon_sym_SQUOTE] = ACTIONS(4159),
    [anon_sym___DATE__] = ACTIONS(4159),
    [anon_sym___FILE__] = ACTIONS(4159),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4159),
    [anon_sym___FUNCTION__] = ACTIONS(4159),
    [anon_sym___LINE__] = ACTIONS(4159),
    [anon_sym___MODULE__] = ACTIONS(4159),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4159),
    [anon_sym___TIME__] = ACTIONS(4159),
    [anon_sym___TIMESTAMP__] = ACTIONS(4159),
    [anon_sym___VENDOR__] = ACTIONS(4159),
    [anon_sym___VERSION__] = ACTIONS(4159),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4161),
    [sym_float_literal] = ACTIONS(4161),
    [sym__string] = ACTIONS(4161),
  },
  [2164] = {
    [sym_catch_statement] = STATE(2164),
    [aux_sym_try_statement_repeat1] = STATE(2164),
    [sym_identifier] = ACTIONS(4169),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4171),
    [anon_sym_LBRACE] = ACTIONS(4171),
    [anon_sym_DOT] = ACTIONS(4171),
    [anon_sym_AMP] = ACTIONS(4171),
    [anon_sym_DASH] = ACTIONS(4169),
    [anon_sym_DASH_DASH] = ACTIONS(4171),
    [anon_sym_PLUS] = ACTIONS(4169),
    [anon_sym_PLUS_PLUS] = ACTIONS(4171),
    [anon_sym_BANG] = ACTIONS(4171),
    [anon_sym_LPAREN] = ACTIONS(4171),
    [anon_sym_RPAREN] = ACTIONS(4171),
    [anon_sym_LBRACK] = ACTIONS(4171),
    [anon_sym_SEMI] = ACTIONS(4171),
    [anon_sym_DOLLAR] = ACTIONS(4171),
    [anon_sym_STAR] = ACTIONS(4171),
    [anon_sym_TILDE] = ACTIONS(4171),
    [sym_bool] = ACTIONS(4169),
    [sym_byte] = ACTIONS(4169),
    [sym_ubyte] = ACTIONS(4169),
    [sym_char] = ACTIONS(4169),
    [sym_short] = ACTIONS(4169),
    [sym_ushort] = ACTIONS(4169),
    [sym_int] = ACTIONS(4169),
    [sym_uint] = ACTIONS(4169),
    [sym_long] = ACTIONS(4169),
    [sym_ulong] = ACTIONS(4169),
    [sym_cent] = ACTIONS(4169),
    [sym_ucent] = ACTIONS(4169),
    [sym_wchar] = ACTIONS(4169),
    [sym_dchar] = ACTIONS(4169),
    [sym_float] = ACTIONS(4169),
    [sym_double] = ACTIONS(4169),
    [sym_real] = ACTIONS(4169),
    [sym_ifloat] = ACTIONS(4169),
    [sym_idouble] = ACTIONS(4169),
    [sym_ireal] = ACTIONS(4169),
    [sym_cfloat] = ACTIONS(4169),
    [sym_cdouble] = ACTIONS(4169),
    [sym_creal] = ACTIONS(4169),
    [sym_size_t] = ACTIONS(4169),
    [sym_ptrdiff_t] = ACTIONS(4169),
    [sym_string] = ACTIONS(4169),
    [sym_cstring] = ACTIONS(4169),
    [sym_dstring] = ACTIONS(4169),
    [sym_wstring] = ACTIONS(4169),
    [sym_noreturn] = ACTIONS(4169),
    [sym_true] = ACTIONS(4169),
    [sym_false] = ACTIONS(4169),
    [sym_null] = ACTIONS(4169),
    [sym_super] = ACTIONS(4169),
    [sym_this] = ACTIONS(4169),
    [sym_assert] = ACTIONS(4169),
    [sym_auto] = ACTIONS(4169),
    [sym_cast] = ACTIONS(4169),
    [sym_catch] = ACTIONS(6562),
    [sym_const] = ACTIONS(4169),
    [sym_delegate] = ACTIONS(4169),
    [sym_delete] = ACTIONS(4169),
    [sym_do] = ACTIONS(4169),
    [sym_finally] = ACTIONS(4169),
    [sym_function] = ACTIONS(4169),
    [sym_immutable] = ACTIONS(4169),
    [sym_import] = ACTIONS(4169),
    [sym_in] = ACTIONS(4169),
    [sym_inout] = ACTIONS(4169),
    [sym_is] = ACTIONS(4169),
    [sym_mixin] = ACTIONS(4169),
    [sym_new] = ACTIONS(4169),
    [sym_out] = ACTIONS(4169),
    [sym_ref] = ACTIONS(4169),
    [sym_shared] = ACTIONS(4169),
    [sym_throw] = ACTIONS(4169),
    [sym_typeid] = ACTIONS(4169),
    [sym_typeof] = ACTIONS(4169),
    [sym_traits] = ACTIONS(4169),
    [sym_vector] = ACTIONS(4169),
    [sym_void] = ACTIONS(4169),
    [anon_sym_BQUOTE] = ACTIONS(4171),
    [anon_sym_r_DQUOTE] = ACTIONS(4171),
    [anon_sym_x_DQUOTE] = ACTIONS(4171),
    [anon_sym_DQUOTE] = ACTIONS(4171),
    [anon_sym_i_BQUOTE] = ACTIONS(4171),
    [anon_sym_i_DQUOTE] = ACTIONS(4171),
    [anon_sym_iq_LBRACE] = ACTIONS(4171),
    [aux_sym_char_literal_token1] = ACTIONS(4171),
    [anon_sym_SQUOTE] = ACTIONS(4169),
    [anon_sym___DATE__] = ACTIONS(4169),
    [anon_sym___FILE__] = ACTIONS(4169),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4169),
    [anon_sym___FUNCTION__] = ACTIONS(4169),
    [anon_sym___LINE__] = ACTIONS(4169),
    [anon_sym___MODULE__] = ACTIONS(4169),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4169),
    [anon_sym___TIME__] = ACTIONS(4169),
    [anon_sym___TIMESTAMP__] = ACTIONS(4169),
    [anon_sym___VENDOR__] = ACTIONS(4169),
    [anon_sym___VERSION__] = ACTIONS(4169),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4171),
    [sym_float_literal] = ACTIONS(4171),
    [sym__string] = ACTIONS(4171),
  },
  [2165] = {
    [sym_storage_class] = STATE(2992),
    [sym_type] = STATE(5606),
    [sym_type_ctor] = STATE(2931),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(2971),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2971),
    [sym__function_attribute_kwd] = STATE(2971),
    [sym_linkage_attribute] = STATE(2971),
    [sym_pragma_expression] = STATE(2072),
    [sym_mixin_expression] = STATE(5310),
    [sym_template_instance] = STATE(5035),
    [sym_condition] = STATE(1893),
    [sym_version_condition] = STATE(2924),
    [sym_debug_condition] = STATE(2924),
    [sym_static_if_condition] = STATE(2924),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [aux_sym_variable_declaration_repeat1] = STATE(2992),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(6514),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(6518),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(19),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(6522),
    [sym_abstract] = ACTIONS(25),
    [sym_alias] = ACTIONS(6524),
    [sym_align] = ACTIONS(29),
    [sym_auto] = ACTIONS(25),
    [sym_class] = ACTIONS(6526),
    [sym_const] = ACTIONS(33),
    [sym_debug] = ACTIONS(6325),
    [sym_deprecated] = ACTIONS(37),
    [sym_enum] = ACTIONS(6528),
    [sym_export] = ACTIONS(6329),
    [sym_extern] = ACTIONS(43),
    [sym_final] = ACTIONS(25),
    [sym_immutable] = ACTIONS(33),
    [sym_import] = ACTIONS(6530),
    [sym_inout] = ACTIONS(33),
    [sym_interface] = ACTIONS(6532),
    [sym_invariant] = ACTIONS(6534),
    [sym_mixin] = ACTIONS(6536),
    [sym_nothrow] = ACTIONS(25),
    [sym_override] = ACTIONS(25),
    [sym_package] = ACTIONS(55),
    [sym_pragma] = ACTIONS(57),
    [sym_private] = ACTIONS(6329),
    [sym_protected] = ACTIONS(6329),
    [sym_public] = ACTIONS(6329),
    [sym_pure] = ACTIONS(25),
    [sym_ref] = ACTIONS(25),
    [sym_return] = ACTIONS(6329),
    [sym_scope] = ACTIONS(25),
    [sym_shared] = ACTIONS(6538),
    [sym_static] = ACTIONS(6540),
    [sym_struct] = ACTIONS(6542),
    [sym_synchronized] = ACTIONS(25),
    [sym_template] = ACTIONS(6544),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(6546),
    [sym_unittest] = ACTIONS(6548),
    [sym_version] = ACTIONS(6351),
    [sym_gshared] = ACTIONS(25),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2166] = {
    [sym_identifier] = ACTIONS(4646),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4648),
    [anon_sym_LBRACE] = ACTIONS(4648),
    [anon_sym_DOT] = ACTIONS(4648),
    [anon_sym_AMP] = ACTIONS(4648),
    [anon_sym_DASH] = ACTIONS(4646),
    [anon_sym_DASH_DASH] = ACTIONS(4648),
    [anon_sym_PLUS] = ACTIONS(4646),
    [anon_sym_PLUS_PLUS] = ACTIONS(4648),
    [anon_sym_BANG] = ACTIONS(4648),
    [anon_sym_LPAREN] = ACTIONS(4648),
    [anon_sym_RPAREN] = ACTIONS(4648),
    [anon_sym_LBRACK] = ACTIONS(4648),
    [anon_sym_SEMI] = ACTIONS(4648),
    [anon_sym_DOLLAR] = ACTIONS(4648),
    [anon_sym_STAR] = ACTIONS(4648),
    [anon_sym_TILDE] = ACTIONS(4648),
    [sym_bool] = ACTIONS(4646),
    [sym_byte] = ACTIONS(4646),
    [sym_ubyte] = ACTIONS(4646),
    [sym_char] = ACTIONS(4646),
    [sym_short] = ACTIONS(4646),
    [sym_ushort] = ACTIONS(4646),
    [sym_int] = ACTIONS(4646),
    [sym_uint] = ACTIONS(4646),
    [sym_long] = ACTIONS(4646),
    [sym_ulong] = ACTIONS(4646),
    [sym_cent] = ACTIONS(4646),
    [sym_ucent] = ACTIONS(4646),
    [sym_wchar] = ACTIONS(4646),
    [sym_dchar] = ACTIONS(4646),
    [sym_float] = ACTIONS(4646),
    [sym_double] = ACTIONS(4646),
    [sym_real] = ACTIONS(4646),
    [sym_ifloat] = ACTIONS(4646),
    [sym_idouble] = ACTIONS(4646),
    [sym_ireal] = ACTIONS(4646),
    [sym_cfloat] = ACTIONS(4646),
    [sym_cdouble] = ACTIONS(4646),
    [sym_creal] = ACTIONS(4646),
    [sym_size_t] = ACTIONS(4646),
    [sym_ptrdiff_t] = ACTIONS(4646),
    [sym_string] = ACTIONS(4646),
    [sym_cstring] = ACTIONS(4646),
    [sym_dstring] = ACTIONS(4646),
    [sym_wstring] = ACTIONS(4646),
    [sym_noreturn] = ACTIONS(4646),
    [sym_true] = ACTIONS(4646),
    [sym_false] = ACTIONS(4646),
    [sym_null] = ACTIONS(4646),
    [sym_super] = ACTIONS(4646),
    [sym_this] = ACTIONS(4646),
    [sym_assert] = ACTIONS(4646),
    [sym_auto] = ACTIONS(4646),
    [sym_cast] = ACTIONS(4646),
    [sym_catch] = ACTIONS(4646),
    [sym_const] = ACTIONS(4646),
    [sym_delegate] = ACTIONS(4646),
    [sym_delete] = ACTIONS(4646),
    [sym_do] = ACTIONS(4646),
    [sym_else] = ACTIONS(4646),
    [sym_finally] = ACTIONS(4646),
    [sym_function] = ACTIONS(4646),
    [sym_immutable] = ACTIONS(4646),
    [sym_import] = ACTIONS(4646),
    [sym_in] = ACTIONS(4646),
    [sym_inout] = ACTIONS(4646),
    [sym_is] = ACTIONS(4646),
    [sym_mixin] = ACTIONS(4646),
    [sym_new] = ACTIONS(4646),
    [sym_out] = ACTIONS(4646),
    [sym_ref] = ACTIONS(4646),
    [sym_shared] = ACTIONS(4646),
    [sym_throw] = ACTIONS(4646),
    [sym_typeid] = ACTIONS(4646),
    [sym_typeof] = ACTIONS(4646),
    [sym_traits] = ACTIONS(4646),
    [sym_vector] = ACTIONS(4646),
    [sym_void] = ACTIONS(4646),
    [anon_sym_BQUOTE] = ACTIONS(4648),
    [anon_sym_r_DQUOTE] = ACTIONS(4648),
    [anon_sym_x_DQUOTE] = ACTIONS(4648),
    [anon_sym_DQUOTE] = ACTIONS(4648),
    [anon_sym_i_BQUOTE] = ACTIONS(4648),
    [anon_sym_i_DQUOTE] = ACTIONS(4648),
    [anon_sym_iq_LBRACE] = ACTIONS(4648),
    [aux_sym_char_literal_token1] = ACTIONS(4648),
    [anon_sym_SQUOTE] = ACTIONS(4646),
    [anon_sym___DATE__] = ACTIONS(4646),
    [anon_sym___FILE__] = ACTIONS(4646),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4646),
    [anon_sym___FUNCTION__] = ACTIONS(4646),
    [anon_sym___LINE__] = ACTIONS(4646),
    [anon_sym___MODULE__] = ACTIONS(4646),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4646),
    [anon_sym___TIME__] = ACTIONS(4646),
    [anon_sym___TIMESTAMP__] = ACTIONS(4646),
    [anon_sym___VENDOR__] = ACTIONS(4646),
    [anon_sym___VERSION__] = ACTIONS(4646),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4648),
    [sym_float_literal] = ACTIONS(4648),
    [sym__string] = ACTIONS(4648),
  },
  [2167] = {
    [sym_identifier] = ACTIONS(5016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5018),
    [anon_sym_LBRACE] = ACTIONS(5018),
    [anon_sym_DOT] = ACTIONS(5018),
    [anon_sym_AMP] = ACTIONS(5018),
    [anon_sym_DASH] = ACTIONS(5016),
    [anon_sym_DASH_DASH] = ACTIONS(5018),
    [anon_sym_PLUS] = ACTIONS(5016),
    [anon_sym_PLUS_PLUS] = ACTIONS(5018),
    [anon_sym_BANG] = ACTIONS(5018),
    [anon_sym_LPAREN] = ACTIONS(5018),
    [anon_sym_RPAREN] = ACTIONS(5018),
    [anon_sym_LBRACK] = ACTIONS(5018),
    [anon_sym_SEMI] = ACTIONS(5018),
    [anon_sym_DOLLAR] = ACTIONS(5018),
    [anon_sym_STAR] = ACTIONS(5018),
    [anon_sym_TILDE] = ACTIONS(5018),
    [sym_bool] = ACTIONS(5016),
    [sym_byte] = ACTIONS(5016),
    [sym_ubyte] = ACTIONS(5016),
    [sym_char] = ACTIONS(5016),
    [sym_short] = ACTIONS(5016),
    [sym_ushort] = ACTIONS(5016),
    [sym_int] = ACTIONS(5016),
    [sym_uint] = ACTIONS(5016),
    [sym_long] = ACTIONS(5016),
    [sym_ulong] = ACTIONS(5016),
    [sym_cent] = ACTIONS(5016),
    [sym_ucent] = ACTIONS(5016),
    [sym_wchar] = ACTIONS(5016),
    [sym_dchar] = ACTIONS(5016),
    [sym_float] = ACTIONS(5016),
    [sym_double] = ACTIONS(5016),
    [sym_real] = ACTIONS(5016),
    [sym_ifloat] = ACTIONS(5016),
    [sym_idouble] = ACTIONS(5016),
    [sym_ireal] = ACTIONS(5016),
    [sym_cfloat] = ACTIONS(5016),
    [sym_cdouble] = ACTIONS(5016),
    [sym_creal] = ACTIONS(5016),
    [sym_size_t] = ACTIONS(5016),
    [sym_ptrdiff_t] = ACTIONS(5016),
    [sym_string] = ACTIONS(5016),
    [sym_cstring] = ACTIONS(5016),
    [sym_dstring] = ACTIONS(5016),
    [sym_wstring] = ACTIONS(5016),
    [sym_noreturn] = ACTIONS(5016),
    [sym_true] = ACTIONS(5016),
    [sym_false] = ACTIONS(5016),
    [sym_null] = ACTIONS(5016),
    [sym_super] = ACTIONS(5016),
    [sym_this] = ACTIONS(5016),
    [sym_assert] = ACTIONS(5016),
    [sym_auto] = ACTIONS(5016),
    [sym_cast] = ACTIONS(5016),
    [sym_catch] = ACTIONS(5016),
    [sym_const] = ACTIONS(5016),
    [sym_delegate] = ACTIONS(5016),
    [sym_delete] = ACTIONS(5016),
    [sym_do] = ACTIONS(5016),
    [sym_else] = ACTIONS(5016),
    [sym_finally] = ACTIONS(5016),
    [sym_function] = ACTIONS(5016),
    [sym_immutable] = ACTIONS(5016),
    [sym_import] = ACTIONS(5016),
    [sym_in] = ACTIONS(5016),
    [sym_inout] = ACTIONS(5016),
    [sym_is] = ACTIONS(5016),
    [sym_mixin] = ACTIONS(5016),
    [sym_new] = ACTIONS(5016),
    [sym_out] = ACTIONS(5016),
    [sym_ref] = ACTIONS(5016),
    [sym_shared] = ACTIONS(5016),
    [sym_throw] = ACTIONS(5016),
    [sym_typeid] = ACTIONS(5016),
    [sym_typeof] = ACTIONS(5016),
    [sym_traits] = ACTIONS(5016),
    [sym_vector] = ACTIONS(5016),
    [sym_void] = ACTIONS(5016),
    [anon_sym_BQUOTE] = ACTIONS(5018),
    [anon_sym_r_DQUOTE] = ACTIONS(5018),
    [anon_sym_x_DQUOTE] = ACTIONS(5018),
    [anon_sym_DQUOTE] = ACTIONS(5018),
    [anon_sym_i_BQUOTE] = ACTIONS(5018),
    [anon_sym_i_DQUOTE] = ACTIONS(5018),
    [anon_sym_iq_LBRACE] = ACTIONS(5018),
    [aux_sym_char_literal_token1] = ACTIONS(5018),
    [anon_sym_SQUOTE] = ACTIONS(5016),
    [anon_sym___DATE__] = ACTIONS(5016),
    [anon_sym___FILE__] = ACTIONS(5016),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5016),
    [anon_sym___FUNCTION__] = ACTIONS(5016),
    [anon_sym___LINE__] = ACTIONS(5016),
    [anon_sym___MODULE__] = ACTIONS(5016),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5016),
    [anon_sym___TIME__] = ACTIONS(5016),
    [anon_sym___TIMESTAMP__] = ACTIONS(5016),
    [anon_sym___VENDOR__] = ACTIONS(5016),
    [anon_sym___VERSION__] = ACTIONS(5016),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5018),
    [sym_float_literal] = ACTIONS(5018),
    [sym__string] = ACTIONS(5018),
  },
  [2168] = {
    [sym_identifier] = ACTIONS(4472),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4474),
    [anon_sym_LBRACE] = ACTIONS(4474),
    [anon_sym_DOT] = ACTIONS(4474),
    [anon_sym_AMP] = ACTIONS(4474),
    [anon_sym_DASH] = ACTIONS(4472),
    [anon_sym_DASH_DASH] = ACTIONS(4474),
    [anon_sym_PLUS] = ACTIONS(4472),
    [anon_sym_PLUS_PLUS] = ACTIONS(4474),
    [anon_sym_BANG] = ACTIONS(4474),
    [anon_sym_LPAREN] = ACTIONS(4474),
    [anon_sym_RPAREN] = ACTIONS(4474),
    [anon_sym_LBRACK] = ACTIONS(4474),
    [anon_sym_SEMI] = ACTIONS(4474),
    [anon_sym_DOLLAR] = ACTIONS(4474),
    [anon_sym_STAR] = ACTIONS(4474),
    [anon_sym_TILDE] = ACTIONS(4474),
    [sym_bool] = ACTIONS(4472),
    [sym_byte] = ACTIONS(4472),
    [sym_ubyte] = ACTIONS(4472),
    [sym_char] = ACTIONS(4472),
    [sym_short] = ACTIONS(4472),
    [sym_ushort] = ACTIONS(4472),
    [sym_int] = ACTIONS(4472),
    [sym_uint] = ACTIONS(4472),
    [sym_long] = ACTIONS(4472),
    [sym_ulong] = ACTIONS(4472),
    [sym_cent] = ACTIONS(4472),
    [sym_ucent] = ACTIONS(4472),
    [sym_wchar] = ACTIONS(4472),
    [sym_dchar] = ACTIONS(4472),
    [sym_float] = ACTIONS(4472),
    [sym_double] = ACTIONS(4472),
    [sym_real] = ACTIONS(4472),
    [sym_ifloat] = ACTIONS(4472),
    [sym_idouble] = ACTIONS(4472),
    [sym_ireal] = ACTIONS(4472),
    [sym_cfloat] = ACTIONS(4472),
    [sym_cdouble] = ACTIONS(4472),
    [sym_creal] = ACTIONS(4472),
    [sym_size_t] = ACTIONS(4472),
    [sym_ptrdiff_t] = ACTIONS(4472),
    [sym_string] = ACTIONS(4472),
    [sym_cstring] = ACTIONS(4472),
    [sym_dstring] = ACTIONS(4472),
    [sym_wstring] = ACTIONS(4472),
    [sym_noreturn] = ACTIONS(4472),
    [sym_true] = ACTIONS(4472),
    [sym_false] = ACTIONS(4472),
    [sym_null] = ACTIONS(4472),
    [sym_super] = ACTIONS(4472),
    [sym_this] = ACTIONS(4472),
    [sym_assert] = ACTIONS(4472),
    [sym_auto] = ACTIONS(4472),
    [sym_cast] = ACTIONS(4472),
    [sym_catch] = ACTIONS(4472),
    [sym_const] = ACTIONS(4472),
    [sym_delegate] = ACTIONS(4472),
    [sym_delete] = ACTIONS(4472),
    [sym_do] = ACTIONS(4472),
    [sym_else] = ACTIONS(4472),
    [sym_finally] = ACTIONS(4472),
    [sym_function] = ACTIONS(4472),
    [sym_immutable] = ACTIONS(4472),
    [sym_import] = ACTIONS(4472),
    [sym_in] = ACTIONS(4472),
    [sym_inout] = ACTIONS(4472),
    [sym_is] = ACTIONS(4472),
    [sym_mixin] = ACTIONS(4472),
    [sym_new] = ACTIONS(4472),
    [sym_out] = ACTIONS(4472),
    [sym_ref] = ACTIONS(4472),
    [sym_shared] = ACTIONS(4472),
    [sym_throw] = ACTIONS(4472),
    [sym_typeid] = ACTIONS(4472),
    [sym_typeof] = ACTIONS(4472),
    [sym_traits] = ACTIONS(4472),
    [sym_vector] = ACTIONS(4472),
    [sym_void] = ACTIONS(4472),
    [anon_sym_BQUOTE] = ACTIONS(4474),
    [anon_sym_r_DQUOTE] = ACTIONS(4474),
    [anon_sym_x_DQUOTE] = ACTIONS(4474),
    [anon_sym_DQUOTE] = ACTIONS(4474),
    [anon_sym_i_BQUOTE] = ACTIONS(4474),
    [anon_sym_i_DQUOTE] = ACTIONS(4474),
    [anon_sym_iq_LBRACE] = ACTIONS(4474),
    [aux_sym_char_literal_token1] = ACTIONS(4474),
    [anon_sym_SQUOTE] = ACTIONS(4472),
    [anon_sym___DATE__] = ACTIONS(4472),
    [anon_sym___FILE__] = ACTIONS(4472),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4472),
    [anon_sym___FUNCTION__] = ACTIONS(4472),
    [anon_sym___LINE__] = ACTIONS(4472),
    [anon_sym___MODULE__] = ACTIONS(4472),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4472),
    [anon_sym___TIME__] = ACTIONS(4472),
    [anon_sym___TIMESTAMP__] = ACTIONS(4472),
    [anon_sym___VENDOR__] = ACTIONS(4472),
    [anon_sym___VERSION__] = ACTIONS(4472),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4474),
    [sym_float_literal] = ACTIONS(4474),
    [sym__string] = ACTIONS(4474),
  },
  [2169] = {
    [sym_identifier] = ACTIONS(4464),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4466),
    [anon_sym_LBRACE] = ACTIONS(4466),
    [anon_sym_DOT] = ACTIONS(4466),
    [anon_sym_AMP] = ACTIONS(4466),
    [anon_sym_DASH] = ACTIONS(4464),
    [anon_sym_DASH_DASH] = ACTIONS(4466),
    [anon_sym_PLUS] = ACTIONS(4464),
    [anon_sym_PLUS_PLUS] = ACTIONS(4466),
    [anon_sym_BANG] = ACTIONS(4466),
    [anon_sym_LPAREN] = ACTIONS(4466),
    [anon_sym_RPAREN] = ACTIONS(4466),
    [anon_sym_LBRACK] = ACTIONS(4466),
    [anon_sym_SEMI] = ACTIONS(4466),
    [anon_sym_DOLLAR] = ACTIONS(4466),
    [anon_sym_STAR] = ACTIONS(4466),
    [anon_sym_TILDE] = ACTIONS(4466),
    [sym_bool] = ACTIONS(4464),
    [sym_byte] = ACTIONS(4464),
    [sym_ubyte] = ACTIONS(4464),
    [sym_char] = ACTIONS(4464),
    [sym_short] = ACTIONS(4464),
    [sym_ushort] = ACTIONS(4464),
    [sym_int] = ACTIONS(4464),
    [sym_uint] = ACTIONS(4464),
    [sym_long] = ACTIONS(4464),
    [sym_ulong] = ACTIONS(4464),
    [sym_cent] = ACTIONS(4464),
    [sym_ucent] = ACTIONS(4464),
    [sym_wchar] = ACTIONS(4464),
    [sym_dchar] = ACTIONS(4464),
    [sym_float] = ACTIONS(4464),
    [sym_double] = ACTIONS(4464),
    [sym_real] = ACTIONS(4464),
    [sym_ifloat] = ACTIONS(4464),
    [sym_idouble] = ACTIONS(4464),
    [sym_ireal] = ACTIONS(4464),
    [sym_cfloat] = ACTIONS(4464),
    [sym_cdouble] = ACTIONS(4464),
    [sym_creal] = ACTIONS(4464),
    [sym_size_t] = ACTIONS(4464),
    [sym_ptrdiff_t] = ACTIONS(4464),
    [sym_string] = ACTIONS(4464),
    [sym_cstring] = ACTIONS(4464),
    [sym_dstring] = ACTIONS(4464),
    [sym_wstring] = ACTIONS(4464),
    [sym_noreturn] = ACTIONS(4464),
    [sym_true] = ACTIONS(4464),
    [sym_false] = ACTIONS(4464),
    [sym_null] = ACTIONS(4464),
    [sym_super] = ACTIONS(4464),
    [sym_this] = ACTIONS(4464),
    [sym_assert] = ACTIONS(4464),
    [sym_auto] = ACTIONS(4464),
    [sym_cast] = ACTIONS(4464),
    [sym_catch] = ACTIONS(4464),
    [sym_const] = ACTIONS(4464),
    [sym_delegate] = ACTIONS(4464),
    [sym_delete] = ACTIONS(4464),
    [sym_do] = ACTIONS(4464),
    [sym_else] = ACTIONS(4464),
    [sym_finally] = ACTIONS(4464),
    [sym_function] = ACTIONS(4464),
    [sym_immutable] = ACTIONS(4464),
    [sym_import] = ACTIONS(4464),
    [sym_in] = ACTIONS(4464),
    [sym_inout] = ACTIONS(4464),
    [sym_is] = ACTIONS(4464),
    [sym_mixin] = ACTIONS(4464),
    [sym_new] = ACTIONS(4464),
    [sym_out] = ACTIONS(4464),
    [sym_ref] = ACTIONS(4464),
    [sym_shared] = ACTIONS(4464),
    [sym_throw] = ACTIONS(4464),
    [sym_typeid] = ACTIONS(4464),
    [sym_typeof] = ACTIONS(4464),
    [sym_traits] = ACTIONS(4464),
    [sym_vector] = ACTIONS(4464),
    [sym_void] = ACTIONS(4464),
    [anon_sym_BQUOTE] = ACTIONS(4466),
    [anon_sym_r_DQUOTE] = ACTIONS(4466),
    [anon_sym_x_DQUOTE] = ACTIONS(4466),
    [anon_sym_DQUOTE] = ACTIONS(4466),
    [anon_sym_i_BQUOTE] = ACTIONS(4466),
    [anon_sym_i_DQUOTE] = ACTIONS(4466),
    [anon_sym_iq_LBRACE] = ACTIONS(4466),
    [aux_sym_char_literal_token1] = ACTIONS(4466),
    [anon_sym_SQUOTE] = ACTIONS(4464),
    [anon_sym___DATE__] = ACTIONS(4464),
    [anon_sym___FILE__] = ACTIONS(4464),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4464),
    [anon_sym___FUNCTION__] = ACTIONS(4464),
    [anon_sym___LINE__] = ACTIONS(4464),
    [anon_sym___MODULE__] = ACTIONS(4464),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4464),
    [anon_sym___TIME__] = ACTIONS(4464),
    [anon_sym___TIMESTAMP__] = ACTIONS(4464),
    [anon_sym___VENDOR__] = ACTIONS(4464),
    [anon_sym___VERSION__] = ACTIONS(4464),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4466),
    [sym_float_literal] = ACTIONS(4466),
    [sym__string] = ACTIONS(4466),
  },
  [2170] = {
    [sym_identifier] = ACTIONS(4456),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4458),
    [anon_sym_LBRACE] = ACTIONS(4458),
    [anon_sym_DOT] = ACTIONS(4458),
    [anon_sym_AMP] = ACTIONS(4458),
    [anon_sym_DASH] = ACTIONS(4456),
    [anon_sym_DASH_DASH] = ACTIONS(4458),
    [anon_sym_PLUS] = ACTIONS(4456),
    [anon_sym_PLUS_PLUS] = ACTIONS(4458),
    [anon_sym_BANG] = ACTIONS(4458),
    [anon_sym_LPAREN] = ACTIONS(4458),
    [anon_sym_RPAREN] = ACTIONS(4458),
    [anon_sym_LBRACK] = ACTIONS(4458),
    [anon_sym_SEMI] = ACTIONS(4458),
    [anon_sym_DOLLAR] = ACTIONS(4458),
    [anon_sym_STAR] = ACTIONS(4458),
    [anon_sym_TILDE] = ACTIONS(4458),
    [sym_bool] = ACTIONS(4456),
    [sym_byte] = ACTIONS(4456),
    [sym_ubyte] = ACTIONS(4456),
    [sym_char] = ACTIONS(4456),
    [sym_short] = ACTIONS(4456),
    [sym_ushort] = ACTIONS(4456),
    [sym_int] = ACTIONS(4456),
    [sym_uint] = ACTIONS(4456),
    [sym_long] = ACTIONS(4456),
    [sym_ulong] = ACTIONS(4456),
    [sym_cent] = ACTIONS(4456),
    [sym_ucent] = ACTIONS(4456),
    [sym_wchar] = ACTIONS(4456),
    [sym_dchar] = ACTIONS(4456),
    [sym_float] = ACTIONS(4456),
    [sym_double] = ACTIONS(4456),
    [sym_real] = ACTIONS(4456),
    [sym_ifloat] = ACTIONS(4456),
    [sym_idouble] = ACTIONS(4456),
    [sym_ireal] = ACTIONS(4456),
    [sym_cfloat] = ACTIONS(4456),
    [sym_cdouble] = ACTIONS(4456),
    [sym_creal] = ACTIONS(4456),
    [sym_size_t] = ACTIONS(4456),
    [sym_ptrdiff_t] = ACTIONS(4456),
    [sym_string] = ACTIONS(4456),
    [sym_cstring] = ACTIONS(4456),
    [sym_dstring] = ACTIONS(4456),
    [sym_wstring] = ACTIONS(4456),
    [sym_noreturn] = ACTIONS(4456),
    [sym_true] = ACTIONS(4456),
    [sym_false] = ACTIONS(4456),
    [sym_null] = ACTIONS(4456),
    [sym_super] = ACTIONS(4456),
    [sym_this] = ACTIONS(4456),
    [sym_assert] = ACTIONS(4456),
    [sym_auto] = ACTIONS(4456),
    [sym_cast] = ACTIONS(4456),
    [sym_catch] = ACTIONS(4456),
    [sym_const] = ACTIONS(4456),
    [sym_delegate] = ACTIONS(4456),
    [sym_delete] = ACTIONS(4456),
    [sym_do] = ACTIONS(4456),
    [sym_else] = ACTIONS(4456),
    [sym_finally] = ACTIONS(4456),
    [sym_function] = ACTIONS(4456),
    [sym_immutable] = ACTIONS(4456),
    [sym_import] = ACTIONS(4456),
    [sym_in] = ACTIONS(4456),
    [sym_inout] = ACTIONS(4456),
    [sym_is] = ACTIONS(4456),
    [sym_mixin] = ACTIONS(4456),
    [sym_new] = ACTIONS(4456),
    [sym_out] = ACTIONS(4456),
    [sym_ref] = ACTIONS(4456),
    [sym_shared] = ACTIONS(4456),
    [sym_throw] = ACTIONS(4456),
    [sym_typeid] = ACTIONS(4456),
    [sym_typeof] = ACTIONS(4456),
    [sym_traits] = ACTIONS(4456),
    [sym_vector] = ACTIONS(4456),
    [sym_void] = ACTIONS(4456),
    [anon_sym_BQUOTE] = ACTIONS(4458),
    [anon_sym_r_DQUOTE] = ACTIONS(4458),
    [anon_sym_x_DQUOTE] = ACTIONS(4458),
    [anon_sym_DQUOTE] = ACTIONS(4458),
    [anon_sym_i_BQUOTE] = ACTIONS(4458),
    [anon_sym_i_DQUOTE] = ACTIONS(4458),
    [anon_sym_iq_LBRACE] = ACTIONS(4458),
    [aux_sym_char_literal_token1] = ACTIONS(4458),
    [anon_sym_SQUOTE] = ACTIONS(4456),
    [anon_sym___DATE__] = ACTIONS(4456),
    [anon_sym___FILE__] = ACTIONS(4456),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4456),
    [anon_sym___FUNCTION__] = ACTIONS(4456),
    [anon_sym___LINE__] = ACTIONS(4456),
    [anon_sym___MODULE__] = ACTIONS(4456),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4456),
    [anon_sym___TIME__] = ACTIONS(4456),
    [anon_sym___TIMESTAMP__] = ACTIONS(4456),
    [anon_sym___VENDOR__] = ACTIONS(4456),
    [anon_sym___VERSION__] = ACTIONS(4456),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4458),
    [sym_float_literal] = ACTIONS(4458),
    [sym__string] = ACTIONS(4458),
  },
  [2171] = {
    [sym_identifier] = ACTIONS(4418),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4420),
    [anon_sym_LBRACE] = ACTIONS(4420),
    [anon_sym_DOT] = ACTIONS(4420),
    [anon_sym_AMP] = ACTIONS(4420),
    [anon_sym_DASH] = ACTIONS(4418),
    [anon_sym_DASH_DASH] = ACTIONS(4420),
    [anon_sym_PLUS] = ACTIONS(4418),
    [anon_sym_PLUS_PLUS] = ACTIONS(4420),
    [anon_sym_BANG] = ACTIONS(4420),
    [anon_sym_LPAREN] = ACTIONS(4420),
    [anon_sym_RPAREN] = ACTIONS(4420),
    [anon_sym_LBRACK] = ACTIONS(4420),
    [anon_sym_SEMI] = ACTIONS(4420),
    [anon_sym_DOLLAR] = ACTIONS(4420),
    [anon_sym_STAR] = ACTIONS(4420),
    [anon_sym_TILDE] = ACTIONS(4420),
    [sym_bool] = ACTIONS(4418),
    [sym_byte] = ACTIONS(4418),
    [sym_ubyte] = ACTIONS(4418),
    [sym_char] = ACTIONS(4418),
    [sym_short] = ACTIONS(4418),
    [sym_ushort] = ACTIONS(4418),
    [sym_int] = ACTIONS(4418),
    [sym_uint] = ACTIONS(4418),
    [sym_long] = ACTIONS(4418),
    [sym_ulong] = ACTIONS(4418),
    [sym_cent] = ACTIONS(4418),
    [sym_ucent] = ACTIONS(4418),
    [sym_wchar] = ACTIONS(4418),
    [sym_dchar] = ACTIONS(4418),
    [sym_float] = ACTIONS(4418),
    [sym_double] = ACTIONS(4418),
    [sym_real] = ACTIONS(4418),
    [sym_ifloat] = ACTIONS(4418),
    [sym_idouble] = ACTIONS(4418),
    [sym_ireal] = ACTIONS(4418),
    [sym_cfloat] = ACTIONS(4418),
    [sym_cdouble] = ACTIONS(4418),
    [sym_creal] = ACTIONS(4418),
    [sym_size_t] = ACTIONS(4418),
    [sym_ptrdiff_t] = ACTIONS(4418),
    [sym_string] = ACTIONS(4418),
    [sym_cstring] = ACTIONS(4418),
    [sym_dstring] = ACTIONS(4418),
    [sym_wstring] = ACTIONS(4418),
    [sym_noreturn] = ACTIONS(4418),
    [sym_true] = ACTIONS(4418),
    [sym_false] = ACTIONS(4418),
    [sym_null] = ACTIONS(4418),
    [sym_super] = ACTIONS(4418),
    [sym_this] = ACTIONS(4418),
    [sym_assert] = ACTIONS(4418),
    [sym_auto] = ACTIONS(4418),
    [sym_cast] = ACTIONS(4418),
    [sym_catch] = ACTIONS(4418),
    [sym_const] = ACTIONS(4418),
    [sym_delegate] = ACTIONS(4418),
    [sym_delete] = ACTIONS(4418),
    [sym_do] = ACTIONS(4418),
    [sym_else] = ACTIONS(4418),
    [sym_finally] = ACTIONS(4418),
    [sym_function] = ACTIONS(4418),
    [sym_immutable] = ACTIONS(4418),
    [sym_import] = ACTIONS(4418),
    [sym_in] = ACTIONS(4418),
    [sym_inout] = ACTIONS(4418),
    [sym_is] = ACTIONS(4418),
    [sym_mixin] = ACTIONS(4418),
    [sym_new] = ACTIONS(4418),
    [sym_out] = ACTIONS(4418),
    [sym_ref] = ACTIONS(4418),
    [sym_shared] = ACTIONS(4418),
    [sym_throw] = ACTIONS(4418),
    [sym_typeid] = ACTIONS(4418),
    [sym_typeof] = ACTIONS(4418),
    [sym_traits] = ACTIONS(4418),
    [sym_vector] = ACTIONS(4418),
    [sym_void] = ACTIONS(4418),
    [anon_sym_BQUOTE] = ACTIONS(4420),
    [anon_sym_r_DQUOTE] = ACTIONS(4420),
    [anon_sym_x_DQUOTE] = ACTIONS(4420),
    [anon_sym_DQUOTE] = ACTIONS(4420),
    [anon_sym_i_BQUOTE] = ACTIONS(4420),
    [anon_sym_i_DQUOTE] = ACTIONS(4420),
    [anon_sym_iq_LBRACE] = ACTIONS(4420),
    [aux_sym_char_literal_token1] = ACTIONS(4420),
    [anon_sym_SQUOTE] = ACTIONS(4418),
    [anon_sym___DATE__] = ACTIONS(4418),
    [anon_sym___FILE__] = ACTIONS(4418),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4418),
    [anon_sym___FUNCTION__] = ACTIONS(4418),
    [anon_sym___LINE__] = ACTIONS(4418),
    [anon_sym___MODULE__] = ACTIONS(4418),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4418),
    [anon_sym___TIME__] = ACTIONS(4418),
    [anon_sym___TIMESTAMP__] = ACTIONS(4418),
    [anon_sym___VENDOR__] = ACTIONS(4418),
    [anon_sym___VERSION__] = ACTIONS(4418),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4420),
    [sym_float_literal] = ACTIONS(4420),
    [sym__string] = ACTIONS(4420),
  },
  [2172] = {
    [sym_identifier] = ACTIONS(4698),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4701),
    [anon_sym_LBRACE] = ACTIONS(4701),
    [anon_sym_DOT] = ACTIONS(4701),
    [anon_sym_AMP] = ACTIONS(4701),
    [anon_sym_DASH] = ACTIONS(4698),
    [anon_sym_DASH_DASH] = ACTIONS(4701),
    [anon_sym_PLUS] = ACTIONS(4698),
    [anon_sym_PLUS_PLUS] = ACTIONS(4701),
    [anon_sym_BANG] = ACTIONS(4701),
    [anon_sym_LPAREN] = ACTIONS(4701),
    [anon_sym_RPAREN] = ACTIONS(4701),
    [anon_sym_LBRACK] = ACTIONS(4701),
    [anon_sym_SEMI] = ACTIONS(4701),
    [anon_sym_DOLLAR] = ACTIONS(4701),
    [anon_sym_STAR] = ACTIONS(4701),
    [anon_sym_TILDE] = ACTIONS(4701),
    [sym_bool] = ACTIONS(4698),
    [sym_byte] = ACTIONS(4698),
    [sym_ubyte] = ACTIONS(4698),
    [sym_char] = ACTIONS(4698),
    [sym_short] = ACTIONS(4698),
    [sym_ushort] = ACTIONS(4698),
    [sym_int] = ACTIONS(4698),
    [sym_uint] = ACTIONS(4698),
    [sym_long] = ACTIONS(4698),
    [sym_ulong] = ACTIONS(4698),
    [sym_cent] = ACTIONS(4698),
    [sym_ucent] = ACTIONS(4698),
    [sym_wchar] = ACTIONS(4698),
    [sym_dchar] = ACTIONS(4698),
    [sym_float] = ACTIONS(4698),
    [sym_double] = ACTIONS(4698),
    [sym_real] = ACTIONS(4698),
    [sym_ifloat] = ACTIONS(4698),
    [sym_idouble] = ACTIONS(4698),
    [sym_ireal] = ACTIONS(4698),
    [sym_cfloat] = ACTIONS(4698),
    [sym_cdouble] = ACTIONS(4698),
    [sym_creal] = ACTIONS(4698),
    [sym_size_t] = ACTIONS(4698),
    [sym_ptrdiff_t] = ACTIONS(4698),
    [sym_string] = ACTIONS(4698),
    [sym_cstring] = ACTIONS(4698),
    [sym_dstring] = ACTIONS(4698),
    [sym_wstring] = ACTIONS(4698),
    [sym_noreturn] = ACTIONS(4698),
    [sym_true] = ACTIONS(4698),
    [sym_false] = ACTIONS(4698),
    [sym_null] = ACTIONS(4698),
    [sym_super] = ACTIONS(4698),
    [sym_this] = ACTIONS(4698),
    [sym_assert] = ACTIONS(4698),
    [sym_auto] = ACTIONS(4698),
    [sym_cast] = ACTIONS(4698),
    [sym_catch] = ACTIONS(4698),
    [sym_const] = ACTIONS(4698),
    [sym_delegate] = ACTIONS(4698),
    [sym_delete] = ACTIONS(4698),
    [sym_do] = ACTIONS(4698),
    [sym_else] = ACTIONS(4698),
    [sym_finally] = ACTIONS(4698),
    [sym_function] = ACTIONS(4698),
    [sym_immutable] = ACTIONS(4698),
    [sym_import] = ACTIONS(4698),
    [sym_in] = ACTIONS(4698),
    [sym_inout] = ACTIONS(4698),
    [sym_is] = ACTIONS(4698),
    [sym_mixin] = ACTIONS(4698),
    [sym_new] = ACTIONS(4698),
    [sym_out] = ACTIONS(4698),
    [sym_ref] = ACTIONS(4698),
    [sym_shared] = ACTIONS(4698),
    [sym_throw] = ACTIONS(4698),
    [sym_typeid] = ACTIONS(4698),
    [sym_typeof] = ACTIONS(4698),
    [sym_traits] = ACTIONS(4698),
    [sym_vector] = ACTIONS(4698),
    [sym_void] = ACTIONS(4698),
    [anon_sym_BQUOTE] = ACTIONS(4701),
    [anon_sym_r_DQUOTE] = ACTIONS(4701),
    [anon_sym_x_DQUOTE] = ACTIONS(4701),
    [anon_sym_DQUOTE] = ACTIONS(4701),
    [anon_sym_i_BQUOTE] = ACTIONS(4701),
    [anon_sym_i_DQUOTE] = ACTIONS(4701),
    [anon_sym_iq_LBRACE] = ACTIONS(4701),
    [aux_sym_char_literal_token1] = ACTIONS(4701),
    [anon_sym_SQUOTE] = ACTIONS(4698),
    [anon_sym___DATE__] = ACTIONS(4698),
    [anon_sym___FILE__] = ACTIONS(4698),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4698),
    [anon_sym___FUNCTION__] = ACTIONS(4698),
    [anon_sym___LINE__] = ACTIONS(4698),
    [anon_sym___MODULE__] = ACTIONS(4698),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4698),
    [anon_sym___TIME__] = ACTIONS(4698),
    [anon_sym___TIMESTAMP__] = ACTIONS(4698),
    [anon_sym___VENDOR__] = ACTIONS(4698),
    [anon_sym___VERSION__] = ACTIONS(4698),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4701),
    [sym_float_literal] = ACTIONS(4701),
    [sym__string] = ACTIONS(4701),
  },
  [2173] = {
    [sym_identifier] = ACTIONS(4414),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4416),
    [anon_sym_LBRACE] = ACTIONS(4416),
    [anon_sym_DOT] = ACTIONS(4416),
    [anon_sym_AMP] = ACTIONS(4416),
    [anon_sym_DASH] = ACTIONS(4414),
    [anon_sym_DASH_DASH] = ACTIONS(4416),
    [anon_sym_PLUS] = ACTIONS(4414),
    [anon_sym_PLUS_PLUS] = ACTIONS(4416),
    [anon_sym_BANG] = ACTIONS(4416),
    [anon_sym_LPAREN] = ACTIONS(4416),
    [anon_sym_RPAREN] = ACTIONS(4416),
    [anon_sym_LBRACK] = ACTIONS(4416),
    [anon_sym_SEMI] = ACTIONS(4416),
    [anon_sym_DOLLAR] = ACTIONS(4416),
    [anon_sym_STAR] = ACTIONS(4416),
    [anon_sym_TILDE] = ACTIONS(4416),
    [sym_bool] = ACTIONS(4414),
    [sym_byte] = ACTIONS(4414),
    [sym_ubyte] = ACTIONS(4414),
    [sym_char] = ACTIONS(4414),
    [sym_short] = ACTIONS(4414),
    [sym_ushort] = ACTIONS(4414),
    [sym_int] = ACTIONS(4414),
    [sym_uint] = ACTIONS(4414),
    [sym_long] = ACTIONS(4414),
    [sym_ulong] = ACTIONS(4414),
    [sym_cent] = ACTIONS(4414),
    [sym_ucent] = ACTIONS(4414),
    [sym_wchar] = ACTIONS(4414),
    [sym_dchar] = ACTIONS(4414),
    [sym_float] = ACTIONS(4414),
    [sym_double] = ACTIONS(4414),
    [sym_real] = ACTIONS(4414),
    [sym_ifloat] = ACTIONS(4414),
    [sym_idouble] = ACTIONS(4414),
    [sym_ireal] = ACTIONS(4414),
    [sym_cfloat] = ACTIONS(4414),
    [sym_cdouble] = ACTIONS(4414),
    [sym_creal] = ACTIONS(4414),
    [sym_size_t] = ACTIONS(4414),
    [sym_ptrdiff_t] = ACTIONS(4414),
    [sym_string] = ACTIONS(4414),
    [sym_cstring] = ACTIONS(4414),
    [sym_dstring] = ACTIONS(4414),
    [sym_wstring] = ACTIONS(4414),
    [sym_noreturn] = ACTIONS(4414),
    [sym_true] = ACTIONS(4414),
    [sym_false] = ACTIONS(4414),
    [sym_null] = ACTIONS(4414),
    [sym_super] = ACTIONS(4414),
    [sym_this] = ACTIONS(4414),
    [sym_assert] = ACTIONS(4414),
    [sym_auto] = ACTIONS(4414),
    [sym_cast] = ACTIONS(4414),
    [sym_catch] = ACTIONS(4414),
    [sym_const] = ACTIONS(4414),
    [sym_delegate] = ACTIONS(4414),
    [sym_delete] = ACTIONS(4414),
    [sym_do] = ACTIONS(4414),
    [sym_else] = ACTIONS(4414),
    [sym_finally] = ACTIONS(4414),
    [sym_function] = ACTIONS(4414),
    [sym_immutable] = ACTIONS(4414),
    [sym_import] = ACTIONS(4414),
    [sym_in] = ACTIONS(4414),
    [sym_inout] = ACTIONS(4414),
    [sym_is] = ACTIONS(4414),
    [sym_mixin] = ACTIONS(4414),
    [sym_new] = ACTIONS(4414),
    [sym_out] = ACTIONS(4414),
    [sym_ref] = ACTIONS(4414),
    [sym_shared] = ACTIONS(4414),
    [sym_throw] = ACTIONS(4414),
    [sym_typeid] = ACTIONS(4414),
    [sym_typeof] = ACTIONS(4414),
    [sym_traits] = ACTIONS(4414),
    [sym_vector] = ACTIONS(4414),
    [sym_void] = ACTIONS(4414),
    [anon_sym_BQUOTE] = ACTIONS(4416),
    [anon_sym_r_DQUOTE] = ACTIONS(4416),
    [anon_sym_x_DQUOTE] = ACTIONS(4416),
    [anon_sym_DQUOTE] = ACTIONS(4416),
    [anon_sym_i_BQUOTE] = ACTIONS(4416),
    [anon_sym_i_DQUOTE] = ACTIONS(4416),
    [anon_sym_iq_LBRACE] = ACTIONS(4416),
    [aux_sym_char_literal_token1] = ACTIONS(4416),
    [anon_sym_SQUOTE] = ACTIONS(4414),
    [anon_sym___DATE__] = ACTIONS(4414),
    [anon_sym___FILE__] = ACTIONS(4414),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4414),
    [anon_sym___FUNCTION__] = ACTIONS(4414),
    [anon_sym___LINE__] = ACTIONS(4414),
    [anon_sym___MODULE__] = ACTIONS(4414),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4414),
    [anon_sym___TIME__] = ACTIONS(4414),
    [anon_sym___TIMESTAMP__] = ACTIONS(4414),
    [anon_sym___VENDOR__] = ACTIONS(4414),
    [anon_sym___VERSION__] = ACTIONS(4414),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4416),
    [sym_float_literal] = ACTIONS(4416),
    [sym__string] = ACTIONS(4416),
  },
  [2174] = {
    [sym_identifier] = ACTIONS(4728),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4730),
    [anon_sym_LBRACE] = ACTIONS(4730),
    [anon_sym_DOT] = ACTIONS(4730),
    [anon_sym_AMP] = ACTIONS(4730),
    [anon_sym_DASH] = ACTIONS(4728),
    [anon_sym_DASH_DASH] = ACTIONS(4730),
    [anon_sym_PLUS] = ACTIONS(4728),
    [anon_sym_PLUS_PLUS] = ACTIONS(4730),
    [anon_sym_BANG] = ACTIONS(4730),
    [anon_sym_LPAREN] = ACTIONS(4730),
    [anon_sym_RPAREN] = ACTIONS(4730),
    [anon_sym_LBRACK] = ACTIONS(4730),
    [anon_sym_SEMI] = ACTIONS(4730),
    [anon_sym_DOLLAR] = ACTIONS(4730),
    [anon_sym_STAR] = ACTIONS(4730),
    [anon_sym_TILDE] = ACTIONS(4730),
    [sym_bool] = ACTIONS(4728),
    [sym_byte] = ACTIONS(4728),
    [sym_ubyte] = ACTIONS(4728),
    [sym_char] = ACTIONS(4728),
    [sym_short] = ACTIONS(4728),
    [sym_ushort] = ACTIONS(4728),
    [sym_int] = ACTIONS(4728),
    [sym_uint] = ACTIONS(4728),
    [sym_long] = ACTIONS(4728),
    [sym_ulong] = ACTIONS(4728),
    [sym_cent] = ACTIONS(4728),
    [sym_ucent] = ACTIONS(4728),
    [sym_wchar] = ACTIONS(4728),
    [sym_dchar] = ACTIONS(4728),
    [sym_float] = ACTIONS(4728),
    [sym_double] = ACTIONS(4728),
    [sym_real] = ACTIONS(4728),
    [sym_ifloat] = ACTIONS(4728),
    [sym_idouble] = ACTIONS(4728),
    [sym_ireal] = ACTIONS(4728),
    [sym_cfloat] = ACTIONS(4728),
    [sym_cdouble] = ACTIONS(4728),
    [sym_creal] = ACTIONS(4728),
    [sym_size_t] = ACTIONS(4728),
    [sym_ptrdiff_t] = ACTIONS(4728),
    [sym_string] = ACTIONS(4728),
    [sym_cstring] = ACTIONS(4728),
    [sym_dstring] = ACTIONS(4728),
    [sym_wstring] = ACTIONS(4728),
    [sym_noreturn] = ACTIONS(4728),
    [sym_true] = ACTIONS(4728),
    [sym_false] = ACTIONS(4728),
    [sym_null] = ACTIONS(4728),
    [sym_super] = ACTIONS(4728),
    [sym_this] = ACTIONS(4728),
    [sym_assert] = ACTIONS(4728),
    [sym_auto] = ACTIONS(4728),
    [sym_cast] = ACTIONS(4728),
    [sym_catch] = ACTIONS(4728),
    [sym_const] = ACTIONS(4728),
    [sym_delegate] = ACTIONS(4728),
    [sym_delete] = ACTIONS(4728),
    [sym_do] = ACTIONS(4728),
    [sym_else] = ACTIONS(4728),
    [sym_finally] = ACTIONS(4728),
    [sym_function] = ACTIONS(4728),
    [sym_immutable] = ACTIONS(4728),
    [sym_import] = ACTIONS(4728),
    [sym_in] = ACTIONS(4728),
    [sym_inout] = ACTIONS(4728),
    [sym_is] = ACTIONS(4728),
    [sym_mixin] = ACTIONS(4728),
    [sym_new] = ACTIONS(4728),
    [sym_out] = ACTIONS(4728),
    [sym_ref] = ACTIONS(4728),
    [sym_shared] = ACTIONS(4728),
    [sym_throw] = ACTIONS(4728),
    [sym_typeid] = ACTIONS(4728),
    [sym_typeof] = ACTIONS(4728),
    [sym_traits] = ACTIONS(4728),
    [sym_vector] = ACTIONS(4728),
    [sym_void] = ACTIONS(4728),
    [anon_sym_BQUOTE] = ACTIONS(4730),
    [anon_sym_r_DQUOTE] = ACTIONS(4730),
    [anon_sym_x_DQUOTE] = ACTIONS(4730),
    [anon_sym_DQUOTE] = ACTIONS(4730),
    [anon_sym_i_BQUOTE] = ACTIONS(4730),
    [anon_sym_i_DQUOTE] = ACTIONS(4730),
    [anon_sym_iq_LBRACE] = ACTIONS(4730),
    [aux_sym_char_literal_token1] = ACTIONS(4730),
    [anon_sym_SQUOTE] = ACTIONS(4728),
    [anon_sym___DATE__] = ACTIONS(4728),
    [anon_sym___FILE__] = ACTIONS(4728),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4728),
    [anon_sym___FUNCTION__] = ACTIONS(4728),
    [anon_sym___LINE__] = ACTIONS(4728),
    [anon_sym___MODULE__] = ACTIONS(4728),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4728),
    [anon_sym___TIME__] = ACTIONS(4728),
    [anon_sym___TIMESTAMP__] = ACTIONS(4728),
    [anon_sym___VENDOR__] = ACTIONS(4728),
    [anon_sym___VERSION__] = ACTIONS(4728),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4730),
    [sym_float_literal] = ACTIONS(4730),
    [sym__string] = ACTIONS(4730),
  },
  [2175] = {
    [sym_identifier] = ACTIONS(4339),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4341),
    [anon_sym_LBRACE] = ACTIONS(4341),
    [anon_sym_DOT] = ACTIONS(4341),
    [anon_sym_AMP] = ACTIONS(4341),
    [anon_sym_DASH] = ACTIONS(4339),
    [anon_sym_DASH_DASH] = ACTIONS(4341),
    [anon_sym_PLUS] = ACTIONS(4339),
    [anon_sym_PLUS_PLUS] = ACTIONS(4341),
    [anon_sym_BANG] = ACTIONS(4341),
    [anon_sym_LPAREN] = ACTIONS(4341),
    [anon_sym_RPAREN] = ACTIONS(4341),
    [anon_sym_LBRACK] = ACTIONS(4341),
    [anon_sym_SEMI] = ACTIONS(4341),
    [anon_sym_DOLLAR] = ACTIONS(4341),
    [anon_sym_STAR] = ACTIONS(4341),
    [anon_sym_TILDE] = ACTIONS(4341),
    [sym_bool] = ACTIONS(4339),
    [sym_byte] = ACTIONS(4339),
    [sym_ubyte] = ACTIONS(4339),
    [sym_char] = ACTIONS(4339),
    [sym_short] = ACTIONS(4339),
    [sym_ushort] = ACTIONS(4339),
    [sym_int] = ACTIONS(4339),
    [sym_uint] = ACTIONS(4339),
    [sym_long] = ACTIONS(4339),
    [sym_ulong] = ACTIONS(4339),
    [sym_cent] = ACTIONS(4339),
    [sym_ucent] = ACTIONS(4339),
    [sym_wchar] = ACTIONS(4339),
    [sym_dchar] = ACTIONS(4339),
    [sym_float] = ACTIONS(4339),
    [sym_double] = ACTIONS(4339),
    [sym_real] = ACTIONS(4339),
    [sym_ifloat] = ACTIONS(4339),
    [sym_idouble] = ACTIONS(4339),
    [sym_ireal] = ACTIONS(4339),
    [sym_cfloat] = ACTIONS(4339),
    [sym_cdouble] = ACTIONS(4339),
    [sym_creal] = ACTIONS(4339),
    [sym_size_t] = ACTIONS(4339),
    [sym_ptrdiff_t] = ACTIONS(4339),
    [sym_string] = ACTIONS(4339),
    [sym_cstring] = ACTIONS(4339),
    [sym_dstring] = ACTIONS(4339),
    [sym_wstring] = ACTIONS(4339),
    [sym_noreturn] = ACTIONS(4339),
    [sym_true] = ACTIONS(4339),
    [sym_false] = ACTIONS(4339),
    [sym_null] = ACTIONS(4339),
    [sym_super] = ACTIONS(4339),
    [sym_this] = ACTIONS(4339),
    [sym_assert] = ACTIONS(4339),
    [sym_auto] = ACTIONS(4339),
    [sym_cast] = ACTIONS(4339),
    [sym_catch] = ACTIONS(4339),
    [sym_const] = ACTIONS(4339),
    [sym_delegate] = ACTIONS(4339),
    [sym_delete] = ACTIONS(4339),
    [sym_do] = ACTIONS(4339),
    [sym_else] = ACTIONS(4339),
    [sym_finally] = ACTIONS(4339),
    [sym_function] = ACTIONS(4339),
    [sym_immutable] = ACTIONS(4339),
    [sym_import] = ACTIONS(4339),
    [sym_in] = ACTIONS(4339),
    [sym_inout] = ACTIONS(4339),
    [sym_is] = ACTIONS(4339),
    [sym_mixin] = ACTIONS(4339),
    [sym_new] = ACTIONS(4339),
    [sym_out] = ACTIONS(4339),
    [sym_ref] = ACTIONS(4339),
    [sym_shared] = ACTIONS(4339),
    [sym_throw] = ACTIONS(4339),
    [sym_typeid] = ACTIONS(4339),
    [sym_typeof] = ACTIONS(4339),
    [sym_traits] = ACTIONS(4339),
    [sym_vector] = ACTIONS(4339),
    [sym_void] = ACTIONS(4339),
    [anon_sym_BQUOTE] = ACTIONS(4341),
    [anon_sym_r_DQUOTE] = ACTIONS(4341),
    [anon_sym_x_DQUOTE] = ACTIONS(4341),
    [anon_sym_DQUOTE] = ACTIONS(4341),
    [anon_sym_i_BQUOTE] = ACTIONS(4341),
    [anon_sym_i_DQUOTE] = ACTIONS(4341),
    [anon_sym_iq_LBRACE] = ACTIONS(4341),
    [aux_sym_char_literal_token1] = ACTIONS(4341),
    [anon_sym_SQUOTE] = ACTIONS(4339),
    [anon_sym___DATE__] = ACTIONS(4339),
    [anon_sym___FILE__] = ACTIONS(4339),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4339),
    [anon_sym___FUNCTION__] = ACTIONS(4339),
    [anon_sym___LINE__] = ACTIONS(4339),
    [anon_sym___MODULE__] = ACTIONS(4339),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4339),
    [anon_sym___TIME__] = ACTIONS(4339),
    [anon_sym___TIMESTAMP__] = ACTIONS(4339),
    [anon_sym___VENDOR__] = ACTIONS(4339),
    [anon_sym___VERSION__] = ACTIONS(4339),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4341),
    [sym_float_literal] = ACTIONS(4341),
    [sym__string] = ACTIONS(4341),
  },
  [2176] = {
    [sym_identifier] = ACTIONS(4327),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4329),
    [anon_sym_LBRACE] = ACTIONS(4329),
    [anon_sym_DOT] = ACTIONS(4329),
    [anon_sym_AMP] = ACTIONS(4329),
    [anon_sym_DASH] = ACTIONS(4327),
    [anon_sym_DASH_DASH] = ACTIONS(4329),
    [anon_sym_PLUS] = ACTIONS(4327),
    [anon_sym_PLUS_PLUS] = ACTIONS(4329),
    [anon_sym_BANG] = ACTIONS(4329),
    [anon_sym_LPAREN] = ACTIONS(4329),
    [anon_sym_RPAREN] = ACTIONS(4329),
    [anon_sym_LBRACK] = ACTIONS(4329),
    [anon_sym_SEMI] = ACTIONS(4329),
    [anon_sym_DOLLAR] = ACTIONS(4329),
    [anon_sym_STAR] = ACTIONS(4329),
    [anon_sym_TILDE] = ACTIONS(4329),
    [sym_bool] = ACTIONS(4327),
    [sym_byte] = ACTIONS(4327),
    [sym_ubyte] = ACTIONS(4327),
    [sym_char] = ACTIONS(4327),
    [sym_short] = ACTIONS(4327),
    [sym_ushort] = ACTIONS(4327),
    [sym_int] = ACTIONS(4327),
    [sym_uint] = ACTIONS(4327),
    [sym_long] = ACTIONS(4327),
    [sym_ulong] = ACTIONS(4327),
    [sym_cent] = ACTIONS(4327),
    [sym_ucent] = ACTIONS(4327),
    [sym_wchar] = ACTIONS(4327),
    [sym_dchar] = ACTIONS(4327),
    [sym_float] = ACTIONS(4327),
    [sym_double] = ACTIONS(4327),
    [sym_real] = ACTIONS(4327),
    [sym_ifloat] = ACTIONS(4327),
    [sym_idouble] = ACTIONS(4327),
    [sym_ireal] = ACTIONS(4327),
    [sym_cfloat] = ACTIONS(4327),
    [sym_cdouble] = ACTIONS(4327),
    [sym_creal] = ACTIONS(4327),
    [sym_size_t] = ACTIONS(4327),
    [sym_ptrdiff_t] = ACTIONS(4327),
    [sym_string] = ACTIONS(4327),
    [sym_cstring] = ACTIONS(4327),
    [sym_dstring] = ACTIONS(4327),
    [sym_wstring] = ACTIONS(4327),
    [sym_noreturn] = ACTIONS(4327),
    [sym_true] = ACTIONS(4327),
    [sym_false] = ACTIONS(4327),
    [sym_null] = ACTIONS(4327),
    [sym_super] = ACTIONS(4327),
    [sym_this] = ACTIONS(4327),
    [sym_assert] = ACTIONS(4327),
    [sym_auto] = ACTIONS(4327),
    [sym_cast] = ACTIONS(4327),
    [sym_catch] = ACTIONS(4327),
    [sym_const] = ACTIONS(4327),
    [sym_delegate] = ACTIONS(4327),
    [sym_delete] = ACTIONS(4327),
    [sym_do] = ACTIONS(4327),
    [sym_else] = ACTIONS(4327),
    [sym_finally] = ACTIONS(4327),
    [sym_function] = ACTIONS(4327),
    [sym_immutable] = ACTIONS(4327),
    [sym_import] = ACTIONS(4327),
    [sym_in] = ACTIONS(4327),
    [sym_inout] = ACTIONS(4327),
    [sym_is] = ACTIONS(4327),
    [sym_mixin] = ACTIONS(4327),
    [sym_new] = ACTIONS(4327),
    [sym_out] = ACTIONS(4327),
    [sym_ref] = ACTIONS(4327),
    [sym_shared] = ACTIONS(4327),
    [sym_throw] = ACTIONS(4327),
    [sym_typeid] = ACTIONS(4327),
    [sym_typeof] = ACTIONS(4327),
    [sym_traits] = ACTIONS(4327),
    [sym_vector] = ACTIONS(4327),
    [sym_void] = ACTIONS(4327),
    [anon_sym_BQUOTE] = ACTIONS(4329),
    [anon_sym_r_DQUOTE] = ACTIONS(4329),
    [anon_sym_x_DQUOTE] = ACTIONS(4329),
    [anon_sym_DQUOTE] = ACTIONS(4329),
    [anon_sym_i_BQUOTE] = ACTIONS(4329),
    [anon_sym_i_DQUOTE] = ACTIONS(4329),
    [anon_sym_iq_LBRACE] = ACTIONS(4329),
    [aux_sym_char_literal_token1] = ACTIONS(4329),
    [anon_sym_SQUOTE] = ACTIONS(4327),
    [anon_sym___DATE__] = ACTIONS(4327),
    [anon_sym___FILE__] = ACTIONS(4327),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4327),
    [anon_sym___FUNCTION__] = ACTIONS(4327),
    [anon_sym___LINE__] = ACTIONS(4327),
    [anon_sym___MODULE__] = ACTIONS(4327),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4327),
    [anon_sym___TIME__] = ACTIONS(4327),
    [anon_sym___TIMESTAMP__] = ACTIONS(4327),
    [anon_sym___VENDOR__] = ACTIONS(4327),
    [anon_sym___VERSION__] = ACTIONS(4327),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4329),
    [sym_float_literal] = ACTIONS(4329),
    [sym__string] = ACTIONS(4329),
  },
  [2177] = {
    [sym_identifier] = ACTIONS(4313),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4315),
    [anon_sym_LBRACE] = ACTIONS(4315),
    [anon_sym_DOT] = ACTIONS(4315),
    [anon_sym_AMP] = ACTIONS(4315),
    [anon_sym_DASH] = ACTIONS(4313),
    [anon_sym_DASH_DASH] = ACTIONS(4315),
    [anon_sym_PLUS] = ACTIONS(4313),
    [anon_sym_PLUS_PLUS] = ACTIONS(4315),
    [anon_sym_BANG] = ACTIONS(4315),
    [anon_sym_LPAREN] = ACTIONS(4315),
    [anon_sym_RPAREN] = ACTIONS(4315),
    [anon_sym_LBRACK] = ACTIONS(4315),
    [anon_sym_SEMI] = ACTIONS(4315),
    [anon_sym_DOLLAR] = ACTIONS(4315),
    [anon_sym_STAR] = ACTIONS(4315),
    [anon_sym_TILDE] = ACTIONS(4315),
    [sym_bool] = ACTIONS(4313),
    [sym_byte] = ACTIONS(4313),
    [sym_ubyte] = ACTIONS(4313),
    [sym_char] = ACTIONS(4313),
    [sym_short] = ACTIONS(4313),
    [sym_ushort] = ACTIONS(4313),
    [sym_int] = ACTIONS(4313),
    [sym_uint] = ACTIONS(4313),
    [sym_long] = ACTIONS(4313),
    [sym_ulong] = ACTIONS(4313),
    [sym_cent] = ACTIONS(4313),
    [sym_ucent] = ACTIONS(4313),
    [sym_wchar] = ACTIONS(4313),
    [sym_dchar] = ACTIONS(4313),
    [sym_float] = ACTIONS(4313),
    [sym_double] = ACTIONS(4313),
    [sym_real] = ACTIONS(4313),
    [sym_ifloat] = ACTIONS(4313),
    [sym_idouble] = ACTIONS(4313),
    [sym_ireal] = ACTIONS(4313),
    [sym_cfloat] = ACTIONS(4313),
    [sym_cdouble] = ACTIONS(4313),
    [sym_creal] = ACTIONS(4313),
    [sym_size_t] = ACTIONS(4313),
    [sym_ptrdiff_t] = ACTIONS(4313),
    [sym_string] = ACTIONS(4313),
    [sym_cstring] = ACTIONS(4313),
    [sym_dstring] = ACTIONS(4313),
    [sym_wstring] = ACTIONS(4313),
    [sym_noreturn] = ACTIONS(4313),
    [sym_true] = ACTIONS(4313),
    [sym_false] = ACTIONS(4313),
    [sym_null] = ACTIONS(4313),
    [sym_super] = ACTIONS(4313),
    [sym_this] = ACTIONS(4313),
    [sym_assert] = ACTIONS(4313),
    [sym_auto] = ACTIONS(4313),
    [sym_cast] = ACTIONS(4313),
    [sym_catch] = ACTIONS(4313),
    [sym_const] = ACTIONS(4313),
    [sym_delegate] = ACTIONS(4313),
    [sym_delete] = ACTIONS(4313),
    [sym_do] = ACTIONS(4313),
    [sym_else] = ACTIONS(4313),
    [sym_finally] = ACTIONS(4313),
    [sym_function] = ACTIONS(4313),
    [sym_immutable] = ACTIONS(4313),
    [sym_import] = ACTIONS(4313),
    [sym_in] = ACTIONS(4313),
    [sym_inout] = ACTIONS(4313),
    [sym_is] = ACTIONS(4313),
    [sym_mixin] = ACTIONS(4313),
    [sym_new] = ACTIONS(4313),
    [sym_out] = ACTIONS(4313),
    [sym_ref] = ACTIONS(4313),
    [sym_shared] = ACTIONS(4313),
    [sym_throw] = ACTIONS(4313),
    [sym_typeid] = ACTIONS(4313),
    [sym_typeof] = ACTIONS(4313),
    [sym_traits] = ACTIONS(4313),
    [sym_vector] = ACTIONS(4313),
    [sym_void] = ACTIONS(4313),
    [anon_sym_BQUOTE] = ACTIONS(4315),
    [anon_sym_r_DQUOTE] = ACTIONS(4315),
    [anon_sym_x_DQUOTE] = ACTIONS(4315),
    [anon_sym_DQUOTE] = ACTIONS(4315),
    [anon_sym_i_BQUOTE] = ACTIONS(4315),
    [anon_sym_i_DQUOTE] = ACTIONS(4315),
    [anon_sym_iq_LBRACE] = ACTIONS(4315),
    [aux_sym_char_literal_token1] = ACTIONS(4315),
    [anon_sym_SQUOTE] = ACTIONS(4313),
    [anon_sym___DATE__] = ACTIONS(4313),
    [anon_sym___FILE__] = ACTIONS(4313),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4313),
    [anon_sym___FUNCTION__] = ACTIONS(4313),
    [anon_sym___LINE__] = ACTIONS(4313),
    [anon_sym___MODULE__] = ACTIONS(4313),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4313),
    [anon_sym___TIME__] = ACTIONS(4313),
    [anon_sym___TIMESTAMP__] = ACTIONS(4313),
    [anon_sym___VENDOR__] = ACTIONS(4313),
    [anon_sym___VERSION__] = ACTIONS(4313),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4315),
    [sym_float_literal] = ACTIONS(4315),
    [sym__string] = ACTIONS(4315),
  },
  [2178] = {
    [sym_identifier] = ACTIONS(4740),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4743),
    [anon_sym_LBRACE] = ACTIONS(4743),
    [anon_sym_DOT] = ACTIONS(4743),
    [anon_sym_AMP] = ACTIONS(4743),
    [anon_sym_DASH] = ACTIONS(4740),
    [anon_sym_DASH_DASH] = ACTIONS(4743),
    [anon_sym_PLUS] = ACTIONS(4740),
    [anon_sym_PLUS_PLUS] = ACTIONS(4743),
    [anon_sym_BANG] = ACTIONS(4743),
    [anon_sym_LPAREN] = ACTIONS(4743),
    [anon_sym_RPAREN] = ACTIONS(4743),
    [anon_sym_LBRACK] = ACTIONS(4743),
    [anon_sym_SEMI] = ACTIONS(4743),
    [anon_sym_DOLLAR] = ACTIONS(4743),
    [anon_sym_STAR] = ACTIONS(4743),
    [anon_sym_TILDE] = ACTIONS(4743),
    [sym_bool] = ACTIONS(4740),
    [sym_byte] = ACTIONS(4740),
    [sym_ubyte] = ACTIONS(4740),
    [sym_char] = ACTIONS(4740),
    [sym_short] = ACTIONS(4740),
    [sym_ushort] = ACTIONS(4740),
    [sym_int] = ACTIONS(4740),
    [sym_uint] = ACTIONS(4740),
    [sym_long] = ACTIONS(4740),
    [sym_ulong] = ACTIONS(4740),
    [sym_cent] = ACTIONS(4740),
    [sym_ucent] = ACTIONS(4740),
    [sym_wchar] = ACTIONS(4740),
    [sym_dchar] = ACTIONS(4740),
    [sym_float] = ACTIONS(4740),
    [sym_double] = ACTIONS(4740),
    [sym_real] = ACTIONS(4740),
    [sym_ifloat] = ACTIONS(4740),
    [sym_idouble] = ACTIONS(4740),
    [sym_ireal] = ACTIONS(4740),
    [sym_cfloat] = ACTIONS(4740),
    [sym_cdouble] = ACTIONS(4740),
    [sym_creal] = ACTIONS(4740),
    [sym_size_t] = ACTIONS(4740),
    [sym_ptrdiff_t] = ACTIONS(4740),
    [sym_string] = ACTIONS(4740),
    [sym_cstring] = ACTIONS(4740),
    [sym_dstring] = ACTIONS(4740),
    [sym_wstring] = ACTIONS(4740),
    [sym_noreturn] = ACTIONS(4740),
    [sym_true] = ACTIONS(4740),
    [sym_false] = ACTIONS(4740),
    [sym_null] = ACTIONS(4740),
    [sym_super] = ACTIONS(4740),
    [sym_this] = ACTIONS(4740),
    [sym_assert] = ACTIONS(4740),
    [sym_auto] = ACTIONS(4740),
    [sym_cast] = ACTIONS(4740),
    [sym_catch] = ACTIONS(4740),
    [sym_const] = ACTIONS(4740),
    [sym_delegate] = ACTIONS(4740),
    [sym_delete] = ACTIONS(4740),
    [sym_do] = ACTIONS(4740),
    [sym_else] = ACTIONS(4740),
    [sym_finally] = ACTIONS(4740),
    [sym_function] = ACTIONS(4740),
    [sym_immutable] = ACTIONS(4740),
    [sym_import] = ACTIONS(4740),
    [sym_in] = ACTIONS(4740),
    [sym_inout] = ACTIONS(4740),
    [sym_is] = ACTIONS(4740),
    [sym_mixin] = ACTIONS(4740),
    [sym_new] = ACTIONS(4740),
    [sym_out] = ACTIONS(4740),
    [sym_ref] = ACTIONS(4740),
    [sym_shared] = ACTIONS(4740),
    [sym_throw] = ACTIONS(4740),
    [sym_typeid] = ACTIONS(4740),
    [sym_typeof] = ACTIONS(4740),
    [sym_traits] = ACTIONS(4740),
    [sym_vector] = ACTIONS(4740),
    [sym_void] = ACTIONS(4740),
    [anon_sym_BQUOTE] = ACTIONS(4743),
    [anon_sym_r_DQUOTE] = ACTIONS(4743),
    [anon_sym_x_DQUOTE] = ACTIONS(4743),
    [anon_sym_DQUOTE] = ACTIONS(4743),
    [anon_sym_i_BQUOTE] = ACTIONS(4743),
    [anon_sym_i_DQUOTE] = ACTIONS(4743),
    [anon_sym_iq_LBRACE] = ACTIONS(4743),
    [aux_sym_char_literal_token1] = ACTIONS(4743),
    [anon_sym_SQUOTE] = ACTIONS(4740),
    [anon_sym___DATE__] = ACTIONS(4740),
    [anon_sym___FILE__] = ACTIONS(4740),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4740),
    [anon_sym___FUNCTION__] = ACTIONS(4740),
    [anon_sym___LINE__] = ACTIONS(4740),
    [anon_sym___MODULE__] = ACTIONS(4740),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4740),
    [anon_sym___TIME__] = ACTIONS(4740),
    [anon_sym___TIMESTAMP__] = ACTIONS(4740),
    [anon_sym___VENDOR__] = ACTIONS(4740),
    [anon_sym___VERSION__] = ACTIONS(4740),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4743),
    [sym_float_literal] = ACTIONS(4743),
    [sym__string] = ACTIONS(4743),
  },
  [2179] = {
    [sym_identifier] = ACTIONS(4762),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4764),
    [anon_sym_LBRACE] = ACTIONS(4764),
    [anon_sym_DOT] = ACTIONS(4764),
    [anon_sym_AMP] = ACTIONS(4764),
    [anon_sym_DASH] = ACTIONS(4762),
    [anon_sym_DASH_DASH] = ACTIONS(4764),
    [anon_sym_PLUS] = ACTIONS(4762),
    [anon_sym_PLUS_PLUS] = ACTIONS(4764),
    [anon_sym_BANG] = ACTIONS(4764),
    [anon_sym_LPAREN] = ACTIONS(4764),
    [anon_sym_RPAREN] = ACTIONS(4764),
    [anon_sym_LBRACK] = ACTIONS(4764),
    [anon_sym_SEMI] = ACTIONS(4764),
    [anon_sym_DOLLAR] = ACTIONS(4764),
    [anon_sym_STAR] = ACTIONS(4764),
    [anon_sym_TILDE] = ACTIONS(4764),
    [sym_bool] = ACTIONS(4762),
    [sym_byte] = ACTIONS(4762),
    [sym_ubyte] = ACTIONS(4762),
    [sym_char] = ACTIONS(4762),
    [sym_short] = ACTIONS(4762),
    [sym_ushort] = ACTIONS(4762),
    [sym_int] = ACTIONS(4762),
    [sym_uint] = ACTIONS(4762),
    [sym_long] = ACTIONS(4762),
    [sym_ulong] = ACTIONS(4762),
    [sym_cent] = ACTIONS(4762),
    [sym_ucent] = ACTIONS(4762),
    [sym_wchar] = ACTIONS(4762),
    [sym_dchar] = ACTIONS(4762),
    [sym_float] = ACTIONS(4762),
    [sym_double] = ACTIONS(4762),
    [sym_real] = ACTIONS(4762),
    [sym_ifloat] = ACTIONS(4762),
    [sym_idouble] = ACTIONS(4762),
    [sym_ireal] = ACTIONS(4762),
    [sym_cfloat] = ACTIONS(4762),
    [sym_cdouble] = ACTIONS(4762),
    [sym_creal] = ACTIONS(4762),
    [sym_size_t] = ACTIONS(4762),
    [sym_ptrdiff_t] = ACTIONS(4762),
    [sym_string] = ACTIONS(4762),
    [sym_cstring] = ACTIONS(4762),
    [sym_dstring] = ACTIONS(4762),
    [sym_wstring] = ACTIONS(4762),
    [sym_noreturn] = ACTIONS(4762),
    [sym_true] = ACTIONS(4762),
    [sym_false] = ACTIONS(4762),
    [sym_null] = ACTIONS(4762),
    [sym_super] = ACTIONS(4762),
    [sym_this] = ACTIONS(4762),
    [sym_assert] = ACTIONS(4762),
    [sym_auto] = ACTIONS(4762),
    [sym_cast] = ACTIONS(4762),
    [sym_catch] = ACTIONS(4762),
    [sym_const] = ACTIONS(4762),
    [sym_delegate] = ACTIONS(4762),
    [sym_delete] = ACTIONS(4762),
    [sym_do] = ACTIONS(4762),
    [sym_else] = ACTIONS(4762),
    [sym_finally] = ACTIONS(4762),
    [sym_function] = ACTIONS(4762),
    [sym_immutable] = ACTIONS(4762),
    [sym_import] = ACTIONS(4762),
    [sym_in] = ACTIONS(4762),
    [sym_inout] = ACTIONS(4762),
    [sym_is] = ACTIONS(4762),
    [sym_mixin] = ACTIONS(4762),
    [sym_new] = ACTIONS(4762),
    [sym_out] = ACTIONS(4762),
    [sym_ref] = ACTIONS(4762),
    [sym_shared] = ACTIONS(4762),
    [sym_throw] = ACTIONS(4762),
    [sym_typeid] = ACTIONS(4762),
    [sym_typeof] = ACTIONS(4762),
    [sym_traits] = ACTIONS(4762),
    [sym_vector] = ACTIONS(4762),
    [sym_void] = ACTIONS(4762),
    [anon_sym_BQUOTE] = ACTIONS(4764),
    [anon_sym_r_DQUOTE] = ACTIONS(4764),
    [anon_sym_x_DQUOTE] = ACTIONS(4764),
    [anon_sym_DQUOTE] = ACTIONS(4764),
    [anon_sym_i_BQUOTE] = ACTIONS(4764),
    [anon_sym_i_DQUOTE] = ACTIONS(4764),
    [anon_sym_iq_LBRACE] = ACTIONS(4764),
    [aux_sym_char_literal_token1] = ACTIONS(4764),
    [anon_sym_SQUOTE] = ACTIONS(4762),
    [anon_sym___DATE__] = ACTIONS(4762),
    [anon_sym___FILE__] = ACTIONS(4762),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4762),
    [anon_sym___FUNCTION__] = ACTIONS(4762),
    [anon_sym___LINE__] = ACTIONS(4762),
    [anon_sym___MODULE__] = ACTIONS(4762),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4762),
    [anon_sym___TIME__] = ACTIONS(4762),
    [anon_sym___TIMESTAMP__] = ACTIONS(4762),
    [anon_sym___VENDOR__] = ACTIONS(4762),
    [anon_sym___VERSION__] = ACTIONS(4762),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4764),
    [sym_float_literal] = ACTIONS(4764),
    [sym__string] = ACTIONS(4764),
  },
  [2180] = {
    [sym_identifier] = ACTIONS(4293),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4295),
    [anon_sym_LBRACE] = ACTIONS(4295),
    [anon_sym_DOT] = ACTIONS(4295),
    [anon_sym_AMP] = ACTIONS(4295),
    [anon_sym_DASH] = ACTIONS(4293),
    [anon_sym_DASH_DASH] = ACTIONS(4295),
    [anon_sym_PLUS] = ACTIONS(4293),
    [anon_sym_PLUS_PLUS] = ACTIONS(4295),
    [anon_sym_BANG] = ACTIONS(4295),
    [anon_sym_LPAREN] = ACTIONS(4295),
    [anon_sym_RPAREN] = ACTIONS(4295),
    [anon_sym_LBRACK] = ACTIONS(4295),
    [anon_sym_SEMI] = ACTIONS(4295),
    [anon_sym_DOLLAR] = ACTIONS(4295),
    [anon_sym_STAR] = ACTIONS(4295),
    [anon_sym_TILDE] = ACTIONS(4295),
    [sym_bool] = ACTIONS(4293),
    [sym_byte] = ACTIONS(4293),
    [sym_ubyte] = ACTIONS(4293),
    [sym_char] = ACTIONS(4293),
    [sym_short] = ACTIONS(4293),
    [sym_ushort] = ACTIONS(4293),
    [sym_int] = ACTIONS(4293),
    [sym_uint] = ACTIONS(4293),
    [sym_long] = ACTIONS(4293),
    [sym_ulong] = ACTIONS(4293),
    [sym_cent] = ACTIONS(4293),
    [sym_ucent] = ACTIONS(4293),
    [sym_wchar] = ACTIONS(4293),
    [sym_dchar] = ACTIONS(4293),
    [sym_float] = ACTIONS(4293),
    [sym_double] = ACTIONS(4293),
    [sym_real] = ACTIONS(4293),
    [sym_ifloat] = ACTIONS(4293),
    [sym_idouble] = ACTIONS(4293),
    [sym_ireal] = ACTIONS(4293),
    [sym_cfloat] = ACTIONS(4293),
    [sym_cdouble] = ACTIONS(4293),
    [sym_creal] = ACTIONS(4293),
    [sym_size_t] = ACTIONS(4293),
    [sym_ptrdiff_t] = ACTIONS(4293),
    [sym_string] = ACTIONS(4293),
    [sym_cstring] = ACTIONS(4293),
    [sym_dstring] = ACTIONS(4293),
    [sym_wstring] = ACTIONS(4293),
    [sym_noreturn] = ACTIONS(4293),
    [sym_true] = ACTIONS(4293),
    [sym_false] = ACTIONS(4293),
    [sym_null] = ACTIONS(4293),
    [sym_super] = ACTIONS(4293),
    [sym_this] = ACTIONS(4293),
    [sym_assert] = ACTIONS(4293),
    [sym_auto] = ACTIONS(4293),
    [sym_cast] = ACTIONS(4293),
    [sym_catch] = ACTIONS(4293),
    [sym_const] = ACTIONS(4293),
    [sym_delegate] = ACTIONS(4293),
    [sym_delete] = ACTIONS(4293),
    [sym_do] = ACTIONS(4293),
    [sym_else] = ACTIONS(4293),
    [sym_finally] = ACTIONS(4293),
    [sym_function] = ACTIONS(4293),
    [sym_immutable] = ACTIONS(4293),
    [sym_import] = ACTIONS(4293),
    [sym_in] = ACTIONS(4293),
    [sym_inout] = ACTIONS(4293),
    [sym_is] = ACTIONS(4293),
    [sym_mixin] = ACTIONS(4293),
    [sym_new] = ACTIONS(4293),
    [sym_out] = ACTIONS(4293),
    [sym_ref] = ACTIONS(4293),
    [sym_shared] = ACTIONS(4293),
    [sym_throw] = ACTIONS(4293),
    [sym_typeid] = ACTIONS(4293),
    [sym_typeof] = ACTIONS(4293),
    [sym_traits] = ACTIONS(4293),
    [sym_vector] = ACTIONS(4293),
    [sym_void] = ACTIONS(4293),
    [anon_sym_BQUOTE] = ACTIONS(4295),
    [anon_sym_r_DQUOTE] = ACTIONS(4295),
    [anon_sym_x_DQUOTE] = ACTIONS(4295),
    [anon_sym_DQUOTE] = ACTIONS(4295),
    [anon_sym_i_BQUOTE] = ACTIONS(4295),
    [anon_sym_i_DQUOTE] = ACTIONS(4295),
    [anon_sym_iq_LBRACE] = ACTIONS(4295),
    [aux_sym_char_literal_token1] = ACTIONS(4295),
    [anon_sym_SQUOTE] = ACTIONS(4293),
    [anon_sym___DATE__] = ACTIONS(4293),
    [anon_sym___FILE__] = ACTIONS(4293),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4293),
    [anon_sym___FUNCTION__] = ACTIONS(4293),
    [anon_sym___LINE__] = ACTIONS(4293),
    [anon_sym___MODULE__] = ACTIONS(4293),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4293),
    [anon_sym___TIME__] = ACTIONS(4293),
    [anon_sym___TIMESTAMP__] = ACTIONS(4293),
    [anon_sym___VENDOR__] = ACTIONS(4293),
    [anon_sym___VERSION__] = ACTIONS(4293),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4295),
    [sym_float_literal] = ACTIONS(4295),
    [sym__string] = ACTIONS(4295),
  },
  [2181] = {
    [sym_identifier] = ACTIONS(4782),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4785),
    [anon_sym_LBRACE] = ACTIONS(4785),
    [anon_sym_DOT] = ACTIONS(4785),
    [anon_sym_AMP] = ACTIONS(4785),
    [anon_sym_DASH] = ACTIONS(4782),
    [anon_sym_DASH_DASH] = ACTIONS(4785),
    [anon_sym_PLUS] = ACTIONS(4782),
    [anon_sym_PLUS_PLUS] = ACTIONS(4785),
    [anon_sym_BANG] = ACTIONS(4785),
    [anon_sym_LPAREN] = ACTIONS(4785),
    [anon_sym_RPAREN] = ACTIONS(4785),
    [anon_sym_LBRACK] = ACTIONS(4785),
    [anon_sym_SEMI] = ACTIONS(4785),
    [anon_sym_DOLLAR] = ACTIONS(4785),
    [anon_sym_STAR] = ACTIONS(4785),
    [anon_sym_TILDE] = ACTIONS(4785),
    [sym_bool] = ACTIONS(4782),
    [sym_byte] = ACTIONS(4782),
    [sym_ubyte] = ACTIONS(4782),
    [sym_char] = ACTIONS(4782),
    [sym_short] = ACTIONS(4782),
    [sym_ushort] = ACTIONS(4782),
    [sym_int] = ACTIONS(4782),
    [sym_uint] = ACTIONS(4782),
    [sym_long] = ACTIONS(4782),
    [sym_ulong] = ACTIONS(4782),
    [sym_cent] = ACTIONS(4782),
    [sym_ucent] = ACTIONS(4782),
    [sym_wchar] = ACTIONS(4782),
    [sym_dchar] = ACTIONS(4782),
    [sym_float] = ACTIONS(4782),
    [sym_double] = ACTIONS(4782),
    [sym_real] = ACTIONS(4782),
    [sym_ifloat] = ACTIONS(4782),
    [sym_idouble] = ACTIONS(4782),
    [sym_ireal] = ACTIONS(4782),
    [sym_cfloat] = ACTIONS(4782),
    [sym_cdouble] = ACTIONS(4782),
    [sym_creal] = ACTIONS(4782),
    [sym_size_t] = ACTIONS(4782),
    [sym_ptrdiff_t] = ACTIONS(4782),
    [sym_string] = ACTIONS(4782),
    [sym_cstring] = ACTIONS(4782),
    [sym_dstring] = ACTIONS(4782),
    [sym_wstring] = ACTIONS(4782),
    [sym_noreturn] = ACTIONS(4782),
    [sym_true] = ACTIONS(4782),
    [sym_false] = ACTIONS(4782),
    [sym_null] = ACTIONS(4782),
    [sym_super] = ACTIONS(4782),
    [sym_this] = ACTIONS(4782),
    [sym_assert] = ACTIONS(4782),
    [sym_auto] = ACTIONS(4782),
    [sym_cast] = ACTIONS(4782),
    [sym_catch] = ACTIONS(4782),
    [sym_const] = ACTIONS(4782),
    [sym_delegate] = ACTIONS(4782),
    [sym_delete] = ACTIONS(4782),
    [sym_do] = ACTIONS(4782),
    [sym_else] = ACTIONS(4782),
    [sym_finally] = ACTIONS(4782),
    [sym_function] = ACTIONS(4782),
    [sym_immutable] = ACTIONS(4782),
    [sym_import] = ACTIONS(4782),
    [sym_in] = ACTIONS(4782),
    [sym_inout] = ACTIONS(4782),
    [sym_is] = ACTIONS(4782),
    [sym_mixin] = ACTIONS(4782),
    [sym_new] = ACTIONS(4782),
    [sym_out] = ACTIONS(4782),
    [sym_ref] = ACTIONS(4782),
    [sym_shared] = ACTIONS(4782),
    [sym_throw] = ACTIONS(4782),
    [sym_typeid] = ACTIONS(4782),
    [sym_typeof] = ACTIONS(4782),
    [sym_traits] = ACTIONS(4782),
    [sym_vector] = ACTIONS(4782),
    [sym_void] = ACTIONS(4782),
    [anon_sym_BQUOTE] = ACTIONS(4785),
    [anon_sym_r_DQUOTE] = ACTIONS(4785),
    [anon_sym_x_DQUOTE] = ACTIONS(4785),
    [anon_sym_DQUOTE] = ACTIONS(4785),
    [anon_sym_i_BQUOTE] = ACTIONS(4785),
    [anon_sym_i_DQUOTE] = ACTIONS(4785),
    [anon_sym_iq_LBRACE] = ACTIONS(4785),
    [aux_sym_char_literal_token1] = ACTIONS(4785),
    [anon_sym_SQUOTE] = ACTIONS(4782),
    [anon_sym___DATE__] = ACTIONS(4782),
    [anon_sym___FILE__] = ACTIONS(4782),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4782),
    [anon_sym___FUNCTION__] = ACTIONS(4782),
    [anon_sym___LINE__] = ACTIONS(4782),
    [anon_sym___MODULE__] = ACTIONS(4782),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4782),
    [anon_sym___TIME__] = ACTIONS(4782),
    [anon_sym___TIMESTAMP__] = ACTIONS(4782),
    [anon_sym___VENDOR__] = ACTIONS(4782),
    [anon_sym___VERSION__] = ACTIONS(4782),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4785),
    [sym_float_literal] = ACTIONS(4785),
    [sym__string] = ACTIONS(4785),
  },
  [2182] = {
    [sym_identifier] = ACTIONS(4802),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4804),
    [anon_sym_LBRACE] = ACTIONS(4804),
    [anon_sym_DOT] = ACTIONS(4804),
    [anon_sym_AMP] = ACTIONS(4804),
    [anon_sym_DASH] = ACTIONS(4802),
    [anon_sym_DASH_DASH] = ACTIONS(4804),
    [anon_sym_PLUS] = ACTIONS(4802),
    [anon_sym_PLUS_PLUS] = ACTIONS(4804),
    [anon_sym_BANG] = ACTIONS(4804),
    [anon_sym_LPAREN] = ACTIONS(4804),
    [anon_sym_RPAREN] = ACTIONS(4804),
    [anon_sym_LBRACK] = ACTIONS(4804),
    [anon_sym_SEMI] = ACTIONS(4804),
    [anon_sym_DOLLAR] = ACTIONS(4804),
    [anon_sym_STAR] = ACTIONS(4804),
    [anon_sym_TILDE] = ACTIONS(4804),
    [sym_bool] = ACTIONS(4802),
    [sym_byte] = ACTIONS(4802),
    [sym_ubyte] = ACTIONS(4802),
    [sym_char] = ACTIONS(4802),
    [sym_short] = ACTIONS(4802),
    [sym_ushort] = ACTIONS(4802),
    [sym_int] = ACTIONS(4802),
    [sym_uint] = ACTIONS(4802),
    [sym_long] = ACTIONS(4802),
    [sym_ulong] = ACTIONS(4802),
    [sym_cent] = ACTIONS(4802),
    [sym_ucent] = ACTIONS(4802),
    [sym_wchar] = ACTIONS(4802),
    [sym_dchar] = ACTIONS(4802),
    [sym_float] = ACTIONS(4802),
    [sym_double] = ACTIONS(4802),
    [sym_real] = ACTIONS(4802),
    [sym_ifloat] = ACTIONS(4802),
    [sym_idouble] = ACTIONS(4802),
    [sym_ireal] = ACTIONS(4802),
    [sym_cfloat] = ACTIONS(4802),
    [sym_cdouble] = ACTIONS(4802),
    [sym_creal] = ACTIONS(4802),
    [sym_size_t] = ACTIONS(4802),
    [sym_ptrdiff_t] = ACTIONS(4802),
    [sym_string] = ACTIONS(4802),
    [sym_cstring] = ACTIONS(4802),
    [sym_dstring] = ACTIONS(4802),
    [sym_wstring] = ACTIONS(4802),
    [sym_noreturn] = ACTIONS(4802),
    [sym_true] = ACTIONS(4802),
    [sym_false] = ACTIONS(4802),
    [sym_null] = ACTIONS(4802),
    [sym_super] = ACTIONS(4802),
    [sym_this] = ACTIONS(4802),
    [sym_assert] = ACTIONS(4802),
    [sym_auto] = ACTIONS(4802),
    [sym_cast] = ACTIONS(4802),
    [sym_catch] = ACTIONS(4802),
    [sym_const] = ACTIONS(4802),
    [sym_delegate] = ACTIONS(4802),
    [sym_delete] = ACTIONS(4802),
    [sym_do] = ACTIONS(4802),
    [sym_else] = ACTIONS(4802),
    [sym_finally] = ACTIONS(4802),
    [sym_function] = ACTIONS(4802),
    [sym_immutable] = ACTIONS(4802),
    [sym_import] = ACTIONS(4802),
    [sym_in] = ACTIONS(4802),
    [sym_inout] = ACTIONS(4802),
    [sym_is] = ACTIONS(4802),
    [sym_mixin] = ACTIONS(4802),
    [sym_new] = ACTIONS(4802),
    [sym_out] = ACTIONS(4802),
    [sym_ref] = ACTIONS(4802),
    [sym_shared] = ACTIONS(4802),
    [sym_throw] = ACTIONS(4802),
    [sym_typeid] = ACTIONS(4802),
    [sym_typeof] = ACTIONS(4802),
    [sym_traits] = ACTIONS(4802),
    [sym_vector] = ACTIONS(4802),
    [sym_void] = ACTIONS(4802),
    [anon_sym_BQUOTE] = ACTIONS(4804),
    [anon_sym_r_DQUOTE] = ACTIONS(4804),
    [anon_sym_x_DQUOTE] = ACTIONS(4804),
    [anon_sym_DQUOTE] = ACTIONS(4804),
    [anon_sym_i_BQUOTE] = ACTIONS(4804),
    [anon_sym_i_DQUOTE] = ACTIONS(4804),
    [anon_sym_iq_LBRACE] = ACTIONS(4804),
    [aux_sym_char_literal_token1] = ACTIONS(4804),
    [anon_sym_SQUOTE] = ACTIONS(4802),
    [anon_sym___DATE__] = ACTIONS(4802),
    [anon_sym___FILE__] = ACTIONS(4802),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4802),
    [anon_sym___FUNCTION__] = ACTIONS(4802),
    [anon_sym___LINE__] = ACTIONS(4802),
    [anon_sym___MODULE__] = ACTIONS(4802),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4802),
    [anon_sym___TIME__] = ACTIONS(4802),
    [anon_sym___TIMESTAMP__] = ACTIONS(4802),
    [anon_sym___VENDOR__] = ACTIONS(4802),
    [anon_sym___VERSION__] = ACTIONS(4802),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4804),
    [sym_float_literal] = ACTIONS(4804),
    [sym__string] = ACTIONS(4804),
  },
  [2183] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_catch] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(6565),
    [sym_finally] = ACTIONS(4359),
    [sym_function] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [2184] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_catch] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(6567),
    [sym_finally] = ACTIONS(4640),
    [sym_function] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [2185] = {
    [sym_identifier] = ACTIONS(4806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4808),
    [anon_sym_LBRACE] = ACTIONS(4808),
    [anon_sym_DOT] = ACTIONS(4808),
    [anon_sym_AMP] = ACTIONS(4808),
    [anon_sym_DASH] = ACTIONS(4806),
    [anon_sym_DASH_DASH] = ACTIONS(4808),
    [anon_sym_PLUS] = ACTIONS(4806),
    [anon_sym_PLUS_PLUS] = ACTIONS(4808),
    [anon_sym_BANG] = ACTIONS(4808),
    [anon_sym_LPAREN] = ACTIONS(4808),
    [anon_sym_RPAREN] = ACTIONS(4808),
    [anon_sym_LBRACK] = ACTIONS(4808),
    [anon_sym_SEMI] = ACTIONS(4808),
    [anon_sym_DOLLAR] = ACTIONS(4808),
    [anon_sym_STAR] = ACTIONS(4808),
    [anon_sym_TILDE] = ACTIONS(4808),
    [sym_bool] = ACTIONS(4806),
    [sym_byte] = ACTIONS(4806),
    [sym_ubyte] = ACTIONS(4806),
    [sym_char] = ACTIONS(4806),
    [sym_short] = ACTIONS(4806),
    [sym_ushort] = ACTIONS(4806),
    [sym_int] = ACTIONS(4806),
    [sym_uint] = ACTIONS(4806),
    [sym_long] = ACTIONS(4806),
    [sym_ulong] = ACTIONS(4806),
    [sym_cent] = ACTIONS(4806),
    [sym_ucent] = ACTIONS(4806),
    [sym_wchar] = ACTIONS(4806),
    [sym_dchar] = ACTIONS(4806),
    [sym_float] = ACTIONS(4806),
    [sym_double] = ACTIONS(4806),
    [sym_real] = ACTIONS(4806),
    [sym_ifloat] = ACTIONS(4806),
    [sym_idouble] = ACTIONS(4806),
    [sym_ireal] = ACTIONS(4806),
    [sym_cfloat] = ACTIONS(4806),
    [sym_cdouble] = ACTIONS(4806),
    [sym_creal] = ACTIONS(4806),
    [sym_size_t] = ACTIONS(4806),
    [sym_ptrdiff_t] = ACTIONS(4806),
    [sym_string] = ACTIONS(4806),
    [sym_cstring] = ACTIONS(4806),
    [sym_dstring] = ACTIONS(4806),
    [sym_wstring] = ACTIONS(4806),
    [sym_noreturn] = ACTIONS(4806),
    [sym_true] = ACTIONS(4806),
    [sym_false] = ACTIONS(4806),
    [sym_null] = ACTIONS(4806),
    [sym_super] = ACTIONS(4806),
    [sym_this] = ACTIONS(4806),
    [sym_assert] = ACTIONS(4806),
    [sym_auto] = ACTIONS(4806),
    [sym_cast] = ACTIONS(4806),
    [sym_catch] = ACTIONS(4806),
    [sym_const] = ACTIONS(4806),
    [sym_delegate] = ACTIONS(4806),
    [sym_delete] = ACTIONS(4806),
    [sym_do] = ACTIONS(4806),
    [sym_else] = ACTIONS(4806),
    [sym_finally] = ACTIONS(4806),
    [sym_function] = ACTIONS(4806),
    [sym_immutable] = ACTIONS(4806),
    [sym_import] = ACTIONS(4806),
    [sym_in] = ACTIONS(4806),
    [sym_inout] = ACTIONS(4806),
    [sym_is] = ACTIONS(4806),
    [sym_mixin] = ACTIONS(4806),
    [sym_new] = ACTIONS(4806),
    [sym_out] = ACTIONS(4806),
    [sym_ref] = ACTIONS(4806),
    [sym_shared] = ACTIONS(4806),
    [sym_throw] = ACTIONS(4806),
    [sym_typeid] = ACTIONS(4806),
    [sym_typeof] = ACTIONS(4806),
    [sym_traits] = ACTIONS(4806),
    [sym_vector] = ACTIONS(4806),
    [sym_void] = ACTIONS(4806),
    [anon_sym_BQUOTE] = ACTIONS(4808),
    [anon_sym_r_DQUOTE] = ACTIONS(4808),
    [anon_sym_x_DQUOTE] = ACTIONS(4808),
    [anon_sym_DQUOTE] = ACTIONS(4808),
    [anon_sym_i_BQUOTE] = ACTIONS(4808),
    [anon_sym_i_DQUOTE] = ACTIONS(4808),
    [anon_sym_iq_LBRACE] = ACTIONS(4808),
    [aux_sym_char_literal_token1] = ACTIONS(4808),
    [anon_sym_SQUOTE] = ACTIONS(4806),
    [anon_sym___DATE__] = ACTIONS(4806),
    [anon_sym___FILE__] = ACTIONS(4806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4806),
    [anon_sym___FUNCTION__] = ACTIONS(4806),
    [anon_sym___LINE__] = ACTIONS(4806),
    [anon_sym___MODULE__] = ACTIONS(4806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4806),
    [anon_sym___TIME__] = ACTIONS(4806),
    [anon_sym___TIMESTAMP__] = ACTIONS(4806),
    [anon_sym___VENDOR__] = ACTIONS(4806),
    [anon_sym___VERSION__] = ACTIONS(4806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4808),
    [sym_float_literal] = ACTIONS(4808),
    [sym__string] = ACTIONS(4808),
  },
  [2186] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_finally] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_new] = ACTIONS(2798),
    [sym_out] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_throw] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [2187] = {
    [sym_identifier] = ACTIONS(4810),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4812),
    [anon_sym_LBRACE] = ACTIONS(4812),
    [anon_sym_DOT] = ACTIONS(4812),
    [anon_sym_AMP] = ACTIONS(4812),
    [anon_sym_DASH] = ACTIONS(4810),
    [anon_sym_DASH_DASH] = ACTIONS(4812),
    [anon_sym_PLUS] = ACTIONS(4810),
    [anon_sym_PLUS_PLUS] = ACTIONS(4812),
    [anon_sym_BANG] = ACTIONS(4812),
    [anon_sym_LPAREN] = ACTIONS(4812),
    [anon_sym_RPAREN] = ACTIONS(4812),
    [anon_sym_LBRACK] = ACTIONS(4812),
    [anon_sym_SEMI] = ACTIONS(4812),
    [anon_sym_DOLLAR] = ACTIONS(4812),
    [anon_sym_STAR] = ACTIONS(4812),
    [anon_sym_TILDE] = ACTIONS(4812),
    [sym_bool] = ACTIONS(4810),
    [sym_byte] = ACTIONS(4810),
    [sym_ubyte] = ACTIONS(4810),
    [sym_char] = ACTIONS(4810),
    [sym_short] = ACTIONS(4810),
    [sym_ushort] = ACTIONS(4810),
    [sym_int] = ACTIONS(4810),
    [sym_uint] = ACTIONS(4810),
    [sym_long] = ACTIONS(4810),
    [sym_ulong] = ACTIONS(4810),
    [sym_cent] = ACTIONS(4810),
    [sym_ucent] = ACTIONS(4810),
    [sym_wchar] = ACTIONS(4810),
    [sym_dchar] = ACTIONS(4810),
    [sym_float] = ACTIONS(4810),
    [sym_double] = ACTIONS(4810),
    [sym_real] = ACTIONS(4810),
    [sym_ifloat] = ACTIONS(4810),
    [sym_idouble] = ACTIONS(4810),
    [sym_ireal] = ACTIONS(4810),
    [sym_cfloat] = ACTIONS(4810),
    [sym_cdouble] = ACTIONS(4810),
    [sym_creal] = ACTIONS(4810),
    [sym_size_t] = ACTIONS(4810),
    [sym_ptrdiff_t] = ACTIONS(4810),
    [sym_string] = ACTIONS(4810),
    [sym_cstring] = ACTIONS(4810),
    [sym_dstring] = ACTIONS(4810),
    [sym_wstring] = ACTIONS(4810),
    [sym_noreturn] = ACTIONS(4810),
    [sym_true] = ACTIONS(4810),
    [sym_false] = ACTIONS(4810),
    [sym_null] = ACTIONS(4810),
    [sym_super] = ACTIONS(4810),
    [sym_this] = ACTIONS(4810),
    [sym_assert] = ACTIONS(4810),
    [sym_auto] = ACTIONS(4810),
    [sym_cast] = ACTIONS(4810),
    [sym_catch] = ACTIONS(4810),
    [sym_const] = ACTIONS(4810),
    [sym_delegate] = ACTIONS(4810),
    [sym_delete] = ACTIONS(4810),
    [sym_do] = ACTIONS(4810),
    [sym_else] = ACTIONS(4810),
    [sym_finally] = ACTIONS(4810),
    [sym_function] = ACTIONS(4810),
    [sym_immutable] = ACTIONS(4810),
    [sym_import] = ACTIONS(4810),
    [sym_in] = ACTIONS(4810),
    [sym_inout] = ACTIONS(4810),
    [sym_is] = ACTIONS(4810),
    [sym_mixin] = ACTIONS(4810),
    [sym_new] = ACTIONS(4810),
    [sym_out] = ACTIONS(4810),
    [sym_ref] = ACTIONS(4810),
    [sym_shared] = ACTIONS(4810),
    [sym_throw] = ACTIONS(4810),
    [sym_typeid] = ACTIONS(4810),
    [sym_typeof] = ACTIONS(4810),
    [sym_traits] = ACTIONS(4810),
    [sym_vector] = ACTIONS(4810),
    [sym_void] = ACTIONS(4810),
    [anon_sym_BQUOTE] = ACTIONS(4812),
    [anon_sym_r_DQUOTE] = ACTIONS(4812),
    [anon_sym_x_DQUOTE] = ACTIONS(4812),
    [anon_sym_DQUOTE] = ACTIONS(4812),
    [anon_sym_i_BQUOTE] = ACTIONS(4812),
    [anon_sym_i_DQUOTE] = ACTIONS(4812),
    [anon_sym_iq_LBRACE] = ACTIONS(4812),
    [aux_sym_char_literal_token1] = ACTIONS(4812),
    [anon_sym_SQUOTE] = ACTIONS(4810),
    [anon_sym___DATE__] = ACTIONS(4810),
    [anon_sym___FILE__] = ACTIONS(4810),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4810),
    [anon_sym___FUNCTION__] = ACTIONS(4810),
    [anon_sym___LINE__] = ACTIONS(4810),
    [anon_sym___MODULE__] = ACTIONS(4810),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4810),
    [anon_sym___TIME__] = ACTIONS(4810),
    [anon_sym___TIMESTAMP__] = ACTIONS(4810),
    [anon_sym___VENDOR__] = ACTIONS(4810),
    [anon_sym___VERSION__] = ACTIONS(4810),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4812),
    [sym_float_literal] = ACTIONS(4812),
    [sym__string] = ACTIONS(4812),
  },
  [2188] = {
    [sym_identifier] = ACTIONS(4848),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4850),
    [anon_sym_LBRACE] = ACTIONS(4850),
    [anon_sym_DOT] = ACTIONS(4850),
    [anon_sym_AMP] = ACTIONS(4850),
    [anon_sym_DASH] = ACTIONS(4848),
    [anon_sym_DASH_DASH] = ACTIONS(4850),
    [anon_sym_PLUS] = ACTIONS(4848),
    [anon_sym_PLUS_PLUS] = ACTIONS(4850),
    [anon_sym_BANG] = ACTIONS(4850),
    [anon_sym_LPAREN] = ACTIONS(4850),
    [anon_sym_RPAREN] = ACTIONS(4850),
    [anon_sym_LBRACK] = ACTIONS(4850),
    [anon_sym_SEMI] = ACTIONS(4850),
    [anon_sym_DOLLAR] = ACTIONS(4850),
    [anon_sym_STAR] = ACTIONS(4850),
    [anon_sym_TILDE] = ACTIONS(4850),
    [sym_bool] = ACTIONS(4848),
    [sym_byte] = ACTIONS(4848),
    [sym_ubyte] = ACTIONS(4848),
    [sym_char] = ACTIONS(4848),
    [sym_short] = ACTIONS(4848),
    [sym_ushort] = ACTIONS(4848),
    [sym_int] = ACTIONS(4848),
    [sym_uint] = ACTIONS(4848),
    [sym_long] = ACTIONS(4848),
    [sym_ulong] = ACTIONS(4848),
    [sym_cent] = ACTIONS(4848),
    [sym_ucent] = ACTIONS(4848),
    [sym_wchar] = ACTIONS(4848),
    [sym_dchar] = ACTIONS(4848),
    [sym_float] = ACTIONS(4848),
    [sym_double] = ACTIONS(4848),
    [sym_real] = ACTIONS(4848),
    [sym_ifloat] = ACTIONS(4848),
    [sym_idouble] = ACTIONS(4848),
    [sym_ireal] = ACTIONS(4848),
    [sym_cfloat] = ACTIONS(4848),
    [sym_cdouble] = ACTIONS(4848),
    [sym_creal] = ACTIONS(4848),
    [sym_size_t] = ACTIONS(4848),
    [sym_ptrdiff_t] = ACTIONS(4848),
    [sym_string] = ACTIONS(4848),
    [sym_cstring] = ACTIONS(4848),
    [sym_dstring] = ACTIONS(4848),
    [sym_wstring] = ACTIONS(4848),
    [sym_noreturn] = ACTIONS(4848),
    [sym_true] = ACTIONS(4848),
    [sym_false] = ACTIONS(4848),
    [sym_null] = ACTIONS(4848),
    [sym_super] = ACTIONS(4848),
    [sym_this] = ACTIONS(4848),
    [sym_assert] = ACTIONS(4848),
    [sym_auto] = ACTIONS(4848),
    [sym_cast] = ACTIONS(4848),
    [sym_catch] = ACTIONS(4848),
    [sym_const] = ACTIONS(4848),
    [sym_delegate] = ACTIONS(4848),
    [sym_delete] = ACTIONS(4848),
    [sym_do] = ACTIONS(4848),
    [sym_else] = ACTIONS(4848),
    [sym_finally] = ACTIONS(4848),
    [sym_function] = ACTIONS(4848),
    [sym_immutable] = ACTIONS(4848),
    [sym_import] = ACTIONS(4848),
    [sym_in] = ACTIONS(4848),
    [sym_inout] = ACTIONS(4848),
    [sym_is] = ACTIONS(4848),
    [sym_mixin] = ACTIONS(4848),
    [sym_new] = ACTIONS(4848),
    [sym_out] = ACTIONS(4848),
    [sym_ref] = ACTIONS(4848),
    [sym_shared] = ACTIONS(4848),
    [sym_throw] = ACTIONS(4848),
    [sym_typeid] = ACTIONS(4848),
    [sym_typeof] = ACTIONS(4848),
    [sym_traits] = ACTIONS(4848),
    [sym_vector] = ACTIONS(4848),
    [sym_void] = ACTIONS(4848),
    [anon_sym_BQUOTE] = ACTIONS(4850),
    [anon_sym_r_DQUOTE] = ACTIONS(4850),
    [anon_sym_x_DQUOTE] = ACTIONS(4850),
    [anon_sym_DQUOTE] = ACTIONS(4850),
    [anon_sym_i_BQUOTE] = ACTIONS(4850),
    [anon_sym_i_DQUOTE] = ACTIONS(4850),
    [anon_sym_iq_LBRACE] = ACTIONS(4850),
    [aux_sym_char_literal_token1] = ACTIONS(4850),
    [anon_sym_SQUOTE] = ACTIONS(4848),
    [anon_sym___DATE__] = ACTIONS(4848),
    [anon_sym___FILE__] = ACTIONS(4848),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4848),
    [anon_sym___FUNCTION__] = ACTIONS(4848),
    [anon_sym___LINE__] = ACTIONS(4848),
    [anon_sym___MODULE__] = ACTIONS(4848),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4848),
    [anon_sym___TIME__] = ACTIONS(4848),
    [anon_sym___TIMESTAMP__] = ACTIONS(4848),
    [anon_sym___VENDOR__] = ACTIONS(4848),
    [anon_sym___VERSION__] = ACTIONS(4848),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4850),
    [sym_float_literal] = ACTIONS(4850),
    [sym__string] = ACTIONS(4850),
  },
  [2189] = {
    [sym_identifier] = ACTIONS(4374),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4376),
    [anon_sym_LBRACE] = ACTIONS(4376),
    [anon_sym_DOT] = ACTIONS(4376),
    [anon_sym_AMP] = ACTIONS(4376),
    [anon_sym_DASH] = ACTIONS(4374),
    [anon_sym_DASH_DASH] = ACTIONS(4376),
    [anon_sym_PLUS] = ACTIONS(4374),
    [anon_sym_PLUS_PLUS] = ACTIONS(4376),
    [anon_sym_BANG] = ACTIONS(4376),
    [anon_sym_LPAREN] = ACTIONS(4376),
    [anon_sym_RPAREN] = ACTIONS(4376),
    [anon_sym_LBRACK] = ACTIONS(4376),
    [anon_sym_SEMI] = ACTIONS(4376),
    [anon_sym_DOLLAR] = ACTIONS(4376),
    [anon_sym_STAR] = ACTIONS(4376),
    [anon_sym_TILDE] = ACTIONS(4376),
    [sym_bool] = ACTIONS(4374),
    [sym_byte] = ACTIONS(4374),
    [sym_ubyte] = ACTIONS(4374),
    [sym_char] = ACTIONS(4374),
    [sym_short] = ACTIONS(4374),
    [sym_ushort] = ACTIONS(4374),
    [sym_int] = ACTIONS(4374),
    [sym_uint] = ACTIONS(4374),
    [sym_long] = ACTIONS(4374),
    [sym_ulong] = ACTIONS(4374),
    [sym_cent] = ACTIONS(4374),
    [sym_ucent] = ACTIONS(4374),
    [sym_wchar] = ACTIONS(4374),
    [sym_dchar] = ACTIONS(4374),
    [sym_float] = ACTIONS(4374),
    [sym_double] = ACTIONS(4374),
    [sym_real] = ACTIONS(4374),
    [sym_ifloat] = ACTIONS(4374),
    [sym_idouble] = ACTIONS(4374),
    [sym_ireal] = ACTIONS(4374),
    [sym_cfloat] = ACTIONS(4374),
    [sym_cdouble] = ACTIONS(4374),
    [sym_creal] = ACTIONS(4374),
    [sym_size_t] = ACTIONS(4374),
    [sym_ptrdiff_t] = ACTIONS(4374),
    [sym_string] = ACTIONS(4374),
    [sym_cstring] = ACTIONS(4374),
    [sym_dstring] = ACTIONS(4374),
    [sym_wstring] = ACTIONS(4374),
    [sym_noreturn] = ACTIONS(4374),
    [sym_true] = ACTIONS(4374),
    [sym_false] = ACTIONS(4374),
    [sym_null] = ACTIONS(4374),
    [sym_super] = ACTIONS(4374),
    [sym_this] = ACTIONS(4374),
    [sym_assert] = ACTIONS(4374),
    [sym_auto] = ACTIONS(4374),
    [sym_cast] = ACTIONS(4374),
    [sym_catch] = ACTIONS(4374),
    [sym_const] = ACTIONS(4374),
    [sym_delegate] = ACTIONS(4374),
    [sym_delete] = ACTIONS(4374),
    [sym_do] = ACTIONS(4374),
    [sym_else] = ACTIONS(4374),
    [sym_finally] = ACTIONS(4374),
    [sym_function] = ACTIONS(4374),
    [sym_immutable] = ACTIONS(4374),
    [sym_import] = ACTIONS(4374),
    [sym_in] = ACTIONS(4374),
    [sym_inout] = ACTIONS(4374),
    [sym_is] = ACTIONS(4374),
    [sym_mixin] = ACTIONS(4374),
    [sym_new] = ACTIONS(4374),
    [sym_out] = ACTIONS(4374),
    [sym_ref] = ACTIONS(4374),
    [sym_shared] = ACTIONS(4374),
    [sym_throw] = ACTIONS(4374),
    [sym_typeid] = ACTIONS(4374),
    [sym_typeof] = ACTIONS(4374),
    [sym_traits] = ACTIONS(4374),
    [sym_vector] = ACTIONS(4374),
    [sym_void] = ACTIONS(4374),
    [anon_sym_BQUOTE] = ACTIONS(4376),
    [anon_sym_r_DQUOTE] = ACTIONS(4376),
    [anon_sym_x_DQUOTE] = ACTIONS(4376),
    [anon_sym_DQUOTE] = ACTIONS(4376),
    [anon_sym_i_BQUOTE] = ACTIONS(4376),
    [anon_sym_i_DQUOTE] = ACTIONS(4376),
    [anon_sym_iq_LBRACE] = ACTIONS(4376),
    [aux_sym_char_literal_token1] = ACTIONS(4376),
    [anon_sym_SQUOTE] = ACTIONS(4374),
    [anon_sym___DATE__] = ACTIONS(4374),
    [anon_sym___FILE__] = ACTIONS(4374),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4374),
    [anon_sym___FUNCTION__] = ACTIONS(4374),
    [anon_sym___LINE__] = ACTIONS(4374),
    [anon_sym___MODULE__] = ACTIONS(4374),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4374),
    [anon_sym___TIME__] = ACTIONS(4374),
    [anon_sym___TIMESTAMP__] = ACTIONS(4374),
    [anon_sym___VENDOR__] = ACTIONS(4374),
    [anon_sym___VERSION__] = ACTIONS(4374),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4376),
    [sym_float_literal] = ACTIONS(4376),
    [sym__string] = ACTIONS(4376),
  },
  [2190] = {
    [sym_identifier] = ACTIONS(4378),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4380),
    [anon_sym_LBRACE] = ACTIONS(4380),
    [anon_sym_DOT] = ACTIONS(4380),
    [anon_sym_AMP] = ACTIONS(4380),
    [anon_sym_DASH] = ACTIONS(4378),
    [anon_sym_DASH_DASH] = ACTIONS(4380),
    [anon_sym_PLUS] = ACTIONS(4378),
    [anon_sym_PLUS_PLUS] = ACTIONS(4380),
    [anon_sym_BANG] = ACTIONS(4380),
    [anon_sym_LPAREN] = ACTIONS(4380),
    [anon_sym_RPAREN] = ACTIONS(4380),
    [anon_sym_LBRACK] = ACTIONS(4380),
    [anon_sym_SEMI] = ACTIONS(4380),
    [anon_sym_DOLLAR] = ACTIONS(4380),
    [anon_sym_STAR] = ACTIONS(4380),
    [anon_sym_TILDE] = ACTIONS(4380),
    [sym_bool] = ACTIONS(4378),
    [sym_byte] = ACTIONS(4378),
    [sym_ubyte] = ACTIONS(4378),
    [sym_char] = ACTIONS(4378),
    [sym_short] = ACTIONS(4378),
    [sym_ushort] = ACTIONS(4378),
    [sym_int] = ACTIONS(4378),
    [sym_uint] = ACTIONS(4378),
    [sym_long] = ACTIONS(4378),
    [sym_ulong] = ACTIONS(4378),
    [sym_cent] = ACTIONS(4378),
    [sym_ucent] = ACTIONS(4378),
    [sym_wchar] = ACTIONS(4378),
    [sym_dchar] = ACTIONS(4378),
    [sym_float] = ACTIONS(4378),
    [sym_double] = ACTIONS(4378),
    [sym_real] = ACTIONS(4378),
    [sym_ifloat] = ACTIONS(4378),
    [sym_idouble] = ACTIONS(4378),
    [sym_ireal] = ACTIONS(4378),
    [sym_cfloat] = ACTIONS(4378),
    [sym_cdouble] = ACTIONS(4378),
    [sym_creal] = ACTIONS(4378),
    [sym_size_t] = ACTIONS(4378),
    [sym_ptrdiff_t] = ACTIONS(4378),
    [sym_string] = ACTIONS(4378),
    [sym_cstring] = ACTIONS(4378),
    [sym_dstring] = ACTIONS(4378),
    [sym_wstring] = ACTIONS(4378),
    [sym_noreturn] = ACTIONS(4378),
    [sym_true] = ACTIONS(4378),
    [sym_false] = ACTIONS(4378),
    [sym_null] = ACTIONS(4378),
    [sym_super] = ACTIONS(4378),
    [sym_this] = ACTIONS(4378),
    [sym_assert] = ACTIONS(4378),
    [sym_auto] = ACTIONS(4378),
    [sym_cast] = ACTIONS(4378),
    [sym_catch] = ACTIONS(4378),
    [sym_const] = ACTIONS(4378),
    [sym_delegate] = ACTIONS(4378),
    [sym_delete] = ACTIONS(4378),
    [sym_do] = ACTIONS(4378),
    [sym_else] = ACTIONS(4378),
    [sym_finally] = ACTIONS(4378),
    [sym_function] = ACTIONS(4378),
    [sym_immutable] = ACTIONS(4378),
    [sym_import] = ACTIONS(4378),
    [sym_in] = ACTIONS(4378),
    [sym_inout] = ACTIONS(4378),
    [sym_is] = ACTIONS(4378),
    [sym_mixin] = ACTIONS(4378),
    [sym_new] = ACTIONS(4378),
    [sym_out] = ACTIONS(4378),
    [sym_ref] = ACTIONS(4378),
    [sym_shared] = ACTIONS(4378),
    [sym_throw] = ACTIONS(4378),
    [sym_typeid] = ACTIONS(4378),
    [sym_typeof] = ACTIONS(4378),
    [sym_traits] = ACTIONS(4378),
    [sym_vector] = ACTIONS(4378),
    [sym_void] = ACTIONS(4378),
    [anon_sym_BQUOTE] = ACTIONS(4380),
    [anon_sym_r_DQUOTE] = ACTIONS(4380),
    [anon_sym_x_DQUOTE] = ACTIONS(4380),
    [anon_sym_DQUOTE] = ACTIONS(4380),
    [anon_sym_i_BQUOTE] = ACTIONS(4380),
    [anon_sym_i_DQUOTE] = ACTIONS(4380),
    [anon_sym_iq_LBRACE] = ACTIONS(4380),
    [aux_sym_char_literal_token1] = ACTIONS(4380),
    [anon_sym_SQUOTE] = ACTIONS(4378),
    [anon_sym___DATE__] = ACTIONS(4378),
    [anon_sym___FILE__] = ACTIONS(4378),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4378),
    [anon_sym___FUNCTION__] = ACTIONS(4378),
    [anon_sym___LINE__] = ACTIONS(4378),
    [anon_sym___MODULE__] = ACTIONS(4378),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4378),
    [anon_sym___TIME__] = ACTIONS(4378),
    [anon_sym___TIMESTAMP__] = ACTIONS(4378),
    [anon_sym___VENDOR__] = ACTIONS(4378),
    [anon_sym___VERSION__] = ACTIONS(4378),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4380),
    [sym_float_literal] = ACTIONS(4380),
    [sym__string] = ACTIONS(4380),
  },
  [2191] = {
    [sym_identifier] = ACTIONS(4382),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4384),
    [anon_sym_LBRACE] = ACTIONS(4384),
    [anon_sym_DOT] = ACTIONS(4384),
    [anon_sym_AMP] = ACTIONS(4384),
    [anon_sym_DASH] = ACTIONS(4382),
    [anon_sym_DASH_DASH] = ACTIONS(4384),
    [anon_sym_PLUS] = ACTIONS(4382),
    [anon_sym_PLUS_PLUS] = ACTIONS(4384),
    [anon_sym_BANG] = ACTIONS(4384),
    [anon_sym_LPAREN] = ACTIONS(4384),
    [anon_sym_RPAREN] = ACTIONS(4384),
    [anon_sym_LBRACK] = ACTIONS(4384),
    [anon_sym_SEMI] = ACTIONS(4384),
    [anon_sym_DOLLAR] = ACTIONS(4384),
    [anon_sym_STAR] = ACTIONS(4384),
    [anon_sym_TILDE] = ACTIONS(4384),
    [sym_bool] = ACTIONS(4382),
    [sym_byte] = ACTIONS(4382),
    [sym_ubyte] = ACTIONS(4382),
    [sym_char] = ACTIONS(4382),
    [sym_short] = ACTIONS(4382),
    [sym_ushort] = ACTIONS(4382),
    [sym_int] = ACTIONS(4382),
    [sym_uint] = ACTIONS(4382),
    [sym_long] = ACTIONS(4382),
    [sym_ulong] = ACTIONS(4382),
    [sym_cent] = ACTIONS(4382),
    [sym_ucent] = ACTIONS(4382),
    [sym_wchar] = ACTIONS(4382),
    [sym_dchar] = ACTIONS(4382),
    [sym_float] = ACTIONS(4382),
    [sym_double] = ACTIONS(4382),
    [sym_real] = ACTIONS(4382),
    [sym_ifloat] = ACTIONS(4382),
    [sym_idouble] = ACTIONS(4382),
    [sym_ireal] = ACTIONS(4382),
    [sym_cfloat] = ACTIONS(4382),
    [sym_cdouble] = ACTIONS(4382),
    [sym_creal] = ACTIONS(4382),
    [sym_size_t] = ACTIONS(4382),
    [sym_ptrdiff_t] = ACTIONS(4382),
    [sym_string] = ACTIONS(4382),
    [sym_cstring] = ACTIONS(4382),
    [sym_dstring] = ACTIONS(4382),
    [sym_wstring] = ACTIONS(4382),
    [sym_noreturn] = ACTIONS(4382),
    [sym_true] = ACTIONS(4382),
    [sym_false] = ACTIONS(4382),
    [sym_null] = ACTIONS(4382),
    [sym_super] = ACTIONS(4382),
    [sym_this] = ACTIONS(4382),
    [sym_assert] = ACTIONS(4382),
    [sym_auto] = ACTIONS(4382),
    [sym_cast] = ACTIONS(4382),
    [sym_catch] = ACTIONS(4382),
    [sym_const] = ACTIONS(4382),
    [sym_delegate] = ACTIONS(4382),
    [sym_delete] = ACTIONS(4382),
    [sym_do] = ACTIONS(4382),
    [sym_else] = ACTIONS(4382),
    [sym_finally] = ACTIONS(4382),
    [sym_function] = ACTIONS(4382),
    [sym_immutable] = ACTIONS(4382),
    [sym_import] = ACTIONS(4382),
    [sym_in] = ACTIONS(4382),
    [sym_inout] = ACTIONS(4382),
    [sym_is] = ACTIONS(4382),
    [sym_mixin] = ACTIONS(4382),
    [sym_new] = ACTIONS(4382),
    [sym_out] = ACTIONS(4382),
    [sym_ref] = ACTIONS(4382),
    [sym_shared] = ACTIONS(4382),
    [sym_throw] = ACTIONS(4382),
    [sym_typeid] = ACTIONS(4382),
    [sym_typeof] = ACTIONS(4382),
    [sym_traits] = ACTIONS(4382),
    [sym_vector] = ACTIONS(4382),
    [sym_void] = ACTIONS(4382),
    [anon_sym_BQUOTE] = ACTIONS(4384),
    [anon_sym_r_DQUOTE] = ACTIONS(4384),
    [anon_sym_x_DQUOTE] = ACTIONS(4384),
    [anon_sym_DQUOTE] = ACTIONS(4384),
    [anon_sym_i_BQUOTE] = ACTIONS(4384),
    [anon_sym_i_DQUOTE] = ACTIONS(4384),
    [anon_sym_iq_LBRACE] = ACTIONS(4384),
    [aux_sym_char_literal_token1] = ACTIONS(4384),
    [anon_sym_SQUOTE] = ACTIONS(4382),
    [anon_sym___DATE__] = ACTIONS(4382),
    [anon_sym___FILE__] = ACTIONS(4382),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4382),
    [anon_sym___FUNCTION__] = ACTIONS(4382),
    [anon_sym___LINE__] = ACTIONS(4382),
    [anon_sym___MODULE__] = ACTIONS(4382),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4382),
    [anon_sym___TIME__] = ACTIONS(4382),
    [anon_sym___TIMESTAMP__] = ACTIONS(4382),
    [anon_sym___VENDOR__] = ACTIONS(4382),
    [anon_sym___VERSION__] = ACTIONS(4382),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4384),
    [sym_float_literal] = ACTIONS(4384),
    [sym__string] = ACTIONS(4384),
  },
  [2192] = {
    [sym_identifier] = ACTIONS(4390),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4394),
    [anon_sym_LBRACE] = ACTIONS(4394),
    [anon_sym_DOT] = ACTIONS(4394),
    [anon_sym_AMP] = ACTIONS(4394),
    [anon_sym_DASH] = ACTIONS(4390),
    [anon_sym_DASH_DASH] = ACTIONS(4394),
    [anon_sym_PLUS] = ACTIONS(4390),
    [anon_sym_PLUS_PLUS] = ACTIONS(4394),
    [anon_sym_BANG] = ACTIONS(4394),
    [anon_sym_LPAREN] = ACTIONS(4394),
    [anon_sym_RPAREN] = ACTIONS(4394),
    [anon_sym_LBRACK] = ACTIONS(4394),
    [anon_sym_SEMI] = ACTIONS(4394),
    [anon_sym_DOLLAR] = ACTIONS(4394),
    [anon_sym_STAR] = ACTIONS(4394),
    [anon_sym_TILDE] = ACTIONS(4394),
    [sym_bool] = ACTIONS(4390),
    [sym_byte] = ACTIONS(4390),
    [sym_ubyte] = ACTIONS(4390),
    [sym_char] = ACTIONS(4390),
    [sym_short] = ACTIONS(4390),
    [sym_ushort] = ACTIONS(4390),
    [sym_int] = ACTIONS(4390),
    [sym_uint] = ACTIONS(4390),
    [sym_long] = ACTIONS(4390),
    [sym_ulong] = ACTIONS(4390),
    [sym_cent] = ACTIONS(4390),
    [sym_ucent] = ACTIONS(4390),
    [sym_wchar] = ACTIONS(4390),
    [sym_dchar] = ACTIONS(4390),
    [sym_float] = ACTIONS(4390),
    [sym_double] = ACTIONS(4390),
    [sym_real] = ACTIONS(4390),
    [sym_ifloat] = ACTIONS(4390),
    [sym_idouble] = ACTIONS(4390),
    [sym_ireal] = ACTIONS(4390),
    [sym_cfloat] = ACTIONS(4390),
    [sym_cdouble] = ACTIONS(4390),
    [sym_creal] = ACTIONS(4390),
    [sym_size_t] = ACTIONS(4390),
    [sym_ptrdiff_t] = ACTIONS(4390),
    [sym_string] = ACTIONS(4390),
    [sym_cstring] = ACTIONS(4390),
    [sym_dstring] = ACTIONS(4390),
    [sym_wstring] = ACTIONS(4390),
    [sym_noreturn] = ACTIONS(4390),
    [sym_true] = ACTIONS(4390),
    [sym_false] = ACTIONS(4390),
    [sym_null] = ACTIONS(4390),
    [sym_super] = ACTIONS(4390),
    [sym_this] = ACTIONS(4390),
    [sym_assert] = ACTIONS(4390),
    [sym_auto] = ACTIONS(4390),
    [sym_cast] = ACTIONS(4390),
    [sym_catch] = ACTIONS(4390),
    [sym_const] = ACTIONS(4390),
    [sym_delegate] = ACTIONS(4390),
    [sym_delete] = ACTIONS(4390),
    [sym_do] = ACTIONS(4390),
    [sym_else] = ACTIONS(4390),
    [sym_finally] = ACTIONS(4390),
    [sym_function] = ACTIONS(4390),
    [sym_immutable] = ACTIONS(4390),
    [sym_import] = ACTIONS(4390),
    [sym_in] = ACTIONS(4390),
    [sym_inout] = ACTIONS(4390),
    [sym_is] = ACTIONS(4390),
    [sym_mixin] = ACTIONS(4390),
    [sym_new] = ACTIONS(4390),
    [sym_out] = ACTIONS(4390),
    [sym_ref] = ACTIONS(4390),
    [sym_shared] = ACTIONS(4390),
    [sym_throw] = ACTIONS(4390),
    [sym_typeid] = ACTIONS(4390),
    [sym_typeof] = ACTIONS(4390),
    [sym_traits] = ACTIONS(4390),
    [sym_vector] = ACTIONS(4390),
    [sym_void] = ACTIONS(4390),
    [anon_sym_BQUOTE] = ACTIONS(4394),
    [anon_sym_r_DQUOTE] = ACTIONS(4394),
    [anon_sym_x_DQUOTE] = ACTIONS(4394),
    [anon_sym_DQUOTE] = ACTIONS(4394),
    [anon_sym_i_BQUOTE] = ACTIONS(4394),
    [anon_sym_i_DQUOTE] = ACTIONS(4394),
    [anon_sym_iq_LBRACE] = ACTIONS(4394),
    [aux_sym_char_literal_token1] = ACTIONS(4394),
    [anon_sym_SQUOTE] = ACTIONS(4390),
    [anon_sym___DATE__] = ACTIONS(4390),
    [anon_sym___FILE__] = ACTIONS(4390),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4390),
    [anon_sym___FUNCTION__] = ACTIONS(4390),
    [anon_sym___LINE__] = ACTIONS(4390),
    [anon_sym___MODULE__] = ACTIONS(4390),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4390),
    [anon_sym___TIME__] = ACTIONS(4390),
    [anon_sym___TIMESTAMP__] = ACTIONS(4390),
    [anon_sym___VENDOR__] = ACTIONS(4390),
    [anon_sym___VERSION__] = ACTIONS(4390),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4394),
    [sym_float_literal] = ACTIONS(4394),
    [sym__string] = ACTIONS(4394),
  },
  [2193] = {
    [sym_identifier] = ACTIONS(4410),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4412),
    [anon_sym_LBRACE] = ACTIONS(4412),
    [anon_sym_DOT] = ACTIONS(4412),
    [anon_sym_AMP] = ACTIONS(4412),
    [anon_sym_DASH] = ACTIONS(4410),
    [anon_sym_DASH_DASH] = ACTIONS(4412),
    [anon_sym_PLUS] = ACTIONS(4410),
    [anon_sym_PLUS_PLUS] = ACTIONS(4412),
    [anon_sym_BANG] = ACTIONS(4412),
    [anon_sym_LPAREN] = ACTIONS(4412),
    [anon_sym_RPAREN] = ACTIONS(4412),
    [anon_sym_LBRACK] = ACTIONS(4412),
    [anon_sym_SEMI] = ACTIONS(4412),
    [anon_sym_DOLLAR] = ACTIONS(4412),
    [anon_sym_STAR] = ACTIONS(4412),
    [anon_sym_TILDE] = ACTIONS(4412),
    [sym_bool] = ACTIONS(4410),
    [sym_byte] = ACTIONS(4410),
    [sym_ubyte] = ACTIONS(4410),
    [sym_char] = ACTIONS(4410),
    [sym_short] = ACTIONS(4410),
    [sym_ushort] = ACTIONS(4410),
    [sym_int] = ACTIONS(4410),
    [sym_uint] = ACTIONS(4410),
    [sym_long] = ACTIONS(4410),
    [sym_ulong] = ACTIONS(4410),
    [sym_cent] = ACTIONS(4410),
    [sym_ucent] = ACTIONS(4410),
    [sym_wchar] = ACTIONS(4410),
    [sym_dchar] = ACTIONS(4410),
    [sym_float] = ACTIONS(4410),
    [sym_double] = ACTIONS(4410),
    [sym_real] = ACTIONS(4410),
    [sym_ifloat] = ACTIONS(4410),
    [sym_idouble] = ACTIONS(4410),
    [sym_ireal] = ACTIONS(4410),
    [sym_cfloat] = ACTIONS(4410),
    [sym_cdouble] = ACTIONS(4410),
    [sym_creal] = ACTIONS(4410),
    [sym_size_t] = ACTIONS(4410),
    [sym_ptrdiff_t] = ACTIONS(4410),
    [sym_string] = ACTIONS(4410),
    [sym_cstring] = ACTIONS(4410),
    [sym_dstring] = ACTIONS(4410),
    [sym_wstring] = ACTIONS(4410),
    [sym_noreturn] = ACTIONS(4410),
    [sym_true] = ACTIONS(4410),
    [sym_false] = ACTIONS(4410),
    [sym_null] = ACTIONS(4410),
    [sym_super] = ACTIONS(4410),
    [sym_this] = ACTIONS(4410),
    [sym_assert] = ACTIONS(4410),
    [sym_auto] = ACTIONS(4410),
    [sym_cast] = ACTIONS(4410),
    [sym_catch] = ACTIONS(4410),
    [sym_const] = ACTIONS(4410),
    [sym_delegate] = ACTIONS(4410),
    [sym_delete] = ACTIONS(4410),
    [sym_do] = ACTIONS(4410),
    [sym_else] = ACTIONS(4410),
    [sym_finally] = ACTIONS(4410),
    [sym_function] = ACTIONS(4410),
    [sym_immutable] = ACTIONS(4410),
    [sym_import] = ACTIONS(4410),
    [sym_in] = ACTIONS(4410),
    [sym_inout] = ACTIONS(4410),
    [sym_is] = ACTIONS(4410),
    [sym_mixin] = ACTIONS(4410),
    [sym_new] = ACTIONS(4410),
    [sym_out] = ACTIONS(4410),
    [sym_ref] = ACTIONS(4410),
    [sym_shared] = ACTIONS(4410),
    [sym_throw] = ACTIONS(4410),
    [sym_typeid] = ACTIONS(4410),
    [sym_typeof] = ACTIONS(4410),
    [sym_traits] = ACTIONS(4410),
    [sym_vector] = ACTIONS(4410),
    [sym_void] = ACTIONS(4410),
    [anon_sym_BQUOTE] = ACTIONS(4412),
    [anon_sym_r_DQUOTE] = ACTIONS(4412),
    [anon_sym_x_DQUOTE] = ACTIONS(4412),
    [anon_sym_DQUOTE] = ACTIONS(4412),
    [anon_sym_i_BQUOTE] = ACTIONS(4412),
    [anon_sym_i_DQUOTE] = ACTIONS(4412),
    [anon_sym_iq_LBRACE] = ACTIONS(4412),
    [aux_sym_char_literal_token1] = ACTIONS(4412),
    [anon_sym_SQUOTE] = ACTIONS(4410),
    [anon_sym___DATE__] = ACTIONS(4410),
    [anon_sym___FILE__] = ACTIONS(4410),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4410),
    [anon_sym___FUNCTION__] = ACTIONS(4410),
    [anon_sym___LINE__] = ACTIONS(4410),
    [anon_sym___MODULE__] = ACTIONS(4410),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4410),
    [anon_sym___TIME__] = ACTIONS(4410),
    [anon_sym___TIMESTAMP__] = ACTIONS(4410),
    [anon_sym___VENDOR__] = ACTIONS(4410),
    [anon_sym___VERSION__] = ACTIONS(4410),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4412),
    [sym_float_literal] = ACTIONS(4412),
    [sym__string] = ACTIONS(4412),
  },
  [2194] = {
    [sym_identifier] = ACTIONS(4422),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4424),
    [anon_sym_LBRACE] = ACTIONS(4424),
    [anon_sym_DOT] = ACTIONS(4424),
    [anon_sym_AMP] = ACTIONS(4424),
    [anon_sym_DASH] = ACTIONS(4422),
    [anon_sym_DASH_DASH] = ACTIONS(4424),
    [anon_sym_PLUS] = ACTIONS(4422),
    [anon_sym_PLUS_PLUS] = ACTIONS(4424),
    [anon_sym_BANG] = ACTIONS(4424),
    [anon_sym_LPAREN] = ACTIONS(4424),
    [anon_sym_RPAREN] = ACTIONS(4424),
    [anon_sym_LBRACK] = ACTIONS(4424),
    [anon_sym_SEMI] = ACTIONS(4424),
    [anon_sym_DOLLAR] = ACTIONS(4424),
    [anon_sym_STAR] = ACTIONS(4424),
    [anon_sym_TILDE] = ACTIONS(4424),
    [sym_bool] = ACTIONS(4422),
    [sym_byte] = ACTIONS(4422),
    [sym_ubyte] = ACTIONS(4422),
    [sym_char] = ACTIONS(4422),
    [sym_short] = ACTIONS(4422),
    [sym_ushort] = ACTIONS(4422),
    [sym_int] = ACTIONS(4422),
    [sym_uint] = ACTIONS(4422),
    [sym_long] = ACTIONS(4422),
    [sym_ulong] = ACTIONS(4422),
    [sym_cent] = ACTIONS(4422),
    [sym_ucent] = ACTIONS(4422),
    [sym_wchar] = ACTIONS(4422),
    [sym_dchar] = ACTIONS(4422),
    [sym_float] = ACTIONS(4422),
    [sym_double] = ACTIONS(4422),
    [sym_real] = ACTIONS(4422),
    [sym_ifloat] = ACTIONS(4422),
    [sym_idouble] = ACTIONS(4422),
    [sym_ireal] = ACTIONS(4422),
    [sym_cfloat] = ACTIONS(4422),
    [sym_cdouble] = ACTIONS(4422),
    [sym_creal] = ACTIONS(4422),
    [sym_size_t] = ACTIONS(4422),
    [sym_ptrdiff_t] = ACTIONS(4422),
    [sym_string] = ACTIONS(4422),
    [sym_cstring] = ACTIONS(4422),
    [sym_dstring] = ACTIONS(4422),
    [sym_wstring] = ACTIONS(4422),
    [sym_noreturn] = ACTIONS(4422),
    [sym_true] = ACTIONS(4422),
    [sym_false] = ACTIONS(4422),
    [sym_null] = ACTIONS(4422),
    [sym_super] = ACTIONS(4422),
    [sym_this] = ACTIONS(4422),
    [sym_assert] = ACTIONS(4422),
    [sym_auto] = ACTIONS(4422),
    [sym_cast] = ACTIONS(4422),
    [sym_catch] = ACTIONS(4422),
    [sym_const] = ACTIONS(4422),
    [sym_delegate] = ACTIONS(4422),
    [sym_delete] = ACTIONS(4422),
    [sym_do] = ACTIONS(4422),
    [sym_else] = ACTIONS(4422),
    [sym_finally] = ACTIONS(4422),
    [sym_function] = ACTIONS(4422),
    [sym_immutable] = ACTIONS(4422),
    [sym_import] = ACTIONS(4422),
    [sym_in] = ACTIONS(4422),
    [sym_inout] = ACTIONS(4422),
    [sym_is] = ACTIONS(4422),
    [sym_mixin] = ACTIONS(4422),
    [sym_new] = ACTIONS(4422),
    [sym_out] = ACTIONS(4422),
    [sym_ref] = ACTIONS(4422),
    [sym_shared] = ACTIONS(4422),
    [sym_throw] = ACTIONS(4422),
    [sym_typeid] = ACTIONS(4422),
    [sym_typeof] = ACTIONS(4422),
    [sym_traits] = ACTIONS(4422),
    [sym_vector] = ACTIONS(4422),
    [sym_void] = ACTIONS(4422),
    [anon_sym_BQUOTE] = ACTIONS(4424),
    [anon_sym_r_DQUOTE] = ACTIONS(4424),
    [anon_sym_x_DQUOTE] = ACTIONS(4424),
    [anon_sym_DQUOTE] = ACTIONS(4424),
    [anon_sym_i_BQUOTE] = ACTIONS(4424),
    [anon_sym_i_DQUOTE] = ACTIONS(4424),
    [anon_sym_iq_LBRACE] = ACTIONS(4424),
    [aux_sym_char_literal_token1] = ACTIONS(4424),
    [anon_sym_SQUOTE] = ACTIONS(4422),
    [anon_sym___DATE__] = ACTIONS(4422),
    [anon_sym___FILE__] = ACTIONS(4422),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4422),
    [anon_sym___FUNCTION__] = ACTIONS(4422),
    [anon_sym___LINE__] = ACTIONS(4422),
    [anon_sym___MODULE__] = ACTIONS(4422),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4422),
    [anon_sym___TIME__] = ACTIONS(4422),
    [anon_sym___TIMESTAMP__] = ACTIONS(4422),
    [anon_sym___VENDOR__] = ACTIONS(4422),
    [anon_sym___VERSION__] = ACTIONS(4422),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4424),
    [sym_float_literal] = ACTIONS(4424),
    [sym__string] = ACTIONS(4424),
  },
  [2195] = {
    [sym_identifier] = ACTIONS(4426),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4428),
    [anon_sym_LBRACE] = ACTIONS(4428),
    [anon_sym_DOT] = ACTIONS(4428),
    [anon_sym_AMP] = ACTIONS(4428),
    [anon_sym_DASH] = ACTIONS(4426),
    [anon_sym_DASH_DASH] = ACTIONS(4428),
    [anon_sym_PLUS] = ACTIONS(4426),
    [anon_sym_PLUS_PLUS] = ACTIONS(4428),
    [anon_sym_BANG] = ACTIONS(4428),
    [anon_sym_LPAREN] = ACTIONS(4428),
    [anon_sym_RPAREN] = ACTIONS(4428),
    [anon_sym_LBRACK] = ACTIONS(4428),
    [anon_sym_SEMI] = ACTIONS(4428),
    [anon_sym_DOLLAR] = ACTIONS(4428),
    [anon_sym_STAR] = ACTIONS(4428),
    [anon_sym_TILDE] = ACTIONS(4428),
    [sym_bool] = ACTIONS(4426),
    [sym_byte] = ACTIONS(4426),
    [sym_ubyte] = ACTIONS(4426),
    [sym_char] = ACTIONS(4426),
    [sym_short] = ACTIONS(4426),
    [sym_ushort] = ACTIONS(4426),
    [sym_int] = ACTIONS(4426),
    [sym_uint] = ACTIONS(4426),
    [sym_long] = ACTIONS(4426),
    [sym_ulong] = ACTIONS(4426),
    [sym_cent] = ACTIONS(4426),
    [sym_ucent] = ACTIONS(4426),
    [sym_wchar] = ACTIONS(4426),
    [sym_dchar] = ACTIONS(4426),
    [sym_float] = ACTIONS(4426),
    [sym_double] = ACTIONS(4426),
    [sym_real] = ACTIONS(4426),
    [sym_ifloat] = ACTIONS(4426),
    [sym_idouble] = ACTIONS(4426),
    [sym_ireal] = ACTIONS(4426),
    [sym_cfloat] = ACTIONS(4426),
    [sym_cdouble] = ACTIONS(4426),
    [sym_creal] = ACTIONS(4426),
    [sym_size_t] = ACTIONS(4426),
    [sym_ptrdiff_t] = ACTIONS(4426),
    [sym_string] = ACTIONS(4426),
    [sym_cstring] = ACTIONS(4426),
    [sym_dstring] = ACTIONS(4426),
    [sym_wstring] = ACTIONS(4426),
    [sym_noreturn] = ACTIONS(4426),
    [sym_true] = ACTIONS(4426),
    [sym_false] = ACTIONS(4426),
    [sym_null] = ACTIONS(4426),
    [sym_super] = ACTIONS(4426),
    [sym_this] = ACTIONS(4426),
    [sym_assert] = ACTIONS(4426),
    [sym_auto] = ACTIONS(4426),
    [sym_cast] = ACTIONS(4426),
    [sym_catch] = ACTIONS(4426),
    [sym_const] = ACTIONS(4426),
    [sym_delegate] = ACTIONS(4426),
    [sym_delete] = ACTIONS(4426),
    [sym_do] = ACTIONS(4426),
    [sym_else] = ACTIONS(4426),
    [sym_finally] = ACTIONS(4426),
    [sym_function] = ACTIONS(4426),
    [sym_immutable] = ACTIONS(4426),
    [sym_import] = ACTIONS(4426),
    [sym_in] = ACTIONS(4426),
    [sym_inout] = ACTIONS(4426),
    [sym_is] = ACTIONS(4426),
    [sym_mixin] = ACTIONS(4426),
    [sym_new] = ACTIONS(4426),
    [sym_out] = ACTIONS(4426),
    [sym_ref] = ACTIONS(4426),
    [sym_shared] = ACTIONS(4426),
    [sym_throw] = ACTIONS(4426),
    [sym_typeid] = ACTIONS(4426),
    [sym_typeof] = ACTIONS(4426),
    [sym_traits] = ACTIONS(4426),
    [sym_vector] = ACTIONS(4426),
    [sym_void] = ACTIONS(4426),
    [anon_sym_BQUOTE] = ACTIONS(4428),
    [anon_sym_r_DQUOTE] = ACTIONS(4428),
    [anon_sym_x_DQUOTE] = ACTIONS(4428),
    [anon_sym_DQUOTE] = ACTIONS(4428),
    [anon_sym_i_BQUOTE] = ACTIONS(4428),
    [anon_sym_i_DQUOTE] = ACTIONS(4428),
    [anon_sym_iq_LBRACE] = ACTIONS(4428),
    [aux_sym_char_literal_token1] = ACTIONS(4428),
    [anon_sym_SQUOTE] = ACTIONS(4426),
    [anon_sym___DATE__] = ACTIONS(4426),
    [anon_sym___FILE__] = ACTIONS(4426),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4426),
    [anon_sym___FUNCTION__] = ACTIONS(4426),
    [anon_sym___LINE__] = ACTIONS(4426),
    [anon_sym___MODULE__] = ACTIONS(4426),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4426),
    [anon_sym___TIME__] = ACTIONS(4426),
    [anon_sym___TIMESTAMP__] = ACTIONS(4426),
    [anon_sym___VENDOR__] = ACTIONS(4426),
    [anon_sym___VERSION__] = ACTIONS(4426),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4428),
    [sym_float_literal] = ACTIONS(4428),
    [sym__string] = ACTIONS(4428),
  },
  [2196] = {
    [sym_identifier] = ACTIONS(4430),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4432),
    [anon_sym_LBRACE] = ACTIONS(4432),
    [anon_sym_DOT] = ACTIONS(4432),
    [anon_sym_AMP] = ACTIONS(4432),
    [anon_sym_DASH] = ACTIONS(4430),
    [anon_sym_DASH_DASH] = ACTIONS(4432),
    [anon_sym_PLUS] = ACTIONS(4430),
    [anon_sym_PLUS_PLUS] = ACTIONS(4432),
    [anon_sym_BANG] = ACTIONS(4432),
    [anon_sym_LPAREN] = ACTIONS(4432),
    [anon_sym_RPAREN] = ACTIONS(4432),
    [anon_sym_LBRACK] = ACTIONS(4432),
    [anon_sym_SEMI] = ACTIONS(4432),
    [anon_sym_DOLLAR] = ACTIONS(4432),
    [anon_sym_STAR] = ACTIONS(4432),
    [anon_sym_TILDE] = ACTIONS(4432),
    [sym_bool] = ACTIONS(4430),
    [sym_byte] = ACTIONS(4430),
    [sym_ubyte] = ACTIONS(4430),
    [sym_char] = ACTIONS(4430),
    [sym_short] = ACTIONS(4430),
    [sym_ushort] = ACTIONS(4430),
    [sym_int] = ACTIONS(4430),
    [sym_uint] = ACTIONS(4430),
    [sym_long] = ACTIONS(4430),
    [sym_ulong] = ACTIONS(4430),
    [sym_cent] = ACTIONS(4430),
    [sym_ucent] = ACTIONS(4430),
    [sym_wchar] = ACTIONS(4430),
    [sym_dchar] = ACTIONS(4430),
    [sym_float] = ACTIONS(4430),
    [sym_double] = ACTIONS(4430),
    [sym_real] = ACTIONS(4430),
    [sym_ifloat] = ACTIONS(4430),
    [sym_idouble] = ACTIONS(4430),
    [sym_ireal] = ACTIONS(4430),
    [sym_cfloat] = ACTIONS(4430),
    [sym_cdouble] = ACTIONS(4430),
    [sym_creal] = ACTIONS(4430),
    [sym_size_t] = ACTIONS(4430),
    [sym_ptrdiff_t] = ACTIONS(4430),
    [sym_string] = ACTIONS(4430),
    [sym_cstring] = ACTIONS(4430),
    [sym_dstring] = ACTIONS(4430),
    [sym_wstring] = ACTIONS(4430),
    [sym_noreturn] = ACTIONS(4430),
    [sym_true] = ACTIONS(4430),
    [sym_false] = ACTIONS(4430),
    [sym_null] = ACTIONS(4430),
    [sym_super] = ACTIONS(4430),
    [sym_this] = ACTIONS(4430),
    [sym_assert] = ACTIONS(4430),
    [sym_auto] = ACTIONS(4430),
    [sym_cast] = ACTIONS(4430),
    [sym_catch] = ACTIONS(4430),
    [sym_const] = ACTIONS(4430),
    [sym_delegate] = ACTIONS(4430),
    [sym_delete] = ACTIONS(4430),
    [sym_do] = ACTIONS(4430),
    [sym_else] = ACTIONS(4430),
    [sym_finally] = ACTIONS(4430),
    [sym_function] = ACTIONS(4430),
    [sym_immutable] = ACTIONS(4430),
    [sym_import] = ACTIONS(4430),
    [sym_in] = ACTIONS(4430),
    [sym_inout] = ACTIONS(4430),
    [sym_is] = ACTIONS(4430),
    [sym_mixin] = ACTIONS(4430),
    [sym_new] = ACTIONS(4430),
    [sym_out] = ACTIONS(4430),
    [sym_ref] = ACTIONS(4430),
    [sym_shared] = ACTIONS(4430),
    [sym_throw] = ACTIONS(4430),
    [sym_typeid] = ACTIONS(4430),
    [sym_typeof] = ACTIONS(4430),
    [sym_traits] = ACTIONS(4430),
    [sym_vector] = ACTIONS(4430),
    [sym_void] = ACTIONS(4430),
    [anon_sym_BQUOTE] = ACTIONS(4432),
    [anon_sym_r_DQUOTE] = ACTIONS(4432),
    [anon_sym_x_DQUOTE] = ACTIONS(4432),
    [anon_sym_DQUOTE] = ACTIONS(4432),
    [anon_sym_i_BQUOTE] = ACTIONS(4432),
    [anon_sym_i_DQUOTE] = ACTIONS(4432),
    [anon_sym_iq_LBRACE] = ACTIONS(4432),
    [aux_sym_char_literal_token1] = ACTIONS(4432),
    [anon_sym_SQUOTE] = ACTIONS(4430),
    [anon_sym___DATE__] = ACTIONS(4430),
    [anon_sym___FILE__] = ACTIONS(4430),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4430),
    [anon_sym___FUNCTION__] = ACTIONS(4430),
    [anon_sym___LINE__] = ACTIONS(4430),
    [anon_sym___MODULE__] = ACTIONS(4430),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4430),
    [anon_sym___TIME__] = ACTIONS(4430),
    [anon_sym___TIMESTAMP__] = ACTIONS(4430),
    [anon_sym___VENDOR__] = ACTIONS(4430),
    [anon_sym___VERSION__] = ACTIONS(4430),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4432),
    [sym_float_literal] = ACTIONS(4432),
    [sym__string] = ACTIONS(4432),
  },
  [2197] = {
    [sym_identifier] = ACTIONS(4438),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4440),
    [anon_sym_LBRACE] = ACTIONS(4440),
    [anon_sym_DOT] = ACTIONS(4440),
    [anon_sym_AMP] = ACTIONS(4440),
    [anon_sym_DASH] = ACTIONS(4438),
    [anon_sym_DASH_DASH] = ACTIONS(4440),
    [anon_sym_PLUS] = ACTIONS(4438),
    [anon_sym_PLUS_PLUS] = ACTIONS(4440),
    [anon_sym_BANG] = ACTIONS(4440),
    [anon_sym_LPAREN] = ACTIONS(4440),
    [anon_sym_RPAREN] = ACTIONS(4440),
    [anon_sym_LBRACK] = ACTIONS(4440),
    [anon_sym_SEMI] = ACTIONS(4440),
    [anon_sym_DOLLAR] = ACTIONS(4440),
    [anon_sym_STAR] = ACTIONS(4440),
    [anon_sym_TILDE] = ACTIONS(4440),
    [sym_bool] = ACTIONS(4438),
    [sym_byte] = ACTIONS(4438),
    [sym_ubyte] = ACTIONS(4438),
    [sym_char] = ACTIONS(4438),
    [sym_short] = ACTIONS(4438),
    [sym_ushort] = ACTIONS(4438),
    [sym_int] = ACTIONS(4438),
    [sym_uint] = ACTIONS(4438),
    [sym_long] = ACTIONS(4438),
    [sym_ulong] = ACTIONS(4438),
    [sym_cent] = ACTIONS(4438),
    [sym_ucent] = ACTIONS(4438),
    [sym_wchar] = ACTIONS(4438),
    [sym_dchar] = ACTIONS(4438),
    [sym_float] = ACTIONS(4438),
    [sym_double] = ACTIONS(4438),
    [sym_real] = ACTIONS(4438),
    [sym_ifloat] = ACTIONS(4438),
    [sym_idouble] = ACTIONS(4438),
    [sym_ireal] = ACTIONS(4438),
    [sym_cfloat] = ACTIONS(4438),
    [sym_cdouble] = ACTIONS(4438),
    [sym_creal] = ACTIONS(4438),
    [sym_size_t] = ACTIONS(4438),
    [sym_ptrdiff_t] = ACTIONS(4438),
    [sym_string] = ACTIONS(4438),
    [sym_cstring] = ACTIONS(4438),
    [sym_dstring] = ACTIONS(4438),
    [sym_wstring] = ACTIONS(4438),
    [sym_noreturn] = ACTIONS(4438),
    [sym_true] = ACTIONS(4438),
    [sym_false] = ACTIONS(4438),
    [sym_null] = ACTIONS(4438),
    [sym_super] = ACTIONS(4438),
    [sym_this] = ACTIONS(4438),
    [sym_assert] = ACTIONS(4438),
    [sym_auto] = ACTIONS(4438),
    [sym_cast] = ACTIONS(4438),
    [sym_catch] = ACTIONS(4438),
    [sym_const] = ACTIONS(4438),
    [sym_delegate] = ACTIONS(4438),
    [sym_delete] = ACTIONS(4438),
    [sym_do] = ACTIONS(4438),
    [sym_else] = ACTIONS(4438),
    [sym_finally] = ACTIONS(4438),
    [sym_function] = ACTIONS(4438),
    [sym_immutable] = ACTIONS(4438),
    [sym_import] = ACTIONS(4438),
    [sym_in] = ACTIONS(4438),
    [sym_inout] = ACTIONS(4438),
    [sym_is] = ACTIONS(4438),
    [sym_mixin] = ACTIONS(4438),
    [sym_new] = ACTIONS(4438),
    [sym_out] = ACTIONS(4438),
    [sym_ref] = ACTIONS(4438),
    [sym_shared] = ACTIONS(4438),
    [sym_throw] = ACTIONS(4438),
    [sym_typeid] = ACTIONS(4438),
    [sym_typeof] = ACTIONS(4438),
    [sym_traits] = ACTIONS(4438),
    [sym_vector] = ACTIONS(4438),
    [sym_void] = ACTIONS(4438),
    [anon_sym_BQUOTE] = ACTIONS(4440),
    [anon_sym_r_DQUOTE] = ACTIONS(4440),
    [anon_sym_x_DQUOTE] = ACTIONS(4440),
    [anon_sym_DQUOTE] = ACTIONS(4440),
    [anon_sym_i_BQUOTE] = ACTIONS(4440),
    [anon_sym_i_DQUOTE] = ACTIONS(4440),
    [anon_sym_iq_LBRACE] = ACTIONS(4440),
    [aux_sym_char_literal_token1] = ACTIONS(4440),
    [anon_sym_SQUOTE] = ACTIONS(4438),
    [anon_sym___DATE__] = ACTIONS(4438),
    [anon_sym___FILE__] = ACTIONS(4438),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4438),
    [anon_sym___FUNCTION__] = ACTIONS(4438),
    [anon_sym___LINE__] = ACTIONS(4438),
    [anon_sym___MODULE__] = ACTIONS(4438),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4438),
    [anon_sym___TIME__] = ACTIONS(4438),
    [anon_sym___TIMESTAMP__] = ACTIONS(4438),
    [anon_sym___VENDOR__] = ACTIONS(4438),
    [anon_sym___VERSION__] = ACTIONS(4438),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4440),
    [sym_float_literal] = ACTIONS(4440),
    [sym__string] = ACTIONS(4440),
  },
  [2198] = {
    [sym_identifier] = ACTIONS(4442),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4444),
    [anon_sym_LBRACE] = ACTIONS(4444),
    [anon_sym_DOT] = ACTIONS(4444),
    [anon_sym_AMP] = ACTIONS(4444),
    [anon_sym_DASH] = ACTIONS(4442),
    [anon_sym_DASH_DASH] = ACTIONS(4444),
    [anon_sym_PLUS] = ACTIONS(4442),
    [anon_sym_PLUS_PLUS] = ACTIONS(4444),
    [anon_sym_BANG] = ACTIONS(4444),
    [anon_sym_LPAREN] = ACTIONS(4444),
    [anon_sym_RPAREN] = ACTIONS(4444),
    [anon_sym_LBRACK] = ACTIONS(4444),
    [anon_sym_SEMI] = ACTIONS(4444),
    [anon_sym_DOLLAR] = ACTIONS(4444),
    [anon_sym_STAR] = ACTIONS(4444),
    [anon_sym_TILDE] = ACTIONS(4444),
    [sym_bool] = ACTIONS(4442),
    [sym_byte] = ACTIONS(4442),
    [sym_ubyte] = ACTIONS(4442),
    [sym_char] = ACTIONS(4442),
    [sym_short] = ACTIONS(4442),
    [sym_ushort] = ACTIONS(4442),
    [sym_int] = ACTIONS(4442),
    [sym_uint] = ACTIONS(4442),
    [sym_long] = ACTIONS(4442),
    [sym_ulong] = ACTIONS(4442),
    [sym_cent] = ACTIONS(4442),
    [sym_ucent] = ACTIONS(4442),
    [sym_wchar] = ACTIONS(4442),
    [sym_dchar] = ACTIONS(4442),
    [sym_float] = ACTIONS(4442),
    [sym_double] = ACTIONS(4442),
    [sym_real] = ACTIONS(4442),
    [sym_ifloat] = ACTIONS(4442),
    [sym_idouble] = ACTIONS(4442),
    [sym_ireal] = ACTIONS(4442),
    [sym_cfloat] = ACTIONS(4442),
    [sym_cdouble] = ACTIONS(4442),
    [sym_creal] = ACTIONS(4442),
    [sym_size_t] = ACTIONS(4442),
    [sym_ptrdiff_t] = ACTIONS(4442),
    [sym_string] = ACTIONS(4442),
    [sym_cstring] = ACTIONS(4442),
    [sym_dstring] = ACTIONS(4442),
    [sym_wstring] = ACTIONS(4442),
    [sym_noreturn] = ACTIONS(4442),
    [sym_true] = ACTIONS(4442),
    [sym_false] = ACTIONS(4442),
    [sym_null] = ACTIONS(4442),
    [sym_super] = ACTIONS(4442),
    [sym_this] = ACTIONS(4442),
    [sym_assert] = ACTIONS(4442),
    [sym_auto] = ACTIONS(4442),
    [sym_cast] = ACTIONS(4442),
    [sym_catch] = ACTIONS(4442),
    [sym_const] = ACTIONS(4442),
    [sym_delegate] = ACTIONS(4442),
    [sym_delete] = ACTIONS(4442),
    [sym_do] = ACTIONS(4442),
    [sym_else] = ACTIONS(4442),
    [sym_finally] = ACTIONS(4442),
    [sym_function] = ACTIONS(4442),
    [sym_immutable] = ACTIONS(4442),
    [sym_import] = ACTIONS(4442),
    [sym_in] = ACTIONS(4442),
    [sym_inout] = ACTIONS(4442),
    [sym_is] = ACTIONS(4442),
    [sym_mixin] = ACTIONS(4442),
    [sym_new] = ACTIONS(4442),
    [sym_out] = ACTIONS(4442),
    [sym_ref] = ACTIONS(4442),
    [sym_shared] = ACTIONS(4442),
    [sym_throw] = ACTIONS(4442),
    [sym_typeid] = ACTIONS(4442),
    [sym_typeof] = ACTIONS(4442),
    [sym_traits] = ACTIONS(4442),
    [sym_vector] = ACTIONS(4442),
    [sym_void] = ACTIONS(4442),
    [anon_sym_BQUOTE] = ACTIONS(4444),
    [anon_sym_r_DQUOTE] = ACTIONS(4444),
    [anon_sym_x_DQUOTE] = ACTIONS(4444),
    [anon_sym_DQUOTE] = ACTIONS(4444),
    [anon_sym_i_BQUOTE] = ACTIONS(4444),
    [anon_sym_i_DQUOTE] = ACTIONS(4444),
    [anon_sym_iq_LBRACE] = ACTIONS(4444),
    [aux_sym_char_literal_token1] = ACTIONS(4444),
    [anon_sym_SQUOTE] = ACTIONS(4442),
    [anon_sym___DATE__] = ACTIONS(4442),
    [anon_sym___FILE__] = ACTIONS(4442),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4442),
    [anon_sym___FUNCTION__] = ACTIONS(4442),
    [anon_sym___LINE__] = ACTIONS(4442),
    [anon_sym___MODULE__] = ACTIONS(4442),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4442),
    [anon_sym___TIME__] = ACTIONS(4442),
    [anon_sym___TIMESTAMP__] = ACTIONS(4442),
    [anon_sym___VENDOR__] = ACTIONS(4442),
    [anon_sym___VERSION__] = ACTIONS(4442),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4444),
    [sym_float_literal] = ACTIONS(4444),
    [sym__string] = ACTIONS(4444),
  },
  [2199] = {
    [sym_identifier] = ACTIONS(4452),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4454),
    [anon_sym_LBRACE] = ACTIONS(4454),
    [anon_sym_DOT] = ACTIONS(4454),
    [anon_sym_AMP] = ACTIONS(4454),
    [anon_sym_DASH] = ACTIONS(4452),
    [anon_sym_DASH_DASH] = ACTIONS(4454),
    [anon_sym_PLUS] = ACTIONS(4452),
    [anon_sym_PLUS_PLUS] = ACTIONS(4454),
    [anon_sym_BANG] = ACTIONS(4454),
    [anon_sym_LPAREN] = ACTIONS(4454),
    [anon_sym_RPAREN] = ACTIONS(4454),
    [anon_sym_LBRACK] = ACTIONS(4454),
    [anon_sym_SEMI] = ACTIONS(4454),
    [anon_sym_DOLLAR] = ACTIONS(4454),
    [anon_sym_STAR] = ACTIONS(4454),
    [anon_sym_TILDE] = ACTIONS(4454),
    [sym_bool] = ACTIONS(4452),
    [sym_byte] = ACTIONS(4452),
    [sym_ubyte] = ACTIONS(4452),
    [sym_char] = ACTIONS(4452),
    [sym_short] = ACTIONS(4452),
    [sym_ushort] = ACTIONS(4452),
    [sym_int] = ACTIONS(4452),
    [sym_uint] = ACTIONS(4452),
    [sym_long] = ACTIONS(4452),
    [sym_ulong] = ACTIONS(4452),
    [sym_cent] = ACTIONS(4452),
    [sym_ucent] = ACTIONS(4452),
    [sym_wchar] = ACTIONS(4452),
    [sym_dchar] = ACTIONS(4452),
    [sym_float] = ACTIONS(4452),
    [sym_double] = ACTIONS(4452),
    [sym_real] = ACTIONS(4452),
    [sym_ifloat] = ACTIONS(4452),
    [sym_idouble] = ACTIONS(4452),
    [sym_ireal] = ACTIONS(4452),
    [sym_cfloat] = ACTIONS(4452),
    [sym_cdouble] = ACTIONS(4452),
    [sym_creal] = ACTIONS(4452),
    [sym_size_t] = ACTIONS(4452),
    [sym_ptrdiff_t] = ACTIONS(4452),
    [sym_string] = ACTIONS(4452),
    [sym_cstring] = ACTIONS(4452),
    [sym_dstring] = ACTIONS(4452),
    [sym_wstring] = ACTIONS(4452),
    [sym_noreturn] = ACTIONS(4452),
    [sym_true] = ACTIONS(4452),
    [sym_false] = ACTIONS(4452),
    [sym_null] = ACTIONS(4452),
    [sym_super] = ACTIONS(4452),
    [sym_this] = ACTIONS(4452),
    [sym_assert] = ACTIONS(4452),
    [sym_auto] = ACTIONS(4452),
    [sym_cast] = ACTIONS(4452),
    [sym_catch] = ACTIONS(4452),
    [sym_const] = ACTIONS(4452),
    [sym_delegate] = ACTIONS(4452),
    [sym_delete] = ACTIONS(4452),
    [sym_do] = ACTIONS(4452),
    [sym_else] = ACTIONS(4452),
    [sym_finally] = ACTIONS(4452),
    [sym_function] = ACTIONS(4452),
    [sym_immutable] = ACTIONS(4452),
    [sym_import] = ACTIONS(4452),
    [sym_in] = ACTIONS(4452),
    [sym_inout] = ACTIONS(4452),
    [sym_is] = ACTIONS(4452),
    [sym_mixin] = ACTIONS(4452),
    [sym_new] = ACTIONS(4452),
    [sym_out] = ACTIONS(4452),
    [sym_ref] = ACTIONS(4452),
    [sym_shared] = ACTIONS(4452),
    [sym_throw] = ACTIONS(4452),
    [sym_typeid] = ACTIONS(4452),
    [sym_typeof] = ACTIONS(4452),
    [sym_traits] = ACTIONS(4452),
    [sym_vector] = ACTIONS(4452),
    [sym_void] = ACTIONS(4452),
    [anon_sym_BQUOTE] = ACTIONS(4454),
    [anon_sym_r_DQUOTE] = ACTIONS(4454),
    [anon_sym_x_DQUOTE] = ACTIONS(4454),
    [anon_sym_DQUOTE] = ACTIONS(4454),
    [anon_sym_i_BQUOTE] = ACTIONS(4454),
    [anon_sym_i_DQUOTE] = ACTIONS(4454),
    [anon_sym_iq_LBRACE] = ACTIONS(4454),
    [aux_sym_char_literal_token1] = ACTIONS(4454),
    [anon_sym_SQUOTE] = ACTIONS(4452),
    [anon_sym___DATE__] = ACTIONS(4452),
    [anon_sym___FILE__] = ACTIONS(4452),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4452),
    [anon_sym___FUNCTION__] = ACTIONS(4452),
    [anon_sym___LINE__] = ACTIONS(4452),
    [anon_sym___MODULE__] = ACTIONS(4452),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4452),
    [anon_sym___TIME__] = ACTIONS(4452),
    [anon_sym___TIMESTAMP__] = ACTIONS(4452),
    [anon_sym___VENDOR__] = ACTIONS(4452),
    [anon_sym___VERSION__] = ACTIONS(4452),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4454),
    [sym_float_literal] = ACTIONS(4454),
    [sym__string] = ACTIONS(4454),
  },
  [2200] = {
    [sym_identifier] = ACTIONS(4708),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4710),
    [anon_sym_LBRACE] = ACTIONS(4710),
    [anon_sym_DOT] = ACTIONS(4710),
    [anon_sym_AMP] = ACTIONS(4710),
    [anon_sym_DASH] = ACTIONS(4708),
    [anon_sym_DASH_DASH] = ACTIONS(4710),
    [anon_sym_PLUS] = ACTIONS(4708),
    [anon_sym_PLUS_PLUS] = ACTIONS(4710),
    [anon_sym_BANG] = ACTIONS(4710),
    [anon_sym_LPAREN] = ACTIONS(4710),
    [anon_sym_RPAREN] = ACTIONS(4710),
    [anon_sym_LBRACK] = ACTIONS(4710),
    [anon_sym_SEMI] = ACTIONS(4710),
    [anon_sym_DOLLAR] = ACTIONS(4710),
    [anon_sym_STAR] = ACTIONS(4710),
    [anon_sym_TILDE] = ACTIONS(4710),
    [sym_bool] = ACTIONS(4708),
    [sym_byte] = ACTIONS(4708),
    [sym_ubyte] = ACTIONS(4708),
    [sym_char] = ACTIONS(4708),
    [sym_short] = ACTIONS(4708),
    [sym_ushort] = ACTIONS(4708),
    [sym_int] = ACTIONS(4708),
    [sym_uint] = ACTIONS(4708),
    [sym_long] = ACTIONS(4708),
    [sym_ulong] = ACTIONS(4708),
    [sym_cent] = ACTIONS(4708),
    [sym_ucent] = ACTIONS(4708),
    [sym_wchar] = ACTIONS(4708),
    [sym_dchar] = ACTIONS(4708),
    [sym_float] = ACTIONS(4708),
    [sym_double] = ACTIONS(4708),
    [sym_real] = ACTIONS(4708),
    [sym_ifloat] = ACTIONS(4708),
    [sym_idouble] = ACTIONS(4708),
    [sym_ireal] = ACTIONS(4708),
    [sym_cfloat] = ACTIONS(4708),
    [sym_cdouble] = ACTIONS(4708),
    [sym_creal] = ACTIONS(4708),
    [sym_size_t] = ACTIONS(4708),
    [sym_ptrdiff_t] = ACTIONS(4708),
    [sym_string] = ACTIONS(4708),
    [sym_cstring] = ACTIONS(4708),
    [sym_dstring] = ACTIONS(4708),
    [sym_wstring] = ACTIONS(4708),
    [sym_noreturn] = ACTIONS(4708),
    [sym_true] = ACTIONS(4708),
    [sym_false] = ACTIONS(4708),
    [sym_null] = ACTIONS(4708),
    [sym_super] = ACTIONS(4708),
    [sym_this] = ACTIONS(4708),
    [sym_assert] = ACTIONS(4708),
    [sym_auto] = ACTIONS(4708),
    [sym_cast] = ACTIONS(4708),
    [sym_catch] = ACTIONS(4708),
    [sym_const] = ACTIONS(4708),
    [sym_delegate] = ACTIONS(4708),
    [sym_delete] = ACTIONS(4708),
    [sym_do] = ACTIONS(4708),
    [sym_else] = ACTIONS(4708),
    [sym_finally] = ACTIONS(4708),
    [sym_function] = ACTIONS(4708),
    [sym_immutable] = ACTIONS(4708),
    [sym_import] = ACTIONS(4708),
    [sym_in] = ACTIONS(4708),
    [sym_inout] = ACTIONS(4708),
    [sym_is] = ACTIONS(4708),
    [sym_mixin] = ACTIONS(4708),
    [sym_new] = ACTIONS(4708),
    [sym_out] = ACTIONS(4708),
    [sym_ref] = ACTIONS(4708),
    [sym_shared] = ACTIONS(4708),
    [sym_throw] = ACTIONS(4708),
    [sym_typeid] = ACTIONS(4708),
    [sym_typeof] = ACTIONS(4708),
    [sym_traits] = ACTIONS(4708),
    [sym_vector] = ACTIONS(4708),
    [sym_void] = ACTIONS(4708),
    [anon_sym_BQUOTE] = ACTIONS(4710),
    [anon_sym_r_DQUOTE] = ACTIONS(4710),
    [anon_sym_x_DQUOTE] = ACTIONS(4710),
    [anon_sym_DQUOTE] = ACTIONS(4710),
    [anon_sym_i_BQUOTE] = ACTIONS(4710),
    [anon_sym_i_DQUOTE] = ACTIONS(4710),
    [anon_sym_iq_LBRACE] = ACTIONS(4710),
    [aux_sym_char_literal_token1] = ACTIONS(4710),
    [anon_sym_SQUOTE] = ACTIONS(4708),
    [anon_sym___DATE__] = ACTIONS(4708),
    [anon_sym___FILE__] = ACTIONS(4708),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4708),
    [anon_sym___FUNCTION__] = ACTIONS(4708),
    [anon_sym___LINE__] = ACTIONS(4708),
    [anon_sym___MODULE__] = ACTIONS(4708),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4708),
    [anon_sym___TIME__] = ACTIONS(4708),
    [anon_sym___TIMESTAMP__] = ACTIONS(4708),
    [anon_sym___VENDOR__] = ACTIONS(4708),
    [anon_sym___VERSION__] = ACTIONS(4708),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4710),
    [sym_float_literal] = ACTIONS(4710),
    [sym__string] = ACTIONS(4710),
  },
  [2201] = {
    [sym_identifier] = ACTIONS(4754),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4756),
    [anon_sym_LBRACE] = ACTIONS(4756),
    [anon_sym_DOT] = ACTIONS(4756),
    [anon_sym_AMP] = ACTIONS(4756),
    [anon_sym_DASH] = ACTIONS(4754),
    [anon_sym_DASH_DASH] = ACTIONS(4756),
    [anon_sym_PLUS] = ACTIONS(4754),
    [anon_sym_PLUS_PLUS] = ACTIONS(4756),
    [anon_sym_BANG] = ACTIONS(4756),
    [anon_sym_LPAREN] = ACTIONS(4756),
    [anon_sym_RPAREN] = ACTIONS(4756),
    [anon_sym_LBRACK] = ACTIONS(4756),
    [anon_sym_SEMI] = ACTIONS(4756),
    [anon_sym_DOLLAR] = ACTIONS(4756),
    [anon_sym_STAR] = ACTIONS(4756),
    [anon_sym_TILDE] = ACTIONS(4756),
    [sym_bool] = ACTIONS(4754),
    [sym_byte] = ACTIONS(4754),
    [sym_ubyte] = ACTIONS(4754),
    [sym_char] = ACTIONS(4754),
    [sym_short] = ACTIONS(4754),
    [sym_ushort] = ACTIONS(4754),
    [sym_int] = ACTIONS(4754),
    [sym_uint] = ACTIONS(4754),
    [sym_long] = ACTIONS(4754),
    [sym_ulong] = ACTIONS(4754),
    [sym_cent] = ACTIONS(4754),
    [sym_ucent] = ACTIONS(4754),
    [sym_wchar] = ACTIONS(4754),
    [sym_dchar] = ACTIONS(4754),
    [sym_float] = ACTIONS(4754),
    [sym_double] = ACTIONS(4754),
    [sym_real] = ACTIONS(4754),
    [sym_ifloat] = ACTIONS(4754),
    [sym_idouble] = ACTIONS(4754),
    [sym_ireal] = ACTIONS(4754),
    [sym_cfloat] = ACTIONS(4754),
    [sym_cdouble] = ACTIONS(4754),
    [sym_creal] = ACTIONS(4754),
    [sym_size_t] = ACTIONS(4754),
    [sym_ptrdiff_t] = ACTIONS(4754),
    [sym_string] = ACTIONS(4754),
    [sym_cstring] = ACTIONS(4754),
    [sym_dstring] = ACTIONS(4754),
    [sym_wstring] = ACTIONS(4754),
    [sym_noreturn] = ACTIONS(4754),
    [sym_true] = ACTIONS(4754),
    [sym_false] = ACTIONS(4754),
    [sym_null] = ACTIONS(4754),
    [sym_super] = ACTIONS(4754),
    [sym_this] = ACTIONS(4754),
    [sym_assert] = ACTIONS(4754),
    [sym_auto] = ACTIONS(4754),
    [sym_cast] = ACTIONS(4754),
    [sym_catch] = ACTIONS(4754),
    [sym_const] = ACTIONS(4754),
    [sym_delegate] = ACTIONS(4754),
    [sym_delete] = ACTIONS(4754),
    [sym_do] = ACTIONS(4754),
    [sym_else] = ACTIONS(4754),
    [sym_finally] = ACTIONS(4754),
    [sym_function] = ACTIONS(4754),
    [sym_immutable] = ACTIONS(4754),
    [sym_import] = ACTIONS(4754),
    [sym_in] = ACTIONS(4754),
    [sym_inout] = ACTIONS(4754),
    [sym_is] = ACTIONS(4754),
    [sym_mixin] = ACTIONS(4754),
    [sym_new] = ACTIONS(4754),
    [sym_out] = ACTIONS(4754),
    [sym_ref] = ACTIONS(4754),
    [sym_shared] = ACTIONS(4754),
    [sym_throw] = ACTIONS(4754),
    [sym_typeid] = ACTIONS(4754),
    [sym_typeof] = ACTIONS(4754),
    [sym_traits] = ACTIONS(4754),
    [sym_vector] = ACTIONS(4754),
    [sym_void] = ACTIONS(4754),
    [anon_sym_BQUOTE] = ACTIONS(4756),
    [anon_sym_r_DQUOTE] = ACTIONS(4756),
    [anon_sym_x_DQUOTE] = ACTIONS(4756),
    [anon_sym_DQUOTE] = ACTIONS(4756),
    [anon_sym_i_BQUOTE] = ACTIONS(4756),
    [anon_sym_i_DQUOTE] = ACTIONS(4756),
    [anon_sym_iq_LBRACE] = ACTIONS(4756),
    [aux_sym_char_literal_token1] = ACTIONS(4756),
    [anon_sym_SQUOTE] = ACTIONS(4754),
    [anon_sym___DATE__] = ACTIONS(4754),
    [anon_sym___FILE__] = ACTIONS(4754),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4754),
    [anon_sym___FUNCTION__] = ACTIONS(4754),
    [anon_sym___LINE__] = ACTIONS(4754),
    [anon_sym___MODULE__] = ACTIONS(4754),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4754),
    [anon_sym___TIME__] = ACTIONS(4754),
    [anon_sym___TIMESTAMP__] = ACTIONS(4754),
    [anon_sym___VENDOR__] = ACTIONS(4754),
    [anon_sym___VERSION__] = ACTIONS(4754),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4756),
    [sym_float_literal] = ACTIONS(4756),
    [sym__string] = ACTIONS(4756),
  },
  [2202] = {
    [sym_identifier] = ACTIONS(4694),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4696),
    [anon_sym_LBRACE] = ACTIONS(4696),
    [anon_sym_DOT] = ACTIONS(4696),
    [anon_sym_AMP] = ACTIONS(4696),
    [anon_sym_DASH] = ACTIONS(4694),
    [anon_sym_DASH_DASH] = ACTIONS(4696),
    [anon_sym_PLUS] = ACTIONS(4694),
    [anon_sym_PLUS_PLUS] = ACTIONS(4696),
    [anon_sym_BANG] = ACTIONS(4696),
    [anon_sym_LPAREN] = ACTIONS(4696),
    [anon_sym_RPAREN] = ACTIONS(4696),
    [anon_sym_LBRACK] = ACTIONS(4696),
    [anon_sym_SEMI] = ACTIONS(4696),
    [anon_sym_DOLLAR] = ACTIONS(4696),
    [anon_sym_STAR] = ACTIONS(4696),
    [anon_sym_TILDE] = ACTIONS(4696),
    [sym_bool] = ACTIONS(4694),
    [sym_byte] = ACTIONS(4694),
    [sym_ubyte] = ACTIONS(4694),
    [sym_char] = ACTIONS(4694),
    [sym_short] = ACTIONS(4694),
    [sym_ushort] = ACTIONS(4694),
    [sym_int] = ACTIONS(4694),
    [sym_uint] = ACTIONS(4694),
    [sym_long] = ACTIONS(4694),
    [sym_ulong] = ACTIONS(4694),
    [sym_cent] = ACTIONS(4694),
    [sym_ucent] = ACTIONS(4694),
    [sym_wchar] = ACTIONS(4694),
    [sym_dchar] = ACTIONS(4694),
    [sym_float] = ACTIONS(4694),
    [sym_double] = ACTIONS(4694),
    [sym_real] = ACTIONS(4694),
    [sym_ifloat] = ACTIONS(4694),
    [sym_idouble] = ACTIONS(4694),
    [sym_ireal] = ACTIONS(4694),
    [sym_cfloat] = ACTIONS(4694),
    [sym_cdouble] = ACTIONS(4694),
    [sym_creal] = ACTIONS(4694),
    [sym_size_t] = ACTIONS(4694),
    [sym_ptrdiff_t] = ACTIONS(4694),
    [sym_string] = ACTIONS(4694),
    [sym_cstring] = ACTIONS(4694),
    [sym_dstring] = ACTIONS(4694),
    [sym_wstring] = ACTIONS(4694),
    [sym_noreturn] = ACTIONS(4694),
    [sym_true] = ACTIONS(4694),
    [sym_false] = ACTIONS(4694),
    [sym_null] = ACTIONS(4694),
    [sym_super] = ACTIONS(4694),
    [sym_this] = ACTIONS(4694),
    [sym_assert] = ACTIONS(4694),
    [sym_auto] = ACTIONS(4694),
    [sym_cast] = ACTIONS(4694),
    [sym_catch] = ACTIONS(4694),
    [sym_const] = ACTIONS(4694),
    [sym_delegate] = ACTIONS(4694),
    [sym_delete] = ACTIONS(4694),
    [sym_do] = ACTIONS(4694),
    [sym_else] = ACTIONS(4694),
    [sym_finally] = ACTIONS(4694),
    [sym_function] = ACTIONS(4694),
    [sym_immutable] = ACTIONS(4694),
    [sym_import] = ACTIONS(4694),
    [sym_in] = ACTIONS(4694),
    [sym_inout] = ACTIONS(4694),
    [sym_is] = ACTIONS(4694),
    [sym_mixin] = ACTIONS(4694),
    [sym_new] = ACTIONS(4694),
    [sym_out] = ACTIONS(4694),
    [sym_ref] = ACTIONS(4694),
    [sym_shared] = ACTIONS(4694),
    [sym_throw] = ACTIONS(4694),
    [sym_typeid] = ACTIONS(4694),
    [sym_typeof] = ACTIONS(4694),
    [sym_traits] = ACTIONS(4694),
    [sym_vector] = ACTIONS(4694),
    [sym_void] = ACTIONS(4694),
    [anon_sym_BQUOTE] = ACTIONS(4696),
    [anon_sym_r_DQUOTE] = ACTIONS(4696),
    [anon_sym_x_DQUOTE] = ACTIONS(4696),
    [anon_sym_DQUOTE] = ACTIONS(4696),
    [anon_sym_i_BQUOTE] = ACTIONS(4696),
    [anon_sym_i_DQUOTE] = ACTIONS(4696),
    [anon_sym_iq_LBRACE] = ACTIONS(4696),
    [aux_sym_char_literal_token1] = ACTIONS(4696),
    [anon_sym_SQUOTE] = ACTIONS(4694),
    [anon_sym___DATE__] = ACTIONS(4694),
    [anon_sym___FILE__] = ACTIONS(4694),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4694),
    [anon_sym___FUNCTION__] = ACTIONS(4694),
    [anon_sym___LINE__] = ACTIONS(4694),
    [anon_sym___MODULE__] = ACTIONS(4694),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4694),
    [anon_sym___TIME__] = ACTIONS(4694),
    [anon_sym___TIMESTAMP__] = ACTIONS(4694),
    [anon_sym___VENDOR__] = ACTIONS(4694),
    [anon_sym___VERSION__] = ACTIONS(4694),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4696),
    [sym_float_literal] = ACTIONS(4696),
    [sym__string] = ACTIONS(4696),
  },
  [2203] = {
    [sym_identifier] = ACTIONS(4534),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4536),
    [anon_sym_LBRACE] = ACTIONS(4536),
    [anon_sym_DOT] = ACTIONS(4536),
    [anon_sym_AMP] = ACTIONS(4536),
    [anon_sym_DASH] = ACTIONS(4534),
    [anon_sym_DASH_DASH] = ACTIONS(4536),
    [anon_sym_PLUS] = ACTIONS(4534),
    [anon_sym_PLUS_PLUS] = ACTIONS(4536),
    [anon_sym_BANG] = ACTIONS(4536),
    [anon_sym_LPAREN] = ACTIONS(4536),
    [anon_sym_RPAREN] = ACTIONS(4536),
    [anon_sym_LBRACK] = ACTIONS(4536),
    [anon_sym_SEMI] = ACTIONS(4536),
    [anon_sym_DOLLAR] = ACTIONS(4536),
    [anon_sym_STAR] = ACTIONS(4536),
    [anon_sym_TILDE] = ACTIONS(4536),
    [sym_bool] = ACTIONS(4534),
    [sym_byte] = ACTIONS(4534),
    [sym_ubyte] = ACTIONS(4534),
    [sym_char] = ACTIONS(4534),
    [sym_short] = ACTIONS(4534),
    [sym_ushort] = ACTIONS(4534),
    [sym_int] = ACTIONS(4534),
    [sym_uint] = ACTIONS(4534),
    [sym_long] = ACTIONS(4534),
    [sym_ulong] = ACTIONS(4534),
    [sym_cent] = ACTIONS(4534),
    [sym_ucent] = ACTIONS(4534),
    [sym_wchar] = ACTIONS(4534),
    [sym_dchar] = ACTIONS(4534),
    [sym_float] = ACTIONS(4534),
    [sym_double] = ACTIONS(4534),
    [sym_real] = ACTIONS(4534),
    [sym_ifloat] = ACTIONS(4534),
    [sym_idouble] = ACTIONS(4534),
    [sym_ireal] = ACTIONS(4534),
    [sym_cfloat] = ACTIONS(4534),
    [sym_cdouble] = ACTIONS(4534),
    [sym_creal] = ACTIONS(4534),
    [sym_size_t] = ACTIONS(4534),
    [sym_ptrdiff_t] = ACTIONS(4534),
    [sym_string] = ACTIONS(4534),
    [sym_cstring] = ACTIONS(4534),
    [sym_dstring] = ACTIONS(4534),
    [sym_wstring] = ACTIONS(4534),
    [sym_noreturn] = ACTIONS(4534),
    [sym_true] = ACTIONS(4534),
    [sym_false] = ACTIONS(4534),
    [sym_null] = ACTIONS(4534),
    [sym_super] = ACTIONS(4534),
    [sym_this] = ACTIONS(4534),
    [sym_assert] = ACTIONS(4534),
    [sym_auto] = ACTIONS(4534),
    [sym_cast] = ACTIONS(4534),
    [sym_catch] = ACTIONS(4534),
    [sym_const] = ACTIONS(4534),
    [sym_delegate] = ACTIONS(4534),
    [sym_delete] = ACTIONS(4534),
    [sym_do] = ACTIONS(4534),
    [sym_else] = ACTIONS(4534),
    [sym_finally] = ACTIONS(4534),
    [sym_function] = ACTIONS(4534),
    [sym_immutable] = ACTIONS(4534),
    [sym_import] = ACTIONS(4534),
    [sym_in] = ACTIONS(4534),
    [sym_inout] = ACTIONS(4534),
    [sym_is] = ACTIONS(4534),
    [sym_mixin] = ACTIONS(4534),
    [sym_new] = ACTIONS(4534),
    [sym_out] = ACTIONS(4534),
    [sym_ref] = ACTIONS(4534),
    [sym_shared] = ACTIONS(4534),
    [sym_throw] = ACTIONS(4534),
    [sym_typeid] = ACTIONS(4534),
    [sym_typeof] = ACTIONS(4534),
    [sym_traits] = ACTIONS(4534),
    [sym_vector] = ACTIONS(4534),
    [sym_void] = ACTIONS(4534),
    [anon_sym_BQUOTE] = ACTIONS(4536),
    [anon_sym_r_DQUOTE] = ACTIONS(4536),
    [anon_sym_x_DQUOTE] = ACTIONS(4536),
    [anon_sym_DQUOTE] = ACTIONS(4536),
    [anon_sym_i_BQUOTE] = ACTIONS(4536),
    [anon_sym_i_DQUOTE] = ACTIONS(4536),
    [anon_sym_iq_LBRACE] = ACTIONS(4536),
    [aux_sym_char_literal_token1] = ACTIONS(4536),
    [anon_sym_SQUOTE] = ACTIONS(4534),
    [anon_sym___DATE__] = ACTIONS(4534),
    [anon_sym___FILE__] = ACTIONS(4534),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4534),
    [anon_sym___FUNCTION__] = ACTIONS(4534),
    [anon_sym___LINE__] = ACTIONS(4534),
    [anon_sym___MODULE__] = ACTIONS(4534),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4534),
    [anon_sym___TIME__] = ACTIONS(4534),
    [anon_sym___TIMESTAMP__] = ACTIONS(4534),
    [anon_sym___VENDOR__] = ACTIONS(4534),
    [anon_sym___VERSION__] = ACTIONS(4534),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4536),
    [sym_float_literal] = ACTIONS(4536),
    [sym__string] = ACTIONS(4536),
  },
  [2204] = {
    [sym_identifier] = ACTIONS(4828),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4830),
    [anon_sym_LBRACE] = ACTIONS(4830),
    [anon_sym_DOT] = ACTIONS(4830),
    [anon_sym_AMP] = ACTIONS(4830),
    [anon_sym_DASH] = ACTIONS(4828),
    [anon_sym_DASH_DASH] = ACTIONS(4830),
    [anon_sym_PLUS] = ACTIONS(4828),
    [anon_sym_PLUS_PLUS] = ACTIONS(4830),
    [anon_sym_BANG] = ACTIONS(4830),
    [anon_sym_LPAREN] = ACTIONS(4830),
    [anon_sym_RPAREN] = ACTIONS(4830),
    [anon_sym_LBRACK] = ACTIONS(4830),
    [anon_sym_SEMI] = ACTIONS(4830),
    [anon_sym_DOLLAR] = ACTIONS(4830),
    [anon_sym_STAR] = ACTIONS(4830),
    [anon_sym_TILDE] = ACTIONS(4830),
    [sym_bool] = ACTIONS(4828),
    [sym_byte] = ACTIONS(4828),
    [sym_ubyte] = ACTIONS(4828),
    [sym_char] = ACTIONS(4828),
    [sym_short] = ACTIONS(4828),
    [sym_ushort] = ACTIONS(4828),
    [sym_int] = ACTIONS(4828),
    [sym_uint] = ACTIONS(4828),
    [sym_long] = ACTIONS(4828),
    [sym_ulong] = ACTIONS(4828),
    [sym_cent] = ACTIONS(4828),
    [sym_ucent] = ACTIONS(4828),
    [sym_wchar] = ACTIONS(4828),
    [sym_dchar] = ACTIONS(4828),
    [sym_float] = ACTIONS(4828),
    [sym_double] = ACTIONS(4828),
    [sym_real] = ACTIONS(4828),
    [sym_ifloat] = ACTIONS(4828),
    [sym_idouble] = ACTIONS(4828),
    [sym_ireal] = ACTIONS(4828),
    [sym_cfloat] = ACTIONS(4828),
    [sym_cdouble] = ACTIONS(4828),
    [sym_creal] = ACTIONS(4828),
    [sym_size_t] = ACTIONS(4828),
    [sym_ptrdiff_t] = ACTIONS(4828),
    [sym_string] = ACTIONS(4828),
    [sym_cstring] = ACTIONS(4828),
    [sym_dstring] = ACTIONS(4828),
    [sym_wstring] = ACTIONS(4828),
    [sym_noreturn] = ACTIONS(4828),
    [sym_true] = ACTIONS(4828),
    [sym_false] = ACTIONS(4828),
    [sym_null] = ACTIONS(4828),
    [sym_super] = ACTIONS(4828),
    [sym_this] = ACTIONS(4828),
    [sym_assert] = ACTIONS(4828),
    [sym_auto] = ACTIONS(4828),
    [sym_cast] = ACTIONS(4828),
    [sym_catch] = ACTIONS(4828),
    [sym_const] = ACTIONS(4828),
    [sym_delegate] = ACTIONS(4828),
    [sym_delete] = ACTIONS(4828),
    [sym_do] = ACTIONS(4828),
    [sym_else] = ACTIONS(4828),
    [sym_finally] = ACTIONS(4828),
    [sym_function] = ACTIONS(4828),
    [sym_immutable] = ACTIONS(4828),
    [sym_import] = ACTIONS(4828),
    [sym_in] = ACTIONS(4828),
    [sym_inout] = ACTIONS(4828),
    [sym_is] = ACTIONS(4828),
    [sym_mixin] = ACTIONS(4828),
    [sym_new] = ACTIONS(4828),
    [sym_out] = ACTIONS(4828),
    [sym_ref] = ACTIONS(4828),
    [sym_shared] = ACTIONS(4828),
    [sym_throw] = ACTIONS(4828),
    [sym_typeid] = ACTIONS(4828),
    [sym_typeof] = ACTIONS(4828),
    [sym_traits] = ACTIONS(4828),
    [sym_vector] = ACTIONS(4828),
    [sym_void] = ACTIONS(4828),
    [anon_sym_BQUOTE] = ACTIONS(4830),
    [anon_sym_r_DQUOTE] = ACTIONS(4830),
    [anon_sym_x_DQUOTE] = ACTIONS(4830),
    [anon_sym_DQUOTE] = ACTIONS(4830),
    [anon_sym_i_BQUOTE] = ACTIONS(4830),
    [anon_sym_i_DQUOTE] = ACTIONS(4830),
    [anon_sym_iq_LBRACE] = ACTIONS(4830),
    [aux_sym_char_literal_token1] = ACTIONS(4830),
    [anon_sym_SQUOTE] = ACTIONS(4828),
    [anon_sym___DATE__] = ACTIONS(4828),
    [anon_sym___FILE__] = ACTIONS(4828),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4828),
    [anon_sym___FUNCTION__] = ACTIONS(4828),
    [anon_sym___LINE__] = ACTIONS(4828),
    [anon_sym___MODULE__] = ACTIONS(4828),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4828),
    [anon_sym___TIME__] = ACTIONS(4828),
    [anon_sym___TIMESTAMP__] = ACTIONS(4828),
    [anon_sym___VENDOR__] = ACTIONS(4828),
    [anon_sym___VERSION__] = ACTIONS(4828),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4830),
    [sym_float_literal] = ACTIONS(4830),
    [sym__string] = ACTIONS(4830),
  },
  [2205] = {
    [sym_identifier] = ACTIONS(4606),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4608),
    [anon_sym_LBRACE] = ACTIONS(4608),
    [anon_sym_DOT] = ACTIONS(4608),
    [anon_sym_AMP] = ACTIONS(4608),
    [anon_sym_DASH] = ACTIONS(4606),
    [anon_sym_DASH_DASH] = ACTIONS(4608),
    [anon_sym_PLUS] = ACTIONS(4606),
    [anon_sym_PLUS_PLUS] = ACTIONS(4608),
    [anon_sym_BANG] = ACTIONS(4608),
    [anon_sym_LPAREN] = ACTIONS(4608),
    [anon_sym_RPAREN] = ACTIONS(4608),
    [anon_sym_LBRACK] = ACTIONS(4608),
    [anon_sym_SEMI] = ACTIONS(4608),
    [anon_sym_DOLLAR] = ACTIONS(4608),
    [anon_sym_STAR] = ACTIONS(4608),
    [anon_sym_TILDE] = ACTIONS(4608),
    [sym_bool] = ACTIONS(4606),
    [sym_byte] = ACTIONS(4606),
    [sym_ubyte] = ACTIONS(4606),
    [sym_char] = ACTIONS(4606),
    [sym_short] = ACTIONS(4606),
    [sym_ushort] = ACTIONS(4606),
    [sym_int] = ACTIONS(4606),
    [sym_uint] = ACTIONS(4606),
    [sym_long] = ACTIONS(4606),
    [sym_ulong] = ACTIONS(4606),
    [sym_cent] = ACTIONS(4606),
    [sym_ucent] = ACTIONS(4606),
    [sym_wchar] = ACTIONS(4606),
    [sym_dchar] = ACTIONS(4606),
    [sym_float] = ACTIONS(4606),
    [sym_double] = ACTIONS(4606),
    [sym_real] = ACTIONS(4606),
    [sym_ifloat] = ACTIONS(4606),
    [sym_idouble] = ACTIONS(4606),
    [sym_ireal] = ACTIONS(4606),
    [sym_cfloat] = ACTIONS(4606),
    [sym_cdouble] = ACTIONS(4606),
    [sym_creal] = ACTIONS(4606),
    [sym_size_t] = ACTIONS(4606),
    [sym_ptrdiff_t] = ACTIONS(4606),
    [sym_string] = ACTIONS(4606),
    [sym_cstring] = ACTIONS(4606),
    [sym_dstring] = ACTIONS(4606),
    [sym_wstring] = ACTIONS(4606),
    [sym_noreturn] = ACTIONS(4606),
    [sym_true] = ACTIONS(4606),
    [sym_false] = ACTIONS(4606),
    [sym_null] = ACTIONS(4606),
    [sym_super] = ACTIONS(4606),
    [sym_this] = ACTIONS(4606),
    [sym_assert] = ACTIONS(4606),
    [sym_auto] = ACTIONS(4606),
    [sym_cast] = ACTIONS(4606),
    [sym_catch] = ACTIONS(4606),
    [sym_const] = ACTIONS(4606),
    [sym_delegate] = ACTIONS(4606),
    [sym_delete] = ACTIONS(4606),
    [sym_do] = ACTIONS(4606),
    [sym_else] = ACTIONS(4606),
    [sym_finally] = ACTIONS(4606),
    [sym_function] = ACTIONS(4606),
    [sym_immutable] = ACTIONS(4606),
    [sym_import] = ACTIONS(4606),
    [sym_in] = ACTIONS(4606),
    [sym_inout] = ACTIONS(4606),
    [sym_is] = ACTIONS(4606),
    [sym_mixin] = ACTIONS(4606),
    [sym_new] = ACTIONS(4606),
    [sym_out] = ACTIONS(4606),
    [sym_ref] = ACTIONS(4606),
    [sym_shared] = ACTIONS(4606),
    [sym_throw] = ACTIONS(4606),
    [sym_typeid] = ACTIONS(4606),
    [sym_typeof] = ACTIONS(4606),
    [sym_traits] = ACTIONS(4606),
    [sym_vector] = ACTIONS(4606),
    [sym_void] = ACTIONS(4606),
    [anon_sym_BQUOTE] = ACTIONS(4608),
    [anon_sym_r_DQUOTE] = ACTIONS(4608),
    [anon_sym_x_DQUOTE] = ACTIONS(4608),
    [anon_sym_DQUOTE] = ACTIONS(4608),
    [anon_sym_i_BQUOTE] = ACTIONS(4608),
    [anon_sym_i_DQUOTE] = ACTIONS(4608),
    [anon_sym_iq_LBRACE] = ACTIONS(4608),
    [aux_sym_char_literal_token1] = ACTIONS(4608),
    [anon_sym_SQUOTE] = ACTIONS(4606),
    [anon_sym___DATE__] = ACTIONS(4606),
    [anon_sym___FILE__] = ACTIONS(4606),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4606),
    [anon_sym___FUNCTION__] = ACTIONS(4606),
    [anon_sym___LINE__] = ACTIONS(4606),
    [anon_sym___MODULE__] = ACTIONS(4606),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4606),
    [anon_sym___TIME__] = ACTIONS(4606),
    [anon_sym___TIMESTAMP__] = ACTIONS(4606),
    [anon_sym___VENDOR__] = ACTIONS(4606),
    [anon_sym___VERSION__] = ACTIONS(4606),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4608),
    [sym_float_literal] = ACTIONS(4608),
    [sym__string] = ACTIONS(4608),
  },
  [2206] = {
    [sym_identifier] = ACTIONS(4590),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4592),
    [anon_sym_LBRACE] = ACTIONS(4592),
    [anon_sym_DOT] = ACTIONS(4592),
    [anon_sym_AMP] = ACTIONS(4592),
    [anon_sym_DASH] = ACTIONS(4590),
    [anon_sym_DASH_DASH] = ACTIONS(4592),
    [anon_sym_PLUS] = ACTIONS(4590),
    [anon_sym_PLUS_PLUS] = ACTIONS(4592),
    [anon_sym_BANG] = ACTIONS(4592),
    [anon_sym_LPAREN] = ACTIONS(4592),
    [anon_sym_RPAREN] = ACTIONS(4592),
    [anon_sym_LBRACK] = ACTIONS(4592),
    [anon_sym_SEMI] = ACTIONS(4592),
    [anon_sym_DOLLAR] = ACTIONS(4592),
    [anon_sym_STAR] = ACTIONS(4592),
    [anon_sym_TILDE] = ACTIONS(4592),
    [sym_bool] = ACTIONS(4590),
    [sym_byte] = ACTIONS(4590),
    [sym_ubyte] = ACTIONS(4590),
    [sym_char] = ACTIONS(4590),
    [sym_short] = ACTIONS(4590),
    [sym_ushort] = ACTIONS(4590),
    [sym_int] = ACTIONS(4590),
    [sym_uint] = ACTIONS(4590),
    [sym_long] = ACTIONS(4590),
    [sym_ulong] = ACTIONS(4590),
    [sym_cent] = ACTIONS(4590),
    [sym_ucent] = ACTIONS(4590),
    [sym_wchar] = ACTIONS(4590),
    [sym_dchar] = ACTIONS(4590),
    [sym_float] = ACTIONS(4590),
    [sym_double] = ACTIONS(4590),
    [sym_real] = ACTIONS(4590),
    [sym_ifloat] = ACTIONS(4590),
    [sym_idouble] = ACTIONS(4590),
    [sym_ireal] = ACTIONS(4590),
    [sym_cfloat] = ACTIONS(4590),
    [sym_cdouble] = ACTIONS(4590),
    [sym_creal] = ACTIONS(4590),
    [sym_size_t] = ACTIONS(4590),
    [sym_ptrdiff_t] = ACTIONS(4590),
    [sym_string] = ACTIONS(4590),
    [sym_cstring] = ACTIONS(4590),
    [sym_dstring] = ACTIONS(4590),
    [sym_wstring] = ACTIONS(4590),
    [sym_noreturn] = ACTIONS(4590),
    [sym_true] = ACTIONS(4590),
    [sym_false] = ACTIONS(4590),
    [sym_null] = ACTIONS(4590),
    [sym_super] = ACTIONS(4590),
    [sym_this] = ACTIONS(4590),
    [sym_assert] = ACTIONS(4590),
    [sym_auto] = ACTIONS(4590),
    [sym_cast] = ACTIONS(4590),
    [sym_catch] = ACTIONS(4590),
    [sym_const] = ACTIONS(4590),
    [sym_delegate] = ACTIONS(4590),
    [sym_delete] = ACTIONS(4590),
    [sym_do] = ACTIONS(4590),
    [sym_else] = ACTIONS(4590),
    [sym_finally] = ACTIONS(4590),
    [sym_function] = ACTIONS(4590),
    [sym_immutable] = ACTIONS(4590),
    [sym_import] = ACTIONS(4590),
    [sym_in] = ACTIONS(4590),
    [sym_inout] = ACTIONS(4590),
    [sym_is] = ACTIONS(4590),
    [sym_mixin] = ACTIONS(4590),
    [sym_new] = ACTIONS(4590),
    [sym_out] = ACTIONS(4590),
    [sym_ref] = ACTIONS(4590),
    [sym_shared] = ACTIONS(4590),
    [sym_throw] = ACTIONS(4590),
    [sym_typeid] = ACTIONS(4590),
    [sym_typeof] = ACTIONS(4590),
    [sym_traits] = ACTIONS(4590),
    [sym_vector] = ACTIONS(4590),
    [sym_void] = ACTIONS(4590),
    [anon_sym_BQUOTE] = ACTIONS(4592),
    [anon_sym_r_DQUOTE] = ACTIONS(4592),
    [anon_sym_x_DQUOTE] = ACTIONS(4592),
    [anon_sym_DQUOTE] = ACTIONS(4592),
    [anon_sym_i_BQUOTE] = ACTIONS(4592),
    [anon_sym_i_DQUOTE] = ACTIONS(4592),
    [anon_sym_iq_LBRACE] = ACTIONS(4592),
    [aux_sym_char_literal_token1] = ACTIONS(4592),
    [anon_sym_SQUOTE] = ACTIONS(4590),
    [anon_sym___DATE__] = ACTIONS(4590),
    [anon_sym___FILE__] = ACTIONS(4590),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4590),
    [anon_sym___FUNCTION__] = ACTIONS(4590),
    [anon_sym___LINE__] = ACTIONS(4590),
    [anon_sym___MODULE__] = ACTIONS(4590),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4590),
    [anon_sym___TIME__] = ACTIONS(4590),
    [anon_sym___TIMESTAMP__] = ACTIONS(4590),
    [anon_sym___VENDOR__] = ACTIONS(4590),
    [anon_sym___VERSION__] = ACTIONS(4590),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4592),
    [sym_float_literal] = ACTIONS(4592),
    [sym__string] = ACTIONS(4592),
  },
  [2207] = {
    [sym_identifier] = ACTIONS(4500),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4502),
    [anon_sym_LBRACE] = ACTIONS(4502),
    [anon_sym_DOT] = ACTIONS(4502),
    [anon_sym_AMP] = ACTIONS(4502),
    [anon_sym_DASH] = ACTIONS(4500),
    [anon_sym_DASH_DASH] = ACTIONS(4502),
    [anon_sym_PLUS] = ACTIONS(4500),
    [anon_sym_PLUS_PLUS] = ACTIONS(4502),
    [anon_sym_BANG] = ACTIONS(4502),
    [anon_sym_LPAREN] = ACTIONS(4502),
    [anon_sym_RPAREN] = ACTIONS(4502),
    [anon_sym_LBRACK] = ACTIONS(4502),
    [anon_sym_SEMI] = ACTIONS(4502),
    [anon_sym_DOLLAR] = ACTIONS(4502),
    [anon_sym_STAR] = ACTIONS(4502),
    [anon_sym_TILDE] = ACTIONS(4502),
    [sym_bool] = ACTIONS(4500),
    [sym_byte] = ACTIONS(4500),
    [sym_ubyte] = ACTIONS(4500),
    [sym_char] = ACTIONS(4500),
    [sym_short] = ACTIONS(4500),
    [sym_ushort] = ACTIONS(4500),
    [sym_int] = ACTIONS(4500),
    [sym_uint] = ACTIONS(4500),
    [sym_long] = ACTIONS(4500),
    [sym_ulong] = ACTIONS(4500),
    [sym_cent] = ACTIONS(4500),
    [sym_ucent] = ACTIONS(4500),
    [sym_wchar] = ACTIONS(4500),
    [sym_dchar] = ACTIONS(4500),
    [sym_float] = ACTIONS(4500),
    [sym_double] = ACTIONS(4500),
    [sym_real] = ACTIONS(4500),
    [sym_ifloat] = ACTIONS(4500),
    [sym_idouble] = ACTIONS(4500),
    [sym_ireal] = ACTIONS(4500),
    [sym_cfloat] = ACTIONS(4500),
    [sym_cdouble] = ACTIONS(4500),
    [sym_creal] = ACTIONS(4500),
    [sym_size_t] = ACTIONS(4500),
    [sym_ptrdiff_t] = ACTIONS(4500),
    [sym_string] = ACTIONS(4500),
    [sym_cstring] = ACTIONS(4500),
    [sym_dstring] = ACTIONS(4500),
    [sym_wstring] = ACTIONS(4500),
    [sym_noreturn] = ACTIONS(4500),
    [sym_true] = ACTIONS(4500),
    [sym_false] = ACTIONS(4500),
    [sym_null] = ACTIONS(4500),
    [sym_super] = ACTIONS(4500),
    [sym_this] = ACTIONS(4500),
    [sym_assert] = ACTIONS(4500),
    [sym_auto] = ACTIONS(4500),
    [sym_cast] = ACTIONS(4500),
    [sym_catch] = ACTIONS(4500),
    [sym_const] = ACTIONS(4500),
    [sym_delegate] = ACTIONS(4500),
    [sym_delete] = ACTIONS(4500),
    [sym_do] = ACTIONS(4500),
    [sym_else] = ACTIONS(4500),
    [sym_finally] = ACTIONS(4500),
    [sym_function] = ACTIONS(4500),
    [sym_immutable] = ACTIONS(4500),
    [sym_import] = ACTIONS(4500),
    [sym_in] = ACTIONS(4500),
    [sym_inout] = ACTIONS(4500),
    [sym_is] = ACTIONS(4500),
    [sym_mixin] = ACTIONS(4500),
    [sym_new] = ACTIONS(4500),
    [sym_out] = ACTIONS(4500),
    [sym_ref] = ACTIONS(4500),
    [sym_shared] = ACTIONS(4500),
    [sym_throw] = ACTIONS(4500),
    [sym_typeid] = ACTIONS(4500),
    [sym_typeof] = ACTIONS(4500),
    [sym_traits] = ACTIONS(4500),
    [sym_vector] = ACTIONS(4500),
    [sym_void] = ACTIONS(4500),
    [anon_sym_BQUOTE] = ACTIONS(4502),
    [anon_sym_r_DQUOTE] = ACTIONS(4502),
    [anon_sym_x_DQUOTE] = ACTIONS(4502),
    [anon_sym_DQUOTE] = ACTIONS(4502),
    [anon_sym_i_BQUOTE] = ACTIONS(4502),
    [anon_sym_i_DQUOTE] = ACTIONS(4502),
    [anon_sym_iq_LBRACE] = ACTIONS(4502),
    [aux_sym_char_literal_token1] = ACTIONS(4502),
    [anon_sym_SQUOTE] = ACTIONS(4500),
    [anon_sym___DATE__] = ACTIONS(4500),
    [anon_sym___FILE__] = ACTIONS(4500),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4500),
    [anon_sym___FUNCTION__] = ACTIONS(4500),
    [anon_sym___LINE__] = ACTIONS(4500),
    [anon_sym___MODULE__] = ACTIONS(4500),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4500),
    [anon_sym___TIME__] = ACTIONS(4500),
    [anon_sym___TIMESTAMP__] = ACTIONS(4500),
    [anon_sym___VENDOR__] = ACTIONS(4500),
    [anon_sym___VERSION__] = ACTIONS(4500),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4502),
    [sym_float_literal] = ACTIONS(4502),
    [sym__string] = ACTIONS(4502),
  },
  [2208] = {
    [sym_identifier] = ACTIONS(4512),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4514),
    [anon_sym_LBRACE] = ACTIONS(4514),
    [anon_sym_DOT] = ACTIONS(4514),
    [anon_sym_AMP] = ACTIONS(4514),
    [anon_sym_DASH] = ACTIONS(4512),
    [anon_sym_DASH_DASH] = ACTIONS(4514),
    [anon_sym_PLUS] = ACTIONS(4512),
    [anon_sym_PLUS_PLUS] = ACTIONS(4514),
    [anon_sym_BANG] = ACTIONS(4514),
    [anon_sym_LPAREN] = ACTIONS(4514),
    [anon_sym_RPAREN] = ACTIONS(4514),
    [anon_sym_LBRACK] = ACTIONS(4514),
    [anon_sym_SEMI] = ACTIONS(4514),
    [anon_sym_DOLLAR] = ACTIONS(4514),
    [anon_sym_STAR] = ACTIONS(4514),
    [anon_sym_TILDE] = ACTIONS(4514),
    [sym_bool] = ACTIONS(4512),
    [sym_byte] = ACTIONS(4512),
    [sym_ubyte] = ACTIONS(4512),
    [sym_char] = ACTIONS(4512),
    [sym_short] = ACTIONS(4512),
    [sym_ushort] = ACTIONS(4512),
    [sym_int] = ACTIONS(4512),
    [sym_uint] = ACTIONS(4512),
    [sym_long] = ACTIONS(4512),
    [sym_ulong] = ACTIONS(4512),
    [sym_cent] = ACTIONS(4512),
    [sym_ucent] = ACTIONS(4512),
    [sym_wchar] = ACTIONS(4512),
    [sym_dchar] = ACTIONS(4512),
    [sym_float] = ACTIONS(4512),
    [sym_double] = ACTIONS(4512),
    [sym_real] = ACTIONS(4512),
    [sym_ifloat] = ACTIONS(4512),
    [sym_idouble] = ACTIONS(4512),
    [sym_ireal] = ACTIONS(4512),
    [sym_cfloat] = ACTIONS(4512),
    [sym_cdouble] = ACTIONS(4512),
    [sym_creal] = ACTIONS(4512),
    [sym_size_t] = ACTIONS(4512),
    [sym_ptrdiff_t] = ACTIONS(4512),
    [sym_string] = ACTIONS(4512),
    [sym_cstring] = ACTIONS(4512),
    [sym_dstring] = ACTIONS(4512),
    [sym_wstring] = ACTIONS(4512),
    [sym_noreturn] = ACTIONS(4512),
    [sym_true] = ACTIONS(4512),
    [sym_false] = ACTIONS(4512),
    [sym_null] = ACTIONS(4512),
    [sym_super] = ACTIONS(4512),
    [sym_this] = ACTIONS(4512),
    [sym_assert] = ACTIONS(4512),
    [sym_auto] = ACTIONS(4512),
    [sym_cast] = ACTIONS(4512),
    [sym_catch] = ACTIONS(4512),
    [sym_const] = ACTIONS(4512),
    [sym_delegate] = ACTIONS(4512),
    [sym_delete] = ACTIONS(4512),
    [sym_do] = ACTIONS(4512),
    [sym_else] = ACTIONS(4512),
    [sym_finally] = ACTIONS(4512),
    [sym_function] = ACTIONS(4512),
    [sym_immutable] = ACTIONS(4512),
    [sym_import] = ACTIONS(4512),
    [sym_in] = ACTIONS(4512),
    [sym_inout] = ACTIONS(4512),
    [sym_is] = ACTIONS(4512),
    [sym_mixin] = ACTIONS(4512),
    [sym_new] = ACTIONS(4512),
    [sym_out] = ACTIONS(4512),
    [sym_ref] = ACTIONS(4512),
    [sym_shared] = ACTIONS(4512),
    [sym_throw] = ACTIONS(4512),
    [sym_typeid] = ACTIONS(4512),
    [sym_typeof] = ACTIONS(4512),
    [sym_traits] = ACTIONS(4512),
    [sym_vector] = ACTIONS(4512),
    [sym_void] = ACTIONS(4512),
    [anon_sym_BQUOTE] = ACTIONS(4514),
    [anon_sym_r_DQUOTE] = ACTIONS(4514),
    [anon_sym_x_DQUOTE] = ACTIONS(4514),
    [anon_sym_DQUOTE] = ACTIONS(4514),
    [anon_sym_i_BQUOTE] = ACTIONS(4514),
    [anon_sym_i_DQUOTE] = ACTIONS(4514),
    [anon_sym_iq_LBRACE] = ACTIONS(4514),
    [aux_sym_char_literal_token1] = ACTIONS(4514),
    [anon_sym_SQUOTE] = ACTIONS(4512),
    [anon_sym___DATE__] = ACTIONS(4512),
    [anon_sym___FILE__] = ACTIONS(4512),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4512),
    [anon_sym___FUNCTION__] = ACTIONS(4512),
    [anon_sym___LINE__] = ACTIONS(4512),
    [anon_sym___MODULE__] = ACTIONS(4512),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4512),
    [anon_sym___TIME__] = ACTIONS(4512),
    [anon_sym___TIMESTAMP__] = ACTIONS(4512),
    [anon_sym___VENDOR__] = ACTIONS(4512),
    [anon_sym___VERSION__] = ACTIONS(4512),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4514),
    [sym_float_literal] = ACTIONS(4514),
    [sym__string] = ACTIONS(4514),
  },
  [2209] = {
    [sym_identifier] = ACTIONS(4840),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4842),
    [anon_sym_LBRACE] = ACTIONS(4842),
    [anon_sym_DOT] = ACTIONS(4842),
    [anon_sym_AMP] = ACTIONS(4842),
    [anon_sym_DASH] = ACTIONS(4840),
    [anon_sym_DASH_DASH] = ACTIONS(4842),
    [anon_sym_PLUS] = ACTIONS(4840),
    [anon_sym_PLUS_PLUS] = ACTIONS(4842),
    [anon_sym_BANG] = ACTIONS(4842),
    [anon_sym_LPAREN] = ACTIONS(4842),
    [anon_sym_RPAREN] = ACTIONS(4842),
    [anon_sym_LBRACK] = ACTIONS(4842),
    [anon_sym_SEMI] = ACTIONS(4842),
    [anon_sym_DOLLAR] = ACTIONS(4842),
    [anon_sym_STAR] = ACTIONS(4842),
    [anon_sym_TILDE] = ACTIONS(4842),
    [sym_bool] = ACTIONS(4840),
    [sym_byte] = ACTIONS(4840),
    [sym_ubyte] = ACTIONS(4840),
    [sym_char] = ACTIONS(4840),
    [sym_short] = ACTIONS(4840),
    [sym_ushort] = ACTIONS(4840),
    [sym_int] = ACTIONS(4840),
    [sym_uint] = ACTIONS(4840),
    [sym_long] = ACTIONS(4840),
    [sym_ulong] = ACTIONS(4840),
    [sym_cent] = ACTIONS(4840),
    [sym_ucent] = ACTIONS(4840),
    [sym_wchar] = ACTIONS(4840),
    [sym_dchar] = ACTIONS(4840),
    [sym_float] = ACTIONS(4840),
    [sym_double] = ACTIONS(4840),
    [sym_real] = ACTIONS(4840),
    [sym_ifloat] = ACTIONS(4840),
    [sym_idouble] = ACTIONS(4840),
    [sym_ireal] = ACTIONS(4840),
    [sym_cfloat] = ACTIONS(4840),
    [sym_cdouble] = ACTIONS(4840),
    [sym_creal] = ACTIONS(4840),
    [sym_size_t] = ACTIONS(4840),
    [sym_ptrdiff_t] = ACTIONS(4840),
    [sym_string] = ACTIONS(4840),
    [sym_cstring] = ACTIONS(4840),
    [sym_dstring] = ACTIONS(4840),
    [sym_wstring] = ACTIONS(4840),
    [sym_noreturn] = ACTIONS(4840),
    [sym_true] = ACTIONS(4840),
    [sym_false] = ACTIONS(4840),
    [sym_null] = ACTIONS(4840),
    [sym_super] = ACTIONS(4840),
    [sym_this] = ACTIONS(4840),
    [sym_assert] = ACTIONS(4840),
    [sym_auto] = ACTIONS(4840),
    [sym_cast] = ACTIONS(4840),
    [sym_catch] = ACTIONS(4840),
    [sym_const] = ACTIONS(4840),
    [sym_delegate] = ACTIONS(4840),
    [sym_delete] = ACTIONS(4840),
    [sym_do] = ACTIONS(4840),
    [sym_else] = ACTIONS(4840),
    [sym_finally] = ACTIONS(4840),
    [sym_function] = ACTIONS(4840),
    [sym_immutable] = ACTIONS(4840),
    [sym_import] = ACTIONS(4840),
    [sym_in] = ACTIONS(4840),
    [sym_inout] = ACTIONS(4840),
    [sym_is] = ACTIONS(4840),
    [sym_mixin] = ACTIONS(4840),
    [sym_new] = ACTIONS(4840),
    [sym_out] = ACTIONS(4840),
    [sym_ref] = ACTIONS(4840),
    [sym_shared] = ACTIONS(4840),
    [sym_throw] = ACTIONS(4840),
    [sym_typeid] = ACTIONS(4840),
    [sym_typeof] = ACTIONS(4840),
    [sym_traits] = ACTIONS(4840),
    [sym_vector] = ACTIONS(4840),
    [sym_void] = ACTIONS(4840),
    [anon_sym_BQUOTE] = ACTIONS(4842),
    [anon_sym_r_DQUOTE] = ACTIONS(4842),
    [anon_sym_x_DQUOTE] = ACTIONS(4842),
    [anon_sym_DQUOTE] = ACTIONS(4842),
    [anon_sym_i_BQUOTE] = ACTIONS(4842),
    [anon_sym_i_DQUOTE] = ACTIONS(4842),
    [anon_sym_iq_LBRACE] = ACTIONS(4842),
    [aux_sym_char_literal_token1] = ACTIONS(4842),
    [anon_sym_SQUOTE] = ACTIONS(4840),
    [anon_sym___DATE__] = ACTIONS(4840),
    [anon_sym___FILE__] = ACTIONS(4840),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4840),
    [anon_sym___FUNCTION__] = ACTIONS(4840),
    [anon_sym___LINE__] = ACTIONS(4840),
    [anon_sym___MODULE__] = ACTIONS(4840),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4840),
    [anon_sym___TIME__] = ACTIONS(4840),
    [anon_sym___TIMESTAMP__] = ACTIONS(4840),
    [anon_sym___VENDOR__] = ACTIONS(4840),
    [anon_sym___VERSION__] = ACTIONS(4840),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4842),
    [sym_float_literal] = ACTIONS(4842),
    [sym__string] = ACTIONS(4842),
  },
  [2210] = {
    [sym_identifier] = ACTIONS(4880),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4882),
    [anon_sym_LBRACE] = ACTIONS(4882),
    [anon_sym_DOT] = ACTIONS(4882),
    [anon_sym_AMP] = ACTIONS(4882),
    [anon_sym_DASH] = ACTIONS(4880),
    [anon_sym_DASH_DASH] = ACTIONS(4882),
    [anon_sym_PLUS] = ACTIONS(4880),
    [anon_sym_PLUS_PLUS] = ACTIONS(4882),
    [anon_sym_BANG] = ACTIONS(4882),
    [anon_sym_LPAREN] = ACTIONS(4882),
    [anon_sym_RPAREN] = ACTIONS(4882),
    [anon_sym_LBRACK] = ACTIONS(4882),
    [anon_sym_SEMI] = ACTIONS(4882),
    [anon_sym_DOLLAR] = ACTIONS(4882),
    [anon_sym_STAR] = ACTIONS(4882),
    [anon_sym_TILDE] = ACTIONS(4882),
    [sym_bool] = ACTIONS(4880),
    [sym_byte] = ACTIONS(4880),
    [sym_ubyte] = ACTIONS(4880),
    [sym_char] = ACTIONS(4880),
    [sym_short] = ACTIONS(4880),
    [sym_ushort] = ACTIONS(4880),
    [sym_int] = ACTIONS(4880),
    [sym_uint] = ACTIONS(4880),
    [sym_long] = ACTIONS(4880),
    [sym_ulong] = ACTIONS(4880),
    [sym_cent] = ACTIONS(4880),
    [sym_ucent] = ACTIONS(4880),
    [sym_wchar] = ACTIONS(4880),
    [sym_dchar] = ACTIONS(4880),
    [sym_float] = ACTIONS(4880),
    [sym_double] = ACTIONS(4880),
    [sym_real] = ACTIONS(4880),
    [sym_ifloat] = ACTIONS(4880),
    [sym_idouble] = ACTIONS(4880),
    [sym_ireal] = ACTIONS(4880),
    [sym_cfloat] = ACTIONS(4880),
    [sym_cdouble] = ACTIONS(4880),
    [sym_creal] = ACTIONS(4880),
    [sym_size_t] = ACTIONS(4880),
    [sym_ptrdiff_t] = ACTIONS(4880),
    [sym_string] = ACTIONS(4880),
    [sym_cstring] = ACTIONS(4880),
    [sym_dstring] = ACTIONS(4880),
    [sym_wstring] = ACTIONS(4880),
    [sym_noreturn] = ACTIONS(4880),
    [sym_true] = ACTIONS(4880),
    [sym_false] = ACTIONS(4880),
    [sym_null] = ACTIONS(4880),
    [sym_super] = ACTIONS(4880),
    [sym_this] = ACTIONS(4880),
    [sym_assert] = ACTIONS(4880),
    [sym_auto] = ACTIONS(4880),
    [sym_cast] = ACTIONS(4880),
    [sym_catch] = ACTIONS(4880),
    [sym_const] = ACTIONS(4880),
    [sym_delegate] = ACTIONS(4880),
    [sym_delete] = ACTIONS(4880),
    [sym_do] = ACTIONS(4880),
    [sym_else] = ACTIONS(4880),
    [sym_finally] = ACTIONS(4880),
    [sym_function] = ACTIONS(4880),
    [sym_immutable] = ACTIONS(4880),
    [sym_import] = ACTIONS(4880),
    [sym_in] = ACTIONS(4880),
    [sym_inout] = ACTIONS(4880),
    [sym_is] = ACTIONS(4880),
    [sym_mixin] = ACTIONS(4880),
    [sym_new] = ACTIONS(4880),
    [sym_out] = ACTIONS(4880),
    [sym_ref] = ACTIONS(4880),
    [sym_shared] = ACTIONS(4880),
    [sym_throw] = ACTIONS(4880),
    [sym_typeid] = ACTIONS(4880),
    [sym_typeof] = ACTIONS(4880),
    [sym_traits] = ACTIONS(4880),
    [sym_vector] = ACTIONS(4880),
    [sym_void] = ACTIONS(4880),
    [anon_sym_BQUOTE] = ACTIONS(4882),
    [anon_sym_r_DQUOTE] = ACTIONS(4882),
    [anon_sym_x_DQUOTE] = ACTIONS(4882),
    [anon_sym_DQUOTE] = ACTIONS(4882),
    [anon_sym_i_BQUOTE] = ACTIONS(4882),
    [anon_sym_i_DQUOTE] = ACTIONS(4882),
    [anon_sym_iq_LBRACE] = ACTIONS(4882),
    [aux_sym_char_literal_token1] = ACTIONS(4882),
    [anon_sym_SQUOTE] = ACTIONS(4880),
    [anon_sym___DATE__] = ACTIONS(4880),
    [anon_sym___FILE__] = ACTIONS(4880),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4880),
    [anon_sym___FUNCTION__] = ACTIONS(4880),
    [anon_sym___LINE__] = ACTIONS(4880),
    [anon_sym___MODULE__] = ACTIONS(4880),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4880),
    [anon_sym___TIME__] = ACTIONS(4880),
    [anon_sym___TIMESTAMP__] = ACTIONS(4880),
    [anon_sym___VENDOR__] = ACTIONS(4880),
    [anon_sym___VERSION__] = ACTIONS(4880),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4882),
    [sym_float_literal] = ACTIONS(4882),
    [sym__string] = ACTIONS(4882),
  },
  [2211] = {
    [sym_identifier] = ACTIONS(4520),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4522),
    [anon_sym_LBRACE] = ACTIONS(4522),
    [anon_sym_DOT] = ACTIONS(4522),
    [anon_sym_AMP] = ACTIONS(4522),
    [anon_sym_DASH] = ACTIONS(4520),
    [anon_sym_DASH_DASH] = ACTIONS(4522),
    [anon_sym_PLUS] = ACTIONS(4520),
    [anon_sym_PLUS_PLUS] = ACTIONS(4522),
    [anon_sym_BANG] = ACTIONS(4522),
    [anon_sym_LPAREN] = ACTIONS(4522),
    [anon_sym_RPAREN] = ACTIONS(4522),
    [anon_sym_LBRACK] = ACTIONS(4522),
    [anon_sym_SEMI] = ACTIONS(4522),
    [anon_sym_DOLLAR] = ACTIONS(4522),
    [anon_sym_STAR] = ACTIONS(4522),
    [anon_sym_TILDE] = ACTIONS(4522),
    [sym_bool] = ACTIONS(4520),
    [sym_byte] = ACTIONS(4520),
    [sym_ubyte] = ACTIONS(4520),
    [sym_char] = ACTIONS(4520),
    [sym_short] = ACTIONS(4520),
    [sym_ushort] = ACTIONS(4520),
    [sym_int] = ACTIONS(4520),
    [sym_uint] = ACTIONS(4520),
    [sym_long] = ACTIONS(4520),
    [sym_ulong] = ACTIONS(4520),
    [sym_cent] = ACTIONS(4520),
    [sym_ucent] = ACTIONS(4520),
    [sym_wchar] = ACTIONS(4520),
    [sym_dchar] = ACTIONS(4520),
    [sym_float] = ACTIONS(4520),
    [sym_double] = ACTIONS(4520),
    [sym_real] = ACTIONS(4520),
    [sym_ifloat] = ACTIONS(4520),
    [sym_idouble] = ACTIONS(4520),
    [sym_ireal] = ACTIONS(4520),
    [sym_cfloat] = ACTIONS(4520),
    [sym_cdouble] = ACTIONS(4520),
    [sym_creal] = ACTIONS(4520),
    [sym_size_t] = ACTIONS(4520),
    [sym_ptrdiff_t] = ACTIONS(4520),
    [sym_string] = ACTIONS(4520),
    [sym_cstring] = ACTIONS(4520),
    [sym_dstring] = ACTIONS(4520),
    [sym_wstring] = ACTIONS(4520),
    [sym_noreturn] = ACTIONS(4520),
    [sym_true] = ACTIONS(4520),
    [sym_false] = ACTIONS(4520),
    [sym_null] = ACTIONS(4520),
    [sym_super] = ACTIONS(4520),
    [sym_this] = ACTIONS(4520),
    [sym_assert] = ACTIONS(4520),
    [sym_auto] = ACTIONS(4520),
    [sym_cast] = ACTIONS(4520),
    [sym_catch] = ACTIONS(4520),
    [sym_const] = ACTIONS(4520),
    [sym_delegate] = ACTIONS(4520),
    [sym_delete] = ACTIONS(4520),
    [sym_do] = ACTIONS(4520),
    [sym_else] = ACTIONS(4520),
    [sym_finally] = ACTIONS(4520),
    [sym_function] = ACTIONS(4520),
    [sym_immutable] = ACTIONS(4520),
    [sym_import] = ACTIONS(4520),
    [sym_in] = ACTIONS(4520),
    [sym_inout] = ACTIONS(4520),
    [sym_is] = ACTIONS(4520),
    [sym_mixin] = ACTIONS(4520),
    [sym_new] = ACTIONS(4520),
    [sym_out] = ACTIONS(4520),
    [sym_ref] = ACTIONS(4520),
    [sym_shared] = ACTIONS(4520),
    [sym_throw] = ACTIONS(4520),
    [sym_typeid] = ACTIONS(4520),
    [sym_typeof] = ACTIONS(4520),
    [sym_traits] = ACTIONS(4520),
    [sym_vector] = ACTIONS(4520),
    [sym_void] = ACTIONS(4520),
    [anon_sym_BQUOTE] = ACTIONS(4522),
    [anon_sym_r_DQUOTE] = ACTIONS(4522),
    [anon_sym_x_DQUOTE] = ACTIONS(4522),
    [anon_sym_DQUOTE] = ACTIONS(4522),
    [anon_sym_i_BQUOTE] = ACTIONS(4522),
    [anon_sym_i_DQUOTE] = ACTIONS(4522),
    [anon_sym_iq_LBRACE] = ACTIONS(4522),
    [aux_sym_char_literal_token1] = ACTIONS(4522),
    [anon_sym_SQUOTE] = ACTIONS(4520),
    [anon_sym___DATE__] = ACTIONS(4520),
    [anon_sym___FILE__] = ACTIONS(4520),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4520),
    [anon_sym___FUNCTION__] = ACTIONS(4520),
    [anon_sym___LINE__] = ACTIONS(4520),
    [anon_sym___MODULE__] = ACTIONS(4520),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4520),
    [anon_sym___TIME__] = ACTIONS(4520),
    [anon_sym___TIMESTAMP__] = ACTIONS(4520),
    [anon_sym___VENDOR__] = ACTIONS(4520),
    [anon_sym___VERSION__] = ACTIONS(4520),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4522),
    [sym_float_literal] = ACTIONS(4522),
    [sym__string] = ACTIONS(4522),
  },
  [2212] = {
    [sym_identifier] = ACTIONS(4586),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4588),
    [anon_sym_LBRACE] = ACTIONS(4588),
    [anon_sym_DOT] = ACTIONS(4588),
    [anon_sym_AMP] = ACTIONS(4588),
    [anon_sym_DASH] = ACTIONS(4586),
    [anon_sym_DASH_DASH] = ACTIONS(4588),
    [anon_sym_PLUS] = ACTIONS(4586),
    [anon_sym_PLUS_PLUS] = ACTIONS(4588),
    [anon_sym_BANG] = ACTIONS(4588),
    [anon_sym_LPAREN] = ACTIONS(4588),
    [anon_sym_RPAREN] = ACTIONS(4588),
    [anon_sym_LBRACK] = ACTIONS(4588),
    [anon_sym_SEMI] = ACTIONS(4588),
    [anon_sym_DOLLAR] = ACTIONS(4588),
    [anon_sym_STAR] = ACTIONS(4588),
    [anon_sym_TILDE] = ACTIONS(4588),
    [sym_bool] = ACTIONS(4586),
    [sym_byte] = ACTIONS(4586),
    [sym_ubyte] = ACTIONS(4586),
    [sym_char] = ACTIONS(4586),
    [sym_short] = ACTIONS(4586),
    [sym_ushort] = ACTIONS(4586),
    [sym_int] = ACTIONS(4586),
    [sym_uint] = ACTIONS(4586),
    [sym_long] = ACTIONS(4586),
    [sym_ulong] = ACTIONS(4586),
    [sym_cent] = ACTIONS(4586),
    [sym_ucent] = ACTIONS(4586),
    [sym_wchar] = ACTIONS(4586),
    [sym_dchar] = ACTIONS(4586),
    [sym_float] = ACTIONS(4586),
    [sym_double] = ACTIONS(4586),
    [sym_real] = ACTIONS(4586),
    [sym_ifloat] = ACTIONS(4586),
    [sym_idouble] = ACTIONS(4586),
    [sym_ireal] = ACTIONS(4586),
    [sym_cfloat] = ACTIONS(4586),
    [sym_cdouble] = ACTIONS(4586),
    [sym_creal] = ACTIONS(4586),
    [sym_size_t] = ACTIONS(4586),
    [sym_ptrdiff_t] = ACTIONS(4586),
    [sym_string] = ACTIONS(4586),
    [sym_cstring] = ACTIONS(4586),
    [sym_dstring] = ACTIONS(4586),
    [sym_wstring] = ACTIONS(4586),
    [sym_noreturn] = ACTIONS(4586),
    [sym_true] = ACTIONS(4586),
    [sym_false] = ACTIONS(4586),
    [sym_null] = ACTIONS(4586),
    [sym_super] = ACTIONS(4586),
    [sym_this] = ACTIONS(4586),
    [sym_assert] = ACTIONS(4586),
    [sym_auto] = ACTIONS(4586),
    [sym_cast] = ACTIONS(4586),
    [sym_catch] = ACTIONS(4586),
    [sym_const] = ACTIONS(4586),
    [sym_delegate] = ACTIONS(4586),
    [sym_delete] = ACTIONS(4586),
    [sym_do] = ACTIONS(4586),
    [sym_else] = ACTIONS(4586),
    [sym_finally] = ACTIONS(4586),
    [sym_function] = ACTIONS(4586),
    [sym_immutable] = ACTIONS(4586),
    [sym_import] = ACTIONS(4586),
    [sym_in] = ACTIONS(4586),
    [sym_inout] = ACTIONS(4586),
    [sym_is] = ACTIONS(4586),
    [sym_mixin] = ACTIONS(4586),
    [sym_new] = ACTIONS(4586),
    [sym_out] = ACTIONS(4586),
    [sym_ref] = ACTIONS(4586),
    [sym_shared] = ACTIONS(4586),
    [sym_throw] = ACTIONS(4586),
    [sym_typeid] = ACTIONS(4586),
    [sym_typeof] = ACTIONS(4586),
    [sym_traits] = ACTIONS(4586),
    [sym_vector] = ACTIONS(4586),
    [sym_void] = ACTIONS(4586),
    [anon_sym_BQUOTE] = ACTIONS(4588),
    [anon_sym_r_DQUOTE] = ACTIONS(4588),
    [anon_sym_x_DQUOTE] = ACTIONS(4588),
    [anon_sym_DQUOTE] = ACTIONS(4588),
    [anon_sym_i_BQUOTE] = ACTIONS(4588),
    [anon_sym_i_DQUOTE] = ACTIONS(4588),
    [anon_sym_iq_LBRACE] = ACTIONS(4588),
    [aux_sym_char_literal_token1] = ACTIONS(4588),
    [anon_sym_SQUOTE] = ACTIONS(4586),
    [anon_sym___DATE__] = ACTIONS(4586),
    [anon_sym___FILE__] = ACTIONS(4586),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4586),
    [anon_sym___FUNCTION__] = ACTIONS(4586),
    [anon_sym___LINE__] = ACTIONS(4586),
    [anon_sym___MODULE__] = ACTIONS(4586),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4586),
    [anon_sym___TIME__] = ACTIONS(4586),
    [anon_sym___TIMESTAMP__] = ACTIONS(4586),
    [anon_sym___VENDOR__] = ACTIONS(4586),
    [anon_sym___VERSION__] = ACTIONS(4586),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4588),
    [sym_float_literal] = ACTIONS(4588),
    [sym__string] = ACTIONS(4588),
  },
  [2213] = {
    [sym_identifier] = ACTIONS(4818),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4820),
    [anon_sym_LBRACE] = ACTIONS(4820),
    [anon_sym_DOT] = ACTIONS(4820),
    [anon_sym_AMP] = ACTIONS(4820),
    [anon_sym_DASH] = ACTIONS(4818),
    [anon_sym_DASH_DASH] = ACTIONS(4820),
    [anon_sym_PLUS] = ACTIONS(4818),
    [anon_sym_PLUS_PLUS] = ACTIONS(4820),
    [anon_sym_BANG] = ACTIONS(4820),
    [anon_sym_LPAREN] = ACTIONS(4820),
    [anon_sym_RPAREN] = ACTIONS(4820),
    [anon_sym_LBRACK] = ACTIONS(4820),
    [anon_sym_SEMI] = ACTIONS(4820),
    [anon_sym_DOLLAR] = ACTIONS(4820),
    [anon_sym_STAR] = ACTIONS(4820),
    [anon_sym_TILDE] = ACTIONS(4820),
    [sym_bool] = ACTIONS(4818),
    [sym_byte] = ACTIONS(4818),
    [sym_ubyte] = ACTIONS(4818),
    [sym_char] = ACTIONS(4818),
    [sym_short] = ACTIONS(4818),
    [sym_ushort] = ACTIONS(4818),
    [sym_int] = ACTIONS(4818),
    [sym_uint] = ACTIONS(4818),
    [sym_long] = ACTIONS(4818),
    [sym_ulong] = ACTIONS(4818),
    [sym_cent] = ACTIONS(4818),
    [sym_ucent] = ACTIONS(4818),
    [sym_wchar] = ACTIONS(4818),
    [sym_dchar] = ACTIONS(4818),
    [sym_float] = ACTIONS(4818),
    [sym_double] = ACTIONS(4818),
    [sym_real] = ACTIONS(4818),
    [sym_ifloat] = ACTIONS(4818),
    [sym_idouble] = ACTIONS(4818),
    [sym_ireal] = ACTIONS(4818),
    [sym_cfloat] = ACTIONS(4818),
    [sym_cdouble] = ACTIONS(4818),
    [sym_creal] = ACTIONS(4818),
    [sym_size_t] = ACTIONS(4818),
    [sym_ptrdiff_t] = ACTIONS(4818),
    [sym_string] = ACTIONS(4818),
    [sym_cstring] = ACTIONS(4818),
    [sym_dstring] = ACTIONS(4818),
    [sym_wstring] = ACTIONS(4818),
    [sym_noreturn] = ACTIONS(4818),
    [sym_true] = ACTIONS(4818),
    [sym_false] = ACTIONS(4818),
    [sym_null] = ACTIONS(4818),
    [sym_super] = ACTIONS(4818),
    [sym_this] = ACTIONS(4818),
    [sym_assert] = ACTIONS(4818),
    [sym_auto] = ACTIONS(4818),
    [sym_cast] = ACTIONS(4818),
    [sym_catch] = ACTIONS(4818),
    [sym_const] = ACTIONS(4818),
    [sym_delegate] = ACTIONS(4818),
    [sym_delete] = ACTIONS(4818),
    [sym_do] = ACTIONS(4818),
    [sym_else] = ACTIONS(4818),
    [sym_finally] = ACTIONS(4818),
    [sym_function] = ACTIONS(4818),
    [sym_immutable] = ACTIONS(4818),
    [sym_import] = ACTIONS(4818),
    [sym_in] = ACTIONS(4818),
    [sym_inout] = ACTIONS(4818),
    [sym_is] = ACTIONS(4818),
    [sym_mixin] = ACTIONS(4818),
    [sym_new] = ACTIONS(4818),
    [sym_out] = ACTIONS(4818),
    [sym_ref] = ACTIONS(4818),
    [sym_shared] = ACTIONS(4818),
    [sym_throw] = ACTIONS(4818),
    [sym_typeid] = ACTIONS(4818),
    [sym_typeof] = ACTIONS(4818),
    [sym_traits] = ACTIONS(4818),
    [sym_vector] = ACTIONS(4818),
    [sym_void] = ACTIONS(4818),
    [anon_sym_BQUOTE] = ACTIONS(4820),
    [anon_sym_r_DQUOTE] = ACTIONS(4820),
    [anon_sym_x_DQUOTE] = ACTIONS(4820),
    [anon_sym_DQUOTE] = ACTIONS(4820),
    [anon_sym_i_BQUOTE] = ACTIONS(4820),
    [anon_sym_i_DQUOTE] = ACTIONS(4820),
    [anon_sym_iq_LBRACE] = ACTIONS(4820),
    [aux_sym_char_literal_token1] = ACTIONS(4820),
    [anon_sym_SQUOTE] = ACTIONS(4818),
    [anon_sym___DATE__] = ACTIONS(4818),
    [anon_sym___FILE__] = ACTIONS(4818),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4818),
    [anon_sym___FUNCTION__] = ACTIONS(4818),
    [anon_sym___LINE__] = ACTIONS(4818),
    [anon_sym___MODULE__] = ACTIONS(4818),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4818),
    [anon_sym___TIME__] = ACTIONS(4818),
    [anon_sym___TIMESTAMP__] = ACTIONS(4818),
    [anon_sym___VENDOR__] = ACTIONS(4818),
    [anon_sym___VERSION__] = ACTIONS(4818),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4820),
    [sym_float_literal] = ACTIONS(4820),
    [sym__string] = ACTIONS(4820),
  },
  [2214] = {
    [sym_identifier] = ACTIONS(4538),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4540),
    [anon_sym_LBRACE] = ACTIONS(4540),
    [anon_sym_DOT] = ACTIONS(4540),
    [anon_sym_AMP] = ACTIONS(4540),
    [anon_sym_DASH] = ACTIONS(4538),
    [anon_sym_DASH_DASH] = ACTIONS(4540),
    [anon_sym_PLUS] = ACTIONS(4538),
    [anon_sym_PLUS_PLUS] = ACTIONS(4540),
    [anon_sym_BANG] = ACTIONS(4540),
    [anon_sym_LPAREN] = ACTIONS(4540),
    [anon_sym_RPAREN] = ACTIONS(4540),
    [anon_sym_LBRACK] = ACTIONS(4540),
    [anon_sym_SEMI] = ACTIONS(4540),
    [anon_sym_DOLLAR] = ACTIONS(4540),
    [anon_sym_STAR] = ACTIONS(4540),
    [anon_sym_TILDE] = ACTIONS(4540),
    [sym_bool] = ACTIONS(4538),
    [sym_byte] = ACTIONS(4538),
    [sym_ubyte] = ACTIONS(4538),
    [sym_char] = ACTIONS(4538),
    [sym_short] = ACTIONS(4538),
    [sym_ushort] = ACTIONS(4538),
    [sym_int] = ACTIONS(4538),
    [sym_uint] = ACTIONS(4538),
    [sym_long] = ACTIONS(4538),
    [sym_ulong] = ACTIONS(4538),
    [sym_cent] = ACTIONS(4538),
    [sym_ucent] = ACTIONS(4538),
    [sym_wchar] = ACTIONS(4538),
    [sym_dchar] = ACTIONS(4538),
    [sym_float] = ACTIONS(4538),
    [sym_double] = ACTIONS(4538),
    [sym_real] = ACTIONS(4538),
    [sym_ifloat] = ACTIONS(4538),
    [sym_idouble] = ACTIONS(4538),
    [sym_ireal] = ACTIONS(4538),
    [sym_cfloat] = ACTIONS(4538),
    [sym_cdouble] = ACTIONS(4538),
    [sym_creal] = ACTIONS(4538),
    [sym_size_t] = ACTIONS(4538),
    [sym_ptrdiff_t] = ACTIONS(4538),
    [sym_string] = ACTIONS(4538),
    [sym_cstring] = ACTIONS(4538),
    [sym_dstring] = ACTIONS(4538),
    [sym_wstring] = ACTIONS(4538),
    [sym_noreturn] = ACTIONS(4538),
    [sym_true] = ACTIONS(4538),
    [sym_false] = ACTIONS(4538),
    [sym_null] = ACTIONS(4538),
    [sym_super] = ACTIONS(4538),
    [sym_this] = ACTIONS(4538),
    [sym_assert] = ACTIONS(4538),
    [sym_auto] = ACTIONS(4538),
    [sym_cast] = ACTIONS(4538),
    [sym_catch] = ACTIONS(4538),
    [sym_const] = ACTIONS(4538),
    [sym_delegate] = ACTIONS(4538),
    [sym_delete] = ACTIONS(4538),
    [sym_do] = ACTIONS(4538),
    [sym_else] = ACTIONS(4538),
    [sym_finally] = ACTIONS(4538),
    [sym_function] = ACTIONS(4538),
    [sym_immutable] = ACTIONS(4538),
    [sym_import] = ACTIONS(4538),
    [sym_in] = ACTIONS(4538),
    [sym_inout] = ACTIONS(4538),
    [sym_is] = ACTIONS(4538),
    [sym_mixin] = ACTIONS(4538),
    [sym_new] = ACTIONS(4538),
    [sym_out] = ACTIONS(4538),
    [sym_ref] = ACTIONS(4538),
    [sym_shared] = ACTIONS(4538),
    [sym_throw] = ACTIONS(4538),
    [sym_typeid] = ACTIONS(4538),
    [sym_typeof] = ACTIONS(4538),
    [sym_traits] = ACTIONS(4538),
    [sym_vector] = ACTIONS(4538),
    [sym_void] = ACTIONS(4538),
    [anon_sym_BQUOTE] = ACTIONS(4540),
    [anon_sym_r_DQUOTE] = ACTIONS(4540),
    [anon_sym_x_DQUOTE] = ACTIONS(4540),
    [anon_sym_DQUOTE] = ACTIONS(4540),
    [anon_sym_i_BQUOTE] = ACTIONS(4540),
    [anon_sym_i_DQUOTE] = ACTIONS(4540),
    [anon_sym_iq_LBRACE] = ACTIONS(4540),
    [aux_sym_char_literal_token1] = ACTIONS(4540),
    [anon_sym_SQUOTE] = ACTIONS(4538),
    [anon_sym___DATE__] = ACTIONS(4538),
    [anon_sym___FILE__] = ACTIONS(4538),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4538),
    [anon_sym___FUNCTION__] = ACTIONS(4538),
    [anon_sym___LINE__] = ACTIONS(4538),
    [anon_sym___MODULE__] = ACTIONS(4538),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4538),
    [anon_sym___TIME__] = ACTIONS(4538),
    [anon_sym___TIMESTAMP__] = ACTIONS(4538),
    [anon_sym___VENDOR__] = ACTIONS(4538),
    [anon_sym___VERSION__] = ACTIONS(4538),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4540),
    [sym_float_literal] = ACTIONS(4540),
    [sym__string] = ACTIONS(4540),
  },
  [2215] = {
    [sym_identifier] = ACTIONS(4546),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4548),
    [anon_sym_LBRACE] = ACTIONS(4548),
    [anon_sym_DOT] = ACTIONS(4548),
    [anon_sym_AMP] = ACTIONS(4548),
    [anon_sym_DASH] = ACTIONS(4546),
    [anon_sym_DASH_DASH] = ACTIONS(4548),
    [anon_sym_PLUS] = ACTIONS(4546),
    [anon_sym_PLUS_PLUS] = ACTIONS(4548),
    [anon_sym_BANG] = ACTIONS(4548),
    [anon_sym_LPAREN] = ACTIONS(4548),
    [anon_sym_RPAREN] = ACTIONS(4548),
    [anon_sym_LBRACK] = ACTIONS(4548),
    [anon_sym_SEMI] = ACTIONS(4548),
    [anon_sym_DOLLAR] = ACTIONS(4548),
    [anon_sym_STAR] = ACTIONS(4548),
    [anon_sym_TILDE] = ACTIONS(4548),
    [sym_bool] = ACTIONS(4546),
    [sym_byte] = ACTIONS(4546),
    [sym_ubyte] = ACTIONS(4546),
    [sym_char] = ACTIONS(4546),
    [sym_short] = ACTIONS(4546),
    [sym_ushort] = ACTIONS(4546),
    [sym_int] = ACTIONS(4546),
    [sym_uint] = ACTIONS(4546),
    [sym_long] = ACTIONS(4546),
    [sym_ulong] = ACTIONS(4546),
    [sym_cent] = ACTIONS(4546),
    [sym_ucent] = ACTIONS(4546),
    [sym_wchar] = ACTIONS(4546),
    [sym_dchar] = ACTIONS(4546),
    [sym_float] = ACTIONS(4546),
    [sym_double] = ACTIONS(4546),
    [sym_real] = ACTIONS(4546),
    [sym_ifloat] = ACTIONS(4546),
    [sym_idouble] = ACTIONS(4546),
    [sym_ireal] = ACTIONS(4546),
    [sym_cfloat] = ACTIONS(4546),
    [sym_cdouble] = ACTIONS(4546),
    [sym_creal] = ACTIONS(4546),
    [sym_size_t] = ACTIONS(4546),
    [sym_ptrdiff_t] = ACTIONS(4546),
    [sym_string] = ACTIONS(4546),
    [sym_cstring] = ACTIONS(4546),
    [sym_dstring] = ACTIONS(4546),
    [sym_wstring] = ACTIONS(4546),
    [sym_noreturn] = ACTIONS(4546),
    [sym_true] = ACTIONS(4546),
    [sym_false] = ACTIONS(4546),
    [sym_null] = ACTIONS(4546),
    [sym_super] = ACTIONS(4546),
    [sym_this] = ACTIONS(4546),
    [sym_assert] = ACTIONS(4546),
    [sym_auto] = ACTIONS(4546),
    [sym_cast] = ACTIONS(4546),
    [sym_catch] = ACTIONS(4546),
    [sym_const] = ACTIONS(4546),
    [sym_delegate] = ACTIONS(4546),
    [sym_delete] = ACTIONS(4546),
    [sym_do] = ACTIONS(4546),
    [sym_else] = ACTIONS(4546),
    [sym_finally] = ACTIONS(4546),
    [sym_function] = ACTIONS(4546),
    [sym_immutable] = ACTIONS(4546),
    [sym_import] = ACTIONS(4546),
    [sym_in] = ACTIONS(4546),
    [sym_inout] = ACTIONS(4546),
    [sym_is] = ACTIONS(4546),
    [sym_mixin] = ACTIONS(4546),
    [sym_new] = ACTIONS(4546),
    [sym_out] = ACTIONS(4546),
    [sym_ref] = ACTIONS(4546),
    [sym_shared] = ACTIONS(4546),
    [sym_throw] = ACTIONS(4546),
    [sym_typeid] = ACTIONS(4546),
    [sym_typeof] = ACTIONS(4546),
    [sym_traits] = ACTIONS(4546),
    [sym_vector] = ACTIONS(4546),
    [sym_void] = ACTIONS(4546),
    [anon_sym_BQUOTE] = ACTIONS(4548),
    [anon_sym_r_DQUOTE] = ACTIONS(4548),
    [anon_sym_x_DQUOTE] = ACTIONS(4548),
    [anon_sym_DQUOTE] = ACTIONS(4548),
    [anon_sym_i_BQUOTE] = ACTIONS(4548),
    [anon_sym_i_DQUOTE] = ACTIONS(4548),
    [anon_sym_iq_LBRACE] = ACTIONS(4548),
    [aux_sym_char_literal_token1] = ACTIONS(4548),
    [anon_sym_SQUOTE] = ACTIONS(4546),
    [anon_sym___DATE__] = ACTIONS(4546),
    [anon_sym___FILE__] = ACTIONS(4546),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4546),
    [anon_sym___FUNCTION__] = ACTIONS(4546),
    [anon_sym___LINE__] = ACTIONS(4546),
    [anon_sym___MODULE__] = ACTIONS(4546),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4546),
    [anon_sym___TIME__] = ACTIONS(4546),
    [anon_sym___TIMESTAMP__] = ACTIONS(4546),
    [anon_sym___VENDOR__] = ACTIONS(4546),
    [anon_sym___VERSION__] = ACTIONS(4546),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4548),
    [sym_float_literal] = ACTIONS(4548),
    [sym__string] = ACTIONS(4548),
  },
  [2216] = {
    [sym_identifier] = ACTIONS(4884),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4886),
    [anon_sym_LBRACE] = ACTIONS(4886),
    [anon_sym_DOT] = ACTIONS(4886),
    [anon_sym_AMP] = ACTIONS(4886),
    [anon_sym_DASH] = ACTIONS(4884),
    [anon_sym_DASH_DASH] = ACTIONS(4886),
    [anon_sym_PLUS] = ACTIONS(4884),
    [anon_sym_PLUS_PLUS] = ACTIONS(4886),
    [anon_sym_BANG] = ACTIONS(4886),
    [anon_sym_LPAREN] = ACTIONS(4886),
    [anon_sym_RPAREN] = ACTIONS(4886),
    [anon_sym_LBRACK] = ACTIONS(4886),
    [anon_sym_SEMI] = ACTIONS(4886),
    [anon_sym_DOLLAR] = ACTIONS(4886),
    [anon_sym_STAR] = ACTIONS(4886),
    [anon_sym_TILDE] = ACTIONS(4886),
    [sym_bool] = ACTIONS(4884),
    [sym_byte] = ACTIONS(4884),
    [sym_ubyte] = ACTIONS(4884),
    [sym_char] = ACTIONS(4884),
    [sym_short] = ACTIONS(4884),
    [sym_ushort] = ACTIONS(4884),
    [sym_int] = ACTIONS(4884),
    [sym_uint] = ACTIONS(4884),
    [sym_long] = ACTIONS(4884),
    [sym_ulong] = ACTIONS(4884),
    [sym_cent] = ACTIONS(4884),
    [sym_ucent] = ACTIONS(4884),
    [sym_wchar] = ACTIONS(4884),
    [sym_dchar] = ACTIONS(4884),
    [sym_float] = ACTIONS(4884),
    [sym_double] = ACTIONS(4884),
    [sym_real] = ACTIONS(4884),
    [sym_ifloat] = ACTIONS(4884),
    [sym_idouble] = ACTIONS(4884),
    [sym_ireal] = ACTIONS(4884),
    [sym_cfloat] = ACTIONS(4884),
    [sym_cdouble] = ACTIONS(4884),
    [sym_creal] = ACTIONS(4884),
    [sym_size_t] = ACTIONS(4884),
    [sym_ptrdiff_t] = ACTIONS(4884),
    [sym_string] = ACTIONS(4884),
    [sym_cstring] = ACTIONS(4884),
    [sym_dstring] = ACTIONS(4884),
    [sym_wstring] = ACTIONS(4884),
    [sym_noreturn] = ACTIONS(4884),
    [sym_true] = ACTIONS(4884),
    [sym_false] = ACTIONS(4884),
    [sym_null] = ACTIONS(4884),
    [sym_super] = ACTIONS(4884),
    [sym_this] = ACTIONS(4884),
    [sym_assert] = ACTIONS(4884),
    [sym_auto] = ACTIONS(4884),
    [sym_cast] = ACTIONS(4884),
    [sym_catch] = ACTIONS(4884),
    [sym_const] = ACTIONS(4884),
    [sym_delegate] = ACTIONS(4884),
    [sym_delete] = ACTIONS(4884),
    [sym_do] = ACTIONS(4884),
    [sym_else] = ACTIONS(4884),
    [sym_finally] = ACTIONS(4884),
    [sym_function] = ACTIONS(4884),
    [sym_immutable] = ACTIONS(4884),
    [sym_import] = ACTIONS(4884),
    [sym_in] = ACTIONS(4884),
    [sym_inout] = ACTIONS(4884),
    [sym_is] = ACTIONS(4884),
    [sym_mixin] = ACTIONS(4884),
    [sym_new] = ACTIONS(4884),
    [sym_out] = ACTIONS(4884),
    [sym_ref] = ACTIONS(4884),
    [sym_shared] = ACTIONS(4884),
    [sym_throw] = ACTIONS(4884),
    [sym_typeid] = ACTIONS(4884),
    [sym_typeof] = ACTIONS(4884),
    [sym_traits] = ACTIONS(4884),
    [sym_vector] = ACTIONS(4884),
    [sym_void] = ACTIONS(4884),
    [anon_sym_BQUOTE] = ACTIONS(4886),
    [anon_sym_r_DQUOTE] = ACTIONS(4886),
    [anon_sym_x_DQUOTE] = ACTIONS(4886),
    [anon_sym_DQUOTE] = ACTIONS(4886),
    [anon_sym_i_BQUOTE] = ACTIONS(4886),
    [anon_sym_i_DQUOTE] = ACTIONS(4886),
    [anon_sym_iq_LBRACE] = ACTIONS(4886),
    [aux_sym_char_literal_token1] = ACTIONS(4886),
    [anon_sym_SQUOTE] = ACTIONS(4884),
    [anon_sym___DATE__] = ACTIONS(4884),
    [anon_sym___FILE__] = ACTIONS(4884),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4884),
    [anon_sym___FUNCTION__] = ACTIONS(4884),
    [anon_sym___LINE__] = ACTIONS(4884),
    [anon_sym___MODULE__] = ACTIONS(4884),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4884),
    [anon_sym___TIME__] = ACTIONS(4884),
    [anon_sym___TIMESTAMP__] = ACTIONS(4884),
    [anon_sym___VENDOR__] = ACTIONS(4884),
    [anon_sym___VERSION__] = ACTIONS(4884),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4886),
    [sym_float_literal] = ACTIONS(4886),
    [sym__string] = ACTIONS(4886),
  },
  [2217] = {
    [sym_identifier] = ACTIONS(4562),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4564),
    [anon_sym_LBRACE] = ACTIONS(4564),
    [anon_sym_DOT] = ACTIONS(4564),
    [anon_sym_AMP] = ACTIONS(4564),
    [anon_sym_DASH] = ACTIONS(4562),
    [anon_sym_DASH_DASH] = ACTIONS(4564),
    [anon_sym_PLUS] = ACTIONS(4562),
    [anon_sym_PLUS_PLUS] = ACTIONS(4564),
    [anon_sym_BANG] = ACTIONS(4564),
    [anon_sym_LPAREN] = ACTIONS(4564),
    [anon_sym_RPAREN] = ACTIONS(4564),
    [anon_sym_LBRACK] = ACTIONS(4564),
    [anon_sym_SEMI] = ACTIONS(4564),
    [anon_sym_DOLLAR] = ACTIONS(4564),
    [anon_sym_STAR] = ACTIONS(4564),
    [anon_sym_TILDE] = ACTIONS(4564),
    [sym_bool] = ACTIONS(4562),
    [sym_byte] = ACTIONS(4562),
    [sym_ubyte] = ACTIONS(4562),
    [sym_char] = ACTIONS(4562),
    [sym_short] = ACTIONS(4562),
    [sym_ushort] = ACTIONS(4562),
    [sym_int] = ACTIONS(4562),
    [sym_uint] = ACTIONS(4562),
    [sym_long] = ACTIONS(4562),
    [sym_ulong] = ACTIONS(4562),
    [sym_cent] = ACTIONS(4562),
    [sym_ucent] = ACTIONS(4562),
    [sym_wchar] = ACTIONS(4562),
    [sym_dchar] = ACTIONS(4562),
    [sym_float] = ACTIONS(4562),
    [sym_double] = ACTIONS(4562),
    [sym_real] = ACTIONS(4562),
    [sym_ifloat] = ACTIONS(4562),
    [sym_idouble] = ACTIONS(4562),
    [sym_ireal] = ACTIONS(4562),
    [sym_cfloat] = ACTIONS(4562),
    [sym_cdouble] = ACTIONS(4562),
    [sym_creal] = ACTIONS(4562),
    [sym_size_t] = ACTIONS(4562),
    [sym_ptrdiff_t] = ACTIONS(4562),
    [sym_string] = ACTIONS(4562),
    [sym_cstring] = ACTIONS(4562),
    [sym_dstring] = ACTIONS(4562),
    [sym_wstring] = ACTIONS(4562),
    [sym_noreturn] = ACTIONS(4562),
    [sym_true] = ACTIONS(4562),
    [sym_false] = ACTIONS(4562),
    [sym_null] = ACTIONS(4562),
    [sym_super] = ACTIONS(4562),
    [sym_this] = ACTIONS(4562),
    [sym_assert] = ACTIONS(4562),
    [sym_auto] = ACTIONS(4562),
    [sym_cast] = ACTIONS(4562),
    [sym_catch] = ACTIONS(4562),
    [sym_const] = ACTIONS(4562),
    [sym_delegate] = ACTIONS(4562),
    [sym_delete] = ACTIONS(4562),
    [sym_do] = ACTIONS(4562),
    [sym_else] = ACTIONS(4562),
    [sym_finally] = ACTIONS(4562),
    [sym_function] = ACTIONS(4562),
    [sym_immutable] = ACTIONS(4562),
    [sym_import] = ACTIONS(4562),
    [sym_in] = ACTIONS(4562),
    [sym_inout] = ACTIONS(4562),
    [sym_is] = ACTIONS(4562),
    [sym_mixin] = ACTIONS(4562),
    [sym_new] = ACTIONS(4562),
    [sym_out] = ACTIONS(4562),
    [sym_ref] = ACTIONS(4562),
    [sym_shared] = ACTIONS(4562),
    [sym_throw] = ACTIONS(4562),
    [sym_typeid] = ACTIONS(4562),
    [sym_typeof] = ACTIONS(4562),
    [sym_traits] = ACTIONS(4562),
    [sym_vector] = ACTIONS(4562),
    [sym_void] = ACTIONS(4562),
    [anon_sym_BQUOTE] = ACTIONS(4564),
    [anon_sym_r_DQUOTE] = ACTIONS(4564),
    [anon_sym_x_DQUOTE] = ACTIONS(4564),
    [anon_sym_DQUOTE] = ACTIONS(4564),
    [anon_sym_i_BQUOTE] = ACTIONS(4564),
    [anon_sym_i_DQUOTE] = ACTIONS(4564),
    [anon_sym_iq_LBRACE] = ACTIONS(4564),
    [aux_sym_char_literal_token1] = ACTIONS(4564),
    [anon_sym_SQUOTE] = ACTIONS(4562),
    [anon_sym___DATE__] = ACTIONS(4562),
    [anon_sym___FILE__] = ACTIONS(4562),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4562),
    [anon_sym___FUNCTION__] = ACTIONS(4562),
    [anon_sym___LINE__] = ACTIONS(4562),
    [anon_sym___MODULE__] = ACTIONS(4562),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4562),
    [anon_sym___TIME__] = ACTIONS(4562),
    [anon_sym___TIMESTAMP__] = ACTIONS(4562),
    [anon_sym___VENDOR__] = ACTIONS(4562),
    [anon_sym___VERSION__] = ACTIONS(4562),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4564),
    [sym_float_literal] = ACTIONS(4564),
    [sym__string] = ACTIONS(4564),
  },
  [2218] = {
    [sym_identifier] = ACTIONS(4574),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4576),
    [anon_sym_LBRACE] = ACTIONS(4576),
    [anon_sym_DOT] = ACTIONS(4576),
    [anon_sym_AMP] = ACTIONS(4576),
    [anon_sym_DASH] = ACTIONS(4574),
    [anon_sym_DASH_DASH] = ACTIONS(4576),
    [anon_sym_PLUS] = ACTIONS(4574),
    [anon_sym_PLUS_PLUS] = ACTIONS(4576),
    [anon_sym_BANG] = ACTIONS(4576),
    [anon_sym_LPAREN] = ACTIONS(4576),
    [anon_sym_RPAREN] = ACTIONS(4576),
    [anon_sym_LBRACK] = ACTIONS(4576),
    [anon_sym_SEMI] = ACTIONS(4576),
    [anon_sym_DOLLAR] = ACTIONS(4576),
    [anon_sym_STAR] = ACTIONS(4576),
    [anon_sym_TILDE] = ACTIONS(4576),
    [sym_bool] = ACTIONS(4574),
    [sym_byte] = ACTIONS(4574),
    [sym_ubyte] = ACTIONS(4574),
    [sym_char] = ACTIONS(4574),
    [sym_short] = ACTIONS(4574),
    [sym_ushort] = ACTIONS(4574),
    [sym_int] = ACTIONS(4574),
    [sym_uint] = ACTIONS(4574),
    [sym_long] = ACTIONS(4574),
    [sym_ulong] = ACTIONS(4574),
    [sym_cent] = ACTIONS(4574),
    [sym_ucent] = ACTIONS(4574),
    [sym_wchar] = ACTIONS(4574),
    [sym_dchar] = ACTIONS(4574),
    [sym_float] = ACTIONS(4574),
    [sym_double] = ACTIONS(4574),
    [sym_real] = ACTIONS(4574),
    [sym_ifloat] = ACTIONS(4574),
    [sym_idouble] = ACTIONS(4574),
    [sym_ireal] = ACTIONS(4574),
    [sym_cfloat] = ACTIONS(4574),
    [sym_cdouble] = ACTIONS(4574),
    [sym_creal] = ACTIONS(4574),
    [sym_size_t] = ACTIONS(4574),
    [sym_ptrdiff_t] = ACTIONS(4574),
    [sym_string] = ACTIONS(4574),
    [sym_cstring] = ACTIONS(4574),
    [sym_dstring] = ACTIONS(4574),
    [sym_wstring] = ACTIONS(4574),
    [sym_noreturn] = ACTIONS(4574),
    [sym_true] = ACTIONS(4574),
    [sym_false] = ACTIONS(4574),
    [sym_null] = ACTIONS(4574),
    [sym_super] = ACTIONS(4574),
    [sym_this] = ACTIONS(4574),
    [sym_assert] = ACTIONS(4574),
    [sym_auto] = ACTIONS(4574),
    [sym_cast] = ACTIONS(4574),
    [sym_catch] = ACTIONS(4574),
    [sym_const] = ACTIONS(4574),
    [sym_delegate] = ACTIONS(4574),
    [sym_delete] = ACTIONS(4574),
    [sym_do] = ACTIONS(4574),
    [sym_else] = ACTIONS(4574),
    [sym_finally] = ACTIONS(4574),
    [sym_function] = ACTIONS(4574),
    [sym_immutable] = ACTIONS(4574),
    [sym_import] = ACTIONS(4574),
    [sym_in] = ACTIONS(4574),
    [sym_inout] = ACTIONS(4574),
    [sym_is] = ACTIONS(4574),
    [sym_mixin] = ACTIONS(4574),
    [sym_new] = ACTIONS(4574),
    [sym_out] = ACTIONS(4574),
    [sym_ref] = ACTIONS(4574),
    [sym_shared] = ACTIONS(4574),
    [sym_throw] = ACTIONS(4574),
    [sym_typeid] = ACTIONS(4574),
    [sym_typeof] = ACTIONS(4574),
    [sym_traits] = ACTIONS(4574),
    [sym_vector] = ACTIONS(4574),
    [sym_void] = ACTIONS(4574),
    [anon_sym_BQUOTE] = ACTIONS(4576),
    [anon_sym_r_DQUOTE] = ACTIONS(4576),
    [anon_sym_x_DQUOTE] = ACTIONS(4576),
    [anon_sym_DQUOTE] = ACTIONS(4576),
    [anon_sym_i_BQUOTE] = ACTIONS(4576),
    [anon_sym_i_DQUOTE] = ACTIONS(4576),
    [anon_sym_iq_LBRACE] = ACTIONS(4576),
    [aux_sym_char_literal_token1] = ACTIONS(4576),
    [anon_sym_SQUOTE] = ACTIONS(4574),
    [anon_sym___DATE__] = ACTIONS(4574),
    [anon_sym___FILE__] = ACTIONS(4574),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4574),
    [anon_sym___FUNCTION__] = ACTIONS(4574),
    [anon_sym___LINE__] = ACTIONS(4574),
    [anon_sym___MODULE__] = ACTIONS(4574),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4574),
    [anon_sym___TIME__] = ACTIONS(4574),
    [anon_sym___TIMESTAMP__] = ACTIONS(4574),
    [anon_sym___VENDOR__] = ACTIONS(4574),
    [anon_sym___VERSION__] = ACTIONS(4574),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4576),
    [sym_float_literal] = ACTIONS(4576),
    [sym__string] = ACTIONS(4576),
  },
  [2219] = {
    [sym_identifier] = ACTIONS(4908),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4910),
    [anon_sym_LBRACE] = ACTIONS(4910),
    [anon_sym_DOT] = ACTIONS(4910),
    [anon_sym_AMP] = ACTIONS(4910),
    [anon_sym_DASH] = ACTIONS(4908),
    [anon_sym_DASH_DASH] = ACTIONS(4910),
    [anon_sym_PLUS] = ACTIONS(4908),
    [anon_sym_PLUS_PLUS] = ACTIONS(4910),
    [anon_sym_BANG] = ACTIONS(4910),
    [anon_sym_LPAREN] = ACTIONS(4910),
    [anon_sym_RPAREN] = ACTIONS(4910),
    [anon_sym_LBRACK] = ACTIONS(4910),
    [anon_sym_SEMI] = ACTIONS(4910),
    [anon_sym_DOLLAR] = ACTIONS(4910),
    [anon_sym_STAR] = ACTIONS(4910),
    [anon_sym_TILDE] = ACTIONS(4910),
    [sym_bool] = ACTIONS(4908),
    [sym_byte] = ACTIONS(4908),
    [sym_ubyte] = ACTIONS(4908),
    [sym_char] = ACTIONS(4908),
    [sym_short] = ACTIONS(4908),
    [sym_ushort] = ACTIONS(4908),
    [sym_int] = ACTIONS(4908),
    [sym_uint] = ACTIONS(4908),
    [sym_long] = ACTIONS(4908),
    [sym_ulong] = ACTIONS(4908),
    [sym_cent] = ACTIONS(4908),
    [sym_ucent] = ACTIONS(4908),
    [sym_wchar] = ACTIONS(4908),
    [sym_dchar] = ACTIONS(4908),
    [sym_float] = ACTIONS(4908),
    [sym_double] = ACTIONS(4908),
    [sym_real] = ACTIONS(4908),
    [sym_ifloat] = ACTIONS(4908),
    [sym_idouble] = ACTIONS(4908),
    [sym_ireal] = ACTIONS(4908),
    [sym_cfloat] = ACTIONS(4908),
    [sym_cdouble] = ACTIONS(4908),
    [sym_creal] = ACTIONS(4908),
    [sym_size_t] = ACTIONS(4908),
    [sym_ptrdiff_t] = ACTIONS(4908),
    [sym_string] = ACTIONS(4908),
    [sym_cstring] = ACTIONS(4908),
    [sym_dstring] = ACTIONS(4908),
    [sym_wstring] = ACTIONS(4908),
    [sym_noreturn] = ACTIONS(4908),
    [sym_true] = ACTIONS(4908),
    [sym_false] = ACTIONS(4908),
    [sym_null] = ACTIONS(4908),
    [sym_super] = ACTIONS(4908),
    [sym_this] = ACTIONS(4908),
    [sym_assert] = ACTIONS(4908),
    [sym_auto] = ACTIONS(4908),
    [sym_cast] = ACTIONS(4908),
    [sym_catch] = ACTIONS(4908),
    [sym_const] = ACTIONS(4908),
    [sym_delegate] = ACTIONS(4908),
    [sym_delete] = ACTIONS(4908),
    [sym_do] = ACTIONS(4908),
    [sym_else] = ACTIONS(4908),
    [sym_finally] = ACTIONS(4908),
    [sym_function] = ACTIONS(4908),
    [sym_immutable] = ACTIONS(4908),
    [sym_import] = ACTIONS(4908),
    [sym_in] = ACTIONS(4908),
    [sym_inout] = ACTIONS(4908),
    [sym_is] = ACTIONS(4908),
    [sym_mixin] = ACTIONS(4908),
    [sym_new] = ACTIONS(4908),
    [sym_out] = ACTIONS(4908),
    [sym_ref] = ACTIONS(4908),
    [sym_shared] = ACTIONS(4908),
    [sym_throw] = ACTIONS(4908),
    [sym_typeid] = ACTIONS(4908),
    [sym_typeof] = ACTIONS(4908),
    [sym_traits] = ACTIONS(4908),
    [sym_vector] = ACTIONS(4908),
    [sym_void] = ACTIONS(4908),
    [anon_sym_BQUOTE] = ACTIONS(4910),
    [anon_sym_r_DQUOTE] = ACTIONS(4910),
    [anon_sym_x_DQUOTE] = ACTIONS(4910),
    [anon_sym_DQUOTE] = ACTIONS(4910),
    [anon_sym_i_BQUOTE] = ACTIONS(4910),
    [anon_sym_i_DQUOTE] = ACTIONS(4910),
    [anon_sym_iq_LBRACE] = ACTIONS(4910),
    [aux_sym_char_literal_token1] = ACTIONS(4910),
    [anon_sym_SQUOTE] = ACTIONS(4908),
    [anon_sym___DATE__] = ACTIONS(4908),
    [anon_sym___FILE__] = ACTIONS(4908),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4908),
    [anon_sym___FUNCTION__] = ACTIONS(4908),
    [anon_sym___LINE__] = ACTIONS(4908),
    [anon_sym___MODULE__] = ACTIONS(4908),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4908),
    [anon_sym___TIME__] = ACTIONS(4908),
    [anon_sym___TIMESTAMP__] = ACTIONS(4908),
    [anon_sym___VENDOR__] = ACTIONS(4908),
    [anon_sym___VERSION__] = ACTIONS(4908),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4910),
    [sym_float_literal] = ACTIONS(4910),
    [sym__string] = ACTIONS(4910),
  },
  [2220] = {
    [sym_identifier] = ACTIONS(4922),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4924),
    [anon_sym_LBRACE] = ACTIONS(4924),
    [anon_sym_DOT] = ACTIONS(4924),
    [anon_sym_AMP] = ACTIONS(4924),
    [anon_sym_DASH] = ACTIONS(4922),
    [anon_sym_DASH_DASH] = ACTIONS(4924),
    [anon_sym_PLUS] = ACTIONS(4922),
    [anon_sym_PLUS_PLUS] = ACTIONS(4924),
    [anon_sym_BANG] = ACTIONS(4924),
    [anon_sym_LPAREN] = ACTIONS(4924),
    [anon_sym_RPAREN] = ACTIONS(4924),
    [anon_sym_LBRACK] = ACTIONS(4924),
    [anon_sym_SEMI] = ACTIONS(4924),
    [anon_sym_DOLLAR] = ACTIONS(4924),
    [anon_sym_STAR] = ACTIONS(4924),
    [anon_sym_TILDE] = ACTIONS(4924),
    [sym_bool] = ACTIONS(4922),
    [sym_byte] = ACTIONS(4922),
    [sym_ubyte] = ACTIONS(4922),
    [sym_char] = ACTIONS(4922),
    [sym_short] = ACTIONS(4922),
    [sym_ushort] = ACTIONS(4922),
    [sym_int] = ACTIONS(4922),
    [sym_uint] = ACTIONS(4922),
    [sym_long] = ACTIONS(4922),
    [sym_ulong] = ACTIONS(4922),
    [sym_cent] = ACTIONS(4922),
    [sym_ucent] = ACTIONS(4922),
    [sym_wchar] = ACTIONS(4922),
    [sym_dchar] = ACTIONS(4922),
    [sym_float] = ACTIONS(4922),
    [sym_double] = ACTIONS(4922),
    [sym_real] = ACTIONS(4922),
    [sym_ifloat] = ACTIONS(4922),
    [sym_idouble] = ACTIONS(4922),
    [sym_ireal] = ACTIONS(4922),
    [sym_cfloat] = ACTIONS(4922),
    [sym_cdouble] = ACTIONS(4922),
    [sym_creal] = ACTIONS(4922),
    [sym_size_t] = ACTIONS(4922),
    [sym_ptrdiff_t] = ACTIONS(4922),
    [sym_string] = ACTIONS(4922),
    [sym_cstring] = ACTIONS(4922),
    [sym_dstring] = ACTIONS(4922),
    [sym_wstring] = ACTIONS(4922),
    [sym_noreturn] = ACTIONS(4922),
    [sym_true] = ACTIONS(4922),
    [sym_false] = ACTIONS(4922),
    [sym_null] = ACTIONS(4922),
    [sym_super] = ACTIONS(4922),
    [sym_this] = ACTIONS(4922),
    [sym_assert] = ACTIONS(4922),
    [sym_auto] = ACTIONS(4922),
    [sym_cast] = ACTIONS(4922),
    [sym_catch] = ACTIONS(4922),
    [sym_const] = ACTIONS(4922),
    [sym_delegate] = ACTIONS(4922),
    [sym_delete] = ACTIONS(4922),
    [sym_do] = ACTIONS(4922),
    [sym_else] = ACTIONS(4922),
    [sym_finally] = ACTIONS(4922),
    [sym_function] = ACTIONS(4922),
    [sym_immutable] = ACTIONS(4922),
    [sym_import] = ACTIONS(4922),
    [sym_in] = ACTIONS(4922),
    [sym_inout] = ACTIONS(4922),
    [sym_is] = ACTIONS(4922),
    [sym_mixin] = ACTIONS(4922),
    [sym_new] = ACTIONS(4922),
    [sym_out] = ACTIONS(4922),
    [sym_ref] = ACTIONS(4922),
    [sym_shared] = ACTIONS(4922),
    [sym_throw] = ACTIONS(4922),
    [sym_typeid] = ACTIONS(4922),
    [sym_typeof] = ACTIONS(4922),
    [sym_traits] = ACTIONS(4922),
    [sym_vector] = ACTIONS(4922),
    [sym_void] = ACTIONS(4922),
    [anon_sym_BQUOTE] = ACTIONS(4924),
    [anon_sym_r_DQUOTE] = ACTIONS(4924),
    [anon_sym_x_DQUOTE] = ACTIONS(4924),
    [anon_sym_DQUOTE] = ACTIONS(4924),
    [anon_sym_i_BQUOTE] = ACTIONS(4924),
    [anon_sym_i_DQUOTE] = ACTIONS(4924),
    [anon_sym_iq_LBRACE] = ACTIONS(4924),
    [aux_sym_char_literal_token1] = ACTIONS(4924),
    [anon_sym_SQUOTE] = ACTIONS(4922),
    [anon_sym___DATE__] = ACTIONS(4922),
    [anon_sym___FILE__] = ACTIONS(4922),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4922),
    [anon_sym___FUNCTION__] = ACTIONS(4922),
    [anon_sym___LINE__] = ACTIONS(4922),
    [anon_sym___MODULE__] = ACTIONS(4922),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4922),
    [anon_sym___TIME__] = ACTIONS(4922),
    [anon_sym___TIMESTAMP__] = ACTIONS(4922),
    [anon_sym___VENDOR__] = ACTIONS(4922),
    [anon_sym___VERSION__] = ACTIONS(4922),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4924),
    [sym_float_literal] = ACTIONS(4924),
    [sym__string] = ACTIONS(4924),
  },
  [2221] = {
    [sym_identifier] = ACTIONS(5004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5006),
    [anon_sym_LBRACE] = ACTIONS(5006),
    [anon_sym_DOT] = ACTIONS(5006),
    [anon_sym_AMP] = ACTIONS(5006),
    [anon_sym_DASH] = ACTIONS(5004),
    [anon_sym_DASH_DASH] = ACTIONS(5006),
    [anon_sym_PLUS] = ACTIONS(5004),
    [anon_sym_PLUS_PLUS] = ACTIONS(5006),
    [anon_sym_BANG] = ACTIONS(5006),
    [anon_sym_LPAREN] = ACTIONS(5006),
    [anon_sym_RPAREN] = ACTIONS(5006),
    [anon_sym_LBRACK] = ACTIONS(5006),
    [anon_sym_SEMI] = ACTIONS(5006),
    [anon_sym_DOLLAR] = ACTIONS(5006),
    [anon_sym_STAR] = ACTIONS(5006),
    [anon_sym_TILDE] = ACTIONS(5006),
    [sym_bool] = ACTIONS(5004),
    [sym_byte] = ACTIONS(5004),
    [sym_ubyte] = ACTIONS(5004),
    [sym_char] = ACTIONS(5004),
    [sym_short] = ACTIONS(5004),
    [sym_ushort] = ACTIONS(5004),
    [sym_int] = ACTIONS(5004),
    [sym_uint] = ACTIONS(5004),
    [sym_long] = ACTIONS(5004),
    [sym_ulong] = ACTIONS(5004),
    [sym_cent] = ACTIONS(5004),
    [sym_ucent] = ACTIONS(5004),
    [sym_wchar] = ACTIONS(5004),
    [sym_dchar] = ACTIONS(5004),
    [sym_float] = ACTIONS(5004),
    [sym_double] = ACTIONS(5004),
    [sym_real] = ACTIONS(5004),
    [sym_ifloat] = ACTIONS(5004),
    [sym_idouble] = ACTIONS(5004),
    [sym_ireal] = ACTIONS(5004),
    [sym_cfloat] = ACTIONS(5004),
    [sym_cdouble] = ACTIONS(5004),
    [sym_creal] = ACTIONS(5004),
    [sym_size_t] = ACTIONS(5004),
    [sym_ptrdiff_t] = ACTIONS(5004),
    [sym_string] = ACTIONS(5004),
    [sym_cstring] = ACTIONS(5004),
    [sym_dstring] = ACTIONS(5004),
    [sym_wstring] = ACTIONS(5004),
    [sym_noreturn] = ACTIONS(5004),
    [sym_true] = ACTIONS(5004),
    [sym_false] = ACTIONS(5004),
    [sym_null] = ACTIONS(5004),
    [sym_super] = ACTIONS(5004),
    [sym_this] = ACTIONS(5004),
    [sym_assert] = ACTIONS(5004),
    [sym_auto] = ACTIONS(5004),
    [sym_cast] = ACTIONS(5004),
    [sym_catch] = ACTIONS(5004),
    [sym_const] = ACTIONS(5004),
    [sym_delegate] = ACTIONS(5004),
    [sym_delete] = ACTIONS(5004),
    [sym_do] = ACTIONS(5004),
    [sym_else] = ACTIONS(5004),
    [sym_finally] = ACTIONS(5004),
    [sym_function] = ACTIONS(5004),
    [sym_immutable] = ACTIONS(5004),
    [sym_import] = ACTIONS(5004),
    [sym_in] = ACTIONS(5004),
    [sym_inout] = ACTIONS(5004),
    [sym_is] = ACTIONS(5004),
    [sym_mixin] = ACTIONS(5004),
    [sym_new] = ACTIONS(5004),
    [sym_out] = ACTIONS(5004),
    [sym_ref] = ACTIONS(5004),
    [sym_shared] = ACTIONS(5004),
    [sym_throw] = ACTIONS(5004),
    [sym_typeid] = ACTIONS(5004),
    [sym_typeof] = ACTIONS(5004),
    [sym_traits] = ACTIONS(5004),
    [sym_vector] = ACTIONS(5004),
    [sym_void] = ACTIONS(5004),
    [anon_sym_BQUOTE] = ACTIONS(5006),
    [anon_sym_r_DQUOTE] = ACTIONS(5006),
    [anon_sym_x_DQUOTE] = ACTIONS(5006),
    [anon_sym_DQUOTE] = ACTIONS(5006),
    [anon_sym_i_BQUOTE] = ACTIONS(5006),
    [anon_sym_i_DQUOTE] = ACTIONS(5006),
    [anon_sym_iq_LBRACE] = ACTIONS(5006),
    [aux_sym_char_literal_token1] = ACTIONS(5006),
    [anon_sym_SQUOTE] = ACTIONS(5004),
    [anon_sym___DATE__] = ACTIONS(5004),
    [anon_sym___FILE__] = ACTIONS(5004),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5004),
    [anon_sym___FUNCTION__] = ACTIONS(5004),
    [anon_sym___LINE__] = ACTIONS(5004),
    [anon_sym___MODULE__] = ACTIONS(5004),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5004),
    [anon_sym___TIME__] = ACTIONS(5004),
    [anon_sym___TIMESTAMP__] = ACTIONS(5004),
    [anon_sym___VENDOR__] = ACTIONS(5004),
    [anon_sym___VERSION__] = ACTIONS(5004),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5006),
    [sym_float_literal] = ACTIONS(5006),
    [sym__string] = ACTIONS(5006),
  },
  [2222] = {
    [sym_identifier] = ACTIONS(4940),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4942),
    [anon_sym_LBRACE] = ACTIONS(4942),
    [anon_sym_DOT] = ACTIONS(4942),
    [anon_sym_AMP] = ACTIONS(4942),
    [anon_sym_DASH] = ACTIONS(4940),
    [anon_sym_DASH_DASH] = ACTIONS(4942),
    [anon_sym_PLUS] = ACTIONS(4940),
    [anon_sym_PLUS_PLUS] = ACTIONS(4942),
    [anon_sym_BANG] = ACTIONS(4942),
    [anon_sym_LPAREN] = ACTIONS(4942),
    [anon_sym_RPAREN] = ACTIONS(4942),
    [anon_sym_LBRACK] = ACTIONS(4942),
    [anon_sym_SEMI] = ACTIONS(4942),
    [anon_sym_DOLLAR] = ACTIONS(4942),
    [anon_sym_STAR] = ACTIONS(4942),
    [anon_sym_TILDE] = ACTIONS(4942),
    [sym_bool] = ACTIONS(4940),
    [sym_byte] = ACTIONS(4940),
    [sym_ubyte] = ACTIONS(4940),
    [sym_char] = ACTIONS(4940),
    [sym_short] = ACTIONS(4940),
    [sym_ushort] = ACTIONS(4940),
    [sym_int] = ACTIONS(4940),
    [sym_uint] = ACTIONS(4940),
    [sym_long] = ACTIONS(4940),
    [sym_ulong] = ACTIONS(4940),
    [sym_cent] = ACTIONS(4940),
    [sym_ucent] = ACTIONS(4940),
    [sym_wchar] = ACTIONS(4940),
    [sym_dchar] = ACTIONS(4940),
    [sym_float] = ACTIONS(4940),
    [sym_double] = ACTIONS(4940),
    [sym_real] = ACTIONS(4940),
    [sym_ifloat] = ACTIONS(4940),
    [sym_idouble] = ACTIONS(4940),
    [sym_ireal] = ACTIONS(4940),
    [sym_cfloat] = ACTIONS(4940),
    [sym_cdouble] = ACTIONS(4940),
    [sym_creal] = ACTIONS(4940),
    [sym_size_t] = ACTIONS(4940),
    [sym_ptrdiff_t] = ACTIONS(4940),
    [sym_string] = ACTIONS(4940),
    [sym_cstring] = ACTIONS(4940),
    [sym_dstring] = ACTIONS(4940),
    [sym_wstring] = ACTIONS(4940),
    [sym_noreturn] = ACTIONS(4940),
    [sym_true] = ACTIONS(4940),
    [sym_false] = ACTIONS(4940),
    [sym_null] = ACTIONS(4940),
    [sym_super] = ACTIONS(4940),
    [sym_this] = ACTIONS(4940),
    [sym_assert] = ACTIONS(4940),
    [sym_auto] = ACTIONS(4940),
    [sym_cast] = ACTIONS(4940),
    [sym_catch] = ACTIONS(4940),
    [sym_const] = ACTIONS(4940),
    [sym_delegate] = ACTIONS(4940),
    [sym_delete] = ACTIONS(4940),
    [sym_do] = ACTIONS(4940),
    [sym_else] = ACTIONS(4940),
    [sym_finally] = ACTIONS(4940),
    [sym_function] = ACTIONS(4940),
    [sym_immutable] = ACTIONS(4940),
    [sym_import] = ACTIONS(4940),
    [sym_in] = ACTIONS(4940),
    [sym_inout] = ACTIONS(4940),
    [sym_is] = ACTIONS(4940),
    [sym_mixin] = ACTIONS(4940),
    [sym_new] = ACTIONS(4940),
    [sym_out] = ACTIONS(4940),
    [sym_ref] = ACTIONS(4940),
    [sym_shared] = ACTIONS(4940),
    [sym_throw] = ACTIONS(4940),
    [sym_typeid] = ACTIONS(4940),
    [sym_typeof] = ACTIONS(4940),
    [sym_traits] = ACTIONS(4940),
    [sym_vector] = ACTIONS(4940),
    [sym_void] = ACTIONS(4940),
    [anon_sym_BQUOTE] = ACTIONS(4942),
    [anon_sym_r_DQUOTE] = ACTIONS(4942),
    [anon_sym_x_DQUOTE] = ACTIONS(4942),
    [anon_sym_DQUOTE] = ACTIONS(4942),
    [anon_sym_i_BQUOTE] = ACTIONS(4942),
    [anon_sym_i_DQUOTE] = ACTIONS(4942),
    [anon_sym_iq_LBRACE] = ACTIONS(4942),
    [aux_sym_char_literal_token1] = ACTIONS(4942),
    [anon_sym_SQUOTE] = ACTIONS(4940),
    [anon_sym___DATE__] = ACTIONS(4940),
    [anon_sym___FILE__] = ACTIONS(4940),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4940),
    [anon_sym___FUNCTION__] = ACTIONS(4940),
    [anon_sym___LINE__] = ACTIONS(4940),
    [anon_sym___MODULE__] = ACTIONS(4940),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4940),
    [anon_sym___TIME__] = ACTIONS(4940),
    [anon_sym___TIMESTAMP__] = ACTIONS(4940),
    [anon_sym___VENDOR__] = ACTIONS(4940),
    [anon_sym___VERSION__] = ACTIONS(4940),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4942),
    [sym_float_literal] = ACTIONS(4942),
    [sym__string] = ACTIONS(4942),
  },
  [2223] = {
    [sym_identifier] = ACTIONS(5028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5030),
    [anon_sym_LBRACE] = ACTIONS(5030),
    [anon_sym_DOT] = ACTIONS(5030),
    [anon_sym_AMP] = ACTIONS(5030),
    [anon_sym_DASH] = ACTIONS(5028),
    [anon_sym_DASH_DASH] = ACTIONS(5030),
    [anon_sym_PLUS] = ACTIONS(5028),
    [anon_sym_PLUS_PLUS] = ACTIONS(5030),
    [anon_sym_BANG] = ACTIONS(5030),
    [anon_sym_LPAREN] = ACTIONS(5030),
    [anon_sym_RPAREN] = ACTIONS(5030),
    [anon_sym_LBRACK] = ACTIONS(5030),
    [anon_sym_SEMI] = ACTIONS(5030),
    [anon_sym_DOLLAR] = ACTIONS(5030),
    [anon_sym_STAR] = ACTIONS(5030),
    [anon_sym_TILDE] = ACTIONS(5030),
    [sym_bool] = ACTIONS(5028),
    [sym_byte] = ACTIONS(5028),
    [sym_ubyte] = ACTIONS(5028),
    [sym_char] = ACTIONS(5028),
    [sym_short] = ACTIONS(5028),
    [sym_ushort] = ACTIONS(5028),
    [sym_int] = ACTIONS(5028),
    [sym_uint] = ACTIONS(5028),
    [sym_long] = ACTIONS(5028),
    [sym_ulong] = ACTIONS(5028),
    [sym_cent] = ACTIONS(5028),
    [sym_ucent] = ACTIONS(5028),
    [sym_wchar] = ACTIONS(5028),
    [sym_dchar] = ACTIONS(5028),
    [sym_float] = ACTIONS(5028),
    [sym_double] = ACTIONS(5028),
    [sym_real] = ACTIONS(5028),
    [sym_ifloat] = ACTIONS(5028),
    [sym_idouble] = ACTIONS(5028),
    [sym_ireal] = ACTIONS(5028),
    [sym_cfloat] = ACTIONS(5028),
    [sym_cdouble] = ACTIONS(5028),
    [sym_creal] = ACTIONS(5028),
    [sym_size_t] = ACTIONS(5028),
    [sym_ptrdiff_t] = ACTIONS(5028),
    [sym_string] = ACTIONS(5028),
    [sym_cstring] = ACTIONS(5028),
    [sym_dstring] = ACTIONS(5028),
    [sym_wstring] = ACTIONS(5028),
    [sym_noreturn] = ACTIONS(5028),
    [sym_true] = ACTIONS(5028),
    [sym_false] = ACTIONS(5028),
    [sym_null] = ACTIONS(5028),
    [sym_super] = ACTIONS(5028),
    [sym_this] = ACTIONS(5028),
    [sym_assert] = ACTIONS(5028),
    [sym_auto] = ACTIONS(5028),
    [sym_cast] = ACTIONS(5028),
    [sym_catch] = ACTIONS(5028),
    [sym_const] = ACTIONS(5028),
    [sym_delegate] = ACTIONS(5028),
    [sym_delete] = ACTIONS(5028),
    [sym_do] = ACTIONS(5028),
    [sym_else] = ACTIONS(5028),
    [sym_finally] = ACTIONS(5028),
    [sym_function] = ACTIONS(5028),
    [sym_immutable] = ACTIONS(5028),
    [sym_import] = ACTIONS(5028),
    [sym_in] = ACTIONS(5028),
    [sym_inout] = ACTIONS(5028),
    [sym_is] = ACTIONS(5028),
    [sym_mixin] = ACTIONS(5028),
    [sym_new] = ACTIONS(5028),
    [sym_out] = ACTIONS(5028),
    [sym_ref] = ACTIONS(5028),
    [sym_shared] = ACTIONS(5028),
    [sym_throw] = ACTIONS(5028),
    [sym_typeid] = ACTIONS(5028),
    [sym_typeof] = ACTIONS(5028),
    [sym_traits] = ACTIONS(5028),
    [sym_vector] = ACTIONS(5028),
    [sym_void] = ACTIONS(5028),
    [anon_sym_BQUOTE] = ACTIONS(5030),
    [anon_sym_r_DQUOTE] = ACTIONS(5030),
    [anon_sym_x_DQUOTE] = ACTIONS(5030),
    [anon_sym_DQUOTE] = ACTIONS(5030),
    [anon_sym_i_BQUOTE] = ACTIONS(5030),
    [anon_sym_i_DQUOTE] = ACTIONS(5030),
    [anon_sym_iq_LBRACE] = ACTIONS(5030),
    [aux_sym_char_literal_token1] = ACTIONS(5030),
    [anon_sym_SQUOTE] = ACTIONS(5028),
    [anon_sym___DATE__] = ACTIONS(5028),
    [anon_sym___FILE__] = ACTIONS(5028),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5028),
    [anon_sym___FUNCTION__] = ACTIONS(5028),
    [anon_sym___LINE__] = ACTIONS(5028),
    [anon_sym___MODULE__] = ACTIONS(5028),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5028),
    [anon_sym___TIME__] = ACTIONS(5028),
    [anon_sym___TIMESTAMP__] = ACTIONS(5028),
    [anon_sym___VENDOR__] = ACTIONS(5028),
    [anon_sym___VERSION__] = ACTIONS(5028),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5030),
    [sym_float_literal] = ACTIONS(5030),
    [sym__string] = ACTIONS(5030),
  },
  [2224] = {
    [sym_identifier] = ACTIONS(4948),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4950),
    [anon_sym_LBRACE] = ACTIONS(4950),
    [anon_sym_DOT] = ACTIONS(4950),
    [anon_sym_AMP] = ACTIONS(4950),
    [anon_sym_DASH] = ACTIONS(4948),
    [anon_sym_DASH_DASH] = ACTIONS(4950),
    [anon_sym_PLUS] = ACTIONS(4948),
    [anon_sym_PLUS_PLUS] = ACTIONS(4950),
    [anon_sym_BANG] = ACTIONS(4950),
    [anon_sym_LPAREN] = ACTIONS(4950),
    [anon_sym_RPAREN] = ACTIONS(4950),
    [anon_sym_LBRACK] = ACTIONS(4950),
    [anon_sym_SEMI] = ACTIONS(4950),
    [anon_sym_DOLLAR] = ACTIONS(4950),
    [anon_sym_STAR] = ACTIONS(4950),
    [anon_sym_TILDE] = ACTIONS(4950),
    [sym_bool] = ACTIONS(4948),
    [sym_byte] = ACTIONS(4948),
    [sym_ubyte] = ACTIONS(4948),
    [sym_char] = ACTIONS(4948),
    [sym_short] = ACTIONS(4948),
    [sym_ushort] = ACTIONS(4948),
    [sym_int] = ACTIONS(4948),
    [sym_uint] = ACTIONS(4948),
    [sym_long] = ACTIONS(4948),
    [sym_ulong] = ACTIONS(4948),
    [sym_cent] = ACTIONS(4948),
    [sym_ucent] = ACTIONS(4948),
    [sym_wchar] = ACTIONS(4948),
    [sym_dchar] = ACTIONS(4948),
    [sym_float] = ACTIONS(4948),
    [sym_double] = ACTIONS(4948),
    [sym_real] = ACTIONS(4948),
    [sym_ifloat] = ACTIONS(4948),
    [sym_idouble] = ACTIONS(4948),
    [sym_ireal] = ACTIONS(4948),
    [sym_cfloat] = ACTIONS(4948),
    [sym_cdouble] = ACTIONS(4948),
    [sym_creal] = ACTIONS(4948),
    [sym_size_t] = ACTIONS(4948),
    [sym_ptrdiff_t] = ACTIONS(4948),
    [sym_string] = ACTIONS(4948),
    [sym_cstring] = ACTIONS(4948),
    [sym_dstring] = ACTIONS(4948),
    [sym_wstring] = ACTIONS(4948),
    [sym_noreturn] = ACTIONS(4948),
    [sym_true] = ACTIONS(4948),
    [sym_false] = ACTIONS(4948),
    [sym_null] = ACTIONS(4948),
    [sym_super] = ACTIONS(4948),
    [sym_this] = ACTIONS(4948),
    [sym_assert] = ACTIONS(4948),
    [sym_auto] = ACTIONS(4948),
    [sym_cast] = ACTIONS(4948),
    [sym_catch] = ACTIONS(4948),
    [sym_const] = ACTIONS(4948),
    [sym_delegate] = ACTIONS(4948),
    [sym_delete] = ACTIONS(4948),
    [sym_do] = ACTIONS(4948),
    [sym_else] = ACTIONS(4948),
    [sym_finally] = ACTIONS(4948),
    [sym_function] = ACTIONS(4948),
    [sym_immutable] = ACTIONS(4948),
    [sym_import] = ACTIONS(4948),
    [sym_in] = ACTIONS(4948),
    [sym_inout] = ACTIONS(4948),
    [sym_is] = ACTIONS(4948),
    [sym_mixin] = ACTIONS(4948),
    [sym_new] = ACTIONS(4948),
    [sym_out] = ACTIONS(4948),
    [sym_ref] = ACTIONS(4948),
    [sym_shared] = ACTIONS(4948),
    [sym_throw] = ACTIONS(4948),
    [sym_typeid] = ACTIONS(4948),
    [sym_typeof] = ACTIONS(4948),
    [sym_traits] = ACTIONS(4948),
    [sym_vector] = ACTIONS(4948),
    [sym_void] = ACTIONS(4948),
    [anon_sym_BQUOTE] = ACTIONS(4950),
    [anon_sym_r_DQUOTE] = ACTIONS(4950),
    [anon_sym_x_DQUOTE] = ACTIONS(4950),
    [anon_sym_DQUOTE] = ACTIONS(4950),
    [anon_sym_i_BQUOTE] = ACTIONS(4950),
    [anon_sym_i_DQUOTE] = ACTIONS(4950),
    [anon_sym_iq_LBRACE] = ACTIONS(4950),
    [aux_sym_char_literal_token1] = ACTIONS(4950),
    [anon_sym_SQUOTE] = ACTIONS(4948),
    [anon_sym___DATE__] = ACTIONS(4948),
    [anon_sym___FILE__] = ACTIONS(4948),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4948),
    [anon_sym___FUNCTION__] = ACTIONS(4948),
    [anon_sym___LINE__] = ACTIONS(4948),
    [anon_sym___MODULE__] = ACTIONS(4948),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4948),
    [anon_sym___TIME__] = ACTIONS(4948),
    [anon_sym___TIMESTAMP__] = ACTIONS(4948),
    [anon_sym___VENDOR__] = ACTIONS(4948),
    [anon_sym___VERSION__] = ACTIONS(4948),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4950),
    [sym_float_literal] = ACTIONS(4950),
    [sym__string] = ACTIONS(4950),
  },
  [2225] = {
    [sym_identifier] = ACTIONS(4301),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4303),
    [anon_sym_LBRACE] = ACTIONS(4303),
    [anon_sym_DOT] = ACTIONS(4303),
    [anon_sym_AMP] = ACTIONS(4303),
    [anon_sym_DASH] = ACTIONS(4301),
    [anon_sym_DASH_DASH] = ACTIONS(4303),
    [anon_sym_PLUS] = ACTIONS(4301),
    [anon_sym_PLUS_PLUS] = ACTIONS(4303),
    [anon_sym_BANG] = ACTIONS(4303),
    [anon_sym_LPAREN] = ACTIONS(4303),
    [anon_sym_RPAREN] = ACTIONS(4303),
    [anon_sym_LBRACK] = ACTIONS(4303),
    [anon_sym_SEMI] = ACTIONS(4303),
    [anon_sym_DOLLAR] = ACTIONS(4303),
    [anon_sym_STAR] = ACTIONS(4303),
    [anon_sym_TILDE] = ACTIONS(4303),
    [sym_bool] = ACTIONS(4301),
    [sym_byte] = ACTIONS(4301),
    [sym_ubyte] = ACTIONS(4301),
    [sym_char] = ACTIONS(4301),
    [sym_short] = ACTIONS(4301),
    [sym_ushort] = ACTIONS(4301),
    [sym_int] = ACTIONS(4301),
    [sym_uint] = ACTIONS(4301),
    [sym_long] = ACTIONS(4301),
    [sym_ulong] = ACTIONS(4301),
    [sym_cent] = ACTIONS(4301),
    [sym_ucent] = ACTIONS(4301),
    [sym_wchar] = ACTIONS(4301),
    [sym_dchar] = ACTIONS(4301),
    [sym_float] = ACTIONS(4301),
    [sym_double] = ACTIONS(4301),
    [sym_real] = ACTIONS(4301),
    [sym_ifloat] = ACTIONS(4301),
    [sym_idouble] = ACTIONS(4301),
    [sym_ireal] = ACTIONS(4301),
    [sym_cfloat] = ACTIONS(4301),
    [sym_cdouble] = ACTIONS(4301),
    [sym_creal] = ACTIONS(4301),
    [sym_size_t] = ACTIONS(4301),
    [sym_ptrdiff_t] = ACTIONS(4301),
    [sym_string] = ACTIONS(4301),
    [sym_cstring] = ACTIONS(4301),
    [sym_dstring] = ACTIONS(4301),
    [sym_wstring] = ACTIONS(4301),
    [sym_noreturn] = ACTIONS(4301),
    [sym_true] = ACTIONS(4301),
    [sym_false] = ACTIONS(4301),
    [sym_null] = ACTIONS(4301),
    [sym_super] = ACTIONS(4301),
    [sym_this] = ACTIONS(4301),
    [sym_assert] = ACTIONS(4301),
    [sym_auto] = ACTIONS(4301),
    [sym_cast] = ACTIONS(4301),
    [sym_catch] = ACTIONS(4301),
    [sym_const] = ACTIONS(4301),
    [sym_delegate] = ACTIONS(4301),
    [sym_delete] = ACTIONS(4301),
    [sym_do] = ACTIONS(4301),
    [sym_else] = ACTIONS(4301),
    [sym_finally] = ACTIONS(4301),
    [sym_function] = ACTIONS(4301),
    [sym_immutable] = ACTIONS(4301),
    [sym_import] = ACTIONS(4301),
    [sym_in] = ACTIONS(4301),
    [sym_inout] = ACTIONS(4301),
    [sym_is] = ACTIONS(4301),
    [sym_mixin] = ACTIONS(4301),
    [sym_new] = ACTIONS(4301),
    [sym_out] = ACTIONS(4301),
    [sym_ref] = ACTIONS(4301),
    [sym_shared] = ACTIONS(4301),
    [sym_throw] = ACTIONS(4301),
    [sym_typeid] = ACTIONS(4301),
    [sym_typeof] = ACTIONS(4301),
    [sym_traits] = ACTIONS(4301),
    [sym_vector] = ACTIONS(4301),
    [sym_void] = ACTIONS(4301),
    [anon_sym_BQUOTE] = ACTIONS(4303),
    [anon_sym_r_DQUOTE] = ACTIONS(4303),
    [anon_sym_x_DQUOTE] = ACTIONS(4303),
    [anon_sym_DQUOTE] = ACTIONS(4303),
    [anon_sym_i_BQUOTE] = ACTIONS(4303),
    [anon_sym_i_DQUOTE] = ACTIONS(4303),
    [anon_sym_iq_LBRACE] = ACTIONS(4303),
    [aux_sym_char_literal_token1] = ACTIONS(4303),
    [anon_sym_SQUOTE] = ACTIONS(4301),
    [anon_sym___DATE__] = ACTIONS(4301),
    [anon_sym___FILE__] = ACTIONS(4301),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4301),
    [anon_sym___FUNCTION__] = ACTIONS(4301),
    [anon_sym___LINE__] = ACTIONS(4301),
    [anon_sym___MODULE__] = ACTIONS(4301),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4301),
    [anon_sym___TIME__] = ACTIONS(4301),
    [anon_sym___TIMESTAMP__] = ACTIONS(4301),
    [anon_sym___VENDOR__] = ACTIONS(4301),
    [anon_sym___VERSION__] = ACTIONS(4301),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4303),
    [sym_float_literal] = ACTIONS(4303),
    [sym__string] = ACTIONS(4303),
  },
  [2226] = {
    [sym_identifier] = ACTIONS(4814),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4816),
    [anon_sym_LBRACE] = ACTIONS(4816),
    [anon_sym_DOT] = ACTIONS(4816),
    [anon_sym_AMP] = ACTIONS(4816),
    [anon_sym_DASH] = ACTIONS(4814),
    [anon_sym_DASH_DASH] = ACTIONS(4816),
    [anon_sym_PLUS] = ACTIONS(4814),
    [anon_sym_PLUS_PLUS] = ACTIONS(4816),
    [anon_sym_BANG] = ACTIONS(4816),
    [anon_sym_LPAREN] = ACTIONS(4816),
    [anon_sym_RPAREN] = ACTIONS(4816),
    [anon_sym_LBRACK] = ACTIONS(4816),
    [anon_sym_SEMI] = ACTIONS(4816),
    [anon_sym_DOLLAR] = ACTIONS(4816),
    [anon_sym_STAR] = ACTIONS(4816),
    [anon_sym_TILDE] = ACTIONS(4816),
    [sym_bool] = ACTIONS(4814),
    [sym_byte] = ACTIONS(4814),
    [sym_ubyte] = ACTIONS(4814),
    [sym_char] = ACTIONS(4814),
    [sym_short] = ACTIONS(4814),
    [sym_ushort] = ACTIONS(4814),
    [sym_int] = ACTIONS(4814),
    [sym_uint] = ACTIONS(4814),
    [sym_long] = ACTIONS(4814),
    [sym_ulong] = ACTIONS(4814),
    [sym_cent] = ACTIONS(4814),
    [sym_ucent] = ACTIONS(4814),
    [sym_wchar] = ACTIONS(4814),
    [sym_dchar] = ACTIONS(4814),
    [sym_float] = ACTIONS(4814),
    [sym_double] = ACTIONS(4814),
    [sym_real] = ACTIONS(4814),
    [sym_ifloat] = ACTIONS(4814),
    [sym_idouble] = ACTIONS(4814),
    [sym_ireal] = ACTIONS(4814),
    [sym_cfloat] = ACTIONS(4814),
    [sym_cdouble] = ACTIONS(4814),
    [sym_creal] = ACTIONS(4814),
    [sym_size_t] = ACTIONS(4814),
    [sym_ptrdiff_t] = ACTIONS(4814),
    [sym_string] = ACTIONS(4814),
    [sym_cstring] = ACTIONS(4814),
    [sym_dstring] = ACTIONS(4814),
    [sym_wstring] = ACTIONS(4814),
    [sym_noreturn] = ACTIONS(4814),
    [sym_true] = ACTIONS(4814),
    [sym_false] = ACTIONS(4814),
    [sym_null] = ACTIONS(4814),
    [sym_super] = ACTIONS(4814),
    [sym_this] = ACTIONS(4814),
    [sym_assert] = ACTIONS(4814),
    [sym_auto] = ACTIONS(4814),
    [sym_cast] = ACTIONS(4814),
    [sym_catch] = ACTIONS(4814),
    [sym_const] = ACTIONS(4814),
    [sym_delegate] = ACTIONS(4814),
    [sym_delete] = ACTIONS(4814),
    [sym_do] = ACTIONS(4814),
    [sym_else] = ACTIONS(4814),
    [sym_finally] = ACTIONS(4814),
    [sym_function] = ACTIONS(4814),
    [sym_immutable] = ACTIONS(4814),
    [sym_import] = ACTIONS(4814),
    [sym_in] = ACTIONS(4814),
    [sym_inout] = ACTIONS(4814),
    [sym_is] = ACTIONS(4814),
    [sym_mixin] = ACTIONS(4814),
    [sym_new] = ACTIONS(4814),
    [sym_out] = ACTIONS(4814),
    [sym_ref] = ACTIONS(4814),
    [sym_shared] = ACTIONS(4814),
    [sym_throw] = ACTIONS(4814),
    [sym_typeid] = ACTIONS(4814),
    [sym_typeof] = ACTIONS(4814),
    [sym_traits] = ACTIONS(4814),
    [sym_vector] = ACTIONS(4814),
    [sym_void] = ACTIONS(4814),
    [anon_sym_BQUOTE] = ACTIONS(4816),
    [anon_sym_r_DQUOTE] = ACTIONS(4816),
    [anon_sym_x_DQUOTE] = ACTIONS(4816),
    [anon_sym_DQUOTE] = ACTIONS(4816),
    [anon_sym_i_BQUOTE] = ACTIONS(4816),
    [anon_sym_i_DQUOTE] = ACTIONS(4816),
    [anon_sym_iq_LBRACE] = ACTIONS(4816),
    [aux_sym_char_literal_token1] = ACTIONS(4816),
    [anon_sym_SQUOTE] = ACTIONS(4814),
    [anon_sym___DATE__] = ACTIONS(4814),
    [anon_sym___FILE__] = ACTIONS(4814),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4814),
    [anon_sym___FUNCTION__] = ACTIONS(4814),
    [anon_sym___LINE__] = ACTIONS(4814),
    [anon_sym___MODULE__] = ACTIONS(4814),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4814),
    [anon_sym___TIME__] = ACTIONS(4814),
    [anon_sym___TIMESTAMP__] = ACTIONS(4814),
    [anon_sym___VENDOR__] = ACTIONS(4814),
    [anon_sym___VERSION__] = ACTIONS(4814),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4816),
    [sym_float_literal] = ACTIONS(4816),
    [sym__string] = ACTIONS(4816),
  },
  [2227] = {
    [sym_identifier] = ACTIONS(4876),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4878),
    [anon_sym_LBRACE] = ACTIONS(4878),
    [anon_sym_DOT] = ACTIONS(4878),
    [anon_sym_AMP] = ACTIONS(4878),
    [anon_sym_DASH] = ACTIONS(4876),
    [anon_sym_DASH_DASH] = ACTIONS(4878),
    [anon_sym_PLUS] = ACTIONS(4876),
    [anon_sym_PLUS_PLUS] = ACTIONS(4878),
    [anon_sym_BANG] = ACTIONS(4878),
    [anon_sym_LPAREN] = ACTIONS(4878),
    [anon_sym_RPAREN] = ACTIONS(4878),
    [anon_sym_LBRACK] = ACTIONS(4878),
    [anon_sym_SEMI] = ACTIONS(4878),
    [anon_sym_DOLLAR] = ACTIONS(4878),
    [anon_sym_STAR] = ACTIONS(4878),
    [anon_sym_TILDE] = ACTIONS(4878),
    [sym_bool] = ACTIONS(4876),
    [sym_byte] = ACTIONS(4876),
    [sym_ubyte] = ACTIONS(4876),
    [sym_char] = ACTIONS(4876),
    [sym_short] = ACTIONS(4876),
    [sym_ushort] = ACTIONS(4876),
    [sym_int] = ACTIONS(4876),
    [sym_uint] = ACTIONS(4876),
    [sym_long] = ACTIONS(4876),
    [sym_ulong] = ACTIONS(4876),
    [sym_cent] = ACTIONS(4876),
    [sym_ucent] = ACTIONS(4876),
    [sym_wchar] = ACTIONS(4876),
    [sym_dchar] = ACTIONS(4876),
    [sym_float] = ACTIONS(4876),
    [sym_double] = ACTIONS(4876),
    [sym_real] = ACTIONS(4876),
    [sym_ifloat] = ACTIONS(4876),
    [sym_idouble] = ACTIONS(4876),
    [sym_ireal] = ACTIONS(4876),
    [sym_cfloat] = ACTIONS(4876),
    [sym_cdouble] = ACTIONS(4876),
    [sym_creal] = ACTIONS(4876),
    [sym_size_t] = ACTIONS(4876),
    [sym_ptrdiff_t] = ACTIONS(4876),
    [sym_string] = ACTIONS(4876),
    [sym_cstring] = ACTIONS(4876),
    [sym_dstring] = ACTIONS(4876),
    [sym_wstring] = ACTIONS(4876),
    [sym_noreturn] = ACTIONS(4876),
    [sym_true] = ACTIONS(4876),
    [sym_false] = ACTIONS(4876),
    [sym_null] = ACTIONS(4876),
    [sym_super] = ACTIONS(4876),
    [sym_this] = ACTIONS(4876),
    [sym_assert] = ACTIONS(4876),
    [sym_auto] = ACTIONS(4876),
    [sym_cast] = ACTIONS(4876),
    [sym_catch] = ACTIONS(4876),
    [sym_const] = ACTIONS(4876),
    [sym_delegate] = ACTIONS(4876),
    [sym_delete] = ACTIONS(4876),
    [sym_do] = ACTIONS(4876),
    [sym_else] = ACTIONS(4876),
    [sym_finally] = ACTIONS(4876),
    [sym_function] = ACTIONS(4876),
    [sym_immutable] = ACTIONS(4876),
    [sym_import] = ACTIONS(4876),
    [sym_in] = ACTIONS(4876),
    [sym_inout] = ACTIONS(4876),
    [sym_is] = ACTIONS(4876),
    [sym_mixin] = ACTIONS(4876),
    [sym_new] = ACTIONS(4876),
    [sym_out] = ACTIONS(4876),
    [sym_ref] = ACTIONS(4876),
    [sym_shared] = ACTIONS(4876),
    [sym_throw] = ACTIONS(4876),
    [sym_typeid] = ACTIONS(4876),
    [sym_typeof] = ACTIONS(4876),
    [sym_traits] = ACTIONS(4876),
    [sym_vector] = ACTIONS(4876),
    [sym_void] = ACTIONS(4876),
    [anon_sym_BQUOTE] = ACTIONS(4878),
    [anon_sym_r_DQUOTE] = ACTIONS(4878),
    [anon_sym_x_DQUOTE] = ACTIONS(4878),
    [anon_sym_DQUOTE] = ACTIONS(4878),
    [anon_sym_i_BQUOTE] = ACTIONS(4878),
    [anon_sym_i_DQUOTE] = ACTIONS(4878),
    [anon_sym_iq_LBRACE] = ACTIONS(4878),
    [aux_sym_char_literal_token1] = ACTIONS(4878),
    [anon_sym_SQUOTE] = ACTIONS(4876),
    [anon_sym___DATE__] = ACTIONS(4876),
    [anon_sym___FILE__] = ACTIONS(4876),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4876),
    [anon_sym___FUNCTION__] = ACTIONS(4876),
    [anon_sym___LINE__] = ACTIONS(4876),
    [anon_sym___MODULE__] = ACTIONS(4876),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4876),
    [anon_sym___TIME__] = ACTIONS(4876),
    [anon_sym___TIMESTAMP__] = ACTIONS(4876),
    [anon_sym___VENDOR__] = ACTIONS(4876),
    [anon_sym___VERSION__] = ACTIONS(4876),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4878),
    [sym_float_literal] = ACTIONS(4878),
    [sym__string] = ACTIONS(4878),
  },
  [2228] = {
    [sym_identifier] = ACTIONS(4822),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4824),
    [anon_sym_LBRACE] = ACTIONS(4824),
    [anon_sym_DOT] = ACTIONS(4824),
    [anon_sym_AMP] = ACTIONS(4824),
    [anon_sym_DASH] = ACTIONS(4822),
    [anon_sym_DASH_DASH] = ACTIONS(4824),
    [anon_sym_PLUS] = ACTIONS(4822),
    [anon_sym_PLUS_PLUS] = ACTIONS(4824),
    [anon_sym_BANG] = ACTIONS(4824),
    [anon_sym_LPAREN] = ACTIONS(4824),
    [anon_sym_RPAREN] = ACTIONS(4824),
    [anon_sym_LBRACK] = ACTIONS(4824),
    [anon_sym_SEMI] = ACTIONS(4824),
    [anon_sym_DOLLAR] = ACTIONS(4824),
    [anon_sym_STAR] = ACTIONS(4824),
    [anon_sym_TILDE] = ACTIONS(4824),
    [sym_bool] = ACTIONS(4822),
    [sym_byte] = ACTIONS(4822),
    [sym_ubyte] = ACTIONS(4822),
    [sym_char] = ACTIONS(4822),
    [sym_short] = ACTIONS(4822),
    [sym_ushort] = ACTIONS(4822),
    [sym_int] = ACTIONS(4822),
    [sym_uint] = ACTIONS(4822),
    [sym_long] = ACTIONS(4822),
    [sym_ulong] = ACTIONS(4822),
    [sym_cent] = ACTIONS(4822),
    [sym_ucent] = ACTIONS(4822),
    [sym_wchar] = ACTIONS(4822),
    [sym_dchar] = ACTIONS(4822),
    [sym_float] = ACTIONS(4822),
    [sym_double] = ACTIONS(4822),
    [sym_real] = ACTIONS(4822),
    [sym_ifloat] = ACTIONS(4822),
    [sym_idouble] = ACTIONS(4822),
    [sym_ireal] = ACTIONS(4822),
    [sym_cfloat] = ACTIONS(4822),
    [sym_cdouble] = ACTIONS(4822),
    [sym_creal] = ACTIONS(4822),
    [sym_size_t] = ACTIONS(4822),
    [sym_ptrdiff_t] = ACTIONS(4822),
    [sym_string] = ACTIONS(4822),
    [sym_cstring] = ACTIONS(4822),
    [sym_dstring] = ACTIONS(4822),
    [sym_wstring] = ACTIONS(4822),
    [sym_noreturn] = ACTIONS(4822),
    [sym_true] = ACTIONS(4822),
    [sym_false] = ACTIONS(4822),
    [sym_null] = ACTIONS(4822),
    [sym_super] = ACTIONS(4822),
    [sym_this] = ACTIONS(4822),
    [sym_assert] = ACTIONS(4822),
    [sym_auto] = ACTIONS(4822),
    [sym_cast] = ACTIONS(4822),
    [sym_catch] = ACTIONS(4822),
    [sym_const] = ACTIONS(4822),
    [sym_delegate] = ACTIONS(4822),
    [sym_delete] = ACTIONS(4822),
    [sym_do] = ACTIONS(4822),
    [sym_else] = ACTIONS(4822),
    [sym_finally] = ACTIONS(4822),
    [sym_function] = ACTIONS(4822),
    [sym_immutable] = ACTIONS(4822),
    [sym_import] = ACTIONS(4822),
    [sym_in] = ACTIONS(4822),
    [sym_inout] = ACTIONS(4822),
    [sym_is] = ACTIONS(4822),
    [sym_mixin] = ACTIONS(4822),
    [sym_new] = ACTIONS(4822),
    [sym_out] = ACTIONS(4822),
    [sym_ref] = ACTIONS(4822),
    [sym_shared] = ACTIONS(4822),
    [sym_throw] = ACTIONS(4822),
    [sym_typeid] = ACTIONS(4822),
    [sym_typeof] = ACTIONS(4822),
    [sym_traits] = ACTIONS(4822),
    [sym_vector] = ACTIONS(4822),
    [sym_void] = ACTIONS(4822),
    [anon_sym_BQUOTE] = ACTIONS(4824),
    [anon_sym_r_DQUOTE] = ACTIONS(4824),
    [anon_sym_x_DQUOTE] = ACTIONS(4824),
    [anon_sym_DQUOTE] = ACTIONS(4824),
    [anon_sym_i_BQUOTE] = ACTIONS(4824),
    [anon_sym_i_DQUOTE] = ACTIONS(4824),
    [anon_sym_iq_LBRACE] = ACTIONS(4824),
    [aux_sym_char_literal_token1] = ACTIONS(4824),
    [anon_sym_SQUOTE] = ACTIONS(4822),
    [anon_sym___DATE__] = ACTIONS(4822),
    [anon_sym___FILE__] = ACTIONS(4822),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4822),
    [anon_sym___FUNCTION__] = ACTIONS(4822),
    [anon_sym___LINE__] = ACTIONS(4822),
    [anon_sym___MODULE__] = ACTIONS(4822),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4822),
    [anon_sym___TIME__] = ACTIONS(4822),
    [anon_sym___TIMESTAMP__] = ACTIONS(4822),
    [anon_sym___VENDOR__] = ACTIONS(4822),
    [anon_sym___VERSION__] = ACTIONS(4822),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4824),
    [sym_float_literal] = ACTIONS(4824),
    [sym__string] = ACTIONS(4824),
  },
  [2229] = {
    [sym_identifier] = ACTIONS(4956),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4958),
    [anon_sym_LBRACE] = ACTIONS(4958),
    [anon_sym_DOT] = ACTIONS(4958),
    [anon_sym_AMP] = ACTIONS(4958),
    [anon_sym_DASH] = ACTIONS(4956),
    [anon_sym_DASH_DASH] = ACTIONS(4958),
    [anon_sym_PLUS] = ACTIONS(4956),
    [anon_sym_PLUS_PLUS] = ACTIONS(4958),
    [anon_sym_BANG] = ACTIONS(4958),
    [anon_sym_LPAREN] = ACTIONS(4958),
    [anon_sym_RPAREN] = ACTIONS(4958),
    [anon_sym_LBRACK] = ACTIONS(4958),
    [anon_sym_SEMI] = ACTIONS(4958),
    [anon_sym_DOLLAR] = ACTIONS(4958),
    [anon_sym_STAR] = ACTIONS(4958),
    [anon_sym_TILDE] = ACTIONS(4958),
    [sym_bool] = ACTIONS(4956),
    [sym_byte] = ACTIONS(4956),
    [sym_ubyte] = ACTIONS(4956),
    [sym_char] = ACTIONS(4956),
    [sym_short] = ACTIONS(4956),
    [sym_ushort] = ACTIONS(4956),
    [sym_int] = ACTIONS(4956),
    [sym_uint] = ACTIONS(4956),
    [sym_long] = ACTIONS(4956),
    [sym_ulong] = ACTIONS(4956),
    [sym_cent] = ACTIONS(4956),
    [sym_ucent] = ACTIONS(4956),
    [sym_wchar] = ACTIONS(4956),
    [sym_dchar] = ACTIONS(4956),
    [sym_float] = ACTIONS(4956),
    [sym_double] = ACTIONS(4956),
    [sym_real] = ACTIONS(4956),
    [sym_ifloat] = ACTIONS(4956),
    [sym_idouble] = ACTIONS(4956),
    [sym_ireal] = ACTIONS(4956),
    [sym_cfloat] = ACTIONS(4956),
    [sym_cdouble] = ACTIONS(4956),
    [sym_creal] = ACTIONS(4956),
    [sym_size_t] = ACTIONS(4956),
    [sym_ptrdiff_t] = ACTIONS(4956),
    [sym_string] = ACTIONS(4956),
    [sym_cstring] = ACTIONS(4956),
    [sym_dstring] = ACTIONS(4956),
    [sym_wstring] = ACTIONS(4956),
    [sym_noreturn] = ACTIONS(4956),
    [sym_true] = ACTIONS(4956),
    [sym_false] = ACTIONS(4956),
    [sym_null] = ACTIONS(4956),
    [sym_super] = ACTIONS(4956),
    [sym_this] = ACTIONS(4956),
    [sym_assert] = ACTIONS(4956),
    [sym_auto] = ACTIONS(4956),
    [sym_cast] = ACTIONS(4956),
    [sym_catch] = ACTIONS(4956),
    [sym_const] = ACTIONS(4956),
    [sym_delegate] = ACTIONS(4956),
    [sym_delete] = ACTIONS(4956),
    [sym_do] = ACTIONS(4956),
    [sym_else] = ACTIONS(4956),
    [sym_finally] = ACTIONS(4956),
    [sym_function] = ACTIONS(4956),
    [sym_immutable] = ACTIONS(4956),
    [sym_import] = ACTIONS(4956),
    [sym_in] = ACTIONS(4956),
    [sym_inout] = ACTIONS(4956),
    [sym_is] = ACTIONS(4956),
    [sym_mixin] = ACTIONS(4956),
    [sym_new] = ACTIONS(4956),
    [sym_out] = ACTIONS(4956),
    [sym_ref] = ACTIONS(4956),
    [sym_shared] = ACTIONS(4956),
    [sym_throw] = ACTIONS(4956),
    [sym_typeid] = ACTIONS(4956),
    [sym_typeof] = ACTIONS(4956),
    [sym_traits] = ACTIONS(4956),
    [sym_vector] = ACTIONS(4956),
    [sym_void] = ACTIONS(4956),
    [anon_sym_BQUOTE] = ACTIONS(4958),
    [anon_sym_r_DQUOTE] = ACTIONS(4958),
    [anon_sym_x_DQUOTE] = ACTIONS(4958),
    [anon_sym_DQUOTE] = ACTIONS(4958),
    [anon_sym_i_BQUOTE] = ACTIONS(4958),
    [anon_sym_i_DQUOTE] = ACTIONS(4958),
    [anon_sym_iq_LBRACE] = ACTIONS(4958),
    [aux_sym_char_literal_token1] = ACTIONS(4958),
    [anon_sym_SQUOTE] = ACTIONS(4956),
    [anon_sym___DATE__] = ACTIONS(4956),
    [anon_sym___FILE__] = ACTIONS(4956),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4956),
    [anon_sym___FUNCTION__] = ACTIONS(4956),
    [anon_sym___LINE__] = ACTIONS(4956),
    [anon_sym___MODULE__] = ACTIONS(4956),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4956),
    [anon_sym___TIME__] = ACTIONS(4956),
    [anon_sym___TIMESTAMP__] = ACTIONS(4956),
    [anon_sym___VENDOR__] = ACTIONS(4956),
    [anon_sym___VERSION__] = ACTIONS(4956),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4958),
    [sym_float_literal] = ACTIONS(4958),
    [sym__string] = ACTIONS(4958),
  },
  [2230] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_finally] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_new] = ACTIONS(2665),
    [sym_out] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_throw] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [2231] = {
    [sym_identifier] = ACTIONS(4317),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4319),
    [anon_sym_LBRACE] = ACTIONS(4319),
    [anon_sym_DOT] = ACTIONS(4319),
    [anon_sym_AMP] = ACTIONS(4319),
    [anon_sym_DASH] = ACTIONS(4317),
    [anon_sym_DASH_DASH] = ACTIONS(4319),
    [anon_sym_PLUS] = ACTIONS(4317),
    [anon_sym_PLUS_PLUS] = ACTIONS(4319),
    [anon_sym_BANG] = ACTIONS(4319),
    [anon_sym_LPAREN] = ACTIONS(4319),
    [anon_sym_RPAREN] = ACTIONS(4319),
    [anon_sym_LBRACK] = ACTIONS(4319),
    [anon_sym_SEMI] = ACTIONS(4319),
    [anon_sym_DOLLAR] = ACTIONS(4319),
    [anon_sym_STAR] = ACTIONS(4319),
    [anon_sym_TILDE] = ACTIONS(4319),
    [sym_bool] = ACTIONS(4317),
    [sym_byte] = ACTIONS(4317),
    [sym_ubyte] = ACTIONS(4317),
    [sym_char] = ACTIONS(4317),
    [sym_short] = ACTIONS(4317),
    [sym_ushort] = ACTIONS(4317),
    [sym_int] = ACTIONS(4317),
    [sym_uint] = ACTIONS(4317),
    [sym_long] = ACTIONS(4317),
    [sym_ulong] = ACTIONS(4317),
    [sym_cent] = ACTIONS(4317),
    [sym_ucent] = ACTIONS(4317),
    [sym_wchar] = ACTIONS(4317),
    [sym_dchar] = ACTIONS(4317),
    [sym_float] = ACTIONS(4317),
    [sym_double] = ACTIONS(4317),
    [sym_real] = ACTIONS(4317),
    [sym_ifloat] = ACTIONS(4317),
    [sym_idouble] = ACTIONS(4317),
    [sym_ireal] = ACTIONS(4317),
    [sym_cfloat] = ACTIONS(4317),
    [sym_cdouble] = ACTIONS(4317),
    [sym_creal] = ACTIONS(4317),
    [sym_size_t] = ACTIONS(4317),
    [sym_ptrdiff_t] = ACTIONS(4317),
    [sym_string] = ACTIONS(4317),
    [sym_cstring] = ACTIONS(4317),
    [sym_dstring] = ACTIONS(4317),
    [sym_wstring] = ACTIONS(4317),
    [sym_noreturn] = ACTIONS(4317),
    [sym_true] = ACTIONS(4317),
    [sym_false] = ACTIONS(4317),
    [sym_null] = ACTIONS(4317),
    [sym_super] = ACTIONS(4317),
    [sym_this] = ACTIONS(4317),
    [sym_assert] = ACTIONS(4317),
    [sym_auto] = ACTIONS(4317),
    [sym_cast] = ACTIONS(4317),
    [sym_catch] = ACTIONS(4317),
    [sym_const] = ACTIONS(4317),
    [sym_delegate] = ACTIONS(4317),
    [sym_delete] = ACTIONS(4317),
    [sym_do] = ACTIONS(4317),
    [sym_else] = ACTIONS(4317),
    [sym_finally] = ACTIONS(4317),
    [sym_function] = ACTIONS(4317),
    [sym_immutable] = ACTIONS(4317),
    [sym_import] = ACTIONS(4317),
    [sym_in] = ACTIONS(4317),
    [sym_inout] = ACTIONS(4317),
    [sym_is] = ACTIONS(4317),
    [sym_mixin] = ACTIONS(4317),
    [sym_new] = ACTIONS(4317),
    [sym_out] = ACTIONS(4317),
    [sym_ref] = ACTIONS(4317),
    [sym_shared] = ACTIONS(4317),
    [sym_throw] = ACTIONS(4317),
    [sym_typeid] = ACTIONS(4317),
    [sym_typeof] = ACTIONS(4317),
    [sym_traits] = ACTIONS(4317),
    [sym_vector] = ACTIONS(4317),
    [sym_void] = ACTIONS(4317),
    [anon_sym_BQUOTE] = ACTIONS(4319),
    [anon_sym_r_DQUOTE] = ACTIONS(4319),
    [anon_sym_x_DQUOTE] = ACTIONS(4319),
    [anon_sym_DQUOTE] = ACTIONS(4319),
    [anon_sym_i_BQUOTE] = ACTIONS(4319),
    [anon_sym_i_DQUOTE] = ACTIONS(4319),
    [anon_sym_iq_LBRACE] = ACTIONS(4319),
    [aux_sym_char_literal_token1] = ACTIONS(4319),
    [anon_sym_SQUOTE] = ACTIONS(4317),
    [anon_sym___DATE__] = ACTIONS(4317),
    [anon_sym___FILE__] = ACTIONS(4317),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4317),
    [anon_sym___FUNCTION__] = ACTIONS(4317),
    [anon_sym___LINE__] = ACTIONS(4317),
    [anon_sym___MODULE__] = ACTIONS(4317),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4317),
    [anon_sym___TIME__] = ACTIONS(4317),
    [anon_sym___TIMESTAMP__] = ACTIONS(4317),
    [anon_sym___VENDOR__] = ACTIONS(4317),
    [anon_sym___VERSION__] = ACTIONS(4317),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4319),
    [sym_float_literal] = ACTIONS(4319),
    [sym__string] = ACTIONS(4319),
  },
  [2232] = {
    [sym_identifier] = ACTIONS(4331),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4333),
    [anon_sym_LBRACE] = ACTIONS(4333),
    [anon_sym_DOT] = ACTIONS(4333),
    [anon_sym_AMP] = ACTIONS(4333),
    [anon_sym_DASH] = ACTIONS(4331),
    [anon_sym_DASH_DASH] = ACTIONS(4333),
    [anon_sym_PLUS] = ACTIONS(4331),
    [anon_sym_PLUS_PLUS] = ACTIONS(4333),
    [anon_sym_BANG] = ACTIONS(4333),
    [anon_sym_LPAREN] = ACTIONS(4333),
    [anon_sym_RPAREN] = ACTIONS(4333),
    [anon_sym_LBRACK] = ACTIONS(4333),
    [anon_sym_SEMI] = ACTIONS(4333),
    [anon_sym_DOLLAR] = ACTIONS(4333),
    [anon_sym_STAR] = ACTIONS(4333),
    [anon_sym_TILDE] = ACTIONS(4333),
    [sym_bool] = ACTIONS(4331),
    [sym_byte] = ACTIONS(4331),
    [sym_ubyte] = ACTIONS(4331),
    [sym_char] = ACTIONS(4331),
    [sym_short] = ACTIONS(4331),
    [sym_ushort] = ACTIONS(4331),
    [sym_int] = ACTIONS(4331),
    [sym_uint] = ACTIONS(4331),
    [sym_long] = ACTIONS(4331),
    [sym_ulong] = ACTIONS(4331),
    [sym_cent] = ACTIONS(4331),
    [sym_ucent] = ACTIONS(4331),
    [sym_wchar] = ACTIONS(4331),
    [sym_dchar] = ACTIONS(4331),
    [sym_float] = ACTIONS(4331),
    [sym_double] = ACTIONS(4331),
    [sym_real] = ACTIONS(4331),
    [sym_ifloat] = ACTIONS(4331),
    [sym_idouble] = ACTIONS(4331),
    [sym_ireal] = ACTIONS(4331),
    [sym_cfloat] = ACTIONS(4331),
    [sym_cdouble] = ACTIONS(4331),
    [sym_creal] = ACTIONS(4331),
    [sym_size_t] = ACTIONS(4331),
    [sym_ptrdiff_t] = ACTIONS(4331),
    [sym_string] = ACTIONS(4331),
    [sym_cstring] = ACTIONS(4331),
    [sym_dstring] = ACTIONS(4331),
    [sym_wstring] = ACTIONS(4331),
    [sym_noreturn] = ACTIONS(4331),
    [sym_true] = ACTIONS(4331),
    [sym_false] = ACTIONS(4331),
    [sym_null] = ACTIONS(4331),
    [sym_super] = ACTIONS(4331),
    [sym_this] = ACTIONS(4331),
    [sym_assert] = ACTIONS(4331),
    [sym_auto] = ACTIONS(4331),
    [sym_cast] = ACTIONS(4331),
    [sym_catch] = ACTIONS(4331),
    [sym_const] = ACTIONS(4331),
    [sym_delegate] = ACTIONS(4331),
    [sym_delete] = ACTIONS(4331),
    [sym_do] = ACTIONS(4331),
    [sym_else] = ACTIONS(4331),
    [sym_finally] = ACTIONS(4331),
    [sym_function] = ACTIONS(4331),
    [sym_immutable] = ACTIONS(4331),
    [sym_import] = ACTIONS(4331),
    [sym_in] = ACTIONS(4331),
    [sym_inout] = ACTIONS(4331),
    [sym_is] = ACTIONS(4331),
    [sym_mixin] = ACTIONS(4331),
    [sym_new] = ACTIONS(4331),
    [sym_out] = ACTIONS(4331),
    [sym_ref] = ACTIONS(4331),
    [sym_shared] = ACTIONS(4331),
    [sym_throw] = ACTIONS(4331),
    [sym_typeid] = ACTIONS(4331),
    [sym_typeof] = ACTIONS(4331),
    [sym_traits] = ACTIONS(4331),
    [sym_vector] = ACTIONS(4331),
    [sym_void] = ACTIONS(4331),
    [anon_sym_BQUOTE] = ACTIONS(4333),
    [anon_sym_r_DQUOTE] = ACTIONS(4333),
    [anon_sym_x_DQUOTE] = ACTIONS(4333),
    [anon_sym_DQUOTE] = ACTIONS(4333),
    [anon_sym_i_BQUOTE] = ACTIONS(4333),
    [anon_sym_i_DQUOTE] = ACTIONS(4333),
    [anon_sym_iq_LBRACE] = ACTIONS(4333),
    [aux_sym_char_literal_token1] = ACTIONS(4333),
    [anon_sym_SQUOTE] = ACTIONS(4331),
    [anon_sym___DATE__] = ACTIONS(4331),
    [anon_sym___FILE__] = ACTIONS(4331),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4331),
    [anon_sym___FUNCTION__] = ACTIONS(4331),
    [anon_sym___LINE__] = ACTIONS(4331),
    [anon_sym___MODULE__] = ACTIONS(4331),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4331),
    [anon_sym___TIME__] = ACTIONS(4331),
    [anon_sym___TIMESTAMP__] = ACTIONS(4331),
    [anon_sym___VENDOR__] = ACTIONS(4331),
    [anon_sym___VERSION__] = ACTIONS(4331),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4333),
    [sym_float_literal] = ACTIONS(4333),
    [sym__string] = ACTIONS(4333),
  },
  [2233] = {
    [sym_identifier] = ACTIONS(4343),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4345),
    [anon_sym_LBRACE] = ACTIONS(4345),
    [anon_sym_DOT] = ACTIONS(4345),
    [anon_sym_AMP] = ACTIONS(4345),
    [anon_sym_DASH] = ACTIONS(4343),
    [anon_sym_DASH_DASH] = ACTIONS(4345),
    [anon_sym_PLUS] = ACTIONS(4343),
    [anon_sym_PLUS_PLUS] = ACTIONS(4345),
    [anon_sym_BANG] = ACTIONS(4345),
    [anon_sym_LPAREN] = ACTIONS(4345),
    [anon_sym_RPAREN] = ACTIONS(4345),
    [anon_sym_LBRACK] = ACTIONS(4345),
    [anon_sym_SEMI] = ACTIONS(4345),
    [anon_sym_DOLLAR] = ACTIONS(4345),
    [anon_sym_STAR] = ACTIONS(4345),
    [anon_sym_TILDE] = ACTIONS(4345),
    [sym_bool] = ACTIONS(4343),
    [sym_byte] = ACTIONS(4343),
    [sym_ubyte] = ACTIONS(4343),
    [sym_char] = ACTIONS(4343),
    [sym_short] = ACTIONS(4343),
    [sym_ushort] = ACTIONS(4343),
    [sym_int] = ACTIONS(4343),
    [sym_uint] = ACTIONS(4343),
    [sym_long] = ACTIONS(4343),
    [sym_ulong] = ACTIONS(4343),
    [sym_cent] = ACTIONS(4343),
    [sym_ucent] = ACTIONS(4343),
    [sym_wchar] = ACTIONS(4343),
    [sym_dchar] = ACTIONS(4343),
    [sym_float] = ACTIONS(4343),
    [sym_double] = ACTIONS(4343),
    [sym_real] = ACTIONS(4343),
    [sym_ifloat] = ACTIONS(4343),
    [sym_idouble] = ACTIONS(4343),
    [sym_ireal] = ACTIONS(4343),
    [sym_cfloat] = ACTIONS(4343),
    [sym_cdouble] = ACTIONS(4343),
    [sym_creal] = ACTIONS(4343),
    [sym_size_t] = ACTIONS(4343),
    [sym_ptrdiff_t] = ACTIONS(4343),
    [sym_string] = ACTIONS(4343),
    [sym_cstring] = ACTIONS(4343),
    [sym_dstring] = ACTIONS(4343),
    [sym_wstring] = ACTIONS(4343),
    [sym_noreturn] = ACTIONS(4343),
    [sym_true] = ACTIONS(4343),
    [sym_false] = ACTIONS(4343),
    [sym_null] = ACTIONS(4343),
    [sym_super] = ACTIONS(4343),
    [sym_this] = ACTIONS(4343),
    [sym_assert] = ACTIONS(4343),
    [sym_auto] = ACTIONS(4343),
    [sym_cast] = ACTIONS(4343),
    [sym_catch] = ACTIONS(4343),
    [sym_const] = ACTIONS(4343),
    [sym_delegate] = ACTIONS(4343),
    [sym_delete] = ACTIONS(4343),
    [sym_do] = ACTIONS(4343),
    [sym_else] = ACTIONS(4343),
    [sym_finally] = ACTIONS(4343),
    [sym_function] = ACTIONS(4343),
    [sym_immutable] = ACTIONS(4343),
    [sym_import] = ACTIONS(4343),
    [sym_in] = ACTIONS(4343),
    [sym_inout] = ACTIONS(4343),
    [sym_is] = ACTIONS(4343),
    [sym_mixin] = ACTIONS(4343),
    [sym_new] = ACTIONS(4343),
    [sym_out] = ACTIONS(4343),
    [sym_ref] = ACTIONS(4343),
    [sym_shared] = ACTIONS(4343),
    [sym_throw] = ACTIONS(4343),
    [sym_typeid] = ACTIONS(4343),
    [sym_typeof] = ACTIONS(4343),
    [sym_traits] = ACTIONS(4343),
    [sym_vector] = ACTIONS(4343),
    [sym_void] = ACTIONS(4343),
    [anon_sym_BQUOTE] = ACTIONS(4345),
    [anon_sym_r_DQUOTE] = ACTIONS(4345),
    [anon_sym_x_DQUOTE] = ACTIONS(4345),
    [anon_sym_DQUOTE] = ACTIONS(4345),
    [anon_sym_i_BQUOTE] = ACTIONS(4345),
    [anon_sym_i_DQUOTE] = ACTIONS(4345),
    [anon_sym_iq_LBRACE] = ACTIONS(4345),
    [aux_sym_char_literal_token1] = ACTIONS(4345),
    [anon_sym_SQUOTE] = ACTIONS(4343),
    [anon_sym___DATE__] = ACTIONS(4343),
    [anon_sym___FILE__] = ACTIONS(4343),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4343),
    [anon_sym___FUNCTION__] = ACTIONS(4343),
    [anon_sym___LINE__] = ACTIONS(4343),
    [anon_sym___MODULE__] = ACTIONS(4343),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4343),
    [anon_sym___TIME__] = ACTIONS(4343),
    [anon_sym___TIMESTAMP__] = ACTIONS(4343),
    [anon_sym___VENDOR__] = ACTIONS(4343),
    [anon_sym___VERSION__] = ACTIONS(4343),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4345),
    [sym_float_literal] = ACTIONS(4345),
    [sym__string] = ACTIONS(4345),
  },
  [2234] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3100),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_AMP] = ACTIONS(3100),
    [anon_sym_DASH] = ACTIONS(3098),
    [anon_sym_DASH_DASH] = ACTIONS(3100),
    [anon_sym_PLUS] = ACTIONS(3098),
    [anon_sym_PLUS_PLUS] = ACTIONS(3100),
    [anon_sym_BANG] = ACTIONS(3100),
    [anon_sym_LPAREN] = ACTIONS(3100),
    [anon_sym_RPAREN] = ACTIONS(3100),
    [anon_sym_LBRACK] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_DOLLAR] = ACTIONS(3100),
    [anon_sym_STAR] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_true] = ACTIONS(3098),
    [sym_false] = ACTIONS(3098),
    [sym_null] = ACTIONS(3098),
    [sym_super] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_assert] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_cast] = ACTIONS(3098),
    [sym_catch] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_delegate] = ACTIONS(3098),
    [sym_delete] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_finally] = ACTIONS(3098),
    [sym_function] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_is] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_new] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_throw] = ACTIONS(3098),
    [sym_typeid] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [anon_sym_BQUOTE] = ACTIONS(3100),
    [anon_sym_r_DQUOTE] = ACTIONS(3100),
    [anon_sym_x_DQUOTE] = ACTIONS(3100),
    [anon_sym_DQUOTE] = ACTIONS(3100),
    [anon_sym_i_BQUOTE] = ACTIONS(3100),
    [anon_sym_i_DQUOTE] = ACTIONS(3100),
    [anon_sym_iq_LBRACE] = ACTIONS(3100),
    [aux_sym_char_literal_token1] = ACTIONS(3100),
    [anon_sym_SQUOTE] = ACTIONS(3098),
    [anon_sym___DATE__] = ACTIONS(3098),
    [anon_sym___FILE__] = ACTIONS(3098),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3098),
    [anon_sym___FUNCTION__] = ACTIONS(3098),
    [anon_sym___LINE__] = ACTIONS(3098),
    [anon_sym___MODULE__] = ACTIONS(3098),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3098),
    [anon_sym___TIME__] = ACTIONS(3098),
    [anon_sym___TIMESTAMP__] = ACTIONS(3098),
    [anon_sym___VENDOR__] = ACTIONS(3098),
    [anon_sym___VERSION__] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3100),
    [sym_float_literal] = ACTIONS(3100),
    [sym__string] = ACTIONS(3100),
  },
  [2235] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_catch] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(6569),
    [sym_finally] = ACTIONS(4365),
    [sym_function] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [2236] = {
    [sym_identifier] = ACTIONS(4386),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4388),
    [anon_sym_LBRACE] = ACTIONS(4388),
    [anon_sym_DOT] = ACTIONS(4388),
    [anon_sym_AMP] = ACTIONS(4388),
    [anon_sym_DASH] = ACTIONS(4386),
    [anon_sym_DASH_DASH] = ACTIONS(4388),
    [anon_sym_PLUS] = ACTIONS(4386),
    [anon_sym_PLUS_PLUS] = ACTIONS(4388),
    [anon_sym_BANG] = ACTIONS(4388),
    [anon_sym_LPAREN] = ACTIONS(4388),
    [anon_sym_RPAREN] = ACTIONS(4388),
    [anon_sym_LBRACK] = ACTIONS(4388),
    [anon_sym_SEMI] = ACTIONS(4388),
    [anon_sym_DOLLAR] = ACTIONS(4388),
    [anon_sym_STAR] = ACTIONS(4388),
    [anon_sym_TILDE] = ACTIONS(4388),
    [sym_bool] = ACTIONS(4386),
    [sym_byte] = ACTIONS(4386),
    [sym_ubyte] = ACTIONS(4386),
    [sym_char] = ACTIONS(4386),
    [sym_short] = ACTIONS(4386),
    [sym_ushort] = ACTIONS(4386),
    [sym_int] = ACTIONS(4386),
    [sym_uint] = ACTIONS(4386),
    [sym_long] = ACTIONS(4386),
    [sym_ulong] = ACTIONS(4386),
    [sym_cent] = ACTIONS(4386),
    [sym_ucent] = ACTIONS(4386),
    [sym_wchar] = ACTIONS(4386),
    [sym_dchar] = ACTIONS(4386),
    [sym_float] = ACTIONS(4386),
    [sym_double] = ACTIONS(4386),
    [sym_real] = ACTIONS(4386),
    [sym_ifloat] = ACTIONS(4386),
    [sym_idouble] = ACTIONS(4386),
    [sym_ireal] = ACTIONS(4386),
    [sym_cfloat] = ACTIONS(4386),
    [sym_cdouble] = ACTIONS(4386),
    [sym_creal] = ACTIONS(4386),
    [sym_size_t] = ACTIONS(4386),
    [sym_ptrdiff_t] = ACTIONS(4386),
    [sym_string] = ACTIONS(4386),
    [sym_cstring] = ACTIONS(4386),
    [sym_dstring] = ACTIONS(4386),
    [sym_wstring] = ACTIONS(4386),
    [sym_noreturn] = ACTIONS(4386),
    [sym_true] = ACTIONS(4386),
    [sym_false] = ACTIONS(4386),
    [sym_null] = ACTIONS(4386),
    [sym_super] = ACTIONS(4386),
    [sym_this] = ACTIONS(4386),
    [sym_assert] = ACTIONS(4386),
    [sym_auto] = ACTIONS(4386),
    [sym_cast] = ACTIONS(4386),
    [sym_catch] = ACTIONS(4386),
    [sym_const] = ACTIONS(4386),
    [sym_delegate] = ACTIONS(4386),
    [sym_delete] = ACTIONS(4386),
    [sym_do] = ACTIONS(4386),
    [sym_else] = ACTIONS(4386),
    [sym_finally] = ACTIONS(4386),
    [sym_function] = ACTIONS(4386),
    [sym_immutable] = ACTIONS(4386),
    [sym_import] = ACTIONS(4386),
    [sym_in] = ACTIONS(4386),
    [sym_inout] = ACTIONS(4386),
    [sym_is] = ACTIONS(4386),
    [sym_mixin] = ACTIONS(4386),
    [sym_new] = ACTIONS(4386),
    [sym_out] = ACTIONS(4386),
    [sym_ref] = ACTIONS(4386),
    [sym_shared] = ACTIONS(4386),
    [sym_throw] = ACTIONS(4386),
    [sym_typeid] = ACTIONS(4386),
    [sym_typeof] = ACTIONS(4386),
    [sym_traits] = ACTIONS(4386),
    [sym_vector] = ACTIONS(4386),
    [sym_void] = ACTIONS(4386),
    [anon_sym_BQUOTE] = ACTIONS(4388),
    [anon_sym_r_DQUOTE] = ACTIONS(4388),
    [anon_sym_x_DQUOTE] = ACTIONS(4388),
    [anon_sym_DQUOTE] = ACTIONS(4388),
    [anon_sym_i_BQUOTE] = ACTIONS(4388),
    [anon_sym_i_DQUOTE] = ACTIONS(4388),
    [anon_sym_iq_LBRACE] = ACTIONS(4388),
    [aux_sym_char_literal_token1] = ACTIONS(4388),
    [anon_sym_SQUOTE] = ACTIONS(4386),
    [anon_sym___DATE__] = ACTIONS(4386),
    [anon_sym___FILE__] = ACTIONS(4386),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4386),
    [anon_sym___FUNCTION__] = ACTIONS(4386),
    [anon_sym___LINE__] = ACTIONS(4386),
    [anon_sym___MODULE__] = ACTIONS(4386),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4386),
    [anon_sym___TIME__] = ACTIONS(4386),
    [anon_sym___TIMESTAMP__] = ACTIONS(4386),
    [anon_sym___VENDOR__] = ACTIONS(4386),
    [anon_sym___VERSION__] = ACTIONS(4386),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4388),
    [sym_float_literal] = ACTIONS(4388),
    [sym__string] = ACTIONS(4388),
  },
  [2237] = {
    [sym_identifier] = ACTIONS(4398),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4400),
    [anon_sym_LBRACE] = ACTIONS(4400),
    [anon_sym_DOT] = ACTIONS(4400),
    [anon_sym_AMP] = ACTIONS(4400),
    [anon_sym_DASH] = ACTIONS(4398),
    [anon_sym_DASH_DASH] = ACTIONS(4400),
    [anon_sym_PLUS] = ACTIONS(4398),
    [anon_sym_PLUS_PLUS] = ACTIONS(4400),
    [anon_sym_BANG] = ACTIONS(4400),
    [anon_sym_LPAREN] = ACTIONS(4400),
    [anon_sym_RPAREN] = ACTIONS(4400),
    [anon_sym_LBRACK] = ACTIONS(4400),
    [anon_sym_SEMI] = ACTIONS(4400),
    [anon_sym_DOLLAR] = ACTIONS(4400),
    [anon_sym_STAR] = ACTIONS(4400),
    [anon_sym_TILDE] = ACTIONS(4400),
    [sym_bool] = ACTIONS(4398),
    [sym_byte] = ACTIONS(4398),
    [sym_ubyte] = ACTIONS(4398),
    [sym_char] = ACTIONS(4398),
    [sym_short] = ACTIONS(4398),
    [sym_ushort] = ACTIONS(4398),
    [sym_int] = ACTIONS(4398),
    [sym_uint] = ACTIONS(4398),
    [sym_long] = ACTIONS(4398),
    [sym_ulong] = ACTIONS(4398),
    [sym_cent] = ACTIONS(4398),
    [sym_ucent] = ACTIONS(4398),
    [sym_wchar] = ACTIONS(4398),
    [sym_dchar] = ACTIONS(4398),
    [sym_float] = ACTIONS(4398),
    [sym_double] = ACTIONS(4398),
    [sym_real] = ACTIONS(4398),
    [sym_ifloat] = ACTIONS(4398),
    [sym_idouble] = ACTIONS(4398),
    [sym_ireal] = ACTIONS(4398),
    [sym_cfloat] = ACTIONS(4398),
    [sym_cdouble] = ACTIONS(4398),
    [sym_creal] = ACTIONS(4398),
    [sym_size_t] = ACTIONS(4398),
    [sym_ptrdiff_t] = ACTIONS(4398),
    [sym_string] = ACTIONS(4398),
    [sym_cstring] = ACTIONS(4398),
    [sym_dstring] = ACTIONS(4398),
    [sym_wstring] = ACTIONS(4398),
    [sym_noreturn] = ACTIONS(4398),
    [sym_true] = ACTIONS(4398),
    [sym_false] = ACTIONS(4398),
    [sym_null] = ACTIONS(4398),
    [sym_super] = ACTIONS(4398),
    [sym_this] = ACTIONS(4398),
    [sym_assert] = ACTIONS(4398),
    [sym_auto] = ACTIONS(4398),
    [sym_cast] = ACTIONS(4398),
    [sym_catch] = ACTIONS(4398),
    [sym_const] = ACTIONS(4398),
    [sym_delegate] = ACTIONS(4398),
    [sym_delete] = ACTIONS(4398),
    [sym_do] = ACTIONS(4398),
    [sym_else] = ACTIONS(4398),
    [sym_finally] = ACTIONS(4398),
    [sym_function] = ACTIONS(4398),
    [sym_immutable] = ACTIONS(4398),
    [sym_import] = ACTIONS(4398),
    [sym_in] = ACTIONS(4398),
    [sym_inout] = ACTIONS(4398),
    [sym_is] = ACTIONS(4398),
    [sym_mixin] = ACTIONS(4398),
    [sym_new] = ACTIONS(4398),
    [sym_out] = ACTIONS(4398),
    [sym_ref] = ACTIONS(4398),
    [sym_shared] = ACTIONS(4398),
    [sym_throw] = ACTIONS(4398),
    [sym_typeid] = ACTIONS(4398),
    [sym_typeof] = ACTIONS(4398),
    [sym_traits] = ACTIONS(4398),
    [sym_vector] = ACTIONS(4398),
    [sym_void] = ACTIONS(4398),
    [anon_sym_BQUOTE] = ACTIONS(4400),
    [anon_sym_r_DQUOTE] = ACTIONS(4400),
    [anon_sym_x_DQUOTE] = ACTIONS(4400),
    [anon_sym_DQUOTE] = ACTIONS(4400),
    [anon_sym_i_BQUOTE] = ACTIONS(4400),
    [anon_sym_i_DQUOTE] = ACTIONS(4400),
    [anon_sym_iq_LBRACE] = ACTIONS(4400),
    [aux_sym_char_literal_token1] = ACTIONS(4400),
    [anon_sym_SQUOTE] = ACTIONS(4398),
    [anon_sym___DATE__] = ACTIONS(4398),
    [anon_sym___FILE__] = ACTIONS(4398),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4398),
    [anon_sym___FUNCTION__] = ACTIONS(4398),
    [anon_sym___LINE__] = ACTIONS(4398),
    [anon_sym___MODULE__] = ACTIONS(4398),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4398),
    [anon_sym___TIME__] = ACTIONS(4398),
    [anon_sym___TIMESTAMP__] = ACTIONS(4398),
    [anon_sym___VENDOR__] = ACTIONS(4398),
    [anon_sym___VERSION__] = ACTIONS(4398),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4400),
    [sym_float_literal] = ACTIONS(4400),
    [sym__string] = ACTIONS(4400),
  },
  [2238] = {
    [sym_identifier] = ACTIONS(4406),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4408),
    [anon_sym_LBRACE] = ACTIONS(4408),
    [anon_sym_DOT] = ACTIONS(4408),
    [anon_sym_AMP] = ACTIONS(4408),
    [anon_sym_DASH] = ACTIONS(4406),
    [anon_sym_DASH_DASH] = ACTIONS(4408),
    [anon_sym_PLUS] = ACTIONS(4406),
    [anon_sym_PLUS_PLUS] = ACTIONS(4408),
    [anon_sym_BANG] = ACTIONS(4408),
    [anon_sym_LPAREN] = ACTIONS(4408),
    [anon_sym_RPAREN] = ACTIONS(4408),
    [anon_sym_LBRACK] = ACTIONS(4408),
    [anon_sym_SEMI] = ACTIONS(4408),
    [anon_sym_DOLLAR] = ACTIONS(4408),
    [anon_sym_STAR] = ACTIONS(4408),
    [anon_sym_TILDE] = ACTIONS(4408),
    [sym_bool] = ACTIONS(4406),
    [sym_byte] = ACTIONS(4406),
    [sym_ubyte] = ACTIONS(4406),
    [sym_char] = ACTIONS(4406),
    [sym_short] = ACTIONS(4406),
    [sym_ushort] = ACTIONS(4406),
    [sym_int] = ACTIONS(4406),
    [sym_uint] = ACTIONS(4406),
    [sym_long] = ACTIONS(4406),
    [sym_ulong] = ACTIONS(4406),
    [sym_cent] = ACTIONS(4406),
    [sym_ucent] = ACTIONS(4406),
    [sym_wchar] = ACTIONS(4406),
    [sym_dchar] = ACTIONS(4406),
    [sym_float] = ACTIONS(4406),
    [sym_double] = ACTIONS(4406),
    [sym_real] = ACTIONS(4406),
    [sym_ifloat] = ACTIONS(4406),
    [sym_idouble] = ACTIONS(4406),
    [sym_ireal] = ACTIONS(4406),
    [sym_cfloat] = ACTIONS(4406),
    [sym_cdouble] = ACTIONS(4406),
    [sym_creal] = ACTIONS(4406),
    [sym_size_t] = ACTIONS(4406),
    [sym_ptrdiff_t] = ACTIONS(4406),
    [sym_string] = ACTIONS(4406),
    [sym_cstring] = ACTIONS(4406),
    [sym_dstring] = ACTIONS(4406),
    [sym_wstring] = ACTIONS(4406),
    [sym_noreturn] = ACTIONS(4406),
    [sym_true] = ACTIONS(4406),
    [sym_false] = ACTIONS(4406),
    [sym_null] = ACTIONS(4406),
    [sym_super] = ACTIONS(4406),
    [sym_this] = ACTIONS(4406),
    [sym_assert] = ACTIONS(4406),
    [sym_auto] = ACTIONS(4406),
    [sym_cast] = ACTIONS(4406),
    [sym_catch] = ACTIONS(4406),
    [sym_const] = ACTIONS(4406),
    [sym_delegate] = ACTIONS(4406),
    [sym_delete] = ACTIONS(4406),
    [sym_do] = ACTIONS(4406),
    [sym_else] = ACTIONS(4406),
    [sym_finally] = ACTIONS(4406),
    [sym_function] = ACTIONS(4406),
    [sym_immutable] = ACTIONS(4406),
    [sym_import] = ACTIONS(4406),
    [sym_in] = ACTIONS(4406),
    [sym_inout] = ACTIONS(4406),
    [sym_is] = ACTIONS(4406),
    [sym_mixin] = ACTIONS(4406),
    [sym_new] = ACTIONS(4406),
    [sym_out] = ACTIONS(4406),
    [sym_ref] = ACTIONS(4406),
    [sym_shared] = ACTIONS(4406),
    [sym_throw] = ACTIONS(4406),
    [sym_typeid] = ACTIONS(4406),
    [sym_typeof] = ACTIONS(4406),
    [sym_traits] = ACTIONS(4406),
    [sym_vector] = ACTIONS(4406),
    [sym_void] = ACTIONS(4406),
    [anon_sym_BQUOTE] = ACTIONS(4408),
    [anon_sym_r_DQUOTE] = ACTIONS(4408),
    [anon_sym_x_DQUOTE] = ACTIONS(4408),
    [anon_sym_DQUOTE] = ACTIONS(4408),
    [anon_sym_i_BQUOTE] = ACTIONS(4408),
    [anon_sym_i_DQUOTE] = ACTIONS(4408),
    [anon_sym_iq_LBRACE] = ACTIONS(4408),
    [aux_sym_char_literal_token1] = ACTIONS(4408),
    [anon_sym_SQUOTE] = ACTIONS(4406),
    [anon_sym___DATE__] = ACTIONS(4406),
    [anon_sym___FILE__] = ACTIONS(4406),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4406),
    [anon_sym___FUNCTION__] = ACTIONS(4406),
    [anon_sym___LINE__] = ACTIONS(4406),
    [anon_sym___MODULE__] = ACTIONS(4406),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4406),
    [anon_sym___TIME__] = ACTIONS(4406),
    [anon_sym___TIMESTAMP__] = ACTIONS(4406),
    [anon_sym___VENDOR__] = ACTIONS(4406),
    [anon_sym___VERSION__] = ACTIONS(4406),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4408),
    [sym_float_literal] = ACTIONS(4408),
    [sym__string] = ACTIONS(4408),
  },
  [2239] = {
    [sym_identifier] = ACTIONS(4434),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4436),
    [anon_sym_LBRACE] = ACTIONS(4436),
    [anon_sym_DOT] = ACTIONS(4436),
    [anon_sym_AMP] = ACTIONS(4436),
    [anon_sym_DASH] = ACTIONS(4434),
    [anon_sym_DASH_DASH] = ACTIONS(4436),
    [anon_sym_PLUS] = ACTIONS(4434),
    [anon_sym_PLUS_PLUS] = ACTIONS(4436),
    [anon_sym_BANG] = ACTIONS(4436),
    [anon_sym_LPAREN] = ACTIONS(4436),
    [anon_sym_RPAREN] = ACTIONS(4436),
    [anon_sym_LBRACK] = ACTIONS(4436),
    [anon_sym_SEMI] = ACTIONS(4436),
    [anon_sym_DOLLAR] = ACTIONS(4436),
    [anon_sym_STAR] = ACTIONS(4436),
    [anon_sym_TILDE] = ACTIONS(4436),
    [sym_bool] = ACTIONS(4434),
    [sym_byte] = ACTIONS(4434),
    [sym_ubyte] = ACTIONS(4434),
    [sym_char] = ACTIONS(4434),
    [sym_short] = ACTIONS(4434),
    [sym_ushort] = ACTIONS(4434),
    [sym_int] = ACTIONS(4434),
    [sym_uint] = ACTIONS(4434),
    [sym_long] = ACTIONS(4434),
    [sym_ulong] = ACTIONS(4434),
    [sym_cent] = ACTIONS(4434),
    [sym_ucent] = ACTIONS(4434),
    [sym_wchar] = ACTIONS(4434),
    [sym_dchar] = ACTIONS(4434),
    [sym_float] = ACTIONS(4434),
    [sym_double] = ACTIONS(4434),
    [sym_real] = ACTIONS(4434),
    [sym_ifloat] = ACTIONS(4434),
    [sym_idouble] = ACTIONS(4434),
    [sym_ireal] = ACTIONS(4434),
    [sym_cfloat] = ACTIONS(4434),
    [sym_cdouble] = ACTIONS(4434),
    [sym_creal] = ACTIONS(4434),
    [sym_size_t] = ACTIONS(4434),
    [sym_ptrdiff_t] = ACTIONS(4434),
    [sym_string] = ACTIONS(4434),
    [sym_cstring] = ACTIONS(4434),
    [sym_dstring] = ACTIONS(4434),
    [sym_wstring] = ACTIONS(4434),
    [sym_noreturn] = ACTIONS(4434),
    [sym_true] = ACTIONS(4434),
    [sym_false] = ACTIONS(4434),
    [sym_null] = ACTIONS(4434),
    [sym_super] = ACTIONS(4434),
    [sym_this] = ACTIONS(4434),
    [sym_assert] = ACTIONS(4434),
    [sym_auto] = ACTIONS(4434),
    [sym_cast] = ACTIONS(4434),
    [sym_catch] = ACTIONS(4434),
    [sym_const] = ACTIONS(4434),
    [sym_delegate] = ACTIONS(4434),
    [sym_delete] = ACTIONS(4434),
    [sym_do] = ACTIONS(4434),
    [sym_else] = ACTIONS(4434),
    [sym_finally] = ACTIONS(4434),
    [sym_function] = ACTIONS(4434),
    [sym_immutable] = ACTIONS(4434),
    [sym_import] = ACTIONS(4434),
    [sym_in] = ACTIONS(4434),
    [sym_inout] = ACTIONS(4434),
    [sym_is] = ACTIONS(4434),
    [sym_mixin] = ACTIONS(4434),
    [sym_new] = ACTIONS(4434),
    [sym_out] = ACTIONS(4434),
    [sym_ref] = ACTIONS(4434),
    [sym_shared] = ACTIONS(4434),
    [sym_throw] = ACTIONS(4434),
    [sym_typeid] = ACTIONS(4434),
    [sym_typeof] = ACTIONS(4434),
    [sym_traits] = ACTIONS(4434),
    [sym_vector] = ACTIONS(4434),
    [sym_void] = ACTIONS(4434),
    [anon_sym_BQUOTE] = ACTIONS(4436),
    [anon_sym_r_DQUOTE] = ACTIONS(4436),
    [anon_sym_x_DQUOTE] = ACTIONS(4436),
    [anon_sym_DQUOTE] = ACTIONS(4436),
    [anon_sym_i_BQUOTE] = ACTIONS(4436),
    [anon_sym_i_DQUOTE] = ACTIONS(4436),
    [anon_sym_iq_LBRACE] = ACTIONS(4436),
    [aux_sym_char_literal_token1] = ACTIONS(4436),
    [anon_sym_SQUOTE] = ACTIONS(4434),
    [anon_sym___DATE__] = ACTIONS(4434),
    [anon_sym___FILE__] = ACTIONS(4434),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4434),
    [anon_sym___FUNCTION__] = ACTIONS(4434),
    [anon_sym___LINE__] = ACTIONS(4434),
    [anon_sym___MODULE__] = ACTIONS(4434),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4434),
    [anon_sym___TIME__] = ACTIONS(4434),
    [anon_sym___TIMESTAMP__] = ACTIONS(4434),
    [anon_sym___VENDOR__] = ACTIONS(4434),
    [anon_sym___VERSION__] = ACTIONS(4434),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4436),
    [sym_float_literal] = ACTIONS(4436),
    [sym__string] = ACTIONS(4436),
  },
  [2240] = {
    [sym_identifier] = ACTIONS(4460),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4462),
    [anon_sym_LBRACE] = ACTIONS(4462),
    [anon_sym_DOT] = ACTIONS(4462),
    [anon_sym_AMP] = ACTIONS(4462),
    [anon_sym_DASH] = ACTIONS(4460),
    [anon_sym_DASH_DASH] = ACTIONS(4462),
    [anon_sym_PLUS] = ACTIONS(4460),
    [anon_sym_PLUS_PLUS] = ACTIONS(4462),
    [anon_sym_BANG] = ACTIONS(4462),
    [anon_sym_LPAREN] = ACTIONS(4462),
    [anon_sym_RPAREN] = ACTIONS(4462),
    [anon_sym_LBRACK] = ACTIONS(4462),
    [anon_sym_SEMI] = ACTIONS(4462),
    [anon_sym_DOLLAR] = ACTIONS(4462),
    [anon_sym_STAR] = ACTIONS(4462),
    [anon_sym_TILDE] = ACTIONS(4462),
    [sym_bool] = ACTIONS(4460),
    [sym_byte] = ACTIONS(4460),
    [sym_ubyte] = ACTIONS(4460),
    [sym_char] = ACTIONS(4460),
    [sym_short] = ACTIONS(4460),
    [sym_ushort] = ACTIONS(4460),
    [sym_int] = ACTIONS(4460),
    [sym_uint] = ACTIONS(4460),
    [sym_long] = ACTIONS(4460),
    [sym_ulong] = ACTIONS(4460),
    [sym_cent] = ACTIONS(4460),
    [sym_ucent] = ACTIONS(4460),
    [sym_wchar] = ACTIONS(4460),
    [sym_dchar] = ACTIONS(4460),
    [sym_float] = ACTIONS(4460),
    [sym_double] = ACTIONS(4460),
    [sym_real] = ACTIONS(4460),
    [sym_ifloat] = ACTIONS(4460),
    [sym_idouble] = ACTIONS(4460),
    [sym_ireal] = ACTIONS(4460),
    [sym_cfloat] = ACTIONS(4460),
    [sym_cdouble] = ACTIONS(4460),
    [sym_creal] = ACTIONS(4460),
    [sym_size_t] = ACTIONS(4460),
    [sym_ptrdiff_t] = ACTIONS(4460),
    [sym_string] = ACTIONS(4460),
    [sym_cstring] = ACTIONS(4460),
    [sym_dstring] = ACTIONS(4460),
    [sym_wstring] = ACTIONS(4460),
    [sym_noreturn] = ACTIONS(4460),
    [sym_true] = ACTIONS(4460),
    [sym_false] = ACTIONS(4460),
    [sym_null] = ACTIONS(4460),
    [sym_super] = ACTIONS(4460),
    [sym_this] = ACTIONS(4460),
    [sym_assert] = ACTIONS(4460),
    [sym_auto] = ACTIONS(4460),
    [sym_cast] = ACTIONS(4460),
    [sym_catch] = ACTIONS(4460),
    [sym_const] = ACTIONS(4460),
    [sym_delegate] = ACTIONS(4460),
    [sym_delete] = ACTIONS(4460),
    [sym_do] = ACTIONS(4460),
    [sym_else] = ACTIONS(4460),
    [sym_finally] = ACTIONS(4460),
    [sym_function] = ACTIONS(4460),
    [sym_immutable] = ACTIONS(4460),
    [sym_import] = ACTIONS(4460),
    [sym_in] = ACTIONS(4460),
    [sym_inout] = ACTIONS(4460),
    [sym_is] = ACTIONS(4460),
    [sym_mixin] = ACTIONS(4460),
    [sym_new] = ACTIONS(4460),
    [sym_out] = ACTIONS(4460),
    [sym_ref] = ACTIONS(4460),
    [sym_shared] = ACTIONS(4460),
    [sym_throw] = ACTIONS(4460),
    [sym_typeid] = ACTIONS(4460),
    [sym_typeof] = ACTIONS(4460),
    [sym_traits] = ACTIONS(4460),
    [sym_vector] = ACTIONS(4460),
    [sym_void] = ACTIONS(4460),
    [anon_sym_BQUOTE] = ACTIONS(4462),
    [anon_sym_r_DQUOTE] = ACTIONS(4462),
    [anon_sym_x_DQUOTE] = ACTIONS(4462),
    [anon_sym_DQUOTE] = ACTIONS(4462),
    [anon_sym_i_BQUOTE] = ACTIONS(4462),
    [anon_sym_i_DQUOTE] = ACTIONS(4462),
    [anon_sym_iq_LBRACE] = ACTIONS(4462),
    [aux_sym_char_literal_token1] = ACTIONS(4462),
    [anon_sym_SQUOTE] = ACTIONS(4460),
    [anon_sym___DATE__] = ACTIONS(4460),
    [anon_sym___FILE__] = ACTIONS(4460),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4460),
    [anon_sym___FUNCTION__] = ACTIONS(4460),
    [anon_sym___LINE__] = ACTIONS(4460),
    [anon_sym___MODULE__] = ACTIONS(4460),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4460),
    [anon_sym___TIME__] = ACTIONS(4460),
    [anon_sym___TIMESTAMP__] = ACTIONS(4460),
    [anon_sym___VENDOR__] = ACTIONS(4460),
    [anon_sym___VERSION__] = ACTIONS(4460),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4462),
    [sym_float_literal] = ACTIONS(4462),
    [sym__string] = ACTIONS(4462),
  },
  [2241] = {
    [sym_identifier] = ACTIONS(4892),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4894),
    [anon_sym_LBRACE] = ACTIONS(4894),
    [anon_sym_DOT] = ACTIONS(4894),
    [anon_sym_AMP] = ACTIONS(4894),
    [anon_sym_DASH] = ACTIONS(4892),
    [anon_sym_DASH_DASH] = ACTIONS(4894),
    [anon_sym_PLUS] = ACTIONS(4892),
    [anon_sym_PLUS_PLUS] = ACTIONS(4894),
    [anon_sym_BANG] = ACTIONS(4894),
    [anon_sym_LPAREN] = ACTIONS(4894),
    [anon_sym_RPAREN] = ACTIONS(4894),
    [anon_sym_LBRACK] = ACTIONS(4894),
    [anon_sym_SEMI] = ACTIONS(4894),
    [anon_sym_DOLLAR] = ACTIONS(4894),
    [anon_sym_STAR] = ACTIONS(4894),
    [anon_sym_TILDE] = ACTIONS(4894),
    [sym_bool] = ACTIONS(4892),
    [sym_byte] = ACTIONS(4892),
    [sym_ubyte] = ACTIONS(4892),
    [sym_char] = ACTIONS(4892),
    [sym_short] = ACTIONS(4892),
    [sym_ushort] = ACTIONS(4892),
    [sym_int] = ACTIONS(4892),
    [sym_uint] = ACTIONS(4892),
    [sym_long] = ACTIONS(4892),
    [sym_ulong] = ACTIONS(4892),
    [sym_cent] = ACTIONS(4892),
    [sym_ucent] = ACTIONS(4892),
    [sym_wchar] = ACTIONS(4892),
    [sym_dchar] = ACTIONS(4892),
    [sym_float] = ACTIONS(4892),
    [sym_double] = ACTIONS(4892),
    [sym_real] = ACTIONS(4892),
    [sym_ifloat] = ACTIONS(4892),
    [sym_idouble] = ACTIONS(4892),
    [sym_ireal] = ACTIONS(4892),
    [sym_cfloat] = ACTIONS(4892),
    [sym_cdouble] = ACTIONS(4892),
    [sym_creal] = ACTIONS(4892),
    [sym_size_t] = ACTIONS(4892),
    [sym_ptrdiff_t] = ACTIONS(4892),
    [sym_string] = ACTIONS(4892),
    [sym_cstring] = ACTIONS(4892),
    [sym_dstring] = ACTIONS(4892),
    [sym_wstring] = ACTIONS(4892),
    [sym_noreturn] = ACTIONS(4892),
    [sym_true] = ACTIONS(4892),
    [sym_false] = ACTIONS(4892),
    [sym_null] = ACTIONS(4892),
    [sym_super] = ACTIONS(4892),
    [sym_this] = ACTIONS(4892),
    [sym_assert] = ACTIONS(4892),
    [sym_auto] = ACTIONS(4892),
    [sym_cast] = ACTIONS(4892),
    [sym_catch] = ACTIONS(4892),
    [sym_const] = ACTIONS(4892),
    [sym_delegate] = ACTIONS(4892),
    [sym_delete] = ACTIONS(4892),
    [sym_do] = ACTIONS(4892),
    [sym_else] = ACTIONS(4892),
    [sym_finally] = ACTIONS(4892),
    [sym_function] = ACTIONS(4892),
    [sym_immutable] = ACTIONS(4892),
    [sym_import] = ACTIONS(4892),
    [sym_in] = ACTIONS(4892),
    [sym_inout] = ACTIONS(4892),
    [sym_is] = ACTIONS(4892),
    [sym_mixin] = ACTIONS(4892),
    [sym_new] = ACTIONS(4892),
    [sym_out] = ACTIONS(4892),
    [sym_ref] = ACTIONS(4892),
    [sym_shared] = ACTIONS(4892),
    [sym_throw] = ACTIONS(4892),
    [sym_typeid] = ACTIONS(4892),
    [sym_typeof] = ACTIONS(4892),
    [sym_traits] = ACTIONS(4892),
    [sym_vector] = ACTIONS(4892),
    [sym_void] = ACTIONS(4892),
    [anon_sym_BQUOTE] = ACTIONS(4894),
    [anon_sym_r_DQUOTE] = ACTIONS(4894),
    [anon_sym_x_DQUOTE] = ACTIONS(4894),
    [anon_sym_DQUOTE] = ACTIONS(4894),
    [anon_sym_i_BQUOTE] = ACTIONS(4894),
    [anon_sym_i_DQUOTE] = ACTIONS(4894),
    [anon_sym_iq_LBRACE] = ACTIONS(4894),
    [aux_sym_char_literal_token1] = ACTIONS(4894),
    [anon_sym_SQUOTE] = ACTIONS(4892),
    [anon_sym___DATE__] = ACTIONS(4892),
    [anon_sym___FILE__] = ACTIONS(4892),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4892),
    [anon_sym___FUNCTION__] = ACTIONS(4892),
    [anon_sym___LINE__] = ACTIONS(4892),
    [anon_sym___MODULE__] = ACTIONS(4892),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4892),
    [anon_sym___TIME__] = ACTIONS(4892),
    [anon_sym___TIMESTAMP__] = ACTIONS(4892),
    [anon_sym___VENDOR__] = ACTIONS(4892),
    [anon_sym___VERSION__] = ACTIONS(4892),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4894),
    [sym_float_literal] = ACTIONS(4894),
    [sym__string] = ACTIONS(4894),
  },
  [2242] = {
    [sym_identifier] = ACTIONS(4468),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4470),
    [anon_sym_LBRACE] = ACTIONS(4470),
    [anon_sym_DOT] = ACTIONS(4470),
    [anon_sym_AMP] = ACTIONS(4470),
    [anon_sym_DASH] = ACTIONS(4468),
    [anon_sym_DASH_DASH] = ACTIONS(4470),
    [anon_sym_PLUS] = ACTIONS(4468),
    [anon_sym_PLUS_PLUS] = ACTIONS(4470),
    [anon_sym_BANG] = ACTIONS(4470),
    [anon_sym_LPAREN] = ACTIONS(4470),
    [anon_sym_RPAREN] = ACTIONS(4470),
    [anon_sym_LBRACK] = ACTIONS(4470),
    [anon_sym_SEMI] = ACTIONS(4470),
    [anon_sym_DOLLAR] = ACTIONS(4470),
    [anon_sym_STAR] = ACTIONS(4470),
    [anon_sym_TILDE] = ACTIONS(4470),
    [sym_bool] = ACTIONS(4468),
    [sym_byte] = ACTIONS(4468),
    [sym_ubyte] = ACTIONS(4468),
    [sym_char] = ACTIONS(4468),
    [sym_short] = ACTIONS(4468),
    [sym_ushort] = ACTIONS(4468),
    [sym_int] = ACTIONS(4468),
    [sym_uint] = ACTIONS(4468),
    [sym_long] = ACTIONS(4468),
    [sym_ulong] = ACTIONS(4468),
    [sym_cent] = ACTIONS(4468),
    [sym_ucent] = ACTIONS(4468),
    [sym_wchar] = ACTIONS(4468),
    [sym_dchar] = ACTIONS(4468),
    [sym_float] = ACTIONS(4468),
    [sym_double] = ACTIONS(4468),
    [sym_real] = ACTIONS(4468),
    [sym_ifloat] = ACTIONS(4468),
    [sym_idouble] = ACTIONS(4468),
    [sym_ireal] = ACTIONS(4468),
    [sym_cfloat] = ACTIONS(4468),
    [sym_cdouble] = ACTIONS(4468),
    [sym_creal] = ACTIONS(4468),
    [sym_size_t] = ACTIONS(4468),
    [sym_ptrdiff_t] = ACTIONS(4468),
    [sym_string] = ACTIONS(4468),
    [sym_cstring] = ACTIONS(4468),
    [sym_dstring] = ACTIONS(4468),
    [sym_wstring] = ACTIONS(4468),
    [sym_noreturn] = ACTIONS(4468),
    [sym_true] = ACTIONS(4468),
    [sym_false] = ACTIONS(4468),
    [sym_null] = ACTIONS(4468),
    [sym_super] = ACTIONS(4468),
    [sym_this] = ACTIONS(4468),
    [sym_assert] = ACTIONS(4468),
    [sym_auto] = ACTIONS(4468),
    [sym_cast] = ACTIONS(4468),
    [sym_catch] = ACTIONS(4468),
    [sym_const] = ACTIONS(4468),
    [sym_delegate] = ACTIONS(4468),
    [sym_delete] = ACTIONS(4468),
    [sym_do] = ACTIONS(4468),
    [sym_else] = ACTIONS(4468),
    [sym_finally] = ACTIONS(4468),
    [sym_function] = ACTIONS(4468),
    [sym_immutable] = ACTIONS(4468),
    [sym_import] = ACTIONS(4468),
    [sym_in] = ACTIONS(4468),
    [sym_inout] = ACTIONS(4468),
    [sym_is] = ACTIONS(4468),
    [sym_mixin] = ACTIONS(4468),
    [sym_new] = ACTIONS(4468),
    [sym_out] = ACTIONS(4468),
    [sym_ref] = ACTIONS(4468),
    [sym_shared] = ACTIONS(4468),
    [sym_throw] = ACTIONS(4468),
    [sym_typeid] = ACTIONS(4468),
    [sym_typeof] = ACTIONS(4468),
    [sym_traits] = ACTIONS(4468),
    [sym_vector] = ACTIONS(4468),
    [sym_void] = ACTIONS(4468),
    [anon_sym_BQUOTE] = ACTIONS(4470),
    [anon_sym_r_DQUOTE] = ACTIONS(4470),
    [anon_sym_x_DQUOTE] = ACTIONS(4470),
    [anon_sym_DQUOTE] = ACTIONS(4470),
    [anon_sym_i_BQUOTE] = ACTIONS(4470),
    [anon_sym_i_DQUOTE] = ACTIONS(4470),
    [anon_sym_iq_LBRACE] = ACTIONS(4470),
    [aux_sym_char_literal_token1] = ACTIONS(4470),
    [anon_sym_SQUOTE] = ACTIONS(4468),
    [anon_sym___DATE__] = ACTIONS(4468),
    [anon_sym___FILE__] = ACTIONS(4468),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4468),
    [anon_sym___FUNCTION__] = ACTIONS(4468),
    [anon_sym___LINE__] = ACTIONS(4468),
    [anon_sym___MODULE__] = ACTIONS(4468),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4468),
    [anon_sym___TIME__] = ACTIONS(4468),
    [anon_sym___TIMESTAMP__] = ACTIONS(4468),
    [anon_sym___VENDOR__] = ACTIONS(4468),
    [anon_sym___VERSION__] = ACTIONS(4468),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4470),
    [sym_float_literal] = ACTIONS(4470),
    [sym__string] = ACTIONS(4470),
  },
  [2243] = {
    [sym_identifier] = ACTIONS(4476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4478),
    [anon_sym_LBRACE] = ACTIONS(4478),
    [anon_sym_DOT] = ACTIONS(4478),
    [anon_sym_AMP] = ACTIONS(4478),
    [anon_sym_DASH] = ACTIONS(4476),
    [anon_sym_DASH_DASH] = ACTIONS(4478),
    [anon_sym_PLUS] = ACTIONS(4476),
    [anon_sym_PLUS_PLUS] = ACTIONS(4478),
    [anon_sym_BANG] = ACTIONS(4478),
    [anon_sym_LPAREN] = ACTIONS(4478),
    [anon_sym_RPAREN] = ACTIONS(4478),
    [anon_sym_LBRACK] = ACTIONS(4478),
    [anon_sym_SEMI] = ACTIONS(4478),
    [anon_sym_DOLLAR] = ACTIONS(4478),
    [anon_sym_STAR] = ACTIONS(4478),
    [anon_sym_TILDE] = ACTIONS(4478),
    [sym_bool] = ACTIONS(4476),
    [sym_byte] = ACTIONS(4476),
    [sym_ubyte] = ACTIONS(4476),
    [sym_char] = ACTIONS(4476),
    [sym_short] = ACTIONS(4476),
    [sym_ushort] = ACTIONS(4476),
    [sym_int] = ACTIONS(4476),
    [sym_uint] = ACTIONS(4476),
    [sym_long] = ACTIONS(4476),
    [sym_ulong] = ACTIONS(4476),
    [sym_cent] = ACTIONS(4476),
    [sym_ucent] = ACTIONS(4476),
    [sym_wchar] = ACTIONS(4476),
    [sym_dchar] = ACTIONS(4476),
    [sym_float] = ACTIONS(4476),
    [sym_double] = ACTIONS(4476),
    [sym_real] = ACTIONS(4476),
    [sym_ifloat] = ACTIONS(4476),
    [sym_idouble] = ACTIONS(4476),
    [sym_ireal] = ACTIONS(4476),
    [sym_cfloat] = ACTIONS(4476),
    [sym_cdouble] = ACTIONS(4476),
    [sym_creal] = ACTIONS(4476),
    [sym_size_t] = ACTIONS(4476),
    [sym_ptrdiff_t] = ACTIONS(4476),
    [sym_string] = ACTIONS(4476),
    [sym_cstring] = ACTIONS(4476),
    [sym_dstring] = ACTIONS(4476),
    [sym_wstring] = ACTIONS(4476),
    [sym_noreturn] = ACTIONS(4476),
    [sym_true] = ACTIONS(4476),
    [sym_false] = ACTIONS(4476),
    [sym_null] = ACTIONS(4476),
    [sym_super] = ACTIONS(4476),
    [sym_this] = ACTIONS(4476),
    [sym_assert] = ACTIONS(4476),
    [sym_auto] = ACTIONS(4476),
    [sym_cast] = ACTIONS(4476),
    [sym_catch] = ACTIONS(4476),
    [sym_const] = ACTIONS(4476),
    [sym_delegate] = ACTIONS(4476),
    [sym_delete] = ACTIONS(4476),
    [sym_do] = ACTIONS(4476),
    [sym_else] = ACTIONS(4476),
    [sym_finally] = ACTIONS(4476),
    [sym_function] = ACTIONS(4476),
    [sym_immutable] = ACTIONS(4476),
    [sym_import] = ACTIONS(4476),
    [sym_in] = ACTIONS(4476),
    [sym_inout] = ACTIONS(4476),
    [sym_is] = ACTIONS(4476),
    [sym_mixin] = ACTIONS(4476),
    [sym_new] = ACTIONS(4476),
    [sym_out] = ACTIONS(4476),
    [sym_ref] = ACTIONS(4476),
    [sym_shared] = ACTIONS(4476),
    [sym_throw] = ACTIONS(4476),
    [sym_typeid] = ACTIONS(4476),
    [sym_typeof] = ACTIONS(4476),
    [sym_traits] = ACTIONS(4476),
    [sym_vector] = ACTIONS(4476),
    [sym_void] = ACTIONS(4476),
    [anon_sym_BQUOTE] = ACTIONS(4478),
    [anon_sym_r_DQUOTE] = ACTIONS(4478),
    [anon_sym_x_DQUOTE] = ACTIONS(4478),
    [anon_sym_DQUOTE] = ACTIONS(4478),
    [anon_sym_i_BQUOTE] = ACTIONS(4478),
    [anon_sym_i_DQUOTE] = ACTIONS(4478),
    [anon_sym_iq_LBRACE] = ACTIONS(4478),
    [aux_sym_char_literal_token1] = ACTIONS(4478),
    [anon_sym_SQUOTE] = ACTIONS(4476),
    [anon_sym___DATE__] = ACTIONS(4476),
    [anon_sym___FILE__] = ACTIONS(4476),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4476),
    [anon_sym___FUNCTION__] = ACTIONS(4476),
    [anon_sym___LINE__] = ACTIONS(4476),
    [anon_sym___MODULE__] = ACTIONS(4476),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4476),
    [anon_sym___TIME__] = ACTIONS(4476),
    [anon_sym___TIMESTAMP__] = ACTIONS(4476),
    [anon_sym___VENDOR__] = ACTIONS(4476),
    [anon_sym___VERSION__] = ACTIONS(4476),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4478),
    [sym_float_literal] = ACTIONS(4478),
    [sym__string] = ACTIONS(4478),
  },
  [2244] = {
    [sym_identifier] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2643),
    [anon_sym_LBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(2643),
    [anon_sym_AMP] = ACTIONS(2643),
    [anon_sym_DASH] = ACTIONS(2645),
    [anon_sym_DASH_DASH] = ACTIONS(2643),
    [anon_sym_PLUS] = ACTIONS(2645),
    [anon_sym_PLUS_PLUS] = ACTIONS(2643),
    [anon_sym_BANG] = ACTIONS(2643),
    [anon_sym_LPAREN] = ACTIONS(2643),
    [anon_sym_RPAREN] = ACTIONS(2643),
    [anon_sym_LBRACK] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2643),
    [anon_sym_DOLLAR] = ACTIONS(2643),
    [anon_sym_STAR] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2643),
    [sym_bool] = ACTIONS(2645),
    [sym_byte] = ACTIONS(2645),
    [sym_ubyte] = ACTIONS(2645),
    [sym_char] = ACTIONS(2645),
    [sym_short] = ACTIONS(2645),
    [sym_ushort] = ACTIONS(2645),
    [sym_int] = ACTIONS(2645),
    [sym_uint] = ACTIONS(2645),
    [sym_long] = ACTIONS(2645),
    [sym_ulong] = ACTIONS(2645),
    [sym_cent] = ACTIONS(2645),
    [sym_ucent] = ACTIONS(2645),
    [sym_wchar] = ACTIONS(2645),
    [sym_dchar] = ACTIONS(2645),
    [sym_float] = ACTIONS(2645),
    [sym_double] = ACTIONS(2645),
    [sym_real] = ACTIONS(2645),
    [sym_ifloat] = ACTIONS(2645),
    [sym_idouble] = ACTIONS(2645),
    [sym_ireal] = ACTIONS(2645),
    [sym_cfloat] = ACTIONS(2645),
    [sym_cdouble] = ACTIONS(2645),
    [sym_creal] = ACTIONS(2645),
    [sym_size_t] = ACTIONS(2645),
    [sym_ptrdiff_t] = ACTIONS(2645),
    [sym_string] = ACTIONS(2645),
    [sym_cstring] = ACTIONS(2645),
    [sym_dstring] = ACTIONS(2645),
    [sym_wstring] = ACTIONS(2645),
    [sym_noreturn] = ACTIONS(2645),
    [sym_true] = ACTIONS(2645),
    [sym_false] = ACTIONS(2645),
    [sym_null] = ACTIONS(2645),
    [sym_super] = ACTIONS(2645),
    [sym_this] = ACTIONS(2645),
    [sym_assert] = ACTIONS(2645),
    [sym_auto] = ACTIONS(2645),
    [sym_cast] = ACTIONS(2645),
    [sym_catch] = ACTIONS(2645),
    [sym_const] = ACTIONS(2645),
    [sym_delegate] = ACTIONS(2645),
    [sym_delete] = ACTIONS(2645),
    [sym_do] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_finally] = ACTIONS(2645),
    [sym_function] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(2645),
    [sym_import] = ACTIONS(2645),
    [sym_in] = ACTIONS(2645),
    [sym_inout] = ACTIONS(2645),
    [sym_is] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2645),
    [sym_new] = ACTIONS(2645),
    [sym_out] = ACTIONS(2645),
    [sym_ref] = ACTIONS(2645),
    [sym_shared] = ACTIONS(2645),
    [sym_throw] = ACTIONS(2645),
    [sym_typeid] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(2645),
    [sym_traits] = ACTIONS(2645),
    [sym_vector] = ACTIONS(2645),
    [sym_void] = ACTIONS(2645),
    [anon_sym_BQUOTE] = ACTIONS(2643),
    [anon_sym_r_DQUOTE] = ACTIONS(2643),
    [anon_sym_x_DQUOTE] = ACTIONS(2643),
    [anon_sym_DQUOTE] = ACTIONS(2643),
    [anon_sym_i_BQUOTE] = ACTIONS(2643),
    [anon_sym_i_DQUOTE] = ACTIONS(2643),
    [anon_sym_iq_LBRACE] = ACTIONS(2643),
    [aux_sym_char_literal_token1] = ACTIONS(2643),
    [anon_sym_SQUOTE] = ACTIONS(2645),
    [anon_sym___DATE__] = ACTIONS(2645),
    [anon_sym___FILE__] = ACTIONS(2645),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2645),
    [anon_sym___FUNCTION__] = ACTIONS(2645),
    [anon_sym___LINE__] = ACTIONS(2645),
    [anon_sym___MODULE__] = ACTIONS(2645),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2645),
    [anon_sym___TIME__] = ACTIONS(2645),
    [anon_sym___TIMESTAMP__] = ACTIONS(2645),
    [anon_sym___VENDOR__] = ACTIONS(2645),
    [anon_sym___VERSION__] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2643),
    [sym_float_literal] = ACTIONS(2643),
    [sym__string] = ACTIONS(2643),
  },
  [2245] = {
    [sym_identifier] = ACTIONS(4484),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4486),
    [anon_sym_LBRACE] = ACTIONS(4486),
    [anon_sym_DOT] = ACTIONS(4486),
    [anon_sym_AMP] = ACTIONS(4486),
    [anon_sym_DASH] = ACTIONS(4484),
    [anon_sym_DASH_DASH] = ACTIONS(4486),
    [anon_sym_PLUS] = ACTIONS(4484),
    [anon_sym_PLUS_PLUS] = ACTIONS(4486),
    [anon_sym_BANG] = ACTIONS(4486),
    [anon_sym_LPAREN] = ACTIONS(4486),
    [anon_sym_RPAREN] = ACTIONS(4486),
    [anon_sym_LBRACK] = ACTIONS(4486),
    [anon_sym_SEMI] = ACTIONS(4486),
    [anon_sym_DOLLAR] = ACTIONS(4486),
    [anon_sym_STAR] = ACTIONS(4486),
    [anon_sym_TILDE] = ACTIONS(4486),
    [sym_bool] = ACTIONS(4484),
    [sym_byte] = ACTIONS(4484),
    [sym_ubyte] = ACTIONS(4484),
    [sym_char] = ACTIONS(4484),
    [sym_short] = ACTIONS(4484),
    [sym_ushort] = ACTIONS(4484),
    [sym_int] = ACTIONS(4484),
    [sym_uint] = ACTIONS(4484),
    [sym_long] = ACTIONS(4484),
    [sym_ulong] = ACTIONS(4484),
    [sym_cent] = ACTIONS(4484),
    [sym_ucent] = ACTIONS(4484),
    [sym_wchar] = ACTIONS(4484),
    [sym_dchar] = ACTIONS(4484),
    [sym_float] = ACTIONS(4484),
    [sym_double] = ACTIONS(4484),
    [sym_real] = ACTIONS(4484),
    [sym_ifloat] = ACTIONS(4484),
    [sym_idouble] = ACTIONS(4484),
    [sym_ireal] = ACTIONS(4484),
    [sym_cfloat] = ACTIONS(4484),
    [sym_cdouble] = ACTIONS(4484),
    [sym_creal] = ACTIONS(4484),
    [sym_size_t] = ACTIONS(4484),
    [sym_ptrdiff_t] = ACTIONS(4484),
    [sym_string] = ACTIONS(4484),
    [sym_cstring] = ACTIONS(4484),
    [sym_dstring] = ACTIONS(4484),
    [sym_wstring] = ACTIONS(4484),
    [sym_noreturn] = ACTIONS(4484),
    [sym_true] = ACTIONS(4484),
    [sym_false] = ACTIONS(4484),
    [sym_null] = ACTIONS(4484),
    [sym_super] = ACTIONS(4484),
    [sym_this] = ACTIONS(4484),
    [sym_assert] = ACTIONS(4484),
    [sym_auto] = ACTIONS(4484),
    [sym_cast] = ACTIONS(4484),
    [sym_catch] = ACTIONS(4484),
    [sym_const] = ACTIONS(4484),
    [sym_delegate] = ACTIONS(4484),
    [sym_delete] = ACTIONS(4484),
    [sym_do] = ACTIONS(4484),
    [sym_else] = ACTIONS(4484),
    [sym_finally] = ACTIONS(4484),
    [sym_function] = ACTIONS(4484),
    [sym_immutable] = ACTIONS(4484),
    [sym_import] = ACTIONS(4484),
    [sym_in] = ACTIONS(4484),
    [sym_inout] = ACTIONS(4484),
    [sym_is] = ACTIONS(4484),
    [sym_mixin] = ACTIONS(4484),
    [sym_new] = ACTIONS(4484),
    [sym_out] = ACTIONS(4484),
    [sym_ref] = ACTIONS(4484),
    [sym_shared] = ACTIONS(4484),
    [sym_throw] = ACTIONS(4484),
    [sym_typeid] = ACTIONS(4484),
    [sym_typeof] = ACTIONS(4484),
    [sym_traits] = ACTIONS(4484),
    [sym_vector] = ACTIONS(4484),
    [sym_void] = ACTIONS(4484),
    [anon_sym_BQUOTE] = ACTIONS(4486),
    [anon_sym_r_DQUOTE] = ACTIONS(4486),
    [anon_sym_x_DQUOTE] = ACTIONS(4486),
    [anon_sym_DQUOTE] = ACTIONS(4486),
    [anon_sym_i_BQUOTE] = ACTIONS(4486),
    [anon_sym_i_DQUOTE] = ACTIONS(4486),
    [anon_sym_iq_LBRACE] = ACTIONS(4486),
    [aux_sym_char_literal_token1] = ACTIONS(4486),
    [anon_sym_SQUOTE] = ACTIONS(4484),
    [anon_sym___DATE__] = ACTIONS(4484),
    [anon_sym___FILE__] = ACTIONS(4484),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4484),
    [anon_sym___FUNCTION__] = ACTIONS(4484),
    [anon_sym___LINE__] = ACTIONS(4484),
    [anon_sym___MODULE__] = ACTIONS(4484),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4484),
    [anon_sym___TIME__] = ACTIONS(4484),
    [anon_sym___TIMESTAMP__] = ACTIONS(4484),
    [anon_sym___VENDOR__] = ACTIONS(4484),
    [anon_sym___VERSION__] = ACTIONS(4484),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4486),
    [sym_float_literal] = ACTIONS(4486),
    [sym__string] = ACTIONS(4486),
  },
  [2246] = {
    [sym_identifier] = ACTIONS(4488),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4490),
    [anon_sym_LBRACE] = ACTIONS(4490),
    [anon_sym_DOT] = ACTIONS(4490),
    [anon_sym_AMP] = ACTIONS(4490),
    [anon_sym_DASH] = ACTIONS(4488),
    [anon_sym_DASH_DASH] = ACTIONS(4490),
    [anon_sym_PLUS] = ACTIONS(4488),
    [anon_sym_PLUS_PLUS] = ACTIONS(4490),
    [anon_sym_BANG] = ACTIONS(4490),
    [anon_sym_LPAREN] = ACTIONS(4490),
    [anon_sym_RPAREN] = ACTIONS(4490),
    [anon_sym_LBRACK] = ACTIONS(4490),
    [anon_sym_SEMI] = ACTIONS(4490),
    [anon_sym_DOLLAR] = ACTIONS(4490),
    [anon_sym_STAR] = ACTIONS(4490),
    [anon_sym_TILDE] = ACTIONS(4490),
    [sym_bool] = ACTIONS(4488),
    [sym_byte] = ACTIONS(4488),
    [sym_ubyte] = ACTIONS(4488),
    [sym_char] = ACTIONS(4488),
    [sym_short] = ACTIONS(4488),
    [sym_ushort] = ACTIONS(4488),
    [sym_int] = ACTIONS(4488),
    [sym_uint] = ACTIONS(4488),
    [sym_long] = ACTIONS(4488),
    [sym_ulong] = ACTIONS(4488),
    [sym_cent] = ACTIONS(4488),
    [sym_ucent] = ACTIONS(4488),
    [sym_wchar] = ACTIONS(4488),
    [sym_dchar] = ACTIONS(4488),
    [sym_float] = ACTIONS(4488),
    [sym_double] = ACTIONS(4488),
    [sym_real] = ACTIONS(4488),
    [sym_ifloat] = ACTIONS(4488),
    [sym_idouble] = ACTIONS(4488),
    [sym_ireal] = ACTIONS(4488),
    [sym_cfloat] = ACTIONS(4488),
    [sym_cdouble] = ACTIONS(4488),
    [sym_creal] = ACTIONS(4488),
    [sym_size_t] = ACTIONS(4488),
    [sym_ptrdiff_t] = ACTIONS(4488),
    [sym_string] = ACTIONS(4488),
    [sym_cstring] = ACTIONS(4488),
    [sym_dstring] = ACTIONS(4488),
    [sym_wstring] = ACTIONS(4488),
    [sym_noreturn] = ACTIONS(4488),
    [sym_true] = ACTIONS(4488),
    [sym_false] = ACTIONS(4488),
    [sym_null] = ACTIONS(4488),
    [sym_super] = ACTIONS(4488),
    [sym_this] = ACTIONS(4488),
    [sym_assert] = ACTIONS(4488),
    [sym_auto] = ACTIONS(4488),
    [sym_cast] = ACTIONS(4488),
    [sym_catch] = ACTIONS(4488),
    [sym_const] = ACTIONS(4488),
    [sym_delegate] = ACTIONS(4488),
    [sym_delete] = ACTIONS(4488),
    [sym_do] = ACTIONS(4488),
    [sym_else] = ACTIONS(4488),
    [sym_finally] = ACTIONS(4488),
    [sym_function] = ACTIONS(4488),
    [sym_immutable] = ACTIONS(4488),
    [sym_import] = ACTIONS(4488),
    [sym_in] = ACTIONS(4488),
    [sym_inout] = ACTIONS(4488),
    [sym_is] = ACTIONS(4488),
    [sym_mixin] = ACTIONS(4488),
    [sym_new] = ACTIONS(4488),
    [sym_out] = ACTIONS(4488),
    [sym_ref] = ACTIONS(4488),
    [sym_shared] = ACTIONS(4488),
    [sym_throw] = ACTIONS(4488),
    [sym_typeid] = ACTIONS(4488),
    [sym_typeof] = ACTIONS(4488),
    [sym_traits] = ACTIONS(4488),
    [sym_vector] = ACTIONS(4488),
    [sym_void] = ACTIONS(4488),
    [anon_sym_BQUOTE] = ACTIONS(4490),
    [anon_sym_r_DQUOTE] = ACTIONS(4490),
    [anon_sym_x_DQUOTE] = ACTIONS(4490),
    [anon_sym_DQUOTE] = ACTIONS(4490),
    [anon_sym_i_BQUOTE] = ACTIONS(4490),
    [anon_sym_i_DQUOTE] = ACTIONS(4490),
    [anon_sym_iq_LBRACE] = ACTIONS(4490),
    [aux_sym_char_literal_token1] = ACTIONS(4490),
    [anon_sym_SQUOTE] = ACTIONS(4488),
    [anon_sym___DATE__] = ACTIONS(4488),
    [anon_sym___FILE__] = ACTIONS(4488),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4488),
    [anon_sym___FUNCTION__] = ACTIONS(4488),
    [anon_sym___LINE__] = ACTIONS(4488),
    [anon_sym___MODULE__] = ACTIONS(4488),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4488),
    [anon_sym___TIME__] = ACTIONS(4488),
    [anon_sym___TIMESTAMP__] = ACTIONS(4488),
    [anon_sym___VENDOR__] = ACTIONS(4488),
    [anon_sym___VERSION__] = ACTIONS(4488),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4490),
    [sym_float_literal] = ACTIONS(4490),
    [sym__string] = ACTIONS(4490),
  },
  [2247] = {
    [sym_identifier] = ACTIONS(4492),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4494),
    [anon_sym_LBRACE] = ACTIONS(4494),
    [anon_sym_DOT] = ACTIONS(4494),
    [anon_sym_AMP] = ACTIONS(4494),
    [anon_sym_DASH] = ACTIONS(4492),
    [anon_sym_DASH_DASH] = ACTIONS(4494),
    [anon_sym_PLUS] = ACTIONS(4492),
    [anon_sym_PLUS_PLUS] = ACTIONS(4494),
    [anon_sym_BANG] = ACTIONS(4494),
    [anon_sym_LPAREN] = ACTIONS(4494),
    [anon_sym_RPAREN] = ACTIONS(4494),
    [anon_sym_LBRACK] = ACTIONS(4494),
    [anon_sym_SEMI] = ACTIONS(4494),
    [anon_sym_DOLLAR] = ACTIONS(4494),
    [anon_sym_STAR] = ACTIONS(4494),
    [anon_sym_TILDE] = ACTIONS(4494),
    [sym_bool] = ACTIONS(4492),
    [sym_byte] = ACTIONS(4492),
    [sym_ubyte] = ACTIONS(4492),
    [sym_char] = ACTIONS(4492),
    [sym_short] = ACTIONS(4492),
    [sym_ushort] = ACTIONS(4492),
    [sym_int] = ACTIONS(4492),
    [sym_uint] = ACTIONS(4492),
    [sym_long] = ACTIONS(4492),
    [sym_ulong] = ACTIONS(4492),
    [sym_cent] = ACTIONS(4492),
    [sym_ucent] = ACTIONS(4492),
    [sym_wchar] = ACTIONS(4492),
    [sym_dchar] = ACTIONS(4492),
    [sym_float] = ACTIONS(4492),
    [sym_double] = ACTIONS(4492),
    [sym_real] = ACTIONS(4492),
    [sym_ifloat] = ACTIONS(4492),
    [sym_idouble] = ACTIONS(4492),
    [sym_ireal] = ACTIONS(4492),
    [sym_cfloat] = ACTIONS(4492),
    [sym_cdouble] = ACTIONS(4492),
    [sym_creal] = ACTIONS(4492),
    [sym_size_t] = ACTIONS(4492),
    [sym_ptrdiff_t] = ACTIONS(4492),
    [sym_string] = ACTIONS(4492),
    [sym_cstring] = ACTIONS(4492),
    [sym_dstring] = ACTIONS(4492),
    [sym_wstring] = ACTIONS(4492),
    [sym_noreturn] = ACTIONS(4492),
    [sym_true] = ACTIONS(4492),
    [sym_false] = ACTIONS(4492),
    [sym_null] = ACTIONS(4492),
    [sym_super] = ACTIONS(4492),
    [sym_this] = ACTIONS(4492),
    [sym_assert] = ACTIONS(4492),
    [sym_auto] = ACTIONS(4492),
    [sym_cast] = ACTIONS(4492),
    [sym_catch] = ACTIONS(4492),
    [sym_const] = ACTIONS(4492),
    [sym_delegate] = ACTIONS(4492),
    [sym_delete] = ACTIONS(4492),
    [sym_do] = ACTIONS(4492),
    [sym_else] = ACTIONS(4492),
    [sym_finally] = ACTIONS(4492),
    [sym_function] = ACTIONS(4492),
    [sym_immutable] = ACTIONS(4492),
    [sym_import] = ACTIONS(4492),
    [sym_in] = ACTIONS(4492),
    [sym_inout] = ACTIONS(4492),
    [sym_is] = ACTIONS(4492),
    [sym_mixin] = ACTIONS(4492),
    [sym_new] = ACTIONS(4492),
    [sym_out] = ACTIONS(4492),
    [sym_ref] = ACTIONS(4492),
    [sym_shared] = ACTIONS(4492),
    [sym_throw] = ACTIONS(4492),
    [sym_typeid] = ACTIONS(4492),
    [sym_typeof] = ACTIONS(4492),
    [sym_traits] = ACTIONS(4492),
    [sym_vector] = ACTIONS(4492),
    [sym_void] = ACTIONS(4492),
    [anon_sym_BQUOTE] = ACTIONS(4494),
    [anon_sym_r_DQUOTE] = ACTIONS(4494),
    [anon_sym_x_DQUOTE] = ACTIONS(4494),
    [anon_sym_DQUOTE] = ACTIONS(4494),
    [anon_sym_i_BQUOTE] = ACTIONS(4494),
    [anon_sym_i_DQUOTE] = ACTIONS(4494),
    [anon_sym_iq_LBRACE] = ACTIONS(4494),
    [aux_sym_char_literal_token1] = ACTIONS(4494),
    [anon_sym_SQUOTE] = ACTIONS(4492),
    [anon_sym___DATE__] = ACTIONS(4492),
    [anon_sym___FILE__] = ACTIONS(4492),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4492),
    [anon_sym___FUNCTION__] = ACTIONS(4492),
    [anon_sym___LINE__] = ACTIONS(4492),
    [anon_sym___MODULE__] = ACTIONS(4492),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4492),
    [anon_sym___TIME__] = ACTIONS(4492),
    [anon_sym___TIMESTAMP__] = ACTIONS(4492),
    [anon_sym___VENDOR__] = ACTIONS(4492),
    [anon_sym___VERSION__] = ACTIONS(4492),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4494),
    [sym_float_literal] = ACTIONS(4494),
    [sym__string] = ACTIONS(4494),
  },
  [2248] = {
    [sym_identifier] = ACTIONS(4504),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4506),
    [anon_sym_LBRACE] = ACTIONS(4506),
    [anon_sym_DOT] = ACTIONS(4506),
    [anon_sym_AMP] = ACTIONS(4506),
    [anon_sym_DASH] = ACTIONS(4504),
    [anon_sym_DASH_DASH] = ACTIONS(4506),
    [anon_sym_PLUS] = ACTIONS(4504),
    [anon_sym_PLUS_PLUS] = ACTIONS(4506),
    [anon_sym_BANG] = ACTIONS(4506),
    [anon_sym_LPAREN] = ACTIONS(4506),
    [anon_sym_RPAREN] = ACTIONS(4506),
    [anon_sym_LBRACK] = ACTIONS(4506),
    [anon_sym_SEMI] = ACTIONS(4506),
    [anon_sym_DOLLAR] = ACTIONS(4506),
    [anon_sym_STAR] = ACTIONS(4506),
    [anon_sym_TILDE] = ACTIONS(4506),
    [sym_bool] = ACTIONS(4504),
    [sym_byte] = ACTIONS(4504),
    [sym_ubyte] = ACTIONS(4504),
    [sym_char] = ACTIONS(4504),
    [sym_short] = ACTIONS(4504),
    [sym_ushort] = ACTIONS(4504),
    [sym_int] = ACTIONS(4504),
    [sym_uint] = ACTIONS(4504),
    [sym_long] = ACTIONS(4504),
    [sym_ulong] = ACTIONS(4504),
    [sym_cent] = ACTIONS(4504),
    [sym_ucent] = ACTIONS(4504),
    [sym_wchar] = ACTIONS(4504),
    [sym_dchar] = ACTIONS(4504),
    [sym_float] = ACTIONS(4504),
    [sym_double] = ACTIONS(4504),
    [sym_real] = ACTIONS(4504),
    [sym_ifloat] = ACTIONS(4504),
    [sym_idouble] = ACTIONS(4504),
    [sym_ireal] = ACTIONS(4504),
    [sym_cfloat] = ACTIONS(4504),
    [sym_cdouble] = ACTIONS(4504),
    [sym_creal] = ACTIONS(4504),
    [sym_size_t] = ACTIONS(4504),
    [sym_ptrdiff_t] = ACTIONS(4504),
    [sym_string] = ACTIONS(4504),
    [sym_cstring] = ACTIONS(4504),
    [sym_dstring] = ACTIONS(4504),
    [sym_wstring] = ACTIONS(4504),
    [sym_noreturn] = ACTIONS(4504),
    [sym_true] = ACTIONS(4504),
    [sym_false] = ACTIONS(4504),
    [sym_null] = ACTIONS(4504),
    [sym_super] = ACTIONS(4504),
    [sym_this] = ACTIONS(4504),
    [sym_assert] = ACTIONS(4504),
    [sym_auto] = ACTIONS(4504),
    [sym_cast] = ACTIONS(4504),
    [sym_catch] = ACTIONS(4504),
    [sym_const] = ACTIONS(4504),
    [sym_delegate] = ACTIONS(4504),
    [sym_delete] = ACTIONS(4504),
    [sym_do] = ACTIONS(4504),
    [sym_else] = ACTIONS(4504),
    [sym_finally] = ACTIONS(4504),
    [sym_function] = ACTIONS(4504),
    [sym_immutable] = ACTIONS(4504),
    [sym_import] = ACTIONS(4504),
    [sym_in] = ACTIONS(4504),
    [sym_inout] = ACTIONS(4504),
    [sym_is] = ACTIONS(4504),
    [sym_mixin] = ACTIONS(4504),
    [sym_new] = ACTIONS(4504),
    [sym_out] = ACTIONS(4504),
    [sym_ref] = ACTIONS(4504),
    [sym_shared] = ACTIONS(4504),
    [sym_throw] = ACTIONS(4504),
    [sym_typeid] = ACTIONS(4504),
    [sym_typeof] = ACTIONS(4504),
    [sym_traits] = ACTIONS(4504),
    [sym_vector] = ACTIONS(4504),
    [sym_void] = ACTIONS(4504),
    [anon_sym_BQUOTE] = ACTIONS(4506),
    [anon_sym_r_DQUOTE] = ACTIONS(4506),
    [anon_sym_x_DQUOTE] = ACTIONS(4506),
    [anon_sym_DQUOTE] = ACTIONS(4506),
    [anon_sym_i_BQUOTE] = ACTIONS(4506),
    [anon_sym_i_DQUOTE] = ACTIONS(4506),
    [anon_sym_iq_LBRACE] = ACTIONS(4506),
    [aux_sym_char_literal_token1] = ACTIONS(4506),
    [anon_sym_SQUOTE] = ACTIONS(4504),
    [anon_sym___DATE__] = ACTIONS(4504),
    [anon_sym___FILE__] = ACTIONS(4504),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4504),
    [anon_sym___FUNCTION__] = ACTIONS(4504),
    [anon_sym___LINE__] = ACTIONS(4504),
    [anon_sym___MODULE__] = ACTIONS(4504),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4504),
    [anon_sym___TIME__] = ACTIONS(4504),
    [anon_sym___TIMESTAMP__] = ACTIONS(4504),
    [anon_sym___VENDOR__] = ACTIONS(4504),
    [anon_sym___VERSION__] = ACTIONS(4504),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4506),
    [sym_float_literal] = ACTIONS(4506),
    [sym__string] = ACTIONS(4506),
  },
  [2249] = {
    [sym_identifier] = ACTIONS(4960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4962),
    [anon_sym_LBRACE] = ACTIONS(4962),
    [anon_sym_DOT] = ACTIONS(4962),
    [anon_sym_AMP] = ACTIONS(4962),
    [anon_sym_DASH] = ACTIONS(4960),
    [anon_sym_DASH_DASH] = ACTIONS(4962),
    [anon_sym_PLUS] = ACTIONS(4960),
    [anon_sym_PLUS_PLUS] = ACTIONS(4962),
    [anon_sym_BANG] = ACTIONS(4962),
    [anon_sym_LPAREN] = ACTIONS(4962),
    [anon_sym_RPAREN] = ACTIONS(4962),
    [anon_sym_LBRACK] = ACTIONS(4962),
    [anon_sym_SEMI] = ACTIONS(4962),
    [anon_sym_DOLLAR] = ACTIONS(4962),
    [anon_sym_STAR] = ACTIONS(4962),
    [anon_sym_TILDE] = ACTIONS(4962),
    [sym_bool] = ACTIONS(4960),
    [sym_byte] = ACTIONS(4960),
    [sym_ubyte] = ACTIONS(4960),
    [sym_char] = ACTIONS(4960),
    [sym_short] = ACTIONS(4960),
    [sym_ushort] = ACTIONS(4960),
    [sym_int] = ACTIONS(4960),
    [sym_uint] = ACTIONS(4960),
    [sym_long] = ACTIONS(4960),
    [sym_ulong] = ACTIONS(4960),
    [sym_cent] = ACTIONS(4960),
    [sym_ucent] = ACTIONS(4960),
    [sym_wchar] = ACTIONS(4960),
    [sym_dchar] = ACTIONS(4960),
    [sym_float] = ACTIONS(4960),
    [sym_double] = ACTIONS(4960),
    [sym_real] = ACTIONS(4960),
    [sym_ifloat] = ACTIONS(4960),
    [sym_idouble] = ACTIONS(4960),
    [sym_ireal] = ACTIONS(4960),
    [sym_cfloat] = ACTIONS(4960),
    [sym_cdouble] = ACTIONS(4960),
    [sym_creal] = ACTIONS(4960),
    [sym_size_t] = ACTIONS(4960),
    [sym_ptrdiff_t] = ACTIONS(4960),
    [sym_string] = ACTIONS(4960),
    [sym_cstring] = ACTIONS(4960),
    [sym_dstring] = ACTIONS(4960),
    [sym_wstring] = ACTIONS(4960),
    [sym_noreturn] = ACTIONS(4960),
    [sym_true] = ACTIONS(4960),
    [sym_false] = ACTIONS(4960),
    [sym_null] = ACTIONS(4960),
    [sym_super] = ACTIONS(4960),
    [sym_this] = ACTIONS(4960),
    [sym_assert] = ACTIONS(4960),
    [sym_auto] = ACTIONS(4960),
    [sym_cast] = ACTIONS(4960),
    [sym_catch] = ACTIONS(4960),
    [sym_const] = ACTIONS(4960),
    [sym_delegate] = ACTIONS(4960),
    [sym_delete] = ACTIONS(4960),
    [sym_do] = ACTIONS(4960),
    [sym_else] = ACTIONS(4960),
    [sym_finally] = ACTIONS(4960),
    [sym_function] = ACTIONS(4960),
    [sym_immutable] = ACTIONS(4960),
    [sym_import] = ACTIONS(4960),
    [sym_in] = ACTIONS(4960),
    [sym_inout] = ACTIONS(4960),
    [sym_is] = ACTIONS(4960),
    [sym_mixin] = ACTIONS(4960),
    [sym_new] = ACTIONS(4960),
    [sym_out] = ACTIONS(4960),
    [sym_ref] = ACTIONS(4960),
    [sym_shared] = ACTIONS(4960),
    [sym_throw] = ACTIONS(4960),
    [sym_typeid] = ACTIONS(4960),
    [sym_typeof] = ACTIONS(4960),
    [sym_traits] = ACTIONS(4960),
    [sym_vector] = ACTIONS(4960),
    [sym_void] = ACTIONS(4960),
    [anon_sym_BQUOTE] = ACTIONS(4962),
    [anon_sym_r_DQUOTE] = ACTIONS(4962),
    [anon_sym_x_DQUOTE] = ACTIONS(4962),
    [anon_sym_DQUOTE] = ACTIONS(4962),
    [anon_sym_i_BQUOTE] = ACTIONS(4962),
    [anon_sym_i_DQUOTE] = ACTIONS(4962),
    [anon_sym_iq_LBRACE] = ACTIONS(4962),
    [aux_sym_char_literal_token1] = ACTIONS(4962),
    [anon_sym_SQUOTE] = ACTIONS(4960),
    [anon_sym___DATE__] = ACTIONS(4960),
    [anon_sym___FILE__] = ACTIONS(4960),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4960),
    [anon_sym___FUNCTION__] = ACTIONS(4960),
    [anon_sym___LINE__] = ACTIONS(4960),
    [anon_sym___MODULE__] = ACTIONS(4960),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4960),
    [anon_sym___TIME__] = ACTIONS(4960),
    [anon_sym___TIMESTAMP__] = ACTIONS(4960),
    [anon_sym___VENDOR__] = ACTIONS(4960),
    [anon_sym___VERSION__] = ACTIONS(4960),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4962),
    [sym_float_literal] = ACTIONS(4962),
    [sym__string] = ACTIONS(4962),
  },
  [2250] = {
    [sym_identifier] = ACTIONS(4758),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4760),
    [anon_sym_LBRACE] = ACTIONS(4760),
    [anon_sym_DOT] = ACTIONS(4760),
    [anon_sym_AMP] = ACTIONS(4760),
    [anon_sym_DASH] = ACTIONS(4758),
    [anon_sym_DASH_DASH] = ACTIONS(4760),
    [anon_sym_PLUS] = ACTIONS(4758),
    [anon_sym_PLUS_PLUS] = ACTIONS(4760),
    [anon_sym_BANG] = ACTIONS(4760),
    [anon_sym_LPAREN] = ACTIONS(4760),
    [anon_sym_RPAREN] = ACTIONS(4760),
    [anon_sym_LBRACK] = ACTIONS(4760),
    [anon_sym_SEMI] = ACTIONS(4760),
    [anon_sym_DOLLAR] = ACTIONS(4760),
    [anon_sym_STAR] = ACTIONS(4760),
    [anon_sym_TILDE] = ACTIONS(4760),
    [sym_bool] = ACTIONS(4758),
    [sym_byte] = ACTIONS(4758),
    [sym_ubyte] = ACTIONS(4758),
    [sym_char] = ACTIONS(4758),
    [sym_short] = ACTIONS(4758),
    [sym_ushort] = ACTIONS(4758),
    [sym_int] = ACTIONS(4758),
    [sym_uint] = ACTIONS(4758),
    [sym_long] = ACTIONS(4758),
    [sym_ulong] = ACTIONS(4758),
    [sym_cent] = ACTIONS(4758),
    [sym_ucent] = ACTIONS(4758),
    [sym_wchar] = ACTIONS(4758),
    [sym_dchar] = ACTIONS(4758),
    [sym_float] = ACTIONS(4758),
    [sym_double] = ACTIONS(4758),
    [sym_real] = ACTIONS(4758),
    [sym_ifloat] = ACTIONS(4758),
    [sym_idouble] = ACTIONS(4758),
    [sym_ireal] = ACTIONS(4758),
    [sym_cfloat] = ACTIONS(4758),
    [sym_cdouble] = ACTIONS(4758),
    [sym_creal] = ACTIONS(4758),
    [sym_size_t] = ACTIONS(4758),
    [sym_ptrdiff_t] = ACTIONS(4758),
    [sym_string] = ACTIONS(4758),
    [sym_cstring] = ACTIONS(4758),
    [sym_dstring] = ACTIONS(4758),
    [sym_wstring] = ACTIONS(4758),
    [sym_noreturn] = ACTIONS(4758),
    [sym_true] = ACTIONS(4758),
    [sym_false] = ACTIONS(4758),
    [sym_null] = ACTIONS(4758),
    [sym_super] = ACTIONS(4758),
    [sym_this] = ACTIONS(4758),
    [sym_assert] = ACTIONS(4758),
    [sym_auto] = ACTIONS(4758),
    [sym_cast] = ACTIONS(4758),
    [sym_catch] = ACTIONS(4758),
    [sym_const] = ACTIONS(4758),
    [sym_delegate] = ACTIONS(4758),
    [sym_delete] = ACTIONS(4758),
    [sym_do] = ACTIONS(4758),
    [sym_else] = ACTIONS(4758),
    [sym_finally] = ACTIONS(4758),
    [sym_function] = ACTIONS(4758),
    [sym_immutable] = ACTIONS(4758),
    [sym_import] = ACTIONS(4758),
    [sym_in] = ACTIONS(4758),
    [sym_inout] = ACTIONS(4758),
    [sym_is] = ACTIONS(4758),
    [sym_mixin] = ACTIONS(4758),
    [sym_new] = ACTIONS(4758),
    [sym_out] = ACTIONS(4758),
    [sym_ref] = ACTIONS(4758),
    [sym_shared] = ACTIONS(4758),
    [sym_throw] = ACTIONS(4758),
    [sym_typeid] = ACTIONS(4758),
    [sym_typeof] = ACTIONS(4758),
    [sym_traits] = ACTIONS(4758),
    [sym_vector] = ACTIONS(4758),
    [sym_void] = ACTIONS(4758),
    [anon_sym_BQUOTE] = ACTIONS(4760),
    [anon_sym_r_DQUOTE] = ACTIONS(4760),
    [anon_sym_x_DQUOTE] = ACTIONS(4760),
    [anon_sym_DQUOTE] = ACTIONS(4760),
    [anon_sym_i_BQUOTE] = ACTIONS(4760),
    [anon_sym_i_DQUOTE] = ACTIONS(4760),
    [anon_sym_iq_LBRACE] = ACTIONS(4760),
    [aux_sym_char_literal_token1] = ACTIONS(4760),
    [anon_sym_SQUOTE] = ACTIONS(4758),
    [anon_sym___DATE__] = ACTIONS(4758),
    [anon_sym___FILE__] = ACTIONS(4758),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4758),
    [anon_sym___FUNCTION__] = ACTIONS(4758),
    [anon_sym___LINE__] = ACTIONS(4758),
    [anon_sym___MODULE__] = ACTIONS(4758),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4758),
    [anon_sym___TIME__] = ACTIONS(4758),
    [anon_sym___TIMESTAMP__] = ACTIONS(4758),
    [anon_sym___VENDOR__] = ACTIONS(4758),
    [anon_sym___VERSION__] = ACTIONS(4758),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4760),
    [sym_float_literal] = ACTIONS(4760),
    [sym__string] = ACTIONS(4760),
  },
  [2251] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3104),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_AMP] = ACTIONS(3104),
    [anon_sym_DASH] = ACTIONS(3102),
    [anon_sym_DASH_DASH] = ACTIONS(3104),
    [anon_sym_PLUS] = ACTIONS(3102),
    [anon_sym_PLUS_PLUS] = ACTIONS(3104),
    [anon_sym_BANG] = ACTIONS(3104),
    [anon_sym_LPAREN] = ACTIONS(3104),
    [anon_sym_RPAREN] = ACTIONS(3104),
    [anon_sym_LBRACK] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_DOLLAR] = ACTIONS(3104),
    [anon_sym_STAR] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_true] = ACTIONS(3102),
    [sym_false] = ACTIONS(3102),
    [sym_null] = ACTIONS(3102),
    [sym_super] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_assert] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_cast] = ACTIONS(3102),
    [sym_catch] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_delegate] = ACTIONS(3102),
    [sym_delete] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_finally] = ACTIONS(3102),
    [sym_function] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_is] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_new] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_throw] = ACTIONS(3102),
    [sym_typeid] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [anon_sym_BQUOTE] = ACTIONS(3104),
    [anon_sym_r_DQUOTE] = ACTIONS(3104),
    [anon_sym_x_DQUOTE] = ACTIONS(3104),
    [anon_sym_DQUOTE] = ACTIONS(3104),
    [anon_sym_i_BQUOTE] = ACTIONS(3104),
    [anon_sym_i_DQUOTE] = ACTIONS(3104),
    [anon_sym_iq_LBRACE] = ACTIONS(3104),
    [aux_sym_char_literal_token1] = ACTIONS(3104),
    [anon_sym_SQUOTE] = ACTIONS(3102),
    [anon_sym___DATE__] = ACTIONS(3102),
    [anon_sym___FILE__] = ACTIONS(3102),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3102),
    [anon_sym___FUNCTION__] = ACTIONS(3102),
    [anon_sym___LINE__] = ACTIONS(3102),
    [anon_sym___MODULE__] = ACTIONS(3102),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3102),
    [anon_sym___TIME__] = ACTIONS(3102),
    [anon_sym___TIMESTAMP__] = ACTIONS(3102),
    [anon_sym___VENDOR__] = ACTIONS(3102),
    [anon_sym___VERSION__] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3104),
    [sym_float_literal] = ACTIONS(3104),
    [sym__string] = ACTIONS(3104),
  },
  [2252] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3072),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_AMP] = ACTIONS(3072),
    [anon_sym_DASH] = ACTIONS(3070),
    [anon_sym_DASH_DASH] = ACTIONS(3072),
    [anon_sym_PLUS] = ACTIONS(3070),
    [anon_sym_PLUS_PLUS] = ACTIONS(3072),
    [anon_sym_BANG] = ACTIONS(3072),
    [anon_sym_LPAREN] = ACTIONS(3072),
    [anon_sym_RPAREN] = ACTIONS(3072),
    [anon_sym_LBRACK] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_DOLLAR] = ACTIONS(3072),
    [anon_sym_STAR] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_true] = ACTIONS(3070),
    [sym_false] = ACTIONS(3070),
    [sym_null] = ACTIONS(3070),
    [sym_super] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_assert] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_cast] = ACTIONS(3070),
    [sym_catch] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_delegate] = ACTIONS(3070),
    [sym_delete] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_finally] = ACTIONS(3070),
    [sym_function] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_is] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_new] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_throw] = ACTIONS(3070),
    [sym_typeid] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [anon_sym_BQUOTE] = ACTIONS(3072),
    [anon_sym_r_DQUOTE] = ACTIONS(3072),
    [anon_sym_x_DQUOTE] = ACTIONS(3072),
    [anon_sym_DQUOTE] = ACTIONS(3072),
    [anon_sym_i_BQUOTE] = ACTIONS(3072),
    [anon_sym_i_DQUOTE] = ACTIONS(3072),
    [anon_sym_iq_LBRACE] = ACTIONS(3072),
    [aux_sym_char_literal_token1] = ACTIONS(3072),
    [anon_sym_SQUOTE] = ACTIONS(3070),
    [anon_sym___DATE__] = ACTIONS(3070),
    [anon_sym___FILE__] = ACTIONS(3070),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3070),
    [anon_sym___FUNCTION__] = ACTIONS(3070),
    [anon_sym___LINE__] = ACTIONS(3070),
    [anon_sym___MODULE__] = ACTIONS(3070),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3070),
    [anon_sym___TIME__] = ACTIONS(3070),
    [anon_sym___TIMESTAMP__] = ACTIONS(3070),
    [anon_sym___VENDOR__] = ACTIONS(3070),
    [anon_sym___VERSION__] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(3072),
    [sym_float_literal] = ACTIONS(3072),
    [sym__string] = ACTIONS(3072),
  },
  [2253] = {
    [sym_identifier] = ACTIONS(4750),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4752),
    [anon_sym_LBRACE] = ACTIONS(4752),
    [anon_sym_DOT] = ACTIONS(4752),
    [anon_sym_AMP] = ACTIONS(4752),
    [anon_sym_DASH] = ACTIONS(4750),
    [anon_sym_DASH_DASH] = ACTIONS(4752),
    [anon_sym_PLUS] = ACTIONS(4750),
    [anon_sym_PLUS_PLUS] = ACTIONS(4752),
    [anon_sym_BANG] = ACTIONS(4752),
    [anon_sym_LPAREN] = ACTIONS(4752),
    [anon_sym_RPAREN] = ACTIONS(4752),
    [anon_sym_LBRACK] = ACTIONS(4752),
    [anon_sym_SEMI] = ACTIONS(4752),
    [anon_sym_DOLLAR] = ACTIONS(4752),
    [anon_sym_STAR] = ACTIONS(4752),
    [anon_sym_TILDE] = ACTIONS(4752),
    [sym_bool] = ACTIONS(4750),
    [sym_byte] = ACTIONS(4750),
    [sym_ubyte] = ACTIONS(4750),
    [sym_char] = ACTIONS(4750),
    [sym_short] = ACTIONS(4750),
    [sym_ushort] = ACTIONS(4750),
    [sym_int] = ACTIONS(4750),
    [sym_uint] = ACTIONS(4750),
    [sym_long] = ACTIONS(4750),
    [sym_ulong] = ACTIONS(4750),
    [sym_cent] = ACTIONS(4750),
    [sym_ucent] = ACTIONS(4750),
    [sym_wchar] = ACTIONS(4750),
    [sym_dchar] = ACTIONS(4750),
    [sym_float] = ACTIONS(4750),
    [sym_double] = ACTIONS(4750),
    [sym_real] = ACTIONS(4750),
    [sym_ifloat] = ACTIONS(4750),
    [sym_idouble] = ACTIONS(4750),
    [sym_ireal] = ACTIONS(4750),
    [sym_cfloat] = ACTIONS(4750),
    [sym_cdouble] = ACTIONS(4750),
    [sym_creal] = ACTIONS(4750),
    [sym_size_t] = ACTIONS(4750),
    [sym_ptrdiff_t] = ACTIONS(4750),
    [sym_string] = ACTIONS(4750),
    [sym_cstring] = ACTIONS(4750),
    [sym_dstring] = ACTIONS(4750),
    [sym_wstring] = ACTIONS(4750),
    [sym_noreturn] = ACTIONS(4750),
    [sym_true] = ACTIONS(4750),
    [sym_false] = ACTIONS(4750),
    [sym_null] = ACTIONS(4750),
    [sym_super] = ACTIONS(4750),
    [sym_this] = ACTIONS(4750),
    [sym_assert] = ACTIONS(4750),
    [sym_auto] = ACTIONS(4750),
    [sym_cast] = ACTIONS(4750),
    [sym_catch] = ACTIONS(4750),
    [sym_const] = ACTIONS(4750),
    [sym_delegate] = ACTIONS(4750),
    [sym_delete] = ACTIONS(4750),
    [sym_do] = ACTIONS(4750),
    [sym_else] = ACTIONS(4750),
    [sym_finally] = ACTIONS(4750),
    [sym_function] = ACTIONS(4750),
    [sym_immutable] = ACTIONS(4750),
    [sym_import] = ACTIONS(4750),
    [sym_in] = ACTIONS(4750),
    [sym_inout] = ACTIONS(4750),
    [sym_is] = ACTIONS(4750),
    [sym_mixin] = ACTIONS(4750),
    [sym_new] = ACTIONS(4750),
    [sym_out] = ACTIONS(4750),
    [sym_ref] = ACTIONS(4750),
    [sym_shared] = ACTIONS(4750),
    [sym_throw] = ACTIONS(4750),
    [sym_typeid] = ACTIONS(4750),
    [sym_typeof] = ACTIONS(4750),
    [sym_traits] = ACTIONS(4750),
    [sym_vector] = ACTIONS(4750),
    [sym_void] = ACTIONS(4750),
    [anon_sym_BQUOTE] = ACTIONS(4752),
    [anon_sym_r_DQUOTE] = ACTIONS(4752),
    [anon_sym_x_DQUOTE] = ACTIONS(4752),
    [anon_sym_DQUOTE] = ACTIONS(4752),
    [anon_sym_i_BQUOTE] = ACTIONS(4752),
    [anon_sym_i_DQUOTE] = ACTIONS(4752),
    [anon_sym_iq_LBRACE] = ACTIONS(4752),
    [aux_sym_char_literal_token1] = ACTIONS(4752),
    [anon_sym_SQUOTE] = ACTIONS(4750),
    [anon_sym___DATE__] = ACTIONS(4750),
    [anon_sym___FILE__] = ACTIONS(4750),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4750),
    [anon_sym___FUNCTION__] = ACTIONS(4750),
    [anon_sym___LINE__] = ACTIONS(4750),
    [anon_sym___MODULE__] = ACTIONS(4750),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4750),
    [anon_sym___TIME__] = ACTIONS(4750),
    [anon_sym___TIMESTAMP__] = ACTIONS(4750),
    [anon_sym___VENDOR__] = ACTIONS(4750),
    [anon_sym___VERSION__] = ACTIONS(4750),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4752),
    [sym_float_literal] = ACTIONS(4752),
    [sym__string] = ACTIONS(4752),
  },
  [2254] = {
    [sym_identifier] = ACTIONS(5012),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5014),
    [anon_sym_LBRACE] = ACTIONS(5014),
    [anon_sym_DOT] = ACTIONS(5014),
    [anon_sym_AMP] = ACTIONS(5014),
    [anon_sym_DASH] = ACTIONS(5012),
    [anon_sym_DASH_DASH] = ACTIONS(5014),
    [anon_sym_PLUS] = ACTIONS(5012),
    [anon_sym_PLUS_PLUS] = ACTIONS(5014),
    [anon_sym_BANG] = ACTIONS(5014),
    [anon_sym_LPAREN] = ACTIONS(5014),
    [anon_sym_RPAREN] = ACTIONS(5014),
    [anon_sym_LBRACK] = ACTIONS(5014),
    [anon_sym_SEMI] = ACTIONS(5014),
    [anon_sym_DOLLAR] = ACTIONS(5014),
    [anon_sym_STAR] = ACTIONS(5014),
    [anon_sym_TILDE] = ACTIONS(5014),
    [sym_bool] = ACTIONS(5012),
    [sym_byte] = ACTIONS(5012),
    [sym_ubyte] = ACTIONS(5012),
    [sym_char] = ACTIONS(5012),
    [sym_short] = ACTIONS(5012),
    [sym_ushort] = ACTIONS(5012),
    [sym_int] = ACTIONS(5012),
    [sym_uint] = ACTIONS(5012),
    [sym_long] = ACTIONS(5012),
    [sym_ulong] = ACTIONS(5012),
    [sym_cent] = ACTIONS(5012),
    [sym_ucent] = ACTIONS(5012),
    [sym_wchar] = ACTIONS(5012),
    [sym_dchar] = ACTIONS(5012),
    [sym_float] = ACTIONS(5012),
    [sym_double] = ACTIONS(5012),
    [sym_real] = ACTIONS(5012),
    [sym_ifloat] = ACTIONS(5012),
    [sym_idouble] = ACTIONS(5012),
    [sym_ireal] = ACTIONS(5012),
    [sym_cfloat] = ACTIONS(5012),
    [sym_cdouble] = ACTIONS(5012),
    [sym_creal] = ACTIONS(5012),
    [sym_size_t] = ACTIONS(5012),
    [sym_ptrdiff_t] = ACTIONS(5012),
    [sym_string] = ACTIONS(5012),
    [sym_cstring] = ACTIONS(5012),
    [sym_dstring] = ACTIONS(5012),
    [sym_wstring] = ACTIONS(5012),
    [sym_noreturn] = ACTIONS(5012),
    [sym_true] = ACTIONS(5012),
    [sym_false] = ACTIONS(5012),
    [sym_null] = ACTIONS(5012),
    [sym_super] = ACTIONS(5012),
    [sym_this] = ACTIONS(5012),
    [sym_assert] = ACTIONS(5012),
    [sym_auto] = ACTIONS(5012),
    [sym_cast] = ACTIONS(5012),
    [sym_catch] = ACTIONS(5012),
    [sym_const] = ACTIONS(5012),
    [sym_delegate] = ACTIONS(5012),
    [sym_delete] = ACTIONS(5012),
    [sym_do] = ACTIONS(5012),
    [sym_else] = ACTIONS(5012),
    [sym_finally] = ACTIONS(5012),
    [sym_function] = ACTIONS(5012),
    [sym_immutable] = ACTIONS(5012),
    [sym_import] = ACTIONS(5012),
    [sym_in] = ACTIONS(5012),
    [sym_inout] = ACTIONS(5012),
    [sym_is] = ACTIONS(5012),
    [sym_mixin] = ACTIONS(5012),
    [sym_new] = ACTIONS(5012),
    [sym_out] = ACTIONS(5012),
    [sym_ref] = ACTIONS(5012),
    [sym_shared] = ACTIONS(5012),
    [sym_throw] = ACTIONS(5012),
    [sym_typeid] = ACTIONS(5012),
    [sym_typeof] = ACTIONS(5012),
    [sym_traits] = ACTIONS(5012),
    [sym_vector] = ACTIONS(5012),
    [sym_void] = ACTIONS(5012),
    [anon_sym_BQUOTE] = ACTIONS(5014),
    [anon_sym_r_DQUOTE] = ACTIONS(5014),
    [anon_sym_x_DQUOTE] = ACTIONS(5014),
    [anon_sym_DQUOTE] = ACTIONS(5014),
    [anon_sym_i_BQUOTE] = ACTIONS(5014),
    [anon_sym_i_DQUOTE] = ACTIONS(5014),
    [anon_sym_iq_LBRACE] = ACTIONS(5014),
    [aux_sym_char_literal_token1] = ACTIONS(5014),
    [anon_sym_SQUOTE] = ACTIONS(5012),
    [anon_sym___DATE__] = ACTIONS(5012),
    [anon_sym___FILE__] = ACTIONS(5012),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5012),
    [anon_sym___FUNCTION__] = ACTIONS(5012),
    [anon_sym___LINE__] = ACTIONS(5012),
    [anon_sym___MODULE__] = ACTIONS(5012),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5012),
    [anon_sym___TIME__] = ACTIONS(5012),
    [anon_sym___TIMESTAMP__] = ACTIONS(5012),
    [anon_sym___VENDOR__] = ACTIONS(5012),
    [anon_sym___VERSION__] = ACTIONS(5012),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5014),
    [sym_float_literal] = ACTIONS(5014),
    [sym__string] = ACTIONS(5014),
  },
  [2255] = {
    [sym_identifier] = ACTIONS(4524),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4526),
    [anon_sym_LBRACE] = ACTIONS(4526),
    [anon_sym_DOT] = ACTIONS(4526),
    [anon_sym_AMP] = ACTIONS(4526),
    [anon_sym_DASH] = ACTIONS(4524),
    [anon_sym_DASH_DASH] = ACTIONS(4526),
    [anon_sym_PLUS] = ACTIONS(4524),
    [anon_sym_PLUS_PLUS] = ACTIONS(4526),
    [anon_sym_BANG] = ACTIONS(4526),
    [anon_sym_LPAREN] = ACTIONS(4526),
    [anon_sym_RPAREN] = ACTIONS(4526),
    [anon_sym_LBRACK] = ACTIONS(4526),
    [anon_sym_SEMI] = ACTIONS(4526),
    [anon_sym_DOLLAR] = ACTIONS(4526),
    [anon_sym_STAR] = ACTIONS(4526),
    [anon_sym_TILDE] = ACTIONS(4526),
    [sym_bool] = ACTIONS(4524),
    [sym_byte] = ACTIONS(4524),
    [sym_ubyte] = ACTIONS(4524),
    [sym_char] = ACTIONS(4524),
    [sym_short] = ACTIONS(4524),
    [sym_ushort] = ACTIONS(4524),
    [sym_int] = ACTIONS(4524),
    [sym_uint] = ACTIONS(4524),
    [sym_long] = ACTIONS(4524),
    [sym_ulong] = ACTIONS(4524),
    [sym_cent] = ACTIONS(4524),
    [sym_ucent] = ACTIONS(4524),
    [sym_wchar] = ACTIONS(4524),
    [sym_dchar] = ACTIONS(4524),
    [sym_float] = ACTIONS(4524),
    [sym_double] = ACTIONS(4524),
    [sym_real] = ACTIONS(4524),
    [sym_ifloat] = ACTIONS(4524),
    [sym_idouble] = ACTIONS(4524),
    [sym_ireal] = ACTIONS(4524),
    [sym_cfloat] = ACTIONS(4524),
    [sym_cdouble] = ACTIONS(4524),
    [sym_creal] = ACTIONS(4524),
    [sym_size_t] = ACTIONS(4524),
    [sym_ptrdiff_t] = ACTIONS(4524),
    [sym_string] = ACTIONS(4524),
    [sym_cstring] = ACTIONS(4524),
    [sym_dstring] = ACTIONS(4524),
    [sym_wstring] = ACTIONS(4524),
    [sym_noreturn] = ACTIONS(4524),
    [sym_true] = ACTIONS(4524),
    [sym_false] = ACTIONS(4524),
    [sym_null] = ACTIONS(4524),
    [sym_super] = ACTIONS(4524),
    [sym_this] = ACTIONS(4524),
    [sym_assert] = ACTIONS(4524),
    [sym_auto] = ACTIONS(4524),
    [sym_cast] = ACTIONS(4524),
    [sym_catch] = ACTIONS(4524),
    [sym_const] = ACTIONS(4524),
    [sym_delegate] = ACTIONS(4524),
    [sym_delete] = ACTIONS(4524),
    [sym_do] = ACTIONS(4524),
    [sym_else] = ACTIONS(4524),
    [sym_finally] = ACTIONS(4524),
    [sym_function] = ACTIONS(4524),
    [sym_immutable] = ACTIONS(4524),
    [sym_import] = ACTIONS(4524),
    [sym_in] = ACTIONS(4524),
    [sym_inout] = ACTIONS(4524),
    [sym_is] = ACTIONS(4524),
    [sym_mixin] = ACTIONS(4524),
    [sym_new] = ACTIONS(4524),
    [sym_out] = ACTIONS(4524),
    [sym_ref] = ACTIONS(4524),
    [sym_shared] = ACTIONS(4524),
    [sym_throw] = ACTIONS(4524),
    [sym_typeid] = ACTIONS(4524),
    [sym_typeof] = ACTIONS(4524),
    [sym_traits] = ACTIONS(4524),
    [sym_vector] = ACTIONS(4524),
    [sym_void] = ACTIONS(4524),
    [anon_sym_BQUOTE] = ACTIONS(4526),
    [anon_sym_r_DQUOTE] = ACTIONS(4526),
    [anon_sym_x_DQUOTE] = ACTIONS(4526),
    [anon_sym_DQUOTE] = ACTIONS(4526),
    [anon_sym_i_BQUOTE] = ACTIONS(4526),
    [anon_sym_i_DQUOTE] = ACTIONS(4526),
    [anon_sym_iq_LBRACE] = ACTIONS(4526),
    [aux_sym_char_literal_token1] = ACTIONS(4526),
    [anon_sym_SQUOTE] = ACTIONS(4524),
    [anon_sym___DATE__] = ACTIONS(4524),
    [anon_sym___FILE__] = ACTIONS(4524),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4524),
    [anon_sym___FUNCTION__] = ACTIONS(4524),
    [anon_sym___LINE__] = ACTIONS(4524),
    [anon_sym___MODULE__] = ACTIONS(4524),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4524),
    [anon_sym___TIME__] = ACTIONS(4524),
    [anon_sym___TIMESTAMP__] = ACTIONS(4524),
    [anon_sym___VENDOR__] = ACTIONS(4524),
    [anon_sym___VERSION__] = ACTIONS(4524),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4526),
    [sym_float_literal] = ACTIONS(4526),
    [sym__string] = ACTIONS(4526),
  },
  [2256] = {
    [sym_identifier] = ACTIONS(4746),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4748),
    [anon_sym_LBRACE] = ACTIONS(4748),
    [anon_sym_DOT] = ACTIONS(4748),
    [anon_sym_AMP] = ACTIONS(4748),
    [anon_sym_DASH] = ACTIONS(4746),
    [anon_sym_DASH_DASH] = ACTIONS(4748),
    [anon_sym_PLUS] = ACTIONS(4746),
    [anon_sym_PLUS_PLUS] = ACTIONS(4748),
    [anon_sym_BANG] = ACTIONS(4748),
    [anon_sym_LPAREN] = ACTIONS(4748),
    [anon_sym_RPAREN] = ACTIONS(4748),
    [anon_sym_LBRACK] = ACTIONS(4748),
    [anon_sym_SEMI] = ACTIONS(4748),
    [anon_sym_DOLLAR] = ACTIONS(4748),
    [anon_sym_STAR] = ACTIONS(4748),
    [anon_sym_TILDE] = ACTIONS(4748),
    [sym_bool] = ACTIONS(4746),
    [sym_byte] = ACTIONS(4746),
    [sym_ubyte] = ACTIONS(4746),
    [sym_char] = ACTIONS(4746),
    [sym_short] = ACTIONS(4746),
    [sym_ushort] = ACTIONS(4746),
    [sym_int] = ACTIONS(4746),
    [sym_uint] = ACTIONS(4746),
    [sym_long] = ACTIONS(4746),
    [sym_ulong] = ACTIONS(4746),
    [sym_cent] = ACTIONS(4746),
    [sym_ucent] = ACTIONS(4746),
    [sym_wchar] = ACTIONS(4746),
    [sym_dchar] = ACTIONS(4746),
    [sym_float] = ACTIONS(4746),
    [sym_double] = ACTIONS(4746),
    [sym_real] = ACTIONS(4746),
    [sym_ifloat] = ACTIONS(4746),
    [sym_idouble] = ACTIONS(4746),
    [sym_ireal] = ACTIONS(4746),
    [sym_cfloat] = ACTIONS(4746),
    [sym_cdouble] = ACTIONS(4746),
    [sym_creal] = ACTIONS(4746),
    [sym_size_t] = ACTIONS(4746),
    [sym_ptrdiff_t] = ACTIONS(4746),
    [sym_string] = ACTIONS(4746),
    [sym_cstring] = ACTIONS(4746),
    [sym_dstring] = ACTIONS(4746),
    [sym_wstring] = ACTIONS(4746),
    [sym_noreturn] = ACTIONS(4746),
    [sym_true] = ACTIONS(4746),
    [sym_false] = ACTIONS(4746),
    [sym_null] = ACTIONS(4746),
    [sym_super] = ACTIONS(4746),
    [sym_this] = ACTIONS(4746),
    [sym_assert] = ACTIONS(4746),
    [sym_auto] = ACTIONS(4746),
    [sym_cast] = ACTIONS(4746),
    [sym_catch] = ACTIONS(4746),
    [sym_const] = ACTIONS(4746),
    [sym_delegate] = ACTIONS(4746),
    [sym_delete] = ACTIONS(4746),
    [sym_do] = ACTIONS(4746),
    [sym_else] = ACTIONS(4746),
    [sym_finally] = ACTIONS(4746),
    [sym_function] = ACTIONS(4746),
    [sym_immutable] = ACTIONS(4746),
    [sym_import] = ACTIONS(4746),
    [sym_in] = ACTIONS(4746),
    [sym_inout] = ACTIONS(4746),
    [sym_is] = ACTIONS(4746),
    [sym_mixin] = ACTIONS(4746),
    [sym_new] = ACTIONS(4746),
    [sym_out] = ACTIONS(4746),
    [sym_ref] = ACTIONS(4746),
    [sym_shared] = ACTIONS(4746),
    [sym_throw] = ACTIONS(4746),
    [sym_typeid] = ACTIONS(4746),
    [sym_typeof] = ACTIONS(4746),
    [sym_traits] = ACTIONS(4746),
    [sym_vector] = ACTIONS(4746),
    [sym_void] = ACTIONS(4746),
    [anon_sym_BQUOTE] = ACTIONS(4748),
    [anon_sym_r_DQUOTE] = ACTIONS(4748),
    [anon_sym_x_DQUOTE] = ACTIONS(4748),
    [anon_sym_DQUOTE] = ACTIONS(4748),
    [anon_sym_i_BQUOTE] = ACTIONS(4748),
    [anon_sym_i_DQUOTE] = ACTIONS(4748),
    [anon_sym_iq_LBRACE] = ACTIONS(4748),
    [aux_sym_char_literal_token1] = ACTIONS(4748),
    [anon_sym_SQUOTE] = ACTIONS(4746),
    [anon_sym___DATE__] = ACTIONS(4746),
    [anon_sym___FILE__] = ACTIONS(4746),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4746),
    [anon_sym___FUNCTION__] = ACTIONS(4746),
    [anon_sym___LINE__] = ACTIONS(4746),
    [anon_sym___MODULE__] = ACTIONS(4746),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4746),
    [anon_sym___TIME__] = ACTIONS(4746),
    [anon_sym___TIMESTAMP__] = ACTIONS(4746),
    [anon_sym___VENDOR__] = ACTIONS(4746),
    [anon_sym___VERSION__] = ACTIONS(4746),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4748),
    [sym_float_literal] = ACTIONS(4748),
    [sym__string] = ACTIONS(4748),
  },
  [2257] = {
    [sym_identifier] = ACTIONS(4402),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4404),
    [anon_sym_LBRACE] = ACTIONS(4404),
    [anon_sym_DOT] = ACTIONS(4404),
    [anon_sym_AMP] = ACTIONS(4404),
    [anon_sym_DASH] = ACTIONS(4402),
    [anon_sym_DASH_DASH] = ACTIONS(4404),
    [anon_sym_PLUS] = ACTIONS(4402),
    [anon_sym_PLUS_PLUS] = ACTIONS(4404),
    [anon_sym_BANG] = ACTIONS(4404),
    [anon_sym_LPAREN] = ACTIONS(4404),
    [anon_sym_RPAREN] = ACTIONS(4404),
    [anon_sym_LBRACK] = ACTIONS(4404),
    [anon_sym_SEMI] = ACTIONS(4404),
    [anon_sym_DOLLAR] = ACTIONS(4404),
    [anon_sym_STAR] = ACTIONS(4404),
    [anon_sym_TILDE] = ACTIONS(4404),
    [sym_bool] = ACTIONS(4402),
    [sym_byte] = ACTIONS(4402),
    [sym_ubyte] = ACTIONS(4402),
    [sym_char] = ACTIONS(4402),
    [sym_short] = ACTIONS(4402),
    [sym_ushort] = ACTIONS(4402),
    [sym_int] = ACTIONS(4402),
    [sym_uint] = ACTIONS(4402),
    [sym_long] = ACTIONS(4402),
    [sym_ulong] = ACTIONS(4402),
    [sym_cent] = ACTIONS(4402),
    [sym_ucent] = ACTIONS(4402),
    [sym_wchar] = ACTIONS(4402),
    [sym_dchar] = ACTIONS(4402),
    [sym_float] = ACTIONS(4402),
    [sym_double] = ACTIONS(4402),
    [sym_real] = ACTIONS(4402),
    [sym_ifloat] = ACTIONS(4402),
    [sym_idouble] = ACTIONS(4402),
    [sym_ireal] = ACTIONS(4402),
    [sym_cfloat] = ACTIONS(4402),
    [sym_cdouble] = ACTIONS(4402),
    [sym_creal] = ACTIONS(4402),
    [sym_size_t] = ACTIONS(4402),
    [sym_ptrdiff_t] = ACTIONS(4402),
    [sym_string] = ACTIONS(4402),
    [sym_cstring] = ACTIONS(4402),
    [sym_dstring] = ACTIONS(4402),
    [sym_wstring] = ACTIONS(4402),
    [sym_noreturn] = ACTIONS(4402),
    [sym_true] = ACTIONS(4402),
    [sym_false] = ACTIONS(4402),
    [sym_null] = ACTIONS(4402),
    [sym_super] = ACTIONS(4402),
    [sym_this] = ACTIONS(4402),
    [sym_assert] = ACTIONS(4402),
    [sym_auto] = ACTIONS(4402),
    [sym_cast] = ACTIONS(4402),
    [sym_catch] = ACTIONS(4402),
    [sym_const] = ACTIONS(4402),
    [sym_delegate] = ACTIONS(4402),
    [sym_delete] = ACTIONS(4402),
    [sym_do] = ACTIONS(4402),
    [sym_else] = ACTIONS(4402),
    [sym_finally] = ACTIONS(4402),
    [sym_function] = ACTIONS(4402),
    [sym_immutable] = ACTIONS(4402),
    [sym_import] = ACTIONS(4402),
    [sym_in] = ACTIONS(4402),
    [sym_inout] = ACTIONS(4402),
    [sym_is] = ACTIONS(4402),
    [sym_mixin] = ACTIONS(4402),
    [sym_new] = ACTIONS(4402),
    [sym_out] = ACTIONS(4402),
    [sym_ref] = ACTIONS(4402),
    [sym_shared] = ACTIONS(4402),
    [sym_throw] = ACTIONS(4402),
    [sym_typeid] = ACTIONS(4402),
    [sym_typeof] = ACTIONS(4402),
    [sym_traits] = ACTIONS(4402),
    [sym_vector] = ACTIONS(4402),
    [sym_void] = ACTIONS(4402),
    [anon_sym_BQUOTE] = ACTIONS(4404),
    [anon_sym_r_DQUOTE] = ACTIONS(4404),
    [anon_sym_x_DQUOTE] = ACTIONS(4404),
    [anon_sym_DQUOTE] = ACTIONS(4404),
    [anon_sym_i_BQUOTE] = ACTIONS(4404),
    [anon_sym_i_DQUOTE] = ACTIONS(4404),
    [anon_sym_iq_LBRACE] = ACTIONS(4404),
    [aux_sym_char_literal_token1] = ACTIONS(4404),
    [anon_sym_SQUOTE] = ACTIONS(4402),
    [anon_sym___DATE__] = ACTIONS(4402),
    [anon_sym___FILE__] = ACTIONS(4402),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4402),
    [anon_sym___FUNCTION__] = ACTIONS(4402),
    [anon_sym___LINE__] = ACTIONS(4402),
    [anon_sym___MODULE__] = ACTIONS(4402),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4402),
    [anon_sym___TIME__] = ACTIONS(4402),
    [anon_sym___TIMESTAMP__] = ACTIONS(4402),
    [anon_sym___VENDOR__] = ACTIONS(4402),
    [anon_sym___VERSION__] = ACTIONS(4402),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4404),
    [sym_float_literal] = ACTIONS(4404),
    [sym__string] = ACTIONS(4404),
  },
  [2258] = {
    [sym_identifier] = ACTIONS(4724),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4726),
    [anon_sym_LBRACE] = ACTIONS(4726),
    [anon_sym_DOT] = ACTIONS(4726),
    [anon_sym_AMP] = ACTIONS(4726),
    [anon_sym_DASH] = ACTIONS(4724),
    [anon_sym_DASH_DASH] = ACTIONS(4726),
    [anon_sym_PLUS] = ACTIONS(4724),
    [anon_sym_PLUS_PLUS] = ACTIONS(4726),
    [anon_sym_BANG] = ACTIONS(4726),
    [anon_sym_LPAREN] = ACTIONS(4726),
    [anon_sym_RPAREN] = ACTIONS(4726),
    [anon_sym_LBRACK] = ACTIONS(4726),
    [anon_sym_SEMI] = ACTIONS(4726),
    [anon_sym_DOLLAR] = ACTIONS(4726),
    [anon_sym_STAR] = ACTIONS(4726),
    [anon_sym_TILDE] = ACTIONS(4726),
    [sym_bool] = ACTIONS(4724),
    [sym_byte] = ACTIONS(4724),
    [sym_ubyte] = ACTIONS(4724),
    [sym_char] = ACTIONS(4724),
    [sym_short] = ACTIONS(4724),
    [sym_ushort] = ACTIONS(4724),
    [sym_int] = ACTIONS(4724),
    [sym_uint] = ACTIONS(4724),
    [sym_long] = ACTIONS(4724),
    [sym_ulong] = ACTIONS(4724),
    [sym_cent] = ACTIONS(4724),
    [sym_ucent] = ACTIONS(4724),
    [sym_wchar] = ACTIONS(4724),
    [sym_dchar] = ACTIONS(4724),
    [sym_float] = ACTIONS(4724),
    [sym_double] = ACTIONS(4724),
    [sym_real] = ACTIONS(4724),
    [sym_ifloat] = ACTIONS(4724),
    [sym_idouble] = ACTIONS(4724),
    [sym_ireal] = ACTIONS(4724),
    [sym_cfloat] = ACTIONS(4724),
    [sym_cdouble] = ACTIONS(4724),
    [sym_creal] = ACTIONS(4724),
    [sym_size_t] = ACTIONS(4724),
    [sym_ptrdiff_t] = ACTIONS(4724),
    [sym_string] = ACTIONS(4724),
    [sym_cstring] = ACTIONS(4724),
    [sym_dstring] = ACTIONS(4724),
    [sym_wstring] = ACTIONS(4724),
    [sym_noreturn] = ACTIONS(4724),
    [sym_true] = ACTIONS(4724),
    [sym_false] = ACTIONS(4724),
    [sym_null] = ACTIONS(4724),
    [sym_super] = ACTIONS(4724),
    [sym_this] = ACTIONS(4724),
    [sym_assert] = ACTIONS(4724),
    [sym_auto] = ACTIONS(4724),
    [sym_cast] = ACTIONS(4724),
    [sym_catch] = ACTIONS(4724),
    [sym_const] = ACTIONS(4724),
    [sym_delegate] = ACTIONS(4724),
    [sym_delete] = ACTIONS(4724),
    [sym_do] = ACTIONS(4724),
    [sym_else] = ACTIONS(4724),
    [sym_finally] = ACTIONS(4724),
    [sym_function] = ACTIONS(4724),
    [sym_immutable] = ACTIONS(4724),
    [sym_import] = ACTIONS(4724),
    [sym_in] = ACTIONS(4724),
    [sym_inout] = ACTIONS(4724),
    [sym_is] = ACTIONS(4724),
    [sym_mixin] = ACTIONS(4724),
    [sym_new] = ACTIONS(4724),
    [sym_out] = ACTIONS(4724),
    [sym_ref] = ACTIONS(4724),
    [sym_shared] = ACTIONS(4724),
    [sym_throw] = ACTIONS(4724),
    [sym_typeid] = ACTIONS(4724),
    [sym_typeof] = ACTIONS(4724),
    [sym_traits] = ACTIONS(4724),
    [sym_vector] = ACTIONS(4724),
    [sym_void] = ACTIONS(4724),
    [anon_sym_BQUOTE] = ACTIONS(4726),
    [anon_sym_r_DQUOTE] = ACTIONS(4726),
    [anon_sym_x_DQUOTE] = ACTIONS(4726),
    [anon_sym_DQUOTE] = ACTIONS(4726),
    [anon_sym_i_BQUOTE] = ACTIONS(4726),
    [anon_sym_i_DQUOTE] = ACTIONS(4726),
    [anon_sym_iq_LBRACE] = ACTIONS(4726),
    [aux_sym_char_literal_token1] = ACTIONS(4726),
    [anon_sym_SQUOTE] = ACTIONS(4724),
    [anon_sym___DATE__] = ACTIONS(4724),
    [anon_sym___FILE__] = ACTIONS(4724),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4724),
    [anon_sym___FUNCTION__] = ACTIONS(4724),
    [anon_sym___LINE__] = ACTIONS(4724),
    [anon_sym___MODULE__] = ACTIONS(4724),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4724),
    [anon_sym___TIME__] = ACTIONS(4724),
    [anon_sym___TIMESTAMP__] = ACTIONS(4724),
    [anon_sym___VENDOR__] = ACTIONS(4724),
    [anon_sym___VERSION__] = ACTIONS(4724),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4726),
    [sym_float_literal] = ACTIONS(4726),
    [sym__string] = ACTIONS(4726),
  },
  [2259] = {
    [sym_identifier] = ACTIONS(5024),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5026),
    [anon_sym_LBRACE] = ACTIONS(5026),
    [anon_sym_DOT] = ACTIONS(5026),
    [anon_sym_AMP] = ACTIONS(5026),
    [anon_sym_DASH] = ACTIONS(5024),
    [anon_sym_DASH_DASH] = ACTIONS(5026),
    [anon_sym_PLUS] = ACTIONS(5024),
    [anon_sym_PLUS_PLUS] = ACTIONS(5026),
    [anon_sym_BANG] = ACTIONS(5026),
    [anon_sym_LPAREN] = ACTIONS(5026),
    [anon_sym_RPAREN] = ACTIONS(5026),
    [anon_sym_LBRACK] = ACTIONS(5026),
    [anon_sym_SEMI] = ACTIONS(5026),
    [anon_sym_DOLLAR] = ACTIONS(5026),
    [anon_sym_STAR] = ACTIONS(5026),
    [anon_sym_TILDE] = ACTIONS(5026),
    [sym_bool] = ACTIONS(5024),
    [sym_byte] = ACTIONS(5024),
    [sym_ubyte] = ACTIONS(5024),
    [sym_char] = ACTIONS(5024),
    [sym_short] = ACTIONS(5024),
    [sym_ushort] = ACTIONS(5024),
    [sym_int] = ACTIONS(5024),
    [sym_uint] = ACTIONS(5024),
    [sym_long] = ACTIONS(5024),
    [sym_ulong] = ACTIONS(5024),
    [sym_cent] = ACTIONS(5024),
    [sym_ucent] = ACTIONS(5024),
    [sym_wchar] = ACTIONS(5024),
    [sym_dchar] = ACTIONS(5024),
    [sym_float] = ACTIONS(5024),
    [sym_double] = ACTIONS(5024),
    [sym_real] = ACTIONS(5024),
    [sym_ifloat] = ACTIONS(5024),
    [sym_idouble] = ACTIONS(5024),
    [sym_ireal] = ACTIONS(5024),
    [sym_cfloat] = ACTIONS(5024),
    [sym_cdouble] = ACTIONS(5024),
    [sym_creal] = ACTIONS(5024),
    [sym_size_t] = ACTIONS(5024),
    [sym_ptrdiff_t] = ACTIONS(5024),
    [sym_string] = ACTIONS(5024),
    [sym_cstring] = ACTIONS(5024),
    [sym_dstring] = ACTIONS(5024),
    [sym_wstring] = ACTIONS(5024),
    [sym_noreturn] = ACTIONS(5024),
    [sym_true] = ACTIONS(5024),
    [sym_false] = ACTIONS(5024),
    [sym_null] = ACTIONS(5024),
    [sym_super] = ACTIONS(5024),
    [sym_this] = ACTIONS(5024),
    [sym_assert] = ACTIONS(5024),
    [sym_auto] = ACTIONS(5024),
    [sym_cast] = ACTIONS(5024),
    [sym_catch] = ACTIONS(5024),
    [sym_const] = ACTIONS(5024),
    [sym_delegate] = ACTIONS(5024),
    [sym_delete] = ACTIONS(5024),
    [sym_do] = ACTIONS(5024),
    [sym_else] = ACTIONS(5024),
    [sym_finally] = ACTIONS(5024),
    [sym_function] = ACTIONS(5024),
    [sym_immutable] = ACTIONS(5024),
    [sym_import] = ACTIONS(5024),
    [sym_in] = ACTIONS(5024),
    [sym_inout] = ACTIONS(5024),
    [sym_is] = ACTIONS(5024),
    [sym_mixin] = ACTIONS(5024),
    [sym_new] = ACTIONS(5024),
    [sym_out] = ACTIONS(5024),
    [sym_ref] = ACTIONS(5024),
    [sym_shared] = ACTIONS(5024),
    [sym_throw] = ACTIONS(5024),
    [sym_typeid] = ACTIONS(5024),
    [sym_typeof] = ACTIONS(5024),
    [sym_traits] = ACTIONS(5024),
    [sym_vector] = ACTIONS(5024),
    [sym_void] = ACTIONS(5024),
    [anon_sym_BQUOTE] = ACTIONS(5026),
    [anon_sym_r_DQUOTE] = ACTIONS(5026),
    [anon_sym_x_DQUOTE] = ACTIONS(5026),
    [anon_sym_DQUOTE] = ACTIONS(5026),
    [anon_sym_i_BQUOTE] = ACTIONS(5026),
    [anon_sym_i_DQUOTE] = ACTIONS(5026),
    [anon_sym_iq_LBRACE] = ACTIONS(5026),
    [aux_sym_char_literal_token1] = ACTIONS(5026),
    [anon_sym_SQUOTE] = ACTIONS(5024),
    [anon_sym___DATE__] = ACTIONS(5024),
    [anon_sym___FILE__] = ACTIONS(5024),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5024),
    [anon_sym___FUNCTION__] = ACTIONS(5024),
    [anon_sym___LINE__] = ACTIONS(5024),
    [anon_sym___MODULE__] = ACTIONS(5024),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5024),
    [anon_sym___TIME__] = ACTIONS(5024),
    [anon_sym___TIMESTAMP__] = ACTIONS(5024),
    [anon_sym___VENDOR__] = ACTIONS(5024),
    [anon_sym___VERSION__] = ACTIONS(5024),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5026),
    [sym_float_literal] = ACTIONS(5026),
    [sym__string] = ACTIONS(5026),
  },
  [2260] = {
    [sym_identifier] = ACTIONS(4716),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4718),
    [anon_sym_LBRACE] = ACTIONS(4718),
    [anon_sym_DOT] = ACTIONS(4718),
    [anon_sym_AMP] = ACTIONS(4718),
    [anon_sym_DASH] = ACTIONS(4716),
    [anon_sym_DASH_DASH] = ACTIONS(4718),
    [anon_sym_PLUS] = ACTIONS(4716),
    [anon_sym_PLUS_PLUS] = ACTIONS(4718),
    [anon_sym_BANG] = ACTIONS(4718),
    [anon_sym_LPAREN] = ACTIONS(4718),
    [anon_sym_RPAREN] = ACTIONS(4718),
    [anon_sym_LBRACK] = ACTIONS(4718),
    [anon_sym_SEMI] = ACTIONS(4718),
    [anon_sym_DOLLAR] = ACTIONS(4718),
    [anon_sym_STAR] = ACTIONS(4718),
    [anon_sym_TILDE] = ACTIONS(4718),
    [sym_bool] = ACTIONS(4716),
    [sym_byte] = ACTIONS(4716),
    [sym_ubyte] = ACTIONS(4716),
    [sym_char] = ACTIONS(4716),
    [sym_short] = ACTIONS(4716),
    [sym_ushort] = ACTIONS(4716),
    [sym_int] = ACTIONS(4716),
    [sym_uint] = ACTIONS(4716),
    [sym_long] = ACTIONS(4716),
    [sym_ulong] = ACTIONS(4716),
    [sym_cent] = ACTIONS(4716),
    [sym_ucent] = ACTIONS(4716),
    [sym_wchar] = ACTIONS(4716),
    [sym_dchar] = ACTIONS(4716),
    [sym_float] = ACTIONS(4716),
    [sym_double] = ACTIONS(4716),
    [sym_real] = ACTIONS(4716),
    [sym_ifloat] = ACTIONS(4716),
    [sym_idouble] = ACTIONS(4716),
    [sym_ireal] = ACTIONS(4716),
    [sym_cfloat] = ACTIONS(4716),
    [sym_cdouble] = ACTIONS(4716),
    [sym_creal] = ACTIONS(4716),
    [sym_size_t] = ACTIONS(4716),
    [sym_ptrdiff_t] = ACTIONS(4716),
    [sym_string] = ACTIONS(4716),
    [sym_cstring] = ACTIONS(4716),
    [sym_dstring] = ACTIONS(4716),
    [sym_wstring] = ACTIONS(4716),
    [sym_noreturn] = ACTIONS(4716),
    [sym_true] = ACTIONS(4716),
    [sym_false] = ACTIONS(4716),
    [sym_null] = ACTIONS(4716),
    [sym_super] = ACTIONS(4716),
    [sym_this] = ACTIONS(4716),
    [sym_assert] = ACTIONS(4716),
    [sym_auto] = ACTIONS(4716),
    [sym_cast] = ACTIONS(4716),
    [sym_catch] = ACTIONS(4716),
    [sym_const] = ACTIONS(4716),
    [sym_delegate] = ACTIONS(4716),
    [sym_delete] = ACTIONS(4716),
    [sym_do] = ACTIONS(4716),
    [sym_else] = ACTIONS(4716),
    [sym_finally] = ACTIONS(4716),
    [sym_function] = ACTIONS(4716),
    [sym_immutable] = ACTIONS(4716),
    [sym_import] = ACTIONS(4716),
    [sym_in] = ACTIONS(4716),
    [sym_inout] = ACTIONS(4716),
    [sym_is] = ACTIONS(4716),
    [sym_mixin] = ACTIONS(4716),
    [sym_new] = ACTIONS(4716),
    [sym_out] = ACTIONS(4716),
    [sym_ref] = ACTIONS(4716),
    [sym_shared] = ACTIONS(4716),
    [sym_throw] = ACTIONS(4716),
    [sym_typeid] = ACTIONS(4716),
    [sym_typeof] = ACTIONS(4716),
    [sym_traits] = ACTIONS(4716),
    [sym_vector] = ACTIONS(4716),
    [sym_void] = ACTIONS(4716),
    [anon_sym_BQUOTE] = ACTIONS(4718),
    [anon_sym_r_DQUOTE] = ACTIONS(4718),
    [anon_sym_x_DQUOTE] = ACTIONS(4718),
    [anon_sym_DQUOTE] = ACTIONS(4718),
    [anon_sym_i_BQUOTE] = ACTIONS(4718),
    [anon_sym_i_DQUOTE] = ACTIONS(4718),
    [anon_sym_iq_LBRACE] = ACTIONS(4718),
    [aux_sym_char_literal_token1] = ACTIONS(4718),
    [anon_sym_SQUOTE] = ACTIONS(4716),
    [anon_sym___DATE__] = ACTIONS(4716),
    [anon_sym___FILE__] = ACTIONS(4716),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4716),
    [anon_sym___FUNCTION__] = ACTIONS(4716),
    [anon_sym___LINE__] = ACTIONS(4716),
    [anon_sym___MODULE__] = ACTIONS(4716),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4716),
    [anon_sym___TIME__] = ACTIONS(4716),
    [anon_sym___TIMESTAMP__] = ACTIONS(4716),
    [anon_sym___VENDOR__] = ACTIONS(4716),
    [anon_sym___VERSION__] = ACTIONS(4716),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4718),
    [sym_float_literal] = ACTIONS(4718),
    [sym__string] = ACTIONS(4718),
  },
  [2261] = {
    [sym_identifier] = ACTIONS(4289),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4291),
    [anon_sym_LBRACE] = ACTIONS(4291),
    [anon_sym_DOT] = ACTIONS(4291),
    [anon_sym_AMP] = ACTIONS(4291),
    [anon_sym_DASH] = ACTIONS(4289),
    [anon_sym_DASH_DASH] = ACTIONS(4291),
    [anon_sym_PLUS] = ACTIONS(4289),
    [anon_sym_PLUS_PLUS] = ACTIONS(4291),
    [anon_sym_BANG] = ACTIONS(4291),
    [anon_sym_LPAREN] = ACTIONS(4291),
    [anon_sym_RPAREN] = ACTIONS(4291),
    [anon_sym_LBRACK] = ACTIONS(4291),
    [anon_sym_SEMI] = ACTIONS(4291),
    [anon_sym_DOLLAR] = ACTIONS(4291),
    [anon_sym_STAR] = ACTIONS(4291),
    [anon_sym_TILDE] = ACTIONS(4291),
    [sym_bool] = ACTIONS(4289),
    [sym_byte] = ACTIONS(4289),
    [sym_ubyte] = ACTIONS(4289),
    [sym_char] = ACTIONS(4289),
    [sym_short] = ACTIONS(4289),
    [sym_ushort] = ACTIONS(4289),
    [sym_int] = ACTIONS(4289),
    [sym_uint] = ACTIONS(4289),
    [sym_long] = ACTIONS(4289),
    [sym_ulong] = ACTIONS(4289),
    [sym_cent] = ACTIONS(4289),
    [sym_ucent] = ACTIONS(4289),
    [sym_wchar] = ACTIONS(4289),
    [sym_dchar] = ACTIONS(4289),
    [sym_float] = ACTIONS(4289),
    [sym_double] = ACTIONS(4289),
    [sym_real] = ACTIONS(4289),
    [sym_ifloat] = ACTIONS(4289),
    [sym_idouble] = ACTIONS(4289),
    [sym_ireal] = ACTIONS(4289),
    [sym_cfloat] = ACTIONS(4289),
    [sym_cdouble] = ACTIONS(4289),
    [sym_creal] = ACTIONS(4289),
    [sym_size_t] = ACTIONS(4289),
    [sym_ptrdiff_t] = ACTIONS(4289),
    [sym_string] = ACTIONS(4289),
    [sym_cstring] = ACTIONS(4289),
    [sym_dstring] = ACTIONS(4289),
    [sym_wstring] = ACTIONS(4289),
    [sym_noreturn] = ACTIONS(4289),
    [sym_true] = ACTIONS(4289),
    [sym_false] = ACTIONS(4289),
    [sym_null] = ACTIONS(4289),
    [sym_super] = ACTIONS(4289),
    [sym_this] = ACTIONS(4289),
    [sym_assert] = ACTIONS(4289),
    [sym_auto] = ACTIONS(4289),
    [sym_cast] = ACTIONS(4289),
    [sym_catch] = ACTIONS(4289),
    [sym_const] = ACTIONS(4289),
    [sym_delegate] = ACTIONS(4289),
    [sym_delete] = ACTIONS(4289),
    [sym_do] = ACTIONS(4289),
    [sym_else] = ACTIONS(4289),
    [sym_finally] = ACTIONS(4289),
    [sym_function] = ACTIONS(4289),
    [sym_immutable] = ACTIONS(4289),
    [sym_import] = ACTIONS(4289),
    [sym_in] = ACTIONS(4289),
    [sym_inout] = ACTIONS(4289),
    [sym_is] = ACTIONS(4289),
    [sym_mixin] = ACTIONS(4289),
    [sym_new] = ACTIONS(4289),
    [sym_out] = ACTIONS(4289),
    [sym_ref] = ACTIONS(4289),
    [sym_shared] = ACTIONS(4289),
    [sym_throw] = ACTIONS(4289),
    [sym_typeid] = ACTIONS(4289),
    [sym_typeof] = ACTIONS(4289),
    [sym_traits] = ACTIONS(4289),
    [sym_vector] = ACTIONS(4289),
    [sym_void] = ACTIONS(4289),
    [anon_sym_BQUOTE] = ACTIONS(4291),
    [anon_sym_r_DQUOTE] = ACTIONS(4291),
    [anon_sym_x_DQUOTE] = ACTIONS(4291),
    [anon_sym_DQUOTE] = ACTIONS(4291),
    [anon_sym_i_BQUOTE] = ACTIONS(4291),
    [anon_sym_i_DQUOTE] = ACTIONS(4291),
    [anon_sym_iq_LBRACE] = ACTIONS(4291),
    [aux_sym_char_literal_token1] = ACTIONS(4291),
    [anon_sym_SQUOTE] = ACTIONS(4289),
    [anon_sym___DATE__] = ACTIONS(4289),
    [anon_sym___FILE__] = ACTIONS(4289),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4289),
    [anon_sym___FUNCTION__] = ACTIONS(4289),
    [anon_sym___LINE__] = ACTIONS(4289),
    [anon_sym___MODULE__] = ACTIONS(4289),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4289),
    [anon_sym___TIME__] = ACTIONS(4289),
    [anon_sym___TIMESTAMP__] = ACTIONS(4289),
    [anon_sym___VENDOR__] = ACTIONS(4289),
    [anon_sym___VERSION__] = ACTIONS(4289),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4291),
    [sym_float_literal] = ACTIONS(4291),
    [sym__string] = ACTIONS(4291),
  },
  [2262] = {
    [sym_identifier] = ACTIONS(5036),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5038),
    [anon_sym_LBRACE] = ACTIONS(5038),
    [anon_sym_DOT] = ACTIONS(5038),
    [anon_sym_AMP] = ACTIONS(5038),
    [anon_sym_DASH] = ACTIONS(5036),
    [anon_sym_DASH_DASH] = ACTIONS(5038),
    [anon_sym_PLUS] = ACTIONS(5036),
    [anon_sym_PLUS_PLUS] = ACTIONS(5038),
    [anon_sym_BANG] = ACTIONS(5038),
    [anon_sym_LPAREN] = ACTIONS(5038),
    [anon_sym_RPAREN] = ACTIONS(5038),
    [anon_sym_LBRACK] = ACTIONS(5038),
    [anon_sym_SEMI] = ACTIONS(5038),
    [anon_sym_DOLLAR] = ACTIONS(5038),
    [anon_sym_STAR] = ACTIONS(5038),
    [anon_sym_TILDE] = ACTIONS(5038),
    [sym_bool] = ACTIONS(5036),
    [sym_byte] = ACTIONS(5036),
    [sym_ubyte] = ACTIONS(5036),
    [sym_char] = ACTIONS(5036),
    [sym_short] = ACTIONS(5036),
    [sym_ushort] = ACTIONS(5036),
    [sym_int] = ACTIONS(5036),
    [sym_uint] = ACTIONS(5036),
    [sym_long] = ACTIONS(5036),
    [sym_ulong] = ACTIONS(5036),
    [sym_cent] = ACTIONS(5036),
    [sym_ucent] = ACTIONS(5036),
    [sym_wchar] = ACTIONS(5036),
    [sym_dchar] = ACTIONS(5036),
    [sym_float] = ACTIONS(5036),
    [sym_double] = ACTIONS(5036),
    [sym_real] = ACTIONS(5036),
    [sym_ifloat] = ACTIONS(5036),
    [sym_idouble] = ACTIONS(5036),
    [sym_ireal] = ACTIONS(5036),
    [sym_cfloat] = ACTIONS(5036),
    [sym_cdouble] = ACTIONS(5036),
    [sym_creal] = ACTIONS(5036),
    [sym_size_t] = ACTIONS(5036),
    [sym_ptrdiff_t] = ACTIONS(5036),
    [sym_string] = ACTIONS(5036),
    [sym_cstring] = ACTIONS(5036),
    [sym_dstring] = ACTIONS(5036),
    [sym_wstring] = ACTIONS(5036),
    [sym_noreturn] = ACTIONS(5036),
    [sym_true] = ACTIONS(5036),
    [sym_false] = ACTIONS(5036),
    [sym_null] = ACTIONS(5036),
    [sym_super] = ACTIONS(5036),
    [sym_this] = ACTIONS(5036),
    [sym_assert] = ACTIONS(5036),
    [sym_auto] = ACTIONS(5036),
    [sym_cast] = ACTIONS(5036),
    [sym_catch] = ACTIONS(5036),
    [sym_const] = ACTIONS(5036),
    [sym_delegate] = ACTIONS(5036),
    [sym_delete] = ACTIONS(5036),
    [sym_do] = ACTIONS(5036),
    [sym_else] = ACTIONS(5036),
    [sym_finally] = ACTIONS(5036),
    [sym_function] = ACTIONS(5036),
    [sym_immutable] = ACTIONS(5036),
    [sym_import] = ACTIONS(5036),
    [sym_in] = ACTIONS(5036),
    [sym_inout] = ACTIONS(5036),
    [sym_is] = ACTIONS(5036),
    [sym_mixin] = ACTIONS(5036),
    [sym_new] = ACTIONS(5036),
    [sym_out] = ACTIONS(5036),
    [sym_ref] = ACTIONS(5036),
    [sym_shared] = ACTIONS(5036),
    [sym_throw] = ACTIONS(5036),
    [sym_typeid] = ACTIONS(5036),
    [sym_typeof] = ACTIONS(5036),
    [sym_traits] = ACTIONS(5036),
    [sym_vector] = ACTIONS(5036),
    [sym_void] = ACTIONS(5036),
    [anon_sym_BQUOTE] = ACTIONS(5038),
    [anon_sym_r_DQUOTE] = ACTIONS(5038),
    [anon_sym_x_DQUOTE] = ACTIONS(5038),
    [anon_sym_DQUOTE] = ACTIONS(5038),
    [anon_sym_i_BQUOTE] = ACTIONS(5038),
    [anon_sym_i_DQUOTE] = ACTIONS(5038),
    [anon_sym_iq_LBRACE] = ACTIONS(5038),
    [aux_sym_char_literal_token1] = ACTIONS(5038),
    [anon_sym_SQUOTE] = ACTIONS(5036),
    [anon_sym___DATE__] = ACTIONS(5036),
    [anon_sym___FILE__] = ACTIONS(5036),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5036),
    [anon_sym___FUNCTION__] = ACTIONS(5036),
    [anon_sym___LINE__] = ACTIONS(5036),
    [anon_sym___MODULE__] = ACTIONS(5036),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5036),
    [anon_sym___TIME__] = ACTIONS(5036),
    [anon_sym___TIMESTAMP__] = ACTIONS(5036),
    [anon_sym___VENDOR__] = ACTIONS(5036),
    [anon_sym___VERSION__] = ACTIONS(5036),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5038),
    [sym_float_literal] = ACTIONS(5038),
    [sym__string] = ACTIONS(5038),
  },
  [2263] = {
    [sym_identifier] = ACTIONS(5060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5062),
    [anon_sym_LBRACE] = ACTIONS(5062),
    [anon_sym_DOT] = ACTIONS(5062),
    [anon_sym_AMP] = ACTIONS(5062),
    [anon_sym_DASH] = ACTIONS(5060),
    [anon_sym_DASH_DASH] = ACTIONS(5062),
    [anon_sym_PLUS] = ACTIONS(5060),
    [anon_sym_PLUS_PLUS] = ACTIONS(5062),
    [anon_sym_BANG] = ACTIONS(5062),
    [anon_sym_LPAREN] = ACTIONS(5062),
    [anon_sym_RPAREN] = ACTIONS(5062),
    [anon_sym_LBRACK] = ACTIONS(5062),
    [anon_sym_SEMI] = ACTIONS(5062),
    [anon_sym_DOLLAR] = ACTIONS(5062),
    [anon_sym_STAR] = ACTIONS(5062),
    [anon_sym_TILDE] = ACTIONS(5062),
    [sym_bool] = ACTIONS(5060),
    [sym_byte] = ACTIONS(5060),
    [sym_ubyte] = ACTIONS(5060),
    [sym_char] = ACTIONS(5060),
    [sym_short] = ACTIONS(5060),
    [sym_ushort] = ACTIONS(5060),
    [sym_int] = ACTIONS(5060),
    [sym_uint] = ACTIONS(5060),
    [sym_long] = ACTIONS(5060),
    [sym_ulong] = ACTIONS(5060),
    [sym_cent] = ACTIONS(5060),
    [sym_ucent] = ACTIONS(5060),
    [sym_wchar] = ACTIONS(5060),
    [sym_dchar] = ACTIONS(5060),
    [sym_float] = ACTIONS(5060),
    [sym_double] = ACTIONS(5060),
    [sym_real] = ACTIONS(5060),
    [sym_ifloat] = ACTIONS(5060),
    [sym_idouble] = ACTIONS(5060),
    [sym_ireal] = ACTIONS(5060),
    [sym_cfloat] = ACTIONS(5060),
    [sym_cdouble] = ACTIONS(5060),
    [sym_creal] = ACTIONS(5060),
    [sym_size_t] = ACTIONS(5060),
    [sym_ptrdiff_t] = ACTIONS(5060),
    [sym_string] = ACTIONS(5060),
    [sym_cstring] = ACTIONS(5060),
    [sym_dstring] = ACTIONS(5060),
    [sym_wstring] = ACTIONS(5060),
    [sym_noreturn] = ACTIONS(5060),
    [sym_true] = ACTIONS(5060),
    [sym_false] = ACTIONS(5060),
    [sym_null] = ACTIONS(5060),
    [sym_super] = ACTIONS(5060),
    [sym_this] = ACTIONS(5060),
    [sym_assert] = ACTIONS(5060),
    [sym_auto] = ACTIONS(5060),
    [sym_cast] = ACTIONS(5060),
    [sym_catch] = ACTIONS(5060),
    [sym_const] = ACTIONS(5060),
    [sym_delegate] = ACTIONS(5060),
    [sym_delete] = ACTIONS(5060),
    [sym_do] = ACTIONS(5060),
    [sym_else] = ACTIONS(5060),
    [sym_finally] = ACTIONS(5060),
    [sym_function] = ACTIONS(5060),
    [sym_immutable] = ACTIONS(5060),
    [sym_import] = ACTIONS(5060),
    [sym_in] = ACTIONS(5060),
    [sym_inout] = ACTIONS(5060),
    [sym_is] = ACTIONS(5060),
    [sym_mixin] = ACTIONS(5060),
    [sym_new] = ACTIONS(5060),
    [sym_out] = ACTIONS(5060),
    [sym_ref] = ACTIONS(5060),
    [sym_shared] = ACTIONS(5060),
    [sym_throw] = ACTIONS(5060),
    [sym_typeid] = ACTIONS(5060),
    [sym_typeof] = ACTIONS(5060),
    [sym_traits] = ACTIONS(5060),
    [sym_vector] = ACTIONS(5060),
    [sym_void] = ACTIONS(5060),
    [anon_sym_BQUOTE] = ACTIONS(5062),
    [anon_sym_r_DQUOTE] = ACTIONS(5062),
    [anon_sym_x_DQUOTE] = ACTIONS(5062),
    [anon_sym_DQUOTE] = ACTIONS(5062),
    [anon_sym_i_BQUOTE] = ACTIONS(5062),
    [anon_sym_i_DQUOTE] = ACTIONS(5062),
    [anon_sym_iq_LBRACE] = ACTIONS(5062),
    [aux_sym_char_literal_token1] = ACTIONS(5062),
    [anon_sym_SQUOTE] = ACTIONS(5060),
    [anon_sym___DATE__] = ACTIONS(5060),
    [anon_sym___FILE__] = ACTIONS(5060),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5060),
    [anon_sym___FUNCTION__] = ACTIONS(5060),
    [anon_sym___LINE__] = ACTIONS(5060),
    [anon_sym___MODULE__] = ACTIONS(5060),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5060),
    [anon_sym___TIME__] = ACTIONS(5060),
    [anon_sym___TIMESTAMP__] = ACTIONS(5060),
    [anon_sym___VENDOR__] = ACTIONS(5060),
    [anon_sym___VERSION__] = ACTIONS(5060),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5062),
    [sym_float_literal] = ACTIONS(5062),
    [sym__string] = ACTIONS(5062),
  },
  [2264] = {
    [sym_identifier] = ACTIONS(4650),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4652),
    [anon_sym_LBRACE] = ACTIONS(4652),
    [anon_sym_DOT] = ACTIONS(4652),
    [anon_sym_AMP] = ACTIONS(4652),
    [anon_sym_DASH] = ACTIONS(4650),
    [anon_sym_DASH_DASH] = ACTIONS(4652),
    [anon_sym_PLUS] = ACTIONS(4650),
    [anon_sym_PLUS_PLUS] = ACTIONS(4652),
    [anon_sym_BANG] = ACTIONS(4652),
    [anon_sym_LPAREN] = ACTIONS(4652),
    [anon_sym_RPAREN] = ACTIONS(4652),
    [anon_sym_LBRACK] = ACTIONS(4652),
    [anon_sym_SEMI] = ACTIONS(4652),
    [anon_sym_DOLLAR] = ACTIONS(4652),
    [anon_sym_STAR] = ACTIONS(4652),
    [anon_sym_TILDE] = ACTIONS(4652),
    [sym_bool] = ACTIONS(4650),
    [sym_byte] = ACTIONS(4650),
    [sym_ubyte] = ACTIONS(4650),
    [sym_char] = ACTIONS(4650),
    [sym_short] = ACTIONS(4650),
    [sym_ushort] = ACTIONS(4650),
    [sym_int] = ACTIONS(4650),
    [sym_uint] = ACTIONS(4650),
    [sym_long] = ACTIONS(4650),
    [sym_ulong] = ACTIONS(4650),
    [sym_cent] = ACTIONS(4650),
    [sym_ucent] = ACTIONS(4650),
    [sym_wchar] = ACTIONS(4650),
    [sym_dchar] = ACTIONS(4650),
    [sym_float] = ACTIONS(4650),
    [sym_double] = ACTIONS(4650),
    [sym_real] = ACTIONS(4650),
    [sym_ifloat] = ACTIONS(4650),
    [sym_idouble] = ACTIONS(4650),
    [sym_ireal] = ACTIONS(4650),
    [sym_cfloat] = ACTIONS(4650),
    [sym_cdouble] = ACTIONS(4650),
    [sym_creal] = ACTIONS(4650),
    [sym_size_t] = ACTIONS(4650),
    [sym_ptrdiff_t] = ACTIONS(4650),
    [sym_string] = ACTIONS(4650),
    [sym_cstring] = ACTIONS(4650),
    [sym_dstring] = ACTIONS(4650),
    [sym_wstring] = ACTIONS(4650),
    [sym_noreturn] = ACTIONS(4650),
    [sym_true] = ACTIONS(4650),
    [sym_false] = ACTIONS(4650),
    [sym_null] = ACTIONS(4650),
    [sym_super] = ACTIONS(4650),
    [sym_this] = ACTIONS(4650),
    [sym_assert] = ACTIONS(4650),
    [sym_auto] = ACTIONS(4650),
    [sym_cast] = ACTIONS(4650),
    [sym_catch] = ACTIONS(4650),
    [sym_const] = ACTIONS(4650),
    [sym_delegate] = ACTIONS(4650),
    [sym_delete] = ACTIONS(4650),
    [sym_do] = ACTIONS(4650),
    [sym_else] = ACTIONS(4650),
    [sym_finally] = ACTIONS(4650),
    [sym_function] = ACTIONS(4650),
    [sym_immutable] = ACTIONS(4650),
    [sym_import] = ACTIONS(4650),
    [sym_in] = ACTIONS(4650),
    [sym_inout] = ACTIONS(4650),
    [sym_is] = ACTIONS(4650),
    [sym_mixin] = ACTIONS(4650),
    [sym_new] = ACTIONS(4650),
    [sym_out] = ACTIONS(4650),
    [sym_ref] = ACTIONS(4650),
    [sym_shared] = ACTIONS(4650),
    [sym_throw] = ACTIONS(4650),
    [sym_typeid] = ACTIONS(4650),
    [sym_typeof] = ACTIONS(4650),
    [sym_traits] = ACTIONS(4650),
    [sym_vector] = ACTIONS(4650),
    [sym_void] = ACTIONS(4650),
    [anon_sym_BQUOTE] = ACTIONS(4652),
    [anon_sym_r_DQUOTE] = ACTIONS(4652),
    [anon_sym_x_DQUOTE] = ACTIONS(4652),
    [anon_sym_DQUOTE] = ACTIONS(4652),
    [anon_sym_i_BQUOTE] = ACTIONS(4652),
    [anon_sym_i_DQUOTE] = ACTIONS(4652),
    [anon_sym_iq_LBRACE] = ACTIONS(4652),
    [aux_sym_char_literal_token1] = ACTIONS(4652),
    [anon_sym_SQUOTE] = ACTIONS(4650),
    [anon_sym___DATE__] = ACTIONS(4650),
    [anon_sym___FILE__] = ACTIONS(4650),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4650),
    [anon_sym___FUNCTION__] = ACTIONS(4650),
    [anon_sym___LINE__] = ACTIONS(4650),
    [anon_sym___MODULE__] = ACTIONS(4650),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4650),
    [anon_sym___TIME__] = ACTIONS(4650),
    [anon_sym___TIMESTAMP__] = ACTIONS(4650),
    [anon_sym___VENDOR__] = ACTIONS(4650),
    [anon_sym___VERSION__] = ACTIONS(4650),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4652),
    [sym_float_literal] = ACTIONS(4652),
    [sym__string] = ACTIONS(4652),
  },
  [2265] = {
    [sym_identifier] = ACTIONS(4285),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4287),
    [anon_sym_LBRACE] = ACTIONS(4287),
    [anon_sym_DOT] = ACTIONS(4287),
    [anon_sym_AMP] = ACTIONS(4287),
    [anon_sym_DASH] = ACTIONS(4285),
    [anon_sym_DASH_DASH] = ACTIONS(4287),
    [anon_sym_PLUS] = ACTIONS(4285),
    [anon_sym_PLUS_PLUS] = ACTIONS(4287),
    [anon_sym_BANG] = ACTIONS(4287),
    [anon_sym_LPAREN] = ACTIONS(4287),
    [anon_sym_RPAREN] = ACTIONS(4287),
    [anon_sym_LBRACK] = ACTIONS(4287),
    [anon_sym_SEMI] = ACTIONS(4287),
    [anon_sym_DOLLAR] = ACTIONS(4287),
    [anon_sym_STAR] = ACTIONS(4287),
    [anon_sym_TILDE] = ACTIONS(4287),
    [sym_bool] = ACTIONS(4285),
    [sym_byte] = ACTIONS(4285),
    [sym_ubyte] = ACTIONS(4285),
    [sym_char] = ACTIONS(4285),
    [sym_short] = ACTIONS(4285),
    [sym_ushort] = ACTIONS(4285),
    [sym_int] = ACTIONS(4285),
    [sym_uint] = ACTIONS(4285),
    [sym_long] = ACTIONS(4285),
    [sym_ulong] = ACTIONS(4285),
    [sym_cent] = ACTIONS(4285),
    [sym_ucent] = ACTIONS(4285),
    [sym_wchar] = ACTIONS(4285),
    [sym_dchar] = ACTIONS(4285),
    [sym_float] = ACTIONS(4285),
    [sym_double] = ACTIONS(4285),
    [sym_real] = ACTIONS(4285),
    [sym_ifloat] = ACTIONS(4285),
    [sym_idouble] = ACTIONS(4285),
    [sym_ireal] = ACTIONS(4285),
    [sym_cfloat] = ACTIONS(4285),
    [sym_cdouble] = ACTIONS(4285),
    [sym_creal] = ACTIONS(4285),
    [sym_size_t] = ACTIONS(4285),
    [sym_ptrdiff_t] = ACTIONS(4285),
    [sym_string] = ACTIONS(4285),
    [sym_cstring] = ACTIONS(4285),
    [sym_dstring] = ACTIONS(4285),
    [sym_wstring] = ACTIONS(4285),
    [sym_noreturn] = ACTIONS(4285),
    [sym_true] = ACTIONS(4285),
    [sym_false] = ACTIONS(4285),
    [sym_null] = ACTIONS(4285),
    [sym_super] = ACTIONS(4285),
    [sym_this] = ACTIONS(4285),
    [sym_assert] = ACTIONS(4285),
    [sym_auto] = ACTIONS(4285),
    [sym_cast] = ACTIONS(4285),
    [sym_catch] = ACTIONS(4285),
    [sym_const] = ACTIONS(4285),
    [sym_delegate] = ACTIONS(4285),
    [sym_delete] = ACTIONS(4285),
    [sym_do] = ACTIONS(4285),
    [sym_else] = ACTIONS(4285),
    [sym_finally] = ACTIONS(4285),
    [sym_function] = ACTIONS(4285),
    [sym_immutable] = ACTIONS(4285),
    [sym_import] = ACTIONS(4285),
    [sym_in] = ACTIONS(4285),
    [sym_inout] = ACTIONS(4285),
    [sym_is] = ACTIONS(4285),
    [sym_mixin] = ACTIONS(4285),
    [sym_new] = ACTIONS(4285),
    [sym_out] = ACTIONS(4285),
    [sym_ref] = ACTIONS(4285),
    [sym_shared] = ACTIONS(4285),
    [sym_throw] = ACTIONS(4285),
    [sym_typeid] = ACTIONS(4285),
    [sym_typeof] = ACTIONS(4285),
    [sym_traits] = ACTIONS(4285),
    [sym_vector] = ACTIONS(4285),
    [sym_void] = ACTIONS(4285),
    [anon_sym_BQUOTE] = ACTIONS(4287),
    [anon_sym_r_DQUOTE] = ACTIONS(4287),
    [anon_sym_x_DQUOTE] = ACTIONS(4287),
    [anon_sym_DQUOTE] = ACTIONS(4287),
    [anon_sym_i_BQUOTE] = ACTIONS(4287),
    [anon_sym_i_DQUOTE] = ACTIONS(4287),
    [anon_sym_iq_LBRACE] = ACTIONS(4287),
    [aux_sym_char_literal_token1] = ACTIONS(4287),
    [anon_sym_SQUOTE] = ACTIONS(4285),
    [anon_sym___DATE__] = ACTIONS(4285),
    [anon_sym___FILE__] = ACTIONS(4285),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4285),
    [anon_sym___FUNCTION__] = ACTIONS(4285),
    [anon_sym___LINE__] = ACTIONS(4285),
    [anon_sym___MODULE__] = ACTIONS(4285),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4285),
    [anon_sym___TIME__] = ACTIONS(4285),
    [anon_sym___TIMESTAMP__] = ACTIONS(4285),
    [anon_sym___VENDOR__] = ACTIONS(4285),
    [anon_sym___VERSION__] = ACTIONS(4285),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4287),
    [sym_float_literal] = ACTIONS(4287),
    [sym__string] = ACTIONS(4287),
  },
  [2266] = {
    [sym_identifier] = ACTIONS(4662),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4664),
    [anon_sym_LBRACE] = ACTIONS(4664),
    [anon_sym_DOT] = ACTIONS(4664),
    [anon_sym_AMP] = ACTIONS(4664),
    [anon_sym_DASH] = ACTIONS(4662),
    [anon_sym_DASH_DASH] = ACTIONS(4664),
    [anon_sym_PLUS] = ACTIONS(4662),
    [anon_sym_PLUS_PLUS] = ACTIONS(4664),
    [anon_sym_BANG] = ACTIONS(4664),
    [anon_sym_LPAREN] = ACTIONS(4664),
    [anon_sym_RPAREN] = ACTIONS(4664),
    [anon_sym_LBRACK] = ACTIONS(4664),
    [anon_sym_SEMI] = ACTIONS(4664),
    [anon_sym_DOLLAR] = ACTIONS(4664),
    [anon_sym_STAR] = ACTIONS(4664),
    [anon_sym_TILDE] = ACTIONS(4664),
    [sym_bool] = ACTIONS(4662),
    [sym_byte] = ACTIONS(4662),
    [sym_ubyte] = ACTIONS(4662),
    [sym_char] = ACTIONS(4662),
    [sym_short] = ACTIONS(4662),
    [sym_ushort] = ACTIONS(4662),
    [sym_int] = ACTIONS(4662),
    [sym_uint] = ACTIONS(4662),
    [sym_long] = ACTIONS(4662),
    [sym_ulong] = ACTIONS(4662),
    [sym_cent] = ACTIONS(4662),
    [sym_ucent] = ACTIONS(4662),
    [sym_wchar] = ACTIONS(4662),
    [sym_dchar] = ACTIONS(4662),
    [sym_float] = ACTIONS(4662),
    [sym_double] = ACTIONS(4662),
    [sym_real] = ACTIONS(4662),
    [sym_ifloat] = ACTIONS(4662),
    [sym_idouble] = ACTIONS(4662),
    [sym_ireal] = ACTIONS(4662),
    [sym_cfloat] = ACTIONS(4662),
    [sym_cdouble] = ACTIONS(4662),
    [sym_creal] = ACTIONS(4662),
    [sym_size_t] = ACTIONS(4662),
    [sym_ptrdiff_t] = ACTIONS(4662),
    [sym_string] = ACTIONS(4662),
    [sym_cstring] = ACTIONS(4662),
    [sym_dstring] = ACTIONS(4662),
    [sym_wstring] = ACTIONS(4662),
    [sym_noreturn] = ACTIONS(4662),
    [sym_true] = ACTIONS(4662),
    [sym_false] = ACTIONS(4662),
    [sym_null] = ACTIONS(4662),
    [sym_super] = ACTIONS(4662),
    [sym_this] = ACTIONS(4662),
    [sym_assert] = ACTIONS(4662),
    [sym_auto] = ACTIONS(4662),
    [sym_cast] = ACTIONS(4662),
    [sym_catch] = ACTIONS(4662),
    [sym_const] = ACTIONS(4662),
    [sym_delegate] = ACTIONS(4662),
    [sym_delete] = ACTIONS(4662),
    [sym_do] = ACTIONS(4662),
    [sym_else] = ACTIONS(4662),
    [sym_finally] = ACTIONS(4662),
    [sym_function] = ACTIONS(4662),
    [sym_immutable] = ACTIONS(4662),
    [sym_import] = ACTIONS(4662),
    [sym_in] = ACTIONS(4662),
    [sym_inout] = ACTIONS(4662),
    [sym_is] = ACTIONS(4662),
    [sym_mixin] = ACTIONS(4662),
    [sym_new] = ACTIONS(4662),
    [sym_out] = ACTIONS(4662),
    [sym_ref] = ACTIONS(4662),
    [sym_shared] = ACTIONS(4662),
    [sym_throw] = ACTIONS(4662),
    [sym_typeid] = ACTIONS(4662),
    [sym_typeof] = ACTIONS(4662),
    [sym_traits] = ACTIONS(4662),
    [sym_vector] = ACTIONS(4662),
    [sym_void] = ACTIONS(4662),
    [anon_sym_BQUOTE] = ACTIONS(4664),
    [anon_sym_r_DQUOTE] = ACTIONS(4664),
    [anon_sym_x_DQUOTE] = ACTIONS(4664),
    [anon_sym_DQUOTE] = ACTIONS(4664),
    [anon_sym_i_BQUOTE] = ACTIONS(4664),
    [anon_sym_i_DQUOTE] = ACTIONS(4664),
    [anon_sym_iq_LBRACE] = ACTIONS(4664),
    [aux_sym_char_literal_token1] = ACTIONS(4664),
    [anon_sym_SQUOTE] = ACTIONS(4662),
    [anon_sym___DATE__] = ACTIONS(4662),
    [anon_sym___FILE__] = ACTIONS(4662),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4662),
    [anon_sym___FUNCTION__] = ACTIONS(4662),
    [anon_sym___LINE__] = ACTIONS(4662),
    [anon_sym___MODULE__] = ACTIONS(4662),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4662),
    [anon_sym___TIME__] = ACTIONS(4662),
    [anon_sym___TIMESTAMP__] = ACTIONS(4662),
    [anon_sym___VENDOR__] = ACTIONS(4662),
    [anon_sym___VERSION__] = ACTIONS(4662),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4664),
    [sym_float_literal] = ACTIONS(4664),
    [sym__string] = ACTIONS(4664),
  },
  [2267] = {
    [sym_identifier] = ACTIONS(4670),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4672),
    [anon_sym_LBRACE] = ACTIONS(4672),
    [anon_sym_DOT] = ACTIONS(4672),
    [anon_sym_AMP] = ACTIONS(4672),
    [anon_sym_DASH] = ACTIONS(4670),
    [anon_sym_DASH_DASH] = ACTIONS(4672),
    [anon_sym_PLUS] = ACTIONS(4670),
    [anon_sym_PLUS_PLUS] = ACTIONS(4672),
    [anon_sym_BANG] = ACTIONS(4672),
    [anon_sym_LPAREN] = ACTIONS(4672),
    [anon_sym_RPAREN] = ACTIONS(4672),
    [anon_sym_LBRACK] = ACTIONS(4672),
    [anon_sym_SEMI] = ACTIONS(4672),
    [anon_sym_DOLLAR] = ACTIONS(4672),
    [anon_sym_STAR] = ACTIONS(4672),
    [anon_sym_TILDE] = ACTIONS(4672),
    [sym_bool] = ACTIONS(4670),
    [sym_byte] = ACTIONS(4670),
    [sym_ubyte] = ACTIONS(4670),
    [sym_char] = ACTIONS(4670),
    [sym_short] = ACTIONS(4670),
    [sym_ushort] = ACTIONS(4670),
    [sym_int] = ACTIONS(4670),
    [sym_uint] = ACTIONS(4670),
    [sym_long] = ACTIONS(4670),
    [sym_ulong] = ACTIONS(4670),
    [sym_cent] = ACTIONS(4670),
    [sym_ucent] = ACTIONS(4670),
    [sym_wchar] = ACTIONS(4670),
    [sym_dchar] = ACTIONS(4670),
    [sym_float] = ACTIONS(4670),
    [sym_double] = ACTIONS(4670),
    [sym_real] = ACTIONS(4670),
    [sym_ifloat] = ACTIONS(4670),
    [sym_idouble] = ACTIONS(4670),
    [sym_ireal] = ACTIONS(4670),
    [sym_cfloat] = ACTIONS(4670),
    [sym_cdouble] = ACTIONS(4670),
    [sym_creal] = ACTIONS(4670),
    [sym_size_t] = ACTIONS(4670),
    [sym_ptrdiff_t] = ACTIONS(4670),
    [sym_string] = ACTIONS(4670),
    [sym_cstring] = ACTIONS(4670),
    [sym_dstring] = ACTIONS(4670),
    [sym_wstring] = ACTIONS(4670),
    [sym_noreturn] = ACTIONS(4670),
    [sym_true] = ACTIONS(4670),
    [sym_false] = ACTIONS(4670),
    [sym_null] = ACTIONS(4670),
    [sym_super] = ACTIONS(4670),
    [sym_this] = ACTIONS(4670),
    [sym_assert] = ACTIONS(4670),
    [sym_auto] = ACTIONS(4670),
    [sym_cast] = ACTIONS(4670),
    [sym_catch] = ACTIONS(4670),
    [sym_const] = ACTIONS(4670),
    [sym_delegate] = ACTIONS(4670),
    [sym_delete] = ACTIONS(4670),
    [sym_do] = ACTIONS(4670),
    [sym_else] = ACTIONS(4670),
    [sym_finally] = ACTIONS(4670),
    [sym_function] = ACTIONS(4670),
    [sym_immutable] = ACTIONS(4670),
    [sym_import] = ACTIONS(4670),
    [sym_in] = ACTIONS(4670),
    [sym_inout] = ACTIONS(4670),
    [sym_is] = ACTIONS(4670),
    [sym_mixin] = ACTIONS(4670),
    [sym_new] = ACTIONS(4670),
    [sym_out] = ACTIONS(4670),
    [sym_ref] = ACTIONS(4670),
    [sym_shared] = ACTIONS(4670),
    [sym_throw] = ACTIONS(4670),
    [sym_typeid] = ACTIONS(4670),
    [sym_typeof] = ACTIONS(4670),
    [sym_traits] = ACTIONS(4670),
    [sym_vector] = ACTIONS(4670),
    [sym_void] = ACTIONS(4670),
    [anon_sym_BQUOTE] = ACTIONS(4672),
    [anon_sym_r_DQUOTE] = ACTIONS(4672),
    [anon_sym_x_DQUOTE] = ACTIONS(4672),
    [anon_sym_DQUOTE] = ACTIONS(4672),
    [anon_sym_i_BQUOTE] = ACTIONS(4672),
    [anon_sym_i_DQUOTE] = ACTIONS(4672),
    [anon_sym_iq_LBRACE] = ACTIONS(4672),
    [aux_sym_char_literal_token1] = ACTIONS(4672),
    [anon_sym_SQUOTE] = ACTIONS(4670),
    [anon_sym___DATE__] = ACTIONS(4670),
    [anon_sym___FILE__] = ACTIONS(4670),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4670),
    [anon_sym___FUNCTION__] = ACTIONS(4670),
    [anon_sym___LINE__] = ACTIONS(4670),
    [anon_sym___MODULE__] = ACTIONS(4670),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4670),
    [anon_sym___TIME__] = ACTIONS(4670),
    [anon_sym___TIMESTAMP__] = ACTIONS(4670),
    [anon_sym___VENDOR__] = ACTIONS(4670),
    [anon_sym___VERSION__] = ACTIONS(4670),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4672),
    [sym_float_literal] = ACTIONS(4672),
    [sym__string] = ACTIONS(4672),
  },
  [2268] = {
    [sym_identifier] = ACTIONS(4674),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4676),
    [anon_sym_LBRACE] = ACTIONS(4676),
    [anon_sym_DOT] = ACTIONS(4676),
    [anon_sym_AMP] = ACTIONS(4676),
    [anon_sym_DASH] = ACTIONS(4674),
    [anon_sym_DASH_DASH] = ACTIONS(4676),
    [anon_sym_PLUS] = ACTIONS(4674),
    [anon_sym_PLUS_PLUS] = ACTIONS(4676),
    [anon_sym_BANG] = ACTIONS(4676),
    [anon_sym_LPAREN] = ACTIONS(4676),
    [anon_sym_RPAREN] = ACTIONS(4676),
    [anon_sym_LBRACK] = ACTIONS(4676),
    [anon_sym_SEMI] = ACTIONS(4676),
    [anon_sym_DOLLAR] = ACTIONS(4676),
    [anon_sym_STAR] = ACTIONS(4676),
    [anon_sym_TILDE] = ACTIONS(4676),
    [sym_bool] = ACTIONS(4674),
    [sym_byte] = ACTIONS(4674),
    [sym_ubyte] = ACTIONS(4674),
    [sym_char] = ACTIONS(4674),
    [sym_short] = ACTIONS(4674),
    [sym_ushort] = ACTIONS(4674),
    [sym_int] = ACTIONS(4674),
    [sym_uint] = ACTIONS(4674),
    [sym_long] = ACTIONS(4674),
    [sym_ulong] = ACTIONS(4674),
    [sym_cent] = ACTIONS(4674),
    [sym_ucent] = ACTIONS(4674),
    [sym_wchar] = ACTIONS(4674),
    [sym_dchar] = ACTIONS(4674),
    [sym_float] = ACTIONS(4674),
    [sym_double] = ACTIONS(4674),
    [sym_real] = ACTIONS(4674),
    [sym_ifloat] = ACTIONS(4674),
    [sym_idouble] = ACTIONS(4674),
    [sym_ireal] = ACTIONS(4674),
    [sym_cfloat] = ACTIONS(4674),
    [sym_cdouble] = ACTIONS(4674),
    [sym_creal] = ACTIONS(4674),
    [sym_size_t] = ACTIONS(4674),
    [sym_ptrdiff_t] = ACTIONS(4674),
    [sym_string] = ACTIONS(4674),
    [sym_cstring] = ACTIONS(4674),
    [sym_dstring] = ACTIONS(4674),
    [sym_wstring] = ACTIONS(4674),
    [sym_noreturn] = ACTIONS(4674),
    [sym_true] = ACTIONS(4674),
    [sym_false] = ACTIONS(4674),
    [sym_null] = ACTIONS(4674),
    [sym_super] = ACTIONS(4674),
    [sym_this] = ACTIONS(4674),
    [sym_assert] = ACTIONS(4674),
    [sym_auto] = ACTIONS(4674),
    [sym_cast] = ACTIONS(4674),
    [sym_catch] = ACTIONS(4674),
    [sym_const] = ACTIONS(4674),
    [sym_delegate] = ACTIONS(4674),
    [sym_delete] = ACTIONS(4674),
    [sym_do] = ACTIONS(4674),
    [sym_else] = ACTIONS(4674),
    [sym_finally] = ACTIONS(4674),
    [sym_function] = ACTIONS(4674),
    [sym_immutable] = ACTIONS(4674),
    [sym_import] = ACTIONS(4674),
    [sym_in] = ACTIONS(4674),
    [sym_inout] = ACTIONS(4674),
    [sym_is] = ACTIONS(4674),
    [sym_mixin] = ACTIONS(4674),
    [sym_new] = ACTIONS(4674),
    [sym_out] = ACTIONS(4674),
    [sym_ref] = ACTIONS(4674),
    [sym_shared] = ACTIONS(4674),
    [sym_throw] = ACTIONS(4674),
    [sym_typeid] = ACTIONS(4674),
    [sym_typeof] = ACTIONS(4674),
    [sym_traits] = ACTIONS(4674),
    [sym_vector] = ACTIONS(4674),
    [sym_void] = ACTIONS(4674),
    [anon_sym_BQUOTE] = ACTIONS(4676),
    [anon_sym_r_DQUOTE] = ACTIONS(4676),
    [anon_sym_x_DQUOTE] = ACTIONS(4676),
    [anon_sym_DQUOTE] = ACTIONS(4676),
    [anon_sym_i_BQUOTE] = ACTIONS(4676),
    [anon_sym_i_DQUOTE] = ACTIONS(4676),
    [anon_sym_iq_LBRACE] = ACTIONS(4676),
    [aux_sym_char_literal_token1] = ACTIONS(4676),
    [anon_sym_SQUOTE] = ACTIONS(4674),
    [anon_sym___DATE__] = ACTIONS(4674),
    [anon_sym___FILE__] = ACTIONS(4674),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4674),
    [anon_sym___FUNCTION__] = ACTIONS(4674),
    [anon_sym___LINE__] = ACTIONS(4674),
    [anon_sym___MODULE__] = ACTIONS(4674),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4674),
    [anon_sym___TIME__] = ACTIONS(4674),
    [anon_sym___TIMESTAMP__] = ACTIONS(4674),
    [anon_sym___VENDOR__] = ACTIONS(4674),
    [anon_sym___VERSION__] = ACTIONS(4674),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4676),
    [sym_float_literal] = ACTIONS(4676),
    [sym__string] = ACTIONS(4676),
  },
  [2269] = {
    [sym_identifier] = ACTIONS(4682),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4684),
    [anon_sym_LBRACE] = ACTIONS(4684),
    [anon_sym_DOT] = ACTIONS(4684),
    [anon_sym_AMP] = ACTIONS(4684),
    [anon_sym_DASH] = ACTIONS(4682),
    [anon_sym_DASH_DASH] = ACTIONS(4684),
    [anon_sym_PLUS] = ACTIONS(4682),
    [anon_sym_PLUS_PLUS] = ACTIONS(4684),
    [anon_sym_BANG] = ACTIONS(4684),
    [anon_sym_LPAREN] = ACTIONS(4684),
    [anon_sym_RPAREN] = ACTIONS(4684),
    [anon_sym_LBRACK] = ACTIONS(4684),
    [anon_sym_SEMI] = ACTIONS(4684),
    [anon_sym_DOLLAR] = ACTIONS(4684),
    [anon_sym_STAR] = ACTIONS(4684),
    [anon_sym_TILDE] = ACTIONS(4684),
    [sym_bool] = ACTIONS(4682),
    [sym_byte] = ACTIONS(4682),
    [sym_ubyte] = ACTIONS(4682),
    [sym_char] = ACTIONS(4682),
    [sym_short] = ACTIONS(4682),
    [sym_ushort] = ACTIONS(4682),
    [sym_int] = ACTIONS(4682),
    [sym_uint] = ACTIONS(4682),
    [sym_long] = ACTIONS(4682),
    [sym_ulong] = ACTIONS(4682),
    [sym_cent] = ACTIONS(4682),
    [sym_ucent] = ACTIONS(4682),
    [sym_wchar] = ACTIONS(4682),
    [sym_dchar] = ACTIONS(4682),
    [sym_float] = ACTIONS(4682),
    [sym_double] = ACTIONS(4682),
    [sym_real] = ACTIONS(4682),
    [sym_ifloat] = ACTIONS(4682),
    [sym_idouble] = ACTIONS(4682),
    [sym_ireal] = ACTIONS(4682),
    [sym_cfloat] = ACTIONS(4682),
    [sym_cdouble] = ACTIONS(4682),
    [sym_creal] = ACTIONS(4682),
    [sym_size_t] = ACTIONS(4682),
    [sym_ptrdiff_t] = ACTIONS(4682),
    [sym_string] = ACTIONS(4682),
    [sym_cstring] = ACTIONS(4682),
    [sym_dstring] = ACTIONS(4682),
    [sym_wstring] = ACTIONS(4682),
    [sym_noreturn] = ACTIONS(4682),
    [sym_true] = ACTIONS(4682),
    [sym_false] = ACTIONS(4682),
    [sym_null] = ACTIONS(4682),
    [sym_super] = ACTIONS(4682),
    [sym_this] = ACTIONS(4682),
    [sym_assert] = ACTIONS(4682),
    [sym_auto] = ACTIONS(4682),
    [sym_cast] = ACTIONS(4682),
    [sym_catch] = ACTIONS(4682),
    [sym_const] = ACTIONS(4682),
    [sym_delegate] = ACTIONS(4682),
    [sym_delete] = ACTIONS(4682),
    [sym_do] = ACTIONS(4682),
    [sym_else] = ACTIONS(4682),
    [sym_finally] = ACTIONS(4682),
    [sym_function] = ACTIONS(4682),
    [sym_immutable] = ACTIONS(4682),
    [sym_import] = ACTIONS(4682),
    [sym_in] = ACTIONS(4682),
    [sym_inout] = ACTIONS(4682),
    [sym_is] = ACTIONS(4682),
    [sym_mixin] = ACTIONS(4682),
    [sym_new] = ACTIONS(4682),
    [sym_out] = ACTIONS(4682),
    [sym_ref] = ACTIONS(4682),
    [sym_shared] = ACTIONS(4682),
    [sym_throw] = ACTIONS(4682),
    [sym_typeid] = ACTIONS(4682),
    [sym_typeof] = ACTIONS(4682),
    [sym_traits] = ACTIONS(4682),
    [sym_vector] = ACTIONS(4682),
    [sym_void] = ACTIONS(4682),
    [anon_sym_BQUOTE] = ACTIONS(4684),
    [anon_sym_r_DQUOTE] = ACTIONS(4684),
    [anon_sym_x_DQUOTE] = ACTIONS(4684),
    [anon_sym_DQUOTE] = ACTIONS(4684),
    [anon_sym_i_BQUOTE] = ACTIONS(4684),
    [anon_sym_i_DQUOTE] = ACTIONS(4684),
    [anon_sym_iq_LBRACE] = ACTIONS(4684),
    [aux_sym_char_literal_token1] = ACTIONS(4684),
    [anon_sym_SQUOTE] = ACTIONS(4682),
    [anon_sym___DATE__] = ACTIONS(4682),
    [anon_sym___FILE__] = ACTIONS(4682),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4682),
    [anon_sym___FUNCTION__] = ACTIONS(4682),
    [anon_sym___LINE__] = ACTIONS(4682),
    [anon_sym___MODULE__] = ACTIONS(4682),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4682),
    [anon_sym___TIME__] = ACTIONS(4682),
    [anon_sym___TIMESTAMP__] = ACTIONS(4682),
    [anon_sym___VENDOR__] = ACTIONS(4682),
    [anon_sym___VERSION__] = ACTIONS(4682),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4684),
    [sym_float_literal] = ACTIONS(4684),
    [sym__string] = ACTIONS(4684),
  },
  [2270] = {
    [sym_identifier] = ACTIONS(4686),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4688),
    [anon_sym_LBRACE] = ACTIONS(4688),
    [anon_sym_DOT] = ACTIONS(4688),
    [anon_sym_AMP] = ACTIONS(4688),
    [anon_sym_DASH] = ACTIONS(4686),
    [anon_sym_DASH_DASH] = ACTIONS(4688),
    [anon_sym_PLUS] = ACTIONS(4686),
    [anon_sym_PLUS_PLUS] = ACTIONS(4688),
    [anon_sym_BANG] = ACTIONS(4688),
    [anon_sym_LPAREN] = ACTIONS(4688),
    [anon_sym_RPAREN] = ACTIONS(4688),
    [anon_sym_LBRACK] = ACTIONS(4688),
    [anon_sym_SEMI] = ACTIONS(4688),
    [anon_sym_DOLLAR] = ACTIONS(4688),
    [anon_sym_STAR] = ACTIONS(4688),
    [anon_sym_TILDE] = ACTIONS(4688),
    [sym_bool] = ACTIONS(4686),
    [sym_byte] = ACTIONS(4686),
    [sym_ubyte] = ACTIONS(4686),
    [sym_char] = ACTIONS(4686),
    [sym_short] = ACTIONS(4686),
    [sym_ushort] = ACTIONS(4686),
    [sym_int] = ACTIONS(4686),
    [sym_uint] = ACTIONS(4686),
    [sym_long] = ACTIONS(4686),
    [sym_ulong] = ACTIONS(4686),
    [sym_cent] = ACTIONS(4686),
    [sym_ucent] = ACTIONS(4686),
    [sym_wchar] = ACTIONS(4686),
    [sym_dchar] = ACTIONS(4686),
    [sym_float] = ACTIONS(4686),
    [sym_double] = ACTIONS(4686),
    [sym_real] = ACTIONS(4686),
    [sym_ifloat] = ACTIONS(4686),
    [sym_idouble] = ACTIONS(4686),
    [sym_ireal] = ACTIONS(4686),
    [sym_cfloat] = ACTIONS(4686),
    [sym_cdouble] = ACTIONS(4686),
    [sym_creal] = ACTIONS(4686),
    [sym_size_t] = ACTIONS(4686),
    [sym_ptrdiff_t] = ACTIONS(4686),
    [sym_string] = ACTIONS(4686),
    [sym_cstring] = ACTIONS(4686),
    [sym_dstring] = ACTIONS(4686),
    [sym_wstring] = ACTIONS(4686),
    [sym_noreturn] = ACTIONS(4686),
    [sym_true] = ACTIONS(4686),
    [sym_false] = ACTIONS(4686),
    [sym_null] = ACTIONS(4686),
    [sym_super] = ACTIONS(4686),
    [sym_this] = ACTIONS(4686),
    [sym_assert] = ACTIONS(4686),
    [sym_auto] = ACTIONS(4686),
    [sym_cast] = ACTIONS(4686),
    [sym_catch] = ACTIONS(4686),
    [sym_const] = ACTIONS(4686),
    [sym_delegate] = ACTIONS(4686),
    [sym_delete] = ACTIONS(4686),
    [sym_do] = ACTIONS(4686),
    [sym_else] = ACTIONS(4686),
    [sym_finally] = ACTIONS(4686),
    [sym_function] = ACTIONS(4686),
    [sym_immutable] = ACTIONS(4686),
    [sym_import] = ACTIONS(4686),
    [sym_in] = ACTIONS(4686),
    [sym_inout] = ACTIONS(4686),
    [sym_is] = ACTIONS(4686),
    [sym_mixin] = ACTIONS(4686),
    [sym_new] = ACTIONS(4686),
    [sym_out] = ACTIONS(4686),
    [sym_ref] = ACTIONS(4686),
    [sym_shared] = ACTIONS(4686),
    [sym_throw] = ACTIONS(4686),
    [sym_typeid] = ACTIONS(4686),
    [sym_typeof] = ACTIONS(4686),
    [sym_traits] = ACTIONS(4686),
    [sym_vector] = ACTIONS(4686),
    [sym_void] = ACTIONS(4686),
    [anon_sym_BQUOTE] = ACTIONS(4688),
    [anon_sym_r_DQUOTE] = ACTIONS(4688),
    [anon_sym_x_DQUOTE] = ACTIONS(4688),
    [anon_sym_DQUOTE] = ACTIONS(4688),
    [anon_sym_i_BQUOTE] = ACTIONS(4688),
    [anon_sym_i_DQUOTE] = ACTIONS(4688),
    [anon_sym_iq_LBRACE] = ACTIONS(4688),
    [aux_sym_char_literal_token1] = ACTIONS(4688),
    [anon_sym_SQUOTE] = ACTIONS(4686),
    [anon_sym___DATE__] = ACTIONS(4686),
    [anon_sym___FILE__] = ACTIONS(4686),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4686),
    [anon_sym___FUNCTION__] = ACTIONS(4686),
    [anon_sym___LINE__] = ACTIONS(4686),
    [anon_sym___MODULE__] = ACTIONS(4686),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4686),
    [anon_sym___TIME__] = ACTIONS(4686),
    [anon_sym___TIMESTAMP__] = ACTIONS(4686),
    [anon_sym___VENDOR__] = ACTIONS(4686),
    [anon_sym___VERSION__] = ACTIONS(4686),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4688),
    [sym_float_literal] = ACTIONS(4688),
    [sym__string] = ACTIONS(4688),
  },
  [2271] = {
    [sym_identifier] = ACTIONS(4704),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4706),
    [anon_sym_LBRACE] = ACTIONS(4706),
    [anon_sym_DOT] = ACTIONS(4706),
    [anon_sym_AMP] = ACTIONS(4706),
    [anon_sym_DASH] = ACTIONS(4704),
    [anon_sym_DASH_DASH] = ACTIONS(4706),
    [anon_sym_PLUS] = ACTIONS(4704),
    [anon_sym_PLUS_PLUS] = ACTIONS(4706),
    [anon_sym_BANG] = ACTIONS(4706),
    [anon_sym_LPAREN] = ACTIONS(4706),
    [anon_sym_RPAREN] = ACTIONS(4706),
    [anon_sym_LBRACK] = ACTIONS(4706),
    [anon_sym_SEMI] = ACTIONS(4706),
    [anon_sym_DOLLAR] = ACTIONS(4706),
    [anon_sym_STAR] = ACTIONS(4706),
    [anon_sym_TILDE] = ACTIONS(4706),
    [sym_bool] = ACTIONS(4704),
    [sym_byte] = ACTIONS(4704),
    [sym_ubyte] = ACTIONS(4704),
    [sym_char] = ACTIONS(4704),
    [sym_short] = ACTIONS(4704),
    [sym_ushort] = ACTIONS(4704),
    [sym_int] = ACTIONS(4704),
    [sym_uint] = ACTIONS(4704),
    [sym_long] = ACTIONS(4704),
    [sym_ulong] = ACTIONS(4704),
    [sym_cent] = ACTIONS(4704),
    [sym_ucent] = ACTIONS(4704),
    [sym_wchar] = ACTIONS(4704),
    [sym_dchar] = ACTIONS(4704),
    [sym_float] = ACTIONS(4704),
    [sym_double] = ACTIONS(4704),
    [sym_real] = ACTIONS(4704),
    [sym_ifloat] = ACTIONS(4704),
    [sym_idouble] = ACTIONS(4704),
    [sym_ireal] = ACTIONS(4704),
    [sym_cfloat] = ACTIONS(4704),
    [sym_cdouble] = ACTIONS(4704),
    [sym_creal] = ACTIONS(4704),
    [sym_size_t] = ACTIONS(4704),
    [sym_ptrdiff_t] = ACTIONS(4704),
    [sym_string] = ACTIONS(4704),
    [sym_cstring] = ACTIONS(4704),
    [sym_dstring] = ACTIONS(4704),
    [sym_wstring] = ACTIONS(4704),
    [sym_noreturn] = ACTIONS(4704),
    [sym_true] = ACTIONS(4704),
    [sym_false] = ACTIONS(4704),
    [sym_null] = ACTIONS(4704),
    [sym_super] = ACTIONS(4704),
    [sym_this] = ACTIONS(4704),
    [sym_assert] = ACTIONS(4704),
    [sym_auto] = ACTIONS(4704),
    [sym_cast] = ACTIONS(4704),
    [sym_catch] = ACTIONS(4704),
    [sym_const] = ACTIONS(4704),
    [sym_delegate] = ACTIONS(4704),
    [sym_delete] = ACTIONS(4704),
    [sym_do] = ACTIONS(4704),
    [sym_else] = ACTIONS(4704),
    [sym_finally] = ACTIONS(4704),
    [sym_function] = ACTIONS(4704),
    [sym_immutable] = ACTIONS(4704),
    [sym_import] = ACTIONS(4704),
    [sym_in] = ACTIONS(4704),
    [sym_inout] = ACTIONS(4704),
    [sym_is] = ACTIONS(4704),
    [sym_mixin] = ACTIONS(4704),
    [sym_new] = ACTIONS(4704),
    [sym_out] = ACTIONS(4704),
    [sym_ref] = ACTIONS(4704),
    [sym_shared] = ACTIONS(4704),
    [sym_throw] = ACTIONS(4704),
    [sym_typeid] = ACTIONS(4704),
    [sym_typeof] = ACTIONS(4704),
    [sym_traits] = ACTIONS(4704),
    [sym_vector] = ACTIONS(4704),
    [sym_void] = ACTIONS(4704),
    [anon_sym_BQUOTE] = ACTIONS(4706),
    [anon_sym_r_DQUOTE] = ACTIONS(4706),
    [anon_sym_x_DQUOTE] = ACTIONS(4706),
    [anon_sym_DQUOTE] = ACTIONS(4706),
    [anon_sym_i_BQUOTE] = ACTIONS(4706),
    [anon_sym_i_DQUOTE] = ACTIONS(4706),
    [anon_sym_iq_LBRACE] = ACTIONS(4706),
    [aux_sym_char_literal_token1] = ACTIONS(4706),
    [anon_sym_SQUOTE] = ACTIONS(4704),
    [anon_sym___DATE__] = ACTIONS(4704),
    [anon_sym___FILE__] = ACTIONS(4704),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4704),
    [anon_sym___FUNCTION__] = ACTIONS(4704),
    [anon_sym___LINE__] = ACTIONS(4704),
    [anon_sym___MODULE__] = ACTIONS(4704),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4704),
    [anon_sym___TIME__] = ACTIONS(4704),
    [anon_sym___TIMESTAMP__] = ACTIONS(4704),
    [anon_sym___VENDOR__] = ACTIONS(4704),
    [anon_sym___VERSION__] = ACTIONS(4704),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4706),
    [sym_float_literal] = ACTIONS(4706),
    [sym__string] = ACTIONS(4706),
  },
  [2272] = {
    [sym_identifier] = ACTIONS(4712),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4714),
    [anon_sym_LBRACE] = ACTIONS(4714),
    [anon_sym_DOT] = ACTIONS(4714),
    [anon_sym_AMP] = ACTIONS(4714),
    [anon_sym_DASH] = ACTIONS(4712),
    [anon_sym_DASH_DASH] = ACTIONS(4714),
    [anon_sym_PLUS] = ACTIONS(4712),
    [anon_sym_PLUS_PLUS] = ACTIONS(4714),
    [anon_sym_BANG] = ACTIONS(4714),
    [anon_sym_LPAREN] = ACTIONS(4714),
    [anon_sym_RPAREN] = ACTIONS(4714),
    [anon_sym_LBRACK] = ACTIONS(4714),
    [anon_sym_SEMI] = ACTIONS(4714),
    [anon_sym_DOLLAR] = ACTIONS(4714),
    [anon_sym_STAR] = ACTIONS(4714),
    [anon_sym_TILDE] = ACTIONS(4714),
    [sym_bool] = ACTIONS(4712),
    [sym_byte] = ACTIONS(4712),
    [sym_ubyte] = ACTIONS(4712),
    [sym_char] = ACTIONS(4712),
    [sym_short] = ACTIONS(4712),
    [sym_ushort] = ACTIONS(4712),
    [sym_int] = ACTIONS(4712),
    [sym_uint] = ACTIONS(4712),
    [sym_long] = ACTIONS(4712),
    [sym_ulong] = ACTIONS(4712),
    [sym_cent] = ACTIONS(4712),
    [sym_ucent] = ACTIONS(4712),
    [sym_wchar] = ACTIONS(4712),
    [sym_dchar] = ACTIONS(4712),
    [sym_float] = ACTIONS(4712),
    [sym_double] = ACTIONS(4712),
    [sym_real] = ACTIONS(4712),
    [sym_ifloat] = ACTIONS(4712),
    [sym_idouble] = ACTIONS(4712),
    [sym_ireal] = ACTIONS(4712),
    [sym_cfloat] = ACTIONS(4712),
    [sym_cdouble] = ACTIONS(4712),
    [sym_creal] = ACTIONS(4712),
    [sym_size_t] = ACTIONS(4712),
    [sym_ptrdiff_t] = ACTIONS(4712),
    [sym_string] = ACTIONS(4712),
    [sym_cstring] = ACTIONS(4712),
    [sym_dstring] = ACTIONS(4712),
    [sym_wstring] = ACTIONS(4712),
    [sym_noreturn] = ACTIONS(4712),
    [sym_true] = ACTIONS(4712),
    [sym_false] = ACTIONS(4712),
    [sym_null] = ACTIONS(4712),
    [sym_super] = ACTIONS(4712),
    [sym_this] = ACTIONS(4712),
    [sym_assert] = ACTIONS(4712),
    [sym_auto] = ACTIONS(4712),
    [sym_cast] = ACTIONS(4712),
    [sym_catch] = ACTIONS(4712),
    [sym_const] = ACTIONS(4712),
    [sym_delegate] = ACTIONS(4712),
    [sym_delete] = ACTIONS(4712),
    [sym_do] = ACTIONS(4712),
    [sym_else] = ACTIONS(4712),
    [sym_finally] = ACTIONS(4712),
    [sym_function] = ACTIONS(4712),
    [sym_immutable] = ACTIONS(4712),
    [sym_import] = ACTIONS(4712),
    [sym_in] = ACTIONS(4712),
    [sym_inout] = ACTIONS(4712),
    [sym_is] = ACTIONS(4712),
    [sym_mixin] = ACTIONS(4712),
    [sym_new] = ACTIONS(4712),
    [sym_out] = ACTIONS(4712),
    [sym_ref] = ACTIONS(4712),
    [sym_shared] = ACTIONS(4712),
    [sym_throw] = ACTIONS(4712),
    [sym_typeid] = ACTIONS(4712),
    [sym_typeof] = ACTIONS(4712),
    [sym_traits] = ACTIONS(4712),
    [sym_vector] = ACTIONS(4712),
    [sym_void] = ACTIONS(4712),
    [anon_sym_BQUOTE] = ACTIONS(4714),
    [anon_sym_r_DQUOTE] = ACTIONS(4714),
    [anon_sym_x_DQUOTE] = ACTIONS(4714),
    [anon_sym_DQUOTE] = ACTIONS(4714),
    [anon_sym_i_BQUOTE] = ACTIONS(4714),
    [anon_sym_i_DQUOTE] = ACTIONS(4714),
    [anon_sym_iq_LBRACE] = ACTIONS(4714),
    [aux_sym_char_literal_token1] = ACTIONS(4714),
    [anon_sym_SQUOTE] = ACTIONS(4712),
    [anon_sym___DATE__] = ACTIONS(4712),
    [anon_sym___FILE__] = ACTIONS(4712),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4712),
    [anon_sym___FUNCTION__] = ACTIONS(4712),
    [anon_sym___LINE__] = ACTIONS(4712),
    [anon_sym___MODULE__] = ACTIONS(4712),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4712),
    [anon_sym___TIME__] = ACTIONS(4712),
    [anon_sym___TIMESTAMP__] = ACTIONS(4712),
    [anon_sym___VENDOR__] = ACTIONS(4712),
    [anon_sym___VERSION__] = ACTIONS(4712),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4714),
    [sym_float_literal] = ACTIONS(4714),
    [sym__string] = ACTIONS(4714),
  },
  [2273] = {
    [sym_identifier] = ACTIONS(4582),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4584),
    [anon_sym_LBRACE] = ACTIONS(4584),
    [anon_sym_DOT] = ACTIONS(4584),
    [anon_sym_AMP] = ACTIONS(4584),
    [anon_sym_DASH] = ACTIONS(4582),
    [anon_sym_DASH_DASH] = ACTIONS(4584),
    [anon_sym_PLUS] = ACTIONS(4582),
    [anon_sym_PLUS_PLUS] = ACTIONS(4584),
    [anon_sym_BANG] = ACTIONS(4584),
    [anon_sym_LPAREN] = ACTIONS(4584),
    [anon_sym_RPAREN] = ACTIONS(4584),
    [anon_sym_LBRACK] = ACTIONS(4584),
    [anon_sym_SEMI] = ACTIONS(4584),
    [anon_sym_DOLLAR] = ACTIONS(4584),
    [anon_sym_STAR] = ACTIONS(4584),
    [anon_sym_TILDE] = ACTIONS(4584),
    [sym_bool] = ACTIONS(4582),
    [sym_byte] = ACTIONS(4582),
    [sym_ubyte] = ACTIONS(4582),
    [sym_char] = ACTIONS(4582),
    [sym_short] = ACTIONS(4582),
    [sym_ushort] = ACTIONS(4582),
    [sym_int] = ACTIONS(4582),
    [sym_uint] = ACTIONS(4582),
    [sym_long] = ACTIONS(4582),
    [sym_ulong] = ACTIONS(4582),
    [sym_cent] = ACTIONS(4582),
    [sym_ucent] = ACTIONS(4582),
    [sym_wchar] = ACTIONS(4582),
    [sym_dchar] = ACTIONS(4582),
    [sym_float] = ACTIONS(4582),
    [sym_double] = ACTIONS(4582),
    [sym_real] = ACTIONS(4582),
    [sym_ifloat] = ACTIONS(4582),
    [sym_idouble] = ACTIONS(4582),
    [sym_ireal] = ACTIONS(4582),
    [sym_cfloat] = ACTIONS(4582),
    [sym_cdouble] = ACTIONS(4582),
    [sym_creal] = ACTIONS(4582),
    [sym_size_t] = ACTIONS(4582),
    [sym_ptrdiff_t] = ACTIONS(4582),
    [sym_string] = ACTIONS(4582),
    [sym_cstring] = ACTIONS(4582),
    [sym_dstring] = ACTIONS(4582),
    [sym_wstring] = ACTIONS(4582),
    [sym_noreturn] = ACTIONS(4582),
    [sym_true] = ACTIONS(4582),
    [sym_false] = ACTIONS(4582),
    [sym_null] = ACTIONS(4582),
    [sym_super] = ACTIONS(4582),
    [sym_this] = ACTIONS(4582),
    [sym_assert] = ACTIONS(4582),
    [sym_auto] = ACTIONS(4582),
    [sym_cast] = ACTIONS(4582),
    [sym_catch] = ACTIONS(4582),
    [sym_const] = ACTIONS(4582),
    [sym_delegate] = ACTIONS(4582),
    [sym_delete] = ACTIONS(4582),
    [sym_do] = ACTIONS(4582),
    [sym_else] = ACTIONS(4582),
    [sym_finally] = ACTIONS(4582),
    [sym_function] = ACTIONS(4582),
    [sym_immutable] = ACTIONS(4582),
    [sym_import] = ACTIONS(4582),
    [sym_in] = ACTIONS(4582),
    [sym_inout] = ACTIONS(4582),
    [sym_is] = ACTIONS(4582),
    [sym_mixin] = ACTIONS(4582),
    [sym_new] = ACTIONS(4582),
    [sym_out] = ACTIONS(4582),
    [sym_ref] = ACTIONS(4582),
    [sym_shared] = ACTIONS(4582),
    [sym_throw] = ACTIONS(4582),
    [sym_typeid] = ACTIONS(4582),
    [sym_typeof] = ACTIONS(4582),
    [sym_traits] = ACTIONS(4582),
    [sym_vector] = ACTIONS(4582),
    [sym_void] = ACTIONS(4582),
    [anon_sym_BQUOTE] = ACTIONS(4584),
    [anon_sym_r_DQUOTE] = ACTIONS(4584),
    [anon_sym_x_DQUOTE] = ACTIONS(4584),
    [anon_sym_DQUOTE] = ACTIONS(4584),
    [anon_sym_i_BQUOTE] = ACTIONS(4584),
    [anon_sym_i_DQUOTE] = ACTIONS(4584),
    [anon_sym_iq_LBRACE] = ACTIONS(4584),
    [aux_sym_char_literal_token1] = ACTIONS(4584),
    [anon_sym_SQUOTE] = ACTIONS(4582),
    [anon_sym___DATE__] = ACTIONS(4582),
    [anon_sym___FILE__] = ACTIONS(4582),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4582),
    [anon_sym___FUNCTION__] = ACTIONS(4582),
    [anon_sym___LINE__] = ACTIONS(4582),
    [anon_sym___MODULE__] = ACTIONS(4582),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4582),
    [anon_sym___TIME__] = ACTIONS(4582),
    [anon_sym___TIMESTAMP__] = ACTIONS(4582),
    [anon_sym___VENDOR__] = ACTIONS(4582),
    [anon_sym___VERSION__] = ACTIONS(4582),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4584),
    [sym_float_literal] = ACTIONS(4584),
    [sym__string] = ACTIONS(4584),
  },
  [2274] = {
    [sym_identifier] = ACTIONS(4720),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4722),
    [anon_sym_LBRACE] = ACTIONS(4722),
    [anon_sym_DOT] = ACTIONS(4722),
    [anon_sym_AMP] = ACTIONS(4722),
    [anon_sym_DASH] = ACTIONS(4720),
    [anon_sym_DASH_DASH] = ACTIONS(4722),
    [anon_sym_PLUS] = ACTIONS(4720),
    [anon_sym_PLUS_PLUS] = ACTIONS(4722),
    [anon_sym_BANG] = ACTIONS(4722),
    [anon_sym_LPAREN] = ACTIONS(4722),
    [anon_sym_RPAREN] = ACTIONS(4722),
    [anon_sym_LBRACK] = ACTIONS(4722),
    [anon_sym_SEMI] = ACTIONS(4722),
    [anon_sym_DOLLAR] = ACTIONS(4722),
    [anon_sym_STAR] = ACTIONS(4722),
    [anon_sym_TILDE] = ACTIONS(4722),
    [sym_bool] = ACTIONS(4720),
    [sym_byte] = ACTIONS(4720),
    [sym_ubyte] = ACTIONS(4720),
    [sym_char] = ACTIONS(4720),
    [sym_short] = ACTIONS(4720),
    [sym_ushort] = ACTIONS(4720),
    [sym_int] = ACTIONS(4720),
    [sym_uint] = ACTIONS(4720),
    [sym_long] = ACTIONS(4720),
    [sym_ulong] = ACTIONS(4720),
    [sym_cent] = ACTIONS(4720),
    [sym_ucent] = ACTIONS(4720),
    [sym_wchar] = ACTIONS(4720),
    [sym_dchar] = ACTIONS(4720),
    [sym_float] = ACTIONS(4720),
    [sym_double] = ACTIONS(4720),
    [sym_real] = ACTIONS(4720),
    [sym_ifloat] = ACTIONS(4720),
    [sym_idouble] = ACTIONS(4720),
    [sym_ireal] = ACTIONS(4720),
    [sym_cfloat] = ACTIONS(4720),
    [sym_cdouble] = ACTIONS(4720),
    [sym_creal] = ACTIONS(4720),
    [sym_size_t] = ACTIONS(4720),
    [sym_ptrdiff_t] = ACTIONS(4720),
    [sym_string] = ACTIONS(4720),
    [sym_cstring] = ACTIONS(4720),
    [sym_dstring] = ACTIONS(4720),
    [sym_wstring] = ACTIONS(4720),
    [sym_noreturn] = ACTIONS(4720),
    [sym_true] = ACTIONS(4720),
    [sym_false] = ACTIONS(4720),
    [sym_null] = ACTIONS(4720),
    [sym_super] = ACTIONS(4720),
    [sym_this] = ACTIONS(4720),
    [sym_assert] = ACTIONS(4720),
    [sym_auto] = ACTIONS(4720),
    [sym_cast] = ACTIONS(4720),
    [sym_catch] = ACTIONS(4720),
    [sym_const] = ACTIONS(4720),
    [sym_delegate] = ACTIONS(4720),
    [sym_delete] = ACTIONS(4720),
    [sym_do] = ACTIONS(4720),
    [sym_else] = ACTIONS(4720),
    [sym_finally] = ACTIONS(4720),
    [sym_function] = ACTIONS(4720),
    [sym_immutable] = ACTIONS(4720),
    [sym_import] = ACTIONS(4720),
    [sym_in] = ACTIONS(4720),
    [sym_inout] = ACTIONS(4720),
    [sym_is] = ACTIONS(4720),
    [sym_mixin] = ACTIONS(4720),
    [sym_new] = ACTIONS(4720),
    [sym_out] = ACTIONS(4720),
    [sym_ref] = ACTIONS(4720),
    [sym_shared] = ACTIONS(4720),
    [sym_throw] = ACTIONS(4720),
    [sym_typeid] = ACTIONS(4720),
    [sym_typeof] = ACTIONS(4720),
    [sym_traits] = ACTIONS(4720),
    [sym_vector] = ACTIONS(4720),
    [sym_void] = ACTIONS(4720),
    [anon_sym_BQUOTE] = ACTIONS(4722),
    [anon_sym_r_DQUOTE] = ACTIONS(4722),
    [anon_sym_x_DQUOTE] = ACTIONS(4722),
    [anon_sym_DQUOTE] = ACTIONS(4722),
    [anon_sym_i_BQUOTE] = ACTIONS(4722),
    [anon_sym_i_DQUOTE] = ACTIONS(4722),
    [anon_sym_iq_LBRACE] = ACTIONS(4722),
    [aux_sym_char_literal_token1] = ACTIONS(4722),
    [anon_sym_SQUOTE] = ACTIONS(4720),
    [anon_sym___DATE__] = ACTIONS(4720),
    [anon_sym___FILE__] = ACTIONS(4720),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4720),
    [anon_sym___FUNCTION__] = ACTIONS(4720),
    [anon_sym___LINE__] = ACTIONS(4720),
    [anon_sym___MODULE__] = ACTIONS(4720),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4720),
    [anon_sym___TIME__] = ACTIONS(4720),
    [anon_sym___TIMESTAMP__] = ACTIONS(4720),
    [anon_sym___VENDOR__] = ACTIONS(4720),
    [anon_sym___VERSION__] = ACTIONS(4720),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4722),
    [sym_float_literal] = ACTIONS(4722),
    [sym__string] = ACTIONS(4722),
  },
  [2275] = {
    [sym_identifier] = ACTIONS(5064),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5066),
    [anon_sym_LBRACE] = ACTIONS(5066),
    [anon_sym_DOT] = ACTIONS(5066),
    [anon_sym_AMP] = ACTIONS(5066),
    [anon_sym_DASH] = ACTIONS(5064),
    [anon_sym_DASH_DASH] = ACTIONS(5066),
    [anon_sym_PLUS] = ACTIONS(5064),
    [anon_sym_PLUS_PLUS] = ACTIONS(5066),
    [anon_sym_BANG] = ACTIONS(5066),
    [anon_sym_LPAREN] = ACTIONS(5066),
    [anon_sym_RPAREN] = ACTIONS(5066),
    [anon_sym_LBRACK] = ACTIONS(5066),
    [anon_sym_SEMI] = ACTIONS(5066),
    [anon_sym_DOLLAR] = ACTIONS(5066),
    [anon_sym_STAR] = ACTIONS(5066),
    [anon_sym_TILDE] = ACTIONS(5066),
    [sym_bool] = ACTIONS(5064),
    [sym_byte] = ACTIONS(5064),
    [sym_ubyte] = ACTIONS(5064),
    [sym_char] = ACTIONS(5064),
    [sym_short] = ACTIONS(5064),
    [sym_ushort] = ACTIONS(5064),
    [sym_int] = ACTIONS(5064),
    [sym_uint] = ACTIONS(5064),
    [sym_long] = ACTIONS(5064),
    [sym_ulong] = ACTIONS(5064),
    [sym_cent] = ACTIONS(5064),
    [sym_ucent] = ACTIONS(5064),
    [sym_wchar] = ACTIONS(5064),
    [sym_dchar] = ACTIONS(5064),
    [sym_float] = ACTIONS(5064),
    [sym_double] = ACTIONS(5064),
    [sym_real] = ACTIONS(5064),
    [sym_ifloat] = ACTIONS(5064),
    [sym_idouble] = ACTIONS(5064),
    [sym_ireal] = ACTIONS(5064),
    [sym_cfloat] = ACTIONS(5064),
    [sym_cdouble] = ACTIONS(5064),
    [sym_creal] = ACTIONS(5064),
    [sym_size_t] = ACTIONS(5064),
    [sym_ptrdiff_t] = ACTIONS(5064),
    [sym_string] = ACTIONS(5064),
    [sym_cstring] = ACTIONS(5064),
    [sym_dstring] = ACTIONS(5064),
    [sym_wstring] = ACTIONS(5064),
    [sym_noreturn] = ACTIONS(5064),
    [sym_true] = ACTIONS(5064),
    [sym_false] = ACTIONS(5064),
    [sym_null] = ACTIONS(5064),
    [sym_super] = ACTIONS(5064),
    [sym_this] = ACTIONS(5064),
    [sym_assert] = ACTIONS(5064),
    [sym_auto] = ACTIONS(5064),
    [sym_cast] = ACTIONS(5064),
    [sym_catch] = ACTIONS(5064),
    [sym_const] = ACTIONS(5064),
    [sym_delegate] = ACTIONS(5064),
    [sym_delete] = ACTIONS(5064),
    [sym_do] = ACTIONS(5064),
    [sym_else] = ACTIONS(5064),
    [sym_finally] = ACTIONS(5064),
    [sym_function] = ACTIONS(5064),
    [sym_immutable] = ACTIONS(5064),
    [sym_import] = ACTIONS(5064),
    [sym_in] = ACTIONS(5064),
    [sym_inout] = ACTIONS(5064),
    [sym_is] = ACTIONS(5064),
    [sym_mixin] = ACTIONS(5064),
    [sym_new] = ACTIONS(5064),
    [sym_out] = ACTIONS(5064),
    [sym_ref] = ACTIONS(5064),
    [sym_shared] = ACTIONS(5064),
    [sym_throw] = ACTIONS(5064),
    [sym_typeid] = ACTIONS(5064),
    [sym_typeof] = ACTIONS(5064),
    [sym_traits] = ACTIONS(5064),
    [sym_vector] = ACTIONS(5064),
    [sym_void] = ACTIONS(5064),
    [anon_sym_BQUOTE] = ACTIONS(5066),
    [anon_sym_r_DQUOTE] = ACTIONS(5066),
    [anon_sym_x_DQUOTE] = ACTIONS(5066),
    [anon_sym_DQUOTE] = ACTIONS(5066),
    [anon_sym_i_BQUOTE] = ACTIONS(5066),
    [anon_sym_i_DQUOTE] = ACTIONS(5066),
    [anon_sym_iq_LBRACE] = ACTIONS(5066),
    [aux_sym_char_literal_token1] = ACTIONS(5066),
    [anon_sym_SQUOTE] = ACTIONS(5064),
    [anon_sym___DATE__] = ACTIONS(5064),
    [anon_sym___FILE__] = ACTIONS(5064),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5064),
    [anon_sym___FUNCTION__] = ACTIONS(5064),
    [anon_sym___LINE__] = ACTIONS(5064),
    [anon_sym___MODULE__] = ACTIONS(5064),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5064),
    [anon_sym___TIME__] = ACTIONS(5064),
    [anon_sym___TIMESTAMP__] = ACTIONS(5064),
    [anon_sym___VENDOR__] = ACTIONS(5064),
    [anon_sym___VERSION__] = ACTIONS(5064),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5066),
    [sym_float_literal] = ACTIONS(5066),
    [sym__string] = ACTIONS(5066),
  },
  [2276] = {
    [sym_identifier] = ACTIONS(4732),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4734),
    [anon_sym_LBRACE] = ACTIONS(4734),
    [anon_sym_DOT] = ACTIONS(4734),
    [anon_sym_AMP] = ACTIONS(4734),
    [anon_sym_DASH] = ACTIONS(4732),
    [anon_sym_DASH_DASH] = ACTIONS(4734),
    [anon_sym_PLUS] = ACTIONS(4732),
    [anon_sym_PLUS_PLUS] = ACTIONS(4734),
    [anon_sym_BANG] = ACTIONS(4734),
    [anon_sym_LPAREN] = ACTIONS(4734),
    [anon_sym_RPAREN] = ACTIONS(4734),
    [anon_sym_LBRACK] = ACTIONS(4734),
    [anon_sym_SEMI] = ACTIONS(4734),
    [anon_sym_DOLLAR] = ACTIONS(4734),
    [anon_sym_STAR] = ACTIONS(4734),
    [anon_sym_TILDE] = ACTIONS(4734),
    [sym_bool] = ACTIONS(4732),
    [sym_byte] = ACTIONS(4732),
    [sym_ubyte] = ACTIONS(4732),
    [sym_char] = ACTIONS(4732),
    [sym_short] = ACTIONS(4732),
    [sym_ushort] = ACTIONS(4732),
    [sym_int] = ACTIONS(4732),
    [sym_uint] = ACTIONS(4732),
    [sym_long] = ACTIONS(4732),
    [sym_ulong] = ACTIONS(4732),
    [sym_cent] = ACTIONS(4732),
    [sym_ucent] = ACTIONS(4732),
    [sym_wchar] = ACTIONS(4732),
    [sym_dchar] = ACTIONS(4732),
    [sym_float] = ACTIONS(4732),
    [sym_double] = ACTIONS(4732),
    [sym_real] = ACTIONS(4732),
    [sym_ifloat] = ACTIONS(4732),
    [sym_idouble] = ACTIONS(4732),
    [sym_ireal] = ACTIONS(4732),
    [sym_cfloat] = ACTIONS(4732),
    [sym_cdouble] = ACTIONS(4732),
    [sym_creal] = ACTIONS(4732),
    [sym_size_t] = ACTIONS(4732),
    [sym_ptrdiff_t] = ACTIONS(4732),
    [sym_string] = ACTIONS(4732),
    [sym_cstring] = ACTIONS(4732),
    [sym_dstring] = ACTIONS(4732),
    [sym_wstring] = ACTIONS(4732),
    [sym_noreturn] = ACTIONS(4732),
    [sym_true] = ACTIONS(4732),
    [sym_false] = ACTIONS(4732),
    [sym_null] = ACTIONS(4732),
    [sym_super] = ACTIONS(4732),
    [sym_this] = ACTIONS(4732),
    [sym_assert] = ACTIONS(4732),
    [sym_auto] = ACTIONS(4732),
    [sym_cast] = ACTIONS(4732),
    [sym_catch] = ACTIONS(4732),
    [sym_const] = ACTIONS(4732),
    [sym_delegate] = ACTIONS(4732),
    [sym_delete] = ACTIONS(4732),
    [sym_do] = ACTIONS(4732),
    [sym_else] = ACTIONS(4732),
    [sym_finally] = ACTIONS(4732),
    [sym_function] = ACTIONS(4732),
    [sym_immutable] = ACTIONS(4732),
    [sym_import] = ACTIONS(4732),
    [sym_in] = ACTIONS(4732),
    [sym_inout] = ACTIONS(4732),
    [sym_is] = ACTIONS(4732),
    [sym_mixin] = ACTIONS(4732),
    [sym_new] = ACTIONS(4732),
    [sym_out] = ACTIONS(4732),
    [sym_ref] = ACTIONS(4732),
    [sym_shared] = ACTIONS(4732),
    [sym_throw] = ACTIONS(4732),
    [sym_typeid] = ACTIONS(4732),
    [sym_typeof] = ACTIONS(4732),
    [sym_traits] = ACTIONS(4732),
    [sym_vector] = ACTIONS(4732),
    [sym_void] = ACTIONS(4732),
    [anon_sym_BQUOTE] = ACTIONS(4734),
    [anon_sym_r_DQUOTE] = ACTIONS(4734),
    [anon_sym_x_DQUOTE] = ACTIONS(4734),
    [anon_sym_DQUOTE] = ACTIONS(4734),
    [anon_sym_i_BQUOTE] = ACTIONS(4734),
    [anon_sym_i_DQUOTE] = ACTIONS(4734),
    [anon_sym_iq_LBRACE] = ACTIONS(4734),
    [aux_sym_char_literal_token1] = ACTIONS(4734),
    [anon_sym_SQUOTE] = ACTIONS(4732),
    [anon_sym___DATE__] = ACTIONS(4732),
    [anon_sym___FILE__] = ACTIONS(4732),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4732),
    [anon_sym___FUNCTION__] = ACTIONS(4732),
    [anon_sym___LINE__] = ACTIONS(4732),
    [anon_sym___MODULE__] = ACTIONS(4732),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4732),
    [anon_sym___TIME__] = ACTIONS(4732),
    [anon_sym___TIMESTAMP__] = ACTIONS(4732),
    [anon_sym___VENDOR__] = ACTIONS(4732),
    [anon_sym___VERSION__] = ACTIONS(4732),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4734),
    [sym_float_literal] = ACTIONS(4734),
    [sym__string] = ACTIONS(4734),
  },
  [2277] = {
    [sym_identifier] = ACTIONS(4736),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4738),
    [anon_sym_LBRACE] = ACTIONS(4738),
    [anon_sym_DOT] = ACTIONS(4738),
    [anon_sym_AMP] = ACTIONS(4738),
    [anon_sym_DASH] = ACTIONS(4736),
    [anon_sym_DASH_DASH] = ACTIONS(4738),
    [anon_sym_PLUS] = ACTIONS(4736),
    [anon_sym_PLUS_PLUS] = ACTIONS(4738),
    [anon_sym_BANG] = ACTIONS(4738),
    [anon_sym_LPAREN] = ACTIONS(4738),
    [anon_sym_RPAREN] = ACTIONS(4738),
    [anon_sym_LBRACK] = ACTIONS(4738),
    [anon_sym_SEMI] = ACTIONS(4738),
    [anon_sym_DOLLAR] = ACTIONS(4738),
    [anon_sym_STAR] = ACTIONS(4738),
    [anon_sym_TILDE] = ACTIONS(4738),
    [sym_bool] = ACTIONS(4736),
    [sym_byte] = ACTIONS(4736),
    [sym_ubyte] = ACTIONS(4736),
    [sym_char] = ACTIONS(4736),
    [sym_short] = ACTIONS(4736),
    [sym_ushort] = ACTIONS(4736),
    [sym_int] = ACTIONS(4736),
    [sym_uint] = ACTIONS(4736),
    [sym_long] = ACTIONS(4736),
    [sym_ulong] = ACTIONS(4736),
    [sym_cent] = ACTIONS(4736),
    [sym_ucent] = ACTIONS(4736),
    [sym_wchar] = ACTIONS(4736),
    [sym_dchar] = ACTIONS(4736),
    [sym_float] = ACTIONS(4736),
    [sym_double] = ACTIONS(4736),
    [sym_real] = ACTIONS(4736),
    [sym_ifloat] = ACTIONS(4736),
    [sym_idouble] = ACTIONS(4736),
    [sym_ireal] = ACTIONS(4736),
    [sym_cfloat] = ACTIONS(4736),
    [sym_cdouble] = ACTIONS(4736),
    [sym_creal] = ACTIONS(4736),
    [sym_size_t] = ACTIONS(4736),
    [sym_ptrdiff_t] = ACTIONS(4736),
    [sym_string] = ACTIONS(4736),
    [sym_cstring] = ACTIONS(4736),
    [sym_dstring] = ACTIONS(4736),
    [sym_wstring] = ACTIONS(4736),
    [sym_noreturn] = ACTIONS(4736),
    [sym_true] = ACTIONS(4736),
    [sym_false] = ACTIONS(4736),
    [sym_null] = ACTIONS(4736),
    [sym_super] = ACTIONS(4736),
    [sym_this] = ACTIONS(4736),
    [sym_assert] = ACTIONS(4736),
    [sym_auto] = ACTIONS(4736),
    [sym_cast] = ACTIONS(4736),
    [sym_catch] = ACTIONS(4736),
    [sym_const] = ACTIONS(4736),
    [sym_delegate] = ACTIONS(4736),
    [sym_delete] = ACTIONS(4736),
    [sym_do] = ACTIONS(4736),
    [sym_else] = ACTIONS(4736),
    [sym_finally] = ACTIONS(4736),
    [sym_function] = ACTIONS(4736),
    [sym_immutable] = ACTIONS(4736),
    [sym_import] = ACTIONS(4736),
    [sym_in] = ACTIONS(4736),
    [sym_inout] = ACTIONS(4736),
    [sym_is] = ACTIONS(4736),
    [sym_mixin] = ACTIONS(4736),
    [sym_new] = ACTIONS(4736),
    [sym_out] = ACTIONS(4736),
    [sym_ref] = ACTIONS(4736),
    [sym_shared] = ACTIONS(4736),
    [sym_throw] = ACTIONS(4736),
    [sym_typeid] = ACTIONS(4736),
    [sym_typeof] = ACTIONS(4736),
    [sym_traits] = ACTIONS(4736),
    [sym_vector] = ACTIONS(4736),
    [sym_void] = ACTIONS(4736),
    [anon_sym_BQUOTE] = ACTIONS(4738),
    [anon_sym_r_DQUOTE] = ACTIONS(4738),
    [anon_sym_x_DQUOTE] = ACTIONS(4738),
    [anon_sym_DQUOTE] = ACTIONS(4738),
    [anon_sym_i_BQUOTE] = ACTIONS(4738),
    [anon_sym_i_DQUOTE] = ACTIONS(4738),
    [anon_sym_iq_LBRACE] = ACTIONS(4738),
    [aux_sym_char_literal_token1] = ACTIONS(4738),
    [anon_sym_SQUOTE] = ACTIONS(4736),
    [anon_sym___DATE__] = ACTIONS(4736),
    [anon_sym___FILE__] = ACTIONS(4736),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4736),
    [anon_sym___FUNCTION__] = ACTIONS(4736),
    [anon_sym___LINE__] = ACTIONS(4736),
    [anon_sym___MODULE__] = ACTIONS(4736),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4736),
    [anon_sym___TIME__] = ACTIONS(4736),
    [anon_sym___TIMESTAMP__] = ACTIONS(4736),
    [anon_sym___VENDOR__] = ACTIONS(4736),
    [anon_sym___VERSION__] = ACTIONS(4736),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4738),
    [sym_float_literal] = ACTIONS(4738),
    [sym__string] = ACTIONS(4738),
  },
  [2278] = {
    [sym_identifier] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2804),
    [anon_sym_LBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(2804),
    [anon_sym_AMP] = ACTIONS(2804),
    [anon_sym_DASH] = ACTIONS(2806),
    [anon_sym_DASH_DASH] = ACTIONS(2804),
    [anon_sym_PLUS] = ACTIONS(2806),
    [anon_sym_PLUS_PLUS] = ACTIONS(2804),
    [anon_sym_BANG] = ACTIONS(2804),
    [anon_sym_LPAREN] = ACTIONS(2804),
    [anon_sym_RPAREN] = ACTIONS(2804),
    [anon_sym_LBRACK] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2804),
    [anon_sym_DOLLAR] = ACTIONS(2804),
    [anon_sym_STAR] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2804),
    [sym_bool] = ACTIONS(2806),
    [sym_byte] = ACTIONS(2806),
    [sym_ubyte] = ACTIONS(2806),
    [sym_char] = ACTIONS(2806),
    [sym_short] = ACTIONS(2806),
    [sym_ushort] = ACTIONS(2806),
    [sym_int] = ACTIONS(2806),
    [sym_uint] = ACTIONS(2806),
    [sym_long] = ACTIONS(2806),
    [sym_ulong] = ACTIONS(2806),
    [sym_cent] = ACTIONS(2806),
    [sym_ucent] = ACTIONS(2806),
    [sym_wchar] = ACTIONS(2806),
    [sym_dchar] = ACTIONS(2806),
    [sym_float] = ACTIONS(2806),
    [sym_double] = ACTIONS(2806),
    [sym_real] = ACTIONS(2806),
    [sym_ifloat] = ACTIONS(2806),
    [sym_idouble] = ACTIONS(2806),
    [sym_ireal] = ACTIONS(2806),
    [sym_cfloat] = ACTIONS(2806),
    [sym_cdouble] = ACTIONS(2806),
    [sym_creal] = ACTIONS(2806),
    [sym_size_t] = ACTIONS(2806),
    [sym_ptrdiff_t] = ACTIONS(2806),
    [sym_string] = ACTIONS(2806),
    [sym_cstring] = ACTIONS(2806),
    [sym_dstring] = ACTIONS(2806),
    [sym_wstring] = ACTIONS(2806),
    [sym_noreturn] = ACTIONS(2806),
    [sym_true] = ACTIONS(2806),
    [sym_false] = ACTIONS(2806),
    [sym_null] = ACTIONS(2806),
    [sym_super] = ACTIONS(2806),
    [sym_this] = ACTIONS(2806),
    [sym_assert] = ACTIONS(2806),
    [sym_auto] = ACTIONS(2806),
    [sym_cast] = ACTIONS(2806),
    [sym_catch] = ACTIONS(2806),
    [sym_const] = ACTIONS(2806),
    [sym_delegate] = ACTIONS(2806),
    [sym_delete] = ACTIONS(2806),
    [sym_do] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_finally] = ACTIONS(2806),
    [sym_function] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(2806),
    [sym_import] = ACTIONS(2806),
    [sym_in] = ACTIONS(2806),
    [sym_inout] = ACTIONS(2806),
    [sym_is] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2806),
    [sym_new] = ACTIONS(2806),
    [sym_out] = ACTIONS(2806),
    [sym_ref] = ACTIONS(2806),
    [sym_shared] = ACTIONS(2806),
    [sym_throw] = ACTIONS(2806),
    [sym_typeid] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(2806),
    [sym_traits] = ACTIONS(2806),
    [sym_vector] = ACTIONS(2806),
    [sym_void] = ACTIONS(2806),
    [anon_sym_BQUOTE] = ACTIONS(2804),
    [anon_sym_r_DQUOTE] = ACTIONS(2804),
    [anon_sym_x_DQUOTE] = ACTIONS(2804),
    [anon_sym_DQUOTE] = ACTIONS(2804),
    [anon_sym_i_BQUOTE] = ACTIONS(2804),
    [anon_sym_i_DQUOTE] = ACTIONS(2804),
    [anon_sym_iq_LBRACE] = ACTIONS(2804),
    [aux_sym_char_literal_token1] = ACTIONS(2804),
    [anon_sym_SQUOTE] = ACTIONS(2806),
    [anon_sym___DATE__] = ACTIONS(2806),
    [anon_sym___FILE__] = ACTIONS(2806),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2806),
    [anon_sym___FUNCTION__] = ACTIONS(2806),
    [anon_sym___LINE__] = ACTIONS(2806),
    [anon_sym___MODULE__] = ACTIONS(2806),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2806),
    [anon_sym___TIME__] = ACTIONS(2806),
    [anon_sym___TIMESTAMP__] = ACTIONS(2806),
    [anon_sym___VENDOR__] = ACTIONS(2806),
    [anon_sym___VERSION__] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2804),
    [sym_float_literal] = ACTIONS(2804),
    [sym__string] = ACTIONS(2804),
  },
  [2279] = {
    [sym_identifier] = ACTIONS(4774),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4776),
    [anon_sym_LBRACE] = ACTIONS(4776),
    [anon_sym_DOT] = ACTIONS(4776),
    [anon_sym_AMP] = ACTIONS(4776),
    [anon_sym_DASH] = ACTIONS(4774),
    [anon_sym_DASH_DASH] = ACTIONS(4776),
    [anon_sym_PLUS] = ACTIONS(4774),
    [anon_sym_PLUS_PLUS] = ACTIONS(4776),
    [anon_sym_BANG] = ACTIONS(4776),
    [anon_sym_LPAREN] = ACTIONS(4776),
    [anon_sym_RPAREN] = ACTIONS(4776),
    [anon_sym_LBRACK] = ACTIONS(4776),
    [anon_sym_SEMI] = ACTIONS(4776),
    [anon_sym_DOLLAR] = ACTIONS(4776),
    [anon_sym_STAR] = ACTIONS(4776),
    [anon_sym_TILDE] = ACTIONS(4776),
    [sym_bool] = ACTIONS(4774),
    [sym_byte] = ACTIONS(4774),
    [sym_ubyte] = ACTIONS(4774),
    [sym_char] = ACTIONS(4774),
    [sym_short] = ACTIONS(4774),
    [sym_ushort] = ACTIONS(4774),
    [sym_int] = ACTIONS(4774),
    [sym_uint] = ACTIONS(4774),
    [sym_long] = ACTIONS(4774),
    [sym_ulong] = ACTIONS(4774),
    [sym_cent] = ACTIONS(4774),
    [sym_ucent] = ACTIONS(4774),
    [sym_wchar] = ACTIONS(4774),
    [sym_dchar] = ACTIONS(4774),
    [sym_float] = ACTIONS(4774),
    [sym_double] = ACTIONS(4774),
    [sym_real] = ACTIONS(4774),
    [sym_ifloat] = ACTIONS(4774),
    [sym_idouble] = ACTIONS(4774),
    [sym_ireal] = ACTIONS(4774),
    [sym_cfloat] = ACTIONS(4774),
    [sym_cdouble] = ACTIONS(4774),
    [sym_creal] = ACTIONS(4774),
    [sym_size_t] = ACTIONS(4774),
    [sym_ptrdiff_t] = ACTIONS(4774),
    [sym_string] = ACTIONS(4774),
    [sym_cstring] = ACTIONS(4774),
    [sym_dstring] = ACTIONS(4774),
    [sym_wstring] = ACTIONS(4774),
    [sym_noreturn] = ACTIONS(4774),
    [sym_true] = ACTIONS(4774),
    [sym_false] = ACTIONS(4774),
    [sym_null] = ACTIONS(4774),
    [sym_super] = ACTIONS(4774),
    [sym_this] = ACTIONS(4774),
    [sym_assert] = ACTIONS(4774),
    [sym_auto] = ACTIONS(4774),
    [sym_cast] = ACTIONS(4774),
    [sym_catch] = ACTIONS(4774),
    [sym_const] = ACTIONS(4774),
    [sym_delegate] = ACTIONS(4774),
    [sym_delete] = ACTIONS(4774),
    [sym_do] = ACTIONS(4774),
    [sym_else] = ACTIONS(4774),
    [sym_finally] = ACTIONS(4774),
    [sym_function] = ACTIONS(4774),
    [sym_immutable] = ACTIONS(4774),
    [sym_import] = ACTIONS(4774),
    [sym_in] = ACTIONS(4774),
    [sym_inout] = ACTIONS(4774),
    [sym_is] = ACTIONS(4774),
    [sym_mixin] = ACTIONS(4774),
    [sym_new] = ACTIONS(4774),
    [sym_out] = ACTIONS(4774),
    [sym_ref] = ACTIONS(4774),
    [sym_shared] = ACTIONS(4774),
    [sym_throw] = ACTIONS(4774),
    [sym_typeid] = ACTIONS(4774),
    [sym_typeof] = ACTIONS(4774),
    [sym_traits] = ACTIONS(4774),
    [sym_vector] = ACTIONS(4774),
    [sym_void] = ACTIONS(4774),
    [anon_sym_BQUOTE] = ACTIONS(4776),
    [anon_sym_r_DQUOTE] = ACTIONS(4776),
    [anon_sym_x_DQUOTE] = ACTIONS(4776),
    [anon_sym_DQUOTE] = ACTIONS(4776),
    [anon_sym_i_BQUOTE] = ACTIONS(4776),
    [anon_sym_i_DQUOTE] = ACTIONS(4776),
    [anon_sym_iq_LBRACE] = ACTIONS(4776),
    [aux_sym_char_literal_token1] = ACTIONS(4776),
    [anon_sym_SQUOTE] = ACTIONS(4774),
    [anon_sym___DATE__] = ACTIONS(4774),
    [anon_sym___FILE__] = ACTIONS(4774),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4774),
    [anon_sym___FUNCTION__] = ACTIONS(4774),
    [anon_sym___LINE__] = ACTIONS(4774),
    [anon_sym___MODULE__] = ACTIONS(4774),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4774),
    [anon_sym___TIME__] = ACTIONS(4774),
    [anon_sym___TIMESTAMP__] = ACTIONS(4774),
    [anon_sym___VENDOR__] = ACTIONS(4774),
    [anon_sym___VERSION__] = ACTIONS(4774),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4776),
    [sym_float_literal] = ACTIONS(4776),
    [sym__string] = ACTIONS(4776),
  },
  [2280] = {
    [sym_identifier] = ACTIONS(4788),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4790),
    [anon_sym_LBRACE] = ACTIONS(4790),
    [anon_sym_DOT] = ACTIONS(4790),
    [anon_sym_AMP] = ACTIONS(4790),
    [anon_sym_DASH] = ACTIONS(4788),
    [anon_sym_DASH_DASH] = ACTIONS(4790),
    [anon_sym_PLUS] = ACTIONS(4788),
    [anon_sym_PLUS_PLUS] = ACTIONS(4790),
    [anon_sym_BANG] = ACTIONS(4790),
    [anon_sym_LPAREN] = ACTIONS(4790),
    [anon_sym_RPAREN] = ACTIONS(4790),
    [anon_sym_LBRACK] = ACTIONS(4790),
    [anon_sym_SEMI] = ACTIONS(4790),
    [anon_sym_DOLLAR] = ACTIONS(4790),
    [anon_sym_STAR] = ACTIONS(4790),
    [anon_sym_TILDE] = ACTIONS(4790),
    [sym_bool] = ACTIONS(4788),
    [sym_byte] = ACTIONS(4788),
    [sym_ubyte] = ACTIONS(4788),
    [sym_char] = ACTIONS(4788),
    [sym_short] = ACTIONS(4788),
    [sym_ushort] = ACTIONS(4788),
    [sym_int] = ACTIONS(4788),
    [sym_uint] = ACTIONS(4788),
    [sym_long] = ACTIONS(4788),
    [sym_ulong] = ACTIONS(4788),
    [sym_cent] = ACTIONS(4788),
    [sym_ucent] = ACTIONS(4788),
    [sym_wchar] = ACTIONS(4788),
    [sym_dchar] = ACTIONS(4788),
    [sym_float] = ACTIONS(4788),
    [sym_double] = ACTIONS(4788),
    [sym_real] = ACTIONS(4788),
    [sym_ifloat] = ACTIONS(4788),
    [sym_idouble] = ACTIONS(4788),
    [sym_ireal] = ACTIONS(4788),
    [sym_cfloat] = ACTIONS(4788),
    [sym_cdouble] = ACTIONS(4788),
    [sym_creal] = ACTIONS(4788),
    [sym_size_t] = ACTIONS(4788),
    [sym_ptrdiff_t] = ACTIONS(4788),
    [sym_string] = ACTIONS(4788),
    [sym_cstring] = ACTIONS(4788),
    [sym_dstring] = ACTIONS(4788),
    [sym_wstring] = ACTIONS(4788),
    [sym_noreturn] = ACTIONS(4788),
    [sym_true] = ACTIONS(4788),
    [sym_false] = ACTIONS(4788),
    [sym_null] = ACTIONS(4788),
    [sym_super] = ACTIONS(4788),
    [sym_this] = ACTIONS(4788),
    [sym_assert] = ACTIONS(4788),
    [sym_auto] = ACTIONS(4788),
    [sym_cast] = ACTIONS(4788),
    [sym_catch] = ACTIONS(4788),
    [sym_const] = ACTIONS(4788),
    [sym_delegate] = ACTIONS(4788),
    [sym_delete] = ACTIONS(4788),
    [sym_do] = ACTIONS(4788),
    [sym_else] = ACTIONS(4788),
    [sym_finally] = ACTIONS(4788),
    [sym_function] = ACTIONS(4788),
    [sym_immutable] = ACTIONS(4788),
    [sym_import] = ACTIONS(4788),
    [sym_in] = ACTIONS(4788),
    [sym_inout] = ACTIONS(4788),
    [sym_is] = ACTIONS(4788),
    [sym_mixin] = ACTIONS(4788),
    [sym_new] = ACTIONS(4788),
    [sym_out] = ACTIONS(4788),
    [sym_ref] = ACTIONS(4788),
    [sym_shared] = ACTIONS(4788),
    [sym_throw] = ACTIONS(4788),
    [sym_typeid] = ACTIONS(4788),
    [sym_typeof] = ACTIONS(4788),
    [sym_traits] = ACTIONS(4788),
    [sym_vector] = ACTIONS(4788),
    [sym_void] = ACTIONS(4788),
    [anon_sym_BQUOTE] = ACTIONS(4790),
    [anon_sym_r_DQUOTE] = ACTIONS(4790),
    [anon_sym_x_DQUOTE] = ACTIONS(4790),
    [anon_sym_DQUOTE] = ACTIONS(4790),
    [anon_sym_i_BQUOTE] = ACTIONS(4790),
    [anon_sym_i_DQUOTE] = ACTIONS(4790),
    [anon_sym_iq_LBRACE] = ACTIONS(4790),
    [aux_sym_char_literal_token1] = ACTIONS(4790),
    [anon_sym_SQUOTE] = ACTIONS(4788),
    [anon_sym___DATE__] = ACTIONS(4788),
    [anon_sym___FILE__] = ACTIONS(4788),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4788),
    [anon_sym___FUNCTION__] = ACTIONS(4788),
    [anon_sym___LINE__] = ACTIONS(4788),
    [anon_sym___MODULE__] = ACTIONS(4788),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4788),
    [anon_sym___TIME__] = ACTIONS(4788),
    [anon_sym___TIMESTAMP__] = ACTIONS(4788),
    [anon_sym___VENDOR__] = ACTIONS(4788),
    [anon_sym___VERSION__] = ACTIONS(4788),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4790),
    [sym_float_literal] = ACTIONS(4790),
    [sym__string] = ACTIONS(4790),
  },
  [2281] = {
    [sym_identifier] = ACTIONS(4690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4692),
    [anon_sym_LBRACE] = ACTIONS(4692),
    [anon_sym_DOT] = ACTIONS(4692),
    [anon_sym_AMP] = ACTIONS(4692),
    [anon_sym_DASH] = ACTIONS(4690),
    [anon_sym_DASH_DASH] = ACTIONS(4692),
    [anon_sym_PLUS] = ACTIONS(4690),
    [anon_sym_PLUS_PLUS] = ACTIONS(4692),
    [anon_sym_BANG] = ACTIONS(4692),
    [anon_sym_LPAREN] = ACTIONS(4692),
    [anon_sym_RPAREN] = ACTIONS(4692),
    [anon_sym_LBRACK] = ACTIONS(4692),
    [anon_sym_SEMI] = ACTIONS(4692),
    [anon_sym_DOLLAR] = ACTIONS(4692),
    [anon_sym_STAR] = ACTIONS(4692),
    [anon_sym_TILDE] = ACTIONS(4692),
    [sym_bool] = ACTIONS(4690),
    [sym_byte] = ACTIONS(4690),
    [sym_ubyte] = ACTIONS(4690),
    [sym_char] = ACTIONS(4690),
    [sym_short] = ACTIONS(4690),
    [sym_ushort] = ACTIONS(4690),
    [sym_int] = ACTIONS(4690),
    [sym_uint] = ACTIONS(4690),
    [sym_long] = ACTIONS(4690),
    [sym_ulong] = ACTIONS(4690),
    [sym_cent] = ACTIONS(4690),
    [sym_ucent] = ACTIONS(4690),
    [sym_wchar] = ACTIONS(4690),
    [sym_dchar] = ACTIONS(4690),
    [sym_float] = ACTIONS(4690),
    [sym_double] = ACTIONS(4690),
    [sym_real] = ACTIONS(4690),
    [sym_ifloat] = ACTIONS(4690),
    [sym_idouble] = ACTIONS(4690),
    [sym_ireal] = ACTIONS(4690),
    [sym_cfloat] = ACTIONS(4690),
    [sym_cdouble] = ACTIONS(4690),
    [sym_creal] = ACTIONS(4690),
    [sym_size_t] = ACTIONS(4690),
    [sym_ptrdiff_t] = ACTIONS(4690),
    [sym_string] = ACTIONS(4690),
    [sym_cstring] = ACTIONS(4690),
    [sym_dstring] = ACTIONS(4690),
    [sym_wstring] = ACTIONS(4690),
    [sym_noreturn] = ACTIONS(4690),
    [sym_true] = ACTIONS(4690),
    [sym_false] = ACTIONS(4690),
    [sym_null] = ACTIONS(4690),
    [sym_super] = ACTIONS(4690),
    [sym_this] = ACTIONS(4690),
    [sym_assert] = ACTIONS(4690),
    [sym_auto] = ACTIONS(4690),
    [sym_cast] = ACTIONS(4690),
    [sym_catch] = ACTIONS(4690),
    [sym_const] = ACTIONS(4690),
    [sym_delegate] = ACTIONS(4690),
    [sym_delete] = ACTIONS(4690),
    [sym_do] = ACTIONS(4690),
    [sym_else] = ACTIONS(4690),
    [sym_finally] = ACTIONS(4690),
    [sym_function] = ACTIONS(4690),
    [sym_immutable] = ACTIONS(4690),
    [sym_import] = ACTIONS(4690),
    [sym_in] = ACTIONS(4690),
    [sym_inout] = ACTIONS(4690),
    [sym_is] = ACTIONS(4690),
    [sym_mixin] = ACTIONS(4690),
    [sym_new] = ACTIONS(4690),
    [sym_out] = ACTIONS(4690),
    [sym_ref] = ACTIONS(4690),
    [sym_shared] = ACTIONS(4690),
    [sym_throw] = ACTIONS(4690),
    [sym_typeid] = ACTIONS(4690),
    [sym_typeof] = ACTIONS(4690),
    [sym_traits] = ACTIONS(4690),
    [sym_vector] = ACTIONS(4690),
    [sym_void] = ACTIONS(4690),
    [anon_sym_BQUOTE] = ACTIONS(4692),
    [anon_sym_r_DQUOTE] = ACTIONS(4692),
    [anon_sym_x_DQUOTE] = ACTIONS(4692),
    [anon_sym_DQUOTE] = ACTIONS(4692),
    [anon_sym_i_BQUOTE] = ACTIONS(4692),
    [anon_sym_i_DQUOTE] = ACTIONS(4692),
    [anon_sym_iq_LBRACE] = ACTIONS(4692),
    [aux_sym_char_literal_token1] = ACTIONS(4692),
    [anon_sym_SQUOTE] = ACTIONS(4690),
    [anon_sym___DATE__] = ACTIONS(4690),
    [anon_sym___FILE__] = ACTIONS(4690),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4690),
    [anon_sym___FUNCTION__] = ACTIONS(4690),
    [anon_sym___LINE__] = ACTIONS(4690),
    [anon_sym___MODULE__] = ACTIONS(4690),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4690),
    [anon_sym___TIME__] = ACTIONS(4690),
    [anon_sym___TIMESTAMP__] = ACTIONS(4690),
    [anon_sym___VENDOR__] = ACTIONS(4690),
    [anon_sym___VERSION__] = ACTIONS(4690),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4692),
    [sym_float_literal] = ACTIONS(4692),
    [sym__string] = ACTIONS(4692),
  },
  [2282] = {
    [sym_identifier] = ACTIONS(4658),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4660),
    [anon_sym_LBRACE] = ACTIONS(4660),
    [anon_sym_DOT] = ACTIONS(4660),
    [anon_sym_AMP] = ACTIONS(4660),
    [anon_sym_DASH] = ACTIONS(4658),
    [anon_sym_DASH_DASH] = ACTIONS(4660),
    [anon_sym_PLUS] = ACTIONS(4658),
    [anon_sym_PLUS_PLUS] = ACTIONS(4660),
    [anon_sym_BANG] = ACTIONS(4660),
    [anon_sym_LPAREN] = ACTIONS(4660),
    [anon_sym_RPAREN] = ACTIONS(4660),
    [anon_sym_LBRACK] = ACTIONS(4660),
    [anon_sym_SEMI] = ACTIONS(4660),
    [anon_sym_DOLLAR] = ACTIONS(4660),
    [anon_sym_STAR] = ACTIONS(4660),
    [anon_sym_TILDE] = ACTIONS(4660),
    [sym_bool] = ACTIONS(4658),
    [sym_byte] = ACTIONS(4658),
    [sym_ubyte] = ACTIONS(4658),
    [sym_char] = ACTIONS(4658),
    [sym_short] = ACTIONS(4658),
    [sym_ushort] = ACTIONS(4658),
    [sym_int] = ACTIONS(4658),
    [sym_uint] = ACTIONS(4658),
    [sym_long] = ACTIONS(4658),
    [sym_ulong] = ACTIONS(4658),
    [sym_cent] = ACTIONS(4658),
    [sym_ucent] = ACTIONS(4658),
    [sym_wchar] = ACTIONS(4658),
    [sym_dchar] = ACTIONS(4658),
    [sym_float] = ACTIONS(4658),
    [sym_double] = ACTIONS(4658),
    [sym_real] = ACTIONS(4658),
    [sym_ifloat] = ACTIONS(4658),
    [sym_idouble] = ACTIONS(4658),
    [sym_ireal] = ACTIONS(4658),
    [sym_cfloat] = ACTIONS(4658),
    [sym_cdouble] = ACTIONS(4658),
    [sym_creal] = ACTIONS(4658),
    [sym_size_t] = ACTIONS(4658),
    [sym_ptrdiff_t] = ACTIONS(4658),
    [sym_string] = ACTIONS(4658),
    [sym_cstring] = ACTIONS(4658),
    [sym_dstring] = ACTIONS(4658),
    [sym_wstring] = ACTIONS(4658),
    [sym_noreturn] = ACTIONS(4658),
    [sym_true] = ACTIONS(4658),
    [sym_false] = ACTIONS(4658),
    [sym_null] = ACTIONS(4658),
    [sym_super] = ACTIONS(4658),
    [sym_this] = ACTIONS(4658),
    [sym_assert] = ACTIONS(4658),
    [sym_auto] = ACTIONS(4658),
    [sym_cast] = ACTIONS(4658),
    [sym_catch] = ACTIONS(4658),
    [sym_const] = ACTIONS(4658),
    [sym_delegate] = ACTIONS(4658),
    [sym_delete] = ACTIONS(4658),
    [sym_do] = ACTIONS(4658),
    [sym_else] = ACTIONS(4658),
    [sym_finally] = ACTIONS(4658),
    [sym_function] = ACTIONS(4658),
    [sym_immutable] = ACTIONS(4658),
    [sym_import] = ACTIONS(4658),
    [sym_in] = ACTIONS(4658),
    [sym_inout] = ACTIONS(4658),
    [sym_is] = ACTIONS(4658),
    [sym_mixin] = ACTIONS(4658),
    [sym_new] = ACTIONS(4658),
    [sym_out] = ACTIONS(4658),
    [sym_ref] = ACTIONS(4658),
    [sym_shared] = ACTIONS(4658),
    [sym_throw] = ACTIONS(4658),
    [sym_typeid] = ACTIONS(4658),
    [sym_typeof] = ACTIONS(4658),
    [sym_traits] = ACTIONS(4658),
    [sym_vector] = ACTIONS(4658),
    [sym_void] = ACTIONS(4658),
    [anon_sym_BQUOTE] = ACTIONS(4660),
    [anon_sym_r_DQUOTE] = ACTIONS(4660),
    [anon_sym_x_DQUOTE] = ACTIONS(4660),
    [anon_sym_DQUOTE] = ACTIONS(4660),
    [anon_sym_i_BQUOTE] = ACTIONS(4660),
    [anon_sym_i_DQUOTE] = ACTIONS(4660),
    [anon_sym_iq_LBRACE] = ACTIONS(4660),
    [aux_sym_char_literal_token1] = ACTIONS(4660),
    [anon_sym_SQUOTE] = ACTIONS(4658),
    [anon_sym___DATE__] = ACTIONS(4658),
    [anon_sym___FILE__] = ACTIONS(4658),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4658),
    [anon_sym___FUNCTION__] = ACTIONS(4658),
    [anon_sym___LINE__] = ACTIONS(4658),
    [anon_sym___MODULE__] = ACTIONS(4658),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4658),
    [anon_sym___TIME__] = ACTIONS(4658),
    [anon_sym___TIMESTAMP__] = ACTIONS(4658),
    [anon_sym___VENDOR__] = ACTIONS(4658),
    [anon_sym___VERSION__] = ACTIONS(4658),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4660),
    [sym_float_literal] = ACTIONS(4660),
    [sym__string] = ACTIONS(4660),
  },
  [2283] = {
    [sym_identifier] = ACTIONS(4594),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4596),
    [anon_sym_LBRACE] = ACTIONS(4596),
    [anon_sym_DOT] = ACTIONS(4596),
    [anon_sym_AMP] = ACTIONS(4596),
    [anon_sym_DASH] = ACTIONS(4594),
    [anon_sym_DASH_DASH] = ACTIONS(4596),
    [anon_sym_PLUS] = ACTIONS(4594),
    [anon_sym_PLUS_PLUS] = ACTIONS(4596),
    [anon_sym_BANG] = ACTIONS(4596),
    [anon_sym_LPAREN] = ACTIONS(4596),
    [anon_sym_RPAREN] = ACTIONS(4596),
    [anon_sym_LBRACK] = ACTIONS(4596),
    [anon_sym_SEMI] = ACTIONS(4596),
    [anon_sym_DOLLAR] = ACTIONS(4596),
    [anon_sym_STAR] = ACTIONS(4596),
    [anon_sym_TILDE] = ACTIONS(4596),
    [sym_bool] = ACTIONS(4594),
    [sym_byte] = ACTIONS(4594),
    [sym_ubyte] = ACTIONS(4594),
    [sym_char] = ACTIONS(4594),
    [sym_short] = ACTIONS(4594),
    [sym_ushort] = ACTIONS(4594),
    [sym_int] = ACTIONS(4594),
    [sym_uint] = ACTIONS(4594),
    [sym_long] = ACTIONS(4594),
    [sym_ulong] = ACTIONS(4594),
    [sym_cent] = ACTIONS(4594),
    [sym_ucent] = ACTIONS(4594),
    [sym_wchar] = ACTIONS(4594),
    [sym_dchar] = ACTIONS(4594),
    [sym_float] = ACTIONS(4594),
    [sym_double] = ACTIONS(4594),
    [sym_real] = ACTIONS(4594),
    [sym_ifloat] = ACTIONS(4594),
    [sym_idouble] = ACTIONS(4594),
    [sym_ireal] = ACTIONS(4594),
    [sym_cfloat] = ACTIONS(4594),
    [sym_cdouble] = ACTIONS(4594),
    [sym_creal] = ACTIONS(4594),
    [sym_size_t] = ACTIONS(4594),
    [sym_ptrdiff_t] = ACTIONS(4594),
    [sym_string] = ACTIONS(4594),
    [sym_cstring] = ACTIONS(4594),
    [sym_dstring] = ACTIONS(4594),
    [sym_wstring] = ACTIONS(4594),
    [sym_noreturn] = ACTIONS(4594),
    [sym_true] = ACTIONS(4594),
    [sym_false] = ACTIONS(4594),
    [sym_null] = ACTIONS(4594),
    [sym_super] = ACTIONS(4594),
    [sym_this] = ACTIONS(4594),
    [sym_assert] = ACTIONS(4594),
    [sym_auto] = ACTIONS(4594),
    [sym_cast] = ACTIONS(4594),
    [sym_catch] = ACTIONS(4594),
    [sym_const] = ACTIONS(4594),
    [sym_delegate] = ACTIONS(4594),
    [sym_delete] = ACTIONS(4594),
    [sym_do] = ACTIONS(4594),
    [sym_else] = ACTIONS(4594),
    [sym_finally] = ACTIONS(4594),
    [sym_function] = ACTIONS(4594),
    [sym_immutable] = ACTIONS(4594),
    [sym_import] = ACTIONS(4594),
    [sym_in] = ACTIONS(4594),
    [sym_inout] = ACTIONS(4594),
    [sym_is] = ACTIONS(4594),
    [sym_mixin] = ACTIONS(4594),
    [sym_new] = ACTIONS(4594),
    [sym_out] = ACTIONS(4594),
    [sym_ref] = ACTIONS(4594),
    [sym_shared] = ACTIONS(4594),
    [sym_throw] = ACTIONS(4594),
    [sym_typeid] = ACTIONS(4594),
    [sym_typeof] = ACTIONS(4594),
    [sym_traits] = ACTIONS(4594),
    [sym_vector] = ACTIONS(4594),
    [sym_void] = ACTIONS(4594),
    [anon_sym_BQUOTE] = ACTIONS(4596),
    [anon_sym_r_DQUOTE] = ACTIONS(4596),
    [anon_sym_x_DQUOTE] = ACTIONS(4596),
    [anon_sym_DQUOTE] = ACTIONS(4596),
    [anon_sym_i_BQUOTE] = ACTIONS(4596),
    [anon_sym_i_DQUOTE] = ACTIONS(4596),
    [anon_sym_iq_LBRACE] = ACTIONS(4596),
    [aux_sym_char_literal_token1] = ACTIONS(4596),
    [anon_sym_SQUOTE] = ACTIONS(4594),
    [anon_sym___DATE__] = ACTIONS(4594),
    [anon_sym___FILE__] = ACTIONS(4594),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4594),
    [anon_sym___FUNCTION__] = ACTIONS(4594),
    [anon_sym___LINE__] = ACTIONS(4594),
    [anon_sym___MODULE__] = ACTIONS(4594),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4594),
    [anon_sym___TIME__] = ACTIONS(4594),
    [anon_sym___TIMESTAMP__] = ACTIONS(4594),
    [anon_sym___VENDOR__] = ACTIONS(4594),
    [anon_sym___VERSION__] = ACTIONS(4594),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4596),
    [sym_float_literal] = ACTIONS(4596),
    [sym__string] = ACTIONS(4596),
  },
  [2284] = {
    [sym_identifier] = ACTIONS(4832),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4834),
    [anon_sym_LBRACE] = ACTIONS(4834),
    [anon_sym_DOT] = ACTIONS(4834),
    [anon_sym_AMP] = ACTIONS(4834),
    [anon_sym_DASH] = ACTIONS(4832),
    [anon_sym_DASH_DASH] = ACTIONS(4834),
    [anon_sym_PLUS] = ACTIONS(4832),
    [anon_sym_PLUS_PLUS] = ACTIONS(4834),
    [anon_sym_BANG] = ACTIONS(4834),
    [anon_sym_LPAREN] = ACTIONS(4834),
    [anon_sym_RPAREN] = ACTIONS(4834),
    [anon_sym_LBRACK] = ACTIONS(4834),
    [anon_sym_SEMI] = ACTIONS(4834),
    [anon_sym_DOLLAR] = ACTIONS(4834),
    [anon_sym_STAR] = ACTIONS(4834),
    [anon_sym_TILDE] = ACTIONS(4834),
    [sym_bool] = ACTIONS(4832),
    [sym_byte] = ACTIONS(4832),
    [sym_ubyte] = ACTIONS(4832),
    [sym_char] = ACTIONS(4832),
    [sym_short] = ACTIONS(4832),
    [sym_ushort] = ACTIONS(4832),
    [sym_int] = ACTIONS(4832),
    [sym_uint] = ACTIONS(4832),
    [sym_long] = ACTIONS(4832),
    [sym_ulong] = ACTIONS(4832),
    [sym_cent] = ACTIONS(4832),
    [sym_ucent] = ACTIONS(4832),
    [sym_wchar] = ACTIONS(4832),
    [sym_dchar] = ACTIONS(4832),
    [sym_float] = ACTIONS(4832),
    [sym_double] = ACTIONS(4832),
    [sym_real] = ACTIONS(4832),
    [sym_ifloat] = ACTIONS(4832),
    [sym_idouble] = ACTIONS(4832),
    [sym_ireal] = ACTIONS(4832),
    [sym_cfloat] = ACTIONS(4832),
    [sym_cdouble] = ACTIONS(4832),
    [sym_creal] = ACTIONS(4832),
    [sym_size_t] = ACTIONS(4832),
    [sym_ptrdiff_t] = ACTIONS(4832),
    [sym_string] = ACTIONS(4832),
    [sym_cstring] = ACTIONS(4832),
    [sym_dstring] = ACTIONS(4832),
    [sym_wstring] = ACTIONS(4832),
    [sym_noreturn] = ACTIONS(4832),
    [sym_true] = ACTIONS(4832),
    [sym_false] = ACTIONS(4832),
    [sym_null] = ACTIONS(4832),
    [sym_super] = ACTIONS(4832),
    [sym_this] = ACTIONS(4832),
    [sym_assert] = ACTIONS(4832),
    [sym_auto] = ACTIONS(4832),
    [sym_cast] = ACTIONS(4832),
    [sym_catch] = ACTIONS(4832),
    [sym_const] = ACTIONS(4832),
    [sym_delegate] = ACTIONS(4832),
    [sym_delete] = ACTIONS(4832),
    [sym_do] = ACTIONS(4832),
    [sym_else] = ACTIONS(4832),
    [sym_finally] = ACTIONS(4832),
    [sym_function] = ACTIONS(4832),
    [sym_immutable] = ACTIONS(4832),
    [sym_import] = ACTIONS(4832),
    [sym_in] = ACTIONS(4832),
    [sym_inout] = ACTIONS(4832),
    [sym_is] = ACTIONS(4832),
    [sym_mixin] = ACTIONS(4832),
    [sym_new] = ACTIONS(4832),
    [sym_out] = ACTIONS(4832),
    [sym_ref] = ACTIONS(4832),
    [sym_shared] = ACTIONS(4832),
    [sym_throw] = ACTIONS(4832),
    [sym_typeid] = ACTIONS(4832),
    [sym_typeof] = ACTIONS(4832),
    [sym_traits] = ACTIONS(4832),
    [sym_vector] = ACTIONS(4832),
    [sym_void] = ACTIONS(4832),
    [anon_sym_BQUOTE] = ACTIONS(4834),
    [anon_sym_r_DQUOTE] = ACTIONS(4834),
    [anon_sym_x_DQUOTE] = ACTIONS(4834),
    [anon_sym_DQUOTE] = ACTIONS(4834),
    [anon_sym_i_BQUOTE] = ACTIONS(4834),
    [anon_sym_i_DQUOTE] = ACTIONS(4834),
    [anon_sym_iq_LBRACE] = ACTIONS(4834),
    [aux_sym_char_literal_token1] = ACTIONS(4834),
    [anon_sym_SQUOTE] = ACTIONS(4832),
    [anon_sym___DATE__] = ACTIONS(4832),
    [anon_sym___FILE__] = ACTIONS(4832),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4832),
    [anon_sym___FUNCTION__] = ACTIONS(4832),
    [anon_sym___LINE__] = ACTIONS(4832),
    [anon_sym___MODULE__] = ACTIONS(4832),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4832),
    [anon_sym___TIME__] = ACTIONS(4832),
    [anon_sym___TIMESTAMP__] = ACTIONS(4832),
    [anon_sym___VENDOR__] = ACTIONS(4832),
    [anon_sym___VERSION__] = ACTIONS(4832),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4834),
    [sym_float_literal] = ACTIONS(4834),
    [sym__string] = ACTIONS(4834),
  },
  [2285] = {
    [sym_identifier] = ACTIONS(4836),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4838),
    [anon_sym_LBRACE] = ACTIONS(4838),
    [anon_sym_DOT] = ACTIONS(4838),
    [anon_sym_AMP] = ACTIONS(4838),
    [anon_sym_DASH] = ACTIONS(4836),
    [anon_sym_DASH_DASH] = ACTIONS(4838),
    [anon_sym_PLUS] = ACTIONS(4836),
    [anon_sym_PLUS_PLUS] = ACTIONS(4838),
    [anon_sym_BANG] = ACTIONS(4838),
    [anon_sym_LPAREN] = ACTIONS(4838),
    [anon_sym_RPAREN] = ACTIONS(4838),
    [anon_sym_LBRACK] = ACTIONS(4838),
    [anon_sym_SEMI] = ACTIONS(4838),
    [anon_sym_DOLLAR] = ACTIONS(4838),
    [anon_sym_STAR] = ACTIONS(4838),
    [anon_sym_TILDE] = ACTIONS(4838),
    [sym_bool] = ACTIONS(4836),
    [sym_byte] = ACTIONS(4836),
    [sym_ubyte] = ACTIONS(4836),
    [sym_char] = ACTIONS(4836),
    [sym_short] = ACTIONS(4836),
    [sym_ushort] = ACTIONS(4836),
    [sym_int] = ACTIONS(4836),
    [sym_uint] = ACTIONS(4836),
    [sym_long] = ACTIONS(4836),
    [sym_ulong] = ACTIONS(4836),
    [sym_cent] = ACTIONS(4836),
    [sym_ucent] = ACTIONS(4836),
    [sym_wchar] = ACTIONS(4836),
    [sym_dchar] = ACTIONS(4836),
    [sym_float] = ACTIONS(4836),
    [sym_double] = ACTIONS(4836),
    [sym_real] = ACTIONS(4836),
    [sym_ifloat] = ACTIONS(4836),
    [sym_idouble] = ACTIONS(4836),
    [sym_ireal] = ACTIONS(4836),
    [sym_cfloat] = ACTIONS(4836),
    [sym_cdouble] = ACTIONS(4836),
    [sym_creal] = ACTIONS(4836),
    [sym_size_t] = ACTIONS(4836),
    [sym_ptrdiff_t] = ACTIONS(4836),
    [sym_string] = ACTIONS(4836),
    [sym_cstring] = ACTIONS(4836),
    [sym_dstring] = ACTIONS(4836),
    [sym_wstring] = ACTIONS(4836),
    [sym_noreturn] = ACTIONS(4836),
    [sym_true] = ACTIONS(4836),
    [sym_false] = ACTIONS(4836),
    [sym_null] = ACTIONS(4836),
    [sym_super] = ACTIONS(4836),
    [sym_this] = ACTIONS(4836),
    [sym_assert] = ACTIONS(4836),
    [sym_auto] = ACTIONS(4836),
    [sym_cast] = ACTIONS(4836),
    [sym_catch] = ACTIONS(4836),
    [sym_const] = ACTIONS(4836),
    [sym_delegate] = ACTIONS(4836),
    [sym_delete] = ACTIONS(4836),
    [sym_do] = ACTIONS(4836),
    [sym_else] = ACTIONS(4836),
    [sym_finally] = ACTIONS(4836),
    [sym_function] = ACTIONS(4836),
    [sym_immutable] = ACTIONS(4836),
    [sym_import] = ACTIONS(4836),
    [sym_in] = ACTIONS(4836),
    [sym_inout] = ACTIONS(4836),
    [sym_is] = ACTIONS(4836),
    [sym_mixin] = ACTIONS(4836),
    [sym_new] = ACTIONS(4836),
    [sym_out] = ACTIONS(4836),
    [sym_ref] = ACTIONS(4836),
    [sym_shared] = ACTIONS(4836),
    [sym_throw] = ACTIONS(4836),
    [sym_typeid] = ACTIONS(4836),
    [sym_typeof] = ACTIONS(4836),
    [sym_traits] = ACTIONS(4836),
    [sym_vector] = ACTIONS(4836),
    [sym_void] = ACTIONS(4836),
    [anon_sym_BQUOTE] = ACTIONS(4838),
    [anon_sym_r_DQUOTE] = ACTIONS(4838),
    [anon_sym_x_DQUOTE] = ACTIONS(4838),
    [anon_sym_DQUOTE] = ACTIONS(4838),
    [anon_sym_i_BQUOTE] = ACTIONS(4838),
    [anon_sym_i_DQUOTE] = ACTIONS(4838),
    [anon_sym_iq_LBRACE] = ACTIONS(4838),
    [aux_sym_char_literal_token1] = ACTIONS(4838),
    [anon_sym_SQUOTE] = ACTIONS(4836),
    [anon_sym___DATE__] = ACTIONS(4836),
    [anon_sym___FILE__] = ACTIONS(4836),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4836),
    [anon_sym___FUNCTION__] = ACTIONS(4836),
    [anon_sym___LINE__] = ACTIONS(4836),
    [anon_sym___MODULE__] = ACTIONS(4836),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4836),
    [anon_sym___TIME__] = ACTIONS(4836),
    [anon_sym___TIMESTAMP__] = ACTIONS(4836),
    [anon_sym___VENDOR__] = ACTIONS(4836),
    [anon_sym___VERSION__] = ACTIONS(4836),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4838),
    [sym_float_literal] = ACTIONS(4838),
    [sym__string] = ACTIONS(4838),
  },
  [2286] = {
    [sym_identifier] = ACTIONS(4844),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4846),
    [anon_sym_LBRACE] = ACTIONS(4846),
    [anon_sym_DOT] = ACTIONS(4846),
    [anon_sym_AMP] = ACTIONS(4846),
    [anon_sym_DASH] = ACTIONS(4844),
    [anon_sym_DASH_DASH] = ACTIONS(4846),
    [anon_sym_PLUS] = ACTIONS(4844),
    [anon_sym_PLUS_PLUS] = ACTIONS(4846),
    [anon_sym_BANG] = ACTIONS(4846),
    [anon_sym_LPAREN] = ACTIONS(4846),
    [anon_sym_RPAREN] = ACTIONS(4846),
    [anon_sym_LBRACK] = ACTIONS(4846),
    [anon_sym_SEMI] = ACTIONS(4846),
    [anon_sym_DOLLAR] = ACTIONS(4846),
    [anon_sym_STAR] = ACTIONS(4846),
    [anon_sym_TILDE] = ACTIONS(4846),
    [sym_bool] = ACTIONS(4844),
    [sym_byte] = ACTIONS(4844),
    [sym_ubyte] = ACTIONS(4844),
    [sym_char] = ACTIONS(4844),
    [sym_short] = ACTIONS(4844),
    [sym_ushort] = ACTIONS(4844),
    [sym_int] = ACTIONS(4844),
    [sym_uint] = ACTIONS(4844),
    [sym_long] = ACTIONS(4844),
    [sym_ulong] = ACTIONS(4844),
    [sym_cent] = ACTIONS(4844),
    [sym_ucent] = ACTIONS(4844),
    [sym_wchar] = ACTIONS(4844),
    [sym_dchar] = ACTIONS(4844),
    [sym_float] = ACTIONS(4844),
    [sym_double] = ACTIONS(4844),
    [sym_real] = ACTIONS(4844),
    [sym_ifloat] = ACTIONS(4844),
    [sym_idouble] = ACTIONS(4844),
    [sym_ireal] = ACTIONS(4844),
    [sym_cfloat] = ACTIONS(4844),
    [sym_cdouble] = ACTIONS(4844),
    [sym_creal] = ACTIONS(4844),
    [sym_size_t] = ACTIONS(4844),
    [sym_ptrdiff_t] = ACTIONS(4844),
    [sym_string] = ACTIONS(4844),
    [sym_cstring] = ACTIONS(4844),
    [sym_dstring] = ACTIONS(4844),
    [sym_wstring] = ACTIONS(4844),
    [sym_noreturn] = ACTIONS(4844),
    [sym_true] = ACTIONS(4844),
    [sym_false] = ACTIONS(4844),
    [sym_null] = ACTIONS(4844),
    [sym_super] = ACTIONS(4844),
    [sym_this] = ACTIONS(4844),
    [sym_assert] = ACTIONS(4844),
    [sym_auto] = ACTIONS(4844),
    [sym_cast] = ACTIONS(4844),
    [sym_catch] = ACTIONS(4844),
    [sym_const] = ACTIONS(4844),
    [sym_delegate] = ACTIONS(4844),
    [sym_delete] = ACTIONS(4844),
    [sym_do] = ACTIONS(4844),
    [sym_else] = ACTIONS(4844),
    [sym_finally] = ACTIONS(4844),
    [sym_function] = ACTIONS(4844),
    [sym_immutable] = ACTIONS(4844),
    [sym_import] = ACTIONS(4844),
    [sym_in] = ACTIONS(4844),
    [sym_inout] = ACTIONS(4844),
    [sym_is] = ACTIONS(4844),
    [sym_mixin] = ACTIONS(4844),
    [sym_new] = ACTIONS(4844),
    [sym_out] = ACTIONS(4844),
    [sym_ref] = ACTIONS(4844),
    [sym_shared] = ACTIONS(4844),
    [sym_throw] = ACTIONS(4844),
    [sym_typeid] = ACTIONS(4844),
    [sym_typeof] = ACTIONS(4844),
    [sym_traits] = ACTIONS(4844),
    [sym_vector] = ACTIONS(4844),
    [sym_void] = ACTIONS(4844),
    [anon_sym_BQUOTE] = ACTIONS(4846),
    [anon_sym_r_DQUOTE] = ACTIONS(4846),
    [anon_sym_x_DQUOTE] = ACTIONS(4846),
    [anon_sym_DQUOTE] = ACTIONS(4846),
    [anon_sym_i_BQUOTE] = ACTIONS(4846),
    [anon_sym_i_DQUOTE] = ACTIONS(4846),
    [anon_sym_iq_LBRACE] = ACTIONS(4846),
    [aux_sym_char_literal_token1] = ACTIONS(4846),
    [anon_sym_SQUOTE] = ACTIONS(4844),
    [anon_sym___DATE__] = ACTIONS(4844),
    [anon_sym___FILE__] = ACTIONS(4844),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4844),
    [anon_sym___FUNCTION__] = ACTIONS(4844),
    [anon_sym___LINE__] = ACTIONS(4844),
    [anon_sym___MODULE__] = ACTIONS(4844),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4844),
    [anon_sym___TIME__] = ACTIONS(4844),
    [anon_sym___TIMESTAMP__] = ACTIONS(4844),
    [anon_sym___VENDOR__] = ACTIONS(4844),
    [anon_sym___VERSION__] = ACTIONS(4844),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4846),
    [sym_float_literal] = ACTIONS(4846),
    [sym__string] = ACTIONS(4846),
  },
  [2287] = {
    [sym_identifier] = ACTIONS(4864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4866),
    [anon_sym_LBRACE] = ACTIONS(4866),
    [anon_sym_DOT] = ACTIONS(4866),
    [anon_sym_AMP] = ACTIONS(4866),
    [anon_sym_DASH] = ACTIONS(4864),
    [anon_sym_DASH_DASH] = ACTIONS(4866),
    [anon_sym_PLUS] = ACTIONS(4864),
    [anon_sym_PLUS_PLUS] = ACTIONS(4866),
    [anon_sym_BANG] = ACTIONS(4866),
    [anon_sym_LPAREN] = ACTIONS(4866),
    [anon_sym_RPAREN] = ACTIONS(4866),
    [anon_sym_LBRACK] = ACTIONS(4866),
    [anon_sym_SEMI] = ACTIONS(4866),
    [anon_sym_DOLLAR] = ACTIONS(4866),
    [anon_sym_STAR] = ACTIONS(4866),
    [anon_sym_TILDE] = ACTIONS(4866),
    [sym_bool] = ACTIONS(4864),
    [sym_byte] = ACTIONS(4864),
    [sym_ubyte] = ACTIONS(4864),
    [sym_char] = ACTIONS(4864),
    [sym_short] = ACTIONS(4864),
    [sym_ushort] = ACTIONS(4864),
    [sym_int] = ACTIONS(4864),
    [sym_uint] = ACTIONS(4864),
    [sym_long] = ACTIONS(4864),
    [sym_ulong] = ACTIONS(4864),
    [sym_cent] = ACTIONS(4864),
    [sym_ucent] = ACTIONS(4864),
    [sym_wchar] = ACTIONS(4864),
    [sym_dchar] = ACTIONS(4864),
    [sym_float] = ACTIONS(4864),
    [sym_double] = ACTIONS(4864),
    [sym_real] = ACTIONS(4864),
    [sym_ifloat] = ACTIONS(4864),
    [sym_idouble] = ACTIONS(4864),
    [sym_ireal] = ACTIONS(4864),
    [sym_cfloat] = ACTIONS(4864),
    [sym_cdouble] = ACTIONS(4864),
    [sym_creal] = ACTIONS(4864),
    [sym_size_t] = ACTIONS(4864),
    [sym_ptrdiff_t] = ACTIONS(4864),
    [sym_string] = ACTIONS(4864),
    [sym_cstring] = ACTIONS(4864),
    [sym_dstring] = ACTIONS(4864),
    [sym_wstring] = ACTIONS(4864),
    [sym_noreturn] = ACTIONS(4864),
    [sym_true] = ACTIONS(4864),
    [sym_false] = ACTIONS(4864),
    [sym_null] = ACTIONS(4864),
    [sym_super] = ACTIONS(4864),
    [sym_this] = ACTIONS(4864),
    [sym_assert] = ACTIONS(4864),
    [sym_auto] = ACTIONS(4864),
    [sym_cast] = ACTIONS(4864),
    [sym_catch] = ACTIONS(4864),
    [sym_const] = ACTIONS(4864),
    [sym_delegate] = ACTIONS(4864),
    [sym_delete] = ACTIONS(4864),
    [sym_do] = ACTIONS(4864),
    [sym_else] = ACTIONS(4864),
    [sym_finally] = ACTIONS(4864),
    [sym_function] = ACTIONS(4864),
    [sym_immutable] = ACTIONS(4864),
    [sym_import] = ACTIONS(4864),
    [sym_in] = ACTIONS(4864),
    [sym_inout] = ACTIONS(4864),
    [sym_is] = ACTIONS(4864),
    [sym_mixin] = ACTIONS(4864),
    [sym_new] = ACTIONS(4864),
    [sym_out] = ACTIONS(4864),
    [sym_ref] = ACTIONS(4864),
    [sym_shared] = ACTIONS(4864),
    [sym_throw] = ACTIONS(4864),
    [sym_typeid] = ACTIONS(4864),
    [sym_typeof] = ACTIONS(4864),
    [sym_traits] = ACTIONS(4864),
    [sym_vector] = ACTIONS(4864),
    [sym_void] = ACTIONS(4864),
    [anon_sym_BQUOTE] = ACTIONS(4866),
    [anon_sym_r_DQUOTE] = ACTIONS(4866),
    [anon_sym_x_DQUOTE] = ACTIONS(4866),
    [anon_sym_DQUOTE] = ACTIONS(4866),
    [anon_sym_i_BQUOTE] = ACTIONS(4866),
    [anon_sym_i_DQUOTE] = ACTIONS(4866),
    [anon_sym_iq_LBRACE] = ACTIONS(4866),
    [aux_sym_char_literal_token1] = ACTIONS(4866),
    [anon_sym_SQUOTE] = ACTIONS(4864),
    [anon_sym___DATE__] = ACTIONS(4864),
    [anon_sym___FILE__] = ACTIONS(4864),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4864),
    [anon_sym___FUNCTION__] = ACTIONS(4864),
    [anon_sym___LINE__] = ACTIONS(4864),
    [anon_sym___MODULE__] = ACTIONS(4864),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4864),
    [anon_sym___TIME__] = ACTIONS(4864),
    [anon_sym___TIMESTAMP__] = ACTIONS(4864),
    [anon_sym___VENDOR__] = ACTIONS(4864),
    [anon_sym___VERSION__] = ACTIONS(4864),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4866),
    [sym_float_literal] = ACTIONS(4866),
    [sym__string] = ACTIONS(4866),
  },
  [2288] = {
    [sym_identifier] = ACTIONS(4602),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4604),
    [anon_sym_LBRACE] = ACTIONS(4604),
    [anon_sym_DOT] = ACTIONS(4604),
    [anon_sym_AMP] = ACTIONS(4604),
    [anon_sym_DASH] = ACTIONS(4602),
    [anon_sym_DASH_DASH] = ACTIONS(4604),
    [anon_sym_PLUS] = ACTIONS(4602),
    [anon_sym_PLUS_PLUS] = ACTIONS(4604),
    [anon_sym_BANG] = ACTIONS(4604),
    [anon_sym_LPAREN] = ACTIONS(4604),
    [anon_sym_RPAREN] = ACTIONS(4604),
    [anon_sym_LBRACK] = ACTIONS(4604),
    [anon_sym_SEMI] = ACTIONS(4604),
    [anon_sym_DOLLAR] = ACTIONS(4604),
    [anon_sym_STAR] = ACTIONS(4604),
    [anon_sym_TILDE] = ACTIONS(4604),
    [sym_bool] = ACTIONS(4602),
    [sym_byte] = ACTIONS(4602),
    [sym_ubyte] = ACTIONS(4602),
    [sym_char] = ACTIONS(4602),
    [sym_short] = ACTIONS(4602),
    [sym_ushort] = ACTIONS(4602),
    [sym_int] = ACTIONS(4602),
    [sym_uint] = ACTIONS(4602),
    [sym_long] = ACTIONS(4602),
    [sym_ulong] = ACTIONS(4602),
    [sym_cent] = ACTIONS(4602),
    [sym_ucent] = ACTIONS(4602),
    [sym_wchar] = ACTIONS(4602),
    [sym_dchar] = ACTIONS(4602),
    [sym_float] = ACTIONS(4602),
    [sym_double] = ACTIONS(4602),
    [sym_real] = ACTIONS(4602),
    [sym_ifloat] = ACTIONS(4602),
    [sym_idouble] = ACTIONS(4602),
    [sym_ireal] = ACTIONS(4602),
    [sym_cfloat] = ACTIONS(4602),
    [sym_cdouble] = ACTIONS(4602),
    [sym_creal] = ACTIONS(4602),
    [sym_size_t] = ACTIONS(4602),
    [sym_ptrdiff_t] = ACTIONS(4602),
    [sym_string] = ACTIONS(4602),
    [sym_cstring] = ACTIONS(4602),
    [sym_dstring] = ACTIONS(4602),
    [sym_wstring] = ACTIONS(4602),
    [sym_noreturn] = ACTIONS(4602),
    [sym_true] = ACTIONS(4602),
    [sym_false] = ACTIONS(4602),
    [sym_null] = ACTIONS(4602),
    [sym_super] = ACTIONS(4602),
    [sym_this] = ACTIONS(4602),
    [sym_assert] = ACTIONS(4602),
    [sym_auto] = ACTIONS(4602),
    [sym_cast] = ACTIONS(4602),
    [sym_catch] = ACTIONS(4602),
    [sym_const] = ACTIONS(4602),
    [sym_delegate] = ACTIONS(4602),
    [sym_delete] = ACTIONS(4602),
    [sym_do] = ACTIONS(4602),
    [sym_else] = ACTIONS(4602),
    [sym_finally] = ACTIONS(4602),
    [sym_function] = ACTIONS(4602),
    [sym_immutable] = ACTIONS(4602),
    [sym_import] = ACTIONS(4602),
    [sym_in] = ACTIONS(4602),
    [sym_inout] = ACTIONS(4602),
    [sym_is] = ACTIONS(4602),
    [sym_mixin] = ACTIONS(4602),
    [sym_new] = ACTIONS(4602),
    [sym_out] = ACTIONS(4602),
    [sym_ref] = ACTIONS(4602),
    [sym_shared] = ACTIONS(4602),
    [sym_throw] = ACTIONS(4602),
    [sym_typeid] = ACTIONS(4602),
    [sym_typeof] = ACTIONS(4602),
    [sym_traits] = ACTIONS(4602),
    [sym_vector] = ACTIONS(4602),
    [sym_void] = ACTIONS(4602),
    [anon_sym_BQUOTE] = ACTIONS(4604),
    [anon_sym_r_DQUOTE] = ACTIONS(4604),
    [anon_sym_x_DQUOTE] = ACTIONS(4604),
    [anon_sym_DQUOTE] = ACTIONS(4604),
    [anon_sym_i_BQUOTE] = ACTIONS(4604),
    [anon_sym_i_DQUOTE] = ACTIONS(4604),
    [anon_sym_iq_LBRACE] = ACTIONS(4604),
    [aux_sym_char_literal_token1] = ACTIONS(4604),
    [anon_sym_SQUOTE] = ACTIONS(4602),
    [anon_sym___DATE__] = ACTIONS(4602),
    [anon_sym___FILE__] = ACTIONS(4602),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4602),
    [anon_sym___FUNCTION__] = ACTIONS(4602),
    [anon_sym___LINE__] = ACTIONS(4602),
    [anon_sym___MODULE__] = ACTIONS(4602),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4602),
    [anon_sym___TIME__] = ACTIONS(4602),
    [anon_sym___TIMESTAMP__] = ACTIONS(4602),
    [anon_sym___VENDOR__] = ACTIONS(4602),
    [anon_sym___VERSION__] = ACTIONS(4602),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4604),
    [sym_float_literal] = ACTIONS(4604),
    [sym__string] = ACTIONS(4604),
  },
  [2289] = {
    [sym_identifier] = ACTIONS(4149),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4151),
    [anon_sym_LBRACE] = ACTIONS(4151),
    [anon_sym_DOT] = ACTIONS(4151),
    [anon_sym_AMP] = ACTIONS(4151),
    [anon_sym_DASH] = ACTIONS(4149),
    [anon_sym_DASH_DASH] = ACTIONS(4151),
    [anon_sym_PLUS] = ACTIONS(4149),
    [anon_sym_PLUS_PLUS] = ACTIONS(4151),
    [anon_sym_BANG] = ACTIONS(4151),
    [anon_sym_LPAREN] = ACTIONS(4151),
    [anon_sym_RPAREN] = ACTIONS(4151),
    [anon_sym_LBRACK] = ACTIONS(4151),
    [anon_sym_SEMI] = ACTIONS(4151),
    [anon_sym_DOLLAR] = ACTIONS(4151),
    [anon_sym_STAR] = ACTIONS(4151),
    [anon_sym_TILDE] = ACTIONS(4151),
    [sym_bool] = ACTIONS(4149),
    [sym_byte] = ACTIONS(4149),
    [sym_ubyte] = ACTIONS(4149),
    [sym_char] = ACTIONS(4149),
    [sym_short] = ACTIONS(4149),
    [sym_ushort] = ACTIONS(4149),
    [sym_int] = ACTIONS(4149),
    [sym_uint] = ACTIONS(4149),
    [sym_long] = ACTIONS(4149),
    [sym_ulong] = ACTIONS(4149),
    [sym_cent] = ACTIONS(4149),
    [sym_ucent] = ACTIONS(4149),
    [sym_wchar] = ACTIONS(4149),
    [sym_dchar] = ACTIONS(4149),
    [sym_float] = ACTIONS(4149),
    [sym_double] = ACTIONS(4149),
    [sym_real] = ACTIONS(4149),
    [sym_ifloat] = ACTIONS(4149),
    [sym_idouble] = ACTIONS(4149),
    [sym_ireal] = ACTIONS(4149),
    [sym_cfloat] = ACTIONS(4149),
    [sym_cdouble] = ACTIONS(4149),
    [sym_creal] = ACTIONS(4149),
    [sym_size_t] = ACTIONS(4149),
    [sym_ptrdiff_t] = ACTIONS(4149),
    [sym_string] = ACTIONS(4149),
    [sym_cstring] = ACTIONS(4149),
    [sym_dstring] = ACTIONS(4149),
    [sym_wstring] = ACTIONS(4149),
    [sym_noreturn] = ACTIONS(4149),
    [sym_true] = ACTIONS(4149),
    [sym_false] = ACTIONS(4149),
    [sym_null] = ACTIONS(4149),
    [sym_super] = ACTIONS(4149),
    [sym_this] = ACTIONS(4149),
    [sym_assert] = ACTIONS(4149),
    [sym_auto] = ACTIONS(4149),
    [sym_cast] = ACTIONS(4149),
    [sym_catch] = ACTIONS(4149),
    [sym_const] = ACTIONS(4149),
    [sym_delegate] = ACTIONS(4149),
    [sym_delete] = ACTIONS(4149),
    [sym_do] = ACTIONS(4149),
    [sym_else] = ACTIONS(4149),
    [sym_finally] = ACTIONS(4149),
    [sym_function] = ACTIONS(4149),
    [sym_immutable] = ACTIONS(4149),
    [sym_import] = ACTIONS(4149),
    [sym_in] = ACTIONS(4149),
    [sym_inout] = ACTIONS(4149),
    [sym_is] = ACTIONS(4149),
    [sym_mixin] = ACTIONS(4149),
    [sym_new] = ACTIONS(4149),
    [sym_out] = ACTIONS(4149),
    [sym_ref] = ACTIONS(4149),
    [sym_shared] = ACTIONS(4149),
    [sym_throw] = ACTIONS(4149),
    [sym_typeid] = ACTIONS(4149),
    [sym_typeof] = ACTIONS(4149),
    [sym_traits] = ACTIONS(4149),
    [sym_vector] = ACTIONS(4149),
    [sym_void] = ACTIONS(4149),
    [anon_sym_BQUOTE] = ACTIONS(4151),
    [anon_sym_r_DQUOTE] = ACTIONS(4151),
    [anon_sym_x_DQUOTE] = ACTIONS(4151),
    [anon_sym_DQUOTE] = ACTIONS(4151),
    [anon_sym_i_BQUOTE] = ACTIONS(4151),
    [anon_sym_i_DQUOTE] = ACTIONS(4151),
    [anon_sym_iq_LBRACE] = ACTIONS(4151),
    [aux_sym_char_literal_token1] = ACTIONS(4151),
    [anon_sym_SQUOTE] = ACTIONS(4149),
    [anon_sym___DATE__] = ACTIONS(4149),
    [anon_sym___FILE__] = ACTIONS(4149),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4149),
    [anon_sym___FUNCTION__] = ACTIONS(4149),
    [anon_sym___LINE__] = ACTIONS(4149),
    [anon_sym___MODULE__] = ACTIONS(4149),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4149),
    [anon_sym___TIME__] = ACTIONS(4149),
    [anon_sym___TIMESTAMP__] = ACTIONS(4149),
    [anon_sym___VENDOR__] = ACTIONS(4149),
    [anon_sym___VERSION__] = ACTIONS(4149),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4151),
    [sym_float_literal] = ACTIONS(4151),
    [sym__string] = ACTIONS(4151),
  },
  [2290] = {
    [sym_identifier] = ACTIONS(4868),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4870),
    [anon_sym_LBRACE] = ACTIONS(4870),
    [anon_sym_DOT] = ACTIONS(4870),
    [anon_sym_AMP] = ACTIONS(4870),
    [anon_sym_DASH] = ACTIONS(4868),
    [anon_sym_DASH_DASH] = ACTIONS(4870),
    [anon_sym_PLUS] = ACTIONS(4868),
    [anon_sym_PLUS_PLUS] = ACTIONS(4870),
    [anon_sym_BANG] = ACTIONS(4870),
    [anon_sym_LPAREN] = ACTIONS(4870),
    [anon_sym_RPAREN] = ACTIONS(4870),
    [anon_sym_LBRACK] = ACTIONS(4870),
    [anon_sym_SEMI] = ACTIONS(4870),
    [anon_sym_DOLLAR] = ACTIONS(4870),
    [anon_sym_STAR] = ACTIONS(4870),
    [anon_sym_TILDE] = ACTIONS(4870),
    [sym_bool] = ACTIONS(4868),
    [sym_byte] = ACTIONS(4868),
    [sym_ubyte] = ACTIONS(4868),
    [sym_char] = ACTIONS(4868),
    [sym_short] = ACTIONS(4868),
    [sym_ushort] = ACTIONS(4868),
    [sym_int] = ACTIONS(4868),
    [sym_uint] = ACTIONS(4868),
    [sym_long] = ACTIONS(4868),
    [sym_ulong] = ACTIONS(4868),
    [sym_cent] = ACTIONS(4868),
    [sym_ucent] = ACTIONS(4868),
    [sym_wchar] = ACTIONS(4868),
    [sym_dchar] = ACTIONS(4868),
    [sym_float] = ACTIONS(4868),
    [sym_double] = ACTIONS(4868),
    [sym_real] = ACTIONS(4868),
    [sym_ifloat] = ACTIONS(4868),
    [sym_idouble] = ACTIONS(4868),
    [sym_ireal] = ACTIONS(4868),
    [sym_cfloat] = ACTIONS(4868),
    [sym_cdouble] = ACTIONS(4868),
    [sym_creal] = ACTIONS(4868),
    [sym_size_t] = ACTIONS(4868),
    [sym_ptrdiff_t] = ACTIONS(4868),
    [sym_string] = ACTIONS(4868),
    [sym_cstring] = ACTIONS(4868),
    [sym_dstring] = ACTIONS(4868),
    [sym_wstring] = ACTIONS(4868),
    [sym_noreturn] = ACTIONS(4868),
    [sym_true] = ACTIONS(4868),
    [sym_false] = ACTIONS(4868),
    [sym_null] = ACTIONS(4868),
    [sym_super] = ACTIONS(4868),
    [sym_this] = ACTIONS(4868),
    [sym_assert] = ACTIONS(4868),
    [sym_auto] = ACTIONS(4868),
    [sym_cast] = ACTIONS(4868),
    [sym_catch] = ACTIONS(4868),
    [sym_const] = ACTIONS(4868),
    [sym_delegate] = ACTIONS(4868),
    [sym_delete] = ACTIONS(4868),
    [sym_do] = ACTIONS(4868),
    [sym_else] = ACTIONS(4868),
    [sym_finally] = ACTIONS(4868),
    [sym_function] = ACTIONS(4868),
    [sym_immutable] = ACTIONS(4868),
    [sym_import] = ACTIONS(4868),
    [sym_in] = ACTIONS(4868),
    [sym_inout] = ACTIONS(4868),
    [sym_is] = ACTIONS(4868),
    [sym_mixin] = ACTIONS(4868),
    [sym_new] = ACTIONS(4868),
    [sym_out] = ACTIONS(4868),
    [sym_ref] = ACTIONS(4868),
    [sym_shared] = ACTIONS(4868),
    [sym_throw] = ACTIONS(4868),
    [sym_typeid] = ACTIONS(4868),
    [sym_typeof] = ACTIONS(4868),
    [sym_traits] = ACTIONS(4868),
    [sym_vector] = ACTIONS(4868),
    [sym_void] = ACTIONS(4868),
    [anon_sym_BQUOTE] = ACTIONS(4870),
    [anon_sym_r_DQUOTE] = ACTIONS(4870),
    [anon_sym_x_DQUOTE] = ACTIONS(4870),
    [anon_sym_DQUOTE] = ACTIONS(4870),
    [anon_sym_i_BQUOTE] = ACTIONS(4870),
    [anon_sym_i_DQUOTE] = ACTIONS(4870),
    [anon_sym_iq_LBRACE] = ACTIONS(4870),
    [aux_sym_char_literal_token1] = ACTIONS(4870),
    [anon_sym_SQUOTE] = ACTIONS(4868),
    [anon_sym___DATE__] = ACTIONS(4868),
    [anon_sym___FILE__] = ACTIONS(4868),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4868),
    [anon_sym___FUNCTION__] = ACTIONS(4868),
    [anon_sym___LINE__] = ACTIONS(4868),
    [anon_sym___MODULE__] = ACTIONS(4868),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4868),
    [anon_sym___TIME__] = ACTIONS(4868),
    [anon_sym___TIMESTAMP__] = ACTIONS(4868),
    [anon_sym___VENDOR__] = ACTIONS(4868),
    [anon_sym___VERSION__] = ACTIONS(4868),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4870),
    [sym_float_literal] = ACTIONS(4870),
    [sym__string] = ACTIONS(4870),
  },
  [2291] = {
    [sym_identifier] = ACTIONS(5072),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5074),
    [anon_sym_LBRACE] = ACTIONS(5074),
    [anon_sym_DOT] = ACTIONS(5074),
    [anon_sym_AMP] = ACTIONS(5074),
    [anon_sym_DASH] = ACTIONS(5072),
    [anon_sym_DASH_DASH] = ACTIONS(5074),
    [anon_sym_PLUS] = ACTIONS(5072),
    [anon_sym_PLUS_PLUS] = ACTIONS(5074),
    [anon_sym_BANG] = ACTIONS(5074),
    [anon_sym_LPAREN] = ACTIONS(5074),
    [anon_sym_RPAREN] = ACTIONS(5074),
    [anon_sym_LBRACK] = ACTIONS(5074),
    [anon_sym_SEMI] = ACTIONS(5074),
    [anon_sym_DOLLAR] = ACTIONS(5074),
    [anon_sym_STAR] = ACTIONS(5074),
    [anon_sym_TILDE] = ACTIONS(5074),
    [sym_bool] = ACTIONS(5072),
    [sym_byte] = ACTIONS(5072),
    [sym_ubyte] = ACTIONS(5072),
    [sym_char] = ACTIONS(5072),
    [sym_short] = ACTIONS(5072),
    [sym_ushort] = ACTIONS(5072),
    [sym_int] = ACTIONS(5072),
    [sym_uint] = ACTIONS(5072),
    [sym_long] = ACTIONS(5072),
    [sym_ulong] = ACTIONS(5072),
    [sym_cent] = ACTIONS(5072),
    [sym_ucent] = ACTIONS(5072),
    [sym_wchar] = ACTIONS(5072),
    [sym_dchar] = ACTIONS(5072),
    [sym_float] = ACTIONS(5072),
    [sym_double] = ACTIONS(5072),
    [sym_real] = ACTIONS(5072),
    [sym_ifloat] = ACTIONS(5072),
    [sym_idouble] = ACTIONS(5072),
    [sym_ireal] = ACTIONS(5072),
    [sym_cfloat] = ACTIONS(5072),
    [sym_cdouble] = ACTIONS(5072),
    [sym_creal] = ACTIONS(5072),
    [sym_size_t] = ACTIONS(5072),
    [sym_ptrdiff_t] = ACTIONS(5072),
    [sym_string] = ACTIONS(5072),
    [sym_cstring] = ACTIONS(5072),
    [sym_dstring] = ACTIONS(5072),
    [sym_wstring] = ACTIONS(5072),
    [sym_noreturn] = ACTIONS(5072),
    [sym_true] = ACTIONS(5072),
    [sym_false] = ACTIONS(5072),
    [sym_null] = ACTIONS(5072),
    [sym_super] = ACTIONS(5072),
    [sym_this] = ACTIONS(5072),
    [sym_assert] = ACTIONS(5072),
    [sym_auto] = ACTIONS(5072),
    [sym_cast] = ACTIONS(5072),
    [sym_catch] = ACTIONS(5072),
    [sym_const] = ACTIONS(5072),
    [sym_delegate] = ACTIONS(5072),
    [sym_delete] = ACTIONS(5072),
    [sym_do] = ACTIONS(5072),
    [sym_else] = ACTIONS(5072),
    [sym_finally] = ACTIONS(5072),
    [sym_function] = ACTIONS(5072),
    [sym_immutable] = ACTIONS(5072),
    [sym_import] = ACTIONS(5072),
    [sym_in] = ACTIONS(5072),
    [sym_inout] = ACTIONS(5072),
    [sym_is] = ACTIONS(5072),
    [sym_mixin] = ACTIONS(5072),
    [sym_new] = ACTIONS(5072),
    [sym_out] = ACTIONS(5072),
    [sym_ref] = ACTIONS(5072),
    [sym_shared] = ACTIONS(5072),
    [sym_throw] = ACTIONS(5072),
    [sym_typeid] = ACTIONS(5072),
    [sym_typeof] = ACTIONS(5072),
    [sym_traits] = ACTIONS(5072),
    [sym_vector] = ACTIONS(5072),
    [sym_void] = ACTIONS(5072),
    [anon_sym_BQUOTE] = ACTIONS(5074),
    [anon_sym_r_DQUOTE] = ACTIONS(5074),
    [anon_sym_x_DQUOTE] = ACTIONS(5074),
    [anon_sym_DQUOTE] = ACTIONS(5074),
    [anon_sym_i_BQUOTE] = ACTIONS(5074),
    [anon_sym_i_DQUOTE] = ACTIONS(5074),
    [anon_sym_iq_LBRACE] = ACTIONS(5074),
    [aux_sym_char_literal_token1] = ACTIONS(5074),
    [anon_sym_SQUOTE] = ACTIONS(5072),
    [anon_sym___DATE__] = ACTIONS(5072),
    [anon_sym___FILE__] = ACTIONS(5072),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5072),
    [anon_sym___FUNCTION__] = ACTIONS(5072),
    [anon_sym___LINE__] = ACTIONS(5072),
    [anon_sym___MODULE__] = ACTIONS(5072),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5072),
    [anon_sym___TIME__] = ACTIONS(5072),
    [anon_sym___TIMESTAMP__] = ACTIONS(5072),
    [anon_sym___VENDOR__] = ACTIONS(5072),
    [anon_sym___VERSION__] = ACTIONS(5072),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5074),
    [sym_float_literal] = ACTIONS(5074),
    [sym__string] = ACTIONS(5074),
  },
  [2292] = {
    [sym_identifier] = ACTIONS(4872),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4874),
    [anon_sym_LBRACE] = ACTIONS(4874),
    [anon_sym_DOT] = ACTIONS(4874),
    [anon_sym_AMP] = ACTIONS(4874),
    [anon_sym_DASH] = ACTIONS(4872),
    [anon_sym_DASH_DASH] = ACTIONS(4874),
    [anon_sym_PLUS] = ACTIONS(4872),
    [anon_sym_PLUS_PLUS] = ACTIONS(4874),
    [anon_sym_BANG] = ACTIONS(4874),
    [anon_sym_LPAREN] = ACTIONS(4874),
    [anon_sym_RPAREN] = ACTIONS(4874),
    [anon_sym_LBRACK] = ACTIONS(4874),
    [anon_sym_SEMI] = ACTIONS(4874),
    [anon_sym_DOLLAR] = ACTIONS(4874),
    [anon_sym_STAR] = ACTIONS(4874),
    [anon_sym_TILDE] = ACTIONS(4874),
    [sym_bool] = ACTIONS(4872),
    [sym_byte] = ACTIONS(4872),
    [sym_ubyte] = ACTIONS(4872),
    [sym_char] = ACTIONS(4872),
    [sym_short] = ACTIONS(4872),
    [sym_ushort] = ACTIONS(4872),
    [sym_int] = ACTIONS(4872),
    [sym_uint] = ACTIONS(4872),
    [sym_long] = ACTIONS(4872),
    [sym_ulong] = ACTIONS(4872),
    [sym_cent] = ACTIONS(4872),
    [sym_ucent] = ACTIONS(4872),
    [sym_wchar] = ACTIONS(4872),
    [sym_dchar] = ACTIONS(4872),
    [sym_float] = ACTIONS(4872),
    [sym_double] = ACTIONS(4872),
    [sym_real] = ACTIONS(4872),
    [sym_ifloat] = ACTIONS(4872),
    [sym_idouble] = ACTIONS(4872),
    [sym_ireal] = ACTIONS(4872),
    [sym_cfloat] = ACTIONS(4872),
    [sym_cdouble] = ACTIONS(4872),
    [sym_creal] = ACTIONS(4872),
    [sym_size_t] = ACTIONS(4872),
    [sym_ptrdiff_t] = ACTIONS(4872),
    [sym_string] = ACTIONS(4872),
    [sym_cstring] = ACTIONS(4872),
    [sym_dstring] = ACTIONS(4872),
    [sym_wstring] = ACTIONS(4872),
    [sym_noreturn] = ACTIONS(4872),
    [sym_true] = ACTIONS(4872),
    [sym_false] = ACTIONS(4872),
    [sym_null] = ACTIONS(4872),
    [sym_super] = ACTIONS(4872),
    [sym_this] = ACTIONS(4872),
    [sym_assert] = ACTIONS(4872),
    [sym_auto] = ACTIONS(4872),
    [sym_cast] = ACTIONS(4872),
    [sym_catch] = ACTIONS(4872),
    [sym_const] = ACTIONS(4872),
    [sym_delegate] = ACTIONS(4872),
    [sym_delete] = ACTIONS(4872),
    [sym_do] = ACTIONS(4872),
    [sym_else] = ACTIONS(4872),
    [sym_finally] = ACTIONS(4872),
    [sym_function] = ACTIONS(4872),
    [sym_immutable] = ACTIONS(4872),
    [sym_import] = ACTIONS(4872),
    [sym_in] = ACTIONS(4872),
    [sym_inout] = ACTIONS(4872),
    [sym_is] = ACTIONS(4872),
    [sym_mixin] = ACTIONS(4872),
    [sym_new] = ACTIONS(4872),
    [sym_out] = ACTIONS(4872),
    [sym_ref] = ACTIONS(4872),
    [sym_shared] = ACTIONS(4872),
    [sym_throw] = ACTIONS(4872),
    [sym_typeid] = ACTIONS(4872),
    [sym_typeof] = ACTIONS(4872),
    [sym_traits] = ACTIONS(4872),
    [sym_vector] = ACTIONS(4872),
    [sym_void] = ACTIONS(4872),
    [anon_sym_BQUOTE] = ACTIONS(4874),
    [anon_sym_r_DQUOTE] = ACTIONS(4874),
    [anon_sym_x_DQUOTE] = ACTIONS(4874),
    [anon_sym_DQUOTE] = ACTIONS(4874),
    [anon_sym_i_BQUOTE] = ACTIONS(4874),
    [anon_sym_i_DQUOTE] = ACTIONS(4874),
    [anon_sym_iq_LBRACE] = ACTIONS(4874),
    [aux_sym_char_literal_token1] = ACTIONS(4874),
    [anon_sym_SQUOTE] = ACTIONS(4872),
    [anon_sym___DATE__] = ACTIONS(4872),
    [anon_sym___FILE__] = ACTIONS(4872),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4872),
    [anon_sym___FUNCTION__] = ACTIONS(4872),
    [anon_sym___LINE__] = ACTIONS(4872),
    [anon_sym___MODULE__] = ACTIONS(4872),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4872),
    [anon_sym___TIME__] = ACTIONS(4872),
    [anon_sym___TIMESTAMP__] = ACTIONS(4872),
    [anon_sym___VENDOR__] = ACTIONS(4872),
    [anon_sym___VERSION__] = ACTIONS(4872),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4874),
    [sym_float_literal] = ACTIONS(4874),
    [sym__string] = ACTIONS(4874),
  },
  [2293] = {
    [sym_identifier] = ACTIONS(4666),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4668),
    [anon_sym_LBRACE] = ACTIONS(4668),
    [anon_sym_DOT] = ACTIONS(4668),
    [anon_sym_AMP] = ACTIONS(4668),
    [anon_sym_DASH] = ACTIONS(4666),
    [anon_sym_DASH_DASH] = ACTIONS(4668),
    [anon_sym_PLUS] = ACTIONS(4666),
    [anon_sym_PLUS_PLUS] = ACTIONS(4668),
    [anon_sym_BANG] = ACTIONS(4668),
    [anon_sym_LPAREN] = ACTIONS(4668),
    [anon_sym_RPAREN] = ACTIONS(4668),
    [anon_sym_LBRACK] = ACTIONS(4668),
    [anon_sym_SEMI] = ACTIONS(4668),
    [anon_sym_DOLLAR] = ACTIONS(4668),
    [anon_sym_STAR] = ACTIONS(4668),
    [anon_sym_TILDE] = ACTIONS(4668),
    [sym_bool] = ACTIONS(4666),
    [sym_byte] = ACTIONS(4666),
    [sym_ubyte] = ACTIONS(4666),
    [sym_char] = ACTIONS(4666),
    [sym_short] = ACTIONS(4666),
    [sym_ushort] = ACTIONS(4666),
    [sym_int] = ACTIONS(4666),
    [sym_uint] = ACTIONS(4666),
    [sym_long] = ACTIONS(4666),
    [sym_ulong] = ACTIONS(4666),
    [sym_cent] = ACTIONS(4666),
    [sym_ucent] = ACTIONS(4666),
    [sym_wchar] = ACTIONS(4666),
    [sym_dchar] = ACTIONS(4666),
    [sym_float] = ACTIONS(4666),
    [sym_double] = ACTIONS(4666),
    [sym_real] = ACTIONS(4666),
    [sym_ifloat] = ACTIONS(4666),
    [sym_idouble] = ACTIONS(4666),
    [sym_ireal] = ACTIONS(4666),
    [sym_cfloat] = ACTIONS(4666),
    [sym_cdouble] = ACTIONS(4666),
    [sym_creal] = ACTIONS(4666),
    [sym_size_t] = ACTIONS(4666),
    [sym_ptrdiff_t] = ACTIONS(4666),
    [sym_string] = ACTIONS(4666),
    [sym_cstring] = ACTIONS(4666),
    [sym_dstring] = ACTIONS(4666),
    [sym_wstring] = ACTIONS(4666),
    [sym_noreturn] = ACTIONS(4666),
    [sym_true] = ACTIONS(4666),
    [sym_false] = ACTIONS(4666),
    [sym_null] = ACTIONS(4666),
    [sym_super] = ACTIONS(4666),
    [sym_this] = ACTIONS(4666),
    [sym_assert] = ACTIONS(4666),
    [sym_auto] = ACTIONS(4666),
    [sym_cast] = ACTIONS(4666),
    [sym_catch] = ACTIONS(4666),
    [sym_const] = ACTIONS(4666),
    [sym_delegate] = ACTIONS(4666),
    [sym_delete] = ACTIONS(4666),
    [sym_do] = ACTIONS(4666),
    [sym_else] = ACTIONS(4666),
    [sym_finally] = ACTIONS(4666),
    [sym_function] = ACTIONS(4666),
    [sym_immutable] = ACTIONS(4666),
    [sym_import] = ACTIONS(4666),
    [sym_in] = ACTIONS(4666),
    [sym_inout] = ACTIONS(4666),
    [sym_is] = ACTIONS(4666),
    [sym_mixin] = ACTIONS(4666),
    [sym_new] = ACTIONS(4666),
    [sym_out] = ACTIONS(4666),
    [sym_ref] = ACTIONS(4666),
    [sym_shared] = ACTIONS(4666),
    [sym_throw] = ACTIONS(4666),
    [sym_typeid] = ACTIONS(4666),
    [sym_typeof] = ACTIONS(4666),
    [sym_traits] = ACTIONS(4666),
    [sym_vector] = ACTIONS(4666),
    [sym_void] = ACTIONS(4666),
    [anon_sym_BQUOTE] = ACTIONS(4668),
    [anon_sym_r_DQUOTE] = ACTIONS(4668),
    [anon_sym_x_DQUOTE] = ACTIONS(4668),
    [anon_sym_DQUOTE] = ACTIONS(4668),
    [anon_sym_i_BQUOTE] = ACTIONS(4668),
    [anon_sym_i_DQUOTE] = ACTIONS(4668),
    [anon_sym_iq_LBRACE] = ACTIONS(4668),
    [aux_sym_char_literal_token1] = ACTIONS(4668),
    [anon_sym_SQUOTE] = ACTIONS(4666),
    [anon_sym___DATE__] = ACTIONS(4666),
    [anon_sym___FILE__] = ACTIONS(4666),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4666),
    [anon_sym___FUNCTION__] = ACTIONS(4666),
    [anon_sym___LINE__] = ACTIONS(4666),
    [anon_sym___MODULE__] = ACTIONS(4666),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4666),
    [anon_sym___TIME__] = ACTIONS(4666),
    [anon_sym___TIMESTAMP__] = ACTIONS(4666),
    [anon_sym___VENDOR__] = ACTIONS(4666),
    [anon_sym___VERSION__] = ACTIONS(4666),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4668),
    [sym_float_literal] = ACTIONS(4668),
    [sym__string] = ACTIONS(4668),
  },
  [2294] = {
    [sym_identifier] = ACTIONS(4654),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4656),
    [anon_sym_LBRACE] = ACTIONS(4656),
    [anon_sym_DOT] = ACTIONS(4656),
    [anon_sym_AMP] = ACTIONS(4656),
    [anon_sym_DASH] = ACTIONS(4654),
    [anon_sym_DASH_DASH] = ACTIONS(4656),
    [anon_sym_PLUS] = ACTIONS(4654),
    [anon_sym_PLUS_PLUS] = ACTIONS(4656),
    [anon_sym_BANG] = ACTIONS(4656),
    [anon_sym_LPAREN] = ACTIONS(4656),
    [anon_sym_RPAREN] = ACTIONS(4656),
    [anon_sym_LBRACK] = ACTIONS(4656),
    [anon_sym_SEMI] = ACTIONS(4656),
    [anon_sym_DOLLAR] = ACTIONS(4656),
    [anon_sym_STAR] = ACTIONS(4656),
    [anon_sym_TILDE] = ACTIONS(4656),
    [sym_bool] = ACTIONS(4654),
    [sym_byte] = ACTIONS(4654),
    [sym_ubyte] = ACTIONS(4654),
    [sym_char] = ACTIONS(4654),
    [sym_short] = ACTIONS(4654),
    [sym_ushort] = ACTIONS(4654),
    [sym_int] = ACTIONS(4654),
    [sym_uint] = ACTIONS(4654),
    [sym_long] = ACTIONS(4654),
    [sym_ulong] = ACTIONS(4654),
    [sym_cent] = ACTIONS(4654),
    [sym_ucent] = ACTIONS(4654),
    [sym_wchar] = ACTIONS(4654),
    [sym_dchar] = ACTIONS(4654),
    [sym_float] = ACTIONS(4654),
    [sym_double] = ACTIONS(4654),
    [sym_real] = ACTIONS(4654),
    [sym_ifloat] = ACTIONS(4654),
    [sym_idouble] = ACTIONS(4654),
    [sym_ireal] = ACTIONS(4654),
    [sym_cfloat] = ACTIONS(4654),
    [sym_cdouble] = ACTIONS(4654),
    [sym_creal] = ACTIONS(4654),
    [sym_size_t] = ACTIONS(4654),
    [sym_ptrdiff_t] = ACTIONS(4654),
    [sym_string] = ACTIONS(4654),
    [sym_cstring] = ACTIONS(4654),
    [sym_dstring] = ACTIONS(4654),
    [sym_wstring] = ACTIONS(4654),
    [sym_noreturn] = ACTIONS(4654),
    [sym_true] = ACTIONS(4654),
    [sym_false] = ACTIONS(4654),
    [sym_null] = ACTIONS(4654),
    [sym_super] = ACTIONS(4654),
    [sym_this] = ACTIONS(4654),
    [sym_assert] = ACTIONS(4654),
    [sym_auto] = ACTIONS(4654),
    [sym_cast] = ACTIONS(4654),
    [sym_catch] = ACTIONS(4654),
    [sym_const] = ACTIONS(4654),
    [sym_delegate] = ACTIONS(4654),
    [sym_delete] = ACTIONS(4654),
    [sym_do] = ACTIONS(4654),
    [sym_else] = ACTIONS(4654),
    [sym_finally] = ACTIONS(4654),
    [sym_function] = ACTIONS(4654),
    [sym_immutable] = ACTIONS(4654),
    [sym_import] = ACTIONS(4654),
    [sym_in] = ACTIONS(4654),
    [sym_inout] = ACTIONS(4654),
    [sym_is] = ACTIONS(4654),
    [sym_mixin] = ACTIONS(4654),
    [sym_new] = ACTIONS(4654),
    [sym_out] = ACTIONS(4654),
    [sym_ref] = ACTIONS(4654),
    [sym_shared] = ACTIONS(4654),
    [sym_throw] = ACTIONS(4654),
    [sym_typeid] = ACTIONS(4654),
    [sym_typeof] = ACTIONS(4654),
    [sym_traits] = ACTIONS(4654),
    [sym_vector] = ACTIONS(4654),
    [sym_void] = ACTIONS(4654),
    [anon_sym_BQUOTE] = ACTIONS(4656),
    [anon_sym_r_DQUOTE] = ACTIONS(4656),
    [anon_sym_x_DQUOTE] = ACTIONS(4656),
    [anon_sym_DQUOTE] = ACTIONS(4656),
    [anon_sym_i_BQUOTE] = ACTIONS(4656),
    [anon_sym_i_DQUOTE] = ACTIONS(4656),
    [anon_sym_iq_LBRACE] = ACTIONS(4656),
    [aux_sym_char_literal_token1] = ACTIONS(4656),
    [anon_sym_SQUOTE] = ACTIONS(4654),
    [anon_sym___DATE__] = ACTIONS(4654),
    [anon_sym___FILE__] = ACTIONS(4654),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4654),
    [anon_sym___FUNCTION__] = ACTIONS(4654),
    [anon_sym___LINE__] = ACTIONS(4654),
    [anon_sym___MODULE__] = ACTIONS(4654),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4654),
    [anon_sym___TIME__] = ACTIONS(4654),
    [anon_sym___TIMESTAMP__] = ACTIONS(4654),
    [anon_sym___VENDOR__] = ACTIONS(4654),
    [anon_sym___VERSION__] = ACTIONS(4654),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4656),
    [sym_float_literal] = ACTIONS(4656),
    [sym__string] = ACTIONS(4656),
  },
  [2295] = {
    [sym_identifier] = ACTIONS(2812),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2810),
    [anon_sym_LBRACE] = ACTIONS(2810),
    [anon_sym_DOT] = ACTIONS(2810),
    [anon_sym_AMP] = ACTIONS(2810),
    [anon_sym_DASH] = ACTIONS(2812),
    [anon_sym_DASH_DASH] = ACTIONS(2810),
    [anon_sym_PLUS] = ACTIONS(2812),
    [anon_sym_PLUS_PLUS] = ACTIONS(2810),
    [anon_sym_BANG] = ACTIONS(2810),
    [anon_sym_LPAREN] = ACTIONS(2810),
    [anon_sym_RPAREN] = ACTIONS(2810),
    [anon_sym_LBRACK] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2810),
    [anon_sym_DOLLAR] = ACTIONS(2810),
    [anon_sym_STAR] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2810),
    [sym_bool] = ACTIONS(2812),
    [sym_byte] = ACTIONS(2812),
    [sym_ubyte] = ACTIONS(2812),
    [sym_char] = ACTIONS(2812),
    [sym_short] = ACTIONS(2812),
    [sym_ushort] = ACTIONS(2812),
    [sym_int] = ACTIONS(2812),
    [sym_uint] = ACTIONS(2812),
    [sym_long] = ACTIONS(2812),
    [sym_ulong] = ACTIONS(2812),
    [sym_cent] = ACTIONS(2812),
    [sym_ucent] = ACTIONS(2812),
    [sym_wchar] = ACTIONS(2812),
    [sym_dchar] = ACTIONS(2812),
    [sym_float] = ACTIONS(2812),
    [sym_double] = ACTIONS(2812),
    [sym_real] = ACTIONS(2812),
    [sym_ifloat] = ACTIONS(2812),
    [sym_idouble] = ACTIONS(2812),
    [sym_ireal] = ACTIONS(2812),
    [sym_cfloat] = ACTIONS(2812),
    [sym_cdouble] = ACTIONS(2812),
    [sym_creal] = ACTIONS(2812),
    [sym_size_t] = ACTIONS(2812),
    [sym_ptrdiff_t] = ACTIONS(2812),
    [sym_string] = ACTIONS(2812),
    [sym_cstring] = ACTIONS(2812),
    [sym_dstring] = ACTIONS(2812),
    [sym_wstring] = ACTIONS(2812),
    [sym_noreturn] = ACTIONS(2812),
    [sym_true] = ACTIONS(2812),
    [sym_false] = ACTIONS(2812),
    [sym_null] = ACTIONS(2812),
    [sym_super] = ACTIONS(2812),
    [sym_this] = ACTIONS(2812),
    [sym_assert] = ACTIONS(2812),
    [sym_auto] = ACTIONS(2812),
    [sym_cast] = ACTIONS(2812),
    [sym_catch] = ACTIONS(2812),
    [sym_const] = ACTIONS(2812),
    [sym_delegate] = ACTIONS(2812),
    [sym_delete] = ACTIONS(2812),
    [sym_do] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_finally] = ACTIONS(2812),
    [sym_function] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(2812),
    [sym_import] = ACTIONS(2812),
    [sym_in] = ACTIONS(2812),
    [sym_inout] = ACTIONS(2812),
    [sym_is] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2812),
    [sym_new] = ACTIONS(2812),
    [sym_out] = ACTIONS(2812),
    [sym_ref] = ACTIONS(2812),
    [sym_shared] = ACTIONS(2812),
    [sym_throw] = ACTIONS(2812),
    [sym_typeid] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(2812),
    [sym_traits] = ACTIONS(2812),
    [sym_vector] = ACTIONS(2812),
    [sym_void] = ACTIONS(2812),
    [anon_sym_BQUOTE] = ACTIONS(2810),
    [anon_sym_r_DQUOTE] = ACTIONS(2810),
    [anon_sym_x_DQUOTE] = ACTIONS(2810),
    [anon_sym_DQUOTE] = ACTIONS(2810),
    [anon_sym_i_BQUOTE] = ACTIONS(2810),
    [anon_sym_i_DQUOTE] = ACTIONS(2810),
    [anon_sym_iq_LBRACE] = ACTIONS(2810),
    [aux_sym_char_literal_token1] = ACTIONS(2810),
    [anon_sym_SQUOTE] = ACTIONS(2812),
    [anon_sym___DATE__] = ACTIONS(2812),
    [anon_sym___FILE__] = ACTIONS(2812),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2812),
    [anon_sym___FUNCTION__] = ACTIONS(2812),
    [anon_sym___LINE__] = ACTIONS(2812),
    [anon_sym___MODULE__] = ACTIONS(2812),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2812),
    [anon_sym___TIME__] = ACTIONS(2812),
    [anon_sym___TIMESTAMP__] = ACTIONS(2812),
    [anon_sym___VENDOR__] = ACTIONS(2812),
    [anon_sym___VERSION__] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2810),
    [sym_float_literal] = ACTIONS(2810),
    [sym__string] = ACTIONS(2810),
  },
  [2296] = {
    [sym_identifier] = ACTIONS(4636),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4638),
    [anon_sym_LBRACE] = ACTIONS(4638),
    [anon_sym_DOT] = ACTIONS(4638),
    [anon_sym_AMP] = ACTIONS(4638),
    [anon_sym_DASH] = ACTIONS(4636),
    [anon_sym_DASH_DASH] = ACTIONS(4638),
    [anon_sym_PLUS] = ACTIONS(4636),
    [anon_sym_PLUS_PLUS] = ACTIONS(4638),
    [anon_sym_BANG] = ACTIONS(4638),
    [anon_sym_LPAREN] = ACTIONS(4638),
    [anon_sym_RPAREN] = ACTIONS(4638),
    [anon_sym_LBRACK] = ACTIONS(4638),
    [anon_sym_SEMI] = ACTIONS(4638),
    [anon_sym_DOLLAR] = ACTIONS(4638),
    [anon_sym_STAR] = ACTIONS(4638),
    [anon_sym_TILDE] = ACTIONS(4638),
    [sym_bool] = ACTIONS(4636),
    [sym_byte] = ACTIONS(4636),
    [sym_ubyte] = ACTIONS(4636),
    [sym_char] = ACTIONS(4636),
    [sym_short] = ACTIONS(4636),
    [sym_ushort] = ACTIONS(4636),
    [sym_int] = ACTIONS(4636),
    [sym_uint] = ACTIONS(4636),
    [sym_long] = ACTIONS(4636),
    [sym_ulong] = ACTIONS(4636),
    [sym_cent] = ACTIONS(4636),
    [sym_ucent] = ACTIONS(4636),
    [sym_wchar] = ACTIONS(4636),
    [sym_dchar] = ACTIONS(4636),
    [sym_float] = ACTIONS(4636),
    [sym_double] = ACTIONS(4636),
    [sym_real] = ACTIONS(4636),
    [sym_ifloat] = ACTIONS(4636),
    [sym_idouble] = ACTIONS(4636),
    [sym_ireal] = ACTIONS(4636),
    [sym_cfloat] = ACTIONS(4636),
    [sym_cdouble] = ACTIONS(4636),
    [sym_creal] = ACTIONS(4636),
    [sym_size_t] = ACTIONS(4636),
    [sym_ptrdiff_t] = ACTIONS(4636),
    [sym_string] = ACTIONS(4636),
    [sym_cstring] = ACTIONS(4636),
    [sym_dstring] = ACTIONS(4636),
    [sym_wstring] = ACTIONS(4636),
    [sym_noreturn] = ACTIONS(4636),
    [sym_true] = ACTIONS(4636),
    [sym_false] = ACTIONS(4636),
    [sym_null] = ACTIONS(4636),
    [sym_super] = ACTIONS(4636),
    [sym_this] = ACTIONS(4636),
    [sym_assert] = ACTIONS(4636),
    [sym_auto] = ACTIONS(4636),
    [sym_cast] = ACTIONS(4636),
    [sym_catch] = ACTIONS(4636),
    [sym_const] = ACTIONS(4636),
    [sym_delegate] = ACTIONS(4636),
    [sym_delete] = ACTIONS(4636),
    [sym_do] = ACTIONS(4636),
    [sym_else] = ACTIONS(4636),
    [sym_finally] = ACTIONS(4636),
    [sym_function] = ACTIONS(4636),
    [sym_immutable] = ACTIONS(4636),
    [sym_import] = ACTIONS(4636),
    [sym_in] = ACTIONS(4636),
    [sym_inout] = ACTIONS(4636),
    [sym_is] = ACTIONS(4636),
    [sym_mixin] = ACTIONS(4636),
    [sym_new] = ACTIONS(4636),
    [sym_out] = ACTIONS(4636),
    [sym_ref] = ACTIONS(4636),
    [sym_shared] = ACTIONS(4636),
    [sym_throw] = ACTIONS(4636),
    [sym_typeid] = ACTIONS(4636),
    [sym_typeof] = ACTIONS(4636),
    [sym_traits] = ACTIONS(4636),
    [sym_vector] = ACTIONS(4636),
    [sym_void] = ACTIONS(4636),
    [anon_sym_BQUOTE] = ACTIONS(4638),
    [anon_sym_r_DQUOTE] = ACTIONS(4638),
    [anon_sym_x_DQUOTE] = ACTIONS(4638),
    [anon_sym_DQUOTE] = ACTIONS(4638),
    [anon_sym_i_BQUOTE] = ACTIONS(4638),
    [anon_sym_i_DQUOTE] = ACTIONS(4638),
    [anon_sym_iq_LBRACE] = ACTIONS(4638),
    [aux_sym_char_literal_token1] = ACTIONS(4638),
    [anon_sym_SQUOTE] = ACTIONS(4636),
    [anon_sym___DATE__] = ACTIONS(4636),
    [anon_sym___FILE__] = ACTIONS(4636),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4636),
    [anon_sym___FUNCTION__] = ACTIONS(4636),
    [anon_sym___LINE__] = ACTIONS(4636),
    [anon_sym___MODULE__] = ACTIONS(4636),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4636),
    [anon_sym___TIME__] = ACTIONS(4636),
    [anon_sym___TIMESTAMP__] = ACTIONS(4636),
    [anon_sym___VENDOR__] = ACTIONS(4636),
    [anon_sym___VERSION__] = ACTIONS(4636),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4638),
    [sym_float_literal] = ACTIONS(4638),
    [sym__string] = ACTIONS(4638),
  },
  [2297] = {
    [sym_identifier] = ACTIONS(4632),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4634),
    [anon_sym_LBRACE] = ACTIONS(4634),
    [anon_sym_DOT] = ACTIONS(4634),
    [anon_sym_AMP] = ACTIONS(4634),
    [anon_sym_DASH] = ACTIONS(4632),
    [anon_sym_DASH_DASH] = ACTIONS(4634),
    [anon_sym_PLUS] = ACTIONS(4632),
    [anon_sym_PLUS_PLUS] = ACTIONS(4634),
    [anon_sym_BANG] = ACTIONS(4634),
    [anon_sym_LPAREN] = ACTIONS(4634),
    [anon_sym_RPAREN] = ACTIONS(4634),
    [anon_sym_LBRACK] = ACTIONS(4634),
    [anon_sym_SEMI] = ACTIONS(4634),
    [anon_sym_DOLLAR] = ACTIONS(4634),
    [anon_sym_STAR] = ACTIONS(4634),
    [anon_sym_TILDE] = ACTIONS(4634),
    [sym_bool] = ACTIONS(4632),
    [sym_byte] = ACTIONS(4632),
    [sym_ubyte] = ACTIONS(4632),
    [sym_char] = ACTIONS(4632),
    [sym_short] = ACTIONS(4632),
    [sym_ushort] = ACTIONS(4632),
    [sym_int] = ACTIONS(4632),
    [sym_uint] = ACTIONS(4632),
    [sym_long] = ACTIONS(4632),
    [sym_ulong] = ACTIONS(4632),
    [sym_cent] = ACTIONS(4632),
    [sym_ucent] = ACTIONS(4632),
    [sym_wchar] = ACTIONS(4632),
    [sym_dchar] = ACTIONS(4632),
    [sym_float] = ACTIONS(4632),
    [sym_double] = ACTIONS(4632),
    [sym_real] = ACTIONS(4632),
    [sym_ifloat] = ACTIONS(4632),
    [sym_idouble] = ACTIONS(4632),
    [sym_ireal] = ACTIONS(4632),
    [sym_cfloat] = ACTIONS(4632),
    [sym_cdouble] = ACTIONS(4632),
    [sym_creal] = ACTIONS(4632),
    [sym_size_t] = ACTIONS(4632),
    [sym_ptrdiff_t] = ACTIONS(4632),
    [sym_string] = ACTIONS(4632),
    [sym_cstring] = ACTIONS(4632),
    [sym_dstring] = ACTIONS(4632),
    [sym_wstring] = ACTIONS(4632),
    [sym_noreturn] = ACTIONS(4632),
    [sym_true] = ACTIONS(4632),
    [sym_false] = ACTIONS(4632),
    [sym_null] = ACTIONS(4632),
    [sym_super] = ACTIONS(4632),
    [sym_this] = ACTIONS(4632),
    [sym_assert] = ACTIONS(4632),
    [sym_auto] = ACTIONS(4632),
    [sym_cast] = ACTIONS(4632),
    [sym_catch] = ACTIONS(4632),
    [sym_const] = ACTIONS(4632),
    [sym_delegate] = ACTIONS(4632),
    [sym_delete] = ACTIONS(4632),
    [sym_do] = ACTIONS(4632),
    [sym_else] = ACTIONS(4632),
    [sym_finally] = ACTIONS(4632),
    [sym_function] = ACTIONS(4632),
    [sym_immutable] = ACTIONS(4632),
    [sym_import] = ACTIONS(4632),
    [sym_in] = ACTIONS(4632),
    [sym_inout] = ACTIONS(4632),
    [sym_is] = ACTIONS(4632),
    [sym_mixin] = ACTIONS(4632),
    [sym_new] = ACTIONS(4632),
    [sym_out] = ACTIONS(4632),
    [sym_ref] = ACTIONS(4632),
    [sym_shared] = ACTIONS(4632),
    [sym_throw] = ACTIONS(4632),
    [sym_typeid] = ACTIONS(4632),
    [sym_typeof] = ACTIONS(4632),
    [sym_traits] = ACTIONS(4632),
    [sym_vector] = ACTIONS(4632),
    [sym_void] = ACTIONS(4632),
    [anon_sym_BQUOTE] = ACTIONS(4634),
    [anon_sym_r_DQUOTE] = ACTIONS(4634),
    [anon_sym_x_DQUOTE] = ACTIONS(4634),
    [anon_sym_DQUOTE] = ACTIONS(4634),
    [anon_sym_i_BQUOTE] = ACTIONS(4634),
    [anon_sym_i_DQUOTE] = ACTIONS(4634),
    [anon_sym_iq_LBRACE] = ACTIONS(4634),
    [aux_sym_char_literal_token1] = ACTIONS(4634),
    [anon_sym_SQUOTE] = ACTIONS(4632),
    [anon_sym___DATE__] = ACTIONS(4632),
    [anon_sym___FILE__] = ACTIONS(4632),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4632),
    [anon_sym___FUNCTION__] = ACTIONS(4632),
    [anon_sym___LINE__] = ACTIONS(4632),
    [anon_sym___MODULE__] = ACTIONS(4632),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4632),
    [anon_sym___TIME__] = ACTIONS(4632),
    [anon_sym___TIMESTAMP__] = ACTIONS(4632),
    [anon_sym___VENDOR__] = ACTIONS(4632),
    [anon_sym___VERSION__] = ACTIONS(4632),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4634),
    [sym_float_literal] = ACTIONS(4634),
    [sym__string] = ACTIONS(4634),
  },
  [2298] = {
    [sym_identifier] = ACTIONS(4628),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4630),
    [anon_sym_LBRACE] = ACTIONS(4630),
    [anon_sym_DOT] = ACTIONS(4630),
    [anon_sym_AMP] = ACTIONS(4630),
    [anon_sym_DASH] = ACTIONS(4628),
    [anon_sym_DASH_DASH] = ACTIONS(4630),
    [anon_sym_PLUS] = ACTIONS(4628),
    [anon_sym_PLUS_PLUS] = ACTIONS(4630),
    [anon_sym_BANG] = ACTIONS(4630),
    [anon_sym_LPAREN] = ACTIONS(4630),
    [anon_sym_RPAREN] = ACTIONS(4630),
    [anon_sym_LBRACK] = ACTIONS(4630),
    [anon_sym_SEMI] = ACTIONS(4630),
    [anon_sym_DOLLAR] = ACTIONS(4630),
    [anon_sym_STAR] = ACTIONS(4630),
    [anon_sym_TILDE] = ACTIONS(4630),
    [sym_bool] = ACTIONS(4628),
    [sym_byte] = ACTIONS(4628),
    [sym_ubyte] = ACTIONS(4628),
    [sym_char] = ACTIONS(4628),
    [sym_short] = ACTIONS(4628),
    [sym_ushort] = ACTIONS(4628),
    [sym_int] = ACTIONS(4628),
    [sym_uint] = ACTIONS(4628),
    [sym_long] = ACTIONS(4628),
    [sym_ulong] = ACTIONS(4628),
    [sym_cent] = ACTIONS(4628),
    [sym_ucent] = ACTIONS(4628),
    [sym_wchar] = ACTIONS(4628),
    [sym_dchar] = ACTIONS(4628),
    [sym_float] = ACTIONS(4628),
    [sym_double] = ACTIONS(4628),
    [sym_real] = ACTIONS(4628),
    [sym_ifloat] = ACTIONS(4628),
    [sym_idouble] = ACTIONS(4628),
    [sym_ireal] = ACTIONS(4628),
    [sym_cfloat] = ACTIONS(4628),
    [sym_cdouble] = ACTIONS(4628),
    [sym_creal] = ACTIONS(4628),
    [sym_size_t] = ACTIONS(4628),
    [sym_ptrdiff_t] = ACTIONS(4628),
    [sym_string] = ACTIONS(4628),
    [sym_cstring] = ACTIONS(4628),
    [sym_dstring] = ACTIONS(4628),
    [sym_wstring] = ACTIONS(4628),
    [sym_noreturn] = ACTIONS(4628),
    [sym_true] = ACTIONS(4628),
    [sym_false] = ACTIONS(4628),
    [sym_null] = ACTIONS(4628),
    [sym_super] = ACTIONS(4628),
    [sym_this] = ACTIONS(4628),
    [sym_assert] = ACTIONS(4628),
    [sym_auto] = ACTIONS(4628),
    [sym_cast] = ACTIONS(4628),
    [sym_catch] = ACTIONS(4628),
    [sym_const] = ACTIONS(4628),
    [sym_delegate] = ACTIONS(4628),
    [sym_delete] = ACTIONS(4628),
    [sym_do] = ACTIONS(4628),
    [sym_else] = ACTIONS(4628),
    [sym_finally] = ACTIONS(4628),
    [sym_function] = ACTIONS(4628),
    [sym_immutable] = ACTIONS(4628),
    [sym_import] = ACTIONS(4628),
    [sym_in] = ACTIONS(4628),
    [sym_inout] = ACTIONS(4628),
    [sym_is] = ACTIONS(4628),
    [sym_mixin] = ACTIONS(4628),
    [sym_new] = ACTIONS(4628),
    [sym_out] = ACTIONS(4628),
    [sym_ref] = ACTIONS(4628),
    [sym_shared] = ACTIONS(4628),
    [sym_throw] = ACTIONS(4628),
    [sym_typeid] = ACTIONS(4628),
    [sym_typeof] = ACTIONS(4628),
    [sym_traits] = ACTIONS(4628),
    [sym_vector] = ACTIONS(4628),
    [sym_void] = ACTIONS(4628),
    [anon_sym_BQUOTE] = ACTIONS(4630),
    [anon_sym_r_DQUOTE] = ACTIONS(4630),
    [anon_sym_x_DQUOTE] = ACTIONS(4630),
    [anon_sym_DQUOTE] = ACTIONS(4630),
    [anon_sym_i_BQUOTE] = ACTIONS(4630),
    [anon_sym_i_DQUOTE] = ACTIONS(4630),
    [anon_sym_iq_LBRACE] = ACTIONS(4630),
    [aux_sym_char_literal_token1] = ACTIONS(4630),
    [anon_sym_SQUOTE] = ACTIONS(4628),
    [anon_sym___DATE__] = ACTIONS(4628),
    [anon_sym___FILE__] = ACTIONS(4628),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4628),
    [anon_sym___FUNCTION__] = ACTIONS(4628),
    [anon_sym___LINE__] = ACTIONS(4628),
    [anon_sym___MODULE__] = ACTIONS(4628),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4628),
    [anon_sym___TIME__] = ACTIONS(4628),
    [anon_sym___TIMESTAMP__] = ACTIONS(4628),
    [anon_sym___VENDOR__] = ACTIONS(4628),
    [anon_sym___VERSION__] = ACTIONS(4628),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4630),
    [sym_float_literal] = ACTIONS(4630),
    [sym__string] = ACTIONS(4630),
  },
  [2299] = {
    [sym_identifier] = ACTIONS(4888),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4890),
    [anon_sym_LBRACE] = ACTIONS(4890),
    [anon_sym_DOT] = ACTIONS(4890),
    [anon_sym_AMP] = ACTIONS(4890),
    [anon_sym_DASH] = ACTIONS(4888),
    [anon_sym_DASH_DASH] = ACTIONS(4890),
    [anon_sym_PLUS] = ACTIONS(4888),
    [anon_sym_PLUS_PLUS] = ACTIONS(4890),
    [anon_sym_BANG] = ACTIONS(4890),
    [anon_sym_LPAREN] = ACTIONS(4890),
    [anon_sym_RPAREN] = ACTIONS(4890),
    [anon_sym_LBRACK] = ACTIONS(4890),
    [anon_sym_SEMI] = ACTIONS(4890),
    [anon_sym_DOLLAR] = ACTIONS(4890),
    [anon_sym_STAR] = ACTIONS(4890),
    [anon_sym_TILDE] = ACTIONS(4890),
    [sym_bool] = ACTIONS(4888),
    [sym_byte] = ACTIONS(4888),
    [sym_ubyte] = ACTIONS(4888),
    [sym_char] = ACTIONS(4888),
    [sym_short] = ACTIONS(4888),
    [sym_ushort] = ACTIONS(4888),
    [sym_int] = ACTIONS(4888),
    [sym_uint] = ACTIONS(4888),
    [sym_long] = ACTIONS(4888),
    [sym_ulong] = ACTIONS(4888),
    [sym_cent] = ACTIONS(4888),
    [sym_ucent] = ACTIONS(4888),
    [sym_wchar] = ACTIONS(4888),
    [sym_dchar] = ACTIONS(4888),
    [sym_float] = ACTIONS(4888),
    [sym_double] = ACTIONS(4888),
    [sym_real] = ACTIONS(4888),
    [sym_ifloat] = ACTIONS(4888),
    [sym_idouble] = ACTIONS(4888),
    [sym_ireal] = ACTIONS(4888),
    [sym_cfloat] = ACTIONS(4888),
    [sym_cdouble] = ACTIONS(4888),
    [sym_creal] = ACTIONS(4888),
    [sym_size_t] = ACTIONS(4888),
    [sym_ptrdiff_t] = ACTIONS(4888),
    [sym_string] = ACTIONS(4888),
    [sym_cstring] = ACTIONS(4888),
    [sym_dstring] = ACTIONS(4888),
    [sym_wstring] = ACTIONS(4888),
    [sym_noreturn] = ACTIONS(4888),
    [sym_true] = ACTIONS(4888),
    [sym_false] = ACTIONS(4888),
    [sym_null] = ACTIONS(4888),
    [sym_super] = ACTIONS(4888),
    [sym_this] = ACTIONS(4888),
    [sym_assert] = ACTIONS(4888),
    [sym_auto] = ACTIONS(4888),
    [sym_cast] = ACTIONS(4888),
    [sym_catch] = ACTIONS(4888),
    [sym_const] = ACTIONS(4888),
    [sym_delegate] = ACTIONS(4888),
    [sym_delete] = ACTIONS(4888),
    [sym_do] = ACTIONS(4888),
    [sym_else] = ACTIONS(4888),
    [sym_finally] = ACTIONS(4888),
    [sym_function] = ACTIONS(4888),
    [sym_immutable] = ACTIONS(4888),
    [sym_import] = ACTIONS(4888),
    [sym_in] = ACTIONS(4888),
    [sym_inout] = ACTIONS(4888),
    [sym_is] = ACTIONS(4888),
    [sym_mixin] = ACTIONS(4888),
    [sym_new] = ACTIONS(4888),
    [sym_out] = ACTIONS(4888),
    [sym_ref] = ACTIONS(4888),
    [sym_shared] = ACTIONS(4888),
    [sym_throw] = ACTIONS(4888),
    [sym_typeid] = ACTIONS(4888),
    [sym_typeof] = ACTIONS(4888),
    [sym_traits] = ACTIONS(4888),
    [sym_vector] = ACTIONS(4888),
    [sym_void] = ACTIONS(4888),
    [anon_sym_BQUOTE] = ACTIONS(4890),
    [anon_sym_r_DQUOTE] = ACTIONS(4890),
    [anon_sym_x_DQUOTE] = ACTIONS(4890),
    [anon_sym_DQUOTE] = ACTIONS(4890),
    [anon_sym_i_BQUOTE] = ACTIONS(4890),
    [anon_sym_i_DQUOTE] = ACTIONS(4890),
    [anon_sym_iq_LBRACE] = ACTIONS(4890),
    [aux_sym_char_literal_token1] = ACTIONS(4890),
    [anon_sym_SQUOTE] = ACTIONS(4888),
    [anon_sym___DATE__] = ACTIONS(4888),
    [anon_sym___FILE__] = ACTIONS(4888),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4888),
    [anon_sym___FUNCTION__] = ACTIONS(4888),
    [anon_sym___LINE__] = ACTIONS(4888),
    [anon_sym___MODULE__] = ACTIONS(4888),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4888),
    [anon_sym___TIME__] = ACTIONS(4888),
    [anon_sym___TIMESTAMP__] = ACTIONS(4888),
    [anon_sym___VENDOR__] = ACTIONS(4888),
    [anon_sym___VERSION__] = ACTIONS(4888),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4890),
    [sym_float_literal] = ACTIONS(4890),
    [sym__string] = ACTIONS(4890),
  },
  [2300] = {
    [sym_identifier] = ACTIONS(4624),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4626),
    [anon_sym_LBRACE] = ACTIONS(4626),
    [anon_sym_DOT] = ACTIONS(4626),
    [anon_sym_AMP] = ACTIONS(4626),
    [anon_sym_DASH] = ACTIONS(4624),
    [anon_sym_DASH_DASH] = ACTIONS(4626),
    [anon_sym_PLUS] = ACTIONS(4624),
    [anon_sym_PLUS_PLUS] = ACTIONS(4626),
    [anon_sym_BANG] = ACTIONS(4626),
    [anon_sym_LPAREN] = ACTIONS(4626),
    [anon_sym_RPAREN] = ACTIONS(4626),
    [anon_sym_LBRACK] = ACTIONS(4626),
    [anon_sym_SEMI] = ACTIONS(4626),
    [anon_sym_DOLLAR] = ACTIONS(4626),
    [anon_sym_STAR] = ACTIONS(4626),
    [anon_sym_TILDE] = ACTIONS(4626),
    [sym_bool] = ACTIONS(4624),
    [sym_byte] = ACTIONS(4624),
    [sym_ubyte] = ACTIONS(4624),
    [sym_char] = ACTIONS(4624),
    [sym_short] = ACTIONS(4624),
    [sym_ushort] = ACTIONS(4624),
    [sym_int] = ACTIONS(4624),
    [sym_uint] = ACTIONS(4624),
    [sym_long] = ACTIONS(4624),
    [sym_ulong] = ACTIONS(4624),
    [sym_cent] = ACTIONS(4624),
    [sym_ucent] = ACTIONS(4624),
    [sym_wchar] = ACTIONS(4624),
    [sym_dchar] = ACTIONS(4624),
    [sym_float] = ACTIONS(4624),
    [sym_double] = ACTIONS(4624),
    [sym_real] = ACTIONS(4624),
    [sym_ifloat] = ACTIONS(4624),
    [sym_idouble] = ACTIONS(4624),
    [sym_ireal] = ACTIONS(4624),
    [sym_cfloat] = ACTIONS(4624),
    [sym_cdouble] = ACTIONS(4624),
    [sym_creal] = ACTIONS(4624),
    [sym_size_t] = ACTIONS(4624),
    [sym_ptrdiff_t] = ACTIONS(4624),
    [sym_string] = ACTIONS(4624),
    [sym_cstring] = ACTIONS(4624),
    [sym_dstring] = ACTIONS(4624),
    [sym_wstring] = ACTIONS(4624),
    [sym_noreturn] = ACTIONS(4624),
    [sym_true] = ACTIONS(4624),
    [sym_false] = ACTIONS(4624),
    [sym_null] = ACTIONS(4624),
    [sym_super] = ACTIONS(4624),
    [sym_this] = ACTIONS(4624),
    [sym_assert] = ACTIONS(4624),
    [sym_auto] = ACTIONS(4624),
    [sym_cast] = ACTIONS(4624),
    [sym_catch] = ACTIONS(4624),
    [sym_const] = ACTIONS(4624),
    [sym_delegate] = ACTIONS(4624),
    [sym_delete] = ACTIONS(4624),
    [sym_do] = ACTIONS(4624),
    [sym_else] = ACTIONS(4624),
    [sym_finally] = ACTIONS(4624),
    [sym_function] = ACTIONS(4624),
    [sym_immutable] = ACTIONS(4624),
    [sym_import] = ACTIONS(4624),
    [sym_in] = ACTIONS(4624),
    [sym_inout] = ACTIONS(4624),
    [sym_is] = ACTIONS(4624),
    [sym_mixin] = ACTIONS(4624),
    [sym_new] = ACTIONS(4624),
    [sym_out] = ACTIONS(4624),
    [sym_ref] = ACTIONS(4624),
    [sym_shared] = ACTIONS(4624),
    [sym_throw] = ACTIONS(4624),
    [sym_typeid] = ACTIONS(4624),
    [sym_typeof] = ACTIONS(4624),
    [sym_traits] = ACTIONS(4624),
    [sym_vector] = ACTIONS(4624),
    [sym_void] = ACTIONS(4624),
    [anon_sym_BQUOTE] = ACTIONS(4626),
    [anon_sym_r_DQUOTE] = ACTIONS(4626),
    [anon_sym_x_DQUOTE] = ACTIONS(4626),
    [anon_sym_DQUOTE] = ACTIONS(4626),
    [anon_sym_i_BQUOTE] = ACTIONS(4626),
    [anon_sym_i_DQUOTE] = ACTIONS(4626),
    [anon_sym_iq_LBRACE] = ACTIONS(4626),
    [aux_sym_char_literal_token1] = ACTIONS(4626),
    [anon_sym_SQUOTE] = ACTIONS(4624),
    [anon_sym___DATE__] = ACTIONS(4624),
    [anon_sym___FILE__] = ACTIONS(4624),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4624),
    [anon_sym___FUNCTION__] = ACTIONS(4624),
    [anon_sym___LINE__] = ACTIONS(4624),
    [anon_sym___MODULE__] = ACTIONS(4624),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4624),
    [anon_sym___TIME__] = ACTIONS(4624),
    [anon_sym___TIMESTAMP__] = ACTIONS(4624),
    [anon_sym___VENDOR__] = ACTIONS(4624),
    [anon_sym___VERSION__] = ACTIONS(4624),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4626),
    [sym_float_literal] = ACTIONS(4626),
    [sym__string] = ACTIONS(4626),
  },
  [2301] = {
    [sym_identifier] = ACTIONS(4896),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4898),
    [anon_sym_LBRACE] = ACTIONS(4898),
    [anon_sym_DOT] = ACTIONS(4898),
    [anon_sym_AMP] = ACTIONS(4898),
    [anon_sym_DASH] = ACTIONS(4896),
    [anon_sym_DASH_DASH] = ACTIONS(4898),
    [anon_sym_PLUS] = ACTIONS(4896),
    [anon_sym_PLUS_PLUS] = ACTIONS(4898),
    [anon_sym_BANG] = ACTIONS(4898),
    [anon_sym_LPAREN] = ACTIONS(4898),
    [anon_sym_RPAREN] = ACTIONS(4898),
    [anon_sym_LBRACK] = ACTIONS(4898),
    [anon_sym_SEMI] = ACTIONS(4898),
    [anon_sym_DOLLAR] = ACTIONS(4898),
    [anon_sym_STAR] = ACTIONS(4898),
    [anon_sym_TILDE] = ACTIONS(4898),
    [sym_bool] = ACTIONS(4896),
    [sym_byte] = ACTIONS(4896),
    [sym_ubyte] = ACTIONS(4896),
    [sym_char] = ACTIONS(4896),
    [sym_short] = ACTIONS(4896),
    [sym_ushort] = ACTIONS(4896),
    [sym_int] = ACTIONS(4896),
    [sym_uint] = ACTIONS(4896),
    [sym_long] = ACTIONS(4896),
    [sym_ulong] = ACTIONS(4896),
    [sym_cent] = ACTIONS(4896),
    [sym_ucent] = ACTIONS(4896),
    [sym_wchar] = ACTIONS(4896),
    [sym_dchar] = ACTIONS(4896),
    [sym_float] = ACTIONS(4896),
    [sym_double] = ACTIONS(4896),
    [sym_real] = ACTIONS(4896),
    [sym_ifloat] = ACTIONS(4896),
    [sym_idouble] = ACTIONS(4896),
    [sym_ireal] = ACTIONS(4896),
    [sym_cfloat] = ACTIONS(4896),
    [sym_cdouble] = ACTIONS(4896),
    [sym_creal] = ACTIONS(4896),
    [sym_size_t] = ACTIONS(4896),
    [sym_ptrdiff_t] = ACTIONS(4896),
    [sym_string] = ACTIONS(4896),
    [sym_cstring] = ACTIONS(4896),
    [sym_dstring] = ACTIONS(4896),
    [sym_wstring] = ACTIONS(4896),
    [sym_noreturn] = ACTIONS(4896),
    [sym_true] = ACTIONS(4896),
    [sym_false] = ACTIONS(4896),
    [sym_null] = ACTIONS(4896),
    [sym_super] = ACTIONS(4896),
    [sym_this] = ACTIONS(4896),
    [sym_assert] = ACTIONS(4896),
    [sym_auto] = ACTIONS(4896),
    [sym_cast] = ACTIONS(4896),
    [sym_catch] = ACTIONS(4896),
    [sym_const] = ACTIONS(4896),
    [sym_delegate] = ACTIONS(4896),
    [sym_delete] = ACTIONS(4896),
    [sym_do] = ACTIONS(4896),
    [sym_else] = ACTIONS(4896),
    [sym_finally] = ACTIONS(4896),
    [sym_function] = ACTIONS(4896),
    [sym_immutable] = ACTIONS(4896),
    [sym_import] = ACTIONS(4896),
    [sym_in] = ACTIONS(4896),
    [sym_inout] = ACTIONS(4896),
    [sym_is] = ACTIONS(4896),
    [sym_mixin] = ACTIONS(4896),
    [sym_new] = ACTIONS(4896),
    [sym_out] = ACTIONS(4896),
    [sym_ref] = ACTIONS(4896),
    [sym_shared] = ACTIONS(4896),
    [sym_throw] = ACTIONS(4896),
    [sym_typeid] = ACTIONS(4896),
    [sym_typeof] = ACTIONS(4896),
    [sym_traits] = ACTIONS(4896),
    [sym_vector] = ACTIONS(4896),
    [sym_void] = ACTIONS(4896),
    [anon_sym_BQUOTE] = ACTIONS(4898),
    [anon_sym_r_DQUOTE] = ACTIONS(4898),
    [anon_sym_x_DQUOTE] = ACTIONS(4898),
    [anon_sym_DQUOTE] = ACTIONS(4898),
    [anon_sym_i_BQUOTE] = ACTIONS(4898),
    [anon_sym_i_DQUOTE] = ACTIONS(4898),
    [anon_sym_iq_LBRACE] = ACTIONS(4898),
    [aux_sym_char_literal_token1] = ACTIONS(4898),
    [anon_sym_SQUOTE] = ACTIONS(4896),
    [anon_sym___DATE__] = ACTIONS(4896),
    [anon_sym___FILE__] = ACTIONS(4896),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4896),
    [anon_sym___FUNCTION__] = ACTIONS(4896),
    [anon_sym___LINE__] = ACTIONS(4896),
    [anon_sym___MODULE__] = ACTIONS(4896),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4896),
    [anon_sym___TIME__] = ACTIONS(4896),
    [anon_sym___TIMESTAMP__] = ACTIONS(4896),
    [anon_sym___VENDOR__] = ACTIONS(4896),
    [anon_sym___VERSION__] = ACTIONS(4896),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4898),
    [sym_float_literal] = ACTIONS(4898),
    [sym__string] = ACTIONS(4898),
  },
  [2302] = {
    [sym_identifier] = ACTIONS(4900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4902),
    [anon_sym_LBRACE] = ACTIONS(4902),
    [anon_sym_DOT] = ACTIONS(4902),
    [anon_sym_AMP] = ACTIONS(4902),
    [anon_sym_DASH] = ACTIONS(4900),
    [anon_sym_DASH_DASH] = ACTIONS(4902),
    [anon_sym_PLUS] = ACTIONS(4900),
    [anon_sym_PLUS_PLUS] = ACTIONS(4902),
    [anon_sym_BANG] = ACTIONS(4902),
    [anon_sym_LPAREN] = ACTIONS(4902),
    [anon_sym_RPAREN] = ACTIONS(4902),
    [anon_sym_LBRACK] = ACTIONS(4902),
    [anon_sym_SEMI] = ACTIONS(4902),
    [anon_sym_DOLLAR] = ACTIONS(4902),
    [anon_sym_STAR] = ACTIONS(4902),
    [anon_sym_TILDE] = ACTIONS(4902),
    [sym_bool] = ACTIONS(4900),
    [sym_byte] = ACTIONS(4900),
    [sym_ubyte] = ACTIONS(4900),
    [sym_char] = ACTIONS(4900),
    [sym_short] = ACTIONS(4900),
    [sym_ushort] = ACTIONS(4900),
    [sym_int] = ACTIONS(4900),
    [sym_uint] = ACTIONS(4900),
    [sym_long] = ACTIONS(4900),
    [sym_ulong] = ACTIONS(4900),
    [sym_cent] = ACTIONS(4900),
    [sym_ucent] = ACTIONS(4900),
    [sym_wchar] = ACTIONS(4900),
    [sym_dchar] = ACTIONS(4900),
    [sym_float] = ACTIONS(4900),
    [sym_double] = ACTIONS(4900),
    [sym_real] = ACTIONS(4900),
    [sym_ifloat] = ACTIONS(4900),
    [sym_idouble] = ACTIONS(4900),
    [sym_ireal] = ACTIONS(4900),
    [sym_cfloat] = ACTIONS(4900),
    [sym_cdouble] = ACTIONS(4900),
    [sym_creal] = ACTIONS(4900),
    [sym_size_t] = ACTIONS(4900),
    [sym_ptrdiff_t] = ACTIONS(4900),
    [sym_string] = ACTIONS(4900),
    [sym_cstring] = ACTIONS(4900),
    [sym_dstring] = ACTIONS(4900),
    [sym_wstring] = ACTIONS(4900),
    [sym_noreturn] = ACTIONS(4900),
    [sym_true] = ACTIONS(4900),
    [sym_false] = ACTIONS(4900),
    [sym_null] = ACTIONS(4900),
    [sym_super] = ACTIONS(4900),
    [sym_this] = ACTIONS(4900),
    [sym_assert] = ACTIONS(4900),
    [sym_auto] = ACTIONS(4900),
    [sym_cast] = ACTIONS(4900),
    [sym_catch] = ACTIONS(4900),
    [sym_const] = ACTIONS(4900),
    [sym_delegate] = ACTIONS(4900),
    [sym_delete] = ACTIONS(4900),
    [sym_do] = ACTIONS(4900),
    [sym_else] = ACTIONS(4900),
    [sym_finally] = ACTIONS(4900),
    [sym_function] = ACTIONS(4900),
    [sym_immutable] = ACTIONS(4900),
    [sym_import] = ACTIONS(4900),
    [sym_in] = ACTIONS(4900),
    [sym_inout] = ACTIONS(4900),
    [sym_is] = ACTIONS(4900),
    [sym_mixin] = ACTIONS(4900),
    [sym_new] = ACTIONS(4900),
    [sym_out] = ACTIONS(4900),
    [sym_ref] = ACTIONS(4900),
    [sym_shared] = ACTIONS(4900),
    [sym_throw] = ACTIONS(4900),
    [sym_typeid] = ACTIONS(4900),
    [sym_typeof] = ACTIONS(4900),
    [sym_traits] = ACTIONS(4900),
    [sym_vector] = ACTIONS(4900),
    [sym_void] = ACTIONS(4900),
    [anon_sym_BQUOTE] = ACTIONS(4902),
    [anon_sym_r_DQUOTE] = ACTIONS(4902),
    [anon_sym_x_DQUOTE] = ACTIONS(4902),
    [anon_sym_DQUOTE] = ACTIONS(4902),
    [anon_sym_i_BQUOTE] = ACTIONS(4902),
    [anon_sym_i_DQUOTE] = ACTIONS(4902),
    [anon_sym_iq_LBRACE] = ACTIONS(4902),
    [aux_sym_char_literal_token1] = ACTIONS(4902),
    [anon_sym_SQUOTE] = ACTIONS(4900),
    [anon_sym___DATE__] = ACTIONS(4900),
    [anon_sym___FILE__] = ACTIONS(4900),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4900),
    [anon_sym___FUNCTION__] = ACTIONS(4900),
    [anon_sym___LINE__] = ACTIONS(4900),
    [anon_sym___MODULE__] = ACTIONS(4900),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4900),
    [anon_sym___TIME__] = ACTIONS(4900),
    [anon_sym___TIMESTAMP__] = ACTIONS(4900),
    [anon_sym___VENDOR__] = ACTIONS(4900),
    [anon_sym___VERSION__] = ACTIONS(4900),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4902),
    [sym_float_literal] = ACTIONS(4902),
    [sym__string] = ACTIONS(4902),
  },
  [2303] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4618),
    [anon_sym_LBRACE] = ACTIONS(4926),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_AMP] = ACTIONS(4618),
    [anon_sym_DASH] = ACTIONS(4616),
    [anon_sym_DASH_DASH] = ACTIONS(4618),
    [anon_sym_PLUS] = ACTIONS(4616),
    [anon_sym_PLUS_PLUS] = ACTIONS(4618),
    [anon_sym_BANG] = ACTIONS(4618),
    [anon_sym_LPAREN] = ACTIONS(4618),
    [anon_sym_RPAREN] = ACTIONS(4618),
    [anon_sym_LBRACK] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4926),
    [anon_sym_DOLLAR] = ACTIONS(4618),
    [anon_sym_STAR] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_true] = ACTIONS(4616),
    [sym_false] = ACTIONS(4616),
    [sym_null] = ACTIONS(4616),
    [sym_super] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_assert] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_cast] = ACTIONS(4616),
    [sym_catch] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_delegate] = ACTIONS(4616),
    [sym_delete] = ACTIONS(4616),
    [sym_do] = ACTIONS(4929),
    [sym_else] = ACTIONS(4616),
    [sym_finally] = ACTIONS(4616),
    [sym_function] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(4929),
    [sym_inout] = ACTIONS(4616),
    [sym_is] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_new] = ACTIONS(4616),
    [sym_out] = ACTIONS(4929),
    [sym_ref] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_throw] = ACTIONS(4616),
    [sym_typeid] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [anon_sym_BQUOTE] = ACTIONS(4618),
    [anon_sym_r_DQUOTE] = ACTIONS(4618),
    [anon_sym_x_DQUOTE] = ACTIONS(4618),
    [anon_sym_DQUOTE] = ACTIONS(4618),
    [anon_sym_i_BQUOTE] = ACTIONS(4618),
    [anon_sym_i_DQUOTE] = ACTIONS(4618),
    [anon_sym_iq_LBRACE] = ACTIONS(4618),
    [aux_sym_char_literal_token1] = ACTIONS(4618),
    [anon_sym_SQUOTE] = ACTIONS(4616),
    [anon_sym___DATE__] = ACTIONS(4616),
    [anon_sym___FILE__] = ACTIONS(4616),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4616),
    [anon_sym___FUNCTION__] = ACTIONS(4616),
    [anon_sym___LINE__] = ACTIONS(4616),
    [anon_sym___MODULE__] = ACTIONS(4616),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4616),
    [anon_sym___TIME__] = ACTIONS(4616),
    [anon_sym___TIMESTAMP__] = ACTIONS(4616),
    [anon_sym___VENDOR__] = ACTIONS(4616),
    [anon_sym___VERSION__] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4618),
    [sym_float_literal] = ACTIONS(4618),
    [sym__string] = ACTIONS(4618),
  },
  [2304] = {
    [sym_identifier] = ACTIONS(4904),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4906),
    [anon_sym_LBRACE] = ACTIONS(4906),
    [anon_sym_DOT] = ACTIONS(4906),
    [anon_sym_AMP] = ACTIONS(4906),
    [anon_sym_DASH] = ACTIONS(4904),
    [anon_sym_DASH_DASH] = ACTIONS(4906),
    [anon_sym_PLUS] = ACTIONS(4904),
    [anon_sym_PLUS_PLUS] = ACTIONS(4906),
    [anon_sym_BANG] = ACTIONS(4906),
    [anon_sym_LPAREN] = ACTIONS(4906),
    [anon_sym_RPAREN] = ACTIONS(4906),
    [anon_sym_LBRACK] = ACTIONS(4906),
    [anon_sym_SEMI] = ACTIONS(4906),
    [anon_sym_DOLLAR] = ACTIONS(4906),
    [anon_sym_STAR] = ACTIONS(4906),
    [anon_sym_TILDE] = ACTIONS(4906),
    [sym_bool] = ACTIONS(4904),
    [sym_byte] = ACTIONS(4904),
    [sym_ubyte] = ACTIONS(4904),
    [sym_char] = ACTIONS(4904),
    [sym_short] = ACTIONS(4904),
    [sym_ushort] = ACTIONS(4904),
    [sym_int] = ACTIONS(4904),
    [sym_uint] = ACTIONS(4904),
    [sym_long] = ACTIONS(4904),
    [sym_ulong] = ACTIONS(4904),
    [sym_cent] = ACTIONS(4904),
    [sym_ucent] = ACTIONS(4904),
    [sym_wchar] = ACTIONS(4904),
    [sym_dchar] = ACTIONS(4904),
    [sym_float] = ACTIONS(4904),
    [sym_double] = ACTIONS(4904),
    [sym_real] = ACTIONS(4904),
    [sym_ifloat] = ACTIONS(4904),
    [sym_idouble] = ACTIONS(4904),
    [sym_ireal] = ACTIONS(4904),
    [sym_cfloat] = ACTIONS(4904),
    [sym_cdouble] = ACTIONS(4904),
    [sym_creal] = ACTIONS(4904),
    [sym_size_t] = ACTIONS(4904),
    [sym_ptrdiff_t] = ACTIONS(4904),
    [sym_string] = ACTIONS(4904),
    [sym_cstring] = ACTIONS(4904),
    [sym_dstring] = ACTIONS(4904),
    [sym_wstring] = ACTIONS(4904),
    [sym_noreturn] = ACTIONS(4904),
    [sym_true] = ACTIONS(4904),
    [sym_false] = ACTIONS(4904),
    [sym_null] = ACTIONS(4904),
    [sym_super] = ACTIONS(4904),
    [sym_this] = ACTIONS(4904),
    [sym_assert] = ACTIONS(4904),
    [sym_auto] = ACTIONS(4904),
    [sym_cast] = ACTIONS(4904),
    [sym_catch] = ACTIONS(4904),
    [sym_const] = ACTIONS(4904),
    [sym_delegate] = ACTIONS(4904),
    [sym_delete] = ACTIONS(4904),
    [sym_do] = ACTIONS(4904),
    [sym_else] = ACTIONS(4904),
    [sym_finally] = ACTIONS(4904),
    [sym_function] = ACTIONS(4904),
    [sym_immutable] = ACTIONS(4904),
    [sym_import] = ACTIONS(4904),
    [sym_in] = ACTIONS(4904),
    [sym_inout] = ACTIONS(4904),
    [sym_is] = ACTIONS(4904),
    [sym_mixin] = ACTIONS(4904),
    [sym_new] = ACTIONS(4904),
    [sym_out] = ACTIONS(4904),
    [sym_ref] = ACTIONS(4904),
    [sym_shared] = ACTIONS(4904),
    [sym_throw] = ACTIONS(4904),
    [sym_typeid] = ACTIONS(4904),
    [sym_typeof] = ACTIONS(4904),
    [sym_traits] = ACTIONS(4904),
    [sym_vector] = ACTIONS(4904),
    [sym_void] = ACTIONS(4904),
    [anon_sym_BQUOTE] = ACTIONS(4906),
    [anon_sym_r_DQUOTE] = ACTIONS(4906),
    [anon_sym_x_DQUOTE] = ACTIONS(4906),
    [anon_sym_DQUOTE] = ACTIONS(4906),
    [anon_sym_i_BQUOTE] = ACTIONS(4906),
    [anon_sym_i_DQUOTE] = ACTIONS(4906),
    [anon_sym_iq_LBRACE] = ACTIONS(4906),
    [aux_sym_char_literal_token1] = ACTIONS(4906),
    [anon_sym_SQUOTE] = ACTIONS(4904),
    [anon_sym___DATE__] = ACTIONS(4904),
    [anon_sym___FILE__] = ACTIONS(4904),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4904),
    [anon_sym___FUNCTION__] = ACTIONS(4904),
    [anon_sym___LINE__] = ACTIONS(4904),
    [anon_sym___MODULE__] = ACTIONS(4904),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4904),
    [anon_sym___TIME__] = ACTIONS(4904),
    [anon_sym___TIMESTAMP__] = ACTIONS(4904),
    [anon_sym___VENDOR__] = ACTIONS(4904),
    [anon_sym___VERSION__] = ACTIONS(4904),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4906),
    [sym_float_literal] = ACTIONS(4906),
    [sym__string] = ACTIONS(4906),
  },
  [2305] = {
    [sym_identifier] = ACTIONS(4912),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4914),
    [anon_sym_LBRACE] = ACTIONS(4914),
    [anon_sym_DOT] = ACTIONS(4914),
    [anon_sym_AMP] = ACTIONS(4914),
    [anon_sym_DASH] = ACTIONS(4912),
    [anon_sym_DASH_DASH] = ACTIONS(4914),
    [anon_sym_PLUS] = ACTIONS(4912),
    [anon_sym_PLUS_PLUS] = ACTIONS(4914),
    [anon_sym_BANG] = ACTIONS(4914),
    [anon_sym_LPAREN] = ACTIONS(4914),
    [anon_sym_RPAREN] = ACTIONS(4914),
    [anon_sym_LBRACK] = ACTIONS(4914),
    [anon_sym_SEMI] = ACTIONS(4914),
    [anon_sym_DOLLAR] = ACTIONS(4914),
    [anon_sym_STAR] = ACTIONS(4914),
    [anon_sym_TILDE] = ACTIONS(4914),
    [sym_bool] = ACTIONS(4912),
    [sym_byte] = ACTIONS(4912),
    [sym_ubyte] = ACTIONS(4912),
    [sym_char] = ACTIONS(4912),
    [sym_short] = ACTIONS(4912),
    [sym_ushort] = ACTIONS(4912),
    [sym_int] = ACTIONS(4912),
    [sym_uint] = ACTIONS(4912),
    [sym_long] = ACTIONS(4912),
    [sym_ulong] = ACTIONS(4912),
    [sym_cent] = ACTIONS(4912),
    [sym_ucent] = ACTIONS(4912),
    [sym_wchar] = ACTIONS(4912),
    [sym_dchar] = ACTIONS(4912),
    [sym_float] = ACTIONS(4912),
    [sym_double] = ACTIONS(4912),
    [sym_real] = ACTIONS(4912),
    [sym_ifloat] = ACTIONS(4912),
    [sym_idouble] = ACTIONS(4912),
    [sym_ireal] = ACTIONS(4912),
    [sym_cfloat] = ACTIONS(4912),
    [sym_cdouble] = ACTIONS(4912),
    [sym_creal] = ACTIONS(4912),
    [sym_size_t] = ACTIONS(4912),
    [sym_ptrdiff_t] = ACTIONS(4912),
    [sym_string] = ACTIONS(4912),
    [sym_cstring] = ACTIONS(4912),
    [sym_dstring] = ACTIONS(4912),
    [sym_wstring] = ACTIONS(4912),
    [sym_noreturn] = ACTIONS(4912),
    [sym_true] = ACTIONS(4912),
    [sym_false] = ACTIONS(4912),
    [sym_null] = ACTIONS(4912),
    [sym_super] = ACTIONS(4912),
    [sym_this] = ACTIONS(4912),
    [sym_assert] = ACTIONS(4912),
    [sym_auto] = ACTIONS(4912),
    [sym_cast] = ACTIONS(4912),
    [sym_catch] = ACTIONS(4912),
    [sym_const] = ACTIONS(4912),
    [sym_delegate] = ACTIONS(4912),
    [sym_delete] = ACTIONS(4912),
    [sym_do] = ACTIONS(4912),
    [sym_else] = ACTIONS(4912),
    [sym_finally] = ACTIONS(4912),
    [sym_function] = ACTIONS(4912),
    [sym_immutable] = ACTIONS(4912),
    [sym_import] = ACTIONS(4912),
    [sym_in] = ACTIONS(4912),
    [sym_inout] = ACTIONS(4912),
    [sym_is] = ACTIONS(4912),
    [sym_mixin] = ACTIONS(4912),
    [sym_new] = ACTIONS(4912),
    [sym_out] = ACTIONS(4912),
    [sym_ref] = ACTIONS(4912),
    [sym_shared] = ACTIONS(4912),
    [sym_throw] = ACTIONS(4912),
    [sym_typeid] = ACTIONS(4912),
    [sym_typeof] = ACTIONS(4912),
    [sym_traits] = ACTIONS(4912),
    [sym_vector] = ACTIONS(4912),
    [sym_void] = ACTIONS(4912),
    [anon_sym_BQUOTE] = ACTIONS(4914),
    [anon_sym_r_DQUOTE] = ACTIONS(4914),
    [anon_sym_x_DQUOTE] = ACTIONS(4914),
    [anon_sym_DQUOTE] = ACTIONS(4914),
    [anon_sym_i_BQUOTE] = ACTIONS(4914),
    [anon_sym_i_DQUOTE] = ACTIONS(4914),
    [anon_sym_iq_LBRACE] = ACTIONS(4914),
    [aux_sym_char_literal_token1] = ACTIONS(4914),
    [anon_sym_SQUOTE] = ACTIONS(4912),
    [anon_sym___DATE__] = ACTIONS(4912),
    [anon_sym___FILE__] = ACTIONS(4912),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4912),
    [anon_sym___FUNCTION__] = ACTIONS(4912),
    [anon_sym___LINE__] = ACTIONS(4912),
    [anon_sym___MODULE__] = ACTIONS(4912),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4912),
    [anon_sym___TIME__] = ACTIONS(4912),
    [anon_sym___TIMESTAMP__] = ACTIONS(4912),
    [anon_sym___VENDOR__] = ACTIONS(4912),
    [anon_sym___VERSION__] = ACTIONS(4912),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4914),
    [sym_float_literal] = ACTIONS(4914),
    [sym__string] = ACTIONS(4914),
  },
  [2306] = {
    [sym_identifier] = ACTIONS(4620),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4622),
    [anon_sym_LBRACE] = ACTIONS(4622),
    [anon_sym_DOT] = ACTIONS(4622),
    [anon_sym_AMP] = ACTIONS(4622),
    [anon_sym_DASH] = ACTIONS(4620),
    [anon_sym_DASH_DASH] = ACTIONS(4622),
    [anon_sym_PLUS] = ACTIONS(4620),
    [anon_sym_PLUS_PLUS] = ACTIONS(4622),
    [anon_sym_BANG] = ACTIONS(4622),
    [anon_sym_LPAREN] = ACTIONS(4622),
    [anon_sym_RPAREN] = ACTIONS(4622),
    [anon_sym_LBRACK] = ACTIONS(4622),
    [anon_sym_SEMI] = ACTIONS(4622),
    [anon_sym_DOLLAR] = ACTIONS(4622),
    [anon_sym_STAR] = ACTIONS(4622),
    [anon_sym_TILDE] = ACTIONS(4622),
    [sym_bool] = ACTIONS(4620),
    [sym_byte] = ACTIONS(4620),
    [sym_ubyte] = ACTIONS(4620),
    [sym_char] = ACTIONS(4620),
    [sym_short] = ACTIONS(4620),
    [sym_ushort] = ACTIONS(4620),
    [sym_int] = ACTIONS(4620),
    [sym_uint] = ACTIONS(4620),
    [sym_long] = ACTIONS(4620),
    [sym_ulong] = ACTIONS(4620),
    [sym_cent] = ACTIONS(4620),
    [sym_ucent] = ACTIONS(4620),
    [sym_wchar] = ACTIONS(4620),
    [sym_dchar] = ACTIONS(4620),
    [sym_float] = ACTIONS(4620),
    [sym_double] = ACTIONS(4620),
    [sym_real] = ACTIONS(4620),
    [sym_ifloat] = ACTIONS(4620),
    [sym_idouble] = ACTIONS(4620),
    [sym_ireal] = ACTIONS(4620),
    [sym_cfloat] = ACTIONS(4620),
    [sym_cdouble] = ACTIONS(4620),
    [sym_creal] = ACTIONS(4620),
    [sym_size_t] = ACTIONS(4620),
    [sym_ptrdiff_t] = ACTIONS(4620),
    [sym_string] = ACTIONS(4620),
    [sym_cstring] = ACTIONS(4620),
    [sym_dstring] = ACTIONS(4620),
    [sym_wstring] = ACTIONS(4620),
    [sym_noreturn] = ACTIONS(4620),
    [sym_true] = ACTIONS(4620),
    [sym_false] = ACTIONS(4620),
    [sym_null] = ACTIONS(4620),
    [sym_super] = ACTIONS(4620),
    [sym_this] = ACTIONS(4620),
    [sym_assert] = ACTIONS(4620),
    [sym_auto] = ACTIONS(4620),
    [sym_cast] = ACTIONS(4620),
    [sym_catch] = ACTIONS(4620),
    [sym_const] = ACTIONS(4620),
    [sym_delegate] = ACTIONS(4620),
    [sym_delete] = ACTIONS(4620),
    [sym_do] = ACTIONS(4620),
    [sym_else] = ACTIONS(4620),
    [sym_finally] = ACTIONS(4620),
    [sym_function] = ACTIONS(4620),
    [sym_immutable] = ACTIONS(4620),
    [sym_import] = ACTIONS(4620),
    [sym_in] = ACTIONS(4620),
    [sym_inout] = ACTIONS(4620),
    [sym_is] = ACTIONS(4620),
    [sym_mixin] = ACTIONS(4620),
    [sym_new] = ACTIONS(4620),
    [sym_out] = ACTIONS(4620),
    [sym_ref] = ACTIONS(4620),
    [sym_shared] = ACTIONS(4620),
    [sym_throw] = ACTIONS(4620),
    [sym_typeid] = ACTIONS(4620),
    [sym_typeof] = ACTIONS(4620),
    [sym_traits] = ACTIONS(4620),
    [sym_vector] = ACTIONS(4620),
    [sym_void] = ACTIONS(4620),
    [anon_sym_BQUOTE] = ACTIONS(4622),
    [anon_sym_r_DQUOTE] = ACTIONS(4622),
    [anon_sym_x_DQUOTE] = ACTIONS(4622),
    [anon_sym_DQUOTE] = ACTIONS(4622),
    [anon_sym_i_BQUOTE] = ACTIONS(4622),
    [anon_sym_i_DQUOTE] = ACTIONS(4622),
    [anon_sym_iq_LBRACE] = ACTIONS(4622),
    [aux_sym_char_literal_token1] = ACTIONS(4622),
    [anon_sym_SQUOTE] = ACTIONS(4620),
    [anon_sym___DATE__] = ACTIONS(4620),
    [anon_sym___FILE__] = ACTIONS(4620),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4620),
    [anon_sym___FUNCTION__] = ACTIONS(4620),
    [anon_sym___LINE__] = ACTIONS(4620),
    [anon_sym___MODULE__] = ACTIONS(4620),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4620),
    [anon_sym___TIME__] = ACTIONS(4620),
    [anon_sym___TIMESTAMP__] = ACTIONS(4620),
    [anon_sym___VENDOR__] = ACTIONS(4620),
    [anon_sym___VERSION__] = ACTIONS(4620),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4622),
    [sym_float_literal] = ACTIONS(4622),
    [sym__string] = ACTIONS(4622),
  },
  [2307] = {
    [sym_identifier] = ACTIONS(4918),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4920),
    [anon_sym_LBRACE] = ACTIONS(4920),
    [anon_sym_DOT] = ACTIONS(4920),
    [anon_sym_AMP] = ACTIONS(4920),
    [anon_sym_DASH] = ACTIONS(4918),
    [anon_sym_DASH_DASH] = ACTIONS(4920),
    [anon_sym_PLUS] = ACTIONS(4918),
    [anon_sym_PLUS_PLUS] = ACTIONS(4920),
    [anon_sym_BANG] = ACTIONS(4920),
    [anon_sym_LPAREN] = ACTIONS(4920),
    [anon_sym_RPAREN] = ACTIONS(4920),
    [anon_sym_LBRACK] = ACTIONS(4920),
    [anon_sym_SEMI] = ACTIONS(4920),
    [anon_sym_DOLLAR] = ACTIONS(4920),
    [anon_sym_STAR] = ACTIONS(4920),
    [anon_sym_TILDE] = ACTIONS(4920),
    [sym_bool] = ACTIONS(4918),
    [sym_byte] = ACTIONS(4918),
    [sym_ubyte] = ACTIONS(4918),
    [sym_char] = ACTIONS(4918),
    [sym_short] = ACTIONS(4918),
    [sym_ushort] = ACTIONS(4918),
    [sym_int] = ACTIONS(4918),
    [sym_uint] = ACTIONS(4918),
    [sym_long] = ACTIONS(4918),
    [sym_ulong] = ACTIONS(4918),
    [sym_cent] = ACTIONS(4918),
    [sym_ucent] = ACTIONS(4918),
    [sym_wchar] = ACTIONS(4918),
    [sym_dchar] = ACTIONS(4918),
    [sym_float] = ACTIONS(4918),
    [sym_double] = ACTIONS(4918),
    [sym_real] = ACTIONS(4918),
    [sym_ifloat] = ACTIONS(4918),
    [sym_idouble] = ACTIONS(4918),
    [sym_ireal] = ACTIONS(4918),
    [sym_cfloat] = ACTIONS(4918),
    [sym_cdouble] = ACTIONS(4918),
    [sym_creal] = ACTIONS(4918),
    [sym_size_t] = ACTIONS(4918),
    [sym_ptrdiff_t] = ACTIONS(4918),
    [sym_string] = ACTIONS(4918),
    [sym_cstring] = ACTIONS(4918),
    [sym_dstring] = ACTIONS(4918),
    [sym_wstring] = ACTIONS(4918),
    [sym_noreturn] = ACTIONS(4918),
    [sym_true] = ACTIONS(4918),
    [sym_false] = ACTIONS(4918),
    [sym_null] = ACTIONS(4918),
    [sym_super] = ACTIONS(4918),
    [sym_this] = ACTIONS(4918),
    [sym_assert] = ACTIONS(4918),
    [sym_auto] = ACTIONS(4918),
    [sym_cast] = ACTIONS(4918),
    [sym_catch] = ACTIONS(4918),
    [sym_const] = ACTIONS(4918),
    [sym_delegate] = ACTIONS(4918),
    [sym_delete] = ACTIONS(4918),
    [sym_do] = ACTIONS(4918),
    [sym_else] = ACTIONS(4918),
    [sym_finally] = ACTIONS(4918),
    [sym_function] = ACTIONS(4918),
    [sym_immutable] = ACTIONS(4918),
    [sym_import] = ACTIONS(4918),
    [sym_in] = ACTIONS(4918),
    [sym_inout] = ACTIONS(4918),
    [sym_is] = ACTIONS(4918),
    [sym_mixin] = ACTIONS(4918),
    [sym_new] = ACTIONS(4918),
    [sym_out] = ACTIONS(4918),
    [sym_ref] = ACTIONS(4918),
    [sym_shared] = ACTIONS(4918),
    [sym_throw] = ACTIONS(4918),
    [sym_typeid] = ACTIONS(4918),
    [sym_typeof] = ACTIONS(4918),
    [sym_traits] = ACTIONS(4918),
    [sym_vector] = ACTIONS(4918),
    [sym_void] = ACTIONS(4918),
    [anon_sym_BQUOTE] = ACTIONS(4920),
    [anon_sym_r_DQUOTE] = ACTIONS(4920),
    [anon_sym_x_DQUOTE] = ACTIONS(4920),
    [anon_sym_DQUOTE] = ACTIONS(4920),
    [anon_sym_i_BQUOTE] = ACTIONS(4920),
    [anon_sym_i_DQUOTE] = ACTIONS(4920),
    [anon_sym_iq_LBRACE] = ACTIONS(4920),
    [aux_sym_char_literal_token1] = ACTIONS(4920),
    [anon_sym_SQUOTE] = ACTIONS(4918),
    [anon_sym___DATE__] = ACTIONS(4918),
    [anon_sym___FILE__] = ACTIONS(4918),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4918),
    [anon_sym___FUNCTION__] = ACTIONS(4918),
    [anon_sym___LINE__] = ACTIONS(4918),
    [anon_sym___MODULE__] = ACTIONS(4918),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4918),
    [anon_sym___TIME__] = ACTIONS(4918),
    [anon_sym___TIMESTAMP__] = ACTIONS(4918),
    [anon_sym___VENDOR__] = ACTIONS(4918),
    [anon_sym___VERSION__] = ACTIONS(4918),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4920),
    [sym_float_literal] = ACTIONS(4920),
    [sym__string] = ACTIONS(4920),
  },
  [2308] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_catch] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(6573),
    [sym_finally] = ACTIONS(4365),
    [sym_function] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [2309] = {
    [sym_identifier] = ACTIONS(4970),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4972),
    [anon_sym_LBRACE] = ACTIONS(4972),
    [anon_sym_DOT] = ACTIONS(4972),
    [anon_sym_AMP] = ACTIONS(4972),
    [anon_sym_DASH] = ACTIONS(4970),
    [anon_sym_DASH_DASH] = ACTIONS(4972),
    [anon_sym_PLUS] = ACTIONS(4970),
    [anon_sym_PLUS_PLUS] = ACTIONS(4972),
    [anon_sym_BANG] = ACTIONS(4972),
    [anon_sym_LPAREN] = ACTIONS(4972),
    [anon_sym_RPAREN] = ACTIONS(4972),
    [anon_sym_LBRACK] = ACTIONS(4972),
    [anon_sym_SEMI] = ACTIONS(4972),
    [anon_sym_DOLLAR] = ACTIONS(4972),
    [anon_sym_STAR] = ACTIONS(4972),
    [anon_sym_TILDE] = ACTIONS(4972),
    [sym_bool] = ACTIONS(4970),
    [sym_byte] = ACTIONS(4970),
    [sym_ubyte] = ACTIONS(4970),
    [sym_char] = ACTIONS(4970),
    [sym_short] = ACTIONS(4970),
    [sym_ushort] = ACTIONS(4970),
    [sym_int] = ACTIONS(4970),
    [sym_uint] = ACTIONS(4970),
    [sym_long] = ACTIONS(4970),
    [sym_ulong] = ACTIONS(4970),
    [sym_cent] = ACTIONS(4970),
    [sym_ucent] = ACTIONS(4970),
    [sym_wchar] = ACTIONS(4970),
    [sym_dchar] = ACTIONS(4970),
    [sym_float] = ACTIONS(4970),
    [sym_double] = ACTIONS(4970),
    [sym_real] = ACTIONS(4970),
    [sym_ifloat] = ACTIONS(4970),
    [sym_idouble] = ACTIONS(4970),
    [sym_ireal] = ACTIONS(4970),
    [sym_cfloat] = ACTIONS(4970),
    [sym_cdouble] = ACTIONS(4970),
    [sym_creal] = ACTIONS(4970),
    [sym_size_t] = ACTIONS(4970),
    [sym_ptrdiff_t] = ACTIONS(4970),
    [sym_string] = ACTIONS(4970),
    [sym_cstring] = ACTIONS(4970),
    [sym_dstring] = ACTIONS(4970),
    [sym_wstring] = ACTIONS(4970),
    [sym_noreturn] = ACTIONS(4970),
    [sym_true] = ACTIONS(4970),
    [sym_false] = ACTIONS(4970),
    [sym_null] = ACTIONS(4970),
    [sym_super] = ACTIONS(4970),
    [sym_this] = ACTIONS(4970),
    [sym_assert] = ACTIONS(4970),
    [sym_auto] = ACTIONS(4970),
    [sym_cast] = ACTIONS(4970),
    [sym_catch] = ACTIONS(4970),
    [sym_const] = ACTIONS(4970),
    [sym_delegate] = ACTIONS(4970),
    [sym_delete] = ACTIONS(4970),
    [sym_do] = ACTIONS(4970),
    [sym_else] = ACTIONS(4970),
    [sym_finally] = ACTIONS(4970),
    [sym_function] = ACTIONS(4970),
    [sym_immutable] = ACTIONS(4970),
    [sym_import] = ACTIONS(4970),
    [sym_in] = ACTIONS(4970),
    [sym_inout] = ACTIONS(4970),
    [sym_is] = ACTIONS(4970),
    [sym_mixin] = ACTIONS(4970),
    [sym_new] = ACTIONS(4970),
    [sym_out] = ACTIONS(4970),
    [sym_ref] = ACTIONS(4970),
    [sym_shared] = ACTIONS(4970),
    [sym_throw] = ACTIONS(4970),
    [sym_typeid] = ACTIONS(4970),
    [sym_typeof] = ACTIONS(4970),
    [sym_traits] = ACTIONS(4970),
    [sym_vector] = ACTIONS(4970),
    [sym_void] = ACTIONS(4970),
    [anon_sym_BQUOTE] = ACTIONS(4972),
    [anon_sym_r_DQUOTE] = ACTIONS(4972),
    [anon_sym_x_DQUOTE] = ACTIONS(4972),
    [anon_sym_DQUOTE] = ACTIONS(4972),
    [anon_sym_i_BQUOTE] = ACTIONS(4972),
    [anon_sym_i_DQUOTE] = ACTIONS(4972),
    [anon_sym_iq_LBRACE] = ACTIONS(4972),
    [aux_sym_char_literal_token1] = ACTIONS(4972),
    [anon_sym_SQUOTE] = ACTIONS(4970),
    [anon_sym___DATE__] = ACTIONS(4970),
    [anon_sym___FILE__] = ACTIONS(4970),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4970),
    [anon_sym___FUNCTION__] = ACTIONS(4970),
    [anon_sym___LINE__] = ACTIONS(4970),
    [anon_sym___MODULE__] = ACTIONS(4970),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4970),
    [anon_sym___TIME__] = ACTIONS(4970),
    [anon_sym___TIMESTAMP__] = ACTIONS(4970),
    [anon_sym___VENDOR__] = ACTIONS(4970),
    [anon_sym___VERSION__] = ACTIONS(4970),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4972),
    [sym_float_literal] = ACTIONS(4972),
    [sym__string] = ACTIONS(4972),
  },
  [2310] = {
    [sym_identifier] = ACTIONS(5076),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5078),
    [anon_sym_LBRACE] = ACTIONS(5078),
    [anon_sym_DOT] = ACTIONS(5078),
    [anon_sym_AMP] = ACTIONS(5078),
    [anon_sym_DASH] = ACTIONS(5076),
    [anon_sym_DASH_DASH] = ACTIONS(5078),
    [anon_sym_PLUS] = ACTIONS(5076),
    [anon_sym_PLUS_PLUS] = ACTIONS(5078),
    [anon_sym_BANG] = ACTIONS(5078),
    [anon_sym_LPAREN] = ACTIONS(5078),
    [anon_sym_RPAREN] = ACTIONS(5078),
    [anon_sym_LBRACK] = ACTIONS(5078),
    [anon_sym_SEMI] = ACTIONS(5078),
    [anon_sym_DOLLAR] = ACTIONS(5078),
    [anon_sym_STAR] = ACTIONS(5078),
    [anon_sym_TILDE] = ACTIONS(5078),
    [sym_bool] = ACTIONS(5076),
    [sym_byte] = ACTIONS(5076),
    [sym_ubyte] = ACTIONS(5076),
    [sym_char] = ACTIONS(5076),
    [sym_short] = ACTIONS(5076),
    [sym_ushort] = ACTIONS(5076),
    [sym_int] = ACTIONS(5076),
    [sym_uint] = ACTIONS(5076),
    [sym_long] = ACTIONS(5076),
    [sym_ulong] = ACTIONS(5076),
    [sym_cent] = ACTIONS(5076),
    [sym_ucent] = ACTIONS(5076),
    [sym_wchar] = ACTIONS(5076),
    [sym_dchar] = ACTIONS(5076),
    [sym_float] = ACTIONS(5076),
    [sym_double] = ACTIONS(5076),
    [sym_real] = ACTIONS(5076),
    [sym_ifloat] = ACTIONS(5076),
    [sym_idouble] = ACTIONS(5076),
    [sym_ireal] = ACTIONS(5076),
    [sym_cfloat] = ACTIONS(5076),
    [sym_cdouble] = ACTIONS(5076),
    [sym_creal] = ACTIONS(5076),
    [sym_size_t] = ACTIONS(5076),
    [sym_ptrdiff_t] = ACTIONS(5076),
    [sym_string] = ACTIONS(5076),
    [sym_cstring] = ACTIONS(5076),
    [sym_dstring] = ACTIONS(5076),
    [sym_wstring] = ACTIONS(5076),
    [sym_noreturn] = ACTIONS(5076),
    [sym_true] = ACTIONS(5076),
    [sym_false] = ACTIONS(5076),
    [sym_null] = ACTIONS(5076),
    [sym_super] = ACTIONS(5076),
    [sym_this] = ACTIONS(5076),
    [sym_assert] = ACTIONS(5076),
    [sym_auto] = ACTIONS(5076),
    [sym_cast] = ACTIONS(5076),
    [sym_catch] = ACTIONS(5076),
    [sym_const] = ACTIONS(5076),
    [sym_delegate] = ACTIONS(5076),
    [sym_delete] = ACTIONS(5076),
    [sym_do] = ACTIONS(5076),
    [sym_else] = ACTIONS(5076),
    [sym_finally] = ACTIONS(5076),
    [sym_function] = ACTIONS(5076),
    [sym_immutable] = ACTIONS(5076),
    [sym_import] = ACTIONS(5076),
    [sym_in] = ACTIONS(5076),
    [sym_inout] = ACTIONS(5076),
    [sym_is] = ACTIONS(5076),
    [sym_mixin] = ACTIONS(5076),
    [sym_new] = ACTIONS(5076),
    [sym_out] = ACTIONS(5076),
    [sym_ref] = ACTIONS(5076),
    [sym_shared] = ACTIONS(5076),
    [sym_throw] = ACTIONS(5076),
    [sym_typeid] = ACTIONS(5076),
    [sym_typeof] = ACTIONS(5076),
    [sym_traits] = ACTIONS(5076),
    [sym_vector] = ACTIONS(5076),
    [sym_void] = ACTIONS(5076),
    [anon_sym_BQUOTE] = ACTIONS(5078),
    [anon_sym_r_DQUOTE] = ACTIONS(5078),
    [anon_sym_x_DQUOTE] = ACTIONS(5078),
    [anon_sym_DQUOTE] = ACTIONS(5078),
    [anon_sym_i_BQUOTE] = ACTIONS(5078),
    [anon_sym_i_DQUOTE] = ACTIONS(5078),
    [anon_sym_iq_LBRACE] = ACTIONS(5078),
    [aux_sym_char_literal_token1] = ACTIONS(5078),
    [anon_sym_SQUOTE] = ACTIONS(5076),
    [anon_sym___DATE__] = ACTIONS(5076),
    [anon_sym___FILE__] = ACTIONS(5076),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5076),
    [anon_sym___FUNCTION__] = ACTIONS(5076),
    [anon_sym___LINE__] = ACTIONS(5076),
    [anon_sym___MODULE__] = ACTIONS(5076),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5076),
    [anon_sym___TIME__] = ACTIONS(5076),
    [anon_sym___TIMESTAMP__] = ACTIONS(5076),
    [anon_sym___VENDOR__] = ACTIONS(5076),
    [anon_sym___VERSION__] = ACTIONS(5076),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5078),
    [sym_float_literal] = ACTIONS(5078),
    [sym__string] = ACTIONS(5078),
  },
  [2311] = {
    [sym_identifier] = ACTIONS(4978),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4980),
    [anon_sym_LBRACE] = ACTIONS(4980),
    [anon_sym_DOT] = ACTIONS(4980),
    [anon_sym_AMP] = ACTIONS(4980),
    [anon_sym_DASH] = ACTIONS(4978),
    [anon_sym_DASH_DASH] = ACTIONS(4980),
    [anon_sym_PLUS] = ACTIONS(4978),
    [anon_sym_PLUS_PLUS] = ACTIONS(4980),
    [anon_sym_BANG] = ACTIONS(4980),
    [anon_sym_LPAREN] = ACTIONS(4980),
    [anon_sym_RPAREN] = ACTIONS(4980),
    [anon_sym_LBRACK] = ACTIONS(4980),
    [anon_sym_SEMI] = ACTIONS(4980),
    [anon_sym_DOLLAR] = ACTIONS(4980),
    [anon_sym_STAR] = ACTIONS(4980),
    [anon_sym_TILDE] = ACTIONS(4980),
    [sym_bool] = ACTIONS(4978),
    [sym_byte] = ACTIONS(4978),
    [sym_ubyte] = ACTIONS(4978),
    [sym_char] = ACTIONS(4978),
    [sym_short] = ACTIONS(4978),
    [sym_ushort] = ACTIONS(4978),
    [sym_int] = ACTIONS(4978),
    [sym_uint] = ACTIONS(4978),
    [sym_long] = ACTIONS(4978),
    [sym_ulong] = ACTIONS(4978),
    [sym_cent] = ACTIONS(4978),
    [sym_ucent] = ACTIONS(4978),
    [sym_wchar] = ACTIONS(4978),
    [sym_dchar] = ACTIONS(4978),
    [sym_float] = ACTIONS(4978),
    [sym_double] = ACTIONS(4978),
    [sym_real] = ACTIONS(4978),
    [sym_ifloat] = ACTIONS(4978),
    [sym_idouble] = ACTIONS(4978),
    [sym_ireal] = ACTIONS(4978),
    [sym_cfloat] = ACTIONS(4978),
    [sym_cdouble] = ACTIONS(4978),
    [sym_creal] = ACTIONS(4978),
    [sym_size_t] = ACTIONS(4978),
    [sym_ptrdiff_t] = ACTIONS(4978),
    [sym_string] = ACTIONS(4978),
    [sym_cstring] = ACTIONS(4978),
    [sym_dstring] = ACTIONS(4978),
    [sym_wstring] = ACTIONS(4978),
    [sym_noreturn] = ACTIONS(4978),
    [sym_true] = ACTIONS(4978),
    [sym_false] = ACTIONS(4978),
    [sym_null] = ACTIONS(4978),
    [sym_super] = ACTIONS(4978),
    [sym_this] = ACTIONS(4978),
    [sym_assert] = ACTIONS(4978),
    [sym_auto] = ACTIONS(4978),
    [sym_cast] = ACTIONS(4978),
    [sym_catch] = ACTIONS(4978),
    [sym_const] = ACTIONS(4978),
    [sym_delegate] = ACTIONS(4978),
    [sym_delete] = ACTIONS(4978),
    [sym_do] = ACTIONS(4978),
    [sym_else] = ACTIONS(4978),
    [sym_finally] = ACTIONS(4978),
    [sym_function] = ACTIONS(4978),
    [sym_immutable] = ACTIONS(4978),
    [sym_import] = ACTIONS(4978),
    [sym_in] = ACTIONS(4978),
    [sym_inout] = ACTIONS(4978),
    [sym_is] = ACTIONS(4978),
    [sym_mixin] = ACTIONS(4978),
    [sym_new] = ACTIONS(4978),
    [sym_out] = ACTIONS(4978),
    [sym_ref] = ACTIONS(4978),
    [sym_shared] = ACTIONS(4978),
    [sym_throw] = ACTIONS(4978),
    [sym_typeid] = ACTIONS(4978),
    [sym_typeof] = ACTIONS(4978),
    [sym_traits] = ACTIONS(4978),
    [sym_vector] = ACTIONS(4978),
    [sym_void] = ACTIONS(4978),
    [anon_sym_BQUOTE] = ACTIONS(4980),
    [anon_sym_r_DQUOTE] = ACTIONS(4980),
    [anon_sym_x_DQUOTE] = ACTIONS(4980),
    [anon_sym_DQUOTE] = ACTIONS(4980),
    [anon_sym_i_BQUOTE] = ACTIONS(4980),
    [anon_sym_i_DQUOTE] = ACTIONS(4980),
    [anon_sym_iq_LBRACE] = ACTIONS(4980),
    [aux_sym_char_literal_token1] = ACTIONS(4980),
    [anon_sym_SQUOTE] = ACTIONS(4978),
    [anon_sym___DATE__] = ACTIONS(4978),
    [anon_sym___FILE__] = ACTIONS(4978),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4978),
    [anon_sym___FUNCTION__] = ACTIONS(4978),
    [anon_sym___LINE__] = ACTIONS(4978),
    [anon_sym___MODULE__] = ACTIONS(4978),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4978),
    [anon_sym___TIME__] = ACTIONS(4978),
    [anon_sym___TIMESTAMP__] = ACTIONS(4978),
    [anon_sym___VENDOR__] = ACTIONS(4978),
    [anon_sym___VERSION__] = ACTIONS(4978),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4980),
    [sym_float_literal] = ACTIONS(4980),
    [sym__string] = ACTIONS(4980),
  },
  [2312] = {
    [sym_identifier] = ACTIONS(4982),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4984),
    [anon_sym_LBRACE] = ACTIONS(4984),
    [anon_sym_DOT] = ACTIONS(4984),
    [anon_sym_AMP] = ACTIONS(4984),
    [anon_sym_DASH] = ACTIONS(4982),
    [anon_sym_DASH_DASH] = ACTIONS(4984),
    [anon_sym_PLUS] = ACTIONS(4982),
    [anon_sym_PLUS_PLUS] = ACTIONS(4984),
    [anon_sym_BANG] = ACTIONS(4984),
    [anon_sym_LPAREN] = ACTIONS(4984),
    [anon_sym_RPAREN] = ACTIONS(4984),
    [anon_sym_LBRACK] = ACTIONS(4984),
    [anon_sym_SEMI] = ACTIONS(4984),
    [anon_sym_DOLLAR] = ACTIONS(4984),
    [anon_sym_STAR] = ACTIONS(4984),
    [anon_sym_TILDE] = ACTIONS(4984),
    [sym_bool] = ACTIONS(4982),
    [sym_byte] = ACTIONS(4982),
    [sym_ubyte] = ACTIONS(4982),
    [sym_char] = ACTIONS(4982),
    [sym_short] = ACTIONS(4982),
    [sym_ushort] = ACTIONS(4982),
    [sym_int] = ACTIONS(4982),
    [sym_uint] = ACTIONS(4982),
    [sym_long] = ACTIONS(4982),
    [sym_ulong] = ACTIONS(4982),
    [sym_cent] = ACTIONS(4982),
    [sym_ucent] = ACTIONS(4982),
    [sym_wchar] = ACTIONS(4982),
    [sym_dchar] = ACTIONS(4982),
    [sym_float] = ACTIONS(4982),
    [sym_double] = ACTIONS(4982),
    [sym_real] = ACTIONS(4982),
    [sym_ifloat] = ACTIONS(4982),
    [sym_idouble] = ACTIONS(4982),
    [sym_ireal] = ACTIONS(4982),
    [sym_cfloat] = ACTIONS(4982),
    [sym_cdouble] = ACTIONS(4982),
    [sym_creal] = ACTIONS(4982),
    [sym_size_t] = ACTIONS(4982),
    [sym_ptrdiff_t] = ACTIONS(4982),
    [sym_string] = ACTIONS(4982),
    [sym_cstring] = ACTIONS(4982),
    [sym_dstring] = ACTIONS(4982),
    [sym_wstring] = ACTIONS(4982),
    [sym_noreturn] = ACTIONS(4982),
    [sym_true] = ACTIONS(4982),
    [sym_false] = ACTIONS(4982),
    [sym_null] = ACTIONS(4982),
    [sym_super] = ACTIONS(4982),
    [sym_this] = ACTIONS(4982),
    [sym_assert] = ACTIONS(4982),
    [sym_auto] = ACTIONS(4982),
    [sym_cast] = ACTIONS(4982),
    [sym_catch] = ACTIONS(4982),
    [sym_const] = ACTIONS(4982),
    [sym_delegate] = ACTIONS(4982),
    [sym_delete] = ACTIONS(4982),
    [sym_do] = ACTIONS(4982),
    [sym_else] = ACTIONS(4982),
    [sym_finally] = ACTIONS(4982),
    [sym_function] = ACTIONS(4982),
    [sym_immutable] = ACTIONS(4982),
    [sym_import] = ACTIONS(4982),
    [sym_in] = ACTIONS(4982),
    [sym_inout] = ACTIONS(4982),
    [sym_is] = ACTIONS(4982),
    [sym_mixin] = ACTIONS(4982),
    [sym_new] = ACTIONS(4982),
    [sym_out] = ACTIONS(4982),
    [sym_ref] = ACTIONS(4982),
    [sym_shared] = ACTIONS(4982),
    [sym_throw] = ACTIONS(4982),
    [sym_typeid] = ACTIONS(4982),
    [sym_typeof] = ACTIONS(4982),
    [sym_traits] = ACTIONS(4982),
    [sym_vector] = ACTIONS(4982),
    [sym_void] = ACTIONS(4982),
    [anon_sym_BQUOTE] = ACTIONS(4984),
    [anon_sym_r_DQUOTE] = ACTIONS(4984),
    [anon_sym_x_DQUOTE] = ACTIONS(4984),
    [anon_sym_DQUOTE] = ACTIONS(4984),
    [anon_sym_i_BQUOTE] = ACTIONS(4984),
    [anon_sym_i_DQUOTE] = ACTIONS(4984),
    [anon_sym_iq_LBRACE] = ACTIONS(4984),
    [aux_sym_char_literal_token1] = ACTIONS(4984),
    [anon_sym_SQUOTE] = ACTIONS(4982),
    [anon_sym___DATE__] = ACTIONS(4982),
    [anon_sym___FILE__] = ACTIONS(4982),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4982),
    [anon_sym___FUNCTION__] = ACTIONS(4982),
    [anon_sym___LINE__] = ACTIONS(4982),
    [anon_sym___MODULE__] = ACTIONS(4982),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4982),
    [anon_sym___TIME__] = ACTIONS(4982),
    [anon_sym___TIMESTAMP__] = ACTIONS(4982),
    [anon_sym___VENDOR__] = ACTIONS(4982),
    [anon_sym___VERSION__] = ACTIONS(4982),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4984),
    [sym_float_literal] = ACTIONS(4984),
    [sym__string] = ACTIONS(4984),
  },
  [2313] = {
    [sym_identifier] = ACTIONS(4986),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4988),
    [anon_sym_LBRACE] = ACTIONS(4988),
    [anon_sym_DOT] = ACTIONS(4988),
    [anon_sym_AMP] = ACTIONS(4988),
    [anon_sym_DASH] = ACTIONS(4986),
    [anon_sym_DASH_DASH] = ACTIONS(4988),
    [anon_sym_PLUS] = ACTIONS(4986),
    [anon_sym_PLUS_PLUS] = ACTIONS(4988),
    [anon_sym_BANG] = ACTIONS(4988),
    [anon_sym_LPAREN] = ACTIONS(4988),
    [anon_sym_RPAREN] = ACTIONS(4988),
    [anon_sym_LBRACK] = ACTIONS(4988),
    [anon_sym_SEMI] = ACTIONS(4988),
    [anon_sym_DOLLAR] = ACTIONS(4988),
    [anon_sym_STAR] = ACTIONS(4988),
    [anon_sym_TILDE] = ACTIONS(4988),
    [sym_bool] = ACTIONS(4986),
    [sym_byte] = ACTIONS(4986),
    [sym_ubyte] = ACTIONS(4986),
    [sym_char] = ACTIONS(4986),
    [sym_short] = ACTIONS(4986),
    [sym_ushort] = ACTIONS(4986),
    [sym_int] = ACTIONS(4986),
    [sym_uint] = ACTIONS(4986),
    [sym_long] = ACTIONS(4986),
    [sym_ulong] = ACTIONS(4986),
    [sym_cent] = ACTIONS(4986),
    [sym_ucent] = ACTIONS(4986),
    [sym_wchar] = ACTIONS(4986),
    [sym_dchar] = ACTIONS(4986),
    [sym_float] = ACTIONS(4986),
    [sym_double] = ACTIONS(4986),
    [sym_real] = ACTIONS(4986),
    [sym_ifloat] = ACTIONS(4986),
    [sym_idouble] = ACTIONS(4986),
    [sym_ireal] = ACTIONS(4986),
    [sym_cfloat] = ACTIONS(4986),
    [sym_cdouble] = ACTIONS(4986),
    [sym_creal] = ACTIONS(4986),
    [sym_size_t] = ACTIONS(4986),
    [sym_ptrdiff_t] = ACTIONS(4986),
    [sym_string] = ACTIONS(4986),
    [sym_cstring] = ACTIONS(4986),
    [sym_dstring] = ACTIONS(4986),
    [sym_wstring] = ACTIONS(4986),
    [sym_noreturn] = ACTIONS(4986),
    [sym_true] = ACTIONS(4986),
    [sym_false] = ACTIONS(4986),
    [sym_null] = ACTIONS(4986),
    [sym_super] = ACTIONS(4986),
    [sym_this] = ACTIONS(4986),
    [sym_assert] = ACTIONS(4986),
    [sym_auto] = ACTIONS(4986),
    [sym_cast] = ACTIONS(4986),
    [sym_catch] = ACTIONS(4986),
    [sym_const] = ACTIONS(4986),
    [sym_delegate] = ACTIONS(4986),
    [sym_delete] = ACTIONS(4986),
    [sym_do] = ACTIONS(4986),
    [sym_else] = ACTIONS(4986),
    [sym_finally] = ACTIONS(4986),
    [sym_function] = ACTIONS(4986),
    [sym_immutable] = ACTIONS(4986),
    [sym_import] = ACTIONS(4986),
    [sym_in] = ACTIONS(4986),
    [sym_inout] = ACTIONS(4986),
    [sym_is] = ACTIONS(4986),
    [sym_mixin] = ACTIONS(4986),
    [sym_new] = ACTIONS(4986),
    [sym_out] = ACTIONS(4986),
    [sym_ref] = ACTIONS(4986),
    [sym_shared] = ACTIONS(4986),
    [sym_throw] = ACTIONS(4986),
    [sym_typeid] = ACTIONS(4986),
    [sym_typeof] = ACTIONS(4986),
    [sym_traits] = ACTIONS(4986),
    [sym_vector] = ACTIONS(4986),
    [sym_void] = ACTIONS(4986),
    [anon_sym_BQUOTE] = ACTIONS(4988),
    [anon_sym_r_DQUOTE] = ACTIONS(4988),
    [anon_sym_x_DQUOTE] = ACTIONS(4988),
    [anon_sym_DQUOTE] = ACTIONS(4988),
    [anon_sym_i_BQUOTE] = ACTIONS(4988),
    [anon_sym_i_DQUOTE] = ACTIONS(4988),
    [anon_sym_iq_LBRACE] = ACTIONS(4988),
    [aux_sym_char_literal_token1] = ACTIONS(4988),
    [anon_sym_SQUOTE] = ACTIONS(4986),
    [anon_sym___DATE__] = ACTIONS(4986),
    [anon_sym___FILE__] = ACTIONS(4986),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4986),
    [anon_sym___FUNCTION__] = ACTIONS(4986),
    [anon_sym___LINE__] = ACTIONS(4986),
    [anon_sym___MODULE__] = ACTIONS(4986),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4986),
    [anon_sym___TIME__] = ACTIONS(4986),
    [anon_sym___TIMESTAMP__] = ACTIONS(4986),
    [anon_sym___VENDOR__] = ACTIONS(4986),
    [anon_sym___VERSION__] = ACTIONS(4986),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4988),
    [sym_float_literal] = ACTIONS(4988),
    [sym__string] = ACTIONS(4988),
  },
  [2314] = {
    [sym_identifier] = ACTIONS(4990),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4992),
    [anon_sym_LBRACE] = ACTIONS(4992),
    [anon_sym_DOT] = ACTIONS(4992),
    [anon_sym_AMP] = ACTIONS(4992),
    [anon_sym_DASH] = ACTIONS(4990),
    [anon_sym_DASH_DASH] = ACTIONS(4992),
    [anon_sym_PLUS] = ACTIONS(4990),
    [anon_sym_PLUS_PLUS] = ACTIONS(4992),
    [anon_sym_BANG] = ACTIONS(4992),
    [anon_sym_LPAREN] = ACTIONS(4992),
    [anon_sym_RPAREN] = ACTIONS(4992),
    [anon_sym_LBRACK] = ACTIONS(4992),
    [anon_sym_SEMI] = ACTIONS(4992),
    [anon_sym_DOLLAR] = ACTIONS(4992),
    [anon_sym_STAR] = ACTIONS(4992),
    [anon_sym_TILDE] = ACTIONS(4992),
    [sym_bool] = ACTIONS(4990),
    [sym_byte] = ACTIONS(4990),
    [sym_ubyte] = ACTIONS(4990),
    [sym_char] = ACTIONS(4990),
    [sym_short] = ACTIONS(4990),
    [sym_ushort] = ACTIONS(4990),
    [sym_int] = ACTIONS(4990),
    [sym_uint] = ACTIONS(4990),
    [sym_long] = ACTIONS(4990),
    [sym_ulong] = ACTIONS(4990),
    [sym_cent] = ACTIONS(4990),
    [sym_ucent] = ACTIONS(4990),
    [sym_wchar] = ACTIONS(4990),
    [sym_dchar] = ACTIONS(4990),
    [sym_float] = ACTIONS(4990),
    [sym_double] = ACTIONS(4990),
    [sym_real] = ACTIONS(4990),
    [sym_ifloat] = ACTIONS(4990),
    [sym_idouble] = ACTIONS(4990),
    [sym_ireal] = ACTIONS(4990),
    [sym_cfloat] = ACTIONS(4990),
    [sym_cdouble] = ACTIONS(4990),
    [sym_creal] = ACTIONS(4990),
    [sym_size_t] = ACTIONS(4990),
    [sym_ptrdiff_t] = ACTIONS(4990),
    [sym_string] = ACTIONS(4990),
    [sym_cstring] = ACTIONS(4990),
    [sym_dstring] = ACTIONS(4990),
    [sym_wstring] = ACTIONS(4990),
    [sym_noreturn] = ACTIONS(4990),
    [sym_true] = ACTIONS(4990),
    [sym_false] = ACTIONS(4990),
    [sym_null] = ACTIONS(4990),
    [sym_super] = ACTIONS(4990),
    [sym_this] = ACTIONS(4990),
    [sym_assert] = ACTIONS(4990),
    [sym_auto] = ACTIONS(4990),
    [sym_cast] = ACTIONS(4990),
    [sym_catch] = ACTIONS(4990),
    [sym_const] = ACTIONS(4990),
    [sym_delegate] = ACTIONS(4990),
    [sym_delete] = ACTIONS(4990),
    [sym_do] = ACTIONS(4990),
    [sym_else] = ACTIONS(4990),
    [sym_finally] = ACTIONS(4990),
    [sym_function] = ACTIONS(4990),
    [sym_immutable] = ACTIONS(4990),
    [sym_import] = ACTIONS(4990),
    [sym_in] = ACTIONS(4990),
    [sym_inout] = ACTIONS(4990),
    [sym_is] = ACTIONS(4990),
    [sym_mixin] = ACTIONS(4990),
    [sym_new] = ACTIONS(4990),
    [sym_out] = ACTIONS(4990),
    [sym_ref] = ACTIONS(4990),
    [sym_shared] = ACTIONS(4990),
    [sym_throw] = ACTIONS(4990),
    [sym_typeid] = ACTIONS(4990),
    [sym_typeof] = ACTIONS(4990),
    [sym_traits] = ACTIONS(4990),
    [sym_vector] = ACTIONS(4990),
    [sym_void] = ACTIONS(4990),
    [anon_sym_BQUOTE] = ACTIONS(4992),
    [anon_sym_r_DQUOTE] = ACTIONS(4992),
    [anon_sym_x_DQUOTE] = ACTIONS(4992),
    [anon_sym_DQUOTE] = ACTIONS(4992),
    [anon_sym_i_BQUOTE] = ACTIONS(4992),
    [anon_sym_i_DQUOTE] = ACTIONS(4992),
    [anon_sym_iq_LBRACE] = ACTIONS(4992),
    [aux_sym_char_literal_token1] = ACTIONS(4992),
    [anon_sym_SQUOTE] = ACTIONS(4990),
    [anon_sym___DATE__] = ACTIONS(4990),
    [anon_sym___FILE__] = ACTIONS(4990),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4990),
    [anon_sym___FUNCTION__] = ACTIONS(4990),
    [anon_sym___LINE__] = ACTIONS(4990),
    [anon_sym___MODULE__] = ACTIONS(4990),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4990),
    [anon_sym___TIME__] = ACTIONS(4990),
    [anon_sym___TIMESTAMP__] = ACTIONS(4990),
    [anon_sym___VENDOR__] = ACTIONS(4990),
    [anon_sym___VERSION__] = ACTIONS(4990),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4992),
    [sym_float_literal] = ACTIONS(4992),
    [sym__string] = ACTIONS(4992),
  },
  [2315] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4618),
    [anon_sym_LBRACE] = ACTIONS(4618),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_AMP] = ACTIONS(4618),
    [anon_sym_DASH] = ACTIONS(4616),
    [anon_sym_DASH_DASH] = ACTIONS(4618),
    [anon_sym_PLUS] = ACTIONS(4616),
    [anon_sym_PLUS_PLUS] = ACTIONS(4618),
    [anon_sym_BANG] = ACTIONS(4618),
    [anon_sym_LPAREN] = ACTIONS(4618),
    [anon_sym_RPAREN] = ACTIONS(4618),
    [anon_sym_LBRACK] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4618),
    [anon_sym_DOLLAR] = ACTIONS(4618),
    [anon_sym_STAR] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_true] = ACTIONS(4616),
    [sym_false] = ACTIONS(4616),
    [sym_null] = ACTIONS(4616),
    [sym_super] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_assert] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_cast] = ACTIONS(4616),
    [sym_catch] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_delegate] = ACTIONS(4616),
    [sym_delete] = ACTIONS(4616),
    [sym_do] = ACTIONS(4616),
    [sym_else] = ACTIONS(4616),
    [sym_finally] = ACTIONS(4616),
    [sym_function] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(4616),
    [sym_inout] = ACTIONS(4616),
    [sym_is] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_new] = ACTIONS(4616),
    [sym_out] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_throw] = ACTIONS(4616),
    [sym_typeid] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [anon_sym_BQUOTE] = ACTIONS(4618),
    [anon_sym_r_DQUOTE] = ACTIONS(4618),
    [anon_sym_x_DQUOTE] = ACTIONS(4618),
    [anon_sym_DQUOTE] = ACTIONS(4618),
    [anon_sym_i_BQUOTE] = ACTIONS(4618),
    [anon_sym_i_DQUOTE] = ACTIONS(4618),
    [anon_sym_iq_LBRACE] = ACTIONS(4618),
    [aux_sym_char_literal_token1] = ACTIONS(4618),
    [anon_sym_SQUOTE] = ACTIONS(4616),
    [anon_sym___DATE__] = ACTIONS(4616),
    [anon_sym___FILE__] = ACTIONS(4616),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4616),
    [anon_sym___FUNCTION__] = ACTIONS(4616),
    [anon_sym___LINE__] = ACTIONS(4616),
    [anon_sym___MODULE__] = ACTIONS(4616),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4616),
    [anon_sym___TIME__] = ACTIONS(4616),
    [anon_sym___TIMESTAMP__] = ACTIONS(4616),
    [anon_sym___VENDOR__] = ACTIONS(4616),
    [anon_sym___VERSION__] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4618),
    [sym_float_literal] = ACTIONS(4618),
    [sym__string] = ACTIONS(4618),
  },
  [2316] = {
    [sym_identifier] = ACTIONS(4610),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4612),
    [anon_sym_LBRACE] = ACTIONS(4612),
    [anon_sym_DOT] = ACTIONS(4612),
    [anon_sym_AMP] = ACTIONS(4612),
    [anon_sym_DASH] = ACTIONS(4610),
    [anon_sym_DASH_DASH] = ACTIONS(4612),
    [anon_sym_PLUS] = ACTIONS(4610),
    [anon_sym_PLUS_PLUS] = ACTIONS(4612),
    [anon_sym_BANG] = ACTIONS(4612),
    [anon_sym_LPAREN] = ACTIONS(4612),
    [anon_sym_RPAREN] = ACTIONS(4612),
    [anon_sym_LBRACK] = ACTIONS(4612),
    [anon_sym_SEMI] = ACTIONS(4612),
    [anon_sym_DOLLAR] = ACTIONS(4612),
    [anon_sym_STAR] = ACTIONS(4612),
    [anon_sym_TILDE] = ACTIONS(4612),
    [sym_bool] = ACTIONS(4610),
    [sym_byte] = ACTIONS(4610),
    [sym_ubyte] = ACTIONS(4610),
    [sym_char] = ACTIONS(4610),
    [sym_short] = ACTIONS(4610),
    [sym_ushort] = ACTIONS(4610),
    [sym_int] = ACTIONS(4610),
    [sym_uint] = ACTIONS(4610),
    [sym_long] = ACTIONS(4610),
    [sym_ulong] = ACTIONS(4610),
    [sym_cent] = ACTIONS(4610),
    [sym_ucent] = ACTIONS(4610),
    [sym_wchar] = ACTIONS(4610),
    [sym_dchar] = ACTIONS(4610),
    [sym_float] = ACTIONS(4610),
    [sym_double] = ACTIONS(4610),
    [sym_real] = ACTIONS(4610),
    [sym_ifloat] = ACTIONS(4610),
    [sym_idouble] = ACTIONS(4610),
    [sym_ireal] = ACTIONS(4610),
    [sym_cfloat] = ACTIONS(4610),
    [sym_cdouble] = ACTIONS(4610),
    [sym_creal] = ACTIONS(4610),
    [sym_size_t] = ACTIONS(4610),
    [sym_ptrdiff_t] = ACTIONS(4610),
    [sym_string] = ACTIONS(4610),
    [sym_cstring] = ACTIONS(4610),
    [sym_dstring] = ACTIONS(4610),
    [sym_wstring] = ACTIONS(4610),
    [sym_noreturn] = ACTIONS(4610),
    [sym_true] = ACTIONS(4610),
    [sym_false] = ACTIONS(4610),
    [sym_null] = ACTIONS(4610),
    [sym_super] = ACTIONS(4610),
    [sym_this] = ACTIONS(4610),
    [sym_assert] = ACTIONS(4610),
    [sym_auto] = ACTIONS(4610),
    [sym_cast] = ACTIONS(4610),
    [sym_catch] = ACTIONS(4610),
    [sym_const] = ACTIONS(4610),
    [sym_delegate] = ACTIONS(4610),
    [sym_delete] = ACTIONS(4610),
    [sym_do] = ACTIONS(4610),
    [sym_else] = ACTIONS(4610),
    [sym_finally] = ACTIONS(4610),
    [sym_function] = ACTIONS(4610),
    [sym_immutable] = ACTIONS(4610),
    [sym_import] = ACTIONS(4610),
    [sym_in] = ACTIONS(4610),
    [sym_inout] = ACTIONS(4610),
    [sym_is] = ACTIONS(4610),
    [sym_mixin] = ACTIONS(4610),
    [sym_new] = ACTIONS(4610),
    [sym_out] = ACTIONS(4610),
    [sym_ref] = ACTIONS(4610),
    [sym_shared] = ACTIONS(4610),
    [sym_throw] = ACTIONS(4610),
    [sym_typeid] = ACTIONS(4610),
    [sym_typeof] = ACTIONS(4610),
    [sym_traits] = ACTIONS(4610),
    [sym_vector] = ACTIONS(4610),
    [sym_void] = ACTIONS(4610),
    [anon_sym_BQUOTE] = ACTIONS(4612),
    [anon_sym_r_DQUOTE] = ACTIONS(4612),
    [anon_sym_x_DQUOTE] = ACTIONS(4612),
    [anon_sym_DQUOTE] = ACTIONS(4612),
    [anon_sym_i_BQUOTE] = ACTIONS(4612),
    [anon_sym_i_DQUOTE] = ACTIONS(4612),
    [anon_sym_iq_LBRACE] = ACTIONS(4612),
    [aux_sym_char_literal_token1] = ACTIONS(4612),
    [anon_sym_SQUOTE] = ACTIONS(4610),
    [anon_sym___DATE__] = ACTIONS(4610),
    [anon_sym___FILE__] = ACTIONS(4610),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4610),
    [anon_sym___FUNCTION__] = ACTIONS(4610),
    [anon_sym___LINE__] = ACTIONS(4610),
    [anon_sym___MODULE__] = ACTIONS(4610),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4610),
    [anon_sym___TIME__] = ACTIONS(4610),
    [anon_sym___TIMESTAMP__] = ACTIONS(4610),
    [anon_sym___VENDOR__] = ACTIONS(4610),
    [anon_sym___VERSION__] = ACTIONS(4610),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4612),
    [sym_float_literal] = ACTIONS(4612),
    [sym__string] = ACTIONS(4612),
  },
  [2317] = {
    [sym_identifier] = ACTIONS(4496),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4498),
    [anon_sym_LBRACE] = ACTIONS(4498),
    [anon_sym_DOT] = ACTIONS(4498),
    [anon_sym_AMP] = ACTIONS(4498),
    [anon_sym_DASH] = ACTIONS(4496),
    [anon_sym_DASH_DASH] = ACTIONS(4498),
    [anon_sym_PLUS] = ACTIONS(4496),
    [anon_sym_PLUS_PLUS] = ACTIONS(4498),
    [anon_sym_BANG] = ACTIONS(4498),
    [anon_sym_LPAREN] = ACTIONS(4498),
    [anon_sym_RPAREN] = ACTIONS(4498),
    [anon_sym_LBRACK] = ACTIONS(4498),
    [anon_sym_SEMI] = ACTIONS(4498),
    [anon_sym_DOLLAR] = ACTIONS(4498),
    [anon_sym_STAR] = ACTIONS(4498),
    [anon_sym_TILDE] = ACTIONS(4498),
    [sym_bool] = ACTIONS(4496),
    [sym_byte] = ACTIONS(4496),
    [sym_ubyte] = ACTIONS(4496),
    [sym_char] = ACTIONS(4496),
    [sym_short] = ACTIONS(4496),
    [sym_ushort] = ACTIONS(4496),
    [sym_int] = ACTIONS(4496),
    [sym_uint] = ACTIONS(4496),
    [sym_long] = ACTIONS(4496),
    [sym_ulong] = ACTIONS(4496),
    [sym_cent] = ACTIONS(4496),
    [sym_ucent] = ACTIONS(4496),
    [sym_wchar] = ACTIONS(4496),
    [sym_dchar] = ACTIONS(4496),
    [sym_float] = ACTIONS(4496),
    [sym_double] = ACTIONS(4496),
    [sym_real] = ACTIONS(4496),
    [sym_ifloat] = ACTIONS(4496),
    [sym_idouble] = ACTIONS(4496),
    [sym_ireal] = ACTIONS(4496),
    [sym_cfloat] = ACTIONS(4496),
    [sym_cdouble] = ACTIONS(4496),
    [sym_creal] = ACTIONS(4496),
    [sym_size_t] = ACTIONS(4496),
    [sym_ptrdiff_t] = ACTIONS(4496),
    [sym_string] = ACTIONS(4496),
    [sym_cstring] = ACTIONS(4496),
    [sym_dstring] = ACTIONS(4496),
    [sym_wstring] = ACTIONS(4496),
    [sym_noreturn] = ACTIONS(4496),
    [sym_true] = ACTIONS(4496),
    [sym_false] = ACTIONS(4496),
    [sym_null] = ACTIONS(4496),
    [sym_super] = ACTIONS(4496),
    [sym_this] = ACTIONS(4496),
    [sym_assert] = ACTIONS(4496),
    [sym_auto] = ACTIONS(4496),
    [sym_cast] = ACTIONS(4496),
    [sym_catch] = ACTIONS(4496),
    [sym_const] = ACTIONS(4496),
    [sym_delegate] = ACTIONS(4496),
    [sym_delete] = ACTIONS(4496),
    [sym_do] = ACTIONS(4496),
    [sym_else] = ACTIONS(4496),
    [sym_finally] = ACTIONS(4496),
    [sym_function] = ACTIONS(4496),
    [sym_immutable] = ACTIONS(4496),
    [sym_import] = ACTIONS(4496),
    [sym_in] = ACTIONS(4496),
    [sym_inout] = ACTIONS(4496),
    [sym_is] = ACTIONS(4496),
    [sym_mixin] = ACTIONS(4496),
    [sym_new] = ACTIONS(4496),
    [sym_out] = ACTIONS(4496),
    [sym_ref] = ACTIONS(4496),
    [sym_shared] = ACTIONS(4496),
    [sym_throw] = ACTIONS(4496),
    [sym_typeid] = ACTIONS(4496),
    [sym_typeof] = ACTIONS(4496),
    [sym_traits] = ACTIONS(4496),
    [sym_vector] = ACTIONS(4496),
    [sym_void] = ACTIONS(4496),
    [anon_sym_BQUOTE] = ACTIONS(4498),
    [anon_sym_r_DQUOTE] = ACTIONS(4498),
    [anon_sym_x_DQUOTE] = ACTIONS(4498),
    [anon_sym_DQUOTE] = ACTIONS(4498),
    [anon_sym_i_BQUOTE] = ACTIONS(4498),
    [anon_sym_i_DQUOTE] = ACTIONS(4498),
    [anon_sym_iq_LBRACE] = ACTIONS(4498),
    [aux_sym_char_literal_token1] = ACTIONS(4498),
    [anon_sym_SQUOTE] = ACTIONS(4496),
    [anon_sym___DATE__] = ACTIONS(4496),
    [anon_sym___FILE__] = ACTIONS(4496),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4496),
    [anon_sym___FUNCTION__] = ACTIONS(4496),
    [anon_sym___LINE__] = ACTIONS(4496),
    [anon_sym___MODULE__] = ACTIONS(4496),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4496),
    [anon_sym___TIME__] = ACTIONS(4496),
    [anon_sym___TIMESTAMP__] = ACTIONS(4496),
    [anon_sym___VENDOR__] = ACTIONS(4496),
    [anon_sym___VERSION__] = ACTIONS(4496),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4498),
    [sym_float_literal] = ACTIONS(4498),
    [sym__string] = ACTIONS(4498),
  },
  [2318] = {
    [sym_identifier] = ACTIONS(4792),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4795),
    [anon_sym_LBRACE] = ACTIONS(4795),
    [anon_sym_DOT] = ACTIONS(4795),
    [anon_sym_AMP] = ACTIONS(4795),
    [anon_sym_DASH] = ACTIONS(4792),
    [anon_sym_DASH_DASH] = ACTIONS(4795),
    [anon_sym_PLUS] = ACTIONS(4792),
    [anon_sym_PLUS_PLUS] = ACTIONS(4795),
    [anon_sym_BANG] = ACTIONS(4795),
    [anon_sym_LPAREN] = ACTIONS(4795),
    [anon_sym_RPAREN] = ACTIONS(4795),
    [anon_sym_LBRACK] = ACTIONS(4795),
    [anon_sym_SEMI] = ACTIONS(4795),
    [anon_sym_DOLLAR] = ACTIONS(4795),
    [anon_sym_STAR] = ACTIONS(4795),
    [anon_sym_TILDE] = ACTIONS(4795),
    [sym_bool] = ACTIONS(4792),
    [sym_byte] = ACTIONS(4792),
    [sym_ubyte] = ACTIONS(4792),
    [sym_char] = ACTIONS(4792),
    [sym_short] = ACTIONS(4792),
    [sym_ushort] = ACTIONS(4792),
    [sym_int] = ACTIONS(4792),
    [sym_uint] = ACTIONS(4792),
    [sym_long] = ACTIONS(4792),
    [sym_ulong] = ACTIONS(4792),
    [sym_cent] = ACTIONS(4792),
    [sym_ucent] = ACTIONS(4792),
    [sym_wchar] = ACTIONS(4792),
    [sym_dchar] = ACTIONS(4792),
    [sym_float] = ACTIONS(4792),
    [sym_double] = ACTIONS(4792),
    [sym_real] = ACTIONS(4792),
    [sym_ifloat] = ACTIONS(4792),
    [sym_idouble] = ACTIONS(4792),
    [sym_ireal] = ACTIONS(4792),
    [sym_cfloat] = ACTIONS(4792),
    [sym_cdouble] = ACTIONS(4792),
    [sym_creal] = ACTIONS(4792),
    [sym_size_t] = ACTIONS(4792),
    [sym_ptrdiff_t] = ACTIONS(4792),
    [sym_string] = ACTIONS(4792),
    [sym_cstring] = ACTIONS(4792),
    [sym_dstring] = ACTIONS(4792),
    [sym_wstring] = ACTIONS(4792),
    [sym_noreturn] = ACTIONS(4792),
    [sym_true] = ACTIONS(4792),
    [sym_false] = ACTIONS(4792),
    [sym_null] = ACTIONS(4792),
    [sym_super] = ACTIONS(4792),
    [sym_this] = ACTIONS(4792),
    [sym_assert] = ACTIONS(4792),
    [sym_auto] = ACTIONS(4792),
    [sym_cast] = ACTIONS(4792),
    [sym_catch] = ACTIONS(4792),
    [sym_const] = ACTIONS(4792),
    [sym_delegate] = ACTIONS(4792),
    [sym_delete] = ACTIONS(4792),
    [sym_do] = ACTIONS(4792),
    [sym_else] = ACTIONS(4792),
    [sym_finally] = ACTIONS(4792),
    [sym_function] = ACTIONS(4792),
    [sym_immutable] = ACTIONS(4792),
    [sym_import] = ACTIONS(4792),
    [sym_in] = ACTIONS(4792),
    [sym_inout] = ACTIONS(4792),
    [sym_is] = ACTIONS(4792),
    [sym_mixin] = ACTIONS(4792),
    [sym_new] = ACTIONS(4792),
    [sym_out] = ACTIONS(4792),
    [sym_ref] = ACTIONS(4792),
    [sym_shared] = ACTIONS(4792),
    [sym_throw] = ACTIONS(4792),
    [sym_typeid] = ACTIONS(4792),
    [sym_typeof] = ACTIONS(4792),
    [sym_traits] = ACTIONS(4792),
    [sym_vector] = ACTIONS(4792),
    [sym_void] = ACTIONS(4792),
    [anon_sym_BQUOTE] = ACTIONS(4795),
    [anon_sym_r_DQUOTE] = ACTIONS(4795),
    [anon_sym_x_DQUOTE] = ACTIONS(4795),
    [anon_sym_DQUOTE] = ACTIONS(4795),
    [anon_sym_i_BQUOTE] = ACTIONS(4795),
    [anon_sym_i_DQUOTE] = ACTIONS(4795),
    [anon_sym_iq_LBRACE] = ACTIONS(4795),
    [aux_sym_char_literal_token1] = ACTIONS(4795),
    [anon_sym_SQUOTE] = ACTIONS(4792),
    [anon_sym___DATE__] = ACTIONS(4792),
    [anon_sym___FILE__] = ACTIONS(4792),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4792),
    [anon_sym___FUNCTION__] = ACTIONS(4792),
    [anon_sym___LINE__] = ACTIONS(4792),
    [anon_sym___MODULE__] = ACTIONS(4792),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4792),
    [anon_sym___TIME__] = ACTIONS(4792),
    [anon_sym___TIMESTAMP__] = ACTIONS(4792),
    [anon_sym___VENDOR__] = ACTIONS(4792),
    [anon_sym___VERSION__] = ACTIONS(4792),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4795),
    [sym_float_literal] = ACTIONS(4795),
    [sym__string] = ACTIONS(4795),
  },
  [2319] = {
    [sym_identifier] = ACTIONS(5020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5022),
    [anon_sym_LBRACE] = ACTIONS(5022),
    [anon_sym_DOT] = ACTIONS(5022),
    [anon_sym_AMP] = ACTIONS(5022),
    [anon_sym_DASH] = ACTIONS(5020),
    [anon_sym_DASH_DASH] = ACTIONS(5022),
    [anon_sym_PLUS] = ACTIONS(5020),
    [anon_sym_PLUS_PLUS] = ACTIONS(5022),
    [anon_sym_BANG] = ACTIONS(5022),
    [anon_sym_LPAREN] = ACTIONS(5022),
    [anon_sym_RPAREN] = ACTIONS(5022),
    [anon_sym_LBRACK] = ACTIONS(5022),
    [anon_sym_SEMI] = ACTIONS(5022),
    [anon_sym_DOLLAR] = ACTIONS(5022),
    [anon_sym_STAR] = ACTIONS(5022),
    [anon_sym_TILDE] = ACTIONS(5022),
    [sym_bool] = ACTIONS(5020),
    [sym_byte] = ACTIONS(5020),
    [sym_ubyte] = ACTIONS(5020),
    [sym_char] = ACTIONS(5020),
    [sym_short] = ACTIONS(5020),
    [sym_ushort] = ACTIONS(5020),
    [sym_int] = ACTIONS(5020),
    [sym_uint] = ACTIONS(5020),
    [sym_long] = ACTIONS(5020),
    [sym_ulong] = ACTIONS(5020),
    [sym_cent] = ACTIONS(5020),
    [sym_ucent] = ACTIONS(5020),
    [sym_wchar] = ACTIONS(5020),
    [sym_dchar] = ACTIONS(5020),
    [sym_float] = ACTIONS(5020),
    [sym_double] = ACTIONS(5020),
    [sym_real] = ACTIONS(5020),
    [sym_ifloat] = ACTIONS(5020),
    [sym_idouble] = ACTIONS(5020),
    [sym_ireal] = ACTIONS(5020),
    [sym_cfloat] = ACTIONS(5020),
    [sym_cdouble] = ACTIONS(5020),
    [sym_creal] = ACTIONS(5020),
    [sym_size_t] = ACTIONS(5020),
    [sym_ptrdiff_t] = ACTIONS(5020),
    [sym_string] = ACTIONS(5020),
    [sym_cstring] = ACTIONS(5020),
    [sym_dstring] = ACTIONS(5020),
    [sym_wstring] = ACTIONS(5020),
    [sym_noreturn] = ACTIONS(5020),
    [sym_true] = ACTIONS(5020),
    [sym_false] = ACTIONS(5020),
    [sym_null] = ACTIONS(5020),
    [sym_super] = ACTIONS(5020),
    [sym_this] = ACTIONS(5020),
    [sym_assert] = ACTIONS(5020),
    [sym_auto] = ACTIONS(5020),
    [sym_cast] = ACTIONS(5020),
    [sym_catch] = ACTIONS(5020),
    [sym_const] = ACTIONS(5020),
    [sym_delegate] = ACTIONS(5020),
    [sym_delete] = ACTIONS(5020),
    [sym_do] = ACTIONS(5020),
    [sym_else] = ACTIONS(5020),
    [sym_finally] = ACTIONS(5020),
    [sym_function] = ACTIONS(5020),
    [sym_immutable] = ACTIONS(5020),
    [sym_import] = ACTIONS(5020),
    [sym_in] = ACTIONS(5020),
    [sym_inout] = ACTIONS(5020),
    [sym_is] = ACTIONS(5020),
    [sym_mixin] = ACTIONS(5020),
    [sym_new] = ACTIONS(5020),
    [sym_out] = ACTIONS(5020),
    [sym_ref] = ACTIONS(5020),
    [sym_shared] = ACTIONS(5020),
    [sym_throw] = ACTIONS(5020),
    [sym_typeid] = ACTIONS(5020),
    [sym_typeof] = ACTIONS(5020),
    [sym_traits] = ACTIONS(5020),
    [sym_vector] = ACTIONS(5020),
    [sym_void] = ACTIONS(5020),
    [anon_sym_BQUOTE] = ACTIONS(5022),
    [anon_sym_r_DQUOTE] = ACTIONS(5022),
    [anon_sym_x_DQUOTE] = ACTIONS(5022),
    [anon_sym_DQUOTE] = ACTIONS(5022),
    [anon_sym_i_BQUOTE] = ACTIONS(5022),
    [anon_sym_i_DQUOTE] = ACTIONS(5022),
    [anon_sym_iq_LBRACE] = ACTIONS(5022),
    [aux_sym_char_literal_token1] = ACTIONS(5022),
    [anon_sym_SQUOTE] = ACTIONS(5020),
    [anon_sym___DATE__] = ACTIONS(5020),
    [anon_sym___FILE__] = ACTIONS(5020),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5020),
    [anon_sym___FUNCTION__] = ACTIONS(5020),
    [anon_sym___LINE__] = ACTIONS(5020),
    [anon_sym___MODULE__] = ACTIONS(5020),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5020),
    [anon_sym___TIME__] = ACTIONS(5020),
    [anon_sym___TIMESTAMP__] = ACTIONS(5020),
    [anon_sym___VENDOR__] = ACTIONS(5020),
    [anon_sym___VERSION__] = ACTIONS(5020),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5022),
    [sym_float_literal] = ACTIONS(5022),
    [sym__string] = ACTIONS(5022),
  },
  [2320] = {
    [sym_identifier] = ACTIONS(5032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5034),
    [anon_sym_LBRACE] = ACTIONS(5034),
    [anon_sym_DOT] = ACTIONS(5034),
    [anon_sym_AMP] = ACTIONS(5034),
    [anon_sym_DASH] = ACTIONS(5032),
    [anon_sym_DASH_DASH] = ACTIONS(5034),
    [anon_sym_PLUS] = ACTIONS(5032),
    [anon_sym_PLUS_PLUS] = ACTIONS(5034),
    [anon_sym_BANG] = ACTIONS(5034),
    [anon_sym_LPAREN] = ACTIONS(5034),
    [anon_sym_RPAREN] = ACTIONS(5034),
    [anon_sym_LBRACK] = ACTIONS(5034),
    [anon_sym_SEMI] = ACTIONS(5034),
    [anon_sym_DOLLAR] = ACTIONS(5034),
    [anon_sym_STAR] = ACTIONS(5034),
    [anon_sym_TILDE] = ACTIONS(5034),
    [sym_bool] = ACTIONS(5032),
    [sym_byte] = ACTIONS(5032),
    [sym_ubyte] = ACTIONS(5032),
    [sym_char] = ACTIONS(5032),
    [sym_short] = ACTIONS(5032),
    [sym_ushort] = ACTIONS(5032),
    [sym_int] = ACTIONS(5032),
    [sym_uint] = ACTIONS(5032),
    [sym_long] = ACTIONS(5032),
    [sym_ulong] = ACTIONS(5032),
    [sym_cent] = ACTIONS(5032),
    [sym_ucent] = ACTIONS(5032),
    [sym_wchar] = ACTIONS(5032),
    [sym_dchar] = ACTIONS(5032),
    [sym_float] = ACTIONS(5032),
    [sym_double] = ACTIONS(5032),
    [sym_real] = ACTIONS(5032),
    [sym_ifloat] = ACTIONS(5032),
    [sym_idouble] = ACTIONS(5032),
    [sym_ireal] = ACTIONS(5032),
    [sym_cfloat] = ACTIONS(5032),
    [sym_cdouble] = ACTIONS(5032),
    [sym_creal] = ACTIONS(5032),
    [sym_size_t] = ACTIONS(5032),
    [sym_ptrdiff_t] = ACTIONS(5032),
    [sym_string] = ACTIONS(5032),
    [sym_cstring] = ACTIONS(5032),
    [sym_dstring] = ACTIONS(5032),
    [sym_wstring] = ACTIONS(5032),
    [sym_noreturn] = ACTIONS(5032),
    [sym_true] = ACTIONS(5032),
    [sym_false] = ACTIONS(5032),
    [sym_null] = ACTIONS(5032),
    [sym_super] = ACTIONS(5032),
    [sym_this] = ACTIONS(5032),
    [sym_assert] = ACTIONS(5032),
    [sym_auto] = ACTIONS(5032),
    [sym_cast] = ACTIONS(5032),
    [sym_catch] = ACTIONS(5032),
    [sym_const] = ACTIONS(5032),
    [sym_delegate] = ACTIONS(5032),
    [sym_delete] = ACTIONS(5032),
    [sym_do] = ACTIONS(5032),
    [sym_else] = ACTIONS(5032),
    [sym_finally] = ACTIONS(5032),
    [sym_function] = ACTIONS(5032),
    [sym_immutable] = ACTIONS(5032),
    [sym_import] = ACTIONS(5032),
    [sym_in] = ACTIONS(5032),
    [sym_inout] = ACTIONS(5032),
    [sym_is] = ACTIONS(5032),
    [sym_mixin] = ACTIONS(5032),
    [sym_new] = ACTIONS(5032),
    [sym_out] = ACTIONS(5032),
    [sym_ref] = ACTIONS(5032),
    [sym_shared] = ACTIONS(5032),
    [sym_throw] = ACTIONS(5032),
    [sym_typeid] = ACTIONS(5032),
    [sym_typeof] = ACTIONS(5032),
    [sym_traits] = ACTIONS(5032),
    [sym_vector] = ACTIONS(5032),
    [sym_void] = ACTIONS(5032),
    [anon_sym_BQUOTE] = ACTIONS(5034),
    [anon_sym_r_DQUOTE] = ACTIONS(5034),
    [anon_sym_x_DQUOTE] = ACTIONS(5034),
    [anon_sym_DQUOTE] = ACTIONS(5034),
    [anon_sym_i_BQUOTE] = ACTIONS(5034),
    [anon_sym_i_DQUOTE] = ACTIONS(5034),
    [anon_sym_iq_LBRACE] = ACTIONS(5034),
    [aux_sym_char_literal_token1] = ACTIONS(5034),
    [anon_sym_SQUOTE] = ACTIONS(5032),
    [anon_sym___DATE__] = ACTIONS(5032),
    [anon_sym___FILE__] = ACTIONS(5032),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5032),
    [anon_sym___FUNCTION__] = ACTIONS(5032),
    [anon_sym___LINE__] = ACTIONS(5032),
    [anon_sym___MODULE__] = ACTIONS(5032),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5032),
    [anon_sym___TIME__] = ACTIONS(5032),
    [anon_sym___TIMESTAMP__] = ACTIONS(5032),
    [anon_sym___VENDOR__] = ACTIONS(5032),
    [anon_sym___VERSION__] = ACTIONS(5032),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5034),
    [sym_float_literal] = ACTIONS(5034),
    [sym__string] = ACTIONS(5034),
  },
  [2321] = {
    [sym_identifier] = ACTIONS(4944),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4946),
    [anon_sym_LBRACE] = ACTIONS(4946),
    [anon_sym_DOT] = ACTIONS(4946),
    [anon_sym_AMP] = ACTIONS(4946),
    [anon_sym_DASH] = ACTIONS(4944),
    [anon_sym_DASH_DASH] = ACTIONS(4946),
    [anon_sym_PLUS] = ACTIONS(4944),
    [anon_sym_PLUS_PLUS] = ACTIONS(4946),
    [anon_sym_BANG] = ACTIONS(4946),
    [anon_sym_LPAREN] = ACTIONS(4946),
    [anon_sym_RPAREN] = ACTIONS(4946),
    [anon_sym_LBRACK] = ACTIONS(4946),
    [anon_sym_SEMI] = ACTIONS(4946),
    [anon_sym_DOLLAR] = ACTIONS(4946),
    [anon_sym_STAR] = ACTIONS(4946),
    [anon_sym_TILDE] = ACTIONS(4946),
    [sym_bool] = ACTIONS(4944),
    [sym_byte] = ACTIONS(4944),
    [sym_ubyte] = ACTIONS(4944),
    [sym_char] = ACTIONS(4944),
    [sym_short] = ACTIONS(4944),
    [sym_ushort] = ACTIONS(4944),
    [sym_int] = ACTIONS(4944),
    [sym_uint] = ACTIONS(4944),
    [sym_long] = ACTIONS(4944),
    [sym_ulong] = ACTIONS(4944),
    [sym_cent] = ACTIONS(4944),
    [sym_ucent] = ACTIONS(4944),
    [sym_wchar] = ACTIONS(4944),
    [sym_dchar] = ACTIONS(4944),
    [sym_float] = ACTIONS(4944),
    [sym_double] = ACTIONS(4944),
    [sym_real] = ACTIONS(4944),
    [sym_ifloat] = ACTIONS(4944),
    [sym_idouble] = ACTIONS(4944),
    [sym_ireal] = ACTIONS(4944),
    [sym_cfloat] = ACTIONS(4944),
    [sym_cdouble] = ACTIONS(4944),
    [sym_creal] = ACTIONS(4944),
    [sym_size_t] = ACTIONS(4944),
    [sym_ptrdiff_t] = ACTIONS(4944),
    [sym_string] = ACTIONS(4944),
    [sym_cstring] = ACTIONS(4944),
    [sym_dstring] = ACTIONS(4944),
    [sym_wstring] = ACTIONS(4944),
    [sym_noreturn] = ACTIONS(4944),
    [sym_true] = ACTIONS(4944),
    [sym_false] = ACTIONS(4944),
    [sym_null] = ACTIONS(4944),
    [sym_super] = ACTIONS(4944),
    [sym_this] = ACTIONS(4944),
    [sym_assert] = ACTIONS(4944),
    [sym_auto] = ACTIONS(4944),
    [sym_cast] = ACTIONS(4944),
    [sym_catch] = ACTIONS(4944),
    [sym_const] = ACTIONS(4944),
    [sym_delegate] = ACTIONS(4944),
    [sym_delete] = ACTIONS(4944),
    [sym_do] = ACTIONS(4944),
    [sym_else] = ACTIONS(4944),
    [sym_finally] = ACTIONS(4944),
    [sym_function] = ACTIONS(4944),
    [sym_immutable] = ACTIONS(4944),
    [sym_import] = ACTIONS(4944),
    [sym_in] = ACTIONS(4944),
    [sym_inout] = ACTIONS(4944),
    [sym_is] = ACTIONS(4944),
    [sym_mixin] = ACTIONS(4944),
    [sym_new] = ACTIONS(4944),
    [sym_out] = ACTIONS(4944),
    [sym_ref] = ACTIONS(4944),
    [sym_shared] = ACTIONS(4944),
    [sym_throw] = ACTIONS(4944),
    [sym_typeid] = ACTIONS(4944),
    [sym_typeof] = ACTIONS(4944),
    [sym_traits] = ACTIONS(4944),
    [sym_vector] = ACTIONS(4944),
    [sym_void] = ACTIONS(4944),
    [anon_sym_BQUOTE] = ACTIONS(4946),
    [anon_sym_r_DQUOTE] = ACTIONS(4946),
    [anon_sym_x_DQUOTE] = ACTIONS(4946),
    [anon_sym_DQUOTE] = ACTIONS(4946),
    [anon_sym_i_BQUOTE] = ACTIONS(4946),
    [anon_sym_i_DQUOTE] = ACTIONS(4946),
    [anon_sym_iq_LBRACE] = ACTIONS(4946),
    [aux_sym_char_literal_token1] = ACTIONS(4946),
    [anon_sym_SQUOTE] = ACTIONS(4944),
    [anon_sym___DATE__] = ACTIONS(4944),
    [anon_sym___FILE__] = ACTIONS(4944),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4944),
    [anon_sym___FUNCTION__] = ACTIONS(4944),
    [anon_sym___LINE__] = ACTIONS(4944),
    [anon_sym___MODULE__] = ACTIONS(4944),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4944),
    [anon_sym___TIME__] = ACTIONS(4944),
    [anon_sym___TIMESTAMP__] = ACTIONS(4944),
    [anon_sym___VENDOR__] = ACTIONS(4944),
    [anon_sym___VERSION__] = ACTIONS(4944),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4946),
    [sym_float_literal] = ACTIONS(4946),
    [sym__string] = ACTIONS(4946),
  },
  [2322] = {
    [sym_identifier] = ACTIONS(4952),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4954),
    [anon_sym_LBRACE] = ACTIONS(4954),
    [anon_sym_DOT] = ACTIONS(4954),
    [anon_sym_AMP] = ACTIONS(4954),
    [anon_sym_DASH] = ACTIONS(4952),
    [anon_sym_DASH_DASH] = ACTIONS(4954),
    [anon_sym_PLUS] = ACTIONS(4952),
    [anon_sym_PLUS_PLUS] = ACTIONS(4954),
    [anon_sym_BANG] = ACTIONS(4954),
    [anon_sym_LPAREN] = ACTIONS(4954),
    [anon_sym_RPAREN] = ACTIONS(4954),
    [anon_sym_LBRACK] = ACTIONS(4954),
    [anon_sym_SEMI] = ACTIONS(4954),
    [anon_sym_DOLLAR] = ACTIONS(4954),
    [anon_sym_STAR] = ACTIONS(4954),
    [anon_sym_TILDE] = ACTIONS(4954),
    [sym_bool] = ACTIONS(4952),
    [sym_byte] = ACTIONS(4952),
    [sym_ubyte] = ACTIONS(4952),
    [sym_char] = ACTIONS(4952),
    [sym_short] = ACTIONS(4952),
    [sym_ushort] = ACTIONS(4952),
    [sym_int] = ACTIONS(4952),
    [sym_uint] = ACTIONS(4952),
    [sym_long] = ACTIONS(4952),
    [sym_ulong] = ACTIONS(4952),
    [sym_cent] = ACTIONS(4952),
    [sym_ucent] = ACTIONS(4952),
    [sym_wchar] = ACTIONS(4952),
    [sym_dchar] = ACTIONS(4952),
    [sym_float] = ACTIONS(4952),
    [sym_double] = ACTIONS(4952),
    [sym_real] = ACTIONS(4952),
    [sym_ifloat] = ACTIONS(4952),
    [sym_idouble] = ACTIONS(4952),
    [sym_ireal] = ACTIONS(4952),
    [sym_cfloat] = ACTIONS(4952),
    [sym_cdouble] = ACTIONS(4952),
    [sym_creal] = ACTIONS(4952),
    [sym_size_t] = ACTIONS(4952),
    [sym_ptrdiff_t] = ACTIONS(4952),
    [sym_string] = ACTIONS(4952),
    [sym_cstring] = ACTIONS(4952),
    [sym_dstring] = ACTIONS(4952),
    [sym_wstring] = ACTIONS(4952),
    [sym_noreturn] = ACTIONS(4952),
    [sym_true] = ACTIONS(4952),
    [sym_false] = ACTIONS(4952),
    [sym_null] = ACTIONS(4952),
    [sym_super] = ACTIONS(4952),
    [sym_this] = ACTIONS(4952),
    [sym_assert] = ACTIONS(4952),
    [sym_auto] = ACTIONS(4952),
    [sym_cast] = ACTIONS(4952),
    [sym_catch] = ACTIONS(4952),
    [sym_const] = ACTIONS(4952),
    [sym_delegate] = ACTIONS(4952),
    [sym_delete] = ACTIONS(4952),
    [sym_do] = ACTIONS(4952),
    [sym_else] = ACTIONS(4952),
    [sym_finally] = ACTIONS(4952),
    [sym_function] = ACTIONS(4952),
    [sym_immutable] = ACTIONS(4952),
    [sym_import] = ACTIONS(4952),
    [sym_in] = ACTIONS(4952),
    [sym_inout] = ACTIONS(4952),
    [sym_is] = ACTIONS(4952),
    [sym_mixin] = ACTIONS(4952),
    [sym_new] = ACTIONS(4952),
    [sym_out] = ACTIONS(4952),
    [sym_ref] = ACTIONS(4952),
    [sym_shared] = ACTIONS(4952),
    [sym_throw] = ACTIONS(4952),
    [sym_typeid] = ACTIONS(4952),
    [sym_typeof] = ACTIONS(4952),
    [sym_traits] = ACTIONS(4952),
    [sym_vector] = ACTIONS(4952),
    [sym_void] = ACTIONS(4952),
    [anon_sym_BQUOTE] = ACTIONS(4954),
    [anon_sym_r_DQUOTE] = ACTIONS(4954),
    [anon_sym_x_DQUOTE] = ACTIONS(4954),
    [anon_sym_DQUOTE] = ACTIONS(4954),
    [anon_sym_i_BQUOTE] = ACTIONS(4954),
    [anon_sym_i_DQUOTE] = ACTIONS(4954),
    [anon_sym_iq_LBRACE] = ACTIONS(4954),
    [aux_sym_char_literal_token1] = ACTIONS(4954),
    [anon_sym_SQUOTE] = ACTIONS(4952),
    [anon_sym___DATE__] = ACTIONS(4952),
    [anon_sym___FILE__] = ACTIONS(4952),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4952),
    [anon_sym___FUNCTION__] = ACTIONS(4952),
    [anon_sym___LINE__] = ACTIONS(4952),
    [anon_sym___MODULE__] = ACTIONS(4952),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4952),
    [anon_sym___TIME__] = ACTIONS(4952),
    [anon_sym___TIMESTAMP__] = ACTIONS(4952),
    [anon_sym___VENDOR__] = ACTIONS(4952),
    [anon_sym___VERSION__] = ACTIONS(4952),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4954),
    [sym_float_literal] = ACTIONS(4954),
    [sym__string] = ACTIONS(4954),
  },
  [2323] = {
    [sym_identifier] = ACTIONS(5048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5050),
    [anon_sym_LBRACE] = ACTIONS(5050),
    [anon_sym_DOT] = ACTIONS(5050),
    [anon_sym_AMP] = ACTIONS(5050),
    [anon_sym_DASH] = ACTIONS(5048),
    [anon_sym_DASH_DASH] = ACTIONS(5050),
    [anon_sym_PLUS] = ACTIONS(5048),
    [anon_sym_PLUS_PLUS] = ACTIONS(5050),
    [anon_sym_BANG] = ACTIONS(5050),
    [anon_sym_LPAREN] = ACTIONS(5050),
    [anon_sym_RPAREN] = ACTIONS(5050),
    [anon_sym_LBRACK] = ACTIONS(5050),
    [anon_sym_SEMI] = ACTIONS(5050),
    [anon_sym_DOLLAR] = ACTIONS(5050),
    [anon_sym_STAR] = ACTIONS(5050),
    [anon_sym_TILDE] = ACTIONS(5050),
    [sym_bool] = ACTIONS(5048),
    [sym_byte] = ACTIONS(5048),
    [sym_ubyte] = ACTIONS(5048),
    [sym_char] = ACTIONS(5048),
    [sym_short] = ACTIONS(5048),
    [sym_ushort] = ACTIONS(5048),
    [sym_int] = ACTIONS(5048),
    [sym_uint] = ACTIONS(5048),
    [sym_long] = ACTIONS(5048),
    [sym_ulong] = ACTIONS(5048),
    [sym_cent] = ACTIONS(5048),
    [sym_ucent] = ACTIONS(5048),
    [sym_wchar] = ACTIONS(5048),
    [sym_dchar] = ACTIONS(5048),
    [sym_float] = ACTIONS(5048),
    [sym_double] = ACTIONS(5048),
    [sym_real] = ACTIONS(5048),
    [sym_ifloat] = ACTIONS(5048),
    [sym_idouble] = ACTIONS(5048),
    [sym_ireal] = ACTIONS(5048),
    [sym_cfloat] = ACTIONS(5048),
    [sym_cdouble] = ACTIONS(5048),
    [sym_creal] = ACTIONS(5048),
    [sym_size_t] = ACTIONS(5048),
    [sym_ptrdiff_t] = ACTIONS(5048),
    [sym_string] = ACTIONS(5048),
    [sym_cstring] = ACTIONS(5048),
    [sym_dstring] = ACTIONS(5048),
    [sym_wstring] = ACTIONS(5048),
    [sym_noreturn] = ACTIONS(5048),
    [sym_true] = ACTIONS(5048),
    [sym_false] = ACTIONS(5048),
    [sym_null] = ACTIONS(5048),
    [sym_super] = ACTIONS(5048),
    [sym_this] = ACTIONS(5048),
    [sym_assert] = ACTIONS(5048),
    [sym_auto] = ACTIONS(5048),
    [sym_cast] = ACTIONS(5048),
    [sym_catch] = ACTIONS(5048),
    [sym_const] = ACTIONS(5048),
    [sym_delegate] = ACTIONS(5048),
    [sym_delete] = ACTIONS(5048),
    [sym_do] = ACTIONS(5048),
    [sym_else] = ACTIONS(5048),
    [sym_finally] = ACTIONS(5048),
    [sym_function] = ACTIONS(5048),
    [sym_immutable] = ACTIONS(5048),
    [sym_import] = ACTIONS(5048),
    [sym_in] = ACTIONS(5048),
    [sym_inout] = ACTIONS(5048),
    [sym_is] = ACTIONS(5048),
    [sym_mixin] = ACTIONS(5048),
    [sym_new] = ACTIONS(5048),
    [sym_out] = ACTIONS(5048),
    [sym_ref] = ACTIONS(5048),
    [sym_shared] = ACTIONS(5048),
    [sym_throw] = ACTIONS(5048),
    [sym_typeid] = ACTIONS(5048),
    [sym_typeof] = ACTIONS(5048),
    [sym_traits] = ACTIONS(5048),
    [sym_vector] = ACTIONS(5048),
    [sym_void] = ACTIONS(5048),
    [anon_sym_BQUOTE] = ACTIONS(5050),
    [anon_sym_r_DQUOTE] = ACTIONS(5050),
    [anon_sym_x_DQUOTE] = ACTIONS(5050),
    [anon_sym_DQUOTE] = ACTIONS(5050),
    [anon_sym_i_BQUOTE] = ACTIONS(5050),
    [anon_sym_i_DQUOTE] = ACTIONS(5050),
    [anon_sym_iq_LBRACE] = ACTIONS(5050),
    [aux_sym_char_literal_token1] = ACTIONS(5050),
    [anon_sym_SQUOTE] = ACTIONS(5048),
    [anon_sym___DATE__] = ACTIONS(5048),
    [anon_sym___FILE__] = ACTIONS(5048),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5048),
    [anon_sym___FUNCTION__] = ACTIONS(5048),
    [anon_sym___LINE__] = ACTIONS(5048),
    [anon_sym___MODULE__] = ACTIONS(5048),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5048),
    [anon_sym___TIME__] = ACTIONS(5048),
    [anon_sym___TIMESTAMP__] = ACTIONS(5048),
    [anon_sym___VENDOR__] = ACTIONS(5048),
    [anon_sym___VERSION__] = ACTIONS(5048),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5050),
    [sym_float_literal] = ACTIONS(5050),
    [sym__string] = ACTIONS(5050),
  },
  [2324] = {
    [sym_identifier] = ACTIONS(5068),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5070),
    [anon_sym_LBRACE] = ACTIONS(5070),
    [anon_sym_DOT] = ACTIONS(5070),
    [anon_sym_AMP] = ACTIONS(5070),
    [anon_sym_DASH] = ACTIONS(5068),
    [anon_sym_DASH_DASH] = ACTIONS(5070),
    [anon_sym_PLUS] = ACTIONS(5068),
    [anon_sym_PLUS_PLUS] = ACTIONS(5070),
    [anon_sym_BANG] = ACTIONS(5070),
    [anon_sym_LPAREN] = ACTIONS(5070),
    [anon_sym_RPAREN] = ACTIONS(5070),
    [anon_sym_LBRACK] = ACTIONS(5070),
    [anon_sym_SEMI] = ACTIONS(5070),
    [anon_sym_DOLLAR] = ACTIONS(5070),
    [anon_sym_STAR] = ACTIONS(5070),
    [anon_sym_TILDE] = ACTIONS(5070),
    [sym_bool] = ACTIONS(5068),
    [sym_byte] = ACTIONS(5068),
    [sym_ubyte] = ACTIONS(5068),
    [sym_char] = ACTIONS(5068),
    [sym_short] = ACTIONS(5068),
    [sym_ushort] = ACTIONS(5068),
    [sym_int] = ACTIONS(5068),
    [sym_uint] = ACTIONS(5068),
    [sym_long] = ACTIONS(5068),
    [sym_ulong] = ACTIONS(5068),
    [sym_cent] = ACTIONS(5068),
    [sym_ucent] = ACTIONS(5068),
    [sym_wchar] = ACTIONS(5068),
    [sym_dchar] = ACTIONS(5068),
    [sym_float] = ACTIONS(5068),
    [sym_double] = ACTIONS(5068),
    [sym_real] = ACTIONS(5068),
    [sym_ifloat] = ACTIONS(5068),
    [sym_idouble] = ACTIONS(5068),
    [sym_ireal] = ACTIONS(5068),
    [sym_cfloat] = ACTIONS(5068),
    [sym_cdouble] = ACTIONS(5068),
    [sym_creal] = ACTIONS(5068),
    [sym_size_t] = ACTIONS(5068),
    [sym_ptrdiff_t] = ACTIONS(5068),
    [sym_string] = ACTIONS(5068),
    [sym_cstring] = ACTIONS(5068),
    [sym_dstring] = ACTIONS(5068),
    [sym_wstring] = ACTIONS(5068),
    [sym_noreturn] = ACTIONS(5068),
    [sym_true] = ACTIONS(5068),
    [sym_false] = ACTIONS(5068),
    [sym_null] = ACTIONS(5068),
    [sym_super] = ACTIONS(5068),
    [sym_this] = ACTIONS(5068),
    [sym_assert] = ACTIONS(5068),
    [sym_auto] = ACTIONS(5068),
    [sym_cast] = ACTIONS(5068),
    [sym_catch] = ACTIONS(5068),
    [sym_const] = ACTIONS(5068),
    [sym_delegate] = ACTIONS(5068),
    [sym_delete] = ACTIONS(5068),
    [sym_do] = ACTIONS(5068),
    [sym_else] = ACTIONS(5068),
    [sym_finally] = ACTIONS(5068),
    [sym_function] = ACTIONS(5068),
    [sym_immutable] = ACTIONS(5068),
    [sym_import] = ACTIONS(5068),
    [sym_in] = ACTIONS(5068),
    [sym_inout] = ACTIONS(5068),
    [sym_is] = ACTIONS(5068),
    [sym_mixin] = ACTIONS(5068),
    [sym_new] = ACTIONS(5068),
    [sym_out] = ACTIONS(5068),
    [sym_ref] = ACTIONS(5068),
    [sym_shared] = ACTIONS(5068),
    [sym_throw] = ACTIONS(5068),
    [sym_typeid] = ACTIONS(5068),
    [sym_typeof] = ACTIONS(5068),
    [sym_traits] = ACTIONS(5068),
    [sym_vector] = ACTIONS(5068),
    [sym_void] = ACTIONS(5068),
    [anon_sym_BQUOTE] = ACTIONS(5070),
    [anon_sym_r_DQUOTE] = ACTIONS(5070),
    [anon_sym_x_DQUOTE] = ACTIONS(5070),
    [anon_sym_DQUOTE] = ACTIONS(5070),
    [anon_sym_i_BQUOTE] = ACTIONS(5070),
    [anon_sym_i_DQUOTE] = ACTIONS(5070),
    [anon_sym_iq_LBRACE] = ACTIONS(5070),
    [aux_sym_char_literal_token1] = ACTIONS(5070),
    [anon_sym_SQUOTE] = ACTIONS(5068),
    [anon_sym___DATE__] = ACTIONS(5068),
    [anon_sym___FILE__] = ACTIONS(5068),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5068),
    [anon_sym___FUNCTION__] = ACTIONS(5068),
    [anon_sym___LINE__] = ACTIONS(5068),
    [anon_sym___MODULE__] = ACTIONS(5068),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5068),
    [anon_sym___TIME__] = ACTIONS(5068),
    [anon_sym___TIMESTAMP__] = ACTIONS(5068),
    [anon_sym___VENDOR__] = ACTIONS(5068),
    [anon_sym___VERSION__] = ACTIONS(5068),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5070),
    [sym_float_literal] = ACTIONS(5070),
    [sym__string] = ACTIONS(5070),
  },
  [2325] = {
    [sym_identifier] = ACTIONS(5080),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5082),
    [anon_sym_LBRACE] = ACTIONS(5082),
    [anon_sym_DOT] = ACTIONS(5082),
    [anon_sym_AMP] = ACTIONS(5082),
    [anon_sym_DASH] = ACTIONS(5080),
    [anon_sym_DASH_DASH] = ACTIONS(5082),
    [anon_sym_PLUS] = ACTIONS(5080),
    [anon_sym_PLUS_PLUS] = ACTIONS(5082),
    [anon_sym_BANG] = ACTIONS(5082),
    [anon_sym_LPAREN] = ACTIONS(5082),
    [anon_sym_RPAREN] = ACTIONS(5082),
    [anon_sym_LBRACK] = ACTIONS(5082),
    [anon_sym_SEMI] = ACTIONS(5082),
    [anon_sym_DOLLAR] = ACTIONS(5082),
    [anon_sym_STAR] = ACTIONS(5082),
    [anon_sym_TILDE] = ACTIONS(5082),
    [sym_bool] = ACTIONS(5080),
    [sym_byte] = ACTIONS(5080),
    [sym_ubyte] = ACTIONS(5080),
    [sym_char] = ACTIONS(5080),
    [sym_short] = ACTIONS(5080),
    [sym_ushort] = ACTIONS(5080),
    [sym_int] = ACTIONS(5080),
    [sym_uint] = ACTIONS(5080),
    [sym_long] = ACTIONS(5080),
    [sym_ulong] = ACTIONS(5080),
    [sym_cent] = ACTIONS(5080),
    [sym_ucent] = ACTIONS(5080),
    [sym_wchar] = ACTIONS(5080),
    [sym_dchar] = ACTIONS(5080),
    [sym_float] = ACTIONS(5080),
    [sym_double] = ACTIONS(5080),
    [sym_real] = ACTIONS(5080),
    [sym_ifloat] = ACTIONS(5080),
    [sym_idouble] = ACTIONS(5080),
    [sym_ireal] = ACTIONS(5080),
    [sym_cfloat] = ACTIONS(5080),
    [sym_cdouble] = ACTIONS(5080),
    [sym_creal] = ACTIONS(5080),
    [sym_size_t] = ACTIONS(5080),
    [sym_ptrdiff_t] = ACTIONS(5080),
    [sym_string] = ACTIONS(5080),
    [sym_cstring] = ACTIONS(5080),
    [sym_dstring] = ACTIONS(5080),
    [sym_wstring] = ACTIONS(5080),
    [sym_noreturn] = ACTIONS(5080),
    [sym_true] = ACTIONS(5080),
    [sym_false] = ACTIONS(5080),
    [sym_null] = ACTIONS(5080),
    [sym_super] = ACTIONS(5080),
    [sym_this] = ACTIONS(5080),
    [sym_assert] = ACTIONS(5080),
    [sym_auto] = ACTIONS(5080),
    [sym_cast] = ACTIONS(5080),
    [sym_catch] = ACTIONS(5080),
    [sym_const] = ACTIONS(5080),
    [sym_delegate] = ACTIONS(5080),
    [sym_delete] = ACTIONS(5080),
    [sym_do] = ACTIONS(5080),
    [sym_else] = ACTIONS(5080),
    [sym_finally] = ACTIONS(5080),
    [sym_function] = ACTIONS(5080),
    [sym_immutable] = ACTIONS(5080),
    [sym_import] = ACTIONS(5080),
    [sym_in] = ACTIONS(5080),
    [sym_inout] = ACTIONS(5080),
    [sym_is] = ACTIONS(5080),
    [sym_mixin] = ACTIONS(5080),
    [sym_new] = ACTIONS(5080),
    [sym_out] = ACTIONS(5080),
    [sym_ref] = ACTIONS(5080),
    [sym_shared] = ACTIONS(5080),
    [sym_throw] = ACTIONS(5080),
    [sym_typeid] = ACTIONS(5080),
    [sym_typeof] = ACTIONS(5080),
    [sym_traits] = ACTIONS(5080),
    [sym_vector] = ACTIONS(5080),
    [sym_void] = ACTIONS(5080),
    [anon_sym_BQUOTE] = ACTIONS(5082),
    [anon_sym_r_DQUOTE] = ACTIONS(5082),
    [anon_sym_x_DQUOTE] = ACTIONS(5082),
    [anon_sym_DQUOTE] = ACTIONS(5082),
    [anon_sym_i_BQUOTE] = ACTIONS(5082),
    [anon_sym_i_DQUOTE] = ACTIONS(5082),
    [anon_sym_iq_LBRACE] = ACTIONS(5082),
    [aux_sym_char_literal_token1] = ACTIONS(5082),
    [anon_sym_SQUOTE] = ACTIONS(5080),
    [anon_sym___DATE__] = ACTIONS(5080),
    [anon_sym___FILE__] = ACTIONS(5080),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5080),
    [anon_sym___FUNCTION__] = ACTIONS(5080),
    [anon_sym___LINE__] = ACTIONS(5080),
    [anon_sym___MODULE__] = ACTIONS(5080),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5080),
    [anon_sym___TIME__] = ACTIONS(5080),
    [anon_sym___TIMESTAMP__] = ACTIONS(5080),
    [anon_sym___VENDOR__] = ACTIONS(5080),
    [anon_sym___VERSION__] = ACTIONS(5080),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5082),
    [sym_float_literal] = ACTIONS(5082),
    [sym__string] = ACTIONS(5082),
  },
  [2326] = {
    [sym_identifier] = ACTIONS(4355),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4357),
    [anon_sym_LBRACE] = ACTIONS(4357),
    [anon_sym_DOT] = ACTIONS(4357),
    [anon_sym_AMP] = ACTIONS(4357),
    [anon_sym_DASH] = ACTIONS(4355),
    [anon_sym_DASH_DASH] = ACTIONS(4357),
    [anon_sym_PLUS] = ACTIONS(4355),
    [anon_sym_PLUS_PLUS] = ACTIONS(4357),
    [anon_sym_BANG] = ACTIONS(4357),
    [anon_sym_LPAREN] = ACTIONS(4357),
    [anon_sym_RPAREN] = ACTIONS(4357),
    [anon_sym_LBRACK] = ACTIONS(4357),
    [anon_sym_SEMI] = ACTIONS(4357),
    [anon_sym_DOLLAR] = ACTIONS(4357),
    [anon_sym_STAR] = ACTIONS(4357),
    [anon_sym_TILDE] = ACTIONS(4357),
    [sym_bool] = ACTIONS(4355),
    [sym_byte] = ACTIONS(4355),
    [sym_ubyte] = ACTIONS(4355),
    [sym_char] = ACTIONS(4355),
    [sym_short] = ACTIONS(4355),
    [sym_ushort] = ACTIONS(4355),
    [sym_int] = ACTIONS(4355),
    [sym_uint] = ACTIONS(4355),
    [sym_long] = ACTIONS(4355),
    [sym_ulong] = ACTIONS(4355),
    [sym_cent] = ACTIONS(4355),
    [sym_ucent] = ACTIONS(4355),
    [sym_wchar] = ACTIONS(4355),
    [sym_dchar] = ACTIONS(4355),
    [sym_float] = ACTIONS(4355),
    [sym_double] = ACTIONS(4355),
    [sym_real] = ACTIONS(4355),
    [sym_ifloat] = ACTIONS(4355),
    [sym_idouble] = ACTIONS(4355),
    [sym_ireal] = ACTIONS(4355),
    [sym_cfloat] = ACTIONS(4355),
    [sym_cdouble] = ACTIONS(4355),
    [sym_creal] = ACTIONS(4355),
    [sym_size_t] = ACTIONS(4355),
    [sym_ptrdiff_t] = ACTIONS(4355),
    [sym_string] = ACTIONS(4355),
    [sym_cstring] = ACTIONS(4355),
    [sym_dstring] = ACTIONS(4355),
    [sym_wstring] = ACTIONS(4355),
    [sym_noreturn] = ACTIONS(4355),
    [sym_true] = ACTIONS(4355),
    [sym_false] = ACTIONS(4355),
    [sym_null] = ACTIONS(4355),
    [sym_super] = ACTIONS(4355),
    [sym_this] = ACTIONS(4355),
    [sym_assert] = ACTIONS(4355),
    [sym_auto] = ACTIONS(4355),
    [sym_cast] = ACTIONS(4355),
    [sym_catch] = ACTIONS(4355),
    [sym_const] = ACTIONS(4355),
    [sym_delegate] = ACTIONS(4355),
    [sym_delete] = ACTIONS(4355),
    [sym_do] = ACTIONS(4355),
    [sym_else] = ACTIONS(4355),
    [sym_finally] = ACTIONS(4355),
    [sym_function] = ACTIONS(4355),
    [sym_immutable] = ACTIONS(4355),
    [sym_import] = ACTIONS(4355),
    [sym_in] = ACTIONS(4355),
    [sym_inout] = ACTIONS(4355),
    [sym_is] = ACTIONS(4355),
    [sym_mixin] = ACTIONS(4355),
    [sym_new] = ACTIONS(4355),
    [sym_out] = ACTIONS(4355),
    [sym_ref] = ACTIONS(4355),
    [sym_shared] = ACTIONS(4355),
    [sym_throw] = ACTIONS(4355),
    [sym_typeid] = ACTIONS(4355),
    [sym_typeof] = ACTIONS(4355),
    [sym_traits] = ACTIONS(4355),
    [sym_vector] = ACTIONS(4355),
    [sym_void] = ACTIONS(4355),
    [anon_sym_BQUOTE] = ACTIONS(4357),
    [anon_sym_r_DQUOTE] = ACTIONS(4357),
    [anon_sym_x_DQUOTE] = ACTIONS(4357),
    [anon_sym_DQUOTE] = ACTIONS(4357),
    [anon_sym_i_BQUOTE] = ACTIONS(4357),
    [anon_sym_i_DQUOTE] = ACTIONS(4357),
    [anon_sym_iq_LBRACE] = ACTIONS(4357),
    [aux_sym_char_literal_token1] = ACTIONS(4357),
    [anon_sym_SQUOTE] = ACTIONS(4355),
    [anon_sym___DATE__] = ACTIONS(4355),
    [anon_sym___FILE__] = ACTIONS(4355),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4355),
    [anon_sym___FUNCTION__] = ACTIONS(4355),
    [anon_sym___LINE__] = ACTIONS(4355),
    [anon_sym___MODULE__] = ACTIONS(4355),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4355),
    [anon_sym___TIME__] = ACTIONS(4355),
    [anon_sym___TIMESTAMP__] = ACTIONS(4355),
    [anon_sym___VENDOR__] = ACTIONS(4355),
    [anon_sym___VERSION__] = ACTIONS(4355),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4357),
    [sym_float_literal] = ACTIONS(4357),
    [sym__string] = ACTIONS(4357),
  },
  [2327] = {
    [sym_identifier] = ACTIONS(4335),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4337),
    [anon_sym_LBRACE] = ACTIONS(4337),
    [anon_sym_DOT] = ACTIONS(4337),
    [anon_sym_AMP] = ACTIONS(4337),
    [anon_sym_DASH] = ACTIONS(4335),
    [anon_sym_DASH_DASH] = ACTIONS(4337),
    [anon_sym_PLUS] = ACTIONS(4335),
    [anon_sym_PLUS_PLUS] = ACTIONS(4337),
    [anon_sym_BANG] = ACTIONS(4337),
    [anon_sym_LPAREN] = ACTIONS(4337),
    [anon_sym_RPAREN] = ACTIONS(4337),
    [anon_sym_LBRACK] = ACTIONS(4337),
    [anon_sym_SEMI] = ACTIONS(4337),
    [anon_sym_DOLLAR] = ACTIONS(4337),
    [anon_sym_STAR] = ACTIONS(4337),
    [anon_sym_TILDE] = ACTIONS(4337),
    [sym_bool] = ACTIONS(4335),
    [sym_byte] = ACTIONS(4335),
    [sym_ubyte] = ACTIONS(4335),
    [sym_char] = ACTIONS(4335),
    [sym_short] = ACTIONS(4335),
    [sym_ushort] = ACTIONS(4335),
    [sym_int] = ACTIONS(4335),
    [sym_uint] = ACTIONS(4335),
    [sym_long] = ACTIONS(4335),
    [sym_ulong] = ACTIONS(4335),
    [sym_cent] = ACTIONS(4335),
    [sym_ucent] = ACTIONS(4335),
    [sym_wchar] = ACTIONS(4335),
    [sym_dchar] = ACTIONS(4335),
    [sym_float] = ACTIONS(4335),
    [sym_double] = ACTIONS(4335),
    [sym_real] = ACTIONS(4335),
    [sym_ifloat] = ACTIONS(4335),
    [sym_idouble] = ACTIONS(4335),
    [sym_ireal] = ACTIONS(4335),
    [sym_cfloat] = ACTIONS(4335),
    [sym_cdouble] = ACTIONS(4335),
    [sym_creal] = ACTIONS(4335),
    [sym_size_t] = ACTIONS(4335),
    [sym_ptrdiff_t] = ACTIONS(4335),
    [sym_string] = ACTIONS(4335),
    [sym_cstring] = ACTIONS(4335),
    [sym_dstring] = ACTIONS(4335),
    [sym_wstring] = ACTIONS(4335),
    [sym_noreturn] = ACTIONS(4335),
    [sym_true] = ACTIONS(4335),
    [sym_false] = ACTIONS(4335),
    [sym_null] = ACTIONS(4335),
    [sym_super] = ACTIONS(4335),
    [sym_this] = ACTIONS(4335),
    [sym_assert] = ACTIONS(4335),
    [sym_auto] = ACTIONS(4335),
    [sym_cast] = ACTIONS(4335),
    [sym_catch] = ACTIONS(4335),
    [sym_const] = ACTIONS(4335),
    [sym_delegate] = ACTIONS(4335),
    [sym_delete] = ACTIONS(4335),
    [sym_do] = ACTIONS(4335),
    [sym_else] = ACTIONS(4335),
    [sym_finally] = ACTIONS(4335),
    [sym_function] = ACTIONS(4335),
    [sym_immutable] = ACTIONS(4335),
    [sym_import] = ACTIONS(4335),
    [sym_in] = ACTIONS(4335),
    [sym_inout] = ACTIONS(4335),
    [sym_is] = ACTIONS(4335),
    [sym_mixin] = ACTIONS(4335),
    [sym_new] = ACTIONS(4335),
    [sym_out] = ACTIONS(4335),
    [sym_ref] = ACTIONS(4335),
    [sym_shared] = ACTIONS(4335),
    [sym_throw] = ACTIONS(4335),
    [sym_typeid] = ACTIONS(4335),
    [sym_typeof] = ACTIONS(4335),
    [sym_traits] = ACTIONS(4335),
    [sym_vector] = ACTIONS(4335),
    [sym_void] = ACTIONS(4335),
    [anon_sym_BQUOTE] = ACTIONS(4337),
    [anon_sym_r_DQUOTE] = ACTIONS(4337),
    [anon_sym_x_DQUOTE] = ACTIONS(4337),
    [anon_sym_DQUOTE] = ACTIONS(4337),
    [anon_sym_i_BQUOTE] = ACTIONS(4337),
    [anon_sym_i_DQUOTE] = ACTIONS(4337),
    [anon_sym_iq_LBRACE] = ACTIONS(4337),
    [aux_sym_char_literal_token1] = ACTIONS(4337),
    [anon_sym_SQUOTE] = ACTIONS(4335),
    [anon_sym___DATE__] = ACTIONS(4335),
    [anon_sym___FILE__] = ACTIONS(4335),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4335),
    [anon_sym___FUNCTION__] = ACTIONS(4335),
    [anon_sym___LINE__] = ACTIONS(4335),
    [anon_sym___MODULE__] = ACTIONS(4335),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4335),
    [anon_sym___TIME__] = ACTIONS(4335),
    [anon_sym___TIMESTAMP__] = ACTIONS(4335),
    [anon_sym___VENDOR__] = ACTIONS(4335),
    [anon_sym___VERSION__] = ACTIONS(4335),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4337),
    [sym_float_literal] = ACTIONS(4337),
    [sym__string] = ACTIONS(4337),
  },
  [2328] = {
    [sym_identifier] = ACTIONS(4351),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4353),
    [anon_sym_LBRACE] = ACTIONS(4353),
    [anon_sym_DOT] = ACTIONS(4353),
    [anon_sym_AMP] = ACTIONS(4353),
    [anon_sym_DASH] = ACTIONS(4351),
    [anon_sym_DASH_DASH] = ACTIONS(4353),
    [anon_sym_PLUS] = ACTIONS(4351),
    [anon_sym_PLUS_PLUS] = ACTIONS(4353),
    [anon_sym_BANG] = ACTIONS(4353),
    [anon_sym_LPAREN] = ACTIONS(4353),
    [anon_sym_RPAREN] = ACTIONS(4353),
    [anon_sym_LBRACK] = ACTIONS(4353),
    [anon_sym_SEMI] = ACTIONS(4353),
    [anon_sym_DOLLAR] = ACTIONS(4353),
    [anon_sym_STAR] = ACTIONS(4353),
    [anon_sym_TILDE] = ACTIONS(4353),
    [sym_bool] = ACTIONS(4351),
    [sym_byte] = ACTIONS(4351),
    [sym_ubyte] = ACTIONS(4351),
    [sym_char] = ACTIONS(4351),
    [sym_short] = ACTIONS(4351),
    [sym_ushort] = ACTIONS(4351),
    [sym_int] = ACTIONS(4351),
    [sym_uint] = ACTIONS(4351),
    [sym_long] = ACTIONS(4351),
    [sym_ulong] = ACTIONS(4351),
    [sym_cent] = ACTIONS(4351),
    [sym_ucent] = ACTIONS(4351),
    [sym_wchar] = ACTIONS(4351),
    [sym_dchar] = ACTIONS(4351),
    [sym_float] = ACTIONS(4351),
    [sym_double] = ACTIONS(4351),
    [sym_real] = ACTIONS(4351),
    [sym_ifloat] = ACTIONS(4351),
    [sym_idouble] = ACTIONS(4351),
    [sym_ireal] = ACTIONS(4351),
    [sym_cfloat] = ACTIONS(4351),
    [sym_cdouble] = ACTIONS(4351),
    [sym_creal] = ACTIONS(4351),
    [sym_size_t] = ACTIONS(4351),
    [sym_ptrdiff_t] = ACTIONS(4351),
    [sym_string] = ACTIONS(4351),
    [sym_cstring] = ACTIONS(4351),
    [sym_dstring] = ACTIONS(4351),
    [sym_wstring] = ACTIONS(4351),
    [sym_noreturn] = ACTIONS(4351),
    [sym_true] = ACTIONS(4351),
    [sym_false] = ACTIONS(4351),
    [sym_null] = ACTIONS(4351),
    [sym_super] = ACTIONS(4351),
    [sym_this] = ACTIONS(4351),
    [sym_assert] = ACTIONS(4351),
    [sym_auto] = ACTIONS(4351),
    [sym_cast] = ACTIONS(4351),
    [sym_catch] = ACTIONS(4351),
    [sym_const] = ACTIONS(4351),
    [sym_delegate] = ACTIONS(4351),
    [sym_delete] = ACTIONS(4351),
    [sym_do] = ACTIONS(4351),
    [sym_else] = ACTIONS(4351),
    [sym_finally] = ACTIONS(4351),
    [sym_function] = ACTIONS(4351),
    [sym_immutable] = ACTIONS(4351),
    [sym_import] = ACTIONS(4351),
    [sym_in] = ACTIONS(4351),
    [sym_inout] = ACTIONS(4351),
    [sym_is] = ACTIONS(4351),
    [sym_mixin] = ACTIONS(4351),
    [sym_new] = ACTIONS(4351),
    [sym_out] = ACTIONS(4351),
    [sym_ref] = ACTIONS(4351),
    [sym_shared] = ACTIONS(4351),
    [sym_throw] = ACTIONS(4351),
    [sym_typeid] = ACTIONS(4351),
    [sym_typeof] = ACTIONS(4351),
    [sym_traits] = ACTIONS(4351),
    [sym_vector] = ACTIONS(4351),
    [sym_void] = ACTIONS(4351),
    [anon_sym_BQUOTE] = ACTIONS(4353),
    [anon_sym_r_DQUOTE] = ACTIONS(4353),
    [anon_sym_x_DQUOTE] = ACTIONS(4353),
    [anon_sym_DQUOTE] = ACTIONS(4353),
    [anon_sym_i_BQUOTE] = ACTIONS(4353),
    [anon_sym_i_DQUOTE] = ACTIONS(4353),
    [anon_sym_iq_LBRACE] = ACTIONS(4353),
    [aux_sym_char_literal_token1] = ACTIONS(4353),
    [anon_sym_SQUOTE] = ACTIONS(4351),
    [anon_sym___DATE__] = ACTIONS(4351),
    [anon_sym___FILE__] = ACTIONS(4351),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4351),
    [anon_sym___FUNCTION__] = ACTIONS(4351),
    [anon_sym___LINE__] = ACTIONS(4351),
    [anon_sym___MODULE__] = ACTIONS(4351),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4351),
    [anon_sym___TIME__] = ACTIONS(4351),
    [anon_sym___TIMESTAMP__] = ACTIONS(4351),
    [anon_sym___VENDOR__] = ACTIONS(4351),
    [anon_sym___VERSION__] = ACTIONS(4351),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4353),
    [sym_float_literal] = ACTIONS(4353),
    [sym__string] = ACTIONS(4353),
  },
  [2329] = {
    [sym_identifier] = ACTIONS(4321),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4324),
    [anon_sym_LBRACE] = ACTIONS(4324),
    [anon_sym_DOT] = ACTIONS(4324),
    [anon_sym_AMP] = ACTIONS(4324),
    [anon_sym_DASH] = ACTIONS(4321),
    [anon_sym_DASH_DASH] = ACTIONS(4324),
    [anon_sym_PLUS] = ACTIONS(4321),
    [anon_sym_PLUS_PLUS] = ACTIONS(4324),
    [anon_sym_BANG] = ACTIONS(4324),
    [anon_sym_LPAREN] = ACTIONS(4324),
    [anon_sym_RPAREN] = ACTIONS(4324),
    [anon_sym_LBRACK] = ACTIONS(4324),
    [anon_sym_SEMI] = ACTIONS(4324),
    [anon_sym_DOLLAR] = ACTIONS(4324),
    [anon_sym_STAR] = ACTIONS(4324),
    [anon_sym_TILDE] = ACTIONS(4324),
    [sym_bool] = ACTIONS(4321),
    [sym_byte] = ACTIONS(4321),
    [sym_ubyte] = ACTIONS(4321),
    [sym_char] = ACTIONS(4321),
    [sym_short] = ACTIONS(4321),
    [sym_ushort] = ACTIONS(4321),
    [sym_int] = ACTIONS(4321),
    [sym_uint] = ACTIONS(4321),
    [sym_long] = ACTIONS(4321),
    [sym_ulong] = ACTIONS(4321),
    [sym_cent] = ACTIONS(4321),
    [sym_ucent] = ACTIONS(4321),
    [sym_wchar] = ACTIONS(4321),
    [sym_dchar] = ACTIONS(4321),
    [sym_float] = ACTIONS(4321),
    [sym_double] = ACTIONS(4321),
    [sym_real] = ACTIONS(4321),
    [sym_ifloat] = ACTIONS(4321),
    [sym_idouble] = ACTIONS(4321),
    [sym_ireal] = ACTIONS(4321),
    [sym_cfloat] = ACTIONS(4321),
    [sym_cdouble] = ACTIONS(4321),
    [sym_creal] = ACTIONS(4321),
    [sym_size_t] = ACTIONS(4321),
    [sym_ptrdiff_t] = ACTIONS(4321),
    [sym_string] = ACTIONS(4321),
    [sym_cstring] = ACTIONS(4321),
    [sym_dstring] = ACTIONS(4321),
    [sym_wstring] = ACTIONS(4321),
    [sym_noreturn] = ACTIONS(4321),
    [sym_true] = ACTIONS(4321),
    [sym_false] = ACTIONS(4321),
    [sym_null] = ACTIONS(4321),
    [sym_super] = ACTIONS(4321),
    [sym_this] = ACTIONS(4321),
    [sym_assert] = ACTIONS(4321),
    [sym_auto] = ACTIONS(4321),
    [sym_cast] = ACTIONS(4321),
    [sym_catch] = ACTIONS(4321),
    [sym_const] = ACTIONS(4321),
    [sym_delegate] = ACTIONS(4321),
    [sym_delete] = ACTIONS(4321),
    [sym_do] = ACTIONS(4321),
    [sym_else] = ACTIONS(4321),
    [sym_finally] = ACTIONS(4321),
    [sym_function] = ACTIONS(4321),
    [sym_immutable] = ACTIONS(4321),
    [sym_import] = ACTIONS(4321),
    [sym_in] = ACTIONS(4321),
    [sym_inout] = ACTIONS(4321),
    [sym_is] = ACTIONS(4321),
    [sym_mixin] = ACTIONS(4321),
    [sym_new] = ACTIONS(4321),
    [sym_out] = ACTIONS(4321),
    [sym_ref] = ACTIONS(4321),
    [sym_shared] = ACTIONS(4321),
    [sym_throw] = ACTIONS(4321),
    [sym_typeid] = ACTIONS(4321),
    [sym_typeof] = ACTIONS(4321),
    [sym_traits] = ACTIONS(4321),
    [sym_vector] = ACTIONS(4321),
    [sym_void] = ACTIONS(4321),
    [anon_sym_BQUOTE] = ACTIONS(4324),
    [anon_sym_r_DQUOTE] = ACTIONS(4324),
    [anon_sym_x_DQUOTE] = ACTIONS(4324),
    [anon_sym_DQUOTE] = ACTIONS(4324),
    [anon_sym_i_BQUOTE] = ACTIONS(4324),
    [anon_sym_i_DQUOTE] = ACTIONS(4324),
    [anon_sym_iq_LBRACE] = ACTIONS(4324),
    [aux_sym_char_literal_token1] = ACTIONS(4324),
    [anon_sym_SQUOTE] = ACTIONS(4321),
    [anon_sym___DATE__] = ACTIONS(4321),
    [anon_sym___FILE__] = ACTIONS(4321),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4321),
    [anon_sym___FUNCTION__] = ACTIONS(4321),
    [anon_sym___LINE__] = ACTIONS(4321),
    [anon_sym___MODULE__] = ACTIONS(4321),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4321),
    [anon_sym___TIME__] = ACTIONS(4321),
    [anon_sym___TIMESTAMP__] = ACTIONS(4321),
    [anon_sym___VENDOR__] = ACTIONS(4321),
    [anon_sym___VERSION__] = ACTIONS(4321),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4324),
    [sym_float_literal] = ACTIONS(4324),
    [sym__string] = ACTIONS(4324),
  },
  [2330] = {
    [sym_identifier] = ACTIONS(4309),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4311),
    [anon_sym_LBRACE] = ACTIONS(4311),
    [anon_sym_DOT] = ACTIONS(4311),
    [anon_sym_AMP] = ACTIONS(4311),
    [anon_sym_DASH] = ACTIONS(4309),
    [anon_sym_DASH_DASH] = ACTIONS(4311),
    [anon_sym_PLUS] = ACTIONS(4309),
    [anon_sym_PLUS_PLUS] = ACTIONS(4311),
    [anon_sym_BANG] = ACTIONS(4311),
    [anon_sym_LPAREN] = ACTIONS(4311),
    [anon_sym_RPAREN] = ACTIONS(4311),
    [anon_sym_LBRACK] = ACTIONS(4311),
    [anon_sym_SEMI] = ACTIONS(4311),
    [anon_sym_DOLLAR] = ACTIONS(4311),
    [anon_sym_STAR] = ACTIONS(4311),
    [anon_sym_TILDE] = ACTIONS(4311),
    [sym_bool] = ACTIONS(4309),
    [sym_byte] = ACTIONS(4309),
    [sym_ubyte] = ACTIONS(4309),
    [sym_char] = ACTIONS(4309),
    [sym_short] = ACTIONS(4309),
    [sym_ushort] = ACTIONS(4309),
    [sym_int] = ACTIONS(4309),
    [sym_uint] = ACTIONS(4309),
    [sym_long] = ACTIONS(4309),
    [sym_ulong] = ACTIONS(4309),
    [sym_cent] = ACTIONS(4309),
    [sym_ucent] = ACTIONS(4309),
    [sym_wchar] = ACTIONS(4309),
    [sym_dchar] = ACTIONS(4309),
    [sym_float] = ACTIONS(4309),
    [sym_double] = ACTIONS(4309),
    [sym_real] = ACTIONS(4309),
    [sym_ifloat] = ACTIONS(4309),
    [sym_idouble] = ACTIONS(4309),
    [sym_ireal] = ACTIONS(4309),
    [sym_cfloat] = ACTIONS(4309),
    [sym_cdouble] = ACTIONS(4309),
    [sym_creal] = ACTIONS(4309),
    [sym_size_t] = ACTIONS(4309),
    [sym_ptrdiff_t] = ACTIONS(4309),
    [sym_string] = ACTIONS(4309),
    [sym_cstring] = ACTIONS(4309),
    [sym_dstring] = ACTIONS(4309),
    [sym_wstring] = ACTIONS(4309),
    [sym_noreturn] = ACTIONS(4309),
    [sym_true] = ACTIONS(4309),
    [sym_false] = ACTIONS(4309),
    [sym_null] = ACTIONS(4309),
    [sym_super] = ACTIONS(4309),
    [sym_this] = ACTIONS(4309),
    [sym_assert] = ACTIONS(4309),
    [sym_auto] = ACTIONS(4309),
    [sym_cast] = ACTIONS(4309),
    [sym_catch] = ACTIONS(4309),
    [sym_const] = ACTIONS(4309),
    [sym_delegate] = ACTIONS(4309),
    [sym_delete] = ACTIONS(4309),
    [sym_do] = ACTIONS(4309),
    [sym_else] = ACTIONS(4309),
    [sym_finally] = ACTIONS(4309),
    [sym_function] = ACTIONS(4309),
    [sym_immutable] = ACTIONS(4309),
    [sym_import] = ACTIONS(4309),
    [sym_in] = ACTIONS(4309),
    [sym_inout] = ACTIONS(4309),
    [sym_is] = ACTIONS(4309),
    [sym_mixin] = ACTIONS(4309),
    [sym_new] = ACTIONS(4309),
    [sym_out] = ACTIONS(4309),
    [sym_ref] = ACTIONS(4309),
    [sym_shared] = ACTIONS(4309),
    [sym_throw] = ACTIONS(4309),
    [sym_typeid] = ACTIONS(4309),
    [sym_typeof] = ACTIONS(4309),
    [sym_traits] = ACTIONS(4309),
    [sym_vector] = ACTIONS(4309),
    [sym_void] = ACTIONS(4309),
    [anon_sym_BQUOTE] = ACTIONS(4311),
    [anon_sym_r_DQUOTE] = ACTIONS(4311),
    [anon_sym_x_DQUOTE] = ACTIONS(4311),
    [anon_sym_DQUOTE] = ACTIONS(4311),
    [anon_sym_i_BQUOTE] = ACTIONS(4311),
    [anon_sym_i_DQUOTE] = ACTIONS(4311),
    [anon_sym_iq_LBRACE] = ACTIONS(4311),
    [aux_sym_char_literal_token1] = ACTIONS(4311),
    [anon_sym_SQUOTE] = ACTIONS(4309),
    [anon_sym___DATE__] = ACTIONS(4309),
    [anon_sym___FILE__] = ACTIONS(4309),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4309),
    [anon_sym___FUNCTION__] = ACTIONS(4309),
    [anon_sym___LINE__] = ACTIONS(4309),
    [anon_sym___MODULE__] = ACTIONS(4309),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4309),
    [anon_sym___TIME__] = ACTIONS(4309),
    [anon_sym___TIMESTAMP__] = ACTIONS(4309),
    [anon_sym___VENDOR__] = ACTIONS(4309),
    [anon_sym___VERSION__] = ACTIONS(4309),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4311),
    [sym_float_literal] = ACTIONS(4311),
    [sym__string] = ACTIONS(4311),
  },
  [2331] = {
    [sym_identifier] = ACTIONS(5008),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5010),
    [anon_sym_LBRACE] = ACTIONS(5010),
    [anon_sym_DOT] = ACTIONS(5010),
    [anon_sym_AMP] = ACTIONS(5010),
    [anon_sym_DASH] = ACTIONS(5008),
    [anon_sym_DASH_DASH] = ACTIONS(5010),
    [anon_sym_PLUS] = ACTIONS(5008),
    [anon_sym_PLUS_PLUS] = ACTIONS(5010),
    [anon_sym_BANG] = ACTIONS(5010),
    [anon_sym_LPAREN] = ACTIONS(5010),
    [anon_sym_RPAREN] = ACTIONS(5010),
    [anon_sym_LBRACK] = ACTIONS(5010),
    [anon_sym_SEMI] = ACTIONS(5010),
    [anon_sym_DOLLAR] = ACTIONS(5010),
    [anon_sym_STAR] = ACTIONS(5010),
    [anon_sym_TILDE] = ACTIONS(5010),
    [sym_bool] = ACTIONS(5008),
    [sym_byte] = ACTIONS(5008),
    [sym_ubyte] = ACTIONS(5008),
    [sym_char] = ACTIONS(5008),
    [sym_short] = ACTIONS(5008),
    [sym_ushort] = ACTIONS(5008),
    [sym_int] = ACTIONS(5008),
    [sym_uint] = ACTIONS(5008),
    [sym_long] = ACTIONS(5008),
    [sym_ulong] = ACTIONS(5008),
    [sym_cent] = ACTIONS(5008),
    [sym_ucent] = ACTIONS(5008),
    [sym_wchar] = ACTIONS(5008),
    [sym_dchar] = ACTIONS(5008),
    [sym_float] = ACTIONS(5008),
    [sym_double] = ACTIONS(5008),
    [sym_real] = ACTIONS(5008),
    [sym_ifloat] = ACTIONS(5008),
    [sym_idouble] = ACTIONS(5008),
    [sym_ireal] = ACTIONS(5008),
    [sym_cfloat] = ACTIONS(5008),
    [sym_cdouble] = ACTIONS(5008),
    [sym_creal] = ACTIONS(5008),
    [sym_size_t] = ACTIONS(5008),
    [sym_ptrdiff_t] = ACTIONS(5008),
    [sym_string] = ACTIONS(5008),
    [sym_cstring] = ACTIONS(5008),
    [sym_dstring] = ACTIONS(5008),
    [sym_wstring] = ACTIONS(5008),
    [sym_noreturn] = ACTIONS(5008),
    [sym_true] = ACTIONS(5008),
    [sym_false] = ACTIONS(5008),
    [sym_null] = ACTIONS(5008),
    [sym_super] = ACTIONS(5008),
    [sym_this] = ACTIONS(5008),
    [sym_assert] = ACTIONS(5008),
    [sym_auto] = ACTIONS(5008),
    [sym_cast] = ACTIONS(5008),
    [sym_catch] = ACTIONS(5008),
    [sym_const] = ACTIONS(5008),
    [sym_delegate] = ACTIONS(5008),
    [sym_delete] = ACTIONS(5008),
    [sym_do] = ACTIONS(5008),
    [sym_else] = ACTIONS(5008),
    [sym_finally] = ACTIONS(5008),
    [sym_function] = ACTIONS(5008),
    [sym_immutable] = ACTIONS(5008),
    [sym_import] = ACTIONS(5008),
    [sym_in] = ACTIONS(5008),
    [sym_inout] = ACTIONS(5008),
    [sym_is] = ACTIONS(5008),
    [sym_mixin] = ACTIONS(5008),
    [sym_new] = ACTIONS(5008),
    [sym_out] = ACTIONS(5008),
    [sym_ref] = ACTIONS(5008),
    [sym_shared] = ACTIONS(5008),
    [sym_throw] = ACTIONS(5008),
    [sym_typeid] = ACTIONS(5008),
    [sym_typeof] = ACTIONS(5008),
    [sym_traits] = ACTIONS(5008),
    [sym_vector] = ACTIONS(5008),
    [sym_void] = ACTIONS(5008),
    [anon_sym_BQUOTE] = ACTIONS(5010),
    [anon_sym_r_DQUOTE] = ACTIONS(5010),
    [anon_sym_x_DQUOTE] = ACTIONS(5010),
    [anon_sym_DQUOTE] = ACTIONS(5010),
    [anon_sym_i_BQUOTE] = ACTIONS(5010),
    [anon_sym_i_DQUOTE] = ACTIONS(5010),
    [anon_sym_iq_LBRACE] = ACTIONS(5010),
    [aux_sym_char_literal_token1] = ACTIONS(5010),
    [anon_sym_SQUOTE] = ACTIONS(5008),
    [anon_sym___DATE__] = ACTIONS(5008),
    [anon_sym___FILE__] = ACTIONS(5008),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5008),
    [anon_sym___FUNCTION__] = ACTIONS(5008),
    [anon_sym___LINE__] = ACTIONS(5008),
    [anon_sym___MODULE__] = ACTIONS(5008),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5008),
    [anon_sym___TIME__] = ACTIONS(5008),
    [anon_sym___TIMESTAMP__] = ACTIONS(5008),
    [anon_sym___VENDOR__] = ACTIONS(5008),
    [anon_sym___VERSION__] = ACTIONS(5008),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5010),
    [sym_float_literal] = ACTIONS(5010),
    [sym__string] = ACTIONS(5010),
  },
  [2332] = {
    [sym_identifier] = ACTIONS(5000),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5002),
    [anon_sym_LBRACE] = ACTIONS(5002),
    [anon_sym_DOT] = ACTIONS(5002),
    [anon_sym_AMP] = ACTIONS(5002),
    [anon_sym_DASH] = ACTIONS(5000),
    [anon_sym_DASH_DASH] = ACTIONS(5002),
    [anon_sym_PLUS] = ACTIONS(5000),
    [anon_sym_PLUS_PLUS] = ACTIONS(5002),
    [anon_sym_BANG] = ACTIONS(5002),
    [anon_sym_LPAREN] = ACTIONS(5002),
    [anon_sym_RPAREN] = ACTIONS(5002),
    [anon_sym_LBRACK] = ACTIONS(5002),
    [anon_sym_SEMI] = ACTIONS(5002),
    [anon_sym_DOLLAR] = ACTIONS(5002),
    [anon_sym_STAR] = ACTIONS(5002),
    [anon_sym_TILDE] = ACTIONS(5002),
    [sym_bool] = ACTIONS(5000),
    [sym_byte] = ACTIONS(5000),
    [sym_ubyte] = ACTIONS(5000),
    [sym_char] = ACTIONS(5000),
    [sym_short] = ACTIONS(5000),
    [sym_ushort] = ACTIONS(5000),
    [sym_int] = ACTIONS(5000),
    [sym_uint] = ACTIONS(5000),
    [sym_long] = ACTIONS(5000),
    [sym_ulong] = ACTIONS(5000),
    [sym_cent] = ACTIONS(5000),
    [sym_ucent] = ACTIONS(5000),
    [sym_wchar] = ACTIONS(5000),
    [sym_dchar] = ACTIONS(5000),
    [sym_float] = ACTIONS(5000),
    [sym_double] = ACTIONS(5000),
    [sym_real] = ACTIONS(5000),
    [sym_ifloat] = ACTIONS(5000),
    [sym_idouble] = ACTIONS(5000),
    [sym_ireal] = ACTIONS(5000),
    [sym_cfloat] = ACTIONS(5000),
    [sym_cdouble] = ACTIONS(5000),
    [sym_creal] = ACTIONS(5000),
    [sym_size_t] = ACTIONS(5000),
    [sym_ptrdiff_t] = ACTIONS(5000),
    [sym_string] = ACTIONS(5000),
    [sym_cstring] = ACTIONS(5000),
    [sym_dstring] = ACTIONS(5000),
    [sym_wstring] = ACTIONS(5000),
    [sym_noreturn] = ACTIONS(5000),
    [sym_true] = ACTIONS(5000),
    [sym_false] = ACTIONS(5000),
    [sym_null] = ACTIONS(5000),
    [sym_super] = ACTIONS(5000),
    [sym_this] = ACTIONS(5000),
    [sym_assert] = ACTIONS(5000),
    [sym_auto] = ACTIONS(5000),
    [sym_cast] = ACTIONS(5000),
    [sym_catch] = ACTIONS(5000),
    [sym_const] = ACTIONS(5000),
    [sym_delegate] = ACTIONS(5000),
    [sym_delete] = ACTIONS(5000),
    [sym_do] = ACTIONS(5000),
    [sym_else] = ACTIONS(5000),
    [sym_finally] = ACTIONS(5000),
    [sym_function] = ACTIONS(5000),
    [sym_immutable] = ACTIONS(5000),
    [sym_import] = ACTIONS(5000),
    [sym_in] = ACTIONS(5000),
    [sym_inout] = ACTIONS(5000),
    [sym_is] = ACTIONS(5000),
    [sym_mixin] = ACTIONS(5000),
    [sym_new] = ACTIONS(5000),
    [sym_out] = ACTIONS(5000),
    [sym_ref] = ACTIONS(5000),
    [sym_shared] = ACTIONS(5000),
    [sym_throw] = ACTIONS(5000),
    [sym_typeid] = ACTIONS(5000),
    [sym_typeof] = ACTIONS(5000),
    [sym_traits] = ACTIONS(5000),
    [sym_vector] = ACTIONS(5000),
    [sym_void] = ACTIONS(5000),
    [anon_sym_BQUOTE] = ACTIONS(5002),
    [anon_sym_r_DQUOTE] = ACTIONS(5002),
    [anon_sym_x_DQUOTE] = ACTIONS(5002),
    [anon_sym_DQUOTE] = ACTIONS(5002),
    [anon_sym_i_BQUOTE] = ACTIONS(5002),
    [anon_sym_i_DQUOTE] = ACTIONS(5002),
    [anon_sym_iq_LBRACE] = ACTIONS(5002),
    [aux_sym_char_literal_token1] = ACTIONS(5002),
    [anon_sym_SQUOTE] = ACTIONS(5000),
    [anon_sym___DATE__] = ACTIONS(5000),
    [anon_sym___FILE__] = ACTIONS(5000),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5000),
    [anon_sym___FUNCTION__] = ACTIONS(5000),
    [anon_sym___LINE__] = ACTIONS(5000),
    [anon_sym___MODULE__] = ACTIONS(5000),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5000),
    [anon_sym___TIME__] = ACTIONS(5000),
    [anon_sym___TIMESTAMP__] = ACTIONS(5000),
    [anon_sym___VENDOR__] = ACTIONS(5000),
    [anon_sym___VERSION__] = ACTIONS(5000),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5002),
    [sym_float_literal] = ACTIONS(5002),
    [sym__string] = ACTIONS(5002),
  },
  [2333] = {
    [sym_identifier] = ACTIONS(4770),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4772),
    [anon_sym_LBRACE] = ACTIONS(4772),
    [anon_sym_DOT] = ACTIONS(4772),
    [anon_sym_AMP] = ACTIONS(4772),
    [anon_sym_DASH] = ACTIONS(4770),
    [anon_sym_DASH_DASH] = ACTIONS(4772),
    [anon_sym_PLUS] = ACTIONS(4770),
    [anon_sym_PLUS_PLUS] = ACTIONS(4772),
    [anon_sym_BANG] = ACTIONS(4772),
    [anon_sym_LPAREN] = ACTIONS(4772),
    [anon_sym_RPAREN] = ACTIONS(4772),
    [anon_sym_LBRACK] = ACTIONS(4772),
    [anon_sym_SEMI] = ACTIONS(4772),
    [anon_sym_DOLLAR] = ACTIONS(4772),
    [anon_sym_STAR] = ACTIONS(4772),
    [anon_sym_TILDE] = ACTIONS(4772),
    [sym_bool] = ACTIONS(4770),
    [sym_byte] = ACTIONS(4770),
    [sym_ubyte] = ACTIONS(4770),
    [sym_char] = ACTIONS(4770),
    [sym_short] = ACTIONS(4770),
    [sym_ushort] = ACTIONS(4770),
    [sym_int] = ACTIONS(4770),
    [sym_uint] = ACTIONS(4770),
    [sym_long] = ACTIONS(4770),
    [sym_ulong] = ACTIONS(4770),
    [sym_cent] = ACTIONS(4770),
    [sym_ucent] = ACTIONS(4770),
    [sym_wchar] = ACTIONS(4770),
    [sym_dchar] = ACTIONS(4770),
    [sym_float] = ACTIONS(4770),
    [sym_double] = ACTIONS(4770),
    [sym_real] = ACTIONS(4770),
    [sym_ifloat] = ACTIONS(4770),
    [sym_idouble] = ACTIONS(4770),
    [sym_ireal] = ACTIONS(4770),
    [sym_cfloat] = ACTIONS(4770),
    [sym_cdouble] = ACTIONS(4770),
    [sym_creal] = ACTIONS(4770),
    [sym_size_t] = ACTIONS(4770),
    [sym_ptrdiff_t] = ACTIONS(4770),
    [sym_string] = ACTIONS(4770),
    [sym_cstring] = ACTIONS(4770),
    [sym_dstring] = ACTIONS(4770),
    [sym_wstring] = ACTIONS(4770),
    [sym_noreturn] = ACTIONS(4770),
    [sym_true] = ACTIONS(4770),
    [sym_false] = ACTIONS(4770),
    [sym_null] = ACTIONS(4770),
    [sym_super] = ACTIONS(4770),
    [sym_this] = ACTIONS(4770),
    [sym_assert] = ACTIONS(4770),
    [sym_auto] = ACTIONS(4770),
    [sym_cast] = ACTIONS(4770),
    [sym_catch] = ACTIONS(4770),
    [sym_const] = ACTIONS(4770),
    [sym_delegate] = ACTIONS(4770),
    [sym_delete] = ACTIONS(4770),
    [sym_do] = ACTIONS(4770),
    [sym_else] = ACTIONS(4770),
    [sym_finally] = ACTIONS(4770),
    [sym_function] = ACTIONS(4770),
    [sym_immutable] = ACTIONS(4770),
    [sym_import] = ACTIONS(4770),
    [sym_in] = ACTIONS(4770),
    [sym_inout] = ACTIONS(4770),
    [sym_is] = ACTIONS(4770),
    [sym_mixin] = ACTIONS(4770),
    [sym_new] = ACTIONS(4770),
    [sym_out] = ACTIONS(4770),
    [sym_ref] = ACTIONS(4770),
    [sym_shared] = ACTIONS(4770),
    [sym_throw] = ACTIONS(4770),
    [sym_typeid] = ACTIONS(4770),
    [sym_typeof] = ACTIONS(4770),
    [sym_traits] = ACTIONS(4770),
    [sym_vector] = ACTIONS(4770),
    [sym_void] = ACTIONS(4770),
    [anon_sym_BQUOTE] = ACTIONS(4772),
    [anon_sym_r_DQUOTE] = ACTIONS(4772),
    [anon_sym_x_DQUOTE] = ACTIONS(4772),
    [anon_sym_DQUOTE] = ACTIONS(4772),
    [anon_sym_i_BQUOTE] = ACTIONS(4772),
    [anon_sym_i_DQUOTE] = ACTIONS(4772),
    [anon_sym_iq_LBRACE] = ACTIONS(4772),
    [aux_sym_char_literal_token1] = ACTIONS(4772),
    [anon_sym_SQUOTE] = ACTIONS(4770),
    [anon_sym___DATE__] = ACTIONS(4770),
    [anon_sym___FILE__] = ACTIONS(4770),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4770),
    [anon_sym___FUNCTION__] = ACTIONS(4770),
    [anon_sym___LINE__] = ACTIONS(4770),
    [anon_sym___MODULE__] = ACTIONS(4770),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4770),
    [anon_sym___TIME__] = ACTIONS(4770),
    [anon_sym___TIMESTAMP__] = ACTIONS(4770),
    [anon_sym___VENDOR__] = ACTIONS(4770),
    [anon_sym___VERSION__] = ACTIONS(4770),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4772),
    [sym_float_literal] = ACTIONS(4772),
    [sym__string] = ACTIONS(4772),
  },
  [2334] = {
    [sym_identifier] = ACTIONS(4974),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4976),
    [anon_sym_LBRACE] = ACTIONS(4976),
    [anon_sym_DOT] = ACTIONS(4976),
    [anon_sym_AMP] = ACTIONS(4976),
    [anon_sym_DASH] = ACTIONS(4974),
    [anon_sym_DASH_DASH] = ACTIONS(4976),
    [anon_sym_PLUS] = ACTIONS(4974),
    [anon_sym_PLUS_PLUS] = ACTIONS(4976),
    [anon_sym_BANG] = ACTIONS(4976),
    [anon_sym_LPAREN] = ACTIONS(4976),
    [anon_sym_RPAREN] = ACTIONS(4976),
    [anon_sym_LBRACK] = ACTIONS(4976),
    [anon_sym_SEMI] = ACTIONS(4976),
    [anon_sym_DOLLAR] = ACTIONS(4976),
    [anon_sym_STAR] = ACTIONS(4976),
    [anon_sym_TILDE] = ACTIONS(4976),
    [sym_bool] = ACTIONS(4974),
    [sym_byte] = ACTIONS(4974),
    [sym_ubyte] = ACTIONS(4974),
    [sym_char] = ACTIONS(4974),
    [sym_short] = ACTIONS(4974),
    [sym_ushort] = ACTIONS(4974),
    [sym_int] = ACTIONS(4974),
    [sym_uint] = ACTIONS(4974),
    [sym_long] = ACTIONS(4974),
    [sym_ulong] = ACTIONS(4974),
    [sym_cent] = ACTIONS(4974),
    [sym_ucent] = ACTIONS(4974),
    [sym_wchar] = ACTIONS(4974),
    [sym_dchar] = ACTIONS(4974),
    [sym_float] = ACTIONS(4974),
    [sym_double] = ACTIONS(4974),
    [sym_real] = ACTIONS(4974),
    [sym_ifloat] = ACTIONS(4974),
    [sym_idouble] = ACTIONS(4974),
    [sym_ireal] = ACTIONS(4974),
    [sym_cfloat] = ACTIONS(4974),
    [sym_cdouble] = ACTIONS(4974),
    [sym_creal] = ACTIONS(4974),
    [sym_size_t] = ACTIONS(4974),
    [sym_ptrdiff_t] = ACTIONS(4974),
    [sym_string] = ACTIONS(4974),
    [sym_cstring] = ACTIONS(4974),
    [sym_dstring] = ACTIONS(4974),
    [sym_wstring] = ACTIONS(4974),
    [sym_noreturn] = ACTIONS(4974),
    [sym_true] = ACTIONS(4974),
    [sym_false] = ACTIONS(4974),
    [sym_null] = ACTIONS(4974),
    [sym_super] = ACTIONS(4974),
    [sym_this] = ACTIONS(4974),
    [sym_assert] = ACTIONS(4974),
    [sym_auto] = ACTIONS(4974),
    [sym_cast] = ACTIONS(4974),
    [sym_catch] = ACTIONS(4974),
    [sym_const] = ACTIONS(4974),
    [sym_delegate] = ACTIONS(4974),
    [sym_delete] = ACTIONS(4974),
    [sym_do] = ACTIONS(4974),
    [sym_else] = ACTIONS(4974),
    [sym_finally] = ACTIONS(4974),
    [sym_function] = ACTIONS(4974),
    [sym_immutable] = ACTIONS(4974),
    [sym_import] = ACTIONS(4974),
    [sym_in] = ACTIONS(4974),
    [sym_inout] = ACTIONS(4974),
    [sym_is] = ACTIONS(4974),
    [sym_mixin] = ACTIONS(4974),
    [sym_new] = ACTIONS(4974),
    [sym_out] = ACTIONS(4974),
    [sym_ref] = ACTIONS(4974),
    [sym_shared] = ACTIONS(4974),
    [sym_throw] = ACTIONS(4974),
    [sym_typeid] = ACTIONS(4974),
    [sym_typeof] = ACTIONS(4974),
    [sym_traits] = ACTIONS(4974),
    [sym_vector] = ACTIONS(4974),
    [sym_void] = ACTIONS(4974),
    [anon_sym_BQUOTE] = ACTIONS(4976),
    [anon_sym_r_DQUOTE] = ACTIONS(4976),
    [anon_sym_x_DQUOTE] = ACTIONS(4976),
    [anon_sym_DQUOTE] = ACTIONS(4976),
    [anon_sym_i_BQUOTE] = ACTIONS(4976),
    [anon_sym_i_DQUOTE] = ACTIONS(4976),
    [anon_sym_iq_LBRACE] = ACTIONS(4976),
    [aux_sym_char_literal_token1] = ACTIONS(4976),
    [anon_sym_SQUOTE] = ACTIONS(4974),
    [anon_sym___DATE__] = ACTIONS(4974),
    [anon_sym___FILE__] = ACTIONS(4974),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4974),
    [anon_sym___FUNCTION__] = ACTIONS(4974),
    [anon_sym___LINE__] = ACTIONS(4974),
    [anon_sym___MODULE__] = ACTIONS(4974),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4974),
    [anon_sym___TIME__] = ACTIONS(4974),
    [anon_sym___TIMESTAMP__] = ACTIONS(4974),
    [anon_sym___VENDOR__] = ACTIONS(4974),
    [anon_sym___VERSION__] = ACTIONS(4974),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4976),
    [sym_float_literal] = ACTIONS(4976),
    [sym__string] = ACTIONS(4976),
  },
  [2335] = {
    [sym_identifier] = ACTIONS(4305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4307),
    [anon_sym_LBRACE] = ACTIONS(4307),
    [anon_sym_DOT] = ACTIONS(4307),
    [anon_sym_AMP] = ACTIONS(4307),
    [anon_sym_DASH] = ACTIONS(4305),
    [anon_sym_DASH_DASH] = ACTIONS(4307),
    [anon_sym_PLUS] = ACTIONS(4305),
    [anon_sym_PLUS_PLUS] = ACTIONS(4307),
    [anon_sym_BANG] = ACTIONS(4307),
    [anon_sym_LPAREN] = ACTIONS(4307),
    [anon_sym_RPAREN] = ACTIONS(4307),
    [anon_sym_LBRACK] = ACTIONS(4307),
    [anon_sym_SEMI] = ACTIONS(4307),
    [anon_sym_DOLLAR] = ACTIONS(4307),
    [anon_sym_STAR] = ACTIONS(4307),
    [anon_sym_TILDE] = ACTIONS(4307),
    [sym_bool] = ACTIONS(4305),
    [sym_byte] = ACTIONS(4305),
    [sym_ubyte] = ACTIONS(4305),
    [sym_char] = ACTIONS(4305),
    [sym_short] = ACTIONS(4305),
    [sym_ushort] = ACTIONS(4305),
    [sym_int] = ACTIONS(4305),
    [sym_uint] = ACTIONS(4305),
    [sym_long] = ACTIONS(4305),
    [sym_ulong] = ACTIONS(4305),
    [sym_cent] = ACTIONS(4305),
    [sym_ucent] = ACTIONS(4305),
    [sym_wchar] = ACTIONS(4305),
    [sym_dchar] = ACTIONS(4305),
    [sym_float] = ACTIONS(4305),
    [sym_double] = ACTIONS(4305),
    [sym_real] = ACTIONS(4305),
    [sym_ifloat] = ACTIONS(4305),
    [sym_idouble] = ACTIONS(4305),
    [sym_ireal] = ACTIONS(4305),
    [sym_cfloat] = ACTIONS(4305),
    [sym_cdouble] = ACTIONS(4305),
    [sym_creal] = ACTIONS(4305),
    [sym_size_t] = ACTIONS(4305),
    [sym_ptrdiff_t] = ACTIONS(4305),
    [sym_string] = ACTIONS(4305),
    [sym_cstring] = ACTIONS(4305),
    [sym_dstring] = ACTIONS(4305),
    [sym_wstring] = ACTIONS(4305),
    [sym_noreturn] = ACTIONS(4305),
    [sym_true] = ACTIONS(4305),
    [sym_false] = ACTIONS(4305),
    [sym_null] = ACTIONS(4305),
    [sym_super] = ACTIONS(4305),
    [sym_this] = ACTIONS(4305),
    [sym_assert] = ACTIONS(4305),
    [sym_auto] = ACTIONS(4305),
    [sym_cast] = ACTIONS(4305),
    [sym_catch] = ACTIONS(4305),
    [sym_const] = ACTIONS(4305),
    [sym_delegate] = ACTIONS(4305),
    [sym_delete] = ACTIONS(4305),
    [sym_do] = ACTIONS(4305),
    [sym_else] = ACTIONS(4305),
    [sym_finally] = ACTIONS(4305),
    [sym_function] = ACTIONS(4305),
    [sym_immutable] = ACTIONS(4305),
    [sym_import] = ACTIONS(4305),
    [sym_in] = ACTIONS(4305),
    [sym_inout] = ACTIONS(4305),
    [sym_is] = ACTIONS(4305),
    [sym_mixin] = ACTIONS(4305),
    [sym_new] = ACTIONS(4305),
    [sym_out] = ACTIONS(4305),
    [sym_ref] = ACTIONS(4305),
    [sym_shared] = ACTIONS(4305),
    [sym_throw] = ACTIONS(4305),
    [sym_typeid] = ACTIONS(4305),
    [sym_typeof] = ACTIONS(4305),
    [sym_traits] = ACTIONS(4305),
    [sym_vector] = ACTIONS(4305),
    [sym_void] = ACTIONS(4305),
    [anon_sym_BQUOTE] = ACTIONS(4307),
    [anon_sym_r_DQUOTE] = ACTIONS(4307),
    [anon_sym_x_DQUOTE] = ACTIONS(4307),
    [anon_sym_DQUOTE] = ACTIONS(4307),
    [anon_sym_i_BQUOTE] = ACTIONS(4307),
    [anon_sym_i_DQUOTE] = ACTIONS(4307),
    [anon_sym_iq_LBRACE] = ACTIONS(4307),
    [aux_sym_char_literal_token1] = ACTIONS(4307),
    [anon_sym_SQUOTE] = ACTIONS(4305),
    [anon_sym___DATE__] = ACTIONS(4305),
    [anon_sym___FILE__] = ACTIONS(4305),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4305),
    [anon_sym___FUNCTION__] = ACTIONS(4305),
    [anon_sym___LINE__] = ACTIONS(4305),
    [anon_sym___MODULE__] = ACTIONS(4305),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4305),
    [anon_sym___TIME__] = ACTIONS(4305),
    [anon_sym___TIMESTAMP__] = ACTIONS(4305),
    [anon_sym___VENDOR__] = ACTIONS(4305),
    [anon_sym___VERSION__] = ACTIONS(4305),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4307),
    [sym_float_literal] = ACTIONS(4307),
    [sym__string] = ACTIONS(4307),
  },
  [2336] = {
    [sym_identifier] = ACTIONS(4966),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4968),
    [anon_sym_LBRACE] = ACTIONS(4968),
    [anon_sym_DOT] = ACTIONS(4968),
    [anon_sym_AMP] = ACTIONS(4968),
    [anon_sym_DASH] = ACTIONS(4966),
    [anon_sym_DASH_DASH] = ACTIONS(4968),
    [anon_sym_PLUS] = ACTIONS(4966),
    [anon_sym_PLUS_PLUS] = ACTIONS(4968),
    [anon_sym_BANG] = ACTIONS(4968),
    [anon_sym_LPAREN] = ACTIONS(4968),
    [anon_sym_RPAREN] = ACTIONS(4968),
    [anon_sym_LBRACK] = ACTIONS(4968),
    [anon_sym_SEMI] = ACTIONS(4968),
    [anon_sym_DOLLAR] = ACTIONS(4968),
    [anon_sym_STAR] = ACTIONS(4968),
    [anon_sym_TILDE] = ACTIONS(4968),
    [sym_bool] = ACTIONS(4966),
    [sym_byte] = ACTIONS(4966),
    [sym_ubyte] = ACTIONS(4966),
    [sym_char] = ACTIONS(4966),
    [sym_short] = ACTIONS(4966),
    [sym_ushort] = ACTIONS(4966),
    [sym_int] = ACTIONS(4966),
    [sym_uint] = ACTIONS(4966),
    [sym_long] = ACTIONS(4966),
    [sym_ulong] = ACTIONS(4966),
    [sym_cent] = ACTIONS(4966),
    [sym_ucent] = ACTIONS(4966),
    [sym_wchar] = ACTIONS(4966),
    [sym_dchar] = ACTIONS(4966),
    [sym_float] = ACTIONS(4966),
    [sym_double] = ACTIONS(4966),
    [sym_real] = ACTIONS(4966),
    [sym_ifloat] = ACTIONS(4966),
    [sym_idouble] = ACTIONS(4966),
    [sym_ireal] = ACTIONS(4966),
    [sym_cfloat] = ACTIONS(4966),
    [sym_cdouble] = ACTIONS(4966),
    [sym_creal] = ACTIONS(4966),
    [sym_size_t] = ACTIONS(4966),
    [sym_ptrdiff_t] = ACTIONS(4966),
    [sym_string] = ACTIONS(4966),
    [sym_cstring] = ACTIONS(4966),
    [sym_dstring] = ACTIONS(4966),
    [sym_wstring] = ACTIONS(4966),
    [sym_noreturn] = ACTIONS(4966),
    [sym_true] = ACTIONS(4966),
    [sym_false] = ACTIONS(4966),
    [sym_null] = ACTIONS(4966),
    [sym_super] = ACTIONS(4966),
    [sym_this] = ACTIONS(4966),
    [sym_assert] = ACTIONS(4966),
    [sym_auto] = ACTIONS(4966),
    [sym_cast] = ACTIONS(4966),
    [sym_catch] = ACTIONS(4966),
    [sym_const] = ACTIONS(4966),
    [sym_delegate] = ACTIONS(4966),
    [sym_delete] = ACTIONS(4966),
    [sym_do] = ACTIONS(4966),
    [sym_else] = ACTIONS(4966),
    [sym_finally] = ACTIONS(4966),
    [sym_function] = ACTIONS(4966),
    [sym_immutable] = ACTIONS(4966),
    [sym_import] = ACTIONS(4966),
    [sym_in] = ACTIONS(4966),
    [sym_inout] = ACTIONS(4966),
    [sym_is] = ACTIONS(4966),
    [sym_mixin] = ACTIONS(4966),
    [sym_new] = ACTIONS(4966),
    [sym_out] = ACTIONS(4966),
    [sym_ref] = ACTIONS(4966),
    [sym_shared] = ACTIONS(4966),
    [sym_throw] = ACTIONS(4966),
    [sym_typeid] = ACTIONS(4966),
    [sym_typeof] = ACTIONS(4966),
    [sym_traits] = ACTIONS(4966),
    [sym_vector] = ACTIONS(4966),
    [sym_void] = ACTIONS(4966),
    [anon_sym_BQUOTE] = ACTIONS(4968),
    [anon_sym_r_DQUOTE] = ACTIONS(4968),
    [anon_sym_x_DQUOTE] = ACTIONS(4968),
    [anon_sym_DQUOTE] = ACTIONS(4968),
    [anon_sym_i_BQUOTE] = ACTIONS(4968),
    [anon_sym_i_DQUOTE] = ACTIONS(4968),
    [anon_sym_iq_LBRACE] = ACTIONS(4968),
    [aux_sym_char_literal_token1] = ACTIONS(4968),
    [anon_sym_SQUOTE] = ACTIONS(4966),
    [anon_sym___DATE__] = ACTIONS(4966),
    [anon_sym___FILE__] = ACTIONS(4966),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4966),
    [anon_sym___FUNCTION__] = ACTIONS(4966),
    [anon_sym___LINE__] = ACTIONS(4966),
    [anon_sym___MODULE__] = ACTIONS(4966),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4966),
    [anon_sym___TIME__] = ACTIONS(4966),
    [anon_sym___TIMESTAMP__] = ACTIONS(4966),
    [anon_sym___VENDOR__] = ACTIONS(4966),
    [anon_sym___VERSION__] = ACTIONS(4966),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4968),
    [sym_float_literal] = ACTIONS(4968),
    [sym__string] = ACTIONS(4968),
  },
  [2337] = {
    [sym_identifier] = ACTIONS(4856),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4858),
    [anon_sym_LBRACE] = ACTIONS(4858),
    [anon_sym_DOT] = ACTIONS(4858),
    [anon_sym_AMP] = ACTIONS(4858),
    [anon_sym_DASH] = ACTIONS(4856),
    [anon_sym_DASH_DASH] = ACTIONS(4858),
    [anon_sym_PLUS] = ACTIONS(4856),
    [anon_sym_PLUS_PLUS] = ACTIONS(4858),
    [anon_sym_BANG] = ACTIONS(4858),
    [anon_sym_LPAREN] = ACTIONS(4858),
    [anon_sym_RPAREN] = ACTIONS(4858),
    [anon_sym_LBRACK] = ACTIONS(4858),
    [anon_sym_SEMI] = ACTIONS(4858),
    [anon_sym_DOLLAR] = ACTIONS(4858),
    [anon_sym_STAR] = ACTIONS(4858),
    [anon_sym_TILDE] = ACTIONS(4858),
    [sym_bool] = ACTIONS(4856),
    [sym_byte] = ACTIONS(4856),
    [sym_ubyte] = ACTIONS(4856),
    [sym_char] = ACTIONS(4856),
    [sym_short] = ACTIONS(4856),
    [sym_ushort] = ACTIONS(4856),
    [sym_int] = ACTIONS(4856),
    [sym_uint] = ACTIONS(4856),
    [sym_long] = ACTIONS(4856),
    [sym_ulong] = ACTIONS(4856),
    [sym_cent] = ACTIONS(4856),
    [sym_ucent] = ACTIONS(4856),
    [sym_wchar] = ACTIONS(4856),
    [sym_dchar] = ACTIONS(4856),
    [sym_float] = ACTIONS(4856),
    [sym_double] = ACTIONS(4856),
    [sym_real] = ACTIONS(4856),
    [sym_ifloat] = ACTIONS(4856),
    [sym_idouble] = ACTIONS(4856),
    [sym_ireal] = ACTIONS(4856),
    [sym_cfloat] = ACTIONS(4856),
    [sym_cdouble] = ACTIONS(4856),
    [sym_creal] = ACTIONS(4856),
    [sym_size_t] = ACTIONS(4856),
    [sym_ptrdiff_t] = ACTIONS(4856),
    [sym_string] = ACTIONS(4856),
    [sym_cstring] = ACTIONS(4856),
    [sym_dstring] = ACTIONS(4856),
    [sym_wstring] = ACTIONS(4856),
    [sym_noreturn] = ACTIONS(4856),
    [sym_true] = ACTIONS(4856),
    [sym_false] = ACTIONS(4856),
    [sym_null] = ACTIONS(4856),
    [sym_super] = ACTIONS(4856),
    [sym_this] = ACTIONS(4856),
    [sym_assert] = ACTIONS(4856),
    [sym_auto] = ACTIONS(4856),
    [sym_cast] = ACTIONS(4856),
    [sym_catch] = ACTIONS(4856),
    [sym_const] = ACTIONS(4856),
    [sym_delegate] = ACTIONS(4856),
    [sym_delete] = ACTIONS(4856),
    [sym_do] = ACTIONS(4856),
    [sym_else] = ACTIONS(4856),
    [sym_finally] = ACTIONS(4856),
    [sym_function] = ACTIONS(4856),
    [sym_immutable] = ACTIONS(4856),
    [sym_import] = ACTIONS(4856),
    [sym_in] = ACTIONS(4856),
    [sym_inout] = ACTIONS(4856),
    [sym_is] = ACTIONS(4856),
    [sym_mixin] = ACTIONS(4856),
    [sym_new] = ACTIONS(4856),
    [sym_out] = ACTIONS(4856),
    [sym_ref] = ACTIONS(4856),
    [sym_shared] = ACTIONS(4856),
    [sym_throw] = ACTIONS(4856),
    [sym_typeid] = ACTIONS(4856),
    [sym_typeof] = ACTIONS(4856),
    [sym_traits] = ACTIONS(4856),
    [sym_vector] = ACTIONS(4856),
    [sym_void] = ACTIONS(4856),
    [anon_sym_BQUOTE] = ACTIONS(4858),
    [anon_sym_r_DQUOTE] = ACTIONS(4858),
    [anon_sym_x_DQUOTE] = ACTIONS(4858),
    [anon_sym_DQUOTE] = ACTIONS(4858),
    [anon_sym_i_BQUOTE] = ACTIONS(4858),
    [anon_sym_i_DQUOTE] = ACTIONS(4858),
    [anon_sym_iq_LBRACE] = ACTIONS(4858),
    [aux_sym_char_literal_token1] = ACTIONS(4858),
    [anon_sym_SQUOTE] = ACTIONS(4856),
    [anon_sym___DATE__] = ACTIONS(4856),
    [anon_sym___FILE__] = ACTIONS(4856),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4856),
    [anon_sym___FUNCTION__] = ACTIONS(4856),
    [anon_sym___LINE__] = ACTIONS(4856),
    [anon_sym___MODULE__] = ACTIONS(4856),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4856),
    [anon_sym___TIME__] = ACTIONS(4856),
    [anon_sym___TIMESTAMP__] = ACTIONS(4856),
    [anon_sym___VENDOR__] = ACTIONS(4856),
    [anon_sym___VERSION__] = ACTIONS(4856),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4858),
    [sym_float_literal] = ACTIONS(4858),
    [sym__string] = ACTIONS(4858),
  },
  [2338] = {
    [sym_identifier] = ACTIONS(5052),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5054),
    [anon_sym_LBRACE] = ACTIONS(5054),
    [anon_sym_DOT] = ACTIONS(5054),
    [anon_sym_AMP] = ACTIONS(5054),
    [anon_sym_DASH] = ACTIONS(5052),
    [anon_sym_DASH_DASH] = ACTIONS(5054),
    [anon_sym_PLUS] = ACTIONS(5052),
    [anon_sym_PLUS_PLUS] = ACTIONS(5054),
    [anon_sym_BANG] = ACTIONS(5054),
    [anon_sym_LPAREN] = ACTIONS(5054),
    [anon_sym_RPAREN] = ACTIONS(5054),
    [anon_sym_LBRACK] = ACTIONS(5054),
    [anon_sym_SEMI] = ACTIONS(5054),
    [anon_sym_DOLLAR] = ACTIONS(5054),
    [anon_sym_STAR] = ACTIONS(5054),
    [anon_sym_TILDE] = ACTIONS(5054),
    [sym_bool] = ACTIONS(5052),
    [sym_byte] = ACTIONS(5052),
    [sym_ubyte] = ACTIONS(5052),
    [sym_char] = ACTIONS(5052),
    [sym_short] = ACTIONS(5052),
    [sym_ushort] = ACTIONS(5052),
    [sym_int] = ACTIONS(5052),
    [sym_uint] = ACTIONS(5052),
    [sym_long] = ACTIONS(5052),
    [sym_ulong] = ACTIONS(5052),
    [sym_cent] = ACTIONS(5052),
    [sym_ucent] = ACTIONS(5052),
    [sym_wchar] = ACTIONS(5052),
    [sym_dchar] = ACTIONS(5052),
    [sym_float] = ACTIONS(5052),
    [sym_double] = ACTIONS(5052),
    [sym_real] = ACTIONS(5052),
    [sym_ifloat] = ACTIONS(5052),
    [sym_idouble] = ACTIONS(5052),
    [sym_ireal] = ACTIONS(5052),
    [sym_cfloat] = ACTIONS(5052),
    [sym_cdouble] = ACTIONS(5052),
    [sym_creal] = ACTIONS(5052),
    [sym_size_t] = ACTIONS(5052),
    [sym_ptrdiff_t] = ACTIONS(5052),
    [sym_string] = ACTIONS(5052),
    [sym_cstring] = ACTIONS(5052),
    [sym_dstring] = ACTIONS(5052),
    [sym_wstring] = ACTIONS(5052),
    [sym_noreturn] = ACTIONS(5052),
    [sym_true] = ACTIONS(5052),
    [sym_false] = ACTIONS(5052),
    [sym_null] = ACTIONS(5052),
    [sym_super] = ACTIONS(5052),
    [sym_this] = ACTIONS(5052),
    [sym_assert] = ACTIONS(5052),
    [sym_auto] = ACTIONS(5052),
    [sym_cast] = ACTIONS(5052),
    [sym_catch] = ACTIONS(5052),
    [sym_const] = ACTIONS(5052),
    [sym_delegate] = ACTIONS(5052),
    [sym_delete] = ACTIONS(5052),
    [sym_do] = ACTIONS(5052),
    [sym_else] = ACTIONS(5052),
    [sym_finally] = ACTIONS(5052),
    [sym_function] = ACTIONS(5052),
    [sym_immutable] = ACTIONS(5052),
    [sym_import] = ACTIONS(5052),
    [sym_in] = ACTIONS(5052),
    [sym_inout] = ACTIONS(5052),
    [sym_is] = ACTIONS(5052),
    [sym_mixin] = ACTIONS(5052),
    [sym_new] = ACTIONS(5052),
    [sym_out] = ACTIONS(5052),
    [sym_ref] = ACTIONS(5052),
    [sym_shared] = ACTIONS(5052),
    [sym_throw] = ACTIONS(5052),
    [sym_typeid] = ACTIONS(5052),
    [sym_typeof] = ACTIONS(5052),
    [sym_traits] = ACTIONS(5052),
    [sym_vector] = ACTIONS(5052),
    [sym_void] = ACTIONS(5052),
    [anon_sym_BQUOTE] = ACTIONS(5054),
    [anon_sym_r_DQUOTE] = ACTIONS(5054),
    [anon_sym_x_DQUOTE] = ACTIONS(5054),
    [anon_sym_DQUOTE] = ACTIONS(5054),
    [anon_sym_i_BQUOTE] = ACTIONS(5054),
    [anon_sym_i_DQUOTE] = ACTIONS(5054),
    [anon_sym_iq_LBRACE] = ACTIONS(5054),
    [aux_sym_char_literal_token1] = ACTIONS(5054),
    [anon_sym_SQUOTE] = ACTIONS(5052),
    [anon_sym___DATE__] = ACTIONS(5052),
    [anon_sym___FILE__] = ACTIONS(5052),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5052),
    [anon_sym___FUNCTION__] = ACTIONS(5052),
    [anon_sym___LINE__] = ACTIONS(5052),
    [anon_sym___MODULE__] = ACTIONS(5052),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5052),
    [anon_sym___TIME__] = ACTIONS(5052),
    [anon_sym___TIMESTAMP__] = ACTIONS(5052),
    [anon_sym___VENDOR__] = ACTIONS(5052),
    [anon_sym___VERSION__] = ACTIONS(5052),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5054),
    [sym_float_literal] = ACTIONS(5054),
    [sym__string] = ACTIONS(5054),
  },
  [2339] = {
    [sym_identifier] = ACTIONS(4446),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4448),
    [anon_sym_LBRACE] = ACTIONS(4448),
    [anon_sym_DOT] = ACTIONS(4448),
    [anon_sym_AMP] = ACTIONS(4448),
    [anon_sym_DASH] = ACTIONS(4446),
    [anon_sym_DASH_DASH] = ACTIONS(4448),
    [anon_sym_PLUS] = ACTIONS(4446),
    [anon_sym_PLUS_PLUS] = ACTIONS(4448),
    [anon_sym_BANG] = ACTIONS(4448),
    [anon_sym_LPAREN] = ACTIONS(4448),
    [anon_sym_RPAREN] = ACTIONS(4448),
    [anon_sym_LBRACK] = ACTIONS(4448),
    [anon_sym_SEMI] = ACTIONS(4448),
    [anon_sym_DOLLAR] = ACTIONS(4448),
    [anon_sym_STAR] = ACTIONS(4448),
    [anon_sym_TILDE] = ACTIONS(4448),
    [sym_bool] = ACTIONS(4446),
    [sym_byte] = ACTIONS(4446),
    [sym_ubyte] = ACTIONS(4446),
    [sym_char] = ACTIONS(4446),
    [sym_short] = ACTIONS(4446),
    [sym_ushort] = ACTIONS(4446),
    [sym_int] = ACTIONS(4446),
    [sym_uint] = ACTIONS(4446),
    [sym_long] = ACTIONS(4446),
    [sym_ulong] = ACTIONS(4446),
    [sym_cent] = ACTIONS(4446),
    [sym_ucent] = ACTIONS(4446),
    [sym_wchar] = ACTIONS(4446),
    [sym_dchar] = ACTIONS(4446),
    [sym_float] = ACTIONS(4446),
    [sym_double] = ACTIONS(4446),
    [sym_real] = ACTIONS(4446),
    [sym_ifloat] = ACTIONS(4446),
    [sym_idouble] = ACTIONS(4446),
    [sym_ireal] = ACTIONS(4446),
    [sym_cfloat] = ACTIONS(4446),
    [sym_cdouble] = ACTIONS(4446),
    [sym_creal] = ACTIONS(4446),
    [sym_size_t] = ACTIONS(4446),
    [sym_ptrdiff_t] = ACTIONS(4446),
    [sym_string] = ACTIONS(4446),
    [sym_cstring] = ACTIONS(4446),
    [sym_dstring] = ACTIONS(4446),
    [sym_wstring] = ACTIONS(4446),
    [sym_noreturn] = ACTIONS(4446),
    [sym_true] = ACTIONS(4446),
    [sym_false] = ACTIONS(4446),
    [sym_null] = ACTIONS(4446),
    [sym_super] = ACTIONS(4446),
    [sym_this] = ACTIONS(4446),
    [sym_assert] = ACTIONS(4446),
    [sym_auto] = ACTIONS(4446),
    [sym_cast] = ACTIONS(4446),
    [sym_catch] = ACTIONS(4446),
    [sym_const] = ACTIONS(4446),
    [sym_delegate] = ACTIONS(4446),
    [sym_delete] = ACTIONS(4446),
    [sym_do] = ACTIONS(4446),
    [sym_else] = ACTIONS(6576),
    [sym_finally] = ACTIONS(4446),
    [sym_function] = ACTIONS(4446),
    [sym_immutable] = ACTIONS(4446),
    [sym_import] = ACTIONS(4446),
    [sym_in] = ACTIONS(4446),
    [sym_inout] = ACTIONS(4446),
    [sym_is] = ACTIONS(4446),
    [sym_mixin] = ACTIONS(4446),
    [sym_new] = ACTIONS(4446),
    [sym_out] = ACTIONS(4446),
    [sym_ref] = ACTIONS(4446),
    [sym_shared] = ACTIONS(4446),
    [sym_throw] = ACTIONS(4446),
    [sym_typeid] = ACTIONS(4446),
    [sym_typeof] = ACTIONS(4446),
    [sym_traits] = ACTIONS(4446),
    [sym_vector] = ACTIONS(4446),
    [sym_void] = ACTIONS(4446),
    [anon_sym_BQUOTE] = ACTIONS(4448),
    [anon_sym_r_DQUOTE] = ACTIONS(4448),
    [anon_sym_x_DQUOTE] = ACTIONS(4448),
    [anon_sym_DQUOTE] = ACTIONS(4448),
    [anon_sym_i_BQUOTE] = ACTIONS(4448),
    [anon_sym_i_DQUOTE] = ACTIONS(4448),
    [anon_sym_iq_LBRACE] = ACTIONS(4448),
    [aux_sym_char_literal_token1] = ACTIONS(4448),
    [anon_sym_SQUOTE] = ACTIONS(4446),
    [anon_sym___DATE__] = ACTIONS(4446),
    [anon_sym___FILE__] = ACTIONS(4446),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4446),
    [anon_sym___FUNCTION__] = ACTIONS(4446),
    [anon_sym___LINE__] = ACTIONS(4446),
    [anon_sym___MODULE__] = ACTIONS(4446),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4446),
    [anon_sym___TIME__] = ACTIONS(4446),
    [anon_sym___TIMESTAMP__] = ACTIONS(4446),
    [anon_sym___VENDOR__] = ACTIONS(4446),
    [anon_sym___VERSION__] = ACTIONS(4446),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4448),
    [sym_float_literal] = ACTIONS(4448),
    [sym__string] = ACTIONS(4448),
  },
  [2340] = {
    [sym_identifier] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2782),
    [anon_sym_LBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(2782),
    [anon_sym_AMP] = ACTIONS(2782),
    [anon_sym_DASH] = ACTIONS(2784),
    [anon_sym_DASH_DASH] = ACTIONS(2782),
    [anon_sym_PLUS] = ACTIONS(2784),
    [anon_sym_PLUS_PLUS] = ACTIONS(2782),
    [anon_sym_BANG] = ACTIONS(2782),
    [anon_sym_LPAREN] = ACTIONS(2782),
    [anon_sym_RPAREN] = ACTIONS(2782),
    [anon_sym_LBRACK] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2782),
    [anon_sym_DOLLAR] = ACTIONS(2782),
    [anon_sym_STAR] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2782),
    [sym_bool] = ACTIONS(2784),
    [sym_byte] = ACTIONS(2784),
    [sym_ubyte] = ACTIONS(2784),
    [sym_char] = ACTIONS(2784),
    [sym_short] = ACTIONS(2784),
    [sym_ushort] = ACTIONS(2784),
    [sym_int] = ACTIONS(2784),
    [sym_uint] = ACTIONS(2784),
    [sym_long] = ACTIONS(2784),
    [sym_ulong] = ACTIONS(2784),
    [sym_cent] = ACTIONS(2784),
    [sym_ucent] = ACTIONS(2784),
    [sym_wchar] = ACTIONS(2784),
    [sym_dchar] = ACTIONS(2784),
    [sym_float] = ACTIONS(2784),
    [sym_double] = ACTIONS(2784),
    [sym_real] = ACTIONS(2784),
    [sym_ifloat] = ACTIONS(2784),
    [sym_idouble] = ACTIONS(2784),
    [sym_ireal] = ACTIONS(2784),
    [sym_cfloat] = ACTIONS(2784),
    [sym_cdouble] = ACTIONS(2784),
    [sym_creal] = ACTIONS(2784),
    [sym_size_t] = ACTIONS(2784),
    [sym_ptrdiff_t] = ACTIONS(2784),
    [sym_string] = ACTIONS(2784),
    [sym_cstring] = ACTIONS(2784),
    [sym_dstring] = ACTIONS(2784),
    [sym_wstring] = ACTIONS(2784),
    [sym_noreturn] = ACTIONS(2784),
    [sym_true] = ACTIONS(2784),
    [sym_false] = ACTIONS(2784),
    [sym_null] = ACTIONS(2784),
    [sym_super] = ACTIONS(2784),
    [sym_this] = ACTIONS(2784),
    [sym_assert] = ACTIONS(2784),
    [sym_auto] = ACTIONS(2784),
    [sym_cast] = ACTIONS(2784),
    [sym_catch] = ACTIONS(2784),
    [sym_const] = ACTIONS(2784),
    [sym_delegate] = ACTIONS(2784),
    [sym_delete] = ACTIONS(2784),
    [sym_do] = ACTIONS(2784),
    [sym_else] = ACTIONS(6578),
    [sym_finally] = ACTIONS(2784),
    [sym_function] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(2784),
    [sym_import] = ACTIONS(2784),
    [sym_in] = ACTIONS(2784),
    [sym_inout] = ACTIONS(2784),
    [sym_is] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2784),
    [sym_new] = ACTIONS(2784),
    [sym_out] = ACTIONS(2784),
    [sym_ref] = ACTIONS(2784),
    [sym_shared] = ACTIONS(2784),
    [sym_throw] = ACTIONS(2784),
    [sym_typeid] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(2784),
    [sym_traits] = ACTIONS(2784),
    [sym_vector] = ACTIONS(2784),
    [sym_void] = ACTIONS(2784),
    [anon_sym_BQUOTE] = ACTIONS(2782),
    [anon_sym_r_DQUOTE] = ACTIONS(2782),
    [anon_sym_x_DQUOTE] = ACTIONS(2782),
    [anon_sym_DQUOTE] = ACTIONS(2782),
    [anon_sym_i_BQUOTE] = ACTIONS(2782),
    [anon_sym_i_DQUOTE] = ACTIONS(2782),
    [anon_sym_iq_LBRACE] = ACTIONS(2782),
    [aux_sym_char_literal_token1] = ACTIONS(2782),
    [anon_sym_SQUOTE] = ACTIONS(2784),
    [anon_sym___DATE__] = ACTIONS(2784),
    [anon_sym___FILE__] = ACTIONS(2784),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2784),
    [anon_sym___FUNCTION__] = ACTIONS(2784),
    [anon_sym___LINE__] = ACTIONS(2784),
    [anon_sym___MODULE__] = ACTIONS(2784),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2784),
    [anon_sym___TIME__] = ACTIONS(2784),
    [anon_sym___TIMESTAMP__] = ACTIONS(2784),
    [anon_sym___VENDOR__] = ACTIONS(2784),
    [anon_sym___VERSION__] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2782),
    [sym_float_literal] = ACTIONS(2782),
    [sym__string] = ACTIONS(2782),
  },
  [2341] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(6580),
    [sym_finally] = ACTIONS(2665),
    [sym_function] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_new] = ACTIONS(2665),
    [sym_out] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_throw] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [2342] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(6582),
    [sym_finally] = ACTIONS(2798),
    [sym_function] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_new] = ACTIONS(2798),
    [sym_out] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_throw] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [2343] = {
    [sym_identifier] = ACTIONS(4996),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4998),
    [anon_sym_LBRACE] = ACTIONS(4998),
    [anon_sym_DOT] = ACTIONS(4998),
    [anon_sym_AMP] = ACTIONS(4998),
    [anon_sym_DASH] = ACTIONS(4996),
    [anon_sym_DASH_DASH] = ACTIONS(4998),
    [anon_sym_PLUS] = ACTIONS(4996),
    [anon_sym_PLUS_PLUS] = ACTIONS(4998),
    [anon_sym_BANG] = ACTIONS(4998),
    [anon_sym_LPAREN] = ACTIONS(4998),
    [anon_sym_RPAREN] = ACTIONS(4998),
    [anon_sym_LBRACK] = ACTIONS(4998),
    [anon_sym_SEMI] = ACTIONS(4998),
    [anon_sym_DOLLAR] = ACTIONS(4998),
    [anon_sym_STAR] = ACTIONS(4998),
    [anon_sym_TILDE] = ACTIONS(4998),
    [sym_bool] = ACTIONS(4996),
    [sym_byte] = ACTIONS(4996),
    [sym_ubyte] = ACTIONS(4996),
    [sym_char] = ACTIONS(4996),
    [sym_short] = ACTIONS(4996),
    [sym_ushort] = ACTIONS(4996),
    [sym_int] = ACTIONS(4996),
    [sym_uint] = ACTIONS(4996),
    [sym_long] = ACTIONS(4996),
    [sym_ulong] = ACTIONS(4996),
    [sym_cent] = ACTIONS(4996),
    [sym_ucent] = ACTIONS(4996),
    [sym_wchar] = ACTIONS(4996),
    [sym_dchar] = ACTIONS(4996),
    [sym_float] = ACTIONS(4996),
    [sym_double] = ACTIONS(4996),
    [sym_real] = ACTIONS(4996),
    [sym_ifloat] = ACTIONS(4996),
    [sym_idouble] = ACTIONS(4996),
    [sym_ireal] = ACTIONS(4996),
    [sym_cfloat] = ACTIONS(4996),
    [sym_cdouble] = ACTIONS(4996),
    [sym_creal] = ACTIONS(4996),
    [sym_size_t] = ACTIONS(4996),
    [sym_ptrdiff_t] = ACTIONS(4996),
    [sym_string] = ACTIONS(4996),
    [sym_cstring] = ACTIONS(4996),
    [sym_dstring] = ACTIONS(4996),
    [sym_wstring] = ACTIONS(4996),
    [sym_noreturn] = ACTIONS(4996),
    [sym_true] = ACTIONS(4996),
    [sym_false] = ACTIONS(4996),
    [sym_null] = ACTIONS(4996),
    [sym_super] = ACTIONS(4996),
    [sym_this] = ACTIONS(4996),
    [sym_assert] = ACTIONS(4996),
    [sym_auto] = ACTIONS(4996),
    [sym_cast] = ACTIONS(4996),
    [sym_catch] = ACTIONS(4996),
    [sym_const] = ACTIONS(4996),
    [sym_delegate] = ACTIONS(4996),
    [sym_delete] = ACTIONS(4996),
    [sym_do] = ACTIONS(4996),
    [sym_else] = ACTIONS(4996),
    [sym_finally] = ACTIONS(4996),
    [sym_function] = ACTIONS(4996),
    [sym_immutable] = ACTIONS(4996),
    [sym_import] = ACTIONS(4996),
    [sym_in] = ACTIONS(4996),
    [sym_inout] = ACTIONS(4996),
    [sym_is] = ACTIONS(4996),
    [sym_mixin] = ACTIONS(4996),
    [sym_new] = ACTIONS(4996),
    [sym_out] = ACTIONS(4996),
    [sym_ref] = ACTIONS(4996),
    [sym_shared] = ACTIONS(4996),
    [sym_throw] = ACTIONS(4996),
    [sym_typeid] = ACTIONS(4996),
    [sym_typeof] = ACTIONS(4996),
    [sym_traits] = ACTIONS(4996),
    [sym_vector] = ACTIONS(4996),
    [sym_void] = ACTIONS(4996),
    [anon_sym_BQUOTE] = ACTIONS(4998),
    [anon_sym_r_DQUOTE] = ACTIONS(4998),
    [anon_sym_x_DQUOTE] = ACTIONS(4998),
    [anon_sym_DQUOTE] = ACTIONS(4998),
    [anon_sym_i_BQUOTE] = ACTIONS(4998),
    [anon_sym_i_DQUOTE] = ACTIONS(4998),
    [anon_sym_iq_LBRACE] = ACTIONS(4998),
    [aux_sym_char_literal_token1] = ACTIONS(4998),
    [anon_sym_SQUOTE] = ACTIONS(4996),
    [anon_sym___DATE__] = ACTIONS(4996),
    [anon_sym___FILE__] = ACTIONS(4996),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4996),
    [anon_sym___FUNCTION__] = ACTIONS(4996),
    [anon_sym___LINE__] = ACTIONS(4996),
    [anon_sym___MODULE__] = ACTIONS(4996),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4996),
    [anon_sym___TIME__] = ACTIONS(4996),
    [anon_sym___TIMESTAMP__] = ACTIONS(4996),
    [anon_sym___VENDOR__] = ACTIONS(4996),
    [anon_sym___VERSION__] = ACTIONS(4996),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4998),
    [sym_float_literal] = ACTIONS(4998),
    [sym__string] = ACTIONS(4998),
  },
  [2344] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_catch] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(6584),
    [sym_finally] = ACTIONS(4359),
    [sym_function] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [2345] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_catch] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(6586),
    [sym_finally] = ACTIONS(4640),
    [sym_function] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [2346] = {
    [sym_identifier] = ACTIONS(4932),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4934),
    [anon_sym_LBRACE] = ACTIONS(4934),
    [anon_sym_DOT] = ACTIONS(4934),
    [anon_sym_AMP] = ACTIONS(4934),
    [anon_sym_DASH] = ACTIONS(4932),
    [anon_sym_DASH_DASH] = ACTIONS(4934),
    [anon_sym_PLUS] = ACTIONS(4932),
    [anon_sym_PLUS_PLUS] = ACTIONS(4934),
    [anon_sym_BANG] = ACTIONS(4934),
    [anon_sym_LPAREN] = ACTIONS(4934),
    [anon_sym_RPAREN] = ACTIONS(4934),
    [anon_sym_LBRACK] = ACTIONS(4934),
    [anon_sym_SEMI] = ACTIONS(4934),
    [anon_sym_DOLLAR] = ACTIONS(4934),
    [anon_sym_STAR] = ACTIONS(4934),
    [anon_sym_TILDE] = ACTIONS(4934),
    [sym_bool] = ACTIONS(4932),
    [sym_byte] = ACTIONS(4932),
    [sym_ubyte] = ACTIONS(4932),
    [sym_char] = ACTIONS(4932),
    [sym_short] = ACTIONS(4932),
    [sym_ushort] = ACTIONS(4932),
    [sym_int] = ACTIONS(4932),
    [sym_uint] = ACTIONS(4932),
    [sym_long] = ACTIONS(4932),
    [sym_ulong] = ACTIONS(4932),
    [sym_cent] = ACTIONS(4932),
    [sym_ucent] = ACTIONS(4932),
    [sym_wchar] = ACTIONS(4932),
    [sym_dchar] = ACTIONS(4932),
    [sym_float] = ACTIONS(4932),
    [sym_double] = ACTIONS(4932),
    [sym_real] = ACTIONS(4932),
    [sym_ifloat] = ACTIONS(4932),
    [sym_idouble] = ACTIONS(4932),
    [sym_ireal] = ACTIONS(4932),
    [sym_cfloat] = ACTIONS(4932),
    [sym_cdouble] = ACTIONS(4932),
    [sym_creal] = ACTIONS(4932),
    [sym_size_t] = ACTIONS(4932),
    [sym_ptrdiff_t] = ACTIONS(4932),
    [sym_string] = ACTIONS(4932),
    [sym_cstring] = ACTIONS(4932),
    [sym_dstring] = ACTIONS(4932),
    [sym_wstring] = ACTIONS(4932),
    [sym_noreturn] = ACTIONS(4932),
    [sym_true] = ACTIONS(4932),
    [sym_false] = ACTIONS(4932),
    [sym_null] = ACTIONS(4932),
    [sym_super] = ACTIONS(4932),
    [sym_this] = ACTIONS(4932),
    [sym_assert] = ACTIONS(4932),
    [sym_auto] = ACTIONS(4932),
    [sym_cast] = ACTIONS(4932),
    [sym_catch] = ACTIONS(4932),
    [sym_const] = ACTIONS(4932),
    [sym_delegate] = ACTIONS(4932),
    [sym_delete] = ACTIONS(4932),
    [sym_do] = ACTIONS(4932),
    [sym_else] = ACTIONS(4932),
    [sym_finally] = ACTIONS(4932),
    [sym_function] = ACTIONS(4932),
    [sym_immutable] = ACTIONS(4932),
    [sym_import] = ACTIONS(4932),
    [sym_in] = ACTIONS(4932),
    [sym_inout] = ACTIONS(4932),
    [sym_is] = ACTIONS(4932),
    [sym_mixin] = ACTIONS(4932),
    [sym_new] = ACTIONS(4932),
    [sym_out] = ACTIONS(4932),
    [sym_ref] = ACTIONS(4932),
    [sym_shared] = ACTIONS(4932),
    [sym_throw] = ACTIONS(4932),
    [sym_typeid] = ACTIONS(4932),
    [sym_typeof] = ACTIONS(4932),
    [sym_traits] = ACTIONS(4932),
    [sym_vector] = ACTIONS(4932),
    [sym_void] = ACTIONS(4932),
    [anon_sym_BQUOTE] = ACTIONS(4934),
    [anon_sym_r_DQUOTE] = ACTIONS(4934),
    [anon_sym_x_DQUOTE] = ACTIONS(4934),
    [anon_sym_DQUOTE] = ACTIONS(4934),
    [anon_sym_i_BQUOTE] = ACTIONS(4934),
    [anon_sym_i_DQUOTE] = ACTIONS(4934),
    [anon_sym_iq_LBRACE] = ACTIONS(4934),
    [aux_sym_char_literal_token1] = ACTIONS(4934),
    [anon_sym_SQUOTE] = ACTIONS(4932),
    [anon_sym___DATE__] = ACTIONS(4932),
    [anon_sym___FILE__] = ACTIONS(4932),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4932),
    [anon_sym___FUNCTION__] = ACTIONS(4932),
    [anon_sym___LINE__] = ACTIONS(4932),
    [anon_sym___MODULE__] = ACTIONS(4932),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4932),
    [anon_sym___TIME__] = ACTIONS(4932),
    [anon_sym___TIMESTAMP__] = ACTIONS(4932),
    [anon_sym___VENDOR__] = ACTIONS(4932),
    [anon_sym___VERSION__] = ACTIONS(4932),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4934),
    [sym_float_literal] = ACTIONS(4934),
    [sym__string] = ACTIONS(4934),
  },
  [2347] = {
    [sym_identifier] = ACTIONS(4936),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4938),
    [anon_sym_LBRACE] = ACTIONS(4938),
    [anon_sym_DOT] = ACTIONS(4938),
    [anon_sym_AMP] = ACTIONS(4938),
    [anon_sym_DASH] = ACTIONS(4936),
    [anon_sym_DASH_DASH] = ACTIONS(4938),
    [anon_sym_PLUS] = ACTIONS(4936),
    [anon_sym_PLUS_PLUS] = ACTIONS(4938),
    [anon_sym_BANG] = ACTIONS(4938),
    [anon_sym_LPAREN] = ACTIONS(4938),
    [anon_sym_RPAREN] = ACTIONS(4938),
    [anon_sym_LBRACK] = ACTIONS(4938),
    [anon_sym_SEMI] = ACTIONS(4938),
    [anon_sym_DOLLAR] = ACTIONS(4938),
    [anon_sym_STAR] = ACTIONS(4938),
    [anon_sym_TILDE] = ACTIONS(4938),
    [sym_bool] = ACTIONS(4936),
    [sym_byte] = ACTIONS(4936),
    [sym_ubyte] = ACTIONS(4936),
    [sym_char] = ACTIONS(4936),
    [sym_short] = ACTIONS(4936),
    [sym_ushort] = ACTIONS(4936),
    [sym_int] = ACTIONS(4936),
    [sym_uint] = ACTIONS(4936),
    [sym_long] = ACTIONS(4936),
    [sym_ulong] = ACTIONS(4936),
    [sym_cent] = ACTIONS(4936),
    [sym_ucent] = ACTIONS(4936),
    [sym_wchar] = ACTIONS(4936),
    [sym_dchar] = ACTIONS(4936),
    [sym_float] = ACTIONS(4936),
    [sym_double] = ACTIONS(4936),
    [sym_real] = ACTIONS(4936),
    [sym_ifloat] = ACTIONS(4936),
    [sym_idouble] = ACTIONS(4936),
    [sym_ireal] = ACTIONS(4936),
    [sym_cfloat] = ACTIONS(4936),
    [sym_cdouble] = ACTIONS(4936),
    [sym_creal] = ACTIONS(4936),
    [sym_size_t] = ACTIONS(4936),
    [sym_ptrdiff_t] = ACTIONS(4936),
    [sym_string] = ACTIONS(4936),
    [sym_cstring] = ACTIONS(4936),
    [sym_dstring] = ACTIONS(4936),
    [sym_wstring] = ACTIONS(4936),
    [sym_noreturn] = ACTIONS(4936),
    [sym_true] = ACTIONS(4936),
    [sym_false] = ACTIONS(4936),
    [sym_null] = ACTIONS(4936),
    [sym_super] = ACTIONS(4936),
    [sym_this] = ACTIONS(4936),
    [sym_assert] = ACTIONS(4936),
    [sym_auto] = ACTIONS(4936),
    [sym_cast] = ACTIONS(4936),
    [sym_catch] = ACTIONS(4936),
    [sym_const] = ACTIONS(4936),
    [sym_delegate] = ACTIONS(4936),
    [sym_delete] = ACTIONS(4936),
    [sym_do] = ACTIONS(4936),
    [sym_else] = ACTIONS(4936),
    [sym_finally] = ACTIONS(4936),
    [sym_function] = ACTIONS(4936),
    [sym_immutable] = ACTIONS(4936),
    [sym_import] = ACTIONS(4936),
    [sym_in] = ACTIONS(4936),
    [sym_inout] = ACTIONS(4936),
    [sym_is] = ACTIONS(4936),
    [sym_mixin] = ACTIONS(4936),
    [sym_new] = ACTIONS(4936),
    [sym_out] = ACTIONS(4936),
    [sym_ref] = ACTIONS(4936),
    [sym_shared] = ACTIONS(4936),
    [sym_throw] = ACTIONS(4936),
    [sym_typeid] = ACTIONS(4936),
    [sym_typeof] = ACTIONS(4936),
    [sym_traits] = ACTIONS(4936),
    [sym_vector] = ACTIONS(4936),
    [sym_void] = ACTIONS(4936),
    [anon_sym_BQUOTE] = ACTIONS(4938),
    [anon_sym_r_DQUOTE] = ACTIONS(4938),
    [anon_sym_x_DQUOTE] = ACTIONS(4938),
    [anon_sym_DQUOTE] = ACTIONS(4938),
    [anon_sym_i_BQUOTE] = ACTIONS(4938),
    [anon_sym_i_DQUOTE] = ACTIONS(4938),
    [anon_sym_iq_LBRACE] = ACTIONS(4938),
    [aux_sym_char_literal_token1] = ACTIONS(4938),
    [anon_sym_SQUOTE] = ACTIONS(4936),
    [anon_sym___DATE__] = ACTIONS(4936),
    [anon_sym___FILE__] = ACTIONS(4936),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4936),
    [anon_sym___FUNCTION__] = ACTIONS(4936),
    [anon_sym___LINE__] = ACTIONS(4936),
    [anon_sym___MODULE__] = ACTIONS(4936),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4936),
    [anon_sym___TIME__] = ACTIONS(4936),
    [anon_sym___TIMESTAMP__] = ACTIONS(4936),
    [anon_sym___VENDOR__] = ACTIONS(4936),
    [anon_sym___VERSION__] = ACTIONS(4936),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4938),
    [sym_float_literal] = ACTIONS(4938),
    [sym__string] = ACTIONS(4938),
  },
  [2348] = {
    [sym_identifier] = ACTIONS(5040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5042),
    [anon_sym_LBRACE] = ACTIONS(5042),
    [anon_sym_DOT] = ACTIONS(5042),
    [anon_sym_AMP] = ACTIONS(5042),
    [anon_sym_DASH] = ACTIONS(5040),
    [anon_sym_DASH_DASH] = ACTIONS(5042),
    [anon_sym_PLUS] = ACTIONS(5040),
    [anon_sym_PLUS_PLUS] = ACTIONS(5042),
    [anon_sym_BANG] = ACTIONS(5042),
    [anon_sym_LPAREN] = ACTIONS(5042),
    [anon_sym_RPAREN] = ACTIONS(5042),
    [anon_sym_LBRACK] = ACTIONS(5042),
    [anon_sym_SEMI] = ACTIONS(5042),
    [anon_sym_DOLLAR] = ACTIONS(5042),
    [anon_sym_STAR] = ACTIONS(5042),
    [anon_sym_TILDE] = ACTIONS(5042),
    [sym_bool] = ACTIONS(5040),
    [sym_byte] = ACTIONS(5040),
    [sym_ubyte] = ACTIONS(5040),
    [sym_char] = ACTIONS(5040),
    [sym_short] = ACTIONS(5040),
    [sym_ushort] = ACTIONS(5040),
    [sym_int] = ACTIONS(5040),
    [sym_uint] = ACTIONS(5040),
    [sym_long] = ACTIONS(5040),
    [sym_ulong] = ACTIONS(5040),
    [sym_cent] = ACTIONS(5040),
    [sym_ucent] = ACTIONS(5040),
    [sym_wchar] = ACTIONS(5040),
    [sym_dchar] = ACTIONS(5040),
    [sym_float] = ACTIONS(5040),
    [sym_double] = ACTIONS(5040),
    [sym_real] = ACTIONS(5040),
    [sym_ifloat] = ACTIONS(5040),
    [sym_idouble] = ACTIONS(5040),
    [sym_ireal] = ACTIONS(5040),
    [sym_cfloat] = ACTIONS(5040),
    [sym_cdouble] = ACTIONS(5040),
    [sym_creal] = ACTIONS(5040),
    [sym_size_t] = ACTIONS(5040),
    [sym_ptrdiff_t] = ACTIONS(5040),
    [sym_string] = ACTIONS(5040),
    [sym_cstring] = ACTIONS(5040),
    [sym_dstring] = ACTIONS(5040),
    [sym_wstring] = ACTIONS(5040),
    [sym_noreturn] = ACTIONS(5040),
    [sym_true] = ACTIONS(5040),
    [sym_false] = ACTIONS(5040),
    [sym_null] = ACTIONS(5040),
    [sym_super] = ACTIONS(5040),
    [sym_this] = ACTIONS(5040),
    [sym_assert] = ACTIONS(5040),
    [sym_auto] = ACTIONS(5040),
    [sym_cast] = ACTIONS(5040),
    [sym_catch] = ACTIONS(5040),
    [sym_const] = ACTIONS(5040),
    [sym_delegate] = ACTIONS(5040),
    [sym_delete] = ACTIONS(5040),
    [sym_do] = ACTIONS(5040),
    [sym_else] = ACTIONS(5040),
    [sym_finally] = ACTIONS(5040),
    [sym_function] = ACTIONS(5040),
    [sym_immutable] = ACTIONS(5040),
    [sym_import] = ACTIONS(5040),
    [sym_in] = ACTIONS(5040),
    [sym_inout] = ACTIONS(5040),
    [sym_is] = ACTIONS(5040),
    [sym_mixin] = ACTIONS(5040),
    [sym_new] = ACTIONS(5040),
    [sym_out] = ACTIONS(5040),
    [sym_ref] = ACTIONS(5040),
    [sym_shared] = ACTIONS(5040),
    [sym_throw] = ACTIONS(5040),
    [sym_typeid] = ACTIONS(5040),
    [sym_typeof] = ACTIONS(5040),
    [sym_traits] = ACTIONS(5040),
    [sym_vector] = ACTIONS(5040),
    [sym_void] = ACTIONS(5040),
    [anon_sym_BQUOTE] = ACTIONS(5042),
    [anon_sym_r_DQUOTE] = ACTIONS(5042),
    [anon_sym_x_DQUOTE] = ACTIONS(5042),
    [anon_sym_DQUOTE] = ACTIONS(5042),
    [anon_sym_i_BQUOTE] = ACTIONS(5042),
    [anon_sym_i_DQUOTE] = ACTIONS(5042),
    [anon_sym_iq_LBRACE] = ACTIONS(5042),
    [aux_sym_char_literal_token1] = ACTIONS(5042),
    [anon_sym_SQUOTE] = ACTIONS(5040),
    [anon_sym___DATE__] = ACTIONS(5040),
    [anon_sym___FILE__] = ACTIONS(5040),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5040),
    [anon_sym___FUNCTION__] = ACTIONS(5040),
    [anon_sym___LINE__] = ACTIONS(5040),
    [anon_sym___MODULE__] = ACTIONS(5040),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5040),
    [anon_sym___TIME__] = ACTIONS(5040),
    [anon_sym___TIMESTAMP__] = ACTIONS(5040),
    [anon_sym___VENDOR__] = ACTIONS(5040),
    [anon_sym___VERSION__] = ACTIONS(5040),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5042),
    [sym_float_literal] = ACTIONS(5042),
    [sym__string] = ACTIONS(5042),
  },
  [2349] = {
    [sym_identifier] = ACTIONS(4480),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4482),
    [anon_sym_LBRACE] = ACTIONS(4482),
    [anon_sym_DOT] = ACTIONS(4482),
    [anon_sym_AMP] = ACTIONS(4482),
    [anon_sym_DASH] = ACTIONS(4480),
    [anon_sym_DASH_DASH] = ACTIONS(4482),
    [anon_sym_PLUS] = ACTIONS(4480),
    [anon_sym_PLUS_PLUS] = ACTIONS(4482),
    [anon_sym_BANG] = ACTIONS(4482),
    [anon_sym_LPAREN] = ACTIONS(4482),
    [anon_sym_RPAREN] = ACTIONS(4482),
    [anon_sym_LBRACK] = ACTIONS(4482),
    [anon_sym_SEMI] = ACTIONS(4482),
    [anon_sym_DOLLAR] = ACTIONS(4482),
    [anon_sym_STAR] = ACTIONS(4482),
    [anon_sym_TILDE] = ACTIONS(4482),
    [sym_bool] = ACTIONS(4480),
    [sym_byte] = ACTIONS(4480),
    [sym_ubyte] = ACTIONS(4480),
    [sym_char] = ACTIONS(4480),
    [sym_short] = ACTIONS(4480),
    [sym_ushort] = ACTIONS(4480),
    [sym_int] = ACTIONS(4480),
    [sym_uint] = ACTIONS(4480),
    [sym_long] = ACTIONS(4480),
    [sym_ulong] = ACTIONS(4480),
    [sym_cent] = ACTIONS(4480),
    [sym_ucent] = ACTIONS(4480),
    [sym_wchar] = ACTIONS(4480),
    [sym_dchar] = ACTIONS(4480),
    [sym_float] = ACTIONS(4480),
    [sym_double] = ACTIONS(4480),
    [sym_real] = ACTIONS(4480),
    [sym_ifloat] = ACTIONS(4480),
    [sym_idouble] = ACTIONS(4480),
    [sym_ireal] = ACTIONS(4480),
    [sym_cfloat] = ACTIONS(4480),
    [sym_cdouble] = ACTIONS(4480),
    [sym_creal] = ACTIONS(4480),
    [sym_size_t] = ACTIONS(4480),
    [sym_ptrdiff_t] = ACTIONS(4480),
    [sym_string] = ACTIONS(4480),
    [sym_cstring] = ACTIONS(4480),
    [sym_dstring] = ACTIONS(4480),
    [sym_wstring] = ACTIONS(4480),
    [sym_noreturn] = ACTIONS(4480),
    [sym_true] = ACTIONS(4480),
    [sym_false] = ACTIONS(4480),
    [sym_null] = ACTIONS(4480),
    [sym_super] = ACTIONS(4480),
    [sym_this] = ACTIONS(4480),
    [sym_assert] = ACTIONS(4480),
    [sym_auto] = ACTIONS(4480),
    [sym_cast] = ACTIONS(4480),
    [sym_catch] = ACTIONS(4480),
    [sym_const] = ACTIONS(4480),
    [sym_delegate] = ACTIONS(4480),
    [sym_delete] = ACTIONS(4480),
    [sym_do] = ACTIONS(4480),
    [sym_else] = ACTIONS(4480),
    [sym_finally] = ACTIONS(4480),
    [sym_function] = ACTIONS(4480),
    [sym_immutable] = ACTIONS(4480),
    [sym_import] = ACTIONS(4480),
    [sym_in] = ACTIONS(4480),
    [sym_inout] = ACTIONS(4480),
    [sym_is] = ACTIONS(4480),
    [sym_mixin] = ACTIONS(4480),
    [sym_new] = ACTIONS(4480),
    [sym_out] = ACTIONS(4480),
    [sym_ref] = ACTIONS(4480),
    [sym_shared] = ACTIONS(4480),
    [sym_throw] = ACTIONS(4480),
    [sym_typeid] = ACTIONS(4480),
    [sym_typeof] = ACTIONS(4480),
    [sym_traits] = ACTIONS(4480),
    [sym_vector] = ACTIONS(4480),
    [sym_void] = ACTIONS(4480),
    [anon_sym_BQUOTE] = ACTIONS(4482),
    [anon_sym_r_DQUOTE] = ACTIONS(4482),
    [anon_sym_x_DQUOTE] = ACTIONS(4482),
    [anon_sym_DQUOTE] = ACTIONS(4482),
    [anon_sym_i_BQUOTE] = ACTIONS(4482),
    [anon_sym_i_DQUOTE] = ACTIONS(4482),
    [anon_sym_iq_LBRACE] = ACTIONS(4482),
    [aux_sym_char_literal_token1] = ACTIONS(4482),
    [anon_sym_SQUOTE] = ACTIONS(4480),
    [anon_sym___DATE__] = ACTIONS(4480),
    [anon_sym___FILE__] = ACTIONS(4480),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4480),
    [anon_sym___FUNCTION__] = ACTIONS(4480),
    [anon_sym___LINE__] = ACTIONS(4480),
    [anon_sym___MODULE__] = ACTIONS(4480),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4480),
    [anon_sym___TIME__] = ACTIONS(4480),
    [anon_sym___TIMESTAMP__] = ACTIONS(4480),
    [anon_sym___VENDOR__] = ACTIONS(4480),
    [anon_sym___VERSION__] = ACTIONS(4480),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4482),
    [sym_float_literal] = ACTIONS(4482),
    [sym__string] = ACTIONS(4482),
  },
  [2350] = {
    [sym_identifier] = ACTIONS(5044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5046),
    [anon_sym_LBRACE] = ACTIONS(5046),
    [anon_sym_DOT] = ACTIONS(5046),
    [anon_sym_AMP] = ACTIONS(5046),
    [anon_sym_DASH] = ACTIONS(5044),
    [anon_sym_DASH_DASH] = ACTIONS(5046),
    [anon_sym_PLUS] = ACTIONS(5044),
    [anon_sym_PLUS_PLUS] = ACTIONS(5046),
    [anon_sym_BANG] = ACTIONS(5046),
    [anon_sym_LPAREN] = ACTIONS(5046),
    [anon_sym_RPAREN] = ACTIONS(5046),
    [anon_sym_LBRACK] = ACTIONS(5046),
    [anon_sym_SEMI] = ACTIONS(5046),
    [anon_sym_DOLLAR] = ACTIONS(5046),
    [anon_sym_STAR] = ACTIONS(5046),
    [anon_sym_TILDE] = ACTIONS(5046),
    [sym_bool] = ACTIONS(5044),
    [sym_byte] = ACTIONS(5044),
    [sym_ubyte] = ACTIONS(5044),
    [sym_char] = ACTIONS(5044),
    [sym_short] = ACTIONS(5044),
    [sym_ushort] = ACTIONS(5044),
    [sym_int] = ACTIONS(5044),
    [sym_uint] = ACTIONS(5044),
    [sym_long] = ACTIONS(5044),
    [sym_ulong] = ACTIONS(5044),
    [sym_cent] = ACTIONS(5044),
    [sym_ucent] = ACTIONS(5044),
    [sym_wchar] = ACTIONS(5044),
    [sym_dchar] = ACTIONS(5044),
    [sym_float] = ACTIONS(5044),
    [sym_double] = ACTIONS(5044),
    [sym_real] = ACTIONS(5044),
    [sym_ifloat] = ACTIONS(5044),
    [sym_idouble] = ACTIONS(5044),
    [sym_ireal] = ACTIONS(5044),
    [sym_cfloat] = ACTIONS(5044),
    [sym_cdouble] = ACTIONS(5044),
    [sym_creal] = ACTIONS(5044),
    [sym_size_t] = ACTIONS(5044),
    [sym_ptrdiff_t] = ACTIONS(5044),
    [sym_string] = ACTIONS(5044),
    [sym_cstring] = ACTIONS(5044),
    [sym_dstring] = ACTIONS(5044),
    [sym_wstring] = ACTIONS(5044),
    [sym_noreturn] = ACTIONS(5044),
    [sym_true] = ACTIONS(5044),
    [sym_false] = ACTIONS(5044),
    [sym_null] = ACTIONS(5044),
    [sym_super] = ACTIONS(5044),
    [sym_this] = ACTIONS(5044),
    [sym_assert] = ACTIONS(5044),
    [sym_auto] = ACTIONS(5044),
    [sym_cast] = ACTIONS(5044),
    [sym_catch] = ACTIONS(5044),
    [sym_const] = ACTIONS(5044),
    [sym_delegate] = ACTIONS(5044),
    [sym_delete] = ACTIONS(5044),
    [sym_do] = ACTIONS(5044),
    [sym_else] = ACTIONS(5044),
    [sym_finally] = ACTIONS(5044),
    [sym_function] = ACTIONS(5044),
    [sym_immutable] = ACTIONS(5044),
    [sym_import] = ACTIONS(5044),
    [sym_in] = ACTIONS(5044),
    [sym_inout] = ACTIONS(5044),
    [sym_is] = ACTIONS(5044),
    [sym_mixin] = ACTIONS(5044),
    [sym_new] = ACTIONS(5044),
    [sym_out] = ACTIONS(5044),
    [sym_ref] = ACTIONS(5044),
    [sym_shared] = ACTIONS(5044),
    [sym_throw] = ACTIONS(5044),
    [sym_typeid] = ACTIONS(5044),
    [sym_typeof] = ACTIONS(5044),
    [sym_traits] = ACTIONS(5044),
    [sym_vector] = ACTIONS(5044),
    [sym_void] = ACTIONS(5044),
    [anon_sym_BQUOTE] = ACTIONS(5046),
    [anon_sym_r_DQUOTE] = ACTIONS(5046),
    [anon_sym_x_DQUOTE] = ACTIONS(5046),
    [anon_sym_DQUOTE] = ACTIONS(5046),
    [anon_sym_i_BQUOTE] = ACTIONS(5046),
    [anon_sym_i_DQUOTE] = ACTIONS(5046),
    [anon_sym_iq_LBRACE] = ACTIONS(5046),
    [aux_sym_char_literal_token1] = ACTIONS(5046),
    [anon_sym_SQUOTE] = ACTIONS(5044),
    [anon_sym___DATE__] = ACTIONS(5044),
    [anon_sym___FILE__] = ACTIONS(5044),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5044),
    [anon_sym___FUNCTION__] = ACTIONS(5044),
    [anon_sym___LINE__] = ACTIONS(5044),
    [anon_sym___MODULE__] = ACTIONS(5044),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5044),
    [anon_sym___TIME__] = ACTIONS(5044),
    [anon_sym___TIMESTAMP__] = ACTIONS(5044),
    [anon_sym___VENDOR__] = ACTIONS(5044),
    [anon_sym___VERSION__] = ACTIONS(5044),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5046),
    [sym_float_literal] = ACTIONS(5046),
    [sym__string] = ACTIONS(5046),
  },
  [2351] = {
    [sym_identifier] = ACTIONS(5056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(5058),
    [anon_sym_LBRACE] = ACTIONS(5058),
    [anon_sym_DOT] = ACTIONS(5058),
    [anon_sym_AMP] = ACTIONS(5058),
    [anon_sym_DASH] = ACTIONS(5056),
    [anon_sym_DASH_DASH] = ACTIONS(5058),
    [anon_sym_PLUS] = ACTIONS(5056),
    [anon_sym_PLUS_PLUS] = ACTIONS(5058),
    [anon_sym_BANG] = ACTIONS(5058),
    [anon_sym_LPAREN] = ACTIONS(5058),
    [anon_sym_RPAREN] = ACTIONS(5058),
    [anon_sym_LBRACK] = ACTIONS(5058),
    [anon_sym_SEMI] = ACTIONS(5058),
    [anon_sym_DOLLAR] = ACTIONS(5058),
    [anon_sym_STAR] = ACTIONS(5058),
    [anon_sym_TILDE] = ACTIONS(5058),
    [sym_bool] = ACTIONS(5056),
    [sym_byte] = ACTIONS(5056),
    [sym_ubyte] = ACTIONS(5056),
    [sym_char] = ACTIONS(5056),
    [sym_short] = ACTIONS(5056),
    [sym_ushort] = ACTIONS(5056),
    [sym_int] = ACTIONS(5056),
    [sym_uint] = ACTIONS(5056),
    [sym_long] = ACTIONS(5056),
    [sym_ulong] = ACTIONS(5056),
    [sym_cent] = ACTIONS(5056),
    [sym_ucent] = ACTIONS(5056),
    [sym_wchar] = ACTIONS(5056),
    [sym_dchar] = ACTIONS(5056),
    [sym_float] = ACTIONS(5056),
    [sym_double] = ACTIONS(5056),
    [sym_real] = ACTIONS(5056),
    [sym_ifloat] = ACTIONS(5056),
    [sym_idouble] = ACTIONS(5056),
    [sym_ireal] = ACTIONS(5056),
    [sym_cfloat] = ACTIONS(5056),
    [sym_cdouble] = ACTIONS(5056),
    [sym_creal] = ACTIONS(5056),
    [sym_size_t] = ACTIONS(5056),
    [sym_ptrdiff_t] = ACTIONS(5056),
    [sym_string] = ACTIONS(5056),
    [sym_cstring] = ACTIONS(5056),
    [sym_dstring] = ACTIONS(5056),
    [sym_wstring] = ACTIONS(5056),
    [sym_noreturn] = ACTIONS(5056),
    [sym_true] = ACTIONS(5056),
    [sym_false] = ACTIONS(5056),
    [sym_null] = ACTIONS(5056),
    [sym_super] = ACTIONS(5056),
    [sym_this] = ACTIONS(5056),
    [sym_assert] = ACTIONS(5056),
    [sym_auto] = ACTIONS(5056),
    [sym_cast] = ACTIONS(5056),
    [sym_catch] = ACTIONS(5056),
    [sym_const] = ACTIONS(5056),
    [sym_delegate] = ACTIONS(5056),
    [sym_delete] = ACTIONS(5056),
    [sym_do] = ACTIONS(5056),
    [sym_else] = ACTIONS(5056),
    [sym_finally] = ACTIONS(5056),
    [sym_function] = ACTIONS(5056),
    [sym_immutable] = ACTIONS(5056),
    [sym_import] = ACTIONS(5056),
    [sym_in] = ACTIONS(5056),
    [sym_inout] = ACTIONS(5056),
    [sym_is] = ACTIONS(5056),
    [sym_mixin] = ACTIONS(5056),
    [sym_new] = ACTIONS(5056),
    [sym_out] = ACTIONS(5056),
    [sym_ref] = ACTIONS(5056),
    [sym_shared] = ACTIONS(5056),
    [sym_throw] = ACTIONS(5056),
    [sym_typeid] = ACTIONS(5056),
    [sym_typeof] = ACTIONS(5056),
    [sym_traits] = ACTIONS(5056),
    [sym_vector] = ACTIONS(5056),
    [sym_void] = ACTIONS(5056),
    [anon_sym_BQUOTE] = ACTIONS(5058),
    [anon_sym_r_DQUOTE] = ACTIONS(5058),
    [anon_sym_x_DQUOTE] = ACTIONS(5058),
    [anon_sym_DQUOTE] = ACTIONS(5058),
    [anon_sym_i_BQUOTE] = ACTIONS(5058),
    [anon_sym_i_DQUOTE] = ACTIONS(5058),
    [anon_sym_iq_LBRACE] = ACTIONS(5058),
    [aux_sym_char_literal_token1] = ACTIONS(5058),
    [anon_sym_SQUOTE] = ACTIONS(5056),
    [anon_sym___DATE__] = ACTIONS(5056),
    [anon_sym___FILE__] = ACTIONS(5056),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(5056),
    [anon_sym___FUNCTION__] = ACTIONS(5056),
    [anon_sym___LINE__] = ACTIONS(5056),
    [anon_sym___MODULE__] = ACTIONS(5056),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(5056),
    [anon_sym___TIME__] = ACTIONS(5056),
    [anon_sym___TIMESTAMP__] = ACTIONS(5056),
    [anon_sym___VENDOR__] = ACTIONS(5056),
    [anon_sym___VERSION__] = ACTIONS(5056),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(5058),
    [sym_float_literal] = ACTIONS(5058),
    [sym__string] = ACTIONS(5058),
  },
  [2352] = {
    [sym_identifier] = ACTIONS(4566),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4568),
    [anon_sym_LBRACE] = ACTIONS(4568),
    [anon_sym_DOT] = ACTIONS(4568),
    [anon_sym_AMP] = ACTIONS(4568),
    [anon_sym_DASH] = ACTIONS(4566),
    [anon_sym_DASH_DASH] = ACTIONS(4568),
    [anon_sym_PLUS] = ACTIONS(4566),
    [anon_sym_PLUS_PLUS] = ACTIONS(4568),
    [anon_sym_BANG] = ACTIONS(4568),
    [anon_sym_LPAREN] = ACTIONS(4568),
    [anon_sym_RPAREN] = ACTIONS(4568),
    [anon_sym_LBRACK] = ACTIONS(4568),
    [anon_sym_SEMI] = ACTIONS(4568),
    [anon_sym_DOLLAR] = ACTIONS(4568),
    [anon_sym_STAR] = ACTIONS(4568),
    [anon_sym_TILDE] = ACTIONS(4568),
    [sym_bool] = ACTIONS(4566),
    [sym_byte] = ACTIONS(4566),
    [sym_ubyte] = ACTIONS(4566),
    [sym_char] = ACTIONS(4566),
    [sym_short] = ACTIONS(4566),
    [sym_ushort] = ACTIONS(4566),
    [sym_int] = ACTIONS(4566),
    [sym_uint] = ACTIONS(4566),
    [sym_long] = ACTIONS(4566),
    [sym_ulong] = ACTIONS(4566),
    [sym_cent] = ACTIONS(4566),
    [sym_ucent] = ACTIONS(4566),
    [sym_wchar] = ACTIONS(4566),
    [sym_dchar] = ACTIONS(4566),
    [sym_float] = ACTIONS(4566),
    [sym_double] = ACTIONS(4566),
    [sym_real] = ACTIONS(4566),
    [sym_ifloat] = ACTIONS(4566),
    [sym_idouble] = ACTIONS(4566),
    [sym_ireal] = ACTIONS(4566),
    [sym_cfloat] = ACTIONS(4566),
    [sym_cdouble] = ACTIONS(4566),
    [sym_creal] = ACTIONS(4566),
    [sym_size_t] = ACTIONS(4566),
    [sym_ptrdiff_t] = ACTIONS(4566),
    [sym_string] = ACTIONS(4566),
    [sym_cstring] = ACTIONS(4566),
    [sym_dstring] = ACTIONS(4566),
    [sym_wstring] = ACTIONS(4566),
    [sym_noreturn] = ACTIONS(4566),
    [sym_true] = ACTIONS(4566),
    [sym_false] = ACTIONS(4566),
    [sym_null] = ACTIONS(4566),
    [sym_super] = ACTIONS(4566),
    [sym_this] = ACTIONS(4566),
    [sym_assert] = ACTIONS(4566),
    [sym_auto] = ACTIONS(4566),
    [sym_cast] = ACTIONS(4566),
    [sym_catch] = ACTIONS(4566),
    [sym_const] = ACTIONS(4566),
    [sym_delegate] = ACTIONS(4566),
    [sym_delete] = ACTIONS(4566),
    [sym_do] = ACTIONS(4566),
    [sym_else] = ACTIONS(4566),
    [sym_finally] = ACTIONS(4566),
    [sym_function] = ACTIONS(4566),
    [sym_immutable] = ACTIONS(4566),
    [sym_import] = ACTIONS(4566),
    [sym_in] = ACTIONS(4566),
    [sym_inout] = ACTIONS(4566),
    [sym_is] = ACTIONS(4566),
    [sym_mixin] = ACTIONS(4566),
    [sym_new] = ACTIONS(4566),
    [sym_out] = ACTIONS(4566),
    [sym_ref] = ACTIONS(4566),
    [sym_shared] = ACTIONS(4566),
    [sym_throw] = ACTIONS(4566),
    [sym_typeid] = ACTIONS(4566),
    [sym_typeof] = ACTIONS(4566),
    [sym_traits] = ACTIONS(4566),
    [sym_vector] = ACTIONS(4566),
    [sym_void] = ACTIONS(4566),
    [anon_sym_BQUOTE] = ACTIONS(4568),
    [anon_sym_r_DQUOTE] = ACTIONS(4568),
    [anon_sym_x_DQUOTE] = ACTIONS(4568),
    [anon_sym_DQUOTE] = ACTIONS(4568),
    [anon_sym_i_BQUOTE] = ACTIONS(4568),
    [anon_sym_i_DQUOTE] = ACTIONS(4568),
    [anon_sym_iq_LBRACE] = ACTIONS(4568),
    [aux_sym_char_literal_token1] = ACTIONS(4568),
    [anon_sym_SQUOTE] = ACTIONS(4566),
    [anon_sym___DATE__] = ACTIONS(4566),
    [anon_sym___FILE__] = ACTIONS(4566),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4566),
    [anon_sym___FUNCTION__] = ACTIONS(4566),
    [anon_sym___LINE__] = ACTIONS(4566),
    [anon_sym___MODULE__] = ACTIONS(4566),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4566),
    [anon_sym___TIME__] = ACTIONS(4566),
    [anon_sym___TIMESTAMP__] = ACTIONS(4566),
    [anon_sym___VENDOR__] = ACTIONS(4566),
    [anon_sym___VERSION__] = ACTIONS(4566),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4568),
    [sym_float_literal] = ACTIONS(4568),
    [sym__string] = ACTIONS(4568),
  },
  [2353] = {
    [sym_identifier] = ACTIONS(4578),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4580),
    [anon_sym_LBRACE] = ACTIONS(4580),
    [anon_sym_DOT] = ACTIONS(4580),
    [anon_sym_AMP] = ACTIONS(4580),
    [anon_sym_DASH] = ACTIONS(4578),
    [anon_sym_DASH_DASH] = ACTIONS(4580),
    [anon_sym_PLUS] = ACTIONS(4578),
    [anon_sym_PLUS_PLUS] = ACTIONS(4580),
    [anon_sym_BANG] = ACTIONS(4580),
    [anon_sym_LPAREN] = ACTIONS(4580),
    [anon_sym_RPAREN] = ACTIONS(4580),
    [anon_sym_LBRACK] = ACTIONS(4580),
    [anon_sym_SEMI] = ACTIONS(4580),
    [anon_sym_DOLLAR] = ACTIONS(4580),
    [anon_sym_STAR] = ACTIONS(4580),
    [anon_sym_TILDE] = ACTIONS(4580),
    [sym_bool] = ACTIONS(4578),
    [sym_byte] = ACTIONS(4578),
    [sym_ubyte] = ACTIONS(4578),
    [sym_char] = ACTIONS(4578),
    [sym_short] = ACTIONS(4578),
    [sym_ushort] = ACTIONS(4578),
    [sym_int] = ACTIONS(4578),
    [sym_uint] = ACTIONS(4578),
    [sym_long] = ACTIONS(4578),
    [sym_ulong] = ACTIONS(4578),
    [sym_cent] = ACTIONS(4578),
    [sym_ucent] = ACTIONS(4578),
    [sym_wchar] = ACTIONS(4578),
    [sym_dchar] = ACTIONS(4578),
    [sym_float] = ACTIONS(4578),
    [sym_double] = ACTIONS(4578),
    [sym_real] = ACTIONS(4578),
    [sym_ifloat] = ACTIONS(4578),
    [sym_idouble] = ACTIONS(4578),
    [sym_ireal] = ACTIONS(4578),
    [sym_cfloat] = ACTIONS(4578),
    [sym_cdouble] = ACTIONS(4578),
    [sym_creal] = ACTIONS(4578),
    [sym_size_t] = ACTIONS(4578),
    [sym_ptrdiff_t] = ACTIONS(4578),
    [sym_string] = ACTIONS(4578),
    [sym_cstring] = ACTIONS(4578),
    [sym_dstring] = ACTIONS(4578),
    [sym_wstring] = ACTIONS(4578),
    [sym_noreturn] = ACTIONS(4578),
    [sym_true] = ACTIONS(4578),
    [sym_false] = ACTIONS(4578),
    [sym_null] = ACTIONS(4578),
    [sym_super] = ACTIONS(4578),
    [sym_this] = ACTIONS(4578),
    [sym_assert] = ACTIONS(4578),
    [sym_auto] = ACTIONS(4578),
    [sym_cast] = ACTIONS(4578),
    [sym_catch] = ACTIONS(4578),
    [sym_const] = ACTIONS(4578),
    [sym_delegate] = ACTIONS(4578),
    [sym_delete] = ACTIONS(4578),
    [sym_do] = ACTIONS(4578),
    [sym_else] = ACTIONS(4578),
    [sym_finally] = ACTIONS(4578),
    [sym_function] = ACTIONS(4578),
    [sym_immutable] = ACTIONS(4578),
    [sym_import] = ACTIONS(4578),
    [sym_in] = ACTIONS(4578),
    [sym_inout] = ACTIONS(4578),
    [sym_is] = ACTIONS(4578),
    [sym_mixin] = ACTIONS(4578),
    [sym_new] = ACTIONS(4578),
    [sym_out] = ACTIONS(4578),
    [sym_ref] = ACTIONS(4578),
    [sym_shared] = ACTIONS(4578),
    [sym_throw] = ACTIONS(4578),
    [sym_typeid] = ACTIONS(4578),
    [sym_typeof] = ACTIONS(4578),
    [sym_traits] = ACTIONS(4578),
    [sym_vector] = ACTIONS(4578),
    [sym_void] = ACTIONS(4578),
    [anon_sym_BQUOTE] = ACTIONS(4580),
    [anon_sym_r_DQUOTE] = ACTIONS(4580),
    [anon_sym_x_DQUOTE] = ACTIONS(4580),
    [anon_sym_DQUOTE] = ACTIONS(4580),
    [anon_sym_i_BQUOTE] = ACTIONS(4580),
    [anon_sym_i_DQUOTE] = ACTIONS(4580),
    [anon_sym_iq_LBRACE] = ACTIONS(4580),
    [aux_sym_char_literal_token1] = ACTIONS(4580),
    [anon_sym_SQUOTE] = ACTIONS(4578),
    [anon_sym___DATE__] = ACTIONS(4578),
    [anon_sym___FILE__] = ACTIONS(4578),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4578),
    [anon_sym___FUNCTION__] = ACTIONS(4578),
    [anon_sym___LINE__] = ACTIONS(4578),
    [anon_sym___MODULE__] = ACTIONS(4578),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4578),
    [anon_sym___TIME__] = ACTIONS(4578),
    [anon_sym___TIMESTAMP__] = ACTIONS(4578),
    [anon_sym___VENDOR__] = ACTIONS(4578),
    [anon_sym___VERSION__] = ACTIONS(4578),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4580),
    [sym_float_literal] = ACTIONS(4580),
    [sym__string] = ACTIONS(4580),
  },
  [2354] = {
    [sym_identifier] = ACTIONS(4860),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4862),
    [anon_sym_LBRACE] = ACTIONS(4862),
    [anon_sym_DOT] = ACTIONS(4862),
    [anon_sym_AMP] = ACTIONS(4862),
    [anon_sym_DASH] = ACTIONS(4860),
    [anon_sym_DASH_DASH] = ACTIONS(4862),
    [anon_sym_PLUS] = ACTIONS(4860),
    [anon_sym_PLUS_PLUS] = ACTIONS(4862),
    [anon_sym_BANG] = ACTIONS(4862),
    [anon_sym_LPAREN] = ACTIONS(4862),
    [anon_sym_RPAREN] = ACTIONS(4862),
    [anon_sym_LBRACK] = ACTIONS(4862),
    [anon_sym_SEMI] = ACTIONS(4862),
    [anon_sym_DOLLAR] = ACTIONS(4862),
    [anon_sym_STAR] = ACTIONS(4862),
    [anon_sym_TILDE] = ACTIONS(4862),
    [sym_bool] = ACTIONS(4860),
    [sym_byte] = ACTIONS(4860),
    [sym_ubyte] = ACTIONS(4860),
    [sym_char] = ACTIONS(4860),
    [sym_short] = ACTIONS(4860),
    [sym_ushort] = ACTIONS(4860),
    [sym_int] = ACTIONS(4860),
    [sym_uint] = ACTIONS(4860),
    [sym_long] = ACTIONS(4860),
    [sym_ulong] = ACTIONS(4860),
    [sym_cent] = ACTIONS(4860),
    [sym_ucent] = ACTIONS(4860),
    [sym_wchar] = ACTIONS(4860),
    [sym_dchar] = ACTIONS(4860),
    [sym_float] = ACTIONS(4860),
    [sym_double] = ACTIONS(4860),
    [sym_real] = ACTIONS(4860),
    [sym_ifloat] = ACTIONS(4860),
    [sym_idouble] = ACTIONS(4860),
    [sym_ireal] = ACTIONS(4860),
    [sym_cfloat] = ACTIONS(4860),
    [sym_cdouble] = ACTIONS(4860),
    [sym_creal] = ACTIONS(4860),
    [sym_size_t] = ACTIONS(4860),
    [sym_ptrdiff_t] = ACTIONS(4860),
    [sym_string] = ACTIONS(4860),
    [sym_cstring] = ACTIONS(4860),
    [sym_dstring] = ACTIONS(4860),
    [sym_wstring] = ACTIONS(4860),
    [sym_noreturn] = ACTIONS(4860),
    [sym_true] = ACTIONS(4860),
    [sym_false] = ACTIONS(4860),
    [sym_null] = ACTIONS(4860),
    [sym_super] = ACTIONS(4860),
    [sym_this] = ACTIONS(4860),
    [sym_assert] = ACTIONS(4860),
    [sym_auto] = ACTIONS(4860),
    [sym_cast] = ACTIONS(4860),
    [sym_catch] = ACTIONS(4860),
    [sym_const] = ACTIONS(4860),
    [sym_delegate] = ACTIONS(4860),
    [sym_delete] = ACTIONS(4860),
    [sym_do] = ACTIONS(4860),
    [sym_else] = ACTIONS(4860),
    [sym_finally] = ACTIONS(4860),
    [sym_function] = ACTIONS(4860),
    [sym_immutable] = ACTIONS(4860),
    [sym_import] = ACTIONS(4860),
    [sym_in] = ACTIONS(4860),
    [sym_inout] = ACTIONS(4860),
    [sym_is] = ACTIONS(4860),
    [sym_mixin] = ACTIONS(4860),
    [sym_new] = ACTIONS(4860),
    [sym_out] = ACTIONS(4860),
    [sym_ref] = ACTIONS(4860),
    [sym_shared] = ACTIONS(4860),
    [sym_throw] = ACTIONS(4860),
    [sym_typeid] = ACTIONS(4860),
    [sym_typeof] = ACTIONS(4860),
    [sym_traits] = ACTIONS(4860),
    [sym_vector] = ACTIONS(4860),
    [sym_void] = ACTIONS(4860),
    [anon_sym_BQUOTE] = ACTIONS(4862),
    [anon_sym_r_DQUOTE] = ACTIONS(4862),
    [anon_sym_x_DQUOTE] = ACTIONS(4862),
    [anon_sym_DQUOTE] = ACTIONS(4862),
    [anon_sym_i_BQUOTE] = ACTIONS(4862),
    [anon_sym_i_DQUOTE] = ACTIONS(4862),
    [anon_sym_iq_LBRACE] = ACTIONS(4862),
    [aux_sym_char_literal_token1] = ACTIONS(4862),
    [anon_sym_SQUOTE] = ACTIONS(4860),
    [anon_sym___DATE__] = ACTIONS(4860),
    [anon_sym___FILE__] = ACTIONS(4860),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4860),
    [anon_sym___FUNCTION__] = ACTIONS(4860),
    [anon_sym___LINE__] = ACTIONS(4860),
    [anon_sym___MODULE__] = ACTIONS(4860),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4860),
    [anon_sym___TIME__] = ACTIONS(4860),
    [anon_sym___TIMESTAMP__] = ACTIONS(4860),
    [anon_sym___VENDOR__] = ACTIONS(4860),
    [anon_sym___VERSION__] = ACTIONS(4860),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4862),
    [sym_float_literal] = ACTIONS(4862),
    [sym__string] = ACTIONS(4862),
  },
  [2355] = {
    [sym_identifier] = ACTIONS(4558),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4560),
    [anon_sym_LBRACE] = ACTIONS(4560),
    [anon_sym_DOT] = ACTIONS(4560),
    [anon_sym_AMP] = ACTIONS(4560),
    [anon_sym_DASH] = ACTIONS(4558),
    [anon_sym_DASH_DASH] = ACTIONS(4560),
    [anon_sym_PLUS] = ACTIONS(4558),
    [anon_sym_PLUS_PLUS] = ACTIONS(4560),
    [anon_sym_BANG] = ACTIONS(4560),
    [anon_sym_LPAREN] = ACTIONS(4560),
    [anon_sym_RPAREN] = ACTIONS(4560),
    [anon_sym_LBRACK] = ACTIONS(4560),
    [anon_sym_SEMI] = ACTIONS(4560),
    [anon_sym_DOLLAR] = ACTIONS(4560),
    [anon_sym_STAR] = ACTIONS(4560),
    [anon_sym_TILDE] = ACTIONS(4560),
    [sym_bool] = ACTIONS(4558),
    [sym_byte] = ACTIONS(4558),
    [sym_ubyte] = ACTIONS(4558),
    [sym_char] = ACTIONS(4558),
    [sym_short] = ACTIONS(4558),
    [sym_ushort] = ACTIONS(4558),
    [sym_int] = ACTIONS(4558),
    [sym_uint] = ACTIONS(4558),
    [sym_long] = ACTIONS(4558),
    [sym_ulong] = ACTIONS(4558),
    [sym_cent] = ACTIONS(4558),
    [sym_ucent] = ACTIONS(4558),
    [sym_wchar] = ACTIONS(4558),
    [sym_dchar] = ACTIONS(4558),
    [sym_float] = ACTIONS(4558),
    [sym_double] = ACTIONS(4558),
    [sym_real] = ACTIONS(4558),
    [sym_ifloat] = ACTIONS(4558),
    [sym_idouble] = ACTIONS(4558),
    [sym_ireal] = ACTIONS(4558),
    [sym_cfloat] = ACTIONS(4558),
    [sym_cdouble] = ACTIONS(4558),
    [sym_creal] = ACTIONS(4558),
    [sym_size_t] = ACTIONS(4558),
    [sym_ptrdiff_t] = ACTIONS(4558),
    [sym_string] = ACTIONS(4558),
    [sym_cstring] = ACTIONS(4558),
    [sym_dstring] = ACTIONS(4558),
    [sym_wstring] = ACTIONS(4558),
    [sym_noreturn] = ACTIONS(4558),
    [sym_true] = ACTIONS(4558),
    [sym_false] = ACTIONS(4558),
    [sym_null] = ACTIONS(4558),
    [sym_super] = ACTIONS(4558),
    [sym_this] = ACTIONS(4558),
    [sym_assert] = ACTIONS(4558),
    [sym_auto] = ACTIONS(4558),
    [sym_cast] = ACTIONS(4558),
    [sym_catch] = ACTIONS(4558),
    [sym_const] = ACTIONS(4558),
    [sym_delegate] = ACTIONS(4558),
    [sym_delete] = ACTIONS(4558),
    [sym_do] = ACTIONS(4558),
    [sym_else] = ACTIONS(4558),
    [sym_finally] = ACTIONS(4558),
    [sym_function] = ACTIONS(4558),
    [sym_immutable] = ACTIONS(4558),
    [sym_import] = ACTIONS(4558),
    [sym_in] = ACTIONS(4558),
    [sym_inout] = ACTIONS(4558),
    [sym_is] = ACTIONS(4558),
    [sym_mixin] = ACTIONS(4558),
    [sym_new] = ACTIONS(4558),
    [sym_out] = ACTIONS(4558),
    [sym_ref] = ACTIONS(4558),
    [sym_shared] = ACTIONS(4558),
    [sym_throw] = ACTIONS(4558),
    [sym_typeid] = ACTIONS(4558),
    [sym_typeof] = ACTIONS(4558),
    [sym_traits] = ACTIONS(4558),
    [sym_vector] = ACTIONS(4558),
    [sym_void] = ACTIONS(4558),
    [anon_sym_BQUOTE] = ACTIONS(4560),
    [anon_sym_r_DQUOTE] = ACTIONS(4560),
    [anon_sym_x_DQUOTE] = ACTIONS(4560),
    [anon_sym_DQUOTE] = ACTIONS(4560),
    [anon_sym_i_BQUOTE] = ACTIONS(4560),
    [anon_sym_i_DQUOTE] = ACTIONS(4560),
    [anon_sym_iq_LBRACE] = ACTIONS(4560),
    [aux_sym_char_literal_token1] = ACTIONS(4560),
    [anon_sym_SQUOTE] = ACTIONS(4558),
    [anon_sym___DATE__] = ACTIONS(4558),
    [anon_sym___FILE__] = ACTIONS(4558),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4558),
    [anon_sym___FUNCTION__] = ACTIONS(4558),
    [anon_sym___LINE__] = ACTIONS(4558),
    [anon_sym___MODULE__] = ACTIONS(4558),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4558),
    [anon_sym___TIME__] = ACTIONS(4558),
    [anon_sym___TIMESTAMP__] = ACTIONS(4558),
    [anon_sym___VENDOR__] = ACTIONS(4558),
    [anon_sym___VERSION__] = ACTIONS(4558),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4560),
    [sym_float_literal] = ACTIONS(4560),
    [sym__string] = ACTIONS(4560),
  },
  [2356] = {
    [sym_identifier] = ACTIONS(4852),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4854),
    [anon_sym_LBRACE] = ACTIONS(4854),
    [anon_sym_DOT] = ACTIONS(4854),
    [anon_sym_AMP] = ACTIONS(4854),
    [anon_sym_DASH] = ACTIONS(4852),
    [anon_sym_DASH_DASH] = ACTIONS(4854),
    [anon_sym_PLUS] = ACTIONS(4852),
    [anon_sym_PLUS_PLUS] = ACTIONS(4854),
    [anon_sym_BANG] = ACTIONS(4854),
    [anon_sym_LPAREN] = ACTIONS(4854),
    [anon_sym_RPAREN] = ACTIONS(4854),
    [anon_sym_LBRACK] = ACTIONS(4854),
    [anon_sym_SEMI] = ACTIONS(4854),
    [anon_sym_DOLLAR] = ACTIONS(4854),
    [anon_sym_STAR] = ACTIONS(4854),
    [anon_sym_TILDE] = ACTIONS(4854),
    [sym_bool] = ACTIONS(4852),
    [sym_byte] = ACTIONS(4852),
    [sym_ubyte] = ACTIONS(4852),
    [sym_char] = ACTIONS(4852),
    [sym_short] = ACTIONS(4852),
    [sym_ushort] = ACTIONS(4852),
    [sym_int] = ACTIONS(4852),
    [sym_uint] = ACTIONS(4852),
    [sym_long] = ACTIONS(4852),
    [sym_ulong] = ACTIONS(4852),
    [sym_cent] = ACTIONS(4852),
    [sym_ucent] = ACTIONS(4852),
    [sym_wchar] = ACTIONS(4852),
    [sym_dchar] = ACTIONS(4852),
    [sym_float] = ACTIONS(4852),
    [sym_double] = ACTIONS(4852),
    [sym_real] = ACTIONS(4852),
    [sym_ifloat] = ACTIONS(4852),
    [sym_idouble] = ACTIONS(4852),
    [sym_ireal] = ACTIONS(4852),
    [sym_cfloat] = ACTIONS(4852),
    [sym_cdouble] = ACTIONS(4852),
    [sym_creal] = ACTIONS(4852),
    [sym_size_t] = ACTIONS(4852),
    [sym_ptrdiff_t] = ACTIONS(4852),
    [sym_string] = ACTIONS(4852),
    [sym_cstring] = ACTIONS(4852),
    [sym_dstring] = ACTIONS(4852),
    [sym_wstring] = ACTIONS(4852),
    [sym_noreturn] = ACTIONS(4852),
    [sym_true] = ACTIONS(4852),
    [sym_false] = ACTIONS(4852),
    [sym_null] = ACTIONS(4852),
    [sym_super] = ACTIONS(4852),
    [sym_this] = ACTIONS(4852),
    [sym_assert] = ACTIONS(4852),
    [sym_auto] = ACTIONS(4852),
    [sym_cast] = ACTIONS(4852),
    [sym_catch] = ACTIONS(4852),
    [sym_const] = ACTIONS(4852),
    [sym_delegate] = ACTIONS(4852),
    [sym_delete] = ACTIONS(4852),
    [sym_do] = ACTIONS(4852),
    [sym_else] = ACTIONS(4852),
    [sym_finally] = ACTIONS(4852),
    [sym_function] = ACTIONS(4852),
    [sym_immutable] = ACTIONS(4852),
    [sym_import] = ACTIONS(4852),
    [sym_in] = ACTIONS(4852),
    [sym_inout] = ACTIONS(4852),
    [sym_is] = ACTIONS(4852),
    [sym_mixin] = ACTIONS(4852),
    [sym_new] = ACTIONS(4852),
    [sym_out] = ACTIONS(4852),
    [sym_ref] = ACTIONS(4852),
    [sym_shared] = ACTIONS(4852),
    [sym_throw] = ACTIONS(4852),
    [sym_typeid] = ACTIONS(4852),
    [sym_typeof] = ACTIONS(4852),
    [sym_traits] = ACTIONS(4852),
    [sym_vector] = ACTIONS(4852),
    [sym_void] = ACTIONS(4852),
    [anon_sym_BQUOTE] = ACTIONS(4854),
    [anon_sym_r_DQUOTE] = ACTIONS(4854),
    [anon_sym_x_DQUOTE] = ACTIONS(4854),
    [anon_sym_DQUOTE] = ACTIONS(4854),
    [anon_sym_i_BQUOTE] = ACTIONS(4854),
    [anon_sym_i_DQUOTE] = ACTIONS(4854),
    [anon_sym_iq_LBRACE] = ACTIONS(4854),
    [aux_sym_char_literal_token1] = ACTIONS(4854),
    [anon_sym_SQUOTE] = ACTIONS(4852),
    [anon_sym___DATE__] = ACTIONS(4852),
    [anon_sym___FILE__] = ACTIONS(4852),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4852),
    [anon_sym___FUNCTION__] = ACTIONS(4852),
    [anon_sym___LINE__] = ACTIONS(4852),
    [anon_sym___MODULE__] = ACTIONS(4852),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4852),
    [anon_sym___TIME__] = ACTIONS(4852),
    [anon_sym___TIMESTAMP__] = ACTIONS(4852),
    [anon_sym___VENDOR__] = ACTIONS(4852),
    [anon_sym___VERSION__] = ACTIONS(4852),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4854),
    [sym_float_literal] = ACTIONS(4854),
    [sym__string] = ACTIONS(4854),
  },
  [2357] = {
    [sym_identifier] = ACTIONS(4798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4800),
    [anon_sym_LBRACE] = ACTIONS(4800),
    [anon_sym_DOT] = ACTIONS(4800),
    [anon_sym_AMP] = ACTIONS(4800),
    [anon_sym_DASH] = ACTIONS(4798),
    [anon_sym_DASH_DASH] = ACTIONS(4800),
    [anon_sym_PLUS] = ACTIONS(4798),
    [anon_sym_PLUS_PLUS] = ACTIONS(4800),
    [anon_sym_BANG] = ACTIONS(4800),
    [anon_sym_LPAREN] = ACTIONS(4800),
    [anon_sym_RPAREN] = ACTIONS(4800),
    [anon_sym_LBRACK] = ACTIONS(4800),
    [anon_sym_SEMI] = ACTIONS(4800),
    [anon_sym_DOLLAR] = ACTIONS(4800),
    [anon_sym_STAR] = ACTIONS(4800),
    [anon_sym_TILDE] = ACTIONS(4800),
    [sym_bool] = ACTIONS(4798),
    [sym_byte] = ACTIONS(4798),
    [sym_ubyte] = ACTIONS(4798),
    [sym_char] = ACTIONS(4798),
    [sym_short] = ACTIONS(4798),
    [sym_ushort] = ACTIONS(4798),
    [sym_int] = ACTIONS(4798),
    [sym_uint] = ACTIONS(4798),
    [sym_long] = ACTIONS(4798),
    [sym_ulong] = ACTIONS(4798),
    [sym_cent] = ACTIONS(4798),
    [sym_ucent] = ACTIONS(4798),
    [sym_wchar] = ACTIONS(4798),
    [sym_dchar] = ACTIONS(4798),
    [sym_float] = ACTIONS(4798),
    [sym_double] = ACTIONS(4798),
    [sym_real] = ACTIONS(4798),
    [sym_ifloat] = ACTIONS(4798),
    [sym_idouble] = ACTIONS(4798),
    [sym_ireal] = ACTIONS(4798),
    [sym_cfloat] = ACTIONS(4798),
    [sym_cdouble] = ACTIONS(4798),
    [sym_creal] = ACTIONS(4798),
    [sym_size_t] = ACTIONS(4798),
    [sym_ptrdiff_t] = ACTIONS(4798),
    [sym_string] = ACTIONS(4798),
    [sym_cstring] = ACTIONS(4798),
    [sym_dstring] = ACTIONS(4798),
    [sym_wstring] = ACTIONS(4798),
    [sym_noreturn] = ACTIONS(4798),
    [sym_true] = ACTIONS(4798),
    [sym_false] = ACTIONS(4798),
    [sym_null] = ACTIONS(4798),
    [sym_super] = ACTIONS(4798),
    [sym_this] = ACTIONS(4798),
    [sym_assert] = ACTIONS(4798),
    [sym_auto] = ACTIONS(4798),
    [sym_cast] = ACTIONS(4798),
    [sym_catch] = ACTIONS(4798),
    [sym_const] = ACTIONS(4798),
    [sym_delegate] = ACTIONS(4798),
    [sym_delete] = ACTIONS(4798),
    [sym_do] = ACTIONS(4798),
    [sym_else] = ACTIONS(4798),
    [sym_finally] = ACTIONS(4798),
    [sym_function] = ACTIONS(4798),
    [sym_immutable] = ACTIONS(4798),
    [sym_import] = ACTIONS(4798),
    [sym_in] = ACTIONS(4798),
    [sym_inout] = ACTIONS(4798),
    [sym_is] = ACTIONS(4798),
    [sym_mixin] = ACTIONS(4798),
    [sym_new] = ACTIONS(4798),
    [sym_out] = ACTIONS(4798),
    [sym_ref] = ACTIONS(4798),
    [sym_shared] = ACTIONS(4798),
    [sym_throw] = ACTIONS(4798),
    [sym_typeid] = ACTIONS(4798),
    [sym_typeof] = ACTIONS(4798),
    [sym_traits] = ACTIONS(4798),
    [sym_vector] = ACTIONS(4798),
    [sym_void] = ACTIONS(4798),
    [anon_sym_BQUOTE] = ACTIONS(4800),
    [anon_sym_r_DQUOTE] = ACTIONS(4800),
    [anon_sym_x_DQUOTE] = ACTIONS(4800),
    [anon_sym_DQUOTE] = ACTIONS(4800),
    [anon_sym_i_BQUOTE] = ACTIONS(4800),
    [anon_sym_i_DQUOTE] = ACTIONS(4800),
    [anon_sym_iq_LBRACE] = ACTIONS(4800),
    [aux_sym_char_literal_token1] = ACTIONS(4800),
    [anon_sym_SQUOTE] = ACTIONS(4798),
    [anon_sym___DATE__] = ACTIONS(4798),
    [anon_sym___FILE__] = ACTIONS(4798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4798),
    [anon_sym___FUNCTION__] = ACTIONS(4798),
    [anon_sym___LINE__] = ACTIONS(4798),
    [anon_sym___MODULE__] = ACTIONS(4798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4798),
    [anon_sym___TIME__] = ACTIONS(4798),
    [anon_sym___TIMESTAMP__] = ACTIONS(4798),
    [anon_sym___VENDOR__] = ACTIONS(4798),
    [anon_sym___VERSION__] = ACTIONS(4798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4800),
    [sym_float_literal] = ACTIONS(4800),
    [sym__string] = ACTIONS(4800),
  },
  [2358] = {
    [sym_identifier] = ACTIONS(4778),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4780),
    [anon_sym_LBRACE] = ACTIONS(4780),
    [anon_sym_DOT] = ACTIONS(4780),
    [anon_sym_AMP] = ACTIONS(4780),
    [anon_sym_DASH] = ACTIONS(4778),
    [anon_sym_DASH_DASH] = ACTIONS(4780),
    [anon_sym_PLUS] = ACTIONS(4778),
    [anon_sym_PLUS_PLUS] = ACTIONS(4780),
    [anon_sym_BANG] = ACTIONS(4780),
    [anon_sym_LPAREN] = ACTIONS(4780),
    [anon_sym_RPAREN] = ACTIONS(4780),
    [anon_sym_LBRACK] = ACTIONS(4780),
    [anon_sym_SEMI] = ACTIONS(4780),
    [anon_sym_DOLLAR] = ACTIONS(4780),
    [anon_sym_STAR] = ACTIONS(4780),
    [anon_sym_TILDE] = ACTIONS(4780),
    [sym_bool] = ACTIONS(4778),
    [sym_byte] = ACTIONS(4778),
    [sym_ubyte] = ACTIONS(4778),
    [sym_char] = ACTIONS(4778),
    [sym_short] = ACTIONS(4778),
    [sym_ushort] = ACTIONS(4778),
    [sym_int] = ACTIONS(4778),
    [sym_uint] = ACTIONS(4778),
    [sym_long] = ACTIONS(4778),
    [sym_ulong] = ACTIONS(4778),
    [sym_cent] = ACTIONS(4778),
    [sym_ucent] = ACTIONS(4778),
    [sym_wchar] = ACTIONS(4778),
    [sym_dchar] = ACTIONS(4778),
    [sym_float] = ACTIONS(4778),
    [sym_double] = ACTIONS(4778),
    [sym_real] = ACTIONS(4778),
    [sym_ifloat] = ACTIONS(4778),
    [sym_idouble] = ACTIONS(4778),
    [sym_ireal] = ACTIONS(4778),
    [sym_cfloat] = ACTIONS(4778),
    [sym_cdouble] = ACTIONS(4778),
    [sym_creal] = ACTIONS(4778),
    [sym_size_t] = ACTIONS(4778),
    [sym_ptrdiff_t] = ACTIONS(4778),
    [sym_string] = ACTIONS(4778),
    [sym_cstring] = ACTIONS(4778),
    [sym_dstring] = ACTIONS(4778),
    [sym_wstring] = ACTIONS(4778),
    [sym_noreturn] = ACTIONS(4778),
    [sym_true] = ACTIONS(4778),
    [sym_false] = ACTIONS(4778),
    [sym_null] = ACTIONS(4778),
    [sym_super] = ACTIONS(4778),
    [sym_this] = ACTIONS(4778),
    [sym_assert] = ACTIONS(4778),
    [sym_auto] = ACTIONS(4778),
    [sym_cast] = ACTIONS(4778),
    [sym_catch] = ACTIONS(4778),
    [sym_const] = ACTIONS(4778),
    [sym_delegate] = ACTIONS(4778),
    [sym_delete] = ACTIONS(4778),
    [sym_do] = ACTIONS(4778),
    [sym_else] = ACTIONS(4778),
    [sym_finally] = ACTIONS(4778),
    [sym_function] = ACTIONS(4778),
    [sym_immutable] = ACTIONS(4778),
    [sym_import] = ACTIONS(4778),
    [sym_in] = ACTIONS(4778),
    [sym_inout] = ACTIONS(4778),
    [sym_is] = ACTIONS(4778),
    [sym_mixin] = ACTIONS(4778),
    [sym_new] = ACTIONS(4778),
    [sym_out] = ACTIONS(4778),
    [sym_ref] = ACTIONS(4778),
    [sym_shared] = ACTIONS(4778),
    [sym_throw] = ACTIONS(4778),
    [sym_typeid] = ACTIONS(4778),
    [sym_typeof] = ACTIONS(4778),
    [sym_traits] = ACTIONS(4778),
    [sym_vector] = ACTIONS(4778),
    [sym_void] = ACTIONS(4778),
    [anon_sym_BQUOTE] = ACTIONS(4780),
    [anon_sym_r_DQUOTE] = ACTIONS(4780),
    [anon_sym_x_DQUOTE] = ACTIONS(4780),
    [anon_sym_DQUOTE] = ACTIONS(4780),
    [anon_sym_i_BQUOTE] = ACTIONS(4780),
    [anon_sym_i_DQUOTE] = ACTIONS(4780),
    [anon_sym_iq_LBRACE] = ACTIONS(4780),
    [aux_sym_char_literal_token1] = ACTIONS(4780),
    [anon_sym_SQUOTE] = ACTIONS(4778),
    [anon_sym___DATE__] = ACTIONS(4778),
    [anon_sym___FILE__] = ACTIONS(4778),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4778),
    [anon_sym___FUNCTION__] = ACTIONS(4778),
    [anon_sym___LINE__] = ACTIONS(4778),
    [anon_sym___MODULE__] = ACTIONS(4778),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4778),
    [anon_sym___TIME__] = ACTIONS(4778),
    [anon_sym___TIMESTAMP__] = ACTIONS(4778),
    [anon_sym___VENDOR__] = ACTIONS(4778),
    [anon_sym___VERSION__] = ACTIONS(4778),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4780),
    [sym_float_literal] = ACTIONS(4780),
    [sym__string] = ACTIONS(4780),
  },
  [2359] = {
    [sym_identifier] = ACTIONS(4554),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4556),
    [anon_sym_LBRACE] = ACTIONS(4556),
    [anon_sym_DOT] = ACTIONS(4556),
    [anon_sym_AMP] = ACTIONS(4556),
    [anon_sym_DASH] = ACTIONS(4554),
    [anon_sym_DASH_DASH] = ACTIONS(4556),
    [anon_sym_PLUS] = ACTIONS(4554),
    [anon_sym_PLUS_PLUS] = ACTIONS(4556),
    [anon_sym_BANG] = ACTIONS(4556),
    [anon_sym_LPAREN] = ACTIONS(4556),
    [anon_sym_RPAREN] = ACTIONS(4556),
    [anon_sym_LBRACK] = ACTIONS(4556),
    [anon_sym_SEMI] = ACTIONS(4556),
    [anon_sym_DOLLAR] = ACTIONS(4556),
    [anon_sym_STAR] = ACTIONS(4556),
    [anon_sym_TILDE] = ACTIONS(4556),
    [sym_bool] = ACTIONS(4554),
    [sym_byte] = ACTIONS(4554),
    [sym_ubyte] = ACTIONS(4554),
    [sym_char] = ACTIONS(4554),
    [sym_short] = ACTIONS(4554),
    [sym_ushort] = ACTIONS(4554),
    [sym_int] = ACTIONS(4554),
    [sym_uint] = ACTIONS(4554),
    [sym_long] = ACTIONS(4554),
    [sym_ulong] = ACTIONS(4554),
    [sym_cent] = ACTIONS(4554),
    [sym_ucent] = ACTIONS(4554),
    [sym_wchar] = ACTIONS(4554),
    [sym_dchar] = ACTIONS(4554),
    [sym_float] = ACTIONS(4554),
    [sym_double] = ACTIONS(4554),
    [sym_real] = ACTIONS(4554),
    [sym_ifloat] = ACTIONS(4554),
    [sym_idouble] = ACTIONS(4554),
    [sym_ireal] = ACTIONS(4554),
    [sym_cfloat] = ACTIONS(4554),
    [sym_cdouble] = ACTIONS(4554),
    [sym_creal] = ACTIONS(4554),
    [sym_size_t] = ACTIONS(4554),
    [sym_ptrdiff_t] = ACTIONS(4554),
    [sym_string] = ACTIONS(4554),
    [sym_cstring] = ACTIONS(4554),
    [sym_dstring] = ACTIONS(4554),
    [sym_wstring] = ACTIONS(4554),
    [sym_noreturn] = ACTIONS(4554),
    [sym_true] = ACTIONS(4554),
    [sym_false] = ACTIONS(4554),
    [sym_null] = ACTIONS(4554),
    [sym_super] = ACTIONS(4554),
    [sym_this] = ACTIONS(4554),
    [sym_assert] = ACTIONS(4554),
    [sym_auto] = ACTIONS(4554),
    [sym_cast] = ACTIONS(4554),
    [sym_catch] = ACTIONS(4554),
    [sym_const] = ACTIONS(4554),
    [sym_delegate] = ACTIONS(4554),
    [sym_delete] = ACTIONS(4554),
    [sym_do] = ACTIONS(4554),
    [sym_else] = ACTIONS(4554),
    [sym_finally] = ACTIONS(4554),
    [sym_function] = ACTIONS(4554),
    [sym_immutable] = ACTIONS(4554),
    [sym_import] = ACTIONS(4554),
    [sym_in] = ACTIONS(4554),
    [sym_inout] = ACTIONS(4554),
    [sym_is] = ACTIONS(4554),
    [sym_mixin] = ACTIONS(4554),
    [sym_new] = ACTIONS(4554),
    [sym_out] = ACTIONS(4554),
    [sym_ref] = ACTIONS(4554),
    [sym_shared] = ACTIONS(4554),
    [sym_throw] = ACTIONS(4554),
    [sym_typeid] = ACTIONS(4554),
    [sym_typeof] = ACTIONS(4554),
    [sym_traits] = ACTIONS(4554),
    [sym_vector] = ACTIONS(4554),
    [sym_void] = ACTIONS(4554),
    [anon_sym_BQUOTE] = ACTIONS(4556),
    [anon_sym_r_DQUOTE] = ACTIONS(4556),
    [anon_sym_x_DQUOTE] = ACTIONS(4556),
    [anon_sym_DQUOTE] = ACTIONS(4556),
    [anon_sym_i_BQUOTE] = ACTIONS(4556),
    [anon_sym_i_DQUOTE] = ACTIONS(4556),
    [anon_sym_iq_LBRACE] = ACTIONS(4556),
    [aux_sym_char_literal_token1] = ACTIONS(4556),
    [anon_sym_SQUOTE] = ACTIONS(4554),
    [anon_sym___DATE__] = ACTIONS(4554),
    [anon_sym___FILE__] = ACTIONS(4554),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4554),
    [anon_sym___FUNCTION__] = ACTIONS(4554),
    [anon_sym___LINE__] = ACTIONS(4554),
    [anon_sym___MODULE__] = ACTIONS(4554),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4554),
    [anon_sym___TIME__] = ACTIONS(4554),
    [anon_sym___TIMESTAMP__] = ACTIONS(4554),
    [anon_sym___VENDOR__] = ACTIONS(4554),
    [anon_sym___VERSION__] = ACTIONS(4554),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4556),
    [sym_float_literal] = ACTIONS(4556),
    [sym__string] = ACTIONS(4556),
  },
  [2360] = {
    [sym_identifier] = ACTIONS(4766),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4768),
    [anon_sym_LBRACE] = ACTIONS(4768),
    [anon_sym_DOT] = ACTIONS(4768),
    [anon_sym_AMP] = ACTIONS(4768),
    [anon_sym_DASH] = ACTIONS(4766),
    [anon_sym_DASH_DASH] = ACTIONS(4768),
    [anon_sym_PLUS] = ACTIONS(4766),
    [anon_sym_PLUS_PLUS] = ACTIONS(4768),
    [anon_sym_BANG] = ACTIONS(4768),
    [anon_sym_LPAREN] = ACTIONS(4768),
    [anon_sym_RPAREN] = ACTIONS(4768),
    [anon_sym_LBRACK] = ACTIONS(4768),
    [anon_sym_SEMI] = ACTIONS(4768),
    [anon_sym_DOLLAR] = ACTIONS(4768),
    [anon_sym_STAR] = ACTIONS(4768),
    [anon_sym_TILDE] = ACTIONS(4768),
    [sym_bool] = ACTIONS(4766),
    [sym_byte] = ACTIONS(4766),
    [sym_ubyte] = ACTIONS(4766),
    [sym_char] = ACTIONS(4766),
    [sym_short] = ACTIONS(4766),
    [sym_ushort] = ACTIONS(4766),
    [sym_int] = ACTIONS(4766),
    [sym_uint] = ACTIONS(4766),
    [sym_long] = ACTIONS(4766),
    [sym_ulong] = ACTIONS(4766),
    [sym_cent] = ACTIONS(4766),
    [sym_ucent] = ACTIONS(4766),
    [sym_wchar] = ACTIONS(4766),
    [sym_dchar] = ACTIONS(4766),
    [sym_float] = ACTIONS(4766),
    [sym_double] = ACTIONS(4766),
    [sym_real] = ACTIONS(4766),
    [sym_ifloat] = ACTIONS(4766),
    [sym_idouble] = ACTIONS(4766),
    [sym_ireal] = ACTIONS(4766),
    [sym_cfloat] = ACTIONS(4766),
    [sym_cdouble] = ACTIONS(4766),
    [sym_creal] = ACTIONS(4766),
    [sym_size_t] = ACTIONS(4766),
    [sym_ptrdiff_t] = ACTIONS(4766),
    [sym_string] = ACTIONS(4766),
    [sym_cstring] = ACTIONS(4766),
    [sym_dstring] = ACTIONS(4766),
    [sym_wstring] = ACTIONS(4766),
    [sym_noreturn] = ACTIONS(4766),
    [sym_true] = ACTIONS(4766),
    [sym_false] = ACTIONS(4766),
    [sym_null] = ACTIONS(4766),
    [sym_super] = ACTIONS(4766),
    [sym_this] = ACTIONS(4766),
    [sym_assert] = ACTIONS(4766),
    [sym_auto] = ACTIONS(4766),
    [sym_cast] = ACTIONS(4766),
    [sym_catch] = ACTIONS(4766),
    [sym_const] = ACTIONS(4766),
    [sym_delegate] = ACTIONS(4766),
    [sym_delete] = ACTIONS(4766),
    [sym_do] = ACTIONS(4766),
    [sym_else] = ACTIONS(4766),
    [sym_finally] = ACTIONS(4766),
    [sym_function] = ACTIONS(4766),
    [sym_immutable] = ACTIONS(4766),
    [sym_import] = ACTIONS(4766),
    [sym_in] = ACTIONS(4766),
    [sym_inout] = ACTIONS(4766),
    [sym_is] = ACTIONS(4766),
    [sym_mixin] = ACTIONS(4766),
    [sym_new] = ACTIONS(4766),
    [sym_out] = ACTIONS(4766),
    [sym_ref] = ACTIONS(4766),
    [sym_shared] = ACTIONS(4766),
    [sym_throw] = ACTIONS(4766),
    [sym_typeid] = ACTIONS(4766),
    [sym_typeof] = ACTIONS(4766),
    [sym_traits] = ACTIONS(4766),
    [sym_vector] = ACTIONS(4766),
    [sym_void] = ACTIONS(4766),
    [anon_sym_BQUOTE] = ACTIONS(4768),
    [anon_sym_r_DQUOTE] = ACTIONS(4768),
    [anon_sym_x_DQUOTE] = ACTIONS(4768),
    [anon_sym_DQUOTE] = ACTIONS(4768),
    [anon_sym_i_BQUOTE] = ACTIONS(4768),
    [anon_sym_i_DQUOTE] = ACTIONS(4768),
    [anon_sym_iq_LBRACE] = ACTIONS(4768),
    [aux_sym_char_literal_token1] = ACTIONS(4768),
    [anon_sym_SQUOTE] = ACTIONS(4766),
    [anon_sym___DATE__] = ACTIONS(4766),
    [anon_sym___FILE__] = ACTIONS(4766),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4766),
    [anon_sym___FUNCTION__] = ACTIONS(4766),
    [anon_sym___LINE__] = ACTIONS(4766),
    [anon_sym___MODULE__] = ACTIONS(4766),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4766),
    [anon_sym___TIME__] = ACTIONS(4766),
    [anon_sym___TIMESTAMP__] = ACTIONS(4766),
    [anon_sym___VENDOR__] = ACTIONS(4766),
    [anon_sym___VERSION__] = ACTIONS(4766),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4768),
    [sym_float_literal] = ACTIONS(4768),
    [sym__string] = ACTIONS(4768),
  },
  [2361] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4299),
    [anon_sym_LBRACE] = ACTIONS(5084),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_AMP] = ACTIONS(4299),
    [anon_sym_DASH] = ACTIONS(4297),
    [anon_sym_DASH_DASH] = ACTIONS(4299),
    [anon_sym_PLUS] = ACTIONS(4297),
    [anon_sym_PLUS_PLUS] = ACTIONS(4299),
    [anon_sym_BANG] = ACTIONS(4299),
    [anon_sym_LPAREN] = ACTIONS(4299),
    [anon_sym_RPAREN] = ACTIONS(4299),
    [anon_sym_LBRACK] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(5084),
    [anon_sym_DOLLAR] = ACTIONS(4299),
    [anon_sym_STAR] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_true] = ACTIONS(4297),
    [sym_false] = ACTIONS(4297),
    [sym_null] = ACTIONS(4297),
    [sym_super] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_assert] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_cast] = ACTIONS(4297),
    [sym_catch] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_delegate] = ACTIONS(4297),
    [sym_delete] = ACTIONS(4297),
    [sym_do] = ACTIONS(5087),
    [sym_else] = ACTIONS(4297),
    [sym_finally] = ACTIONS(4297),
    [sym_function] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(5087),
    [sym_inout] = ACTIONS(4297),
    [sym_is] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_new] = ACTIONS(4297),
    [sym_out] = ACTIONS(5087),
    [sym_ref] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_throw] = ACTIONS(4297),
    [sym_typeid] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [anon_sym_BQUOTE] = ACTIONS(4299),
    [anon_sym_r_DQUOTE] = ACTIONS(4299),
    [anon_sym_x_DQUOTE] = ACTIONS(4299),
    [anon_sym_DQUOTE] = ACTIONS(4299),
    [anon_sym_i_BQUOTE] = ACTIONS(4299),
    [anon_sym_i_DQUOTE] = ACTIONS(4299),
    [anon_sym_iq_LBRACE] = ACTIONS(4299),
    [aux_sym_char_literal_token1] = ACTIONS(4299),
    [anon_sym_SQUOTE] = ACTIONS(4297),
    [anon_sym___DATE__] = ACTIONS(4297),
    [anon_sym___FILE__] = ACTIONS(4297),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4297),
    [anon_sym___FUNCTION__] = ACTIONS(4297),
    [anon_sym___LINE__] = ACTIONS(4297),
    [anon_sym___MODULE__] = ACTIONS(4297),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4297),
    [anon_sym___TIME__] = ACTIONS(4297),
    [anon_sym___TIMESTAMP__] = ACTIONS(4297),
    [anon_sym___VENDOR__] = ACTIONS(4297),
    [anon_sym___VERSION__] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4299),
    [sym_float_literal] = ACTIONS(4299),
    [sym__string] = ACTIONS(4299),
  },
  [2362] = {
    [sym_identifier] = ACTIONS(4570),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4572),
    [anon_sym_LBRACE] = ACTIONS(4572),
    [anon_sym_DOT] = ACTIONS(4572),
    [anon_sym_AMP] = ACTIONS(4572),
    [anon_sym_DASH] = ACTIONS(4570),
    [anon_sym_DASH_DASH] = ACTIONS(4572),
    [anon_sym_PLUS] = ACTIONS(4570),
    [anon_sym_PLUS_PLUS] = ACTIONS(4572),
    [anon_sym_BANG] = ACTIONS(4572),
    [anon_sym_LPAREN] = ACTIONS(4572),
    [anon_sym_RPAREN] = ACTIONS(4572),
    [anon_sym_LBRACK] = ACTIONS(4572),
    [anon_sym_SEMI] = ACTIONS(4572),
    [anon_sym_DOLLAR] = ACTIONS(4572),
    [anon_sym_STAR] = ACTIONS(4572),
    [anon_sym_TILDE] = ACTIONS(4572),
    [sym_bool] = ACTIONS(4570),
    [sym_byte] = ACTIONS(4570),
    [sym_ubyte] = ACTIONS(4570),
    [sym_char] = ACTIONS(4570),
    [sym_short] = ACTIONS(4570),
    [sym_ushort] = ACTIONS(4570),
    [sym_int] = ACTIONS(4570),
    [sym_uint] = ACTIONS(4570),
    [sym_long] = ACTIONS(4570),
    [sym_ulong] = ACTIONS(4570),
    [sym_cent] = ACTIONS(4570),
    [sym_ucent] = ACTIONS(4570),
    [sym_wchar] = ACTIONS(4570),
    [sym_dchar] = ACTIONS(4570),
    [sym_float] = ACTIONS(4570),
    [sym_double] = ACTIONS(4570),
    [sym_real] = ACTIONS(4570),
    [sym_ifloat] = ACTIONS(4570),
    [sym_idouble] = ACTIONS(4570),
    [sym_ireal] = ACTIONS(4570),
    [sym_cfloat] = ACTIONS(4570),
    [sym_cdouble] = ACTIONS(4570),
    [sym_creal] = ACTIONS(4570),
    [sym_size_t] = ACTIONS(4570),
    [sym_ptrdiff_t] = ACTIONS(4570),
    [sym_string] = ACTIONS(4570),
    [sym_cstring] = ACTIONS(4570),
    [sym_dstring] = ACTIONS(4570),
    [sym_wstring] = ACTIONS(4570),
    [sym_noreturn] = ACTIONS(4570),
    [sym_true] = ACTIONS(4570),
    [sym_false] = ACTIONS(4570),
    [sym_null] = ACTIONS(4570),
    [sym_super] = ACTIONS(4570),
    [sym_this] = ACTIONS(4570),
    [sym_assert] = ACTIONS(4570),
    [sym_auto] = ACTIONS(4570),
    [sym_cast] = ACTIONS(4570),
    [sym_catch] = ACTIONS(4570),
    [sym_const] = ACTIONS(4570),
    [sym_delegate] = ACTIONS(4570),
    [sym_delete] = ACTIONS(4570),
    [sym_do] = ACTIONS(4570),
    [sym_else] = ACTIONS(4570),
    [sym_finally] = ACTIONS(4570),
    [sym_function] = ACTIONS(4570),
    [sym_immutable] = ACTIONS(4570),
    [sym_import] = ACTIONS(4570),
    [sym_in] = ACTIONS(4570),
    [sym_inout] = ACTIONS(4570),
    [sym_is] = ACTIONS(4570),
    [sym_mixin] = ACTIONS(4570),
    [sym_new] = ACTIONS(4570),
    [sym_out] = ACTIONS(4570),
    [sym_ref] = ACTIONS(4570),
    [sym_shared] = ACTIONS(4570),
    [sym_throw] = ACTIONS(4570),
    [sym_typeid] = ACTIONS(4570),
    [sym_typeof] = ACTIONS(4570),
    [sym_traits] = ACTIONS(4570),
    [sym_vector] = ACTIONS(4570),
    [sym_void] = ACTIONS(4570),
    [anon_sym_BQUOTE] = ACTIONS(4572),
    [anon_sym_r_DQUOTE] = ACTIONS(4572),
    [anon_sym_x_DQUOTE] = ACTIONS(4572),
    [anon_sym_DQUOTE] = ACTIONS(4572),
    [anon_sym_i_BQUOTE] = ACTIONS(4572),
    [anon_sym_i_DQUOTE] = ACTIONS(4572),
    [anon_sym_iq_LBRACE] = ACTIONS(4572),
    [aux_sym_char_literal_token1] = ACTIONS(4572),
    [anon_sym_SQUOTE] = ACTIONS(4570),
    [anon_sym___DATE__] = ACTIONS(4570),
    [anon_sym___FILE__] = ACTIONS(4570),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4570),
    [anon_sym___FUNCTION__] = ACTIONS(4570),
    [anon_sym___LINE__] = ACTIONS(4570),
    [anon_sym___MODULE__] = ACTIONS(4570),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4570),
    [anon_sym___TIME__] = ACTIONS(4570),
    [anon_sym___TIMESTAMP__] = ACTIONS(4570),
    [anon_sym___VENDOR__] = ACTIONS(4570),
    [anon_sym___VERSION__] = ACTIONS(4570),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4572),
    [sym_float_literal] = ACTIONS(4572),
    [sym__string] = ACTIONS(4572),
  },
  [2363] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4299),
    [anon_sym_LBRACE] = ACTIONS(4299),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_AMP] = ACTIONS(4299),
    [anon_sym_DASH] = ACTIONS(4297),
    [anon_sym_DASH_DASH] = ACTIONS(4299),
    [anon_sym_PLUS] = ACTIONS(4297),
    [anon_sym_PLUS_PLUS] = ACTIONS(4299),
    [anon_sym_BANG] = ACTIONS(4299),
    [anon_sym_LPAREN] = ACTIONS(4299),
    [anon_sym_RPAREN] = ACTIONS(4299),
    [anon_sym_LBRACK] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(4299),
    [anon_sym_DOLLAR] = ACTIONS(4299),
    [anon_sym_STAR] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_true] = ACTIONS(4297),
    [sym_false] = ACTIONS(4297),
    [sym_null] = ACTIONS(4297),
    [sym_super] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_assert] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_cast] = ACTIONS(4297),
    [sym_catch] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_delegate] = ACTIONS(4297),
    [sym_delete] = ACTIONS(4297),
    [sym_do] = ACTIONS(4297),
    [sym_else] = ACTIONS(4297),
    [sym_finally] = ACTIONS(4297),
    [sym_function] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(4297),
    [sym_inout] = ACTIONS(4297),
    [sym_is] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_new] = ACTIONS(4297),
    [sym_out] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_throw] = ACTIONS(4297),
    [sym_typeid] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [anon_sym_BQUOTE] = ACTIONS(4299),
    [anon_sym_r_DQUOTE] = ACTIONS(4299),
    [anon_sym_x_DQUOTE] = ACTIONS(4299),
    [anon_sym_DQUOTE] = ACTIONS(4299),
    [anon_sym_i_BQUOTE] = ACTIONS(4299),
    [anon_sym_i_DQUOTE] = ACTIONS(4299),
    [anon_sym_iq_LBRACE] = ACTIONS(4299),
    [aux_sym_char_literal_token1] = ACTIONS(4299),
    [anon_sym_SQUOTE] = ACTIONS(4297),
    [anon_sym___DATE__] = ACTIONS(4297),
    [anon_sym___FILE__] = ACTIONS(4297),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4297),
    [anon_sym___FUNCTION__] = ACTIONS(4297),
    [anon_sym___LINE__] = ACTIONS(4297),
    [anon_sym___MODULE__] = ACTIONS(4297),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4297),
    [anon_sym___TIME__] = ACTIONS(4297),
    [anon_sym___TIMESTAMP__] = ACTIONS(4297),
    [anon_sym___VENDOR__] = ACTIONS(4297),
    [anon_sym___VERSION__] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4299),
    [sym_float_literal] = ACTIONS(4299),
    [sym__string] = ACTIONS(4299),
  },
  [2364] = {
    [sym_identifier] = ACTIONS(4347),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4349),
    [anon_sym_LBRACE] = ACTIONS(4349),
    [anon_sym_DOT] = ACTIONS(4349),
    [anon_sym_AMP] = ACTIONS(4349),
    [anon_sym_DASH] = ACTIONS(4347),
    [anon_sym_DASH_DASH] = ACTIONS(4349),
    [anon_sym_PLUS] = ACTIONS(4347),
    [anon_sym_PLUS_PLUS] = ACTIONS(4349),
    [anon_sym_BANG] = ACTIONS(4349),
    [anon_sym_LPAREN] = ACTIONS(4349),
    [anon_sym_RPAREN] = ACTIONS(4349),
    [anon_sym_LBRACK] = ACTIONS(4349),
    [anon_sym_SEMI] = ACTIONS(4349),
    [anon_sym_DOLLAR] = ACTIONS(4349),
    [anon_sym_STAR] = ACTIONS(4349),
    [anon_sym_TILDE] = ACTIONS(4349),
    [sym_bool] = ACTIONS(4347),
    [sym_byte] = ACTIONS(4347),
    [sym_ubyte] = ACTIONS(4347),
    [sym_char] = ACTIONS(4347),
    [sym_short] = ACTIONS(4347),
    [sym_ushort] = ACTIONS(4347),
    [sym_int] = ACTIONS(4347),
    [sym_uint] = ACTIONS(4347),
    [sym_long] = ACTIONS(4347),
    [sym_ulong] = ACTIONS(4347),
    [sym_cent] = ACTIONS(4347),
    [sym_ucent] = ACTIONS(4347),
    [sym_wchar] = ACTIONS(4347),
    [sym_dchar] = ACTIONS(4347),
    [sym_float] = ACTIONS(4347),
    [sym_double] = ACTIONS(4347),
    [sym_real] = ACTIONS(4347),
    [sym_ifloat] = ACTIONS(4347),
    [sym_idouble] = ACTIONS(4347),
    [sym_ireal] = ACTIONS(4347),
    [sym_cfloat] = ACTIONS(4347),
    [sym_cdouble] = ACTIONS(4347),
    [sym_creal] = ACTIONS(4347),
    [sym_size_t] = ACTIONS(4347),
    [sym_ptrdiff_t] = ACTIONS(4347),
    [sym_string] = ACTIONS(4347),
    [sym_cstring] = ACTIONS(4347),
    [sym_dstring] = ACTIONS(4347),
    [sym_wstring] = ACTIONS(4347),
    [sym_noreturn] = ACTIONS(4347),
    [sym_true] = ACTIONS(4347),
    [sym_false] = ACTIONS(4347),
    [sym_null] = ACTIONS(4347),
    [sym_super] = ACTIONS(4347),
    [sym_this] = ACTIONS(4347),
    [sym_assert] = ACTIONS(4347),
    [sym_auto] = ACTIONS(4347),
    [sym_cast] = ACTIONS(4347),
    [sym_catch] = ACTIONS(4347),
    [sym_const] = ACTIONS(4347),
    [sym_delegate] = ACTIONS(4347),
    [sym_delete] = ACTIONS(4347),
    [sym_do] = ACTIONS(4347),
    [sym_else] = ACTIONS(4347),
    [sym_finally] = ACTIONS(4347),
    [sym_function] = ACTIONS(4347),
    [sym_immutable] = ACTIONS(4347),
    [sym_import] = ACTIONS(4347),
    [sym_in] = ACTIONS(4347),
    [sym_inout] = ACTIONS(4347),
    [sym_is] = ACTIONS(4347),
    [sym_mixin] = ACTIONS(4347),
    [sym_new] = ACTIONS(4347),
    [sym_out] = ACTIONS(4347),
    [sym_ref] = ACTIONS(4347),
    [sym_shared] = ACTIONS(4347),
    [sym_throw] = ACTIONS(4347),
    [sym_typeid] = ACTIONS(4347),
    [sym_typeof] = ACTIONS(4347),
    [sym_traits] = ACTIONS(4347),
    [sym_vector] = ACTIONS(4347),
    [sym_void] = ACTIONS(4347),
    [anon_sym_BQUOTE] = ACTIONS(4349),
    [anon_sym_r_DQUOTE] = ACTIONS(4349),
    [anon_sym_x_DQUOTE] = ACTIONS(4349),
    [anon_sym_DQUOTE] = ACTIONS(4349),
    [anon_sym_i_BQUOTE] = ACTIONS(4349),
    [anon_sym_i_DQUOTE] = ACTIONS(4349),
    [anon_sym_iq_LBRACE] = ACTIONS(4349),
    [aux_sym_char_literal_token1] = ACTIONS(4349),
    [anon_sym_SQUOTE] = ACTIONS(4347),
    [anon_sym___DATE__] = ACTIONS(4347),
    [anon_sym___FILE__] = ACTIONS(4347),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4347),
    [anon_sym___FUNCTION__] = ACTIONS(4347),
    [anon_sym___LINE__] = ACTIONS(4347),
    [anon_sym___MODULE__] = ACTIONS(4347),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4347),
    [anon_sym___TIME__] = ACTIONS(4347),
    [anon_sym___TIMESTAMP__] = ACTIONS(4347),
    [anon_sym___VENDOR__] = ACTIONS(4347),
    [anon_sym___VERSION__] = ACTIONS(4347),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4349),
    [sym_float_literal] = ACTIONS(4349),
    [sym__string] = ACTIONS(4349),
  },
  [2365] = {
    [sym_identifier] = ACTIONS(4550),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4552),
    [anon_sym_LBRACE] = ACTIONS(4552),
    [anon_sym_DOT] = ACTIONS(4552),
    [anon_sym_AMP] = ACTIONS(4552),
    [anon_sym_DASH] = ACTIONS(4550),
    [anon_sym_DASH_DASH] = ACTIONS(4552),
    [anon_sym_PLUS] = ACTIONS(4550),
    [anon_sym_PLUS_PLUS] = ACTIONS(4552),
    [anon_sym_BANG] = ACTIONS(4552),
    [anon_sym_LPAREN] = ACTIONS(4552),
    [anon_sym_RPAREN] = ACTIONS(4552),
    [anon_sym_LBRACK] = ACTIONS(4552),
    [anon_sym_SEMI] = ACTIONS(4552),
    [anon_sym_DOLLAR] = ACTIONS(4552),
    [anon_sym_STAR] = ACTIONS(4552),
    [anon_sym_TILDE] = ACTIONS(4552),
    [sym_bool] = ACTIONS(4550),
    [sym_byte] = ACTIONS(4550),
    [sym_ubyte] = ACTIONS(4550),
    [sym_char] = ACTIONS(4550),
    [sym_short] = ACTIONS(4550),
    [sym_ushort] = ACTIONS(4550),
    [sym_int] = ACTIONS(4550),
    [sym_uint] = ACTIONS(4550),
    [sym_long] = ACTIONS(4550),
    [sym_ulong] = ACTIONS(4550),
    [sym_cent] = ACTIONS(4550),
    [sym_ucent] = ACTIONS(4550),
    [sym_wchar] = ACTIONS(4550),
    [sym_dchar] = ACTIONS(4550),
    [sym_float] = ACTIONS(4550),
    [sym_double] = ACTIONS(4550),
    [sym_real] = ACTIONS(4550),
    [sym_ifloat] = ACTIONS(4550),
    [sym_idouble] = ACTIONS(4550),
    [sym_ireal] = ACTIONS(4550),
    [sym_cfloat] = ACTIONS(4550),
    [sym_cdouble] = ACTIONS(4550),
    [sym_creal] = ACTIONS(4550),
    [sym_size_t] = ACTIONS(4550),
    [sym_ptrdiff_t] = ACTIONS(4550),
    [sym_string] = ACTIONS(4550),
    [sym_cstring] = ACTIONS(4550),
    [sym_dstring] = ACTIONS(4550),
    [sym_wstring] = ACTIONS(4550),
    [sym_noreturn] = ACTIONS(4550),
    [sym_true] = ACTIONS(4550),
    [sym_false] = ACTIONS(4550),
    [sym_null] = ACTIONS(4550),
    [sym_super] = ACTIONS(4550),
    [sym_this] = ACTIONS(4550),
    [sym_assert] = ACTIONS(4550),
    [sym_auto] = ACTIONS(4550),
    [sym_cast] = ACTIONS(4550),
    [sym_catch] = ACTIONS(4550),
    [sym_const] = ACTIONS(4550),
    [sym_delegate] = ACTIONS(4550),
    [sym_delete] = ACTIONS(4550),
    [sym_do] = ACTIONS(4550),
    [sym_else] = ACTIONS(4550),
    [sym_finally] = ACTIONS(4550),
    [sym_function] = ACTIONS(4550),
    [sym_immutable] = ACTIONS(4550),
    [sym_import] = ACTIONS(4550),
    [sym_in] = ACTIONS(4550),
    [sym_inout] = ACTIONS(4550),
    [sym_is] = ACTIONS(4550),
    [sym_mixin] = ACTIONS(4550),
    [sym_new] = ACTIONS(4550),
    [sym_out] = ACTIONS(4550),
    [sym_ref] = ACTIONS(4550),
    [sym_shared] = ACTIONS(4550),
    [sym_throw] = ACTIONS(4550),
    [sym_typeid] = ACTIONS(4550),
    [sym_typeof] = ACTIONS(4550),
    [sym_traits] = ACTIONS(4550),
    [sym_vector] = ACTIONS(4550),
    [sym_void] = ACTIONS(4550),
    [anon_sym_BQUOTE] = ACTIONS(4552),
    [anon_sym_r_DQUOTE] = ACTIONS(4552),
    [anon_sym_x_DQUOTE] = ACTIONS(4552),
    [anon_sym_DQUOTE] = ACTIONS(4552),
    [anon_sym_i_BQUOTE] = ACTIONS(4552),
    [anon_sym_i_DQUOTE] = ACTIONS(4552),
    [anon_sym_iq_LBRACE] = ACTIONS(4552),
    [aux_sym_char_literal_token1] = ACTIONS(4552),
    [anon_sym_SQUOTE] = ACTIONS(4550),
    [anon_sym___DATE__] = ACTIONS(4550),
    [anon_sym___FILE__] = ACTIONS(4550),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4550),
    [anon_sym___FUNCTION__] = ACTIONS(4550),
    [anon_sym___LINE__] = ACTIONS(4550),
    [anon_sym___MODULE__] = ACTIONS(4550),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4550),
    [anon_sym___TIME__] = ACTIONS(4550),
    [anon_sym___TIMESTAMP__] = ACTIONS(4550),
    [anon_sym___VENDOR__] = ACTIONS(4550),
    [anon_sym___VERSION__] = ACTIONS(4550),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4552),
    [sym_float_literal] = ACTIONS(4552),
    [sym__string] = ACTIONS(4552),
  },
  [2366] = {
    [sym_identifier] = ACTIONS(4542),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4544),
    [anon_sym_LBRACE] = ACTIONS(4544),
    [anon_sym_DOT] = ACTIONS(4544),
    [anon_sym_AMP] = ACTIONS(4544),
    [anon_sym_DASH] = ACTIONS(4542),
    [anon_sym_DASH_DASH] = ACTIONS(4544),
    [anon_sym_PLUS] = ACTIONS(4542),
    [anon_sym_PLUS_PLUS] = ACTIONS(4544),
    [anon_sym_BANG] = ACTIONS(4544),
    [anon_sym_LPAREN] = ACTIONS(4544),
    [anon_sym_RPAREN] = ACTIONS(4544),
    [anon_sym_LBRACK] = ACTIONS(4544),
    [anon_sym_SEMI] = ACTIONS(4544),
    [anon_sym_DOLLAR] = ACTIONS(4544),
    [anon_sym_STAR] = ACTIONS(4544),
    [anon_sym_TILDE] = ACTIONS(4544),
    [sym_bool] = ACTIONS(4542),
    [sym_byte] = ACTIONS(4542),
    [sym_ubyte] = ACTIONS(4542),
    [sym_char] = ACTIONS(4542),
    [sym_short] = ACTIONS(4542),
    [sym_ushort] = ACTIONS(4542),
    [sym_int] = ACTIONS(4542),
    [sym_uint] = ACTIONS(4542),
    [sym_long] = ACTIONS(4542),
    [sym_ulong] = ACTIONS(4542),
    [sym_cent] = ACTIONS(4542),
    [sym_ucent] = ACTIONS(4542),
    [sym_wchar] = ACTIONS(4542),
    [sym_dchar] = ACTIONS(4542),
    [sym_float] = ACTIONS(4542),
    [sym_double] = ACTIONS(4542),
    [sym_real] = ACTIONS(4542),
    [sym_ifloat] = ACTIONS(4542),
    [sym_idouble] = ACTIONS(4542),
    [sym_ireal] = ACTIONS(4542),
    [sym_cfloat] = ACTIONS(4542),
    [sym_cdouble] = ACTIONS(4542),
    [sym_creal] = ACTIONS(4542),
    [sym_size_t] = ACTIONS(4542),
    [sym_ptrdiff_t] = ACTIONS(4542),
    [sym_string] = ACTIONS(4542),
    [sym_cstring] = ACTIONS(4542),
    [sym_dstring] = ACTIONS(4542),
    [sym_wstring] = ACTIONS(4542),
    [sym_noreturn] = ACTIONS(4542),
    [sym_true] = ACTIONS(4542),
    [sym_false] = ACTIONS(4542),
    [sym_null] = ACTIONS(4542),
    [sym_super] = ACTIONS(4542),
    [sym_this] = ACTIONS(4542),
    [sym_assert] = ACTIONS(4542),
    [sym_auto] = ACTIONS(4542),
    [sym_cast] = ACTIONS(4542),
    [sym_catch] = ACTIONS(4542),
    [sym_const] = ACTIONS(4542),
    [sym_delegate] = ACTIONS(4542),
    [sym_delete] = ACTIONS(4542),
    [sym_do] = ACTIONS(4542),
    [sym_else] = ACTIONS(4542),
    [sym_finally] = ACTIONS(4542),
    [sym_function] = ACTIONS(4542),
    [sym_immutable] = ACTIONS(4542),
    [sym_import] = ACTIONS(4542),
    [sym_in] = ACTIONS(4542),
    [sym_inout] = ACTIONS(4542),
    [sym_is] = ACTIONS(4542),
    [sym_mixin] = ACTIONS(4542),
    [sym_new] = ACTIONS(4542),
    [sym_out] = ACTIONS(4542),
    [sym_ref] = ACTIONS(4542),
    [sym_shared] = ACTIONS(4542),
    [sym_throw] = ACTIONS(4542),
    [sym_typeid] = ACTIONS(4542),
    [sym_typeof] = ACTIONS(4542),
    [sym_traits] = ACTIONS(4542),
    [sym_vector] = ACTIONS(4542),
    [sym_void] = ACTIONS(4542),
    [anon_sym_BQUOTE] = ACTIONS(4544),
    [anon_sym_r_DQUOTE] = ACTIONS(4544),
    [anon_sym_x_DQUOTE] = ACTIONS(4544),
    [anon_sym_DQUOTE] = ACTIONS(4544),
    [anon_sym_i_BQUOTE] = ACTIONS(4544),
    [anon_sym_i_DQUOTE] = ACTIONS(4544),
    [anon_sym_iq_LBRACE] = ACTIONS(4544),
    [aux_sym_char_literal_token1] = ACTIONS(4544),
    [anon_sym_SQUOTE] = ACTIONS(4542),
    [anon_sym___DATE__] = ACTIONS(4542),
    [anon_sym___FILE__] = ACTIONS(4542),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4542),
    [anon_sym___FUNCTION__] = ACTIONS(4542),
    [anon_sym___LINE__] = ACTIONS(4542),
    [anon_sym___MODULE__] = ACTIONS(4542),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4542),
    [anon_sym___TIME__] = ACTIONS(4542),
    [anon_sym___TIMESTAMP__] = ACTIONS(4542),
    [anon_sym___VENDOR__] = ACTIONS(4542),
    [anon_sym___VERSION__] = ACTIONS(4542),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4544),
    [sym_float_literal] = ACTIONS(4544),
    [sym__string] = ACTIONS(4544),
  },
  [2367] = {
    [sym_identifier] = ACTIONS(4598),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4600),
    [anon_sym_LBRACE] = ACTIONS(4600),
    [anon_sym_DOT] = ACTIONS(4600),
    [anon_sym_AMP] = ACTIONS(4600),
    [anon_sym_DASH] = ACTIONS(4598),
    [anon_sym_DASH_DASH] = ACTIONS(4600),
    [anon_sym_PLUS] = ACTIONS(4598),
    [anon_sym_PLUS_PLUS] = ACTIONS(4600),
    [anon_sym_BANG] = ACTIONS(4600),
    [anon_sym_LPAREN] = ACTIONS(4600),
    [anon_sym_RPAREN] = ACTIONS(4600),
    [anon_sym_LBRACK] = ACTIONS(4600),
    [anon_sym_SEMI] = ACTIONS(4600),
    [anon_sym_DOLLAR] = ACTIONS(4600),
    [anon_sym_STAR] = ACTIONS(4600),
    [anon_sym_TILDE] = ACTIONS(4600),
    [sym_bool] = ACTIONS(4598),
    [sym_byte] = ACTIONS(4598),
    [sym_ubyte] = ACTIONS(4598),
    [sym_char] = ACTIONS(4598),
    [sym_short] = ACTIONS(4598),
    [sym_ushort] = ACTIONS(4598),
    [sym_int] = ACTIONS(4598),
    [sym_uint] = ACTIONS(4598),
    [sym_long] = ACTIONS(4598),
    [sym_ulong] = ACTIONS(4598),
    [sym_cent] = ACTIONS(4598),
    [sym_ucent] = ACTIONS(4598),
    [sym_wchar] = ACTIONS(4598),
    [sym_dchar] = ACTIONS(4598),
    [sym_float] = ACTIONS(4598),
    [sym_double] = ACTIONS(4598),
    [sym_real] = ACTIONS(4598),
    [sym_ifloat] = ACTIONS(4598),
    [sym_idouble] = ACTIONS(4598),
    [sym_ireal] = ACTIONS(4598),
    [sym_cfloat] = ACTIONS(4598),
    [sym_cdouble] = ACTIONS(4598),
    [sym_creal] = ACTIONS(4598),
    [sym_size_t] = ACTIONS(4598),
    [sym_ptrdiff_t] = ACTIONS(4598),
    [sym_string] = ACTIONS(4598),
    [sym_cstring] = ACTIONS(4598),
    [sym_dstring] = ACTIONS(4598),
    [sym_wstring] = ACTIONS(4598),
    [sym_noreturn] = ACTIONS(4598),
    [sym_true] = ACTIONS(4598),
    [sym_false] = ACTIONS(4598),
    [sym_null] = ACTIONS(4598),
    [sym_super] = ACTIONS(4598),
    [sym_this] = ACTIONS(4598),
    [sym_assert] = ACTIONS(4598),
    [sym_auto] = ACTIONS(4598),
    [sym_cast] = ACTIONS(4598),
    [sym_catch] = ACTIONS(4598),
    [sym_const] = ACTIONS(4598),
    [sym_delegate] = ACTIONS(4598),
    [sym_delete] = ACTIONS(4598),
    [sym_do] = ACTIONS(4598),
    [sym_else] = ACTIONS(4598),
    [sym_finally] = ACTIONS(4598),
    [sym_function] = ACTIONS(4598),
    [sym_immutable] = ACTIONS(4598),
    [sym_import] = ACTIONS(4598),
    [sym_in] = ACTIONS(4598),
    [sym_inout] = ACTIONS(4598),
    [sym_is] = ACTIONS(4598),
    [sym_mixin] = ACTIONS(4598),
    [sym_new] = ACTIONS(4598),
    [sym_out] = ACTIONS(4598),
    [sym_ref] = ACTIONS(4598),
    [sym_shared] = ACTIONS(4598),
    [sym_throw] = ACTIONS(4598),
    [sym_typeid] = ACTIONS(4598),
    [sym_typeof] = ACTIONS(4598),
    [sym_traits] = ACTIONS(4598),
    [sym_vector] = ACTIONS(4598),
    [sym_void] = ACTIONS(4598),
    [anon_sym_BQUOTE] = ACTIONS(4600),
    [anon_sym_r_DQUOTE] = ACTIONS(4600),
    [anon_sym_x_DQUOTE] = ACTIONS(4600),
    [anon_sym_DQUOTE] = ACTIONS(4600),
    [anon_sym_i_BQUOTE] = ACTIONS(4600),
    [anon_sym_i_DQUOTE] = ACTIONS(4600),
    [anon_sym_iq_LBRACE] = ACTIONS(4600),
    [aux_sym_char_literal_token1] = ACTIONS(4600),
    [anon_sym_SQUOTE] = ACTIONS(4598),
    [anon_sym___DATE__] = ACTIONS(4598),
    [anon_sym___FILE__] = ACTIONS(4598),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4598),
    [anon_sym___FUNCTION__] = ACTIONS(4598),
    [anon_sym___LINE__] = ACTIONS(4598),
    [anon_sym___MODULE__] = ACTIONS(4598),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4598),
    [anon_sym___TIME__] = ACTIONS(4598),
    [anon_sym___TIMESTAMP__] = ACTIONS(4598),
    [anon_sym___VENDOR__] = ACTIONS(4598),
    [anon_sym___VERSION__] = ACTIONS(4598),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4600),
    [sym_float_literal] = ACTIONS(4600),
    [sym__string] = ACTIONS(4600),
  },
  [2368] = {
    [sym_identifier] = ACTIONS(4508),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4510),
    [anon_sym_LBRACE] = ACTIONS(4510),
    [anon_sym_DOT] = ACTIONS(4510),
    [anon_sym_AMP] = ACTIONS(4510),
    [anon_sym_DASH] = ACTIONS(4508),
    [anon_sym_DASH_DASH] = ACTIONS(4510),
    [anon_sym_PLUS] = ACTIONS(4508),
    [anon_sym_PLUS_PLUS] = ACTIONS(4510),
    [anon_sym_BANG] = ACTIONS(4510),
    [anon_sym_LPAREN] = ACTIONS(4510),
    [anon_sym_RPAREN] = ACTIONS(4510),
    [anon_sym_LBRACK] = ACTIONS(4510),
    [anon_sym_SEMI] = ACTIONS(4510),
    [anon_sym_DOLLAR] = ACTIONS(4510),
    [anon_sym_STAR] = ACTIONS(4510),
    [anon_sym_TILDE] = ACTIONS(4510),
    [sym_bool] = ACTIONS(4508),
    [sym_byte] = ACTIONS(4508),
    [sym_ubyte] = ACTIONS(4508),
    [sym_char] = ACTIONS(4508),
    [sym_short] = ACTIONS(4508),
    [sym_ushort] = ACTIONS(4508),
    [sym_int] = ACTIONS(4508),
    [sym_uint] = ACTIONS(4508),
    [sym_long] = ACTIONS(4508),
    [sym_ulong] = ACTIONS(4508),
    [sym_cent] = ACTIONS(4508),
    [sym_ucent] = ACTIONS(4508),
    [sym_wchar] = ACTIONS(4508),
    [sym_dchar] = ACTIONS(4508),
    [sym_float] = ACTIONS(4508),
    [sym_double] = ACTIONS(4508),
    [sym_real] = ACTIONS(4508),
    [sym_ifloat] = ACTIONS(4508),
    [sym_idouble] = ACTIONS(4508),
    [sym_ireal] = ACTIONS(4508),
    [sym_cfloat] = ACTIONS(4508),
    [sym_cdouble] = ACTIONS(4508),
    [sym_creal] = ACTIONS(4508),
    [sym_size_t] = ACTIONS(4508),
    [sym_ptrdiff_t] = ACTIONS(4508),
    [sym_string] = ACTIONS(4508),
    [sym_cstring] = ACTIONS(4508),
    [sym_dstring] = ACTIONS(4508),
    [sym_wstring] = ACTIONS(4508),
    [sym_noreturn] = ACTIONS(4508),
    [sym_true] = ACTIONS(4508),
    [sym_false] = ACTIONS(4508),
    [sym_null] = ACTIONS(4508),
    [sym_super] = ACTIONS(4508),
    [sym_this] = ACTIONS(4508),
    [sym_assert] = ACTIONS(4508),
    [sym_auto] = ACTIONS(4508),
    [sym_cast] = ACTIONS(4508),
    [sym_catch] = ACTIONS(4508),
    [sym_const] = ACTIONS(4508),
    [sym_delegate] = ACTIONS(4508),
    [sym_delete] = ACTIONS(4508),
    [sym_do] = ACTIONS(4508),
    [sym_else] = ACTIONS(4508),
    [sym_finally] = ACTIONS(4508),
    [sym_function] = ACTIONS(4508),
    [sym_immutable] = ACTIONS(4508),
    [sym_import] = ACTIONS(4508),
    [sym_in] = ACTIONS(4508),
    [sym_inout] = ACTIONS(4508),
    [sym_is] = ACTIONS(4508),
    [sym_mixin] = ACTIONS(4508),
    [sym_new] = ACTIONS(4508),
    [sym_out] = ACTIONS(4508),
    [sym_ref] = ACTIONS(4508),
    [sym_shared] = ACTIONS(4508),
    [sym_throw] = ACTIONS(4508),
    [sym_typeid] = ACTIONS(4508),
    [sym_typeof] = ACTIONS(4508),
    [sym_traits] = ACTIONS(4508),
    [sym_vector] = ACTIONS(4508),
    [sym_void] = ACTIONS(4508),
    [anon_sym_BQUOTE] = ACTIONS(4510),
    [anon_sym_r_DQUOTE] = ACTIONS(4510),
    [anon_sym_x_DQUOTE] = ACTIONS(4510),
    [anon_sym_DQUOTE] = ACTIONS(4510),
    [anon_sym_i_BQUOTE] = ACTIONS(4510),
    [anon_sym_i_DQUOTE] = ACTIONS(4510),
    [anon_sym_iq_LBRACE] = ACTIONS(4510),
    [aux_sym_char_literal_token1] = ACTIONS(4510),
    [anon_sym_SQUOTE] = ACTIONS(4508),
    [anon_sym___DATE__] = ACTIONS(4508),
    [anon_sym___FILE__] = ACTIONS(4508),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4508),
    [anon_sym___FUNCTION__] = ACTIONS(4508),
    [anon_sym___LINE__] = ACTIONS(4508),
    [anon_sym___MODULE__] = ACTIONS(4508),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4508),
    [anon_sym___TIME__] = ACTIONS(4508),
    [anon_sym___TIMESTAMP__] = ACTIONS(4508),
    [anon_sym___VENDOR__] = ACTIONS(4508),
    [anon_sym___VERSION__] = ACTIONS(4508),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4510),
    [sym_float_literal] = ACTIONS(4510),
    [sym__string] = ACTIONS(4510),
  },
  [2369] = {
    [sym_identifier] = ACTIONS(4516),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4518),
    [anon_sym_LBRACE] = ACTIONS(4518),
    [anon_sym_DOT] = ACTIONS(4518),
    [anon_sym_AMP] = ACTIONS(4518),
    [anon_sym_DASH] = ACTIONS(4516),
    [anon_sym_DASH_DASH] = ACTIONS(4518),
    [anon_sym_PLUS] = ACTIONS(4516),
    [anon_sym_PLUS_PLUS] = ACTIONS(4518),
    [anon_sym_BANG] = ACTIONS(4518),
    [anon_sym_LPAREN] = ACTIONS(4518),
    [anon_sym_RPAREN] = ACTIONS(4518),
    [anon_sym_LBRACK] = ACTIONS(4518),
    [anon_sym_SEMI] = ACTIONS(4518),
    [anon_sym_DOLLAR] = ACTIONS(4518),
    [anon_sym_STAR] = ACTIONS(4518),
    [anon_sym_TILDE] = ACTIONS(4518),
    [sym_bool] = ACTIONS(4516),
    [sym_byte] = ACTIONS(4516),
    [sym_ubyte] = ACTIONS(4516),
    [sym_char] = ACTIONS(4516),
    [sym_short] = ACTIONS(4516),
    [sym_ushort] = ACTIONS(4516),
    [sym_int] = ACTIONS(4516),
    [sym_uint] = ACTIONS(4516),
    [sym_long] = ACTIONS(4516),
    [sym_ulong] = ACTIONS(4516),
    [sym_cent] = ACTIONS(4516),
    [sym_ucent] = ACTIONS(4516),
    [sym_wchar] = ACTIONS(4516),
    [sym_dchar] = ACTIONS(4516),
    [sym_float] = ACTIONS(4516),
    [sym_double] = ACTIONS(4516),
    [sym_real] = ACTIONS(4516),
    [sym_ifloat] = ACTIONS(4516),
    [sym_idouble] = ACTIONS(4516),
    [sym_ireal] = ACTIONS(4516),
    [sym_cfloat] = ACTIONS(4516),
    [sym_cdouble] = ACTIONS(4516),
    [sym_creal] = ACTIONS(4516),
    [sym_size_t] = ACTIONS(4516),
    [sym_ptrdiff_t] = ACTIONS(4516),
    [sym_string] = ACTIONS(4516),
    [sym_cstring] = ACTIONS(4516),
    [sym_dstring] = ACTIONS(4516),
    [sym_wstring] = ACTIONS(4516),
    [sym_noreturn] = ACTIONS(4516),
    [sym_true] = ACTIONS(4516),
    [sym_false] = ACTIONS(4516),
    [sym_null] = ACTIONS(4516),
    [sym_super] = ACTIONS(4516),
    [sym_this] = ACTIONS(4516),
    [sym_assert] = ACTIONS(4516),
    [sym_auto] = ACTIONS(4516),
    [sym_cast] = ACTIONS(4516),
    [sym_catch] = ACTIONS(4516),
    [sym_const] = ACTIONS(4516),
    [sym_delegate] = ACTIONS(4516),
    [sym_delete] = ACTIONS(4516),
    [sym_do] = ACTIONS(4516),
    [sym_else] = ACTIONS(4516),
    [sym_finally] = ACTIONS(4516),
    [sym_function] = ACTIONS(4516),
    [sym_immutable] = ACTIONS(4516),
    [sym_import] = ACTIONS(4516),
    [sym_in] = ACTIONS(4516),
    [sym_inout] = ACTIONS(4516),
    [sym_is] = ACTIONS(4516),
    [sym_mixin] = ACTIONS(4516),
    [sym_new] = ACTIONS(4516),
    [sym_out] = ACTIONS(4516),
    [sym_ref] = ACTIONS(4516),
    [sym_shared] = ACTIONS(4516),
    [sym_throw] = ACTIONS(4516),
    [sym_typeid] = ACTIONS(4516),
    [sym_typeof] = ACTIONS(4516),
    [sym_traits] = ACTIONS(4516),
    [sym_vector] = ACTIONS(4516),
    [sym_void] = ACTIONS(4516),
    [anon_sym_BQUOTE] = ACTIONS(4518),
    [anon_sym_r_DQUOTE] = ACTIONS(4518),
    [anon_sym_x_DQUOTE] = ACTIONS(4518),
    [anon_sym_DQUOTE] = ACTIONS(4518),
    [anon_sym_i_BQUOTE] = ACTIONS(4518),
    [anon_sym_i_DQUOTE] = ACTIONS(4518),
    [anon_sym_iq_LBRACE] = ACTIONS(4518),
    [aux_sym_char_literal_token1] = ACTIONS(4518),
    [anon_sym_SQUOTE] = ACTIONS(4516),
    [anon_sym___DATE__] = ACTIONS(4516),
    [anon_sym___FILE__] = ACTIONS(4516),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4516),
    [anon_sym___FUNCTION__] = ACTIONS(4516),
    [anon_sym___LINE__] = ACTIONS(4516),
    [anon_sym___MODULE__] = ACTIONS(4516),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4516),
    [anon_sym___TIME__] = ACTIONS(4516),
    [anon_sym___TIMESTAMP__] = ACTIONS(4516),
    [anon_sym___VENDOR__] = ACTIONS(4516),
    [anon_sym___VERSION__] = ACTIONS(4516),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4518),
    [sym_float_literal] = ACTIONS(4518),
    [sym__string] = ACTIONS(4518),
  },
  [2370] = {
    [sym_identifier] = ACTIONS(4528),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4531),
    [anon_sym_LBRACE] = ACTIONS(4531),
    [anon_sym_DOT] = ACTIONS(4531),
    [anon_sym_AMP] = ACTIONS(4531),
    [anon_sym_DASH] = ACTIONS(4528),
    [anon_sym_DASH_DASH] = ACTIONS(4531),
    [anon_sym_PLUS] = ACTIONS(4528),
    [anon_sym_PLUS_PLUS] = ACTIONS(4531),
    [anon_sym_BANG] = ACTIONS(4531),
    [anon_sym_LPAREN] = ACTIONS(4531),
    [anon_sym_RPAREN] = ACTIONS(4531),
    [anon_sym_LBRACK] = ACTIONS(4531),
    [anon_sym_SEMI] = ACTIONS(4531),
    [anon_sym_DOLLAR] = ACTIONS(4531),
    [anon_sym_STAR] = ACTIONS(4531),
    [anon_sym_TILDE] = ACTIONS(4531),
    [sym_bool] = ACTIONS(4528),
    [sym_byte] = ACTIONS(4528),
    [sym_ubyte] = ACTIONS(4528),
    [sym_char] = ACTIONS(4528),
    [sym_short] = ACTIONS(4528),
    [sym_ushort] = ACTIONS(4528),
    [sym_int] = ACTIONS(4528),
    [sym_uint] = ACTIONS(4528),
    [sym_long] = ACTIONS(4528),
    [sym_ulong] = ACTIONS(4528),
    [sym_cent] = ACTIONS(4528),
    [sym_ucent] = ACTIONS(4528),
    [sym_wchar] = ACTIONS(4528),
    [sym_dchar] = ACTIONS(4528),
    [sym_float] = ACTIONS(4528),
    [sym_double] = ACTIONS(4528),
    [sym_real] = ACTIONS(4528),
    [sym_ifloat] = ACTIONS(4528),
    [sym_idouble] = ACTIONS(4528),
    [sym_ireal] = ACTIONS(4528),
    [sym_cfloat] = ACTIONS(4528),
    [sym_cdouble] = ACTIONS(4528),
    [sym_creal] = ACTIONS(4528),
    [sym_size_t] = ACTIONS(4528),
    [sym_ptrdiff_t] = ACTIONS(4528),
    [sym_string] = ACTIONS(4528),
    [sym_cstring] = ACTIONS(4528),
    [sym_dstring] = ACTIONS(4528),
    [sym_wstring] = ACTIONS(4528),
    [sym_noreturn] = ACTIONS(4528),
    [sym_true] = ACTIONS(4528),
    [sym_false] = ACTIONS(4528),
    [sym_null] = ACTIONS(4528),
    [sym_super] = ACTIONS(4528),
    [sym_this] = ACTIONS(4528),
    [sym_assert] = ACTIONS(4528),
    [sym_auto] = ACTIONS(4528),
    [sym_cast] = ACTIONS(4528),
    [sym_catch] = ACTIONS(4528),
    [sym_const] = ACTIONS(4528),
    [sym_delegate] = ACTIONS(4528),
    [sym_delete] = ACTIONS(4528),
    [sym_do] = ACTIONS(4528),
    [sym_else] = ACTIONS(4528),
    [sym_finally] = ACTIONS(4528),
    [sym_function] = ACTIONS(4528),
    [sym_immutable] = ACTIONS(4528),
    [sym_import] = ACTIONS(4528),
    [sym_in] = ACTIONS(4528),
    [sym_inout] = ACTIONS(4528),
    [sym_is] = ACTIONS(4528),
    [sym_mixin] = ACTIONS(4528),
    [sym_new] = ACTIONS(4528),
    [sym_out] = ACTIONS(4528),
    [sym_ref] = ACTIONS(4528),
    [sym_shared] = ACTIONS(4528),
    [sym_throw] = ACTIONS(4528),
    [sym_typeid] = ACTIONS(4528),
    [sym_typeof] = ACTIONS(4528),
    [sym_traits] = ACTIONS(4528),
    [sym_vector] = ACTIONS(4528),
    [sym_void] = ACTIONS(4528),
    [anon_sym_BQUOTE] = ACTIONS(4531),
    [anon_sym_r_DQUOTE] = ACTIONS(4531),
    [anon_sym_x_DQUOTE] = ACTIONS(4531),
    [anon_sym_DQUOTE] = ACTIONS(4531),
    [anon_sym_i_BQUOTE] = ACTIONS(4531),
    [anon_sym_i_DQUOTE] = ACTIONS(4531),
    [anon_sym_iq_LBRACE] = ACTIONS(4531),
    [aux_sym_char_literal_token1] = ACTIONS(4531),
    [anon_sym_SQUOTE] = ACTIONS(4528),
    [anon_sym___DATE__] = ACTIONS(4528),
    [anon_sym___FILE__] = ACTIONS(4528),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4528),
    [anon_sym___FUNCTION__] = ACTIONS(4528),
    [anon_sym___LINE__] = ACTIONS(4528),
    [anon_sym___MODULE__] = ACTIONS(4528),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4528),
    [anon_sym___TIME__] = ACTIONS(4528),
    [anon_sym___TIMESTAMP__] = ACTIONS(4528),
    [anon_sym___VENDOR__] = ACTIONS(4528),
    [anon_sym___VERSION__] = ACTIONS(4528),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4531),
    [sym_float_literal] = ACTIONS(4531),
    [sym__string] = ACTIONS(4531),
  },
  [2371] = {
    [sym_identifier] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2782),
    [anon_sym_LBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(2782),
    [anon_sym_AMP] = ACTIONS(2782),
    [anon_sym_DASH] = ACTIONS(2784),
    [anon_sym_DASH_DASH] = ACTIONS(2782),
    [anon_sym_PLUS] = ACTIONS(2784),
    [anon_sym_PLUS_PLUS] = ACTIONS(2782),
    [anon_sym_BANG] = ACTIONS(2782),
    [anon_sym_LPAREN] = ACTIONS(2782),
    [anon_sym_RPAREN] = ACTIONS(2782),
    [anon_sym_LBRACK] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2782),
    [anon_sym_DOLLAR] = ACTIONS(2782),
    [anon_sym_STAR] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2782),
    [sym_bool] = ACTIONS(2784),
    [sym_byte] = ACTIONS(2784),
    [sym_ubyte] = ACTIONS(2784),
    [sym_char] = ACTIONS(2784),
    [sym_short] = ACTIONS(2784),
    [sym_ushort] = ACTIONS(2784),
    [sym_int] = ACTIONS(2784),
    [sym_uint] = ACTIONS(2784),
    [sym_long] = ACTIONS(2784),
    [sym_ulong] = ACTIONS(2784),
    [sym_cent] = ACTIONS(2784),
    [sym_ucent] = ACTIONS(2784),
    [sym_wchar] = ACTIONS(2784),
    [sym_dchar] = ACTIONS(2784),
    [sym_float] = ACTIONS(2784),
    [sym_double] = ACTIONS(2784),
    [sym_real] = ACTIONS(2784),
    [sym_ifloat] = ACTIONS(2784),
    [sym_idouble] = ACTIONS(2784),
    [sym_ireal] = ACTIONS(2784),
    [sym_cfloat] = ACTIONS(2784),
    [sym_cdouble] = ACTIONS(2784),
    [sym_creal] = ACTIONS(2784),
    [sym_size_t] = ACTIONS(2784),
    [sym_ptrdiff_t] = ACTIONS(2784),
    [sym_string] = ACTIONS(2784),
    [sym_cstring] = ACTIONS(2784),
    [sym_dstring] = ACTIONS(2784),
    [sym_wstring] = ACTIONS(2784),
    [sym_noreturn] = ACTIONS(2784),
    [sym_true] = ACTIONS(2784),
    [sym_false] = ACTIONS(2784),
    [sym_null] = ACTIONS(2784),
    [sym_super] = ACTIONS(2784),
    [sym_this] = ACTIONS(2784),
    [sym_assert] = ACTIONS(2784),
    [sym_auto] = ACTIONS(2784),
    [sym_cast] = ACTIONS(2784),
    [sym_const] = ACTIONS(2784),
    [sym_delegate] = ACTIONS(2784),
    [sym_delete] = ACTIONS(2784),
    [sym_do] = ACTIONS(2784),
    [sym_else] = ACTIONS(6588),
    [sym_function] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(2784),
    [sym_import] = ACTIONS(2784),
    [sym_in] = ACTIONS(2784),
    [sym_inout] = ACTIONS(2784),
    [sym_is] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2784),
    [sym_new] = ACTIONS(2784),
    [sym_out] = ACTIONS(2784),
    [sym_ref] = ACTIONS(2784),
    [sym_shared] = ACTIONS(2784),
    [sym_throw] = ACTIONS(2784),
    [sym_typeid] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(2784),
    [sym_traits] = ACTIONS(2784),
    [sym_vector] = ACTIONS(2784),
    [sym_void] = ACTIONS(2784),
    [anon_sym_BQUOTE] = ACTIONS(2782),
    [anon_sym_r_DQUOTE] = ACTIONS(2782),
    [anon_sym_x_DQUOTE] = ACTIONS(2782),
    [anon_sym_DQUOTE] = ACTIONS(2782),
    [anon_sym_i_BQUOTE] = ACTIONS(2782),
    [anon_sym_i_DQUOTE] = ACTIONS(2782),
    [anon_sym_iq_LBRACE] = ACTIONS(2782),
    [aux_sym_char_literal_token1] = ACTIONS(2782),
    [anon_sym_SQUOTE] = ACTIONS(2784),
    [anon_sym___DATE__] = ACTIONS(2784),
    [anon_sym___FILE__] = ACTIONS(2784),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2784),
    [anon_sym___FUNCTION__] = ACTIONS(2784),
    [anon_sym___LINE__] = ACTIONS(2784),
    [anon_sym___MODULE__] = ACTIONS(2784),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2784),
    [anon_sym___TIME__] = ACTIONS(2784),
    [anon_sym___TIMESTAMP__] = ACTIONS(2784),
    [anon_sym___VENDOR__] = ACTIONS(2784),
    [anon_sym___VERSION__] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2782),
    [sym_float_literal] = ACTIONS(2782),
    [sym__string] = ACTIONS(2782),
  },
  [2372] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(6590),
    [sym_function] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [2373] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2663),
    [anon_sym_LBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_AMP] = ACTIONS(2663),
    [anon_sym_DASH] = ACTIONS(2665),
    [anon_sym_DASH_DASH] = ACTIONS(2663),
    [anon_sym_PLUS] = ACTIONS(2665),
    [anon_sym_PLUS_PLUS] = ACTIONS(2663),
    [anon_sym_BANG] = ACTIONS(2663),
    [anon_sym_LPAREN] = ACTIONS(2663),
    [anon_sym_RPAREN] = ACTIONS(2663),
    [anon_sym_LBRACK] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_DOLLAR] = ACTIONS(2663),
    [anon_sym_STAR] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_true] = ACTIONS(2665),
    [sym_false] = ACTIONS(2665),
    [sym_null] = ACTIONS(2665),
    [sym_super] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_assert] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_cast] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_delegate] = ACTIONS(2665),
    [sym_delete] = ACTIONS(2665),
    [sym_do] = ACTIONS(2665),
    [sym_else] = ACTIONS(6594),
    [sym_function] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_in] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_is] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_new] = ACTIONS(2665),
    [sym_out] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_throw] = ACTIONS(2665),
    [sym_typeid] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [anon_sym_BQUOTE] = ACTIONS(2663),
    [anon_sym_r_DQUOTE] = ACTIONS(2663),
    [anon_sym_x_DQUOTE] = ACTIONS(2663),
    [anon_sym_DQUOTE] = ACTIONS(2663),
    [anon_sym_i_BQUOTE] = ACTIONS(2663),
    [anon_sym_i_DQUOTE] = ACTIONS(2663),
    [anon_sym_iq_LBRACE] = ACTIONS(2663),
    [aux_sym_char_literal_token1] = ACTIONS(2663),
    [anon_sym_SQUOTE] = ACTIONS(2665),
    [anon_sym___DATE__] = ACTIONS(2665),
    [anon_sym___FILE__] = ACTIONS(2665),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2665),
    [anon_sym___FUNCTION__] = ACTIONS(2665),
    [anon_sym___LINE__] = ACTIONS(2665),
    [anon_sym___MODULE__] = ACTIONS(2665),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2665),
    [anon_sym___TIME__] = ACTIONS(2665),
    [anon_sym___TIMESTAMP__] = ACTIONS(2665),
    [anon_sym___VENDOR__] = ACTIONS(2665),
    [anon_sym___VERSION__] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2663),
    [sym_float_literal] = ACTIONS(2663),
    [sym__string] = ACTIONS(2663),
  },
  [2374] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(6596),
    [sym_function] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [2375] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(6598),
    [sym_function] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [2376] = {
    [sym_identifier] = ACTIONS(4640),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4642),
    [anon_sym_LBRACE] = ACTIONS(4642),
    [anon_sym_DOT] = ACTIONS(4642),
    [anon_sym_AMP] = ACTIONS(4642),
    [anon_sym_DASH] = ACTIONS(4640),
    [anon_sym_DASH_DASH] = ACTIONS(4642),
    [anon_sym_PLUS] = ACTIONS(4640),
    [anon_sym_PLUS_PLUS] = ACTIONS(4642),
    [anon_sym_BANG] = ACTIONS(4642),
    [anon_sym_LPAREN] = ACTIONS(4642),
    [anon_sym_RPAREN] = ACTIONS(4642),
    [anon_sym_LBRACK] = ACTIONS(4642),
    [anon_sym_SEMI] = ACTIONS(4642),
    [anon_sym_DOLLAR] = ACTIONS(4642),
    [anon_sym_STAR] = ACTIONS(4642),
    [anon_sym_TILDE] = ACTIONS(4642),
    [sym_bool] = ACTIONS(4640),
    [sym_byte] = ACTIONS(4640),
    [sym_ubyte] = ACTIONS(4640),
    [sym_char] = ACTIONS(4640),
    [sym_short] = ACTIONS(4640),
    [sym_ushort] = ACTIONS(4640),
    [sym_int] = ACTIONS(4640),
    [sym_uint] = ACTIONS(4640),
    [sym_long] = ACTIONS(4640),
    [sym_ulong] = ACTIONS(4640),
    [sym_cent] = ACTIONS(4640),
    [sym_ucent] = ACTIONS(4640),
    [sym_wchar] = ACTIONS(4640),
    [sym_dchar] = ACTIONS(4640),
    [sym_float] = ACTIONS(4640),
    [sym_double] = ACTIONS(4640),
    [sym_real] = ACTIONS(4640),
    [sym_ifloat] = ACTIONS(4640),
    [sym_idouble] = ACTIONS(4640),
    [sym_ireal] = ACTIONS(4640),
    [sym_cfloat] = ACTIONS(4640),
    [sym_cdouble] = ACTIONS(4640),
    [sym_creal] = ACTIONS(4640),
    [sym_size_t] = ACTIONS(4640),
    [sym_ptrdiff_t] = ACTIONS(4640),
    [sym_string] = ACTIONS(4640),
    [sym_cstring] = ACTIONS(4640),
    [sym_dstring] = ACTIONS(4640),
    [sym_wstring] = ACTIONS(4640),
    [sym_noreturn] = ACTIONS(4640),
    [sym_true] = ACTIONS(4640),
    [sym_false] = ACTIONS(4640),
    [sym_null] = ACTIONS(4640),
    [sym_super] = ACTIONS(4640),
    [sym_this] = ACTIONS(4640),
    [sym_assert] = ACTIONS(4640),
    [sym_auto] = ACTIONS(4640),
    [sym_cast] = ACTIONS(4640),
    [sym_const] = ACTIONS(4640),
    [sym_delegate] = ACTIONS(4640),
    [sym_delete] = ACTIONS(4640),
    [sym_do] = ACTIONS(4640),
    [sym_else] = ACTIONS(6600),
    [sym_function] = ACTIONS(4640),
    [sym_immutable] = ACTIONS(4640),
    [sym_import] = ACTIONS(4640),
    [sym_in] = ACTIONS(4640),
    [sym_inout] = ACTIONS(4640),
    [sym_is] = ACTIONS(4640),
    [sym_mixin] = ACTIONS(4640),
    [sym_new] = ACTIONS(4640),
    [sym_out] = ACTIONS(4640),
    [sym_ref] = ACTIONS(4640),
    [sym_shared] = ACTIONS(4640),
    [sym_throw] = ACTIONS(4640),
    [sym_typeid] = ACTIONS(4640),
    [sym_typeof] = ACTIONS(4640),
    [sym_traits] = ACTIONS(4640),
    [sym_vector] = ACTIONS(4640),
    [sym_void] = ACTIONS(4640),
    [anon_sym_BQUOTE] = ACTIONS(4642),
    [anon_sym_r_DQUOTE] = ACTIONS(4642),
    [anon_sym_x_DQUOTE] = ACTIONS(4642),
    [anon_sym_DQUOTE] = ACTIONS(4642),
    [anon_sym_i_BQUOTE] = ACTIONS(4642),
    [anon_sym_i_DQUOTE] = ACTIONS(4642),
    [anon_sym_iq_LBRACE] = ACTIONS(4642),
    [aux_sym_char_literal_token1] = ACTIONS(4642),
    [anon_sym_SQUOTE] = ACTIONS(4640),
    [anon_sym___DATE__] = ACTIONS(4640),
    [anon_sym___FILE__] = ACTIONS(4640),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4640),
    [anon_sym___FUNCTION__] = ACTIONS(4640),
    [anon_sym___LINE__] = ACTIONS(4640),
    [anon_sym___MODULE__] = ACTIONS(4640),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4640),
    [anon_sym___TIME__] = ACTIONS(4640),
    [anon_sym___TIMESTAMP__] = ACTIONS(4640),
    [anon_sym___VENDOR__] = ACTIONS(4640),
    [anon_sym___VERSION__] = ACTIONS(4640),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4642),
    [sym_float_literal] = ACTIONS(4642),
    [sym__string] = ACTIONS(4642),
  },
  [2377] = {
    [sym_identifier] = ACTIONS(4446),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4448),
    [anon_sym_LBRACE] = ACTIONS(4448),
    [anon_sym_DOT] = ACTIONS(4448),
    [anon_sym_AMP] = ACTIONS(4448),
    [anon_sym_DASH] = ACTIONS(4446),
    [anon_sym_DASH_DASH] = ACTIONS(4448),
    [anon_sym_PLUS] = ACTIONS(4446),
    [anon_sym_PLUS_PLUS] = ACTIONS(4448),
    [anon_sym_BANG] = ACTIONS(4448),
    [anon_sym_LPAREN] = ACTIONS(4448),
    [anon_sym_RPAREN] = ACTIONS(4448),
    [anon_sym_LBRACK] = ACTIONS(4448),
    [anon_sym_SEMI] = ACTIONS(4448),
    [anon_sym_DOLLAR] = ACTIONS(4448),
    [anon_sym_STAR] = ACTIONS(4448),
    [anon_sym_TILDE] = ACTIONS(4448),
    [sym_bool] = ACTIONS(4446),
    [sym_byte] = ACTIONS(4446),
    [sym_ubyte] = ACTIONS(4446),
    [sym_char] = ACTIONS(4446),
    [sym_short] = ACTIONS(4446),
    [sym_ushort] = ACTIONS(4446),
    [sym_int] = ACTIONS(4446),
    [sym_uint] = ACTIONS(4446),
    [sym_long] = ACTIONS(4446),
    [sym_ulong] = ACTIONS(4446),
    [sym_cent] = ACTIONS(4446),
    [sym_ucent] = ACTIONS(4446),
    [sym_wchar] = ACTIONS(4446),
    [sym_dchar] = ACTIONS(4446),
    [sym_float] = ACTIONS(4446),
    [sym_double] = ACTIONS(4446),
    [sym_real] = ACTIONS(4446),
    [sym_ifloat] = ACTIONS(4446),
    [sym_idouble] = ACTIONS(4446),
    [sym_ireal] = ACTIONS(4446),
    [sym_cfloat] = ACTIONS(4446),
    [sym_cdouble] = ACTIONS(4446),
    [sym_creal] = ACTIONS(4446),
    [sym_size_t] = ACTIONS(4446),
    [sym_ptrdiff_t] = ACTIONS(4446),
    [sym_string] = ACTIONS(4446),
    [sym_cstring] = ACTIONS(4446),
    [sym_dstring] = ACTIONS(4446),
    [sym_wstring] = ACTIONS(4446),
    [sym_noreturn] = ACTIONS(4446),
    [sym_true] = ACTIONS(4446),
    [sym_false] = ACTIONS(4446),
    [sym_null] = ACTIONS(4446),
    [sym_super] = ACTIONS(4446),
    [sym_this] = ACTIONS(4446),
    [sym_assert] = ACTIONS(4446),
    [sym_auto] = ACTIONS(4446),
    [sym_cast] = ACTIONS(4446),
    [sym_const] = ACTIONS(4446),
    [sym_delegate] = ACTIONS(4446),
    [sym_delete] = ACTIONS(4446),
    [sym_do] = ACTIONS(4446),
    [sym_else] = ACTIONS(6602),
    [sym_function] = ACTIONS(4446),
    [sym_immutable] = ACTIONS(4446),
    [sym_import] = ACTIONS(4446),
    [sym_in] = ACTIONS(4446),
    [sym_inout] = ACTIONS(4446),
    [sym_is] = ACTIONS(4446),
    [sym_mixin] = ACTIONS(4446),
    [sym_new] = ACTIONS(4446),
    [sym_out] = ACTIONS(4446),
    [sym_ref] = ACTIONS(4446),
    [sym_shared] = ACTIONS(4446),
    [sym_throw] = ACTIONS(4446),
    [sym_typeid] = ACTIONS(4446),
    [sym_typeof] = ACTIONS(4446),
    [sym_traits] = ACTIONS(4446),
    [sym_vector] = ACTIONS(4446),
    [sym_void] = ACTIONS(4446),
    [anon_sym_BQUOTE] = ACTIONS(4448),
    [anon_sym_r_DQUOTE] = ACTIONS(4448),
    [anon_sym_x_DQUOTE] = ACTIONS(4448),
    [anon_sym_DQUOTE] = ACTIONS(4448),
    [anon_sym_i_BQUOTE] = ACTIONS(4448),
    [anon_sym_i_DQUOTE] = ACTIONS(4448),
    [anon_sym_iq_LBRACE] = ACTIONS(4448),
    [aux_sym_char_literal_token1] = ACTIONS(4448),
    [anon_sym_SQUOTE] = ACTIONS(4446),
    [anon_sym___DATE__] = ACTIONS(4446),
    [anon_sym___FILE__] = ACTIONS(4446),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4446),
    [anon_sym___FUNCTION__] = ACTIONS(4446),
    [anon_sym___LINE__] = ACTIONS(4446),
    [anon_sym___MODULE__] = ACTIONS(4446),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4446),
    [anon_sym___TIME__] = ACTIONS(4446),
    [anon_sym___TIMESTAMP__] = ACTIONS(4446),
    [anon_sym___VENDOR__] = ACTIONS(4446),
    [anon_sym___VERSION__] = ACTIONS(4446),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4448),
    [sym_float_literal] = ACTIONS(4448),
    [sym__string] = ACTIONS(4448),
  },
  [2378] = {
    [sym_identifier] = ACTIONS(4359),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4361),
    [anon_sym_LBRACE] = ACTIONS(4361),
    [anon_sym_DOT] = ACTIONS(4361),
    [anon_sym_AMP] = ACTIONS(4361),
    [anon_sym_DASH] = ACTIONS(4359),
    [anon_sym_DASH_DASH] = ACTIONS(4361),
    [anon_sym_PLUS] = ACTIONS(4359),
    [anon_sym_PLUS_PLUS] = ACTIONS(4361),
    [anon_sym_BANG] = ACTIONS(4361),
    [anon_sym_LPAREN] = ACTIONS(4361),
    [anon_sym_RPAREN] = ACTIONS(4361),
    [anon_sym_LBRACK] = ACTIONS(4361),
    [anon_sym_SEMI] = ACTIONS(4361),
    [anon_sym_DOLLAR] = ACTIONS(4361),
    [anon_sym_STAR] = ACTIONS(4361),
    [anon_sym_TILDE] = ACTIONS(4361),
    [sym_bool] = ACTIONS(4359),
    [sym_byte] = ACTIONS(4359),
    [sym_ubyte] = ACTIONS(4359),
    [sym_char] = ACTIONS(4359),
    [sym_short] = ACTIONS(4359),
    [sym_ushort] = ACTIONS(4359),
    [sym_int] = ACTIONS(4359),
    [sym_uint] = ACTIONS(4359),
    [sym_long] = ACTIONS(4359),
    [sym_ulong] = ACTIONS(4359),
    [sym_cent] = ACTIONS(4359),
    [sym_ucent] = ACTIONS(4359),
    [sym_wchar] = ACTIONS(4359),
    [sym_dchar] = ACTIONS(4359),
    [sym_float] = ACTIONS(4359),
    [sym_double] = ACTIONS(4359),
    [sym_real] = ACTIONS(4359),
    [sym_ifloat] = ACTIONS(4359),
    [sym_idouble] = ACTIONS(4359),
    [sym_ireal] = ACTIONS(4359),
    [sym_cfloat] = ACTIONS(4359),
    [sym_cdouble] = ACTIONS(4359),
    [sym_creal] = ACTIONS(4359),
    [sym_size_t] = ACTIONS(4359),
    [sym_ptrdiff_t] = ACTIONS(4359),
    [sym_string] = ACTIONS(4359),
    [sym_cstring] = ACTIONS(4359),
    [sym_dstring] = ACTIONS(4359),
    [sym_wstring] = ACTIONS(4359),
    [sym_noreturn] = ACTIONS(4359),
    [sym_true] = ACTIONS(4359),
    [sym_false] = ACTIONS(4359),
    [sym_null] = ACTIONS(4359),
    [sym_super] = ACTIONS(4359),
    [sym_this] = ACTIONS(4359),
    [sym_assert] = ACTIONS(4359),
    [sym_auto] = ACTIONS(4359),
    [sym_cast] = ACTIONS(4359),
    [sym_const] = ACTIONS(4359),
    [sym_delegate] = ACTIONS(4359),
    [sym_delete] = ACTIONS(4359),
    [sym_do] = ACTIONS(4359),
    [sym_else] = ACTIONS(6604),
    [sym_function] = ACTIONS(4359),
    [sym_immutable] = ACTIONS(4359),
    [sym_import] = ACTIONS(4359),
    [sym_in] = ACTIONS(4359),
    [sym_inout] = ACTIONS(4359),
    [sym_is] = ACTIONS(4359),
    [sym_mixin] = ACTIONS(4359),
    [sym_new] = ACTIONS(4359),
    [sym_out] = ACTIONS(4359),
    [sym_ref] = ACTIONS(4359),
    [sym_shared] = ACTIONS(4359),
    [sym_throw] = ACTIONS(4359),
    [sym_typeid] = ACTIONS(4359),
    [sym_typeof] = ACTIONS(4359),
    [sym_traits] = ACTIONS(4359),
    [sym_vector] = ACTIONS(4359),
    [sym_void] = ACTIONS(4359),
    [anon_sym_BQUOTE] = ACTIONS(4361),
    [anon_sym_r_DQUOTE] = ACTIONS(4361),
    [anon_sym_x_DQUOTE] = ACTIONS(4361),
    [anon_sym_DQUOTE] = ACTIONS(4361),
    [anon_sym_i_BQUOTE] = ACTIONS(4361),
    [anon_sym_i_DQUOTE] = ACTIONS(4361),
    [anon_sym_iq_LBRACE] = ACTIONS(4361),
    [aux_sym_char_literal_token1] = ACTIONS(4361),
    [anon_sym_SQUOTE] = ACTIONS(4359),
    [anon_sym___DATE__] = ACTIONS(4359),
    [anon_sym___FILE__] = ACTIONS(4359),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4359),
    [anon_sym___FUNCTION__] = ACTIONS(4359),
    [anon_sym___LINE__] = ACTIONS(4359),
    [anon_sym___MODULE__] = ACTIONS(4359),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4359),
    [anon_sym___TIME__] = ACTIONS(4359),
    [anon_sym___TIMESTAMP__] = ACTIONS(4359),
    [anon_sym___VENDOR__] = ACTIONS(4359),
    [anon_sym___VERSION__] = ACTIONS(4359),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4361),
    [sym_float_literal] = ACTIONS(4361),
    [sym__string] = ACTIONS(4361),
  },
  [2379] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(2796),
    [anon_sym_LBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_AMP] = ACTIONS(2796),
    [anon_sym_DASH] = ACTIONS(2798),
    [anon_sym_DASH_DASH] = ACTIONS(2796),
    [anon_sym_PLUS] = ACTIONS(2798),
    [anon_sym_PLUS_PLUS] = ACTIONS(2796),
    [anon_sym_BANG] = ACTIONS(2796),
    [anon_sym_LPAREN] = ACTIONS(2796),
    [anon_sym_RPAREN] = ACTIONS(2796),
    [anon_sym_LBRACK] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_DOLLAR] = ACTIONS(2796),
    [anon_sym_STAR] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_true] = ACTIONS(2798),
    [sym_false] = ACTIONS(2798),
    [sym_null] = ACTIONS(2798),
    [sym_super] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_assert] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_cast] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_delegate] = ACTIONS(2798),
    [sym_delete] = ACTIONS(2798),
    [sym_do] = ACTIONS(2798),
    [sym_else] = ACTIONS(6606),
    [sym_function] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_in] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_is] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_new] = ACTIONS(2798),
    [sym_out] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_throw] = ACTIONS(2798),
    [sym_typeid] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [anon_sym_BQUOTE] = ACTIONS(2796),
    [anon_sym_r_DQUOTE] = ACTIONS(2796),
    [anon_sym_x_DQUOTE] = ACTIONS(2796),
    [anon_sym_DQUOTE] = ACTIONS(2796),
    [anon_sym_i_BQUOTE] = ACTIONS(2796),
    [anon_sym_i_DQUOTE] = ACTIONS(2796),
    [anon_sym_iq_LBRACE] = ACTIONS(2796),
    [aux_sym_char_literal_token1] = ACTIONS(2796),
    [anon_sym_SQUOTE] = ACTIONS(2798),
    [anon_sym___DATE__] = ACTIONS(2798),
    [anon_sym___FILE__] = ACTIONS(2798),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(2798),
    [anon_sym___FUNCTION__] = ACTIONS(2798),
    [anon_sym___LINE__] = ACTIONS(2798),
    [anon_sym___MODULE__] = ACTIONS(2798),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(2798),
    [anon_sym___TIME__] = ACTIONS(2798),
    [anon_sym___TIMESTAMP__] = ACTIONS(2798),
    [anon_sym___VENDOR__] = ACTIONS(2798),
    [anon_sym___VERSION__] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(2796),
    [sym_float_literal] = ACTIONS(2796),
    [sym__string] = ACTIONS(2796),
  },
  [2380] = {
    [sym_identifier] = ACTIONS(4365),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(4368),
    [anon_sym_LBRACE] = ACTIONS(4368),
    [anon_sym_DOT] = ACTIONS(4368),
    [anon_sym_AMP] = ACTIONS(4368),
    [anon_sym_DASH] = ACTIONS(4365),
    [anon_sym_DASH_DASH] = ACTIONS(4368),
    [anon_sym_PLUS] = ACTIONS(4365),
    [anon_sym_PLUS_PLUS] = ACTIONS(4368),
    [anon_sym_BANG] = ACTIONS(4368),
    [anon_sym_LPAREN] = ACTIONS(4368),
    [anon_sym_RPAREN] = ACTIONS(4368),
    [anon_sym_LBRACK] = ACTIONS(4368),
    [anon_sym_SEMI] = ACTIONS(4368),
    [anon_sym_DOLLAR] = ACTIONS(4368),
    [anon_sym_STAR] = ACTIONS(4368),
    [anon_sym_TILDE] = ACTIONS(4368),
    [sym_bool] = ACTIONS(4365),
    [sym_byte] = ACTIONS(4365),
    [sym_ubyte] = ACTIONS(4365),
    [sym_char] = ACTIONS(4365),
    [sym_short] = ACTIONS(4365),
    [sym_ushort] = ACTIONS(4365),
    [sym_int] = ACTIONS(4365),
    [sym_uint] = ACTIONS(4365),
    [sym_long] = ACTIONS(4365),
    [sym_ulong] = ACTIONS(4365),
    [sym_cent] = ACTIONS(4365),
    [sym_ucent] = ACTIONS(4365),
    [sym_wchar] = ACTIONS(4365),
    [sym_dchar] = ACTIONS(4365),
    [sym_float] = ACTIONS(4365),
    [sym_double] = ACTIONS(4365),
    [sym_real] = ACTIONS(4365),
    [sym_ifloat] = ACTIONS(4365),
    [sym_idouble] = ACTIONS(4365),
    [sym_ireal] = ACTIONS(4365),
    [sym_cfloat] = ACTIONS(4365),
    [sym_cdouble] = ACTIONS(4365),
    [sym_creal] = ACTIONS(4365),
    [sym_size_t] = ACTIONS(4365),
    [sym_ptrdiff_t] = ACTIONS(4365),
    [sym_string] = ACTIONS(4365),
    [sym_cstring] = ACTIONS(4365),
    [sym_dstring] = ACTIONS(4365),
    [sym_wstring] = ACTIONS(4365),
    [sym_noreturn] = ACTIONS(4365),
    [sym_true] = ACTIONS(4365),
    [sym_false] = ACTIONS(4365),
    [sym_null] = ACTIONS(4365),
    [sym_super] = ACTIONS(4365),
    [sym_this] = ACTIONS(4365),
    [sym_assert] = ACTIONS(4365),
    [sym_auto] = ACTIONS(4365),
    [sym_cast] = ACTIONS(4365),
    [sym_const] = ACTIONS(4365),
    [sym_delegate] = ACTIONS(4365),
    [sym_delete] = ACTIONS(4365),
    [sym_do] = ACTIONS(4365),
    [sym_else] = ACTIONS(6608),
    [sym_function] = ACTIONS(4365),
    [sym_immutable] = ACTIONS(4365),
    [sym_import] = ACTIONS(4365),
    [sym_in] = ACTIONS(4365),
    [sym_inout] = ACTIONS(4365),
    [sym_is] = ACTIONS(4365),
    [sym_mixin] = ACTIONS(4365),
    [sym_new] = ACTIONS(4365),
    [sym_out] = ACTIONS(4365),
    [sym_ref] = ACTIONS(4365),
    [sym_shared] = ACTIONS(4365),
    [sym_throw] = ACTIONS(4365),
    [sym_typeid] = ACTIONS(4365),
    [sym_typeof] = ACTIONS(4365),
    [sym_traits] = ACTIONS(4365),
    [sym_vector] = ACTIONS(4365),
    [sym_void] = ACTIONS(4365),
    [anon_sym_BQUOTE] = ACTIONS(4368),
    [anon_sym_r_DQUOTE] = ACTIONS(4368),
    [anon_sym_x_DQUOTE] = ACTIONS(4368),
    [anon_sym_DQUOTE] = ACTIONS(4368),
    [anon_sym_i_BQUOTE] = ACTIONS(4368),
    [anon_sym_i_DQUOTE] = ACTIONS(4368),
    [anon_sym_iq_LBRACE] = ACTIONS(4368),
    [aux_sym_char_literal_token1] = ACTIONS(4368),
    [anon_sym_SQUOTE] = ACTIONS(4365),
    [anon_sym___DATE__] = ACTIONS(4365),
    [anon_sym___FILE__] = ACTIONS(4365),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(4365),
    [anon_sym___FUNCTION__] = ACTIONS(4365),
    [anon_sym___LINE__] = ACTIONS(4365),
    [anon_sym___MODULE__] = ACTIONS(4365),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(4365),
    [anon_sym___TIME__] = ACTIONS(4365),
    [anon_sym___TIMESTAMP__] = ACTIONS(4365),
    [anon_sym___VENDOR__] = ACTIONS(4365),
    [anon_sym___VERSION__] = ACTIONS(4365),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(4368),
    [sym_float_literal] = ACTIONS(4368),
    [sym__string] = ACTIONS(4368),
  },
  [2381] = {
    [sym_storage_class] = STATE(3086),
    [sym_type] = STATE(5988),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(8059),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3086),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2382] = {
    [sym_storage_class] = STATE(2395),
    [sym_type] = STATE(5613),
    [sym_type_ctor] = STATE(3239),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(6564),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(2395),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6635),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6637),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2383] = {
    [sym_storage_class] = STATE(3069),
    [sym_type] = STATE(6102),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7786),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3069),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2384] = {
    [sym_storage_class] = STATE(3098),
    [sym_type] = STATE(6091),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7792),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3098),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2385] = {
    [sym_storage_class] = STATE(3157),
    [sym_type] = STATE(5728),
    [sym_type_ctor] = STATE(3239),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(6652),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3157),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6635),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6637),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2386] = {
    [sym_storage_class] = STATE(3094),
    [sym_type] = STATE(5787),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7977),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3094),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2387] = {
    [sym_storage_class] = STATE(3092),
    [sym_type] = STATE(5760),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7581),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3092),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2388] = {
    [sym_storage_class] = STATE(3078),
    [sym_type] = STATE(6134),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7216),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3078),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2389] = {
    [sym_storage_class] = STATE(3068),
    [sym_type] = STATE(5949),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7893),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3068),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2390] = {
    [sym_storage_class] = STATE(3096),
    [sym_type] = STATE(6075),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7116),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3096),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2391] = {
    [sym_storage_class] = STATE(3067),
    [sym_type] = STATE(6094),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7229),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3067),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2392] = {
    [sym_storage_class] = STATE(3070),
    [sym_type] = STATE(6381),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7429),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3070),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2393] = {
    [sym_storage_class] = STATE(2385),
    [sym_type] = STATE(5579),
    [sym_type_ctor] = STATE(3239),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(6822),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(2385),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6635),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6637),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2394] = {
    [sym_storage_class] = STATE(3085),
    [sym_type] = STATE(5953),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7040),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3085),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2395] = {
    [sym_storage_class] = STATE(3157),
    [sym_type] = STATE(5579),
    [sym_type_ctor] = STATE(3239),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(6822),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3157),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6635),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6637),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2396] = {
    [sym_storage_class] = STATE(3073),
    [sym_type] = STATE(6356),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_function_literal] = STATE(7602),
    [sym__parameter_with_member_attributes] = STATE(4893),
    [sym_block_statement] = STATE(6411),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6411),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3073),
    [aux_sym_type_repeat1] = STATE(3799),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(6611),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6621),
    [sym_const] = ACTIONS(2964),
    [sym_delegate] = ACTIONS(6623),
    [sym_deprecated] = ACTIONS(6617),
    [sym_do] = ACTIONS(6625),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_function] = ACTIONS(6629),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_out] = ACTIONS(167),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6633),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2397] = {
    [sym_identifier] = ACTIONS(3008),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3010),
    [anon_sym_DOT] = ACTIONS(3010),
    [anon_sym_BANG] = ACTIONS(3010),
    [anon_sym_LPAREN] = ACTIONS(3010),
    [anon_sym_RPAREN] = ACTIONS(3010),
    [anon_sym_LBRACK] = ACTIONS(3010),
    [anon_sym_RBRACK] = ACTIONS(3010),
    [anon_sym_COMMA] = ACTIONS(3010),
    [anon_sym_SEMI] = ACTIONS(3010),
    [anon_sym_COLON] = ACTIONS(3010),
    [anon_sym_EQ_EQ] = ACTIONS(3010),
    [anon_sym_STAR] = ACTIONS(3010),
    [anon_sym_TILDE] = ACTIONS(3010),
    [anon_sym_AT] = ACTIONS(3010),
    [sym_bool] = ACTIONS(3008),
    [sym_byte] = ACTIONS(3008),
    [sym_ubyte] = ACTIONS(3008),
    [sym_char] = ACTIONS(3008),
    [sym_short] = ACTIONS(3008),
    [sym_ushort] = ACTIONS(3008),
    [sym_int] = ACTIONS(3008),
    [sym_uint] = ACTIONS(3008),
    [sym_long] = ACTIONS(3008),
    [sym_ulong] = ACTIONS(3008),
    [sym_cent] = ACTIONS(3008),
    [sym_ucent] = ACTIONS(3008),
    [sym_wchar] = ACTIONS(3008),
    [sym_dchar] = ACTIONS(3008),
    [sym_float] = ACTIONS(3008),
    [sym_double] = ACTIONS(3008),
    [sym_real] = ACTIONS(3008),
    [sym_ifloat] = ACTIONS(3008),
    [sym_idouble] = ACTIONS(3008),
    [sym_ireal] = ACTIONS(3008),
    [sym_cfloat] = ACTIONS(3008),
    [sym_cdouble] = ACTIONS(3008),
    [sym_creal] = ACTIONS(3008),
    [sym_size_t] = ACTIONS(3008),
    [sym_ptrdiff_t] = ACTIONS(3008),
    [sym_string] = ACTIONS(3008),
    [sym_cstring] = ACTIONS(3008),
    [sym_dstring] = ACTIONS(3008),
    [sym_wstring] = ACTIONS(3008),
    [sym_noreturn] = ACTIONS(3008),
    [sym_this] = ACTIONS(3008),
    [sym_abstract] = ACTIONS(3008),
    [sym_alias] = ACTIONS(3008),
    [sym_align] = ACTIONS(3008),
    [sym_auto] = ACTIONS(3008),
    [sym_class] = ACTIONS(3008),
    [sym_const] = ACTIONS(3008),
    [sym_debug] = ACTIONS(3008),
    [sym_delegate] = ACTIONS(3008),
    [sym_deprecated] = ACTIONS(3008),
    [sym_enum] = ACTIONS(3008),
    [sym_export] = ACTIONS(3008),
    [sym_extern] = ACTIONS(3008),
    [sym_final] = ACTIONS(3008),
    [sym_function] = ACTIONS(3008),
    [sym_immutable] = ACTIONS(3008),
    [sym_import] = ACTIONS(3008),
    [sym_inout] = ACTIONS(3008),
    [sym_interface] = ACTIONS(3008),
    [sym_invariant] = ACTIONS(3008),
    [sym_mixin] = ACTIONS(3008),
    [sym_module] = ACTIONS(3008),
    [sym_nothrow] = ACTIONS(3008),
    [sym_override] = ACTIONS(3008),
    [sym_package] = ACTIONS(3008),
    [sym_pragma] = ACTIONS(3008),
    [sym_private] = ACTIONS(3008),
    [sym_protected] = ACTIONS(3008),
    [sym_public] = ACTIONS(3008),
    [sym_pure] = ACTIONS(3008),
    [sym_ref] = ACTIONS(3008),
    [sym_return] = ACTIONS(3008),
    [sym_scope] = ACTIONS(3008),
    [sym_shared] = ACTIONS(3008),
    [sym_static] = ACTIONS(3008),
    [sym_struct] = ACTIONS(3008),
    [sym_synchronized] = ACTIONS(3008),
    [sym_template] = ACTIONS(3008),
    [sym_typeof] = ACTIONS(3008),
    [sym_union] = ACTIONS(3008),
    [sym_unittest] = ACTIONS(3008),
    [sym_version] = ACTIONS(3008),
    [sym_gshared] = ACTIONS(3008),
    [sym_traits] = ACTIONS(3008),
    [sym_vector] = ACTIONS(3008),
    [sym_void] = ACTIONS(3008),
    [sym_directive] = ACTIONS(3),
  },
  [2398] = {
    [sym_identifier] = ACTIONS(3056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3058),
    [anon_sym_DOT] = ACTIONS(3058),
    [anon_sym_BANG] = ACTIONS(3058),
    [anon_sym_LPAREN] = ACTIONS(3058),
    [anon_sym_RPAREN] = ACTIONS(3058),
    [anon_sym_LBRACK] = ACTIONS(3058),
    [anon_sym_RBRACK] = ACTIONS(3058),
    [anon_sym_COMMA] = ACTIONS(3058),
    [anon_sym_SEMI] = ACTIONS(3058),
    [anon_sym_COLON] = ACTIONS(3058),
    [anon_sym_EQ_EQ] = ACTIONS(3058),
    [anon_sym_STAR] = ACTIONS(3058),
    [anon_sym_TILDE] = ACTIONS(3058),
    [anon_sym_AT] = ACTIONS(3058),
    [sym_bool] = ACTIONS(3056),
    [sym_byte] = ACTIONS(3056),
    [sym_ubyte] = ACTIONS(3056),
    [sym_char] = ACTIONS(3056),
    [sym_short] = ACTIONS(3056),
    [sym_ushort] = ACTIONS(3056),
    [sym_int] = ACTIONS(3056),
    [sym_uint] = ACTIONS(3056),
    [sym_long] = ACTIONS(3056),
    [sym_ulong] = ACTIONS(3056),
    [sym_cent] = ACTIONS(3056),
    [sym_ucent] = ACTIONS(3056),
    [sym_wchar] = ACTIONS(3056),
    [sym_dchar] = ACTIONS(3056),
    [sym_float] = ACTIONS(3056),
    [sym_double] = ACTIONS(3056),
    [sym_real] = ACTIONS(3056),
    [sym_ifloat] = ACTIONS(3056),
    [sym_idouble] = ACTIONS(3056),
    [sym_ireal] = ACTIONS(3056),
    [sym_cfloat] = ACTIONS(3056),
    [sym_cdouble] = ACTIONS(3056),
    [sym_creal] = ACTIONS(3056),
    [sym_size_t] = ACTIONS(3056),
    [sym_ptrdiff_t] = ACTIONS(3056),
    [sym_string] = ACTIONS(3056),
    [sym_cstring] = ACTIONS(3056),
    [sym_dstring] = ACTIONS(3056),
    [sym_wstring] = ACTIONS(3056),
    [sym_noreturn] = ACTIONS(3056),
    [sym_this] = ACTIONS(3056),
    [sym_abstract] = ACTIONS(3056),
    [sym_alias] = ACTIONS(3056),
    [sym_align] = ACTIONS(3056),
    [sym_auto] = ACTIONS(3056),
    [sym_class] = ACTIONS(3056),
    [sym_const] = ACTIONS(3056),
    [sym_debug] = ACTIONS(3056),
    [sym_delegate] = ACTIONS(3056),
    [sym_deprecated] = ACTIONS(3056),
    [sym_enum] = ACTIONS(3056),
    [sym_export] = ACTIONS(3056),
    [sym_extern] = ACTIONS(3056),
    [sym_final] = ACTIONS(3056),
    [sym_function] = ACTIONS(3056),
    [sym_immutable] = ACTIONS(3056),
    [sym_import] = ACTIONS(3056),
    [sym_inout] = ACTIONS(3056),
    [sym_interface] = ACTIONS(3056),
    [sym_invariant] = ACTIONS(3056),
    [sym_mixin] = ACTIONS(3056),
    [sym_module] = ACTIONS(3056),
    [sym_nothrow] = ACTIONS(3056),
    [sym_override] = ACTIONS(3056),
    [sym_package] = ACTIONS(3056),
    [sym_pragma] = ACTIONS(3056),
    [sym_private] = ACTIONS(3056),
    [sym_protected] = ACTIONS(3056),
    [sym_public] = ACTIONS(3056),
    [sym_pure] = ACTIONS(3056),
    [sym_ref] = ACTIONS(3056),
    [sym_return] = ACTIONS(3056),
    [sym_scope] = ACTIONS(3056),
    [sym_shared] = ACTIONS(3056),
    [sym_static] = ACTIONS(3056),
    [sym_struct] = ACTIONS(3056),
    [sym_synchronized] = ACTIONS(3056),
    [sym_template] = ACTIONS(3056),
    [sym_typeof] = ACTIONS(3056),
    [sym_union] = ACTIONS(3056),
    [sym_unittest] = ACTIONS(3056),
    [sym_version] = ACTIONS(3056),
    [sym_gshared] = ACTIONS(3056),
    [sym_traits] = ACTIONS(3056),
    [sym_vector] = ACTIONS(3056),
    [sym_void] = ACTIONS(3056),
    [sym_directive] = ACTIONS(3),
  },
  [2399] = {
    [sym_identifier] = ACTIONS(6639),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6641),
    [anon_sym_DOT] = ACTIONS(6641),
    [anon_sym_BANG] = ACTIONS(6641),
    [anon_sym_LPAREN] = ACTIONS(6641),
    [anon_sym_RPAREN] = ACTIONS(6641),
    [anon_sym_LBRACK] = ACTIONS(6641),
    [anon_sym_RBRACK] = ACTIONS(6641),
    [anon_sym_COMMA] = ACTIONS(6641),
    [anon_sym_SEMI] = ACTIONS(6641),
    [anon_sym_COLON] = ACTIONS(6641),
    [anon_sym_EQ_EQ] = ACTIONS(6641),
    [anon_sym_STAR] = ACTIONS(6641),
    [anon_sym_TILDE] = ACTIONS(6641),
    [anon_sym_AT] = ACTIONS(6641),
    [sym_bool] = ACTIONS(6639),
    [sym_byte] = ACTIONS(6639),
    [sym_ubyte] = ACTIONS(6639),
    [sym_char] = ACTIONS(6639),
    [sym_short] = ACTIONS(6639),
    [sym_ushort] = ACTIONS(6639),
    [sym_int] = ACTIONS(6639),
    [sym_uint] = ACTIONS(6639),
    [sym_long] = ACTIONS(6639),
    [sym_ulong] = ACTIONS(6639),
    [sym_cent] = ACTIONS(6639),
    [sym_ucent] = ACTIONS(6639),
    [sym_wchar] = ACTIONS(6639),
    [sym_dchar] = ACTIONS(6639),
    [sym_float] = ACTIONS(6639),
    [sym_double] = ACTIONS(6639),
    [sym_real] = ACTIONS(6639),
    [sym_ifloat] = ACTIONS(6639),
    [sym_idouble] = ACTIONS(6639),
    [sym_ireal] = ACTIONS(6639),
    [sym_cfloat] = ACTIONS(6639),
    [sym_cdouble] = ACTIONS(6639),
    [sym_creal] = ACTIONS(6639),
    [sym_size_t] = ACTIONS(6639),
    [sym_ptrdiff_t] = ACTIONS(6639),
    [sym_string] = ACTIONS(6639),
    [sym_cstring] = ACTIONS(6639),
    [sym_dstring] = ACTIONS(6639),
    [sym_wstring] = ACTIONS(6639),
    [sym_noreturn] = ACTIONS(6639),
    [sym_this] = ACTIONS(6639),
    [sym_abstract] = ACTIONS(6639),
    [sym_alias] = ACTIONS(6639),
    [sym_align] = ACTIONS(6639),
    [sym_auto] = ACTIONS(6639),
    [sym_class] = ACTIONS(6639),
    [sym_const] = ACTIONS(6639),
    [sym_debug] = ACTIONS(6639),
    [sym_delegate] = ACTIONS(6639),
    [sym_deprecated] = ACTIONS(6639),
    [sym_enum] = ACTIONS(6639),
    [sym_export] = ACTIONS(6639),
    [sym_extern] = ACTIONS(6639),
    [sym_final] = ACTIONS(6639),
    [sym_function] = ACTIONS(6639),
    [sym_immutable] = ACTIONS(6639),
    [sym_import] = ACTIONS(6639),
    [sym_inout] = ACTIONS(6639),
    [sym_interface] = ACTIONS(6639),
    [sym_invariant] = ACTIONS(6639),
    [sym_mixin] = ACTIONS(6639),
    [sym_module] = ACTIONS(6639),
    [sym_nothrow] = ACTIONS(6639),
    [sym_override] = ACTIONS(6639),
    [sym_package] = ACTIONS(6639),
    [sym_pragma] = ACTIONS(6639),
    [sym_private] = ACTIONS(6639),
    [sym_protected] = ACTIONS(6639),
    [sym_public] = ACTIONS(6639),
    [sym_pure] = ACTIONS(6639),
    [sym_ref] = ACTIONS(6639),
    [sym_return] = ACTIONS(6639),
    [sym_scope] = ACTIONS(6639),
    [sym_shared] = ACTIONS(6639),
    [sym_static] = ACTIONS(6639),
    [sym_struct] = ACTIONS(6639),
    [sym_synchronized] = ACTIONS(6639),
    [sym_template] = ACTIONS(6639),
    [sym_typeof] = ACTIONS(6639),
    [sym_union] = ACTIONS(6639),
    [sym_unittest] = ACTIONS(6639),
    [sym_version] = ACTIONS(6639),
    [sym_gshared] = ACTIONS(6639),
    [sym_traits] = ACTIONS(6639),
    [sym_vector] = ACTIONS(6639),
    [sym_void] = ACTIONS(6639),
    [sym_directive] = ACTIONS(3),
  },
  [2400] = {
    [sym_identifier] = ACTIONS(3036),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3038),
    [anon_sym_DOT] = ACTIONS(3038),
    [anon_sym_BANG] = ACTIONS(3038),
    [anon_sym_LPAREN] = ACTIONS(3038),
    [anon_sym_RPAREN] = ACTIONS(3038),
    [anon_sym_LBRACK] = ACTIONS(3038),
    [anon_sym_RBRACK] = ACTIONS(3038),
    [anon_sym_COMMA] = ACTIONS(3038),
    [anon_sym_SEMI] = ACTIONS(3038),
    [anon_sym_COLON] = ACTIONS(3038),
    [anon_sym_EQ_EQ] = ACTIONS(3038),
    [anon_sym_STAR] = ACTIONS(3038),
    [anon_sym_TILDE] = ACTIONS(3038),
    [anon_sym_AT] = ACTIONS(3038),
    [sym_bool] = ACTIONS(3036),
    [sym_byte] = ACTIONS(3036),
    [sym_ubyte] = ACTIONS(3036),
    [sym_char] = ACTIONS(3036),
    [sym_short] = ACTIONS(3036),
    [sym_ushort] = ACTIONS(3036),
    [sym_int] = ACTIONS(3036),
    [sym_uint] = ACTIONS(3036),
    [sym_long] = ACTIONS(3036),
    [sym_ulong] = ACTIONS(3036),
    [sym_cent] = ACTIONS(3036),
    [sym_ucent] = ACTIONS(3036),
    [sym_wchar] = ACTIONS(3036),
    [sym_dchar] = ACTIONS(3036),
    [sym_float] = ACTIONS(3036),
    [sym_double] = ACTIONS(3036),
    [sym_real] = ACTIONS(3036),
    [sym_ifloat] = ACTIONS(3036),
    [sym_idouble] = ACTIONS(3036),
    [sym_ireal] = ACTIONS(3036),
    [sym_cfloat] = ACTIONS(3036),
    [sym_cdouble] = ACTIONS(3036),
    [sym_creal] = ACTIONS(3036),
    [sym_size_t] = ACTIONS(3036),
    [sym_ptrdiff_t] = ACTIONS(3036),
    [sym_string] = ACTIONS(3036),
    [sym_cstring] = ACTIONS(3036),
    [sym_dstring] = ACTIONS(3036),
    [sym_wstring] = ACTIONS(3036),
    [sym_noreturn] = ACTIONS(3036),
    [sym_this] = ACTIONS(3036),
    [sym_abstract] = ACTIONS(3036),
    [sym_alias] = ACTIONS(3036),
    [sym_align] = ACTIONS(3036),
    [sym_auto] = ACTIONS(3036),
    [sym_class] = ACTIONS(3036),
    [sym_const] = ACTIONS(3036),
    [sym_debug] = ACTIONS(3036),
    [sym_delegate] = ACTIONS(3036),
    [sym_deprecated] = ACTIONS(3036),
    [sym_enum] = ACTIONS(3036),
    [sym_export] = ACTIONS(3036),
    [sym_extern] = ACTIONS(3036),
    [sym_final] = ACTIONS(3036),
    [sym_function] = ACTIONS(3036),
    [sym_immutable] = ACTIONS(3036),
    [sym_import] = ACTIONS(3036),
    [sym_inout] = ACTIONS(3036),
    [sym_interface] = ACTIONS(3036),
    [sym_invariant] = ACTIONS(3036),
    [sym_mixin] = ACTIONS(3036),
    [sym_module] = ACTIONS(3036),
    [sym_nothrow] = ACTIONS(3036),
    [sym_override] = ACTIONS(3036),
    [sym_package] = ACTIONS(3036),
    [sym_pragma] = ACTIONS(3036),
    [sym_private] = ACTIONS(3036),
    [sym_protected] = ACTIONS(3036),
    [sym_public] = ACTIONS(3036),
    [sym_pure] = ACTIONS(3036),
    [sym_ref] = ACTIONS(3036),
    [sym_return] = ACTIONS(3036),
    [sym_scope] = ACTIONS(3036),
    [sym_shared] = ACTIONS(3036),
    [sym_static] = ACTIONS(3036),
    [sym_struct] = ACTIONS(3036),
    [sym_synchronized] = ACTIONS(3036),
    [sym_template] = ACTIONS(3036),
    [sym_typeof] = ACTIONS(3036),
    [sym_union] = ACTIONS(3036),
    [sym_unittest] = ACTIONS(3036),
    [sym_version] = ACTIONS(3036),
    [sym_gshared] = ACTIONS(3036),
    [sym_traits] = ACTIONS(3036),
    [sym_vector] = ACTIONS(3036),
    [sym_void] = ACTIONS(3036),
    [sym_directive] = ACTIONS(3),
  },
  [2401] = {
    [sym_identifier] = ACTIONS(3048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3050),
    [anon_sym_DOT] = ACTIONS(3050),
    [anon_sym_BANG] = ACTIONS(3050),
    [anon_sym_LPAREN] = ACTIONS(3050),
    [anon_sym_RPAREN] = ACTIONS(3050),
    [anon_sym_LBRACK] = ACTIONS(3050),
    [anon_sym_RBRACK] = ACTIONS(3050),
    [anon_sym_COMMA] = ACTIONS(3050),
    [anon_sym_SEMI] = ACTIONS(3050),
    [anon_sym_COLON] = ACTIONS(3050),
    [anon_sym_EQ_EQ] = ACTIONS(3050),
    [anon_sym_STAR] = ACTIONS(3050),
    [anon_sym_TILDE] = ACTIONS(3050),
    [anon_sym_AT] = ACTIONS(3050),
    [sym_bool] = ACTIONS(3048),
    [sym_byte] = ACTIONS(3048),
    [sym_ubyte] = ACTIONS(3048),
    [sym_char] = ACTIONS(3048),
    [sym_short] = ACTIONS(3048),
    [sym_ushort] = ACTIONS(3048),
    [sym_int] = ACTIONS(3048),
    [sym_uint] = ACTIONS(3048),
    [sym_long] = ACTIONS(3048),
    [sym_ulong] = ACTIONS(3048),
    [sym_cent] = ACTIONS(3048),
    [sym_ucent] = ACTIONS(3048),
    [sym_wchar] = ACTIONS(3048),
    [sym_dchar] = ACTIONS(3048),
    [sym_float] = ACTIONS(3048),
    [sym_double] = ACTIONS(3048),
    [sym_real] = ACTIONS(3048),
    [sym_ifloat] = ACTIONS(3048),
    [sym_idouble] = ACTIONS(3048),
    [sym_ireal] = ACTIONS(3048),
    [sym_cfloat] = ACTIONS(3048),
    [sym_cdouble] = ACTIONS(3048),
    [sym_creal] = ACTIONS(3048),
    [sym_size_t] = ACTIONS(3048),
    [sym_ptrdiff_t] = ACTIONS(3048),
    [sym_string] = ACTIONS(3048),
    [sym_cstring] = ACTIONS(3048),
    [sym_dstring] = ACTIONS(3048),
    [sym_wstring] = ACTIONS(3048),
    [sym_noreturn] = ACTIONS(3048),
    [sym_this] = ACTIONS(3048),
    [sym_abstract] = ACTIONS(3048),
    [sym_alias] = ACTIONS(3048),
    [sym_align] = ACTIONS(3048),
    [sym_auto] = ACTIONS(3048),
    [sym_class] = ACTIONS(3048),
    [sym_const] = ACTIONS(3048),
    [sym_debug] = ACTIONS(3048),
    [sym_delegate] = ACTIONS(3048),
    [sym_deprecated] = ACTIONS(3048),
    [sym_enum] = ACTIONS(3048),
    [sym_export] = ACTIONS(3048),
    [sym_extern] = ACTIONS(3048),
    [sym_final] = ACTIONS(3048),
    [sym_function] = ACTIONS(3048),
    [sym_immutable] = ACTIONS(3048),
    [sym_import] = ACTIONS(3048),
    [sym_inout] = ACTIONS(3048),
    [sym_interface] = ACTIONS(3048),
    [sym_invariant] = ACTIONS(3048),
    [sym_mixin] = ACTIONS(3048),
    [sym_module] = ACTIONS(3048),
    [sym_nothrow] = ACTIONS(3048),
    [sym_override] = ACTIONS(3048),
    [sym_package] = ACTIONS(3048),
    [sym_pragma] = ACTIONS(3048),
    [sym_private] = ACTIONS(3048),
    [sym_protected] = ACTIONS(3048),
    [sym_public] = ACTIONS(3048),
    [sym_pure] = ACTIONS(3048),
    [sym_ref] = ACTIONS(3048),
    [sym_return] = ACTIONS(3048),
    [sym_scope] = ACTIONS(3048),
    [sym_shared] = ACTIONS(3048),
    [sym_static] = ACTIONS(3048),
    [sym_struct] = ACTIONS(3048),
    [sym_synchronized] = ACTIONS(3048),
    [sym_template] = ACTIONS(3048),
    [sym_typeof] = ACTIONS(3048),
    [sym_union] = ACTIONS(3048),
    [sym_unittest] = ACTIONS(3048),
    [sym_version] = ACTIONS(3048),
    [sym_gshared] = ACTIONS(3048),
    [sym_traits] = ACTIONS(3048),
    [sym_vector] = ACTIONS(3048),
    [sym_void] = ACTIONS(3048),
    [sym_directive] = ACTIONS(3),
  },
  [2402] = {
    [sym_identifier] = ACTIONS(3016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3018),
    [anon_sym_DOT] = ACTIONS(3018),
    [anon_sym_BANG] = ACTIONS(3018),
    [anon_sym_LPAREN] = ACTIONS(3018),
    [anon_sym_RPAREN] = ACTIONS(3018),
    [anon_sym_LBRACK] = ACTIONS(3018),
    [anon_sym_RBRACK] = ACTIONS(3018),
    [anon_sym_COMMA] = ACTIONS(3018),
    [anon_sym_SEMI] = ACTIONS(3018),
    [anon_sym_COLON] = ACTIONS(3018),
    [anon_sym_EQ_EQ] = ACTIONS(3018),
    [anon_sym_STAR] = ACTIONS(3018),
    [anon_sym_TILDE] = ACTIONS(3018),
    [anon_sym_AT] = ACTIONS(3018),
    [sym_bool] = ACTIONS(3016),
    [sym_byte] = ACTIONS(3016),
    [sym_ubyte] = ACTIONS(3016),
    [sym_char] = ACTIONS(3016),
    [sym_short] = ACTIONS(3016),
    [sym_ushort] = ACTIONS(3016),
    [sym_int] = ACTIONS(3016),
    [sym_uint] = ACTIONS(3016),
    [sym_long] = ACTIONS(3016),
    [sym_ulong] = ACTIONS(3016),
    [sym_cent] = ACTIONS(3016),
    [sym_ucent] = ACTIONS(3016),
    [sym_wchar] = ACTIONS(3016),
    [sym_dchar] = ACTIONS(3016),
    [sym_float] = ACTIONS(3016),
    [sym_double] = ACTIONS(3016),
    [sym_real] = ACTIONS(3016),
    [sym_ifloat] = ACTIONS(3016),
    [sym_idouble] = ACTIONS(3016),
    [sym_ireal] = ACTIONS(3016),
    [sym_cfloat] = ACTIONS(3016),
    [sym_cdouble] = ACTIONS(3016),
    [sym_creal] = ACTIONS(3016),
    [sym_size_t] = ACTIONS(3016),
    [sym_ptrdiff_t] = ACTIONS(3016),
    [sym_string] = ACTIONS(3016),
    [sym_cstring] = ACTIONS(3016),
    [sym_dstring] = ACTIONS(3016),
    [sym_wstring] = ACTIONS(3016),
    [sym_noreturn] = ACTIONS(3016),
    [sym_this] = ACTIONS(3016),
    [sym_abstract] = ACTIONS(3016),
    [sym_alias] = ACTIONS(3016),
    [sym_align] = ACTIONS(3016),
    [sym_auto] = ACTIONS(3016),
    [sym_class] = ACTIONS(3016),
    [sym_const] = ACTIONS(3016),
    [sym_debug] = ACTIONS(3016),
    [sym_delegate] = ACTIONS(3016),
    [sym_deprecated] = ACTIONS(3016),
    [sym_enum] = ACTIONS(3016),
    [sym_export] = ACTIONS(3016),
    [sym_extern] = ACTIONS(3016),
    [sym_final] = ACTIONS(3016),
    [sym_function] = ACTIONS(3016),
    [sym_immutable] = ACTIONS(3016),
    [sym_import] = ACTIONS(3016),
    [sym_inout] = ACTIONS(3016),
    [sym_interface] = ACTIONS(3016),
    [sym_invariant] = ACTIONS(3016),
    [sym_mixin] = ACTIONS(3016),
    [sym_module] = ACTIONS(3016),
    [sym_nothrow] = ACTIONS(3016),
    [sym_override] = ACTIONS(3016),
    [sym_package] = ACTIONS(3016),
    [sym_pragma] = ACTIONS(3016),
    [sym_private] = ACTIONS(3016),
    [sym_protected] = ACTIONS(3016),
    [sym_public] = ACTIONS(3016),
    [sym_pure] = ACTIONS(3016),
    [sym_ref] = ACTIONS(3016),
    [sym_return] = ACTIONS(3016),
    [sym_scope] = ACTIONS(3016),
    [sym_shared] = ACTIONS(3016),
    [sym_static] = ACTIONS(3016),
    [sym_struct] = ACTIONS(3016),
    [sym_synchronized] = ACTIONS(3016),
    [sym_template] = ACTIONS(3016),
    [sym_typeof] = ACTIONS(3016),
    [sym_union] = ACTIONS(3016),
    [sym_unittest] = ACTIONS(3016),
    [sym_version] = ACTIONS(3016),
    [sym_gshared] = ACTIONS(3016),
    [sym_traits] = ACTIONS(3016),
    [sym_vector] = ACTIONS(3016),
    [sym_void] = ACTIONS(3016),
    [sym_directive] = ACTIONS(3),
  },
  [2403] = {
    [sym_identifier] = ACTIONS(2984),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(2986),
    [anon_sym_DOT] = ACTIONS(2986),
    [anon_sym_BANG] = ACTIONS(2986),
    [anon_sym_LPAREN] = ACTIONS(2986),
    [anon_sym_RPAREN] = ACTIONS(2986),
    [anon_sym_LBRACK] = ACTIONS(2986),
    [anon_sym_RBRACK] = ACTIONS(2986),
    [anon_sym_COMMA] = ACTIONS(2986),
    [anon_sym_SEMI] = ACTIONS(2986),
    [anon_sym_COLON] = ACTIONS(2986),
    [anon_sym_EQ_EQ] = ACTIONS(2986),
    [anon_sym_STAR] = ACTIONS(2986),
    [anon_sym_TILDE] = ACTIONS(2986),
    [anon_sym_AT] = ACTIONS(2986),
    [sym_bool] = ACTIONS(2984),
    [sym_byte] = ACTIONS(2984),
    [sym_ubyte] = ACTIONS(2984),
    [sym_char] = ACTIONS(2984),
    [sym_short] = ACTIONS(2984),
    [sym_ushort] = ACTIONS(2984),
    [sym_int] = ACTIONS(2984),
    [sym_uint] = ACTIONS(2984),
    [sym_long] = ACTIONS(2984),
    [sym_ulong] = ACTIONS(2984),
    [sym_cent] = ACTIONS(2984),
    [sym_ucent] = ACTIONS(2984),
    [sym_wchar] = ACTIONS(2984),
    [sym_dchar] = ACTIONS(2984),
    [sym_float] = ACTIONS(2984),
    [sym_double] = ACTIONS(2984),
    [sym_real] = ACTIONS(2984),
    [sym_ifloat] = ACTIONS(2984),
    [sym_idouble] = ACTIONS(2984),
    [sym_ireal] = ACTIONS(2984),
    [sym_cfloat] = ACTIONS(2984),
    [sym_cdouble] = ACTIONS(2984),
    [sym_creal] = ACTIONS(2984),
    [sym_size_t] = ACTIONS(2984),
    [sym_ptrdiff_t] = ACTIONS(2984),
    [sym_string] = ACTIONS(2984),
    [sym_cstring] = ACTIONS(2984),
    [sym_dstring] = ACTIONS(2984),
    [sym_wstring] = ACTIONS(2984),
    [sym_noreturn] = ACTIONS(2984),
    [sym_this] = ACTIONS(2984),
    [sym_abstract] = ACTIONS(2984),
    [sym_alias] = ACTIONS(2984),
    [sym_align] = ACTIONS(2984),
    [sym_auto] = ACTIONS(2984),
    [sym_class] = ACTIONS(2984),
    [sym_const] = ACTIONS(2984),
    [sym_debug] = ACTIONS(2984),
    [sym_delegate] = ACTIONS(2984),
    [sym_deprecated] = ACTIONS(2984),
    [sym_enum] = ACTIONS(2984),
    [sym_export] = ACTIONS(2984),
    [sym_extern] = ACTIONS(2984),
    [sym_final] = ACTIONS(2984),
    [sym_function] = ACTIONS(2984),
    [sym_immutable] = ACTIONS(2984),
    [sym_import] = ACTIONS(2984),
    [sym_inout] = ACTIONS(2984),
    [sym_interface] = ACTIONS(2984),
    [sym_invariant] = ACTIONS(2984),
    [sym_mixin] = ACTIONS(2984),
    [sym_module] = ACTIONS(2984),
    [sym_nothrow] = ACTIONS(2984),
    [sym_override] = ACTIONS(2984),
    [sym_package] = ACTIONS(2984),
    [sym_pragma] = ACTIONS(2984),
    [sym_private] = ACTIONS(2984),
    [sym_protected] = ACTIONS(2984),
    [sym_public] = ACTIONS(2984),
    [sym_pure] = ACTIONS(2984),
    [sym_ref] = ACTIONS(2984),
    [sym_return] = ACTIONS(2984),
    [sym_scope] = ACTIONS(2984),
    [sym_shared] = ACTIONS(2984),
    [sym_static] = ACTIONS(2984),
    [sym_struct] = ACTIONS(2984),
    [sym_synchronized] = ACTIONS(2984),
    [sym_template] = ACTIONS(2984),
    [sym_typeof] = ACTIONS(2984),
    [sym_union] = ACTIONS(2984),
    [sym_unittest] = ACTIONS(2984),
    [sym_version] = ACTIONS(2984),
    [sym_gshared] = ACTIONS(2984),
    [sym_traits] = ACTIONS(2984),
    [sym_vector] = ACTIONS(2984),
    [sym_void] = ACTIONS(2984),
    [sym_directive] = ACTIONS(3),
  },
  [2404] = {
    [sym_identifier] = ACTIONS(3024),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3026),
    [anon_sym_DOT] = ACTIONS(3026),
    [anon_sym_BANG] = ACTIONS(3026),
    [anon_sym_LPAREN] = ACTIONS(3026),
    [anon_sym_RPAREN] = ACTIONS(3026),
    [anon_sym_LBRACK] = ACTIONS(3026),
    [anon_sym_RBRACK] = ACTIONS(3026),
    [anon_sym_COMMA] = ACTIONS(3026),
    [anon_sym_SEMI] = ACTIONS(3026),
    [anon_sym_COLON] = ACTIONS(3026),
    [anon_sym_EQ_EQ] = ACTIONS(3026),
    [anon_sym_STAR] = ACTIONS(3026),
    [anon_sym_TILDE] = ACTIONS(3026),
    [anon_sym_AT] = ACTIONS(3026),
    [sym_bool] = ACTIONS(3024),
    [sym_byte] = ACTIONS(3024),
    [sym_ubyte] = ACTIONS(3024),
    [sym_char] = ACTIONS(3024),
    [sym_short] = ACTIONS(3024),
    [sym_ushort] = ACTIONS(3024),
    [sym_int] = ACTIONS(3024),
    [sym_uint] = ACTIONS(3024),
    [sym_long] = ACTIONS(3024),
    [sym_ulong] = ACTIONS(3024),
    [sym_cent] = ACTIONS(3024),
    [sym_ucent] = ACTIONS(3024),
    [sym_wchar] = ACTIONS(3024),
    [sym_dchar] = ACTIONS(3024),
    [sym_float] = ACTIONS(3024),
    [sym_double] = ACTIONS(3024),
    [sym_real] = ACTIONS(3024),
    [sym_ifloat] = ACTIONS(3024),
    [sym_idouble] = ACTIONS(3024),
    [sym_ireal] = ACTIONS(3024),
    [sym_cfloat] = ACTIONS(3024),
    [sym_cdouble] = ACTIONS(3024),
    [sym_creal] = ACTIONS(3024),
    [sym_size_t] = ACTIONS(3024),
    [sym_ptrdiff_t] = ACTIONS(3024),
    [sym_string] = ACTIONS(3024),
    [sym_cstring] = ACTIONS(3024),
    [sym_dstring] = ACTIONS(3024),
    [sym_wstring] = ACTIONS(3024),
    [sym_noreturn] = ACTIONS(3024),
    [sym_this] = ACTIONS(3024),
    [sym_abstract] = ACTIONS(3024),
    [sym_alias] = ACTIONS(3024),
    [sym_align] = ACTIONS(3024),
    [sym_auto] = ACTIONS(3024),
    [sym_class] = ACTIONS(3024),
    [sym_const] = ACTIONS(3024),
    [sym_debug] = ACTIONS(3024),
    [sym_delegate] = ACTIONS(3024),
    [sym_deprecated] = ACTIONS(3024),
    [sym_enum] = ACTIONS(3024),
    [sym_export] = ACTIONS(3024),
    [sym_extern] = ACTIONS(3024),
    [sym_final] = ACTIONS(3024),
    [sym_function] = ACTIONS(3024),
    [sym_immutable] = ACTIONS(3024),
    [sym_import] = ACTIONS(3024),
    [sym_inout] = ACTIONS(3024),
    [sym_interface] = ACTIONS(3024),
    [sym_invariant] = ACTIONS(3024),
    [sym_mixin] = ACTIONS(3024),
    [sym_module] = ACTIONS(3024),
    [sym_nothrow] = ACTIONS(3024),
    [sym_override] = ACTIONS(3024),
    [sym_package] = ACTIONS(3024),
    [sym_pragma] = ACTIONS(3024),
    [sym_private] = ACTIONS(3024),
    [sym_protected] = ACTIONS(3024),
    [sym_public] = ACTIONS(3024),
    [sym_pure] = ACTIONS(3024),
    [sym_ref] = ACTIONS(3024),
    [sym_return] = ACTIONS(3024),
    [sym_scope] = ACTIONS(3024),
    [sym_shared] = ACTIONS(3024),
    [sym_static] = ACTIONS(3024),
    [sym_struct] = ACTIONS(3024),
    [sym_synchronized] = ACTIONS(3024),
    [sym_template] = ACTIONS(3024),
    [sym_typeof] = ACTIONS(3024),
    [sym_union] = ACTIONS(3024),
    [sym_unittest] = ACTIONS(3024),
    [sym_version] = ACTIONS(3024),
    [sym_gshared] = ACTIONS(3024),
    [sym_traits] = ACTIONS(3024),
    [sym_vector] = ACTIONS(3024),
    [sym_void] = ACTIONS(3024),
    [sym_directive] = ACTIONS(3),
  },
  [2405] = {
    [sym_identifier] = ACTIONS(6643),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6645),
    [anon_sym_DOT] = ACTIONS(6645),
    [anon_sym_BANG] = ACTIONS(6645),
    [anon_sym_LPAREN] = ACTIONS(6645),
    [anon_sym_RPAREN] = ACTIONS(6645),
    [anon_sym_LBRACK] = ACTIONS(6645),
    [anon_sym_RBRACK] = ACTIONS(6645),
    [anon_sym_COMMA] = ACTIONS(6645),
    [anon_sym_SEMI] = ACTIONS(6645),
    [anon_sym_COLON] = ACTIONS(6645),
    [anon_sym_EQ_EQ] = ACTIONS(6645),
    [anon_sym_STAR] = ACTIONS(6645),
    [anon_sym_TILDE] = ACTIONS(6645),
    [anon_sym_AT] = ACTIONS(6645),
    [sym_bool] = ACTIONS(6643),
    [sym_byte] = ACTIONS(6643),
    [sym_ubyte] = ACTIONS(6643),
    [sym_char] = ACTIONS(6643),
    [sym_short] = ACTIONS(6643),
    [sym_ushort] = ACTIONS(6643),
    [sym_int] = ACTIONS(6643),
    [sym_uint] = ACTIONS(6643),
    [sym_long] = ACTIONS(6643),
    [sym_ulong] = ACTIONS(6643),
    [sym_cent] = ACTIONS(6643),
    [sym_ucent] = ACTIONS(6643),
    [sym_wchar] = ACTIONS(6643),
    [sym_dchar] = ACTIONS(6643),
    [sym_float] = ACTIONS(6643),
    [sym_double] = ACTIONS(6643),
    [sym_real] = ACTIONS(6643),
    [sym_ifloat] = ACTIONS(6643),
    [sym_idouble] = ACTIONS(6643),
    [sym_ireal] = ACTIONS(6643),
    [sym_cfloat] = ACTIONS(6643),
    [sym_cdouble] = ACTIONS(6643),
    [sym_creal] = ACTIONS(6643),
    [sym_size_t] = ACTIONS(6643),
    [sym_ptrdiff_t] = ACTIONS(6643),
    [sym_string] = ACTIONS(6643),
    [sym_cstring] = ACTIONS(6643),
    [sym_dstring] = ACTIONS(6643),
    [sym_wstring] = ACTIONS(6643),
    [sym_noreturn] = ACTIONS(6643),
    [sym_this] = ACTIONS(6643),
    [sym_abstract] = ACTIONS(6643),
    [sym_alias] = ACTIONS(6643),
    [sym_align] = ACTIONS(6643),
    [sym_auto] = ACTIONS(6643),
    [sym_class] = ACTIONS(6643),
    [sym_const] = ACTIONS(6643),
    [sym_debug] = ACTIONS(6643),
    [sym_delegate] = ACTIONS(6643),
    [sym_deprecated] = ACTIONS(6643),
    [sym_enum] = ACTIONS(6643),
    [sym_export] = ACTIONS(6643),
    [sym_extern] = ACTIONS(6643),
    [sym_final] = ACTIONS(6643),
    [sym_function] = ACTIONS(6643),
    [sym_immutable] = ACTIONS(6643),
    [sym_import] = ACTIONS(6643),
    [sym_inout] = ACTIONS(6643),
    [sym_interface] = ACTIONS(6643),
    [sym_invariant] = ACTIONS(6643),
    [sym_mixin] = ACTIONS(6643),
    [sym_module] = ACTIONS(6643),
    [sym_nothrow] = ACTIONS(6643),
    [sym_override] = ACTIONS(6643),
    [sym_package] = ACTIONS(6643),
    [sym_pragma] = ACTIONS(6643),
    [sym_private] = ACTIONS(6643),
    [sym_protected] = ACTIONS(6643),
    [sym_public] = ACTIONS(6643),
    [sym_pure] = ACTIONS(6643),
    [sym_ref] = ACTIONS(6643),
    [sym_return] = ACTIONS(6643),
    [sym_scope] = ACTIONS(6643),
    [sym_shared] = ACTIONS(6643),
    [sym_static] = ACTIONS(6643),
    [sym_struct] = ACTIONS(6643),
    [sym_synchronized] = ACTIONS(6643),
    [sym_template] = ACTIONS(6643),
    [sym_typeof] = ACTIONS(6643),
    [sym_union] = ACTIONS(6643),
    [sym_unittest] = ACTIONS(6643),
    [sym_version] = ACTIONS(6643),
    [sym_gshared] = ACTIONS(6643),
    [sym_traits] = ACTIONS(6643),
    [sym_vector] = ACTIONS(6643),
    [sym_void] = ACTIONS(6643),
    [sym_directive] = ACTIONS(3),
  },
  [2406] = {
    [sym_arguments] = STATE(2420),
    [sym_identifier] = ACTIONS(6647),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6649),
    [anon_sym_DOT] = ACTIONS(6649),
    [anon_sym_LPAREN] = ACTIONS(6651),
    [anon_sym_RPAREN] = ACTIONS(6649),
    [anon_sym_LBRACK] = ACTIONS(6649),
    [anon_sym_RBRACK] = ACTIONS(6649),
    [anon_sym_COMMA] = ACTIONS(6649),
    [anon_sym_SEMI] = ACTIONS(6649),
    [anon_sym_COLON] = ACTIONS(6649),
    [anon_sym_EQ_EQ] = ACTIONS(6649),
    [anon_sym_STAR] = ACTIONS(6649),
    [anon_sym_TILDE] = ACTIONS(6649),
    [anon_sym_AT] = ACTIONS(6649),
    [sym_bool] = ACTIONS(6647),
    [sym_byte] = ACTIONS(6647),
    [sym_ubyte] = ACTIONS(6647),
    [sym_char] = ACTIONS(6647),
    [sym_short] = ACTIONS(6647),
    [sym_ushort] = ACTIONS(6647),
    [sym_int] = ACTIONS(6647),
    [sym_uint] = ACTIONS(6647),
    [sym_long] = ACTIONS(6647),
    [sym_ulong] = ACTIONS(6647),
    [sym_cent] = ACTIONS(6647),
    [sym_ucent] = ACTIONS(6647),
    [sym_wchar] = ACTIONS(6647),
    [sym_dchar] = ACTIONS(6647),
    [sym_float] = ACTIONS(6647),
    [sym_double] = ACTIONS(6647),
    [sym_real] = ACTIONS(6647),
    [sym_ifloat] = ACTIONS(6647),
    [sym_idouble] = ACTIONS(6647),
    [sym_ireal] = ACTIONS(6647),
    [sym_cfloat] = ACTIONS(6647),
    [sym_cdouble] = ACTIONS(6647),
    [sym_creal] = ACTIONS(6647),
    [sym_size_t] = ACTIONS(6647),
    [sym_ptrdiff_t] = ACTIONS(6647),
    [sym_string] = ACTIONS(6647),
    [sym_cstring] = ACTIONS(6647),
    [sym_dstring] = ACTIONS(6647),
    [sym_wstring] = ACTIONS(6647),
    [sym_noreturn] = ACTIONS(6647),
    [sym_this] = ACTIONS(6647),
    [sym_abstract] = ACTIONS(6647),
    [sym_alias] = ACTIONS(6647),
    [sym_align] = ACTIONS(6647),
    [sym_auto] = ACTIONS(6647),
    [sym_class] = ACTIONS(6647),
    [sym_const] = ACTIONS(6647),
    [sym_debug] = ACTIONS(6647),
    [sym_delegate] = ACTIONS(6647),
    [sym_deprecated] = ACTIONS(6647),
    [sym_enum] = ACTIONS(6647),
    [sym_export] = ACTIONS(6647),
    [sym_extern] = ACTIONS(6647),
    [sym_final] = ACTIONS(6647),
    [sym_function] = ACTIONS(6647),
    [sym_immutable] = ACTIONS(6647),
    [sym_import] = ACTIONS(6647),
    [sym_inout] = ACTIONS(6647),
    [sym_interface] = ACTIONS(6647),
    [sym_invariant] = ACTIONS(6647),
    [sym_mixin] = ACTIONS(6647),
    [sym_module] = ACTIONS(6647),
    [sym_nothrow] = ACTIONS(6647),
    [sym_override] = ACTIONS(6647),
    [sym_package] = ACTIONS(6647),
    [sym_pragma] = ACTIONS(6647),
    [sym_private] = ACTIONS(6647),
    [sym_protected] = ACTIONS(6647),
    [sym_public] = ACTIONS(6647),
    [sym_pure] = ACTIONS(6647),
    [sym_ref] = ACTIONS(6647),
    [sym_return] = ACTIONS(6647),
    [sym_scope] = ACTIONS(6647),
    [sym_shared] = ACTIONS(6647),
    [sym_static] = ACTIONS(6647),
    [sym_struct] = ACTIONS(6647),
    [sym_synchronized] = ACTIONS(6647),
    [sym_template] = ACTIONS(6647),
    [sym_typeof] = ACTIONS(6647),
    [sym_union] = ACTIONS(6647),
    [sym_unittest] = ACTIONS(6647),
    [sym_version] = ACTIONS(6647),
    [sym_gshared] = ACTIONS(6647),
    [sym_traits] = ACTIONS(6647),
    [sym_vector] = ACTIONS(6647),
    [sym_void] = ACTIONS(6647),
    [sym_directive] = ACTIONS(3),
  },
  [2407] = {
    [sym_identifier] = ACTIONS(3004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3006),
    [anon_sym_DOT] = ACTIONS(3006),
    [anon_sym_BANG] = ACTIONS(3006),
    [anon_sym_LPAREN] = ACTIONS(3006),
    [anon_sym_RPAREN] = ACTIONS(3006),
    [anon_sym_LBRACK] = ACTIONS(3006),
    [anon_sym_RBRACK] = ACTIONS(3006),
    [anon_sym_COMMA] = ACTIONS(3006),
    [anon_sym_SEMI] = ACTIONS(3006),
    [anon_sym_COLON] = ACTIONS(3006),
    [anon_sym_EQ_EQ] = ACTIONS(3006),
    [anon_sym_STAR] = ACTIONS(3006),
    [anon_sym_TILDE] = ACTIONS(3006),
    [anon_sym_AT] = ACTIONS(3006),
    [sym_bool] = ACTIONS(3004),
    [sym_byte] = ACTIONS(3004),
    [sym_ubyte] = ACTIONS(3004),
    [sym_char] = ACTIONS(3004),
    [sym_short] = ACTIONS(3004),
    [sym_ushort] = ACTIONS(3004),
    [sym_int] = ACTIONS(3004),
    [sym_uint] = ACTIONS(3004),
    [sym_long] = ACTIONS(3004),
    [sym_ulong] = ACTIONS(3004),
    [sym_cent] = ACTIONS(3004),
    [sym_ucent] = ACTIONS(3004),
    [sym_wchar] = ACTIONS(3004),
    [sym_dchar] = ACTIONS(3004),
    [sym_float] = ACTIONS(3004),
    [sym_double] = ACTIONS(3004),
    [sym_real] = ACTIONS(3004),
    [sym_ifloat] = ACTIONS(3004),
    [sym_idouble] = ACTIONS(3004),
    [sym_ireal] = ACTIONS(3004),
    [sym_cfloat] = ACTIONS(3004),
    [sym_cdouble] = ACTIONS(3004),
    [sym_creal] = ACTIONS(3004),
    [sym_size_t] = ACTIONS(3004),
    [sym_ptrdiff_t] = ACTIONS(3004),
    [sym_string] = ACTIONS(3004),
    [sym_cstring] = ACTIONS(3004),
    [sym_dstring] = ACTIONS(3004),
    [sym_wstring] = ACTIONS(3004),
    [sym_noreturn] = ACTIONS(3004),
    [sym_this] = ACTIONS(3004),
    [sym_abstract] = ACTIONS(3004),
    [sym_alias] = ACTIONS(3004),
    [sym_align] = ACTIONS(3004),
    [sym_auto] = ACTIONS(3004),
    [sym_class] = ACTIONS(3004),
    [sym_const] = ACTIONS(3004),
    [sym_debug] = ACTIONS(3004),
    [sym_delegate] = ACTIONS(3004),
    [sym_deprecated] = ACTIONS(3004),
    [sym_enum] = ACTIONS(3004),
    [sym_export] = ACTIONS(3004),
    [sym_extern] = ACTIONS(3004),
    [sym_final] = ACTIONS(3004),
    [sym_function] = ACTIONS(3004),
    [sym_immutable] = ACTIONS(3004),
    [sym_import] = ACTIONS(3004),
    [sym_inout] = ACTIONS(3004),
    [sym_interface] = ACTIONS(3004),
    [sym_invariant] = ACTIONS(3004),
    [sym_mixin] = ACTIONS(3004),
    [sym_module] = ACTIONS(3004),
    [sym_nothrow] = ACTIONS(3004),
    [sym_override] = ACTIONS(3004),
    [sym_package] = ACTIONS(3004),
    [sym_pragma] = ACTIONS(3004),
    [sym_private] = ACTIONS(3004),
    [sym_protected] = ACTIONS(3004),
    [sym_public] = ACTIONS(3004),
    [sym_pure] = ACTIONS(3004),
    [sym_ref] = ACTIONS(3004),
    [sym_return] = ACTIONS(3004),
    [sym_scope] = ACTIONS(3004),
    [sym_shared] = ACTIONS(3004),
    [sym_static] = ACTIONS(3004),
    [sym_struct] = ACTIONS(3004),
    [sym_synchronized] = ACTIONS(3004),
    [sym_template] = ACTIONS(3004),
    [sym_typeof] = ACTIONS(3004),
    [sym_union] = ACTIONS(3004),
    [sym_unittest] = ACTIONS(3004),
    [sym_version] = ACTIONS(3004),
    [sym_gshared] = ACTIONS(3004),
    [sym_traits] = ACTIONS(3004),
    [sym_vector] = ACTIONS(3004),
    [sym_void] = ACTIONS(3004),
    [sym_directive] = ACTIONS(3),
  },
  [2408] = {
    [sym_identifier] = ACTIONS(3012),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3014),
    [anon_sym_DOT] = ACTIONS(3014),
    [anon_sym_BANG] = ACTIONS(3014),
    [anon_sym_LPAREN] = ACTIONS(3014),
    [anon_sym_RPAREN] = ACTIONS(3014),
    [anon_sym_LBRACK] = ACTIONS(3014),
    [anon_sym_RBRACK] = ACTIONS(3014),
    [anon_sym_COMMA] = ACTIONS(3014),
    [anon_sym_SEMI] = ACTIONS(3014),
    [anon_sym_COLON] = ACTIONS(3014),
    [anon_sym_EQ_EQ] = ACTIONS(3014),
    [anon_sym_STAR] = ACTIONS(3014),
    [anon_sym_TILDE] = ACTIONS(3014),
    [anon_sym_AT] = ACTIONS(3014),
    [sym_bool] = ACTIONS(3012),
    [sym_byte] = ACTIONS(3012),
    [sym_ubyte] = ACTIONS(3012),
    [sym_char] = ACTIONS(3012),
    [sym_short] = ACTIONS(3012),
    [sym_ushort] = ACTIONS(3012),
    [sym_int] = ACTIONS(3012),
    [sym_uint] = ACTIONS(3012),
    [sym_long] = ACTIONS(3012),
    [sym_ulong] = ACTIONS(3012),
    [sym_cent] = ACTIONS(3012),
    [sym_ucent] = ACTIONS(3012),
    [sym_wchar] = ACTIONS(3012),
    [sym_dchar] = ACTIONS(3012),
    [sym_float] = ACTIONS(3012),
    [sym_double] = ACTIONS(3012),
    [sym_real] = ACTIONS(3012),
    [sym_ifloat] = ACTIONS(3012),
    [sym_idouble] = ACTIONS(3012),
    [sym_ireal] = ACTIONS(3012),
    [sym_cfloat] = ACTIONS(3012),
    [sym_cdouble] = ACTIONS(3012),
    [sym_creal] = ACTIONS(3012),
    [sym_size_t] = ACTIONS(3012),
    [sym_ptrdiff_t] = ACTIONS(3012),
    [sym_string] = ACTIONS(3012),
    [sym_cstring] = ACTIONS(3012),
    [sym_dstring] = ACTIONS(3012),
    [sym_wstring] = ACTIONS(3012),
    [sym_noreturn] = ACTIONS(3012),
    [sym_this] = ACTIONS(3012),
    [sym_abstract] = ACTIONS(3012),
    [sym_alias] = ACTIONS(3012),
    [sym_align] = ACTIONS(3012),
    [sym_auto] = ACTIONS(3012),
    [sym_class] = ACTIONS(3012),
    [sym_const] = ACTIONS(3012),
    [sym_debug] = ACTIONS(3012),
    [sym_delegate] = ACTIONS(3012),
    [sym_deprecated] = ACTIONS(3012),
    [sym_enum] = ACTIONS(3012),
    [sym_export] = ACTIONS(3012),
    [sym_extern] = ACTIONS(3012),
    [sym_final] = ACTIONS(3012),
    [sym_function] = ACTIONS(3012),
    [sym_immutable] = ACTIONS(3012),
    [sym_import] = ACTIONS(3012),
    [sym_inout] = ACTIONS(3012),
    [sym_interface] = ACTIONS(3012),
    [sym_invariant] = ACTIONS(3012),
    [sym_mixin] = ACTIONS(3012),
    [sym_module] = ACTIONS(3012),
    [sym_nothrow] = ACTIONS(3012),
    [sym_override] = ACTIONS(3012),
    [sym_package] = ACTIONS(3012),
    [sym_pragma] = ACTIONS(3012),
    [sym_private] = ACTIONS(3012),
    [sym_protected] = ACTIONS(3012),
    [sym_public] = ACTIONS(3012),
    [sym_pure] = ACTIONS(3012),
    [sym_ref] = ACTIONS(3012),
    [sym_return] = ACTIONS(3012),
    [sym_scope] = ACTIONS(3012),
    [sym_shared] = ACTIONS(3012),
    [sym_static] = ACTIONS(3012),
    [sym_struct] = ACTIONS(3012),
    [sym_synchronized] = ACTIONS(3012),
    [sym_template] = ACTIONS(3012),
    [sym_typeof] = ACTIONS(3012),
    [sym_union] = ACTIONS(3012),
    [sym_unittest] = ACTIONS(3012),
    [sym_version] = ACTIONS(3012),
    [sym_gshared] = ACTIONS(3012),
    [sym_traits] = ACTIONS(3012),
    [sym_vector] = ACTIONS(3012),
    [sym_void] = ACTIONS(3012),
    [sym_directive] = ACTIONS(3),
  },
  [2409] = {
    [sym_identifier] = ACTIONS(3028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3030),
    [anon_sym_DOT] = ACTIONS(3030),
    [anon_sym_BANG] = ACTIONS(3030),
    [anon_sym_LPAREN] = ACTIONS(3030),
    [anon_sym_RPAREN] = ACTIONS(3030),
    [anon_sym_LBRACK] = ACTIONS(3030),
    [anon_sym_RBRACK] = ACTIONS(3030),
    [anon_sym_COMMA] = ACTIONS(3030),
    [anon_sym_SEMI] = ACTIONS(3030),
    [anon_sym_COLON] = ACTIONS(3030),
    [anon_sym_EQ_EQ] = ACTIONS(3030),
    [anon_sym_STAR] = ACTIONS(3030),
    [anon_sym_TILDE] = ACTIONS(3030),
    [anon_sym_AT] = ACTIONS(3030),
    [sym_bool] = ACTIONS(3028),
    [sym_byte] = ACTIONS(3028),
    [sym_ubyte] = ACTIONS(3028),
    [sym_char] = ACTIONS(3028),
    [sym_short] = ACTIONS(3028),
    [sym_ushort] = ACTIONS(3028),
    [sym_int] = ACTIONS(3028),
    [sym_uint] = ACTIONS(3028),
    [sym_long] = ACTIONS(3028),
    [sym_ulong] = ACTIONS(3028),
    [sym_cent] = ACTIONS(3028),
    [sym_ucent] = ACTIONS(3028),
    [sym_wchar] = ACTIONS(3028),
    [sym_dchar] = ACTIONS(3028),
    [sym_float] = ACTIONS(3028),
    [sym_double] = ACTIONS(3028),
    [sym_real] = ACTIONS(3028),
    [sym_ifloat] = ACTIONS(3028),
    [sym_idouble] = ACTIONS(3028),
    [sym_ireal] = ACTIONS(3028),
    [sym_cfloat] = ACTIONS(3028),
    [sym_cdouble] = ACTIONS(3028),
    [sym_creal] = ACTIONS(3028),
    [sym_size_t] = ACTIONS(3028),
    [sym_ptrdiff_t] = ACTIONS(3028),
    [sym_string] = ACTIONS(3028),
    [sym_cstring] = ACTIONS(3028),
    [sym_dstring] = ACTIONS(3028),
    [sym_wstring] = ACTIONS(3028),
    [sym_noreturn] = ACTIONS(3028),
    [sym_this] = ACTIONS(3028),
    [sym_abstract] = ACTIONS(3028),
    [sym_alias] = ACTIONS(3028),
    [sym_align] = ACTIONS(3028),
    [sym_auto] = ACTIONS(3028),
    [sym_class] = ACTIONS(3028),
    [sym_const] = ACTIONS(3028),
    [sym_debug] = ACTIONS(3028),
    [sym_delegate] = ACTIONS(3028),
    [sym_deprecated] = ACTIONS(3028),
    [sym_enum] = ACTIONS(3028),
    [sym_export] = ACTIONS(3028),
    [sym_extern] = ACTIONS(3028),
    [sym_final] = ACTIONS(3028),
    [sym_function] = ACTIONS(3028),
    [sym_immutable] = ACTIONS(3028),
    [sym_import] = ACTIONS(3028),
    [sym_inout] = ACTIONS(3028),
    [sym_interface] = ACTIONS(3028),
    [sym_invariant] = ACTIONS(3028),
    [sym_mixin] = ACTIONS(3028),
    [sym_module] = ACTIONS(3028),
    [sym_nothrow] = ACTIONS(3028),
    [sym_override] = ACTIONS(3028),
    [sym_package] = ACTIONS(3028),
    [sym_pragma] = ACTIONS(3028),
    [sym_private] = ACTIONS(3028),
    [sym_protected] = ACTIONS(3028),
    [sym_public] = ACTIONS(3028),
    [sym_pure] = ACTIONS(3028),
    [sym_ref] = ACTIONS(3028),
    [sym_return] = ACTIONS(3028),
    [sym_scope] = ACTIONS(3028),
    [sym_shared] = ACTIONS(3028),
    [sym_static] = ACTIONS(3028),
    [sym_struct] = ACTIONS(3028),
    [sym_synchronized] = ACTIONS(3028),
    [sym_template] = ACTIONS(3028),
    [sym_typeof] = ACTIONS(3028),
    [sym_union] = ACTIONS(3028),
    [sym_unittest] = ACTIONS(3028),
    [sym_version] = ACTIONS(3028),
    [sym_gshared] = ACTIONS(3028),
    [sym_traits] = ACTIONS(3028),
    [sym_vector] = ACTIONS(3028),
    [sym_void] = ACTIONS(3028),
    [sym_directive] = ACTIONS(3),
  },
  [2410] = {
    [sym_identifier] = ACTIONS(2992),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(2994),
    [anon_sym_DOT] = ACTIONS(2994),
    [anon_sym_BANG] = ACTIONS(2994),
    [anon_sym_LPAREN] = ACTIONS(2994),
    [anon_sym_RPAREN] = ACTIONS(2994),
    [anon_sym_LBRACK] = ACTIONS(2994),
    [anon_sym_RBRACK] = ACTIONS(2994),
    [anon_sym_COMMA] = ACTIONS(2994),
    [anon_sym_SEMI] = ACTIONS(2994),
    [anon_sym_COLON] = ACTIONS(2994),
    [anon_sym_EQ_EQ] = ACTIONS(2994),
    [anon_sym_STAR] = ACTIONS(2994),
    [anon_sym_TILDE] = ACTIONS(2994),
    [anon_sym_AT] = ACTIONS(2994),
    [sym_bool] = ACTIONS(2992),
    [sym_byte] = ACTIONS(2992),
    [sym_ubyte] = ACTIONS(2992),
    [sym_char] = ACTIONS(2992),
    [sym_short] = ACTIONS(2992),
    [sym_ushort] = ACTIONS(2992),
    [sym_int] = ACTIONS(2992),
    [sym_uint] = ACTIONS(2992),
    [sym_long] = ACTIONS(2992),
    [sym_ulong] = ACTIONS(2992),
    [sym_cent] = ACTIONS(2992),
    [sym_ucent] = ACTIONS(2992),
    [sym_wchar] = ACTIONS(2992),
    [sym_dchar] = ACTIONS(2992),
    [sym_float] = ACTIONS(2992),
    [sym_double] = ACTIONS(2992),
    [sym_real] = ACTIONS(2992),
    [sym_ifloat] = ACTIONS(2992),
    [sym_idouble] = ACTIONS(2992),
    [sym_ireal] = ACTIONS(2992),
    [sym_cfloat] = ACTIONS(2992),
    [sym_cdouble] = ACTIONS(2992),
    [sym_creal] = ACTIONS(2992),
    [sym_size_t] = ACTIONS(2992),
    [sym_ptrdiff_t] = ACTIONS(2992),
    [sym_string] = ACTIONS(2992),
    [sym_cstring] = ACTIONS(2992),
    [sym_dstring] = ACTIONS(2992),
    [sym_wstring] = ACTIONS(2992),
    [sym_noreturn] = ACTIONS(2992),
    [sym_this] = ACTIONS(2992),
    [sym_abstract] = ACTIONS(2992),
    [sym_alias] = ACTIONS(2992),
    [sym_align] = ACTIONS(2992),
    [sym_auto] = ACTIONS(2992),
    [sym_class] = ACTIONS(2992),
    [sym_const] = ACTIONS(2992),
    [sym_debug] = ACTIONS(2992),
    [sym_delegate] = ACTIONS(2992),
    [sym_deprecated] = ACTIONS(2992),
    [sym_enum] = ACTIONS(2992),
    [sym_export] = ACTIONS(2992),
    [sym_extern] = ACTIONS(2992),
    [sym_final] = ACTIONS(2992),
    [sym_function] = ACTIONS(2992),
    [sym_immutable] = ACTIONS(2992),
    [sym_import] = ACTIONS(2992),
    [sym_inout] = ACTIONS(2992),
    [sym_interface] = ACTIONS(2992),
    [sym_invariant] = ACTIONS(2992),
    [sym_mixin] = ACTIONS(2992),
    [sym_module] = ACTIONS(2992),
    [sym_nothrow] = ACTIONS(2992),
    [sym_override] = ACTIONS(2992),
    [sym_package] = ACTIONS(2992),
    [sym_pragma] = ACTIONS(2992),
    [sym_private] = ACTIONS(2992),
    [sym_protected] = ACTIONS(2992),
    [sym_public] = ACTIONS(2992),
    [sym_pure] = ACTIONS(2992),
    [sym_ref] = ACTIONS(2992),
    [sym_return] = ACTIONS(2992),
    [sym_scope] = ACTIONS(2992),
    [sym_shared] = ACTIONS(2992),
    [sym_static] = ACTIONS(2992),
    [sym_struct] = ACTIONS(2992),
    [sym_synchronized] = ACTIONS(2992),
    [sym_template] = ACTIONS(2992),
    [sym_typeof] = ACTIONS(2992),
    [sym_union] = ACTIONS(2992),
    [sym_unittest] = ACTIONS(2992),
    [sym_version] = ACTIONS(2992),
    [sym_gshared] = ACTIONS(2992),
    [sym_traits] = ACTIONS(2992),
    [sym_vector] = ACTIONS(2992),
    [sym_void] = ACTIONS(2992),
    [sym_directive] = ACTIONS(3),
  },
  [2411] = {
    [sym_identifier] = ACTIONS(6653),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6655),
    [anon_sym_DOT] = ACTIONS(6655),
    [anon_sym_BANG] = ACTIONS(6655),
    [anon_sym_LPAREN] = ACTIONS(6655),
    [anon_sym_RPAREN] = ACTIONS(6655),
    [anon_sym_LBRACK] = ACTIONS(6655),
    [anon_sym_RBRACK] = ACTIONS(6655),
    [anon_sym_COMMA] = ACTIONS(6655),
    [anon_sym_SEMI] = ACTIONS(6655),
    [anon_sym_COLON] = ACTIONS(6655),
    [anon_sym_EQ_EQ] = ACTIONS(6655),
    [anon_sym_STAR] = ACTIONS(6655),
    [anon_sym_TILDE] = ACTIONS(6655),
    [anon_sym_AT] = ACTIONS(6655),
    [sym_bool] = ACTIONS(6653),
    [sym_byte] = ACTIONS(6653),
    [sym_ubyte] = ACTIONS(6653),
    [sym_char] = ACTIONS(6653),
    [sym_short] = ACTIONS(6653),
    [sym_ushort] = ACTIONS(6653),
    [sym_int] = ACTIONS(6653),
    [sym_uint] = ACTIONS(6653),
    [sym_long] = ACTIONS(6653),
    [sym_ulong] = ACTIONS(6653),
    [sym_cent] = ACTIONS(6653),
    [sym_ucent] = ACTIONS(6653),
    [sym_wchar] = ACTIONS(6653),
    [sym_dchar] = ACTIONS(6653),
    [sym_float] = ACTIONS(6653),
    [sym_double] = ACTIONS(6653),
    [sym_real] = ACTIONS(6653),
    [sym_ifloat] = ACTIONS(6653),
    [sym_idouble] = ACTIONS(6653),
    [sym_ireal] = ACTIONS(6653),
    [sym_cfloat] = ACTIONS(6653),
    [sym_cdouble] = ACTIONS(6653),
    [sym_creal] = ACTIONS(6653),
    [sym_size_t] = ACTIONS(6653),
    [sym_ptrdiff_t] = ACTIONS(6653),
    [sym_string] = ACTIONS(6653),
    [sym_cstring] = ACTIONS(6653),
    [sym_dstring] = ACTIONS(6653),
    [sym_wstring] = ACTIONS(6653),
    [sym_noreturn] = ACTIONS(6653),
    [sym_this] = ACTIONS(6653),
    [sym_abstract] = ACTIONS(6653),
    [sym_alias] = ACTIONS(6653),
    [sym_align] = ACTIONS(6653),
    [sym_auto] = ACTIONS(6653),
    [sym_class] = ACTIONS(6653),
    [sym_const] = ACTIONS(6653),
    [sym_debug] = ACTIONS(6653),
    [sym_delegate] = ACTIONS(6653),
    [sym_deprecated] = ACTIONS(6653),
    [sym_enum] = ACTIONS(6653),
    [sym_export] = ACTIONS(6653),
    [sym_extern] = ACTIONS(6653),
    [sym_final] = ACTIONS(6653),
    [sym_function] = ACTIONS(6653),
    [sym_immutable] = ACTIONS(6653),
    [sym_import] = ACTIONS(6653),
    [sym_inout] = ACTIONS(6653),
    [sym_interface] = ACTIONS(6653),
    [sym_invariant] = ACTIONS(6653),
    [sym_mixin] = ACTIONS(6653),
    [sym_module] = ACTIONS(6653),
    [sym_nothrow] = ACTIONS(6653),
    [sym_override] = ACTIONS(6653),
    [sym_package] = ACTIONS(6653),
    [sym_pragma] = ACTIONS(6653),
    [sym_private] = ACTIONS(6653),
    [sym_protected] = ACTIONS(6653),
    [sym_public] = ACTIONS(6653),
    [sym_pure] = ACTIONS(6653),
    [sym_ref] = ACTIONS(6653),
    [sym_return] = ACTIONS(6653),
    [sym_scope] = ACTIONS(6653),
    [sym_shared] = ACTIONS(6653),
    [sym_static] = ACTIONS(6653),
    [sym_struct] = ACTIONS(6653),
    [sym_synchronized] = ACTIONS(6653),
    [sym_template] = ACTIONS(6653),
    [sym_typeof] = ACTIONS(6653),
    [sym_union] = ACTIONS(6653),
    [sym_unittest] = ACTIONS(6653),
    [sym_version] = ACTIONS(6653),
    [sym_gshared] = ACTIONS(6653),
    [sym_traits] = ACTIONS(6653),
    [sym_vector] = ACTIONS(6653),
    [sym_void] = ACTIONS(6653),
    [sym_directive] = ACTIONS(3),
  },
  [2412] = {
    [sym_identifier] = ACTIONS(3020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3022),
    [anon_sym_DOT] = ACTIONS(3022),
    [anon_sym_BANG] = ACTIONS(3022),
    [anon_sym_LPAREN] = ACTIONS(3022),
    [anon_sym_RPAREN] = ACTIONS(3022),
    [anon_sym_LBRACK] = ACTIONS(3022),
    [anon_sym_RBRACK] = ACTIONS(3022),
    [anon_sym_COMMA] = ACTIONS(3022),
    [anon_sym_SEMI] = ACTIONS(3022),
    [anon_sym_COLON] = ACTIONS(3022),
    [anon_sym_EQ_EQ] = ACTIONS(3022),
    [anon_sym_STAR] = ACTIONS(3022),
    [anon_sym_TILDE] = ACTIONS(3022),
    [anon_sym_AT] = ACTIONS(3022),
    [sym_bool] = ACTIONS(3020),
    [sym_byte] = ACTIONS(3020),
    [sym_ubyte] = ACTIONS(3020),
    [sym_char] = ACTIONS(3020),
    [sym_short] = ACTIONS(3020),
    [sym_ushort] = ACTIONS(3020),
    [sym_int] = ACTIONS(3020),
    [sym_uint] = ACTIONS(3020),
    [sym_long] = ACTIONS(3020),
    [sym_ulong] = ACTIONS(3020),
    [sym_cent] = ACTIONS(3020),
    [sym_ucent] = ACTIONS(3020),
    [sym_wchar] = ACTIONS(3020),
    [sym_dchar] = ACTIONS(3020),
    [sym_float] = ACTIONS(3020),
    [sym_double] = ACTIONS(3020),
    [sym_real] = ACTIONS(3020),
    [sym_ifloat] = ACTIONS(3020),
    [sym_idouble] = ACTIONS(3020),
    [sym_ireal] = ACTIONS(3020),
    [sym_cfloat] = ACTIONS(3020),
    [sym_cdouble] = ACTIONS(3020),
    [sym_creal] = ACTIONS(3020),
    [sym_size_t] = ACTIONS(3020),
    [sym_ptrdiff_t] = ACTIONS(3020),
    [sym_string] = ACTIONS(3020),
    [sym_cstring] = ACTIONS(3020),
    [sym_dstring] = ACTIONS(3020),
    [sym_wstring] = ACTIONS(3020),
    [sym_noreturn] = ACTIONS(3020),
    [sym_this] = ACTIONS(3020),
    [sym_abstract] = ACTIONS(3020),
    [sym_alias] = ACTIONS(3020),
    [sym_align] = ACTIONS(3020),
    [sym_auto] = ACTIONS(3020),
    [sym_class] = ACTIONS(3020),
    [sym_const] = ACTIONS(3020),
    [sym_debug] = ACTIONS(3020),
    [sym_delegate] = ACTIONS(3020),
    [sym_deprecated] = ACTIONS(3020),
    [sym_enum] = ACTIONS(3020),
    [sym_export] = ACTIONS(3020),
    [sym_extern] = ACTIONS(3020),
    [sym_final] = ACTIONS(3020),
    [sym_function] = ACTIONS(3020),
    [sym_immutable] = ACTIONS(3020),
    [sym_import] = ACTIONS(3020),
    [sym_inout] = ACTIONS(3020),
    [sym_interface] = ACTIONS(3020),
    [sym_invariant] = ACTIONS(3020),
    [sym_mixin] = ACTIONS(3020),
    [sym_module] = ACTIONS(3020),
    [sym_nothrow] = ACTIONS(3020),
    [sym_override] = ACTIONS(3020),
    [sym_package] = ACTIONS(3020),
    [sym_pragma] = ACTIONS(3020),
    [sym_private] = ACTIONS(3020),
    [sym_protected] = ACTIONS(3020),
    [sym_public] = ACTIONS(3020),
    [sym_pure] = ACTIONS(3020),
    [sym_ref] = ACTIONS(3020),
    [sym_return] = ACTIONS(3020),
    [sym_scope] = ACTIONS(3020),
    [sym_shared] = ACTIONS(3020),
    [sym_static] = ACTIONS(3020),
    [sym_struct] = ACTIONS(3020),
    [sym_synchronized] = ACTIONS(3020),
    [sym_template] = ACTIONS(3020),
    [sym_typeof] = ACTIONS(3020),
    [sym_union] = ACTIONS(3020),
    [sym_unittest] = ACTIONS(3020),
    [sym_version] = ACTIONS(3020),
    [sym_gshared] = ACTIONS(3020),
    [sym_traits] = ACTIONS(3020),
    [sym_vector] = ACTIONS(3020),
    [sym_void] = ACTIONS(3020),
    [sym_directive] = ACTIONS(3),
  },
  [2413] = {
    [sym_identifier] = ACTIONS(3044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3046),
    [anon_sym_DOT] = ACTIONS(3046),
    [anon_sym_BANG] = ACTIONS(3046),
    [anon_sym_LPAREN] = ACTIONS(3046),
    [anon_sym_RPAREN] = ACTIONS(3046),
    [anon_sym_LBRACK] = ACTIONS(3046),
    [anon_sym_RBRACK] = ACTIONS(3046),
    [anon_sym_COMMA] = ACTIONS(3046),
    [anon_sym_SEMI] = ACTIONS(3046),
    [anon_sym_COLON] = ACTIONS(3046),
    [anon_sym_EQ_EQ] = ACTIONS(3046),
    [anon_sym_STAR] = ACTIONS(3046),
    [anon_sym_TILDE] = ACTIONS(3046),
    [anon_sym_AT] = ACTIONS(3046),
    [sym_bool] = ACTIONS(3044),
    [sym_byte] = ACTIONS(3044),
    [sym_ubyte] = ACTIONS(3044),
    [sym_char] = ACTIONS(3044),
    [sym_short] = ACTIONS(3044),
    [sym_ushort] = ACTIONS(3044),
    [sym_int] = ACTIONS(3044),
    [sym_uint] = ACTIONS(3044),
    [sym_long] = ACTIONS(3044),
    [sym_ulong] = ACTIONS(3044),
    [sym_cent] = ACTIONS(3044),
    [sym_ucent] = ACTIONS(3044),
    [sym_wchar] = ACTIONS(3044),
    [sym_dchar] = ACTIONS(3044),
    [sym_float] = ACTIONS(3044),
    [sym_double] = ACTIONS(3044),
    [sym_real] = ACTIONS(3044),
    [sym_ifloat] = ACTIONS(3044),
    [sym_idouble] = ACTIONS(3044),
    [sym_ireal] = ACTIONS(3044),
    [sym_cfloat] = ACTIONS(3044),
    [sym_cdouble] = ACTIONS(3044),
    [sym_creal] = ACTIONS(3044),
    [sym_size_t] = ACTIONS(3044),
    [sym_ptrdiff_t] = ACTIONS(3044),
    [sym_string] = ACTIONS(3044),
    [sym_cstring] = ACTIONS(3044),
    [sym_dstring] = ACTIONS(3044),
    [sym_wstring] = ACTIONS(3044),
    [sym_noreturn] = ACTIONS(3044),
    [sym_this] = ACTIONS(3044),
    [sym_abstract] = ACTIONS(3044),
    [sym_alias] = ACTIONS(3044),
    [sym_align] = ACTIONS(3044),
    [sym_auto] = ACTIONS(3044),
    [sym_class] = ACTIONS(3044),
    [sym_const] = ACTIONS(3044),
    [sym_debug] = ACTIONS(3044),
    [sym_delegate] = ACTIONS(3044),
    [sym_deprecated] = ACTIONS(3044),
    [sym_enum] = ACTIONS(3044),
    [sym_export] = ACTIONS(3044),
    [sym_extern] = ACTIONS(3044),
    [sym_final] = ACTIONS(3044),
    [sym_function] = ACTIONS(3044),
    [sym_immutable] = ACTIONS(3044),
    [sym_import] = ACTIONS(3044),
    [sym_inout] = ACTIONS(3044),
    [sym_interface] = ACTIONS(3044),
    [sym_invariant] = ACTIONS(3044),
    [sym_mixin] = ACTIONS(3044),
    [sym_module] = ACTIONS(3044),
    [sym_nothrow] = ACTIONS(3044),
    [sym_override] = ACTIONS(3044),
    [sym_package] = ACTIONS(3044),
    [sym_pragma] = ACTIONS(3044),
    [sym_private] = ACTIONS(3044),
    [sym_protected] = ACTIONS(3044),
    [sym_public] = ACTIONS(3044),
    [sym_pure] = ACTIONS(3044),
    [sym_ref] = ACTIONS(3044),
    [sym_return] = ACTIONS(3044),
    [sym_scope] = ACTIONS(3044),
    [sym_shared] = ACTIONS(3044),
    [sym_static] = ACTIONS(3044),
    [sym_struct] = ACTIONS(3044),
    [sym_synchronized] = ACTIONS(3044),
    [sym_template] = ACTIONS(3044),
    [sym_typeof] = ACTIONS(3044),
    [sym_union] = ACTIONS(3044),
    [sym_unittest] = ACTIONS(3044),
    [sym_version] = ACTIONS(3044),
    [sym_gshared] = ACTIONS(3044),
    [sym_traits] = ACTIONS(3044),
    [sym_vector] = ACTIONS(3044),
    [sym_void] = ACTIONS(3044),
    [sym_directive] = ACTIONS(3),
  },
  [2414] = {
    [sym_identifier] = ACTIONS(3032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3034),
    [anon_sym_DOT] = ACTIONS(3034),
    [anon_sym_BANG] = ACTIONS(3034),
    [anon_sym_LPAREN] = ACTIONS(3034),
    [anon_sym_RPAREN] = ACTIONS(3034),
    [anon_sym_LBRACK] = ACTIONS(3034),
    [anon_sym_RBRACK] = ACTIONS(3034),
    [anon_sym_COMMA] = ACTIONS(3034),
    [anon_sym_SEMI] = ACTIONS(3034),
    [anon_sym_COLON] = ACTIONS(3034),
    [anon_sym_EQ_EQ] = ACTIONS(3034),
    [anon_sym_STAR] = ACTIONS(3034),
    [anon_sym_TILDE] = ACTIONS(3034),
    [anon_sym_AT] = ACTIONS(3034),
    [sym_bool] = ACTIONS(3032),
    [sym_byte] = ACTIONS(3032),
    [sym_ubyte] = ACTIONS(3032),
    [sym_char] = ACTIONS(3032),
    [sym_short] = ACTIONS(3032),
    [sym_ushort] = ACTIONS(3032),
    [sym_int] = ACTIONS(3032),
    [sym_uint] = ACTIONS(3032),
    [sym_long] = ACTIONS(3032),
    [sym_ulong] = ACTIONS(3032),
    [sym_cent] = ACTIONS(3032),
    [sym_ucent] = ACTIONS(3032),
    [sym_wchar] = ACTIONS(3032),
    [sym_dchar] = ACTIONS(3032),
    [sym_float] = ACTIONS(3032),
    [sym_double] = ACTIONS(3032),
    [sym_real] = ACTIONS(3032),
    [sym_ifloat] = ACTIONS(3032),
    [sym_idouble] = ACTIONS(3032),
    [sym_ireal] = ACTIONS(3032),
    [sym_cfloat] = ACTIONS(3032),
    [sym_cdouble] = ACTIONS(3032),
    [sym_creal] = ACTIONS(3032),
    [sym_size_t] = ACTIONS(3032),
    [sym_ptrdiff_t] = ACTIONS(3032),
    [sym_string] = ACTIONS(3032),
    [sym_cstring] = ACTIONS(3032),
    [sym_dstring] = ACTIONS(3032),
    [sym_wstring] = ACTIONS(3032),
    [sym_noreturn] = ACTIONS(3032),
    [sym_this] = ACTIONS(3032),
    [sym_abstract] = ACTIONS(3032),
    [sym_alias] = ACTIONS(3032),
    [sym_align] = ACTIONS(3032),
    [sym_auto] = ACTIONS(3032),
    [sym_class] = ACTIONS(3032),
    [sym_const] = ACTIONS(3032),
    [sym_debug] = ACTIONS(3032),
    [sym_delegate] = ACTIONS(3032),
    [sym_deprecated] = ACTIONS(3032),
    [sym_enum] = ACTIONS(3032),
    [sym_export] = ACTIONS(3032),
    [sym_extern] = ACTIONS(3032),
    [sym_final] = ACTIONS(3032),
    [sym_function] = ACTIONS(3032),
    [sym_immutable] = ACTIONS(3032),
    [sym_import] = ACTIONS(3032),
    [sym_inout] = ACTIONS(3032),
    [sym_interface] = ACTIONS(3032),
    [sym_invariant] = ACTIONS(3032),
    [sym_mixin] = ACTIONS(3032),
    [sym_module] = ACTIONS(3032),
    [sym_nothrow] = ACTIONS(3032),
    [sym_override] = ACTIONS(3032),
    [sym_package] = ACTIONS(3032),
    [sym_pragma] = ACTIONS(3032),
    [sym_private] = ACTIONS(3032),
    [sym_protected] = ACTIONS(3032),
    [sym_public] = ACTIONS(3032),
    [sym_pure] = ACTIONS(3032),
    [sym_ref] = ACTIONS(3032),
    [sym_return] = ACTIONS(3032),
    [sym_scope] = ACTIONS(3032),
    [sym_shared] = ACTIONS(3032),
    [sym_static] = ACTIONS(3032),
    [sym_struct] = ACTIONS(3032),
    [sym_synchronized] = ACTIONS(3032),
    [sym_template] = ACTIONS(3032),
    [sym_typeof] = ACTIONS(3032),
    [sym_union] = ACTIONS(3032),
    [sym_unittest] = ACTIONS(3032),
    [sym_version] = ACTIONS(3032),
    [sym_gshared] = ACTIONS(3032),
    [sym_traits] = ACTIONS(3032),
    [sym_vector] = ACTIONS(3032),
    [sym_void] = ACTIONS(3032),
    [sym_directive] = ACTIONS(3),
  },
  [2415] = {
    [sym_identifier] = ACTIONS(3000),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3002),
    [anon_sym_DOT] = ACTIONS(3002),
    [anon_sym_BANG] = ACTIONS(3002),
    [anon_sym_LPAREN] = ACTIONS(3002),
    [anon_sym_RPAREN] = ACTIONS(3002),
    [anon_sym_LBRACK] = ACTIONS(3002),
    [anon_sym_RBRACK] = ACTIONS(3002),
    [anon_sym_COMMA] = ACTIONS(3002),
    [anon_sym_SEMI] = ACTIONS(3002),
    [anon_sym_COLON] = ACTIONS(3002),
    [anon_sym_EQ_EQ] = ACTIONS(3002),
    [anon_sym_STAR] = ACTIONS(3002),
    [anon_sym_TILDE] = ACTIONS(3002),
    [anon_sym_AT] = ACTIONS(3002),
    [sym_bool] = ACTIONS(3000),
    [sym_byte] = ACTIONS(3000),
    [sym_ubyte] = ACTIONS(3000),
    [sym_char] = ACTIONS(3000),
    [sym_short] = ACTIONS(3000),
    [sym_ushort] = ACTIONS(3000),
    [sym_int] = ACTIONS(3000),
    [sym_uint] = ACTIONS(3000),
    [sym_long] = ACTIONS(3000),
    [sym_ulong] = ACTIONS(3000),
    [sym_cent] = ACTIONS(3000),
    [sym_ucent] = ACTIONS(3000),
    [sym_wchar] = ACTIONS(3000),
    [sym_dchar] = ACTIONS(3000),
    [sym_float] = ACTIONS(3000),
    [sym_double] = ACTIONS(3000),
    [sym_real] = ACTIONS(3000),
    [sym_ifloat] = ACTIONS(3000),
    [sym_idouble] = ACTIONS(3000),
    [sym_ireal] = ACTIONS(3000),
    [sym_cfloat] = ACTIONS(3000),
    [sym_cdouble] = ACTIONS(3000),
    [sym_creal] = ACTIONS(3000),
    [sym_size_t] = ACTIONS(3000),
    [sym_ptrdiff_t] = ACTIONS(3000),
    [sym_string] = ACTIONS(3000),
    [sym_cstring] = ACTIONS(3000),
    [sym_dstring] = ACTIONS(3000),
    [sym_wstring] = ACTIONS(3000),
    [sym_noreturn] = ACTIONS(3000),
    [sym_this] = ACTIONS(3000),
    [sym_abstract] = ACTIONS(3000),
    [sym_alias] = ACTIONS(3000),
    [sym_align] = ACTIONS(3000),
    [sym_auto] = ACTIONS(3000),
    [sym_class] = ACTIONS(3000),
    [sym_const] = ACTIONS(3000),
    [sym_debug] = ACTIONS(3000),
    [sym_delegate] = ACTIONS(3000),
    [sym_deprecated] = ACTIONS(3000),
    [sym_enum] = ACTIONS(3000),
    [sym_export] = ACTIONS(3000),
    [sym_extern] = ACTIONS(3000),
    [sym_final] = ACTIONS(3000),
    [sym_function] = ACTIONS(3000),
    [sym_immutable] = ACTIONS(3000),
    [sym_import] = ACTIONS(3000),
    [sym_inout] = ACTIONS(3000),
    [sym_interface] = ACTIONS(3000),
    [sym_invariant] = ACTIONS(3000),
    [sym_mixin] = ACTIONS(3000),
    [sym_module] = ACTIONS(3000),
    [sym_nothrow] = ACTIONS(3000),
    [sym_override] = ACTIONS(3000),
    [sym_package] = ACTIONS(3000),
    [sym_pragma] = ACTIONS(3000),
    [sym_private] = ACTIONS(3000),
    [sym_protected] = ACTIONS(3000),
    [sym_public] = ACTIONS(3000),
    [sym_pure] = ACTIONS(3000),
    [sym_ref] = ACTIONS(3000),
    [sym_return] = ACTIONS(3000),
    [sym_scope] = ACTIONS(3000),
    [sym_shared] = ACTIONS(3000),
    [sym_static] = ACTIONS(3000),
    [sym_struct] = ACTIONS(3000),
    [sym_synchronized] = ACTIONS(3000),
    [sym_template] = ACTIONS(3000),
    [sym_typeof] = ACTIONS(3000),
    [sym_union] = ACTIONS(3000),
    [sym_unittest] = ACTIONS(3000),
    [sym_version] = ACTIONS(3000),
    [sym_gshared] = ACTIONS(3000),
    [sym_traits] = ACTIONS(3000),
    [sym_vector] = ACTIONS(3000),
    [sym_void] = ACTIONS(3000),
    [sym_directive] = ACTIONS(3),
  },
  [2416] = {
    [sym_identifier] = ACTIONS(6657),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6659),
    [anon_sym_DOT] = ACTIONS(6659),
    [anon_sym_BANG] = ACTIONS(6659),
    [anon_sym_LPAREN] = ACTIONS(6659),
    [anon_sym_RPAREN] = ACTIONS(6659),
    [anon_sym_LBRACK] = ACTIONS(6659),
    [anon_sym_RBRACK] = ACTIONS(6659),
    [anon_sym_COMMA] = ACTIONS(6659),
    [anon_sym_SEMI] = ACTIONS(6659),
    [anon_sym_COLON] = ACTIONS(6659),
    [anon_sym_EQ_EQ] = ACTIONS(6659),
    [anon_sym_STAR] = ACTIONS(6659),
    [anon_sym_TILDE] = ACTIONS(6659),
    [anon_sym_AT] = ACTIONS(6659),
    [sym_bool] = ACTIONS(6657),
    [sym_byte] = ACTIONS(6657),
    [sym_ubyte] = ACTIONS(6657),
    [sym_char] = ACTIONS(6657),
    [sym_short] = ACTIONS(6657),
    [sym_ushort] = ACTIONS(6657),
    [sym_int] = ACTIONS(6657),
    [sym_uint] = ACTIONS(6657),
    [sym_long] = ACTIONS(6657),
    [sym_ulong] = ACTIONS(6657),
    [sym_cent] = ACTIONS(6657),
    [sym_ucent] = ACTIONS(6657),
    [sym_wchar] = ACTIONS(6657),
    [sym_dchar] = ACTIONS(6657),
    [sym_float] = ACTIONS(6657),
    [sym_double] = ACTIONS(6657),
    [sym_real] = ACTIONS(6657),
    [sym_ifloat] = ACTIONS(6657),
    [sym_idouble] = ACTIONS(6657),
    [sym_ireal] = ACTIONS(6657),
    [sym_cfloat] = ACTIONS(6657),
    [sym_cdouble] = ACTIONS(6657),
    [sym_creal] = ACTIONS(6657),
    [sym_size_t] = ACTIONS(6657),
    [sym_ptrdiff_t] = ACTIONS(6657),
    [sym_string] = ACTIONS(6657),
    [sym_cstring] = ACTIONS(6657),
    [sym_dstring] = ACTIONS(6657),
    [sym_wstring] = ACTIONS(6657),
    [sym_noreturn] = ACTIONS(6657),
    [sym_this] = ACTIONS(6657),
    [sym_abstract] = ACTIONS(6657),
    [sym_alias] = ACTIONS(6657),
    [sym_align] = ACTIONS(6657),
    [sym_auto] = ACTIONS(6657),
    [sym_class] = ACTIONS(6657),
    [sym_const] = ACTIONS(6657),
    [sym_debug] = ACTIONS(6657),
    [sym_delegate] = ACTIONS(6657),
    [sym_deprecated] = ACTIONS(6657),
    [sym_enum] = ACTIONS(6657),
    [sym_export] = ACTIONS(6657),
    [sym_extern] = ACTIONS(6657),
    [sym_final] = ACTIONS(6657),
    [sym_function] = ACTIONS(6657),
    [sym_immutable] = ACTIONS(6657),
    [sym_import] = ACTIONS(6657),
    [sym_inout] = ACTIONS(6657),
    [sym_interface] = ACTIONS(6657),
    [sym_invariant] = ACTIONS(6657),
    [sym_mixin] = ACTIONS(6657),
    [sym_module] = ACTIONS(6657),
    [sym_nothrow] = ACTIONS(6657),
    [sym_override] = ACTIONS(6657),
    [sym_package] = ACTIONS(6657),
    [sym_pragma] = ACTIONS(6657),
    [sym_private] = ACTIONS(6657),
    [sym_protected] = ACTIONS(6657),
    [sym_public] = ACTIONS(6657),
    [sym_pure] = ACTIONS(6657),
    [sym_ref] = ACTIONS(6657),
    [sym_return] = ACTIONS(6657),
    [sym_scope] = ACTIONS(6657),
    [sym_shared] = ACTIONS(6657),
    [sym_static] = ACTIONS(6657),
    [sym_struct] = ACTIONS(6657),
    [sym_synchronized] = ACTIONS(6657),
    [sym_template] = ACTIONS(6657),
    [sym_typeof] = ACTIONS(6657),
    [sym_union] = ACTIONS(6657),
    [sym_unittest] = ACTIONS(6657),
    [sym_version] = ACTIONS(6657),
    [sym_gshared] = ACTIONS(6657),
    [sym_traits] = ACTIONS(6657),
    [sym_vector] = ACTIONS(6657),
    [sym_void] = ACTIONS(6657),
    [sym_directive] = ACTIONS(3),
  },
  [2417] = {
    [sym_identifier] = ACTIONS(2996),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(2998),
    [anon_sym_DOT] = ACTIONS(2998),
    [anon_sym_BANG] = ACTIONS(2998),
    [anon_sym_LPAREN] = ACTIONS(2998),
    [anon_sym_RPAREN] = ACTIONS(2998),
    [anon_sym_LBRACK] = ACTIONS(2998),
    [anon_sym_RBRACK] = ACTIONS(2998),
    [anon_sym_COMMA] = ACTIONS(2998),
    [anon_sym_SEMI] = ACTIONS(2998),
    [anon_sym_COLON] = ACTIONS(2998),
    [anon_sym_EQ_EQ] = ACTIONS(2998),
    [anon_sym_STAR] = ACTIONS(2998),
    [anon_sym_TILDE] = ACTIONS(2998),
    [anon_sym_AT] = ACTIONS(2998),
    [sym_bool] = ACTIONS(2996),
    [sym_byte] = ACTIONS(2996),
    [sym_ubyte] = ACTIONS(2996),
    [sym_char] = ACTIONS(2996),
    [sym_short] = ACTIONS(2996),
    [sym_ushort] = ACTIONS(2996),
    [sym_int] = ACTIONS(2996),
    [sym_uint] = ACTIONS(2996),
    [sym_long] = ACTIONS(2996),
    [sym_ulong] = ACTIONS(2996),
    [sym_cent] = ACTIONS(2996),
    [sym_ucent] = ACTIONS(2996),
    [sym_wchar] = ACTIONS(2996),
    [sym_dchar] = ACTIONS(2996),
    [sym_float] = ACTIONS(2996),
    [sym_double] = ACTIONS(2996),
    [sym_real] = ACTIONS(2996),
    [sym_ifloat] = ACTIONS(2996),
    [sym_idouble] = ACTIONS(2996),
    [sym_ireal] = ACTIONS(2996),
    [sym_cfloat] = ACTIONS(2996),
    [sym_cdouble] = ACTIONS(2996),
    [sym_creal] = ACTIONS(2996),
    [sym_size_t] = ACTIONS(2996),
    [sym_ptrdiff_t] = ACTIONS(2996),
    [sym_string] = ACTIONS(2996),
    [sym_cstring] = ACTIONS(2996),
    [sym_dstring] = ACTIONS(2996),
    [sym_wstring] = ACTIONS(2996),
    [sym_noreturn] = ACTIONS(2996),
    [sym_this] = ACTIONS(2996),
    [sym_abstract] = ACTIONS(2996),
    [sym_alias] = ACTIONS(2996),
    [sym_align] = ACTIONS(2996),
    [sym_auto] = ACTIONS(2996),
    [sym_class] = ACTIONS(2996),
    [sym_const] = ACTIONS(2996),
    [sym_debug] = ACTIONS(2996),
    [sym_delegate] = ACTIONS(2996),
    [sym_deprecated] = ACTIONS(2996),
    [sym_enum] = ACTIONS(2996),
    [sym_export] = ACTIONS(2996),
    [sym_extern] = ACTIONS(2996),
    [sym_final] = ACTIONS(2996),
    [sym_function] = ACTIONS(2996),
    [sym_immutable] = ACTIONS(2996),
    [sym_import] = ACTIONS(2996),
    [sym_inout] = ACTIONS(2996),
    [sym_interface] = ACTIONS(2996),
    [sym_invariant] = ACTIONS(2996),
    [sym_mixin] = ACTIONS(2996),
    [sym_module] = ACTIONS(2996),
    [sym_nothrow] = ACTIONS(2996),
    [sym_override] = ACTIONS(2996),
    [sym_package] = ACTIONS(2996),
    [sym_pragma] = ACTIONS(2996),
    [sym_private] = ACTIONS(2996),
    [sym_protected] = ACTIONS(2996),
    [sym_public] = ACTIONS(2996),
    [sym_pure] = ACTIONS(2996),
    [sym_ref] = ACTIONS(2996),
    [sym_return] = ACTIONS(2996),
    [sym_scope] = ACTIONS(2996),
    [sym_shared] = ACTIONS(2996),
    [sym_static] = ACTIONS(2996),
    [sym_struct] = ACTIONS(2996),
    [sym_synchronized] = ACTIONS(2996),
    [sym_template] = ACTIONS(2996),
    [sym_typeof] = ACTIONS(2996),
    [sym_union] = ACTIONS(2996),
    [sym_unittest] = ACTIONS(2996),
    [sym_version] = ACTIONS(2996),
    [sym_gshared] = ACTIONS(2996),
    [sym_traits] = ACTIONS(2996),
    [sym_vector] = ACTIONS(2996),
    [sym_void] = ACTIONS(2996),
    [sym_directive] = ACTIONS(3),
  },
  [2418] = {
    [sym_identifier] = ACTIONS(6661),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6663),
    [anon_sym_DOT] = ACTIONS(6663),
    [anon_sym_LPAREN] = ACTIONS(6663),
    [anon_sym_RPAREN] = ACTIONS(6663),
    [anon_sym_LBRACK] = ACTIONS(6663),
    [anon_sym_RBRACK] = ACTIONS(6663),
    [anon_sym_COMMA] = ACTIONS(6663),
    [anon_sym_SEMI] = ACTIONS(6663),
    [anon_sym_COLON] = ACTIONS(6663),
    [anon_sym_EQ_EQ] = ACTIONS(6663),
    [anon_sym_STAR] = ACTIONS(6663),
    [anon_sym_TILDE] = ACTIONS(6663),
    [anon_sym_AT] = ACTIONS(6663),
    [sym_bool] = ACTIONS(6661),
    [sym_byte] = ACTIONS(6661),
    [sym_ubyte] = ACTIONS(6661),
    [sym_char] = ACTIONS(6661),
    [sym_short] = ACTIONS(6661),
    [sym_ushort] = ACTIONS(6661),
    [sym_int] = ACTIONS(6661),
    [sym_uint] = ACTIONS(6661),
    [sym_long] = ACTIONS(6661),
    [sym_ulong] = ACTIONS(6661),
    [sym_cent] = ACTIONS(6661),
    [sym_ucent] = ACTIONS(6661),
    [sym_wchar] = ACTIONS(6661),
    [sym_dchar] = ACTIONS(6661),
    [sym_float] = ACTIONS(6661),
    [sym_double] = ACTIONS(6661),
    [sym_real] = ACTIONS(6661),
    [sym_ifloat] = ACTIONS(6661),
    [sym_idouble] = ACTIONS(6661),
    [sym_ireal] = ACTIONS(6661),
    [sym_cfloat] = ACTIONS(6661),
    [sym_cdouble] = ACTIONS(6661),
    [sym_creal] = ACTIONS(6661),
    [sym_size_t] = ACTIONS(6661),
    [sym_ptrdiff_t] = ACTIONS(6661),
    [sym_string] = ACTIONS(6661),
    [sym_cstring] = ACTIONS(6661),
    [sym_dstring] = ACTIONS(6661),
    [sym_wstring] = ACTIONS(6661),
    [sym_noreturn] = ACTIONS(6661),
    [sym_this] = ACTIONS(6661),
    [sym_abstract] = ACTIONS(6661),
    [sym_alias] = ACTIONS(6661),
    [sym_align] = ACTIONS(6661),
    [sym_auto] = ACTIONS(6661),
    [sym_class] = ACTIONS(6661),
    [sym_const] = ACTIONS(6661),
    [sym_debug] = ACTIONS(6661),
    [sym_delegate] = ACTIONS(6661),
    [sym_deprecated] = ACTIONS(6661),
    [sym_enum] = ACTIONS(6661),
    [sym_export] = ACTIONS(6661),
    [sym_extern] = ACTIONS(6661),
    [sym_final] = ACTIONS(6661),
    [sym_function] = ACTIONS(6661),
    [sym_immutable] = ACTIONS(6661),
    [sym_import] = ACTIONS(6661),
    [sym_inout] = ACTIONS(6661),
    [sym_interface] = ACTIONS(6661),
    [sym_invariant] = ACTIONS(6661),
    [sym_mixin] = ACTIONS(6661),
    [sym_module] = ACTIONS(6661),
    [sym_nothrow] = ACTIONS(6661),
    [sym_override] = ACTIONS(6661),
    [sym_package] = ACTIONS(6661),
    [sym_pragma] = ACTIONS(6661),
    [sym_private] = ACTIONS(6661),
    [sym_protected] = ACTIONS(6661),
    [sym_public] = ACTIONS(6661),
    [sym_pure] = ACTIONS(6661),
    [sym_ref] = ACTIONS(6661),
    [sym_return] = ACTIONS(6661),
    [sym_scope] = ACTIONS(6661),
    [sym_shared] = ACTIONS(6661),
    [sym_static] = ACTIONS(6661),
    [sym_struct] = ACTIONS(6661),
    [sym_synchronized] = ACTIONS(6661),
    [sym_template] = ACTIONS(6661),
    [sym_typeof] = ACTIONS(6661),
    [sym_union] = ACTIONS(6661),
    [sym_unittest] = ACTIONS(6661),
    [sym_version] = ACTIONS(6661),
    [sym_gshared] = ACTIONS(6661),
    [sym_traits] = ACTIONS(6661),
    [sym_vector] = ACTIONS(6661),
    [sym_void] = ACTIONS(6661),
    [sym_directive] = ACTIONS(3),
  },
  [2419] = {
    [sym_identifier] = ACTIONS(6665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6667),
    [anon_sym_DOT] = ACTIONS(6667),
    [anon_sym_LPAREN] = ACTIONS(6667),
    [anon_sym_RPAREN] = ACTIONS(6667),
    [anon_sym_LBRACK] = ACTIONS(6667),
    [anon_sym_RBRACK] = ACTIONS(6667),
    [anon_sym_COMMA] = ACTIONS(6667),
    [anon_sym_SEMI] = ACTIONS(6667),
    [anon_sym_COLON] = ACTIONS(6667),
    [anon_sym_EQ_EQ] = ACTIONS(6667),
    [anon_sym_STAR] = ACTIONS(6667),
    [anon_sym_TILDE] = ACTIONS(6667),
    [anon_sym_AT] = ACTIONS(6667),
    [sym_bool] = ACTIONS(6665),
    [sym_byte] = ACTIONS(6665),
    [sym_ubyte] = ACTIONS(6665),
    [sym_char] = ACTIONS(6665),
    [sym_short] = ACTIONS(6665),
    [sym_ushort] = ACTIONS(6665),
    [sym_int] = ACTIONS(6665),
    [sym_uint] = ACTIONS(6665),
    [sym_long] = ACTIONS(6665),
    [sym_ulong] = ACTIONS(6665),
    [sym_cent] = ACTIONS(6665),
    [sym_ucent] = ACTIONS(6665),
    [sym_wchar] = ACTIONS(6665),
    [sym_dchar] = ACTIONS(6665),
    [sym_float] = ACTIONS(6665),
    [sym_double] = ACTIONS(6665),
    [sym_real] = ACTIONS(6665),
    [sym_ifloat] = ACTIONS(6665),
    [sym_idouble] = ACTIONS(6665),
    [sym_ireal] = ACTIONS(6665),
    [sym_cfloat] = ACTIONS(6665),
    [sym_cdouble] = ACTIONS(6665),
    [sym_creal] = ACTIONS(6665),
    [sym_size_t] = ACTIONS(6665),
    [sym_ptrdiff_t] = ACTIONS(6665),
    [sym_string] = ACTIONS(6665),
    [sym_cstring] = ACTIONS(6665),
    [sym_dstring] = ACTIONS(6665),
    [sym_wstring] = ACTIONS(6665),
    [sym_noreturn] = ACTIONS(6665),
    [sym_this] = ACTIONS(6665),
    [sym_abstract] = ACTIONS(6665),
    [sym_alias] = ACTIONS(6665),
    [sym_align] = ACTIONS(6665),
    [sym_auto] = ACTIONS(6665),
    [sym_class] = ACTIONS(6665),
    [sym_const] = ACTIONS(6665),
    [sym_debug] = ACTIONS(6665),
    [sym_delegate] = ACTIONS(6665),
    [sym_deprecated] = ACTIONS(6665),
    [sym_enum] = ACTIONS(6665),
    [sym_export] = ACTIONS(6665),
    [sym_extern] = ACTIONS(6665),
    [sym_final] = ACTIONS(6665),
    [sym_function] = ACTIONS(6665),
    [sym_immutable] = ACTIONS(6665),
    [sym_import] = ACTIONS(6665),
    [sym_inout] = ACTIONS(6665),
    [sym_interface] = ACTIONS(6665),
    [sym_invariant] = ACTIONS(6665),
    [sym_mixin] = ACTIONS(6665),
    [sym_module] = ACTIONS(6665),
    [sym_nothrow] = ACTIONS(6665),
    [sym_override] = ACTIONS(6665),
    [sym_package] = ACTIONS(6665),
    [sym_pragma] = ACTIONS(6665),
    [sym_private] = ACTIONS(6665),
    [sym_protected] = ACTIONS(6665),
    [sym_public] = ACTIONS(6665),
    [sym_pure] = ACTIONS(6665),
    [sym_ref] = ACTIONS(6665),
    [sym_return] = ACTIONS(6665),
    [sym_scope] = ACTIONS(6665),
    [sym_shared] = ACTIONS(6665),
    [sym_static] = ACTIONS(6665),
    [sym_struct] = ACTIONS(6665),
    [sym_synchronized] = ACTIONS(6665),
    [sym_template] = ACTIONS(6665),
    [sym_typeof] = ACTIONS(6665),
    [sym_union] = ACTIONS(6665),
    [sym_unittest] = ACTIONS(6665),
    [sym_version] = ACTIONS(6665),
    [sym_gshared] = ACTIONS(6665),
    [sym_traits] = ACTIONS(6665),
    [sym_vector] = ACTIONS(6665),
    [sym_void] = ACTIONS(6665),
    [sym_directive] = ACTIONS(3),
  },
  [2420] = {
    [sym_identifier] = ACTIONS(6669),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6671),
    [anon_sym_DOT] = ACTIONS(6671),
    [anon_sym_LPAREN] = ACTIONS(6671),
    [anon_sym_RPAREN] = ACTIONS(6671),
    [anon_sym_LBRACK] = ACTIONS(6671),
    [anon_sym_RBRACK] = ACTIONS(6671),
    [anon_sym_COMMA] = ACTIONS(6671),
    [anon_sym_SEMI] = ACTIONS(6671),
    [anon_sym_COLON] = ACTIONS(6671),
    [anon_sym_EQ_EQ] = ACTIONS(6671),
    [anon_sym_STAR] = ACTIONS(6671),
    [anon_sym_TILDE] = ACTIONS(6671),
    [anon_sym_AT] = ACTIONS(6671),
    [sym_bool] = ACTIONS(6669),
    [sym_byte] = ACTIONS(6669),
    [sym_ubyte] = ACTIONS(6669),
    [sym_char] = ACTIONS(6669),
    [sym_short] = ACTIONS(6669),
    [sym_ushort] = ACTIONS(6669),
    [sym_int] = ACTIONS(6669),
    [sym_uint] = ACTIONS(6669),
    [sym_long] = ACTIONS(6669),
    [sym_ulong] = ACTIONS(6669),
    [sym_cent] = ACTIONS(6669),
    [sym_ucent] = ACTIONS(6669),
    [sym_wchar] = ACTIONS(6669),
    [sym_dchar] = ACTIONS(6669),
    [sym_float] = ACTIONS(6669),
    [sym_double] = ACTIONS(6669),
    [sym_real] = ACTIONS(6669),
    [sym_ifloat] = ACTIONS(6669),
    [sym_idouble] = ACTIONS(6669),
    [sym_ireal] = ACTIONS(6669),
    [sym_cfloat] = ACTIONS(6669),
    [sym_cdouble] = ACTIONS(6669),
    [sym_creal] = ACTIONS(6669),
    [sym_size_t] = ACTIONS(6669),
    [sym_ptrdiff_t] = ACTIONS(6669),
    [sym_string] = ACTIONS(6669),
    [sym_cstring] = ACTIONS(6669),
    [sym_dstring] = ACTIONS(6669),
    [sym_wstring] = ACTIONS(6669),
    [sym_noreturn] = ACTIONS(6669),
    [sym_this] = ACTIONS(6669),
    [sym_abstract] = ACTIONS(6669),
    [sym_alias] = ACTIONS(6669),
    [sym_align] = ACTIONS(6669),
    [sym_auto] = ACTIONS(6669),
    [sym_class] = ACTIONS(6669),
    [sym_const] = ACTIONS(6669),
    [sym_debug] = ACTIONS(6669),
    [sym_delegate] = ACTIONS(6669),
    [sym_deprecated] = ACTIONS(6669),
    [sym_enum] = ACTIONS(6669),
    [sym_export] = ACTIONS(6669),
    [sym_extern] = ACTIONS(6669),
    [sym_final] = ACTIONS(6669),
    [sym_function] = ACTIONS(6669),
    [sym_immutable] = ACTIONS(6669),
    [sym_import] = ACTIONS(6669),
    [sym_inout] = ACTIONS(6669),
    [sym_interface] = ACTIONS(6669),
    [sym_invariant] = ACTIONS(6669),
    [sym_mixin] = ACTIONS(6669),
    [sym_module] = ACTIONS(6669),
    [sym_nothrow] = ACTIONS(6669),
    [sym_override] = ACTIONS(6669),
    [sym_package] = ACTIONS(6669),
    [sym_pragma] = ACTIONS(6669),
    [sym_private] = ACTIONS(6669),
    [sym_protected] = ACTIONS(6669),
    [sym_public] = ACTIONS(6669),
    [sym_pure] = ACTIONS(6669),
    [sym_ref] = ACTIONS(6669),
    [sym_return] = ACTIONS(6669),
    [sym_scope] = ACTIONS(6669),
    [sym_shared] = ACTIONS(6669),
    [sym_static] = ACTIONS(6669),
    [sym_struct] = ACTIONS(6669),
    [sym_synchronized] = ACTIONS(6669),
    [sym_template] = ACTIONS(6669),
    [sym_typeof] = ACTIONS(6669),
    [sym_union] = ACTIONS(6669),
    [sym_unittest] = ACTIONS(6669),
    [sym_version] = ACTIONS(6669),
    [sym_gshared] = ACTIONS(6669),
    [sym_traits] = ACTIONS(6669),
    [sym_vector] = ACTIONS(6669),
    [sym_void] = ACTIONS(6669),
    [sym_directive] = ACTIONS(3),
  },
  [2421] = {
    [sym_arguments] = STATE(2420),
    [sym_template_arguments] = STATE(2416),
    [sym_identifier] = ACTIONS(6647),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6649),
    [anon_sym_DOT] = ACTIONS(6649),
    [anon_sym_BANG] = ACTIONS(6673),
    [anon_sym_LPAREN] = ACTIONS(6651),
    [anon_sym_RPAREN] = ACTIONS(6649),
    [anon_sym_LBRACK] = ACTIONS(6649),
    [anon_sym_COLON] = ACTIONS(6649),
    [anon_sym_EQ_EQ] = ACTIONS(6649),
    [anon_sym_STAR] = ACTIONS(6649),
    [anon_sym_TILDE] = ACTIONS(6649),
    [anon_sym_AT] = ACTIONS(6649),
    [sym_bool] = ACTIONS(6647),
    [sym_byte] = ACTIONS(6647),
    [sym_ubyte] = ACTIONS(6647),
    [sym_char] = ACTIONS(6647),
    [sym_short] = ACTIONS(6647),
    [sym_ushort] = ACTIONS(6647),
    [sym_int] = ACTIONS(6647),
    [sym_uint] = ACTIONS(6647),
    [sym_long] = ACTIONS(6647),
    [sym_ulong] = ACTIONS(6647),
    [sym_cent] = ACTIONS(6647),
    [sym_ucent] = ACTIONS(6647),
    [sym_wchar] = ACTIONS(6647),
    [sym_dchar] = ACTIONS(6647),
    [sym_float] = ACTIONS(6647),
    [sym_double] = ACTIONS(6647),
    [sym_real] = ACTIONS(6647),
    [sym_ifloat] = ACTIONS(6647),
    [sym_idouble] = ACTIONS(6647),
    [sym_ireal] = ACTIONS(6647),
    [sym_cfloat] = ACTIONS(6647),
    [sym_cdouble] = ACTIONS(6647),
    [sym_creal] = ACTIONS(6647),
    [sym_size_t] = ACTIONS(6647),
    [sym_ptrdiff_t] = ACTIONS(6647),
    [sym_string] = ACTIONS(6647),
    [sym_cstring] = ACTIONS(6647),
    [sym_dstring] = ACTIONS(6647),
    [sym_wstring] = ACTIONS(6647),
    [sym_noreturn] = ACTIONS(6647),
    [sym_this] = ACTIONS(6647),
    [sym_abstract] = ACTIONS(6647),
    [sym_alias] = ACTIONS(6647),
    [sym_align] = ACTIONS(6647),
    [sym_auto] = ACTIONS(6647),
    [sym_class] = ACTIONS(6647),
    [sym_const] = ACTIONS(6647),
    [sym_debug] = ACTIONS(6647),
    [sym_delegate] = ACTIONS(6647),
    [sym_deprecated] = ACTIONS(6647),
    [sym_enum] = ACTIONS(6647),
    [sym_export] = ACTIONS(6647),
    [sym_extern] = ACTIONS(6647),
    [sym_final] = ACTIONS(6647),
    [sym_function] = ACTIONS(6647),
    [sym_immutable] = ACTIONS(6647),
    [sym_import] = ACTIONS(6647),
    [sym_inout] = ACTIONS(6647),
    [sym_interface] = ACTIONS(6647),
    [sym_invariant] = ACTIONS(6647),
    [sym_mixin] = ACTIONS(6647),
    [sym_module] = ACTIONS(6647),
    [sym_nothrow] = ACTIONS(6647),
    [sym_override] = ACTIONS(6647),
    [sym_package] = ACTIONS(6647),
    [sym_pragma] = ACTIONS(6647),
    [sym_private] = ACTIONS(6647),
    [sym_protected] = ACTIONS(6647),
    [sym_public] = ACTIONS(6647),
    [sym_pure] = ACTIONS(6647),
    [sym_ref] = ACTIONS(6647),
    [sym_return] = ACTIONS(6647),
    [sym_scope] = ACTIONS(6647),
    [sym_shared] = ACTIONS(6647),
    [sym_static] = ACTIONS(6647),
    [sym_struct] = ACTIONS(6647),
    [sym_synchronized] = ACTIONS(6647),
    [sym_template] = ACTIONS(6647),
    [sym_typeof] = ACTIONS(6647),
    [sym_union] = ACTIONS(6647),
    [sym_unittest] = ACTIONS(6647),
    [sym_version] = ACTIONS(6647),
    [sym_gshared] = ACTIONS(6647),
    [sym_traits] = ACTIONS(6647),
    [sym_vector] = ACTIONS(6647),
    [sym_void] = ACTIONS(6647),
    [sym_directive] = ACTIONS(3),
  },
  [2422] = {
    [sym_identifier] = ACTIONS(6675),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6677),
    [anon_sym_DOT] = ACTIONS(6677),
    [anon_sym_LPAREN] = ACTIONS(6677),
    [anon_sym_RPAREN] = ACTIONS(6677),
    [anon_sym_LBRACK] = ACTIONS(6677),
    [anon_sym_RBRACK] = ACTIONS(6677),
    [anon_sym_COMMA] = ACTIONS(6677),
    [anon_sym_SEMI] = ACTIONS(6677),
    [anon_sym_COLON] = ACTIONS(6677),
    [anon_sym_EQ_EQ] = ACTIONS(6677),
    [anon_sym_STAR] = ACTIONS(6677),
    [anon_sym_TILDE] = ACTIONS(6677),
    [anon_sym_AT] = ACTIONS(6677),
    [sym_bool] = ACTIONS(6675),
    [sym_byte] = ACTIONS(6675),
    [sym_ubyte] = ACTIONS(6675),
    [sym_char] = ACTIONS(6675),
    [sym_short] = ACTIONS(6675),
    [sym_ushort] = ACTIONS(6675),
    [sym_int] = ACTIONS(6675),
    [sym_uint] = ACTIONS(6675),
    [sym_long] = ACTIONS(6675),
    [sym_ulong] = ACTIONS(6675),
    [sym_cent] = ACTIONS(6675),
    [sym_ucent] = ACTIONS(6675),
    [sym_wchar] = ACTIONS(6675),
    [sym_dchar] = ACTIONS(6675),
    [sym_float] = ACTIONS(6675),
    [sym_double] = ACTIONS(6675),
    [sym_real] = ACTIONS(6675),
    [sym_ifloat] = ACTIONS(6675),
    [sym_idouble] = ACTIONS(6675),
    [sym_ireal] = ACTIONS(6675),
    [sym_cfloat] = ACTIONS(6675),
    [sym_cdouble] = ACTIONS(6675),
    [sym_creal] = ACTIONS(6675),
    [sym_size_t] = ACTIONS(6675),
    [sym_ptrdiff_t] = ACTIONS(6675),
    [sym_string] = ACTIONS(6675),
    [sym_cstring] = ACTIONS(6675),
    [sym_dstring] = ACTIONS(6675),
    [sym_wstring] = ACTIONS(6675),
    [sym_noreturn] = ACTIONS(6675),
    [sym_this] = ACTIONS(6675),
    [sym_abstract] = ACTIONS(6675),
    [sym_alias] = ACTIONS(6675),
    [sym_align] = ACTIONS(6675),
    [sym_auto] = ACTIONS(6675),
    [sym_class] = ACTIONS(6675),
    [sym_const] = ACTIONS(6675),
    [sym_debug] = ACTIONS(6675),
    [sym_delegate] = ACTIONS(6675),
    [sym_deprecated] = ACTIONS(6675),
    [sym_enum] = ACTIONS(6675),
    [sym_export] = ACTIONS(6675),
    [sym_extern] = ACTIONS(6675),
    [sym_final] = ACTIONS(6675),
    [sym_function] = ACTIONS(6675),
    [sym_immutable] = ACTIONS(6675),
    [sym_import] = ACTIONS(6675),
    [sym_inout] = ACTIONS(6675),
    [sym_interface] = ACTIONS(6675),
    [sym_invariant] = ACTIONS(6675),
    [sym_mixin] = ACTIONS(6675),
    [sym_module] = ACTIONS(6675),
    [sym_nothrow] = ACTIONS(6675),
    [sym_override] = ACTIONS(6675),
    [sym_package] = ACTIONS(6675),
    [sym_pragma] = ACTIONS(6675),
    [sym_private] = ACTIONS(6675),
    [sym_protected] = ACTIONS(6675),
    [sym_public] = ACTIONS(6675),
    [sym_pure] = ACTIONS(6675),
    [sym_ref] = ACTIONS(6675),
    [sym_return] = ACTIONS(6675),
    [sym_scope] = ACTIONS(6675),
    [sym_shared] = ACTIONS(6675),
    [sym_static] = ACTIONS(6675),
    [sym_struct] = ACTIONS(6675),
    [sym_synchronized] = ACTIONS(6675),
    [sym_template] = ACTIONS(6675),
    [sym_typeof] = ACTIONS(6675),
    [sym_union] = ACTIONS(6675),
    [sym_unittest] = ACTIONS(6675),
    [sym_version] = ACTIONS(6675),
    [sym_gshared] = ACTIONS(6675),
    [sym_traits] = ACTIONS(6675),
    [sym_vector] = ACTIONS(6675),
    [sym_void] = ACTIONS(6675),
    [sym_directive] = ACTIONS(3),
  },
  [2423] = {
    [sym_type_ctor] = STATE(2423),
    [sym_align_attribute] = STATE(2423),
    [sym_deprecated_attribute] = STATE(2423),
    [sym__attribute] = STATE(2423),
    [sym_at_attribute] = STATE(2423),
    [sym__function_attribute_kwd] = STATE(2423),
    [sym_linkage_attribute] = STATE(2423),
    [sym_pragma_expression] = STATE(2423),
    [aux_sym_import_declaration_repeat1] = STATE(2423),
    [sym_identifier] = ACTIONS(6679),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6681),
    [anon_sym_DOT] = ACTIONS(6681),
    [anon_sym_COLON] = ACTIONS(6681),
    [anon_sym_TILDE] = ACTIONS(6681),
    [anon_sym_AT] = ACTIONS(6683),
    [sym_bool] = ACTIONS(6679),
    [sym_byte] = ACTIONS(6679),
    [sym_ubyte] = ACTIONS(6679),
    [sym_char] = ACTIONS(6679),
    [sym_short] = ACTIONS(6679),
    [sym_ushort] = ACTIONS(6679),
    [sym_int] = ACTIONS(6679),
    [sym_uint] = ACTIONS(6679),
    [sym_long] = ACTIONS(6679),
    [sym_ulong] = ACTIONS(6679),
    [sym_cent] = ACTIONS(6679),
    [sym_ucent] = ACTIONS(6679),
    [sym_wchar] = ACTIONS(6679),
    [sym_dchar] = ACTIONS(6679),
    [sym_float] = ACTIONS(6679),
    [sym_double] = ACTIONS(6679),
    [sym_real] = ACTIONS(6679),
    [sym_ifloat] = ACTIONS(6679),
    [sym_idouble] = ACTIONS(6679),
    [sym_ireal] = ACTIONS(6679),
    [sym_cfloat] = ACTIONS(6679),
    [sym_cdouble] = ACTIONS(6679),
    [sym_creal] = ACTIONS(6679),
    [sym_size_t] = ACTIONS(6679),
    [sym_ptrdiff_t] = ACTIONS(6679),
    [sym_string] = ACTIONS(6679),
    [sym_cstring] = ACTIONS(6679),
    [sym_dstring] = ACTIONS(6679),
    [sym_wstring] = ACTIONS(6679),
    [sym_noreturn] = ACTIONS(6679),
    [sym_this] = ACTIONS(6679),
    [sym_abstract] = ACTIONS(6686),
    [sym_alias] = ACTIONS(6679),
    [sym_align] = ACTIONS(6689),
    [sym_auto] = ACTIONS(6686),
    [sym_class] = ACTIONS(6679),
    [sym_const] = ACTIONS(6692),
    [sym_debug] = ACTIONS(6679),
    [sym_deprecated] = ACTIONS(6695),
    [sym_enum] = ACTIONS(6679),
    [sym_export] = ACTIONS(6686),
    [sym_extern] = ACTIONS(6698),
    [sym_final] = ACTIONS(6686),
    [sym_immutable] = ACTIONS(6692),
    [sym_import] = ACTIONS(6679),
    [sym_inout] = ACTIONS(6692),
    [sym_interface] = ACTIONS(6679),
    [sym_invariant] = ACTIONS(6679),
    [sym_mixin] = ACTIONS(6679),
    [sym_nothrow] = ACTIONS(6686),
    [sym_override] = ACTIONS(6686),
    [sym_package] = ACTIONS(6701),
    [sym_pragma] = ACTIONS(6704),
    [sym_private] = ACTIONS(6686),
    [sym_protected] = ACTIONS(6686),
    [sym_public] = ACTIONS(6686),
    [sym_pure] = ACTIONS(6686),
    [sym_ref] = ACTIONS(6686),
    [sym_return] = ACTIONS(6686),
    [sym_scope] = ACTIONS(6686),
    [sym_shared] = ACTIONS(6692),
    [sym_static] = ACTIONS(6686),
    [sym_struct] = ACTIONS(6679),
    [sym_synchronized] = ACTIONS(6686),
    [sym_template] = ACTIONS(6679),
    [sym_typeof] = ACTIONS(6679),
    [sym_union] = ACTIONS(6679),
    [sym_unittest] = ACTIONS(6679),
    [sym_version] = ACTIONS(6679),
    [sym_gshared] = ACTIONS(6686),
    [sym_traits] = ACTIONS(6679),
    [sym_vector] = ACTIONS(6679),
    [sym_void] = ACTIONS(6679),
    [sym_directive] = ACTIONS(3),
  },
  [2424] = {
    [ts_builtin_sym_end] = ACTIONS(3072),
    [sym_identifier] = ACTIONS(3070),
    [sym_end_file] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_COMMA] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
  },
  [2425] = {
    [ts_builtin_sym_end] = ACTIONS(3104),
    [sym_identifier] = ACTIONS(3102),
    [sym_end_file] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_COMMA] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3104),
    [anon_sym_AT] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_abstract] = ACTIONS(3102),
    [sym_alias] = ACTIONS(3102),
    [sym_align] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_class] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_debug] = ACTIONS(3102),
    [sym_deprecated] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_enum] = ACTIONS(3102),
    [sym_export] = ACTIONS(3102),
    [sym_extern] = ACTIONS(3102),
    [sym_final] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_interface] = ACTIONS(3102),
    [sym_invariant] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_nothrow] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_override] = ACTIONS(3102),
    [sym_package] = ACTIONS(3102),
    [sym_pragma] = ACTIONS(3102),
    [sym_private] = ACTIONS(3102),
    [sym_protected] = ACTIONS(3102),
    [sym_public] = ACTIONS(3102),
    [sym_pure] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_return] = ACTIONS(3102),
    [sym_scope] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_static] = ACTIONS(3102),
    [sym_struct] = ACTIONS(3102),
    [sym_synchronized] = ACTIONS(3102),
    [sym_template] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_union] = ACTIONS(3102),
    [sym_unittest] = ACTIONS(3102),
    [sym_version] = ACTIONS(3102),
    [sym_while] = ACTIONS(3102),
    [sym_gshared] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
  },
  [2426] = {
    [ts_builtin_sym_end] = ACTIONS(3100),
    [sym_identifier] = ACTIONS(3098),
    [sym_end_file] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_COMMA] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3100),
    [anon_sym_AT] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_abstract] = ACTIONS(3098),
    [sym_alias] = ACTIONS(3098),
    [sym_align] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_class] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_debug] = ACTIONS(3098),
    [sym_deprecated] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_enum] = ACTIONS(3098),
    [sym_export] = ACTIONS(3098),
    [sym_extern] = ACTIONS(3098),
    [sym_final] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_interface] = ACTIONS(3098),
    [sym_invariant] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_nothrow] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_override] = ACTIONS(3098),
    [sym_package] = ACTIONS(3098),
    [sym_pragma] = ACTIONS(3098),
    [sym_private] = ACTIONS(3098),
    [sym_protected] = ACTIONS(3098),
    [sym_public] = ACTIONS(3098),
    [sym_pure] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_return] = ACTIONS(3098),
    [sym_scope] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_static] = ACTIONS(3098),
    [sym_struct] = ACTIONS(3098),
    [sym_synchronized] = ACTIONS(3098),
    [sym_template] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_union] = ACTIONS(3098),
    [sym_unittest] = ACTIONS(3098),
    [sym_version] = ACTIONS(3098),
    [sym_while] = ACTIONS(3098),
    [sym_gshared] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
  },
  [2427] = {
    [sym_identifier] = ACTIONS(4952),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(4954),
    [anon_sym_DOT] = ACTIONS(4954),
    [anon_sym_SEMI] = ACTIONS(4954),
    [anon_sym_TILDE] = ACTIONS(4954),
    [anon_sym_AT] = ACTIONS(4954),
    [sym_bool] = ACTIONS(4952),
    [sym_byte] = ACTIONS(4952),
    [sym_ubyte] = ACTIONS(4952),
    [sym_char] = ACTIONS(4952),
    [sym_short] = ACTIONS(4952),
    [sym_ushort] = ACTIONS(4952),
    [sym_int] = ACTIONS(4952),
    [sym_uint] = ACTIONS(4952),
    [sym_long] = ACTIONS(4952),
    [sym_ulong] = ACTIONS(4952),
    [sym_cent] = ACTIONS(4952),
    [sym_ucent] = ACTIONS(4952),
    [sym_wchar] = ACTIONS(4952),
    [sym_dchar] = ACTIONS(4952),
    [sym_float] = ACTIONS(4952),
    [sym_double] = ACTIONS(4952),
    [sym_real] = ACTIONS(4952),
    [sym_ifloat] = ACTIONS(4952),
    [sym_idouble] = ACTIONS(4952),
    [sym_ireal] = ACTIONS(4952),
    [sym_cfloat] = ACTIONS(4952),
    [sym_cdouble] = ACTIONS(4952),
    [sym_creal] = ACTIONS(4952),
    [sym_size_t] = ACTIONS(4952),
    [sym_ptrdiff_t] = ACTIONS(4952),
    [sym_string] = ACTIONS(4952),
    [sym_cstring] = ACTIONS(4952),
    [sym_dstring] = ACTIONS(4952),
    [sym_wstring] = ACTIONS(4952),
    [sym_noreturn] = ACTIONS(4952),
    [sym_this] = ACTIONS(4952),
    [sym_abstract] = ACTIONS(4952),
    [sym_alias] = ACTIONS(4952),
    [sym_align] = ACTIONS(4952),
    [sym_auto] = ACTIONS(4952),
    [sym_catch] = ACTIONS(4952),
    [sym_class] = ACTIONS(4952),
    [sym_const] = ACTIONS(4952),
    [sym_debug] = ACTIONS(4952),
    [sym_deprecated] = ACTIONS(4952),
    [sym_do] = ACTIONS(4952),
    [sym_else] = ACTIONS(4952),
    [sym_enum] = ACTIONS(4952),
    [sym_export] = ACTIONS(4952),
    [sym_extern] = ACTIONS(4952),
    [sym_final] = ACTIONS(4952),
    [sym_finally] = ACTIONS(4952),
    [sym_immutable] = ACTIONS(4952),
    [sym_import] = ACTIONS(4952),
    [sym_in] = ACTIONS(4952),
    [sym_inout] = ACTIONS(4952),
    [sym_interface] = ACTIONS(4952),
    [sym_invariant] = ACTIONS(4952),
    [sym_mixin] = ACTIONS(4952),
    [sym_nothrow] = ACTIONS(4952),
    [sym_out] = ACTIONS(4952),
    [sym_override] = ACTIONS(4952),
    [sym_package] = ACTIONS(4952),
    [sym_pragma] = ACTIONS(4952),
    [sym_private] = ACTIONS(4952),
    [sym_protected] = ACTIONS(4952),
    [sym_public] = ACTIONS(4952),
    [sym_pure] = ACTIONS(4952),
    [sym_ref] = ACTIONS(4952),
    [sym_return] = ACTIONS(4952),
    [sym_scope] = ACTIONS(4952),
    [sym_shared] = ACTIONS(4952),
    [sym_static] = ACTIONS(4952),
    [sym_struct] = ACTIONS(4952),
    [sym_synchronized] = ACTIONS(4952),
    [sym_template] = ACTIONS(4952),
    [sym_typeof] = ACTIONS(4952),
    [sym_union] = ACTIONS(4952),
    [sym_unittest] = ACTIONS(4952),
    [sym_version] = ACTIONS(4952),
    [sym_while] = ACTIONS(4952),
    [sym_gshared] = ACTIONS(4952),
    [sym_traits] = ACTIONS(4952),
    [sym_vector] = ACTIONS(4952),
    [sym_void] = ACTIONS(4952),
    [sym_directive] = ACTIONS(3),
  },
  [2428] = {
    [sym_assert_expression] = STATE(7628),
    [sym__foreach] = STATE(7988),
    [sym_foreach_statement] = STATE(5595),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6396),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6713),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6717),
    [sym_foreach_reverse] = ACTIONS(6717),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2429] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6721),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(5084),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_catch] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_do] = ACTIONS(6723),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_finally] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(6723),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_out] = ACTIONS(6723),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
  },
  [2430] = {
    [sym_identifier] = ACTIONS(4402),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(4404),
    [anon_sym_DOT] = ACTIONS(4404),
    [anon_sym_SEMI] = ACTIONS(4404),
    [anon_sym_TILDE] = ACTIONS(4404),
    [anon_sym_AT] = ACTIONS(4404),
    [sym_bool] = ACTIONS(4402),
    [sym_byte] = ACTIONS(4402),
    [sym_ubyte] = ACTIONS(4402),
    [sym_char] = ACTIONS(4402),
    [sym_short] = ACTIONS(4402),
    [sym_ushort] = ACTIONS(4402),
    [sym_int] = ACTIONS(4402),
    [sym_uint] = ACTIONS(4402),
    [sym_long] = ACTIONS(4402),
    [sym_ulong] = ACTIONS(4402),
    [sym_cent] = ACTIONS(4402),
    [sym_ucent] = ACTIONS(4402),
    [sym_wchar] = ACTIONS(4402),
    [sym_dchar] = ACTIONS(4402),
    [sym_float] = ACTIONS(4402),
    [sym_double] = ACTIONS(4402),
    [sym_real] = ACTIONS(4402),
    [sym_ifloat] = ACTIONS(4402),
    [sym_idouble] = ACTIONS(4402),
    [sym_ireal] = ACTIONS(4402),
    [sym_cfloat] = ACTIONS(4402),
    [sym_cdouble] = ACTIONS(4402),
    [sym_creal] = ACTIONS(4402),
    [sym_size_t] = ACTIONS(4402),
    [sym_ptrdiff_t] = ACTIONS(4402),
    [sym_string] = ACTIONS(4402),
    [sym_cstring] = ACTIONS(4402),
    [sym_dstring] = ACTIONS(4402),
    [sym_wstring] = ACTIONS(4402),
    [sym_noreturn] = ACTIONS(4402),
    [sym_this] = ACTIONS(4402),
    [sym_abstract] = ACTIONS(4402),
    [sym_alias] = ACTIONS(4402),
    [sym_align] = ACTIONS(4402),
    [sym_auto] = ACTIONS(4402),
    [sym_catch] = ACTIONS(4402),
    [sym_class] = ACTIONS(4402),
    [sym_const] = ACTIONS(4402),
    [sym_debug] = ACTIONS(4402),
    [sym_deprecated] = ACTIONS(4402),
    [sym_do] = ACTIONS(4402),
    [sym_else] = ACTIONS(4402),
    [sym_enum] = ACTIONS(4402),
    [sym_export] = ACTIONS(4402),
    [sym_extern] = ACTIONS(4402),
    [sym_final] = ACTIONS(4402),
    [sym_finally] = ACTIONS(4402),
    [sym_immutable] = ACTIONS(4402),
    [sym_import] = ACTIONS(4402),
    [sym_in] = ACTIONS(4402),
    [sym_inout] = ACTIONS(4402),
    [sym_interface] = ACTIONS(4402),
    [sym_invariant] = ACTIONS(4402),
    [sym_mixin] = ACTIONS(4402),
    [sym_nothrow] = ACTIONS(4402),
    [sym_out] = ACTIONS(4402),
    [sym_override] = ACTIONS(4402),
    [sym_package] = ACTIONS(4402),
    [sym_pragma] = ACTIONS(4402),
    [sym_private] = ACTIONS(4402),
    [sym_protected] = ACTIONS(4402),
    [sym_public] = ACTIONS(4402),
    [sym_pure] = ACTIONS(4402),
    [sym_ref] = ACTIONS(4402),
    [sym_return] = ACTIONS(4402),
    [sym_scope] = ACTIONS(4402),
    [sym_shared] = ACTIONS(4402),
    [sym_static] = ACTIONS(4402),
    [sym_struct] = ACTIONS(4402),
    [sym_synchronized] = ACTIONS(4402),
    [sym_template] = ACTIONS(4402),
    [sym_typeof] = ACTIONS(4402),
    [sym_union] = ACTIONS(4402),
    [sym_unittest] = ACTIONS(4402),
    [sym_version] = ACTIONS(4402),
    [sym_while] = ACTIONS(4402),
    [sym_gshared] = ACTIONS(4402),
    [sym_traits] = ACTIONS(4402),
    [sym_vector] = ACTIONS(4402),
    [sym_void] = ACTIONS(4402),
    [sym_directive] = ACTIONS(3),
  },
  [2431] = {
    [sym_assert_expression] = STATE(7252),
    [sym__foreach] = STATE(7481),
    [sym_foreach_statement] = STATE(1613),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6484),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6725),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6727),
    [sym_foreach_reverse] = ACTIONS(6727),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2432] = {
    [sym_assert_expression] = STATE(8001),
    [sym__foreach] = STATE(8044),
    [sym_foreach_statement] = STATE(2194),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6729),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6731),
    [sym_foreach_reverse] = ACTIONS(6731),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2433] = {
    [sym_assert_expression] = STATE(8001),
    [sym__foreach] = STATE(8054),
    [sym_foreach_statement] = STATE(2194),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6729),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6733),
    [sym_foreach_reverse] = ACTIONS(6733),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2434] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6721),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4926),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_catch] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_do] = ACTIONS(6723),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_finally] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(6723),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_out] = ACTIONS(6723),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
  },
  [2435] = {
    [sym_assert_expression] = STATE(8001),
    [sym__foreach] = STATE(8052),
    [sym_foreach_statement] = STATE(2194),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6729),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6735),
    [sym_foreach_reverse] = ACTIONS(6735),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2436] = {
    [sym_identifier] = ACTIONS(4944),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(4946),
    [anon_sym_DOT] = ACTIONS(4946),
    [anon_sym_SEMI] = ACTIONS(4946),
    [anon_sym_TILDE] = ACTIONS(4946),
    [anon_sym_AT] = ACTIONS(4946),
    [sym_bool] = ACTIONS(4944),
    [sym_byte] = ACTIONS(4944),
    [sym_ubyte] = ACTIONS(4944),
    [sym_char] = ACTIONS(4944),
    [sym_short] = ACTIONS(4944),
    [sym_ushort] = ACTIONS(4944),
    [sym_int] = ACTIONS(4944),
    [sym_uint] = ACTIONS(4944),
    [sym_long] = ACTIONS(4944),
    [sym_ulong] = ACTIONS(4944),
    [sym_cent] = ACTIONS(4944),
    [sym_ucent] = ACTIONS(4944),
    [sym_wchar] = ACTIONS(4944),
    [sym_dchar] = ACTIONS(4944),
    [sym_float] = ACTIONS(4944),
    [sym_double] = ACTIONS(4944),
    [sym_real] = ACTIONS(4944),
    [sym_ifloat] = ACTIONS(4944),
    [sym_idouble] = ACTIONS(4944),
    [sym_ireal] = ACTIONS(4944),
    [sym_cfloat] = ACTIONS(4944),
    [sym_cdouble] = ACTIONS(4944),
    [sym_creal] = ACTIONS(4944),
    [sym_size_t] = ACTIONS(4944),
    [sym_ptrdiff_t] = ACTIONS(4944),
    [sym_string] = ACTIONS(4944),
    [sym_cstring] = ACTIONS(4944),
    [sym_dstring] = ACTIONS(4944),
    [sym_wstring] = ACTIONS(4944),
    [sym_noreturn] = ACTIONS(4944),
    [sym_this] = ACTIONS(4944),
    [sym_abstract] = ACTIONS(4944),
    [sym_alias] = ACTIONS(4944),
    [sym_align] = ACTIONS(4944),
    [sym_auto] = ACTIONS(4944),
    [sym_catch] = ACTIONS(4944),
    [sym_class] = ACTIONS(4944),
    [sym_const] = ACTIONS(4944),
    [sym_debug] = ACTIONS(4944),
    [sym_deprecated] = ACTIONS(4944),
    [sym_do] = ACTIONS(4944),
    [sym_else] = ACTIONS(4944),
    [sym_enum] = ACTIONS(4944),
    [sym_export] = ACTIONS(4944),
    [sym_extern] = ACTIONS(4944),
    [sym_final] = ACTIONS(4944),
    [sym_finally] = ACTIONS(4944),
    [sym_immutable] = ACTIONS(4944),
    [sym_import] = ACTIONS(4944),
    [sym_in] = ACTIONS(4944),
    [sym_inout] = ACTIONS(4944),
    [sym_interface] = ACTIONS(4944),
    [sym_invariant] = ACTIONS(4944),
    [sym_mixin] = ACTIONS(4944),
    [sym_nothrow] = ACTIONS(4944),
    [sym_out] = ACTIONS(4944),
    [sym_override] = ACTIONS(4944),
    [sym_package] = ACTIONS(4944),
    [sym_pragma] = ACTIONS(4944),
    [sym_private] = ACTIONS(4944),
    [sym_protected] = ACTIONS(4944),
    [sym_public] = ACTIONS(4944),
    [sym_pure] = ACTIONS(4944),
    [sym_ref] = ACTIONS(4944),
    [sym_return] = ACTIONS(4944),
    [sym_scope] = ACTIONS(4944),
    [sym_shared] = ACTIONS(4944),
    [sym_static] = ACTIONS(4944),
    [sym_struct] = ACTIONS(4944),
    [sym_synchronized] = ACTIONS(4944),
    [sym_template] = ACTIONS(4944),
    [sym_typeof] = ACTIONS(4944),
    [sym_union] = ACTIONS(4944),
    [sym_unittest] = ACTIONS(4944),
    [sym_version] = ACTIONS(4944),
    [sym_while] = ACTIONS(4944),
    [sym_gshared] = ACTIONS(4944),
    [sym_traits] = ACTIONS(4944),
    [sym_vector] = ACTIONS(4944),
    [sym_void] = ACTIONS(4944),
    [sym_directive] = ACTIONS(3),
  },
  [2437] = {
    [sym_assert_expression] = STATE(7407),
    [sym__foreach] = STATE(8036),
    [sym_foreach_statement] = STATE(1385),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6317),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6737),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6739),
    [sym_foreach_reverse] = ACTIONS(6739),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2438] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_catch] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_finally] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
  },
  [2439] = {
    [sym_assert_expression] = STATE(7628),
    [sym__foreach] = STATE(8005),
    [sym_foreach_statement] = STATE(5595),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6396),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6713),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6741),
    [sym_foreach_reverse] = ACTIONS(6741),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2440] = {
    [sym_assert_expression] = STATE(8001),
    [sym__foreach] = STATE(8050),
    [sym_foreach_statement] = STATE(2194),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6729),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6743),
    [sym_foreach_reverse] = ACTIONS(6743),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2441] = {
    [sym_assert_expression] = STATE(7252),
    [sym__foreach] = STATE(8040),
    [sym_foreach_statement] = STATE(1613),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6484),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6725),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6745),
    [sym_foreach_reverse] = ACTIONS(6745),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2442] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3100),
    [anon_sym_AT] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_abstract] = ACTIONS(3098),
    [sym_alias] = ACTIONS(3098),
    [sym_align] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_catch] = ACTIONS(3098),
    [sym_class] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_debug] = ACTIONS(3098),
    [sym_deprecated] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_enum] = ACTIONS(3098),
    [sym_export] = ACTIONS(3098),
    [sym_extern] = ACTIONS(3098),
    [sym_final] = ACTIONS(3098),
    [sym_finally] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_interface] = ACTIONS(3098),
    [sym_invariant] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_nothrow] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_override] = ACTIONS(3098),
    [sym_package] = ACTIONS(3098),
    [sym_pragma] = ACTIONS(3098),
    [sym_private] = ACTIONS(3098),
    [sym_protected] = ACTIONS(3098),
    [sym_public] = ACTIONS(3098),
    [sym_pure] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_return] = ACTIONS(3098),
    [sym_scope] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_static] = ACTIONS(3098),
    [sym_struct] = ACTIONS(3098),
    [sym_synchronized] = ACTIONS(3098),
    [sym_template] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_union] = ACTIONS(3098),
    [sym_unittest] = ACTIONS(3098),
    [sym_version] = ACTIONS(3098),
    [sym_while] = ACTIONS(3098),
    [sym_gshared] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
  },
  [2443] = {
    [sym_assert_expression] = STATE(7407),
    [sym__foreach] = STATE(8046),
    [sym_foreach_statement] = STATE(1385),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6317),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6737),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6747),
    [sym_foreach_reverse] = ACTIONS(6747),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2444] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3104),
    [anon_sym_AT] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_abstract] = ACTIONS(3102),
    [sym_alias] = ACTIONS(3102),
    [sym_align] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_catch] = ACTIONS(3102),
    [sym_class] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_debug] = ACTIONS(3102),
    [sym_deprecated] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_enum] = ACTIONS(3102),
    [sym_export] = ACTIONS(3102),
    [sym_extern] = ACTIONS(3102),
    [sym_final] = ACTIONS(3102),
    [sym_finally] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_interface] = ACTIONS(3102),
    [sym_invariant] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_nothrow] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_override] = ACTIONS(3102),
    [sym_package] = ACTIONS(3102),
    [sym_pragma] = ACTIONS(3102),
    [sym_private] = ACTIONS(3102),
    [sym_protected] = ACTIONS(3102),
    [sym_public] = ACTIONS(3102),
    [sym_pure] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_return] = ACTIONS(3102),
    [sym_scope] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_static] = ACTIONS(3102),
    [sym_struct] = ACTIONS(3102),
    [sym_synchronized] = ACTIONS(3102),
    [sym_template] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_union] = ACTIONS(3102),
    [sym_unittest] = ACTIONS(3102),
    [sym_version] = ACTIONS(3102),
    [sym_while] = ACTIONS(3102),
    [sym_gshared] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
  },
  [2445] = {
    [sym_assert_expression] = STATE(7768),
    [sym__foreach] = STATE(8048),
    [sym_foreach_statement] = STATE(5595),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6448),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6749),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6751),
    [sym_foreach_reverse] = ACTIONS(6751),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2446] = {
    [sym_assert_expression] = STATE(7768),
    [sym__foreach] = STATE(8042),
    [sym_foreach_statement] = STATE(5595),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6448),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6749),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6753),
    [sym_foreach_reverse] = ACTIONS(6753),
    [sym_if] = ACTIONS(6719),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2447] = {
    [ts_builtin_sym_end] = ACTIONS(4299),
    [sym_identifier] = ACTIONS(4297),
    [sym_end_file] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6721),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(5084),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_do] = ACTIONS(6723),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(6723),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_out] = ACTIONS(6723),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
  },
  [2448] = {
    [sym_assert_expression] = STATE(8001),
    [sym__foreach] = STATE(8026),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6729),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6755),
    [sym_foreach_reverse] = ACTIONS(6755),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2449] = {
    [sym_identifier] = ACTIONS(4944),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4946),
    [anon_sym_LBRACE] = ACTIONS(4946),
    [anon_sym_DOT] = ACTIONS(4946),
    [anon_sym_SEMI] = ACTIONS(4946),
    [anon_sym_TILDE] = ACTIONS(4946),
    [anon_sym_AT] = ACTIONS(4946),
    [sym_bool] = ACTIONS(4944),
    [sym_byte] = ACTIONS(4944),
    [sym_ubyte] = ACTIONS(4944),
    [sym_char] = ACTIONS(4944),
    [sym_short] = ACTIONS(4944),
    [sym_ushort] = ACTIONS(4944),
    [sym_int] = ACTIONS(4944),
    [sym_uint] = ACTIONS(4944),
    [sym_long] = ACTIONS(4944),
    [sym_ulong] = ACTIONS(4944),
    [sym_cent] = ACTIONS(4944),
    [sym_ucent] = ACTIONS(4944),
    [sym_wchar] = ACTIONS(4944),
    [sym_dchar] = ACTIONS(4944),
    [sym_float] = ACTIONS(4944),
    [sym_double] = ACTIONS(4944),
    [sym_real] = ACTIONS(4944),
    [sym_ifloat] = ACTIONS(4944),
    [sym_idouble] = ACTIONS(4944),
    [sym_ireal] = ACTIONS(4944),
    [sym_cfloat] = ACTIONS(4944),
    [sym_cdouble] = ACTIONS(4944),
    [sym_creal] = ACTIONS(4944),
    [sym_size_t] = ACTIONS(4944),
    [sym_ptrdiff_t] = ACTIONS(4944),
    [sym_string] = ACTIONS(4944),
    [sym_cstring] = ACTIONS(4944),
    [sym_dstring] = ACTIONS(4944),
    [sym_wstring] = ACTIONS(4944),
    [sym_noreturn] = ACTIONS(4944),
    [sym_this] = ACTIONS(4944),
    [sym_abstract] = ACTIONS(4944),
    [sym_alias] = ACTIONS(4944),
    [sym_align] = ACTIONS(4944),
    [sym_auto] = ACTIONS(4944),
    [sym_class] = ACTIONS(4944),
    [sym_const] = ACTIONS(4944),
    [sym_debug] = ACTIONS(4944),
    [sym_deprecated] = ACTIONS(4944),
    [sym_do] = ACTIONS(4944),
    [sym_else] = ACTIONS(4944),
    [sym_enum] = ACTIONS(4944),
    [sym_export] = ACTIONS(4944),
    [sym_extern] = ACTIONS(4944),
    [sym_final] = ACTIONS(4944),
    [sym_immutable] = ACTIONS(4944),
    [sym_import] = ACTIONS(4944),
    [sym_in] = ACTIONS(4944),
    [sym_inout] = ACTIONS(4944),
    [sym_interface] = ACTIONS(4944),
    [sym_invariant] = ACTIONS(4944),
    [sym_mixin] = ACTIONS(4944),
    [sym_nothrow] = ACTIONS(4944),
    [sym_out] = ACTIONS(4944),
    [sym_override] = ACTIONS(4944),
    [sym_package] = ACTIONS(4944),
    [sym_pragma] = ACTIONS(4944),
    [sym_private] = ACTIONS(4944),
    [sym_protected] = ACTIONS(4944),
    [sym_public] = ACTIONS(4944),
    [sym_pure] = ACTIONS(4944),
    [sym_ref] = ACTIONS(4944),
    [sym_return] = ACTIONS(4944),
    [sym_scope] = ACTIONS(4944),
    [sym_shared] = ACTIONS(4944),
    [sym_static] = ACTIONS(4944),
    [sym_struct] = ACTIONS(4944),
    [sym_synchronized] = ACTIONS(4944),
    [sym_template] = ACTIONS(4944),
    [sym_typeof] = ACTIONS(4944),
    [sym_union] = ACTIONS(4944),
    [sym_unittest] = ACTIONS(4944),
    [sym_version] = ACTIONS(4944),
    [sym_while] = ACTIONS(4944),
    [sym_gshared] = ACTIONS(4944),
    [sym_traits] = ACTIONS(4944),
    [sym_vector] = ACTIONS(4944),
    [sym_void] = ACTIONS(4944),
    [sym_directive] = ACTIONS(3),
  },
  [2450] = {
    [sym_assert_expression] = STATE(7768),
    [sym__foreach] = STATE(8020),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6448),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6749),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6759),
    [sym_foreach_reverse] = ACTIONS(6759),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2451] = {
    [sym_identifier] = ACTIONS(4402),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4404),
    [anon_sym_LBRACE] = ACTIONS(4404),
    [anon_sym_DOT] = ACTIONS(4404),
    [anon_sym_SEMI] = ACTIONS(4404),
    [anon_sym_TILDE] = ACTIONS(4404),
    [anon_sym_AT] = ACTIONS(4404),
    [sym_bool] = ACTIONS(4402),
    [sym_byte] = ACTIONS(4402),
    [sym_ubyte] = ACTIONS(4402),
    [sym_char] = ACTIONS(4402),
    [sym_short] = ACTIONS(4402),
    [sym_ushort] = ACTIONS(4402),
    [sym_int] = ACTIONS(4402),
    [sym_uint] = ACTIONS(4402),
    [sym_long] = ACTIONS(4402),
    [sym_ulong] = ACTIONS(4402),
    [sym_cent] = ACTIONS(4402),
    [sym_ucent] = ACTIONS(4402),
    [sym_wchar] = ACTIONS(4402),
    [sym_dchar] = ACTIONS(4402),
    [sym_float] = ACTIONS(4402),
    [sym_double] = ACTIONS(4402),
    [sym_real] = ACTIONS(4402),
    [sym_ifloat] = ACTIONS(4402),
    [sym_idouble] = ACTIONS(4402),
    [sym_ireal] = ACTIONS(4402),
    [sym_cfloat] = ACTIONS(4402),
    [sym_cdouble] = ACTIONS(4402),
    [sym_creal] = ACTIONS(4402),
    [sym_size_t] = ACTIONS(4402),
    [sym_ptrdiff_t] = ACTIONS(4402),
    [sym_string] = ACTIONS(4402),
    [sym_cstring] = ACTIONS(4402),
    [sym_dstring] = ACTIONS(4402),
    [sym_wstring] = ACTIONS(4402),
    [sym_noreturn] = ACTIONS(4402),
    [sym_this] = ACTIONS(4402),
    [sym_abstract] = ACTIONS(4402),
    [sym_alias] = ACTIONS(4402),
    [sym_align] = ACTIONS(4402),
    [sym_auto] = ACTIONS(4402),
    [sym_class] = ACTIONS(4402),
    [sym_const] = ACTIONS(4402),
    [sym_debug] = ACTIONS(4402),
    [sym_deprecated] = ACTIONS(4402),
    [sym_do] = ACTIONS(4402),
    [sym_else] = ACTIONS(4402),
    [sym_enum] = ACTIONS(4402),
    [sym_export] = ACTIONS(4402),
    [sym_extern] = ACTIONS(4402),
    [sym_final] = ACTIONS(4402),
    [sym_immutable] = ACTIONS(4402),
    [sym_import] = ACTIONS(4402),
    [sym_in] = ACTIONS(4402),
    [sym_inout] = ACTIONS(4402),
    [sym_interface] = ACTIONS(4402),
    [sym_invariant] = ACTIONS(4402),
    [sym_mixin] = ACTIONS(4402),
    [sym_nothrow] = ACTIONS(4402),
    [sym_out] = ACTIONS(4402),
    [sym_override] = ACTIONS(4402),
    [sym_package] = ACTIONS(4402),
    [sym_pragma] = ACTIONS(4402),
    [sym_private] = ACTIONS(4402),
    [sym_protected] = ACTIONS(4402),
    [sym_public] = ACTIONS(4402),
    [sym_pure] = ACTIONS(4402),
    [sym_ref] = ACTIONS(4402),
    [sym_return] = ACTIONS(4402),
    [sym_scope] = ACTIONS(4402),
    [sym_shared] = ACTIONS(4402),
    [sym_static] = ACTIONS(4402),
    [sym_struct] = ACTIONS(4402),
    [sym_synchronized] = ACTIONS(4402),
    [sym_template] = ACTIONS(4402),
    [sym_typeof] = ACTIONS(4402),
    [sym_union] = ACTIONS(4402),
    [sym_unittest] = ACTIONS(4402),
    [sym_version] = ACTIONS(4402),
    [sym_while] = ACTIONS(4402),
    [sym_gshared] = ACTIONS(4402),
    [sym_traits] = ACTIONS(4402),
    [sym_vector] = ACTIONS(4402),
    [sym_void] = ACTIONS(4402),
    [sym_directive] = ACTIONS(3),
  },
  [2452] = {
    [sym_assert_expression] = STATE(7252),
    [sym__foreach] = STATE(8000),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6484),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6725),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6761),
    [sym_foreach_reverse] = ACTIONS(6761),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2453] = {
    [ts_builtin_sym_end] = ACTIONS(4954),
    [sym_identifier] = ACTIONS(4952),
    [sym_end_file] = ACTIONS(4952),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(4954),
    [anon_sym_DOT] = ACTIONS(4954),
    [anon_sym_SEMI] = ACTIONS(4954),
    [anon_sym_TILDE] = ACTIONS(4954),
    [anon_sym_AT] = ACTIONS(4954),
    [sym_bool] = ACTIONS(4952),
    [sym_byte] = ACTIONS(4952),
    [sym_ubyte] = ACTIONS(4952),
    [sym_char] = ACTIONS(4952),
    [sym_short] = ACTIONS(4952),
    [sym_ushort] = ACTIONS(4952),
    [sym_int] = ACTIONS(4952),
    [sym_uint] = ACTIONS(4952),
    [sym_long] = ACTIONS(4952),
    [sym_ulong] = ACTIONS(4952),
    [sym_cent] = ACTIONS(4952),
    [sym_ucent] = ACTIONS(4952),
    [sym_wchar] = ACTIONS(4952),
    [sym_dchar] = ACTIONS(4952),
    [sym_float] = ACTIONS(4952),
    [sym_double] = ACTIONS(4952),
    [sym_real] = ACTIONS(4952),
    [sym_ifloat] = ACTIONS(4952),
    [sym_idouble] = ACTIONS(4952),
    [sym_ireal] = ACTIONS(4952),
    [sym_cfloat] = ACTIONS(4952),
    [sym_cdouble] = ACTIONS(4952),
    [sym_creal] = ACTIONS(4952),
    [sym_size_t] = ACTIONS(4952),
    [sym_ptrdiff_t] = ACTIONS(4952),
    [sym_string] = ACTIONS(4952),
    [sym_cstring] = ACTIONS(4952),
    [sym_dstring] = ACTIONS(4952),
    [sym_wstring] = ACTIONS(4952),
    [sym_noreturn] = ACTIONS(4952),
    [sym_this] = ACTIONS(4952),
    [sym_abstract] = ACTIONS(4952),
    [sym_alias] = ACTIONS(4952),
    [sym_align] = ACTIONS(4952),
    [sym_auto] = ACTIONS(4952),
    [sym_class] = ACTIONS(4952),
    [sym_const] = ACTIONS(4952),
    [sym_debug] = ACTIONS(4952),
    [sym_deprecated] = ACTIONS(4952),
    [sym_do] = ACTIONS(4952),
    [sym_else] = ACTIONS(4952),
    [sym_enum] = ACTIONS(4952),
    [sym_export] = ACTIONS(4952),
    [sym_extern] = ACTIONS(4952),
    [sym_final] = ACTIONS(4952),
    [sym_immutable] = ACTIONS(4952),
    [sym_import] = ACTIONS(4952),
    [sym_in] = ACTIONS(4952),
    [sym_inout] = ACTIONS(4952),
    [sym_interface] = ACTIONS(4952),
    [sym_invariant] = ACTIONS(4952),
    [sym_mixin] = ACTIONS(4952),
    [sym_nothrow] = ACTIONS(4952),
    [sym_out] = ACTIONS(4952),
    [sym_override] = ACTIONS(4952),
    [sym_package] = ACTIONS(4952),
    [sym_pragma] = ACTIONS(4952),
    [sym_private] = ACTIONS(4952),
    [sym_protected] = ACTIONS(4952),
    [sym_public] = ACTIONS(4952),
    [sym_pure] = ACTIONS(4952),
    [sym_ref] = ACTIONS(4952),
    [sym_return] = ACTIONS(4952),
    [sym_scope] = ACTIONS(4952),
    [sym_shared] = ACTIONS(4952),
    [sym_static] = ACTIONS(4952),
    [sym_struct] = ACTIONS(4952),
    [sym_synchronized] = ACTIONS(4952),
    [sym_template] = ACTIONS(4952),
    [sym_typeof] = ACTIONS(4952),
    [sym_union] = ACTIONS(4952),
    [sym_unittest] = ACTIONS(4952),
    [sym_version] = ACTIONS(4952),
    [sym_gshared] = ACTIONS(4952),
    [sym_traits] = ACTIONS(4952),
    [sym_vector] = ACTIONS(4952),
    [sym_void] = ACTIONS(4952),
    [sym_directive] = ACTIONS(3),
  },
  [2454] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4618),
    [anon_sym_LBRACE] = ACTIONS(6721),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4926),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_do] = ACTIONS(6723),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(6723),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_out] = ACTIONS(6723),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
  },
  [2455] = {
    [sym_identifier] = ACTIONS(3098),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(3100),
    [anon_sym_LBRACE] = ACTIONS(3100),
    [anon_sym_DOT] = ACTIONS(3100),
    [anon_sym_SEMI] = ACTIONS(3100),
    [anon_sym_TILDE] = ACTIONS(3100),
    [anon_sym_AT] = ACTIONS(3100),
    [sym_bool] = ACTIONS(3098),
    [sym_byte] = ACTIONS(3098),
    [sym_ubyte] = ACTIONS(3098),
    [sym_char] = ACTIONS(3098),
    [sym_short] = ACTIONS(3098),
    [sym_ushort] = ACTIONS(3098),
    [sym_int] = ACTIONS(3098),
    [sym_uint] = ACTIONS(3098),
    [sym_long] = ACTIONS(3098),
    [sym_ulong] = ACTIONS(3098),
    [sym_cent] = ACTIONS(3098),
    [sym_ucent] = ACTIONS(3098),
    [sym_wchar] = ACTIONS(3098),
    [sym_dchar] = ACTIONS(3098),
    [sym_float] = ACTIONS(3098),
    [sym_double] = ACTIONS(3098),
    [sym_real] = ACTIONS(3098),
    [sym_ifloat] = ACTIONS(3098),
    [sym_idouble] = ACTIONS(3098),
    [sym_ireal] = ACTIONS(3098),
    [sym_cfloat] = ACTIONS(3098),
    [sym_cdouble] = ACTIONS(3098),
    [sym_creal] = ACTIONS(3098),
    [sym_size_t] = ACTIONS(3098),
    [sym_ptrdiff_t] = ACTIONS(3098),
    [sym_string] = ACTIONS(3098),
    [sym_cstring] = ACTIONS(3098),
    [sym_dstring] = ACTIONS(3098),
    [sym_wstring] = ACTIONS(3098),
    [sym_noreturn] = ACTIONS(3098),
    [sym_this] = ACTIONS(3098),
    [sym_abstract] = ACTIONS(3098),
    [sym_alias] = ACTIONS(3098),
    [sym_align] = ACTIONS(3098),
    [sym_auto] = ACTIONS(3098),
    [sym_class] = ACTIONS(3098),
    [sym_const] = ACTIONS(3098),
    [sym_debug] = ACTIONS(3098),
    [sym_deprecated] = ACTIONS(3098),
    [sym_do] = ACTIONS(3098),
    [sym_else] = ACTIONS(3098),
    [sym_enum] = ACTIONS(3098),
    [sym_export] = ACTIONS(3098),
    [sym_extern] = ACTIONS(3098),
    [sym_final] = ACTIONS(3098),
    [sym_immutable] = ACTIONS(3098),
    [sym_import] = ACTIONS(3098),
    [sym_in] = ACTIONS(3098),
    [sym_inout] = ACTIONS(3098),
    [sym_interface] = ACTIONS(3098),
    [sym_invariant] = ACTIONS(3098),
    [sym_mixin] = ACTIONS(3098),
    [sym_nothrow] = ACTIONS(3098),
    [sym_out] = ACTIONS(3098),
    [sym_override] = ACTIONS(3098),
    [sym_package] = ACTIONS(3098),
    [sym_pragma] = ACTIONS(3098),
    [sym_private] = ACTIONS(3098),
    [sym_protected] = ACTIONS(3098),
    [sym_public] = ACTIONS(3098),
    [sym_pure] = ACTIONS(3098),
    [sym_ref] = ACTIONS(3098),
    [sym_return] = ACTIONS(3098),
    [sym_scope] = ACTIONS(3098),
    [sym_shared] = ACTIONS(3098),
    [sym_static] = ACTIONS(3098),
    [sym_struct] = ACTIONS(3098),
    [sym_synchronized] = ACTIONS(3098),
    [sym_template] = ACTIONS(3098),
    [sym_typeof] = ACTIONS(3098),
    [sym_union] = ACTIONS(3098),
    [sym_unittest] = ACTIONS(3098),
    [sym_version] = ACTIONS(3098),
    [sym_while] = ACTIONS(3098),
    [sym_gshared] = ACTIONS(3098),
    [sym_traits] = ACTIONS(3098),
    [sym_vector] = ACTIONS(3098),
    [sym_void] = ACTIONS(3098),
    [sym_directive] = ACTIONS(3),
  },
  [2456] = {
    [sym_assert_expression] = STATE(7768),
    [sym__foreach] = STATE(8016),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6550),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6763),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6765),
    [sym_foreach_reverse] = ACTIONS(6765),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2457] = {
    [ts_builtin_sym_end] = ACTIONS(4618),
    [sym_identifier] = ACTIONS(4616),
    [sym_end_file] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6721),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4926),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_do] = ACTIONS(6723),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_in] = ACTIONS(6723),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_out] = ACTIONS(6723),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
  },
  [2458] = {
    [ts_builtin_sym_end] = ACTIONS(4946),
    [sym_identifier] = ACTIONS(4944),
    [sym_end_file] = ACTIONS(4944),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(4946),
    [anon_sym_DOT] = ACTIONS(4946),
    [anon_sym_SEMI] = ACTIONS(4946),
    [anon_sym_TILDE] = ACTIONS(4946),
    [anon_sym_AT] = ACTIONS(4946),
    [sym_bool] = ACTIONS(4944),
    [sym_byte] = ACTIONS(4944),
    [sym_ubyte] = ACTIONS(4944),
    [sym_char] = ACTIONS(4944),
    [sym_short] = ACTIONS(4944),
    [sym_ushort] = ACTIONS(4944),
    [sym_int] = ACTIONS(4944),
    [sym_uint] = ACTIONS(4944),
    [sym_long] = ACTIONS(4944),
    [sym_ulong] = ACTIONS(4944),
    [sym_cent] = ACTIONS(4944),
    [sym_ucent] = ACTIONS(4944),
    [sym_wchar] = ACTIONS(4944),
    [sym_dchar] = ACTIONS(4944),
    [sym_float] = ACTIONS(4944),
    [sym_double] = ACTIONS(4944),
    [sym_real] = ACTIONS(4944),
    [sym_ifloat] = ACTIONS(4944),
    [sym_idouble] = ACTIONS(4944),
    [sym_ireal] = ACTIONS(4944),
    [sym_cfloat] = ACTIONS(4944),
    [sym_cdouble] = ACTIONS(4944),
    [sym_creal] = ACTIONS(4944),
    [sym_size_t] = ACTIONS(4944),
    [sym_ptrdiff_t] = ACTIONS(4944),
    [sym_string] = ACTIONS(4944),
    [sym_cstring] = ACTIONS(4944),
    [sym_dstring] = ACTIONS(4944),
    [sym_wstring] = ACTIONS(4944),
    [sym_noreturn] = ACTIONS(4944),
    [sym_this] = ACTIONS(4944),
    [sym_abstract] = ACTIONS(4944),
    [sym_alias] = ACTIONS(4944),
    [sym_align] = ACTIONS(4944),
    [sym_auto] = ACTIONS(4944),
    [sym_class] = ACTIONS(4944),
    [sym_const] = ACTIONS(4944),
    [sym_debug] = ACTIONS(4944),
    [sym_deprecated] = ACTIONS(4944),
    [sym_do] = ACTIONS(4944),
    [sym_else] = ACTIONS(4944),
    [sym_enum] = ACTIONS(4944),
    [sym_export] = ACTIONS(4944),
    [sym_extern] = ACTIONS(4944),
    [sym_final] = ACTIONS(4944),
    [sym_immutable] = ACTIONS(4944),
    [sym_import] = ACTIONS(4944),
    [sym_in] = ACTIONS(4944),
    [sym_inout] = ACTIONS(4944),
    [sym_interface] = ACTIONS(4944),
    [sym_invariant] = ACTIONS(4944),
    [sym_mixin] = ACTIONS(4944),
    [sym_nothrow] = ACTIONS(4944),
    [sym_out] = ACTIONS(4944),
    [sym_override] = ACTIONS(4944),
    [sym_package] = ACTIONS(4944),
    [sym_pragma] = ACTIONS(4944),
    [sym_private] = ACTIONS(4944),
    [sym_protected] = ACTIONS(4944),
    [sym_public] = ACTIONS(4944),
    [sym_pure] = ACTIONS(4944),
    [sym_ref] = ACTIONS(4944),
    [sym_return] = ACTIONS(4944),
    [sym_scope] = ACTIONS(4944),
    [sym_shared] = ACTIONS(4944),
    [sym_static] = ACTIONS(4944),
    [sym_struct] = ACTIONS(4944),
    [sym_synchronized] = ACTIONS(4944),
    [sym_template] = ACTIONS(4944),
    [sym_typeof] = ACTIONS(4944),
    [sym_union] = ACTIONS(4944),
    [sym_unittest] = ACTIONS(4944),
    [sym_version] = ACTIONS(4944),
    [sym_gshared] = ACTIONS(4944),
    [sym_traits] = ACTIONS(4944),
    [sym_vector] = ACTIONS(4944),
    [sym_void] = ACTIONS(4944),
    [sym_directive] = ACTIONS(3),
  },
  [2459] = {
    [sym_assert_expression] = STATE(7078),
    [sym__foreach] = STATE(7980),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6410),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6767),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6769),
    [sym_foreach_reverse] = ACTIONS(6769),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2460] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4299),
    [anon_sym_LBRACE] = ACTIONS(6721),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(5084),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_do] = ACTIONS(6723),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_in] = ACTIONS(6723),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_out] = ACTIONS(6723),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
  },
  [2461] = {
    [ts_builtin_sym_end] = ACTIONS(4404),
    [sym_identifier] = ACTIONS(4402),
    [sym_end_file] = ACTIONS(4402),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(4404),
    [anon_sym_DOT] = ACTIONS(4404),
    [anon_sym_SEMI] = ACTIONS(4404),
    [anon_sym_TILDE] = ACTIONS(4404),
    [anon_sym_AT] = ACTIONS(4404),
    [sym_bool] = ACTIONS(4402),
    [sym_byte] = ACTIONS(4402),
    [sym_ubyte] = ACTIONS(4402),
    [sym_char] = ACTIONS(4402),
    [sym_short] = ACTIONS(4402),
    [sym_ushort] = ACTIONS(4402),
    [sym_int] = ACTIONS(4402),
    [sym_uint] = ACTIONS(4402),
    [sym_long] = ACTIONS(4402),
    [sym_ulong] = ACTIONS(4402),
    [sym_cent] = ACTIONS(4402),
    [sym_ucent] = ACTIONS(4402),
    [sym_wchar] = ACTIONS(4402),
    [sym_dchar] = ACTIONS(4402),
    [sym_float] = ACTIONS(4402),
    [sym_double] = ACTIONS(4402),
    [sym_real] = ACTIONS(4402),
    [sym_ifloat] = ACTIONS(4402),
    [sym_idouble] = ACTIONS(4402),
    [sym_ireal] = ACTIONS(4402),
    [sym_cfloat] = ACTIONS(4402),
    [sym_cdouble] = ACTIONS(4402),
    [sym_creal] = ACTIONS(4402),
    [sym_size_t] = ACTIONS(4402),
    [sym_ptrdiff_t] = ACTIONS(4402),
    [sym_string] = ACTIONS(4402),
    [sym_cstring] = ACTIONS(4402),
    [sym_dstring] = ACTIONS(4402),
    [sym_wstring] = ACTIONS(4402),
    [sym_noreturn] = ACTIONS(4402),
    [sym_this] = ACTIONS(4402),
    [sym_abstract] = ACTIONS(4402),
    [sym_alias] = ACTIONS(4402),
    [sym_align] = ACTIONS(4402),
    [sym_auto] = ACTIONS(4402),
    [sym_class] = ACTIONS(4402),
    [sym_const] = ACTIONS(4402),
    [sym_debug] = ACTIONS(4402),
    [sym_deprecated] = ACTIONS(4402),
    [sym_do] = ACTIONS(4402),
    [sym_else] = ACTIONS(4402),
    [sym_enum] = ACTIONS(4402),
    [sym_export] = ACTIONS(4402),
    [sym_extern] = ACTIONS(4402),
    [sym_final] = ACTIONS(4402),
    [sym_immutable] = ACTIONS(4402),
    [sym_import] = ACTIONS(4402),
    [sym_in] = ACTIONS(4402),
    [sym_inout] = ACTIONS(4402),
    [sym_interface] = ACTIONS(4402),
    [sym_invariant] = ACTIONS(4402),
    [sym_mixin] = ACTIONS(4402),
    [sym_nothrow] = ACTIONS(4402),
    [sym_out] = ACTIONS(4402),
    [sym_override] = ACTIONS(4402),
    [sym_package] = ACTIONS(4402),
    [sym_pragma] = ACTIONS(4402),
    [sym_private] = ACTIONS(4402),
    [sym_protected] = ACTIONS(4402),
    [sym_public] = ACTIONS(4402),
    [sym_pure] = ACTIONS(4402),
    [sym_ref] = ACTIONS(4402),
    [sym_return] = ACTIONS(4402),
    [sym_scope] = ACTIONS(4402),
    [sym_shared] = ACTIONS(4402),
    [sym_static] = ACTIONS(4402),
    [sym_struct] = ACTIONS(4402),
    [sym_synchronized] = ACTIONS(4402),
    [sym_template] = ACTIONS(4402),
    [sym_typeof] = ACTIONS(4402),
    [sym_union] = ACTIONS(4402),
    [sym_unittest] = ACTIONS(4402),
    [sym_version] = ACTIONS(4402),
    [sym_gshared] = ACTIONS(4402),
    [sym_traits] = ACTIONS(4402),
    [sym_vector] = ACTIONS(4402),
    [sym_void] = ACTIONS(4402),
    [sym_directive] = ACTIONS(3),
  },
  [2462] = {
    [sym_assert_expression] = STATE(7407),
    [sym__foreach] = STATE(8010),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6317),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6737),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6771),
    [sym_foreach_reverse] = ACTIONS(6771),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2463] = {
    [sym_assert_expression] = STATE(7628),
    [sym__foreach] = STATE(7629),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6366),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6773),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6775),
    [sym_foreach_reverse] = ACTIONS(6775),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2464] = {
    [sym_identifier] = ACTIONS(4952),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4954),
    [anon_sym_LBRACE] = ACTIONS(4954),
    [anon_sym_DOT] = ACTIONS(4954),
    [anon_sym_SEMI] = ACTIONS(4954),
    [anon_sym_TILDE] = ACTIONS(4954),
    [anon_sym_AT] = ACTIONS(4954),
    [sym_bool] = ACTIONS(4952),
    [sym_byte] = ACTIONS(4952),
    [sym_ubyte] = ACTIONS(4952),
    [sym_char] = ACTIONS(4952),
    [sym_short] = ACTIONS(4952),
    [sym_ushort] = ACTIONS(4952),
    [sym_int] = ACTIONS(4952),
    [sym_uint] = ACTIONS(4952),
    [sym_long] = ACTIONS(4952),
    [sym_ulong] = ACTIONS(4952),
    [sym_cent] = ACTIONS(4952),
    [sym_ucent] = ACTIONS(4952),
    [sym_wchar] = ACTIONS(4952),
    [sym_dchar] = ACTIONS(4952),
    [sym_float] = ACTIONS(4952),
    [sym_double] = ACTIONS(4952),
    [sym_real] = ACTIONS(4952),
    [sym_ifloat] = ACTIONS(4952),
    [sym_idouble] = ACTIONS(4952),
    [sym_ireal] = ACTIONS(4952),
    [sym_cfloat] = ACTIONS(4952),
    [sym_cdouble] = ACTIONS(4952),
    [sym_creal] = ACTIONS(4952),
    [sym_size_t] = ACTIONS(4952),
    [sym_ptrdiff_t] = ACTIONS(4952),
    [sym_string] = ACTIONS(4952),
    [sym_cstring] = ACTIONS(4952),
    [sym_dstring] = ACTIONS(4952),
    [sym_wstring] = ACTIONS(4952),
    [sym_noreturn] = ACTIONS(4952),
    [sym_this] = ACTIONS(4952),
    [sym_abstract] = ACTIONS(4952),
    [sym_alias] = ACTIONS(4952),
    [sym_align] = ACTIONS(4952),
    [sym_auto] = ACTIONS(4952),
    [sym_class] = ACTIONS(4952),
    [sym_const] = ACTIONS(4952),
    [sym_debug] = ACTIONS(4952),
    [sym_deprecated] = ACTIONS(4952),
    [sym_do] = ACTIONS(4952),
    [sym_else] = ACTIONS(4952),
    [sym_enum] = ACTIONS(4952),
    [sym_export] = ACTIONS(4952),
    [sym_extern] = ACTIONS(4952),
    [sym_final] = ACTIONS(4952),
    [sym_immutable] = ACTIONS(4952),
    [sym_import] = ACTIONS(4952),
    [sym_in] = ACTIONS(4952),
    [sym_inout] = ACTIONS(4952),
    [sym_interface] = ACTIONS(4952),
    [sym_invariant] = ACTIONS(4952),
    [sym_mixin] = ACTIONS(4952),
    [sym_nothrow] = ACTIONS(4952),
    [sym_out] = ACTIONS(4952),
    [sym_override] = ACTIONS(4952),
    [sym_package] = ACTIONS(4952),
    [sym_pragma] = ACTIONS(4952),
    [sym_private] = ACTIONS(4952),
    [sym_protected] = ACTIONS(4952),
    [sym_public] = ACTIONS(4952),
    [sym_pure] = ACTIONS(4952),
    [sym_ref] = ACTIONS(4952),
    [sym_return] = ACTIONS(4952),
    [sym_scope] = ACTIONS(4952),
    [sym_shared] = ACTIONS(4952),
    [sym_static] = ACTIONS(4952),
    [sym_struct] = ACTIONS(4952),
    [sym_synchronized] = ACTIONS(4952),
    [sym_template] = ACTIONS(4952),
    [sym_typeof] = ACTIONS(4952),
    [sym_union] = ACTIONS(4952),
    [sym_unittest] = ACTIONS(4952),
    [sym_version] = ACTIONS(4952),
    [sym_while] = ACTIONS(4952),
    [sym_gshared] = ACTIONS(4952),
    [sym_traits] = ACTIONS(4952),
    [sym_vector] = ACTIONS(4952),
    [sym_void] = ACTIONS(4952),
    [sym_directive] = ACTIONS(3),
  },
  [2465] = {
    [sym_assert_expression] = STATE(8001),
    [sym__foreach] = STATE(8023),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6520),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6729),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6777),
    [sym_foreach_reverse] = ACTIONS(6777),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2466] = {
    [sym_identifier] = ACTIONS(3102),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(3104),
    [anon_sym_LBRACE] = ACTIONS(3104),
    [anon_sym_DOT] = ACTIONS(3104),
    [anon_sym_SEMI] = ACTIONS(3104),
    [anon_sym_TILDE] = ACTIONS(3104),
    [anon_sym_AT] = ACTIONS(3104),
    [sym_bool] = ACTIONS(3102),
    [sym_byte] = ACTIONS(3102),
    [sym_ubyte] = ACTIONS(3102),
    [sym_char] = ACTIONS(3102),
    [sym_short] = ACTIONS(3102),
    [sym_ushort] = ACTIONS(3102),
    [sym_int] = ACTIONS(3102),
    [sym_uint] = ACTIONS(3102),
    [sym_long] = ACTIONS(3102),
    [sym_ulong] = ACTIONS(3102),
    [sym_cent] = ACTIONS(3102),
    [sym_ucent] = ACTIONS(3102),
    [sym_wchar] = ACTIONS(3102),
    [sym_dchar] = ACTIONS(3102),
    [sym_float] = ACTIONS(3102),
    [sym_double] = ACTIONS(3102),
    [sym_real] = ACTIONS(3102),
    [sym_ifloat] = ACTIONS(3102),
    [sym_idouble] = ACTIONS(3102),
    [sym_ireal] = ACTIONS(3102),
    [sym_cfloat] = ACTIONS(3102),
    [sym_cdouble] = ACTIONS(3102),
    [sym_creal] = ACTIONS(3102),
    [sym_size_t] = ACTIONS(3102),
    [sym_ptrdiff_t] = ACTIONS(3102),
    [sym_string] = ACTIONS(3102),
    [sym_cstring] = ACTIONS(3102),
    [sym_dstring] = ACTIONS(3102),
    [sym_wstring] = ACTIONS(3102),
    [sym_noreturn] = ACTIONS(3102),
    [sym_this] = ACTIONS(3102),
    [sym_abstract] = ACTIONS(3102),
    [sym_alias] = ACTIONS(3102),
    [sym_align] = ACTIONS(3102),
    [sym_auto] = ACTIONS(3102),
    [sym_class] = ACTIONS(3102),
    [sym_const] = ACTIONS(3102),
    [sym_debug] = ACTIONS(3102),
    [sym_deprecated] = ACTIONS(3102),
    [sym_do] = ACTIONS(3102),
    [sym_else] = ACTIONS(3102),
    [sym_enum] = ACTIONS(3102),
    [sym_export] = ACTIONS(3102),
    [sym_extern] = ACTIONS(3102),
    [sym_final] = ACTIONS(3102),
    [sym_immutable] = ACTIONS(3102),
    [sym_import] = ACTIONS(3102),
    [sym_in] = ACTIONS(3102),
    [sym_inout] = ACTIONS(3102),
    [sym_interface] = ACTIONS(3102),
    [sym_invariant] = ACTIONS(3102),
    [sym_mixin] = ACTIONS(3102),
    [sym_nothrow] = ACTIONS(3102),
    [sym_out] = ACTIONS(3102),
    [sym_override] = ACTIONS(3102),
    [sym_package] = ACTIONS(3102),
    [sym_pragma] = ACTIONS(3102),
    [sym_private] = ACTIONS(3102),
    [sym_protected] = ACTIONS(3102),
    [sym_public] = ACTIONS(3102),
    [sym_pure] = ACTIONS(3102),
    [sym_ref] = ACTIONS(3102),
    [sym_return] = ACTIONS(3102),
    [sym_scope] = ACTIONS(3102),
    [sym_shared] = ACTIONS(3102),
    [sym_static] = ACTIONS(3102),
    [sym_struct] = ACTIONS(3102),
    [sym_synchronized] = ACTIONS(3102),
    [sym_template] = ACTIONS(3102),
    [sym_typeof] = ACTIONS(3102),
    [sym_union] = ACTIONS(3102),
    [sym_unittest] = ACTIONS(3102),
    [sym_version] = ACTIONS(3102),
    [sym_while] = ACTIONS(3102),
    [sym_gshared] = ACTIONS(3102),
    [sym_traits] = ACTIONS(3102),
    [sym_vector] = ACTIONS(3102),
    [sym_void] = ACTIONS(3102),
    [sym_directive] = ACTIONS(3),
  },
  [2467] = {
    [sym_assert_expression] = STATE(7628),
    [sym__foreach] = STATE(8033),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6396),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6713),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_assert] = ACTIONS(6715),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_foreach] = ACTIONS(6779),
    [sym_foreach_reverse] = ACTIONS(6779),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2468] = {
    [sym_identifier] = ACTIONS(3070),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(3072),
    [anon_sym_LBRACE] = ACTIONS(3072),
    [anon_sym_DOT] = ACTIONS(3072),
    [anon_sym_SEMI] = ACTIONS(3072),
    [anon_sym_TILDE] = ACTIONS(3072),
    [anon_sym_AT] = ACTIONS(3072),
    [sym_bool] = ACTIONS(3070),
    [sym_byte] = ACTIONS(3070),
    [sym_ubyte] = ACTIONS(3070),
    [sym_char] = ACTIONS(3070),
    [sym_short] = ACTIONS(3070),
    [sym_ushort] = ACTIONS(3070),
    [sym_int] = ACTIONS(3070),
    [sym_uint] = ACTIONS(3070),
    [sym_long] = ACTIONS(3070),
    [sym_ulong] = ACTIONS(3070),
    [sym_cent] = ACTIONS(3070),
    [sym_ucent] = ACTIONS(3070),
    [sym_wchar] = ACTIONS(3070),
    [sym_dchar] = ACTIONS(3070),
    [sym_float] = ACTIONS(3070),
    [sym_double] = ACTIONS(3070),
    [sym_real] = ACTIONS(3070),
    [sym_ifloat] = ACTIONS(3070),
    [sym_idouble] = ACTIONS(3070),
    [sym_ireal] = ACTIONS(3070),
    [sym_cfloat] = ACTIONS(3070),
    [sym_cdouble] = ACTIONS(3070),
    [sym_creal] = ACTIONS(3070),
    [sym_size_t] = ACTIONS(3070),
    [sym_ptrdiff_t] = ACTIONS(3070),
    [sym_string] = ACTIONS(3070),
    [sym_cstring] = ACTIONS(3070),
    [sym_dstring] = ACTIONS(3070),
    [sym_wstring] = ACTIONS(3070),
    [sym_noreturn] = ACTIONS(3070),
    [sym_this] = ACTIONS(3070),
    [sym_abstract] = ACTIONS(3070),
    [sym_alias] = ACTIONS(3070),
    [sym_align] = ACTIONS(3070),
    [sym_auto] = ACTIONS(3070),
    [sym_class] = ACTIONS(3070),
    [sym_const] = ACTIONS(3070),
    [sym_debug] = ACTIONS(3070),
    [sym_deprecated] = ACTIONS(3070),
    [sym_do] = ACTIONS(3070),
    [sym_else] = ACTIONS(3070),
    [sym_enum] = ACTIONS(3070),
    [sym_export] = ACTIONS(3070),
    [sym_extern] = ACTIONS(3070),
    [sym_final] = ACTIONS(3070),
    [sym_immutable] = ACTIONS(3070),
    [sym_import] = ACTIONS(3070),
    [sym_in] = ACTIONS(3070),
    [sym_inout] = ACTIONS(3070),
    [sym_interface] = ACTIONS(3070),
    [sym_invariant] = ACTIONS(3070),
    [sym_mixin] = ACTIONS(3070),
    [sym_nothrow] = ACTIONS(3070),
    [sym_out] = ACTIONS(3070),
    [sym_override] = ACTIONS(3070),
    [sym_package] = ACTIONS(3070),
    [sym_pragma] = ACTIONS(3070),
    [sym_private] = ACTIONS(3070),
    [sym_protected] = ACTIONS(3070),
    [sym_public] = ACTIONS(3070),
    [sym_pure] = ACTIONS(3070),
    [sym_ref] = ACTIONS(3070),
    [sym_return] = ACTIONS(3070),
    [sym_scope] = ACTIONS(3070),
    [sym_shared] = ACTIONS(3070),
    [sym_static] = ACTIONS(3070),
    [sym_struct] = ACTIONS(3070),
    [sym_synchronized] = ACTIONS(3070),
    [sym_template] = ACTIONS(3070),
    [sym_typeof] = ACTIONS(3070),
    [sym_union] = ACTIONS(3070),
    [sym_unittest] = ACTIONS(3070),
    [sym_version] = ACTIONS(3070),
    [sym_while] = ACTIONS(3070),
    [sym_gshared] = ACTIONS(3070),
    [sym_traits] = ACTIONS(3070),
    [sym_vector] = ACTIONS(3070),
    [sym_void] = ACTIONS(3070),
    [sym_directive] = ACTIONS(3),
  },
  [2469] = {
    [ts_builtin_sym_end] = ACTIONS(4898),
    [sym_identifier] = ACTIONS(4896),
    [sym_end_file] = ACTIONS(4896),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4898),
    [anon_sym_SEMI] = ACTIONS(4898),
    [anon_sym_TILDE] = ACTIONS(4898),
    [anon_sym_AT] = ACTIONS(4898),
    [sym_bool] = ACTIONS(4896),
    [sym_byte] = ACTIONS(4896),
    [sym_ubyte] = ACTIONS(4896),
    [sym_char] = ACTIONS(4896),
    [sym_short] = ACTIONS(4896),
    [sym_ushort] = ACTIONS(4896),
    [sym_int] = ACTIONS(4896),
    [sym_uint] = ACTIONS(4896),
    [sym_long] = ACTIONS(4896),
    [sym_ulong] = ACTIONS(4896),
    [sym_cent] = ACTIONS(4896),
    [sym_ucent] = ACTIONS(4896),
    [sym_wchar] = ACTIONS(4896),
    [sym_dchar] = ACTIONS(4896),
    [sym_float] = ACTIONS(4896),
    [sym_double] = ACTIONS(4896),
    [sym_real] = ACTIONS(4896),
    [sym_ifloat] = ACTIONS(4896),
    [sym_idouble] = ACTIONS(4896),
    [sym_ireal] = ACTIONS(4896),
    [sym_cfloat] = ACTIONS(4896),
    [sym_cdouble] = ACTIONS(4896),
    [sym_creal] = ACTIONS(4896),
    [sym_size_t] = ACTIONS(4896),
    [sym_ptrdiff_t] = ACTIONS(4896),
    [sym_string] = ACTIONS(4896),
    [sym_cstring] = ACTIONS(4896),
    [sym_dstring] = ACTIONS(4896),
    [sym_wstring] = ACTIONS(4896),
    [sym_noreturn] = ACTIONS(4896),
    [sym_this] = ACTIONS(4896),
    [sym_abstract] = ACTIONS(4896),
    [sym_alias] = ACTIONS(4896),
    [sym_align] = ACTIONS(4896),
    [sym_auto] = ACTIONS(4896),
    [sym_class] = ACTIONS(4896),
    [sym_const] = ACTIONS(4896),
    [sym_debug] = ACTIONS(4896),
    [sym_deprecated] = ACTIONS(4896),
    [sym_else] = ACTIONS(4896),
    [sym_enum] = ACTIONS(4896),
    [sym_export] = ACTIONS(4896),
    [sym_extern] = ACTIONS(4896),
    [sym_final] = ACTIONS(4896),
    [sym_immutable] = ACTIONS(4896),
    [sym_import] = ACTIONS(4896),
    [sym_inout] = ACTIONS(4896),
    [sym_interface] = ACTIONS(4896),
    [sym_invariant] = ACTIONS(4896),
    [sym_mixin] = ACTIONS(4896),
    [sym_nothrow] = ACTIONS(4896),
    [sym_override] = ACTIONS(4896),
    [sym_package] = ACTIONS(4896),
    [sym_pragma] = ACTIONS(4896),
    [sym_private] = ACTIONS(4896),
    [sym_protected] = ACTIONS(4896),
    [sym_public] = ACTIONS(4896),
    [sym_pure] = ACTIONS(4896),
    [sym_ref] = ACTIONS(4896),
    [sym_return] = ACTIONS(4896),
    [sym_scope] = ACTIONS(4896),
    [sym_shared] = ACTIONS(4896),
    [sym_static] = ACTIONS(4896),
    [sym_struct] = ACTIONS(4896),
    [sym_synchronized] = ACTIONS(4896),
    [sym_template] = ACTIONS(4896),
    [sym_typeof] = ACTIONS(4896),
    [sym_union] = ACTIONS(4896),
    [sym_unittest] = ACTIONS(4896),
    [sym_version] = ACTIONS(4896),
    [sym_while] = ACTIONS(4896),
    [sym_gshared] = ACTIONS(4896),
    [sym_traits] = ACTIONS(4896),
    [sym_vector] = ACTIONS(4896),
    [sym_void] = ACTIONS(4896),
    [sym_directive] = ACTIONS(3),
  },
  [2470] = {
    [sym_identifier] = ACTIONS(4554),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4556),
    [anon_sym_SEMI] = ACTIONS(4556),
    [anon_sym_TILDE] = ACTIONS(4556),
    [anon_sym_AT] = ACTIONS(4556),
    [sym_bool] = ACTIONS(4554),
    [sym_byte] = ACTIONS(4554),
    [sym_ubyte] = ACTIONS(4554),
    [sym_char] = ACTIONS(4554),
    [sym_short] = ACTIONS(4554),
    [sym_ushort] = ACTIONS(4554),
    [sym_int] = ACTIONS(4554),
    [sym_uint] = ACTIONS(4554),
    [sym_long] = ACTIONS(4554),
    [sym_ulong] = ACTIONS(4554),
    [sym_cent] = ACTIONS(4554),
    [sym_ucent] = ACTIONS(4554),
    [sym_wchar] = ACTIONS(4554),
    [sym_dchar] = ACTIONS(4554),
    [sym_float] = ACTIONS(4554),
    [sym_double] = ACTIONS(4554),
    [sym_real] = ACTIONS(4554),
    [sym_ifloat] = ACTIONS(4554),
    [sym_idouble] = ACTIONS(4554),
    [sym_ireal] = ACTIONS(4554),
    [sym_cfloat] = ACTIONS(4554),
    [sym_cdouble] = ACTIONS(4554),
    [sym_creal] = ACTIONS(4554),
    [sym_size_t] = ACTIONS(4554),
    [sym_ptrdiff_t] = ACTIONS(4554),
    [sym_string] = ACTIONS(4554),
    [sym_cstring] = ACTIONS(4554),
    [sym_dstring] = ACTIONS(4554),
    [sym_wstring] = ACTIONS(4554),
    [sym_noreturn] = ACTIONS(4554),
    [sym_this] = ACTIONS(4554),
    [sym_abstract] = ACTIONS(4554),
    [sym_alias] = ACTIONS(4554),
    [sym_align] = ACTIONS(4554),
    [sym_auto] = ACTIONS(4554),
    [sym_catch] = ACTIONS(4554),
    [sym_class] = ACTIONS(4554),
    [sym_const] = ACTIONS(4554),
    [sym_debug] = ACTIONS(4554),
    [sym_deprecated] = ACTIONS(4554),
    [sym_else] = ACTIONS(4554),
    [sym_enum] = ACTIONS(4554),
    [sym_export] = ACTIONS(4554),
    [sym_extern] = ACTIONS(4554),
    [sym_final] = ACTIONS(4554),
    [sym_finally] = ACTIONS(4554),
    [sym_immutable] = ACTIONS(4554),
    [sym_import] = ACTIONS(4554),
    [sym_inout] = ACTIONS(4554),
    [sym_interface] = ACTIONS(4554),
    [sym_invariant] = ACTIONS(4554),
    [sym_mixin] = ACTIONS(4554),
    [sym_nothrow] = ACTIONS(4554),
    [sym_override] = ACTIONS(4554),
    [sym_package] = ACTIONS(4554),
    [sym_pragma] = ACTIONS(4554),
    [sym_private] = ACTIONS(4554),
    [sym_protected] = ACTIONS(4554),
    [sym_public] = ACTIONS(4554),
    [sym_pure] = ACTIONS(4554),
    [sym_ref] = ACTIONS(4554),
    [sym_return] = ACTIONS(4554),
    [sym_scope] = ACTIONS(4554),
    [sym_shared] = ACTIONS(4554),
    [sym_static] = ACTIONS(4554),
    [sym_struct] = ACTIONS(4554),
    [sym_synchronized] = ACTIONS(4554),
    [sym_template] = ACTIONS(4554),
    [sym_typeof] = ACTIONS(4554),
    [sym_union] = ACTIONS(4554),
    [sym_unittest] = ACTIONS(4554),
    [sym_version] = ACTIONS(4554),
    [sym_while] = ACTIONS(4554),
    [sym_gshared] = ACTIONS(4554),
    [sym_traits] = ACTIONS(4554),
    [sym_vector] = ACTIONS(4554),
    [sym_void] = ACTIONS(4554),
    [sym_directive] = ACTIONS(3),
  },
  [2471] = {
    [sym_identifier] = ACTIONS(4464),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4466),
    [anon_sym_SEMI] = ACTIONS(4466),
    [anon_sym_TILDE] = ACTIONS(4466),
    [anon_sym_AT] = ACTIONS(4466),
    [sym_bool] = ACTIONS(4464),
    [sym_byte] = ACTIONS(4464),
    [sym_ubyte] = ACTIONS(4464),
    [sym_char] = ACTIONS(4464),
    [sym_short] = ACTIONS(4464),
    [sym_ushort] = ACTIONS(4464),
    [sym_int] = ACTIONS(4464),
    [sym_uint] = ACTIONS(4464),
    [sym_long] = ACTIONS(4464),
    [sym_ulong] = ACTIONS(4464),
    [sym_cent] = ACTIONS(4464),
    [sym_ucent] = ACTIONS(4464),
    [sym_wchar] = ACTIONS(4464),
    [sym_dchar] = ACTIONS(4464),
    [sym_float] = ACTIONS(4464),
    [sym_double] = ACTIONS(4464),
    [sym_real] = ACTIONS(4464),
    [sym_ifloat] = ACTIONS(4464),
    [sym_idouble] = ACTIONS(4464),
    [sym_ireal] = ACTIONS(4464),
    [sym_cfloat] = ACTIONS(4464),
    [sym_cdouble] = ACTIONS(4464),
    [sym_creal] = ACTIONS(4464),
    [sym_size_t] = ACTIONS(4464),
    [sym_ptrdiff_t] = ACTIONS(4464),
    [sym_string] = ACTIONS(4464),
    [sym_cstring] = ACTIONS(4464),
    [sym_dstring] = ACTIONS(4464),
    [sym_wstring] = ACTIONS(4464),
    [sym_noreturn] = ACTIONS(4464),
    [sym_this] = ACTIONS(4464),
    [sym_abstract] = ACTIONS(4464),
    [sym_alias] = ACTIONS(4464),
    [sym_align] = ACTIONS(4464),
    [sym_auto] = ACTIONS(4464),
    [sym_catch] = ACTIONS(4464),
    [sym_class] = ACTIONS(4464),
    [sym_const] = ACTIONS(4464),
    [sym_debug] = ACTIONS(4464),
    [sym_deprecated] = ACTIONS(4464),
    [sym_else] = ACTIONS(4464),
    [sym_enum] = ACTIONS(4464),
    [sym_export] = ACTIONS(4464),
    [sym_extern] = ACTIONS(4464),
    [sym_final] = ACTIONS(4464),
    [sym_finally] = ACTIONS(4464),
    [sym_immutable] = ACTIONS(4464),
    [sym_import] = ACTIONS(4464),
    [sym_inout] = ACTIONS(4464),
    [sym_interface] = ACTIONS(4464),
    [sym_invariant] = ACTIONS(4464),
    [sym_mixin] = ACTIONS(4464),
    [sym_nothrow] = ACTIONS(4464),
    [sym_override] = ACTIONS(4464),
    [sym_package] = ACTIONS(4464),
    [sym_pragma] = ACTIONS(4464),
    [sym_private] = ACTIONS(4464),
    [sym_protected] = ACTIONS(4464),
    [sym_public] = ACTIONS(4464),
    [sym_pure] = ACTIONS(4464),
    [sym_ref] = ACTIONS(4464),
    [sym_return] = ACTIONS(4464),
    [sym_scope] = ACTIONS(4464),
    [sym_shared] = ACTIONS(4464),
    [sym_static] = ACTIONS(4464),
    [sym_struct] = ACTIONS(4464),
    [sym_synchronized] = ACTIONS(4464),
    [sym_template] = ACTIONS(4464),
    [sym_typeof] = ACTIONS(4464),
    [sym_union] = ACTIONS(4464),
    [sym_unittest] = ACTIONS(4464),
    [sym_version] = ACTIONS(4464),
    [sym_while] = ACTIONS(4464),
    [sym_gshared] = ACTIONS(4464),
    [sym_traits] = ACTIONS(4464),
    [sym_vector] = ACTIONS(4464),
    [sym_void] = ACTIONS(4464),
    [sym_directive] = ACTIONS(3),
  },
  [2472] = {
    [sym_identifier] = ACTIONS(4472),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4474),
    [anon_sym_SEMI] = ACTIONS(4474),
    [anon_sym_TILDE] = ACTIONS(4474),
    [anon_sym_AT] = ACTIONS(4474),
    [sym_bool] = ACTIONS(4472),
    [sym_byte] = ACTIONS(4472),
    [sym_ubyte] = ACTIONS(4472),
    [sym_char] = ACTIONS(4472),
    [sym_short] = ACTIONS(4472),
    [sym_ushort] = ACTIONS(4472),
    [sym_int] = ACTIONS(4472),
    [sym_uint] = ACTIONS(4472),
    [sym_long] = ACTIONS(4472),
    [sym_ulong] = ACTIONS(4472),
    [sym_cent] = ACTIONS(4472),
    [sym_ucent] = ACTIONS(4472),
    [sym_wchar] = ACTIONS(4472),
    [sym_dchar] = ACTIONS(4472),
    [sym_float] = ACTIONS(4472),
    [sym_double] = ACTIONS(4472),
    [sym_real] = ACTIONS(4472),
    [sym_ifloat] = ACTIONS(4472),
    [sym_idouble] = ACTIONS(4472),
    [sym_ireal] = ACTIONS(4472),
    [sym_cfloat] = ACTIONS(4472),
    [sym_cdouble] = ACTIONS(4472),
    [sym_creal] = ACTIONS(4472),
    [sym_size_t] = ACTIONS(4472),
    [sym_ptrdiff_t] = ACTIONS(4472),
    [sym_string] = ACTIONS(4472),
    [sym_cstring] = ACTIONS(4472),
    [sym_dstring] = ACTIONS(4472),
    [sym_wstring] = ACTIONS(4472),
    [sym_noreturn] = ACTIONS(4472),
    [sym_this] = ACTIONS(4472),
    [sym_abstract] = ACTIONS(4472),
    [sym_alias] = ACTIONS(4472),
    [sym_align] = ACTIONS(4472),
    [sym_auto] = ACTIONS(4472),
    [sym_catch] = ACTIONS(4472),
    [sym_class] = ACTIONS(4472),
    [sym_const] = ACTIONS(4472),
    [sym_debug] = ACTIONS(4472),
    [sym_deprecated] = ACTIONS(4472),
    [sym_else] = ACTIONS(4472),
    [sym_enum] = ACTIONS(4472),
    [sym_export] = ACTIONS(4472),
    [sym_extern] = ACTIONS(4472),
    [sym_final] = ACTIONS(4472),
    [sym_finally] = ACTIONS(4472),
    [sym_immutable] = ACTIONS(4472),
    [sym_import] = ACTIONS(4472),
    [sym_inout] = ACTIONS(4472),
    [sym_interface] = ACTIONS(4472),
    [sym_invariant] = ACTIONS(4472),
    [sym_mixin] = ACTIONS(4472),
    [sym_nothrow] = ACTIONS(4472),
    [sym_override] = ACTIONS(4472),
    [sym_package] = ACTIONS(4472),
    [sym_pragma] = ACTIONS(4472),
    [sym_private] = ACTIONS(4472),
    [sym_protected] = ACTIONS(4472),
    [sym_public] = ACTIONS(4472),
    [sym_pure] = ACTIONS(4472),
    [sym_ref] = ACTIONS(4472),
    [sym_return] = ACTIONS(4472),
    [sym_scope] = ACTIONS(4472),
    [sym_shared] = ACTIONS(4472),
    [sym_static] = ACTIONS(4472),
    [sym_struct] = ACTIONS(4472),
    [sym_synchronized] = ACTIONS(4472),
    [sym_template] = ACTIONS(4472),
    [sym_typeof] = ACTIONS(4472),
    [sym_union] = ACTIONS(4472),
    [sym_unittest] = ACTIONS(4472),
    [sym_version] = ACTIONS(4472),
    [sym_while] = ACTIONS(4472),
    [sym_gshared] = ACTIONS(4472),
    [sym_traits] = ACTIONS(4472),
    [sym_vector] = ACTIONS(4472),
    [sym_void] = ACTIONS(4472),
    [sym_directive] = ACTIONS(3),
  },
  [2473] = {
    [sym_identifier] = ACTIONS(4496),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4498),
    [anon_sym_SEMI] = ACTIONS(4498),
    [anon_sym_TILDE] = ACTIONS(4498),
    [anon_sym_AT] = ACTIONS(4498),
    [sym_bool] = ACTIONS(4496),
    [sym_byte] = ACTIONS(4496),
    [sym_ubyte] = ACTIONS(4496),
    [sym_char] = ACTIONS(4496),
    [sym_short] = ACTIONS(4496),
    [sym_ushort] = ACTIONS(4496),
    [sym_int] = ACTIONS(4496),
    [sym_uint] = ACTIONS(4496),
    [sym_long] = ACTIONS(4496),
    [sym_ulong] = ACTIONS(4496),
    [sym_cent] = ACTIONS(4496),
    [sym_ucent] = ACTIONS(4496),
    [sym_wchar] = ACTIONS(4496),
    [sym_dchar] = ACTIONS(4496),
    [sym_float] = ACTIONS(4496),
    [sym_double] = ACTIONS(4496),
    [sym_real] = ACTIONS(4496),
    [sym_ifloat] = ACTIONS(4496),
    [sym_idouble] = ACTIONS(4496),
    [sym_ireal] = ACTIONS(4496),
    [sym_cfloat] = ACTIONS(4496),
    [sym_cdouble] = ACTIONS(4496),
    [sym_creal] = ACTIONS(4496),
    [sym_size_t] = ACTIONS(4496),
    [sym_ptrdiff_t] = ACTIONS(4496),
    [sym_string] = ACTIONS(4496),
    [sym_cstring] = ACTIONS(4496),
    [sym_dstring] = ACTIONS(4496),
    [sym_wstring] = ACTIONS(4496),
    [sym_noreturn] = ACTIONS(4496),
    [sym_this] = ACTIONS(4496),
    [sym_abstract] = ACTIONS(4496),
    [sym_alias] = ACTIONS(4496),
    [sym_align] = ACTIONS(4496),
    [sym_auto] = ACTIONS(4496),
    [sym_catch] = ACTIONS(4496),
    [sym_class] = ACTIONS(4496),
    [sym_const] = ACTIONS(4496),
    [sym_debug] = ACTIONS(4496),
    [sym_deprecated] = ACTIONS(4496),
    [sym_else] = ACTIONS(4496),
    [sym_enum] = ACTIONS(4496),
    [sym_export] = ACTIONS(4496),
    [sym_extern] = ACTIONS(4496),
    [sym_final] = ACTIONS(4496),
    [sym_finally] = ACTIONS(4496),
    [sym_immutable] = ACTIONS(4496),
    [sym_import] = ACTIONS(4496),
    [sym_inout] = ACTIONS(4496),
    [sym_interface] = ACTIONS(4496),
    [sym_invariant] = ACTIONS(4496),
    [sym_mixin] = ACTIONS(4496),
    [sym_nothrow] = ACTIONS(4496),
    [sym_override] = ACTIONS(4496),
    [sym_package] = ACTIONS(4496),
    [sym_pragma] = ACTIONS(4496),
    [sym_private] = ACTIONS(4496),
    [sym_protected] = ACTIONS(4496),
    [sym_public] = ACTIONS(4496),
    [sym_pure] = ACTIONS(4496),
    [sym_ref] = ACTIONS(4496),
    [sym_return] = ACTIONS(4496),
    [sym_scope] = ACTIONS(4496),
    [sym_shared] = ACTIONS(4496),
    [sym_static] = ACTIONS(4496),
    [sym_struct] = ACTIONS(4496),
    [sym_synchronized] = ACTIONS(4496),
    [sym_template] = ACTIONS(4496),
    [sym_typeof] = ACTIONS(4496),
    [sym_union] = ACTIONS(4496),
    [sym_unittest] = ACTIONS(4496),
    [sym_version] = ACTIONS(4496),
    [sym_while] = ACTIONS(4496),
    [sym_gshared] = ACTIONS(4496),
    [sym_traits] = ACTIONS(4496),
    [sym_vector] = ACTIONS(4496),
    [sym_void] = ACTIONS(4496),
    [sym_directive] = ACTIONS(3),
  },
  [2474] = {
    [sym_identifier] = ACTIONS(4500),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4502),
    [anon_sym_SEMI] = ACTIONS(4502),
    [anon_sym_TILDE] = ACTIONS(4502),
    [anon_sym_AT] = ACTIONS(4502),
    [sym_bool] = ACTIONS(4500),
    [sym_byte] = ACTIONS(4500),
    [sym_ubyte] = ACTIONS(4500),
    [sym_char] = ACTIONS(4500),
    [sym_short] = ACTIONS(4500),
    [sym_ushort] = ACTIONS(4500),
    [sym_int] = ACTIONS(4500),
    [sym_uint] = ACTIONS(4500),
    [sym_long] = ACTIONS(4500),
    [sym_ulong] = ACTIONS(4500),
    [sym_cent] = ACTIONS(4500),
    [sym_ucent] = ACTIONS(4500),
    [sym_wchar] = ACTIONS(4500),
    [sym_dchar] = ACTIONS(4500),
    [sym_float] = ACTIONS(4500),
    [sym_double] = ACTIONS(4500),
    [sym_real] = ACTIONS(4500),
    [sym_ifloat] = ACTIONS(4500),
    [sym_idouble] = ACTIONS(4500),
    [sym_ireal] = ACTIONS(4500),
    [sym_cfloat] = ACTIONS(4500),
    [sym_cdouble] = ACTIONS(4500),
    [sym_creal] = ACTIONS(4500),
    [sym_size_t] = ACTIONS(4500),
    [sym_ptrdiff_t] = ACTIONS(4500),
    [sym_string] = ACTIONS(4500),
    [sym_cstring] = ACTIONS(4500),
    [sym_dstring] = ACTIONS(4500),
    [sym_wstring] = ACTIONS(4500),
    [sym_noreturn] = ACTIONS(4500),
    [sym_this] = ACTIONS(4500),
    [sym_abstract] = ACTIONS(4500),
    [sym_alias] = ACTIONS(4500),
    [sym_align] = ACTIONS(4500),
    [sym_auto] = ACTIONS(4500),
    [sym_catch] = ACTIONS(4500),
    [sym_class] = ACTIONS(4500),
    [sym_const] = ACTIONS(4500),
    [sym_debug] = ACTIONS(4500),
    [sym_deprecated] = ACTIONS(4500),
    [sym_else] = ACTIONS(4500),
    [sym_enum] = ACTIONS(4500),
    [sym_export] = ACTIONS(4500),
    [sym_extern] = ACTIONS(4500),
    [sym_final] = ACTIONS(4500),
    [sym_finally] = ACTIONS(4500),
    [sym_immutable] = ACTIONS(4500),
    [sym_import] = ACTIONS(4500),
    [sym_inout] = ACTIONS(4500),
    [sym_interface] = ACTIONS(4500),
    [sym_invariant] = ACTIONS(4500),
    [sym_mixin] = ACTIONS(4500),
    [sym_nothrow] = ACTIONS(4500),
    [sym_override] = ACTIONS(4500),
    [sym_package] = ACTIONS(4500),
    [sym_pragma] = ACTIONS(4500),
    [sym_private] = ACTIONS(4500),
    [sym_protected] = ACTIONS(4500),
    [sym_public] = ACTIONS(4500),
    [sym_pure] = ACTIONS(4500),
    [sym_ref] = ACTIONS(4500),
    [sym_return] = ACTIONS(4500),
    [sym_scope] = ACTIONS(4500),
    [sym_shared] = ACTIONS(4500),
    [sym_static] = ACTIONS(4500),
    [sym_struct] = ACTIONS(4500),
    [sym_synchronized] = ACTIONS(4500),
    [sym_template] = ACTIONS(4500),
    [sym_typeof] = ACTIONS(4500),
    [sym_union] = ACTIONS(4500),
    [sym_unittest] = ACTIONS(4500),
    [sym_version] = ACTIONS(4500),
    [sym_while] = ACTIONS(4500),
    [sym_gshared] = ACTIONS(4500),
    [sym_traits] = ACTIONS(4500),
    [sym_vector] = ACTIONS(4500),
    [sym_void] = ACTIONS(4500),
    [sym_directive] = ACTIONS(3),
  },
  [2475] = {
    [sym_identifier] = ACTIONS(4512),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4514),
    [anon_sym_SEMI] = ACTIONS(4514),
    [anon_sym_TILDE] = ACTIONS(4514),
    [anon_sym_AT] = ACTIONS(4514),
    [sym_bool] = ACTIONS(4512),
    [sym_byte] = ACTIONS(4512),
    [sym_ubyte] = ACTIONS(4512),
    [sym_char] = ACTIONS(4512),
    [sym_short] = ACTIONS(4512),
    [sym_ushort] = ACTIONS(4512),
    [sym_int] = ACTIONS(4512),
    [sym_uint] = ACTIONS(4512),
    [sym_long] = ACTIONS(4512),
    [sym_ulong] = ACTIONS(4512),
    [sym_cent] = ACTIONS(4512),
    [sym_ucent] = ACTIONS(4512),
    [sym_wchar] = ACTIONS(4512),
    [sym_dchar] = ACTIONS(4512),
    [sym_float] = ACTIONS(4512),
    [sym_double] = ACTIONS(4512),
    [sym_real] = ACTIONS(4512),
    [sym_ifloat] = ACTIONS(4512),
    [sym_idouble] = ACTIONS(4512),
    [sym_ireal] = ACTIONS(4512),
    [sym_cfloat] = ACTIONS(4512),
    [sym_cdouble] = ACTIONS(4512),
    [sym_creal] = ACTIONS(4512),
    [sym_size_t] = ACTIONS(4512),
    [sym_ptrdiff_t] = ACTIONS(4512),
    [sym_string] = ACTIONS(4512),
    [sym_cstring] = ACTIONS(4512),
    [sym_dstring] = ACTIONS(4512),
    [sym_wstring] = ACTIONS(4512),
    [sym_noreturn] = ACTIONS(4512),
    [sym_this] = ACTIONS(4512),
    [sym_abstract] = ACTIONS(4512),
    [sym_alias] = ACTIONS(4512),
    [sym_align] = ACTIONS(4512),
    [sym_auto] = ACTIONS(4512),
    [sym_catch] = ACTIONS(4512),
    [sym_class] = ACTIONS(4512),
    [sym_const] = ACTIONS(4512),
    [sym_debug] = ACTIONS(4512),
    [sym_deprecated] = ACTIONS(4512),
    [sym_else] = ACTIONS(4512),
    [sym_enum] = ACTIONS(4512),
    [sym_export] = ACTIONS(4512),
    [sym_extern] = ACTIONS(4512),
    [sym_final] = ACTIONS(4512),
    [sym_finally] = ACTIONS(4512),
    [sym_immutable] = ACTIONS(4512),
    [sym_import] = ACTIONS(4512),
    [sym_inout] = ACTIONS(4512),
    [sym_interface] = ACTIONS(4512),
    [sym_invariant] = ACTIONS(4512),
    [sym_mixin] = ACTIONS(4512),
    [sym_nothrow] = ACTIONS(4512),
    [sym_override] = ACTIONS(4512),
    [sym_package] = ACTIONS(4512),
    [sym_pragma] = ACTIONS(4512),
    [sym_private] = ACTIONS(4512),
    [sym_protected] = ACTIONS(4512),
    [sym_public] = ACTIONS(4512),
    [sym_pure] = ACTIONS(4512),
    [sym_ref] = ACTIONS(4512),
    [sym_return] = ACTIONS(4512),
    [sym_scope] = ACTIONS(4512),
    [sym_shared] = ACTIONS(4512),
    [sym_static] = ACTIONS(4512),
    [sym_struct] = ACTIONS(4512),
    [sym_synchronized] = ACTIONS(4512),
    [sym_template] = ACTIONS(4512),
    [sym_typeof] = ACTIONS(4512),
    [sym_union] = ACTIONS(4512),
    [sym_unittest] = ACTIONS(4512),
    [sym_version] = ACTIONS(4512),
    [sym_while] = ACTIONS(4512),
    [sym_gshared] = ACTIONS(4512),
    [sym_traits] = ACTIONS(4512),
    [sym_vector] = ACTIONS(4512),
    [sym_void] = ACTIONS(4512),
    [sym_directive] = ACTIONS(3),
  },
  [2476] = {
    [sym_identifier] = ACTIONS(4520),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4522),
    [anon_sym_SEMI] = ACTIONS(4522),
    [anon_sym_TILDE] = ACTIONS(4522),
    [anon_sym_AT] = ACTIONS(4522),
    [sym_bool] = ACTIONS(4520),
    [sym_byte] = ACTIONS(4520),
    [sym_ubyte] = ACTIONS(4520),
    [sym_char] = ACTIONS(4520),
    [sym_short] = ACTIONS(4520),
    [sym_ushort] = ACTIONS(4520),
    [sym_int] = ACTIONS(4520),
    [sym_uint] = ACTIONS(4520),
    [sym_long] = ACTIONS(4520),
    [sym_ulong] = ACTIONS(4520),
    [sym_cent] = ACTIONS(4520),
    [sym_ucent] = ACTIONS(4520),
    [sym_wchar] = ACTIONS(4520),
    [sym_dchar] = ACTIONS(4520),
    [sym_float] = ACTIONS(4520),
    [sym_double] = ACTIONS(4520),
    [sym_real] = ACTIONS(4520),
    [sym_ifloat] = ACTIONS(4520),
    [sym_idouble] = ACTIONS(4520),
    [sym_ireal] = ACTIONS(4520),
    [sym_cfloat] = ACTIONS(4520),
    [sym_cdouble] = ACTIONS(4520),
    [sym_creal] = ACTIONS(4520),
    [sym_size_t] = ACTIONS(4520),
    [sym_ptrdiff_t] = ACTIONS(4520),
    [sym_string] = ACTIONS(4520),
    [sym_cstring] = ACTIONS(4520),
    [sym_dstring] = ACTIONS(4520),
    [sym_wstring] = ACTIONS(4520),
    [sym_noreturn] = ACTIONS(4520),
    [sym_this] = ACTIONS(4520),
    [sym_abstract] = ACTIONS(4520),
    [sym_alias] = ACTIONS(4520),
    [sym_align] = ACTIONS(4520),
    [sym_auto] = ACTIONS(4520),
    [sym_catch] = ACTIONS(4520),
    [sym_class] = ACTIONS(4520),
    [sym_const] = ACTIONS(4520),
    [sym_debug] = ACTIONS(4520),
    [sym_deprecated] = ACTIONS(4520),
    [sym_else] = ACTIONS(4520),
    [sym_enum] = ACTIONS(4520),
    [sym_export] = ACTIONS(4520),
    [sym_extern] = ACTIONS(4520),
    [sym_final] = ACTIONS(4520),
    [sym_finally] = ACTIONS(4520),
    [sym_immutable] = ACTIONS(4520),
    [sym_import] = ACTIONS(4520),
    [sym_inout] = ACTIONS(4520),
    [sym_interface] = ACTIONS(4520),
    [sym_invariant] = ACTIONS(4520),
    [sym_mixin] = ACTIONS(4520),
    [sym_nothrow] = ACTIONS(4520),
    [sym_override] = ACTIONS(4520),
    [sym_package] = ACTIONS(4520),
    [sym_pragma] = ACTIONS(4520),
    [sym_private] = ACTIONS(4520),
    [sym_protected] = ACTIONS(4520),
    [sym_public] = ACTIONS(4520),
    [sym_pure] = ACTIONS(4520),
    [sym_ref] = ACTIONS(4520),
    [sym_return] = ACTIONS(4520),
    [sym_scope] = ACTIONS(4520),
    [sym_shared] = ACTIONS(4520),
    [sym_static] = ACTIONS(4520),
    [sym_struct] = ACTIONS(4520),
    [sym_synchronized] = ACTIONS(4520),
    [sym_template] = ACTIONS(4520),
    [sym_typeof] = ACTIONS(4520),
    [sym_union] = ACTIONS(4520),
    [sym_unittest] = ACTIONS(4520),
    [sym_version] = ACTIONS(4520),
    [sym_while] = ACTIONS(4520),
    [sym_gshared] = ACTIONS(4520),
    [sym_traits] = ACTIONS(4520),
    [sym_vector] = ACTIONS(4520),
    [sym_void] = ACTIONS(4520),
    [sym_directive] = ACTIONS(3),
  },
  [2477] = {
    [ts_builtin_sym_end] = ACTIONS(4894),
    [sym_identifier] = ACTIONS(4892),
    [sym_end_file] = ACTIONS(4892),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4894),
    [anon_sym_SEMI] = ACTIONS(4894),
    [anon_sym_TILDE] = ACTIONS(4894),
    [anon_sym_AT] = ACTIONS(4894),
    [sym_bool] = ACTIONS(4892),
    [sym_byte] = ACTIONS(4892),
    [sym_ubyte] = ACTIONS(4892),
    [sym_char] = ACTIONS(4892),
    [sym_short] = ACTIONS(4892),
    [sym_ushort] = ACTIONS(4892),
    [sym_int] = ACTIONS(4892),
    [sym_uint] = ACTIONS(4892),
    [sym_long] = ACTIONS(4892),
    [sym_ulong] = ACTIONS(4892),
    [sym_cent] = ACTIONS(4892),
    [sym_ucent] = ACTIONS(4892),
    [sym_wchar] = ACTIONS(4892),
    [sym_dchar] = ACTIONS(4892),
    [sym_float] = ACTIONS(4892),
    [sym_double] = ACTIONS(4892),
    [sym_real] = ACTIONS(4892),
    [sym_ifloat] = ACTIONS(4892),
    [sym_idouble] = ACTIONS(4892),
    [sym_ireal] = ACTIONS(4892),
    [sym_cfloat] = ACTIONS(4892),
    [sym_cdouble] = ACTIONS(4892),
    [sym_creal] = ACTIONS(4892),
    [sym_size_t] = ACTIONS(4892),
    [sym_ptrdiff_t] = ACTIONS(4892),
    [sym_string] = ACTIONS(4892),
    [sym_cstring] = ACTIONS(4892),
    [sym_dstring] = ACTIONS(4892),
    [sym_wstring] = ACTIONS(4892),
    [sym_noreturn] = ACTIONS(4892),
    [sym_this] = ACTIONS(4892),
    [sym_abstract] = ACTIONS(4892),
    [sym_alias] = ACTIONS(4892),
    [sym_align] = ACTIONS(4892),
    [sym_auto] = ACTIONS(4892),
    [sym_class] = ACTIONS(4892),
    [sym_const] = ACTIONS(4892),
    [sym_debug] = ACTIONS(4892),
    [sym_deprecated] = ACTIONS(4892),
    [sym_else] = ACTIONS(4892),
    [sym_enum] = ACTIONS(4892),
    [sym_export] = ACTIONS(4892),
    [sym_extern] = ACTIONS(4892),
    [sym_final] = ACTIONS(4892),
    [sym_immutable] = ACTIONS(4892),
    [sym_import] = ACTIONS(4892),
    [sym_inout] = ACTIONS(4892),
    [sym_interface] = ACTIONS(4892),
    [sym_invariant] = ACTIONS(4892),
    [sym_mixin] = ACTIONS(4892),
    [sym_nothrow] = ACTIONS(4892),
    [sym_override] = ACTIONS(4892),
    [sym_package] = ACTIONS(4892),
    [sym_pragma] = ACTIONS(4892),
    [sym_private] = ACTIONS(4892),
    [sym_protected] = ACTIONS(4892),
    [sym_public] = ACTIONS(4892),
    [sym_pure] = ACTIONS(4892),
    [sym_ref] = ACTIONS(4892),
    [sym_return] = ACTIONS(4892),
    [sym_scope] = ACTIONS(4892),
    [sym_shared] = ACTIONS(4892),
    [sym_static] = ACTIONS(4892),
    [sym_struct] = ACTIONS(4892),
    [sym_synchronized] = ACTIONS(4892),
    [sym_template] = ACTIONS(4892),
    [sym_typeof] = ACTIONS(4892),
    [sym_union] = ACTIONS(4892),
    [sym_unittest] = ACTIONS(4892),
    [sym_version] = ACTIONS(4892),
    [sym_while] = ACTIONS(4892),
    [sym_gshared] = ACTIONS(4892),
    [sym_traits] = ACTIONS(4892),
    [sym_vector] = ACTIONS(4892),
    [sym_void] = ACTIONS(4892),
    [sym_directive] = ACTIONS(3),
  },
  [2478] = {
    [sym_identifier] = ACTIONS(4534),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4536),
    [anon_sym_SEMI] = ACTIONS(4536),
    [anon_sym_TILDE] = ACTIONS(4536),
    [anon_sym_AT] = ACTIONS(4536),
    [sym_bool] = ACTIONS(4534),
    [sym_byte] = ACTIONS(4534),
    [sym_ubyte] = ACTIONS(4534),
    [sym_char] = ACTIONS(4534),
    [sym_short] = ACTIONS(4534),
    [sym_ushort] = ACTIONS(4534),
    [sym_int] = ACTIONS(4534),
    [sym_uint] = ACTIONS(4534),
    [sym_long] = ACTIONS(4534),
    [sym_ulong] = ACTIONS(4534),
    [sym_cent] = ACTIONS(4534),
    [sym_ucent] = ACTIONS(4534),
    [sym_wchar] = ACTIONS(4534),
    [sym_dchar] = ACTIONS(4534),
    [sym_float] = ACTIONS(4534),
    [sym_double] = ACTIONS(4534),
    [sym_real] = ACTIONS(4534),
    [sym_ifloat] = ACTIONS(4534),
    [sym_idouble] = ACTIONS(4534),
    [sym_ireal] = ACTIONS(4534),
    [sym_cfloat] = ACTIONS(4534),
    [sym_cdouble] = ACTIONS(4534),
    [sym_creal] = ACTIONS(4534),
    [sym_size_t] = ACTIONS(4534),
    [sym_ptrdiff_t] = ACTIONS(4534),
    [sym_string] = ACTIONS(4534),
    [sym_cstring] = ACTIONS(4534),
    [sym_dstring] = ACTIONS(4534),
    [sym_wstring] = ACTIONS(4534),
    [sym_noreturn] = ACTIONS(4534),
    [sym_this] = ACTIONS(4534),
    [sym_abstract] = ACTIONS(4534),
    [sym_alias] = ACTIONS(4534),
    [sym_align] = ACTIONS(4534),
    [sym_auto] = ACTIONS(4534),
    [sym_catch] = ACTIONS(4534),
    [sym_class] = ACTIONS(4534),
    [sym_const] = ACTIONS(4534),
    [sym_debug] = ACTIONS(4534),
    [sym_deprecated] = ACTIONS(4534),
    [sym_else] = ACTIONS(4534),
    [sym_enum] = ACTIONS(4534),
    [sym_export] = ACTIONS(4534),
    [sym_extern] = ACTIONS(4534),
    [sym_final] = ACTIONS(4534),
    [sym_finally] = ACTIONS(4534),
    [sym_immutable] = ACTIONS(4534),
    [sym_import] = ACTIONS(4534),
    [sym_inout] = ACTIONS(4534),
    [sym_interface] = ACTIONS(4534),
    [sym_invariant] = ACTIONS(4534),
    [sym_mixin] = ACTIONS(4534),
    [sym_nothrow] = ACTIONS(4534),
    [sym_override] = ACTIONS(4534),
    [sym_package] = ACTIONS(4534),
    [sym_pragma] = ACTIONS(4534),
    [sym_private] = ACTIONS(4534),
    [sym_protected] = ACTIONS(4534),
    [sym_public] = ACTIONS(4534),
    [sym_pure] = ACTIONS(4534),
    [sym_ref] = ACTIONS(4534),
    [sym_return] = ACTIONS(4534),
    [sym_scope] = ACTIONS(4534),
    [sym_shared] = ACTIONS(4534),
    [sym_static] = ACTIONS(4534),
    [sym_struct] = ACTIONS(4534),
    [sym_synchronized] = ACTIONS(4534),
    [sym_template] = ACTIONS(4534),
    [sym_typeof] = ACTIONS(4534),
    [sym_union] = ACTIONS(4534),
    [sym_unittest] = ACTIONS(4534),
    [sym_version] = ACTIONS(4534),
    [sym_while] = ACTIONS(4534),
    [sym_gshared] = ACTIONS(4534),
    [sym_traits] = ACTIONS(4534),
    [sym_vector] = ACTIONS(4534),
    [sym_void] = ACTIONS(4534),
    [sym_directive] = ACTIONS(3),
  },
  [2479] = {
    [sym_identifier] = ACTIONS(4538),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4540),
    [anon_sym_SEMI] = ACTIONS(4540),
    [anon_sym_TILDE] = ACTIONS(4540),
    [anon_sym_AT] = ACTIONS(4540),
    [sym_bool] = ACTIONS(4538),
    [sym_byte] = ACTIONS(4538),
    [sym_ubyte] = ACTIONS(4538),
    [sym_char] = ACTIONS(4538),
    [sym_short] = ACTIONS(4538),
    [sym_ushort] = ACTIONS(4538),
    [sym_int] = ACTIONS(4538),
    [sym_uint] = ACTIONS(4538),
    [sym_long] = ACTIONS(4538),
    [sym_ulong] = ACTIONS(4538),
    [sym_cent] = ACTIONS(4538),
    [sym_ucent] = ACTIONS(4538),
    [sym_wchar] = ACTIONS(4538),
    [sym_dchar] = ACTIONS(4538),
    [sym_float] = ACTIONS(4538),
    [sym_double] = ACTIONS(4538),
    [sym_real] = ACTIONS(4538),
    [sym_ifloat] = ACTIONS(4538),
    [sym_idouble] = ACTIONS(4538),
    [sym_ireal] = ACTIONS(4538),
    [sym_cfloat] = ACTIONS(4538),
    [sym_cdouble] = ACTIONS(4538),
    [sym_creal] = ACTIONS(4538),
    [sym_size_t] = ACTIONS(4538),
    [sym_ptrdiff_t] = ACTIONS(4538),
    [sym_string] = ACTIONS(4538),
    [sym_cstring] = ACTIONS(4538),
    [sym_dstring] = ACTIONS(4538),
    [sym_wstring] = ACTIONS(4538),
    [sym_noreturn] = ACTIONS(4538),
    [sym_this] = ACTIONS(4538),
    [sym_abstract] = ACTIONS(4538),
    [sym_alias] = ACTIONS(4538),
    [sym_align] = ACTIONS(4538),
    [sym_auto] = ACTIONS(4538),
    [sym_catch] = ACTIONS(4538),
    [sym_class] = ACTIONS(4538),
    [sym_const] = ACTIONS(4538),
    [sym_debug] = ACTIONS(4538),
    [sym_deprecated] = ACTIONS(4538),
    [sym_else] = ACTIONS(4538),
    [sym_enum] = ACTIONS(4538),
    [sym_export] = ACTIONS(4538),
    [sym_extern] = ACTIONS(4538),
    [sym_final] = ACTIONS(4538),
    [sym_finally] = ACTIONS(4538),
    [sym_immutable] = ACTIONS(4538),
    [sym_import] = ACTIONS(4538),
    [sym_inout] = ACTIONS(4538),
    [sym_interface] = ACTIONS(4538),
    [sym_invariant] = ACTIONS(4538),
    [sym_mixin] = ACTIONS(4538),
    [sym_nothrow] = ACTIONS(4538),
    [sym_override] = ACTIONS(4538),
    [sym_package] = ACTIONS(4538),
    [sym_pragma] = ACTIONS(4538),
    [sym_private] = ACTIONS(4538),
    [sym_protected] = ACTIONS(4538),
    [sym_public] = ACTIONS(4538),
    [sym_pure] = ACTIONS(4538),
    [sym_ref] = ACTIONS(4538),
    [sym_return] = ACTIONS(4538),
    [sym_scope] = ACTIONS(4538),
    [sym_shared] = ACTIONS(4538),
    [sym_static] = ACTIONS(4538),
    [sym_struct] = ACTIONS(4538),
    [sym_synchronized] = ACTIONS(4538),
    [sym_template] = ACTIONS(4538),
    [sym_typeof] = ACTIONS(4538),
    [sym_union] = ACTIONS(4538),
    [sym_unittest] = ACTIONS(4538),
    [sym_version] = ACTIONS(4538),
    [sym_while] = ACTIONS(4538),
    [sym_gshared] = ACTIONS(4538),
    [sym_traits] = ACTIONS(4538),
    [sym_vector] = ACTIONS(4538),
    [sym_void] = ACTIONS(4538),
    [sym_directive] = ACTIONS(3),
  },
  [2480] = {
    [ts_builtin_sym_end] = ACTIONS(2663),
    [sym_identifier] = ACTIONS(2665),
    [sym_end_file] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
  },
  [2481] = {
    [sym_identifier] = ACTIONS(4546),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4548),
    [anon_sym_SEMI] = ACTIONS(4548),
    [anon_sym_TILDE] = ACTIONS(4548),
    [anon_sym_AT] = ACTIONS(4548),
    [sym_bool] = ACTIONS(4546),
    [sym_byte] = ACTIONS(4546),
    [sym_ubyte] = ACTIONS(4546),
    [sym_char] = ACTIONS(4546),
    [sym_short] = ACTIONS(4546),
    [sym_ushort] = ACTIONS(4546),
    [sym_int] = ACTIONS(4546),
    [sym_uint] = ACTIONS(4546),
    [sym_long] = ACTIONS(4546),
    [sym_ulong] = ACTIONS(4546),
    [sym_cent] = ACTIONS(4546),
    [sym_ucent] = ACTIONS(4546),
    [sym_wchar] = ACTIONS(4546),
    [sym_dchar] = ACTIONS(4546),
    [sym_float] = ACTIONS(4546),
    [sym_double] = ACTIONS(4546),
    [sym_real] = ACTIONS(4546),
    [sym_ifloat] = ACTIONS(4546),
    [sym_idouble] = ACTIONS(4546),
    [sym_ireal] = ACTIONS(4546),
    [sym_cfloat] = ACTIONS(4546),
    [sym_cdouble] = ACTIONS(4546),
    [sym_creal] = ACTIONS(4546),
    [sym_size_t] = ACTIONS(4546),
    [sym_ptrdiff_t] = ACTIONS(4546),
    [sym_string] = ACTIONS(4546),
    [sym_cstring] = ACTIONS(4546),
    [sym_dstring] = ACTIONS(4546),
    [sym_wstring] = ACTIONS(4546),
    [sym_noreturn] = ACTIONS(4546),
    [sym_this] = ACTIONS(4546),
    [sym_abstract] = ACTIONS(4546),
    [sym_alias] = ACTIONS(4546),
    [sym_align] = ACTIONS(4546),
    [sym_auto] = ACTIONS(4546),
    [sym_catch] = ACTIONS(4546),
    [sym_class] = ACTIONS(4546),
    [sym_const] = ACTIONS(4546),
    [sym_debug] = ACTIONS(4546),
    [sym_deprecated] = ACTIONS(4546),
    [sym_else] = ACTIONS(4546),
    [sym_enum] = ACTIONS(4546),
    [sym_export] = ACTIONS(4546),
    [sym_extern] = ACTIONS(4546),
    [sym_final] = ACTIONS(4546),
    [sym_finally] = ACTIONS(4546),
    [sym_immutable] = ACTIONS(4546),
    [sym_import] = ACTIONS(4546),
    [sym_inout] = ACTIONS(4546),
    [sym_interface] = ACTIONS(4546),
    [sym_invariant] = ACTIONS(4546),
    [sym_mixin] = ACTIONS(4546),
    [sym_nothrow] = ACTIONS(4546),
    [sym_override] = ACTIONS(4546),
    [sym_package] = ACTIONS(4546),
    [sym_pragma] = ACTIONS(4546),
    [sym_private] = ACTIONS(4546),
    [sym_protected] = ACTIONS(4546),
    [sym_public] = ACTIONS(4546),
    [sym_pure] = ACTIONS(4546),
    [sym_ref] = ACTIONS(4546),
    [sym_return] = ACTIONS(4546),
    [sym_scope] = ACTIONS(4546),
    [sym_shared] = ACTIONS(4546),
    [sym_static] = ACTIONS(4546),
    [sym_struct] = ACTIONS(4546),
    [sym_synchronized] = ACTIONS(4546),
    [sym_template] = ACTIONS(4546),
    [sym_typeof] = ACTIONS(4546),
    [sym_union] = ACTIONS(4546),
    [sym_unittest] = ACTIONS(4546),
    [sym_version] = ACTIONS(4546),
    [sym_while] = ACTIONS(4546),
    [sym_gshared] = ACTIONS(4546),
    [sym_traits] = ACTIONS(4546),
    [sym_vector] = ACTIONS(4546),
    [sym_void] = ACTIONS(4546),
    [sym_directive] = ACTIONS(3),
  },
  [2482] = {
    [sym_identifier] = ACTIONS(4562),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4564),
    [anon_sym_SEMI] = ACTIONS(4564),
    [anon_sym_TILDE] = ACTIONS(4564),
    [anon_sym_AT] = ACTIONS(4564),
    [sym_bool] = ACTIONS(4562),
    [sym_byte] = ACTIONS(4562),
    [sym_ubyte] = ACTIONS(4562),
    [sym_char] = ACTIONS(4562),
    [sym_short] = ACTIONS(4562),
    [sym_ushort] = ACTIONS(4562),
    [sym_int] = ACTIONS(4562),
    [sym_uint] = ACTIONS(4562),
    [sym_long] = ACTIONS(4562),
    [sym_ulong] = ACTIONS(4562),
    [sym_cent] = ACTIONS(4562),
    [sym_ucent] = ACTIONS(4562),
    [sym_wchar] = ACTIONS(4562),
    [sym_dchar] = ACTIONS(4562),
    [sym_float] = ACTIONS(4562),
    [sym_double] = ACTIONS(4562),
    [sym_real] = ACTIONS(4562),
    [sym_ifloat] = ACTIONS(4562),
    [sym_idouble] = ACTIONS(4562),
    [sym_ireal] = ACTIONS(4562),
    [sym_cfloat] = ACTIONS(4562),
    [sym_cdouble] = ACTIONS(4562),
    [sym_creal] = ACTIONS(4562),
    [sym_size_t] = ACTIONS(4562),
    [sym_ptrdiff_t] = ACTIONS(4562),
    [sym_string] = ACTIONS(4562),
    [sym_cstring] = ACTIONS(4562),
    [sym_dstring] = ACTIONS(4562),
    [sym_wstring] = ACTIONS(4562),
    [sym_noreturn] = ACTIONS(4562),
    [sym_this] = ACTIONS(4562),
    [sym_abstract] = ACTIONS(4562),
    [sym_alias] = ACTIONS(4562),
    [sym_align] = ACTIONS(4562),
    [sym_auto] = ACTIONS(4562),
    [sym_catch] = ACTIONS(4562),
    [sym_class] = ACTIONS(4562),
    [sym_const] = ACTIONS(4562),
    [sym_debug] = ACTIONS(4562),
    [sym_deprecated] = ACTIONS(4562),
    [sym_else] = ACTIONS(4562),
    [sym_enum] = ACTIONS(4562),
    [sym_export] = ACTIONS(4562),
    [sym_extern] = ACTIONS(4562),
    [sym_final] = ACTIONS(4562),
    [sym_finally] = ACTIONS(4562),
    [sym_immutable] = ACTIONS(4562),
    [sym_import] = ACTIONS(4562),
    [sym_inout] = ACTIONS(4562),
    [sym_interface] = ACTIONS(4562),
    [sym_invariant] = ACTIONS(4562),
    [sym_mixin] = ACTIONS(4562),
    [sym_nothrow] = ACTIONS(4562),
    [sym_override] = ACTIONS(4562),
    [sym_package] = ACTIONS(4562),
    [sym_pragma] = ACTIONS(4562),
    [sym_private] = ACTIONS(4562),
    [sym_protected] = ACTIONS(4562),
    [sym_public] = ACTIONS(4562),
    [sym_pure] = ACTIONS(4562),
    [sym_ref] = ACTIONS(4562),
    [sym_return] = ACTIONS(4562),
    [sym_scope] = ACTIONS(4562),
    [sym_shared] = ACTIONS(4562),
    [sym_static] = ACTIONS(4562),
    [sym_struct] = ACTIONS(4562),
    [sym_synchronized] = ACTIONS(4562),
    [sym_template] = ACTIONS(4562),
    [sym_typeof] = ACTIONS(4562),
    [sym_union] = ACTIONS(4562),
    [sym_unittest] = ACTIONS(4562),
    [sym_version] = ACTIONS(4562),
    [sym_while] = ACTIONS(4562),
    [sym_gshared] = ACTIONS(4562),
    [sym_traits] = ACTIONS(4562),
    [sym_vector] = ACTIONS(4562),
    [sym_void] = ACTIONS(4562),
    [sym_directive] = ACTIONS(3),
  },
  [2483] = {
    [sym_identifier] = ACTIONS(4574),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4576),
    [anon_sym_SEMI] = ACTIONS(4576),
    [anon_sym_TILDE] = ACTIONS(4576),
    [anon_sym_AT] = ACTIONS(4576),
    [sym_bool] = ACTIONS(4574),
    [sym_byte] = ACTIONS(4574),
    [sym_ubyte] = ACTIONS(4574),
    [sym_char] = ACTIONS(4574),
    [sym_short] = ACTIONS(4574),
    [sym_ushort] = ACTIONS(4574),
    [sym_int] = ACTIONS(4574),
    [sym_uint] = ACTIONS(4574),
    [sym_long] = ACTIONS(4574),
    [sym_ulong] = ACTIONS(4574),
    [sym_cent] = ACTIONS(4574),
    [sym_ucent] = ACTIONS(4574),
    [sym_wchar] = ACTIONS(4574),
    [sym_dchar] = ACTIONS(4574),
    [sym_float] = ACTIONS(4574),
    [sym_double] = ACTIONS(4574),
    [sym_real] = ACTIONS(4574),
    [sym_ifloat] = ACTIONS(4574),
    [sym_idouble] = ACTIONS(4574),
    [sym_ireal] = ACTIONS(4574),
    [sym_cfloat] = ACTIONS(4574),
    [sym_cdouble] = ACTIONS(4574),
    [sym_creal] = ACTIONS(4574),
    [sym_size_t] = ACTIONS(4574),
    [sym_ptrdiff_t] = ACTIONS(4574),
    [sym_string] = ACTIONS(4574),
    [sym_cstring] = ACTIONS(4574),
    [sym_dstring] = ACTIONS(4574),
    [sym_wstring] = ACTIONS(4574),
    [sym_noreturn] = ACTIONS(4574),
    [sym_this] = ACTIONS(4574),
    [sym_abstract] = ACTIONS(4574),
    [sym_alias] = ACTIONS(4574),
    [sym_align] = ACTIONS(4574),
    [sym_auto] = ACTIONS(4574),
    [sym_catch] = ACTIONS(4574),
    [sym_class] = ACTIONS(4574),
    [sym_const] = ACTIONS(4574),
    [sym_debug] = ACTIONS(4574),
    [sym_deprecated] = ACTIONS(4574),
    [sym_else] = ACTIONS(4574),
    [sym_enum] = ACTIONS(4574),
    [sym_export] = ACTIONS(4574),
    [sym_extern] = ACTIONS(4574),
    [sym_final] = ACTIONS(4574),
    [sym_finally] = ACTIONS(4574),
    [sym_immutable] = ACTIONS(4574),
    [sym_import] = ACTIONS(4574),
    [sym_inout] = ACTIONS(4574),
    [sym_interface] = ACTIONS(4574),
    [sym_invariant] = ACTIONS(4574),
    [sym_mixin] = ACTIONS(4574),
    [sym_nothrow] = ACTIONS(4574),
    [sym_override] = ACTIONS(4574),
    [sym_package] = ACTIONS(4574),
    [sym_pragma] = ACTIONS(4574),
    [sym_private] = ACTIONS(4574),
    [sym_protected] = ACTIONS(4574),
    [sym_public] = ACTIONS(4574),
    [sym_pure] = ACTIONS(4574),
    [sym_ref] = ACTIONS(4574),
    [sym_return] = ACTIONS(4574),
    [sym_scope] = ACTIONS(4574),
    [sym_shared] = ACTIONS(4574),
    [sym_static] = ACTIONS(4574),
    [sym_struct] = ACTIONS(4574),
    [sym_synchronized] = ACTIONS(4574),
    [sym_template] = ACTIONS(4574),
    [sym_typeof] = ACTIONS(4574),
    [sym_union] = ACTIONS(4574),
    [sym_unittest] = ACTIONS(4574),
    [sym_version] = ACTIONS(4574),
    [sym_while] = ACTIONS(4574),
    [sym_gshared] = ACTIONS(4574),
    [sym_traits] = ACTIONS(4574),
    [sym_vector] = ACTIONS(4574),
    [sym_void] = ACTIONS(4574),
    [sym_directive] = ACTIONS(3),
  },
  [2484] = {
    [ts_builtin_sym_end] = ACTIONS(4706),
    [sym_identifier] = ACTIONS(4704),
    [sym_end_file] = ACTIONS(4704),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4706),
    [anon_sym_SEMI] = ACTIONS(4706),
    [anon_sym_TILDE] = ACTIONS(4706),
    [anon_sym_AT] = ACTIONS(4706),
    [sym_bool] = ACTIONS(4704),
    [sym_byte] = ACTIONS(4704),
    [sym_ubyte] = ACTIONS(4704),
    [sym_char] = ACTIONS(4704),
    [sym_short] = ACTIONS(4704),
    [sym_ushort] = ACTIONS(4704),
    [sym_int] = ACTIONS(4704),
    [sym_uint] = ACTIONS(4704),
    [sym_long] = ACTIONS(4704),
    [sym_ulong] = ACTIONS(4704),
    [sym_cent] = ACTIONS(4704),
    [sym_ucent] = ACTIONS(4704),
    [sym_wchar] = ACTIONS(4704),
    [sym_dchar] = ACTIONS(4704),
    [sym_float] = ACTIONS(4704),
    [sym_double] = ACTIONS(4704),
    [sym_real] = ACTIONS(4704),
    [sym_ifloat] = ACTIONS(4704),
    [sym_idouble] = ACTIONS(4704),
    [sym_ireal] = ACTIONS(4704),
    [sym_cfloat] = ACTIONS(4704),
    [sym_cdouble] = ACTIONS(4704),
    [sym_creal] = ACTIONS(4704),
    [sym_size_t] = ACTIONS(4704),
    [sym_ptrdiff_t] = ACTIONS(4704),
    [sym_string] = ACTIONS(4704),
    [sym_cstring] = ACTIONS(4704),
    [sym_dstring] = ACTIONS(4704),
    [sym_wstring] = ACTIONS(4704),
    [sym_noreturn] = ACTIONS(4704),
    [sym_this] = ACTIONS(4704),
    [sym_abstract] = ACTIONS(4704),
    [sym_alias] = ACTIONS(4704),
    [sym_align] = ACTIONS(4704),
    [sym_auto] = ACTIONS(4704),
    [sym_class] = ACTIONS(4704),
    [sym_const] = ACTIONS(4704),
    [sym_debug] = ACTIONS(4704),
    [sym_deprecated] = ACTIONS(4704),
    [sym_else] = ACTIONS(4704),
    [sym_enum] = ACTIONS(4704),
    [sym_export] = ACTIONS(4704),
    [sym_extern] = ACTIONS(4704),
    [sym_final] = ACTIONS(4704),
    [sym_immutable] = ACTIONS(4704),
    [sym_import] = ACTIONS(4704),
    [sym_inout] = ACTIONS(4704),
    [sym_interface] = ACTIONS(4704),
    [sym_invariant] = ACTIONS(4704),
    [sym_mixin] = ACTIONS(4704),
    [sym_nothrow] = ACTIONS(4704),
    [sym_override] = ACTIONS(4704),
    [sym_package] = ACTIONS(4704),
    [sym_pragma] = ACTIONS(4704),
    [sym_private] = ACTIONS(4704),
    [sym_protected] = ACTIONS(4704),
    [sym_public] = ACTIONS(4704),
    [sym_pure] = ACTIONS(4704),
    [sym_ref] = ACTIONS(4704),
    [sym_return] = ACTIONS(4704),
    [sym_scope] = ACTIONS(4704),
    [sym_shared] = ACTIONS(4704),
    [sym_static] = ACTIONS(4704),
    [sym_struct] = ACTIONS(4704),
    [sym_synchronized] = ACTIONS(4704),
    [sym_template] = ACTIONS(4704),
    [sym_typeof] = ACTIONS(4704),
    [sym_union] = ACTIONS(4704),
    [sym_unittest] = ACTIONS(4704),
    [sym_version] = ACTIONS(4704),
    [sym_while] = ACTIONS(4704),
    [sym_gshared] = ACTIONS(4704),
    [sym_traits] = ACTIONS(4704),
    [sym_vector] = ACTIONS(4704),
    [sym_void] = ACTIONS(4704),
    [sym_directive] = ACTIONS(3),
  },
  [2485] = {
    [ts_builtin_sym_end] = ACTIONS(4776),
    [sym_identifier] = ACTIONS(4774),
    [sym_end_file] = ACTIONS(4774),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4776),
    [anon_sym_SEMI] = ACTIONS(4776),
    [anon_sym_TILDE] = ACTIONS(4776),
    [anon_sym_AT] = ACTIONS(4776),
    [sym_bool] = ACTIONS(4774),
    [sym_byte] = ACTIONS(4774),
    [sym_ubyte] = ACTIONS(4774),
    [sym_char] = ACTIONS(4774),
    [sym_short] = ACTIONS(4774),
    [sym_ushort] = ACTIONS(4774),
    [sym_int] = ACTIONS(4774),
    [sym_uint] = ACTIONS(4774),
    [sym_long] = ACTIONS(4774),
    [sym_ulong] = ACTIONS(4774),
    [sym_cent] = ACTIONS(4774),
    [sym_ucent] = ACTIONS(4774),
    [sym_wchar] = ACTIONS(4774),
    [sym_dchar] = ACTIONS(4774),
    [sym_float] = ACTIONS(4774),
    [sym_double] = ACTIONS(4774),
    [sym_real] = ACTIONS(4774),
    [sym_ifloat] = ACTIONS(4774),
    [sym_idouble] = ACTIONS(4774),
    [sym_ireal] = ACTIONS(4774),
    [sym_cfloat] = ACTIONS(4774),
    [sym_cdouble] = ACTIONS(4774),
    [sym_creal] = ACTIONS(4774),
    [sym_size_t] = ACTIONS(4774),
    [sym_ptrdiff_t] = ACTIONS(4774),
    [sym_string] = ACTIONS(4774),
    [sym_cstring] = ACTIONS(4774),
    [sym_dstring] = ACTIONS(4774),
    [sym_wstring] = ACTIONS(4774),
    [sym_noreturn] = ACTIONS(4774),
    [sym_this] = ACTIONS(4774),
    [sym_abstract] = ACTIONS(4774),
    [sym_alias] = ACTIONS(4774),
    [sym_align] = ACTIONS(4774),
    [sym_auto] = ACTIONS(4774),
    [sym_class] = ACTIONS(4774),
    [sym_const] = ACTIONS(4774),
    [sym_debug] = ACTIONS(4774),
    [sym_deprecated] = ACTIONS(4774),
    [sym_else] = ACTIONS(4774),
    [sym_enum] = ACTIONS(4774),
    [sym_export] = ACTIONS(4774),
    [sym_extern] = ACTIONS(4774),
    [sym_final] = ACTIONS(4774),
    [sym_immutable] = ACTIONS(4774),
    [sym_import] = ACTIONS(4774),
    [sym_inout] = ACTIONS(4774),
    [sym_interface] = ACTIONS(4774),
    [sym_invariant] = ACTIONS(4774),
    [sym_mixin] = ACTIONS(4774),
    [sym_nothrow] = ACTIONS(4774),
    [sym_override] = ACTIONS(4774),
    [sym_package] = ACTIONS(4774),
    [sym_pragma] = ACTIONS(4774),
    [sym_private] = ACTIONS(4774),
    [sym_protected] = ACTIONS(4774),
    [sym_public] = ACTIONS(4774),
    [sym_pure] = ACTIONS(4774),
    [sym_ref] = ACTIONS(4774),
    [sym_return] = ACTIONS(4774),
    [sym_scope] = ACTIONS(4774),
    [sym_shared] = ACTIONS(4774),
    [sym_static] = ACTIONS(4774),
    [sym_struct] = ACTIONS(4774),
    [sym_synchronized] = ACTIONS(4774),
    [sym_template] = ACTIONS(4774),
    [sym_typeof] = ACTIONS(4774),
    [sym_union] = ACTIONS(4774),
    [sym_unittest] = ACTIONS(4774),
    [sym_version] = ACTIONS(4774),
    [sym_while] = ACTIONS(4774),
    [sym_gshared] = ACTIONS(4774),
    [sym_traits] = ACTIONS(4774),
    [sym_vector] = ACTIONS(4774),
    [sym_void] = ACTIONS(4774),
    [sym_directive] = ACTIONS(3),
  },
  [2486] = {
    [sym_identifier] = ACTIONS(4418),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4420),
    [anon_sym_SEMI] = ACTIONS(4420),
    [anon_sym_TILDE] = ACTIONS(4420),
    [anon_sym_AT] = ACTIONS(4420),
    [sym_bool] = ACTIONS(4418),
    [sym_byte] = ACTIONS(4418),
    [sym_ubyte] = ACTIONS(4418),
    [sym_char] = ACTIONS(4418),
    [sym_short] = ACTIONS(4418),
    [sym_ushort] = ACTIONS(4418),
    [sym_int] = ACTIONS(4418),
    [sym_uint] = ACTIONS(4418),
    [sym_long] = ACTIONS(4418),
    [sym_ulong] = ACTIONS(4418),
    [sym_cent] = ACTIONS(4418),
    [sym_ucent] = ACTIONS(4418),
    [sym_wchar] = ACTIONS(4418),
    [sym_dchar] = ACTIONS(4418),
    [sym_float] = ACTIONS(4418),
    [sym_double] = ACTIONS(4418),
    [sym_real] = ACTIONS(4418),
    [sym_ifloat] = ACTIONS(4418),
    [sym_idouble] = ACTIONS(4418),
    [sym_ireal] = ACTIONS(4418),
    [sym_cfloat] = ACTIONS(4418),
    [sym_cdouble] = ACTIONS(4418),
    [sym_creal] = ACTIONS(4418),
    [sym_size_t] = ACTIONS(4418),
    [sym_ptrdiff_t] = ACTIONS(4418),
    [sym_string] = ACTIONS(4418),
    [sym_cstring] = ACTIONS(4418),
    [sym_dstring] = ACTIONS(4418),
    [sym_wstring] = ACTIONS(4418),
    [sym_noreturn] = ACTIONS(4418),
    [sym_this] = ACTIONS(4418),
    [sym_abstract] = ACTIONS(4418),
    [sym_alias] = ACTIONS(4418),
    [sym_align] = ACTIONS(4418),
    [sym_auto] = ACTIONS(4418),
    [sym_catch] = ACTIONS(4418),
    [sym_class] = ACTIONS(4418),
    [sym_const] = ACTIONS(4418),
    [sym_debug] = ACTIONS(4418),
    [sym_deprecated] = ACTIONS(4418),
    [sym_else] = ACTIONS(4418),
    [sym_enum] = ACTIONS(4418),
    [sym_export] = ACTIONS(4418),
    [sym_extern] = ACTIONS(4418),
    [sym_final] = ACTIONS(4418),
    [sym_finally] = ACTIONS(4418),
    [sym_immutable] = ACTIONS(4418),
    [sym_import] = ACTIONS(4418),
    [sym_inout] = ACTIONS(4418),
    [sym_interface] = ACTIONS(4418),
    [sym_invariant] = ACTIONS(4418),
    [sym_mixin] = ACTIONS(4418),
    [sym_nothrow] = ACTIONS(4418),
    [sym_override] = ACTIONS(4418),
    [sym_package] = ACTIONS(4418),
    [sym_pragma] = ACTIONS(4418),
    [sym_private] = ACTIONS(4418),
    [sym_protected] = ACTIONS(4418),
    [sym_public] = ACTIONS(4418),
    [sym_pure] = ACTIONS(4418),
    [sym_ref] = ACTIONS(4418),
    [sym_return] = ACTIONS(4418),
    [sym_scope] = ACTIONS(4418),
    [sym_shared] = ACTIONS(4418),
    [sym_static] = ACTIONS(4418),
    [sym_struct] = ACTIONS(4418),
    [sym_synchronized] = ACTIONS(4418),
    [sym_template] = ACTIONS(4418),
    [sym_typeof] = ACTIONS(4418),
    [sym_union] = ACTIONS(4418),
    [sym_unittest] = ACTIONS(4418),
    [sym_version] = ACTIONS(4418),
    [sym_while] = ACTIONS(4418),
    [sym_gshared] = ACTIONS(4418),
    [sym_traits] = ACTIONS(4418),
    [sym_vector] = ACTIONS(4418),
    [sym_void] = ACTIONS(4418),
    [sym_directive] = ACTIONS(3),
  },
  [2487] = {
    [sym_identifier] = ACTIONS(4414),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4416),
    [anon_sym_SEMI] = ACTIONS(4416),
    [anon_sym_TILDE] = ACTIONS(4416),
    [anon_sym_AT] = ACTIONS(4416),
    [sym_bool] = ACTIONS(4414),
    [sym_byte] = ACTIONS(4414),
    [sym_ubyte] = ACTIONS(4414),
    [sym_char] = ACTIONS(4414),
    [sym_short] = ACTIONS(4414),
    [sym_ushort] = ACTIONS(4414),
    [sym_int] = ACTIONS(4414),
    [sym_uint] = ACTIONS(4414),
    [sym_long] = ACTIONS(4414),
    [sym_ulong] = ACTIONS(4414),
    [sym_cent] = ACTIONS(4414),
    [sym_ucent] = ACTIONS(4414),
    [sym_wchar] = ACTIONS(4414),
    [sym_dchar] = ACTIONS(4414),
    [sym_float] = ACTIONS(4414),
    [sym_double] = ACTIONS(4414),
    [sym_real] = ACTIONS(4414),
    [sym_ifloat] = ACTIONS(4414),
    [sym_idouble] = ACTIONS(4414),
    [sym_ireal] = ACTIONS(4414),
    [sym_cfloat] = ACTIONS(4414),
    [sym_cdouble] = ACTIONS(4414),
    [sym_creal] = ACTIONS(4414),
    [sym_size_t] = ACTIONS(4414),
    [sym_ptrdiff_t] = ACTIONS(4414),
    [sym_string] = ACTIONS(4414),
    [sym_cstring] = ACTIONS(4414),
    [sym_dstring] = ACTIONS(4414),
    [sym_wstring] = ACTIONS(4414),
    [sym_noreturn] = ACTIONS(4414),
    [sym_this] = ACTIONS(4414),
    [sym_abstract] = ACTIONS(4414),
    [sym_alias] = ACTIONS(4414),
    [sym_align] = ACTIONS(4414),
    [sym_auto] = ACTIONS(4414),
    [sym_catch] = ACTIONS(4414),
    [sym_class] = ACTIONS(4414),
    [sym_const] = ACTIONS(4414),
    [sym_debug] = ACTIONS(4414),
    [sym_deprecated] = ACTIONS(4414),
    [sym_else] = ACTIONS(4414),
    [sym_enum] = ACTIONS(4414),
    [sym_export] = ACTIONS(4414),
    [sym_extern] = ACTIONS(4414),
    [sym_final] = ACTIONS(4414),
    [sym_finally] = ACTIONS(4414),
    [sym_immutable] = ACTIONS(4414),
    [sym_import] = ACTIONS(4414),
    [sym_inout] = ACTIONS(4414),
    [sym_interface] = ACTIONS(4414),
    [sym_invariant] = ACTIONS(4414),
    [sym_mixin] = ACTIONS(4414),
    [sym_nothrow] = ACTIONS(4414),
    [sym_override] = ACTIONS(4414),
    [sym_package] = ACTIONS(4414),
    [sym_pragma] = ACTIONS(4414),
    [sym_private] = ACTIONS(4414),
    [sym_protected] = ACTIONS(4414),
    [sym_public] = ACTIONS(4414),
    [sym_pure] = ACTIONS(4414),
    [sym_ref] = ACTIONS(4414),
    [sym_return] = ACTIONS(4414),
    [sym_scope] = ACTIONS(4414),
    [sym_shared] = ACTIONS(4414),
    [sym_static] = ACTIONS(4414),
    [sym_struct] = ACTIONS(4414),
    [sym_synchronized] = ACTIONS(4414),
    [sym_template] = ACTIONS(4414),
    [sym_typeof] = ACTIONS(4414),
    [sym_union] = ACTIONS(4414),
    [sym_unittest] = ACTIONS(4414),
    [sym_version] = ACTIONS(4414),
    [sym_while] = ACTIONS(4414),
    [sym_gshared] = ACTIONS(4414),
    [sym_traits] = ACTIONS(4414),
    [sym_vector] = ACTIONS(4414),
    [sym_void] = ACTIONS(4414),
    [sym_directive] = ACTIONS(3),
  },
  [2488] = {
    [sym_identifier] = ACTIONS(4339),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4341),
    [anon_sym_SEMI] = ACTIONS(4341),
    [anon_sym_TILDE] = ACTIONS(4341),
    [anon_sym_AT] = ACTIONS(4341),
    [sym_bool] = ACTIONS(4339),
    [sym_byte] = ACTIONS(4339),
    [sym_ubyte] = ACTIONS(4339),
    [sym_char] = ACTIONS(4339),
    [sym_short] = ACTIONS(4339),
    [sym_ushort] = ACTIONS(4339),
    [sym_int] = ACTIONS(4339),
    [sym_uint] = ACTIONS(4339),
    [sym_long] = ACTIONS(4339),
    [sym_ulong] = ACTIONS(4339),
    [sym_cent] = ACTIONS(4339),
    [sym_ucent] = ACTIONS(4339),
    [sym_wchar] = ACTIONS(4339),
    [sym_dchar] = ACTIONS(4339),
    [sym_float] = ACTIONS(4339),
    [sym_double] = ACTIONS(4339),
    [sym_real] = ACTIONS(4339),
    [sym_ifloat] = ACTIONS(4339),
    [sym_idouble] = ACTIONS(4339),
    [sym_ireal] = ACTIONS(4339),
    [sym_cfloat] = ACTIONS(4339),
    [sym_cdouble] = ACTIONS(4339),
    [sym_creal] = ACTIONS(4339),
    [sym_size_t] = ACTIONS(4339),
    [sym_ptrdiff_t] = ACTIONS(4339),
    [sym_string] = ACTIONS(4339),
    [sym_cstring] = ACTIONS(4339),
    [sym_dstring] = ACTIONS(4339),
    [sym_wstring] = ACTIONS(4339),
    [sym_noreturn] = ACTIONS(4339),
    [sym_this] = ACTIONS(4339),
    [sym_abstract] = ACTIONS(4339),
    [sym_alias] = ACTIONS(4339),
    [sym_align] = ACTIONS(4339),
    [sym_auto] = ACTIONS(4339),
    [sym_catch] = ACTIONS(4339),
    [sym_class] = ACTIONS(4339),
    [sym_const] = ACTIONS(4339),
    [sym_debug] = ACTIONS(4339),
    [sym_deprecated] = ACTIONS(4339),
    [sym_else] = ACTIONS(4339),
    [sym_enum] = ACTIONS(4339),
    [sym_export] = ACTIONS(4339),
    [sym_extern] = ACTIONS(4339),
    [sym_final] = ACTIONS(4339),
    [sym_finally] = ACTIONS(4339),
    [sym_immutable] = ACTIONS(4339),
    [sym_import] = ACTIONS(4339),
    [sym_inout] = ACTIONS(4339),
    [sym_interface] = ACTIONS(4339),
    [sym_invariant] = ACTIONS(4339),
    [sym_mixin] = ACTIONS(4339),
    [sym_nothrow] = ACTIONS(4339),
    [sym_override] = ACTIONS(4339),
    [sym_package] = ACTIONS(4339),
    [sym_pragma] = ACTIONS(4339),
    [sym_private] = ACTIONS(4339),
    [sym_protected] = ACTIONS(4339),
    [sym_public] = ACTIONS(4339),
    [sym_pure] = ACTIONS(4339),
    [sym_ref] = ACTIONS(4339),
    [sym_return] = ACTIONS(4339),
    [sym_scope] = ACTIONS(4339),
    [sym_shared] = ACTIONS(4339),
    [sym_static] = ACTIONS(4339),
    [sym_struct] = ACTIONS(4339),
    [sym_synchronized] = ACTIONS(4339),
    [sym_template] = ACTIONS(4339),
    [sym_typeof] = ACTIONS(4339),
    [sym_union] = ACTIONS(4339),
    [sym_unittest] = ACTIONS(4339),
    [sym_version] = ACTIONS(4339),
    [sym_while] = ACTIONS(4339),
    [sym_gshared] = ACTIONS(4339),
    [sym_traits] = ACTIONS(4339),
    [sym_vector] = ACTIONS(4339),
    [sym_void] = ACTIONS(4339),
    [sym_directive] = ACTIONS(3),
  },
  [2489] = {
    [sym_identifier] = ACTIONS(4327),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4329),
    [anon_sym_SEMI] = ACTIONS(4329),
    [anon_sym_TILDE] = ACTIONS(4329),
    [anon_sym_AT] = ACTIONS(4329),
    [sym_bool] = ACTIONS(4327),
    [sym_byte] = ACTIONS(4327),
    [sym_ubyte] = ACTIONS(4327),
    [sym_char] = ACTIONS(4327),
    [sym_short] = ACTIONS(4327),
    [sym_ushort] = ACTIONS(4327),
    [sym_int] = ACTIONS(4327),
    [sym_uint] = ACTIONS(4327),
    [sym_long] = ACTIONS(4327),
    [sym_ulong] = ACTIONS(4327),
    [sym_cent] = ACTIONS(4327),
    [sym_ucent] = ACTIONS(4327),
    [sym_wchar] = ACTIONS(4327),
    [sym_dchar] = ACTIONS(4327),
    [sym_float] = ACTIONS(4327),
    [sym_double] = ACTIONS(4327),
    [sym_real] = ACTIONS(4327),
    [sym_ifloat] = ACTIONS(4327),
    [sym_idouble] = ACTIONS(4327),
    [sym_ireal] = ACTIONS(4327),
    [sym_cfloat] = ACTIONS(4327),
    [sym_cdouble] = ACTIONS(4327),
    [sym_creal] = ACTIONS(4327),
    [sym_size_t] = ACTIONS(4327),
    [sym_ptrdiff_t] = ACTIONS(4327),
    [sym_string] = ACTIONS(4327),
    [sym_cstring] = ACTIONS(4327),
    [sym_dstring] = ACTIONS(4327),
    [sym_wstring] = ACTIONS(4327),
    [sym_noreturn] = ACTIONS(4327),
    [sym_this] = ACTIONS(4327),
    [sym_abstract] = ACTIONS(4327),
    [sym_alias] = ACTIONS(4327),
    [sym_align] = ACTIONS(4327),
    [sym_auto] = ACTIONS(4327),
    [sym_catch] = ACTIONS(4327),
    [sym_class] = ACTIONS(4327),
    [sym_const] = ACTIONS(4327),
    [sym_debug] = ACTIONS(4327),
    [sym_deprecated] = ACTIONS(4327),
    [sym_else] = ACTIONS(4327),
    [sym_enum] = ACTIONS(4327),
    [sym_export] = ACTIONS(4327),
    [sym_extern] = ACTIONS(4327),
    [sym_final] = ACTIONS(4327),
    [sym_finally] = ACTIONS(4327),
    [sym_immutable] = ACTIONS(4327),
    [sym_import] = ACTIONS(4327),
    [sym_inout] = ACTIONS(4327),
    [sym_interface] = ACTIONS(4327),
    [sym_invariant] = ACTIONS(4327),
    [sym_mixin] = ACTIONS(4327),
    [sym_nothrow] = ACTIONS(4327),
    [sym_override] = ACTIONS(4327),
    [sym_package] = ACTIONS(4327),
    [sym_pragma] = ACTIONS(4327),
    [sym_private] = ACTIONS(4327),
    [sym_protected] = ACTIONS(4327),
    [sym_public] = ACTIONS(4327),
    [sym_pure] = ACTIONS(4327),
    [sym_ref] = ACTIONS(4327),
    [sym_return] = ACTIONS(4327),
    [sym_scope] = ACTIONS(4327),
    [sym_shared] = ACTIONS(4327),
    [sym_static] = ACTIONS(4327),
    [sym_struct] = ACTIONS(4327),
    [sym_synchronized] = ACTIONS(4327),
    [sym_template] = ACTIONS(4327),
    [sym_typeof] = ACTIONS(4327),
    [sym_union] = ACTIONS(4327),
    [sym_unittest] = ACTIONS(4327),
    [sym_version] = ACTIONS(4327),
    [sym_while] = ACTIONS(4327),
    [sym_gshared] = ACTIONS(4327),
    [sym_traits] = ACTIONS(4327),
    [sym_vector] = ACTIONS(4327),
    [sym_void] = ACTIONS(4327),
    [sym_directive] = ACTIONS(3),
  },
  [2490] = {
    [sym_identifier] = ACTIONS(4313),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4315),
    [anon_sym_SEMI] = ACTIONS(4315),
    [anon_sym_TILDE] = ACTIONS(4315),
    [anon_sym_AT] = ACTIONS(4315),
    [sym_bool] = ACTIONS(4313),
    [sym_byte] = ACTIONS(4313),
    [sym_ubyte] = ACTIONS(4313),
    [sym_char] = ACTIONS(4313),
    [sym_short] = ACTIONS(4313),
    [sym_ushort] = ACTIONS(4313),
    [sym_int] = ACTIONS(4313),
    [sym_uint] = ACTIONS(4313),
    [sym_long] = ACTIONS(4313),
    [sym_ulong] = ACTIONS(4313),
    [sym_cent] = ACTIONS(4313),
    [sym_ucent] = ACTIONS(4313),
    [sym_wchar] = ACTIONS(4313),
    [sym_dchar] = ACTIONS(4313),
    [sym_float] = ACTIONS(4313),
    [sym_double] = ACTIONS(4313),
    [sym_real] = ACTIONS(4313),
    [sym_ifloat] = ACTIONS(4313),
    [sym_idouble] = ACTIONS(4313),
    [sym_ireal] = ACTIONS(4313),
    [sym_cfloat] = ACTIONS(4313),
    [sym_cdouble] = ACTIONS(4313),
    [sym_creal] = ACTIONS(4313),
    [sym_size_t] = ACTIONS(4313),
    [sym_ptrdiff_t] = ACTIONS(4313),
    [sym_string] = ACTIONS(4313),
    [sym_cstring] = ACTIONS(4313),
    [sym_dstring] = ACTIONS(4313),
    [sym_wstring] = ACTIONS(4313),
    [sym_noreturn] = ACTIONS(4313),
    [sym_this] = ACTIONS(4313),
    [sym_abstract] = ACTIONS(4313),
    [sym_alias] = ACTIONS(4313),
    [sym_align] = ACTIONS(4313),
    [sym_auto] = ACTIONS(4313),
    [sym_catch] = ACTIONS(4313),
    [sym_class] = ACTIONS(4313),
    [sym_const] = ACTIONS(4313),
    [sym_debug] = ACTIONS(4313),
    [sym_deprecated] = ACTIONS(4313),
    [sym_else] = ACTIONS(4313),
    [sym_enum] = ACTIONS(4313),
    [sym_export] = ACTIONS(4313),
    [sym_extern] = ACTIONS(4313),
    [sym_final] = ACTIONS(4313),
    [sym_finally] = ACTIONS(4313),
    [sym_immutable] = ACTIONS(4313),
    [sym_import] = ACTIONS(4313),
    [sym_inout] = ACTIONS(4313),
    [sym_interface] = ACTIONS(4313),
    [sym_invariant] = ACTIONS(4313),
    [sym_mixin] = ACTIONS(4313),
    [sym_nothrow] = ACTIONS(4313),
    [sym_override] = ACTIONS(4313),
    [sym_package] = ACTIONS(4313),
    [sym_pragma] = ACTIONS(4313),
    [sym_private] = ACTIONS(4313),
    [sym_protected] = ACTIONS(4313),
    [sym_public] = ACTIONS(4313),
    [sym_pure] = ACTIONS(4313),
    [sym_ref] = ACTIONS(4313),
    [sym_return] = ACTIONS(4313),
    [sym_scope] = ACTIONS(4313),
    [sym_shared] = ACTIONS(4313),
    [sym_static] = ACTIONS(4313),
    [sym_struct] = ACTIONS(4313),
    [sym_synchronized] = ACTIONS(4313),
    [sym_template] = ACTIONS(4313),
    [sym_typeof] = ACTIONS(4313),
    [sym_union] = ACTIONS(4313),
    [sym_unittest] = ACTIONS(4313),
    [sym_version] = ACTIONS(4313),
    [sym_while] = ACTIONS(4313),
    [sym_gshared] = ACTIONS(4313),
    [sym_traits] = ACTIONS(4313),
    [sym_vector] = ACTIONS(4313),
    [sym_void] = ACTIONS(4313),
    [sym_directive] = ACTIONS(3),
  },
  [2491] = {
    [ts_builtin_sym_end] = ACTIONS(4824),
    [sym_identifier] = ACTIONS(4822),
    [sym_end_file] = ACTIONS(4822),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4824),
    [anon_sym_SEMI] = ACTIONS(4824),
    [anon_sym_TILDE] = ACTIONS(4824),
    [anon_sym_AT] = ACTIONS(4824),
    [sym_bool] = ACTIONS(4822),
    [sym_byte] = ACTIONS(4822),
    [sym_ubyte] = ACTIONS(4822),
    [sym_char] = ACTIONS(4822),
    [sym_short] = ACTIONS(4822),
    [sym_ushort] = ACTIONS(4822),
    [sym_int] = ACTIONS(4822),
    [sym_uint] = ACTIONS(4822),
    [sym_long] = ACTIONS(4822),
    [sym_ulong] = ACTIONS(4822),
    [sym_cent] = ACTIONS(4822),
    [sym_ucent] = ACTIONS(4822),
    [sym_wchar] = ACTIONS(4822),
    [sym_dchar] = ACTIONS(4822),
    [sym_float] = ACTIONS(4822),
    [sym_double] = ACTIONS(4822),
    [sym_real] = ACTIONS(4822),
    [sym_ifloat] = ACTIONS(4822),
    [sym_idouble] = ACTIONS(4822),
    [sym_ireal] = ACTIONS(4822),
    [sym_cfloat] = ACTIONS(4822),
    [sym_cdouble] = ACTIONS(4822),
    [sym_creal] = ACTIONS(4822),
    [sym_size_t] = ACTIONS(4822),
    [sym_ptrdiff_t] = ACTIONS(4822),
    [sym_string] = ACTIONS(4822),
    [sym_cstring] = ACTIONS(4822),
    [sym_dstring] = ACTIONS(4822),
    [sym_wstring] = ACTIONS(4822),
    [sym_noreturn] = ACTIONS(4822),
    [sym_this] = ACTIONS(4822),
    [sym_abstract] = ACTIONS(4822),
    [sym_alias] = ACTIONS(4822),
    [sym_align] = ACTIONS(4822),
    [sym_auto] = ACTIONS(4822),
    [sym_class] = ACTIONS(4822),
    [sym_const] = ACTIONS(4822),
    [sym_debug] = ACTIONS(4822),
    [sym_deprecated] = ACTIONS(4822),
    [sym_else] = ACTIONS(4822),
    [sym_enum] = ACTIONS(4822),
    [sym_export] = ACTIONS(4822),
    [sym_extern] = ACTIONS(4822),
    [sym_final] = ACTIONS(4822),
    [sym_immutable] = ACTIONS(4822),
    [sym_import] = ACTIONS(4822),
    [sym_inout] = ACTIONS(4822),
    [sym_interface] = ACTIONS(4822),
    [sym_invariant] = ACTIONS(4822),
    [sym_mixin] = ACTIONS(4822),
    [sym_nothrow] = ACTIONS(4822),
    [sym_override] = ACTIONS(4822),
    [sym_package] = ACTIONS(4822),
    [sym_pragma] = ACTIONS(4822),
    [sym_private] = ACTIONS(4822),
    [sym_protected] = ACTIONS(4822),
    [sym_public] = ACTIONS(4822),
    [sym_pure] = ACTIONS(4822),
    [sym_ref] = ACTIONS(4822),
    [sym_return] = ACTIONS(4822),
    [sym_scope] = ACTIONS(4822),
    [sym_shared] = ACTIONS(4822),
    [sym_static] = ACTIONS(4822),
    [sym_struct] = ACTIONS(4822),
    [sym_synchronized] = ACTIONS(4822),
    [sym_template] = ACTIONS(4822),
    [sym_typeof] = ACTIONS(4822),
    [sym_union] = ACTIONS(4822),
    [sym_unittest] = ACTIONS(4822),
    [sym_version] = ACTIONS(4822),
    [sym_while] = ACTIONS(4822),
    [sym_gshared] = ACTIONS(4822),
    [sym_traits] = ACTIONS(4822),
    [sym_vector] = ACTIONS(4822),
    [sym_void] = ACTIONS(4822),
    [sym_directive] = ACTIONS(3),
  },
  [2492] = {
    [sym_identifier] = ACTIONS(4293),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4295),
    [anon_sym_SEMI] = ACTIONS(4295),
    [anon_sym_TILDE] = ACTIONS(4295),
    [anon_sym_AT] = ACTIONS(4295),
    [sym_bool] = ACTIONS(4293),
    [sym_byte] = ACTIONS(4293),
    [sym_ubyte] = ACTIONS(4293),
    [sym_char] = ACTIONS(4293),
    [sym_short] = ACTIONS(4293),
    [sym_ushort] = ACTIONS(4293),
    [sym_int] = ACTIONS(4293),
    [sym_uint] = ACTIONS(4293),
    [sym_long] = ACTIONS(4293),
    [sym_ulong] = ACTIONS(4293),
    [sym_cent] = ACTIONS(4293),
    [sym_ucent] = ACTIONS(4293),
    [sym_wchar] = ACTIONS(4293),
    [sym_dchar] = ACTIONS(4293),
    [sym_float] = ACTIONS(4293),
    [sym_double] = ACTIONS(4293),
    [sym_real] = ACTIONS(4293),
    [sym_ifloat] = ACTIONS(4293),
    [sym_idouble] = ACTIONS(4293),
    [sym_ireal] = ACTIONS(4293),
    [sym_cfloat] = ACTIONS(4293),
    [sym_cdouble] = ACTIONS(4293),
    [sym_creal] = ACTIONS(4293),
    [sym_size_t] = ACTIONS(4293),
    [sym_ptrdiff_t] = ACTIONS(4293),
    [sym_string] = ACTIONS(4293),
    [sym_cstring] = ACTIONS(4293),
    [sym_dstring] = ACTIONS(4293),
    [sym_wstring] = ACTIONS(4293),
    [sym_noreturn] = ACTIONS(4293),
    [sym_this] = ACTIONS(4293),
    [sym_abstract] = ACTIONS(4293),
    [sym_alias] = ACTIONS(4293),
    [sym_align] = ACTIONS(4293),
    [sym_auto] = ACTIONS(4293),
    [sym_catch] = ACTIONS(4293),
    [sym_class] = ACTIONS(4293),
    [sym_const] = ACTIONS(4293),
    [sym_debug] = ACTIONS(4293),
    [sym_deprecated] = ACTIONS(4293),
    [sym_else] = ACTIONS(4293),
    [sym_enum] = ACTIONS(4293),
    [sym_export] = ACTIONS(4293),
    [sym_extern] = ACTIONS(4293),
    [sym_final] = ACTIONS(4293),
    [sym_finally] = ACTIONS(4293),
    [sym_immutable] = ACTIONS(4293),
    [sym_import] = ACTIONS(4293),
    [sym_inout] = ACTIONS(4293),
    [sym_interface] = ACTIONS(4293),
    [sym_invariant] = ACTIONS(4293),
    [sym_mixin] = ACTIONS(4293),
    [sym_nothrow] = ACTIONS(4293),
    [sym_override] = ACTIONS(4293),
    [sym_package] = ACTIONS(4293),
    [sym_pragma] = ACTIONS(4293),
    [sym_private] = ACTIONS(4293),
    [sym_protected] = ACTIONS(4293),
    [sym_public] = ACTIONS(4293),
    [sym_pure] = ACTIONS(4293),
    [sym_ref] = ACTIONS(4293),
    [sym_return] = ACTIONS(4293),
    [sym_scope] = ACTIONS(4293),
    [sym_shared] = ACTIONS(4293),
    [sym_static] = ACTIONS(4293),
    [sym_struct] = ACTIONS(4293),
    [sym_synchronized] = ACTIONS(4293),
    [sym_template] = ACTIONS(4293),
    [sym_typeof] = ACTIONS(4293),
    [sym_union] = ACTIONS(4293),
    [sym_unittest] = ACTIONS(4293),
    [sym_version] = ACTIONS(4293),
    [sym_while] = ACTIONS(4293),
    [sym_gshared] = ACTIONS(4293),
    [sym_traits] = ACTIONS(4293),
    [sym_vector] = ACTIONS(4293),
    [sym_void] = ACTIONS(4293),
    [sym_directive] = ACTIONS(3),
  },
  [2493] = {
    [ts_builtin_sym_end] = ACTIONS(4820),
    [sym_identifier] = ACTIONS(4818),
    [sym_end_file] = ACTIONS(4818),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4820),
    [anon_sym_SEMI] = ACTIONS(4820),
    [anon_sym_TILDE] = ACTIONS(4820),
    [anon_sym_AT] = ACTIONS(4820),
    [sym_bool] = ACTIONS(4818),
    [sym_byte] = ACTIONS(4818),
    [sym_ubyte] = ACTIONS(4818),
    [sym_char] = ACTIONS(4818),
    [sym_short] = ACTIONS(4818),
    [sym_ushort] = ACTIONS(4818),
    [sym_int] = ACTIONS(4818),
    [sym_uint] = ACTIONS(4818),
    [sym_long] = ACTIONS(4818),
    [sym_ulong] = ACTIONS(4818),
    [sym_cent] = ACTIONS(4818),
    [sym_ucent] = ACTIONS(4818),
    [sym_wchar] = ACTIONS(4818),
    [sym_dchar] = ACTIONS(4818),
    [sym_float] = ACTIONS(4818),
    [sym_double] = ACTIONS(4818),
    [sym_real] = ACTIONS(4818),
    [sym_ifloat] = ACTIONS(4818),
    [sym_idouble] = ACTIONS(4818),
    [sym_ireal] = ACTIONS(4818),
    [sym_cfloat] = ACTIONS(4818),
    [sym_cdouble] = ACTIONS(4818),
    [sym_creal] = ACTIONS(4818),
    [sym_size_t] = ACTIONS(4818),
    [sym_ptrdiff_t] = ACTIONS(4818),
    [sym_string] = ACTIONS(4818),
    [sym_cstring] = ACTIONS(4818),
    [sym_dstring] = ACTIONS(4818),
    [sym_wstring] = ACTIONS(4818),
    [sym_noreturn] = ACTIONS(4818),
    [sym_this] = ACTIONS(4818),
    [sym_abstract] = ACTIONS(4818),
    [sym_alias] = ACTIONS(4818),
    [sym_align] = ACTIONS(4818),
    [sym_auto] = ACTIONS(4818),
    [sym_class] = ACTIONS(4818),
    [sym_const] = ACTIONS(4818),
    [sym_debug] = ACTIONS(4818),
    [sym_deprecated] = ACTIONS(4818),
    [sym_else] = ACTIONS(4818),
    [sym_enum] = ACTIONS(4818),
    [sym_export] = ACTIONS(4818),
    [sym_extern] = ACTIONS(4818),
    [sym_final] = ACTIONS(4818),
    [sym_immutable] = ACTIONS(4818),
    [sym_import] = ACTIONS(4818),
    [sym_inout] = ACTIONS(4818),
    [sym_interface] = ACTIONS(4818),
    [sym_invariant] = ACTIONS(4818),
    [sym_mixin] = ACTIONS(4818),
    [sym_nothrow] = ACTIONS(4818),
    [sym_override] = ACTIONS(4818),
    [sym_package] = ACTIONS(4818),
    [sym_pragma] = ACTIONS(4818),
    [sym_private] = ACTIONS(4818),
    [sym_protected] = ACTIONS(4818),
    [sym_public] = ACTIONS(4818),
    [sym_pure] = ACTIONS(4818),
    [sym_ref] = ACTIONS(4818),
    [sym_return] = ACTIONS(4818),
    [sym_scope] = ACTIONS(4818),
    [sym_shared] = ACTIONS(4818),
    [sym_static] = ACTIONS(4818),
    [sym_struct] = ACTIONS(4818),
    [sym_synchronized] = ACTIONS(4818),
    [sym_template] = ACTIONS(4818),
    [sym_typeof] = ACTIONS(4818),
    [sym_union] = ACTIONS(4818),
    [sym_unittest] = ACTIONS(4818),
    [sym_version] = ACTIONS(4818),
    [sym_while] = ACTIONS(4818),
    [sym_gshared] = ACTIONS(4818),
    [sym_traits] = ACTIONS(4818),
    [sym_vector] = ACTIONS(4818),
    [sym_void] = ACTIONS(4818),
    [sym_directive] = ACTIONS(3),
  },
  [2494] = {
    [ts_builtin_sym_end] = ACTIONS(5046),
    [sym_identifier] = ACTIONS(5044),
    [sym_end_file] = ACTIONS(5044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5046),
    [anon_sym_SEMI] = ACTIONS(5046),
    [anon_sym_TILDE] = ACTIONS(5046),
    [anon_sym_AT] = ACTIONS(5046),
    [sym_bool] = ACTIONS(5044),
    [sym_byte] = ACTIONS(5044),
    [sym_ubyte] = ACTIONS(5044),
    [sym_char] = ACTIONS(5044),
    [sym_short] = ACTIONS(5044),
    [sym_ushort] = ACTIONS(5044),
    [sym_int] = ACTIONS(5044),
    [sym_uint] = ACTIONS(5044),
    [sym_long] = ACTIONS(5044),
    [sym_ulong] = ACTIONS(5044),
    [sym_cent] = ACTIONS(5044),
    [sym_ucent] = ACTIONS(5044),
    [sym_wchar] = ACTIONS(5044),
    [sym_dchar] = ACTIONS(5044),
    [sym_float] = ACTIONS(5044),
    [sym_double] = ACTIONS(5044),
    [sym_real] = ACTIONS(5044),
    [sym_ifloat] = ACTIONS(5044),
    [sym_idouble] = ACTIONS(5044),
    [sym_ireal] = ACTIONS(5044),
    [sym_cfloat] = ACTIONS(5044),
    [sym_cdouble] = ACTIONS(5044),
    [sym_creal] = ACTIONS(5044),
    [sym_size_t] = ACTIONS(5044),
    [sym_ptrdiff_t] = ACTIONS(5044),
    [sym_string] = ACTIONS(5044),
    [sym_cstring] = ACTIONS(5044),
    [sym_dstring] = ACTIONS(5044),
    [sym_wstring] = ACTIONS(5044),
    [sym_noreturn] = ACTIONS(5044),
    [sym_this] = ACTIONS(5044),
    [sym_abstract] = ACTIONS(5044),
    [sym_alias] = ACTIONS(5044),
    [sym_align] = ACTIONS(5044),
    [sym_auto] = ACTIONS(5044),
    [sym_class] = ACTIONS(5044),
    [sym_const] = ACTIONS(5044),
    [sym_debug] = ACTIONS(5044),
    [sym_deprecated] = ACTIONS(5044),
    [sym_else] = ACTIONS(5044),
    [sym_enum] = ACTIONS(5044),
    [sym_export] = ACTIONS(5044),
    [sym_extern] = ACTIONS(5044),
    [sym_final] = ACTIONS(5044),
    [sym_immutable] = ACTIONS(5044),
    [sym_import] = ACTIONS(5044),
    [sym_inout] = ACTIONS(5044),
    [sym_interface] = ACTIONS(5044),
    [sym_invariant] = ACTIONS(5044),
    [sym_mixin] = ACTIONS(5044),
    [sym_nothrow] = ACTIONS(5044),
    [sym_override] = ACTIONS(5044),
    [sym_package] = ACTIONS(5044),
    [sym_pragma] = ACTIONS(5044),
    [sym_private] = ACTIONS(5044),
    [sym_protected] = ACTIONS(5044),
    [sym_public] = ACTIONS(5044),
    [sym_pure] = ACTIONS(5044),
    [sym_ref] = ACTIONS(5044),
    [sym_return] = ACTIONS(5044),
    [sym_scope] = ACTIONS(5044),
    [sym_shared] = ACTIONS(5044),
    [sym_static] = ACTIONS(5044),
    [sym_struct] = ACTIONS(5044),
    [sym_synchronized] = ACTIONS(5044),
    [sym_template] = ACTIONS(5044),
    [sym_typeof] = ACTIONS(5044),
    [sym_union] = ACTIONS(5044),
    [sym_unittest] = ACTIONS(5044),
    [sym_version] = ACTIONS(5044),
    [sym_while] = ACTIONS(5044),
    [sym_gshared] = ACTIONS(5044),
    [sym_traits] = ACTIONS(5044),
    [sym_vector] = ACTIONS(5044),
    [sym_void] = ACTIONS(5044),
    [sym_directive] = ACTIONS(3),
  },
  [2495] = {
    [ts_builtin_sym_end] = ACTIONS(2804),
    [sym_identifier] = ACTIONS(2806),
    [sym_end_file] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2804),
    [anon_sym_AT] = ACTIONS(2804),
    [sym_bool] = ACTIONS(2806),
    [sym_byte] = ACTIONS(2806),
    [sym_ubyte] = ACTIONS(2806),
    [sym_char] = ACTIONS(2806),
    [sym_short] = ACTIONS(2806),
    [sym_ushort] = ACTIONS(2806),
    [sym_int] = ACTIONS(2806),
    [sym_uint] = ACTIONS(2806),
    [sym_long] = ACTIONS(2806),
    [sym_ulong] = ACTIONS(2806),
    [sym_cent] = ACTIONS(2806),
    [sym_ucent] = ACTIONS(2806),
    [sym_wchar] = ACTIONS(2806),
    [sym_dchar] = ACTIONS(2806),
    [sym_float] = ACTIONS(2806),
    [sym_double] = ACTIONS(2806),
    [sym_real] = ACTIONS(2806),
    [sym_ifloat] = ACTIONS(2806),
    [sym_idouble] = ACTIONS(2806),
    [sym_ireal] = ACTIONS(2806),
    [sym_cfloat] = ACTIONS(2806),
    [sym_cdouble] = ACTIONS(2806),
    [sym_creal] = ACTIONS(2806),
    [sym_size_t] = ACTIONS(2806),
    [sym_ptrdiff_t] = ACTIONS(2806),
    [sym_string] = ACTIONS(2806),
    [sym_cstring] = ACTIONS(2806),
    [sym_dstring] = ACTIONS(2806),
    [sym_wstring] = ACTIONS(2806),
    [sym_noreturn] = ACTIONS(2806),
    [sym_this] = ACTIONS(2806),
    [sym_abstract] = ACTIONS(2806),
    [sym_alias] = ACTIONS(2806),
    [sym_align] = ACTIONS(2806),
    [sym_auto] = ACTIONS(2806),
    [sym_class] = ACTIONS(2806),
    [sym_const] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(2806),
    [sym_export] = ACTIONS(2806),
    [sym_extern] = ACTIONS(2806),
    [sym_final] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(2806),
    [sym_import] = ACTIONS(2806),
    [sym_inout] = ACTIONS(2806),
    [sym_interface] = ACTIONS(2806),
    [sym_invariant] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(2806),
    [sym_override] = ACTIONS(2806),
    [sym_package] = ACTIONS(2806),
    [sym_pragma] = ACTIONS(2806),
    [sym_private] = ACTIONS(2806),
    [sym_protected] = ACTIONS(2806),
    [sym_public] = ACTIONS(2806),
    [sym_pure] = ACTIONS(2806),
    [sym_ref] = ACTIONS(2806),
    [sym_return] = ACTIONS(2806),
    [sym_scope] = ACTIONS(2806),
    [sym_shared] = ACTIONS(2806),
    [sym_static] = ACTIONS(2806),
    [sym_struct] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(2806),
    [sym_template] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(2806),
    [sym_union] = ACTIONS(2806),
    [sym_unittest] = ACTIONS(2806),
    [sym_version] = ACTIONS(2806),
    [sym_while] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(2806),
    [sym_traits] = ACTIONS(2806),
    [sym_vector] = ACTIONS(2806),
    [sym_void] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
  },
  [2496] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_finally] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
  },
  [2497] = {
    [ts_builtin_sym_end] = ACTIONS(4600),
    [sym_identifier] = ACTIONS(4598),
    [sym_end_file] = ACTIONS(4598),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4600),
    [anon_sym_SEMI] = ACTIONS(4600),
    [anon_sym_TILDE] = ACTIONS(4600),
    [anon_sym_AT] = ACTIONS(4600),
    [sym_bool] = ACTIONS(4598),
    [sym_byte] = ACTIONS(4598),
    [sym_ubyte] = ACTIONS(4598),
    [sym_char] = ACTIONS(4598),
    [sym_short] = ACTIONS(4598),
    [sym_ushort] = ACTIONS(4598),
    [sym_int] = ACTIONS(4598),
    [sym_uint] = ACTIONS(4598),
    [sym_long] = ACTIONS(4598),
    [sym_ulong] = ACTIONS(4598),
    [sym_cent] = ACTIONS(4598),
    [sym_ucent] = ACTIONS(4598),
    [sym_wchar] = ACTIONS(4598),
    [sym_dchar] = ACTIONS(4598),
    [sym_float] = ACTIONS(4598),
    [sym_double] = ACTIONS(4598),
    [sym_real] = ACTIONS(4598),
    [sym_ifloat] = ACTIONS(4598),
    [sym_idouble] = ACTIONS(4598),
    [sym_ireal] = ACTIONS(4598),
    [sym_cfloat] = ACTIONS(4598),
    [sym_cdouble] = ACTIONS(4598),
    [sym_creal] = ACTIONS(4598),
    [sym_size_t] = ACTIONS(4598),
    [sym_ptrdiff_t] = ACTIONS(4598),
    [sym_string] = ACTIONS(4598),
    [sym_cstring] = ACTIONS(4598),
    [sym_dstring] = ACTIONS(4598),
    [sym_wstring] = ACTIONS(4598),
    [sym_noreturn] = ACTIONS(4598),
    [sym_this] = ACTIONS(4598),
    [sym_abstract] = ACTIONS(4598),
    [sym_alias] = ACTIONS(4598),
    [sym_align] = ACTIONS(4598),
    [sym_auto] = ACTIONS(4598),
    [sym_class] = ACTIONS(4598),
    [sym_const] = ACTIONS(4598),
    [sym_debug] = ACTIONS(4598),
    [sym_deprecated] = ACTIONS(4598),
    [sym_else] = ACTIONS(4598),
    [sym_enum] = ACTIONS(4598),
    [sym_export] = ACTIONS(4598),
    [sym_extern] = ACTIONS(4598),
    [sym_final] = ACTIONS(4598),
    [sym_immutable] = ACTIONS(4598),
    [sym_import] = ACTIONS(4598),
    [sym_inout] = ACTIONS(4598),
    [sym_interface] = ACTIONS(4598),
    [sym_invariant] = ACTIONS(4598),
    [sym_mixin] = ACTIONS(4598),
    [sym_nothrow] = ACTIONS(4598),
    [sym_override] = ACTIONS(4598),
    [sym_package] = ACTIONS(4598),
    [sym_pragma] = ACTIONS(4598),
    [sym_private] = ACTIONS(4598),
    [sym_protected] = ACTIONS(4598),
    [sym_public] = ACTIONS(4598),
    [sym_pure] = ACTIONS(4598),
    [sym_ref] = ACTIONS(4598),
    [sym_return] = ACTIONS(4598),
    [sym_scope] = ACTIONS(4598),
    [sym_shared] = ACTIONS(4598),
    [sym_static] = ACTIONS(4598),
    [sym_struct] = ACTIONS(4598),
    [sym_synchronized] = ACTIONS(4598),
    [sym_template] = ACTIONS(4598),
    [sym_typeof] = ACTIONS(4598),
    [sym_union] = ACTIONS(4598),
    [sym_unittest] = ACTIONS(4598),
    [sym_version] = ACTIONS(4598),
    [sym_while] = ACTIONS(4598),
    [sym_gshared] = ACTIONS(4598),
    [sym_traits] = ACTIONS(4598),
    [sym_vector] = ACTIONS(4598),
    [sym_void] = ACTIONS(4598),
    [sym_directive] = ACTIONS(3),
  },
  [2498] = {
    [ts_builtin_sym_end] = ACTIONS(4816),
    [sym_identifier] = ACTIONS(4814),
    [sym_end_file] = ACTIONS(4814),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4816),
    [anon_sym_SEMI] = ACTIONS(4816),
    [anon_sym_TILDE] = ACTIONS(4816),
    [anon_sym_AT] = ACTIONS(4816),
    [sym_bool] = ACTIONS(4814),
    [sym_byte] = ACTIONS(4814),
    [sym_ubyte] = ACTIONS(4814),
    [sym_char] = ACTIONS(4814),
    [sym_short] = ACTIONS(4814),
    [sym_ushort] = ACTIONS(4814),
    [sym_int] = ACTIONS(4814),
    [sym_uint] = ACTIONS(4814),
    [sym_long] = ACTIONS(4814),
    [sym_ulong] = ACTIONS(4814),
    [sym_cent] = ACTIONS(4814),
    [sym_ucent] = ACTIONS(4814),
    [sym_wchar] = ACTIONS(4814),
    [sym_dchar] = ACTIONS(4814),
    [sym_float] = ACTIONS(4814),
    [sym_double] = ACTIONS(4814),
    [sym_real] = ACTIONS(4814),
    [sym_ifloat] = ACTIONS(4814),
    [sym_idouble] = ACTIONS(4814),
    [sym_ireal] = ACTIONS(4814),
    [sym_cfloat] = ACTIONS(4814),
    [sym_cdouble] = ACTIONS(4814),
    [sym_creal] = ACTIONS(4814),
    [sym_size_t] = ACTIONS(4814),
    [sym_ptrdiff_t] = ACTIONS(4814),
    [sym_string] = ACTIONS(4814),
    [sym_cstring] = ACTIONS(4814),
    [sym_dstring] = ACTIONS(4814),
    [sym_wstring] = ACTIONS(4814),
    [sym_noreturn] = ACTIONS(4814),
    [sym_this] = ACTIONS(4814),
    [sym_abstract] = ACTIONS(4814),
    [sym_alias] = ACTIONS(4814),
    [sym_align] = ACTIONS(4814),
    [sym_auto] = ACTIONS(4814),
    [sym_class] = ACTIONS(4814),
    [sym_const] = ACTIONS(4814),
    [sym_debug] = ACTIONS(4814),
    [sym_deprecated] = ACTIONS(4814),
    [sym_else] = ACTIONS(4814),
    [sym_enum] = ACTIONS(4814),
    [sym_export] = ACTIONS(4814),
    [sym_extern] = ACTIONS(4814),
    [sym_final] = ACTIONS(4814),
    [sym_immutable] = ACTIONS(4814),
    [sym_import] = ACTIONS(4814),
    [sym_inout] = ACTIONS(4814),
    [sym_interface] = ACTIONS(4814),
    [sym_invariant] = ACTIONS(4814),
    [sym_mixin] = ACTIONS(4814),
    [sym_nothrow] = ACTIONS(4814),
    [sym_override] = ACTIONS(4814),
    [sym_package] = ACTIONS(4814),
    [sym_pragma] = ACTIONS(4814),
    [sym_private] = ACTIONS(4814),
    [sym_protected] = ACTIONS(4814),
    [sym_public] = ACTIONS(4814),
    [sym_pure] = ACTIONS(4814),
    [sym_ref] = ACTIONS(4814),
    [sym_return] = ACTIONS(4814),
    [sym_scope] = ACTIONS(4814),
    [sym_shared] = ACTIONS(4814),
    [sym_static] = ACTIONS(4814),
    [sym_struct] = ACTIONS(4814),
    [sym_synchronized] = ACTIONS(4814),
    [sym_template] = ACTIONS(4814),
    [sym_typeof] = ACTIONS(4814),
    [sym_union] = ACTIONS(4814),
    [sym_unittest] = ACTIONS(4814),
    [sym_version] = ACTIONS(4814),
    [sym_while] = ACTIONS(4814),
    [sym_gshared] = ACTIONS(4814),
    [sym_traits] = ACTIONS(4814),
    [sym_vector] = ACTIONS(4814),
    [sym_void] = ACTIONS(4814),
    [sym_directive] = ACTIONS(3),
  },
  [2499] = {
    [ts_builtin_sym_end] = ACTIONS(4738),
    [sym_identifier] = ACTIONS(4736),
    [sym_end_file] = ACTIONS(4736),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4738),
    [anon_sym_SEMI] = ACTIONS(4738),
    [anon_sym_TILDE] = ACTIONS(4738),
    [anon_sym_AT] = ACTIONS(4738),
    [sym_bool] = ACTIONS(4736),
    [sym_byte] = ACTIONS(4736),
    [sym_ubyte] = ACTIONS(4736),
    [sym_char] = ACTIONS(4736),
    [sym_short] = ACTIONS(4736),
    [sym_ushort] = ACTIONS(4736),
    [sym_int] = ACTIONS(4736),
    [sym_uint] = ACTIONS(4736),
    [sym_long] = ACTIONS(4736),
    [sym_ulong] = ACTIONS(4736),
    [sym_cent] = ACTIONS(4736),
    [sym_ucent] = ACTIONS(4736),
    [sym_wchar] = ACTIONS(4736),
    [sym_dchar] = ACTIONS(4736),
    [sym_float] = ACTIONS(4736),
    [sym_double] = ACTIONS(4736),
    [sym_real] = ACTIONS(4736),
    [sym_ifloat] = ACTIONS(4736),
    [sym_idouble] = ACTIONS(4736),
    [sym_ireal] = ACTIONS(4736),
    [sym_cfloat] = ACTIONS(4736),
    [sym_cdouble] = ACTIONS(4736),
    [sym_creal] = ACTIONS(4736),
    [sym_size_t] = ACTIONS(4736),
    [sym_ptrdiff_t] = ACTIONS(4736),
    [sym_string] = ACTIONS(4736),
    [sym_cstring] = ACTIONS(4736),
    [sym_dstring] = ACTIONS(4736),
    [sym_wstring] = ACTIONS(4736),
    [sym_noreturn] = ACTIONS(4736),
    [sym_this] = ACTIONS(4736),
    [sym_abstract] = ACTIONS(4736),
    [sym_alias] = ACTIONS(4736),
    [sym_align] = ACTIONS(4736),
    [sym_auto] = ACTIONS(4736),
    [sym_class] = ACTIONS(4736),
    [sym_const] = ACTIONS(4736),
    [sym_debug] = ACTIONS(4736),
    [sym_deprecated] = ACTIONS(4736),
    [sym_else] = ACTIONS(4736),
    [sym_enum] = ACTIONS(4736),
    [sym_export] = ACTIONS(4736),
    [sym_extern] = ACTIONS(4736),
    [sym_final] = ACTIONS(4736),
    [sym_immutable] = ACTIONS(4736),
    [sym_import] = ACTIONS(4736),
    [sym_inout] = ACTIONS(4736),
    [sym_interface] = ACTIONS(4736),
    [sym_invariant] = ACTIONS(4736),
    [sym_mixin] = ACTIONS(4736),
    [sym_nothrow] = ACTIONS(4736),
    [sym_override] = ACTIONS(4736),
    [sym_package] = ACTIONS(4736),
    [sym_pragma] = ACTIONS(4736),
    [sym_private] = ACTIONS(4736),
    [sym_protected] = ACTIONS(4736),
    [sym_public] = ACTIONS(4736),
    [sym_pure] = ACTIONS(4736),
    [sym_ref] = ACTIONS(4736),
    [sym_return] = ACTIONS(4736),
    [sym_scope] = ACTIONS(4736),
    [sym_shared] = ACTIONS(4736),
    [sym_static] = ACTIONS(4736),
    [sym_struct] = ACTIONS(4736),
    [sym_synchronized] = ACTIONS(4736),
    [sym_template] = ACTIONS(4736),
    [sym_typeof] = ACTIONS(4736),
    [sym_union] = ACTIONS(4736),
    [sym_unittest] = ACTIONS(4736),
    [sym_version] = ACTIONS(4736),
    [sym_while] = ACTIONS(4736),
    [sym_gshared] = ACTIONS(4736),
    [sym_traits] = ACTIONS(4736),
    [sym_vector] = ACTIONS(4736),
    [sym_void] = ACTIONS(4736),
    [sym_directive] = ACTIONS(3),
  },
  [2500] = {
    [ts_builtin_sym_end] = ACTIONS(4734),
    [sym_identifier] = ACTIONS(4732),
    [sym_end_file] = ACTIONS(4732),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4734),
    [anon_sym_SEMI] = ACTIONS(4734),
    [anon_sym_TILDE] = ACTIONS(4734),
    [anon_sym_AT] = ACTIONS(4734),
    [sym_bool] = ACTIONS(4732),
    [sym_byte] = ACTIONS(4732),
    [sym_ubyte] = ACTIONS(4732),
    [sym_char] = ACTIONS(4732),
    [sym_short] = ACTIONS(4732),
    [sym_ushort] = ACTIONS(4732),
    [sym_int] = ACTIONS(4732),
    [sym_uint] = ACTIONS(4732),
    [sym_long] = ACTIONS(4732),
    [sym_ulong] = ACTIONS(4732),
    [sym_cent] = ACTIONS(4732),
    [sym_ucent] = ACTIONS(4732),
    [sym_wchar] = ACTIONS(4732),
    [sym_dchar] = ACTIONS(4732),
    [sym_float] = ACTIONS(4732),
    [sym_double] = ACTIONS(4732),
    [sym_real] = ACTIONS(4732),
    [sym_ifloat] = ACTIONS(4732),
    [sym_idouble] = ACTIONS(4732),
    [sym_ireal] = ACTIONS(4732),
    [sym_cfloat] = ACTIONS(4732),
    [sym_cdouble] = ACTIONS(4732),
    [sym_creal] = ACTIONS(4732),
    [sym_size_t] = ACTIONS(4732),
    [sym_ptrdiff_t] = ACTIONS(4732),
    [sym_string] = ACTIONS(4732),
    [sym_cstring] = ACTIONS(4732),
    [sym_dstring] = ACTIONS(4732),
    [sym_wstring] = ACTIONS(4732),
    [sym_noreturn] = ACTIONS(4732),
    [sym_this] = ACTIONS(4732),
    [sym_abstract] = ACTIONS(4732),
    [sym_alias] = ACTIONS(4732),
    [sym_align] = ACTIONS(4732),
    [sym_auto] = ACTIONS(4732),
    [sym_class] = ACTIONS(4732),
    [sym_const] = ACTIONS(4732),
    [sym_debug] = ACTIONS(4732),
    [sym_deprecated] = ACTIONS(4732),
    [sym_else] = ACTIONS(4732),
    [sym_enum] = ACTIONS(4732),
    [sym_export] = ACTIONS(4732),
    [sym_extern] = ACTIONS(4732),
    [sym_final] = ACTIONS(4732),
    [sym_immutable] = ACTIONS(4732),
    [sym_import] = ACTIONS(4732),
    [sym_inout] = ACTIONS(4732),
    [sym_interface] = ACTIONS(4732),
    [sym_invariant] = ACTIONS(4732),
    [sym_mixin] = ACTIONS(4732),
    [sym_nothrow] = ACTIONS(4732),
    [sym_override] = ACTIONS(4732),
    [sym_package] = ACTIONS(4732),
    [sym_pragma] = ACTIONS(4732),
    [sym_private] = ACTIONS(4732),
    [sym_protected] = ACTIONS(4732),
    [sym_public] = ACTIONS(4732),
    [sym_pure] = ACTIONS(4732),
    [sym_ref] = ACTIONS(4732),
    [sym_return] = ACTIONS(4732),
    [sym_scope] = ACTIONS(4732),
    [sym_shared] = ACTIONS(4732),
    [sym_static] = ACTIONS(4732),
    [sym_struct] = ACTIONS(4732),
    [sym_synchronized] = ACTIONS(4732),
    [sym_template] = ACTIONS(4732),
    [sym_typeof] = ACTIONS(4732),
    [sym_union] = ACTIONS(4732),
    [sym_unittest] = ACTIONS(4732),
    [sym_version] = ACTIONS(4732),
    [sym_while] = ACTIONS(4732),
    [sym_gshared] = ACTIONS(4732),
    [sym_traits] = ACTIONS(4732),
    [sym_vector] = ACTIONS(4732),
    [sym_void] = ACTIONS(4732),
    [sym_directive] = ACTIONS(3),
  },
  [2501] = {
    [ts_builtin_sym_end] = ACTIONS(4722),
    [sym_identifier] = ACTIONS(4720),
    [sym_end_file] = ACTIONS(4720),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4722),
    [anon_sym_SEMI] = ACTIONS(4722),
    [anon_sym_TILDE] = ACTIONS(4722),
    [anon_sym_AT] = ACTIONS(4722),
    [sym_bool] = ACTIONS(4720),
    [sym_byte] = ACTIONS(4720),
    [sym_ubyte] = ACTIONS(4720),
    [sym_char] = ACTIONS(4720),
    [sym_short] = ACTIONS(4720),
    [sym_ushort] = ACTIONS(4720),
    [sym_int] = ACTIONS(4720),
    [sym_uint] = ACTIONS(4720),
    [sym_long] = ACTIONS(4720),
    [sym_ulong] = ACTIONS(4720),
    [sym_cent] = ACTIONS(4720),
    [sym_ucent] = ACTIONS(4720),
    [sym_wchar] = ACTIONS(4720),
    [sym_dchar] = ACTIONS(4720),
    [sym_float] = ACTIONS(4720),
    [sym_double] = ACTIONS(4720),
    [sym_real] = ACTIONS(4720),
    [sym_ifloat] = ACTIONS(4720),
    [sym_idouble] = ACTIONS(4720),
    [sym_ireal] = ACTIONS(4720),
    [sym_cfloat] = ACTIONS(4720),
    [sym_cdouble] = ACTIONS(4720),
    [sym_creal] = ACTIONS(4720),
    [sym_size_t] = ACTIONS(4720),
    [sym_ptrdiff_t] = ACTIONS(4720),
    [sym_string] = ACTIONS(4720),
    [sym_cstring] = ACTIONS(4720),
    [sym_dstring] = ACTIONS(4720),
    [sym_wstring] = ACTIONS(4720),
    [sym_noreturn] = ACTIONS(4720),
    [sym_this] = ACTIONS(4720),
    [sym_abstract] = ACTIONS(4720),
    [sym_alias] = ACTIONS(4720),
    [sym_align] = ACTIONS(4720),
    [sym_auto] = ACTIONS(4720),
    [sym_class] = ACTIONS(4720),
    [sym_const] = ACTIONS(4720),
    [sym_debug] = ACTIONS(4720),
    [sym_deprecated] = ACTIONS(4720),
    [sym_else] = ACTIONS(4720),
    [sym_enum] = ACTIONS(4720),
    [sym_export] = ACTIONS(4720),
    [sym_extern] = ACTIONS(4720),
    [sym_final] = ACTIONS(4720),
    [sym_immutable] = ACTIONS(4720),
    [sym_import] = ACTIONS(4720),
    [sym_inout] = ACTIONS(4720),
    [sym_interface] = ACTIONS(4720),
    [sym_invariant] = ACTIONS(4720),
    [sym_mixin] = ACTIONS(4720),
    [sym_nothrow] = ACTIONS(4720),
    [sym_override] = ACTIONS(4720),
    [sym_package] = ACTIONS(4720),
    [sym_pragma] = ACTIONS(4720),
    [sym_private] = ACTIONS(4720),
    [sym_protected] = ACTIONS(4720),
    [sym_public] = ACTIONS(4720),
    [sym_pure] = ACTIONS(4720),
    [sym_ref] = ACTIONS(4720),
    [sym_return] = ACTIONS(4720),
    [sym_scope] = ACTIONS(4720),
    [sym_shared] = ACTIONS(4720),
    [sym_static] = ACTIONS(4720),
    [sym_struct] = ACTIONS(4720),
    [sym_synchronized] = ACTIONS(4720),
    [sym_template] = ACTIONS(4720),
    [sym_typeof] = ACTIONS(4720),
    [sym_union] = ACTIONS(4720),
    [sym_unittest] = ACTIONS(4720),
    [sym_version] = ACTIONS(4720),
    [sym_while] = ACTIONS(4720),
    [sym_gshared] = ACTIONS(4720),
    [sym_traits] = ACTIONS(4720),
    [sym_vector] = ACTIONS(4720),
    [sym_void] = ACTIONS(4720),
    [sym_directive] = ACTIONS(3),
  },
  [2502] = {
    [sym_identifier] = ACTIONS(4848),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4850),
    [anon_sym_SEMI] = ACTIONS(4850),
    [anon_sym_TILDE] = ACTIONS(4850),
    [anon_sym_AT] = ACTIONS(4850),
    [sym_bool] = ACTIONS(4848),
    [sym_byte] = ACTIONS(4848),
    [sym_ubyte] = ACTIONS(4848),
    [sym_char] = ACTIONS(4848),
    [sym_short] = ACTIONS(4848),
    [sym_ushort] = ACTIONS(4848),
    [sym_int] = ACTIONS(4848),
    [sym_uint] = ACTIONS(4848),
    [sym_long] = ACTIONS(4848),
    [sym_ulong] = ACTIONS(4848),
    [sym_cent] = ACTIONS(4848),
    [sym_ucent] = ACTIONS(4848),
    [sym_wchar] = ACTIONS(4848),
    [sym_dchar] = ACTIONS(4848),
    [sym_float] = ACTIONS(4848),
    [sym_double] = ACTIONS(4848),
    [sym_real] = ACTIONS(4848),
    [sym_ifloat] = ACTIONS(4848),
    [sym_idouble] = ACTIONS(4848),
    [sym_ireal] = ACTIONS(4848),
    [sym_cfloat] = ACTIONS(4848),
    [sym_cdouble] = ACTIONS(4848),
    [sym_creal] = ACTIONS(4848),
    [sym_size_t] = ACTIONS(4848),
    [sym_ptrdiff_t] = ACTIONS(4848),
    [sym_string] = ACTIONS(4848),
    [sym_cstring] = ACTIONS(4848),
    [sym_dstring] = ACTIONS(4848),
    [sym_wstring] = ACTIONS(4848),
    [sym_noreturn] = ACTIONS(4848),
    [sym_this] = ACTIONS(4848),
    [sym_abstract] = ACTIONS(4848),
    [sym_alias] = ACTIONS(4848),
    [sym_align] = ACTIONS(4848),
    [sym_auto] = ACTIONS(4848),
    [sym_catch] = ACTIONS(4848),
    [sym_class] = ACTIONS(4848),
    [sym_const] = ACTIONS(4848),
    [sym_debug] = ACTIONS(4848),
    [sym_deprecated] = ACTIONS(4848),
    [sym_else] = ACTIONS(4848),
    [sym_enum] = ACTIONS(4848),
    [sym_export] = ACTIONS(4848),
    [sym_extern] = ACTIONS(4848),
    [sym_final] = ACTIONS(4848),
    [sym_finally] = ACTIONS(4848),
    [sym_immutable] = ACTIONS(4848),
    [sym_import] = ACTIONS(4848),
    [sym_inout] = ACTIONS(4848),
    [sym_interface] = ACTIONS(4848),
    [sym_invariant] = ACTIONS(4848),
    [sym_mixin] = ACTIONS(4848),
    [sym_nothrow] = ACTIONS(4848),
    [sym_override] = ACTIONS(4848),
    [sym_package] = ACTIONS(4848),
    [sym_pragma] = ACTIONS(4848),
    [sym_private] = ACTIONS(4848),
    [sym_protected] = ACTIONS(4848),
    [sym_public] = ACTIONS(4848),
    [sym_pure] = ACTIONS(4848),
    [sym_ref] = ACTIONS(4848),
    [sym_return] = ACTIONS(4848),
    [sym_scope] = ACTIONS(4848),
    [sym_shared] = ACTIONS(4848),
    [sym_static] = ACTIONS(4848),
    [sym_struct] = ACTIONS(4848),
    [sym_synchronized] = ACTIONS(4848),
    [sym_template] = ACTIONS(4848),
    [sym_typeof] = ACTIONS(4848),
    [sym_union] = ACTIONS(4848),
    [sym_unittest] = ACTIONS(4848),
    [sym_version] = ACTIONS(4848),
    [sym_while] = ACTIONS(4848),
    [sym_gshared] = ACTIONS(4848),
    [sym_traits] = ACTIONS(4848),
    [sym_vector] = ACTIONS(4848),
    [sym_void] = ACTIONS(4848),
    [sym_directive] = ACTIONS(3),
  },
  [2503] = {
    [sym_identifier] = ACTIONS(5004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5006),
    [anon_sym_SEMI] = ACTIONS(5006),
    [anon_sym_TILDE] = ACTIONS(5006),
    [anon_sym_AT] = ACTIONS(5006),
    [sym_bool] = ACTIONS(5004),
    [sym_byte] = ACTIONS(5004),
    [sym_ubyte] = ACTIONS(5004),
    [sym_char] = ACTIONS(5004),
    [sym_short] = ACTIONS(5004),
    [sym_ushort] = ACTIONS(5004),
    [sym_int] = ACTIONS(5004),
    [sym_uint] = ACTIONS(5004),
    [sym_long] = ACTIONS(5004),
    [sym_ulong] = ACTIONS(5004),
    [sym_cent] = ACTIONS(5004),
    [sym_ucent] = ACTIONS(5004),
    [sym_wchar] = ACTIONS(5004),
    [sym_dchar] = ACTIONS(5004),
    [sym_float] = ACTIONS(5004),
    [sym_double] = ACTIONS(5004),
    [sym_real] = ACTIONS(5004),
    [sym_ifloat] = ACTIONS(5004),
    [sym_idouble] = ACTIONS(5004),
    [sym_ireal] = ACTIONS(5004),
    [sym_cfloat] = ACTIONS(5004),
    [sym_cdouble] = ACTIONS(5004),
    [sym_creal] = ACTIONS(5004),
    [sym_size_t] = ACTIONS(5004),
    [sym_ptrdiff_t] = ACTIONS(5004),
    [sym_string] = ACTIONS(5004),
    [sym_cstring] = ACTIONS(5004),
    [sym_dstring] = ACTIONS(5004),
    [sym_wstring] = ACTIONS(5004),
    [sym_noreturn] = ACTIONS(5004),
    [sym_this] = ACTIONS(5004),
    [sym_abstract] = ACTIONS(5004),
    [sym_alias] = ACTIONS(5004),
    [sym_align] = ACTIONS(5004),
    [sym_auto] = ACTIONS(5004),
    [sym_catch] = ACTIONS(5004),
    [sym_class] = ACTIONS(5004),
    [sym_const] = ACTIONS(5004),
    [sym_debug] = ACTIONS(5004),
    [sym_deprecated] = ACTIONS(5004),
    [sym_else] = ACTIONS(5004),
    [sym_enum] = ACTIONS(5004),
    [sym_export] = ACTIONS(5004),
    [sym_extern] = ACTIONS(5004),
    [sym_final] = ACTIONS(5004),
    [sym_finally] = ACTIONS(5004),
    [sym_immutable] = ACTIONS(5004),
    [sym_import] = ACTIONS(5004),
    [sym_inout] = ACTIONS(5004),
    [sym_interface] = ACTIONS(5004),
    [sym_invariant] = ACTIONS(5004),
    [sym_mixin] = ACTIONS(5004),
    [sym_nothrow] = ACTIONS(5004),
    [sym_override] = ACTIONS(5004),
    [sym_package] = ACTIONS(5004),
    [sym_pragma] = ACTIONS(5004),
    [sym_private] = ACTIONS(5004),
    [sym_protected] = ACTIONS(5004),
    [sym_public] = ACTIONS(5004),
    [sym_pure] = ACTIONS(5004),
    [sym_ref] = ACTIONS(5004),
    [sym_return] = ACTIONS(5004),
    [sym_scope] = ACTIONS(5004),
    [sym_shared] = ACTIONS(5004),
    [sym_static] = ACTIONS(5004),
    [sym_struct] = ACTIONS(5004),
    [sym_synchronized] = ACTIONS(5004),
    [sym_template] = ACTIONS(5004),
    [sym_typeof] = ACTIONS(5004),
    [sym_union] = ACTIONS(5004),
    [sym_unittest] = ACTIONS(5004),
    [sym_version] = ACTIONS(5004),
    [sym_while] = ACTIONS(5004),
    [sym_gshared] = ACTIONS(5004),
    [sym_traits] = ACTIONS(5004),
    [sym_vector] = ACTIONS(5004),
    [sym_void] = ACTIONS(5004),
    [sym_directive] = ACTIONS(3),
  },
  [2504] = {
    [sym_identifier] = ACTIONS(5028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5030),
    [anon_sym_SEMI] = ACTIONS(5030),
    [anon_sym_TILDE] = ACTIONS(5030),
    [anon_sym_AT] = ACTIONS(5030),
    [sym_bool] = ACTIONS(5028),
    [sym_byte] = ACTIONS(5028),
    [sym_ubyte] = ACTIONS(5028),
    [sym_char] = ACTIONS(5028),
    [sym_short] = ACTIONS(5028),
    [sym_ushort] = ACTIONS(5028),
    [sym_int] = ACTIONS(5028),
    [sym_uint] = ACTIONS(5028),
    [sym_long] = ACTIONS(5028),
    [sym_ulong] = ACTIONS(5028),
    [sym_cent] = ACTIONS(5028),
    [sym_ucent] = ACTIONS(5028),
    [sym_wchar] = ACTIONS(5028),
    [sym_dchar] = ACTIONS(5028),
    [sym_float] = ACTIONS(5028),
    [sym_double] = ACTIONS(5028),
    [sym_real] = ACTIONS(5028),
    [sym_ifloat] = ACTIONS(5028),
    [sym_idouble] = ACTIONS(5028),
    [sym_ireal] = ACTIONS(5028),
    [sym_cfloat] = ACTIONS(5028),
    [sym_cdouble] = ACTIONS(5028),
    [sym_creal] = ACTIONS(5028),
    [sym_size_t] = ACTIONS(5028),
    [sym_ptrdiff_t] = ACTIONS(5028),
    [sym_string] = ACTIONS(5028),
    [sym_cstring] = ACTIONS(5028),
    [sym_dstring] = ACTIONS(5028),
    [sym_wstring] = ACTIONS(5028),
    [sym_noreturn] = ACTIONS(5028),
    [sym_this] = ACTIONS(5028),
    [sym_abstract] = ACTIONS(5028),
    [sym_alias] = ACTIONS(5028),
    [sym_align] = ACTIONS(5028),
    [sym_auto] = ACTIONS(5028),
    [sym_catch] = ACTIONS(5028),
    [sym_class] = ACTIONS(5028),
    [sym_const] = ACTIONS(5028),
    [sym_debug] = ACTIONS(5028),
    [sym_deprecated] = ACTIONS(5028),
    [sym_else] = ACTIONS(5028),
    [sym_enum] = ACTIONS(5028),
    [sym_export] = ACTIONS(5028),
    [sym_extern] = ACTIONS(5028),
    [sym_final] = ACTIONS(5028),
    [sym_finally] = ACTIONS(5028),
    [sym_immutable] = ACTIONS(5028),
    [sym_import] = ACTIONS(5028),
    [sym_inout] = ACTIONS(5028),
    [sym_interface] = ACTIONS(5028),
    [sym_invariant] = ACTIONS(5028),
    [sym_mixin] = ACTIONS(5028),
    [sym_nothrow] = ACTIONS(5028),
    [sym_override] = ACTIONS(5028),
    [sym_package] = ACTIONS(5028),
    [sym_pragma] = ACTIONS(5028),
    [sym_private] = ACTIONS(5028),
    [sym_protected] = ACTIONS(5028),
    [sym_public] = ACTIONS(5028),
    [sym_pure] = ACTIONS(5028),
    [sym_ref] = ACTIONS(5028),
    [sym_return] = ACTIONS(5028),
    [sym_scope] = ACTIONS(5028),
    [sym_shared] = ACTIONS(5028),
    [sym_static] = ACTIONS(5028),
    [sym_struct] = ACTIONS(5028),
    [sym_synchronized] = ACTIONS(5028),
    [sym_template] = ACTIONS(5028),
    [sym_typeof] = ACTIONS(5028),
    [sym_union] = ACTIONS(5028),
    [sym_unittest] = ACTIONS(5028),
    [sym_version] = ACTIONS(5028),
    [sym_while] = ACTIONS(5028),
    [sym_gshared] = ACTIONS(5028),
    [sym_traits] = ACTIONS(5028),
    [sym_vector] = ACTIONS(5028),
    [sym_void] = ACTIONS(5028),
    [sym_directive] = ACTIONS(3),
  },
  [2505] = {
    [ts_builtin_sym_end] = ACTIONS(4714),
    [sym_identifier] = ACTIONS(4712),
    [sym_end_file] = ACTIONS(4712),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4714),
    [anon_sym_SEMI] = ACTIONS(4714),
    [anon_sym_TILDE] = ACTIONS(4714),
    [anon_sym_AT] = ACTIONS(4714),
    [sym_bool] = ACTIONS(4712),
    [sym_byte] = ACTIONS(4712),
    [sym_ubyte] = ACTIONS(4712),
    [sym_char] = ACTIONS(4712),
    [sym_short] = ACTIONS(4712),
    [sym_ushort] = ACTIONS(4712),
    [sym_int] = ACTIONS(4712),
    [sym_uint] = ACTIONS(4712),
    [sym_long] = ACTIONS(4712),
    [sym_ulong] = ACTIONS(4712),
    [sym_cent] = ACTIONS(4712),
    [sym_ucent] = ACTIONS(4712),
    [sym_wchar] = ACTIONS(4712),
    [sym_dchar] = ACTIONS(4712),
    [sym_float] = ACTIONS(4712),
    [sym_double] = ACTIONS(4712),
    [sym_real] = ACTIONS(4712),
    [sym_ifloat] = ACTIONS(4712),
    [sym_idouble] = ACTIONS(4712),
    [sym_ireal] = ACTIONS(4712),
    [sym_cfloat] = ACTIONS(4712),
    [sym_cdouble] = ACTIONS(4712),
    [sym_creal] = ACTIONS(4712),
    [sym_size_t] = ACTIONS(4712),
    [sym_ptrdiff_t] = ACTIONS(4712),
    [sym_string] = ACTIONS(4712),
    [sym_cstring] = ACTIONS(4712),
    [sym_dstring] = ACTIONS(4712),
    [sym_wstring] = ACTIONS(4712),
    [sym_noreturn] = ACTIONS(4712),
    [sym_this] = ACTIONS(4712),
    [sym_abstract] = ACTIONS(4712),
    [sym_alias] = ACTIONS(4712),
    [sym_align] = ACTIONS(4712),
    [sym_auto] = ACTIONS(4712),
    [sym_class] = ACTIONS(4712),
    [sym_const] = ACTIONS(4712),
    [sym_debug] = ACTIONS(4712),
    [sym_deprecated] = ACTIONS(4712),
    [sym_else] = ACTIONS(4712),
    [sym_enum] = ACTIONS(4712),
    [sym_export] = ACTIONS(4712),
    [sym_extern] = ACTIONS(4712),
    [sym_final] = ACTIONS(4712),
    [sym_immutable] = ACTIONS(4712),
    [sym_import] = ACTIONS(4712),
    [sym_inout] = ACTIONS(4712),
    [sym_interface] = ACTIONS(4712),
    [sym_invariant] = ACTIONS(4712),
    [sym_mixin] = ACTIONS(4712),
    [sym_nothrow] = ACTIONS(4712),
    [sym_override] = ACTIONS(4712),
    [sym_package] = ACTIONS(4712),
    [sym_pragma] = ACTIONS(4712),
    [sym_private] = ACTIONS(4712),
    [sym_protected] = ACTIONS(4712),
    [sym_public] = ACTIONS(4712),
    [sym_pure] = ACTIONS(4712),
    [sym_ref] = ACTIONS(4712),
    [sym_return] = ACTIONS(4712),
    [sym_scope] = ACTIONS(4712),
    [sym_shared] = ACTIONS(4712),
    [sym_static] = ACTIONS(4712),
    [sym_struct] = ACTIONS(4712),
    [sym_synchronized] = ACTIONS(4712),
    [sym_template] = ACTIONS(4712),
    [sym_typeof] = ACTIONS(4712),
    [sym_union] = ACTIONS(4712),
    [sym_unittest] = ACTIONS(4712),
    [sym_version] = ACTIONS(4712),
    [sym_while] = ACTIONS(4712),
    [sym_gshared] = ACTIONS(4712),
    [sym_traits] = ACTIONS(4712),
    [sym_vector] = ACTIONS(4712),
    [sym_void] = ACTIONS(4712),
    [sym_directive] = ACTIONS(3),
  },
  [2506] = {
    [sym_identifier] = ACTIONS(4754),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4756),
    [anon_sym_SEMI] = ACTIONS(4756),
    [anon_sym_TILDE] = ACTIONS(4756),
    [anon_sym_AT] = ACTIONS(4756),
    [sym_bool] = ACTIONS(4754),
    [sym_byte] = ACTIONS(4754),
    [sym_ubyte] = ACTIONS(4754),
    [sym_char] = ACTIONS(4754),
    [sym_short] = ACTIONS(4754),
    [sym_ushort] = ACTIONS(4754),
    [sym_int] = ACTIONS(4754),
    [sym_uint] = ACTIONS(4754),
    [sym_long] = ACTIONS(4754),
    [sym_ulong] = ACTIONS(4754),
    [sym_cent] = ACTIONS(4754),
    [sym_ucent] = ACTIONS(4754),
    [sym_wchar] = ACTIONS(4754),
    [sym_dchar] = ACTIONS(4754),
    [sym_float] = ACTIONS(4754),
    [sym_double] = ACTIONS(4754),
    [sym_real] = ACTIONS(4754),
    [sym_ifloat] = ACTIONS(4754),
    [sym_idouble] = ACTIONS(4754),
    [sym_ireal] = ACTIONS(4754),
    [sym_cfloat] = ACTIONS(4754),
    [sym_cdouble] = ACTIONS(4754),
    [sym_creal] = ACTIONS(4754),
    [sym_size_t] = ACTIONS(4754),
    [sym_ptrdiff_t] = ACTIONS(4754),
    [sym_string] = ACTIONS(4754),
    [sym_cstring] = ACTIONS(4754),
    [sym_dstring] = ACTIONS(4754),
    [sym_wstring] = ACTIONS(4754),
    [sym_noreturn] = ACTIONS(4754),
    [sym_this] = ACTIONS(4754),
    [sym_abstract] = ACTIONS(4754),
    [sym_alias] = ACTIONS(4754),
    [sym_align] = ACTIONS(4754),
    [sym_auto] = ACTIONS(4754),
    [sym_catch] = ACTIONS(4754),
    [sym_class] = ACTIONS(4754),
    [sym_const] = ACTIONS(4754),
    [sym_debug] = ACTIONS(4754),
    [sym_deprecated] = ACTIONS(4754),
    [sym_else] = ACTIONS(4754),
    [sym_enum] = ACTIONS(4754),
    [sym_export] = ACTIONS(4754),
    [sym_extern] = ACTIONS(4754),
    [sym_final] = ACTIONS(4754),
    [sym_finally] = ACTIONS(4754),
    [sym_immutable] = ACTIONS(4754),
    [sym_import] = ACTIONS(4754),
    [sym_inout] = ACTIONS(4754),
    [sym_interface] = ACTIONS(4754),
    [sym_invariant] = ACTIONS(4754),
    [sym_mixin] = ACTIONS(4754),
    [sym_nothrow] = ACTIONS(4754),
    [sym_override] = ACTIONS(4754),
    [sym_package] = ACTIONS(4754),
    [sym_pragma] = ACTIONS(4754),
    [sym_private] = ACTIONS(4754),
    [sym_protected] = ACTIONS(4754),
    [sym_public] = ACTIONS(4754),
    [sym_pure] = ACTIONS(4754),
    [sym_ref] = ACTIONS(4754),
    [sym_return] = ACTIONS(4754),
    [sym_scope] = ACTIONS(4754),
    [sym_shared] = ACTIONS(4754),
    [sym_static] = ACTIONS(4754),
    [sym_struct] = ACTIONS(4754),
    [sym_synchronized] = ACTIONS(4754),
    [sym_template] = ACTIONS(4754),
    [sym_typeof] = ACTIONS(4754),
    [sym_union] = ACTIONS(4754),
    [sym_unittest] = ACTIONS(4754),
    [sym_version] = ACTIONS(4754),
    [sym_while] = ACTIONS(4754),
    [sym_gshared] = ACTIONS(4754),
    [sym_traits] = ACTIONS(4754),
    [sym_vector] = ACTIONS(4754),
    [sym_void] = ACTIONS(4754),
    [sym_directive] = ACTIONS(3),
  },
  [2507] = {
    [sym_identifier] = ACTIONS(4814),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4816),
    [anon_sym_SEMI] = ACTIONS(4816),
    [anon_sym_TILDE] = ACTIONS(4816),
    [anon_sym_AT] = ACTIONS(4816),
    [sym_bool] = ACTIONS(4814),
    [sym_byte] = ACTIONS(4814),
    [sym_ubyte] = ACTIONS(4814),
    [sym_char] = ACTIONS(4814),
    [sym_short] = ACTIONS(4814),
    [sym_ushort] = ACTIONS(4814),
    [sym_int] = ACTIONS(4814),
    [sym_uint] = ACTIONS(4814),
    [sym_long] = ACTIONS(4814),
    [sym_ulong] = ACTIONS(4814),
    [sym_cent] = ACTIONS(4814),
    [sym_ucent] = ACTIONS(4814),
    [sym_wchar] = ACTIONS(4814),
    [sym_dchar] = ACTIONS(4814),
    [sym_float] = ACTIONS(4814),
    [sym_double] = ACTIONS(4814),
    [sym_real] = ACTIONS(4814),
    [sym_ifloat] = ACTIONS(4814),
    [sym_idouble] = ACTIONS(4814),
    [sym_ireal] = ACTIONS(4814),
    [sym_cfloat] = ACTIONS(4814),
    [sym_cdouble] = ACTIONS(4814),
    [sym_creal] = ACTIONS(4814),
    [sym_size_t] = ACTIONS(4814),
    [sym_ptrdiff_t] = ACTIONS(4814),
    [sym_string] = ACTIONS(4814),
    [sym_cstring] = ACTIONS(4814),
    [sym_dstring] = ACTIONS(4814),
    [sym_wstring] = ACTIONS(4814),
    [sym_noreturn] = ACTIONS(4814),
    [sym_this] = ACTIONS(4814),
    [sym_abstract] = ACTIONS(4814),
    [sym_alias] = ACTIONS(4814),
    [sym_align] = ACTIONS(4814),
    [sym_auto] = ACTIONS(4814),
    [sym_catch] = ACTIONS(4814),
    [sym_class] = ACTIONS(4814),
    [sym_const] = ACTIONS(4814),
    [sym_debug] = ACTIONS(4814),
    [sym_deprecated] = ACTIONS(4814),
    [sym_else] = ACTIONS(4814),
    [sym_enum] = ACTIONS(4814),
    [sym_export] = ACTIONS(4814),
    [sym_extern] = ACTIONS(4814),
    [sym_final] = ACTIONS(4814),
    [sym_finally] = ACTIONS(4814),
    [sym_immutable] = ACTIONS(4814),
    [sym_import] = ACTIONS(4814),
    [sym_inout] = ACTIONS(4814),
    [sym_interface] = ACTIONS(4814),
    [sym_invariant] = ACTIONS(4814),
    [sym_mixin] = ACTIONS(4814),
    [sym_nothrow] = ACTIONS(4814),
    [sym_override] = ACTIONS(4814),
    [sym_package] = ACTIONS(4814),
    [sym_pragma] = ACTIONS(4814),
    [sym_private] = ACTIONS(4814),
    [sym_protected] = ACTIONS(4814),
    [sym_public] = ACTIONS(4814),
    [sym_pure] = ACTIONS(4814),
    [sym_ref] = ACTIONS(4814),
    [sym_return] = ACTIONS(4814),
    [sym_scope] = ACTIONS(4814),
    [sym_shared] = ACTIONS(4814),
    [sym_static] = ACTIONS(4814),
    [sym_struct] = ACTIONS(4814),
    [sym_synchronized] = ACTIONS(4814),
    [sym_template] = ACTIONS(4814),
    [sym_typeof] = ACTIONS(4814),
    [sym_union] = ACTIONS(4814),
    [sym_unittest] = ACTIONS(4814),
    [sym_version] = ACTIONS(4814),
    [sym_while] = ACTIONS(4814),
    [sym_gshared] = ACTIONS(4814),
    [sym_traits] = ACTIONS(4814),
    [sym_vector] = ACTIONS(4814),
    [sym_void] = ACTIONS(4814),
    [sym_directive] = ACTIONS(3),
  },
  [2508] = {
    [sym_identifier] = ACTIONS(4818),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4820),
    [anon_sym_SEMI] = ACTIONS(4820),
    [anon_sym_TILDE] = ACTIONS(4820),
    [anon_sym_AT] = ACTIONS(4820),
    [sym_bool] = ACTIONS(4818),
    [sym_byte] = ACTIONS(4818),
    [sym_ubyte] = ACTIONS(4818),
    [sym_char] = ACTIONS(4818),
    [sym_short] = ACTIONS(4818),
    [sym_ushort] = ACTIONS(4818),
    [sym_int] = ACTIONS(4818),
    [sym_uint] = ACTIONS(4818),
    [sym_long] = ACTIONS(4818),
    [sym_ulong] = ACTIONS(4818),
    [sym_cent] = ACTIONS(4818),
    [sym_ucent] = ACTIONS(4818),
    [sym_wchar] = ACTIONS(4818),
    [sym_dchar] = ACTIONS(4818),
    [sym_float] = ACTIONS(4818),
    [sym_double] = ACTIONS(4818),
    [sym_real] = ACTIONS(4818),
    [sym_ifloat] = ACTIONS(4818),
    [sym_idouble] = ACTIONS(4818),
    [sym_ireal] = ACTIONS(4818),
    [sym_cfloat] = ACTIONS(4818),
    [sym_cdouble] = ACTIONS(4818),
    [sym_creal] = ACTIONS(4818),
    [sym_size_t] = ACTIONS(4818),
    [sym_ptrdiff_t] = ACTIONS(4818),
    [sym_string] = ACTIONS(4818),
    [sym_cstring] = ACTIONS(4818),
    [sym_dstring] = ACTIONS(4818),
    [sym_wstring] = ACTIONS(4818),
    [sym_noreturn] = ACTIONS(4818),
    [sym_this] = ACTIONS(4818),
    [sym_abstract] = ACTIONS(4818),
    [sym_alias] = ACTIONS(4818),
    [sym_align] = ACTIONS(4818),
    [sym_auto] = ACTIONS(4818),
    [sym_catch] = ACTIONS(4818),
    [sym_class] = ACTIONS(4818),
    [sym_const] = ACTIONS(4818),
    [sym_debug] = ACTIONS(4818),
    [sym_deprecated] = ACTIONS(4818),
    [sym_else] = ACTIONS(4818),
    [sym_enum] = ACTIONS(4818),
    [sym_export] = ACTIONS(4818),
    [sym_extern] = ACTIONS(4818),
    [sym_final] = ACTIONS(4818),
    [sym_finally] = ACTIONS(4818),
    [sym_immutable] = ACTIONS(4818),
    [sym_import] = ACTIONS(4818),
    [sym_inout] = ACTIONS(4818),
    [sym_interface] = ACTIONS(4818),
    [sym_invariant] = ACTIONS(4818),
    [sym_mixin] = ACTIONS(4818),
    [sym_nothrow] = ACTIONS(4818),
    [sym_override] = ACTIONS(4818),
    [sym_package] = ACTIONS(4818),
    [sym_pragma] = ACTIONS(4818),
    [sym_private] = ACTIONS(4818),
    [sym_protected] = ACTIONS(4818),
    [sym_public] = ACTIONS(4818),
    [sym_pure] = ACTIONS(4818),
    [sym_ref] = ACTIONS(4818),
    [sym_return] = ACTIONS(4818),
    [sym_scope] = ACTIONS(4818),
    [sym_shared] = ACTIONS(4818),
    [sym_static] = ACTIONS(4818),
    [sym_struct] = ACTIONS(4818),
    [sym_synchronized] = ACTIONS(4818),
    [sym_template] = ACTIONS(4818),
    [sym_typeof] = ACTIONS(4818),
    [sym_union] = ACTIONS(4818),
    [sym_unittest] = ACTIONS(4818),
    [sym_version] = ACTIONS(4818),
    [sym_while] = ACTIONS(4818),
    [sym_gshared] = ACTIONS(4818),
    [sym_traits] = ACTIONS(4818),
    [sym_vector] = ACTIONS(4818),
    [sym_void] = ACTIONS(4818),
    [sym_directive] = ACTIONS(3),
  },
  [2509] = {
    [sym_identifier] = ACTIONS(4694),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4696),
    [anon_sym_SEMI] = ACTIONS(4696),
    [anon_sym_TILDE] = ACTIONS(4696),
    [anon_sym_AT] = ACTIONS(4696),
    [sym_bool] = ACTIONS(4694),
    [sym_byte] = ACTIONS(4694),
    [sym_ubyte] = ACTIONS(4694),
    [sym_char] = ACTIONS(4694),
    [sym_short] = ACTIONS(4694),
    [sym_ushort] = ACTIONS(4694),
    [sym_int] = ACTIONS(4694),
    [sym_uint] = ACTIONS(4694),
    [sym_long] = ACTIONS(4694),
    [sym_ulong] = ACTIONS(4694),
    [sym_cent] = ACTIONS(4694),
    [sym_ucent] = ACTIONS(4694),
    [sym_wchar] = ACTIONS(4694),
    [sym_dchar] = ACTIONS(4694),
    [sym_float] = ACTIONS(4694),
    [sym_double] = ACTIONS(4694),
    [sym_real] = ACTIONS(4694),
    [sym_ifloat] = ACTIONS(4694),
    [sym_idouble] = ACTIONS(4694),
    [sym_ireal] = ACTIONS(4694),
    [sym_cfloat] = ACTIONS(4694),
    [sym_cdouble] = ACTIONS(4694),
    [sym_creal] = ACTIONS(4694),
    [sym_size_t] = ACTIONS(4694),
    [sym_ptrdiff_t] = ACTIONS(4694),
    [sym_string] = ACTIONS(4694),
    [sym_cstring] = ACTIONS(4694),
    [sym_dstring] = ACTIONS(4694),
    [sym_wstring] = ACTIONS(4694),
    [sym_noreturn] = ACTIONS(4694),
    [sym_this] = ACTIONS(4694),
    [sym_abstract] = ACTIONS(4694),
    [sym_alias] = ACTIONS(4694),
    [sym_align] = ACTIONS(4694),
    [sym_auto] = ACTIONS(4694),
    [sym_catch] = ACTIONS(4694),
    [sym_class] = ACTIONS(4694),
    [sym_const] = ACTIONS(4694),
    [sym_debug] = ACTIONS(4694),
    [sym_deprecated] = ACTIONS(4694),
    [sym_else] = ACTIONS(4694),
    [sym_enum] = ACTIONS(4694),
    [sym_export] = ACTIONS(4694),
    [sym_extern] = ACTIONS(4694),
    [sym_final] = ACTIONS(4694),
    [sym_finally] = ACTIONS(4694),
    [sym_immutable] = ACTIONS(4694),
    [sym_import] = ACTIONS(4694),
    [sym_inout] = ACTIONS(4694),
    [sym_interface] = ACTIONS(4694),
    [sym_invariant] = ACTIONS(4694),
    [sym_mixin] = ACTIONS(4694),
    [sym_nothrow] = ACTIONS(4694),
    [sym_override] = ACTIONS(4694),
    [sym_package] = ACTIONS(4694),
    [sym_pragma] = ACTIONS(4694),
    [sym_private] = ACTIONS(4694),
    [sym_protected] = ACTIONS(4694),
    [sym_public] = ACTIONS(4694),
    [sym_pure] = ACTIONS(4694),
    [sym_ref] = ACTIONS(4694),
    [sym_return] = ACTIONS(4694),
    [sym_scope] = ACTIONS(4694),
    [sym_shared] = ACTIONS(4694),
    [sym_static] = ACTIONS(4694),
    [sym_struct] = ACTIONS(4694),
    [sym_synchronized] = ACTIONS(4694),
    [sym_template] = ACTIONS(4694),
    [sym_typeof] = ACTIONS(4694),
    [sym_union] = ACTIONS(4694),
    [sym_unittest] = ACTIONS(4694),
    [sym_version] = ACTIONS(4694),
    [sym_while] = ACTIONS(4694),
    [sym_gshared] = ACTIONS(4694),
    [sym_traits] = ACTIONS(4694),
    [sym_vector] = ACTIONS(4694),
    [sym_void] = ACTIONS(4694),
    [sym_directive] = ACTIONS(3),
  },
  [2510] = {
    [sym_identifier] = ACTIONS(4822),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4824),
    [anon_sym_SEMI] = ACTIONS(4824),
    [anon_sym_TILDE] = ACTIONS(4824),
    [anon_sym_AT] = ACTIONS(4824),
    [sym_bool] = ACTIONS(4822),
    [sym_byte] = ACTIONS(4822),
    [sym_ubyte] = ACTIONS(4822),
    [sym_char] = ACTIONS(4822),
    [sym_short] = ACTIONS(4822),
    [sym_ushort] = ACTIONS(4822),
    [sym_int] = ACTIONS(4822),
    [sym_uint] = ACTIONS(4822),
    [sym_long] = ACTIONS(4822),
    [sym_ulong] = ACTIONS(4822),
    [sym_cent] = ACTIONS(4822),
    [sym_ucent] = ACTIONS(4822),
    [sym_wchar] = ACTIONS(4822),
    [sym_dchar] = ACTIONS(4822),
    [sym_float] = ACTIONS(4822),
    [sym_double] = ACTIONS(4822),
    [sym_real] = ACTIONS(4822),
    [sym_ifloat] = ACTIONS(4822),
    [sym_idouble] = ACTIONS(4822),
    [sym_ireal] = ACTIONS(4822),
    [sym_cfloat] = ACTIONS(4822),
    [sym_cdouble] = ACTIONS(4822),
    [sym_creal] = ACTIONS(4822),
    [sym_size_t] = ACTIONS(4822),
    [sym_ptrdiff_t] = ACTIONS(4822),
    [sym_string] = ACTIONS(4822),
    [sym_cstring] = ACTIONS(4822),
    [sym_dstring] = ACTIONS(4822),
    [sym_wstring] = ACTIONS(4822),
    [sym_noreturn] = ACTIONS(4822),
    [sym_this] = ACTIONS(4822),
    [sym_abstract] = ACTIONS(4822),
    [sym_alias] = ACTIONS(4822),
    [sym_align] = ACTIONS(4822),
    [sym_auto] = ACTIONS(4822),
    [sym_catch] = ACTIONS(4822),
    [sym_class] = ACTIONS(4822),
    [sym_const] = ACTIONS(4822),
    [sym_debug] = ACTIONS(4822),
    [sym_deprecated] = ACTIONS(4822),
    [sym_else] = ACTIONS(4822),
    [sym_enum] = ACTIONS(4822),
    [sym_export] = ACTIONS(4822),
    [sym_extern] = ACTIONS(4822),
    [sym_final] = ACTIONS(4822),
    [sym_finally] = ACTIONS(4822),
    [sym_immutable] = ACTIONS(4822),
    [sym_import] = ACTIONS(4822),
    [sym_inout] = ACTIONS(4822),
    [sym_interface] = ACTIONS(4822),
    [sym_invariant] = ACTIONS(4822),
    [sym_mixin] = ACTIONS(4822),
    [sym_nothrow] = ACTIONS(4822),
    [sym_override] = ACTIONS(4822),
    [sym_package] = ACTIONS(4822),
    [sym_pragma] = ACTIONS(4822),
    [sym_private] = ACTIONS(4822),
    [sym_protected] = ACTIONS(4822),
    [sym_public] = ACTIONS(4822),
    [sym_pure] = ACTIONS(4822),
    [sym_ref] = ACTIONS(4822),
    [sym_return] = ACTIONS(4822),
    [sym_scope] = ACTIONS(4822),
    [sym_shared] = ACTIONS(4822),
    [sym_static] = ACTIONS(4822),
    [sym_struct] = ACTIONS(4822),
    [sym_synchronized] = ACTIONS(4822),
    [sym_template] = ACTIONS(4822),
    [sym_typeof] = ACTIONS(4822),
    [sym_union] = ACTIONS(4822),
    [sym_unittest] = ACTIONS(4822),
    [sym_version] = ACTIONS(4822),
    [sym_while] = ACTIONS(4822),
    [sym_gshared] = ACTIONS(4822),
    [sym_traits] = ACTIONS(4822),
    [sym_vector] = ACTIONS(4822),
    [sym_void] = ACTIONS(4822),
    [sym_directive] = ACTIONS(3),
  },
  [2511] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_finally] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
  },
  [2512] = {
    [ts_builtin_sym_end] = ACTIONS(4834),
    [sym_identifier] = ACTIONS(4832),
    [sym_end_file] = ACTIONS(4832),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4834),
    [anon_sym_SEMI] = ACTIONS(4834),
    [anon_sym_TILDE] = ACTIONS(4834),
    [anon_sym_AT] = ACTIONS(4834),
    [sym_bool] = ACTIONS(4832),
    [sym_byte] = ACTIONS(4832),
    [sym_ubyte] = ACTIONS(4832),
    [sym_char] = ACTIONS(4832),
    [sym_short] = ACTIONS(4832),
    [sym_ushort] = ACTIONS(4832),
    [sym_int] = ACTIONS(4832),
    [sym_uint] = ACTIONS(4832),
    [sym_long] = ACTIONS(4832),
    [sym_ulong] = ACTIONS(4832),
    [sym_cent] = ACTIONS(4832),
    [sym_ucent] = ACTIONS(4832),
    [sym_wchar] = ACTIONS(4832),
    [sym_dchar] = ACTIONS(4832),
    [sym_float] = ACTIONS(4832),
    [sym_double] = ACTIONS(4832),
    [sym_real] = ACTIONS(4832),
    [sym_ifloat] = ACTIONS(4832),
    [sym_idouble] = ACTIONS(4832),
    [sym_ireal] = ACTIONS(4832),
    [sym_cfloat] = ACTIONS(4832),
    [sym_cdouble] = ACTIONS(4832),
    [sym_creal] = ACTIONS(4832),
    [sym_size_t] = ACTIONS(4832),
    [sym_ptrdiff_t] = ACTIONS(4832),
    [sym_string] = ACTIONS(4832),
    [sym_cstring] = ACTIONS(4832),
    [sym_dstring] = ACTIONS(4832),
    [sym_wstring] = ACTIONS(4832),
    [sym_noreturn] = ACTIONS(4832),
    [sym_this] = ACTIONS(4832),
    [sym_abstract] = ACTIONS(4832),
    [sym_alias] = ACTIONS(4832),
    [sym_align] = ACTIONS(4832),
    [sym_auto] = ACTIONS(4832),
    [sym_class] = ACTIONS(4832),
    [sym_const] = ACTIONS(4832),
    [sym_debug] = ACTIONS(4832),
    [sym_deprecated] = ACTIONS(4832),
    [sym_else] = ACTIONS(4832),
    [sym_enum] = ACTIONS(4832),
    [sym_export] = ACTIONS(4832),
    [sym_extern] = ACTIONS(4832),
    [sym_final] = ACTIONS(4832),
    [sym_immutable] = ACTIONS(4832),
    [sym_import] = ACTIONS(4832),
    [sym_inout] = ACTIONS(4832),
    [sym_interface] = ACTIONS(4832),
    [sym_invariant] = ACTIONS(4832),
    [sym_mixin] = ACTIONS(4832),
    [sym_nothrow] = ACTIONS(4832),
    [sym_override] = ACTIONS(4832),
    [sym_package] = ACTIONS(4832),
    [sym_pragma] = ACTIONS(4832),
    [sym_private] = ACTIONS(4832),
    [sym_protected] = ACTIONS(4832),
    [sym_public] = ACTIONS(4832),
    [sym_pure] = ACTIONS(4832),
    [sym_ref] = ACTIONS(4832),
    [sym_return] = ACTIONS(4832),
    [sym_scope] = ACTIONS(4832),
    [sym_shared] = ACTIONS(4832),
    [sym_static] = ACTIONS(4832),
    [sym_struct] = ACTIONS(4832),
    [sym_synchronized] = ACTIONS(4832),
    [sym_template] = ACTIONS(4832),
    [sym_typeof] = ACTIONS(4832),
    [sym_union] = ACTIONS(4832),
    [sym_unittest] = ACTIONS(4832),
    [sym_version] = ACTIONS(4832),
    [sym_while] = ACTIONS(4832),
    [sym_gshared] = ACTIONS(4832),
    [sym_traits] = ACTIONS(4832),
    [sym_vector] = ACTIONS(4832),
    [sym_void] = ACTIONS(4832),
    [sym_directive] = ACTIONS(3),
  },
  [2513] = {
    [sym_identifier] = ACTIONS(4892),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4894),
    [anon_sym_SEMI] = ACTIONS(4894),
    [anon_sym_TILDE] = ACTIONS(4894),
    [anon_sym_AT] = ACTIONS(4894),
    [sym_bool] = ACTIONS(4892),
    [sym_byte] = ACTIONS(4892),
    [sym_ubyte] = ACTIONS(4892),
    [sym_char] = ACTIONS(4892),
    [sym_short] = ACTIONS(4892),
    [sym_ushort] = ACTIONS(4892),
    [sym_int] = ACTIONS(4892),
    [sym_uint] = ACTIONS(4892),
    [sym_long] = ACTIONS(4892),
    [sym_ulong] = ACTIONS(4892),
    [sym_cent] = ACTIONS(4892),
    [sym_ucent] = ACTIONS(4892),
    [sym_wchar] = ACTIONS(4892),
    [sym_dchar] = ACTIONS(4892),
    [sym_float] = ACTIONS(4892),
    [sym_double] = ACTIONS(4892),
    [sym_real] = ACTIONS(4892),
    [sym_ifloat] = ACTIONS(4892),
    [sym_idouble] = ACTIONS(4892),
    [sym_ireal] = ACTIONS(4892),
    [sym_cfloat] = ACTIONS(4892),
    [sym_cdouble] = ACTIONS(4892),
    [sym_creal] = ACTIONS(4892),
    [sym_size_t] = ACTIONS(4892),
    [sym_ptrdiff_t] = ACTIONS(4892),
    [sym_string] = ACTIONS(4892),
    [sym_cstring] = ACTIONS(4892),
    [sym_dstring] = ACTIONS(4892),
    [sym_wstring] = ACTIONS(4892),
    [sym_noreturn] = ACTIONS(4892),
    [sym_this] = ACTIONS(4892),
    [sym_abstract] = ACTIONS(4892),
    [sym_alias] = ACTIONS(4892),
    [sym_align] = ACTIONS(4892),
    [sym_auto] = ACTIONS(4892),
    [sym_catch] = ACTIONS(4892),
    [sym_class] = ACTIONS(4892),
    [sym_const] = ACTIONS(4892),
    [sym_debug] = ACTIONS(4892),
    [sym_deprecated] = ACTIONS(4892),
    [sym_else] = ACTIONS(4892),
    [sym_enum] = ACTIONS(4892),
    [sym_export] = ACTIONS(4892),
    [sym_extern] = ACTIONS(4892),
    [sym_final] = ACTIONS(4892),
    [sym_finally] = ACTIONS(4892),
    [sym_immutable] = ACTIONS(4892),
    [sym_import] = ACTIONS(4892),
    [sym_inout] = ACTIONS(4892),
    [sym_interface] = ACTIONS(4892),
    [sym_invariant] = ACTIONS(4892),
    [sym_mixin] = ACTIONS(4892),
    [sym_nothrow] = ACTIONS(4892),
    [sym_override] = ACTIONS(4892),
    [sym_package] = ACTIONS(4892),
    [sym_pragma] = ACTIONS(4892),
    [sym_private] = ACTIONS(4892),
    [sym_protected] = ACTIONS(4892),
    [sym_public] = ACTIONS(4892),
    [sym_pure] = ACTIONS(4892),
    [sym_ref] = ACTIONS(4892),
    [sym_return] = ACTIONS(4892),
    [sym_scope] = ACTIONS(4892),
    [sym_shared] = ACTIONS(4892),
    [sym_static] = ACTIONS(4892),
    [sym_struct] = ACTIONS(4892),
    [sym_synchronized] = ACTIONS(4892),
    [sym_template] = ACTIONS(4892),
    [sym_typeof] = ACTIONS(4892),
    [sym_union] = ACTIONS(4892),
    [sym_unittest] = ACTIONS(4892),
    [sym_version] = ACTIONS(4892),
    [sym_while] = ACTIONS(4892),
    [sym_gshared] = ACTIONS(4892),
    [sym_traits] = ACTIONS(4892),
    [sym_vector] = ACTIONS(4892),
    [sym_void] = ACTIONS(4892),
    [sym_directive] = ACTIONS(3),
  },
  [2514] = {
    [ts_builtin_sym_end] = ACTIONS(4838),
    [sym_identifier] = ACTIONS(4836),
    [sym_end_file] = ACTIONS(4836),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4838),
    [anon_sym_SEMI] = ACTIONS(4838),
    [anon_sym_TILDE] = ACTIONS(4838),
    [anon_sym_AT] = ACTIONS(4838),
    [sym_bool] = ACTIONS(4836),
    [sym_byte] = ACTIONS(4836),
    [sym_ubyte] = ACTIONS(4836),
    [sym_char] = ACTIONS(4836),
    [sym_short] = ACTIONS(4836),
    [sym_ushort] = ACTIONS(4836),
    [sym_int] = ACTIONS(4836),
    [sym_uint] = ACTIONS(4836),
    [sym_long] = ACTIONS(4836),
    [sym_ulong] = ACTIONS(4836),
    [sym_cent] = ACTIONS(4836),
    [sym_ucent] = ACTIONS(4836),
    [sym_wchar] = ACTIONS(4836),
    [sym_dchar] = ACTIONS(4836),
    [sym_float] = ACTIONS(4836),
    [sym_double] = ACTIONS(4836),
    [sym_real] = ACTIONS(4836),
    [sym_ifloat] = ACTIONS(4836),
    [sym_idouble] = ACTIONS(4836),
    [sym_ireal] = ACTIONS(4836),
    [sym_cfloat] = ACTIONS(4836),
    [sym_cdouble] = ACTIONS(4836),
    [sym_creal] = ACTIONS(4836),
    [sym_size_t] = ACTIONS(4836),
    [sym_ptrdiff_t] = ACTIONS(4836),
    [sym_string] = ACTIONS(4836),
    [sym_cstring] = ACTIONS(4836),
    [sym_dstring] = ACTIONS(4836),
    [sym_wstring] = ACTIONS(4836),
    [sym_noreturn] = ACTIONS(4836),
    [sym_this] = ACTIONS(4836),
    [sym_abstract] = ACTIONS(4836),
    [sym_alias] = ACTIONS(4836),
    [sym_align] = ACTIONS(4836),
    [sym_auto] = ACTIONS(4836),
    [sym_class] = ACTIONS(4836),
    [sym_const] = ACTIONS(4836),
    [sym_debug] = ACTIONS(4836),
    [sym_deprecated] = ACTIONS(4836),
    [sym_else] = ACTIONS(4836),
    [sym_enum] = ACTIONS(4836),
    [sym_export] = ACTIONS(4836),
    [sym_extern] = ACTIONS(4836),
    [sym_final] = ACTIONS(4836),
    [sym_immutable] = ACTIONS(4836),
    [sym_import] = ACTIONS(4836),
    [sym_inout] = ACTIONS(4836),
    [sym_interface] = ACTIONS(4836),
    [sym_invariant] = ACTIONS(4836),
    [sym_mixin] = ACTIONS(4836),
    [sym_nothrow] = ACTIONS(4836),
    [sym_override] = ACTIONS(4836),
    [sym_package] = ACTIONS(4836),
    [sym_pragma] = ACTIONS(4836),
    [sym_private] = ACTIONS(4836),
    [sym_protected] = ACTIONS(4836),
    [sym_public] = ACTIONS(4836),
    [sym_pure] = ACTIONS(4836),
    [sym_ref] = ACTIONS(4836),
    [sym_return] = ACTIONS(4836),
    [sym_scope] = ACTIONS(4836),
    [sym_shared] = ACTIONS(4836),
    [sym_static] = ACTIONS(4836),
    [sym_struct] = ACTIONS(4836),
    [sym_synchronized] = ACTIONS(4836),
    [sym_template] = ACTIONS(4836),
    [sym_typeof] = ACTIONS(4836),
    [sym_union] = ACTIONS(4836),
    [sym_unittest] = ACTIONS(4836),
    [sym_version] = ACTIONS(4836),
    [sym_while] = ACTIONS(4836),
    [sym_gshared] = ACTIONS(4836),
    [sym_traits] = ACTIONS(4836),
    [sym_vector] = ACTIONS(4836),
    [sym_void] = ACTIONS(4836),
    [sym_directive] = ACTIONS(3),
  },
  [2515] = {
    [ts_builtin_sym_end] = ACTIONS(4846),
    [sym_identifier] = ACTIONS(4844),
    [sym_end_file] = ACTIONS(4844),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4846),
    [anon_sym_SEMI] = ACTIONS(4846),
    [anon_sym_TILDE] = ACTIONS(4846),
    [anon_sym_AT] = ACTIONS(4846),
    [sym_bool] = ACTIONS(4844),
    [sym_byte] = ACTIONS(4844),
    [sym_ubyte] = ACTIONS(4844),
    [sym_char] = ACTIONS(4844),
    [sym_short] = ACTIONS(4844),
    [sym_ushort] = ACTIONS(4844),
    [sym_int] = ACTIONS(4844),
    [sym_uint] = ACTIONS(4844),
    [sym_long] = ACTIONS(4844),
    [sym_ulong] = ACTIONS(4844),
    [sym_cent] = ACTIONS(4844),
    [sym_ucent] = ACTIONS(4844),
    [sym_wchar] = ACTIONS(4844),
    [sym_dchar] = ACTIONS(4844),
    [sym_float] = ACTIONS(4844),
    [sym_double] = ACTIONS(4844),
    [sym_real] = ACTIONS(4844),
    [sym_ifloat] = ACTIONS(4844),
    [sym_idouble] = ACTIONS(4844),
    [sym_ireal] = ACTIONS(4844),
    [sym_cfloat] = ACTIONS(4844),
    [sym_cdouble] = ACTIONS(4844),
    [sym_creal] = ACTIONS(4844),
    [sym_size_t] = ACTIONS(4844),
    [sym_ptrdiff_t] = ACTIONS(4844),
    [sym_string] = ACTIONS(4844),
    [sym_cstring] = ACTIONS(4844),
    [sym_dstring] = ACTIONS(4844),
    [sym_wstring] = ACTIONS(4844),
    [sym_noreturn] = ACTIONS(4844),
    [sym_this] = ACTIONS(4844),
    [sym_abstract] = ACTIONS(4844),
    [sym_alias] = ACTIONS(4844),
    [sym_align] = ACTIONS(4844),
    [sym_auto] = ACTIONS(4844),
    [sym_class] = ACTIONS(4844),
    [sym_const] = ACTIONS(4844),
    [sym_debug] = ACTIONS(4844),
    [sym_deprecated] = ACTIONS(4844),
    [sym_else] = ACTIONS(4844),
    [sym_enum] = ACTIONS(4844),
    [sym_export] = ACTIONS(4844),
    [sym_extern] = ACTIONS(4844),
    [sym_final] = ACTIONS(4844),
    [sym_immutable] = ACTIONS(4844),
    [sym_import] = ACTIONS(4844),
    [sym_inout] = ACTIONS(4844),
    [sym_interface] = ACTIONS(4844),
    [sym_invariant] = ACTIONS(4844),
    [sym_mixin] = ACTIONS(4844),
    [sym_nothrow] = ACTIONS(4844),
    [sym_override] = ACTIONS(4844),
    [sym_package] = ACTIONS(4844),
    [sym_pragma] = ACTIONS(4844),
    [sym_private] = ACTIONS(4844),
    [sym_protected] = ACTIONS(4844),
    [sym_public] = ACTIONS(4844),
    [sym_pure] = ACTIONS(4844),
    [sym_ref] = ACTIONS(4844),
    [sym_return] = ACTIONS(4844),
    [sym_scope] = ACTIONS(4844),
    [sym_shared] = ACTIONS(4844),
    [sym_static] = ACTIONS(4844),
    [sym_struct] = ACTIONS(4844),
    [sym_synchronized] = ACTIONS(4844),
    [sym_template] = ACTIONS(4844),
    [sym_typeof] = ACTIONS(4844),
    [sym_union] = ACTIONS(4844),
    [sym_unittest] = ACTIONS(4844),
    [sym_version] = ACTIONS(4844),
    [sym_while] = ACTIONS(4844),
    [sym_gshared] = ACTIONS(4844),
    [sym_traits] = ACTIONS(4844),
    [sym_vector] = ACTIONS(4844),
    [sym_void] = ACTIONS(4844),
    [sym_directive] = ACTIONS(3),
  },
  [2516] = {
    [ts_builtin_sym_end] = ACTIONS(5042),
    [sym_identifier] = ACTIONS(5040),
    [sym_end_file] = ACTIONS(5040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5042),
    [anon_sym_SEMI] = ACTIONS(5042),
    [anon_sym_TILDE] = ACTIONS(5042),
    [anon_sym_AT] = ACTIONS(5042),
    [sym_bool] = ACTIONS(5040),
    [sym_byte] = ACTIONS(5040),
    [sym_ubyte] = ACTIONS(5040),
    [sym_char] = ACTIONS(5040),
    [sym_short] = ACTIONS(5040),
    [sym_ushort] = ACTIONS(5040),
    [sym_int] = ACTIONS(5040),
    [sym_uint] = ACTIONS(5040),
    [sym_long] = ACTIONS(5040),
    [sym_ulong] = ACTIONS(5040),
    [sym_cent] = ACTIONS(5040),
    [sym_ucent] = ACTIONS(5040),
    [sym_wchar] = ACTIONS(5040),
    [sym_dchar] = ACTIONS(5040),
    [sym_float] = ACTIONS(5040),
    [sym_double] = ACTIONS(5040),
    [sym_real] = ACTIONS(5040),
    [sym_ifloat] = ACTIONS(5040),
    [sym_idouble] = ACTIONS(5040),
    [sym_ireal] = ACTIONS(5040),
    [sym_cfloat] = ACTIONS(5040),
    [sym_cdouble] = ACTIONS(5040),
    [sym_creal] = ACTIONS(5040),
    [sym_size_t] = ACTIONS(5040),
    [sym_ptrdiff_t] = ACTIONS(5040),
    [sym_string] = ACTIONS(5040),
    [sym_cstring] = ACTIONS(5040),
    [sym_dstring] = ACTIONS(5040),
    [sym_wstring] = ACTIONS(5040),
    [sym_noreturn] = ACTIONS(5040),
    [sym_this] = ACTIONS(5040),
    [sym_abstract] = ACTIONS(5040),
    [sym_alias] = ACTIONS(5040),
    [sym_align] = ACTIONS(5040),
    [sym_auto] = ACTIONS(5040),
    [sym_class] = ACTIONS(5040),
    [sym_const] = ACTIONS(5040),
    [sym_debug] = ACTIONS(5040),
    [sym_deprecated] = ACTIONS(5040),
    [sym_else] = ACTIONS(5040),
    [sym_enum] = ACTIONS(5040),
    [sym_export] = ACTIONS(5040),
    [sym_extern] = ACTIONS(5040),
    [sym_final] = ACTIONS(5040),
    [sym_immutable] = ACTIONS(5040),
    [sym_import] = ACTIONS(5040),
    [sym_inout] = ACTIONS(5040),
    [sym_interface] = ACTIONS(5040),
    [sym_invariant] = ACTIONS(5040),
    [sym_mixin] = ACTIONS(5040),
    [sym_nothrow] = ACTIONS(5040),
    [sym_override] = ACTIONS(5040),
    [sym_package] = ACTIONS(5040),
    [sym_pragma] = ACTIONS(5040),
    [sym_private] = ACTIONS(5040),
    [sym_protected] = ACTIONS(5040),
    [sym_public] = ACTIONS(5040),
    [sym_pure] = ACTIONS(5040),
    [sym_ref] = ACTIONS(5040),
    [sym_return] = ACTIONS(5040),
    [sym_scope] = ACTIONS(5040),
    [sym_shared] = ACTIONS(5040),
    [sym_static] = ACTIONS(5040),
    [sym_struct] = ACTIONS(5040),
    [sym_synchronized] = ACTIONS(5040),
    [sym_template] = ACTIONS(5040),
    [sym_typeof] = ACTIONS(5040),
    [sym_union] = ACTIONS(5040),
    [sym_unittest] = ACTIONS(5040),
    [sym_version] = ACTIONS(5040),
    [sym_while] = ACTIONS(5040),
    [sym_gshared] = ACTIONS(5040),
    [sym_traits] = ACTIONS(5040),
    [sym_vector] = ACTIONS(5040),
    [sym_void] = ACTIONS(5040),
    [sym_directive] = ACTIONS(3),
  },
  [2517] = {
    [sym_identifier] = ACTIONS(4960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4962),
    [anon_sym_SEMI] = ACTIONS(4962),
    [anon_sym_TILDE] = ACTIONS(4962),
    [anon_sym_AT] = ACTIONS(4962),
    [sym_bool] = ACTIONS(4960),
    [sym_byte] = ACTIONS(4960),
    [sym_ubyte] = ACTIONS(4960),
    [sym_char] = ACTIONS(4960),
    [sym_short] = ACTIONS(4960),
    [sym_ushort] = ACTIONS(4960),
    [sym_int] = ACTIONS(4960),
    [sym_uint] = ACTIONS(4960),
    [sym_long] = ACTIONS(4960),
    [sym_ulong] = ACTIONS(4960),
    [sym_cent] = ACTIONS(4960),
    [sym_ucent] = ACTIONS(4960),
    [sym_wchar] = ACTIONS(4960),
    [sym_dchar] = ACTIONS(4960),
    [sym_float] = ACTIONS(4960),
    [sym_double] = ACTIONS(4960),
    [sym_real] = ACTIONS(4960),
    [sym_ifloat] = ACTIONS(4960),
    [sym_idouble] = ACTIONS(4960),
    [sym_ireal] = ACTIONS(4960),
    [sym_cfloat] = ACTIONS(4960),
    [sym_cdouble] = ACTIONS(4960),
    [sym_creal] = ACTIONS(4960),
    [sym_size_t] = ACTIONS(4960),
    [sym_ptrdiff_t] = ACTIONS(4960),
    [sym_string] = ACTIONS(4960),
    [sym_cstring] = ACTIONS(4960),
    [sym_dstring] = ACTIONS(4960),
    [sym_wstring] = ACTIONS(4960),
    [sym_noreturn] = ACTIONS(4960),
    [sym_this] = ACTIONS(4960),
    [sym_abstract] = ACTIONS(4960),
    [sym_alias] = ACTIONS(4960),
    [sym_align] = ACTIONS(4960),
    [sym_auto] = ACTIONS(4960),
    [sym_catch] = ACTIONS(4960),
    [sym_class] = ACTIONS(4960),
    [sym_const] = ACTIONS(4960),
    [sym_debug] = ACTIONS(4960),
    [sym_deprecated] = ACTIONS(4960),
    [sym_else] = ACTIONS(4960),
    [sym_enum] = ACTIONS(4960),
    [sym_export] = ACTIONS(4960),
    [sym_extern] = ACTIONS(4960),
    [sym_final] = ACTIONS(4960),
    [sym_finally] = ACTIONS(4960),
    [sym_immutable] = ACTIONS(4960),
    [sym_import] = ACTIONS(4960),
    [sym_inout] = ACTIONS(4960),
    [sym_interface] = ACTIONS(4960),
    [sym_invariant] = ACTIONS(4960),
    [sym_mixin] = ACTIONS(4960),
    [sym_nothrow] = ACTIONS(4960),
    [sym_override] = ACTIONS(4960),
    [sym_package] = ACTIONS(4960),
    [sym_pragma] = ACTIONS(4960),
    [sym_private] = ACTIONS(4960),
    [sym_protected] = ACTIONS(4960),
    [sym_public] = ACTIONS(4960),
    [sym_pure] = ACTIONS(4960),
    [sym_ref] = ACTIONS(4960),
    [sym_return] = ACTIONS(4960),
    [sym_scope] = ACTIONS(4960),
    [sym_shared] = ACTIONS(4960),
    [sym_static] = ACTIONS(4960),
    [sym_struct] = ACTIONS(4960),
    [sym_synchronized] = ACTIONS(4960),
    [sym_template] = ACTIONS(4960),
    [sym_typeof] = ACTIONS(4960),
    [sym_union] = ACTIONS(4960),
    [sym_unittest] = ACTIONS(4960),
    [sym_version] = ACTIONS(4960),
    [sym_while] = ACTIONS(4960),
    [sym_gshared] = ACTIONS(4960),
    [sym_traits] = ACTIONS(4960),
    [sym_vector] = ACTIONS(4960),
    [sym_void] = ACTIONS(4960),
    [sym_directive] = ACTIONS(3),
  },
  [2518] = {
    [sym_at_attribute] = STATE(5569),
    [aux_sym_module_declaration_repeat1] = STATE(5569),
    [sym_identifier] = ACTIONS(2960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(686),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6781),
    [sym_bool] = ACTIONS(2960),
    [sym_byte] = ACTIONS(2960),
    [sym_ubyte] = ACTIONS(2960),
    [sym_char] = ACTIONS(2960),
    [sym_short] = ACTIONS(2960),
    [sym_ushort] = ACTIONS(2960),
    [sym_int] = ACTIONS(2960),
    [sym_uint] = ACTIONS(2960),
    [sym_long] = ACTIONS(2960),
    [sym_ulong] = ACTIONS(2960),
    [sym_cent] = ACTIONS(2960),
    [sym_ucent] = ACTIONS(2960),
    [sym_wchar] = ACTIONS(2960),
    [sym_dchar] = ACTIONS(2960),
    [sym_float] = ACTIONS(2960),
    [sym_double] = ACTIONS(2960),
    [sym_real] = ACTIONS(2960),
    [sym_ifloat] = ACTIONS(2960),
    [sym_idouble] = ACTIONS(2960),
    [sym_ireal] = ACTIONS(2960),
    [sym_cfloat] = ACTIONS(2960),
    [sym_cdouble] = ACTIONS(2960),
    [sym_creal] = ACTIONS(2960),
    [sym_size_t] = ACTIONS(2960),
    [sym_ptrdiff_t] = ACTIONS(2960),
    [sym_string] = ACTIONS(2960),
    [sym_cstring] = ACTIONS(2960),
    [sym_dstring] = ACTIONS(2960),
    [sym_wstring] = ACTIONS(2960),
    [sym_noreturn] = ACTIONS(2960),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(2960),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(2960),
    [sym_auto] = ACTIONS(2960),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(2960),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(2960),
    [sym_enum] = ACTIONS(2960),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(2960),
    [sym_final] = ACTIONS(2960),
    [sym_immutable] = ACTIONS(2960),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(2960),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(2960),
    [sym_module] = ACTIONS(6783),
    [sym_nothrow] = ACTIONS(2960),
    [sym_override] = ACTIONS(2960),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(2960),
    [sym_ref] = ACTIONS(2960),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(2960),
    [sym_shared] = ACTIONS(2960),
    [sym_static] = ACTIONS(2960),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(2960),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(2960),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(2960),
    [sym_traits] = ACTIONS(2960),
    [sym_vector] = ACTIONS(2960),
    [sym_void] = ACTIONS(2960),
    [sym_directive] = ACTIONS(3),
  },
  [2519] = {
    [ts_builtin_sym_end] = ACTIONS(4866),
    [sym_identifier] = ACTIONS(4864),
    [sym_end_file] = ACTIONS(4864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4866),
    [anon_sym_SEMI] = ACTIONS(4866),
    [anon_sym_TILDE] = ACTIONS(4866),
    [anon_sym_AT] = ACTIONS(4866),
    [sym_bool] = ACTIONS(4864),
    [sym_byte] = ACTIONS(4864),
    [sym_ubyte] = ACTIONS(4864),
    [sym_char] = ACTIONS(4864),
    [sym_short] = ACTIONS(4864),
    [sym_ushort] = ACTIONS(4864),
    [sym_int] = ACTIONS(4864),
    [sym_uint] = ACTIONS(4864),
    [sym_long] = ACTIONS(4864),
    [sym_ulong] = ACTIONS(4864),
    [sym_cent] = ACTIONS(4864),
    [sym_ucent] = ACTIONS(4864),
    [sym_wchar] = ACTIONS(4864),
    [sym_dchar] = ACTIONS(4864),
    [sym_float] = ACTIONS(4864),
    [sym_double] = ACTIONS(4864),
    [sym_real] = ACTIONS(4864),
    [sym_ifloat] = ACTIONS(4864),
    [sym_idouble] = ACTIONS(4864),
    [sym_ireal] = ACTIONS(4864),
    [sym_cfloat] = ACTIONS(4864),
    [sym_cdouble] = ACTIONS(4864),
    [sym_creal] = ACTIONS(4864),
    [sym_size_t] = ACTIONS(4864),
    [sym_ptrdiff_t] = ACTIONS(4864),
    [sym_string] = ACTIONS(4864),
    [sym_cstring] = ACTIONS(4864),
    [sym_dstring] = ACTIONS(4864),
    [sym_wstring] = ACTIONS(4864),
    [sym_noreturn] = ACTIONS(4864),
    [sym_this] = ACTIONS(4864),
    [sym_abstract] = ACTIONS(4864),
    [sym_alias] = ACTIONS(4864),
    [sym_align] = ACTIONS(4864),
    [sym_auto] = ACTIONS(4864),
    [sym_class] = ACTIONS(4864),
    [sym_const] = ACTIONS(4864),
    [sym_debug] = ACTIONS(4864),
    [sym_deprecated] = ACTIONS(4864),
    [sym_else] = ACTIONS(4864),
    [sym_enum] = ACTIONS(4864),
    [sym_export] = ACTIONS(4864),
    [sym_extern] = ACTIONS(4864),
    [sym_final] = ACTIONS(4864),
    [sym_immutable] = ACTIONS(4864),
    [sym_import] = ACTIONS(4864),
    [sym_inout] = ACTIONS(4864),
    [sym_interface] = ACTIONS(4864),
    [sym_invariant] = ACTIONS(4864),
    [sym_mixin] = ACTIONS(4864),
    [sym_nothrow] = ACTIONS(4864),
    [sym_override] = ACTIONS(4864),
    [sym_package] = ACTIONS(4864),
    [sym_pragma] = ACTIONS(4864),
    [sym_private] = ACTIONS(4864),
    [sym_protected] = ACTIONS(4864),
    [sym_public] = ACTIONS(4864),
    [sym_pure] = ACTIONS(4864),
    [sym_ref] = ACTIONS(4864),
    [sym_return] = ACTIONS(4864),
    [sym_scope] = ACTIONS(4864),
    [sym_shared] = ACTIONS(4864),
    [sym_static] = ACTIONS(4864),
    [sym_struct] = ACTIONS(4864),
    [sym_synchronized] = ACTIONS(4864),
    [sym_template] = ACTIONS(4864),
    [sym_typeof] = ACTIONS(4864),
    [sym_union] = ACTIONS(4864),
    [sym_unittest] = ACTIONS(4864),
    [sym_version] = ACTIONS(4864),
    [sym_while] = ACTIONS(4864),
    [sym_gshared] = ACTIONS(4864),
    [sym_traits] = ACTIONS(4864),
    [sym_vector] = ACTIONS(4864),
    [sym_void] = ACTIONS(4864),
    [sym_directive] = ACTIONS(3),
  },
  [2520] = {
    [sym_identifier] = ACTIONS(4758),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4760),
    [anon_sym_SEMI] = ACTIONS(4760),
    [anon_sym_TILDE] = ACTIONS(4760),
    [anon_sym_AT] = ACTIONS(4760),
    [sym_bool] = ACTIONS(4758),
    [sym_byte] = ACTIONS(4758),
    [sym_ubyte] = ACTIONS(4758),
    [sym_char] = ACTIONS(4758),
    [sym_short] = ACTIONS(4758),
    [sym_ushort] = ACTIONS(4758),
    [sym_int] = ACTIONS(4758),
    [sym_uint] = ACTIONS(4758),
    [sym_long] = ACTIONS(4758),
    [sym_ulong] = ACTIONS(4758),
    [sym_cent] = ACTIONS(4758),
    [sym_ucent] = ACTIONS(4758),
    [sym_wchar] = ACTIONS(4758),
    [sym_dchar] = ACTIONS(4758),
    [sym_float] = ACTIONS(4758),
    [sym_double] = ACTIONS(4758),
    [sym_real] = ACTIONS(4758),
    [sym_ifloat] = ACTIONS(4758),
    [sym_idouble] = ACTIONS(4758),
    [sym_ireal] = ACTIONS(4758),
    [sym_cfloat] = ACTIONS(4758),
    [sym_cdouble] = ACTIONS(4758),
    [sym_creal] = ACTIONS(4758),
    [sym_size_t] = ACTIONS(4758),
    [sym_ptrdiff_t] = ACTIONS(4758),
    [sym_string] = ACTIONS(4758),
    [sym_cstring] = ACTIONS(4758),
    [sym_dstring] = ACTIONS(4758),
    [sym_wstring] = ACTIONS(4758),
    [sym_noreturn] = ACTIONS(4758),
    [sym_this] = ACTIONS(4758),
    [sym_abstract] = ACTIONS(4758),
    [sym_alias] = ACTIONS(4758),
    [sym_align] = ACTIONS(4758),
    [sym_auto] = ACTIONS(4758),
    [sym_catch] = ACTIONS(4758),
    [sym_class] = ACTIONS(4758),
    [sym_const] = ACTIONS(4758),
    [sym_debug] = ACTIONS(4758),
    [sym_deprecated] = ACTIONS(4758),
    [sym_else] = ACTIONS(4758),
    [sym_enum] = ACTIONS(4758),
    [sym_export] = ACTIONS(4758),
    [sym_extern] = ACTIONS(4758),
    [sym_final] = ACTIONS(4758),
    [sym_finally] = ACTIONS(4758),
    [sym_immutable] = ACTIONS(4758),
    [sym_import] = ACTIONS(4758),
    [sym_inout] = ACTIONS(4758),
    [sym_interface] = ACTIONS(4758),
    [sym_invariant] = ACTIONS(4758),
    [sym_mixin] = ACTIONS(4758),
    [sym_nothrow] = ACTIONS(4758),
    [sym_override] = ACTIONS(4758),
    [sym_package] = ACTIONS(4758),
    [sym_pragma] = ACTIONS(4758),
    [sym_private] = ACTIONS(4758),
    [sym_protected] = ACTIONS(4758),
    [sym_public] = ACTIONS(4758),
    [sym_pure] = ACTIONS(4758),
    [sym_ref] = ACTIONS(4758),
    [sym_return] = ACTIONS(4758),
    [sym_scope] = ACTIONS(4758),
    [sym_shared] = ACTIONS(4758),
    [sym_static] = ACTIONS(4758),
    [sym_struct] = ACTIONS(4758),
    [sym_synchronized] = ACTIONS(4758),
    [sym_template] = ACTIONS(4758),
    [sym_typeof] = ACTIONS(4758),
    [sym_union] = ACTIONS(4758),
    [sym_unittest] = ACTIONS(4758),
    [sym_version] = ACTIONS(4758),
    [sym_while] = ACTIONS(4758),
    [sym_gshared] = ACTIONS(4758),
    [sym_traits] = ACTIONS(4758),
    [sym_vector] = ACTIONS(4758),
    [sym_void] = ACTIONS(4758),
    [sym_directive] = ACTIONS(3),
  },
  [2521] = {
    [ts_builtin_sym_end] = ACTIONS(4870),
    [sym_identifier] = ACTIONS(4868),
    [sym_end_file] = ACTIONS(4868),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4870),
    [anon_sym_SEMI] = ACTIONS(4870),
    [anon_sym_TILDE] = ACTIONS(4870),
    [anon_sym_AT] = ACTIONS(4870),
    [sym_bool] = ACTIONS(4868),
    [sym_byte] = ACTIONS(4868),
    [sym_ubyte] = ACTIONS(4868),
    [sym_char] = ACTIONS(4868),
    [sym_short] = ACTIONS(4868),
    [sym_ushort] = ACTIONS(4868),
    [sym_int] = ACTIONS(4868),
    [sym_uint] = ACTIONS(4868),
    [sym_long] = ACTIONS(4868),
    [sym_ulong] = ACTIONS(4868),
    [sym_cent] = ACTIONS(4868),
    [sym_ucent] = ACTIONS(4868),
    [sym_wchar] = ACTIONS(4868),
    [sym_dchar] = ACTIONS(4868),
    [sym_float] = ACTIONS(4868),
    [sym_double] = ACTIONS(4868),
    [sym_real] = ACTIONS(4868),
    [sym_ifloat] = ACTIONS(4868),
    [sym_idouble] = ACTIONS(4868),
    [sym_ireal] = ACTIONS(4868),
    [sym_cfloat] = ACTIONS(4868),
    [sym_cdouble] = ACTIONS(4868),
    [sym_creal] = ACTIONS(4868),
    [sym_size_t] = ACTIONS(4868),
    [sym_ptrdiff_t] = ACTIONS(4868),
    [sym_string] = ACTIONS(4868),
    [sym_cstring] = ACTIONS(4868),
    [sym_dstring] = ACTIONS(4868),
    [sym_wstring] = ACTIONS(4868),
    [sym_noreturn] = ACTIONS(4868),
    [sym_this] = ACTIONS(4868),
    [sym_abstract] = ACTIONS(4868),
    [sym_alias] = ACTIONS(4868),
    [sym_align] = ACTIONS(4868),
    [sym_auto] = ACTIONS(4868),
    [sym_class] = ACTIONS(4868),
    [sym_const] = ACTIONS(4868),
    [sym_debug] = ACTIONS(4868),
    [sym_deprecated] = ACTIONS(4868),
    [sym_else] = ACTIONS(4868),
    [sym_enum] = ACTIONS(4868),
    [sym_export] = ACTIONS(4868),
    [sym_extern] = ACTIONS(4868),
    [sym_final] = ACTIONS(4868),
    [sym_immutable] = ACTIONS(4868),
    [sym_import] = ACTIONS(4868),
    [sym_inout] = ACTIONS(4868),
    [sym_interface] = ACTIONS(4868),
    [sym_invariant] = ACTIONS(4868),
    [sym_mixin] = ACTIONS(4868),
    [sym_nothrow] = ACTIONS(4868),
    [sym_override] = ACTIONS(4868),
    [sym_package] = ACTIONS(4868),
    [sym_pragma] = ACTIONS(4868),
    [sym_private] = ACTIONS(4868),
    [sym_protected] = ACTIONS(4868),
    [sym_public] = ACTIONS(4868),
    [sym_pure] = ACTIONS(4868),
    [sym_ref] = ACTIONS(4868),
    [sym_return] = ACTIONS(4868),
    [sym_scope] = ACTIONS(4868),
    [sym_shared] = ACTIONS(4868),
    [sym_static] = ACTIONS(4868),
    [sym_struct] = ACTIONS(4868),
    [sym_synchronized] = ACTIONS(4868),
    [sym_template] = ACTIONS(4868),
    [sym_typeof] = ACTIONS(4868),
    [sym_union] = ACTIONS(4868),
    [sym_unittest] = ACTIONS(4868),
    [sym_version] = ACTIONS(4868),
    [sym_while] = ACTIONS(4868),
    [sym_gshared] = ACTIONS(4868),
    [sym_traits] = ACTIONS(4868),
    [sym_vector] = ACTIONS(4868),
    [sym_void] = ACTIONS(4868),
    [sym_directive] = ACTIONS(3),
  },
  [2522] = {
    [ts_builtin_sym_end] = ACTIONS(4874),
    [sym_identifier] = ACTIONS(4872),
    [sym_end_file] = ACTIONS(4872),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4874),
    [anon_sym_SEMI] = ACTIONS(4874),
    [anon_sym_TILDE] = ACTIONS(4874),
    [anon_sym_AT] = ACTIONS(4874),
    [sym_bool] = ACTIONS(4872),
    [sym_byte] = ACTIONS(4872),
    [sym_ubyte] = ACTIONS(4872),
    [sym_char] = ACTIONS(4872),
    [sym_short] = ACTIONS(4872),
    [sym_ushort] = ACTIONS(4872),
    [sym_int] = ACTIONS(4872),
    [sym_uint] = ACTIONS(4872),
    [sym_long] = ACTIONS(4872),
    [sym_ulong] = ACTIONS(4872),
    [sym_cent] = ACTIONS(4872),
    [sym_ucent] = ACTIONS(4872),
    [sym_wchar] = ACTIONS(4872),
    [sym_dchar] = ACTIONS(4872),
    [sym_float] = ACTIONS(4872),
    [sym_double] = ACTIONS(4872),
    [sym_real] = ACTIONS(4872),
    [sym_ifloat] = ACTIONS(4872),
    [sym_idouble] = ACTIONS(4872),
    [sym_ireal] = ACTIONS(4872),
    [sym_cfloat] = ACTIONS(4872),
    [sym_cdouble] = ACTIONS(4872),
    [sym_creal] = ACTIONS(4872),
    [sym_size_t] = ACTIONS(4872),
    [sym_ptrdiff_t] = ACTIONS(4872),
    [sym_string] = ACTIONS(4872),
    [sym_cstring] = ACTIONS(4872),
    [sym_dstring] = ACTIONS(4872),
    [sym_wstring] = ACTIONS(4872),
    [sym_noreturn] = ACTIONS(4872),
    [sym_this] = ACTIONS(4872),
    [sym_abstract] = ACTIONS(4872),
    [sym_alias] = ACTIONS(4872),
    [sym_align] = ACTIONS(4872),
    [sym_auto] = ACTIONS(4872),
    [sym_class] = ACTIONS(4872),
    [sym_const] = ACTIONS(4872),
    [sym_debug] = ACTIONS(4872),
    [sym_deprecated] = ACTIONS(4872),
    [sym_else] = ACTIONS(4872),
    [sym_enum] = ACTIONS(4872),
    [sym_export] = ACTIONS(4872),
    [sym_extern] = ACTIONS(4872),
    [sym_final] = ACTIONS(4872),
    [sym_immutable] = ACTIONS(4872),
    [sym_import] = ACTIONS(4872),
    [sym_inout] = ACTIONS(4872),
    [sym_interface] = ACTIONS(4872),
    [sym_invariant] = ACTIONS(4872),
    [sym_mixin] = ACTIONS(4872),
    [sym_nothrow] = ACTIONS(4872),
    [sym_override] = ACTIONS(4872),
    [sym_package] = ACTIONS(4872),
    [sym_pragma] = ACTIONS(4872),
    [sym_private] = ACTIONS(4872),
    [sym_protected] = ACTIONS(4872),
    [sym_public] = ACTIONS(4872),
    [sym_pure] = ACTIONS(4872),
    [sym_ref] = ACTIONS(4872),
    [sym_return] = ACTIONS(4872),
    [sym_scope] = ACTIONS(4872),
    [sym_shared] = ACTIONS(4872),
    [sym_static] = ACTIONS(4872),
    [sym_struct] = ACTIONS(4872),
    [sym_synchronized] = ACTIONS(4872),
    [sym_template] = ACTIONS(4872),
    [sym_typeof] = ACTIONS(4872),
    [sym_union] = ACTIONS(4872),
    [sym_unittest] = ACTIONS(4872),
    [sym_version] = ACTIONS(4872),
    [sym_while] = ACTIONS(4872),
    [sym_gshared] = ACTIONS(4872),
    [sym_traits] = ACTIONS(4872),
    [sym_vector] = ACTIONS(4872),
    [sym_void] = ACTIONS(4872),
    [sym_directive] = ACTIONS(3),
  },
  [2523] = {
    [sym_identifier] = ACTIONS(4750),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4752),
    [anon_sym_SEMI] = ACTIONS(4752),
    [anon_sym_TILDE] = ACTIONS(4752),
    [anon_sym_AT] = ACTIONS(4752),
    [sym_bool] = ACTIONS(4750),
    [sym_byte] = ACTIONS(4750),
    [sym_ubyte] = ACTIONS(4750),
    [sym_char] = ACTIONS(4750),
    [sym_short] = ACTIONS(4750),
    [sym_ushort] = ACTIONS(4750),
    [sym_int] = ACTIONS(4750),
    [sym_uint] = ACTIONS(4750),
    [sym_long] = ACTIONS(4750),
    [sym_ulong] = ACTIONS(4750),
    [sym_cent] = ACTIONS(4750),
    [sym_ucent] = ACTIONS(4750),
    [sym_wchar] = ACTIONS(4750),
    [sym_dchar] = ACTIONS(4750),
    [sym_float] = ACTIONS(4750),
    [sym_double] = ACTIONS(4750),
    [sym_real] = ACTIONS(4750),
    [sym_ifloat] = ACTIONS(4750),
    [sym_idouble] = ACTIONS(4750),
    [sym_ireal] = ACTIONS(4750),
    [sym_cfloat] = ACTIONS(4750),
    [sym_cdouble] = ACTIONS(4750),
    [sym_creal] = ACTIONS(4750),
    [sym_size_t] = ACTIONS(4750),
    [sym_ptrdiff_t] = ACTIONS(4750),
    [sym_string] = ACTIONS(4750),
    [sym_cstring] = ACTIONS(4750),
    [sym_dstring] = ACTIONS(4750),
    [sym_wstring] = ACTIONS(4750),
    [sym_noreturn] = ACTIONS(4750),
    [sym_this] = ACTIONS(4750),
    [sym_abstract] = ACTIONS(4750),
    [sym_alias] = ACTIONS(4750),
    [sym_align] = ACTIONS(4750),
    [sym_auto] = ACTIONS(4750),
    [sym_catch] = ACTIONS(4750),
    [sym_class] = ACTIONS(4750),
    [sym_const] = ACTIONS(4750),
    [sym_debug] = ACTIONS(4750),
    [sym_deprecated] = ACTIONS(4750),
    [sym_else] = ACTIONS(4750),
    [sym_enum] = ACTIONS(4750),
    [sym_export] = ACTIONS(4750),
    [sym_extern] = ACTIONS(4750),
    [sym_final] = ACTIONS(4750),
    [sym_finally] = ACTIONS(4750),
    [sym_immutable] = ACTIONS(4750),
    [sym_import] = ACTIONS(4750),
    [sym_inout] = ACTIONS(4750),
    [sym_interface] = ACTIONS(4750),
    [sym_invariant] = ACTIONS(4750),
    [sym_mixin] = ACTIONS(4750),
    [sym_nothrow] = ACTIONS(4750),
    [sym_override] = ACTIONS(4750),
    [sym_package] = ACTIONS(4750),
    [sym_pragma] = ACTIONS(4750),
    [sym_private] = ACTIONS(4750),
    [sym_protected] = ACTIONS(4750),
    [sym_public] = ACTIONS(4750),
    [sym_pure] = ACTIONS(4750),
    [sym_ref] = ACTIONS(4750),
    [sym_return] = ACTIONS(4750),
    [sym_scope] = ACTIONS(4750),
    [sym_shared] = ACTIONS(4750),
    [sym_static] = ACTIONS(4750),
    [sym_struct] = ACTIONS(4750),
    [sym_synchronized] = ACTIONS(4750),
    [sym_template] = ACTIONS(4750),
    [sym_typeof] = ACTIONS(4750),
    [sym_union] = ACTIONS(4750),
    [sym_unittest] = ACTIONS(4750),
    [sym_version] = ACTIONS(4750),
    [sym_while] = ACTIONS(4750),
    [sym_gshared] = ACTIONS(4750),
    [sym_traits] = ACTIONS(4750),
    [sym_vector] = ACTIONS(4750),
    [sym_void] = ACTIONS(4750),
    [sym_directive] = ACTIONS(3),
  },
  [2524] = {
    [sym_identifier] = ACTIONS(4746),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4748),
    [anon_sym_SEMI] = ACTIONS(4748),
    [anon_sym_TILDE] = ACTIONS(4748),
    [anon_sym_AT] = ACTIONS(4748),
    [sym_bool] = ACTIONS(4746),
    [sym_byte] = ACTIONS(4746),
    [sym_ubyte] = ACTIONS(4746),
    [sym_char] = ACTIONS(4746),
    [sym_short] = ACTIONS(4746),
    [sym_ushort] = ACTIONS(4746),
    [sym_int] = ACTIONS(4746),
    [sym_uint] = ACTIONS(4746),
    [sym_long] = ACTIONS(4746),
    [sym_ulong] = ACTIONS(4746),
    [sym_cent] = ACTIONS(4746),
    [sym_ucent] = ACTIONS(4746),
    [sym_wchar] = ACTIONS(4746),
    [sym_dchar] = ACTIONS(4746),
    [sym_float] = ACTIONS(4746),
    [sym_double] = ACTIONS(4746),
    [sym_real] = ACTIONS(4746),
    [sym_ifloat] = ACTIONS(4746),
    [sym_idouble] = ACTIONS(4746),
    [sym_ireal] = ACTIONS(4746),
    [sym_cfloat] = ACTIONS(4746),
    [sym_cdouble] = ACTIONS(4746),
    [sym_creal] = ACTIONS(4746),
    [sym_size_t] = ACTIONS(4746),
    [sym_ptrdiff_t] = ACTIONS(4746),
    [sym_string] = ACTIONS(4746),
    [sym_cstring] = ACTIONS(4746),
    [sym_dstring] = ACTIONS(4746),
    [sym_wstring] = ACTIONS(4746),
    [sym_noreturn] = ACTIONS(4746),
    [sym_this] = ACTIONS(4746),
    [sym_abstract] = ACTIONS(4746),
    [sym_alias] = ACTIONS(4746),
    [sym_align] = ACTIONS(4746),
    [sym_auto] = ACTIONS(4746),
    [sym_catch] = ACTIONS(4746),
    [sym_class] = ACTIONS(4746),
    [sym_const] = ACTIONS(4746),
    [sym_debug] = ACTIONS(4746),
    [sym_deprecated] = ACTIONS(4746),
    [sym_else] = ACTIONS(4746),
    [sym_enum] = ACTIONS(4746),
    [sym_export] = ACTIONS(4746),
    [sym_extern] = ACTIONS(4746),
    [sym_final] = ACTIONS(4746),
    [sym_finally] = ACTIONS(4746),
    [sym_immutable] = ACTIONS(4746),
    [sym_import] = ACTIONS(4746),
    [sym_inout] = ACTIONS(4746),
    [sym_interface] = ACTIONS(4746),
    [sym_invariant] = ACTIONS(4746),
    [sym_mixin] = ACTIONS(4746),
    [sym_nothrow] = ACTIONS(4746),
    [sym_override] = ACTIONS(4746),
    [sym_package] = ACTIONS(4746),
    [sym_pragma] = ACTIONS(4746),
    [sym_private] = ACTIONS(4746),
    [sym_protected] = ACTIONS(4746),
    [sym_public] = ACTIONS(4746),
    [sym_pure] = ACTIONS(4746),
    [sym_ref] = ACTIONS(4746),
    [sym_return] = ACTIONS(4746),
    [sym_scope] = ACTIONS(4746),
    [sym_shared] = ACTIONS(4746),
    [sym_static] = ACTIONS(4746),
    [sym_struct] = ACTIONS(4746),
    [sym_synchronized] = ACTIONS(4746),
    [sym_template] = ACTIONS(4746),
    [sym_typeof] = ACTIONS(4746),
    [sym_union] = ACTIONS(4746),
    [sym_unittest] = ACTIONS(4746),
    [sym_version] = ACTIONS(4746),
    [sym_while] = ACTIONS(4746),
    [sym_gshared] = ACTIONS(4746),
    [sym_traits] = ACTIONS(4746),
    [sym_vector] = ACTIONS(4746),
    [sym_void] = ACTIONS(4746),
    [sym_directive] = ACTIONS(3),
  },
  [2525] = {
    [sym_identifier] = ACTIONS(4606),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4608),
    [anon_sym_SEMI] = ACTIONS(4608),
    [anon_sym_TILDE] = ACTIONS(4608),
    [anon_sym_AT] = ACTIONS(4608),
    [sym_bool] = ACTIONS(4606),
    [sym_byte] = ACTIONS(4606),
    [sym_ubyte] = ACTIONS(4606),
    [sym_char] = ACTIONS(4606),
    [sym_short] = ACTIONS(4606),
    [sym_ushort] = ACTIONS(4606),
    [sym_int] = ACTIONS(4606),
    [sym_uint] = ACTIONS(4606),
    [sym_long] = ACTIONS(4606),
    [sym_ulong] = ACTIONS(4606),
    [sym_cent] = ACTIONS(4606),
    [sym_ucent] = ACTIONS(4606),
    [sym_wchar] = ACTIONS(4606),
    [sym_dchar] = ACTIONS(4606),
    [sym_float] = ACTIONS(4606),
    [sym_double] = ACTIONS(4606),
    [sym_real] = ACTIONS(4606),
    [sym_ifloat] = ACTIONS(4606),
    [sym_idouble] = ACTIONS(4606),
    [sym_ireal] = ACTIONS(4606),
    [sym_cfloat] = ACTIONS(4606),
    [sym_cdouble] = ACTIONS(4606),
    [sym_creal] = ACTIONS(4606),
    [sym_size_t] = ACTIONS(4606),
    [sym_ptrdiff_t] = ACTIONS(4606),
    [sym_string] = ACTIONS(4606),
    [sym_cstring] = ACTIONS(4606),
    [sym_dstring] = ACTIONS(4606),
    [sym_wstring] = ACTIONS(4606),
    [sym_noreturn] = ACTIONS(4606),
    [sym_this] = ACTIONS(4606),
    [sym_abstract] = ACTIONS(4606),
    [sym_alias] = ACTIONS(4606),
    [sym_align] = ACTIONS(4606),
    [sym_auto] = ACTIONS(4606),
    [sym_catch] = ACTIONS(4606),
    [sym_class] = ACTIONS(4606),
    [sym_const] = ACTIONS(4606),
    [sym_debug] = ACTIONS(4606),
    [sym_deprecated] = ACTIONS(4606),
    [sym_else] = ACTIONS(4606),
    [sym_enum] = ACTIONS(4606),
    [sym_export] = ACTIONS(4606),
    [sym_extern] = ACTIONS(4606),
    [sym_final] = ACTIONS(4606),
    [sym_finally] = ACTIONS(4606),
    [sym_immutable] = ACTIONS(4606),
    [sym_import] = ACTIONS(4606),
    [sym_inout] = ACTIONS(4606),
    [sym_interface] = ACTIONS(4606),
    [sym_invariant] = ACTIONS(4606),
    [sym_mixin] = ACTIONS(4606),
    [sym_nothrow] = ACTIONS(4606),
    [sym_override] = ACTIONS(4606),
    [sym_package] = ACTIONS(4606),
    [sym_pragma] = ACTIONS(4606),
    [sym_private] = ACTIONS(4606),
    [sym_protected] = ACTIONS(4606),
    [sym_public] = ACTIONS(4606),
    [sym_pure] = ACTIONS(4606),
    [sym_ref] = ACTIONS(4606),
    [sym_return] = ACTIONS(4606),
    [sym_scope] = ACTIONS(4606),
    [sym_shared] = ACTIONS(4606),
    [sym_static] = ACTIONS(4606),
    [sym_struct] = ACTIONS(4606),
    [sym_synchronized] = ACTIONS(4606),
    [sym_template] = ACTIONS(4606),
    [sym_typeof] = ACTIONS(4606),
    [sym_union] = ACTIONS(4606),
    [sym_unittest] = ACTIONS(4606),
    [sym_version] = ACTIONS(4606),
    [sym_while] = ACTIONS(4606),
    [sym_gshared] = ACTIONS(4606),
    [sym_traits] = ACTIONS(4606),
    [sym_vector] = ACTIONS(4606),
    [sym_void] = ACTIONS(4606),
    [sym_directive] = ACTIONS(3),
  },
  [2526] = {
    [sym_identifier] = ACTIONS(4724),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4726),
    [anon_sym_SEMI] = ACTIONS(4726),
    [anon_sym_TILDE] = ACTIONS(4726),
    [anon_sym_AT] = ACTIONS(4726),
    [sym_bool] = ACTIONS(4724),
    [sym_byte] = ACTIONS(4724),
    [sym_ubyte] = ACTIONS(4724),
    [sym_char] = ACTIONS(4724),
    [sym_short] = ACTIONS(4724),
    [sym_ushort] = ACTIONS(4724),
    [sym_int] = ACTIONS(4724),
    [sym_uint] = ACTIONS(4724),
    [sym_long] = ACTIONS(4724),
    [sym_ulong] = ACTIONS(4724),
    [sym_cent] = ACTIONS(4724),
    [sym_ucent] = ACTIONS(4724),
    [sym_wchar] = ACTIONS(4724),
    [sym_dchar] = ACTIONS(4724),
    [sym_float] = ACTIONS(4724),
    [sym_double] = ACTIONS(4724),
    [sym_real] = ACTIONS(4724),
    [sym_ifloat] = ACTIONS(4724),
    [sym_idouble] = ACTIONS(4724),
    [sym_ireal] = ACTIONS(4724),
    [sym_cfloat] = ACTIONS(4724),
    [sym_cdouble] = ACTIONS(4724),
    [sym_creal] = ACTIONS(4724),
    [sym_size_t] = ACTIONS(4724),
    [sym_ptrdiff_t] = ACTIONS(4724),
    [sym_string] = ACTIONS(4724),
    [sym_cstring] = ACTIONS(4724),
    [sym_dstring] = ACTIONS(4724),
    [sym_wstring] = ACTIONS(4724),
    [sym_noreturn] = ACTIONS(4724),
    [sym_this] = ACTIONS(4724),
    [sym_abstract] = ACTIONS(4724),
    [sym_alias] = ACTIONS(4724),
    [sym_align] = ACTIONS(4724),
    [sym_auto] = ACTIONS(4724),
    [sym_catch] = ACTIONS(4724),
    [sym_class] = ACTIONS(4724),
    [sym_const] = ACTIONS(4724),
    [sym_debug] = ACTIONS(4724),
    [sym_deprecated] = ACTIONS(4724),
    [sym_else] = ACTIONS(4724),
    [sym_enum] = ACTIONS(4724),
    [sym_export] = ACTIONS(4724),
    [sym_extern] = ACTIONS(4724),
    [sym_final] = ACTIONS(4724),
    [sym_finally] = ACTIONS(4724),
    [sym_immutable] = ACTIONS(4724),
    [sym_import] = ACTIONS(4724),
    [sym_inout] = ACTIONS(4724),
    [sym_interface] = ACTIONS(4724),
    [sym_invariant] = ACTIONS(4724),
    [sym_mixin] = ACTIONS(4724),
    [sym_nothrow] = ACTIONS(4724),
    [sym_override] = ACTIONS(4724),
    [sym_package] = ACTIONS(4724),
    [sym_pragma] = ACTIONS(4724),
    [sym_private] = ACTIONS(4724),
    [sym_protected] = ACTIONS(4724),
    [sym_public] = ACTIONS(4724),
    [sym_pure] = ACTIONS(4724),
    [sym_ref] = ACTIONS(4724),
    [sym_return] = ACTIONS(4724),
    [sym_scope] = ACTIONS(4724),
    [sym_shared] = ACTIONS(4724),
    [sym_static] = ACTIONS(4724),
    [sym_struct] = ACTIONS(4724),
    [sym_synchronized] = ACTIONS(4724),
    [sym_template] = ACTIONS(4724),
    [sym_typeof] = ACTIONS(4724),
    [sym_union] = ACTIONS(4724),
    [sym_unittest] = ACTIONS(4724),
    [sym_version] = ACTIONS(4724),
    [sym_while] = ACTIONS(4724),
    [sym_gshared] = ACTIONS(4724),
    [sym_traits] = ACTIONS(4724),
    [sym_vector] = ACTIONS(4724),
    [sym_void] = ACTIONS(4724),
    [sym_directive] = ACTIONS(3),
  },
  [2527] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(6785),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5121),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
  },
  [2528] = {
    [ts_builtin_sym_end] = ACTIONS(2810),
    [sym_identifier] = ACTIONS(2812),
    [sym_end_file] = ACTIONS(2812),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2810),
    [anon_sym_AT] = ACTIONS(2810),
    [sym_bool] = ACTIONS(2812),
    [sym_byte] = ACTIONS(2812),
    [sym_ubyte] = ACTIONS(2812),
    [sym_char] = ACTIONS(2812),
    [sym_short] = ACTIONS(2812),
    [sym_ushort] = ACTIONS(2812),
    [sym_int] = ACTIONS(2812),
    [sym_uint] = ACTIONS(2812),
    [sym_long] = ACTIONS(2812),
    [sym_ulong] = ACTIONS(2812),
    [sym_cent] = ACTIONS(2812),
    [sym_ucent] = ACTIONS(2812),
    [sym_wchar] = ACTIONS(2812),
    [sym_dchar] = ACTIONS(2812),
    [sym_float] = ACTIONS(2812),
    [sym_double] = ACTIONS(2812),
    [sym_real] = ACTIONS(2812),
    [sym_ifloat] = ACTIONS(2812),
    [sym_idouble] = ACTIONS(2812),
    [sym_ireal] = ACTIONS(2812),
    [sym_cfloat] = ACTIONS(2812),
    [sym_cdouble] = ACTIONS(2812),
    [sym_creal] = ACTIONS(2812),
    [sym_size_t] = ACTIONS(2812),
    [sym_ptrdiff_t] = ACTIONS(2812),
    [sym_string] = ACTIONS(2812),
    [sym_cstring] = ACTIONS(2812),
    [sym_dstring] = ACTIONS(2812),
    [sym_wstring] = ACTIONS(2812),
    [sym_noreturn] = ACTIONS(2812),
    [sym_this] = ACTIONS(2812),
    [sym_abstract] = ACTIONS(2812),
    [sym_alias] = ACTIONS(2812),
    [sym_align] = ACTIONS(2812),
    [sym_auto] = ACTIONS(2812),
    [sym_class] = ACTIONS(2812),
    [sym_const] = ACTIONS(2812),
    [sym_debug] = ACTIONS(2812),
    [sym_deprecated] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(2812),
    [sym_export] = ACTIONS(2812),
    [sym_extern] = ACTIONS(2812),
    [sym_final] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(2812),
    [sym_import] = ACTIONS(2812),
    [sym_inout] = ACTIONS(2812),
    [sym_interface] = ACTIONS(2812),
    [sym_invariant] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2812),
    [sym_nothrow] = ACTIONS(2812),
    [sym_override] = ACTIONS(2812),
    [sym_package] = ACTIONS(2812),
    [sym_pragma] = ACTIONS(2812),
    [sym_private] = ACTIONS(2812),
    [sym_protected] = ACTIONS(2812),
    [sym_public] = ACTIONS(2812),
    [sym_pure] = ACTIONS(2812),
    [sym_ref] = ACTIONS(2812),
    [sym_return] = ACTIONS(2812),
    [sym_scope] = ACTIONS(2812),
    [sym_shared] = ACTIONS(2812),
    [sym_static] = ACTIONS(2812),
    [sym_struct] = ACTIONS(2812),
    [sym_synchronized] = ACTIONS(2812),
    [sym_template] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(2812),
    [sym_union] = ACTIONS(2812),
    [sym_unittest] = ACTIONS(2812),
    [sym_version] = ACTIONS(2812),
    [sym_while] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(2812),
    [sym_traits] = ACTIONS(2812),
    [sym_vector] = ACTIONS(2812),
    [sym_void] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
  },
  [2529] = {
    [sym_identifier] = ACTIONS(4716),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4718),
    [anon_sym_SEMI] = ACTIONS(4718),
    [anon_sym_TILDE] = ACTIONS(4718),
    [anon_sym_AT] = ACTIONS(4718),
    [sym_bool] = ACTIONS(4716),
    [sym_byte] = ACTIONS(4716),
    [sym_ubyte] = ACTIONS(4716),
    [sym_char] = ACTIONS(4716),
    [sym_short] = ACTIONS(4716),
    [sym_ushort] = ACTIONS(4716),
    [sym_int] = ACTIONS(4716),
    [sym_uint] = ACTIONS(4716),
    [sym_long] = ACTIONS(4716),
    [sym_ulong] = ACTIONS(4716),
    [sym_cent] = ACTIONS(4716),
    [sym_ucent] = ACTIONS(4716),
    [sym_wchar] = ACTIONS(4716),
    [sym_dchar] = ACTIONS(4716),
    [sym_float] = ACTIONS(4716),
    [sym_double] = ACTIONS(4716),
    [sym_real] = ACTIONS(4716),
    [sym_ifloat] = ACTIONS(4716),
    [sym_idouble] = ACTIONS(4716),
    [sym_ireal] = ACTIONS(4716),
    [sym_cfloat] = ACTIONS(4716),
    [sym_cdouble] = ACTIONS(4716),
    [sym_creal] = ACTIONS(4716),
    [sym_size_t] = ACTIONS(4716),
    [sym_ptrdiff_t] = ACTIONS(4716),
    [sym_string] = ACTIONS(4716),
    [sym_cstring] = ACTIONS(4716),
    [sym_dstring] = ACTIONS(4716),
    [sym_wstring] = ACTIONS(4716),
    [sym_noreturn] = ACTIONS(4716),
    [sym_this] = ACTIONS(4716),
    [sym_abstract] = ACTIONS(4716),
    [sym_alias] = ACTIONS(4716),
    [sym_align] = ACTIONS(4716),
    [sym_auto] = ACTIONS(4716),
    [sym_catch] = ACTIONS(4716),
    [sym_class] = ACTIONS(4716),
    [sym_const] = ACTIONS(4716),
    [sym_debug] = ACTIONS(4716),
    [sym_deprecated] = ACTIONS(4716),
    [sym_else] = ACTIONS(4716),
    [sym_enum] = ACTIONS(4716),
    [sym_export] = ACTIONS(4716),
    [sym_extern] = ACTIONS(4716),
    [sym_final] = ACTIONS(4716),
    [sym_finally] = ACTIONS(4716),
    [sym_immutable] = ACTIONS(4716),
    [sym_import] = ACTIONS(4716),
    [sym_inout] = ACTIONS(4716),
    [sym_interface] = ACTIONS(4716),
    [sym_invariant] = ACTIONS(4716),
    [sym_mixin] = ACTIONS(4716),
    [sym_nothrow] = ACTIONS(4716),
    [sym_override] = ACTIONS(4716),
    [sym_package] = ACTIONS(4716),
    [sym_pragma] = ACTIONS(4716),
    [sym_private] = ACTIONS(4716),
    [sym_protected] = ACTIONS(4716),
    [sym_public] = ACTIONS(4716),
    [sym_pure] = ACTIONS(4716),
    [sym_ref] = ACTIONS(4716),
    [sym_return] = ACTIONS(4716),
    [sym_scope] = ACTIONS(4716),
    [sym_shared] = ACTIONS(4716),
    [sym_static] = ACTIONS(4716),
    [sym_struct] = ACTIONS(4716),
    [sym_synchronized] = ACTIONS(4716),
    [sym_template] = ACTIONS(4716),
    [sym_typeof] = ACTIONS(4716),
    [sym_union] = ACTIONS(4716),
    [sym_unittest] = ACTIONS(4716),
    [sym_version] = ACTIONS(4716),
    [sym_while] = ACTIONS(4716),
    [sym_gshared] = ACTIONS(4716),
    [sym_traits] = ACTIONS(4716),
    [sym_vector] = ACTIONS(4716),
    [sym_void] = ACTIONS(4716),
    [sym_directive] = ACTIONS(3),
  },
  [2530] = {
    [sym_identifier] = ACTIONS(4289),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4291),
    [anon_sym_SEMI] = ACTIONS(4291),
    [anon_sym_TILDE] = ACTIONS(4291),
    [anon_sym_AT] = ACTIONS(4291),
    [sym_bool] = ACTIONS(4289),
    [sym_byte] = ACTIONS(4289),
    [sym_ubyte] = ACTIONS(4289),
    [sym_char] = ACTIONS(4289),
    [sym_short] = ACTIONS(4289),
    [sym_ushort] = ACTIONS(4289),
    [sym_int] = ACTIONS(4289),
    [sym_uint] = ACTIONS(4289),
    [sym_long] = ACTIONS(4289),
    [sym_ulong] = ACTIONS(4289),
    [sym_cent] = ACTIONS(4289),
    [sym_ucent] = ACTIONS(4289),
    [sym_wchar] = ACTIONS(4289),
    [sym_dchar] = ACTIONS(4289),
    [sym_float] = ACTIONS(4289),
    [sym_double] = ACTIONS(4289),
    [sym_real] = ACTIONS(4289),
    [sym_ifloat] = ACTIONS(4289),
    [sym_idouble] = ACTIONS(4289),
    [sym_ireal] = ACTIONS(4289),
    [sym_cfloat] = ACTIONS(4289),
    [sym_cdouble] = ACTIONS(4289),
    [sym_creal] = ACTIONS(4289),
    [sym_size_t] = ACTIONS(4289),
    [sym_ptrdiff_t] = ACTIONS(4289),
    [sym_string] = ACTIONS(4289),
    [sym_cstring] = ACTIONS(4289),
    [sym_dstring] = ACTIONS(4289),
    [sym_wstring] = ACTIONS(4289),
    [sym_noreturn] = ACTIONS(4289),
    [sym_this] = ACTIONS(4289),
    [sym_abstract] = ACTIONS(4289),
    [sym_alias] = ACTIONS(4289),
    [sym_align] = ACTIONS(4289),
    [sym_auto] = ACTIONS(4289),
    [sym_catch] = ACTIONS(4289),
    [sym_class] = ACTIONS(4289),
    [sym_const] = ACTIONS(4289),
    [sym_debug] = ACTIONS(4289),
    [sym_deprecated] = ACTIONS(4289),
    [sym_else] = ACTIONS(4289),
    [sym_enum] = ACTIONS(4289),
    [sym_export] = ACTIONS(4289),
    [sym_extern] = ACTIONS(4289),
    [sym_final] = ACTIONS(4289),
    [sym_finally] = ACTIONS(4289),
    [sym_immutable] = ACTIONS(4289),
    [sym_import] = ACTIONS(4289),
    [sym_inout] = ACTIONS(4289),
    [sym_interface] = ACTIONS(4289),
    [sym_invariant] = ACTIONS(4289),
    [sym_mixin] = ACTIONS(4289),
    [sym_nothrow] = ACTIONS(4289),
    [sym_override] = ACTIONS(4289),
    [sym_package] = ACTIONS(4289),
    [sym_pragma] = ACTIONS(4289),
    [sym_private] = ACTIONS(4289),
    [sym_protected] = ACTIONS(4289),
    [sym_public] = ACTIONS(4289),
    [sym_pure] = ACTIONS(4289),
    [sym_ref] = ACTIONS(4289),
    [sym_return] = ACTIONS(4289),
    [sym_scope] = ACTIONS(4289),
    [sym_shared] = ACTIONS(4289),
    [sym_static] = ACTIONS(4289),
    [sym_struct] = ACTIONS(4289),
    [sym_synchronized] = ACTIONS(4289),
    [sym_template] = ACTIONS(4289),
    [sym_typeof] = ACTIONS(4289),
    [sym_union] = ACTIONS(4289),
    [sym_unittest] = ACTIONS(4289),
    [sym_version] = ACTIONS(4289),
    [sym_while] = ACTIONS(4289),
    [sym_gshared] = ACTIONS(4289),
    [sym_traits] = ACTIONS(4289),
    [sym_vector] = ACTIONS(4289),
    [sym_void] = ACTIONS(4289),
    [sym_directive] = ACTIONS(3),
  },
  [2531] = {
    [ts_builtin_sym_end] = ACTIONS(4890),
    [sym_identifier] = ACTIONS(4888),
    [sym_end_file] = ACTIONS(4888),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4890),
    [anon_sym_SEMI] = ACTIONS(4890),
    [anon_sym_TILDE] = ACTIONS(4890),
    [anon_sym_AT] = ACTIONS(4890),
    [sym_bool] = ACTIONS(4888),
    [sym_byte] = ACTIONS(4888),
    [sym_ubyte] = ACTIONS(4888),
    [sym_char] = ACTIONS(4888),
    [sym_short] = ACTIONS(4888),
    [sym_ushort] = ACTIONS(4888),
    [sym_int] = ACTIONS(4888),
    [sym_uint] = ACTIONS(4888),
    [sym_long] = ACTIONS(4888),
    [sym_ulong] = ACTIONS(4888),
    [sym_cent] = ACTIONS(4888),
    [sym_ucent] = ACTIONS(4888),
    [sym_wchar] = ACTIONS(4888),
    [sym_dchar] = ACTIONS(4888),
    [sym_float] = ACTIONS(4888),
    [sym_double] = ACTIONS(4888),
    [sym_real] = ACTIONS(4888),
    [sym_ifloat] = ACTIONS(4888),
    [sym_idouble] = ACTIONS(4888),
    [sym_ireal] = ACTIONS(4888),
    [sym_cfloat] = ACTIONS(4888),
    [sym_cdouble] = ACTIONS(4888),
    [sym_creal] = ACTIONS(4888),
    [sym_size_t] = ACTIONS(4888),
    [sym_ptrdiff_t] = ACTIONS(4888),
    [sym_string] = ACTIONS(4888),
    [sym_cstring] = ACTIONS(4888),
    [sym_dstring] = ACTIONS(4888),
    [sym_wstring] = ACTIONS(4888),
    [sym_noreturn] = ACTIONS(4888),
    [sym_this] = ACTIONS(4888),
    [sym_abstract] = ACTIONS(4888),
    [sym_alias] = ACTIONS(4888),
    [sym_align] = ACTIONS(4888),
    [sym_auto] = ACTIONS(4888),
    [sym_class] = ACTIONS(4888),
    [sym_const] = ACTIONS(4888),
    [sym_debug] = ACTIONS(4888),
    [sym_deprecated] = ACTIONS(4888),
    [sym_else] = ACTIONS(4888),
    [sym_enum] = ACTIONS(4888),
    [sym_export] = ACTIONS(4888),
    [sym_extern] = ACTIONS(4888),
    [sym_final] = ACTIONS(4888),
    [sym_immutable] = ACTIONS(4888),
    [sym_import] = ACTIONS(4888),
    [sym_inout] = ACTIONS(4888),
    [sym_interface] = ACTIONS(4888),
    [sym_invariant] = ACTIONS(4888),
    [sym_mixin] = ACTIONS(4888),
    [sym_nothrow] = ACTIONS(4888),
    [sym_override] = ACTIONS(4888),
    [sym_package] = ACTIONS(4888),
    [sym_pragma] = ACTIONS(4888),
    [sym_private] = ACTIONS(4888),
    [sym_protected] = ACTIONS(4888),
    [sym_public] = ACTIONS(4888),
    [sym_pure] = ACTIONS(4888),
    [sym_ref] = ACTIONS(4888),
    [sym_return] = ACTIONS(4888),
    [sym_scope] = ACTIONS(4888),
    [sym_shared] = ACTIONS(4888),
    [sym_static] = ACTIONS(4888),
    [sym_struct] = ACTIONS(4888),
    [sym_synchronized] = ACTIONS(4888),
    [sym_template] = ACTIONS(4888),
    [sym_typeof] = ACTIONS(4888),
    [sym_union] = ACTIONS(4888),
    [sym_unittest] = ACTIONS(4888),
    [sym_version] = ACTIONS(4888),
    [sym_while] = ACTIONS(4888),
    [sym_gshared] = ACTIONS(4888),
    [sym_traits] = ACTIONS(4888),
    [sym_vector] = ACTIONS(4888),
    [sym_void] = ACTIONS(4888),
    [sym_directive] = ACTIONS(3),
  },
  [2532] = {
    [sym_identifier] = ACTIONS(4690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4692),
    [anon_sym_SEMI] = ACTIONS(4692),
    [anon_sym_TILDE] = ACTIONS(4692),
    [anon_sym_AT] = ACTIONS(4692),
    [sym_bool] = ACTIONS(4690),
    [sym_byte] = ACTIONS(4690),
    [sym_ubyte] = ACTIONS(4690),
    [sym_char] = ACTIONS(4690),
    [sym_short] = ACTIONS(4690),
    [sym_ushort] = ACTIONS(4690),
    [sym_int] = ACTIONS(4690),
    [sym_uint] = ACTIONS(4690),
    [sym_long] = ACTIONS(4690),
    [sym_ulong] = ACTIONS(4690),
    [sym_cent] = ACTIONS(4690),
    [sym_ucent] = ACTIONS(4690),
    [sym_wchar] = ACTIONS(4690),
    [sym_dchar] = ACTIONS(4690),
    [sym_float] = ACTIONS(4690),
    [sym_double] = ACTIONS(4690),
    [sym_real] = ACTIONS(4690),
    [sym_ifloat] = ACTIONS(4690),
    [sym_idouble] = ACTIONS(4690),
    [sym_ireal] = ACTIONS(4690),
    [sym_cfloat] = ACTIONS(4690),
    [sym_cdouble] = ACTIONS(4690),
    [sym_creal] = ACTIONS(4690),
    [sym_size_t] = ACTIONS(4690),
    [sym_ptrdiff_t] = ACTIONS(4690),
    [sym_string] = ACTIONS(4690),
    [sym_cstring] = ACTIONS(4690),
    [sym_dstring] = ACTIONS(4690),
    [sym_wstring] = ACTIONS(4690),
    [sym_noreturn] = ACTIONS(4690),
    [sym_this] = ACTIONS(4690),
    [sym_abstract] = ACTIONS(4690),
    [sym_alias] = ACTIONS(4690),
    [sym_align] = ACTIONS(4690),
    [sym_auto] = ACTIONS(4690),
    [sym_catch] = ACTIONS(4690),
    [sym_class] = ACTIONS(4690),
    [sym_const] = ACTIONS(4690),
    [sym_debug] = ACTIONS(4690),
    [sym_deprecated] = ACTIONS(4690),
    [sym_else] = ACTIONS(4690),
    [sym_enum] = ACTIONS(4690),
    [sym_export] = ACTIONS(4690),
    [sym_extern] = ACTIONS(4690),
    [sym_final] = ACTIONS(4690),
    [sym_finally] = ACTIONS(4690),
    [sym_immutable] = ACTIONS(4690),
    [sym_import] = ACTIONS(4690),
    [sym_inout] = ACTIONS(4690),
    [sym_interface] = ACTIONS(4690),
    [sym_invariant] = ACTIONS(4690),
    [sym_mixin] = ACTIONS(4690),
    [sym_nothrow] = ACTIONS(4690),
    [sym_override] = ACTIONS(4690),
    [sym_package] = ACTIONS(4690),
    [sym_pragma] = ACTIONS(4690),
    [sym_private] = ACTIONS(4690),
    [sym_protected] = ACTIONS(4690),
    [sym_public] = ACTIONS(4690),
    [sym_pure] = ACTIONS(4690),
    [sym_ref] = ACTIONS(4690),
    [sym_return] = ACTIONS(4690),
    [sym_scope] = ACTIONS(4690),
    [sym_shared] = ACTIONS(4690),
    [sym_static] = ACTIONS(4690),
    [sym_struct] = ACTIONS(4690),
    [sym_synchronized] = ACTIONS(4690),
    [sym_template] = ACTIONS(4690),
    [sym_typeof] = ACTIONS(4690),
    [sym_union] = ACTIONS(4690),
    [sym_unittest] = ACTIONS(4690),
    [sym_version] = ACTIONS(4690),
    [sym_while] = ACTIONS(4690),
    [sym_gshared] = ACTIONS(4690),
    [sym_traits] = ACTIONS(4690),
    [sym_vector] = ACTIONS(4690),
    [sym_void] = ACTIONS(4690),
    [sym_directive] = ACTIONS(3),
  },
  [2533] = {
    [sym_identifier] = ACTIONS(4658),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4660),
    [anon_sym_SEMI] = ACTIONS(4660),
    [anon_sym_TILDE] = ACTIONS(4660),
    [anon_sym_AT] = ACTIONS(4660),
    [sym_bool] = ACTIONS(4658),
    [sym_byte] = ACTIONS(4658),
    [sym_ubyte] = ACTIONS(4658),
    [sym_char] = ACTIONS(4658),
    [sym_short] = ACTIONS(4658),
    [sym_ushort] = ACTIONS(4658),
    [sym_int] = ACTIONS(4658),
    [sym_uint] = ACTIONS(4658),
    [sym_long] = ACTIONS(4658),
    [sym_ulong] = ACTIONS(4658),
    [sym_cent] = ACTIONS(4658),
    [sym_ucent] = ACTIONS(4658),
    [sym_wchar] = ACTIONS(4658),
    [sym_dchar] = ACTIONS(4658),
    [sym_float] = ACTIONS(4658),
    [sym_double] = ACTIONS(4658),
    [sym_real] = ACTIONS(4658),
    [sym_ifloat] = ACTIONS(4658),
    [sym_idouble] = ACTIONS(4658),
    [sym_ireal] = ACTIONS(4658),
    [sym_cfloat] = ACTIONS(4658),
    [sym_cdouble] = ACTIONS(4658),
    [sym_creal] = ACTIONS(4658),
    [sym_size_t] = ACTIONS(4658),
    [sym_ptrdiff_t] = ACTIONS(4658),
    [sym_string] = ACTIONS(4658),
    [sym_cstring] = ACTIONS(4658),
    [sym_dstring] = ACTIONS(4658),
    [sym_wstring] = ACTIONS(4658),
    [sym_noreturn] = ACTIONS(4658),
    [sym_this] = ACTIONS(4658),
    [sym_abstract] = ACTIONS(4658),
    [sym_alias] = ACTIONS(4658),
    [sym_align] = ACTIONS(4658),
    [sym_auto] = ACTIONS(4658),
    [sym_catch] = ACTIONS(4658),
    [sym_class] = ACTIONS(4658),
    [sym_const] = ACTIONS(4658),
    [sym_debug] = ACTIONS(4658),
    [sym_deprecated] = ACTIONS(4658),
    [sym_else] = ACTIONS(4658),
    [sym_enum] = ACTIONS(4658),
    [sym_export] = ACTIONS(4658),
    [sym_extern] = ACTIONS(4658),
    [sym_final] = ACTIONS(4658),
    [sym_finally] = ACTIONS(4658),
    [sym_immutable] = ACTIONS(4658),
    [sym_import] = ACTIONS(4658),
    [sym_inout] = ACTIONS(4658),
    [sym_interface] = ACTIONS(4658),
    [sym_invariant] = ACTIONS(4658),
    [sym_mixin] = ACTIONS(4658),
    [sym_nothrow] = ACTIONS(4658),
    [sym_override] = ACTIONS(4658),
    [sym_package] = ACTIONS(4658),
    [sym_pragma] = ACTIONS(4658),
    [sym_private] = ACTIONS(4658),
    [sym_protected] = ACTIONS(4658),
    [sym_public] = ACTIONS(4658),
    [sym_pure] = ACTIONS(4658),
    [sym_ref] = ACTIONS(4658),
    [sym_return] = ACTIONS(4658),
    [sym_scope] = ACTIONS(4658),
    [sym_shared] = ACTIONS(4658),
    [sym_static] = ACTIONS(4658),
    [sym_struct] = ACTIONS(4658),
    [sym_synchronized] = ACTIONS(4658),
    [sym_template] = ACTIONS(4658),
    [sym_typeof] = ACTIONS(4658),
    [sym_union] = ACTIONS(4658),
    [sym_unittest] = ACTIONS(4658),
    [sym_version] = ACTIONS(4658),
    [sym_while] = ACTIONS(4658),
    [sym_gshared] = ACTIONS(4658),
    [sym_traits] = ACTIONS(4658),
    [sym_vector] = ACTIONS(4658),
    [sym_void] = ACTIONS(4658),
    [sym_directive] = ACTIONS(3),
  },
  [2534] = {
    [sym_identifier] = ACTIONS(4654),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4656),
    [anon_sym_SEMI] = ACTIONS(4656),
    [anon_sym_TILDE] = ACTIONS(4656),
    [anon_sym_AT] = ACTIONS(4656),
    [sym_bool] = ACTIONS(4654),
    [sym_byte] = ACTIONS(4654),
    [sym_ubyte] = ACTIONS(4654),
    [sym_char] = ACTIONS(4654),
    [sym_short] = ACTIONS(4654),
    [sym_ushort] = ACTIONS(4654),
    [sym_int] = ACTIONS(4654),
    [sym_uint] = ACTIONS(4654),
    [sym_long] = ACTIONS(4654),
    [sym_ulong] = ACTIONS(4654),
    [sym_cent] = ACTIONS(4654),
    [sym_ucent] = ACTIONS(4654),
    [sym_wchar] = ACTIONS(4654),
    [sym_dchar] = ACTIONS(4654),
    [sym_float] = ACTIONS(4654),
    [sym_double] = ACTIONS(4654),
    [sym_real] = ACTIONS(4654),
    [sym_ifloat] = ACTIONS(4654),
    [sym_idouble] = ACTIONS(4654),
    [sym_ireal] = ACTIONS(4654),
    [sym_cfloat] = ACTIONS(4654),
    [sym_cdouble] = ACTIONS(4654),
    [sym_creal] = ACTIONS(4654),
    [sym_size_t] = ACTIONS(4654),
    [sym_ptrdiff_t] = ACTIONS(4654),
    [sym_string] = ACTIONS(4654),
    [sym_cstring] = ACTIONS(4654),
    [sym_dstring] = ACTIONS(4654),
    [sym_wstring] = ACTIONS(4654),
    [sym_noreturn] = ACTIONS(4654),
    [sym_this] = ACTIONS(4654),
    [sym_abstract] = ACTIONS(4654),
    [sym_alias] = ACTIONS(4654),
    [sym_align] = ACTIONS(4654),
    [sym_auto] = ACTIONS(4654),
    [sym_catch] = ACTIONS(4654),
    [sym_class] = ACTIONS(4654),
    [sym_const] = ACTIONS(4654),
    [sym_debug] = ACTIONS(4654),
    [sym_deprecated] = ACTIONS(4654),
    [sym_else] = ACTIONS(4654),
    [sym_enum] = ACTIONS(4654),
    [sym_export] = ACTIONS(4654),
    [sym_extern] = ACTIONS(4654),
    [sym_final] = ACTIONS(4654),
    [sym_finally] = ACTIONS(4654),
    [sym_immutable] = ACTIONS(4654),
    [sym_import] = ACTIONS(4654),
    [sym_inout] = ACTIONS(4654),
    [sym_interface] = ACTIONS(4654),
    [sym_invariant] = ACTIONS(4654),
    [sym_mixin] = ACTIONS(4654),
    [sym_nothrow] = ACTIONS(4654),
    [sym_override] = ACTIONS(4654),
    [sym_package] = ACTIONS(4654),
    [sym_pragma] = ACTIONS(4654),
    [sym_private] = ACTIONS(4654),
    [sym_protected] = ACTIONS(4654),
    [sym_public] = ACTIONS(4654),
    [sym_pure] = ACTIONS(4654),
    [sym_ref] = ACTIONS(4654),
    [sym_return] = ACTIONS(4654),
    [sym_scope] = ACTIONS(4654),
    [sym_shared] = ACTIONS(4654),
    [sym_static] = ACTIONS(4654),
    [sym_struct] = ACTIONS(4654),
    [sym_synchronized] = ACTIONS(4654),
    [sym_template] = ACTIONS(4654),
    [sym_typeof] = ACTIONS(4654),
    [sym_union] = ACTIONS(4654),
    [sym_unittest] = ACTIONS(4654),
    [sym_version] = ACTIONS(4654),
    [sym_while] = ACTIONS(4654),
    [sym_gshared] = ACTIONS(4654),
    [sym_traits] = ACTIONS(4654),
    [sym_vector] = ACTIONS(4654),
    [sym_void] = ACTIONS(4654),
    [sym_directive] = ACTIONS(3),
  },
  [2535] = {
    [sym_identifier] = ACTIONS(4636),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4638),
    [anon_sym_SEMI] = ACTIONS(4638),
    [anon_sym_TILDE] = ACTIONS(4638),
    [anon_sym_AT] = ACTIONS(4638),
    [sym_bool] = ACTIONS(4636),
    [sym_byte] = ACTIONS(4636),
    [sym_ubyte] = ACTIONS(4636),
    [sym_char] = ACTIONS(4636),
    [sym_short] = ACTIONS(4636),
    [sym_ushort] = ACTIONS(4636),
    [sym_int] = ACTIONS(4636),
    [sym_uint] = ACTIONS(4636),
    [sym_long] = ACTIONS(4636),
    [sym_ulong] = ACTIONS(4636),
    [sym_cent] = ACTIONS(4636),
    [sym_ucent] = ACTIONS(4636),
    [sym_wchar] = ACTIONS(4636),
    [sym_dchar] = ACTIONS(4636),
    [sym_float] = ACTIONS(4636),
    [sym_double] = ACTIONS(4636),
    [sym_real] = ACTIONS(4636),
    [sym_ifloat] = ACTIONS(4636),
    [sym_idouble] = ACTIONS(4636),
    [sym_ireal] = ACTIONS(4636),
    [sym_cfloat] = ACTIONS(4636),
    [sym_cdouble] = ACTIONS(4636),
    [sym_creal] = ACTIONS(4636),
    [sym_size_t] = ACTIONS(4636),
    [sym_ptrdiff_t] = ACTIONS(4636),
    [sym_string] = ACTIONS(4636),
    [sym_cstring] = ACTIONS(4636),
    [sym_dstring] = ACTIONS(4636),
    [sym_wstring] = ACTIONS(4636),
    [sym_noreturn] = ACTIONS(4636),
    [sym_this] = ACTIONS(4636),
    [sym_abstract] = ACTIONS(4636),
    [sym_alias] = ACTIONS(4636),
    [sym_align] = ACTIONS(4636),
    [sym_auto] = ACTIONS(4636),
    [sym_catch] = ACTIONS(4636),
    [sym_class] = ACTIONS(4636),
    [sym_const] = ACTIONS(4636),
    [sym_debug] = ACTIONS(4636),
    [sym_deprecated] = ACTIONS(4636),
    [sym_else] = ACTIONS(4636),
    [sym_enum] = ACTIONS(4636),
    [sym_export] = ACTIONS(4636),
    [sym_extern] = ACTIONS(4636),
    [sym_final] = ACTIONS(4636),
    [sym_finally] = ACTIONS(4636),
    [sym_immutable] = ACTIONS(4636),
    [sym_import] = ACTIONS(4636),
    [sym_inout] = ACTIONS(4636),
    [sym_interface] = ACTIONS(4636),
    [sym_invariant] = ACTIONS(4636),
    [sym_mixin] = ACTIONS(4636),
    [sym_nothrow] = ACTIONS(4636),
    [sym_override] = ACTIONS(4636),
    [sym_package] = ACTIONS(4636),
    [sym_pragma] = ACTIONS(4636),
    [sym_private] = ACTIONS(4636),
    [sym_protected] = ACTIONS(4636),
    [sym_public] = ACTIONS(4636),
    [sym_pure] = ACTIONS(4636),
    [sym_ref] = ACTIONS(4636),
    [sym_return] = ACTIONS(4636),
    [sym_scope] = ACTIONS(4636),
    [sym_shared] = ACTIONS(4636),
    [sym_static] = ACTIONS(4636),
    [sym_struct] = ACTIONS(4636),
    [sym_synchronized] = ACTIONS(4636),
    [sym_template] = ACTIONS(4636),
    [sym_typeof] = ACTIONS(4636),
    [sym_union] = ACTIONS(4636),
    [sym_unittest] = ACTIONS(4636),
    [sym_version] = ACTIONS(4636),
    [sym_while] = ACTIONS(4636),
    [sym_gshared] = ACTIONS(4636),
    [sym_traits] = ACTIONS(4636),
    [sym_vector] = ACTIONS(4636),
    [sym_void] = ACTIONS(4636),
    [sym_directive] = ACTIONS(3),
  },
  [2536] = {
    [sym_identifier] = ACTIONS(4632),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4634),
    [anon_sym_SEMI] = ACTIONS(4634),
    [anon_sym_TILDE] = ACTIONS(4634),
    [anon_sym_AT] = ACTIONS(4634),
    [sym_bool] = ACTIONS(4632),
    [sym_byte] = ACTIONS(4632),
    [sym_ubyte] = ACTIONS(4632),
    [sym_char] = ACTIONS(4632),
    [sym_short] = ACTIONS(4632),
    [sym_ushort] = ACTIONS(4632),
    [sym_int] = ACTIONS(4632),
    [sym_uint] = ACTIONS(4632),
    [sym_long] = ACTIONS(4632),
    [sym_ulong] = ACTIONS(4632),
    [sym_cent] = ACTIONS(4632),
    [sym_ucent] = ACTIONS(4632),
    [sym_wchar] = ACTIONS(4632),
    [sym_dchar] = ACTIONS(4632),
    [sym_float] = ACTIONS(4632),
    [sym_double] = ACTIONS(4632),
    [sym_real] = ACTIONS(4632),
    [sym_ifloat] = ACTIONS(4632),
    [sym_idouble] = ACTIONS(4632),
    [sym_ireal] = ACTIONS(4632),
    [sym_cfloat] = ACTIONS(4632),
    [sym_cdouble] = ACTIONS(4632),
    [sym_creal] = ACTIONS(4632),
    [sym_size_t] = ACTIONS(4632),
    [sym_ptrdiff_t] = ACTIONS(4632),
    [sym_string] = ACTIONS(4632),
    [sym_cstring] = ACTIONS(4632),
    [sym_dstring] = ACTIONS(4632),
    [sym_wstring] = ACTIONS(4632),
    [sym_noreturn] = ACTIONS(4632),
    [sym_this] = ACTIONS(4632),
    [sym_abstract] = ACTIONS(4632),
    [sym_alias] = ACTIONS(4632),
    [sym_align] = ACTIONS(4632),
    [sym_auto] = ACTIONS(4632),
    [sym_catch] = ACTIONS(4632),
    [sym_class] = ACTIONS(4632),
    [sym_const] = ACTIONS(4632),
    [sym_debug] = ACTIONS(4632),
    [sym_deprecated] = ACTIONS(4632),
    [sym_else] = ACTIONS(4632),
    [sym_enum] = ACTIONS(4632),
    [sym_export] = ACTIONS(4632),
    [sym_extern] = ACTIONS(4632),
    [sym_final] = ACTIONS(4632),
    [sym_finally] = ACTIONS(4632),
    [sym_immutable] = ACTIONS(4632),
    [sym_import] = ACTIONS(4632),
    [sym_inout] = ACTIONS(4632),
    [sym_interface] = ACTIONS(4632),
    [sym_invariant] = ACTIONS(4632),
    [sym_mixin] = ACTIONS(4632),
    [sym_nothrow] = ACTIONS(4632),
    [sym_override] = ACTIONS(4632),
    [sym_package] = ACTIONS(4632),
    [sym_pragma] = ACTIONS(4632),
    [sym_private] = ACTIONS(4632),
    [sym_protected] = ACTIONS(4632),
    [sym_public] = ACTIONS(4632),
    [sym_pure] = ACTIONS(4632),
    [sym_ref] = ACTIONS(4632),
    [sym_return] = ACTIONS(4632),
    [sym_scope] = ACTIONS(4632),
    [sym_shared] = ACTIONS(4632),
    [sym_static] = ACTIONS(4632),
    [sym_struct] = ACTIONS(4632),
    [sym_synchronized] = ACTIONS(4632),
    [sym_template] = ACTIONS(4632),
    [sym_typeof] = ACTIONS(4632),
    [sym_union] = ACTIONS(4632),
    [sym_unittest] = ACTIONS(4632),
    [sym_version] = ACTIONS(4632),
    [sym_while] = ACTIONS(4632),
    [sym_gshared] = ACTIONS(4632),
    [sym_traits] = ACTIONS(4632),
    [sym_vector] = ACTIONS(4632),
    [sym_void] = ACTIONS(4632),
    [sym_directive] = ACTIONS(3),
  },
  [2537] = {
    [sym_identifier] = ACTIONS(4628),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4630),
    [anon_sym_SEMI] = ACTIONS(4630),
    [anon_sym_TILDE] = ACTIONS(4630),
    [anon_sym_AT] = ACTIONS(4630),
    [sym_bool] = ACTIONS(4628),
    [sym_byte] = ACTIONS(4628),
    [sym_ubyte] = ACTIONS(4628),
    [sym_char] = ACTIONS(4628),
    [sym_short] = ACTIONS(4628),
    [sym_ushort] = ACTIONS(4628),
    [sym_int] = ACTIONS(4628),
    [sym_uint] = ACTIONS(4628),
    [sym_long] = ACTIONS(4628),
    [sym_ulong] = ACTIONS(4628),
    [sym_cent] = ACTIONS(4628),
    [sym_ucent] = ACTIONS(4628),
    [sym_wchar] = ACTIONS(4628),
    [sym_dchar] = ACTIONS(4628),
    [sym_float] = ACTIONS(4628),
    [sym_double] = ACTIONS(4628),
    [sym_real] = ACTIONS(4628),
    [sym_ifloat] = ACTIONS(4628),
    [sym_idouble] = ACTIONS(4628),
    [sym_ireal] = ACTIONS(4628),
    [sym_cfloat] = ACTIONS(4628),
    [sym_cdouble] = ACTIONS(4628),
    [sym_creal] = ACTIONS(4628),
    [sym_size_t] = ACTIONS(4628),
    [sym_ptrdiff_t] = ACTIONS(4628),
    [sym_string] = ACTIONS(4628),
    [sym_cstring] = ACTIONS(4628),
    [sym_dstring] = ACTIONS(4628),
    [sym_wstring] = ACTIONS(4628),
    [sym_noreturn] = ACTIONS(4628),
    [sym_this] = ACTIONS(4628),
    [sym_abstract] = ACTIONS(4628),
    [sym_alias] = ACTIONS(4628),
    [sym_align] = ACTIONS(4628),
    [sym_auto] = ACTIONS(4628),
    [sym_catch] = ACTIONS(4628),
    [sym_class] = ACTIONS(4628),
    [sym_const] = ACTIONS(4628),
    [sym_debug] = ACTIONS(4628),
    [sym_deprecated] = ACTIONS(4628),
    [sym_else] = ACTIONS(4628),
    [sym_enum] = ACTIONS(4628),
    [sym_export] = ACTIONS(4628),
    [sym_extern] = ACTIONS(4628),
    [sym_final] = ACTIONS(4628),
    [sym_finally] = ACTIONS(4628),
    [sym_immutable] = ACTIONS(4628),
    [sym_import] = ACTIONS(4628),
    [sym_inout] = ACTIONS(4628),
    [sym_interface] = ACTIONS(4628),
    [sym_invariant] = ACTIONS(4628),
    [sym_mixin] = ACTIONS(4628),
    [sym_nothrow] = ACTIONS(4628),
    [sym_override] = ACTIONS(4628),
    [sym_package] = ACTIONS(4628),
    [sym_pragma] = ACTIONS(4628),
    [sym_private] = ACTIONS(4628),
    [sym_protected] = ACTIONS(4628),
    [sym_public] = ACTIONS(4628),
    [sym_pure] = ACTIONS(4628),
    [sym_ref] = ACTIONS(4628),
    [sym_return] = ACTIONS(4628),
    [sym_scope] = ACTIONS(4628),
    [sym_shared] = ACTIONS(4628),
    [sym_static] = ACTIONS(4628),
    [sym_struct] = ACTIONS(4628),
    [sym_synchronized] = ACTIONS(4628),
    [sym_template] = ACTIONS(4628),
    [sym_typeof] = ACTIONS(4628),
    [sym_union] = ACTIONS(4628),
    [sym_unittest] = ACTIONS(4628),
    [sym_version] = ACTIONS(4628),
    [sym_while] = ACTIONS(4628),
    [sym_gshared] = ACTIONS(4628),
    [sym_traits] = ACTIONS(4628),
    [sym_vector] = ACTIONS(4628),
    [sym_void] = ACTIONS(4628),
    [sym_directive] = ACTIONS(3),
  },
  [2538] = {
    [sym_identifier] = ACTIONS(4624),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4626),
    [anon_sym_SEMI] = ACTIONS(4626),
    [anon_sym_TILDE] = ACTIONS(4626),
    [anon_sym_AT] = ACTIONS(4626),
    [sym_bool] = ACTIONS(4624),
    [sym_byte] = ACTIONS(4624),
    [sym_ubyte] = ACTIONS(4624),
    [sym_char] = ACTIONS(4624),
    [sym_short] = ACTIONS(4624),
    [sym_ushort] = ACTIONS(4624),
    [sym_int] = ACTIONS(4624),
    [sym_uint] = ACTIONS(4624),
    [sym_long] = ACTIONS(4624),
    [sym_ulong] = ACTIONS(4624),
    [sym_cent] = ACTIONS(4624),
    [sym_ucent] = ACTIONS(4624),
    [sym_wchar] = ACTIONS(4624),
    [sym_dchar] = ACTIONS(4624),
    [sym_float] = ACTIONS(4624),
    [sym_double] = ACTIONS(4624),
    [sym_real] = ACTIONS(4624),
    [sym_ifloat] = ACTIONS(4624),
    [sym_idouble] = ACTIONS(4624),
    [sym_ireal] = ACTIONS(4624),
    [sym_cfloat] = ACTIONS(4624),
    [sym_cdouble] = ACTIONS(4624),
    [sym_creal] = ACTIONS(4624),
    [sym_size_t] = ACTIONS(4624),
    [sym_ptrdiff_t] = ACTIONS(4624),
    [sym_string] = ACTIONS(4624),
    [sym_cstring] = ACTIONS(4624),
    [sym_dstring] = ACTIONS(4624),
    [sym_wstring] = ACTIONS(4624),
    [sym_noreturn] = ACTIONS(4624),
    [sym_this] = ACTIONS(4624),
    [sym_abstract] = ACTIONS(4624),
    [sym_alias] = ACTIONS(4624),
    [sym_align] = ACTIONS(4624),
    [sym_auto] = ACTIONS(4624),
    [sym_catch] = ACTIONS(4624),
    [sym_class] = ACTIONS(4624),
    [sym_const] = ACTIONS(4624),
    [sym_debug] = ACTIONS(4624),
    [sym_deprecated] = ACTIONS(4624),
    [sym_else] = ACTIONS(4624),
    [sym_enum] = ACTIONS(4624),
    [sym_export] = ACTIONS(4624),
    [sym_extern] = ACTIONS(4624),
    [sym_final] = ACTIONS(4624),
    [sym_finally] = ACTIONS(4624),
    [sym_immutable] = ACTIONS(4624),
    [sym_import] = ACTIONS(4624),
    [sym_inout] = ACTIONS(4624),
    [sym_interface] = ACTIONS(4624),
    [sym_invariant] = ACTIONS(4624),
    [sym_mixin] = ACTIONS(4624),
    [sym_nothrow] = ACTIONS(4624),
    [sym_override] = ACTIONS(4624),
    [sym_package] = ACTIONS(4624),
    [sym_pragma] = ACTIONS(4624),
    [sym_private] = ACTIONS(4624),
    [sym_protected] = ACTIONS(4624),
    [sym_public] = ACTIONS(4624),
    [sym_pure] = ACTIONS(4624),
    [sym_ref] = ACTIONS(4624),
    [sym_return] = ACTIONS(4624),
    [sym_scope] = ACTIONS(4624),
    [sym_shared] = ACTIONS(4624),
    [sym_static] = ACTIONS(4624),
    [sym_struct] = ACTIONS(4624),
    [sym_synchronized] = ACTIONS(4624),
    [sym_template] = ACTIONS(4624),
    [sym_typeof] = ACTIONS(4624),
    [sym_union] = ACTIONS(4624),
    [sym_unittest] = ACTIONS(4624),
    [sym_version] = ACTIONS(4624),
    [sym_while] = ACTIONS(4624),
    [sym_gshared] = ACTIONS(4624),
    [sym_traits] = ACTIONS(4624),
    [sym_vector] = ACTIONS(4624),
    [sym_void] = ACTIONS(4624),
    [sym_directive] = ACTIONS(3),
  },
  [2539] = {
    [sym_identifier] = ACTIONS(4590),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4592),
    [anon_sym_SEMI] = ACTIONS(4592),
    [anon_sym_TILDE] = ACTIONS(4592),
    [anon_sym_AT] = ACTIONS(4592),
    [sym_bool] = ACTIONS(4590),
    [sym_byte] = ACTIONS(4590),
    [sym_ubyte] = ACTIONS(4590),
    [sym_char] = ACTIONS(4590),
    [sym_short] = ACTIONS(4590),
    [sym_ushort] = ACTIONS(4590),
    [sym_int] = ACTIONS(4590),
    [sym_uint] = ACTIONS(4590),
    [sym_long] = ACTIONS(4590),
    [sym_ulong] = ACTIONS(4590),
    [sym_cent] = ACTIONS(4590),
    [sym_ucent] = ACTIONS(4590),
    [sym_wchar] = ACTIONS(4590),
    [sym_dchar] = ACTIONS(4590),
    [sym_float] = ACTIONS(4590),
    [sym_double] = ACTIONS(4590),
    [sym_real] = ACTIONS(4590),
    [sym_ifloat] = ACTIONS(4590),
    [sym_idouble] = ACTIONS(4590),
    [sym_ireal] = ACTIONS(4590),
    [sym_cfloat] = ACTIONS(4590),
    [sym_cdouble] = ACTIONS(4590),
    [sym_creal] = ACTIONS(4590),
    [sym_size_t] = ACTIONS(4590),
    [sym_ptrdiff_t] = ACTIONS(4590),
    [sym_string] = ACTIONS(4590),
    [sym_cstring] = ACTIONS(4590),
    [sym_dstring] = ACTIONS(4590),
    [sym_wstring] = ACTIONS(4590),
    [sym_noreturn] = ACTIONS(4590),
    [sym_this] = ACTIONS(4590),
    [sym_abstract] = ACTIONS(4590),
    [sym_alias] = ACTIONS(4590),
    [sym_align] = ACTIONS(4590),
    [sym_auto] = ACTIONS(4590),
    [sym_catch] = ACTIONS(4590),
    [sym_class] = ACTIONS(4590),
    [sym_const] = ACTIONS(4590),
    [sym_debug] = ACTIONS(4590),
    [sym_deprecated] = ACTIONS(4590),
    [sym_else] = ACTIONS(4590),
    [sym_enum] = ACTIONS(4590),
    [sym_export] = ACTIONS(4590),
    [sym_extern] = ACTIONS(4590),
    [sym_final] = ACTIONS(4590),
    [sym_finally] = ACTIONS(4590),
    [sym_immutable] = ACTIONS(4590),
    [sym_import] = ACTIONS(4590),
    [sym_inout] = ACTIONS(4590),
    [sym_interface] = ACTIONS(4590),
    [sym_invariant] = ACTIONS(4590),
    [sym_mixin] = ACTIONS(4590),
    [sym_nothrow] = ACTIONS(4590),
    [sym_override] = ACTIONS(4590),
    [sym_package] = ACTIONS(4590),
    [sym_pragma] = ACTIONS(4590),
    [sym_private] = ACTIONS(4590),
    [sym_protected] = ACTIONS(4590),
    [sym_public] = ACTIONS(4590),
    [sym_pure] = ACTIONS(4590),
    [sym_ref] = ACTIONS(4590),
    [sym_return] = ACTIONS(4590),
    [sym_scope] = ACTIONS(4590),
    [sym_shared] = ACTIONS(4590),
    [sym_static] = ACTIONS(4590),
    [sym_struct] = ACTIONS(4590),
    [sym_synchronized] = ACTIONS(4590),
    [sym_template] = ACTIONS(4590),
    [sym_typeof] = ACTIONS(4590),
    [sym_union] = ACTIONS(4590),
    [sym_unittest] = ACTIONS(4590),
    [sym_version] = ACTIONS(4590),
    [sym_while] = ACTIONS(4590),
    [sym_gshared] = ACTIONS(4590),
    [sym_traits] = ACTIONS(4590),
    [sym_vector] = ACTIONS(4590),
    [sym_void] = ACTIONS(4590),
    [sym_directive] = ACTIONS(3),
  },
  [2540] = {
    [ts_builtin_sym_end] = ACTIONS(5058),
    [sym_identifier] = ACTIONS(5056),
    [sym_end_file] = ACTIONS(5056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5058),
    [anon_sym_SEMI] = ACTIONS(5058),
    [anon_sym_TILDE] = ACTIONS(5058),
    [anon_sym_AT] = ACTIONS(5058),
    [sym_bool] = ACTIONS(5056),
    [sym_byte] = ACTIONS(5056),
    [sym_ubyte] = ACTIONS(5056),
    [sym_char] = ACTIONS(5056),
    [sym_short] = ACTIONS(5056),
    [sym_ushort] = ACTIONS(5056),
    [sym_int] = ACTIONS(5056),
    [sym_uint] = ACTIONS(5056),
    [sym_long] = ACTIONS(5056),
    [sym_ulong] = ACTIONS(5056),
    [sym_cent] = ACTIONS(5056),
    [sym_ucent] = ACTIONS(5056),
    [sym_wchar] = ACTIONS(5056),
    [sym_dchar] = ACTIONS(5056),
    [sym_float] = ACTIONS(5056),
    [sym_double] = ACTIONS(5056),
    [sym_real] = ACTIONS(5056),
    [sym_ifloat] = ACTIONS(5056),
    [sym_idouble] = ACTIONS(5056),
    [sym_ireal] = ACTIONS(5056),
    [sym_cfloat] = ACTIONS(5056),
    [sym_cdouble] = ACTIONS(5056),
    [sym_creal] = ACTIONS(5056),
    [sym_size_t] = ACTIONS(5056),
    [sym_ptrdiff_t] = ACTIONS(5056),
    [sym_string] = ACTIONS(5056),
    [sym_cstring] = ACTIONS(5056),
    [sym_dstring] = ACTIONS(5056),
    [sym_wstring] = ACTIONS(5056),
    [sym_noreturn] = ACTIONS(5056),
    [sym_this] = ACTIONS(5056),
    [sym_abstract] = ACTIONS(5056),
    [sym_alias] = ACTIONS(5056),
    [sym_align] = ACTIONS(5056),
    [sym_auto] = ACTIONS(5056),
    [sym_class] = ACTIONS(5056),
    [sym_const] = ACTIONS(5056),
    [sym_debug] = ACTIONS(5056),
    [sym_deprecated] = ACTIONS(5056),
    [sym_else] = ACTIONS(5056),
    [sym_enum] = ACTIONS(5056),
    [sym_export] = ACTIONS(5056),
    [sym_extern] = ACTIONS(5056),
    [sym_final] = ACTIONS(5056),
    [sym_immutable] = ACTIONS(5056),
    [sym_import] = ACTIONS(5056),
    [sym_inout] = ACTIONS(5056),
    [sym_interface] = ACTIONS(5056),
    [sym_invariant] = ACTIONS(5056),
    [sym_mixin] = ACTIONS(5056),
    [sym_nothrow] = ACTIONS(5056),
    [sym_override] = ACTIONS(5056),
    [sym_package] = ACTIONS(5056),
    [sym_pragma] = ACTIONS(5056),
    [sym_private] = ACTIONS(5056),
    [sym_protected] = ACTIONS(5056),
    [sym_public] = ACTIONS(5056),
    [sym_pure] = ACTIONS(5056),
    [sym_ref] = ACTIONS(5056),
    [sym_return] = ACTIONS(5056),
    [sym_scope] = ACTIONS(5056),
    [sym_shared] = ACTIONS(5056),
    [sym_static] = ACTIONS(5056),
    [sym_struct] = ACTIONS(5056),
    [sym_synchronized] = ACTIONS(5056),
    [sym_template] = ACTIONS(5056),
    [sym_typeof] = ACTIONS(5056),
    [sym_union] = ACTIONS(5056),
    [sym_unittest] = ACTIONS(5056),
    [sym_version] = ACTIONS(5056),
    [sym_while] = ACTIONS(5056),
    [sym_gshared] = ACTIONS(5056),
    [sym_traits] = ACTIONS(5056),
    [sym_vector] = ACTIONS(5056),
    [sym_void] = ACTIONS(5056),
    [sym_directive] = ACTIONS(3),
  },
  [2541] = {
    [sym_identifier] = ACTIONS(4586),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4588),
    [anon_sym_SEMI] = ACTIONS(4588),
    [anon_sym_TILDE] = ACTIONS(4588),
    [anon_sym_AT] = ACTIONS(4588),
    [sym_bool] = ACTIONS(4586),
    [sym_byte] = ACTIONS(4586),
    [sym_ubyte] = ACTIONS(4586),
    [sym_char] = ACTIONS(4586),
    [sym_short] = ACTIONS(4586),
    [sym_ushort] = ACTIONS(4586),
    [sym_int] = ACTIONS(4586),
    [sym_uint] = ACTIONS(4586),
    [sym_long] = ACTIONS(4586),
    [sym_ulong] = ACTIONS(4586),
    [sym_cent] = ACTIONS(4586),
    [sym_ucent] = ACTIONS(4586),
    [sym_wchar] = ACTIONS(4586),
    [sym_dchar] = ACTIONS(4586),
    [sym_float] = ACTIONS(4586),
    [sym_double] = ACTIONS(4586),
    [sym_real] = ACTIONS(4586),
    [sym_ifloat] = ACTIONS(4586),
    [sym_idouble] = ACTIONS(4586),
    [sym_ireal] = ACTIONS(4586),
    [sym_cfloat] = ACTIONS(4586),
    [sym_cdouble] = ACTIONS(4586),
    [sym_creal] = ACTIONS(4586),
    [sym_size_t] = ACTIONS(4586),
    [sym_ptrdiff_t] = ACTIONS(4586),
    [sym_string] = ACTIONS(4586),
    [sym_cstring] = ACTIONS(4586),
    [sym_dstring] = ACTIONS(4586),
    [sym_wstring] = ACTIONS(4586),
    [sym_noreturn] = ACTIONS(4586),
    [sym_this] = ACTIONS(4586),
    [sym_abstract] = ACTIONS(4586),
    [sym_alias] = ACTIONS(4586),
    [sym_align] = ACTIONS(4586),
    [sym_auto] = ACTIONS(4586),
    [sym_catch] = ACTIONS(4586),
    [sym_class] = ACTIONS(4586),
    [sym_const] = ACTIONS(4586),
    [sym_debug] = ACTIONS(4586),
    [sym_deprecated] = ACTIONS(4586),
    [sym_else] = ACTIONS(4586),
    [sym_enum] = ACTIONS(4586),
    [sym_export] = ACTIONS(4586),
    [sym_extern] = ACTIONS(4586),
    [sym_final] = ACTIONS(4586),
    [sym_finally] = ACTIONS(4586),
    [sym_immutable] = ACTIONS(4586),
    [sym_import] = ACTIONS(4586),
    [sym_inout] = ACTIONS(4586),
    [sym_interface] = ACTIONS(4586),
    [sym_invariant] = ACTIONS(4586),
    [sym_mixin] = ACTIONS(4586),
    [sym_nothrow] = ACTIONS(4586),
    [sym_override] = ACTIONS(4586),
    [sym_package] = ACTIONS(4586),
    [sym_pragma] = ACTIONS(4586),
    [sym_private] = ACTIONS(4586),
    [sym_protected] = ACTIONS(4586),
    [sym_public] = ACTIONS(4586),
    [sym_pure] = ACTIONS(4586),
    [sym_ref] = ACTIONS(4586),
    [sym_return] = ACTIONS(4586),
    [sym_scope] = ACTIONS(4586),
    [sym_shared] = ACTIONS(4586),
    [sym_static] = ACTIONS(4586),
    [sym_struct] = ACTIONS(4586),
    [sym_synchronized] = ACTIONS(4586),
    [sym_template] = ACTIONS(4586),
    [sym_typeof] = ACTIONS(4586),
    [sym_union] = ACTIONS(4586),
    [sym_unittest] = ACTIONS(4586),
    [sym_version] = ACTIONS(4586),
    [sym_while] = ACTIONS(4586),
    [sym_gshared] = ACTIONS(4586),
    [sym_traits] = ACTIONS(4586),
    [sym_vector] = ACTIONS(4586),
    [sym_void] = ACTIONS(4586),
    [sym_directive] = ACTIONS(3),
  },
  [2542] = {
    [sym_identifier] = ACTIONS(4620),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4622),
    [anon_sym_SEMI] = ACTIONS(4622),
    [anon_sym_TILDE] = ACTIONS(4622),
    [anon_sym_AT] = ACTIONS(4622),
    [sym_bool] = ACTIONS(4620),
    [sym_byte] = ACTIONS(4620),
    [sym_ubyte] = ACTIONS(4620),
    [sym_char] = ACTIONS(4620),
    [sym_short] = ACTIONS(4620),
    [sym_ushort] = ACTIONS(4620),
    [sym_int] = ACTIONS(4620),
    [sym_uint] = ACTIONS(4620),
    [sym_long] = ACTIONS(4620),
    [sym_ulong] = ACTIONS(4620),
    [sym_cent] = ACTIONS(4620),
    [sym_ucent] = ACTIONS(4620),
    [sym_wchar] = ACTIONS(4620),
    [sym_dchar] = ACTIONS(4620),
    [sym_float] = ACTIONS(4620),
    [sym_double] = ACTIONS(4620),
    [sym_real] = ACTIONS(4620),
    [sym_ifloat] = ACTIONS(4620),
    [sym_idouble] = ACTIONS(4620),
    [sym_ireal] = ACTIONS(4620),
    [sym_cfloat] = ACTIONS(4620),
    [sym_cdouble] = ACTIONS(4620),
    [sym_creal] = ACTIONS(4620),
    [sym_size_t] = ACTIONS(4620),
    [sym_ptrdiff_t] = ACTIONS(4620),
    [sym_string] = ACTIONS(4620),
    [sym_cstring] = ACTIONS(4620),
    [sym_dstring] = ACTIONS(4620),
    [sym_wstring] = ACTIONS(4620),
    [sym_noreturn] = ACTIONS(4620),
    [sym_this] = ACTIONS(4620),
    [sym_abstract] = ACTIONS(4620),
    [sym_alias] = ACTIONS(4620),
    [sym_align] = ACTIONS(4620),
    [sym_auto] = ACTIONS(4620),
    [sym_catch] = ACTIONS(4620),
    [sym_class] = ACTIONS(4620),
    [sym_const] = ACTIONS(4620),
    [sym_debug] = ACTIONS(4620),
    [sym_deprecated] = ACTIONS(4620),
    [sym_else] = ACTIONS(4620),
    [sym_enum] = ACTIONS(4620),
    [sym_export] = ACTIONS(4620),
    [sym_extern] = ACTIONS(4620),
    [sym_final] = ACTIONS(4620),
    [sym_finally] = ACTIONS(4620),
    [sym_immutable] = ACTIONS(4620),
    [sym_import] = ACTIONS(4620),
    [sym_inout] = ACTIONS(4620),
    [sym_interface] = ACTIONS(4620),
    [sym_invariant] = ACTIONS(4620),
    [sym_mixin] = ACTIONS(4620),
    [sym_nothrow] = ACTIONS(4620),
    [sym_override] = ACTIONS(4620),
    [sym_package] = ACTIONS(4620),
    [sym_pragma] = ACTIONS(4620),
    [sym_private] = ACTIONS(4620),
    [sym_protected] = ACTIONS(4620),
    [sym_public] = ACTIONS(4620),
    [sym_pure] = ACTIONS(4620),
    [sym_ref] = ACTIONS(4620),
    [sym_return] = ACTIONS(4620),
    [sym_scope] = ACTIONS(4620),
    [sym_shared] = ACTIONS(4620),
    [sym_static] = ACTIONS(4620),
    [sym_struct] = ACTIONS(4620),
    [sym_synchronized] = ACTIONS(4620),
    [sym_template] = ACTIONS(4620),
    [sym_typeof] = ACTIONS(4620),
    [sym_union] = ACTIONS(4620),
    [sym_unittest] = ACTIONS(4620),
    [sym_version] = ACTIONS(4620),
    [sym_while] = ACTIONS(4620),
    [sym_gshared] = ACTIONS(4620),
    [sym_traits] = ACTIONS(4620),
    [sym_vector] = ACTIONS(4620),
    [sym_void] = ACTIONS(4620),
    [sym_directive] = ACTIONS(3),
  },
  [2543] = {
    [ts_builtin_sym_end] = ACTIONS(4337),
    [sym_identifier] = ACTIONS(4335),
    [sym_end_file] = ACTIONS(4335),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4337),
    [anon_sym_SEMI] = ACTIONS(4337),
    [anon_sym_TILDE] = ACTIONS(4337),
    [anon_sym_AT] = ACTIONS(4337),
    [sym_bool] = ACTIONS(4335),
    [sym_byte] = ACTIONS(4335),
    [sym_ubyte] = ACTIONS(4335),
    [sym_char] = ACTIONS(4335),
    [sym_short] = ACTIONS(4335),
    [sym_ushort] = ACTIONS(4335),
    [sym_int] = ACTIONS(4335),
    [sym_uint] = ACTIONS(4335),
    [sym_long] = ACTIONS(4335),
    [sym_ulong] = ACTIONS(4335),
    [sym_cent] = ACTIONS(4335),
    [sym_ucent] = ACTIONS(4335),
    [sym_wchar] = ACTIONS(4335),
    [sym_dchar] = ACTIONS(4335),
    [sym_float] = ACTIONS(4335),
    [sym_double] = ACTIONS(4335),
    [sym_real] = ACTIONS(4335),
    [sym_ifloat] = ACTIONS(4335),
    [sym_idouble] = ACTIONS(4335),
    [sym_ireal] = ACTIONS(4335),
    [sym_cfloat] = ACTIONS(4335),
    [sym_cdouble] = ACTIONS(4335),
    [sym_creal] = ACTIONS(4335),
    [sym_size_t] = ACTIONS(4335),
    [sym_ptrdiff_t] = ACTIONS(4335),
    [sym_string] = ACTIONS(4335),
    [sym_cstring] = ACTIONS(4335),
    [sym_dstring] = ACTIONS(4335),
    [sym_wstring] = ACTIONS(4335),
    [sym_noreturn] = ACTIONS(4335),
    [sym_this] = ACTIONS(4335),
    [sym_abstract] = ACTIONS(4335),
    [sym_alias] = ACTIONS(4335),
    [sym_align] = ACTIONS(4335),
    [sym_auto] = ACTIONS(4335),
    [sym_class] = ACTIONS(4335),
    [sym_const] = ACTIONS(4335),
    [sym_debug] = ACTIONS(4335),
    [sym_deprecated] = ACTIONS(4335),
    [sym_else] = ACTIONS(4335),
    [sym_enum] = ACTIONS(4335),
    [sym_export] = ACTIONS(4335),
    [sym_extern] = ACTIONS(4335),
    [sym_final] = ACTIONS(4335),
    [sym_immutable] = ACTIONS(4335),
    [sym_import] = ACTIONS(4335),
    [sym_inout] = ACTIONS(4335),
    [sym_interface] = ACTIONS(4335),
    [sym_invariant] = ACTIONS(4335),
    [sym_mixin] = ACTIONS(4335),
    [sym_nothrow] = ACTIONS(4335),
    [sym_override] = ACTIONS(4335),
    [sym_package] = ACTIONS(4335),
    [sym_pragma] = ACTIONS(4335),
    [sym_private] = ACTIONS(4335),
    [sym_protected] = ACTIONS(4335),
    [sym_public] = ACTIONS(4335),
    [sym_pure] = ACTIONS(4335),
    [sym_ref] = ACTIONS(4335),
    [sym_return] = ACTIONS(4335),
    [sym_scope] = ACTIONS(4335),
    [sym_shared] = ACTIONS(4335),
    [sym_static] = ACTIONS(4335),
    [sym_struct] = ACTIONS(4335),
    [sym_synchronized] = ACTIONS(4335),
    [sym_template] = ACTIONS(4335),
    [sym_typeof] = ACTIONS(4335),
    [sym_union] = ACTIONS(4335),
    [sym_unittest] = ACTIONS(4335),
    [sym_version] = ACTIONS(4335),
    [sym_while] = ACTIONS(4335),
    [sym_gshared] = ACTIONS(4335),
    [sym_traits] = ACTIONS(4335),
    [sym_vector] = ACTIONS(4335),
    [sym_void] = ACTIONS(4335),
    [sym_directive] = ACTIONS(3),
  },
  [2544] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_catch] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_finally] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
  },
  [2545] = {
    [sym_identifier] = ACTIONS(4708),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4710),
    [anon_sym_SEMI] = ACTIONS(4710),
    [anon_sym_TILDE] = ACTIONS(4710),
    [anon_sym_AT] = ACTIONS(4710),
    [sym_bool] = ACTIONS(4708),
    [sym_byte] = ACTIONS(4708),
    [sym_ubyte] = ACTIONS(4708),
    [sym_char] = ACTIONS(4708),
    [sym_short] = ACTIONS(4708),
    [sym_ushort] = ACTIONS(4708),
    [sym_int] = ACTIONS(4708),
    [sym_uint] = ACTIONS(4708),
    [sym_long] = ACTIONS(4708),
    [sym_ulong] = ACTIONS(4708),
    [sym_cent] = ACTIONS(4708),
    [sym_ucent] = ACTIONS(4708),
    [sym_wchar] = ACTIONS(4708),
    [sym_dchar] = ACTIONS(4708),
    [sym_float] = ACTIONS(4708),
    [sym_double] = ACTIONS(4708),
    [sym_real] = ACTIONS(4708),
    [sym_ifloat] = ACTIONS(4708),
    [sym_idouble] = ACTIONS(4708),
    [sym_ireal] = ACTIONS(4708),
    [sym_cfloat] = ACTIONS(4708),
    [sym_cdouble] = ACTIONS(4708),
    [sym_creal] = ACTIONS(4708),
    [sym_size_t] = ACTIONS(4708),
    [sym_ptrdiff_t] = ACTIONS(4708),
    [sym_string] = ACTIONS(4708),
    [sym_cstring] = ACTIONS(4708),
    [sym_dstring] = ACTIONS(4708),
    [sym_wstring] = ACTIONS(4708),
    [sym_noreturn] = ACTIONS(4708),
    [sym_this] = ACTIONS(4708),
    [sym_abstract] = ACTIONS(4708),
    [sym_alias] = ACTIONS(4708),
    [sym_align] = ACTIONS(4708),
    [sym_auto] = ACTIONS(4708),
    [sym_catch] = ACTIONS(4708),
    [sym_class] = ACTIONS(4708),
    [sym_const] = ACTIONS(4708),
    [sym_debug] = ACTIONS(4708),
    [sym_deprecated] = ACTIONS(4708),
    [sym_else] = ACTIONS(4708),
    [sym_enum] = ACTIONS(4708),
    [sym_export] = ACTIONS(4708),
    [sym_extern] = ACTIONS(4708),
    [sym_final] = ACTIONS(4708),
    [sym_finally] = ACTIONS(4708),
    [sym_immutable] = ACTIONS(4708),
    [sym_import] = ACTIONS(4708),
    [sym_inout] = ACTIONS(4708),
    [sym_interface] = ACTIONS(4708),
    [sym_invariant] = ACTIONS(4708),
    [sym_mixin] = ACTIONS(4708),
    [sym_nothrow] = ACTIONS(4708),
    [sym_override] = ACTIONS(4708),
    [sym_package] = ACTIONS(4708),
    [sym_pragma] = ACTIONS(4708),
    [sym_private] = ACTIONS(4708),
    [sym_protected] = ACTIONS(4708),
    [sym_public] = ACTIONS(4708),
    [sym_pure] = ACTIONS(4708),
    [sym_ref] = ACTIONS(4708),
    [sym_return] = ACTIONS(4708),
    [sym_scope] = ACTIONS(4708),
    [sym_shared] = ACTIONS(4708),
    [sym_static] = ACTIONS(4708),
    [sym_struct] = ACTIONS(4708),
    [sym_synchronized] = ACTIONS(4708),
    [sym_template] = ACTIONS(4708),
    [sym_typeof] = ACTIONS(4708),
    [sym_union] = ACTIONS(4708),
    [sym_unittest] = ACTIONS(4708),
    [sym_version] = ACTIONS(4708),
    [sym_while] = ACTIONS(4708),
    [sym_gshared] = ACTIONS(4708),
    [sym_traits] = ACTIONS(4708),
    [sym_vector] = ACTIONS(4708),
    [sym_void] = ACTIONS(4708),
    [sym_directive] = ACTIONS(3),
  },
  [2546] = {
    [sym_identifier] = ACTIONS(4301),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4303),
    [anon_sym_SEMI] = ACTIONS(4303),
    [anon_sym_TILDE] = ACTIONS(4303),
    [anon_sym_AT] = ACTIONS(4303),
    [sym_bool] = ACTIONS(4301),
    [sym_byte] = ACTIONS(4301),
    [sym_ubyte] = ACTIONS(4301),
    [sym_char] = ACTIONS(4301),
    [sym_short] = ACTIONS(4301),
    [sym_ushort] = ACTIONS(4301),
    [sym_int] = ACTIONS(4301),
    [sym_uint] = ACTIONS(4301),
    [sym_long] = ACTIONS(4301),
    [sym_ulong] = ACTIONS(4301),
    [sym_cent] = ACTIONS(4301),
    [sym_ucent] = ACTIONS(4301),
    [sym_wchar] = ACTIONS(4301),
    [sym_dchar] = ACTIONS(4301),
    [sym_float] = ACTIONS(4301),
    [sym_double] = ACTIONS(4301),
    [sym_real] = ACTIONS(4301),
    [sym_ifloat] = ACTIONS(4301),
    [sym_idouble] = ACTIONS(4301),
    [sym_ireal] = ACTIONS(4301),
    [sym_cfloat] = ACTIONS(4301),
    [sym_cdouble] = ACTIONS(4301),
    [sym_creal] = ACTIONS(4301),
    [sym_size_t] = ACTIONS(4301),
    [sym_ptrdiff_t] = ACTIONS(4301),
    [sym_string] = ACTIONS(4301),
    [sym_cstring] = ACTIONS(4301),
    [sym_dstring] = ACTIONS(4301),
    [sym_wstring] = ACTIONS(4301),
    [sym_noreturn] = ACTIONS(4301),
    [sym_this] = ACTIONS(4301),
    [sym_abstract] = ACTIONS(4301),
    [sym_alias] = ACTIONS(4301),
    [sym_align] = ACTIONS(4301),
    [sym_auto] = ACTIONS(4301),
    [sym_catch] = ACTIONS(4301),
    [sym_class] = ACTIONS(4301),
    [sym_const] = ACTIONS(4301),
    [sym_debug] = ACTIONS(4301),
    [sym_deprecated] = ACTIONS(4301),
    [sym_else] = ACTIONS(4301),
    [sym_enum] = ACTIONS(4301),
    [sym_export] = ACTIONS(4301),
    [sym_extern] = ACTIONS(4301),
    [sym_final] = ACTIONS(4301),
    [sym_finally] = ACTIONS(4301),
    [sym_immutable] = ACTIONS(4301),
    [sym_import] = ACTIONS(4301),
    [sym_inout] = ACTIONS(4301),
    [sym_interface] = ACTIONS(4301),
    [sym_invariant] = ACTIONS(4301),
    [sym_mixin] = ACTIONS(4301),
    [sym_nothrow] = ACTIONS(4301),
    [sym_override] = ACTIONS(4301),
    [sym_package] = ACTIONS(4301),
    [sym_pragma] = ACTIONS(4301),
    [sym_private] = ACTIONS(4301),
    [sym_protected] = ACTIONS(4301),
    [sym_public] = ACTIONS(4301),
    [sym_pure] = ACTIONS(4301),
    [sym_ref] = ACTIONS(4301),
    [sym_return] = ACTIONS(4301),
    [sym_scope] = ACTIONS(4301),
    [sym_shared] = ACTIONS(4301),
    [sym_static] = ACTIONS(4301),
    [sym_struct] = ACTIONS(4301),
    [sym_synchronized] = ACTIONS(4301),
    [sym_template] = ACTIONS(4301),
    [sym_typeof] = ACTIONS(4301),
    [sym_union] = ACTIONS(4301),
    [sym_unittest] = ACTIONS(4301),
    [sym_version] = ACTIONS(4301),
    [sym_while] = ACTIONS(4301),
    [sym_gshared] = ACTIONS(4301),
    [sym_traits] = ACTIONS(4301),
    [sym_vector] = ACTIONS(4301),
    [sym_void] = ACTIONS(4301),
    [sym_directive] = ACTIONS(3),
  },
  [2547] = {
    [sym_identifier] = ACTIONS(4317),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4319),
    [anon_sym_SEMI] = ACTIONS(4319),
    [anon_sym_TILDE] = ACTIONS(4319),
    [anon_sym_AT] = ACTIONS(4319),
    [sym_bool] = ACTIONS(4317),
    [sym_byte] = ACTIONS(4317),
    [sym_ubyte] = ACTIONS(4317),
    [sym_char] = ACTIONS(4317),
    [sym_short] = ACTIONS(4317),
    [sym_ushort] = ACTIONS(4317),
    [sym_int] = ACTIONS(4317),
    [sym_uint] = ACTIONS(4317),
    [sym_long] = ACTIONS(4317),
    [sym_ulong] = ACTIONS(4317),
    [sym_cent] = ACTIONS(4317),
    [sym_ucent] = ACTIONS(4317),
    [sym_wchar] = ACTIONS(4317),
    [sym_dchar] = ACTIONS(4317),
    [sym_float] = ACTIONS(4317),
    [sym_double] = ACTIONS(4317),
    [sym_real] = ACTIONS(4317),
    [sym_ifloat] = ACTIONS(4317),
    [sym_idouble] = ACTIONS(4317),
    [sym_ireal] = ACTIONS(4317),
    [sym_cfloat] = ACTIONS(4317),
    [sym_cdouble] = ACTIONS(4317),
    [sym_creal] = ACTIONS(4317),
    [sym_size_t] = ACTIONS(4317),
    [sym_ptrdiff_t] = ACTIONS(4317),
    [sym_string] = ACTIONS(4317),
    [sym_cstring] = ACTIONS(4317),
    [sym_dstring] = ACTIONS(4317),
    [sym_wstring] = ACTIONS(4317),
    [sym_noreturn] = ACTIONS(4317),
    [sym_this] = ACTIONS(4317),
    [sym_abstract] = ACTIONS(4317),
    [sym_alias] = ACTIONS(4317),
    [sym_align] = ACTIONS(4317),
    [sym_auto] = ACTIONS(4317),
    [sym_catch] = ACTIONS(4317),
    [sym_class] = ACTIONS(4317),
    [sym_const] = ACTIONS(4317),
    [sym_debug] = ACTIONS(4317),
    [sym_deprecated] = ACTIONS(4317),
    [sym_else] = ACTIONS(4317),
    [sym_enum] = ACTIONS(4317),
    [sym_export] = ACTIONS(4317),
    [sym_extern] = ACTIONS(4317),
    [sym_final] = ACTIONS(4317),
    [sym_finally] = ACTIONS(4317),
    [sym_immutable] = ACTIONS(4317),
    [sym_import] = ACTIONS(4317),
    [sym_inout] = ACTIONS(4317),
    [sym_interface] = ACTIONS(4317),
    [sym_invariant] = ACTIONS(4317),
    [sym_mixin] = ACTIONS(4317),
    [sym_nothrow] = ACTIONS(4317),
    [sym_override] = ACTIONS(4317),
    [sym_package] = ACTIONS(4317),
    [sym_pragma] = ACTIONS(4317),
    [sym_private] = ACTIONS(4317),
    [sym_protected] = ACTIONS(4317),
    [sym_public] = ACTIONS(4317),
    [sym_pure] = ACTIONS(4317),
    [sym_ref] = ACTIONS(4317),
    [sym_return] = ACTIONS(4317),
    [sym_scope] = ACTIONS(4317),
    [sym_shared] = ACTIONS(4317),
    [sym_static] = ACTIONS(4317),
    [sym_struct] = ACTIONS(4317),
    [sym_synchronized] = ACTIONS(4317),
    [sym_template] = ACTIONS(4317),
    [sym_typeof] = ACTIONS(4317),
    [sym_union] = ACTIONS(4317),
    [sym_unittest] = ACTIONS(4317),
    [sym_version] = ACTIONS(4317),
    [sym_while] = ACTIONS(4317),
    [sym_gshared] = ACTIONS(4317),
    [sym_traits] = ACTIONS(4317),
    [sym_vector] = ACTIONS(4317),
    [sym_void] = ACTIONS(4317),
    [sym_directive] = ACTIONS(3),
  },
  [2548] = {
    [sym_identifier] = ACTIONS(4331),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4333),
    [anon_sym_SEMI] = ACTIONS(4333),
    [anon_sym_TILDE] = ACTIONS(4333),
    [anon_sym_AT] = ACTIONS(4333),
    [sym_bool] = ACTIONS(4331),
    [sym_byte] = ACTIONS(4331),
    [sym_ubyte] = ACTIONS(4331),
    [sym_char] = ACTIONS(4331),
    [sym_short] = ACTIONS(4331),
    [sym_ushort] = ACTIONS(4331),
    [sym_int] = ACTIONS(4331),
    [sym_uint] = ACTIONS(4331),
    [sym_long] = ACTIONS(4331),
    [sym_ulong] = ACTIONS(4331),
    [sym_cent] = ACTIONS(4331),
    [sym_ucent] = ACTIONS(4331),
    [sym_wchar] = ACTIONS(4331),
    [sym_dchar] = ACTIONS(4331),
    [sym_float] = ACTIONS(4331),
    [sym_double] = ACTIONS(4331),
    [sym_real] = ACTIONS(4331),
    [sym_ifloat] = ACTIONS(4331),
    [sym_idouble] = ACTIONS(4331),
    [sym_ireal] = ACTIONS(4331),
    [sym_cfloat] = ACTIONS(4331),
    [sym_cdouble] = ACTIONS(4331),
    [sym_creal] = ACTIONS(4331),
    [sym_size_t] = ACTIONS(4331),
    [sym_ptrdiff_t] = ACTIONS(4331),
    [sym_string] = ACTIONS(4331),
    [sym_cstring] = ACTIONS(4331),
    [sym_dstring] = ACTIONS(4331),
    [sym_wstring] = ACTIONS(4331),
    [sym_noreturn] = ACTIONS(4331),
    [sym_this] = ACTIONS(4331),
    [sym_abstract] = ACTIONS(4331),
    [sym_alias] = ACTIONS(4331),
    [sym_align] = ACTIONS(4331),
    [sym_auto] = ACTIONS(4331),
    [sym_catch] = ACTIONS(4331),
    [sym_class] = ACTIONS(4331),
    [sym_const] = ACTIONS(4331),
    [sym_debug] = ACTIONS(4331),
    [sym_deprecated] = ACTIONS(4331),
    [sym_else] = ACTIONS(4331),
    [sym_enum] = ACTIONS(4331),
    [sym_export] = ACTIONS(4331),
    [sym_extern] = ACTIONS(4331),
    [sym_final] = ACTIONS(4331),
    [sym_finally] = ACTIONS(4331),
    [sym_immutable] = ACTIONS(4331),
    [sym_import] = ACTIONS(4331),
    [sym_inout] = ACTIONS(4331),
    [sym_interface] = ACTIONS(4331),
    [sym_invariant] = ACTIONS(4331),
    [sym_mixin] = ACTIONS(4331),
    [sym_nothrow] = ACTIONS(4331),
    [sym_override] = ACTIONS(4331),
    [sym_package] = ACTIONS(4331),
    [sym_pragma] = ACTIONS(4331),
    [sym_private] = ACTIONS(4331),
    [sym_protected] = ACTIONS(4331),
    [sym_public] = ACTIONS(4331),
    [sym_pure] = ACTIONS(4331),
    [sym_ref] = ACTIONS(4331),
    [sym_return] = ACTIONS(4331),
    [sym_scope] = ACTIONS(4331),
    [sym_shared] = ACTIONS(4331),
    [sym_static] = ACTIONS(4331),
    [sym_struct] = ACTIONS(4331),
    [sym_synchronized] = ACTIONS(4331),
    [sym_template] = ACTIONS(4331),
    [sym_typeof] = ACTIONS(4331),
    [sym_union] = ACTIONS(4331),
    [sym_unittest] = ACTIONS(4331),
    [sym_version] = ACTIONS(4331),
    [sym_while] = ACTIONS(4331),
    [sym_gshared] = ACTIONS(4331),
    [sym_traits] = ACTIONS(4331),
    [sym_vector] = ACTIONS(4331),
    [sym_void] = ACTIONS(4331),
    [sym_directive] = ACTIONS(3),
  },
  [2549] = {
    [sym_identifier] = ACTIONS(4610),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4612),
    [anon_sym_SEMI] = ACTIONS(4612),
    [anon_sym_TILDE] = ACTIONS(4612),
    [anon_sym_AT] = ACTIONS(4612),
    [sym_bool] = ACTIONS(4610),
    [sym_byte] = ACTIONS(4610),
    [sym_ubyte] = ACTIONS(4610),
    [sym_char] = ACTIONS(4610),
    [sym_short] = ACTIONS(4610),
    [sym_ushort] = ACTIONS(4610),
    [sym_int] = ACTIONS(4610),
    [sym_uint] = ACTIONS(4610),
    [sym_long] = ACTIONS(4610),
    [sym_ulong] = ACTIONS(4610),
    [sym_cent] = ACTIONS(4610),
    [sym_ucent] = ACTIONS(4610),
    [sym_wchar] = ACTIONS(4610),
    [sym_dchar] = ACTIONS(4610),
    [sym_float] = ACTIONS(4610),
    [sym_double] = ACTIONS(4610),
    [sym_real] = ACTIONS(4610),
    [sym_ifloat] = ACTIONS(4610),
    [sym_idouble] = ACTIONS(4610),
    [sym_ireal] = ACTIONS(4610),
    [sym_cfloat] = ACTIONS(4610),
    [sym_cdouble] = ACTIONS(4610),
    [sym_creal] = ACTIONS(4610),
    [sym_size_t] = ACTIONS(4610),
    [sym_ptrdiff_t] = ACTIONS(4610),
    [sym_string] = ACTIONS(4610),
    [sym_cstring] = ACTIONS(4610),
    [sym_dstring] = ACTIONS(4610),
    [sym_wstring] = ACTIONS(4610),
    [sym_noreturn] = ACTIONS(4610),
    [sym_this] = ACTIONS(4610),
    [sym_abstract] = ACTIONS(4610),
    [sym_alias] = ACTIONS(4610),
    [sym_align] = ACTIONS(4610),
    [sym_auto] = ACTIONS(4610),
    [sym_catch] = ACTIONS(4610),
    [sym_class] = ACTIONS(4610),
    [sym_const] = ACTIONS(4610),
    [sym_debug] = ACTIONS(4610),
    [sym_deprecated] = ACTIONS(4610),
    [sym_else] = ACTIONS(4610),
    [sym_enum] = ACTIONS(4610),
    [sym_export] = ACTIONS(4610),
    [sym_extern] = ACTIONS(4610),
    [sym_final] = ACTIONS(4610),
    [sym_finally] = ACTIONS(4610),
    [sym_immutable] = ACTIONS(4610),
    [sym_import] = ACTIONS(4610),
    [sym_inout] = ACTIONS(4610),
    [sym_interface] = ACTIONS(4610),
    [sym_invariant] = ACTIONS(4610),
    [sym_mixin] = ACTIONS(4610),
    [sym_nothrow] = ACTIONS(4610),
    [sym_override] = ACTIONS(4610),
    [sym_package] = ACTIONS(4610),
    [sym_pragma] = ACTIONS(4610),
    [sym_private] = ACTIONS(4610),
    [sym_protected] = ACTIONS(4610),
    [sym_public] = ACTIONS(4610),
    [sym_pure] = ACTIONS(4610),
    [sym_ref] = ACTIONS(4610),
    [sym_return] = ACTIONS(4610),
    [sym_scope] = ACTIONS(4610),
    [sym_shared] = ACTIONS(4610),
    [sym_static] = ACTIONS(4610),
    [sym_struct] = ACTIONS(4610),
    [sym_synchronized] = ACTIONS(4610),
    [sym_template] = ACTIONS(4610),
    [sym_typeof] = ACTIONS(4610),
    [sym_union] = ACTIONS(4610),
    [sym_unittest] = ACTIONS(4610),
    [sym_version] = ACTIONS(4610),
    [sym_while] = ACTIONS(4610),
    [sym_gshared] = ACTIONS(4610),
    [sym_traits] = ACTIONS(4610),
    [sym_vector] = ACTIONS(4610),
    [sym_void] = ACTIONS(4610),
    [sym_directive] = ACTIONS(3),
  },
  [2550] = {
    [sym_identifier] = ACTIONS(4343),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4345),
    [anon_sym_SEMI] = ACTIONS(4345),
    [anon_sym_TILDE] = ACTIONS(4345),
    [anon_sym_AT] = ACTIONS(4345),
    [sym_bool] = ACTIONS(4343),
    [sym_byte] = ACTIONS(4343),
    [sym_ubyte] = ACTIONS(4343),
    [sym_char] = ACTIONS(4343),
    [sym_short] = ACTIONS(4343),
    [sym_ushort] = ACTIONS(4343),
    [sym_int] = ACTIONS(4343),
    [sym_uint] = ACTIONS(4343),
    [sym_long] = ACTIONS(4343),
    [sym_ulong] = ACTIONS(4343),
    [sym_cent] = ACTIONS(4343),
    [sym_ucent] = ACTIONS(4343),
    [sym_wchar] = ACTIONS(4343),
    [sym_dchar] = ACTIONS(4343),
    [sym_float] = ACTIONS(4343),
    [sym_double] = ACTIONS(4343),
    [sym_real] = ACTIONS(4343),
    [sym_ifloat] = ACTIONS(4343),
    [sym_idouble] = ACTIONS(4343),
    [sym_ireal] = ACTIONS(4343),
    [sym_cfloat] = ACTIONS(4343),
    [sym_cdouble] = ACTIONS(4343),
    [sym_creal] = ACTIONS(4343),
    [sym_size_t] = ACTIONS(4343),
    [sym_ptrdiff_t] = ACTIONS(4343),
    [sym_string] = ACTIONS(4343),
    [sym_cstring] = ACTIONS(4343),
    [sym_dstring] = ACTIONS(4343),
    [sym_wstring] = ACTIONS(4343),
    [sym_noreturn] = ACTIONS(4343),
    [sym_this] = ACTIONS(4343),
    [sym_abstract] = ACTIONS(4343),
    [sym_alias] = ACTIONS(4343),
    [sym_align] = ACTIONS(4343),
    [sym_auto] = ACTIONS(4343),
    [sym_catch] = ACTIONS(4343),
    [sym_class] = ACTIONS(4343),
    [sym_const] = ACTIONS(4343),
    [sym_debug] = ACTIONS(4343),
    [sym_deprecated] = ACTIONS(4343),
    [sym_else] = ACTIONS(4343),
    [sym_enum] = ACTIONS(4343),
    [sym_export] = ACTIONS(4343),
    [sym_extern] = ACTIONS(4343),
    [sym_final] = ACTIONS(4343),
    [sym_finally] = ACTIONS(4343),
    [sym_immutable] = ACTIONS(4343),
    [sym_import] = ACTIONS(4343),
    [sym_inout] = ACTIONS(4343),
    [sym_interface] = ACTIONS(4343),
    [sym_invariant] = ACTIONS(4343),
    [sym_mixin] = ACTIONS(4343),
    [sym_nothrow] = ACTIONS(4343),
    [sym_override] = ACTIONS(4343),
    [sym_package] = ACTIONS(4343),
    [sym_pragma] = ACTIONS(4343),
    [sym_private] = ACTIONS(4343),
    [sym_protected] = ACTIONS(4343),
    [sym_public] = ACTIONS(4343),
    [sym_pure] = ACTIONS(4343),
    [sym_ref] = ACTIONS(4343),
    [sym_return] = ACTIONS(4343),
    [sym_scope] = ACTIONS(4343),
    [sym_shared] = ACTIONS(4343),
    [sym_static] = ACTIONS(4343),
    [sym_struct] = ACTIONS(4343),
    [sym_synchronized] = ACTIONS(4343),
    [sym_template] = ACTIONS(4343),
    [sym_typeof] = ACTIONS(4343),
    [sym_union] = ACTIONS(4343),
    [sym_unittest] = ACTIONS(4343),
    [sym_version] = ACTIONS(4343),
    [sym_while] = ACTIONS(4343),
    [sym_gshared] = ACTIONS(4343),
    [sym_traits] = ACTIONS(4343),
    [sym_vector] = ACTIONS(4343),
    [sym_void] = ACTIONS(4343),
    [sym_directive] = ACTIONS(3),
  },
  [2551] = {
    [ts_builtin_sym_end] = ACTIONS(4902),
    [sym_identifier] = ACTIONS(4900),
    [sym_end_file] = ACTIONS(4900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4902),
    [anon_sym_SEMI] = ACTIONS(4902),
    [anon_sym_TILDE] = ACTIONS(4902),
    [anon_sym_AT] = ACTIONS(4902),
    [sym_bool] = ACTIONS(4900),
    [sym_byte] = ACTIONS(4900),
    [sym_ubyte] = ACTIONS(4900),
    [sym_char] = ACTIONS(4900),
    [sym_short] = ACTIONS(4900),
    [sym_ushort] = ACTIONS(4900),
    [sym_int] = ACTIONS(4900),
    [sym_uint] = ACTIONS(4900),
    [sym_long] = ACTIONS(4900),
    [sym_ulong] = ACTIONS(4900),
    [sym_cent] = ACTIONS(4900),
    [sym_ucent] = ACTIONS(4900),
    [sym_wchar] = ACTIONS(4900),
    [sym_dchar] = ACTIONS(4900),
    [sym_float] = ACTIONS(4900),
    [sym_double] = ACTIONS(4900),
    [sym_real] = ACTIONS(4900),
    [sym_ifloat] = ACTIONS(4900),
    [sym_idouble] = ACTIONS(4900),
    [sym_ireal] = ACTIONS(4900),
    [sym_cfloat] = ACTIONS(4900),
    [sym_cdouble] = ACTIONS(4900),
    [sym_creal] = ACTIONS(4900),
    [sym_size_t] = ACTIONS(4900),
    [sym_ptrdiff_t] = ACTIONS(4900),
    [sym_string] = ACTIONS(4900),
    [sym_cstring] = ACTIONS(4900),
    [sym_dstring] = ACTIONS(4900),
    [sym_wstring] = ACTIONS(4900),
    [sym_noreturn] = ACTIONS(4900),
    [sym_this] = ACTIONS(4900),
    [sym_abstract] = ACTIONS(4900),
    [sym_alias] = ACTIONS(4900),
    [sym_align] = ACTIONS(4900),
    [sym_auto] = ACTIONS(4900),
    [sym_class] = ACTIONS(4900),
    [sym_const] = ACTIONS(4900),
    [sym_debug] = ACTIONS(4900),
    [sym_deprecated] = ACTIONS(4900),
    [sym_else] = ACTIONS(4900),
    [sym_enum] = ACTIONS(4900),
    [sym_export] = ACTIONS(4900),
    [sym_extern] = ACTIONS(4900),
    [sym_final] = ACTIONS(4900),
    [sym_immutable] = ACTIONS(4900),
    [sym_import] = ACTIONS(4900),
    [sym_inout] = ACTIONS(4900),
    [sym_interface] = ACTIONS(4900),
    [sym_invariant] = ACTIONS(4900),
    [sym_mixin] = ACTIONS(4900),
    [sym_nothrow] = ACTIONS(4900),
    [sym_override] = ACTIONS(4900),
    [sym_package] = ACTIONS(4900),
    [sym_pragma] = ACTIONS(4900),
    [sym_private] = ACTIONS(4900),
    [sym_protected] = ACTIONS(4900),
    [sym_public] = ACTIONS(4900),
    [sym_pure] = ACTIONS(4900),
    [sym_ref] = ACTIONS(4900),
    [sym_return] = ACTIONS(4900),
    [sym_scope] = ACTIONS(4900),
    [sym_shared] = ACTIONS(4900),
    [sym_static] = ACTIONS(4900),
    [sym_struct] = ACTIONS(4900),
    [sym_synchronized] = ACTIONS(4900),
    [sym_template] = ACTIONS(4900),
    [sym_typeof] = ACTIONS(4900),
    [sym_union] = ACTIONS(4900),
    [sym_unittest] = ACTIONS(4900),
    [sym_version] = ACTIONS(4900),
    [sym_while] = ACTIONS(4900),
    [sym_gshared] = ACTIONS(4900),
    [sym_traits] = ACTIONS(4900),
    [sym_vector] = ACTIONS(4900),
    [sym_void] = ACTIONS(4900),
    [sym_directive] = ACTIONS(3),
  },
  [2552] = {
    [ts_builtin_sym_end] = ACTIONS(4906),
    [sym_identifier] = ACTIONS(4904),
    [sym_end_file] = ACTIONS(4904),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4906),
    [anon_sym_SEMI] = ACTIONS(4906),
    [anon_sym_TILDE] = ACTIONS(4906),
    [anon_sym_AT] = ACTIONS(4906),
    [sym_bool] = ACTIONS(4904),
    [sym_byte] = ACTIONS(4904),
    [sym_ubyte] = ACTIONS(4904),
    [sym_char] = ACTIONS(4904),
    [sym_short] = ACTIONS(4904),
    [sym_ushort] = ACTIONS(4904),
    [sym_int] = ACTIONS(4904),
    [sym_uint] = ACTIONS(4904),
    [sym_long] = ACTIONS(4904),
    [sym_ulong] = ACTIONS(4904),
    [sym_cent] = ACTIONS(4904),
    [sym_ucent] = ACTIONS(4904),
    [sym_wchar] = ACTIONS(4904),
    [sym_dchar] = ACTIONS(4904),
    [sym_float] = ACTIONS(4904),
    [sym_double] = ACTIONS(4904),
    [sym_real] = ACTIONS(4904),
    [sym_ifloat] = ACTIONS(4904),
    [sym_idouble] = ACTIONS(4904),
    [sym_ireal] = ACTIONS(4904),
    [sym_cfloat] = ACTIONS(4904),
    [sym_cdouble] = ACTIONS(4904),
    [sym_creal] = ACTIONS(4904),
    [sym_size_t] = ACTIONS(4904),
    [sym_ptrdiff_t] = ACTIONS(4904),
    [sym_string] = ACTIONS(4904),
    [sym_cstring] = ACTIONS(4904),
    [sym_dstring] = ACTIONS(4904),
    [sym_wstring] = ACTIONS(4904),
    [sym_noreturn] = ACTIONS(4904),
    [sym_this] = ACTIONS(4904),
    [sym_abstract] = ACTIONS(4904),
    [sym_alias] = ACTIONS(4904),
    [sym_align] = ACTIONS(4904),
    [sym_auto] = ACTIONS(4904),
    [sym_class] = ACTIONS(4904),
    [sym_const] = ACTIONS(4904),
    [sym_debug] = ACTIONS(4904),
    [sym_deprecated] = ACTIONS(4904),
    [sym_else] = ACTIONS(4904),
    [sym_enum] = ACTIONS(4904),
    [sym_export] = ACTIONS(4904),
    [sym_extern] = ACTIONS(4904),
    [sym_final] = ACTIONS(4904),
    [sym_immutable] = ACTIONS(4904),
    [sym_import] = ACTIONS(4904),
    [sym_inout] = ACTIONS(4904),
    [sym_interface] = ACTIONS(4904),
    [sym_invariant] = ACTIONS(4904),
    [sym_mixin] = ACTIONS(4904),
    [sym_nothrow] = ACTIONS(4904),
    [sym_override] = ACTIONS(4904),
    [sym_package] = ACTIONS(4904),
    [sym_pragma] = ACTIONS(4904),
    [sym_private] = ACTIONS(4904),
    [sym_protected] = ACTIONS(4904),
    [sym_public] = ACTIONS(4904),
    [sym_pure] = ACTIONS(4904),
    [sym_ref] = ACTIONS(4904),
    [sym_return] = ACTIONS(4904),
    [sym_scope] = ACTIONS(4904),
    [sym_shared] = ACTIONS(4904),
    [sym_static] = ACTIONS(4904),
    [sym_struct] = ACTIONS(4904),
    [sym_synchronized] = ACTIONS(4904),
    [sym_template] = ACTIONS(4904),
    [sym_typeof] = ACTIONS(4904),
    [sym_union] = ACTIONS(4904),
    [sym_unittest] = ACTIONS(4904),
    [sym_version] = ACTIONS(4904),
    [sym_while] = ACTIONS(4904),
    [sym_gshared] = ACTIONS(4904),
    [sym_traits] = ACTIONS(4904),
    [sym_vector] = ACTIONS(4904),
    [sym_void] = ACTIONS(4904),
    [sym_directive] = ACTIONS(3),
  },
  [2553] = {
    [sym_identifier] = ACTIONS(4386),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4388),
    [anon_sym_SEMI] = ACTIONS(4388),
    [anon_sym_TILDE] = ACTIONS(4388),
    [anon_sym_AT] = ACTIONS(4388),
    [sym_bool] = ACTIONS(4386),
    [sym_byte] = ACTIONS(4386),
    [sym_ubyte] = ACTIONS(4386),
    [sym_char] = ACTIONS(4386),
    [sym_short] = ACTIONS(4386),
    [sym_ushort] = ACTIONS(4386),
    [sym_int] = ACTIONS(4386),
    [sym_uint] = ACTIONS(4386),
    [sym_long] = ACTIONS(4386),
    [sym_ulong] = ACTIONS(4386),
    [sym_cent] = ACTIONS(4386),
    [sym_ucent] = ACTIONS(4386),
    [sym_wchar] = ACTIONS(4386),
    [sym_dchar] = ACTIONS(4386),
    [sym_float] = ACTIONS(4386),
    [sym_double] = ACTIONS(4386),
    [sym_real] = ACTIONS(4386),
    [sym_ifloat] = ACTIONS(4386),
    [sym_idouble] = ACTIONS(4386),
    [sym_ireal] = ACTIONS(4386),
    [sym_cfloat] = ACTIONS(4386),
    [sym_cdouble] = ACTIONS(4386),
    [sym_creal] = ACTIONS(4386),
    [sym_size_t] = ACTIONS(4386),
    [sym_ptrdiff_t] = ACTIONS(4386),
    [sym_string] = ACTIONS(4386),
    [sym_cstring] = ACTIONS(4386),
    [sym_dstring] = ACTIONS(4386),
    [sym_wstring] = ACTIONS(4386),
    [sym_noreturn] = ACTIONS(4386),
    [sym_this] = ACTIONS(4386),
    [sym_abstract] = ACTIONS(4386),
    [sym_alias] = ACTIONS(4386),
    [sym_align] = ACTIONS(4386),
    [sym_auto] = ACTIONS(4386),
    [sym_catch] = ACTIONS(4386),
    [sym_class] = ACTIONS(4386),
    [sym_const] = ACTIONS(4386),
    [sym_debug] = ACTIONS(4386),
    [sym_deprecated] = ACTIONS(4386),
    [sym_else] = ACTIONS(4386),
    [sym_enum] = ACTIONS(4386),
    [sym_export] = ACTIONS(4386),
    [sym_extern] = ACTIONS(4386),
    [sym_final] = ACTIONS(4386),
    [sym_finally] = ACTIONS(4386),
    [sym_immutable] = ACTIONS(4386),
    [sym_import] = ACTIONS(4386),
    [sym_inout] = ACTIONS(4386),
    [sym_interface] = ACTIONS(4386),
    [sym_invariant] = ACTIONS(4386),
    [sym_mixin] = ACTIONS(4386),
    [sym_nothrow] = ACTIONS(4386),
    [sym_override] = ACTIONS(4386),
    [sym_package] = ACTIONS(4386),
    [sym_pragma] = ACTIONS(4386),
    [sym_private] = ACTIONS(4386),
    [sym_protected] = ACTIONS(4386),
    [sym_public] = ACTIONS(4386),
    [sym_pure] = ACTIONS(4386),
    [sym_ref] = ACTIONS(4386),
    [sym_return] = ACTIONS(4386),
    [sym_scope] = ACTIONS(4386),
    [sym_shared] = ACTIONS(4386),
    [sym_static] = ACTIONS(4386),
    [sym_struct] = ACTIONS(4386),
    [sym_synchronized] = ACTIONS(4386),
    [sym_template] = ACTIONS(4386),
    [sym_typeof] = ACTIONS(4386),
    [sym_union] = ACTIONS(4386),
    [sym_unittest] = ACTIONS(4386),
    [sym_version] = ACTIONS(4386),
    [sym_while] = ACTIONS(4386),
    [sym_gshared] = ACTIONS(4386),
    [sym_traits] = ACTIONS(4386),
    [sym_vector] = ACTIONS(4386),
    [sym_void] = ACTIONS(4386),
    [sym_directive] = ACTIONS(3),
  },
  [2554] = {
    [ts_builtin_sym_end] = ACTIONS(4618),
    [sym_identifier] = ACTIONS(4616),
    [sym_end_file] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
  },
  [2555] = {
    [ts_builtin_sym_end] = ACTIONS(4914),
    [sym_identifier] = ACTIONS(4912),
    [sym_end_file] = ACTIONS(4912),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4914),
    [anon_sym_SEMI] = ACTIONS(4914),
    [anon_sym_TILDE] = ACTIONS(4914),
    [anon_sym_AT] = ACTIONS(4914),
    [sym_bool] = ACTIONS(4912),
    [sym_byte] = ACTIONS(4912),
    [sym_ubyte] = ACTIONS(4912),
    [sym_char] = ACTIONS(4912),
    [sym_short] = ACTIONS(4912),
    [sym_ushort] = ACTIONS(4912),
    [sym_int] = ACTIONS(4912),
    [sym_uint] = ACTIONS(4912),
    [sym_long] = ACTIONS(4912),
    [sym_ulong] = ACTIONS(4912),
    [sym_cent] = ACTIONS(4912),
    [sym_ucent] = ACTIONS(4912),
    [sym_wchar] = ACTIONS(4912),
    [sym_dchar] = ACTIONS(4912),
    [sym_float] = ACTIONS(4912),
    [sym_double] = ACTIONS(4912),
    [sym_real] = ACTIONS(4912),
    [sym_ifloat] = ACTIONS(4912),
    [sym_idouble] = ACTIONS(4912),
    [sym_ireal] = ACTIONS(4912),
    [sym_cfloat] = ACTIONS(4912),
    [sym_cdouble] = ACTIONS(4912),
    [sym_creal] = ACTIONS(4912),
    [sym_size_t] = ACTIONS(4912),
    [sym_ptrdiff_t] = ACTIONS(4912),
    [sym_string] = ACTIONS(4912),
    [sym_cstring] = ACTIONS(4912),
    [sym_dstring] = ACTIONS(4912),
    [sym_wstring] = ACTIONS(4912),
    [sym_noreturn] = ACTIONS(4912),
    [sym_this] = ACTIONS(4912),
    [sym_abstract] = ACTIONS(4912),
    [sym_alias] = ACTIONS(4912),
    [sym_align] = ACTIONS(4912),
    [sym_auto] = ACTIONS(4912),
    [sym_class] = ACTIONS(4912),
    [sym_const] = ACTIONS(4912),
    [sym_debug] = ACTIONS(4912),
    [sym_deprecated] = ACTIONS(4912),
    [sym_else] = ACTIONS(4912),
    [sym_enum] = ACTIONS(4912),
    [sym_export] = ACTIONS(4912),
    [sym_extern] = ACTIONS(4912),
    [sym_final] = ACTIONS(4912),
    [sym_immutable] = ACTIONS(4912),
    [sym_import] = ACTIONS(4912),
    [sym_inout] = ACTIONS(4912),
    [sym_interface] = ACTIONS(4912),
    [sym_invariant] = ACTIONS(4912),
    [sym_mixin] = ACTIONS(4912),
    [sym_nothrow] = ACTIONS(4912),
    [sym_override] = ACTIONS(4912),
    [sym_package] = ACTIONS(4912),
    [sym_pragma] = ACTIONS(4912),
    [sym_private] = ACTIONS(4912),
    [sym_protected] = ACTIONS(4912),
    [sym_public] = ACTIONS(4912),
    [sym_pure] = ACTIONS(4912),
    [sym_ref] = ACTIONS(4912),
    [sym_return] = ACTIONS(4912),
    [sym_scope] = ACTIONS(4912),
    [sym_shared] = ACTIONS(4912),
    [sym_static] = ACTIONS(4912),
    [sym_struct] = ACTIONS(4912),
    [sym_synchronized] = ACTIONS(4912),
    [sym_template] = ACTIONS(4912),
    [sym_typeof] = ACTIONS(4912),
    [sym_union] = ACTIONS(4912),
    [sym_unittest] = ACTIONS(4912),
    [sym_version] = ACTIONS(4912),
    [sym_while] = ACTIONS(4912),
    [sym_gshared] = ACTIONS(4912),
    [sym_traits] = ACTIONS(4912),
    [sym_vector] = ACTIONS(4912),
    [sym_void] = ACTIONS(4912),
    [sym_directive] = ACTIONS(3),
  },
  [2556] = {
    [ts_builtin_sym_end] = ACTIONS(4920),
    [sym_identifier] = ACTIONS(4918),
    [sym_end_file] = ACTIONS(4918),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4920),
    [anon_sym_SEMI] = ACTIONS(4920),
    [anon_sym_TILDE] = ACTIONS(4920),
    [anon_sym_AT] = ACTIONS(4920),
    [sym_bool] = ACTIONS(4918),
    [sym_byte] = ACTIONS(4918),
    [sym_ubyte] = ACTIONS(4918),
    [sym_char] = ACTIONS(4918),
    [sym_short] = ACTIONS(4918),
    [sym_ushort] = ACTIONS(4918),
    [sym_int] = ACTIONS(4918),
    [sym_uint] = ACTIONS(4918),
    [sym_long] = ACTIONS(4918),
    [sym_ulong] = ACTIONS(4918),
    [sym_cent] = ACTIONS(4918),
    [sym_ucent] = ACTIONS(4918),
    [sym_wchar] = ACTIONS(4918),
    [sym_dchar] = ACTIONS(4918),
    [sym_float] = ACTIONS(4918),
    [sym_double] = ACTIONS(4918),
    [sym_real] = ACTIONS(4918),
    [sym_ifloat] = ACTIONS(4918),
    [sym_idouble] = ACTIONS(4918),
    [sym_ireal] = ACTIONS(4918),
    [sym_cfloat] = ACTIONS(4918),
    [sym_cdouble] = ACTIONS(4918),
    [sym_creal] = ACTIONS(4918),
    [sym_size_t] = ACTIONS(4918),
    [sym_ptrdiff_t] = ACTIONS(4918),
    [sym_string] = ACTIONS(4918),
    [sym_cstring] = ACTIONS(4918),
    [sym_dstring] = ACTIONS(4918),
    [sym_wstring] = ACTIONS(4918),
    [sym_noreturn] = ACTIONS(4918),
    [sym_this] = ACTIONS(4918),
    [sym_abstract] = ACTIONS(4918),
    [sym_alias] = ACTIONS(4918),
    [sym_align] = ACTIONS(4918),
    [sym_auto] = ACTIONS(4918),
    [sym_class] = ACTIONS(4918),
    [sym_const] = ACTIONS(4918),
    [sym_debug] = ACTIONS(4918),
    [sym_deprecated] = ACTIONS(4918),
    [sym_else] = ACTIONS(4918),
    [sym_enum] = ACTIONS(4918),
    [sym_export] = ACTIONS(4918),
    [sym_extern] = ACTIONS(4918),
    [sym_final] = ACTIONS(4918),
    [sym_immutable] = ACTIONS(4918),
    [sym_import] = ACTIONS(4918),
    [sym_inout] = ACTIONS(4918),
    [sym_interface] = ACTIONS(4918),
    [sym_invariant] = ACTIONS(4918),
    [sym_mixin] = ACTIONS(4918),
    [sym_nothrow] = ACTIONS(4918),
    [sym_override] = ACTIONS(4918),
    [sym_package] = ACTIONS(4918),
    [sym_pragma] = ACTIONS(4918),
    [sym_private] = ACTIONS(4918),
    [sym_protected] = ACTIONS(4918),
    [sym_public] = ACTIONS(4918),
    [sym_pure] = ACTIONS(4918),
    [sym_ref] = ACTIONS(4918),
    [sym_return] = ACTIONS(4918),
    [sym_scope] = ACTIONS(4918),
    [sym_shared] = ACTIONS(4918),
    [sym_static] = ACTIONS(4918),
    [sym_struct] = ACTIONS(4918),
    [sym_synchronized] = ACTIONS(4918),
    [sym_template] = ACTIONS(4918),
    [sym_typeof] = ACTIONS(4918),
    [sym_union] = ACTIONS(4918),
    [sym_unittest] = ACTIONS(4918),
    [sym_version] = ACTIONS(4918),
    [sym_while] = ACTIONS(4918),
    [sym_gshared] = ACTIONS(4918),
    [sym_traits] = ACTIONS(4918),
    [sym_vector] = ACTIONS(4918),
    [sym_void] = ACTIONS(4918),
    [sym_directive] = ACTIONS(3),
  },
  [2557] = {
    [sym_identifier] = ACTIONS(4398),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4400),
    [anon_sym_SEMI] = ACTIONS(4400),
    [anon_sym_TILDE] = ACTIONS(4400),
    [anon_sym_AT] = ACTIONS(4400),
    [sym_bool] = ACTIONS(4398),
    [sym_byte] = ACTIONS(4398),
    [sym_ubyte] = ACTIONS(4398),
    [sym_char] = ACTIONS(4398),
    [sym_short] = ACTIONS(4398),
    [sym_ushort] = ACTIONS(4398),
    [sym_int] = ACTIONS(4398),
    [sym_uint] = ACTIONS(4398),
    [sym_long] = ACTIONS(4398),
    [sym_ulong] = ACTIONS(4398),
    [sym_cent] = ACTIONS(4398),
    [sym_ucent] = ACTIONS(4398),
    [sym_wchar] = ACTIONS(4398),
    [sym_dchar] = ACTIONS(4398),
    [sym_float] = ACTIONS(4398),
    [sym_double] = ACTIONS(4398),
    [sym_real] = ACTIONS(4398),
    [sym_ifloat] = ACTIONS(4398),
    [sym_idouble] = ACTIONS(4398),
    [sym_ireal] = ACTIONS(4398),
    [sym_cfloat] = ACTIONS(4398),
    [sym_cdouble] = ACTIONS(4398),
    [sym_creal] = ACTIONS(4398),
    [sym_size_t] = ACTIONS(4398),
    [sym_ptrdiff_t] = ACTIONS(4398),
    [sym_string] = ACTIONS(4398),
    [sym_cstring] = ACTIONS(4398),
    [sym_dstring] = ACTIONS(4398),
    [sym_wstring] = ACTIONS(4398),
    [sym_noreturn] = ACTIONS(4398),
    [sym_this] = ACTIONS(4398),
    [sym_abstract] = ACTIONS(4398),
    [sym_alias] = ACTIONS(4398),
    [sym_align] = ACTIONS(4398),
    [sym_auto] = ACTIONS(4398),
    [sym_catch] = ACTIONS(4398),
    [sym_class] = ACTIONS(4398),
    [sym_const] = ACTIONS(4398),
    [sym_debug] = ACTIONS(4398),
    [sym_deprecated] = ACTIONS(4398),
    [sym_else] = ACTIONS(4398),
    [sym_enum] = ACTIONS(4398),
    [sym_export] = ACTIONS(4398),
    [sym_extern] = ACTIONS(4398),
    [sym_final] = ACTIONS(4398),
    [sym_finally] = ACTIONS(4398),
    [sym_immutable] = ACTIONS(4398),
    [sym_import] = ACTIONS(4398),
    [sym_inout] = ACTIONS(4398),
    [sym_interface] = ACTIONS(4398),
    [sym_invariant] = ACTIONS(4398),
    [sym_mixin] = ACTIONS(4398),
    [sym_nothrow] = ACTIONS(4398),
    [sym_override] = ACTIONS(4398),
    [sym_package] = ACTIONS(4398),
    [sym_pragma] = ACTIONS(4398),
    [sym_private] = ACTIONS(4398),
    [sym_protected] = ACTIONS(4398),
    [sym_public] = ACTIONS(4398),
    [sym_pure] = ACTIONS(4398),
    [sym_ref] = ACTIONS(4398),
    [sym_return] = ACTIONS(4398),
    [sym_scope] = ACTIONS(4398),
    [sym_shared] = ACTIONS(4398),
    [sym_static] = ACTIONS(4398),
    [sym_struct] = ACTIONS(4398),
    [sym_synchronized] = ACTIONS(4398),
    [sym_template] = ACTIONS(4398),
    [sym_typeof] = ACTIONS(4398),
    [sym_union] = ACTIONS(4398),
    [sym_unittest] = ACTIONS(4398),
    [sym_version] = ACTIONS(4398),
    [sym_while] = ACTIONS(4398),
    [sym_gshared] = ACTIONS(4398),
    [sym_traits] = ACTIONS(4398),
    [sym_vector] = ACTIONS(4398),
    [sym_void] = ACTIONS(4398),
    [sym_directive] = ACTIONS(3),
  },
  [2558] = {
    [sym_identifier] = ACTIONS(4406),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4408),
    [anon_sym_SEMI] = ACTIONS(4408),
    [anon_sym_TILDE] = ACTIONS(4408),
    [anon_sym_AT] = ACTIONS(4408),
    [sym_bool] = ACTIONS(4406),
    [sym_byte] = ACTIONS(4406),
    [sym_ubyte] = ACTIONS(4406),
    [sym_char] = ACTIONS(4406),
    [sym_short] = ACTIONS(4406),
    [sym_ushort] = ACTIONS(4406),
    [sym_int] = ACTIONS(4406),
    [sym_uint] = ACTIONS(4406),
    [sym_long] = ACTIONS(4406),
    [sym_ulong] = ACTIONS(4406),
    [sym_cent] = ACTIONS(4406),
    [sym_ucent] = ACTIONS(4406),
    [sym_wchar] = ACTIONS(4406),
    [sym_dchar] = ACTIONS(4406),
    [sym_float] = ACTIONS(4406),
    [sym_double] = ACTIONS(4406),
    [sym_real] = ACTIONS(4406),
    [sym_ifloat] = ACTIONS(4406),
    [sym_idouble] = ACTIONS(4406),
    [sym_ireal] = ACTIONS(4406),
    [sym_cfloat] = ACTIONS(4406),
    [sym_cdouble] = ACTIONS(4406),
    [sym_creal] = ACTIONS(4406),
    [sym_size_t] = ACTIONS(4406),
    [sym_ptrdiff_t] = ACTIONS(4406),
    [sym_string] = ACTIONS(4406),
    [sym_cstring] = ACTIONS(4406),
    [sym_dstring] = ACTIONS(4406),
    [sym_wstring] = ACTIONS(4406),
    [sym_noreturn] = ACTIONS(4406),
    [sym_this] = ACTIONS(4406),
    [sym_abstract] = ACTIONS(4406),
    [sym_alias] = ACTIONS(4406),
    [sym_align] = ACTIONS(4406),
    [sym_auto] = ACTIONS(4406),
    [sym_catch] = ACTIONS(4406),
    [sym_class] = ACTIONS(4406),
    [sym_const] = ACTIONS(4406),
    [sym_debug] = ACTIONS(4406),
    [sym_deprecated] = ACTIONS(4406),
    [sym_else] = ACTIONS(4406),
    [sym_enum] = ACTIONS(4406),
    [sym_export] = ACTIONS(4406),
    [sym_extern] = ACTIONS(4406),
    [sym_final] = ACTIONS(4406),
    [sym_finally] = ACTIONS(4406),
    [sym_immutable] = ACTIONS(4406),
    [sym_import] = ACTIONS(4406),
    [sym_inout] = ACTIONS(4406),
    [sym_interface] = ACTIONS(4406),
    [sym_invariant] = ACTIONS(4406),
    [sym_mixin] = ACTIONS(4406),
    [sym_nothrow] = ACTIONS(4406),
    [sym_override] = ACTIONS(4406),
    [sym_package] = ACTIONS(4406),
    [sym_pragma] = ACTIONS(4406),
    [sym_private] = ACTIONS(4406),
    [sym_protected] = ACTIONS(4406),
    [sym_public] = ACTIONS(4406),
    [sym_pure] = ACTIONS(4406),
    [sym_ref] = ACTIONS(4406),
    [sym_return] = ACTIONS(4406),
    [sym_scope] = ACTIONS(4406),
    [sym_shared] = ACTIONS(4406),
    [sym_static] = ACTIONS(4406),
    [sym_struct] = ACTIONS(4406),
    [sym_synchronized] = ACTIONS(4406),
    [sym_template] = ACTIONS(4406),
    [sym_typeof] = ACTIONS(4406),
    [sym_union] = ACTIONS(4406),
    [sym_unittest] = ACTIONS(4406),
    [sym_version] = ACTIONS(4406),
    [sym_while] = ACTIONS(4406),
    [sym_gshared] = ACTIONS(4406),
    [sym_traits] = ACTIONS(4406),
    [sym_vector] = ACTIONS(4406),
    [sym_void] = ACTIONS(4406),
    [sym_directive] = ACTIONS(3),
  },
  [2559] = {
    [sym_identifier] = ACTIONS(4434),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4436),
    [anon_sym_SEMI] = ACTIONS(4436),
    [anon_sym_TILDE] = ACTIONS(4436),
    [anon_sym_AT] = ACTIONS(4436),
    [sym_bool] = ACTIONS(4434),
    [sym_byte] = ACTIONS(4434),
    [sym_ubyte] = ACTIONS(4434),
    [sym_char] = ACTIONS(4434),
    [sym_short] = ACTIONS(4434),
    [sym_ushort] = ACTIONS(4434),
    [sym_int] = ACTIONS(4434),
    [sym_uint] = ACTIONS(4434),
    [sym_long] = ACTIONS(4434),
    [sym_ulong] = ACTIONS(4434),
    [sym_cent] = ACTIONS(4434),
    [sym_ucent] = ACTIONS(4434),
    [sym_wchar] = ACTIONS(4434),
    [sym_dchar] = ACTIONS(4434),
    [sym_float] = ACTIONS(4434),
    [sym_double] = ACTIONS(4434),
    [sym_real] = ACTIONS(4434),
    [sym_ifloat] = ACTIONS(4434),
    [sym_idouble] = ACTIONS(4434),
    [sym_ireal] = ACTIONS(4434),
    [sym_cfloat] = ACTIONS(4434),
    [sym_cdouble] = ACTIONS(4434),
    [sym_creal] = ACTIONS(4434),
    [sym_size_t] = ACTIONS(4434),
    [sym_ptrdiff_t] = ACTIONS(4434),
    [sym_string] = ACTIONS(4434),
    [sym_cstring] = ACTIONS(4434),
    [sym_dstring] = ACTIONS(4434),
    [sym_wstring] = ACTIONS(4434),
    [sym_noreturn] = ACTIONS(4434),
    [sym_this] = ACTIONS(4434),
    [sym_abstract] = ACTIONS(4434),
    [sym_alias] = ACTIONS(4434),
    [sym_align] = ACTIONS(4434),
    [sym_auto] = ACTIONS(4434),
    [sym_catch] = ACTIONS(4434),
    [sym_class] = ACTIONS(4434),
    [sym_const] = ACTIONS(4434),
    [sym_debug] = ACTIONS(4434),
    [sym_deprecated] = ACTIONS(4434),
    [sym_else] = ACTIONS(4434),
    [sym_enum] = ACTIONS(4434),
    [sym_export] = ACTIONS(4434),
    [sym_extern] = ACTIONS(4434),
    [sym_final] = ACTIONS(4434),
    [sym_finally] = ACTIONS(4434),
    [sym_immutable] = ACTIONS(4434),
    [sym_import] = ACTIONS(4434),
    [sym_inout] = ACTIONS(4434),
    [sym_interface] = ACTIONS(4434),
    [sym_invariant] = ACTIONS(4434),
    [sym_mixin] = ACTIONS(4434),
    [sym_nothrow] = ACTIONS(4434),
    [sym_override] = ACTIONS(4434),
    [sym_package] = ACTIONS(4434),
    [sym_pragma] = ACTIONS(4434),
    [sym_private] = ACTIONS(4434),
    [sym_protected] = ACTIONS(4434),
    [sym_public] = ACTIONS(4434),
    [sym_pure] = ACTIONS(4434),
    [sym_ref] = ACTIONS(4434),
    [sym_return] = ACTIONS(4434),
    [sym_scope] = ACTIONS(4434),
    [sym_shared] = ACTIONS(4434),
    [sym_static] = ACTIONS(4434),
    [sym_struct] = ACTIONS(4434),
    [sym_synchronized] = ACTIONS(4434),
    [sym_template] = ACTIONS(4434),
    [sym_typeof] = ACTIONS(4434),
    [sym_union] = ACTIONS(4434),
    [sym_unittest] = ACTIONS(4434),
    [sym_version] = ACTIONS(4434),
    [sym_while] = ACTIONS(4434),
    [sym_gshared] = ACTIONS(4434),
    [sym_traits] = ACTIONS(4434),
    [sym_vector] = ACTIONS(4434),
    [sym_void] = ACTIONS(4434),
    [sym_directive] = ACTIONS(3),
  },
  [2560] = {
    [sym_identifier] = ACTIONS(4460),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4462),
    [anon_sym_SEMI] = ACTIONS(4462),
    [anon_sym_TILDE] = ACTIONS(4462),
    [anon_sym_AT] = ACTIONS(4462),
    [sym_bool] = ACTIONS(4460),
    [sym_byte] = ACTIONS(4460),
    [sym_ubyte] = ACTIONS(4460),
    [sym_char] = ACTIONS(4460),
    [sym_short] = ACTIONS(4460),
    [sym_ushort] = ACTIONS(4460),
    [sym_int] = ACTIONS(4460),
    [sym_uint] = ACTIONS(4460),
    [sym_long] = ACTIONS(4460),
    [sym_ulong] = ACTIONS(4460),
    [sym_cent] = ACTIONS(4460),
    [sym_ucent] = ACTIONS(4460),
    [sym_wchar] = ACTIONS(4460),
    [sym_dchar] = ACTIONS(4460),
    [sym_float] = ACTIONS(4460),
    [sym_double] = ACTIONS(4460),
    [sym_real] = ACTIONS(4460),
    [sym_ifloat] = ACTIONS(4460),
    [sym_idouble] = ACTIONS(4460),
    [sym_ireal] = ACTIONS(4460),
    [sym_cfloat] = ACTIONS(4460),
    [sym_cdouble] = ACTIONS(4460),
    [sym_creal] = ACTIONS(4460),
    [sym_size_t] = ACTIONS(4460),
    [sym_ptrdiff_t] = ACTIONS(4460),
    [sym_string] = ACTIONS(4460),
    [sym_cstring] = ACTIONS(4460),
    [sym_dstring] = ACTIONS(4460),
    [sym_wstring] = ACTIONS(4460),
    [sym_noreturn] = ACTIONS(4460),
    [sym_this] = ACTIONS(4460),
    [sym_abstract] = ACTIONS(4460),
    [sym_alias] = ACTIONS(4460),
    [sym_align] = ACTIONS(4460),
    [sym_auto] = ACTIONS(4460),
    [sym_catch] = ACTIONS(4460),
    [sym_class] = ACTIONS(4460),
    [sym_const] = ACTIONS(4460),
    [sym_debug] = ACTIONS(4460),
    [sym_deprecated] = ACTIONS(4460),
    [sym_else] = ACTIONS(4460),
    [sym_enum] = ACTIONS(4460),
    [sym_export] = ACTIONS(4460),
    [sym_extern] = ACTIONS(4460),
    [sym_final] = ACTIONS(4460),
    [sym_finally] = ACTIONS(4460),
    [sym_immutable] = ACTIONS(4460),
    [sym_import] = ACTIONS(4460),
    [sym_inout] = ACTIONS(4460),
    [sym_interface] = ACTIONS(4460),
    [sym_invariant] = ACTIONS(4460),
    [sym_mixin] = ACTIONS(4460),
    [sym_nothrow] = ACTIONS(4460),
    [sym_override] = ACTIONS(4460),
    [sym_package] = ACTIONS(4460),
    [sym_pragma] = ACTIONS(4460),
    [sym_private] = ACTIONS(4460),
    [sym_protected] = ACTIONS(4460),
    [sym_public] = ACTIONS(4460),
    [sym_pure] = ACTIONS(4460),
    [sym_ref] = ACTIONS(4460),
    [sym_return] = ACTIONS(4460),
    [sym_scope] = ACTIONS(4460),
    [sym_shared] = ACTIONS(4460),
    [sym_static] = ACTIONS(4460),
    [sym_struct] = ACTIONS(4460),
    [sym_synchronized] = ACTIONS(4460),
    [sym_template] = ACTIONS(4460),
    [sym_typeof] = ACTIONS(4460),
    [sym_union] = ACTIONS(4460),
    [sym_unittest] = ACTIONS(4460),
    [sym_version] = ACTIONS(4460),
    [sym_while] = ACTIONS(4460),
    [sym_gshared] = ACTIONS(4460),
    [sym_traits] = ACTIONS(4460),
    [sym_vector] = ACTIONS(4460),
    [sym_void] = ACTIONS(4460),
    [sym_directive] = ACTIONS(3),
  },
  [2561] = {
    [sym_identifier] = ACTIONS(4355),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4357),
    [anon_sym_SEMI] = ACTIONS(4357),
    [anon_sym_TILDE] = ACTIONS(4357),
    [anon_sym_AT] = ACTIONS(4357),
    [sym_bool] = ACTIONS(4355),
    [sym_byte] = ACTIONS(4355),
    [sym_ubyte] = ACTIONS(4355),
    [sym_char] = ACTIONS(4355),
    [sym_short] = ACTIONS(4355),
    [sym_ushort] = ACTIONS(4355),
    [sym_int] = ACTIONS(4355),
    [sym_uint] = ACTIONS(4355),
    [sym_long] = ACTIONS(4355),
    [sym_ulong] = ACTIONS(4355),
    [sym_cent] = ACTIONS(4355),
    [sym_ucent] = ACTIONS(4355),
    [sym_wchar] = ACTIONS(4355),
    [sym_dchar] = ACTIONS(4355),
    [sym_float] = ACTIONS(4355),
    [sym_double] = ACTIONS(4355),
    [sym_real] = ACTIONS(4355),
    [sym_ifloat] = ACTIONS(4355),
    [sym_idouble] = ACTIONS(4355),
    [sym_ireal] = ACTIONS(4355),
    [sym_cfloat] = ACTIONS(4355),
    [sym_cdouble] = ACTIONS(4355),
    [sym_creal] = ACTIONS(4355),
    [sym_size_t] = ACTIONS(4355),
    [sym_ptrdiff_t] = ACTIONS(4355),
    [sym_string] = ACTIONS(4355),
    [sym_cstring] = ACTIONS(4355),
    [sym_dstring] = ACTIONS(4355),
    [sym_wstring] = ACTIONS(4355),
    [sym_noreturn] = ACTIONS(4355),
    [sym_this] = ACTIONS(4355),
    [sym_abstract] = ACTIONS(4355),
    [sym_alias] = ACTIONS(4355),
    [sym_align] = ACTIONS(4355),
    [sym_auto] = ACTIONS(4355),
    [sym_catch] = ACTIONS(4355),
    [sym_class] = ACTIONS(4355),
    [sym_const] = ACTIONS(4355),
    [sym_debug] = ACTIONS(4355),
    [sym_deprecated] = ACTIONS(4355),
    [sym_else] = ACTIONS(4355),
    [sym_enum] = ACTIONS(4355),
    [sym_export] = ACTIONS(4355),
    [sym_extern] = ACTIONS(4355),
    [sym_final] = ACTIONS(4355),
    [sym_finally] = ACTIONS(4355),
    [sym_immutable] = ACTIONS(4355),
    [sym_import] = ACTIONS(4355),
    [sym_inout] = ACTIONS(4355),
    [sym_interface] = ACTIONS(4355),
    [sym_invariant] = ACTIONS(4355),
    [sym_mixin] = ACTIONS(4355),
    [sym_nothrow] = ACTIONS(4355),
    [sym_override] = ACTIONS(4355),
    [sym_package] = ACTIONS(4355),
    [sym_pragma] = ACTIONS(4355),
    [sym_private] = ACTIONS(4355),
    [sym_protected] = ACTIONS(4355),
    [sym_public] = ACTIONS(4355),
    [sym_pure] = ACTIONS(4355),
    [sym_ref] = ACTIONS(4355),
    [sym_return] = ACTIONS(4355),
    [sym_scope] = ACTIONS(4355),
    [sym_shared] = ACTIONS(4355),
    [sym_static] = ACTIONS(4355),
    [sym_struct] = ACTIONS(4355),
    [sym_synchronized] = ACTIONS(4355),
    [sym_template] = ACTIONS(4355),
    [sym_typeof] = ACTIONS(4355),
    [sym_union] = ACTIONS(4355),
    [sym_unittest] = ACTIONS(4355),
    [sym_version] = ACTIONS(4355),
    [sym_while] = ACTIONS(4355),
    [sym_gshared] = ACTIONS(4355),
    [sym_traits] = ACTIONS(4355),
    [sym_vector] = ACTIONS(4355),
    [sym_void] = ACTIONS(4355),
    [sym_directive] = ACTIONS(3),
  },
  [2562] = {
    [sym_identifier] = ACTIONS(4335),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4337),
    [anon_sym_SEMI] = ACTIONS(4337),
    [anon_sym_TILDE] = ACTIONS(4337),
    [anon_sym_AT] = ACTIONS(4337),
    [sym_bool] = ACTIONS(4335),
    [sym_byte] = ACTIONS(4335),
    [sym_ubyte] = ACTIONS(4335),
    [sym_char] = ACTIONS(4335),
    [sym_short] = ACTIONS(4335),
    [sym_ushort] = ACTIONS(4335),
    [sym_int] = ACTIONS(4335),
    [sym_uint] = ACTIONS(4335),
    [sym_long] = ACTIONS(4335),
    [sym_ulong] = ACTIONS(4335),
    [sym_cent] = ACTIONS(4335),
    [sym_ucent] = ACTIONS(4335),
    [sym_wchar] = ACTIONS(4335),
    [sym_dchar] = ACTIONS(4335),
    [sym_float] = ACTIONS(4335),
    [sym_double] = ACTIONS(4335),
    [sym_real] = ACTIONS(4335),
    [sym_ifloat] = ACTIONS(4335),
    [sym_idouble] = ACTIONS(4335),
    [sym_ireal] = ACTIONS(4335),
    [sym_cfloat] = ACTIONS(4335),
    [sym_cdouble] = ACTIONS(4335),
    [sym_creal] = ACTIONS(4335),
    [sym_size_t] = ACTIONS(4335),
    [sym_ptrdiff_t] = ACTIONS(4335),
    [sym_string] = ACTIONS(4335),
    [sym_cstring] = ACTIONS(4335),
    [sym_dstring] = ACTIONS(4335),
    [sym_wstring] = ACTIONS(4335),
    [sym_noreturn] = ACTIONS(4335),
    [sym_this] = ACTIONS(4335),
    [sym_abstract] = ACTIONS(4335),
    [sym_alias] = ACTIONS(4335),
    [sym_align] = ACTIONS(4335),
    [sym_auto] = ACTIONS(4335),
    [sym_catch] = ACTIONS(4335),
    [sym_class] = ACTIONS(4335),
    [sym_const] = ACTIONS(4335),
    [sym_debug] = ACTIONS(4335),
    [sym_deprecated] = ACTIONS(4335),
    [sym_else] = ACTIONS(4335),
    [sym_enum] = ACTIONS(4335),
    [sym_export] = ACTIONS(4335),
    [sym_extern] = ACTIONS(4335),
    [sym_final] = ACTIONS(4335),
    [sym_finally] = ACTIONS(4335),
    [sym_immutable] = ACTIONS(4335),
    [sym_import] = ACTIONS(4335),
    [sym_inout] = ACTIONS(4335),
    [sym_interface] = ACTIONS(4335),
    [sym_invariant] = ACTIONS(4335),
    [sym_mixin] = ACTIONS(4335),
    [sym_nothrow] = ACTIONS(4335),
    [sym_override] = ACTIONS(4335),
    [sym_package] = ACTIONS(4335),
    [sym_pragma] = ACTIONS(4335),
    [sym_private] = ACTIONS(4335),
    [sym_protected] = ACTIONS(4335),
    [sym_public] = ACTIONS(4335),
    [sym_pure] = ACTIONS(4335),
    [sym_ref] = ACTIONS(4335),
    [sym_return] = ACTIONS(4335),
    [sym_scope] = ACTIONS(4335),
    [sym_shared] = ACTIONS(4335),
    [sym_static] = ACTIONS(4335),
    [sym_struct] = ACTIONS(4335),
    [sym_synchronized] = ACTIONS(4335),
    [sym_template] = ACTIONS(4335),
    [sym_typeof] = ACTIONS(4335),
    [sym_union] = ACTIONS(4335),
    [sym_unittest] = ACTIONS(4335),
    [sym_version] = ACTIONS(4335),
    [sym_while] = ACTIONS(4335),
    [sym_gshared] = ACTIONS(4335),
    [sym_traits] = ACTIONS(4335),
    [sym_vector] = ACTIONS(4335),
    [sym_void] = ACTIONS(4335),
    [sym_directive] = ACTIONS(3),
  },
  [2563] = {
    [sym_identifier] = ACTIONS(4321),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4324),
    [anon_sym_SEMI] = ACTIONS(4324),
    [anon_sym_TILDE] = ACTIONS(4324),
    [anon_sym_AT] = ACTIONS(4324),
    [sym_bool] = ACTIONS(4321),
    [sym_byte] = ACTIONS(4321),
    [sym_ubyte] = ACTIONS(4321),
    [sym_char] = ACTIONS(4321),
    [sym_short] = ACTIONS(4321),
    [sym_ushort] = ACTIONS(4321),
    [sym_int] = ACTIONS(4321),
    [sym_uint] = ACTIONS(4321),
    [sym_long] = ACTIONS(4321),
    [sym_ulong] = ACTIONS(4321),
    [sym_cent] = ACTIONS(4321),
    [sym_ucent] = ACTIONS(4321),
    [sym_wchar] = ACTIONS(4321),
    [sym_dchar] = ACTIONS(4321),
    [sym_float] = ACTIONS(4321),
    [sym_double] = ACTIONS(4321),
    [sym_real] = ACTIONS(4321),
    [sym_ifloat] = ACTIONS(4321),
    [sym_idouble] = ACTIONS(4321),
    [sym_ireal] = ACTIONS(4321),
    [sym_cfloat] = ACTIONS(4321),
    [sym_cdouble] = ACTIONS(4321),
    [sym_creal] = ACTIONS(4321),
    [sym_size_t] = ACTIONS(4321),
    [sym_ptrdiff_t] = ACTIONS(4321),
    [sym_string] = ACTIONS(4321),
    [sym_cstring] = ACTIONS(4321),
    [sym_dstring] = ACTIONS(4321),
    [sym_wstring] = ACTIONS(4321),
    [sym_noreturn] = ACTIONS(4321),
    [sym_this] = ACTIONS(4321),
    [sym_abstract] = ACTIONS(4321),
    [sym_alias] = ACTIONS(4321),
    [sym_align] = ACTIONS(4321),
    [sym_auto] = ACTIONS(4321),
    [sym_catch] = ACTIONS(4321),
    [sym_class] = ACTIONS(4321),
    [sym_const] = ACTIONS(4321),
    [sym_debug] = ACTIONS(4321),
    [sym_deprecated] = ACTIONS(4321),
    [sym_else] = ACTIONS(4321),
    [sym_enum] = ACTIONS(4321),
    [sym_export] = ACTIONS(4321),
    [sym_extern] = ACTIONS(4321),
    [sym_final] = ACTIONS(4321),
    [sym_finally] = ACTIONS(4321),
    [sym_immutable] = ACTIONS(4321),
    [sym_import] = ACTIONS(4321),
    [sym_inout] = ACTIONS(4321),
    [sym_interface] = ACTIONS(4321),
    [sym_invariant] = ACTIONS(4321),
    [sym_mixin] = ACTIONS(4321),
    [sym_nothrow] = ACTIONS(4321),
    [sym_override] = ACTIONS(4321),
    [sym_package] = ACTIONS(4321),
    [sym_pragma] = ACTIONS(4321),
    [sym_private] = ACTIONS(4321),
    [sym_protected] = ACTIONS(4321),
    [sym_public] = ACTIONS(4321),
    [sym_pure] = ACTIONS(4321),
    [sym_ref] = ACTIONS(4321),
    [sym_return] = ACTIONS(4321),
    [sym_scope] = ACTIONS(4321),
    [sym_shared] = ACTIONS(4321),
    [sym_static] = ACTIONS(4321),
    [sym_struct] = ACTIONS(4321),
    [sym_synchronized] = ACTIONS(4321),
    [sym_template] = ACTIONS(4321),
    [sym_typeof] = ACTIONS(4321),
    [sym_union] = ACTIONS(4321),
    [sym_unittest] = ACTIONS(4321),
    [sym_version] = ACTIONS(4321),
    [sym_while] = ACTIONS(4321),
    [sym_gshared] = ACTIONS(4321),
    [sym_traits] = ACTIONS(4321),
    [sym_vector] = ACTIONS(4321),
    [sym_void] = ACTIONS(4321),
    [sym_directive] = ACTIONS(3),
  },
  [2564] = {
    [sym_identifier] = ACTIONS(4309),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4311),
    [anon_sym_SEMI] = ACTIONS(4311),
    [anon_sym_TILDE] = ACTIONS(4311),
    [anon_sym_AT] = ACTIONS(4311),
    [sym_bool] = ACTIONS(4309),
    [sym_byte] = ACTIONS(4309),
    [sym_ubyte] = ACTIONS(4309),
    [sym_char] = ACTIONS(4309),
    [sym_short] = ACTIONS(4309),
    [sym_ushort] = ACTIONS(4309),
    [sym_int] = ACTIONS(4309),
    [sym_uint] = ACTIONS(4309),
    [sym_long] = ACTIONS(4309),
    [sym_ulong] = ACTIONS(4309),
    [sym_cent] = ACTIONS(4309),
    [sym_ucent] = ACTIONS(4309),
    [sym_wchar] = ACTIONS(4309),
    [sym_dchar] = ACTIONS(4309),
    [sym_float] = ACTIONS(4309),
    [sym_double] = ACTIONS(4309),
    [sym_real] = ACTIONS(4309),
    [sym_ifloat] = ACTIONS(4309),
    [sym_idouble] = ACTIONS(4309),
    [sym_ireal] = ACTIONS(4309),
    [sym_cfloat] = ACTIONS(4309),
    [sym_cdouble] = ACTIONS(4309),
    [sym_creal] = ACTIONS(4309),
    [sym_size_t] = ACTIONS(4309),
    [sym_ptrdiff_t] = ACTIONS(4309),
    [sym_string] = ACTIONS(4309),
    [sym_cstring] = ACTIONS(4309),
    [sym_dstring] = ACTIONS(4309),
    [sym_wstring] = ACTIONS(4309),
    [sym_noreturn] = ACTIONS(4309),
    [sym_this] = ACTIONS(4309),
    [sym_abstract] = ACTIONS(4309),
    [sym_alias] = ACTIONS(4309),
    [sym_align] = ACTIONS(4309),
    [sym_auto] = ACTIONS(4309),
    [sym_catch] = ACTIONS(4309),
    [sym_class] = ACTIONS(4309),
    [sym_const] = ACTIONS(4309),
    [sym_debug] = ACTIONS(4309),
    [sym_deprecated] = ACTIONS(4309),
    [sym_else] = ACTIONS(4309),
    [sym_enum] = ACTIONS(4309),
    [sym_export] = ACTIONS(4309),
    [sym_extern] = ACTIONS(4309),
    [sym_final] = ACTIONS(4309),
    [sym_finally] = ACTIONS(4309),
    [sym_immutable] = ACTIONS(4309),
    [sym_import] = ACTIONS(4309),
    [sym_inout] = ACTIONS(4309),
    [sym_interface] = ACTIONS(4309),
    [sym_invariant] = ACTIONS(4309),
    [sym_mixin] = ACTIONS(4309),
    [sym_nothrow] = ACTIONS(4309),
    [sym_override] = ACTIONS(4309),
    [sym_package] = ACTIONS(4309),
    [sym_pragma] = ACTIONS(4309),
    [sym_private] = ACTIONS(4309),
    [sym_protected] = ACTIONS(4309),
    [sym_public] = ACTIONS(4309),
    [sym_pure] = ACTIONS(4309),
    [sym_ref] = ACTIONS(4309),
    [sym_return] = ACTIONS(4309),
    [sym_scope] = ACTIONS(4309),
    [sym_shared] = ACTIONS(4309),
    [sym_static] = ACTIONS(4309),
    [sym_struct] = ACTIONS(4309),
    [sym_synchronized] = ACTIONS(4309),
    [sym_template] = ACTIONS(4309),
    [sym_typeof] = ACTIONS(4309),
    [sym_union] = ACTIONS(4309),
    [sym_unittest] = ACTIONS(4309),
    [sym_version] = ACTIONS(4309),
    [sym_while] = ACTIONS(4309),
    [sym_gshared] = ACTIONS(4309),
    [sym_traits] = ACTIONS(4309),
    [sym_vector] = ACTIONS(4309),
    [sym_void] = ACTIONS(4309),
    [sym_directive] = ACTIONS(3),
  },
  [2565] = {
    [sym_identifier] = ACTIONS(4305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4307),
    [anon_sym_SEMI] = ACTIONS(4307),
    [anon_sym_TILDE] = ACTIONS(4307),
    [anon_sym_AT] = ACTIONS(4307),
    [sym_bool] = ACTIONS(4305),
    [sym_byte] = ACTIONS(4305),
    [sym_ubyte] = ACTIONS(4305),
    [sym_char] = ACTIONS(4305),
    [sym_short] = ACTIONS(4305),
    [sym_ushort] = ACTIONS(4305),
    [sym_int] = ACTIONS(4305),
    [sym_uint] = ACTIONS(4305),
    [sym_long] = ACTIONS(4305),
    [sym_ulong] = ACTIONS(4305),
    [sym_cent] = ACTIONS(4305),
    [sym_ucent] = ACTIONS(4305),
    [sym_wchar] = ACTIONS(4305),
    [sym_dchar] = ACTIONS(4305),
    [sym_float] = ACTIONS(4305),
    [sym_double] = ACTIONS(4305),
    [sym_real] = ACTIONS(4305),
    [sym_ifloat] = ACTIONS(4305),
    [sym_idouble] = ACTIONS(4305),
    [sym_ireal] = ACTIONS(4305),
    [sym_cfloat] = ACTIONS(4305),
    [sym_cdouble] = ACTIONS(4305),
    [sym_creal] = ACTIONS(4305),
    [sym_size_t] = ACTIONS(4305),
    [sym_ptrdiff_t] = ACTIONS(4305),
    [sym_string] = ACTIONS(4305),
    [sym_cstring] = ACTIONS(4305),
    [sym_dstring] = ACTIONS(4305),
    [sym_wstring] = ACTIONS(4305),
    [sym_noreturn] = ACTIONS(4305),
    [sym_this] = ACTIONS(4305),
    [sym_abstract] = ACTIONS(4305),
    [sym_alias] = ACTIONS(4305),
    [sym_align] = ACTIONS(4305),
    [sym_auto] = ACTIONS(4305),
    [sym_catch] = ACTIONS(4305),
    [sym_class] = ACTIONS(4305),
    [sym_const] = ACTIONS(4305),
    [sym_debug] = ACTIONS(4305),
    [sym_deprecated] = ACTIONS(4305),
    [sym_else] = ACTIONS(4305),
    [sym_enum] = ACTIONS(4305),
    [sym_export] = ACTIONS(4305),
    [sym_extern] = ACTIONS(4305),
    [sym_final] = ACTIONS(4305),
    [sym_finally] = ACTIONS(4305),
    [sym_immutable] = ACTIONS(4305),
    [sym_import] = ACTIONS(4305),
    [sym_inout] = ACTIONS(4305),
    [sym_interface] = ACTIONS(4305),
    [sym_invariant] = ACTIONS(4305),
    [sym_mixin] = ACTIONS(4305),
    [sym_nothrow] = ACTIONS(4305),
    [sym_override] = ACTIONS(4305),
    [sym_package] = ACTIONS(4305),
    [sym_pragma] = ACTIONS(4305),
    [sym_private] = ACTIONS(4305),
    [sym_protected] = ACTIONS(4305),
    [sym_public] = ACTIONS(4305),
    [sym_pure] = ACTIONS(4305),
    [sym_ref] = ACTIONS(4305),
    [sym_return] = ACTIONS(4305),
    [sym_scope] = ACTIONS(4305),
    [sym_shared] = ACTIONS(4305),
    [sym_static] = ACTIONS(4305),
    [sym_struct] = ACTIONS(4305),
    [sym_synchronized] = ACTIONS(4305),
    [sym_template] = ACTIONS(4305),
    [sym_typeof] = ACTIONS(4305),
    [sym_union] = ACTIONS(4305),
    [sym_unittest] = ACTIONS(4305),
    [sym_version] = ACTIONS(4305),
    [sym_while] = ACTIONS(4305),
    [sym_gshared] = ACTIONS(4305),
    [sym_traits] = ACTIONS(4305),
    [sym_vector] = ACTIONS(4305),
    [sym_void] = ACTIONS(4305),
    [sym_directive] = ACTIONS(3),
  },
  [2566] = {
    [ts_builtin_sym_end] = ACTIONS(4638),
    [sym_identifier] = ACTIONS(4636),
    [sym_end_file] = ACTIONS(4636),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4638),
    [anon_sym_SEMI] = ACTIONS(4638),
    [anon_sym_TILDE] = ACTIONS(4638),
    [anon_sym_AT] = ACTIONS(4638),
    [sym_bool] = ACTIONS(4636),
    [sym_byte] = ACTIONS(4636),
    [sym_ubyte] = ACTIONS(4636),
    [sym_char] = ACTIONS(4636),
    [sym_short] = ACTIONS(4636),
    [sym_ushort] = ACTIONS(4636),
    [sym_int] = ACTIONS(4636),
    [sym_uint] = ACTIONS(4636),
    [sym_long] = ACTIONS(4636),
    [sym_ulong] = ACTIONS(4636),
    [sym_cent] = ACTIONS(4636),
    [sym_ucent] = ACTIONS(4636),
    [sym_wchar] = ACTIONS(4636),
    [sym_dchar] = ACTIONS(4636),
    [sym_float] = ACTIONS(4636),
    [sym_double] = ACTIONS(4636),
    [sym_real] = ACTIONS(4636),
    [sym_ifloat] = ACTIONS(4636),
    [sym_idouble] = ACTIONS(4636),
    [sym_ireal] = ACTIONS(4636),
    [sym_cfloat] = ACTIONS(4636),
    [sym_cdouble] = ACTIONS(4636),
    [sym_creal] = ACTIONS(4636),
    [sym_size_t] = ACTIONS(4636),
    [sym_ptrdiff_t] = ACTIONS(4636),
    [sym_string] = ACTIONS(4636),
    [sym_cstring] = ACTIONS(4636),
    [sym_dstring] = ACTIONS(4636),
    [sym_wstring] = ACTIONS(4636),
    [sym_noreturn] = ACTIONS(4636),
    [sym_this] = ACTIONS(4636),
    [sym_abstract] = ACTIONS(4636),
    [sym_alias] = ACTIONS(4636),
    [sym_align] = ACTIONS(4636),
    [sym_auto] = ACTIONS(4636),
    [sym_class] = ACTIONS(4636),
    [sym_const] = ACTIONS(4636),
    [sym_debug] = ACTIONS(4636),
    [sym_deprecated] = ACTIONS(4636),
    [sym_else] = ACTIONS(4636),
    [sym_enum] = ACTIONS(4636),
    [sym_export] = ACTIONS(4636),
    [sym_extern] = ACTIONS(4636),
    [sym_final] = ACTIONS(4636),
    [sym_immutable] = ACTIONS(4636),
    [sym_import] = ACTIONS(4636),
    [sym_inout] = ACTIONS(4636),
    [sym_interface] = ACTIONS(4636),
    [sym_invariant] = ACTIONS(4636),
    [sym_mixin] = ACTIONS(4636),
    [sym_nothrow] = ACTIONS(4636),
    [sym_override] = ACTIONS(4636),
    [sym_package] = ACTIONS(4636),
    [sym_pragma] = ACTIONS(4636),
    [sym_private] = ACTIONS(4636),
    [sym_protected] = ACTIONS(4636),
    [sym_public] = ACTIONS(4636),
    [sym_pure] = ACTIONS(4636),
    [sym_ref] = ACTIONS(4636),
    [sym_return] = ACTIONS(4636),
    [sym_scope] = ACTIONS(4636),
    [sym_shared] = ACTIONS(4636),
    [sym_static] = ACTIONS(4636),
    [sym_struct] = ACTIONS(4636),
    [sym_synchronized] = ACTIONS(4636),
    [sym_template] = ACTIONS(4636),
    [sym_typeof] = ACTIONS(4636),
    [sym_union] = ACTIONS(4636),
    [sym_unittest] = ACTIONS(4636),
    [sym_version] = ACTIONS(4636),
    [sym_while] = ACTIONS(4636),
    [sym_gshared] = ACTIONS(4636),
    [sym_traits] = ACTIONS(4636),
    [sym_vector] = ACTIONS(4636),
    [sym_void] = ACTIONS(4636),
    [sym_directive] = ACTIONS(3),
  },
  [2567] = {
    [sym_identifier] = ACTIONS(4856),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4858),
    [anon_sym_SEMI] = ACTIONS(4858),
    [anon_sym_TILDE] = ACTIONS(4858),
    [anon_sym_AT] = ACTIONS(4858),
    [sym_bool] = ACTIONS(4856),
    [sym_byte] = ACTIONS(4856),
    [sym_ubyte] = ACTIONS(4856),
    [sym_char] = ACTIONS(4856),
    [sym_short] = ACTIONS(4856),
    [sym_ushort] = ACTIONS(4856),
    [sym_int] = ACTIONS(4856),
    [sym_uint] = ACTIONS(4856),
    [sym_long] = ACTIONS(4856),
    [sym_ulong] = ACTIONS(4856),
    [sym_cent] = ACTIONS(4856),
    [sym_ucent] = ACTIONS(4856),
    [sym_wchar] = ACTIONS(4856),
    [sym_dchar] = ACTIONS(4856),
    [sym_float] = ACTIONS(4856),
    [sym_double] = ACTIONS(4856),
    [sym_real] = ACTIONS(4856),
    [sym_ifloat] = ACTIONS(4856),
    [sym_idouble] = ACTIONS(4856),
    [sym_ireal] = ACTIONS(4856),
    [sym_cfloat] = ACTIONS(4856),
    [sym_cdouble] = ACTIONS(4856),
    [sym_creal] = ACTIONS(4856),
    [sym_size_t] = ACTIONS(4856),
    [sym_ptrdiff_t] = ACTIONS(4856),
    [sym_string] = ACTIONS(4856),
    [sym_cstring] = ACTIONS(4856),
    [sym_dstring] = ACTIONS(4856),
    [sym_wstring] = ACTIONS(4856),
    [sym_noreturn] = ACTIONS(4856),
    [sym_this] = ACTIONS(4856),
    [sym_abstract] = ACTIONS(4856),
    [sym_alias] = ACTIONS(4856),
    [sym_align] = ACTIONS(4856),
    [sym_auto] = ACTIONS(4856),
    [sym_catch] = ACTIONS(4856),
    [sym_class] = ACTIONS(4856),
    [sym_const] = ACTIONS(4856),
    [sym_debug] = ACTIONS(4856),
    [sym_deprecated] = ACTIONS(4856),
    [sym_else] = ACTIONS(4856),
    [sym_enum] = ACTIONS(4856),
    [sym_export] = ACTIONS(4856),
    [sym_extern] = ACTIONS(4856),
    [sym_final] = ACTIONS(4856),
    [sym_finally] = ACTIONS(4856),
    [sym_immutable] = ACTIONS(4856),
    [sym_import] = ACTIONS(4856),
    [sym_inout] = ACTIONS(4856),
    [sym_interface] = ACTIONS(4856),
    [sym_invariant] = ACTIONS(4856),
    [sym_mixin] = ACTIONS(4856),
    [sym_nothrow] = ACTIONS(4856),
    [sym_override] = ACTIONS(4856),
    [sym_package] = ACTIONS(4856),
    [sym_pragma] = ACTIONS(4856),
    [sym_private] = ACTIONS(4856),
    [sym_protected] = ACTIONS(4856),
    [sym_public] = ACTIONS(4856),
    [sym_pure] = ACTIONS(4856),
    [sym_ref] = ACTIONS(4856),
    [sym_return] = ACTIONS(4856),
    [sym_scope] = ACTIONS(4856),
    [sym_shared] = ACTIONS(4856),
    [sym_static] = ACTIONS(4856),
    [sym_struct] = ACTIONS(4856),
    [sym_synchronized] = ACTIONS(4856),
    [sym_template] = ACTIONS(4856),
    [sym_typeof] = ACTIONS(4856),
    [sym_union] = ACTIONS(4856),
    [sym_unittest] = ACTIONS(4856),
    [sym_version] = ACTIONS(4856),
    [sym_while] = ACTIONS(4856),
    [sym_gshared] = ACTIONS(4856),
    [sym_traits] = ACTIONS(4856),
    [sym_vector] = ACTIONS(4856),
    [sym_void] = ACTIONS(4856),
    [sym_directive] = ACTIONS(3),
  },
  [2568] = {
    [sym_identifier] = ACTIONS(4876),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4878),
    [anon_sym_SEMI] = ACTIONS(4878),
    [anon_sym_TILDE] = ACTIONS(4878),
    [anon_sym_AT] = ACTIONS(4878),
    [sym_bool] = ACTIONS(4876),
    [sym_byte] = ACTIONS(4876),
    [sym_ubyte] = ACTIONS(4876),
    [sym_char] = ACTIONS(4876),
    [sym_short] = ACTIONS(4876),
    [sym_ushort] = ACTIONS(4876),
    [sym_int] = ACTIONS(4876),
    [sym_uint] = ACTIONS(4876),
    [sym_long] = ACTIONS(4876),
    [sym_ulong] = ACTIONS(4876),
    [sym_cent] = ACTIONS(4876),
    [sym_ucent] = ACTIONS(4876),
    [sym_wchar] = ACTIONS(4876),
    [sym_dchar] = ACTIONS(4876),
    [sym_float] = ACTIONS(4876),
    [sym_double] = ACTIONS(4876),
    [sym_real] = ACTIONS(4876),
    [sym_ifloat] = ACTIONS(4876),
    [sym_idouble] = ACTIONS(4876),
    [sym_ireal] = ACTIONS(4876),
    [sym_cfloat] = ACTIONS(4876),
    [sym_cdouble] = ACTIONS(4876),
    [sym_creal] = ACTIONS(4876),
    [sym_size_t] = ACTIONS(4876),
    [sym_ptrdiff_t] = ACTIONS(4876),
    [sym_string] = ACTIONS(4876),
    [sym_cstring] = ACTIONS(4876),
    [sym_dstring] = ACTIONS(4876),
    [sym_wstring] = ACTIONS(4876),
    [sym_noreturn] = ACTIONS(4876),
    [sym_this] = ACTIONS(4876),
    [sym_abstract] = ACTIONS(4876),
    [sym_alias] = ACTIONS(4876),
    [sym_align] = ACTIONS(4876),
    [sym_auto] = ACTIONS(4876),
    [sym_catch] = ACTIONS(4876),
    [sym_class] = ACTIONS(4876),
    [sym_const] = ACTIONS(4876),
    [sym_debug] = ACTIONS(4876),
    [sym_deprecated] = ACTIONS(4876),
    [sym_else] = ACTIONS(4876),
    [sym_enum] = ACTIONS(4876),
    [sym_export] = ACTIONS(4876),
    [sym_extern] = ACTIONS(4876),
    [sym_final] = ACTIONS(4876),
    [sym_finally] = ACTIONS(4876),
    [sym_immutable] = ACTIONS(4876),
    [sym_import] = ACTIONS(4876),
    [sym_inout] = ACTIONS(4876),
    [sym_interface] = ACTIONS(4876),
    [sym_invariant] = ACTIONS(4876),
    [sym_mixin] = ACTIONS(4876),
    [sym_nothrow] = ACTIONS(4876),
    [sym_override] = ACTIONS(4876),
    [sym_package] = ACTIONS(4876),
    [sym_pragma] = ACTIONS(4876),
    [sym_private] = ACTIONS(4876),
    [sym_protected] = ACTIONS(4876),
    [sym_public] = ACTIONS(4876),
    [sym_pure] = ACTIONS(4876),
    [sym_ref] = ACTIONS(4876),
    [sym_return] = ACTIONS(4876),
    [sym_scope] = ACTIONS(4876),
    [sym_shared] = ACTIONS(4876),
    [sym_static] = ACTIONS(4876),
    [sym_struct] = ACTIONS(4876),
    [sym_synchronized] = ACTIONS(4876),
    [sym_template] = ACTIONS(4876),
    [sym_typeof] = ACTIONS(4876),
    [sym_union] = ACTIONS(4876),
    [sym_unittest] = ACTIONS(4876),
    [sym_version] = ACTIONS(4876),
    [sym_while] = ACTIONS(4876),
    [sym_gshared] = ACTIONS(4876),
    [sym_traits] = ACTIONS(4876),
    [sym_vector] = ACTIONS(4876),
    [sym_void] = ACTIONS(4876),
    [sym_directive] = ACTIONS(3),
  },
  [2569] = {
    [sym_identifier] = ACTIONS(4932),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4934),
    [anon_sym_SEMI] = ACTIONS(4934),
    [anon_sym_TILDE] = ACTIONS(4934),
    [anon_sym_AT] = ACTIONS(4934),
    [sym_bool] = ACTIONS(4932),
    [sym_byte] = ACTIONS(4932),
    [sym_ubyte] = ACTIONS(4932),
    [sym_char] = ACTIONS(4932),
    [sym_short] = ACTIONS(4932),
    [sym_ushort] = ACTIONS(4932),
    [sym_int] = ACTIONS(4932),
    [sym_uint] = ACTIONS(4932),
    [sym_long] = ACTIONS(4932),
    [sym_ulong] = ACTIONS(4932),
    [sym_cent] = ACTIONS(4932),
    [sym_ucent] = ACTIONS(4932),
    [sym_wchar] = ACTIONS(4932),
    [sym_dchar] = ACTIONS(4932),
    [sym_float] = ACTIONS(4932),
    [sym_double] = ACTIONS(4932),
    [sym_real] = ACTIONS(4932),
    [sym_ifloat] = ACTIONS(4932),
    [sym_idouble] = ACTIONS(4932),
    [sym_ireal] = ACTIONS(4932),
    [sym_cfloat] = ACTIONS(4932),
    [sym_cdouble] = ACTIONS(4932),
    [sym_creal] = ACTIONS(4932),
    [sym_size_t] = ACTIONS(4932),
    [sym_ptrdiff_t] = ACTIONS(4932),
    [sym_string] = ACTIONS(4932),
    [sym_cstring] = ACTIONS(4932),
    [sym_dstring] = ACTIONS(4932),
    [sym_wstring] = ACTIONS(4932),
    [sym_noreturn] = ACTIONS(4932),
    [sym_this] = ACTIONS(4932),
    [sym_abstract] = ACTIONS(4932),
    [sym_alias] = ACTIONS(4932),
    [sym_align] = ACTIONS(4932),
    [sym_auto] = ACTIONS(4932),
    [sym_catch] = ACTIONS(4932),
    [sym_class] = ACTIONS(4932),
    [sym_const] = ACTIONS(4932),
    [sym_debug] = ACTIONS(4932),
    [sym_deprecated] = ACTIONS(4932),
    [sym_else] = ACTIONS(4932),
    [sym_enum] = ACTIONS(4932),
    [sym_export] = ACTIONS(4932),
    [sym_extern] = ACTIONS(4932),
    [sym_final] = ACTIONS(4932),
    [sym_finally] = ACTIONS(4932),
    [sym_immutable] = ACTIONS(4932),
    [sym_import] = ACTIONS(4932),
    [sym_inout] = ACTIONS(4932),
    [sym_interface] = ACTIONS(4932),
    [sym_invariant] = ACTIONS(4932),
    [sym_mixin] = ACTIONS(4932),
    [sym_nothrow] = ACTIONS(4932),
    [sym_override] = ACTIONS(4932),
    [sym_package] = ACTIONS(4932),
    [sym_pragma] = ACTIONS(4932),
    [sym_private] = ACTIONS(4932),
    [sym_protected] = ACTIONS(4932),
    [sym_public] = ACTIONS(4932),
    [sym_pure] = ACTIONS(4932),
    [sym_ref] = ACTIONS(4932),
    [sym_return] = ACTIONS(4932),
    [sym_scope] = ACTIONS(4932),
    [sym_shared] = ACTIONS(4932),
    [sym_static] = ACTIONS(4932),
    [sym_struct] = ACTIONS(4932),
    [sym_synchronized] = ACTIONS(4932),
    [sym_template] = ACTIONS(4932),
    [sym_typeof] = ACTIONS(4932),
    [sym_union] = ACTIONS(4932),
    [sym_unittest] = ACTIONS(4932),
    [sym_version] = ACTIONS(4932),
    [sym_while] = ACTIONS(4932),
    [sym_gshared] = ACTIONS(4932),
    [sym_traits] = ACTIONS(4932),
    [sym_vector] = ACTIONS(4932),
    [sym_void] = ACTIONS(4932),
    [sym_directive] = ACTIONS(3),
  },
  [2570] = {
    [ts_builtin_sym_end] = ACTIONS(4688),
    [sym_identifier] = ACTIONS(4686),
    [sym_end_file] = ACTIONS(4686),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4688),
    [anon_sym_SEMI] = ACTIONS(4688),
    [anon_sym_TILDE] = ACTIONS(4688),
    [anon_sym_AT] = ACTIONS(4688),
    [sym_bool] = ACTIONS(4686),
    [sym_byte] = ACTIONS(4686),
    [sym_ubyte] = ACTIONS(4686),
    [sym_char] = ACTIONS(4686),
    [sym_short] = ACTIONS(4686),
    [sym_ushort] = ACTIONS(4686),
    [sym_int] = ACTIONS(4686),
    [sym_uint] = ACTIONS(4686),
    [sym_long] = ACTIONS(4686),
    [sym_ulong] = ACTIONS(4686),
    [sym_cent] = ACTIONS(4686),
    [sym_ucent] = ACTIONS(4686),
    [sym_wchar] = ACTIONS(4686),
    [sym_dchar] = ACTIONS(4686),
    [sym_float] = ACTIONS(4686),
    [sym_double] = ACTIONS(4686),
    [sym_real] = ACTIONS(4686),
    [sym_ifloat] = ACTIONS(4686),
    [sym_idouble] = ACTIONS(4686),
    [sym_ireal] = ACTIONS(4686),
    [sym_cfloat] = ACTIONS(4686),
    [sym_cdouble] = ACTIONS(4686),
    [sym_creal] = ACTIONS(4686),
    [sym_size_t] = ACTIONS(4686),
    [sym_ptrdiff_t] = ACTIONS(4686),
    [sym_string] = ACTIONS(4686),
    [sym_cstring] = ACTIONS(4686),
    [sym_dstring] = ACTIONS(4686),
    [sym_wstring] = ACTIONS(4686),
    [sym_noreturn] = ACTIONS(4686),
    [sym_this] = ACTIONS(4686),
    [sym_abstract] = ACTIONS(4686),
    [sym_alias] = ACTIONS(4686),
    [sym_align] = ACTIONS(4686),
    [sym_auto] = ACTIONS(4686),
    [sym_class] = ACTIONS(4686),
    [sym_const] = ACTIONS(4686),
    [sym_debug] = ACTIONS(4686),
    [sym_deprecated] = ACTIONS(4686),
    [sym_else] = ACTIONS(4686),
    [sym_enum] = ACTIONS(4686),
    [sym_export] = ACTIONS(4686),
    [sym_extern] = ACTIONS(4686),
    [sym_final] = ACTIONS(4686),
    [sym_immutable] = ACTIONS(4686),
    [sym_import] = ACTIONS(4686),
    [sym_inout] = ACTIONS(4686),
    [sym_interface] = ACTIONS(4686),
    [sym_invariant] = ACTIONS(4686),
    [sym_mixin] = ACTIONS(4686),
    [sym_nothrow] = ACTIONS(4686),
    [sym_override] = ACTIONS(4686),
    [sym_package] = ACTIONS(4686),
    [sym_pragma] = ACTIONS(4686),
    [sym_private] = ACTIONS(4686),
    [sym_protected] = ACTIONS(4686),
    [sym_public] = ACTIONS(4686),
    [sym_pure] = ACTIONS(4686),
    [sym_ref] = ACTIONS(4686),
    [sym_return] = ACTIONS(4686),
    [sym_scope] = ACTIONS(4686),
    [sym_shared] = ACTIONS(4686),
    [sym_static] = ACTIONS(4686),
    [sym_struct] = ACTIONS(4686),
    [sym_synchronized] = ACTIONS(4686),
    [sym_template] = ACTIONS(4686),
    [sym_typeof] = ACTIONS(4686),
    [sym_union] = ACTIONS(4686),
    [sym_unittest] = ACTIONS(4686),
    [sym_version] = ACTIONS(4686),
    [sym_while] = ACTIONS(4686),
    [sym_gshared] = ACTIONS(4686),
    [sym_traits] = ACTIONS(4686),
    [sym_vector] = ACTIONS(4686),
    [sym_void] = ACTIONS(4686),
    [sym_directive] = ACTIONS(3),
  },
  [2571] = {
    [sym_identifier] = ACTIONS(4468),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4470),
    [anon_sym_SEMI] = ACTIONS(4470),
    [anon_sym_TILDE] = ACTIONS(4470),
    [anon_sym_AT] = ACTIONS(4470),
    [sym_bool] = ACTIONS(4468),
    [sym_byte] = ACTIONS(4468),
    [sym_ubyte] = ACTIONS(4468),
    [sym_char] = ACTIONS(4468),
    [sym_short] = ACTIONS(4468),
    [sym_ushort] = ACTIONS(4468),
    [sym_int] = ACTIONS(4468),
    [sym_uint] = ACTIONS(4468),
    [sym_long] = ACTIONS(4468),
    [sym_ulong] = ACTIONS(4468),
    [sym_cent] = ACTIONS(4468),
    [sym_ucent] = ACTIONS(4468),
    [sym_wchar] = ACTIONS(4468),
    [sym_dchar] = ACTIONS(4468),
    [sym_float] = ACTIONS(4468),
    [sym_double] = ACTIONS(4468),
    [sym_real] = ACTIONS(4468),
    [sym_ifloat] = ACTIONS(4468),
    [sym_idouble] = ACTIONS(4468),
    [sym_ireal] = ACTIONS(4468),
    [sym_cfloat] = ACTIONS(4468),
    [sym_cdouble] = ACTIONS(4468),
    [sym_creal] = ACTIONS(4468),
    [sym_size_t] = ACTIONS(4468),
    [sym_ptrdiff_t] = ACTIONS(4468),
    [sym_string] = ACTIONS(4468),
    [sym_cstring] = ACTIONS(4468),
    [sym_dstring] = ACTIONS(4468),
    [sym_wstring] = ACTIONS(4468),
    [sym_noreturn] = ACTIONS(4468),
    [sym_this] = ACTIONS(4468),
    [sym_abstract] = ACTIONS(4468),
    [sym_alias] = ACTIONS(4468),
    [sym_align] = ACTIONS(4468),
    [sym_auto] = ACTIONS(4468),
    [sym_catch] = ACTIONS(4468),
    [sym_class] = ACTIONS(4468),
    [sym_const] = ACTIONS(4468),
    [sym_debug] = ACTIONS(4468),
    [sym_deprecated] = ACTIONS(4468),
    [sym_else] = ACTIONS(4468),
    [sym_enum] = ACTIONS(4468),
    [sym_export] = ACTIONS(4468),
    [sym_extern] = ACTIONS(4468),
    [sym_final] = ACTIONS(4468),
    [sym_finally] = ACTIONS(4468),
    [sym_immutable] = ACTIONS(4468),
    [sym_import] = ACTIONS(4468),
    [sym_inout] = ACTIONS(4468),
    [sym_interface] = ACTIONS(4468),
    [sym_invariant] = ACTIONS(4468),
    [sym_mixin] = ACTIONS(4468),
    [sym_nothrow] = ACTIONS(4468),
    [sym_override] = ACTIONS(4468),
    [sym_package] = ACTIONS(4468),
    [sym_pragma] = ACTIONS(4468),
    [sym_private] = ACTIONS(4468),
    [sym_protected] = ACTIONS(4468),
    [sym_public] = ACTIONS(4468),
    [sym_pure] = ACTIONS(4468),
    [sym_ref] = ACTIONS(4468),
    [sym_return] = ACTIONS(4468),
    [sym_scope] = ACTIONS(4468),
    [sym_shared] = ACTIONS(4468),
    [sym_static] = ACTIONS(4468),
    [sym_struct] = ACTIONS(4468),
    [sym_synchronized] = ACTIONS(4468),
    [sym_template] = ACTIONS(4468),
    [sym_typeof] = ACTIONS(4468),
    [sym_union] = ACTIONS(4468),
    [sym_unittest] = ACTIONS(4468),
    [sym_version] = ACTIONS(4468),
    [sym_while] = ACTIONS(4468),
    [sym_gshared] = ACTIONS(4468),
    [sym_traits] = ACTIONS(4468),
    [sym_vector] = ACTIONS(4468),
    [sym_void] = ACTIONS(4468),
    [sym_directive] = ACTIONS(3),
  },
  [2572] = {
    [sym_identifier] = ACTIONS(4936),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4938),
    [anon_sym_SEMI] = ACTIONS(4938),
    [anon_sym_TILDE] = ACTIONS(4938),
    [anon_sym_AT] = ACTIONS(4938),
    [sym_bool] = ACTIONS(4936),
    [sym_byte] = ACTIONS(4936),
    [sym_ubyte] = ACTIONS(4936),
    [sym_char] = ACTIONS(4936),
    [sym_short] = ACTIONS(4936),
    [sym_ushort] = ACTIONS(4936),
    [sym_int] = ACTIONS(4936),
    [sym_uint] = ACTIONS(4936),
    [sym_long] = ACTIONS(4936),
    [sym_ulong] = ACTIONS(4936),
    [sym_cent] = ACTIONS(4936),
    [sym_ucent] = ACTIONS(4936),
    [sym_wchar] = ACTIONS(4936),
    [sym_dchar] = ACTIONS(4936),
    [sym_float] = ACTIONS(4936),
    [sym_double] = ACTIONS(4936),
    [sym_real] = ACTIONS(4936),
    [sym_ifloat] = ACTIONS(4936),
    [sym_idouble] = ACTIONS(4936),
    [sym_ireal] = ACTIONS(4936),
    [sym_cfloat] = ACTIONS(4936),
    [sym_cdouble] = ACTIONS(4936),
    [sym_creal] = ACTIONS(4936),
    [sym_size_t] = ACTIONS(4936),
    [sym_ptrdiff_t] = ACTIONS(4936),
    [sym_string] = ACTIONS(4936),
    [sym_cstring] = ACTIONS(4936),
    [sym_dstring] = ACTIONS(4936),
    [sym_wstring] = ACTIONS(4936),
    [sym_noreturn] = ACTIONS(4936),
    [sym_this] = ACTIONS(4936),
    [sym_abstract] = ACTIONS(4936),
    [sym_alias] = ACTIONS(4936),
    [sym_align] = ACTIONS(4936),
    [sym_auto] = ACTIONS(4936),
    [sym_catch] = ACTIONS(4936),
    [sym_class] = ACTIONS(4936),
    [sym_const] = ACTIONS(4936),
    [sym_debug] = ACTIONS(4936),
    [sym_deprecated] = ACTIONS(4936),
    [sym_else] = ACTIONS(4936),
    [sym_enum] = ACTIONS(4936),
    [sym_export] = ACTIONS(4936),
    [sym_extern] = ACTIONS(4936),
    [sym_final] = ACTIONS(4936),
    [sym_finally] = ACTIONS(4936),
    [sym_immutable] = ACTIONS(4936),
    [sym_import] = ACTIONS(4936),
    [sym_inout] = ACTIONS(4936),
    [sym_interface] = ACTIONS(4936),
    [sym_invariant] = ACTIONS(4936),
    [sym_mixin] = ACTIONS(4936),
    [sym_nothrow] = ACTIONS(4936),
    [sym_override] = ACTIONS(4936),
    [sym_package] = ACTIONS(4936),
    [sym_pragma] = ACTIONS(4936),
    [sym_private] = ACTIONS(4936),
    [sym_protected] = ACTIONS(4936),
    [sym_public] = ACTIONS(4936),
    [sym_pure] = ACTIONS(4936),
    [sym_ref] = ACTIONS(4936),
    [sym_return] = ACTIONS(4936),
    [sym_scope] = ACTIONS(4936),
    [sym_shared] = ACTIONS(4936),
    [sym_static] = ACTIONS(4936),
    [sym_struct] = ACTIONS(4936),
    [sym_synchronized] = ACTIONS(4936),
    [sym_template] = ACTIONS(4936),
    [sym_typeof] = ACTIONS(4936),
    [sym_union] = ACTIONS(4936),
    [sym_unittest] = ACTIONS(4936),
    [sym_version] = ACTIONS(4936),
    [sym_while] = ACTIONS(4936),
    [sym_gshared] = ACTIONS(4936),
    [sym_traits] = ACTIONS(4936),
    [sym_vector] = ACTIONS(4936),
    [sym_void] = ACTIONS(4936),
    [sym_directive] = ACTIONS(3),
  },
  [2573] = {
    [ts_builtin_sym_end] = ACTIONS(4349),
    [sym_identifier] = ACTIONS(4347),
    [sym_end_file] = ACTIONS(4347),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4349),
    [anon_sym_SEMI] = ACTIONS(4349),
    [anon_sym_TILDE] = ACTIONS(4349),
    [anon_sym_AT] = ACTIONS(4349),
    [sym_bool] = ACTIONS(4347),
    [sym_byte] = ACTIONS(4347),
    [sym_ubyte] = ACTIONS(4347),
    [sym_char] = ACTIONS(4347),
    [sym_short] = ACTIONS(4347),
    [sym_ushort] = ACTIONS(4347),
    [sym_int] = ACTIONS(4347),
    [sym_uint] = ACTIONS(4347),
    [sym_long] = ACTIONS(4347),
    [sym_ulong] = ACTIONS(4347),
    [sym_cent] = ACTIONS(4347),
    [sym_ucent] = ACTIONS(4347),
    [sym_wchar] = ACTIONS(4347),
    [sym_dchar] = ACTIONS(4347),
    [sym_float] = ACTIONS(4347),
    [sym_double] = ACTIONS(4347),
    [sym_real] = ACTIONS(4347),
    [sym_ifloat] = ACTIONS(4347),
    [sym_idouble] = ACTIONS(4347),
    [sym_ireal] = ACTIONS(4347),
    [sym_cfloat] = ACTIONS(4347),
    [sym_cdouble] = ACTIONS(4347),
    [sym_creal] = ACTIONS(4347),
    [sym_size_t] = ACTIONS(4347),
    [sym_ptrdiff_t] = ACTIONS(4347),
    [sym_string] = ACTIONS(4347),
    [sym_cstring] = ACTIONS(4347),
    [sym_dstring] = ACTIONS(4347),
    [sym_wstring] = ACTIONS(4347),
    [sym_noreturn] = ACTIONS(4347),
    [sym_this] = ACTIONS(4347),
    [sym_abstract] = ACTIONS(4347),
    [sym_alias] = ACTIONS(4347),
    [sym_align] = ACTIONS(4347),
    [sym_auto] = ACTIONS(4347),
    [sym_class] = ACTIONS(4347),
    [sym_const] = ACTIONS(4347),
    [sym_debug] = ACTIONS(4347),
    [sym_deprecated] = ACTIONS(4347),
    [sym_else] = ACTIONS(4347),
    [sym_enum] = ACTIONS(4347),
    [sym_export] = ACTIONS(4347),
    [sym_extern] = ACTIONS(4347),
    [sym_final] = ACTIONS(4347),
    [sym_immutable] = ACTIONS(4347),
    [sym_import] = ACTIONS(4347),
    [sym_inout] = ACTIONS(4347),
    [sym_interface] = ACTIONS(4347),
    [sym_invariant] = ACTIONS(4347),
    [sym_mixin] = ACTIONS(4347),
    [sym_nothrow] = ACTIONS(4347),
    [sym_override] = ACTIONS(4347),
    [sym_package] = ACTIONS(4347),
    [sym_pragma] = ACTIONS(4347),
    [sym_private] = ACTIONS(4347),
    [sym_protected] = ACTIONS(4347),
    [sym_public] = ACTIONS(4347),
    [sym_pure] = ACTIONS(4347),
    [sym_ref] = ACTIONS(4347),
    [sym_return] = ACTIONS(4347),
    [sym_scope] = ACTIONS(4347),
    [sym_shared] = ACTIONS(4347),
    [sym_static] = ACTIONS(4347),
    [sym_struct] = ACTIONS(4347),
    [sym_synchronized] = ACTIONS(4347),
    [sym_template] = ACTIONS(4347),
    [sym_typeof] = ACTIONS(4347),
    [sym_union] = ACTIONS(4347),
    [sym_unittest] = ACTIONS(4347),
    [sym_version] = ACTIONS(4347),
    [sym_while] = ACTIONS(4347),
    [sym_gshared] = ACTIONS(4347),
    [sym_traits] = ACTIONS(4347),
    [sym_vector] = ACTIONS(4347),
    [sym_void] = ACTIONS(4347),
    [sym_directive] = ACTIONS(3),
  },
  [2574] = {
    [sym_identifier] = ACTIONS(5040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5042),
    [anon_sym_SEMI] = ACTIONS(5042),
    [anon_sym_TILDE] = ACTIONS(5042),
    [anon_sym_AT] = ACTIONS(5042),
    [sym_bool] = ACTIONS(5040),
    [sym_byte] = ACTIONS(5040),
    [sym_ubyte] = ACTIONS(5040),
    [sym_char] = ACTIONS(5040),
    [sym_short] = ACTIONS(5040),
    [sym_ushort] = ACTIONS(5040),
    [sym_int] = ACTIONS(5040),
    [sym_uint] = ACTIONS(5040),
    [sym_long] = ACTIONS(5040),
    [sym_ulong] = ACTIONS(5040),
    [sym_cent] = ACTIONS(5040),
    [sym_ucent] = ACTIONS(5040),
    [sym_wchar] = ACTIONS(5040),
    [sym_dchar] = ACTIONS(5040),
    [sym_float] = ACTIONS(5040),
    [sym_double] = ACTIONS(5040),
    [sym_real] = ACTIONS(5040),
    [sym_ifloat] = ACTIONS(5040),
    [sym_idouble] = ACTIONS(5040),
    [sym_ireal] = ACTIONS(5040),
    [sym_cfloat] = ACTIONS(5040),
    [sym_cdouble] = ACTIONS(5040),
    [sym_creal] = ACTIONS(5040),
    [sym_size_t] = ACTIONS(5040),
    [sym_ptrdiff_t] = ACTIONS(5040),
    [sym_string] = ACTIONS(5040),
    [sym_cstring] = ACTIONS(5040),
    [sym_dstring] = ACTIONS(5040),
    [sym_wstring] = ACTIONS(5040),
    [sym_noreturn] = ACTIONS(5040),
    [sym_this] = ACTIONS(5040),
    [sym_abstract] = ACTIONS(5040),
    [sym_alias] = ACTIONS(5040),
    [sym_align] = ACTIONS(5040),
    [sym_auto] = ACTIONS(5040),
    [sym_catch] = ACTIONS(5040),
    [sym_class] = ACTIONS(5040),
    [sym_const] = ACTIONS(5040),
    [sym_debug] = ACTIONS(5040),
    [sym_deprecated] = ACTIONS(5040),
    [sym_else] = ACTIONS(5040),
    [sym_enum] = ACTIONS(5040),
    [sym_export] = ACTIONS(5040),
    [sym_extern] = ACTIONS(5040),
    [sym_final] = ACTIONS(5040),
    [sym_finally] = ACTIONS(5040),
    [sym_immutable] = ACTIONS(5040),
    [sym_import] = ACTIONS(5040),
    [sym_inout] = ACTIONS(5040),
    [sym_interface] = ACTIONS(5040),
    [sym_invariant] = ACTIONS(5040),
    [sym_mixin] = ACTIONS(5040),
    [sym_nothrow] = ACTIONS(5040),
    [sym_override] = ACTIONS(5040),
    [sym_package] = ACTIONS(5040),
    [sym_pragma] = ACTIONS(5040),
    [sym_private] = ACTIONS(5040),
    [sym_protected] = ACTIONS(5040),
    [sym_public] = ACTIONS(5040),
    [sym_pure] = ACTIONS(5040),
    [sym_ref] = ACTIONS(5040),
    [sym_return] = ACTIONS(5040),
    [sym_scope] = ACTIONS(5040),
    [sym_shared] = ACTIONS(5040),
    [sym_static] = ACTIONS(5040),
    [sym_struct] = ACTIONS(5040),
    [sym_synchronized] = ACTIONS(5040),
    [sym_template] = ACTIONS(5040),
    [sym_typeof] = ACTIONS(5040),
    [sym_union] = ACTIONS(5040),
    [sym_unittest] = ACTIONS(5040),
    [sym_version] = ACTIONS(5040),
    [sym_while] = ACTIONS(5040),
    [sym_gshared] = ACTIONS(5040),
    [sym_traits] = ACTIONS(5040),
    [sym_vector] = ACTIONS(5040),
    [sym_void] = ACTIONS(5040),
    [sym_directive] = ACTIONS(3),
  },
  [2575] = {
    [sym_identifier] = ACTIONS(4476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4478),
    [anon_sym_SEMI] = ACTIONS(4478),
    [anon_sym_TILDE] = ACTIONS(4478),
    [anon_sym_AT] = ACTIONS(4478),
    [sym_bool] = ACTIONS(4476),
    [sym_byte] = ACTIONS(4476),
    [sym_ubyte] = ACTIONS(4476),
    [sym_char] = ACTIONS(4476),
    [sym_short] = ACTIONS(4476),
    [sym_ushort] = ACTIONS(4476),
    [sym_int] = ACTIONS(4476),
    [sym_uint] = ACTIONS(4476),
    [sym_long] = ACTIONS(4476),
    [sym_ulong] = ACTIONS(4476),
    [sym_cent] = ACTIONS(4476),
    [sym_ucent] = ACTIONS(4476),
    [sym_wchar] = ACTIONS(4476),
    [sym_dchar] = ACTIONS(4476),
    [sym_float] = ACTIONS(4476),
    [sym_double] = ACTIONS(4476),
    [sym_real] = ACTIONS(4476),
    [sym_ifloat] = ACTIONS(4476),
    [sym_idouble] = ACTIONS(4476),
    [sym_ireal] = ACTIONS(4476),
    [sym_cfloat] = ACTIONS(4476),
    [sym_cdouble] = ACTIONS(4476),
    [sym_creal] = ACTIONS(4476),
    [sym_size_t] = ACTIONS(4476),
    [sym_ptrdiff_t] = ACTIONS(4476),
    [sym_string] = ACTIONS(4476),
    [sym_cstring] = ACTIONS(4476),
    [sym_dstring] = ACTIONS(4476),
    [sym_wstring] = ACTIONS(4476),
    [sym_noreturn] = ACTIONS(4476),
    [sym_this] = ACTIONS(4476),
    [sym_abstract] = ACTIONS(4476),
    [sym_alias] = ACTIONS(4476),
    [sym_align] = ACTIONS(4476),
    [sym_auto] = ACTIONS(4476),
    [sym_catch] = ACTIONS(4476),
    [sym_class] = ACTIONS(4476),
    [sym_const] = ACTIONS(4476),
    [sym_debug] = ACTIONS(4476),
    [sym_deprecated] = ACTIONS(4476),
    [sym_else] = ACTIONS(4476),
    [sym_enum] = ACTIONS(4476),
    [sym_export] = ACTIONS(4476),
    [sym_extern] = ACTIONS(4476),
    [sym_final] = ACTIONS(4476),
    [sym_finally] = ACTIONS(4476),
    [sym_immutable] = ACTIONS(4476),
    [sym_import] = ACTIONS(4476),
    [sym_inout] = ACTIONS(4476),
    [sym_interface] = ACTIONS(4476),
    [sym_invariant] = ACTIONS(4476),
    [sym_mixin] = ACTIONS(4476),
    [sym_nothrow] = ACTIONS(4476),
    [sym_override] = ACTIONS(4476),
    [sym_package] = ACTIONS(4476),
    [sym_pragma] = ACTIONS(4476),
    [sym_private] = ACTIONS(4476),
    [sym_protected] = ACTIONS(4476),
    [sym_public] = ACTIONS(4476),
    [sym_pure] = ACTIONS(4476),
    [sym_ref] = ACTIONS(4476),
    [sym_return] = ACTIONS(4476),
    [sym_scope] = ACTIONS(4476),
    [sym_shared] = ACTIONS(4476),
    [sym_static] = ACTIONS(4476),
    [sym_struct] = ACTIONS(4476),
    [sym_synchronized] = ACTIONS(4476),
    [sym_template] = ACTIONS(4476),
    [sym_typeof] = ACTIONS(4476),
    [sym_union] = ACTIONS(4476),
    [sym_unittest] = ACTIONS(4476),
    [sym_version] = ACTIONS(4476),
    [sym_while] = ACTIONS(4476),
    [sym_gshared] = ACTIONS(4476),
    [sym_traits] = ACTIONS(4476),
    [sym_vector] = ACTIONS(4476),
    [sym_void] = ACTIONS(4476),
    [sym_directive] = ACTIONS(3),
  },
  [2576] = {
    [ts_builtin_sym_end] = ACTIONS(4800),
    [sym_identifier] = ACTIONS(4798),
    [sym_end_file] = ACTIONS(4798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4800),
    [anon_sym_SEMI] = ACTIONS(4800),
    [anon_sym_TILDE] = ACTIONS(4800),
    [anon_sym_AT] = ACTIONS(4800),
    [sym_bool] = ACTIONS(4798),
    [sym_byte] = ACTIONS(4798),
    [sym_ubyte] = ACTIONS(4798),
    [sym_char] = ACTIONS(4798),
    [sym_short] = ACTIONS(4798),
    [sym_ushort] = ACTIONS(4798),
    [sym_int] = ACTIONS(4798),
    [sym_uint] = ACTIONS(4798),
    [sym_long] = ACTIONS(4798),
    [sym_ulong] = ACTIONS(4798),
    [sym_cent] = ACTIONS(4798),
    [sym_ucent] = ACTIONS(4798),
    [sym_wchar] = ACTIONS(4798),
    [sym_dchar] = ACTIONS(4798),
    [sym_float] = ACTIONS(4798),
    [sym_double] = ACTIONS(4798),
    [sym_real] = ACTIONS(4798),
    [sym_ifloat] = ACTIONS(4798),
    [sym_idouble] = ACTIONS(4798),
    [sym_ireal] = ACTIONS(4798),
    [sym_cfloat] = ACTIONS(4798),
    [sym_cdouble] = ACTIONS(4798),
    [sym_creal] = ACTIONS(4798),
    [sym_size_t] = ACTIONS(4798),
    [sym_ptrdiff_t] = ACTIONS(4798),
    [sym_string] = ACTIONS(4798),
    [sym_cstring] = ACTIONS(4798),
    [sym_dstring] = ACTIONS(4798),
    [sym_wstring] = ACTIONS(4798),
    [sym_noreturn] = ACTIONS(4798),
    [sym_this] = ACTIONS(4798),
    [sym_abstract] = ACTIONS(4798),
    [sym_alias] = ACTIONS(4798),
    [sym_align] = ACTIONS(4798),
    [sym_auto] = ACTIONS(4798),
    [sym_class] = ACTIONS(4798),
    [sym_const] = ACTIONS(4798),
    [sym_debug] = ACTIONS(4798),
    [sym_deprecated] = ACTIONS(4798),
    [sym_else] = ACTIONS(4798),
    [sym_enum] = ACTIONS(4798),
    [sym_export] = ACTIONS(4798),
    [sym_extern] = ACTIONS(4798),
    [sym_final] = ACTIONS(4798),
    [sym_immutable] = ACTIONS(4798),
    [sym_import] = ACTIONS(4798),
    [sym_inout] = ACTIONS(4798),
    [sym_interface] = ACTIONS(4798),
    [sym_invariant] = ACTIONS(4798),
    [sym_mixin] = ACTIONS(4798),
    [sym_nothrow] = ACTIONS(4798),
    [sym_override] = ACTIONS(4798),
    [sym_package] = ACTIONS(4798),
    [sym_pragma] = ACTIONS(4798),
    [sym_private] = ACTIONS(4798),
    [sym_protected] = ACTIONS(4798),
    [sym_public] = ACTIONS(4798),
    [sym_pure] = ACTIONS(4798),
    [sym_ref] = ACTIONS(4798),
    [sym_return] = ACTIONS(4798),
    [sym_scope] = ACTIONS(4798),
    [sym_shared] = ACTIONS(4798),
    [sym_static] = ACTIONS(4798),
    [sym_struct] = ACTIONS(4798),
    [sym_synchronized] = ACTIONS(4798),
    [sym_template] = ACTIONS(4798),
    [sym_typeof] = ACTIONS(4798),
    [sym_union] = ACTIONS(4798),
    [sym_unittest] = ACTIONS(4798),
    [sym_version] = ACTIONS(4798),
    [sym_while] = ACTIONS(4798),
    [sym_gshared] = ACTIONS(4798),
    [sym_traits] = ACTIONS(4798),
    [sym_vector] = ACTIONS(4798),
    [sym_void] = ACTIONS(4798),
    [sym_directive] = ACTIONS(3),
  },
  [2577] = {
    [sym_identifier] = ACTIONS(5044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5046),
    [anon_sym_SEMI] = ACTIONS(5046),
    [anon_sym_TILDE] = ACTIONS(5046),
    [anon_sym_AT] = ACTIONS(5046),
    [sym_bool] = ACTIONS(5044),
    [sym_byte] = ACTIONS(5044),
    [sym_ubyte] = ACTIONS(5044),
    [sym_char] = ACTIONS(5044),
    [sym_short] = ACTIONS(5044),
    [sym_ushort] = ACTIONS(5044),
    [sym_int] = ACTIONS(5044),
    [sym_uint] = ACTIONS(5044),
    [sym_long] = ACTIONS(5044),
    [sym_ulong] = ACTIONS(5044),
    [sym_cent] = ACTIONS(5044),
    [sym_ucent] = ACTIONS(5044),
    [sym_wchar] = ACTIONS(5044),
    [sym_dchar] = ACTIONS(5044),
    [sym_float] = ACTIONS(5044),
    [sym_double] = ACTIONS(5044),
    [sym_real] = ACTIONS(5044),
    [sym_ifloat] = ACTIONS(5044),
    [sym_idouble] = ACTIONS(5044),
    [sym_ireal] = ACTIONS(5044),
    [sym_cfloat] = ACTIONS(5044),
    [sym_cdouble] = ACTIONS(5044),
    [sym_creal] = ACTIONS(5044),
    [sym_size_t] = ACTIONS(5044),
    [sym_ptrdiff_t] = ACTIONS(5044),
    [sym_string] = ACTIONS(5044),
    [sym_cstring] = ACTIONS(5044),
    [sym_dstring] = ACTIONS(5044),
    [sym_wstring] = ACTIONS(5044),
    [sym_noreturn] = ACTIONS(5044),
    [sym_this] = ACTIONS(5044),
    [sym_abstract] = ACTIONS(5044),
    [sym_alias] = ACTIONS(5044),
    [sym_align] = ACTIONS(5044),
    [sym_auto] = ACTIONS(5044),
    [sym_catch] = ACTIONS(5044),
    [sym_class] = ACTIONS(5044),
    [sym_const] = ACTIONS(5044),
    [sym_debug] = ACTIONS(5044),
    [sym_deprecated] = ACTIONS(5044),
    [sym_else] = ACTIONS(5044),
    [sym_enum] = ACTIONS(5044),
    [sym_export] = ACTIONS(5044),
    [sym_extern] = ACTIONS(5044),
    [sym_final] = ACTIONS(5044),
    [sym_finally] = ACTIONS(5044),
    [sym_immutable] = ACTIONS(5044),
    [sym_import] = ACTIONS(5044),
    [sym_inout] = ACTIONS(5044),
    [sym_interface] = ACTIONS(5044),
    [sym_invariant] = ACTIONS(5044),
    [sym_mixin] = ACTIONS(5044),
    [sym_nothrow] = ACTIONS(5044),
    [sym_override] = ACTIONS(5044),
    [sym_package] = ACTIONS(5044),
    [sym_pragma] = ACTIONS(5044),
    [sym_private] = ACTIONS(5044),
    [sym_protected] = ACTIONS(5044),
    [sym_public] = ACTIONS(5044),
    [sym_pure] = ACTIONS(5044),
    [sym_ref] = ACTIONS(5044),
    [sym_return] = ACTIONS(5044),
    [sym_scope] = ACTIONS(5044),
    [sym_shared] = ACTIONS(5044),
    [sym_static] = ACTIONS(5044),
    [sym_struct] = ACTIONS(5044),
    [sym_synchronized] = ACTIONS(5044),
    [sym_template] = ACTIONS(5044),
    [sym_typeof] = ACTIONS(5044),
    [sym_union] = ACTIONS(5044),
    [sym_unittest] = ACTIONS(5044),
    [sym_version] = ACTIONS(5044),
    [sym_while] = ACTIONS(5044),
    [sym_gshared] = ACTIONS(5044),
    [sym_traits] = ACTIONS(5044),
    [sym_vector] = ACTIONS(5044),
    [sym_void] = ACTIONS(5044),
    [sym_directive] = ACTIONS(3),
  },
  [2578] = {
    [sym_identifier] = ACTIONS(5056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5058),
    [anon_sym_SEMI] = ACTIONS(5058),
    [anon_sym_TILDE] = ACTIONS(5058),
    [anon_sym_AT] = ACTIONS(5058),
    [sym_bool] = ACTIONS(5056),
    [sym_byte] = ACTIONS(5056),
    [sym_ubyte] = ACTIONS(5056),
    [sym_char] = ACTIONS(5056),
    [sym_short] = ACTIONS(5056),
    [sym_ushort] = ACTIONS(5056),
    [sym_int] = ACTIONS(5056),
    [sym_uint] = ACTIONS(5056),
    [sym_long] = ACTIONS(5056),
    [sym_ulong] = ACTIONS(5056),
    [sym_cent] = ACTIONS(5056),
    [sym_ucent] = ACTIONS(5056),
    [sym_wchar] = ACTIONS(5056),
    [sym_dchar] = ACTIONS(5056),
    [sym_float] = ACTIONS(5056),
    [sym_double] = ACTIONS(5056),
    [sym_real] = ACTIONS(5056),
    [sym_ifloat] = ACTIONS(5056),
    [sym_idouble] = ACTIONS(5056),
    [sym_ireal] = ACTIONS(5056),
    [sym_cfloat] = ACTIONS(5056),
    [sym_cdouble] = ACTIONS(5056),
    [sym_creal] = ACTIONS(5056),
    [sym_size_t] = ACTIONS(5056),
    [sym_ptrdiff_t] = ACTIONS(5056),
    [sym_string] = ACTIONS(5056),
    [sym_cstring] = ACTIONS(5056),
    [sym_dstring] = ACTIONS(5056),
    [sym_wstring] = ACTIONS(5056),
    [sym_noreturn] = ACTIONS(5056),
    [sym_this] = ACTIONS(5056),
    [sym_abstract] = ACTIONS(5056),
    [sym_alias] = ACTIONS(5056),
    [sym_align] = ACTIONS(5056),
    [sym_auto] = ACTIONS(5056),
    [sym_catch] = ACTIONS(5056),
    [sym_class] = ACTIONS(5056),
    [sym_const] = ACTIONS(5056),
    [sym_debug] = ACTIONS(5056),
    [sym_deprecated] = ACTIONS(5056),
    [sym_else] = ACTIONS(5056),
    [sym_enum] = ACTIONS(5056),
    [sym_export] = ACTIONS(5056),
    [sym_extern] = ACTIONS(5056),
    [sym_final] = ACTIONS(5056),
    [sym_finally] = ACTIONS(5056),
    [sym_immutable] = ACTIONS(5056),
    [sym_import] = ACTIONS(5056),
    [sym_inout] = ACTIONS(5056),
    [sym_interface] = ACTIONS(5056),
    [sym_invariant] = ACTIONS(5056),
    [sym_mixin] = ACTIONS(5056),
    [sym_nothrow] = ACTIONS(5056),
    [sym_override] = ACTIONS(5056),
    [sym_package] = ACTIONS(5056),
    [sym_pragma] = ACTIONS(5056),
    [sym_private] = ACTIONS(5056),
    [sym_protected] = ACTIONS(5056),
    [sym_public] = ACTIONS(5056),
    [sym_pure] = ACTIONS(5056),
    [sym_ref] = ACTIONS(5056),
    [sym_return] = ACTIONS(5056),
    [sym_scope] = ACTIONS(5056),
    [sym_shared] = ACTIONS(5056),
    [sym_static] = ACTIONS(5056),
    [sym_struct] = ACTIONS(5056),
    [sym_synchronized] = ACTIONS(5056),
    [sym_template] = ACTIONS(5056),
    [sym_typeof] = ACTIONS(5056),
    [sym_union] = ACTIONS(5056),
    [sym_unittest] = ACTIONS(5056),
    [sym_version] = ACTIONS(5056),
    [sym_while] = ACTIONS(5056),
    [sym_gshared] = ACTIONS(5056),
    [sym_traits] = ACTIONS(5056),
    [sym_vector] = ACTIONS(5056),
    [sym_void] = ACTIONS(5056),
    [sym_directive] = ACTIONS(3),
  },
  [2579] = {
    [sym_identifier] = ACTIONS(4578),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4580),
    [anon_sym_SEMI] = ACTIONS(4580),
    [anon_sym_TILDE] = ACTIONS(4580),
    [anon_sym_AT] = ACTIONS(4580),
    [sym_bool] = ACTIONS(4578),
    [sym_byte] = ACTIONS(4578),
    [sym_ubyte] = ACTIONS(4578),
    [sym_char] = ACTIONS(4578),
    [sym_short] = ACTIONS(4578),
    [sym_ushort] = ACTIONS(4578),
    [sym_int] = ACTIONS(4578),
    [sym_uint] = ACTIONS(4578),
    [sym_long] = ACTIONS(4578),
    [sym_ulong] = ACTIONS(4578),
    [sym_cent] = ACTIONS(4578),
    [sym_ucent] = ACTIONS(4578),
    [sym_wchar] = ACTIONS(4578),
    [sym_dchar] = ACTIONS(4578),
    [sym_float] = ACTIONS(4578),
    [sym_double] = ACTIONS(4578),
    [sym_real] = ACTIONS(4578),
    [sym_ifloat] = ACTIONS(4578),
    [sym_idouble] = ACTIONS(4578),
    [sym_ireal] = ACTIONS(4578),
    [sym_cfloat] = ACTIONS(4578),
    [sym_cdouble] = ACTIONS(4578),
    [sym_creal] = ACTIONS(4578),
    [sym_size_t] = ACTIONS(4578),
    [sym_ptrdiff_t] = ACTIONS(4578),
    [sym_string] = ACTIONS(4578),
    [sym_cstring] = ACTIONS(4578),
    [sym_dstring] = ACTIONS(4578),
    [sym_wstring] = ACTIONS(4578),
    [sym_noreturn] = ACTIONS(4578),
    [sym_this] = ACTIONS(4578),
    [sym_abstract] = ACTIONS(4578),
    [sym_alias] = ACTIONS(4578),
    [sym_align] = ACTIONS(4578),
    [sym_auto] = ACTIONS(4578),
    [sym_catch] = ACTIONS(4578),
    [sym_class] = ACTIONS(4578),
    [sym_const] = ACTIONS(4578),
    [sym_debug] = ACTIONS(4578),
    [sym_deprecated] = ACTIONS(4578),
    [sym_else] = ACTIONS(4578),
    [sym_enum] = ACTIONS(4578),
    [sym_export] = ACTIONS(4578),
    [sym_extern] = ACTIONS(4578),
    [sym_final] = ACTIONS(4578),
    [sym_finally] = ACTIONS(4578),
    [sym_immutable] = ACTIONS(4578),
    [sym_import] = ACTIONS(4578),
    [sym_inout] = ACTIONS(4578),
    [sym_interface] = ACTIONS(4578),
    [sym_invariant] = ACTIONS(4578),
    [sym_mixin] = ACTIONS(4578),
    [sym_nothrow] = ACTIONS(4578),
    [sym_override] = ACTIONS(4578),
    [sym_package] = ACTIONS(4578),
    [sym_pragma] = ACTIONS(4578),
    [sym_private] = ACTIONS(4578),
    [sym_protected] = ACTIONS(4578),
    [sym_public] = ACTIONS(4578),
    [sym_pure] = ACTIONS(4578),
    [sym_ref] = ACTIONS(4578),
    [sym_return] = ACTIONS(4578),
    [sym_scope] = ACTIONS(4578),
    [sym_shared] = ACTIONS(4578),
    [sym_static] = ACTIONS(4578),
    [sym_struct] = ACTIONS(4578),
    [sym_synchronized] = ACTIONS(4578),
    [sym_template] = ACTIONS(4578),
    [sym_typeof] = ACTIONS(4578),
    [sym_union] = ACTIONS(4578),
    [sym_unittest] = ACTIONS(4578),
    [sym_version] = ACTIONS(4578),
    [sym_while] = ACTIONS(4578),
    [sym_gshared] = ACTIONS(4578),
    [sym_traits] = ACTIONS(4578),
    [sym_vector] = ACTIONS(4578),
    [sym_void] = ACTIONS(4578),
    [sym_directive] = ACTIONS(3),
  },
  [2580] = {
    [sym_identifier] = ACTIONS(4860),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4862),
    [anon_sym_SEMI] = ACTIONS(4862),
    [anon_sym_TILDE] = ACTIONS(4862),
    [anon_sym_AT] = ACTIONS(4862),
    [sym_bool] = ACTIONS(4860),
    [sym_byte] = ACTIONS(4860),
    [sym_ubyte] = ACTIONS(4860),
    [sym_char] = ACTIONS(4860),
    [sym_short] = ACTIONS(4860),
    [sym_ushort] = ACTIONS(4860),
    [sym_int] = ACTIONS(4860),
    [sym_uint] = ACTIONS(4860),
    [sym_long] = ACTIONS(4860),
    [sym_ulong] = ACTIONS(4860),
    [sym_cent] = ACTIONS(4860),
    [sym_ucent] = ACTIONS(4860),
    [sym_wchar] = ACTIONS(4860),
    [sym_dchar] = ACTIONS(4860),
    [sym_float] = ACTIONS(4860),
    [sym_double] = ACTIONS(4860),
    [sym_real] = ACTIONS(4860),
    [sym_ifloat] = ACTIONS(4860),
    [sym_idouble] = ACTIONS(4860),
    [sym_ireal] = ACTIONS(4860),
    [sym_cfloat] = ACTIONS(4860),
    [sym_cdouble] = ACTIONS(4860),
    [sym_creal] = ACTIONS(4860),
    [sym_size_t] = ACTIONS(4860),
    [sym_ptrdiff_t] = ACTIONS(4860),
    [sym_string] = ACTIONS(4860),
    [sym_cstring] = ACTIONS(4860),
    [sym_dstring] = ACTIONS(4860),
    [sym_wstring] = ACTIONS(4860),
    [sym_noreturn] = ACTIONS(4860),
    [sym_this] = ACTIONS(4860),
    [sym_abstract] = ACTIONS(4860),
    [sym_alias] = ACTIONS(4860),
    [sym_align] = ACTIONS(4860),
    [sym_auto] = ACTIONS(4860),
    [sym_catch] = ACTIONS(4860),
    [sym_class] = ACTIONS(4860),
    [sym_const] = ACTIONS(4860),
    [sym_debug] = ACTIONS(4860),
    [sym_deprecated] = ACTIONS(4860),
    [sym_else] = ACTIONS(4860),
    [sym_enum] = ACTIONS(4860),
    [sym_export] = ACTIONS(4860),
    [sym_extern] = ACTIONS(4860),
    [sym_final] = ACTIONS(4860),
    [sym_finally] = ACTIONS(4860),
    [sym_immutable] = ACTIONS(4860),
    [sym_import] = ACTIONS(4860),
    [sym_inout] = ACTIONS(4860),
    [sym_interface] = ACTIONS(4860),
    [sym_invariant] = ACTIONS(4860),
    [sym_mixin] = ACTIONS(4860),
    [sym_nothrow] = ACTIONS(4860),
    [sym_override] = ACTIONS(4860),
    [sym_package] = ACTIONS(4860),
    [sym_pragma] = ACTIONS(4860),
    [sym_private] = ACTIONS(4860),
    [sym_protected] = ACTIONS(4860),
    [sym_public] = ACTIONS(4860),
    [sym_pure] = ACTIONS(4860),
    [sym_ref] = ACTIONS(4860),
    [sym_return] = ACTIONS(4860),
    [sym_scope] = ACTIONS(4860),
    [sym_shared] = ACTIONS(4860),
    [sym_static] = ACTIONS(4860),
    [sym_struct] = ACTIONS(4860),
    [sym_synchronized] = ACTIONS(4860),
    [sym_template] = ACTIONS(4860),
    [sym_typeof] = ACTIONS(4860),
    [sym_union] = ACTIONS(4860),
    [sym_unittest] = ACTIONS(4860),
    [sym_version] = ACTIONS(4860),
    [sym_while] = ACTIONS(4860),
    [sym_gshared] = ACTIONS(4860),
    [sym_traits] = ACTIONS(4860),
    [sym_vector] = ACTIONS(4860),
    [sym_void] = ACTIONS(4860),
    [sym_directive] = ACTIONS(3),
  },
  [2581] = {
    [sym_identifier] = ACTIONS(4852),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4854),
    [anon_sym_SEMI] = ACTIONS(4854),
    [anon_sym_TILDE] = ACTIONS(4854),
    [anon_sym_AT] = ACTIONS(4854),
    [sym_bool] = ACTIONS(4852),
    [sym_byte] = ACTIONS(4852),
    [sym_ubyte] = ACTIONS(4852),
    [sym_char] = ACTIONS(4852),
    [sym_short] = ACTIONS(4852),
    [sym_ushort] = ACTIONS(4852),
    [sym_int] = ACTIONS(4852),
    [sym_uint] = ACTIONS(4852),
    [sym_long] = ACTIONS(4852),
    [sym_ulong] = ACTIONS(4852),
    [sym_cent] = ACTIONS(4852),
    [sym_ucent] = ACTIONS(4852),
    [sym_wchar] = ACTIONS(4852),
    [sym_dchar] = ACTIONS(4852),
    [sym_float] = ACTIONS(4852),
    [sym_double] = ACTIONS(4852),
    [sym_real] = ACTIONS(4852),
    [sym_ifloat] = ACTIONS(4852),
    [sym_idouble] = ACTIONS(4852),
    [sym_ireal] = ACTIONS(4852),
    [sym_cfloat] = ACTIONS(4852),
    [sym_cdouble] = ACTIONS(4852),
    [sym_creal] = ACTIONS(4852),
    [sym_size_t] = ACTIONS(4852),
    [sym_ptrdiff_t] = ACTIONS(4852),
    [sym_string] = ACTIONS(4852),
    [sym_cstring] = ACTIONS(4852),
    [sym_dstring] = ACTIONS(4852),
    [sym_wstring] = ACTIONS(4852),
    [sym_noreturn] = ACTIONS(4852),
    [sym_this] = ACTIONS(4852),
    [sym_abstract] = ACTIONS(4852),
    [sym_alias] = ACTIONS(4852),
    [sym_align] = ACTIONS(4852),
    [sym_auto] = ACTIONS(4852),
    [sym_catch] = ACTIONS(4852),
    [sym_class] = ACTIONS(4852),
    [sym_const] = ACTIONS(4852),
    [sym_debug] = ACTIONS(4852),
    [sym_deprecated] = ACTIONS(4852),
    [sym_else] = ACTIONS(4852),
    [sym_enum] = ACTIONS(4852),
    [sym_export] = ACTIONS(4852),
    [sym_extern] = ACTIONS(4852),
    [sym_final] = ACTIONS(4852),
    [sym_finally] = ACTIONS(4852),
    [sym_immutable] = ACTIONS(4852),
    [sym_import] = ACTIONS(4852),
    [sym_inout] = ACTIONS(4852),
    [sym_interface] = ACTIONS(4852),
    [sym_invariant] = ACTIONS(4852),
    [sym_mixin] = ACTIONS(4852),
    [sym_nothrow] = ACTIONS(4852),
    [sym_override] = ACTIONS(4852),
    [sym_package] = ACTIONS(4852),
    [sym_pragma] = ACTIONS(4852),
    [sym_private] = ACTIONS(4852),
    [sym_protected] = ACTIONS(4852),
    [sym_public] = ACTIONS(4852),
    [sym_pure] = ACTIONS(4852),
    [sym_ref] = ACTIONS(4852),
    [sym_return] = ACTIONS(4852),
    [sym_scope] = ACTIONS(4852),
    [sym_shared] = ACTIONS(4852),
    [sym_static] = ACTIONS(4852),
    [sym_struct] = ACTIONS(4852),
    [sym_synchronized] = ACTIONS(4852),
    [sym_template] = ACTIONS(4852),
    [sym_typeof] = ACTIONS(4852),
    [sym_union] = ACTIONS(4852),
    [sym_unittest] = ACTIONS(4852),
    [sym_version] = ACTIONS(4852),
    [sym_while] = ACTIONS(4852),
    [sym_gshared] = ACTIONS(4852),
    [sym_traits] = ACTIONS(4852),
    [sym_vector] = ACTIONS(4852),
    [sym_void] = ACTIONS(4852),
    [sym_directive] = ACTIONS(3),
  },
  [2582] = {
    [sym_identifier] = ACTIONS(4798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4800),
    [anon_sym_SEMI] = ACTIONS(4800),
    [anon_sym_TILDE] = ACTIONS(4800),
    [anon_sym_AT] = ACTIONS(4800),
    [sym_bool] = ACTIONS(4798),
    [sym_byte] = ACTIONS(4798),
    [sym_ubyte] = ACTIONS(4798),
    [sym_char] = ACTIONS(4798),
    [sym_short] = ACTIONS(4798),
    [sym_ushort] = ACTIONS(4798),
    [sym_int] = ACTIONS(4798),
    [sym_uint] = ACTIONS(4798),
    [sym_long] = ACTIONS(4798),
    [sym_ulong] = ACTIONS(4798),
    [sym_cent] = ACTIONS(4798),
    [sym_ucent] = ACTIONS(4798),
    [sym_wchar] = ACTIONS(4798),
    [sym_dchar] = ACTIONS(4798),
    [sym_float] = ACTIONS(4798),
    [sym_double] = ACTIONS(4798),
    [sym_real] = ACTIONS(4798),
    [sym_ifloat] = ACTIONS(4798),
    [sym_idouble] = ACTIONS(4798),
    [sym_ireal] = ACTIONS(4798),
    [sym_cfloat] = ACTIONS(4798),
    [sym_cdouble] = ACTIONS(4798),
    [sym_creal] = ACTIONS(4798),
    [sym_size_t] = ACTIONS(4798),
    [sym_ptrdiff_t] = ACTIONS(4798),
    [sym_string] = ACTIONS(4798),
    [sym_cstring] = ACTIONS(4798),
    [sym_dstring] = ACTIONS(4798),
    [sym_wstring] = ACTIONS(4798),
    [sym_noreturn] = ACTIONS(4798),
    [sym_this] = ACTIONS(4798),
    [sym_abstract] = ACTIONS(4798),
    [sym_alias] = ACTIONS(4798),
    [sym_align] = ACTIONS(4798),
    [sym_auto] = ACTIONS(4798),
    [sym_catch] = ACTIONS(4798),
    [sym_class] = ACTIONS(4798),
    [sym_const] = ACTIONS(4798),
    [sym_debug] = ACTIONS(4798),
    [sym_deprecated] = ACTIONS(4798),
    [sym_else] = ACTIONS(4798),
    [sym_enum] = ACTIONS(4798),
    [sym_export] = ACTIONS(4798),
    [sym_extern] = ACTIONS(4798),
    [sym_final] = ACTIONS(4798),
    [sym_finally] = ACTIONS(4798),
    [sym_immutable] = ACTIONS(4798),
    [sym_import] = ACTIONS(4798),
    [sym_inout] = ACTIONS(4798),
    [sym_interface] = ACTIONS(4798),
    [sym_invariant] = ACTIONS(4798),
    [sym_mixin] = ACTIONS(4798),
    [sym_nothrow] = ACTIONS(4798),
    [sym_override] = ACTIONS(4798),
    [sym_package] = ACTIONS(4798),
    [sym_pragma] = ACTIONS(4798),
    [sym_private] = ACTIONS(4798),
    [sym_protected] = ACTIONS(4798),
    [sym_public] = ACTIONS(4798),
    [sym_pure] = ACTIONS(4798),
    [sym_ref] = ACTIONS(4798),
    [sym_return] = ACTIONS(4798),
    [sym_scope] = ACTIONS(4798),
    [sym_shared] = ACTIONS(4798),
    [sym_static] = ACTIONS(4798),
    [sym_struct] = ACTIONS(4798),
    [sym_synchronized] = ACTIONS(4798),
    [sym_template] = ACTIONS(4798),
    [sym_typeof] = ACTIONS(4798),
    [sym_union] = ACTIONS(4798),
    [sym_unittest] = ACTIONS(4798),
    [sym_version] = ACTIONS(4798),
    [sym_while] = ACTIONS(4798),
    [sym_gshared] = ACTIONS(4798),
    [sym_traits] = ACTIONS(4798),
    [sym_vector] = ACTIONS(4798),
    [sym_void] = ACTIONS(4798),
    [sym_directive] = ACTIONS(3),
  },
  [2583] = {
    [sym_identifier] = ACTIONS(4778),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4780),
    [anon_sym_SEMI] = ACTIONS(4780),
    [anon_sym_TILDE] = ACTIONS(4780),
    [anon_sym_AT] = ACTIONS(4780),
    [sym_bool] = ACTIONS(4778),
    [sym_byte] = ACTIONS(4778),
    [sym_ubyte] = ACTIONS(4778),
    [sym_char] = ACTIONS(4778),
    [sym_short] = ACTIONS(4778),
    [sym_ushort] = ACTIONS(4778),
    [sym_int] = ACTIONS(4778),
    [sym_uint] = ACTIONS(4778),
    [sym_long] = ACTIONS(4778),
    [sym_ulong] = ACTIONS(4778),
    [sym_cent] = ACTIONS(4778),
    [sym_ucent] = ACTIONS(4778),
    [sym_wchar] = ACTIONS(4778),
    [sym_dchar] = ACTIONS(4778),
    [sym_float] = ACTIONS(4778),
    [sym_double] = ACTIONS(4778),
    [sym_real] = ACTIONS(4778),
    [sym_ifloat] = ACTIONS(4778),
    [sym_idouble] = ACTIONS(4778),
    [sym_ireal] = ACTIONS(4778),
    [sym_cfloat] = ACTIONS(4778),
    [sym_cdouble] = ACTIONS(4778),
    [sym_creal] = ACTIONS(4778),
    [sym_size_t] = ACTIONS(4778),
    [sym_ptrdiff_t] = ACTIONS(4778),
    [sym_string] = ACTIONS(4778),
    [sym_cstring] = ACTIONS(4778),
    [sym_dstring] = ACTIONS(4778),
    [sym_wstring] = ACTIONS(4778),
    [sym_noreturn] = ACTIONS(4778),
    [sym_this] = ACTIONS(4778),
    [sym_abstract] = ACTIONS(4778),
    [sym_alias] = ACTIONS(4778),
    [sym_align] = ACTIONS(4778),
    [sym_auto] = ACTIONS(4778),
    [sym_catch] = ACTIONS(4778),
    [sym_class] = ACTIONS(4778),
    [sym_const] = ACTIONS(4778),
    [sym_debug] = ACTIONS(4778),
    [sym_deprecated] = ACTIONS(4778),
    [sym_else] = ACTIONS(4778),
    [sym_enum] = ACTIONS(4778),
    [sym_export] = ACTIONS(4778),
    [sym_extern] = ACTIONS(4778),
    [sym_final] = ACTIONS(4778),
    [sym_finally] = ACTIONS(4778),
    [sym_immutable] = ACTIONS(4778),
    [sym_import] = ACTIONS(4778),
    [sym_inout] = ACTIONS(4778),
    [sym_interface] = ACTIONS(4778),
    [sym_invariant] = ACTIONS(4778),
    [sym_mixin] = ACTIONS(4778),
    [sym_nothrow] = ACTIONS(4778),
    [sym_override] = ACTIONS(4778),
    [sym_package] = ACTIONS(4778),
    [sym_pragma] = ACTIONS(4778),
    [sym_private] = ACTIONS(4778),
    [sym_protected] = ACTIONS(4778),
    [sym_public] = ACTIONS(4778),
    [sym_pure] = ACTIONS(4778),
    [sym_ref] = ACTIONS(4778),
    [sym_return] = ACTIONS(4778),
    [sym_scope] = ACTIONS(4778),
    [sym_shared] = ACTIONS(4778),
    [sym_static] = ACTIONS(4778),
    [sym_struct] = ACTIONS(4778),
    [sym_synchronized] = ACTIONS(4778),
    [sym_template] = ACTIONS(4778),
    [sym_typeof] = ACTIONS(4778),
    [sym_union] = ACTIONS(4778),
    [sym_unittest] = ACTIONS(4778),
    [sym_version] = ACTIONS(4778),
    [sym_while] = ACTIONS(4778),
    [sym_gshared] = ACTIONS(4778),
    [sym_traits] = ACTIONS(4778),
    [sym_vector] = ACTIONS(4778),
    [sym_void] = ACTIONS(4778),
    [sym_directive] = ACTIONS(3),
  },
  [2584] = {
    [sym_identifier] = ACTIONS(4770),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4772),
    [anon_sym_SEMI] = ACTIONS(4772),
    [anon_sym_TILDE] = ACTIONS(4772),
    [anon_sym_AT] = ACTIONS(4772),
    [sym_bool] = ACTIONS(4770),
    [sym_byte] = ACTIONS(4770),
    [sym_ubyte] = ACTIONS(4770),
    [sym_char] = ACTIONS(4770),
    [sym_short] = ACTIONS(4770),
    [sym_ushort] = ACTIONS(4770),
    [sym_int] = ACTIONS(4770),
    [sym_uint] = ACTIONS(4770),
    [sym_long] = ACTIONS(4770),
    [sym_ulong] = ACTIONS(4770),
    [sym_cent] = ACTIONS(4770),
    [sym_ucent] = ACTIONS(4770),
    [sym_wchar] = ACTIONS(4770),
    [sym_dchar] = ACTIONS(4770),
    [sym_float] = ACTIONS(4770),
    [sym_double] = ACTIONS(4770),
    [sym_real] = ACTIONS(4770),
    [sym_ifloat] = ACTIONS(4770),
    [sym_idouble] = ACTIONS(4770),
    [sym_ireal] = ACTIONS(4770),
    [sym_cfloat] = ACTIONS(4770),
    [sym_cdouble] = ACTIONS(4770),
    [sym_creal] = ACTIONS(4770),
    [sym_size_t] = ACTIONS(4770),
    [sym_ptrdiff_t] = ACTIONS(4770),
    [sym_string] = ACTIONS(4770),
    [sym_cstring] = ACTIONS(4770),
    [sym_dstring] = ACTIONS(4770),
    [sym_wstring] = ACTIONS(4770),
    [sym_noreturn] = ACTIONS(4770),
    [sym_this] = ACTIONS(4770),
    [sym_abstract] = ACTIONS(4770),
    [sym_alias] = ACTIONS(4770),
    [sym_align] = ACTIONS(4770),
    [sym_auto] = ACTIONS(4770),
    [sym_catch] = ACTIONS(4770),
    [sym_class] = ACTIONS(4770),
    [sym_const] = ACTIONS(4770),
    [sym_debug] = ACTIONS(4770),
    [sym_deprecated] = ACTIONS(4770),
    [sym_else] = ACTIONS(4770),
    [sym_enum] = ACTIONS(4770),
    [sym_export] = ACTIONS(4770),
    [sym_extern] = ACTIONS(4770),
    [sym_final] = ACTIONS(4770),
    [sym_finally] = ACTIONS(4770),
    [sym_immutable] = ACTIONS(4770),
    [sym_import] = ACTIONS(4770),
    [sym_inout] = ACTIONS(4770),
    [sym_interface] = ACTIONS(4770),
    [sym_invariant] = ACTIONS(4770),
    [sym_mixin] = ACTIONS(4770),
    [sym_nothrow] = ACTIONS(4770),
    [sym_override] = ACTIONS(4770),
    [sym_package] = ACTIONS(4770),
    [sym_pragma] = ACTIONS(4770),
    [sym_private] = ACTIONS(4770),
    [sym_protected] = ACTIONS(4770),
    [sym_public] = ACTIONS(4770),
    [sym_pure] = ACTIONS(4770),
    [sym_ref] = ACTIONS(4770),
    [sym_return] = ACTIONS(4770),
    [sym_scope] = ACTIONS(4770),
    [sym_shared] = ACTIONS(4770),
    [sym_static] = ACTIONS(4770),
    [sym_struct] = ACTIONS(4770),
    [sym_synchronized] = ACTIONS(4770),
    [sym_template] = ACTIONS(4770),
    [sym_typeof] = ACTIONS(4770),
    [sym_union] = ACTIONS(4770),
    [sym_unittest] = ACTIONS(4770),
    [sym_version] = ACTIONS(4770),
    [sym_while] = ACTIONS(4770),
    [sym_gshared] = ACTIONS(4770),
    [sym_traits] = ACTIONS(4770),
    [sym_vector] = ACTIONS(4770),
    [sym_void] = ACTIONS(4770),
    [sym_directive] = ACTIONS(3),
  },
  [2585] = {
    [sym_identifier] = ACTIONS(4766),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4768),
    [anon_sym_SEMI] = ACTIONS(4768),
    [anon_sym_TILDE] = ACTIONS(4768),
    [anon_sym_AT] = ACTIONS(4768),
    [sym_bool] = ACTIONS(4766),
    [sym_byte] = ACTIONS(4766),
    [sym_ubyte] = ACTIONS(4766),
    [sym_char] = ACTIONS(4766),
    [sym_short] = ACTIONS(4766),
    [sym_ushort] = ACTIONS(4766),
    [sym_int] = ACTIONS(4766),
    [sym_uint] = ACTIONS(4766),
    [sym_long] = ACTIONS(4766),
    [sym_ulong] = ACTIONS(4766),
    [sym_cent] = ACTIONS(4766),
    [sym_ucent] = ACTIONS(4766),
    [sym_wchar] = ACTIONS(4766),
    [sym_dchar] = ACTIONS(4766),
    [sym_float] = ACTIONS(4766),
    [sym_double] = ACTIONS(4766),
    [sym_real] = ACTIONS(4766),
    [sym_ifloat] = ACTIONS(4766),
    [sym_idouble] = ACTIONS(4766),
    [sym_ireal] = ACTIONS(4766),
    [sym_cfloat] = ACTIONS(4766),
    [sym_cdouble] = ACTIONS(4766),
    [sym_creal] = ACTIONS(4766),
    [sym_size_t] = ACTIONS(4766),
    [sym_ptrdiff_t] = ACTIONS(4766),
    [sym_string] = ACTIONS(4766),
    [sym_cstring] = ACTIONS(4766),
    [sym_dstring] = ACTIONS(4766),
    [sym_wstring] = ACTIONS(4766),
    [sym_noreturn] = ACTIONS(4766),
    [sym_this] = ACTIONS(4766),
    [sym_abstract] = ACTIONS(4766),
    [sym_alias] = ACTIONS(4766),
    [sym_align] = ACTIONS(4766),
    [sym_auto] = ACTIONS(4766),
    [sym_catch] = ACTIONS(4766),
    [sym_class] = ACTIONS(4766),
    [sym_const] = ACTIONS(4766),
    [sym_debug] = ACTIONS(4766),
    [sym_deprecated] = ACTIONS(4766),
    [sym_else] = ACTIONS(4766),
    [sym_enum] = ACTIONS(4766),
    [sym_export] = ACTIONS(4766),
    [sym_extern] = ACTIONS(4766),
    [sym_final] = ACTIONS(4766),
    [sym_finally] = ACTIONS(4766),
    [sym_immutable] = ACTIONS(4766),
    [sym_import] = ACTIONS(4766),
    [sym_inout] = ACTIONS(4766),
    [sym_interface] = ACTIONS(4766),
    [sym_invariant] = ACTIONS(4766),
    [sym_mixin] = ACTIONS(4766),
    [sym_nothrow] = ACTIONS(4766),
    [sym_override] = ACTIONS(4766),
    [sym_package] = ACTIONS(4766),
    [sym_pragma] = ACTIONS(4766),
    [sym_private] = ACTIONS(4766),
    [sym_protected] = ACTIONS(4766),
    [sym_public] = ACTIONS(4766),
    [sym_pure] = ACTIONS(4766),
    [sym_ref] = ACTIONS(4766),
    [sym_return] = ACTIONS(4766),
    [sym_scope] = ACTIONS(4766),
    [sym_shared] = ACTIONS(4766),
    [sym_static] = ACTIONS(4766),
    [sym_struct] = ACTIONS(4766),
    [sym_synchronized] = ACTIONS(4766),
    [sym_template] = ACTIONS(4766),
    [sym_typeof] = ACTIONS(4766),
    [sym_union] = ACTIONS(4766),
    [sym_unittest] = ACTIONS(4766),
    [sym_version] = ACTIONS(4766),
    [sym_while] = ACTIONS(4766),
    [sym_gshared] = ACTIONS(4766),
    [sym_traits] = ACTIONS(4766),
    [sym_vector] = ACTIONS(4766),
    [sym_void] = ACTIONS(4766),
    [sym_directive] = ACTIONS(3),
  },
  [2586] = {
    [ts_builtin_sym_end] = ACTIONS(4790),
    [sym_identifier] = ACTIONS(4788),
    [sym_end_file] = ACTIONS(4788),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4790),
    [anon_sym_SEMI] = ACTIONS(4790),
    [anon_sym_TILDE] = ACTIONS(4790),
    [anon_sym_AT] = ACTIONS(4790),
    [sym_bool] = ACTIONS(4788),
    [sym_byte] = ACTIONS(4788),
    [sym_ubyte] = ACTIONS(4788),
    [sym_char] = ACTIONS(4788),
    [sym_short] = ACTIONS(4788),
    [sym_ushort] = ACTIONS(4788),
    [sym_int] = ACTIONS(4788),
    [sym_uint] = ACTIONS(4788),
    [sym_long] = ACTIONS(4788),
    [sym_ulong] = ACTIONS(4788),
    [sym_cent] = ACTIONS(4788),
    [sym_ucent] = ACTIONS(4788),
    [sym_wchar] = ACTIONS(4788),
    [sym_dchar] = ACTIONS(4788),
    [sym_float] = ACTIONS(4788),
    [sym_double] = ACTIONS(4788),
    [sym_real] = ACTIONS(4788),
    [sym_ifloat] = ACTIONS(4788),
    [sym_idouble] = ACTIONS(4788),
    [sym_ireal] = ACTIONS(4788),
    [sym_cfloat] = ACTIONS(4788),
    [sym_cdouble] = ACTIONS(4788),
    [sym_creal] = ACTIONS(4788),
    [sym_size_t] = ACTIONS(4788),
    [sym_ptrdiff_t] = ACTIONS(4788),
    [sym_string] = ACTIONS(4788),
    [sym_cstring] = ACTIONS(4788),
    [sym_dstring] = ACTIONS(4788),
    [sym_wstring] = ACTIONS(4788),
    [sym_noreturn] = ACTIONS(4788),
    [sym_this] = ACTIONS(4788),
    [sym_abstract] = ACTIONS(4788),
    [sym_alias] = ACTIONS(4788),
    [sym_align] = ACTIONS(4788),
    [sym_auto] = ACTIONS(4788),
    [sym_class] = ACTIONS(4788),
    [sym_const] = ACTIONS(4788),
    [sym_debug] = ACTIONS(4788),
    [sym_deprecated] = ACTIONS(4788),
    [sym_else] = ACTIONS(4788),
    [sym_enum] = ACTIONS(4788),
    [sym_export] = ACTIONS(4788),
    [sym_extern] = ACTIONS(4788),
    [sym_final] = ACTIONS(4788),
    [sym_immutable] = ACTIONS(4788),
    [sym_import] = ACTIONS(4788),
    [sym_inout] = ACTIONS(4788),
    [sym_interface] = ACTIONS(4788),
    [sym_invariant] = ACTIONS(4788),
    [sym_mixin] = ACTIONS(4788),
    [sym_nothrow] = ACTIONS(4788),
    [sym_override] = ACTIONS(4788),
    [sym_package] = ACTIONS(4788),
    [sym_pragma] = ACTIONS(4788),
    [sym_private] = ACTIONS(4788),
    [sym_protected] = ACTIONS(4788),
    [sym_public] = ACTIONS(4788),
    [sym_pure] = ACTIONS(4788),
    [sym_ref] = ACTIONS(4788),
    [sym_return] = ACTIONS(4788),
    [sym_scope] = ACTIONS(4788),
    [sym_shared] = ACTIONS(4788),
    [sym_static] = ACTIONS(4788),
    [sym_struct] = ACTIONS(4788),
    [sym_synchronized] = ACTIONS(4788),
    [sym_template] = ACTIONS(4788),
    [sym_typeof] = ACTIONS(4788),
    [sym_union] = ACTIONS(4788),
    [sym_unittest] = ACTIONS(4788),
    [sym_version] = ACTIONS(4788),
    [sym_while] = ACTIONS(4788),
    [sym_gshared] = ACTIONS(4788),
    [sym_traits] = ACTIONS(4788),
    [sym_vector] = ACTIONS(4788),
    [sym_void] = ACTIONS(4788),
    [sym_directive] = ACTIONS(3),
  },
  [2587] = {
    [ts_builtin_sym_end] = ACTIONS(4718),
    [sym_identifier] = ACTIONS(4716),
    [sym_end_file] = ACTIONS(4716),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4718),
    [anon_sym_SEMI] = ACTIONS(4718),
    [anon_sym_TILDE] = ACTIONS(4718),
    [anon_sym_AT] = ACTIONS(4718),
    [sym_bool] = ACTIONS(4716),
    [sym_byte] = ACTIONS(4716),
    [sym_ubyte] = ACTIONS(4716),
    [sym_char] = ACTIONS(4716),
    [sym_short] = ACTIONS(4716),
    [sym_ushort] = ACTIONS(4716),
    [sym_int] = ACTIONS(4716),
    [sym_uint] = ACTIONS(4716),
    [sym_long] = ACTIONS(4716),
    [sym_ulong] = ACTIONS(4716),
    [sym_cent] = ACTIONS(4716),
    [sym_ucent] = ACTIONS(4716),
    [sym_wchar] = ACTIONS(4716),
    [sym_dchar] = ACTIONS(4716),
    [sym_float] = ACTIONS(4716),
    [sym_double] = ACTIONS(4716),
    [sym_real] = ACTIONS(4716),
    [sym_ifloat] = ACTIONS(4716),
    [sym_idouble] = ACTIONS(4716),
    [sym_ireal] = ACTIONS(4716),
    [sym_cfloat] = ACTIONS(4716),
    [sym_cdouble] = ACTIONS(4716),
    [sym_creal] = ACTIONS(4716),
    [sym_size_t] = ACTIONS(4716),
    [sym_ptrdiff_t] = ACTIONS(4716),
    [sym_string] = ACTIONS(4716),
    [sym_cstring] = ACTIONS(4716),
    [sym_dstring] = ACTIONS(4716),
    [sym_wstring] = ACTIONS(4716),
    [sym_noreturn] = ACTIONS(4716),
    [sym_this] = ACTIONS(4716),
    [sym_abstract] = ACTIONS(4716),
    [sym_alias] = ACTIONS(4716),
    [sym_align] = ACTIONS(4716),
    [sym_auto] = ACTIONS(4716),
    [sym_class] = ACTIONS(4716),
    [sym_const] = ACTIONS(4716),
    [sym_debug] = ACTIONS(4716),
    [sym_deprecated] = ACTIONS(4716),
    [sym_else] = ACTIONS(4716),
    [sym_enum] = ACTIONS(4716),
    [sym_export] = ACTIONS(4716),
    [sym_extern] = ACTIONS(4716),
    [sym_final] = ACTIONS(4716),
    [sym_immutable] = ACTIONS(4716),
    [sym_import] = ACTIONS(4716),
    [sym_inout] = ACTIONS(4716),
    [sym_interface] = ACTIONS(4716),
    [sym_invariant] = ACTIONS(4716),
    [sym_mixin] = ACTIONS(4716),
    [sym_nothrow] = ACTIONS(4716),
    [sym_override] = ACTIONS(4716),
    [sym_package] = ACTIONS(4716),
    [sym_pragma] = ACTIONS(4716),
    [sym_private] = ACTIONS(4716),
    [sym_protected] = ACTIONS(4716),
    [sym_public] = ACTIONS(4716),
    [sym_pure] = ACTIONS(4716),
    [sym_ref] = ACTIONS(4716),
    [sym_return] = ACTIONS(4716),
    [sym_scope] = ACTIONS(4716),
    [sym_shared] = ACTIONS(4716),
    [sym_static] = ACTIONS(4716),
    [sym_struct] = ACTIONS(4716),
    [sym_synchronized] = ACTIONS(4716),
    [sym_template] = ACTIONS(4716),
    [sym_typeof] = ACTIONS(4716),
    [sym_union] = ACTIONS(4716),
    [sym_unittest] = ACTIONS(4716),
    [sym_version] = ACTIONS(4716),
    [sym_while] = ACTIONS(4716),
    [sym_gshared] = ACTIONS(4716),
    [sym_traits] = ACTIONS(4716),
    [sym_vector] = ACTIONS(4716),
    [sym_void] = ACTIONS(4716),
    [sym_directive] = ACTIONS(3),
  },
  [2588] = {
    [sym_identifier] = ACTIONS(4570),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4572),
    [anon_sym_SEMI] = ACTIONS(4572),
    [anon_sym_TILDE] = ACTIONS(4572),
    [anon_sym_AT] = ACTIONS(4572),
    [sym_bool] = ACTIONS(4570),
    [sym_byte] = ACTIONS(4570),
    [sym_ubyte] = ACTIONS(4570),
    [sym_char] = ACTIONS(4570),
    [sym_short] = ACTIONS(4570),
    [sym_ushort] = ACTIONS(4570),
    [sym_int] = ACTIONS(4570),
    [sym_uint] = ACTIONS(4570),
    [sym_long] = ACTIONS(4570),
    [sym_ulong] = ACTIONS(4570),
    [sym_cent] = ACTIONS(4570),
    [sym_ucent] = ACTIONS(4570),
    [sym_wchar] = ACTIONS(4570),
    [sym_dchar] = ACTIONS(4570),
    [sym_float] = ACTIONS(4570),
    [sym_double] = ACTIONS(4570),
    [sym_real] = ACTIONS(4570),
    [sym_ifloat] = ACTIONS(4570),
    [sym_idouble] = ACTIONS(4570),
    [sym_ireal] = ACTIONS(4570),
    [sym_cfloat] = ACTIONS(4570),
    [sym_cdouble] = ACTIONS(4570),
    [sym_creal] = ACTIONS(4570),
    [sym_size_t] = ACTIONS(4570),
    [sym_ptrdiff_t] = ACTIONS(4570),
    [sym_string] = ACTIONS(4570),
    [sym_cstring] = ACTIONS(4570),
    [sym_dstring] = ACTIONS(4570),
    [sym_wstring] = ACTIONS(4570),
    [sym_noreturn] = ACTIONS(4570),
    [sym_this] = ACTIONS(4570),
    [sym_abstract] = ACTIONS(4570),
    [sym_alias] = ACTIONS(4570),
    [sym_align] = ACTIONS(4570),
    [sym_auto] = ACTIONS(4570),
    [sym_catch] = ACTIONS(4570),
    [sym_class] = ACTIONS(4570),
    [sym_const] = ACTIONS(4570),
    [sym_debug] = ACTIONS(4570),
    [sym_deprecated] = ACTIONS(4570),
    [sym_else] = ACTIONS(4570),
    [sym_enum] = ACTIONS(4570),
    [sym_export] = ACTIONS(4570),
    [sym_extern] = ACTIONS(4570),
    [sym_final] = ACTIONS(4570),
    [sym_finally] = ACTIONS(4570),
    [sym_immutable] = ACTIONS(4570),
    [sym_import] = ACTIONS(4570),
    [sym_inout] = ACTIONS(4570),
    [sym_interface] = ACTIONS(4570),
    [sym_invariant] = ACTIONS(4570),
    [sym_mixin] = ACTIONS(4570),
    [sym_nothrow] = ACTIONS(4570),
    [sym_override] = ACTIONS(4570),
    [sym_package] = ACTIONS(4570),
    [sym_pragma] = ACTIONS(4570),
    [sym_private] = ACTIONS(4570),
    [sym_protected] = ACTIONS(4570),
    [sym_public] = ACTIONS(4570),
    [sym_pure] = ACTIONS(4570),
    [sym_ref] = ACTIONS(4570),
    [sym_return] = ACTIONS(4570),
    [sym_scope] = ACTIONS(4570),
    [sym_shared] = ACTIONS(4570),
    [sym_static] = ACTIONS(4570),
    [sym_struct] = ACTIONS(4570),
    [sym_synchronized] = ACTIONS(4570),
    [sym_template] = ACTIONS(4570),
    [sym_typeof] = ACTIONS(4570),
    [sym_union] = ACTIONS(4570),
    [sym_unittest] = ACTIONS(4570),
    [sym_version] = ACTIONS(4570),
    [sym_while] = ACTIONS(4570),
    [sym_gshared] = ACTIONS(4570),
    [sym_traits] = ACTIONS(4570),
    [sym_vector] = ACTIONS(4570),
    [sym_void] = ACTIONS(4570),
    [sym_directive] = ACTIONS(3),
  },
  [2589] = {
    [sym_identifier] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2643),
    [anon_sym_AT] = ACTIONS(2643),
    [sym_bool] = ACTIONS(2645),
    [sym_byte] = ACTIONS(2645),
    [sym_ubyte] = ACTIONS(2645),
    [sym_char] = ACTIONS(2645),
    [sym_short] = ACTIONS(2645),
    [sym_ushort] = ACTIONS(2645),
    [sym_int] = ACTIONS(2645),
    [sym_uint] = ACTIONS(2645),
    [sym_long] = ACTIONS(2645),
    [sym_ulong] = ACTIONS(2645),
    [sym_cent] = ACTIONS(2645),
    [sym_ucent] = ACTIONS(2645),
    [sym_wchar] = ACTIONS(2645),
    [sym_dchar] = ACTIONS(2645),
    [sym_float] = ACTIONS(2645),
    [sym_double] = ACTIONS(2645),
    [sym_real] = ACTIONS(2645),
    [sym_ifloat] = ACTIONS(2645),
    [sym_idouble] = ACTIONS(2645),
    [sym_ireal] = ACTIONS(2645),
    [sym_cfloat] = ACTIONS(2645),
    [sym_cdouble] = ACTIONS(2645),
    [sym_creal] = ACTIONS(2645),
    [sym_size_t] = ACTIONS(2645),
    [sym_ptrdiff_t] = ACTIONS(2645),
    [sym_string] = ACTIONS(2645),
    [sym_cstring] = ACTIONS(2645),
    [sym_dstring] = ACTIONS(2645),
    [sym_wstring] = ACTIONS(2645),
    [sym_noreturn] = ACTIONS(2645),
    [sym_this] = ACTIONS(2645),
    [sym_abstract] = ACTIONS(2645),
    [sym_alias] = ACTIONS(2645),
    [sym_align] = ACTIONS(2645),
    [sym_auto] = ACTIONS(2645),
    [sym_catch] = ACTIONS(2645),
    [sym_class] = ACTIONS(2645),
    [sym_const] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(2645),
    [sym_export] = ACTIONS(2645),
    [sym_extern] = ACTIONS(2645),
    [sym_final] = ACTIONS(2645),
    [sym_finally] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(2645),
    [sym_import] = ACTIONS(2645),
    [sym_inout] = ACTIONS(2645),
    [sym_interface] = ACTIONS(2645),
    [sym_invariant] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(2645),
    [sym_override] = ACTIONS(2645),
    [sym_package] = ACTIONS(2645),
    [sym_pragma] = ACTIONS(2645),
    [sym_private] = ACTIONS(2645),
    [sym_protected] = ACTIONS(2645),
    [sym_public] = ACTIONS(2645),
    [sym_pure] = ACTIONS(2645),
    [sym_ref] = ACTIONS(2645),
    [sym_return] = ACTIONS(2645),
    [sym_scope] = ACTIONS(2645),
    [sym_shared] = ACTIONS(2645),
    [sym_static] = ACTIONS(2645),
    [sym_struct] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(2645),
    [sym_template] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(2645),
    [sym_union] = ACTIONS(2645),
    [sym_unittest] = ACTIONS(2645),
    [sym_version] = ACTIONS(2645),
    [sym_while] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(2645),
    [sym_traits] = ACTIONS(2645),
    [sym_vector] = ACTIONS(2645),
    [sym_void] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
  },
  [2590] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_catch] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_finally] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
  },
  [2591] = {
    [ts_builtin_sym_end] = ACTIONS(5030),
    [sym_identifier] = ACTIONS(5028),
    [sym_end_file] = ACTIONS(5028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5030),
    [anon_sym_SEMI] = ACTIONS(5030),
    [anon_sym_TILDE] = ACTIONS(5030),
    [anon_sym_AT] = ACTIONS(5030),
    [sym_bool] = ACTIONS(5028),
    [sym_byte] = ACTIONS(5028),
    [sym_ubyte] = ACTIONS(5028),
    [sym_char] = ACTIONS(5028),
    [sym_short] = ACTIONS(5028),
    [sym_ushort] = ACTIONS(5028),
    [sym_int] = ACTIONS(5028),
    [sym_uint] = ACTIONS(5028),
    [sym_long] = ACTIONS(5028),
    [sym_ulong] = ACTIONS(5028),
    [sym_cent] = ACTIONS(5028),
    [sym_ucent] = ACTIONS(5028),
    [sym_wchar] = ACTIONS(5028),
    [sym_dchar] = ACTIONS(5028),
    [sym_float] = ACTIONS(5028),
    [sym_double] = ACTIONS(5028),
    [sym_real] = ACTIONS(5028),
    [sym_ifloat] = ACTIONS(5028),
    [sym_idouble] = ACTIONS(5028),
    [sym_ireal] = ACTIONS(5028),
    [sym_cfloat] = ACTIONS(5028),
    [sym_cdouble] = ACTIONS(5028),
    [sym_creal] = ACTIONS(5028),
    [sym_size_t] = ACTIONS(5028),
    [sym_ptrdiff_t] = ACTIONS(5028),
    [sym_string] = ACTIONS(5028),
    [sym_cstring] = ACTIONS(5028),
    [sym_dstring] = ACTIONS(5028),
    [sym_wstring] = ACTIONS(5028),
    [sym_noreturn] = ACTIONS(5028),
    [sym_this] = ACTIONS(5028),
    [sym_abstract] = ACTIONS(5028),
    [sym_alias] = ACTIONS(5028),
    [sym_align] = ACTIONS(5028),
    [sym_auto] = ACTIONS(5028),
    [sym_class] = ACTIONS(5028),
    [sym_const] = ACTIONS(5028),
    [sym_debug] = ACTIONS(5028),
    [sym_deprecated] = ACTIONS(5028),
    [sym_else] = ACTIONS(5028),
    [sym_enum] = ACTIONS(5028),
    [sym_export] = ACTIONS(5028),
    [sym_extern] = ACTIONS(5028),
    [sym_final] = ACTIONS(5028),
    [sym_immutable] = ACTIONS(5028),
    [sym_import] = ACTIONS(5028),
    [sym_inout] = ACTIONS(5028),
    [sym_interface] = ACTIONS(5028),
    [sym_invariant] = ACTIONS(5028),
    [sym_mixin] = ACTIONS(5028),
    [sym_nothrow] = ACTIONS(5028),
    [sym_override] = ACTIONS(5028),
    [sym_package] = ACTIONS(5028),
    [sym_pragma] = ACTIONS(5028),
    [sym_private] = ACTIONS(5028),
    [sym_protected] = ACTIONS(5028),
    [sym_public] = ACTIONS(5028),
    [sym_pure] = ACTIONS(5028),
    [sym_ref] = ACTIONS(5028),
    [sym_return] = ACTIONS(5028),
    [sym_scope] = ACTIONS(5028),
    [sym_shared] = ACTIONS(5028),
    [sym_static] = ACTIONS(5028),
    [sym_struct] = ACTIONS(5028),
    [sym_synchronized] = ACTIONS(5028),
    [sym_template] = ACTIONS(5028),
    [sym_typeof] = ACTIONS(5028),
    [sym_union] = ACTIONS(5028),
    [sym_unittest] = ACTIONS(5028),
    [sym_version] = ACTIONS(5028),
    [sym_while] = ACTIONS(5028),
    [sym_gshared] = ACTIONS(5028),
    [sym_traits] = ACTIONS(5028),
    [sym_vector] = ACTIONS(5028),
    [sym_void] = ACTIONS(5028),
    [sym_directive] = ACTIONS(3),
  },
  [2592] = {
    [ts_builtin_sym_end] = ACTIONS(4972),
    [sym_identifier] = ACTIONS(4970),
    [sym_end_file] = ACTIONS(4970),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4972),
    [anon_sym_SEMI] = ACTIONS(4972),
    [anon_sym_TILDE] = ACTIONS(4972),
    [anon_sym_AT] = ACTIONS(4972),
    [sym_bool] = ACTIONS(4970),
    [sym_byte] = ACTIONS(4970),
    [sym_ubyte] = ACTIONS(4970),
    [sym_char] = ACTIONS(4970),
    [sym_short] = ACTIONS(4970),
    [sym_ushort] = ACTIONS(4970),
    [sym_int] = ACTIONS(4970),
    [sym_uint] = ACTIONS(4970),
    [sym_long] = ACTIONS(4970),
    [sym_ulong] = ACTIONS(4970),
    [sym_cent] = ACTIONS(4970),
    [sym_ucent] = ACTIONS(4970),
    [sym_wchar] = ACTIONS(4970),
    [sym_dchar] = ACTIONS(4970),
    [sym_float] = ACTIONS(4970),
    [sym_double] = ACTIONS(4970),
    [sym_real] = ACTIONS(4970),
    [sym_ifloat] = ACTIONS(4970),
    [sym_idouble] = ACTIONS(4970),
    [sym_ireal] = ACTIONS(4970),
    [sym_cfloat] = ACTIONS(4970),
    [sym_cdouble] = ACTIONS(4970),
    [sym_creal] = ACTIONS(4970),
    [sym_size_t] = ACTIONS(4970),
    [sym_ptrdiff_t] = ACTIONS(4970),
    [sym_string] = ACTIONS(4970),
    [sym_cstring] = ACTIONS(4970),
    [sym_dstring] = ACTIONS(4970),
    [sym_wstring] = ACTIONS(4970),
    [sym_noreturn] = ACTIONS(4970),
    [sym_this] = ACTIONS(4970),
    [sym_abstract] = ACTIONS(4970),
    [sym_alias] = ACTIONS(4970),
    [sym_align] = ACTIONS(4970),
    [sym_auto] = ACTIONS(4970),
    [sym_class] = ACTIONS(4970),
    [sym_const] = ACTIONS(4970),
    [sym_debug] = ACTIONS(4970),
    [sym_deprecated] = ACTIONS(4970),
    [sym_else] = ACTIONS(4970),
    [sym_enum] = ACTIONS(4970),
    [sym_export] = ACTIONS(4970),
    [sym_extern] = ACTIONS(4970),
    [sym_final] = ACTIONS(4970),
    [sym_immutable] = ACTIONS(4970),
    [sym_import] = ACTIONS(4970),
    [sym_inout] = ACTIONS(4970),
    [sym_interface] = ACTIONS(4970),
    [sym_invariant] = ACTIONS(4970),
    [sym_mixin] = ACTIONS(4970),
    [sym_nothrow] = ACTIONS(4970),
    [sym_override] = ACTIONS(4970),
    [sym_package] = ACTIONS(4970),
    [sym_pragma] = ACTIONS(4970),
    [sym_private] = ACTIONS(4970),
    [sym_protected] = ACTIONS(4970),
    [sym_public] = ACTIONS(4970),
    [sym_pure] = ACTIONS(4970),
    [sym_ref] = ACTIONS(4970),
    [sym_return] = ACTIONS(4970),
    [sym_scope] = ACTIONS(4970),
    [sym_shared] = ACTIONS(4970),
    [sym_static] = ACTIONS(4970),
    [sym_struct] = ACTIONS(4970),
    [sym_synchronized] = ACTIONS(4970),
    [sym_template] = ACTIONS(4970),
    [sym_typeof] = ACTIONS(4970),
    [sym_union] = ACTIONS(4970),
    [sym_unittest] = ACTIONS(4970),
    [sym_version] = ACTIONS(4970),
    [sym_while] = ACTIONS(4970),
    [sym_gshared] = ACTIONS(4970),
    [sym_traits] = ACTIONS(4970),
    [sym_vector] = ACTIONS(4970),
    [sym_void] = ACTIONS(4970),
    [sym_directive] = ACTIONS(3),
  },
  [2593] = {
    [ts_builtin_sym_end] = ACTIONS(4980),
    [sym_identifier] = ACTIONS(4978),
    [sym_end_file] = ACTIONS(4978),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4980),
    [anon_sym_SEMI] = ACTIONS(4980),
    [anon_sym_TILDE] = ACTIONS(4980),
    [anon_sym_AT] = ACTIONS(4980),
    [sym_bool] = ACTIONS(4978),
    [sym_byte] = ACTIONS(4978),
    [sym_ubyte] = ACTIONS(4978),
    [sym_char] = ACTIONS(4978),
    [sym_short] = ACTIONS(4978),
    [sym_ushort] = ACTIONS(4978),
    [sym_int] = ACTIONS(4978),
    [sym_uint] = ACTIONS(4978),
    [sym_long] = ACTIONS(4978),
    [sym_ulong] = ACTIONS(4978),
    [sym_cent] = ACTIONS(4978),
    [sym_ucent] = ACTIONS(4978),
    [sym_wchar] = ACTIONS(4978),
    [sym_dchar] = ACTIONS(4978),
    [sym_float] = ACTIONS(4978),
    [sym_double] = ACTIONS(4978),
    [sym_real] = ACTIONS(4978),
    [sym_ifloat] = ACTIONS(4978),
    [sym_idouble] = ACTIONS(4978),
    [sym_ireal] = ACTIONS(4978),
    [sym_cfloat] = ACTIONS(4978),
    [sym_cdouble] = ACTIONS(4978),
    [sym_creal] = ACTIONS(4978),
    [sym_size_t] = ACTIONS(4978),
    [sym_ptrdiff_t] = ACTIONS(4978),
    [sym_string] = ACTIONS(4978),
    [sym_cstring] = ACTIONS(4978),
    [sym_dstring] = ACTIONS(4978),
    [sym_wstring] = ACTIONS(4978),
    [sym_noreturn] = ACTIONS(4978),
    [sym_this] = ACTIONS(4978),
    [sym_abstract] = ACTIONS(4978),
    [sym_alias] = ACTIONS(4978),
    [sym_align] = ACTIONS(4978),
    [sym_auto] = ACTIONS(4978),
    [sym_class] = ACTIONS(4978),
    [sym_const] = ACTIONS(4978),
    [sym_debug] = ACTIONS(4978),
    [sym_deprecated] = ACTIONS(4978),
    [sym_else] = ACTIONS(4978),
    [sym_enum] = ACTIONS(4978),
    [sym_export] = ACTIONS(4978),
    [sym_extern] = ACTIONS(4978),
    [sym_final] = ACTIONS(4978),
    [sym_immutable] = ACTIONS(4978),
    [sym_import] = ACTIONS(4978),
    [sym_inout] = ACTIONS(4978),
    [sym_interface] = ACTIONS(4978),
    [sym_invariant] = ACTIONS(4978),
    [sym_mixin] = ACTIONS(4978),
    [sym_nothrow] = ACTIONS(4978),
    [sym_override] = ACTIONS(4978),
    [sym_package] = ACTIONS(4978),
    [sym_pragma] = ACTIONS(4978),
    [sym_private] = ACTIONS(4978),
    [sym_protected] = ACTIONS(4978),
    [sym_public] = ACTIONS(4978),
    [sym_pure] = ACTIONS(4978),
    [sym_ref] = ACTIONS(4978),
    [sym_return] = ACTIONS(4978),
    [sym_scope] = ACTIONS(4978),
    [sym_shared] = ACTIONS(4978),
    [sym_static] = ACTIONS(4978),
    [sym_struct] = ACTIONS(4978),
    [sym_synchronized] = ACTIONS(4978),
    [sym_template] = ACTIONS(4978),
    [sym_typeof] = ACTIONS(4978),
    [sym_union] = ACTIONS(4978),
    [sym_unittest] = ACTIONS(4978),
    [sym_version] = ACTIONS(4978),
    [sym_while] = ACTIONS(4978),
    [sym_gshared] = ACTIONS(4978),
    [sym_traits] = ACTIONS(4978),
    [sym_vector] = ACTIONS(4978),
    [sym_void] = ACTIONS(4978),
    [sym_directive] = ACTIONS(3),
  },
  [2594] = {
    [ts_builtin_sym_end] = ACTIONS(4984),
    [sym_identifier] = ACTIONS(4982),
    [sym_end_file] = ACTIONS(4982),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4984),
    [anon_sym_SEMI] = ACTIONS(4984),
    [anon_sym_TILDE] = ACTIONS(4984),
    [anon_sym_AT] = ACTIONS(4984),
    [sym_bool] = ACTIONS(4982),
    [sym_byte] = ACTIONS(4982),
    [sym_ubyte] = ACTIONS(4982),
    [sym_char] = ACTIONS(4982),
    [sym_short] = ACTIONS(4982),
    [sym_ushort] = ACTIONS(4982),
    [sym_int] = ACTIONS(4982),
    [sym_uint] = ACTIONS(4982),
    [sym_long] = ACTIONS(4982),
    [sym_ulong] = ACTIONS(4982),
    [sym_cent] = ACTIONS(4982),
    [sym_ucent] = ACTIONS(4982),
    [sym_wchar] = ACTIONS(4982),
    [sym_dchar] = ACTIONS(4982),
    [sym_float] = ACTIONS(4982),
    [sym_double] = ACTIONS(4982),
    [sym_real] = ACTIONS(4982),
    [sym_ifloat] = ACTIONS(4982),
    [sym_idouble] = ACTIONS(4982),
    [sym_ireal] = ACTIONS(4982),
    [sym_cfloat] = ACTIONS(4982),
    [sym_cdouble] = ACTIONS(4982),
    [sym_creal] = ACTIONS(4982),
    [sym_size_t] = ACTIONS(4982),
    [sym_ptrdiff_t] = ACTIONS(4982),
    [sym_string] = ACTIONS(4982),
    [sym_cstring] = ACTIONS(4982),
    [sym_dstring] = ACTIONS(4982),
    [sym_wstring] = ACTIONS(4982),
    [sym_noreturn] = ACTIONS(4982),
    [sym_this] = ACTIONS(4982),
    [sym_abstract] = ACTIONS(4982),
    [sym_alias] = ACTIONS(4982),
    [sym_align] = ACTIONS(4982),
    [sym_auto] = ACTIONS(4982),
    [sym_class] = ACTIONS(4982),
    [sym_const] = ACTIONS(4982),
    [sym_debug] = ACTIONS(4982),
    [sym_deprecated] = ACTIONS(4982),
    [sym_else] = ACTIONS(4982),
    [sym_enum] = ACTIONS(4982),
    [sym_export] = ACTIONS(4982),
    [sym_extern] = ACTIONS(4982),
    [sym_final] = ACTIONS(4982),
    [sym_immutable] = ACTIONS(4982),
    [sym_import] = ACTIONS(4982),
    [sym_inout] = ACTIONS(4982),
    [sym_interface] = ACTIONS(4982),
    [sym_invariant] = ACTIONS(4982),
    [sym_mixin] = ACTIONS(4982),
    [sym_nothrow] = ACTIONS(4982),
    [sym_override] = ACTIONS(4982),
    [sym_package] = ACTIONS(4982),
    [sym_pragma] = ACTIONS(4982),
    [sym_private] = ACTIONS(4982),
    [sym_protected] = ACTIONS(4982),
    [sym_public] = ACTIONS(4982),
    [sym_pure] = ACTIONS(4982),
    [sym_ref] = ACTIONS(4982),
    [sym_return] = ACTIONS(4982),
    [sym_scope] = ACTIONS(4982),
    [sym_shared] = ACTIONS(4982),
    [sym_static] = ACTIONS(4982),
    [sym_struct] = ACTIONS(4982),
    [sym_synchronized] = ACTIONS(4982),
    [sym_template] = ACTIONS(4982),
    [sym_typeof] = ACTIONS(4982),
    [sym_union] = ACTIONS(4982),
    [sym_unittest] = ACTIONS(4982),
    [sym_version] = ACTIONS(4982),
    [sym_while] = ACTIONS(4982),
    [sym_gshared] = ACTIONS(4982),
    [sym_traits] = ACTIONS(4982),
    [sym_vector] = ACTIONS(4982),
    [sym_void] = ACTIONS(4982),
    [sym_directive] = ACTIONS(3),
  },
  [2595] = {
    [ts_builtin_sym_end] = ACTIONS(4988),
    [sym_identifier] = ACTIONS(4986),
    [sym_end_file] = ACTIONS(4986),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4988),
    [anon_sym_SEMI] = ACTIONS(4988),
    [anon_sym_TILDE] = ACTIONS(4988),
    [anon_sym_AT] = ACTIONS(4988),
    [sym_bool] = ACTIONS(4986),
    [sym_byte] = ACTIONS(4986),
    [sym_ubyte] = ACTIONS(4986),
    [sym_char] = ACTIONS(4986),
    [sym_short] = ACTIONS(4986),
    [sym_ushort] = ACTIONS(4986),
    [sym_int] = ACTIONS(4986),
    [sym_uint] = ACTIONS(4986),
    [sym_long] = ACTIONS(4986),
    [sym_ulong] = ACTIONS(4986),
    [sym_cent] = ACTIONS(4986),
    [sym_ucent] = ACTIONS(4986),
    [sym_wchar] = ACTIONS(4986),
    [sym_dchar] = ACTIONS(4986),
    [sym_float] = ACTIONS(4986),
    [sym_double] = ACTIONS(4986),
    [sym_real] = ACTIONS(4986),
    [sym_ifloat] = ACTIONS(4986),
    [sym_idouble] = ACTIONS(4986),
    [sym_ireal] = ACTIONS(4986),
    [sym_cfloat] = ACTIONS(4986),
    [sym_cdouble] = ACTIONS(4986),
    [sym_creal] = ACTIONS(4986),
    [sym_size_t] = ACTIONS(4986),
    [sym_ptrdiff_t] = ACTIONS(4986),
    [sym_string] = ACTIONS(4986),
    [sym_cstring] = ACTIONS(4986),
    [sym_dstring] = ACTIONS(4986),
    [sym_wstring] = ACTIONS(4986),
    [sym_noreturn] = ACTIONS(4986),
    [sym_this] = ACTIONS(4986),
    [sym_abstract] = ACTIONS(4986),
    [sym_alias] = ACTIONS(4986),
    [sym_align] = ACTIONS(4986),
    [sym_auto] = ACTIONS(4986),
    [sym_class] = ACTIONS(4986),
    [sym_const] = ACTIONS(4986),
    [sym_debug] = ACTIONS(4986),
    [sym_deprecated] = ACTIONS(4986),
    [sym_else] = ACTIONS(4986),
    [sym_enum] = ACTIONS(4986),
    [sym_export] = ACTIONS(4986),
    [sym_extern] = ACTIONS(4986),
    [sym_final] = ACTIONS(4986),
    [sym_immutable] = ACTIONS(4986),
    [sym_import] = ACTIONS(4986),
    [sym_inout] = ACTIONS(4986),
    [sym_interface] = ACTIONS(4986),
    [sym_invariant] = ACTIONS(4986),
    [sym_mixin] = ACTIONS(4986),
    [sym_nothrow] = ACTIONS(4986),
    [sym_override] = ACTIONS(4986),
    [sym_package] = ACTIONS(4986),
    [sym_pragma] = ACTIONS(4986),
    [sym_private] = ACTIONS(4986),
    [sym_protected] = ACTIONS(4986),
    [sym_public] = ACTIONS(4986),
    [sym_pure] = ACTIONS(4986),
    [sym_ref] = ACTIONS(4986),
    [sym_return] = ACTIONS(4986),
    [sym_scope] = ACTIONS(4986),
    [sym_shared] = ACTIONS(4986),
    [sym_static] = ACTIONS(4986),
    [sym_struct] = ACTIONS(4986),
    [sym_synchronized] = ACTIONS(4986),
    [sym_template] = ACTIONS(4986),
    [sym_typeof] = ACTIONS(4986),
    [sym_union] = ACTIONS(4986),
    [sym_unittest] = ACTIONS(4986),
    [sym_version] = ACTIONS(4986),
    [sym_while] = ACTIONS(4986),
    [sym_gshared] = ACTIONS(4986),
    [sym_traits] = ACTIONS(4986),
    [sym_vector] = ACTIONS(4986),
    [sym_void] = ACTIONS(4986),
    [sym_directive] = ACTIONS(3),
  },
  [2596] = {
    [ts_builtin_sym_end] = ACTIONS(4634),
    [sym_identifier] = ACTIONS(4632),
    [sym_end_file] = ACTIONS(4632),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4634),
    [anon_sym_SEMI] = ACTIONS(4634),
    [anon_sym_TILDE] = ACTIONS(4634),
    [anon_sym_AT] = ACTIONS(4634),
    [sym_bool] = ACTIONS(4632),
    [sym_byte] = ACTIONS(4632),
    [sym_ubyte] = ACTIONS(4632),
    [sym_char] = ACTIONS(4632),
    [sym_short] = ACTIONS(4632),
    [sym_ushort] = ACTIONS(4632),
    [sym_int] = ACTIONS(4632),
    [sym_uint] = ACTIONS(4632),
    [sym_long] = ACTIONS(4632),
    [sym_ulong] = ACTIONS(4632),
    [sym_cent] = ACTIONS(4632),
    [sym_ucent] = ACTIONS(4632),
    [sym_wchar] = ACTIONS(4632),
    [sym_dchar] = ACTIONS(4632),
    [sym_float] = ACTIONS(4632),
    [sym_double] = ACTIONS(4632),
    [sym_real] = ACTIONS(4632),
    [sym_ifloat] = ACTIONS(4632),
    [sym_idouble] = ACTIONS(4632),
    [sym_ireal] = ACTIONS(4632),
    [sym_cfloat] = ACTIONS(4632),
    [sym_cdouble] = ACTIONS(4632),
    [sym_creal] = ACTIONS(4632),
    [sym_size_t] = ACTIONS(4632),
    [sym_ptrdiff_t] = ACTIONS(4632),
    [sym_string] = ACTIONS(4632),
    [sym_cstring] = ACTIONS(4632),
    [sym_dstring] = ACTIONS(4632),
    [sym_wstring] = ACTIONS(4632),
    [sym_noreturn] = ACTIONS(4632),
    [sym_this] = ACTIONS(4632),
    [sym_abstract] = ACTIONS(4632),
    [sym_alias] = ACTIONS(4632),
    [sym_align] = ACTIONS(4632),
    [sym_auto] = ACTIONS(4632),
    [sym_class] = ACTIONS(4632),
    [sym_const] = ACTIONS(4632),
    [sym_debug] = ACTIONS(4632),
    [sym_deprecated] = ACTIONS(4632),
    [sym_else] = ACTIONS(4632),
    [sym_enum] = ACTIONS(4632),
    [sym_export] = ACTIONS(4632),
    [sym_extern] = ACTIONS(4632),
    [sym_final] = ACTIONS(4632),
    [sym_immutable] = ACTIONS(4632),
    [sym_import] = ACTIONS(4632),
    [sym_inout] = ACTIONS(4632),
    [sym_interface] = ACTIONS(4632),
    [sym_invariant] = ACTIONS(4632),
    [sym_mixin] = ACTIONS(4632),
    [sym_nothrow] = ACTIONS(4632),
    [sym_override] = ACTIONS(4632),
    [sym_package] = ACTIONS(4632),
    [sym_pragma] = ACTIONS(4632),
    [sym_private] = ACTIONS(4632),
    [sym_protected] = ACTIONS(4632),
    [sym_public] = ACTIONS(4632),
    [sym_pure] = ACTIONS(4632),
    [sym_ref] = ACTIONS(4632),
    [sym_return] = ACTIONS(4632),
    [sym_scope] = ACTIONS(4632),
    [sym_shared] = ACTIONS(4632),
    [sym_static] = ACTIONS(4632),
    [sym_struct] = ACTIONS(4632),
    [sym_synchronized] = ACTIONS(4632),
    [sym_template] = ACTIONS(4632),
    [sym_typeof] = ACTIONS(4632),
    [sym_union] = ACTIONS(4632),
    [sym_unittest] = ACTIONS(4632),
    [sym_version] = ACTIONS(4632),
    [sym_while] = ACTIONS(4632),
    [sym_gshared] = ACTIONS(4632),
    [sym_traits] = ACTIONS(4632),
    [sym_vector] = ACTIONS(4632),
    [sym_void] = ACTIONS(4632),
    [sym_directive] = ACTIONS(3),
  },
  [2597] = {
    [ts_builtin_sym_end] = ACTIONS(4684),
    [sym_identifier] = ACTIONS(4682),
    [sym_end_file] = ACTIONS(4682),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4684),
    [anon_sym_SEMI] = ACTIONS(4684),
    [anon_sym_TILDE] = ACTIONS(4684),
    [anon_sym_AT] = ACTIONS(4684),
    [sym_bool] = ACTIONS(4682),
    [sym_byte] = ACTIONS(4682),
    [sym_ubyte] = ACTIONS(4682),
    [sym_char] = ACTIONS(4682),
    [sym_short] = ACTIONS(4682),
    [sym_ushort] = ACTIONS(4682),
    [sym_int] = ACTIONS(4682),
    [sym_uint] = ACTIONS(4682),
    [sym_long] = ACTIONS(4682),
    [sym_ulong] = ACTIONS(4682),
    [sym_cent] = ACTIONS(4682),
    [sym_ucent] = ACTIONS(4682),
    [sym_wchar] = ACTIONS(4682),
    [sym_dchar] = ACTIONS(4682),
    [sym_float] = ACTIONS(4682),
    [sym_double] = ACTIONS(4682),
    [sym_real] = ACTIONS(4682),
    [sym_ifloat] = ACTIONS(4682),
    [sym_idouble] = ACTIONS(4682),
    [sym_ireal] = ACTIONS(4682),
    [sym_cfloat] = ACTIONS(4682),
    [sym_cdouble] = ACTIONS(4682),
    [sym_creal] = ACTIONS(4682),
    [sym_size_t] = ACTIONS(4682),
    [sym_ptrdiff_t] = ACTIONS(4682),
    [sym_string] = ACTIONS(4682),
    [sym_cstring] = ACTIONS(4682),
    [sym_dstring] = ACTIONS(4682),
    [sym_wstring] = ACTIONS(4682),
    [sym_noreturn] = ACTIONS(4682),
    [sym_this] = ACTIONS(4682),
    [sym_abstract] = ACTIONS(4682),
    [sym_alias] = ACTIONS(4682),
    [sym_align] = ACTIONS(4682),
    [sym_auto] = ACTIONS(4682),
    [sym_class] = ACTIONS(4682),
    [sym_const] = ACTIONS(4682),
    [sym_debug] = ACTIONS(4682),
    [sym_deprecated] = ACTIONS(4682),
    [sym_else] = ACTIONS(4682),
    [sym_enum] = ACTIONS(4682),
    [sym_export] = ACTIONS(4682),
    [sym_extern] = ACTIONS(4682),
    [sym_final] = ACTIONS(4682),
    [sym_immutable] = ACTIONS(4682),
    [sym_import] = ACTIONS(4682),
    [sym_inout] = ACTIONS(4682),
    [sym_interface] = ACTIONS(4682),
    [sym_invariant] = ACTIONS(4682),
    [sym_mixin] = ACTIONS(4682),
    [sym_nothrow] = ACTIONS(4682),
    [sym_override] = ACTIONS(4682),
    [sym_package] = ACTIONS(4682),
    [sym_pragma] = ACTIONS(4682),
    [sym_private] = ACTIONS(4682),
    [sym_protected] = ACTIONS(4682),
    [sym_public] = ACTIONS(4682),
    [sym_pure] = ACTIONS(4682),
    [sym_ref] = ACTIONS(4682),
    [sym_return] = ACTIONS(4682),
    [sym_scope] = ACTIONS(4682),
    [sym_shared] = ACTIONS(4682),
    [sym_static] = ACTIONS(4682),
    [sym_struct] = ACTIONS(4682),
    [sym_synchronized] = ACTIONS(4682),
    [sym_template] = ACTIONS(4682),
    [sym_typeof] = ACTIONS(4682),
    [sym_union] = ACTIONS(4682),
    [sym_unittest] = ACTIONS(4682),
    [sym_version] = ACTIONS(4682),
    [sym_while] = ACTIONS(4682),
    [sym_gshared] = ACTIONS(4682),
    [sym_traits] = ACTIONS(4682),
    [sym_vector] = ACTIONS(4682),
    [sym_void] = ACTIONS(4682),
    [sym_directive] = ACTIONS(3),
  },
  [2598] = {
    [ts_builtin_sym_end] = ACTIONS(4622),
    [sym_identifier] = ACTIONS(4620),
    [sym_end_file] = ACTIONS(4620),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4622),
    [anon_sym_SEMI] = ACTIONS(4622),
    [anon_sym_TILDE] = ACTIONS(4622),
    [anon_sym_AT] = ACTIONS(4622),
    [sym_bool] = ACTIONS(4620),
    [sym_byte] = ACTIONS(4620),
    [sym_ubyte] = ACTIONS(4620),
    [sym_char] = ACTIONS(4620),
    [sym_short] = ACTIONS(4620),
    [sym_ushort] = ACTIONS(4620),
    [sym_int] = ACTIONS(4620),
    [sym_uint] = ACTIONS(4620),
    [sym_long] = ACTIONS(4620),
    [sym_ulong] = ACTIONS(4620),
    [sym_cent] = ACTIONS(4620),
    [sym_ucent] = ACTIONS(4620),
    [sym_wchar] = ACTIONS(4620),
    [sym_dchar] = ACTIONS(4620),
    [sym_float] = ACTIONS(4620),
    [sym_double] = ACTIONS(4620),
    [sym_real] = ACTIONS(4620),
    [sym_ifloat] = ACTIONS(4620),
    [sym_idouble] = ACTIONS(4620),
    [sym_ireal] = ACTIONS(4620),
    [sym_cfloat] = ACTIONS(4620),
    [sym_cdouble] = ACTIONS(4620),
    [sym_creal] = ACTIONS(4620),
    [sym_size_t] = ACTIONS(4620),
    [sym_ptrdiff_t] = ACTIONS(4620),
    [sym_string] = ACTIONS(4620),
    [sym_cstring] = ACTIONS(4620),
    [sym_dstring] = ACTIONS(4620),
    [sym_wstring] = ACTIONS(4620),
    [sym_noreturn] = ACTIONS(4620),
    [sym_this] = ACTIONS(4620),
    [sym_abstract] = ACTIONS(4620),
    [sym_alias] = ACTIONS(4620),
    [sym_align] = ACTIONS(4620),
    [sym_auto] = ACTIONS(4620),
    [sym_class] = ACTIONS(4620),
    [sym_const] = ACTIONS(4620),
    [sym_debug] = ACTIONS(4620),
    [sym_deprecated] = ACTIONS(4620),
    [sym_else] = ACTIONS(4620),
    [sym_enum] = ACTIONS(4620),
    [sym_export] = ACTIONS(4620),
    [sym_extern] = ACTIONS(4620),
    [sym_final] = ACTIONS(4620),
    [sym_immutable] = ACTIONS(4620),
    [sym_import] = ACTIONS(4620),
    [sym_inout] = ACTIONS(4620),
    [sym_interface] = ACTIONS(4620),
    [sym_invariant] = ACTIONS(4620),
    [sym_mixin] = ACTIONS(4620),
    [sym_nothrow] = ACTIONS(4620),
    [sym_override] = ACTIONS(4620),
    [sym_package] = ACTIONS(4620),
    [sym_pragma] = ACTIONS(4620),
    [sym_private] = ACTIONS(4620),
    [sym_protected] = ACTIONS(4620),
    [sym_public] = ACTIONS(4620),
    [sym_pure] = ACTIONS(4620),
    [sym_ref] = ACTIONS(4620),
    [sym_return] = ACTIONS(4620),
    [sym_scope] = ACTIONS(4620),
    [sym_shared] = ACTIONS(4620),
    [sym_static] = ACTIONS(4620),
    [sym_struct] = ACTIONS(4620),
    [sym_synchronized] = ACTIONS(4620),
    [sym_template] = ACTIONS(4620),
    [sym_typeof] = ACTIONS(4620),
    [sym_union] = ACTIONS(4620),
    [sym_unittest] = ACTIONS(4620),
    [sym_version] = ACTIONS(4620),
    [sym_while] = ACTIONS(4620),
    [sym_gshared] = ACTIONS(4620),
    [sym_traits] = ACTIONS(4620),
    [sym_vector] = ACTIONS(4620),
    [sym_void] = ACTIONS(4620),
    [sym_directive] = ACTIONS(3),
  },
  [2599] = {
    [ts_builtin_sym_end] = ACTIONS(4357),
    [sym_identifier] = ACTIONS(4355),
    [sym_end_file] = ACTIONS(4355),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4357),
    [anon_sym_SEMI] = ACTIONS(4357),
    [anon_sym_TILDE] = ACTIONS(4357),
    [anon_sym_AT] = ACTIONS(4357),
    [sym_bool] = ACTIONS(4355),
    [sym_byte] = ACTIONS(4355),
    [sym_ubyte] = ACTIONS(4355),
    [sym_char] = ACTIONS(4355),
    [sym_short] = ACTIONS(4355),
    [sym_ushort] = ACTIONS(4355),
    [sym_int] = ACTIONS(4355),
    [sym_uint] = ACTIONS(4355),
    [sym_long] = ACTIONS(4355),
    [sym_ulong] = ACTIONS(4355),
    [sym_cent] = ACTIONS(4355),
    [sym_ucent] = ACTIONS(4355),
    [sym_wchar] = ACTIONS(4355),
    [sym_dchar] = ACTIONS(4355),
    [sym_float] = ACTIONS(4355),
    [sym_double] = ACTIONS(4355),
    [sym_real] = ACTIONS(4355),
    [sym_ifloat] = ACTIONS(4355),
    [sym_idouble] = ACTIONS(4355),
    [sym_ireal] = ACTIONS(4355),
    [sym_cfloat] = ACTIONS(4355),
    [sym_cdouble] = ACTIONS(4355),
    [sym_creal] = ACTIONS(4355),
    [sym_size_t] = ACTIONS(4355),
    [sym_ptrdiff_t] = ACTIONS(4355),
    [sym_string] = ACTIONS(4355),
    [sym_cstring] = ACTIONS(4355),
    [sym_dstring] = ACTIONS(4355),
    [sym_wstring] = ACTIONS(4355),
    [sym_noreturn] = ACTIONS(4355),
    [sym_this] = ACTIONS(4355),
    [sym_abstract] = ACTIONS(4355),
    [sym_alias] = ACTIONS(4355),
    [sym_align] = ACTIONS(4355),
    [sym_auto] = ACTIONS(4355),
    [sym_class] = ACTIONS(4355),
    [sym_const] = ACTIONS(4355),
    [sym_debug] = ACTIONS(4355),
    [sym_deprecated] = ACTIONS(4355),
    [sym_else] = ACTIONS(4355),
    [sym_enum] = ACTIONS(4355),
    [sym_export] = ACTIONS(4355),
    [sym_extern] = ACTIONS(4355),
    [sym_final] = ACTIONS(4355),
    [sym_immutable] = ACTIONS(4355),
    [sym_import] = ACTIONS(4355),
    [sym_inout] = ACTIONS(4355),
    [sym_interface] = ACTIONS(4355),
    [sym_invariant] = ACTIONS(4355),
    [sym_mixin] = ACTIONS(4355),
    [sym_nothrow] = ACTIONS(4355),
    [sym_override] = ACTIONS(4355),
    [sym_package] = ACTIONS(4355),
    [sym_pragma] = ACTIONS(4355),
    [sym_private] = ACTIONS(4355),
    [sym_protected] = ACTIONS(4355),
    [sym_public] = ACTIONS(4355),
    [sym_pure] = ACTIONS(4355),
    [sym_ref] = ACTIONS(4355),
    [sym_return] = ACTIONS(4355),
    [sym_scope] = ACTIONS(4355),
    [sym_shared] = ACTIONS(4355),
    [sym_static] = ACTIONS(4355),
    [sym_struct] = ACTIONS(4355),
    [sym_synchronized] = ACTIONS(4355),
    [sym_template] = ACTIONS(4355),
    [sym_typeof] = ACTIONS(4355),
    [sym_union] = ACTIONS(4355),
    [sym_unittest] = ACTIONS(4355),
    [sym_version] = ACTIONS(4355),
    [sym_while] = ACTIONS(4355),
    [sym_gshared] = ACTIONS(4355),
    [sym_traits] = ACTIONS(4355),
    [sym_vector] = ACTIONS(4355),
    [sym_void] = ACTIONS(4355),
    [sym_directive] = ACTIONS(3),
  },
  [2600] = {
    [ts_builtin_sym_end] = ACTIONS(4992),
    [sym_identifier] = ACTIONS(4990),
    [sym_end_file] = ACTIONS(4990),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4992),
    [anon_sym_SEMI] = ACTIONS(4992),
    [anon_sym_TILDE] = ACTIONS(4992),
    [anon_sym_AT] = ACTIONS(4992),
    [sym_bool] = ACTIONS(4990),
    [sym_byte] = ACTIONS(4990),
    [sym_ubyte] = ACTIONS(4990),
    [sym_char] = ACTIONS(4990),
    [sym_short] = ACTIONS(4990),
    [sym_ushort] = ACTIONS(4990),
    [sym_int] = ACTIONS(4990),
    [sym_uint] = ACTIONS(4990),
    [sym_long] = ACTIONS(4990),
    [sym_ulong] = ACTIONS(4990),
    [sym_cent] = ACTIONS(4990),
    [sym_ucent] = ACTIONS(4990),
    [sym_wchar] = ACTIONS(4990),
    [sym_dchar] = ACTIONS(4990),
    [sym_float] = ACTIONS(4990),
    [sym_double] = ACTIONS(4990),
    [sym_real] = ACTIONS(4990),
    [sym_ifloat] = ACTIONS(4990),
    [sym_idouble] = ACTIONS(4990),
    [sym_ireal] = ACTIONS(4990),
    [sym_cfloat] = ACTIONS(4990),
    [sym_cdouble] = ACTIONS(4990),
    [sym_creal] = ACTIONS(4990),
    [sym_size_t] = ACTIONS(4990),
    [sym_ptrdiff_t] = ACTIONS(4990),
    [sym_string] = ACTIONS(4990),
    [sym_cstring] = ACTIONS(4990),
    [sym_dstring] = ACTIONS(4990),
    [sym_wstring] = ACTIONS(4990),
    [sym_noreturn] = ACTIONS(4990),
    [sym_this] = ACTIONS(4990),
    [sym_abstract] = ACTIONS(4990),
    [sym_alias] = ACTIONS(4990),
    [sym_align] = ACTIONS(4990),
    [sym_auto] = ACTIONS(4990),
    [sym_class] = ACTIONS(4990),
    [sym_const] = ACTIONS(4990),
    [sym_debug] = ACTIONS(4990),
    [sym_deprecated] = ACTIONS(4990),
    [sym_else] = ACTIONS(4990),
    [sym_enum] = ACTIONS(4990),
    [sym_export] = ACTIONS(4990),
    [sym_extern] = ACTIONS(4990),
    [sym_final] = ACTIONS(4990),
    [sym_immutable] = ACTIONS(4990),
    [sym_import] = ACTIONS(4990),
    [sym_inout] = ACTIONS(4990),
    [sym_interface] = ACTIONS(4990),
    [sym_invariant] = ACTIONS(4990),
    [sym_mixin] = ACTIONS(4990),
    [sym_nothrow] = ACTIONS(4990),
    [sym_override] = ACTIONS(4990),
    [sym_package] = ACTIONS(4990),
    [sym_pragma] = ACTIONS(4990),
    [sym_private] = ACTIONS(4990),
    [sym_protected] = ACTIONS(4990),
    [sym_public] = ACTIONS(4990),
    [sym_pure] = ACTIONS(4990),
    [sym_ref] = ACTIONS(4990),
    [sym_return] = ACTIONS(4990),
    [sym_scope] = ACTIONS(4990),
    [sym_shared] = ACTIONS(4990),
    [sym_static] = ACTIONS(4990),
    [sym_struct] = ACTIONS(4990),
    [sym_synchronized] = ACTIONS(4990),
    [sym_template] = ACTIONS(4990),
    [sym_typeof] = ACTIONS(4990),
    [sym_union] = ACTIONS(4990),
    [sym_unittest] = ACTIONS(4990),
    [sym_version] = ACTIONS(4990),
    [sym_while] = ACTIONS(4990),
    [sym_gshared] = ACTIONS(4990),
    [sym_traits] = ACTIONS(4990),
    [sym_vector] = ACTIONS(4990),
    [sym_void] = ACTIONS(4990),
    [sym_directive] = ACTIONS(3),
  },
  [2601] = {
    [ts_builtin_sym_end] = ACTIONS(4676),
    [sym_identifier] = ACTIONS(4674),
    [sym_end_file] = ACTIONS(4674),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4676),
    [anon_sym_SEMI] = ACTIONS(4676),
    [anon_sym_TILDE] = ACTIONS(4676),
    [anon_sym_AT] = ACTIONS(4676),
    [sym_bool] = ACTIONS(4674),
    [sym_byte] = ACTIONS(4674),
    [sym_ubyte] = ACTIONS(4674),
    [sym_char] = ACTIONS(4674),
    [sym_short] = ACTIONS(4674),
    [sym_ushort] = ACTIONS(4674),
    [sym_int] = ACTIONS(4674),
    [sym_uint] = ACTIONS(4674),
    [sym_long] = ACTIONS(4674),
    [sym_ulong] = ACTIONS(4674),
    [sym_cent] = ACTIONS(4674),
    [sym_ucent] = ACTIONS(4674),
    [sym_wchar] = ACTIONS(4674),
    [sym_dchar] = ACTIONS(4674),
    [sym_float] = ACTIONS(4674),
    [sym_double] = ACTIONS(4674),
    [sym_real] = ACTIONS(4674),
    [sym_ifloat] = ACTIONS(4674),
    [sym_idouble] = ACTIONS(4674),
    [sym_ireal] = ACTIONS(4674),
    [sym_cfloat] = ACTIONS(4674),
    [sym_cdouble] = ACTIONS(4674),
    [sym_creal] = ACTIONS(4674),
    [sym_size_t] = ACTIONS(4674),
    [sym_ptrdiff_t] = ACTIONS(4674),
    [sym_string] = ACTIONS(4674),
    [sym_cstring] = ACTIONS(4674),
    [sym_dstring] = ACTIONS(4674),
    [sym_wstring] = ACTIONS(4674),
    [sym_noreturn] = ACTIONS(4674),
    [sym_this] = ACTIONS(4674),
    [sym_abstract] = ACTIONS(4674),
    [sym_alias] = ACTIONS(4674),
    [sym_align] = ACTIONS(4674),
    [sym_auto] = ACTIONS(4674),
    [sym_class] = ACTIONS(4674),
    [sym_const] = ACTIONS(4674),
    [sym_debug] = ACTIONS(4674),
    [sym_deprecated] = ACTIONS(4674),
    [sym_else] = ACTIONS(4674),
    [sym_enum] = ACTIONS(4674),
    [sym_export] = ACTIONS(4674),
    [sym_extern] = ACTIONS(4674),
    [sym_final] = ACTIONS(4674),
    [sym_immutable] = ACTIONS(4674),
    [sym_import] = ACTIONS(4674),
    [sym_inout] = ACTIONS(4674),
    [sym_interface] = ACTIONS(4674),
    [sym_invariant] = ACTIONS(4674),
    [sym_mixin] = ACTIONS(4674),
    [sym_nothrow] = ACTIONS(4674),
    [sym_override] = ACTIONS(4674),
    [sym_package] = ACTIONS(4674),
    [sym_pragma] = ACTIONS(4674),
    [sym_private] = ACTIONS(4674),
    [sym_protected] = ACTIONS(4674),
    [sym_public] = ACTIONS(4674),
    [sym_pure] = ACTIONS(4674),
    [sym_ref] = ACTIONS(4674),
    [sym_return] = ACTIONS(4674),
    [sym_scope] = ACTIONS(4674),
    [sym_shared] = ACTIONS(4674),
    [sym_static] = ACTIONS(4674),
    [sym_struct] = ACTIONS(4674),
    [sym_synchronized] = ACTIONS(4674),
    [sym_template] = ACTIONS(4674),
    [sym_typeof] = ACTIONS(4674),
    [sym_union] = ACTIONS(4674),
    [sym_unittest] = ACTIONS(4674),
    [sym_version] = ACTIONS(4674),
    [sym_while] = ACTIONS(4674),
    [sym_gshared] = ACTIONS(4674),
    [sym_traits] = ACTIONS(4674),
    [sym_vector] = ACTIONS(4674),
    [sym_void] = ACTIONS(4674),
    [sym_directive] = ACTIONS(3),
  },
  [2602] = {
    [ts_builtin_sym_end] = ACTIONS(5018),
    [sym_identifier] = ACTIONS(5016),
    [sym_end_file] = ACTIONS(5016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5018),
    [anon_sym_SEMI] = ACTIONS(5018),
    [anon_sym_TILDE] = ACTIONS(5018),
    [anon_sym_AT] = ACTIONS(5018),
    [sym_bool] = ACTIONS(5016),
    [sym_byte] = ACTIONS(5016),
    [sym_ubyte] = ACTIONS(5016),
    [sym_char] = ACTIONS(5016),
    [sym_short] = ACTIONS(5016),
    [sym_ushort] = ACTIONS(5016),
    [sym_int] = ACTIONS(5016),
    [sym_uint] = ACTIONS(5016),
    [sym_long] = ACTIONS(5016),
    [sym_ulong] = ACTIONS(5016),
    [sym_cent] = ACTIONS(5016),
    [sym_ucent] = ACTIONS(5016),
    [sym_wchar] = ACTIONS(5016),
    [sym_dchar] = ACTIONS(5016),
    [sym_float] = ACTIONS(5016),
    [sym_double] = ACTIONS(5016),
    [sym_real] = ACTIONS(5016),
    [sym_ifloat] = ACTIONS(5016),
    [sym_idouble] = ACTIONS(5016),
    [sym_ireal] = ACTIONS(5016),
    [sym_cfloat] = ACTIONS(5016),
    [sym_cdouble] = ACTIONS(5016),
    [sym_creal] = ACTIONS(5016),
    [sym_size_t] = ACTIONS(5016),
    [sym_ptrdiff_t] = ACTIONS(5016),
    [sym_string] = ACTIONS(5016),
    [sym_cstring] = ACTIONS(5016),
    [sym_dstring] = ACTIONS(5016),
    [sym_wstring] = ACTIONS(5016),
    [sym_noreturn] = ACTIONS(5016),
    [sym_this] = ACTIONS(5016),
    [sym_abstract] = ACTIONS(5016),
    [sym_alias] = ACTIONS(5016),
    [sym_align] = ACTIONS(5016),
    [sym_auto] = ACTIONS(5016),
    [sym_class] = ACTIONS(5016),
    [sym_const] = ACTIONS(5016),
    [sym_debug] = ACTIONS(5016),
    [sym_deprecated] = ACTIONS(5016),
    [sym_else] = ACTIONS(5016),
    [sym_enum] = ACTIONS(5016),
    [sym_export] = ACTIONS(5016),
    [sym_extern] = ACTIONS(5016),
    [sym_final] = ACTIONS(5016),
    [sym_immutable] = ACTIONS(5016),
    [sym_import] = ACTIONS(5016),
    [sym_inout] = ACTIONS(5016),
    [sym_interface] = ACTIONS(5016),
    [sym_invariant] = ACTIONS(5016),
    [sym_mixin] = ACTIONS(5016),
    [sym_nothrow] = ACTIONS(5016),
    [sym_override] = ACTIONS(5016),
    [sym_package] = ACTIONS(5016),
    [sym_pragma] = ACTIONS(5016),
    [sym_private] = ACTIONS(5016),
    [sym_protected] = ACTIONS(5016),
    [sym_public] = ACTIONS(5016),
    [sym_pure] = ACTIONS(5016),
    [sym_ref] = ACTIONS(5016),
    [sym_return] = ACTIONS(5016),
    [sym_scope] = ACTIONS(5016),
    [sym_shared] = ACTIONS(5016),
    [sym_static] = ACTIONS(5016),
    [sym_struct] = ACTIONS(5016),
    [sym_synchronized] = ACTIONS(5016),
    [sym_template] = ACTIONS(5016),
    [sym_typeof] = ACTIONS(5016),
    [sym_union] = ACTIONS(5016),
    [sym_unittest] = ACTIONS(5016),
    [sym_version] = ACTIONS(5016),
    [sym_while] = ACTIONS(5016),
    [sym_gshared] = ACTIONS(5016),
    [sym_traits] = ACTIONS(5016),
    [sym_vector] = ACTIONS(5016),
    [sym_void] = ACTIONS(5016),
    [sym_directive] = ACTIONS(3),
  },
  [2603] = {
    [sym_identifier] = ACTIONS(4347),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4349),
    [anon_sym_SEMI] = ACTIONS(4349),
    [anon_sym_TILDE] = ACTIONS(4349),
    [anon_sym_AT] = ACTIONS(4349),
    [sym_bool] = ACTIONS(4347),
    [sym_byte] = ACTIONS(4347),
    [sym_ubyte] = ACTIONS(4347),
    [sym_char] = ACTIONS(4347),
    [sym_short] = ACTIONS(4347),
    [sym_ushort] = ACTIONS(4347),
    [sym_int] = ACTIONS(4347),
    [sym_uint] = ACTIONS(4347),
    [sym_long] = ACTIONS(4347),
    [sym_ulong] = ACTIONS(4347),
    [sym_cent] = ACTIONS(4347),
    [sym_ucent] = ACTIONS(4347),
    [sym_wchar] = ACTIONS(4347),
    [sym_dchar] = ACTIONS(4347),
    [sym_float] = ACTIONS(4347),
    [sym_double] = ACTIONS(4347),
    [sym_real] = ACTIONS(4347),
    [sym_ifloat] = ACTIONS(4347),
    [sym_idouble] = ACTIONS(4347),
    [sym_ireal] = ACTIONS(4347),
    [sym_cfloat] = ACTIONS(4347),
    [sym_cdouble] = ACTIONS(4347),
    [sym_creal] = ACTIONS(4347),
    [sym_size_t] = ACTIONS(4347),
    [sym_ptrdiff_t] = ACTIONS(4347),
    [sym_string] = ACTIONS(4347),
    [sym_cstring] = ACTIONS(4347),
    [sym_dstring] = ACTIONS(4347),
    [sym_wstring] = ACTIONS(4347),
    [sym_noreturn] = ACTIONS(4347),
    [sym_this] = ACTIONS(4347),
    [sym_abstract] = ACTIONS(4347),
    [sym_alias] = ACTIONS(4347),
    [sym_align] = ACTIONS(4347),
    [sym_auto] = ACTIONS(4347),
    [sym_catch] = ACTIONS(4347),
    [sym_class] = ACTIONS(4347),
    [sym_const] = ACTIONS(4347),
    [sym_debug] = ACTIONS(4347),
    [sym_deprecated] = ACTIONS(4347),
    [sym_else] = ACTIONS(4347),
    [sym_enum] = ACTIONS(4347),
    [sym_export] = ACTIONS(4347),
    [sym_extern] = ACTIONS(4347),
    [sym_final] = ACTIONS(4347),
    [sym_finally] = ACTIONS(4347),
    [sym_immutable] = ACTIONS(4347),
    [sym_import] = ACTIONS(4347),
    [sym_inout] = ACTIONS(4347),
    [sym_interface] = ACTIONS(4347),
    [sym_invariant] = ACTIONS(4347),
    [sym_mixin] = ACTIONS(4347),
    [sym_nothrow] = ACTIONS(4347),
    [sym_override] = ACTIONS(4347),
    [sym_package] = ACTIONS(4347),
    [sym_pragma] = ACTIONS(4347),
    [sym_private] = ACTIONS(4347),
    [sym_protected] = ACTIONS(4347),
    [sym_public] = ACTIONS(4347),
    [sym_pure] = ACTIONS(4347),
    [sym_ref] = ACTIONS(4347),
    [sym_return] = ACTIONS(4347),
    [sym_scope] = ACTIONS(4347),
    [sym_shared] = ACTIONS(4347),
    [sym_static] = ACTIONS(4347),
    [sym_struct] = ACTIONS(4347),
    [sym_synchronized] = ACTIONS(4347),
    [sym_template] = ACTIONS(4347),
    [sym_typeof] = ACTIONS(4347),
    [sym_union] = ACTIONS(4347),
    [sym_unittest] = ACTIONS(4347),
    [sym_version] = ACTIONS(4347),
    [sym_while] = ACTIONS(4347),
    [sym_gshared] = ACTIONS(4347),
    [sym_traits] = ACTIONS(4347),
    [sym_vector] = ACTIONS(4347),
    [sym_void] = ACTIONS(4347),
    [sym_directive] = ACTIONS(3),
  },
  [2604] = {
    [ts_builtin_sym_end] = ACTIONS(5006),
    [sym_identifier] = ACTIONS(5004),
    [sym_end_file] = ACTIONS(5004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5006),
    [anon_sym_SEMI] = ACTIONS(5006),
    [anon_sym_TILDE] = ACTIONS(5006),
    [anon_sym_AT] = ACTIONS(5006),
    [sym_bool] = ACTIONS(5004),
    [sym_byte] = ACTIONS(5004),
    [sym_ubyte] = ACTIONS(5004),
    [sym_char] = ACTIONS(5004),
    [sym_short] = ACTIONS(5004),
    [sym_ushort] = ACTIONS(5004),
    [sym_int] = ACTIONS(5004),
    [sym_uint] = ACTIONS(5004),
    [sym_long] = ACTIONS(5004),
    [sym_ulong] = ACTIONS(5004),
    [sym_cent] = ACTIONS(5004),
    [sym_ucent] = ACTIONS(5004),
    [sym_wchar] = ACTIONS(5004),
    [sym_dchar] = ACTIONS(5004),
    [sym_float] = ACTIONS(5004),
    [sym_double] = ACTIONS(5004),
    [sym_real] = ACTIONS(5004),
    [sym_ifloat] = ACTIONS(5004),
    [sym_idouble] = ACTIONS(5004),
    [sym_ireal] = ACTIONS(5004),
    [sym_cfloat] = ACTIONS(5004),
    [sym_cdouble] = ACTIONS(5004),
    [sym_creal] = ACTIONS(5004),
    [sym_size_t] = ACTIONS(5004),
    [sym_ptrdiff_t] = ACTIONS(5004),
    [sym_string] = ACTIONS(5004),
    [sym_cstring] = ACTIONS(5004),
    [sym_dstring] = ACTIONS(5004),
    [sym_wstring] = ACTIONS(5004),
    [sym_noreturn] = ACTIONS(5004),
    [sym_this] = ACTIONS(5004),
    [sym_abstract] = ACTIONS(5004),
    [sym_alias] = ACTIONS(5004),
    [sym_align] = ACTIONS(5004),
    [sym_auto] = ACTIONS(5004),
    [sym_class] = ACTIONS(5004),
    [sym_const] = ACTIONS(5004),
    [sym_debug] = ACTIONS(5004),
    [sym_deprecated] = ACTIONS(5004),
    [sym_else] = ACTIONS(5004),
    [sym_enum] = ACTIONS(5004),
    [sym_export] = ACTIONS(5004),
    [sym_extern] = ACTIONS(5004),
    [sym_final] = ACTIONS(5004),
    [sym_immutable] = ACTIONS(5004),
    [sym_import] = ACTIONS(5004),
    [sym_inout] = ACTIONS(5004),
    [sym_interface] = ACTIONS(5004),
    [sym_invariant] = ACTIONS(5004),
    [sym_mixin] = ACTIONS(5004),
    [sym_nothrow] = ACTIONS(5004),
    [sym_override] = ACTIONS(5004),
    [sym_package] = ACTIONS(5004),
    [sym_pragma] = ACTIONS(5004),
    [sym_private] = ACTIONS(5004),
    [sym_protected] = ACTIONS(5004),
    [sym_public] = ACTIONS(5004),
    [sym_pure] = ACTIONS(5004),
    [sym_ref] = ACTIONS(5004),
    [sym_return] = ACTIONS(5004),
    [sym_scope] = ACTIONS(5004),
    [sym_shared] = ACTIONS(5004),
    [sym_static] = ACTIONS(5004),
    [sym_struct] = ACTIONS(5004),
    [sym_synchronized] = ACTIONS(5004),
    [sym_template] = ACTIONS(5004),
    [sym_typeof] = ACTIONS(5004),
    [sym_union] = ACTIONS(5004),
    [sym_unittest] = ACTIONS(5004),
    [sym_version] = ACTIONS(5004),
    [sym_while] = ACTIONS(5004),
    [sym_gshared] = ACTIONS(5004),
    [sym_traits] = ACTIONS(5004),
    [sym_vector] = ACTIONS(5004),
    [sym_void] = ACTIONS(5004),
    [sym_directive] = ACTIONS(3),
  },
  [2605] = {
    [ts_builtin_sym_end] = ACTIONS(5022),
    [sym_identifier] = ACTIONS(5020),
    [sym_end_file] = ACTIONS(5020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5022),
    [anon_sym_SEMI] = ACTIONS(5022),
    [anon_sym_TILDE] = ACTIONS(5022),
    [anon_sym_AT] = ACTIONS(5022),
    [sym_bool] = ACTIONS(5020),
    [sym_byte] = ACTIONS(5020),
    [sym_ubyte] = ACTIONS(5020),
    [sym_char] = ACTIONS(5020),
    [sym_short] = ACTIONS(5020),
    [sym_ushort] = ACTIONS(5020),
    [sym_int] = ACTIONS(5020),
    [sym_uint] = ACTIONS(5020),
    [sym_long] = ACTIONS(5020),
    [sym_ulong] = ACTIONS(5020),
    [sym_cent] = ACTIONS(5020),
    [sym_ucent] = ACTIONS(5020),
    [sym_wchar] = ACTIONS(5020),
    [sym_dchar] = ACTIONS(5020),
    [sym_float] = ACTIONS(5020),
    [sym_double] = ACTIONS(5020),
    [sym_real] = ACTIONS(5020),
    [sym_ifloat] = ACTIONS(5020),
    [sym_idouble] = ACTIONS(5020),
    [sym_ireal] = ACTIONS(5020),
    [sym_cfloat] = ACTIONS(5020),
    [sym_cdouble] = ACTIONS(5020),
    [sym_creal] = ACTIONS(5020),
    [sym_size_t] = ACTIONS(5020),
    [sym_ptrdiff_t] = ACTIONS(5020),
    [sym_string] = ACTIONS(5020),
    [sym_cstring] = ACTIONS(5020),
    [sym_dstring] = ACTIONS(5020),
    [sym_wstring] = ACTIONS(5020),
    [sym_noreturn] = ACTIONS(5020),
    [sym_this] = ACTIONS(5020),
    [sym_abstract] = ACTIONS(5020),
    [sym_alias] = ACTIONS(5020),
    [sym_align] = ACTIONS(5020),
    [sym_auto] = ACTIONS(5020),
    [sym_class] = ACTIONS(5020),
    [sym_const] = ACTIONS(5020),
    [sym_debug] = ACTIONS(5020),
    [sym_deprecated] = ACTIONS(5020),
    [sym_else] = ACTIONS(5020),
    [sym_enum] = ACTIONS(5020),
    [sym_export] = ACTIONS(5020),
    [sym_extern] = ACTIONS(5020),
    [sym_final] = ACTIONS(5020),
    [sym_immutable] = ACTIONS(5020),
    [sym_import] = ACTIONS(5020),
    [sym_inout] = ACTIONS(5020),
    [sym_interface] = ACTIONS(5020),
    [sym_invariant] = ACTIONS(5020),
    [sym_mixin] = ACTIONS(5020),
    [sym_nothrow] = ACTIONS(5020),
    [sym_override] = ACTIONS(5020),
    [sym_package] = ACTIONS(5020),
    [sym_pragma] = ACTIONS(5020),
    [sym_private] = ACTIONS(5020),
    [sym_protected] = ACTIONS(5020),
    [sym_public] = ACTIONS(5020),
    [sym_pure] = ACTIONS(5020),
    [sym_ref] = ACTIONS(5020),
    [sym_return] = ACTIONS(5020),
    [sym_scope] = ACTIONS(5020),
    [sym_shared] = ACTIONS(5020),
    [sym_static] = ACTIONS(5020),
    [sym_struct] = ACTIONS(5020),
    [sym_synchronized] = ACTIONS(5020),
    [sym_template] = ACTIONS(5020),
    [sym_typeof] = ACTIONS(5020),
    [sym_union] = ACTIONS(5020),
    [sym_unittest] = ACTIONS(5020),
    [sym_version] = ACTIONS(5020),
    [sym_while] = ACTIONS(5020),
    [sym_gshared] = ACTIONS(5020),
    [sym_traits] = ACTIONS(5020),
    [sym_vector] = ACTIONS(5020),
    [sym_void] = ACTIONS(5020),
    [sym_directive] = ACTIONS(3),
  },
  [2606] = {
    [sym_identifier] = ACTIONS(4446),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4448),
    [anon_sym_SEMI] = ACTIONS(4448),
    [anon_sym_TILDE] = ACTIONS(4448),
    [anon_sym_AT] = ACTIONS(4448),
    [sym_bool] = ACTIONS(4446),
    [sym_byte] = ACTIONS(4446),
    [sym_ubyte] = ACTIONS(4446),
    [sym_char] = ACTIONS(4446),
    [sym_short] = ACTIONS(4446),
    [sym_ushort] = ACTIONS(4446),
    [sym_int] = ACTIONS(4446),
    [sym_uint] = ACTIONS(4446),
    [sym_long] = ACTIONS(4446),
    [sym_ulong] = ACTIONS(4446),
    [sym_cent] = ACTIONS(4446),
    [sym_ucent] = ACTIONS(4446),
    [sym_wchar] = ACTIONS(4446),
    [sym_dchar] = ACTIONS(4446),
    [sym_float] = ACTIONS(4446),
    [sym_double] = ACTIONS(4446),
    [sym_real] = ACTIONS(4446),
    [sym_ifloat] = ACTIONS(4446),
    [sym_idouble] = ACTIONS(4446),
    [sym_ireal] = ACTIONS(4446),
    [sym_cfloat] = ACTIONS(4446),
    [sym_cdouble] = ACTIONS(4446),
    [sym_creal] = ACTIONS(4446),
    [sym_size_t] = ACTIONS(4446),
    [sym_ptrdiff_t] = ACTIONS(4446),
    [sym_string] = ACTIONS(4446),
    [sym_cstring] = ACTIONS(4446),
    [sym_dstring] = ACTIONS(4446),
    [sym_wstring] = ACTIONS(4446),
    [sym_noreturn] = ACTIONS(4446),
    [sym_this] = ACTIONS(4446),
    [sym_abstract] = ACTIONS(4446),
    [sym_alias] = ACTIONS(4446),
    [sym_align] = ACTIONS(4446),
    [sym_auto] = ACTIONS(4446),
    [sym_catch] = ACTIONS(4446),
    [sym_class] = ACTIONS(4446),
    [sym_const] = ACTIONS(4446),
    [sym_debug] = ACTIONS(4446),
    [sym_deprecated] = ACTIONS(4446),
    [sym_else] = ACTIONS(6787),
    [sym_enum] = ACTIONS(4446),
    [sym_export] = ACTIONS(4446),
    [sym_extern] = ACTIONS(4446),
    [sym_final] = ACTIONS(4446),
    [sym_finally] = ACTIONS(4446),
    [sym_immutable] = ACTIONS(4446),
    [sym_import] = ACTIONS(4446),
    [sym_inout] = ACTIONS(4446),
    [sym_interface] = ACTIONS(4446),
    [sym_invariant] = ACTIONS(4446),
    [sym_mixin] = ACTIONS(4446),
    [sym_nothrow] = ACTIONS(4446),
    [sym_override] = ACTIONS(4446),
    [sym_package] = ACTIONS(4446),
    [sym_pragma] = ACTIONS(4446),
    [sym_private] = ACTIONS(4446),
    [sym_protected] = ACTIONS(4446),
    [sym_public] = ACTIONS(4446),
    [sym_pure] = ACTIONS(4446),
    [sym_ref] = ACTIONS(4446),
    [sym_return] = ACTIONS(4446),
    [sym_scope] = ACTIONS(4446),
    [sym_shared] = ACTIONS(4446),
    [sym_static] = ACTIONS(4446),
    [sym_struct] = ACTIONS(4446),
    [sym_synchronized] = ACTIONS(4446),
    [sym_template] = ACTIONS(4446),
    [sym_typeof] = ACTIONS(4446),
    [sym_union] = ACTIONS(4446),
    [sym_unittest] = ACTIONS(4446),
    [sym_version] = ACTIONS(4446),
    [sym_while] = ACTIONS(4446),
    [sym_gshared] = ACTIONS(4446),
    [sym_traits] = ACTIONS(4446),
    [sym_vector] = ACTIONS(4446),
    [sym_void] = ACTIONS(4446),
    [sym_directive] = ACTIONS(3),
  },
  [2607] = {
    [sym_identifier] = ACTIONS(4484),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4486),
    [anon_sym_SEMI] = ACTIONS(4486),
    [anon_sym_TILDE] = ACTIONS(4486),
    [anon_sym_AT] = ACTIONS(4486),
    [sym_bool] = ACTIONS(4484),
    [sym_byte] = ACTIONS(4484),
    [sym_ubyte] = ACTIONS(4484),
    [sym_char] = ACTIONS(4484),
    [sym_short] = ACTIONS(4484),
    [sym_ushort] = ACTIONS(4484),
    [sym_int] = ACTIONS(4484),
    [sym_uint] = ACTIONS(4484),
    [sym_long] = ACTIONS(4484),
    [sym_ulong] = ACTIONS(4484),
    [sym_cent] = ACTIONS(4484),
    [sym_ucent] = ACTIONS(4484),
    [sym_wchar] = ACTIONS(4484),
    [sym_dchar] = ACTIONS(4484),
    [sym_float] = ACTIONS(4484),
    [sym_double] = ACTIONS(4484),
    [sym_real] = ACTIONS(4484),
    [sym_ifloat] = ACTIONS(4484),
    [sym_idouble] = ACTIONS(4484),
    [sym_ireal] = ACTIONS(4484),
    [sym_cfloat] = ACTIONS(4484),
    [sym_cdouble] = ACTIONS(4484),
    [sym_creal] = ACTIONS(4484),
    [sym_size_t] = ACTIONS(4484),
    [sym_ptrdiff_t] = ACTIONS(4484),
    [sym_string] = ACTIONS(4484),
    [sym_cstring] = ACTIONS(4484),
    [sym_dstring] = ACTIONS(4484),
    [sym_wstring] = ACTIONS(4484),
    [sym_noreturn] = ACTIONS(4484),
    [sym_this] = ACTIONS(4484),
    [sym_abstract] = ACTIONS(4484),
    [sym_alias] = ACTIONS(4484),
    [sym_align] = ACTIONS(4484),
    [sym_auto] = ACTIONS(4484),
    [sym_catch] = ACTIONS(4484),
    [sym_class] = ACTIONS(4484),
    [sym_const] = ACTIONS(4484),
    [sym_debug] = ACTIONS(4484),
    [sym_deprecated] = ACTIONS(4484),
    [sym_else] = ACTIONS(4484),
    [sym_enum] = ACTIONS(4484),
    [sym_export] = ACTIONS(4484),
    [sym_extern] = ACTIONS(4484),
    [sym_final] = ACTIONS(4484),
    [sym_finally] = ACTIONS(4484),
    [sym_immutable] = ACTIONS(4484),
    [sym_import] = ACTIONS(4484),
    [sym_inout] = ACTIONS(4484),
    [sym_interface] = ACTIONS(4484),
    [sym_invariant] = ACTIONS(4484),
    [sym_mixin] = ACTIONS(4484),
    [sym_nothrow] = ACTIONS(4484),
    [sym_override] = ACTIONS(4484),
    [sym_package] = ACTIONS(4484),
    [sym_pragma] = ACTIONS(4484),
    [sym_private] = ACTIONS(4484),
    [sym_protected] = ACTIONS(4484),
    [sym_public] = ACTIONS(4484),
    [sym_pure] = ACTIONS(4484),
    [sym_ref] = ACTIONS(4484),
    [sym_return] = ACTIONS(4484),
    [sym_scope] = ACTIONS(4484),
    [sym_shared] = ACTIONS(4484),
    [sym_static] = ACTIONS(4484),
    [sym_struct] = ACTIONS(4484),
    [sym_synchronized] = ACTIONS(4484),
    [sym_template] = ACTIONS(4484),
    [sym_typeof] = ACTIONS(4484),
    [sym_union] = ACTIONS(4484),
    [sym_unittest] = ACTIONS(4484),
    [sym_version] = ACTIONS(4484),
    [sym_while] = ACTIONS(4484),
    [sym_gshared] = ACTIONS(4484),
    [sym_traits] = ACTIONS(4484),
    [sym_vector] = ACTIONS(4484),
    [sym_void] = ACTIONS(4484),
    [sym_directive] = ACTIONS(3),
  },
  [2608] = {
    [sym_identifier] = ACTIONS(4508),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4510),
    [anon_sym_SEMI] = ACTIONS(4510),
    [anon_sym_TILDE] = ACTIONS(4510),
    [anon_sym_AT] = ACTIONS(4510),
    [sym_bool] = ACTIONS(4508),
    [sym_byte] = ACTIONS(4508),
    [sym_ubyte] = ACTIONS(4508),
    [sym_char] = ACTIONS(4508),
    [sym_short] = ACTIONS(4508),
    [sym_ushort] = ACTIONS(4508),
    [sym_int] = ACTIONS(4508),
    [sym_uint] = ACTIONS(4508),
    [sym_long] = ACTIONS(4508),
    [sym_ulong] = ACTIONS(4508),
    [sym_cent] = ACTIONS(4508),
    [sym_ucent] = ACTIONS(4508),
    [sym_wchar] = ACTIONS(4508),
    [sym_dchar] = ACTIONS(4508),
    [sym_float] = ACTIONS(4508),
    [sym_double] = ACTIONS(4508),
    [sym_real] = ACTIONS(4508),
    [sym_ifloat] = ACTIONS(4508),
    [sym_idouble] = ACTIONS(4508),
    [sym_ireal] = ACTIONS(4508),
    [sym_cfloat] = ACTIONS(4508),
    [sym_cdouble] = ACTIONS(4508),
    [sym_creal] = ACTIONS(4508),
    [sym_size_t] = ACTIONS(4508),
    [sym_ptrdiff_t] = ACTIONS(4508),
    [sym_string] = ACTIONS(4508),
    [sym_cstring] = ACTIONS(4508),
    [sym_dstring] = ACTIONS(4508),
    [sym_wstring] = ACTIONS(4508),
    [sym_noreturn] = ACTIONS(4508),
    [sym_this] = ACTIONS(4508),
    [sym_abstract] = ACTIONS(4508),
    [sym_alias] = ACTIONS(4508),
    [sym_align] = ACTIONS(4508),
    [sym_auto] = ACTIONS(4508),
    [sym_catch] = ACTIONS(4508),
    [sym_class] = ACTIONS(4508),
    [sym_const] = ACTIONS(4508),
    [sym_debug] = ACTIONS(4508),
    [sym_deprecated] = ACTIONS(4508),
    [sym_else] = ACTIONS(4508),
    [sym_enum] = ACTIONS(4508),
    [sym_export] = ACTIONS(4508),
    [sym_extern] = ACTIONS(4508),
    [sym_final] = ACTIONS(4508),
    [sym_finally] = ACTIONS(4508),
    [sym_immutable] = ACTIONS(4508),
    [sym_import] = ACTIONS(4508),
    [sym_inout] = ACTIONS(4508),
    [sym_interface] = ACTIONS(4508),
    [sym_invariant] = ACTIONS(4508),
    [sym_mixin] = ACTIONS(4508),
    [sym_nothrow] = ACTIONS(4508),
    [sym_override] = ACTIONS(4508),
    [sym_package] = ACTIONS(4508),
    [sym_pragma] = ACTIONS(4508),
    [sym_private] = ACTIONS(4508),
    [sym_protected] = ACTIONS(4508),
    [sym_public] = ACTIONS(4508),
    [sym_pure] = ACTIONS(4508),
    [sym_ref] = ACTIONS(4508),
    [sym_return] = ACTIONS(4508),
    [sym_scope] = ACTIONS(4508),
    [sym_shared] = ACTIONS(4508),
    [sym_static] = ACTIONS(4508),
    [sym_struct] = ACTIONS(4508),
    [sym_synchronized] = ACTIONS(4508),
    [sym_template] = ACTIONS(4508),
    [sym_typeof] = ACTIONS(4508),
    [sym_union] = ACTIONS(4508),
    [sym_unittest] = ACTIONS(4508),
    [sym_version] = ACTIONS(4508),
    [sym_while] = ACTIONS(4508),
    [sym_gshared] = ACTIONS(4508),
    [sym_traits] = ACTIONS(4508),
    [sym_vector] = ACTIONS(4508),
    [sym_void] = ACTIONS(4508),
    [sym_directive] = ACTIONS(3),
  },
  [2609] = {
    [sym_identifier] = ACTIONS(4516),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4518),
    [anon_sym_SEMI] = ACTIONS(4518),
    [anon_sym_TILDE] = ACTIONS(4518),
    [anon_sym_AT] = ACTIONS(4518),
    [sym_bool] = ACTIONS(4516),
    [sym_byte] = ACTIONS(4516),
    [sym_ubyte] = ACTIONS(4516),
    [sym_char] = ACTIONS(4516),
    [sym_short] = ACTIONS(4516),
    [sym_ushort] = ACTIONS(4516),
    [sym_int] = ACTIONS(4516),
    [sym_uint] = ACTIONS(4516),
    [sym_long] = ACTIONS(4516),
    [sym_ulong] = ACTIONS(4516),
    [sym_cent] = ACTIONS(4516),
    [sym_ucent] = ACTIONS(4516),
    [sym_wchar] = ACTIONS(4516),
    [sym_dchar] = ACTIONS(4516),
    [sym_float] = ACTIONS(4516),
    [sym_double] = ACTIONS(4516),
    [sym_real] = ACTIONS(4516),
    [sym_ifloat] = ACTIONS(4516),
    [sym_idouble] = ACTIONS(4516),
    [sym_ireal] = ACTIONS(4516),
    [sym_cfloat] = ACTIONS(4516),
    [sym_cdouble] = ACTIONS(4516),
    [sym_creal] = ACTIONS(4516),
    [sym_size_t] = ACTIONS(4516),
    [sym_ptrdiff_t] = ACTIONS(4516),
    [sym_string] = ACTIONS(4516),
    [sym_cstring] = ACTIONS(4516),
    [sym_dstring] = ACTIONS(4516),
    [sym_wstring] = ACTIONS(4516),
    [sym_noreturn] = ACTIONS(4516),
    [sym_this] = ACTIONS(4516),
    [sym_abstract] = ACTIONS(4516),
    [sym_alias] = ACTIONS(4516),
    [sym_align] = ACTIONS(4516),
    [sym_auto] = ACTIONS(4516),
    [sym_catch] = ACTIONS(4516),
    [sym_class] = ACTIONS(4516),
    [sym_const] = ACTIONS(4516),
    [sym_debug] = ACTIONS(4516),
    [sym_deprecated] = ACTIONS(4516),
    [sym_else] = ACTIONS(4516),
    [sym_enum] = ACTIONS(4516),
    [sym_export] = ACTIONS(4516),
    [sym_extern] = ACTIONS(4516),
    [sym_final] = ACTIONS(4516),
    [sym_finally] = ACTIONS(4516),
    [sym_immutable] = ACTIONS(4516),
    [sym_import] = ACTIONS(4516),
    [sym_inout] = ACTIONS(4516),
    [sym_interface] = ACTIONS(4516),
    [sym_invariant] = ACTIONS(4516),
    [sym_mixin] = ACTIONS(4516),
    [sym_nothrow] = ACTIONS(4516),
    [sym_override] = ACTIONS(4516),
    [sym_package] = ACTIONS(4516),
    [sym_pragma] = ACTIONS(4516),
    [sym_private] = ACTIONS(4516),
    [sym_protected] = ACTIONS(4516),
    [sym_public] = ACTIONS(4516),
    [sym_pure] = ACTIONS(4516),
    [sym_ref] = ACTIONS(4516),
    [sym_return] = ACTIONS(4516),
    [sym_scope] = ACTIONS(4516),
    [sym_shared] = ACTIONS(4516),
    [sym_static] = ACTIONS(4516),
    [sym_struct] = ACTIONS(4516),
    [sym_synchronized] = ACTIONS(4516),
    [sym_template] = ACTIONS(4516),
    [sym_typeof] = ACTIONS(4516),
    [sym_union] = ACTIONS(4516),
    [sym_unittest] = ACTIONS(4516),
    [sym_version] = ACTIONS(4516),
    [sym_while] = ACTIONS(4516),
    [sym_gshared] = ACTIONS(4516),
    [sym_traits] = ACTIONS(4516),
    [sym_vector] = ACTIONS(4516),
    [sym_void] = ACTIONS(4516),
    [sym_directive] = ACTIONS(3),
  },
  [2610] = {
    [sym_identifier] = ACTIONS(4528),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4531),
    [anon_sym_SEMI] = ACTIONS(4531),
    [anon_sym_TILDE] = ACTIONS(4531),
    [anon_sym_AT] = ACTIONS(4531),
    [sym_bool] = ACTIONS(4528),
    [sym_byte] = ACTIONS(4528),
    [sym_ubyte] = ACTIONS(4528),
    [sym_char] = ACTIONS(4528),
    [sym_short] = ACTIONS(4528),
    [sym_ushort] = ACTIONS(4528),
    [sym_int] = ACTIONS(4528),
    [sym_uint] = ACTIONS(4528),
    [sym_long] = ACTIONS(4528),
    [sym_ulong] = ACTIONS(4528),
    [sym_cent] = ACTIONS(4528),
    [sym_ucent] = ACTIONS(4528),
    [sym_wchar] = ACTIONS(4528),
    [sym_dchar] = ACTIONS(4528),
    [sym_float] = ACTIONS(4528),
    [sym_double] = ACTIONS(4528),
    [sym_real] = ACTIONS(4528),
    [sym_ifloat] = ACTIONS(4528),
    [sym_idouble] = ACTIONS(4528),
    [sym_ireal] = ACTIONS(4528),
    [sym_cfloat] = ACTIONS(4528),
    [sym_cdouble] = ACTIONS(4528),
    [sym_creal] = ACTIONS(4528),
    [sym_size_t] = ACTIONS(4528),
    [sym_ptrdiff_t] = ACTIONS(4528),
    [sym_string] = ACTIONS(4528),
    [sym_cstring] = ACTIONS(4528),
    [sym_dstring] = ACTIONS(4528),
    [sym_wstring] = ACTIONS(4528),
    [sym_noreturn] = ACTIONS(4528),
    [sym_this] = ACTIONS(4528),
    [sym_abstract] = ACTIONS(4528),
    [sym_alias] = ACTIONS(4528),
    [sym_align] = ACTIONS(4528),
    [sym_auto] = ACTIONS(4528),
    [sym_catch] = ACTIONS(4528),
    [sym_class] = ACTIONS(4528),
    [sym_const] = ACTIONS(4528),
    [sym_debug] = ACTIONS(4528),
    [sym_deprecated] = ACTIONS(4528),
    [sym_else] = ACTIONS(4528),
    [sym_enum] = ACTIONS(4528),
    [sym_export] = ACTIONS(4528),
    [sym_extern] = ACTIONS(4528),
    [sym_final] = ACTIONS(4528),
    [sym_finally] = ACTIONS(4528),
    [sym_immutable] = ACTIONS(4528),
    [sym_import] = ACTIONS(4528),
    [sym_inout] = ACTIONS(4528),
    [sym_interface] = ACTIONS(4528),
    [sym_invariant] = ACTIONS(4528),
    [sym_mixin] = ACTIONS(4528),
    [sym_nothrow] = ACTIONS(4528),
    [sym_override] = ACTIONS(4528),
    [sym_package] = ACTIONS(4528),
    [sym_pragma] = ACTIONS(4528),
    [sym_private] = ACTIONS(4528),
    [sym_protected] = ACTIONS(4528),
    [sym_public] = ACTIONS(4528),
    [sym_pure] = ACTIONS(4528),
    [sym_ref] = ACTIONS(4528),
    [sym_return] = ACTIONS(4528),
    [sym_scope] = ACTIONS(4528),
    [sym_shared] = ACTIONS(4528),
    [sym_static] = ACTIONS(4528),
    [sym_struct] = ACTIONS(4528),
    [sym_synchronized] = ACTIONS(4528),
    [sym_template] = ACTIONS(4528),
    [sym_typeof] = ACTIONS(4528),
    [sym_union] = ACTIONS(4528),
    [sym_unittest] = ACTIONS(4528),
    [sym_version] = ACTIONS(4528),
    [sym_while] = ACTIONS(4528),
    [sym_gshared] = ACTIONS(4528),
    [sym_traits] = ACTIONS(4528),
    [sym_vector] = ACTIONS(4528),
    [sym_void] = ACTIONS(4528),
    [sym_directive] = ACTIONS(3),
  },
  [2611] = {
    [sym_identifier] = ACTIONS(4488),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4490),
    [anon_sym_SEMI] = ACTIONS(4490),
    [anon_sym_TILDE] = ACTIONS(4490),
    [anon_sym_AT] = ACTIONS(4490),
    [sym_bool] = ACTIONS(4488),
    [sym_byte] = ACTIONS(4488),
    [sym_ubyte] = ACTIONS(4488),
    [sym_char] = ACTIONS(4488),
    [sym_short] = ACTIONS(4488),
    [sym_ushort] = ACTIONS(4488),
    [sym_int] = ACTIONS(4488),
    [sym_uint] = ACTIONS(4488),
    [sym_long] = ACTIONS(4488),
    [sym_ulong] = ACTIONS(4488),
    [sym_cent] = ACTIONS(4488),
    [sym_ucent] = ACTIONS(4488),
    [sym_wchar] = ACTIONS(4488),
    [sym_dchar] = ACTIONS(4488),
    [sym_float] = ACTIONS(4488),
    [sym_double] = ACTIONS(4488),
    [sym_real] = ACTIONS(4488),
    [sym_ifloat] = ACTIONS(4488),
    [sym_idouble] = ACTIONS(4488),
    [sym_ireal] = ACTIONS(4488),
    [sym_cfloat] = ACTIONS(4488),
    [sym_cdouble] = ACTIONS(4488),
    [sym_creal] = ACTIONS(4488),
    [sym_size_t] = ACTIONS(4488),
    [sym_ptrdiff_t] = ACTIONS(4488),
    [sym_string] = ACTIONS(4488),
    [sym_cstring] = ACTIONS(4488),
    [sym_dstring] = ACTIONS(4488),
    [sym_wstring] = ACTIONS(4488),
    [sym_noreturn] = ACTIONS(4488),
    [sym_this] = ACTIONS(4488),
    [sym_abstract] = ACTIONS(4488),
    [sym_alias] = ACTIONS(4488),
    [sym_align] = ACTIONS(4488),
    [sym_auto] = ACTIONS(4488),
    [sym_catch] = ACTIONS(4488),
    [sym_class] = ACTIONS(4488),
    [sym_const] = ACTIONS(4488),
    [sym_debug] = ACTIONS(4488),
    [sym_deprecated] = ACTIONS(4488),
    [sym_else] = ACTIONS(4488),
    [sym_enum] = ACTIONS(4488),
    [sym_export] = ACTIONS(4488),
    [sym_extern] = ACTIONS(4488),
    [sym_final] = ACTIONS(4488),
    [sym_finally] = ACTIONS(4488),
    [sym_immutable] = ACTIONS(4488),
    [sym_import] = ACTIONS(4488),
    [sym_inout] = ACTIONS(4488),
    [sym_interface] = ACTIONS(4488),
    [sym_invariant] = ACTIONS(4488),
    [sym_mixin] = ACTIONS(4488),
    [sym_nothrow] = ACTIONS(4488),
    [sym_override] = ACTIONS(4488),
    [sym_package] = ACTIONS(4488),
    [sym_pragma] = ACTIONS(4488),
    [sym_private] = ACTIONS(4488),
    [sym_protected] = ACTIONS(4488),
    [sym_public] = ACTIONS(4488),
    [sym_pure] = ACTIONS(4488),
    [sym_ref] = ACTIONS(4488),
    [sym_return] = ACTIONS(4488),
    [sym_scope] = ACTIONS(4488),
    [sym_shared] = ACTIONS(4488),
    [sym_static] = ACTIONS(4488),
    [sym_struct] = ACTIONS(4488),
    [sym_synchronized] = ACTIONS(4488),
    [sym_template] = ACTIONS(4488),
    [sym_typeof] = ACTIONS(4488),
    [sym_union] = ACTIONS(4488),
    [sym_unittest] = ACTIONS(4488),
    [sym_version] = ACTIONS(4488),
    [sym_while] = ACTIONS(4488),
    [sym_gshared] = ACTIONS(4488),
    [sym_traits] = ACTIONS(4488),
    [sym_vector] = ACTIONS(4488),
    [sym_void] = ACTIONS(4488),
    [sym_directive] = ACTIONS(3),
  },
  [2612] = {
    [sym_identifier] = ACTIONS(4542),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4544),
    [anon_sym_SEMI] = ACTIONS(4544),
    [anon_sym_TILDE] = ACTIONS(4544),
    [anon_sym_AT] = ACTIONS(4544),
    [sym_bool] = ACTIONS(4542),
    [sym_byte] = ACTIONS(4542),
    [sym_ubyte] = ACTIONS(4542),
    [sym_char] = ACTIONS(4542),
    [sym_short] = ACTIONS(4542),
    [sym_ushort] = ACTIONS(4542),
    [sym_int] = ACTIONS(4542),
    [sym_uint] = ACTIONS(4542),
    [sym_long] = ACTIONS(4542),
    [sym_ulong] = ACTIONS(4542),
    [sym_cent] = ACTIONS(4542),
    [sym_ucent] = ACTIONS(4542),
    [sym_wchar] = ACTIONS(4542),
    [sym_dchar] = ACTIONS(4542),
    [sym_float] = ACTIONS(4542),
    [sym_double] = ACTIONS(4542),
    [sym_real] = ACTIONS(4542),
    [sym_ifloat] = ACTIONS(4542),
    [sym_idouble] = ACTIONS(4542),
    [sym_ireal] = ACTIONS(4542),
    [sym_cfloat] = ACTIONS(4542),
    [sym_cdouble] = ACTIONS(4542),
    [sym_creal] = ACTIONS(4542),
    [sym_size_t] = ACTIONS(4542),
    [sym_ptrdiff_t] = ACTIONS(4542),
    [sym_string] = ACTIONS(4542),
    [sym_cstring] = ACTIONS(4542),
    [sym_dstring] = ACTIONS(4542),
    [sym_wstring] = ACTIONS(4542),
    [sym_noreturn] = ACTIONS(4542),
    [sym_this] = ACTIONS(4542),
    [sym_abstract] = ACTIONS(4542),
    [sym_alias] = ACTIONS(4542),
    [sym_align] = ACTIONS(4542),
    [sym_auto] = ACTIONS(4542),
    [sym_catch] = ACTIONS(4542),
    [sym_class] = ACTIONS(4542),
    [sym_const] = ACTIONS(4542),
    [sym_debug] = ACTIONS(4542),
    [sym_deprecated] = ACTIONS(4542),
    [sym_else] = ACTIONS(4542),
    [sym_enum] = ACTIONS(4542),
    [sym_export] = ACTIONS(4542),
    [sym_extern] = ACTIONS(4542),
    [sym_final] = ACTIONS(4542),
    [sym_finally] = ACTIONS(4542),
    [sym_immutable] = ACTIONS(4542),
    [sym_import] = ACTIONS(4542),
    [sym_inout] = ACTIONS(4542),
    [sym_interface] = ACTIONS(4542),
    [sym_invariant] = ACTIONS(4542),
    [sym_mixin] = ACTIONS(4542),
    [sym_nothrow] = ACTIONS(4542),
    [sym_override] = ACTIONS(4542),
    [sym_package] = ACTIONS(4542),
    [sym_pragma] = ACTIONS(4542),
    [sym_private] = ACTIONS(4542),
    [sym_protected] = ACTIONS(4542),
    [sym_public] = ACTIONS(4542),
    [sym_pure] = ACTIONS(4542),
    [sym_ref] = ACTIONS(4542),
    [sym_return] = ACTIONS(4542),
    [sym_scope] = ACTIONS(4542),
    [sym_shared] = ACTIONS(4542),
    [sym_static] = ACTIONS(4542),
    [sym_struct] = ACTIONS(4542),
    [sym_synchronized] = ACTIONS(4542),
    [sym_template] = ACTIONS(4542),
    [sym_typeof] = ACTIONS(4542),
    [sym_union] = ACTIONS(4542),
    [sym_unittest] = ACTIONS(4542),
    [sym_version] = ACTIONS(4542),
    [sym_while] = ACTIONS(4542),
    [sym_gshared] = ACTIONS(4542),
    [sym_traits] = ACTIONS(4542),
    [sym_vector] = ACTIONS(4542),
    [sym_void] = ACTIONS(4542),
    [sym_directive] = ACTIONS(3),
  },
  [2613] = {
    [sym_identifier] = ACTIONS(4550),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4552),
    [anon_sym_SEMI] = ACTIONS(4552),
    [anon_sym_TILDE] = ACTIONS(4552),
    [anon_sym_AT] = ACTIONS(4552),
    [sym_bool] = ACTIONS(4550),
    [sym_byte] = ACTIONS(4550),
    [sym_ubyte] = ACTIONS(4550),
    [sym_char] = ACTIONS(4550),
    [sym_short] = ACTIONS(4550),
    [sym_ushort] = ACTIONS(4550),
    [sym_int] = ACTIONS(4550),
    [sym_uint] = ACTIONS(4550),
    [sym_long] = ACTIONS(4550),
    [sym_ulong] = ACTIONS(4550),
    [sym_cent] = ACTIONS(4550),
    [sym_ucent] = ACTIONS(4550),
    [sym_wchar] = ACTIONS(4550),
    [sym_dchar] = ACTIONS(4550),
    [sym_float] = ACTIONS(4550),
    [sym_double] = ACTIONS(4550),
    [sym_real] = ACTIONS(4550),
    [sym_ifloat] = ACTIONS(4550),
    [sym_idouble] = ACTIONS(4550),
    [sym_ireal] = ACTIONS(4550),
    [sym_cfloat] = ACTIONS(4550),
    [sym_cdouble] = ACTIONS(4550),
    [sym_creal] = ACTIONS(4550),
    [sym_size_t] = ACTIONS(4550),
    [sym_ptrdiff_t] = ACTIONS(4550),
    [sym_string] = ACTIONS(4550),
    [sym_cstring] = ACTIONS(4550),
    [sym_dstring] = ACTIONS(4550),
    [sym_wstring] = ACTIONS(4550),
    [sym_noreturn] = ACTIONS(4550),
    [sym_this] = ACTIONS(4550),
    [sym_abstract] = ACTIONS(4550),
    [sym_alias] = ACTIONS(4550),
    [sym_align] = ACTIONS(4550),
    [sym_auto] = ACTIONS(4550),
    [sym_catch] = ACTIONS(4550),
    [sym_class] = ACTIONS(4550),
    [sym_const] = ACTIONS(4550),
    [sym_debug] = ACTIONS(4550),
    [sym_deprecated] = ACTIONS(4550),
    [sym_else] = ACTIONS(4550),
    [sym_enum] = ACTIONS(4550),
    [sym_export] = ACTIONS(4550),
    [sym_extern] = ACTIONS(4550),
    [sym_final] = ACTIONS(4550),
    [sym_finally] = ACTIONS(4550),
    [sym_immutable] = ACTIONS(4550),
    [sym_import] = ACTIONS(4550),
    [sym_inout] = ACTIONS(4550),
    [sym_interface] = ACTIONS(4550),
    [sym_invariant] = ACTIONS(4550),
    [sym_mixin] = ACTIONS(4550),
    [sym_nothrow] = ACTIONS(4550),
    [sym_override] = ACTIONS(4550),
    [sym_package] = ACTIONS(4550),
    [sym_pragma] = ACTIONS(4550),
    [sym_private] = ACTIONS(4550),
    [sym_protected] = ACTIONS(4550),
    [sym_public] = ACTIONS(4550),
    [sym_pure] = ACTIONS(4550),
    [sym_ref] = ACTIONS(4550),
    [sym_return] = ACTIONS(4550),
    [sym_scope] = ACTIONS(4550),
    [sym_shared] = ACTIONS(4550),
    [sym_static] = ACTIONS(4550),
    [sym_struct] = ACTIONS(4550),
    [sym_synchronized] = ACTIONS(4550),
    [sym_template] = ACTIONS(4550),
    [sym_typeof] = ACTIONS(4550),
    [sym_union] = ACTIONS(4550),
    [sym_unittest] = ACTIONS(4550),
    [sym_version] = ACTIONS(4550),
    [sym_while] = ACTIONS(4550),
    [sym_gshared] = ACTIONS(4550),
    [sym_traits] = ACTIONS(4550),
    [sym_vector] = ACTIONS(4550),
    [sym_void] = ACTIONS(4550),
    [sym_directive] = ACTIONS(3),
  },
  [2614] = {
    [sym_identifier] = ACTIONS(4456),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4458),
    [anon_sym_SEMI] = ACTIONS(4458),
    [anon_sym_TILDE] = ACTIONS(4458),
    [anon_sym_AT] = ACTIONS(4458),
    [sym_bool] = ACTIONS(4456),
    [sym_byte] = ACTIONS(4456),
    [sym_ubyte] = ACTIONS(4456),
    [sym_char] = ACTIONS(4456),
    [sym_short] = ACTIONS(4456),
    [sym_ushort] = ACTIONS(4456),
    [sym_int] = ACTIONS(4456),
    [sym_uint] = ACTIONS(4456),
    [sym_long] = ACTIONS(4456),
    [sym_ulong] = ACTIONS(4456),
    [sym_cent] = ACTIONS(4456),
    [sym_ucent] = ACTIONS(4456),
    [sym_wchar] = ACTIONS(4456),
    [sym_dchar] = ACTIONS(4456),
    [sym_float] = ACTIONS(4456),
    [sym_double] = ACTIONS(4456),
    [sym_real] = ACTIONS(4456),
    [sym_ifloat] = ACTIONS(4456),
    [sym_idouble] = ACTIONS(4456),
    [sym_ireal] = ACTIONS(4456),
    [sym_cfloat] = ACTIONS(4456),
    [sym_cdouble] = ACTIONS(4456),
    [sym_creal] = ACTIONS(4456),
    [sym_size_t] = ACTIONS(4456),
    [sym_ptrdiff_t] = ACTIONS(4456),
    [sym_string] = ACTIONS(4456),
    [sym_cstring] = ACTIONS(4456),
    [sym_dstring] = ACTIONS(4456),
    [sym_wstring] = ACTIONS(4456),
    [sym_noreturn] = ACTIONS(4456),
    [sym_this] = ACTIONS(4456),
    [sym_abstract] = ACTIONS(4456),
    [sym_alias] = ACTIONS(4456),
    [sym_align] = ACTIONS(4456),
    [sym_auto] = ACTIONS(4456),
    [sym_catch] = ACTIONS(4456),
    [sym_class] = ACTIONS(4456),
    [sym_const] = ACTIONS(4456),
    [sym_debug] = ACTIONS(4456),
    [sym_deprecated] = ACTIONS(4456),
    [sym_else] = ACTIONS(4456),
    [sym_enum] = ACTIONS(4456),
    [sym_export] = ACTIONS(4456),
    [sym_extern] = ACTIONS(4456),
    [sym_final] = ACTIONS(4456),
    [sym_finally] = ACTIONS(4456),
    [sym_immutable] = ACTIONS(4456),
    [sym_import] = ACTIONS(4456),
    [sym_inout] = ACTIONS(4456),
    [sym_interface] = ACTIONS(4456),
    [sym_invariant] = ACTIONS(4456),
    [sym_mixin] = ACTIONS(4456),
    [sym_nothrow] = ACTIONS(4456),
    [sym_override] = ACTIONS(4456),
    [sym_package] = ACTIONS(4456),
    [sym_pragma] = ACTIONS(4456),
    [sym_private] = ACTIONS(4456),
    [sym_protected] = ACTIONS(4456),
    [sym_public] = ACTIONS(4456),
    [sym_pure] = ACTIONS(4456),
    [sym_ref] = ACTIONS(4456),
    [sym_return] = ACTIONS(4456),
    [sym_scope] = ACTIONS(4456),
    [sym_shared] = ACTIONS(4456),
    [sym_static] = ACTIONS(4456),
    [sym_struct] = ACTIONS(4456),
    [sym_synchronized] = ACTIONS(4456),
    [sym_template] = ACTIONS(4456),
    [sym_typeof] = ACTIONS(4456),
    [sym_union] = ACTIONS(4456),
    [sym_unittest] = ACTIONS(4456),
    [sym_version] = ACTIONS(4456),
    [sym_while] = ACTIONS(4456),
    [sym_gshared] = ACTIONS(4456),
    [sym_traits] = ACTIONS(4456),
    [sym_vector] = ACTIONS(4456),
    [sym_void] = ACTIONS(4456),
    [sym_directive] = ACTIONS(3),
  },
  [2615] = {
    [sym_identifier] = ACTIONS(4558),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4560),
    [anon_sym_SEMI] = ACTIONS(4560),
    [anon_sym_TILDE] = ACTIONS(4560),
    [anon_sym_AT] = ACTIONS(4560),
    [sym_bool] = ACTIONS(4558),
    [sym_byte] = ACTIONS(4558),
    [sym_ubyte] = ACTIONS(4558),
    [sym_char] = ACTIONS(4558),
    [sym_short] = ACTIONS(4558),
    [sym_ushort] = ACTIONS(4558),
    [sym_int] = ACTIONS(4558),
    [sym_uint] = ACTIONS(4558),
    [sym_long] = ACTIONS(4558),
    [sym_ulong] = ACTIONS(4558),
    [sym_cent] = ACTIONS(4558),
    [sym_ucent] = ACTIONS(4558),
    [sym_wchar] = ACTIONS(4558),
    [sym_dchar] = ACTIONS(4558),
    [sym_float] = ACTIONS(4558),
    [sym_double] = ACTIONS(4558),
    [sym_real] = ACTIONS(4558),
    [sym_ifloat] = ACTIONS(4558),
    [sym_idouble] = ACTIONS(4558),
    [sym_ireal] = ACTIONS(4558),
    [sym_cfloat] = ACTIONS(4558),
    [sym_cdouble] = ACTIONS(4558),
    [sym_creal] = ACTIONS(4558),
    [sym_size_t] = ACTIONS(4558),
    [sym_ptrdiff_t] = ACTIONS(4558),
    [sym_string] = ACTIONS(4558),
    [sym_cstring] = ACTIONS(4558),
    [sym_dstring] = ACTIONS(4558),
    [sym_wstring] = ACTIONS(4558),
    [sym_noreturn] = ACTIONS(4558),
    [sym_this] = ACTIONS(4558),
    [sym_abstract] = ACTIONS(4558),
    [sym_alias] = ACTIONS(4558),
    [sym_align] = ACTIONS(4558),
    [sym_auto] = ACTIONS(4558),
    [sym_catch] = ACTIONS(4558),
    [sym_class] = ACTIONS(4558),
    [sym_const] = ACTIONS(4558),
    [sym_debug] = ACTIONS(4558),
    [sym_deprecated] = ACTIONS(4558),
    [sym_else] = ACTIONS(4558),
    [sym_enum] = ACTIONS(4558),
    [sym_export] = ACTIONS(4558),
    [sym_extern] = ACTIONS(4558),
    [sym_final] = ACTIONS(4558),
    [sym_finally] = ACTIONS(4558),
    [sym_immutable] = ACTIONS(4558),
    [sym_import] = ACTIONS(4558),
    [sym_inout] = ACTIONS(4558),
    [sym_interface] = ACTIONS(4558),
    [sym_invariant] = ACTIONS(4558),
    [sym_mixin] = ACTIONS(4558),
    [sym_nothrow] = ACTIONS(4558),
    [sym_override] = ACTIONS(4558),
    [sym_package] = ACTIONS(4558),
    [sym_pragma] = ACTIONS(4558),
    [sym_private] = ACTIONS(4558),
    [sym_protected] = ACTIONS(4558),
    [sym_public] = ACTIONS(4558),
    [sym_pure] = ACTIONS(4558),
    [sym_ref] = ACTIONS(4558),
    [sym_return] = ACTIONS(4558),
    [sym_scope] = ACTIONS(4558),
    [sym_shared] = ACTIONS(4558),
    [sym_static] = ACTIONS(4558),
    [sym_struct] = ACTIONS(4558),
    [sym_synchronized] = ACTIONS(4558),
    [sym_template] = ACTIONS(4558),
    [sym_typeof] = ACTIONS(4558),
    [sym_union] = ACTIONS(4558),
    [sym_unittest] = ACTIONS(4558),
    [sym_version] = ACTIONS(4558),
    [sym_while] = ACTIONS(4558),
    [sym_gshared] = ACTIONS(4558),
    [sym_traits] = ACTIONS(4558),
    [sym_vector] = ACTIONS(4558),
    [sym_void] = ACTIONS(4558),
    [sym_directive] = ACTIONS(3),
  },
  [2616] = {
    [sym_identifier] = ACTIONS(4566),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4568),
    [anon_sym_SEMI] = ACTIONS(4568),
    [anon_sym_TILDE] = ACTIONS(4568),
    [anon_sym_AT] = ACTIONS(4568),
    [sym_bool] = ACTIONS(4566),
    [sym_byte] = ACTIONS(4566),
    [sym_ubyte] = ACTIONS(4566),
    [sym_char] = ACTIONS(4566),
    [sym_short] = ACTIONS(4566),
    [sym_ushort] = ACTIONS(4566),
    [sym_int] = ACTIONS(4566),
    [sym_uint] = ACTIONS(4566),
    [sym_long] = ACTIONS(4566),
    [sym_ulong] = ACTIONS(4566),
    [sym_cent] = ACTIONS(4566),
    [sym_ucent] = ACTIONS(4566),
    [sym_wchar] = ACTIONS(4566),
    [sym_dchar] = ACTIONS(4566),
    [sym_float] = ACTIONS(4566),
    [sym_double] = ACTIONS(4566),
    [sym_real] = ACTIONS(4566),
    [sym_ifloat] = ACTIONS(4566),
    [sym_idouble] = ACTIONS(4566),
    [sym_ireal] = ACTIONS(4566),
    [sym_cfloat] = ACTIONS(4566),
    [sym_cdouble] = ACTIONS(4566),
    [sym_creal] = ACTIONS(4566),
    [sym_size_t] = ACTIONS(4566),
    [sym_ptrdiff_t] = ACTIONS(4566),
    [sym_string] = ACTIONS(4566),
    [sym_cstring] = ACTIONS(4566),
    [sym_dstring] = ACTIONS(4566),
    [sym_wstring] = ACTIONS(4566),
    [sym_noreturn] = ACTIONS(4566),
    [sym_this] = ACTIONS(4566),
    [sym_abstract] = ACTIONS(4566),
    [sym_alias] = ACTIONS(4566),
    [sym_align] = ACTIONS(4566),
    [sym_auto] = ACTIONS(4566),
    [sym_catch] = ACTIONS(4566),
    [sym_class] = ACTIONS(4566),
    [sym_const] = ACTIONS(4566),
    [sym_debug] = ACTIONS(4566),
    [sym_deprecated] = ACTIONS(4566),
    [sym_else] = ACTIONS(4566),
    [sym_enum] = ACTIONS(4566),
    [sym_export] = ACTIONS(4566),
    [sym_extern] = ACTIONS(4566),
    [sym_final] = ACTIONS(4566),
    [sym_finally] = ACTIONS(4566),
    [sym_immutable] = ACTIONS(4566),
    [sym_import] = ACTIONS(4566),
    [sym_inout] = ACTIONS(4566),
    [sym_interface] = ACTIONS(4566),
    [sym_invariant] = ACTIONS(4566),
    [sym_mixin] = ACTIONS(4566),
    [sym_nothrow] = ACTIONS(4566),
    [sym_override] = ACTIONS(4566),
    [sym_package] = ACTIONS(4566),
    [sym_pragma] = ACTIONS(4566),
    [sym_private] = ACTIONS(4566),
    [sym_protected] = ACTIONS(4566),
    [sym_public] = ACTIONS(4566),
    [sym_pure] = ACTIONS(4566),
    [sym_ref] = ACTIONS(4566),
    [sym_return] = ACTIONS(4566),
    [sym_scope] = ACTIONS(4566),
    [sym_shared] = ACTIONS(4566),
    [sym_static] = ACTIONS(4566),
    [sym_struct] = ACTIONS(4566),
    [sym_synchronized] = ACTIONS(4566),
    [sym_template] = ACTIONS(4566),
    [sym_typeof] = ACTIONS(4566),
    [sym_union] = ACTIONS(4566),
    [sym_unittest] = ACTIONS(4566),
    [sym_version] = ACTIONS(4566),
    [sym_while] = ACTIONS(4566),
    [sym_gshared] = ACTIONS(4566),
    [sym_traits] = ACTIONS(4566),
    [sym_vector] = ACTIONS(4566),
    [sym_void] = ACTIONS(4566),
    [sym_directive] = ACTIONS(3),
  },
  [2617] = {
    [ts_builtin_sym_end] = ACTIONS(4510),
    [sym_identifier] = ACTIONS(4508),
    [sym_end_file] = ACTIONS(4508),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4510),
    [anon_sym_SEMI] = ACTIONS(4510),
    [anon_sym_TILDE] = ACTIONS(4510),
    [anon_sym_AT] = ACTIONS(4510),
    [sym_bool] = ACTIONS(4508),
    [sym_byte] = ACTIONS(4508),
    [sym_ubyte] = ACTIONS(4508),
    [sym_char] = ACTIONS(4508),
    [sym_short] = ACTIONS(4508),
    [sym_ushort] = ACTIONS(4508),
    [sym_int] = ACTIONS(4508),
    [sym_uint] = ACTIONS(4508),
    [sym_long] = ACTIONS(4508),
    [sym_ulong] = ACTIONS(4508),
    [sym_cent] = ACTIONS(4508),
    [sym_ucent] = ACTIONS(4508),
    [sym_wchar] = ACTIONS(4508),
    [sym_dchar] = ACTIONS(4508),
    [sym_float] = ACTIONS(4508),
    [sym_double] = ACTIONS(4508),
    [sym_real] = ACTIONS(4508),
    [sym_ifloat] = ACTIONS(4508),
    [sym_idouble] = ACTIONS(4508),
    [sym_ireal] = ACTIONS(4508),
    [sym_cfloat] = ACTIONS(4508),
    [sym_cdouble] = ACTIONS(4508),
    [sym_creal] = ACTIONS(4508),
    [sym_size_t] = ACTIONS(4508),
    [sym_ptrdiff_t] = ACTIONS(4508),
    [sym_string] = ACTIONS(4508),
    [sym_cstring] = ACTIONS(4508),
    [sym_dstring] = ACTIONS(4508),
    [sym_wstring] = ACTIONS(4508),
    [sym_noreturn] = ACTIONS(4508),
    [sym_this] = ACTIONS(4508),
    [sym_abstract] = ACTIONS(4508),
    [sym_alias] = ACTIONS(4508),
    [sym_align] = ACTIONS(4508),
    [sym_auto] = ACTIONS(4508),
    [sym_class] = ACTIONS(4508),
    [sym_const] = ACTIONS(4508),
    [sym_debug] = ACTIONS(4508),
    [sym_deprecated] = ACTIONS(4508),
    [sym_else] = ACTIONS(4508),
    [sym_enum] = ACTIONS(4508),
    [sym_export] = ACTIONS(4508),
    [sym_extern] = ACTIONS(4508),
    [sym_final] = ACTIONS(4508),
    [sym_immutable] = ACTIONS(4508),
    [sym_import] = ACTIONS(4508),
    [sym_inout] = ACTIONS(4508),
    [sym_interface] = ACTIONS(4508),
    [sym_invariant] = ACTIONS(4508),
    [sym_mixin] = ACTIONS(4508),
    [sym_nothrow] = ACTIONS(4508),
    [sym_override] = ACTIONS(4508),
    [sym_package] = ACTIONS(4508),
    [sym_pragma] = ACTIONS(4508),
    [sym_private] = ACTIONS(4508),
    [sym_protected] = ACTIONS(4508),
    [sym_public] = ACTIONS(4508),
    [sym_pure] = ACTIONS(4508),
    [sym_ref] = ACTIONS(4508),
    [sym_return] = ACTIONS(4508),
    [sym_scope] = ACTIONS(4508),
    [sym_shared] = ACTIONS(4508),
    [sym_static] = ACTIONS(4508),
    [sym_struct] = ACTIONS(4508),
    [sym_synchronized] = ACTIONS(4508),
    [sym_template] = ACTIONS(4508),
    [sym_typeof] = ACTIONS(4508),
    [sym_union] = ACTIONS(4508),
    [sym_unittest] = ACTIONS(4508),
    [sym_version] = ACTIONS(4508),
    [sym_while] = ACTIONS(4508),
    [sym_gshared] = ACTIONS(4508),
    [sym_traits] = ACTIONS(4508),
    [sym_vector] = ACTIONS(4508),
    [sym_void] = ACTIONS(4508),
    [sym_directive] = ACTIONS(3),
  },
  [2618] = {
    [sym_identifier] = ACTIONS(4492),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4494),
    [anon_sym_SEMI] = ACTIONS(4494),
    [anon_sym_TILDE] = ACTIONS(4494),
    [anon_sym_AT] = ACTIONS(4494),
    [sym_bool] = ACTIONS(4492),
    [sym_byte] = ACTIONS(4492),
    [sym_ubyte] = ACTIONS(4492),
    [sym_char] = ACTIONS(4492),
    [sym_short] = ACTIONS(4492),
    [sym_ushort] = ACTIONS(4492),
    [sym_int] = ACTIONS(4492),
    [sym_uint] = ACTIONS(4492),
    [sym_long] = ACTIONS(4492),
    [sym_ulong] = ACTIONS(4492),
    [sym_cent] = ACTIONS(4492),
    [sym_ucent] = ACTIONS(4492),
    [sym_wchar] = ACTIONS(4492),
    [sym_dchar] = ACTIONS(4492),
    [sym_float] = ACTIONS(4492),
    [sym_double] = ACTIONS(4492),
    [sym_real] = ACTIONS(4492),
    [sym_ifloat] = ACTIONS(4492),
    [sym_idouble] = ACTIONS(4492),
    [sym_ireal] = ACTIONS(4492),
    [sym_cfloat] = ACTIONS(4492),
    [sym_cdouble] = ACTIONS(4492),
    [sym_creal] = ACTIONS(4492),
    [sym_size_t] = ACTIONS(4492),
    [sym_ptrdiff_t] = ACTIONS(4492),
    [sym_string] = ACTIONS(4492),
    [sym_cstring] = ACTIONS(4492),
    [sym_dstring] = ACTIONS(4492),
    [sym_wstring] = ACTIONS(4492),
    [sym_noreturn] = ACTIONS(4492),
    [sym_this] = ACTIONS(4492),
    [sym_abstract] = ACTIONS(4492),
    [sym_alias] = ACTIONS(4492),
    [sym_align] = ACTIONS(4492),
    [sym_auto] = ACTIONS(4492),
    [sym_catch] = ACTIONS(4492),
    [sym_class] = ACTIONS(4492),
    [sym_const] = ACTIONS(4492),
    [sym_debug] = ACTIONS(4492),
    [sym_deprecated] = ACTIONS(4492),
    [sym_else] = ACTIONS(4492),
    [sym_enum] = ACTIONS(4492),
    [sym_export] = ACTIONS(4492),
    [sym_extern] = ACTIONS(4492),
    [sym_final] = ACTIONS(4492),
    [sym_finally] = ACTIONS(4492),
    [sym_immutable] = ACTIONS(4492),
    [sym_import] = ACTIONS(4492),
    [sym_inout] = ACTIONS(4492),
    [sym_interface] = ACTIONS(4492),
    [sym_invariant] = ACTIONS(4492),
    [sym_mixin] = ACTIONS(4492),
    [sym_nothrow] = ACTIONS(4492),
    [sym_override] = ACTIONS(4492),
    [sym_package] = ACTIONS(4492),
    [sym_pragma] = ACTIONS(4492),
    [sym_private] = ACTIONS(4492),
    [sym_protected] = ACTIONS(4492),
    [sym_public] = ACTIONS(4492),
    [sym_pure] = ACTIONS(4492),
    [sym_ref] = ACTIONS(4492),
    [sym_return] = ACTIONS(4492),
    [sym_scope] = ACTIONS(4492),
    [sym_shared] = ACTIONS(4492),
    [sym_static] = ACTIONS(4492),
    [sym_struct] = ACTIONS(4492),
    [sym_synchronized] = ACTIONS(4492),
    [sym_template] = ACTIONS(4492),
    [sym_typeof] = ACTIONS(4492),
    [sym_union] = ACTIONS(4492),
    [sym_unittest] = ACTIONS(4492),
    [sym_version] = ACTIONS(4492),
    [sym_while] = ACTIONS(4492),
    [sym_gshared] = ACTIONS(4492),
    [sym_traits] = ACTIONS(4492),
    [sym_vector] = ACTIONS(4492),
    [sym_void] = ACTIONS(4492),
    [sym_directive] = ACTIONS(3),
  },
  [2619] = {
    [sym_identifier] = ACTIONS(4504),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4506),
    [anon_sym_SEMI] = ACTIONS(4506),
    [anon_sym_TILDE] = ACTIONS(4506),
    [anon_sym_AT] = ACTIONS(4506),
    [sym_bool] = ACTIONS(4504),
    [sym_byte] = ACTIONS(4504),
    [sym_ubyte] = ACTIONS(4504),
    [sym_char] = ACTIONS(4504),
    [sym_short] = ACTIONS(4504),
    [sym_ushort] = ACTIONS(4504),
    [sym_int] = ACTIONS(4504),
    [sym_uint] = ACTIONS(4504),
    [sym_long] = ACTIONS(4504),
    [sym_ulong] = ACTIONS(4504),
    [sym_cent] = ACTIONS(4504),
    [sym_ucent] = ACTIONS(4504),
    [sym_wchar] = ACTIONS(4504),
    [sym_dchar] = ACTIONS(4504),
    [sym_float] = ACTIONS(4504),
    [sym_double] = ACTIONS(4504),
    [sym_real] = ACTIONS(4504),
    [sym_ifloat] = ACTIONS(4504),
    [sym_idouble] = ACTIONS(4504),
    [sym_ireal] = ACTIONS(4504),
    [sym_cfloat] = ACTIONS(4504),
    [sym_cdouble] = ACTIONS(4504),
    [sym_creal] = ACTIONS(4504),
    [sym_size_t] = ACTIONS(4504),
    [sym_ptrdiff_t] = ACTIONS(4504),
    [sym_string] = ACTIONS(4504),
    [sym_cstring] = ACTIONS(4504),
    [sym_dstring] = ACTIONS(4504),
    [sym_wstring] = ACTIONS(4504),
    [sym_noreturn] = ACTIONS(4504),
    [sym_this] = ACTIONS(4504),
    [sym_abstract] = ACTIONS(4504),
    [sym_alias] = ACTIONS(4504),
    [sym_align] = ACTIONS(4504),
    [sym_auto] = ACTIONS(4504),
    [sym_catch] = ACTIONS(4504),
    [sym_class] = ACTIONS(4504),
    [sym_const] = ACTIONS(4504),
    [sym_debug] = ACTIONS(4504),
    [sym_deprecated] = ACTIONS(4504),
    [sym_else] = ACTIONS(4504),
    [sym_enum] = ACTIONS(4504),
    [sym_export] = ACTIONS(4504),
    [sym_extern] = ACTIONS(4504),
    [sym_final] = ACTIONS(4504),
    [sym_finally] = ACTIONS(4504),
    [sym_immutable] = ACTIONS(4504),
    [sym_import] = ACTIONS(4504),
    [sym_inout] = ACTIONS(4504),
    [sym_interface] = ACTIONS(4504),
    [sym_invariant] = ACTIONS(4504),
    [sym_mixin] = ACTIONS(4504),
    [sym_nothrow] = ACTIONS(4504),
    [sym_override] = ACTIONS(4504),
    [sym_package] = ACTIONS(4504),
    [sym_pragma] = ACTIONS(4504),
    [sym_private] = ACTIONS(4504),
    [sym_protected] = ACTIONS(4504),
    [sym_public] = ACTIONS(4504),
    [sym_pure] = ACTIONS(4504),
    [sym_ref] = ACTIONS(4504),
    [sym_return] = ACTIONS(4504),
    [sym_scope] = ACTIONS(4504),
    [sym_shared] = ACTIONS(4504),
    [sym_static] = ACTIONS(4504),
    [sym_struct] = ACTIONS(4504),
    [sym_synchronized] = ACTIONS(4504),
    [sym_template] = ACTIONS(4504),
    [sym_typeof] = ACTIONS(4504),
    [sym_union] = ACTIONS(4504),
    [sym_unittest] = ACTIONS(4504),
    [sym_version] = ACTIONS(4504),
    [sym_while] = ACTIONS(4504),
    [sym_gshared] = ACTIONS(4504),
    [sym_traits] = ACTIONS(4504),
    [sym_vector] = ACTIONS(4504),
    [sym_void] = ACTIONS(4504),
    [sym_directive] = ACTIONS(3),
  },
  [2620] = {
    [ts_builtin_sym_end] = ACTIONS(4672),
    [sym_identifier] = ACTIONS(4670),
    [sym_end_file] = ACTIONS(4670),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4672),
    [anon_sym_SEMI] = ACTIONS(4672),
    [anon_sym_TILDE] = ACTIONS(4672),
    [anon_sym_AT] = ACTIONS(4672),
    [sym_bool] = ACTIONS(4670),
    [sym_byte] = ACTIONS(4670),
    [sym_ubyte] = ACTIONS(4670),
    [sym_char] = ACTIONS(4670),
    [sym_short] = ACTIONS(4670),
    [sym_ushort] = ACTIONS(4670),
    [sym_int] = ACTIONS(4670),
    [sym_uint] = ACTIONS(4670),
    [sym_long] = ACTIONS(4670),
    [sym_ulong] = ACTIONS(4670),
    [sym_cent] = ACTIONS(4670),
    [sym_ucent] = ACTIONS(4670),
    [sym_wchar] = ACTIONS(4670),
    [sym_dchar] = ACTIONS(4670),
    [sym_float] = ACTIONS(4670),
    [sym_double] = ACTIONS(4670),
    [sym_real] = ACTIONS(4670),
    [sym_ifloat] = ACTIONS(4670),
    [sym_idouble] = ACTIONS(4670),
    [sym_ireal] = ACTIONS(4670),
    [sym_cfloat] = ACTIONS(4670),
    [sym_cdouble] = ACTIONS(4670),
    [sym_creal] = ACTIONS(4670),
    [sym_size_t] = ACTIONS(4670),
    [sym_ptrdiff_t] = ACTIONS(4670),
    [sym_string] = ACTIONS(4670),
    [sym_cstring] = ACTIONS(4670),
    [sym_dstring] = ACTIONS(4670),
    [sym_wstring] = ACTIONS(4670),
    [sym_noreturn] = ACTIONS(4670),
    [sym_this] = ACTIONS(4670),
    [sym_abstract] = ACTIONS(4670),
    [sym_alias] = ACTIONS(4670),
    [sym_align] = ACTIONS(4670),
    [sym_auto] = ACTIONS(4670),
    [sym_class] = ACTIONS(4670),
    [sym_const] = ACTIONS(4670),
    [sym_debug] = ACTIONS(4670),
    [sym_deprecated] = ACTIONS(4670),
    [sym_else] = ACTIONS(4670),
    [sym_enum] = ACTIONS(4670),
    [sym_export] = ACTIONS(4670),
    [sym_extern] = ACTIONS(4670),
    [sym_final] = ACTIONS(4670),
    [sym_immutable] = ACTIONS(4670),
    [sym_import] = ACTIONS(4670),
    [sym_inout] = ACTIONS(4670),
    [sym_interface] = ACTIONS(4670),
    [sym_invariant] = ACTIONS(4670),
    [sym_mixin] = ACTIONS(4670),
    [sym_nothrow] = ACTIONS(4670),
    [sym_override] = ACTIONS(4670),
    [sym_package] = ACTIONS(4670),
    [sym_pragma] = ACTIONS(4670),
    [sym_private] = ACTIONS(4670),
    [sym_protected] = ACTIONS(4670),
    [sym_public] = ACTIONS(4670),
    [sym_pure] = ACTIONS(4670),
    [sym_ref] = ACTIONS(4670),
    [sym_return] = ACTIONS(4670),
    [sym_scope] = ACTIONS(4670),
    [sym_shared] = ACTIONS(4670),
    [sym_static] = ACTIONS(4670),
    [sym_struct] = ACTIONS(4670),
    [sym_synchronized] = ACTIONS(4670),
    [sym_template] = ACTIONS(4670),
    [sym_typeof] = ACTIONS(4670),
    [sym_union] = ACTIONS(4670),
    [sym_unittest] = ACTIONS(4670),
    [sym_version] = ACTIONS(4670),
    [sym_while] = ACTIONS(4670),
    [sym_gshared] = ACTIONS(4670),
    [sym_traits] = ACTIONS(4670),
    [sym_vector] = ACTIONS(4670),
    [sym_void] = ACTIONS(4670),
    [sym_directive] = ACTIONS(3),
  },
  [2621] = {
    [ts_builtin_sym_end] = ACTIONS(4664),
    [sym_identifier] = ACTIONS(4662),
    [sym_end_file] = ACTIONS(4662),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4664),
    [anon_sym_SEMI] = ACTIONS(4664),
    [anon_sym_TILDE] = ACTIONS(4664),
    [anon_sym_AT] = ACTIONS(4664),
    [sym_bool] = ACTIONS(4662),
    [sym_byte] = ACTIONS(4662),
    [sym_ubyte] = ACTIONS(4662),
    [sym_char] = ACTIONS(4662),
    [sym_short] = ACTIONS(4662),
    [sym_ushort] = ACTIONS(4662),
    [sym_int] = ACTIONS(4662),
    [sym_uint] = ACTIONS(4662),
    [sym_long] = ACTIONS(4662),
    [sym_ulong] = ACTIONS(4662),
    [sym_cent] = ACTIONS(4662),
    [sym_ucent] = ACTIONS(4662),
    [sym_wchar] = ACTIONS(4662),
    [sym_dchar] = ACTIONS(4662),
    [sym_float] = ACTIONS(4662),
    [sym_double] = ACTIONS(4662),
    [sym_real] = ACTIONS(4662),
    [sym_ifloat] = ACTIONS(4662),
    [sym_idouble] = ACTIONS(4662),
    [sym_ireal] = ACTIONS(4662),
    [sym_cfloat] = ACTIONS(4662),
    [sym_cdouble] = ACTIONS(4662),
    [sym_creal] = ACTIONS(4662),
    [sym_size_t] = ACTIONS(4662),
    [sym_ptrdiff_t] = ACTIONS(4662),
    [sym_string] = ACTIONS(4662),
    [sym_cstring] = ACTIONS(4662),
    [sym_dstring] = ACTIONS(4662),
    [sym_wstring] = ACTIONS(4662),
    [sym_noreturn] = ACTIONS(4662),
    [sym_this] = ACTIONS(4662),
    [sym_abstract] = ACTIONS(4662),
    [sym_alias] = ACTIONS(4662),
    [sym_align] = ACTIONS(4662),
    [sym_auto] = ACTIONS(4662),
    [sym_class] = ACTIONS(4662),
    [sym_const] = ACTIONS(4662),
    [sym_debug] = ACTIONS(4662),
    [sym_deprecated] = ACTIONS(4662),
    [sym_else] = ACTIONS(4662),
    [sym_enum] = ACTIONS(4662),
    [sym_export] = ACTIONS(4662),
    [sym_extern] = ACTIONS(4662),
    [sym_final] = ACTIONS(4662),
    [sym_immutable] = ACTIONS(4662),
    [sym_import] = ACTIONS(4662),
    [sym_inout] = ACTIONS(4662),
    [sym_interface] = ACTIONS(4662),
    [sym_invariant] = ACTIONS(4662),
    [sym_mixin] = ACTIONS(4662),
    [sym_nothrow] = ACTIONS(4662),
    [sym_override] = ACTIONS(4662),
    [sym_package] = ACTIONS(4662),
    [sym_pragma] = ACTIONS(4662),
    [sym_private] = ACTIONS(4662),
    [sym_protected] = ACTIONS(4662),
    [sym_public] = ACTIONS(4662),
    [sym_pure] = ACTIONS(4662),
    [sym_ref] = ACTIONS(4662),
    [sym_return] = ACTIONS(4662),
    [sym_scope] = ACTIONS(4662),
    [sym_shared] = ACTIONS(4662),
    [sym_static] = ACTIONS(4662),
    [sym_struct] = ACTIONS(4662),
    [sym_synchronized] = ACTIONS(4662),
    [sym_template] = ACTIONS(4662),
    [sym_typeof] = ACTIONS(4662),
    [sym_union] = ACTIONS(4662),
    [sym_unittest] = ACTIONS(4662),
    [sym_version] = ACTIONS(4662),
    [sym_while] = ACTIONS(4662),
    [sym_gshared] = ACTIONS(4662),
    [sym_traits] = ACTIONS(4662),
    [sym_vector] = ACTIONS(4662),
    [sym_void] = ACTIONS(4662),
    [sym_directive] = ACTIONS(3),
  },
  [2622] = {
    [ts_builtin_sym_end] = ACTIONS(4518),
    [sym_identifier] = ACTIONS(4516),
    [sym_end_file] = ACTIONS(4516),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4518),
    [anon_sym_SEMI] = ACTIONS(4518),
    [anon_sym_TILDE] = ACTIONS(4518),
    [anon_sym_AT] = ACTIONS(4518),
    [sym_bool] = ACTIONS(4516),
    [sym_byte] = ACTIONS(4516),
    [sym_ubyte] = ACTIONS(4516),
    [sym_char] = ACTIONS(4516),
    [sym_short] = ACTIONS(4516),
    [sym_ushort] = ACTIONS(4516),
    [sym_int] = ACTIONS(4516),
    [sym_uint] = ACTIONS(4516),
    [sym_long] = ACTIONS(4516),
    [sym_ulong] = ACTIONS(4516),
    [sym_cent] = ACTIONS(4516),
    [sym_ucent] = ACTIONS(4516),
    [sym_wchar] = ACTIONS(4516),
    [sym_dchar] = ACTIONS(4516),
    [sym_float] = ACTIONS(4516),
    [sym_double] = ACTIONS(4516),
    [sym_real] = ACTIONS(4516),
    [sym_ifloat] = ACTIONS(4516),
    [sym_idouble] = ACTIONS(4516),
    [sym_ireal] = ACTIONS(4516),
    [sym_cfloat] = ACTIONS(4516),
    [sym_cdouble] = ACTIONS(4516),
    [sym_creal] = ACTIONS(4516),
    [sym_size_t] = ACTIONS(4516),
    [sym_ptrdiff_t] = ACTIONS(4516),
    [sym_string] = ACTIONS(4516),
    [sym_cstring] = ACTIONS(4516),
    [sym_dstring] = ACTIONS(4516),
    [sym_wstring] = ACTIONS(4516),
    [sym_noreturn] = ACTIONS(4516),
    [sym_this] = ACTIONS(4516),
    [sym_abstract] = ACTIONS(4516),
    [sym_alias] = ACTIONS(4516),
    [sym_align] = ACTIONS(4516),
    [sym_auto] = ACTIONS(4516),
    [sym_class] = ACTIONS(4516),
    [sym_const] = ACTIONS(4516),
    [sym_debug] = ACTIONS(4516),
    [sym_deprecated] = ACTIONS(4516),
    [sym_else] = ACTIONS(4516),
    [sym_enum] = ACTIONS(4516),
    [sym_export] = ACTIONS(4516),
    [sym_extern] = ACTIONS(4516),
    [sym_final] = ACTIONS(4516),
    [sym_immutable] = ACTIONS(4516),
    [sym_import] = ACTIONS(4516),
    [sym_inout] = ACTIONS(4516),
    [sym_interface] = ACTIONS(4516),
    [sym_invariant] = ACTIONS(4516),
    [sym_mixin] = ACTIONS(4516),
    [sym_nothrow] = ACTIONS(4516),
    [sym_override] = ACTIONS(4516),
    [sym_package] = ACTIONS(4516),
    [sym_pragma] = ACTIONS(4516),
    [sym_private] = ACTIONS(4516),
    [sym_protected] = ACTIONS(4516),
    [sym_public] = ACTIONS(4516),
    [sym_pure] = ACTIONS(4516),
    [sym_ref] = ACTIONS(4516),
    [sym_return] = ACTIONS(4516),
    [sym_scope] = ACTIONS(4516),
    [sym_shared] = ACTIONS(4516),
    [sym_static] = ACTIONS(4516),
    [sym_struct] = ACTIONS(4516),
    [sym_synchronized] = ACTIONS(4516),
    [sym_template] = ACTIONS(4516),
    [sym_typeof] = ACTIONS(4516),
    [sym_union] = ACTIONS(4516),
    [sym_unittest] = ACTIONS(4516),
    [sym_version] = ACTIONS(4516),
    [sym_while] = ACTIONS(4516),
    [sym_gshared] = ACTIONS(4516),
    [sym_traits] = ACTIONS(4516),
    [sym_vector] = ACTIONS(4516),
    [sym_void] = ACTIONS(4516),
    [sym_directive] = ACTIONS(3),
  },
  [2623] = {
    [sym_identifier] = ACTIONS(4524),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4526),
    [anon_sym_SEMI] = ACTIONS(4526),
    [anon_sym_TILDE] = ACTIONS(4526),
    [anon_sym_AT] = ACTIONS(4526),
    [sym_bool] = ACTIONS(4524),
    [sym_byte] = ACTIONS(4524),
    [sym_ubyte] = ACTIONS(4524),
    [sym_char] = ACTIONS(4524),
    [sym_short] = ACTIONS(4524),
    [sym_ushort] = ACTIONS(4524),
    [sym_int] = ACTIONS(4524),
    [sym_uint] = ACTIONS(4524),
    [sym_long] = ACTIONS(4524),
    [sym_ulong] = ACTIONS(4524),
    [sym_cent] = ACTIONS(4524),
    [sym_ucent] = ACTIONS(4524),
    [sym_wchar] = ACTIONS(4524),
    [sym_dchar] = ACTIONS(4524),
    [sym_float] = ACTIONS(4524),
    [sym_double] = ACTIONS(4524),
    [sym_real] = ACTIONS(4524),
    [sym_ifloat] = ACTIONS(4524),
    [sym_idouble] = ACTIONS(4524),
    [sym_ireal] = ACTIONS(4524),
    [sym_cfloat] = ACTIONS(4524),
    [sym_cdouble] = ACTIONS(4524),
    [sym_creal] = ACTIONS(4524),
    [sym_size_t] = ACTIONS(4524),
    [sym_ptrdiff_t] = ACTIONS(4524),
    [sym_string] = ACTIONS(4524),
    [sym_cstring] = ACTIONS(4524),
    [sym_dstring] = ACTIONS(4524),
    [sym_wstring] = ACTIONS(4524),
    [sym_noreturn] = ACTIONS(4524),
    [sym_this] = ACTIONS(4524),
    [sym_abstract] = ACTIONS(4524),
    [sym_alias] = ACTIONS(4524),
    [sym_align] = ACTIONS(4524),
    [sym_auto] = ACTIONS(4524),
    [sym_catch] = ACTIONS(4524),
    [sym_class] = ACTIONS(4524),
    [sym_const] = ACTIONS(4524),
    [sym_debug] = ACTIONS(4524),
    [sym_deprecated] = ACTIONS(4524),
    [sym_else] = ACTIONS(4524),
    [sym_enum] = ACTIONS(4524),
    [sym_export] = ACTIONS(4524),
    [sym_extern] = ACTIONS(4524),
    [sym_final] = ACTIONS(4524),
    [sym_finally] = ACTIONS(4524),
    [sym_immutable] = ACTIONS(4524),
    [sym_import] = ACTIONS(4524),
    [sym_inout] = ACTIONS(4524),
    [sym_interface] = ACTIONS(4524),
    [sym_invariant] = ACTIONS(4524),
    [sym_mixin] = ACTIONS(4524),
    [sym_nothrow] = ACTIONS(4524),
    [sym_override] = ACTIONS(4524),
    [sym_package] = ACTIONS(4524),
    [sym_pragma] = ACTIONS(4524),
    [sym_private] = ACTIONS(4524),
    [sym_protected] = ACTIONS(4524),
    [sym_public] = ACTIONS(4524),
    [sym_pure] = ACTIONS(4524),
    [sym_ref] = ACTIONS(4524),
    [sym_return] = ACTIONS(4524),
    [sym_scope] = ACTIONS(4524),
    [sym_shared] = ACTIONS(4524),
    [sym_static] = ACTIONS(4524),
    [sym_struct] = ACTIONS(4524),
    [sym_synchronized] = ACTIONS(4524),
    [sym_template] = ACTIONS(4524),
    [sym_typeof] = ACTIONS(4524),
    [sym_union] = ACTIONS(4524),
    [sym_unittest] = ACTIONS(4524),
    [sym_version] = ACTIONS(4524),
    [sym_while] = ACTIONS(4524),
    [sym_gshared] = ACTIONS(4524),
    [sym_traits] = ACTIONS(4524),
    [sym_vector] = ACTIONS(4524),
    [sym_void] = ACTIONS(4524),
    [sym_directive] = ACTIONS(3),
  },
  [2624] = {
    [ts_builtin_sym_end] = ACTIONS(4652),
    [sym_identifier] = ACTIONS(4650),
    [sym_end_file] = ACTIONS(4650),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4652),
    [anon_sym_SEMI] = ACTIONS(4652),
    [anon_sym_TILDE] = ACTIONS(4652),
    [anon_sym_AT] = ACTIONS(4652),
    [sym_bool] = ACTIONS(4650),
    [sym_byte] = ACTIONS(4650),
    [sym_ubyte] = ACTIONS(4650),
    [sym_char] = ACTIONS(4650),
    [sym_short] = ACTIONS(4650),
    [sym_ushort] = ACTIONS(4650),
    [sym_int] = ACTIONS(4650),
    [sym_uint] = ACTIONS(4650),
    [sym_long] = ACTIONS(4650),
    [sym_ulong] = ACTIONS(4650),
    [sym_cent] = ACTIONS(4650),
    [sym_ucent] = ACTIONS(4650),
    [sym_wchar] = ACTIONS(4650),
    [sym_dchar] = ACTIONS(4650),
    [sym_float] = ACTIONS(4650),
    [sym_double] = ACTIONS(4650),
    [sym_real] = ACTIONS(4650),
    [sym_ifloat] = ACTIONS(4650),
    [sym_idouble] = ACTIONS(4650),
    [sym_ireal] = ACTIONS(4650),
    [sym_cfloat] = ACTIONS(4650),
    [sym_cdouble] = ACTIONS(4650),
    [sym_creal] = ACTIONS(4650),
    [sym_size_t] = ACTIONS(4650),
    [sym_ptrdiff_t] = ACTIONS(4650),
    [sym_string] = ACTIONS(4650),
    [sym_cstring] = ACTIONS(4650),
    [sym_dstring] = ACTIONS(4650),
    [sym_wstring] = ACTIONS(4650),
    [sym_noreturn] = ACTIONS(4650),
    [sym_this] = ACTIONS(4650),
    [sym_abstract] = ACTIONS(4650),
    [sym_alias] = ACTIONS(4650),
    [sym_align] = ACTIONS(4650),
    [sym_auto] = ACTIONS(4650),
    [sym_class] = ACTIONS(4650),
    [sym_const] = ACTIONS(4650),
    [sym_debug] = ACTIONS(4650),
    [sym_deprecated] = ACTIONS(4650),
    [sym_else] = ACTIONS(4650),
    [sym_enum] = ACTIONS(4650),
    [sym_export] = ACTIONS(4650),
    [sym_extern] = ACTIONS(4650),
    [sym_final] = ACTIONS(4650),
    [sym_immutable] = ACTIONS(4650),
    [sym_import] = ACTIONS(4650),
    [sym_inout] = ACTIONS(4650),
    [sym_interface] = ACTIONS(4650),
    [sym_invariant] = ACTIONS(4650),
    [sym_mixin] = ACTIONS(4650),
    [sym_nothrow] = ACTIONS(4650),
    [sym_override] = ACTIONS(4650),
    [sym_package] = ACTIONS(4650),
    [sym_pragma] = ACTIONS(4650),
    [sym_private] = ACTIONS(4650),
    [sym_protected] = ACTIONS(4650),
    [sym_public] = ACTIONS(4650),
    [sym_pure] = ACTIONS(4650),
    [sym_ref] = ACTIONS(4650),
    [sym_return] = ACTIONS(4650),
    [sym_scope] = ACTIONS(4650),
    [sym_shared] = ACTIONS(4650),
    [sym_static] = ACTIONS(4650),
    [sym_struct] = ACTIONS(4650),
    [sym_synchronized] = ACTIONS(4650),
    [sym_template] = ACTIONS(4650),
    [sym_typeof] = ACTIONS(4650),
    [sym_union] = ACTIONS(4650),
    [sym_unittest] = ACTIONS(4650),
    [sym_version] = ACTIONS(4650),
    [sym_while] = ACTIONS(4650),
    [sym_gshared] = ACTIONS(4650),
    [sym_traits] = ACTIONS(4650),
    [sym_vector] = ACTIONS(4650),
    [sym_void] = ACTIONS(4650),
    [sym_directive] = ACTIONS(3),
  },
  [2625] = {
    [ts_builtin_sym_end] = ACTIONS(4531),
    [sym_identifier] = ACTIONS(4528),
    [sym_end_file] = ACTIONS(4528),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4531),
    [anon_sym_SEMI] = ACTIONS(4531),
    [anon_sym_TILDE] = ACTIONS(4531),
    [anon_sym_AT] = ACTIONS(4531),
    [sym_bool] = ACTIONS(4528),
    [sym_byte] = ACTIONS(4528),
    [sym_ubyte] = ACTIONS(4528),
    [sym_char] = ACTIONS(4528),
    [sym_short] = ACTIONS(4528),
    [sym_ushort] = ACTIONS(4528),
    [sym_int] = ACTIONS(4528),
    [sym_uint] = ACTIONS(4528),
    [sym_long] = ACTIONS(4528),
    [sym_ulong] = ACTIONS(4528),
    [sym_cent] = ACTIONS(4528),
    [sym_ucent] = ACTIONS(4528),
    [sym_wchar] = ACTIONS(4528),
    [sym_dchar] = ACTIONS(4528),
    [sym_float] = ACTIONS(4528),
    [sym_double] = ACTIONS(4528),
    [sym_real] = ACTIONS(4528),
    [sym_ifloat] = ACTIONS(4528),
    [sym_idouble] = ACTIONS(4528),
    [sym_ireal] = ACTIONS(4528),
    [sym_cfloat] = ACTIONS(4528),
    [sym_cdouble] = ACTIONS(4528),
    [sym_creal] = ACTIONS(4528),
    [sym_size_t] = ACTIONS(4528),
    [sym_ptrdiff_t] = ACTIONS(4528),
    [sym_string] = ACTIONS(4528),
    [sym_cstring] = ACTIONS(4528),
    [sym_dstring] = ACTIONS(4528),
    [sym_wstring] = ACTIONS(4528),
    [sym_noreturn] = ACTIONS(4528),
    [sym_this] = ACTIONS(4528),
    [sym_abstract] = ACTIONS(4528),
    [sym_alias] = ACTIONS(4528),
    [sym_align] = ACTIONS(4528),
    [sym_auto] = ACTIONS(4528),
    [sym_class] = ACTIONS(4528),
    [sym_const] = ACTIONS(4528),
    [sym_debug] = ACTIONS(4528),
    [sym_deprecated] = ACTIONS(4528),
    [sym_else] = ACTIONS(4528),
    [sym_enum] = ACTIONS(4528),
    [sym_export] = ACTIONS(4528),
    [sym_extern] = ACTIONS(4528),
    [sym_final] = ACTIONS(4528),
    [sym_immutable] = ACTIONS(4528),
    [sym_import] = ACTIONS(4528),
    [sym_inout] = ACTIONS(4528),
    [sym_interface] = ACTIONS(4528),
    [sym_invariant] = ACTIONS(4528),
    [sym_mixin] = ACTIONS(4528),
    [sym_nothrow] = ACTIONS(4528),
    [sym_override] = ACTIONS(4528),
    [sym_package] = ACTIONS(4528),
    [sym_pragma] = ACTIONS(4528),
    [sym_private] = ACTIONS(4528),
    [sym_protected] = ACTIONS(4528),
    [sym_public] = ACTIONS(4528),
    [sym_pure] = ACTIONS(4528),
    [sym_ref] = ACTIONS(4528),
    [sym_return] = ACTIONS(4528),
    [sym_scope] = ACTIONS(4528),
    [sym_shared] = ACTIONS(4528),
    [sym_static] = ACTIONS(4528),
    [sym_struct] = ACTIONS(4528),
    [sym_synchronized] = ACTIONS(4528),
    [sym_template] = ACTIONS(4528),
    [sym_typeof] = ACTIONS(4528),
    [sym_union] = ACTIONS(4528),
    [sym_unittest] = ACTIONS(4528),
    [sym_version] = ACTIONS(4528),
    [sym_while] = ACTIONS(4528),
    [sym_gshared] = ACTIONS(4528),
    [sym_traits] = ACTIONS(4528),
    [sym_vector] = ACTIONS(4528),
    [sym_void] = ACTIONS(4528),
    [sym_directive] = ACTIONS(3),
  },
  [2626] = {
    [ts_builtin_sym_end] = ACTIONS(4291),
    [sym_identifier] = ACTIONS(4289),
    [sym_end_file] = ACTIONS(4289),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4291),
    [anon_sym_SEMI] = ACTIONS(4291),
    [anon_sym_TILDE] = ACTIONS(4291),
    [anon_sym_AT] = ACTIONS(4291),
    [sym_bool] = ACTIONS(4289),
    [sym_byte] = ACTIONS(4289),
    [sym_ubyte] = ACTIONS(4289),
    [sym_char] = ACTIONS(4289),
    [sym_short] = ACTIONS(4289),
    [sym_ushort] = ACTIONS(4289),
    [sym_int] = ACTIONS(4289),
    [sym_uint] = ACTIONS(4289),
    [sym_long] = ACTIONS(4289),
    [sym_ulong] = ACTIONS(4289),
    [sym_cent] = ACTIONS(4289),
    [sym_ucent] = ACTIONS(4289),
    [sym_wchar] = ACTIONS(4289),
    [sym_dchar] = ACTIONS(4289),
    [sym_float] = ACTIONS(4289),
    [sym_double] = ACTIONS(4289),
    [sym_real] = ACTIONS(4289),
    [sym_ifloat] = ACTIONS(4289),
    [sym_idouble] = ACTIONS(4289),
    [sym_ireal] = ACTIONS(4289),
    [sym_cfloat] = ACTIONS(4289),
    [sym_cdouble] = ACTIONS(4289),
    [sym_creal] = ACTIONS(4289),
    [sym_size_t] = ACTIONS(4289),
    [sym_ptrdiff_t] = ACTIONS(4289),
    [sym_string] = ACTIONS(4289),
    [sym_cstring] = ACTIONS(4289),
    [sym_dstring] = ACTIONS(4289),
    [sym_wstring] = ACTIONS(4289),
    [sym_noreturn] = ACTIONS(4289),
    [sym_this] = ACTIONS(4289),
    [sym_abstract] = ACTIONS(4289),
    [sym_alias] = ACTIONS(4289),
    [sym_align] = ACTIONS(4289),
    [sym_auto] = ACTIONS(4289),
    [sym_class] = ACTIONS(4289),
    [sym_const] = ACTIONS(4289),
    [sym_debug] = ACTIONS(4289),
    [sym_deprecated] = ACTIONS(4289),
    [sym_else] = ACTIONS(4289),
    [sym_enum] = ACTIONS(4289),
    [sym_export] = ACTIONS(4289),
    [sym_extern] = ACTIONS(4289),
    [sym_final] = ACTIONS(4289),
    [sym_immutable] = ACTIONS(4289),
    [sym_import] = ACTIONS(4289),
    [sym_inout] = ACTIONS(4289),
    [sym_interface] = ACTIONS(4289),
    [sym_invariant] = ACTIONS(4289),
    [sym_mixin] = ACTIONS(4289),
    [sym_nothrow] = ACTIONS(4289),
    [sym_override] = ACTIONS(4289),
    [sym_package] = ACTIONS(4289),
    [sym_pragma] = ACTIONS(4289),
    [sym_private] = ACTIONS(4289),
    [sym_protected] = ACTIONS(4289),
    [sym_public] = ACTIONS(4289),
    [sym_pure] = ACTIONS(4289),
    [sym_ref] = ACTIONS(4289),
    [sym_return] = ACTIONS(4289),
    [sym_scope] = ACTIONS(4289),
    [sym_shared] = ACTIONS(4289),
    [sym_static] = ACTIONS(4289),
    [sym_struct] = ACTIONS(4289),
    [sym_synchronized] = ACTIONS(4289),
    [sym_template] = ACTIONS(4289),
    [sym_typeof] = ACTIONS(4289),
    [sym_union] = ACTIONS(4289),
    [sym_unittest] = ACTIONS(4289),
    [sym_version] = ACTIONS(4289),
    [sym_while] = ACTIONS(4289),
    [sym_gshared] = ACTIONS(4289),
    [sym_traits] = ACTIONS(4289),
    [sym_vector] = ACTIONS(4289),
    [sym_void] = ACTIONS(4289),
    [sym_directive] = ACTIONS(3),
  },
  [2627] = {
    [ts_builtin_sym_end] = ACTIONS(5034),
    [sym_identifier] = ACTIONS(5032),
    [sym_end_file] = ACTIONS(5032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5034),
    [anon_sym_SEMI] = ACTIONS(5034),
    [anon_sym_TILDE] = ACTIONS(5034),
    [anon_sym_AT] = ACTIONS(5034),
    [sym_bool] = ACTIONS(5032),
    [sym_byte] = ACTIONS(5032),
    [sym_ubyte] = ACTIONS(5032),
    [sym_char] = ACTIONS(5032),
    [sym_short] = ACTIONS(5032),
    [sym_ushort] = ACTIONS(5032),
    [sym_int] = ACTIONS(5032),
    [sym_uint] = ACTIONS(5032),
    [sym_long] = ACTIONS(5032),
    [sym_ulong] = ACTIONS(5032),
    [sym_cent] = ACTIONS(5032),
    [sym_ucent] = ACTIONS(5032),
    [sym_wchar] = ACTIONS(5032),
    [sym_dchar] = ACTIONS(5032),
    [sym_float] = ACTIONS(5032),
    [sym_double] = ACTIONS(5032),
    [sym_real] = ACTIONS(5032),
    [sym_ifloat] = ACTIONS(5032),
    [sym_idouble] = ACTIONS(5032),
    [sym_ireal] = ACTIONS(5032),
    [sym_cfloat] = ACTIONS(5032),
    [sym_cdouble] = ACTIONS(5032),
    [sym_creal] = ACTIONS(5032),
    [sym_size_t] = ACTIONS(5032),
    [sym_ptrdiff_t] = ACTIONS(5032),
    [sym_string] = ACTIONS(5032),
    [sym_cstring] = ACTIONS(5032),
    [sym_dstring] = ACTIONS(5032),
    [sym_wstring] = ACTIONS(5032),
    [sym_noreturn] = ACTIONS(5032),
    [sym_this] = ACTIONS(5032),
    [sym_abstract] = ACTIONS(5032),
    [sym_alias] = ACTIONS(5032),
    [sym_align] = ACTIONS(5032),
    [sym_auto] = ACTIONS(5032),
    [sym_class] = ACTIONS(5032),
    [sym_const] = ACTIONS(5032),
    [sym_debug] = ACTIONS(5032),
    [sym_deprecated] = ACTIONS(5032),
    [sym_else] = ACTIONS(5032),
    [sym_enum] = ACTIONS(5032),
    [sym_export] = ACTIONS(5032),
    [sym_extern] = ACTIONS(5032),
    [sym_final] = ACTIONS(5032),
    [sym_immutable] = ACTIONS(5032),
    [sym_import] = ACTIONS(5032),
    [sym_inout] = ACTIONS(5032),
    [sym_interface] = ACTIONS(5032),
    [sym_invariant] = ACTIONS(5032),
    [sym_mixin] = ACTIONS(5032),
    [sym_nothrow] = ACTIONS(5032),
    [sym_override] = ACTIONS(5032),
    [sym_package] = ACTIONS(5032),
    [sym_pragma] = ACTIONS(5032),
    [sym_private] = ACTIONS(5032),
    [sym_protected] = ACTIONS(5032),
    [sym_public] = ACTIONS(5032),
    [sym_pure] = ACTIONS(5032),
    [sym_ref] = ACTIONS(5032),
    [sym_return] = ACTIONS(5032),
    [sym_scope] = ACTIONS(5032),
    [sym_shared] = ACTIONS(5032),
    [sym_static] = ACTIONS(5032),
    [sym_struct] = ACTIONS(5032),
    [sym_synchronized] = ACTIONS(5032),
    [sym_template] = ACTIONS(5032),
    [sym_typeof] = ACTIONS(5032),
    [sym_union] = ACTIONS(5032),
    [sym_unittest] = ACTIONS(5032),
    [sym_version] = ACTIONS(5032),
    [sym_while] = ACTIONS(5032),
    [sym_gshared] = ACTIONS(5032),
    [sym_traits] = ACTIONS(5032),
    [sym_vector] = ACTIONS(5032),
    [sym_void] = ACTIONS(5032),
    [sym_directive] = ACTIONS(3),
  },
  [2628] = {
    [sym_identifier] = ACTIONS(4650),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4652),
    [anon_sym_SEMI] = ACTIONS(4652),
    [anon_sym_TILDE] = ACTIONS(4652),
    [anon_sym_AT] = ACTIONS(4652),
    [sym_bool] = ACTIONS(4650),
    [sym_byte] = ACTIONS(4650),
    [sym_ubyte] = ACTIONS(4650),
    [sym_char] = ACTIONS(4650),
    [sym_short] = ACTIONS(4650),
    [sym_ushort] = ACTIONS(4650),
    [sym_int] = ACTIONS(4650),
    [sym_uint] = ACTIONS(4650),
    [sym_long] = ACTIONS(4650),
    [sym_ulong] = ACTIONS(4650),
    [sym_cent] = ACTIONS(4650),
    [sym_ucent] = ACTIONS(4650),
    [sym_wchar] = ACTIONS(4650),
    [sym_dchar] = ACTIONS(4650),
    [sym_float] = ACTIONS(4650),
    [sym_double] = ACTIONS(4650),
    [sym_real] = ACTIONS(4650),
    [sym_ifloat] = ACTIONS(4650),
    [sym_idouble] = ACTIONS(4650),
    [sym_ireal] = ACTIONS(4650),
    [sym_cfloat] = ACTIONS(4650),
    [sym_cdouble] = ACTIONS(4650),
    [sym_creal] = ACTIONS(4650),
    [sym_size_t] = ACTIONS(4650),
    [sym_ptrdiff_t] = ACTIONS(4650),
    [sym_string] = ACTIONS(4650),
    [sym_cstring] = ACTIONS(4650),
    [sym_dstring] = ACTIONS(4650),
    [sym_wstring] = ACTIONS(4650),
    [sym_noreturn] = ACTIONS(4650),
    [sym_this] = ACTIONS(4650),
    [sym_abstract] = ACTIONS(4650),
    [sym_alias] = ACTIONS(4650),
    [sym_align] = ACTIONS(4650),
    [sym_auto] = ACTIONS(4650),
    [sym_catch] = ACTIONS(4650),
    [sym_class] = ACTIONS(4650),
    [sym_const] = ACTIONS(4650),
    [sym_debug] = ACTIONS(4650),
    [sym_deprecated] = ACTIONS(4650),
    [sym_else] = ACTIONS(4650),
    [sym_enum] = ACTIONS(4650),
    [sym_export] = ACTIONS(4650),
    [sym_extern] = ACTIONS(4650),
    [sym_final] = ACTIONS(4650),
    [sym_finally] = ACTIONS(4650),
    [sym_immutable] = ACTIONS(4650),
    [sym_import] = ACTIONS(4650),
    [sym_inout] = ACTIONS(4650),
    [sym_interface] = ACTIONS(4650),
    [sym_invariant] = ACTIONS(4650),
    [sym_mixin] = ACTIONS(4650),
    [sym_nothrow] = ACTIONS(4650),
    [sym_override] = ACTIONS(4650),
    [sym_package] = ACTIONS(4650),
    [sym_pragma] = ACTIONS(4650),
    [sym_private] = ACTIONS(4650),
    [sym_protected] = ACTIONS(4650),
    [sym_public] = ACTIONS(4650),
    [sym_pure] = ACTIONS(4650),
    [sym_ref] = ACTIONS(4650),
    [sym_return] = ACTIONS(4650),
    [sym_scope] = ACTIONS(4650),
    [sym_shared] = ACTIONS(4650),
    [sym_static] = ACTIONS(4650),
    [sym_struct] = ACTIONS(4650),
    [sym_synchronized] = ACTIONS(4650),
    [sym_template] = ACTIONS(4650),
    [sym_typeof] = ACTIONS(4650),
    [sym_union] = ACTIONS(4650),
    [sym_unittest] = ACTIONS(4650),
    [sym_version] = ACTIONS(4650),
    [sym_while] = ACTIONS(4650),
    [sym_gshared] = ACTIONS(4650),
    [sym_traits] = ACTIONS(4650),
    [sym_vector] = ACTIONS(4650),
    [sym_void] = ACTIONS(4650),
    [sym_directive] = ACTIONS(3),
  },
  [2629] = {
    [sym_identifier] = ACTIONS(4662),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4664),
    [anon_sym_SEMI] = ACTIONS(4664),
    [anon_sym_TILDE] = ACTIONS(4664),
    [anon_sym_AT] = ACTIONS(4664),
    [sym_bool] = ACTIONS(4662),
    [sym_byte] = ACTIONS(4662),
    [sym_ubyte] = ACTIONS(4662),
    [sym_char] = ACTIONS(4662),
    [sym_short] = ACTIONS(4662),
    [sym_ushort] = ACTIONS(4662),
    [sym_int] = ACTIONS(4662),
    [sym_uint] = ACTIONS(4662),
    [sym_long] = ACTIONS(4662),
    [sym_ulong] = ACTIONS(4662),
    [sym_cent] = ACTIONS(4662),
    [sym_ucent] = ACTIONS(4662),
    [sym_wchar] = ACTIONS(4662),
    [sym_dchar] = ACTIONS(4662),
    [sym_float] = ACTIONS(4662),
    [sym_double] = ACTIONS(4662),
    [sym_real] = ACTIONS(4662),
    [sym_ifloat] = ACTIONS(4662),
    [sym_idouble] = ACTIONS(4662),
    [sym_ireal] = ACTIONS(4662),
    [sym_cfloat] = ACTIONS(4662),
    [sym_cdouble] = ACTIONS(4662),
    [sym_creal] = ACTIONS(4662),
    [sym_size_t] = ACTIONS(4662),
    [sym_ptrdiff_t] = ACTIONS(4662),
    [sym_string] = ACTIONS(4662),
    [sym_cstring] = ACTIONS(4662),
    [sym_dstring] = ACTIONS(4662),
    [sym_wstring] = ACTIONS(4662),
    [sym_noreturn] = ACTIONS(4662),
    [sym_this] = ACTIONS(4662),
    [sym_abstract] = ACTIONS(4662),
    [sym_alias] = ACTIONS(4662),
    [sym_align] = ACTIONS(4662),
    [sym_auto] = ACTIONS(4662),
    [sym_catch] = ACTIONS(4662),
    [sym_class] = ACTIONS(4662),
    [sym_const] = ACTIONS(4662),
    [sym_debug] = ACTIONS(4662),
    [sym_deprecated] = ACTIONS(4662),
    [sym_else] = ACTIONS(4662),
    [sym_enum] = ACTIONS(4662),
    [sym_export] = ACTIONS(4662),
    [sym_extern] = ACTIONS(4662),
    [sym_final] = ACTIONS(4662),
    [sym_finally] = ACTIONS(4662),
    [sym_immutable] = ACTIONS(4662),
    [sym_import] = ACTIONS(4662),
    [sym_inout] = ACTIONS(4662),
    [sym_interface] = ACTIONS(4662),
    [sym_invariant] = ACTIONS(4662),
    [sym_mixin] = ACTIONS(4662),
    [sym_nothrow] = ACTIONS(4662),
    [sym_override] = ACTIONS(4662),
    [sym_package] = ACTIONS(4662),
    [sym_pragma] = ACTIONS(4662),
    [sym_private] = ACTIONS(4662),
    [sym_protected] = ACTIONS(4662),
    [sym_public] = ACTIONS(4662),
    [sym_pure] = ACTIONS(4662),
    [sym_ref] = ACTIONS(4662),
    [sym_return] = ACTIONS(4662),
    [sym_scope] = ACTIONS(4662),
    [sym_shared] = ACTIONS(4662),
    [sym_static] = ACTIONS(4662),
    [sym_struct] = ACTIONS(4662),
    [sym_synchronized] = ACTIONS(4662),
    [sym_template] = ACTIONS(4662),
    [sym_typeof] = ACTIONS(4662),
    [sym_union] = ACTIONS(4662),
    [sym_unittest] = ACTIONS(4662),
    [sym_version] = ACTIONS(4662),
    [sym_while] = ACTIONS(4662),
    [sym_gshared] = ACTIONS(4662),
    [sym_traits] = ACTIONS(4662),
    [sym_vector] = ACTIONS(4662),
    [sym_void] = ACTIONS(4662),
    [sym_directive] = ACTIONS(3),
  },
  [2630] = {
    [sym_identifier] = ACTIONS(4670),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4672),
    [anon_sym_SEMI] = ACTIONS(4672),
    [anon_sym_TILDE] = ACTIONS(4672),
    [anon_sym_AT] = ACTIONS(4672),
    [sym_bool] = ACTIONS(4670),
    [sym_byte] = ACTIONS(4670),
    [sym_ubyte] = ACTIONS(4670),
    [sym_char] = ACTIONS(4670),
    [sym_short] = ACTIONS(4670),
    [sym_ushort] = ACTIONS(4670),
    [sym_int] = ACTIONS(4670),
    [sym_uint] = ACTIONS(4670),
    [sym_long] = ACTIONS(4670),
    [sym_ulong] = ACTIONS(4670),
    [sym_cent] = ACTIONS(4670),
    [sym_ucent] = ACTIONS(4670),
    [sym_wchar] = ACTIONS(4670),
    [sym_dchar] = ACTIONS(4670),
    [sym_float] = ACTIONS(4670),
    [sym_double] = ACTIONS(4670),
    [sym_real] = ACTIONS(4670),
    [sym_ifloat] = ACTIONS(4670),
    [sym_idouble] = ACTIONS(4670),
    [sym_ireal] = ACTIONS(4670),
    [sym_cfloat] = ACTIONS(4670),
    [sym_cdouble] = ACTIONS(4670),
    [sym_creal] = ACTIONS(4670),
    [sym_size_t] = ACTIONS(4670),
    [sym_ptrdiff_t] = ACTIONS(4670),
    [sym_string] = ACTIONS(4670),
    [sym_cstring] = ACTIONS(4670),
    [sym_dstring] = ACTIONS(4670),
    [sym_wstring] = ACTIONS(4670),
    [sym_noreturn] = ACTIONS(4670),
    [sym_this] = ACTIONS(4670),
    [sym_abstract] = ACTIONS(4670),
    [sym_alias] = ACTIONS(4670),
    [sym_align] = ACTIONS(4670),
    [sym_auto] = ACTIONS(4670),
    [sym_catch] = ACTIONS(4670),
    [sym_class] = ACTIONS(4670),
    [sym_const] = ACTIONS(4670),
    [sym_debug] = ACTIONS(4670),
    [sym_deprecated] = ACTIONS(4670),
    [sym_else] = ACTIONS(4670),
    [sym_enum] = ACTIONS(4670),
    [sym_export] = ACTIONS(4670),
    [sym_extern] = ACTIONS(4670),
    [sym_final] = ACTIONS(4670),
    [sym_finally] = ACTIONS(4670),
    [sym_immutable] = ACTIONS(4670),
    [sym_import] = ACTIONS(4670),
    [sym_inout] = ACTIONS(4670),
    [sym_interface] = ACTIONS(4670),
    [sym_invariant] = ACTIONS(4670),
    [sym_mixin] = ACTIONS(4670),
    [sym_nothrow] = ACTIONS(4670),
    [sym_override] = ACTIONS(4670),
    [sym_package] = ACTIONS(4670),
    [sym_pragma] = ACTIONS(4670),
    [sym_private] = ACTIONS(4670),
    [sym_protected] = ACTIONS(4670),
    [sym_public] = ACTIONS(4670),
    [sym_pure] = ACTIONS(4670),
    [sym_ref] = ACTIONS(4670),
    [sym_return] = ACTIONS(4670),
    [sym_scope] = ACTIONS(4670),
    [sym_shared] = ACTIONS(4670),
    [sym_static] = ACTIONS(4670),
    [sym_struct] = ACTIONS(4670),
    [sym_synchronized] = ACTIONS(4670),
    [sym_template] = ACTIONS(4670),
    [sym_typeof] = ACTIONS(4670),
    [sym_union] = ACTIONS(4670),
    [sym_unittest] = ACTIONS(4670),
    [sym_version] = ACTIONS(4670),
    [sym_while] = ACTIONS(4670),
    [sym_gshared] = ACTIONS(4670),
    [sym_traits] = ACTIONS(4670),
    [sym_vector] = ACTIONS(4670),
    [sym_void] = ACTIONS(4670),
    [sym_directive] = ACTIONS(3),
  },
  [2631] = {
    [sym_identifier] = ACTIONS(4674),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4676),
    [anon_sym_SEMI] = ACTIONS(4676),
    [anon_sym_TILDE] = ACTIONS(4676),
    [anon_sym_AT] = ACTIONS(4676),
    [sym_bool] = ACTIONS(4674),
    [sym_byte] = ACTIONS(4674),
    [sym_ubyte] = ACTIONS(4674),
    [sym_char] = ACTIONS(4674),
    [sym_short] = ACTIONS(4674),
    [sym_ushort] = ACTIONS(4674),
    [sym_int] = ACTIONS(4674),
    [sym_uint] = ACTIONS(4674),
    [sym_long] = ACTIONS(4674),
    [sym_ulong] = ACTIONS(4674),
    [sym_cent] = ACTIONS(4674),
    [sym_ucent] = ACTIONS(4674),
    [sym_wchar] = ACTIONS(4674),
    [sym_dchar] = ACTIONS(4674),
    [sym_float] = ACTIONS(4674),
    [sym_double] = ACTIONS(4674),
    [sym_real] = ACTIONS(4674),
    [sym_ifloat] = ACTIONS(4674),
    [sym_idouble] = ACTIONS(4674),
    [sym_ireal] = ACTIONS(4674),
    [sym_cfloat] = ACTIONS(4674),
    [sym_cdouble] = ACTIONS(4674),
    [sym_creal] = ACTIONS(4674),
    [sym_size_t] = ACTIONS(4674),
    [sym_ptrdiff_t] = ACTIONS(4674),
    [sym_string] = ACTIONS(4674),
    [sym_cstring] = ACTIONS(4674),
    [sym_dstring] = ACTIONS(4674),
    [sym_wstring] = ACTIONS(4674),
    [sym_noreturn] = ACTIONS(4674),
    [sym_this] = ACTIONS(4674),
    [sym_abstract] = ACTIONS(4674),
    [sym_alias] = ACTIONS(4674),
    [sym_align] = ACTIONS(4674),
    [sym_auto] = ACTIONS(4674),
    [sym_catch] = ACTIONS(4674),
    [sym_class] = ACTIONS(4674),
    [sym_const] = ACTIONS(4674),
    [sym_debug] = ACTIONS(4674),
    [sym_deprecated] = ACTIONS(4674),
    [sym_else] = ACTIONS(4674),
    [sym_enum] = ACTIONS(4674),
    [sym_export] = ACTIONS(4674),
    [sym_extern] = ACTIONS(4674),
    [sym_final] = ACTIONS(4674),
    [sym_finally] = ACTIONS(4674),
    [sym_immutable] = ACTIONS(4674),
    [sym_import] = ACTIONS(4674),
    [sym_inout] = ACTIONS(4674),
    [sym_interface] = ACTIONS(4674),
    [sym_invariant] = ACTIONS(4674),
    [sym_mixin] = ACTIONS(4674),
    [sym_nothrow] = ACTIONS(4674),
    [sym_override] = ACTIONS(4674),
    [sym_package] = ACTIONS(4674),
    [sym_pragma] = ACTIONS(4674),
    [sym_private] = ACTIONS(4674),
    [sym_protected] = ACTIONS(4674),
    [sym_public] = ACTIONS(4674),
    [sym_pure] = ACTIONS(4674),
    [sym_ref] = ACTIONS(4674),
    [sym_return] = ACTIONS(4674),
    [sym_scope] = ACTIONS(4674),
    [sym_shared] = ACTIONS(4674),
    [sym_static] = ACTIONS(4674),
    [sym_struct] = ACTIONS(4674),
    [sym_synchronized] = ACTIONS(4674),
    [sym_template] = ACTIONS(4674),
    [sym_typeof] = ACTIONS(4674),
    [sym_union] = ACTIONS(4674),
    [sym_unittest] = ACTIONS(4674),
    [sym_version] = ACTIONS(4674),
    [sym_while] = ACTIONS(4674),
    [sym_gshared] = ACTIONS(4674),
    [sym_traits] = ACTIONS(4674),
    [sym_vector] = ACTIONS(4674),
    [sym_void] = ACTIONS(4674),
    [sym_directive] = ACTIONS(3),
  },
  [2632] = {
    [ts_builtin_sym_end] = ACTIONS(5050),
    [sym_identifier] = ACTIONS(5048),
    [sym_end_file] = ACTIONS(5048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5050),
    [anon_sym_SEMI] = ACTIONS(5050),
    [anon_sym_TILDE] = ACTIONS(5050),
    [anon_sym_AT] = ACTIONS(5050),
    [sym_bool] = ACTIONS(5048),
    [sym_byte] = ACTIONS(5048),
    [sym_ubyte] = ACTIONS(5048),
    [sym_char] = ACTIONS(5048),
    [sym_short] = ACTIONS(5048),
    [sym_ushort] = ACTIONS(5048),
    [sym_int] = ACTIONS(5048),
    [sym_uint] = ACTIONS(5048),
    [sym_long] = ACTIONS(5048),
    [sym_ulong] = ACTIONS(5048),
    [sym_cent] = ACTIONS(5048),
    [sym_ucent] = ACTIONS(5048),
    [sym_wchar] = ACTIONS(5048),
    [sym_dchar] = ACTIONS(5048),
    [sym_float] = ACTIONS(5048),
    [sym_double] = ACTIONS(5048),
    [sym_real] = ACTIONS(5048),
    [sym_ifloat] = ACTIONS(5048),
    [sym_idouble] = ACTIONS(5048),
    [sym_ireal] = ACTIONS(5048),
    [sym_cfloat] = ACTIONS(5048),
    [sym_cdouble] = ACTIONS(5048),
    [sym_creal] = ACTIONS(5048),
    [sym_size_t] = ACTIONS(5048),
    [sym_ptrdiff_t] = ACTIONS(5048),
    [sym_string] = ACTIONS(5048),
    [sym_cstring] = ACTIONS(5048),
    [sym_dstring] = ACTIONS(5048),
    [sym_wstring] = ACTIONS(5048),
    [sym_noreturn] = ACTIONS(5048),
    [sym_this] = ACTIONS(5048),
    [sym_abstract] = ACTIONS(5048),
    [sym_alias] = ACTIONS(5048),
    [sym_align] = ACTIONS(5048),
    [sym_auto] = ACTIONS(5048),
    [sym_class] = ACTIONS(5048),
    [sym_const] = ACTIONS(5048),
    [sym_debug] = ACTIONS(5048),
    [sym_deprecated] = ACTIONS(5048),
    [sym_else] = ACTIONS(5048),
    [sym_enum] = ACTIONS(5048),
    [sym_export] = ACTIONS(5048),
    [sym_extern] = ACTIONS(5048),
    [sym_final] = ACTIONS(5048),
    [sym_immutable] = ACTIONS(5048),
    [sym_import] = ACTIONS(5048),
    [sym_inout] = ACTIONS(5048),
    [sym_interface] = ACTIONS(5048),
    [sym_invariant] = ACTIONS(5048),
    [sym_mixin] = ACTIONS(5048),
    [sym_nothrow] = ACTIONS(5048),
    [sym_override] = ACTIONS(5048),
    [sym_package] = ACTIONS(5048),
    [sym_pragma] = ACTIONS(5048),
    [sym_private] = ACTIONS(5048),
    [sym_protected] = ACTIONS(5048),
    [sym_public] = ACTIONS(5048),
    [sym_pure] = ACTIONS(5048),
    [sym_ref] = ACTIONS(5048),
    [sym_return] = ACTIONS(5048),
    [sym_scope] = ACTIONS(5048),
    [sym_shared] = ACTIONS(5048),
    [sym_static] = ACTIONS(5048),
    [sym_struct] = ACTIONS(5048),
    [sym_synchronized] = ACTIONS(5048),
    [sym_template] = ACTIONS(5048),
    [sym_typeof] = ACTIONS(5048),
    [sym_union] = ACTIONS(5048),
    [sym_unittest] = ACTIONS(5048),
    [sym_version] = ACTIONS(5048),
    [sym_while] = ACTIONS(5048),
    [sym_gshared] = ACTIONS(5048),
    [sym_traits] = ACTIONS(5048),
    [sym_vector] = ACTIONS(5048),
    [sym_void] = ACTIONS(5048),
    [sym_directive] = ACTIONS(3),
  },
  [2633] = {
    [sym_identifier] = ACTIONS(4682),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4684),
    [anon_sym_SEMI] = ACTIONS(4684),
    [anon_sym_TILDE] = ACTIONS(4684),
    [anon_sym_AT] = ACTIONS(4684),
    [sym_bool] = ACTIONS(4682),
    [sym_byte] = ACTIONS(4682),
    [sym_ubyte] = ACTIONS(4682),
    [sym_char] = ACTIONS(4682),
    [sym_short] = ACTIONS(4682),
    [sym_ushort] = ACTIONS(4682),
    [sym_int] = ACTIONS(4682),
    [sym_uint] = ACTIONS(4682),
    [sym_long] = ACTIONS(4682),
    [sym_ulong] = ACTIONS(4682),
    [sym_cent] = ACTIONS(4682),
    [sym_ucent] = ACTIONS(4682),
    [sym_wchar] = ACTIONS(4682),
    [sym_dchar] = ACTIONS(4682),
    [sym_float] = ACTIONS(4682),
    [sym_double] = ACTIONS(4682),
    [sym_real] = ACTIONS(4682),
    [sym_ifloat] = ACTIONS(4682),
    [sym_idouble] = ACTIONS(4682),
    [sym_ireal] = ACTIONS(4682),
    [sym_cfloat] = ACTIONS(4682),
    [sym_cdouble] = ACTIONS(4682),
    [sym_creal] = ACTIONS(4682),
    [sym_size_t] = ACTIONS(4682),
    [sym_ptrdiff_t] = ACTIONS(4682),
    [sym_string] = ACTIONS(4682),
    [sym_cstring] = ACTIONS(4682),
    [sym_dstring] = ACTIONS(4682),
    [sym_wstring] = ACTIONS(4682),
    [sym_noreturn] = ACTIONS(4682),
    [sym_this] = ACTIONS(4682),
    [sym_abstract] = ACTIONS(4682),
    [sym_alias] = ACTIONS(4682),
    [sym_align] = ACTIONS(4682),
    [sym_auto] = ACTIONS(4682),
    [sym_catch] = ACTIONS(4682),
    [sym_class] = ACTIONS(4682),
    [sym_const] = ACTIONS(4682),
    [sym_debug] = ACTIONS(4682),
    [sym_deprecated] = ACTIONS(4682),
    [sym_else] = ACTIONS(4682),
    [sym_enum] = ACTIONS(4682),
    [sym_export] = ACTIONS(4682),
    [sym_extern] = ACTIONS(4682),
    [sym_final] = ACTIONS(4682),
    [sym_finally] = ACTIONS(4682),
    [sym_immutable] = ACTIONS(4682),
    [sym_import] = ACTIONS(4682),
    [sym_inout] = ACTIONS(4682),
    [sym_interface] = ACTIONS(4682),
    [sym_invariant] = ACTIONS(4682),
    [sym_mixin] = ACTIONS(4682),
    [sym_nothrow] = ACTIONS(4682),
    [sym_override] = ACTIONS(4682),
    [sym_package] = ACTIONS(4682),
    [sym_pragma] = ACTIONS(4682),
    [sym_private] = ACTIONS(4682),
    [sym_protected] = ACTIONS(4682),
    [sym_public] = ACTIONS(4682),
    [sym_pure] = ACTIONS(4682),
    [sym_ref] = ACTIONS(4682),
    [sym_return] = ACTIONS(4682),
    [sym_scope] = ACTIONS(4682),
    [sym_shared] = ACTIONS(4682),
    [sym_static] = ACTIONS(4682),
    [sym_struct] = ACTIONS(4682),
    [sym_synchronized] = ACTIONS(4682),
    [sym_template] = ACTIONS(4682),
    [sym_typeof] = ACTIONS(4682),
    [sym_union] = ACTIONS(4682),
    [sym_unittest] = ACTIONS(4682),
    [sym_version] = ACTIONS(4682),
    [sym_while] = ACTIONS(4682),
    [sym_gshared] = ACTIONS(4682),
    [sym_traits] = ACTIONS(4682),
    [sym_vector] = ACTIONS(4682),
    [sym_void] = ACTIONS(4682),
    [sym_directive] = ACTIONS(3),
  },
  [2634] = {
    [ts_builtin_sym_end] = ACTIONS(5070),
    [sym_identifier] = ACTIONS(5068),
    [sym_end_file] = ACTIONS(5068),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5070),
    [anon_sym_SEMI] = ACTIONS(5070),
    [anon_sym_TILDE] = ACTIONS(5070),
    [anon_sym_AT] = ACTIONS(5070),
    [sym_bool] = ACTIONS(5068),
    [sym_byte] = ACTIONS(5068),
    [sym_ubyte] = ACTIONS(5068),
    [sym_char] = ACTIONS(5068),
    [sym_short] = ACTIONS(5068),
    [sym_ushort] = ACTIONS(5068),
    [sym_int] = ACTIONS(5068),
    [sym_uint] = ACTIONS(5068),
    [sym_long] = ACTIONS(5068),
    [sym_ulong] = ACTIONS(5068),
    [sym_cent] = ACTIONS(5068),
    [sym_ucent] = ACTIONS(5068),
    [sym_wchar] = ACTIONS(5068),
    [sym_dchar] = ACTIONS(5068),
    [sym_float] = ACTIONS(5068),
    [sym_double] = ACTIONS(5068),
    [sym_real] = ACTIONS(5068),
    [sym_ifloat] = ACTIONS(5068),
    [sym_idouble] = ACTIONS(5068),
    [sym_ireal] = ACTIONS(5068),
    [sym_cfloat] = ACTIONS(5068),
    [sym_cdouble] = ACTIONS(5068),
    [sym_creal] = ACTIONS(5068),
    [sym_size_t] = ACTIONS(5068),
    [sym_ptrdiff_t] = ACTIONS(5068),
    [sym_string] = ACTIONS(5068),
    [sym_cstring] = ACTIONS(5068),
    [sym_dstring] = ACTIONS(5068),
    [sym_wstring] = ACTIONS(5068),
    [sym_noreturn] = ACTIONS(5068),
    [sym_this] = ACTIONS(5068),
    [sym_abstract] = ACTIONS(5068),
    [sym_alias] = ACTIONS(5068),
    [sym_align] = ACTIONS(5068),
    [sym_auto] = ACTIONS(5068),
    [sym_class] = ACTIONS(5068),
    [sym_const] = ACTIONS(5068),
    [sym_debug] = ACTIONS(5068),
    [sym_deprecated] = ACTIONS(5068),
    [sym_else] = ACTIONS(5068),
    [sym_enum] = ACTIONS(5068),
    [sym_export] = ACTIONS(5068),
    [sym_extern] = ACTIONS(5068),
    [sym_final] = ACTIONS(5068),
    [sym_immutable] = ACTIONS(5068),
    [sym_import] = ACTIONS(5068),
    [sym_inout] = ACTIONS(5068),
    [sym_interface] = ACTIONS(5068),
    [sym_invariant] = ACTIONS(5068),
    [sym_mixin] = ACTIONS(5068),
    [sym_nothrow] = ACTIONS(5068),
    [sym_override] = ACTIONS(5068),
    [sym_package] = ACTIONS(5068),
    [sym_pragma] = ACTIONS(5068),
    [sym_private] = ACTIONS(5068),
    [sym_protected] = ACTIONS(5068),
    [sym_public] = ACTIONS(5068),
    [sym_pure] = ACTIONS(5068),
    [sym_ref] = ACTIONS(5068),
    [sym_return] = ACTIONS(5068),
    [sym_scope] = ACTIONS(5068),
    [sym_shared] = ACTIONS(5068),
    [sym_static] = ACTIONS(5068),
    [sym_struct] = ACTIONS(5068),
    [sym_synchronized] = ACTIONS(5068),
    [sym_template] = ACTIONS(5068),
    [sym_typeof] = ACTIONS(5068),
    [sym_union] = ACTIONS(5068),
    [sym_unittest] = ACTIONS(5068),
    [sym_version] = ACTIONS(5068),
    [sym_while] = ACTIONS(5068),
    [sym_gshared] = ACTIONS(5068),
    [sym_traits] = ACTIONS(5068),
    [sym_vector] = ACTIONS(5068),
    [sym_void] = ACTIONS(5068),
    [sym_directive] = ACTIONS(3),
  },
  [2635] = {
    [sym_identifier] = ACTIONS(4686),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4688),
    [anon_sym_SEMI] = ACTIONS(4688),
    [anon_sym_TILDE] = ACTIONS(4688),
    [anon_sym_AT] = ACTIONS(4688),
    [sym_bool] = ACTIONS(4686),
    [sym_byte] = ACTIONS(4686),
    [sym_ubyte] = ACTIONS(4686),
    [sym_char] = ACTIONS(4686),
    [sym_short] = ACTIONS(4686),
    [sym_ushort] = ACTIONS(4686),
    [sym_int] = ACTIONS(4686),
    [sym_uint] = ACTIONS(4686),
    [sym_long] = ACTIONS(4686),
    [sym_ulong] = ACTIONS(4686),
    [sym_cent] = ACTIONS(4686),
    [sym_ucent] = ACTIONS(4686),
    [sym_wchar] = ACTIONS(4686),
    [sym_dchar] = ACTIONS(4686),
    [sym_float] = ACTIONS(4686),
    [sym_double] = ACTIONS(4686),
    [sym_real] = ACTIONS(4686),
    [sym_ifloat] = ACTIONS(4686),
    [sym_idouble] = ACTIONS(4686),
    [sym_ireal] = ACTIONS(4686),
    [sym_cfloat] = ACTIONS(4686),
    [sym_cdouble] = ACTIONS(4686),
    [sym_creal] = ACTIONS(4686),
    [sym_size_t] = ACTIONS(4686),
    [sym_ptrdiff_t] = ACTIONS(4686),
    [sym_string] = ACTIONS(4686),
    [sym_cstring] = ACTIONS(4686),
    [sym_dstring] = ACTIONS(4686),
    [sym_wstring] = ACTIONS(4686),
    [sym_noreturn] = ACTIONS(4686),
    [sym_this] = ACTIONS(4686),
    [sym_abstract] = ACTIONS(4686),
    [sym_alias] = ACTIONS(4686),
    [sym_align] = ACTIONS(4686),
    [sym_auto] = ACTIONS(4686),
    [sym_catch] = ACTIONS(4686),
    [sym_class] = ACTIONS(4686),
    [sym_const] = ACTIONS(4686),
    [sym_debug] = ACTIONS(4686),
    [sym_deprecated] = ACTIONS(4686),
    [sym_else] = ACTIONS(4686),
    [sym_enum] = ACTIONS(4686),
    [sym_export] = ACTIONS(4686),
    [sym_extern] = ACTIONS(4686),
    [sym_final] = ACTIONS(4686),
    [sym_finally] = ACTIONS(4686),
    [sym_immutable] = ACTIONS(4686),
    [sym_import] = ACTIONS(4686),
    [sym_inout] = ACTIONS(4686),
    [sym_interface] = ACTIONS(4686),
    [sym_invariant] = ACTIONS(4686),
    [sym_mixin] = ACTIONS(4686),
    [sym_nothrow] = ACTIONS(4686),
    [sym_override] = ACTIONS(4686),
    [sym_package] = ACTIONS(4686),
    [sym_pragma] = ACTIONS(4686),
    [sym_private] = ACTIONS(4686),
    [sym_protected] = ACTIONS(4686),
    [sym_public] = ACTIONS(4686),
    [sym_pure] = ACTIONS(4686),
    [sym_ref] = ACTIONS(4686),
    [sym_return] = ACTIONS(4686),
    [sym_scope] = ACTIONS(4686),
    [sym_shared] = ACTIONS(4686),
    [sym_static] = ACTIONS(4686),
    [sym_struct] = ACTIONS(4686),
    [sym_synchronized] = ACTIONS(4686),
    [sym_template] = ACTIONS(4686),
    [sym_typeof] = ACTIONS(4686),
    [sym_union] = ACTIONS(4686),
    [sym_unittest] = ACTIONS(4686),
    [sym_version] = ACTIONS(4686),
    [sym_while] = ACTIONS(4686),
    [sym_gshared] = ACTIONS(4686),
    [sym_traits] = ACTIONS(4686),
    [sym_vector] = ACTIONS(4686),
    [sym_void] = ACTIONS(4686),
    [sym_directive] = ACTIONS(3),
  },
  [2636] = {
    [sym_identifier] = ACTIONS(4704),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4706),
    [anon_sym_SEMI] = ACTIONS(4706),
    [anon_sym_TILDE] = ACTIONS(4706),
    [anon_sym_AT] = ACTIONS(4706),
    [sym_bool] = ACTIONS(4704),
    [sym_byte] = ACTIONS(4704),
    [sym_ubyte] = ACTIONS(4704),
    [sym_char] = ACTIONS(4704),
    [sym_short] = ACTIONS(4704),
    [sym_ushort] = ACTIONS(4704),
    [sym_int] = ACTIONS(4704),
    [sym_uint] = ACTIONS(4704),
    [sym_long] = ACTIONS(4704),
    [sym_ulong] = ACTIONS(4704),
    [sym_cent] = ACTIONS(4704),
    [sym_ucent] = ACTIONS(4704),
    [sym_wchar] = ACTIONS(4704),
    [sym_dchar] = ACTIONS(4704),
    [sym_float] = ACTIONS(4704),
    [sym_double] = ACTIONS(4704),
    [sym_real] = ACTIONS(4704),
    [sym_ifloat] = ACTIONS(4704),
    [sym_idouble] = ACTIONS(4704),
    [sym_ireal] = ACTIONS(4704),
    [sym_cfloat] = ACTIONS(4704),
    [sym_cdouble] = ACTIONS(4704),
    [sym_creal] = ACTIONS(4704),
    [sym_size_t] = ACTIONS(4704),
    [sym_ptrdiff_t] = ACTIONS(4704),
    [sym_string] = ACTIONS(4704),
    [sym_cstring] = ACTIONS(4704),
    [sym_dstring] = ACTIONS(4704),
    [sym_wstring] = ACTIONS(4704),
    [sym_noreturn] = ACTIONS(4704),
    [sym_this] = ACTIONS(4704),
    [sym_abstract] = ACTIONS(4704),
    [sym_alias] = ACTIONS(4704),
    [sym_align] = ACTIONS(4704),
    [sym_auto] = ACTIONS(4704),
    [sym_catch] = ACTIONS(4704),
    [sym_class] = ACTIONS(4704),
    [sym_const] = ACTIONS(4704),
    [sym_debug] = ACTIONS(4704),
    [sym_deprecated] = ACTIONS(4704),
    [sym_else] = ACTIONS(4704),
    [sym_enum] = ACTIONS(4704),
    [sym_export] = ACTIONS(4704),
    [sym_extern] = ACTIONS(4704),
    [sym_final] = ACTIONS(4704),
    [sym_finally] = ACTIONS(4704),
    [sym_immutable] = ACTIONS(4704),
    [sym_import] = ACTIONS(4704),
    [sym_inout] = ACTIONS(4704),
    [sym_interface] = ACTIONS(4704),
    [sym_invariant] = ACTIONS(4704),
    [sym_mixin] = ACTIONS(4704),
    [sym_nothrow] = ACTIONS(4704),
    [sym_override] = ACTIONS(4704),
    [sym_package] = ACTIONS(4704),
    [sym_pragma] = ACTIONS(4704),
    [sym_private] = ACTIONS(4704),
    [sym_protected] = ACTIONS(4704),
    [sym_public] = ACTIONS(4704),
    [sym_pure] = ACTIONS(4704),
    [sym_ref] = ACTIONS(4704),
    [sym_return] = ACTIONS(4704),
    [sym_scope] = ACTIONS(4704),
    [sym_shared] = ACTIONS(4704),
    [sym_static] = ACTIONS(4704),
    [sym_struct] = ACTIONS(4704),
    [sym_synchronized] = ACTIONS(4704),
    [sym_template] = ACTIONS(4704),
    [sym_typeof] = ACTIONS(4704),
    [sym_union] = ACTIONS(4704),
    [sym_unittest] = ACTIONS(4704),
    [sym_version] = ACTIONS(4704),
    [sym_while] = ACTIONS(4704),
    [sym_gshared] = ACTIONS(4704),
    [sym_traits] = ACTIONS(4704),
    [sym_vector] = ACTIONS(4704),
    [sym_void] = ACTIONS(4704),
    [sym_directive] = ACTIONS(3),
  },
  [2637] = {
    [ts_builtin_sym_end] = ACTIONS(4544),
    [sym_identifier] = ACTIONS(4542),
    [sym_end_file] = ACTIONS(4542),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4544),
    [anon_sym_SEMI] = ACTIONS(4544),
    [anon_sym_TILDE] = ACTIONS(4544),
    [anon_sym_AT] = ACTIONS(4544),
    [sym_bool] = ACTIONS(4542),
    [sym_byte] = ACTIONS(4542),
    [sym_ubyte] = ACTIONS(4542),
    [sym_char] = ACTIONS(4542),
    [sym_short] = ACTIONS(4542),
    [sym_ushort] = ACTIONS(4542),
    [sym_int] = ACTIONS(4542),
    [sym_uint] = ACTIONS(4542),
    [sym_long] = ACTIONS(4542),
    [sym_ulong] = ACTIONS(4542),
    [sym_cent] = ACTIONS(4542),
    [sym_ucent] = ACTIONS(4542),
    [sym_wchar] = ACTIONS(4542),
    [sym_dchar] = ACTIONS(4542),
    [sym_float] = ACTIONS(4542),
    [sym_double] = ACTIONS(4542),
    [sym_real] = ACTIONS(4542),
    [sym_ifloat] = ACTIONS(4542),
    [sym_idouble] = ACTIONS(4542),
    [sym_ireal] = ACTIONS(4542),
    [sym_cfloat] = ACTIONS(4542),
    [sym_cdouble] = ACTIONS(4542),
    [sym_creal] = ACTIONS(4542),
    [sym_size_t] = ACTIONS(4542),
    [sym_ptrdiff_t] = ACTIONS(4542),
    [sym_string] = ACTIONS(4542),
    [sym_cstring] = ACTIONS(4542),
    [sym_dstring] = ACTIONS(4542),
    [sym_wstring] = ACTIONS(4542),
    [sym_noreturn] = ACTIONS(4542),
    [sym_this] = ACTIONS(4542),
    [sym_abstract] = ACTIONS(4542),
    [sym_alias] = ACTIONS(4542),
    [sym_align] = ACTIONS(4542),
    [sym_auto] = ACTIONS(4542),
    [sym_class] = ACTIONS(4542),
    [sym_const] = ACTIONS(4542),
    [sym_debug] = ACTIONS(4542),
    [sym_deprecated] = ACTIONS(4542),
    [sym_else] = ACTIONS(4542),
    [sym_enum] = ACTIONS(4542),
    [sym_export] = ACTIONS(4542),
    [sym_extern] = ACTIONS(4542),
    [sym_final] = ACTIONS(4542),
    [sym_immutable] = ACTIONS(4542),
    [sym_import] = ACTIONS(4542),
    [sym_inout] = ACTIONS(4542),
    [sym_interface] = ACTIONS(4542),
    [sym_invariant] = ACTIONS(4542),
    [sym_mixin] = ACTIONS(4542),
    [sym_nothrow] = ACTIONS(4542),
    [sym_override] = ACTIONS(4542),
    [sym_package] = ACTIONS(4542),
    [sym_pragma] = ACTIONS(4542),
    [sym_private] = ACTIONS(4542),
    [sym_protected] = ACTIONS(4542),
    [sym_public] = ACTIONS(4542),
    [sym_pure] = ACTIONS(4542),
    [sym_ref] = ACTIONS(4542),
    [sym_return] = ACTIONS(4542),
    [sym_scope] = ACTIONS(4542),
    [sym_shared] = ACTIONS(4542),
    [sym_static] = ACTIONS(4542),
    [sym_struct] = ACTIONS(4542),
    [sym_synchronized] = ACTIONS(4542),
    [sym_template] = ACTIONS(4542),
    [sym_typeof] = ACTIONS(4542),
    [sym_union] = ACTIONS(4542),
    [sym_unittest] = ACTIONS(4542),
    [sym_version] = ACTIONS(4542),
    [sym_while] = ACTIONS(4542),
    [sym_gshared] = ACTIONS(4542),
    [sym_traits] = ACTIONS(4542),
    [sym_vector] = ACTIONS(4542),
    [sym_void] = ACTIONS(4542),
    [sym_directive] = ACTIONS(3),
  },
  [2638] = {
    [sym_identifier] = ACTIONS(4712),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4714),
    [anon_sym_SEMI] = ACTIONS(4714),
    [anon_sym_TILDE] = ACTIONS(4714),
    [anon_sym_AT] = ACTIONS(4714),
    [sym_bool] = ACTIONS(4712),
    [sym_byte] = ACTIONS(4712),
    [sym_ubyte] = ACTIONS(4712),
    [sym_char] = ACTIONS(4712),
    [sym_short] = ACTIONS(4712),
    [sym_ushort] = ACTIONS(4712),
    [sym_int] = ACTIONS(4712),
    [sym_uint] = ACTIONS(4712),
    [sym_long] = ACTIONS(4712),
    [sym_ulong] = ACTIONS(4712),
    [sym_cent] = ACTIONS(4712),
    [sym_ucent] = ACTIONS(4712),
    [sym_wchar] = ACTIONS(4712),
    [sym_dchar] = ACTIONS(4712),
    [sym_float] = ACTIONS(4712),
    [sym_double] = ACTIONS(4712),
    [sym_real] = ACTIONS(4712),
    [sym_ifloat] = ACTIONS(4712),
    [sym_idouble] = ACTIONS(4712),
    [sym_ireal] = ACTIONS(4712),
    [sym_cfloat] = ACTIONS(4712),
    [sym_cdouble] = ACTIONS(4712),
    [sym_creal] = ACTIONS(4712),
    [sym_size_t] = ACTIONS(4712),
    [sym_ptrdiff_t] = ACTIONS(4712),
    [sym_string] = ACTIONS(4712),
    [sym_cstring] = ACTIONS(4712),
    [sym_dstring] = ACTIONS(4712),
    [sym_wstring] = ACTIONS(4712),
    [sym_noreturn] = ACTIONS(4712),
    [sym_this] = ACTIONS(4712),
    [sym_abstract] = ACTIONS(4712),
    [sym_alias] = ACTIONS(4712),
    [sym_align] = ACTIONS(4712),
    [sym_auto] = ACTIONS(4712),
    [sym_catch] = ACTIONS(4712),
    [sym_class] = ACTIONS(4712),
    [sym_const] = ACTIONS(4712),
    [sym_debug] = ACTIONS(4712),
    [sym_deprecated] = ACTIONS(4712),
    [sym_else] = ACTIONS(4712),
    [sym_enum] = ACTIONS(4712),
    [sym_export] = ACTIONS(4712),
    [sym_extern] = ACTIONS(4712),
    [sym_final] = ACTIONS(4712),
    [sym_finally] = ACTIONS(4712),
    [sym_immutable] = ACTIONS(4712),
    [sym_import] = ACTIONS(4712),
    [sym_inout] = ACTIONS(4712),
    [sym_interface] = ACTIONS(4712),
    [sym_invariant] = ACTIONS(4712),
    [sym_mixin] = ACTIONS(4712),
    [sym_nothrow] = ACTIONS(4712),
    [sym_override] = ACTIONS(4712),
    [sym_package] = ACTIONS(4712),
    [sym_pragma] = ACTIONS(4712),
    [sym_private] = ACTIONS(4712),
    [sym_protected] = ACTIONS(4712),
    [sym_public] = ACTIONS(4712),
    [sym_pure] = ACTIONS(4712),
    [sym_ref] = ACTIONS(4712),
    [sym_return] = ACTIONS(4712),
    [sym_scope] = ACTIONS(4712),
    [sym_shared] = ACTIONS(4712),
    [sym_static] = ACTIONS(4712),
    [sym_struct] = ACTIONS(4712),
    [sym_synchronized] = ACTIONS(4712),
    [sym_template] = ACTIONS(4712),
    [sym_typeof] = ACTIONS(4712),
    [sym_union] = ACTIONS(4712),
    [sym_unittest] = ACTIONS(4712),
    [sym_version] = ACTIONS(4712),
    [sym_while] = ACTIONS(4712),
    [sym_gshared] = ACTIONS(4712),
    [sym_traits] = ACTIONS(4712),
    [sym_vector] = ACTIONS(4712),
    [sym_void] = ACTIONS(4712),
    [sym_directive] = ACTIONS(3),
  },
  [2639] = {
    [sym_identifier] = ACTIONS(4480),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4482),
    [anon_sym_SEMI] = ACTIONS(4482),
    [anon_sym_TILDE] = ACTIONS(4482),
    [anon_sym_AT] = ACTIONS(4482),
    [sym_bool] = ACTIONS(4480),
    [sym_byte] = ACTIONS(4480),
    [sym_ubyte] = ACTIONS(4480),
    [sym_char] = ACTIONS(4480),
    [sym_short] = ACTIONS(4480),
    [sym_ushort] = ACTIONS(4480),
    [sym_int] = ACTIONS(4480),
    [sym_uint] = ACTIONS(4480),
    [sym_long] = ACTIONS(4480),
    [sym_ulong] = ACTIONS(4480),
    [sym_cent] = ACTIONS(4480),
    [sym_ucent] = ACTIONS(4480),
    [sym_wchar] = ACTIONS(4480),
    [sym_dchar] = ACTIONS(4480),
    [sym_float] = ACTIONS(4480),
    [sym_double] = ACTIONS(4480),
    [sym_real] = ACTIONS(4480),
    [sym_ifloat] = ACTIONS(4480),
    [sym_idouble] = ACTIONS(4480),
    [sym_ireal] = ACTIONS(4480),
    [sym_cfloat] = ACTIONS(4480),
    [sym_cdouble] = ACTIONS(4480),
    [sym_creal] = ACTIONS(4480),
    [sym_size_t] = ACTIONS(4480),
    [sym_ptrdiff_t] = ACTIONS(4480),
    [sym_string] = ACTIONS(4480),
    [sym_cstring] = ACTIONS(4480),
    [sym_dstring] = ACTIONS(4480),
    [sym_wstring] = ACTIONS(4480),
    [sym_noreturn] = ACTIONS(4480),
    [sym_this] = ACTIONS(4480),
    [sym_abstract] = ACTIONS(4480),
    [sym_alias] = ACTIONS(4480),
    [sym_align] = ACTIONS(4480),
    [sym_auto] = ACTIONS(4480),
    [sym_catch] = ACTIONS(4480),
    [sym_class] = ACTIONS(4480),
    [sym_const] = ACTIONS(4480),
    [sym_debug] = ACTIONS(4480),
    [sym_deprecated] = ACTIONS(4480),
    [sym_else] = ACTIONS(4480),
    [sym_enum] = ACTIONS(4480),
    [sym_export] = ACTIONS(4480),
    [sym_extern] = ACTIONS(4480),
    [sym_final] = ACTIONS(4480),
    [sym_finally] = ACTIONS(4480),
    [sym_immutable] = ACTIONS(4480),
    [sym_import] = ACTIONS(4480),
    [sym_inout] = ACTIONS(4480),
    [sym_interface] = ACTIONS(4480),
    [sym_invariant] = ACTIONS(4480),
    [sym_mixin] = ACTIONS(4480),
    [sym_nothrow] = ACTIONS(4480),
    [sym_override] = ACTIONS(4480),
    [sym_package] = ACTIONS(4480),
    [sym_pragma] = ACTIONS(4480),
    [sym_private] = ACTIONS(4480),
    [sym_protected] = ACTIONS(4480),
    [sym_public] = ACTIONS(4480),
    [sym_pure] = ACTIONS(4480),
    [sym_ref] = ACTIONS(4480),
    [sym_return] = ACTIONS(4480),
    [sym_scope] = ACTIONS(4480),
    [sym_shared] = ACTIONS(4480),
    [sym_static] = ACTIONS(4480),
    [sym_struct] = ACTIONS(4480),
    [sym_synchronized] = ACTIONS(4480),
    [sym_template] = ACTIONS(4480),
    [sym_typeof] = ACTIONS(4480),
    [sym_union] = ACTIONS(4480),
    [sym_unittest] = ACTIONS(4480),
    [sym_version] = ACTIONS(4480),
    [sym_while] = ACTIONS(4480),
    [sym_gshared] = ACTIONS(4480),
    [sym_traits] = ACTIONS(4480),
    [sym_vector] = ACTIONS(4480),
    [sym_void] = ACTIONS(4480),
    [sym_directive] = ACTIONS(3),
  },
  [2640] = {
    [sym_identifier] = ACTIONS(4720),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4722),
    [anon_sym_SEMI] = ACTIONS(4722),
    [anon_sym_TILDE] = ACTIONS(4722),
    [anon_sym_AT] = ACTIONS(4722),
    [sym_bool] = ACTIONS(4720),
    [sym_byte] = ACTIONS(4720),
    [sym_ubyte] = ACTIONS(4720),
    [sym_char] = ACTIONS(4720),
    [sym_short] = ACTIONS(4720),
    [sym_ushort] = ACTIONS(4720),
    [sym_int] = ACTIONS(4720),
    [sym_uint] = ACTIONS(4720),
    [sym_long] = ACTIONS(4720),
    [sym_ulong] = ACTIONS(4720),
    [sym_cent] = ACTIONS(4720),
    [sym_ucent] = ACTIONS(4720),
    [sym_wchar] = ACTIONS(4720),
    [sym_dchar] = ACTIONS(4720),
    [sym_float] = ACTIONS(4720),
    [sym_double] = ACTIONS(4720),
    [sym_real] = ACTIONS(4720),
    [sym_ifloat] = ACTIONS(4720),
    [sym_idouble] = ACTIONS(4720),
    [sym_ireal] = ACTIONS(4720),
    [sym_cfloat] = ACTIONS(4720),
    [sym_cdouble] = ACTIONS(4720),
    [sym_creal] = ACTIONS(4720),
    [sym_size_t] = ACTIONS(4720),
    [sym_ptrdiff_t] = ACTIONS(4720),
    [sym_string] = ACTIONS(4720),
    [sym_cstring] = ACTIONS(4720),
    [sym_dstring] = ACTIONS(4720),
    [sym_wstring] = ACTIONS(4720),
    [sym_noreturn] = ACTIONS(4720),
    [sym_this] = ACTIONS(4720),
    [sym_abstract] = ACTIONS(4720),
    [sym_alias] = ACTIONS(4720),
    [sym_align] = ACTIONS(4720),
    [sym_auto] = ACTIONS(4720),
    [sym_catch] = ACTIONS(4720),
    [sym_class] = ACTIONS(4720),
    [sym_const] = ACTIONS(4720),
    [sym_debug] = ACTIONS(4720),
    [sym_deprecated] = ACTIONS(4720),
    [sym_else] = ACTIONS(4720),
    [sym_enum] = ACTIONS(4720),
    [sym_export] = ACTIONS(4720),
    [sym_extern] = ACTIONS(4720),
    [sym_final] = ACTIONS(4720),
    [sym_finally] = ACTIONS(4720),
    [sym_immutable] = ACTIONS(4720),
    [sym_import] = ACTIONS(4720),
    [sym_inout] = ACTIONS(4720),
    [sym_interface] = ACTIONS(4720),
    [sym_invariant] = ACTIONS(4720),
    [sym_mixin] = ACTIONS(4720),
    [sym_nothrow] = ACTIONS(4720),
    [sym_override] = ACTIONS(4720),
    [sym_package] = ACTIONS(4720),
    [sym_pragma] = ACTIONS(4720),
    [sym_private] = ACTIONS(4720),
    [sym_protected] = ACTIONS(4720),
    [sym_public] = ACTIONS(4720),
    [sym_pure] = ACTIONS(4720),
    [sym_ref] = ACTIONS(4720),
    [sym_return] = ACTIONS(4720),
    [sym_scope] = ACTIONS(4720),
    [sym_shared] = ACTIONS(4720),
    [sym_static] = ACTIONS(4720),
    [sym_struct] = ACTIONS(4720),
    [sym_synchronized] = ACTIONS(4720),
    [sym_template] = ACTIONS(4720),
    [sym_typeof] = ACTIONS(4720),
    [sym_union] = ACTIONS(4720),
    [sym_unittest] = ACTIONS(4720),
    [sym_version] = ACTIONS(4720),
    [sym_while] = ACTIONS(4720),
    [sym_gshared] = ACTIONS(4720),
    [sym_traits] = ACTIONS(4720),
    [sym_vector] = ACTIONS(4720),
    [sym_void] = ACTIONS(4720),
    [sym_directive] = ACTIONS(3),
  },
  [2641] = {
    [ts_builtin_sym_end] = ACTIONS(4552),
    [sym_identifier] = ACTIONS(4550),
    [sym_end_file] = ACTIONS(4550),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4552),
    [anon_sym_SEMI] = ACTIONS(4552),
    [anon_sym_TILDE] = ACTIONS(4552),
    [anon_sym_AT] = ACTIONS(4552),
    [sym_bool] = ACTIONS(4550),
    [sym_byte] = ACTIONS(4550),
    [sym_ubyte] = ACTIONS(4550),
    [sym_char] = ACTIONS(4550),
    [sym_short] = ACTIONS(4550),
    [sym_ushort] = ACTIONS(4550),
    [sym_int] = ACTIONS(4550),
    [sym_uint] = ACTIONS(4550),
    [sym_long] = ACTIONS(4550),
    [sym_ulong] = ACTIONS(4550),
    [sym_cent] = ACTIONS(4550),
    [sym_ucent] = ACTIONS(4550),
    [sym_wchar] = ACTIONS(4550),
    [sym_dchar] = ACTIONS(4550),
    [sym_float] = ACTIONS(4550),
    [sym_double] = ACTIONS(4550),
    [sym_real] = ACTIONS(4550),
    [sym_ifloat] = ACTIONS(4550),
    [sym_idouble] = ACTIONS(4550),
    [sym_ireal] = ACTIONS(4550),
    [sym_cfloat] = ACTIONS(4550),
    [sym_cdouble] = ACTIONS(4550),
    [sym_creal] = ACTIONS(4550),
    [sym_size_t] = ACTIONS(4550),
    [sym_ptrdiff_t] = ACTIONS(4550),
    [sym_string] = ACTIONS(4550),
    [sym_cstring] = ACTIONS(4550),
    [sym_dstring] = ACTIONS(4550),
    [sym_wstring] = ACTIONS(4550),
    [sym_noreturn] = ACTIONS(4550),
    [sym_this] = ACTIONS(4550),
    [sym_abstract] = ACTIONS(4550),
    [sym_alias] = ACTIONS(4550),
    [sym_align] = ACTIONS(4550),
    [sym_auto] = ACTIONS(4550),
    [sym_class] = ACTIONS(4550),
    [sym_const] = ACTIONS(4550),
    [sym_debug] = ACTIONS(4550),
    [sym_deprecated] = ACTIONS(4550),
    [sym_else] = ACTIONS(4550),
    [sym_enum] = ACTIONS(4550),
    [sym_export] = ACTIONS(4550),
    [sym_extern] = ACTIONS(4550),
    [sym_final] = ACTIONS(4550),
    [sym_immutable] = ACTIONS(4550),
    [sym_import] = ACTIONS(4550),
    [sym_inout] = ACTIONS(4550),
    [sym_interface] = ACTIONS(4550),
    [sym_invariant] = ACTIONS(4550),
    [sym_mixin] = ACTIONS(4550),
    [sym_nothrow] = ACTIONS(4550),
    [sym_override] = ACTIONS(4550),
    [sym_package] = ACTIONS(4550),
    [sym_pragma] = ACTIONS(4550),
    [sym_private] = ACTIONS(4550),
    [sym_protected] = ACTIONS(4550),
    [sym_public] = ACTIONS(4550),
    [sym_pure] = ACTIONS(4550),
    [sym_ref] = ACTIONS(4550),
    [sym_return] = ACTIONS(4550),
    [sym_scope] = ACTIONS(4550),
    [sym_shared] = ACTIONS(4550),
    [sym_static] = ACTIONS(4550),
    [sym_struct] = ACTIONS(4550),
    [sym_synchronized] = ACTIONS(4550),
    [sym_template] = ACTIONS(4550),
    [sym_typeof] = ACTIONS(4550),
    [sym_union] = ACTIONS(4550),
    [sym_unittest] = ACTIONS(4550),
    [sym_version] = ACTIONS(4550),
    [sym_while] = ACTIONS(4550),
    [sym_gshared] = ACTIONS(4550),
    [sym_traits] = ACTIONS(4550),
    [sym_vector] = ACTIONS(4550),
    [sym_void] = ACTIONS(4550),
    [sym_directive] = ACTIONS(3),
  },
  [2642] = {
    [sym_identifier] = ACTIONS(4732),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4734),
    [anon_sym_SEMI] = ACTIONS(4734),
    [anon_sym_TILDE] = ACTIONS(4734),
    [anon_sym_AT] = ACTIONS(4734),
    [sym_bool] = ACTIONS(4732),
    [sym_byte] = ACTIONS(4732),
    [sym_ubyte] = ACTIONS(4732),
    [sym_char] = ACTIONS(4732),
    [sym_short] = ACTIONS(4732),
    [sym_ushort] = ACTIONS(4732),
    [sym_int] = ACTIONS(4732),
    [sym_uint] = ACTIONS(4732),
    [sym_long] = ACTIONS(4732),
    [sym_ulong] = ACTIONS(4732),
    [sym_cent] = ACTIONS(4732),
    [sym_ucent] = ACTIONS(4732),
    [sym_wchar] = ACTIONS(4732),
    [sym_dchar] = ACTIONS(4732),
    [sym_float] = ACTIONS(4732),
    [sym_double] = ACTIONS(4732),
    [sym_real] = ACTIONS(4732),
    [sym_ifloat] = ACTIONS(4732),
    [sym_idouble] = ACTIONS(4732),
    [sym_ireal] = ACTIONS(4732),
    [sym_cfloat] = ACTIONS(4732),
    [sym_cdouble] = ACTIONS(4732),
    [sym_creal] = ACTIONS(4732),
    [sym_size_t] = ACTIONS(4732),
    [sym_ptrdiff_t] = ACTIONS(4732),
    [sym_string] = ACTIONS(4732),
    [sym_cstring] = ACTIONS(4732),
    [sym_dstring] = ACTIONS(4732),
    [sym_wstring] = ACTIONS(4732),
    [sym_noreturn] = ACTIONS(4732),
    [sym_this] = ACTIONS(4732),
    [sym_abstract] = ACTIONS(4732),
    [sym_alias] = ACTIONS(4732),
    [sym_align] = ACTIONS(4732),
    [sym_auto] = ACTIONS(4732),
    [sym_catch] = ACTIONS(4732),
    [sym_class] = ACTIONS(4732),
    [sym_const] = ACTIONS(4732),
    [sym_debug] = ACTIONS(4732),
    [sym_deprecated] = ACTIONS(4732),
    [sym_else] = ACTIONS(4732),
    [sym_enum] = ACTIONS(4732),
    [sym_export] = ACTIONS(4732),
    [sym_extern] = ACTIONS(4732),
    [sym_final] = ACTIONS(4732),
    [sym_finally] = ACTIONS(4732),
    [sym_immutable] = ACTIONS(4732),
    [sym_import] = ACTIONS(4732),
    [sym_inout] = ACTIONS(4732),
    [sym_interface] = ACTIONS(4732),
    [sym_invariant] = ACTIONS(4732),
    [sym_mixin] = ACTIONS(4732),
    [sym_nothrow] = ACTIONS(4732),
    [sym_override] = ACTIONS(4732),
    [sym_package] = ACTIONS(4732),
    [sym_pragma] = ACTIONS(4732),
    [sym_private] = ACTIONS(4732),
    [sym_protected] = ACTIONS(4732),
    [sym_public] = ACTIONS(4732),
    [sym_pure] = ACTIONS(4732),
    [sym_ref] = ACTIONS(4732),
    [sym_return] = ACTIONS(4732),
    [sym_scope] = ACTIONS(4732),
    [sym_shared] = ACTIONS(4732),
    [sym_static] = ACTIONS(4732),
    [sym_struct] = ACTIONS(4732),
    [sym_synchronized] = ACTIONS(4732),
    [sym_template] = ACTIONS(4732),
    [sym_typeof] = ACTIONS(4732),
    [sym_union] = ACTIONS(4732),
    [sym_unittest] = ACTIONS(4732),
    [sym_version] = ACTIONS(4732),
    [sym_while] = ACTIONS(4732),
    [sym_gshared] = ACTIONS(4732),
    [sym_traits] = ACTIONS(4732),
    [sym_vector] = ACTIONS(4732),
    [sym_void] = ACTIONS(4732),
    [sym_directive] = ACTIONS(3),
  },
  [2643] = {
    [sym_identifier] = ACTIONS(4736),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4738),
    [anon_sym_SEMI] = ACTIONS(4738),
    [anon_sym_TILDE] = ACTIONS(4738),
    [anon_sym_AT] = ACTIONS(4738),
    [sym_bool] = ACTIONS(4736),
    [sym_byte] = ACTIONS(4736),
    [sym_ubyte] = ACTIONS(4736),
    [sym_char] = ACTIONS(4736),
    [sym_short] = ACTIONS(4736),
    [sym_ushort] = ACTIONS(4736),
    [sym_int] = ACTIONS(4736),
    [sym_uint] = ACTIONS(4736),
    [sym_long] = ACTIONS(4736),
    [sym_ulong] = ACTIONS(4736),
    [sym_cent] = ACTIONS(4736),
    [sym_ucent] = ACTIONS(4736),
    [sym_wchar] = ACTIONS(4736),
    [sym_dchar] = ACTIONS(4736),
    [sym_float] = ACTIONS(4736),
    [sym_double] = ACTIONS(4736),
    [sym_real] = ACTIONS(4736),
    [sym_ifloat] = ACTIONS(4736),
    [sym_idouble] = ACTIONS(4736),
    [sym_ireal] = ACTIONS(4736),
    [sym_cfloat] = ACTIONS(4736),
    [sym_cdouble] = ACTIONS(4736),
    [sym_creal] = ACTIONS(4736),
    [sym_size_t] = ACTIONS(4736),
    [sym_ptrdiff_t] = ACTIONS(4736),
    [sym_string] = ACTIONS(4736),
    [sym_cstring] = ACTIONS(4736),
    [sym_dstring] = ACTIONS(4736),
    [sym_wstring] = ACTIONS(4736),
    [sym_noreturn] = ACTIONS(4736),
    [sym_this] = ACTIONS(4736),
    [sym_abstract] = ACTIONS(4736),
    [sym_alias] = ACTIONS(4736),
    [sym_align] = ACTIONS(4736),
    [sym_auto] = ACTIONS(4736),
    [sym_catch] = ACTIONS(4736),
    [sym_class] = ACTIONS(4736),
    [sym_const] = ACTIONS(4736),
    [sym_debug] = ACTIONS(4736),
    [sym_deprecated] = ACTIONS(4736),
    [sym_else] = ACTIONS(4736),
    [sym_enum] = ACTIONS(4736),
    [sym_export] = ACTIONS(4736),
    [sym_extern] = ACTIONS(4736),
    [sym_final] = ACTIONS(4736),
    [sym_finally] = ACTIONS(4736),
    [sym_immutable] = ACTIONS(4736),
    [sym_import] = ACTIONS(4736),
    [sym_inout] = ACTIONS(4736),
    [sym_interface] = ACTIONS(4736),
    [sym_invariant] = ACTIONS(4736),
    [sym_mixin] = ACTIONS(4736),
    [sym_nothrow] = ACTIONS(4736),
    [sym_override] = ACTIONS(4736),
    [sym_package] = ACTIONS(4736),
    [sym_pragma] = ACTIONS(4736),
    [sym_private] = ACTIONS(4736),
    [sym_protected] = ACTIONS(4736),
    [sym_public] = ACTIONS(4736),
    [sym_pure] = ACTIONS(4736),
    [sym_ref] = ACTIONS(4736),
    [sym_return] = ACTIONS(4736),
    [sym_scope] = ACTIONS(4736),
    [sym_shared] = ACTIONS(4736),
    [sym_static] = ACTIONS(4736),
    [sym_struct] = ACTIONS(4736),
    [sym_synchronized] = ACTIONS(4736),
    [sym_template] = ACTIONS(4736),
    [sym_typeof] = ACTIONS(4736),
    [sym_union] = ACTIONS(4736),
    [sym_unittest] = ACTIONS(4736),
    [sym_version] = ACTIONS(4736),
    [sym_while] = ACTIONS(4736),
    [sym_gshared] = ACTIONS(4736),
    [sym_traits] = ACTIONS(4736),
    [sym_vector] = ACTIONS(4736),
    [sym_void] = ACTIONS(4736),
    [sym_directive] = ACTIONS(3),
  },
  [2644] = {
    [ts_builtin_sym_end] = ACTIONS(4854),
    [sym_identifier] = ACTIONS(4852),
    [sym_end_file] = ACTIONS(4852),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4854),
    [anon_sym_SEMI] = ACTIONS(4854),
    [anon_sym_TILDE] = ACTIONS(4854),
    [anon_sym_AT] = ACTIONS(4854),
    [sym_bool] = ACTIONS(4852),
    [sym_byte] = ACTIONS(4852),
    [sym_ubyte] = ACTIONS(4852),
    [sym_char] = ACTIONS(4852),
    [sym_short] = ACTIONS(4852),
    [sym_ushort] = ACTIONS(4852),
    [sym_int] = ACTIONS(4852),
    [sym_uint] = ACTIONS(4852),
    [sym_long] = ACTIONS(4852),
    [sym_ulong] = ACTIONS(4852),
    [sym_cent] = ACTIONS(4852),
    [sym_ucent] = ACTIONS(4852),
    [sym_wchar] = ACTIONS(4852),
    [sym_dchar] = ACTIONS(4852),
    [sym_float] = ACTIONS(4852),
    [sym_double] = ACTIONS(4852),
    [sym_real] = ACTIONS(4852),
    [sym_ifloat] = ACTIONS(4852),
    [sym_idouble] = ACTIONS(4852),
    [sym_ireal] = ACTIONS(4852),
    [sym_cfloat] = ACTIONS(4852),
    [sym_cdouble] = ACTIONS(4852),
    [sym_creal] = ACTIONS(4852),
    [sym_size_t] = ACTIONS(4852),
    [sym_ptrdiff_t] = ACTIONS(4852),
    [sym_string] = ACTIONS(4852),
    [sym_cstring] = ACTIONS(4852),
    [sym_dstring] = ACTIONS(4852),
    [sym_wstring] = ACTIONS(4852),
    [sym_noreturn] = ACTIONS(4852),
    [sym_this] = ACTIONS(4852),
    [sym_abstract] = ACTIONS(4852),
    [sym_alias] = ACTIONS(4852),
    [sym_align] = ACTIONS(4852),
    [sym_auto] = ACTIONS(4852),
    [sym_class] = ACTIONS(4852),
    [sym_const] = ACTIONS(4852),
    [sym_debug] = ACTIONS(4852),
    [sym_deprecated] = ACTIONS(4852),
    [sym_else] = ACTIONS(4852),
    [sym_enum] = ACTIONS(4852),
    [sym_export] = ACTIONS(4852),
    [sym_extern] = ACTIONS(4852),
    [sym_final] = ACTIONS(4852),
    [sym_immutable] = ACTIONS(4852),
    [sym_import] = ACTIONS(4852),
    [sym_inout] = ACTIONS(4852),
    [sym_interface] = ACTIONS(4852),
    [sym_invariant] = ACTIONS(4852),
    [sym_mixin] = ACTIONS(4852),
    [sym_nothrow] = ACTIONS(4852),
    [sym_override] = ACTIONS(4852),
    [sym_package] = ACTIONS(4852),
    [sym_pragma] = ACTIONS(4852),
    [sym_private] = ACTIONS(4852),
    [sym_protected] = ACTIONS(4852),
    [sym_public] = ACTIONS(4852),
    [sym_pure] = ACTIONS(4852),
    [sym_ref] = ACTIONS(4852),
    [sym_return] = ACTIONS(4852),
    [sym_scope] = ACTIONS(4852),
    [sym_shared] = ACTIONS(4852),
    [sym_static] = ACTIONS(4852),
    [sym_struct] = ACTIONS(4852),
    [sym_synchronized] = ACTIONS(4852),
    [sym_template] = ACTIONS(4852),
    [sym_typeof] = ACTIONS(4852),
    [sym_union] = ACTIONS(4852),
    [sym_unittest] = ACTIONS(4852),
    [sym_version] = ACTIONS(4852),
    [sym_while] = ACTIONS(4852),
    [sym_gshared] = ACTIONS(4852),
    [sym_traits] = ACTIONS(4852),
    [sym_vector] = ACTIONS(4852),
    [sym_void] = ACTIONS(4852),
    [sym_directive] = ACTIONS(3),
  },
  [2645] = {
    [sym_identifier] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2804),
    [anon_sym_AT] = ACTIONS(2804),
    [sym_bool] = ACTIONS(2806),
    [sym_byte] = ACTIONS(2806),
    [sym_ubyte] = ACTIONS(2806),
    [sym_char] = ACTIONS(2806),
    [sym_short] = ACTIONS(2806),
    [sym_ushort] = ACTIONS(2806),
    [sym_int] = ACTIONS(2806),
    [sym_uint] = ACTIONS(2806),
    [sym_long] = ACTIONS(2806),
    [sym_ulong] = ACTIONS(2806),
    [sym_cent] = ACTIONS(2806),
    [sym_ucent] = ACTIONS(2806),
    [sym_wchar] = ACTIONS(2806),
    [sym_dchar] = ACTIONS(2806),
    [sym_float] = ACTIONS(2806),
    [sym_double] = ACTIONS(2806),
    [sym_real] = ACTIONS(2806),
    [sym_ifloat] = ACTIONS(2806),
    [sym_idouble] = ACTIONS(2806),
    [sym_ireal] = ACTIONS(2806),
    [sym_cfloat] = ACTIONS(2806),
    [sym_cdouble] = ACTIONS(2806),
    [sym_creal] = ACTIONS(2806),
    [sym_size_t] = ACTIONS(2806),
    [sym_ptrdiff_t] = ACTIONS(2806),
    [sym_string] = ACTIONS(2806),
    [sym_cstring] = ACTIONS(2806),
    [sym_dstring] = ACTIONS(2806),
    [sym_wstring] = ACTIONS(2806),
    [sym_noreturn] = ACTIONS(2806),
    [sym_this] = ACTIONS(2806),
    [sym_abstract] = ACTIONS(2806),
    [sym_alias] = ACTIONS(2806),
    [sym_align] = ACTIONS(2806),
    [sym_auto] = ACTIONS(2806),
    [sym_catch] = ACTIONS(2806),
    [sym_class] = ACTIONS(2806),
    [sym_const] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(2806),
    [sym_export] = ACTIONS(2806),
    [sym_extern] = ACTIONS(2806),
    [sym_final] = ACTIONS(2806),
    [sym_finally] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(2806),
    [sym_import] = ACTIONS(2806),
    [sym_inout] = ACTIONS(2806),
    [sym_interface] = ACTIONS(2806),
    [sym_invariant] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(2806),
    [sym_override] = ACTIONS(2806),
    [sym_package] = ACTIONS(2806),
    [sym_pragma] = ACTIONS(2806),
    [sym_private] = ACTIONS(2806),
    [sym_protected] = ACTIONS(2806),
    [sym_public] = ACTIONS(2806),
    [sym_pure] = ACTIONS(2806),
    [sym_ref] = ACTIONS(2806),
    [sym_return] = ACTIONS(2806),
    [sym_scope] = ACTIONS(2806),
    [sym_shared] = ACTIONS(2806),
    [sym_static] = ACTIONS(2806),
    [sym_struct] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(2806),
    [sym_template] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(2806),
    [sym_union] = ACTIONS(2806),
    [sym_unittest] = ACTIONS(2806),
    [sym_version] = ACTIONS(2806),
    [sym_while] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(2806),
    [sym_traits] = ACTIONS(2806),
    [sym_vector] = ACTIONS(2806),
    [sym_void] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
  },
  [2646] = {
    [sym_identifier] = ACTIONS(4774),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4776),
    [anon_sym_SEMI] = ACTIONS(4776),
    [anon_sym_TILDE] = ACTIONS(4776),
    [anon_sym_AT] = ACTIONS(4776),
    [sym_bool] = ACTIONS(4774),
    [sym_byte] = ACTIONS(4774),
    [sym_ubyte] = ACTIONS(4774),
    [sym_char] = ACTIONS(4774),
    [sym_short] = ACTIONS(4774),
    [sym_ushort] = ACTIONS(4774),
    [sym_int] = ACTIONS(4774),
    [sym_uint] = ACTIONS(4774),
    [sym_long] = ACTIONS(4774),
    [sym_ulong] = ACTIONS(4774),
    [sym_cent] = ACTIONS(4774),
    [sym_ucent] = ACTIONS(4774),
    [sym_wchar] = ACTIONS(4774),
    [sym_dchar] = ACTIONS(4774),
    [sym_float] = ACTIONS(4774),
    [sym_double] = ACTIONS(4774),
    [sym_real] = ACTIONS(4774),
    [sym_ifloat] = ACTIONS(4774),
    [sym_idouble] = ACTIONS(4774),
    [sym_ireal] = ACTIONS(4774),
    [sym_cfloat] = ACTIONS(4774),
    [sym_cdouble] = ACTIONS(4774),
    [sym_creal] = ACTIONS(4774),
    [sym_size_t] = ACTIONS(4774),
    [sym_ptrdiff_t] = ACTIONS(4774),
    [sym_string] = ACTIONS(4774),
    [sym_cstring] = ACTIONS(4774),
    [sym_dstring] = ACTIONS(4774),
    [sym_wstring] = ACTIONS(4774),
    [sym_noreturn] = ACTIONS(4774),
    [sym_this] = ACTIONS(4774),
    [sym_abstract] = ACTIONS(4774),
    [sym_alias] = ACTIONS(4774),
    [sym_align] = ACTIONS(4774),
    [sym_auto] = ACTIONS(4774),
    [sym_catch] = ACTIONS(4774),
    [sym_class] = ACTIONS(4774),
    [sym_const] = ACTIONS(4774),
    [sym_debug] = ACTIONS(4774),
    [sym_deprecated] = ACTIONS(4774),
    [sym_else] = ACTIONS(4774),
    [sym_enum] = ACTIONS(4774),
    [sym_export] = ACTIONS(4774),
    [sym_extern] = ACTIONS(4774),
    [sym_final] = ACTIONS(4774),
    [sym_finally] = ACTIONS(4774),
    [sym_immutable] = ACTIONS(4774),
    [sym_import] = ACTIONS(4774),
    [sym_inout] = ACTIONS(4774),
    [sym_interface] = ACTIONS(4774),
    [sym_invariant] = ACTIONS(4774),
    [sym_mixin] = ACTIONS(4774),
    [sym_nothrow] = ACTIONS(4774),
    [sym_override] = ACTIONS(4774),
    [sym_package] = ACTIONS(4774),
    [sym_pragma] = ACTIONS(4774),
    [sym_private] = ACTIONS(4774),
    [sym_protected] = ACTIONS(4774),
    [sym_public] = ACTIONS(4774),
    [sym_pure] = ACTIONS(4774),
    [sym_ref] = ACTIONS(4774),
    [sym_return] = ACTIONS(4774),
    [sym_scope] = ACTIONS(4774),
    [sym_shared] = ACTIONS(4774),
    [sym_static] = ACTIONS(4774),
    [sym_struct] = ACTIONS(4774),
    [sym_synchronized] = ACTIONS(4774),
    [sym_template] = ACTIONS(4774),
    [sym_typeof] = ACTIONS(4774),
    [sym_union] = ACTIONS(4774),
    [sym_unittest] = ACTIONS(4774),
    [sym_version] = ACTIONS(4774),
    [sym_while] = ACTIONS(4774),
    [sym_gshared] = ACTIONS(4774),
    [sym_traits] = ACTIONS(4774),
    [sym_vector] = ACTIONS(4774),
    [sym_void] = ACTIONS(4774),
    [sym_directive] = ACTIONS(3),
  },
  [2647] = {
    [sym_identifier] = ACTIONS(4788),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4790),
    [anon_sym_SEMI] = ACTIONS(4790),
    [anon_sym_TILDE] = ACTIONS(4790),
    [anon_sym_AT] = ACTIONS(4790),
    [sym_bool] = ACTIONS(4788),
    [sym_byte] = ACTIONS(4788),
    [sym_ubyte] = ACTIONS(4788),
    [sym_char] = ACTIONS(4788),
    [sym_short] = ACTIONS(4788),
    [sym_ushort] = ACTIONS(4788),
    [sym_int] = ACTIONS(4788),
    [sym_uint] = ACTIONS(4788),
    [sym_long] = ACTIONS(4788),
    [sym_ulong] = ACTIONS(4788),
    [sym_cent] = ACTIONS(4788),
    [sym_ucent] = ACTIONS(4788),
    [sym_wchar] = ACTIONS(4788),
    [sym_dchar] = ACTIONS(4788),
    [sym_float] = ACTIONS(4788),
    [sym_double] = ACTIONS(4788),
    [sym_real] = ACTIONS(4788),
    [sym_ifloat] = ACTIONS(4788),
    [sym_idouble] = ACTIONS(4788),
    [sym_ireal] = ACTIONS(4788),
    [sym_cfloat] = ACTIONS(4788),
    [sym_cdouble] = ACTIONS(4788),
    [sym_creal] = ACTIONS(4788),
    [sym_size_t] = ACTIONS(4788),
    [sym_ptrdiff_t] = ACTIONS(4788),
    [sym_string] = ACTIONS(4788),
    [sym_cstring] = ACTIONS(4788),
    [sym_dstring] = ACTIONS(4788),
    [sym_wstring] = ACTIONS(4788),
    [sym_noreturn] = ACTIONS(4788),
    [sym_this] = ACTIONS(4788),
    [sym_abstract] = ACTIONS(4788),
    [sym_alias] = ACTIONS(4788),
    [sym_align] = ACTIONS(4788),
    [sym_auto] = ACTIONS(4788),
    [sym_catch] = ACTIONS(4788),
    [sym_class] = ACTIONS(4788),
    [sym_const] = ACTIONS(4788),
    [sym_debug] = ACTIONS(4788),
    [sym_deprecated] = ACTIONS(4788),
    [sym_else] = ACTIONS(4788),
    [sym_enum] = ACTIONS(4788),
    [sym_export] = ACTIONS(4788),
    [sym_extern] = ACTIONS(4788),
    [sym_final] = ACTIONS(4788),
    [sym_finally] = ACTIONS(4788),
    [sym_immutable] = ACTIONS(4788),
    [sym_import] = ACTIONS(4788),
    [sym_inout] = ACTIONS(4788),
    [sym_interface] = ACTIONS(4788),
    [sym_invariant] = ACTIONS(4788),
    [sym_mixin] = ACTIONS(4788),
    [sym_nothrow] = ACTIONS(4788),
    [sym_override] = ACTIONS(4788),
    [sym_package] = ACTIONS(4788),
    [sym_pragma] = ACTIONS(4788),
    [sym_private] = ACTIONS(4788),
    [sym_protected] = ACTIONS(4788),
    [sym_public] = ACTIONS(4788),
    [sym_pure] = ACTIONS(4788),
    [sym_ref] = ACTIONS(4788),
    [sym_return] = ACTIONS(4788),
    [sym_scope] = ACTIONS(4788),
    [sym_shared] = ACTIONS(4788),
    [sym_static] = ACTIONS(4788),
    [sym_struct] = ACTIONS(4788),
    [sym_synchronized] = ACTIONS(4788),
    [sym_template] = ACTIONS(4788),
    [sym_typeof] = ACTIONS(4788),
    [sym_union] = ACTIONS(4788),
    [sym_unittest] = ACTIONS(4788),
    [sym_version] = ACTIONS(4788),
    [sym_while] = ACTIONS(4788),
    [sym_gshared] = ACTIONS(4788),
    [sym_traits] = ACTIONS(4788),
    [sym_vector] = ACTIONS(4788),
    [sym_void] = ACTIONS(4788),
    [sym_directive] = ACTIONS(3),
  },
  [2648] = {
    [sym_identifier] = ACTIONS(4832),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4834),
    [anon_sym_SEMI] = ACTIONS(4834),
    [anon_sym_TILDE] = ACTIONS(4834),
    [anon_sym_AT] = ACTIONS(4834),
    [sym_bool] = ACTIONS(4832),
    [sym_byte] = ACTIONS(4832),
    [sym_ubyte] = ACTIONS(4832),
    [sym_char] = ACTIONS(4832),
    [sym_short] = ACTIONS(4832),
    [sym_ushort] = ACTIONS(4832),
    [sym_int] = ACTIONS(4832),
    [sym_uint] = ACTIONS(4832),
    [sym_long] = ACTIONS(4832),
    [sym_ulong] = ACTIONS(4832),
    [sym_cent] = ACTIONS(4832),
    [sym_ucent] = ACTIONS(4832),
    [sym_wchar] = ACTIONS(4832),
    [sym_dchar] = ACTIONS(4832),
    [sym_float] = ACTIONS(4832),
    [sym_double] = ACTIONS(4832),
    [sym_real] = ACTIONS(4832),
    [sym_ifloat] = ACTIONS(4832),
    [sym_idouble] = ACTIONS(4832),
    [sym_ireal] = ACTIONS(4832),
    [sym_cfloat] = ACTIONS(4832),
    [sym_cdouble] = ACTIONS(4832),
    [sym_creal] = ACTIONS(4832),
    [sym_size_t] = ACTIONS(4832),
    [sym_ptrdiff_t] = ACTIONS(4832),
    [sym_string] = ACTIONS(4832),
    [sym_cstring] = ACTIONS(4832),
    [sym_dstring] = ACTIONS(4832),
    [sym_wstring] = ACTIONS(4832),
    [sym_noreturn] = ACTIONS(4832),
    [sym_this] = ACTIONS(4832),
    [sym_abstract] = ACTIONS(4832),
    [sym_alias] = ACTIONS(4832),
    [sym_align] = ACTIONS(4832),
    [sym_auto] = ACTIONS(4832),
    [sym_catch] = ACTIONS(4832),
    [sym_class] = ACTIONS(4832),
    [sym_const] = ACTIONS(4832),
    [sym_debug] = ACTIONS(4832),
    [sym_deprecated] = ACTIONS(4832),
    [sym_else] = ACTIONS(4832),
    [sym_enum] = ACTIONS(4832),
    [sym_export] = ACTIONS(4832),
    [sym_extern] = ACTIONS(4832),
    [sym_final] = ACTIONS(4832),
    [sym_finally] = ACTIONS(4832),
    [sym_immutable] = ACTIONS(4832),
    [sym_import] = ACTIONS(4832),
    [sym_inout] = ACTIONS(4832),
    [sym_interface] = ACTIONS(4832),
    [sym_invariant] = ACTIONS(4832),
    [sym_mixin] = ACTIONS(4832),
    [sym_nothrow] = ACTIONS(4832),
    [sym_override] = ACTIONS(4832),
    [sym_package] = ACTIONS(4832),
    [sym_pragma] = ACTIONS(4832),
    [sym_private] = ACTIONS(4832),
    [sym_protected] = ACTIONS(4832),
    [sym_public] = ACTIONS(4832),
    [sym_pure] = ACTIONS(4832),
    [sym_ref] = ACTIONS(4832),
    [sym_return] = ACTIONS(4832),
    [sym_scope] = ACTIONS(4832),
    [sym_shared] = ACTIONS(4832),
    [sym_static] = ACTIONS(4832),
    [sym_struct] = ACTIONS(4832),
    [sym_synchronized] = ACTIONS(4832),
    [sym_template] = ACTIONS(4832),
    [sym_typeof] = ACTIONS(4832),
    [sym_union] = ACTIONS(4832),
    [sym_unittest] = ACTIONS(4832),
    [sym_version] = ACTIONS(4832),
    [sym_while] = ACTIONS(4832),
    [sym_gshared] = ACTIONS(4832),
    [sym_traits] = ACTIONS(4832),
    [sym_vector] = ACTIONS(4832),
    [sym_void] = ACTIONS(4832),
    [sym_directive] = ACTIONS(3),
  },
  [2649] = {
    [sym_identifier] = ACTIONS(4836),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4838),
    [anon_sym_SEMI] = ACTIONS(4838),
    [anon_sym_TILDE] = ACTIONS(4838),
    [anon_sym_AT] = ACTIONS(4838),
    [sym_bool] = ACTIONS(4836),
    [sym_byte] = ACTIONS(4836),
    [sym_ubyte] = ACTIONS(4836),
    [sym_char] = ACTIONS(4836),
    [sym_short] = ACTIONS(4836),
    [sym_ushort] = ACTIONS(4836),
    [sym_int] = ACTIONS(4836),
    [sym_uint] = ACTIONS(4836),
    [sym_long] = ACTIONS(4836),
    [sym_ulong] = ACTIONS(4836),
    [sym_cent] = ACTIONS(4836),
    [sym_ucent] = ACTIONS(4836),
    [sym_wchar] = ACTIONS(4836),
    [sym_dchar] = ACTIONS(4836),
    [sym_float] = ACTIONS(4836),
    [sym_double] = ACTIONS(4836),
    [sym_real] = ACTIONS(4836),
    [sym_ifloat] = ACTIONS(4836),
    [sym_idouble] = ACTIONS(4836),
    [sym_ireal] = ACTIONS(4836),
    [sym_cfloat] = ACTIONS(4836),
    [sym_cdouble] = ACTIONS(4836),
    [sym_creal] = ACTIONS(4836),
    [sym_size_t] = ACTIONS(4836),
    [sym_ptrdiff_t] = ACTIONS(4836),
    [sym_string] = ACTIONS(4836),
    [sym_cstring] = ACTIONS(4836),
    [sym_dstring] = ACTIONS(4836),
    [sym_wstring] = ACTIONS(4836),
    [sym_noreturn] = ACTIONS(4836),
    [sym_this] = ACTIONS(4836),
    [sym_abstract] = ACTIONS(4836),
    [sym_alias] = ACTIONS(4836),
    [sym_align] = ACTIONS(4836),
    [sym_auto] = ACTIONS(4836),
    [sym_catch] = ACTIONS(4836),
    [sym_class] = ACTIONS(4836),
    [sym_const] = ACTIONS(4836),
    [sym_debug] = ACTIONS(4836),
    [sym_deprecated] = ACTIONS(4836),
    [sym_else] = ACTIONS(4836),
    [sym_enum] = ACTIONS(4836),
    [sym_export] = ACTIONS(4836),
    [sym_extern] = ACTIONS(4836),
    [sym_final] = ACTIONS(4836),
    [sym_finally] = ACTIONS(4836),
    [sym_immutable] = ACTIONS(4836),
    [sym_import] = ACTIONS(4836),
    [sym_inout] = ACTIONS(4836),
    [sym_interface] = ACTIONS(4836),
    [sym_invariant] = ACTIONS(4836),
    [sym_mixin] = ACTIONS(4836),
    [sym_nothrow] = ACTIONS(4836),
    [sym_override] = ACTIONS(4836),
    [sym_package] = ACTIONS(4836),
    [sym_pragma] = ACTIONS(4836),
    [sym_private] = ACTIONS(4836),
    [sym_protected] = ACTIONS(4836),
    [sym_public] = ACTIONS(4836),
    [sym_pure] = ACTIONS(4836),
    [sym_ref] = ACTIONS(4836),
    [sym_return] = ACTIONS(4836),
    [sym_scope] = ACTIONS(4836),
    [sym_shared] = ACTIONS(4836),
    [sym_static] = ACTIONS(4836),
    [sym_struct] = ACTIONS(4836),
    [sym_synchronized] = ACTIONS(4836),
    [sym_template] = ACTIONS(4836),
    [sym_typeof] = ACTIONS(4836),
    [sym_union] = ACTIONS(4836),
    [sym_unittest] = ACTIONS(4836),
    [sym_version] = ACTIONS(4836),
    [sym_while] = ACTIONS(4836),
    [sym_gshared] = ACTIONS(4836),
    [sym_traits] = ACTIONS(4836),
    [sym_vector] = ACTIONS(4836),
    [sym_void] = ACTIONS(4836),
    [sym_directive] = ACTIONS(3),
  },
  [2650] = {
    [sym_identifier] = ACTIONS(4844),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4846),
    [anon_sym_SEMI] = ACTIONS(4846),
    [anon_sym_TILDE] = ACTIONS(4846),
    [anon_sym_AT] = ACTIONS(4846),
    [sym_bool] = ACTIONS(4844),
    [sym_byte] = ACTIONS(4844),
    [sym_ubyte] = ACTIONS(4844),
    [sym_char] = ACTIONS(4844),
    [sym_short] = ACTIONS(4844),
    [sym_ushort] = ACTIONS(4844),
    [sym_int] = ACTIONS(4844),
    [sym_uint] = ACTIONS(4844),
    [sym_long] = ACTIONS(4844),
    [sym_ulong] = ACTIONS(4844),
    [sym_cent] = ACTIONS(4844),
    [sym_ucent] = ACTIONS(4844),
    [sym_wchar] = ACTIONS(4844),
    [sym_dchar] = ACTIONS(4844),
    [sym_float] = ACTIONS(4844),
    [sym_double] = ACTIONS(4844),
    [sym_real] = ACTIONS(4844),
    [sym_ifloat] = ACTIONS(4844),
    [sym_idouble] = ACTIONS(4844),
    [sym_ireal] = ACTIONS(4844),
    [sym_cfloat] = ACTIONS(4844),
    [sym_cdouble] = ACTIONS(4844),
    [sym_creal] = ACTIONS(4844),
    [sym_size_t] = ACTIONS(4844),
    [sym_ptrdiff_t] = ACTIONS(4844),
    [sym_string] = ACTIONS(4844),
    [sym_cstring] = ACTIONS(4844),
    [sym_dstring] = ACTIONS(4844),
    [sym_wstring] = ACTIONS(4844),
    [sym_noreturn] = ACTIONS(4844),
    [sym_this] = ACTIONS(4844),
    [sym_abstract] = ACTIONS(4844),
    [sym_alias] = ACTIONS(4844),
    [sym_align] = ACTIONS(4844),
    [sym_auto] = ACTIONS(4844),
    [sym_catch] = ACTIONS(4844),
    [sym_class] = ACTIONS(4844),
    [sym_const] = ACTIONS(4844),
    [sym_debug] = ACTIONS(4844),
    [sym_deprecated] = ACTIONS(4844),
    [sym_else] = ACTIONS(4844),
    [sym_enum] = ACTIONS(4844),
    [sym_export] = ACTIONS(4844),
    [sym_extern] = ACTIONS(4844),
    [sym_final] = ACTIONS(4844),
    [sym_finally] = ACTIONS(4844),
    [sym_immutable] = ACTIONS(4844),
    [sym_import] = ACTIONS(4844),
    [sym_inout] = ACTIONS(4844),
    [sym_interface] = ACTIONS(4844),
    [sym_invariant] = ACTIONS(4844),
    [sym_mixin] = ACTIONS(4844),
    [sym_nothrow] = ACTIONS(4844),
    [sym_override] = ACTIONS(4844),
    [sym_package] = ACTIONS(4844),
    [sym_pragma] = ACTIONS(4844),
    [sym_private] = ACTIONS(4844),
    [sym_protected] = ACTIONS(4844),
    [sym_public] = ACTIONS(4844),
    [sym_pure] = ACTIONS(4844),
    [sym_ref] = ACTIONS(4844),
    [sym_return] = ACTIONS(4844),
    [sym_scope] = ACTIONS(4844),
    [sym_shared] = ACTIONS(4844),
    [sym_static] = ACTIONS(4844),
    [sym_struct] = ACTIONS(4844),
    [sym_synchronized] = ACTIONS(4844),
    [sym_template] = ACTIONS(4844),
    [sym_typeof] = ACTIONS(4844),
    [sym_union] = ACTIONS(4844),
    [sym_unittest] = ACTIONS(4844),
    [sym_version] = ACTIONS(4844),
    [sym_while] = ACTIONS(4844),
    [sym_gshared] = ACTIONS(4844),
    [sym_traits] = ACTIONS(4844),
    [sym_vector] = ACTIONS(4844),
    [sym_void] = ACTIONS(4844),
    [sym_directive] = ACTIONS(3),
  },
  [2651] = {
    [sym_identifier] = ACTIONS(4864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4866),
    [anon_sym_SEMI] = ACTIONS(4866),
    [anon_sym_TILDE] = ACTIONS(4866),
    [anon_sym_AT] = ACTIONS(4866),
    [sym_bool] = ACTIONS(4864),
    [sym_byte] = ACTIONS(4864),
    [sym_ubyte] = ACTIONS(4864),
    [sym_char] = ACTIONS(4864),
    [sym_short] = ACTIONS(4864),
    [sym_ushort] = ACTIONS(4864),
    [sym_int] = ACTIONS(4864),
    [sym_uint] = ACTIONS(4864),
    [sym_long] = ACTIONS(4864),
    [sym_ulong] = ACTIONS(4864),
    [sym_cent] = ACTIONS(4864),
    [sym_ucent] = ACTIONS(4864),
    [sym_wchar] = ACTIONS(4864),
    [sym_dchar] = ACTIONS(4864),
    [sym_float] = ACTIONS(4864),
    [sym_double] = ACTIONS(4864),
    [sym_real] = ACTIONS(4864),
    [sym_ifloat] = ACTIONS(4864),
    [sym_idouble] = ACTIONS(4864),
    [sym_ireal] = ACTIONS(4864),
    [sym_cfloat] = ACTIONS(4864),
    [sym_cdouble] = ACTIONS(4864),
    [sym_creal] = ACTIONS(4864),
    [sym_size_t] = ACTIONS(4864),
    [sym_ptrdiff_t] = ACTIONS(4864),
    [sym_string] = ACTIONS(4864),
    [sym_cstring] = ACTIONS(4864),
    [sym_dstring] = ACTIONS(4864),
    [sym_wstring] = ACTIONS(4864),
    [sym_noreturn] = ACTIONS(4864),
    [sym_this] = ACTIONS(4864),
    [sym_abstract] = ACTIONS(4864),
    [sym_alias] = ACTIONS(4864),
    [sym_align] = ACTIONS(4864),
    [sym_auto] = ACTIONS(4864),
    [sym_catch] = ACTIONS(4864),
    [sym_class] = ACTIONS(4864),
    [sym_const] = ACTIONS(4864),
    [sym_debug] = ACTIONS(4864),
    [sym_deprecated] = ACTIONS(4864),
    [sym_else] = ACTIONS(4864),
    [sym_enum] = ACTIONS(4864),
    [sym_export] = ACTIONS(4864),
    [sym_extern] = ACTIONS(4864),
    [sym_final] = ACTIONS(4864),
    [sym_finally] = ACTIONS(4864),
    [sym_immutable] = ACTIONS(4864),
    [sym_import] = ACTIONS(4864),
    [sym_inout] = ACTIONS(4864),
    [sym_interface] = ACTIONS(4864),
    [sym_invariant] = ACTIONS(4864),
    [sym_mixin] = ACTIONS(4864),
    [sym_nothrow] = ACTIONS(4864),
    [sym_override] = ACTIONS(4864),
    [sym_package] = ACTIONS(4864),
    [sym_pragma] = ACTIONS(4864),
    [sym_private] = ACTIONS(4864),
    [sym_protected] = ACTIONS(4864),
    [sym_public] = ACTIONS(4864),
    [sym_pure] = ACTIONS(4864),
    [sym_ref] = ACTIONS(4864),
    [sym_return] = ACTIONS(4864),
    [sym_scope] = ACTIONS(4864),
    [sym_shared] = ACTIONS(4864),
    [sym_static] = ACTIONS(4864),
    [sym_struct] = ACTIONS(4864),
    [sym_synchronized] = ACTIONS(4864),
    [sym_template] = ACTIONS(4864),
    [sym_typeof] = ACTIONS(4864),
    [sym_union] = ACTIONS(4864),
    [sym_unittest] = ACTIONS(4864),
    [sym_version] = ACTIONS(4864),
    [sym_while] = ACTIONS(4864),
    [sym_gshared] = ACTIONS(4864),
    [sym_traits] = ACTIONS(4864),
    [sym_vector] = ACTIONS(4864),
    [sym_void] = ACTIONS(4864),
    [sym_directive] = ACTIONS(3),
  },
  [2652] = {
    [sym_identifier] = ACTIONS(4868),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4870),
    [anon_sym_SEMI] = ACTIONS(4870),
    [anon_sym_TILDE] = ACTIONS(4870),
    [anon_sym_AT] = ACTIONS(4870),
    [sym_bool] = ACTIONS(4868),
    [sym_byte] = ACTIONS(4868),
    [sym_ubyte] = ACTIONS(4868),
    [sym_char] = ACTIONS(4868),
    [sym_short] = ACTIONS(4868),
    [sym_ushort] = ACTIONS(4868),
    [sym_int] = ACTIONS(4868),
    [sym_uint] = ACTIONS(4868),
    [sym_long] = ACTIONS(4868),
    [sym_ulong] = ACTIONS(4868),
    [sym_cent] = ACTIONS(4868),
    [sym_ucent] = ACTIONS(4868),
    [sym_wchar] = ACTIONS(4868),
    [sym_dchar] = ACTIONS(4868),
    [sym_float] = ACTIONS(4868),
    [sym_double] = ACTIONS(4868),
    [sym_real] = ACTIONS(4868),
    [sym_ifloat] = ACTIONS(4868),
    [sym_idouble] = ACTIONS(4868),
    [sym_ireal] = ACTIONS(4868),
    [sym_cfloat] = ACTIONS(4868),
    [sym_cdouble] = ACTIONS(4868),
    [sym_creal] = ACTIONS(4868),
    [sym_size_t] = ACTIONS(4868),
    [sym_ptrdiff_t] = ACTIONS(4868),
    [sym_string] = ACTIONS(4868),
    [sym_cstring] = ACTIONS(4868),
    [sym_dstring] = ACTIONS(4868),
    [sym_wstring] = ACTIONS(4868),
    [sym_noreturn] = ACTIONS(4868),
    [sym_this] = ACTIONS(4868),
    [sym_abstract] = ACTIONS(4868),
    [sym_alias] = ACTIONS(4868),
    [sym_align] = ACTIONS(4868),
    [sym_auto] = ACTIONS(4868),
    [sym_catch] = ACTIONS(4868),
    [sym_class] = ACTIONS(4868),
    [sym_const] = ACTIONS(4868),
    [sym_debug] = ACTIONS(4868),
    [sym_deprecated] = ACTIONS(4868),
    [sym_else] = ACTIONS(4868),
    [sym_enum] = ACTIONS(4868),
    [sym_export] = ACTIONS(4868),
    [sym_extern] = ACTIONS(4868),
    [sym_final] = ACTIONS(4868),
    [sym_finally] = ACTIONS(4868),
    [sym_immutable] = ACTIONS(4868),
    [sym_import] = ACTIONS(4868),
    [sym_inout] = ACTIONS(4868),
    [sym_interface] = ACTIONS(4868),
    [sym_invariant] = ACTIONS(4868),
    [sym_mixin] = ACTIONS(4868),
    [sym_nothrow] = ACTIONS(4868),
    [sym_override] = ACTIONS(4868),
    [sym_package] = ACTIONS(4868),
    [sym_pragma] = ACTIONS(4868),
    [sym_private] = ACTIONS(4868),
    [sym_protected] = ACTIONS(4868),
    [sym_public] = ACTIONS(4868),
    [sym_pure] = ACTIONS(4868),
    [sym_ref] = ACTIONS(4868),
    [sym_return] = ACTIONS(4868),
    [sym_scope] = ACTIONS(4868),
    [sym_shared] = ACTIONS(4868),
    [sym_static] = ACTIONS(4868),
    [sym_struct] = ACTIONS(4868),
    [sym_synchronized] = ACTIONS(4868),
    [sym_template] = ACTIONS(4868),
    [sym_typeof] = ACTIONS(4868),
    [sym_union] = ACTIONS(4868),
    [sym_unittest] = ACTIONS(4868),
    [sym_version] = ACTIONS(4868),
    [sym_while] = ACTIONS(4868),
    [sym_gshared] = ACTIONS(4868),
    [sym_traits] = ACTIONS(4868),
    [sym_vector] = ACTIONS(4868),
    [sym_void] = ACTIONS(4868),
    [sym_directive] = ACTIONS(3),
  },
  [2653] = {
    [sym_identifier] = ACTIONS(4872),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4874),
    [anon_sym_SEMI] = ACTIONS(4874),
    [anon_sym_TILDE] = ACTIONS(4874),
    [anon_sym_AT] = ACTIONS(4874),
    [sym_bool] = ACTIONS(4872),
    [sym_byte] = ACTIONS(4872),
    [sym_ubyte] = ACTIONS(4872),
    [sym_char] = ACTIONS(4872),
    [sym_short] = ACTIONS(4872),
    [sym_ushort] = ACTIONS(4872),
    [sym_int] = ACTIONS(4872),
    [sym_uint] = ACTIONS(4872),
    [sym_long] = ACTIONS(4872),
    [sym_ulong] = ACTIONS(4872),
    [sym_cent] = ACTIONS(4872),
    [sym_ucent] = ACTIONS(4872),
    [sym_wchar] = ACTIONS(4872),
    [sym_dchar] = ACTIONS(4872),
    [sym_float] = ACTIONS(4872),
    [sym_double] = ACTIONS(4872),
    [sym_real] = ACTIONS(4872),
    [sym_ifloat] = ACTIONS(4872),
    [sym_idouble] = ACTIONS(4872),
    [sym_ireal] = ACTIONS(4872),
    [sym_cfloat] = ACTIONS(4872),
    [sym_cdouble] = ACTIONS(4872),
    [sym_creal] = ACTIONS(4872),
    [sym_size_t] = ACTIONS(4872),
    [sym_ptrdiff_t] = ACTIONS(4872),
    [sym_string] = ACTIONS(4872),
    [sym_cstring] = ACTIONS(4872),
    [sym_dstring] = ACTIONS(4872),
    [sym_wstring] = ACTIONS(4872),
    [sym_noreturn] = ACTIONS(4872),
    [sym_this] = ACTIONS(4872),
    [sym_abstract] = ACTIONS(4872),
    [sym_alias] = ACTIONS(4872),
    [sym_align] = ACTIONS(4872),
    [sym_auto] = ACTIONS(4872),
    [sym_catch] = ACTIONS(4872),
    [sym_class] = ACTIONS(4872),
    [sym_const] = ACTIONS(4872),
    [sym_debug] = ACTIONS(4872),
    [sym_deprecated] = ACTIONS(4872),
    [sym_else] = ACTIONS(4872),
    [sym_enum] = ACTIONS(4872),
    [sym_export] = ACTIONS(4872),
    [sym_extern] = ACTIONS(4872),
    [sym_final] = ACTIONS(4872),
    [sym_finally] = ACTIONS(4872),
    [sym_immutable] = ACTIONS(4872),
    [sym_import] = ACTIONS(4872),
    [sym_inout] = ACTIONS(4872),
    [sym_interface] = ACTIONS(4872),
    [sym_invariant] = ACTIONS(4872),
    [sym_mixin] = ACTIONS(4872),
    [sym_nothrow] = ACTIONS(4872),
    [sym_override] = ACTIONS(4872),
    [sym_package] = ACTIONS(4872),
    [sym_pragma] = ACTIONS(4872),
    [sym_private] = ACTIONS(4872),
    [sym_protected] = ACTIONS(4872),
    [sym_public] = ACTIONS(4872),
    [sym_pure] = ACTIONS(4872),
    [sym_ref] = ACTIONS(4872),
    [sym_return] = ACTIONS(4872),
    [sym_scope] = ACTIONS(4872),
    [sym_shared] = ACTIONS(4872),
    [sym_static] = ACTIONS(4872),
    [sym_struct] = ACTIONS(4872),
    [sym_synchronized] = ACTIONS(4872),
    [sym_template] = ACTIONS(4872),
    [sym_typeof] = ACTIONS(4872),
    [sym_union] = ACTIONS(4872),
    [sym_unittest] = ACTIONS(4872),
    [sym_version] = ACTIONS(4872),
    [sym_while] = ACTIONS(4872),
    [sym_gshared] = ACTIONS(4872),
    [sym_traits] = ACTIONS(4872),
    [sym_vector] = ACTIONS(4872),
    [sym_void] = ACTIONS(4872),
    [sym_directive] = ACTIONS(3),
  },
  [2654] = {
    [sym_identifier] = ACTIONS(2812),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2810),
    [anon_sym_AT] = ACTIONS(2810),
    [sym_bool] = ACTIONS(2812),
    [sym_byte] = ACTIONS(2812),
    [sym_ubyte] = ACTIONS(2812),
    [sym_char] = ACTIONS(2812),
    [sym_short] = ACTIONS(2812),
    [sym_ushort] = ACTIONS(2812),
    [sym_int] = ACTIONS(2812),
    [sym_uint] = ACTIONS(2812),
    [sym_long] = ACTIONS(2812),
    [sym_ulong] = ACTIONS(2812),
    [sym_cent] = ACTIONS(2812),
    [sym_ucent] = ACTIONS(2812),
    [sym_wchar] = ACTIONS(2812),
    [sym_dchar] = ACTIONS(2812),
    [sym_float] = ACTIONS(2812),
    [sym_double] = ACTIONS(2812),
    [sym_real] = ACTIONS(2812),
    [sym_ifloat] = ACTIONS(2812),
    [sym_idouble] = ACTIONS(2812),
    [sym_ireal] = ACTIONS(2812),
    [sym_cfloat] = ACTIONS(2812),
    [sym_cdouble] = ACTIONS(2812),
    [sym_creal] = ACTIONS(2812),
    [sym_size_t] = ACTIONS(2812),
    [sym_ptrdiff_t] = ACTIONS(2812),
    [sym_string] = ACTIONS(2812),
    [sym_cstring] = ACTIONS(2812),
    [sym_dstring] = ACTIONS(2812),
    [sym_wstring] = ACTIONS(2812),
    [sym_noreturn] = ACTIONS(2812),
    [sym_this] = ACTIONS(2812),
    [sym_abstract] = ACTIONS(2812),
    [sym_alias] = ACTIONS(2812),
    [sym_align] = ACTIONS(2812),
    [sym_auto] = ACTIONS(2812),
    [sym_catch] = ACTIONS(2812),
    [sym_class] = ACTIONS(2812),
    [sym_const] = ACTIONS(2812),
    [sym_debug] = ACTIONS(2812),
    [sym_deprecated] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(2812),
    [sym_export] = ACTIONS(2812),
    [sym_extern] = ACTIONS(2812),
    [sym_final] = ACTIONS(2812),
    [sym_finally] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(2812),
    [sym_import] = ACTIONS(2812),
    [sym_inout] = ACTIONS(2812),
    [sym_interface] = ACTIONS(2812),
    [sym_invariant] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2812),
    [sym_nothrow] = ACTIONS(2812),
    [sym_override] = ACTIONS(2812),
    [sym_package] = ACTIONS(2812),
    [sym_pragma] = ACTIONS(2812),
    [sym_private] = ACTIONS(2812),
    [sym_protected] = ACTIONS(2812),
    [sym_public] = ACTIONS(2812),
    [sym_pure] = ACTIONS(2812),
    [sym_ref] = ACTIONS(2812),
    [sym_return] = ACTIONS(2812),
    [sym_scope] = ACTIONS(2812),
    [sym_shared] = ACTIONS(2812),
    [sym_static] = ACTIONS(2812),
    [sym_struct] = ACTIONS(2812),
    [sym_synchronized] = ACTIONS(2812),
    [sym_template] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(2812),
    [sym_union] = ACTIONS(2812),
    [sym_unittest] = ACTIONS(2812),
    [sym_version] = ACTIONS(2812),
    [sym_while] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(2812),
    [sym_traits] = ACTIONS(2812),
    [sym_vector] = ACTIONS(2812),
    [sym_void] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
  },
  [2655] = {
    [sym_identifier] = ACTIONS(4888),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4890),
    [anon_sym_SEMI] = ACTIONS(4890),
    [anon_sym_TILDE] = ACTIONS(4890),
    [anon_sym_AT] = ACTIONS(4890),
    [sym_bool] = ACTIONS(4888),
    [sym_byte] = ACTIONS(4888),
    [sym_ubyte] = ACTIONS(4888),
    [sym_char] = ACTIONS(4888),
    [sym_short] = ACTIONS(4888),
    [sym_ushort] = ACTIONS(4888),
    [sym_int] = ACTIONS(4888),
    [sym_uint] = ACTIONS(4888),
    [sym_long] = ACTIONS(4888),
    [sym_ulong] = ACTIONS(4888),
    [sym_cent] = ACTIONS(4888),
    [sym_ucent] = ACTIONS(4888),
    [sym_wchar] = ACTIONS(4888),
    [sym_dchar] = ACTIONS(4888),
    [sym_float] = ACTIONS(4888),
    [sym_double] = ACTIONS(4888),
    [sym_real] = ACTIONS(4888),
    [sym_ifloat] = ACTIONS(4888),
    [sym_idouble] = ACTIONS(4888),
    [sym_ireal] = ACTIONS(4888),
    [sym_cfloat] = ACTIONS(4888),
    [sym_cdouble] = ACTIONS(4888),
    [sym_creal] = ACTIONS(4888),
    [sym_size_t] = ACTIONS(4888),
    [sym_ptrdiff_t] = ACTIONS(4888),
    [sym_string] = ACTIONS(4888),
    [sym_cstring] = ACTIONS(4888),
    [sym_dstring] = ACTIONS(4888),
    [sym_wstring] = ACTIONS(4888),
    [sym_noreturn] = ACTIONS(4888),
    [sym_this] = ACTIONS(4888),
    [sym_abstract] = ACTIONS(4888),
    [sym_alias] = ACTIONS(4888),
    [sym_align] = ACTIONS(4888),
    [sym_auto] = ACTIONS(4888),
    [sym_catch] = ACTIONS(4888),
    [sym_class] = ACTIONS(4888),
    [sym_const] = ACTIONS(4888),
    [sym_debug] = ACTIONS(4888),
    [sym_deprecated] = ACTIONS(4888),
    [sym_else] = ACTIONS(4888),
    [sym_enum] = ACTIONS(4888),
    [sym_export] = ACTIONS(4888),
    [sym_extern] = ACTIONS(4888),
    [sym_final] = ACTIONS(4888),
    [sym_finally] = ACTIONS(4888),
    [sym_immutable] = ACTIONS(4888),
    [sym_import] = ACTIONS(4888),
    [sym_inout] = ACTIONS(4888),
    [sym_interface] = ACTIONS(4888),
    [sym_invariant] = ACTIONS(4888),
    [sym_mixin] = ACTIONS(4888),
    [sym_nothrow] = ACTIONS(4888),
    [sym_override] = ACTIONS(4888),
    [sym_package] = ACTIONS(4888),
    [sym_pragma] = ACTIONS(4888),
    [sym_private] = ACTIONS(4888),
    [sym_protected] = ACTIONS(4888),
    [sym_public] = ACTIONS(4888),
    [sym_pure] = ACTIONS(4888),
    [sym_ref] = ACTIONS(4888),
    [sym_return] = ACTIONS(4888),
    [sym_scope] = ACTIONS(4888),
    [sym_shared] = ACTIONS(4888),
    [sym_static] = ACTIONS(4888),
    [sym_struct] = ACTIONS(4888),
    [sym_synchronized] = ACTIONS(4888),
    [sym_template] = ACTIONS(4888),
    [sym_typeof] = ACTIONS(4888),
    [sym_union] = ACTIONS(4888),
    [sym_unittest] = ACTIONS(4888),
    [sym_version] = ACTIONS(4888),
    [sym_while] = ACTIONS(4888),
    [sym_gshared] = ACTIONS(4888),
    [sym_traits] = ACTIONS(4888),
    [sym_vector] = ACTIONS(4888),
    [sym_void] = ACTIONS(4888),
    [sym_directive] = ACTIONS(3),
  },
  [2656] = {
    [ts_builtin_sym_end] = ACTIONS(4556),
    [sym_identifier] = ACTIONS(4554),
    [sym_end_file] = ACTIONS(4554),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4556),
    [anon_sym_SEMI] = ACTIONS(4556),
    [anon_sym_TILDE] = ACTIONS(4556),
    [anon_sym_AT] = ACTIONS(4556),
    [sym_bool] = ACTIONS(4554),
    [sym_byte] = ACTIONS(4554),
    [sym_ubyte] = ACTIONS(4554),
    [sym_char] = ACTIONS(4554),
    [sym_short] = ACTIONS(4554),
    [sym_ushort] = ACTIONS(4554),
    [sym_int] = ACTIONS(4554),
    [sym_uint] = ACTIONS(4554),
    [sym_long] = ACTIONS(4554),
    [sym_ulong] = ACTIONS(4554),
    [sym_cent] = ACTIONS(4554),
    [sym_ucent] = ACTIONS(4554),
    [sym_wchar] = ACTIONS(4554),
    [sym_dchar] = ACTIONS(4554),
    [sym_float] = ACTIONS(4554),
    [sym_double] = ACTIONS(4554),
    [sym_real] = ACTIONS(4554),
    [sym_ifloat] = ACTIONS(4554),
    [sym_idouble] = ACTIONS(4554),
    [sym_ireal] = ACTIONS(4554),
    [sym_cfloat] = ACTIONS(4554),
    [sym_cdouble] = ACTIONS(4554),
    [sym_creal] = ACTIONS(4554),
    [sym_size_t] = ACTIONS(4554),
    [sym_ptrdiff_t] = ACTIONS(4554),
    [sym_string] = ACTIONS(4554),
    [sym_cstring] = ACTIONS(4554),
    [sym_dstring] = ACTIONS(4554),
    [sym_wstring] = ACTIONS(4554),
    [sym_noreturn] = ACTIONS(4554),
    [sym_this] = ACTIONS(4554),
    [sym_abstract] = ACTIONS(4554),
    [sym_alias] = ACTIONS(4554),
    [sym_align] = ACTIONS(4554),
    [sym_auto] = ACTIONS(4554),
    [sym_class] = ACTIONS(4554),
    [sym_const] = ACTIONS(4554),
    [sym_debug] = ACTIONS(4554),
    [sym_deprecated] = ACTIONS(4554),
    [sym_else] = ACTIONS(4554),
    [sym_enum] = ACTIONS(4554),
    [sym_export] = ACTIONS(4554),
    [sym_extern] = ACTIONS(4554),
    [sym_final] = ACTIONS(4554),
    [sym_immutable] = ACTIONS(4554),
    [sym_import] = ACTIONS(4554),
    [sym_inout] = ACTIONS(4554),
    [sym_interface] = ACTIONS(4554),
    [sym_invariant] = ACTIONS(4554),
    [sym_mixin] = ACTIONS(4554),
    [sym_nothrow] = ACTIONS(4554),
    [sym_override] = ACTIONS(4554),
    [sym_package] = ACTIONS(4554),
    [sym_pragma] = ACTIONS(4554),
    [sym_private] = ACTIONS(4554),
    [sym_protected] = ACTIONS(4554),
    [sym_public] = ACTIONS(4554),
    [sym_pure] = ACTIONS(4554),
    [sym_ref] = ACTIONS(4554),
    [sym_return] = ACTIONS(4554),
    [sym_scope] = ACTIONS(4554),
    [sym_shared] = ACTIONS(4554),
    [sym_static] = ACTIONS(4554),
    [sym_struct] = ACTIONS(4554),
    [sym_synchronized] = ACTIONS(4554),
    [sym_template] = ACTIONS(4554),
    [sym_typeof] = ACTIONS(4554),
    [sym_union] = ACTIONS(4554),
    [sym_unittest] = ACTIONS(4554),
    [sym_version] = ACTIONS(4554),
    [sym_while] = ACTIONS(4554),
    [sym_gshared] = ACTIONS(4554),
    [sym_traits] = ACTIONS(4554),
    [sym_vector] = ACTIONS(4554),
    [sym_void] = ACTIONS(4554),
    [sym_directive] = ACTIONS(3),
  },
  [2657] = {
    [sym_identifier] = ACTIONS(4896),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4898),
    [anon_sym_SEMI] = ACTIONS(4898),
    [anon_sym_TILDE] = ACTIONS(4898),
    [anon_sym_AT] = ACTIONS(4898),
    [sym_bool] = ACTIONS(4896),
    [sym_byte] = ACTIONS(4896),
    [sym_ubyte] = ACTIONS(4896),
    [sym_char] = ACTIONS(4896),
    [sym_short] = ACTIONS(4896),
    [sym_ushort] = ACTIONS(4896),
    [sym_int] = ACTIONS(4896),
    [sym_uint] = ACTIONS(4896),
    [sym_long] = ACTIONS(4896),
    [sym_ulong] = ACTIONS(4896),
    [sym_cent] = ACTIONS(4896),
    [sym_ucent] = ACTIONS(4896),
    [sym_wchar] = ACTIONS(4896),
    [sym_dchar] = ACTIONS(4896),
    [sym_float] = ACTIONS(4896),
    [sym_double] = ACTIONS(4896),
    [sym_real] = ACTIONS(4896),
    [sym_ifloat] = ACTIONS(4896),
    [sym_idouble] = ACTIONS(4896),
    [sym_ireal] = ACTIONS(4896),
    [sym_cfloat] = ACTIONS(4896),
    [sym_cdouble] = ACTIONS(4896),
    [sym_creal] = ACTIONS(4896),
    [sym_size_t] = ACTIONS(4896),
    [sym_ptrdiff_t] = ACTIONS(4896),
    [sym_string] = ACTIONS(4896),
    [sym_cstring] = ACTIONS(4896),
    [sym_dstring] = ACTIONS(4896),
    [sym_wstring] = ACTIONS(4896),
    [sym_noreturn] = ACTIONS(4896),
    [sym_this] = ACTIONS(4896),
    [sym_abstract] = ACTIONS(4896),
    [sym_alias] = ACTIONS(4896),
    [sym_align] = ACTIONS(4896),
    [sym_auto] = ACTIONS(4896),
    [sym_catch] = ACTIONS(4896),
    [sym_class] = ACTIONS(4896),
    [sym_const] = ACTIONS(4896),
    [sym_debug] = ACTIONS(4896),
    [sym_deprecated] = ACTIONS(4896),
    [sym_else] = ACTIONS(4896),
    [sym_enum] = ACTIONS(4896),
    [sym_export] = ACTIONS(4896),
    [sym_extern] = ACTIONS(4896),
    [sym_final] = ACTIONS(4896),
    [sym_finally] = ACTIONS(4896),
    [sym_immutable] = ACTIONS(4896),
    [sym_import] = ACTIONS(4896),
    [sym_inout] = ACTIONS(4896),
    [sym_interface] = ACTIONS(4896),
    [sym_invariant] = ACTIONS(4896),
    [sym_mixin] = ACTIONS(4896),
    [sym_nothrow] = ACTIONS(4896),
    [sym_override] = ACTIONS(4896),
    [sym_package] = ACTIONS(4896),
    [sym_pragma] = ACTIONS(4896),
    [sym_private] = ACTIONS(4896),
    [sym_protected] = ACTIONS(4896),
    [sym_public] = ACTIONS(4896),
    [sym_pure] = ACTIONS(4896),
    [sym_ref] = ACTIONS(4896),
    [sym_return] = ACTIONS(4896),
    [sym_scope] = ACTIONS(4896),
    [sym_shared] = ACTIONS(4896),
    [sym_static] = ACTIONS(4896),
    [sym_struct] = ACTIONS(4896),
    [sym_synchronized] = ACTIONS(4896),
    [sym_template] = ACTIONS(4896),
    [sym_typeof] = ACTIONS(4896),
    [sym_union] = ACTIONS(4896),
    [sym_unittest] = ACTIONS(4896),
    [sym_version] = ACTIONS(4896),
    [sym_while] = ACTIONS(4896),
    [sym_gshared] = ACTIONS(4896),
    [sym_traits] = ACTIONS(4896),
    [sym_vector] = ACTIONS(4896),
    [sym_void] = ACTIONS(4896),
    [sym_directive] = ACTIONS(3),
  },
  [2658] = {
    [sym_identifier] = ACTIONS(4900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4902),
    [anon_sym_SEMI] = ACTIONS(4902),
    [anon_sym_TILDE] = ACTIONS(4902),
    [anon_sym_AT] = ACTIONS(4902),
    [sym_bool] = ACTIONS(4900),
    [sym_byte] = ACTIONS(4900),
    [sym_ubyte] = ACTIONS(4900),
    [sym_char] = ACTIONS(4900),
    [sym_short] = ACTIONS(4900),
    [sym_ushort] = ACTIONS(4900),
    [sym_int] = ACTIONS(4900),
    [sym_uint] = ACTIONS(4900),
    [sym_long] = ACTIONS(4900),
    [sym_ulong] = ACTIONS(4900),
    [sym_cent] = ACTIONS(4900),
    [sym_ucent] = ACTIONS(4900),
    [sym_wchar] = ACTIONS(4900),
    [sym_dchar] = ACTIONS(4900),
    [sym_float] = ACTIONS(4900),
    [sym_double] = ACTIONS(4900),
    [sym_real] = ACTIONS(4900),
    [sym_ifloat] = ACTIONS(4900),
    [sym_idouble] = ACTIONS(4900),
    [sym_ireal] = ACTIONS(4900),
    [sym_cfloat] = ACTIONS(4900),
    [sym_cdouble] = ACTIONS(4900),
    [sym_creal] = ACTIONS(4900),
    [sym_size_t] = ACTIONS(4900),
    [sym_ptrdiff_t] = ACTIONS(4900),
    [sym_string] = ACTIONS(4900),
    [sym_cstring] = ACTIONS(4900),
    [sym_dstring] = ACTIONS(4900),
    [sym_wstring] = ACTIONS(4900),
    [sym_noreturn] = ACTIONS(4900),
    [sym_this] = ACTIONS(4900),
    [sym_abstract] = ACTIONS(4900),
    [sym_alias] = ACTIONS(4900),
    [sym_align] = ACTIONS(4900),
    [sym_auto] = ACTIONS(4900),
    [sym_catch] = ACTIONS(4900),
    [sym_class] = ACTIONS(4900),
    [sym_const] = ACTIONS(4900),
    [sym_debug] = ACTIONS(4900),
    [sym_deprecated] = ACTIONS(4900),
    [sym_else] = ACTIONS(4900),
    [sym_enum] = ACTIONS(4900),
    [sym_export] = ACTIONS(4900),
    [sym_extern] = ACTIONS(4900),
    [sym_final] = ACTIONS(4900),
    [sym_finally] = ACTIONS(4900),
    [sym_immutable] = ACTIONS(4900),
    [sym_import] = ACTIONS(4900),
    [sym_inout] = ACTIONS(4900),
    [sym_interface] = ACTIONS(4900),
    [sym_invariant] = ACTIONS(4900),
    [sym_mixin] = ACTIONS(4900),
    [sym_nothrow] = ACTIONS(4900),
    [sym_override] = ACTIONS(4900),
    [sym_package] = ACTIONS(4900),
    [sym_pragma] = ACTIONS(4900),
    [sym_private] = ACTIONS(4900),
    [sym_protected] = ACTIONS(4900),
    [sym_public] = ACTIONS(4900),
    [sym_pure] = ACTIONS(4900),
    [sym_ref] = ACTIONS(4900),
    [sym_return] = ACTIONS(4900),
    [sym_scope] = ACTIONS(4900),
    [sym_shared] = ACTIONS(4900),
    [sym_static] = ACTIONS(4900),
    [sym_struct] = ACTIONS(4900),
    [sym_synchronized] = ACTIONS(4900),
    [sym_template] = ACTIONS(4900),
    [sym_typeof] = ACTIONS(4900),
    [sym_union] = ACTIONS(4900),
    [sym_unittest] = ACTIONS(4900),
    [sym_version] = ACTIONS(4900),
    [sym_while] = ACTIONS(4900),
    [sym_gshared] = ACTIONS(4900),
    [sym_traits] = ACTIONS(4900),
    [sym_vector] = ACTIONS(4900),
    [sym_void] = ACTIONS(4900),
    [sym_directive] = ACTIONS(3),
  },
  [2659] = {
    [sym_identifier] = ACTIONS(4904),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4906),
    [anon_sym_SEMI] = ACTIONS(4906),
    [anon_sym_TILDE] = ACTIONS(4906),
    [anon_sym_AT] = ACTIONS(4906),
    [sym_bool] = ACTIONS(4904),
    [sym_byte] = ACTIONS(4904),
    [sym_ubyte] = ACTIONS(4904),
    [sym_char] = ACTIONS(4904),
    [sym_short] = ACTIONS(4904),
    [sym_ushort] = ACTIONS(4904),
    [sym_int] = ACTIONS(4904),
    [sym_uint] = ACTIONS(4904),
    [sym_long] = ACTIONS(4904),
    [sym_ulong] = ACTIONS(4904),
    [sym_cent] = ACTIONS(4904),
    [sym_ucent] = ACTIONS(4904),
    [sym_wchar] = ACTIONS(4904),
    [sym_dchar] = ACTIONS(4904),
    [sym_float] = ACTIONS(4904),
    [sym_double] = ACTIONS(4904),
    [sym_real] = ACTIONS(4904),
    [sym_ifloat] = ACTIONS(4904),
    [sym_idouble] = ACTIONS(4904),
    [sym_ireal] = ACTIONS(4904),
    [sym_cfloat] = ACTIONS(4904),
    [sym_cdouble] = ACTIONS(4904),
    [sym_creal] = ACTIONS(4904),
    [sym_size_t] = ACTIONS(4904),
    [sym_ptrdiff_t] = ACTIONS(4904),
    [sym_string] = ACTIONS(4904),
    [sym_cstring] = ACTIONS(4904),
    [sym_dstring] = ACTIONS(4904),
    [sym_wstring] = ACTIONS(4904),
    [sym_noreturn] = ACTIONS(4904),
    [sym_this] = ACTIONS(4904),
    [sym_abstract] = ACTIONS(4904),
    [sym_alias] = ACTIONS(4904),
    [sym_align] = ACTIONS(4904),
    [sym_auto] = ACTIONS(4904),
    [sym_catch] = ACTIONS(4904),
    [sym_class] = ACTIONS(4904),
    [sym_const] = ACTIONS(4904),
    [sym_debug] = ACTIONS(4904),
    [sym_deprecated] = ACTIONS(4904),
    [sym_else] = ACTIONS(4904),
    [sym_enum] = ACTIONS(4904),
    [sym_export] = ACTIONS(4904),
    [sym_extern] = ACTIONS(4904),
    [sym_final] = ACTIONS(4904),
    [sym_finally] = ACTIONS(4904),
    [sym_immutable] = ACTIONS(4904),
    [sym_import] = ACTIONS(4904),
    [sym_inout] = ACTIONS(4904),
    [sym_interface] = ACTIONS(4904),
    [sym_invariant] = ACTIONS(4904),
    [sym_mixin] = ACTIONS(4904),
    [sym_nothrow] = ACTIONS(4904),
    [sym_override] = ACTIONS(4904),
    [sym_package] = ACTIONS(4904),
    [sym_pragma] = ACTIONS(4904),
    [sym_private] = ACTIONS(4904),
    [sym_protected] = ACTIONS(4904),
    [sym_public] = ACTIONS(4904),
    [sym_pure] = ACTIONS(4904),
    [sym_ref] = ACTIONS(4904),
    [sym_return] = ACTIONS(4904),
    [sym_scope] = ACTIONS(4904),
    [sym_shared] = ACTIONS(4904),
    [sym_static] = ACTIONS(4904),
    [sym_struct] = ACTIONS(4904),
    [sym_synchronized] = ACTIONS(4904),
    [sym_template] = ACTIONS(4904),
    [sym_typeof] = ACTIONS(4904),
    [sym_union] = ACTIONS(4904),
    [sym_unittest] = ACTIONS(4904),
    [sym_version] = ACTIONS(4904),
    [sym_while] = ACTIONS(4904),
    [sym_gshared] = ACTIONS(4904),
    [sym_traits] = ACTIONS(4904),
    [sym_vector] = ACTIONS(4904),
    [sym_void] = ACTIONS(4904),
    [sym_directive] = ACTIONS(3),
  },
  [2660] = {
    [sym_identifier] = ACTIONS(4912),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4914),
    [anon_sym_SEMI] = ACTIONS(4914),
    [anon_sym_TILDE] = ACTIONS(4914),
    [anon_sym_AT] = ACTIONS(4914),
    [sym_bool] = ACTIONS(4912),
    [sym_byte] = ACTIONS(4912),
    [sym_ubyte] = ACTIONS(4912),
    [sym_char] = ACTIONS(4912),
    [sym_short] = ACTIONS(4912),
    [sym_ushort] = ACTIONS(4912),
    [sym_int] = ACTIONS(4912),
    [sym_uint] = ACTIONS(4912),
    [sym_long] = ACTIONS(4912),
    [sym_ulong] = ACTIONS(4912),
    [sym_cent] = ACTIONS(4912),
    [sym_ucent] = ACTIONS(4912),
    [sym_wchar] = ACTIONS(4912),
    [sym_dchar] = ACTIONS(4912),
    [sym_float] = ACTIONS(4912),
    [sym_double] = ACTIONS(4912),
    [sym_real] = ACTIONS(4912),
    [sym_ifloat] = ACTIONS(4912),
    [sym_idouble] = ACTIONS(4912),
    [sym_ireal] = ACTIONS(4912),
    [sym_cfloat] = ACTIONS(4912),
    [sym_cdouble] = ACTIONS(4912),
    [sym_creal] = ACTIONS(4912),
    [sym_size_t] = ACTIONS(4912),
    [sym_ptrdiff_t] = ACTIONS(4912),
    [sym_string] = ACTIONS(4912),
    [sym_cstring] = ACTIONS(4912),
    [sym_dstring] = ACTIONS(4912),
    [sym_wstring] = ACTIONS(4912),
    [sym_noreturn] = ACTIONS(4912),
    [sym_this] = ACTIONS(4912),
    [sym_abstract] = ACTIONS(4912),
    [sym_alias] = ACTIONS(4912),
    [sym_align] = ACTIONS(4912),
    [sym_auto] = ACTIONS(4912),
    [sym_catch] = ACTIONS(4912),
    [sym_class] = ACTIONS(4912),
    [sym_const] = ACTIONS(4912),
    [sym_debug] = ACTIONS(4912),
    [sym_deprecated] = ACTIONS(4912),
    [sym_else] = ACTIONS(4912),
    [sym_enum] = ACTIONS(4912),
    [sym_export] = ACTIONS(4912),
    [sym_extern] = ACTIONS(4912),
    [sym_final] = ACTIONS(4912),
    [sym_finally] = ACTIONS(4912),
    [sym_immutable] = ACTIONS(4912),
    [sym_import] = ACTIONS(4912),
    [sym_inout] = ACTIONS(4912),
    [sym_interface] = ACTIONS(4912),
    [sym_invariant] = ACTIONS(4912),
    [sym_mixin] = ACTIONS(4912),
    [sym_nothrow] = ACTIONS(4912),
    [sym_override] = ACTIONS(4912),
    [sym_package] = ACTIONS(4912),
    [sym_pragma] = ACTIONS(4912),
    [sym_private] = ACTIONS(4912),
    [sym_protected] = ACTIONS(4912),
    [sym_public] = ACTIONS(4912),
    [sym_pure] = ACTIONS(4912),
    [sym_ref] = ACTIONS(4912),
    [sym_return] = ACTIONS(4912),
    [sym_scope] = ACTIONS(4912),
    [sym_shared] = ACTIONS(4912),
    [sym_static] = ACTIONS(4912),
    [sym_struct] = ACTIONS(4912),
    [sym_synchronized] = ACTIONS(4912),
    [sym_template] = ACTIONS(4912),
    [sym_typeof] = ACTIONS(4912),
    [sym_union] = ACTIONS(4912),
    [sym_unittest] = ACTIONS(4912),
    [sym_version] = ACTIONS(4912),
    [sym_while] = ACTIONS(4912),
    [sym_gshared] = ACTIONS(4912),
    [sym_traits] = ACTIONS(4912),
    [sym_vector] = ACTIONS(4912),
    [sym_void] = ACTIONS(4912),
    [sym_directive] = ACTIONS(3),
  },
  [2661] = {
    [sym_identifier] = ACTIONS(4918),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4920),
    [anon_sym_SEMI] = ACTIONS(4920),
    [anon_sym_TILDE] = ACTIONS(4920),
    [anon_sym_AT] = ACTIONS(4920),
    [sym_bool] = ACTIONS(4918),
    [sym_byte] = ACTIONS(4918),
    [sym_ubyte] = ACTIONS(4918),
    [sym_char] = ACTIONS(4918),
    [sym_short] = ACTIONS(4918),
    [sym_ushort] = ACTIONS(4918),
    [sym_int] = ACTIONS(4918),
    [sym_uint] = ACTIONS(4918),
    [sym_long] = ACTIONS(4918),
    [sym_ulong] = ACTIONS(4918),
    [sym_cent] = ACTIONS(4918),
    [sym_ucent] = ACTIONS(4918),
    [sym_wchar] = ACTIONS(4918),
    [sym_dchar] = ACTIONS(4918),
    [sym_float] = ACTIONS(4918),
    [sym_double] = ACTIONS(4918),
    [sym_real] = ACTIONS(4918),
    [sym_ifloat] = ACTIONS(4918),
    [sym_idouble] = ACTIONS(4918),
    [sym_ireal] = ACTIONS(4918),
    [sym_cfloat] = ACTIONS(4918),
    [sym_cdouble] = ACTIONS(4918),
    [sym_creal] = ACTIONS(4918),
    [sym_size_t] = ACTIONS(4918),
    [sym_ptrdiff_t] = ACTIONS(4918),
    [sym_string] = ACTIONS(4918),
    [sym_cstring] = ACTIONS(4918),
    [sym_dstring] = ACTIONS(4918),
    [sym_wstring] = ACTIONS(4918),
    [sym_noreturn] = ACTIONS(4918),
    [sym_this] = ACTIONS(4918),
    [sym_abstract] = ACTIONS(4918),
    [sym_alias] = ACTIONS(4918),
    [sym_align] = ACTIONS(4918),
    [sym_auto] = ACTIONS(4918),
    [sym_catch] = ACTIONS(4918),
    [sym_class] = ACTIONS(4918),
    [sym_const] = ACTIONS(4918),
    [sym_debug] = ACTIONS(4918),
    [sym_deprecated] = ACTIONS(4918),
    [sym_else] = ACTIONS(4918),
    [sym_enum] = ACTIONS(4918),
    [sym_export] = ACTIONS(4918),
    [sym_extern] = ACTIONS(4918),
    [sym_final] = ACTIONS(4918),
    [sym_finally] = ACTIONS(4918),
    [sym_immutable] = ACTIONS(4918),
    [sym_import] = ACTIONS(4918),
    [sym_inout] = ACTIONS(4918),
    [sym_interface] = ACTIONS(4918),
    [sym_invariant] = ACTIONS(4918),
    [sym_mixin] = ACTIONS(4918),
    [sym_nothrow] = ACTIONS(4918),
    [sym_override] = ACTIONS(4918),
    [sym_package] = ACTIONS(4918),
    [sym_pragma] = ACTIONS(4918),
    [sym_private] = ACTIONS(4918),
    [sym_protected] = ACTIONS(4918),
    [sym_public] = ACTIONS(4918),
    [sym_pure] = ACTIONS(4918),
    [sym_ref] = ACTIONS(4918),
    [sym_return] = ACTIONS(4918),
    [sym_scope] = ACTIONS(4918),
    [sym_shared] = ACTIONS(4918),
    [sym_static] = ACTIONS(4918),
    [sym_struct] = ACTIONS(4918),
    [sym_synchronized] = ACTIONS(4918),
    [sym_template] = ACTIONS(4918),
    [sym_typeof] = ACTIONS(4918),
    [sym_union] = ACTIONS(4918),
    [sym_unittest] = ACTIONS(4918),
    [sym_version] = ACTIONS(4918),
    [sym_while] = ACTIONS(4918),
    [sym_gshared] = ACTIONS(4918),
    [sym_traits] = ACTIONS(4918),
    [sym_vector] = ACTIONS(4918),
    [sym_void] = ACTIONS(4918),
    [sym_directive] = ACTIONS(3),
  },
  [2662] = {
    [ts_builtin_sym_end] = ACTIONS(4560),
    [sym_identifier] = ACTIONS(4558),
    [sym_end_file] = ACTIONS(4558),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4560),
    [anon_sym_SEMI] = ACTIONS(4560),
    [anon_sym_TILDE] = ACTIONS(4560),
    [anon_sym_AT] = ACTIONS(4560),
    [sym_bool] = ACTIONS(4558),
    [sym_byte] = ACTIONS(4558),
    [sym_ubyte] = ACTIONS(4558),
    [sym_char] = ACTIONS(4558),
    [sym_short] = ACTIONS(4558),
    [sym_ushort] = ACTIONS(4558),
    [sym_int] = ACTIONS(4558),
    [sym_uint] = ACTIONS(4558),
    [sym_long] = ACTIONS(4558),
    [sym_ulong] = ACTIONS(4558),
    [sym_cent] = ACTIONS(4558),
    [sym_ucent] = ACTIONS(4558),
    [sym_wchar] = ACTIONS(4558),
    [sym_dchar] = ACTIONS(4558),
    [sym_float] = ACTIONS(4558),
    [sym_double] = ACTIONS(4558),
    [sym_real] = ACTIONS(4558),
    [sym_ifloat] = ACTIONS(4558),
    [sym_idouble] = ACTIONS(4558),
    [sym_ireal] = ACTIONS(4558),
    [sym_cfloat] = ACTIONS(4558),
    [sym_cdouble] = ACTIONS(4558),
    [sym_creal] = ACTIONS(4558),
    [sym_size_t] = ACTIONS(4558),
    [sym_ptrdiff_t] = ACTIONS(4558),
    [sym_string] = ACTIONS(4558),
    [sym_cstring] = ACTIONS(4558),
    [sym_dstring] = ACTIONS(4558),
    [sym_wstring] = ACTIONS(4558),
    [sym_noreturn] = ACTIONS(4558),
    [sym_this] = ACTIONS(4558),
    [sym_abstract] = ACTIONS(4558),
    [sym_alias] = ACTIONS(4558),
    [sym_align] = ACTIONS(4558),
    [sym_auto] = ACTIONS(4558),
    [sym_class] = ACTIONS(4558),
    [sym_const] = ACTIONS(4558),
    [sym_debug] = ACTIONS(4558),
    [sym_deprecated] = ACTIONS(4558),
    [sym_else] = ACTIONS(4558),
    [sym_enum] = ACTIONS(4558),
    [sym_export] = ACTIONS(4558),
    [sym_extern] = ACTIONS(4558),
    [sym_final] = ACTIONS(4558),
    [sym_immutable] = ACTIONS(4558),
    [sym_import] = ACTIONS(4558),
    [sym_inout] = ACTIONS(4558),
    [sym_interface] = ACTIONS(4558),
    [sym_invariant] = ACTIONS(4558),
    [sym_mixin] = ACTIONS(4558),
    [sym_nothrow] = ACTIONS(4558),
    [sym_override] = ACTIONS(4558),
    [sym_package] = ACTIONS(4558),
    [sym_pragma] = ACTIONS(4558),
    [sym_private] = ACTIONS(4558),
    [sym_protected] = ACTIONS(4558),
    [sym_public] = ACTIONS(4558),
    [sym_pure] = ACTIONS(4558),
    [sym_ref] = ACTIONS(4558),
    [sym_return] = ACTIONS(4558),
    [sym_scope] = ACTIONS(4558),
    [sym_shared] = ACTIONS(4558),
    [sym_static] = ACTIONS(4558),
    [sym_struct] = ACTIONS(4558),
    [sym_synchronized] = ACTIONS(4558),
    [sym_template] = ACTIONS(4558),
    [sym_typeof] = ACTIONS(4558),
    [sym_union] = ACTIONS(4558),
    [sym_unittest] = ACTIONS(4558),
    [sym_version] = ACTIONS(4558),
    [sym_while] = ACTIONS(4558),
    [sym_gshared] = ACTIONS(4558),
    [sym_traits] = ACTIONS(4558),
    [sym_vector] = ACTIONS(4558),
    [sym_void] = ACTIONS(4558),
    [sym_directive] = ACTIONS(3),
  },
  [2663] = {
    [sym_identifier] = ACTIONS(4970),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4972),
    [anon_sym_SEMI] = ACTIONS(4972),
    [anon_sym_TILDE] = ACTIONS(4972),
    [anon_sym_AT] = ACTIONS(4972),
    [sym_bool] = ACTIONS(4970),
    [sym_byte] = ACTIONS(4970),
    [sym_ubyte] = ACTIONS(4970),
    [sym_char] = ACTIONS(4970),
    [sym_short] = ACTIONS(4970),
    [sym_ushort] = ACTIONS(4970),
    [sym_int] = ACTIONS(4970),
    [sym_uint] = ACTIONS(4970),
    [sym_long] = ACTIONS(4970),
    [sym_ulong] = ACTIONS(4970),
    [sym_cent] = ACTIONS(4970),
    [sym_ucent] = ACTIONS(4970),
    [sym_wchar] = ACTIONS(4970),
    [sym_dchar] = ACTIONS(4970),
    [sym_float] = ACTIONS(4970),
    [sym_double] = ACTIONS(4970),
    [sym_real] = ACTIONS(4970),
    [sym_ifloat] = ACTIONS(4970),
    [sym_idouble] = ACTIONS(4970),
    [sym_ireal] = ACTIONS(4970),
    [sym_cfloat] = ACTIONS(4970),
    [sym_cdouble] = ACTIONS(4970),
    [sym_creal] = ACTIONS(4970),
    [sym_size_t] = ACTIONS(4970),
    [sym_ptrdiff_t] = ACTIONS(4970),
    [sym_string] = ACTIONS(4970),
    [sym_cstring] = ACTIONS(4970),
    [sym_dstring] = ACTIONS(4970),
    [sym_wstring] = ACTIONS(4970),
    [sym_noreturn] = ACTIONS(4970),
    [sym_this] = ACTIONS(4970),
    [sym_abstract] = ACTIONS(4970),
    [sym_alias] = ACTIONS(4970),
    [sym_align] = ACTIONS(4970),
    [sym_auto] = ACTIONS(4970),
    [sym_catch] = ACTIONS(4970),
    [sym_class] = ACTIONS(4970),
    [sym_const] = ACTIONS(4970),
    [sym_debug] = ACTIONS(4970),
    [sym_deprecated] = ACTIONS(4970),
    [sym_else] = ACTIONS(4970),
    [sym_enum] = ACTIONS(4970),
    [sym_export] = ACTIONS(4970),
    [sym_extern] = ACTIONS(4970),
    [sym_final] = ACTIONS(4970),
    [sym_finally] = ACTIONS(4970),
    [sym_immutable] = ACTIONS(4970),
    [sym_import] = ACTIONS(4970),
    [sym_inout] = ACTIONS(4970),
    [sym_interface] = ACTIONS(4970),
    [sym_invariant] = ACTIONS(4970),
    [sym_mixin] = ACTIONS(4970),
    [sym_nothrow] = ACTIONS(4970),
    [sym_override] = ACTIONS(4970),
    [sym_package] = ACTIONS(4970),
    [sym_pragma] = ACTIONS(4970),
    [sym_private] = ACTIONS(4970),
    [sym_protected] = ACTIONS(4970),
    [sym_public] = ACTIONS(4970),
    [sym_pure] = ACTIONS(4970),
    [sym_ref] = ACTIONS(4970),
    [sym_return] = ACTIONS(4970),
    [sym_scope] = ACTIONS(4970),
    [sym_shared] = ACTIONS(4970),
    [sym_static] = ACTIONS(4970),
    [sym_struct] = ACTIONS(4970),
    [sym_synchronized] = ACTIONS(4970),
    [sym_template] = ACTIONS(4970),
    [sym_typeof] = ACTIONS(4970),
    [sym_union] = ACTIONS(4970),
    [sym_unittest] = ACTIONS(4970),
    [sym_version] = ACTIONS(4970),
    [sym_while] = ACTIONS(4970),
    [sym_gshared] = ACTIONS(4970),
    [sym_traits] = ACTIONS(4970),
    [sym_vector] = ACTIONS(4970),
    [sym_void] = ACTIONS(4970),
    [sym_directive] = ACTIONS(3),
  },
  [2664] = {
    [ts_builtin_sym_end] = ACTIONS(4568),
    [sym_identifier] = ACTIONS(4566),
    [sym_end_file] = ACTIONS(4566),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4568),
    [anon_sym_SEMI] = ACTIONS(4568),
    [anon_sym_TILDE] = ACTIONS(4568),
    [anon_sym_AT] = ACTIONS(4568),
    [sym_bool] = ACTIONS(4566),
    [sym_byte] = ACTIONS(4566),
    [sym_ubyte] = ACTIONS(4566),
    [sym_char] = ACTIONS(4566),
    [sym_short] = ACTIONS(4566),
    [sym_ushort] = ACTIONS(4566),
    [sym_int] = ACTIONS(4566),
    [sym_uint] = ACTIONS(4566),
    [sym_long] = ACTIONS(4566),
    [sym_ulong] = ACTIONS(4566),
    [sym_cent] = ACTIONS(4566),
    [sym_ucent] = ACTIONS(4566),
    [sym_wchar] = ACTIONS(4566),
    [sym_dchar] = ACTIONS(4566),
    [sym_float] = ACTIONS(4566),
    [sym_double] = ACTIONS(4566),
    [sym_real] = ACTIONS(4566),
    [sym_ifloat] = ACTIONS(4566),
    [sym_idouble] = ACTIONS(4566),
    [sym_ireal] = ACTIONS(4566),
    [sym_cfloat] = ACTIONS(4566),
    [sym_cdouble] = ACTIONS(4566),
    [sym_creal] = ACTIONS(4566),
    [sym_size_t] = ACTIONS(4566),
    [sym_ptrdiff_t] = ACTIONS(4566),
    [sym_string] = ACTIONS(4566),
    [sym_cstring] = ACTIONS(4566),
    [sym_dstring] = ACTIONS(4566),
    [sym_wstring] = ACTIONS(4566),
    [sym_noreturn] = ACTIONS(4566),
    [sym_this] = ACTIONS(4566),
    [sym_abstract] = ACTIONS(4566),
    [sym_alias] = ACTIONS(4566),
    [sym_align] = ACTIONS(4566),
    [sym_auto] = ACTIONS(4566),
    [sym_class] = ACTIONS(4566),
    [sym_const] = ACTIONS(4566),
    [sym_debug] = ACTIONS(4566),
    [sym_deprecated] = ACTIONS(4566),
    [sym_else] = ACTIONS(4566),
    [sym_enum] = ACTIONS(4566),
    [sym_export] = ACTIONS(4566),
    [sym_extern] = ACTIONS(4566),
    [sym_final] = ACTIONS(4566),
    [sym_immutable] = ACTIONS(4566),
    [sym_import] = ACTIONS(4566),
    [sym_inout] = ACTIONS(4566),
    [sym_interface] = ACTIONS(4566),
    [sym_invariant] = ACTIONS(4566),
    [sym_mixin] = ACTIONS(4566),
    [sym_nothrow] = ACTIONS(4566),
    [sym_override] = ACTIONS(4566),
    [sym_package] = ACTIONS(4566),
    [sym_pragma] = ACTIONS(4566),
    [sym_private] = ACTIONS(4566),
    [sym_protected] = ACTIONS(4566),
    [sym_public] = ACTIONS(4566),
    [sym_pure] = ACTIONS(4566),
    [sym_ref] = ACTIONS(4566),
    [sym_return] = ACTIONS(4566),
    [sym_scope] = ACTIONS(4566),
    [sym_shared] = ACTIONS(4566),
    [sym_static] = ACTIONS(4566),
    [sym_struct] = ACTIONS(4566),
    [sym_synchronized] = ACTIONS(4566),
    [sym_template] = ACTIONS(4566),
    [sym_typeof] = ACTIONS(4566),
    [sym_union] = ACTIONS(4566),
    [sym_unittest] = ACTIONS(4566),
    [sym_version] = ACTIONS(4566),
    [sym_while] = ACTIONS(4566),
    [sym_gshared] = ACTIONS(4566),
    [sym_traits] = ACTIONS(4566),
    [sym_vector] = ACTIONS(4566),
    [sym_void] = ACTIONS(4566),
    [sym_directive] = ACTIONS(3),
  },
  [2665] = {
    [sym_identifier] = ACTIONS(4598),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4600),
    [anon_sym_SEMI] = ACTIONS(4600),
    [anon_sym_TILDE] = ACTIONS(4600),
    [anon_sym_AT] = ACTIONS(4600),
    [sym_bool] = ACTIONS(4598),
    [sym_byte] = ACTIONS(4598),
    [sym_ubyte] = ACTIONS(4598),
    [sym_char] = ACTIONS(4598),
    [sym_short] = ACTIONS(4598),
    [sym_ushort] = ACTIONS(4598),
    [sym_int] = ACTIONS(4598),
    [sym_uint] = ACTIONS(4598),
    [sym_long] = ACTIONS(4598),
    [sym_ulong] = ACTIONS(4598),
    [sym_cent] = ACTIONS(4598),
    [sym_ucent] = ACTIONS(4598),
    [sym_wchar] = ACTIONS(4598),
    [sym_dchar] = ACTIONS(4598),
    [sym_float] = ACTIONS(4598),
    [sym_double] = ACTIONS(4598),
    [sym_real] = ACTIONS(4598),
    [sym_ifloat] = ACTIONS(4598),
    [sym_idouble] = ACTIONS(4598),
    [sym_ireal] = ACTIONS(4598),
    [sym_cfloat] = ACTIONS(4598),
    [sym_cdouble] = ACTIONS(4598),
    [sym_creal] = ACTIONS(4598),
    [sym_size_t] = ACTIONS(4598),
    [sym_ptrdiff_t] = ACTIONS(4598),
    [sym_string] = ACTIONS(4598),
    [sym_cstring] = ACTIONS(4598),
    [sym_dstring] = ACTIONS(4598),
    [sym_wstring] = ACTIONS(4598),
    [sym_noreturn] = ACTIONS(4598),
    [sym_this] = ACTIONS(4598),
    [sym_abstract] = ACTIONS(4598),
    [sym_alias] = ACTIONS(4598),
    [sym_align] = ACTIONS(4598),
    [sym_auto] = ACTIONS(4598),
    [sym_catch] = ACTIONS(4598),
    [sym_class] = ACTIONS(4598),
    [sym_const] = ACTIONS(4598),
    [sym_debug] = ACTIONS(4598),
    [sym_deprecated] = ACTIONS(4598),
    [sym_else] = ACTIONS(4598),
    [sym_enum] = ACTIONS(4598),
    [sym_export] = ACTIONS(4598),
    [sym_extern] = ACTIONS(4598),
    [sym_final] = ACTIONS(4598),
    [sym_finally] = ACTIONS(4598),
    [sym_immutable] = ACTIONS(4598),
    [sym_import] = ACTIONS(4598),
    [sym_inout] = ACTIONS(4598),
    [sym_interface] = ACTIONS(4598),
    [sym_invariant] = ACTIONS(4598),
    [sym_mixin] = ACTIONS(4598),
    [sym_nothrow] = ACTIONS(4598),
    [sym_override] = ACTIONS(4598),
    [sym_package] = ACTIONS(4598),
    [sym_pragma] = ACTIONS(4598),
    [sym_private] = ACTIONS(4598),
    [sym_protected] = ACTIONS(4598),
    [sym_public] = ACTIONS(4598),
    [sym_pure] = ACTIONS(4598),
    [sym_ref] = ACTIONS(4598),
    [sym_return] = ACTIONS(4598),
    [sym_scope] = ACTIONS(4598),
    [sym_shared] = ACTIONS(4598),
    [sym_static] = ACTIONS(4598),
    [sym_struct] = ACTIONS(4598),
    [sym_synchronized] = ACTIONS(4598),
    [sym_template] = ACTIONS(4598),
    [sym_typeof] = ACTIONS(4598),
    [sym_union] = ACTIONS(4598),
    [sym_unittest] = ACTIONS(4598),
    [sym_version] = ACTIONS(4598),
    [sym_while] = ACTIONS(4598),
    [sym_gshared] = ACTIONS(4598),
    [sym_traits] = ACTIONS(4598),
    [sym_vector] = ACTIONS(4598),
    [sym_void] = ACTIONS(4598),
    [sym_directive] = ACTIONS(3),
  },
  [2666] = {
    [sym_identifier] = ACTIONS(4978),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4980),
    [anon_sym_SEMI] = ACTIONS(4980),
    [anon_sym_TILDE] = ACTIONS(4980),
    [anon_sym_AT] = ACTIONS(4980),
    [sym_bool] = ACTIONS(4978),
    [sym_byte] = ACTIONS(4978),
    [sym_ubyte] = ACTIONS(4978),
    [sym_char] = ACTIONS(4978),
    [sym_short] = ACTIONS(4978),
    [sym_ushort] = ACTIONS(4978),
    [sym_int] = ACTIONS(4978),
    [sym_uint] = ACTIONS(4978),
    [sym_long] = ACTIONS(4978),
    [sym_ulong] = ACTIONS(4978),
    [sym_cent] = ACTIONS(4978),
    [sym_ucent] = ACTIONS(4978),
    [sym_wchar] = ACTIONS(4978),
    [sym_dchar] = ACTIONS(4978),
    [sym_float] = ACTIONS(4978),
    [sym_double] = ACTIONS(4978),
    [sym_real] = ACTIONS(4978),
    [sym_ifloat] = ACTIONS(4978),
    [sym_idouble] = ACTIONS(4978),
    [sym_ireal] = ACTIONS(4978),
    [sym_cfloat] = ACTIONS(4978),
    [sym_cdouble] = ACTIONS(4978),
    [sym_creal] = ACTIONS(4978),
    [sym_size_t] = ACTIONS(4978),
    [sym_ptrdiff_t] = ACTIONS(4978),
    [sym_string] = ACTIONS(4978),
    [sym_cstring] = ACTIONS(4978),
    [sym_dstring] = ACTIONS(4978),
    [sym_wstring] = ACTIONS(4978),
    [sym_noreturn] = ACTIONS(4978),
    [sym_this] = ACTIONS(4978),
    [sym_abstract] = ACTIONS(4978),
    [sym_alias] = ACTIONS(4978),
    [sym_align] = ACTIONS(4978),
    [sym_auto] = ACTIONS(4978),
    [sym_catch] = ACTIONS(4978),
    [sym_class] = ACTIONS(4978),
    [sym_const] = ACTIONS(4978),
    [sym_debug] = ACTIONS(4978),
    [sym_deprecated] = ACTIONS(4978),
    [sym_else] = ACTIONS(4978),
    [sym_enum] = ACTIONS(4978),
    [sym_export] = ACTIONS(4978),
    [sym_extern] = ACTIONS(4978),
    [sym_final] = ACTIONS(4978),
    [sym_finally] = ACTIONS(4978),
    [sym_immutable] = ACTIONS(4978),
    [sym_import] = ACTIONS(4978),
    [sym_inout] = ACTIONS(4978),
    [sym_interface] = ACTIONS(4978),
    [sym_invariant] = ACTIONS(4978),
    [sym_mixin] = ACTIONS(4978),
    [sym_nothrow] = ACTIONS(4978),
    [sym_override] = ACTIONS(4978),
    [sym_package] = ACTIONS(4978),
    [sym_pragma] = ACTIONS(4978),
    [sym_private] = ACTIONS(4978),
    [sym_protected] = ACTIONS(4978),
    [sym_public] = ACTIONS(4978),
    [sym_pure] = ACTIONS(4978),
    [sym_ref] = ACTIONS(4978),
    [sym_return] = ACTIONS(4978),
    [sym_scope] = ACTIONS(4978),
    [sym_shared] = ACTIONS(4978),
    [sym_static] = ACTIONS(4978),
    [sym_struct] = ACTIONS(4978),
    [sym_synchronized] = ACTIONS(4978),
    [sym_template] = ACTIONS(4978),
    [sym_typeof] = ACTIONS(4978),
    [sym_union] = ACTIONS(4978),
    [sym_unittest] = ACTIONS(4978),
    [sym_version] = ACTIONS(4978),
    [sym_while] = ACTIONS(4978),
    [sym_gshared] = ACTIONS(4978),
    [sym_traits] = ACTIONS(4978),
    [sym_vector] = ACTIONS(4978),
    [sym_void] = ACTIONS(4978),
    [sym_directive] = ACTIONS(3),
  },
  [2667] = {
    [sym_identifier] = ACTIONS(4982),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4984),
    [anon_sym_SEMI] = ACTIONS(4984),
    [anon_sym_TILDE] = ACTIONS(4984),
    [anon_sym_AT] = ACTIONS(4984),
    [sym_bool] = ACTIONS(4982),
    [sym_byte] = ACTIONS(4982),
    [sym_ubyte] = ACTIONS(4982),
    [sym_char] = ACTIONS(4982),
    [sym_short] = ACTIONS(4982),
    [sym_ushort] = ACTIONS(4982),
    [sym_int] = ACTIONS(4982),
    [sym_uint] = ACTIONS(4982),
    [sym_long] = ACTIONS(4982),
    [sym_ulong] = ACTIONS(4982),
    [sym_cent] = ACTIONS(4982),
    [sym_ucent] = ACTIONS(4982),
    [sym_wchar] = ACTIONS(4982),
    [sym_dchar] = ACTIONS(4982),
    [sym_float] = ACTIONS(4982),
    [sym_double] = ACTIONS(4982),
    [sym_real] = ACTIONS(4982),
    [sym_ifloat] = ACTIONS(4982),
    [sym_idouble] = ACTIONS(4982),
    [sym_ireal] = ACTIONS(4982),
    [sym_cfloat] = ACTIONS(4982),
    [sym_cdouble] = ACTIONS(4982),
    [sym_creal] = ACTIONS(4982),
    [sym_size_t] = ACTIONS(4982),
    [sym_ptrdiff_t] = ACTIONS(4982),
    [sym_string] = ACTIONS(4982),
    [sym_cstring] = ACTIONS(4982),
    [sym_dstring] = ACTIONS(4982),
    [sym_wstring] = ACTIONS(4982),
    [sym_noreturn] = ACTIONS(4982),
    [sym_this] = ACTIONS(4982),
    [sym_abstract] = ACTIONS(4982),
    [sym_alias] = ACTIONS(4982),
    [sym_align] = ACTIONS(4982),
    [sym_auto] = ACTIONS(4982),
    [sym_catch] = ACTIONS(4982),
    [sym_class] = ACTIONS(4982),
    [sym_const] = ACTIONS(4982),
    [sym_debug] = ACTIONS(4982),
    [sym_deprecated] = ACTIONS(4982),
    [sym_else] = ACTIONS(4982),
    [sym_enum] = ACTIONS(4982),
    [sym_export] = ACTIONS(4982),
    [sym_extern] = ACTIONS(4982),
    [sym_final] = ACTIONS(4982),
    [sym_finally] = ACTIONS(4982),
    [sym_immutable] = ACTIONS(4982),
    [sym_import] = ACTIONS(4982),
    [sym_inout] = ACTIONS(4982),
    [sym_interface] = ACTIONS(4982),
    [sym_invariant] = ACTIONS(4982),
    [sym_mixin] = ACTIONS(4982),
    [sym_nothrow] = ACTIONS(4982),
    [sym_override] = ACTIONS(4982),
    [sym_package] = ACTIONS(4982),
    [sym_pragma] = ACTIONS(4982),
    [sym_private] = ACTIONS(4982),
    [sym_protected] = ACTIONS(4982),
    [sym_public] = ACTIONS(4982),
    [sym_pure] = ACTIONS(4982),
    [sym_ref] = ACTIONS(4982),
    [sym_return] = ACTIONS(4982),
    [sym_scope] = ACTIONS(4982),
    [sym_shared] = ACTIONS(4982),
    [sym_static] = ACTIONS(4982),
    [sym_struct] = ACTIONS(4982),
    [sym_synchronized] = ACTIONS(4982),
    [sym_template] = ACTIONS(4982),
    [sym_typeof] = ACTIONS(4982),
    [sym_union] = ACTIONS(4982),
    [sym_unittest] = ACTIONS(4982),
    [sym_version] = ACTIONS(4982),
    [sym_while] = ACTIONS(4982),
    [sym_gshared] = ACTIONS(4982),
    [sym_traits] = ACTIONS(4982),
    [sym_vector] = ACTIONS(4982),
    [sym_void] = ACTIONS(4982),
    [sym_directive] = ACTIONS(3),
  },
  [2668] = {
    [sym_identifier] = ACTIONS(4986),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4988),
    [anon_sym_SEMI] = ACTIONS(4988),
    [anon_sym_TILDE] = ACTIONS(4988),
    [anon_sym_AT] = ACTIONS(4988),
    [sym_bool] = ACTIONS(4986),
    [sym_byte] = ACTIONS(4986),
    [sym_ubyte] = ACTIONS(4986),
    [sym_char] = ACTIONS(4986),
    [sym_short] = ACTIONS(4986),
    [sym_ushort] = ACTIONS(4986),
    [sym_int] = ACTIONS(4986),
    [sym_uint] = ACTIONS(4986),
    [sym_long] = ACTIONS(4986),
    [sym_ulong] = ACTIONS(4986),
    [sym_cent] = ACTIONS(4986),
    [sym_ucent] = ACTIONS(4986),
    [sym_wchar] = ACTIONS(4986),
    [sym_dchar] = ACTIONS(4986),
    [sym_float] = ACTIONS(4986),
    [sym_double] = ACTIONS(4986),
    [sym_real] = ACTIONS(4986),
    [sym_ifloat] = ACTIONS(4986),
    [sym_idouble] = ACTIONS(4986),
    [sym_ireal] = ACTIONS(4986),
    [sym_cfloat] = ACTIONS(4986),
    [sym_cdouble] = ACTIONS(4986),
    [sym_creal] = ACTIONS(4986),
    [sym_size_t] = ACTIONS(4986),
    [sym_ptrdiff_t] = ACTIONS(4986),
    [sym_string] = ACTIONS(4986),
    [sym_cstring] = ACTIONS(4986),
    [sym_dstring] = ACTIONS(4986),
    [sym_wstring] = ACTIONS(4986),
    [sym_noreturn] = ACTIONS(4986),
    [sym_this] = ACTIONS(4986),
    [sym_abstract] = ACTIONS(4986),
    [sym_alias] = ACTIONS(4986),
    [sym_align] = ACTIONS(4986),
    [sym_auto] = ACTIONS(4986),
    [sym_catch] = ACTIONS(4986),
    [sym_class] = ACTIONS(4986),
    [sym_const] = ACTIONS(4986),
    [sym_debug] = ACTIONS(4986),
    [sym_deprecated] = ACTIONS(4986),
    [sym_else] = ACTIONS(4986),
    [sym_enum] = ACTIONS(4986),
    [sym_export] = ACTIONS(4986),
    [sym_extern] = ACTIONS(4986),
    [sym_final] = ACTIONS(4986),
    [sym_finally] = ACTIONS(4986),
    [sym_immutable] = ACTIONS(4986),
    [sym_import] = ACTIONS(4986),
    [sym_inout] = ACTIONS(4986),
    [sym_interface] = ACTIONS(4986),
    [sym_invariant] = ACTIONS(4986),
    [sym_mixin] = ACTIONS(4986),
    [sym_nothrow] = ACTIONS(4986),
    [sym_override] = ACTIONS(4986),
    [sym_package] = ACTIONS(4986),
    [sym_pragma] = ACTIONS(4986),
    [sym_private] = ACTIONS(4986),
    [sym_protected] = ACTIONS(4986),
    [sym_public] = ACTIONS(4986),
    [sym_pure] = ACTIONS(4986),
    [sym_ref] = ACTIONS(4986),
    [sym_return] = ACTIONS(4986),
    [sym_scope] = ACTIONS(4986),
    [sym_shared] = ACTIONS(4986),
    [sym_static] = ACTIONS(4986),
    [sym_struct] = ACTIONS(4986),
    [sym_synchronized] = ACTIONS(4986),
    [sym_template] = ACTIONS(4986),
    [sym_typeof] = ACTIONS(4986),
    [sym_union] = ACTIONS(4986),
    [sym_unittest] = ACTIONS(4986),
    [sym_version] = ACTIONS(4986),
    [sym_while] = ACTIONS(4986),
    [sym_gshared] = ACTIONS(4986),
    [sym_traits] = ACTIONS(4986),
    [sym_vector] = ACTIONS(4986),
    [sym_void] = ACTIONS(4986),
    [sym_directive] = ACTIONS(3),
  },
  [2669] = {
    [sym_identifier] = ACTIONS(4990),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4992),
    [anon_sym_SEMI] = ACTIONS(4992),
    [anon_sym_TILDE] = ACTIONS(4992),
    [anon_sym_AT] = ACTIONS(4992),
    [sym_bool] = ACTIONS(4990),
    [sym_byte] = ACTIONS(4990),
    [sym_ubyte] = ACTIONS(4990),
    [sym_char] = ACTIONS(4990),
    [sym_short] = ACTIONS(4990),
    [sym_ushort] = ACTIONS(4990),
    [sym_int] = ACTIONS(4990),
    [sym_uint] = ACTIONS(4990),
    [sym_long] = ACTIONS(4990),
    [sym_ulong] = ACTIONS(4990),
    [sym_cent] = ACTIONS(4990),
    [sym_ucent] = ACTIONS(4990),
    [sym_wchar] = ACTIONS(4990),
    [sym_dchar] = ACTIONS(4990),
    [sym_float] = ACTIONS(4990),
    [sym_double] = ACTIONS(4990),
    [sym_real] = ACTIONS(4990),
    [sym_ifloat] = ACTIONS(4990),
    [sym_idouble] = ACTIONS(4990),
    [sym_ireal] = ACTIONS(4990),
    [sym_cfloat] = ACTIONS(4990),
    [sym_cdouble] = ACTIONS(4990),
    [sym_creal] = ACTIONS(4990),
    [sym_size_t] = ACTIONS(4990),
    [sym_ptrdiff_t] = ACTIONS(4990),
    [sym_string] = ACTIONS(4990),
    [sym_cstring] = ACTIONS(4990),
    [sym_dstring] = ACTIONS(4990),
    [sym_wstring] = ACTIONS(4990),
    [sym_noreturn] = ACTIONS(4990),
    [sym_this] = ACTIONS(4990),
    [sym_abstract] = ACTIONS(4990),
    [sym_alias] = ACTIONS(4990),
    [sym_align] = ACTIONS(4990),
    [sym_auto] = ACTIONS(4990),
    [sym_catch] = ACTIONS(4990),
    [sym_class] = ACTIONS(4990),
    [sym_const] = ACTIONS(4990),
    [sym_debug] = ACTIONS(4990),
    [sym_deprecated] = ACTIONS(4990),
    [sym_else] = ACTIONS(4990),
    [sym_enum] = ACTIONS(4990),
    [sym_export] = ACTIONS(4990),
    [sym_extern] = ACTIONS(4990),
    [sym_final] = ACTIONS(4990),
    [sym_finally] = ACTIONS(4990),
    [sym_immutable] = ACTIONS(4990),
    [sym_import] = ACTIONS(4990),
    [sym_inout] = ACTIONS(4990),
    [sym_interface] = ACTIONS(4990),
    [sym_invariant] = ACTIONS(4990),
    [sym_mixin] = ACTIONS(4990),
    [sym_nothrow] = ACTIONS(4990),
    [sym_override] = ACTIONS(4990),
    [sym_package] = ACTIONS(4990),
    [sym_pragma] = ACTIONS(4990),
    [sym_private] = ACTIONS(4990),
    [sym_protected] = ACTIONS(4990),
    [sym_public] = ACTIONS(4990),
    [sym_pure] = ACTIONS(4990),
    [sym_ref] = ACTIONS(4990),
    [sym_return] = ACTIONS(4990),
    [sym_scope] = ACTIONS(4990),
    [sym_shared] = ACTIONS(4990),
    [sym_static] = ACTIONS(4990),
    [sym_struct] = ACTIONS(4990),
    [sym_synchronized] = ACTIONS(4990),
    [sym_template] = ACTIONS(4990),
    [sym_typeof] = ACTIONS(4990),
    [sym_union] = ACTIONS(4990),
    [sym_unittest] = ACTIONS(4990),
    [sym_version] = ACTIONS(4990),
    [sym_while] = ACTIONS(4990),
    [sym_gshared] = ACTIONS(4990),
    [sym_traits] = ACTIONS(4990),
    [sym_vector] = ACTIONS(4990),
    [sym_void] = ACTIONS(4990),
    [sym_directive] = ACTIONS(3),
  },
  [2670] = {
    [sym_identifier] = ACTIONS(5016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5018),
    [anon_sym_SEMI] = ACTIONS(5018),
    [anon_sym_TILDE] = ACTIONS(5018),
    [anon_sym_AT] = ACTIONS(5018),
    [sym_bool] = ACTIONS(5016),
    [sym_byte] = ACTIONS(5016),
    [sym_ubyte] = ACTIONS(5016),
    [sym_char] = ACTIONS(5016),
    [sym_short] = ACTIONS(5016),
    [sym_ushort] = ACTIONS(5016),
    [sym_int] = ACTIONS(5016),
    [sym_uint] = ACTIONS(5016),
    [sym_long] = ACTIONS(5016),
    [sym_ulong] = ACTIONS(5016),
    [sym_cent] = ACTIONS(5016),
    [sym_ucent] = ACTIONS(5016),
    [sym_wchar] = ACTIONS(5016),
    [sym_dchar] = ACTIONS(5016),
    [sym_float] = ACTIONS(5016),
    [sym_double] = ACTIONS(5016),
    [sym_real] = ACTIONS(5016),
    [sym_ifloat] = ACTIONS(5016),
    [sym_idouble] = ACTIONS(5016),
    [sym_ireal] = ACTIONS(5016),
    [sym_cfloat] = ACTIONS(5016),
    [sym_cdouble] = ACTIONS(5016),
    [sym_creal] = ACTIONS(5016),
    [sym_size_t] = ACTIONS(5016),
    [sym_ptrdiff_t] = ACTIONS(5016),
    [sym_string] = ACTIONS(5016),
    [sym_cstring] = ACTIONS(5016),
    [sym_dstring] = ACTIONS(5016),
    [sym_wstring] = ACTIONS(5016),
    [sym_noreturn] = ACTIONS(5016),
    [sym_this] = ACTIONS(5016),
    [sym_abstract] = ACTIONS(5016),
    [sym_alias] = ACTIONS(5016),
    [sym_align] = ACTIONS(5016),
    [sym_auto] = ACTIONS(5016),
    [sym_catch] = ACTIONS(5016),
    [sym_class] = ACTIONS(5016),
    [sym_const] = ACTIONS(5016),
    [sym_debug] = ACTIONS(5016),
    [sym_deprecated] = ACTIONS(5016),
    [sym_else] = ACTIONS(5016),
    [sym_enum] = ACTIONS(5016),
    [sym_export] = ACTIONS(5016),
    [sym_extern] = ACTIONS(5016),
    [sym_final] = ACTIONS(5016),
    [sym_finally] = ACTIONS(5016),
    [sym_immutable] = ACTIONS(5016),
    [sym_import] = ACTIONS(5016),
    [sym_inout] = ACTIONS(5016),
    [sym_interface] = ACTIONS(5016),
    [sym_invariant] = ACTIONS(5016),
    [sym_mixin] = ACTIONS(5016),
    [sym_nothrow] = ACTIONS(5016),
    [sym_override] = ACTIONS(5016),
    [sym_package] = ACTIONS(5016),
    [sym_pragma] = ACTIONS(5016),
    [sym_private] = ACTIONS(5016),
    [sym_protected] = ACTIONS(5016),
    [sym_public] = ACTIONS(5016),
    [sym_pure] = ACTIONS(5016),
    [sym_ref] = ACTIONS(5016),
    [sym_return] = ACTIONS(5016),
    [sym_scope] = ACTIONS(5016),
    [sym_shared] = ACTIONS(5016),
    [sym_static] = ACTIONS(5016),
    [sym_struct] = ACTIONS(5016),
    [sym_synchronized] = ACTIONS(5016),
    [sym_template] = ACTIONS(5016),
    [sym_typeof] = ACTIONS(5016),
    [sym_union] = ACTIONS(5016),
    [sym_unittest] = ACTIONS(5016),
    [sym_version] = ACTIONS(5016),
    [sym_while] = ACTIONS(5016),
    [sym_gshared] = ACTIONS(5016),
    [sym_traits] = ACTIONS(5016),
    [sym_vector] = ACTIONS(5016),
    [sym_void] = ACTIONS(5016),
    [sym_directive] = ACTIONS(3),
  },
  [2671] = {
    [sym_identifier] = ACTIONS(5020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5022),
    [anon_sym_SEMI] = ACTIONS(5022),
    [anon_sym_TILDE] = ACTIONS(5022),
    [anon_sym_AT] = ACTIONS(5022),
    [sym_bool] = ACTIONS(5020),
    [sym_byte] = ACTIONS(5020),
    [sym_ubyte] = ACTIONS(5020),
    [sym_char] = ACTIONS(5020),
    [sym_short] = ACTIONS(5020),
    [sym_ushort] = ACTIONS(5020),
    [sym_int] = ACTIONS(5020),
    [sym_uint] = ACTIONS(5020),
    [sym_long] = ACTIONS(5020),
    [sym_ulong] = ACTIONS(5020),
    [sym_cent] = ACTIONS(5020),
    [sym_ucent] = ACTIONS(5020),
    [sym_wchar] = ACTIONS(5020),
    [sym_dchar] = ACTIONS(5020),
    [sym_float] = ACTIONS(5020),
    [sym_double] = ACTIONS(5020),
    [sym_real] = ACTIONS(5020),
    [sym_ifloat] = ACTIONS(5020),
    [sym_idouble] = ACTIONS(5020),
    [sym_ireal] = ACTIONS(5020),
    [sym_cfloat] = ACTIONS(5020),
    [sym_cdouble] = ACTIONS(5020),
    [sym_creal] = ACTIONS(5020),
    [sym_size_t] = ACTIONS(5020),
    [sym_ptrdiff_t] = ACTIONS(5020),
    [sym_string] = ACTIONS(5020),
    [sym_cstring] = ACTIONS(5020),
    [sym_dstring] = ACTIONS(5020),
    [sym_wstring] = ACTIONS(5020),
    [sym_noreturn] = ACTIONS(5020),
    [sym_this] = ACTIONS(5020),
    [sym_abstract] = ACTIONS(5020),
    [sym_alias] = ACTIONS(5020),
    [sym_align] = ACTIONS(5020),
    [sym_auto] = ACTIONS(5020),
    [sym_catch] = ACTIONS(5020),
    [sym_class] = ACTIONS(5020),
    [sym_const] = ACTIONS(5020),
    [sym_debug] = ACTIONS(5020),
    [sym_deprecated] = ACTIONS(5020),
    [sym_else] = ACTIONS(5020),
    [sym_enum] = ACTIONS(5020),
    [sym_export] = ACTIONS(5020),
    [sym_extern] = ACTIONS(5020),
    [sym_final] = ACTIONS(5020),
    [sym_finally] = ACTIONS(5020),
    [sym_immutable] = ACTIONS(5020),
    [sym_import] = ACTIONS(5020),
    [sym_inout] = ACTIONS(5020),
    [sym_interface] = ACTIONS(5020),
    [sym_invariant] = ACTIONS(5020),
    [sym_mixin] = ACTIONS(5020),
    [sym_nothrow] = ACTIONS(5020),
    [sym_override] = ACTIONS(5020),
    [sym_package] = ACTIONS(5020),
    [sym_pragma] = ACTIONS(5020),
    [sym_private] = ACTIONS(5020),
    [sym_protected] = ACTIONS(5020),
    [sym_public] = ACTIONS(5020),
    [sym_pure] = ACTIONS(5020),
    [sym_ref] = ACTIONS(5020),
    [sym_return] = ACTIONS(5020),
    [sym_scope] = ACTIONS(5020),
    [sym_shared] = ACTIONS(5020),
    [sym_static] = ACTIONS(5020),
    [sym_struct] = ACTIONS(5020),
    [sym_synchronized] = ACTIONS(5020),
    [sym_template] = ACTIONS(5020),
    [sym_typeof] = ACTIONS(5020),
    [sym_union] = ACTIONS(5020),
    [sym_unittest] = ACTIONS(5020),
    [sym_version] = ACTIONS(5020),
    [sym_while] = ACTIONS(5020),
    [sym_gshared] = ACTIONS(5020),
    [sym_traits] = ACTIONS(5020),
    [sym_vector] = ACTIONS(5020),
    [sym_void] = ACTIONS(5020),
    [sym_directive] = ACTIONS(3),
  },
  [2672] = {
    [sym_identifier] = ACTIONS(5032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5034),
    [anon_sym_SEMI] = ACTIONS(5034),
    [anon_sym_TILDE] = ACTIONS(5034),
    [anon_sym_AT] = ACTIONS(5034),
    [sym_bool] = ACTIONS(5032),
    [sym_byte] = ACTIONS(5032),
    [sym_ubyte] = ACTIONS(5032),
    [sym_char] = ACTIONS(5032),
    [sym_short] = ACTIONS(5032),
    [sym_ushort] = ACTIONS(5032),
    [sym_int] = ACTIONS(5032),
    [sym_uint] = ACTIONS(5032),
    [sym_long] = ACTIONS(5032),
    [sym_ulong] = ACTIONS(5032),
    [sym_cent] = ACTIONS(5032),
    [sym_ucent] = ACTIONS(5032),
    [sym_wchar] = ACTIONS(5032),
    [sym_dchar] = ACTIONS(5032),
    [sym_float] = ACTIONS(5032),
    [sym_double] = ACTIONS(5032),
    [sym_real] = ACTIONS(5032),
    [sym_ifloat] = ACTIONS(5032),
    [sym_idouble] = ACTIONS(5032),
    [sym_ireal] = ACTIONS(5032),
    [sym_cfloat] = ACTIONS(5032),
    [sym_cdouble] = ACTIONS(5032),
    [sym_creal] = ACTIONS(5032),
    [sym_size_t] = ACTIONS(5032),
    [sym_ptrdiff_t] = ACTIONS(5032),
    [sym_string] = ACTIONS(5032),
    [sym_cstring] = ACTIONS(5032),
    [sym_dstring] = ACTIONS(5032),
    [sym_wstring] = ACTIONS(5032),
    [sym_noreturn] = ACTIONS(5032),
    [sym_this] = ACTIONS(5032),
    [sym_abstract] = ACTIONS(5032),
    [sym_alias] = ACTIONS(5032),
    [sym_align] = ACTIONS(5032),
    [sym_auto] = ACTIONS(5032),
    [sym_catch] = ACTIONS(5032),
    [sym_class] = ACTIONS(5032),
    [sym_const] = ACTIONS(5032),
    [sym_debug] = ACTIONS(5032),
    [sym_deprecated] = ACTIONS(5032),
    [sym_else] = ACTIONS(5032),
    [sym_enum] = ACTIONS(5032),
    [sym_export] = ACTIONS(5032),
    [sym_extern] = ACTIONS(5032),
    [sym_final] = ACTIONS(5032),
    [sym_finally] = ACTIONS(5032),
    [sym_immutable] = ACTIONS(5032),
    [sym_import] = ACTIONS(5032),
    [sym_inout] = ACTIONS(5032),
    [sym_interface] = ACTIONS(5032),
    [sym_invariant] = ACTIONS(5032),
    [sym_mixin] = ACTIONS(5032),
    [sym_nothrow] = ACTIONS(5032),
    [sym_override] = ACTIONS(5032),
    [sym_package] = ACTIONS(5032),
    [sym_pragma] = ACTIONS(5032),
    [sym_private] = ACTIONS(5032),
    [sym_protected] = ACTIONS(5032),
    [sym_public] = ACTIONS(5032),
    [sym_pure] = ACTIONS(5032),
    [sym_ref] = ACTIONS(5032),
    [sym_return] = ACTIONS(5032),
    [sym_scope] = ACTIONS(5032),
    [sym_shared] = ACTIONS(5032),
    [sym_static] = ACTIONS(5032),
    [sym_struct] = ACTIONS(5032),
    [sym_synchronized] = ACTIONS(5032),
    [sym_template] = ACTIONS(5032),
    [sym_typeof] = ACTIONS(5032),
    [sym_union] = ACTIONS(5032),
    [sym_unittest] = ACTIONS(5032),
    [sym_version] = ACTIONS(5032),
    [sym_while] = ACTIONS(5032),
    [sym_gshared] = ACTIONS(5032),
    [sym_traits] = ACTIONS(5032),
    [sym_vector] = ACTIONS(5032),
    [sym_void] = ACTIONS(5032),
    [sym_directive] = ACTIONS(3),
  },
  [2673] = {
    [sym_identifier] = ACTIONS(5048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5050),
    [anon_sym_SEMI] = ACTIONS(5050),
    [anon_sym_TILDE] = ACTIONS(5050),
    [anon_sym_AT] = ACTIONS(5050),
    [sym_bool] = ACTIONS(5048),
    [sym_byte] = ACTIONS(5048),
    [sym_ubyte] = ACTIONS(5048),
    [sym_char] = ACTIONS(5048),
    [sym_short] = ACTIONS(5048),
    [sym_ushort] = ACTIONS(5048),
    [sym_int] = ACTIONS(5048),
    [sym_uint] = ACTIONS(5048),
    [sym_long] = ACTIONS(5048),
    [sym_ulong] = ACTIONS(5048),
    [sym_cent] = ACTIONS(5048),
    [sym_ucent] = ACTIONS(5048),
    [sym_wchar] = ACTIONS(5048),
    [sym_dchar] = ACTIONS(5048),
    [sym_float] = ACTIONS(5048),
    [sym_double] = ACTIONS(5048),
    [sym_real] = ACTIONS(5048),
    [sym_ifloat] = ACTIONS(5048),
    [sym_idouble] = ACTIONS(5048),
    [sym_ireal] = ACTIONS(5048),
    [sym_cfloat] = ACTIONS(5048),
    [sym_cdouble] = ACTIONS(5048),
    [sym_creal] = ACTIONS(5048),
    [sym_size_t] = ACTIONS(5048),
    [sym_ptrdiff_t] = ACTIONS(5048),
    [sym_string] = ACTIONS(5048),
    [sym_cstring] = ACTIONS(5048),
    [sym_dstring] = ACTIONS(5048),
    [sym_wstring] = ACTIONS(5048),
    [sym_noreturn] = ACTIONS(5048),
    [sym_this] = ACTIONS(5048),
    [sym_abstract] = ACTIONS(5048),
    [sym_alias] = ACTIONS(5048),
    [sym_align] = ACTIONS(5048),
    [sym_auto] = ACTIONS(5048),
    [sym_catch] = ACTIONS(5048),
    [sym_class] = ACTIONS(5048),
    [sym_const] = ACTIONS(5048),
    [sym_debug] = ACTIONS(5048),
    [sym_deprecated] = ACTIONS(5048),
    [sym_else] = ACTIONS(5048),
    [sym_enum] = ACTIONS(5048),
    [sym_export] = ACTIONS(5048),
    [sym_extern] = ACTIONS(5048),
    [sym_final] = ACTIONS(5048),
    [sym_finally] = ACTIONS(5048),
    [sym_immutable] = ACTIONS(5048),
    [sym_import] = ACTIONS(5048),
    [sym_inout] = ACTIONS(5048),
    [sym_interface] = ACTIONS(5048),
    [sym_invariant] = ACTIONS(5048),
    [sym_mixin] = ACTIONS(5048),
    [sym_nothrow] = ACTIONS(5048),
    [sym_override] = ACTIONS(5048),
    [sym_package] = ACTIONS(5048),
    [sym_pragma] = ACTIONS(5048),
    [sym_private] = ACTIONS(5048),
    [sym_protected] = ACTIONS(5048),
    [sym_public] = ACTIONS(5048),
    [sym_pure] = ACTIONS(5048),
    [sym_ref] = ACTIONS(5048),
    [sym_return] = ACTIONS(5048),
    [sym_scope] = ACTIONS(5048),
    [sym_shared] = ACTIONS(5048),
    [sym_static] = ACTIONS(5048),
    [sym_struct] = ACTIONS(5048),
    [sym_synchronized] = ACTIONS(5048),
    [sym_template] = ACTIONS(5048),
    [sym_typeof] = ACTIONS(5048),
    [sym_union] = ACTIONS(5048),
    [sym_unittest] = ACTIONS(5048),
    [sym_version] = ACTIONS(5048),
    [sym_while] = ACTIONS(5048),
    [sym_gshared] = ACTIONS(5048),
    [sym_traits] = ACTIONS(5048),
    [sym_vector] = ACTIONS(5048),
    [sym_void] = ACTIONS(5048),
    [sym_directive] = ACTIONS(3),
  },
  [2674] = {
    [ts_builtin_sym_end] = ACTIONS(4576),
    [sym_identifier] = ACTIONS(4574),
    [sym_end_file] = ACTIONS(4574),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4576),
    [anon_sym_SEMI] = ACTIONS(4576),
    [anon_sym_TILDE] = ACTIONS(4576),
    [anon_sym_AT] = ACTIONS(4576),
    [sym_bool] = ACTIONS(4574),
    [sym_byte] = ACTIONS(4574),
    [sym_ubyte] = ACTIONS(4574),
    [sym_char] = ACTIONS(4574),
    [sym_short] = ACTIONS(4574),
    [sym_ushort] = ACTIONS(4574),
    [sym_int] = ACTIONS(4574),
    [sym_uint] = ACTIONS(4574),
    [sym_long] = ACTIONS(4574),
    [sym_ulong] = ACTIONS(4574),
    [sym_cent] = ACTIONS(4574),
    [sym_ucent] = ACTIONS(4574),
    [sym_wchar] = ACTIONS(4574),
    [sym_dchar] = ACTIONS(4574),
    [sym_float] = ACTIONS(4574),
    [sym_double] = ACTIONS(4574),
    [sym_real] = ACTIONS(4574),
    [sym_ifloat] = ACTIONS(4574),
    [sym_idouble] = ACTIONS(4574),
    [sym_ireal] = ACTIONS(4574),
    [sym_cfloat] = ACTIONS(4574),
    [sym_cdouble] = ACTIONS(4574),
    [sym_creal] = ACTIONS(4574),
    [sym_size_t] = ACTIONS(4574),
    [sym_ptrdiff_t] = ACTIONS(4574),
    [sym_string] = ACTIONS(4574),
    [sym_cstring] = ACTIONS(4574),
    [sym_dstring] = ACTIONS(4574),
    [sym_wstring] = ACTIONS(4574),
    [sym_noreturn] = ACTIONS(4574),
    [sym_this] = ACTIONS(4574),
    [sym_abstract] = ACTIONS(4574),
    [sym_alias] = ACTIONS(4574),
    [sym_align] = ACTIONS(4574),
    [sym_auto] = ACTIONS(4574),
    [sym_class] = ACTIONS(4574),
    [sym_const] = ACTIONS(4574),
    [sym_debug] = ACTIONS(4574),
    [sym_deprecated] = ACTIONS(4574),
    [sym_else] = ACTIONS(4574),
    [sym_enum] = ACTIONS(4574),
    [sym_export] = ACTIONS(4574),
    [sym_extern] = ACTIONS(4574),
    [sym_final] = ACTIONS(4574),
    [sym_immutable] = ACTIONS(4574),
    [sym_import] = ACTIONS(4574),
    [sym_inout] = ACTIONS(4574),
    [sym_interface] = ACTIONS(4574),
    [sym_invariant] = ACTIONS(4574),
    [sym_mixin] = ACTIONS(4574),
    [sym_nothrow] = ACTIONS(4574),
    [sym_override] = ACTIONS(4574),
    [sym_package] = ACTIONS(4574),
    [sym_pragma] = ACTIONS(4574),
    [sym_private] = ACTIONS(4574),
    [sym_protected] = ACTIONS(4574),
    [sym_public] = ACTIONS(4574),
    [sym_pure] = ACTIONS(4574),
    [sym_ref] = ACTIONS(4574),
    [sym_return] = ACTIONS(4574),
    [sym_scope] = ACTIONS(4574),
    [sym_shared] = ACTIONS(4574),
    [sym_static] = ACTIONS(4574),
    [sym_struct] = ACTIONS(4574),
    [sym_synchronized] = ACTIONS(4574),
    [sym_template] = ACTIONS(4574),
    [sym_typeof] = ACTIONS(4574),
    [sym_union] = ACTIONS(4574),
    [sym_unittest] = ACTIONS(4574),
    [sym_version] = ACTIONS(4574),
    [sym_while] = ACTIONS(4574),
    [sym_gshared] = ACTIONS(4574),
    [sym_traits] = ACTIONS(4574),
    [sym_vector] = ACTIONS(4574),
    [sym_void] = ACTIONS(4574),
    [sym_directive] = ACTIONS(3),
  },
  [2675] = {
    [ts_builtin_sym_end] = ACTIONS(4564),
    [sym_identifier] = ACTIONS(4562),
    [sym_end_file] = ACTIONS(4562),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4564),
    [anon_sym_SEMI] = ACTIONS(4564),
    [anon_sym_TILDE] = ACTIONS(4564),
    [anon_sym_AT] = ACTIONS(4564),
    [sym_bool] = ACTIONS(4562),
    [sym_byte] = ACTIONS(4562),
    [sym_ubyte] = ACTIONS(4562),
    [sym_char] = ACTIONS(4562),
    [sym_short] = ACTIONS(4562),
    [sym_ushort] = ACTIONS(4562),
    [sym_int] = ACTIONS(4562),
    [sym_uint] = ACTIONS(4562),
    [sym_long] = ACTIONS(4562),
    [sym_ulong] = ACTIONS(4562),
    [sym_cent] = ACTIONS(4562),
    [sym_ucent] = ACTIONS(4562),
    [sym_wchar] = ACTIONS(4562),
    [sym_dchar] = ACTIONS(4562),
    [sym_float] = ACTIONS(4562),
    [sym_double] = ACTIONS(4562),
    [sym_real] = ACTIONS(4562),
    [sym_ifloat] = ACTIONS(4562),
    [sym_idouble] = ACTIONS(4562),
    [sym_ireal] = ACTIONS(4562),
    [sym_cfloat] = ACTIONS(4562),
    [sym_cdouble] = ACTIONS(4562),
    [sym_creal] = ACTIONS(4562),
    [sym_size_t] = ACTIONS(4562),
    [sym_ptrdiff_t] = ACTIONS(4562),
    [sym_string] = ACTIONS(4562),
    [sym_cstring] = ACTIONS(4562),
    [sym_dstring] = ACTIONS(4562),
    [sym_wstring] = ACTIONS(4562),
    [sym_noreturn] = ACTIONS(4562),
    [sym_this] = ACTIONS(4562),
    [sym_abstract] = ACTIONS(4562),
    [sym_alias] = ACTIONS(4562),
    [sym_align] = ACTIONS(4562),
    [sym_auto] = ACTIONS(4562),
    [sym_class] = ACTIONS(4562),
    [sym_const] = ACTIONS(4562),
    [sym_debug] = ACTIONS(4562),
    [sym_deprecated] = ACTIONS(4562),
    [sym_else] = ACTIONS(4562),
    [sym_enum] = ACTIONS(4562),
    [sym_export] = ACTIONS(4562),
    [sym_extern] = ACTIONS(4562),
    [sym_final] = ACTIONS(4562),
    [sym_immutable] = ACTIONS(4562),
    [sym_import] = ACTIONS(4562),
    [sym_inout] = ACTIONS(4562),
    [sym_interface] = ACTIONS(4562),
    [sym_invariant] = ACTIONS(4562),
    [sym_mixin] = ACTIONS(4562),
    [sym_nothrow] = ACTIONS(4562),
    [sym_override] = ACTIONS(4562),
    [sym_package] = ACTIONS(4562),
    [sym_pragma] = ACTIONS(4562),
    [sym_private] = ACTIONS(4562),
    [sym_protected] = ACTIONS(4562),
    [sym_public] = ACTIONS(4562),
    [sym_pure] = ACTIONS(4562),
    [sym_ref] = ACTIONS(4562),
    [sym_return] = ACTIONS(4562),
    [sym_scope] = ACTIONS(4562),
    [sym_shared] = ACTIONS(4562),
    [sym_static] = ACTIONS(4562),
    [sym_struct] = ACTIONS(4562),
    [sym_synchronized] = ACTIONS(4562),
    [sym_template] = ACTIONS(4562),
    [sym_typeof] = ACTIONS(4562),
    [sym_union] = ACTIONS(4562),
    [sym_unittest] = ACTIONS(4562),
    [sym_version] = ACTIONS(4562),
    [sym_while] = ACTIONS(4562),
    [sym_gshared] = ACTIONS(4562),
    [sym_traits] = ACTIONS(4562),
    [sym_vector] = ACTIONS(4562),
    [sym_void] = ACTIONS(4562),
    [sym_directive] = ACTIONS(3),
  },
  [2676] = {
    [sym_identifier] = ACTIONS(5068),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(5070),
    [anon_sym_SEMI] = ACTIONS(5070),
    [anon_sym_TILDE] = ACTIONS(5070),
    [anon_sym_AT] = ACTIONS(5070),
    [sym_bool] = ACTIONS(5068),
    [sym_byte] = ACTIONS(5068),
    [sym_ubyte] = ACTIONS(5068),
    [sym_char] = ACTIONS(5068),
    [sym_short] = ACTIONS(5068),
    [sym_ushort] = ACTIONS(5068),
    [sym_int] = ACTIONS(5068),
    [sym_uint] = ACTIONS(5068),
    [sym_long] = ACTIONS(5068),
    [sym_ulong] = ACTIONS(5068),
    [sym_cent] = ACTIONS(5068),
    [sym_ucent] = ACTIONS(5068),
    [sym_wchar] = ACTIONS(5068),
    [sym_dchar] = ACTIONS(5068),
    [sym_float] = ACTIONS(5068),
    [sym_double] = ACTIONS(5068),
    [sym_real] = ACTIONS(5068),
    [sym_ifloat] = ACTIONS(5068),
    [sym_idouble] = ACTIONS(5068),
    [sym_ireal] = ACTIONS(5068),
    [sym_cfloat] = ACTIONS(5068),
    [sym_cdouble] = ACTIONS(5068),
    [sym_creal] = ACTIONS(5068),
    [sym_size_t] = ACTIONS(5068),
    [sym_ptrdiff_t] = ACTIONS(5068),
    [sym_string] = ACTIONS(5068),
    [sym_cstring] = ACTIONS(5068),
    [sym_dstring] = ACTIONS(5068),
    [sym_wstring] = ACTIONS(5068),
    [sym_noreturn] = ACTIONS(5068),
    [sym_this] = ACTIONS(5068),
    [sym_abstract] = ACTIONS(5068),
    [sym_alias] = ACTIONS(5068),
    [sym_align] = ACTIONS(5068),
    [sym_auto] = ACTIONS(5068),
    [sym_catch] = ACTIONS(5068),
    [sym_class] = ACTIONS(5068),
    [sym_const] = ACTIONS(5068),
    [sym_debug] = ACTIONS(5068),
    [sym_deprecated] = ACTIONS(5068),
    [sym_else] = ACTIONS(5068),
    [sym_enum] = ACTIONS(5068),
    [sym_export] = ACTIONS(5068),
    [sym_extern] = ACTIONS(5068),
    [sym_final] = ACTIONS(5068),
    [sym_finally] = ACTIONS(5068),
    [sym_immutable] = ACTIONS(5068),
    [sym_import] = ACTIONS(5068),
    [sym_inout] = ACTIONS(5068),
    [sym_interface] = ACTIONS(5068),
    [sym_invariant] = ACTIONS(5068),
    [sym_mixin] = ACTIONS(5068),
    [sym_nothrow] = ACTIONS(5068),
    [sym_override] = ACTIONS(5068),
    [sym_package] = ACTIONS(5068),
    [sym_pragma] = ACTIONS(5068),
    [sym_private] = ACTIONS(5068),
    [sym_protected] = ACTIONS(5068),
    [sym_public] = ACTIONS(5068),
    [sym_pure] = ACTIONS(5068),
    [sym_ref] = ACTIONS(5068),
    [sym_return] = ACTIONS(5068),
    [sym_scope] = ACTIONS(5068),
    [sym_shared] = ACTIONS(5068),
    [sym_static] = ACTIONS(5068),
    [sym_struct] = ACTIONS(5068),
    [sym_synchronized] = ACTIONS(5068),
    [sym_template] = ACTIONS(5068),
    [sym_typeof] = ACTIONS(5068),
    [sym_union] = ACTIONS(5068),
    [sym_unittest] = ACTIONS(5068),
    [sym_version] = ACTIONS(5068),
    [sym_while] = ACTIONS(5068),
    [sym_gshared] = ACTIONS(5068),
    [sym_traits] = ACTIONS(5068),
    [sym_vector] = ACTIONS(5068),
    [sym_void] = ACTIONS(5068),
    [sym_directive] = ACTIONS(3),
  },
  [2677] = {
    [ts_builtin_sym_end] = ACTIONS(4580),
    [sym_identifier] = ACTIONS(4578),
    [sym_end_file] = ACTIONS(4578),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4580),
    [anon_sym_SEMI] = ACTIONS(4580),
    [anon_sym_TILDE] = ACTIONS(4580),
    [anon_sym_AT] = ACTIONS(4580),
    [sym_bool] = ACTIONS(4578),
    [sym_byte] = ACTIONS(4578),
    [sym_ubyte] = ACTIONS(4578),
    [sym_char] = ACTIONS(4578),
    [sym_short] = ACTIONS(4578),
    [sym_ushort] = ACTIONS(4578),
    [sym_int] = ACTIONS(4578),
    [sym_uint] = ACTIONS(4578),
    [sym_long] = ACTIONS(4578),
    [sym_ulong] = ACTIONS(4578),
    [sym_cent] = ACTIONS(4578),
    [sym_ucent] = ACTIONS(4578),
    [sym_wchar] = ACTIONS(4578),
    [sym_dchar] = ACTIONS(4578),
    [sym_float] = ACTIONS(4578),
    [sym_double] = ACTIONS(4578),
    [sym_real] = ACTIONS(4578),
    [sym_ifloat] = ACTIONS(4578),
    [sym_idouble] = ACTIONS(4578),
    [sym_ireal] = ACTIONS(4578),
    [sym_cfloat] = ACTIONS(4578),
    [sym_cdouble] = ACTIONS(4578),
    [sym_creal] = ACTIONS(4578),
    [sym_size_t] = ACTIONS(4578),
    [sym_ptrdiff_t] = ACTIONS(4578),
    [sym_string] = ACTIONS(4578),
    [sym_cstring] = ACTIONS(4578),
    [sym_dstring] = ACTIONS(4578),
    [sym_wstring] = ACTIONS(4578),
    [sym_noreturn] = ACTIONS(4578),
    [sym_this] = ACTIONS(4578),
    [sym_abstract] = ACTIONS(4578),
    [sym_alias] = ACTIONS(4578),
    [sym_align] = ACTIONS(4578),
    [sym_auto] = ACTIONS(4578),
    [sym_class] = ACTIONS(4578),
    [sym_const] = ACTIONS(4578),
    [sym_debug] = ACTIONS(4578),
    [sym_deprecated] = ACTIONS(4578),
    [sym_else] = ACTIONS(4578),
    [sym_enum] = ACTIONS(4578),
    [sym_export] = ACTIONS(4578),
    [sym_extern] = ACTIONS(4578),
    [sym_final] = ACTIONS(4578),
    [sym_immutable] = ACTIONS(4578),
    [sym_import] = ACTIONS(4578),
    [sym_inout] = ACTIONS(4578),
    [sym_interface] = ACTIONS(4578),
    [sym_invariant] = ACTIONS(4578),
    [sym_mixin] = ACTIONS(4578),
    [sym_nothrow] = ACTIONS(4578),
    [sym_override] = ACTIONS(4578),
    [sym_package] = ACTIONS(4578),
    [sym_pragma] = ACTIONS(4578),
    [sym_private] = ACTIONS(4578),
    [sym_protected] = ACTIONS(4578),
    [sym_public] = ACTIONS(4578),
    [sym_pure] = ACTIONS(4578),
    [sym_ref] = ACTIONS(4578),
    [sym_return] = ACTIONS(4578),
    [sym_scope] = ACTIONS(4578),
    [sym_shared] = ACTIONS(4578),
    [sym_static] = ACTIONS(4578),
    [sym_struct] = ACTIONS(4578),
    [sym_synchronized] = ACTIONS(4578),
    [sym_template] = ACTIONS(4578),
    [sym_typeof] = ACTIONS(4578),
    [sym_union] = ACTIONS(4578),
    [sym_unittest] = ACTIONS(4578),
    [sym_version] = ACTIONS(4578),
    [sym_while] = ACTIONS(4578),
    [sym_gshared] = ACTIONS(4578),
    [sym_traits] = ACTIONS(4578),
    [sym_vector] = ACTIONS(4578),
    [sym_void] = ACTIONS(4578),
    [sym_directive] = ACTIONS(3),
  },
  [2678] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(6785),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5127),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
  },
  [2679] = {
    [ts_builtin_sym_end] = ACTIONS(4862),
    [sym_identifier] = ACTIONS(4860),
    [sym_end_file] = ACTIONS(4860),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4862),
    [anon_sym_SEMI] = ACTIONS(4862),
    [anon_sym_TILDE] = ACTIONS(4862),
    [anon_sym_AT] = ACTIONS(4862),
    [sym_bool] = ACTIONS(4860),
    [sym_byte] = ACTIONS(4860),
    [sym_ubyte] = ACTIONS(4860),
    [sym_char] = ACTIONS(4860),
    [sym_short] = ACTIONS(4860),
    [sym_ushort] = ACTIONS(4860),
    [sym_int] = ACTIONS(4860),
    [sym_uint] = ACTIONS(4860),
    [sym_long] = ACTIONS(4860),
    [sym_ulong] = ACTIONS(4860),
    [sym_cent] = ACTIONS(4860),
    [sym_ucent] = ACTIONS(4860),
    [sym_wchar] = ACTIONS(4860),
    [sym_dchar] = ACTIONS(4860),
    [sym_float] = ACTIONS(4860),
    [sym_double] = ACTIONS(4860),
    [sym_real] = ACTIONS(4860),
    [sym_ifloat] = ACTIONS(4860),
    [sym_idouble] = ACTIONS(4860),
    [sym_ireal] = ACTIONS(4860),
    [sym_cfloat] = ACTIONS(4860),
    [sym_cdouble] = ACTIONS(4860),
    [sym_creal] = ACTIONS(4860),
    [sym_size_t] = ACTIONS(4860),
    [sym_ptrdiff_t] = ACTIONS(4860),
    [sym_string] = ACTIONS(4860),
    [sym_cstring] = ACTIONS(4860),
    [sym_dstring] = ACTIONS(4860),
    [sym_wstring] = ACTIONS(4860),
    [sym_noreturn] = ACTIONS(4860),
    [sym_this] = ACTIONS(4860),
    [sym_abstract] = ACTIONS(4860),
    [sym_alias] = ACTIONS(4860),
    [sym_align] = ACTIONS(4860),
    [sym_auto] = ACTIONS(4860),
    [sym_class] = ACTIONS(4860),
    [sym_const] = ACTIONS(4860),
    [sym_debug] = ACTIONS(4860),
    [sym_deprecated] = ACTIONS(4860),
    [sym_else] = ACTIONS(4860),
    [sym_enum] = ACTIONS(4860),
    [sym_export] = ACTIONS(4860),
    [sym_extern] = ACTIONS(4860),
    [sym_final] = ACTIONS(4860),
    [sym_immutable] = ACTIONS(4860),
    [sym_import] = ACTIONS(4860),
    [sym_inout] = ACTIONS(4860),
    [sym_interface] = ACTIONS(4860),
    [sym_invariant] = ACTIONS(4860),
    [sym_mixin] = ACTIONS(4860),
    [sym_nothrow] = ACTIONS(4860),
    [sym_override] = ACTIONS(4860),
    [sym_package] = ACTIONS(4860),
    [sym_pragma] = ACTIONS(4860),
    [sym_private] = ACTIONS(4860),
    [sym_protected] = ACTIONS(4860),
    [sym_public] = ACTIONS(4860),
    [sym_pure] = ACTIONS(4860),
    [sym_ref] = ACTIONS(4860),
    [sym_return] = ACTIONS(4860),
    [sym_scope] = ACTIONS(4860),
    [sym_shared] = ACTIONS(4860),
    [sym_static] = ACTIONS(4860),
    [sym_struct] = ACTIONS(4860),
    [sym_synchronized] = ACTIONS(4860),
    [sym_template] = ACTIONS(4860),
    [sym_typeof] = ACTIONS(4860),
    [sym_union] = ACTIONS(4860),
    [sym_unittest] = ACTIONS(4860),
    [sym_version] = ACTIONS(4860),
    [sym_while] = ACTIONS(4860),
    [sym_gshared] = ACTIONS(4860),
    [sym_traits] = ACTIONS(4860),
    [sym_vector] = ACTIONS(4860),
    [sym_void] = ACTIONS(4860),
    [sym_directive] = ACTIONS(3),
  },
  [2680] = {
    [ts_builtin_sym_end] = ACTIONS(4526),
    [sym_identifier] = ACTIONS(4524),
    [sym_end_file] = ACTIONS(4524),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4526),
    [anon_sym_SEMI] = ACTIONS(4526),
    [anon_sym_TILDE] = ACTIONS(4526),
    [anon_sym_AT] = ACTIONS(4526),
    [sym_bool] = ACTIONS(4524),
    [sym_byte] = ACTIONS(4524),
    [sym_ubyte] = ACTIONS(4524),
    [sym_char] = ACTIONS(4524),
    [sym_short] = ACTIONS(4524),
    [sym_ushort] = ACTIONS(4524),
    [sym_int] = ACTIONS(4524),
    [sym_uint] = ACTIONS(4524),
    [sym_long] = ACTIONS(4524),
    [sym_ulong] = ACTIONS(4524),
    [sym_cent] = ACTIONS(4524),
    [sym_ucent] = ACTIONS(4524),
    [sym_wchar] = ACTIONS(4524),
    [sym_dchar] = ACTIONS(4524),
    [sym_float] = ACTIONS(4524),
    [sym_double] = ACTIONS(4524),
    [sym_real] = ACTIONS(4524),
    [sym_ifloat] = ACTIONS(4524),
    [sym_idouble] = ACTIONS(4524),
    [sym_ireal] = ACTIONS(4524),
    [sym_cfloat] = ACTIONS(4524),
    [sym_cdouble] = ACTIONS(4524),
    [sym_creal] = ACTIONS(4524),
    [sym_size_t] = ACTIONS(4524),
    [sym_ptrdiff_t] = ACTIONS(4524),
    [sym_string] = ACTIONS(4524),
    [sym_cstring] = ACTIONS(4524),
    [sym_dstring] = ACTIONS(4524),
    [sym_wstring] = ACTIONS(4524),
    [sym_noreturn] = ACTIONS(4524),
    [sym_this] = ACTIONS(4524),
    [sym_abstract] = ACTIONS(4524),
    [sym_alias] = ACTIONS(4524),
    [sym_align] = ACTIONS(4524),
    [sym_auto] = ACTIONS(4524),
    [sym_class] = ACTIONS(4524),
    [sym_const] = ACTIONS(4524),
    [sym_debug] = ACTIONS(4524),
    [sym_deprecated] = ACTIONS(4524),
    [sym_else] = ACTIONS(4524),
    [sym_enum] = ACTIONS(4524),
    [sym_export] = ACTIONS(4524),
    [sym_extern] = ACTIONS(4524),
    [sym_final] = ACTIONS(4524),
    [sym_immutable] = ACTIONS(4524),
    [sym_import] = ACTIONS(4524),
    [sym_inout] = ACTIONS(4524),
    [sym_interface] = ACTIONS(4524),
    [sym_invariant] = ACTIONS(4524),
    [sym_mixin] = ACTIONS(4524),
    [sym_nothrow] = ACTIONS(4524),
    [sym_override] = ACTIONS(4524),
    [sym_package] = ACTIONS(4524),
    [sym_pragma] = ACTIONS(4524),
    [sym_private] = ACTIONS(4524),
    [sym_protected] = ACTIONS(4524),
    [sym_public] = ACTIONS(4524),
    [sym_pure] = ACTIONS(4524),
    [sym_ref] = ACTIONS(4524),
    [sym_return] = ACTIONS(4524),
    [sym_scope] = ACTIONS(4524),
    [sym_shared] = ACTIONS(4524),
    [sym_static] = ACTIONS(4524),
    [sym_struct] = ACTIONS(4524),
    [sym_synchronized] = ACTIONS(4524),
    [sym_template] = ACTIONS(4524),
    [sym_typeof] = ACTIONS(4524),
    [sym_union] = ACTIONS(4524),
    [sym_unittest] = ACTIONS(4524),
    [sym_version] = ACTIONS(4524),
    [sym_while] = ACTIONS(4524),
    [sym_gshared] = ACTIONS(4524),
    [sym_traits] = ACTIONS(4524),
    [sym_vector] = ACTIONS(4524),
    [sym_void] = ACTIONS(4524),
    [sym_directive] = ACTIONS(3),
  },
  [2681] = {
    [ts_builtin_sym_end] = ACTIONS(4548),
    [sym_identifier] = ACTIONS(4546),
    [sym_end_file] = ACTIONS(4546),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4548),
    [anon_sym_SEMI] = ACTIONS(4548),
    [anon_sym_TILDE] = ACTIONS(4548),
    [anon_sym_AT] = ACTIONS(4548),
    [sym_bool] = ACTIONS(4546),
    [sym_byte] = ACTIONS(4546),
    [sym_ubyte] = ACTIONS(4546),
    [sym_char] = ACTIONS(4546),
    [sym_short] = ACTIONS(4546),
    [sym_ushort] = ACTIONS(4546),
    [sym_int] = ACTIONS(4546),
    [sym_uint] = ACTIONS(4546),
    [sym_long] = ACTIONS(4546),
    [sym_ulong] = ACTIONS(4546),
    [sym_cent] = ACTIONS(4546),
    [sym_ucent] = ACTIONS(4546),
    [sym_wchar] = ACTIONS(4546),
    [sym_dchar] = ACTIONS(4546),
    [sym_float] = ACTIONS(4546),
    [sym_double] = ACTIONS(4546),
    [sym_real] = ACTIONS(4546),
    [sym_ifloat] = ACTIONS(4546),
    [sym_idouble] = ACTIONS(4546),
    [sym_ireal] = ACTIONS(4546),
    [sym_cfloat] = ACTIONS(4546),
    [sym_cdouble] = ACTIONS(4546),
    [sym_creal] = ACTIONS(4546),
    [sym_size_t] = ACTIONS(4546),
    [sym_ptrdiff_t] = ACTIONS(4546),
    [sym_string] = ACTIONS(4546),
    [sym_cstring] = ACTIONS(4546),
    [sym_dstring] = ACTIONS(4546),
    [sym_wstring] = ACTIONS(4546),
    [sym_noreturn] = ACTIONS(4546),
    [sym_this] = ACTIONS(4546),
    [sym_abstract] = ACTIONS(4546),
    [sym_alias] = ACTIONS(4546),
    [sym_align] = ACTIONS(4546),
    [sym_auto] = ACTIONS(4546),
    [sym_class] = ACTIONS(4546),
    [sym_const] = ACTIONS(4546),
    [sym_debug] = ACTIONS(4546),
    [sym_deprecated] = ACTIONS(4546),
    [sym_else] = ACTIONS(4546),
    [sym_enum] = ACTIONS(4546),
    [sym_export] = ACTIONS(4546),
    [sym_extern] = ACTIONS(4546),
    [sym_final] = ACTIONS(4546),
    [sym_immutable] = ACTIONS(4546),
    [sym_import] = ACTIONS(4546),
    [sym_inout] = ACTIONS(4546),
    [sym_interface] = ACTIONS(4546),
    [sym_invariant] = ACTIONS(4546),
    [sym_mixin] = ACTIONS(4546),
    [sym_nothrow] = ACTIONS(4546),
    [sym_override] = ACTIONS(4546),
    [sym_package] = ACTIONS(4546),
    [sym_pragma] = ACTIONS(4546),
    [sym_private] = ACTIONS(4546),
    [sym_protected] = ACTIONS(4546),
    [sym_public] = ACTIONS(4546),
    [sym_pure] = ACTIONS(4546),
    [sym_ref] = ACTIONS(4546),
    [sym_return] = ACTIONS(4546),
    [sym_scope] = ACTIONS(4546),
    [sym_shared] = ACTIONS(4546),
    [sym_static] = ACTIONS(4546),
    [sym_struct] = ACTIONS(4546),
    [sym_synchronized] = ACTIONS(4546),
    [sym_template] = ACTIONS(4546),
    [sym_typeof] = ACTIONS(4546),
    [sym_union] = ACTIONS(4546),
    [sym_unittest] = ACTIONS(4546),
    [sym_version] = ACTIONS(4546),
    [sym_while] = ACTIONS(4546),
    [sym_gshared] = ACTIONS(4546),
    [sym_traits] = ACTIONS(4546),
    [sym_vector] = ACTIONS(4546),
    [sym_void] = ACTIONS(4546),
    [sym_directive] = ACTIONS(3),
  },
  [2682] = {
    [ts_builtin_sym_end] = ACTIONS(4506),
    [sym_identifier] = ACTIONS(4504),
    [sym_end_file] = ACTIONS(4504),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4506),
    [anon_sym_SEMI] = ACTIONS(4506),
    [anon_sym_TILDE] = ACTIONS(4506),
    [anon_sym_AT] = ACTIONS(4506),
    [sym_bool] = ACTIONS(4504),
    [sym_byte] = ACTIONS(4504),
    [sym_ubyte] = ACTIONS(4504),
    [sym_char] = ACTIONS(4504),
    [sym_short] = ACTIONS(4504),
    [sym_ushort] = ACTIONS(4504),
    [sym_int] = ACTIONS(4504),
    [sym_uint] = ACTIONS(4504),
    [sym_long] = ACTIONS(4504),
    [sym_ulong] = ACTIONS(4504),
    [sym_cent] = ACTIONS(4504),
    [sym_ucent] = ACTIONS(4504),
    [sym_wchar] = ACTIONS(4504),
    [sym_dchar] = ACTIONS(4504),
    [sym_float] = ACTIONS(4504),
    [sym_double] = ACTIONS(4504),
    [sym_real] = ACTIONS(4504),
    [sym_ifloat] = ACTIONS(4504),
    [sym_idouble] = ACTIONS(4504),
    [sym_ireal] = ACTIONS(4504),
    [sym_cfloat] = ACTIONS(4504),
    [sym_cdouble] = ACTIONS(4504),
    [sym_creal] = ACTIONS(4504),
    [sym_size_t] = ACTIONS(4504),
    [sym_ptrdiff_t] = ACTIONS(4504),
    [sym_string] = ACTIONS(4504),
    [sym_cstring] = ACTIONS(4504),
    [sym_dstring] = ACTIONS(4504),
    [sym_wstring] = ACTIONS(4504),
    [sym_noreturn] = ACTIONS(4504),
    [sym_this] = ACTIONS(4504),
    [sym_abstract] = ACTIONS(4504),
    [sym_alias] = ACTIONS(4504),
    [sym_align] = ACTIONS(4504),
    [sym_auto] = ACTIONS(4504),
    [sym_class] = ACTIONS(4504),
    [sym_const] = ACTIONS(4504),
    [sym_debug] = ACTIONS(4504),
    [sym_deprecated] = ACTIONS(4504),
    [sym_else] = ACTIONS(4504),
    [sym_enum] = ACTIONS(4504),
    [sym_export] = ACTIONS(4504),
    [sym_extern] = ACTIONS(4504),
    [sym_final] = ACTIONS(4504),
    [sym_immutable] = ACTIONS(4504),
    [sym_import] = ACTIONS(4504),
    [sym_inout] = ACTIONS(4504),
    [sym_interface] = ACTIONS(4504),
    [sym_invariant] = ACTIONS(4504),
    [sym_mixin] = ACTIONS(4504),
    [sym_nothrow] = ACTIONS(4504),
    [sym_override] = ACTIONS(4504),
    [sym_package] = ACTIONS(4504),
    [sym_pragma] = ACTIONS(4504),
    [sym_private] = ACTIONS(4504),
    [sym_protected] = ACTIONS(4504),
    [sym_public] = ACTIONS(4504),
    [sym_pure] = ACTIONS(4504),
    [sym_ref] = ACTIONS(4504),
    [sym_return] = ACTIONS(4504),
    [sym_scope] = ACTIONS(4504),
    [sym_shared] = ACTIONS(4504),
    [sym_static] = ACTIONS(4504),
    [sym_struct] = ACTIONS(4504),
    [sym_synchronized] = ACTIONS(4504),
    [sym_template] = ACTIONS(4504),
    [sym_typeof] = ACTIONS(4504),
    [sym_union] = ACTIONS(4504),
    [sym_unittest] = ACTIONS(4504),
    [sym_version] = ACTIONS(4504),
    [sym_while] = ACTIONS(4504),
    [sym_gshared] = ACTIONS(4504),
    [sym_traits] = ACTIONS(4504),
    [sym_vector] = ACTIONS(4504),
    [sym_void] = ACTIONS(4504),
    [sym_directive] = ACTIONS(3),
  },
  [2683] = {
    [ts_builtin_sym_end] = ACTIONS(4494),
    [sym_identifier] = ACTIONS(4492),
    [sym_end_file] = ACTIONS(4492),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4494),
    [anon_sym_SEMI] = ACTIONS(4494),
    [anon_sym_TILDE] = ACTIONS(4494),
    [anon_sym_AT] = ACTIONS(4494),
    [sym_bool] = ACTIONS(4492),
    [sym_byte] = ACTIONS(4492),
    [sym_ubyte] = ACTIONS(4492),
    [sym_char] = ACTIONS(4492),
    [sym_short] = ACTIONS(4492),
    [sym_ushort] = ACTIONS(4492),
    [sym_int] = ACTIONS(4492),
    [sym_uint] = ACTIONS(4492),
    [sym_long] = ACTIONS(4492),
    [sym_ulong] = ACTIONS(4492),
    [sym_cent] = ACTIONS(4492),
    [sym_ucent] = ACTIONS(4492),
    [sym_wchar] = ACTIONS(4492),
    [sym_dchar] = ACTIONS(4492),
    [sym_float] = ACTIONS(4492),
    [sym_double] = ACTIONS(4492),
    [sym_real] = ACTIONS(4492),
    [sym_ifloat] = ACTIONS(4492),
    [sym_idouble] = ACTIONS(4492),
    [sym_ireal] = ACTIONS(4492),
    [sym_cfloat] = ACTIONS(4492),
    [sym_cdouble] = ACTIONS(4492),
    [sym_creal] = ACTIONS(4492),
    [sym_size_t] = ACTIONS(4492),
    [sym_ptrdiff_t] = ACTIONS(4492),
    [sym_string] = ACTIONS(4492),
    [sym_cstring] = ACTIONS(4492),
    [sym_dstring] = ACTIONS(4492),
    [sym_wstring] = ACTIONS(4492),
    [sym_noreturn] = ACTIONS(4492),
    [sym_this] = ACTIONS(4492),
    [sym_abstract] = ACTIONS(4492),
    [sym_alias] = ACTIONS(4492),
    [sym_align] = ACTIONS(4492),
    [sym_auto] = ACTIONS(4492),
    [sym_class] = ACTIONS(4492),
    [sym_const] = ACTIONS(4492),
    [sym_debug] = ACTIONS(4492),
    [sym_deprecated] = ACTIONS(4492),
    [sym_else] = ACTIONS(4492),
    [sym_enum] = ACTIONS(4492),
    [sym_export] = ACTIONS(4492),
    [sym_extern] = ACTIONS(4492),
    [sym_final] = ACTIONS(4492),
    [sym_immutable] = ACTIONS(4492),
    [sym_import] = ACTIONS(4492),
    [sym_inout] = ACTIONS(4492),
    [sym_interface] = ACTIONS(4492),
    [sym_invariant] = ACTIONS(4492),
    [sym_mixin] = ACTIONS(4492),
    [sym_nothrow] = ACTIONS(4492),
    [sym_override] = ACTIONS(4492),
    [sym_package] = ACTIONS(4492),
    [sym_pragma] = ACTIONS(4492),
    [sym_private] = ACTIONS(4492),
    [sym_protected] = ACTIONS(4492),
    [sym_public] = ACTIONS(4492),
    [sym_pure] = ACTIONS(4492),
    [sym_ref] = ACTIONS(4492),
    [sym_return] = ACTIONS(4492),
    [sym_scope] = ACTIONS(4492),
    [sym_shared] = ACTIONS(4492),
    [sym_static] = ACTIONS(4492),
    [sym_struct] = ACTIONS(4492),
    [sym_synchronized] = ACTIONS(4492),
    [sym_template] = ACTIONS(4492),
    [sym_typeof] = ACTIONS(4492),
    [sym_union] = ACTIONS(4492),
    [sym_unittest] = ACTIONS(4492),
    [sym_version] = ACTIONS(4492),
    [sym_while] = ACTIONS(4492),
    [sym_gshared] = ACTIONS(4492),
    [sym_traits] = ACTIONS(4492),
    [sym_vector] = ACTIONS(4492),
    [sym_void] = ACTIONS(4492),
    [sym_directive] = ACTIONS(3),
  },
  [2684] = {
    [ts_builtin_sym_end] = ACTIONS(4490),
    [sym_identifier] = ACTIONS(4488),
    [sym_end_file] = ACTIONS(4488),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4490),
    [anon_sym_SEMI] = ACTIONS(4490),
    [anon_sym_TILDE] = ACTIONS(4490),
    [anon_sym_AT] = ACTIONS(4490),
    [sym_bool] = ACTIONS(4488),
    [sym_byte] = ACTIONS(4488),
    [sym_ubyte] = ACTIONS(4488),
    [sym_char] = ACTIONS(4488),
    [sym_short] = ACTIONS(4488),
    [sym_ushort] = ACTIONS(4488),
    [sym_int] = ACTIONS(4488),
    [sym_uint] = ACTIONS(4488),
    [sym_long] = ACTIONS(4488),
    [sym_ulong] = ACTIONS(4488),
    [sym_cent] = ACTIONS(4488),
    [sym_ucent] = ACTIONS(4488),
    [sym_wchar] = ACTIONS(4488),
    [sym_dchar] = ACTIONS(4488),
    [sym_float] = ACTIONS(4488),
    [sym_double] = ACTIONS(4488),
    [sym_real] = ACTIONS(4488),
    [sym_ifloat] = ACTIONS(4488),
    [sym_idouble] = ACTIONS(4488),
    [sym_ireal] = ACTIONS(4488),
    [sym_cfloat] = ACTIONS(4488),
    [sym_cdouble] = ACTIONS(4488),
    [sym_creal] = ACTIONS(4488),
    [sym_size_t] = ACTIONS(4488),
    [sym_ptrdiff_t] = ACTIONS(4488),
    [sym_string] = ACTIONS(4488),
    [sym_cstring] = ACTIONS(4488),
    [sym_dstring] = ACTIONS(4488),
    [sym_wstring] = ACTIONS(4488),
    [sym_noreturn] = ACTIONS(4488),
    [sym_this] = ACTIONS(4488),
    [sym_abstract] = ACTIONS(4488),
    [sym_alias] = ACTIONS(4488),
    [sym_align] = ACTIONS(4488),
    [sym_auto] = ACTIONS(4488),
    [sym_class] = ACTIONS(4488),
    [sym_const] = ACTIONS(4488),
    [sym_debug] = ACTIONS(4488),
    [sym_deprecated] = ACTIONS(4488),
    [sym_else] = ACTIONS(4488),
    [sym_enum] = ACTIONS(4488),
    [sym_export] = ACTIONS(4488),
    [sym_extern] = ACTIONS(4488),
    [sym_final] = ACTIONS(4488),
    [sym_immutable] = ACTIONS(4488),
    [sym_import] = ACTIONS(4488),
    [sym_inout] = ACTIONS(4488),
    [sym_interface] = ACTIONS(4488),
    [sym_invariant] = ACTIONS(4488),
    [sym_mixin] = ACTIONS(4488),
    [sym_nothrow] = ACTIONS(4488),
    [sym_override] = ACTIONS(4488),
    [sym_package] = ACTIONS(4488),
    [sym_pragma] = ACTIONS(4488),
    [sym_private] = ACTIONS(4488),
    [sym_protected] = ACTIONS(4488),
    [sym_public] = ACTIONS(4488),
    [sym_pure] = ACTIONS(4488),
    [sym_ref] = ACTIONS(4488),
    [sym_return] = ACTIONS(4488),
    [sym_scope] = ACTIONS(4488),
    [sym_shared] = ACTIONS(4488),
    [sym_static] = ACTIONS(4488),
    [sym_struct] = ACTIONS(4488),
    [sym_synchronized] = ACTIONS(4488),
    [sym_template] = ACTIONS(4488),
    [sym_typeof] = ACTIONS(4488),
    [sym_union] = ACTIONS(4488),
    [sym_unittest] = ACTIONS(4488),
    [sym_version] = ACTIONS(4488),
    [sym_while] = ACTIONS(4488),
    [sym_gshared] = ACTIONS(4488),
    [sym_traits] = ACTIONS(4488),
    [sym_vector] = ACTIONS(4488),
    [sym_void] = ACTIONS(4488),
    [sym_directive] = ACTIONS(3),
  },
  [2685] = {
    [ts_builtin_sym_end] = ACTIONS(4540),
    [sym_identifier] = ACTIONS(4538),
    [sym_end_file] = ACTIONS(4538),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4540),
    [anon_sym_SEMI] = ACTIONS(4540),
    [anon_sym_TILDE] = ACTIONS(4540),
    [anon_sym_AT] = ACTIONS(4540),
    [sym_bool] = ACTIONS(4538),
    [sym_byte] = ACTIONS(4538),
    [sym_ubyte] = ACTIONS(4538),
    [sym_char] = ACTIONS(4538),
    [sym_short] = ACTIONS(4538),
    [sym_ushort] = ACTIONS(4538),
    [sym_int] = ACTIONS(4538),
    [sym_uint] = ACTIONS(4538),
    [sym_long] = ACTIONS(4538),
    [sym_ulong] = ACTIONS(4538),
    [sym_cent] = ACTIONS(4538),
    [sym_ucent] = ACTIONS(4538),
    [sym_wchar] = ACTIONS(4538),
    [sym_dchar] = ACTIONS(4538),
    [sym_float] = ACTIONS(4538),
    [sym_double] = ACTIONS(4538),
    [sym_real] = ACTIONS(4538),
    [sym_ifloat] = ACTIONS(4538),
    [sym_idouble] = ACTIONS(4538),
    [sym_ireal] = ACTIONS(4538),
    [sym_cfloat] = ACTIONS(4538),
    [sym_cdouble] = ACTIONS(4538),
    [sym_creal] = ACTIONS(4538),
    [sym_size_t] = ACTIONS(4538),
    [sym_ptrdiff_t] = ACTIONS(4538),
    [sym_string] = ACTIONS(4538),
    [sym_cstring] = ACTIONS(4538),
    [sym_dstring] = ACTIONS(4538),
    [sym_wstring] = ACTIONS(4538),
    [sym_noreturn] = ACTIONS(4538),
    [sym_this] = ACTIONS(4538),
    [sym_abstract] = ACTIONS(4538),
    [sym_alias] = ACTIONS(4538),
    [sym_align] = ACTIONS(4538),
    [sym_auto] = ACTIONS(4538),
    [sym_class] = ACTIONS(4538),
    [sym_const] = ACTIONS(4538),
    [sym_debug] = ACTIONS(4538),
    [sym_deprecated] = ACTIONS(4538),
    [sym_else] = ACTIONS(4538),
    [sym_enum] = ACTIONS(4538),
    [sym_export] = ACTIONS(4538),
    [sym_extern] = ACTIONS(4538),
    [sym_final] = ACTIONS(4538),
    [sym_immutable] = ACTIONS(4538),
    [sym_import] = ACTIONS(4538),
    [sym_inout] = ACTIONS(4538),
    [sym_interface] = ACTIONS(4538),
    [sym_invariant] = ACTIONS(4538),
    [sym_mixin] = ACTIONS(4538),
    [sym_nothrow] = ACTIONS(4538),
    [sym_override] = ACTIONS(4538),
    [sym_package] = ACTIONS(4538),
    [sym_pragma] = ACTIONS(4538),
    [sym_private] = ACTIONS(4538),
    [sym_protected] = ACTIONS(4538),
    [sym_public] = ACTIONS(4538),
    [sym_pure] = ACTIONS(4538),
    [sym_ref] = ACTIONS(4538),
    [sym_return] = ACTIONS(4538),
    [sym_scope] = ACTIONS(4538),
    [sym_shared] = ACTIONS(4538),
    [sym_static] = ACTIONS(4538),
    [sym_struct] = ACTIONS(4538),
    [sym_synchronized] = ACTIONS(4538),
    [sym_template] = ACTIONS(4538),
    [sym_typeof] = ACTIONS(4538),
    [sym_union] = ACTIONS(4538),
    [sym_unittest] = ACTIONS(4538),
    [sym_version] = ACTIONS(4538),
    [sym_while] = ACTIONS(4538),
    [sym_gshared] = ACTIONS(4538),
    [sym_traits] = ACTIONS(4538),
    [sym_vector] = ACTIONS(4538),
    [sym_void] = ACTIONS(4538),
    [sym_directive] = ACTIONS(3),
  },
  [2686] = {
    [ts_builtin_sym_end] = ACTIONS(4536),
    [sym_identifier] = ACTIONS(4534),
    [sym_end_file] = ACTIONS(4534),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4536),
    [anon_sym_SEMI] = ACTIONS(4536),
    [anon_sym_TILDE] = ACTIONS(4536),
    [anon_sym_AT] = ACTIONS(4536),
    [sym_bool] = ACTIONS(4534),
    [sym_byte] = ACTIONS(4534),
    [sym_ubyte] = ACTIONS(4534),
    [sym_char] = ACTIONS(4534),
    [sym_short] = ACTIONS(4534),
    [sym_ushort] = ACTIONS(4534),
    [sym_int] = ACTIONS(4534),
    [sym_uint] = ACTIONS(4534),
    [sym_long] = ACTIONS(4534),
    [sym_ulong] = ACTIONS(4534),
    [sym_cent] = ACTIONS(4534),
    [sym_ucent] = ACTIONS(4534),
    [sym_wchar] = ACTIONS(4534),
    [sym_dchar] = ACTIONS(4534),
    [sym_float] = ACTIONS(4534),
    [sym_double] = ACTIONS(4534),
    [sym_real] = ACTIONS(4534),
    [sym_ifloat] = ACTIONS(4534),
    [sym_idouble] = ACTIONS(4534),
    [sym_ireal] = ACTIONS(4534),
    [sym_cfloat] = ACTIONS(4534),
    [sym_cdouble] = ACTIONS(4534),
    [sym_creal] = ACTIONS(4534),
    [sym_size_t] = ACTIONS(4534),
    [sym_ptrdiff_t] = ACTIONS(4534),
    [sym_string] = ACTIONS(4534),
    [sym_cstring] = ACTIONS(4534),
    [sym_dstring] = ACTIONS(4534),
    [sym_wstring] = ACTIONS(4534),
    [sym_noreturn] = ACTIONS(4534),
    [sym_this] = ACTIONS(4534),
    [sym_abstract] = ACTIONS(4534),
    [sym_alias] = ACTIONS(4534),
    [sym_align] = ACTIONS(4534),
    [sym_auto] = ACTIONS(4534),
    [sym_class] = ACTIONS(4534),
    [sym_const] = ACTIONS(4534),
    [sym_debug] = ACTIONS(4534),
    [sym_deprecated] = ACTIONS(4534),
    [sym_else] = ACTIONS(4534),
    [sym_enum] = ACTIONS(4534),
    [sym_export] = ACTIONS(4534),
    [sym_extern] = ACTIONS(4534),
    [sym_final] = ACTIONS(4534),
    [sym_immutable] = ACTIONS(4534),
    [sym_import] = ACTIONS(4534),
    [sym_inout] = ACTIONS(4534),
    [sym_interface] = ACTIONS(4534),
    [sym_invariant] = ACTIONS(4534),
    [sym_mixin] = ACTIONS(4534),
    [sym_nothrow] = ACTIONS(4534),
    [sym_override] = ACTIONS(4534),
    [sym_package] = ACTIONS(4534),
    [sym_pragma] = ACTIONS(4534),
    [sym_private] = ACTIONS(4534),
    [sym_protected] = ACTIONS(4534),
    [sym_public] = ACTIONS(4534),
    [sym_pure] = ACTIONS(4534),
    [sym_ref] = ACTIONS(4534),
    [sym_return] = ACTIONS(4534),
    [sym_scope] = ACTIONS(4534),
    [sym_shared] = ACTIONS(4534),
    [sym_static] = ACTIONS(4534),
    [sym_struct] = ACTIONS(4534),
    [sym_synchronized] = ACTIONS(4534),
    [sym_template] = ACTIONS(4534),
    [sym_typeof] = ACTIONS(4534),
    [sym_union] = ACTIONS(4534),
    [sym_unittest] = ACTIONS(4534),
    [sym_version] = ACTIONS(4534),
    [sym_while] = ACTIONS(4534),
    [sym_gshared] = ACTIONS(4534),
    [sym_traits] = ACTIONS(4534),
    [sym_vector] = ACTIONS(4534),
    [sym_void] = ACTIONS(4534),
    [sym_directive] = ACTIONS(3),
  },
  [2687] = {
    [sym__parameter_with_member_attributes] = STATE(4895),
    [sym__parameters] = STATE(4651),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2688] = {
    [ts_builtin_sym_end] = ACTIONS(4486),
    [sym_identifier] = ACTIONS(4484),
    [sym_end_file] = ACTIONS(4484),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4486),
    [anon_sym_SEMI] = ACTIONS(4486),
    [anon_sym_TILDE] = ACTIONS(4486),
    [anon_sym_AT] = ACTIONS(4486),
    [sym_bool] = ACTIONS(4484),
    [sym_byte] = ACTIONS(4484),
    [sym_ubyte] = ACTIONS(4484),
    [sym_char] = ACTIONS(4484),
    [sym_short] = ACTIONS(4484),
    [sym_ushort] = ACTIONS(4484),
    [sym_int] = ACTIONS(4484),
    [sym_uint] = ACTIONS(4484),
    [sym_long] = ACTIONS(4484),
    [sym_ulong] = ACTIONS(4484),
    [sym_cent] = ACTIONS(4484),
    [sym_ucent] = ACTIONS(4484),
    [sym_wchar] = ACTIONS(4484),
    [sym_dchar] = ACTIONS(4484),
    [sym_float] = ACTIONS(4484),
    [sym_double] = ACTIONS(4484),
    [sym_real] = ACTIONS(4484),
    [sym_ifloat] = ACTIONS(4484),
    [sym_idouble] = ACTIONS(4484),
    [sym_ireal] = ACTIONS(4484),
    [sym_cfloat] = ACTIONS(4484),
    [sym_cdouble] = ACTIONS(4484),
    [sym_creal] = ACTIONS(4484),
    [sym_size_t] = ACTIONS(4484),
    [sym_ptrdiff_t] = ACTIONS(4484),
    [sym_string] = ACTIONS(4484),
    [sym_cstring] = ACTIONS(4484),
    [sym_dstring] = ACTIONS(4484),
    [sym_wstring] = ACTIONS(4484),
    [sym_noreturn] = ACTIONS(4484),
    [sym_this] = ACTIONS(4484),
    [sym_abstract] = ACTIONS(4484),
    [sym_alias] = ACTIONS(4484),
    [sym_align] = ACTIONS(4484),
    [sym_auto] = ACTIONS(4484),
    [sym_class] = ACTIONS(4484),
    [sym_const] = ACTIONS(4484),
    [sym_debug] = ACTIONS(4484),
    [sym_deprecated] = ACTIONS(4484),
    [sym_else] = ACTIONS(4484),
    [sym_enum] = ACTIONS(4484),
    [sym_export] = ACTIONS(4484),
    [sym_extern] = ACTIONS(4484),
    [sym_final] = ACTIONS(4484),
    [sym_immutable] = ACTIONS(4484),
    [sym_import] = ACTIONS(4484),
    [sym_inout] = ACTIONS(4484),
    [sym_interface] = ACTIONS(4484),
    [sym_invariant] = ACTIONS(4484),
    [sym_mixin] = ACTIONS(4484),
    [sym_nothrow] = ACTIONS(4484),
    [sym_override] = ACTIONS(4484),
    [sym_package] = ACTIONS(4484),
    [sym_pragma] = ACTIONS(4484),
    [sym_private] = ACTIONS(4484),
    [sym_protected] = ACTIONS(4484),
    [sym_public] = ACTIONS(4484),
    [sym_pure] = ACTIONS(4484),
    [sym_ref] = ACTIONS(4484),
    [sym_return] = ACTIONS(4484),
    [sym_scope] = ACTIONS(4484),
    [sym_shared] = ACTIONS(4484),
    [sym_static] = ACTIONS(4484),
    [sym_struct] = ACTIONS(4484),
    [sym_synchronized] = ACTIONS(4484),
    [sym_template] = ACTIONS(4484),
    [sym_typeof] = ACTIONS(4484),
    [sym_union] = ACTIONS(4484),
    [sym_unittest] = ACTIONS(4484),
    [sym_version] = ACTIONS(4484),
    [sym_while] = ACTIONS(4484),
    [sym_gshared] = ACTIONS(4484),
    [sym_traits] = ACTIONS(4484),
    [sym_vector] = ACTIONS(4484),
    [sym_void] = ACTIONS(4484),
    [sym_directive] = ACTIONS(3),
  },
  [2689] = {
    [ts_builtin_sym_end] = ACTIONS(4522),
    [sym_identifier] = ACTIONS(4520),
    [sym_end_file] = ACTIONS(4520),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4522),
    [anon_sym_SEMI] = ACTIONS(4522),
    [anon_sym_TILDE] = ACTIONS(4522),
    [anon_sym_AT] = ACTIONS(4522),
    [sym_bool] = ACTIONS(4520),
    [sym_byte] = ACTIONS(4520),
    [sym_ubyte] = ACTIONS(4520),
    [sym_char] = ACTIONS(4520),
    [sym_short] = ACTIONS(4520),
    [sym_ushort] = ACTIONS(4520),
    [sym_int] = ACTIONS(4520),
    [sym_uint] = ACTIONS(4520),
    [sym_long] = ACTIONS(4520),
    [sym_ulong] = ACTIONS(4520),
    [sym_cent] = ACTIONS(4520),
    [sym_ucent] = ACTIONS(4520),
    [sym_wchar] = ACTIONS(4520),
    [sym_dchar] = ACTIONS(4520),
    [sym_float] = ACTIONS(4520),
    [sym_double] = ACTIONS(4520),
    [sym_real] = ACTIONS(4520),
    [sym_ifloat] = ACTIONS(4520),
    [sym_idouble] = ACTIONS(4520),
    [sym_ireal] = ACTIONS(4520),
    [sym_cfloat] = ACTIONS(4520),
    [sym_cdouble] = ACTIONS(4520),
    [sym_creal] = ACTIONS(4520),
    [sym_size_t] = ACTIONS(4520),
    [sym_ptrdiff_t] = ACTIONS(4520),
    [sym_string] = ACTIONS(4520),
    [sym_cstring] = ACTIONS(4520),
    [sym_dstring] = ACTIONS(4520),
    [sym_wstring] = ACTIONS(4520),
    [sym_noreturn] = ACTIONS(4520),
    [sym_this] = ACTIONS(4520),
    [sym_abstract] = ACTIONS(4520),
    [sym_alias] = ACTIONS(4520),
    [sym_align] = ACTIONS(4520),
    [sym_auto] = ACTIONS(4520),
    [sym_class] = ACTIONS(4520),
    [sym_const] = ACTIONS(4520),
    [sym_debug] = ACTIONS(4520),
    [sym_deprecated] = ACTIONS(4520),
    [sym_else] = ACTIONS(4520),
    [sym_enum] = ACTIONS(4520),
    [sym_export] = ACTIONS(4520),
    [sym_extern] = ACTIONS(4520),
    [sym_final] = ACTIONS(4520),
    [sym_immutable] = ACTIONS(4520),
    [sym_import] = ACTIONS(4520),
    [sym_inout] = ACTIONS(4520),
    [sym_interface] = ACTIONS(4520),
    [sym_invariant] = ACTIONS(4520),
    [sym_mixin] = ACTIONS(4520),
    [sym_nothrow] = ACTIONS(4520),
    [sym_override] = ACTIONS(4520),
    [sym_package] = ACTIONS(4520),
    [sym_pragma] = ACTIONS(4520),
    [sym_private] = ACTIONS(4520),
    [sym_protected] = ACTIONS(4520),
    [sym_public] = ACTIONS(4520),
    [sym_pure] = ACTIONS(4520),
    [sym_ref] = ACTIONS(4520),
    [sym_return] = ACTIONS(4520),
    [sym_scope] = ACTIONS(4520),
    [sym_shared] = ACTIONS(4520),
    [sym_static] = ACTIONS(4520),
    [sym_struct] = ACTIONS(4520),
    [sym_synchronized] = ACTIONS(4520),
    [sym_template] = ACTIONS(4520),
    [sym_typeof] = ACTIONS(4520),
    [sym_union] = ACTIONS(4520),
    [sym_unittest] = ACTIONS(4520),
    [sym_version] = ACTIONS(4520),
    [sym_while] = ACTIONS(4520),
    [sym_gshared] = ACTIONS(4520),
    [sym_traits] = ACTIONS(4520),
    [sym_vector] = ACTIONS(4520),
    [sym_void] = ACTIONS(4520),
    [sym_directive] = ACTIONS(3),
  },
  [2690] = {
    [ts_builtin_sym_end] = ACTIONS(2643),
    [sym_identifier] = ACTIONS(2645),
    [sym_end_file] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2643),
    [anon_sym_AT] = ACTIONS(2643),
    [sym_bool] = ACTIONS(2645),
    [sym_byte] = ACTIONS(2645),
    [sym_ubyte] = ACTIONS(2645),
    [sym_char] = ACTIONS(2645),
    [sym_short] = ACTIONS(2645),
    [sym_ushort] = ACTIONS(2645),
    [sym_int] = ACTIONS(2645),
    [sym_uint] = ACTIONS(2645),
    [sym_long] = ACTIONS(2645),
    [sym_ulong] = ACTIONS(2645),
    [sym_cent] = ACTIONS(2645),
    [sym_ucent] = ACTIONS(2645),
    [sym_wchar] = ACTIONS(2645),
    [sym_dchar] = ACTIONS(2645),
    [sym_float] = ACTIONS(2645),
    [sym_double] = ACTIONS(2645),
    [sym_real] = ACTIONS(2645),
    [sym_ifloat] = ACTIONS(2645),
    [sym_idouble] = ACTIONS(2645),
    [sym_ireal] = ACTIONS(2645),
    [sym_cfloat] = ACTIONS(2645),
    [sym_cdouble] = ACTIONS(2645),
    [sym_creal] = ACTIONS(2645),
    [sym_size_t] = ACTIONS(2645),
    [sym_ptrdiff_t] = ACTIONS(2645),
    [sym_string] = ACTIONS(2645),
    [sym_cstring] = ACTIONS(2645),
    [sym_dstring] = ACTIONS(2645),
    [sym_wstring] = ACTIONS(2645),
    [sym_noreturn] = ACTIONS(2645),
    [sym_this] = ACTIONS(2645),
    [sym_abstract] = ACTIONS(2645),
    [sym_alias] = ACTIONS(2645),
    [sym_align] = ACTIONS(2645),
    [sym_auto] = ACTIONS(2645),
    [sym_class] = ACTIONS(2645),
    [sym_const] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(2645),
    [sym_export] = ACTIONS(2645),
    [sym_extern] = ACTIONS(2645),
    [sym_final] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(2645),
    [sym_import] = ACTIONS(2645),
    [sym_inout] = ACTIONS(2645),
    [sym_interface] = ACTIONS(2645),
    [sym_invariant] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(2645),
    [sym_override] = ACTIONS(2645),
    [sym_package] = ACTIONS(2645),
    [sym_pragma] = ACTIONS(2645),
    [sym_private] = ACTIONS(2645),
    [sym_protected] = ACTIONS(2645),
    [sym_public] = ACTIONS(2645),
    [sym_pure] = ACTIONS(2645),
    [sym_ref] = ACTIONS(2645),
    [sym_return] = ACTIONS(2645),
    [sym_scope] = ACTIONS(2645),
    [sym_shared] = ACTIONS(2645),
    [sym_static] = ACTIONS(2645),
    [sym_struct] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(2645),
    [sym_template] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(2645),
    [sym_union] = ACTIONS(2645),
    [sym_unittest] = ACTIONS(2645),
    [sym_version] = ACTIONS(2645),
    [sym_while] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(2645),
    [sym_traits] = ACTIONS(2645),
    [sym_vector] = ACTIONS(2645),
    [sym_void] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
  },
  [2691] = {
    [ts_builtin_sym_end] = ACTIONS(4478),
    [sym_identifier] = ACTIONS(4476),
    [sym_end_file] = ACTIONS(4476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4478),
    [anon_sym_SEMI] = ACTIONS(4478),
    [anon_sym_TILDE] = ACTIONS(4478),
    [anon_sym_AT] = ACTIONS(4478),
    [sym_bool] = ACTIONS(4476),
    [sym_byte] = ACTIONS(4476),
    [sym_ubyte] = ACTIONS(4476),
    [sym_char] = ACTIONS(4476),
    [sym_short] = ACTIONS(4476),
    [sym_ushort] = ACTIONS(4476),
    [sym_int] = ACTIONS(4476),
    [sym_uint] = ACTIONS(4476),
    [sym_long] = ACTIONS(4476),
    [sym_ulong] = ACTIONS(4476),
    [sym_cent] = ACTIONS(4476),
    [sym_ucent] = ACTIONS(4476),
    [sym_wchar] = ACTIONS(4476),
    [sym_dchar] = ACTIONS(4476),
    [sym_float] = ACTIONS(4476),
    [sym_double] = ACTIONS(4476),
    [sym_real] = ACTIONS(4476),
    [sym_ifloat] = ACTIONS(4476),
    [sym_idouble] = ACTIONS(4476),
    [sym_ireal] = ACTIONS(4476),
    [sym_cfloat] = ACTIONS(4476),
    [sym_cdouble] = ACTIONS(4476),
    [sym_creal] = ACTIONS(4476),
    [sym_size_t] = ACTIONS(4476),
    [sym_ptrdiff_t] = ACTIONS(4476),
    [sym_string] = ACTIONS(4476),
    [sym_cstring] = ACTIONS(4476),
    [sym_dstring] = ACTIONS(4476),
    [sym_wstring] = ACTIONS(4476),
    [sym_noreturn] = ACTIONS(4476),
    [sym_this] = ACTIONS(4476),
    [sym_abstract] = ACTIONS(4476),
    [sym_alias] = ACTIONS(4476),
    [sym_align] = ACTIONS(4476),
    [sym_auto] = ACTIONS(4476),
    [sym_class] = ACTIONS(4476),
    [sym_const] = ACTIONS(4476),
    [sym_debug] = ACTIONS(4476),
    [sym_deprecated] = ACTIONS(4476),
    [sym_else] = ACTIONS(4476),
    [sym_enum] = ACTIONS(4476),
    [sym_export] = ACTIONS(4476),
    [sym_extern] = ACTIONS(4476),
    [sym_final] = ACTIONS(4476),
    [sym_immutable] = ACTIONS(4476),
    [sym_import] = ACTIONS(4476),
    [sym_inout] = ACTIONS(4476),
    [sym_interface] = ACTIONS(4476),
    [sym_invariant] = ACTIONS(4476),
    [sym_mixin] = ACTIONS(4476),
    [sym_nothrow] = ACTIONS(4476),
    [sym_override] = ACTIONS(4476),
    [sym_package] = ACTIONS(4476),
    [sym_pragma] = ACTIONS(4476),
    [sym_private] = ACTIONS(4476),
    [sym_protected] = ACTIONS(4476),
    [sym_public] = ACTIONS(4476),
    [sym_pure] = ACTIONS(4476),
    [sym_ref] = ACTIONS(4476),
    [sym_return] = ACTIONS(4476),
    [sym_scope] = ACTIONS(4476),
    [sym_shared] = ACTIONS(4476),
    [sym_static] = ACTIONS(4476),
    [sym_struct] = ACTIONS(4476),
    [sym_synchronized] = ACTIONS(4476),
    [sym_template] = ACTIONS(4476),
    [sym_typeof] = ACTIONS(4476),
    [sym_union] = ACTIONS(4476),
    [sym_unittest] = ACTIONS(4476),
    [sym_version] = ACTIONS(4476),
    [sym_while] = ACTIONS(4476),
    [sym_gshared] = ACTIONS(4476),
    [sym_traits] = ACTIONS(4476),
    [sym_vector] = ACTIONS(4476),
    [sym_void] = ACTIONS(4476),
    [sym_directive] = ACTIONS(3),
  },
  [2692] = {
    [ts_builtin_sym_end] = ACTIONS(4470),
    [sym_identifier] = ACTIONS(4468),
    [sym_end_file] = ACTIONS(4468),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4470),
    [anon_sym_SEMI] = ACTIONS(4470),
    [anon_sym_TILDE] = ACTIONS(4470),
    [anon_sym_AT] = ACTIONS(4470),
    [sym_bool] = ACTIONS(4468),
    [sym_byte] = ACTIONS(4468),
    [sym_ubyte] = ACTIONS(4468),
    [sym_char] = ACTIONS(4468),
    [sym_short] = ACTIONS(4468),
    [sym_ushort] = ACTIONS(4468),
    [sym_int] = ACTIONS(4468),
    [sym_uint] = ACTIONS(4468),
    [sym_long] = ACTIONS(4468),
    [sym_ulong] = ACTIONS(4468),
    [sym_cent] = ACTIONS(4468),
    [sym_ucent] = ACTIONS(4468),
    [sym_wchar] = ACTIONS(4468),
    [sym_dchar] = ACTIONS(4468),
    [sym_float] = ACTIONS(4468),
    [sym_double] = ACTIONS(4468),
    [sym_real] = ACTIONS(4468),
    [sym_ifloat] = ACTIONS(4468),
    [sym_idouble] = ACTIONS(4468),
    [sym_ireal] = ACTIONS(4468),
    [sym_cfloat] = ACTIONS(4468),
    [sym_cdouble] = ACTIONS(4468),
    [sym_creal] = ACTIONS(4468),
    [sym_size_t] = ACTIONS(4468),
    [sym_ptrdiff_t] = ACTIONS(4468),
    [sym_string] = ACTIONS(4468),
    [sym_cstring] = ACTIONS(4468),
    [sym_dstring] = ACTIONS(4468),
    [sym_wstring] = ACTIONS(4468),
    [sym_noreturn] = ACTIONS(4468),
    [sym_this] = ACTIONS(4468),
    [sym_abstract] = ACTIONS(4468),
    [sym_alias] = ACTIONS(4468),
    [sym_align] = ACTIONS(4468),
    [sym_auto] = ACTIONS(4468),
    [sym_class] = ACTIONS(4468),
    [sym_const] = ACTIONS(4468),
    [sym_debug] = ACTIONS(4468),
    [sym_deprecated] = ACTIONS(4468),
    [sym_else] = ACTIONS(4468),
    [sym_enum] = ACTIONS(4468),
    [sym_export] = ACTIONS(4468),
    [sym_extern] = ACTIONS(4468),
    [sym_final] = ACTIONS(4468),
    [sym_immutable] = ACTIONS(4468),
    [sym_import] = ACTIONS(4468),
    [sym_inout] = ACTIONS(4468),
    [sym_interface] = ACTIONS(4468),
    [sym_invariant] = ACTIONS(4468),
    [sym_mixin] = ACTIONS(4468),
    [sym_nothrow] = ACTIONS(4468),
    [sym_override] = ACTIONS(4468),
    [sym_package] = ACTIONS(4468),
    [sym_pragma] = ACTIONS(4468),
    [sym_private] = ACTIONS(4468),
    [sym_protected] = ACTIONS(4468),
    [sym_public] = ACTIONS(4468),
    [sym_pure] = ACTIONS(4468),
    [sym_ref] = ACTIONS(4468),
    [sym_return] = ACTIONS(4468),
    [sym_scope] = ACTIONS(4468),
    [sym_shared] = ACTIONS(4468),
    [sym_static] = ACTIONS(4468),
    [sym_struct] = ACTIONS(4468),
    [sym_synchronized] = ACTIONS(4468),
    [sym_template] = ACTIONS(4468),
    [sym_typeof] = ACTIONS(4468),
    [sym_union] = ACTIONS(4468),
    [sym_unittest] = ACTIONS(4468),
    [sym_version] = ACTIONS(4468),
    [sym_while] = ACTIONS(4468),
    [sym_gshared] = ACTIONS(4468),
    [sym_traits] = ACTIONS(4468),
    [sym_vector] = ACTIONS(4468),
    [sym_void] = ACTIONS(4468),
    [sym_directive] = ACTIONS(3),
  },
  [2693] = {
    [ts_builtin_sym_end] = ACTIONS(4462),
    [sym_identifier] = ACTIONS(4460),
    [sym_end_file] = ACTIONS(4460),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4462),
    [anon_sym_SEMI] = ACTIONS(4462),
    [anon_sym_TILDE] = ACTIONS(4462),
    [anon_sym_AT] = ACTIONS(4462),
    [sym_bool] = ACTIONS(4460),
    [sym_byte] = ACTIONS(4460),
    [sym_ubyte] = ACTIONS(4460),
    [sym_char] = ACTIONS(4460),
    [sym_short] = ACTIONS(4460),
    [sym_ushort] = ACTIONS(4460),
    [sym_int] = ACTIONS(4460),
    [sym_uint] = ACTIONS(4460),
    [sym_long] = ACTIONS(4460),
    [sym_ulong] = ACTIONS(4460),
    [sym_cent] = ACTIONS(4460),
    [sym_ucent] = ACTIONS(4460),
    [sym_wchar] = ACTIONS(4460),
    [sym_dchar] = ACTIONS(4460),
    [sym_float] = ACTIONS(4460),
    [sym_double] = ACTIONS(4460),
    [sym_real] = ACTIONS(4460),
    [sym_ifloat] = ACTIONS(4460),
    [sym_idouble] = ACTIONS(4460),
    [sym_ireal] = ACTIONS(4460),
    [sym_cfloat] = ACTIONS(4460),
    [sym_cdouble] = ACTIONS(4460),
    [sym_creal] = ACTIONS(4460),
    [sym_size_t] = ACTIONS(4460),
    [sym_ptrdiff_t] = ACTIONS(4460),
    [sym_string] = ACTIONS(4460),
    [sym_cstring] = ACTIONS(4460),
    [sym_dstring] = ACTIONS(4460),
    [sym_wstring] = ACTIONS(4460),
    [sym_noreturn] = ACTIONS(4460),
    [sym_this] = ACTIONS(4460),
    [sym_abstract] = ACTIONS(4460),
    [sym_alias] = ACTIONS(4460),
    [sym_align] = ACTIONS(4460),
    [sym_auto] = ACTIONS(4460),
    [sym_class] = ACTIONS(4460),
    [sym_const] = ACTIONS(4460),
    [sym_debug] = ACTIONS(4460),
    [sym_deprecated] = ACTIONS(4460),
    [sym_else] = ACTIONS(4460),
    [sym_enum] = ACTIONS(4460),
    [sym_export] = ACTIONS(4460),
    [sym_extern] = ACTIONS(4460),
    [sym_final] = ACTIONS(4460),
    [sym_immutable] = ACTIONS(4460),
    [sym_import] = ACTIONS(4460),
    [sym_inout] = ACTIONS(4460),
    [sym_interface] = ACTIONS(4460),
    [sym_invariant] = ACTIONS(4460),
    [sym_mixin] = ACTIONS(4460),
    [sym_nothrow] = ACTIONS(4460),
    [sym_override] = ACTIONS(4460),
    [sym_package] = ACTIONS(4460),
    [sym_pragma] = ACTIONS(4460),
    [sym_private] = ACTIONS(4460),
    [sym_protected] = ACTIONS(4460),
    [sym_public] = ACTIONS(4460),
    [sym_pure] = ACTIONS(4460),
    [sym_ref] = ACTIONS(4460),
    [sym_return] = ACTIONS(4460),
    [sym_scope] = ACTIONS(4460),
    [sym_shared] = ACTIONS(4460),
    [sym_static] = ACTIONS(4460),
    [sym_struct] = ACTIONS(4460),
    [sym_synchronized] = ACTIONS(4460),
    [sym_template] = ACTIONS(4460),
    [sym_typeof] = ACTIONS(4460),
    [sym_union] = ACTIONS(4460),
    [sym_unittest] = ACTIONS(4460),
    [sym_version] = ACTIONS(4460),
    [sym_while] = ACTIONS(4460),
    [sym_gshared] = ACTIONS(4460),
    [sym_traits] = ACTIONS(4460),
    [sym_vector] = ACTIONS(4460),
    [sym_void] = ACTIONS(4460),
    [sym_directive] = ACTIONS(3),
  },
  [2694] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(6785),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5125),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
  },
  [2695] = {
    [ts_builtin_sym_end] = ACTIONS(4726),
    [sym_identifier] = ACTIONS(4724),
    [sym_end_file] = ACTIONS(4724),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4726),
    [anon_sym_SEMI] = ACTIONS(4726),
    [anon_sym_TILDE] = ACTIONS(4726),
    [anon_sym_AT] = ACTIONS(4726),
    [sym_bool] = ACTIONS(4724),
    [sym_byte] = ACTIONS(4724),
    [sym_ubyte] = ACTIONS(4724),
    [sym_char] = ACTIONS(4724),
    [sym_short] = ACTIONS(4724),
    [sym_ushort] = ACTIONS(4724),
    [sym_int] = ACTIONS(4724),
    [sym_uint] = ACTIONS(4724),
    [sym_long] = ACTIONS(4724),
    [sym_ulong] = ACTIONS(4724),
    [sym_cent] = ACTIONS(4724),
    [sym_ucent] = ACTIONS(4724),
    [sym_wchar] = ACTIONS(4724),
    [sym_dchar] = ACTIONS(4724),
    [sym_float] = ACTIONS(4724),
    [sym_double] = ACTIONS(4724),
    [sym_real] = ACTIONS(4724),
    [sym_ifloat] = ACTIONS(4724),
    [sym_idouble] = ACTIONS(4724),
    [sym_ireal] = ACTIONS(4724),
    [sym_cfloat] = ACTIONS(4724),
    [sym_cdouble] = ACTIONS(4724),
    [sym_creal] = ACTIONS(4724),
    [sym_size_t] = ACTIONS(4724),
    [sym_ptrdiff_t] = ACTIONS(4724),
    [sym_string] = ACTIONS(4724),
    [sym_cstring] = ACTIONS(4724),
    [sym_dstring] = ACTIONS(4724),
    [sym_wstring] = ACTIONS(4724),
    [sym_noreturn] = ACTIONS(4724),
    [sym_this] = ACTIONS(4724),
    [sym_abstract] = ACTIONS(4724),
    [sym_alias] = ACTIONS(4724),
    [sym_align] = ACTIONS(4724),
    [sym_auto] = ACTIONS(4724),
    [sym_class] = ACTIONS(4724),
    [sym_const] = ACTIONS(4724),
    [sym_debug] = ACTIONS(4724),
    [sym_deprecated] = ACTIONS(4724),
    [sym_else] = ACTIONS(4724),
    [sym_enum] = ACTIONS(4724),
    [sym_export] = ACTIONS(4724),
    [sym_extern] = ACTIONS(4724),
    [sym_final] = ACTIONS(4724),
    [sym_immutable] = ACTIONS(4724),
    [sym_import] = ACTIONS(4724),
    [sym_inout] = ACTIONS(4724),
    [sym_interface] = ACTIONS(4724),
    [sym_invariant] = ACTIONS(4724),
    [sym_mixin] = ACTIONS(4724),
    [sym_nothrow] = ACTIONS(4724),
    [sym_override] = ACTIONS(4724),
    [sym_package] = ACTIONS(4724),
    [sym_pragma] = ACTIONS(4724),
    [sym_private] = ACTIONS(4724),
    [sym_protected] = ACTIONS(4724),
    [sym_public] = ACTIONS(4724),
    [sym_pure] = ACTIONS(4724),
    [sym_ref] = ACTIONS(4724),
    [sym_return] = ACTIONS(4724),
    [sym_scope] = ACTIONS(4724),
    [sym_shared] = ACTIONS(4724),
    [sym_static] = ACTIONS(4724),
    [sym_struct] = ACTIONS(4724),
    [sym_synchronized] = ACTIONS(4724),
    [sym_template] = ACTIONS(4724),
    [sym_typeof] = ACTIONS(4724),
    [sym_union] = ACTIONS(4724),
    [sym_unittest] = ACTIONS(4724),
    [sym_version] = ACTIONS(4724),
    [sym_while] = ACTIONS(4724),
    [sym_gshared] = ACTIONS(4724),
    [sym_traits] = ACTIONS(4724),
    [sym_vector] = ACTIONS(4724),
    [sym_void] = ACTIONS(4724),
    [sym_directive] = ACTIONS(3),
  },
  [2696] = {
    [ts_builtin_sym_end] = ACTIONS(4482),
    [sym_identifier] = ACTIONS(4480),
    [sym_end_file] = ACTIONS(4480),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4482),
    [anon_sym_SEMI] = ACTIONS(4482),
    [anon_sym_TILDE] = ACTIONS(4482),
    [anon_sym_AT] = ACTIONS(4482),
    [sym_bool] = ACTIONS(4480),
    [sym_byte] = ACTIONS(4480),
    [sym_ubyte] = ACTIONS(4480),
    [sym_char] = ACTIONS(4480),
    [sym_short] = ACTIONS(4480),
    [sym_ushort] = ACTIONS(4480),
    [sym_int] = ACTIONS(4480),
    [sym_uint] = ACTIONS(4480),
    [sym_long] = ACTIONS(4480),
    [sym_ulong] = ACTIONS(4480),
    [sym_cent] = ACTIONS(4480),
    [sym_ucent] = ACTIONS(4480),
    [sym_wchar] = ACTIONS(4480),
    [sym_dchar] = ACTIONS(4480),
    [sym_float] = ACTIONS(4480),
    [sym_double] = ACTIONS(4480),
    [sym_real] = ACTIONS(4480),
    [sym_ifloat] = ACTIONS(4480),
    [sym_idouble] = ACTIONS(4480),
    [sym_ireal] = ACTIONS(4480),
    [sym_cfloat] = ACTIONS(4480),
    [sym_cdouble] = ACTIONS(4480),
    [sym_creal] = ACTIONS(4480),
    [sym_size_t] = ACTIONS(4480),
    [sym_ptrdiff_t] = ACTIONS(4480),
    [sym_string] = ACTIONS(4480),
    [sym_cstring] = ACTIONS(4480),
    [sym_dstring] = ACTIONS(4480),
    [sym_wstring] = ACTIONS(4480),
    [sym_noreturn] = ACTIONS(4480),
    [sym_this] = ACTIONS(4480),
    [sym_abstract] = ACTIONS(4480),
    [sym_alias] = ACTIONS(4480),
    [sym_align] = ACTIONS(4480),
    [sym_auto] = ACTIONS(4480),
    [sym_class] = ACTIONS(4480),
    [sym_const] = ACTIONS(4480),
    [sym_debug] = ACTIONS(4480),
    [sym_deprecated] = ACTIONS(4480),
    [sym_else] = ACTIONS(4480),
    [sym_enum] = ACTIONS(4480),
    [sym_export] = ACTIONS(4480),
    [sym_extern] = ACTIONS(4480),
    [sym_final] = ACTIONS(4480),
    [sym_immutable] = ACTIONS(4480),
    [sym_import] = ACTIONS(4480),
    [sym_inout] = ACTIONS(4480),
    [sym_interface] = ACTIONS(4480),
    [sym_invariant] = ACTIONS(4480),
    [sym_mixin] = ACTIONS(4480),
    [sym_nothrow] = ACTIONS(4480),
    [sym_override] = ACTIONS(4480),
    [sym_package] = ACTIONS(4480),
    [sym_pragma] = ACTIONS(4480),
    [sym_private] = ACTIONS(4480),
    [sym_protected] = ACTIONS(4480),
    [sym_public] = ACTIONS(4480),
    [sym_pure] = ACTIONS(4480),
    [sym_ref] = ACTIONS(4480),
    [sym_return] = ACTIONS(4480),
    [sym_scope] = ACTIONS(4480),
    [sym_shared] = ACTIONS(4480),
    [sym_static] = ACTIONS(4480),
    [sym_struct] = ACTIONS(4480),
    [sym_synchronized] = ACTIONS(4480),
    [sym_template] = ACTIONS(4480),
    [sym_typeof] = ACTIONS(4480),
    [sym_union] = ACTIONS(4480),
    [sym_unittest] = ACTIONS(4480),
    [sym_version] = ACTIONS(4480),
    [sym_while] = ACTIONS(4480),
    [sym_gshared] = ACTIONS(4480),
    [sym_traits] = ACTIONS(4480),
    [sym_vector] = ACTIONS(4480),
    [sym_void] = ACTIONS(4480),
    [sym_directive] = ACTIONS(3),
  },
  [2697] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(6785),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(6789),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
  },
  [2698] = {
    [ts_builtin_sym_end] = ACTIONS(4938),
    [sym_identifier] = ACTIONS(4936),
    [sym_end_file] = ACTIONS(4936),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4938),
    [anon_sym_SEMI] = ACTIONS(4938),
    [anon_sym_TILDE] = ACTIONS(4938),
    [anon_sym_AT] = ACTIONS(4938),
    [sym_bool] = ACTIONS(4936),
    [sym_byte] = ACTIONS(4936),
    [sym_ubyte] = ACTIONS(4936),
    [sym_char] = ACTIONS(4936),
    [sym_short] = ACTIONS(4936),
    [sym_ushort] = ACTIONS(4936),
    [sym_int] = ACTIONS(4936),
    [sym_uint] = ACTIONS(4936),
    [sym_long] = ACTIONS(4936),
    [sym_ulong] = ACTIONS(4936),
    [sym_cent] = ACTIONS(4936),
    [sym_ucent] = ACTIONS(4936),
    [sym_wchar] = ACTIONS(4936),
    [sym_dchar] = ACTIONS(4936),
    [sym_float] = ACTIONS(4936),
    [sym_double] = ACTIONS(4936),
    [sym_real] = ACTIONS(4936),
    [sym_ifloat] = ACTIONS(4936),
    [sym_idouble] = ACTIONS(4936),
    [sym_ireal] = ACTIONS(4936),
    [sym_cfloat] = ACTIONS(4936),
    [sym_cdouble] = ACTIONS(4936),
    [sym_creal] = ACTIONS(4936),
    [sym_size_t] = ACTIONS(4936),
    [sym_ptrdiff_t] = ACTIONS(4936),
    [sym_string] = ACTIONS(4936),
    [sym_cstring] = ACTIONS(4936),
    [sym_dstring] = ACTIONS(4936),
    [sym_wstring] = ACTIONS(4936),
    [sym_noreturn] = ACTIONS(4936),
    [sym_this] = ACTIONS(4936),
    [sym_abstract] = ACTIONS(4936),
    [sym_alias] = ACTIONS(4936),
    [sym_align] = ACTIONS(4936),
    [sym_auto] = ACTIONS(4936),
    [sym_class] = ACTIONS(4936),
    [sym_const] = ACTIONS(4936),
    [sym_debug] = ACTIONS(4936),
    [sym_deprecated] = ACTIONS(4936),
    [sym_else] = ACTIONS(4936),
    [sym_enum] = ACTIONS(4936),
    [sym_export] = ACTIONS(4936),
    [sym_extern] = ACTIONS(4936),
    [sym_final] = ACTIONS(4936),
    [sym_immutable] = ACTIONS(4936),
    [sym_import] = ACTIONS(4936),
    [sym_inout] = ACTIONS(4936),
    [sym_interface] = ACTIONS(4936),
    [sym_invariant] = ACTIONS(4936),
    [sym_mixin] = ACTIONS(4936),
    [sym_nothrow] = ACTIONS(4936),
    [sym_override] = ACTIONS(4936),
    [sym_package] = ACTIONS(4936),
    [sym_pragma] = ACTIONS(4936),
    [sym_private] = ACTIONS(4936),
    [sym_protected] = ACTIONS(4936),
    [sym_public] = ACTIONS(4936),
    [sym_pure] = ACTIONS(4936),
    [sym_ref] = ACTIONS(4936),
    [sym_return] = ACTIONS(4936),
    [sym_scope] = ACTIONS(4936),
    [sym_shared] = ACTIONS(4936),
    [sym_static] = ACTIONS(4936),
    [sym_struct] = ACTIONS(4936),
    [sym_synchronized] = ACTIONS(4936),
    [sym_template] = ACTIONS(4936),
    [sym_typeof] = ACTIONS(4936),
    [sym_union] = ACTIONS(4936),
    [sym_unittest] = ACTIONS(4936),
    [sym_version] = ACTIONS(4936),
    [sym_while] = ACTIONS(4936),
    [sym_gshared] = ACTIONS(4936),
    [sym_traits] = ACTIONS(4936),
    [sym_vector] = ACTIONS(4936),
    [sym_void] = ACTIONS(4936),
    [sym_directive] = ACTIONS(3),
  },
  [2699] = {
    [ts_builtin_sym_end] = ACTIONS(4436),
    [sym_identifier] = ACTIONS(4434),
    [sym_end_file] = ACTIONS(4434),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4436),
    [anon_sym_SEMI] = ACTIONS(4436),
    [anon_sym_TILDE] = ACTIONS(4436),
    [anon_sym_AT] = ACTIONS(4436),
    [sym_bool] = ACTIONS(4434),
    [sym_byte] = ACTIONS(4434),
    [sym_ubyte] = ACTIONS(4434),
    [sym_char] = ACTIONS(4434),
    [sym_short] = ACTIONS(4434),
    [sym_ushort] = ACTIONS(4434),
    [sym_int] = ACTIONS(4434),
    [sym_uint] = ACTIONS(4434),
    [sym_long] = ACTIONS(4434),
    [sym_ulong] = ACTIONS(4434),
    [sym_cent] = ACTIONS(4434),
    [sym_ucent] = ACTIONS(4434),
    [sym_wchar] = ACTIONS(4434),
    [sym_dchar] = ACTIONS(4434),
    [sym_float] = ACTIONS(4434),
    [sym_double] = ACTIONS(4434),
    [sym_real] = ACTIONS(4434),
    [sym_ifloat] = ACTIONS(4434),
    [sym_idouble] = ACTIONS(4434),
    [sym_ireal] = ACTIONS(4434),
    [sym_cfloat] = ACTIONS(4434),
    [sym_cdouble] = ACTIONS(4434),
    [sym_creal] = ACTIONS(4434),
    [sym_size_t] = ACTIONS(4434),
    [sym_ptrdiff_t] = ACTIONS(4434),
    [sym_string] = ACTIONS(4434),
    [sym_cstring] = ACTIONS(4434),
    [sym_dstring] = ACTIONS(4434),
    [sym_wstring] = ACTIONS(4434),
    [sym_noreturn] = ACTIONS(4434),
    [sym_this] = ACTIONS(4434),
    [sym_abstract] = ACTIONS(4434),
    [sym_alias] = ACTIONS(4434),
    [sym_align] = ACTIONS(4434),
    [sym_auto] = ACTIONS(4434),
    [sym_class] = ACTIONS(4434),
    [sym_const] = ACTIONS(4434),
    [sym_debug] = ACTIONS(4434),
    [sym_deprecated] = ACTIONS(4434),
    [sym_else] = ACTIONS(4434),
    [sym_enum] = ACTIONS(4434),
    [sym_export] = ACTIONS(4434),
    [sym_extern] = ACTIONS(4434),
    [sym_final] = ACTIONS(4434),
    [sym_immutable] = ACTIONS(4434),
    [sym_import] = ACTIONS(4434),
    [sym_inout] = ACTIONS(4434),
    [sym_interface] = ACTIONS(4434),
    [sym_invariant] = ACTIONS(4434),
    [sym_mixin] = ACTIONS(4434),
    [sym_nothrow] = ACTIONS(4434),
    [sym_override] = ACTIONS(4434),
    [sym_package] = ACTIONS(4434),
    [sym_pragma] = ACTIONS(4434),
    [sym_private] = ACTIONS(4434),
    [sym_protected] = ACTIONS(4434),
    [sym_public] = ACTIONS(4434),
    [sym_pure] = ACTIONS(4434),
    [sym_ref] = ACTIONS(4434),
    [sym_return] = ACTIONS(4434),
    [sym_scope] = ACTIONS(4434),
    [sym_shared] = ACTIONS(4434),
    [sym_static] = ACTIONS(4434),
    [sym_struct] = ACTIONS(4434),
    [sym_synchronized] = ACTIONS(4434),
    [sym_template] = ACTIONS(4434),
    [sym_typeof] = ACTIONS(4434),
    [sym_union] = ACTIONS(4434),
    [sym_unittest] = ACTIONS(4434),
    [sym_version] = ACTIONS(4434),
    [sym_while] = ACTIONS(4434),
    [sym_gshared] = ACTIONS(4434),
    [sym_traits] = ACTIONS(4434),
    [sym_vector] = ACTIONS(4434),
    [sym_void] = ACTIONS(4434),
    [sym_directive] = ACTIONS(3),
  },
  [2700] = {
    [ts_builtin_sym_end] = ACTIONS(4408),
    [sym_identifier] = ACTIONS(4406),
    [sym_end_file] = ACTIONS(4406),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4408),
    [anon_sym_SEMI] = ACTIONS(4408),
    [anon_sym_TILDE] = ACTIONS(4408),
    [anon_sym_AT] = ACTIONS(4408),
    [sym_bool] = ACTIONS(4406),
    [sym_byte] = ACTIONS(4406),
    [sym_ubyte] = ACTIONS(4406),
    [sym_char] = ACTIONS(4406),
    [sym_short] = ACTIONS(4406),
    [sym_ushort] = ACTIONS(4406),
    [sym_int] = ACTIONS(4406),
    [sym_uint] = ACTIONS(4406),
    [sym_long] = ACTIONS(4406),
    [sym_ulong] = ACTIONS(4406),
    [sym_cent] = ACTIONS(4406),
    [sym_ucent] = ACTIONS(4406),
    [sym_wchar] = ACTIONS(4406),
    [sym_dchar] = ACTIONS(4406),
    [sym_float] = ACTIONS(4406),
    [sym_double] = ACTIONS(4406),
    [sym_real] = ACTIONS(4406),
    [sym_ifloat] = ACTIONS(4406),
    [sym_idouble] = ACTIONS(4406),
    [sym_ireal] = ACTIONS(4406),
    [sym_cfloat] = ACTIONS(4406),
    [sym_cdouble] = ACTIONS(4406),
    [sym_creal] = ACTIONS(4406),
    [sym_size_t] = ACTIONS(4406),
    [sym_ptrdiff_t] = ACTIONS(4406),
    [sym_string] = ACTIONS(4406),
    [sym_cstring] = ACTIONS(4406),
    [sym_dstring] = ACTIONS(4406),
    [sym_wstring] = ACTIONS(4406),
    [sym_noreturn] = ACTIONS(4406),
    [sym_this] = ACTIONS(4406),
    [sym_abstract] = ACTIONS(4406),
    [sym_alias] = ACTIONS(4406),
    [sym_align] = ACTIONS(4406),
    [sym_auto] = ACTIONS(4406),
    [sym_class] = ACTIONS(4406),
    [sym_const] = ACTIONS(4406),
    [sym_debug] = ACTIONS(4406),
    [sym_deprecated] = ACTIONS(4406),
    [sym_else] = ACTIONS(4406),
    [sym_enum] = ACTIONS(4406),
    [sym_export] = ACTIONS(4406),
    [sym_extern] = ACTIONS(4406),
    [sym_final] = ACTIONS(4406),
    [sym_immutable] = ACTIONS(4406),
    [sym_import] = ACTIONS(4406),
    [sym_inout] = ACTIONS(4406),
    [sym_interface] = ACTIONS(4406),
    [sym_invariant] = ACTIONS(4406),
    [sym_mixin] = ACTIONS(4406),
    [sym_nothrow] = ACTIONS(4406),
    [sym_override] = ACTIONS(4406),
    [sym_package] = ACTIONS(4406),
    [sym_pragma] = ACTIONS(4406),
    [sym_private] = ACTIONS(4406),
    [sym_protected] = ACTIONS(4406),
    [sym_public] = ACTIONS(4406),
    [sym_pure] = ACTIONS(4406),
    [sym_ref] = ACTIONS(4406),
    [sym_return] = ACTIONS(4406),
    [sym_scope] = ACTIONS(4406),
    [sym_shared] = ACTIONS(4406),
    [sym_static] = ACTIONS(4406),
    [sym_struct] = ACTIONS(4406),
    [sym_synchronized] = ACTIONS(4406),
    [sym_template] = ACTIONS(4406),
    [sym_typeof] = ACTIONS(4406),
    [sym_union] = ACTIONS(4406),
    [sym_unittest] = ACTIONS(4406),
    [sym_version] = ACTIONS(4406),
    [sym_while] = ACTIONS(4406),
    [sym_gshared] = ACTIONS(4406),
    [sym_traits] = ACTIONS(4406),
    [sym_vector] = ACTIONS(4406),
    [sym_void] = ACTIONS(4406),
    [sym_directive] = ACTIONS(3),
  },
  [2701] = {
    [ts_builtin_sym_end] = ACTIONS(4780),
    [sym_identifier] = ACTIONS(4778),
    [sym_end_file] = ACTIONS(4778),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4780),
    [anon_sym_SEMI] = ACTIONS(4780),
    [anon_sym_TILDE] = ACTIONS(4780),
    [anon_sym_AT] = ACTIONS(4780),
    [sym_bool] = ACTIONS(4778),
    [sym_byte] = ACTIONS(4778),
    [sym_ubyte] = ACTIONS(4778),
    [sym_char] = ACTIONS(4778),
    [sym_short] = ACTIONS(4778),
    [sym_ushort] = ACTIONS(4778),
    [sym_int] = ACTIONS(4778),
    [sym_uint] = ACTIONS(4778),
    [sym_long] = ACTIONS(4778),
    [sym_ulong] = ACTIONS(4778),
    [sym_cent] = ACTIONS(4778),
    [sym_ucent] = ACTIONS(4778),
    [sym_wchar] = ACTIONS(4778),
    [sym_dchar] = ACTIONS(4778),
    [sym_float] = ACTIONS(4778),
    [sym_double] = ACTIONS(4778),
    [sym_real] = ACTIONS(4778),
    [sym_ifloat] = ACTIONS(4778),
    [sym_idouble] = ACTIONS(4778),
    [sym_ireal] = ACTIONS(4778),
    [sym_cfloat] = ACTIONS(4778),
    [sym_cdouble] = ACTIONS(4778),
    [sym_creal] = ACTIONS(4778),
    [sym_size_t] = ACTIONS(4778),
    [sym_ptrdiff_t] = ACTIONS(4778),
    [sym_string] = ACTIONS(4778),
    [sym_cstring] = ACTIONS(4778),
    [sym_dstring] = ACTIONS(4778),
    [sym_wstring] = ACTIONS(4778),
    [sym_noreturn] = ACTIONS(4778),
    [sym_this] = ACTIONS(4778),
    [sym_abstract] = ACTIONS(4778),
    [sym_alias] = ACTIONS(4778),
    [sym_align] = ACTIONS(4778),
    [sym_auto] = ACTIONS(4778),
    [sym_class] = ACTIONS(4778),
    [sym_const] = ACTIONS(4778),
    [sym_debug] = ACTIONS(4778),
    [sym_deprecated] = ACTIONS(4778),
    [sym_else] = ACTIONS(4778),
    [sym_enum] = ACTIONS(4778),
    [sym_export] = ACTIONS(4778),
    [sym_extern] = ACTIONS(4778),
    [sym_final] = ACTIONS(4778),
    [sym_immutable] = ACTIONS(4778),
    [sym_import] = ACTIONS(4778),
    [sym_inout] = ACTIONS(4778),
    [sym_interface] = ACTIONS(4778),
    [sym_invariant] = ACTIONS(4778),
    [sym_mixin] = ACTIONS(4778),
    [sym_nothrow] = ACTIONS(4778),
    [sym_override] = ACTIONS(4778),
    [sym_package] = ACTIONS(4778),
    [sym_pragma] = ACTIONS(4778),
    [sym_private] = ACTIONS(4778),
    [sym_protected] = ACTIONS(4778),
    [sym_public] = ACTIONS(4778),
    [sym_pure] = ACTIONS(4778),
    [sym_ref] = ACTIONS(4778),
    [sym_return] = ACTIONS(4778),
    [sym_scope] = ACTIONS(4778),
    [sym_shared] = ACTIONS(4778),
    [sym_static] = ACTIONS(4778),
    [sym_struct] = ACTIONS(4778),
    [sym_synchronized] = ACTIONS(4778),
    [sym_template] = ACTIONS(4778),
    [sym_typeof] = ACTIONS(4778),
    [sym_union] = ACTIONS(4778),
    [sym_unittest] = ACTIONS(4778),
    [sym_version] = ACTIONS(4778),
    [sym_while] = ACTIONS(4778),
    [sym_gshared] = ACTIONS(4778),
    [sym_traits] = ACTIONS(4778),
    [sym_vector] = ACTIONS(4778),
    [sym_void] = ACTIONS(4778),
    [sym_directive] = ACTIONS(3),
  },
  [2702] = {
    [ts_builtin_sym_end] = ACTIONS(4612),
    [sym_identifier] = ACTIONS(4610),
    [sym_end_file] = ACTIONS(4610),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4612),
    [anon_sym_SEMI] = ACTIONS(4612),
    [anon_sym_TILDE] = ACTIONS(4612),
    [anon_sym_AT] = ACTIONS(4612),
    [sym_bool] = ACTIONS(4610),
    [sym_byte] = ACTIONS(4610),
    [sym_ubyte] = ACTIONS(4610),
    [sym_char] = ACTIONS(4610),
    [sym_short] = ACTIONS(4610),
    [sym_ushort] = ACTIONS(4610),
    [sym_int] = ACTIONS(4610),
    [sym_uint] = ACTIONS(4610),
    [sym_long] = ACTIONS(4610),
    [sym_ulong] = ACTIONS(4610),
    [sym_cent] = ACTIONS(4610),
    [sym_ucent] = ACTIONS(4610),
    [sym_wchar] = ACTIONS(4610),
    [sym_dchar] = ACTIONS(4610),
    [sym_float] = ACTIONS(4610),
    [sym_double] = ACTIONS(4610),
    [sym_real] = ACTIONS(4610),
    [sym_ifloat] = ACTIONS(4610),
    [sym_idouble] = ACTIONS(4610),
    [sym_ireal] = ACTIONS(4610),
    [sym_cfloat] = ACTIONS(4610),
    [sym_cdouble] = ACTIONS(4610),
    [sym_creal] = ACTIONS(4610),
    [sym_size_t] = ACTIONS(4610),
    [sym_ptrdiff_t] = ACTIONS(4610),
    [sym_string] = ACTIONS(4610),
    [sym_cstring] = ACTIONS(4610),
    [sym_dstring] = ACTIONS(4610),
    [sym_wstring] = ACTIONS(4610),
    [sym_noreturn] = ACTIONS(4610),
    [sym_this] = ACTIONS(4610),
    [sym_abstract] = ACTIONS(4610),
    [sym_alias] = ACTIONS(4610),
    [sym_align] = ACTIONS(4610),
    [sym_auto] = ACTIONS(4610),
    [sym_class] = ACTIONS(4610),
    [sym_const] = ACTIONS(4610),
    [sym_debug] = ACTIONS(4610),
    [sym_deprecated] = ACTIONS(4610),
    [sym_else] = ACTIONS(4610),
    [sym_enum] = ACTIONS(4610),
    [sym_export] = ACTIONS(4610),
    [sym_extern] = ACTIONS(4610),
    [sym_final] = ACTIONS(4610),
    [sym_immutable] = ACTIONS(4610),
    [sym_import] = ACTIONS(4610),
    [sym_inout] = ACTIONS(4610),
    [sym_interface] = ACTIONS(4610),
    [sym_invariant] = ACTIONS(4610),
    [sym_mixin] = ACTIONS(4610),
    [sym_nothrow] = ACTIONS(4610),
    [sym_override] = ACTIONS(4610),
    [sym_package] = ACTIONS(4610),
    [sym_pragma] = ACTIONS(4610),
    [sym_private] = ACTIONS(4610),
    [sym_protected] = ACTIONS(4610),
    [sym_public] = ACTIONS(4610),
    [sym_pure] = ACTIONS(4610),
    [sym_ref] = ACTIONS(4610),
    [sym_return] = ACTIONS(4610),
    [sym_scope] = ACTIONS(4610),
    [sym_shared] = ACTIONS(4610),
    [sym_static] = ACTIONS(4610),
    [sym_struct] = ACTIONS(4610),
    [sym_synchronized] = ACTIONS(4610),
    [sym_template] = ACTIONS(4610),
    [sym_typeof] = ACTIONS(4610),
    [sym_union] = ACTIONS(4610),
    [sym_unittest] = ACTIONS(4610),
    [sym_version] = ACTIONS(4610),
    [sym_while] = ACTIONS(4610),
    [sym_gshared] = ACTIONS(4610),
    [sym_traits] = ACTIONS(4610),
    [sym_vector] = ACTIONS(4610),
    [sym_void] = ACTIONS(4610),
    [sym_directive] = ACTIONS(3),
  },
  [2703] = {
    [ts_builtin_sym_end] = ACTIONS(4514),
    [sym_identifier] = ACTIONS(4512),
    [sym_end_file] = ACTIONS(4512),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4514),
    [anon_sym_SEMI] = ACTIONS(4514),
    [anon_sym_TILDE] = ACTIONS(4514),
    [anon_sym_AT] = ACTIONS(4514),
    [sym_bool] = ACTIONS(4512),
    [sym_byte] = ACTIONS(4512),
    [sym_ubyte] = ACTIONS(4512),
    [sym_char] = ACTIONS(4512),
    [sym_short] = ACTIONS(4512),
    [sym_ushort] = ACTIONS(4512),
    [sym_int] = ACTIONS(4512),
    [sym_uint] = ACTIONS(4512),
    [sym_long] = ACTIONS(4512),
    [sym_ulong] = ACTIONS(4512),
    [sym_cent] = ACTIONS(4512),
    [sym_ucent] = ACTIONS(4512),
    [sym_wchar] = ACTIONS(4512),
    [sym_dchar] = ACTIONS(4512),
    [sym_float] = ACTIONS(4512),
    [sym_double] = ACTIONS(4512),
    [sym_real] = ACTIONS(4512),
    [sym_ifloat] = ACTIONS(4512),
    [sym_idouble] = ACTIONS(4512),
    [sym_ireal] = ACTIONS(4512),
    [sym_cfloat] = ACTIONS(4512),
    [sym_cdouble] = ACTIONS(4512),
    [sym_creal] = ACTIONS(4512),
    [sym_size_t] = ACTIONS(4512),
    [sym_ptrdiff_t] = ACTIONS(4512),
    [sym_string] = ACTIONS(4512),
    [sym_cstring] = ACTIONS(4512),
    [sym_dstring] = ACTIONS(4512),
    [sym_wstring] = ACTIONS(4512),
    [sym_noreturn] = ACTIONS(4512),
    [sym_this] = ACTIONS(4512),
    [sym_abstract] = ACTIONS(4512),
    [sym_alias] = ACTIONS(4512),
    [sym_align] = ACTIONS(4512),
    [sym_auto] = ACTIONS(4512),
    [sym_class] = ACTIONS(4512),
    [sym_const] = ACTIONS(4512),
    [sym_debug] = ACTIONS(4512),
    [sym_deprecated] = ACTIONS(4512),
    [sym_else] = ACTIONS(4512),
    [sym_enum] = ACTIONS(4512),
    [sym_export] = ACTIONS(4512),
    [sym_extern] = ACTIONS(4512),
    [sym_final] = ACTIONS(4512),
    [sym_immutable] = ACTIONS(4512),
    [sym_import] = ACTIONS(4512),
    [sym_inout] = ACTIONS(4512),
    [sym_interface] = ACTIONS(4512),
    [sym_invariant] = ACTIONS(4512),
    [sym_mixin] = ACTIONS(4512),
    [sym_nothrow] = ACTIONS(4512),
    [sym_override] = ACTIONS(4512),
    [sym_package] = ACTIONS(4512),
    [sym_pragma] = ACTIONS(4512),
    [sym_private] = ACTIONS(4512),
    [sym_protected] = ACTIONS(4512),
    [sym_public] = ACTIONS(4512),
    [sym_pure] = ACTIONS(4512),
    [sym_ref] = ACTIONS(4512),
    [sym_return] = ACTIONS(4512),
    [sym_scope] = ACTIONS(4512),
    [sym_shared] = ACTIONS(4512),
    [sym_static] = ACTIONS(4512),
    [sym_struct] = ACTIONS(4512),
    [sym_synchronized] = ACTIONS(4512),
    [sym_template] = ACTIONS(4512),
    [sym_typeof] = ACTIONS(4512),
    [sym_union] = ACTIONS(4512),
    [sym_unittest] = ACTIONS(4512),
    [sym_version] = ACTIONS(4512),
    [sym_while] = ACTIONS(4512),
    [sym_gshared] = ACTIONS(4512),
    [sym_traits] = ACTIONS(4512),
    [sym_vector] = ACTIONS(4512),
    [sym_void] = ACTIONS(4512),
    [sym_directive] = ACTIONS(3),
  },
  [2704] = {
    [ts_builtin_sym_end] = ACTIONS(4502),
    [sym_identifier] = ACTIONS(4500),
    [sym_end_file] = ACTIONS(4500),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4502),
    [anon_sym_SEMI] = ACTIONS(4502),
    [anon_sym_TILDE] = ACTIONS(4502),
    [anon_sym_AT] = ACTIONS(4502),
    [sym_bool] = ACTIONS(4500),
    [sym_byte] = ACTIONS(4500),
    [sym_ubyte] = ACTIONS(4500),
    [sym_char] = ACTIONS(4500),
    [sym_short] = ACTIONS(4500),
    [sym_ushort] = ACTIONS(4500),
    [sym_int] = ACTIONS(4500),
    [sym_uint] = ACTIONS(4500),
    [sym_long] = ACTIONS(4500),
    [sym_ulong] = ACTIONS(4500),
    [sym_cent] = ACTIONS(4500),
    [sym_ucent] = ACTIONS(4500),
    [sym_wchar] = ACTIONS(4500),
    [sym_dchar] = ACTIONS(4500),
    [sym_float] = ACTIONS(4500),
    [sym_double] = ACTIONS(4500),
    [sym_real] = ACTIONS(4500),
    [sym_ifloat] = ACTIONS(4500),
    [sym_idouble] = ACTIONS(4500),
    [sym_ireal] = ACTIONS(4500),
    [sym_cfloat] = ACTIONS(4500),
    [sym_cdouble] = ACTIONS(4500),
    [sym_creal] = ACTIONS(4500),
    [sym_size_t] = ACTIONS(4500),
    [sym_ptrdiff_t] = ACTIONS(4500),
    [sym_string] = ACTIONS(4500),
    [sym_cstring] = ACTIONS(4500),
    [sym_dstring] = ACTIONS(4500),
    [sym_wstring] = ACTIONS(4500),
    [sym_noreturn] = ACTIONS(4500),
    [sym_this] = ACTIONS(4500),
    [sym_abstract] = ACTIONS(4500),
    [sym_alias] = ACTIONS(4500),
    [sym_align] = ACTIONS(4500),
    [sym_auto] = ACTIONS(4500),
    [sym_class] = ACTIONS(4500),
    [sym_const] = ACTIONS(4500),
    [sym_debug] = ACTIONS(4500),
    [sym_deprecated] = ACTIONS(4500),
    [sym_else] = ACTIONS(4500),
    [sym_enum] = ACTIONS(4500),
    [sym_export] = ACTIONS(4500),
    [sym_extern] = ACTIONS(4500),
    [sym_final] = ACTIONS(4500),
    [sym_immutable] = ACTIONS(4500),
    [sym_import] = ACTIONS(4500),
    [sym_inout] = ACTIONS(4500),
    [sym_interface] = ACTIONS(4500),
    [sym_invariant] = ACTIONS(4500),
    [sym_mixin] = ACTIONS(4500),
    [sym_nothrow] = ACTIONS(4500),
    [sym_override] = ACTIONS(4500),
    [sym_package] = ACTIONS(4500),
    [sym_pragma] = ACTIONS(4500),
    [sym_private] = ACTIONS(4500),
    [sym_protected] = ACTIONS(4500),
    [sym_public] = ACTIONS(4500),
    [sym_pure] = ACTIONS(4500),
    [sym_ref] = ACTIONS(4500),
    [sym_return] = ACTIONS(4500),
    [sym_scope] = ACTIONS(4500),
    [sym_shared] = ACTIONS(4500),
    [sym_static] = ACTIONS(4500),
    [sym_struct] = ACTIONS(4500),
    [sym_synchronized] = ACTIONS(4500),
    [sym_template] = ACTIONS(4500),
    [sym_typeof] = ACTIONS(4500),
    [sym_union] = ACTIONS(4500),
    [sym_unittest] = ACTIONS(4500),
    [sym_version] = ACTIONS(4500),
    [sym_while] = ACTIONS(4500),
    [sym_gshared] = ACTIONS(4500),
    [sym_traits] = ACTIONS(4500),
    [sym_vector] = ACTIONS(4500),
    [sym_void] = ACTIONS(4500),
    [sym_directive] = ACTIONS(3),
  },
  [2705] = {
    [ts_builtin_sym_end] = ACTIONS(4400),
    [sym_identifier] = ACTIONS(4398),
    [sym_end_file] = ACTIONS(4398),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4400),
    [anon_sym_SEMI] = ACTIONS(4400),
    [anon_sym_TILDE] = ACTIONS(4400),
    [anon_sym_AT] = ACTIONS(4400),
    [sym_bool] = ACTIONS(4398),
    [sym_byte] = ACTIONS(4398),
    [sym_ubyte] = ACTIONS(4398),
    [sym_char] = ACTIONS(4398),
    [sym_short] = ACTIONS(4398),
    [sym_ushort] = ACTIONS(4398),
    [sym_int] = ACTIONS(4398),
    [sym_uint] = ACTIONS(4398),
    [sym_long] = ACTIONS(4398),
    [sym_ulong] = ACTIONS(4398),
    [sym_cent] = ACTIONS(4398),
    [sym_ucent] = ACTIONS(4398),
    [sym_wchar] = ACTIONS(4398),
    [sym_dchar] = ACTIONS(4398),
    [sym_float] = ACTIONS(4398),
    [sym_double] = ACTIONS(4398),
    [sym_real] = ACTIONS(4398),
    [sym_ifloat] = ACTIONS(4398),
    [sym_idouble] = ACTIONS(4398),
    [sym_ireal] = ACTIONS(4398),
    [sym_cfloat] = ACTIONS(4398),
    [sym_cdouble] = ACTIONS(4398),
    [sym_creal] = ACTIONS(4398),
    [sym_size_t] = ACTIONS(4398),
    [sym_ptrdiff_t] = ACTIONS(4398),
    [sym_string] = ACTIONS(4398),
    [sym_cstring] = ACTIONS(4398),
    [sym_dstring] = ACTIONS(4398),
    [sym_wstring] = ACTIONS(4398),
    [sym_noreturn] = ACTIONS(4398),
    [sym_this] = ACTIONS(4398),
    [sym_abstract] = ACTIONS(4398),
    [sym_alias] = ACTIONS(4398),
    [sym_align] = ACTIONS(4398),
    [sym_auto] = ACTIONS(4398),
    [sym_class] = ACTIONS(4398),
    [sym_const] = ACTIONS(4398),
    [sym_debug] = ACTIONS(4398),
    [sym_deprecated] = ACTIONS(4398),
    [sym_else] = ACTIONS(4398),
    [sym_enum] = ACTIONS(4398),
    [sym_export] = ACTIONS(4398),
    [sym_extern] = ACTIONS(4398),
    [sym_final] = ACTIONS(4398),
    [sym_immutable] = ACTIONS(4398),
    [sym_import] = ACTIONS(4398),
    [sym_inout] = ACTIONS(4398),
    [sym_interface] = ACTIONS(4398),
    [sym_invariant] = ACTIONS(4398),
    [sym_mixin] = ACTIONS(4398),
    [sym_nothrow] = ACTIONS(4398),
    [sym_override] = ACTIONS(4398),
    [sym_package] = ACTIONS(4398),
    [sym_pragma] = ACTIONS(4398),
    [sym_private] = ACTIONS(4398),
    [sym_protected] = ACTIONS(4398),
    [sym_public] = ACTIONS(4398),
    [sym_pure] = ACTIONS(4398),
    [sym_ref] = ACTIONS(4398),
    [sym_return] = ACTIONS(4398),
    [sym_scope] = ACTIONS(4398),
    [sym_shared] = ACTIONS(4398),
    [sym_static] = ACTIONS(4398),
    [sym_struct] = ACTIONS(4398),
    [sym_synchronized] = ACTIONS(4398),
    [sym_template] = ACTIONS(4398),
    [sym_typeof] = ACTIONS(4398),
    [sym_union] = ACTIONS(4398),
    [sym_unittest] = ACTIONS(4398),
    [sym_version] = ACTIONS(4398),
    [sym_while] = ACTIONS(4398),
    [sym_gshared] = ACTIONS(4398),
    [sym_traits] = ACTIONS(4398),
    [sym_vector] = ACTIONS(4398),
    [sym_void] = ACTIONS(4398),
    [sym_directive] = ACTIONS(3),
  },
  [2706] = {
    [ts_builtin_sym_end] = ACTIONS(4388),
    [sym_identifier] = ACTIONS(4386),
    [sym_end_file] = ACTIONS(4386),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4388),
    [anon_sym_SEMI] = ACTIONS(4388),
    [anon_sym_TILDE] = ACTIONS(4388),
    [anon_sym_AT] = ACTIONS(4388),
    [sym_bool] = ACTIONS(4386),
    [sym_byte] = ACTIONS(4386),
    [sym_ubyte] = ACTIONS(4386),
    [sym_char] = ACTIONS(4386),
    [sym_short] = ACTIONS(4386),
    [sym_ushort] = ACTIONS(4386),
    [sym_int] = ACTIONS(4386),
    [sym_uint] = ACTIONS(4386),
    [sym_long] = ACTIONS(4386),
    [sym_ulong] = ACTIONS(4386),
    [sym_cent] = ACTIONS(4386),
    [sym_ucent] = ACTIONS(4386),
    [sym_wchar] = ACTIONS(4386),
    [sym_dchar] = ACTIONS(4386),
    [sym_float] = ACTIONS(4386),
    [sym_double] = ACTIONS(4386),
    [sym_real] = ACTIONS(4386),
    [sym_ifloat] = ACTIONS(4386),
    [sym_idouble] = ACTIONS(4386),
    [sym_ireal] = ACTIONS(4386),
    [sym_cfloat] = ACTIONS(4386),
    [sym_cdouble] = ACTIONS(4386),
    [sym_creal] = ACTIONS(4386),
    [sym_size_t] = ACTIONS(4386),
    [sym_ptrdiff_t] = ACTIONS(4386),
    [sym_string] = ACTIONS(4386),
    [sym_cstring] = ACTIONS(4386),
    [sym_dstring] = ACTIONS(4386),
    [sym_wstring] = ACTIONS(4386),
    [sym_noreturn] = ACTIONS(4386),
    [sym_this] = ACTIONS(4386),
    [sym_abstract] = ACTIONS(4386),
    [sym_alias] = ACTIONS(4386),
    [sym_align] = ACTIONS(4386),
    [sym_auto] = ACTIONS(4386),
    [sym_class] = ACTIONS(4386),
    [sym_const] = ACTIONS(4386),
    [sym_debug] = ACTIONS(4386),
    [sym_deprecated] = ACTIONS(4386),
    [sym_else] = ACTIONS(4386),
    [sym_enum] = ACTIONS(4386),
    [sym_export] = ACTIONS(4386),
    [sym_extern] = ACTIONS(4386),
    [sym_final] = ACTIONS(4386),
    [sym_immutable] = ACTIONS(4386),
    [sym_import] = ACTIONS(4386),
    [sym_inout] = ACTIONS(4386),
    [sym_interface] = ACTIONS(4386),
    [sym_invariant] = ACTIONS(4386),
    [sym_mixin] = ACTIONS(4386),
    [sym_nothrow] = ACTIONS(4386),
    [sym_override] = ACTIONS(4386),
    [sym_package] = ACTIONS(4386),
    [sym_pragma] = ACTIONS(4386),
    [sym_private] = ACTIONS(4386),
    [sym_protected] = ACTIONS(4386),
    [sym_public] = ACTIONS(4386),
    [sym_pure] = ACTIONS(4386),
    [sym_ref] = ACTIONS(4386),
    [sym_return] = ACTIONS(4386),
    [sym_scope] = ACTIONS(4386),
    [sym_shared] = ACTIONS(4386),
    [sym_static] = ACTIONS(4386),
    [sym_struct] = ACTIONS(4386),
    [sym_synchronized] = ACTIONS(4386),
    [sym_template] = ACTIONS(4386),
    [sym_typeof] = ACTIONS(4386),
    [sym_union] = ACTIONS(4386),
    [sym_unittest] = ACTIONS(4386),
    [sym_version] = ACTIONS(4386),
    [sym_while] = ACTIONS(4386),
    [sym_gshared] = ACTIONS(4386),
    [sym_traits] = ACTIONS(4386),
    [sym_vector] = ACTIONS(4386),
    [sym_void] = ACTIONS(4386),
    [sym_directive] = ACTIONS(3),
  },
  [2707] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(6785),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5123),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
  },
  [2708] = {
    [ts_builtin_sym_end] = ACTIONS(4345),
    [sym_identifier] = ACTIONS(4343),
    [sym_end_file] = ACTIONS(4343),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4345),
    [anon_sym_SEMI] = ACTIONS(4345),
    [anon_sym_TILDE] = ACTIONS(4345),
    [anon_sym_AT] = ACTIONS(4345),
    [sym_bool] = ACTIONS(4343),
    [sym_byte] = ACTIONS(4343),
    [sym_ubyte] = ACTIONS(4343),
    [sym_char] = ACTIONS(4343),
    [sym_short] = ACTIONS(4343),
    [sym_ushort] = ACTIONS(4343),
    [sym_int] = ACTIONS(4343),
    [sym_uint] = ACTIONS(4343),
    [sym_long] = ACTIONS(4343),
    [sym_ulong] = ACTIONS(4343),
    [sym_cent] = ACTIONS(4343),
    [sym_ucent] = ACTIONS(4343),
    [sym_wchar] = ACTIONS(4343),
    [sym_dchar] = ACTIONS(4343),
    [sym_float] = ACTIONS(4343),
    [sym_double] = ACTIONS(4343),
    [sym_real] = ACTIONS(4343),
    [sym_ifloat] = ACTIONS(4343),
    [sym_idouble] = ACTIONS(4343),
    [sym_ireal] = ACTIONS(4343),
    [sym_cfloat] = ACTIONS(4343),
    [sym_cdouble] = ACTIONS(4343),
    [sym_creal] = ACTIONS(4343),
    [sym_size_t] = ACTIONS(4343),
    [sym_ptrdiff_t] = ACTIONS(4343),
    [sym_string] = ACTIONS(4343),
    [sym_cstring] = ACTIONS(4343),
    [sym_dstring] = ACTIONS(4343),
    [sym_wstring] = ACTIONS(4343),
    [sym_noreturn] = ACTIONS(4343),
    [sym_this] = ACTIONS(4343),
    [sym_abstract] = ACTIONS(4343),
    [sym_alias] = ACTIONS(4343),
    [sym_align] = ACTIONS(4343),
    [sym_auto] = ACTIONS(4343),
    [sym_class] = ACTIONS(4343),
    [sym_const] = ACTIONS(4343),
    [sym_debug] = ACTIONS(4343),
    [sym_deprecated] = ACTIONS(4343),
    [sym_else] = ACTIONS(4343),
    [sym_enum] = ACTIONS(4343),
    [sym_export] = ACTIONS(4343),
    [sym_extern] = ACTIONS(4343),
    [sym_final] = ACTIONS(4343),
    [sym_immutable] = ACTIONS(4343),
    [sym_import] = ACTIONS(4343),
    [sym_inout] = ACTIONS(4343),
    [sym_interface] = ACTIONS(4343),
    [sym_invariant] = ACTIONS(4343),
    [sym_mixin] = ACTIONS(4343),
    [sym_nothrow] = ACTIONS(4343),
    [sym_override] = ACTIONS(4343),
    [sym_package] = ACTIONS(4343),
    [sym_pragma] = ACTIONS(4343),
    [sym_private] = ACTIONS(4343),
    [sym_protected] = ACTIONS(4343),
    [sym_public] = ACTIONS(4343),
    [sym_pure] = ACTIONS(4343),
    [sym_ref] = ACTIONS(4343),
    [sym_return] = ACTIONS(4343),
    [sym_scope] = ACTIONS(4343),
    [sym_shared] = ACTIONS(4343),
    [sym_static] = ACTIONS(4343),
    [sym_struct] = ACTIONS(4343),
    [sym_synchronized] = ACTIONS(4343),
    [sym_template] = ACTIONS(4343),
    [sym_typeof] = ACTIONS(4343),
    [sym_union] = ACTIONS(4343),
    [sym_unittest] = ACTIONS(4343),
    [sym_version] = ACTIONS(4343),
    [sym_while] = ACTIONS(4343),
    [sym_gshared] = ACTIONS(4343),
    [sym_traits] = ACTIONS(4343),
    [sym_vector] = ACTIONS(4343),
    [sym_void] = ACTIONS(4343),
    [sym_directive] = ACTIONS(3),
  },
  [2709] = {
    [ts_builtin_sym_end] = ACTIONS(4333),
    [sym_identifier] = ACTIONS(4331),
    [sym_end_file] = ACTIONS(4331),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4333),
    [anon_sym_SEMI] = ACTIONS(4333),
    [anon_sym_TILDE] = ACTIONS(4333),
    [anon_sym_AT] = ACTIONS(4333),
    [sym_bool] = ACTIONS(4331),
    [sym_byte] = ACTIONS(4331),
    [sym_ubyte] = ACTIONS(4331),
    [sym_char] = ACTIONS(4331),
    [sym_short] = ACTIONS(4331),
    [sym_ushort] = ACTIONS(4331),
    [sym_int] = ACTIONS(4331),
    [sym_uint] = ACTIONS(4331),
    [sym_long] = ACTIONS(4331),
    [sym_ulong] = ACTIONS(4331),
    [sym_cent] = ACTIONS(4331),
    [sym_ucent] = ACTIONS(4331),
    [sym_wchar] = ACTIONS(4331),
    [sym_dchar] = ACTIONS(4331),
    [sym_float] = ACTIONS(4331),
    [sym_double] = ACTIONS(4331),
    [sym_real] = ACTIONS(4331),
    [sym_ifloat] = ACTIONS(4331),
    [sym_idouble] = ACTIONS(4331),
    [sym_ireal] = ACTIONS(4331),
    [sym_cfloat] = ACTIONS(4331),
    [sym_cdouble] = ACTIONS(4331),
    [sym_creal] = ACTIONS(4331),
    [sym_size_t] = ACTIONS(4331),
    [sym_ptrdiff_t] = ACTIONS(4331),
    [sym_string] = ACTIONS(4331),
    [sym_cstring] = ACTIONS(4331),
    [sym_dstring] = ACTIONS(4331),
    [sym_wstring] = ACTIONS(4331),
    [sym_noreturn] = ACTIONS(4331),
    [sym_this] = ACTIONS(4331),
    [sym_abstract] = ACTIONS(4331),
    [sym_alias] = ACTIONS(4331),
    [sym_align] = ACTIONS(4331),
    [sym_auto] = ACTIONS(4331),
    [sym_class] = ACTIONS(4331),
    [sym_const] = ACTIONS(4331),
    [sym_debug] = ACTIONS(4331),
    [sym_deprecated] = ACTIONS(4331),
    [sym_else] = ACTIONS(4331),
    [sym_enum] = ACTIONS(4331),
    [sym_export] = ACTIONS(4331),
    [sym_extern] = ACTIONS(4331),
    [sym_final] = ACTIONS(4331),
    [sym_immutable] = ACTIONS(4331),
    [sym_import] = ACTIONS(4331),
    [sym_inout] = ACTIONS(4331),
    [sym_interface] = ACTIONS(4331),
    [sym_invariant] = ACTIONS(4331),
    [sym_mixin] = ACTIONS(4331),
    [sym_nothrow] = ACTIONS(4331),
    [sym_override] = ACTIONS(4331),
    [sym_package] = ACTIONS(4331),
    [sym_pragma] = ACTIONS(4331),
    [sym_private] = ACTIONS(4331),
    [sym_protected] = ACTIONS(4331),
    [sym_public] = ACTIONS(4331),
    [sym_pure] = ACTIONS(4331),
    [sym_ref] = ACTIONS(4331),
    [sym_return] = ACTIONS(4331),
    [sym_scope] = ACTIONS(4331),
    [sym_shared] = ACTIONS(4331),
    [sym_static] = ACTIONS(4331),
    [sym_struct] = ACTIONS(4331),
    [sym_synchronized] = ACTIONS(4331),
    [sym_template] = ACTIONS(4331),
    [sym_typeof] = ACTIONS(4331),
    [sym_union] = ACTIONS(4331),
    [sym_unittest] = ACTIONS(4331),
    [sym_version] = ACTIONS(4331),
    [sym_while] = ACTIONS(4331),
    [sym_gshared] = ACTIONS(4331),
    [sym_traits] = ACTIONS(4331),
    [sym_vector] = ACTIONS(4331),
    [sym_void] = ACTIONS(4331),
    [sym_directive] = ACTIONS(3),
  },
  [2710] = {
    [ts_builtin_sym_end] = ACTIONS(4878),
    [sym_identifier] = ACTIONS(4876),
    [sym_end_file] = ACTIONS(4876),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4878),
    [anon_sym_SEMI] = ACTIONS(4878),
    [anon_sym_TILDE] = ACTIONS(4878),
    [anon_sym_AT] = ACTIONS(4878),
    [sym_bool] = ACTIONS(4876),
    [sym_byte] = ACTIONS(4876),
    [sym_ubyte] = ACTIONS(4876),
    [sym_char] = ACTIONS(4876),
    [sym_short] = ACTIONS(4876),
    [sym_ushort] = ACTIONS(4876),
    [sym_int] = ACTIONS(4876),
    [sym_uint] = ACTIONS(4876),
    [sym_long] = ACTIONS(4876),
    [sym_ulong] = ACTIONS(4876),
    [sym_cent] = ACTIONS(4876),
    [sym_ucent] = ACTIONS(4876),
    [sym_wchar] = ACTIONS(4876),
    [sym_dchar] = ACTIONS(4876),
    [sym_float] = ACTIONS(4876),
    [sym_double] = ACTIONS(4876),
    [sym_real] = ACTIONS(4876),
    [sym_ifloat] = ACTIONS(4876),
    [sym_idouble] = ACTIONS(4876),
    [sym_ireal] = ACTIONS(4876),
    [sym_cfloat] = ACTIONS(4876),
    [sym_cdouble] = ACTIONS(4876),
    [sym_creal] = ACTIONS(4876),
    [sym_size_t] = ACTIONS(4876),
    [sym_ptrdiff_t] = ACTIONS(4876),
    [sym_string] = ACTIONS(4876),
    [sym_cstring] = ACTIONS(4876),
    [sym_dstring] = ACTIONS(4876),
    [sym_wstring] = ACTIONS(4876),
    [sym_noreturn] = ACTIONS(4876),
    [sym_this] = ACTIONS(4876),
    [sym_abstract] = ACTIONS(4876),
    [sym_alias] = ACTIONS(4876),
    [sym_align] = ACTIONS(4876),
    [sym_auto] = ACTIONS(4876),
    [sym_class] = ACTIONS(4876),
    [sym_const] = ACTIONS(4876),
    [sym_debug] = ACTIONS(4876),
    [sym_deprecated] = ACTIONS(4876),
    [sym_else] = ACTIONS(4876),
    [sym_enum] = ACTIONS(4876),
    [sym_export] = ACTIONS(4876),
    [sym_extern] = ACTIONS(4876),
    [sym_final] = ACTIONS(4876),
    [sym_immutable] = ACTIONS(4876),
    [sym_import] = ACTIONS(4876),
    [sym_inout] = ACTIONS(4876),
    [sym_interface] = ACTIONS(4876),
    [sym_invariant] = ACTIONS(4876),
    [sym_mixin] = ACTIONS(4876),
    [sym_nothrow] = ACTIONS(4876),
    [sym_override] = ACTIONS(4876),
    [sym_package] = ACTIONS(4876),
    [sym_pragma] = ACTIONS(4876),
    [sym_private] = ACTIONS(4876),
    [sym_protected] = ACTIONS(4876),
    [sym_public] = ACTIONS(4876),
    [sym_pure] = ACTIONS(4876),
    [sym_ref] = ACTIONS(4876),
    [sym_return] = ACTIONS(4876),
    [sym_scope] = ACTIONS(4876),
    [sym_shared] = ACTIONS(4876),
    [sym_static] = ACTIONS(4876),
    [sym_struct] = ACTIONS(4876),
    [sym_synchronized] = ACTIONS(4876),
    [sym_template] = ACTIONS(4876),
    [sym_typeof] = ACTIONS(4876),
    [sym_union] = ACTIONS(4876),
    [sym_unittest] = ACTIONS(4876),
    [sym_version] = ACTIONS(4876),
    [sym_while] = ACTIONS(4876),
    [sym_gshared] = ACTIONS(4876),
    [sym_traits] = ACTIONS(4876),
    [sym_vector] = ACTIONS(4876),
    [sym_void] = ACTIONS(4876),
    [sym_directive] = ACTIONS(3),
  },
  [2711] = {
    [ts_builtin_sym_end] = ACTIONS(4692),
    [sym_identifier] = ACTIONS(4690),
    [sym_end_file] = ACTIONS(4690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4692),
    [anon_sym_SEMI] = ACTIONS(4692),
    [anon_sym_TILDE] = ACTIONS(4692),
    [anon_sym_AT] = ACTIONS(4692),
    [sym_bool] = ACTIONS(4690),
    [sym_byte] = ACTIONS(4690),
    [sym_ubyte] = ACTIONS(4690),
    [sym_char] = ACTIONS(4690),
    [sym_short] = ACTIONS(4690),
    [sym_ushort] = ACTIONS(4690),
    [sym_int] = ACTIONS(4690),
    [sym_uint] = ACTIONS(4690),
    [sym_long] = ACTIONS(4690),
    [sym_ulong] = ACTIONS(4690),
    [sym_cent] = ACTIONS(4690),
    [sym_ucent] = ACTIONS(4690),
    [sym_wchar] = ACTIONS(4690),
    [sym_dchar] = ACTIONS(4690),
    [sym_float] = ACTIONS(4690),
    [sym_double] = ACTIONS(4690),
    [sym_real] = ACTIONS(4690),
    [sym_ifloat] = ACTIONS(4690),
    [sym_idouble] = ACTIONS(4690),
    [sym_ireal] = ACTIONS(4690),
    [sym_cfloat] = ACTIONS(4690),
    [sym_cdouble] = ACTIONS(4690),
    [sym_creal] = ACTIONS(4690),
    [sym_size_t] = ACTIONS(4690),
    [sym_ptrdiff_t] = ACTIONS(4690),
    [sym_string] = ACTIONS(4690),
    [sym_cstring] = ACTIONS(4690),
    [sym_dstring] = ACTIONS(4690),
    [sym_wstring] = ACTIONS(4690),
    [sym_noreturn] = ACTIONS(4690),
    [sym_this] = ACTIONS(4690),
    [sym_abstract] = ACTIONS(4690),
    [sym_alias] = ACTIONS(4690),
    [sym_align] = ACTIONS(4690),
    [sym_auto] = ACTIONS(4690),
    [sym_class] = ACTIONS(4690),
    [sym_const] = ACTIONS(4690),
    [sym_debug] = ACTIONS(4690),
    [sym_deprecated] = ACTIONS(4690),
    [sym_else] = ACTIONS(4690),
    [sym_enum] = ACTIONS(4690),
    [sym_export] = ACTIONS(4690),
    [sym_extern] = ACTIONS(4690),
    [sym_final] = ACTIONS(4690),
    [sym_immutable] = ACTIONS(4690),
    [sym_import] = ACTIONS(4690),
    [sym_inout] = ACTIONS(4690),
    [sym_interface] = ACTIONS(4690),
    [sym_invariant] = ACTIONS(4690),
    [sym_mixin] = ACTIONS(4690),
    [sym_nothrow] = ACTIONS(4690),
    [sym_override] = ACTIONS(4690),
    [sym_package] = ACTIONS(4690),
    [sym_pragma] = ACTIONS(4690),
    [sym_private] = ACTIONS(4690),
    [sym_protected] = ACTIONS(4690),
    [sym_public] = ACTIONS(4690),
    [sym_pure] = ACTIONS(4690),
    [sym_ref] = ACTIONS(4690),
    [sym_return] = ACTIONS(4690),
    [sym_scope] = ACTIONS(4690),
    [sym_shared] = ACTIONS(4690),
    [sym_static] = ACTIONS(4690),
    [sym_struct] = ACTIONS(4690),
    [sym_synchronized] = ACTIONS(4690),
    [sym_template] = ACTIONS(4690),
    [sym_typeof] = ACTIONS(4690),
    [sym_union] = ACTIONS(4690),
    [sym_unittest] = ACTIONS(4690),
    [sym_version] = ACTIONS(4690),
    [sym_while] = ACTIONS(4690),
    [sym_gshared] = ACTIONS(4690),
    [sym_traits] = ACTIONS(4690),
    [sym_vector] = ACTIONS(4690),
    [sym_void] = ACTIONS(4690),
    [sym_directive] = ACTIONS(3),
  },
  [2712] = {
    [ts_builtin_sym_end] = ACTIONS(4299),
    [sym_identifier] = ACTIONS(4297),
    [sym_end_file] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
  },
  [2713] = {
    [ts_builtin_sym_end] = ACTIONS(4498),
    [sym_identifier] = ACTIONS(4496),
    [sym_end_file] = ACTIONS(4496),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4498),
    [anon_sym_SEMI] = ACTIONS(4498),
    [anon_sym_TILDE] = ACTIONS(4498),
    [anon_sym_AT] = ACTIONS(4498),
    [sym_bool] = ACTIONS(4496),
    [sym_byte] = ACTIONS(4496),
    [sym_ubyte] = ACTIONS(4496),
    [sym_char] = ACTIONS(4496),
    [sym_short] = ACTIONS(4496),
    [sym_ushort] = ACTIONS(4496),
    [sym_int] = ACTIONS(4496),
    [sym_uint] = ACTIONS(4496),
    [sym_long] = ACTIONS(4496),
    [sym_ulong] = ACTIONS(4496),
    [sym_cent] = ACTIONS(4496),
    [sym_ucent] = ACTIONS(4496),
    [sym_wchar] = ACTIONS(4496),
    [sym_dchar] = ACTIONS(4496),
    [sym_float] = ACTIONS(4496),
    [sym_double] = ACTIONS(4496),
    [sym_real] = ACTIONS(4496),
    [sym_ifloat] = ACTIONS(4496),
    [sym_idouble] = ACTIONS(4496),
    [sym_ireal] = ACTIONS(4496),
    [sym_cfloat] = ACTIONS(4496),
    [sym_cdouble] = ACTIONS(4496),
    [sym_creal] = ACTIONS(4496),
    [sym_size_t] = ACTIONS(4496),
    [sym_ptrdiff_t] = ACTIONS(4496),
    [sym_string] = ACTIONS(4496),
    [sym_cstring] = ACTIONS(4496),
    [sym_dstring] = ACTIONS(4496),
    [sym_wstring] = ACTIONS(4496),
    [sym_noreturn] = ACTIONS(4496),
    [sym_this] = ACTIONS(4496),
    [sym_abstract] = ACTIONS(4496),
    [sym_alias] = ACTIONS(4496),
    [sym_align] = ACTIONS(4496),
    [sym_auto] = ACTIONS(4496),
    [sym_class] = ACTIONS(4496),
    [sym_const] = ACTIONS(4496),
    [sym_debug] = ACTIONS(4496),
    [sym_deprecated] = ACTIONS(4496),
    [sym_else] = ACTIONS(4496),
    [sym_enum] = ACTIONS(4496),
    [sym_export] = ACTIONS(4496),
    [sym_extern] = ACTIONS(4496),
    [sym_final] = ACTIONS(4496),
    [sym_immutable] = ACTIONS(4496),
    [sym_import] = ACTIONS(4496),
    [sym_inout] = ACTIONS(4496),
    [sym_interface] = ACTIONS(4496),
    [sym_invariant] = ACTIONS(4496),
    [sym_mixin] = ACTIONS(4496),
    [sym_nothrow] = ACTIONS(4496),
    [sym_override] = ACTIONS(4496),
    [sym_package] = ACTIONS(4496),
    [sym_pragma] = ACTIONS(4496),
    [sym_private] = ACTIONS(4496),
    [sym_protected] = ACTIONS(4496),
    [sym_public] = ACTIONS(4496),
    [sym_pure] = ACTIONS(4496),
    [sym_ref] = ACTIONS(4496),
    [sym_return] = ACTIONS(4496),
    [sym_scope] = ACTIONS(4496),
    [sym_shared] = ACTIONS(4496),
    [sym_static] = ACTIONS(4496),
    [sym_struct] = ACTIONS(4496),
    [sym_synchronized] = ACTIONS(4496),
    [sym_template] = ACTIONS(4496),
    [sym_typeof] = ACTIONS(4496),
    [sym_union] = ACTIONS(4496),
    [sym_unittest] = ACTIONS(4496),
    [sym_version] = ACTIONS(4496),
    [sym_while] = ACTIONS(4496),
    [sym_gshared] = ACTIONS(4496),
    [sym_traits] = ACTIONS(4496),
    [sym_vector] = ACTIONS(4496),
    [sym_void] = ACTIONS(4496),
    [sym_directive] = ACTIONS(3),
  },
  [2714] = {
    [ts_builtin_sym_end] = ACTIONS(4319),
    [sym_identifier] = ACTIONS(4317),
    [sym_end_file] = ACTIONS(4317),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4319),
    [anon_sym_SEMI] = ACTIONS(4319),
    [anon_sym_TILDE] = ACTIONS(4319),
    [anon_sym_AT] = ACTIONS(4319),
    [sym_bool] = ACTIONS(4317),
    [sym_byte] = ACTIONS(4317),
    [sym_ubyte] = ACTIONS(4317),
    [sym_char] = ACTIONS(4317),
    [sym_short] = ACTIONS(4317),
    [sym_ushort] = ACTIONS(4317),
    [sym_int] = ACTIONS(4317),
    [sym_uint] = ACTIONS(4317),
    [sym_long] = ACTIONS(4317),
    [sym_ulong] = ACTIONS(4317),
    [sym_cent] = ACTIONS(4317),
    [sym_ucent] = ACTIONS(4317),
    [sym_wchar] = ACTIONS(4317),
    [sym_dchar] = ACTIONS(4317),
    [sym_float] = ACTIONS(4317),
    [sym_double] = ACTIONS(4317),
    [sym_real] = ACTIONS(4317),
    [sym_ifloat] = ACTIONS(4317),
    [sym_idouble] = ACTIONS(4317),
    [sym_ireal] = ACTIONS(4317),
    [sym_cfloat] = ACTIONS(4317),
    [sym_cdouble] = ACTIONS(4317),
    [sym_creal] = ACTIONS(4317),
    [sym_size_t] = ACTIONS(4317),
    [sym_ptrdiff_t] = ACTIONS(4317),
    [sym_string] = ACTIONS(4317),
    [sym_cstring] = ACTIONS(4317),
    [sym_dstring] = ACTIONS(4317),
    [sym_wstring] = ACTIONS(4317),
    [sym_noreturn] = ACTIONS(4317),
    [sym_this] = ACTIONS(4317),
    [sym_abstract] = ACTIONS(4317),
    [sym_alias] = ACTIONS(4317),
    [sym_align] = ACTIONS(4317),
    [sym_auto] = ACTIONS(4317),
    [sym_class] = ACTIONS(4317),
    [sym_const] = ACTIONS(4317),
    [sym_debug] = ACTIONS(4317),
    [sym_deprecated] = ACTIONS(4317),
    [sym_else] = ACTIONS(4317),
    [sym_enum] = ACTIONS(4317),
    [sym_export] = ACTIONS(4317),
    [sym_extern] = ACTIONS(4317),
    [sym_final] = ACTIONS(4317),
    [sym_immutable] = ACTIONS(4317),
    [sym_import] = ACTIONS(4317),
    [sym_inout] = ACTIONS(4317),
    [sym_interface] = ACTIONS(4317),
    [sym_invariant] = ACTIONS(4317),
    [sym_mixin] = ACTIONS(4317),
    [sym_nothrow] = ACTIONS(4317),
    [sym_override] = ACTIONS(4317),
    [sym_package] = ACTIONS(4317),
    [sym_pragma] = ACTIONS(4317),
    [sym_private] = ACTIONS(4317),
    [sym_protected] = ACTIONS(4317),
    [sym_public] = ACTIONS(4317),
    [sym_pure] = ACTIONS(4317),
    [sym_ref] = ACTIONS(4317),
    [sym_return] = ACTIONS(4317),
    [sym_scope] = ACTIONS(4317),
    [sym_shared] = ACTIONS(4317),
    [sym_static] = ACTIONS(4317),
    [sym_struct] = ACTIONS(4317),
    [sym_synchronized] = ACTIONS(4317),
    [sym_template] = ACTIONS(4317),
    [sym_typeof] = ACTIONS(4317),
    [sym_union] = ACTIONS(4317),
    [sym_unittest] = ACTIONS(4317),
    [sym_version] = ACTIONS(4317),
    [sym_while] = ACTIONS(4317),
    [sym_gshared] = ACTIONS(4317),
    [sym_traits] = ACTIONS(4317),
    [sym_vector] = ACTIONS(4317),
    [sym_void] = ACTIONS(4317),
    [sym_directive] = ACTIONS(3),
  },
  [2715] = {
    [ts_builtin_sym_end] = ACTIONS(4303),
    [sym_identifier] = ACTIONS(4301),
    [sym_end_file] = ACTIONS(4301),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4303),
    [anon_sym_SEMI] = ACTIONS(4303),
    [anon_sym_TILDE] = ACTIONS(4303),
    [anon_sym_AT] = ACTIONS(4303),
    [sym_bool] = ACTIONS(4301),
    [sym_byte] = ACTIONS(4301),
    [sym_ubyte] = ACTIONS(4301),
    [sym_char] = ACTIONS(4301),
    [sym_short] = ACTIONS(4301),
    [sym_ushort] = ACTIONS(4301),
    [sym_int] = ACTIONS(4301),
    [sym_uint] = ACTIONS(4301),
    [sym_long] = ACTIONS(4301),
    [sym_ulong] = ACTIONS(4301),
    [sym_cent] = ACTIONS(4301),
    [sym_ucent] = ACTIONS(4301),
    [sym_wchar] = ACTIONS(4301),
    [sym_dchar] = ACTIONS(4301),
    [sym_float] = ACTIONS(4301),
    [sym_double] = ACTIONS(4301),
    [sym_real] = ACTIONS(4301),
    [sym_ifloat] = ACTIONS(4301),
    [sym_idouble] = ACTIONS(4301),
    [sym_ireal] = ACTIONS(4301),
    [sym_cfloat] = ACTIONS(4301),
    [sym_cdouble] = ACTIONS(4301),
    [sym_creal] = ACTIONS(4301),
    [sym_size_t] = ACTIONS(4301),
    [sym_ptrdiff_t] = ACTIONS(4301),
    [sym_string] = ACTIONS(4301),
    [sym_cstring] = ACTIONS(4301),
    [sym_dstring] = ACTIONS(4301),
    [sym_wstring] = ACTIONS(4301),
    [sym_noreturn] = ACTIONS(4301),
    [sym_this] = ACTIONS(4301),
    [sym_abstract] = ACTIONS(4301),
    [sym_alias] = ACTIONS(4301),
    [sym_align] = ACTIONS(4301),
    [sym_auto] = ACTIONS(4301),
    [sym_class] = ACTIONS(4301),
    [sym_const] = ACTIONS(4301),
    [sym_debug] = ACTIONS(4301),
    [sym_deprecated] = ACTIONS(4301),
    [sym_else] = ACTIONS(4301),
    [sym_enum] = ACTIONS(4301),
    [sym_export] = ACTIONS(4301),
    [sym_extern] = ACTIONS(4301),
    [sym_final] = ACTIONS(4301),
    [sym_immutable] = ACTIONS(4301),
    [sym_import] = ACTIONS(4301),
    [sym_inout] = ACTIONS(4301),
    [sym_interface] = ACTIONS(4301),
    [sym_invariant] = ACTIONS(4301),
    [sym_mixin] = ACTIONS(4301),
    [sym_nothrow] = ACTIONS(4301),
    [sym_override] = ACTIONS(4301),
    [sym_package] = ACTIONS(4301),
    [sym_pragma] = ACTIONS(4301),
    [sym_private] = ACTIONS(4301),
    [sym_protected] = ACTIONS(4301),
    [sym_public] = ACTIONS(4301),
    [sym_pure] = ACTIONS(4301),
    [sym_ref] = ACTIONS(4301),
    [sym_return] = ACTIONS(4301),
    [sym_scope] = ACTIONS(4301),
    [sym_shared] = ACTIONS(4301),
    [sym_static] = ACTIONS(4301),
    [sym_struct] = ACTIONS(4301),
    [sym_synchronized] = ACTIONS(4301),
    [sym_template] = ACTIONS(4301),
    [sym_typeof] = ACTIONS(4301),
    [sym_union] = ACTIONS(4301),
    [sym_unittest] = ACTIONS(4301),
    [sym_version] = ACTIONS(4301),
    [sym_while] = ACTIONS(4301),
    [sym_gshared] = ACTIONS(4301),
    [sym_traits] = ACTIONS(4301),
    [sym_vector] = ACTIONS(4301),
    [sym_void] = ACTIONS(4301),
    [sym_directive] = ACTIONS(3),
  },
  [2716] = {
    [ts_builtin_sym_end] = ACTIONS(4572),
    [sym_identifier] = ACTIONS(4570),
    [sym_end_file] = ACTIONS(4570),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4572),
    [anon_sym_SEMI] = ACTIONS(4572),
    [anon_sym_TILDE] = ACTIONS(4572),
    [anon_sym_AT] = ACTIONS(4572),
    [sym_bool] = ACTIONS(4570),
    [sym_byte] = ACTIONS(4570),
    [sym_ubyte] = ACTIONS(4570),
    [sym_char] = ACTIONS(4570),
    [sym_short] = ACTIONS(4570),
    [sym_ushort] = ACTIONS(4570),
    [sym_int] = ACTIONS(4570),
    [sym_uint] = ACTIONS(4570),
    [sym_long] = ACTIONS(4570),
    [sym_ulong] = ACTIONS(4570),
    [sym_cent] = ACTIONS(4570),
    [sym_ucent] = ACTIONS(4570),
    [sym_wchar] = ACTIONS(4570),
    [sym_dchar] = ACTIONS(4570),
    [sym_float] = ACTIONS(4570),
    [sym_double] = ACTIONS(4570),
    [sym_real] = ACTIONS(4570),
    [sym_ifloat] = ACTIONS(4570),
    [sym_idouble] = ACTIONS(4570),
    [sym_ireal] = ACTIONS(4570),
    [sym_cfloat] = ACTIONS(4570),
    [sym_cdouble] = ACTIONS(4570),
    [sym_creal] = ACTIONS(4570),
    [sym_size_t] = ACTIONS(4570),
    [sym_ptrdiff_t] = ACTIONS(4570),
    [sym_string] = ACTIONS(4570),
    [sym_cstring] = ACTIONS(4570),
    [sym_dstring] = ACTIONS(4570),
    [sym_wstring] = ACTIONS(4570),
    [sym_noreturn] = ACTIONS(4570),
    [sym_this] = ACTIONS(4570),
    [sym_abstract] = ACTIONS(4570),
    [sym_alias] = ACTIONS(4570),
    [sym_align] = ACTIONS(4570),
    [sym_auto] = ACTIONS(4570),
    [sym_class] = ACTIONS(4570),
    [sym_const] = ACTIONS(4570),
    [sym_debug] = ACTIONS(4570),
    [sym_deprecated] = ACTIONS(4570),
    [sym_else] = ACTIONS(4570),
    [sym_enum] = ACTIONS(4570),
    [sym_export] = ACTIONS(4570),
    [sym_extern] = ACTIONS(4570),
    [sym_final] = ACTIONS(4570),
    [sym_immutable] = ACTIONS(4570),
    [sym_import] = ACTIONS(4570),
    [sym_inout] = ACTIONS(4570),
    [sym_interface] = ACTIONS(4570),
    [sym_invariant] = ACTIONS(4570),
    [sym_mixin] = ACTIONS(4570),
    [sym_nothrow] = ACTIONS(4570),
    [sym_override] = ACTIONS(4570),
    [sym_package] = ACTIONS(4570),
    [sym_pragma] = ACTIONS(4570),
    [sym_private] = ACTIONS(4570),
    [sym_protected] = ACTIONS(4570),
    [sym_public] = ACTIONS(4570),
    [sym_pure] = ACTIONS(4570),
    [sym_ref] = ACTIONS(4570),
    [sym_return] = ACTIONS(4570),
    [sym_scope] = ACTIONS(4570),
    [sym_shared] = ACTIONS(4570),
    [sym_static] = ACTIONS(4570),
    [sym_struct] = ACTIONS(4570),
    [sym_synchronized] = ACTIONS(4570),
    [sym_template] = ACTIONS(4570),
    [sym_typeof] = ACTIONS(4570),
    [sym_union] = ACTIONS(4570),
    [sym_unittest] = ACTIONS(4570),
    [sym_version] = ACTIONS(4570),
    [sym_while] = ACTIONS(4570),
    [sym_gshared] = ACTIONS(4570),
    [sym_traits] = ACTIONS(4570),
    [sym_vector] = ACTIONS(4570),
    [sym_void] = ACTIONS(4570),
    [sym_directive] = ACTIONS(3),
  },
  [2717] = {
    [ts_builtin_sym_end] = ACTIONS(4710),
    [sym_identifier] = ACTIONS(4708),
    [sym_end_file] = ACTIONS(4708),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4710),
    [anon_sym_SEMI] = ACTIONS(4710),
    [anon_sym_TILDE] = ACTIONS(4710),
    [anon_sym_AT] = ACTIONS(4710),
    [sym_bool] = ACTIONS(4708),
    [sym_byte] = ACTIONS(4708),
    [sym_ubyte] = ACTIONS(4708),
    [sym_char] = ACTIONS(4708),
    [sym_short] = ACTIONS(4708),
    [sym_ushort] = ACTIONS(4708),
    [sym_int] = ACTIONS(4708),
    [sym_uint] = ACTIONS(4708),
    [sym_long] = ACTIONS(4708),
    [sym_ulong] = ACTIONS(4708),
    [sym_cent] = ACTIONS(4708),
    [sym_ucent] = ACTIONS(4708),
    [sym_wchar] = ACTIONS(4708),
    [sym_dchar] = ACTIONS(4708),
    [sym_float] = ACTIONS(4708),
    [sym_double] = ACTIONS(4708),
    [sym_real] = ACTIONS(4708),
    [sym_ifloat] = ACTIONS(4708),
    [sym_idouble] = ACTIONS(4708),
    [sym_ireal] = ACTIONS(4708),
    [sym_cfloat] = ACTIONS(4708),
    [sym_cdouble] = ACTIONS(4708),
    [sym_creal] = ACTIONS(4708),
    [sym_size_t] = ACTIONS(4708),
    [sym_ptrdiff_t] = ACTIONS(4708),
    [sym_string] = ACTIONS(4708),
    [sym_cstring] = ACTIONS(4708),
    [sym_dstring] = ACTIONS(4708),
    [sym_wstring] = ACTIONS(4708),
    [sym_noreturn] = ACTIONS(4708),
    [sym_this] = ACTIONS(4708),
    [sym_abstract] = ACTIONS(4708),
    [sym_alias] = ACTIONS(4708),
    [sym_align] = ACTIONS(4708),
    [sym_auto] = ACTIONS(4708),
    [sym_class] = ACTIONS(4708),
    [sym_const] = ACTIONS(4708),
    [sym_debug] = ACTIONS(4708),
    [sym_deprecated] = ACTIONS(4708),
    [sym_else] = ACTIONS(4708),
    [sym_enum] = ACTIONS(4708),
    [sym_export] = ACTIONS(4708),
    [sym_extern] = ACTIONS(4708),
    [sym_final] = ACTIONS(4708),
    [sym_immutable] = ACTIONS(4708),
    [sym_import] = ACTIONS(4708),
    [sym_inout] = ACTIONS(4708),
    [sym_interface] = ACTIONS(4708),
    [sym_invariant] = ACTIONS(4708),
    [sym_mixin] = ACTIONS(4708),
    [sym_nothrow] = ACTIONS(4708),
    [sym_override] = ACTIONS(4708),
    [sym_package] = ACTIONS(4708),
    [sym_pragma] = ACTIONS(4708),
    [sym_private] = ACTIONS(4708),
    [sym_protected] = ACTIONS(4708),
    [sym_public] = ACTIONS(4708),
    [sym_pure] = ACTIONS(4708),
    [sym_ref] = ACTIONS(4708),
    [sym_return] = ACTIONS(4708),
    [sym_scope] = ACTIONS(4708),
    [sym_shared] = ACTIONS(4708),
    [sym_static] = ACTIONS(4708),
    [sym_struct] = ACTIONS(4708),
    [sym_synchronized] = ACTIONS(4708),
    [sym_template] = ACTIONS(4708),
    [sym_typeof] = ACTIONS(4708),
    [sym_union] = ACTIONS(4708),
    [sym_unittest] = ACTIONS(4708),
    [sym_version] = ACTIONS(4708),
    [sym_while] = ACTIONS(4708),
    [sym_gshared] = ACTIONS(4708),
    [sym_traits] = ACTIONS(4708),
    [sym_vector] = ACTIONS(4708),
    [sym_void] = ACTIONS(4708),
    [sym_directive] = ACTIONS(3),
  },
  [2718] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(6785),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_EQ] = ACTIONS(5119),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
  },
  [2719] = {
    [ts_builtin_sym_end] = ACTIONS(4588),
    [sym_identifier] = ACTIONS(4586),
    [sym_end_file] = ACTIONS(4586),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4588),
    [anon_sym_SEMI] = ACTIONS(4588),
    [anon_sym_TILDE] = ACTIONS(4588),
    [anon_sym_AT] = ACTIONS(4588),
    [sym_bool] = ACTIONS(4586),
    [sym_byte] = ACTIONS(4586),
    [sym_ubyte] = ACTIONS(4586),
    [sym_char] = ACTIONS(4586),
    [sym_short] = ACTIONS(4586),
    [sym_ushort] = ACTIONS(4586),
    [sym_int] = ACTIONS(4586),
    [sym_uint] = ACTIONS(4586),
    [sym_long] = ACTIONS(4586),
    [sym_ulong] = ACTIONS(4586),
    [sym_cent] = ACTIONS(4586),
    [sym_ucent] = ACTIONS(4586),
    [sym_wchar] = ACTIONS(4586),
    [sym_dchar] = ACTIONS(4586),
    [sym_float] = ACTIONS(4586),
    [sym_double] = ACTIONS(4586),
    [sym_real] = ACTIONS(4586),
    [sym_ifloat] = ACTIONS(4586),
    [sym_idouble] = ACTIONS(4586),
    [sym_ireal] = ACTIONS(4586),
    [sym_cfloat] = ACTIONS(4586),
    [sym_cdouble] = ACTIONS(4586),
    [sym_creal] = ACTIONS(4586),
    [sym_size_t] = ACTIONS(4586),
    [sym_ptrdiff_t] = ACTIONS(4586),
    [sym_string] = ACTIONS(4586),
    [sym_cstring] = ACTIONS(4586),
    [sym_dstring] = ACTIONS(4586),
    [sym_wstring] = ACTIONS(4586),
    [sym_noreturn] = ACTIONS(4586),
    [sym_this] = ACTIONS(4586),
    [sym_abstract] = ACTIONS(4586),
    [sym_alias] = ACTIONS(4586),
    [sym_align] = ACTIONS(4586),
    [sym_auto] = ACTIONS(4586),
    [sym_class] = ACTIONS(4586),
    [sym_const] = ACTIONS(4586),
    [sym_debug] = ACTIONS(4586),
    [sym_deprecated] = ACTIONS(4586),
    [sym_else] = ACTIONS(4586),
    [sym_enum] = ACTIONS(4586),
    [sym_export] = ACTIONS(4586),
    [sym_extern] = ACTIONS(4586),
    [sym_final] = ACTIONS(4586),
    [sym_immutable] = ACTIONS(4586),
    [sym_import] = ACTIONS(4586),
    [sym_inout] = ACTIONS(4586),
    [sym_interface] = ACTIONS(4586),
    [sym_invariant] = ACTIONS(4586),
    [sym_mixin] = ACTIONS(4586),
    [sym_nothrow] = ACTIONS(4586),
    [sym_override] = ACTIONS(4586),
    [sym_package] = ACTIONS(4586),
    [sym_pragma] = ACTIONS(4586),
    [sym_private] = ACTIONS(4586),
    [sym_protected] = ACTIONS(4586),
    [sym_public] = ACTIONS(4586),
    [sym_pure] = ACTIONS(4586),
    [sym_ref] = ACTIONS(4586),
    [sym_return] = ACTIONS(4586),
    [sym_scope] = ACTIONS(4586),
    [sym_shared] = ACTIONS(4586),
    [sym_static] = ACTIONS(4586),
    [sym_struct] = ACTIONS(4586),
    [sym_synchronized] = ACTIONS(4586),
    [sym_template] = ACTIONS(4586),
    [sym_typeof] = ACTIONS(4586),
    [sym_union] = ACTIONS(4586),
    [sym_unittest] = ACTIONS(4586),
    [sym_version] = ACTIONS(4586),
    [sym_while] = ACTIONS(4586),
    [sym_gshared] = ACTIONS(4586),
    [sym_traits] = ACTIONS(4586),
    [sym_vector] = ACTIONS(4586),
    [sym_void] = ACTIONS(4586),
    [sym_directive] = ACTIONS(3),
  },
  [2720] = {
    [ts_builtin_sym_end] = ACTIONS(4592),
    [sym_identifier] = ACTIONS(4590),
    [sym_end_file] = ACTIONS(4590),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4592),
    [anon_sym_SEMI] = ACTIONS(4592),
    [anon_sym_TILDE] = ACTIONS(4592),
    [anon_sym_AT] = ACTIONS(4592),
    [sym_bool] = ACTIONS(4590),
    [sym_byte] = ACTIONS(4590),
    [sym_ubyte] = ACTIONS(4590),
    [sym_char] = ACTIONS(4590),
    [sym_short] = ACTIONS(4590),
    [sym_ushort] = ACTIONS(4590),
    [sym_int] = ACTIONS(4590),
    [sym_uint] = ACTIONS(4590),
    [sym_long] = ACTIONS(4590),
    [sym_ulong] = ACTIONS(4590),
    [sym_cent] = ACTIONS(4590),
    [sym_ucent] = ACTIONS(4590),
    [sym_wchar] = ACTIONS(4590),
    [sym_dchar] = ACTIONS(4590),
    [sym_float] = ACTIONS(4590),
    [sym_double] = ACTIONS(4590),
    [sym_real] = ACTIONS(4590),
    [sym_ifloat] = ACTIONS(4590),
    [sym_idouble] = ACTIONS(4590),
    [sym_ireal] = ACTIONS(4590),
    [sym_cfloat] = ACTIONS(4590),
    [sym_cdouble] = ACTIONS(4590),
    [sym_creal] = ACTIONS(4590),
    [sym_size_t] = ACTIONS(4590),
    [sym_ptrdiff_t] = ACTIONS(4590),
    [sym_string] = ACTIONS(4590),
    [sym_cstring] = ACTIONS(4590),
    [sym_dstring] = ACTIONS(4590),
    [sym_wstring] = ACTIONS(4590),
    [sym_noreturn] = ACTIONS(4590),
    [sym_this] = ACTIONS(4590),
    [sym_abstract] = ACTIONS(4590),
    [sym_alias] = ACTIONS(4590),
    [sym_align] = ACTIONS(4590),
    [sym_auto] = ACTIONS(4590),
    [sym_class] = ACTIONS(4590),
    [sym_const] = ACTIONS(4590),
    [sym_debug] = ACTIONS(4590),
    [sym_deprecated] = ACTIONS(4590),
    [sym_else] = ACTIONS(4590),
    [sym_enum] = ACTIONS(4590),
    [sym_export] = ACTIONS(4590),
    [sym_extern] = ACTIONS(4590),
    [sym_final] = ACTIONS(4590),
    [sym_immutable] = ACTIONS(4590),
    [sym_import] = ACTIONS(4590),
    [sym_inout] = ACTIONS(4590),
    [sym_interface] = ACTIONS(4590),
    [sym_invariant] = ACTIONS(4590),
    [sym_mixin] = ACTIONS(4590),
    [sym_nothrow] = ACTIONS(4590),
    [sym_override] = ACTIONS(4590),
    [sym_package] = ACTIONS(4590),
    [sym_pragma] = ACTIONS(4590),
    [sym_private] = ACTIONS(4590),
    [sym_protected] = ACTIONS(4590),
    [sym_public] = ACTIONS(4590),
    [sym_pure] = ACTIONS(4590),
    [sym_ref] = ACTIONS(4590),
    [sym_return] = ACTIONS(4590),
    [sym_scope] = ACTIONS(4590),
    [sym_shared] = ACTIONS(4590),
    [sym_static] = ACTIONS(4590),
    [sym_struct] = ACTIONS(4590),
    [sym_synchronized] = ACTIONS(4590),
    [sym_template] = ACTIONS(4590),
    [sym_typeof] = ACTIONS(4590),
    [sym_union] = ACTIONS(4590),
    [sym_unittest] = ACTIONS(4590),
    [sym_version] = ACTIONS(4590),
    [sym_while] = ACTIONS(4590),
    [sym_gshared] = ACTIONS(4590),
    [sym_traits] = ACTIONS(4590),
    [sym_vector] = ACTIONS(4590),
    [sym_void] = ACTIONS(4590),
    [sym_directive] = ACTIONS(3),
  },
  [2721] = {
    [ts_builtin_sym_end] = ACTIONS(4748),
    [sym_identifier] = ACTIONS(4746),
    [sym_end_file] = ACTIONS(4746),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4748),
    [anon_sym_SEMI] = ACTIONS(4748),
    [anon_sym_TILDE] = ACTIONS(4748),
    [anon_sym_AT] = ACTIONS(4748),
    [sym_bool] = ACTIONS(4746),
    [sym_byte] = ACTIONS(4746),
    [sym_ubyte] = ACTIONS(4746),
    [sym_char] = ACTIONS(4746),
    [sym_short] = ACTIONS(4746),
    [sym_ushort] = ACTIONS(4746),
    [sym_int] = ACTIONS(4746),
    [sym_uint] = ACTIONS(4746),
    [sym_long] = ACTIONS(4746),
    [sym_ulong] = ACTIONS(4746),
    [sym_cent] = ACTIONS(4746),
    [sym_ucent] = ACTIONS(4746),
    [sym_wchar] = ACTIONS(4746),
    [sym_dchar] = ACTIONS(4746),
    [sym_float] = ACTIONS(4746),
    [sym_double] = ACTIONS(4746),
    [sym_real] = ACTIONS(4746),
    [sym_ifloat] = ACTIONS(4746),
    [sym_idouble] = ACTIONS(4746),
    [sym_ireal] = ACTIONS(4746),
    [sym_cfloat] = ACTIONS(4746),
    [sym_cdouble] = ACTIONS(4746),
    [sym_creal] = ACTIONS(4746),
    [sym_size_t] = ACTIONS(4746),
    [sym_ptrdiff_t] = ACTIONS(4746),
    [sym_string] = ACTIONS(4746),
    [sym_cstring] = ACTIONS(4746),
    [sym_dstring] = ACTIONS(4746),
    [sym_wstring] = ACTIONS(4746),
    [sym_noreturn] = ACTIONS(4746),
    [sym_this] = ACTIONS(4746),
    [sym_abstract] = ACTIONS(4746),
    [sym_alias] = ACTIONS(4746),
    [sym_align] = ACTIONS(4746),
    [sym_auto] = ACTIONS(4746),
    [sym_class] = ACTIONS(4746),
    [sym_const] = ACTIONS(4746),
    [sym_debug] = ACTIONS(4746),
    [sym_deprecated] = ACTIONS(4746),
    [sym_else] = ACTIONS(4746),
    [sym_enum] = ACTIONS(4746),
    [sym_export] = ACTIONS(4746),
    [sym_extern] = ACTIONS(4746),
    [sym_final] = ACTIONS(4746),
    [sym_immutable] = ACTIONS(4746),
    [sym_import] = ACTIONS(4746),
    [sym_inout] = ACTIONS(4746),
    [sym_interface] = ACTIONS(4746),
    [sym_invariant] = ACTIONS(4746),
    [sym_mixin] = ACTIONS(4746),
    [sym_nothrow] = ACTIONS(4746),
    [sym_override] = ACTIONS(4746),
    [sym_package] = ACTIONS(4746),
    [sym_pragma] = ACTIONS(4746),
    [sym_private] = ACTIONS(4746),
    [sym_protected] = ACTIONS(4746),
    [sym_public] = ACTIONS(4746),
    [sym_pure] = ACTIONS(4746),
    [sym_ref] = ACTIONS(4746),
    [sym_return] = ACTIONS(4746),
    [sym_scope] = ACTIONS(4746),
    [sym_shared] = ACTIONS(4746),
    [sym_static] = ACTIONS(4746),
    [sym_struct] = ACTIONS(4746),
    [sym_synchronized] = ACTIONS(4746),
    [sym_template] = ACTIONS(4746),
    [sym_typeof] = ACTIONS(4746),
    [sym_union] = ACTIONS(4746),
    [sym_unittest] = ACTIONS(4746),
    [sym_version] = ACTIONS(4746),
    [sym_while] = ACTIONS(4746),
    [sym_gshared] = ACTIONS(4746),
    [sym_traits] = ACTIONS(4746),
    [sym_vector] = ACTIONS(4746),
    [sym_void] = ACTIONS(4746),
    [sym_directive] = ACTIONS(3),
  },
  [2722] = {
    [ts_builtin_sym_end] = ACTIONS(4474),
    [sym_identifier] = ACTIONS(4472),
    [sym_end_file] = ACTIONS(4472),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4474),
    [anon_sym_SEMI] = ACTIONS(4474),
    [anon_sym_TILDE] = ACTIONS(4474),
    [anon_sym_AT] = ACTIONS(4474),
    [sym_bool] = ACTIONS(4472),
    [sym_byte] = ACTIONS(4472),
    [sym_ubyte] = ACTIONS(4472),
    [sym_char] = ACTIONS(4472),
    [sym_short] = ACTIONS(4472),
    [sym_ushort] = ACTIONS(4472),
    [sym_int] = ACTIONS(4472),
    [sym_uint] = ACTIONS(4472),
    [sym_long] = ACTIONS(4472),
    [sym_ulong] = ACTIONS(4472),
    [sym_cent] = ACTIONS(4472),
    [sym_ucent] = ACTIONS(4472),
    [sym_wchar] = ACTIONS(4472),
    [sym_dchar] = ACTIONS(4472),
    [sym_float] = ACTIONS(4472),
    [sym_double] = ACTIONS(4472),
    [sym_real] = ACTIONS(4472),
    [sym_ifloat] = ACTIONS(4472),
    [sym_idouble] = ACTIONS(4472),
    [sym_ireal] = ACTIONS(4472),
    [sym_cfloat] = ACTIONS(4472),
    [sym_cdouble] = ACTIONS(4472),
    [sym_creal] = ACTIONS(4472),
    [sym_size_t] = ACTIONS(4472),
    [sym_ptrdiff_t] = ACTIONS(4472),
    [sym_string] = ACTIONS(4472),
    [sym_cstring] = ACTIONS(4472),
    [sym_dstring] = ACTIONS(4472),
    [sym_wstring] = ACTIONS(4472),
    [sym_noreturn] = ACTIONS(4472),
    [sym_this] = ACTIONS(4472),
    [sym_abstract] = ACTIONS(4472),
    [sym_alias] = ACTIONS(4472),
    [sym_align] = ACTIONS(4472),
    [sym_auto] = ACTIONS(4472),
    [sym_class] = ACTIONS(4472),
    [sym_const] = ACTIONS(4472),
    [sym_debug] = ACTIONS(4472),
    [sym_deprecated] = ACTIONS(4472),
    [sym_else] = ACTIONS(4472),
    [sym_enum] = ACTIONS(4472),
    [sym_export] = ACTIONS(4472),
    [sym_extern] = ACTIONS(4472),
    [sym_final] = ACTIONS(4472),
    [sym_immutable] = ACTIONS(4472),
    [sym_import] = ACTIONS(4472),
    [sym_inout] = ACTIONS(4472),
    [sym_interface] = ACTIONS(4472),
    [sym_invariant] = ACTIONS(4472),
    [sym_mixin] = ACTIONS(4472),
    [sym_nothrow] = ACTIONS(4472),
    [sym_override] = ACTIONS(4472),
    [sym_package] = ACTIONS(4472),
    [sym_pragma] = ACTIONS(4472),
    [sym_private] = ACTIONS(4472),
    [sym_protected] = ACTIONS(4472),
    [sym_public] = ACTIONS(4472),
    [sym_pure] = ACTIONS(4472),
    [sym_ref] = ACTIONS(4472),
    [sym_return] = ACTIONS(4472),
    [sym_scope] = ACTIONS(4472),
    [sym_shared] = ACTIONS(4472),
    [sym_static] = ACTIONS(4472),
    [sym_struct] = ACTIONS(4472),
    [sym_synchronized] = ACTIONS(4472),
    [sym_template] = ACTIONS(4472),
    [sym_typeof] = ACTIONS(4472),
    [sym_union] = ACTIONS(4472),
    [sym_unittest] = ACTIONS(4472),
    [sym_version] = ACTIONS(4472),
    [sym_while] = ACTIONS(4472),
    [sym_gshared] = ACTIONS(4472),
    [sym_traits] = ACTIONS(4472),
    [sym_vector] = ACTIONS(4472),
    [sym_void] = ACTIONS(4472),
    [sym_directive] = ACTIONS(3),
  },
  [2723] = {
    [ts_builtin_sym_end] = ACTIONS(4752),
    [sym_identifier] = ACTIONS(4750),
    [sym_end_file] = ACTIONS(4750),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4752),
    [anon_sym_SEMI] = ACTIONS(4752),
    [anon_sym_TILDE] = ACTIONS(4752),
    [anon_sym_AT] = ACTIONS(4752),
    [sym_bool] = ACTIONS(4750),
    [sym_byte] = ACTIONS(4750),
    [sym_ubyte] = ACTIONS(4750),
    [sym_char] = ACTIONS(4750),
    [sym_short] = ACTIONS(4750),
    [sym_ushort] = ACTIONS(4750),
    [sym_int] = ACTIONS(4750),
    [sym_uint] = ACTIONS(4750),
    [sym_long] = ACTIONS(4750),
    [sym_ulong] = ACTIONS(4750),
    [sym_cent] = ACTIONS(4750),
    [sym_ucent] = ACTIONS(4750),
    [sym_wchar] = ACTIONS(4750),
    [sym_dchar] = ACTIONS(4750),
    [sym_float] = ACTIONS(4750),
    [sym_double] = ACTIONS(4750),
    [sym_real] = ACTIONS(4750),
    [sym_ifloat] = ACTIONS(4750),
    [sym_idouble] = ACTIONS(4750),
    [sym_ireal] = ACTIONS(4750),
    [sym_cfloat] = ACTIONS(4750),
    [sym_cdouble] = ACTIONS(4750),
    [sym_creal] = ACTIONS(4750),
    [sym_size_t] = ACTIONS(4750),
    [sym_ptrdiff_t] = ACTIONS(4750),
    [sym_string] = ACTIONS(4750),
    [sym_cstring] = ACTIONS(4750),
    [sym_dstring] = ACTIONS(4750),
    [sym_wstring] = ACTIONS(4750),
    [sym_noreturn] = ACTIONS(4750),
    [sym_this] = ACTIONS(4750),
    [sym_abstract] = ACTIONS(4750),
    [sym_alias] = ACTIONS(4750),
    [sym_align] = ACTIONS(4750),
    [sym_auto] = ACTIONS(4750),
    [sym_class] = ACTIONS(4750),
    [sym_const] = ACTIONS(4750),
    [sym_debug] = ACTIONS(4750),
    [sym_deprecated] = ACTIONS(4750),
    [sym_else] = ACTIONS(4750),
    [sym_enum] = ACTIONS(4750),
    [sym_export] = ACTIONS(4750),
    [sym_extern] = ACTIONS(4750),
    [sym_final] = ACTIONS(4750),
    [sym_immutable] = ACTIONS(4750),
    [sym_import] = ACTIONS(4750),
    [sym_inout] = ACTIONS(4750),
    [sym_interface] = ACTIONS(4750),
    [sym_invariant] = ACTIONS(4750),
    [sym_mixin] = ACTIONS(4750),
    [sym_nothrow] = ACTIONS(4750),
    [sym_override] = ACTIONS(4750),
    [sym_package] = ACTIONS(4750),
    [sym_pragma] = ACTIONS(4750),
    [sym_private] = ACTIONS(4750),
    [sym_protected] = ACTIONS(4750),
    [sym_public] = ACTIONS(4750),
    [sym_pure] = ACTIONS(4750),
    [sym_ref] = ACTIONS(4750),
    [sym_return] = ACTIONS(4750),
    [sym_scope] = ACTIONS(4750),
    [sym_shared] = ACTIONS(4750),
    [sym_static] = ACTIONS(4750),
    [sym_struct] = ACTIONS(4750),
    [sym_synchronized] = ACTIONS(4750),
    [sym_template] = ACTIONS(4750),
    [sym_typeof] = ACTIONS(4750),
    [sym_union] = ACTIONS(4750),
    [sym_unittest] = ACTIONS(4750),
    [sym_version] = ACTIONS(4750),
    [sym_while] = ACTIONS(4750),
    [sym_gshared] = ACTIONS(4750),
    [sym_traits] = ACTIONS(4750),
    [sym_vector] = ACTIONS(4750),
    [sym_void] = ACTIONS(4750),
    [sym_directive] = ACTIONS(3),
  },
  [2724] = {
    [ts_builtin_sym_end] = ACTIONS(4934),
    [sym_identifier] = ACTIONS(4932),
    [sym_end_file] = ACTIONS(4932),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4934),
    [anon_sym_SEMI] = ACTIONS(4934),
    [anon_sym_TILDE] = ACTIONS(4934),
    [anon_sym_AT] = ACTIONS(4934),
    [sym_bool] = ACTIONS(4932),
    [sym_byte] = ACTIONS(4932),
    [sym_ubyte] = ACTIONS(4932),
    [sym_char] = ACTIONS(4932),
    [sym_short] = ACTIONS(4932),
    [sym_ushort] = ACTIONS(4932),
    [sym_int] = ACTIONS(4932),
    [sym_uint] = ACTIONS(4932),
    [sym_long] = ACTIONS(4932),
    [sym_ulong] = ACTIONS(4932),
    [sym_cent] = ACTIONS(4932),
    [sym_ucent] = ACTIONS(4932),
    [sym_wchar] = ACTIONS(4932),
    [sym_dchar] = ACTIONS(4932),
    [sym_float] = ACTIONS(4932),
    [sym_double] = ACTIONS(4932),
    [sym_real] = ACTIONS(4932),
    [sym_ifloat] = ACTIONS(4932),
    [sym_idouble] = ACTIONS(4932),
    [sym_ireal] = ACTIONS(4932),
    [sym_cfloat] = ACTIONS(4932),
    [sym_cdouble] = ACTIONS(4932),
    [sym_creal] = ACTIONS(4932),
    [sym_size_t] = ACTIONS(4932),
    [sym_ptrdiff_t] = ACTIONS(4932),
    [sym_string] = ACTIONS(4932),
    [sym_cstring] = ACTIONS(4932),
    [sym_dstring] = ACTIONS(4932),
    [sym_wstring] = ACTIONS(4932),
    [sym_noreturn] = ACTIONS(4932),
    [sym_this] = ACTIONS(4932),
    [sym_abstract] = ACTIONS(4932),
    [sym_alias] = ACTIONS(4932),
    [sym_align] = ACTIONS(4932),
    [sym_auto] = ACTIONS(4932),
    [sym_class] = ACTIONS(4932),
    [sym_const] = ACTIONS(4932),
    [sym_debug] = ACTIONS(4932),
    [sym_deprecated] = ACTIONS(4932),
    [sym_else] = ACTIONS(4932),
    [sym_enum] = ACTIONS(4932),
    [sym_export] = ACTIONS(4932),
    [sym_extern] = ACTIONS(4932),
    [sym_final] = ACTIONS(4932),
    [sym_immutable] = ACTIONS(4932),
    [sym_import] = ACTIONS(4932),
    [sym_inout] = ACTIONS(4932),
    [sym_interface] = ACTIONS(4932),
    [sym_invariant] = ACTIONS(4932),
    [sym_mixin] = ACTIONS(4932),
    [sym_nothrow] = ACTIONS(4932),
    [sym_override] = ACTIONS(4932),
    [sym_package] = ACTIONS(4932),
    [sym_pragma] = ACTIONS(4932),
    [sym_private] = ACTIONS(4932),
    [sym_protected] = ACTIONS(4932),
    [sym_public] = ACTIONS(4932),
    [sym_pure] = ACTIONS(4932),
    [sym_ref] = ACTIONS(4932),
    [sym_return] = ACTIONS(4932),
    [sym_scope] = ACTIONS(4932),
    [sym_shared] = ACTIONS(4932),
    [sym_static] = ACTIONS(4932),
    [sym_struct] = ACTIONS(4932),
    [sym_synchronized] = ACTIONS(4932),
    [sym_template] = ACTIONS(4932),
    [sym_typeof] = ACTIONS(4932),
    [sym_union] = ACTIONS(4932),
    [sym_unittest] = ACTIONS(4932),
    [sym_version] = ACTIONS(4932),
    [sym_while] = ACTIONS(4932),
    [sym_gshared] = ACTIONS(4932),
    [sym_traits] = ACTIONS(4932),
    [sym_vector] = ACTIONS(4932),
    [sym_void] = ACTIONS(4932),
    [sym_directive] = ACTIONS(3),
  },
  [2725] = {
    [ts_builtin_sym_end] = ACTIONS(4466),
    [sym_identifier] = ACTIONS(4464),
    [sym_end_file] = ACTIONS(4464),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4466),
    [anon_sym_SEMI] = ACTIONS(4466),
    [anon_sym_TILDE] = ACTIONS(4466),
    [anon_sym_AT] = ACTIONS(4466),
    [sym_bool] = ACTIONS(4464),
    [sym_byte] = ACTIONS(4464),
    [sym_ubyte] = ACTIONS(4464),
    [sym_char] = ACTIONS(4464),
    [sym_short] = ACTIONS(4464),
    [sym_ushort] = ACTIONS(4464),
    [sym_int] = ACTIONS(4464),
    [sym_uint] = ACTIONS(4464),
    [sym_long] = ACTIONS(4464),
    [sym_ulong] = ACTIONS(4464),
    [sym_cent] = ACTIONS(4464),
    [sym_ucent] = ACTIONS(4464),
    [sym_wchar] = ACTIONS(4464),
    [sym_dchar] = ACTIONS(4464),
    [sym_float] = ACTIONS(4464),
    [sym_double] = ACTIONS(4464),
    [sym_real] = ACTIONS(4464),
    [sym_ifloat] = ACTIONS(4464),
    [sym_idouble] = ACTIONS(4464),
    [sym_ireal] = ACTIONS(4464),
    [sym_cfloat] = ACTIONS(4464),
    [sym_cdouble] = ACTIONS(4464),
    [sym_creal] = ACTIONS(4464),
    [sym_size_t] = ACTIONS(4464),
    [sym_ptrdiff_t] = ACTIONS(4464),
    [sym_string] = ACTIONS(4464),
    [sym_cstring] = ACTIONS(4464),
    [sym_dstring] = ACTIONS(4464),
    [sym_wstring] = ACTIONS(4464),
    [sym_noreturn] = ACTIONS(4464),
    [sym_this] = ACTIONS(4464),
    [sym_abstract] = ACTIONS(4464),
    [sym_alias] = ACTIONS(4464),
    [sym_align] = ACTIONS(4464),
    [sym_auto] = ACTIONS(4464),
    [sym_class] = ACTIONS(4464),
    [sym_const] = ACTIONS(4464),
    [sym_debug] = ACTIONS(4464),
    [sym_deprecated] = ACTIONS(4464),
    [sym_else] = ACTIONS(4464),
    [sym_enum] = ACTIONS(4464),
    [sym_export] = ACTIONS(4464),
    [sym_extern] = ACTIONS(4464),
    [sym_final] = ACTIONS(4464),
    [sym_immutable] = ACTIONS(4464),
    [sym_import] = ACTIONS(4464),
    [sym_inout] = ACTIONS(4464),
    [sym_interface] = ACTIONS(4464),
    [sym_invariant] = ACTIONS(4464),
    [sym_mixin] = ACTIONS(4464),
    [sym_nothrow] = ACTIONS(4464),
    [sym_override] = ACTIONS(4464),
    [sym_package] = ACTIONS(4464),
    [sym_pragma] = ACTIONS(4464),
    [sym_private] = ACTIONS(4464),
    [sym_protected] = ACTIONS(4464),
    [sym_public] = ACTIONS(4464),
    [sym_pure] = ACTIONS(4464),
    [sym_ref] = ACTIONS(4464),
    [sym_return] = ACTIONS(4464),
    [sym_scope] = ACTIONS(4464),
    [sym_shared] = ACTIONS(4464),
    [sym_static] = ACTIONS(4464),
    [sym_struct] = ACTIONS(4464),
    [sym_synchronized] = ACTIONS(4464),
    [sym_template] = ACTIONS(4464),
    [sym_typeof] = ACTIONS(4464),
    [sym_union] = ACTIONS(4464),
    [sym_unittest] = ACTIONS(4464),
    [sym_version] = ACTIONS(4464),
    [sym_while] = ACTIONS(4464),
    [sym_gshared] = ACTIONS(4464),
    [sym_traits] = ACTIONS(4464),
    [sym_vector] = ACTIONS(4464),
    [sym_void] = ACTIONS(4464),
    [sym_directive] = ACTIONS(3),
  },
  [2726] = {
    [ts_builtin_sym_end] = ACTIONS(4324),
    [sym_identifier] = ACTIONS(4321),
    [sym_end_file] = ACTIONS(4321),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4324),
    [anon_sym_SEMI] = ACTIONS(4324),
    [anon_sym_TILDE] = ACTIONS(4324),
    [anon_sym_AT] = ACTIONS(4324),
    [sym_bool] = ACTIONS(4321),
    [sym_byte] = ACTIONS(4321),
    [sym_ubyte] = ACTIONS(4321),
    [sym_char] = ACTIONS(4321),
    [sym_short] = ACTIONS(4321),
    [sym_ushort] = ACTIONS(4321),
    [sym_int] = ACTIONS(4321),
    [sym_uint] = ACTIONS(4321),
    [sym_long] = ACTIONS(4321),
    [sym_ulong] = ACTIONS(4321),
    [sym_cent] = ACTIONS(4321),
    [sym_ucent] = ACTIONS(4321),
    [sym_wchar] = ACTIONS(4321),
    [sym_dchar] = ACTIONS(4321),
    [sym_float] = ACTIONS(4321),
    [sym_double] = ACTIONS(4321),
    [sym_real] = ACTIONS(4321),
    [sym_ifloat] = ACTIONS(4321),
    [sym_idouble] = ACTIONS(4321),
    [sym_ireal] = ACTIONS(4321),
    [sym_cfloat] = ACTIONS(4321),
    [sym_cdouble] = ACTIONS(4321),
    [sym_creal] = ACTIONS(4321),
    [sym_size_t] = ACTIONS(4321),
    [sym_ptrdiff_t] = ACTIONS(4321),
    [sym_string] = ACTIONS(4321),
    [sym_cstring] = ACTIONS(4321),
    [sym_dstring] = ACTIONS(4321),
    [sym_wstring] = ACTIONS(4321),
    [sym_noreturn] = ACTIONS(4321),
    [sym_this] = ACTIONS(4321),
    [sym_abstract] = ACTIONS(4321),
    [sym_alias] = ACTIONS(4321),
    [sym_align] = ACTIONS(4321),
    [sym_auto] = ACTIONS(4321),
    [sym_class] = ACTIONS(4321),
    [sym_const] = ACTIONS(4321),
    [sym_debug] = ACTIONS(4321),
    [sym_deprecated] = ACTIONS(4321),
    [sym_else] = ACTIONS(4321),
    [sym_enum] = ACTIONS(4321),
    [sym_export] = ACTIONS(4321),
    [sym_extern] = ACTIONS(4321),
    [sym_final] = ACTIONS(4321),
    [sym_immutable] = ACTIONS(4321),
    [sym_import] = ACTIONS(4321),
    [sym_inout] = ACTIONS(4321),
    [sym_interface] = ACTIONS(4321),
    [sym_invariant] = ACTIONS(4321),
    [sym_mixin] = ACTIONS(4321),
    [sym_nothrow] = ACTIONS(4321),
    [sym_override] = ACTIONS(4321),
    [sym_package] = ACTIONS(4321),
    [sym_pragma] = ACTIONS(4321),
    [sym_private] = ACTIONS(4321),
    [sym_protected] = ACTIONS(4321),
    [sym_public] = ACTIONS(4321),
    [sym_pure] = ACTIONS(4321),
    [sym_ref] = ACTIONS(4321),
    [sym_return] = ACTIONS(4321),
    [sym_scope] = ACTIONS(4321),
    [sym_shared] = ACTIONS(4321),
    [sym_static] = ACTIONS(4321),
    [sym_struct] = ACTIONS(4321),
    [sym_synchronized] = ACTIONS(4321),
    [sym_template] = ACTIONS(4321),
    [sym_typeof] = ACTIONS(4321),
    [sym_union] = ACTIONS(4321),
    [sym_unittest] = ACTIONS(4321),
    [sym_version] = ACTIONS(4321),
    [sym_while] = ACTIONS(4321),
    [sym_gshared] = ACTIONS(4321),
    [sym_traits] = ACTIONS(4321),
    [sym_vector] = ACTIONS(4321),
    [sym_void] = ACTIONS(4321),
    [sym_directive] = ACTIONS(3),
  },
  [2727] = {
    [ts_builtin_sym_end] = ACTIONS(4608),
    [sym_identifier] = ACTIONS(4606),
    [sym_end_file] = ACTIONS(4606),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4608),
    [anon_sym_SEMI] = ACTIONS(4608),
    [anon_sym_TILDE] = ACTIONS(4608),
    [anon_sym_AT] = ACTIONS(4608),
    [sym_bool] = ACTIONS(4606),
    [sym_byte] = ACTIONS(4606),
    [sym_ubyte] = ACTIONS(4606),
    [sym_char] = ACTIONS(4606),
    [sym_short] = ACTIONS(4606),
    [sym_ushort] = ACTIONS(4606),
    [sym_int] = ACTIONS(4606),
    [sym_uint] = ACTIONS(4606),
    [sym_long] = ACTIONS(4606),
    [sym_ulong] = ACTIONS(4606),
    [sym_cent] = ACTIONS(4606),
    [sym_ucent] = ACTIONS(4606),
    [sym_wchar] = ACTIONS(4606),
    [sym_dchar] = ACTIONS(4606),
    [sym_float] = ACTIONS(4606),
    [sym_double] = ACTIONS(4606),
    [sym_real] = ACTIONS(4606),
    [sym_ifloat] = ACTIONS(4606),
    [sym_idouble] = ACTIONS(4606),
    [sym_ireal] = ACTIONS(4606),
    [sym_cfloat] = ACTIONS(4606),
    [sym_cdouble] = ACTIONS(4606),
    [sym_creal] = ACTIONS(4606),
    [sym_size_t] = ACTIONS(4606),
    [sym_ptrdiff_t] = ACTIONS(4606),
    [sym_string] = ACTIONS(4606),
    [sym_cstring] = ACTIONS(4606),
    [sym_dstring] = ACTIONS(4606),
    [sym_wstring] = ACTIONS(4606),
    [sym_noreturn] = ACTIONS(4606),
    [sym_this] = ACTIONS(4606),
    [sym_abstract] = ACTIONS(4606),
    [sym_alias] = ACTIONS(4606),
    [sym_align] = ACTIONS(4606),
    [sym_auto] = ACTIONS(4606),
    [sym_class] = ACTIONS(4606),
    [sym_const] = ACTIONS(4606),
    [sym_debug] = ACTIONS(4606),
    [sym_deprecated] = ACTIONS(4606),
    [sym_else] = ACTIONS(4606),
    [sym_enum] = ACTIONS(4606),
    [sym_export] = ACTIONS(4606),
    [sym_extern] = ACTIONS(4606),
    [sym_final] = ACTIONS(4606),
    [sym_immutable] = ACTIONS(4606),
    [sym_import] = ACTIONS(4606),
    [sym_inout] = ACTIONS(4606),
    [sym_interface] = ACTIONS(4606),
    [sym_invariant] = ACTIONS(4606),
    [sym_mixin] = ACTIONS(4606),
    [sym_nothrow] = ACTIONS(4606),
    [sym_override] = ACTIONS(4606),
    [sym_package] = ACTIONS(4606),
    [sym_pragma] = ACTIONS(4606),
    [sym_private] = ACTIONS(4606),
    [sym_protected] = ACTIONS(4606),
    [sym_public] = ACTIONS(4606),
    [sym_pure] = ACTIONS(4606),
    [sym_ref] = ACTIONS(4606),
    [sym_return] = ACTIONS(4606),
    [sym_scope] = ACTIONS(4606),
    [sym_shared] = ACTIONS(4606),
    [sym_static] = ACTIONS(4606),
    [sym_struct] = ACTIONS(4606),
    [sym_synchronized] = ACTIONS(4606),
    [sym_template] = ACTIONS(4606),
    [sym_typeof] = ACTIONS(4606),
    [sym_union] = ACTIONS(4606),
    [sym_unittest] = ACTIONS(4606),
    [sym_version] = ACTIONS(4606),
    [sym_while] = ACTIONS(4606),
    [sym_gshared] = ACTIONS(4606),
    [sym_traits] = ACTIONS(4606),
    [sym_vector] = ACTIONS(4606),
    [sym_void] = ACTIONS(4606),
    [sym_directive] = ACTIONS(3),
  },
  [2728] = {
    [ts_builtin_sym_end] = ACTIONS(4962),
    [sym_identifier] = ACTIONS(4960),
    [sym_end_file] = ACTIONS(4960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4962),
    [anon_sym_SEMI] = ACTIONS(4962),
    [anon_sym_TILDE] = ACTIONS(4962),
    [anon_sym_AT] = ACTIONS(4962),
    [sym_bool] = ACTIONS(4960),
    [sym_byte] = ACTIONS(4960),
    [sym_ubyte] = ACTIONS(4960),
    [sym_char] = ACTIONS(4960),
    [sym_short] = ACTIONS(4960),
    [sym_ushort] = ACTIONS(4960),
    [sym_int] = ACTIONS(4960),
    [sym_uint] = ACTIONS(4960),
    [sym_long] = ACTIONS(4960),
    [sym_ulong] = ACTIONS(4960),
    [sym_cent] = ACTIONS(4960),
    [sym_ucent] = ACTIONS(4960),
    [sym_wchar] = ACTIONS(4960),
    [sym_dchar] = ACTIONS(4960),
    [sym_float] = ACTIONS(4960),
    [sym_double] = ACTIONS(4960),
    [sym_real] = ACTIONS(4960),
    [sym_ifloat] = ACTIONS(4960),
    [sym_idouble] = ACTIONS(4960),
    [sym_ireal] = ACTIONS(4960),
    [sym_cfloat] = ACTIONS(4960),
    [sym_cdouble] = ACTIONS(4960),
    [sym_creal] = ACTIONS(4960),
    [sym_size_t] = ACTIONS(4960),
    [sym_ptrdiff_t] = ACTIONS(4960),
    [sym_string] = ACTIONS(4960),
    [sym_cstring] = ACTIONS(4960),
    [sym_dstring] = ACTIONS(4960),
    [sym_wstring] = ACTIONS(4960),
    [sym_noreturn] = ACTIONS(4960),
    [sym_this] = ACTIONS(4960),
    [sym_abstract] = ACTIONS(4960),
    [sym_alias] = ACTIONS(4960),
    [sym_align] = ACTIONS(4960),
    [sym_auto] = ACTIONS(4960),
    [sym_class] = ACTIONS(4960),
    [sym_const] = ACTIONS(4960),
    [sym_debug] = ACTIONS(4960),
    [sym_deprecated] = ACTIONS(4960),
    [sym_else] = ACTIONS(4960),
    [sym_enum] = ACTIONS(4960),
    [sym_export] = ACTIONS(4960),
    [sym_extern] = ACTIONS(4960),
    [sym_final] = ACTIONS(4960),
    [sym_immutable] = ACTIONS(4960),
    [sym_import] = ACTIONS(4960),
    [sym_inout] = ACTIONS(4960),
    [sym_interface] = ACTIONS(4960),
    [sym_invariant] = ACTIONS(4960),
    [sym_mixin] = ACTIONS(4960),
    [sym_nothrow] = ACTIONS(4960),
    [sym_override] = ACTIONS(4960),
    [sym_package] = ACTIONS(4960),
    [sym_pragma] = ACTIONS(4960),
    [sym_private] = ACTIONS(4960),
    [sym_protected] = ACTIONS(4960),
    [sym_public] = ACTIONS(4960),
    [sym_pure] = ACTIONS(4960),
    [sym_ref] = ACTIONS(4960),
    [sym_return] = ACTIONS(4960),
    [sym_scope] = ACTIONS(4960),
    [sym_shared] = ACTIONS(4960),
    [sym_static] = ACTIONS(4960),
    [sym_struct] = ACTIONS(4960),
    [sym_synchronized] = ACTIONS(4960),
    [sym_template] = ACTIONS(4960),
    [sym_typeof] = ACTIONS(4960),
    [sym_union] = ACTIONS(4960),
    [sym_unittest] = ACTIONS(4960),
    [sym_version] = ACTIONS(4960),
    [sym_while] = ACTIONS(4960),
    [sym_gshared] = ACTIONS(4960),
    [sym_traits] = ACTIONS(4960),
    [sym_vector] = ACTIONS(4960),
    [sym_void] = ACTIONS(4960),
    [sym_directive] = ACTIONS(3),
  },
  [2729] = {
    [ts_builtin_sym_end] = ACTIONS(4696),
    [sym_identifier] = ACTIONS(4694),
    [sym_end_file] = ACTIONS(4694),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4696),
    [anon_sym_SEMI] = ACTIONS(4696),
    [anon_sym_TILDE] = ACTIONS(4696),
    [anon_sym_AT] = ACTIONS(4696),
    [sym_bool] = ACTIONS(4694),
    [sym_byte] = ACTIONS(4694),
    [sym_ubyte] = ACTIONS(4694),
    [sym_char] = ACTIONS(4694),
    [sym_short] = ACTIONS(4694),
    [sym_ushort] = ACTIONS(4694),
    [sym_int] = ACTIONS(4694),
    [sym_uint] = ACTIONS(4694),
    [sym_long] = ACTIONS(4694),
    [sym_ulong] = ACTIONS(4694),
    [sym_cent] = ACTIONS(4694),
    [sym_ucent] = ACTIONS(4694),
    [sym_wchar] = ACTIONS(4694),
    [sym_dchar] = ACTIONS(4694),
    [sym_float] = ACTIONS(4694),
    [sym_double] = ACTIONS(4694),
    [sym_real] = ACTIONS(4694),
    [sym_ifloat] = ACTIONS(4694),
    [sym_idouble] = ACTIONS(4694),
    [sym_ireal] = ACTIONS(4694),
    [sym_cfloat] = ACTIONS(4694),
    [sym_cdouble] = ACTIONS(4694),
    [sym_creal] = ACTIONS(4694),
    [sym_size_t] = ACTIONS(4694),
    [sym_ptrdiff_t] = ACTIONS(4694),
    [sym_string] = ACTIONS(4694),
    [sym_cstring] = ACTIONS(4694),
    [sym_dstring] = ACTIONS(4694),
    [sym_wstring] = ACTIONS(4694),
    [sym_noreturn] = ACTIONS(4694),
    [sym_this] = ACTIONS(4694),
    [sym_abstract] = ACTIONS(4694),
    [sym_alias] = ACTIONS(4694),
    [sym_align] = ACTIONS(4694),
    [sym_auto] = ACTIONS(4694),
    [sym_class] = ACTIONS(4694),
    [sym_const] = ACTIONS(4694),
    [sym_debug] = ACTIONS(4694),
    [sym_deprecated] = ACTIONS(4694),
    [sym_else] = ACTIONS(4694),
    [sym_enum] = ACTIONS(4694),
    [sym_export] = ACTIONS(4694),
    [sym_extern] = ACTIONS(4694),
    [sym_final] = ACTIONS(4694),
    [sym_immutable] = ACTIONS(4694),
    [sym_import] = ACTIONS(4694),
    [sym_inout] = ACTIONS(4694),
    [sym_interface] = ACTIONS(4694),
    [sym_invariant] = ACTIONS(4694),
    [sym_mixin] = ACTIONS(4694),
    [sym_nothrow] = ACTIONS(4694),
    [sym_override] = ACTIONS(4694),
    [sym_package] = ACTIONS(4694),
    [sym_pragma] = ACTIONS(4694),
    [sym_private] = ACTIONS(4694),
    [sym_protected] = ACTIONS(4694),
    [sym_public] = ACTIONS(4694),
    [sym_pure] = ACTIONS(4694),
    [sym_ref] = ACTIONS(4694),
    [sym_return] = ACTIONS(4694),
    [sym_scope] = ACTIONS(4694),
    [sym_shared] = ACTIONS(4694),
    [sym_static] = ACTIONS(4694),
    [sym_struct] = ACTIONS(4694),
    [sym_synchronized] = ACTIONS(4694),
    [sym_template] = ACTIONS(4694),
    [sym_typeof] = ACTIONS(4694),
    [sym_union] = ACTIONS(4694),
    [sym_unittest] = ACTIONS(4694),
    [sym_version] = ACTIONS(4694),
    [sym_while] = ACTIONS(4694),
    [sym_gshared] = ACTIONS(4694),
    [sym_traits] = ACTIONS(4694),
    [sym_vector] = ACTIONS(4694),
    [sym_void] = ACTIONS(4694),
    [sym_directive] = ACTIONS(3),
  },
  [2730] = {
    [ts_builtin_sym_end] = ACTIONS(4458),
    [sym_identifier] = ACTIONS(4456),
    [sym_end_file] = ACTIONS(4456),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4458),
    [anon_sym_SEMI] = ACTIONS(4458),
    [anon_sym_TILDE] = ACTIONS(4458),
    [anon_sym_AT] = ACTIONS(4458),
    [sym_bool] = ACTIONS(4456),
    [sym_byte] = ACTIONS(4456),
    [sym_ubyte] = ACTIONS(4456),
    [sym_char] = ACTIONS(4456),
    [sym_short] = ACTIONS(4456),
    [sym_ushort] = ACTIONS(4456),
    [sym_int] = ACTIONS(4456),
    [sym_uint] = ACTIONS(4456),
    [sym_long] = ACTIONS(4456),
    [sym_ulong] = ACTIONS(4456),
    [sym_cent] = ACTIONS(4456),
    [sym_ucent] = ACTIONS(4456),
    [sym_wchar] = ACTIONS(4456),
    [sym_dchar] = ACTIONS(4456),
    [sym_float] = ACTIONS(4456),
    [sym_double] = ACTIONS(4456),
    [sym_real] = ACTIONS(4456),
    [sym_ifloat] = ACTIONS(4456),
    [sym_idouble] = ACTIONS(4456),
    [sym_ireal] = ACTIONS(4456),
    [sym_cfloat] = ACTIONS(4456),
    [sym_cdouble] = ACTIONS(4456),
    [sym_creal] = ACTIONS(4456),
    [sym_size_t] = ACTIONS(4456),
    [sym_ptrdiff_t] = ACTIONS(4456),
    [sym_string] = ACTIONS(4456),
    [sym_cstring] = ACTIONS(4456),
    [sym_dstring] = ACTIONS(4456),
    [sym_wstring] = ACTIONS(4456),
    [sym_noreturn] = ACTIONS(4456),
    [sym_this] = ACTIONS(4456),
    [sym_abstract] = ACTIONS(4456),
    [sym_alias] = ACTIONS(4456),
    [sym_align] = ACTIONS(4456),
    [sym_auto] = ACTIONS(4456),
    [sym_class] = ACTIONS(4456),
    [sym_const] = ACTIONS(4456),
    [sym_debug] = ACTIONS(4456),
    [sym_deprecated] = ACTIONS(4456),
    [sym_else] = ACTIONS(4456),
    [sym_enum] = ACTIONS(4456),
    [sym_export] = ACTIONS(4456),
    [sym_extern] = ACTIONS(4456),
    [sym_final] = ACTIONS(4456),
    [sym_immutable] = ACTIONS(4456),
    [sym_import] = ACTIONS(4456),
    [sym_inout] = ACTIONS(4456),
    [sym_interface] = ACTIONS(4456),
    [sym_invariant] = ACTIONS(4456),
    [sym_mixin] = ACTIONS(4456),
    [sym_nothrow] = ACTIONS(4456),
    [sym_override] = ACTIONS(4456),
    [sym_package] = ACTIONS(4456),
    [sym_pragma] = ACTIONS(4456),
    [sym_private] = ACTIONS(4456),
    [sym_protected] = ACTIONS(4456),
    [sym_public] = ACTIONS(4456),
    [sym_pure] = ACTIONS(4456),
    [sym_ref] = ACTIONS(4456),
    [sym_return] = ACTIONS(4456),
    [sym_scope] = ACTIONS(4456),
    [sym_shared] = ACTIONS(4456),
    [sym_static] = ACTIONS(4456),
    [sym_struct] = ACTIONS(4456),
    [sym_synchronized] = ACTIONS(4456),
    [sym_template] = ACTIONS(4456),
    [sym_typeof] = ACTIONS(4456),
    [sym_union] = ACTIONS(4456),
    [sym_unittest] = ACTIONS(4456),
    [sym_version] = ACTIONS(4456),
    [sym_while] = ACTIONS(4456),
    [sym_gshared] = ACTIONS(4456),
    [sym_traits] = ACTIONS(4456),
    [sym_vector] = ACTIONS(4456),
    [sym_void] = ACTIONS(4456),
    [sym_directive] = ACTIONS(3),
  },
  [2731] = {
    [ts_builtin_sym_end] = ACTIONS(4756),
    [sym_identifier] = ACTIONS(4754),
    [sym_end_file] = ACTIONS(4754),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4756),
    [anon_sym_SEMI] = ACTIONS(4756),
    [anon_sym_TILDE] = ACTIONS(4756),
    [anon_sym_AT] = ACTIONS(4756),
    [sym_bool] = ACTIONS(4754),
    [sym_byte] = ACTIONS(4754),
    [sym_ubyte] = ACTIONS(4754),
    [sym_char] = ACTIONS(4754),
    [sym_short] = ACTIONS(4754),
    [sym_ushort] = ACTIONS(4754),
    [sym_int] = ACTIONS(4754),
    [sym_uint] = ACTIONS(4754),
    [sym_long] = ACTIONS(4754),
    [sym_ulong] = ACTIONS(4754),
    [sym_cent] = ACTIONS(4754),
    [sym_ucent] = ACTIONS(4754),
    [sym_wchar] = ACTIONS(4754),
    [sym_dchar] = ACTIONS(4754),
    [sym_float] = ACTIONS(4754),
    [sym_double] = ACTIONS(4754),
    [sym_real] = ACTIONS(4754),
    [sym_ifloat] = ACTIONS(4754),
    [sym_idouble] = ACTIONS(4754),
    [sym_ireal] = ACTIONS(4754),
    [sym_cfloat] = ACTIONS(4754),
    [sym_cdouble] = ACTIONS(4754),
    [sym_creal] = ACTIONS(4754),
    [sym_size_t] = ACTIONS(4754),
    [sym_ptrdiff_t] = ACTIONS(4754),
    [sym_string] = ACTIONS(4754),
    [sym_cstring] = ACTIONS(4754),
    [sym_dstring] = ACTIONS(4754),
    [sym_wstring] = ACTIONS(4754),
    [sym_noreturn] = ACTIONS(4754),
    [sym_this] = ACTIONS(4754),
    [sym_abstract] = ACTIONS(4754),
    [sym_alias] = ACTIONS(4754),
    [sym_align] = ACTIONS(4754),
    [sym_auto] = ACTIONS(4754),
    [sym_class] = ACTIONS(4754),
    [sym_const] = ACTIONS(4754),
    [sym_debug] = ACTIONS(4754),
    [sym_deprecated] = ACTIONS(4754),
    [sym_else] = ACTIONS(4754),
    [sym_enum] = ACTIONS(4754),
    [sym_export] = ACTIONS(4754),
    [sym_extern] = ACTIONS(4754),
    [sym_final] = ACTIONS(4754),
    [sym_immutable] = ACTIONS(4754),
    [sym_import] = ACTIONS(4754),
    [sym_inout] = ACTIONS(4754),
    [sym_interface] = ACTIONS(4754),
    [sym_invariant] = ACTIONS(4754),
    [sym_mixin] = ACTIONS(4754),
    [sym_nothrow] = ACTIONS(4754),
    [sym_override] = ACTIONS(4754),
    [sym_package] = ACTIONS(4754),
    [sym_pragma] = ACTIONS(4754),
    [sym_private] = ACTIONS(4754),
    [sym_protected] = ACTIONS(4754),
    [sym_public] = ACTIONS(4754),
    [sym_pure] = ACTIONS(4754),
    [sym_ref] = ACTIONS(4754),
    [sym_return] = ACTIONS(4754),
    [sym_scope] = ACTIONS(4754),
    [sym_shared] = ACTIONS(4754),
    [sym_static] = ACTIONS(4754),
    [sym_struct] = ACTIONS(4754),
    [sym_synchronized] = ACTIONS(4754),
    [sym_template] = ACTIONS(4754),
    [sym_typeof] = ACTIONS(4754),
    [sym_union] = ACTIONS(4754),
    [sym_unittest] = ACTIONS(4754),
    [sym_version] = ACTIONS(4754),
    [sym_while] = ACTIONS(4754),
    [sym_gshared] = ACTIONS(4754),
    [sym_traits] = ACTIONS(4754),
    [sym_vector] = ACTIONS(4754),
    [sym_void] = ACTIONS(4754),
    [sym_directive] = ACTIONS(3),
  },
  [2732] = {
    [ts_builtin_sym_end] = ACTIONS(4858),
    [sym_identifier] = ACTIONS(4856),
    [sym_end_file] = ACTIONS(4856),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4858),
    [anon_sym_SEMI] = ACTIONS(4858),
    [anon_sym_TILDE] = ACTIONS(4858),
    [anon_sym_AT] = ACTIONS(4858),
    [sym_bool] = ACTIONS(4856),
    [sym_byte] = ACTIONS(4856),
    [sym_ubyte] = ACTIONS(4856),
    [sym_char] = ACTIONS(4856),
    [sym_short] = ACTIONS(4856),
    [sym_ushort] = ACTIONS(4856),
    [sym_int] = ACTIONS(4856),
    [sym_uint] = ACTIONS(4856),
    [sym_long] = ACTIONS(4856),
    [sym_ulong] = ACTIONS(4856),
    [sym_cent] = ACTIONS(4856),
    [sym_ucent] = ACTIONS(4856),
    [sym_wchar] = ACTIONS(4856),
    [sym_dchar] = ACTIONS(4856),
    [sym_float] = ACTIONS(4856),
    [sym_double] = ACTIONS(4856),
    [sym_real] = ACTIONS(4856),
    [sym_ifloat] = ACTIONS(4856),
    [sym_idouble] = ACTIONS(4856),
    [sym_ireal] = ACTIONS(4856),
    [sym_cfloat] = ACTIONS(4856),
    [sym_cdouble] = ACTIONS(4856),
    [sym_creal] = ACTIONS(4856),
    [sym_size_t] = ACTIONS(4856),
    [sym_ptrdiff_t] = ACTIONS(4856),
    [sym_string] = ACTIONS(4856),
    [sym_cstring] = ACTIONS(4856),
    [sym_dstring] = ACTIONS(4856),
    [sym_wstring] = ACTIONS(4856),
    [sym_noreturn] = ACTIONS(4856),
    [sym_this] = ACTIONS(4856),
    [sym_abstract] = ACTIONS(4856),
    [sym_alias] = ACTIONS(4856),
    [sym_align] = ACTIONS(4856),
    [sym_auto] = ACTIONS(4856),
    [sym_class] = ACTIONS(4856),
    [sym_const] = ACTIONS(4856),
    [sym_debug] = ACTIONS(4856),
    [sym_deprecated] = ACTIONS(4856),
    [sym_else] = ACTIONS(4856),
    [sym_enum] = ACTIONS(4856),
    [sym_export] = ACTIONS(4856),
    [sym_extern] = ACTIONS(4856),
    [sym_final] = ACTIONS(4856),
    [sym_immutable] = ACTIONS(4856),
    [sym_import] = ACTIONS(4856),
    [sym_inout] = ACTIONS(4856),
    [sym_interface] = ACTIONS(4856),
    [sym_invariant] = ACTIONS(4856),
    [sym_mixin] = ACTIONS(4856),
    [sym_nothrow] = ACTIONS(4856),
    [sym_override] = ACTIONS(4856),
    [sym_package] = ACTIONS(4856),
    [sym_pragma] = ACTIONS(4856),
    [sym_private] = ACTIONS(4856),
    [sym_protected] = ACTIONS(4856),
    [sym_public] = ACTIONS(4856),
    [sym_pure] = ACTIONS(4856),
    [sym_ref] = ACTIONS(4856),
    [sym_return] = ACTIONS(4856),
    [sym_scope] = ACTIONS(4856),
    [sym_shared] = ACTIONS(4856),
    [sym_static] = ACTIONS(4856),
    [sym_struct] = ACTIONS(4856),
    [sym_synchronized] = ACTIONS(4856),
    [sym_template] = ACTIONS(4856),
    [sym_typeof] = ACTIONS(4856),
    [sym_union] = ACTIONS(4856),
    [sym_unittest] = ACTIONS(4856),
    [sym_version] = ACTIONS(4856),
    [sym_while] = ACTIONS(4856),
    [sym_gshared] = ACTIONS(4856),
    [sym_traits] = ACTIONS(4856),
    [sym_vector] = ACTIONS(4856),
    [sym_void] = ACTIONS(4856),
    [sym_directive] = ACTIONS(3),
  },
  [2733] = {
    [ts_builtin_sym_end] = ACTIONS(4850),
    [sym_identifier] = ACTIONS(4848),
    [sym_end_file] = ACTIONS(4848),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4850),
    [anon_sym_SEMI] = ACTIONS(4850),
    [anon_sym_TILDE] = ACTIONS(4850),
    [anon_sym_AT] = ACTIONS(4850),
    [sym_bool] = ACTIONS(4848),
    [sym_byte] = ACTIONS(4848),
    [sym_ubyte] = ACTIONS(4848),
    [sym_char] = ACTIONS(4848),
    [sym_short] = ACTIONS(4848),
    [sym_ushort] = ACTIONS(4848),
    [sym_int] = ACTIONS(4848),
    [sym_uint] = ACTIONS(4848),
    [sym_long] = ACTIONS(4848),
    [sym_ulong] = ACTIONS(4848),
    [sym_cent] = ACTIONS(4848),
    [sym_ucent] = ACTIONS(4848),
    [sym_wchar] = ACTIONS(4848),
    [sym_dchar] = ACTIONS(4848),
    [sym_float] = ACTIONS(4848),
    [sym_double] = ACTIONS(4848),
    [sym_real] = ACTIONS(4848),
    [sym_ifloat] = ACTIONS(4848),
    [sym_idouble] = ACTIONS(4848),
    [sym_ireal] = ACTIONS(4848),
    [sym_cfloat] = ACTIONS(4848),
    [sym_cdouble] = ACTIONS(4848),
    [sym_creal] = ACTIONS(4848),
    [sym_size_t] = ACTIONS(4848),
    [sym_ptrdiff_t] = ACTIONS(4848),
    [sym_string] = ACTIONS(4848),
    [sym_cstring] = ACTIONS(4848),
    [sym_dstring] = ACTIONS(4848),
    [sym_wstring] = ACTIONS(4848),
    [sym_noreturn] = ACTIONS(4848),
    [sym_this] = ACTIONS(4848),
    [sym_abstract] = ACTIONS(4848),
    [sym_alias] = ACTIONS(4848),
    [sym_align] = ACTIONS(4848),
    [sym_auto] = ACTIONS(4848),
    [sym_class] = ACTIONS(4848),
    [sym_const] = ACTIONS(4848),
    [sym_debug] = ACTIONS(4848),
    [sym_deprecated] = ACTIONS(4848),
    [sym_else] = ACTIONS(4848),
    [sym_enum] = ACTIONS(4848),
    [sym_export] = ACTIONS(4848),
    [sym_extern] = ACTIONS(4848),
    [sym_final] = ACTIONS(4848),
    [sym_immutable] = ACTIONS(4848),
    [sym_import] = ACTIONS(4848),
    [sym_inout] = ACTIONS(4848),
    [sym_interface] = ACTIONS(4848),
    [sym_invariant] = ACTIONS(4848),
    [sym_mixin] = ACTIONS(4848),
    [sym_nothrow] = ACTIONS(4848),
    [sym_override] = ACTIONS(4848),
    [sym_package] = ACTIONS(4848),
    [sym_pragma] = ACTIONS(4848),
    [sym_private] = ACTIONS(4848),
    [sym_protected] = ACTIONS(4848),
    [sym_public] = ACTIONS(4848),
    [sym_pure] = ACTIONS(4848),
    [sym_ref] = ACTIONS(4848),
    [sym_return] = ACTIONS(4848),
    [sym_scope] = ACTIONS(4848),
    [sym_shared] = ACTIONS(4848),
    [sym_static] = ACTIONS(4848),
    [sym_struct] = ACTIONS(4848),
    [sym_synchronized] = ACTIONS(4848),
    [sym_template] = ACTIONS(4848),
    [sym_typeof] = ACTIONS(4848),
    [sym_union] = ACTIONS(4848),
    [sym_unittest] = ACTIONS(4848),
    [sym_version] = ACTIONS(4848),
    [sym_while] = ACTIONS(4848),
    [sym_gshared] = ACTIONS(4848),
    [sym_traits] = ACTIONS(4848),
    [sym_vector] = ACTIONS(4848),
    [sym_void] = ACTIONS(4848),
    [sym_directive] = ACTIONS(3),
  },
  [2734] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_catch] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_else] = ACTIONS(6791),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_finally] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
  },
  [2735] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_catch] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_else] = ACTIONS(6793),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_finally] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
  },
  [2736] = {
    [sym_identifier] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2782),
    [anon_sym_AT] = ACTIONS(2782),
    [sym_bool] = ACTIONS(2784),
    [sym_byte] = ACTIONS(2784),
    [sym_ubyte] = ACTIONS(2784),
    [sym_char] = ACTIONS(2784),
    [sym_short] = ACTIONS(2784),
    [sym_ushort] = ACTIONS(2784),
    [sym_int] = ACTIONS(2784),
    [sym_uint] = ACTIONS(2784),
    [sym_long] = ACTIONS(2784),
    [sym_ulong] = ACTIONS(2784),
    [sym_cent] = ACTIONS(2784),
    [sym_ucent] = ACTIONS(2784),
    [sym_wchar] = ACTIONS(2784),
    [sym_dchar] = ACTIONS(2784),
    [sym_float] = ACTIONS(2784),
    [sym_double] = ACTIONS(2784),
    [sym_real] = ACTIONS(2784),
    [sym_ifloat] = ACTIONS(2784),
    [sym_idouble] = ACTIONS(2784),
    [sym_ireal] = ACTIONS(2784),
    [sym_cfloat] = ACTIONS(2784),
    [sym_cdouble] = ACTIONS(2784),
    [sym_creal] = ACTIONS(2784),
    [sym_size_t] = ACTIONS(2784),
    [sym_ptrdiff_t] = ACTIONS(2784),
    [sym_string] = ACTIONS(2784),
    [sym_cstring] = ACTIONS(2784),
    [sym_dstring] = ACTIONS(2784),
    [sym_wstring] = ACTIONS(2784),
    [sym_noreturn] = ACTIONS(2784),
    [sym_this] = ACTIONS(2784),
    [sym_abstract] = ACTIONS(2784),
    [sym_alias] = ACTIONS(2784),
    [sym_align] = ACTIONS(2784),
    [sym_auto] = ACTIONS(2784),
    [sym_catch] = ACTIONS(2784),
    [sym_class] = ACTIONS(2784),
    [sym_const] = ACTIONS(2784),
    [sym_debug] = ACTIONS(2784),
    [sym_deprecated] = ACTIONS(2784),
    [sym_else] = ACTIONS(6795),
    [sym_enum] = ACTIONS(2784),
    [sym_export] = ACTIONS(2784),
    [sym_extern] = ACTIONS(2784),
    [sym_final] = ACTIONS(2784),
    [sym_finally] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(2784),
    [sym_import] = ACTIONS(2784),
    [sym_inout] = ACTIONS(2784),
    [sym_interface] = ACTIONS(2784),
    [sym_invariant] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2784),
    [sym_nothrow] = ACTIONS(2784),
    [sym_override] = ACTIONS(2784),
    [sym_package] = ACTIONS(2784),
    [sym_pragma] = ACTIONS(2784),
    [sym_private] = ACTIONS(2784),
    [sym_protected] = ACTIONS(2784),
    [sym_public] = ACTIONS(2784),
    [sym_pure] = ACTIONS(2784),
    [sym_ref] = ACTIONS(2784),
    [sym_return] = ACTIONS(2784),
    [sym_scope] = ACTIONS(2784),
    [sym_shared] = ACTIONS(2784),
    [sym_static] = ACTIONS(2784),
    [sym_struct] = ACTIONS(2784),
    [sym_synchronized] = ACTIONS(2784),
    [sym_template] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(2784),
    [sym_union] = ACTIONS(2784),
    [sym_unittest] = ACTIONS(2784),
    [sym_version] = ACTIONS(2784),
    [sym_while] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(2784),
    [sym_traits] = ACTIONS(2784),
    [sym_vector] = ACTIONS(2784),
    [sym_void] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
  },
  [2737] = {
    [ts_builtin_sym_end] = ACTIONS(4660),
    [sym_identifier] = ACTIONS(4658),
    [sym_end_file] = ACTIONS(4658),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4660),
    [anon_sym_SEMI] = ACTIONS(4660),
    [anon_sym_TILDE] = ACTIONS(4660),
    [anon_sym_AT] = ACTIONS(4660),
    [sym_bool] = ACTIONS(4658),
    [sym_byte] = ACTIONS(4658),
    [sym_ubyte] = ACTIONS(4658),
    [sym_char] = ACTIONS(4658),
    [sym_short] = ACTIONS(4658),
    [sym_ushort] = ACTIONS(4658),
    [sym_int] = ACTIONS(4658),
    [sym_uint] = ACTIONS(4658),
    [sym_long] = ACTIONS(4658),
    [sym_ulong] = ACTIONS(4658),
    [sym_cent] = ACTIONS(4658),
    [sym_ucent] = ACTIONS(4658),
    [sym_wchar] = ACTIONS(4658),
    [sym_dchar] = ACTIONS(4658),
    [sym_float] = ACTIONS(4658),
    [sym_double] = ACTIONS(4658),
    [sym_real] = ACTIONS(4658),
    [sym_ifloat] = ACTIONS(4658),
    [sym_idouble] = ACTIONS(4658),
    [sym_ireal] = ACTIONS(4658),
    [sym_cfloat] = ACTIONS(4658),
    [sym_cdouble] = ACTIONS(4658),
    [sym_creal] = ACTIONS(4658),
    [sym_size_t] = ACTIONS(4658),
    [sym_ptrdiff_t] = ACTIONS(4658),
    [sym_string] = ACTIONS(4658),
    [sym_cstring] = ACTIONS(4658),
    [sym_dstring] = ACTIONS(4658),
    [sym_wstring] = ACTIONS(4658),
    [sym_noreturn] = ACTIONS(4658),
    [sym_this] = ACTIONS(4658),
    [sym_abstract] = ACTIONS(4658),
    [sym_alias] = ACTIONS(4658),
    [sym_align] = ACTIONS(4658),
    [sym_auto] = ACTIONS(4658),
    [sym_class] = ACTIONS(4658),
    [sym_const] = ACTIONS(4658),
    [sym_debug] = ACTIONS(4658),
    [sym_deprecated] = ACTIONS(4658),
    [sym_else] = ACTIONS(4658),
    [sym_enum] = ACTIONS(4658),
    [sym_export] = ACTIONS(4658),
    [sym_extern] = ACTIONS(4658),
    [sym_final] = ACTIONS(4658),
    [sym_immutable] = ACTIONS(4658),
    [sym_import] = ACTIONS(4658),
    [sym_inout] = ACTIONS(4658),
    [sym_interface] = ACTIONS(4658),
    [sym_invariant] = ACTIONS(4658),
    [sym_mixin] = ACTIONS(4658),
    [sym_nothrow] = ACTIONS(4658),
    [sym_override] = ACTIONS(4658),
    [sym_package] = ACTIONS(4658),
    [sym_pragma] = ACTIONS(4658),
    [sym_private] = ACTIONS(4658),
    [sym_protected] = ACTIONS(4658),
    [sym_public] = ACTIONS(4658),
    [sym_pure] = ACTIONS(4658),
    [sym_ref] = ACTIONS(4658),
    [sym_return] = ACTIONS(4658),
    [sym_scope] = ACTIONS(4658),
    [sym_shared] = ACTIONS(4658),
    [sym_static] = ACTIONS(4658),
    [sym_struct] = ACTIONS(4658),
    [sym_synchronized] = ACTIONS(4658),
    [sym_template] = ACTIONS(4658),
    [sym_typeof] = ACTIONS(4658),
    [sym_union] = ACTIONS(4658),
    [sym_unittest] = ACTIONS(4658),
    [sym_version] = ACTIONS(4658),
    [sym_while] = ACTIONS(4658),
    [sym_gshared] = ACTIONS(4658),
    [sym_traits] = ACTIONS(4658),
    [sym_vector] = ACTIONS(4658),
    [sym_void] = ACTIONS(4658),
    [sym_directive] = ACTIONS(3),
  },
  [2738] = {
    [ts_builtin_sym_end] = ACTIONS(4307),
    [sym_identifier] = ACTIONS(4305),
    [sym_end_file] = ACTIONS(4305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4307),
    [anon_sym_SEMI] = ACTIONS(4307),
    [anon_sym_TILDE] = ACTIONS(4307),
    [anon_sym_AT] = ACTIONS(4307),
    [sym_bool] = ACTIONS(4305),
    [sym_byte] = ACTIONS(4305),
    [sym_ubyte] = ACTIONS(4305),
    [sym_char] = ACTIONS(4305),
    [sym_short] = ACTIONS(4305),
    [sym_ushort] = ACTIONS(4305),
    [sym_int] = ACTIONS(4305),
    [sym_uint] = ACTIONS(4305),
    [sym_long] = ACTIONS(4305),
    [sym_ulong] = ACTIONS(4305),
    [sym_cent] = ACTIONS(4305),
    [sym_ucent] = ACTIONS(4305),
    [sym_wchar] = ACTIONS(4305),
    [sym_dchar] = ACTIONS(4305),
    [sym_float] = ACTIONS(4305),
    [sym_double] = ACTIONS(4305),
    [sym_real] = ACTIONS(4305),
    [sym_ifloat] = ACTIONS(4305),
    [sym_idouble] = ACTIONS(4305),
    [sym_ireal] = ACTIONS(4305),
    [sym_cfloat] = ACTIONS(4305),
    [sym_cdouble] = ACTIONS(4305),
    [sym_creal] = ACTIONS(4305),
    [sym_size_t] = ACTIONS(4305),
    [sym_ptrdiff_t] = ACTIONS(4305),
    [sym_string] = ACTIONS(4305),
    [sym_cstring] = ACTIONS(4305),
    [sym_dstring] = ACTIONS(4305),
    [sym_wstring] = ACTIONS(4305),
    [sym_noreturn] = ACTIONS(4305),
    [sym_this] = ACTIONS(4305),
    [sym_abstract] = ACTIONS(4305),
    [sym_alias] = ACTIONS(4305),
    [sym_align] = ACTIONS(4305),
    [sym_auto] = ACTIONS(4305),
    [sym_class] = ACTIONS(4305),
    [sym_const] = ACTIONS(4305),
    [sym_debug] = ACTIONS(4305),
    [sym_deprecated] = ACTIONS(4305),
    [sym_else] = ACTIONS(4305),
    [sym_enum] = ACTIONS(4305),
    [sym_export] = ACTIONS(4305),
    [sym_extern] = ACTIONS(4305),
    [sym_final] = ACTIONS(4305),
    [sym_immutable] = ACTIONS(4305),
    [sym_import] = ACTIONS(4305),
    [sym_inout] = ACTIONS(4305),
    [sym_interface] = ACTIONS(4305),
    [sym_invariant] = ACTIONS(4305),
    [sym_mixin] = ACTIONS(4305),
    [sym_nothrow] = ACTIONS(4305),
    [sym_override] = ACTIONS(4305),
    [sym_package] = ACTIONS(4305),
    [sym_pragma] = ACTIONS(4305),
    [sym_private] = ACTIONS(4305),
    [sym_protected] = ACTIONS(4305),
    [sym_public] = ACTIONS(4305),
    [sym_pure] = ACTIONS(4305),
    [sym_ref] = ACTIONS(4305),
    [sym_return] = ACTIONS(4305),
    [sym_scope] = ACTIONS(4305),
    [sym_shared] = ACTIONS(4305),
    [sym_static] = ACTIONS(4305),
    [sym_struct] = ACTIONS(4305),
    [sym_synchronized] = ACTIONS(4305),
    [sym_template] = ACTIONS(4305),
    [sym_typeof] = ACTIONS(4305),
    [sym_union] = ACTIONS(4305),
    [sym_unittest] = ACTIONS(4305),
    [sym_version] = ACTIONS(4305),
    [sym_while] = ACTIONS(4305),
    [sym_gshared] = ACTIONS(4305),
    [sym_traits] = ACTIONS(4305),
    [sym_vector] = ACTIONS(4305),
    [sym_void] = ACTIONS(4305),
    [sym_directive] = ACTIONS(3),
  },
  [2739] = {
    [ts_builtin_sym_end] = ACTIONS(2796),
    [sym_identifier] = ACTIONS(2798),
    [sym_end_file] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
  },
  [2740] = {
    [ts_builtin_sym_end] = ACTIONS(4760),
    [sym_identifier] = ACTIONS(4758),
    [sym_end_file] = ACTIONS(4758),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4760),
    [anon_sym_SEMI] = ACTIONS(4760),
    [anon_sym_TILDE] = ACTIONS(4760),
    [anon_sym_AT] = ACTIONS(4760),
    [sym_bool] = ACTIONS(4758),
    [sym_byte] = ACTIONS(4758),
    [sym_ubyte] = ACTIONS(4758),
    [sym_char] = ACTIONS(4758),
    [sym_short] = ACTIONS(4758),
    [sym_ushort] = ACTIONS(4758),
    [sym_int] = ACTIONS(4758),
    [sym_uint] = ACTIONS(4758),
    [sym_long] = ACTIONS(4758),
    [sym_ulong] = ACTIONS(4758),
    [sym_cent] = ACTIONS(4758),
    [sym_ucent] = ACTIONS(4758),
    [sym_wchar] = ACTIONS(4758),
    [sym_dchar] = ACTIONS(4758),
    [sym_float] = ACTIONS(4758),
    [sym_double] = ACTIONS(4758),
    [sym_real] = ACTIONS(4758),
    [sym_ifloat] = ACTIONS(4758),
    [sym_idouble] = ACTIONS(4758),
    [sym_ireal] = ACTIONS(4758),
    [sym_cfloat] = ACTIONS(4758),
    [sym_cdouble] = ACTIONS(4758),
    [sym_creal] = ACTIONS(4758),
    [sym_size_t] = ACTIONS(4758),
    [sym_ptrdiff_t] = ACTIONS(4758),
    [sym_string] = ACTIONS(4758),
    [sym_cstring] = ACTIONS(4758),
    [sym_dstring] = ACTIONS(4758),
    [sym_wstring] = ACTIONS(4758),
    [sym_noreturn] = ACTIONS(4758),
    [sym_this] = ACTIONS(4758),
    [sym_abstract] = ACTIONS(4758),
    [sym_alias] = ACTIONS(4758),
    [sym_align] = ACTIONS(4758),
    [sym_auto] = ACTIONS(4758),
    [sym_class] = ACTIONS(4758),
    [sym_const] = ACTIONS(4758),
    [sym_debug] = ACTIONS(4758),
    [sym_deprecated] = ACTIONS(4758),
    [sym_else] = ACTIONS(4758),
    [sym_enum] = ACTIONS(4758),
    [sym_export] = ACTIONS(4758),
    [sym_extern] = ACTIONS(4758),
    [sym_final] = ACTIONS(4758),
    [sym_immutable] = ACTIONS(4758),
    [sym_import] = ACTIONS(4758),
    [sym_inout] = ACTIONS(4758),
    [sym_interface] = ACTIONS(4758),
    [sym_invariant] = ACTIONS(4758),
    [sym_mixin] = ACTIONS(4758),
    [sym_nothrow] = ACTIONS(4758),
    [sym_override] = ACTIONS(4758),
    [sym_package] = ACTIONS(4758),
    [sym_pragma] = ACTIONS(4758),
    [sym_private] = ACTIONS(4758),
    [sym_protected] = ACTIONS(4758),
    [sym_public] = ACTIONS(4758),
    [sym_pure] = ACTIONS(4758),
    [sym_ref] = ACTIONS(4758),
    [sym_return] = ACTIONS(4758),
    [sym_scope] = ACTIONS(4758),
    [sym_shared] = ACTIONS(4758),
    [sym_static] = ACTIONS(4758),
    [sym_struct] = ACTIONS(4758),
    [sym_synchronized] = ACTIONS(4758),
    [sym_template] = ACTIONS(4758),
    [sym_typeof] = ACTIONS(4758),
    [sym_union] = ACTIONS(4758),
    [sym_unittest] = ACTIONS(4758),
    [sym_version] = ACTIONS(4758),
    [sym_while] = ACTIONS(4758),
    [sym_gshared] = ACTIONS(4758),
    [sym_traits] = ACTIONS(4758),
    [sym_vector] = ACTIONS(4758),
    [sym_void] = ACTIONS(4758),
    [sym_directive] = ACTIONS(3),
  },
  [2741] = {
    [ts_builtin_sym_end] = ACTIONS(4295),
    [sym_identifier] = ACTIONS(4293),
    [sym_end_file] = ACTIONS(4293),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4295),
    [anon_sym_SEMI] = ACTIONS(4295),
    [anon_sym_TILDE] = ACTIONS(4295),
    [anon_sym_AT] = ACTIONS(4295),
    [sym_bool] = ACTIONS(4293),
    [sym_byte] = ACTIONS(4293),
    [sym_ubyte] = ACTIONS(4293),
    [sym_char] = ACTIONS(4293),
    [sym_short] = ACTIONS(4293),
    [sym_ushort] = ACTIONS(4293),
    [sym_int] = ACTIONS(4293),
    [sym_uint] = ACTIONS(4293),
    [sym_long] = ACTIONS(4293),
    [sym_ulong] = ACTIONS(4293),
    [sym_cent] = ACTIONS(4293),
    [sym_ucent] = ACTIONS(4293),
    [sym_wchar] = ACTIONS(4293),
    [sym_dchar] = ACTIONS(4293),
    [sym_float] = ACTIONS(4293),
    [sym_double] = ACTIONS(4293),
    [sym_real] = ACTIONS(4293),
    [sym_ifloat] = ACTIONS(4293),
    [sym_idouble] = ACTIONS(4293),
    [sym_ireal] = ACTIONS(4293),
    [sym_cfloat] = ACTIONS(4293),
    [sym_cdouble] = ACTIONS(4293),
    [sym_creal] = ACTIONS(4293),
    [sym_size_t] = ACTIONS(4293),
    [sym_ptrdiff_t] = ACTIONS(4293),
    [sym_string] = ACTIONS(4293),
    [sym_cstring] = ACTIONS(4293),
    [sym_dstring] = ACTIONS(4293),
    [sym_wstring] = ACTIONS(4293),
    [sym_noreturn] = ACTIONS(4293),
    [sym_this] = ACTIONS(4293),
    [sym_abstract] = ACTIONS(4293),
    [sym_alias] = ACTIONS(4293),
    [sym_align] = ACTIONS(4293),
    [sym_auto] = ACTIONS(4293),
    [sym_class] = ACTIONS(4293),
    [sym_const] = ACTIONS(4293),
    [sym_debug] = ACTIONS(4293),
    [sym_deprecated] = ACTIONS(4293),
    [sym_else] = ACTIONS(4293),
    [sym_enum] = ACTIONS(4293),
    [sym_export] = ACTIONS(4293),
    [sym_extern] = ACTIONS(4293),
    [sym_final] = ACTIONS(4293),
    [sym_immutable] = ACTIONS(4293),
    [sym_import] = ACTIONS(4293),
    [sym_inout] = ACTIONS(4293),
    [sym_interface] = ACTIONS(4293),
    [sym_invariant] = ACTIONS(4293),
    [sym_mixin] = ACTIONS(4293),
    [sym_nothrow] = ACTIONS(4293),
    [sym_override] = ACTIONS(4293),
    [sym_package] = ACTIONS(4293),
    [sym_pragma] = ACTIONS(4293),
    [sym_private] = ACTIONS(4293),
    [sym_protected] = ACTIONS(4293),
    [sym_public] = ACTIONS(4293),
    [sym_pure] = ACTIONS(4293),
    [sym_ref] = ACTIONS(4293),
    [sym_return] = ACTIONS(4293),
    [sym_scope] = ACTIONS(4293),
    [sym_shared] = ACTIONS(4293),
    [sym_static] = ACTIONS(4293),
    [sym_struct] = ACTIONS(4293),
    [sym_synchronized] = ACTIONS(4293),
    [sym_template] = ACTIONS(4293),
    [sym_typeof] = ACTIONS(4293),
    [sym_union] = ACTIONS(4293),
    [sym_unittest] = ACTIONS(4293),
    [sym_version] = ACTIONS(4293),
    [sym_while] = ACTIONS(4293),
    [sym_gshared] = ACTIONS(4293),
    [sym_traits] = ACTIONS(4293),
    [sym_vector] = ACTIONS(4293),
    [sym_void] = ACTIONS(4293),
    [sym_directive] = ACTIONS(3),
  },
  [2742] = {
    [ts_builtin_sym_end] = ACTIONS(4315),
    [sym_identifier] = ACTIONS(4313),
    [sym_end_file] = ACTIONS(4313),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4315),
    [anon_sym_SEMI] = ACTIONS(4315),
    [anon_sym_TILDE] = ACTIONS(4315),
    [anon_sym_AT] = ACTIONS(4315),
    [sym_bool] = ACTIONS(4313),
    [sym_byte] = ACTIONS(4313),
    [sym_ubyte] = ACTIONS(4313),
    [sym_char] = ACTIONS(4313),
    [sym_short] = ACTIONS(4313),
    [sym_ushort] = ACTIONS(4313),
    [sym_int] = ACTIONS(4313),
    [sym_uint] = ACTIONS(4313),
    [sym_long] = ACTIONS(4313),
    [sym_ulong] = ACTIONS(4313),
    [sym_cent] = ACTIONS(4313),
    [sym_ucent] = ACTIONS(4313),
    [sym_wchar] = ACTIONS(4313),
    [sym_dchar] = ACTIONS(4313),
    [sym_float] = ACTIONS(4313),
    [sym_double] = ACTIONS(4313),
    [sym_real] = ACTIONS(4313),
    [sym_ifloat] = ACTIONS(4313),
    [sym_idouble] = ACTIONS(4313),
    [sym_ireal] = ACTIONS(4313),
    [sym_cfloat] = ACTIONS(4313),
    [sym_cdouble] = ACTIONS(4313),
    [sym_creal] = ACTIONS(4313),
    [sym_size_t] = ACTIONS(4313),
    [sym_ptrdiff_t] = ACTIONS(4313),
    [sym_string] = ACTIONS(4313),
    [sym_cstring] = ACTIONS(4313),
    [sym_dstring] = ACTIONS(4313),
    [sym_wstring] = ACTIONS(4313),
    [sym_noreturn] = ACTIONS(4313),
    [sym_this] = ACTIONS(4313),
    [sym_abstract] = ACTIONS(4313),
    [sym_alias] = ACTIONS(4313),
    [sym_align] = ACTIONS(4313),
    [sym_auto] = ACTIONS(4313),
    [sym_class] = ACTIONS(4313),
    [sym_const] = ACTIONS(4313),
    [sym_debug] = ACTIONS(4313),
    [sym_deprecated] = ACTIONS(4313),
    [sym_else] = ACTIONS(4313),
    [sym_enum] = ACTIONS(4313),
    [sym_export] = ACTIONS(4313),
    [sym_extern] = ACTIONS(4313),
    [sym_final] = ACTIONS(4313),
    [sym_immutable] = ACTIONS(4313),
    [sym_import] = ACTIONS(4313),
    [sym_inout] = ACTIONS(4313),
    [sym_interface] = ACTIONS(4313),
    [sym_invariant] = ACTIONS(4313),
    [sym_mixin] = ACTIONS(4313),
    [sym_nothrow] = ACTIONS(4313),
    [sym_override] = ACTIONS(4313),
    [sym_package] = ACTIONS(4313),
    [sym_pragma] = ACTIONS(4313),
    [sym_private] = ACTIONS(4313),
    [sym_protected] = ACTIONS(4313),
    [sym_public] = ACTIONS(4313),
    [sym_pure] = ACTIONS(4313),
    [sym_ref] = ACTIONS(4313),
    [sym_return] = ACTIONS(4313),
    [sym_scope] = ACTIONS(4313),
    [sym_shared] = ACTIONS(4313),
    [sym_static] = ACTIONS(4313),
    [sym_struct] = ACTIONS(4313),
    [sym_synchronized] = ACTIONS(4313),
    [sym_template] = ACTIONS(4313),
    [sym_typeof] = ACTIONS(4313),
    [sym_union] = ACTIONS(4313),
    [sym_unittest] = ACTIONS(4313),
    [sym_version] = ACTIONS(4313),
    [sym_while] = ACTIONS(4313),
    [sym_gshared] = ACTIONS(4313),
    [sym_traits] = ACTIONS(4313),
    [sym_vector] = ACTIONS(4313),
    [sym_void] = ACTIONS(4313),
    [sym_directive] = ACTIONS(3),
  },
  [2743] = {
    [ts_builtin_sym_end] = ACTIONS(4329),
    [sym_identifier] = ACTIONS(4327),
    [sym_end_file] = ACTIONS(4327),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4329),
    [anon_sym_SEMI] = ACTIONS(4329),
    [anon_sym_TILDE] = ACTIONS(4329),
    [anon_sym_AT] = ACTIONS(4329),
    [sym_bool] = ACTIONS(4327),
    [sym_byte] = ACTIONS(4327),
    [sym_ubyte] = ACTIONS(4327),
    [sym_char] = ACTIONS(4327),
    [sym_short] = ACTIONS(4327),
    [sym_ushort] = ACTIONS(4327),
    [sym_int] = ACTIONS(4327),
    [sym_uint] = ACTIONS(4327),
    [sym_long] = ACTIONS(4327),
    [sym_ulong] = ACTIONS(4327),
    [sym_cent] = ACTIONS(4327),
    [sym_ucent] = ACTIONS(4327),
    [sym_wchar] = ACTIONS(4327),
    [sym_dchar] = ACTIONS(4327),
    [sym_float] = ACTIONS(4327),
    [sym_double] = ACTIONS(4327),
    [sym_real] = ACTIONS(4327),
    [sym_ifloat] = ACTIONS(4327),
    [sym_idouble] = ACTIONS(4327),
    [sym_ireal] = ACTIONS(4327),
    [sym_cfloat] = ACTIONS(4327),
    [sym_cdouble] = ACTIONS(4327),
    [sym_creal] = ACTIONS(4327),
    [sym_size_t] = ACTIONS(4327),
    [sym_ptrdiff_t] = ACTIONS(4327),
    [sym_string] = ACTIONS(4327),
    [sym_cstring] = ACTIONS(4327),
    [sym_dstring] = ACTIONS(4327),
    [sym_wstring] = ACTIONS(4327),
    [sym_noreturn] = ACTIONS(4327),
    [sym_this] = ACTIONS(4327),
    [sym_abstract] = ACTIONS(4327),
    [sym_alias] = ACTIONS(4327),
    [sym_align] = ACTIONS(4327),
    [sym_auto] = ACTIONS(4327),
    [sym_class] = ACTIONS(4327),
    [sym_const] = ACTIONS(4327),
    [sym_debug] = ACTIONS(4327),
    [sym_deprecated] = ACTIONS(4327),
    [sym_else] = ACTIONS(4327),
    [sym_enum] = ACTIONS(4327),
    [sym_export] = ACTIONS(4327),
    [sym_extern] = ACTIONS(4327),
    [sym_final] = ACTIONS(4327),
    [sym_immutable] = ACTIONS(4327),
    [sym_import] = ACTIONS(4327),
    [sym_inout] = ACTIONS(4327),
    [sym_interface] = ACTIONS(4327),
    [sym_invariant] = ACTIONS(4327),
    [sym_mixin] = ACTIONS(4327),
    [sym_nothrow] = ACTIONS(4327),
    [sym_override] = ACTIONS(4327),
    [sym_package] = ACTIONS(4327),
    [sym_pragma] = ACTIONS(4327),
    [sym_private] = ACTIONS(4327),
    [sym_protected] = ACTIONS(4327),
    [sym_public] = ACTIONS(4327),
    [sym_pure] = ACTIONS(4327),
    [sym_ref] = ACTIONS(4327),
    [sym_return] = ACTIONS(4327),
    [sym_scope] = ACTIONS(4327),
    [sym_shared] = ACTIONS(4327),
    [sym_static] = ACTIONS(4327),
    [sym_struct] = ACTIONS(4327),
    [sym_synchronized] = ACTIONS(4327),
    [sym_template] = ACTIONS(4327),
    [sym_typeof] = ACTIONS(4327),
    [sym_union] = ACTIONS(4327),
    [sym_unittest] = ACTIONS(4327),
    [sym_version] = ACTIONS(4327),
    [sym_while] = ACTIONS(4327),
    [sym_gshared] = ACTIONS(4327),
    [sym_traits] = ACTIONS(4327),
    [sym_vector] = ACTIONS(4327),
    [sym_void] = ACTIONS(4327),
    [sym_directive] = ACTIONS(3),
  },
  [2744] = {
    [ts_builtin_sym_end] = ACTIONS(4630),
    [sym_identifier] = ACTIONS(4628),
    [sym_end_file] = ACTIONS(4628),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4630),
    [anon_sym_SEMI] = ACTIONS(4630),
    [anon_sym_TILDE] = ACTIONS(4630),
    [anon_sym_AT] = ACTIONS(4630),
    [sym_bool] = ACTIONS(4628),
    [sym_byte] = ACTIONS(4628),
    [sym_ubyte] = ACTIONS(4628),
    [sym_char] = ACTIONS(4628),
    [sym_short] = ACTIONS(4628),
    [sym_ushort] = ACTIONS(4628),
    [sym_int] = ACTIONS(4628),
    [sym_uint] = ACTIONS(4628),
    [sym_long] = ACTIONS(4628),
    [sym_ulong] = ACTIONS(4628),
    [sym_cent] = ACTIONS(4628),
    [sym_ucent] = ACTIONS(4628),
    [sym_wchar] = ACTIONS(4628),
    [sym_dchar] = ACTIONS(4628),
    [sym_float] = ACTIONS(4628),
    [sym_double] = ACTIONS(4628),
    [sym_real] = ACTIONS(4628),
    [sym_ifloat] = ACTIONS(4628),
    [sym_idouble] = ACTIONS(4628),
    [sym_ireal] = ACTIONS(4628),
    [sym_cfloat] = ACTIONS(4628),
    [sym_cdouble] = ACTIONS(4628),
    [sym_creal] = ACTIONS(4628),
    [sym_size_t] = ACTIONS(4628),
    [sym_ptrdiff_t] = ACTIONS(4628),
    [sym_string] = ACTIONS(4628),
    [sym_cstring] = ACTIONS(4628),
    [sym_dstring] = ACTIONS(4628),
    [sym_wstring] = ACTIONS(4628),
    [sym_noreturn] = ACTIONS(4628),
    [sym_this] = ACTIONS(4628),
    [sym_abstract] = ACTIONS(4628),
    [sym_alias] = ACTIONS(4628),
    [sym_align] = ACTIONS(4628),
    [sym_auto] = ACTIONS(4628),
    [sym_class] = ACTIONS(4628),
    [sym_const] = ACTIONS(4628),
    [sym_debug] = ACTIONS(4628),
    [sym_deprecated] = ACTIONS(4628),
    [sym_else] = ACTIONS(4628),
    [sym_enum] = ACTIONS(4628),
    [sym_export] = ACTIONS(4628),
    [sym_extern] = ACTIONS(4628),
    [sym_final] = ACTIONS(4628),
    [sym_immutable] = ACTIONS(4628),
    [sym_import] = ACTIONS(4628),
    [sym_inout] = ACTIONS(4628),
    [sym_interface] = ACTIONS(4628),
    [sym_invariant] = ACTIONS(4628),
    [sym_mixin] = ACTIONS(4628),
    [sym_nothrow] = ACTIONS(4628),
    [sym_override] = ACTIONS(4628),
    [sym_package] = ACTIONS(4628),
    [sym_pragma] = ACTIONS(4628),
    [sym_private] = ACTIONS(4628),
    [sym_protected] = ACTIONS(4628),
    [sym_public] = ACTIONS(4628),
    [sym_pure] = ACTIONS(4628),
    [sym_ref] = ACTIONS(4628),
    [sym_return] = ACTIONS(4628),
    [sym_scope] = ACTIONS(4628),
    [sym_shared] = ACTIONS(4628),
    [sym_static] = ACTIONS(4628),
    [sym_struct] = ACTIONS(4628),
    [sym_synchronized] = ACTIONS(4628),
    [sym_template] = ACTIONS(4628),
    [sym_typeof] = ACTIONS(4628),
    [sym_union] = ACTIONS(4628),
    [sym_unittest] = ACTIONS(4628),
    [sym_version] = ACTIONS(4628),
    [sym_while] = ACTIONS(4628),
    [sym_gshared] = ACTIONS(4628),
    [sym_traits] = ACTIONS(4628),
    [sym_vector] = ACTIONS(4628),
    [sym_void] = ACTIONS(4628),
    [sym_directive] = ACTIONS(3),
  },
  [2745] = {
    [ts_builtin_sym_end] = ACTIONS(4341),
    [sym_identifier] = ACTIONS(4339),
    [sym_end_file] = ACTIONS(4339),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4341),
    [anon_sym_SEMI] = ACTIONS(4341),
    [anon_sym_TILDE] = ACTIONS(4341),
    [anon_sym_AT] = ACTIONS(4341),
    [sym_bool] = ACTIONS(4339),
    [sym_byte] = ACTIONS(4339),
    [sym_ubyte] = ACTIONS(4339),
    [sym_char] = ACTIONS(4339),
    [sym_short] = ACTIONS(4339),
    [sym_ushort] = ACTIONS(4339),
    [sym_int] = ACTIONS(4339),
    [sym_uint] = ACTIONS(4339),
    [sym_long] = ACTIONS(4339),
    [sym_ulong] = ACTIONS(4339),
    [sym_cent] = ACTIONS(4339),
    [sym_ucent] = ACTIONS(4339),
    [sym_wchar] = ACTIONS(4339),
    [sym_dchar] = ACTIONS(4339),
    [sym_float] = ACTIONS(4339),
    [sym_double] = ACTIONS(4339),
    [sym_real] = ACTIONS(4339),
    [sym_ifloat] = ACTIONS(4339),
    [sym_idouble] = ACTIONS(4339),
    [sym_ireal] = ACTIONS(4339),
    [sym_cfloat] = ACTIONS(4339),
    [sym_cdouble] = ACTIONS(4339),
    [sym_creal] = ACTIONS(4339),
    [sym_size_t] = ACTIONS(4339),
    [sym_ptrdiff_t] = ACTIONS(4339),
    [sym_string] = ACTIONS(4339),
    [sym_cstring] = ACTIONS(4339),
    [sym_dstring] = ACTIONS(4339),
    [sym_wstring] = ACTIONS(4339),
    [sym_noreturn] = ACTIONS(4339),
    [sym_this] = ACTIONS(4339),
    [sym_abstract] = ACTIONS(4339),
    [sym_alias] = ACTIONS(4339),
    [sym_align] = ACTIONS(4339),
    [sym_auto] = ACTIONS(4339),
    [sym_class] = ACTIONS(4339),
    [sym_const] = ACTIONS(4339),
    [sym_debug] = ACTIONS(4339),
    [sym_deprecated] = ACTIONS(4339),
    [sym_else] = ACTIONS(4339),
    [sym_enum] = ACTIONS(4339),
    [sym_export] = ACTIONS(4339),
    [sym_extern] = ACTIONS(4339),
    [sym_final] = ACTIONS(4339),
    [sym_immutable] = ACTIONS(4339),
    [sym_import] = ACTIONS(4339),
    [sym_inout] = ACTIONS(4339),
    [sym_interface] = ACTIONS(4339),
    [sym_invariant] = ACTIONS(4339),
    [sym_mixin] = ACTIONS(4339),
    [sym_nothrow] = ACTIONS(4339),
    [sym_override] = ACTIONS(4339),
    [sym_package] = ACTIONS(4339),
    [sym_pragma] = ACTIONS(4339),
    [sym_private] = ACTIONS(4339),
    [sym_protected] = ACTIONS(4339),
    [sym_public] = ACTIONS(4339),
    [sym_pure] = ACTIONS(4339),
    [sym_ref] = ACTIONS(4339),
    [sym_return] = ACTIONS(4339),
    [sym_scope] = ACTIONS(4339),
    [sym_shared] = ACTIONS(4339),
    [sym_static] = ACTIONS(4339),
    [sym_struct] = ACTIONS(4339),
    [sym_synchronized] = ACTIONS(4339),
    [sym_template] = ACTIONS(4339),
    [sym_typeof] = ACTIONS(4339),
    [sym_union] = ACTIONS(4339),
    [sym_unittest] = ACTIONS(4339),
    [sym_version] = ACTIONS(4339),
    [sym_while] = ACTIONS(4339),
    [sym_gshared] = ACTIONS(4339),
    [sym_traits] = ACTIONS(4339),
    [sym_vector] = ACTIONS(4339),
    [sym_void] = ACTIONS(4339),
    [sym_directive] = ACTIONS(3),
  },
  [2746] = {
    [ts_builtin_sym_end] = ACTIONS(4656),
    [sym_identifier] = ACTIONS(4654),
    [sym_end_file] = ACTIONS(4654),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4656),
    [anon_sym_SEMI] = ACTIONS(4656),
    [anon_sym_TILDE] = ACTIONS(4656),
    [anon_sym_AT] = ACTIONS(4656),
    [sym_bool] = ACTIONS(4654),
    [sym_byte] = ACTIONS(4654),
    [sym_ubyte] = ACTIONS(4654),
    [sym_char] = ACTIONS(4654),
    [sym_short] = ACTIONS(4654),
    [sym_ushort] = ACTIONS(4654),
    [sym_int] = ACTIONS(4654),
    [sym_uint] = ACTIONS(4654),
    [sym_long] = ACTIONS(4654),
    [sym_ulong] = ACTIONS(4654),
    [sym_cent] = ACTIONS(4654),
    [sym_ucent] = ACTIONS(4654),
    [sym_wchar] = ACTIONS(4654),
    [sym_dchar] = ACTIONS(4654),
    [sym_float] = ACTIONS(4654),
    [sym_double] = ACTIONS(4654),
    [sym_real] = ACTIONS(4654),
    [sym_ifloat] = ACTIONS(4654),
    [sym_idouble] = ACTIONS(4654),
    [sym_ireal] = ACTIONS(4654),
    [sym_cfloat] = ACTIONS(4654),
    [sym_cdouble] = ACTIONS(4654),
    [sym_creal] = ACTIONS(4654),
    [sym_size_t] = ACTIONS(4654),
    [sym_ptrdiff_t] = ACTIONS(4654),
    [sym_string] = ACTIONS(4654),
    [sym_cstring] = ACTIONS(4654),
    [sym_dstring] = ACTIONS(4654),
    [sym_wstring] = ACTIONS(4654),
    [sym_noreturn] = ACTIONS(4654),
    [sym_this] = ACTIONS(4654),
    [sym_abstract] = ACTIONS(4654),
    [sym_alias] = ACTIONS(4654),
    [sym_align] = ACTIONS(4654),
    [sym_auto] = ACTIONS(4654),
    [sym_class] = ACTIONS(4654),
    [sym_const] = ACTIONS(4654),
    [sym_debug] = ACTIONS(4654),
    [sym_deprecated] = ACTIONS(4654),
    [sym_else] = ACTIONS(4654),
    [sym_enum] = ACTIONS(4654),
    [sym_export] = ACTIONS(4654),
    [sym_extern] = ACTIONS(4654),
    [sym_final] = ACTIONS(4654),
    [sym_immutable] = ACTIONS(4654),
    [sym_import] = ACTIONS(4654),
    [sym_inout] = ACTIONS(4654),
    [sym_interface] = ACTIONS(4654),
    [sym_invariant] = ACTIONS(4654),
    [sym_mixin] = ACTIONS(4654),
    [sym_nothrow] = ACTIONS(4654),
    [sym_override] = ACTIONS(4654),
    [sym_package] = ACTIONS(4654),
    [sym_pragma] = ACTIONS(4654),
    [sym_private] = ACTIONS(4654),
    [sym_protected] = ACTIONS(4654),
    [sym_public] = ACTIONS(4654),
    [sym_pure] = ACTIONS(4654),
    [sym_ref] = ACTIONS(4654),
    [sym_return] = ACTIONS(4654),
    [sym_scope] = ACTIONS(4654),
    [sym_shared] = ACTIONS(4654),
    [sym_static] = ACTIONS(4654),
    [sym_struct] = ACTIONS(4654),
    [sym_synchronized] = ACTIONS(4654),
    [sym_template] = ACTIONS(4654),
    [sym_typeof] = ACTIONS(4654),
    [sym_union] = ACTIONS(4654),
    [sym_unittest] = ACTIONS(4654),
    [sym_version] = ACTIONS(4654),
    [sym_while] = ACTIONS(4654),
    [sym_gshared] = ACTIONS(4654),
    [sym_traits] = ACTIONS(4654),
    [sym_vector] = ACTIONS(4654),
    [sym_void] = ACTIONS(4654),
    [sym_directive] = ACTIONS(3),
  },
  [2747] = {
    [ts_builtin_sym_end] = ACTIONS(4768),
    [sym_identifier] = ACTIONS(4766),
    [sym_end_file] = ACTIONS(4766),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4768),
    [anon_sym_SEMI] = ACTIONS(4768),
    [anon_sym_TILDE] = ACTIONS(4768),
    [anon_sym_AT] = ACTIONS(4768),
    [sym_bool] = ACTIONS(4766),
    [sym_byte] = ACTIONS(4766),
    [sym_ubyte] = ACTIONS(4766),
    [sym_char] = ACTIONS(4766),
    [sym_short] = ACTIONS(4766),
    [sym_ushort] = ACTIONS(4766),
    [sym_int] = ACTIONS(4766),
    [sym_uint] = ACTIONS(4766),
    [sym_long] = ACTIONS(4766),
    [sym_ulong] = ACTIONS(4766),
    [sym_cent] = ACTIONS(4766),
    [sym_ucent] = ACTIONS(4766),
    [sym_wchar] = ACTIONS(4766),
    [sym_dchar] = ACTIONS(4766),
    [sym_float] = ACTIONS(4766),
    [sym_double] = ACTIONS(4766),
    [sym_real] = ACTIONS(4766),
    [sym_ifloat] = ACTIONS(4766),
    [sym_idouble] = ACTIONS(4766),
    [sym_ireal] = ACTIONS(4766),
    [sym_cfloat] = ACTIONS(4766),
    [sym_cdouble] = ACTIONS(4766),
    [sym_creal] = ACTIONS(4766),
    [sym_size_t] = ACTIONS(4766),
    [sym_ptrdiff_t] = ACTIONS(4766),
    [sym_string] = ACTIONS(4766),
    [sym_cstring] = ACTIONS(4766),
    [sym_dstring] = ACTIONS(4766),
    [sym_wstring] = ACTIONS(4766),
    [sym_noreturn] = ACTIONS(4766),
    [sym_this] = ACTIONS(4766),
    [sym_abstract] = ACTIONS(4766),
    [sym_alias] = ACTIONS(4766),
    [sym_align] = ACTIONS(4766),
    [sym_auto] = ACTIONS(4766),
    [sym_class] = ACTIONS(4766),
    [sym_const] = ACTIONS(4766),
    [sym_debug] = ACTIONS(4766),
    [sym_deprecated] = ACTIONS(4766),
    [sym_else] = ACTIONS(4766),
    [sym_enum] = ACTIONS(4766),
    [sym_export] = ACTIONS(4766),
    [sym_extern] = ACTIONS(4766),
    [sym_final] = ACTIONS(4766),
    [sym_immutable] = ACTIONS(4766),
    [sym_import] = ACTIONS(4766),
    [sym_inout] = ACTIONS(4766),
    [sym_interface] = ACTIONS(4766),
    [sym_invariant] = ACTIONS(4766),
    [sym_mixin] = ACTIONS(4766),
    [sym_nothrow] = ACTIONS(4766),
    [sym_override] = ACTIONS(4766),
    [sym_package] = ACTIONS(4766),
    [sym_pragma] = ACTIONS(4766),
    [sym_private] = ACTIONS(4766),
    [sym_protected] = ACTIONS(4766),
    [sym_public] = ACTIONS(4766),
    [sym_pure] = ACTIONS(4766),
    [sym_ref] = ACTIONS(4766),
    [sym_return] = ACTIONS(4766),
    [sym_scope] = ACTIONS(4766),
    [sym_shared] = ACTIONS(4766),
    [sym_static] = ACTIONS(4766),
    [sym_struct] = ACTIONS(4766),
    [sym_synchronized] = ACTIONS(4766),
    [sym_template] = ACTIONS(4766),
    [sym_typeof] = ACTIONS(4766),
    [sym_union] = ACTIONS(4766),
    [sym_unittest] = ACTIONS(4766),
    [sym_version] = ACTIONS(4766),
    [sym_while] = ACTIONS(4766),
    [sym_gshared] = ACTIONS(4766),
    [sym_traits] = ACTIONS(4766),
    [sym_vector] = ACTIONS(4766),
    [sym_void] = ACTIONS(4766),
    [sym_directive] = ACTIONS(3),
  },
  [2748] = {
    [ts_builtin_sym_end] = ACTIONS(4311),
    [sym_identifier] = ACTIONS(4309),
    [sym_end_file] = ACTIONS(4309),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4311),
    [anon_sym_SEMI] = ACTIONS(4311),
    [anon_sym_TILDE] = ACTIONS(4311),
    [anon_sym_AT] = ACTIONS(4311),
    [sym_bool] = ACTIONS(4309),
    [sym_byte] = ACTIONS(4309),
    [sym_ubyte] = ACTIONS(4309),
    [sym_char] = ACTIONS(4309),
    [sym_short] = ACTIONS(4309),
    [sym_ushort] = ACTIONS(4309),
    [sym_int] = ACTIONS(4309),
    [sym_uint] = ACTIONS(4309),
    [sym_long] = ACTIONS(4309),
    [sym_ulong] = ACTIONS(4309),
    [sym_cent] = ACTIONS(4309),
    [sym_ucent] = ACTIONS(4309),
    [sym_wchar] = ACTIONS(4309),
    [sym_dchar] = ACTIONS(4309),
    [sym_float] = ACTIONS(4309),
    [sym_double] = ACTIONS(4309),
    [sym_real] = ACTIONS(4309),
    [sym_ifloat] = ACTIONS(4309),
    [sym_idouble] = ACTIONS(4309),
    [sym_ireal] = ACTIONS(4309),
    [sym_cfloat] = ACTIONS(4309),
    [sym_cdouble] = ACTIONS(4309),
    [sym_creal] = ACTIONS(4309),
    [sym_size_t] = ACTIONS(4309),
    [sym_ptrdiff_t] = ACTIONS(4309),
    [sym_string] = ACTIONS(4309),
    [sym_cstring] = ACTIONS(4309),
    [sym_dstring] = ACTIONS(4309),
    [sym_wstring] = ACTIONS(4309),
    [sym_noreturn] = ACTIONS(4309),
    [sym_this] = ACTIONS(4309),
    [sym_abstract] = ACTIONS(4309),
    [sym_alias] = ACTIONS(4309),
    [sym_align] = ACTIONS(4309),
    [sym_auto] = ACTIONS(4309),
    [sym_class] = ACTIONS(4309),
    [sym_const] = ACTIONS(4309),
    [sym_debug] = ACTIONS(4309),
    [sym_deprecated] = ACTIONS(4309),
    [sym_else] = ACTIONS(4309),
    [sym_enum] = ACTIONS(4309),
    [sym_export] = ACTIONS(4309),
    [sym_extern] = ACTIONS(4309),
    [sym_final] = ACTIONS(4309),
    [sym_immutable] = ACTIONS(4309),
    [sym_import] = ACTIONS(4309),
    [sym_inout] = ACTIONS(4309),
    [sym_interface] = ACTIONS(4309),
    [sym_invariant] = ACTIONS(4309),
    [sym_mixin] = ACTIONS(4309),
    [sym_nothrow] = ACTIONS(4309),
    [sym_override] = ACTIONS(4309),
    [sym_package] = ACTIONS(4309),
    [sym_pragma] = ACTIONS(4309),
    [sym_private] = ACTIONS(4309),
    [sym_protected] = ACTIONS(4309),
    [sym_public] = ACTIONS(4309),
    [sym_pure] = ACTIONS(4309),
    [sym_ref] = ACTIONS(4309),
    [sym_return] = ACTIONS(4309),
    [sym_scope] = ACTIONS(4309),
    [sym_shared] = ACTIONS(4309),
    [sym_static] = ACTIONS(4309),
    [sym_struct] = ACTIONS(4309),
    [sym_synchronized] = ACTIONS(4309),
    [sym_template] = ACTIONS(4309),
    [sym_typeof] = ACTIONS(4309),
    [sym_union] = ACTIONS(4309),
    [sym_unittest] = ACTIONS(4309),
    [sym_version] = ACTIONS(4309),
    [sym_while] = ACTIONS(4309),
    [sym_gshared] = ACTIONS(4309),
    [sym_traits] = ACTIONS(4309),
    [sym_vector] = ACTIONS(4309),
    [sym_void] = ACTIONS(4309),
    [sym_directive] = ACTIONS(3),
  },
  [2749] = {
    [ts_builtin_sym_end] = ACTIONS(4772),
    [sym_identifier] = ACTIONS(4770),
    [sym_end_file] = ACTIONS(4770),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4772),
    [anon_sym_SEMI] = ACTIONS(4772),
    [anon_sym_TILDE] = ACTIONS(4772),
    [anon_sym_AT] = ACTIONS(4772),
    [sym_bool] = ACTIONS(4770),
    [sym_byte] = ACTIONS(4770),
    [sym_ubyte] = ACTIONS(4770),
    [sym_char] = ACTIONS(4770),
    [sym_short] = ACTIONS(4770),
    [sym_ushort] = ACTIONS(4770),
    [sym_int] = ACTIONS(4770),
    [sym_uint] = ACTIONS(4770),
    [sym_long] = ACTIONS(4770),
    [sym_ulong] = ACTIONS(4770),
    [sym_cent] = ACTIONS(4770),
    [sym_ucent] = ACTIONS(4770),
    [sym_wchar] = ACTIONS(4770),
    [sym_dchar] = ACTIONS(4770),
    [sym_float] = ACTIONS(4770),
    [sym_double] = ACTIONS(4770),
    [sym_real] = ACTIONS(4770),
    [sym_ifloat] = ACTIONS(4770),
    [sym_idouble] = ACTIONS(4770),
    [sym_ireal] = ACTIONS(4770),
    [sym_cfloat] = ACTIONS(4770),
    [sym_cdouble] = ACTIONS(4770),
    [sym_creal] = ACTIONS(4770),
    [sym_size_t] = ACTIONS(4770),
    [sym_ptrdiff_t] = ACTIONS(4770),
    [sym_string] = ACTIONS(4770),
    [sym_cstring] = ACTIONS(4770),
    [sym_dstring] = ACTIONS(4770),
    [sym_wstring] = ACTIONS(4770),
    [sym_noreturn] = ACTIONS(4770),
    [sym_this] = ACTIONS(4770),
    [sym_abstract] = ACTIONS(4770),
    [sym_alias] = ACTIONS(4770),
    [sym_align] = ACTIONS(4770),
    [sym_auto] = ACTIONS(4770),
    [sym_class] = ACTIONS(4770),
    [sym_const] = ACTIONS(4770),
    [sym_debug] = ACTIONS(4770),
    [sym_deprecated] = ACTIONS(4770),
    [sym_else] = ACTIONS(4770),
    [sym_enum] = ACTIONS(4770),
    [sym_export] = ACTIONS(4770),
    [sym_extern] = ACTIONS(4770),
    [sym_final] = ACTIONS(4770),
    [sym_immutable] = ACTIONS(4770),
    [sym_import] = ACTIONS(4770),
    [sym_inout] = ACTIONS(4770),
    [sym_interface] = ACTIONS(4770),
    [sym_invariant] = ACTIONS(4770),
    [sym_mixin] = ACTIONS(4770),
    [sym_nothrow] = ACTIONS(4770),
    [sym_override] = ACTIONS(4770),
    [sym_package] = ACTIONS(4770),
    [sym_pragma] = ACTIONS(4770),
    [sym_private] = ACTIONS(4770),
    [sym_protected] = ACTIONS(4770),
    [sym_public] = ACTIONS(4770),
    [sym_pure] = ACTIONS(4770),
    [sym_ref] = ACTIONS(4770),
    [sym_return] = ACTIONS(4770),
    [sym_scope] = ACTIONS(4770),
    [sym_shared] = ACTIONS(4770),
    [sym_static] = ACTIONS(4770),
    [sym_struct] = ACTIONS(4770),
    [sym_synchronized] = ACTIONS(4770),
    [sym_template] = ACTIONS(4770),
    [sym_typeof] = ACTIONS(4770),
    [sym_union] = ACTIONS(4770),
    [sym_unittest] = ACTIONS(4770),
    [sym_version] = ACTIONS(4770),
    [sym_while] = ACTIONS(4770),
    [sym_gshared] = ACTIONS(4770),
    [sym_traits] = ACTIONS(4770),
    [sym_vector] = ACTIONS(4770),
    [sym_void] = ACTIONS(4770),
    [sym_directive] = ACTIONS(3),
  },
  [2750] = {
    [ts_builtin_sym_end] = ACTIONS(4416),
    [sym_identifier] = ACTIONS(4414),
    [sym_end_file] = ACTIONS(4414),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4416),
    [anon_sym_SEMI] = ACTIONS(4416),
    [anon_sym_TILDE] = ACTIONS(4416),
    [anon_sym_AT] = ACTIONS(4416),
    [sym_bool] = ACTIONS(4414),
    [sym_byte] = ACTIONS(4414),
    [sym_ubyte] = ACTIONS(4414),
    [sym_char] = ACTIONS(4414),
    [sym_short] = ACTIONS(4414),
    [sym_ushort] = ACTIONS(4414),
    [sym_int] = ACTIONS(4414),
    [sym_uint] = ACTIONS(4414),
    [sym_long] = ACTIONS(4414),
    [sym_ulong] = ACTIONS(4414),
    [sym_cent] = ACTIONS(4414),
    [sym_ucent] = ACTIONS(4414),
    [sym_wchar] = ACTIONS(4414),
    [sym_dchar] = ACTIONS(4414),
    [sym_float] = ACTIONS(4414),
    [sym_double] = ACTIONS(4414),
    [sym_real] = ACTIONS(4414),
    [sym_ifloat] = ACTIONS(4414),
    [sym_idouble] = ACTIONS(4414),
    [sym_ireal] = ACTIONS(4414),
    [sym_cfloat] = ACTIONS(4414),
    [sym_cdouble] = ACTIONS(4414),
    [sym_creal] = ACTIONS(4414),
    [sym_size_t] = ACTIONS(4414),
    [sym_ptrdiff_t] = ACTIONS(4414),
    [sym_string] = ACTIONS(4414),
    [sym_cstring] = ACTIONS(4414),
    [sym_dstring] = ACTIONS(4414),
    [sym_wstring] = ACTIONS(4414),
    [sym_noreturn] = ACTIONS(4414),
    [sym_this] = ACTIONS(4414),
    [sym_abstract] = ACTIONS(4414),
    [sym_alias] = ACTIONS(4414),
    [sym_align] = ACTIONS(4414),
    [sym_auto] = ACTIONS(4414),
    [sym_class] = ACTIONS(4414),
    [sym_const] = ACTIONS(4414),
    [sym_debug] = ACTIONS(4414),
    [sym_deprecated] = ACTIONS(4414),
    [sym_else] = ACTIONS(4414),
    [sym_enum] = ACTIONS(4414),
    [sym_export] = ACTIONS(4414),
    [sym_extern] = ACTIONS(4414),
    [sym_final] = ACTIONS(4414),
    [sym_immutable] = ACTIONS(4414),
    [sym_import] = ACTIONS(4414),
    [sym_inout] = ACTIONS(4414),
    [sym_interface] = ACTIONS(4414),
    [sym_invariant] = ACTIONS(4414),
    [sym_mixin] = ACTIONS(4414),
    [sym_nothrow] = ACTIONS(4414),
    [sym_override] = ACTIONS(4414),
    [sym_package] = ACTIONS(4414),
    [sym_pragma] = ACTIONS(4414),
    [sym_private] = ACTIONS(4414),
    [sym_protected] = ACTIONS(4414),
    [sym_public] = ACTIONS(4414),
    [sym_pure] = ACTIONS(4414),
    [sym_ref] = ACTIONS(4414),
    [sym_return] = ACTIONS(4414),
    [sym_scope] = ACTIONS(4414),
    [sym_shared] = ACTIONS(4414),
    [sym_static] = ACTIONS(4414),
    [sym_struct] = ACTIONS(4414),
    [sym_synchronized] = ACTIONS(4414),
    [sym_template] = ACTIONS(4414),
    [sym_typeof] = ACTIONS(4414),
    [sym_union] = ACTIONS(4414),
    [sym_unittest] = ACTIONS(4414),
    [sym_version] = ACTIONS(4414),
    [sym_while] = ACTIONS(4414),
    [sym_gshared] = ACTIONS(4414),
    [sym_traits] = ACTIONS(4414),
    [sym_vector] = ACTIONS(4414),
    [sym_void] = ACTIONS(4414),
    [sym_directive] = ACTIONS(3),
  },
  [2751] = {
    [ts_builtin_sym_end] = ACTIONS(4420),
    [sym_identifier] = ACTIONS(4418),
    [sym_end_file] = ACTIONS(4418),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4420),
    [anon_sym_SEMI] = ACTIONS(4420),
    [anon_sym_TILDE] = ACTIONS(4420),
    [anon_sym_AT] = ACTIONS(4420),
    [sym_bool] = ACTIONS(4418),
    [sym_byte] = ACTIONS(4418),
    [sym_ubyte] = ACTIONS(4418),
    [sym_char] = ACTIONS(4418),
    [sym_short] = ACTIONS(4418),
    [sym_ushort] = ACTIONS(4418),
    [sym_int] = ACTIONS(4418),
    [sym_uint] = ACTIONS(4418),
    [sym_long] = ACTIONS(4418),
    [sym_ulong] = ACTIONS(4418),
    [sym_cent] = ACTIONS(4418),
    [sym_ucent] = ACTIONS(4418),
    [sym_wchar] = ACTIONS(4418),
    [sym_dchar] = ACTIONS(4418),
    [sym_float] = ACTIONS(4418),
    [sym_double] = ACTIONS(4418),
    [sym_real] = ACTIONS(4418),
    [sym_ifloat] = ACTIONS(4418),
    [sym_idouble] = ACTIONS(4418),
    [sym_ireal] = ACTIONS(4418),
    [sym_cfloat] = ACTIONS(4418),
    [sym_cdouble] = ACTIONS(4418),
    [sym_creal] = ACTIONS(4418),
    [sym_size_t] = ACTIONS(4418),
    [sym_ptrdiff_t] = ACTIONS(4418),
    [sym_string] = ACTIONS(4418),
    [sym_cstring] = ACTIONS(4418),
    [sym_dstring] = ACTIONS(4418),
    [sym_wstring] = ACTIONS(4418),
    [sym_noreturn] = ACTIONS(4418),
    [sym_this] = ACTIONS(4418),
    [sym_abstract] = ACTIONS(4418),
    [sym_alias] = ACTIONS(4418),
    [sym_align] = ACTIONS(4418),
    [sym_auto] = ACTIONS(4418),
    [sym_class] = ACTIONS(4418),
    [sym_const] = ACTIONS(4418),
    [sym_debug] = ACTIONS(4418),
    [sym_deprecated] = ACTIONS(4418),
    [sym_else] = ACTIONS(4418),
    [sym_enum] = ACTIONS(4418),
    [sym_export] = ACTIONS(4418),
    [sym_extern] = ACTIONS(4418),
    [sym_final] = ACTIONS(4418),
    [sym_immutable] = ACTIONS(4418),
    [sym_import] = ACTIONS(4418),
    [sym_inout] = ACTIONS(4418),
    [sym_interface] = ACTIONS(4418),
    [sym_invariant] = ACTIONS(4418),
    [sym_mixin] = ACTIONS(4418),
    [sym_nothrow] = ACTIONS(4418),
    [sym_override] = ACTIONS(4418),
    [sym_package] = ACTIONS(4418),
    [sym_pragma] = ACTIONS(4418),
    [sym_private] = ACTIONS(4418),
    [sym_protected] = ACTIONS(4418),
    [sym_public] = ACTIONS(4418),
    [sym_pure] = ACTIONS(4418),
    [sym_ref] = ACTIONS(4418),
    [sym_return] = ACTIONS(4418),
    [sym_scope] = ACTIONS(4418),
    [sym_shared] = ACTIONS(4418),
    [sym_static] = ACTIONS(4418),
    [sym_struct] = ACTIONS(4418),
    [sym_synchronized] = ACTIONS(4418),
    [sym_template] = ACTIONS(4418),
    [sym_typeof] = ACTIONS(4418),
    [sym_union] = ACTIONS(4418),
    [sym_unittest] = ACTIONS(4418),
    [sym_version] = ACTIONS(4418),
    [sym_while] = ACTIONS(4418),
    [sym_gshared] = ACTIONS(4418),
    [sym_traits] = ACTIONS(4418),
    [sym_vector] = ACTIONS(4418),
    [sym_void] = ACTIONS(4418),
    [sym_directive] = ACTIONS(3),
  },
  [2752] = {
    [ts_builtin_sym_end] = ACTIONS(4626),
    [sym_identifier] = ACTIONS(4624),
    [sym_end_file] = ACTIONS(4624),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4626),
    [anon_sym_SEMI] = ACTIONS(4626),
    [anon_sym_TILDE] = ACTIONS(4626),
    [anon_sym_AT] = ACTIONS(4626),
    [sym_bool] = ACTIONS(4624),
    [sym_byte] = ACTIONS(4624),
    [sym_ubyte] = ACTIONS(4624),
    [sym_char] = ACTIONS(4624),
    [sym_short] = ACTIONS(4624),
    [sym_ushort] = ACTIONS(4624),
    [sym_int] = ACTIONS(4624),
    [sym_uint] = ACTIONS(4624),
    [sym_long] = ACTIONS(4624),
    [sym_ulong] = ACTIONS(4624),
    [sym_cent] = ACTIONS(4624),
    [sym_ucent] = ACTIONS(4624),
    [sym_wchar] = ACTIONS(4624),
    [sym_dchar] = ACTIONS(4624),
    [sym_float] = ACTIONS(4624),
    [sym_double] = ACTIONS(4624),
    [sym_real] = ACTIONS(4624),
    [sym_ifloat] = ACTIONS(4624),
    [sym_idouble] = ACTIONS(4624),
    [sym_ireal] = ACTIONS(4624),
    [sym_cfloat] = ACTIONS(4624),
    [sym_cdouble] = ACTIONS(4624),
    [sym_creal] = ACTIONS(4624),
    [sym_size_t] = ACTIONS(4624),
    [sym_ptrdiff_t] = ACTIONS(4624),
    [sym_string] = ACTIONS(4624),
    [sym_cstring] = ACTIONS(4624),
    [sym_dstring] = ACTIONS(4624),
    [sym_wstring] = ACTIONS(4624),
    [sym_noreturn] = ACTIONS(4624),
    [sym_this] = ACTIONS(4624),
    [sym_abstract] = ACTIONS(4624),
    [sym_alias] = ACTIONS(4624),
    [sym_align] = ACTIONS(4624),
    [sym_auto] = ACTIONS(4624),
    [sym_class] = ACTIONS(4624),
    [sym_const] = ACTIONS(4624),
    [sym_debug] = ACTIONS(4624),
    [sym_deprecated] = ACTIONS(4624),
    [sym_else] = ACTIONS(4624),
    [sym_enum] = ACTIONS(4624),
    [sym_export] = ACTIONS(4624),
    [sym_extern] = ACTIONS(4624),
    [sym_final] = ACTIONS(4624),
    [sym_immutable] = ACTIONS(4624),
    [sym_import] = ACTIONS(4624),
    [sym_inout] = ACTIONS(4624),
    [sym_interface] = ACTIONS(4624),
    [sym_invariant] = ACTIONS(4624),
    [sym_mixin] = ACTIONS(4624),
    [sym_nothrow] = ACTIONS(4624),
    [sym_override] = ACTIONS(4624),
    [sym_package] = ACTIONS(4624),
    [sym_pragma] = ACTIONS(4624),
    [sym_private] = ACTIONS(4624),
    [sym_protected] = ACTIONS(4624),
    [sym_public] = ACTIONS(4624),
    [sym_pure] = ACTIONS(4624),
    [sym_ref] = ACTIONS(4624),
    [sym_return] = ACTIONS(4624),
    [sym_scope] = ACTIONS(4624),
    [sym_shared] = ACTIONS(4624),
    [sym_static] = ACTIONS(4624),
    [sym_struct] = ACTIONS(4624),
    [sym_synchronized] = ACTIONS(4624),
    [sym_template] = ACTIONS(4624),
    [sym_typeof] = ACTIONS(4624),
    [sym_union] = ACTIONS(4624),
    [sym_unittest] = ACTIONS(4624),
    [sym_version] = ACTIONS(4624),
    [sym_while] = ACTIONS(4624),
    [sym_gshared] = ACTIONS(4624),
    [sym_traits] = ACTIONS(4624),
    [sym_vector] = ACTIONS(4624),
    [sym_void] = ACTIONS(4624),
    [sym_directive] = ACTIONS(3),
  },
  [2753] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_else] = ACTIONS(6797),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
  },
  [2754] = {
    [sym_identifier] = ACTIONS(4694),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4696),
    [anon_sym_DOT] = ACTIONS(4696),
    [anon_sym_SEMI] = ACTIONS(4696),
    [anon_sym_TILDE] = ACTIONS(4696),
    [anon_sym_AT] = ACTIONS(4696),
    [sym_bool] = ACTIONS(4694),
    [sym_byte] = ACTIONS(4694),
    [sym_ubyte] = ACTIONS(4694),
    [sym_char] = ACTIONS(4694),
    [sym_short] = ACTIONS(4694),
    [sym_ushort] = ACTIONS(4694),
    [sym_int] = ACTIONS(4694),
    [sym_uint] = ACTIONS(4694),
    [sym_long] = ACTIONS(4694),
    [sym_ulong] = ACTIONS(4694),
    [sym_cent] = ACTIONS(4694),
    [sym_ucent] = ACTIONS(4694),
    [sym_wchar] = ACTIONS(4694),
    [sym_dchar] = ACTIONS(4694),
    [sym_float] = ACTIONS(4694),
    [sym_double] = ACTIONS(4694),
    [sym_real] = ACTIONS(4694),
    [sym_ifloat] = ACTIONS(4694),
    [sym_idouble] = ACTIONS(4694),
    [sym_ireal] = ACTIONS(4694),
    [sym_cfloat] = ACTIONS(4694),
    [sym_cdouble] = ACTIONS(4694),
    [sym_creal] = ACTIONS(4694),
    [sym_size_t] = ACTIONS(4694),
    [sym_ptrdiff_t] = ACTIONS(4694),
    [sym_string] = ACTIONS(4694),
    [sym_cstring] = ACTIONS(4694),
    [sym_dstring] = ACTIONS(4694),
    [sym_wstring] = ACTIONS(4694),
    [sym_noreturn] = ACTIONS(4694),
    [sym_this] = ACTIONS(4694),
    [sym_abstract] = ACTIONS(4694),
    [sym_alias] = ACTIONS(4694),
    [sym_align] = ACTIONS(4694),
    [sym_auto] = ACTIONS(4694),
    [sym_class] = ACTIONS(4694),
    [sym_const] = ACTIONS(4694),
    [sym_debug] = ACTIONS(4694),
    [sym_deprecated] = ACTIONS(4694),
    [sym_else] = ACTIONS(4694),
    [sym_enum] = ACTIONS(4694),
    [sym_export] = ACTIONS(4694),
    [sym_extern] = ACTIONS(4694),
    [sym_final] = ACTIONS(4694),
    [sym_immutable] = ACTIONS(4694),
    [sym_import] = ACTIONS(4694),
    [sym_inout] = ACTIONS(4694),
    [sym_interface] = ACTIONS(4694),
    [sym_invariant] = ACTIONS(4694),
    [sym_mixin] = ACTIONS(4694),
    [sym_nothrow] = ACTIONS(4694),
    [sym_override] = ACTIONS(4694),
    [sym_package] = ACTIONS(4694),
    [sym_pragma] = ACTIONS(4694),
    [sym_private] = ACTIONS(4694),
    [sym_protected] = ACTIONS(4694),
    [sym_public] = ACTIONS(4694),
    [sym_pure] = ACTIONS(4694),
    [sym_ref] = ACTIONS(4694),
    [sym_return] = ACTIONS(4694),
    [sym_scope] = ACTIONS(4694),
    [sym_shared] = ACTIONS(4694),
    [sym_static] = ACTIONS(4694),
    [sym_struct] = ACTIONS(4694),
    [sym_synchronized] = ACTIONS(4694),
    [sym_template] = ACTIONS(4694),
    [sym_typeof] = ACTIONS(4694),
    [sym_union] = ACTIONS(4694),
    [sym_unittest] = ACTIONS(4694),
    [sym_version] = ACTIONS(4694),
    [sym_while] = ACTIONS(4694),
    [sym_gshared] = ACTIONS(4694),
    [sym_traits] = ACTIONS(4694),
    [sym_vector] = ACTIONS(4694),
    [sym_void] = ACTIONS(4694),
    [sym_directive] = ACTIONS(3),
  },
  [2755] = {
    [sym_identifier] = ACTIONS(4524),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4526),
    [anon_sym_DOT] = ACTIONS(4526),
    [anon_sym_SEMI] = ACTIONS(4526),
    [anon_sym_TILDE] = ACTIONS(4526),
    [anon_sym_AT] = ACTIONS(4526),
    [sym_bool] = ACTIONS(4524),
    [sym_byte] = ACTIONS(4524),
    [sym_ubyte] = ACTIONS(4524),
    [sym_char] = ACTIONS(4524),
    [sym_short] = ACTIONS(4524),
    [sym_ushort] = ACTIONS(4524),
    [sym_int] = ACTIONS(4524),
    [sym_uint] = ACTIONS(4524),
    [sym_long] = ACTIONS(4524),
    [sym_ulong] = ACTIONS(4524),
    [sym_cent] = ACTIONS(4524),
    [sym_ucent] = ACTIONS(4524),
    [sym_wchar] = ACTIONS(4524),
    [sym_dchar] = ACTIONS(4524),
    [sym_float] = ACTIONS(4524),
    [sym_double] = ACTIONS(4524),
    [sym_real] = ACTIONS(4524),
    [sym_ifloat] = ACTIONS(4524),
    [sym_idouble] = ACTIONS(4524),
    [sym_ireal] = ACTIONS(4524),
    [sym_cfloat] = ACTIONS(4524),
    [sym_cdouble] = ACTIONS(4524),
    [sym_creal] = ACTIONS(4524),
    [sym_size_t] = ACTIONS(4524),
    [sym_ptrdiff_t] = ACTIONS(4524),
    [sym_string] = ACTIONS(4524),
    [sym_cstring] = ACTIONS(4524),
    [sym_dstring] = ACTIONS(4524),
    [sym_wstring] = ACTIONS(4524),
    [sym_noreturn] = ACTIONS(4524),
    [sym_this] = ACTIONS(4524),
    [sym_abstract] = ACTIONS(4524),
    [sym_alias] = ACTIONS(4524),
    [sym_align] = ACTIONS(4524),
    [sym_auto] = ACTIONS(4524),
    [sym_class] = ACTIONS(4524),
    [sym_const] = ACTIONS(4524),
    [sym_debug] = ACTIONS(4524),
    [sym_deprecated] = ACTIONS(4524),
    [sym_else] = ACTIONS(4524),
    [sym_enum] = ACTIONS(4524),
    [sym_export] = ACTIONS(4524),
    [sym_extern] = ACTIONS(4524),
    [sym_final] = ACTIONS(4524),
    [sym_immutable] = ACTIONS(4524),
    [sym_import] = ACTIONS(4524),
    [sym_inout] = ACTIONS(4524),
    [sym_interface] = ACTIONS(4524),
    [sym_invariant] = ACTIONS(4524),
    [sym_mixin] = ACTIONS(4524),
    [sym_nothrow] = ACTIONS(4524),
    [sym_override] = ACTIONS(4524),
    [sym_package] = ACTIONS(4524),
    [sym_pragma] = ACTIONS(4524),
    [sym_private] = ACTIONS(4524),
    [sym_protected] = ACTIONS(4524),
    [sym_public] = ACTIONS(4524),
    [sym_pure] = ACTIONS(4524),
    [sym_ref] = ACTIONS(4524),
    [sym_return] = ACTIONS(4524),
    [sym_scope] = ACTIONS(4524),
    [sym_shared] = ACTIONS(4524),
    [sym_static] = ACTIONS(4524),
    [sym_struct] = ACTIONS(4524),
    [sym_synchronized] = ACTIONS(4524),
    [sym_template] = ACTIONS(4524),
    [sym_typeof] = ACTIONS(4524),
    [sym_union] = ACTIONS(4524),
    [sym_unittest] = ACTIONS(4524),
    [sym_version] = ACTIONS(4524),
    [sym_while] = ACTIONS(4524),
    [sym_gshared] = ACTIONS(4524),
    [sym_traits] = ACTIONS(4524),
    [sym_vector] = ACTIONS(4524),
    [sym_void] = ACTIONS(4524),
    [sym_directive] = ACTIONS(3),
  },
  [2756] = {
    [ts_builtin_sym_end] = ACTIONS(2663),
    [sym_identifier] = ACTIONS(2665),
    [sym_end_file] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_else] = ACTIONS(6799),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
  },
  [2757] = {
    [sym_identifier] = ACTIONS(4650),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4652),
    [anon_sym_DOT] = ACTIONS(4652),
    [anon_sym_SEMI] = ACTIONS(4652),
    [anon_sym_TILDE] = ACTIONS(4652),
    [anon_sym_AT] = ACTIONS(4652),
    [sym_bool] = ACTIONS(4650),
    [sym_byte] = ACTIONS(4650),
    [sym_ubyte] = ACTIONS(4650),
    [sym_char] = ACTIONS(4650),
    [sym_short] = ACTIONS(4650),
    [sym_ushort] = ACTIONS(4650),
    [sym_int] = ACTIONS(4650),
    [sym_uint] = ACTIONS(4650),
    [sym_long] = ACTIONS(4650),
    [sym_ulong] = ACTIONS(4650),
    [sym_cent] = ACTIONS(4650),
    [sym_ucent] = ACTIONS(4650),
    [sym_wchar] = ACTIONS(4650),
    [sym_dchar] = ACTIONS(4650),
    [sym_float] = ACTIONS(4650),
    [sym_double] = ACTIONS(4650),
    [sym_real] = ACTIONS(4650),
    [sym_ifloat] = ACTIONS(4650),
    [sym_idouble] = ACTIONS(4650),
    [sym_ireal] = ACTIONS(4650),
    [sym_cfloat] = ACTIONS(4650),
    [sym_cdouble] = ACTIONS(4650),
    [sym_creal] = ACTIONS(4650),
    [sym_size_t] = ACTIONS(4650),
    [sym_ptrdiff_t] = ACTIONS(4650),
    [sym_string] = ACTIONS(4650),
    [sym_cstring] = ACTIONS(4650),
    [sym_dstring] = ACTIONS(4650),
    [sym_wstring] = ACTIONS(4650),
    [sym_noreturn] = ACTIONS(4650),
    [sym_this] = ACTIONS(4650),
    [sym_abstract] = ACTIONS(4650),
    [sym_alias] = ACTIONS(4650),
    [sym_align] = ACTIONS(4650),
    [sym_auto] = ACTIONS(4650),
    [sym_class] = ACTIONS(4650),
    [sym_const] = ACTIONS(4650),
    [sym_debug] = ACTIONS(4650),
    [sym_deprecated] = ACTIONS(4650),
    [sym_else] = ACTIONS(4650),
    [sym_enum] = ACTIONS(4650),
    [sym_export] = ACTIONS(4650),
    [sym_extern] = ACTIONS(4650),
    [sym_final] = ACTIONS(4650),
    [sym_immutable] = ACTIONS(4650),
    [sym_import] = ACTIONS(4650),
    [sym_inout] = ACTIONS(4650),
    [sym_interface] = ACTIONS(4650),
    [sym_invariant] = ACTIONS(4650),
    [sym_mixin] = ACTIONS(4650),
    [sym_nothrow] = ACTIONS(4650),
    [sym_override] = ACTIONS(4650),
    [sym_package] = ACTIONS(4650),
    [sym_pragma] = ACTIONS(4650),
    [sym_private] = ACTIONS(4650),
    [sym_protected] = ACTIONS(4650),
    [sym_public] = ACTIONS(4650),
    [sym_pure] = ACTIONS(4650),
    [sym_ref] = ACTIONS(4650),
    [sym_return] = ACTIONS(4650),
    [sym_scope] = ACTIONS(4650),
    [sym_shared] = ACTIONS(4650),
    [sym_static] = ACTIONS(4650),
    [sym_struct] = ACTIONS(4650),
    [sym_synchronized] = ACTIONS(4650),
    [sym_template] = ACTIONS(4650),
    [sym_typeof] = ACTIONS(4650),
    [sym_union] = ACTIONS(4650),
    [sym_unittest] = ACTIONS(4650),
    [sym_version] = ACTIONS(4650),
    [sym_while] = ACTIONS(4650),
    [sym_gshared] = ACTIONS(4650),
    [sym_traits] = ACTIONS(4650),
    [sym_vector] = ACTIONS(4650),
    [sym_void] = ACTIONS(4650),
    [sym_directive] = ACTIONS(3),
  },
  [2758] = {
    [sym_identifier] = ACTIONS(4662),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4664),
    [anon_sym_DOT] = ACTIONS(4664),
    [anon_sym_SEMI] = ACTIONS(4664),
    [anon_sym_TILDE] = ACTIONS(4664),
    [anon_sym_AT] = ACTIONS(4664),
    [sym_bool] = ACTIONS(4662),
    [sym_byte] = ACTIONS(4662),
    [sym_ubyte] = ACTIONS(4662),
    [sym_char] = ACTIONS(4662),
    [sym_short] = ACTIONS(4662),
    [sym_ushort] = ACTIONS(4662),
    [sym_int] = ACTIONS(4662),
    [sym_uint] = ACTIONS(4662),
    [sym_long] = ACTIONS(4662),
    [sym_ulong] = ACTIONS(4662),
    [sym_cent] = ACTIONS(4662),
    [sym_ucent] = ACTIONS(4662),
    [sym_wchar] = ACTIONS(4662),
    [sym_dchar] = ACTIONS(4662),
    [sym_float] = ACTIONS(4662),
    [sym_double] = ACTIONS(4662),
    [sym_real] = ACTIONS(4662),
    [sym_ifloat] = ACTIONS(4662),
    [sym_idouble] = ACTIONS(4662),
    [sym_ireal] = ACTIONS(4662),
    [sym_cfloat] = ACTIONS(4662),
    [sym_cdouble] = ACTIONS(4662),
    [sym_creal] = ACTIONS(4662),
    [sym_size_t] = ACTIONS(4662),
    [sym_ptrdiff_t] = ACTIONS(4662),
    [sym_string] = ACTIONS(4662),
    [sym_cstring] = ACTIONS(4662),
    [sym_dstring] = ACTIONS(4662),
    [sym_wstring] = ACTIONS(4662),
    [sym_noreturn] = ACTIONS(4662),
    [sym_this] = ACTIONS(4662),
    [sym_abstract] = ACTIONS(4662),
    [sym_alias] = ACTIONS(4662),
    [sym_align] = ACTIONS(4662),
    [sym_auto] = ACTIONS(4662),
    [sym_class] = ACTIONS(4662),
    [sym_const] = ACTIONS(4662),
    [sym_debug] = ACTIONS(4662),
    [sym_deprecated] = ACTIONS(4662),
    [sym_else] = ACTIONS(4662),
    [sym_enum] = ACTIONS(4662),
    [sym_export] = ACTIONS(4662),
    [sym_extern] = ACTIONS(4662),
    [sym_final] = ACTIONS(4662),
    [sym_immutable] = ACTIONS(4662),
    [sym_import] = ACTIONS(4662),
    [sym_inout] = ACTIONS(4662),
    [sym_interface] = ACTIONS(4662),
    [sym_invariant] = ACTIONS(4662),
    [sym_mixin] = ACTIONS(4662),
    [sym_nothrow] = ACTIONS(4662),
    [sym_override] = ACTIONS(4662),
    [sym_package] = ACTIONS(4662),
    [sym_pragma] = ACTIONS(4662),
    [sym_private] = ACTIONS(4662),
    [sym_protected] = ACTIONS(4662),
    [sym_public] = ACTIONS(4662),
    [sym_pure] = ACTIONS(4662),
    [sym_ref] = ACTIONS(4662),
    [sym_return] = ACTIONS(4662),
    [sym_scope] = ACTIONS(4662),
    [sym_shared] = ACTIONS(4662),
    [sym_static] = ACTIONS(4662),
    [sym_struct] = ACTIONS(4662),
    [sym_synchronized] = ACTIONS(4662),
    [sym_template] = ACTIONS(4662),
    [sym_typeof] = ACTIONS(4662),
    [sym_union] = ACTIONS(4662),
    [sym_unittest] = ACTIONS(4662),
    [sym_version] = ACTIONS(4662),
    [sym_while] = ACTIONS(4662),
    [sym_gshared] = ACTIONS(4662),
    [sym_traits] = ACTIONS(4662),
    [sym_vector] = ACTIONS(4662),
    [sym_void] = ACTIONS(4662),
    [sym_directive] = ACTIONS(3),
  },
  [2759] = {
    [sym_identifier] = ACTIONS(4670),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4672),
    [anon_sym_DOT] = ACTIONS(4672),
    [anon_sym_SEMI] = ACTIONS(4672),
    [anon_sym_TILDE] = ACTIONS(4672),
    [anon_sym_AT] = ACTIONS(4672),
    [sym_bool] = ACTIONS(4670),
    [sym_byte] = ACTIONS(4670),
    [sym_ubyte] = ACTIONS(4670),
    [sym_char] = ACTIONS(4670),
    [sym_short] = ACTIONS(4670),
    [sym_ushort] = ACTIONS(4670),
    [sym_int] = ACTIONS(4670),
    [sym_uint] = ACTIONS(4670),
    [sym_long] = ACTIONS(4670),
    [sym_ulong] = ACTIONS(4670),
    [sym_cent] = ACTIONS(4670),
    [sym_ucent] = ACTIONS(4670),
    [sym_wchar] = ACTIONS(4670),
    [sym_dchar] = ACTIONS(4670),
    [sym_float] = ACTIONS(4670),
    [sym_double] = ACTIONS(4670),
    [sym_real] = ACTIONS(4670),
    [sym_ifloat] = ACTIONS(4670),
    [sym_idouble] = ACTIONS(4670),
    [sym_ireal] = ACTIONS(4670),
    [sym_cfloat] = ACTIONS(4670),
    [sym_cdouble] = ACTIONS(4670),
    [sym_creal] = ACTIONS(4670),
    [sym_size_t] = ACTIONS(4670),
    [sym_ptrdiff_t] = ACTIONS(4670),
    [sym_string] = ACTIONS(4670),
    [sym_cstring] = ACTIONS(4670),
    [sym_dstring] = ACTIONS(4670),
    [sym_wstring] = ACTIONS(4670),
    [sym_noreturn] = ACTIONS(4670),
    [sym_this] = ACTIONS(4670),
    [sym_abstract] = ACTIONS(4670),
    [sym_alias] = ACTIONS(4670),
    [sym_align] = ACTIONS(4670),
    [sym_auto] = ACTIONS(4670),
    [sym_class] = ACTIONS(4670),
    [sym_const] = ACTIONS(4670),
    [sym_debug] = ACTIONS(4670),
    [sym_deprecated] = ACTIONS(4670),
    [sym_else] = ACTIONS(4670),
    [sym_enum] = ACTIONS(4670),
    [sym_export] = ACTIONS(4670),
    [sym_extern] = ACTIONS(4670),
    [sym_final] = ACTIONS(4670),
    [sym_immutable] = ACTIONS(4670),
    [sym_import] = ACTIONS(4670),
    [sym_inout] = ACTIONS(4670),
    [sym_interface] = ACTIONS(4670),
    [sym_invariant] = ACTIONS(4670),
    [sym_mixin] = ACTIONS(4670),
    [sym_nothrow] = ACTIONS(4670),
    [sym_override] = ACTIONS(4670),
    [sym_package] = ACTIONS(4670),
    [sym_pragma] = ACTIONS(4670),
    [sym_private] = ACTIONS(4670),
    [sym_protected] = ACTIONS(4670),
    [sym_public] = ACTIONS(4670),
    [sym_pure] = ACTIONS(4670),
    [sym_ref] = ACTIONS(4670),
    [sym_return] = ACTIONS(4670),
    [sym_scope] = ACTIONS(4670),
    [sym_shared] = ACTIONS(4670),
    [sym_static] = ACTIONS(4670),
    [sym_struct] = ACTIONS(4670),
    [sym_synchronized] = ACTIONS(4670),
    [sym_template] = ACTIONS(4670),
    [sym_typeof] = ACTIONS(4670),
    [sym_union] = ACTIONS(4670),
    [sym_unittest] = ACTIONS(4670),
    [sym_version] = ACTIONS(4670),
    [sym_while] = ACTIONS(4670),
    [sym_gshared] = ACTIONS(4670),
    [sym_traits] = ACTIONS(4670),
    [sym_vector] = ACTIONS(4670),
    [sym_void] = ACTIONS(4670),
    [sym_directive] = ACTIONS(3),
  },
  [2760] = {
    [sym_identifier] = ACTIONS(4674),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4676),
    [anon_sym_DOT] = ACTIONS(4676),
    [anon_sym_SEMI] = ACTIONS(4676),
    [anon_sym_TILDE] = ACTIONS(4676),
    [anon_sym_AT] = ACTIONS(4676),
    [sym_bool] = ACTIONS(4674),
    [sym_byte] = ACTIONS(4674),
    [sym_ubyte] = ACTIONS(4674),
    [sym_char] = ACTIONS(4674),
    [sym_short] = ACTIONS(4674),
    [sym_ushort] = ACTIONS(4674),
    [sym_int] = ACTIONS(4674),
    [sym_uint] = ACTIONS(4674),
    [sym_long] = ACTIONS(4674),
    [sym_ulong] = ACTIONS(4674),
    [sym_cent] = ACTIONS(4674),
    [sym_ucent] = ACTIONS(4674),
    [sym_wchar] = ACTIONS(4674),
    [sym_dchar] = ACTIONS(4674),
    [sym_float] = ACTIONS(4674),
    [sym_double] = ACTIONS(4674),
    [sym_real] = ACTIONS(4674),
    [sym_ifloat] = ACTIONS(4674),
    [sym_idouble] = ACTIONS(4674),
    [sym_ireal] = ACTIONS(4674),
    [sym_cfloat] = ACTIONS(4674),
    [sym_cdouble] = ACTIONS(4674),
    [sym_creal] = ACTIONS(4674),
    [sym_size_t] = ACTIONS(4674),
    [sym_ptrdiff_t] = ACTIONS(4674),
    [sym_string] = ACTIONS(4674),
    [sym_cstring] = ACTIONS(4674),
    [sym_dstring] = ACTIONS(4674),
    [sym_wstring] = ACTIONS(4674),
    [sym_noreturn] = ACTIONS(4674),
    [sym_this] = ACTIONS(4674),
    [sym_abstract] = ACTIONS(4674),
    [sym_alias] = ACTIONS(4674),
    [sym_align] = ACTIONS(4674),
    [sym_auto] = ACTIONS(4674),
    [sym_class] = ACTIONS(4674),
    [sym_const] = ACTIONS(4674),
    [sym_debug] = ACTIONS(4674),
    [sym_deprecated] = ACTIONS(4674),
    [sym_else] = ACTIONS(4674),
    [sym_enum] = ACTIONS(4674),
    [sym_export] = ACTIONS(4674),
    [sym_extern] = ACTIONS(4674),
    [sym_final] = ACTIONS(4674),
    [sym_immutable] = ACTIONS(4674),
    [sym_import] = ACTIONS(4674),
    [sym_inout] = ACTIONS(4674),
    [sym_interface] = ACTIONS(4674),
    [sym_invariant] = ACTIONS(4674),
    [sym_mixin] = ACTIONS(4674),
    [sym_nothrow] = ACTIONS(4674),
    [sym_override] = ACTIONS(4674),
    [sym_package] = ACTIONS(4674),
    [sym_pragma] = ACTIONS(4674),
    [sym_private] = ACTIONS(4674),
    [sym_protected] = ACTIONS(4674),
    [sym_public] = ACTIONS(4674),
    [sym_pure] = ACTIONS(4674),
    [sym_ref] = ACTIONS(4674),
    [sym_return] = ACTIONS(4674),
    [sym_scope] = ACTIONS(4674),
    [sym_shared] = ACTIONS(4674),
    [sym_static] = ACTIONS(4674),
    [sym_struct] = ACTIONS(4674),
    [sym_synchronized] = ACTIONS(4674),
    [sym_template] = ACTIONS(4674),
    [sym_typeof] = ACTIONS(4674),
    [sym_union] = ACTIONS(4674),
    [sym_unittest] = ACTIONS(4674),
    [sym_version] = ACTIONS(4674),
    [sym_while] = ACTIONS(4674),
    [sym_gshared] = ACTIONS(4674),
    [sym_traits] = ACTIONS(4674),
    [sym_vector] = ACTIONS(4674),
    [sym_void] = ACTIONS(4674),
    [sym_directive] = ACTIONS(3),
  },
  [2761] = {
    [sym_identifier] = ACTIONS(4682),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4684),
    [anon_sym_DOT] = ACTIONS(4684),
    [anon_sym_SEMI] = ACTIONS(4684),
    [anon_sym_TILDE] = ACTIONS(4684),
    [anon_sym_AT] = ACTIONS(4684),
    [sym_bool] = ACTIONS(4682),
    [sym_byte] = ACTIONS(4682),
    [sym_ubyte] = ACTIONS(4682),
    [sym_char] = ACTIONS(4682),
    [sym_short] = ACTIONS(4682),
    [sym_ushort] = ACTIONS(4682),
    [sym_int] = ACTIONS(4682),
    [sym_uint] = ACTIONS(4682),
    [sym_long] = ACTIONS(4682),
    [sym_ulong] = ACTIONS(4682),
    [sym_cent] = ACTIONS(4682),
    [sym_ucent] = ACTIONS(4682),
    [sym_wchar] = ACTIONS(4682),
    [sym_dchar] = ACTIONS(4682),
    [sym_float] = ACTIONS(4682),
    [sym_double] = ACTIONS(4682),
    [sym_real] = ACTIONS(4682),
    [sym_ifloat] = ACTIONS(4682),
    [sym_idouble] = ACTIONS(4682),
    [sym_ireal] = ACTIONS(4682),
    [sym_cfloat] = ACTIONS(4682),
    [sym_cdouble] = ACTIONS(4682),
    [sym_creal] = ACTIONS(4682),
    [sym_size_t] = ACTIONS(4682),
    [sym_ptrdiff_t] = ACTIONS(4682),
    [sym_string] = ACTIONS(4682),
    [sym_cstring] = ACTIONS(4682),
    [sym_dstring] = ACTIONS(4682),
    [sym_wstring] = ACTIONS(4682),
    [sym_noreturn] = ACTIONS(4682),
    [sym_this] = ACTIONS(4682),
    [sym_abstract] = ACTIONS(4682),
    [sym_alias] = ACTIONS(4682),
    [sym_align] = ACTIONS(4682),
    [sym_auto] = ACTIONS(4682),
    [sym_class] = ACTIONS(4682),
    [sym_const] = ACTIONS(4682),
    [sym_debug] = ACTIONS(4682),
    [sym_deprecated] = ACTIONS(4682),
    [sym_else] = ACTIONS(4682),
    [sym_enum] = ACTIONS(4682),
    [sym_export] = ACTIONS(4682),
    [sym_extern] = ACTIONS(4682),
    [sym_final] = ACTIONS(4682),
    [sym_immutable] = ACTIONS(4682),
    [sym_import] = ACTIONS(4682),
    [sym_inout] = ACTIONS(4682),
    [sym_interface] = ACTIONS(4682),
    [sym_invariant] = ACTIONS(4682),
    [sym_mixin] = ACTIONS(4682),
    [sym_nothrow] = ACTIONS(4682),
    [sym_override] = ACTIONS(4682),
    [sym_package] = ACTIONS(4682),
    [sym_pragma] = ACTIONS(4682),
    [sym_private] = ACTIONS(4682),
    [sym_protected] = ACTIONS(4682),
    [sym_public] = ACTIONS(4682),
    [sym_pure] = ACTIONS(4682),
    [sym_ref] = ACTIONS(4682),
    [sym_return] = ACTIONS(4682),
    [sym_scope] = ACTIONS(4682),
    [sym_shared] = ACTIONS(4682),
    [sym_static] = ACTIONS(4682),
    [sym_struct] = ACTIONS(4682),
    [sym_synchronized] = ACTIONS(4682),
    [sym_template] = ACTIONS(4682),
    [sym_typeof] = ACTIONS(4682),
    [sym_union] = ACTIONS(4682),
    [sym_unittest] = ACTIONS(4682),
    [sym_version] = ACTIONS(4682),
    [sym_while] = ACTIONS(4682),
    [sym_gshared] = ACTIONS(4682),
    [sym_traits] = ACTIONS(4682),
    [sym_vector] = ACTIONS(4682),
    [sym_void] = ACTIONS(4682),
    [sym_directive] = ACTIONS(3),
  },
  [2762] = {
    [sym_identifier] = ACTIONS(4686),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4688),
    [anon_sym_DOT] = ACTIONS(4688),
    [anon_sym_SEMI] = ACTIONS(4688),
    [anon_sym_TILDE] = ACTIONS(4688),
    [anon_sym_AT] = ACTIONS(4688),
    [sym_bool] = ACTIONS(4686),
    [sym_byte] = ACTIONS(4686),
    [sym_ubyte] = ACTIONS(4686),
    [sym_char] = ACTIONS(4686),
    [sym_short] = ACTIONS(4686),
    [sym_ushort] = ACTIONS(4686),
    [sym_int] = ACTIONS(4686),
    [sym_uint] = ACTIONS(4686),
    [sym_long] = ACTIONS(4686),
    [sym_ulong] = ACTIONS(4686),
    [sym_cent] = ACTIONS(4686),
    [sym_ucent] = ACTIONS(4686),
    [sym_wchar] = ACTIONS(4686),
    [sym_dchar] = ACTIONS(4686),
    [sym_float] = ACTIONS(4686),
    [sym_double] = ACTIONS(4686),
    [sym_real] = ACTIONS(4686),
    [sym_ifloat] = ACTIONS(4686),
    [sym_idouble] = ACTIONS(4686),
    [sym_ireal] = ACTIONS(4686),
    [sym_cfloat] = ACTIONS(4686),
    [sym_cdouble] = ACTIONS(4686),
    [sym_creal] = ACTIONS(4686),
    [sym_size_t] = ACTIONS(4686),
    [sym_ptrdiff_t] = ACTIONS(4686),
    [sym_string] = ACTIONS(4686),
    [sym_cstring] = ACTIONS(4686),
    [sym_dstring] = ACTIONS(4686),
    [sym_wstring] = ACTIONS(4686),
    [sym_noreturn] = ACTIONS(4686),
    [sym_this] = ACTIONS(4686),
    [sym_abstract] = ACTIONS(4686),
    [sym_alias] = ACTIONS(4686),
    [sym_align] = ACTIONS(4686),
    [sym_auto] = ACTIONS(4686),
    [sym_class] = ACTIONS(4686),
    [sym_const] = ACTIONS(4686),
    [sym_debug] = ACTIONS(4686),
    [sym_deprecated] = ACTIONS(4686),
    [sym_else] = ACTIONS(4686),
    [sym_enum] = ACTIONS(4686),
    [sym_export] = ACTIONS(4686),
    [sym_extern] = ACTIONS(4686),
    [sym_final] = ACTIONS(4686),
    [sym_immutable] = ACTIONS(4686),
    [sym_import] = ACTIONS(4686),
    [sym_inout] = ACTIONS(4686),
    [sym_interface] = ACTIONS(4686),
    [sym_invariant] = ACTIONS(4686),
    [sym_mixin] = ACTIONS(4686),
    [sym_nothrow] = ACTIONS(4686),
    [sym_override] = ACTIONS(4686),
    [sym_package] = ACTIONS(4686),
    [sym_pragma] = ACTIONS(4686),
    [sym_private] = ACTIONS(4686),
    [sym_protected] = ACTIONS(4686),
    [sym_public] = ACTIONS(4686),
    [sym_pure] = ACTIONS(4686),
    [sym_ref] = ACTIONS(4686),
    [sym_return] = ACTIONS(4686),
    [sym_scope] = ACTIONS(4686),
    [sym_shared] = ACTIONS(4686),
    [sym_static] = ACTIONS(4686),
    [sym_struct] = ACTIONS(4686),
    [sym_synchronized] = ACTIONS(4686),
    [sym_template] = ACTIONS(4686),
    [sym_typeof] = ACTIONS(4686),
    [sym_union] = ACTIONS(4686),
    [sym_unittest] = ACTIONS(4686),
    [sym_version] = ACTIONS(4686),
    [sym_while] = ACTIONS(4686),
    [sym_gshared] = ACTIONS(4686),
    [sym_traits] = ACTIONS(4686),
    [sym_vector] = ACTIONS(4686),
    [sym_void] = ACTIONS(4686),
    [sym_directive] = ACTIONS(3),
  },
  [2763] = {
    [sym_identifier] = ACTIONS(4460),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4462),
    [anon_sym_DOT] = ACTIONS(4462),
    [anon_sym_SEMI] = ACTIONS(4462),
    [anon_sym_TILDE] = ACTIONS(4462),
    [anon_sym_AT] = ACTIONS(4462),
    [sym_bool] = ACTIONS(4460),
    [sym_byte] = ACTIONS(4460),
    [sym_ubyte] = ACTIONS(4460),
    [sym_char] = ACTIONS(4460),
    [sym_short] = ACTIONS(4460),
    [sym_ushort] = ACTIONS(4460),
    [sym_int] = ACTIONS(4460),
    [sym_uint] = ACTIONS(4460),
    [sym_long] = ACTIONS(4460),
    [sym_ulong] = ACTIONS(4460),
    [sym_cent] = ACTIONS(4460),
    [sym_ucent] = ACTIONS(4460),
    [sym_wchar] = ACTIONS(4460),
    [sym_dchar] = ACTIONS(4460),
    [sym_float] = ACTIONS(4460),
    [sym_double] = ACTIONS(4460),
    [sym_real] = ACTIONS(4460),
    [sym_ifloat] = ACTIONS(4460),
    [sym_idouble] = ACTIONS(4460),
    [sym_ireal] = ACTIONS(4460),
    [sym_cfloat] = ACTIONS(4460),
    [sym_cdouble] = ACTIONS(4460),
    [sym_creal] = ACTIONS(4460),
    [sym_size_t] = ACTIONS(4460),
    [sym_ptrdiff_t] = ACTIONS(4460),
    [sym_string] = ACTIONS(4460),
    [sym_cstring] = ACTIONS(4460),
    [sym_dstring] = ACTIONS(4460),
    [sym_wstring] = ACTIONS(4460),
    [sym_noreturn] = ACTIONS(4460),
    [sym_this] = ACTIONS(4460),
    [sym_abstract] = ACTIONS(4460),
    [sym_alias] = ACTIONS(4460),
    [sym_align] = ACTIONS(4460),
    [sym_auto] = ACTIONS(4460),
    [sym_class] = ACTIONS(4460),
    [sym_const] = ACTIONS(4460),
    [sym_debug] = ACTIONS(4460),
    [sym_deprecated] = ACTIONS(4460),
    [sym_else] = ACTIONS(4460),
    [sym_enum] = ACTIONS(4460),
    [sym_export] = ACTIONS(4460),
    [sym_extern] = ACTIONS(4460),
    [sym_final] = ACTIONS(4460),
    [sym_immutable] = ACTIONS(4460),
    [sym_import] = ACTIONS(4460),
    [sym_inout] = ACTIONS(4460),
    [sym_interface] = ACTIONS(4460),
    [sym_invariant] = ACTIONS(4460),
    [sym_mixin] = ACTIONS(4460),
    [sym_nothrow] = ACTIONS(4460),
    [sym_override] = ACTIONS(4460),
    [sym_package] = ACTIONS(4460),
    [sym_pragma] = ACTIONS(4460),
    [sym_private] = ACTIONS(4460),
    [sym_protected] = ACTIONS(4460),
    [sym_public] = ACTIONS(4460),
    [sym_pure] = ACTIONS(4460),
    [sym_ref] = ACTIONS(4460),
    [sym_return] = ACTIONS(4460),
    [sym_scope] = ACTIONS(4460),
    [sym_shared] = ACTIONS(4460),
    [sym_static] = ACTIONS(4460),
    [sym_struct] = ACTIONS(4460),
    [sym_synchronized] = ACTIONS(4460),
    [sym_template] = ACTIONS(4460),
    [sym_typeof] = ACTIONS(4460),
    [sym_union] = ACTIONS(4460),
    [sym_unittest] = ACTIONS(4460),
    [sym_version] = ACTIONS(4460),
    [sym_while] = ACTIONS(4460),
    [sym_gshared] = ACTIONS(4460),
    [sym_traits] = ACTIONS(4460),
    [sym_vector] = ACTIONS(4460),
    [sym_void] = ACTIONS(4460),
    [sym_directive] = ACTIONS(3),
  },
  [2764] = {
    [sym_identifier] = ACTIONS(4492),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4494),
    [anon_sym_DOT] = ACTIONS(4494),
    [anon_sym_SEMI] = ACTIONS(4494),
    [anon_sym_TILDE] = ACTIONS(4494),
    [anon_sym_AT] = ACTIONS(4494),
    [sym_bool] = ACTIONS(4492),
    [sym_byte] = ACTIONS(4492),
    [sym_ubyte] = ACTIONS(4492),
    [sym_char] = ACTIONS(4492),
    [sym_short] = ACTIONS(4492),
    [sym_ushort] = ACTIONS(4492),
    [sym_int] = ACTIONS(4492),
    [sym_uint] = ACTIONS(4492),
    [sym_long] = ACTIONS(4492),
    [sym_ulong] = ACTIONS(4492),
    [sym_cent] = ACTIONS(4492),
    [sym_ucent] = ACTIONS(4492),
    [sym_wchar] = ACTIONS(4492),
    [sym_dchar] = ACTIONS(4492),
    [sym_float] = ACTIONS(4492),
    [sym_double] = ACTIONS(4492),
    [sym_real] = ACTIONS(4492),
    [sym_ifloat] = ACTIONS(4492),
    [sym_idouble] = ACTIONS(4492),
    [sym_ireal] = ACTIONS(4492),
    [sym_cfloat] = ACTIONS(4492),
    [sym_cdouble] = ACTIONS(4492),
    [sym_creal] = ACTIONS(4492),
    [sym_size_t] = ACTIONS(4492),
    [sym_ptrdiff_t] = ACTIONS(4492),
    [sym_string] = ACTIONS(4492),
    [sym_cstring] = ACTIONS(4492),
    [sym_dstring] = ACTIONS(4492),
    [sym_wstring] = ACTIONS(4492),
    [sym_noreturn] = ACTIONS(4492),
    [sym_this] = ACTIONS(4492),
    [sym_abstract] = ACTIONS(4492),
    [sym_alias] = ACTIONS(4492),
    [sym_align] = ACTIONS(4492),
    [sym_auto] = ACTIONS(4492),
    [sym_class] = ACTIONS(4492),
    [sym_const] = ACTIONS(4492),
    [sym_debug] = ACTIONS(4492),
    [sym_deprecated] = ACTIONS(4492),
    [sym_else] = ACTIONS(4492),
    [sym_enum] = ACTIONS(4492),
    [sym_export] = ACTIONS(4492),
    [sym_extern] = ACTIONS(4492),
    [sym_final] = ACTIONS(4492),
    [sym_immutable] = ACTIONS(4492),
    [sym_import] = ACTIONS(4492),
    [sym_inout] = ACTIONS(4492),
    [sym_interface] = ACTIONS(4492),
    [sym_invariant] = ACTIONS(4492),
    [sym_mixin] = ACTIONS(4492),
    [sym_nothrow] = ACTIONS(4492),
    [sym_override] = ACTIONS(4492),
    [sym_package] = ACTIONS(4492),
    [sym_pragma] = ACTIONS(4492),
    [sym_private] = ACTIONS(4492),
    [sym_protected] = ACTIONS(4492),
    [sym_public] = ACTIONS(4492),
    [sym_pure] = ACTIONS(4492),
    [sym_ref] = ACTIONS(4492),
    [sym_return] = ACTIONS(4492),
    [sym_scope] = ACTIONS(4492),
    [sym_shared] = ACTIONS(4492),
    [sym_static] = ACTIONS(4492),
    [sym_struct] = ACTIONS(4492),
    [sym_synchronized] = ACTIONS(4492),
    [sym_template] = ACTIONS(4492),
    [sym_typeof] = ACTIONS(4492),
    [sym_union] = ACTIONS(4492),
    [sym_unittest] = ACTIONS(4492),
    [sym_version] = ACTIONS(4492),
    [sym_while] = ACTIONS(4492),
    [sym_gshared] = ACTIONS(4492),
    [sym_traits] = ACTIONS(4492),
    [sym_vector] = ACTIONS(4492),
    [sym_void] = ACTIONS(4492),
    [sym_directive] = ACTIONS(3),
  },
  [2765] = {
    [sym_identifier] = ACTIONS(4566),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4568),
    [anon_sym_DOT] = ACTIONS(4568),
    [anon_sym_SEMI] = ACTIONS(4568),
    [anon_sym_TILDE] = ACTIONS(4568),
    [anon_sym_AT] = ACTIONS(4568),
    [sym_bool] = ACTIONS(4566),
    [sym_byte] = ACTIONS(4566),
    [sym_ubyte] = ACTIONS(4566),
    [sym_char] = ACTIONS(4566),
    [sym_short] = ACTIONS(4566),
    [sym_ushort] = ACTIONS(4566),
    [sym_int] = ACTIONS(4566),
    [sym_uint] = ACTIONS(4566),
    [sym_long] = ACTIONS(4566),
    [sym_ulong] = ACTIONS(4566),
    [sym_cent] = ACTIONS(4566),
    [sym_ucent] = ACTIONS(4566),
    [sym_wchar] = ACTIONS(4566),
    [sym_dchar] = ACTIONS(4566),
    [sym_float] = ACTIONS(4566),
    [sym_double] = ACTIONS(4566),
    [sym_real] = ACTIONS(4566),
    [sym_ifloat] = ACTIONS(4566),
    [sym_idouble] = ACTIONS(4566),
    [sym_ireal] = ACTIONS(4566),
    [sym_cfloat] = ACTIONS(4566),
    [sym_cdouble] = ACTIONS(4566),
    [sym_creal] = ACTIONS(4566),
    [sym_size_t] = ACTIONS(4566),
    [sym_ptrdiff_t] = ACTIONS(4566),
    [sym_string] = ACTIONS(4566),
    [sym_cstring] = ACTIONS(4566),
    [sym_dstring] = ACTIONS(4566),
    [sym_wstring] = ACTIONS(4566),
    [sym_noreturn] = ACTIONS(4566),
    [sym_this] = ACTIONS(4566),
    [sym_abstract] = ACTIONS(4566),
    [sym_alias] = ACTIONS(4566),
    [sym_align] = ACTIONS(4566),
    [sym_auto] = ACTIONS(4566),
    [sym_class] = ACTIONS(4566),
    [sym_const] = ACTIONS(4566),
    [sym_debug] = ACTIONS(4566),
    [sym_deprecated] = ACTIONS(4566),
    [sym_else] = ACTIONS(4566),
    [sym_enum] = ACTIONS(4566),
    [sym_export] = ACTIONS(4566),
    [sym_extern] = ACTIONS(4566),
    [sym_final] = ACTIONS(4566),
    [sym_immutable] = ACTIONS(4566),
    [sym_import] = ACTIONS(4566),
    [sym_inout] = ACTIONS(4566),
    [sym_interface] = ACTIONS(4566),
    [sym_invariant] = ACTIONS(4566),
    [sym_mixin] = ACTIONS(4566),
    [sym_nothrow] = ACTIONS(4566),
    [sym_override] = ACTIONS(4566),
    [sym_package] = ACTIONS(4566),
    [sym_pragma] = ACTIONS(4566),
    [sym_private] = ACTIONS(4566),
    [sym_protected] = ACTIONS(4566),
    [sym_public] = ACTIONS(4566),
    [sym_pure] = ACTIONS(4566),
    [sym_ref] = ACTIONS(4566),
    [sym_return] = ACTIONS(4566),
    [sym_scope] = ACTIONS(4566),
    [sym_shared] = ACTIONS(4566),
    [sym_static] = ACTIONS(4566),
    [sym_struct] = ACTIONS(4566),
    [sym_synchronized] = ACTIONS(4566),
    [sym_template] = ACTIONS(4566),
    [sym_typeof] = ACTIONS(4566),
    [sym_union] = ACTIONS(4566),
    [sym_unittest] = ACTIONS(4566),
    [sym_version] = ACTIONS(4566),
    [sym_while] = ACTIONS(4566),
    [sym_gshared] = ACTIONS(4566),
    [sym_traits] = ACTIONS(4566),
    [sym_vector] = ACTIONS(4566),
    [sym_void] = ACTIONS(4566),
    [sym_directive] = ACTIONS(3),
  },
  [2766] = {
    [sym_identifier] = ACTIONS(4558),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4560),
    [anon_sym_DOT] = ACTIONS(4560),
    [anon_sym_SEMI] = ACTIONS(4560),
    [anon_sym_TILDE] = ACTIONS(4560),
    [anon_sym_AT] = ACTIONS(4560),
    [sym_bool] = ACTIONS(4558),
    [sym_byte] = ACTIONS(4558),
    [sym_ubyte] = ACTIONS(4558),
    [sym_char] = ACTIONS(4558),
    [sym_short] = ACTIONS(4558),
    [sym_ushort] = ACTIONS(4558),
    [sym_int] = ACTIONS(4558),
    [sym_uint] = ACTIONS(4558),
    [sym_long] = ACTIONS(4558),
    [sym_ulong] = ACTIONS(4558),
    [sym_cent] = ACTIONS(4558),
    [sym_ucent] = ACTIONS(4558),
    [sym_wchar] = ACTIONS(4558),
    [sym_dchar] = ACTIONS(4558),
    [sym_float] = ACTIONS(4558),
    [sym_double] = ACTIONS(4558),
    [sym_real] = ACTIONS(4558),
    [sym_ifloat] = ACTIONS(4558),
    [sym_idouble] = ACTIONS(4558),
    [sym_ireal] = ACTIONS(4558),
    [sym_cfloat] = ACTIONS(4558),
    [sym_cdouble] = ACTIONS(4558),
    [sym_creal] = ACTIONS(4558),
    [sym_size_t] = ACTIONS(4558),
    [sym_ptrdiff_t] = ACTIONS(4558),
    [sym_string] = ACTIONS(4558),
    [sym_cstring] = ACTIONS(4558),
    [sym_dstring] = ACTIONS(4558),
    [sym_wstring] = ACTIONS(4558),
    [sym_noreturn] = ACTIONS(4558),
    [sym_this] = ACTIONS(4558),
    [sym_abstract] = ACTIONS(4558),
    [sym_alias] = ACTIONS(4558),
    [sym_align] = ACTIONS(4558),
    [sym_auto] = ACTIONS(4558),
    [sym_class] = ACTIONS(4558),
    [sym_const] = ACTIONS(4558),
    [sym_debug] = ACTIONS(4558),
    [sym_deprecated] = ACTIONS(4558),
    [sym_else] = ACTIONS(4558),
    [sym_enum] = ACTIONS(4558),
    [sym_export] = ACTIONS(4558),
    [sym_extern] = ACTIONS(4558),
    [sym_final] = ACTIONS(4558),
    [sym_immutable] = ACTIONS(4558),
    [sym_import] = ACTIONS(4558),
    [sym_inout] = ACTIONS(4558),
    [sym_interface] = ACTIONS(4558),
    [sym_invariant] = ACTIONS(4558),
    [sym_mixin] = ACTIONS(4558),
    [sym_nothrow] = ACTIONS(4558),
    [sym_override] = ACTIONS(4558),
    [sym_package] = ACTIONS(4558),
    [sym_pragma] = ACTIONS(4558),
    [sym_private] = ACTIONS(4558),
    [sym_protected] = ACTIONS(4558),
    [sym_public] = ACTIONS(4558),
    [sym_pure] = ACTIONS(4558),
    [sym_ref] = ACTIONS(4558),
    [sym_return] = ACTIONS(4558),
    [sym_scope] = ACTIONS(4558),
    [sym_shared] = ACTIONS(4558),
    [sym_static] = ACTIONS(4558),
    [sym_struct] = ACTIONS(4558),
    [sym_synchronized] = ACTIONS(4558),
    [sym_template] = ACTIONS(4558),
    [sym_typeof] = ACTIONS(4558),
    [sym_union] = ACTIONS(4558),
    [sym_unittest] = ACTIONS(4558),
    [sym_version] = ACTIONS(4558),
    [sym_while] = ACTIONS(4558),
    [sym_gshared] = ACTIONS(4558),
    [sym_traits] = ACTIONS(4558),
    [sym_vector] = ACTIONS(4558),
    [sym_void] = ACTIONS(4558),
    [sym_directive] = ACTIONS(3),
  },
  [2767] = {
    [sym_identifier] = ACTIONS(4554),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4556),
    [anon_sym_DOT] = ACTIONS(4556),
    [anon_sym_SEMI] = ACTIONS(4556),
    [anon_sym_TILDE] = ACTIONS(4556),
    [anon_sym_AT] = ACTIONS(4556),
    [sym_bool] = ACTIONS(4554),
    [sym_byte] = ACTIONS(4554),
    [sym_ubyte] = ACTIONS(4554),
    [sym_char] = ACTIONS(4554),
    [sym_short] = ACTIONS(4554),
    [sym_ushort] = ACTIONS(4554),
    [sym_int] = ACTIONS(4554),
    [sym_uint] = ACTIONS(4554),
    [sym_long] = ACTIONS(4554),
    [sym_ulong] = ACTIONS(4554),
    [sym_cent] = ACTIONS(4554),
    [sym_ucent] = ACTIONS(4554),
    [sym_wchar] = ACTIONS(4554),
    [sym_dchar] = ACTIONS(4554),
    [sym_float] = ACTIONS(4554),
    [sym_double] = ACTIONS(4554),
    [sym_real] = ACTIONS(4554),
    [sym_ifloat] = ACTIONS(4554),
    [sym_idouble] = ACTIONS(4554),
    [sym_ireal] = ACTIONS(4554),
    [sym_cfloat] = ACTIONS(4554),
    [sym_cdouble] = ACTIONS(4554),
    [sym_creal] = ACTIONS(4554),
    [sym_size_t] = ACTIONS(4554),
    [sym_ptrdiff_t] = ACTIONS(4554),
    [sym_string] = ACTIONS(4554),
    [sym_cstring] = ACTIONS(4554),
    [sym_dstring] = ACTIONS(4554),
    [sym_wstring] = ACTIONS(4554),
    [sym_noreturn] = ACTIONS(4554),
    [sym_this] = ACTIONS(4554),
    [sym_abstract] = ACTIONS(4554),
    [sym_alias] = ACTIONS(4554),
    [sym_align] = ACTIONS(4554),
    [sym_auto] = ACTIONS(4554),
    [sym_class] = ACTIONS(4554),
    [sym_const] = ACTIONS(4554),
    [sym_debug] = ACTIONS(4554),
    [sym_deprecated] = ACTIONS(4554),
    [sym_else] = ACTIONS(4554),
    [sym_enum] = ACTIONS(4554),
    [sym_export] = ACTIONS(4554),
    [sym_extern] = ACTIONS(4554),
    [sym_final] = ACTIONS(4554),
    [sym_immutable] = ACTIONS(4554),
    [sym_import] = ACTIONS(4554),
    [sym_inout] = ACTIONS(4554),
    [sym_interface] = ACTIONS(4554),
    [sym_invariant] = ACTIONS(4554),
    [sym_mixin] = ACTIONS(4554),
    [sym_nothrow] = ACTIONS(4554),
    [sym_override] = ACTIONS(4554),
    [sym_package] = ACTIONS(4554),
    [sym_pragma] = ACTIONS(4554),
    [sym_private] = ACTIONS(4554),
    [sym_protected] = ACTIONS(4554),
    [sym_public] = ACTIONS(4554),
    [sym_pure] = ACTIONS(4554),
    [sym_ref] = ACTIONS(4554),
    [sym_return] = ACTIONS(4554),
    [sym_scope] = ACTIONS(4554),
    [sym_shared] = ACTIONS(4554),
    [sym_static] = ACTIONS(4554),
    [sym_struct] = ACTIONS(4554),
    [sym_synchronized] = ACTIONS(4554),
    [sym_template] = ACTIONS(4554),
    [sym_typeof] = ACTIONS(4554),
    [sym_union] = ACTIONS(4554),
    [sym_unittest] = ACTIONS(4554),
    [sym_version] = ACTIONS(4554),
    [sym_while] = ACTIONS(4554),
    [sym_gshared] = ACTIONS(4554),
    [sym_traits] = ACTIONS(4554),
    [sym_vector] = ACTIONS(4554),
    [sym_void] = ACTIONS(4554),
    [sym_directive] = ACTIONS(3),
  },
  [2768] = {
    [sym_switch_statement] = STATE(5592),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(1448),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2769] = {
    [sym_identifier] = ACTIONS(4504),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4506),
    [anon_sym_DOT] = ACTIONS(4506),
    [anon_sym_SEMI] = ACTIONS(4506),
    [anon_sym_TILDE] = ACTIONS(4506),
    [anon_sym_AT] = ACTIONS(4506),
    [sym_bool] = ACTIONS(4504),
    [sym_byte] = ACTIONS(4504),
    [sym_ubyte] = ACTIONS(4504),
    [sym_char] = ACTIONS(4504),
    [sym_short] = ACTIONS(4504),
    [sym_ushort] = ACTIONS(4504),
    [sym_int] = ACTIONS(4504),
    [sym_uint] = ACTIONS(4504),
    [sym_long] = ACTIONS(4504),
    [sym_ulong] = ACTIONS(4504),
    [sym_cent] = ACTIONS(4504),
    [sym_ucent] = ACTIONS(4504),
    [sym_wchar] = ACTIONS(4504),
    [sym_dchar] = ACTIONS(4504),
    [sym_float] = ACTIONS(4504),
    [sym_double] = ACTIONS(4504),
    [sym_real] = ACTIONS(4504),
    [sym_ifloat] = ACTIONS(4504),
    [sym_idouble] = ACTIONS(4504),
    [sym_ireal] = ACTIONS(4504),
    [sym_cfloat] = ACTIONS(4504),
    [sym_cdouble] = ACTIONS(4504),
    [sym_creal] = ACTIONS(4504),
    [sym_size_t] = ACTIONS(4504),
    [sym_ptrdiff_t] = ACTIONS(4504),
    [sym_string] = ACTIONS(4504),
    [sym_cstring] = ACTIONS(4504),
    [sym_dstring] = ACTIONS(4504),
    [sym_wstring] = ACTIONS(4504),
    [sym_noreturn] = ACTIONS(4504),
    [sym_this] = ACTIONS(4504),
    [sym_abstract] = ACTIONS(4504),
    [sym_alias] = ACTIONS(4504),
    [sym_align] = ACTIONS(4504),
    [sym_auto] = ACTIONS(4504),
    [sym_class] = ACTIONS(4504),
    [sym_const] = ACTIONS(4504),
    [sym_debug] = ACTIONS(4504),
    [sym_deprecated] = ACTIONS(4504),
    [sym_else] = ACTIONS(4504),
    [sym_enum] = ACTIONS(4504),
    [sym_export] = ACTIONS(4504),
    [sym_extern] = ACTIONS(4504),
    [sym_final] = ACTIONS(4504),
    [sym_immutable] = ACTIONS(4504),
    [sym_import] = ACTIONS(4504),
    [sym_inout] = ACTIONS(4504),
    [sym_interface] = ACTIONS(4504),
    [sym_invariant] = ACTIONS(4504),
    [sym_mixin] = ACTIONS(4504),
    [sym_nothrow] = ACTIONS(4504),
    [sym_override] = ACTIONS(4504),
    [sym_package] = ACTIONS(4504),
    [sym_pragma] = ACTIONS(4504),
    [sym_private] = ACTIONS(4504),
    [sym_protected] = ACTIONS(4504),
    [sym_public] = ACTIONS(4504),
    [sym_pure] = ACTIONS(4504),
    [sym_ref] = ACTIONS(4504),
    [sym_return] = ACTIONS(4504),
    [sym_scope] = ACTIONS(4504),
    [sym_shared] = ACTIONS(4504),
    [sym_static] = ACTIONS(4504),
    [sym_struct] = ACTIONS(4504),
    [sym_synchronized] = ACTIONS(4504),
    [sym_template] = ACTIONS(4504),
    [sym_typeof] = ACTIONS(4504),
    [sym_union] = ACTIONS(4504),
    [sym_unittest] = ACTIONS(4504),
    [sym_version] = ACTIONS(4504),
    [sym_while] = ACTIONS(4504),
    [sym_gshared] = ACTIONS(4504),
    [sym_traits] = ACTIONS(4504),
    [sym_vector] = ACTIONS(4504),
    [sym_void] = ACTIONS(4504),
    [sym_directive] = ACTIONS(3),
  },
  [2770] = {
    [sym_identifier] = ACTIONS(4970),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4972),
    [anon_sym_DOT] = ACTIONS(4972),
    [anon_sym_SEMI] = ACTIONS(4972),
    [anon_sym_TILDE] = ACTIONS(4972),
    [anon_sym_AT] = ACTIONS(4972),
    [sym_bool] = ACTIONS(4970),
    [sym_byte] = ACTIONS(4970),
    [sym_ubyte] = ACTIONS(4970),
    [sym_char] = ACTIONS(4970),
    [sym_short] = ACTIONS(4970),
    [sym_ushort] = ACTIONS(4970),
    [sym_int] = ACTIONS(4970),
    [sym_uint] = ACTIONS(4970),
    [sym_long] = ACTIONS(4970),
    [sym_ulong] = ACTIONS(4970),
    [sym_cent] = ACTIONS(4970),
    [sym_ucent] = ACTIONS(4970),
    [sym_wchar] = ACTIONS(4970),
    [sym_dchar] = ACTIONS(4970),
    [sym_float] = ACTIONS(4970),
    [sym_double] = ACTIONS(4970),
    [sym_real] = ACTIONS(4970),
    [sym_ifloat] = ACTIONS(4970),
    [sym_idouble] = ACTIONS(4970),
    [sym_ireal] = ACTIONS(4970),
    [sym_cfloat] = ACTIONS(4970),
    [sym_cdouble] = ACTIONS(4970),
    [sym_creal] = ACTIONS(4970),
    [sym_size_t] = ACTIONS(4970),
    [sym_ptrdiff_t] = ACTIONS(4970),
    [sym_string] = ACTIONS(4970),
    [sym_cstring] = ACTIONS(4970),
    [sym_dstring] = ACTIONS(4970),
    [sym_wstring] = ACTIONS(4970),
    [sym_noreturn] = ACTIONS(4970),
    [sym_this] = ACTIONS(4970),
    [sym_abstract] = ACTIONS(4970),
    [sym_alias] = ACTIONS(4970),
    [sym_align] = ACTIONS(4970),
    [sym_auto] = ACTIONS(4970),
    [sym_class] = ACTIONS(4970),
    [sym_const] = ACTIONS(4970),
    [sym_debug] = ACTIONS(4970),
    [sym_deprecated] = ACTIONS(4970),
    [sym_else] = ACTIONS(4970),
    [sym_enum] = ACTIONS(4970),
    [sym_export] = ACTIONS(4970),
    [sym_extern] = ACTIONS(4970),
    [sym_final] = ACTIONS(4970),
    [sym_immutable] = ACTIONS(4970),
    [sym_import] = ACTIONS(4970),
    [sym_inout] = ACTIONS(4970),
    [sym_interface] = ACTIONS(4970),
    [sym_invariant] = ACTIONS(4970),
    [sym_mixin] = ACTIONS(4970),
    [sym_nothrow] = ACTIONS(4970),
    [sym_override] = ACTIONS(4970),
    [sym_package] = ACTIONS(4970),
    [sym_pragma] = ACTIONS(4970),
    [sym_private] = ACTIONS(4970),
    [sym_protected] = ACTIONS(4970),
    [sym_public] = ACTIONS(4970),
    [sym_pure] = ACTIONS(4970),
    [sym_ref] = ACTIONS(4970),
    [sym_return] = ACTIONS(4970),
    [sym_scope] = ACTIONS(4970),
    [sym_shared] = ACTIONS(4970),
    [sym_static] = ACTIONS(4970),
    [sym_struct] = ACTIONS(4970),
    [sym_synchronized] = ACTIONS(4970),
    [sym_template] = ACTIONS(4970),
    [sym_typeof] = ACTIONS(4970),
    [sym_union] = ACTIONS(4970),
    [sym_unittest] = ACTIONS(4970),
    [sym_version] = ACTIONS(4970),
    [sym_while] = ACTIONS(4970),
    [sym_gshared] = ACTIONS(4970),
    [sym_traits] = ACTIONS(4970),
    [sym_vector] = ACTIONS(4970),
    [sym_void] = ACTIONS(4970),
    [sym_directive] = ACTIONS(3),
  },
  [2771] = {
    [sym_identifier] = ACTIONS(4542),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4544),
    [anon_sym_DOT] = ACTIONS(4544),
    [anon_sym_SEMI] = ACTIONS(4544),
    [anon_sym_TILDE] = ACTIONS(4544),
    [anon_sym_AT] = ACTIONS(4544),
    [sym_bool] = ACTIONS(4542),
    [sym_byte] = ACTIONS(4542),
    [sym_ubyte] = ACTIONS(4542),
    [sym_char] = ACTIONS(4542),
    [sym_short] = ACTIONS(4542),
    [sym_ushort] = ACTIONS(4542),
    [sym_int] = ACTIONS(4542),
    [sym_uint] = ACTIONS(4542),
    [sym_long] = ACTIONS(4542),
    [sym_ulong] = ACTIONS(4542),
    [sym_cent] = ACTIONS(4542),
    [sym_ucent] = ACTIONS(4542),
    [sym_wchar] = ACTIONS(4542),
    [sym_dchar] = ACTIONS(4542),
    [sym_float] = ACTIONS(4542),
    [sym_double] = ACTIONS(4542),
    [sym_real] = ACTIONS(4542),
    [sym_ifloat] = ACTIONS(4542),
    [sym_idouble] = ACTIONS(4542),
    [sym_ireal] = ACTIONS(4542),
    [sym_cfloat] = ACTIONS(4542),
    [sym_cdouble] = ACTIONS(4542),
    [sym_creal] = ACTIONS(4542),
    [sym_size_t] = ACTIONS(4542),
    [sym_ptrdiff_t] = ACTIONS(4542),
    [sym_string] = ACTIONS(4542),
    [sym_cstring] = ACTIONS(4542),
    [sym_dstring] = ACTIONS(4542),
    [sym_wstring] = ACTIONS(4542),
    [sym_noreturn] = ACTIONS(4542),
    [sym_this] = ACTIONS(4542),
    [sym_abstract] = ACTIONS(4542),
    [sym_alias] = ACTIONS(4542),
    [sym_align] = ACTIONS(4542),
    [sym_auto] = ACTIONS(4542),
    [sym_class] = ACTIONS(4542),
    [sym_const] = ACTIONS(4542),
    [sym_debug] = ACTIONS(4542),
    [sym_deprecated] = ACTIONS(4542),
    [sym_else] = ACTIONS(4542),
    [sym_enum] = ACTIONS(4542),
    [sym_export] = ACTIONS(4542),
    [sym_extern] = ACTIONS(4542),
    [sym_final] = ACTIONS(4542),
    [sym_immutable] = ACTIONS(4542),
    [sym_import] = ACTIONS(4542),
    [sym_inout] = ACTIONS(4542),
    [sym_interface] = ACTIONS(4542),
    [sym_invariant] = ACTIONS(4542),
    [sym_mixin] = ACTIONS(4542),
    [sym_nothrow] = ACTIONS(4542),
    [sym_override] = ACTIONS(4542),
    [sym_package] = ACTIONS(4542),
    [sym_pragma] = ACTIONS(4542),
    [sym_private] = ACTIONS(4542),
    [sym_protected] = ACTIONS(4542),
    [sym_public] = ACTIONS(4542),
    [sym_pure] = ACTIONS(4542),
    [sym_ref] = ACTIONS(4542),
    [sym_return] = ACTIONS(4542),
    [sym_scope] = ACTIONS(4542),
    [sym_shared] = ACTIONS(4542),
    [sym_static] = ACTIONS(4542),
    [sym_struct] = ACTIONS(4542),
    [sym_synchronized] = ACTIONS(4542),
    [sym_template] = ACTIONS(4542),
    [sym_typeof] = ACTIONS(4542),
    [sym_union] = ACTIONS(4542),
    [sym_unittest] = ACTIONS(4542),
    [sym_version] = ACTIONS(4542),
    [sym_while] = ACTIONS(4542),
    [sym_gshared] = ACTIONS(4542),
    [sym_traits] = ACTIONS(4542),
    [sym_vector] = ACTIONS(4542),
    [sym_void] = ACTIONS(4542),
    [sym_directive] = ACTIONS(3),
  },
  [2772] = {
    [sym_identifier] = ACTIONS(4488),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4490),
    [anon_sym_DOT] = ACTIONS(4490),
    [anon_sym_SEMI] = ACTIONS(4490),
    [anon_sym_TILDE] = ACTIONS(4490),
    [anon_sym_AT] = ACTIONS(4490),
    [sym_bool] = ACTIONS(4488),
    [sym_byte] = ACTIONS(4488),
    [sym_ubyte] = ACTIONS(4488),
    [sym_char] = ACTIONS(4488),
    [sym_short] = ACTIONS(4488),
    [sym_ushort] = ACTIONS(4488),
    [sym_int] = ACTIONS(4488),
    [sym_uint] = ACTIONS(4488),
    [sym_long] = ACTIONS(4488),
    [sym_ulong] = ACTIONS(4488),
    [sym_cent] = ACTIONS(4488),
    [sym_ucent] = ACTIONS(4488),
    [sym_wchar] = ACTIONS(4488),
    [sym_dchar] = ACTIONS(4488),
    [sym_float] = ACTIONS(4488),
    [sym_double] = ACTIONS(4488),
    [sym_real] = ACTIONS(4488),
    [sym_ifloat] = ACTIONS(4488),
    [sym_idouble] = ACTIONS(4488),
    [sym_ireal] = ACTIONS(4488),
    [sym_cfloat] = ACTIONS(4488),
    [sym_cdouble] = ACTIONS(4488),
    [sym_creal] = ACTIONS(4488),
    [sym_size_t] = ACTIONS(4488),
    [sym_ptrdiff_t] = ACTIONS(4488),
    [sym_string] = ACTIONS(4488),
    [sym_cstring] = ACTIONS(4488),
    [sym_dstring] = ACTIONS(4488),
    [sym_wstring] = ACTIONS(4488),
    [sym_noreturn] = ACTIONS(4488),
    [sym_this] = ACTIONS(4488),
    [sym_abstract] = ACTIONS(4488),
    [sym_alias] = ACTIONS(4488),
    [sym_align] = ACTIONS(4488),
    [sym_auto] = ACTIONS(4488),
    [sym_class] = ACTIONS(4488),
    [sym_const] = ACTIONS(4488),
    [sym_debug] = ACTIONS(4488),
    [sym_deprecated] = ACTIONS(4488),
    [sym_else] = ACTIONS(4488),
    [sym_enum] = ACTIONS(4488),
    [sym_export] = ACTIONS(4488),
    [sym_extern] = ACTIONS(4488),
    [sym_final] = ACTIONS(4488),
    [sym_immutable] = ACTIONS(4488),
    [sym_import] = ACTIONS(4488),
    [sym_inout] = ACTIONS(4488),
    [sym_interface] = ACTIONS(4488),
    [sym_invariant] = ACTIONS(4488),
    [sym_mixin] = ACTIONS(4488),
    [sym_nothrow] = ACTIONS(4488),
    [sym_override] = ACTIONS(4488),
    [sym_package] = ACTIONS(4488),
    [sym_pragma] = ACTIONS(4488),
    [sym_private] = ACTIONS(4488),
    [sym_protected] = ACTIONS(4488),
    [sym_public] = ACTIONS(4488),
    [sym_pure] = ACTIONS(4488),
    [sym_ref] = ACTIONS(4488),
    [sym_return] = ACTIONS(4488),
    [sym_scope] = ACTIONS(4488),
    [sym_shared] = ACTIONS(4488),
    [sym_static] = ACTIONS(4488),
    [sym_struct] = ACTIONS(4488),
    [sym_synchronized] = ACTIONS(4488),
    [sym_template] = ACTIONS(4488),
    [sym_typeof] = ACTIONS(4488),
    [sym_union] = ACTIONS(4488),
    [sym_unittest] = ACTIONS(4488),
    [sym_version] = ACTIONS(4488),
    [sym_while] = ACTIONS(4488),
    [sym_gshared] = ACTIONS(4488),
    [sym_traits] = ACTIONS(4488),
    [sym_vector] = ACTIONS(4488),
    [sym_void] = ACTIONS(4488),
    [sym_directive] = ACTIONS(3),
  },
  [2773] = {
    [sym_identifier] = ACTIONS(4516),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4518),
    [anon_sym_DOT] = ACTIONS(4518),
    [anon_sym_SEMI] = ACTIONS(4518),
    [anon_sym_TILDE] = ACTIONS(4518),
    [anon_sym_AT] = ACTIONS(4518),
    [sym_bool] = ACTIONS(4516),
    [sym_byte] = ACTIONS(4516),
    [sym_ubyte] = ACTIONS(4516),
    [sym_char] = ACTIONS(4516),
    [sym_short] = ACTIONS(4516),
    [sym_ushort] = ACTIONS(4516),
    [sym_int] = ACTIONS(4516),
    [sym_uint] = ACTIONS(4516),
    [sym_long] = ACTIONS(4516),
    [sym_ulong] = ACTIONS(4516),
    [sym_cent] = ACTIONS(4516),
    [sym_ucent] = ACTIONS(4516),
    [sym_wchar] = ACTIONS(4516),
    [sym_dchar] = ACTIONS(4516),
    [sym_float] = ACTIONS(4516),
    [sym_double] = ACTIONS(4516),
    [sym_real] = ACTIONS(4516),
    [sym_ifloat] = ACTIONS(4516),
    [sym_idouble] = ACTIONS(4516),
    [sym_ireal] = ACTIONS(4516),
    [sym_cfloat] = ACTIONS(4516),
    [sym_cdouble] = ACTIONS(4516),
    [sym_creal] = ACTIONS(4516),
    [sym_size_t] = ACTIONS(4516),
    [sym_ptrdiff_t] = ACTIONS(4516),
    [sym_string] = ACTIONS(4516),
    [sym_cstring] = ACTIONS(4516),
    [sym_dstring] = ACTIONS(4516),
    [sym_wstring] = ACTIONS(4516),
    [sym_noreturn] = ACTIONS(4516),
    [sym_this] = ACTIONS(4516),
    [sym_abstract] = ACTIONS(4516),
    [sym_alias] = ACTIONS(4516),
    [sym_align] = ACTIONS(4516),
    [sym_auto] = ACTIONS(4516),
    [sym_class] = ACTIONS(4516),
    [sym_const] = ACTIONS(4516),
    [sym_debug] = ACTIONS(4516),
    [sym_deprecated] = ACTIONS(4516),
    [sym_else] = ACTIONS(4516),
    [sym_enum] = ACTIONS(4516),
    [sym_export] = ACTIONS(4516),
    [sym_extern] = ACTIONS(4516),
    [sym_final] = ACTIONS(4516),
    [sym_immutable] = ACTIONS(4516),
    [sym_import] = ACTIONS(4516),
    [sym_inout] = ACTIONS(4516),
    [sym_interface] = ACTIONS(4516),
    [sym_invariant] = ACTIONS(4516),
    [sym_mixin] = ACTIONS(4516),
    [sym_nothrow] = ACTIONS(4516),
    [sym_override] = ACTIONS(4516),
    [sym_package] = ACTIONS(4516),
    [sym_pragma] = ACTIONS(4516),
    [sym_private] = ACTIONS(4516),
    [sym_protected] = ACTIONS(4516),
    [sym_public] = ACTIONS(4516),
    [sym_pure] = ACTIONS(4516),
    [sym_ref] = ACTIONS(4516),
    [sym_return] = ACTIONS(4516),
    [sym_scope] = ACTIONS(4516),
    [sym_shared] = ACTIONS(4516),
    [sym_static] = ACTIONS(4516),
    [sym_struct] = ACTIONS(4516),
    [sym_synchronized] = ACTIONS(4516),
    [sym_template] = ACTIONS(4516),
    [sym_typeof] = ACTIONS(4516),
    [sym_union] = ACTIONS(4516),
    [sym_unittest] = ACTIONS(4516),
    [sym_version] = ACTIONS(4516),
    [sym_while] = ACTIONS(4516),
    [sym_gshared] = ACTIONS(4516),
    [sym_traits] = ACTIONS(4516),
    [sym_vector] = ACTIONS(4516),
    [sym_void] = ACTIONS(4516),
    [sym_directive] = ACTIONS(3),
  },
  [2774] = {
    [sym_identifier] = ACTIONS(4508),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4510),
    [anon_sym_DOT] = ACTIONS(4510),
    [anon_sym_SEMI] = ACTIONS(4510),
    [anon_sym_TILDE] = ACTIONS(4510),
    [anon_sym_AT] = ACTIONS(4510),
    [sym_bool] = ACTIONS(4508),
    [sym_byte] = ACTIONS(4508),
    [sym_ubyte] = ACTIONS(4508),
    [sym_char] = ACTIONS(4508),
    [sym_short] = ACTIONS(4508),
    [sym_ushort] = ACTIONS(4508),
    [sym_int] = ACTIONS(4508),
    [sym_uint] = ACTIONS(4508),
    [sym_long] = ACTIONS(4508),
    [sym_ulong] = ACTIONS(4508),
    [sym_cent] = ACTIONS(4508),
    [sym_ucent] = ACTIONS(4508),
    [sym_wchar] = ACTIONS(4508),
    [sym_dchar] = ACTIONS(4508),
    [sym_float] = ACTIONS(4508),
    [sym_double] = ACTIONS(4508),
    [sym_real] = ACTIONS(4508),
    [sym_ifloat] = ACTIONS(4508),
    [sym_idouble] = ACTIONS(4508),
    [sym_ireal] = ACTIONS(4508),
    [sym_cfloat] = ACTIONS(4508),
    [sym_cdouble] = ACTIONS(4508),
    [sym_creal] = ACTIONS(4508),
    [sym_size_t] = ACTIONS(4508),
    [sym_ptrdiff_t] = ACTIONS(4508),
    [sym_string] = ACTIONS(4508),
    [sym_cstring] = ACTIONS(4508),
    [sym_dstring] = ACTIONS(4508),
    [sym_wstring] = ACTIONS(4508),
    [sym_noreturn] = ACTIONS(4508),
    [sym_this] = ACTIONS(4508),
    [sym_abstract] = ACTIONS(4508),
    [sym_alias] = ACTIONS(4508),
    [sym_align] = ACTIONS(4508),
    [sym_auto] = ACTIONS(4508),
    [sym_class] = ACTIONS(4508),
    [sym_const] = ACTIONS(4508),
    [sym_debug] = ACTIONS(4508),
    [sym_deprecated] = ACTIONS(4508),
    [sym_else] = ACTIONS(4508),
    [sym_enum] = ACTIONS(4508),
    [sym_export] = ACTIONS(4508),
    [sym_extern] = ACTIONS(4508),
    [sym_final] = ACTIONS(4508),
    [sym_immutable] = ACTIONS(4508),
    [sym_import] = ACTIONS(4508),
    [sym_inout] = ACTIONS(4508),
    [sym_interface] = ACTIONS(4508),
    [sym_invariant] = ACTIONS(4508),
    [sym_mixin] = ACTIONS(4508),
    [sym_nothrow] = ACTIONS(4508),
    [sym_override] = ACTIONS(4508),
    [sym_package] = ACTIONS(4508),
    [sym_pragma] = ACTIONS(4508),
    [sym_private] = ACTIONS(4508),
    [sym_protected] = ACTIONS(4508),
    [sym_public] = ACTIONS(4508),
    [sym_pure] = ACTIONS(4508),
    [sym_ref] = ACTIONS(4508),
    [sym_return] = ACTIONS(4508),
    [sym_scope] = ACTIONS(4508),
    [sym_shared] = ACTIONS(4508),
    [sym_static] = ACTIONS(4508),
    [sym_struct] = ACTIONS(4508),
    [sym_synchronized] = ACTIONS(4508),
    [sym_template] = ACTIONS(4508),
    [sym_typeof] = ACTIONS(4508),
    [sym_union] = ACTIONS(4508),
    [sym_unittest] = ACTIONS(4508),
    [sym_version] = ACTIONS(4508),
    [sym_while] = ACTIONS(4508),
    [sym_gshared] = ACTIONS(4508),
    [sym_traits] = ACTIONS(4508),
    [sym_vector] = ACTIONS(4508),
    [sym_void] = ACTIONS(4508),
    [sym_directive] = ACTIONS(3),
  },
  [2775] = {
    [sym_identifier] = ACTIONS(4347),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4349),
    [anon_sym_DOT] = ACTIONS(4349),
    [anon_sym_SEMI] = ACTIONS(4349),
    [anon_sym_TILDE] = ACTIONS(4349),
    [anon_sym_AT] = ACTIONS(4349),
    [sym_bool] = ACTIONS(4347),
    [sym_byte] = ACTIONS(4347),
    [sym_ubyte] = ACTIONS(4347),
    [sym_char] = ACTIONS(4347),
    [sym_short] = ACTIONS(4347),
    [sym_ushort] = ACTIONS(4347),
    [sym_int] = ACTIONS(4347),
    [sym_uint] = ACTIONS(4347),
    [sym_long] = ACTIONS(4347),
    [sym_ulong] = ACTIONS(4347),
    [sym_cent] = ACTIONS(4347),
    [sym_ucent] = ACTIONS(4347),
    [sym_wchar] = ACTIONS(4347),
    [sym_dchar] = ACTIONS(4347),
    [sym_float] = ACTIONS(4347),
    [sym_double] = ACTIONS(4347),
    [sym_real] = ACTIONS(4347),
    [sym_ifloat] = ACTIONS(4347),
    [sym_idouble] = ACTIONS(4347),
    [sym_ireal] = ACTIONS(4347),
    [sym_cfloat] = ACTIONS(4347),
    [sym_cdouble] = ACTIONS(4347),
    [sym_creal] = ACTIONS(4347),
    [sym_size_t] = ACTIONS(4347),
    [sym_ptrdiff_t] = ACTIONS(4347),
    [sym_string] = ACTIONS(4347),
    [sym_cstring] = ACTIONS(4347),
    [sym_dstring] = ACTIONS(4347),
    [sym_wstring] = ACTIONS(4347),
    [sym_noreturn] = ACTIONS(4347),
    [sym_this] = ACTIONS(4347),
    [sym_abstract] = ACTIONS(4347),
    [sym_alias] = ACTIONS(4347),
    [sym_align] = ACTIONS(4347),
    [sym_auto] = ACTIONS(4347),
    [sym_class] = ACTIONS(4347),
    [sym_const] = ACTIONS(4347),
    [sym_debug] = ACTIONS(4347),
    [sym_deprecated] = ACTIONS(4347),
    [sym_else] = ACTIONS(4347),
    [sym_enum] = ACTIONS(4347),
    [sym_export] = ACTIONS(4347),
    [sym_extern] = ACTIONS(4347),
    [sym_final] = ACTIONS(4347),
    [sym_immutable] = ACTIONS(4347),
    [sym_import] = ACTIONS(4347),
    [sym_inout] = ACTIONS(4347),
    [sym_interface] = ACTIONS(4347),
    [sym_invariant] = ACTIONS(4347),
    [sym_mixin] = ACTIONS(4347),
    [sym_nothrow] = ACTIONS(4347),
    [sym_override] = ACTIONS(4347),
    [sym_package] = ACTIONS(4347),
    [sym_pragma] = ACTIONS(4347),
    [sym_private] = ACTIONS(4347),
    [sym_protected] = ACTIONS(4347),
    [sym_public] = ACTIONS(4347),
    [sym_pure] = ACTIONS(4347),
    [sym_ref] = ACTIONS(4347),
    [sym_return] = ACTIONS(4347),
    [sym_scope] = ACTIONS(4347),
    [sym_shared] = ACTIONS(4347),
    [sym_static] = ACTIONS(4347),
    [sym_struct] = ACTIONS(4347),
    [sym_synchronized] = ACTIONS(4347),
    [sym_template] = ACTIONS(4347),
    [sym_typeof] = ACTIONS(4347),
    [sym_union] = ACTIONS(4347),
    [sym_unittest] = ACTIONS(4347),
    [sym_version] = ACTIONS(4347),
    [sym_while] = ACTIONS(4347),
    [sym_gshared] = ACTIONS(4347),
    [sym_traits] = ACTIONS(4347),
    [sym_vector] = ACTIONS(4347),
    [sym_void] = ACTIONS(4347),
    [sym_directive] = ACTIONS(3),
  },
  [2776] = {
    [sym_switch_statement] = STATE(5592),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(1314),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2777] = {
    [sym_identifier] = ACTIONS(4484),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4486),
    [anon_sym_DOT] = ACTIONS(4486),
    [anon_sym_SEMI] = ACTIONS(4486),
    [anon_sym_TILDE] = ACTIONS(4486),
    [anon_sym_AT] = ACTIONS(4486),
    [sym_bool] = ACTIONS(4484),
    [sym_byte] = ACTIONS(4484),
    [sym_ubyte] = ACTIONS(4484),
    [sym_char] = ACTIONS(4484),
    [sym_short] = ACTIONS(4484),
    [sym_ushort] = ACTIONS(4484),
    [sym_int] = ACTIONS(4484),
    [sym_uint] = ACTIONS(4484),
    [sym_long] = ACTIONS(4484),
    [sym_ulong] = ACTIONS(4484),
    [sym_cent] = ACTIONS(4484),
    [sym_ucent] = ACTIONS(4484),
    [sym_wchar] = ACTIONS(4484),
    [sym_dchar] = ACTIONS(4484),
    [sym_float] = ACTIONS(4484),
    [sym_double] = ACTIONS(4484),
    [sym_real] = ACTIONS(4484),
    [sym_ifloat] = ACTIONS(4484),
    [sym_idouble] = ACTIONS(4484),
    [sym_ireal] = ACTIONS(4484),
    [sym_cfloat] = ACTIONS(4484),
    [sym_cdouble] = ACTIONS(4484),
    [sym_creal] = ACTIONS(4484),
    [sym_size_t] = ACTIONS(4484),
    [sym_ptrdiff_t] = ACTIONS(4484),
    [sym_string] = ACTIONS(4484),
    [sym_cstring] = ACTIONS(4484),
    [sym_dstring] = ACTIONS(4484),
    [sym_wstring] = ACTIONS(4484),
    [sym_noreturn] = ACTIONS(4484),
    [sym_this] = ACTIONS(4484),
    [sym_abstract] = ACTIONS(4484),
    [sym_alias] = ACTIONS(4484),
    [sym_align] = ACTIONS(4484),
    [sym_auto] = ACTIONS(4484),
    [sym_class] = ACTIONS(4484),
    [sym_const] = ACTIONS(4484),
    [sym_debug] = ACTIONS(4484),
    [sym_deprecated] = ACTIONS(4484),
    [sym_else] = ACTIONS(4484),
    [sym_enum] = ACTIONS(4484),
    [sym_export] = ACTIONS(4484),
    [sym_extern] = ACTIONS(4484),
    [sym_final] = ACTIONS(4484),
    [sym_immutable] = ACTIONS(4484),
    [sym_import] = ACTIONS(4484),
    [sym_inout] = ACTIONS(4484),
    [sym_interface] = ACTIONS(4484),
    [sym_invariant] = ACTIONS(4484),
    [sym_mixin] = ACTIONS(4484),
    [sym_nothrow] = ACTIONS(4484),
    [sym_override] = ACTIONS(4484),
    [sym_package] = ACTIONS(4484),
    [sym_pragma] = ACTIONS(4484),
    [sym_private] = ACTIONS(4484),
    [sym_protected] = ACTIONS(4484),
    [sym_public] = ACTIONS(4484),
    [sym_pure] = ACTIONS(4484),
    [sym_ref] = ACTIONS(4484),
    [sym_return] = ACTIONS(4484),
    [sym_scope] = ACTIONS(4484),
    [sym_shared] = ACTIONS(4484),
    [sym_static] = ACTIONS(4484),
    [sym_struct] = ACTIONS(4484),
    [sym_synchronized] = ACTIONS(4484),
    [sym_template] = ACTIONS(4484),
    [sym_typeof] = ACTIONS(4484),
    [sym_union] = ACTIONS(4484),
    [sym_unittest] = ACTIONS(4484),
    [sym_version] = ACTIONS(4484),
    [sym_while] = ACTIONS(4484),
    [sym_gshared] = ACTIONS(4484),
    [sym_traits] = ACTIONS(4484),
    [sym_vector] = ACTIONS(4484),
    [sym_void] = ACTIONS(4484),
    [sym_directive] = ACTIONS(3),
  },
  [2778] = {
    [sym_identifier] = ACTIONS(4872),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4874),
    [anon_sym_DOT] = ACTIONS(4874),
    [anon_sym_SEMI] = ACTIONS(4874),
    [anon_sym_TILDE] = ACTIONS(4874),
    [anon_sym_AT] = ACTIONS(4874),
    [sym_bool] = ACTIONS(4872),
    [sym_byte] = ACTIONS(4872),
    [sym_ubyte] = ACTIONS(4872),
    [sym_char] = ACTIONS(4872),
    [sym_short] = ACTIONS(4872),
    [sym_ushort] = ACTIONS(4872),
    [sym_int] = ACTIONS(4872),
    [sym_uint] = ACTIONS(4872),
    [sym_long] = ACTIONS(4872),
    [sym_ulong] = ACTIONS(4872),
    [sym_cent] = ACTIONS(4872),
    [sym_ucent] = ACTIONS(4872),
    [sym_wchar] = ACTIONS(4872),
    [sym_dchar] = ACTIONS(4872),
    [sym_float] = ACTIONS(4872),
    [sym_double] = ACTIONS(4872),
    [sym_real] = ACTIONS(4872),
    [sym_ifloat] = ACTIONS(4872),
    [sym_idouble] = ACTIONS(4872),
    [sym_ireal] = ACTIONS(4872),
    [sym_cfloat] = ACTIONS(4872),
    [sym_cdouble] = ACTIONS(4872),
    [sym_creal] = ACTIONS(4872),
    [sym_size_t] = ACTIONS(4872),
    [sym_ptrdiff_t] = ACTIONS(4872),
    [sym_string] = ACTIONS(4872),
    [sym_cstring] = ACTIONS(4872),
    [sym_dstring] = ACTIONS(4872),
    [sym_wstring] = ACTIONS(4872),
    [sym_noreturn] = ACTIONS(4872),
    [sym_this] = ACTIONS(4872),
    [sym_abstract] = ACTIONS(4872),
    [sym_alias] = ACTIONS(4872),
    [sym_align] = ACTIONS(4872),
    [sym_auto] = ACTIONS(4872),
    [sym_class] = ACTIONS(4872),
    [sym_const] = ACTIONS(4872),
    [sym_debug] = ACTIONS(4872),
    [sym_deprecated] = ACTIONS(4872),
    [sym_else] = ACTIONS(4872),
    [sym_enum] = ACTIONS(4872),
    [sym_export] = ACTIONS(4872),
    [sym_extern] = ACTIONS(4872),
    [sym_final] = ACTIONS(4872),
    [sym_immutable] = ACTIONS(4872),
    [sym_import] = ACTIONS(4872),
    [sym_inout] = ACTIONS(4872),
    [sym_interface] = ACTIONS(4872),
    [sym_invariant] = ACTIONS(4872),
    [sym_mixin] = ACTIONS(4872),
    [sym_nothrow] = ACTIONS(4872),
    [sym_override] = ACTIONS(4872),
    [sym_package] = ACTIONS(4872),
    [sym_pragma] = ACTIONS(4872),
    [sym_private] = ACTIONS(4872),
    [sym_protected] = ACTIONS(4872),
    [sym_public] = ACTIONS(4872),
    [sym_pure] = ACTIONS(4872),
    [sym_ref] = ACTIONS(4872),
    [sym_return] = ACTIONS(4872),
    [sym_scope] = ACTIONS(4872),
    [sym_shared] = ACTIONS(4872),
    [sym_static] = ACTIONS(4872),
    [sym_struct] = ACTIONS(4872),
    [sym_synchronized] = ACTIONS(4872),
    [sym_template] = ACTIONS(4872),
    [sym_typeof] = ACTIONS(4872),
    [sym_union] = ACTIONS(4872),
    [sym_unittest] = ACTIONS(4872),
    [sym_version] = ACTIONS(4872),
    [sym_while] = ACTIONS(4872),
    [sym_gshared] = ACTIONS(4872),
    [sym_traits] = ACTIONS(4872),
    [sym_vector] = ACTIONS(4872),
    [sym_void] = ACTIONS(4872),
    [sym_directive] = ACTIONS(3),
  },
  [2779] = {
    [sym_identifier] = ACTIONS(2645),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2643),
    [anon_sym_DOT] = ACTIONS(2643),
    [anon_sym_SEMI] = ACTIONS(2643),
    [anon_sym_TILDE] = ACTIONS(2643),
    [anon_sym_AT] = ACTIONS(2643),
    [sym_bool] = ACTIONS(2645),
    [sym_byte] = ACTIONS(2645),
    [sym_ubyte] = ACTIONS(2645),
    [sym_char] = ACTIONS(2645),
    [sym_short] = ACTIONS(2645),
    [sym_ushort] = ACTIONS(2645),
    [sym_int] = ACTIONS(2645),
    [sym_uint] = ACTIONS(2645),
    [sym_long] = ACTIONS(2645),
    [sym_ulong] = ACTIONS(2645),
    [sym_cent] = ACTIONS(2645),
    [sym_ucent] = ACTIONS(2645),
    [sym_wchar] = ACTIONS(2645),
    [sym_dchar] = ACTIONS(2645),
    [sym_float] = ACTIONS(2645),
    [sym_double] = ACTIONS(2645),
    [sym_real] = ACTIONS(2645),
    [sym_ifloat] = ACTIONS(2645),
    [sym_idouble] = ACTIONS(2645),
    [sym_ireal] = ACTIONS(2645),
    [sym_cfloat] = ACTIONS(2645),
    [sym_cdouble] = ACTIONS(2645),
    [sym_creal] = ACTIONS(2645),
    [sym_size_t] = ACTIONS(2645),
    [sym_ptrdiff_t] = ACTIONS(2645),
    [sym_string] = ACTIONS(2645),
    [sym_cstring] = ACTIONS(2645),
    [sym_dstring] = ACTIONS(2645),
    [sym_wstring] = ACTIONS(2645),
    [sym_noreturn] = ACTIONS(2645),
    [sym_this] = ACTIONS(2645),
    [sym_abstract] = ACTIONS(2645),
    [sym_alias] = ACTIONS(2645),
    [sym_align] = ACTIONS(2645),
    [sym_auto] = ACTIONS(2645),
    [sym_class] = ACTIONS(2645),
    [sym_const] = ACTIONS(2645),
    [sym_debug] = ACTIONS(2645),
    [sym_deprecated] = ACTIONS(2645),
    [sym_else] = ACTIONS(2645),
    [sym_enum] = ACTIONS(2645),
    [sym_export] = ACTIONS(2645),
    [sym_extern] = ACTIONS(2645),
    [sym_final] = ACTIONS(2645),
    [sym_immutable] = ACTIONS(2645),
    [sym_import] = ACTIONS(2645),
    [sym_inout] = ACTIONS(2645),
    [sym_interface] = ACTIONS(2645),
    [sym_invariant] = ACTIONS(2645),
    [sym_mixin] = ACTIONS(2645),
    [sym_nothrow] = ACTIONS(2645),
    [sym_override] = ACTIONS(2645),
    [sym_package] = ACTIONS(2645),
    [sym_pragma] = ACTIONS(2645),
    [sym_private] = ACTIONS(2645),
    [sym_protected] = ACTIONS(2645),
    [sym_public] = ACTIONS(2645),
    [sym_pure] = ACTIONS(2645),
    [sym_ref] = ACTIONS(2645),
    [sym_return] = ACTIONS(2645),
    [sym_scope] = ACTIONS(2645),
    [sym_shared] = ACTIONS(2645),
    [sym_static] = ACTIONS(2645),
    [sym_struct] = ACTIONS(2645),
    [sym_synchronized] = ACTIONS(2645),
    [sym_template] = ACTIONS(2645),
    [sym_typeof] = ACTIONS(2645),
    [sym_union] = ACTIONS(2645),
    [sym_unittest] = ACTIONS(2645),
    [sym_version] = ACTIONS(2645),
    [sym_while] = ACTIONS(2645),
    [sym_gshared] = ACTIONS(2645),
    [sym_traits] = ACTIONS(2645),
    [sym_vector] = ACTIONS(2645),
    [sym_void] = ACTIONS(2645),
    [sym_directive] = ACTIONS(3),
  },
  [2780] = {
    [sym_identifier] = ACTIONS(4704),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4706),
    [anon_sym_DOT] = ACTIONS(4706),
    [anon_sym_SEMI] = ACTIONS(4706),
    [anon_sym_TILDE] = ACTIONS(4706),
    [anon_sym_AT] = ACTIONS(4706),
    [sym_bool] = ACTIONS(4704),
    [sym_byte] = ACTIONS(4704),
    [sym_ubyte] = ACTIONS(4704),
    [sym_char] = ACTIONS(4704),
    [sym_short] = ACTIONS(4704),
    [sym_ushort] = ACTIONS(4704),
    [sym_int] = ACTIONS(4704),
    [sym_uint] = ACTIONS(4704),
    [sym_long] = ACTIONS(4704),
    [sym_ulong] = ACTIONS(4704),
    [sym_cent] = ACTIONS(4704),
    [sym_ucent] = ACTIONS(4704),
    [sym_wchar] = ACTIONS(4704),
    [sym_dchar] = ACTIONS(4704),
    [sym_float] = ACTIONS(4704),
    [sym_double] = ACTIONS(4704),
    [sym_real] = ACTIONS(4704),
    [sym_ifloat] = ACTIONS(4704),
    [sym_idouble] = ACTIONS(4704),
    [sym_ireal] = ACTIONS(4704),
    [sym_cfloat] = ACTIONS(4704),
    [sym_cdouble] = ACTIONS(4704),
    [sym_creal] = ACTIONS(4704),
    [sym_size_t] = ACTIONS(4704),
    [sym_ptrdiff_t] = ACTIONS(4704),
    [sym_string] = ACTIONS(4704),
    [sym_cstring] = ACTIONS(4704),
    [sym_dstring] = ACTIONS(4704),
    [sym_wstring] = ACTIONS(4704),
    [sym_noreturn] = ACTIONS(4704),
    [sym_this] = ACTIONS(4704),
    [sym_abstract] = ACTIONS(4704),
    [sym_alias] = ACTIONS(4704),
    [sym_align] = ACTIONS(4704),
    [sym_auto] = ACTIONS(4704),
    [sym_class] = ACTIONS(4704),
    [sym_const] = ACTIONS(4704),
    [sym_debug] = ACTIONS(4704),
    [sym_deprecated] = ACTIONS(4704),
    [sym_else] = ACTIONS(4704),
    [sym_enum] = ACTIONS(4704),
    [sym_export] = ACTIONS(4704),
    [sym_extern] = ACTIONS(4704),
    [sym_final] = ACTIONS(4704),
    [sym_immutable] = ACTIONS(4704),
    [sym_import] = ACTIONS(4704),
    [sym_inout] = ACTIONS(4704),
    [sym_interface] = ACTIONS(4704),
    [sym_invariant] = ACTIONS(4704),
    [sym_mixin] = ACTIONS(4704),
    [sym_nothrow] = ACTIONS(4704),
    [sym_override] = ACTIONS(4704),
    [sym_package] = ACTIONS(4704),
    [sym_pragma] = ACTIONS(4704),
    [sym_private] = ACTIONS(4704),
    [sym_protected] = ACTIONS(4704),
    [sym_public] = ACTIONS(4704),
    [sym_pure] = ACTIONS(4704),
    [sym_ref] = ACTIONS(4704),
    [sym_return] = ACTIONS(4704),
    [sym_scope] = ACTIONS(4704),
    [sym_shared] = ACTIONS(4704),
    [sym_static] = ACTIONS(4704),
    [sym_struct] = ACTIONS(4704),
    [sym_synchronized] = ACTIONS(4704),
    [sym_template] = ACTIONS(4704),
    [sym_typeof] = ACTIONS(4704),
    [sym_union] = ACTIONS(4704),
    [sym_unittest] = ACTIONS(4704),
    [sym_version] = ACTIONS(4704),
    [sym_while] = ACTIONS(4704),
    [sym_gshared] = ACTIONS(4704),
    [sym_traits] = ACTIONS(4704),
    [sym_vector] = ACTIONS(4704),
    [sym_void] = ACTIONS(4704),
    [sym_directive] = ACTIONS(3),
  },
  [2781] = {
    [sym_identifier] = ACTIONS(4712),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4714),
    [anon_sym_DOT] = ACTIONS(4714),
    [anon_sym_SEMI] = ACTIONS(4714),
    [anon_sym_TILDE] = ACTIONS(4714),
    [anon_sym_AT] = ACTIONS(4714),
    [sym_bool] = ACTIONS(4712),
    [sym_byte] = ACTIONS(4712),
    [sym_ubyte] = ACTIONS(4712),
    [sym_char] = ACTIONS(4712),
    [sym_short] = ACTIONS(4712),
    [sym_ushort] = ACTIONS(4712),
    [sym_int] = ACTIONS(4712),
    [sym_uint] = ACTIONS(4712),
    [sym_long] = ACTIONS(4712),
    [sym_ulong] = ACTIONS(4712),
    [sym_cent] = ACTIONS(4712),
    [sym_ucent] = ACTIONS(4712),
    [sym_wchar] = ACTIONS(4712),
    [sym_dchar] = ACTIONS(4712),
    [sym_float] = ACTIONS(4712),
    [sym_double] = ACTIONS(4712),
    [sym_real] = ACTIONS(4712),
    [sym_ifloat] = ACTIONS(4712),
    [sym_idouble] = ACTIONS(4712),
    [sym_ireal] = ACTIONS(4712),
    [sym_cfloat] = ACTIONS(4712),
    [sym_cdouble] = ACTIONS(4712),
    [sym_creal] = ACTIONS(4712),
    [sym_size_t] = ACTIONS(4712),
    [sym_ptrdiff_t] = ACTIONS(4712),
    [sym_string] = ACTIONS(4712),
    [sym_cstring] = ACTIONS(4712),
    [sym_dstring] = ACTIONS(4712),
    [sym_wstring] = ACTIONS(4712),
    [sym_noreturn] = ACTIONS(4712),
    [sym_this] = ACTIONS(4712),
    [sym_abstract] = ACTIONS(4712),
    [sym_alias] = ACTIONS(4712),
    [sym_align] = ACTIONS(4712),
    [sym_auto] = ACTIONS(4712),
    [sym_class] = ACTIONS(4712),
    [sym_const] = ACTIONS(4712),
    [sym_debug] = ACTIONS(4712),
    [sym_deprecated] = ACTIONS(4712),
    [sym_else] = ACTIONS(4712),
    [sym_enum] = ACTIONS(4712),
    [sym_export] = ACTIONS(4712),
    [sym_extern] = ACTIONS(4712),
    [sym_final] = ACTIONS(4712),
    [sym_immutable] = ACTIONS(4712),
    [sym_import] = ACTIONS(4712),
    [sym_inout] = ACTIONS(4712),
    [sym_interface] = ACTIONS(4712),
    [sym_invariant] = ACTIONS(4712),
    [sym_mixin] = ACTIONS(4712),
    [sym_nothrow] = ACTIONS(4712),
    [sym_override] = ACTIONS(4712),
    [sym_package] = ACTIONS(4712),
    [sym_pragma] = ACTIONS(4712),
    [sym_private] = ACTIONS(4712),
    [sym_protected] = ACTIONS(4712),
    [sym_public] = ACTIONS(4712),
    [sym_pure] = ACTIONS(4712),
    [sym_ref] = ACTIONS(4712),
    [sym_return] = ACTIONS(4712),
    [sym_scope] = ACTIONS(4712),
    [sym_shared] = ACTIONS(4712),
    [sym_static] = ACTIONS(4712),
    [sym_struct] = ACTIONS(4712),
    [sym_synchronized] = ACTIONS(4712),
    [sym_template] = ACTIONS(4712),
    [sym_typeof] = ACTIONS(4712),
    [sym_union] = ACTIONS(4712),
    [sym_unittest] = ACTIONS(4712),
    [sym_version] = ACTIONS(4712),
    [sym_while] = ACTIONS(4712),
    [sym_gshared] = ACTIONS(4712),
    [sym_traits] = ACTIONS(4712),
    [sym_vector] = ACTIONS(4712),
    [sym_void] = ACTIONS(4712),
    [sym_directive] = ACTIONS(3),
  },
  [2782] = {
    [ts_builtin_sym_end] = ACTIONS(2796),
    [sym_identifier] = ACTIONS(2798),
    [sym_end_file] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_else] = ACTIONS(6801),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
  },
  [2783] = {
    [sym_identifier] = ACTIONS(4476),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4478),
    [anon_sym_DOT] = ACTIONS(4478),
    [anon_sym_SEMI] = ACTIONS(4478),
    [anon_sym_TILDE] = ACTIONS(4478),
    [anon_sym_AT] = ACTIONS(4478),
    [sym_bool] = ACTIONS(4476),
    [sym_byte] = ACTIONS(4476),
    [sym_ubyte] = ACTIONS(4476),
    [sym_char] = ACTIONS(4476),
    [sym_short] = ACTIONS(4476),
    [sym_ushort] = ACTIONS(4476),
    [sym_int] = ACTIONS(4476),
    [sym_uint] = ACTIONS(4476),
    [sym_long] = ACTIONS(4476),
    [sym_ulong] = ACTIONS(4476),
    [sym_cent] = ACTIONS(4476),
    [sym_ucent] = ACTIONS(4476),
    [sym_wchar] = ACTIONS(4476),
    [sym_dchar] = ACTIONS(4476),
    [sym_float] = ACTIONS(4476),
    [sym_double] = ACTIONS(4476),
    [sym_real] = ACTIONS(4476),
    [sym_ifloat] = ACTIONS(4476),
    [sym_idouble] = ACTIONS(4476),
    [sym_ireal] = ACTIONS(4476),
    [sym_cfloat] = ACTIONS(4476),
    [sym_cdouble] = ACTIONS(4476),
    [sym_creal] = ACTIONS(4476),
    [sym_size_t] = ACTIONS(4476),
    [sym_ptrdiff_t] = ACTIONS(4476),
    [sym_string] = ACTIONS(4476),
    [sym_cstring] = ACTIONS(4476),
    [sym_dstring] = ACTIONS(4476),
    [sym_wstring] = ACTIONS(4476),
    [sym_noreturn] = ACTIONS(4476),
    [sym_this] = ACTIONS(4476),
    [sym_abstract] = ACTIONS(4476),
    [sym_alias] = ACTIONS(4476),
    [sym_align] = ACTIONS(4476),
    [sym_auto] = ACTIONS(4476),
    [sym_class] = ACTIONS(4476),
    [sym_const] = ACTIONS(4476),
    [sym_debug] = ACTIONS(4476),
    [sym_deprecated] = ACTIONS(4476),
    [sym_else] = ACTIONS(4476),
    [sym_enum] = ACTIONS(4476),
    [sym_export] = ACTIONS(4476),
    [sym_extern] = ACTIONS(4476),
    [sym_final] = ACTIONS(4476),
    [sym_immutable] = ACTIONS(4476),
    [sym_import] = ACTIONS(4476),
    [sym_inout] = ACTIONS(4476),
    [sym_interface] = ACTIONS(4476),
    [sym_invariant] = ACTIONS(4476),
    [sym_mixin] = ACTIONS(4476),
    [sym_nothrow] = ACTIONS(4476),
    [sym_override] = ACTIONS(4476),
    [sym_package] = ACTIONS(4476),
    [sym_pragma] = ACTIONS(4476),
    [sym_private] = ACTIONS(4476),
    [sym_protected] = ACTIONS(4476),
    [sym_public] = ACTIONS(4476),
    [sym_pure] = ACTIONS(4476),
    [sym_ref] = ACTIONS(4476),
    [sym_return] = ACTIONS(4476),
    [sym_scope] = ACTIONS(4476),
    [sym_shared] = ACTIONS(4476),
    [sym_static] = ACTIONS(4476),
    [sym_struct] = ACTIONS(4476),
    [sym_synchronized] = ACTIONS(4476),
    [sym_template] = ACTIONS(4476),
    [sym_typeof] = ACTIONS(4476),
    [sym_union] = ACTIONS(4476),
    [sym_unittest] = ACTIONS(4476),
    [sym_version] = ACTIONS(4476),
    [sym_while] = ACTIONS(4476),
    [sym_gshared] = ACTIONS(4476),
    [sym_traits] = ACTIONS(4476),
    [sym_vector] = ACTIONS(4476),
    [sym_void] = ACTIONS(4476),
    [sym_directive] = ACTIONS(3),
  },
  [2784] = {
    [sym_identifier] = ACTIONS(4720),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4722),
    [anon_sym_DOT] = ACTIONS(4722),
    [anon_sym_SEMI] = ACTIONS(4722),
    [anon_sym_TILDE] = ACTIONS(4722),
    [anon_sym_AT] = ACTIONS(4722),
    [sym_bool] = ACTIONS(4720),
    [sym_byte] = ACTIONS(4720),
    [sym_ubyte] = ACTIONS(4720),
    [sym_char] = ACTIONS(4720),
    [sym_short] = ACTIONS(4720),
    [sym_ushort] = ACTIONS(4720),
    [sym_int] = ACTIONS(4720),
    [sym_uint] = ACTIONS(4720),
    [sym_long] = ACTIONS(4720),
    [sym_ulong] = ACTIONS(4720),
    [sym_cent] = ACTIONS(4720),
    [sym_ucent] = ACTIONS(4720),
    [sym_wchar] = ACTIONS(4720),
    [sym_dchar] = ACTIONS(4720),
    [sym_float] = ACTIONS(4720),
    [sym_double] = ACTIONS(4720),
    [sym_real] = ACTIONS(4720),
    [sym_ifloat] = ACTIONS(4720),
    [sym_idouble] = ACTIONS(4720),
    [sym_ireal] = ACTIONS(4720),
    [sym_cfloat] = ACTIONS(4720),
    [sym_cdouble] = ACTIONS(4720),
    [sym_creal] = ACTIONS(4720),
    [sym_size_t] = ACTIONS(4720),
    [sym_ptrdiff_t] = ACTIONS(4720),
    [sym_string] = ACTIONS(4720),
    [sym_cstring] = ACTIONS(4720),
    [sym_dstring] = ACTIONS(4720),
    [sym_wstring] = ACTIONS(4720),
    [sym_noreturn] = ACTIONS(4720),
    [sym_this] = ACTIONS(4720),
    [sym_abstract] = ACTIONS(4720),
    [sym_alias] = ACTIONS(4720),
    [sym_align] = ACTIONS(4720),
    [sym_auto] = ACTIONS(4720),
    [sym_class] = ACTIONS(4720),
    [sym_const] = ACTIONS(4720),
    [sym_debug] = ACTIONS(4720),
    [sym_deprecated] = ACTIONS(4720),
    [sym_else] = ACTIONS(4720),
    [sym_enum] = ACTIONS(4720),
    [sym_export] = ACTIONS(4720),
    [sym_extern] = ACTIONS(4720),
    [sym_final] = ACTIONS(4720),
    [sym_immutable] = ACTIONS(4720),
    [sym_import] = ACTIONS(4720),
    [sym_inout] = ACTIONS(4720),
    [sym_interface] = ACTIONS(4720),
    [sym_invariant] = ACTIONS(4720),
    [sym_mixin] = ACTIONS(4720),
    [sym_nothrow] = ACTIONS(4720),
    [sym_override] = ACTIONS(4720),
    [sym_package] = ACTIONS(4720),
    [sym_pragma] = ACTIONS(4720),
    [sym_private] = ACTIONS(4720),
    [sym_protected] = ACTIONS(4720),
    [sym_public] = ACTIONS(4720),
    [sym_pure] = ACTIONS(4720),
    [sym_ref] = ACTIONS(4720),
    [sym_return] = ACTIONS(4720),
    [sym_scope] = ACTIONS(4720),
    [sym_shared] = ACTIONS(4720),
    [sym_static] = ACTIONS(4720),
    [sym_struct] = ACTIONS(4720),
    [sym_synchronized] = ACTIONS(4720),
    [sym_template] = ACTIONS(4720),
    [sym_typeof] = ACTIONS(4720),
    [sym_union] = ACTIONS(4720),
    [sym_unittest] = ACTIONS(4720),
    [sym_version] = ACTIONS(4720),
    [sym_while] = ACTIONS(4720),
    [sym_gshared] = ACTIONS(4720),
    [sym_traits] = ACTIONS(4720),
    [sym_vector] = ACTIONS(4720),
    [sym_void] = ACTIONS(4720),
    [sym_directive] = ACTIONS(3),
  },
  [2785] = {
    [sym_identifier] = ACTIONS(4732),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4734),
    [anon_sym_DOT] = ACTIONS(4734),
    [anon_sym_SEMI] = ACTIONS(4734),
    [anon_sym_TILDE] = ACTIONS(4734),
    [anon_sym_AT] = ACTIONS(4734),
    [sym_bool] = ACTIONS(4732),
    [sym_byte] = ACTIONS(4732),
    [sym_ubyte] = ACTIONS(4732),
    [sym_char] = ACTIONS(4732),
    [sym_short] = ACTIONS(4732),
    [sym_ushort] = ACTIONS(4732),
    [sym_int] = ACTIONS(4732),
    [sym_uint] = ACTIONS(4732),
    [sym_long] = ACTIONS(4732),
    [sym_ulong] = ACTIONS(4732),
    [sym_cent] = ACTIONS(4732),
    [sym_ucent] = ACTIONS(4732),
    [sym_wchar] = ACTIONS(4732),
    [sym_dchar] = ACTIONS(4732),
    [sym_float] = ACTIONS(4732),
    [sym_double] = ACTIONS(4732),
    [sym_real] = ACTIONS(4732),
    [sym_ifloat] = ACTIONS(4732),
    [sym_idouble] = ACTIONS(4732),
    [sym_ireal] = ACTIONS(4732),
    [sym_cfloat] = ACTIONS(4732),
    [sym_cdouble] = ACTIONS(4732),
    [sym_creal] = ACTIONS(4732),
    [sym_size_t] = ACTIONS(4732),
    [sym_ptrdiff_t] = ACTIONS(4732),
    [sym_string] = ACTIONS(4732),
    [sym_cstring] = ACTIONS(4732),
    [sym_dstring] = ACTIONS(4732),
    [sym_wstring] = ACTIONS(4732),
    [sym_noreturn] = ACTIONS(4732),
    [sym_this] = ACTIONS(4732),
    [sym_abstract] = ACTIONS(4732),
    [sym_alias] = ACTIONS(4732),
    [sym_align] = ACTIONS(4732),
    [sym_auto] = ACTIONS(4732),
    [sym_class] = ACTIONS(4732),
    [sym_const] = ACTIONS(4732),
    [sym_debug] = ACTIONS(4732),
    [sym_deprecated] = ACTIONS(4732),
    [sym_else] = ACTIONS(4732),
    [sym_enum] = ACTIONS(4732),
    [sym_export] = ACTIONS(4732),
    [sym_extern] = ACTIONS(4732),
    [sym_final] = ACTIONS(4732),
    [sym_immutable] = ACTIONS(4732),
    [sym_import] = ACTIONS(4732),
    [sym_inout] = ACTIONS(4732),
    [sym_interface] = ACTIONS(4732),
    [sym_invariant] = ACTIONS(4732),
    [sym_mixin] = ACTIONS(4732),
    [sym_nothrow] = ACTIONS(4732),
    [sym_override] = ACTIONS(4732),
    [sym_package] = ACTIONS(4732),
    [sym_pragma] = ACTIONS(4732),
    [sym_private] = ACTIONS(4732),
    [sym_protected] = ACTIONS(4732),
    [sym_public] = ACTIONS(4732),
    [sym_pure] = ACTIONS(4732),
    [sym_ref] = ACTIONS(4732),
    [sym_return] = ACTIONS(4732),
    [sym_scope] = ACTIONS(4732),
    [sym_shared] = ACTIONS(4732),
    [sym_static] = ACTIONS(4732),
    [sym_struct] = ACTIONS(4732),
    [sym_synchronized] = ACTIONS(4732),
    [sym_template] = ACTIONS(4732),
    [sym_typeof] = ACTIONS(4732),
    [sym_union] = ACTIONS(4732),
    [sym_unittest] = ACTIONS(4732),
    [sym_version] = ACTIONS(4732),
    [sym_while] = ACTIONS(4732),
    [sym_gshared] = ACTIONS(4732),
    [sym_traits] = ACTIONS(4732),
    [sym_vector] = ACTIONS(4732),
    [sym_void] = ACTIONS(4732),
    [sym_directive] = ACTIONS(3),
  },
  [2786] = {
    [sym_identifier] = ACTIONS(4736),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4738),
    [anon_sym_DOT] = ACTIONS(4738),
    [anon_sym_SEMI] = ACTIONS(4738),
    [anon_sym_TILDE] = ACTIONS(4738),
    [anon_sym_AT] = ACTIONS(4738),
    [sym_bool] = ACTIONS(4736),
    [sym_byte] = ACTIONS(4736),
    [sym_ubyte] = ACTIONS(4736),
    [sym_char] = ACTIONS(4736),
    [sym_short] = ACTIONS(4736),
    [sym_ushort] = ACTIONS(4736),
    [sym_int] = ACTIONS(4736),
    [sym_uint] = ACTIONS(4736),
    [sym_long] = ACTIONS(4736),
    [sym_ulong] = ACTIONS(4736),
    [sym_cent] = ACTIONS(4736),
    [sym_ucent] = ACTIONS(4736),
    [sym_wchar] = ACTIONS(4736),
    [sym_dchar] = ACTIONS(4736),
    [sym_float] = ACTIONS(4736),
    [sym_double] = ACTIONS(4736),
    [sym_real] = ACTIONS(4736),
    [sym_ifloat] = ACTIONS(4736),
    [sym_idouble] = ACTIONS(4736),
    [sym_ireal] = ACTIONS(4736),
    [sym_cfloat] = ACTIONS(4736),
    [sym_cdouble] = ACTIONS(4736),
    [sym_creal] = ACTIONS(4736),
    [sym_size_t] = ACTIONS(4736),
    [sym_ptrdiff_t] = ACTIONS(4736),
    [sym_string] = ACTIONS(4736),
    [sym_cstring] = ACTIONS(4736),
    [sym_dstring] = ACTIONS(4736),
    [sym_wstring] = ACTIONS(4736),
    [sym_noreturn] = ACTIONS(4736),
    [sym_this] = ACTIONS(4736),
    [sym_abstract] = ACTIONS(4736),
    [sym_alias] = ACTIONS(4736),
    [sym_align] = ACTIONS(4736),
    [sym_auto] = ACTIONS(4736),
    [sym_class] = ACTIONS(4736),
    [sym_const] = ACTIONS(4736),
    [sym_debug] = ACTIONS(4736),
    [sym_deprecated] = ACTIONS(4736),
    [sym_else] = ACTIONS(4736),
    [sym_enum] = ACTIONS(4736),
    [sym_export] = ACTIONS(4736),
    [sym_extern] = ACTIONS(4736),
    [sym_final] = ACTIONS(4736),
    [sym_immutable] = ACTIONS(4736),
    [sym_import] = ACTIONS(4736),
    [sym_inout] = ACTIONS(4736),
    [sym_interface] = ACTIONS(4736),
    [sym_invariant] = ACTIONS(4736),
    [sym_mixin] = ACTIONS(4736),
    [sym_nothrow] = ACTIONS(4736),
    [sym_override] = ACTIONS(4736),
    [sym_package] = ACTIONS(4736),
    [sym_pragma] = ACTIONS(4736),
    [sym_private] = ACTIONS(4736),
    [sym_protected] = ACTIONS(4736),
    [sym_public] = ACTIONS(4736),
    [sym_pure] = ACTIONS(4736),
    [sym_ref] = ACTIONS(4736),
    [sym_return] = ACTIONS(4736),
    [sym_scope] = ACTIONS(4736),
    [sym_shared] = ACTIONS(4736),
    [sym_static] = ACTIONS(4736),
    [sym_struct] = ACTIONS(4736),
    [sym_synchronized] = ACTIONS(4736),
    [sym_template] = ACTIONS(4736),
    [sym_typeof] = ACTIONS(4736),
    [sym_union] = ACTIONS(4736),
    [sym_unittest] = ACTIONS(4736),
    [sym_version] = ACTIONS(4736),
    [sym_while] = ACTIONS(4736),
    [sym_gshared] = ACTIONS(4736),
    [sym_traits] = ACTIONS(4736),
    [sym_vector] = ACTIONS(4736),
    [sym_void] = ACTIONS(4736),
    [sym_directive] = ACTIONS(3),
  },
  [2787] = {
    [sym_identifier] = ACTIONS(2806),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2804),
    [anon_sym_DOT] = ACTIONS(2804),
    [anon_sym_SEMI] = ACTIONS(2804),
    [anon_sym_TILDE] = ACTIONS(2804),
    [anon_sym_AT] = ACTIONS(2804),
    [sym_bool] = ACTIONS(2806),
    [sym_byte] = ACTIONS(2806),
    [sym_ubyte] = ACTIONS(2806),
    [sym_char] = ACTIONS(2806),
    [sym_short] = ACTIONS(2806),
    [sym_ushort] = ACTIONS(2806),
    [sym_int] = ACTIONS(2806),
    [sym_uint] = ACTIONS(2806),
    [sym_long] = ACTIONS(2806),
    [sym_ulong] = ACTIONS(2806),
    [sym_cent] = ACTIONS(2806),
    [sym_ucent] = ACTIONS(2806),
    [sym_wchar] = ACTIONS(2806),
    [sym_dchar] = ACTIONS(2806),
    [sym_float] = ACTIONS(2806),
    [sym_double] = ACTIONS(2806),
    [sym_real] = ACTIONS(2806),
    [sym_ifloat] = ACTIONS(2806),
    [sym_idouble] = ACTIONS(2806),
    [sym_ireal] = ACTIONS(2806),
    [sym_cfloat] = ACTIONS(2806),
    [sym_cdouble] = ACTIONS(2806),
    [sym_creal] = ACTIONS(2806),
    [sym_size_t] = ACTIONS(2806),
    [sym_ptrdiff_t] = ACTIONS(2806),
    [sym_string] = ACTIONS(2806),
    [sym_cstring] = ACTIONS(2806),
    [sym_dstring] = ACTIONS(2806),
    [sym_wstring] = ACTIONS(2806),
    [sym_noreturn] = ACTIONS(2806),
    [sym_this] = ACTIONS(2806),
    [sym_abstract] = ACTIONS(2806),
    [sym_alias] = ACTIONS(2806),
    [sym_align] = ACTIONS(2806),
    [sym_auto] = ACTIONS(2806),
    [sym_class] = ACTIONS(2806),
    [sym_const] = ACTIONS(2806),
    [sym_debug] = ACTIONS(2806),
    [sym_deprecated] = ACTIONS(2806),
    [sym_else] = ACTIONS(2806),
    [sym_enum] = ACTIONS(2806),
    [sym_export] = ACTIONS(2806),
    [sym_extern] = ACTIONS(2806),
    [sym_final] = ACTIONS(2806),
    [sym_immutable] = ACTIONS(2806),
    [sym_import] = ACTIONS(2806),
    [sym_inout] = ACTIONS(2806),
    [sym_interface] = ACTIONS(2806),
    [sym_invariant] = ACTIONS(2806),
    [sym_mixin] = ACTIONS(2806),
    [sym_nothrow] = ACTIONS(2806),
    [sym_override] = ACTIONS(2806),
    [sym_package] = ACTIONS(2806),
    [sym_pragma] = ACTIONS(2806),
    [sym_private] = ACTIONS(2806),
    [sym_protected] = ACTIONS(2806),
    [sym_public] = ACTIONS(2806),
    [sym_pure] = ACTIONS(2806),
    [sym_ref] = ACTIONS(2806),
    [sym_return] = ACTIONS(2806),
    [sym_scope] = ACTIONS(2806),
    [sym_shared] = ACTIONS(2806),
    [sym_static] = ACTIONS(2806),
    [sym_struct] = ACTIONS(2806),
    [sym_synchronized] = ACTIONS(2806),
    [sym_template] = ACTIONS(2806),
    [sym_typeof] = ACTIONS(2806),
    [sym_union] = ACTIONS(2806),
    [sym_unittest] = ACTIONS(2806),
    [sym_version] = ACTIONS(2806),
    [sym_while] = ACTIONS(2806),
    [sym_gshared] = ACTIONS(2806),
    [sym_traits] = ACTIONS(2806),
    [sym_vector] = ACTIONS(2806),
    [sym_void] = ACTIONS(2806),
    [sym_directive] = ACTIONS(3),
  },
  [2788] = {
    [sym_identifier] = ACTIONS(4468),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4470),
    [anon_sym_DOT] = ACTIONS(4470),
    [anon_sym_SEMI] = ACTIONS(4470),
    [anon_sym_TILDE] = ACTIONS(4470),
    [anon_sym_AT] = ACTIONS(4470),
    [sym_bool] = ACTIONS(4468),
    [sym_byte] = ACTIONS(4468),
    [sym_ubyte] = ACTIONS(4468),
    [sym_char] = ACTIONS(4468),
    [sym_short] = ACTIONS(4468),
    [sym_ushort] = ACTIONS(4468),
    [sym_int] = ACTIONS(4468),
    [sym_uint] = ACTIONS(4468),
    [sym_long] = ACTIONS(4468),
    [sym_ulong] = ACTIONS(4468),
    [sym_cent] = ACTIONS(4468),
    [sym_ucent] = ACTIONS(4468),
    [sym_wchar] = ACTIONS(4468),
    [sym_dchar] = ACTIONS(4468),
    [sym_float] = ACTIONS(4468),
    [sym_double] = ACTIONS(4468),
    [sym_real] = ACTIONS(4468),
    [sym_ifloat] = ACTIONS(4468),
    [sym_idouble] = ACTIONS(4468),
    [sym_ireal] = ACTIONS(4468),
    [sym_cfloat] = ACTIONS(4468),
    [sym_cdouble] = ACTIONS(4468),
    [sym_creal] = ACTIONS(4468),
    [sym_size_t] = ACTIONS(4468),
    [sym_ptrdiff_t] = ACTIONS(4468),
    [sym_string] = ACTIONS(4468),
    [sym_cstring] = ACTIONS(4468),
    [sym_dstring] = ACTIONS(4468),
    [sym_wstring] = ACTIONS(4468),
    [sym_noreturn] = ACTIONS(4468),
    [sym_this] = ACTIONS(4468),
    [sym_abstract] = ACTIONS(4468),
    [sym_alias] = ACTIONS(4468),
    [sym_align] = ACTIONS(4468),
    [sym_auto] = ACTIONS(4468),
    [sym_class] = ACTIONS(4468),
    [sym_const] = ACTIONS(4468),
    [sym_debug] = ACTIONS(4468),
    [sym_deprecated] = ACTIONS(4468),
    [sym_else] = ACTIONS(4468),
    [sym_enum] = ACTIONS(4468),
    [sym_export] = ACTIONS(4468),
    [sym_extern] = ACTIONS(4468),
    [sym_final] = ACTIONS(4468),
    [sym_immutable] = ACTIONS(4468),
    [sym_import] = ACTIONS(4468),
    [sym_inout] = ACTIONS(4468),
    [sym_interface] = ACTIONS(4468),
    [sym_invariant] = ACTIONS(4468),
    [sym_mixin] = ACTIONS(4468),
    [sym_nothrow] = ACTIONS(4468),
    [sym_override] = ACTIONS(4468),
    [sym_package] = ACTIONS(4468),
    [sym_pragma] = ACTIONS(4468),
    [sym_private] = ACTIONS(4468),
    [sym_protected] = ACTIONS(4468),
    [sym_public] = ACTIONS(4468),
    [sym_pure] = ACTIONS(4468),
    [sym_ref] = ACTIONS(4468),
    [sym_return] = ACTIONS(4468),
    [sym_scope] = ACTIONS(4468),
    [sym_shared] = ACTIONS(4468),
    [sym_static] = ACTIONS(4468),
    [sym_struct] = ACTIONS(4468),
    [sym_synchronized] = ACTIONS(4468),
    [sym_template] = ACTIONS(4468),
    [sym_typeof] = ACTIONS(4468),
    [sym_union] = ACTIONS(4468),
    [sym_unittest] = ACTIONS(4468),
    [sym_version] = ACTIONS(4468),
    [sym_while] = ACTIONS(4468),
    [sym_gshared] = ACTIONS(4468),
    [sym_traits] = ACTIONS(4468),
    [sym_vector] = ACTIONS(4468),
    [sym_void] = ACTIONS(4468),
    [sym_directive] = ACTIONS(3),
  },
  [2789] = {
    [sym_identifier] = ACTIONS(4774),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4776),
    [anon_sym_DOT] = ACTIONS(4776),
    [anon_sym_SEMI] = ACTIONS(4776),
    [anon_sym_TILDE] = ACTIONS(4776),
    [anon_sym_AT] = ACTIONS(4776),
    [sym_bool] = ACTIONS(4774),
    [sym_byte] = ACTIONS(4774),
    [sym_ubyte] = ACTIONS(4774),
    [sym_char] = ACTIONS(4774),
    [sym_short] = ACTIONS(4774),
    [sym_ushort] = ACTIONS(4774),
    [sym_int] = ACTIONS(4774),
    [sym_uint] = ACTIONS(4774),
    [sym_long] = ACTIONS(4774),
    [sym_ulong] = ACTIONS(4774),
    [sym_cent] = ACTIONS(4774),
    [sym_ucent] = ACTIONS(4774),
    [sym_wchar] = ACTIONS(4774),
    [sym_dchar] = ACTIONS(4774),
    [sym_float] = ACTIONS(4774),
    [sym_double] = ACTIONS(4774),
    [sym_real] = ACTIONS(4774),
    [sym_ifloat] = ACTIONS(4774),
    [sym_idouble] = ACTIONS(4774),
    [sym_ireal] = ACTIONS(4774),
    [sym_cfloat] = ACTIONS(4774),
    [sym_cdouble] = ACTIONS(4774),
    [sym_creal] = ACTIONS(4774),
    [sym_size_t] = ACTIONS(4774),
    [sym_ptrdiff_t] = ACTIONS(4774),
    [sym_string] = ACTIONS(4774),
    [sym_cstring] = ACTIONS(4774),
    [sym_dstring] = ACTIONS(4774),
    [sym_wstring] = ACTIONS(4774),
    [sym_noreturn] = ACTIONS(4774),
    [sym_this] = ACTIONS(4774),
    [sym_abstract] = ACTIONS(4774),
    [sym_alias] = ACTIONS(4774),
    [sym_align] = ACTIONS(4774),
    [sym_auto] = ACTIONS(4774),
    [sym_class] = ACTIONS(4774),
    [sym_const] = ACTIONS(4774),
    [sym_debug] = ACTIONS(4774),
    [sym_deprecated] = ACTIONS(4774),
    [sym_else] = ACTIONS(4774),
    [sym_enum] = ACTIONS(4774),
    [sym_export] = ACTIONS(4774),
    [sym_extern] = ACTIONS(4774),
    [sym_final] = ACTIONS(4774),
    [sym_immutable] = ACTIONS(4774),
    [sym_import] = ACTIONS(4774),
    [sym_inout] = ACTIONS(4774),
    [sym_interface] = ACTIONS(4774),
    [sym_invariant] = ACTIONS(4774),
    [sym_mixin] = ACTIONS(4774),
    [sym_nothrow] = ACTIONS(4774),
    [sym_override] = ACTIONS(4774),
    [sym_package] = ACTIONS(4774),
    [sym_pragma] = ACTIONS(4774),
    [sym_private] = ACTIONS(4774),
    [sym_protected] = ACTIONS(4774),
    [sym_public] = ACTIONS(4774),
    [sym_pure] = ACTIONS(4774),
    [sym_ref] = ACTIONS(4774),
    [sym_return] = ACTIONS(4774),
    [sym_scope] = ACTIONS(4774),
    [sym_shared] = ACTIONS(4774),
    [sym_static] = ACTIONS(4774),
    [sym_struct] = ACTIONS(4774),
    [sym_synchronized] = ACTIONS(4774),
    [sym_template] = ACTIONS(4774),
    [sym_typeof] = ACTIONS(4774),
    [sym_union] = ACTIONS(4774),
    [sym_unittest] = ACTIONS(4774),
    [sym_version] = ACTIONS(4774),
    [sym_while] = ACTIONS(4774),
    [sym_gshared] = ACTIONS(4774),
    [sym_traits] = ACTIONS(4774),
    [sym_vector] = ACTIONS(4774),
    [sym_void] = ACTIONS(4774),
    [sym_directive] = ACTIONS(3),
  },
  [2790] = {
    [sym_identifier] = ACTIONS(4788),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4790),
    [anon_sym_DOT] = ACTIONS(4790),
    [anon_sym_SEMI] = ACTIONS(4790),
    [anon_sym_TILDE] = ACTIONS(4790),
    [anon_sym_AT] = ACTIONS(4790),
    [sym_bool] = ACTIONS(4788),
    [sym_byte] = ACTIONS(4788),
    [sym_ubyte] = ACTIONS(4788),
    [sym_char] = ACTIONS(4788),
    [sym_short] = ACTIONS(4788),
    [sym_ushort] = ACTIONS(4788),
    [sym_int] = ACTIONS(4788),
    [sym_uint] = ACTIONS(4788),
    [sym_long] = ACTIONS(4788),
    [sym_ulong] = ACTIONS(4788),
    [sym_cent] = ACTIONS(4788),
    [sym_ucent] = ACTIONS(4788),
    [sym_wchar] = ACTIONS(4788),
    [sym_dchar] = ACTIONS(4788),
    [sym_float] = ACTIONS(4788),
    [sym_double] = ACTIONS(4788),
    [sym_real] = ACTIONS(4788),
    [sym_ifloat] = ACTIONS(4788),
    [sym_idouble] = ACTIONS(4788),
    [sym_ireal] = ACTIONS(4788),
    [sym_cfloat] = ACTIONS(4788),
    [sym_cdouble] = ACTIONS(4788),
    [sym_creal] = ACTIONS(4788),
    [sym_size_t] = ACTIONS(4788),
    [sym_ptrdiff_t] = ACTIONS(4788),
    [sym_string] = ACTIONS(4788),
    [sym_cstring] = ACTIONS(4788),
    [sym_dstring] = ACTIONS(4788),
    [sym_wstring] = ACTIONS(4788),
    [sym_noreturn] = ACTIONS(4788),
    [sym_this] = ACTIONS(4788),
    [sym_abstract] = ACTIONS(4788),
    [sym_alias] = ACTIONS(4788),
    [sym_align] = ACTIONS(4788),
    [sym_auto] = ACTIONS(4788),
    [sym_class] = ACTIONS(4788),
    [sym_const] = ACTIONS(4788),
    [sym_debug] = ACTIONS(4788),
    [sym_deprecated] = ACTIONS(4788),
    [sym_else] = ACTIONS(4788),
    [sym_enum] = ACTIONS(4788),
    [sym_export] = ACTIONS(4788),
    [sym_extern] = ACTIONS(4788),
    [sym_final] = ACTIONS(4788),
    [sym_immutable] = ACTIONS(4788),
    [sym_import] = ACTIONS(4788),
    [sym_inout] = ACTIONS(4788),
    [sym_interface] = ACTIONS(4788),
    [sym_invariant] = ACTIONS(4788),
    [sym_mixin] = ACTIONS(4788),
    [sym_nothrow] = ACTIONS(4788),
    [sym_override] = ACTIONS(4788),
    [sym_package] = ACTIONS(4788),
    [sym_pragma] = ACTIONS(4788),
    [sym_private] = ACTIONS(4788),
    [sym_protected] = ACTIONS(4788),
    [sym_public] = ACTIONS(4788),
    [sym_pure] = ACTIONS(4788),
    [sym_ref] = ACTIONS(4788),
    [sym_return] = ACTIONS(4788),
    [sym_scope] = ACTIONS(4788),
    [sym_shared] = ACTIONS(4788),
    [sym_static] = ACTIONS(4788),
    [sym_struct] = ACTIONS(4788),
    [sym_synchronized] = ACTIONS(4788),
    [sym_template] = ACTIONS(4788),
    [sym_typeof] = ACTIONS(4788),
    [sym_union] = ACTIONS(4788),
    [sym_unittest] = ACTIONS(4788),
    [sym_version] = ACTIONS(4788),
    [sym_while] = ACTIONS(4788),
    [sym_gshared] = ACTIONS(4788),
    [sym_traits] = ACTIONS(4788),
    [sym_vector] = ACTIONS(4788),
    [sym_void] = ACTIONS(4788),
    [sym_directive] = ACTIONS(3),
  },
  [2791] = {
    [sym_identifier] = ACTIONS(4297),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4299),
    [anon_sym_DOT] = ACTIONS(4299),
    [anon_sym_SEMI] = ACTIONS(4299),
    [anon_sym_TILDE] = ACTIONS(4299),
    [anon_sym_AT] = ACTIONS(4299),
    [sym_bool] = ACTIONS(4297),
    [sym_byte] = ACTIONS(4297),
    [sym_ubyte] = ACTIONS(4297),
    [sym_char] = ACTIONS(4297),
    [sym_short] = ACTIONS(4297),
    [sym_ushort] = ACTIONS(4297),
    [sym_int] = ACTIONS(4297),
    [sym_uint] = ACTIONS(4297),
    [sym_long] = ACTIONS(4297),
    [sym_ulong] = ACTIONS(4297),
    [sym_cent] = ACTIONS(4297),
    [sym_ucent] = ACTIONS(4297),
    [sym_wchar] = ACTIONS(4297),
    [sym_dchar] = ACTIONS(4297),
    [sym_float] = ACTIONS(4297),
    [sym_double] = ACTIONS(4297),
    [sym_real] = ACTIONS(4297),
    [sym_ifloat] = ACTIONS(4297),
    [sym_idouble] = ACTIONS(4297),
    [sym_ireal] = ACTIONS(4297),
    [sym_cfloat] = ACTIONS(4297),
    [sym_cdouble] = ACTIONS(4297),
    [sym_creal] = ACTIONS(4297),
    [sym_size_t] = ACTIONS(4297),
    [sym_ptrdiff_t] = ACTIONS(4297),
    [sym_string] = ACTIONS(4297),
    [sym_cstring] = ACTIONS(4297),
    [sym_dstring] = ACTIONS(4297),
    [sym_wstring] = ACTIONS(4297),
    [sym_noreturn] = ACTIONS(4297),
    [sym_this] = ACTIONS(4297),
    [sym_abstract] = ACTIONS(4297),
    [sym_alias] = ACTIONS(4297),
    [sym_align] = ACTIONS(4297),
    [sym_auto] = ACTIONS(4297),
    [sym_class] = ACTIONS(4297),
    [sym_const] = ACTIONS(4297),
    [sym_debug] = ACTIONS(4297),
    [sym_deprecated] = ACTIONS(4297),
    [sym_else] = ACTIONS(4297),
    [sym_enum] = ACTIONS(4297),
    [sym_export] = ACTIONS(4297),
    [sym_extern] = ACTIONS(4297),
    [sym_final] = ACTIONS(4297),
    [sym_immutable] = ACTIONS(4297),
    [sym_import] = ACTIONS(4297),
    [sym_inout] = ACTIONS(4297),
    [sym_interface] = ACTIONS(4297),
    [sym_invariant] = ACTIONS(4297),
    [sym_mixin] = ACTIONS(4297),
    [sym_nothrow] = ACTIONS(4297),
    [sym_override] = ACTIONS(4297),
    [sym_package] = ACTIONS(4297),
    [sym_pragma] = ACTIONS(4297),
    [sym_private] = ACTIONS(4297),
    [sym_protected] = ACTIONS(4297),
    [sym_public] = ACTIONS(4297),
    [sym_pure] = ACTIONS(4297),
    [sym_ref] = ACTIONS(4297),
    [sym_return] = ACTIONS(4297),
    [sym_scope] = ACTIONS(4297),
    [sym_shared] = ACTIONS(4297),
    [sym_static] = ACTIONS(4297),
    [sym_struct] = ACTIONS(4297),
    [sym_synchronized] = ACTIONS(4297),
    [sym_template] = ACTIONS(4297),
    [sym_typeof] = ACTIONS(4297),
    [sym_union] = ACTIONS(4297),
    [sym_unittest] = ACTIONS(4297),
    [sym_version] = ACTIONS(4297),
    [sym_while] = ACTIONS(4297),
    [sym_gshared] = ACTIONS(4297),
    [sym_traits] = ACTIONS(4297),
    [sym_vector] = ACTIONS(4297),
    [sym_void] = ACTIONS(4297),
    [sym_directive] = ACTIONS(3),
  },
  [2792] = {
    [sym_identifier] = ACTIONS(4434),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4436),
    [anon_sym_DOT] = ACTIONS(4436),
    [anon_sym_SEMI] = ACTIONS(4436),
    [anon_sym_TILDE] = ACTIONS(4436),
    [anon_sym_AT] = ACTIONS(4436),
    [sym_bool] = ACTIONS(4434),
    [sym_byte] = ACTIONS(4434),
    [sym_ubyte] = ACTIONS(4434),
    [sym_char] = ACTIONS(4434),
    [sym_short] = ACTIONS(4434),
    [sym_ushort] = ACTIONS(4434),
    [sym_int] = ACTIONS(4434),
    [sym_uint] = ACTIONS(4434),
    [sym_long] = ACTIONS(4434),
    [sym_ulong] = ACTIONS(4434),
    [sym_cent] = ACTIONS(4434),
    [sym_ucent] = ACTIONS(4434),
    [sym_wchar] = ACTIONS(4434),
    [sym_dchar] = ACTIONS(4434),
    [sym_float] = ACTIONS(4434),
    [sym_double] = ACTIONS(4434),
    [sym_real] = ACTIONS(4434),
    [sym_ifloat] = ACTIONS(4434),
    [sym_idouble] = ACTIONS(4434),
    [sym_ireal] = ACTIONS(4434),
    [sym_cfloat] = ACTIONS(4434),
    [sym_cdouble] = ACTIONS(4434),
    [sym_creal] = ACTIONS(4434),
    [sym_size_t] = ACTIONS(4434),
    [sym_ptrdiff_t] = ACTIONS(4434),
    [sym_string] = ACTIONS(4434),
    [sym_cstring] = ACTIONS(4434),
    [sym_dstring] = ACTIONS(4434),
    [sym_wstring] = ACTIONS(4434),
    [sym_noreturn] = ACTIONS(4434),
    [sym_this] = ACTIONS(4434),
    [sym_abstract] = ACTIONS(4434),
    [sym_alias] = ACTIONS(4434),
    [sym_align] = ACTIONS(4434),
    [sym_auto] = ACTIONS(4434),
    [sym_class] = ACTIONS(4434),
    [sym_const] = ACTIONS(4434),
    [sym_debug] = ACTIONS(4434),
    [sym_deprecated] = ACTIONS(4434),
    [sym_else] = ACTIONS(4434),
    [sym_enum] = ACTIONS(4434),
    [sym_export] = ACTIONS(4434),
    [sym_extern] = ACTIONS(4434),
    [sym_final] = ACTIONS(4434),
    [sym_immutable] = ACTIONS(4434),
    [sym_import] = ACTIONS(4434),
    [sym_inout] = ACTIONS(4434),
    [sym_interface] = ACTIONS(4434),
    [sym_invariant] = ACTIONS(4434),
    [sym_mixin] = ACTIONS(4434),
    [sym_nothrow] = ACTIONS(4434),
    [sym_override] = ACTIONS(4434),
    [sym_package] = ACTIONS(4434),
    [sym_pragma] = ACTIONS(4434),
    [sym_private] = ACTIONS(4434),
    [sym_protected] = ACTIONS(4434),
    [sym_public] = ACTIONS(4434),
    [sym_pure] = ACTIONS(4434),
    [sym_ref] = ACTIONS(4434),
    [sym_return] = ACTIONS(4434),
    [sym_scope] = ACTIONS(4434),
    [sym_shared] = ACTIONS(4434),
    [sym_static] = ACTIONS(4434),
    [sym_struct] = ACTIONS(4434),
    [sym_synchronized] = ACTIONS(4434),
    [sym_template] = ACTIONS(4434),
    [sym_typeof] = ACTIONS(4434),
    [sym_union] = ACTIONS(4434),
    [sym_unittest] = ACTIONS(4434),
    [sym_version] = ACTIONS(4434),
    [sym_while] = ACTIONS(4434),
    [sym_gshared] = ACTIONS(4434),
    [sym_traits] = ACTIONS(4434),
    [sym_vector] = ACTIONS(4434),
    [sym_void] = ACTIONS(4434),
    [sym_directive] = ACTIONS(3),
  },
  [2793] = {
    [sym_identifier] = ACTIONS(4406),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4408),
    [anon_sym_DOT] = ACTIONS(4408),
    [anon_sym_SEMI] = ACTIONS(4408),
    [anon_sym_TILDE] = ACTIONS(4408),
    [anon_sym_AT] = ACTIONS(4408),
    [sym_bool] = ACTIONS(4406),
    [sym_byte] = ACTIONS(4406),
    [sym_ubyte] = ACTIONS(4406),
    [sym_char] = ACTIONS(4406),
    [sym_short] = ACTIONS(4406),
    [sym_ushort] = ACTIONS(4406),
    [sym_int] = ACTIONS(4406),
    [sym_uint] = ACTIONS(4406),
    [sym_long] = ACTIONS(4406),
    [sym_ulong] = ACTIONS(4406),
    [sym_cent] = ACTIONS(4406),
    [sym_ucent] = ACTIONS(4406),
    [sym_wchar] = ACTIONS(4406),
    [sym_dchar] = ACTIONS(4406),
    [sym_float] = ACTIONS(4406),
    [sym_double] = ACTIONS(4406),
    [sym_real] = ACTIONS(4406),
    [sym_ifloat] = ACTIONS(4406),
    [sym_idouble] = ACTIONS(4406),
    [sym_ireal] = ACTIONS(4406),
    [sym_cfloat] = ACTIONS(4406),
    [sym_cdouble] = ACTIONS(4406),
    [sym_creal] = ACTIONS(4406),
    [sym_size_t] = ACTIONS(4406),
    [sym_ptrdiff_t] = ACTIONS(4406),
    [sym_string] = ACTIONS(4406),
    [sym_cstring] = ACTIONS(4406),
    [sym_dstring] = ACTIONS(4406),
    [sym_wstring] = ACTIONS(4406),
    [sym_noreturn] = ACTIONS(4406),
    [sym_this] = ACTIONS(4406),
    [sym_abstract] = ACTIONS(4406),
    [sym_alias] = ACTIONS(4406),
    [sym_align] = ACTIONS(4406),
    [sym_auto] = ACTIONS(4406),
    [sym_class] = ACTIONS(4406),
    [sym_const] = ACTIONS(4406),
    [sym_debug] = ACTIONS(4406),
    [sym_deprecated] = ACTIONS(4406),
    [sym_else] = ACTIONS(4406),
    [sym_enum] = ACTIONS(4406),
    [sym_export] = ACTIONS(4406),
    [sym_extern] = ACTIONS(4406),
    [sym_final] = ACTIONS(4406),
    [sym_immutable] = ACTIONS(4406),
    [sym_import] = ACTIONS(4406),
    [sym_inout] = ACTIONS(4406),
    [sym_interface] = ACTIONS(4406),
    [sym_invariant] = ACTIONS(4406),
    [sym_mixin] = ACTIONS(4406),
    [sym_nothrow] = ACTIONS(4406),
    [sym_override] = ACTIONS(4406),
    [sym_package] = ACTIONS(4406),
    [sym_pragma] = ACTIONS(4406),
    [sym_private] = ACTIONS(4406),
    [sym_protected] = ACTIONS(4406),
    [sym_public] = ACTIONS(4406),
    [sym_pure] = ACTIONS(4406),
    [sym_ref] = ACTIONS(4406),
    [sym_return] = ACTIONS(4406),
    [sym_scope] = ACTIONS(4406),
    [sym_shared] = ACTIONS(4406),
    [sym_static] = ACTIONS(4406),
    [sym_struct] = ACTIONS(4406),
    [sym_synchronized] = ACTIONS(4406),
    [sym_template] = ACTIONS(4406),
    [sym_typeof] = ACTIONS(4406),
    [sym_union] = ACTIONS(4406),
    [sym_unittest] = ACTIONS(4406),
    [sym_version] = ACTIONS(4406),
    [sym_while] = ACTIONS(4406),
    [sym_gshared] = ACTIONS(4406),
    [sym_traits] = ACTIONS(4406),
    [sym_vector] = ACTIONS(4406),
    [sym_void] = ACTIONS(4406),
    [sym_directive] = ACTIONS(3),
  },
  [2794] = {
    [sym_identifier] = ACTIONS(4398),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4400),
    [anon_sym_DOT] = ACTIONS(4400),
    [anon_sym_SEMI] = ACTIONS(4400),
    [anon_sym_TILDE] = ACTIONS(4400),
    [anon_sym_AT] = ACTIONS(4400),
    [sym_bool] = ACTIONS(4398),
    [sym_byte] = ACTIONS(4398),
    [sym_ubyte] = ACTIONS(4398),
    [sym_char] = ACTIONS(4398),
    [sym_short] = ACTIONS(4398),
    [sym_ushort] = ACTIONS(4398),
    [sym_int] = ACTIONS(4398),
    [sym_uint] = ACTIONS(4398),
    [sym_long] = ACTIONS(4398),
    [sym_ulong] = ACTIONS(4398),
    [sym_cent] = ACTIONS(4398),
    [sym_ucent] = ACTIONS(4398),
    [sym_wchar] = ACTIONS(4398),
    [sym_dchar] = ACTIONS(4398),
    [sym_float] = ACTIONS(4398),
    [sym_double] = ACTIONS(4398),
    [sym_real] = ACTIONS(4398),
    [sym_ifloat] = ACTIONS(4398),
    [sym_idouble] = ACTIONS(4398),
    [sym_ireal] = ACTIONS(4398),
    [sym_cfloat] = ACTIONS(4398),
    [sym_cdouble] = ACTIONS(4398),
    [sym_creal] = ACTIONS(4398),
    [sym_size_t] = ACTIONS(4398),
    [sym_ptrdiff_t] = ACTIONS(4398),
    [sym_string] = ACTIONS(4398),
    [sym_cstring] = ACTIONS(4398),
    [sym_dstring] = ACTIONS(4398),
    [sym_wstring] = ACTIONS(4398),
    [sym_noreturn] = ACTIONS(4398),
    [sym_this] = ACTIONS(4398),
    [sym_abstract] = ACTIONS(4398),
    [sym_alias] = ACTIONS(4398),
    [sym_align] = ACTIONS(4398),
    [sym_auto] = ACTIONS(4398),
    [sym_class] = ACTIONS(4398),
    [sym_const] = ACTIONS(4398),
    [sym_debug] = ACTIONS(4398),
    [sym_deprecated] = ACTIONS(4398),
    [sym_else] = ACTIONS(4398),
    [sym_enum] = ACTIONS(4398),
    [sym_export] = ACTIONS(4398),
    [sym_extern] = ACTIONS(4398),
    [sym_final] = ACTIONS(4398),
    [sym_immutable] = ACTIONS(4398),
    [sym_import] = ACTIONS(4398),
    [sym_inout] = ACTIONS(4398),
    [sym_interface] = ACTIONS(4398),
    [sym_invariant] = ACTIONS(4398),
    [sym_mixin] = ACTIONS(4398),
    [sym_nothrow] = ACTIONS(4398),
    [sym_override] = ACTIONS(4398),
    [sym_package] = ACTIONS(4398),
    [sym_pragma] = ACTIONS(4398),
    [sym_private] = ACTIONS(4398),
    [sym_protected] = ACTIONS(4398),
    [sym_public] = ACTIONS(4398),
    [sym_pure] = ACTIONS(4398),
    [sym_ref] = ACTIONS(4398),
    [sym_return] = ACTIONS(4398),
    [sym_scope] = ACTIONS(4398),
    [sym_shared] = ACTIONS(4398),
    [sym_static] = ACTIONS(4398),
    [sym_struct] = ACTIONS(4398),
    [sym_synchronized] = ACTIONS(4398),
    [sym_template] = ACTIONS(4398),
    [sym_typeof] = ACTIONS(4398),
    [sym_union] = ACTIONS(4398),
    [sym_unittest] = ACTIONS(4398),
    [sym_version] = ACTIONS(4398),
    [sym_while] = ACTIONS(4398),
    [sym_gshared] = ACTIONS(4398),
    [sym_traits] = ACTIONS(4398),
    [sym_vector] = ACTIONS(4398),
    [sym_void] = ACTIONS(4398),
    [sym_directive] = ACTIONS(3),
  },
  [2795] = {
    [sym_identifier] = ACTIONS(4570),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4572),
    [anon_sym_DOT] = ACTIONS(4572),
    [anon_sym_SEMI] = ACTIONS(4572),
    [anon_sym_TILDE] = ACTIONS(4572),
    [anon_sym_AT] = ACTIONS(4572),
    [sym_bool] = ACTIONS(4570),
    [sym_byte] = ACTIONS(4570),
    [sym_ubyte] = ACTIONS(4570),
    [sym_char] = ACTIONS(4570),
    [sym_short] = ACTIONS(4570),
    [sym_ushort] = ACTIONS(4570),
    [sym_int] = ACTIONS(4570),
    [sym_uint] = ACTIONS(4570),
    [sym_long] = ACTIONS(4570),
    [sym_ulong] = ACTIONS(4570),
    [sym_cent] = ACTIONS(4570),
    [sym_ucent] = ACTIONS(4570),
    [sym_wchar] = ACTIONS(4570),
    [sym_dchar] = ACTIONS(4570),
    [sym_float] = ACTIONS(4570),
    [sym_double] = ACTIONS(4570),
    [sym_real] = ACTIONS(4570),
    [sym_ifloat] = ACTIONS(4570),
    [sym_idouble] = ACTIONS(4570),
    [sym_ireal] = ACTIONS(4570),
    [sym_cfloat] = ACTIONS(4570),
    [sym_cdouble] = ACTIONS(4570),
    [sym_creal] = ACTIONS(4570),
    [sym_size_t] = ACTIONS(4570),
    [sym_ptrdiff_t] = ACTIONS(4570),
    [sym_string] = ACTIONS(4570),
    [sym_cstring] = ACTIONS(4570),
    [sym_dstring] = ACTIONS(4570),
    [sym_wstring] = ACTIONS(4570),
    [sym_noreturn] = ACTIONS(4570),
    [sym_this] = ACTIONS(4570),
    [sym_abstract] = ACTIONS(4570),
    [sym_alias] = ACTIONS(4570),
    [sym_align] = ACTIONS(4570),
    [sym_auto] = ACTIONS(4570),
    [sym_class] = ACTIONS(4570),
    [sym_const] = ACTIONS(4570),
    [sym_debug] = ACTIONS(4570),
    [sym_deprecated] = ACTIONS(4570),
    [sym_else] = ACTIONS(4570),
    [sym_enum] = ACTIONS(4570),
    [sym_export] = ACTIONS(4570),
    [sym_extern] = ACTIONS(4570),
    [sym_final] = ACTIONS(4570),
    [sym_immutable] = ACTIONS(4570),
    [sym_import] = ACTIONS(4570),
    [sym_inout] = ACTIONS(4570),
    [sym_interface] = ACTIONS(4570),
    [sym_invariant] = ACTIONS(4570),
    [sym_mixin] = ACTIONS(4570),
    [sym_nothrow] = ACTIONS(4570),
    [sym_override] = ACTIONS(4570),
    [sym_package] = ACTIONS(4570),
    [sym_pragma] = ACTIONS(4570),
    [sym_private] = ACTIONS(4570),
    [sym_protected] = ACTIONS(4570),
    [sym_public] = ACTIONS(4570),
    [sym_pure] = ACTIONS(4570),
    [sym_ref] = ACTIONS(4570),
    [sym_return] = ACTIONS(4570),
    [sym_scope] = ACTIONS(4570),
    [sym_shared] = ACTIONS(4570),
    [sym_static] = ACTIONS(4570),
    [sym_struct] = ACTIONS(4570),
    [sym_synchronized] = ACTIONS(4570),
    [sym_template] = ACTIONS(4570),
    [sym_typeof] = ACTIONS(4570),
    [sym_union] = ACTIONS(4570),
    [sym_unittest] = ACTIONS(4570),
    [sym_version] = ACTIONS(4570),
    [sym_while] = ACTIONS(4570),
    [sym_gshared] = ACTIONS(4570),
    [sym_traits] = ACTIONS(4570),
    [sym_vector] = ACTIONS(4570),
    [sym_void] = ACTIONS(4570),
    [sym_directive] = ACTIONS(3),
  },
  [2796] = {
    [sym_identifier] = ACTIONS(4766),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4768),
    [anon_sym_DOT] = ACTIONS(4768),
    [anon_sym_SEMI] = ACTIONS(4768),
    [anon_sym_TILDE] = ACTIONS(4768),
    [anon_sym_AT] = ACTIONS(4768),
    [sym_bool] = ACTIONS(4766),
    [sym_byte] = ACTIONS(4766),
    [sym_ubyte] = ACTIONS(4766),
    [sym_char] = ACTIONS(4766),
    [sym_short] = ACTIONS(4766),
    [sym_ushort] = ACTIONS(4766),
    [sym_int] = ACTIONS(4766),
    [sym_uint] = ACTIONS(4766),
    [sym_long] = ACTIONS(4766),
    [sym_ulong] = ACTIONS(4766),
    [sym_cent] = ACTIONS(4766),
    [sym_ucent] = ACTIONS(4766),
    [sym_wchar] = ACTIONS(4766),
    [sym_dchar] = ACTIONS(4766),
    [sym_float] = ACTIONS(4766),
    [sym_double] = ACTIONS(4766),
    [sym_real] = ACTIONS(4766),
    [sym_ifloat] = ACTIONS(4766),
    [sym_idouble] = ACTIONS(4766),
    [sym_ireal] = ACTIONS(4766),
    [sym_cfloat] = ACTIONS(4766),
    [sym_cdouble] = ACTIONS(4766),
    [sym_creal] = ACTIONS(4766),
    [sym_size_t] = ACTIONS(4766),
    [sym_ptrdiff_t] = ACTIONS(4766),
    [sym_string] = ACTIONS(4766),
    [sym_cstring] = ACTIONS(4766),
    [sym_dstring] = ACTIONS(4766),
    [sym_wstring] = ACTIONS(4766),
    [sym_noreturn] = ACTIONS(4766),
    [sym_this] = ACTIONS(4766),
    [sym_abstract] = ACTIONS(4766),
    [sym_alias] = ACTIONS(4766),
    [sym_align] = ACTIONS(4766),
    [sym_auto] = ACTIONS(4766),
    [sym_class] = ACTIONS(4766),
    [sym_const] = ACTIONS(4766),
    [sym_debug] = ACTIONS(4766),
    [sym_deprecated] = ACTIONS(4766),
    [sym_else] = ACTIONS(4766),
    [sym_enum] = ACTIONS(4766),
    [sym_export] = ACTIONS(4766),
    [sym_extern] = ACTIONS(4766),
    [sym_final] = ACTIONS(4766),
    [sym_immutable] = ACTIONS(4766),
    [sym_import] = ACTIONS(4766),
    [sym_inout] = ACTIONS(4766),
    [sym_interface] = ACTIONS(4766),
    [sym_invariant] = ACTIONS(4766),
    [sym_mixin] = ACTIONS(4766),
    [sym_nothrow] = ACTIONS(4766),
    [sym_override] = ACTIONS(4766),
    [sym_package] = ACTIONS(4766),
    [sym_pragma] = ACTIONS(4766),
    [sym_private] = ACTIONS(4766),
    [sym_protected] = ACTIONS(4766),
    [sym_public] = ACTIONS(4766),
    [sym_pure] = ACTIONS(4766),
    [sym_ref] = ACTIONS(4766),
    [sym_return] = ACTIONS(4766),
    [sym_scope] = ACTIONS(4766),
    [sym_shared] = ACTIONS(4766),
    [sym_static] = ACTIONS(4766),
    [sym_struct] = ACTIONS(4766),
    [sym_synchronized] = ACTIONS(4766),
    [sym_template] = ACTIONS(4766),
    [sym_typeof] = ACTIONS(4766),
    [sym_union] = ACTIONS(4766),
    [sym_unittest] = ACTIONS(4766),
    [sym_version] = ACTIONS(4766),
    [sym_while] = ACTIONS(4766),
    [sym_gshared] = ACTIONS(4766),
    [sym_traits] = ACTIONS(4766),
    [sym_vector] = ACTIONS(4766),
    [sym_void] = ACTIONS(4766),
    [sym_directive] = ACTIONS(3),
  },
  [2797] = {
    [sym_switch_statement] = STATE(1657),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(183),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2798] = {
    [sym_identifier] = ACTIONS(4770),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4772),
    [anon_sym_DOT] = ACTIONS(4772),
    [anon_sym_SEMI] = ACTIONS(4772),
    [anon_sym_TILDE] = ACTIONS(4772),
    [anon_sym_AT] = ACTIONS(4772),
    [sym_bool] = ACTIONS(4770),
    [sym_byte] = ACTIONS(4770),
    [sym_ubyte] = ACTIONS(4770),
    [sym_char] = ACTIONS(4770),
    [sym_short] = ACTIONS(4770),
    [sym_ushort] = ACTIONS(4770),
    [sym_int] = ACTIONS(4770),
    [sym_uint] = ACTIONS(4770),
    [sym_long] = ACTIONS(4770),
    [sym_ulong] = ACTIONS(4770),
    [sym_cent] = ACTIONS(4770),
    [sym_ucent] = ACTIONS(4770),
    [sym_wchar] = ACTIONS(4770),
    [sym_dchar] = ACTIONS(4770),
    [sym_float] = ACTIONS(4770),
    [sym_double] = ACTIONS(4770),
    [sym_real] = ACTIONS(4770),
    [sym_ifloat] = ACTIONS(4770),
    [sym_idouble] = ACTIONS(4770),
    [sym_ireal] = ACTIONS(4770),
    [sym_cfloat] = ACTIONS(4770),
    [sym_cdouble] = ACTIONS(4770),
    [sym_creal] = ACTIONS(4770),
    [sym_size_t] = ACTIONS(4770),
    [sym_ptrdiff_t] = ACTIONS(4770),
    [sym_string] = ACTIONS(4770),
    [sym_cstring] = ACTIONS(4770),
    [sym_dstring] = ACTIONS(4770),
    [sym_wstring] = ACTIONS(4770),
    [sym_noreturn] = ACTIONS(4770),
    [sym_this] = ACTIONS(4770),
    [sym_abstract] = ACTIONS(4770),
    [sym_alias] = ACTIONS(4770),
    [sym_align] = ACTIONS(4770),
    [sym_auto] = ACTIONS(4770),
    [sym_class] = ACTIONS(4770),
    [sym_const] = ACTIONS(4770),
    [sym_debug] = ACTIONS(4770),
    [sym_deprecated] = ACTIONS(4770),
    [sym_else] = ACTIONS(4770),
    [sym_enum] = ACTIONS(4770),
    [sym_export] = ACTIONS(4770),
    [sym_extern] = ACTIONS(4770),
    [sym_final] = ACTIONS(4770),
    [sym_immutable] = ACTIONS(4770),
    [sym_import] = ACTIONS(4770),
    [sym_inout] = ACTIONS(4770),
    [sym_interface] = ACTIONS(4770),
    [sym_invariant] = ACTIONS(4770),
    [sym_mixin] = ACTIONS(4770),
    [sym_nothrow] = ACTIONS(4770),
    [sym_override] = ACTIONS(4770),
    [sym_package] = ACTIONS(4770),
    [sym_pragma] = ACTIONS(4770),
    [sym_private] = ACTIONS(4770),
    [sym_protected] = ACTIONS(4770),
    [sym_public] = ACTIONS(4770),
    [sym_pure] = ACTIONS(4770),
    [sym_ref] = ACTIONS(4770),
    [sym_return] = ACTIONS(4770),
    [sym_scope] = ACTIONS(4770),
    [sym_shared] = ACTIONS(4770),
    [sym_static] = ACTIONS(4770),
    [sym_struct] = ACTIONS(4770),
    [sym_synchronized] = ACTIONS(4770),
    [sym_template] = ACTIONS(4770),
    [sym_typeof] = ACTIONS(4770),
    [sym_union] = ACTIONS(4770),
    [sym_unittest] = ACTIONS(4770),
    [sym_version] = ACTIONS(4770),
    [sym_while] = ACTIONS(4770),
    [sym_gshared] = ACTIONS(4770),
    [sym_traits] = ACTIONS(4770),
    [sym_vector] = ACTIONS(4770),
    [sym_void] = ACTIONS(4770),
    [sym_directive] = ACTIONS(3),
  },
  [2799] = {
    [sym_identifier] = ACTIONS(4386),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4388),
    [anon_sym_DOT] = ACTIONS(4388),
    [anon_sym_SEMI] = ACTIONS(4388),
    [anon_sym_TILDE] = ACTIONS(4388),
    [anon_sym_AT] = ACTIONS(4388),
    [sym_bool] = ACTIONS(4386),
    [sym_byte] = ACTIONS(4386),
    [sym_ubyte] = ACTIONS(4386),
    [sym_char] = ACTIONS(4386),
    [sym_short] = ACTIONS(4386),
    [sym_ushort] = ACTIONS(4386),
    [sym_int] = ACTIONS(4386),
    [sym_uint] = ACTIONS(4386),
    [sym_long] = ACTIONS(4386),
    [sym_ulong] = ACTIONS(4386),
    [sym_cent] = ACTIONS(4386),
    [sym_ucent] = ACTIONS(4386),
    [sym_wchar] = ACTIONS(4386),
    [sym_dchar] = ACTIONS(4386),
    [sym_float] = ACTIONS(4386),
    [sym_double] = ACTIONS(4386),
    [sym_real] = ACTIONS(4386),
    [sym_ifloat] = ACTIONS(4386),
    [sym_idouble] = ACTIONS(4386),
    [sym_ireal] = ACTIONS(4386),
    [sym_cfloat] = ACTIONS(4386),
    [sym_cdouble] = ACTIONS(4386),
    [sym_creal] = ACTIONS(4386),
    [sym_size_t] = ACTIONS(4386),
    [sym_ptrdiff_t] = ACTIONS(4386),
    [sym_string] = ACTIONS(4386),
    [sym_cstring] = ACTIONS(4386),
    [sym_dstring] = ACTIONS(4386),
    [sym_wstring] = ACTIONS(4386),
    [sym_noreturn] = ACTIONS(4386),
    [sym_this] = ACTIONS(4386),
    [sym_abstract] = ACTIONS(4386),
    [sym_alias] = ACTIONS(4386),
    [sym_align] = ACTIONS(4386),
    [sym_auto] = ACTIONS(4386),
    [sym_class] = ACTIONS(4386),
    [sym_const] = ACTIONS(4386),
    [sym_debug] = ACTIONS(4386),
    [sym_deprecated] = ACTIONS(4386),
    [sym_else] = ACTIONS(4386),
    [sym_enum] = ACTIONS(4386),
    [sym_export] = ACTIONS(4386),
    [sym_extern] = ACTIONS(4386),
    [sym_final] = ACTIONS(4386),
    [sym_immutable] = ACTIONS(4386),
    [sym_import] = ACTIONS(4386),
    [sym_inout] = ACTIONS(4386),
    [sym_interface] = ACTIONS(4386),
    [sym_invariant] = ACTIONS(4386),
    [sym_mixin] = ACTIONS(4386),
    [sym_nothrow] = ACTIONS(4386),
    [sym_override] = ACTIONS(4386),
    [sym_package] = ACTIONS(4386),
    [sym_pragma] = ACTIONS(4386),
    [sym_private] = ACTIONS(4386),
    [sym_protected] = ACTIONS(4386),
    [sym_public] = ACTIONS(4386),
    [sym_pure] = ACTIONS(4386),
    [sym_ref] = ACTIONS(4386),
    [sym_return] = ACTIONS(4386),
    [sym_scope] = ACTIONS(4386),
    [sym_shared] = ACTIONS(4386),
    [sym_static] = ACTIONS(4386),
    [sym_struct] = ACTIONS(4386),
    [sym_synchronized] = ACTIONS(4386),
    [sym_template] = ACTIONS(4386),
    [sym_typeof] = ACTIONS(4386),
    [sym_union] = ACTIONS(4386),
    [sym_unittest] = ACTIONS(4386),
    [sym_version] = ACTIONS(4386),
    [sym_while] = ACTIONS(4386),
    [sym_gshared] = ACTIONS(4386),
    [sym_traits] = ACTIONS(4386),
    [sym_vector] = ACTIONS(4386),
    [sym_void] = ACTIONS(4386),
    [sym_directive] = ACTIONS(3),
  },
  [2800] = {
    [sym_identifier] = ACTIONS(4343),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4345),
    [anon_sym_DOT] = ACTIONS(4345),
    [anon_sym_SEMI] = ACTIONS(4345),
    [anon_sym_TILDE] = ACTIONS(4345),
    [anon_sym_AT] = ACTIONS(4345),
    [sym_bool] = ACTIONS(4343),
    [sym_byte] = ACTIONS(4343),
    [sym_ubyte] = ACTIONS(4343),
    [sym_char] = ACTIONS(4343),
    [sym_short] = ACTIONS(4343),
    [sym_ushort] = ACTIONS(4343),
    [sym_int] = ACTIONS(4343),
    [sym_uint] = ACTIONS(4343),
    [sym_long] = ACTIONS(4343),
    [sym_ulong] = ACTIONS(4343),
    [sym_cent] = ACTIONS(4343),
    [sym_ucent] = ACTIONS(4343),
    [sym_wchar] = ACTIONS(4343),
    [sym_dchar] = ACTIONS(4343),
    [sym_float] = ACTIONS(4343),
    [sym_double] = ACTIONS(4343),
    [sym_real] = ACTIONS(4343),
    [sym_ifloat] = ACTIONS(4343),
    [sym_idouble] = ACTIONS(4343),
    [sym_ireal] = ACTIONS(4343),
    [sym_cfloat] = ACTIONS(4343),
    [sym_cdouble] = ACTIONS(4343),
    [sym_creal] = ACTIONS(4343),
    [sym_size_t] = ACTIONS(4343),
    [sym_ptrdiff_t] = ACTIONS(4343),
    [sym_string] = ACTIONS(4343),
    [sym_cstring] = ACTIONS(4343),
    [sym_dstring] = ACTIONS(4343),
    [sym_wstring] = ACTIONS(4343),
    [sym_noreturn] = ACTIONS(4343),
    [sym_this] = ACTIONS(4343),
    [sym_abstract] = ACTIONS(4343),
    [sym_alias] = ACTIONS(4343),
    [sym_align] = ACTIONS(4343),
    [sym_auto] = ACTIONS(4343),
    [sym_class] = ACTIONS(4343),
    [sym_const] = ACTIONS(4343),
    [sym_debug] = ACTIONS(4343),
    [sym_deprecated] = ACTIONS(4343),
    [sym_else] = ACTIONS(4343),
    [sym_enum] = ACTIONS(4343),
    [sym_export] = ACTIONS(4343),
    [sym_extern] = ACTIONS(4343),
    [sym_final] = ACTIONS(4343),
    [sym_immutable] = ACTIONS(4343),
    [sym_import] = ACTIONS(4343),
    [sym_inout] = ACTIONS(4343),
    [sym_interface] = ACTIONS(4343),
    [sym_invariant] = ACTIONS(4343),
    [sym_mixin] = ACTIONS(4343),
    [sym_nothrow] = ACTIONS(4343),
    [sym_override] = ACTIONS(4343),
    [sym_package] = ACTIONS(4343),
    [sym_pragma] = ACTIONS(4343),
    [sym_private] = ACTIONS(4343),
    [sym_protected] = ACTIONS(4343),
    [sym_public] = ACTIONS(4343),
    [sym_pure] = ACTIONS(4343),
    [sym_ref] = ACTIONS(4343),
    [sym_return] = ACTIONS(4343),
    [sym_scope] = ACTIONS(4343),
    [sym_shared] = ACTIONS(4343),
    [sym_static] = ACTIONS(4343),
    [sym_struct] = ACTIONS(4343),
    [sym_synchronized] = ACTIONS(4343),
    [sym_template] = ACTIONS(4343),
    [sym_typeof] = ACTIONS(4343),
    [sym_union] = ACTIONS(4343),
    [sym_unittest] = ACTIONS(4343),
    [sym_version] = ACTIONS(4343),
    [sym_while] = ACTIONS(4343),
    [sym_gshared] = ACTIONS(4343),
    [sym_traits] = ACTIONS(4343),
    [sym_vector] = ACTIONS(4343),
    [sym_void] = ACTIONS(4343),
    [sym_directive] = ACTIONS(3),
  },
  [2801] = {
    [sym_identifier] = ACTIONS(4778),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4780),
    [anon_sym_DOT] = ACTIONS(4780),
    [anon_sym_SEMI] = ACTIONS(4780),
    [anon_sym_TILDE] = ACTIONS(4780),
    [anon_sym_AT] = ACTIONS(4780),
    [sym_bool] = ACTIONS(4778),
    [sym_byte] = ACTIONS(4778),
    [sym_ubyte] = ACTIONS(4778),
    [sym_char] = ACTIONS(4778),
    [sym_short] = ACTIONS(4778),
    [sym_ushort] = ACTIONS(4778),
    [sym_int] = ACTIONS(4778),
    [sym_uint] = ACTIONS(4778),
    [sym_long] = ACTIONS(4778),
    [sym_ulong] = ACTIONS(4778),
    [sym_cent] = ACTIONS(4778),
    [sym_ucent] = ACTIONS(4778),
    [sym_wchar] = ACTIONS(4778),
    [sym_dchar] = ACTIONS(4778),
    [sym_float] = ACTIONS(4778),
    [sym_double] = ACTIONS(4778),
    [sym_real] = ACTIONS(4778),
    [sym_ifloat] = ACTIONS(4778),
    [sym_idouble] = ACTIONS(4778),
    [sym_ireal] = ACTIONS(4778),
    [sym_cfloat] = ACTIONS(4778),
    [sym_cdouble] = ACTIONS(4778),
    [sym_creal] = ACTIONS(4778),
    [sym_size_t] = ACTIONS(4778),
    [sym_ptrdiff_t] = ACTIONS(4778),
    [sym_string] = ACTIONS(4778),
    [sym_cstring] = ACTIONS(4778),
    [sym_dstring] = ACTIONS(4778),
    [sym_wstring] = ACTIONS(4778),
    [sym_noreturn] = ACTIONS(4778),
    [sym_this] = ACTIONS(4778),
    [sym_abstract] = ACTIONS(4778),
    [sym_alias] = ACTIONS(4778),
    [sym_align] = ACTIONS(4778),
    [sym_auto] = ACTIONS(4778),
    [sym_class] = ACTIONS(4778),
    [sym_const] = ACTIONS(4778),
    [sym_debug] = ACTIONS(4778),
    [sym_deprecated] = ACTIONS(4778),
    [sym_else] = ACTIONS(4778),
    [sym_enum] = ACTIONS(4778),
    [sym_export] = ACTIONS(4778),
    [sym_extern] = ACTIONS(4778),
    [sym_final] = ACTIONS(4778),
    [sym_immutable] = ACTIONS(4778),
    [sym_import] = ACTIONS(4778),
    [sym_inout] = ACTIONS(4778),
    [sym_interface] = ACTIONS(4778),
    [sym_invariant] = ACTIONS(4778),
    [sym_mixin] = ACTIONS(4778),
    [sym_nothrow] = ACTIONS(4778),
    [sym_override] = ACTIONS(4778),
    [sym_package] = ACTIONS(4778),
    [sym_pragma] = ACTIONS(4778),
    [sym_private] = ACTIONS(4778),
    [sym_protected] = ACTIONS(4778),
    [sym_public] = ACTIONS(4778),
    [sym_pure] = ACTIONS(4778),
    [sym_ref] = ACTIONS(4778),
    [sym_return] = ACTIONS(4778),
    [sym_scope] = ACTIONS(4778),
    [sym_shared] = ACTIONS(4778),
    [sym_static] = ACTIONS(4778),
    [sym_struct] = ACTIONS(4778),
    [sym_synchronized] = ACTIONS(4778),
    [sym_template] = ACTIONS(4778),
    [sym_typeof] = ACTIONS(4778),
    [sym_union] = ACTIONS(4778),
    [sym_unittest] = ACTIONS(4778),
    [sym_version] = ACTIONS(4778),
    [sym_while] = ACTIONS(4778),
    [sym_gshared] = ACTIONS(4778),
    [sym_traits] = ACTIONS(4778),
    [sym_vector] = ACTIONS(4778),
    [sym_void] = ACTIONS(4778),
    [sym_directive] = ACTIONS(3),
  },
  [2802] = {
    [sym_identifier] = ACTIONS(4798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4800),
    [anon_sym_DOT] = ACTIONS(4800),
    [anon_sym_SEMI] = ACTIONS(4800),
    [anon_sym_TILDE] = ACTIONS(4800),
    [anon_sym_AT] = ACTIONS(4800),
    [sym_bool] = ACTIONS(4798),
    [sym_byte] = ACTIONS(4798),
    [sym_ubyte] = ACTIONS(4798),
    [sym_char] = ACTIONS(4798),
    [sym_short] = ACTIONS(4798),
    [sym_ushort] = ACTIONS(4798),
    [sym_int] = ACTIONS(4798),
    [sym_uint] = ACTIONS(4798),
    [sym_long] = ACTIONS(4798),
    [sym_ulong] = ACTIONS(4798),
    [sym_cent] = ACTIONS(4798),
    [sym_ucent] = ACTIONS(4798),
    [sym_wchar] = ACTIONS(4798),
    [sym_dchar] = ACTIONS(4798),
    [sym_float] = ACTIONS(4798),
    [sym_double] = ACTIONS(4798),
    [sym_real] = ACTIONS(4798),
    [sym_ifloat] = ACTIONS(4798),
    [sym_idouble] = ACTIONS(4798),
    [sym_ireal] = ACTIONS(4798),
    [sym_cfloat] = ACTIONS(4798),
    [sym_cdouble] = ACTIONS(4798),
    [sym_creal] = ACTIONS(4798),
    [sym_size_t] = ACTIONS(4798),
    [sym_ptrdiff_t] = ACTIONS(4798),
    [sym_string] = ACTIONS(4798),
    [sym_cstring] = ACTIONS(4798),
    [sym_dstring] = ACTIONS(4798),
    [sym_wstring] = ACTIONS(4798),
    [sym_noreturn] = ACTIONS(4798),
    [sym_this] = ACTIONS(4798),
    [sym_abstract] = ACTIONS(4798),
    [sym_alias] = ACTIONS(4798),
    [sym_align] = ACTIONS(4798),
    [sym_auto] = ACTIONS(4798),
    [sym_class] = ACTIONS(4798),
    [sym_const] = ACTIONS(4798),
    [sym_debug] = ACTIONS(4798),
    [sym_deprecated] = ACTIONS(4798),
    [sym_else] = ACTIONS(4798),
    [sym_enum] = ACTIONS(4798),
    [sym_export] = ACTIONS(4798),
    [sym_extern] = ACTIONS(4798),
    [sym_final] = ACTIONS(4798),
    [sym_immutable] = ACTIONS(4798),
    [sym_import] = ACTIONS(4798),
    [sym_inout] = ACTIONS(4798),
    [sym_interface] = ACTIONS(4798),
    [sym_invariant] = ACTIONS(4798),
    [sym_mixin] = ACTIONS(4798),
    [sym_nothrow] = ACTIONS(4798),
    [sym_override] = ACTIONS(4798),
    [sym_package] = ACTIONS(4798),
    [sym_pragma] = ACTIONS(4798),
    [sym_private] = ACTIONS(4798),
    [sym_protected] = ACTIONS(4798),
    [sym_public] = ACTIONS(4798),
    [sym_pure] = ACTIONS(4798),
    [sym_ref] = ACTIONS(4798),
    [sym_return] = ACTIONS(4798),
    [sym_scope] = ACTIONS(4798),
    [sym_shared] = ACTIONS(4798),
    [sym_static] = ACTIONS(4798),
    [sym_struct] = ACTIONS(4798),
    [sym_synchronized] = ACTIONS(4798),
    [sym_template] = ACTIONS(4798),
    [sym_typeof] = ACTIONS(4798),
    [sym_union] = ACTIONS(4798),
    [sym_unittest] = ACTIONS(4798),
    [sym_version] = ACTIONS(4798),
    [sym_while] = ACTIONS(4798),
    [sym_gshared] = ACTIONS(4798),
    [sym_traits] = ACTIONS(4798),
    [sym_vector] = ACTIONS(4798),
    [sym_void] = ACTIONS(4798),
    [sym_directive] = ACTIONS(3),
  },
  [2803] = {
    [sym_identifier] = ACTIONS(4832),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4834),
    [anon_sym_DOT] = ACTIONS(4834),
    [anon_sym_SEMI] = ACTIONS(4834),
    [anon_sym_TILDE] = ACTIONS(4834),
    [anon_sym_AT] = ACTIONS(4834),
    [sym_bool] = ACTIONS(4832),
    [sym_byte] = ACTIONS(4832),
    [sym_ubyte] = ACTIONS(4832),
    [sym_char] = ACTIONS(4832),
    [sym_short] = ACTIONS(4832),
    [sym_ushort] = ACTIONS(4832),
    [sym_int] = ACTIONS(4832),
    [sym_uint] = ACTIONS(4832),
    [sym_long] = ACTIONS(4832),
    [sym_ulong] = ACTIONS(4832),
    [sym_cent] = ACTIONS(4832),
    [sym_ucent] = ACTIONS(4832),
    [sym_wchar] = ACTIONS(4832),
    [sym_dchar] = ACTIONS(4832),
    [sym_float] = ACTIONS(4832),
    [sym_double] = ACTIONS(4832),
    [sym_real] = ACTIONS(4832),
    [sym_ifloat] = ACTIONS(4832),
    [sym_idouble] = ACTIONS(4832),
    [sym_ireal] = ACTIONS(4832),
    [sym_cfloat] = ACTIONS(4832),
    [sym_cdouble] = ACTIONS(4832),
    [sym_creal] = ACTIONS(4832),
    [sym_size_t] = ACTIONS(4832),
    [sym_ptrdiff_t] = ACTIONS(4832),
    [sym_string] = ACTIONS(4832),
    [sym_cstring] = ACTIONS(4832),
    [sym_dstring] = ACTIONS(4832),
    [sym_wstring] = ACTIONS(4832),
    [sym_noreturn] = ACTIONS(4832),
    [sym_this] = ACTIONS(4832),
    [sym_abstract] = ACTIONS(4832),
    [sym_alias] = ACTIONS(4832),
    [sym_align] = ACTIONS(4832),
    [sym_auto] = ACTIONS(4832),
    [sym_class] = ACTIONS(4832),
    [sym_const] = ACTIONS(4832),
    [sym_debug] = ACTIONS(4832),
    [sym_deprecated] = ACTIONS(4832),
    [sym_else] = ACTIONS(4832),
    [sym_enum] = ACTIONS(4832),
    [sym_export] = ACTIONS(4832),
    [sym_extern] = ACTIONS(4832),
    [sym_final] = ACTIONS(4832),
    [sym_immutable] = ACTIONS(4832),
    [sym_import] = ACTIONS(4832),
    [sym_inout] = ACTIONS(4832),
    [sym_interface] = ACTIONS(4832),
    [sym_invariant] = ACTIONS(4832),
    [sym_mixin] = ACTIONS(4832),
    [sym_nothrow] = ACTIONS(4832),
    [sym_override] = ACTIONS(4832),
    [sym_package] = ACTIONS(4832),
    [sym_pragma] = ACTIONS(4832),
    [sym_private] = ACTIONS(4832),
    [sym_protected] = ACTIONS(4832),
    [sym_public] = ACTIONS(4832),
    [sym_pure] = ACTIONS(4832),
    [sym_ref] = ACTIONS(4832),
    [sym_return] = ACTIONS(4832),
    [sym_scope] = ACTIONS(4832),
    [sym_shared] = ACTIONS(4832),
    [sym_static] = ACTIONS(4832),
    [sym_struct] = ACTIONS(4832),
    [sym_synchronized] = ACTIONS(4832),
    [sym_template] = ACTIONS(4832),
    [sym_typeof] = ACTIONS(4832),
    [sym_union] = ACTIONS(4832),
    [sym_unittest] = ACTIONS(4832),
    [sym_version] = ACTIONS(4832),
    [sym_while] = ACTIONS(4832),
    [sym_gshared] = ACTIONS(4832),
    [sym_traits] = ACTIONS(4832),
    [sym_vector] = ACTIONS(4832),
    [sym_void] = ACTIONS(4832),
    [sym_directive] = ACTIONS(3),
  },
  [2804] = {
    [sym_identifier] = ACTIONS(6803),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6806),
    [anon_sym_DOT] = ACTIONS(6808),
    [anon_sym_LPAREN] = ACTIONS(6811),
    [anon_sym_COLON] = ACTIONS(6806),
    [anon_sym_TILDE] = ACTIONS(6806),
    [anon_sym_AT] = ACTIONS(6808),
    [sym_bool] = ACTIONS(6803),
    [sym_byte] = ACTIONS(6803),
    [sym_ubyte] = ACTIONS(6803),
    [sym_char] = ACTIONS(6803),
    [sym_short] = ACTIONS(6803),
    [sym_ushort] = ACTIONS(6803),
    [sym_int] = ACTIONS(6803),
    [sym_uint] = ACTIONS(6803),
    [sym_long] = ACTIONS(6803),
    [sym_ulong] = ACTIONS(6803),
    [sym_cent] = ACTIONS(6803),
    [sym_ucent] = ACTIONS(6803),
    [sym_wchar] = ACTIONS(6803),
    [sym_dchar] = ACTIONS(6803),
    [sym_float] = ACTIONS(6803),
    [sym_double] = ACTIONS(6803),
    [sym_real] = ACTIONS(6803),
    [sym_ifloat] = ACTIONS(6803),
    [sym_idouble] = ACTIONS(6803),
    [sym_ireal] = ACTIONS(6803),
    [sym_cfloat] = ACTIONS(6803),
    [sym_cdouble] = ACTIONS(6803),
    [sym_creal] = ACTIONS(6803),
    [sym_size_t] = ACTIONS(6803),
    [sym_ptrdiff_t] = ACTIONS(6803),
    [sym_string] = ACTIONS(6803),
    [sym_cstring] = ACTIONS(6803),
    [sym_dstring] = ACTIONS(6803),
    [sym_wstring] = ACTIONS(6803),
    [sym_noreturn] = ACTIONS(6803),
    [sym_this] = ACTIONS(6813),
    [sym_abstract] = ACTIONS(6803),
    [sym_alias] = ACTIONS(6813),
    [sym_align] = ACTIONS(6803),
    [sym_auto] = ACTIONS(6803),
    [sym_class] = ACTIONS(6813),
    [sym_const] = ACTIONS(6803),
    [sym_debug] = ACTIONS(6813),
    [sym_deprecated] = ACTIONS(6803),
    [sym_enum] = ACTIONS(6803),
    [sym_export] = ACTIONS(6813),
    [sym_extern] = ACTIONS(6803),
    [sym_final] = ACTIONS(6803),
    [sym_immutable] = ACTIONS(6803),
    [sym_import] = ACTIONS(6813),
    [sym_inout] = ACTIONS(6803),
    [sym_interface] = ACTIONS(6813),
    [sym_invariant] = ACTIONS(6813),
    [sym_mixin] = ACTIONS(6803),
    [sym_module] = ACTIONS(6813),
    [sym_nothrow] = ACTIONS(6803),
    [sym_override] = ACTIONS(6803),
    [sym_package] = ACTIONS(6813),
    [sym_pragma] = ACTIONS(6813),
    [sym_private] = ACTIONS(6813),
    [sym_protected] = ACTIONS(6813),
    [sym_public] = ACTIONS(6813),
    [sym_pure] = ACTIONS(6803),
    [sym_ref] = ACTIONS(6803),
    [sym_return] = ACTIONS(6813),
    [sym_scope] = ACTIONS(6803),
    [sym_shared] = ACTIONS(6803),
    [sym_static] = ACTIONS(6803),
    [sym_struct] = ACTIONS(6813),
    [sym_synchronized] = ACTIONS(6803),
    [sym_template] = ACTIONS(6813),
    [sym_typeof] = ACTIONS(6803),
    [sym_union] = ACTIONS(6813),
    [sym_unittest] = ACTIONS(6813),
    [sym_version] = ACTIONS(6813),
    [sym_gshared] = ACTIONS(6803),
    [sym_traits] = ACTIONS(6803),
    [sym_vector] = ACTIONS(6803),
    [sym_void] = ACTIONS(6803),
    [sym_directive] = ACTIONS(3),
  },
  [2805] = {
    [sym_identifier] = ACTIONS(4860),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4862),
    [anon_sym_DOT] = ACTIONS(4862),
    [anon_sym_SEMI] = ACTIONS(4862),
    [anon_sym_TILDE] = ACTIONS(4862),
    [anon_sym_AT] = ACTIONS(4862),
    [sym_bool] = ACTIONS(4860),
    [sym_byte] = ACTIONS(4860),
    [sym_ubyte] = ACTIONS(4860),
    [sym_char] = ACTIONS(4860),
    [sym_short] = ACTIONS(4860),
    [sym_ushort] = ACTIONS(4860),
    [sym_int] = ACTIONS(4860),
    [sym_uint] = ACTIONS(4860),
    [sym_long] = ACTIONS(4860),
    [sym_ulong] = ACTIONS(4860),
    [sym_cent] = ACTIONS(4860),
    [sym_ucent] = ACTIONS(4860),
    [sym_wchar] = ACTIONS(4860),
    [sym_dchar] = ACTIONS(4860),
    [sym_float] = ACTIONS(4860),
    [sym_double] = ACTIONS(4860),
    [sym_real] = ACTIONS(4860),
    [sym_ifloat] = ACTIONS(4860),
    [sym_idouble] = ACTIONS(4860),
    [sym_ireal] = ACTIONS(4860),
    [sym_cfloat] = ACTIONS(4860),
    [sym_cdouble] = ACTIONS(4860),
    [sym_creal] = ACTIONS(4860),
    [sym_size_t] = ACTIONS(4860),
    [sym_ptrdiff_t] = ACTIONS(4860),
    [sym_string] = ACTIONS(4860),
    [sym_cstring] = ACTIONS(4860),
    [sym_dstring] = ACTIONS(4860),
    [sym_wstring] = ACTIONS(4860),
    [sym_noreturn] = ACTIONS(4860),
    [sym_this] = ACTIONS(4860),
    [sym_abstract] = ACTIONS(4860),
    [sym_alias] = ACTIONS(4860),
    [sym_align] = ACTIONS(4860),
    [sym_auto] = ACTIONS(4860),
    [sym_class] = ACTIONS(4860),
    [sym_const] = ACTIONS(4860),
    [sym_debug] = ACTIONS(4860),
    [sym_deprecated] = ACTIONS(4860),
    [sym_else] = ACTIONS(4860),
    [sym_enum] = ACTIONS(4860),
    [sym_export] = ACTIONS(4860),
    [sym_extern] = ACTIONS(4860),
    [sym_final] = ACTIONS(4860),
    [sym_immutable] = ACTIONS(4860),
    [sym_import] = ACTIONS(4860),
    [sym_inout] = ACTIONS(4860),
    [sym_interface] = ACTIONS(4860),
    [sym_invariant] = ACTIONS(4860),
    [sym_mixin] = ACTIONS(4860),
    [sym_nothrow] = ACTIONS(4860),
    [sym_override] = ACTIONS(4860),
    [sym_package] = ACTIONS(4860),
    [sym_pragma] = ACTIONS(4860),
    [sym_private] = ACTIONS(4860),
    [sym_protected] = ACTIONS(4860),
    [sym_public] = ACTIONS(4860),
    [sym_pure] = ACTIONS(4860),
    [sym_ref] = ACTIONS(4860),
    [sym_return] = ACTIONS(4860),
    [sym_scope] = ACTIONS(4860),
    [sym_shared] = ACTIONS(4860),
    [sym_static] = ACTIONS(4860),
    [sym_struct] = ACTIONS(4860),
    [sym_synchronized] = ACTIONS(4860),
    [sym_template] = ACTIONS(4860),
    [sym_typeof] = ACTIONS(4860),
    [sym_union] = ACTIONS(4860),
    [sym_unittest] = ACTIONS(4860),
    [sym_version] = ACTIONS(4860),
    [sym_while] = ACTIONS(4860),
    [sym_gshared] = ACTIONS(4860),
    [sym_traits] = ACTIONS(4860),
    [sym_vector] = ACTIONS(4860),
    [sym_void] = ACTIONS(4860),
    [sym_directive] = ACTIONS(3),
  },
  [2806] = {
    [sym_identifier] = ACTIONS(4836),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4838),
    [anon_sym_DOT] = ACTIONS(4838),
    [anon_sym_SEMI] = ACTIONS(4838),
    [anon_sym_TILDE] = ACTIONS(4838),
    [anon_sym_AT] = ACTIONS(4838),
    [sym_bool] = ACTIONS(4836),
    [sym_byte] = ACTIONS(4836),
    [sym_ubyte] = ACTIONS(4836),
    [sym_char] = ACTIONS(4836),
    [sym_short] = ACTIONS(4836),
    [sym_ushort] = ACTIONS(4836),
    [sym_int] = ACTIONS(4836),
    [sym_uint] = ACTIONS(4836),
    [sym_long] = ACTIONS(4836),
    [sym_ulong] = ACTIONS(4836),
    [sym_cent] = ACTIONS(4836),
    [sym_ucent] = ACTIONS(4836),
    [sym_wchar] = ACTIONS(4836),
    [sym_dchar] = ACTIONS(4836),
    [sym_float] = ACTIONS(4836),
    [sym_double] = ACTIONS(4836),
    [sym_real] = ACTIONS(4836),
    [sym_ifloat] = ACTIONS(4836),
    [sym_idouble] = ACTIONS(4836),
    [sym_ireal] = ACTIONS(4836),
    [sym_cfloat] = ACTIONS(4836),
    [sym_cdouble] = ACTIONS(4836),
    [sym_creal] = ACTIONS(4836),
    [sym_size_t] = ACTIONS(4836),
    [sym_ptrdiff_t] = ACTIONS(4836),
    [sym_string] = ACTIONS(4836),
    [sym_cstring] = ACTIONS(4836),
    [sym_dstring] = ACTIONS(4836),
    [sym_wstring] = ACTIONS(4836),
    [sym_noreturn] = ACTIONS(4836),
    [sym_this] = ACTIONS(4836),
    [sym_abstract] = ACTIONS(4836),
    [sym_alias] = ACTIONS(4836),
    [sym_align] = ACTIONS(4836),
    [sym_auto] = ACTIONS(4836),
    [sym_class] = ACTIONS(4836),
    [sym_const] = ACTIONS(4836),
    [sym_debug] = ACTIONS(4836),
    [sym_deprecated] = ACTIONS(4836),
    [sym_else] = ACTIONS(4836),
    [sym_enum] = ACTIONS(4836),
    [sym_export] = ACTIONS(4836),
    [sym_extern] = ACTIONS(4836),
    [sym_final] = ACTIONS(4836),
    [sym_immutable] = ACTIONS(4836),
    [sym_import] = ACTIONS(4836),
    [sym_inout] = ACTIONS(4836),
    [sym_interface] = ACTIONS(4836),
    [sym_invariant] = ACTIONS(4836),
    [sym_mixin] = ACTIONS(4836),
    [sym_nothrow] = ACTIONS(4836),
    [sym_override] = ACTIONS(4836),
    [sym_package] = ACTIONS(4836),
    [sym_pragma] = ACTIONS(4836),
    [sym_private] = ACTIONS(4836),
    [sym_protected] = ACTIONS(4836),
    [sym_public] = ACTIONS(4836),
    [sym_pure] = ACTIONS(4836),
    [sym_ref] = ACTIONS(4836),
    [sym_return] = ACTIONS(4836),
    [sym_scope] = ACTIONS(4836),
    [sym_shared] = ACTIONS(4836),
    [sym_static] = ACTIONS(4836),
    [sym_struct] = ACTIONS(4836),
    [sym_synchronized] = ACTIONS(4836),
    [sym_template] = ACTIONS(4836),
    [sym_typeof] = ACTIONS(4836),
    [sym_union] = ACTIONS(4836),
    [sym_unittest] = ACTIONS(4836),
    [sym_version] = ACTIONS(4836),
    [sym_while] = ACTIONS(4836),
    [sym_gshared] = ACTIONS(4836),
    [sym_traits] = ACTIONS(4836),
    [sym_vector] = ACTIONS(4836),
    [sym_void] = ACTIONS(4836),
    [sym_directive] = ACTIONS(3),
  },
  [2807] = {
    [sym_identifier] = ACTIONS(4844),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4846),
    [anon_sym_DOT] = ACTIONS(4846),
    [anon_sym_SEMI] = ACTIONS(4846),
    [anon_sym_TILDE] = ACTIONS(4846),
    [anon_sym_AT] = ACTIONS(4846),
    [sym_bool] = ACTIONS(4844),
    [sym_byte] = ACTIONS(4844),
    [sym_ubyte] = ACTIONS(4844),
    [sym_char] = ACTIONS(4844),
    [sym_short] = ACTIONS(4844),
    [sym_ushort] = ACTIONS(4844),
    [sym_int] = ACTIONS(4844),
    [sym_uint] = ACTIONS(4844),
    [sym_long] = ACTIONS(4844),
    [sym_ulong] = ACTIONS(4844),
    [sym_cent] = ACTIONS(4844),
    [sym_ucent] = ACTIONS(4844),
    [sym_wchar] = ACTIONS(4844),
    [sym_dchar] = ACTIONS(4844),
    [sym_float] = ACTIONS(4844),
    [sym_double] = ACTIONS(4844),
    [sym_real] = ACTIONS(4844),
    [sym_ifloat] = ACTIONS(4844),
    [sym_idouble] = ACTIONS(4844),
    [sym_ireal] = ACTIONS(4844),
    [sym_cfloat] = ACTIONS(4844),
    [sym_cdouble] = ACTIONS(4844),
    [sym_creal] = ACTIONS(4844),
    [sym_size_t] = ACTIONS(4844),
    [sym_ptrdiff_t] = ACTIONS(4844),
    [sym_string] = ACTIONS(4844),
    [sym_cstring] = ACTIONS(4844),
    [sym_dstring] = ACTIONS(4844),
    [sym_wstring] = ACTIONS(4844),
    [sym_noreturn] = ACTIONS(4844),
    [sym_this] = ACTIONS(4844),
    [sym_abstract] = ACTIONS(4844),
    [sym_alias] = ACTIONS(4844),
    [sym_align] = ACTIONS(4844),
    [sym_auto] = ACTIONS(4844),
    [sym_class] = ACTIONS(4844),
    [sym_const] = ACTIONS(4844),
    [sym_debug] = ACTIONS(4844),
    [sym_deprecated] = ACTIONS(4844),
    [sym_else] = ACTIONS(4844),
    [sym_enum] = ACTIONS(4844),
    [sym_export] = ACTIONS(4844),
    [sym_extern] = ACTIONS(4844),
    [sym_final] = ACTIONS(4844),
    [sym_immutable] = ACTIONS(4844),
    [sym_import] = ACTIONS(4844),
    [sym_inout] = ACTIONS(4844),
    [sym_interface] = ACTIONS(4844),
    [sym_invariant] = ACTIONS(4844),
    [sym_mixin] = ACTIONS(4844),
    [sym_nothrow] = ACTIONS(4844),
    [sym_override] = ACTIONS(4844),
    [sym_package] = ACTIONS(4844),
    [sym_pragma] = ACTIONS(4844),
    [sym_private] = ACTIONS(4844),
    [sym_protected] = ACTIONS(4844),
    [sym_public] = ACTIONS(4844),
    [sym_pure] = ACTIONS(4844),
    [sym_ref] = ACTIONS(4844),
    [sym_return] = ACTIONS(4844),
    [sym_scope] = ACTIONS(4844),
    [sym_shared] = ACTIONS(4844),
    [sym_static] = ACTIONS(4844),
    [sym_struct] = ACTIONS(4844),
    [sym_synchronized] = ACTIONS(4844),
    [sym_template] = ACTIONS(4844),
    [sym_typeof] = ACTIONS(4844),
    [sym_union] = ACTIONS(4844),
    [sym_unittest] = ACTIONS(4844),
    [sym_version] = ACTIONS(4844),
    [sym_while] = ACTIONS(4844),
    [sym_gshared] = ACTIONS(4844),
    [sym_traits] = ACTIONS(4844),
    [sym_vector] = ACTIONS(4844),
    [sym_void] = ACTIONS(4844),
    [sym_directive] = ACTIONS(3),
  },
  [2808] = {
    [sym_identifier] = ACTIONS(4331),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4333),
    [anon_sym_DOT] = ACTIONS(4333),
    [anon_sym_SEMI] = ACTIONS(4333),
    [anon_sym_TILDE] = ACTIONS(4333),
    [anon_sym_AT] = ACTIONS(4333),
    [sym_bool] = ACTIONS(4331),
    [sym_byte] = ACTIONS(4331),
    [sym_ubyte] = ACTIONS(4331),
    [sym_char] = ACTIONS(4331),
    [sym_short] = ACTIONS(4331),
    [sym_ushort] = ACTIONS(4331),
    [sym_int] = ACTIONS(4331),
    [sym_uint] = ACTIONS(4331),
    [sym_long] = ACTIONS(4331),
    [sym_ulong] = ACTIONS(4331),
    [sym_cent] = ACTIONS(4331),
    [sym_ucent] = ACTIONS(4331),
    [sym_wchar] = ACTIONS(4331),
    [sym_dchar] = ACTIONS(4331),
    [sym_float] = ACTIONS(4331),
    [sym_double] = ACTIONS(4331),
    [sym_real] = ACTIONS(4331),
    [sym_ifloat] = ACTIONS(4331),
    [sym_idouble] = ACTIONS(4331),
    [sym_ireal] = ACTIONS(4331),
    [sym_cfloat] = ACTIONS(4331),
    [sym_cdouble] = ACTIONS(4331),
    [sym_creal] = ACTIONS(4331),
    [sym_size_t] = ACTIONS(4331),
    [sym_ptrdiff_t] = ACTIONS(4331),
    [sym_string] = ACTIONS(4331),
    [sym_cstring] = ACTIONS(4331),
    [sym_dstring] = ACTIONS(4331),
    [sym_wstring] = ACTIONS(4331),
    [sym_noreturn] = ACTIONS(4331),
    [sym_this] = ACTIONS(4331),
    [sym_abstract] = ACTIONS(4331),
    [sym_alias] = ACTIONS(4331),
    [sym_align] = ACTIONS(4331),
    [sym_auto] = ACTIONS(4331),
    [sym_class] = ACTIONS(4331),
    [sym_const] = ACTIONS(4331),
    [sym_debug] = ACTIONS(4331),
    [sym_deprecated] = ACTIONS(4331),
    [sym_else] = ACTIONS(4331),
    [sym_enum] = ACTIONS(4331),
    [sym_export] = ACTIONS(4331),
    [sym_extern] = ACTIONS(4331),
    [sym_final] = ACTIONS(4331),
    [sym_immutable] = ACTIONS(4331),
    [sym_import] = ACTIONS(4331),
    [sym_inout] = ACTIONS(4331),
    [sym_interface] = ACTIONS(4331),
    [sym_invariant] = ACTIONS(4331),
    [sym_mixin] = ACTIONS(4331),
    [sym_nothrow] = ACTIONS(4331),
    [sym_override] = ACTIONS(4331),
    [sym_package] = ACTIONS(4331),
    [sym_pragma] = ACTIONS(4331),
    [sym_private] = ACTIONS(4331),
    [sym_protected] = ACTIONS(4331),
    [sym_public] = ACTIONS(4331),
    [sym_pure] = ACTIONS(4331),
    [sym_ref] = ACTIONS(4331),
    [sym_return] = ACTIONS(4331),
    [sym_scope] = ACTIONS(4331),
    [sym_shared] = ACTIONS(4331),
    [sym_static] = ACTIONS(4331),
    [sym_struct] = ACTIONS(4331),
    [sym_synchronized] = ACTIONS(4331),
    [sym_template] = ACTIONS(4331),
    [sym_typeof] = ACTIONS(4331),
    [sym_union] = ACTIONS(4331),
    [sym_unittest] = ACTIONS(4331),
    [sym_version] = ACTIONS(4331),
    [sym_while] = ACTIONS(4331),
    [sym_gshared] = ACTIONS(4331),
    [sym_traits] = ACTIONS(4331),
    [sym_vector] = ACTIONS(4331),
    [sym_void] = ACTIONS(4331),
    [sym_directive] = ACTIONS(3),
  },
  [2809] = {
    [sym_identifier] = ACTIONS(4550),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4552),
    [anon_sym_DOT] = ACTIONS(4552),
    [anon_sym_SEMI] = ACTIONS(4552),
    [anon_sym_TILDE] = ACTIONS(4552),
    [anon_sym_AT] = ACTIONS(4552),
    [sym_bool] = ACTIONS(4550),
    [sym_byte] = ACTIONS(4550),
    [sym_ubyte] = ACTIONS(4550),
    [sym_char] = ACTIONS(4550),
    [sym_short] = ACTIONS(4550),
    [sym_ushort] = ACTIONS(4550),
    [sym_int] = ACTIONS(4550),
    [sym_uint] = ACTIONS(4550),
    [sym_long] = ACTIONS(4550),
    [sym_ulong] = ACTIONS(4550),
    [sym_cent] = ACTIONS(4550),
    [sym_ucent] = ACTIONS(4550),
    [sym_wchar] = ACTIONS(4550),
    [sym_dchar] = ACTIONS(4550),
    [sym_float] = ACTIONS(4550),
    [sym_double] = ACTIONS(4550),
    [sym_real] = ACTIONS(4550),
    [sym_ifloat] = ACTIONS(4550),
    [sym_idouble] = ACTIONS(4550),
    [sym_ireal] = ACTIONS(4550),
    [sym_cfloat] = ACTIONS(4550),
    [sym_cdouble] = ACTIONS(4550),
    [sym_creal] = ACTIONS(4550),
    [sym_size_t] = ACTIONS(4550),
    [sym_ptrdiff_t] = ACTIONS(4550),
    [sym_string] = ACTIONS(4550),
    [sym_cstring] = ACTIONS(4550),
    [sym_dstring] = ACTIONS(4550),
    [sym_wstring] = ACTIONS(4550),
    [sym_noreturn] = ACTIONS(4550),
    [sym_this] = ACTIONS(4550),
    [sym_abstract] = ACTIONS(4550),
    [sym_alias] = ACTIONS(4550),
    [sym_align] = ACTIONS(4550),
    [sym_auto] = ACTIONS(4550),
    [sym_class] = ACTIONS(4550),
    [sym_const] = ACTIONS(4550),
    [sym_debug] = ACTIONS(4550),
    [sym_deprecated] = ACTIONS(4550),
    [sym_else] = ACTIONS(4550),
    [sym_enum] = ACTIONS(4550),
    [sym_export] = ACTIONS(4550),
    [sym_extern] = ACTIONS(4550),
    [sym_final] = ACTIONS(4550),
    [sym_immutable] = ACTIONS(4550),
    [sym_import] = ACTIONS(4550),
    [sym_inout] = ACTIONS(4550),
    [sym_interface] = ACTIONS(4550),
    [sym_invariant] = ACTIONS(4550),
    [sym_mixin] = ACTIONS(4550),
    [sym_nothrow] = ACTIONS(4550),
    [sym_override] = ACTIONS(4550),
    [sym_package] = ACTIONS(4550),
    [sym_pragma] = ACTIONS(4550),
    [sym_private] = ACTIONS(4550),
    [sym_protected] = ACTIONS(4550),
    [sym_public] = ACTIONS(4550),
    [sym_pure] = ACTIONS(4550),
    [sym_ref] = ACTIONS(4550),
    [sym_return] = ACTIONS(4550),
    [sym_scope] = ACTIONS(4550),
    [sym_shared] = ACTIONS(4550),
    [sym_static] = ACTIONS(4550),
    [sym_struct] = ACTIONS(4550),
    [sym_synchronized] = ACTIONS(4550),
    [sym_template] = ACTIONS(4550),
    [sym_typeof] = ACTIONS(4550),
    [sym_union] = ACTIONS(4550),
    [sym_unittest] = ACTIONS(4550),
    [sym_version] = ACTIONS(4550),
    [sym_while] = ACTIONS(4550),
    [sym_gshared] = ACTIONS(4550),
    [sym_traits] = ACTIONS(4550),
    [sym_vector] = ACTIONS(4550),
    [sym_void] = ACTIONS(4550),
    [sym_directive] = ACTIONS(3),
  },
  [2810] = {
    [sym_identifier] = ACTIONS(4317),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4319),
    [anon_sym_DOT] = ACTIONS(4319),
    [anon_sym_SEMI] = ACTIONS(4319),
    [anon_sym_TILDE] = ACTIONS(4319),
    [anon_sym_AT] = ACTIONS(4319),
    [sym_bool] = ACTIONS(4317),
    [sym_byte] = ACTIONS(4317),
    [sym_ubyte] = ACTIONS(4317),
    [sym_char] = ACTIONS(4317),
    [sym_short] = ACTIONS(4317),
    [sym_ushort] = ACTIONS(4317),
    [sym_int] = ACTIONS(4317),
    [sym_uint] = ACTIONS(4317),
    [sym_long] = ACTIONS(4317),
    [sym_ulong] = ACTIONS(4317),
    [sym_cent] = ACTIONS(4317),
    [sym_ucent] = ACTIONS(4317),
    [sym_wchar] = ACTIONS(4317),
    [sym_dchar] = ACTIONS(4317),
    [sym_float] = ACTIONS(4317),
    [sym_double] = ACTIONS(4317),
    [sym_real] = ACTIONS(4317),
    [sym_ifloat] = ACTIONS(4317),
    [sym_idouble] = ACTIONS(4317),
    [sym_ireal] = ACTIONS(4317),
    [sym_cfloat] = ACTIONS(4317),
    [sym_cdouble] = ACTIONS(4317),
    [sym_creal] = ACTIONS(4317),
    [sym_size_t] = ACTIONS(4317),
    [sym_ptrdiff_t] = ACTIONS(4317),
    [sym_string] = ACTIONS(4317),
    [sym_cstring] = ACTIONS(4317),
    [sym_dstring] = ACTIONS(4317),
    [sym_wstring] = ACTIONS(4317),
    [sym_noreturn] = ACTIONS(4317),
    [sym_this] = ACTIONS(4317),
    [sym_abstract] = ACTIONS(4317),
    [sym_alias] = ACTIONS(4317),
    [sym_align] = ACTIONS(4317),
    [sym_auto] = ACTIONS(4317),
    [sym_class] = ACTIONS(4317),
    [sym_const] = ACTIONS(4317),
    [sym_debug] = ACTIONS(4317),
    [sym_deprecated] = ACTIONS(4317),
    [sym_else] = ACTIONS(4317),
    [sym_enum] = ACTIONS(4317),
    [sym_export] = ACTIONS(4317),
    [sym_extern] = ACTIONS(4317),
    [sym_final] = ACTIONS(4317),
    [sym_immutable] = ACTIONS(4317),
    [sym_import] = ACTIONS(4317),
    [sym_inout] = ACTIONS(4317),
    [sym_interface] = ACTIONS(4317),
    [sym_invariant] = ACTIONS(4317),
    [sym_mixin] = ACTIONS(4317),
    [sym_nothrow] = ACTIONS(4317),
    [sym_override] = ACTIONS(4317),
    [sym_package] = ACTIONS(4317),
    [sym_pragma] = ACTIONS(4317),
    [sym_private] = ACTIONS(4317),
    [sym_protected] = ACTIONS(4317),
    [sym_public] = ACTIONS(4317),
    [sym_pure] = ACTIONS(4317),
    [sym_ref] = ACTIONS(4317),
    [sym_return] = ACTIONS(4317),
    [sym_scope] = ACTIONS(4317),
    [sym_shared] = ACTIONS(4317),
    [sym_static] = ACTIONS(4317),
    [sym_struct] = ACTIONS(4317),
    [sym_synchronized] = ACTIONS(4317),
    [sym_template] = ACTIONS(4317),
    [sym_typeof] = ACTIONS(4317),
    [sym_union] = ACTIONS(4317),
    [sym_unittest] = ACTIONS(4317),
    [sym_version] = ACTIONS(4317),
    [sym_while] = ACTIONS(4317),
    [sym_gshared] = ACTIONS(4317),
    [sym_traits] = ACTIONS(4317),
    [sym_vector] = ACTIONS(4317),
    [sym_void] = ACTIONS(4317),
    [sym_directive] = ACTIONS(3),
  },
  [2811] = {
    [sym_identifier] = ACTIONS(4301),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4303),
    [anon_sym_DOT] = ACTIONS(4303),
    [anon_sym_SEMI] = ACTIONS(4303),
    [anon_sym_TILDE] = ACTIONS(4303),
    [anon_sym_AT] = ACTIONS(4303),
    [sym_bool] = ACTIONS(4301),
    [sym_byte] = ACTIONS(4301),
    [sym_ubyte] = ACTIONS(4301),
    [sym_char] = ACTIONS(4301),
    [sym_short] = ACTIONS(4301),
    [sym_ushort] = ACTIONS(4301),
    [sym_int] = ACTIONS(4301),
    [sym_uint] = ACTIONS(4301),
    [sym_long] = ACTIONS(4301),
    [sym_ulong] = ACTIONS(4301),
    [sym_cent] = ACTIONS(4301),
    [sym_ucent] = ACTIONS(4301),
    [sym_wchar] = ACTIONS(4301),
    [sym_dchar] = ACTIONS(4301),
    [sym_float] = ACTIONS(4301),
    [sym_double] = ACTIONS(4301),
    [sym_real] = ACTIONS(4301),
    [sym_ifloat] = ACTIONS(4301),
    [sym_idouble] = ACTIONS(4301),
    [sym_ireal] = ACTIONS(4301),
    [sym_cfloat] = ACTIONS(4301),
    [sym_cdouble] = ACTIONS(4301),
    [sym_creal] = ACTIONS(4301),
    [sym_size_t] = ACTIONS(4301),
    [sym_ptrdiff_t] = ACTIONS(4301),
    [sym_string] = ACTIONS(4301),
    [sym_cstring] = ACTIONS(4301),
    [sym_dstring] = ACTIONS(4301),
    [sym_wstring] = ACTIONS(4301),
    [sym_noreturn] = ACTIONS(4301),
    [sym_this] = ACTIONS(4301),
    [sym_abstract] = ACTIONS(4301),
    [sym_alias] = ACTIONS(4301),
    [sym_align] = ACTIONS(4301),
    [sym_auto] = ACTIONS(4301),
    [sym_class] = ACTIONS(4301),
    [sym_const] = ACTIONS(4301),
    [sym_debug] = ACTIONS(4301),
    [sym_deprecated] = ACTIONS(4301),
    [sym_else] = ACTIONS(4301),
    [sym_enum] = ACTIONS(4301),
    [sym_export] = ACTIONS(4301),
    [sym_extern] = ACTIONS(4301),
    [sym_final] = ACTIONS(4301),
    [sym_immutable] = ACTIONS(4301),
    [sym_import] = ACTIONS(4301),
    [sym_inout] = ACTIONS(4301),
    [sym_interface] = ACTIONS(4301),
    [sym_invariant] = ACTIONS(4301),
    [sym_mixin] = ACTIONS(4301),
    [sym_nothrow] = ACTIONS(4301),
    [sym_override] = ACTIONS(4301),
    [sym_package] = ACTIONS(4301),
    [sym_pragma] = ACTIONS(4301),
    [sym_private] = ACTIONS(4301),
    [sym_protected] = ACTIONS(4301),
    [sym_public] = ACTIONS(4301),
    [sym_pure] = ACTIONS(4301),
    [sym_ref] = ACTIONS(4301),
    [sym_return] = ACTIONS(4301),
    [sym_scope] = ACTIONS(4301),
    [sym_shared] = ACTIONS(4301),
    [sym_static] = ACTIONS(4301),
    [sym_struct] = ACTIONS(4301),
    [sym_synchronized] = ACTIONS(4301),
    [sym_template] = ACTIONS(4301),
    [sym_typeof] = ACTIONS(4301),
    [sym_union] = ACTIONS(4301),
    [sym_unittest] = ACTIONS(4301),
    [sym_version] = ACTIONS(4301),
    [sym_while] = ACTIONS(4301),
    [sym_gshared] = ACTIONS(4301),
    [sym_traits] = ACTIONS(4301),
    [sym_vector] = ACTIONS(4301),
    [sym_void] = ACTIONS(4301),
    [sym_directive] = ACTIONS(3),
  },
  [2812] = {
    [sym_identifier] = ACTIONS(5056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5058),
    [anon_sym_DOT] = ACTIONS(5058),
    [anon_sym_SEMI] = ACTIONS(5058),
    [anon_sym_TILDE] = ACTIONS(5058),
    [anon_sym_AT] = ACTIONS(5058),
    [sym_bool] = ACTIONS(5056),
    [sym_byte] = ACTIONS(5056),
    [sym_ubyte] = ACTIONS(5056),
    [sym_char] = ACTIONS(5056),
    [sym_short] = ACTIONS(5056),
    [sym_ushort] = ACTIONS(5056),
    [sym_int] = ACTIONS(5056),
    [sym_uint] = ACTIONS(5056),
    [sym_long] = ACTIONS(5056),
    [sym_ulong] = ACTIONS(5056),
    [sym_cent] = ACTIONS(5056),
    [sym_ucent] = ACTIONS(5056),
    [sym_wchar] = ACTIONS(5056),
    [sym_dchar] = ACTIONS(5056),
    [sym_float] = ACTIONS(5056),
    [sym_double] = ACTIONS(5056),
    [sym_real] = ACTIONS(5056),
    [sym_ifloat] = ACTIONS(5056),
    [sym_idouble] = ACTIONS(5056),
    [sym_ireal] = ACTIONS(5056),
    [sym_cfloat] = ACTIONS(5056),
    [sym_cdouble] = ACTIONS(5056),
    [sym_creal] = ACTIONS(5056),
    [sym_size_t] = ACTIONS(5056),
    [sym_ptrdiff_t] = ACTIONS(5056),
    [sym_string] = ACTIONS(5056),
    [sym_cstring] = ACTIONS(5056),
    [sym_dstring] = ACTIONS(5056),
    [sym_wstring] = ACTIONS(5056),
    [sym_noreturn] = ACTIONS(5056),
    [sym_this] = ACTIONS(5056),
    [sym_abstract] = ACTIONS(5056),
    [sym_alias] = ACTIONS(5056),
    [sym_align] = ACTIONS(5056),
    [sym_auto] = ACTIONS(5056),
    [sym_class] = ACTIONS(5056),
    [sym_const] = ACTIONS(5056),
    [sym_debug] = ACTIONS(5056),
    [sym_deprecated] = ACTIONS(5056),
    [sym_else] = ACTIONS(5056),
    [sym_enum] = ACTIONS(5056),
    [sym_export] = ACTIONS(5056),
    [sym_extern] = ACTIONS(5056),
    [sym_final] = ACTIONS(5056),
    [sym_immutable] = ACTIONS(5056),
    [sym_import] = ACTIONS(5056),
    [sym_inout] = ACTIONS(5056),
    [sym_interface] = ACTIONS(5056),
    [sym_invariant] = ACTIONS(5056),
    [sym_mixin] = ACTIONS(5056),
    [sym_nothrow] = ACTIONS(5056),
    [sym_override] = ACTIONS(5056),
    [sym_package] = ACTIONS(5056),
    [sym_pragma] = ACTIONS(5056),
    [sym_private] = ACTIONS(5056),
    [sym_protected] = ACTIONS(5056),
    [sym_public] = ACTIONS(5056),
    [sym_pure] = ACTIONS(5056),
    [sym_ref] = ACTIONS(5056),
    [sym_return] = ACTIONS(5056),
    [sym_scope] = ACTIONS(5056),
    [sym_shared] = ACTIONS(5056),
    [sym_static] = ACTIONS(5056),
    [sym_struct] = ACTIONS(5056),
    [sym_synchronized] = ACTIONS(5056),
    [sym_template] = ACTIONS(5056),
    [sym_typeof] = ACTIONS(5056),
    [sym_union] = ACTIONS(5056),
    [sym_unittest] = ACTIONS(5056),
    [sym_version] = ACTIONS(5056),
    [sym_while] = ACTIONS(5056),
    [sym_gshared] = ACTIONS(5056),
    [sym_traits] = ACTIONS(5056),
    [sym_vector] = ACTIONS(5056),
    [sym_void] = ACTIONS(5056),
    [sym_directive] = ACTIONS(3),
  },
  [2813] = {
    [sym_identifier] = ACTIONS(4708),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4710),
    [anon_sym_DOT] = ACTIONS(4710),
    [anon_sym_SEMI] = ACTIONS(4710),
    [anon_sym_TILDE] = ACTIONS(4710),
    [anon_sym_AT] = ACTIONS(4710),
    [sym_bool] = ACTIONS(4708),
    [sym_byte] = ACTIONS(4708),
    [sym_ubyte] = ACTIONS(4708),
    [sym_char] = ACTIONS(4708),
    [sym_short] = ACTIONS(4708),
    [sym_ushort] = ACTIONS(4708),
    [sym_int] = ACTIONS(4708),
    [sym_uint] = ACTIONS(4708),
    [sym_long] = ACTIONS(4708),
    [sym_ulong] = ACTIONS(4708),
    [sym_cent] = ACTIONS(4708),
    [sym_ucent] = ACTIONS(4708),
    [sym_wchar] = ACTIONS(4708),
    [sym_dchar] = ACTIONS(4708),
    [sym_float] = ACTIONS(4708),
    [sym_double] = ACTIONS(4708),
    [sym_real] = ACTIONS(4708),
    [sym_ifloat] = ACTIONS(4708),
    [sym_idouble] = ACTIONS(4708),
    [sym_ireal] = ACTIONS(4708),
    [sym_cfloat] = ACTIONS(4708),
    [sym_cdouble] = ACTIONS(4708),
    [sym_creal] = ACTIONS(4708),
    [sym_size_t] = ACTIONS(4708),
    [sym_ptrdiff_t] = ACTIONS(4708),
    [sym_string] = ACTIONS(4708),
    [sym_cstring] = ACTIONS(4708),
    [sym_dstring] = ACTIONS(4708),
    [sym_wstring] = ACTIONS(4708),
    [sym_noreturn] = ACTIONS(4708),
    [sym_this] = ACTIONS(4708),
    [sym_abstract] = ACTIONS(4708),
    [sym_alias] = ACTIONS(4708),
    [sym_align] = ACTIONS(4708),
    [sym_auto] = ACTIONS(4708),
    [sym_class] = ACTIONS(4708),
    [sym_const] = ACTIONS(4708),
    [sym_debug] = ACTIONS(4708),
    [sym_deprecated] = ACTIONS(4708),
    [sym_else] = ACTIONS(4708),
    [sym_enum] = ACTIONS(4708),
    [sym_export] = ACTIONS(4708),
    [sym_extern] = ACTIONS(4708),
    [sym_final] = ACTIONS(4708),
    [sym_immutable] = ACTIONS(4708),
    [sym_import] = ACTIONS(4708),
    [sym_inout] = ACTIONS(4708),
    [sym_interface] = ACTIONS(4708),
    [sym_invariant] = ACTIONS(4708),
    [sym_mixin] = ACTIONS(4708),
    [sym_nothrow] = ACTIONS(4708),
    [sym_override] = ACTIONS(4708),
    [sym_package] = ACTIONS(4708),
    [sym_pragma] = ACTIONS(4708),
    [sym_private] = ACTIONS(4708),
    [sym_protected] = ACTIONS(4708),
    [sym_public] = ACTIONS(4708),
    [sym_pure] = ACTIONS(4708),
    [sym_ref] = ACTIONS(4708),
    [sym_return] = ACTIONS(4708),
    [sym_scope] = ACTIONS(4708),
    [sym_shared] = ACTIONS(4708),
    [sym_static] = ACTIONS(4708),
    [sym_struct] = ACTIONS(4708),
    [sym_synchronized] = ACTIONS(4708),
    [sym_template] = ACTIONS(4708),
    [sym_typeof] = ACTIONS(4708),
    [sym_union] = ACTIONS(4708),
    [sym_unittest] = ACTIONS(4708),
    [sym_version] = ACTIONS(4708),
    [sym_while] = ACTIONS(4708),
    [sym_gshared] = ACTIONS(4708),
    [sym_traits] = ACTIONS(4708),
    [sym_vector] = ACTIONS(4708),
    [sym_void] = ACTIONS(4708),
    [sym_directive] = ACTIONS(3),
  },
  [2814] = {
    [sym_identifier] = ACTIONS(5044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5046),
    [anon_sym_DOT] = ACTIONS(5046),
    [anon_sym_SEMI] = ACTIONS(5046),
    [anon_sym_TILDE] = ACTIONS(5046),
    [anon_sym_AT] = ACTIONS(5046),
    [sym_bool] = ACTIONS(5044),
    [sym_byte] = ACTIONS(5044),
    [sym_ubyte] = ACTIONS(5044),
    [sym_char] = ACTIONS(5044),
    [sym_short] = ACTIONS(5044),
    [sym_ushort] = ACTIONS(5044),
    [sym_int] = ACTIONS(5044),
    [sym_uint] = ACTIONS(5044),
    [sym_long] = ACTIONS(5044),
    [sym_ulong] = ACTIONS(5044),
    [sym_cent] = ACTIONS(5044),
    [sym_ucent] = ACTIONS(5044),
    [sym_wchar] = ACTIONS(5044),
    [sym_dchar] = ACTIONS(5044),
    [sym_float] = ACTIONS(5044),
    [sym_double] = ACTIONS(5044),
    [sym_real] = ACTIONS(5044),
    [sym_ifloat] = ACTIONS(5044),
    [sym_idouble] = ACTIONS(5044),
    [sym_ireal] = ACTIONS(5044),
    [sym_cfloat] = ACTIONS(5044),
    [sym_cdouble] = ACTIONS(5044),
    [sym_creal] = ACTIONS(5044),
    [sym_size_t] = ACTIONS(5044),
    [sym_ptrdiff_t] = ACTIONS(5044),
    [sym_string] = ACTIONS(5044),
    [sym_cstring] = ACTIONS(5044),
    [sym_dstring] = ACTIONS(5044),
    [sym_wstring] = ACTIONS(5044),
    [sym_noreturn] = ACTIONS(5044),
    [sym_this] = ACTIONS(5044),
    [sym_abstract] = ACTIONS(5044),
    [sym_alias] = ACTIONS(5044),
    [sym_align] = ACTIONS(5044),
    [sym_auto] = ACTIONS(5044),
    [sym_class] = ACTIONS(5044),
    [sym_const] = ACTIONS(5044),
    [sym_debug] = ACTIONS(5044),
    [sym_deprecated] = ACTIONS(5044),
    [sym_else] = ACTIONS(5044),
    [sym_enum] = ACTIONS(5044),
    [sym_export] = ACTIONS(5044),
    [sym_extern] = ACTIONS(5044),
    [sym_final] = ACTIONS(5044),
    [sym_immutable] = ACTIONS(5044),
    [sym_import] = ACTIONS(5044),
    [sym_inout] = ACTIONS(5044),
    [sym_interface] = ACTIONS(5044),
    [sym_invariant] = ACTIONS(5044),
    [sym_mixin] = ACTIONS(5044),
    [sym_nothrow] = ACTIONS(5044),
    [sym_override] = ACTIONS(5044),
    [sym_package] = ACTIONS(5044),
    [sym_pragma] = ACTIONS(5044),
    [sym_private] = ACTIONS(5044),
    [sym_protected] = ACTIONS(5044),
    [sym_public] = ACTIONS(5044),
    [sym_pure] = ACTIONS(5044),
    [sym_ref] = ACTIONS(5044),
    [sym_return] = ACTIONS(5044),
    [sym_scope] = ACTIONS(5044),
    [sym_shared] = ACTIONS(5044),
    [sym_static] = ACTIONS(5044),
    [sym_struct] = ACTIONS(5044),
    [sym_synchronized] = ACTIONS(5044),
    [sym_template] = ACTIONS(5044),
    [sym_typeof] = ACTIONS(5044),
    [sym_union] = ACTIONS(5044),
    [sym_unittest] = ACTIONS(5044),
    [sym_version] = ACTIONS(5044),
    [sym_while] = ACTIONS(5044),
    [sym_gshared] = ACTIONS(5044),
    [sym_traits] = ACTIONS(5044),
    [sym_vector] = ACTIONS(5044),
    [sym_void] = ACTIONS(5044),
    [sym_directive] = ACTIONS(3),
  },
  [2815] = {
    [ts_builtin_sym_end] = ACTIONS(2782),
    [sym_identifier] = ACTIONS(2784),
    [sym_end_file] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2782),
    [anon_sym_AT] = ACTIONS(2782),
    [sym_bool] = ACTIONS(2784),
    [sym_byte] = ACTIONS(2784),
    [sym_ubyte] = ACTIONS(2784),
    [sym_char] = ACTIONS(2784),
    [sym_short] = ACTIONS(2784),
    [sym_ushort] = ACTIONS(2784),
    [sym_int] = ACTIONS(2784),
    [sym_uint] = ACTIONS(2784),
    [sym_long] = ACTIONS(2784),
    [sym_ulong] = ACTIONS(2784),
    [sym_cent] = ACTIONS(2784),
    [sym_ucent] = ACTIONS(2784),
    [sym_wchar] = ACTIONS(2784),
    [sym_dchar] = ACTIONS(2784),
    [sym_float] = ACTIONS(2784),
    [sym_double] = ACTIONS(2784),
    [sym_real] = ACTIONS(2784),
    [sym_ifloat] = ACTIONS(2784),
    [sym_idouble] = ACTIONS(2784),
    [sym_ireal] = ACTIONS(2784),
    [sym_cfloat] = ACTIONS(2784),
    [sym_cdouble] = ACTIONS(2784),
    [sym_creal] = ACTIONS(2784),
    [sym_size_t] = ACTIONS(2784),
    [sym_ptrdiff_t] = ACTIONS(2784),
    [sym_string] = ACTIONS(2784),
    [sym_cstring] = ACTIONS(2784),
    [sym_dstring] = ACTIONS(2784),
    [sym_wstring] = ACTIONS(2784),
    [sym_noreturn] = ACTIONS(2784),
    [sym_this] = ACTIONS(2784),
    [sym_abstract] = ACTIONS(2784),
    [sym_alias] = ACTIONS(2784),
    [sym_align] = ACTIONS(2784),
    [sym_auto] = ACTIONS(2784),
    [sym_class] = ACTIONS(2784),
    [sym_const] = ACTIONS(2784),
    [sym_debug] = ACTIONS(2784),
    [sym_deprecated] = ACTIONS(2784),
    [sym_else] = ACTIONS(6815),
    [sym_enum] = ACTIONS(2784),
    [sym_export] = ACTIONS(2784),
    [sym_extern] = ACTIONS(2784),
    [sym_final] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(2784),
    [sym_import] = ACTIONS(2784),
    [sym_inout] = ACTIONS(2784),
    [sym_interface] = ACTIONS(2784),
    [sym_invariant] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2784),
    [sym_nothrow] = ACTIONS(2784),
    [sym_override] = ACTIONS(2784),
    [sym_package] = ACTIONS(2784),
    [sym_pragma] = ACTIONS(2784),
    [sym_private] = ACTIONS(2784),
    [sym_protected] = ACTIONS(2784),
    [sym_public] = ACTIONS(2784),
    [sym_pure] = ACTIONS(2784),
    [sym_ref] = ACTIONS(2784),
    [sym_return] = ACTIONS(2784),
    [sym_scope] = ACTIONS(2784),
    [sym_shared] = ACTIONS(2784),
    [sym_static] = ACTIONS(2784),
    [sym_struct] = ACTIONS(2784),
    [sym_synchronized] = ACTIONS(2784),
    [sym_template] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(2784),
    [sym_union] = ACTIONS(2784),
    [sym_unittest] = ACTIONS(2784),
    [sym_version] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(2784),
    [sym_traits] = ACTIONS(2784),
    [sym_vector] = ACTIONS(2784),
    [sym_void] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
  },
  [2816] = {
    [sym_identifier] = ACTIONS(4864),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4866),
    [anon_sym_DOT] = ACTIONS(4866),
    [anon_sym_SEMI] = ACTIONS(4866),
    [anon_sym_TILDE] = ACTIONS(4866),
    [anon_sym_AT] = ACTIONS(4866),
    [sym_bool] = ACTIONS(4864),
    [sym_byte] = ACTIONS(4864),
    [sym_ubyte] = ACTIONS(4864),
    [sym_char] = ACTIONS(4864),
    [sym_short] = ACTIONS(4864),
    [sym_ushort] = ACTIONS(4864),
    [sym_int] = ACTIONS(4864),
    [sym_uint] = ACTIONS(4864),
    [sym_long] = ACTIONS(4864),
    [sym_ulong] = ACTIONS(4864),
    [sym_cent] = ACTIONS(4864),
    [sym_ucent] = ACTIONS(4864),
    [sym_wchar] = ACTIONS(4864),
    [sym_dchar] = ACTIONS(4864),
    [sym_float] = ACTIONS(4864),
    [sym_double] = ACTIONS(4864),
    [sym_real] = ACTIONS(4864),
    [sym_ifloat] = ACTIONS(4864),
    [sym_idouble] = ACTIONS(4864),
    [sym_ireal] = ACTIONS(4864),
    [sym_cfloat] = ACTIONS(4864),
    [sym_cdouble] = ACTIONS(4864),
    [sym_creal] = ACTIONS(4864),
    [sym_size_t] = ACTIONS(4864),
    [sym_ptrdiff_t] = ACTIONS(4864),
    [sym_string] = ACTIONS(4864),
    [sym_cstring] = ACTIONS(4864),
    [sym_dstring] = ACTIONS(4864),
    [sym_wstring] = ACTIONS(4864),
    [sym_noreturn] = ACTIONS(4864),
    [sym_this] = ACTIONS(4864),
    [sym_abstract] = ACTIONS(4864),
    [sym_alias] = ACTIONS(4864),
    [sym_align] = ACTIONS(4864),
    [sym_auto] = ACTIONS(4864),
    [sym_class] = ACTIONS(4864),
    [sym_const] = ACTIONS(4864),
    [sym_debug] = ACTIONS(4864),
    [sym_deprecated] = ACTIONS(4864),
    [sym_else] = ACTIONS(4864),
    [sym_enum] = ACTIONS(4864),
    [sym_export] = ACTIONS(4864),
    [sym_extern] = ACTIONS(4864),
    [sym_final] = ACTIONS(4864),
    [sym_immutable] = ACTIONS(4864),
    [sym_import] = ACTIONS(4864),
    [sym_inout] = ACTIONS(4864),
    [sym_interface] = ACTIONS(4864),
    [sym_invariant] = ACTIONS(4864),
    [sym_mixin] = ACTIONS(4864),
    [sym_nothrow] = ACTIONS(4864),
    [sym_override] = ACTIONS(4864),
    [sym_package] = ACTIONS(4864),
    [sym_pragma] = ACTIONS(4864),
    [sym_private] = ACTIONS(4864),
    [sym_protected] = ACTIONS(4864),
    [sym_public] = ACTIONS(4864),
    [sym_pure] = ACTIONS(4864),
    [sym_ref] = ACTIONS(4864),
    [sym_return] = ACTIONS(4864),
    [sym_scope] = ACTIONS(4864),
    [sym_shared] = ACTIONS(4864),
    [sym_static] = ACTIONS(4864),
    [sym_struct] = ACTIONS(4864),
    [sym_synchronized] = ACTIONS(4864),
    [sym_template] = ACTIONS(4864),
    [sym_typeof] = ACTIONS(4864),
    [sym_union] = ACTIONS(4864),
    [sym_unittest] = ACTIONS(4864),
    [sym_version] = ACTIONS(4864),
    [sym_while] = ACTIONS(4864),
    [sym_gshared] = ACTIONS(4864),
    [sym_traits] = ACTIONS(4864),
    [sym_vector] = ACTIONS(4864),
    [sym_void] = ACTIONS(4864),
    [sym_directive] = ACTIONS(3),
  },
  [2817] = {
    [sym_identifier] = ACTIONS(4868),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4870),
    [anon_sym_DOT] = ACTIONS(4870),
    [anon_sym_SEMI] = ACTIONS(4870),
    [anon_sym_TILDE] = ACTIONS(4870),
    [anon_sym_AT] = ACTIONS(4870),
    [sym_bool] = ACTIONS(4868),
    [sym_byte] = ACTIONS(4868),
    [sym_ubyte] = ACTIONS(4868),
    [sym_char] = ACTIONS(4868),
    [sym_short] = ACTIONS(4868),
    [sym_ushort] = ACTIONS(4868),
    [sym_int] = ACTIONS(4868),
    [sym_uint] = ACTIONS(4868),
    [sym_long] = ACTIONS(4868),
    [sym_ulong] = ACTIONS(4868),
    [sym_cent] = ACTIONS(4868),
    [sym_ucent] = ACTIONS(4868),
    [sym_wchar] = ACTIONS(4868),
    [sym_dchar] = ACTIONS(4868),
    [sym_float] = ACTIONS(4868),
    [sym_double] = ACTIONS(4868),
    [sym_real] = ACTIONS(4868),
    [sym_ifloat] = ACTIONS(4868),
    [sym_idouble] = ACTIONS(4868),
    [sym_ireal] = ACTIONS(4868),
    [sym_cfloat] = ACTIONS(4868),
    [sym_cdouble] = ACTIONS(4868),
    [sym_creal] = ACTIONS(4868),
    [sym_size_t] = ACTIONS(4868),
    [sym_ptrdiff_t] = ACTIONS(4868),
    [sym_string] = ACTIONS(4868),
    [sym_cstring] = ACTIONS(4868),
    [sym_dstring] = ACTIONS(4868),
    [sym_wstring] = ACTIONS(4868),
    [sym_noreturn] = ACTIONS(4868),
    [sym_this] = ACTIONS(4868),
    [sym_abstract] = ACTIONS(4868),
    [sym_alias] = ACTIONS(4868),
    [sym_align] = ACTIONS(4868),
    [sym_auto] = ACTIONS(4868),
    [sym_class] = ACTIONS(4868),
    [sym_const] = ACTIONS(4868),
    [sym_debug] = ACTIONS(4868),
    [sym_deprecated] = ACTIONS(4868),
    [sym_else] = ACTIONS(4868),
    [sym_enum] = ACTIONS(4868),
    [sym_export] = ACTIONS(4868),
    [sym_extern] = ACTIONS(4868),
    [sym_final] = ACTIONS(4868),
    [sym_immutable] = ACTIONS(4868),
    [sym_import] = ACTIONS(4868),
    [sym_inout] = ACTIONS(4868),
    [sym_interface] = ACTIONS(4868),
    [sym_invariant] = ACTIONS(4868),
    [sym_mixin] = ACTIONS(4868),
    [sym_nothrow] = ACTIONS(4868),
    [sym_override] = ACTIONS(4868),
    [sym_package] = ACTIONS(4868),
    [sym_pragma] = ACTIONS(4868),
    [sym_private] = ACTIONS(4868),
    [sym_protected] = ACTIONS(4868),
    [sym_public] = ACTIONS(4868),
    [sym_pure] = ACTIONS(4868),
    [sym_ref] = ACTIONS(4868),
    [sym_return] = ACTIONS(4868),
    [sym_scope] = ACTIONS(4868),
    [sym_shared] = ACTIONS(4868),
    [sym_static] = ACTIONS(4868),
    [sym_struct] = ACTIONS(4868),
    [sym_synchronized] = ACTIONS(4868),
    [sym_template] = ACTIONS(4868),
    [sym_typeof] = ACTIONS(4868),
    [sym_union] = ACTIONS(4868),
    [sym_unittest] = ACTIONS(4868),
    [sym_version] = ACTIONS(4868),
    [sym_while] = ACTIONS(4868),
    [sym_gshared] = ACTIONS(4868),
    [sym_traits] = ACTIONS(4868),
    [sym_vector] = ACTIONS(4868),
    [sym_void] = ACTIONS(4868),
    [sym_directive] = ACTIONS(3),
  },
  [2818] = {
    [sym_identifier] = ACTIONS(2665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2663),
    [anon_sym_DOT] = ACTIONS(2663),
    [anon_sym_SEMI] = ACTIONS(2663),
    [anon_sym_TILDE] = ACTIONS(2663),
    [anon_sym_AT] = ACTIONS(2663),
    [sym_bool] = ACTIONS(2665),
    [sym_byte] = ACTIONS(2665),
    [sym_ubyte] = ACTIONS(2665),
    [sym_char] = ACTIONS(2665),
    [sym_short] = ACTIONS(2665),
    [sym_ushort] = ACTIONS(2665),
    [sym_int] = ACTIONS(2665),
    [sym_uint] = ACTIONS(2665),
    [sym_long] = ACTIONS(2665),
    [sym_ulong] = ACTIONS(2665),
    [sym_cent] = ACTIONS(2665),
    [sym_ucent] = ACTIONS(2665),
    [sym_wchar] = ACTIONS(2665),
    [sym_dchar] = ACTIONS(2665),
    [sym_float] = ACTIONS(2665),
    [sym_double] = ACTIONS(2665),
    [sym_real] = ACTIONS(2665),
    [sym_ifloat] = ACTIONS(2665),
    [sym_idouble] = ACTIONS(2665),
    [sym_ireal] = ACTIONS(2665),
    [sym_cfloat] = ACTIONS(2665),
    [sym_cdouble] = ACTIONS(2665),
    [sym_creal] = ACTIONS(2665),
    [sym_size_t] = ACTIONS(2665),
    [sym_ptrdiff_t] = ACTIONS(2665),
    [sym_string] = ACTIONS(2665),
    [sym_cstring] = ACTIONS(2665),
    [sym_dstring] = ACTIONS(2665),
    [sym_wstring] = ACTIONS(2665),
    [sym_noreturn] = ACTIONS(2665),
    [sym_this] = ACTIONS(2665),
    [sym_abstract] = ACTIONS(2665),
    [sym_alias] = ACTIONS(2665),
    [sym_align] = ACTIONS(2665),
    [sym_auto] = ACTIONS(2665),
    [sym_class] = ACTIONS(2665),
    [sym_const] = ACTIONS(2665),
    [sym_debug] = ACTIONS(2665),
    [sym_deprecated] = ACTIONS(2665),
    [sym_else] = ACTIONS(2665),
    [sym_enum] = ACTIONS(2665),
    [sym_export] = ACTIONS(2665),
    [sym_extern] = ACTIONS(2665),
    [sym_final] = ACTIONS(2665),
    [sym_immutable] = ACTIONS(2665),
    [sym_import] = ACTIONS(2665),
    [sym_inout] = ACTIONS(2665),
    [sym_interface] = ACTIONS(2665),
    [sym_invariant] = ACTIONS(2665),
    [sym_mixin] = ACTIONS(2665),
    [sym_nothrow] = ACTIONS(2665),
    [sym_override] = ACTIONS(2665),
    [sym_package] = ACTIONS(2665),
    [sym_pragma] = ACTIONS(2665),
    [sym_private] = ACTIONS(2665),
    [sym_protected] = ACTIONS(2665),
    [sym_public] = ACTIONS(2665),
    [sym_pure] = ACTIONS(2665),
    [sym_ref] = ACTIONS(2665),
    [sym_return] = ACTIONS(2665),
    [sym_scope] = ACTIONS(2665),
    [sym_shared] = ACTIONS(2665),
    [sym_static] = ACTIONS(2665),
    [sym_struct] = ACTIONS(2665),
    [sym_synchronized] = ACTIONS(2665),
    [sym_template] = ACTIONS(2665),
    [sym_typeof] = ACTIONS(2665),
    [sym_union] = ACTIONS(2665),
    [sym_unittest] = ACTIONS(2665),
    [sym_version] = ACTIONS(2665),
    [sym_while] = ACTIONS(2665),
    [sym_gshared] = ACTIONS(2665),
    [sym_traits] = ACTIONS(2665),
    [sym_vector] = ACTIONS(2665),
    [sym_void] = ACTIONS(2665),
    [sym_directive] = ACTIONS(3),
  },
  [2819] = {
    [sym_identifier] = ACTIONS(4586),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4588),
    [anon_sym_DOT] = ACTIONS(4588),
    [anon_sym_SEMI] = ACTIONS(4588),
    [anon_sym_TILDE] = ACTIONS(4588),
    [anon_sym_AT] = ACTIONS(4588),
    [sym_bool] = ACTIONS(4586),
    [sym_byte] = ACTIONS(4586),
    [sym_ubyte] = ACTIONS(4586),
    [sym_char] = ACTIONS(4586),
    [sym_short] = ACTIONS(4586),
    [sym_ushort] = ACTIONS(4586),
    [sym_int] = ACTIONS(4586),
    [sym_uint] = ACTIONS(4586),
    [sym_long] = ACTIONS(4586),
    [sym_ulong] = ACTIONS(4586),
    [sym_cent] = ACTIONS(4586),
    [sym_ucent] = ACTIONS(4586),
    [sym_wchar] = ACTIONS(4586),
    [sym_dchar] = ACTIONS(4586),
    [sym_float] = ACTIONS(4586),
    [sym_double] = ACTIONS(4586),
    [sym_real] = ACTIONS(4586),
    [sym_ifloat] = ACTIONS(4586),
    [sym_idouble] = ACTIONS(4586),
    [sym_ireal] = ACTIONS(4586),
    [sym_cfloat] = ACTIONS(4586),
    [sym_cdouble] = ACTIONS(4586),
    [sym_creal] = ACTIONS(4586),
    [sym_size_t] = ACTIONS(4586),
    [sym_ptrdiff_t] = ACTIONS(4586),
    [sym_string] = ACTIONS(4586),
    [sym_cstring] = ACTIONS(4586),
    [sym_dstring] = ACTIONS(4586),
    [sym_wstring] = ACTIONS(4586),
    [sym_noreturn] = ACTIONS(4586),
    [sym_this] = ACTIONS(4586),
    [sym_abstract] = ACTIONS(4586),
    [sym_alias] = ACTIONS(4586),
    [sym_align] = ACTIONS(4586),
    [sym_auto] = ACTIONS(4586),
    [sym_class] = ACTIONS(4586),
    [sym_const] = ACTIONS(4586),
    [sym_debug] = ACTIONS(4586),
    [sym_deprecated] = ACTIONS(4586),
    [sym_else] = ACTIONS(4586),
    [sym_enum] = ACTIONS(4586),
    [sym_export] = ACTIONS(4586),
    [sym_extern] = ACTIONS(4586),
    [sym_final] = ACTIONS(4586),
    [sym_immutable] = ACTIONS(4586),
    [sym_import] = ACTIONS(4586),
    [sym_inout] = ACTIONS(4586),
    [sym_interface] = ACTIONS(4586),
    [sym_invariant] = ACTIONS(4586),
    [sym_mixin] = ACTIONS(4586),
    [sym_nothrow] = ACTIONS(4586),
    [sym_override] = ACTIONS(4586),
    [sym_package] = ACTIONS(4586),
    [sym_pragma] = ACTIONS(4586),
    [sym_private] = ACTIONS(4586),
    [sym_protected] = ACTIONS(4586),
    [sym_public] = ACTIONS(4586),
    [sym_pure] = ACTIONS(4586),
    [sym_ref] = ACTIONS(4586),
    [sym_return] = ACTIONS(4586),
    [sym_scope] = ACTIONS(4586),
    [sym_shared] = ACTIONS(4586),
    [sym_static] = ACTIONS(4586),
    [sym_struct] = ACTIONS(4586),
    [sym_synchronized] = ACTIONS(4586),
    [sym_template] = ACTIONS(4586),
    [sym_typeof] = ACTIONS(4586),
    [sym_union] = ACTIONS(4586),
    [sym_unittest] = ACTIONS(4586),
    [sym_version] = ACTIONS(4586),
    [sym_while] = ACTIONS(4586),
    [sym_gshared] = ACTIONS(4586),
    [sym_traits] = ACTIONS(4586),
    [sym_vector] = ACTIONS(4586),
    [sym_void] = ACTIONS(4586),
    [sym_directive] = ACTIONS(3),
  },
  [2820] = {
    [sym_identifier] = ACTIONS(4590),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4592),
    [anon_sym_DOT] = ACTIONS(4592),
    [anon_sym_SEMI] = ACTIONS(4592),
    [anon_sym_TILDE] = ACTIONS(4592),
    [anon_sym_AT] = ACTIONS(4592),
    [sym_bool] = ACTIONS(4590),
    [sym_byte] = ACTIONS(4590),
    [sym_ubyte] = ACTIONS(4590),
    [sym_char] = ACTIONS(4590),
    [sym_short] = ACTIONS(4590),
    [sym_ushort] = ACTIONS(4590),
    [sym_int] = ACTIONS(4590),
    [sym_uint] = ACTIONS(4590),
    [sym_long] = ACTIONS(4590),
    [sym_ulong] = ACTIONS(4590),
    [sym_cent] = ACTIONS(4590),
    [sym_ucent] = ACTIONS(4590),
    [sym_wchar] = ACTIONS(4590),
    [sym_dchar] = ACTIONS(4590),
    [sym_float] = ACTIONS(4590),
    [sym_double] = ACTIONS(4590),
    [sym_real] = ACTIONS(4590),
    [sym_ifloat] = ACTIONS(4590),
    [sym_idouble] = ACTIONS(4590),
    [sym_ireal] = ACTIONS(4590),
    [sym_cfloat] = ACTIONS(4590),
    [sym_cdouble] = ACTIONS(4590),
    [sym_creal] = ACTIONS(4590),
    [sym_size_t] = ACTIONS(4590),
    [sym_ptrdiff_t] = ACTIONS(4590),
    [sym_string] = ACTIONS(4590),
    [sym_cstring] = ACTIONS(4590),
    [sym_dstring] = ACTIONS(4590),
    [sym_wstring] = ACTIONS(4590),
    [sym_noreturn] = ACTIONS(4590),
    [sym_this] = ACTIONS(4590),
    [sym_abstract] = ACTIONS(4590),
    [sym_alias] = ACTIONS(4590),
    [sym_align] = ACTIONS(4590),
    [sym_auto] = ACTIONS(4590),
    [sym_class] = ACTIONS(4590),
    [sym_const] = ACTIONS(4590),
    [sym_debug] = ACTIONS(4590),
    [sym_deprecated] = ACTIONS(4590),
    [sym_else] = ACTIONS(4590),
    [sym_enum] = ACTIONS(4590),
    [sym_export] = ACTIONS(4590),
    [sym_extern] = ACTIONS(4590),
    [sym_final] = ACTIONS(4590),
    [sym_immutable] = ACTIONS(4590),
    [sym_import] = ACTIONS(4590),
    [sym_inout] = ACTIONS(4590),
    [sym_interface] = ACTIONS(4590),
    [sym_invariant] = ACTIONS(4590),
    [sym_mixin] = ACTIONS(4590),
    [sym_nothrow] = ACTIONS(4590),
    [sym_override] = ACTIONS(4590),
    [sym_package] = ACTIONS(4590),
    [sym_pragma] = ACTIONS(4590),
    [sym_private] = ACTIONS(4590),
    [sym_protected] = ACTIONS(4590),
    [sym_public] = ACTIONS(4590),
    [sym_pure] = ACTIONS(4590),
    [sym_ref] = ACTIONS(4590),
    [sym_return] = ACTIONS(4590),
    [sym_scope] = ACTIONS(4590),
    [sym_shared] = ACTIONS(4590),
    [sym_static] = ACTIONS(4590),
    [sym_struct] = ACTIONS(4590),
    [sym_synchronized] = ACTIONS(4590),
    [sym_template] = ACTIONS(4590),
    [sym_typeof] = ACTIONS(4590),
    [sym_union] = ACTIONS(4590),
    [sym_unittest] = ACTIONS(4590),
    [sym_version] = ACTIONS(4590),
    [sym_while] = ACTIONS(4590),
    [sym_gshared] = ACTIONS(4590),
    [sym_traits] = ACTIONS(4590),
    [sym_vector] = ACTIONS(4590),
    [sym_void] = ACTIONS(4590),
    [sym_directive] = ACTIONS(3),
  },
  [2821] = {
    [sym_identifier] = ACTIONS(5040),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5042),
    [anon_sym_DOT] = ACTIONS(5042),
    [anon_sym_SEMI] = ACTIONS(5042),
    [anon_sym_TILDE] = ACTIONS(5042),
    [anon_sym_AT] = ACTIONS(5042),
    [sym_bool] = ACTIONS(5040),
    [sym_byte] = ACTIONS(5040),
    [sym_ubyte] = ACTIONS(5040),
    [sym_char] = ACTIONS(5040),
    [sym_short] = ACTIONS(5040),
    [sym_ushort] = ACTIONS(5040),
    [sym_int] = ACTIONS(5040),
    [sym_uint] = ACTIONS(5040),
    [sym_long] = ACTIONS(5040),
    [sym_ulong] = ACTIONS(5040),
    [sym_cent] = ACTIONS(5040),
    [sym_ucent] = ACTIONS(5040),
    [sym_wchar] = ACTIONS(5040),
    [sym_dchar] = ACTIONS(5040),
    [sym_float] = ACTIONS(5040),
    [sym_double] = ACTIONS(5040),
    [sym_real] = ACTIONS(5040),
    [sym_ifloat] = ACTIONS(5040),
    [sym_idouble] = ACTIONS(5040),
    [sym_ireal] = ACTIONS(5040),
    [sym_cfloat] = ACTIONS(5040),
    [sym_cdouble] = ACTIONS(5040),
    [sym_creal] = ACTIONS(5040),
    [sym_size_t] = ACTIONS(5040),
    [sym_ptrdiff_t] = ACTIONS(5040),
    [sym_string] = ACTIONS(5040),
    [sym_cstring] = ACTIONS(5040),
    [sym_dstring] = ACTIONS(5040),
    [sym_wstring] = ACTIONS(5040),
    [sym_noreturn] = ACTIONS(5040),
    [sym_this] = ACTIONS(5040),
    [sym_abstract] = ACTIONS(5040),
    [sym_alias] = ACTIONS(5040),
    [sym_align] = ACTIONS(5040),
    [sym_auto] = ACTIONS(5040),
    [sym_class] = ACTIONS(5040),
    [sym_const] = ACTIONS(5040),
    [sym_debug] = ACTIONS(5040),
    [sym_deprecated] = ACTIONS(5040),
    [sym_else] = ACTIONS(5040),
    [sym_enum] = ACTIONS(5040),
    [sym_export] = ACTIONS(5040),
    [sym_extern] = ACTIONS(5040),
    [sym_final] = ACTIONS(5040),
    [sym_immutable] = ACTIONS(5040),
    [sym_import] = ACTIONS(5040),
    [sym_inout] = ACTIONS(5040),
    [sym_interface] = ACTIONS(5040),
    [sym_invariant] = ACTIONS(5040),
    [sym_mixin] = ACTIONS(5040),
    [sym_nothrow] = ACTIONS(5040),
    [sym_override] = ACTIONS(5040),
    [sym_package] = ACTIONS(5040),
    [sym_pragma] = ACTIONS(5040),
    [sym_private] = ACTIONS(5040),
    [sym_protected] = ACTIONS(5040),
    [sym_public] = ACTIONS(5040),
    [sym_pure] = ACTIONS(5040),
    [sym_ref] = ACTIONS(5040),
    [sym_return] = ACTIONS(5040),
    [sym_scope] = ACTIONS(5040),
    [sym_shared] = ACTIONS(5040),
    [sym_static] = ACTIONS(5040),
    [sym_struct] = ACTIONS(5040),
    [sym_synchronized] = ACTIONS(5040),
    [sym_template] = ACTIONS(5040),
    [sym_typeof] = ACTIONS(5040),
    [sym_union] = ACTIONS(5040),
    [sym_unittest] = ACTIONS(5040),
    [sym_version] = ACTIONS(5040),
    [sym_while] = ACTIONS(5040),
    [sym_gshared] = ACTIONS(5040),
    [sym_traits] = ACTIONS(5040),
    [sym_vector] = ACTIONS(5040),
    [sym_void] = ACTIONS(5040),
    [sym_directive] = ACTIONS(3),
  },
  [2822] = {
    [sym_identifier] = ACTIONS(2812),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2810),
    [anon_sym_DOT] = ACTIONS(2810),
    [anon_sym_SEMI] = ACTIONS(2810),
    [anon_sym_TILDE] = ACTIONS(2810),
    [anon_sym_AT] = ACTIONS(2810),
    [sym_bool] = ACTIONS(2812),
    [sym_byte] = ACTIONS(2812),
    [sym_ubyte] = ACTIONS(2812),
    [sym_char] = ACTIONS(2812),
    [sym_short] = ACTIONS(2812),
    [sym_ushort] = ACTIONS(2812),
    [sym_int] = ACTIONS(2812),
    [sym_uint] = ACTIONS(2812),
    [sym_long] = ACTIONS(2812),
    [sym_ulong] = ACTIONS(2812),
    [sym_cent] = ACTIONS(2812),
    [sym_ucent] = ACTIONS(2812),
    [sym_wchar] = ACTIONS(2812),
    [sym_dchar] = ACTIONS(2812),
    [sym_float] = ACTIONS(2812),
    [sym_double] = ACTIONS(2812),
    [sym_real] = ACTIONS(2812),
    [sym_ifloat] = ACTIONS(2812),
    [sym_idouble] = ACTIONS(2812),
    [sym_ireal] = ACTIONS(2812),
    [sym_cfloat] = ACTIONS(2812),
    [sym_cdouble] = ACTIONS(2812),
    [sym_creal] = ACTIONS(2812),
    [sym_size_t] = ACTIONS(2812),
    [sym_ptrdiff_t] = ACTIONS(2812),
    [sym_string] = ACTIONS(2812),
    [sym_cstring] = ACTIONS(2812),
    [sym_dstring] = ACTIONS(2812),
    [sym_wstring] = ACTIONS(2812),
    [sym_noreturn] = ACTIONS(2812),
    [sym_this] = ACTIONS(2812),
    [sym_abstract] = ACTIONS(2812),
    [sym_alias] = ACTIONS(2812),
    [sym_align] = ACTIONS(2812),
    [sym_auto] = ACTIONS(2812),
    [sym_class] = ACTIONS(2812),
    [sym_const] = ACTIONS(2812),
    [sym_debug] = ACTIONS(2812),
    [sym_deprecated] = ACTIONS(2812),
    [sym_else] = ACTIONS(2812),
    [sym_enum] = ACTIONS(2812),
    [sym_export] = ACTIONS(2812),
    [sym_extern] = ACTIONS(2812),
    [sym_final] = ACTIONS(2812),
    [sym_immutable] = ACTIONS(2812),
    [sym_import] = ACTIONS(2812),
    [sym_inout] = ACTIONS(2812),
    [sym_interface] = ACTIONS(2812),
    [sym_invariant] = ACTIONS(2812),
    [sym_mixin] = ACTIONS(2812),
    [sym_nothrow] = ACTIONS(2812),
    [sym_override] = ACTIONS(2812),
    [sym_package] = ACTIONS(2812),
    [sym_pragma] = ACTIONS(2812),
    [sym_private] = ACTIONS(2812),
    [sym_protected] = ACTIONS(2812),
    [sym_public] = ACTIONS(2812),
    [sym_pure] = ACTIONS(2812),
    [sym_ref] = ACTIONS(2812),
    [sym_return] = ACTIONS(2812),
    [sym_scope] = ACTIONS(2812),
    [sym_shared] = ACTIONS(2812),
    [sym_static] = ACTIONS(2812),
    [sym_struct] = ACTIONS(2812),
    [sym_synchronized] = ACTIONS(2812),
    [sym_template] = ACTIONS(2812),
    [sym_typeof] = ACTIONS(2812),
    [sym_union] = ACTIONS(2812),
    [sym_unittest] = ACTIONS(2812),
    [sym_version] = ACTIONS(2812),
    [sym_while] = ACTIONS(2812),
    [sym_gshared] = ACTIONS(2812),
    [sym_traits] = ACTIONS(2812),
    [sym_vector] = ACTIONS(2812),
    [sym_void] = ACTIONS(2812),
    [sym_directive] = ACTIONS(3),
  },
  [2823] = {
    [sym_identifier] = ACTIONS(4936),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4938),
    [anon_sym_DOT] = ACTIONS(4938),
    [anon_sym_SEMI] = ACTIONS(4938),
    [anon_sym_TILDE] = ACTIONS(4938),
    [anon_sym_AT] = ACTIONS(4938),
    [sym_bool] = ACTIONS(4936),
    [sym_byte] = ACTIONS(4936),
    [sym_ubyte] = ACTIONS(4936),
    [sym_char] = ACTIONS(4936),
    [sym_short] = ACTIONS(4936),
    [sym_ushort] = ACTIONS(4936),
    [sym_int] = ACTIONS(4936),
    [sym_uint] = ACTIONS(4936),
    [sym_long] = ACTIONS(4936),
    [sym_ulong] = ACTIONS(4936),
    [sym_cent] = ACTIONS(4936),
    [sym_ucent] = ACTIONS(4936),
    [sym_wchar] = ACTIONS(4936),
    [sym_dchar] = ACTIONS(4936),
    [sym_float] = ACTIONS(4936),
    [sym_double] = ACTIONS(4936),
    [sym_real] = ACTIONS(4936),
    [sym_ifloat] = ACTIONS(4936),
    [sym_idouble] = ACTIONS(4936),
    [sym_ireal] = ACTIONS(4936),
    [sym_cfloat] = ACTIONS(4936),
    [sym_cdouble] = ACTIONS(4936),
    [sym_creal] = ACTIONS(4936),
    [sym_size_t] = ACTIONS(4936),
    [sym_ptrdiff_t] = ACTIONS(4936),
    [sym_string] = ACTIONS(4936),
    [sym_cstring] = ACTIONS(4936),
    [sym_dstring] = ACTIONS(4936),
    [sym_wstring] = ACTIONS(4936),
    [sym_noreturn] = ACTIONS(4936),
    [sym_this] = ACTIONS(4936),
    [sym_abstract] = ACTIONS(4936),
    [sym_alias] = ACTIONS(4936),
    [sym_align] = ACTIONS(4936),
    [sym_auto] = ACTIONS(4936),
    [sym_class] = ACTIONS(4936),
    [sym_const] = ACTIONS(4936),
    [sym_debug] = ACTIONS(4936),
    [sym_deprecated] = ACTIONS(4936),
    [sym_else] = ACTIONS(4936),
    [sym_enum] = ACTIONS(4936),
    [sym_export] = ACTIONS(4936),
    [sym_extern] = ACTIONS(4936),
    [sym_final] = ACTIONS(4936),
    [sym_immutable] = ACTIONS(4936),
    [sym_import] = ACTIONS(4936),
    [sym_inout] = ACTIONS(4936),
    [sym_interface] = ACTIONS(4936),
    [sym_invariant] = ACTIONS(4936),
    [sym_mixin] = ACTIONS(4936),
    [sym_nothrow] = ACTIONS(4936),
    [sym_override] = ACTIONS(4936),
    [sym_package] = ACTIONS(4936),
    [sym_pragma] = ACTIONS(4936),
    [sym_private] = ACTIONS(4936),
    [sym_protected] = ACTIONS(4936),
    [sym_public] = ACTIONS(4936),
    [sym_pure] = ACTIONS(4936),
    [sym_ref] = ACTIONS(4936),
    [sym_return] = ACTIONS(4936),
    [sym_scope] = ACTIONS(4936),
    [sym_shared] = ACTIONS(4936),
    [sym_static] = ACTIONS(4936),
    [sym_struct] = ACTIONS(4936),
    [sym_synchronized] = ACTIONS(4936),
    [sym_template] = ACTIONS(4936),
    [sym_typeof] = ACTIONS(4936),
    [sym_union] = ACTIONS(4936),
    [sym_unittest] = ACTIONS(4936),
    [sym_version] = ACTIONS(4936),
    [sym_while] = ACTIONS(4936),
    [sym_gshared] = ACTIONS(4936),
    [sym_traits] = ACTIONS(4936),
    [sym_vector] = ACTIONS(4936),
    [sym_void] = ACTIONS(4936),
    [sym_directive] = ACTIONS(3),
  },
  [2824] = {
    [sym_identifier] = ACTIONS(4888),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4890),
    [anon_sym_DOT] = ACTIONS(4890),
    [anon_sym_SEMI] = ACTIONS(4890),
    [anon_sym_TILDE] = ACTIONS(4890),
    [anon_sym_AT] = ACTIONS(4890),
    [sym_bool] = ACTIONS(4888),
    [sym_byte] = ACTIONS(4888),
    [sym_ubyte] = ACTIONS(4888),
    [sym_char] = ACTIONS(4888),
    [sym_short] = ACTIONS(4888),
    [sym_ushort] = ACTIONS(4888),
    [sym_int] = ACTIONS(4888),
    [sym_uint] = ACTIONS(4888),
    [sym_long] = ACTIONS(4888),
    [sym_ulong] = ACTIONS(4888),
    [sym_cent] = ACTIONS(4888),
    [sym_ucent] = ACTIONS(4888),
    [sym_wchar] = ACTIONS(4888),
    [sym_dchar] = ACTIONS(4888),
    [sym_float] = ACTIONS(4888),
    [sym_double] = ACTIONS(4888),
    [sym_real] = ACTIONS(4888),
    [sym_ifloat] = ACTIONS(4888),
    [sym_idouble] = ACTIONS(4888),
    [sym_ireal] = ACTIONS(4888),
    [sym_cfloat] = ACTIONS(4888),
    [sym_cdouble] = ACTIONS(4888),
    [sym_creal] = ACTIONS(4888),
    [sym_size_t] = ACTIONS(4888),
    [sym_ptrdiff_t] = ACTIONS(4888),
    [sym_string] = ACTIONS(4888),
    [sym_cstring] = ACTIONS(4888),
    [sym_dstring] = ACTIONS(4888),
    [sym_wstring] = ACTIONS(4888),
    [sym_noreturn] = ACTIONS(4888),
    [sym_this] = ACTIONS(4888),
    [sym_abstract] = ACTIONS(4888),
    [sym_alias] = ACTIONS(4888),
    [sym_align] = ACTIONS(4888),
    [sym_auto] = ACTIONS(4888),
    [sym_class] = ACTIONS(4888),
    [sym_const] = ACTIONS(4888),
    [sym_debug] = ACTIONS(4888),
    [sym_deprecated] = ACTIONS(4888),
    [sym_else] = ACTIONS(4888),
    [sym_enum] = ACTIONS(4888),
    [sym_export] = ACTIONS(4888),
    [sym_extern] = ACTIONS(4888),
    [sym_final] = ACTIONS(4888),
    [sym_immutable] = ACTIONS(4888),
    [sym_import] = ACTIONS(4888),
    [sym_inout] = ACTIONS(4888),
    [sym_interface] = ACTIONS(4888),
    [sym_invariant] = ACTIONS(4888),
    [sym_mixin] = ACTIONS(4888),
    [sym_nothrow] = ACTIONS(4888),
    [sym_override] = ACTIONS(4888),
    [sym_package] = ACTIONS(4888),
    [sym_pragma] = ACTIONS(4888),
    [sym_private] = ACTIONS(4888),
    [sym_protected] = ACTIONS(4888),
    [sym_public] = ACTIONS(4888),
    [sym_pure] = ACTIONS(4888),
    [sym_ref] = ACTIONS(4888),
    [sym_return] = ACTIONS(4888),
    [sym_scope] = ACTIONS(4888),
    [sym_shared] = ACTIONS(4888),
    [sym_static] = ACTIONS(4888),
    [sym_struct] = ACTIONS(4888),
    [sym_synchronized] = ACTIONS(4888),
    [sym_template] = ACTIONS(4888),
    [sym_typeof] = ACTIONS(4888),
    [sym_union] = ACTIONS(4888),
    [sym_unittest] = ACTIONS(4888),
    [sym_version] = ACTIONS(4888),
    [sym_while] = ACTIONS(4888),
    [sym_gshared] = ACTIONS(4888),
    [sym_traits] = ACTIONS(4888),
    [sym_vector] = ACTIONS(4888),
    [sym_void] = ACTIONS(4888),
    [sym_directive] = ACTIONS(3),
  },
  [2825] = {
    [sym_identifier] = ACTIONS(4896),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4898),
    [anon_sym_DOT] = ACTIONS(4898),
    [anon_sym_SEMI] = ACTIONS(4898),
    [anon_sym_TILDE] = ACTIONS(4898),
    [anon_sym_AT] = ACTIONS(4898),
    [sym_bool] = ACTIONS(4896),
    [sym_byte] = ACTIONS(4896),
    [sym_ubyte] = ACTIONS(4896),
    [sym_char] = ACTIONS(4896),
    [sym_short] = ACTIONS(4896),
    [sym_ushort] = ACTIONS(4896),
    [sym_int] = ACTIONS(4896),
    [sym_uint] = ACTIONS(4896),
    [sym_long] = ACTIONS(4896),
    [sym_ulong] = ACTIONS(4896),
    [sym_cent] = ACTIONS(4896),
    [sym_ucent] = ACTIONS(4896),
    [sym_wchar] = ACTIONS(4896),
    [sym_dchar] = ACTIONS(4896),
    [sym_float] = ACTIONS(4896),
    [sym_double] = ACTIONS(4896),
    [sym_real] = ACTIONS(4896),
    [sym_ifloat] = ACTIONS(4896),
    [sym_idouble] = ACTIONS(4896),
    [sym_ireal] = ACTIONS(4896),
    [sym_cfloat] = ACTIONS(4896),
    [sym_cdouble] = ACTIONS(4896),
    [sym_creal] = ACTIONS(4896),
    [sym_size_t] = ACTIONS(4896),
    [sym_ptrdiff_t] = ACTIONS(4896),
    [sym_string] = ACTIONS(4896),
    [sym_cstring] = ACTIONS(4896),
    [sym_dstring] = ACTIONS(4896),
    [sym_wstring] = ACTIONS(4896),
    [sym_noreturn] = ACTIONS(4896),
    [sym_this] = ACTIONS(4896),
    [sym_abstract] = ACTIONS(4896),
    [sym_alias] = ACTIONS(4896),
    [sym_align] = ACTIONS(4896),
    [sym_auto] = ACTIONS(4896),
    [sym_class] = ACTIONS(4896),
    [sym_const] = ACTIONS(4896),
    [sym_debug] = ACTIONS(4896),
    [sym_deprecated] = ACTIONS(4896),
    [sym_else] = ACTIONS(4896),
    [sym_enum] = ACTIONS(4896),
    [sym_export] = ACTIONS(4896),
    [sym_extern] = ACTIONS(4896),
    [sym_final] = ACTIONS(4896),
    [sym_immutable] = ACTIONS(4896),
    [sym_import] = ACTIONS(4896),
    [sym_inout] = ACTIONS(4896),
    [sym_interface] = ACTIONS(4896),
    [sym_invariant] = ACTIONS(4896),
    [sym_mixin] = ACTIONS(4896),
    [sym_nothrow] = ACTIONS(4896),
    [sym_override] = ACTIONS(4896),
    [sym_package] = ACTIONS(4896),
    [sym_pragma] = ACTIONS(4896),
    [sym_private] = ACTIONS(4896),
    [sym_protected] = ACTIONS(4896),
    [sym_public] = ACTIONS(4896),
    [sym_pure] = ACTIONS(4896),
    [sym_ref] = ACTIONS(4896),
    [sym_return] = ACTIONS(4896),
    [sym_scope] = ACTIONS(4896),
    [sym_shared] = ACTIONS(4896),
    [sym_static] = ACTIONS(4896),
    [sym_struct] = ACTIONS(4896),
    [sym_synchronized] = ACTIONS(4896),
    [sym_template] = ACTIONS(4896),
    [sym_typeof] = ACTIONS(4896),
    [sym_union] = ACTIONS(4896),
    [sym_unittest] = ACTIONS(4896),
    [sym_version] = ACTIONS(4896),
    [sym_while] = ACTIONS(4896),
    [sym_gshared] = ACTIONS(4896),
    [sym_traits] = ACTIONS(4896),
    [sym_vector] = ACTIONS(4896),
    [sym_void] = ACTIONS(4896),
    [sym_directive] = ACTIONS(3),
  },
  [2826] = {
    [sym_identifier] = ACTIONS(4900),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4902),
    [anon_sym_DOT] = ACTIONS(4902),
    [anon_sym_SEMI] = ACTIONS(4902),
    [anon_sym_TILDE] = ACTIONS(4902),
    [anon_sym_AT] = ACTIONS(4902),
    [sym_bool] = ACTIONS(4900),
    [sym_byte] = ACTIONS(4900),
    [sym_ubyte] = ACTIONS(4900),
    [sym_char] = ACTIONS(4900),
    [sym_short] = ACTIONS(4900),
    [sym_ushort] = ACTIONS(4900),
    [sym_int] = ACTIONS(4900),
    [sym_uint] = ACTIONS(4900),
    [sym_long] = ACTIONS(4900),
    [sym_ulong] = ACTIONS(4900),
    [sym_cent] = ACTIONS(4900),
    [sym_ucent] = ACTIONS(4900),
    [sym_wchar] = ACTIONS(4900),
    [sym_dchar] = ACTIONS(4900),
    [sym_float] = ACTIONS(4900),
    [sym_double] = ACTIONS(4900),
    [sym_real] = ACTIONS(4900),
    [sym_ifloat] = ACTIONS(4900),
    [sym_idouble] = ACTIONS(4900),
    [sym_ireal] = ACTIONS(4900),
    [sym_cfloat] = ACTIONS(4900),
    [sym_cdouble] = ACTIONS(4900),
    [sym_creal] = ACTIONS(4900),
    [sym_size_t] = ACTIONS(4900),
    [sym_ptrdiff_t] = ACTIONS(4900),
    [sym_string] = ACTIONS(4900),
    [sym_cstring] = ACTIONS(4900),
    [sym_dstring] = ACTIONS(4900),
    [sym_wstring] = ACTIONS(4900),
    [sym_noreturn] = ACTIONS(4900),
    [sym_this] = ACTIONS(4900),
    [sym_abstract] = ACTIONS(4900),
    [sym_alias] = ACTIONS(4900),
    [sym_align] = ACTIONS(4900),
    [sym_auto] = ACTIONS(4900),
    [sym_class] = ACTIONS(4900),
    [sym_const] = ACTIONS(4900),
    [sym_debug] = ACTIONS(4900),
    [sym_deprecated] = ACTIONS(4900),
    [sym_else] = ACTIONS(4900),
    [sym_enum] = ACTIONS(4900),
    [sym_export] = ACTIONS(4900),
    [sym_extern] = ACTIONS(4900),
    [sym_final] = ACTIONS(4900),
    [sym_immutable] = ACTIONS(4900),
    [sym_import] = ACTIONS(4900),
    [sym_inout] = ACTIONS(4900),
    [sym_interface] = ACTIONS(4900),
    [sym_invariant] = ACTIONS(4900),
    [sym_mixin] = ACTIONS(4900),
    [sym_nothrow] = ACTIONS(4900),
    [sym_override] = ACTIONS(4900),
    [sym_package] = ACTIONS(4900),
    [sym_pragma] = ACTIONS(4900),
    [sym_private] = ACTIONS(4900),
    [sym_protected] = ACTIONS(4900),
    [sym_public] = ACTIONS(4900),
    [sym_pure] = ACTIONS(4900),
    [sym_ref] = ACTIONS(4900),
    [sym_return] = ACTIONS(4900),
    [sym_scope] = ACTIONS(4900),
    [sym_shared] = ACTIONS(4900),
    [sym_static] = ACTIONS(4900),
    [sym_struct] = ACTIONS(4900),
    [sym_synchronized] = ACTIONS(4900),
    [sym_template] = ACTIONS(4900),
    [sym_typeof] = ACTIONS(4900),
    [sym_union] = ACTIONS(4900),
    [sym_unittest] = ACTIONS(4900),
    [sym_version] = ACTIONS(4900),
    [sym_while] = ACTIONS(4900),
    [sym_gshared] = ACTIONS(4900),
    [sym_traits] = ACTIONS(4900),
    [sym_vector] = ACTIONS(4900),
    [sym_void] = ACTIONS(4900),
    [sym_directive] = ACTIONS(3),
  },
  [2827] = {
    [sym_identifier] = ACTIONS(4904),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4906),
    [anon_sym_DOT] = ACTIONS(4906),
    [anon_sym_SEMI] = ACTIONS(4906),
    [anon_sym_TILDE] = ACTIONS(4906),
    [anon_sym_AT] = ACTIONS(4906),
    [sym_bool] = ACTIONS(4904),
    [sym_byte] = ACTIONS(4904),
    [sym_ubyte] = ACTIONS(4904),
    [sym_char] = ACTIONS(4904),
    [sym_short] = ACTIONS(4904),
    [sym_ushort] = ACTIONS(4904),
    [sym_int] = ACTIONS(4904),
    [sym_uint] = ACTIONS(4904),
    [sym_long] = ACTIONS(4904),
    [sym_ulong] = ACTIONS(4904),
    [sym_cent] = ACTIONS(4904),
    [sym_ucent] = ACTIONS(4904),
    [sym_wchar] = ACTIONS(4904),
    [sym_dchar] = ACTIONS(4904),
    [sym_float] = ACTIONS(4904),
    [sym_double] = ACTIONS(4904),
    [sym_real] = ACTIONS(4904),
    [sym_ifloat] = ACTIONS(4904),
    [sym_idouble] = ACTIONS(4904),
    [sym_ireal] = ACTIONS(4904),
    [sym_cfloat] = ACTIONS(4904),
    [sym_cdouble] = ACTIONS(4904),
    [sym_creal] = ACTIONS(4904),
    [sym_size_t] = ACTIONS(4904),
    [sym_ptrdiff_t] = ACTIONS(4904),
    [sym_string] = ACTIONS(4904),
    [sym_cstring] = ACTIONS(4904),
    [sym_dstring] = ACTIONS(4904),
    [sym_wstring] = ACTIONS(4904),
    [sym_noreturn] = ACTIONS(4904),
    [sym_this] = ACTIONS(4904),
    [sym_abstract] = ACTIONS(4904),
    [sym_alias] = ACTIONS(4904),
    [sym_align] = ACTIONS(4904),
    [sym_auto] = ACTIONS(4904),
    [sym_class] = ACTIONS(4904),
    [sym_const] = ACTIONS(4904),
    [sym_debug] = ACTIONS(4904),
    [sym_deprecated] = ACTIONS(4904),
    [sym_else] = ACTIONS(4904),
    [sym_enum] = ACTIONS(4904),
    [sym_export] = ACTIONS(4904),
    [sym_extern] = ACTIONS(4904),
    [sym_final] = ACTIONS(4904),
    [sym_immutable] = ACTIONS(4904),
    [sym_import] = ACTIONS(4904),
    [sym_inout] = ACTIONS(4904),
    [sym_interface] = ACTIONS(4904),
    [sym_invariant] = ACTIONS(4904),
    [sym_mixin] = ACTIONS(4904),
    [sym_nothrow] = ACTIONS(4904),
    [sym_override] = ACTIONS(4904),
    [sym_package] = ACTIONS(4904),
    [sym_pragma] = ACTIONS(4904),
    [sym_private] = ACTIONS(4904),
    [sym_protected] = ACTIONS(4904),
    [sym_public] = ACTIONS(4904),
    [sym_pure] = ACTIONS(4904),
    [sym_ref] = ACTIONS(4904),
    [sym_return] = ACTIONS(4904),
    [sym_scope] = ACTIONS(4904),
    [sym_shared] = ACTIONS(4904),
    [sym_static] = ACTIONS(4904),
    [sym_struct] = ACTIONS(4904),
    [sym_synchronized] = ACTIONS(4904),
    [sym_template] = ACTIONS(4904),
    [sym_typeof] = ACTIONS(4904),
    [sym_union] = ACTIONS(4904),
    [sym_unittest] = ACTIONS(4904),
    [sym_version] = ACTIONS(4904),
    [sym_while] = ACTIONS(4904),
    [sym_gshared] = ACTIONS(4904),
    [sym_traits] = ACTIONS(4904),
    [sym_vector] = ACTIONS(4904),
    [sym_void] = ACTIONS(4904),
    [sym_directive] = ACTIONS(3),
  },
  [2828] = {
    [sym_identifier] = ACTIONS(4932),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4934),
    [anon_sym_DOT] = ACTIONS(4934),
    [anon_sym_SEMI] = ACTIONS(4934),
    [anon_sym_TILDE] = ACTIONS(4934),
    [anon_sym_AT] = ACTIONS(4934),
    [sym_bool] = ACTIONS(4932),
    [sym_byte] = ACTIONS(4932),
    [sym_ubyte] = ACTIONS(4932),
    [sym_char] = ACTIONS(4932),
    [sym_short] = ACTIONS(4932),
    [sym_ushort] = ACTIONS(4932),
    [sym_int] = ACTIONS(4932),
    [sym_uint] = ACTIONS(4932),
    [sym_long] = ACTIONS(4932),
    [sym_ulong] = ACTIONS(4932),
    [sym_cent] = ACTIONS(4932),
    [sym_ucent] = ACTIONS(4932),
    [sym_wchar] = ACTIONS(4932),
    [sym_dchar] = ACTIONS(4932),
    [sym_float] = ACTIONS(4932),
    [sym_double] = ACTIONS(4932),
    [sym_real] = ACTIONS(4932),
    [sym_ifloat] = ACTIONS(4932),
    [sym_idouble] = ACTIONS(4932),
    [sym_ireal] = ACTIONS(4932),
    [sym_cfloat] = ACTIONS(4932),
    [sym_cdouble] = ACTIONS(4932),
    [sym_creal] = ACTIONS(4932),
    [sym_size_t] = ACTIONS(4932),
    [sym_ptrdiff_t] = ACTIONS(4932),
    [sym_string] = ACTIONS(4932),
    [sym_cstring] = ACTIONS(4932),
    [sym_dstring] = ACTIONS(4932),
    [sym_wstring] = ACTIONS(4932),
    [sym_noreturn] = ACTIONS(4932),
    [sym_this] = ACTIONS(4932),
    [sym_abstract] = ACTIONS(4932),
    [sym_alias] = ACTIONS(4932),
    [sym_align] = ACTIONS(4932),
    [sym_auto] = ACTIONS(4932),
    [sym_class] = ACTIONS(4932),
    [sym_const] = ACTIONS(4932),
    [sym_debug] = ACTIONS(4932),
    [sym_deprecated] = ACTIONS(4932),
    [sym_else] = ACTIONS(4932),
    [sym_enum] = ACTIONS(4932),
    [sym_export] = ACTIONS(4932),
    [sym_extern] = ACTIONS(4932),
    [sym_final] = ACTIONS(4932),
    [sym_immutable] = ACTIONS(4932),
    [sym_import] = ACTIONS(4932),
    [sym_inout] = ACTIONS(4932),
    [sym_interface] = ACTIONS(4932),
    [sym_invariant] = ACTIONS(4932),
    [sym_mixin] = ACTIONS(4932),
    [sym_nothrow] = ACTIONS(4932),
    [sym_override] = ACTIONS(4932),
    [sym_package] = ACTIONS(4932),
    [sym_pragma] = ACTIONS(4932),
    [sym_private] = ACTIONS(4932),
    [sym_protected] = ACTIONS(4932),
    [sym_public] = ACTIONS(4932),
    [sym_pure] = ACTIONS(4932),
    [sym_ref] = ACTIONS(4932),
    [sym_return] = ACTIONS(4932),
    [sym_scope] = ACTIONS(4932),
    [sym_shared] = ACTIONS(4932),
    [sym_static] = ACTIONS(4932),
    [sym_struct] = ACTIONS(4932),
    [sym_synchronized] = ACTIONS(4932),
    [sym_template] = ACTIONS(4932),
    [sym_typeof] = ACTIONS(4932),
    [sym_union] = ACTIONS(4932),
    [sym_unittest] = ACTIONS(4932),
    [sym_version] = ACTIONS(4932),
    [sym_while] = ACTIONS(4932),
    [sym_gshared] = ACTIONS(4932),
    [sym_traits] = ACTIONS(4932),
    [sym_vector] = ACTIONS(4932),
    [sym_void] = ACTIONS(4932),
    [sym_directive] = ACTIONS(3),
  },
  [2829] = {
    [sym_identifier] = ACTIONS(2784),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2782),
    [anon_sym_DOT] = ACTIONS(2782),
    [anon_sym_SEMI] = ACTIONS(2782),
    [anon_sym_TILDE] = ACTIONS(2782),
    [anon_sym_AT] = ACTIONS(2782),
    [sym_bool] = ACTIONS(2784),
    [sym_byte] = ACTIONS(2784),
    [sym_ubyte] = ACTIONS(2784),
    [sym_char] = ACTIONS(2784),
    [sym_short] = ACTIONS(2784),
    [sym_ushort] = ACTIONS(2784),
    [sym_int] = ACTIONS(2784),
    [sym_uint] = ACTIONS(2784),
    [sym_long] = ACTIONS(2784),
    [sym_ulong] = ACTIONS(2784),
    [sym_cent] = ACTIONS(2784),
    [sym_ucent] = ACTIONS(2784),
    [sym_wchar] = ACTIONS(2784),
    [sym_dchar] = ACTIONS(2784),
    [sym_float] = ACTIONS(2784),
    [sym_double] = ACTIONS(2784),
    [sym_real] = ACTIONS(2784),
    [sym_ifloat] = ACTIONS(2784),
    [sym_idouble] = ACTIONS(2784),
    [sym_ireal] = ACTIONS(2784),
    [sym_cfloat] = ACTIONS(2784),
    [sym_cdouble] = ACTIONS(2784),
    [sym_creal] = ACTIONS(2784),
    [sym_size_t] = ACTIONS(2784),
    [sym_ptrdiff_t] = ACTIONS(2784),
    [sym_string] = ACTIONS(2784),
    [sym_cstring] = ACTIONS(2784),
    [sym_dstring] = ACTIONS(2784),
    [sym_wstring] = ACTIONS(2784),
    [sym_noreturn] = ACTIONS(2784),
    [sym_this] = ACTIONS(2784),
    [sym_abstract] = ACTIONS(2784),
    [sym_alias] = ACTIONS(2784),
    [sym_align] = ACTIONS(2784),
    [sym_auto] = ACTIONS(2784),
    [sym_class] = ACTIONS(2784),
    [sym_const] = ACTIONS(2784),
    [sym_debug] = ACTIONS(2784),
    [sym_deprecated] = ACTIONS(2784),
    [sym_else] = ACTIONS(6817),
    [sym_enum] = ACTIONS(2784),
    [sym_export] = ACTIONS(2784),
    [sym_extern] = ACTIONS(2784),
    [sym_final] = ACTIONS(2784),
    [sym_immutable] = ACTIONS(2784),
    [sym_import] = ACTIONS(2784),
    [sym_inout] = ACTIONS(2784),
    [sym_interface] = ACTIONS(2784),
    [sym_invariant] = ACTIONS(2784),
    [sym_mixin] = ACTIONS(2784),
    [sym_nothrow] = ACTIONS(2784),
    [sym_override] = ACTIONS(2784),
    [sym_package] = ACTIONS(2784),
    [sym_pragma] = ACTIONS(2784),
    [sym_private] = ACTIONS(2784),
    [sym_protected] = ACTIONS(2784),
    [sym_public] = ACTIONS(2784),
    [sym_pure] = ACTIONS(2784),
    [sym_ref] = ACTIONS(2784),
    [sym_return] = ACTIONS(2784),
    [sym_scope] = ACTIONS(2784),
    [sym_shared] = ACTIONS(2784),
    [sym_static] = ACTIONS(2784),
    [sym_struct] = ACTIONS(2784),
    [sym_synchronized] = ACTIONS(2784),
    [sym_template] = ACTIONS(2784),
    [sym_typeof] = ACTIONS(2784),
    [sym_union] = ACTIONS(2784),
    [sym_unittest] = ACTIONS(2784),
    [sym_version] = ACTIONS(2784),
    [sym_while] = ACTIONS(2784),
    [sym_gshared] = ACTIONS(2784),
    [sym_traits] = ACTIONS(2784),
    [sym_vector] = ACTIONS(2784),
    [sym_void] = ACTIONS(2784),
    [sym_directive] = ACTIONS(3),
  },
  [2830] = {
    [sym_identifier] = ACTIONS(4912),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4914),
    [anon_sym_DOT] = ACTIONS(4914),
    [anon_sym_SEMI] = ACTIONS(4914),
    [anon_sym_TILDE] = ACTIONS(4914),
    [anon_sym_AT] = ACTIONS(4914),
    [sym_bool] = ACTIONS(4912),
    [sym_byte] = ACTIONS(4912),
    [sym_ubyte] = ACTIONS(4912),
    [sym_char] = ACTIONS(4912),
    [sym_short] = ACTIONS(4912),
    [sym_ushort] = ACTIONS(4912),
    [sym_int] = ACTIONS(4912),
    [sym_uint] = ACTIONS(4912),
    [sym_long] = ACTIONS(4912),
    [sym_ulong] = ACTIONS(4912),
    [sym_cent] = ACTIONS(4912),
    [sym_ucent] = ACTIONS(4912),
    [sym_wchar] = ACTIONS(4912),
    [sym_dchar] = ACTIONS(4912),
    [sym_float] = ACTIONS(4912),
    [sym_double] = ACTIONS(4912),
    [sym_real] = ACTIONS(4912),
    [sym_ifloat] = ACTIONS(4912),
    [sym_idouble] = ACTIONS(4912),
    [sym_ireal] = ACTIONS(4912),
    [sym_cfloat] = ACTIONS(4912),
    [sym_cdouble] = ACTIONS(4912),
    [sym_creal] = ACTIONS(4912),
    [sym_size_t] = ACTIONS(4912),
    [sym_ptrdiff_t] = ACTIONS(4912),
    [sym_string] = ACTIONS(4912),
    [sym_cstring] = ACTIONS(4912),
    [sym_dstring] = ACTIONS(4912),
    [sym_wstring] = ACTIONS(4912),
    [sym_noreturn] = ACTIONS(4912),
    [sym_this] = ACTIONS(4912),
    [sym_abstract] = ACTIONS(4912),
    [sym_alias] = ACTIONS(4912),
    [sym_align] = ACTIONS(4912),
    [sym_auto] = ACTIONS(4912),
    [sym_class] = ACTIONS(4912),
    [sym_const] = ACTIONS(4912),
    [sym_debug] = ACTIONS(4912),
    [sym_deprecated] = ACTIONS(4912),
    [sym_else] = ACTIONS(4912),
    [sym_enum] = ACTIONS(4912),
    [sym_export] = ACTIONS(4912),
    [sym_extern] = ACTIONS(4912),
    [sym_final] = ACTIONS(4912),
    [sym_immutable] = ACTIONS(4912),
    [sym_import] = ACTIONS(4912),
    [sym_inout] = ACTIONS(4912),
    [sym_interface] = ACTIONS(4912),
    [sym_invariant] = ACTIONS(4912),
    [sym_mixin] = ACTIONS(4912),
    [sym_nothrow] = ACTIONS(4912),
    [sym_override] = ACTIONS(4912),
    [sym_package] = ACTIONS(4912),
    [sym_pragma] = ACTIONS(4912),
    [sym_private] = ACTIONS(4912),
    [sym_protected] = ACTIONS(4912),
    [sym_public] = ACTIONS(4912),
    [sym_pure] = ACTIONS(4912),
    [sym_ref] = ACTIONS(4912),
    [sym_return] = ACTIONS(4912),
    [sym_scope] = ACTIONS(4912),
    [sym_shared] = ACTIONS(4912),
    [sym_static] = ACTIONS(4912),
    [sym_struct] = ACTIONS(4912),
    [sym_synchronized] = ACTIONS(4912),
    [sym_template] = ACTIONS(4912),
    [sym_typeof] = ACTIONS(4912),
    [sym_union] = ACTIONS(4912),
    [sym_unittest] = ACTIONS(4912),
    [sym_version] = ACTIONS(4912),
    [sym_while] = ACTIONS(4912),
    [sym_gshared] = ACTIONS(4912),
    [sym_traits] = ACTIONS(4912),
    [sym_vector] = ACTIONS(4912),
    [sym_void] = ACTIONS(4912),
    [sym_directive] = ACTIONS(3),
  },
  [2831] = {
    [sym_identifier] = ACTIONS(4918),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4920),
    [anon_sym_DOT] = ACTIONS(4920),
    [anon_sym_SEMI] = ACTIONS(4920),
    [anon_sym_TILDE] = ACTIONS(4920),
    [anon_sym_AT] = ACTIONS(4920),
    [sym_bool] = ACTIONS(4918),
    [sym_byte] = ACTIONS(4918),
    [sym_ubyte] = ACTIONS(4918),
    [sym_char] = ACTIONS(4918),
    [sym_short] = ACTIONS(4918),
    [sym_ushort] = ACTIONS(4918),
    [sym_int] = ACTIONS(4918),
    [sym_uint] = ACTIONS(4918),
    [sym_long] = ACTIONS(4918),
    [sym_ulong] = ACTIONS(4918),
    [sym_cent] = ACTIONS(4918),
    [sym_ucent] = ACTIONS(4918),
    [sym_wchar] = ACTIONS(4918),
    [sym_dchar] = ACTIONS(4918),
    [sym_float] = ACTIONS(4918),
    [sym_double] = ACTIONS(4918),
    [sym_real] = ACTIONS(4918),
    [sym_ifloat] = ACTIONS(4918),
    [sym_idouble] = ACTIONS(4918),
    [sym_ireal] = ACTIONS(4918),
    [sym_cfloat] = ACTIONS(4918),
    [sym_cdouble] = ACTIONS(4918),
    [sym_creal] = ACTIONS(4918),
    [sym_size_t] = ACTIONS(4918),
    [sym_ptrdiff_t] = ACTIONS(4918),
    [sym_string] = ACTIONS(4918),
    [sym_cstring] = ACTIONS(4918),
    [sym_dstring] = ACTIONS(4918),
    [sym_wstring] = ACTIONS(4918),
    [sym_noreturn] = ACTIONS(4918),
    [sym_this] = ACTIONS(4918),
    [sym_abstract] = ACTIONS(4918),
    [sym_alias] = ACTIONS(4918),
    [sym_align] = ACTIONS(4918),
    [sym_auto] = ACTIONS(4918),
    [sym_class] = ACTIONS(4918),
    [sym_const] = ACTIONS(4918),
    [sym_debug] = ACTIONS(4918),
    [sym_deprecated] = ACTIONS(4918),
    [sym_else] = ACTIONS(4918),
    [sym_enum] = ACTIONS(4918),
    [sym_export] = ACTIONS(4918),
    [sym_extern] = ACTIONS(4918),
    [sym_final] = ACTIONS(4918),
    [sym_immutable] = ACTIONS(4918),
    [sym_import] = ACTIONS(4918),
    [sym_inout] = ACTIONS(4918),
    [sym_interface] = ACTIONS(4918),
    [sym_invariant] = ACTIONS(4918),
    [sym_mixin] = ACTIONS(4918),
    [sym_nothrow] = ACTIONS(4918),
    [sym_override] = ACTIONS(4918),
    [sym_package] = ACTIONS(4918),
    [sym_pragma] = ACTIONS(4918),
    [sym_private] = ACTIONS(4918),
    [sym_protected] = ACTIONS(4918),
    [sym_public] = ACTIONS(4918),
    [sym_pure] = ACTIONS(4918),
    [sym_ref] = ACTIONS(4918),
    [sym_return] = ACTIONS(4918),
    [sym_scope] = ACTIONS(4918),
    [sym_shared] = ACTIONS(4918),
    [sym_static] = ACTIONS(4918),
    [sym_struct] = ACTIONS(4918),
    [sym_synchronized] = ACTIONS(4918),
    [sym_template] = ACTIONS(4918),
    [sym_typeof] = ACTIONS(4918),
    [sym_union] = ACTIONS(4918),
    [sym_unittest] = ACTIONS(4918),
    [sym_version] = ACTIONS(4918),
    [sym_while] = ACTIONS(4918),
    [sym_gshared] = ACTIONS(4918),
    [sym_traits] = ACTIONS(4918),
    [sym_vector] = ACTIONS(4918),
    [sym_void] = ACTIONS(4918),
    [sym_directive] = ACTIONS(3),
  },
  [2832] = {
    [sym_switch_statement] = STATE(1387),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(986),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2833] = {
    [sym_identifier] = ACTIONS(4606),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4608),
    [anon_sym_DOT] = ACTIONS(4608),
    [anon_sym_SEMI] = ACTIONS(4608),
    [anon_sym_TILDE] = ACTIONS(4608),
    [anon_sym_AT] = ACTIONS(4608),
    [sym_bool] = ACTIONS(4606),
    [sym_byte] = ACTIONS(4606),
    [sym_ubyte] = ACTIONS(4606),
    [sym_char] = ACTIONS(4606),
    [sym_short] = ACTIONS(4606),
    [sym_ushort] = ACTIONS(4606),
    [sym_int] = ACTIONS(4606),
    [sym_uint] = ACTIONS(4606),
    [sym_long] = ACTIONS(4606),
    [sym_ulong] = ACTIONS(4606),
    [sym_cent] = ACTIONS(4606),
    [sym_ucent] = ACTIONS(4606),
    [sym_wchar] = ACTIONS(4606),
    [sym_dchar] = ACTIONS(4606),
    [sym_float] = ACTIONS(4606),
    [sym_double] = ACTIONS(4606),
    [sym_real] = ACTIONS(4606),
    [sym_ifloat] = ACTIONS(4606),
    [sym_idouble] = ACTIONS(4606),
    [sym_ireal] = ACTIONS(4606),
    [sym_cfloat] = ACTIONS(4606),
    [sym_cdouble] = ACTIONS(4606),
    [sym_creal] = ACTIONS(4606),
    [sym_size_t] = ACTIONS(4606),
    [sym_ptrdiff_t] = ACTIONS(4606),
    [sym_string] = ACTIONS(4606),
    [sym_cstring] = ACTIONS(4606),
    [sym_dstring] = ACTIONS(4606),
    [sym_wstring] = ACTIONS(4606),
    [sym_noreturn] = ACTIONS(4606),
    [sym_this] = ACTIONS(4606),
    [sym_abstract] = ACTIONS(4606),
    [sym_alias] = ACTIONS(4606),
    [sym_align] = ACTIONS(4606),
    [sym_auto] = ACTIONS(4606),
    [sym_class] = ACTIONS(4606),
    [sym_const] = ACTIONS(4606),
    [sym_debug] = ACTIONS(4606),
    [sym_deprecated] = ACTIONS(4606),
    [sym_else] = ACTIONS(4606),
    [sym_enum] = ACTIONS(4606),
    [sym_export] = ACTIONS(4606),
    [sym_extern] = ACTIONS(4606),
    [sym_final] = ACTIONS(4606),
    [sym_immutable] = ACTIONS(4606),
    [sym_import] = ACTIONS(4606),
    [sym_inout] = ACTIONS(4606),
    [sym_interface] = ACTIONS(4606),
    [sym_invariant] = ACTIONS(4606),
    [sym_mixin] = ACTIONS(4606),
    [sym_nothrow] = ACTIONS(4606),
    [sym_override] = ACTIONS(4606),
    [sym_package] = ACTIONS(4606),
    [sym_pragma] = ACTIONS(4606),
    [sym_private] = ACTIONS(4606),
    [sym_protected] = ACTIONS(4606),
    [sym_public] = ACTIONS(4606),
    [sym_pure] = ACTIONS(4606),
    [sym_ref] = ACTIONS(4606),
    [sym_return] = ACTIONS(4606),
    [sym_scope] = ACTIONS(4606),
    [sym_shared] = ACTIONS(4606),
    [sym_static] = ACTIONS(4606),
    [sym_struct] = ACTIONS(4606),
    [sym_synchronized] = ACTIONS(4606),
    [sym_template] = ACTIONS(4606),
    [sym_typeof] = ACTIONS(4606),
    [sym_union] = ACTIONS(4606),
    [sym_unittest] = ACTIONS(4606),
    [sym_version] = ACTIONS(4606),
    [sym_while] = ACTIONS(4606),
    [sym_gshared] = ACTIONS(4606),
    [sym_traits] = ACTIONS(4606),
    [sym_vector] = ACTIONS(4606),
    [sym_void] = ACTIONS(4606),
    [sym_directive] = ACTIONS(3),
  },
  [2834] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_else] = ACTIONS(6819),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
  },
  [2835] = {
    [sym_identifier] = ACTIONS(4876),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4878),
    [anon_sym_DOT] = ACTIONS(4878),
    [anon_sym_SEMI] = ACTIONS(4878),
    [anon_sym_TILDE] = ACTIONS(4878),
    [anon_sym_AT] = ACTIONS(4878),
    [sym_bool] = ACTIONS(4876),
    [sym_byte] = ACTIONS(4876),
    [sym_ubyte] = ACTIONS(4876),
    [sym_char] = ACTIONS(4876),
    [sym_short] = ACTIONS(4876),
    [sym_ushort] = ACTIONS(4876),
    [sym_int] = ACTIONS(4876),
    [sym_uint] = ACTIONS(4876),
    [sym_long] = ACTIONS(4876),
    [sym_ulong] = ACTIONS(4876),
    [sym_cent] = ACTIONS(4876),
    [sym_ucent] = ACTIONS(4876),
    [sym_wchar] = ACTIONS(4876),
    [sym_dchar] = ACTIONS(4876),
    [sym_float] = ACTIONS(4876),
    [sym_double] = ACTIONS(4876),
    [sym_real] = ACTIONS(4876),
    [sym_ifloat] = ACTIONS(4876),
    [sym_idouble] = ACTIONS(4876),
    [sym_ireal] = ACTIONS(4876),
    [sym_cfloat] = ACTIONS(4876),
    [sym_cdouble] = ACTIONS(4876),
    [sym_creal] = ACTIONS(4876),
    [sym_size_t] = ACTIONS(4876),
    [sym_ptrdiff_t] = ACTIONS(4876),
    [sym_string] = ACTIONS(4876),
    [sym_cstring] = ACTIONS(4876),
    [sym_dstring] = ACTIONS(4876),
    [sym_wstring] = ACTIONS(4876),
    [sym_noreturn] = ACTIONS(4876),
    [sym_this] = ACTIONS(4876),
    [sym_abstract] = ACTIONS(4876),
    [sym_alias] = ACTIONS(4876),
    [sym_align] = ACTIONS(4876),
    [sym_auto] = ACTIONS(4876),
    [sym_class] = ACTIONS(4876),
    [sym_const] = ACTIONS(4876),
    [sym_debug] = ACTIONS(4876),
    [sym_deprecated] = ACTIONS(4876),
    [sym_else] = ACTIONS(4876),
    [sym_enum] = ACTIONS(4876),
    [sym_export] = ACTIONS(4876),
    [sym_extern] = ACTIONS(4876),
    [sym_final] = ACTIONS(4876),
    [sym_immutable] = ACTIONS(4876),
    [sym_import] = ACTIONS(4876),
    [sym_inout] = ACTIONS(4876),
    [sym_interface] = ACTIONS(4876),
    [sym_invariant] = ACTIONS(4876),
    [sym_mixin] = ACTIONS(4876),
    [sym_nothrow] = ACTIONS(4876),
    [sym_override] = ACTIONS(4876),
    [sym_package] = ACTIONS(4876),
    [sym_pragma] = ACTIONS(4876),
    [sym_private] = ACTIONS(4876),
    [sym_protected] = ACTIONS(4876),
    [sym_public] = ACTIONS(4876),
    [sym_pure] = ACTIONS(4876),
    [sym_ref] = ACTIONS(4876),
    [sym_return] = ACTIONS(4876),
    [sym_scope] = ACTIONS(4876),
    [sym_shared] = ACTIONS(4876),
    [sym_static] = ACTIONS(4876),
    [sym_struct] = ACTIONS(4876),
    [sym_synchronized] = ACTIONS(4876),
    [sym_template] = ACTIONS(4876),
    [sym_typeof] = ACTIONS(4876),
    [sym_union] = ACTIONS(4876),
    [sym_unittest] = ACTIONS(4876),
    [sym_version] = ACTIONS(4876),
    [sym_while] = ACTIONS(4876),
    [sym_gshared] = ACTIONS(4876),
    [sym_traits] = ACTIONS(4876),
    [sym_vector] = ACTIONS(4876),
    [sym_void] = ACTIONS(4876),
    [sym_directive] = ACTIONS(3),
  },
  [2836] = {
    [sym_identifier] = ACTIONS(4978),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4980),
    [anon_sym_DOT] = ACTIONS(4980),
    [anon_sym_SEMI] = ACTIONS(4980),
    [anon_sym_TILDE] = ACTIONS(4980),
    [anon_sym_AT] = ACTIONS(4980),
    [sym_bool] = ACTIONS(4978),
    [sym_byte] = ACTIONS(4978),
    [sym_ubyte] = ACTIONS(4978),
    [sym_char] = ACTIONS(4978),
    [sym_short] = ACTIONS(4978),
    [sym_ushort] = ACTIONS(4978),
    [sym_int] = ACTIONS(4978),
    [sym_uint] = ACTIONS(4978),
    [sym_long] = ACTIONS(4978),
    [sym_ulong] = ACTIONS(4978),
    [sym_cent] = ACTIONS(4978),
    [sym_ucent] = ACTIONS(4978),
    [sym_wchar] = ACTIONS(4978),
    [sym_dchar] = ACTIONS(4978),
    [sym_float] = ACTIONS(4978),
    [sym_double] = ACTIONS(4978),
    [sym_real] = ACTIONS(4978),
    [sym_ifloat] = ACTIONS(4978),
    [sym_idouble] = ACTIONS(4978),
    [sym_ireal] = ACTIONS(4978),
    [sym_cfloat] = ACTIONS(4978),
    [sym_cdouble] = ACTIONS(4978),
    [sym_creal] = ACTIONS(4978),
    [sym_size_t] = ACTIONS(4978),
    [sym_ptrdiff_t] = ACTIONS(4978),
    [sym_string] = ACTIONS(4978),
    [sym_cstring] = ACTIONS(4978),
    [sym_dstring] = ACTIONS(4978),
    [sym_wstring] = ACTIONS(4978),
    [sym_noreturn] = ACTIONS(4978),
    [sym_this] = ACTIONS(4978),
    [sym_abstract] = ACTIONS(4978),
    [sym_alias] = ACTIONS(4978),
    [sym_align] = ACTIONS(4978),
    [sym_auto] = ACTIONS(4978),
    [sym_class] = ACTIONS(4978),
    [sym_const] = ACTIONS(4978),
    [sym_debug] = ACTIONS(4978),
    [sym_deprecated] = ACTIONS(4978),
    [sym_else] = ACTIONS(4978),
    [sym_enum] = ACTIONS(4978),
    [sym_export] = ACTIONS(4978),
    [sym_extern] = ACTIONS(4978),
    [sym_final] = ACTIONS(4978),
    [sym_immutable] = ACTIONS(4978),
    [sym_import] = ACTIONS(4978),
    [sym_inout] = ACTIONS(4978),
    [sym_interface] = ACTIONS(4978),
    [sym_invariant] = ACTIONS(4978),
    [sym_mixin] = ACTIONS(4978),
    [sym_nothrow] = ACTIONS(4978),
    [sym_override] = ACTIONS(4978),
    [sym_package] = ACTIONS(4978),
    [sym_pragma] = ACTIONS(4978),
    [sym_private] = ACTIONS(4978),
    [sym_protected] = ACTIONS(4978),
    [sym_public] = ACTIONS(4978),
    [sym_pure] = ACTIONS(4978),
    [sym_ref] = ACTIONS(4978),
    [sym_return] = ACTIONS(4978),
    [sym_scope] = ACTIONS(4978),
    [sym_shared] = ACTIONS(4978),
    [sym_static] = ACTIONS(4978),
    [sym_struct] = ACTIONS(4978),
    [sym_synchronized] = ACTIONS(4978),
    [sym_template] = ACTIONS(4978),
    [sym_typeof] = ACTIONS(4978),
    [sym_union] = ACTIONS(4978),
    [sym_unittest] = ACTIONS(4978),
    [sym_version] = ACTIONS(4978),
    [sym_while] = ACTIONS(4978),
    [sym_gshared] = ACTIONS(4978),
    [sym_traits] = ACTIONS(4978),
    [sym_vector] = ACTIONS(4978),
    [sym_void] = ACTIONS(4978),
    [sym_directive] = ACTIONS(3),
  },
  [2837] = {
    [sym_identifier] = ACTIONS(4982),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4984),
    [anon_sym_DOT] = ACTIONS(4984),
    [anon_sym_SEMI] = ACTIONS(4984),
    [anon_sym_TILDE] = ACTIONS(4984),
    [anon_sym_AT] = ACTIONS(4984),
    [sym_bool] = ACTIONS(4982),
    [sym_byte] = ACTIONS(4982),
    [sym_ubyte] = ACTIONS(4982),
    [sym_char] = ACTIONS(4982),
    [sym_short] = ACTIONS(4982),
    [sym_ushort] = ACTIONS(4982),
    [sym_int] = ACTIONS(4982),
    [sym_uint] = ACTIONS(4982),
    [sym_long] = ACTIONS(4982),
    [sym_ulong] = ACTIONS(4982),
    [sym_cent] = ACTIONS(4982),
    [sym_ucent] = ACTIONS(4982),
    [sym_wchar] = ACTIONS(4982),
    [sym_dchar] = ACTIONS(4982),
    [sym_float] = ACTIONS(4982),
    [sym_double] = ACTIONS(4982),
    [sym_real] = ACTIONS(4982),
    [sym_ifloat] = ACTIONS(4982),
    [sym_idouble] = ACTIONS(4982),
    [sym_ireal] = ACTIONS(4982),
    [sym_cfloat] = ACTIONS(4982),
    [sym_cdouble] = ACTIONS(4982),
    [sym_creal] = ACTIONS(4982),
    [sym_size_t] = ACTIONS(4982),
    [sym_ptrdiff_t] = ACTIONS(4982),
    [sym_string] = ACTIONS(4982),
    [sym_cstring] = ACTIONS(4982),
    [sym_dstring] = ACTIONS(4982),
    [sym_wstring] = ACTIONS(4982),
    [sym_noreturn] = ACTIONS(4982),
    [sym_this] = ACTIONS(4982),
    [sym_abstract] = ACTIONS(4982),
    [sym_alias] = ACTIONS(4982),
    [sym_align] = ACTIONS(4982),
    [sym_auto] = ACTIONS(4982),
    [sym_class] = ACTIONS(4982),
    [sym_const] = ACTIONS(4982),
    [sym_debug] = ACTIONS(4982),
    [sym_deprecated] = ACTIONS(4982),
    [sym_else] = ACTIONS(4982),
    [sym_enum] = ACTIONS(4982),
    [sym_export] = ACTIONS(4982),
    [sym_extern] = ACTIONS(4982),
    [sym_final] = ACTIONS(4982),
    [sym_immutable] = ACTIONS(4982),
    [sym_import] = ACTIONS(4982),
    [sym_inout] = ACTIONS(4982),
    [sym_interface] = ACTIONS(4982),
    [sym_invariant] = ACTIONS(4982),
    [sym_mixin] = ACTIONS(4982),
    [sym_nothrow] = ACTIONS(4982),
    [sym_override] = ACTIONS(4982),
    [sym_package] = ACTIONS(4982),
    [sym_pragma] = ACTIONS(4982),
    [sym_private] = ACTIONS(4982),
    [sym_protected] = ACTIONS(4982),
    [sym_public] = ACTIONS(4982),
    [sym_pure] = ACTIONS(4982),
    [sym_ref] = ACTIONS(4982),
    [sym_return] = ACTIONS(4982),
    [sym_scope] = ACTIONS(4982),
    [sym_shared] = ACTIONS(4982),
    [sym_static] = ACTIONS(4982),
    [sym_struct] = ACTIONS(4982),
    [sym_synchronized] = ACTIONS(4982),
    [sym_template] = ACTIONS(4982),
    [sym_typeof] = ACTIONS(4982),
    [sym_union] = ACTIONS(4982),
    [sym_unittest] = ACTIONS(4982),
    [sym_version] = ACTIONS(4982),
    [sym_while] = ACTIONS(4982),
    [sym_gshared] = ACTIONS(4982),
    [sym_traits] = ACTIONS(4982),
    [sym_vector] = ACTIONS(4982),
    [sym_void] = ACTIONS(4982),
    [sym_directive] = ACTIONS(3),
  },
  [2838] = {
    [sym_identifier] = ACTIONS(4986),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4988),
    [anon_sym_DOT] = ACTIONS(4988),
    [anon_sym_SEMI] = ACTIONS(4988),
    [anon_sym_TILDE] = ACTIONS(4988),
    [anon_sym_AT] = ACTIONS(4988),
    [sym_bool] = ACTIONS(4986),
    [sym_byte] = ACTIONS(4986),
    [sym_ubyte] = ACTIONS(4986),
    [sym_char] = ACTIONS(4986),
    [sym_short] = ACTIONS(4986),
    [sym_ushort] = ACTIONS(4986),
    [sym_int] = ACTIONS(4986),
    [sym_uint] = ACTIONS(4986),
    [sym_long] = ACTIONS(4986),
    [sym_ulong] = ACTIONS(4986),
    [sym_cent] = ACTIONS(4986),
    [sym_ucent] = ACTIONS(4986),
    [sym_wchar] = ACTIONS(4986),
    [sym_dchar] = ACTIONS(4986),
    [sym_float] = ACTIONS(4986),
    [sym_double] = ACTIONS(4986),
    [sym_real] = ACTIONS(4986),
    [sym_ifloat] = ACTIONS(4986),
    [sym_idouble] = ACTIONS(4986),
    [sym_ireal] = ACTIONS(4986),
    [sym_cfloat] = ACTIONS(4986),
    [sym_cdouble] = ACTIONS(4986),
    [sym_creal] = ACTIONS(4986),
    [sym_size_t] = ACTIONS(4986),
    [sym_ptrdiff_t] = ACTIONS(4986),
    [sym_string] = ACTIONS(4986),
    [sym_cstring] = ACTIONS(4986),
    [sym_dstring] = ACTIONS(4986),
    [sym_wstring] = ACTIONS(4986),
    [sym_noreturn] = ACTIONS(4986),
    [sym_this] = ACTIONS(4986),
    [sym_abstract] = ACTIONS(4986),
    [sym_alias] = ACTIONS(4986),
    [sym_align] = ACTIONS(4986),
    [sym_auto] = ACTIONS(4986),
    [sym_class] = ACTIONS(4986),
    [sym_const] = ACTIONS(4986),
    [sym_debug] = ACTIONS(4986),
    [sym_deprecated] = ACTIONS(4986),
    [sym_else] = ACTIONS(4986),
    [sym_enum] = ACTIONS(4986),
    [sym_export] = ACTIONS(4986),
    [sym_extern] = ACTIONS(4986),
    [sym_final] = ACTIONS(4986),
    [sym_immutable] = ACTIONS(4986),
    [sym_import] = ACTIONS(4986),
    [sym_inout] = ACTIONS(4986),
    [sym_interface] = ACTIONS(4986),
    [sym_invariant] = ACTIONS(4986),
    [sym_mixin] = ACTIONS(4986),
    [sym_nothrow] = ACTIONS(4986),
    [sym_override] = ACTIONS(4986),
    [sym_package] = ACTIONS(4986),
    [sym_pragma] = ACTIONS(4986),
    [sym_private] = ACTIONS(4986),
    [sym_protected] = ACTIONS(4986),
    [sym_public] = ACTIONS(4986),
    [sym_pure] = ACTIONS(4986),
    [sym_ref] = ACTIONS(4986),
    [sym_return] = ACTIONS(4986),
    [sym_scope] = ACTIONS(4986),
    [sym_shared] = ACTIONS(4986),
    [sym_static] = ACTIONS(4986),
    [sym_struct] = ACTIONS(4986),
    [sym_synchronized] = ACTIONS(4986),
    [sym_template] = ACTIONS(4986),
    [sym_typeof] = ACTIONS(4986),
    [sym_union] = ACTIONS(4986),
    [sym_unittest] = ACTIONS(4986),
    [sym_version] = ACTIONS(4986),
    [sym_while] = ACTIONS(4986),
    [sym_gshared] = ACTIONS(4986),
    [sym_traits] = ACTIONS(4986),
    [sym_vector] = ACTIONS(4986),
    [sym_void] = ACTIONS(4986),
    [sym_directive] = ACTIONS(3),
  },
  [2839] = {
    [sym_identifier] = ACTIONS(4990),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4992),
    [anon_sym_DOT] = ACTIONS(4992),
    [anon_sym_SEMI] = ACTIONS(4992),
    [anon_sym_TILDE] = ACTIONS(4992),
    [anon_sym_AT] = ACTIONS(4992),
    [sym_bool] = ACTIONS(4990),
    [sym_byte] = ACTIONS(4990),
    [sym_ubyte] = ACTIONS(4990),
    [sym_char] = ACTIONS(4990),
    [sym_short] = ACTIONS(4990),
    [sym_ushort] = ACTIONS(4990),
    [sym_int] = ACTIONS(4990),
    [sym_uint] = ACTIONS(4990),
    [sym_long] = ACTIONS(4990),
    [sym_ulong] = ACTIONS(4990),
    [sym_cent] = ACTIONS(4990),
    [sym_ucent] = ACTIONS(4990),
    [sym_wchar] = ACTIONS(4990),
    [sym_dchar] = ACTIONS(4990),
    [sym_float] = ACTIONS(4990),
    [sym_double] = ACTIONS(4990),
    [sym_real] = ACTIONS(4990),
    [sym_ifloat] = ACTIONS(4990),
    [sym_idouble] = ACTIONS(4990),
    [sym_ireal] = ACTIONS(4990),
    [sym_cfloat] = ACTIONS(4990),
    [sym_cdouble] = ACTIONS(4990),
    [sym_creal] = ACTIONS(4990),
    [sym_size_t] = ACTIONS(4990),
    [sym_ptrdiff_t] = ACTIONS(4990),
    [sym_string] = ACTIONS(4990),
    [sym_cstring] = ACTIONS(4990),
    [sym_dstring] = ACTIONS(4990),
    [sym_wstring] = ACTIONS(4990),
    [sym_noreturn] = ACTIONS(4990),
    [sym_this] = ACTIONS(4990),
    [sym_abstract] = ACTIONS(4990),
    [sym_alias] = ACTIONS(4990),
    [sym_align] = ACTIONS(4990),
    [sym_auto] = ACTIONS(4990),
    [sym_class] = ACTIONS(4990),
    [sym_const] = ACTIONS(4990),
    [sym_debug] = ACTIONS(4990),
    [sym_deprecated] = ACTIONS(4990),
    [sym_else] = ACTIONS(4990),
    [sym_enum] = ACTIONS(4990),
    [sym_export] = ACTIONS(4990),
    [sym_extern] = ACTIONS(4990),
    [sym_final] = ACTIONS(4990),
    [sym_immutable] = ACTIONS(4990),
    [sym_import] = ACTIONS(4990),
    [sym_inout] = ACTIONS(4990),
    [sym_interface] = ACTIONS(4990),
    [sym_invariant] = ACTIONS(4990),
    [sym_mixin] = ACTIONS(4990),
    [sym_nothrow] = ACTIONS(4990),
    [sym_override] = ACTIONS(4990),
    [sym_package] = ACTIONS(4990),
    [sym_pragma] = ACTIONS(4990),
    [sym_private] = ACTIONS(4990),
    [sym_protected] = ACTIONS(4990),
    [sym_public] = ACTIONS(4990),
    [sym_pure] = ACTIONS(4990),
    [sym_ref] = ACTIONS(4990),
    [sym_return] = ACTIONS(4990),
    [sym_scope] = ACTIONS(4990),
    [sym_shared] = ACTIONS(4990),
    [sym_static] = ACTIONS(4990),
    [sym_struct] = ACTIONS(4990),
    [sym_synchronized] = ACTIONS(4990),
    [sym_template] = ACTIONS(4990),
    [sym_typeof] = ACTIONS(4990),
    [sym_union] = ACTIONS(4990),
    [sym_unittest] = ACTIONS(4990),
    [sym_version] = ACTIONS(4990),
    [sym_while] = ACTIONS(4990),
    [sym_gshared] = ACTIONS(4990),
    [sym_traits] = ACTIONS(4990),
    [sym_vector] = ACTIONS(4990),
    [sym_void] = ACTIONS(4990),
    [sym_directive] = ACTIONS(3),
  },
  [2840] = {
    [sym_identifier] = ACTIONS(5016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5018),
    [anon_sym_DOT] = ACTIONS(5018),
    [anon_sym_SEMI] = ACTIONS(5018),
    [anon_sym_TILDE] = ACTIONS(5018),
    [anon_sym_AT] = ACTIONS(5018),
    [sym_bool] = ACTIONS(5016),
    [sym_byte] = ACTIONS(5016),
    [sym_ubyte] = ACTIONS(5016),
    [sym_char] = ACTIONS(5016),
    [sym_short] = ACTIONS(5016),
    [sym_ushort] = ACTIONS(5016),
    [sym_int] = ACTIONS(5016),
    [sym_uint] = ACTIONS(5016),
    [sym_long] = ACTIONS(5016),
    [sym_ulong] = ACTIONS(5016),
    [sym_cent] = ACTIONS(5016),
    [sym_ucent] = ACTIONS(5016),
    [sym_wchar] = ACTIONS(5016),
    [sym_dchar] = ACTIONS(5016),
    [sym_float] = ACTIONS(5016),
    [sym_double] = ACTIONS(5016),
    [sym_real] = ACTIONS(5016),
    [sym_ifloat] = ACTIONS(5016),
    [sym_idouble] = ACTIONS(5016),
    [sym_ireal] = ACTIONS(5016),
    [sym_cfloat] = ACTIONS(5016),
    [sym_cdouble] = ACTIONS(5016),
    [sym_creal] = ACTIONS(5016),
    [sym_size_t] = ACTIONS(5016),
    [sym_ptrdiff_t] = ACTIONS(5016),
    [sym_string] = ACTIONS(5016),
    [sym_cstring] = ACTIONS(5016),
    [sym_dstring] = ACTIONS(5016),
    [sym_wstring] = ACTIONS(5016),
    [sym_noreturn] = ACTIONS(5016),
    [sym_this] = ACTIONS(5016),
    [sym_abstract] = ACTIONS(5016),
    [sym_alias] = ACTIONS(5016),
    [sym_align] = ACTIONS(5016),
    [sym_auto] = ACTIONS(5016),
    [sym_class] = ACTIONS(5016),
    [sym_const] = ACTIONS(5016),
    [sym_debug] = ACTIONS(5016),
    [sym_deprecated] = ACTIONS(5016),
    [sym_else] = ACTIONS(5016),
    [sym_enum] = ACTIONS(5016),
    [sym_export] = ACTIONS(5016),
    [sym_extern] = ACTIONS(5016),
    [sym_final] = ACTIONS(5016),
    [sym_immutable] = ACTIONS(5016),
    [sym_import] = ACTIONS(5016),
    [sym_inout] = ACTIONS(5016),
    [sym_interface] = ACTIONS(5016),
    [sym_invariant] = ACTIONS(5016),
    [sym_mixin] = ACTIONS(5016),
    [sym_nothrow] = ACTIONS(5016),
    [sym_override] = ACTIONS(5016),
    [sym_package] = ACTIONS(5016),
    [sym_pragma] = ACTIONS(5016),
    [sym_private] = ACTIONS(5016),
    [sym_protected] = ACTIONS(5016),
    [sym_public] = ACTIONS(5016),
    [sym_pure] = ACTIONS(5016),
    [sym_ref] = ACTIONS(5016),
    [sym_return] = ACTIONS(5016),
    [sym_scope] = ACTIONS(5016),
    [sym_shared] = ACTIONS(5016),
    [sym_static] = ACTIONS(5016),
    [sym_struct] = ACTIONS(5016),
    [sym_synchronized] = ACTIONS(5016),
    [sym_template] = ACTIONS(5016),
    [sym_typeof] = ACTIONS(5016),
    [sym_union] = ACTIONS(5016),
    [sym_unittest] = ACTIONS(5016),
    [sym_version] = ACTIONS(5016),
    [sym_while] = ACTIONS(5016),
    [sym_gshared] = ACTIONS(5016),
    [sym_traits] = ACTIONS(5016),
    [sym_vector] = ACTIONS(5016),
    [sym_void] = ACTIONS(5016),
    [sym_directive] = ACTIONS(3),
  },
  [2841] = {
    [sym_identifier] = ACTIONS(5020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5022),
    [anon_sym_DOT] = ACTIONS(5022),
    [anon_sym_SEMI] = ACTIONS(5022),
    [anon_sym_TILDE] = ACTIONS(5022),
    [anon_sym_AT] = ACTIONS(5022),
    [sym_bool] = ACTIONS(5020),
    [sym_byte] = ACTIONS(5020),
    [sym_ubyte] = ACTIONS(5020),
    [sym_char] = ACTIONS(5020),
    [sym_short] = ACTIONS(5020),
    [sym_ushort] = ACTIONS(5020),
    [sym_int] = ACTIONS(5020),
    [sym_uint] = ACTIONS(5020),
    [sym_long] = ACTIONS(5020),
    [sym_ulong] = ACTIONS(5020),
    [sym_cent] = ACTIONS(5020),
    [sym_ucent] = ACTIONS(5020),
    [sym_wchar] = ACTIONS(5020),
    [sym_dchar] = ACTIONS(5020),
    [sym_float] = ACTIONS(5020),
    [sym_double] = ACTIONS(5020),
    [sym_real] = ACTIONS(5020),
    [sym_ifloat] = ACTIONS(5020),
    [sym_idouble] = ACTIONS(5020),
    [sym_ireal] = ACTIONS(5020),
    [sym_cfloat] = ACTIONS(5020),
    [sym_cdouble] = ACTIONS(5020),
    [sym_creal] = ACTIONS(5020),
    [sym_size_t] = ACTIONS(5020),
    [sym_ptrdiff_t] = ACTIONS(5020),
    [sym_string] = ACTIONS(5020),
    [sym_cstring] = ACTIONS(5020),
    [sym_dstring] = ACTIONS(5020),
    [sym_wstring] = ACTIONS(5020),
    [sym_noreturn] = ACTIONS(5020),
    [sym_this] = ACTIONS(5020),
    [sym_abstract] = ACTIONS(5020),
    [sym_alias] = ACTIONS(5020),
    [sym_align] = ACTIONS(5020),
    [sym_auto] = ACTIONS(5020),
    [sym_class] = ACTIONS(5020),
    [sym_const] = ACTIONS(5020),
    [sym_debug] = ACTIONS(5020),
    [sym_deprecated] = ACTIONS(5020),
    [sym_else] = ACTIONS(5020),
    [sym_enum] = ACTIONS(5020),
    [sym_export] = ACTIONS(5020),
    [sym_extern] = ACTIONS(5020),
    [sym_final] = ACTIONS(5020),
    [sym_immutable] = ACTIONS(5020),
    [sym_import] = ACTIONS(5020),
    [sym_inout] = ACTIONS(5020),
    [sym_interface] = ACTIONS(5020),
    [sym_invariant] = ACTIONS(5020),
    [sym_mixin] = ACTIONS(5020),
    [sym_nothrow] = ACTIONS(5020),
    [sym_override] = ACTIONS(5020),
    [sym_package] = ACTIONS(5020),
    [sym_pragma] = ACTIONS(5020),
    [sym_private] = ACTIONS(5020),
    [sym_protected] = ACTIONS(5020),
    [sym_public] = ACTIONS(5020),
    [sym_pure] = ACTIONS(5020),
    [sym_ref] = ACTIONS(5020),
    [sym_return] = ACTIONS(5020),
    [sym_scope] = ACTIONS(5020),
    [sym_shared] = ACTIONS(5020),
    [sym_static] = ACTIONS(5020),
    [sym_struct] = ACTIONS(5020),
    [sym_synchronized] = ACTIONS(5020),
    [sym_template] = ACTIONS(5020),
    [sym_typeof] = ACTIONS(5020),
    [sym_union] = ACTIONS(5020),
    [sym_unittest] = ACTIONS(5020),
    [sym_version] = ACTIONS(5020),
    [sym_while] = ACTIONS(5020),
    [sym_gshared] = ACTIONS(5020),
    [sym_traits] = ACTIONS(5020),
    [sym_vector] = ACTIONS(5020),
    [sym_void] = ACTIONS(5020),
    [sym_directive] = ACTIONS(3),
  },
  [2842] = {
    [sym_identifier] = ACTIONS(4754),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4756),
    [anon_sym_DOT] = ACTIONS(4756),
    [anon_sym_SEMI] = ACTIONS(4756),
    [anon_sym_TILDE] = ACTIONS(4756),
    [anon_sym_AT] = ACTIONS(4756),
    [sym_bool] = ACTIONS(4754),
    [sym_byte] = ACTIONS(4754),
    [sym_ubyte] = ACTIONS(4754),
    [sym_char] = ACTIONS(4754),
    [sym_short] = ACTIONS(4754),
    [sym_ushort] = ACTIONS(4754),
    [sym_int] = ACTIONS(4754),
    [sym_uint] = ACTIONS(4754),
    [sym_long] = ACTIONS(4754),
    [sym_ulong] = ACTIONS(4754),
    [sym_cent] = ACTIONS(4754),
    [sym_ucent] = ACTIONS(4754),
    [sym_wchar] = ACTIONS(4754),
    [sym_dchar] = ACTIONS(4754),
    [sym_float] = ACTIONS(4754),
    [sym_double] = ACTIONS(4754),
    [sym_real] = ACTIONS(4754),
    [sym_ifloat] = ACTIONS(4754),
    [sym_idouble] = ACTIONS(4754),
    [sym_ireal] = ACTIONS(4754),
    [sym_cfloat] = ACTIONS(4754),
    [sym_cdouble] = ACTIONS(4754),
    [sym_creal] = ACTIONS(4754),
    [sym_size_t] = ACTIONS(4754),
    [sym_ptrdiff_t] = ACTIONS(4754),
    [sym_string] = ACTIONS(4754),
    [sym_cstring] = ACTIONS(4754),
    [sym_dstring] = ACTIONS(4754),
    [sym_wstring] = ACTIONS(4754),
    [sym_noreturn] = ACTIONS(4754),
    [sym_this] = ACTIONS(4754),
    [sym_abstract] = ACTIONS(4754),
    [sym_alias] = ACTIONS(4754),
    [sym_align] = ACTIONS(4754),
    [sym_auto] = ACTIONS(4754),
    [sym_class] = ACTIONS(4754),
    [sym_const] = ACTIONS(4754),
    [sym_debug] = ACTIONS(4754),
    [sym_deprecated] = ACTIONS(4754),
    [sym_else] = ACTIONS(4754),
    [sym_enum] = ACTIONS(4754),
    [sym_export] = ACTIONS(4754),
    [sym_extern] = ACTIONS(4754),
    [sym_final] = ACTIONS(4754),
    [sym_immutable] = ACTIONS(4754),
    [sym_import] = ACTIONS(4754),
    [sym_inout] = ACTIONS(4754),
    [sym_interface] = ACTIONS(4754),
    [sym_invariant] = ACTIONS(4754),
    [sym_mixin] = ACTIONS(4754),
    [sym_nothrow] = ACTIONS(4754),
    [sym_override] = ACTIONS(4754),
    [sym_package] = ACTIONS(4754),
    [sym_pragma] = ACTIONS(4754),
    [sym_private] = ACTIONS(4754),
    [sym_protected] = ACTIONS(4754),
    [sym_public] = ACTIONS(4754),
    [sym_pure] = ACTIONS(4754),
    [sym_ref] = ACTIONS(4754),
    [sym_return] = ACTIONS(4754),
    [sym_scope] = ACTIONS(4754),
    [sym_shared] = ACTIONS(4754),
    [sym_static] = ACTIONS(4754),
    [sym_struct] = ACTIONS(4754),
    [sym_synchronized] = ACTIONS(4754),
    [sym_template] = ACTIONS(4754),
    [sym_typeof] = ACTIONS(4754),
    [sym_union] = ACTIONS(4754),
    [sym_unittest] = ACTIONS(4754),
    [sym_version] = ACTIONS(4754),
    [sym_while] = ACTIONS(4754),
    [sym_gshared] = ACTIONS(4754),
    [sym_traits] = ACTIONS(4754),
    [sym_vector] = ACTIONS(4754),
    [sym_void] = ACTIONS(4754),
    [sym_directive] = ACTIONS(3),
  },
  [2843] = {
    [sym_identifier] = ACTIONS(4848),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4850),
    [anon_sym_DOT] = ACTIONS(4850),
    [anon_sym_SEMI] = ACTIONS(4850),
    [anon_sym_TILDE] = ACTIONS(4850),
    [anon_sym_AT] = ACTIONS(4850),
    [sym_bool] = ACTIONS(4848),
    [sym_byte] = ACTIONS(4848),
    [sym_ubyte] = ACTIONS(4848),
    [sym_char] = ACTIONS(4848),
    [sym_short] = ACTIONS(4848),
    [sym_ushort] = ACTIONS(4848),
    [sym_int] = ACTIONS(4848),
    [sym_uint] = ACTIONS(4848),
    [sym_long] = ACTIONS(4848),
    [sym_ulong] = ACTIONS(4848),
    [sym_cent] = ACTIONS(4848),
    [sym_ucent] = ACTIONS(4848),
    [sym_wchar] = ACTIONS(4848),
    [sym_dchar] = ACTIONS(4848),
    [sym_float] = ACTIONS(4848),
    [sym_double] = ACTIONS(4848),
    [sym_real] = ACTIONS(4848),
    [sym_ifloat] = ACTIONS(4848),
    [sym_idouble] = ACTIONS(4848),
    [sym_ireal] = ACTIONS(4848),
    [sym_cfloat] = ACTIONS(4848),
    [sym_cdouble] = ACTIONS(4848),
    [sym_creal] = ACTIONS(4848),
    [sym_size_t] = ACTIONS(4848),
    [sym_ptrdiff_t] = ACTIONS(4848),
    [sym_string] = ACTIONS(4848),
    [sym_cstring] = ACTIONS(4848),
    [sym_dstring] = ACTIONS(4848),
    [sym_wstring] = ACTIONS(4848),
    [sym_noreturn] = ACTIONS(4848),
    [sym_this] = ACTIONS(4848),
    [sym_abstract] = ACTIONS(4848),
    [sym_alias] = ACTIONS(4848),
    [sym_align] = ACTIONS(4848),
    [sym_auto] = ACTIONS(4848),
    [sym_class] = ACTIONS(4848),
    [sym_const] = ACTIONS(4848),
    [sym_debug] = ACTIONS(4848),
    [sym_deprecated] = ACTIONS(4848),
    [sym_else] = ACTIONS(4848),
    [sym_enum] = ACTIONS(4848),
    [sym_export] = ACTIONS(4848),
    [sym_extern] = ACTIONS(4848),
    [sym_final] = ACTIONS(4848),
    [sym_immutable] = ACTIONS(4848),
    [sym_import] = ACTIONS(4848),
    [sym_inout] = ACTIONS(4848),
    [sym_interface] = ACTIONS(4848),
    [sym_invariant] = ACTIONS(4848),
    [sym_mixin] = ACTIONS(4848),
    [sym_nothrow] = ACTIONS(4848),
    [sym_override] = ACTIONS(4848),
    [sym_package] = ACTIONS(4848),
    [sym_pragma] = ACTIONS(4848),
    [sym_private] = ACTIONS(4848),
    [sym_protected] = ACTIONS(4848),
    [sym_public] = ACTIONS(4848),
    [sym_pure] = ACTIONS(4848),
    [sym_ref] = ACTIONS(4848),
    [sym_return] = ACTIONS(4848),
    [sym_scope] = ACTIONS(4848),
    [sym_shared] = ACTIONS(4848),
    [sym_static] = ACTIONS(4848),
    [sym_struct] = ACTIONS(4848),
    [sym_synchronized] = ACTIONS(4848),
    [sym_template] = ACTIONS(4848),
    [sym_typeof] = ACTIONS(4848),
    [sym_union] = ACTIONS(4848),
    [sym_unittest] = ACTIONS(4848),
    [sym_version] = ACTIONS(4848),
    [sym_while] = ACTIONS(4848),
    [sym_gshared] = ACTIONS(4848),
    [sym_traits] = ACTIONS(4848),
    [sym_vector] = ACTIONS(4848),
    [sym_void] = ACTIONS(4848),
    [sym_directive] = ACTIONS(3),
  },
  [2844] = {
    [sym_identifier] = ACTIONS(2798),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(2796),
    [anon_sym_DOT] = ACTIONS(2796),
    [anon_sym_SEMI] = ACTIONS(2796),
    [anon_sym_TILDE] = ACTIONS(2796),
    [anon_sym_AT] = ACTIONS(2796),
    [sym_bool] = ACTIONS(2798),
    [sym_byte] = ACTIONS(2798),
    [sym_ubyte] = ACTIONS(2798),
    [sym_char] = ACTIONS(2798),
    [sym_short] = ACTIONS(2798),
    [sym_ushort] = ACTIONS(2798),
    [sym_int] = ACTIONS(2798),
    [sym_uint] = ACTIONS(2798),
    [sym_long] = ACTIONS(2798),
    [sym_ulong] = ACTIONS(2798),
    [sym_cent] = ACTIONS(2798),
    [sym_ucent] = ACTIONS(2798),
    [sym_wchar] = ACTIONS(2798),
    [sym_dchar] = ACTIONS(2798),
    [sym_float] = ACTIONS(2798),
    [sym_double] = ACTIONS(2798),
    [sym_real] = ACTIONS(2798),
    [sym_ifloat] = ACTIONS(2798),
    [sym_idouble] = ACTIONS(2798),
    [sym_ireal] = ACTIONS(2798),
    [sym_cfloat] = ACTIONS(2798),
    [sym_cdouble] = ACTIONS(2798),
    [sym_creal] = ACTIONS(2798),
    [sym_size_t] = ACTIONS(2798),
    [sym_ptrdiff_t] = ACTIONS(2798),
    [sym_string] = ACTIONS(2798),
    [sym_cstring] = ACTIONS(2798),
    [sym_dstring] = ACTIONS(2798),
    [sym_wstring] = ACTIONS(2798),
    [sym_noreturn] = ACTIONS(2798),
    [sym_this] = ACTIONS(2798),
    [sym_abstract] = ACTIONS(2798),
    [sym_alias] = ACTIONS(2798),
    [sym_align] = ACTIONS(2798),
    [sym_auto] = ACTIONS(2798),
    [sym_class] = ACTIONS(2798),
    [sym_const] = ACTIONS(2798),
    [sym_debug] = ACTIONS(2798),
    [sym_deprecated] = ACTIONS(2798),
    [sym_else] = ACTIONS(2798),
    [sym_enum] = ACTIONS(2798),
    [sym_export] = ACTIONS(2798),
    [sym_extern] = ACTIONS(2798),
    [sym_final] = ACTIONS(2798),
    [sym_immutable] = ACTIONS(2798),
    [sym_import] = ACTIONS(2798),
    [sym_inout] = ACTIONS(2798),
    [sym_interface] = ACTIONS(2798),
    [sym_invariant] = ACTIONS(2798),
    [sym_mixin] = ACTIONS(2798),
    [sym_nothrow] = ACTIONS(2798),
    [sym_override] = ACTIONS(2798),
    [sym_package] = ACTIONS(2798),
    [sym_pragma] = ACTIONS(2798),
    [sym_private] = ACTIONS(2798),
    [sym_protected] = ACTIONS(2798),
    [sym_public] = ACTIONS(2798),
    [sym_pure] = ACTIONS(2798),
    [sym_ref] = ACTIONS(2798),
    [sym_return] = ACTIONS(2798),
    [sym_scope] = ACTIONS(2798),
    [sym_shared] = ACTIONS(2798),
    [sym_static] = ACTIONS(2798),
    [sym_struct] = ACTIONS(2798),
    [sym_synchronized] = ACTIONS(2798),
    [sym_template] = ACTIONS(2798),
    [sym_typeof] = ACTIONS(2798),
    [sym_union] = ACTIONS(2798),
    [sym_unittest] = ACTIONS(2798),
    [sym_version] = ACTIONS(2798),
    [sym_while] = ACTIONS(2798),
    [sym_gshared] = ACTIONS(2798),
    [sym_traits] = ACTIONS(2798),
    [sym_vector] = ACTIONS(2798),
    [sym_void] = ACTIONS(2798),
    [sym_directive] = ACTIONS(3),
  },
  [2845] = {
    [sym_identifier] = ACTIONS(4293),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4295),
    [anon_sym_DOT] = ACTIONS(4295),
    [anon_sym_SEMI] = ACTIONS(4295),
    [anon_sym_TILDE] = ACTIONS(4295),
    [anon_sym_AT] = ACTIONS(4295),
    [sym_bool] = ACTIONS(4293),
    [sym_byte] = ACTIONS(4293),
    [sym_ubyte] = ACTIONS(4293),
    [sym_char] = ACTIONS(4293),
    [sym_short] = ACTIONS(4293),
    [sym_ushort] = ACTIONS(4293),
    [sym_int] = ACTIONS(4293),
    [sym_uint] = ACTIONS(4293),
    [sym_long] = ACTIONS(4293),
    [sym_ulong] = ACTIONS(4293),
    [sym_cent] = ACTIONS(4293),
    [sym_ucent] = ACTIONS(4293),
    [sym_wchar] = ACTIONS(4293),
    [sym_dchar] = ACTIONS(4293),
    [sym_float] = ACTIONS(4293),
    [sym_double] = ACTIONS(4293),
    [sym_real] = ACTIONS(4293),
    [sym_ifloat] = ACTIONS(4293),
    [sym_idouble] = ACTIONS(4293),
    [sym_ireal] = ACTIONS(4293),
    [sym_cfloat] = ACTIONS(4293),
    [sym_cdouble] = ACTIONS(4293),
    [sym_creal] = ACTIONS(4293),
    [sym_size_t] = ACTIONS(4293),
    [sym_ptrdiff_t] = ACTIONS(4293),
    [sym_string] = ACTIONS(4293),
    [sym_cstring] = ACTIONS(4293),
    [sym_dstring] = ACTIONS(4293),
    [sym_wstring] = ACTIONS(4293),
    [sym_noreturn] = ACTIONS(4293),
    [sym_this] = ACTIONS(4293),
    [sym_abstract] = ACTIONS(4293),
    [sym_alias] = ACTIONS(4293),
    [sym_align] = ACTIONS(4293),
    [sym_auto] = ACTIONS(4293),
    [sym_class] = ACTIONS(4293),
    [sym_const] = ACTIONS(4293),
    [sym_debug] = ACTIONS(4293),
    [sym_deprecated] = ACTIONS(4293),
    [sym_else] = ACTIONS(4293),
    [sym_enum] = ACTIONS(4293),
    [sym_export] = ACTIONS(4293),
    [sym_extern] = ACTIONS(4293),
    [sym_final] = ACTIONS(4293),
    [sym_immutable] = ACTIONS(4293),
    [sym_import] = ACTIONS(4293),
    [sym_inout] = ACTIONS(4293),
    [sym_interface] = ACTIONS(4293),
    [sym_invariant] = ACTIONS(4293),
    [sym_mixin] = ACTIONS(4293),
    [sym_nothrow] = ACTIONS(4293),
    [sym_override] = ACTIONS(4293),
    [sym_package] = ACTIONS(4293),
    [sym_pragma] = ACTIONS(4293),
    [sym_private] = ACTIONS(4293),
    [sym_protected] = ACTIONS(4293),
    [sym_public] = ACTIONS(4293),
    [sym_pure] = ACTIONS(4293),
    [sym_ref] = ACTIONS(4293),
    [sym_return] = ACTIONS(4293),
    [sym_scope] = ACTIONS(4293),
    [sym_shared] = ACTIONS(4293),
    [sym_static] = ACTIONS(4293),
    [sym_struct] = ACTIONS(4293),
    [sym_synchronized] = ACTIONS(4293),
    [sym_template] = ACTIONS(4293),
    [sym_typeof] = ACTIONS(4293),
    [sym_union] = ACTIONS(4293),
    [sym_unittest] = ACTIONS(4293),
    [sym_version] = ACTIONS(4293),
    [sym_while] = ACTIONS(4293),
    [sym_gshared] = ACTIONS(4293),
    [sym_traits] = ACTIONS(4293),
    [sym_vector] = ACTIONS(4293),
    [sym_void] = ACTIONS(4293),
    [sym_directive] = ACTIONS(3),
  },
  [2846] = {
    [sym_identifier] = ACTIONS(5032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5034),
    [anon_sym_DOT] = ACTIONS(5034),
    [anon_sym_SEMI] = ACTIONS(5034),
    [anon_sym_TILDE] = ACTIONS(5034),
    [anon_sym_AT] = ACTIONS(5034),
    [sym_bool] = ACTIONS(5032),
    [sym_byte] = ACTIONS(5032),
    [sym_ubyte] = ACTIONS(5032),
    [sym_char] = ACTIONS(5032),
    [sym_short] = ACTIONS(5032),
    [sym_ushort] = ACTIONS(5032),
    [sym_int] = ACTIONS(5032),
    [sym_uint] = ACTIONS(5032),
    [sym_long] = ACTIONS(5032),
    [sym_ulong] = ACTIONS(5032),
    [sym_cent] = ACTIONS(5032),
    [sym_ucent] = ACTIONS(5032),
    [sym_wchar] = ACTIONS(5032),
    [sym_dchar] = ACTIONS(5032),
    [sym_float] = ACTIONS(5032),
    [sym_double] = ACTIONS(5032),
    [sym_real] = ACTIONS(5032),
    [sym_ifloat] = ACTIONS(5032),
    [sym_idouble] = ACTIONS(5032),
    [sym_ireal] = ACTIONS(5032),
    [sym_cfloat] = ACTIONS(5032),
    [sym_cdouble] = ACTIONS(5032),
    [sym_creal] = ACTIONS(5032),
    [sym_size_t] = ACTIONS(5032),
    [sym_ptrdiff_t] = ACTIONS(5032),
    [sym_string] = ACTIONS(5032),
    [sym_cstring] = ACTIONS(5032),
    [sym_dstring] = ACTIONS(5032),
    [sym_wstring] = ACTIONS(5032),
    [sym_noreturn] = ACTIONS(5032),
    [sym_this] = ACTIONS(5032),
    [sym_abstract] = ACTIONS(5032),
    [sym_alias] = ACTIONS(5032),
    [sym_align] = ACTIONS(5032),
    [sym_auto] = ACTIONS(5032),
    [sym_class] = ACTIONS(5032),
    [sym_const] = ACTIONS(5032),
    [sym_debug] = ACTIONS(5032),
    [sym_deprecated] = ACTIONS(5032),
    [sym_else] = ACTIONS(5032),
    [sym_enum] = ACTIONS(5032),
    [sym_export] = ACTIONS(5032),
    [sym_extern] = ACTIONS(5032),
    [sym_final] = ACTIONS(5032),
    [sym_immutable] = ACTIONS(5032),
    [sym_import] = ACTIONS(5032),
    [sym_inout] = ACTIONS(5032),
    [sym_interface] = ACTIONS(5032),
    [sym_invariant] = ACTIONS(5032),
    [sym_mixin] = ACTIONS(5032),
    [sym_nothrow] = ACTIONS(5032),
    [sym_override] = ACTIONS(5032),
    [sym_package] = ACTIONS(5032),
    [sym_pragma] = ACTIONS(5032),
    [sym_private] = ACTIONS(5032),
    [sym_protected] = ACTIONS(5032),
    [sym_public] = ACTIONS(5032),
    [sym_pure] = ACTIONS(5032),
    [sym_ref] = ACTIONS(5032),
    [sym_return] = ACTIONS(5032),
    [sym_scope] = ACTIONS(5032),
    [sym_shared] = ACTIONS(5032),
    [sym_static] = ACTIONS(5032),
    [sym_struct] = ACTIONS(5032),
    [sym_synchronized] = ACTIONS(5032),
    [sym_template] = ACTIONS(5032),
    [sym_typeof] = ACTIONS(5032),
    [sym_union] = ACTIONS(5032),
    [sym_unittest] = ACTIONS(5032),
    [sym_version] = ACTIONS(5032),
    [sym_while] = ACTIONS(5032),
    [sym_gshared] = ACTIONS(5032),
    [sym_traits] = ACTIONS(5032),
    [sym_vector] = ACTIONS(5032),
    [sym_void] = ACTIONS(5032),
    [sym_directive] = ACTIONS(3),
  },
  [2847] = {
    [sym_identifier] = ACTIONS(4313),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4315),
    [anon_sym_DOT] = ACTIONS(4315),
    [anon_sym_SEMI] = ACTIONS(4315),
    [anon_sym_TILDE] = ACTIONS(4315),
    [anon_sym_AT] = ACTIONS(4315),
    [sym_bool] = ACTIONS(4313),
    [sym_byte] = ACTIONS(4313),
    [sym_ubyte] = ACTIONS(4313),
    [sym_char] = ACTIONS(4313),
    [sym_short] = ACTIONS(4313),
    [sym_ushort] = ACTIONS(4313),
    [sym_int] = ACTIONS(4313),
    [sym_uint] = ACTIONS(4313),
    [sym_long] = ACTIONS(4313),
    [sym_ulong] = ACTIONS(4313),
    [sym_cent] = ACTIONS(4313),
    [sym_ucent] = ACTIONS(4313),
    [sym_wchar] = ACTIONS(4313),
    [sym_dchar] = ACTIONS(4313),
    [sym_float] = ACTIONS(4313),
    [sym_double] = ACTIONS(4313),
    [sym_real] = ACTIONS(4313),
    [sym_ifloat] = ACTIONS(4313),
    [sym_idouble] = ACTIONS(4313),
    [sym_ireal] = ACTIONS(4313),
    [sym_cfloat] = ACTIONS(4313),
    [sym_cdouble] = ACTIONS(4313),
    [sym_creal] = ACTIONS(4313),
    [sym_size_t] = ACTIONS(4313),
    [sym_ptrdiff_t] = ACTIONS(4313),
    [sym_string] = ACTIONS(4313),
    [sym_cstring] = ACTIONS(4313),
    [sym_dstring] = ACTIONS(4313),
    [sym_wstring] = ACTIONS(4313),
    [sym_noreturn] = ACTIONS(4313),
    [sym_this] = ACTIONS(4313),
    [sym_abstract] = ACTIONS(4313),
    [sym_alias] = ACTIONS(4313),
    [sym_align] = ACTIONS(4313),
    [sym_auto] = ACTIONS(4313),
    [sym_class] = ACTIONS(4313),
    [sym_const] = ACTIONS(4313),
    [sym_debug] = ACTIONS(4313),
    [sym_deprecated] = ACTIONS(4313),
    [sym_else] = ACTIONS(4313),
    [sym_enum] = ACTIONS(4313),
    [sym_export] = ACTIONS(4313),
    [sym_extern] = ACTIONS(4313),
    [sym_final] = ACTIONS(4313),
    [sym_immutable] = ACTIONS(4313),
    [sym_import] = ACTIONS(4313),
    [sym_inout] = ACTIONS(4313),
    [sym_interface] = ACTIONS(4313),
    [sym_invariant] = ACTIONS(4313),
    [sym_mixin] = ACTIONS(4313),
    [sym_nothrow] = ACTIONS(4313),
    [sym_override] = ACTIONS(4313),
    [sym_package] = ACTIONS(4313),
    [sym_pragma] = ACTIONS(4313),
    [sym_private] = ACTIONS(4313),
    [sym_protected] = ACTIONS(4313),
    [sym_public] = ACTIONS(4313),
    [sym_pure] = ACTIONS(4313),
    [sym_ref] = ACTIONS(4313),
    [sym_return] = ACTIONS(4313),
    [sym_scope] = ACTIONS(4313),
    [sym_shared] = ACTIONS(4313),
    [sym_static] = ACTIONS(4313),
    [sym_struct] = ACTIONS(4313),
    [sym_synchronized] = ACTIONS(4313),
    [sym_template] = ACTIONS(4313),
    [sym_typeof] = ACTIONS(4313),
    [sym_union] = ACTIONS(4313),
    [sym_unittest] = ACTIONS(4313),
    [sym_version] = ACTIONS(4313),
    [sym_while] = ACTIONS(4313),
    [sym_gshared] = ACTIONS(4313),
    [sym_traits] = ACTIONS(4313),
    [sym_vector] = ACTIONS(4313),
    [sym_void] = ACTIONS(4313),
    [sym_directive] = ACTIONS(3),
  },
  [2848] = {
    [sym_identifier] = ACTIONS(4856),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4858),
    [anon_sym_DOT] = ACTIONS(4858),
    [anon_sym_SEMI] = ACTIONS(4858),
    [anon_sym_TILDE] = ACTIONS(4858),
    [anon_sym_AT] = ACTIONS(4858),
    [sym_bool] = ACTIONS(4856),
    [sym_byte] = ACTIONS(4856),
    [sym_ubyte] = ACTIONS(4856),
    [sym_char] = ACTIONS(4856),
    [sym_short] = ACTIONS(4856),
    [sym_ushort] = ACTIONS(4856),
    [sym_int] = ACTIONS(4856),
    [sym_uint] = ACTIONS(4856),
    [sym_long] = ACTIONS(4856),
    [sym_ulong] = ACTIONS(4856),
    [sym_cent] = ACTIONS(4856),
    [sym_ucent] = ACTIONS(4856),
    [sym_wchar] = ACTIONS(4856),
    [sym_dchar] = ACTIONS(4856),
    [sym_float] = ACTIONS(4856),
    [sym_double] = ACTIONS(4856),
    [sym_real] = ACTIONS(4856),
    [sym_ifloat] = ACTIONS(4856),
    [sym_idouble] = ACTIONS(4856),
    [sym_ireal] = ACTIONS(4856),
    [sym_cfloat] = ACTIONS(4856),
    [sym_cdouble] = ACTIONS(4856),
    [sym_creal] = ACTIONS(4856),
    [sym_size_t] = ACTIONS(4856),
    [sym_ptrdiff_t] = ACTIONS(4856),
    [sym_string] = ACTIONS(4856),
    [sym_cstring] = ACTIONS(4856),
    [sym_dstring] = ACTIONS(4856),
    [sym_wstring] = ACTIONS(4856),
    [sym_noreturn] = ACTIONS(4856),
    [sym_this] = ACTIONS(4856),
    [sym_abstract] = ACTIONS(4856),
    [sym_alias] = ACTIONS(4856),
    [sym_align] = ACTIONS(4856),
    [sym_auto] = ACTIONS(4856),
    [sym_class] = ACTIONS(4856),
    [sym_const] = ACTIONS(4856),
    [sym_debug] = ACTIONS(4856),
    [sym_deprecated] = ACTIONS(4856),
    [sym_else] = ACTIONS(4856),
    [sym_enum] = ACTIONS(4856),
    [sym_export] = ACTIONS(4856),
    [sym_extern] = ACTIONS(4856),
    [sym_final] = ACTIONS(4856),
    [sym_immutable] = ACTIONS(4856),
    [sym_import] = ACTIONS(4856),
    [sym_inout] = ACTIONS(4856),
    [sym_interface] = ACTIONS(4856),
    [sym_invariant] = ACTIONS(4856),
    [sym_mixin] = ACTIONS(4856),
    [sym_nothrow] = ACTIONS(4856),
    [sym_override] = ACTIONS(4856),
    [sym_package] = ACTIONS(4856),
    [sym_pragma] = ACTIONS(4856),
    [sym_private] = ACTIONS(4856),
    [sym_protected] = ACTIONS(4856),
    [sym_public] = ACTIONS(4856),
    [sym_pure] = ACTIONS(4856),
    [sym_ref] = ACTIONS(4856),
    [sym_return] = ACTIONS(4856),
    [sym_scope] = ACTIONS(4856),
    [sym_shared] = ACTIONS(4856),
    [sym_static] = ACTIONS(4856),
    [sym_struct] = ACTIONS(4856),
    [sym_synchronized] = ACTIONS(4856),
    [sym_template] = ACTIONS(4856),
    [sym_typeof] = ACTIONS(4856),
    [sym_union] = ACTIONS(4856),
    [sym_unittest] = ACTIONS(4856),
    [sym_version] = ACTIONS(4856),
    [sym_while] = ACTIONS(4856),
    [sym_gshared] = ACTIONS(4856),
    [sym_traits] = ACTIONS(4856),
    [sym_vector] = ACTIONS(4856),
    [sym_void] = ACTIONS(4856),
    [sym_directive] = ACTIONS(3),
  },
  [2849] = {
    [sym_identifier] = ACTIONS(4327),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4329),
    [anon_sym_DOT] = ACTIONS(4329),
    [anon_sym_SEMI] = ACTIONS(4329),
    [anon_sym_TILDE] = ACTIONS(4329),
    [anon_sym_AT] = ACTIONS(4329),
    [sym_bool] = ACTIONS(4327),
    [sym_byte] = ACTIONS(4327),
    [sym_ubyte] = ACTIONS(4327),
    [sym_char] = ACTIONS(4327),
    [sym_short] = ACTIONS(4327),
    [sym_ushort] = ACTIONS(4327),
    [sym_int] = ACTIONS(4327),
    [sym_uint] = ACTIONS(4327),
    [sym_long] = ACTIONS(4327),
    [sym_ulong] = ACTIONS(4327),
    [sym_cent] = ACTIONS(4327),
    [sym_ucent] = ACTIONS(4327),
    [sym_wchar] = ACTIONS(4327),
    [sym_dchar] = ACTIONS(4327),
    [sym_float] = ACTIONS(4327),
    [sym_double] = ACTIONS(4327),
    [sym_real] = ACTIONS(4327),
    [sym_ifloat] = ACTIONS(4327),
    [sym_idouble] = ACTIONS(4327),
    [sym_ireal] = ACTIONS(4327),
    [sym_cfloat] = ACTIONS(4327),
    [sym_cdouble] = ACTIONS(4327),
    [sym_creal] = ACTIONS(4327),
    [sym_size_t] = ACTIONS(4327),
    [sym_ptrdiff_t] = ACTIONS(4327),
    [sym_string] = ACTIONS(4327),
    [sym_cstring] = ACTIONS(4327),
    [sym_dstring] = ACTIONS(4327),
    [sym_wstring] = ACTIONS(4327),
    [sym_noreturn] = ACTIONS(4327),
    [sym_this] = ACTIONS(4327),
    [sym_abstract] = ACTIONS(4327),
    [sym_alias] = ACTIONS(4327),
    [sym_align] = ACTIONS(4327),
    [sym_auto] = ACTIONS(4327),
    [sym_class] = ACTIONS(4327),
    [sym_const] = ACTIONS(4327),
    [sym_debug] = ACTIONS(4327),
    [sym_deprecated] = ACTIONS(4327),
    [sym_else] = ACTIONS(4327),
    [sym_enum] = ACTIONS(4327),
    [sym_export] = ACTIONS(4327),
    [sym_extern] = ACTIONS(4327),
    [sym_final] = ACTIONS(4327),
    [sym_immutable] = ACTIONS(4327),
    [sym_import] = ACTIONS(4327),
    [sym_inout] = ACTIONS(4327),
    [sym_interface] = ACTIONS(4327),
    [sym_invariant] = ACTIONS(4327),
    [sym_mixin] = ACTIONS(4327),
    [sym_nothrow] = ACTIONS(4327),
    [sym_override] = ACTIONS(4327),
    [sym_package] = ACTIONS(4327),
    [sym_pragma] = ACTIONS(4327),
    [sym_private] = ACTIONS(4327),
    [sym_protected] = ACTIONS(4327),
    [sym_public] = ACTIONS(4327),
    [sym_pure] = ACTIONS(4327),
    [sym_ref] = ACTIONS(4327),
    [sym_return] = ACTIONS(4327),
    [sym_scope] = ACTIONS(4327),
    [sym_shared] = ACTIONS(4327),
    [sym_static] = ACTIONS(4327),
    [sym_struct] = ACTIONS(4327),
    [sym_synchronized] = ACTIONS(4327),
    [sym_template] = ACTIONS(4327),
    [sym_typeof] = ACTIONS(4327),
    [sym_union] = ACTIONS(4327),
    [sym_unittest] = ACTIONS(4327),
    [sym_version] = ACTIONS(4327),
    [sym_while] = ACTIONS(4327),
    [sym_gshared] = ACTIONS(4327),
    [sym_traits] = ACTIONS(4327),
    [sym_vector] = ACTIONS(4327),
    [sym_void] = ACTIONS(4327),
    [sym_directive] = ACTIONS(3),
  },
  [2850] = {
    [sym_identifier] = ACTIONS(4305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4307),
    [anon_sym_DOT] = ACTIONS(4307),
    [anon_sym_SEMI] = ACTIONS(4307),
    [anon_sym_TILDE] = ACTIONS(4307),
    [anon_sym_AT] = ACTIONS(4307),
    [sym_bool] = ACTIONS(4305),
    [sym_byte] = ACTIONS(4305),
    [sym_ubyte] = ACTIONS(4305),
    [sym_char] = ACTIONS(4305),
    [sym_short] = ACTIONS(4305),
    [sym_ushort] = ACTIONS(4305),
    [sym_int] = ACTIONS(4305),
    [sym_uint] = ACTIONS(4305),
    [sym_long] = ACTIONS(4305),
    [sym_ulong] = ACTIONS(4305),
    [sym_cent] = ACTIONS(4305),
    [sym_ucent] = ACTIONS(4305),
    [sym_wchar] = ACTIONS(4305),
    [sym_dchar] = ACTIONS(4305),
    [sym_float] = ACTIONS(4305),
    [sym_double] = ACTIONS(4305),
    [sym_real] = ACTIONS(4305),
    [sym_ifloat] = ACTIONS(4305),
    [sym_idouble] = ACTIONS(4305),
    [sym_ireal] = ACTIONS(4305),
    [sym_cfloat] = ACTIONS(4305),
    [sym_cdouble] = ACTIONS(4305),
    [sym_creal] = ACTIONS(4305),
    [sym_size_t] = ACTIONS(4305),
    [sym_ptrdiff_t] = ACTIONS(4305),
    [sym_string] = ACTIONS(4305),
    [sym_cstring] = ACTIONS(4305),
    [sym_dstring] = ACTIONS(4305),
    [sym_wstring] = ACTIONS(4305),
    [sym_noreturn] = ACTIONS(4305),
    [sym_this] = ACTIONS(4305),
    [sym_abstract] = ACTIONS(4305),
    [sym_alias] = ACTIONS(4305),
    [sym_align] = ACTIONS(4305),
    [sym_auto] = ACTIONS(4305),
    [sym_class] = ACTIONS(4305),
    [sym_const] = ACTIONS(4305),
    [sym_debug] = ACTIONS(4305),
    [sym_deprecated] = ACTIONS(4305),
    [sym_else] = ACTIONS(4305),
    [sym_enum] = ACTIONS(4305),
    [sym_export] = ACTIONS(4305),
    [sym_extern] = ACTIONS(4305),
    [sym_final] = ACTIONS(4305),
    [sym_immutable] = ACTIONS(4305),
    [sym_import] = ACTIONS(4305),
    [sym_inout] = ACTIONS(4305),
    [sym_interface] = ACTIONS(4305),
    [sym_invariant] = ACTIONS(4305),
    [sym_mixin] = ACTIONS(4305),
    [sym_nothrow] = ACTIONS(4305),
    [sym_override] = ACTIONS(4305),
    [sym_package] = ACTIONS(4305),
    [sym_pragma] = ACTIONS(4305),
    [sym_private] = ACTIONS(4305),
    [sym_protected] = ACTIONS(4305),
    [sym_public] = ACTIONS(4305),
    [sym_pure] = ACTIONS(4305),
    [sym_ref] = ACTIONS(4305),
    [sym_return] = ACTIONS(4305),
    [sym_scope] = ACTIONS(4305),
    [sym_shared] = ACTIONS(4305),
    [sym_static] = ACTIONS(4305),
    [sym_struct] = ACTIONS(4305),
    [sym_synchronized] = ACTIONS(4305),
    [sym_template] = ACTIONS(4305),
    [sym_typeof] = ACTIONS(4305),
    [sym_union] = ACTIONS(4305),
    [sym_unittest] = ACTIONS(4305),
    [sym_version] = ACTIONS(4305),
    [sym_while] = ACTIONS(4305),
    [sym_gshared] = ACTIONS(4305),
    [sym_traits] = ACTIONS(4305),
    [sym_vector] = ACTIONS(4305),
    [sym_void] = ACTIONS(4305),
    [sym_directive] = ACTIONS(3),
  },
  [2851] = {
    [sym_identifier] = ACTIONS(4339),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4341),
    [anon_sym_DOT] = ACTIONS(4341),
    [anon_sym_SEMI] = ACTIONS(4341),
    [anon_sym_TILDE] = ACTIONS(4341),
    [anon_sym_AT] = ACTIONS(4341),
    [sym_bool] = ACTIONS(4339),
    [sym_byte] = ACTIONS(4339),
    [sym_ubyte] = ACTIONS(4339),
    [sym_char] = ACTIONS(4339),
    [sym_short] = ACTIONS(4339),
    [sym_ushort] = ACTIONS(4339),
    [sym_int] = ACTIONS(4339),
    [sym_uint] = ACTIONS(4339),
    [sym_long] = ACTIONS(4339),
    [sym_ulong] = ACTIONS(4339),
    [sym_cent] = ACTIONS(4339),
    [sym_ucent] = ACTIONS(4339),
    [sym_wchar] = ACTIONS(4339),
    [sym_dchar] = ACTIONS(4339),
    [sym_float] = ACTIONS(4339),
    [sym_double] = ACTIONS(4339),
    [sym_real] = ACTIONS(4339),
    [sym_ifloat] = ACTIONS(4339),
    [sym_idouble] = ACTIONS(4339),
    [sym_ireal] = ACTIONS(4339),
    [sym_cfloat] = ACTIONS(4339),
    [sym_cdouble] = ACTIONS(4339),
    [sym_creal] = ACTIONS(4339),
    [sym_size_t] = ACTIONS(4339),
    [sym_ptrdiff_t] = ACTIONS(4339),
    [sym_string] = ACTIONS(4339),
    [sym_cstring] = ACTIONS(4339),
    [sym_dstring] = ACTIONS(4339),
    [sym_wstring] = ACTIONS(4339),
    [sym_noreturn] = ACTIONS(4339),
    [sym_this] = ACTIONS(4339),
    [sym_abstract] = ACTIONS(4339),
    [sym_alias] = ACTIONS(4339),
    [sym_align] = ACTIONS(4339),
    [sym_auto] = ACTIONS(4339),
    [sym_class] = ACTIONS(4339),
    [sym_const] = ACTIONS(4339),
    [sym_debug] = ACTIONS(4339),
    [sym_deprecated] = ACTIONS(4339),
    [sym_else] = ACTIONS(4339),
    [sym_enum] = ACTIONS(4339),
    [sym_export] = ACTIONS(4339),
    [sym_extern] = ACTIONS(4339),
    [sym_final] = ACTIONS(4339),
    [sym_immutable] = ACTIONS(4339),
    [sym_import] = ACTIONS(4339),
    [sym_inout] = ACTIONS(4339),
    [sym_interface] = ACTIONS(4339),
    [sym_invariant] = ACTIONS(4339),
    [sym_mixin] = ACTIONS(4339),
    [sym_nothrow] = ACTIONS(4339),
    [sym_override] = ACTIONS(4339),
    [sym_package] = ACTIONS(4339),
    [sym_pragma] = ACTIONS(4339),
    [sym_private] = ACTIONS(4339),
    [sym_protected] = ACTIONS(4339),
    [sym_public] = ACTIONS(4339),
    [sym_pure] = ACTIONS(4339),
    [sym_ref] = ACTIONS(4339),
    [sym_return] = ACTIONS(4339),
    [sym_scope] = ACTIONS(4339),
    [sym_shared] = ACTIONS(4339),
    [sym_static] = ACTIONS(4339),
    [sym_struct] = ACTIONS(4339),
    [sym_synchronized] = ACTIONS(4339),
    [sym_template] = ACTIONS(4339),
    [sym_typeof] = ACTIONS(4339),
    [sym_union] = ACTIONS(4339),
    [sym_unittest] = ACTIONS(4339),
    [sym_version] = ACTIONS(4339),
    [sym_while] = ACTIONS(4339),
    [sym_gshared] = ACTIONS(4339),
    [sym_traits] = ACTIONS(4339),
    [sym_vector] = ACTIONS(4339),
    [sym_void] = ACTIONS(4339),
    [sym_directive] = ACTIONS(3),
  },
  [2852] = {
    [sym_identifier] = ACTIONS(4309),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4311),
    [anon_sym_DOT] = ACTIONS(4311),
    [anon_sym_SEMI] = ACTIONS(4311),
    [anon_sym_TILDE] = ACTIONS(4311),
    [anon_sym_AT] = ACTIONS(4311),
    [sym_bool] = ACTIONS(4309),
    [sym_byte] = ACTIONS(4309),
    [sym_ubyte] = ACTIONS(4309),
    [sym_char] = ACTIONS(4309),
    [sym_short] = ACTIONS(4309),
    [sym_ushort] = ACTIONS(4309),
    [sym_int] = ACTIONS(4309),
    [sym_uint] = ACTIONS(4309),
    [sym_long] = ACTIONS(4309),
    [sym_ulong] = ACTIONS(4309),
    [sym_cent] = ACTIONS(4309),
    [sym_ucent] = ACTIONS(4309),
    [sym_wchar] = ACTIONS(4309),
    [sym_dchar] = ACTIONS(4309),
    [sym_float] = ACTIONS(4309),
    [sym_double] = ACTIONS(4309),
    [sym_real] = ACTIONS(4309),
    [sym_ifloat] = ACTIONS(4309),
    [sym_idouble] = ACTIONS(4309),
    [sym_ireal] = ACTIONS(4309),
    [sym_cfloat] = ACTIONS(4309),
    [sym_cdouble] = ACTIONS(4309),
    [sym_creal] = ACTIONS(4309),
    [sym_size_t] = ACTIONS(4309),
    [sym_ptrdiff_t] = ACTIONS(4309),
    [sym_string] = ACTIONS(4309),
    [sym_cstring] = ACTIONS(4309),
    [sym_dstring] = ACTIONS(4309),
    [sym_wstring] = ACTIONS(4309),
    [sym_noreturn] = ACTIONS(4309),
    [sym_this] = ACTIONS(4309),
    [sym_abstract] = ACTIONS(4309),
    [sym_alias] = ACTIONS(4309),
    [sym_align] = ACTIONS(4309),
    [sym_auto] = ACTIONS(4309),
    [sym_class] = ACTIONS(4309),
    [sym_const] = ACTIONS(4309),
    [sym_debug] = ACTIONS(4309),
    [sym_deprecated] = ACTIONS(4309),
    [sym_else] = ACTIONS(4309),
    [sym_enum] = ACTIONS(4309),
    [sym_export] = ACTIONS(4309),
    [sym_extern] = ACTIONS(4309),
    [sym_final] = ACTIONS(4309),
    [sym_immutable] = ACTIONS(4309),
    [sym_import] = ACTIONS(4309),
    [sym_inout] = ACTIONS(4309),
    [sym_interface] = ACTIONS(4309),
    [sym_invariant] = ACTIONS(4309),
    [sym_mixin] = ACTIONS(4309),
    [sym_nothrow] = ACTIONS(4309),
    [sym_override] = ACTIONS(4309),
    [sym_package] = ACTIONS(4309),
    [sym_pragma] = ACTIONS(4309),
    [sym_private] = ACTIONS(4309),
    [sym_protected] = ACTIONS(4309),
    [sym_public] = ACTIONS(4309),
    [sym_pure] = ACTIONS(4309),
    [sym_ref] = ACTIONS(4309),
    [sym_return] = ACTIONS(4309),
    [sym_scope] = ACTIONS(4309),
    [sym_shared] = ACTIONS(4309),
    [sym_static] = ACTIONS(4309),
    [sym_struct] = ACTIONS(4309),
    [sym_synchronized] = ACTIONS(4309),
    [sym_template] = ACTIONS(4309),
    [sym_typeof] = ACTIONS(4309),
    [sym_union] = ACTIONS(4309),
    [sym_unittest] = ACTIONS(4309),
    [sym_version] = ACTIONS(4309),
    [sym_while] = ACTIONS(4309),
    [sym_gshared] = ACTIONS(4309),
    [sym_traits] = ACTIONS(4309),
    [sym_vector] = ACTIONS(4309),
    [sym_void] = ACTIONS(4309),
    [sym_directive] = ACTIONS(3),
  },
  [2853] = {
    [sym_identifier] = ACTIONS(5048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5050),
    [anon_sym_DOT] = ACTIONS(5050),
    [anon_sym_SEMI] = ACTIONS(5050),
    [anon_sym_TILDE] = ACTIONS(5050),
    [anon_sym_AT] = ACTIONS(5050),
    [sym_bool] = ACTIONS(5048),
    [sym_byte] = ACTIONS(5048),
    [sym_ubyte] = ACTIONS(5048),
    [sym_char] = ACTIONS(5048),
    [sym_short] = ACTIONS(5048),
    [sym_ushort] = ACTIONS(5048),
    [sym_int] = ACTIONS(5048),
    [sym_uint] = ACTIONS(5048),
    [sym_long] = ACTIONS(5048),
    [sym_ulong] = ACTIONS(5048),
    [sym_cent] = ACTIONS(5048),
    [sym_ucent] = ACTIONS(5048),
    [sym_wchar] = ACTIONS(5048),
    [sym_dchar] = ACTIONS(5048),
    [sym_float] = ACTIONS(5048),
    [sym_double] = ACTIONS(5048),
    [sym_real] = ACTIONS(5048),
    [sym_ifloat] = ACTIONS(5048),
    [sym_idouble] = ACTIONS(5048),
    [sym_ireal] = ACTIONS(5048),
    [sym_cfloat] = ACTIONS(5048),
    [sym_cdouble] = ACTIONS(5048),
    [sym_creal] = ACTIONS(5048),
    [sym_size_t] = ACTIONS(5048),
    [sym_ptrdiff_t] = ACTIONS(5048),
    [sym_string] = ACTIONS(5048),
    [sym_cstring] = ACTIONS(5048),
    [sym_dstring] = ACTIONS(5048),
    [sym_wstring] = ACTIONS(5048),
    [sym_noreturn] = ACTIONS(5048),
    [sym_this] = ACTIONS(5048),
    [sym_abstract] = ACTIONS(5048),
    [sym_alias] = ACTIONS(5048),
    [sym_align] = ACTIONS(5048),
    [sym_auto] = ACTIONS(5048),
    [sym_class] = ACTIONS(5048),
    [sym_const] = ACTIONS(5048),
    [sym_debug] = ACTIONS(5048),
    [sym_deprecated] = ACTIONS(5048),
    [sym_else] = ACTIONS(5048),
    [sym_enum] = ACTIONS(5048),
    [sym_export] = ACTIONS(5048),
    [sym_extern] = ACTIONS(5048),
    [sym_final] = ACTIONS(5048),
    [sym_immutable] = ACTIONS(5048),
    [sym_import] = ACTIONS(5048),
    [sym_inout] = ACTIONS(5048),
    [sym_interface] = ACTIONS(5048),
    [sym_invariant] = ACTIONS(5048),
    [sym_mixin] = ACTIONS(5048),
    [sym_nothrow] = ACTIONS(5048),
    [sym_override] = ACTIONS(5048),
    [sym_package] = ACTIONS(5048),
    [sym_pragma] = ACTIONS(5048),
    [sym_private] = ACTIONS(5048),
    [sym_protected] = ACTIONS(5048),
    [sym_public] = ACTIONS(5048),
    [sym_pure] = ACTIONS(5048),
    [sym_ref] = ACTIONS(5048),
    [sym_return] = ACTIONS(5048),
    [sym_scope] = ACTIONS(5048),
    [sym_shared] = ACTIONS(5048),
    [sym_static] = ACTIONS(5048),
    [sym_struct] = ACTIONS(5048),
    [sym_synchronized] = ACTIONS(5048),
    [sym_template] = ACTIONS(5048),
    [sym_typeof] = ACTIONS(5048),
    [sym_union] = ACTIONS(5048),
    [sym_unittest] = ACTIONS(5048),
    [sym_version] = ACTIONS(5048),
    [sym_while] = ACTIONS(5048),
    [sym_gshared] = ACTIONS(5048),
    [sym_traits] = ACTIONS(5048),
    [sym_vector] = ACTIONS(5048),
    [sym_void] = ACTIONS(5048),
    [sym_directive] = ACTIONS(3),
  },
  [2854] = {
    [sym_identifier] = ACTIONS(4321),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4324),
    [anon_sym_DOT] = ACTIONS(4324),
    [anon_sym_SEMI] = ACTIONS(4324),
    [anon_sym_TILDE] = ACTIONS(4324),
    [anon_sym_AT] = ACTIONS(4324),
    [sym_bool] = ACTIONS(4321),
    [sym_byte] = ACTIONS(4321),
    [sym_ubyte] = ACTIONS(4321),
    [sym_char] = ACTIONS(4321),
    [sym_short] = ACTIONS(4321),
    [sym_ushort] = ACTIONS(4321),
    [sym_int] = ACTIONS(4321),
    [sym_uint] = ACTIONS(4321),
    [sym_long] = ACTIONS(4321),
    [sym_ulong] = ACTIONS(4321),
    [sym_cent] = ACTIONS(4321),
    [sym_ucent] = ACTIONS(4321),
    [sym_wchar] = ACTIONS(4321),
    [sym_dchar] = ACTIONS(4321),
    [sym_float] = ACTIONS(4321),
    [sym_double] = ACTIONS(4321),
    [sym_real] = ACTIONS(4321),
    [sym_ifloat] = ACTIONS(4321),
    [sym_idouble] = ACTIONS(4321),
    [sym_ireal] = ACTIONS(4321),
    [sym_cfloat] = ACTIONS(4321),
    [sym_cdouble] = ACTIONS(4321),
    [sym_creal] = ACTIONS(4321),
    [sym_size_t] = ACTIONS(4321),
    [sym_ptrdiff_t] = ACTIONS(4321),
    [sym_string] = ACTIONS(4321),
    [sym_cstring] = ACTIONS(4321),
    [sym_dstring] = ACTIONS(4321),
    [sym_wstring] = ACTIONS(4321),
    [sym_noreturn] = ACTIONS(4321),
    [sym_this] = ACTIONS(4321),
    [sym_abstract] = ACTIONS(4321),
    [sym_alias] = ACTIONS(4321),
    [sym_align] = ACTIONS(4321),
    [sym_auto] = ACTIONS(4321),
    [sym_class] = ACTIONS(4321),
    [sym_const] = ACTIONS(4321),
    [sym_debug] = ACTIONS(4321),
    [sym_deprecated] = ACTIONS(4321),
    [sym_else] = ACTIONS(4321),
    [sym_enum] = ACTIONS(4321),
    [sym_export] = ACTIONS(4321),
    [sym_extern] = ACTIONS(4321),
    [sym_final] = ACTIONS(4321),
    [sym_immutable] = ACTIONS(4321),
    [sym_import] = ACTIONS(4321),
    [sym_inout] = ACTIONS(4321),
    [sym_interface] = ACTIONS(4321),
    [sym_invariant] = ACTIONS(4321),
    [sym_mixin] = ACTIONS(4321),
    [sym_nothrow] = ACTIONS(4321),
    [sym_override] = ACTIONS(4321),
    [sym_package] = ACTIONS(4321),
    [sym_pragma] = ACTIONS(4321),
    [sym_private] = ACTIONS(4321),
    [sym_protected] = ACTIONS(4321),
    [sym_public] = ACTIONS(4321),
    [sym_pure] = ACTIONS(4321),
    [sym_ref] = ACTIONS(4321),
    [sym_return] = ACTIONS(4321),
    [sym_scope] = ACTIONS(4321),
    [sym_shared] = ACTIONS(4321),
    [sym_static] = ACTIONS(4321),
    [sym_struct] = ACTIONS(4321),
    [sym_synchronized] = ACTIONS(4321),
    [sym_template] = ACTIONS(4321),
    [sym_typeof] = ACTIONS(4321),
    [sym_union] = ACTIONS(4321),
    [sym_unittest] = ACTIONS(4321),
    [sym_version] = ACTIONS(4321),
    [sym_while] = ACTIONS(4321),
    [sym_gshared] = ACTIONS(4321),
    [sym_traits] = ACTIONS(4321),
    [sym_vector] = ACTIONS(4321),
    [sym_void] = ACTIONS(4321),
    [sym_directive] = ACTIONS(3),
  },
  [2855] = {
    [sym_identifier] = ACTIONS(4335),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4337),
    [anon_sym_DOT] = ACTIONS(4337),
    [anon_sym_SEMI] = ACTIONS(4337),
    [anon_sym_TILDE] = ACTIONS(4337),
    [anon_sym_AT] = ACTIONS(4337),
    [sym_bool] = ACTIONS(4335),
    [sym_byte] = ACTIONS(4335),
    [sym_ubyte] = ACTIONS(4335),
    [sym_char] = ACTIONS(4335),
    [sym_short] = ACTIONS(4335),
    [sym_ushort] = ACTIONS(4335),
    [sym_int] = ACTIONS(4335),
    [sym_uint] = ACTIONS(4335),
    [sym_long] = ACTIONS(4335),
    [sym_ulong] = ACTIONS(4335),
    [sym_cent] = ACTIONS(4335),
    [sym_ucent] = ACTIONS(4335),
    [sym_wchar] = ACTIONS(4335),
    [sym_dchar] = ACTIONS(4335),
    [sym_float] = ACTIONS(4335),
    [sym_double] = ACTIONS(4335),
    [sym_real] = ACTIONS(4335),
    [sym_ifloat] = ACTIONS(4335),
    [sym_idouble] = ACTIONS(4335),
    [sym_ireal] = ACTIONS(4335),
    [sym_cfloat] = ACTIONS(4335),
    [sym_cdouble] = ACTIONS(4335),
    [sym_creal] = ACTIONS(4335),
    [sym_size_t] = ACTIONS(4335),
    [sym_ptrdiff_t] = ACTIONS(4335),
    [sym_string] = ACTIONS(4335),
    [sym_cstring] = ACTIONS(4335),
    [sym_dstring] = ACTIONS(4335),
    [sym_wstring] = ACTIONS(4335),
    [sym_noreturn] = ACTIONS(4335),
    [sym_this] = ACTIONS(4335),
    [sym_abstract] = ACTIONS(4335),
    [sym_alias] = ACTIONS(4335),
    [sym_align] = ACTIONS(4335),
    [sym_auto] = ACTIONS(4335),
    [sym_class] = ACTIONS(4335),
    [sym_const] = ACTIONS(4335),
    [sym_debug] = ACTIONS(4335),
    [sym_deprecated] = ACTIONS(4335),
    [sym_else] = ACTIONS(4335),
    [sym_enum] = ACTIONS(4335),
    [sym_export] = ACTIONS(4335),
    [sym_extern] = ACTIONS(4335),
    [sym_final] = ACTIONS(4335),
    [sym_immutable] = ACTIONS(4335),
    [sym_import] = ACTIONS(4335),
    [sym_inout] = ACTIONS(4335),
    [sym_interface] = ACTIONS(4335),
    [sym_invariant] = ACTIONS(4335),
    [sym_mixin] = ACTIONS(4335),
    [sym_nothrow] = ACTIONS(4335),
    [sym_override] = ACTIONS(4335),
    [sym_package] = ACTIONS(4335),
    [sym_pragma] = ACTIONS(4335),
    [sym_private] = ACTIONS(4335),
    [sym_protected] = ACTIONS(4335),
    [sym_public] = ACTIONS(4335),
    [sym_pure] = ACTIONS(4335),
    [sym_ref] = ACTIONS(4335),
    [sym_return] = ACTIONS(4335),
    [sym_scope] = ACTIONS(4335),
    [sym_shared] = ACTIONS(4335),
    [sym_static] = ACTIONS(4335),
    [sym_struct] = ACTIONS(4335),
    [sym_synchronized] = ACTIONS(4335),
    [sym_template] = ACTIONS(4335),
    [sym_typeof] = ACTIONS(4335),
    [sym_union] = ACTIONS(4335),
    [sym_unittest] = ACTIONS(4335),
    [sym_version] = ACTIONS(4335),
    [sym_while] = ACTIONS(4335),
    [sym_gshared] = ACTIONS(4335),
    [sym_traits] = ACTIONS(4335),
    [sym_vector] = ACTIONS(4335),
    [sym_void] = ACTIONS(4335),
    [sym_directive] = ACTIONS(3),
  },
  [2856] = {
    [sym_identifier] = ACTIONS(4355),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4357),
    [anon_sym_DOT] = ACTIONS(4357),
    [anon_sym_SEMI] = ACTIONS(4357),
    [anon_sym_TILDE] = ACTIONS(4357),
    [anon_sym_AT] = ACTIONS(4357),
    [sym_bool] = ACTIONS(4355),
    [sym_byte] = ACTIONS(4355),
    [sym_ubyte] = ACTIONS(4355),
    [sym_char] = ACTIONS(4355),
    [sym_short] = ACTIONS(4355),
    [sym_ushort] = ACTIONS(4355),
    [sym_int] = ACTIONS(4355),
    [sym_uint] = ACTIONS(4355),
    [sym_long] = ACTIONS(4355),
    [sym_ulong] = ACTIONS(4355),
    [sym_cent] = ACTIONS(4355),
    [sym_ucent] = ACTIONS(4355),
    [sym_wchar] = ACTIONS(4355),
    [sym_dchar] = ACTIONS(4355),
    [sym_float] = ACTIONS(4355),
    [sym_double] = ACTIONS(4355),
    [sym_real] = ACTIONS(4355),
    [sym_ifloat] = ACTIONS(4355),
    [sym_idouble] = ACTIONS(4355),
    [sym_ireal] = ACTIONS(4355),
    [sym_cfloat] = ACTIONS(4355),
    [sym_cdouble] = ACTIONS(4355),
    [sym_creal] = ACTIONS(4355),
    [sym_size_t] = ACTIONS(4355),
    [sym_ptrdiff_t] = ACTIONS(4355),
    [sym_string] = ACTIONS(4355),
    [sym_cstring] = ACTIONS(4355),
    [sym_dstring] = ACTIONS(4355),
    [sym_wstring] = ACTIONS(4355),
    [sym_noreturn] = ACTIONS(4355),
    [sym_this] = ACTIONS(4355),
    [sym_abstract] = ACTIONS(4355),
    [sym_alias] = ACTIONS(4355),
    [sym_align] = ACTIONS(4355),
    [sym_auto] = ACTIONS(4355),
    [sym_class] = ACTIONS(4355),
    [sym_const] = ACTIONS(4355),
    [sym_debug] = ACTIONS(4355),
    [sym_deprecated] = ACTIONS(4355),
    [sym_else] = ACTIONS(4355),
    [sym_enum] = ACTIONS(4355),
    [sym_export] = ACTIONS(4355),
    [sym_extern] = ACTIONS(4355),
    [sym_final] = ACTIONS(4355),
    [sym_immutable] = ACTIONS(4355),
    [sym_import] = ACTIONS(4355),
    [sym_inout] = ACTIONS(4355),
    [sym_interface] = ACTIONS(4355),
    [sym_invariant] = ACTIONS(4355),
    [sym_mixin] = ACTIONS(4355),
    [sym_nothrow] = ACTIONS(4355),
    [sym_override] = ACTIONS(4355),
    [sym_package] = ACTIONS(4355),
    [sym_pragma] = ACTIONS(4355),
    [sym_private] = ACTIONS(4355),
    [sym_protected] = ACTIONS(4355),
    [sym_public] = ACTIONS(4355),
    [sym_pure] = ACTIONS(4355),
    [sym_ref] = ACTIONS(4355),
    [sym_return] = ACTIONS(4355),
    [sym_scope] = ACTIONS(4355),
    [sym_shared] = ACTIONS(4355),
    [sym_static] = ACTIONS(4355),
    [sym_struct] = ACTIONS(4355),
    [sym_synchronized] = ACTIONS(4355),
    [sym_template] = ACTIONS(4355),
    [sym_typeof] = ACTIONS(4355),
    [sym_union] = ACTIONS(4355),
    [sym_unittest] = ACTIONS(4355),
    [sym_version] = ACTIONS(4355),
    [sym_while] = ACTIONS(4355),
    [sym_gshared] = ACTIONS(4355),
    [sym_traits] = ACTIONS(4355),
    [sym_vector] = ACTIONS(4355),
    [sym_void] = ACTIONS(4355),
    [sym_directive] = ACTIONS(3),
  },
  [2857] = {
    [sym_identifier] = ACTIONS(5068),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5070),
    [anon_sym_DOT] = ACTIONS(5070),
    [anon_sym_SEMI] = ACTIONS(5070),
    [anon_sym_TILDE] = ACTIONS(5070),
    [anon_sym_AT] = ACTIONS(5070),
    [sym_bool] = ACTIONS(5068),
    [sym_byte] = ACTIONS(5068),
    [sym_ubyte] = ACTIONS(5068),
    [sym_char] = ACTIONS(5068),
    [sym_short] = ACTIONS(5068),
    [sym_ushort] = ACTIONS(5068),
    [sym_int] = ACTIONS(5068),
    [sym_uint] = ACTIONS(5068),
    [sym_long] = ACTIONS(5068),
    [sym_ulong] = ACTIONS(5068),
    [sym_cent] = ACTIONS(5068),
    [sym_ucent] = ACTIONS(5068),
    [sym_wchar] = ACTIONS(5068),
    [sym_dchar] = ACTIONS(5068),
    [sym_float] = ACTIONS(5068),
    [sym_double] = ACTIONS(5068),
    [sym_real] = ACTIONS(5068),
    [sym_ifloat] = ACTIONS(5068),
    [sym_idouble] = ACTIONS(5068),
    [sym_ireal] = ACTIONS(5068),
    [sym_cfloat] = ACTIONS(5068),
    [sym_cdouble] = ACTIONS(5068),
    [sym_creal] = ACTIONS(5068),
    [sym_size_t] = ACTIONS(5068),
    [sym_ptrdiff_t] = ACTIONS(5068),
    [sym_string] = ACTIONS(5068),
    [sym_cstring] = ACTIONS(5068),
    [sym_dstring] = ACTIONS(5068),
    [sym_wstring] = ACTIONS(5068),
    [sym_noreturn] = ACTIONS(5068),
    [sym_this] = ACTIONS(5068),
    [sym_abstract] = ACTIONS(5068),
    [sym_alias] = ACTIONS(5068),
    [sym_align] = ACTIONS(5068),
    [sym_auto] = ACTIONS(5068),
    [sym_class] = ACTIONS(5068),
    [sym_const] = ACTIONS(5068),
    [sym_debug] = ACTIONS(5068),
    [sym_deprecated] = ACTIONS(5068),
    [sym_else] = ACTIONS(5068),
    [sym_enum] = ACTIONS(5068),
    [sym_export] = ACTIONS(5068),
    [sym_extern] = ACTIONS(5068),
    [sym_final] = ACTIONS(5068),
    [sym_immutable] = ACTIONS(5068),
    [sym_import] = ACTIONS(5068),
    [sym_inout] = ACTIONS(5068),
    [sym_interface] = ACTIONS(5068),
    [sym_invariant] = ACTIONS(5068),
    [sym_mixin] = ACTIONS(5068),
    [sym_nothrow] = ACTIONS(5068),
    [sym_override] = ACTIONS(5068),
    [sym_package] = ACTIONS(5068),
    [sym_pragma] = ACTIONS(5068),
    [sym_private] = ACTIONS(5068),
    [sym_protected] = ACTIONS(5068),
    [sym_public] = ACTIONS(5068),
    [sym_pure] = ACTIONS(5068),
    [sym_ref] = ACTIONS(5068),
    [sym_return] = ACTIONS(5068),
    [sym_scope] = ACTIONS(5068),
    [sym_shared] = ACTIONS(5068),
    [sym_static] = ACTIONS(5068),
    [sym_struct] = ACTIONS(5068),
    [sym_synchronized] = ACTIONS(5068),
    [sym_template] = ACTIONS(5068),
    [sym_typeof] = ACTIONS(5068),
    [sym_union] = ACTIONS(5068),
    [sym_unittest] = ACTIONS(5068),
    [sym_version] = ACTIONS(5068),
    [sym_while] = ACTIONS(5068),
    [sym_gshared] = ACTIONS(5068),
    [sym_traits] = ACTIONS(5068),
    [sym_vector] = ACTIONS(5068),
    [sym_void] = ACTIONS(5068),
    [sym_directive] = ACTIONS(3),
  },
  [2858] = {
    [sym_switch_statement] = STATE(2196),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(1248),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2859] = {
    [sym_identifier] = ACTIONS(5113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5115),
    [anon_sym_DOT] = ACTIONS(5115),
    [anon_sym_LPAREN] = ACTIONS(6785),
    [anon_sym_SEMI] = ACTIONS(5115),
    [anon_sym_COLON] = ACTIONS(5115),
    [anon_sym_TILDE] = ACTIONS(5115),
    [anon_sym_AT] = ACTIONS(5115),
    [sym_bool] = ACTIONS(5113),
    [sym_byte] = ACTIONS(5113),
    [sym_ubyte] = ACTIONS(5113),
    [sym_char] = ACTIONS(5113),
    [sym_short] = ACTIONS(5113),
    [sym_ushort] = ACTIONS(5113),
    [sym_int] = ACTIONS(5113),
    [sym_uint] = ACTIONS(5113),
    [sym_long] = ACTIONS(5113),
    [sym_ulong] = ACTIONS(5113),
    [sym_cent] = ACTIONS(5113),
    [sym_ucent] = ACTIONS(5113),
    [sym_wchar] = ACTIONS(5113),
    [sym_dchar] = ACTIONS(5113),
    [sym_float] = ACTIONS(5113),
    [sym_double] = ACTIONS(5113),
    [sym_real] = ACTIONS(5113),
    [sym_ifloat] = ACTIONS(5113),
    [sym_idouble] = ACTIONS(5113),
    [sym_ireal] = ACTIONS(5113),
    [sym_cfloat] = ACTIONS(5113),
    [sym_cdouble] = ACTIONS(5113),
    [sym_creal] = ACTIONS(5113),
    [sym_size_t] = ACTIONS(5113),
    [sym_ptrdiff_t] = ACTIONS(5113),
    [sym_string] = ACTIONS(5113),
    [sym_cstring] = ACTIONS(5113),
    [sym_dstring] = ACTIONS(5113),
    [sym_wstring] = ACTIONS(5113),
    [sym_noreturn] = ACTIONS(5113),
    [sym_this] = ACTIONS(5113),
    [sym_abstract] = ACTIONS(5113),
    [sym_alias] = ACTIONS(5113),
    [sym_align] = ACTIONS(5113),
    [sym_auto] = ACTIONS(5113),
    [sym_class] = ACTIONS(5113),
    [sym_const] = ACTIONS(5113),
    [sym_debug] = ACTIONS(5113),
    [sym_deprecated] = ACTIONS(5113),
    [sym_enum] = ACTIONS(5113),
    [sym_export] = ACTIONS(5113),
    [sym_extern] = ACTIONS(5113),
    [sym_final] = ACTIONS(5113),
    [sym_immutable] = ACTIONS(5113),
    [sym_import] = ACTIONS(5113),
    [sym_inout] = ACTIONS(5113),
    [sym_interface] = ACTIONS(5113),
    [sym_invariant] = ACTIONS(5113),
    [sym_mixin] = ACTIONS(5113),
    [sym_nothrow] = ACTIONS(5113),
    [sym_override] = ACTIONS(5113),
    [sym_package] = ACTIONS(5113),
    [sym_pragma] = ACTIONS(5113),
    [sym_private] = ACTIONS(5113),
    [sym_protected] = ACTIONS(5113),
    [sym_public] = ACTIONS(5113),
    [sym_pure] = ACTIONS(5113),
    [sym_ref] = ACTIONS(5113),
    [sym_return] = ACTIONS(5113),
    [sym_scope] = ACTIONS(5113),
    [sym_shared] = ACTIONS(5113),
    [sym_static] = ACTIONS(5113),
    [sym_struct] = ACTIONS(5113),
    [sym_synchronized] = ACTIONS(5113),
    [sym_template] = ACTIONS(5113),
    [sym_typeof] = ACTIONS(5113),
    [sym_union] = ACTIONS(5113),
    [sym_unittest] = ACTIONS(5113),
    [sym_version] = ACTIONS(5113),
    [sym_gshared] = ACTIONS(5113),
    [sym_traits] = ACTIONS(5113),
    [sym_vector] = ACTIONS(5113),
    [sym_void] = ACTIONS(5113),
    [sym_directive] = ACTIONS(3),
  },
  [2860] = {
    [sym_identifier] = ACTIONS(4414),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4416),
    [anon_sym_DOT] = ACTIONS(4416),
    [anon_sym_SEMI] = ACTIONS(4416),
    [anon_sym_TILDE] = ACTIONS(4416),
    [anon_sym_AT] = ACTIONS(4416),
    [sym_bool] = ACTIONS(4414),
    [sym_byte] = ACTIONS(4414),
    [sym_ubyte] = ACTIONS(4414),
    [sym_char] = ACTIONS(4414),
    [sym_short] = ACTIONS(4414),
    [sym_ushort] = ACTIONS(4414),
    [sym_int] = ACTIONS(4414),
    [sym_uint] = ACTIONS(4414),
    [sym_long] = ACTIONS(4414),
    [sym_ulong] = ACTIONS(4414),
    [sym_cent] = ACTIONS(4414),
    [sym_ucent] = ACTIONS(4414),
    [sym_wchar] = ACTIONS(4414),
    [sym_dchar] = ACTIONS(4414),
    [sym_float] = ACTIONS(4414),
    [sym_double] = ACTIONS(4414),
    [sym_real] = ACTIONS(4414),
    [sym_ifloat] = ACTIONS(4414),
    [sym_idouble] = ACTIONS(4414),
    [sym_ireal] = ACTIONS(4414),
    [sym_cfloat] = ACTIONS(4414),
    [sym_cdouble] = ACTIONS(4414),
    [sym_creal] = ACTIONS(4414),
    [sym_size_t] = ACTIONS(4414),
    [sym_ptrdiff_t] = ACTIONS(4414),
    [sym_string] = ACTIONS(4414),
    [sym_cstring] = ACTIONS(4414),
    [sym_dstring] = ACTIONS(4414),
    [sym_wstring] = ACTIONS(4414),
    [sym_noreturn] = ACTIONS(4414),
    [sym_this] = ACTIONS(4414),
    [sym_abstract] = ACTIONS(4414),
    [sym_alias] = ACTIONS(4414),
    [sym_align] = ACTIONS(4414),
    [sym_auto] = ACTIONS(4414),
    [sym_class] = ACTIONS(4414),
    [sym_const] = ACTIONS(4414),
    [sym_debug] = ACTIONS(4414),
    [sym_deprecated] = ACTIONS(4414),
    [sym_else] = ACTIONS(4414),
    [sym_enum] = ACTIONS(4414),
    [sym_export] = ACTIONS(4414),
    [sym_extern] = ACTIONS(4414),
    [sym_final] = ACTIONS(4414),
    [sym_immutable] = ACTIONS(4414),
    [sym_import] = ACTIONS(4414),
    [sym_inout] = ACTIONS(4414),
    [sym_interface] = ACTIONS(4414),
    [sym_invariant] = ACTIONS(4414),
    [sym_mixin] = ACTIONS(4414),
    [sym_nothrow] = ACTIONS(4414),
    [sym_override] = ACTIONS(4414),
    [sym_package] = ACTIONS(4414),
    [sym_pragma] = ACTIONS(4414),
    [sym_private] = ACTIONS(4414),
    [sym_protected] = ACTIONS(4414),
    [sym_public] = ACTIONS(4414),
    [sym_pure] = ACTIONS(4414),
    [sym_ref] = ACTIONS(4414),
    [sym_return] = ACTIONS(4414),
    [sym_scope] = ACTIONS(4414),
    [sym_shared] = ACTIONS(4414),
    [sym_static] = ACTIONS(4414),
    [sym_struct] = ACTIONS(4414),
    [sym_synchronized] = ACTIONS(4414),
    [sym_template] = ACTIONS(4414),
    [sym_typeof] = ACTIONS(4414),
    [sym_union] = ACTIONS(4414),
    [sym_unittest] = ACTIONS(4414),
    [sym_version] = ACTIONS(4414),
    [sym_while] = ACTIONS(4414),
    [sym_gshared] = ACTIONS(4414),
    [sym_traits] = ACTIONS(4414),
    [sym_vector] = ACTIONS(4414),
    [sym_void] = ACTIONS(4414),
    [sym_directive] = ACTIONS(3),
  },
  [2861] = {
    [sym_identifier] = ACTIONS(4418),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4420),
    [anon_sym_DOT] = ACTIONS(4420),
    [anon_sym_SEMI] = ACTIONS(4420),
    [anon_sym_TILDE] = ACTIONS(4420),
    [anon_sym_AT] = ACTIONS(4420),
    [sym_bool] = ACTIONS(4418),
    [sym_byte] = ACTIONS(4418),
    [sym_ubyte] = ACTIONS(4418),
    [sym_char] = ACTIONS(4418),
    [sym_short] = ACTIONS(4418),
    [sym_ushort] = ACTIONS(4418),
    [sym_int] = ACTIONS(4418),
    [sym_uint] = ACTIONS(4418),
    [sym_long] = ACTIONS(4418),
    [sym_ulong] = ACTIONS(4418),
    [sym_cent] = ACTIONS(4418),
    [sym_ucent] = ACTIONS(4418),
    [sym_wchar] = ACTIONS(4418),
    [sym_dchar] = ACTIONS(4418),
    [sym_float] = ACTIONS(4418),
    [sym_double] = ACTIONS(4418),
    [sym_real] = ACTIONS(4418),
    [sym_ifloat] = ACTIONS(4418),
    [sym_idouble] = ACTIONS(4418),
    [sym_ireal] = ACTIONS(4418),
    [sym_cfloat] = ACTIONS(4418),
    [sym_cdouble] = ACTIONS(4418),
    [sym_creal] = ACTIONS(4418),
    [sym_size_t] = ACTIONS(4418),
    [sym_ptrdiff_t] = ACTIONS(4418),
    [sym_string] = ACTIONS(4418),
    [sym_cstring] = ACTIONS(4418),
    [sym_dstring] = ACTIONS(4418),
    [sym_wstring] = ACTIONS(4418),
    [sym_noreturn] = ACTIONS(4418),
    [sym_this] = ACTIONS(4418),
    [sym_abstract] = ACTIONS(4418),
    [sym_alias] = ACTIONS(4418),
    [sym_align] = ACTIONS(4418),
    [sym_auto] = ACTIONS(4418),
    [sym_class] = ACTIONS(4418),
    [sym_const] = ACTIONS(4418),
    [sym_debug] = ACTIONS(4418),
    [sym_deprecated] = ACTIONS(4418),
    [sym_else] = ACTIONS(4418),
    [sym_enum] = ACTIONS(4418),
    [sym_export] = ACTIONS(4418),
    [sym_extern] = ACTIONS(4418),
    [sym_final] = ACTIONS(4418),
    [sym_immutable] = ACTIONS(4418),
    [sym_import] = ACTIONS(4418),
    [sym_inout] = ACTIONS(4418),
    [sym_interface] = ACTIONS(4418),
    [sym_invariant] = ACTIONS(4418),
    [sym_mixin] = ACTIONS(4418),
    [sym_nothrow] = ACTIONS(4418),
    [sym_override] = ACTIONS(4418),
    [sym_package] = ACTIONS(4418),
    [sym_pragma] = ACTIONS(4418),
    [sym_private] = ACTIONS(4418),
    [sym_protected] = ACTIONS(4418),
    [sym_public] = ACTIONS(4418),
    [sym_pure] = ACTIONS(4418),
    [sym_ref] = ACTIONS(4418),
    [sym_return] = ACTIONS(4418),
    [sym_scope] = ACTIONS(4418),
    [sym_shared] = ACTIONS(4418),
    [sym_static] = ACTIONS(4418),
    [sym_struct] = ACTIONS(4418),
    [sym_synchronized] = ACTIONS(4418),
    [sym_template] = ACTIONS(4418),
    [sym_typeof] = ACTIONS(4418),
    [sym_union] = ACTIONS(4418),
    [sym_unittest] = ACTIONS(4418),
    [sym_version] = ACTIONS(4418),
    [sym_while] = ACTIONS(4418),
    [sym_gshared] = ACTIONS(4418),
    [sym_traits] = ACTIONS(4418),
    [sym_vector] = ACTIONS(4418),
    [sym_void] = ACTIONS(4418),
    [sym_directive] = ACTIONS(3),
  },
  [2862] = {
    [sym_identifier] = ACTIONS(4456),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4458),
    [anon_sym_DOT] = ACTIONS(4458),
    [anon_sym_SEMI] = ACTIONS(4458),
    [anon_sym_TILDE] = ACTIONS(4458),
    [anon_sym_AT] = ACTIONS(4458),
    [sym_bool] = ACTIONS(4456),
    [sym_byte] = ACTIONS(4456),
    [sym_ubyte] = ACTIONS(4456),
    [sym_char] = ACTIONS(4456),
    [sym_short] = ACTIONS(4456),
    [sym_ushort] = ACTIONS(4456),
    [sym_int] = ACTIONS(4456),
    [sym_uint] = ACTIONS(4456),
    [sym_long] = ACTIONS(4456),
    [sym_ulong] = ACTIONS(4456),
    [sym_cent] = ACTIONS(4456),
    [sym_ucent] = ACTIONS(4456),
    [sym_wchar] = ACTIONS(4456),
    [sym_dchar] = ACTIONS(4456),
    [sym_float] = ACTIONS(4456),
    [sym_double] = ACTIONS(4456),
    [sym_real] = ACTIONS(4456),
    [sym_ifloat] = ACTIONS(4456),
    [sym_idouble] = ACTIONS(4456),
    [sym_ireal] = ACTIONS(4456),
    [sym_cfloat] = ACTIONS(4456),
    [sym_cdouble] = ACTIONS(4456),
    [sym_creal] = ACTIONS(4456),
    [sym_size_t] = ACTIONS(4456),
    [sym_ptrdiff_t] = ACTIONS(4456),
    [sym_string] = ACTIONS(4456),
    [sym_cstring] = ACTIONS(4456),
    [sym_dstring] = ACTIONS(4456),
    [sym_wstring] = ACTIONS(4456),
    [sym_noreturn] = ACTIONS(4456),
    [sym_this] = ACTIONS(4456),
    [sym_abstract] = ACTIONS(4456),
    [sym_alias] = ACTIONS(4456),
    [sym_align] = ACTIONS(4456),
    [sym_auto] = ACTIONS(4456),
    [sym_class] = ACTIONS(4456),
    [sym_const] = ACTIONS(4456),
    [sym_debug] = ACTIONS(4456),
    [sym_deprecated] = ACTIONS(4456),
    [sym_else] = ACTIONS(4456),
    [sym_enum] = ACTIONS(4456),
    [sym_export] = ACTIONS(4456),
    [sym_extern] = ACTIONS(4456),
    [sym_final] = ACTIONS(4456),
    [sym_immutable] = ACTIONS(4456),
    [sym_import] = ACTIONS(4456),
    [sym_inout] = ACTIONS(4456),
    [sym_interface] = ACTIONS(4456),
    [sym_invariant] = ACTIONS(4456),
    [sym_mixin] = ACTIONS(4456),
    [sym_nothrow] = ACTIONS(4456),
    [sym_override] = ACTIONS(4456),
    [sym_package] = ACTIONS(4456),
    [sym_pragma] = ACTIONS(4456),
    [sym_private] = ACTIONS(4456),
    [sym_protected] = ACTIONS(4456),
    [sym_public] = ACTIONS(4456),
    [sym_pure] = ACTIONS(4456),
    [sym_ref] = ACTIONS(4456),
    [sym_return] = ACTIONS(4456),
    [sym_scope] = ACTIONS(4456),
    [sym_shared] = ACTIONS(4456),
    [sym_static] = ACTIONS(4456),
    [sym_struct] = ACTIONS(4456),
    [sym_synchronized] = ACTIONS(4456),
    [sym_template] = ACTIONS(4456),
    [sym_typeof] = ACTIONS(4456),
    [sym_union] = ACTIONS(4456),
    [sym_unittest] = ACTIONS(4456),
    [sym_version] = ACTIONS(4456),
    [sym_while] = ACTIONS(4456),
    [sym_gshared] = ACTIONS(4456),
    [sym_traits] = ACTIONS(4456),
    [sym_vector] = ACTIONS(4456),
    [sym_void] = ACTIONS(4456),
    [sym_directive] = ACTIONS(3),
  },
  [2863] = {
    [ts_builtin_sym_end] = ACTIONS(4448),
    [sym_identifier] = ACTIONS(4446),
    [sym_end_file] = ACTIONS(4446),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(4448),
    [anon_sym_SEMI] = ACTIONS(4448),
    [anon_sym_TILDE] = ACTIONS(4448),
    [anon_sym_AT] = ACTIONS(4448),
    [sym_bool] = ACTIONS(4446),
    [sym_byte] = ACTIONS(4446),
    [sym_ubyte] = ACTIONS(4446),
    [sym_char] = ACTIONS(4446),
    [sym_short] = ACTIONS(4446),
    [sym_ushort] = ACTIONS(4446),
    [sym_int] = ACTIONS(4446),
    [sym_uint] = ACTIONS(4446),
    [sym_long] = ACTIONS(4446),
    [sym_ulong] = ACTIONS(4446),
    [sym_cent] = ACTIONS(4446),
    [sym_ucent] = ACTIONS(4446),
    [sym_wchar] = ACTIONS(4446),
    [sym_dchar] = ACTIONS(4446),
    [sym_float] = ACTIONS(4446),
    [sym_double] = ACTIONS(4446),
    [sym_real] = ACTIONS(4446),
    [sym_ifloat] = ACTIONS(4446),
    [sym_idouble] = ACTIONS(4446),
    [sym_ireal] = ACTIONS(4446),
    [sym_cfloat] = ACTIONS(4446),
    [sym_cdouble] = ACTIONS(4446),
    [sym_creal] = ACTIONS(4446),
    [sym_size_t] = ACTIONS(4446),
    [sym_ptrdiff_t] = ACTIONS(4446),
    [sym_string] = ACTIONS(4446),
    [sym_cstring] = ACTIONS(4446),
    [sym_dstring] = ACTIONS(4446),
    [sym_wstring] = ACTIONS(4446),
    [sym_noreturn] = ACTIONS(4446),
    [sym_this] = ACTIONS(4446),
    [sym_abstract] = ACTIONS(4446),
    [sym_alias] = ACTIONS(4446),
    [sym_align] = ACTIONS(4446),
    [sym_auto] = ACTIONS(4446),
    [sym_class] = ACTIONS(4446),
    [sym_const] = ACTIONS(4446),
    [sym_debug] = ACTIONS(4446),
    [sym_deprecated] = ACTIONS(4446),
    [sym_else] = ACTIONS(6821),
    [sym_enum] = ACTIONS(4446),
    [sym_export] = ACTIONS(4446),
    [sym_extern] = ACTIONS(4446),
    [sym_final] = ACTIONS(4446),
    [sym_immutable] = ACTIONS(4446),
    [sym_import] = ACTIONS(4446),
    [sym_inout] = ACTIONS(4446),
    [sym_interface] = ACTIONS(4446),
    [sym_invariant] = ACTIONS(4446),
    [sym_mixin] = ACTIONS(4446),
    [sym_nothrow] = ACTIONS(4446),
    [sym_override] = ACTIONS(4446),
    [sym_package] = ACTIONS(4446),
    [sym_pragma] = ACTIONS(4446),
    [sym_private] = ACTIONS(4446),
    [sym_protected] = ACTIONS(4446),
    [sym_public] = ACTIONS(4446),
    [sym_pure] = ACTIONS(4446),
    [sym_ref] = ACTIONS(4446),
    [sym_return] = ACTIONS(4446),
    [sym_scope] = ACTIONS(4446),
    [sym_shared] = ACTIONS(4446),
    [sym_static] = ACTIONS(4446),
    [sym_struct] = ACTIONS(4446),
    [sym_synchronized] = ACTIONS(4446),
    [sym_template] = ACTIONS(4446),
    [sym_typeof] = ACTIONS(4446),
    [sym_union] = ACTIONS(4446),
    [sym_unittest] = ACTIONS(4446),
    [sym_version] = ACTIONS(4446),
    [sym_gshared] = ACTIONS(4446),
    [sym_traits] = ACTIONS(4446),
    [sym_vector] = ACTIONS(4446),
    [sym_void] = ACTIONS(4446),
    [sym_directive] = ACTIONS(3),
  },
  [2864] = {
    [sym_identifier] = ACTIONS(4464),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4466),
    [anon_sym_DOT] = ACTIONS(4466),
    [anon_sym_SEMI] = ACTIONS(4466),
    [anon_sym_TILDE] = ACTIONS(4466),
    [anon_sym_AT] = ACTIONS(4466),
    [sym_bool] = ACTIONS(4464),
    [sym_byte] = ACTIONS(4464),
    [sym_ubyte] = ACTIONS(4464),
    [sym_char] = ACTIONS(4464),
    [sym_short] = ACTIONS(4464),
    [sym_ushort] = ACTIONS(4464),
    [sym_int] = ACTIONS(4464),
    [sym_uint] = ACTIONS(4464),
    [sym_long] = ACTIONS(4464),
    [sym_ulong] = ACTIONS(4464),
    [sym_cent] = ACTIONS(4464),
    [sym_ucent] = ACTIONS(4464),
    [sym_wchar] = ACTIONS(4464),
    [sym_dchar] = ACTIONS(4464),
    [sym_float] = ACTIONS(4464),
    [sym_double] = ACTIONS(4464),
    [sym_real] = ACTIONS(4464),
    [sym_ifloat] = ACTIONS(4464),
    [sym_idouble] = ACTIONS(4464),
    [sym_ireal] = ACTIONS(4464),
    [sym_cfloat] = ACTIONS(4464),
    [sym_cdouble] = ACTIONS(4464),
    [sym_creal] = ACTIONS(4464),
    [sym_size_t] = ACTIONS(4464),
    [sym_ptrdiff_t] = ACTIONS(4464),
    [sym_string] = ACTIONS(4464),
    [sym_cstring] = ACTIONS(4464),
    [sym_dstring] = ACTIONS(4464),
    [sym_wstring] = ACTIONS(4464),
    [sym_noreturn] = ACTIONS(4464),
    [sym_this] = ACTIONS(4464),
    [sym_abstract] = ACTIONS(4464),
    [sym_alias] = ACTIONS(4464),
    [sym_align] = ACTIONS(4464),
    [sym_auto] = ACTIONS(4464),
    [sym_class] = ACTIONS(4464),
    [sym_const] = ACTIONS(4464),
    [sym_debug] = ACTIONS(4464),
    [sym_deprecated] = ACTIONS(4464),
    [sym_else] = ACTIONS(4464),
    [sym_enum] = ACTIONS(4464),
    [sym_export] = ACTIONS(4464),
    [sym_extern] = ACTIONS(4464),
    [sym_final] = ACTIONS(4464),
    [sym_immutable] = ACTIONS(4464),
    [sym_import] = ACTIONS(4464),
    [sym_inout] = ACTIONS(4464),
    [sym_interface] = ACTIONS(4464),
    [sym_invariant] = ACTIONS(4464),
    [sym_mixin] = ACTIONS(4464),
    [sym_nothrow] = ACTIONS(4464),
    [sym_override] = ACTIONS(4464),
    [sym_package] = ACTIONS(4464),
    [sym_pragma] = ACTIONS(4464),
    [sym_private] = ACTIONS(4464),
    [sym_protected] = ACTIONS(4464),
    [sym_public] = ACTIONS(4464),
    [sym_pure] = ACTIONS(4464),
    [sym_ref] = ACTIONS(4464),
    [sym_return] = ACTIONS(4464),
    [sym_scope] = ACTIONS(4464),
    [sym_shared] = ACTIONS(4464),
    [sym_static] = ACTIONS(4464),
    [sym_struct] = ACTIONS(4464),
    [sym_synchronized] = ACTIONS(4464),
    [sym_template] = ACTIONS(4464),
    [sym_typeof] = ACTIONS(4464),
    [sym_union] = ACTIONS(4464),
    [sym_unittest] = ACTIONS(4464),
    [sym_version] = ACTIONS(4464),
    [sym_while] = ACTIONS(4464),
    [sym_gshared] = ACTIONS(4464),
    [sym_traits] = ACTIONS(4464),
    [sym_vector] = ACTIONS(4464),
    [sym_void] = ACTIONS(4464),
    [sym_directive] = ACTIONS(3),
  },
  [2865] = {
    [sym_identifier] = ACTIONS(4472),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4474),
    [anon_sym_DOT] = ACTIONS(4474),
    [anon_sym_SEMI] = ACTIONS(4474),
    [anon_sym_TILDE] = ACTIONS(4474),
    [anon_sym_AT] = ACTIONS(4474),
    [sym_bool] = ACTIONS(4472),
    [sym_byte] = ACTIONS(4472),
    [sym_ubyte] = ACTIONS(4472),
    [sym_char] = ACTIONS(4472),
    [sym_short] = ACTIONS(4472),
    [sym_ushort] = ACTIONS(4472),
    [sym_int] = ACTIONS(4472),
    [sym_uint] = ACTIONS(4472),
    [sym_long] = ACTIONS(4472),
    [sym_ulong] = ACTIONS(4472),
    [sym_cent] = ACTIONS(4472),
    [sym_ucent] = ACTIONS(4472),
    [sym_wchar] = ACTIONS(4472),
    [sym_dchar] = ACTIONS(4472),
    [sym_float] = ACTIONS(4472),
    [sym_double] = ACTIONS(4472),
    [sym_real] = ACTIONS(4472),
    [sym_ifloat] = ACTIONS(4472),
    [sym_idouble] = ACTIONS(4472),
    [sym_ireal] = ACTIONS(4472),
    [sym_cfloat] = ACTIONS(4472),
    [sym_cdouble] = ACTIONS(4472),
    [sym_creal] = ACTIONS(4472),
    [sym_size_t] = ACTIONS(4472),
    [sym_ptrdiff_t] = ACTIONS(4472),
    [sym_string] = ACTIONS(4472),
    [sym_cstring] = ACTIONS(4472),
    [sym_dstring] = ACTIONS(4472),
    [sym_wstring] = ACTIONS(4472),
    [sym_noreturn] = ACTIONS(4472),
    [sym_this] = ACTIONS(4472),
    [sym_abstract] = ACTIONS(4472),
    [sym_alias] = ACTIONS(4472),
    [sym_align] = ACTIONS(4472),
    [sym_auto] = ACTIONS(4472),
    [sym_class] = ACTIONS(4472),
    [sym_const] = ACTIONS(4472),
    [sym_debug] = ACTIONS(4472),
    [sym_deprecated] = ACTIONS(4472),
    [sym_else] = ACTIONS(4472),
    [sym_enum] = ACTIONS(4472),
    [sym_export] = ACTIONS(4472),
    [sym_extern] = ACTIONS(4472),
    [sym_final] = ACTIONS(4472),
    [sym_immutable] = ACTIONS(4472),
    [sym_import] = ACTIONS(4472),
    [sym_inout] = ACTIONS(4472),
    [sym_interface] = ACTIONS(4472),
    [sym_invariant] = ACTIONS(4472),
    [sym_mixin] = ACTIONS(4472),
    [sym_nothrow] = ACTIONS(4472),
    [sym_override] = ACTIONS(4472),
    [sym_package] = ACTIONS(4472),
    [sym_pragma] = ACTIONS(4472),
    [sym_private] = ACTIONS(4472),
    [sym_protected] = ACTIONS(4472),
    [sym_public] = ACTIONS(4472),
    [sym_pure] = ACTIONS(4472),
    [sym_ref] = ACTIONS(4472),
    [sym_return] = ACTIONS(4472),
    [sym_scope] = ACTIONS(4472),
    [sym_shared] = ACTIONS(4472),
    [sym_static] = ACTIONS(4472),
    [sym_struct] = ACTIONS(4472),
    [sym_synchronized] = ACTIONS(4472),
    [sym_template] = ACTIONS(4472),
    [sym_typeof] = ACTIONS(4472),
    [sym_union] = ACTIONS(4472),
    [sym_unittest] = ACTIONS(4472),
    [sym_version] = ACTIONS(4472),
    [sym_while] = ACTIONS(4472),
    [sym_gshared] = ACTIONS(4472),
    [sym_traits] = ACTIONS(4472),
    [sym_vector] = ACTIONS(4472),
    [sym_void] = ACTIONS(4472),
    [sym_directive] = ACTIONS(3),
  },
  [2866] = {
    [sym_identifier] = ACTIONS(4496),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4498),
    [anon_sym_DOT] = ACTIONS(4498),
    [anon_sym_SEMI] = ACTIONS(4498),
    [anon_sym_TILDE] = ACTIONS(4498),
    [anon_sym_AT] = ACTIONS(4498),
    [sym_bool] = ACTIONS(4496),
    [sym_byte] = ACTIONS(4496),
    [sym_ubyte] = ACTIONS(4496),
    [sym_char] = ACTIONS(4496),
    [sym_short] = ACTIONS(4496),
    [sym_ushort] = ACTIONS(4496),
    [sym_int] = ACTIONS(4496),
    [sym_uint] = ACTIONS(4496),
    [sym_long] = ACTIONS(4496),
    [sym_ulong] = ACTIONS(4496),
    [sym_cent] = ACTIONS(4496),
    [sym_ucent] = ACTIONS(4496),
    [sym_wchar] = ACTIONS(4496),
    [sym_dchar] = ACTIONS(4496),
    [sym_float] = ACTIONS(4496),
    [sym_double] = ACTIONS(4496),
    [sym_real] = ACTIONS(4496),
    [sym_ifloat] = ACTIONS(4496),
    [sym_idouble] = ACTIONS(4496),
    [sym_ireal] = ACTIONS(4496),
    [sym_cfloat] = ACTIONS(4496),
    [sym_cdouble] = ACTIONS(4496),
    [sym_creal] = ACTIONS(4496),
    [sym_size_t] = ACTIONS(4496),
    [sym_ptrdiff_t] = ACTIONS(4496),
    [sym_string] = ACTIONS(4496),
    [sym_cstring] = ACTIONS(4496),
    [sym_dstring] = ACTIONS(4496),
    [sym_wstring] = ACTIONS(4496),
    [sym_noreturn] = ACTIONS(4496),
    [sym_this] = ACTIONS(4496),
    [sym_abstract] = ACTIONS(4496),
    [sym_alias] = ACTIONS(4496),
    [sym_align] = ACTIONS(4496),
    [sym_auto] = ACTIONS(4496),
    [sym_class] = ACTIONS(4496),
    [sym_const] = ACTIONS(4496),
    [sym_debug] = ACTIONS(4496),
    [sym_deprecated] = ACTIONS(4496),
    [sym_else] = ACTIONS(4496),
    [sym_enum] = ACTIONS(4496),
    [sym_export] = ACTIONS(4496),
    [sym_extern] = ACTIONS(4496),
    [sym_final] = ACTIONS(4496),
    [sym_immutable] = ACTIONS(4496),
    [sym_import] = ACTIONS(4496),
    [sym_inout] = ACTIONS(4496),
    [sym_interface] = ACTIONS(4496),
    [sym_invariant] = ACTIONS(4496),
    [sym_mixin] = ACTIONS(4496),
    [sym_nothrow] = ACTIONS(4496),
    [sym_override] = ACTIONS(4496),
    [sym_package] = ACTIONS(4496),
    [sym_pragma] = ACTIONS(4496),
    [sym_private] = ACTIONS(4496),
    [sym_protected] = ACTIONS(4496),
    [sym_public] = ACTIONS(4496),
    [sym_pure] = ACTIONS(4496),
    [sym_ref] = ACTIONS(4496),
    [sym_return] = ACTIONS(4496),
    [sym_scope] = ACTIONS(4496),
    [sym_shared] = ACTIONS(4496),
    [sym_static] = ACTIONS(4496),
    [sym_struct] = ACTIONS(4496),
    [sym_synchronized] = ACTIONS(4496),
    [sym_template] = ACTIONS(4496),
    [sym_typeof] = ACTIONS(4496),
    [sym_union] = ACTIONS(4496),
    [sym_unittest] = ACTIONS(4496),
    [sym_version] = ACTIONS(4496),
    [sym_while] = ACTIONS(4496),
    [sym_gshared] = ACTIONS(4496),
    [sym_traits] = ACTIONS(4496),
    [sym_vector] = ACTIONS(4496),
    [sym_void] = ACTIONS(4496),
    [sym_directive] = ACTIONS(3),
  },
  [2867] = {
    [sym_identifier] = ACTIONS(4500),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4502),
    [anon_sym_DOT] = ACTIONS(4502),
    [anon_sym_SEMI] = ACTIONS(4502),
    [anon_sym_TILDE] = ACTIONS(4502),
    [anon_sym_AT] = ACTIONS(4502),
    [sym_bool] = ACTIONS(4500),
    [sym_byte] = ACTIONS(4500),
    [sym_ubyte] = ACTIONS(4500),
    [sym_char] = ACTIONS(4500),
    [sym_short] = ACTIONS(4500),
    [sym_ushort] = ACTIONS(4500),
    [sym_int] = ACTIONS(4500),
    [sym_uint] = ACTIONS(4500),
    [sym_long] = ACTIONS(4500),
    [sym_ulong] = ACTIONS(4500),
    [sym_cent] = ACTIONS(4500),
    [sym_ucent] = ACTIONS(4500),
    [sym_wchar] = ACTIONS(4500),
    [sym_dchar] = ACTIONS(4500),
    [sym_float] = ACTIONS(4500),
    [sym_double] = ACTIONS(4500),
    [sym_real] = ACTIONS(4500),
    [sym_ifloat] = ACTIONS(4500),
    [sym_idouble] = ACTIONS(4500),
    [sym_ireal] = ACTIONS(4500),
    [sym_cfloat] = ACTIONS(4500),
    [sym_cdouble] = ACTIONS(4500),
    [sym_creal] = ACTIONS(4500),
    [sym_size_t] = ACTIONS(4500),
    [sym_ptrdiff_t] = ACTIONS(4500),
    [sym_string] = ACTIONS(4500),
    [sym_cstring] = ACTIONS(4500),
    [sym_dstring] = ACTIONS(4500),
    [sym_wstring] = ACTIONS(4500),
    [sym_noreturn] = ACTIONS(4500),
    [sym_this] = ACTIONS(4500),
    [sym_abstract] = ACTIONS(4500),
    [sym_alias] = ACTIONS(4500),
    [sym_align] = ACTIONS(4500),
    [sym_auto] = ACTIONS(4500),
    [sym_class] = ACTIONS(4500),
    [sym_const] = ACTIONS(4500),
    [sym_debug] = ACTIONS(4500),
    [sym_deprecated] = ACTIONS(4500),
    [sym_else] = ACTIONS(4500),
    [sym_enum] = ACTIONS(4500),
    [sym_export] = ACTIONS(4500),
    [sym_extern] = ACTIONS(4500),
    [sym_final] = ACTIONS(4500),
    [sym_immutable] = ACTIONS(4500),
    [sym_import] = ACTIONS(4500),
    [sym_inout] = ACTIONS(4500),
    [sym_interface] = ACTIONS(4500),
    [sym_invariant] = ACTIONS(4500),
    [sym_mixin] = ACTIONS(4500),
    [sym_nothrow] = ACTIONS(4500),
    [sym_override] = ACTIONS(4500),
    [sym_package] = ACTIONS(4500),
    [sym_pragma] = ACTIONS(4500),
    [sym_private] = ACTIONS(4500),
    [sym_protected] = ACTIONS(4500),
    [sym_public] = ACTIONS(4500),
    [sym_pure] = ACTIONS(4500),
    [sym_ref] = ACTIONS(4500),
    [sym_return] = ACTIONS(4500),
    [sym_scope] = ACTIONS(4500),
    [sym_shared] = ACTIONS(4500),
    [sym_static] = ACTIONS(4500),
    [sym_struct] = ACTIONS(4500),
    [sym_synchronized] = ACTIONS(4500),
    [sym_template] = ACTIONS(4500),
    [sym_typeof] = ACTIONS(4500),
    [sym_union] = ACTIONS(4500),
    [sym_unittest] = ACTIONS(4500),
    [sym_version] = ACTIONS(4500),
    [sym_while] = ACTIONS(4500),
    [sym_gshared] = ACTIONS(4500),
    [sym_traits] = ACTIONS(4500),
    [sym_vector] = ACTIONS(4500),
    [sym_void] = ACTIONS(4500),
    [sym_directive] = ACTIONS(3),
  },
  [2868] = {
    [sym_identifier] = ACTIONS(4512),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4514),
    [anon_sym_DOT] = ACTIONS(4514),
    [anon_sym_SEMI] = ACTIONS(4514),
    [anon_sym_TILDE] = ACTIONS(4514),
    [anon_sym_AT] = ACTIONS(4514),
    [sym_bool] = ACTIONS(4512),
    [sym_byte] = ACTIONS(4512),
    [sym_ubyte] = ACTIONS(4512),
    [sym_char] = ACTIONS(4512),
    [sym_short] = ACTIONS(4512),
    [sym_ushort] = ACTIONS(4512),
    [sym_int] = ACTIONS(4512),
    [sym_uint] = ACTIONS(4512),
    [sym_long] = ACTIONS(4512),
    [sym_ulong] = ACTIONS(4512),
    [sym_cent] = ACTIONS(4512),
    [sym_ucent] = ACTIONS(4512),
    [sym_wchar] = ACTIONS(4512),
    [sym_dchar] = ACTIONS(4512),
    [sym_float] = ACTIONS(4512),
    [sym_double] = ACTIONS(4512),
    [sym_real] = ACTIONS(4512),
    [sym_ifloat] = ACTIONS(4512),
    [sym_idouble] = ACTIONS(4512),
    [sym_ireal] = ACTIONS(4512),
    [sym_cfloat] = ACTIONS(4512),
    [sym_cdouble] = ACTIONS(4512),
    [sym_creal] = ACTIONS(4512),
    [sym_size_t] = ACTIONS(4512),
    [sym_ptrdiff_t] = ACTIONS(4512),
    [sym_string] = ACTIONS(4512),
    [sym_cstring] = ACTIONS(4512),
    [sym_dstring] = ACTIONS(4512),
    [sym_wstring] = ACTIONS(4512),
    [sym_noreturn] = ACTIONS(4512),
    [sym_this] = ACTIONS(4512),
    [sym_abstract] = ACTIONS(4512),
    [sym_alias] = ACTIONS(4512),
    [sym_align] = ACTIONS(4512),
    [sym_auto] = ACTIONS(4512),
    [sym_class] = ACTIONS(4512),
    [sym_const] = ACTIONS(4512),
    [sym_debug] = ACTIONS(4512),
    [sym_deprecated] = ACTIONS(4512),
    [sym_else] = ACTIONS(4512),
    [sym_enum] = ACTIONS(4512),
    [sym_export] = ACTIONS(4512),
    [sym_extern] = ACTIONS(4512),
    [sym_final] = ACTIONS(4512),
    [sym_immutable] = ACTIONS(4512),
    [sym_import] = ACTIONS(4512),
    [sym_inout] = ACTIONS(4512),
    [sym_interface] = ACTIONS(4512),
    [sym_invariant] = ACTIONS(4512),
    [sym_mixin] = ACTIONS(4512),
    [sym_nothrow] = ACTIONS(4512),
    [sym_override] = ACTIONS(4512),
    [sym_package] = ACTIONS(4512),
    [sym_pragma] = ACTIONS(4512),
    [sym_private] = ACTIONS(4512),
    [sym_protected] = ACTIONS(4512),
    [sym_public] = ACTIONS(4512),
    [sym_pure] = ACTIONS(4512),
    [sym_ref] = ACTIONS(4512),
    [sym_return] = ACTIONS(4512),
    [sym_scope] = ACTIONS(4512),
    [sym_shared] = ACTIONS(4512),
    [sym_static] = ACTIONS(4512),
    [sym_struct] = ACTIONS(4512),
    [sym_synchronized] = ACTIONS(4512),
    [sym_template] = ACTIONS(4512),
    [sym_typeof] = ACTIONS(4512),
    [sym_union] = ACTIONS(4512),
    [sym_unittest] = ACTIONS(4512),
    [sym_version] = ACTIONS(4512),
    [sym_while] = ACTIONS(4512),
    [sym_gshared] = ACTIONS(4512),
    [sym_traits] = ACTIONS(4512),
    [sym_vector] = ACTIONS(4512),
    [sym_void] = ACTIONS(4512),
    [sym_directive] = ACTIONS(3),
  },
  [2869] = {
    [sym_identifier] = ACTIONS(4520),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4522),
    [anon_sym_DOT] = ACTIONS(4522),
    [anon_sym_SEMI] = ACTIONS(4522),
    [anon_sym_TILDE] = ACTIONS(4522),
    [anon_sym_AT] = ACTIONS(4522),
    [sym_bool] = ACTIONS(4520),
    [sym_byte] = ACTIONS(4520),
    [sym_ubyte] = ACTIONS(4520),
    [sym_char] = ACTIONS(4520),
    [sym_short] = ACTIONS(4520),
    [sym_ushort] = ACTIONS(4520),
    [sym_int] = ACTIONS(4520),
    [sym_uint] = ACTIONS(4520),
    [sym_long] = ACTIONS(4520),
    [sym_ulong] = ACTIONS(4520),
    [sym_cent] = ACTIONS(4520),
    [sym_ucent] = ACTIONS(4520),
    [sym_wchar] = ACTIONS(4520),
    [sym_dchar] = ACTIONS(4520),
    [sym_float] = ACTIONS(4520),
    [sym_double] = ACTIONS(4520),
    [sym_real] = ACTIONS(4520),
    [sym_ifloat] = ACTIONS(4520),
    [sym_idouble] = ACTIONS(4520),
    [sym_ireal] = ACTIONS(4520),
    [sym_cfloat] = ACTIONS(4520),
    [sym_cdouble] = ACTIONS(4520),
    [sym_creal] = ACTIONS(4520),
    [sym_size_t] = ACTIONS(4520),
    [sym_ptrdiff_t] = ACTIONS(4520),
    [sym_string] = ACTIONS(4520),
    [sym_cstring] = ACTIONS(4520),
    [sym_dstring] = ACTIONS(4520),
    [sym_wstring] = ACTIONS(4520),
    [sym_noreturn] = ACTIONS(4520),
    [sym_this] = ACTIONS(4520),
    [sym_abstract] = ACTIONS(4520),
    [sym_alias] = ACTIONS(4520),
    [sym_align] = ACTIONS(4520),
    [sym_auto] = ACTIONS(4520),
    [sym_class] = ACTIONS(4520),
    [sym_const] = ACTIONS(4520),
    [sym_debug] = ACTIONS(4520),
    [sym_deprecated] = ACTIONS(4520),
    [sym_else] = ACTIONS(4520),
    [sym_enum] = ACTIONS(4520),
    [sym_export] = ACTIONS(4520),
    [sym_extern] = ACTIONS(4520),
    [sym_final] = ACTIONS(4520),
    [sym_immutable] = ACTIONS(4520),
    [sym_import] = ACTIONS(4520),
    [sym_inout] = ACTIONS(4520),
    [sym_interface] = ACTIONS(4520),
    [sym_invariant] = ACTIONS(4520),
    [sym_mixin] = ACTIONS(4520),
    [sym_nothrow] = ACTIONS(4520),
    [sym_override] = ACTIONS(4520),
    [sym_package] = ACTIONS(4520),
    [sym_pragma] = ACTIONS(4520),
    [sym_private] = ACTIONS(4520),
    [sym_protected] = ACTIONS(4520),
    [sym_public] = ACTIONS(4520),
    [sym_pure] = ACTIONS(4520),
    [sym_ref] = ACTIONS(4520),
    [sym_return] = ACTIONS(4520),
    [sym_scope] = ACTIONS(4520),
    [sym_shared] = ACTIONS(4520),
    [sym_static] = ACTIONS(4520),
    [sym_struct] = ACTIONS(4520),
    [sym_synchronized] = ACTIONS(4520),
    [sym_template] = ACTIONS(4520),
    [sym_typeof] = ACTIONS(4520),
    [sym_union] = ACTIONS(4520),
    [sym_unittest] = ACTIONS(4520),
    [sym_version] = ACTIONS(4520),
    [sym_while] = ACTIONS(4520),
    [sym_gshared] = ACTIONS(4520),
    [sym_traits] = ACTIONS(4520),
    [sym_vector] = ACTIONS(4520),
    [sym_void] = ACTIONS(4520),
    [sym_directive] = ACTIONS(3),
  },
  [2870] = {
    [sym_identifier] = ACTIONS(4534),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4536),
    [anon_sym_DOT] = ACTIONS(4536),
    [anon_sym_SEMI] = ACTIONS(4536),
    [anon_sym_TILDE] = ACTIONS(4536),
    [anon_sym_AT] = ACTIONS(4536),
    [sym_bool] = ACTIONS(4534),
    [sym_byte] = ACTIONS(4534),
    [sym_ubyte] = ACTIONS(4534),
    [sym_char] = ACTIONS(4534),
    [sym_short] = ACTIONS(4534),
    [sym_ushort] = ACTIONS(4534),
    [sym_int] = ACTIONS(4534),
    [sym_uint] = ACTIONS(4534),
    [sym_long] = ACTIONS(4534),
    [sym_ulong] = ACTIONS(4534),
    [sym_cent] = ACTIONS(4534),
    [sym_ucent] = ACTIONS(4534),
    [sym_wchar] = ACTIONS(4534),
    [sym_dchar] = ACTIONS(4534),
    [sym_float] = ACTIONS(4534),
    [sym_double] = ACTIONS(4534),
    [sym_real] = ACTIONS(4534),
    [sym_ifloat] = ACTIONS(4534),
    [sym_idouble] = ACTIONS(4534),
    [sym_ireal] = ACTIONS(4534),
    [sym_cfloat] = ACTIONS(4534),
    [sym_cdouble] = ACTIONS(4534),
    [sym_creal] = ACTIONS(4534),
    [sym_size_t] = ACTIONS(4534),
    [sym_ptrdiff_t] = ACTIONS(4534),
    [sym_string] = ACTIONS(4534),
    [sym_cstring] = ACTIONS(4534),
    [sym_dstring] = ACTIONS(4534),
    [sym_wstring] = ACTIONS(4534),
    [sym_noreturn] = ACTIONS(4534),
    [sym_this] = ACTIONS(4534),
    [sym_abstract] = ACTIONS(4534),
    [sym_alias] = ACTIONS(4534),
    [sym_align] = ACTIONS(4534),
    [sym_auto] = ACTIONS(4534),
    [sym_class] = ACTIONS(4534),
    [sym_const] = ACTIONS(4534),
    [sym_debug] = ACTIONS(4534),
    [sym_deprecated] = ACTIONS(4534),
    [sym_else] = ACTIONS(4534),
    [sym_enum] = ACTIONS(4534),
    [sym_export] = ACTIONS(4534),
    [sym_extern] = ACTIONS(4534),
    [sym_final] = ACTIONS(4534),
    [sym_immutable] = ACTIONS(4534),
    [sym_import] = ACTIONS(4534),
    [sym_inout] = ACTIONS(4534),
    [sym_interface] = ACTIONS(4534),
    [sym_invariant] = ACTIONS(4534),
    [sym_mixin] = ACTIONS(4534),
    [sym_nothrow] = ACTIONS(4534),
    [sym_override] = ACTIONS(4534),
    [sym_package] = ACTIONS(4534),
    [sym_pragma] = ACTIONS(4534),
    [sym_private] = ACTIONS(4534),
    [sym_protected] = ACTIONS(4534),
    [sym_public] = ACTIONS(4534),
    [sym_pure] = ACTIONS(4534),
    [sym_ref] = ACTIONS(4534),
    [sym_return] = ACTIONS(4534),
    [sym_scope] = ACTIONS(4534),
    [sym_shared] = ACTIONS(4534),
    [sym_static] = ACTIONS(4534),
    [sym_struct] = ACTIONS(4534),
    [sym_synchronized] = ACTIONS(4534),
    [sym_template] = ACTIONS(4534),
    [sym_typeof] = ACTIONS(4534),
    [sym_union] = ACTIONS(4534),
    [sym_unittest] = ACTIONS(4534),
    [sym_version] = ACTIONS(4534),
    [sym_while] = ACTIONS(4534),
    [sym_gshared] = ACTIONS(4534),
    [sym_traits] = ACTIONS(4534),
    [sym_vector] = ACTIONS(4534),
    [sym_void] = ACTIONS(4534),
    [sym_directive] = ACTIONS(3),
  },
  [2871] = {
    [sym_identifier] = ACTIONS(4538),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4540),
    [anon_sym_DOT] = ACTIONS(4540),
    [anon_sym_SEMI] = ACTIONS(4540),
    [anon_sym_TILDE] = ACTIONS(4540),
    [anon_sym_AT] = ACTIONS(4540),
    [sym_bool] = ACTIONS(4538),
    [sym_byte] = ACTIONS(4538),
    [sym_ubyte] = ACTIONS(4538),
    [sym_char] = ACTIONS(4538),
    [sym_short] = ACTIONS(4538),
    [sym_ushort] = ACTIONS(4538),
    [sym_int] = ACTIONS(4538),
    [sym_uint] = ACTIONS(4538),
    [sym_long] = ACTIONS(4538),
    [sym_ulong] = ACTIONS(4538),
    [sym_cent] = ACTIONS(4538),
    [sym_ucent] = ACTIONS(4538),
    [sym_wchar] = ACTIONS(4538),
    [sym_dchar] = ACTIONS(4538),
    [sym_float] = ACTIONS(4538),
    [sym_double] = ACTIONS(4538),
    [sym_real] = ACTIONS(4538),
    [sym_ifloat] = ACTIONS(4538),
    [sym_idouble] = ACTIONS(4538),
    [sym_ireal] = ACTIONS(4538),
    [sym_cfloat] = ACTIONS(4538),
    [sym_cdouble] = ACTIONS(4538),
    [sym_creal] = ACTIONS(4538),
    [sym_size_t] = ACTIONS(4538),
    [sym_ptrdiff_t] = ACTIONS(4538),
    [sym_string] = ACTIONS(4538),
    [sym_cstring] = ACTIONS(4538),
    [sym_dstring] = ACTIONS(4538),
    [sym_wstring] = ACTIONS(4538),
    [sym_noreturn] = ACTIONS(4538),
    [sym_this] = ACTIONS(4538),
    [sym_abstract] = ACTIONS(4538),
    [sym_alias] = ACTIONS(4538),
    [sym_align] = ACTIONS(4538),
    [sym_auto] = ACTIONS(4538),
    [sym_class] = ACTIONS(4538),
    [sym_const] = ACTIONS(4538),
    [sym_debug] = ACTIONS(4538),
    [sym_deprecated] = ACTIONS(4538),
    [sym_else] = ACTIONS(4538),
    [sym_enum] = ACTIONS(4538),
    [sym_export] = ACTIONS(4538),
    [sym_extern] = ACTIONS(4538),
    [sym_final] = ACTIONS(4538),
    [sym_immutable] = ACTIONS(4538),
    [sym_import] = ACTIONS(4538),
    [sym_inout] = ACTIONS(4538),
    [sym_interface] = ACTIONS(4538),
    [sym_invariant] = ACTIONS(4538),
    [sym_mixin] = ACTIONS(4538),
    [sym_nothrow] = ACTIONS(4538),
    [sym_override] = ACTIONS(4538),
    [sym_package] = ACTIONS(4538),
    [sym_pragma] = ACTIONS(4538),
    [sym_private] = ACTIONS(4538),
    [sym_protected] = ACTIONS(4538),
    [sym_public] = ACTIONS(4538),
    [sym_pure] = ACTIONS(4538),
    [sym_ref] = ACTIONS(4538),
    [sym_return] = ACTIONS(4538),
    [sym_scope] = ACTIONS(4538),
    [sym_shared] = ACTIONS(4538),
    [sym_static] = ACTIONS(4538),
    [sym_struct] = ACTIONS(4538),
    [sym_synchronized] = ACTIONS(4538),
    [sym_template] = ACTIONS(4538),
    [sym_typeof] = ACTIONS(4538),
    [sym_union] = ACTIONS(4538),
    [sym_unittest] = ACTIONS(4538),
    [sym_version] = ACTIONS(4538),
    [sym_while] = ACTIONS(4538),
    [sym_gshared] = ACTIONS(4538),
    [sym_traits] = ACTIONS(4538),
    [sym_vector] = ACTIONS(4538),
    [sym_void] = ACTIONS(4538),
    [sym_directive] = ACTIONS(3),
  },
  [2872] = {
    [sym_identifier] = ACTIONS(4546),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4548),
    [anon_sym_DOT] = ACTIONS(4548),
    [anon_sym_SEMI] = ACTIONS(4548),
    [anon_sym_TILDE] = ACTIONS(4548),
    [anon_sym_AT] = ACTIONS(4548),
    [sym_bool] = ACTIONS(4546),
    [sym_byte] = ACTIONS(4546),
    [sym_ubyte] = ACTIONS(4546),
    [sym_char] = ACTIONS(4546),
    [sym_short] = ACTIONS(4546),
    [sym_ushort] = ACTIONS(4546),
    [sym_int] = ACTIONS(4546),
    [sym_uint] = ACTIONS(4546),
    [sym_long] = ACTIONS(4546),
    [sym_ulong] = ACTIONS(4546),
    [sym_cent] = ACTIONS(4546),
    [sym_ucent] = ACTIONS(4546),
    [sym_wchar] = ACTIONS(4546),
    [sym_dchar] = ACTIONS(4546),
    [sym_float] = ACTIONS(4546),
    [sym_double] = ACTIONS(4546),
    [sym_real] = ACTIONS(4546),
    [sym_ifloat] = ACTIONS(4546),
    [sym_idouble] = ACTIONS(4546),
    [sym_ireal] = ACTIONS(4546),
    [sym_cfloat] = ACTIONS(4546),
    [sym_cdouble] = ACTIONS(4546),
    [sym_creal] = ACTIONS(4546),
    [sym_size_t] = ACTIONS(4546),
    [sym_ptrdiff_t] = ACTIONS(4546),
    [sym_string] = ACTIONS(4546),
    [sym_cstring] = ACTIONS(4546),
    [sym_dstring] = ACTIONS(4546),
    [sym_wstring] = ACTIONS(4546),
    [sym_noreturn] = ACTIONS(4546),
    [sym_this] = ACTIONS(4546),
    [sym_abstract] = ACTIONS(4546),
    [sym_alias] = ACTIONS(4546),
    [sym_align] = ACTIONS(4546),
    [sym_auto] = ACTIONS(4546),
    [sym_class] = ACTIONS(4546),
    [sym_const] = ACTIONS(4546),
    [sym_debug] = ACTIONS(4546),
    [sym_deprecated] = ACTIONS(4546),
    [sym_else] = ACTIONS(4546),
    [sym_enum] = ACTIONS(4546),
    [sym_export] = ACTIONS(4546),
    [sym_extern] = ACTIONS(4546),
    [sym_final] = ACTIONS(4546),
    [sym_immutable] = ACTIONS(4546),
    [sym_import] = ACTIONS(4546),
    [sym_inout] = ACTIONS(4546),
    [sym_interface] = ACTIONS(4546),
    [sym_invariant] = ACTIONS(4546),
    [sym_mixin] = ACTIONS(4546),
    [sym_nothrow] = ACTIONS(4546),
    [sym_override] = ACTIONS(4546),
    [sym_package] = ACTIONS(4546),
    [sym_pragma] = ACTIONS(4546),
    [sym_private] = ACTIONS(4546),
    [sym_protected] = ACTIONS(4546),
    [sym_public] = ACTIONS(4546),
    [sym_pure] = ACTIONS(4546),
    [sym_ref] = ACTIONS(4546),
    [sym_return] = ACTIONS(4546),
    [sym_scope] = ACTIONS(4546),
    [sym_shared] = ACTIONS(4546),
    [sym_static] = ACTIONS(4546),
    [sym_struct] = ACTIONS(4546),
    [sym_synchronized] = ACTIONS(4546),
    [sym_template] = ACTIONS(4546),
    [sym_typeof] = ACTIONS(4546),
    [sym_union] = ACTIONS(4546),
    [sym_unittest] = ACTIONS(4546),
    [sym_version] = ACTIONS(4546),
    [sym_while] = ACTIONS(4546),
    [sym_gshared] = ACTIONS(4546),
    [sym_traits] = ACTIONS(4546),
    [sym_vector] = ACTIONS(4546),
    [sym_void] = ACTIONS(4546),
    [sym_directive] = ACTIONS(3),
  },
  [2873] = {
    [sym_identifier] = ACTIONS(4562),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4564),
    [anon_sym_DOT] = ACTIONS(4564),
    [anon_sym_SEMI] = ACTIONS(4564),
    [anon_sym_TILDE] = ACTIONS(4564),
    [anon_sym_AT] = ACTIONS(4564),
    [sym_bool] = ACTIONS(4562),
    [sym_byte] = ACTIONS(4562),
    [sym_ubyte] = ACTIONS(4562),
    [sym_char] = ACTIONS(4562),
    [sym_short] = ACTIONS(4562),
    [sym_ushort] = ACTIONS(4562),
    [sym_int] = ACTIONS(4562),
    [sym_uint] = ACTIONS(4562),
    [sym_long] = ACTIONS(4562),
    [sym_ulong] = ACTIONS(4562),
    [sym_cent] = ACTIONS(4562),
    [sym_ucent] = ACTIONS(4562),
    [sym_wchar] = ACTIONS(4562),
    [sym_dchar] = ACTIONS(4562),
    [sym_float] = ACTIONS(4562),
    [sym_double] = ACTIONS(4562),
    [sym_real] = ACTIONS(4562),
    [sym_ifloat] = ACTIONS(4562),
    [sym_idouble] = ACTIONS(4562),
    [sym_ireal] = ACTIONS(4562),
    [sym_cfloat] = ACTIONS(4562),
    [sym_cdouble] = ACTIONS(4562),
    [sym_creal] = ACTIONS(4562),
    [sym_size_t] = ACTIONS(4562),
    [sym_ptrdiff_t] = ACTIONS(4562),
    [sym_string] = ACTIONS(4562),
    [sym_cstring] = ACTIONS(4562),
    [sym_dstring] = ACTIONS(4562),
    [sym_wstring] = ACTIONS(4562),
    [sym_noreturn] = ACTIONS(4562),
    [sym_this] = ACTIONS(4562),
    [sym_abstract] = ACTIONS(4562),
    [sym_alias] = ACTIONS(4562),
    [sym_align] = ACTIONS(4562),
    [sym_auto] = ACTIONS(4562),
    [sym_class] = ACTIONS(4562),
    [sym_const] = ACTIONS(4562),
    [sym_debug] = ACTIONS(4562),
    [sym_deprecated] = ACTIONS(4562),
    [sym_else] = ACTIONS(4562),
    [sym_enum] = ACTIONS(4562),
    [sym_export] = ACTIONS(4562),
    [sym_extern] = ACTIONS(4562),
    [sym_final] = ACTIONS(4562),
    [sym_immutable] = ACTIONS(4562),
    [sym_import] = ACTIONS(4562),
    [sym_inout] = ACTIONS(4562),
    [sym_interface] = ACTIONS(4562),
    [sym_invariant] = ACTIONS(4562),
    [sym_mixin] = ACTIONS(4562),
    [sym_nothrow] = ACTIONS(4562),
    [sym_override] = ACTIONS(4562),
    [sym_package] = ACTIONS(4562),
    [sym_pragma] = ACTIONS(4562),
    [sym_private] = ACTIONS(4562),
    [sym_protected] = ACTIONS(4562),
    [sym_public] = ACTIONS(4562),
    [sym_pure] = ACTIONS(4562),
    [sym_ref] = ACTIONS(4562),
    [sym_return] = ACTIONS(4562),
    [sym_scope] = ACTIONS(4562),
    [sym_shared] = ACTIONS(4562),
    [sym_static] = ACTIONS(4562),
    [sym_struct] = ACTIONS(4562),
    [sym_synchronized] = ACTIONS(4562),
    [sym_template] = ACTIONS(4562),
    [sym_typeof] = ACTIONS(4562),
    [sym_union] = ACTIONS(4562),
    [sym_unittest] = ACTIONS(4562),
    [sym_version] = ACTIONS(4562),
    [sym_while] = ACTIONS(4562),
    [sym_gshared] = ACTIONS(4562),
    [sym_traits] = ACTIONS(4562),
    [sym_vector] = ACTIONS(4562),
    [sym_void] = ACTIONS(4562),
    [sym_directive] = ACTIONS(3),
  },
  [2874] = {
    [sym_identifier] = ACTIONS(4574),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4576),
    [anon_sym_DOT] = ACTIONS(4576),
    [anon_sym_SEMI] = ACTIONS(4576),
    [anon_sym_TILDE] = ACTIONS(4576),
    [anon_sym_AT] = ACTIONS(4576),
    [sym_bool] = ACTIONS(4574),
    [sym_byte] = ACTIONS(4574),
    [sym_ubyte] = ACTIONS(4574),
    [sym_char] = ACTIONS(4574),
    [sym_short] = ACTIONS(4574),
    [sym_ushort] = ACTIONS(4574),
    [sym_int] = ACTIONS(4574),
    [sym_uint] = ACTIONS(4574),
    [sym_long] = ACTIONS(4574),
    [sym_ulong] = ACTIONS(4574),
    [sym_cent] = ACTIONS(4574),
    [sym_ucent] = ACTIONS(4574),
    [sym_wchar] = ACTIONS(4574),
    [sym_dchar] = ACTIONS(4574),
    [sym_float] = ACTIONS(4574),
    [sym_double] = ACTIONS(4574),
    [sym_real] = ACTIONS(4574),
    [sym_ifloat] = ACTIONS(4574),
    [sym_idouble] = ACTIONS(4574),
    [sym_ireal] = ACTIONS(4574),
    [sym_cfloat] = ACTIONS(4574),
    [sym_cdouble] = ACTIONS(4574),
    [sym_creal] = ACTIONS(4574),
    [sym_size_t] = ACTIONS(4574),
    [sym_ptrdiff_t] = ACTIONS(4574),
    [sym_string] = ACTIONS(4574),
    [sym_cstring] = ACTIONS(4574),
    [sym_dstring] = ACTIONS(4574),
    [sym_wstring] = ACTIONS(4574),
    [sym_noreturn] = ACTIONS(4574),
    [sym_this] = ACTIONS(4574),
    [sym_abstract] = ACTIONS(4574),
    [sym_alias] = ACTIONS(4574),
    [sym_align] = ACTIONS(4574),
    [sym_auto] = ACTIONS(4574),
    [sym_class] = ACTIONS(4574),
    [sym_const] = ACTIONS(4574),
    [sym_debug] = ACTIONS(4574),
    [sym_deprecated] = ACTIONS(4574),
    [sym_else] = ACTIONS(4574),
    [sym_enum] = ACTIONS(4574),
    [sym_export] = ACTIONS(4574),
    [sym_extern] = ACTIONS(4574),
    [sym_final] = ACTIONS(4574),
    [sym_immutable] = ACTIONS(4574),
    [sym_import] = ACTIONS(4574),
    [sym_inout] = ACTIONS(4574),
    [sym_interface] = ACTIONS(4574),
    [sym_invariant] = ACTIONS(4574),
    [sym_mixin] = ACTIONS(4574),
    [sym_nothrow] = ACTIONS(4574),
    [sym_override] = ACTIONS(4574),
    [sym_package] = ACTIONS(4574),
    [sym_pragma] = ACTIONS(4574),
    [sym_private] = ACTIONS(4574),
    [sym_protected] = ACTIONS(4574),
    [sym_public] = ACTIONS(4574),
    [sym_pure] = ACTIONS(4574),
    [sym_ref] = ACTIONS(4574),
    [sym_return] = ACTIONS(4574),
    [sym_scope] = ACTIONS(4574),
    [sym_shared] = ACTIONS(4574),
    [sym_static] = ACTIONS(4574),
    [sym_struct] = ACTIONS(4574),
    [sym_synchronized] = ACTIONS(4574),
    [sym_template] = ACTIONS(4574),
    [sym_typeof] = ACTIONS(4574),
    [sym_union] = ACTIONS(4574),
    [sym_unittest] = ACTIONS(4574),
    [sym_version] = ACTIONS(4574),
    [sym_while] = ACTIONS(4574),
    [sym_gshared] = ACTIONS(4574),
    [sym_traits] = ACTIONS(4574),
    [sym_vector] = ACTIONS(4574),
    [sym_void] = ACTIONS(4574),
    [sym_directive] = ACTIONS(3),
  },
  [2875] = {
    [sym_switch_statement] = STATE(2196),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2876] = {
    [sym_switch_statement] = STATE(2196),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(890),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2877] = {
    [sym_identifier] = ACTIONS(4814),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4816),
    [anon_sym_DOT] = ACTIONS(4816),
    [anon_sym_SEMI] = ACTIONS(4816),
    [anon_sym_TILDE] = ACTIONS(4816),
    [anon_sym_AT] = ACTIONS(4816),
    [sym_bool] = ACTIONS(4814),
    [sym_byte] = ACTIONS(4814),
    [sym_ubyte] = ACTIONS(4814),
    [sym_char] = ACTIONS(4814),
    [sym_short] = ACTIONS(4814),
    [sym_ushort] = ACTIONS(4814),
    [sym_int] = ACTIONS(4814),
    [sym_uint] = ACTIONS(4814),
    [sym_long] = ACTIONS(4814),
    [sym_ulong] = ACTIONS(4814),
    [sym_cent] = ACTIONS(4814),
    [sym_ucent] = ACTIONS(4814),
    [sym_wchar] = ACTIONS(4814),
    [sym_dchar] = ACTIONS(4814),
    [sym_float] = ACTIONS(4814),
    [sym_double] = ACTIONS(4814),
    [sym_real] = ACTIONS(4814),
    [sym_ifloat] = ACTIONS(4814),
    [sym_idouble] = ACTIONS(4814),
    [sym_ireal] = ACTIONS(4814),
    [sym_cfloat] = ACTIONS(4814),
    [sym_cdouble] = ACTIONS(4814),
    [sym_creal] = ACTIONS(4814),
    [sym_size_t] = ACTIONS(4814),
    [sym_ptrdiff_t] = ACTIONS(4814),
    [sym_string] = ACTIONS(4814),
    [sym_cstring] = ACTIONS(4814),
    [sym_dstring] = ACTIONS(4814),
    [sym_wstring] = ACTIONS(4814),
    [sym_noreturn] = ACTIONS(4814),
    [sym_this] = ACTIONS(4814),
    [sym_abstract] = ACTIONS(4814),
    [sym_alias] = ACTIONS(4814),
    [sym_align] = ACTIONS(4814),
    [sym_auto] = ACTIONS(4814),
    [sym_class] = ACTIONS(4814),
    [sym_const] = ACTIONS(4814),
    [sym_debug] = ACTIONS(4814),
    [sym_deprecated] = ACTIONS(4814),
    [sym_else] = ACTIONS(4814),
    [sym_enum] = ACTIONS(4814),
    [sym_export] = ACTIONS(4814),
    [sym_extern] = ACTIONS(4814),
    [sym_final] = ACTIONS(4814),
    [sym_immutable] = ACTIONS(4814),
    [sym_import] = ACTIONS(4814),
    [sym_inout] = ACTIONS(4814),
    [sym_interface] = ACTIONS(4814),
    [sym_invariant] = ACTIONS(4814),
    [sym_mixin] = ACTIONS(4814),
    [sym_nothrow] = ACTIONS(4814),
    [sym_override] = ACTIONS(4814),
    [sym_package] = ACTIONS(4814),
    [sym_pragma] = ACTIONS(4814),
    [sym_private] = ACTIONS(4814),
    [sym_protected] = ACTIONS(4814),
    [sym_public] = ACTIONS(4814),
    [sym_pure] = ACTIONS(4814),
    [sym_ref] = ACTIONS(4814),
    [sym_return] = ACTIONS(4814),
    [sym_scope] = ACTIONS(4814),
    [sym_shared] = ACTIONS(4814),
    [sym_static] = ACTIONS(4814),
    [sym_struct] = ACTIONS(4814),
    [sym_synchronized] = ACTIONS(4814),
    [sym_template] = ACTIONS(4814),
    [sym_typeof] = ACTIONS(4814),
    [sym_union] = ACTIONS(4814),
    [sym_unittest] = ACTIONS(4814),
    [sym_version] = ACTIONS(4814),
    [sym_while] = ACTIONS(4814),
    [sym_gshared] = ACTIONS(4814),
    [sym_traits] = ACTIONS(4814),
    [sym_vector] = ACTIONS(4814),
    [sym_void] = ACTIONS(4814),
    [sym_directive] = ACTIONS(3),
  },
  [2878] = {
    [sym_switch_statement] = STATE(5592),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(1100),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2879] = {
    [sym_switch_statement] = STATE(2196),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(790),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2880] = {
    [sym_switch_statement] = STATE(1387),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(309),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2881] = {
    [sym_identifier] = ACTIONS(5004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5006),
    [anon_sym_DOT] = ACTIONS(5006),
    [anon_sym_SEMI] = ACTIONS(5006),
    [anon_sym_TILDE] = ACTIONS(5006),
    [anon_sym_AT] = ACTIONS(5006),
    [sym_bool] = ACTIONS(5004),
    [sym_byte] = ACTIONS(5004),
    [sym_ubyte] = ACTIONS(5004),
    [sym_char] = ACTIONS(5004),
    [sym_short] = ACTIONS(5004),
    [sym_ushort] = ACTIONS(5004),
    [sym_int] = ACTIONS(5004),
    [sym_uint] = ACTIONS(5004),
    [sym_long] = ACTIONS(5004),
    [sym_ulong] = ACTIONS(5004),
    [sym_cent] = ACTIONS(5004),
    [sym_ucent] = ACTIONS(5004),
    [sym_wchar] = ACTIONS(5004),
    [sym_dchar] = ACTIONS(5004),
    [sym_float] = ACTIONS(5004),
    [sym_double] = ACTIONS(5004),
    [sym_real] = ACTIONS(5004),
    [sym_ifloat] = ACTIONS(5004),
    [sym_idouble] = ACTIONS(5004),
    [sym_ireal] = ACTIONS(5004),
    [sym_cfloat] = ACTIONS(5004),
    [sym_cdouble] = ACTIONS(5004),
    [sym_creal] = ACTIONS(5004),
    [sym_size_t] = ACTIONS(5004),
    [sym_ptrdiff_t] = ACTIONS(5004),
    [sym_string] = ACTIONS(5004),
    [sym_cstring] = ACTIONS(5004),
    [sym_dstring] = ACTIONS(5004),
    [sym_wstring] = ACTIONS(5004),
    [sym_noreturn] = ACTIONS(5004),
    [sym_this] = ACTIONS(5004),
    [sym_abstract] = ACTIONS(5004),
    [sym_alias] = ACTIONS(5004),
    [sym_align] = ACTIONS(5004),
    [sym_auto] = ACTIONS(5004),
    [sym_class] = ACTIONS(5004),
    [sym_const] = ACTIONS(5004),
    [sym_debug] = ACTIONS(5004),
    [sym_deprecated] = ACTIONS(5004),
    [sym_else] = ACTIONS(5004),
    [sym_enum] = ACTIONS(5004),
    [sym_export] = ACTIONS(5004),
    [sym_extern] = ACTIONS(5004),
    [sym_final] = ACTIONS(5004),
    [sym_immutable] = ACTIONS(5004),
    [sym_import] = ACTIONS(5004),
    [sym_inout] = ACTIONS(5004),
    [sym_interface] = ACTIONS(5004),
    [sym_invariant] = ACTIONS(5004),
    [sym_mixin] = ACTIONS(5004),
    [sym_nothrow] = ACTIONS(5004),
    [sym_override] = ACTIONS(5004),
    [sym_package] = ACTIONS(5004),
    [sym_pragma] = ACTIONS(5004),
    [sym_private] = ACTIONS(5004),
    [sym_protected] = ACTIONS(5004),
    [sym_public] = ACTIONS(5004),
    [sym_pure] = ACTIONS(5004),
    [sym_ref] = ACTIONS(5004),
    [sym_return] = ACTIONS(5004),
    [sym_scope] = ACTIONS(5004),
    [sym_shared] = ACTIONS(5004),
    [sym_static] = ACTIONS(5004),
    [sym_struct] = ACTIONS(5004),
    [sym_synchronized] = ACTIONS(5004),
    [sym_template] = ACTIONS(5004),
    [sym_typeof] = ACTIONS(5004),
    [sym_union] = ACTIONS(5004),
    [sym_unittest] = ACTIONS(5004),
    [sym_version] = ACTIONS(5004),
    [sym_while] = ACTIONS(5004),
    [sym_gshared] = ACTIONS(5004),
    [sym_traits] = ACTIONS(5004),
    [sym_vector] = ACTIONS(5004),
    [sym_void] = ACTIONS(5004),
    [sym_directive] = ACTIONS(3),
  },
  [2882] = {
    [sym_identifier] = ACTIONS(5028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(5030),
    [anon_sym_DOT] = ACTIONS(5030),
    [anon_sym_SEMI] = ACTIONS(5030),
    [anon_sym_TILDE] = ACTIONS(5030),
    [anon_sym_AT] = ACTIONS(5030),
    [sym_bool] = ACTIONS(5028),
    [sym_byte] = ACTIONS(5028),
    [sym_ubyte] = ACTIONS(5028),
    [sym_char] = ACTIONS(5028),
    [sym_short] = ACTIONS(5028),
    [sym_ushort] = ACTIONS(5028),
    [sym_int] = ACTIONS(5028),
    [sym_uint] = ACTIONS(5028),
    [sym_long] = ACTIONS(5028),
    [sym_ulong] = ACTIONS(5028),
    [sym_cent] = ACTIONS(5028),
    [sym_ucent] = ACTIONS(5028),
    [sym_wchar] = ACTIONS(5028),
    [sym_dchar] = ACTIONS(5028),
    [sym_float] = ACTIONS(5028),
    [sym_double] = ACTIONS(5028),
    [sym_real] = ACTIONS(5028),
    [sym_ifloat] = ACTIONS(5028),
    [sym_idouble] = ACTIONS(5028),
    [sym_ireal] = ACTIONS(5028),
    [sym_cfloat] = ACTIONS(5028),
    [sym_cdouble] = ACTIONS(5028),
    [sym_creal] = ACTIONS(5028),
    [sym_size_t] = ACTIONS(5028),
    [sym_ptrdiff_t] = ACTIONS(5028),
    [sym_string] = ACTIONS(5028),
    [sym_cstring] = ACTIONS(5028),
    [sym_dstring] = ACTIONS(5028),
    [sym_wstring] = ACTIONS(5028),
    [sym_noreturn] = ACTIONS(5028),
    [sym_this] = ACTIONS(5028),
    [sym_abstract] = ACTIONS(5028),
    [sym_alias] = ACTIONS(5028),
    [sym_align] = ACTIONS(5028),
    [sym_auto] = ACTIONS(5028),
    [sym_class] = ACTIONS(5028),
    [sym_const] = ACTIONS(5028),
    [sym_debug] = ACTIONS(5028),
    [sym_deprecated] = ACTIONS(5028),
    [sym_else] = ACTIONS(5028),
    [sym_enum] = ACTIONS(5028),
    [sym_export] = ACTIONS(5028),
    [sym_extern] = ACTIONS(5028),
    [sym_final] = ACTIONS(5028),
    [sym_immutable] = ACTIONS(5028),
    [sym_import] = ACTIONS(5028),
    [sym_inout] = ACTIONS(5028),
    [sym_interface] = ACTIONS(5028),
    [sym_invariant] = ACTIONS(5028),
    [sym_mixin] = ACTIONS(5028),
    [sym_nothrow] = ACTIONS(5028),
    [sym_override] = ACTIONS(5028),
    [sym_package] = ACTIONS(5028),
    [sym_pragma] = ACTIONS(5028),
    [sym_private] = ACTIONS(5028),
    [sym_protected] = ACTIONS(5028),
    [sym_public] = ACTIONS(5028),
    [sym_pure] = ACTIONS(5028),
    [sym_ref] = ACTIONS(5028),
    [sym_return] = ACTIONS(5028),
    [sym_scope] = ACTIONS(5028),
    [sym_shared] = ACTIONS(5028),
    [sym_static] = ACTIONS(5028),
    [sym_struct] = ACTIONS(5028),
    [sym_synchronized] = ACTIONS(5028),
    [sym_template] = ACTIONS(5028),
    [sym_typeof] = ACTIONS(5028),
    [sym_union] = ACTIONS(5028),
    [sym_unittest] = ACTIONS(5028),
    [sym_version] = ACTIONS(5028),
    [sym_while] = ACTIONS(5028),
    [sym_gshared] = ACTIONS(5028),
    [sym_traits] = ACTIONS(5028),
    [sym_vector] = ACTIONS(5028),
    [sym_void] = ACTIONS(5028),
    [sym_directive] = ACTIONS(3),
  },
  [2883] = {
    [sym_identifier] = ACTIONS(4578),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4580),
    [anon_sym_DOT] = ACTIONS(4580),
    [anon_sym_SEMI] = ACTIONS(4580),
    [anon_sym_TILDE] = ACTIONS(4580),
    [anon_sym_AT] = ACTIONS(4580),
    [sym_bool] = ACTIONS(4578),
    [sym_byte] = ACTIONS(4578),
    [sym_ubyte] = ACTIONS(4578),
    [sym_char] = ACTIONS(4578),
    [sym_short] = ACTIONS(4578),
    [sym_ushort] = ACTIONS(4578),
    [sym_int] = ACTIONS(4578),
    [sym_uint] = ACTIONS(4578),
    [sym_long] = ACTIONS(4578),
    [sym_ulong] = ACTIONS(4578),
    [sym_cent] = ACTIONS(4578),
    [sym_ucent] = ACTIONS(4578),
    [sym_wchar] = ACTIONS(4578),
    [sym_dchar] = ACTIONS(4578),
    [sym_float] = ACTIONS(4578),
    [sym_double] = ACTIONS(4578),
    [sym_real] = ACTIONS(4578),
    [sym_ifloat] = ACTIONS(4578),
    [sym_idouble] = ACTIONS(4578),
    [sym_ireal] = ACTIONS(4578),
    [sym_cfloat] = ACTIONS(4578),
    [sym_cdouble] = ACTIONS(4578),
    [sym_creal] = ACTIONS(4578),
    [sym_size_t] = ACTIONS(4578),
    [sym_ptrdiff_t] = ACTIONS(4578),
    [sym_string] = ACTIONS(4578),
    [sym_cstring] = ACTIONS(4578),
    [sym_dstring] = ACTIONS(4578),
    [sym_wstring] = ACTIONS(4578),
    [sym_noreturn] = ACTIONS(4578),
    [sym_this] = ACTIONS(4578),
    [sym_abstract] = ACTIONS(4578),
    [sym_alias] = ACTIONS(4578),
    [sym_align] = ACTIONS(4578),
    [sym_auto] = ACTIONS(4578),
    [sym_class] = ACTIONS(4578),
    [sym_const] = ACTIONS(4578),
    [sym_debug] = ACTIONS(4578),
    [sym_deprecated] = ACTIONS(4578),
    [sym_else] = ACTIONS(4578),
    [sym_enum] = ACTIONS(4578),
    [sym_export] = ACTIONS(4578),
    [sym_extern] = ACTIONS(4578),
    [sym_final] = ACTIONS(4578),
    [sym_immutable] = ACTIONS(4578),
    [sym_import] = ACTIONS(4578),
    [sym_inout] = ACTIONS(4578),
    [sym_interface] = ACTIONS(4578),
    [sym_invariant] = ACTIONS(4578),
    [sym_mixin] = ACTIONS(4578),
    [sym_nothrow] = ACTIONS(4578),
    [sym_override] = ACTIONS(4578),
    [sym_package] = ACTIONS(4578),
    [sym_pragma] = ACTIONS(4578),
    [sym_private] = ACTIONS(4578),
    [sym_protected] = ACTIONS(4578),
    [sym_public] = ACTIONS(4578),
    [sym_pure] = ACTIONS(4578),
    [sym_ref] = ACTIONS(4578),
    [sym_return] = ACTIONS(4578),
    [sym_scope] = ACTIONS(4578),
    [sym_shared] = ACTIONS(4578),
    [sym_static] = ACTIONS(4578),
    [sym_struct] = ACTIONS(4578),
    [sym_synchronized] = ACTIONS(4578),
    [sym_template] = ACTIONS(4578),
    [sym_typeof] = ACTIONS(4578),
    [sym_union] = ACTIONS(4578),
    [sym_unittest] = ACTIONS(4578),
    [sym_version] = ACTIONS(4578),
    [sym_while] = ACTIONS(4578),
    [sym_gshared] = ACTIONS(4578),
    [sym_traits] = ACTIONS(4578),
    [sym_vector] = ACTIONS(4578),
    [sym_void] = ACTIONS(4578),
    [sym_directive] = ACTIONS(3),
  },
  [2884] = {
    [sym_identifier] = ACTIONS(4818),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4820),
    [anon_sym_DOT] = ACTIONS(4820),
    [anon_sym_SEMI] = ACTIONS(4820),
    [anon_sym_TILDE] = ACTIONS(4820),
    [anon_sym_AT] = ACTIONS(4820),
    [sym_bool] = ACTIONS(4818),
    [sym_byte] = ACTIONS(4818),
    [sym_ubyte] = ACTIONS(4818),
    [sym_char] = ACTIONS(4818),
    [sym_short] = ACTIONS(4818),
    [sym_ushort] = ACTIONS(4818),
    [sym_int] = ACTIONS(4818),
    [sym_uint] = ACTIONS(4818),
    [sym_long] = ACTIONS(4818),
    [sym_ulong] = ACTIONS(4818),
    [sym_cent] = ACTIONS(4818),
    [sym_ucent] = ACTIONS(4818),
    [sym_wchar] = ACTIONS(4818),
    [sym_dchar] = ACTIONS(4818),
    [sym_float] = ACTIONS(4818),
    [sym_double] = ACTIONS(4818),
    [sym_real] = ACTIONS(4818),
    [sym_ifloat] = ACTIONS(4818),
    [sym_idouble] = ACTIONS(4818),
    [sym_ireal] = ACTIONS(4818),
    [sym_cfloat] = ACTIONS(4818),
    [sym_cdouble] = ACTIONS(4818),
    [sym_creal] = ACTIONS(4818),
    [sym_size_t] = ACTIONS(4818),
    [sym_ptrdiff_t] = ACTIONS(4818),
    [sym_string] = ACTIONS(4818),
    [sym_cstring] = ACTIONS(4818),
    [sym_dstring] = ACTIONS(4818),
    [sym_wstring] = ACTIONS(4818),
    [sym_noreturn] = ACTIONS(4818),
    [sym_this] = ACTIONS(4818),
    [sym_abstract] = ACTIONS(4818),
    [sym_alias] = ACTIONS(4818),
    [sym_align] = ACTIONS(4818),
    [sym_auto] = ACTIONS(4818),
    [sym_class] = ACTIONS(4818),
    [sym_const] = ACTIONS(4818),
    [sym_debug] = ACTIONS(4818),
    [sym_deprecated] = ACTIONS(4818),
    [sym_else] = ACTIONS(4818),
    [sym_enum] = ACTIONS(4818),
    [sym_export] = ACTIONS(4818),
    [sym_extern] = ACTIONS(4818),
    [sym_final] = ACTIONS(4818),
    [sym_immutable] = ACTIONS(4818),
    [sym_import] = ACTIONS(4818),
    [sym_inout] = ACTIONS(4818),
    [sym_interface] = ACTIONS(4818),
    [sym_invariant] = ACTIONS(4818),
    [sym_mixin] = ACTIONS(4818),
    [sym_nothrow] = ACTIONS(4818),
    [sym_override] = ACTIONS(4818),
    [sym_package] = ACTIONS(4818),
    [sym_pragma] = ACTIONS(4818),
    [sym_private] = ACTIONS(4818),
    [sym_protected] = ACTIONS(4818),
    [sym_public] = ACTIONS(4818),
    [sym_pure] = ACTIONS(4818),
    [sym_ref] = ACTIONS(4818),
    [sym_return] = ACTIONS(4818),
    [sym_scope] = ACTIONS(4818),
    [sym_shared] = ACTIONS(4818),
    [sym_static] = ACTIONS(4818),
    [sym_struct] = ACTIONS(4818),
    [sym_synchronized] = ACTIONS(4818),
    [sym_template] = ACTIONS(4818),
    [sym_typeof] = ACTIONS(4818),
    [sym_union] = ACTIONS(4818),
    [sym_unittest] = ACTIONS(4818),
    [sym_version] = ACTIONS(4818),
    [sym_while] = ACTIONS(4818),
    [sym_gshared] = ACTIONS(4818),
    [sym_traits] = ACTIONS(4818),
    [sym_vector] = ACTIONS(4818),
    [sym_void] = ACTIONS(4818),
    [sym_directive] = ACTIONS(3),
  },
  [2885] = {
    [sym_identifier] = ACTIONS(4822),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4824),
    [anon_sym_DOT] = ACTIONS(4824),
    [anon_sym_SEMI] = ACTIONS(4824),
    [anon_sym_TILDE] = ACTIONS(4824),
    [anon_sym_AT] = ACTIONS(4824),
    [sym_bool] = ACTIONS(4822),
    [sym_byte] = ACTIONS(4822),
    [sym_ubyte] = ACTIONS(4822),
    [sym_char] = ACTIONS(4822),
    [sym_short] = ACTIONS(4822),
    [sym_ushort] = ACTIONS(4822),
    [sym_int] = ACTIONS(4822),
    [sym_uint] = ACTIONS(4822),
    [sym_long] = ACTIONS(4822),
    [sym_ulong] = ACTIONS(4822),
    [sym_cent] = ACTIONS(4822),
    [sym_ucent] = ACTIONS(4822),
    [sym_wchar] = ACTIONS(4822),
    [sym_dchar] = ACTIONS(4822),
    [sym_float] = ACTIONS(4822),
    [sym_double] = ACTIONS(4822),
    [sym_real] = ACTIONS(4822),
    [sym_ifloat] = ACTIONS(4822),
    [sym_idouble] = ACTIONS(4822),
    [sym_ireal] = ACTIONS(4822),
    [sym_cfloat] = ACTIONS(4822),
    [sym_cdouble] = ACTIONS(4822),
    [sym_creal] = ACTIONS(4822),
    [sym_size_t] = ACTIONS(4822),
    [sym_ptrdiff_t] = ACTIONS(4822),
    [sym_string] = ACTIONS(4822),
    [sym_cstring] = ACTIONS(4822),
    [sym_dstring] = ACTIONS(4822),
    [sym_wstring] = ACTIONS(4822),
    [sym_noreturn] = ACTIONS(4822),
    [sym_this] = ACTIONS(4822),
    [sym_abstract] = ACTIONS(4822),
    [sym_alias] = ACTIONS(4822),
    [sym_align] = ACTIONS(4822),
    [sym_auto] = ACTIONS(4822),
    [sym_class] = ACTIONS(4822),
    [sym_const] = ACTIONS(4822),
    [sym_debug] = ACTIONS(4822),
    [sym_deprecated] = ACTIONS(4822),
    [sym_else] = ACTIONS(4822),
    [sym_enum] = ACTIONS(4822),
    [sym_export] = ACTIONS(4822),
    [sym_extern] = ACTIONS(4822),
    [sym_final] = ACTIONS(4822),
    [sym_immutable] = ACTIONS(4822),
    [sym_import] = ACTIONS(4822),
    [sym_inout] = ACTIONS(4822),
    [sym_interface] = ACTIONS(4822),
    [sym_invariant] = ACTIONS(4822),
    [sym_mixin] = ACTIONS(4822),
    [sym_nothrow] = ACTIONS(4822),
    [sym_override] = ACTIONS(4822),
    [sym_package] = ACTIONS(4822),
    [sym_pragma] = ACTIONS(4822),
    [sym_private] = ACTIONS(4822),
    [sym_protected] = ACTIONS(4822),
    [sym_public] = ACTIONS(4822),
    [sym_pure] = ACTIONS(4822),
    [sym_ref] = ACTIONS(4822),
    [sym_return] = ACTIONS(4822),
    [sym_scope] = ACTIONS(4822),
    [sym_shared] = ACTIONS(4822),
    [sym_static] = ACTIONS(4822),
    [sym_struct] = ACTIONS(4822),
    [sym_synchronized] = ACTIONS(4822),
    [sym_template] = ACTIONS(4822),
    [sym_typeof] = ACTIONS(4822),
    [sym_union] = ACTIONS(4822),
    [sym_unittest] = ACTIONS(4822),
    [sym_version] = ACTIONS(4822),
    [sym_while] = ACTIONS(4822),
    [sym_gshared] = ACTIONS(4822),
    [sym_traits] = ACTIONS(4822),
    [sym_vector] = ACTIONS(4822),
    [sym_void] = ACTIONS(4822),
    [sym_directive] = ACTIONS(3),
  },
  [2886] = {
    [sym_identifier] = ACTIONS(4852),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4854),
    [anon_sym_DOT] = ACTIONS(4854),
    [anon_sym_SEMI] = ACTIONS(4854),
    [anon_sym_TILDE] = ACTIONS(4854),
    [anon_sym_AT] = ACTIONS(4854),
    [sym_bool] = ACTIONS(4852),
    [sym_byte] = ACTIONS(4852),
    [sym_ubyte] = ACTIONS(4852),
    [sym_char] = ACTIONS(4852),
    [sym_short] = ACTIONS(4852),
    [sym_ushort] = ACTIONS(4852),
    [sym_int] = ACTIONS(4852),
    [sym_uint] = ACTIONS(4852),
    [sym_long] = ACTIONS(4852),
    [sym_ulong] = ACTIONS(4852),
    [sym_cent] = ACTIONS(4852),
    [sym_ucent] = ACTIONS(4852),
    [sym_wchar] = ACTIONS(4852),
    [sym_dchar] = ACTIONS(4852),
    [sym_float] = ACTIONS(4852),
    [sym_double] = ACTIONS(4852),
    [sym_real] = ACTIONS(4852),
    [sym_ifloat] = ACTIONS(4852),
    [sym_idouble] = ACTIONS(4852),
    [sym_ireal] = ACTIONS(4852),
    [sym_cfloat] = ACTIONS(4852),
    [sym_cdouble] = ACTIONS(4852),
    [sym_creal] = ACTIONS(4852),
    [sym_size_t] = ACTIONS(4852),
    [sym_ptrdiff_t] = ACTIONS(4852),
    [sym_string] = ACTIONS(4852),
    [sym_cstring] = ACTIONS(4852),
    [sym_dstring] = ACTIONS(4852),
    [sym_wstring] = ACTIONS(4852),
    [sym_noreturn] = ACTIONS(4852),
    [sym_this] = ACTIONS(4852),
    [sym_abstract] = ACTIONS(4852),
    [sym_alias] = ACTIONS(4852),
    [sym_align] = ACTIONS(4852),
    [sym_auto] = ACTIONS(4852),
    [sym_class] = ACTIONS(4852),
    [sym_const] = ACTIONS(4852),
    [sym_debug] = ACTIONS(4852),
    [sym_deprecated] = ACTIONS(4852),
    [sym_else] = ACTIONS(4852),
    [sym_enum] = ACTIONS(4852),
    [sym_export] = ACTIONS(4852),
    [sym_extern] = ACTIONS(4852),
    [sym_final] = ACTIONS(4852),
    [sym_immutable] = ACTIONS(4852),
    [sym_import] = ACTIONS(4852),
    [sym_inout] = ACTIONS(4852),
    [sym_interface] = ACTIONS(4852),
    [sym_invariant] = ACTIONS(4852),
    [sym_mixin] = ACTIONS(4852),
    [sym_nothrow] = ACTIONS(4852),
    [sym_override] = ACTIONS(4852),
    [sym_package] = ACTIONS(4852),
    [sym_pragma] = ACTIONS(4852),
    [sym_private] = ACTIONS(4852),
    [sym_protected] = ACTIONS(4852),
    [sym_public] = ACTIONS(4852),
    [sym_pure] = ACTIONS(4852),
    [sym_ref] = ACTIONS(4852),
    [sym_return] = ACTIONS(4852),
    [sym_scope] = ACTIONS(4852),
    [sym_shared] = ACTIONS(4852),
    [sym_static] = ACTIONS(4852),
    [sym_struct] = ACTIONS(4852),
    [sym_synchronized] = ACTIONS(4852),
    [sym_template] = ACTIONS(4852),
    [sym_typeof] = ACTIONS(4852),
    [sym_union] = ACTIONS(4852),
    [sym_unittest] = ACTIONS(4852),
    [sym_version] = ACTIONS(4852),
    [sym_while] = ACTIONS(4852),
    [sym_gshared] = ACTIONS(4852),
    [sym_traits] = ACTIONS(4852),
    [sym_vector] = ACTIONS(4852),
    [sym_void] = ACTIONS(4852),
    [sym_directive] = ACTIONS(3),
  },
  [2887] = {
    [sym_identifier] = ACTIONS(4598),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4600),
    [anon_sym_DOT] = ACTIONS(4600),
    [anon_sym_SEMI] = ACTIONS(4600),
    [anon_sym_TILDE] = ACTIONS(4600),
    [anon_sym_AT] = ACTIONS(4600),
    [sym_bool] = ACTIONS(4598),
    [sym_byte] = ACTIONS(4598),
    [sym_ubyte] = ACTIONS(4598),
    [sym_char] = ACTIONS(4598),
    [sym_short] = ACTIONS(4598),
    [sym_ushort] = ACTIONS(4598),
    [sym_int] = ACTIONS(4598),
    [sym_uint] = ACTIONS(4598),
    [sym_long] = ACTIONS(4598),
    [sym_ulong] = ACTIONS(4598),
    [sym_cent] = ACTIONS(4598),
    [sym_ucent] = ACTIONS(4598),
    [sym_wchar] = ACTIONS(4598),
    [sym_dchar] = ACTIONS(4598),
    [sym_float] = ACTIONS(4598),
    [sym_double] = ACTIONS(4598),
    [sym_real] = ACTIONS(4598),
    [sym_ifloat] = ACTIONS(4598),
    [sym_idouble] = ACTIONS(4598),
    [sym_ireal] = ACTIONS(4598),
    [sym_cfloat] = ACTIONS(4598),
    [sym_cdouble] = ACTIONS(4598),
    [sym_creal] = ACTIONS(4598),
    [sym_size_t] = ACTIONS(4598),
    [sym_ptrdiff_t] = ACTIONS(4598),
    [sym_string] = ACTIONS(4598),
    [sym_cstring] = ACTIONS(4598),
    [sym_dstring] = ACTIONS(4598),
    [sym_wstring] = ACTIONS(4598),
    [sym_noreturn] = ACTIONS(4598),
    [sym_this] = ACTIONS(4598),
    [sym_abstract] = ACTIONS(4598),
    [sym_alias] = ACTIONS(4598),
    [sym_align] = ACTIONS(4598),
    [sym_auto] = ACTIONS(4598),
    [sym_class] = ACTIONS(4598),
    [sym_const] = ACTIONS(4598),
    [sym_debug] = ACTIONS(4598),
    [sym_deprecated] = ACTIONS(4598),
    [sym_else] = ACTIONS(4598),
    [sym_enum] = ACTIONS(4598),
    [sym_export] = ACTIONS(4598),
    [sym_extern] = ACTIONS(4598),
    [sym_final] = ACTIONS(4598),
    [sym_immutable] = ACTIONS(4598),
    [sym_import] = ACTIONS(4598),
    [sym_inout] = ACTIONS(4598),
    [sym_interface] = ACTIONS(4598),
    [sym_invariant] = ACTIONS(4598),
    [sym_mixin] = ACTIONS(4598),
    [sym_nothrow] = ACTIONS(4598),
    [sym_override] = ACTIONS(4598),
    [sym_package] = ACTIONS(4598),
    [sym_pragma] = ACTIONS(4598),
    [sym_private] = ACTIONS(4598),
    [sym_protected] = ACTIONS(4598),
    [sym_public] = ACTIONS(4598),
    [sym_pure] = ACTIONS(4598),
    [sym_ref] = ACTIONS(4598),
    [sym_return] = ACTIONS(4598),
    [sym_scope] = ACTIONS(4598),
    [sym_shared] = ACTIONS(4598),
    [sym_static] = ACTIONS(4598),
    [sym_struct] = ACTIONS(4598),
    [sym_synchronized] = ACTIONS(4598),
    [sym_template] = ACTIONS(4598),
    [sym_typeof] = ACTIONS(4598),
    [sym_union] = ACTIONS(4598),
    [sym_unittest] = ACTIONS(4598),
    [sym_version] = ACTIONS(4598),
    [sym_while] = ACTIONS(4598),
    [sym_gshared] = ACTIONS(4598),
    [sym_traits] = ACTIONS(4598),
    [sym_vector] = ACTIONS(4598),
    [sym_void] = ACTIONS(4598),
    [sym_directive] = ACTIONS(3),
  },
  [2888] = {
    [sym_identifier] = ACTIONS(4892),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4894),
    [anon_sym_DOT] = ACTIONS(4894),
    [anon_sym_SEMI] = ACTIONS(4894),
    [anon_sym_TILDE] = ACTIONS(4894),
    [anon_sym_AT] = ACTIONS(4894),
    [sym_bool] = ACTIONS(4892),
    [sym_byte] = ACTIONS(4892),
    [sym_ubyte] = ACTIONS(4892),
    [sym_char] = ACTIONS(4892),
    [sym_short] = ACTIONS(4892),
    [sym_ushort] = ACTIONS(4892),
    [sym_int] = ACTIONS(4892),
    [sym_uint] = ACTIONS(4892),
    [sym_long] = ACTIONS(4892),
    [sym_ulong] = ACTIONS(4892),
    [sym_cent] = ACTIONS(4892),
    [sym_ucent] = ACTIONS(4892),
    [sym_wchar] = ACTIONS(4892),
    [sym_dchar] = ACTIONS(4892),
    [sym_float] = ACTIONS(4892),
    [sym_double] = ACTIONS(4892),
    [sym_real] = ACTIONS(4892),
    [sym_ifloat] = ACTIONS(4892),
    [sym_idouble] = ACTIONS(4892),
    [sym_ireal] = ACTIONS(4892),
    [sym_cfloat] = ACTIONS(4892),
    [sym_cdouble] = ACTIONS(4892),
    [sym_creal] = ACTIONS(4892),
    [sym_size_t] = ACTIONS(4892),
    [sym_ptrdiff_t] = ACTIONS(4892),
    [sym_string] = ACTIONS(4892),
    [sym_cstring] = ACTIONS(4892),
    [sym_dstring] = ACTIONS(4892),
    [sym_wstring] = ACTIONS(4892),
    [sym_noreturn] = ACTIONS(4892),
    [sym_this] = ACTIONS(4892),
    [sym_abstract] = ACTIONS(4892),
    [sym_alias] = ACTIONS(4892),
    [sym_align] = ACTIONS(4892),
    [sym_auto] = ACTIONS(4892),
    [sym_class] = ACTIONS(4892),
    [sym_const] = ACTIONS(4892),
    [sym_debug] = ACTIONS(4892),
    [sym_deprecated] = ACTIONS(4892),
    [sym_else] = ACTIONS(4892),
    [sym_enum] = ACTIONS(4892),
    [sym_export] = ACTIONS(4892),
    [sym_extern] = ACTIONS(4892),
    [sym_final] = ACTIONS(4892),
    [sym_immutable] = ACTIONS(4892),
    [sym_import] = ACTIONS(4892),
    [sym_inout] = ACTIONS(4892),
    [sym_interface] = ACTIONS(4892),
    [sym_invariant] = ACTIONS(4892),
    [sym_mixin] = ACTIONS(4892),
    [sym_nothrow] = ACTIONS(4892),
    [sym_override] = ACTIONS(4892),
    [sym_package] = ACTIONS(4892),
    [sym_pragma] = ACTIONS(4892),
    [sym_private] = ACTIONS(4892),
    [sym_protected] = ACTIONS(4892),
    [sym_public] = ACTIONS(4892),
    [sym_pure] = ACTIONS(4892),
    [sym_ref] = ACTIONS(4892),
    [sym_return] = ACTIONS(4892),
    [sym_scope] = ACTIONS(4892),
    [sym_shared] = ACTIONS(4892),
    [sym_static] = ACTIONS(4892),
    [sym_struct] = ACTIONS(4892),
    [sym_synchronized] = ACTIONS(4892),
    [sym_template] = ACTIONS(4892),
    [sym_typeof] = ACTIONS(4892),
    [sym_union] = ACTIONS(4892),
    [sym_unittest] = ACTIONS(4892),
    [sym_version] = ACTIONS(4892),
    [sym_while] = ACTIONS(4892),
    [sym_gshared] = ACTIONS(4892),
    [sym_traits] = ACTIONS(4892),
    [sym_vector] = ACTIONS(4892),
    [sym_void] = ACTIONS(4892),
    [sym_directive] = ACTIONS(3),
  },
  [2889] = {
    [sym_switch_statement] = STATE(1657),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(848),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2890] = {
    [sym_identifier] = ACTIONS(4960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4962),
    [anon_sym_DOT] = ACTIONS(4962),
    [anon_sym_SEMI] = ACTIONS(4962),
    [anon_sym_TILDE] = ACTIONS(4962),
    [anon_sym_AT] = ACTIONS(4962),
    [sym_bool] = ACTIONS(4960),
    [sym_byte] = ACTIONS(4960),
    [sym_ubyte] = ACTIONS(4960),
    [sym_char] = ACTIONS(4960),
    [sym_short] = ACTIONS(4960),
    [sym_ushort] = ACTIONS(4960),
    [sym_int] = ACTIONS(4960),
    [sym_uint] = ACTIONS(4960),
    [sym_long] = ACTIONS(4960),
    [sym_ulong] = ACTIONS(4960),
    [sym_cent] = ACTIONS(4960),
    [sym_ucent] = ACTIONS(4960),
    [sym_wchar] = ACTIONS(4960),
    [sym_dchar] = ACTIONS(4960),
    [sym_float] = ACTIONS(4960),
    [sym_double] = ACTIONS(4960),
    [sym_real] = ACTIONS(4960),
    [sym_ifloat] = ACTIONS(4960),
    [sym_idouble] = ACTIONS(4960),
    [sym_ireal] = ACTIONS(4960),
    [sym_cfloat] = ACTIONS(4960),
    [sym_cdouble] = ACTIONS(4960),
    [sym_creal] = ACTIONS(4960),
    [sym_size_t] = ACTIONS(4960),
    [sym_ptrdiff_t] = ACTIONS(4960),
    [sym_string] = ACTIONS(4960),
    [sym_cstring] = ACTIONS(4960),
    [sym_dstring] = ACTIONS(4960),
    [sym_wstring] = ACTIONS(4960),
    [sym_noreturn] = ACTIONS(4960),
    [sym_this] = ACTIONS(4960),
    [sym_abstract] = ACTIONS(4960),
    [sym_alias] = ACTIONS(4960),
    [sym_align] = ACTIONS(4960),
    [sym_auto] = ACTIONS(4960),
    [sym_class] = ACTIONS(4960),
    [sym_const] = ACTIONS(4960),
    [sym_debug] = ACTIONS(4960),
    [sym_deprecated] = ACTIONS(4960),
    [sym_else] = ACTIONS(4960),
    [sym_enum] = ACTIONS(4960),
    [sym_export] = ACTIONS(4960),
    [sym_extern] = ACTIONS(4960),
    [sym_final] = ACTIONS(4960),
    [sym_immutable] = ACTIONS(4960),
    [sym_import] = ACTIONS(4960),
    [sym_inout] = ACTIONS(4960),
    [sym_interface] = ACTIONS(4960),
    [sym_invariant] = ACTIONS(4960),
    [sym_mixin] = ACTIONS(4960),
    [sym_nothrow] = ACTIONS(4960),
    [sym_override] = ACTIONS(4960),
    [sym_package] = ACTIONS(4960),
    [sym_pragma] = ACTIONS(4960),
    [sym_private] = ACTIONS(4960),
    [sym_protected] = ACTIONS(4960),
    [sym_public] = ACTIONS(4960),
    [sym_pure] = ACTIONS(4960),
    [sym_ref] = ACTIONS(4960),
    [sym_return] = ACTIONS(4960),
    [sym_scope] = ACTIONS(4960),
    [sym_shared] = ACTIONS(4960),
    [sym_static] = ACTIONS(4960),
    [sym_struct] = ACTIONS(4960),
    [sym_synchronized] = ACTIONS(4960),
    [sym_template] = ACTIONS(4960),
    [sym_typeof] = ACTIONS(4960),
    [sym_union] = ACTIONS(4960),
    [sym_unittest] = ACTIONS(4960),
    [sym_version] = ACTIONS(4960),
    [sym_while] = ACTIONS(4960),
    [sym_gshared] = ACTIONS(4960),
    [sym_traits] = ACTIONS(4960),
    [sym_vector] = ACTIONS(4960),
    [sym_void] = ACTIONS(4960),
    [sym_directive] = ACTIONS(3),
  },
  [2891] = {
    [sym_identifier] = ACTIONS(4758),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4760),
    [anon_sym_DOT] = ACTIONS(4760),
    [anon_sym_SEMI] = ACTIONS(4760),
    [anon_sym_TILDE] = ACTIONS(4760),
    [anon_sym_AT] = ACTIONS(4760),
    [sym_bool] = ACTIONS(4758),
    [sym_byte] = ACTIONS(4758),
    [sym_ubyte] = ACTIONS(4758),
    [sym_char] = ACTIONS(4758),
    [sym_short] = ACTIONS(4758),
    [sym_ushort] = ACTIONS(4758),
    [sym_int] = ACTIONS(4758),
    [sym_uint] = ACTIONS(4758),
    [sym_long] = ACTIONS(4758),
    [sym_ulong] = ACTIONS(4758),
    [sym_cent] = ACTIONS(4758),
    [sym_ucent] = ACTIONS(4758),
    [sym_wchar] = ACTIONS(4758),
    [sym_dchar] = ACTIONS(4758),
    [sym_float] = ACTIONS(4758),
    [sym_double] = ACTIONS(4758),
    [sym_real] = ACTIONS(4758),
    [sym_ifloat] = ACTIONS(4758),
    [sym_idouble] = ACTIONS(4758),
    [sym_ireal] = ACTIONS(4758),
    [sym_cfloat] = ACTIONS(4758),
    [sym_cdouble] = ACTIONS(4758),
    [sym_creal] = ACTIONS(4758),
    [sym_size_t] = ACTIONS(4758),
    [sym_ptrdiff_t] = ACTIONS(4758),
    [sym_string] = ACTIONS(4758),
    [sym_cstring] = ACTIONS(4758),
    [sym_dstring] = ACTIONS(4758),
    [sym_wstring] = ACTIONS(4758),
    [sym_noreturn] = ACTIONS(4758),
    [sym_this] = ACTIONS(4758),
    [sym_abstract] = ACTIONS(4758),
    [sym_alias] = ACTIONS(4758),
    [sym_align] = ACTIONS(4758),
    [sym_auto] = ACTIONS(4758),
    [sym_class] = ACTIONS(4758),
    [sym_const] = ACTIONS(4758),
    [sym_debug] = ACTIONS(4758),
    [sym_deprecated] = ACTIONS(4758),
    [sym_else] = ACTIONS(4758),
    [sym_enum] = ACTIONS(4758),
    [sym_export] = ACTIONS(4758),
    [sym_extern] = ACTIONS(4758),
    [sym_final] = ACTIONS(4758),
    [sym_immutable] = ACTIONS(4758),
    [sym_import] = ACTIONS(4758),
    [sym_inout] = ACTIONS(4758),
    [sym_interface] = ACTIONS(4758),
    [sym_invariant] = ACTIONS(4758),
    [sym_mixin] = ACTIONS(4758),
    [sym_nothrow] = ACTIONS(4758),
    [sym_override] = ACTIONS(4758),
    [sym_package] = ACTIONS(4758),
    [sym_pragma] = ACTIONS(4758),
    [sym_private] = ACTIONS(4758),
    [sym_protected] = ACTIONS(4758),
    [sym_public] = ACTIONS(4758),
    [sym_pure] = ACTIONS(4758),
    [sym_ref] = ACTIONS(4758),
    [sym_return] = ACTIONS(4758),
    [sym_scope] = ACTIONS(4758),
    [sym_shared] = ACTIONS(4758),
    [sym_static] = ACTIONS(4758),
    [sym_struct] = ACTIONS(4758),
    [sym_synchronized] = ACTIONS(4758),
    [sym_template] = ACTIONS(4758),
    [sym_typeof] = ACTIONS(4758),
    [sym_union] = ACTIONS(4758),
    [sym_unittest] = ACTIONS(4758),
    [sym_version] = ACTIONS(4758),
    [sym_while] = ACTIONS(4758),
    [sym_gshared] = ACTIONS(4758),
    [sym_traits] = ACTIONS(4758),
    [sym_vector] = ACTIONS(4758),
    [sym_void] = ACTIONS(4758),
    [sym_directive] = ACTIONS(3),
  },
  [2892] = {
    [sym_identifier] = ACTIONS(4750),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4752),
    [anon_sym_DOT] = ACTIONS(4752),
    [anon_sym_SEMI] = ACTIONS(4752),
    [anon_sym_TILDE] = ACTIONS(4752),
    [anon_sym_AT] = ACTIONS(4752),
    [sym_bool] = ACTIONS(4750),
    [sym_byte] = ACTIONS(4750),
    [sym_ubyte] = ACTIONS(4750),
    [sym_char] = ACTIONS(4750),
    [sym_short] = ACTIONS(4750),
    [sym_ushort] = ACTIONS(4750),
    [sym_int] = ACTIONS(4750),
    [sym_uint] = ACTIONS(4750),
    [sym_long] = ACTIONS(4750),
    [sym_ulong] = ACTIONS(4750),
    [sym_cent] = ACTIONS(4750),
    [sym_ucent] = ACTIONS(4750),
    [sym_wchar] = ACTIONS(4750),
    [sym_dchar] = ACTIONS(4750),
    [sym_float] = ACTIONS(4750),
    [sym_double] = ACTIONS(4750),
    [sym_real] = ACTIONS(4750),
    [sym_ifloat] = ACTIONS(4750),
    [sym_idouble] = ACTIONS(4750),
    [sym_ireal] = ACTIONS(4750),
    [sym_cfloat] = ACTIONS(4750),
    [sym_cdouble] = ACTIONS(4750),
    [sym_creal] = ACTIONS(4750),
    [sym_size_t] = ACTIONS(4750),
    [sym_ptrdiff_t] = ACTIONS(4750),
    [sym_string] = ACTIONS(4750),
    [sym_cstring] = ACTIONS(4750),
    [sym_dstring] = ACTIONS(4750),
    [sym_wstring] = ACTIONS(4750),
    [sym_noreturn] = ACTIONS(4750),
    [sym_this] = ACTIONS(4750),
    [sym_abstract] = ACTIONS(4750),
    [sym_alias] = ACTIONS(4750),
    [sym_align] = ACTIONS(4750),
    [sym_auto] = ACTIONS(4750),
    [sym_class] = ACTIONS(4750),
    [sym_const] = ACTIONS(4750),
    [sym_debug] = ACTIONS(4750),
    [sym_deprecated] = ACTIONS(4750),
    [sym_else] = ACTIONS(4750),
    [sym_enum] = ACTIONS(4750),
    [sym_export] = ACTIONS(4750),
    [sym_extern] = ACTIONS(4750),
    [sym_final] = ACTIONS(4750),
    [sym_immutable] = ACTIONS(4750),
    [sym_import] = ACTIONS(4750),
    [sym_inout] = ACTIONS(4750),
    [sym_interface] = ACTIONS(4750),
    [sym_invariant] = ACTIONS(4750),
    [sym_mixin] = ACTIONS(4750),
    [sym_nothrow] = ACTIONS(4750),
    [sym_override] = ACTIONS(4750),
    [sym_package] = ACTIONS(4750),
    [sym_pragma] = ACTIONS(4750),
    [sym_private] = ACTIONS(4750),
    [sym_protected] = ACTIONS(4750),
    [sym_public] = ACTIONS(4750),
    [sym_pure] = ACTIONS(4750),
    [sym_ref] = ACTIONS(4750),
    [sym_return] = ACTIONS(4750),
    [sym_scope] = ACTIONS(4750),
    [sym_shared] = ACTIONS(4750),
    [sym_static] = ACTIONS(4750),
    [sym_struct] = ACTIONS(4750),
    [sym_synchronized] = ACTIONS(4750),
    [sym_template] = ACTIONS(4750),
    [sym_typeof] = ACTIONS(4750),
    [sym_union] = ACTIONS(4750),
    [sym_unittest] = ACTIONS(4750),
    [sym_version] = ACTIONS(4750),
    [sym_while] = ACTIONS(4750),
    [sym_gshared] = ACTIONS(4750),
    [sym_traits] = ACTIONS(4750),
    [sym_vector] = ACTIONS(4750),
    [sym_void] = ACTIONS(4750),
    [sym_directive] = ACTIONS(3),
  },
  [2893] = {
    [sym_identifier] = ACTIONS(4746),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4748),
    [anon_sym_DOT] = ACTIONS(4748),
    [anon_sym_SEMI] = ACTIONS(4748),
    [anon_sym_TILDE] = ACTIONS(4748),
    [anon_sym_AT] = ACTIONS(4748),
    [sym_bool] = ACTIONS(4746),
    [sym_byte] = ACTIONS(4746),
    [sym_ubyte] = ACTIONS(4746),
    [sym_char] = ACTIONS(4746),
    [sym_short] = ACTIONS(4746),
    [sym_ushort] = ACTIONS(4746),
    [sym_int] = ACTIONS(4746),
    [sym_uint] = ACTIONS(4746),
    [sym_long] = ACTIONS(4746),
    [sym_ulong] = ACTIONS(4746),
    [sym_cent] = ACTIONS(4746),
    [sym_ucent] = ACTIONS(4746),
    [sym_wchar] = ACTIONS(4746),
    [sym_dchar] = ACTIONS(4746),
    [sym_float] = ACTIONS(4746),
    [sym_double] = ACTIONS(4746),
    [sym_real] = ACTIONS(4746),
    [sym_ifloat] = ACTIONS(4746),
    [sym_idouble] = ACTIONS(4746),
    [sym_ireal] = ACTIONS(4746),
    [sym_cfloat] = ACTIONS(4746),
    [sym_cdouble] = ACTIONS(4746),
    [sym_creal] = ACTIONS(4746),
    [sym_size_t] = ACTIONS(4746),
    [sym_ptrdiff_t] = ACTIONS(4746),
    [sym_string] = ACTIONS(4746),
    [sym_cstring] = ACTIONS(4746),
    [sym_dstring] = ACTIONS(4746),
    [sym_wstring] = ACTIONS(4746),
    [sym_noreturn] = ACTIONS(4746),
    [sym_this] = ACTIONS(4746),
    [sym_abstract] = ACTIONS(4746),
    [sym_alias] = ACTIONS(4746),
    [sym_align] = ACTIONS(4746),
    [sym_auto] = ACTIONS(4746),
    [sym_class] = ACTIONS(4746),
    [sym_const] = ACTIONS(4746),
    [sym_debug] = ACTIONS(4746),
    [sym_deprecated] = ACTIONS(4746),
    [sym_else] = ACTIONS(4746),
    [sym_enum] = ACTIONS(4746),
    [sym_export] = ACTIONS(4746),
    [sym_extern] = ACTIONS(4746),
    [sym_final] = ACTIONS(4746),
    [sym_immutable] = ACTIONS(4746),
    [sym_import] = ACTIONS(4746),
    [sym_inout] = ACTIONS(4746),
    [sym_interface] = ACTIONS(4746),
    [sym_invariant] = ACTIONS(4746),
    [sym_mixin] = ACTIONS(4746),
    [sym_nothrow] = ACTIONS(4746),
    [sym_override] = ACTIONS(4746),
    [sym_package] = ACTIONS(4746),
    [sym_pragma] = ACTIONS(4746),
    [sym_private] = ACTIONS(4746),
    [sym_protected] = ACTIONS(4746),
    [sym_public] = ACTIONS(4746),
    [sym_pure] = ACTIONS(4746),
    [sym_ref] = ACTIONS(4746),
    [sym_return] = ACTIONS(4746),
    [sym_scope] = ACTIONS(4746),
    [sym_shared] = ACTIONS(4746),
    [sym_static] = ACTIONS(4746),
    [sym_struct] = ACTIONS(4746),
    [sym_synchronized] = ACTIONS(4746),
    [sym_template] = ACTIONS(4746),
    [sym_typeof] = ACTIONS(4746),
    [sym_union] = ACTIONS(4746),
    [sym_unittest] = ACTIONS(4746),
    [sym_version] = ACTIONS(4746),
    [sym_while] = ACTIONS(4746),
    [sym_gshared] = ACTIONS(4746),
    [sym_traits] = ACTIONS(4746),
    [sym_vector] = ACTIONS(4746),
    [sym_void] = ACTIONS(4746),
    [sym_directive] = ACTIONS(3),
  },
  [2894] = {
    [sym_identifier] = ACTIONS(4528),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4531),
    [anon_sym_DOT] = ACTIONS(4531),
    [anon_sym_SEMI] = ACTIONS(4531),
    [anon_sym_TILDE] = ACTIONS(4531),
    [anon_sym_AT] = ACTIONS(4531),
    [sym_bool] = ACTIONS(4528),
    [sym_byte] = ACTIONS(4528),
    [sym_ubyte] = ACTIONS(4528),
    [sym_char] = ACTIONS(4528),
    [sym_short] = ACTIONS(4528),
    [sym_ushort] = ACTIONS(4528),
    [sym_int] = ACTIONS(4528),
    [sym_uint] = ACTIONS(4528),
    [sym_long] = ACTIONS(4528),
    [sym_ulong] = ACTIONS(4528),
    [sym_cent] = ACTIONS(4528),
    [sym_ucent] = ACTIONS(4528),
    [sym_wchar] = ACTIONS(4528),
    [sym_dchar] = ACTIONS(4528),
    [sym_float] = ACTIONS(4528),
    [sym_double] = ACTIONS(4528),
    [sym_real] = ACTIONS(4528),
    [sym_ifloat] = ACTIONS(4528),
    [sym_idouble] = ACTIONS(4528),
    [sym_ireal] = ACTIONS(4528),
    [sym_cfloat] = ACTIONS(4528),
    [sym_cdouble] = ACTIONS(4528),
    [sym_creal] = ACTIONS(4528),
    [sym_size_t] = ACTIONS(4528),
    [sym_ptrdiff_t] = ACTIONS(4528),
    [sym_string] = ACTIONS(4528),
    [sym_cstring] = ACTIONS(4528),
    [sym_dstring] = ACTIONS(4528),
    [sym_wstring] = ACTIONS(4528),
    [sym_noreturn] = ACTIONS(4528),
    [sym_this] = ACTIONS(4528),
    [sym_abstract] = ACTIONS(4528),
    [sym_alias] = ACTIONS(4528),
    [sym_align] = ACTIONS(4528),
    [sym_auto] = ACTIONS(4528),
    [sym_class] = ACTIONS(4528),
    [sym_const] = ACTIONS(4528),
    [sym_debug] = ACTIONS(4528),
    [sym_deprecated] = ACTIONS(4528),
    [sym_else] = ACTIONS(4528),
    [sym_enum] = ACTIONS(4528),
    [sym_export] = ACTIONS(4528),
    [sym_extern] = ACTIONS(4528),
    [sym_final] = ACTIONS(4528),
    [sym_immutable] = ACTIONS(4528),
    [sym_import] = ACTIONS(4528),
    [sym_inout] = ACTIONS(4528),
    [sym_interface] = ACTIONS(4528),
    [sym_invariant] = ACTIONS(4528),
    [sym_mixin] = ACTIONS(4528),
    [sym_nothrow] = ACTIONS(4528),
    [sym_override] = ACTIONS(4528),
    [sym_package] = ACTIONS(4528),
    [sym_pragma] = ACTIONS(4528),
    [sym_private] = ACTIONS(4528),
    [sym_protected] = ACTIONS(4528),
    [sym_public] = ACTIONS(4528),
    [sym_pure] = ACTIONS(4528),
    [sym_ref] = ACTIONS(4528),
    [sym_return] = ACTIONS(4528),
    [sym_scope] = ACTIONS(4528),
    [sym_shared] = ACTIONS(4528),
    [sym_static] = ACTIONS(4528),
    [sym_struct] = ACTIONS(4528),
    [sym_synchronized] = ACTIONS(4528),
    [sym_template] = ACTIONS(4528),
    [sym_typeof] = ACTIONS(4528),
    [sym_union] = ACTIONS(4528),
    [sym_unittest] = ACTIONS(4528),
    [sym_version] = ACTIONS(4528),
    [sym_while] = ACTIONS(4528),
    [sym_gshared] = ACTIONS(4528),
    [sym_traits] = ACTIONS(4528),
    [sym_vector] = ACTIONS(4528),
    [sym_void] = ACTIONS(4528),
    [sym_directive] = ACTIONS(3),
  },
  [2895] = {
    [sym_identifier] = ACTIONS(4610),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4612),
    [anon_sym_DOT] = ACTIONS(4612),
    [anon_sym_SEMI] = ACTIONS(4612),
    [anon_sym_TILDE] = ACTIONS(4612),
    [anon_sym_AT] = ACTIONS(4612),
    [sym_bool] = ACTIONS(4610),
    [sym_byte] = ACTIONS(4610),
    [sym_ubyte] = ACTIONS(4610),
    [sym_char] = ACTIONS(4610),
    [sym_short] = ACTIONS(4610),
    [sym_ushort] = ACTIONS(4610),
    [sym_int] = ACTIONS(4610),
    [sym_uint] = ACTIONS(4610),
    [sym_long] = ACTIONS(4610),
    [sym_ulong] = ACTIONS(4610),
    [sym_cent] = ACTIONS(4610),
    [sym_ucent] = ACTIONS(4610),
    [sym_wchar] = ACTIONS(4610),
    [sym_dchar] = ACTIONS(4610),
    [sym_float] = ACTIONS(4610),
    [sym_double] = ACTIONS(4610),
    [sym_real] = ACTIONS(4610),
    [sym_ifloat] = ACTIONS(4610),
    [sym_idouble] = ACTIONS(4610),
    [sym_ireal] = ACTIONS(4610),
    [sym_cfloat] = ACTIONS(4610),
    [sym_cdouble] = ACTIONS(4610),
    [sym_creal] = ACTIONS(4610),
    [sym_size_t] = ACTIONS(4610),
    [sym_ptrdiff_t] = ACTIONS(4610),
    [sym_string] = ACTIONS(4610),
    [sym_cstring] = ACTIONS(4610),
    [sym_dstring] = ACTIONS(4610),
    [sym_wstring] = ACTIONS(4610),
    [sym_noreturn] = ACTIONS(4610),
    [sym_this] = ACTIONS(4610),
    [sym_abstract] = ACTIONS(4610),
    [sym_alias] = ACTIONS(4610),
    [sym_align] = ACTIONS(4610),
    [sym_auto] = ACTIONS(4610),
    [sym_class] = ACTIONS(4610),
    [sym_const] = ACTIONS(4610),
    [sym_debug] = ACTIONS(4610),
    [sym_deprecated] = ACTIONS(4610),
    [sym_else] = ACTIONS(4610),
    [sym_enum] = ACTIONS(4610),
    [sym_export] = ACTIONS(4610),
    [sym_extern] = ACTIONS(4610),
    [sym_final] = ACTIONS(4610),
    [sym_immutable] = ACTIONS(4610),
    [sym_import] = ACTIONS(4610),
    [sym_inout] = ACTIONS(4610),
    [sym_interface] = ACTIONS(4610),
    [sym_invariant] = ACTIONS(4610),
    [sym_mixin] = ACTIONS(4610),
    [sym_nothrow] = ACTIONS(4610),
    [sym_override] = ACTIONS(4610),
    [sym_package] = ACTIONS(4610),
    [sym_pragma] = ACTIONS(4610),
    [sym_private] = ACTIONS(4610),
    [sym_protected] = ACTIONS(4610),
    [sym_public] = ACTIONS(4610),
    [sym_pure] = ACTIONS(4610),
    [sym_ref] = ACTIONS(4610),
    [sym_return] = ACTIONS(4610),
    [sym_scope] = ACTIONS(4610),
    [sym_shared] = ACTIONS(4610),
    [sym_static] = ACTIONS(4610),
    [sym_struct] = ACTIONS(4610),
    [sym_synchronized] = ACTIONS(4610),
    [sym_template] = ACTIONS(4610),
    [sym_typeof] = ACTIONS(4610),
    [sym_union] = ACTIONS(4610),
    [sym_unittest] = ACTIONS(4610),
    [sym_version] = ACTIONS(4610),
    [sym_while] = ACTIONS(4610),
    [sym_gshared] = ACTIONS(4610),
    [sym_traits] = ACTIONS(4610),
    [sym_vector] = ACTIONS(4610),
    [sym_void] = ACTIONS(4610),
    [sym_directive] = ACTIONS(3),
  },
  [2896] = {
    [sym_identifier] = ACTIONS(4446),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4448),
    [anon_sym_DOT] = ACTIONS(4448),
    [anon_sym_SEMI] = ACTIONS(4448),
    [anon_sym_TILDE] = ACTIONS(4448),
    [anon_sym_AT] = ACTIONS(4448),
    [sym_bool] = ACTIONS(4446),
    [sym_byte] = ACTIONS(4446),
    [sym_ubyte] = ACTIONS(4446),
    [sym_char] = ACTIONS(4446),
    [sym_short] = ACTIONS(4446),
    [sym_ushort] = ACTIONS(4446),
    [sym_int] = ACTIONS(4446),
    [sym_uint] = ACTIONS(4446),
    [sym_long] = ACTIONS(4446),
    [sym_ulong] = ACTIONS(4446),
    [sym_cent] = ACTIONS(4446),
    [sym_ucent] = ACTIONS(4446),
    [sym_wchar] = ACTIONS(4446),
    [sym_dchar] = ACTIONS(4446),
    [sym_float] = ACTIONS(4446),
    [sym_double] = ACTIONS(4446),
    [sym_real] = ACTIONS(4446),
    [sym_ifloat] = ACTIONS(4446),
    [sym_idouble] = ACTIONS(4446),
    [sym_ireal] = ACTIONS(4446),
    [sym_cfloat] = ACTIONS(4446),
    [sym_cdouble] = ACTIONS(4446),
    [sym_creal] = ACTIONS(4446),
    [sym_size_t] = ACTIONS(4446),
    [sym_ptrdiff_t] = ACTIONS(4446),
    [sym_string] = ACTIONS(4446),
    [sym_cstring] = ACTIONS(4446),
    [sym_dstring] = ACTIONS(4446),
    [sym_wstring] = ACTIONS(4446),
    [sym_noreturn] = ACTIONS(4446),
    [sym_this] = ACTIONS(4446),
    [sym_abstract] = ACTIONS(4446),
    [sym_alias] = ACTIONS(4446),
    [sym_align] = ACTIONS(4446),
    [sym_auto] = ACTIONS(4446),
    [sym_class] = ACTIONS(4446),
    [sym_const] = ACTIONS(4446),
    [sym_debug] = ACTIONS(4446),
    [sym_deprecated] = ACTIONS(4446),
    [sym_else] = ACTIONS(6823),
    [sym_enum] = ACTIONS(4446),
    [sym_export] = ACTIONS(4446),
    [sym_extern] = ACTIONS(4446),
    [sym_final] = ACTIONS(4446),
    [sym_immutable] = ACTIONS(4446),
    [sym_import] = ACTIONS(4446),
    [sym_inout] = ACTIONS(4446),
    [sym_interface] = ACTIONS(4446),
    [sym_invariant] = ACTIONS(4446),
    [sym_mixin] = ACTIONS(4446),
    [sym_nothrow] = ACTIONS(4446),
    [sym_override] = ACTIONS(4446),
    [sym_package] = ACTIONS(4446),
    [sym_pragma] = ACTIONS(4446),
    [sym_private] = ACTIONS(4446),
    [sym_protected] = ACTIONS(4446),
    [sym_public] = ACTIONS(4446),
    [sym_pure] = ACTIONS(4446),
    [sym_ref] = ACTIONS(4446),
    [sym_return] = ACTIONS(4446),
    [sym_scope] = ACTIONS(4446),
    [sym_shared] = ACTIONS(4446),
    [sym_static] = ACTIONS(4446),
    [sym_struct] = ACTIONS(4446),
    [sym_synchronized] = ACTIONS(4446),
    [sym_template] = ACTIONS(4446),
    [sym_typeof] = ACTIONS(4446),
    [sym_union] = ACTIONS(4446),
    [sym_unittest] = ACTIONS(4446),
    [sym_version] = ACTIONS(4446),
    [sym_while] = ACTIONS(4446),
    [sym_gshared] = ACTIONS(4446),
    [sym_traits] = ACTIONS(4446),
    [sym_vector] = ACTIONS(4446),
    [sym_void] = ACTIONS(4446),
    [sym_directive] = ACTIONS(3),
  },
  [2897] = {
    [sym_identifier] = ACTIONS(4480),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4482),
    [anon_sym_DOT] = ACTIONS(4482),
    [anon_sym_SEMI] = ACTIONS(4482),
    [anon_sym_TILDE] = ACTIONS(4482),
    [anon_sym_AT] = ACTIONS(4482),
    [sym_bool] = ACTIONS(4480),
    [sym_byte] = ACTIONS(4480),
    [sym_ubyte] = ACTIONS(4480),
    [sym_char] = ACTIONS(4480),
    [sym_short] = ACTIONS(4480),
    [sym_ushort] = ACTIONS(4480),
    [sym_int] = ACTIONS(4480),
    [sym_uint] = ACTIONS(4480),
    [sym_long] = ACTIONS(4480),
    [sym_ulong] = ACTIONS(4480),
    [sym_cent] = ACTIONS(4480),
    [sym_ucent] = ACTIONS(4480),
    [sym_wchar] = ACTIONS(4480),
    [sym_dchar] = ACTIONS(4480),
    [sym_float] = ACTIONS(4480),
    [sym_double] = ACTIONS(4480),
    [sym_real] = ACTIONS(4480),
    [sym_ifloat] = ACTIONS(4480),
    [sym_idouble] = ACTIONS(4480),
    [sym_ireal] = ACTIONS(4480),
    [sym_cfloat] = ACTIONS(4480),
    [sym_cdouble] = ACTIONS(4480),
    [sym_creal] = ACTIONS(4480),
    [sym_size_t] = ACTIONS(4480),
    [sym_ptrdiff_t] = ACTIONS(4480),
    [sym_string] = ACTIONS(4480),
    [sym_cstring] = ACTIONS(4480),
    [sym_dstring] = ACTIONS(4480),
    [sym_wstring] = ACTIONS(4480),
    [sym_noreturn] = ACTIONS(4480),
    [sym_this] = ACTIONS(4480),
    [sym_abstract] = ACTIONS(4480),
    [sym_alias] = ACTIONS(4480),
    [sym_align] = ACTIONS(4480),
    [sym_auto] = ACTIONS(4480),
    [sym_class] = ACTIONS(4480),
    [sym_const] = ACTIONS(4480),
    [sym_debug] = ACTIONS(4480),
    [sym_deprecated] = ACTIONS(4480),
    [sym_else] = ACTIONS(4480),
    [sym_enum] = ACTIONS(4480),
    [sym_export] = ACTIONS(4480),
    [sym_extern] = ACTIONS(4480),
    [sym_final] = ACTIONS(4480),
    [sym_immutable] = ACTIONS(4480),
    [sym_import] = ACTIONS(4480),
    [sym_inout] = ACTIONS(4480),
    [sym_interface] = ACTIONS(4480),
    [sym_invariant] = ACTIONS(4480),
    [sym_mixin] = ACTIONS(4480),
    [sym_nothrow] = ACTIONS(4480),
    [sym_override] = ACTIONS(4480),
    [sym_package] = ACTIONS(4480),
    [sym_pragma] = ACTIONS(4480),
    [sym_private] = ACTIONS(4480),
    [sym_protected] = ACTIONS(4480),
    [sym_public] = ACTIONS(4480),
    [sym_pure] = ACTIONS(4480),
    [sym_ref] = ACTIONS(4480),
    [sym_return] = ACTIONS(4480),
    [sym_scope] = ACTIONS(4480),
    [sym_shared] = ACTIONS(4480),
    [sym_static] = ACTIONS(4480),
    [sym_struct] = ACTIONS(4480),
    [sym_synchronized] = ACTIONS(4480),
    [sym_template] = ACTIONS(4480),
    [sym_typeof] = ACTIONS(4480),
    [sym_union] = ACTIONS(4480),
    [sym_unittest] = ACTIONS(4480),
    [sym_version] = ACTIONS(4480),
    [sym_while] = ACTIONS(4480),
    [sym_gshared] = ACTIONS(4480),
    [sym_traits] = ACTIONS(4480),
    [sym_vector] = ACTIONS(4480),
    [sym_void] = ACTIONS(4480),
    [sym_directive] = ACTIONS(3),
  },
  [2898] = {
    [sym_identifier] = ACTIONS(4616),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4618),
    [anon_sym_DOT] = ACTIONS(4618),
    [anon_sym_SEMI] = ACTIONS(4618),
    [anon_sym_TILDE] = ACTIONS(4618),
    [anon_sym_AT] = ACTIONS(4618),
    [sym_bool] = ACTIONS(4616),
    [sym_byte] = ACTIONS(4616),
    [sym_ubyte] = ACTIONS(4616),
    [sym_char] = ACTIONS(4616),
    [sym_short] = ACTIONS(4616),
    [sym_ushort] = ACTIONS(4616),
    [sym_int] = ACTIONS(4616),
    [sym_uint] = ACTIONS(4616),
    [sym_long] = ACTIONS(4616),
    [sym_ulong] = ACTIONS(4616),
    [sym_cent] = ACTIONS(4616),
    [sym_ucent] = ACTIONS(4616),
    [sym_wchar] = ACTIONS(4616),
    [sym_dchar] = ACTIONS(4616),
    [sym_float] = ACTIONS(4616),
    [sym_double] = ACTIONS(4616),
    [sym_real] = ACTIONS(4616),
    [sym_ifloat] = ACTIONS(4616),
    [sym_idouble] = ACTIONS(4616),
    [sym_ireal] = ACTIONS(4616),
    [sym_cfloat] = ACTIONS(4616),
    [sym_cdouble] = ACTIONS(4616),
    [sym_creal] = ACTIONS(4616),
    [sym_size_t] = ACTIONS(4616),
    [sym_ptrdiff_t] = ACTIONS(4616),
    [sym_string] = ACTIONS(4616),
    [sym_cstring] = ACTIONS(4616),
    [sym_dstring] = ACTIONS(4616),
    [sym_wstring] = ACTIONS(4616),
    [sym_noreturn] = ACTIONS(4616),
    [sym_this] = ACTIONS(4616),
    [sym_abstract] = ACTIONS(4616),
    [sym_alias] = ACTIONS(4616),
    [sym_align] = ACTIONS(4616),
    [sym_auto] = ACTIONS(4616),
    [sym_class] = ACTIONS(4616),
    [sym_const] = ACTIONS(4616),
    [sym_debug] = ACTIONS(4616),
    [sym_deprecated] = ACTIONS(4616),
    [sym_else] = ACTIONS(4616),
    [sym_enum] = ACTIONS(4616),
    [sym_export] = ACTIONS(4616),
    [sym_extern] = ACTIONS(4616),
    [sym_final] = ACTIONS(4616),
    [sym_immutable] = ACTIONS(4616),
    [sym_import] = ACTIONS(4616),
    [sym_inout] = ACTIONS(4616),
    [sym_interface] = ACTIONS(4616),
    [sym_invariant] = ACTIONS(4616),
    [sym_mixin] = ACTIONS(4616),
    [sym_nothrow] = ACTIONS(4616),
    [sym_override] = ACTIONS(4616),
    [sym_package] = ACTIONS(4616),
    [sym_pragma] = ACTIONS(4616),
    [sym_private] = ACTIONS(4616),
    [sym_protected] = ACTIONS(4616),
    [sym_public] = ACTIONS(4616),
    [sym_pure] = ACTIONS(4616),
    [sym_ref] = ACTIONS(4616),
    [sym_return] = ACTIONS(4616),
    [sym_scope] = ACTIONS(4616),
    [sym_shared] = ACTIONS(4616),
    [sym_static] = ACTIONS(4616),
    [sym_struct] = ACTIONS(4616),
    [sym_synchronized] = ACTIONS(4616),
    [sym_template] = ACTIONS(4616),
    [sym_typeof] = ACTIONS(4616),
    [sym_union] = ACTIONS(4616),
    [sym_unittest] = ACTIONS(4616),
    [sym_version] = ACTIONS(4616),
    [sym_while] = ACTIONS(4616),
    [sym_gshared] = ACTIONS(4616),
    [sym_traits] = ACTIONS(4616),
    [sym_vector] = ACTIONS(4616),
    [sym_void] = ACTIONS(4616),
    [sym_directive] = ACTIONS(3),
  },
  [2899] = {
    [sym_identifier] = ACTIONS(4620),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4622),
    [anon_sym_DOT] = ACTIONS(4622),
    [anon_sym_SEMI] = ACTIONS(4622),
    [anon_sym_TILDE] = ACTIONS(4622),
    [anon_sym_AT] = ACTIONS(4622),
    [sym_bool] = ACTIONS(4620),
    [sym_byte] = ACTIONS(4620),
    [sym_ubyte] = ACTIONS(4620),
    [sym_char] = ACTIONS(4620),
    [sym_short] = ACTIONS(4620),
    [sym_ushort] = ACTIONS(4620),
    [sym_int] = ACTIONS(4620),
    [sym_uint] = ACTIONS(4620),
    [sym_long] = ACTIONS(4620),
    [sym_ulong] = ACTIONS(4620),
    [sym_cent] = ACTIONS(4620),
    [sym_ucent] = ACTIONS(4620),
    [sym_wchar] = ACTIONS(4620),
    [sym_dchar] = ACTIONS(4620),
    [sym_float] = ACTIONS(4620),
    [sym_double] = ACTIONS(4620),
    [sym_real] = ACTIONS(4620),
    [sym_ifloat] = ACTIONS(4620),
    [sym_idouble] = ACTIONS(4620),
    [sym_ireal] = ACTIONS(4620),
    [sym_cfloat] = ACTIONS(4620),
    [sym_cdouble] = ACTIONS(4620),
    [sym_creal] = ACTIONS(4620),
    [sym_size_t] = ACTIONS(4620),
    [sym_ptrdiff_t] = ACTIONS(4620),
    [sym_string] = ACTIONS(4620),
    [sym_cstring] = ACTIONS(4620),
    [sym_dstring] = ACTIONS(4620),
    [sym_wstring] = ACTIONS(4620),
    [sym_noreturn] = ACTIONS(4620),
    [sym_this] = ACTIONS(4620),
    [sym_abstract] = ACTIONS(4620),
    [sym_alias] = ACTIONS(4620),
    [sym_align] = ACTIONS(4620),
    [sym_auto] = ACTIONS(4620),
    [sym_class] = ACTIONS(4620),
    [sym_const] = ACTIONS(4620),
    [sym_debug] = ACTIONS(4620),
    [sym_deprecated] = ACTIONS(4620),
    [sym_else] = ACTIONS(4620),
    [sym_enum] = ACTIONS(4620),
    [sym_export] = ACTIONS(4620),
    [sym_extern] = ACTIONS(4620),
    [sym_final] = ACTIONS(4620),
    [sym_immutable] = ACTIONS(4620),
    [sym_import] = ACTIONS(4620),
    [sym_inout] = ACTIONS(4620),
    [sym_interface] = ACTIONS(4620),
    [sym_invariant] = ACTIONS(4620),
    [sym_mixin] = ACTIONS(4620),
    [sym_nothrow] = ACTIONS(4620),
    [sym_override] = ACTIONS(4620),
    [sym_package] = ACTIONS(4620),
    [sym_pragma] = ACTIONS(4620),
    [sym_private] = ACTIONS(4620),
    [sym_protected] = ACTIONS(4620),
    [sym_public] = ACTIONS(4620),
    [sym_pure] = ACTIONS(4620),
    [sym_ref] = ACTIONS(4620),
    [sym_return] = ACTIONS(4620),
    [sym_scope] = ACTIONS(4620),
    [sym_shared] = ACTIONS(4620),
    [sym_static] = ACTIONS(4620),
    [sym_struct] = ACTIONS(4620),
    [sym_synchronized] = ACTIONS(4620),
    [sym_template] = ACTIONS(4620),
    [sym_typeof] = ACTIONS(4620),
    [sym_union] = ACTIONS(4620),
    [sym_unittest] = ACTIONS(4620),
    [sym_version] = ACTIONS(4620),
    [sym_while] = ACTIONS(4620),
    [sym_gshared] = ACTIONS(4620),
    [sym_traits] = ACTIONS(4620),
    [sym_vector] = ACTIONS(4620),
    [sym_void] = ACTIONS(4620),
    [sym_directive] = ACTIONS(3),
  },
  [2900] = {
    [sym_identifier] = ACTIONS(4724),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4726),
    [anon_sym_DOT] = ACTIONS(4726),
    [anon_sym_SEMI] = ACTIONS(4726),
    [anon_sym_TILDE] = ACTIONS(4726),
    [anon_sym_AT] = ACTIONS(4726),
    [sym_bool] = ACTIONS(4724),
    [sym_byte] = ACTIONS(4724),
    [sym_ubyte] = ACTIONS(4724),
    [sym_char] = ACTIONS(4724),
    [sym_short] = ACTIONS(4724),
    [sym_ushort] = ACTIONS(4724),
    [sym_int] = ACTIONS(4724),
    [sym_uint] = ACTIONS(4724),
    [sym_long] = ACTIONS(4724),
    [sym_ulong] = ACTIONS(4724),
    [sym_cent] = ACTIONS(4724),
    [sym_ucent] = ACTIONS(4724),
    [sym_wchar] = ACTIONS(4724),
    [sym_dchar] = ACTIONS(4724),
    [sym_float] = ACTIONS(4724),
    [sym_double] = ACTIONS(4724),
    [sym_real] = ACTIONS(4724),
    [sym_ifloat] = ACTIONS(4724),
    [sym_idouble] = ACTIONS(4724),
    [sym_ireal] = ACTIONS(4724),
    [sym_cfloat] = ACTIONS(4724),
    [sym_cdouble] = ACTIONS(4724),
    [sym_creal] = ACTIONS(4724),
    [sym_size_t] = ACTIONS(4724),
    [sym_ptrdiff_t] = ACTIONS(4724),
    [sym_string] = ACTIONS(4724),
    [sym_cstring] = ACTIONS(4724),
    [sym_dstring] = ACTIONS(4724),
    [sym_wstring] = ACTIONS(4724),
    [sym_noreturn] = ACTIONS(4724),
    [sym_this] = ACTIONS(4724),
    [sym_abstract] = ACTIONS(4724),
    [sym_alias] = ACTIONS(4724),
    [sym_align] = ACTIONS(4724),
    [sym_auto] = ACTIONS(4724),
    [sym_class] = ACTIONS(4724),
    [sym_const] = ACTIONS(4724),
    [sym_debug] = ACTIONS(4724),
    [sym_deprecated] = ACTIONS(4724),
    [sym_else] = ACTIONS(4724),
    [sym_enum] = ACTIONS(4724),
    [sym_export] = ACTIONS(4724),
    [sym_extern] = ACTIONS(4724),
    [sym_final] = ACTIONS(4724),
    [sym_immutable] = ACTIONS(4724),
    [sym_import] = ACTIONS(4724),
    [sym_inout] = ACTIONS(4724),
    [sym_interface] = ACTIONS(4724),
    [sym_invariant] = ACTIONS(4724),
    [sym_mixin] = ACTIONS(4724),
    [sym_nothrow] = ACTIONS(4724),
    [sym_override] = ACTIONS(4724),
    [sym_package] = ACTIONS(4724),
    [sym_pragma] = ACTIONS(4724),
    [sym_private] = ACTIONS(4724),
    [sym_protected] = ACTIONS(4724),
    [sym_public] = ACTIONS(4724),
    [sym_pure] = ACTIONS(4724),
    [sym_ref] = ACTIONS(4724),
    [sym_return] = ACTIONS(4724),
    [sym_scope] = ACTIONS(4724),
    [sym_shared] = ACTIONS(4724),
    [sym_static] = ACTIONS(4724),
    [sym_struct] = ACTIONS(4724),
    [sym_synchronized] = ACTIONS(4724),
    [sym_template] = ACTIONS(4724),
    [sym_typeof] = ACTIONS(4724),
    [sym_union] = ACTIONS(4724),
    [sym_unittest] = ACTIONS(4724),
    [sym_version] = ACTIONS(4724),
    [sym_while] = ACTIONS(4724),
    [sym_gshared] = ACTIONS(4724),
    [sym_traits] = ACTIONS(4724),
    [sym_vector] = ACTIONS(4724),
    [sym_void] = ACTIONS(4724),
    [sym_directive] = ACTIONS(3),
  },
  [2901] = {
    [sym_identifier] = ACTIONS(4716),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4718),
    [anon_sym_DOT] = ACTIONS(4718),
    [anon_sym_SEMI] = ACTIONS(4718),
    [anon_sym_TILDE] = ACTIONS(4718),
    [anon_sym_AT] = ACTIONS(4718),
    [sym_bool] = ACTIONS(4716),
    [sym_byte] = ACTIONS(4716),
    [sym_ubyte] = ACTIONS(4716),
    [sym_char] = ACTIONS(4716),
    [sym_short] = ACTIONS(4716),
    [sym_ushort] = ACTIONS(4716),
    [sym_int] = ACTIONS(4716),
    [sym_uint] = ACTIONS(4716),
    [sym_long] = ACTIONS(4716),
    [sym_ulong] = ACTIONS(4716),
    [sym_cent] = ACTIONS(4716),
    [sym_ucent] = ACTIONS(4716),
    [sym_wchar] = ACTIONS(4716),
    [sym_dchar] = ACTIONS(4716),
    [sym_float] = ACTIONS(4716),
    [sym_double] = ACTIONS(4716),
    [sym_real] = ACTIONS(4716),
    [sym_ifloat] = ACTIONS(4716),
    [sym_idouble] = ACTIONS(4716),
    [sym_ireal] = ACTIONS(4716),
    [sym_cfloat] = ACTIONS(4716),
    [sym_cdouble] = ACTIONS(4716),
    [sym_creal] = ACTIONS(4716),
    [sym_size_t] = ACTIONS(4716),
    [sym_ptrdiff_t] = ACTIONS(4716),
    [sym_string] = ACTIONS(4716),
    [sym_cstring] = ACTIONS(4716),
    [sym_dstring] = ACTIONS(4716),
    [sym_wstring] = ACTIONS(4716),
    [sym_noreturn] = ACTIONS(4716),
    [sym_this] = ACTIONS(4716),
    [sym_abstract] = ACTIONS(4716),
    [sym_alias] = ACTIONS(4716),
    [sym_align] = ACTIONS(4716),
    [sym_auto] = ACTIONS(4716),
    [sym_class] = ACTIONS(4716),
    [sym_const] = ACTIONS(4716),
    [sym_debug] = ACTIONS(4716),
    [sym_deprecated] = ACTIONS(4716),
    [sym_else] = ACTIONS(4716),
    [sym_enum] = ACTIONS(4716),
    [sym_export] = ACTIONS(4716),
    [sym_extern] = ACTIONS(4716),
    [sym_final] = ACTIONS(4716),
    [sym_immutable] = ACTIONS(4716),
    [sym_import] = ACTIONS(4716),
    [sym_inout] = ACTIONS(4716),
    [sym_interface] = ACTIONS(4716),
    [sym_invariant] = ACTIONS(4716),
    [sym_mixin] = ACTIONS(4716),
    [sym_nothrow] = ACTIONS(4716),
    [sym_override] = ACTIONS(4716),
    [sym_package] = ACTIONS(4716),
    [sym_pragma] = ACTIONS(4716),
    [sym_private] = ACTIONS(4716),
    [sym_protected] = ACTIONS(4716),
    [sym_public] = ACTIONS(4716),
    [sym_pure] = ACTIONS(4716),
    [sym_ref] = ACTIONS(4716),
    [sym_return] = ACTIONS(4716),
    [sym_scope] = ACTIONS(4716),
    [sym_shared] = ACTIONS(4716),
    [sym_static] = ACTIONS(4716),
    [sym_struct] = ACTIONS(4716),
    [sym_synchronized] = ACTIONS(4716),
    [sym_template] = ACTIONS(4716),
    [sym_typeof] = ACTIONS(4716),
    [sym_union] = ACTIONS(4716),
    [sym_unittest] = ACTIONS(4716),
    [sym_version] = ACTIONS(4716),
    [sym_while] = ACTIONS(4716),
    [sym_gshared] = ACTIONS(4716),
    [sym_traits] = ACTIONS(4716),
    [sym_vector] = ACTIONS(4716),
    [sym_void] = ACTIONS(4716),
    [sym_directive] = ACTIONS(3),
  },
  [2902] = {
    [sym_identifier] = ACTIONS(4289),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4291),
    [anon_sym_DOT] = ACTIONS(4291),
    [anon_sym_SEMI] = ACTIONS(4291),
    [anon_sym_TILDE] = ACTIONS(4291),
    [anon_sym_AT] = ACTIONS(4291),
    [sym_bool] = ACTIONS(4289),
    [sym_byte] = ACTIONS(4289),
    [sym_ubyte] = ACTIONS(4289),
    [sym_char] = ACTIONS(4289),
    [sym_short] = ACTIONS(4289),
    [sym_ushort] = ACTIONS(4289),
    [sym_int] = ACTIONS(4289),
    [sym_uint] = ACTIONS(4289),
    [sym_long] = ACTIONS(4289),
    [sym_ulong] = ACTIONS(4289),
    [sym_cent] = ACTIONS(4289),
    [sym_ucent] = ACTIONS(4289),
    [sym_wchar] = ACTIONS(4289),
    [sym_dchar] = ACTIONS(4289),
    [sym_float] = ACTIONS(4289),
    [sym_double] = ACTIONS(4289),
    [sym_real] = ACTIONS(4289),
    [sym_ifloat] = ACTIONS(4289),
    [sym_idouble] = ACTIONS(4289),
    [sym_ireal] = ACTIONS(4289),
    [sym_cfloat] = ACTIONS(4289),
    [sym_cdouble] = ACTIONS(4289),
    [sym_creal] = ACTIONS(4289),
    [sym_size_t] = ACTIONS(4289),
    [sym_ptrdiff_t] = ACTIONS(4289),
    [sym_string] = ACTIONS(4289),
    [sym_cstring] = ACTIONS(4289),
    [sym_dstring] = ACTIONS(4289),
    [sym_wstring] = ACTIONS(4289),
    [sym_noreturn] = ACTIONS(4289),
    [sym_this] = ACTIONS(4289),
    [sym_abstract] = ACTIONS(4289),
    [sym_alias] = ACTIONS(4289),
    [sym_align] = ACTIONS(4289),
    [sym_auto] = ACTIONS(4289),
    [sym_class] = ACTIONS(4289),
    [sym_const] = ACTIONS(4289),
    [sym_debug] = ACTIONS(4289),
    [sym_deprecated] = ACTIONS(4289),
    [sym_else] = ACTIONS(4289),
    [sym_enum] = ACTIONS(4289),
    [sym_export] = ACTIONS(4289),
    [sym_extern] = ACTIONS(4289),
    [sym_final] = ACTIONS(4289),
    [sym_immutable] = ACTIONS(4289),
    [sym_import] = ACTIONS(4289),
    [sym_inout] = ACTIONS(4289),
    [sym_interface] = ACTIONS(4289),
    [sym_invariant] = ACTIONS(4289),
    [sym_mixin] = ACTIONS(4289),
    [sym_nothrow] = ACTIONS(4289),
    [sym_override] = ACTIONS(4289),
    [sym_package] = ACTIONS(4289),
    [sym_pragma] = ACTIONS(4289),
    [sym_private] = ACTIONS(4289),
    [sym_protected] = ACTIONS(4289),
    [sym_public] = ACTIONS(4289),
    [sym_pure] = ACTIONS(4289),
    [sym_ref] = ACTIONS(4289),
    [sym_return] = ACTIONS(4289),
    [sym_scope] = ACTIONS(4289),
    [sym_shared] = ACTIONS(4289),
    [sym_static] = ACTIONS(4289),
    [sym_struct] = ACTIONS(4289),
    [sym_synchronized] = ACTIONS(4289),
    [sym_template] = ACTIONS(4289),
    [sym_typeof] = ACTIONS(4289),
    [sym_union] = ACTIONS(4289),
    [sym_unittest] = ACTIONS(4289),
    [sym_version] = ACTIONS(4289),
    [sym_while] = ACTIONS(4289),
    [sym_gshared] = ACTIONS(4289),
    [sym_traits] = ACTIONS(4289),
    [sym_vector] = ACTIONS(4289),
    [sym_void] = ACTIONS(4289),
    [sym_directive] = ACTIONS(3),
  },
  [2903] = {
    [sym_identifier] = ACTIONS(4690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4692),
    [anon_sym_DOT] = ACTIONS(4692),
    [anon_sym_SEMI] = ACTIONS(4692),
    [anon_sym_TILDE] = ACTIONS(4692),
    [anon_sym_AT] = ACTIONS(4692),
    [sym_bool] = ACTIONS(4690),
    [sym_byte] = ACTIONS(4690),
    [sym_ubyte] = ACTIONS(4690),
    [sym_char] = ACTIONS(4690),
    [sym_short] = ACTIONS(4690),
    [sym_ushort] = ACTIONS(4690),
    [sym_int] = ACTIONS(4690),
    [sym_uint] = ACTIONS(4690),
    [sym_long] = ACTIONS(4690),
    [sym_ulong] = ACTIONS(4690),
    [sym_cent] = ACTIONS(4690),
    [sym_ucent] = ACTIONS(4690),
    [sym_wchar] = ACTIONS(4690),
    [sym_dchar] = ACTIONS(4690),
    [sym_float] = ACTIONS(4690),
    [sym_double] = ACTIONS(4690),
    [sym_real] = ACTIONS(4690),
    [sym_ifloat] = ACTIONS(4690),
    [sym_idouble] = ACTIONS(4690),
    [sym_ireal] = ACTIONS(4690),
    [sym_cfloat] = ACTIONS(4690),
    [sym_cdouble] = ACTIONS(4690),
    [sym_creal] = ACTIONS(4690),
    [sym_size_t] = ACTIONS(4690),
    [sym_ptrdiff_t] = ACTIONS(4690),
    [sym_string] = ACTIONS(4690),
    [sym_cstring] = ACTIONS(4690),
    [sym_dstring] = ACTIONS(4690),
    [sym_wstring] = ACTIONS(4690),
    [sym_noreturn] = ACTIONS(4690),
    [sym_this] = ACTIONS(4690),
    [sym_abstract] = ACTIONS(4690),
    [sym_alias] = ACTIONS(4690),
    [sym_align] = ACTIONS(4690),
    [sym_auto] = ACTIONS(4690),
    [sym_class] = ACTIONS(4690),
    [sym_const] = ACTIONS(4690),
    [sym_debug] = ACTIONS(4690),
    [sym_deprecated] = ACTIONS(4690),
    [sym_else] = ACTIONS(4690),
    [sym_enum] = ACTIONS(4690),
    [sym_export] = ACTIONS(4690),
    [sym_extern] = ACTIONS(4690),
    [sym_final] = ACTIONS(4690),
    [sym_immutable] = ACTIONS(4690),
    [sym_import] = ACTIONS(4690),
    [sym_inout] = ACTIONS(4690),
    [sym_interface] = ACTIONS(4690),
    [sym_invariant] = ACTIONS(4690),
    [sym_mixin] = ACTIONS(4690),
    [sym_nothrow] = ACTIONS(4690),
    [sym_override] = ACTIONS(4690),
    [sym_package] = ACTIONS(4690),
    [sym_pragma] = ACTIONS(4690),
    [sym_private] = ACTIONS(4690),
    [sym_protected] = ACTIONS(4690),
    [sym_public] = ACTIONS(4690),
    [sym_pure] = ACTIONS(4690),
    [sym_ref] = ACTIONS(4690),
    [sym_return] = ACTIONS(4690),
    [sym_scope] = ACTIONS(4690),
    [sym_shared] = ACTIONS(4690),
    [sym_static] = ACTIONS(4690),
    [sym_struct] = ACTIONS(4690),
    [sym_synchronized] = ACTIONS(4690),
    [sym_template] = ACTIONS(4690),
    [sym_typeof] = ACTIONS(4690),
    [sym_union] = ACTIONS(4690),
    [sym_unittest] = ACTIONS(4690),
    [sym_version] = ACTIONS(4690),
    [sym_while] = ACTIONS(4690),
    [sym_gshared] = ACTIONS(4690),
    [sym_traits] = ACTIONS(4690),
    [sym_vector] = ACTIONS(4690),
    [sym_void] = ACTIONS(4690),
    [sym_directive] = ACTIONS(3),
  },
  [2904] = {
    [sym_identifier] = ACTIONS(4624),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4626),
    [anon_sym_DOT] = ACTIONS(4626),
    [anon_sym_SEMI] = ACTIONS(4626),
    [anon_sym_TILDE] = ACTIONS(4626),
    [anon_sym_AT] = ACTIONS(4626),
    [sym_bool] = ACTIONS(4624),
    [sym_byte] = ACTIONS(4624),
    [sym_ubyte] = ACTIONS(4624),
    [sym_char] = ACTIONS(4624),
    [sym_short] = ACTIONS(4624),
    [sym_ushort] = ACTIONS(4624),
    [sym_int] = ACTIONS(4624),
    [sym_uint] = ACTIONS(4624),
    [sym_long] = ACTIONS(4624),
    [sym_ulong] = ACTIONS(4624),
    [sym_cent] = ACTIONS(4624),
    [sym_ucent] = ACTIONS(4624),
    [sym_wchar] = ACTIONS(4624),
    [sym_dchar] = ACTIONS(4624),
    [sym_float] = ACTIONS(4624),
    [sym_double] = ACTIONS(4624),
    [sym_real] = ACTIONS(4624),
    [sym_ifloat] = ACTIONS(4624),
    [sym_idouble] = ACTIONS(4624),
    [sym_ireal] = ACTIONS(4624),
    [sym_cfloat] = ACTIONS(4624),
    [sym_cdouble] = ACTIONS(4624),
    [sym_creal] = ACTIONS(4624),
    [sym_size_t] = ACTIONS(4624),
    [sym_ptrdiff_t] = ACTIONS(4624),
    [sym_string] = ACTIONS(4624),
    [sym_cstring] = ACTIONS(4624),
    [sym_dstring] = ACTIONS(4624),
    [sym_wstring] = ACTIONS(4624),
    [sym_noreturn] = ACTIONS(4624),
    [sym_this] = ACTIONS(4624),
    [sym_abstract] = ACTIONS(4624),
    [sym_alias] = ACTIONS(4624),
    [sym_align] = ACTIONS(4624),
    [sym_auto] = ACTIONS(4624),
    [sym_class] = ACTIONS(4624),
    [sym_const] = ACTIONS(4624),
    [sym_debug] = ACTIONS(4624),
    [sym_deprecated] = ACTIONS(4624),
    [sym_else] = ACTIONS(4624),
    [sym_enum] = ACTIONS(4624),
    [sym_export] = ACTIONS(4624),
    [sym_extern] = ACTIONS(4624),
    [sym_final] = ACTIONS(4624),
    [sym_immutable] = ACTIONS(4624),
    [sym_import] = ACTIONS(4624),
    [sym_inout] = ACTIONS(4624),
    [sym_interface] = ACTIONS(4624),
    [sym_invariant] = ACTIONS(4624),
    [sym_mixin] = ACTIONS(4624),
    [sym_nothrow] = ACTIONS(4624),
    [sym_override] = ACTIONS(4624),
    [sym_package] = ACTIONS(4624),
    [sym_pragma] = ACTIONS(4624),
    [sym_private] = ACTIONS(4624),
    [sym_protected] = ACTIONS(4624),
    [sym_public] = ACTIONS(4624),
    [sym_pure] = ACTIONS(4624),
    [sym_ref] = ACTIONS(4624),
    [sym_return] = ACTIONS(4624),
    [sym_scope] = ACTIONS(4624),
    [sym_shared] = ACTIONS(4624),
    [sym_static] = ACTIONS(4624),
    [sym_struct] = ACTIONS(4624),
    [sym_synchronized] = ACTIONS(4624),
    [sym_template] = ACTIONS(4624),
    [sym_typeof] = ACTIONS(4624),
    [sym_union] = ACTIONS(4624),
    [sym_unittest] = ACTIONS(4624),
    [sym_version] = ACTIONS(4624),
    [sym_while] = ACTIONS(4624),
    [sym_gshared] = ACTIONS(4624),
    [sym_traits] = ACTIONS(4624),
    [sym_vector] = ACTIONS(4624),
    [sym_void] = ACTIONS(4624),
    [sym_directive] = ACTIONS(3),
  },
  [2905] = {
    [sym_identifier] = ACTIONS(6813),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6806),
    [anon_sym_DOT] = ACTIONS(6806),
    [anon_sym_LPAREN] = ACTIONS(6811),
    [anon_sym_COLON] = ACTIONS(6806),
    [anon_sym_TILDE] = ACTIONS(6806),
    [anon_sym_AT] = ACTIONS(6806),
    [sym_bool] = ACTIONS(6813),
    [sym_byte] = ACTIONS(6813),
    [sym_ubyte] = ACTIONS(6813),
    [sym_char] = ACTIONS(6813),
    [sym_short] = ACTIONS(6813),
    [sym_ushort] = ACTIONS(6813),
    [sym_int] = ACTIONS(6813),
    [sym_uint] = ACTIONS(6813),
    [sym_long] = ACTIONS(6813),
    [sym_ulong] = ACTIONS(6813),
    [sym_cent] = ACTIONS(6813),
    [sym_ucent] = ACTIONS(6813),
    [sym_wchar] = ACTIONS(6813),
    [sym_dchar] = ACTIONS(6813),
    [sym_float] = ACTIONS(6813),
    [sym_double] = ACTIONS(6813),
    [sym_real] = ACTIONS(6813),
    [sym_ifloat] = ACTIONS(6813),
    [sym_idouble] = ACTIONS(6813),
    [sym_ireal] = ACTIONS(6813),
    [sym_cfloat] = ACTIONS(6813),
    [sym_cdouble] = ACTIONS(6813),
    [sym_creal] = ACTIONS(6813),
    [sym_size_t] = ACTIONS(6813),
    [sym_ptrdiff_t] = ACTIONS(6813),
    [sym_string] = ACTIONS(6813),
    [sym_cstring] = ACTIONS(6813),
    [sym_dstring] = ACTIONS(6813),
    [sym_wstring] = ACTIONS(6813),
    [sym_noreturn] = ACTIONS(6813),
    [sym_this] = ACTIONS(6813),
    [sym_abstract] = ACTIONS(6813),
    [sym_alias] = ACTIONS(6813),
    [sym_align] = ACTIONS(6813),
    [sym_auto] = ACTIONS(6813),
    [sym_class] = ACTIONS(6813),
    [sym_const] = ACTIONS(6813),
    [sym_debug] = ACTIONS(6813),
    [sym_deprecated] = ACTIONS(6813),
    [sym_enum] = ACTIONS(6813),
    [sym_export] = ACTIONS(6813),
    [sym_extern] = ACTIONS(6813),
    [sym_final] = ACTIONS(6813),
    [sym_immutable] = ACTIONS(6813),
    [sym_import] = ACTIONS(6813),
    [sym_inout] = ACTIONS(6813),
    [sym_interface] = ACTIONS(6813),
    [sym_invariant] = ACTIONS(6813),
    [sym_mixin] = ACTIONS(6813),
    [sym_module] = ACTIONS(6813),
    [sym_nothrow] = ACTIONS(6813),
    [sym_override] = ACTIONS(6813),
    [sym_package] = ACTIONS(6813),
    [sym_pragma] = ACTIONS(6813),
    [sym_private] = ACTIONS(6813),
    [sym_protected] = ACTIONS(6813),
    [sym_public] = ACTIONS(6813),
    [sym_pure] = ACTIONS(6813),
    [sym_ref] = ACTIONS(6813),
    [sym_return] = ACTIONS(6813),
    [sym_scope] = ACTIONS(6813),
    [sym_shared] = ACTIONS(6813),
    [sym_static] = ACTIONS(6813),
    [sym_struct] = ACTIONS(6813),
    [sym_synchronized] = ACTIONS(6813),
    [sym_template] = ACTIONS(6813),
    [sym_typeof] = ACTIONS(6813),
    [sym_union] = ACTIONS(6813),
    [sym_unittest] = ACTIONS(6813),
    [sym_version] = ACTIONS(6813),
    [sym_gshared] = ACTIONS(6813),
    [sym_traits] = ACTIONS(6813),
    [sym_vector] = ACTIONS(6813),
    [sym_void] = ACTIONS(6813),
    [sym_directive] = ACTIONS(3),
  },
  [2906] = {
    [sym_identifier] = ACTIONS(4658),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4660),
    [anon_sym_DOT] = ACTIONS(4660),
    [anon_sym_SEMI] = ACTIONS(4660),
    [anon_sym_TILDE] = ACTIONS(4660),
    [anon_sym_AT] = ACTIONS(4660),
    [sym_bool] = ACTIONS(4658),
    [sym_byte] = ACTIONS(4658),
    [sym_ubyte] = ACTIONS(4658),
    [sym_char] = ACTIONS(4658),
    [sym_short] = ACTIONS(4658),
    [sym_ushort] = ACTIONS(4658),
    [sym_int] = ACTIONS(4658),
    [sym_uint] = ACTIONS(4658),
    [sym_long] = ACTIONS(4658),
    [sym_ulong] = ACTIONS(4658),
    [sym_cent] = ACTIONS(4658),
    [sym_ucent] = ACTIONS(4658),
    [sym_wchar] = ACTIONS(4658),
    [sym_dchar] = ACTIONS(4658),
    [sym_float] = ACTIONS(4658),
    [sym_double] = ACTIONS(4658),
    [sym_real] = ACTIONS(4658),
    [sym_ifloat] = ACTIONS(4658),
    [sym_idouble] = ACTIONS(4658),
    [sym_ireal] = ACTIONS(4658),
    [sym_cfloat] = ACTIONS(4658),
    [sym_cdouble] = ACTIONS(4658),
    [sym_creal] = ACTIONS(4658),
    [sym_size_t] = ACTIONS(4658),
    [sym_ptrdiff_t] = ACTIONS(4658),
    [sym_string] = ACTIONS(4658),
    [sym_cstring] = ACTIONS(4658),
    [sym_dstring] = ACTIONS(4658),
    [sym_wstring] = ACTIONS(4658),
    [sym_noreturn] = ACTIONS(4658),
    [sym_this] = ACTIONS(4658),
    [sym_abstract] = ACTIONS(4658),
    [sym_alias] = ACTIONS(4658),
    [sym_align] = ACTIONS(4658),
    [sym_auto] = ACTIONS(4658),
    [sym_class] = ACTIONS(4658),
    [sym_const] = ACTIONS(4658),
    [sym_debug] = ACTIONS(4658),
    [sym_deprecated] = ACTIONS(4658),
    [sym_else] = ACTIONS(4658),
    [sym_enum] = ACTIONS(4658),
    [sym_export] = ACTIONS(4658),
    [sym_extern] = ACTIONS(4658),
    [sym_final] = ACTIONS(4658),
    [sym_immutable] = ACTIONS(4658),
    [sym_import] = ACTIONS(4658),
    [sym_inout] = ACTIONS(4658),
    [sym_interface] = ACTIONS(4658),
    [sym_invariant] = ACTIONS(4658),
    [sym_mixin] = ACTIONS(4658),
    [sym_nothrow] = ACTIONS(4658),
    [sym_override] = ACTIONS(4658),
    [sym_package] = ACTIONS(4658),
    [sym_pragma] = ACTIONS(4658),
    [sym_private] = ACTIONS(4658),
    [sym_protected] = ACTIONS(4658),
    [sym_public] = ACTIONS(4658),
    [sym_pure] = ACTIONS(4658),
    [sym_ref] = ACTIONS(4658),
    [sym_return] = ACTIONS(4658),
    [sym_scope] = ACTIONS(4658),
    [sym_shared] = ACTIONS(4658),
    [sym_static] = ACTIONS(4658),
    [sym_struct] = ACTIONS(4658),
    [sym_synchronized] = ACTIONS(4658),
    [sym_template] = ACTIONS(4658),
    [sym_typeof] = ACTIONS(4658),
    [sym_union] = ACTIONS(4658),
    [sym_unittest] = ACTIONS(4658),
    [sym_version] = ACTIONS(4658),
    [sym_while] = ACTIONS(4658),
    [sym_gshared] = ACTIONS(4658),
    [sym_traits] = ACTIONS(4658),
    [sym_vector] = ACTIONS(4658),
    [sym_void] = ACTIONS(4658),
    [sym_directive] = ACTIONS(3),
  },
  [2907] = {
    [sym_switch_statement] = STATE(5592),
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_switch] = ACTIONS(1777),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2908] = {
    [sym_identifier] = ACTIONS(4654),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4656),
    [anon_sym_DOT] = ACTIONS(4656),
    [anon_sym_SEMI] = ACTIONS(4656),
    [anon_sym_TILDE] = ACTIONS(4656),
    [anon_sym_AT] = ACTIONS(4656),
    [sym_bool] = ACTIONS(4654),
    [sym_byte] = ACTIONS(4654),
    [sym_ubyte] = ACTIONS(4654),
    [sym_char] = ACTIONS(4654),
    [sym_short] = ACTIONS(4654),
    [sym_ushort] = ACTIONS(4654),
    [sym_int] = ACTIONS(4654),
    [sym_uint] = ACTIONS(4654),
    [sym_long] = ACTIONS(4654),
    [sym_ulong] = ACTIONS(4654),
    [sym_cent] = ACTIONS(4654),
    [sym_ucent] = ACTIONS(4654),
    [sym_wchar] = ACTIONS(4654),
    [sym_dchar] = ACTIONS(4654),
    [sym_float] = ACTIONS(4654),
    [sym_double] = ACTIONS(4654),
    [sym_real] = ACTIONS(4654),
    [sym_ifloat] = ACTIONS(4654),
    [sym_idouble] = ACTIONS(4654),
    [sym_ireal] = ACTIONS(4654),
    [sym_cfloat] = ACTIONS(4654),
    [sym_cdouble] = ACTIONS(4654),
    [sym_creal] = ACTIONS(4654),
    [sym_size_t] = ACTIONS(4654),
    [sym_ptrdiff_t] = ACTIONS(4654),
    [sym_string] = ACTIONS(4654),
    [sym_cstring] = ACTIONS(4654),
    [sym_dstring] = ACTIONS(4654),
    [sym_wstring] = ACTIONS(4654),
    [sym_noreturn] = ACTIONS(4654),
    [sym_this] = ACTIONS(4654),
    [sym_abstract] = ACTIONS(4654),
    [sym_alias] = ACTIONS(4654),
    [sym_align] = ACTIONS(4654),
    [sym_auto] = ACTIONS(4654),
    [sym_class] = ACTIONS(4654),
    [sym_const] = ACTIONS(4654),
    [sym_debug] = ACTIONS(4654),
    [sym_deprecated] = ACTIONS(4654),
    [sym_else] = ACTIONS(4654),
    [sym_enum] = ACTIONS(4654),
    [sym_export] = ACTIONS(4654),
    [sym_extern] = ACTIONS(4654),
    [sym_final] = ACTIONS(4654),
    [sym_immutable] = ACTIONS(4654),
    [sym_import] = ACTIONS(4654),
    [sym_inout] = ACTIONS(4654),
    [sym_interface] = ACTIONS(4654),
    [sym_invariant] = ACTIONS(4654),
    [sym_mixin] = ACTIONS(4654),
    [sym_nothrow] = ACTIONS(4654),
    [sym_override] = ACTIONS(4654),
    [sym_package] = ACTIONS(4654),
    [sym_pragma] = ACTIONS(4654),
    [sym_private] = ACTIONS(4654),
    [sym_protected] = ACTIONS(4654),
    [sym_public] = ACTIONS(4654),
    [sym_pure] = ACTIONS(4654),
    [sym_ref] = ACTIONS(4654),
    [sym_return] = ACTIONS(4654),
    [sym_scope] = ACTIONS(4654),
    [sym_shared] = ACTIONS(4654),
    [sym_static] = ACTIONS(4654),
    [sym_struct] = ACTIONS(4654),
    [sym_synchronized] = ACTIONS(4654),
    [sym_template] = ACTIONS(4654),
    [sym_typeof] = ACTIONS(4654),
    [sym_union] = ACTIONS(4654),
    [sym_unittest] = ACTIONS(4654),
    [sym_version] = ACTIONS(4654),
    [sym_while] = ACTIONS(4654),
    [sym_gshared] = ACTIONS(4654),
    [sym_traits] = ACTIONS(4654),
    [sym_vector] = ACTIONS(4654),
    [sym_void] = ACTIONS(4654),
    [sym_directive] = ACTIONS(3),
  },
  [2909] = {
    [sym_identifier] = ACTIONS(4628),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4630),
    [anon_sym_DOT] = ACTIONS(4630),
    [anon_sym_SEMI] = ACTIONS(4630),
    [anon_sym_TILDE] = ACTIONS(4630),
    [anon_sym_AT] = ACTIONS(4630),
    [sym_bool] = ACTIONS(4628),
    [sym_byte] = ACTIONS(4628),
    [sym_ubyte] = ACTIONS(4628),
    [sym_char] = ACTIONS(4628),
    [sym_short] = ACTIONS(4628),
    [sym_ushort] = ACTIONS(4628),
    [sym_int] = ACTIONS(4628),
    [sym_uint] = ACTIONS(4628),
    [sym_long] = ACTIONS(4628),
    [sym_ulong] = ACTIONS(4628),
    [sym_cent] = ACTIONS(4628),
    [sym_ucent] = ACTIONS(4628),
    [sym_wchar] = ACTIONS(4628),
    [sym_dchar] = ACTIONS(4628),
    [sym_float] = ACTIONS(4628),
    [sym_double] = ACTIONS(4628),
    [sym_real] = ACTIONS(4628),
    [sym_ifloat] = ACTIONS(4628),
    [sym_idouble] = ACTIONS(4628),
    [sym_ireal] = ACTIONS(4628),
    [sym_cfloat] = ACTIONS(4628),
    [sym_cdouble] = ACTIONS(4628),
    [sym_creal] = ACTIONS(4628),
    [sym_size_t] = ACTIONS(4628),
    [sym_ptrdiff_t] = ACTIONS(4628),
    [sym_string] = ACTIONS(4628),
    [sym_cstring] = ACTIONS(4628),
    [sym_dstring] = ACTIONS(4628),
    [sym_wstring] = ACTIONS(4628),
    [sym_noreturn] = ACTIONS(4628),
    [sym_this] = ACTIONS(4628),
    [sym_abstract] = ACTIONS(4628),
    [sym_alias] = ACTIONS(4628),
    [sym_align] = ACTIONS(4628),
    [sym_auto] = ACTIONS(4628),
    [sym_class] = ACTIONS(4628),
    [sym_const] = ACTIONS(4628),
    [sym_debug] = ACTIONS(4628),
    [sym_deprecated] = ACTIONS(4628),
    [sym_else] = ACTIONS(4628),
    [sym_enum] = ACTIONS(4628),
    [sym_export] = ACTIONS(4628),
    [sym_extern] = ACTIONS(4628),
    [sym_final] = ACTIONS(4628),
    [sym_immutable] = ACTIONS(4628),
    [sym_import] = ACTIONS(4628),
    [sym_inout] = ACTIONS(4628),
    [sym_interface] = ACTIONS(4628),
    [sym_invariant] = ACTIONS(4628),
    [sym_mixin] = ACTIONS(4628),
    [sym_nothrow] = ACTIONS(4628),
    [sym_override] = ACTIONS(4628),
    [sym_package] = ACTIONS(4628),
    [sym_pragma] = ACTIONS(4628),
    [sym_private] = ACTIONS(4628),
    [sym_protected] = ACTIONS(4628),
    [sym_public] = ACTIONS(4628),
    [sym_pure] = ACTIONS(4628),
    [sym_ref] = ACTIONS(4628),
    [sym_return] = ACTIONS(4628),
    [sym_scope] = ACTIONS(4628),
    [sym_shared] = ACTIONS(4628),
    [sym_static] = ACTIONS(4628),
    [sym_struct] = ACTIONS(4628),
    [sym_synchronized] = ACTIONS(4628),
    [sym_template] = ACTIONS(4628),
    [sym_typeof] = ACTIONS(4628),
    [sym_union] = ACTIONS(4628),
    [sym_unittest] = ACTIONS(4628),
    [sym_version] = ACTIONS(4628),
    [sym_while] = ACTIONS(4628),
    [sym_gshared] = ACTIONS(4628),
    [sym_traits] = ACTIONS(4628),
    [sym_vector] = ACTIONS(4628),
    [sym_void] = ACTIONS(4628),
    [sym_directive] = ACTIONS(3),
  },
  [2910] = {
    [sym_identifier] = ACTIONS(4636),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4638),
    [anon_sym_DOT] = ACTIONS(4638),
    [anon_sym_SEMI] = ACTIONS(4638),
    [anon_sym_TILDE] = ACTIONS(4638),
    [anon_sym_AT] = ACTIONS(4638),
    [sym_bool] = ACTIONS(4636),
    [sym_byte] = ACTIONS(4636),
    [sym_ubyte] = ACTIONS(4636),
    [sym_char] = ACTIONS(4636),
    [sym_short] = ACTIONS(4636),
    [sym_ushort] = ACTIONS(4636),
    [sym_int] = ACTIONS(4636),
    [sym_uint] = ACTIONS(4636),
    [sym_long] = ACTIONS(4636),
    [sym_ulong] = ACTIONS(4636),
    [sym_cent] = ACTIONS(4636),
    [sym_ucent] = ACTIONS(4636),
    [sym_wchar] = ACTIONS(4636),
    [sym_dchar] = ACTIONS(4636),
    [sym_float] = ACTIONS(4636),
    [sym_double] = ACTIONS(4636),
    [sym_real] = ACTIONS(4636),
    [sym_ifloat] = ACTIONS(4636),
    [sym_idouble] = ACTIONS(4636),
    [sym_ireal] = ACTIONS(4636),
    [sym_cfloat] = ACTIONS(4636),
    [sym_cdouble] = ACTIONS(4636),
    [sym_creal] = ACTIONS(4636),
    [sym_size_t] = ACTIONS(4636),
    [sym_ptrdiff_t] = ACTIONS(4636),
    [sym_string] = ACTIONS(4636),
    [sym_cstring] = ACTIONS(4636),
    [sym_dstring] = ACTIONS(4636),
    [sym_wstring] = ACTIONS(4636),
    [sym_noreturn] = ACTIONS(4636),
    [sym_this] = ACTIONS(4636),
    [sym_abstract] = ACTIONS(4636),
    [sym_alias] = ACTIONS(4636),
    [sym_align] = ACTIONS(4636),
    [sym_auto] = ACTIONS(4636),
    [sym_class] = ACTIONS(4636),
    [sym_const] = ACTIONS(4636),
    [sym_debug] = ACTIONS(4636),
    [sym_deprecated] = ACTIONS(4636),
    [sym_else] = ACTIONS(4636),
    [sym_enum] = ACTIONS(4636),
    [sym_export] = ACTIONS(4636),
    [sym_extern] = ACTIONS(4636),
    [sym_final] = ACTIONS(4636),
    [sym_immutable] = ACTIONS(4636),
    [sym_import] = ACTIONS(4636),
    [sym_inout] = ACTIONS(4636),
    [sym_interface] = ACTIONS(4636),
    [sym_invariant] = ACTIONS(4636),
    [sym_mixin] = ACTIONS(4636),
    [sym_nothrow] = ACTIONS(4636),
    [sym_override] = ACTIONS(4636),
    [sym_package] = ACTIONS(4636),
    [sym_pragma] = ACTIONS(4636),
    [sym_private] = ACTIONS(4636),
    [sym_protected] = ACTIONS(4636),
    [sym_public] = ACTIONS(4636),
    [sym_pure] = ACTIONS(4636),
    [sym_ref] = ACTIONS(4636),
    [sym_return] = ACTIONS(4636),
    [sym_scope] = ACTIONS(4636),
    [sym_shared] = ACTIONS(4636),
    [sym_static] = ACTIONS(4636),
    [sym_struct] = ACTIONS(4636),
    [sym_synchronized] = ACTIONS(4636),
    [sym_template] = ACTIONS(4636),
    [sym_typeof] = ACTIONS(4636),
    [sym_union] = ACTIONS(4636),
    [sym_unittest] = ACTIONS(4636),
    [sym_version] = ACTIONS(4636),
    [sym_while] = ACTIONS(4636),
    [sym_gshared] = ACTIONS(4636),
    [sym_traits] = ACTIONS(4636),
    [sym_vector] = ACTIONS(4636),
    [sym_void] = ACTIONS(4636),
    [sym_directive] = ACTIONS(3),
  },
  [2911] = {
    [sym_identifier] = ACTIONS(4632),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(4634),
    [anon_sym_DOT] = ACTIONS(4634),
    [anon_sym_SEMI] = ACTIONS(4634),
    [anon_sym_TILDE] = ACTIONS(4634),
    [anon_sym_AT] = ACTIONS(4634),
    [sym_bool] = ACTIONS(4632),
    [sym_byte] = ACTIONS(4632),
    [sym_ubyte] = ACTIONS(4632),
    [sym_char] = ACTIONS(4632),
    [sym_short] = ACTIONS(4632),
    [sym_ushort] = ACTIONS(4632),
    [sym_int] = ACTIONS(4632),
    [sym_uint] = ACTIONS(4632),
    [sym_long] = ACTIONS(4632),
    [sym_ulong] = ACTIONS(4632),
    [sym_cent] = ACTIONS(4632),
    [sym_ucent] = ACTIONS(4632),
    [sym_wchar] = ACTIONS(4632),
    [sym_dchar] = ACTIONS(4632),
    [sym_float] = ACTIONS(4632),
    [sym_double] = ACTIONS(4632),
    [sym_real] = ACTIONS(4632),
    [sym_ifloat] = ACTIONS(4632),
    [sym_idouble] = ACTIONS(4632),
    [sym_ireal] = ACTIONS(4632),
    [sym_cfloat] = ACTIONS(4632),
    [sym_cdouble] = ACTIONS(4632),
    [sym_creal] = ACTIONS(4632),
    [sym_size_t] = ACTIONS(4632),
    [sym_ptrdiff_t] = ACTIONS(4632),
    [sym_string] = ACTIONS(4632),
    [sym_cstring] = ACTIONS(4632),
    [sym_dstring] = ACTIONS(4632),
    [sym_wstring] = ACTIONS(4632),
    [sym_noreturn] = ACTIONS(4632),
    [sym_this] = ACTIONS(4632),
    [sym_abstract] = ACTIONS(4632),
    [sym_alias] = ACTIONS(4632),
    [sym_align] = ACTIONS(4632),
    [sym_auto] = ACTIONS(4632),
    [sym_class] = ACTIONS(4632),
    [sym_const] = ACTIONS(4632),
    [sym_debug] = ACTIONS(4632),
    [sym_deprecated] = ACTIONS(4632),
    [sym_else] = ACTIONS(4632),
    [sym_enum] = ACTIONS(4632),
    [sym_export] = ACTIONS(4632),
    [sym_extern] = ACTIONS(4632),
    [sym_final] = ACTIONS(4632),
    [sym_immutable] = ACTIONS(4632),
    [sym_import] = ACTIONS(4632),
    [sym_inout] = ACTIONS(4632),
    [sym_interface] = ACTIONS(4632),
    [sym_invariant] = ACTIONS(4632),
    [sym_mixin] = ACTIONS(4632),
    [sym_nothrow] = ACTIONS(4632),
    [sym_override] = ACTIONS(4632),
    [sym_package] = ACTIONS(4632),
    [sym_pragma] = ACTIONS(4632),
    [sym_private] = ACTIONS(4632),
    [sym_protected] = ACTIONS(4632),
    [sym_public] = ACTIONS(4632),
    [sym_pure] = ACTIONS(4632),
    [sym_ref] = ACTIONS(4632),
    [sym_return] = ACTIONS(4632),
    [sym_scope] = ACTIONS(4632),
    [sym_shared] = ACTIONS(4632),
    [sym_static] = ACTIONS(4632),
    [sym_struct] = ACTIONS(4632),
    [sym_synchronized] = ACTIONS(4632),
    [sym_template] = ACTIONS(4632),
    [sym_typeof] = ACTIONS(4632),
    [sym_union] = ACTIONS(4632),
    [sym_unittest] = ACTIONS(4632),
    [sym_version] = ACTIONS(4632),
    [sym_while] = ACTIONS(4632),
    [sym_gshared] = ACTIONS(4632),
    [sym_traits] = ACTIONS(4632),
    [sym_vector] = ACTIONS(4632),
    [sym_void] = ACTIONS(4632),
    [sym_directive] = ACTIONS(3),
  },
  [2912] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6825),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2913] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6828),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2914] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6830),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2915] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6833),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6835),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2916] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6837),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2917] = {
    [sym_identifier] = ACTIONS(5159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5161),
    [anon_sym_DOT] = ACTIONS(5161),
    [anon_sym_SEMI] = ACTIONS(5161),
    [anon_sym_COLON] = ACTIONS(5161),
    [anon_sym_TILDE] = ACTIONS(5161),
    [anon_sym_AT] = ACTIONS(5161),
    [sym_bool] = ACTIONS(5159),
    [sym_byte] = ACTIONS(5159),
    [sym_ubyte] = ACTIONS(5159),
    [sym_char] = ACTIONS(5159),
    [sym_short] = ACTIONS(5159),
    [sym_ushort] = ACTIONS(5159),
    [sym_int] = ACTIONS(5159),
    [sym_uint] = ACTIONS(5159),
    [sym_long] = ACTIONS(5159),
    [sym_ulong] = ACTIONS(5159),
    [sym_cent] = ACTIONS(5159),
    [sym_ucent] = ACTIONS(5159),
    [sym_wchar] = ACTIONS(5159),
    [sym_dchar] = ACTIONS(5159),
    [sym_float] = ACTIONS(5159),
    [sym_double] = ACTIONS(5159),
    [sym_real] = ACTIONS(5159),
    [sym_ifloat] = ACTIONS(5159),
    [sym_idouble] = ACTIONS(5159),
    [sym_ireal] = ACTIONS(5159),
    [sym_cfloat] = ACTIONS(5159),
    [sym_cdouble] = ACTIONS(5159),
    [sym_creal] = ACTIONS(5159),
    [sym_size_t] = ACTIONS(5159),
    [sym_ptrdiff_t] = ACTIONS(5159),
    [sym_string] = ACTIONS(5159),
    [sym_cstring] = ACTIONS(5159),
    [sym_dstring] = ACTIONS(5159),
    [sym_wstring] = ACTIONS(5159),
    [sym_noreturn] = ACTIONS(5159),
    [sym_this] = ACTIONS(5159),
    [sym_abstract] = ACTIONS(5159),
    [sym_alias] = ACTIONS(5159),
    [sym_align] = ACTIONS(5159),
    [sym_auto] = ACTIONS(5159),
    [sym_class] = ACTIONS(5159),
    [sym_const] = ACTIONS(5159),
    [sym_debug] = ACTIONS(5159),
    [sym_deprecated] = ACTIONS(5159),
    [sym_enum] = ACTIONS(5159),
    [sym_export] = ACTIONS(5159),
    [sym_extern] = ACTIONS(5159),
    [sym_final] = ACTIONS(5159),
    [sym_immutable] = ACTIONS(5159),
    [sym_import] = ACTIONS(5159),
    [sym_inout] = ACTIONS(5159),
    [sym_interface] = ACTIONS(5159),
    [sym_invariant] = ACTIONS(5159),
    [sym_mixin] = ACTIONS(5159),
    [sym_nothrow] = ACTIONS(5159),
    [sym_override] = ACTIONS(5159),
    [sym_package] = ACTIONS(5159),
    [sym_pragma] = ACTIONS(5159),
    [sym_private] = ACTIONS(5159),
    [sym_protected] = ACTIONS(5159),
    [sym_public] = ACTIONS(5159),
    [sym_pure] = ACTIONS(5159),
    [sym_ref] = ACTIONS(5159),
    [sym_return] = ACTIONS(5159),
    [sym_scope] = ACTIONS(5159),
    [sym_shared] = ACTIONS(5159),
    [sym_static] = ACTIONS(5159),
    [sym_struct] = ACTIONS(5159),
    [sym_synchronized] = ACTIONS(5159),
    [sym_template] = ACTIONS(5159),
    [sym_typeof] = ACTIONS(5159),
    [sym_union] = ACTIONS(5159),
    [sym_unittest] = ACTIONS(5159),
    [sym_version] = ACTIONS(5159),
    [sym_gshared] = ACTIONS(5159),
    [sym_traits] = ACTIONS(5159),
    [sym_vector] = ACTIONS(5159),
    [sym_void] = ACTIONS(5159),
    [sym_directive] = ACTIONS(3),
  },
  [2918] = {
    [sym_identifier] = ACTIONS(2960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(686),
    [anon_sym_LPAREN] = ACTIONS(6839),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(686),
    [sym_bool] = ACTIONS(2960),
    [sym_byte] = ACTIONS(2960),
    [sym_ubyte] = ACTIONS(2960),
    [sym_char] = ACTIONS(2960),
    [sym_short] = ACTIONS(2960),
    [sym_ushort] = ACTIONS(2960),
    [sym_int] = ACTIONS(2960),
    [sym_uint] = ACTIONS(2960),
    [sym_long] = ACTIONS(2960),
    [sym_ulong] = ACTIONS(2960),
    [sym_cent] = ACTIONS(2960),
    [sym_ucent] = ACTIONS(2960),
    [sym_wchar] = ACTIONS(2960),
    [sym_dchar] = ACTIONS(2960),
    [sym_float] = ACTIONS(2960),
    [sym_double] = ACTIONS(2960),
    [sym_real] = ACTIONS(2960),
    [sym_ifloat] = ACTIONS(2960),
    [sym_idouble] = ACTIONS(2960),
    [sym_ireal] = ACTIONS(2960),
    [sym_cfloat] = ACTIONS(2960),
    [sym_cdouble] = ACTIONS(2960),
    [sym_creal] = ACTIONS(2960),
    [sym_size_t] = ACTIONS(2960),
    [sym_ptrdiff_t] = ACTIONS(2960),
    [sym_string] = ACTIONS(2960),
    [sym_cstring] = ACTIONS(2960),
    [sym_dstring] = ACTIONS(2960),
    [sym_wstring] = ACTIONS(2960),
    [sym_noreturn] = ACTIONS(2960),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(2960),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(2960),
    [sym_auto] = ACTIONS(2960),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(2960),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(2960),
    [sym_enum] = ACTIONS(2960),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(2960),
    [sym_final] = ACTIONS(2960),
    [sym_immutable] = ACTIONS(2960),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(2960),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(2960),
    [sym_nothrow] = ACTIONS(2960),
    [sym_override] = ACTIONS(2960),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(2960),
    [sym_ref] = ACTIONS(2960),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(2960),
    [sym_shared] = ACTIONS(2960),
    [sym_static] = ACTIONS(2960),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(2960),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(2960),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(2960),
    [sym_traits] = ACTIONS(2960),
    [sym_vector] = ACTIONS(2960),
    [sym_void] = ACTIONS(2960),
    [sym_directive] = ACTIONS(3),
  },
  [2919] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6841),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6843),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2920] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6845),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6849),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_module] = ACTIONS(6853),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2921] = {
    [ts_builtin_sym_end] = ACTIONS(6855),
    [sym_identifier] = ACTIONS(6857),
    [sym_end_file] = ACTIONS(6857),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(6855),
    [anon_sym_SEMI] = ACTIONS(6855),
    [anon_sym_TILDE] = ACTIONS(6855),
    [anon_sym_AT] = ACTIONS(6855),
    [sym_bool] = ACTIONS(6857),
    [sym_byte] = ACTIONS(6857),
    [sym_ubyte] = ACTIONS(6857),
    [sym_char] = ACTIONS(6857),
    [sym_short] = ACTIONS(6857),
    [sym_ushort] = ACTIONS(6857),
    [sym_int] = ACTIONS(6857),
    [sym_uint] = ACTIONS(6857),
    [sym_long] = ACTIONS(6857),
    [sym_ulong] = ACTIONS(6857),
    [sym_cent] = ACTIONS(6857),
    [sym_ucent] = ACTIONS(6857),
    [sym_wchar] = ACTIONS(6857),
    [sym_dchar] = ACTIONS(6857),
    [sym_float] = ACTIONS(6857),
    [sym_double] = ACTIONS(6857),
    [sym_real] = ACTIONS(6857),
    [sym_ifloat] = ACTIONS(6857),
    [sym_idouble] = ACTIONS(6857),
    [sym_ireal] = ACTIONS(6857),
    [sym_cfloat] = ACTIONS(6857),
    [sym_cdouble] = ACTIONS(6857),
    [sym_creal] = ACTIONS(6857),
    [sym_size_t] = ACTIONS(6857),
    [sym_ptrdiff_t] = ACTIONS(6857),
    [sym_string] = ACTIONS(6857),
    [sym_cstring] = ACTIONS(6857),
    [sym_dstring] = ACTIONS(6857),
    [sym_wstring] = ACTIONS(6857),
    [sym_noreturn] = ACTIONS(6857),
    [sym_this] = ACTIONS(6857),
    [sym_abstract] = ACTIONS(6857),
    [sym_alias] = ACTIONS(6857),
    [sym_align] = ACTIONS(6857),
    [sym_auto] = ACTIONS(6857),
    [sym_class] = ACTIONS(6857),
    [sym_const] = ACTIONS(6857),
    [sym_debug] = ACTIONS(6857),
    [sym_deprecated] = ACTIONS(6857),
    [sym_enum] = ACTIONS(6857),
    [sym_export] = ACTIONS(6857),
    [sym_extern] = ACTIONS(6857),
    [sym_final] = ACTIONS(6857),
    [sym_immutable] = ACTIONS(6857),
    [sym_import] = ACTIONS(6857),
    [sym_inout] = ACTIONS(6857),
    [sym_interface] = ACTIONS(6857),
    [sym_invariant] = ACTIONS(6857),
    [sym_mixin] = ACTIONS(6857),
    [sym_nothrow] = ACTIONS(6857),
    [sym_override] = ACTIONS(6857),
    [sym_package] = ACTIONS(6857),
    [sym_pragma] = ACTIONS(6857),
    [sym_private] = ACTIONS(6857),
    [sym_protected] = ACTIONS(6857),
    [sym_public] = ACTIONS(6857),
    [sym_pure] = ACTIONS(6857),
    [sym_ref] = ACTIONS(6857),
    [sym_return] = ACTIONS(6857),
    [sym_scope] = ACTIONS(6857),
    [sym_shared] = ACTIONS(6857),
    [sym_static] = ACTIONS(6857),
    [sym_struct] = ACTIONS(6857),
    [sym_synchronized] = ACTIONS(6857),
    [sym_template] = ACTIONS(6857),
    [sym_typeof] = ACTIONS(6857),
    [sym_union] = ACTIONS(6857),
    [sym_unittest] = ACTIONS(6857),
    [sym_version] = ACTIONS(6857),
    [sym_gshared] = ACTIONS(6857),
    [sym_traits] = ACTIONS(6857),
    [sym_vector] = ACTIONS(6857),
    [sym_void] = ACTIONS(6857),
    [sym_directive] = ACTIONS(3),
  },
  [2922] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6859),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2923] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6862),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2924] = {
    [sym_identifier] = ACTIONS(5151),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5153),
    [anon_sym_DOT] = ACTIONS(5153),
    [anon_sym_SEMI] = ACTIONS(5153),
    [anon_sym_COLON] = ACTIONS(5153),
    [anon_sym_TILDE] = ACTIONS(5153),
    [anon_sym_AT] = ACTIONS(5153),
    [sym_bool] = ACTIONS(5151),
    [sym_byte] = ACTIONS(5151),
    [sym_ubyte] = ACTIONS(5151),
    [sym_char] = ACTIONS(5151),
    [sym_short] = ACTIONS(5151),
    [sym_ushort] = ACTIONS(5151),
    [sym_int] = ACTIONS(5151),
    [sym_uint] = ACTIONS(5151),
    [sym_long] = ACTIONS(5151),
    [sym_ulong] = ACTIONS(5151),
    [sym_cent] = ACTIONS(5151),
    [sym_ucent] = ACTIONS(5151),
    [sym_wchar] = ACTIONS(5151),
    [sym_dchar] = ACTIONS(5151),
    [sym_float] = ACTIONS(5151),
    [sym_double] = ACTIONS(5151),
    [sym_real] = ACTIONS(5151),
    [sym_ifloat] = ACTIONS(5151),
    [sym_idouble] = ACTIONS(5151),
    [sym_ireal] = ACTIONS(5151),
    [sym_cfloat] = ACTIONS(5151),
    [sym_cdouble] = ACTIONS(5151),
    [sym_creal] = ACTIONS(5151),
    [sym_size_t] = ACTIONS(5151),
    [sym_ptrdiff_t] = ACTIONS(5151),
    [sym_string] = ACTIONS(5151),
    [sym_cstring] = ACTIONS(5151),
    [sym_dstring] = ACTIONS(5151),
    [sym_wstring] = ACTIONS(5151),
    [sym_noreturn] = ACTIONS(5151),
    [sym_this] = ACTIONS(5151),
    [sym_abstract] = ACTIONS(5151),
    [sym_alias] = ACTIONS(5151),
    [sym_align] = ACTIONS(5151),
    [sym_auto] = ACTIONS(5151),
    [sym_class] = ACTIONS(5151),
    [sym_const] = ACTIONS(5151),
    [sym_debug] = ACTIONS(5151),
    [sym_deprecated] = ACTIONS(5151),
    [sym_enum] = ACTIONS(5151),
    [sym_export] = ACTIONS(5151),
    [sym_extern] = ACTIONS(5151),
    [sym_final] = ACTIONS(5151),
    [sym_immutable] = ACTIONS(5151),
    [sym_import] = ACTIONS(5151),
    [sym_inout] = ACTIONS(5151),
    [sym_interface] = ACTIONS(5151),
    [sym_invariant] = ACTIONS(5151),
    [sym_mixin] = ACTIONS(5151),
    [sym_nothrow] = ACTIONS(5151),
    [sym_override] = ACTIONS(5151),
    [sym_package] = ACTIONS(5151),
    [sym_pragma] = ACTIONS(5151),
    [sym_private] = ACTIONS(5151),
    [sym_protected] = ACTIONS(5151),
    [sym_public] = ACTIONS(5151),
    [sym_pure] = ACTIONS(5151),
    [sym_ref] = ACTIONS(5151),
    [sym_return] = ACTIONS(5151),
    [sym_scope] = ACTIONS(5151),
    [sym_shared] = ACTIONS(5151),
    [sym_static] = ACTIONS(5151),
    [sym_struct] = ACTIONS(5151),
    [sym_synchronized] = ACTIONS(5151),
    [sym_template] = ACTIONS(5151),
    [sym_typeof] = ACTIONS(5151),
    [sym_union] = ACTIONS(5151),
    [sym_unittest] = ACTIONS(5151),
    [sym_version] = ACTIONS(5151),
    [sym_gshared] = ACTIONS(5151),
    [sym_traits] = ACTIONS(5151),
    [sym_vector] = ACTIONS(5151),
    [sym_void] = ACTIONS(5151),
    [sym_directive] = ACTIONS(3),
  },
  [2925] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6864),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2926] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6867),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2927] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6869),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2928] = {
    [sym_identifier] = ACTIONS(5143),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5145),
    [anon_sym_DOT] = ACTIONS(5145),
    [anon_sym_SEMI] = ACTIONS(5145),
    [anon_sym_COLON] = ACTIONS(5145),
    [anon_sym_TILDE] = ACTIONS(5145),
    [anon_sym_AT] = ACTIONS(5145),
    [sym_bool] = ACTIONS(5143),
    [sym_byte] = ACTIONS(5143),
    [sym_ubyte] = ACTIONS(5143),
    [sym_char] = ACTIONS(5143),
    [sym_short] = ACTIONS(5143),
    [sym_ushort] = ACTIONS(5143),
    [sym_int] = ACTIONS(5143),
    [sym_uint] = ACTIONS(5143),
    [sym_long] = ACTIONS(5143),
    [sym_ulong] = ACTIONS(5143),
    [sym_cent] = ACTIONS(5143),
    [sym_ucent] = ACTIONS(5143),
    [sym_wchar] = ACTIONS(5143),
    [sym_dchar] = ACTIONS(5143),
    [sym_float] = ACTIONS(5143),
    [sym_double] = ACTIONS(5143),
    [sym_real] = ACTIONS(5143),
    [sym_ifloat] = ACTIONS(5143),
    [sym_idouble] = ACTIONS(5143),
    [sym_ireal] = ACTIONS(5143),
    [sym_cfloat] = ACTIONS(5143),
    [sym_cdouble] = ACTIONS(5143),
    [sym_creal] = ACTIONS(5143),
    [sym_size_t] = ACTIONS(5143),
    [sym_ptrdiff_t] = ACTIONS(5143),
    [sym_string] = ACTIONS(5143),
    [sym_cstring] = ACTIONS(5143),
    [sym_dstring] = ACTIONS(5143),
    [sym_wstring] = ACTIONS(5143),
    [sym_noreturn] = ACTIONS(5143),
    [sym_this] = ACTIONS(5143),
    [sym_abstract] = ACTIONS(5143),
    [sym_alias] = ACTIONS(5143),
    [sym_align] = ACTIONS(5143),
    [sym_auto] = ACTIONS(5143),
    [sym_class] = ACTIONS(5143),
    [sym_const] = ACTIONS(5143),
    [sym_debug] = ACTIONS(5143),
    [sym_deprecated] = ACTIONS(5143),
    [sym_enum] = ACTIONS(5143),
    [sym_export] = ACTIONS(5143),
    [sym_extern] = ACTIONS(5143),
    [sym_final] = ACTIONS(5143),
    [sym_immutable] = ACTIONS(5143),
    [sym_import] = ACTIONS(5143),
    [sym_inout] = ACTIONS(5143),
    [sym_interface] = ACTIONS(5143),
    [sym_invariant] = ACTIONS(5143),
    [sym_mixin] = ACTIONS(5143),
    [sym_nothrow] = ACTIONS(5143),
    [sym_override] = ACTIONS(5143),
    [sym_package] = ACTIONS(5143),
    [sym_pragma] = ACTIONS(5143),
    [sym_private] = ACTIONS(5143),
    [sym_protected] = ACTIONS(5143),
    [sym_public] = ACTIONS(5143),
    [sym_pure] = ACTIONS(5143),
    [sym_ref] = ACTIONS(5143),
    [sym_return] = ACTIONS(5143),
    [sym_scope] = ACTIONS(5143),
    [sym_shared] = ACTIONS(5143),
    [sym_static] = ACTIONS(5143),
    [sym_struct] = ACTIONS(5143),
    [sym_synchronized] = ACTIONS(5143),
    [sym_template] = ACTIONS(5143),
    [sym_typeof] = ACTIONS(5143),
    [sym_union] = ACTIONS(5143),
    [sym_unittest] = ACTIONS(5143),
    [sym_version] = ACTIONS(5143),
    [sym_gshared] = ACTIONS(5143),
    [sym_traits] = ACTIONS(5143),
    [sym_vector] = ACTIONS(5143),
    [sym_void] = ACTIONS(5143),
    [sym_directive] = ACTIONS(3),
  },
  [2929] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6871),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2930] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6874),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2931] = {
    [sym_identifier] = ACTIONS(6877),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6881),
    [anon_sym_LPAREN] = ACTIONS(6885),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6877),
    [sym_byte] = ACTIONS(6877),
    [sym_ubyte] = ACTIONS(6877),
    [sym_char] = ACTIONS(6877),
    [sym_short] = ACTIONS(6877),
    [sym_ushort] = ACTIONS(6877),
    [sym_int] = ACTIONS(6877),
    [sym_uint] = ACTIONS(6877),
    [sym_long] = ACTIONS(6877),
    [sym_ulong] = ACTIONS(6877),
    [sym_cent] = ACTIONS(6877),
    [sym_ucent] = ACTIONS(6877),
    [sym_wchar] = ACTIONS(6877),
    [sym_dchar] = ACTIONS(6877),
    [sym_float] = ACTIONS(6877),
    [sym_double] = ACTIONS(6877),
    [sym_real] = ACTIONS(6877),
    [sym_ifloat] = ACTIONS(6877),
    [sym_idouble] = ACTIONS(6877),
    [sym_ireal] = ACTIONS(6877),
    [sym_cfloat] = ACTIONS(6877),
    [sym_cdouble] = ACTIONS(6877),
    [sym_creal] = ACTIONS(6877),
    [sym_size_t] = ACTIONS(6877),
    [sym_ptrdiff_t] = ACTIONS(6877),
    [sym_string] = ACTIONS(6877),
    [sym_cstring] = ACTIONS(6877),
    [sym_dstring] = ACTIONS(6877),
    [sym_wstring] = ACTIONS(6877),
    [sym_noreturn] = ACTIONS(6877),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6877),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6877),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6877),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6877),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6877),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6877),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6877),
    [sym_vector] = ACTIONS(6877),
    [sym_void] = ACTIONS(6877),
    [sym_directive] = ACTIONS(3),
  },
  [2932] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6887),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2933] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6889),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2934] = {
    [ts_builtin_sym_end] = ACTIONS(6892),
    [sym_identifier] = ACTIONS(6894),
    [sym_end_file] = ACTIONS(6894),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(6892),
    [anon_sym_SEMI] = ACTIONS(6892),
    [anon_sym_TILDE] = ACTIONS(6892),
    [anon_sym_AT] = ACTIONS(6892),
    [sym_bool] = ACTIONS(6894),
    [sym_byte] = ACTIONS(6894),
    [sym_ubyte] = ACTIONS(6894),
    [sym_char] = ACTIONS(6894),
    [sym_short] = ACTIONS(6894),
    [sym_ushort] = ACTIONS(6894),
    [sym_int] = ACTIONS(6894),
    [sym_uint] = ACTIONS(6894),
    [sym_long] = ACTIONS(6894),
    [sym_ulong] = ACTIONS(6894),
    [sym_cent] = ACTIONS(6894),
    [sym_ucent] = ACTIONS(6894),
    [sym_wchar] = ACTIONS(6894),
    [sym_dchar] = ACTIONS(6894),
    [sym_float] = ACTIONS(6894),
    [sym_double] = ACTIONS(6894),
    [sym_real] = ACTIONS(6894),
    [sym_ifloat] = ACTIONS(6894),
    [sym_idouble] = ACTIONS(6894),
    [sym_ireal] = ACTIONS(6894),
    [sym_cfloat] = ACTIONS(6894),
    [sym_cdouble] = ACTIONS(6894),
    [sym_creal] = ACTIONS(6894),
    [sym_size_t] = ACTIONS(6894),
    [sym_ptrdiff_t] = ACTIONS(6894),
    [sym_string] = ACTIONS(6894),
    [sym_cstring] = ACTIONS(6894),
    [sym_dstring] = ACTIONS(6894),
    [sym_wstring] = ACTIONS(6894),
    [sym_noreturn] = ACTIONS(6894),
    [sym_this] = ACTIONS(6894),
    [sym_abstract] = ACTIONS(6894),
    [sym_alias] = ACTIONS(6894),
    [sym_align] = ACTIONS(6894),
    [sym_auto] = ACTIONS(6894),
    [sym_class] = ACTIONS(6894),
    [sym_const] = ACTIONS(6894),
    [sym_debug] = ACTIONS(6894),
    [sym_deprecated] = ACTIONS(6894),
    [sym_enum] = ACTIONS(6894),
    [sym_export] = ACTIONS(6894),
    [sym_extern] = ACTIONS(6894),
    [sym_final] = ACTIONS(6894),
    [sym_immutable] = ACTIONS(6894),
    [sym_import] = ACTIONS(6894),
    [sym_inout] = ACTIONS(6894),
    [sym_interface] = ACTIONS(6894),
    [sym_invariant] = ACTIONS(6894),
    [sym_mixin] = ACTIONS(6894),
    [sym_nothrow] = ACTIONS(6894),
    [sym_override] = ACTIONS(6894),
    [sym_package] = ACTIONS(6894),
    [sym_pragma] = ACTIONS(6894),
    [sym_private] = ACTIONS(6894),
    [sym_protected] = ACTIONS(6894),
    [sym_public] = ACTIONS(6894),
    [sym_pure] = ACTIONS(6894),
    [sym_ref] = ACTIONS(6894),
    [sym_return] = ACTIONS(6894),
    [sym_scope] = ACTIONS(6894),
    [sym_shared] = ACTIONS(6894),
    [sym_static] = ACTIONS(6894),
    [sym_struct] = ACTIONS(6894),
    [sym_synchronized] = ACTIONS(6894),
    [sym_template] = ACTIONS(6894),
    [sym_typeof] = ACTIONS(6894),
    [sym_union] = ACTIONS(6894),
    [sym_unittest] = ACTIONS(6894),
    [sym_version] = ACTIONS(6894),
    [sym_gshared] = ACTIONS(6894),
    [sym_traits] = ACTIONS(6894),
    [sym_vector] = ACTIONS(6894),
    [sym_void] = ACTIONS(6894),
    [sym_directive] = ACTIONS(3),
  },
  [2935] = {
    [sym_identifier] = ACTIONS(2960),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(686),
    [anon_sym_LPAREN] = ACTIONS(6896),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(686),
    [sym_bool] = ACTIONS(2960),
    [sym_byte] = ACTIONS(2960),
    [sym_ubyte] = ACTIONS(2960),
    [sym_char] = ACTIONS(2960),
    [sym_short] = ACTIONS(2960),
    [sym_ushort] = ACTIONS(2960),
    [sym_int] = ACTIONS(2960),
    [sym_uint] = ACTIONS(2960),
    [sym_long] = ACTIONS(2960),
    [sym_ulong] = ACTIONS(2960),
    [sym_cent] = ACTIONS(2960),
    [sym_ucent] = ACTIONS(2960),
    [sym_wchar] = ACTIONS(2960),
    [sym_dchar] = ACTIONS(2960),
    [sym_float] = ACTIONS(2960),
    [sym_double] = ACTIONS(2960),
    [sym_real] = ACTIONS(2960),
    [sym_ifloat] = ACTIONS(2960),
    [sym_idouble] = ACTIONS(2960),
    [sym_ireal] = ACTIONS(2960),
    [sym_cfloat] = ACTIONS(2960),
    [sym_cdouble] = ACTIONS(2960),
    [sym_creal] = ACTIONS(2960),
    [sym_size_t] = ACTIONS(2960),
    [sym_ptrdiff_t] = ACTIONS(2960),
    [sym_string] = ACTIONS(2960),
    [sym_cstring] = ACTIONS(2960),
    [sym_dstring] = ACTIONS(2960),
    [sym_wstring] = ACTIONS(2960),
    [sym_noreturn] = ACTIONS(2960),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(2960),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(2960),
    [sym_auto] = ACTIONS(2960),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(2960),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(2960),
    [sym_enum] = ACTIONS(2960),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(2960),
    [sym_final] = ACTIONS(2960),
    [sym_immutable] = ACTIONS(2960),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(2960),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(2960),
    [sym_nothrow] = ACTIONS(2960),
    [sym_override] = ACTIONS(2960),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(2960),
    [sym_ref] = ACTIONS(2960),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(2960),
    [sym_shared] = ACTIONS(2960),
    [sym_static] = ACTIONS(2960),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(2960),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(2960),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(2960),
    [sym_traits] = ACTIONS(2960),
    [sym_vector] = ACTIONS(2960),
    [sym_void] = ACTIONS(2960),
    [sym_directive] = ACTIONS(3),
  },
  [2936] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6898),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2937] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6901),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2938] = {
    [sym_identifier] = ACTIONS(5155),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5157),
    [anon_sym_DOT] = ACTIONS(5157),
    [anon_sym_SEMI] = ACTIONS(5157),
    [anon_sym_COLON] = ACTIONS(5157),
    [anon_sym_TILDE] = ACTIONS(5157),
    [anon_sym_AT] = ACTIONS(5157),
    [sym_bool] = ACTIONS(5155),
    [sym_byte] = ACTIONS(5155),
    [sym_ubyte] = ACTIONS(5155),
    [sym_char] = ACTIONS(5155),
    [sym_short] = ACTIONS(5155),
    [sym_ushort] = ACTIONS(5155),
    [sym_int] = ACTIONS(5155),
    [sym_uint] = ACTIONS(5155),
    [sym_long] = ACTIONS(5155),
    [sym_ulong] = ACTIONS(5155),
    [sym_cent] = ACTIONS(5155),
    [sym_ucent] = ACTIONS(5155),
    [sym_wchar] = ACTIONS(5155),
    [sym_dchar] = ACTIONS(5155),
    [sym_float] = ACTIONS(5155),
    [sym_double] = ACTIONS(5155),
    [sym_real] = ACTIONS(5155),
    [sym_ifloat] = ACTIONS(5155),
    [sym_idouble] = ACTIONS(5155),
    [sym_ireal] = ACTIONS(5155),
    [sym_cfloat] = ACTIONS(5155),
    [sym_cdouble] = ACTIONS(5155),
    [sym_creal] = ACTIONS(5155),
    [sym_size_t] = ACTIONS(5155),
    [sym_ptrdiff_t] = ACTIONS(5155),
    [sym_string] = ACTIONS(5155),
    [sym_cstring] = ACTIONS(5155),
    [sym_dstring] = ACTIONS(5155),
    [sym_wstring] = ACTIONS(5155),
    [sym_noreturn] = ACTIONS(5155),
    [sym_this] = ACTIONS(5155),
    [sym_abstract] = ACTIONS(5155),
    [sym_alias] = ACTIONS(5155),
    [sym_align] = ACTIONS(5155),
    [sym_auto] = ACTIONS(5155),
    [sym_class] = ACTIONS(5155),
    [sym_const] = ACTIONS(5155),
    [sym_debug] = ACTIONS(5155),
    [sym_deprecated] = ACTIONS(5155),
    [sym_enum] = ACTIONS(5155),
    [sym_export] = ACTIONS(5155),
    [sym_extern] = ACTIONS(5155),
    [sym_final] = ACTIONS(5155),
    [sym_immutable] = ACTIONS(5155),
    [sym_import] = ACTIONS(5155),
    [sym_inout] = ACTIONS(5155),
    [sym_interface] = ACTIONS(5155),
    [sym_invariant] = ACTIONS(5155),
    [sym_mixin] = ACTIONS(5155),
    [sym_nothrow] = ACTIONS(5155),
    [sym_override] = ACTIONS(5155),
    [sym_package] = ACTIONS(5155),
    [sym_pragma] = ACTIONS(5155),
    [sym_private] = ACTIONS(5155),
    [sym_protected] = ACTIONS(5155),
    [sym_public] = ACTIONS(5155),
    [sym_pure] = ACTIONS(5155),
    [sym_ref] = ACTIONS(5155),
    [sym_return] = ACTIONS(5155),
    [sym_scope] = ACTIONS(5155),
    [sym_shared] = ACTIONS(5155),
    [sym_static] = ACTIONS(5155),
    [sym_struct] = ACTIONS(5155),
    [sym_synchronized] = ACTIONS(5155),
    [sym_template] = ACTIONS(5155),
    [sym_typeof] = ACTIONS(5155),
    [sym_union] = ACTIONS(5155),
    [sym_unittest] = ACTIONS(5155),
    [sym_version] = ACTIONS(5155),
    [sym_gshared] = ACTIONS(5155),
    [sym_traits] = ACTIONS(5155),
    [sym_vector] = ACTIONS(5155),
    [sym_void] = ACTIONS(5155),
    [sym_directive] = ACTIONS(3),
  },
  [2939] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(3060),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2940] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6903),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2941] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6905),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2942] = {
    [ts_builtin_sym_end] = ACTIONS(6908),
    [sym_identifier] = ACTIONS(6910),
    [sym_end_file] = ACTIONS(6910),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(6908),
    [anon_sym_SEMI] = ACTIONS(6908),
    [anon_sym_TILDE] = ACTIONS(6908),
    [anon_sym_AT] = ACTIONS(6908),
    [sym_bool] = ACTIONS(6910),
    [sym_byte] = ACTIONS(6910),
    [sym_ubyte] = ACTIONS(6910),
    [sym_char] = ACTIONS(6910),
    [sym_short] = ACTIONS(6910),
    [sym_ushort] = ACTIONS(6910),
    [sym_int] = ACTIONS(6910),
    [sym_uint] = ACTIONS(6910),
    [sym_long] = ACTIONS(6910),
    [sym_ulong] = ACTIONS(6910),
    [sym_cent] = ACTIONS(6910),
    [sym_ucent] = ACTIONS(6910),
    [sym_wchar] = ACTIONS(6910),
    [sym_dchar] = ACTIONS(6910),
    [sym_float] = ACTIONS(6910),
    [sym_double] = ACTIONS(6910),
    [sym_real] = ACTIONS(6910),
    [sym_ifloat] = ACTIONS(6910),
    [sym_idouble] = ACTIONS(6910),
    [sym_ireal] = ACTIONS(6910),
    [sym_cfloat] = ACTIONS(6910),
    [sym_cdouble] = ACTIONS(6910),
    [sym_creal] = ACTIONS(6910),
    [sym_size_t] = ACTIONS(6910),
    [sym_ptrdiff_t] = ACTIONS(6910),
    [sym_string] = ACTIONS(6910),
    [sym_cstring] = ACTIONS(6910),
    [sym_dstring] = ACTIONS(6910),
    [sym_wstring] = ACTIONS(6910),
    [sym_noreturn] = ACTIONS(6910),
    [sym_this] = ACTIONS(6910),
    [sym_abstract] = ACTIONS(6910),
    [sym_alias] = ACTIONS(6910),
    [sym_align] = ACTIONS(6910),
    [sym_auto] = ACTIONS(6910),
    [sym_class] = ACTIONS(6910),
    [sym_const] = ACTIONS(6910),
    [sym_debug] = ACTIONS(6910),
    [sym_deprecated] = ACTIONS(6910),
    [sym_enum] = ACTIONS(6910),
    [sym_export] = ACTIONS(6910),
    [sym_extern] = ACTIONS(6910),
    [sym_final] = ACTIONS(6910),
    [sym_immutable] = ACTIONS(6910),
    [sym_import] = ACTIONS(6910),
    [sym_inout] = ACTIONS(6910),
    [sym_interface] = ACTIONS(6910),
    [sym_invariant] = ACTIONS(6910),
    [sym_mixin] = ACTIONS(6910),
    [sym_nothrow] = ACTIONS(6910),
    [sym_override] = ACTIONS(6910),
    [sym_package] = ACTIONS(6910),
    [sym_pragma] = ACTIONS(6910),
    [sym_private] = ACTIONS(6910),
    [sym_protected] = ACTIONS(6910),
    [sym_public] = ACTIONS(6910),
    [sym_pure] = ACTIONS(6910),
    [sym_ref] = ACTIONS(6910),
    [sym_return] = ACTIONS(6910),
    [sym_scope] = ACTIONS(6910),
    [sym_shared] = ACTIONS(6910),
    [sym_static] = ACTIONS(6910),
    [sym_struct] = ACTIONS(6910),
    [sym_synchronized] = ACTIONS(6910),
    [sym_template] = ACTIONS(6910),
    [sym_typeof] = ACTIONS(6910),
    [sym_union] = ACTIONS(6910),
    [sym_unittest] = ACTIONS(6910),
    [sym_version] = ACTIONS(6910),
    [sym_gshared] = ACTIONS(6910),
    [sym_traits] = ACTIONS(6910),
    [sym_vector] = ACTIONS(6910),
    [sym_void] = ACTIONS(6910),
    [sym_directive] = ACTIONS(3),
  },
  [2943] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6912),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2944] = {
    [sym_identifier] = ACTIONS(6914),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6916),
    [anon_sym_DOT] = ACTIONS(6916),
    [anon_sym_LPAREN] = ACTIONS(6918),
    [anon_sym_COLON] = ACTIONS(6916),
    [anon_sym_TILDE] = ACTIONS(6916),
    [anon_sym_AT] = ACTIONS(6916),
    [sym_bool] = ACTIONS(6914),
    [sym_byte] = ACTIONS(6914),
    [sym_ubyte] = ACTIONS(6914),
    [sym_char] = ACTIONS(6914),
    [sym_short] = ACTIONS(6914),
    [sym_ushort] = ACTIONS(6914),
    [sym_int] = ACTIONS(6914),
    [sym_uint] = ACTIONS(6914),
    [sym_long] = ACTIONS(6914),
    [sym_ulong] = ACTIONS(6914),
    [sym_cent] = ACTIONS(6914),
    [sym_ucent] = ACTIONS(6914),
    [sym_wchar] = ACTIONS(6914),
    [sym_dchar] = ACTIONS(6914),
    [sym_float] = ACTIONS(6914),
    [sym_double] = ACTIONS(6914),
    [sym_real] = ACTIONS(6914),
    [sym_ifloat] = ACTIONS(6914),
    [sym_idouble] = ACTIONS(6914),
    [sym_ireal] = ACTIONS(6914),
    [sym_cfloat] = ACTIONS(6914),
    [sym_cdouble] = ACTIONS(6914),
    [sym_creal] = ACTIONS(6914),
    [sym_size_t] = ACTIONS(6914),
    [sym_ptrdiff_t] = ACTIONS(6914),
    [sym_string] = ACTIONS(6914),
    [sym_cstring] = ACTIONS(6914),
    [sym_dstring] = ACTIONS(6914),
    [sym_wstring] = ACTIONS(6914),
    [sym_noreturn] = ACTIONS(6914),
    [sym_this] = ACTIONS(6914),
    [sym_abstract] = ACTIONS(6914),
    [sym_alias] = ACTIONS(6914),
    [sym_align] = ACTIONS(6914),
    [sym_auto] = ACTIONS(6914),
    [sym_class] = ACTIONS(6914),
    [sym_const] = ACTIONS(6914),
    [sym_debug] = ACTIONS(6914),
    [sym_deprecated] = ACTIONS(6914),
    [sym_enum] = ACTIONS(6914),
    [sym_export] = ACTIONS(6914),
    [sym_extern] = ACTIONS(6914),
    [sym_final] = ACTIONS(6914),
    [sym_immutable] = ACTIONS(6914),
    [sym_import] = ACTIONS(6914),
    [sym_inout] = ACTIONS(6914),
    [sym_interface] = ACTIONS(6914),
    [sym_invariant] = ACTIONS(6914),
    [sym_mixin] = ACTIONS(6914),
    [sym_nothrow] = ACTIONS(6914),
    [sym_override] = ACTIONS(6914),
    [sym_package] = ACTIONS(6914),
    [sym_pragma] = ACTIONS(6914),
    [sym_private] = ACTIONS(6914),
    [sym_protected] = ACTIONS(6914),
    [sym_public] = ACTIONS(6914),
    [sym_pure] = ACTIONS(6914),
    [sym_ref] = ACTIONS(6914),
    [sym_return] = ACTIONS(6914),
    [sym_scope] = ACTIONS(6914),
    [sym_shared] = ACTIONS(6914),
    [sym_static] = ACTIONS(6914),
    [sym_struct] = ACTIONS(6914),
    [sym_synchronized] = ACTIONS(6914),
    [sym_template] = ACTIONS(6914),
    [sym_typeof] = ACTIONS(6914),
    [sym_union] = ACTIONS(6914),
    [sym_unittest] = ACTIONS(6914),
    [sym_version] = ACTIONS(6914),
    [sym_gshared] = ACTIONS(6914),
    [sym_traits] = ACTIONS(6914),
    [sym_vector] = ACTIONS(6914),
    [sym_void] = ACTIONS(6914),
    [sym_directive] = ACTIONS(3),
  },
  [2945] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6920),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2946] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6923),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2947] = {
    [sym_identifier] = ACTIONS(5147),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5149),
    [anon_sym_DOT] = ACTIONS(5149),
    [anon_sym_SEMI] = ACTIONS(5149),
    [anon_sym_COLON] = ACTIONS(5149),
    [anon_sym_TILDE] = ACTIONS(5149),
    [anon_sym_AT] = ACTIONS(5149),
    [sym_bool] = ACTIONS(5147),
    [sym_byte] = ACTIONS(5147),
    [sym_ubyte] = ACTIONS(5147),
    [sym_char] = ACTIONS(5147),
    [sym_short] = ACTIONS(5147),
    [sym_ushort] = ACTIONS(5147),
    [sym_int] = ACTIONS(5147),
    [sym_uint] = ACTIONS(5147),
    [sym_long] = ACTIONS(5147),
    [sym_ulong] = ACTIONS(5147),
    [sym_cent] = ACTIONS(5147),
    [sym_ucent] = ACTIONS(5147),
    [sym_wchar] = ACTIONS(5147),
    [sym_dchar] = ACTIONS(5147),
    [sym_float] = ACTIONS(5147),
    [sym_double] = ACTIONS(5147),
    [sym_real] = ACTIONS(5147),
    [sym_ifloat] = ACTIONS(5147),
    [sym_idouble] = ACTIONS(5147),
    [sym_ireal] = ACTIONS(5147),
    [sym_cfloat] = ACTIONS(5147),
    [sym_cdouble] = ACTIONS(5147),
    [sym_creal] = ACTIONS(5147),
    [sym_size_t] = ACTIONS(5147),
    [sym_ptrdiff_t] = ACTIONS(5147),
    [sym_string] = ACTIONS(5147),
    [sym_cstring] = ACTIONS(5147),
    [sym_dstring] = ACTIONS(5147),
    [sym_wstring] = ACTIONS(5147),
    [sym_noreturn] = ACTIONS(5147),
    [sym_this] = ACTIONS(5147),
    [sym_abstract] = ACTIONS(5147),
    [sym_alias] = ACTIONS(5147),
    [sym_align] = ACTIONS(5147),
    [sym_auto] = ACTIONS(5147),
    [sym_class] = ACTIONS(5147),
    [sym_const] = ACTIONS(5147),
    [sym_debug] = ACTIONS(5147),
    [sym_deprecated] = ACTIONS(5147),
    [sym_enum] = ACTIONS(5147),
    [sym_export] = ACTIONS(5147),
    [sym_extern] = ACTIONS(5147),
    [sym_final] = ACTIONS(5147),
    [sym_immutable] = ACTIONS(5147),
    [sym_import] = ACTIONS(5147),
    [sym_inout] = ACTIONS(5147),
    [sym_interface] = ACTIONS(5147),
    [sym_invariant] = ACTIONS(5147),
    [sym_mixin] = ACTIONS(5147),
    [sym_nothrow] = ACTIONS(5147),
    [sym_override] = ACTIONS(5147),
    [sym_package] = ACTIONS(5147),
    [sym_pragma] = ACTIONS(5147),
    [sym_private] = ACTIONS(5147),
    [sym_protected] = ACTIONS(5147),
    [sym_public] = ACTIONS(5147),
    [sym_pure] = ACTIONS(5147),
    [sym_ref] = ACTIONS(5147),
    [sym_return] = ACTIONS(5147),
    [sym_scope] = ACTIONS(5147),
    [sym_shared] = ACTIONS(5147),
    [sym_static] = ACTIONS(5147),
    [sym_struct] = ACTIONS(5147),
    [sym_synchronized] = ACTIONS(5147),
    [sym_template] = ACTIONS(5147),
    [sym_typeof] = ACTIONS(5147),
    [sym_union] = ACTIONS(5147),
    [sym_unittest] = ACTIONS(5147),
    [sym_version] = ACTIONS(5147),
    [sym_gshared] = ACTIONS(5147),
    [sym_traits] = ACTIONS(5147),
    [sym_vector] = ACTIONS(5147),
    [sym_void] = ACTIONS(5147),
    [sym_directive] = ACTIONS(3),
  },
  [2948] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6925),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2949] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6928),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2950] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6931),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6933),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2951] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6935),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6937),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2952] = {
    [sym_identifier] = ACTIONS(6939),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6941),
    [anon_sym_DOT] = ACTIONS(6941),
    [anon_sym_COLON] = ACTIONS(6941),
    [anon_sym_TILDE] = ACTIONS(6941),
    [anon_sym_AT] = ACTIONS(6941),
    [sym_bool] = ACTIONS(6939),
    [sym_byte] = ACTIONS(6939),
    [sym_ubyte] = ACTIONS(6939),
    [sym_char] = ACTIONS(6939),
    [sym_short] = ACTIONS(6939),
    [sym_ushort] = ACTIONS(6939),
    [sym_int] = ACTIONS(6939),
    [sym_uint] = ACTIONS(6939),
    [sym_long] = ACTIONS(6939),
    [sym_ulong] = ACTIONS(6939),
    [sym_cent] = ACTIONS(6939),
    [sym_ucent] = ACTIONS(6939),
    [sym_wchar] = ACTIONS(6939),
    [sym_dchar] = ACTIONS(6939),
    [sym_float] = ACTIONS(6939),
    [sym_double] = ACTIONS(6939),
    [sym_real] = ACTIONS(6939),
    [sym_ifloat] = ACTIONS(6939),
    [sym_idouble] = ACTIONS(6939),
    [sym_ireal] = ACTIONS(6939),
    [sym_cfloat] = ACTIONS(6939),
    [sym_cdouble] = ACTIONS(6939),
    [sym_creal] = ACTIONS(6939),
    [sym_size_t] = ACTIONS(6939),
    [sym_ptrdiff_t] = ACTIONS(6939),
    [sym_string] = ACTIONS(6939),
    [sym_cstring] = ACTIONS(6939),
    [sym_dstring] = ACTIONS(6939),
    [sym_wstring] = ACTIONS(6939),
    [sym_noreturn] = ACTIONS(6939),
    [sym_this] = ACTIONS(6939),
    [sym_abstract] = ACTIONS(6939),
    [sym_alias] = ACTIONS(6939),
    [sym_align] = ACTIONS(6939),
    [sym_auto] = ACTIONS(6939),
    [sym_class] = ACTIONS(6939),
    [sym_const] = ACTIONS(6939),
    [sym_debug] = ACTIONS(6939),
    [sym_deprecated] = ACTIONS(6939),
    [sym_enum] = ACTIONS(6939),
    [sym_export] = ACTIONS(6939),
    [sym_extern] = ACTIONS(6939),
    [sym_final] = ACTIONS(6939),
    [sym_immutable] = ACTIONS(6939),
    [sym_import] = ACTIONS(6939),
    [sym_inout] = ACTIONS(6939),
    [sym_interface] = ACTIONS(6939),
    [sym_invariant] = ACTIONS(6939),
    [sym_mixin] = ACTIONS(6939),
    [sym_module] = ACTIONS(6939),
    [sym_nothrow] = ACTIONS(6939),
    [sym_override] = ACTIONS(6939),
    [sym_package] = ACTIONS(6939),
    [sym_pragma] = ACTIONS(6939),
    [sym_private] = ACTIONS(6939),
    [sym_protected] = ACTIONS(6939),
    [sym_public] = ACTIONS(6939),
    [sym_pure] = ACTIONS(6939),
    [sym_ref] = ACTIONS(6939),
    [sym_return] = ACTIONS(6939),
    [sym_scope] = ACTIONS(6939),
    [sym_shared] = ACTIONS(6939),
    [sym_static] = ACTIONS(6939),
    [sym_struct] = ACTIONS(6939),
    [sym_synchronized] = ACTIONS(6939),
    [sym_template] = ACTIONS(6939),
    [sym_typeof] = ACTIONS(6939),
    [sym_union] = ACTIONS(6939),
    [sym_unittest] = ACTIONS(6939),
    [sym_version] = ACTIONS(6939),
    [sym_gshared] = ACTIONS(6939),
    [sym_traits] = ACTIONS(6939),
    [sym_vector] = ACTIONS(6939),
    [sym_void] = ACTIONS(6939),
    [sym_directive] = ACTIONS(3),
  },
  [2953] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6943),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6945),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2954] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6947),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2955] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6839),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2956] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6950),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2957] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6953),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2958] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_LPAREN] = ACTIONS(6955),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2959] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6957),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6959),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2960] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6961),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2961] = {
    [sym_identifier] = ACTIONS(5139),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(5141),
    [anon_sym_DOT] = ACTIONS(5141),
    [anon_sym_SEMI] = ACTIONS(5141),
    [anon_sym_COLON] = ACTIONS(5141),
    [anon_sym_TILDE] = ACTIONS(5141),
    [anon_sym_AT] = ACTIONS(5141),
    [sym_bool] = ACTIONS(5139),
    [sym_byte] = ACTIONS(5139),
    [sym_ubyte] = ACTIONS(5139),
    [sym_char] = ACTIONS(5139),
    [sym_short] = ACTIONS(5139),
    [sym_ushort] = ACTIONS(5139),
    [sym_int] = ACTIONS(5139),
    [sym_uint] = ACTIONS(5139),
    [sym_long] = ACTIONS(5139),
    [sym_ulong] = ACTIONS(5139),
    [sym_cent] = ACTIONS(5139),
    [sym_ucent] = ACTIONS(5139),
    [sym_wchar] = ACTIONS(5139),
    [sym_dchar] = ACTIONS(5139),
    [sym_float] = ACTIONS(5139),
    [sym_double] = ACTIONS(5139),
    [sym_real] = ACTIONS(5139),
    [sym_ifloat] = ACTIONS(5139),
    [sym_idouble] = ACTIONS(5139),
    [sym_ireal] = ACTIONS(5139),
    [sym_cfloat] = ACTIONS(5139),
    [sym_cdouble] = ACTIONS(5139),
    [sym_creal] = ACTIONS(5139),
    [sym_size_t] = ACTIONS(5139),
    [sym_ptrdiff_t] = ACTIONS(5139),
    [sym_string] = ACTIONS(5139),
    [sym_cstring] = ACTIONS(5139),
    [sym_dstring] = ACTIONS(5139),
    [sym_wstring] = ACTIONS(5139),
    [sym_noreturn] = ACTIONS(5139),
    [sym_this] = ACTIONS(5139),
    [sym_abstract] = ACTIONS(5139),
    [sym_alias] = ACTIONS(5139),
    [sym_align] = ACTIONS(5139),
    [sym_auto] = ACTIONS(5139),
    [sym_class] = ACTIONS(5139),
    [sym_const] = ACTIONS(5139),
    [sym_debug] = ACTIONS(5139),
    [sym_deprecated] = ACTIONS(5139),
    [sym_enum] = ACTIONS(5139),
    [sym_export] = ACTIONS(5139),
    [sym_extern] = ACTIONS(5139),
    [sym_final] = ACTIONS(5139),
    [sym_immutable] = ACTIONS(5139),
    [sym_import] = ACTIONS(5139),
    [sym_inout] = ACTIONS(5139),
    [sym_interface] = ACTIONS(5139),
    [sym_invariant] = ACTIONS(5139),
    [sym_mixin] = ACTIONS(5139),
    [sym_nothrow] = ACTIONS(5139),
    [sym_override] = ACTIONS(5139),
    [sym_package] = ACTIONS(5139),
    [sym_pragma] = ACTIONS(5139),
    [sym_private] = ACTIONS(5139),
    [sym_protected] = ACTIONS(5139),
    [sym_public] = ACTIONS(5139),
    [sym_pure] = ACTIONS(5139),
    [sym_ref] = ACTIONS(5139),
    [sym_return] = ACTIONS(5139),
    [sym_scope] = ACTIONS(5139),
    [sym_shared] = ACTIONS(5139),
    [sym_static] = ACTIONS(5139),
    [sym_struct] = ACTIONS(5139),
    [sym_synchronized] = ACTIONS(5139),
    [sym_template] = ACTIONS(5139),
    [sym_typeof] = ACTIONS(5139),
    [sym_union] = ACTIONS(5139),
    [sym_unittest] = ACTIONS(5139),
    [sym_version] = ACTIONS(5139),
    [sym_gshared] = ACTIONS(5139),
    [sym_traits] = ACTIONS(5139),
    [sym_vector] = ACTIONS(5139),
    [sym_void] = ACTIONS(5139),
    [sym_directive] = ACTIONS(3),
  },
  [2962] = {
    [ts_builtin_sym_end] = ACTIONS(6964),
    [sym_identifier] = ACTIONS(6966),
    [sym_end_file] = ACTIONS(6966),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(6964),
    [anon_sym_SEMI] = ACTIONS(6964),
    [anon_sym_TILDE] = ACTIONS(6964),
    [anon_sym_AT] = ACTIONS(6964),
    [sym_bool] = ACTIONS(6966),
    [sym_byte] = ACTIONS(6966),
    [sym_ubyte] = ACTIONS(6966),
    [sym_char] = ACTIONS(6966),
    [sym_short] = ACTIONS(6966),
    [sym_ushort] = ACTIONS(6966),
    [sym_int] = ACTIONS(6966),
    [sym_uint] = ACTIONS(6966),
    [sym_long] = ACTIONS(6966),
    [sym_ulong] = ACTIONS(6966),
    [sym_cent] = ACTIONS(6966),
    [sym_ucent] = ACTIONS(6966),
    [sym_wchar] = ACTIONS(6966),
    [sym_dchar] = ACTIONS(6966),
    [sym_float] = ACTIONS(6966),
    [sym_double] = ACTIONS(6966),
    [sym_real] = ACTIONS(6966),
    [sym_ifloat] = ACTIONS(6966),
    [sym_idouble] = ACTIONS(6966),
    [sym_ireal] = ACTIONS(6966),
    [sym_cfloat] = ACTIONS(6966),
    [sym_cdouble] = ACTIONS(6966),
    [sym_creal] = ACTIONS(6966),
    [sym_size_t] = ACTIONS(6966),
    [sym_ptrdiff_t] = ACTIONS(6966),
    [sym_string] = ACTIONS(6966),
    [sym_cstring] = ACTIONS(6966),
    [sym_dstring] = ACTIONS(6966),
    [sym_wstring] = ACTIONS(6966),
    [sym_noreturn] = ACTIONS(6966),
    [sym_this] = ACTIONS(6966),
    [sym_abstract] = ACTIONS(6966),
    [sym_alias] = ACTIONS(6966),
    [sym_align] = ACTIONS(6966),
    [sym_auto] = ACTIONS(6966),
    [sym_class] = ACTIONS(6966),
    [sym_const] = ACTIONS(6966),
    [sym_debug] = ACTIONS(6966),
    [sym_deprecated] = ACTIONS(6966),
    [sym_enum] = ACTIONS(6966),
    [sym_export] = ACTIONS(6966),
    [sym_extern] = ACTIONS(6966),
    [sym_final] = ACTIONS(6966),
    [sym_immutable] = ACTIONS(6966),
    [sym_import] = ACTIONS(6966),
    [sym_inout] = ACTIONS(6966),
    [sym_interface] = ACTIONS(6966),
    [sym_invariant] = ACTIONS(6966),
    [sym_mixin] = ACTIONS(6966),
    [sym_nothrow] = ACTIONS(6966),
    [sym_override] = ACTIONS(6966),
    [sym_package] = ACTIONS(6966),
    [sym_pragma] = ACTIONS(6966),
    [sym_private] = ACTIONS(6966),
    [sym_protected] = ACTIONS(6966),
    [sym_public] = ACTIONS(6966),
    [sym_pure] = ACTIONS(6966),
    [sym_ref] = ACTIONS(6966),
    [sym_return] = ACTIONS(6966),
    [sym_scope] = ACTIONS(6966),
    [sym_shared] = ACTIONS(6966),
    [sym_static] = ACTIONS(6966),
    [sym_struct] = ACTIONS(6966),
    [sym_synchronized] = ACTIONS(6966),
    [sym_template] = ACTIONS(6966),
    [sym_typeof] = ACTIONS(6966),
    [sym_union] = ACTIONS(6966),
    [sym_unittest] = ACTIONS(6966),
    [sym_version] = ACTIONS(6966),
    [sym_gshared] = ACTIONS(6966),
    [sym_traits] = ACTIONS(6966),
    [sym_vector] = ACTIONS(6966),
    [sym_void] = ACTIONS(6966),
    [sym_directive] = ACTIONS(3),
  },
  [2963] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6968),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6970),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2964] = {
    [sym_identifier] = ACTIONS(6877),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6881),
    [anon_sym_LPAREN] = ACTIONS(6972),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6877),
    [sym_byte] = ACTIONS(6877),
    [sym_ubyte] = ACTIONS(6877),
    [sym_char] = ACTIONS(6877),
    [sym_short] = ACTIONS(6877),
    [sym_ushort] = ACTIONS(6877),
    [sym_int] = ACTIONS(6877),
    [sym_uint] = ACTIONS(6877),
    [sym_long] = ACTIONS(6877),
    [sym_ulong] = ACTIONS(6877),
    [sym_cent] = ACTIONS(6877),
    [sym_ucent] = ACTIONS(6877),
    [sym_wchar] = ACTIONS(6877),
    [sym_dchar] = ACTIONS(6877),
    [sym_float] = ACTIONS(6877),
    [sym_double] = ACTIONS(6877),
    [sym_real] = ACTIONS(6877),
    [sym_ifloat] = ACTIONS(6877),
    [sym_idouble] = ACTIONS(6877),
    [sym_ireal] = ACTIONS(6877),
    [sym_cfloat] = ACTIONS(6877),
    [sym_cdouble] = ACTIONS(6877),
    [sym_creal] = ACTIONS(6877),
    [sym_size_t] = ACTIONS(6877),
    [sym_ptrdiff_t] = ACTIONS(6877),
    [sym_string] = ACTIONS(6877),
    [sym_cstring] = ACTIONS(6877),
    [sym_dstring] = ACTIONS(6877),
    [sym_wstring] = ACTIONS(6877),
    [sym_noreturn] = ACTIONS(6877),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6877),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6877),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6877),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6877),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6877),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6877),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6877),
    [sym_vector] = ACTIONS(6877),
    [sym_void] = ACTIONS(6877),
    [sym_directive] = ACTIONS(3),
  },
  [2965] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(6974),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(6976),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_if] = ACTIONS(6757),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2966] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_COLON] = ACTIONS(3062),
    [anon_sym_TILDE] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_this] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_class] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_debug] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_export] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_import] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_interface] = ACTIONS(3060),
    [sym_invariant] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_package] = ACTIONS(3060),
    [sym_pragma] = ACTIONS(3060),
    [sym_private] = ACTIONS(3060),
    [sym_protected] = ACTIONS(3060),
    [sym_public] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(6978),
    [sym_struct] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_template] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_union] = ACTIONS(3060),
    [sym_unittest] = ACTIONS(3060),
    [sym_version] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [2967] = {
    [sym_identifier] = ACTIONS(6981),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6983),
    [anon_sym_DOT] = ACTIONS(6983),
    [anon_sym_COLON] = ACTIONS(6983),
    [anon_sym_TILDE] = ACTIONS(6983),
    [anon_sym_AT] = ACTIONS(6983),
    [sym_bool] = ACTIONS(6981),
    [sym_byte] = ACTIONS(6981),
    [sym_ubyte] = ACTIONS(6981),
    [sym_char] = ACTIONS(6981),
    [sym_short] = ACTIONS(6981),
    [sym_ushort] = ACTIONS(6981),
    [sym_int] = ACTIONS(6981),
    [sym_uint] = ACTIONS(6981),
    [sym_long] = ACTIONS(6981),
    [sym_ulong] = ACTIONS(6981),
    [sym_cent] = ACTIONS(6981),
    [sym_ucent] = ACTIONS(6981),
    [sym_wchar] = ACTIONS(6981),
    [sym_dchar] = ACTIONS(6981),
    [sym_float] = ACTIONS(6981),
    [sym_double] = ACTIONS(6981),
    [sym_real] = ACTIONS(6981),
    [sym_ifloat] = ACTIONS(6981),
    [sym_idouble] = ACTIONS(6981),
    [sym_ireal] = ACTIONS(6981),
    [sym_cfloat] = ACTIONS(6981),
    [sym_cdouble] = ACTIONS(6981),
    [sym_creal] = ACTIONS(6981),
    [sym_size_t] = ACTIONS(6981),
    [sym_ptrdiff_t] = ACTIONS(6981),
    [sym_string] = ACTIONS(6981),
    [sym_cstring] = ACTIONS(6981),
    [sym_dstring] = ACTIONS(6981),
    [sym_wstring] = ACTIONS(6981),
    [sym_noreturn] = ACTIONS(6981),
    [sym_this] = ACTIONS(6981),
    [sym_abstract] = ACTIONS(6981),
    [sym_alias] = ACTIONS(6981),
    [sym_align] = ACTIONS(6981),
    [sym_auto] = ACTIONS(6981),
    [sym_class] = ACTIONS(6981),
    [sym_const] = ACTIONS(6981),
    [sym_debug] = ACTIONS(6981),
    [sym_deprecated] = ACTIONS(6981),
    [sym_enum] = ACTIONS(6981),
    [sym_export] = ACTIONS(6981),
    [sym_extern] = ACTIONS(6981),
    [sym_final] = ACTIONS(6981),
    [sym_immutable] = ACTIONS(6981),
    [sym_import] = ACTIONS(6981),
    [sym_inout] = ACTIONS(6981),
    [sym_interface] = ACTIONS(6981),
    [sym_invariant] = ACTIONS(6981),
    [sym_mixin] = ACTIONS(6981),
    [sym_nothrow] = ACTIONS(6981),
    [sym_override] = ACTIONS(6981),
    [sym_package] = ACTIONS(6981),
    [sym_pragma] = ACTIONS(6981),
    [sym_private] = ACTIONS(6981),
    [sym_protected] = ACTIONS(6981),
    [sym_public] = ACTIONS(6981),
    [sym_pure] = ACTIONS(6981),
    [sym_ref] = ACTIONS(6981),
    [sym_return] = ACTIONS(6981),
    [sym_scope] = ACTIONS(6981),
    [sym_shared] = ACTIONS(6981),
    [sym_static] = ACTIONS(6981),
    [sym_struct] = ACTIONS(6981),
    [sym_synchronized] = ACTIONS(6981),
    [sym_template] = ACTIONS(6981),
    [sym_typeof] = ACTIONS(6981),
    [sym_union] = ACTIONS(6981),
    [sym_unittest] = ACTIONS(6981),
    [sym_version] = ACTIONS(6981),
    [sym_gshared] = ACTIONS(6981),
    [sym_traits] = ACTIONS(6981),
    [sym_vector] = ACTIONS(6981),
    [sym_void] = ACTIONS(6981),
    [sym_directive] = ACTIONS(3),
  },
  [2968] = {
    [sym_identifier] = ACTIONS(6985),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6987),
    [anon_sym_DOT] = ACTIONS(6987),
    [anon_sym_COLON] = ACTIONS(6987),
    [anon_sym_TILDE] = ACTIONS(6987),
    [anon_sym_AT] = ACTIONS(6987),
    [sym_bool] = ACTIONS(6985),
    [sym_byte] = ACTIONS(6985),
    [sym_ubyte] = ACTIONS(6985),
    [sym_char] = ACTIONS(6985),
    [sym_short] = ACTIONS(6985),
    [sym_ushort] = ACTIONS(6985),
    [sym_int] = ACTIONS(6985),
    [sym_uint] = ACTIONS(6985),
    [sym_long] = ACTIONS(6985),
    [sym_ulong] = ACTIONS(6985),
    [sym_cent] = ACTIONS(6985),
    [sym_ucent] = ACTIONS(6985),
    [sym_wchar] = ACTIONS(6985),
    [sym_dchar] = ACTIONS(6985),
    [sym_float] = ACTIONS(6985),
    [sym_double] = ACTIONS(6985),
    [sym_real] = ACTIONS(6985),
    [sym_ifloat] = ACTIONS(6985),
    [sym_idouble] = ACTIONS(6985),
    [sym_ireal] = ACTIONS(6985),
    [sym_cfloat] = ACTIONS(6985),
    [sym_cdouble] = ACTIONS(6985),
    [sym_creal] = ACTIONS(6985),
    [sym_size_t] = ACTIONS(6985),
    [sym_ptrdiff_t] = ACTIONS(6985),
    [sym_string] = ACTIONS(6985),
    [sym_cstring] = ACTIONS(6985),
    [sym_dstring] = ACTIONS(6985),
    [sym_wstring] = ACTIONS(6985),
    [sym_noreturn] = ACTIONS(6985),
    [sym_this] = ACTIONS(6985),
    [sym_abstract] = ACTIONS(6985),
    [sym_alias] = ACTIONS(6985),
    [sym_align] = ACTIONS(6985),
    [sym_auto] = ACTIONS(6985),
    [sym_class] = ACTIONS(6985),
    [sym_const] = ACTIONS(6985),
    [sym_debug] = ACTIONS(6985),
    [sym_deprecated] = ACTIONS(6985),
    [sym_enum] = ACTIONS(6985),
    [sym_export] = ACTIONS(6985),
    [sym_extern] = ACTIONS(6985),
    [sym_final] = ACTIONS(6985),
    [sym_immutable] = ACTIONS(6985),
    [sym_import] = ACTIONS(6985),
    [sym_inout] = ACTIONS(6985),
    [sym_interface] = ACTIONS(6985),
    [sym_invariant] = ACTIONS(6985),
    [sym_mixin] = ACTIONS(6985),
    [sym_nothrow] = ACTIONS(6985),
    [sym_override] = ACTIONS(6985),
    [sym_package] = ACTIONS(6985),
    [sym_pragma] = ACTIONS(6985),
    [sym_private] = ACTIONS(6985),
    [sym_protected] = ACTIONS(6985),
    [sym_public] = ACTIONS(6985),
    [sym_pure] = ACTIONS(6985),
    [sym_ref] = ACTIONS(6985),
    [sym_return] = ACTIONS(6985),
    [sym_scope] = ACTIONS(6985),
    [sym_shared] = ACTIONS(6985),
    [sym_static] = ACTIONS(6985),
    [sym_struct] = ACTIONS(6985),
    [sym_synchronized] = ACTIONS(6985),
    [sym_template] = ACTIONS(6985),
    [sym_typeof] = ACTIONS(6985),
    [sym_union] = ACTIONS(6985),
    [sym_unittest] = ACTIONS(6985),
    [sym_version] = ACTIONS(6985),
    [sym_gshared] = ACTIONS(6985),
    [sym_traits] = ACTIONS(6985),
    [sym_vector] = ACTIONS(6985),
    [sym_void] = ACTIONS(6985),
    [sym_directive] = ACTIONS(3),
  },
  [2969] = {
    [sym_identifier] = ACTIONS(6989),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6991),
    [anon_sym_DOT] = ACTIONS(6991),
    [anon_sym_COLON] = ACTIONS(6991),
    [anon_sym_TILDE] = ACTIONS(6991),
    [anon_sym_AT] = ACTIONS(6991),
    [sym_bool] = ACTIONS(6989),
    [sym_byte] = ACTIONS(6989),
    [sym_ubyte] = ACTIONS(6989),
    [sym_char] = ACTIONS(6989),
    [sym_short] = ACTIONS(6989),
    [sym_ushort] = ACTIONS(6989),
    [sym_int] = ACTIONS(6989),
    [sym_uint] = ACTIONS(6989),
    [sym_long] = ACTIONS(6989),
    [sym_ulong] = ACTIONS(6989),
    [sym_cent] = ACTIONS(6989),
    [sym_ucent] = ACTIONS(6989),
    [sym_wchar] = ACTIONS(6989),
    [sym_dchar] = ACTIONS(6989),
    [sym_float] = ACTIONS(6989),
    [sym_double] = ACTIONS(6989),
    [sym_real] = ACTIONS(6989),
    [sym_ifloat] = ACTIONS(6989),
    [sym_idouble] = ACTIONS(6989),
    [sym_ireal] = ACTIONS(6989),
    [sym_cfloat] = ACTIONS(6989),
    [sym_cdouble] = ACTIONS(6989),
    [sym_creal] = ACTIONS(6989),
    [sym_size_t] = ACTIONS(6989),
    [sym_ptrdiff_t] = ACTIONS(6989),
    [sym_string] = ACTIONS(6989),
    [sym_cstring] = ACTIONS(6989),
    [sym_dstring] = ACTIONS(6989),
    [sym_wstring] = ACTIONS(6989),
    [sym_noreturn] = ACTIONS(6989),
    [sym_this] = ACTIONS(6989),
    [sym_abstract] = ACTIONS(6989),
    [sym_alias] = ACTIONS(6989),
    [sym_align] = ACTIONS(6989),
    [sym_auto] = ACTIONS(6989),
    [sym_class] = ACTIONS(6989),
    [sym_const] = ACTIONS(6989),
    [sym_debug] = ACTIONS(6989),
    [sym_deprecated] = ACTIONS(6989),
    [sym_enum] = ACTIONS(6989),
    [sym_export] = ACTIONS(6989),
    [sym_extern] = ACTIONS(6989),
    [sym_final] = ACTIONS(6989),
    [sym_immutable] = ACTIONS(6989),
    [sym_import] = ACTIONS(6989),
    [sym_inout] = ACTIONS(6989),
    [sym_interface] = ACTIONS(6989),
    [sym_invariant] = ACTIONS(6989),
    [sym_mixin] = ACTIONS(6989),
    [sym_nothrow] = ACTIONS(6989),
    [sym_override] = ACTIONS(6989),
    [sym_package] = ACTIONS(6989),
    [sym_pragma] = ACTIONS(6989),
    [sym_private] = ACTIONS(6989),
    [sym_protected] = ACTIONS(6989),
    [sym_public] = ACTIONS(6989),
    [sym_pure] = ACTIONS(6989),
    [sym_ref] = ACTIONS(6989),
    [sym_return] = ACTIONS(6989),
    [sym_scope] = ACTIONS(6989),
    [sym_shared] = ACTIONS(6989),
    [sym_static] = ACTIONS(6989),
    [sym_struct] = ACTIONS(6989),
    [sym_synchronized] = ACTIONS(6989),
    [sym_template] = ACTIONS(6989),
    [sym_typeof] = ACTIONS(6989),
    [sym_union] = ACTIONS(6989),
    [sym_unittest] = ACTIONS(6989),
    [sym_version] = ACTIONS(6989),
    [sym_gshared] = ACTIONS(6989),
    [sym_traits] = ACTIONS(6989),
    [sym_vector] = ACTIONS(6989),
    [sym_void] = ACTIONS(6989),
    [sym_directive] = ACTIONS(3),
  },
  [2970] = {
    [sym_identifier] = ACTIONS(6993),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6995),
    [anon_sym_DOT] = ACTIONS(6995),
    [anon_sym_COLON] = ACTIONS(6995),
    [anon_sym_TILDE] = ACTIONS(6995),
    [anon_sym_AT] = ACTIONS(6995),
    [sym_bool] = ACTIONS(6993),
    [sym_byte] = ACTIONS(6993),
    [sym_ubyte] = ACTIONS(6993),
    [sym_char] = ACTIONS(6993),
    [sym_short] = ACTIONS(6993),
    [sym_ushort] = ACTIONS(6993),
    [sym_int] = ACTIONS(6993),
    [sym_uint] = ACTIONS(6993),
    [sym_long] = ACTIONS(6993),
    [sym_ulong] = ACTIONS(6993),
    [sym_cent] = ACTIONS(6993),
    [sym_ucent] = ACTIONS(6993),
    [sym_wchar] = ACTIONS(6993),
    [sym_dchar] = ACTIONS(6993),
    [sym_float] = ACTIONS(6993),
    [sym_double] = ACTIONS(6993),
    [sym_real] = ACTIONS(6993),
    [sym_ifloat] = ACTIONS(6993),
    [sym_idouble] = ACTIONS(6993),
    [sym_ireal] = ACTIONS(6993),
    [sym_cfloat] = ACTIONS(6993),
    [sym_cdouble] = ACTIONS(6993),
    [sym_creal] = ACTIONS(6993),
    [sym_size_t] = ACTIONS(6993),
    [sym_ptrdiff_t] = ACTIONS(6993),
    [sym_string] = ACTIONS(6993),
    [sym_cstring] = ACTIONS(6993),
    [sym_dstring] = ACTIONS(6993),
    [sym_wstring] = ACTIONS(6993),
    [sym_noreturn] = ACTIONS(6993),
    [sym_this] = ACTIONS(6993),
    [sym_abstract] = ACTIONS(6993),
    [sym_alias] = ACTIONS(6993),
    [sym_align] = ACTIONS(6993),
    [sym_auto] = ACTIONS(6993),
    [sym_class] = ACTIONS(6993),
    [sym_const] = ACTIONS(6993),
    [sym_debug] = ACTIONS(6993),
    [sym_deprecated] = ACTIONS(6993),
    [sym_enum] = ACTIONS(6993),
    [sym_export] = ACTIONS(6993),
    [sym_extern] = ACTIONS(6993),
    [sym_final] = ACTIONS(6993),
    [sym_immutable] = ACTIONS(6993),
    [sym_import] = ACTIONS(6993),
    [sym_inout] = ACTIONS(6993),
    [sym_interface] = ACTIONS(6993),
    [sym_invariant] = ACTIONS(6993),
    [sym_mixin] = ACTIONS(6993),
    [sym_nothrow] = ACTIONS(6993),
    [sym_override] = ACTIONS(6993),
    [sym_package] = ACTIONS(6993),
    [sym_pragma] = ACTIONS(6993),
    [sym_private] = ACTIONS(6993),
    [sym_protected] = ACTIONS(6993),
    [sym_public] = ACTIONS(6993),
    [sym_pure] = ACTIONS(6993),
    [sym_ref] = ACTIONS(6993),
    [sym_return] = ACTIONS(6993),
    [sym_scope] = ACTIONS(6993),
    [sym_shared] = ACTIONS(6993),
    [sym_static] = ACTIONS(6993),
    [sym_struct] = ACTIONS(6993),
    [sym_synchronized] = ACTIONS(6993),
    [sym_template] = ACTIONS(6993),
    [sym_typeof] = ACTIONS(6993),
    [sym_union] = ACTIONS(6993),
    [sym_unittest] = ACTIONS(6993),
    [sym_version] = ACTIONS(6993),
    [sym_gshared] = ACTIONS(6993),
    [sym_traits] = ACTIONS(6993),
    [sym_vector] = ACTIONS(6993),
    [sym_void] = ACTIONS(6993),
    [sym_directive] = ACTIONS(3),
  },
  [2971] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(6707),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2972] = {
    [sym_identifier] = ACTIONS(6997),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6999),
    [anon_sym_DOT] = ACTIONS(6999),
    [anon_sym_COLON] = ACTIONS(6999),
    [anon_sym_TILDE] = ACTIONS(6999),
    [anon_sym_AT] = ACTIONS(6999),
    [sym_bool] = ACTIONS(6997),
    [sym_byte] = ACTIONS(6997),
    [sym_ubyte] = ACTIONS(6997),
    [sym_char] = ACTIONS(6997),
    [sym_short] = ACTIONS(6997),
    [sym_ushort] = ACTIONS(6997),
    [sym_int] = ACTIONS(6997),
    [sym_uint] = ACTIONS(6997),
    [sym_long] = ACTIONS(6997),
    [sym_ulong] = ACTIONS(6997),
    [sym_cent] = ACTIONS(6997),
    [sym_ucent] = ACTIONS(6997),
    [sym_wchar] = ACTIONS(6997),
    [sym_dchar] = ACTIONS(6997),
    [sym_float] = ACTIONS(6997),
    [sym_double] = ACTIONS(6997),
    [sym_real] = ACTIONS(6997),
    [sym_ifloat] = ACTIONS(6997),
    [sym_idouble] = ACTIONS(6997),
    [sym_ireal] = ACTIONS(6997),
    [sym_cfloat] = ACTIONS(6997),
    [sym_cdouble] = ACTIONS(6997),
    [sym_creal] = ACTIONS(6997),
    [sym_size_t] = ACTIONS(6997),
    [sym_ptrdiff_t] = ACTIONS(6997),
    [sym_string] = ACTIONS(6997),
    [sym_cstring] = ACTIONS(6997),
    [sym_dstring] = ACTIONS(6997),
    [sym_wstring] = ACTIONS(6997),
    [sym_noreturn] = ACTIONS(6997),
    [sym_this] = ACTIONS(6997),
    [sym_abstract] = ACTIONS(6997),
    [sym_alias] = ACTIONS(6997),
    [sym_align] = ACTIONS(6997),
    [sym_auto] = ACTIONS(6997),
    [sym_class] = ACTIONS(6997),
    [sym_const] = ACTIONS(6997),
    [sym_debug] = ACTIONS(6997),
    [sym_deprecated] = ACTIONS(6997),
    [sym_enum] = ACTIONS(6997),
    [sym_export] = ACTIONS(6997),
    [sym_extern] = ACTIONS(6997),
    [sym_final] = ACTIONS(6997),
    [sym_immutable] = ACTIONS(6997),
    [sym_import] = ACTIONS(6997),
    [sym_inout] = ACTIONS(6997),
    [sym_interface] = ACTIONS(6997),
    [sym_invariant] = ACTIONS(6997),
    [sym_mixin] = ACTIONS(6997),
    [sym_nothrow] = ACTIONS(6997),
    [sym_override] = ACTIONS(6997),
    [sym_package] = ACTIONS(6997),
    [sym_pragma] = ACTIONS(6997),
    [sym_private] = ACTIONS(6997),
    [sym_protected] = ACTIONS(6997),
    [sym_public] = ACTIONS(6997),
    [sym_pure] = ACTIONS(6997),
    [sym_ref] = ACTIONS(6997),
    [sym_return] = ACTIONS(6997),
    [sym_scope] = ACTIONS(6997),
    [sym_shared] = ACTIONS(6997),
    [sym_static] = ACTIONS(6997),
    [sym_struct] = ACTIONS(6997),
    [sym_synchronized] = ACTIONS(6997),
    [sym_template] = ACTIONS(6997),
    [sym_typeof] = ACTIONS(6997),
    [sym_union] = ACTIONS(6997),
    [sym_unittest] = ACTIONS(6997),
    [sym_version] = ACTIONS(6997),
    [sym_gshared] = ACTIONS(6997),
    [sym_traits] = ACTIONS(6997),
    [sym_vector] = ACTIONS(6997),
    [sym_void] = ACTIONS(6997),
    [sym_directive] = ACTIONS(3),
  },
  [2973] = {
    [sym_identifier] = ACTIONS(6707),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(686),
    [anon_sym_DOT] = ACTIONS(6710),
    [anon_sym_COLON] = ACTIONS(686),
    [anon_sym_TILDE] = ACTIONS(686),
    [anon_sym_AT] = ACTIONS(6710),
    [sym_bool] = ACTIONS(6707),
    [sym_byte] = ACTIONS(6707),
    [sym_ubyte] = ACTIONS(6707),
    [sym_char] = ACTIONS(6707),
    [sym_short] = ACTIONS(6707),
    [sym_ushort] = ACTIONS(6707),
    [sym_int] = ACTIONS(6707),
    [sym_uint] = ACTIONS(6707),
    [sym_long] = ACTIONS(6707),
    [sym_ulong] = ACTIONS(6707),
    [sym_cent] = ACTIONS(6707),
    [sym_ucent] = ACTIONS(6707),
    [sym_wchar] = ACTIONS(6707),
    [sym_dchar] = ACTIONS(6707),
    [sym_float] = ACTIONS(6707),
    [sym_double] = ACTIONS(6707),
    [sym_real] = ACTIONS(6707),
    [sym_ifloat] = ACTIONS(6707),
    [sym_idouble] = ACTIONS(6707),
    [sym_ireal] = ACTIONS(6707),
    [sym_cfloat] = ACTIONS(6707),
    [sym_cdouble] = ACTIONS(6707),
    [sym_creal] = ACTIONS(6707),
    [sym_size_t] = ACTIONS(6707),
    [sym_ptrdiff_t] = ACTIONS(6707),
    [sym_string] = ACTIONS(6707),
    [sym_cstring] = ACTIONS(6707),
    [sym_dstring] = ACTIONS(6707),
    [sym_wstring] = ACTIONS(6707),
    [sym_noreturn] = ACTIONS(6707),
    [sym_this] = ACTIONS(2960),
    [sym_abstract] = ACTIONS(6707),
    [sym_alias] = ACTIONS(2960),
    [sym_align] = ACTIONS(6707),
    [sym_auto] = ACTIONS(6707),
    [sym_class] = ACTIONS(2960),
    [sym_const] = ACTIONS(6707),
    [sym_debug] = ACTIONS(2960),
    [sym_deprecated] = ACTIONS(6707),
    [sym_enum] = ACTIONS(6707),
    [sym_export] = ACTIONS(2960),
    [sym_extern] = ACTIONS(6707),
    [sym_final] = ACTIONS(6707),
    [sym_immutable] = ACTIONS(6707),
    [sym_import] = ACTIONS(2960),
    [sym_inout] = ACTIONS(6707),
    [sym_interface] = ACTIONS(2960),
    [sym_invariant] = ACTIONS(2960),
    [sym_mixin] = ACTIONS(6707),
    [sym_nothrow] = ACTIONS(6707),
    [sym_override] = ACTIONS(6707),
    [sym_package] = ACTIONS(2960),
    [sym_pragma] = ACTIONS(2960),
    [sym_private] = ACTIONS(2960),
    [sym_protected] = ACTIONS(2960),
    [sym_public] = ACTIONS(2960),
    [sym_pure] = ACTIONS(6707),
    [sym_ref] = ACTIONS(7001),
    [sym_return] = ACTIONS(2960),
    [sym_scope] = ACTIONS(6707),
    [sym_shared] = ACTIONS(6707),
    [sym_static] = ACTIONS(6707),
    [sym_struct] = ACTIONS(2960),
    [sym_synchronized] = ACTIONS(6707),
    [sym_template] = ACTIONS(2960),
    [sym_typeof] = ACTIONS(6707),
    [sym_union] = ACTIONS(2960),
    [sym_unittest] = ACTIONS(2960),
    [sym_version] = ACTIONS(2960),
    [sym_gshared] = ACTIONS(6707),
    [sym_traits] = ACTIONS(6707),
    [sym_vector] = ACTIONS(6707),
    [sym_void] = ACTIONS(6707),
    [sym_directive] = ACTIONS(3),
  },
  [2974] = {
    [sym_identifier] = ACTIONS(7005),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7007),
    [anon_sym_DOT] = ACTIONS(7007),
    [anon_sym_COLON] = ACTIONS(7007),
    [anon_sym_TILDE] = ACTIONS(7007),
    [anon_sym_AT] = ACTIONS(7007),
    [sym_bool] = ACTIONS(7005),
    [sym_byte] = ACTIONS(7005),
    [sym_ubyte] = ACTIONS(7005),
    [sym_char] = ACTIONS(7005),
    [sym_short] = ACTIONS(7005),
    [sym_ushort] = ACTIONS(7005),
    [sym_int] = ACTIONS(7005),
    [sym_uint] = ACTIONS(7005),
    [sym_long] = ACTIONS(7005),
    [sym_ulong] = ACTIONS(7005),
    [sym_cent] = ACTIONS(7005),
    [sym_ucent] = ACTIONS(7005),
    [sym_wchar] = ACTIONS(7005),
    [sym_dchar] = ACTIONS(7005),
    [sym_float] = ACTIONS(7005),
    [sym_double] = ACTIONS(7005),
    [sym_real] = ACTIONS(7005),
    [sym_ifloat] = ACTIONS(7005),
    [sym_idouble] = ACTIONS(7005),
    [sym_ireal] = ACTIONS(7005),
    [sym_cfloat] = ACTIONS(7005),
    [sym_cdouble] = ACTIONS(7005),
    [sym_creal] = ACTIONS(7005),
    [sym_size_t] = ACTIONS(7005),
    [sym_ptrdiff_t] = ACTIONS(7005),
    [sym_string] = ACTIONS(7005),
    [sym_cstring] = ACTIONS(7005),
    [sym_dstring] = ACTIONS(7005),
    [sym_wstring] = ACTIONS(7005),
    [sym_noreturn] = ACTIONS(7005),
    [sym_this] = ACTIONS(7005),
    [sym_abstract] = ACTIONS(7005),
    [sym_alias] = ACTIONS(7005),
    [sym_align] = ACTIONS(7005),
    [sym_auto] = ACTIONS(7005),
    [sym_class] = ACTIONS(7005),
    [sym_const] = ACTIONS(7005),
    [sym_debug] = ACTIONS(7005),
    [sym_deprecated] = ACTIONS(7005),
    [sym_enum] = ACTIONS(7005),
    [sym_export] = ACTIONS(7005),
    [sym_extern] = ACTIONS(7005),
    [sym_final] = ACTIONS(7005),
    [sym_immutable] = ACTIONS(7005),
    [sym_import] = ACTIONS(7005),
    [sym_inout] = ACTIONS(7005),
    [sym_interface] = ACTIONS(7005),
    [sym_invariant] = ACTIONS(7005),
    [sym_mixin] = ACTIONS(7005),
    [sym_nothrow] = ACTIONS(7005),
    [sym_override] = ACTIONS(7005),
    [sym_package] = ACTIONS(7005),
    [sym_pragma] = ACTIONS(7005),
    [sym_private] = ACTIONS(7005),
    [sym_protected] = ACTIONS(7005),
    [sym_public] = ACTIONS(7005),
    [sym_pure] = ACTIONS(7005),
    [sym_ref] = ACTIONS(7005),
    [sym_return] = ACTIONS(7005),
    [sym_scope] = ACTIONS(7005),
    [sym_shared] = ACTIONS(7005),
    [sym_static] = ACTIONS(7005),
    [sym_struct] = ACTIONS(7005),
    [sym_synchronized] = ACTIONS(7005),
    [sym_template] = ACTIONS(7005),
    [sym_typeof] = ACTIONS(7005),
    [sym_union] = ACTIONS(7005),
    [sym_unittest] = ACTIONS(7005),
    [sym_version] = ACTIONS(7005),
    [sym_gshared] = ACTIONS(7005),
    [sym_traits] = ACTIONS(7005),
    [sym_vector] = ACTIONS(7005),
    [sym_void] = ACTIONS(7005),
    [sym_directive] = ACTIONS(3),
  },
  [2975] = {
    [sym_identifier] = ACTIONS(7009),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7011),
    [anon_sym_DOT] = ACTIONS(7011),
    [anon_sym_COLON] = ACTIONS(7011),
    [anon_sym_TILDE] = ACTIONS(7011),
    [anon_sym_AT] = ACTIONS(7011),
    [sym_bool] = ACTIONS(7009),
    [sym_byte] = ACTIONS(7009),
    [sym_ubyte] = ACTIONS(7009),
    [sym_char] = ACTIONS(7009),
    [sym_short] = ACTIONS(7009),
    [sym_ushort] = ACTIONS(7009),
    [sym_int] = ACTIONS(7009),
    [sym_uint] = ACTIONS(7009),
    [sym_long] = ACTIONS(7009),
    [sym_ulong] = ACTIONS(7009),
    [sym_cent] = ACTIONS(7009),
    [sym_ucent] = ACTIONS(7009),
    [sym_wchar] = ACTIONS(7009),
    [sym_dchar] = ACTIONS(7009),
    [sym_float] = ACTIONS(7009),
    [sym_double] = ACTIONS(7009),
    [sym_real] = ACTIONS(7009),
    [sym_ifloat] = ACTIONS(7009),
    [sym_idouble] = ACTIONS(7009),
    [sym_ireal] = ACTIONS(7009),
    [sym_cfloat] = ACTIONS(7009),
    [sym_cdouble] = ACTIONS(7009),
    [sym_creal] = ACTIONS(7009),
    [sym_size_t] = ACTIONS(7009),
    [sym_ptrdiff_t] = ACTIONS(7009),
    [sym_string] = ACTIONS(7009),
    [sym_cstring] = ACTIONS(7009),
    [sym_dstring] = ACTIONS(7009),
    [sym_wstring] = ACTIONS(7009),
    [sym_noreturn] = ACTIONS(7009),
    [sym_this] = ACTIONS(7009),
    [sym_abstract] = ACTIONS(7009),
    [sym_alias] = ACTIONS(7009),
    [sym_align] = ACTIONS(7009),
    [sym_auto] = ACTIONS(7009),
    [sym_class] = ACTIONS(7009),
    [sym_const] = ACTIONS(7009),
    [sym_debug] = ACTIONS(7009),
    [sym_deprecated] = ACTIONS(7009),
    [sym_enum] = ACTIONS(7009),
    [sym_export] = ACTIONS(7009),
    [sym_extern] = ACTIONS(7009),
    [sym_final] = ACTIONS(7009),
    [sym_immutable] = ACTIONS(7009),
    [sym_import] = ACTIONS(7009),
    [sym_inout] = ACTIONS(7009),
    [sym_interface] = ACTIONS(7009),
    [sym_invariant] = ACTIONS(7009),
    [sym_mixin] = ACTIONS(7009),
    [sym_nothrow] = ACTIONS(7009),
    [sym_override] = ACTIONS(7009),
    [sym_package] = ACTIONS(7009),
    [sym_pragma] = ACTIONS(7009),
    [sym_private] = ACTIONS(7009),
    [sym_protected] = ACTIONS(7009),
    [sym_public] = ACTIONS(7009),
    [sym_pure] = ACTIONS(7009),
    [sym_ref] = ACTIONS(7009),
    [sym_return] = ACTIONS(7009),
    [sym_scope] = ACTIONS(7009),
    [sym_shared] = ACTIONS(7009),
    [sym_static] = ACTIONS(7009),
    [sym_struct] = ACTIONS(7009),
    [sym_synchronized] = ACTIONS(7009),
    [sym_template] = ACTIONS(7009),
    [sym_typeof] = ACTIONS(7009),
    [sym_union] = ACTIONS(7009),
    [sym_unittest] = ACTIONS(7009),
    [sym_version] = ACTIONS(7009),
    [sym_gshared] = ACTIONS(7009),
    [sym_traits] = ACTIONS(7009),
    [sym_vector] = ACTIONS(7009),
    [sym_void] = ACTIONS(7009),
    [sym_directive] = ACTIONS(3),
  },
  [2976] = {
    [sym_manifest_declarator] = STATE(6077),
    [sym_storage_class] = STATE(3029),
    [sym_type] = STATE(6800),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3029),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7013),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7015),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7017),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2977] = {
    [sym_manifest_declarator] = STATE(6320),
    [sym_storage_class] = STATE(3051),
    [sym_type] = STATE(6449),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3051),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7019),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7021),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7023),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2978] = {
    [sym_manifest_declarator] = STATE(6138),
    [sym_storage_class] = STATE(3019),
    [sym_type] = STATE(6851),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3019),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7025),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7027),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7029),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2979] = {
    [sym_manifest_declarator] = STATE(6394),
    [sym_storage_class] = STATE(3026),
    [sym_type] = STATE(6929),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3026),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7031),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7033),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7035),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2980] = {
    [sym_manifest_declarator] = STATE(5802),
    [sym_storage_class] = STATE(3027),
    [sym_type] = STATE(6698),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3027),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7037),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7039),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7041),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2981] = {
    [sym_manifest_declarator] = STATE(6200),
    [sym_storage_class] = STATE(3061),
    [sym_type] = STATE(6451),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3061),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7043),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7045),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7047),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2982] = {
    [sym_manifest_declarator] = STATE(6078),
    [sym_storage_class] = STATE(3050),
    [sym_type] = STATE(6421),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3050),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7049),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7051),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7053),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2983] = {
    [sym_manifest_declarator] = STATE(6030),
    [sym_storage_class] = STATE(3057),
    [sym_type] = STATE(6740),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3057),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7055),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7057),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7059),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2984] = {
    [sym_manifest_declarator] = STATE(5745),
    [sym_storage_class] = STATE(3031),
    [sym_type] = STATE(6855),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3031),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7061),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7063),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7065),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2985] = {
    [sym_manifest_declarator] = STATE(5929),
    [sym_storage_class] = STATE(3059),
    [sym_type] = STATE(6703),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3059),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7067),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7069),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7071),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2986] = {
    [sym_manifest_declarator] = STATE(6346),
    [sym_storage_class] = STATE(3023),
    [sym_type] = STATE(6910),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3023),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7073),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7075),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7077),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2987] = {
    [sym_manifest_declarator] = STATE(5744),
    [sym_storage_class] = STATE(3058),
    [sym_type] = STATE(6665),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3058),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7079),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7081),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_COLON] = ACTIONS(7083),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2988] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6370),
    [sym_type] = STATE(5724),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7085),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7087),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2989] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6132),
    [sym_type] = STATE(5729),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7089),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7091),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2990] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6025),
    [sym_type] = STATE(5609),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7093),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7095),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2991] = {
    [sym_storage_class] = STATE(3082),
    [sym_alias_initializer] = STATE(6378),
    [sym_type] = STATE(6975),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3082),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7097),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7099),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2992] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(5771),
    [sym_type] = STATE(5586),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7101),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7103),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2993] = {
    [sym_storage_class] = STATE(3099),
    [sym_alias_initializer] = STATE(6034),
    [sym_type] = STATE(7090),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3099),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7105),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7107),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2994] = {
    [sym_storage_class] = STATE(3084),
    [sym_alias_initializer] = STATE(5759),
    [sym_type] = STATE(7220),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3084),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7109),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7111),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2995] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(5770),
    [sym_type] = STATE(5645),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7113),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7115),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2996] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6174),
    [sym_type] = STATE(5608),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7117),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7119),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2997] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6372),
    [sym_type] = STATE(5710),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7121),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7123),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2998] = {
    [sym_storage_class] = STATE(3093),
    [sym_alias_initializer] = STATE(6340),
    [sym_type] = STATE(6995),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3093),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7125),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7127),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [2999] = {
    [sym_storage_class] = STATE(3081),
    [sym_alias_initializer] = STATE(5926),
    [sym_type] = STATE(7193),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3081),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7129),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7131),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3000] = {
    [sym_storage_class] = STATE(3076),
    [sym_alias_initializer] = STATE(6227),
    [sym_type] = STATE(7275),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3076),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7133),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7135),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3001] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6068),
    [sym_type] = STATE(5668),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7137),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7139),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3002] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6205),
    [sym_type] = STATE(5622),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7141),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7143),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3003] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6205),
    [sym_type] = STATE(5622),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7145),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7143),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3004] = {
    [sym_storage_class] = STATE(3071),
    [sym_alias_initializer] = STATE(6020),
    [sym_type] = STATE(7459),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3071),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7147),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7149),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3005] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(5974),
    [sym_type] = STATE(5713),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7151),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7153),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3006] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6114),
    [sym_type] = STATE(5694),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7155),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7157),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3007] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6114),
    [sym_type] = STATE(5694),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7159),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7157),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3008] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6017),
    [sym_type] = STATE(5619),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7161),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7163),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3009] = {
    [sym_storage_class] = STATE(3077),
    [sym_alias_initializer] = STATE(5809),
    [sym_type] = STATE(7190),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3077),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7165),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7167),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3010] = {
    [sym_storage_class] = STATE(3064),
    [sym_alias_initializer] = STATE(6063),
    [sym_type] = STATE(7155),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3064),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7169),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7171),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3011] = {
    [sym_storage_class] = STATE(3063),
    [sym_alias_initializer] = STATE(6211),
    [sym_type] = STATE(7526),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3063),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7173),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7175),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3012] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6025),
    [sym_type] = STATE(5609),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7177),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7095),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3013] = {
    [sym_storage_class] = STATE(3087),
    [sym_alias_initializer] = STATE(6305),
    [sym_type] = STATE(7911),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3087),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7179),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7181),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3014] = {
    [sym_storage_class] = STATE(3225),
    [sym__auto_assignment] = STATE(6132),
    [sym_type] = STATE(5729),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7183),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_enum] = ACTIONS(7091),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3015] = {
    [sym_storage_class] = STATE(3097),
    [sym_alias_initializer] = STATE(6140),
    [sym_type] = STATE(7056),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3097),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7185),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_this] = ACTIONS(7187),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3016] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7197),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3017] = {
    [sym_manifest_declarator] = STATE(6077),
    [sym_storage_class] = STATE(3029),
    [sym_type] = STATE(6800),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3029),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3018] = {
    [sym_manifest_declarator] = STATE(6314),
    [sym_storage_class] = STATE(3032),
    [sym_type] = STATE(6943),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3032),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3019] = {
    [sym_manifest_declarator] = STATE(6077),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6800),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3020] = {
    [sym_manifest_declarator] = STATE(6244),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6888),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3021] = {
    [sym_manifest_declarator] = STATE(5917),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6742),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3022] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7205),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3023] = {
    [sym_manifest_declarator] = STATE(6394),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6929),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3024] = {
    [sym_manifest_declarator] = STATE(6337),
    [sym_storage_class] = STATE(3020),
    [sym_type] = STATE(6644),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3020),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3025] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7207),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3026] = {
    [sym_manifest_declarator] = STATE(6337),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6644),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3027] = {
    [sym_manifest_declarator] = STATE(5744),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6665),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3028] = {
    [sym_manifest_declarator] = STATE(5986),
    [sym_storage_class] = STATE(3021),
    [sym_type] = STATE(6758),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3021),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3029] = {
    [sym_manifest_declarator] = STATE(5986),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6758),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3030] = {
    [sym_manifest_declarator] = STATE(6078),
    [sym_storage_class] = STATE(3050),
    [sym_type] = STATE(6421),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3050),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3031] = {
    [sym_manifest_declarator] = STATE(6314),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6943),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3032] = {
    [sym_manifest_declarator] = STATE(6055),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6722),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3033] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7209),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3034] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7211),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3035] = {
    [sym_manifest_declarator] = STATE(6222),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6819),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3036] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7213),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3037] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7215),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3038] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7217),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3039] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7219),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3040] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7221),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3041] = {
    [sym_manifest_declarator] = STATE(5744),
    [sym_storage_class] = STATE(3058),
    [sym_type] = STATE(6665),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3058),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3042] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7223),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3043] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7225),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3044] = {
    [sym_manifest_declarator] = STATE(5745),
    [sym_storage_class] = STATE(3031),
    [sym_type] = STATE(6855),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3031),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3045] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7227),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3046] = {
    [sym_manifest_declarator] = STATE(5876),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6590),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3047] = {
    [sym_manifest_declarator] = STATE(5777),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6545),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3048] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7229),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3049] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7231),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3050] = {
    [sym_manifest_declarator] = STATE(5894),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6509),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3051] = {
    [sym_manifest_declarator] = STATE(5745),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6855),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3052] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7233),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3053] = {
    [sym_manifest_declarator] = STATE(5894),
    [sym_storage_class] = STATE(3047),
    [sym_type] = STATE(6509),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3047),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3054] = {
    [sym_manifest_declarator] = STATE(6030),
    [sym_storage_class] = STATE(3057),
    [sym_type] = STATE(6740),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3057),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3055] = {
    [sym_manifest_declarator] = STATE(6394),
    [sym_storage_class] = STATE(3026),
    [sym_type] = STATE(6929),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3026),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3056] = {
    [sym_type] = STATE(5407),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_template_parameter] = STATE(6059),
    [sym__template_parameter_list] = STATE(7812),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7189),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7193),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_this] = ACTIONS(7235),
    [sym_alias] = ACTIONS(7199),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3057] = {
    [sym_manifest_declarator] = STATE(6126),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6796),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3058] = {
    [sym_manifest_declarator] = STATE(5805),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6624),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3059] = {
    [sym_manifest_declarator] = STATE(6030),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6740),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3060] = {
    [sym_manifest_declarator] = STATE(5805),
    [sym_storage_class] = STATE(3046),
    [sym_type] = STATE(6624),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3046),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3061] = {
    [sym_manifest_declarator] = STATE(6078),
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6421),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3062] = {
    [sym_manifest_declarator] = STATE(6126),
    [sym_storage_class] = STATE(3035),
    [sym_type] = STATE(6796),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3035),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7203),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3063] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7459),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3064] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7104),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3065] = {
    [sym_token_string] = STATE(3547),
    [sym__builtin_type] = STATE(3526),
    [sym_raw_string] = STATE(3547),
    [sym_hex_string] = STATE(3547),
    [sym_quoted_string] = STATE(3547),
    [sym_interpolated_raw_string] = STATE(3547),
    [sym_interpolated_quoted_string] = STATE(3547),
    [sym_interpolated_token_string] = STATE(3547),
    [sym_string_literal] = STATE(3526),
    [sym_char_literal] = STATE(3526),
    [sym_special_keyword] = STATE(3526),
    [sym__template_single_arg] = STATE(3526),
    [sym_identifier] = ACTIONS(7239),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3249),
    [anon_sym_LPAREN] = ACTIONS(7241),
    [sym_bool] = ACTIONS(7239),
    [sym_byte] = ACTIONS(7239),
    [sym_ubyte] = ACTIONS(7239),
    [sym_char] = ACTIONS(7239),
    [sym_short] = ACTIONS(7239),
    [sym_ushort] = ACTIONS(7239),
    [sym_int] = ACTIONS(7239),
    [sym_uint] = ACTIONS(7239),
    [sym_long] = ACTIONS(7239),
    [sym_ulong] = ACTIONS(7239),
    [sym_cent] = ACTIONS(7239),
    [sym_ucent] = ACTIONS(7239),
    [sym_wchar] = ACTIONS(7239),
    [sym_dchar] = ACTIONS(7239),
    [sym_float] = ACTIONS(7239),
    [sym_double] = ACTIONS(7239),
    [sym_real] = ACTIONS(7239),
    [sym_ifloat] = ACTIONS(7239),
    [sym_idouble] = ACTIONS(7239),
    [sym_ireal] = ACTIONS(7239),
    [sym_cfloat] = ACTIONS(7239),
    [sym_cdouble] = ACTIONS(7239),
    [sym_creal] = ACTIONS(7239),
    [sym_size_t] = ACTIONS(7239),
    [sym_ptrdiff_t] = ACTIONS(7239),
    [sym_string] = ACTIONS(7239),
    [sym_cstring] = ACTIONS(7239),
    [sym_dstring] = ACTIONS(7239),
    [sym_wstring] = ACTIONS(7239),
    [sym_noreturn] = ACTIONS(7239),
    [sym_true] = ACTIONS(7239),
    [sym_false] = ACTIONS(7239),
    [sym_null] = ACTIONS(7239),
    [sym_this] = ACTIONS(7239),
    [sym_void] = ACTIONS(7239),
    [anon_sym_BQUOTE] = ACTIONS(3305),
    [anon_sym_r_DQUOTE] = ACTIONS(3307),
    [anon_sym_x_DQUOTE] = ACTIONS(3309),
    [anon_sym_DQUOTE] = ACTIONS(3311),
    [anon_sym_i_BQUOTE] = ACTIONS(3313),
    [anon_sym_i_DQUOTE] = ACTIONS(3315),
    [anon_sym_iq_LBRACE] = ACTIONS(3317),
    [aux_sym_char_literal_token1] = ACTIONS(3319),
    [anon_sym_SQUOTE] = ACTIONS(3321),
    [anon_sym___DATE__] = ACTIONS(3323),
    [anon_sym___FILE__] = ACTIONS(3323),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3323),
    [anon_sym___FUNCTION__] = ACTIONS(3323),
    [anon_sym___LINE__] = ACTIONS(3323),
    [anon_sym___MODULE__] = ACTIONS(3323),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3323),
    [anon_sym___TIME__] = ACTIONS(3323),
    [anon_sym___TIMESTAMP__] = ACTIONS(3323),
    [anon_sym___VENDOR__] = ACTIONS(3323),
    [anon_sym___VERSION__] = ACTIONS(3323),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7243),
    [sym_float_literal] = ACTIONS(7243),
    [sym__string] = ACTIONS(3327),
  },
  [3066] = {
    [sym_token_string] = STATE(4810),
    [sym__builtin_type] = STATE(4794),
    [sym_raw_string] = STATE(4810),
    [sym_hex_string] = STATE(4810),
    [sym_quoted_string] = STATE(4810),
    [sym_interpolated_raw_string] = STATE(4810),
    [sym_interpolated_quoted_string] = STATE(4810),
    [sym_interpolated_token_string] = STATE(4810),
    [sym_string_literal] = STATE(4794),
    [sym_char_literal] = STATE(4794),
    [sym_special_keyword] = STATE(4794),
    [sym__template_single_arg] = STATE(4794),
    [sym_identifier] = ACTIONS(7245),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7247),
    [anon_sym_LPAREN] = ACTIONS(7249),
    [sym_bool] = ACTIONS(7245),
    [sym_byte] = ACTIONS(7245),
    [sym_ubyte] = ACTIONS(7245),
    [sym_char] = ACTIONS(7245),
    [sym_short] = ACTIONS(7245),
    [sym_ushort] = ACTIONS(7245),
    [sym_int] = ACTIONS(7245),
    [sym_uint] = ACTIONS(7245),
    [sym_long] = ACTIONS(7245),
    [sym_ulong] = ACTIONS(7245),
    [sym_cent] = ACTIONS(7245),
    [sym_ucent] = ACTIONS(7245),
    [sym_wchar] = ACTIONS(7245),
    [sym_dchar] = ACTIONS(7245),
    [sym_float] = ACTIONS(7245),
    [sym_double] = ACTIONS(7245),
    [sym_real] = ACTIONS(7245),
    [sym_ifloat] = ACTIONS(7245),
    [sym_idouble] = ACTIONS(7245),
    [sym_ireal] = ACTIONS(7245),
    [sym_cfloat] = ACTIONS(7245),
    [sym_cdouble] = ACTIONS(7245),
    [sym_creal] = ACTIONS(7245),
    [sym_size_t] = ACTIONS(7245),
    [sym_ptrdiff_t] = ACTIONS(7245),
    [sym_string] = ACTIONS(7245),
    [sym_cstring] = ACTIONS(7245),
    [sym_dstring] = ACTIONS(7245),
    [sym_wstring] = ACTIONS(7245),
    [sym_noreturn] = ACTIONS(7245),
    [sym_true] = ACTIONS(7245),
    [sym_false] = ACTIONS(7245),
    [sym_null] = ACTIONS(7245),
    [sym_this] = ACTIONS(7245),
    [sym_void] = ACTIONS(7245),
    [anon_sym_BQUOTE] = ACTIONS(7251),
    [anon_sym_r_DQUOTE] = ACTIONS(7253),
    [anon_sym_x_DQUOTE] = ACTIONS(7255),
    [anon_sym_DQUOTE] = ACTIONS(7257),
    [anon_sym_i_BQUOTE] = ACTIONS(7259),
    [anon_sym_i_DQUOTE] = ACTIONS(7261),
    [anon_sym_iq_LBRACE] = ACTIONS(7263),
    [aux_sym_char_literal_token1] = ACTIONS(7265),
    [anon_sym_SQUOTE] = ACTIONS(7267),
    [anon_sym___DATE__] = ACTIONS(7269),
    [anon_sym___FILE__] = ACTIONS(7269),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7269),
    [anon_sym___FUNCTION__] = ACTIONS(7269),
    [anon_sym___LINE__] = ACTIONS(7269),
    [anon_sym___MODULE__] = ACTIONS(7269),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7269),
    [anon_sym___TIME__] = ACTIONS(7269),
    [anon_sym___TIMESTAMP__] = ACTIONS(7269),
    [anon_sym___VENDOR__] = ACTIONS(7269),
    [anon_sym___VERSION__] = ACTIONS(7269),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7271),
    [sym_float_literal] = ACTIONS(7271),
    [sym__string] = ACTIONS(7273),
  },
  [3067] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6214),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3068] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(5930),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3069] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(5949),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3070] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6356),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3071] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7371),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3072] = {
    [sym_token_string] = STATE(4714),
    [sym__builtin_type] = STATE(4676),
    [sym_raw_string] = STATE(4714),
    [sym_hex_string] = STATE(4714),
    [sym_quoted_string] = STATE(4714),
    [sym_interpolated_raw_string] = STATE(4714),
    [sym_interpolated_quoted_string] = STATE(4714),
    [sym_interpolated_token_string] = STATE(4714),
    [sym_string_literal] = STATE(4676),
    [sym_char_literal] = STATE(4676),
    [sym_special_keyword] = STATE(4676),
    [sym__template_single_arg] = STATE(4676),
    [sym_identifier] = ACTIONS(7275),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7277),
    [anon_sym_LPAREN] = ACTIONS(7279),
    [sym_bool] = ACTIONS(7275),
    [sym_byte] = ACTIONS(7275),
    [sym_ubyte] = ACTIONS(7275),
    [sym_char] = ACTIONS(7275),
    [sym_short] = ACTIONS(7275),
    [sym_ushort] = ACTIONS(7275),
    [sym_int] = ACTIONS(7275),
    [sym_uint] = ACTIONS(7275),
    [sym_long] = ACTIONS(7275),
    [sym_ulong] = ACTIONS(7275),
    [sym_cent] = ACTIONS(7275),
    [sym_ucent] = ACTIONS(7275),
    [sym_wchar] = ACTIONS(7275),
    [sym_dchar] = ACTIONS(7275),
    [sym_float] = ACTIONS(7275),
    [sym_double] = ACTIONS(7275),
    [sym_real] = ACTIONS(7275),
    [sym_ifloat] = ACTIONS(7275),
    [sym_idouble] = ACTIONS(7275),
    [sym_ireal] = ACTIONS(7275),
    [sym_cfloat] = ACTIONS(7275),
    [sym_cdouble] = ACTIONS(7275),
    [sym_creal] = ACTIONS(7275),
    [sym_size_t] = ACTIONS(7275),
    [sym_ptrdiff_t] = ACTIONS(7275),
    [sym_string] = ACTIONS(7275),
    [sym_cstring] = ACTIONS(7275),
    [sym_dstring] = ACTIONS(7275),
    [sym_wstring] = ACTIONS(7275),
    [sym_noreturn] = ACTIONS(7275),
    [sym_true] = ACTIONS(7275),
    [sym_false] = ACTIONS(7275),
    [sym_null] = ACTIONS(7275),
    [sym_this] = ACTIONS(7275),
    [sym_void] = ACTIONS(7275),
    [anon_sym_BQUOTE] = ACTIONS(7281),
    [anon_sym_r_DQUOTE] = ACTIONS(7283),
    [anon_sym_x_DQUOTE] = ACTIONS(7285),
    [anon_sym_DQUOTE] = ACTIONS(7287),
    [anon_sym_i_BQUOTE] = ACTIONS(7289),
    [anon_sym_i_DQUOTE] = ACTIONS(7291),
    [anon_sym_iq_LBRACE] = ACTIONS(7293),
    [aux_sym_char_literal_token1] = ACTIONS(7295),
    [anon_sym_SQUOTE] = ACTIONS(7297),
    [anon_sym___DATE__] = ACTIONS(7299),
    [anon_sym___FILE__] = ACTIONS(7299),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7299),
    [anon_sym___FUNCTION__] = ACTIONS(7299),
    [anon_sym___LINE__] = ACTIONS(7299),
    [anon_sym___MODULE__] = ACTIONS(7299),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7299),
    [anon_sym___TIME__] = ACTIONS(7299),
    [anon_sym___TIMESTAMP__] = ACTIONS(7299),
    [anon_sym___VENDOR__] = ACTIONS(7299),
    [anon_sym___VERSION__] = ACTIONS(7299),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7301),
    [sym_float_literal] = ACTIONS(7301),
    [sym__string] = ACTIONS(7303),
  },
  [3073] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6253),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3074] = {
    [sym_token_string] = STATE(2400),
    [sym__builtin_type] = STATE(2399),
    [sym_raw_string] = STATE(2400),
    [sym_hex_string] = STATE(2400),
    [sym_quoted_string] = STATE(2400),
    [sym_interpolated_raw_string] = STATE(2400),
    [sym_interpolated_quoted_string] = STATE(2400),
    [sym_interpolated_token_string] = STATE(2400),
    [sym_string_literal] = STATE(2399),
    [sym_char_literal] = STATE(2399),
    [sym_special_keyword] = STATE(2399),
    [sym__template_single_arg] = STATE(2399),
    [sym_identifier] = ACTIONS(7305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7307),
    [anon_sym_LPAREN] = ACTIONS(7309),
    [sym_bool] = ACTIONS(7305),
    [sym_byte] = ACTIONS(7305),
    [sym_ubyte] = ACTIONS(7305),
    [sym_char] = ACTIONS(7305),
    [sym_short] = ACTIONS(7305),
    [sym_ushort] = ACTIONS(7305),
    [sym_int] = ACTIONS(7305),
    [sym_uint] = ACTIONS(7305),
    [sym_long] = ACTIONS(7305),
    [sym_ulong] = ACTIONS(7305),
    [sym_cent] = ACTIONS(7305),
    [sym_ucent] = ACTIONS(7305),
    [sym_wchar] = ACTIONS(7305),
    [sym_dchar] = ACTIONS(7305),
    [sym_float] = ACTIONS(7305),
    [sym_double] = ACTIONS(7305),
    [sym_real] = ACTIONS(7305),
    [sym_ifloat] = ACTIONS(7305),
    [sym_idouble] = ACTIONS(7305),
    [sym_ireal] = ACTIONS(7305),
    [sym_cfloat] = ACTIONS(7305),
    [sym_cdouble] = ACTIONS(7305),
    [sym_creal] = ACTIONS(7305),
    [sym_size_t] = ACTIONS(7305),
    [sym_ptrdiff_t] = ACTIONS(7305),
    [sym_string] = ACTIONS(7305),
    [sym_cstring] = ACTIONS(7305),
    [sym_dstring] = ACTIONS(7305),
    [sym_wstring] = ACTIONS(7305),
    [sym_noreturn] = ACTIONS(7305),
    [sym_true] = ACTIONS(7305),
    [sym_false] = ACTIONS(7305),
    [sym_null] = ACTIONS(7305),
    [sym_this] = ACTIONS(7305),
    [sym_void] = ACTIONS(7305),
    [anon_sym_BQUOTE] = ACTIONS(7311),
    [anon_sym_r_DQUOTE] = ACTIONS(7313),
    [anon_sym_x_DQUOTE] = ACTIONS(7315),
    [anon_sym_DQUOTE] = ACTIONS(7317),
    [anon_sym_i_BQUOTE] = ACTIONS(7319),
    [anon_sym_i_DQUOTE] = ACTIONS(7321),
    [anon_sym_iq_LBRACE] = ACTIONS(7323),
    [aux_sym_char_literal_token1] = ACTIONS(7325),
    [anon_sym_SQUOTE] = ACTIONS(7327),
    [anon_sym___DATE__] = ACTIONS(7329),
    [anon_sym___FILE__] = ACTIONS(7329),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7329),
    [anon_sym___FUNCTION__] = ACTIONS(7329),
    [anon_sym___LINE__] = ACTIONS(7329),
    [anon_sym___MODULE__] = ACTIONS(7329),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7329),
    [anon_sym___TIME__] = ACTIONS(7329),
    [anon_sym___TIMESTAMP__] = ACTIONS(7329),
    [anon_sym___VENDOR__] = ACTIONS(7329),
    [anon_sym___VERSION__] = ACTIONS(7329),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7331),
    [sym_float_literal] = ACTIONS(7331),
    [sym__string] = ACTIONS(7333),
  },
  [3075] = {
    [sym_token_string] = STATE(2400),
    [sym__builtin_type] = STATE(2399),
    [sym_raw_string] = STATE(2400),
    [sym_hex_string] = STATE(2400),
    [sym_quoted_string] = STATE(2400),
    [sym_interpolated_raw_string] = STATE(2400),
    [sym_interpolated_quoted_string] = STATE(2400),
    [sym_interpolated_token_string] = STATE(2400),
    [sym_string_literal] = STATE(2399),
    [sym_char_literal] = STATE(2399),
    [sym_special_keyword] = STATE(2399),
    [sym__template_single_arg] = STATE(2399),
    [sym_identifier] = ACTIONS(7305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7307),
    [anon_sym_LPAREN] = ACTIONS(7309),
    [sym_bool] = ACTIONS(7305),
    [sym_byte] = ACTIONS(7305),
    [sym_ubyte] = ACTIONS(7305),
    [sym_char] = ACTIONS(7305),
    [sym_short] = ACTIONS(7305),
    [sym_ushort] = ACTIONS(7305),
    [sym_int] = ACTIONS(7305),
    [sym_uint] = ACTIONS(7305),
    [sym_long] = ACTIONS(7305),
    [sym_ulong] = ACTIONS(7305),
    [sym_cent] = ACTIONS(7305),
    [sym_ucent] = ACTIONS(7305),
    [sym_wchar] = ACTIONS(7305),
    [sym_dchar] = ACTIONS(7305),
    [sym_float] = ACTIONS(7305),
    [sym_double] = ACTIONS(7305),
    [sym_real] = ACTIONS(7305),
    [sym_ifloat] = ACTIONS(7305),
    [sym_idouble] = ACTIONS(7305),
    [sym_ireal] = ACTIONS(7305),
    [sym_cfloat] = ACTIONS(7305),
    [sym_cdouble] = ACTIONS(7305),
    [sym_creal] = ACTIONS(7305),
    [sym_size_t] = ACTIONS(7305),
    [sym_ptrdiff_t] = ACTIONS(7305),
    [sym_string] = ACTIONS(7305),
    [sym_cstring] = ACTIONS(7305),
    [sym_dstring] = ACTIONS(7305),
    [sym_wstring] = ACTIONS(7305),
    [sym_noreturn] = ACTIONS(7305),
    [sym_true] = ACTIONS(7305),
    [sym_false] = ACTIONS(7305),
    [sym_null] = ACTIONS(7305),
    [sym_this] = ACTIONS(7305),
    [sym_void] = ACTIONS(7305),
    [anon_sym_BQUOTE] = ACTIONS(7311),
    [anon_sym_r_DQUOTE] = ACTIONS(7313),
    [anon_sym_x_DQUOTE] = ACTIONS(7315),
    [anon_sym_DQUOTE] = ACTIONS(7317),
    [anon_sym_i_BQUOTE] = ACTIONS(7319),
    [anon_sym_i_DQUOTE] = ACTIONS(7321),
    [anon_sym_iq_LBRACE] = ACTIONS(7323),
    [aux_sym_char_literal_token1] = ACTIONS(7325),
    [anon_sym_SQUOTE] = ACTIONS(7327),
    [anon_sym___DATE__] = ACTIONS(7329),
    [anon_sym___FILE__] = ACTIONS(7329),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7329),
    [anon_sym___FUNCTION__] = ACTIONS(7329),
    [anon_sym___LINE__] = ACTIONS(7329),
    [anon_sym___MODULE__] = ACTIONS(7329),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7329),
    [anon_sym___TIME__] = ACTIONS(7329),
    [anon_sym___TIMESTAMP__] = ACTIONS(7329),
    [anon_sym___VENDOR__] = ACTIONS(7329),
    [anon_sym___VERSION__] = ACTIONS(7329),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7331),
    [sym_float_literal] = ACTIONS(7331),
    [sym__string] = ACTIONS(7333),
  },
  [3076] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7911),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3077] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7220),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3078] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(5953),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3079] = {
    [sym_token_string] = STATE(3437),
    [sym__builtin_type] = STATE(3463),
    [sym_raw_string] = STATE(3437),
    [sym_hex_string] = STATE(3437),
    [sym_quoted_string] = STATE(3437),
    [sym_interpolated_raw_string] = STATE(3437),
    [sym_interpolated_quoted_string] = STATE(3437),
    [sym_interpolated_token_string] = STATE(3437),
    [sym_string_literal] = STATE(3463),
    [sym_char_literal] = STATE(3463),
    [sym_special_keyword] = STATE(3463),
    [sym__template_single_arg] = STATE(3463),
    [sym_identifier] = ACTIONS(7335),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(81),
    [anon_sym_LPAREN] = ACTIONS(7337),
    [sym_bool] = ACTIONS(7335),
    [sym_byte] = ACTIONS(7335),
    [sym_ubyte] = ACTIONS(7335),
    [sym_char] = ACTIONS(7335),
    [sym_short] = ACTIONS(7335),
    [sym_ushort] = ACTIONS(7335),
    [sym_int] = ACTIONS(7335),
    [sym_uint] = ACTIONS(7335),
    [sym_long] = ACTIONS(7335),
    [sym_ulong] = ACTIONS(7335),
    [sym_cent] = ACTIONS(7335),
    [sym_ucent] = ACTIONS(7335),
    [sym_wchar] = ACTIONS(7335),
    [sym_dchar] = ACTIONS(7335),
    [sym_float] = ACTIONS(7335),
    [sym_double] = ACTIONS(7335),
    [sym_real] = ACTIONS(7335),
    [sym_ifloat] = ACTIONS(7335),
    [sym_idouble] = ACTIONS(7335),
    [sym_ireal] = ACTIONS(7335),
    [sym_cfloat] = ACTIONS(7335),
    [sym_cdouble] = ACTIONS(7335),
    [sym_creal] = ACTIONS(7335),
    [sym_size_t] = ACTIONS(7335),
    [sym_ptrdiff_t] = ACTIONS(7335),
    [sym_string] = ACTIONS(7335),
    [sym_cstring] = ACTIONS(7335),
    [sym_dstring] = ACTIONS(7335),
    [sym_wstring] = ACTIONS(7335),
    [sym_noreturn] = ACTIONS(7335),
    [sym_true] = ACTIONS(7335),
    [sym_false] = ACTIONS(7335),
    [sym_null] = ACTIONS(7335),
    [sym_this] = ACTIONS(7335),
    [sym_void] = ACTIONS(7335),
    [anon_sym_BQUOTE] = ACTIONS(211),
    [anon_sym_r_DQUOTE] = ACTIONS(213),
    [anon_sym_x_DQUOTE] = ACTIONS(215),
    [anon_sym_DQUOTE] = ACTIONS(217),
    [anon_sym_i_BQUOTE] = ACTIONS(219),
    [anon_sym_i_DQUOTE] = ACTIONS(221),
    [anon_sym_iq_LBRACE] = ACTIONS(223),
    [aux_sym_char_literal_token1] = ACTIONS(225),
    [anon_sym_SQUOTE] = ACTIONS(227),
    [anon_sym___DATE__] = ACTIONS(229),
    [anon_sym___FILE__] = ACTIONS(229),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(229),
    [anon_sym___FUNCTION__] = ACTIONS(229),
    [anon_sym___LINE__] = ACTIONS(229),
    [anon_sym___MODULE__] = ACTIONS(229),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(229),
    [anon_sym___TIME__] = ACTIONS(229),
    [anon_sym___TIMESTAMP__] = ACTIONS(229),
    [anon_sym___VENDOR__] = ACTIONS(229),
    [anon_sym___VERSION__] = ACTIONS(229),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7339),
    [sym_float_literal] = ACTIONS(7339),
    [sym__string] = ACTIONS(233),
  },
  [3080] = {
    [sym_token_string] = STATE(3527),
    [sym__builtin_type] = STATE(3572),
    [sym_raw_string] = STATE(3527),
    [sym_hex_string] = STATE(3527),
    [sym_quoted_string] = STATE(3527),
    [sym_interpolated_raw_string] = STATE(3527),
    [sym_interpolated_quoted_string] = STATE(3527),
    [sym_interpolated_token_string] = STATE(3527),
    [sym_string_literal] = STATE(3572),
    [sym_char_literal] = STATE(3572),
    [sym_special_keyword] = STATE(3572),
    [sym__template_single_arg] = STATE(3572),
    [sym_identifier] = ACTIONS(7341),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(3643),
    [anon_sym_LPAREN] = ACTIONS(7343),
    [sym_bool] = ACTIONS(7341),
    [sym_byte] = ACTIONS(7341),
    [sym_ubyte] = ACTIONS(7341),
    [sym_char] = ACTIONS(7341),
    [sym_short] = ACTIONS(7341),
    [sym_ushort] = ACTIONS(7341),
    [sym_int] = ACTIONS(7341),
    [sym_uint] = ACTIONS(7341),
    [sym_long] = ACTIONS(7341),
    [sym_ulong] = ACTIONS(7341),
    [sym_cent] = ACTIONS(7341),
    [sym_ucent] = ACTIONS(7341),
    [sym_wchar] = ACTIONS(7341),
    [sym_dchar] = ACTIONS(7341),
    [sym_float] = ACTIONS(7341),
    [sym_double] = ACTIONS(7341),
    [sym_real] = ACTIONS(7341),
    [sym_ifloat] = ACTIONS(7341),
    [sym_idouble] = ACTIONS(7341),
    [sym_ireal] = ACTIONS(7341),
    [sym_cfloat] = ACTIONS(7341),
    [sym_cdouble] = ACTIONS(7341),
    [sym_creal] = ACTIONS(7341),
    [sym_size_t] = ACTIONS(7341),
    [sym_ptrdiff_t] = ACTIONS(7341),
    [sym_string] = ACTIONS(7341),
    [sym_cstring] = ACTIONS(7341),
    [sym_dstring] = ACTIONS(7341),
    [sym_wstring] = ACTIONS(7341),
    [sym_noreturn] = ACTIONS(7341),
    [sym_true] = ACTIONS(7341),
    [sym_false] = ACTIONS(7341),
    [sym_null] = ACTIONS(7341),
    [sym_this] = ACTIONS(7341),
    [sym_void] = ACTIONS(7341),
    [anon_sym_BQUOTE] = ACTIONS(3691),
    [anon_sym_r_DQUOTE] = ACTIONS(3693),
    [anon_sym_x_DQUOTE] = ACTIONS(3695),
    [anon_sym_DQUOTE] = ACTIONS(3697),
    [anon_sym_i_BQUOTE] = ACTIONS(3699),
    [anon_sym_i_DQUOTE] = ACTIONS(3701),
    [anon_sym_iq_LBRACE] = ACTIONS(3703),
    [aux_sym_char_literal_token1] = ACTIONS(3705),
    [anon_sym_SQUOTE] = ACTIONS(3707),
    [anon_sym___DATE__] = ACTIONS(3709),
    [anon_sym___FILE__] = ACTIONS(3709),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(3709),
    [anon_sym___FUNCTION__] = ACTIONS(3709),
    [anon_sym___LINE__] = ACTIONS(3709),
    [anon_sym___MODULE__] = ACTIONS(3709),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(3709),
    [anon_sym___TIME__] = ACTIONS(3709),
    [anon_sym___TIMESTAMP__] = ACTIONS(3709),
    [anon_sym___VENDOR__] = ACTIONS(3709),
    [anon_sym___VERSION__] = ACTIONS(3709),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7345),
    [sym_float_literal] = ACTIONS(7345),
    [sym__string] = ACTIONS(3713),
  },
  [3081] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7155),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3082] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6987),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3083] = {
    [sym_token_string] = STATE(3376),
    [sym__builtin_type] = STATE(3374),
    [sym_raw_string] = STATE(3376),
    [sym_hex_string] = STATE(3376),
    [sym_quoted_string] = STATE(3376),
    [sym_interpolated_raw_string] = STATE(3376),
    [sym_interpolated_quoted_string] = STATE(3376),
    [sym_interpolated_token_string] = STATE(3376),
    [sym_string_literal] = STATE(3374),
    [sym_char_literal] = STATE(3374),
    [sym_special_keyword] = STATE(3374),
    [sym__template_single_arg] = STATE(3374),
    [sym_identifier] = ACTIONS(7347),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7349),
    [anon_sym_LPAREN] = ACTIONS(7351),
    [sym_bool] = ACTIONS(7347),
    [sym_byte] = ACTIONS(7347),
    [sym_ubyte] = ACTIONS(7347),
    [sym_char] = ACTIONS(7347),
    [sym_short] = ACTIONS(7347),
    [sym_ushort] = ACTIONS(7347),
    [sym_int] = ACTIONS(7347),
    [sym_uint] = ACTIONS(7347),
    [sym_long] = ACTIONS(7347),
    [sym_ulong] = ACTIONS(7347),
    [sym_cent] = ACTIONS(7347),
    [sym_ucent] = ACTIONS(7347),
    [sym_wchar] = ACTIONS(7347),
    [sym_dchar] = ACTIONS(7347),
    [sym_float] = ACTIONS(7347),
    [sym_double] = ACTIONS(7347),
    [sym_real] = ACTIONS(7347),
    [sym_ifloat] = ACTIONS(7347),
    [sym_idouble] = ACTIONS(7347),
    [sym_ireal] = ACTIONS(7347),
    [sym_cfloat] = ACTIONS(7347),
    [sym_cdouble] = ACTIONS(7347),
    [sym_creal] = ACTIONS(7347),
    [sym_size_t] = ACTIONS(7347),
    [sym_ptrdiff_t] = ACTIONS(7347),
    [sym_string] = ACTIONS(7347),
    [sym_cstring] = ACTIONS(7347),
    [sym_dstring] = ACTIONS(7347),
    [sym_wstring] = ACTIONS(7347),
    [sym_noreturn] = ACTIONS(7347),
    [sym_true] = ACTIONS(7347),
    [sym_false] = ACTIONS(7347),
    [sym_null] = ACTIONS(7347),
    [sym_this] = ACTIONS(7347),
    [sym_void] = ACTIONS(7347),
    [anon_sym_BQUOTE] = ACTIONS(7353),
    [anon_sym_r_DQUOTE] = ACTIONS(7355),
    [anon_sym_x_DQUOTE] = ACTIONS(7357),
    [anon_sym_DQUOTE] = ACTIONS(7359),
    [anon_sym_i_BQUOTE] = ACTIONS(7361),
    [anon_sym_i_DQUOTE] = ACTIONS(7363),
    [anon_sym_iq_LBRACE] = ACTIONS(7365),
    [aux_sym_char_literal_token1] = ACTIONS(7367),
    [anon_sym_SQUOTE] = ACTIONS(7369),
    [anon_sym___DATE__] = ACTIONS(7371),
    [anon_sym___FILE__] = ACTIONS(7371),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7371),
    [anon_sym___FUNCTION__] = ACTIONS(7371),
    [anon_sym___LINE__] = ACTIONS(7371),
    [anon_sym___MODULE__] = ACTIONS(7371),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7371),
    [anon_sym___TIME__] = ACTIONS(7371),
    [anon_sym___TIMESTAMP__] = ACTIONS(7371),
    [anon_sym___VENDOR__] = ACTIONS(7371),
    [anon_sym___VERSION__] = ACTIONS(7371),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7373),
    [sym_float_literal] = ACTIONS(7373),
    [sym__string] = ACTIONS(7375),
  },
  [3084] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7254),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3085] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(5758),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3086] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6037),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3087] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(8038),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3088] = {
    [sym_token_string] = STATE(3252),
    [sym__builtin_type] = STATE(3257),
    [sym_raw_string] = STATE(3252),
    [sym_hex_string] = STATE(3252),
    [sym_quoted_string] = STATE(3252),
    [sym_interpolated_raw_string] = STATE(3252),
    [sym_interpolated_quoted_string] = STATE(3252),
    [sym_interpolated_token_string] = STATE(3252),
    [sym_string_literal] = STATE(3257),
    [sym_char_literal] = STATE(3257),
    [sym_special_keyword] = STATE(3257),
    [sym__template_single_arg] = STATE(3257),
    [sym_identifier] = ACTIONS(7377),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7379),
    [anon_sym_LPAREN] = ACTIONS(7381),
    [sym_bool] = ACTIONS(7377),
    [sym_byte] = ACTIONS(7377),
    [sym_ubyte] = ACTIONS(7377),
    [sym_char] = ACTIONS(7377),
    [sym_short] = ACTIONS(7377),
    [sym_ushort] = ACTIONS(7377),
    [sym_int] = ACTIONS(7377),
    [sym_uint] = ACTIONS(7377),
    [sym_long] = ACTIONS(7377),
    [sym_ulong] = ACTIONS(7377),
    [sym_cent] = ACTIONS(7377),
    [sym_ucent] = ACTIONS(7377),
    [sym_wchar] = ACTIONS(7377),
    [sym_dchar] = ACTIONS(7377),
    [sym_float] = ACTIONS(7377),
    [sym_double] = ACTIONS(7377),
    [sym_real] = ACTIONS(7377),
    [sym_ifloat] = ACTIONS(7377),
    [sym_idouble] = ACTIONS(7377),
    [sym_ireal] = ACTIONS(7377),
    [sym_cfloat] = ACTIONS(7377),
    [sym_cdouble] = ACTIONS(7377),
    [sym_creal] = ACTIONS(7377),
    [sym_size_t] = ACTIONS(7377),
    [sym_ptrdiff_t] = ACTIONS(7377),
    [sym_string] = ACTIONS(7377),
    [sym_cstring] = ACTIONS(7377),
    [sym_dstring] = ACTIONS(7377),
    [sym_wstring] = ACTIONS(7377),
    [sym_noreturn] = ACTIONS(7377),
    [sym_true] = ACTIONS(7377),
    [sym_false] = ACTIONS(7377),
    [sym_null] = ACTIONS(7377),
    [sym_this] = ACTIONS(7377),
    [sym_void] = ACTIONS(7377),
    [anon_sym_BQUOTE] = ACTIONS(7383),
    [anon_sym_r_DQUOTE] = ACTIONS(7385),
    [anon_sym_x_DQUOTE] = ACTIONS(7387),
    [anon_sym_DQUOTE] = ACTIONS(7389),
    [anon_sym_i_BQUOTE] = ACTIONS(7391),
    [anon_sym_i_DQUOTE] = ACTIONS(7393),
    [anon_sym_iq_LBRACE] = ACTIONS(7395),
    [aux_sym_char_literal_token1] = ACTIONS(7397),
    [anon_sym_SQUOTE] = ACTIONS(7399),
    [anon_sym___DATE__] = ACTIONS(7401),
    [anon_sym___FILE__] = ACTIONS(7401),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7401),
    [anon_sym___FUNCTION__] = ACTIONS(7401),
    [anon_sym___LINE__] = ACTIONS(7401),
    [anon_sym___MODULE__] = ACTIONS(7401),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7401),
    [anon_sym___TIME__] = ACTIONS(7401),
    [anon_sym___TIMESTAMP__] = ACTIONS(7401),
    [anon_sym___VENDOR__] = ACTIONS(7401),
    [anon_sym___VERSION__] = ACTIONS(7401),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7403),
    [sym_float_literal] = ACTIONS(7403),
    [sym__string] = ACTIONS(7405),
  },
  [3089] = {
    [sym_token_string] = STATE(2400),
    [sym__builtin_type] = STATE(2399),
    [sym_raw_string] = STATE(2400),
    [sym_hex_string] = STATE(2400),
    [sym_quoted_string] = STATE(2400),
    [sym_interpolated_raw_string] = STATE(2400),
    [sym_interpolated_quoted_string] = STATE(2400),
    [sym_interpolated_token_string] = STATE(2400),
    [sym_string_literal] = STATE(2399),
    [sym_char_literal] = STATE(2399),
    [sym_special_keyword] = STATE(2399),
    [sym__template_single_arg] = STATE(2399),
    [sym_identifier] = ACTIONS(7305),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7307),
    [anon_sym_LPAREN] = ACTIONS(7309),
    [sym_bool] = ACTIONS(7305),
    [sym_byte] = ACTIONS(7305),
    [sym_ubyte] = ACTIONS(7305),
    [sym_char] = ACTIONS(7305),
    [sym_short] = ACTIONS(7305),
    [sym_ushort] = ACTIONS(7305),
    [sym_int] = ACTIONS(7305),
    [sym_uint] = ACTIONS(7305),
    [sym_long] = ACTIONS(7305),
    [sym_ulong] = ACTIONS(7305),
    [sym_cent] = ACTIONS(7305),
    [sym_ucent] = ACTIONS(7305),
    [sym_wchar] = ACTIONS(7305),
    [sym_dchar] = ACTIONS(7305),
    [sym_float] = ACTIONS(7305),
    [sym_double] = ACTIONS(7305),
    [sym_real] = ACTIONS(7305),
    [sym_ifloat] = ACTIONS(7305),
    [sym_idouble] = ACTIONS(7305),
    [sym_ireal] = ACTIONS(7305),
    [sym_cfloat] = ACTIONS(7305),
    [sym_cdouble] = ACTIONS(7305),
    [sym_creal] = ACTIONS(7305),
    [sym_size_t] = ACTIONS(7305),
    [sym_ptrdiff_t] = ACTIONS(7305),
    [sym_string] = ACTIONS(7305),
    [sym_cstring] = ACTIONS(7305),
    [sym_dstring] = ACTIONS(7305),
    [sym_wstring] = ACTIONS(7305),
    [sym_noreturn] = ACTIONS(7305),
    [sym_true] = ACTIONS(7305),
    [sym_false] = ACTIONS(7305),
    [sym_null] = ACTIONS(7305),
    [sym_this] = ACTIONS(7305),
    [sym_void] = ACTIONS(7305),
    [anon_sym_BQUOTE] = ACTIONS(7311),
    [anon_sym_r_DQUOTE] = ACTIONS(7313),
    [anon_sym_x_DQUOTE] = ACTIONS(7315),
    [anon_sym_DQUOTE] = ACTIONS(7317),
    [anon_sym_i_BQUOTE] = ACTIONS(7319),
    [anon_sym_i_DQUOTE] = ACTIONS(7321),
    [anon_sym_iq_LBRACE] = ACTIONS(7323),
    [aux_sym_char_literal_token1] = ACTIONS(7325),
    [anon_sym_SQUOTE] = ACTIONS(7327),
    [anon_sym___DATE__] = ACTIONS(7329),
    [anon_sym___FILE__] = ACTIONS(7329),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7329),
    [anon_sym___FUNCTION__] = ACTIONS(7329),
    [anon_sym___LINE__] = ACTIONS(7329),
    [anon_sym___MODULE__] = ACTIONS(7329),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7329),
    [anon_sym___TIME__] = ACTIONS(7329),
    [anon_sym___TIMESTAMP__] = ACTIONS(7329),
    [anon_sym___VENDOR__] = ACTIONS(7329),
    [anon_sym___VERSION__] = ACTIONS(7329),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7331),
    [sym_float_literal] = ACTIONS(7331),
    [sym__string] = ACTIONS(7333),
  },
  [3090] = {
    [sym_token_string] = STATE(3125),
    [sym__builtin_type] = STATE(3101),
    [sym_raw_string] = STATE(3125),
    [sym_hex_string] = STATE(3125),
    [sym_quoted_string] = STATE(3125),
    [sym_interpolated_raw_string] = STATE(3125),
    [sym_interpolated_quoted_string] = STATE(3125),
    [sym_interpolated_token_string] = STATE(3125),
    [sym_string_literal] = STATE(3101),
    [sym_char_literal] = STATE(3101),
    [sym_special_keyword] = STATE(3101),
    [sym__template_single_arg] = STATE(3101),
    [sym_identifier] = ACTIONS(7407),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7409),
    [anon_sym_LPAREN] = ACTIONS(7411),
    [sym_bool] = ACTIONS(7407),
    [sym_byte] = ACTIONS(7407),
    [sym_ubyte] = ACTIONS(7407),
    [sym_char] = ACTIONS(7407),
    [sym_short] = ACTIONS(7407),
    [sym_ushort] = ACTIONS(7407),
    [sym_int] = ACTIONS(7407),
    [sym_uint] = ACTIONS(7407),
    [sym_long] = ACTIONS(7407),
    [sym_ulong] = ACTIONS(7407),
    [sym_cent] = ACTIONS(7407),
    [sym_ucent] = ACTIONS(7407),
    [sym_wchar] = ACTIONS(7407),
    [sym_dchar] = ACTIONS(7407),
    [sym_float] = ACTIONS(7407),
    [sym_double] = ACTIONS(7407),
    [sym_real] = ACTIONS(7407),
    [sym_ifloat] = ACTIONS(7407),
    [sym_idouble] = ACTIONS(7407),
    [sym_ireal] = ACTIONS(7407),
    [sym_cfloat] = ACTIONS(7407),
    [sym_cdouble] = ACTIONS(7407),
    [sym_creal] = ACTIONS(7407),
    [sym_size_t] = ACTIONS(7407),
    [sym_ptrdiff_t] = ACTIONS(7407),
    [sym_string] = ACTIONS(7407),
    [sym_cstring] = ACTIONS(7407),
    [sym_dstring] = ACTIONS(7407),
    [sym_wstring] = ACTIONS(7407),
    [sym_noreturn] = ACTIONS(7407),
    [sym_true] = ACTIONS(7407),
    [sym_false] = ACTIONS(7407),
    [sym_null] = ACTIONS(7407),
    [sym_this] = ACTIONS(7407),
    [sym_void] = ACTIONS(7407),
    [anon_sym_BQUOTE] = ACTIONS(7413),
    [anon_sym_r_DQUOTE] = ACTIONS(7415),
    [anon_sym_x_DQUOTE] = ACTIONS(7417),
    [anon_sym_DQUOTE] = ACTIONS(7419),
    [anon_sym_i_BQUOTE] = ACTIONS(7421),
    [anon_sym_i_DQUOTE] = ACTIONS(7423),
    [anon_sym_iq_LBRACE] = ACTIONS(7425),
    [aux_sym_char_literal_token1] = ACTIONS(7427),
    [anon_sym_SQUOTE] = ACTIONS(7429),
    [anon_sym___DATE__] = ACTIONS(7431),
    [anon_sym___FILE__] = ACTIONS(7431),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7431),
    [anon_sym___FUNCTION__] = ACTIONS(7431),
    [anon_sym___LINE__] = ACTIONS(7431),
    [anon_sym___MODULE__] = ACTIONS(7431),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7431),
    [anon_sym___TIME__] = ACTIONS(7431),
    [anon_sym___TIMESTAMP__] = ACTIONS(7431),
    [anon_sym___VENDOR__] = ACTIONS(7431),
    [anon_sym___VERSION__] = ACTIONS(7431),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7433),
    [sym_float_literal] = ACTIONS(7433),
    [sym__string] = ACTIONS(7435),
  },
  [3091] = {
    [sym_token_string] = STATE(3320),
    [sym__builtin_type] = STATE(3312),
    [sym_raw_string] = STATE(3320),
    [sym_hex_string] = STATE(3320),
    [sym_quoted_string] = STATE(3320),
    [sym_interpolated_raw_string] = STATE(3320),
    [sym_interpolated_quoted_string] = STATE(3320),
    [sym_interpolated_token_string] = STATE(3320),
    [sym_string_literal] = STATE(3312),
    [sym_char_literal] = STATE(3312),
    [sym_special_keyword] = STATE(3312),
    [sym__template_single_arg] = STATE(3312),
    [sym_identifier] = ACTIONS(7437),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7439),
    [anon_sym_LPAREN] = ACTIONS(7441),
    [sym_bool] = ACTIONS(7437),
    [sym_byte] = ACTIONS(7437),
    [sym_ubyte] = ACTIONS(7437),
    [sym_char] = ACTIONS(7437),
    [sym_short] = ACTIONS(7437),
    [sym_ushort] = ACTIONS(7437),
    [sym_int] = ACTIONS(7437),
    [sym_uint] = ACTIONS(7437),
    [sym_long] = ACTIONS(7437),
    [sym_ulong] = ACTIONS(7437),
    [sym_cent] = ACTIONS(7437),
    [sym_ucent] = ACTIONS(7437),
    [sym_wchar] = ACTIONS(7437),
    [sym_dchar] = ACTIONS(7437),
    [sym_float] = ACTIONS(7437),
    [sym_double] = ACTIONS(7437),
    [sym_real] = ACTIONS(7437),
    [sym_ifloat] = ACTIONS(7437),
    [sym_idouble] = ACTIONS(7437),
    [sym_ireal] = ACTIONS(7437),
    [sym_cfloat] = ACTIONS(7437),
    [sym_cdouble] = ACTIONS(7437),
    [sym_creal] = ACTIONS(7437),
    [sym_size_t] = ACTIONS(7437),
    [sym_ptrdiff_t] = ACTIONS(7437),
    [sym_string] = ACTIONS(7437),
    [sym_cstring] = ACTIONS(7437),
    [sym_dstring] = ACTIONS(7437),
    [sym_wstring] = ACTIONS(7437),
    [sym_noreturn] = ACTIONS(7437),
    [sym_true] = ACTIONS(7437),
    [sym_false] = ACTIONS(7437),
    [sym_null] = ACTIONS(7437),
    [sym_this] = ACTIONS(7437),
    [sym_void] = ACTIONS(7437),
    [anon_sym_BQUOTE] = ACTIONS(7443),
    [anon_sym_r_DQUOTE] = ACTIONS(7445),
    [anon_sym_x_DQUOTE] = ACTIONS(7447),
    [anon_sym_DQUOTE] = ACTIONS(7449),
    [anon_sym_i_BQUOTE] = ACTIONS(7451),
    [anon_sym_i_DQUOTE] = ACTIONS(7453),
    [anon_sym_iq_LBRACE] = ACTIONS(7455),
    [aux_sym_char_literal_token1] = ACTIONS(7457),
    [anon_sym_SQUOTE] = ACTIONS(7459),
    [anon_sym___DATE__] = ACTIONS(7461),
    [anon_sym___FILE__] = ACTIONS(7461),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7461),
    [anon_sym___FUNCTION__] = ACTIONS(7461),
    [anon_sym___LINE__] = ACTIONS(7461),
    [anon_sym___MODULE__] = ACTIONS(7461),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7461),
    [anon_sym___TIME__] = ACTIONS(7461),
    [anon_sym___TIMESTAMP__] = ACTIONS(7461),
    [anon_sym___VENDOR__] = ACTIONS(7461),
    [anon_sym___VERSION__] = ACTIONS(7461),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7463),
    [sym_float_literal] = ACTIONS(7463),
    [sym__string] = ACTIONS(7465),
  },
  [3092] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(5787),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3093] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6975),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3094] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(5869),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3095] = {
    [sym_token_string] = STATE(4606),
    [sym__builtin_type] = STATE(4619),
    [sym_raw_string] = STATE(4606),
    [sym_hex_string] = STATE(4606),
    [sym_quoted_string] = STATE(4606),
    [sym_interpolated_raw_string] = STATE(4606),
    [sym_interpolated_quoted_string] = STATE(4606),
    [sym_interpolated_token_string] = STATE(4606),
    [sym_string_literal] = STATE(4619),
    [sym_char_literal] = STATE(4619),
    [sym_special_keyword] = STATE(4619),
    [sym__template_single_arg] = STATE(4619),
    [sym_identifier] = ACTIONS(7467),
    [sym_comment] = ACTIONS(3),
    [anon_sym_q_LBRACE] = ACTIONS(7469),
    [anon_sym_LPAREN] = ACTIONS(7471),
    [sym_bool] = ACTIONS(7467),
    [sym_byte] = ACTIONS(7467),
    [sym_ubyte] = ACTIONS(7467),
    [sym_char] = ACTIONS(7467),
    [sym_short] = ACTIONS(7467),
    [sym_ushort] = ACTIONS(7467),
    [sym_int] = ACTIONS(7467),
    [sym_uint] = ACTIONS(7467),
    [sym_long] = ACTIONS(7467),
    [sym_ulong] = ACTIONS(7467),
    [sym_cent] = ACTIONS(7467),
    [sym_ucent] = ACTIONS(7467),
    [sym_wchar] = ACTIONS(7467),
    [sym_dchar] = ACTIONS(7467),
    [sym_float] = ACTIONS(7467),
    [sym_double] = ACTIONS(7467),
    [sym_real] = ACTIONS(7467),
    [sym_ifloat] = ACTIONS(7467),
    [sym_idouble] = ACTIONS(7467),
    [sym_ireal] = ACTIONS(7467),
    [sym_cfloat] = ACTIONS(7467),
    [sym_cdouble] = ACTIONS(7467),
    [sym_creal] = ACTIONS(7467),
    [sym_size_t] = ACTIONS(7467),
    [sym_ptrdiff_t] = ACTIONS(7467),
    [sym_string] = ACTIONS(7467),
    [sym_cstring] = ACTIONS(7467),
    [sym_dstring] = ACTIONS(7467),
    [sym_wstring] = ACTIONS(7467),
    [sym_noreturn] = ACTIONS(7467),
    [sym_true] = ACTIONS(7467),
    [sym_false] = ACTIONS(7467),
    [sym_null] = ACTIONS(7467),
    [sym_this] = ACTIONS(7467),
    [sym_void] = ACTIONS(7467),
    [anon_sym_BQUOTE] = ACTIONS(7473),
    [anon_sym_r_DQUOTE] = ACTIONS(7475),
    [anon_sym_x_DQUOTE] = ACTIONS(7477),
    [anon_sym_DQUOTE] = ACTIONS(7479),
    [anon_sym_i_BQUOTE] = ACTIONS(7481),
    [anon_sym_i_DQUOTE] = ACTIONS(7483),
    [anon_sym_iq_LBRACE] = ACTIONS(7485),
    [aux_sym_char_literal_token1] = ACTIONS(7487),
    [anon_sym_SQUOTE] = ACTIONS(7489),
    [anon_sym___DATE__] = ACTIONS(7491),
    [anon_sym___FILE__] = ACTIONS(7491),
    [anon_sym___FILE_FULL_PATH__] = ACTIONS(7491),
    [anon_sym___FUNCTION__] = ACTIONS(7491),
    [anon_sym___LINE__] = ACTIONS(7491),
    [anon_sym___MODULE__] = ACTIONS(7491),
    [anon_sym___PRETTY_FUNCTION__] = ACTIONS(7491),
    [anon_sym___TIME__] = ACTIONS(7491),
    [anon_sym___TIMESTAMP__] = ACTIONS(7491),
    [anon_sym___VENDOR__] = ACTIONS(7491),
    [anon_sym___VERSION__] = ACTIONS(7491),
    [sym_directive] = ACTIONS(3),
    [sym_int_literal] = ACTIONS(7493),
    [sym_float_literal] = ACTIONS(7493),
    [sym__string] = ACTIONS(7495),
  },
  [3096] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(6094),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3097] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7090),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3098] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(5988),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3099] = {
    [sym_storage_class] = STATE(3225),
    [sym_type] = STATE(7127),
    [sym_type_ctor] = STATE(3423),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [sym_mixin_expression] = STATE(4997),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_abstract] = ACTIONS(6617),
    [sym_align] = ACTIONS(6619),
    [sym_auto] = ACTIONS(6617),
    [sym_const] = ACTIONS(2964),
    [sym_deprecated] = ACTIONS(6617),
    [sym_extern] = ACTIONS(6627),
    [sym_final] = ACTIONS(6617),
    [sym_immutable] = ACTIONS(2964),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_nothrow] = ACTIONS(6617),
    [sym_override] = ACTIONS(6617),
    [sym_pure] = ACTIONS(6617),
    [sym_ref] = ACTIONS(6617),
    [sym_scope] = ACTIONS(6617),
    [sym_shared] = ACTIONS(2964),
    [sym_static] = ACTIONS(6617),
    [sym_synchronized] = ACTIONS(6617),
    [sym_typeof] = ACTIONS(67),
    [sym_gshared] = ACTIONS(6617),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3100] = {
    [sym_arguments] = STATE(3121),
    [sym_identifier] = ACTIONS(6647),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6649),
    [anon_sym_DOT] = ACTIONS(6649),
    [anon_sym_LPAREN] = ACTIONS(7497),
    [anon_sym_RPAREN] = ACTIONS(6649),
    [anon_sym_LBRACK] = ACTIONS(6649),
    [anon_sym_COMMA] = ACTIONS(6649),
    [anon_sym_EQ] = ACTIONS(6649),
    [anon_sym_STAR] = ACTIONS(6649),
    [anon_sym_AT] = ACTIONS(6649),
    [sym_bool] = ACTIONS(6647),
    [sym_byte] = ACTIONS(6647),
    [sym_ubyte] = ACTIONS(6647),
    [sym_char] = ACTIONS(6647),
    [sym_short] = ACTIONS(6647),
    [sym_ushort] = ACTIONS(6647),
    [sym_int] = ACTIONS(6647),
    [sym_uint] = ACTIONS(6647),
    [sym_long] = ACTIONS(6647),
    [sym_ulong] = ACTIONS(6647),
    [sym_cent] = ACTIONS(6647),
    [sym_ucent] = ACTIONS(6647),
    [sym_wchar] = ACTIONS(6647),
    [sym_dchar] = ACTIONS(6647),
    [sym_float] = ACTIONS(6647),
    [sym_double] = ACTIONS(6647),
    [sym_real] = ACTIONS(6647),
    [sym_ifloat] = ACTIONS(6647),
    [sym_idouble] = ACTIONS(6647),
    [sym_ireal] = ACTIONS(6647),
    [sym_cfloat] = ACTIONS(6647),
    [sym_cdouble] = ACTIONS(6647),
    [sym_creal] = ACTIONS(6647),
    [sym_size_t] = ACTIONS(6647),
    [sym_ptrdiff_t] = ACTIONS(6647),
    [sym_string] = ACTIONS(6647),
    [sym_cstring] = ACTIONS(6647),
    [sym_dstring] = ACTIONS(6647),
    [sym_wstring] = ACTIONS(6647),
    [sym_noreturn] = ACTIONS(6647),
    [sym_abstract] = ACTIONS(6647),
    [sym_align] = ACTIONS(6647),
    [sym_auto] = ACTIONS(6647),
    [sym_const] = ACTIONS(6647),
    [sym_delegate] = ACTIONS(6647),
    [sym_deprecated] = ACTIONS(6647),
    [sym_do] = ACTIONS(6647),
    [sym_enum] = ACTIONS(6647),
    [sym_extern] = ACTIONS(6647),
    [sym_final] = ACTIONS(6647),
    [sym_function] = ACTIONS(6647),
    [sym_immutable] = ACTIONS(6647),
    [sym_in] = ACTIONS(6647),
    [sym_inout] = ACTIONS(6647),
    [sym_lazy] = ACTIONS(6647),
    [sym_mixin] = ACTIONS(6647),
    [sym_nothrow] = ACTIONS(6647),
    [sym_out] = ACTIONS(6647),
    [sym_override] = ACTIONS(6647),
    [sym_pure] = ACTIONS(6647),
    [sym_ref] = ACTIONS(6647),
    [sym_return] = ACTIONS(6647),
    [sym_scope] = ACTIONS(6647),
    [sym_shared] = ACTIONS(6647),
    [sym_static] = ACTIONS(6647),
    [sym_synchronized] = ACTIONS(6647),
    [sym_typeof] = ACTIONS(6647),
    [sym_gshared] = ACTIONS(6647),
    [sym_traits] = ACTIONS(6647),
    [sym_vector] = ACTIONS(6647),
    [sym_void] = ACTIONS(6647),
    [sym_directive] = ACTIONS(3),
  },
  [3101] = {
    [sym_identifier] = ACTIONS(6639),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6641),
    [anon_sym_DOT] = ACTIONS(6641),
    [anon_sym_LPAREN] = ACTIONS(6641),
    [anon_sym_RPAREN] = ACTIONS(6641),
    [anon_sym_LBRACK] = ACTIONS(6641),
    [anon_sym_COMMA] = ACTIONS(6641),
    [anon_sym_EQ] = ACTIONS(6641),
    [anon_sym_STAR] = ACTIONS(6641),
    [anon_sym_AT] = ACTIONS(6641),
    [sym_bool] = ACTIONS(6639),
    [sym_byte] = ACTIONS(6639),
    [sym_ubyte] = ACTIONS(6639),
    [sym_char] = ACTIONS(6639),
    [sym_short] = ACTIONS(6639),
    [sym_ushort] = ACTIONS(6639),
    [sym_int] = ACTIONS(6639),
    [sym_uint] = ACTIONS(6639),
    [sym_long] = ACTIONS(6639),
    [sym_ulong] = ACTIONS(6639),
    [sym_cent] = ACTIONS(6639),
    [sym_ucent] = ACTIONS(6639),
    [sym_wchar] = ACTIONS(6639),
    [sym_dchar] = ACTIONS(6639),
    [sym_float] = ACTIONS(6639),
    [sym_double] = ACTIONS(6639),
    [sym_real] = ACTIONS(6639),
    [sym_ifloat] = ACTIONS(6639),
    [sym_idouble] = ACTIONS(6639),
    [sym_ireal] = ACTIONS(6639),
    [sym_cfloat] = ACTIONS(6639),
    [sym_cdouble] = ACTIONS(6639),
    [sym_creal] = ACTIONS(6639),
    [sym_size_t] = ACTIONS(6639),
    [sym_ptrdiff_t] = ACTIONS(6639),
    [sym_string] = ACTIONS(6639),
    [sym_cstring] = ACTIONS(6639),
    [sym_dstring] = ACTIONS(6639),
    [sym_wstring] = ACTIONS(6639),
    [sym_noreturn] = ACTIONS(6639),
    [sym_abstract] = ACTIONS(6639),
    [sym_align] = ACTIONS(6639),
    [sym_auto] = ACTIONS(6639),
    [sym_const] = ACTIONS(6639),
    [sym_delegate] = ACTIONS(6639),
    [sym_deprecated] = ACTIONS(6639),
    [sym_do] = ACTIONS(6639),
    [sym_enum] = ACTIONS(6639),
    [sym_extern] = ACTIONS(6639),
    [sym_final] = ACTIONS(6639),
    [sym_function] = ACTIONS(6639),
    [sym_immutable] = ACTIONS(6639),
    [sym_in] = ACTIONS(6639),
    [sym_inout] = ACTIONS(6639),
    [sym_lazy] = ACTIONS(6639),
    [sym_mixin] = ACTIONS(6639),
    [sym_nothrow] = ACTIONS(6639),
    [sym_out] = ACTIONS(6639),
    [sym_override] = ACTIONS(6639),
    [sym_pure] = ACTIONS(6639),
    [sym_ref] = ACTIONS(6639),
    [sym_return] = ACTIONS(6639),
    [sym_scope] = ACTIONS(6639),
    [sym_shared] = ACTIONS(6639),
    [sym_static] = ACTIONS(6639),
    [sym_synchronized] = ACTIONS(6639),
    [sym_typeof] = ACTIONS(6639),
    [sym_gshared] = ACTIONS(6639),
    [sym_traits] = ACTIONS(6639),
    [sym_vector] = ACTIONS(6639),
    [sym_void] = ACTIONS(6639),
    [sym_directive] = ACTIONS(3),
  },
  [3102] = {
    [sym_identifier] = ACTIONS(3004),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3006),
    [anon_sym_DOT] = ACTIONS(3006),
    [anon_sym_LPAREN] = ACTIONS(3006),
    [anon_sym_RPAREN] = ACTIONS(3006),
    [anon_sym_LBRACK] = ACTIONS(3006),
    [anon_sym_COMMA] = ACTIONS(3006),
    [anon_sym_EQ] = ACTIONS(3006),
    [anon_sym_STAR] = ACTIONS(3006),
    [anon_sym_AT] = ACTIONS(3006),
    [sym_bool] = ACTIONS(3004),
    [sym_byte] = ACTIONS(3004),
    [sym_ubyte] = ACTIONS(3004),
    [sym_char] = ACTIONS(3004),
    [sym_short] = ACTIONS(3004),
    [sym_ushort] = ACTIONS(3004),
    [sym_int] = ACTIONS(3004),
    [sym_uint] = ACTIONS(3004),
    [sym_long] = ACTIONS(3004),
    [sym_ulong] = ACTIONS(3004),
    [sym_cent] = ACTIONS(3004),
    [sym_ucent] = ACTIONS(3004),
    [sym_wchar] = ACTIONS(3004),
    [sym_dchar] = ACTIONS(3004),
    [sym_float] = ACTIONS(3004),
    [sym_double] = ACTIONS(3004),
    [sym_real] = ACTIONS(3004),
    [sym_ifloat] = ACTIONS(3004),
    [sym_idouble] = ACTIONS(3004),
    [sym_ireal] = ACTIONS(3004),
    [sym_cfloat] = ACTIONS(3004),
    [sym_cdouble] = ACTIONS(3004),
    [sym_creal] = ACTIONS(3004),
    [sym_size_t] = ACTIONS(3004),
    [sym_ptrdiff_t] = ACTIONS(3004),
    [sym_string] = ACTIONS(3004),
    [sym_cstring] = ACTIONS(3004),
    [sym_dstring] = ACTIONS(3004),
    [sym_wstring] = ACTIONS(3004),
    [sym_noreturn] = ACTIONS(3004),
    [sym_abstract] = ACTIONS(3004),
    [sym_align] = ACTIONS(3004),
    [sym_auto] = ACTIONS(3004),
    [sym_const] = ACTIONS(3004),
    [sym_delegate] = ACTIONS(3004),
    [sym_deprecated] = ACTIONS(3004),
    [sym_do] = ACTIONS(3004),
    [sym_enum] = ACTIONS(3004),
    [sym_extern] = ACTIONS(3004),
    [sym_final] = ACTIONS(3004),
    [sym_function] = ACTIONS(3004),
    [sym_immutable] = ACTIONS(3004),
    [sym_in] = ACTIONS(3004),
    [sym_inout] = ACTIONS(3004),
    [sym_lazy] = ACTIONS(3004),
    [sym_mixin] = ACTIONS(3004),
    [sym_nothrow] = ACTIONS(3004),
    [sym_out] = ACTIONS(3004),
    [sym_override] = ACTIONS(3004),
    [sym_pure] = ACTIONS(3004),
    [sym_ref] = ACTIONS(3004),
    [sym_return] = ACTIONS(3004),
    [sym_scope] = ACTIONS(3004),
    [sym_shared] = ACTIONS(3004),
    [sym_static] = ACTIONS(3004),
    [sym_synchronized] = ACTIONS(3004),
    [sym_typeof] = ACTIONS(3004),
    [sym_gshared] = ACTIONS(3004),
    [sym_traits] = ACTIONS(3004),
    [sym_vector] = ACTIONS(3004),
    [sym_void] = ACTIONS(3004),
    [sym_directive] = ACTIONS(3),
  },
  [3103] = {
    [sym_identifier] = ACTIONS(2984),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(2986),
    [anon_sym_DOT] = ACTIONS(2986),
    [anon_sym_LPAREN] = ACTIONS(2986),
    [anon_sym_RPAREN] = ACTIONS(2986),
    [anon_sym_LBRACK] = ACTIONS(2986),
    [anon_sym_COMMA] = ACTIONS(2986),
    [anon_sym_EQ] = ACTIONS(2986),
    [anon_sym_STAR] = ACTIONS(2986),
    [anon_sym_AT] = ACTIONS(2986),
    [sym_bool] = ACTIONS(2984),
    [sym_byte] = ACTIONS(2984),
    [sym_ubyte] = ACTIONS(2984),
    [sym_char] = ACTIONS(2984),
    [sym_short] = ACTIONS(2984),
    [sym_ushort] = ACTIONS(2984),
    [sym_int] = ACTIONS(2984),
    [sym_uint] = ACTIONS(2984),
    [sym_long] = ACTIONS(2984),
    [sym_ulong] = ACTIONS(2984),
    [sym_cent] = ACTIONS(2984),
    [sym_ucent] = ACTIONS(2984),
    [sym_wchar] = ACTIONS(2984),
    [sym_dchar] = ACTIONS(2984),
    [sym_float] = ACTIONS(2984),
    [sym_double] = ACTIONS(2984),
    [sym_real] = ACTIONS(2984),
    [sym_ifloat] = ACTIONS(2984),
    [sym_idouble] = ACTIONS(2984),
    [sym_ireal] = ACTIONS(2984),
    [sym_cfloat] = ACTIONS(2984),
    [sym_cdouble] = ACTIONS(2984),
    [sym_creal] = ACTIONS(2984),
    [sym_size_t] = ACTIONS(2984),
    [sym_ptrdiff_t] = ACTIONS(2984),
    [sym_string] = ACTIONS(2984),
    [sym_cstring] = ACTIONS(2984),
    [sym_dstring] = ACTIONS(2984),
    [sym_wstring] = ACTIONS(2984),
    [sym_noreturn] = ACTIONS(2984),
    [sym_abstract] = ACTIONS(2984),
    [sym_align] = ACTIONS(2984),
    [sym_auto] = ACTIONS(2984),
    [sym_const] = ACTIONS(2984),
    [sym_delegate] = ACTIONS(2984),
    [sym_deprecated] = ACTIONS(2984),
    [sym_do] = ACTIONS(2984),
    [sym_enum] = ACTIONS(2984),
    [sym_extern] = ACTIONS(2984),
    [sym_final] = ACTIONS(2984),
    [sym_function] = ACTIONS(2984),
    [sym_immutable] = ACTIONS(2984),
    [sym_in] = ACTIONS(2984),
    [sym_inout] = ACTIONS(2984),
    [sym_lazy] = ACTIONS(2984),
    [sym_mixin] = ACTIONS(2984),
    [sym_nothrow] = ACTIONS(2984),
    [sym_out] = ACTIONS(2984),
    [sym_override] = ACTIONS(2984),
    [sym_pure] = ACTIONS(2984),
    [sym_ref] = ACTIONS(2984),
    [sym_return] = ACTIONS(2984),
    [sym_scope] = ACTIONS(2984),
    [sym_shared] = ACTIONS(2984),
    [sym_static] = ACTIONS(2984),
    [sym_synchronized] = ACTIONS(2984),
    [sym_typeof] = ACTIONS(2984),
    [sym_gshared] = ACTIONS(2984),
    [sym_traits] = ACTIONS(2984),
    [sym_vector] = ACTIONS(2984),
    [sym_void] = ACTIONS(2984),
    [sym_directive] = ACTIONS(3),
  },
  [3104] = {
    [sym_identifier] = ACTIONS(3016),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3018),
    [anon_sym_DOT] = ACTIONS(3018),
    [anon_sym_LPAREN] = ACTIONS(3018),
    [anon_sym_RPAREN] = ACTIONS(3018),
    [anon_sym_LBRACK] = ACTIONS(3018),
    [anon_sym_COMMA] = ACTIONS(3018),
    [anon_sym_EQ] = ACTIONS(3018),
    [anon_sym_STAR] = ACTIONS(3018),
    [anon_sym_AT] = ACTIONS(3018),
    [sym_bool] = ACTIONS(3016),
    [sym_byte] = ACTIONS(3016),
    [sym_ubyte] = ACTIONS(3016),
    [sym_char] = ACTIONS(3016),
    [sym_short] = ACTIONS(3016),
    [sym_ushort] = ACTIONS(3016),
    [sym_int] = ACTIONS(3016),
    [sym_uint] = ACTIONS(3016),
    [sym_long] = ACTIONS(3016),
    [sym_ulong] = ACTIONS(3016),
    [sym_cent] = ACTIONS(3016),
    [sym_ucent] = ACTIONS(3016),
    [sym_wchar] = ACTIONS(3016),
    [sym_dchar] = ACTIONS(3016),
    [sym_float] = ACTIONS(3016),
    [sym_double] = ACTIONS(3016),
    [sym_real] = ACTIONS(3016),
    [sym_ifloat] = ACTIONS(3016),
    [sym_idouble] = ACTIONS(3016),
    [sym_ireal] = ACTIONS(3016),
    [sym_cfloat] = ACTIONS(3016),
    [sym_cdouble] = ACTIONS(3016),
    [sym_creal] = ACTIONS(3016),
    [sym_size_t] = ACTIONS(3016),
    [sym_ptrdiff_t] = ACTIONS(3016),
    [sym_string] = ACTIONS(3016),
    [sym_cstring] = ACTIONS(3016),
    [sym_dstring] = ACTIONS(3016),
    [sym_wstring] = ACTIONS(3016),
    [sym_noreturn] = ACTIONS(3016),
    [sym_abstract] = ACTIONS(3016),
    [sym_align] = ACTIONS(3016),
    [sym_auto] = ACTIONS(3016),
    [sym_const] = ACTIONS(3016),
    [sym_delegate] = ACTIONS(3016),
    [sym_deprecated] = ACTIONS(3016),
    [sym_do] = ACTIONS(3016),
    [sym_enum] = ACTIONS(3016),
    [sym_extern] = ACTIONS(3016),
    [sym_final] = ACTIONS(3016),
    [sym_function] = ACTIONS(3016),
    [sym_immutable] = ACTIONS(3016),
    [sym_in] = ACTIONS(3016),
    [sym_inout] = ACTIONS(3016),
    [sym_lazy] = ACTIONS(3016),
    [sym_mixin] = ACTIONS(3016),
    [sym_nothrow] = ACTIONS(3016),
    [sym_out] = ACTIONS(3016),
    [sym_override] = ACTIONS(3016),
    [sym_pure] = ACTIONS(3016),
    [sym_ref] = ACTIONS(3016),
    [sym_return] = ACTIONS(3016),
    [sym_scope] = ACTIONS(3016),
    [sym_shared] = ACTIONS(3016),
    [sym_static] = ACTIONS(3016),
    [sym_synchronized] = ACTIONS(3016),
    [sym_typeof] = ACTIONS(3016),
    [sym_gshared] = ACTIONS(3016),
    [sym_traits] = ACTIONS(3016),
    [sym_vector] = ACTIONS(3016),
    [sym_void] = ACTIONS(3016),
    [sym_directive] = ACTIONS(3),
  },
  [3105] = {
    [sym_identifier] = ACTIONS(3020),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3022),
    [anon_sym_DOT] = ACTIONS(3022),
    [anon_sym_LPAREN] = ACTIONS(3022),
    [anon_sym_RPAREN] = ACTIONS(3022),
    [anon_sym_LBRACK] = ACTIONS(3022),
    [anon_sym_COMMA] = ACTIONS(3022),
    [anon_sym_EQ] = ACTIONS(3022),
    [anon_sym_STAR] = ACTIONS(3022),
    [anon_sym_AT] = ACTIONS(3022),
    [sym_bool] = ACTIONS(3020),
    [sym_byte] = ACTIONS(3020),
    [sym_ubyte] = ACTIONS(3020),
    [sym_char] = ACTIONS(3020),
    [sym_short] = ACTIONS(3020),
    [sym_ushort] = ACTIONS(3020),
    [sym_int] = ACTIONS(3020),
    [sym_uint] = ACTIONS(3020),
    [sym_long] = ACTIONS(3020),
    [sym_ulong] = ACTIONS(3020),
    [sym_cent] = ACTIONS(3020),
    [sym_ucent] = ACTIONS(3020),
    [sym_wchar] = ACTIONS(3020),
    [sym_dchar] = ACTIONS(3020),
    [sym_float] = ACTIONS(3020),
    [sym_double] = ACTIONS(3020),
    [sym_real] = ACTIONS(3020),
    [sym_ifloat] = ACTIONS(3020),
    [sym_idouble] = ACTIONS(3020),
    [sym_ireal] = ACTIONS(3020),
    [sym_cfloat] = ACTIONS(3020),
    [sym_cdouble] = ACTIONS(3020),
    [sym_creal] = ACTIONS(3020),
    [sym_size_t] = ACTIONS(3020),
    [sym_ptrdiff_t] = ACTIONS(3020),
    [sym_string] = ACTIONS(3020),
    [sym_cstring] = ACTIONS(3020),
    [sym_dstring] = ACTIONS(3020),
    [sym_wstring] = ACTIONS(3020),
    [sym_noreturn] = ACTIONS(3020),
    [sym_abstract] = ACTIONS(3020),
    [sym_align] = ACTIONS(3020),
    [sym_auto] = ACTIONS(3020),
    [sym_const] = ACTIONS(3020),
    [sym_delegate] = ACTIONS(3020),
    [sym_deprecated] = ACTIONS(3020),
    [sym_do] = ACTIONS(3020),
    [sym_enum] = ACTIONS(3020),
    [sym_extern] = ACTIONS(3020),
    [sym_final] = ACTIONS(3020),
    [sym_function] = ACTIONS(3020),
    [sym_immutable] = ACTIONS(3020),
    [sym_in] = ACTIONS(3020),
    [sym_inout] = ACTIONS(3020),
    [sym_lazy] = ACTIONS(3020),
    [sym_mixin] = ACTIONS(3020),
    [sym_nothrow] = ACTIONS(3020),
    [sym_out] = ACTIONS(3020),
    [sym_override] = ACTIONS(3020),
    [sym_pure] = ACTIONS(3020),
    [sym_ref] = ACTIONS(3020),
    [sym_return] = ACTIONS(3020),
    [sym_scope] = ACTIONS(3020),
    [sym_shared] = ACTIONS(3020),
    [sym_static] = ACTIONS(3020),
    [sym_synchronized] = ACTIONS(3020),
    [sym_typeof] = ACTIONS(3020),
    [sym_gshared] = ACTIONS(3020),
    [sym_traits] = ACTIONS(3020),
    [sym_vector] = ACTIONS(3020),
    [sym_void] = ACTIONS(3020),
    [sym_directive] = ACTIONS(3),
  },
  [3106] = {
    [sym_identifier] = ACTIONS(2992),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(2994),
    [anon_sym_DOT] = ACTIONS(2994),
    [anon_sym_LPAREN] = ACTIONS(2994),
    [anon_sym_RPAREN] = ACTIONS(2994),
    [anon_sym_LBRACK] = ACTIONS(2994),
    [anon_sym_COMMA] = ACTIONS(2994),
    [anon_sym_EQ] = ACTIONS(2994),
    [anon_sym_STAR] = ACTIONS(2994),
    [anon_sym_AT] = ACTIONS(2994),
    [sym_bool] = ACTIONS(2992),
    [sym_byte] = ACTIONS(2992),
    [sym_ubyte] = ACTIONS(2992),
    [sym_char] = ACTIONS(2992),
    [sym_short] = ACTIONS(2992),
    [sym_ushort] = ACTIONS(2992),
    [sym_int] = ACTIONS(2992),
    [sym_uint] = ACTIONS(2992),
    [sym_long] = ACTIONS(2992),
    [sym_ulong] = ACTIONS(2992),
    [sym_cent] = ACTIONS(2992),
    [sym_ucent] = ACTIONS(2992),
    [sym_wchar] = ACTIONS(2992),
    [sym_dchar] = ACTIONS(2992),
    [sym_float] = ACTIONS(2992),
    [sym_double] = ACTIONS(2992),
    [sym_real] = ACTIONS(2992),
    [sym_ifloat] = ACTIONS(2992),
    [sym_idouble] = ACTIONS(2992),
    [sym_ireal] = ACTIONS(2992),
    [sym_cfloat] = ACTIONS(2992),
    [sym_cdouble] = ACTIONS(2992),
    [sym_creal] = ACTIONS(2992),
    [sym_size_t] = ACTIONS(2992),
    [sym_ptrdiff_t] = ACTIONS(2992),
    [sym_string] = ACTIONS(2992),
    [sym_cstring] = ACTIONS(2992),
    [sym_dstring] = ACTIONS(2992),
    [sym_wstring] = ACTIONS(2992),
    [sym_noreturn] = ACTIONS(2992),
    [sym_abstract] = ACTIONS(2992),
    [sym_align] = ACTIONS(2992),
    [sym_auto] = ACTIONS(2992),
    [sym_const] = ACTIONS(2992),
    [sym_delegate] = ACTIONS(2992),
    [sym_deprecated] = ACTIONS(2992),
    [sym_do] = ACTIONS(2992),
    [sym_enum] = ACTIONS(2992),
    [sym_extern] = ACTIONS(2992),
    [sym_final] = ACTIONS(2992),
    [sym_function] = ACTIONS(2992),
    [sym_immutable] = ACTIONS(2992),
    [sym_in] = ACTIONS(2992),
    [sym_inout] = ACTIONS(2992),
    [sym_lazy] = ACTIONS(2992),
    [sym_mixin] = ACTIONS(2992),
    [sym_nothrow] = ACTIONS(2992),
    [sym_out] = ACTIONS(2992),
    [sym_override] = ACTIONS(2992),
    [sym_pure] = ACTIONS(2992),
    [sym_ref] = ACTIONS(2992),
    [sym_return] = ACTIONS(2992),
    [sym_scope] = ACTIONS(2992),
    [sym_shared] = ACTIONS(2992),
    [sym_static] = ACTIONS(2992),
    [sym_synchronized] = ACTIONS(2992),
    [sym_typeof] = ACTIONS(2992),
    [sym_gshared] = ACTIONS(2992),
    [sym_traits] = ACTIONS(2992),
    [sym_vector] = ACTIONS(2992),
    [sym_void] = ACTIONS(2992),
    [sym_directive] = ACTIONS(3),
  },
  [3107] = {
    [sym_identifier] = ACTIONS(6643),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6645),
    [anon_sym_DOT] = ACTIONS(6645),
    [anon_sym_LPAREN] = ACTIONS(6645),
    [anon_sym_RPAREN] = ACTIONS(6645),
    [anon_sym_LBRACK] = ACTIONS(6645),
    [anon_sym_COMMA] = ACTIONS(6645),
    [anon_sym_EQ] = ACTIONS(6645),
    [anon_sym_STAR] = ACTIONS(6645),
    [anon_sym_AT] = ACTIONS(6645),
    [sym_bool] = ACTIONS(6643),
    [sym_byte] = ACTIONS(6643),
    [sym_ubyte] = ACTIONS(6643),
    [sym_char] = ACTIONS(6643),
    [sym_short] = ACTIONS(6643),
    [sym_ushort] = ACTIONS(6643),
    [sym_int] = ACTIONS(6643),
    [sym_uint] = ACTIONS(6643),
    [sym_long] = ACTIONS(6643),
    [sym_ulong] = ACTIONS(6643),
    [sym_cent] = ACTIONS(6643),
    [sym_ucent] = ACTIONS(6643),
    [sym_wchar] = ACTIONS(6643),
    [sym_dchar] = ACTIONS(6643),
    [sym_float] = ACTIONS(6643),
    [sym_double] = ACTIONS(6643),
    [sym_real] = ACTIONS(6643),
    [sym_ifloat] = ACTIONS(6643),
    [sym_idouble] = ACTIONS(6643),
    [sym_ireal] = ACTIONS(6643),
    [sym_cfloat] = ACTIONS(6643),
    [sym_cdouble] = ACTIONS(6643),
    [sym_creal] = ACTIONS(6643),
    [sym_size_t] = ACTIONS(6643),
    [sym_ptrdiff_t] = ACTIONS(6643),
    [sym_string] = ACTIONS(6643),
    [sym_cstring] = ACTIONS(6643),
    [sym_dstring] = ACTIONS(6643),
    [sym_wstring] = ACTIONS(6643),
    [sym_noreturn] = ACTIONS(6643),
    [sym_abstract] = ACTIONS(6643),
    [sym_align] = ACTIONS(6643),
    [sym_auto] = ACTIONS(6643),
    [sym_const] = ACTIONS(6643),
    [sym_delegate] = ACTIONS(6643),
    [sym_deprecated] = ACTIONS(6643),
    [sym_do] = ACTIONS(6643),
    [sym_enum] = ACTIONS(6643),
    [sym_extern] = ACTIONS(6643),
    [sym_final] = ACTIONS(6643),
    [sym_function] = ACTIONS(6643),
    [sym_immutable] = ACTIONS(6643),
    [sym_in] = ACTIONS(6643),
    [sym_inout] = ACTIONS(6643),
    [sym_lazy] = ACTIONS(6643),
    [sym_mixin] = ACTIONS(6643),
    [sym_nothrow] = ACTIONS(6643),
    [sym_out] = ACTIONS(6643),
    [sym_override] = ACTIONS(6643),
    [sym_pure] = ACTIONS(6643),
    [sym_ref] = ACTIONS(6643),
    [sym_return] = ACTIONS(6643),
    [sym_scope] = ACTIONS(6643),
    [sym_shared] = ACTIONS(6643),
    [sym_static] = ACTIONS(6643),
    [sym_synchronized] = ACTIONS(6643),
    [sym_typeof] = ACTIONS(6643),
    [sym_gshared] = ACTIONS(6643),
    [sym_traits] = ACTIONS(6643),
    [sym_vector] = ACTIONS(6643),
    [sym_void] = ACTIONS(6643),
    [sym_directive] = ACTIONS(3),
  },
  [3108] = {
    [sym_type] = STATE(4759),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4832),
    [sym_block_statement] = STATE(4048),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(4048),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7507),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3673),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7509),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3109] = {
    [sym_type] = STATE(4779),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4963),
    [sym_block_statement] = STATE(3967),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3967),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7511),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7513),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3110] = {
    [sym_type] = STATE(4735),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4848),
    [sym_block_statement] = STATE(3804),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3804),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7515),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7517),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3111] = {
    [sym_identifier] = ACTIONS(6665),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6667),
    [anon_sym_DOT] = ACTIONS(6667),
    [anon_sym_LPAREN] = ACTIONS(6667),
    [anon_sym_RPAREN] = ACTIONS(6667),
    [anon_sym_LBRACK] = ACTIONS(6667),
    [anon_sym_COMMA] = ACTIONS(6667),
    [anon_sym_EQ] = ACTIONS(6667),
    [anon_sym_STAR] = ACTIONS(6667),
    [anon_sym_AT] = ACTIONS(6667),
    [sym_bool] = ACTIONS(6665),
    [sym_byte] = ACTIONS(6665),
    [sym_ubyte] = ACTIONS(6665),
    [sym_char] = ACTIONS(6665),
    [sym_short] = ACTIONS(6665),
    [sym_ushort] = ACTIONS(6665),
    [sym_int] = ACTIONS(6665),
    [sym_uint] = ACTIONS(6665),
    [sym_long] = ACTIONS(6665),
    [sym_ulong] = ACTIONS(6665),
    [sym_cent] = ACTIONS(6665),
    [sym_ucent] = ACTIONS(6665),
    [sym_wchar] = ACTIONS(6665),
    [sym_dchar] = ACTIONS(6665),
    [sym_float] = ACTIONS(6665),
    [sym_double] = ACTIONS(6665),
    [sym_real] = ACTIONS(6665),
    [sym_ifloat] = ACTIONS(6665),
    [sym_idouble] = ACTIONS(6665),
    [sym_ireal] = ACTIONS(6665),
    [sym_cfloat] = ACTIONS(6665),
    [sym_cdouble] = ACTIONS(6665),
    [sym_creal] = ACTIONS(6665),
    [sym_size_t] = ACTIONS(6665),
    [sym_ptrdiff_t] = ACTIONS(6665),
    [sym_string] = ACTIONS(6665),
    [sym_cstring] = ACTIONS(6665),
    [sym_dstring] = ACTIONS(6665),
    [sym_wstring] = ACTIONS(6665),
    [sym_noreturn] = ACTIONS(6665),
    [sym_abstract] = ACTIONS(6665),
    [sym_align] = ACTIONS(6665),
    [sym_auto] = ACTIONS(6665),
    [sym_const] = ACTIONS(6665),
    [sym_delegate] = ACTIONS(6665),
    [sym_deprecated] = ACTIONS(6665),
    [sym_do] = ACTIONS(6665),
    [sym_enum] = ACTIONS(6665),
    [sym_extern] = ACTIONS(6665),
    [sym_final] = ACTIONS(6665),
    [sym_function] = ACTIONS(6665),
    [sym_immutable] = ACTIONS(6665),
    [sym_in] = ACTIONS(6665),
    [sym_inout] = ACTIONS(6665),
    [sym_lazy] = ACTIONS(6665),
    [sym_mixin] = ACTIONS(6665),
    [sym_nothrow] = ACTIONS(6665),
    [sym_out] = ACTIONS(6665),
    [sym_override] = ACTIONS(6665),
    [sym_pure] = ACTIONS(6665),
    [sym_ref] = ACTIONS(6665),
    [sym_return] = ACTIONS(6665),
    [sym_scope] = ACTIONS(6665),
    [sym_shared] = ACTIONS(6665),
    [sym_static] = ACTIONS(6665),
    [sym_synchronized] = ACTIONS(6665),
    [sym_typeof] = ACTIONS(6665),
    [sym_gshared] = ACTIONS(6665),
    [sym_traits] = ACTIONS(6665),
    [sym_vector] = ACTIONS(6665),
    [sym_void] = ACTIONS(6665),
    [sym_directive] = ACTIONS(3),
  },
  [3112] = {
    [sym_type] = STATE(4751),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4866),
    [sym_block_statement] = STATE(3967),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3967),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7519),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7521),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3113] = {
    [sym_identifier] = ACTIONS(3056),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3058),
    [anon_sym_DOT] = ACTIONS(3058),
    [anon_sym_LPAREN] = ACTIONS(3058),
    [anon_sym_RPAREN] = ACTIONS(3058),
    [anon_sym_LBRACK] = ACTIONS(3058),
    [anon_sym_COMMA] = ACTIONS(3058),
    [anon_sym_EQ] = ACTIONS(3058),
    [anon_sym_STAR] = ACTIONS(3058),
    [anon_sym_AT] = ACTIONS(3058),
    [sym_bool] = ACTIONS(3056),
    [sym_byte] = ACTIONS(3056),
    [sym_ubyte] = ACTIONS(3056),
    [sym_char] = ACTIONS(3056),
    [sym_short] = ACTIONS(3056),
    [sym_ushort] = ACTIONS(3056),
    [sym_int] = ACTIONS(3056),
    [sym_uint] = ACTIONS(3056),
    [sym_long] = ACTIONS(3056),
    [sym_ulong] = ACTIONS(3056),
    [sym_cent] = ACTIONS(3056),
    [sym_ucent] = ACTIONS(3056),
    [sym_wchar] = ACTIONS(3056),
    [sym_dchar] = ACTIONS(3056),
    [sym_float] = ACTIONS(3056),
    [sym_double] = ACTIONS(3056),
    [sym_real] = ACTIONS(3056),
    [sym_ifloat] = ACTIONS(3056),
    [sym_idouble] = ACTIONS(3056),
    [sym_ireal] = ACTIONS(3056),
    [sym_cfloat] = ACTIONS(3056),
    [sym_cdouble] = ACTIONS(3056),
    [sym_creal] = ACTIONS(3056),
    [sym_size_t] = ACTIONS(3056),
    [sym_ptrdiff_t] = ACTIONS(3056),
    [sym_string] = ACTIONS(3056),
    [sym_cstring] = ACTIONS(3056),
    [sym_dstring] = ACTIONS(3056),
    [sym_wstring] = ACTIONS(3056),
    [sym_noreturn] = ACTIONS(3056),
    [sym_abstract] = ACTIONS(3056),
    [sym_align] = ACTIONS(3056),
    [sym_auto] = ACTIONS(3056),
    [sym_const] = ACTIONS(3056),
    [sym_delegate] = ACTIONS(3056),
    [sym_deprecated] = ACTIONS(3056),
    [sym_do] = ACTIONS(3056),
    [sym_enum] = ACTIONS(3056),
    [sym_extern] = ACTIONS(3056),
    [sym_final] = ACTIONS(3056),
    [sym_function] = ACTIONS(3056),
    [sym_immutable] = ACTIONS(3056),
    [sym_in] = ACTIONS(3056),
    [sym_inout] = ACTIONS(3056),
    [sym_lazy] = ACTIONS(3056),
    [sym_mixin] = ACTIONS(3056),
    [sym_nothrow] = ACTIONS(3056),
    [sym_out] = ACTIONS(3056),
    [sym_override] = ACTIONS(3056),
    [sym_pure] = ACTIONS(3056),
    [sym_ref] = ACTIONS(3056),
    [sym_return] = ACTIONS(3056),
    [sym_scope] = ACTIONS(3056),
    [sym_shared] = ACTIONS(3056),
    [sym_static] = ACTIONS(3056),
    [sym_synchronized] = ACTIONS(3056),
    [sym_typeof] = ACTIONS(3056),
    [sym_gshared] = ACTIONS(3056),
    [sym_traits] = ACTIONS(3056),
    [sym_vector] = ACTIONS(3056),
    [sym_void] = ACTIONS(3056),
    [sym_directive] = ACTIONS(3),
  },
  [3114] = {
    [sym_type] = STATE(4760),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4832),
    [sym_block_statement] = STATE(4048),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4048),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7523),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3673),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7525),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3115] = {
    [sym_type] = STATE(4756),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4866),
    [sym_block_statement] = STATE(3967),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3967),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7527),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7529),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3116] = {
    [sym_type] = STATE(4690),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4834),
    [sym_block_statement] = STATE(3804),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3804),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7531),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7533),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3117] = {
    [sym_identifier] = ACTIONS(2996),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(2998),
    [anon_sym_DOT] = ACTIONS(2998),
    [anon_sym_LPAREN] = ACTIONS(2998),
    [anon_sym_RPAREN] = ACTIONS(2998),
    [anon_sym_LBRACK] = ACTIONS(2998),
    [anon_sym_COMMA] = ACTIONS(2998),
    [anon_sym_EQ] = ACTIONS(2998),
    [anon_sym_STAR] = ACTIONS(2998),
    [anon_sym_AT] = ACTIONS(2998),
    [sym_bool] = ACTIONS(2996),
    [sym_byte] = ACTIONS(2996),
    [sym_ubyte] = ACTIONS(2996),
    [sym_char] = ACTIONS(2996),
    [sym_short] = ACTIONS(2996),
    [sym_ushort] = ACTIONS(2996),
    [sym_int] = ACTIONS(2996),
    [sym_uint] = ACTIONS(2996),
    [sym_long] = ACTIONS(2996),
    [sym_ulong] = ACTIONS(2996),
    [sym_cent] = ACTIONS(2996),
    [sym_ucent] = ACTIONS(2996),
    [sym_wchar] = ACTIONS(2996),
    [sym_dchar] = ACTIONS(2996),
    [sym_float] = ACTIONS(2996),
    [sym_double] = ACTIONS(2996),
    [sym_real] = ACTIONS(2996),
    [sym_ifloat] = ACTIONS(2996),
    [sym_idouble] = ACTIONS(2996),
    [sym_ireal] = ACTIONS(2996),
    [sym_cfloat] = ACTIONS(2996),
    [sym_cdouble] = ACTIONS(2996),
    [sym_creal] = ACTIONS(2996),
    [sym_size_t] = ACTIONS(2996),
    [sym_ptrdiff_t] = ACTIONS(2996),
    [sym_string] = ACTIONS(2996),
    [sym_cstring] = ACTIONS(2996),
    [sym_dstring] = ACTIONS(2996),
    [sym_wstring] = ACTIONS(2996),
    [sym_noreturn] = ACTIONS(2996),
    [sym_abstract] = ACTIONS(2996),
    [sym_align] = ACTIONS(2996),
    [sym_auto] = ACTIONS(2996),
    [sym_const] = ACTIONS(2996),
    [sym_delegate] = ACTIONS(2996),
    [sym_deprecated] = ACTIONS(2996),
    [sym_do] = ACTIONS(2996),
    [sym_enum] = ACTIONS(2996),
    [sym_extern] = ACTIONS(2996),
    [sym_final] = ACTIONS(2996),
    [sym_function] = ACTIONS(2996),
    [sym_immutable] = ACTIONS(2996),
    [sym_in] = ACTIONS(2996),
    [sym_inout] = ACTIONS(2996),
    [sym_lazy] = ACTIONS(2996),
    [sym_mixin] = ACTIONS(2996),
    [sym_nothrow] = ACTIONS(2996),
    [sym_out] = ACTIONS(2996),
    [sym_override] = ACTIONS(2996),
    [sym_pure] = ACTIONS(2996),
    [sym_ref] = ACTIONS(2996),
    [sym_return] = ACTIONS(2996),
    [sym_scope] = ACTIONS(2996),
    [sym_shared] = ACTIONS(2996),
    [sym_static] = ACTIONS(2996),
    [sym_synchronized] = ACTIONS(2996),
    [sym_typeof] = ACTIONS(2996),
    [sym_gshared] = ACTIONS(2996),
    [sym_traits] = ACTIONS(2996),
    [sym_vector] = ACTIONS(2996),
    [sym_void] = ACTIONS(2996),
    [sym_directive] = ACTIONS(3),
  },
  [3118] = {
    [sym_identifier] = ACTIONS(3008),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3010),
    [anon_sym_DOT] = ACTIONS(3010),
    [anon_sym_LPAREN] = ACTIONS(3010),
    [anon_sym_RPAREN] = ACTIONS(3010),
    [anon_sym_LBRACK] = ACTIONS(3010),
    [anon_sym_COMMA] = ACTIONS(3010),
    [anon_sym_EQ] = ACTIONS(3010),
    [anon_sym_STAR] = ACTIONS(3010),
    [anon_sym_AT] = ACTIONS(3010),
    [sym_bool] = ACTIONS(3008),
    [sym_byte] = ACTIONS(3008),
    [sym_ubyte] = ACTIONS(3008),
    [sym_char] = ACTIONS(3008),
    [sym_short] = ACTIONS(3008),
    [sym_ushort] = ACTIONS(3008),
    [sym_int] = ACTIONS(3008),
    [sym_uint] = ACTIONS(3008),
    [sym_long] = ACTIONS(3008),
    [sym_ulong] = ACTIONS(3008),
    [sym_cent] = ACTIONS(3008),
    [sym_ucent] = ACTIONS(3008),
    [sym_wchar] = ACTIONS(3008),
    [sym_dchar] = ACTIONS(3008),
    [sym_float] = ACTIONS(3008),
    [sym_double] = ACTIONS(3008),
    [sym_real] = ACTIONS(3008),
    [sym_ifloat] = ACTIONS(3008),
    [sym_idouble] = ACTIONS(3008),
    [sym_ireal] = ACTIONS(3008),
    [sym_cfloat] = ACTIONS(3008),
    [sym_cdouble] = ACTIONS(3008),
    [sym_creal] = ACTIONS(3008),
    [sym_size_t] = ACTIONS(3008),
    [sym_ptrdiff_t] = ACTIONS(3008),
    [sym_string] = ACTIONS(3008),
    [sym_cstring] = ACTIONS(3008),
    [sym_dstring] = ACTIONS(3008),
    [sym_wstring] = ACTIONS(3008),
    [sym_noreturn] = ACTIONS(3008),
    [sym_abstract] = ACTIONS(3008),
    [sym_align] = ACTIONS(3008),
    [sym_auto] = ACTIONS(3008),
    [sym_const] = ACTIONS(3008),
    [sym_delegate] = ACTIONS(3008),
    [sym_deprecated] = ACTIONS(3008),
    [sym_do] = ACTIONS(3008),
    [sym_enum] = ACTIONS(3008),
    [sym_extern] = ACTIONS(3008),
    [sym_final] = ACTIONS(3008),
    [sym_function] = ACTIONS(3008),
    [sym_immutable] = ACTIONS(3008),
    [sym_in] = ACTIONS(3008),
    [sym_inout] = ACTIONS(3008),
    [sym_lazy] = ACTIONS(3008),
    [sym_mixin] = ACTIONS(3008),
    [sym_nothrow] = ACTIONS(3008),
    [sym_out] = ACTIONS(3008),
    [sym_override] = ACTIONS(3008),
    [sym_pure] = ACTIONS(3008),
    [sym_ref] = ACTIONS(3008),
    [sym_return] = ACTIONS(3008),
    [sym_scope] = ACTIONS(3008),
    [sym_shared] = ACTIONS(3008),
    [sym_static] = ACTIONS(3008),
    [sym_synchronized] = ACTIONS(3008),
    [sym_typeof] = ACTIONS(3008),
    [sym_gshared] = ACTIONS(3008),
    [sym_traits] = ACTIONS(3008),
    [sym_vector] = ACTIONS(3008),
    [sym_void] = ACTIONS(3008),
    [sym_directive] = ACTIONS(3),
  },
  [3119] = {
    [sym_identifier] = ACTIONS(6675),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6677),
    [anon_sym_DOT] = ACTIONS(6677),
    [anon_sym_LPAREN] = ACTIONS(6677),
    [anon_sym_RPAREN] = ACTIONS(6677),
    [anon_sym_LBRACK] = ACTIONS(6677),
    [anon_sym_COMMA] = ACTIONS(6677),
    [anon_sym_EQ] = ACTIONS(6677),
    [anon_sym_STAR] = ACTIONS(6677),
    [anon_sym_AT] = ACTIONS(6677),
    [sym_bool] = ACTIONS(6675),
    [sym_byte] = ACTIONS(6675),
    [sym_ubyte] = ACTIONS(6675),
    [sym_char] = ACTIONS(6675),
    [sym_short] = ACTIONS(6675),
    [sym_ushort] = ACTIONS(6675),
    [sym_int] = ACTIONS(6675),
    [sym_uint] = ACTIONS(6675),
    [sym_long] = ACTIONS(6675),
    [sym_ulong] = ACTIONS(6675),
    [sym_cent] = ACTIONS(6675),
    [sym_ucent] = ACTIONS(6675),
    [sym_wchar] = ACTIONS(6675),
    [sym_dchar] = ACTIONS(6675),
    [sym_float] = ACTIONS(6675),
    [sym_double] = ACTIONS(6675),
    [sym_real] = ACTIONS(6675),
    [sym_ifloat] = ACTIONS(6675),
    [sym_idouble] = ACTIONS(6675),
    [sym_ireal] = ACTIONS(6675),
    [sym_cfloat] = ACTIONS(6675),
    [sym_cdouble] = ACTIONS(6675),
    [sym_creal] = ACTIONS(6675),
    [sym_size_t] = ACTIONS(6675),
    [sym_ptrdiff_t] = ACTIONS(6675),
    [sym_string] = ACTIONS(6675),
    [sym_cstring] = ACTIONS(6675),
    [sym_dstring] = ACTIONS(6675),
    [sym_wstring] = ACTIONS(6675),
    [sym_noreturn] = ACTIONS(6675),
    [sym_abstract] = ACTIONS(6675),
    [sym_align] = ACTIONS(6675),
    [sym_auto] = ACTIONS(6675),
    [sym_const] = ACTIONS(6675),
    [sym_delegate] = ACTIONS(6675),
    [sym_deprecated] = ACTIONS(6675),
    [sym_do] = ACTIONS(6675),
    [sym_enum] = ACTIONS(6675),
    [sym_extern] = ACTIONS(6675),
    [sym_final] = ACTIONS(6675),
    [sym_function] = ACTIONS(6675),
    [sym_immutable] = ACTIONS(6675),
    [sym_in] = ACTIONS(6675),
    [sym_inout] = ACTIONS(6675),
    [sym_lazy] = ACTIONS(6675),
    [sym_mixin] = ACTIONS(6675),
    [sym_nothrow] = ACTIONS(6675),
    [sym_out] = ACTIONS(6675),
    [sym_override] = ACTIONS(6675),
    [sym_pure] = ACTIONS(6675),
    [sym_ref] = ACTIONS(6675),
    [sym_return] = ACTIONS(6675),
    [sym_scope] = ACTIONS(6675),
    [sym_shared] = ACTIONS(6675),
    [sym_static] = ACTIONS(6675),
    [sym_synchronized] = ACTIONS(6675),
    [sym_typeof] = ACTIONS(6675),
    [sym_gshared] = ACTIONS(6675),
    [sym_traits] = ACTIONS(6675),
    [sym_vector] = ACTIONS(6675),
    [sym_void] = ACTIONS(6675),
    [sym_directive] = ACTIONS(3),
  },
  [3120] = {
    [sym_type] = STATE(4687),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4834),
    [sym_block_statement] = STATE(3804),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3804),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7535),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7537),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3121] = {
    [sym_identifier] = ACTIONS(6669),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6671),
    [anon_sym_DOT] = ACTIONS(6671),
    [anon_sym_LPAREN] = ACTIONS(6671),
    [anon_sym_RPAREN] = ACTIONS(6671),
    [anon_sym_LBRACK] = ACTIONS(6671),
    [anon_sym_COMMA] = ACTIONS(6671),
    [anon_sym_EQ] = ACTIONS(6671),
    [anon_sym_STAR] = ACTIONS(6671),
    [anon_sym_AT] = ACTIONS(6671),
    [sym_bool] = ACTIONS(6669),
    [sym_byte] = ACTIONS(6669),
    [sym_ubyte] = ACTIONS(6669),
    [sym_char] = ACTIONS(6669),
    [sym_short] = ACTIONS(6669),
    [sym_ushort] = ACTIONS(6669),
    [sym_int] = ACTIONS(6669),
    [sym_uint] = ACTIONS(6669),
    [sym_long] = ACTIONS(6669),
    [sym_ulong] = ACTIONS(6669),
    [sym_cent] = ACTIONS(6669),
    [sym_ucent] = ACTIONS(6669),
    [sym_wchar] = ACTIONS(6669),
    [sym_dchar] = ACTIONS(6669),
    [sym_float] = ACTIONS(6669),
    [sym_double] = ACTIONS(6669),
    [sym_real] = ACTIONS(6669),
    [sym_ifloat] = ACTIONS(6669),
    [sym_idouble] = ACTIONS(6669),
    [sym_ireal] = ACTIONS(6669),
    [sym_cfloat] = ACTIONS(6669),
    [sym_cdouble] = ACTIONS(6669),
    [sym_creal] = ACTIONS(6669),
    [sym_size_t] = ACTIONS(6669),
    [sym_ptrdiff_t] = ACTIONS(6669),
    [sym_string] = ACTIONS(6669),
    [sym_cstring] = ACTIONS(6669),
    [sym_dstring] = ACTIONS(6669),
    [sym_wstring] = ACTIONS(6669),
    [sym_noreturn] = ACTIONS(6669),
    [sym_abstract] = ACTIONS(6669),
    [sym_align] = ACTIONS(6669),
    [sym_auto] = ACTIONS(6669),
    [sym_const] = ACTIONS(6669),
    [sym_delegate] = ACTIONS(6669),
    [sym_deprecated] = ACTIONS(6669),
    [sym_do] = ACTIONS(6669),
    [sym_enum] = ACTIONS(6669),
    [sym_extern] = ACTIONS(6669),
    [sym_final] = ACTIONS(6669),
    [sym_function] = ACTIONS(6669),
    [sym_immutable] = ACTIONS(6669),
    [sym_in] = ACTIONS(6669),
    [sym_inout] = ACTIONS(6669),
    [sym_lazy] = ACTIONS(6669),
    [sym_mixin] = ACTIONS(6669),
    [sym_nothrow] = ACTIONS(6669),
    [sym_out] = ACTIONS(6669),
    [sym_override] = ACTIONS(6669),
    [sym_pure] = ACTIONS(6669),
    [sym_ref] = ACTIONS(6669),
    [sym_return] = ACTIONS(6669),
    [sym_scope] = ACTIONS(6669),
    [sym_shared] = ACTIONS(6669),
    [sym_static] = ACTIONS(6669),
    [sym_synchronized] = ACTIONS(6669),
    [sym_typeof] = ACTIONS(6669),
    [sym_gshared] = ACTIONS(6669),
    [sym_traits] = ACTIONS(6669),
    [sym_vector] = ACTIONS(6669),
    [sym_void] = ACTIONS(6669),
    [sym_directive] = ACTIONS(3),
  },
  [3122] = {
    [sym_identifier] = ACTIONS(6653),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6655),
    [anon_sym_DOT] = ACTIONS(6655),
    [anon_sym_LPAREN] = ACTIONS(6655),
    [anon_sym_RPAREN] = ACTIONS(6655),
    [anon_sym_LBRACK] = ACTIONS(6655),
    [anon_sym_COMMA] = ACTIONS(6655),
    [anon_sym_EQ] = ACTIONS(6655),
    [anon_sym_STAR] = ACTIONS(6655),
    [anon_sym_AT] = ACTIONS(6655),
    [sym_bool] = ACTIONS(6653),
    [sym_byte] = ACTIONS(6653),
    [sym_ubyte] = ACTIONS(6653),
    [sym_char] = ACTIONS(6653),
    [sym_short] = ACTIONS(6653),
    [sym_ushort] = ACTIONS(6653),
    [sym_int] = ACTIONS(6653),
    [sym_uint] = ACTIONS(6653),
    [sym_long] = ACTIONS(6653),
    [sym_ulong] = ACTIONS(6653),
    [sym_cent] = ACTIONS(6653),
    [sym_ucent] = ACTIONS(6653),
    [sym_wchar] = ACTIONS(6653),
    [sym_dchar] = ACTIONS(6653),
    [sym_float] = ACTIONS(6653),
    [sym_double] = ACTIONS(6653),
    [sym_real] = ACTIONS(6653),
    [sym_ifloat] = ACTIONS(6653),
    [sym_idouble] = ACTIONS(6653),
    [sym_ireal] = ACTIONS(6653),
    [sym_cfloat] = ACTIONS(6653),
    [sym_cdouble] = ACTIONS(6653),
    [sym_creal] = ACTIONS(6653),
    [sym_size_t] = ACTIONS(6653),
    [sym_ptrdiff_t] = ACTIONS(6653),
    [sym_string] = ACTIONS(6653),
    [sym_cstring] = ACTIONS(6653),
    [sym_dstring] = ACTIONS(6653),
    [sym_wstring] = ACTIONS(6653),
    [sym_noreturn] = ACTIONS(6653),
    [sym_abstract] = ACTIONS(6653),
    [sym_align] = ACTIONS(6653),
    [sym_auto] = ACTIONS(6653),
    [sym_const] = ACTIONS(6653),
    [sym_delegate] = ACTIONS(6653),
    [sym_deprecated] = ACTIONS(6653),
    [sym_do] = ACTIONS(6653),
    [sym_enum] = ACTIONS(6653),
    [sym_extern] = ACTIONS(6653),
    [sym_final] = ACTIONS(6653),
    [sym_function] = ACTIONS(6653),
    [sym_immutable] = ACTIONS(6653),
    [sym_in] = ACTIONS(6653),
    [sym_inout] = ACTIONS(6653),
    [sym_lazy] = ACTIONS(6653),
    [sym_mixin] = ACTIONS(6653),
    [sym_nothrow] = ACTIONS(6653),
    [sym_out] = ACTIONS(6653),
    [sym_override] = ACTIONS(6653),
    [sym_pure] = ACTIONS(6653),
    [sym_ref] = ACTIONS(6653),
    [sym_return] = ACTIONS(6653),
    [sym_scope] = ACTIONS(6653),
    [sym_shared] = ACTIONS(6653),
    [sym_static] = ACTIONS(6653),
    [sym_synchronized] = ACTIONS(6653),
    [sym_typeof] = ACTIONS(6653),
    [sym_gshared] = ACTIONS(6653),
    [sym_traits] = ACTIONS(6653),
    [sym_vector] = ACTIONS(6653),
    [sym_void] = ACTIONS(6653),
    [sym_directive] = ACTIONS(3),
  },
  [3123] = {
    [sym_identifier] = ACTIONS(3048),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3050),
    [anon_sym_DOT] = ACTIONS(3050),
    [anon_sym_LPAREN] = ACTIONS(3050),
    [anon_sym_RPAREN] = ACTIONS(3050),
    [anon_sym_LBRACK] = ACTIONS(3050),
    [anon_sym_COMMA] = ACTIONS(3050),
    [anon_sym_EQ] = ACTIONS(3050),
    [anon_sym_STAR] = ACTIONS(3050),
    [anon_sym_AT] = ACTIONS(3050),
    [sym_bool] = ACTIONS(3048),
    [sym_byte] = ACTIONS(3048),
    [sym_ubyte] = ACTIONS(3048),
    [sym_char] = ACTIONS(3048),
    [sym_short] = ACTIONS(3048),
    [sym_ushort] = ACTIONS(3048),
    [sym_int] = ACTIONS(3048),
    [sym_uint] = ACTIONS(3048),
    [sym_long] = ACTIONS(3048),
    [sym_ulong] = ACTIONS(3048),
    [sym_cent] = ACTIONS(3048),
    [sym_ucent] = ACTIONS(3048),
    [sym_wchar] = ACTIONS(3048),
    [sym_dchar] = ACTIONS(3048),
    [sym_float] = ACTIONS(3048),
    [sym_double] = ACTIONS(3048),
    [sym_real] = ACTIONS(3048),
    [sym_ifloat] = ACTIONS(3048),
    [sym_idouble] = ACTIONS(3048),
    [sym_ireal] = ACTIONS(3048),
    [sym_cfloat] = ACTIONS(3048),
    [sym_cdouble] = ACTIONS(3048),
    [sym_creal] = ACTIONS(3048),
    [sym_size_t] = ACTIONS(3048),
    [sym_ptrdiff_t] = ACTIONS(3048),
    [sym_string] = ACTIONS(3048),
    [sym_cstring] = ACTIONS(3048),
    [sym_dstring] = ACTIONS(3048),
    [sym_wstring] = ACTIONS(3048),
    [sym_noreturn] = ACTIONS(3048),
    [sym_abstract] = ACTIONS(3048),
    [sym_align] = ACTIONS(3048),
    [sym_auto] = ACTIONS(3048),
    [sym_const] = ACTIONS(3048),
    [sym_delegate] = ACTIONS(3048),
    [sym_deprecated] = ACTIONS(3048),
    [sym_do] = ACTIONS(3048),
    [sym_enum] = ACTIONS(3048),
    [sym_extern] = ACTIONS(3048),
    [sym_final] = ACTIONS(3048),
    [sym_function] = ACTIONS(3048),
    [sym_immutable] = ACTIONS(3048),
    [sym_in] = ACTIONS(3048),
    [sym_inout] = ACTIONS(3048),
    [sym_lazy] = ACTIONS(3048),
    [sym_mixin] = ACTIONS(3048),
    [sym_nothrow] = ACTIONS(3048),
    [sym_out] = ACTIONS(3048),
    [sym_override] = ACTIONS(3048),
    [sym_pure] = ACTIONS(3048),
    [sym_ref] = ACTIONS(3048),
    [sym_return] = ACTIONS(3048),
    [sym_scope] = ACTIONS(3048),
    [sym_shared] = ACTIONS(3048),
    [sym_static] = ACTIONS(3048),
    [sym_synchronized] = ACTIONS(3048),
    [sym_typeof] = ACTIONS(3048),
    [sym_gshared] = ACTIONS(3048),
    [sym_traits] = ACTIONS(3048),
    [sym_vector] = ACTIONS(3048),
    [sym_void] = ACTIONS(3048),
    [sym_directive] = ACTIONS(3),
  },
  [3124] = {
    [sym_identifier] = ACTIONS(3044),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3046),
    [anon_sym_DOT] = ACTIONS(3046),
    [anon_sym_LPAREN] = ACTIONS(3046),
    [anon_sym_RPAREN] = ACTIONS(3046),
    [anon_sym_LBRACK] = ACTIONS(3046),
    [anon_sym_COMMA] = ACTIONS(3046),
    [anon_sym_EQ] = ACTIONS(3046),
    [anon_sym_STAR] = ACTIONS(3046),
    [anon_sym_AT] = ACTIONS(3046),
    [sym_bool] = ACTIONS(3044),
    [sym_byte] = ACTIONS(3044),
    [sym_ubyte] = ACTIONS(3044),
    [sym_char] = ACTIONS(3044),
    [sym_short] = ACTIONS(3044),
    [sym_ushort] = ACTIONS(3044),
    [sym_int] = ACTIONS(3044),
    [sym_uint] = ACTIONS(3044),
    [sym_long] = ACTIONS(3044),
    [sym_ulong] = ACTIONS(3044),
    [sym_cent] = ACTIONS(3044),
    [sym_ucent] = ACTIONS(3044),
    [sym_wchar] = ACTIONS(3044),
    [sym_dchar] = ACTIONS(3044),
    [sym_float] = ACTIONS(3044),
    [sym_double] = ACTIONS(3044),
    [sym_real] = ACTIONS(3044),
    [sym_ifloat] = ACTIONS(3044),
    [sym_idouble] = ACTIONS(3044),
    [sym_ireal] = ACTIONS(3044),
    [sym_cfloat] = ACTIONS(3044),
    [sym_cdouble] = ACTIONS(3044),
    [sym_creal] = ACTIONS(3044),
    [sym_size_t] = ACTIONS(3044),
    [sym_ptrdiff_t] = ACTIONS(3044),
    [sym_string] = ACTIONS(3044),
    [sym_cstring] = ACTIONS(3044),
    [sym_dstring] = ACTIONS(3044),
    [sym_wstring] = ACTIONS(3044),
    [sym_noreturn] = ACTIONS(3044),
    [sym_abstract] = ACTIONS(3044),
    [sym_align] = ACTIONS(3044),
    [sym_auto] = ACTIONS(3044),
    [sym_const] = ACTIONS(3044),
    [sym_delegate] = ACTIONS(3044),
    [sym_deprecated] = ACTIONS(3044),
    [sym_do] = ACTIONS(3044),
    [sym_enum] = ACTIONS(3044),
    [sym_extern] = ACTIONS(3044),
    [sym_final] = ACTIONS(3044),
    [sym_function] = ACTIONS(3044),
    [sym_immutable] = ACTIONS(3044),
    [sym_in] = ACTIONS(3044),
    [sym_inout] = ACTIONS(3044),
    [sym_lazy] = ACTIONS(3044),
    [sym_mixin] = ACTIONS(3044),
    [sym_nothrow] = ACTIONS(3044),
    [sym_out] = ACTIONS(3044),
    [sym_override] = ACTIONS(3044),
    [sym_pure] = ACTIONS(3044),
    [sym_ref] = ACTIONS(3044),
    [sym_return] = ACTIONS(3044),
    [sym_scope] = ACTIONS(3044),
    [sym_shared] = ACTIONS(3044),
    [sym_static] = ACTIONS(3044),
    [sym_synchronized] = ACTIONS(3044),
    [sym_typeof] = ACTIONS(3044),
    [sym_gshared] = ACTIONS(3044),
    [sym_traits] = ACTIONS(3044),
    [sym_vector] = ACTIONS(3044),
    [sym_void] = ACTIONS(3044),
    [sym_directive] = ACTIONS(3),
  },
  [3125] = {
    [sym_identifier] = ACTIONS(3036),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3038),
    [anon_sym_DOT] = ACTIONS(3038),
    [anon_sym_LPAREN] = ACTIONS(3038),
    [anon_sym_RPAREN] = ACTIONS(3038),
    [anon_sym_LBRACK] = ACTIONS(3038),
    [anon_sym_COMMA] = ACTIONS(3038),
    [anon_sym_EQ] = ACTIONS(3038),
    [anon_sym_STAR] = ACTIONS(3038),
    [anon_sym_AT] = ACTIONS(3038),
    [sym_bool] = ACTIONS(3036),
    [sym_byte] = ACTIONS(3036),
    [sym_ubyte] = ACTIONS(3036),
    [sym_char] = ACTIONS(3036),
    [sym_short] = ACTIONS(3036),
    [sym_ushort] = ACTIONS(3036),
    [sym_int] = ACTIONS(3036),
    [sym_uint] = ACTIONS(3036),
    [sym_long] = ACTIONS(3036),
    [sym_ulong] = ACTIONS(3036),
    [sym_cent] = ACTIONS(3036),
    [sym_ucent] = ACTIONS(3036),
    [sym_wchar] = ACTIONS(3036),
    [sym_dchar] = ACTIONS(3036),
    [sym_float] = ACTIONS(3036),
    [sym_double] = ACTIONS(3036),
    [sym_real] = ACTIONS(3036),
    [sym_ifloat] = ACTIONS(3036),
    [sym_idouble] = ACTIONS(3036),
    [sym_ireal] = ACTIONS(3036),
    [sym_cfloat] = ACTIONS(3036),
    [sym_cdouble] = ACTIONS(3036),
    [sym_creal] = ACTIONS(3036),
    [sym_size_t] = ACTIONS(3036),
    [sym_ptrdiff_t] = ACTIONS(3036),
    [sym_string] = ACTIONS(3036),
    [sym_cstring] = ACTIONS(3036),
    [sym_dstring] = ACTIONS(3036),
    [sym_wstring] = ACTIONS(3036),
    [sym_noreturn] = ACTIONS(3036),
    [sym_abstract] = ACTIONS(3036),
    [sym_align] = ACTIONS(3036),
    [sym_auto] = ACTIONS(3036),
    [sym_const] = ACTIONS(3036),
    [sym_delegate] = ACTIONS(3036),
    [sym_deprecated] = ACTIONS(3036),
    [sym_do] = ACTIONS(3036),
    [sym_enum] = ACTIONS(3036),
    [sym_extern] = ACTIONS(3036),
    [sym_final] = ACTIONS(3036),
    [sym_function] = ACTIONS(3036),
    [sym_immutable] = ACTIONS(3036),
    [sym_in] = ACTIONS(3036),
    [sym_inout] = ACTIONS(3036),
    [sym_lazy] = ACTIONS(3036),
    [sym_mixin] = ACTIONS(3036),
    [sym_nothrow] = ACTIONS(3036),
    [sym_out] = ACTIONS(3036),
    [sym_override] = ACTIONS(3036),
    [sym_pure] = ACTIONS(3036),
    [sym_ref] = ACTIONS(3036),
    [sym_return] = ACTIONS(3036),
    [sym_scope] = ACTIONS(3036),
    [sym_shared] = ACTIONS(3036),
    [sym_static] = ACTIONS(3036),
    [sym_synchronized] = ACTIONS(3036),
    [sym_typeof] = ACTIONS(3036),
    [sym_gshared] = ACTIONS(3036),
    [sym_traits] = ACTIONS(3036),
    [sym_vector] = ACTIONS(3036),
    [sym_void] = ACTIONS(3036),
    [sym_directive] = ACTIONS(3),
  },
  [3126] = {
    [sym_identifier] = ACTIONS(3000),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3002),
    [anon_sym_DOT] = ACTIONS(3002),
    [anon_sym_LPAREN] = ACTIONS(3002),
    [anon_sym_RPAREN] = ACTIONS(3002),
    [anon_sym_LBRACK] = ACTIONS(3002),
    [anon_sym_COMMA] = ACTIONS(3002),
    [anon_sym_EQ] = ACTIONS(3002),
    [anon_sym_STAR] = ACTIONS(3002),
    [anon_sym_AT] = ACTIONS(3002),
    [sym_bool] = ACTIONS(3000),
    [sym_byte] = ACTIONS(3000),
    [sym_ubyte] = ACTIONS(3000),
    [sym_char] = ACTIONS(3000),
    [sym_short] = ACTIONS(3000),
    [sym_ushort] = ACTIONS(3000),
    [sym_int] = ACTIONS(3000),
    [sym_uint] = ACTIONS(3000),
    [sym_long] = ACTIONS(3000),
    [sym_ulong] = ACTIONS(3000),
    [sym_cent] = ACTIONS(3000),
    [sym_ucent] = ACTIONS(3000),
    [sym_wchar] = ACTIONS(3000),
    [sym_dchar] = ACTIONS(3000),
    [sym_float] = ACTIONS(3000),
    [sym_double] = ACTIONS(3000),
    [sym_real] = ACTIONS(3000),
    [sym_ifloat] = ACTIONS(3000),
    [sym_idouble] = ACTIONS(3000),
    [sym_ireal] = ACTIONS(3000),
    [sym_cfloat] = ACTIONS(3000),
    [sym_cdouble] = ACTIONS(3000),
    [sym_creal] = ACTIONS(3000),
    [sym_size_t] = ACTIONS(3000),
    [sym_ptrdiff_t] = ACTIONS(3000),
    [sym_string] = ACTIONS(3000),
    [sym_cstring] = ACTIONS(3000),
    [sym_dstring] = ACTIONS(3000),
    [sym_wstring] = ACTIONS(3000),
    [sym_noreturn] = ACTIONS(3000),
    [sym_abstract] = ACTIONS(3000),
    [sym_align] = ACTIONS(3000),
    [sym_auto] = ACTIONS(3000),
    [sym_const] = ACTIONS(3000),
    [sym_delegate] = ACTIONS(3000),
    [sym_deprecated] = ACTIONS(3000),
    [sym_do] = ACTIONS(3000),
    [sym_enum] = ACTIONS(3000),
    [sym_extern] = ACTIONS(3000),
    [sym_final] = ACTIONS(3000),
    [sym_function] = ACTIONS(3000),
    [sym_immutable] = ACTIONS(3000),
    [sym_in] = ACTIONS(3000),
    [sym_inout] = ACTIONS(3000),
    [sym_lazy] = ACTIONS(3000),
    [sym_mixin] = ACTIONS(3000),
    [sym_nothrow] = ACTIONS(3000),
    [sym_out] = ACTIONS(3000),
    [sym_override] = ACTIONS(3000),
    [sym_pure] = ACTIONS(3000),
    [sym_ref] = ACTIONS(3000),
    [sym_return] = ACTIONS(3000),
    [sym_scope] = ACTIONS(3000),
    [sym_shared] = ACTIONS(3000),
    [sym_static] = ACTIONS(3000),
    [sym_synchronized] = ACTIONS(3000),
    [sym_typeof] = ACTIONS(3000),
    [sym_gshared] = ACTIONS(3000),
    [sym_traits] = ACTIONS(3000),
    [sym_vector] = ACTIONS(3000),
    [sym_void] = ACTIONS(3000),
    [sym_directive] = ACTIONS(3),
  },
  [3127] = {
    [sym_type] = STATE(4732),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4950),
    [sym_block_statement] = STATE(6675),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(6675),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7539),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(6625),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7541),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3128] = {
    [sym_type] = STATE(4739),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4950),
    [sym_block_statement] = STATE(6675),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6675),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7543),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(6625),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7545),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3129] = {
    [sym_identifier] = ACTIONS(6661),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6663),
    [anon_sym_DOT] = ACTIONS(6663),
    [anon_sym_LPAREN] = ACTIONS(6663),
    [anon_sym_RPAREN] = ACTIONS(6663),
    [anon_sym_LBRACK] = ACTIONS(6663),
    [anon_sym_COMMA] = ACTIONS(6663),
    [anon_sym_EQ] = ACTIONS(6663),
    [anon_sym_STAR] = ACTIONS(6663),
    [anon_sym_AT] = ACTIONS(6663),
    [sym_bool] = ACTIONS(6661),
    [sym_byte] = ACTIONS(6661),
    [sym_ubyte] = ACTIONS(6661),
    [sym_char] = ACTIONS(6661),
    [sym_short] = ACTIONS(6661),
    [sym_ushort] = ACTIONS(6661),
    [sym_int] = ACTIONS(6661),
    [sym_uint] = ACTIONS(6661),
    [sym_long] = ACTIONS(6661),
    [sym_ulong] = ACTIONS(6661),
    [sym_cent] = ACTIONS(6661),
    [sym_ucent] = ACTIONS(6661),
    [sym_wchar] = ACTIONS(6661),
    [sym_dchar] = ACTIONS(6661),
    [sym_float] = ACTIONS(6661),
    [sym_double] = ACTIONS(6661),
    [sym_real] = ACTIONS(6661),
    [sym_ifloat] = ACTIONS(6661),
    [sym_idouble] = ACTIONS(6661),
    [sym_ireal] = ACTIONS(6661),
    [sym_cfloat] = ACTIONS(6661),
    [sym_cdouble] = ACTIONS(6661),
    [sym_creal] = ACTIONS(6661),
    [sym_size_t] = ACTIONS(6661),
    [sym_ptrdiff_t] = ACTIONS(6661),
    [sym_string] = ACTIONS(6661),
    [sym_cstring] = ACTIONS(6661),
    [sym_dstring] = ACTIONS(6661),
    [sym_wstring] = ACTIONS(6661),
    [sym_noreturn] = ACTIONS(6661),
    [sym_abstract] = ACTIONS(6661),
    [sym_align] = ACTIONS(6661),
    [sym_auto] = ACTIONS(6661),
    [sym_const] = ACTIONS(6661),
    [sym_delegate] = ACTIONS(6661),
    [sym_deprecated] = ACTIONS(6661),
    [sym_do] = ACTIONS(6661),
    [sym_enum] = ACTIONS(6661),
    [sym_extern] = ACTIONS(6661),
    [sym_final] = ACTIONS(6661),
    [sym_function] = ACTIONS(6661),
    [sym_immutable] = ACTIONS(6661),
    [sym_in] = ACTIONS(6661),
    [sym_inout] = ACTIONS(6661),
    [sym_lazy] = ACTIONS(6661),
    [sym_mixin] = ACTIONS(6661),
    [sym_nothrow] = ACTIONS(6661),
    [sym_out] = ACTIONS(6661),
    [sym_override] = ACTIONS(6661),
    [sym_pure] = ACTIONS(6661),
    [sym_ref] = ACTIONS(6661),
    [sym_return] = ACTIONS(6661),
    [sym_scope] = ACTIONS(6661),
    [sym_shared] = ACTIONS(6661),
    [sym_static] = ACTIONS(6661),
    [sym_synchronized] = ACTIONS(6661),
    [sym_typeof] = ACTIONS(6661),
    [sym_gshared] = ACTIONS(6661),
    [sym_traits] = ACTIONS(6661),
    [sym_vector] = ACTIONS(6661),
    [sym_void] = ACTIONS(6661),
    [sym_directive] = ACTIONS(3),
  },
  [3130] = {
    [sym_type] = STATE(4781),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4963),
    [sym_block_statement] = STATE(3967),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3967),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7547),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7549),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3131] = {
    [sym_identifier] = ACTIONS(3012),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3014),
    [anon_sym_DOT] = ACTIONS(3014),
    [anon_sym_LPAREN] = ACTIONS(3014),
    [anon_sym_RPAREN] = ACTIONS(3014),
    [anon_sym_LBRACK] = ACTIONS(3014),
    [anon_sym_COMMA] = ACTIONS(3014),
    [anon_sym_EQ] = ACTIONS(3014),
    [anon_sym_STAR] = ACTIONS(3014),
    [anon_sym_AT] = ACTIONS(3014),
    [sym_bool] = ACTIONS(3012),
    [sym_byte] = ACTIONS(3012),
    [sym_ubyte] = ACTIONS(3012),
    [sym_char] = ACTIONS(3012),
    [sym_short] = ACTIONS(3012),
    [sym_ushort] = ACTIONS(3012),
    [sym_int] = ACTIONS(3012),
    [sym_uint] = ACTIONS(3012),
    [sym_long] = ACTIONS(3012),
    [sym_ulong] = ACTIONS(3012),
    [sym_cent] = ACTIONS(3012),
    [sym_ucent] = ACTIONS(3012),
    [sym_wchar] = ACTIONS(3012),
    [sym_dchar] = ACTIONS(3012),
    [sym_float] = ACTIONS(3012),
    [sym_double] = ACTIONS(3012),
    [sym_real] = ACTIONS(3012),
    [sym_ifloat] = ACTIONS(3012),
    [sym_idouble] = ACTIONS(3012),
    [sym_ireal] = ACTIONS(3012),
    [sym_cfloat] = ACTIONS(3012),
    [sym_cdouble] = ACTIONS(3012),
    [sym_creal] = ACTIONS(3012),
    [sym_size_t] = ACTIONS(3012),
    [sym_ptrdiff_t] = ACTIONS(3012),
    [sym_string] = ACTIONS(3012),
    [sym_cstring] = ACTIONS(3012),
    [sym_dstring] = ACTIONS(3012),
    [sym_wstring] = ACTIONS(3012),
    [sym_noreturn] = ACTIONS(3012),
    [sym_abstract] = ACTIONS(3012),
    [sym_align] = ACTIONS(3012),
    [sym_auto] = ACTIONS(3012),
    [sym_const] = ACTIONS(3012),
    [sym_delegate] = ACTIONS(3012),
    [sym_deprecated] = ACTIONS(3012),
    [sym_do] = ACTIONS(3012),
    [sym_enum] = ACTIONS(3012),
    [sym_extern] = ACTIONS(3012),
    [sym_final] = ACTIONS(3012),
    [sym_function] = ACTIONS(3012),
    [sym_immutable] = ACTIONS(3012),
    [sym_in] = ACTIONS(3012),
    [sym_inout] = ACTIONS(3012),
    [sym_lazy] = ACTIONS(3012),
    [sym_mixin] = ACTIONS(3012),
    [sym_nothrow] = ACTIONS(3012),
    [sym_out] = ACTIONS(3012),
    [sym_override] = ACTIONS(3012),
    [sym_pure] = ACTIONS(3012),
    [sym_ref] = ACTIONS(3012),
    [sym_return] = ACTIONS(3012),
    [sym_scope] = ACTIONS(3012),
    [sym_shared] = ACTIONS(3012),
    [sym_static] = ACTIONS(3012),
    [sym_synchronized] = ACTIONS(3012),
    [sym_typeof] = ACTIONS(3012),
    [sym_gshared] = ACTIONS(3012),
    [sym_traits] = ACTIONS(3012),
    [sym_vector] = ACTIONS(3012),
    [sym_void] = ACTIONS(3012),
    [sym_directive] = ACTIONS(3),
  },
  [3132] = {
    [sym_identifier] = ACTIONS(3024),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3026),
    [anon_sym_DOT] = ACTIONS(3026),
    [anon_sym_LPAREN] = ACTIONS(3026),
    [anon_sym_RPAREN] = ACTIONS(3026),
    [anon_sym_LBRACK] = ACTIONS(3026),
    [anon_sym_COMMA] = ACTIONS(3026),
    [anon_sym_EQ] = ACTIONS(3026),
    [anon_sym_STAR] = ACTIONS(3026),
    [anon_sym_AT] = ACTIONS(3026),
    [sym_bool] = ACTIONS(3024),
    [sym_byte] = ACTIONS(3024),
    [sym_ubyte] = ACTIONS(3024),
    [sym_char] = ACTIONS(3024),
    [sym_short] = ACTIONS(3024),
    [sym_ushort] = ACTIONS(3024),
    [sym_int] = ACTIONS(3024),
    [sym_uint] = ACTIONS(3024),
    [sym_long] = ACTIONS(3024),
    [sym_ulong] = ACTIONS(3024),
    [sym_cent] = ACTIONS(3024),
    [sym_ucent] = ACTIONS(3024),
    [sym_wchar] = ACTIONS(3024),
    [sym_dchar] = ACTIONS(3024),
    [sym_float] = ACTIONS(3024),
    [sym_double] = ACTIONS(3024),
    [sym_real] = ACTIONS(3024),
    [sym_ifloat] = ACTIONS(3024),
    [sym_idouble] = ACTIONS(3024),
    [sym_ireal] = ACTIONS(3024),
    [sym_cfloat] = ACTIONS(3024),
    [sym_cdouble] = ACTIONS(3024),
    [sym_creal] = ACTIONS(3024),
    [sym_size_t] = ACTIONS(3024),
    [sym_ptrdiff_t] = ACTIONS(3024),
    [sym_string] = ACTIONS(3024),
    [sym_cstring] = ACTIONS(3024),
    [sym_dstring] = ACTIONS(3024),
    [sym_wstring] = ACTIONS(3024),
    [sym_noreturn] = ACTIONS(3024),
    [sym_abstract] = ACTIONS(3024),
    [sym_align] = ACTIONS(3024),
    [sym_auto] = ACTIONS(3024),
    [sym_const] = ACTIONS(3024),
    [sym_delegate] = ACTIONS(3024),
    [sym_deprecated] = ACTIONS(3024),
    [sym_do] = ACTIONS(3024),
    [sym_enum] = ACTIONS(3024),
    [sym_extern] = ACTIONS(3024),
    [sym_final] = ACTIONS(3024),
    [sym_function] = ACTIONS(3024),
    [sym_immutable] = ACTIONS(3024),
    [sym_in] = ACTIONS(3024),
    [sym_inout] = ACTIONS(3024),
    [sym_lazy] = ACTIONS(3024),
    [sym_mixin] = ACTIONS(3024),
    [sym_nothrow] = ACTIONS(3024),
    [sym_out] = ACTIONS(3024),
    [sym_override] = ACTIONS(3024),
    [sym_pure] = ACTIONS(3024),
    [sym_ref] = ACTIONS(3024),
    [sym_return] = ACTIONS(3024),
    [sym_scope] = ACTIONS(3024),
    [sym_shared] = ACTIONS(3024),
    [sym_static] = ACTIONS(3024),
    [sym_synchronized] = ACTIONS(3024),
    [sym_typeof] = ACTIONS(3024),
    [sym_gshared] = ACTIONS(3024),
    [sym_traits] = ACTIONS(3024),
    [sym_vector] = ACTIONS(3024),
    [sym_void] = ACTIONS(3024),
    [sym_directive] = ACTIONS(3),
  },
  [3133] = {
    [sym_identifier] = ACTIONS(3028),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3030),
    [anon_sym_DOT] = ACTIONS(3030),
    [anon_sym_LPAREN] = ACTIONS(3030),
    [anon_sym_RPAREN] = ACTIONS(3030),
    [anon_sym_LBRACK] = ACTIONS(3030),
    [anon_sym_COMMA] = ACTIONS(3030),
    [anon_sym_EQ] = ACTIONS(3030),
    [anon_sym_STAR] = ACTIONS(3030),
    [anon_sym_AT] = ACTIONS(3030),
    [sym_bool] = ACTIONS(3028),
    [sym_byte] = ACTIONS(3028),
    [sym_ubyte] = ACTIONS(3028),
    [sym_char] = ACTIONS(3028),
    [sym_short] = ACTIONS(3028),
    [sym_ushort] = ACTIONS(3028),
    [sym_int] = ACTIONS(3028),
    [sym_uint] = ACTIONS(3028),
    [sym_long] = ACTIONS(3028),
    [sym_ulong] = ACTIONS(3028),
    [sym_cent] = ACTIONS(3028),
    [sym_ucent] = ACTIONS(3028),
    [sym_wchar] = ACTIONS(3028),
    [sym_dchar] = ACTIONS(3028),
    [sym_float] = ACTIONS(3028),
    [sym_double] = ACTIONS(3028),
    [sym_real] = ACTIONS(3028),
    [sym_ifloat] = ACTIONS(3028),
    [sym_idouble] = ACTIONS(3028),
    [sym_ireal] = ACTIONS(3028),
    [sym_cfloat] = ACTIONS(3028),
    [sym_cdouble] = ACTIONS(3028),
    [sym_creal] = ACTIONS(3028),
    [sym_size_t] = ACTIONS(3028),
    [sym_ptrdiff_t] = ACTIONS(3028),
    [sym_string] = ACTIONS(3028),
    [sym_cstring] = ACTIONS(3028),
    [sym_dstring] = ACTIONS(3028),
    [sym_wstring] = ACTIONS(3028),
    [sym_noreturn] = ACTIONS(3028),
    [sym_abstract] = ACTIONS(3028),
    [sym_align] = ACTIONS(3028),
    [sym_auto] = ACTIONS(3028),
    [sym_const] = ACTIONS(3028),
    [sym_delegate] = ACTIONS(3028),
    [sym_deprecated] = ACTIONS(3028),
    [sym_do] = ACTIONS(3028),
    [sym_enum] = ACTIONS(3028),
    [sym_extern] = ACTIONS(3028),
    [sym_final] = ACTIONS(3028),
    [sym_function] = ACTIONS(3028),
    [sym_immutable] = ACTIONS(3028),
    [sym_in] = ACTIONS(3028),
    [sym_inout] = ACTIONS(3028),
    [sym_lazy] = ACTIONS(3028),
    [sym_mixin] = ACTIONS(3028),
    [sym_nothrow] = ACTIONS(3028),
    [sym_out] = ACTIONS(3028),
    [sym_override] = ACTIONS(3028),
    [sym_pure] = ACTIONS(3028),
    [sym_ref] = ACTIONS(3028),
    [sym_return] = ACTIONS(3028),
    [sym_scope] = ACTIONS(3028),
    [sym_shared] = ACTIONS(3028),
    [sym_static] = ACTIONS(3028),
    [sym_synchronized] = ACTIONS(3028),
    [sym_typeof] = ACTIONS(3028),
    [sym_gshared] = ACTIONS(3028),
    [sym_traits] = ACTIONS(3028),
    [sym_vector] = ACTIONS(3028),
    [sym_void] = ACTIONS(3028),
    [sym_directive] = ACTIONS(3),
  },
  [3134] = {
    [sym_type] = STATE(4708),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4895),
    [sym_block_statement] = STATE(3804),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3804),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7551),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7553),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3135] = {
    [sym_type] = STATE(4698),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4895),
    [sym_block_statement] = STATE(3804),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3804),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7555),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7557),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3136] = {
    [sym_identifier] = ACTIONS(6657),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6659),
    [anon_sym_DOT] = ACTIONS(6659),
    [anon_sym_LPAREN] = ACTIONS(6659),
    [anon_sym_RPAREN] = ACTIONS(6659),
    [anon_sym_LBRACK] = ACTIONS(6659),
    [anon_sym_COMMA] = ACTIONS(6659),
    [anon_sym_EQ] = ACTIONS(6659),
    [anon_sym_STAR] = ACTIONS(6659),
    [anon_sym_AT] = ACTIONS(6659),
    [sym_bool] = ACTIONS(6657),
    [sym_byte] = ACTIONS(6657),
    [sym_ubyte] = ACTIONS(6657),
    [sym_char] = ACTIONS(6657),
    [sym_short] = ACTIONS(6657),
    [sym_ushort] = ACTIONS(6657),
    [sym_int] = ACTIONS(6657),
    [sym_uint] = ACTIONS(6657),
    [sym_long] = ACTIONS(6657),
    [sym_ulong] = ACTIONS(6657),
    [sym_cent] = ACTIONS(6657),
    [sym_ucent] = ACTIONS(6657),
    [sym_wchar] = ACTIONS(6657),
    [sym_dchar] = ACTIONS(6657),
    [sym_float] = ACTIONS(6657),
    [sym_double] = ACTIONS(6657),
    [sym_real] = ACTIONS(6657),
    [sym_ifloat] = ACTIONS(6657),
    [sym_idouble] = ACTIONS(6657),
    [sym_ireal] = ACTIONS(6657),
    [sym_cfloat] = ACTIONS(6657),
    [sym_cdouble] = ACTIONS(6657),
    [sym_creal] = ACTIONS(6657),
    [sym_size_t] = ACTIONS(6657),
    [sym_ptrdiff_t] = ACTIONS(6657),
    [sym_string] = ACTIONS(6657),
    [sym_cstring] = ACTIONS(6657),
    [sym_dstring] = ACTIONS(6657),
    [sym_wstring] = ACTIONS(6657),
    [sym_noreturn] = ACTIONS(6657),
    [sym_abstract] = ACTIONS(6657),
    [sym_align] = ACTIONS(6657),
    [sym_auto] = ACTIONS(6657),
    [sym_const] = ACTIONS(6657),
    [sym_delegate] = ACTIONS(6657),
    [sym_deprecated] = ACTIONS(6657),
    [sym_do] = ACTIONS(6657),
    [sym_enum] = ACTIONS(6657),
    [sym_extern] = ACTIONS(6657),
    [sym_final] = ACTIONS(6657),
    [sym_function] = ACTIONS(6657),
    [sym_immutable] = ACTIONS(6657),
    [sym_in] = ACTIONS(6657),
    [sym_inout] = ACTIONS(6657),
    [sym_lazy] = ACTIONS(6657),
    [sym_mixin] = ACTIONS(6657),
    [sym_nothrow] = ACTIONS(6657),
    [sym_out] = ACTIONS(6657),
    [sym_override] = ACTIONS(6657),
    [sym_pure] = ACTIONS(6657),
    [sym_ref] = ACTIONS(6657),
    [sym_return] = ACTIONS(6657),
    [sym_scope] = ACTIONS(6657),
    [sym_shared] = ACTIONS(6657),
    [sym_static] = ACTIONS(6657),
    [sym_synchronized] = ACTIONS(6657),
    [sym_typeof] = ACTIONS(6657),
    [sym_gshared] = ACTIONS(6657),
    [sym_traits] = ACTIONS(6657),
    [sym_vector] = ACTIONS(6657),
    [sym_void] = ACTIONS(6657),
    [sym_directive] = ACTIONS(3),
  },
  [3137] = {
    [sym_identifier] = ACTIONS(3032),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3034),
    [anon_sym_DOT] = ACTIONS(3034),
    [anon_sym_LPAREN] = ACTIONS(3034),
    [anon_sym_RPAREN] = ACTIONS(3034),
    [anon_sym_LBRACK] = ACTIONS(3034),
    [anon_sym_COMMA] = ACTIONS(3034),
    [anon_sym_EQ] = ACTIONS(3034),
    [anon_sym_STAR] = ACTIONS(3034),
    [anon_sym_AT] = ACTIONS(3034),
    [sym_bool] = ACTIONS(3032),
    [sym_byte] = ACTIONS(3032),
    [sym_ubyte] = ACTIONS(3032),
    [sym_char] = ACTIONS(3032),
    [sym_short] = ACTIONS(3032),
    [sym_ushort] = ACTIONS(3032),
    [sym_int] = ACTIONS(3032),
    [sym_uint] = ACTIONS(3032),
    [sym_long] = ACTIONS(3032),
    [sym_ulong] = ACTIONS(3032),
    [sym_cent] = ACTIONS(3032),
    [sym_ucent] = ACTIONS(3032),
    [sym_wchar] = ACTIONS(3032),
    [sym_dchar] = ACTIONS(3032),
    [sym_float] = ACTIONS(3032),
    [sym_double] = ACTIONS(3032),
    [sym_real] = ACTIONS(3032),
    [sym_ifloat] = ACTIONS(3032),
    [sym_idouble] = ACTIONS(3032),
    [sym_ireal] = ACTIONS(3032),
    [sym_cfloat] = ACTIONS(3032),
    [sym_cdouble] = ACTIONS(3032),
    [sym_creal] = ACTIONS(3032),
    [sym_size_t] = ACTIONS(3032),
    [sym_ptrdiff_t] = ACTIONS(3032),
    [sym_string] = ACTIONS(3032),
    [sym_cstring] = ACTIONS(3032),
    [sym_dstring] = ACTIONS(3032),
    [sym_wstring] = ACTIONS(3032),
    [sym_noreturn] = ACTIONS(3032),
    [sym_abstract] = ACTIONS(3032),
    [sym_align] = ACTIONS(3032),
    [sym_auto] = ACTIONS(3032),
    [sym_const] = ACTIONS(3032),
    [sym_delegate] = ACTIONS(3032),
    [sym_deprecated] = ACTIONS(3032),
    [sym_do] = ACTIONS(3032),
    [sym_enum] = ACTIONS(3032),
    [sym_extern] = ACTIONS(3032),
    [sym_final] = ACTIONS(3032),
    [sym_function] = ACTIONS(3032),
    [sym_immutable] = ACTIONS(3032),
    [sym_in] = ACTIONS(3032),
    [sym_inout] = ACTIONS(3032),
    [sym_lazy] = ACTIONS(3032),
    [sym_mixin] = ACTIONS(3032),
    [sym_nothrow] = ACTIONS(3032),
    [sym_out] = ACTIONS(3032),
    [sym_override] = ACTIONS(3032),
    [sym_pure] = ACTIONS(3032),
    [sym_ref] = ACTIONS(3032),
    [sym_return] = ACTIONS(3032),
    [sym_scope] = ACTIONS(3032),
    [sym_shared] = ACTIONS(3032),
    [sym_static] = ACTIONS(3032),
    [sym_synchronized] = ACTIONS(3032),
    [sym_typeof] = ACTIONS(3032),
    [sym_gshared] = ACTIONS(3032),
    [sym_traits] = ACTIONS(3032),
    [sym_vector] = ACTIONS(3032),
    [sym_void] = ACTIONS(3032),
    [sym_directive] = ACTIONS(3),
  },
  [3138] = {
    [sym_type] = STATE(4742),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4848),
    [sym_block_statement] = STATE(3804),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3804),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_auto] = ACTIONS(7559),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_ref] = ACTIONS(7561),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3139] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6172),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7737),
    [aux_sym__variadic_arguments_attributes] = STATE(5205),
    [sym_variadic_arguments_attribute] = STATE(5205),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7565),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3140] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7637),
    [aux_sym__variadic_arguments_attributes] = STATE(5173),
    [sym_variadic_arguments_attribute] = STATE(5173),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7567),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3141] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6016),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7119),
    [aux_sym__variadic_arguments_attributes] = STATE(5160),
    [sym_variadic_arguments_attribute] = STATE(5160),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7569),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3142] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7780),
    [aux_sym__variadic_arguments_attributes] = STATE(5147),
    [sym_variadic_arguments_attribute] = STATE(5147),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7571),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3143] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7165),
    [aux_sym__variadic_arguments_attributes] = STATE(5158),
    [sym_variadic_arguments_attribute] = STATE(5158),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7573),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3144] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7678),
    [aux_sym__variadic_arguments_attributes] = STATE(5204),
    [sym_variadic_arguments_attribute] = STATE(5204),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7575),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3145] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(6983),
    [aux_sym__variadic_arguments_attributes] = STATE(5185),
    [sym_variadic_arguments_attribute] = STATE(5185),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7577),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3146] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6107),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7784),
    [aux_sym__variadic_arguments_attributes] = STATE(5144),
    [sym_variadic_arguments_attribute] = STATE(5144),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7579),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3147] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(6978),
    [aux_sym__variadic_arguments_attributes] = STATE(5146),
    [sym_variadic_arguments_attribute] = STATE(5146),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7581),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3148] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6115),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7204),
    [aux_sym__variadic_arguments_attributes] = STATE(5191),
    [sym_variadic_arguments_attribute] = STATE(5191),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7583),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3149] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7943),
    [aux_sym__variadic_arguments_attributes] = STATE(5193),
    [sym_variadic_arguments_attribute] = STATE(5193),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7585),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3150] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7814),
    [aux_sym__variadic_arguments_attributes] = STATE(5152),
    [sym_variadic_arguments_attribute] = STATE(5152),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7587),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3151] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6397),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7455),
    [aux_sym__variadic_arguments_attributes] = STATE(5202),
    [sym_variadic_arguments_attribute] = STATE(5202),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7589),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3152] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7851),
    [aux_sym__variadic_arguments_attributes] = STATE(5199),
    [sym_variadic_arguments_attribute] = STATE(5199),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7591),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3153] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6096),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7791),
    [aux_sym__variadic_arguments_attributes] = STATE(5206),
    [sym_variadic_arguments_attribute] = STATE(5206),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7593),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3154] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7769),
    [aux_sym__variadic_arguments_attributes] = STATE(5187),
    [sym_variadic_arguments_attribute] = STATE(5187),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7595),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3155] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7754),
    [aux_sym__variadic_arguments_attributes] = STATE(5207),
    [sym_variadic_arguments_attribute] = STATE(5207),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7597),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3156] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7703),
    [aux_sym__variadic_arguments_attributes] = STATE(5181),
    [sym_variadic_arguments_attribute] = STATE(5181),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7599),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3157] = {
    [sym_storage_class] = STATE(3157),
    [sym_type_ctor] = STATE(3234),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [aux_sym_variable_declaration_repeat1] = STATE(3157),
    [sym_identifier] = ACTIONS(7601),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7603),
    [anon_sym_DOT] = ACTIONS(7603),
    [anon_sym_LPAREN] = ACTIONS(7603),
    [anon_sym_AT] = ACTIONS(7605),
    [sym_bool] = ACTIONS(7601),
    [sym_byte] = ACTIONS(7601),
    [sym_ubyte] = ACTIONS(7601),
    [sym_char] = ACTIONS(7601),
    [sym_short] = ACTIONS(7601),
    [sym_ushort] = ACTIONS(7601),
    [sym_int] = ACTIONS(7601),
    [sym_uint] = ACTIONS(7601),
    [sym_long] = ACTIONS(7601),
    [sym_ulong] = ACTIONS(7601),
    [sym_cent] = ACTIONS(7601),
    [sym_ucent] = ACTIONS(7601),
    [sym_wchar] = ACTIONS(7601),
    [sym_dchar] = ACTIONS(7601),
    [sym_float] = ACTIONS(7601),
    [sym_double] = ACTIONS(7601),
    [sym_real] = ACTIONS(7601),
    [sym_ifloat] = ACTIONS(7601),
    [sym_idouble] = ACTIONS(7601),
    [sym_ireal] = ACTIONS(7601),
    [sym_cfloat] = ACTIONS(7601),
    [sym_cdouble] = ACTIONS(7601),
    [sym_creal] = ACTIONS(7601),
    [sym_size_t] = ACTIONS(7601),
    [sym_ptrdiff_t] = ACTIONS(7601),
    [sym_string] = ACTIONS(7601),
    [sym_cstring] = ACTIONS(7601),
    [sym_dstring] = ACTIONS(7601),
    [sym_wstring] = ACTIONS(7601),
    [sym_noreturn] = ACTIONS(7601),
    [sym_abstract] = ACTIONS(7608),
    [sym_align] = ACTIONS(7611),
    [sym_auto] = ACTIONS(7608),
    [sym_const] = ACTIONS(7614),
    [sym_delegate] = ACTIONS(7601),
    [sym_deprecated] = ACTIONS(7608),
    [sym_do] = ACTIONS(7601),
    [sym_extern] = ACTIONS(7617),
    [sym_final] = ACTIONS(7608),
    [sym_function] = ACTIONS(7601),
    [sym_immutable] = ACTIONS(7614),
    [sym_in] = ACTIONS(7601),
    [sym_inout] = ACTIONS(7614),
    [sym_mixin] = ACTIONS(7601),
    [sym_nothrow] = ACTIONS(7608),
    [sym_out] = ACTIONS(7601),
    [sym_override] = ACTIONS(7608),
    [sym_pure] = ACTIONS(7608),
    [sym_ref] = ACTIONS(7608),
    [sym_scope] = ACTIONS(7608),
    [sym_shared] = ACTIONS(7614),
    [sym_static] = ACTIONS(7608),
    [sym_synchronized] = ACTIONS(7608),
    [sym_typeof] = ACTIONS(7601),
    [sym_gshared] = ACTIONS(7608),
    [sym_traits] = ACTIONS(7601),
    [sym_vector] = ACTIONS(7601),
    [sym_void] = ACTIONS(7601),
    [sym_directive] = ACTIONS(3),
  },
  [3158] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6010),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7860),
    [aux_sym__variadic_arguments_attributes] = STATE(5163),
    [sym_variadic_arguments_attribute] = STATE(5163),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7620),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3159] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7761),
    [aux_sym__variadic_arguments_attributes] = STATE(5201),
    [sym_variadic_arguments_attribute] = STATE(5201),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7622),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3160] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7961),
    [aux_sym__variadic_arguments_attributes] = STATE(5175),
    [sym_variadic_arguments_attribute] = STATE(5175),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7624),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3161] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(5736),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(8058),
    [aux_sym__variadic_arguments_attributes] = STATE(5155),
    [sym_variadic_arguments_attribute] = STATE(5155),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7626),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3162] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7697),
    [aux_sym__variadic_arguments_attributes] = STATE(5153),
    [sym_variadic_arguments_attribute] = STATE(5153),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7628),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3163] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7945),
    [aux_sym__variadic_arguments_attributes] = STATE(5172),
    [sym_variadic_arguments_attribute] = STATE(5172),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7630),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3164] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6067),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7804),
    [aux_sym__variadic_arguments_attributes] = STATE(5179),
    [sym_variadic_arguments_attribute] = STATE(5179),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7632),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3165] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7286),
    [aux_sym__variadic_arguments_attributes] = STATE(5195),
    [sym_variadic_arguments_attribute] = STATE(5195),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7634),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3166] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_ellipses] = STATE(7940),
    [aux_sym__variadic_arguments_attributes] = STATE(5189),
    [sym_variadic_arguments_attribute] = STATE(5189),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7636),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3167] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_ellipses] = STATE(7535),
    [aux_sym__variadic_arguments_attributes] = STATE(5196),
    [sym_variadic_arguments_attribute] = STATE(5196),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7638),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3168] = {
    [sym_type] = STATE(4734),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4906),
    [sym_block_statement] = STATE(4065),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4065),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3673),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3169] = {
    [sym_type] = STATE(4736),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4836),
    [sym_block_statement] = STATE(6412),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(6412),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(6625),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3170] = {
    [sym_type] = STATE(4766),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4836),
    [sym_block_statement] = STATE(6412),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6412),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(6625),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3171] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_ellipses] = STATE(7654),
    [aux_sym__variadic_arguments_attributes] = STATE(5170),
    [sym_variadic_arguments_attribute] = STATE(5170),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7640),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3172] = {
    [sym_type] = STATE(4717),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4875),
    [sym_block_statement] = STATE(3987),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3987),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3173] = {
    [sym_type] = STATE(4691),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4938),
    [sym_block_statement] = STATE(3987),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3987),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3174] = {
    [sym_type] = STATE(4743),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4899),
    [sym_block_statement] = STATE(4070),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(4070),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3673),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3175] = {
    [sym_type] = STATE(4710),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4890),
    [sym_block_statement] = STATE(3797),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3797),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3176] = {
    [sym_type] = STATE(4780),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4970),
    [sym_block_statement] = STATE(3791),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3791),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3177] = {
    [sym_type] = STATE(4712),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4890),
    [sym_block_statement] = STATE(3797),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3797),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3178] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_ellipses] = STATE(7560),
    [aux_sym__variadic_arguments_attributes] = STATE(5142),
    [sym_variadic_arguments_attribute] = STATE(5142),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7642),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3179] = {
    [sym_type] = STATE(4778),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4970),
    [sym_block_statement] = STATE(3791),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3791),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3180] = {
    [sym_type] = STATE(4745),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4899),
    [sym_block_statement] = STATE(4070),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(4070),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3673),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3181] = {
    [sym_type] = STATE(4688),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4819),
    [sym_block_statement] = STATE(3948),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3948),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3182] = {
    [sym_type] = STATE(4746),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4854),
    [sym_block_statement] = STATE(3797),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3797),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3183] = {
    [sym_arguments] = STATE(3121),
    [sym_template_arguments] = STATE(3136),
    [sym_identifier] = ACTIONS(6647),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6649),
    [anon_sym_DOT] = ACTIONS(6649),
    [anon_sym_BANG] = ACTIONS(7644),
    [anon_sym_LPAREN] = ACTIONS(7497),
    [anon_sym_AT] = ACTIONS(6649),
    [sym_bool] = ACTIONS(6647),
    [sym_byte] = ACTIONS(6647),
    [sym_ubyte] = ACTIONS(6647),
    [sym_char] = ACTIONS(6647),
    [sym_short] = ACTIONS(6647),
    [sym_ushort] = ACTIONS(6647),
    [sym_int] = ACTIONS(6647),
    [sym_uint] = ACTIONS(6647),
    [sym_long] = ACTIONS(6647),
    [sym_ulong] = ACTIONS(6647),
    [sym_cent] = ACTIONS(6647),
    [sym_ucent] = ACTIONS(6647),
    [sym_wchar] = ACTIONS(6647),
    [sym_dchar] = ACTIONS(6647),
    [sym_float] = ACTIONS(6647),
    [sym_double] = ACTIONS(6647),
    [sym_real] = ACTIONS(6647),
    [sym_ifloat] = ACTIONS(6647),
    [sym_idouble] = ACTIONS(6647),
    [sym_ireal] = ACTIONS(6647),
    [sym_cfloat] = ACTIONS(6647),
    [sym_cdouble] = ACTIONS(6647),
    [sym_creal] = ACTIONS(6647),
    [sym_size_t] = ACTIONS(6647),
    [sym_ptrdiff_t] = ACTIONS(6647),
    [sym_string] = ACTIONS(6647),
    [sym_cstring] = ACTIONS(6647),
    [sym_dstring] = ACTIONS(6647),
    [sym_wstring] = ACTIONS(6647),
    [sym_noreturn] = ACTIONS(6647),
    [sym_abstract] = ACTIONS(6647),
    [sym_align] = ACTIONS(6647),
    [sym_auto] = ACTIONS(6647),
    [sym_const] = ACTIONS(6647),
    [sym_delegate] = ACTIONS(6647),
    [sym_deprecated] = ACTIONS(6647),
    [sym_do] = ACTIONS(6647),
    [sym_enum] = ACTIONS(6647),
    [sym_extern] = ACTIONS(6647),
    [sym_final] = ACTIONS(6647),
    [sym_function] = ACTIONS(6647),
    [sym_immutable] = ACTIONS(6647),
    [sym_in] = ACTIONS(6647),
    [sym_inout] = ACTIONS(6647),
    [sym_lazy] = ACTIONS(6647),
    [sym_mixin] = ACTIONS(6647),
    [sym_nothrow] = ACTIONS(6647),
    [sym_out] = ACTIONS(6647),
    [sym_override] = ACTIONS(6647),
    [sym_pure] = ACTIONS(6647),
    [sym_ref] = ACTIONS(6647),
    [sym_return] = ACTIONS(6647),
    [sym_scope] = ACTIONS(6647),
    [sym_shared] = ACTIONS(6647),
    [sym_static] = ACTIONS(6647),
    [sym_synchronized] = ACTIONS(6647),
    [sym_typeof] = ACTIONS(6647),
    [sym_gshared] = ACTIONS(6647),
    [sym_traits] = ACTIONS(6647),
    [sym_vector] = ACTIONS(6647),
    [sym_void] = ACTIONS(6647),
    [sym_directive] = ACTIONS(3),
  },
  [3184] = {
    [sym_type] = STATE(4693),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4867),
    [sym_block_statement] = STATE(6440),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(6440),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(6625),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3185] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_ellipses] = STATE(7788),
    [aux_sym__variadic_arguments_attributes] = STATE(5168),
    [sym_variadic_arguments_attribute] = STATE(5168),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7646),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3186] = {
    [sym_type] = STATE(4741),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4819),
    [sym_block_statement] = STATE(3948),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3948),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3187] = {
    [sym_type] = STATE(4733),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4906),
    [sym_block_statement] = STATE(4065),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(4065),
    [sym__function_contract] = STATE(5010),
    [sym__in_out_contract_expression] = STATE(5010),
    [sym__in_out_statement] = STATE(5010),
    [sym_in_contract_expression] = STATE(5010),
    [sym_out_contract_expression] = STATE(5010),
    [sym_in_statement] = STATE(5010),
    [sym_out_statement] = STATE(5010),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5010),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3645),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3673),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3188] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_ellipses] = STATE(7507),
    [aux_sym__variadic_arguments_attributes] = STATE(5166),
    [sym_variadic_arguments_attribute] = STATE(5166),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7648),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3189] = {
    [sym_type] = STATE(4728),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4855),
    [sym_block_statement] = STATE(3791),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3791),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3190] = {
    [sym_type] = STATE(4680),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4908),
    [sym_block_statement] = STATE(3797),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3797),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3191] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_ellipses] = STATE(7492),
    [aux_sym__variadic_arguments_attributes] = STATE(5177),
    [sym_variadic_arguments_attribute] = STATE(5177),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7650),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3192] = {
    [sym_type] = STATE(4730),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4854),
    [sym_block_statement] = STATE(3797),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3797),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3193] = {
    [sym_type] = STATE(4697),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4867),
    [sym_block_statement] = STATE(6440),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(6440),
    [sym__function_contract] = STATE(5006),
    [sym__in_out_contract_expression] = STATE(5006),
    [sym__in_out_statement] = STATE(5006),
    [sym_in_contract_expression] = STATE(5006),
    [sym_out_contract_expression] = STATE(5006),
    [sym_in_statement] = STATE(5006),
    [sym_out_statement] = STATE(5006),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5006),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6613),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(6625),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3194] = {
    [sym_type] = STATE(4724),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4875),
    [sym_block_statement] = STATE(3987),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3987),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3195] = {
    [sym_type] = STATE(4719),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4818),
    [sym_block_statement] = STATE(3948),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3948),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3196] = {
    [sym_type] = STATE(4678),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4977),
    [sym_block_statement] = STATE(3791),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3791),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3197] = {
    [sym_type] = STATE(4694),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4938),
    [sym_block_statement] = STATE(3987),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3987),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3198] = {
    [sym_type] = STATE(4674),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4818),
    [sym_block_statement] = STATE(3948),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3948),
    [sym__function_contract] = STATE(5034),
    [sym__in_out_contract_expression] = STATE(5034),
    [sym__in_out_statement] = STATE(5034),
    [sym_in_contract_expression] = STATE(5034),
    [sym_out_contract_expression] = STATE(5034),
    [sym_in_statement] = STATE(5034),
    [sym_out_statement] = STATE(5034),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5034),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3251),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(3281),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3199] = {
    [sym_type] = STATE(4683),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4908),
    [sym_block_statement] = STATE(3797),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3797),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3200] = {
    [sym_type] = STATE(5323),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3230),
    [sym_ellipses] = STATE(7068),
    [aux_sym__variadic_arguments_attributes] = STATE(5149),
    [sym_variadic_arguments_attribute] = STATE(5149),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3230),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(3133),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3201] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_ellipses] = STATE(7496),
    [aux_sym__variadic_arguments_attributes] = STATE(5184),
    [sym_variadic_arguments_attribute] = STATE(5184),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7191),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(3131),
    [anon_sym_RPAREN] = ACTIONS(7652),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(3141),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(3141),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3153),
    [sym_scope] = ACTIONS(3153),
    [sym_shared] = ACTIONS(3141),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3202] = {
    [sym_type] = STATE(4679),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_member_attributes] = STATE(4977),
    [sym_block_statement] = STATE(3791),
    [sym__parameters] = STATE(4651),
    [sym__specified_function_body] = STATE(3791),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(6615),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3203] = {
    [sym_type] = STATE(4726),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(5085),
    [sym_vector_type] = STATE(5085),
    [sym__builtin_type] = STATE(5085),
    [sym__qualified_id] = STATE(5085),
    [sym_typeof_expression] = STATE(5052),
    [sym_mixin_expression] = STATE(5085),
    [sym__parameter_with_attributes] = STATE(4855),
    [sym_block_statement] = STATE(3791),
    [sym_parameters] = STATE(5057),
    [sym__specified_function_body] = STATE(3791),
    [sym__function_contract] = STATE(5042),
    [sym__in_out_contract_expression] = STATE(5042),
    [sym__in_out_statement] = STATE(5042),
    [sym_in_contract_expression] = STATE(5042),
    [sym_out_contract_expression] = STATE(5042),
    [sym_in_statement] = STATE(5042),
    [sym_out_statement] = STATE(5042),
    [sym_template_instance] = STATE(5047),
    [sym_traits_expression] = STATE(5085),
    [aux_sym_type_repeat1] = STATE(3833),
    [aux_sym_function_body_repeat1] = STATE(5042),
    [sym_identifier] = ACTIONS(7499),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(1032),
    [anon_sym_DOT] = ACTIONS(7501),
    [anon_sym_LPAREN] = ACTIONS(7503),
    [sym_bool] = ACTIONS(7505),
    [sym_byte] = ACTIONS(7505),
    [sym_ubyte] = ACTIONS(7505),
    [sym_char] = ACTIONS(7505),
    [sym_short] = ACTIONS(7505),
    [sym_ushort] = ACTIONS(7505),
    [sym_int] = ACTIONS(7505),
    [sym_uint] = ACTIONS(7505),
    [sym_long] = ACTIONS(7505),
    [sym_ulong] = ACTIONS(7505),
    [sym_cent] = ACTIONS(7505),
    [sym_ucent] = ACTIONS(7505),
    [sym_wchar] = ACTIONS(7505),
    [sym_dchar] = ACTIONS(7505),
    [sym_float] = ACTIONS(7505),
    [sym_double] = ACTIONS(7505),
    [sym_real] = ACTIONS(7505),
    [sym_ifloat] = ACTIONS(7505),
    [sym_idouble] = ACTIONS(7505),
    [sym_ireal] = ACTIONS(7505),
    [sym_cfloat] = ACTIONS(7505),
    [sym_cdouble] = ACTIONS(7505),
    [sym_creal] = ACTIONS(7505),
    [sym_size_t] = ACTIONS(7505),
    [sym_ptrdiff_t] = ACTIONS(7505),
    [sym_string] = ACTIONS(7505),
    [sym_cstring] = ACTIONS(7505),
    [sym_dstring] = ACTIONS(7505),
    [sym_wstring] = ACTIONS(7505),
    [sym_noreturn] = ACTIONS(7505),
    [sym_const] = ACTIONS(2964),
    [sym_do] = ACTIONS(2966),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(155),
    [sym_inout] = ACTIONS(2964),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(167),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(67),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(77),
    [sym_void] = ACTIONS(7505),
    [sym_directive] = ACTIONS(3),
  },
  [3204] = {
    [sym_identifier] = ACTIONS(3060),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(3062),
    [anon_sym_DOT] = ACTIONS(3062),
    [anon_sym_LPAREN] = ACTIONS(3062),
    [anon_sym_AT] = ACTIONS(3062),
    [sym_bool] = ACTIONS(3060),
    [sym_byte] = ACTIONS(3060),
    [sym_ubyte] = ACTIONS(3060),
    [sym_char] = ACTIONS(3060),
    [sym_short] = ACTIONS(3060),
    [sym_ushort] = ACTIONS(3060),
    [sym_int] = ACTIONS(3060),
    [sym_uint] = ACTIONS(3060),
    [sym_long] = ACTIONS(3060),
    [sym_ulong] = ACTIONS(3060),
    [sym_cent] = ACTIONS(3060),
    [sym_ucent] = ACTIONS(3060),
    [sym_wchar] = ACTIONS(3060),
    [sym_dchar] = ACTIONS(3060),
    [sym_float] = ACTIONS(3060),
    [sym_double] = ACTIONS(3060),
    [sym_real] = ACTIONS(3060),
    [sym_ifloat] = ACTIONS(3060),
    [sym_idouble] = ACTIONS(3060),
    [sym_ireal] = ACTIONS(3060),
    [sym_cfloat] = ACTIONS(3060),
    [sym_cdouble] = ACTIONS(3060),
    [sym_creal] = ACTIONS(3060),
    [sym_size_t] = ACTIONS(3060),
    [sym_ptrdiff_t] = ACTIONS(3060),
    [sym_string] = ACTIONS(3060),
    [sym_cstring] = ACTIONS(3060),
    [sym_dstring] = ACTIONS(3060),
    [sym_wstring] = ACTIONS(3060),
    [sym_noreturn] = ACTIONS(3060),
    [sym_abstract] = ACTIONS(3060),
    [sym_alias] = ACTIONS(3060),
    [sym_align] = ACTIONS(3060),
    [sym_auto] = ACTIONS(3060),
    [sym_const] = ACTIONS(3060),
    [sym_delegate] = ACTIONS(3060),
    [sym_deprecated] = ACTIONS(3060),
    [sym_do] = ACTIONS(3060),
    [sym_enum] = ACTIONS(3060),
    [sym_extern] = ACTIONS(3060),
    [sym_final] = ACTIONS(3060),
    [sym_function] = ACTIONS(3060),
    [sym_immutable] = ACTIONS(3060),
    [sym_in] = ACTIONS(3060),
    [sym_inout] = ACTIONS(3060),
    [sym_lazy] = ACTIONS(3060),
    [sym_mixin] = ACTIONS(3060),
    [sym_nothrow] = ACTIONS(3060),
    [sym_out] = ACTIONS(3060),
    [sym_override] = ACTIONS(3060),
    [sym_pure] = ACTIONS(3060),
    [sym_ref] = ACTIONS(3060),
    [sym_return] = ACTIONS(3060),
    [sym_scope] = ACTIONS(3060),
    [sym_shared] = ACTIONS(3060),
    [sym_static] = ACTIONS(3060),
    [sym_synchronized] = ACTIONS(3060),
    [sym_typeof] = ACTIONS(3060),
    [sym_gshared] = ACTIONS(3060),
    [sym_traits] = ACTIONS(3060),
    [sym_vector] = ACTIONS(3060),
    [sym_void] = ACTIONS(3060),
    [sym_directive] = ACTIONS(3),
  },
  [3205] = {
    [sym_at_attribute] = STATE(3246),
    [sym__function_attribute_kwd] = STATE(3246),
    [sym__function_attribute] = STATE(3246),
    [sym_member_function_attribute] = STATE(3207),
    [aux_sym_alias_declaration_repeat2] = STATE(3207),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(7654),
    [anon_sym_SLASH] = ACTIONS(7656),
    [anon_sym_SLASH_EQ] = ACTIONS(7654),
    [anon_sym_DOT] = ACTIONS(7654),
    [anon_sym_AMP] = ACTIONS(7656),
    [anon_sym_AMP_EQ] = ACTIONS(7654),
    [anon_sym_AMP_AMP] = ACTIONS(7654),
    [anon_sym_PIPE] = ACTIONS(7656),
    [anon_sym_PIPE_EQ] = ACTIONS(7654),
    [anon_sym_PIPE_PIPE] = ACTIONS(7654),
    [anon_sym_DASH] = ACTIONS(7656),
    [anon_sym_DASH_EQ] = ACTIONS(7654),
    [anon_sym_DASH_DASH] = ACTIONS(7654),
    [anon_sym_PLUS] = ACTIONS(7656),
    [anon_sym_PLUS_EQ] = ACTIONS(7654),
    [anon_sym_PLUS_PLUS] = ACTIONS(7654),
    [anon_sym_LT] = ACTIONS(7656),
    [anon_sym_LT_EQ] = ACTIONS(7654),
    [anon_sym_LT_LT] = ACTIONS(7656),
    [anon_sym_LT_LT_EQ] = ACTIONS(7654),
    [anon_sym_GT] = ACTIONS(7656),
    [anon_sym_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT] = ACTIONS(7656),
    [anon_sym_GT_GT_GT] = ACTIONS(7656),
    [anon_sym_BANG_EQ] = ACTIONS(7654),
    [anon_sym_LPAREN] = ACTIONS(7654),
    [anon_sym_RPAREN] = ACTIONS(7654),
    [anon_sym_LBRACK] = ACTIONS(7654),
    [anon_sym_RBRACK] = ACTIONS(7654),
    [anon_sym_QMARK] = ACTIONS(7654),
    [anon_sym_COMMA] = ACTIONS(7654),
    [anon_sym_SEMI] = ACTIONS(7654),
    [anon_sym_COLON] = ACTIONS(7654),
    [anon_sym_EQ] = ACTIONS(7656),
    [anon_sym_EQ_EQ] = ACTIONS(7654),
    [anon_sym_STAR] = ACTIONS(7656),
    [anon_sym_STAR_EQ] = ACTIONS(7654),
    [anon_sym_PERCENT] = ACTIONS(7656),
    [anon_sym_PERCENT_EQ] = ACTIONS(7654),
    [anon_sym_CARET] = ACTIONS(7656),
    [anon_sym_CARET_EQ] = ACTIONS(7654),
    [anon_sym_CARET_CARET] = ACTIONS(7656),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7654),
    [anon_sym_TILDE] = ACTIONS(7656),
    [anon_sym_TILDE_EQ] = ACTIONS(7654),
    [anon_sym_AT] = ACTIONS(7658),
    [sym_const] = ACTIONS(7660),
    [sym_delegate] = ACTIONS(7654),
    [sym_function] = ACTIONS(7654),
    [sym_immutable] = ACTIONS(7660),
    [sym_in] = ACTIONS(7656),
    [sym_inout] = ACTIONS(7660),
    [sym_is] = ACTIONS(7654),
    [sym_nothrow] = ACTIONS(7660),
    [sym_pure] = ACTIONS(7660),
    [sym_return] = ACTIONS(7660),
    [sym_scope] = ACTIONS(7660),
    [sym_shared] = ACTIONS(7660),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7654),
    [sym_not_is] = ACTIONS(7654),
  },
  [3206] = {
    [sym_at_attribute] = STATE(3246),
    [sym__function_attribute_kwd] = STATE(3246),
    [sym__function_attribute] = STATE(3246),
    [sym_member_function_attribute] = STATE(3206),
    [aux_sym_alias_declaration_repeat2] = STATE(3206),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(7662),
    [anon_sym_SLASH] = ACTIONS(7664),
    [anon_sym_SLASH_EQ] = ACTIONS(7662),
    [anon_sym_DOT] = ACTIONS(7662),
    [anon_sym_AMP] = ACTIONS(7664),
    [anon_sym_AMP_EQ] = ACTIONS(7662),
    [anon_sym_AMP_AMP] = ACTIONS(7662),
    [anon_sym_PIPE] = ACTIONS(7664),
    [anon_sym_PIPE_EQ] = ACTIONS(7662),
    [anon_sym_PIPE_PIPE] = ACTIONS(7662),
    [anon_sym_DASH] = ACTIONS(7664),
    [anon_sym_DASH_EQ] = ACTIONS(7662),
    [anon_sym_DASH_DASH] = ACTIONS(7662),
    [anon_sym_PLUS] = ACTIONS(7664),
    [anon_sym_PLUS_EQ] = ACTIONS(7662),
    [anon_sym_PLUS_PLUS] = ACTIONS(7662),
    [anon_sym_LT] = ACTIONS(7664),
    [anon_sym_LT_EQ] = ACTIONS(7662),
    [anon_sym_LT_LT] = ACTIONS(7664),
    [anon_sym_LT_LT_EQ] = ACTIONS(7662),
    [anon_sym_GT] = ACTIONS(7664),
    [anon_sym_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT] = ACTIONS(7664),
    [anon_sym_GT_GT_GT] = ACTIONS(7664),
    [anon_sym_BANG_EQ] = ACTIONS(7662),
    [anon_sym_LPAREN] = ACTIONS(7662),
    [anon_sym_RPAREN] = ACTIONS(7662),
    [anon_sym_LBRACK] = ACTIONS(7662),
    [anon_sym_RBRACK] = ACTIONS(7662),
    [anon_sym_QMARK] = ACTIONS(7662),
    [anon_sym_COMMA] = ACTIONS(7662),
    [anon_sym_SEMI] = ACTIONS(7662),
    [anon_sym_COLON] = ACTIONS(7662),
    [anon_sym_EQ] = ACTIONS(7664),
    [anon_sym_EQ_EQ] = ACTIONS(7662),
    [anon_sym_STAR] = ACTIONS(7664),
    [anon_sym_STAR_EQ] = ACTIONS(7662),
    [anon_sym_PERCENT] = ACTIONS(7664),
    [anon_sym_PERCENT_EQ] = ACTIONS(7662),
    [anon_sym_CARET] = ACTIONS(7664),
    [anon_sym_CARET_EQ] = ACTIONS(7662),
    [anon_sym_CARET_CARET] = ACTIONS(7664),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7662),
    [anon_sym_TILDE] = ACTIONS(7664),
    [anon_sym_TILDE_EQ] = ACTIONS(7662),
    [anon_sym_AT] = ACTIONS(7666),
    [sym_const] = ACTIONS(7669),
    [sym_delegate] = ACTIONS(7662),
    [sym_function] = ACTIONS(7662),
    [sym_immutable] = ACTIONS(7669),
    [sym_in] = ACTIONS(7664),
    [sym_inout] = ACTIONS(7669),
    [sym_is] = ACTIONS(7662),
    [sym_nothrow] = ACTIONS(7669),
    [sym_pure] = ACTIONS(7669),
    [sym_return] = ACTIONS(7669),
    [sym_scope] = ACTIONS(7669),
    [sym_shared] = ACTIONS(7669),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7662),
    [sym_not_is] = ACTIONS(7662),
  },
  [3207] = {
    [sym_at_attribute] = STATE(3246),
    [sym__function_attribute_kwd] = STATE(3246),
    [sym__function_attribute] = STATE(3246),
    [sym_member_function_attribute] = STATE(3206),
    [aux_sym_alias_declaration_repeat2] = STATE(3206),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(7672),
    [anon_sym_SLASH] = ACTIONS(7674),
    [anon_sym_SLASH_EQ] = ACTIONS(7672),
    [anon_sym_DOT] = ACTIONS(7672),
    [anon_sym_AMP] = ACTIONS(7674),
    [anon_sym_AMP_EQ] = ACTIONS(7672),
    [anon_sym_AMP_AMP] = ACTIONS(7672),
    [anon_sym_PIPE] = ACTIONS(7674),
    [anon_sym_PIPE_EQ] = ACTIONS(7672),
    [anon_sym_PIPE_PIPE] = ACTIONS(7672),
    [anon_sym_DASH] = ACTIONS(7674),
    [anon_sym_DASH_EQ] = ACTIONS(7672),
    [anon_sym_DASH_DASH] = ACTIONS(7672),
    [anon_sym_PLUS] = ACTIONS(7674),
    [anon_sym_PLUS_EQ] = ACTIONS(7672),
    [anon_sym_PLUS_PLUS] = ACTIONS(7672),
    [anon_sym_LT] = ACTIONS(7674),
    [anon_sym_LT_EQ] = ACTIONS(7672),
    [anon_sym_LT_LT] = ACTIONS(7674),
    [anon_sym_LT_LT_EQ] = ACTIONS(7672),
    [anon_sym_GT] = ACTIONS(7674),
    [anon_sym_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT] = ACTIONS(7674),
    [anon_sym_GT_GT_GT] = ACTIONS(7674),
    [anon_sym_BANG_EQ] = ACTIONS(7672),
    [anon_sym_LPAREN] = ACTIONS(7672),
    [anon_sym_RPAREN] = ACTIONS(7672),
    [anon_sym_LBRACK] = ACTIONS(7672),
    [anon_sym_RBRACK] = ACTIONS(7672),
    [anon_sym_QMARK] = ACTIONS(7672),
    [anon_sym_COMMA] = ACTIONS(7672),
    [anon_sym_SEMI] = ACTIONS(7672),
    [anon_sym_COLON] = ACTIONS(7672),
    [anon_sym_EQ] = ACTIONS(7674),
    [anon_sym_EQ_EQ] = ACTIONS(7672),
    [anon_sym_STAR] = ACTIONS(7674),
    [anon_sym_STAR_EQ] = ACTIONS(7672),
    [anon_sym_PERCENT] = ACTIONS(7674),
    [anon_sym_PERCENT_EQ] = ACTIONS(7672),
    [anon_sym_CARET] = ACTIONS(7674),
    [anon_sym_CARET_EQ] = ACTIONS(7672),
    [anon_sym_CARET_CARET] = ACTIONS(7674),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7672),
    [anon_sym_TILDE] = ACTIONS(7674),
    [anon_sym_TILDE_EQ] = ACTIONS(7672),
    [anon_sym_AT] = ACTIONS(7658),
    [sym_const] = ACTIONS(7660),
    [sym_delegate] = ACTIONS(7672),
    [sym_function] = ACTIONS(7672),
    [sym_immutable] = ACTIONS(7660),
    [sym_in] = ACTIONS(7674),
    [sym_inout] = ACTIONS(7660),
    [sym_is] = ACTIONS(7672),
    [sym_nothrow] = ACTIONS(7660),
    [sym_pure] = ACTIONS(7660),
    [sym_return] = ACTIONS(7660),
    [sym_scope] = ACTIONS(7660),
    [sym_shared] = ACTIONS(7660),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7672),
    [sym_not_is] = ACTIONS(7672),
  },
  [3208] = {
    [sym_type] = STATE(6542),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_mixin_expression] = STATE(4997),
    [sym_type_specialization] = STATE(6537),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_super] = ACTIONS(7676),
    [sym_class] = ACTIONS(7676),
    [sym_const] = ACTIONS(7678),
    [sym_delegate] = ACTIONS(7676),
    [sym_enum] = ACTIONS(7676),
    [sym_function] = ACTIONS(7676),
    [sym_immutable] = ACTIONS(7678),
    [sym_inout] = ACTIONS(7678),
    [sym_interface] = ACTIONS(7676),
    [sym_mixin] = ACTIONS(6631),
    [sym_module] = ACTIONS(7676),
    [sym_package] = ACTIONS(7676),
    [sym_return] = ACTIONS(7676),
    [sym_shared] = ACTIONS(7678),
    [sym_struct] = ACTIONS(7676),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(7676),
    [sym_parameters_] = ACTIONS(7676),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(7680),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3209] = {
    [sym_arguments] = STATE(3271),
    [sym_template_arguments] = STATE(3258),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6649),
    [anon_sym_SLASH] = ACTIONS(6647),
    [anon_sym_SLASH_EQ] = ACTIONS(6649),
    [anon_sym_DOT] = ACTIONS(6649),
    [anon_sym_AMP] = ACTIONS(6647),
    [anon_sym_AMP_EQ] = ACTIONS(6649),
    [anon_sym_AMP_AMP] = ACTIONS(6649),
    [anon_sym_PIPE] = ACTIONS(6647),
    [anon_sym_PIPE_EQ] = ACTIONS(6649),
    [anon_sym_PIPE_PIPE] = ACTIONS(6649),
    [anon_sym_DASH] = ACTIONS(6647),
    [anon_sym_DASH_EQ] = ACTIONS(6649),
    [anon_sym_DASH_DASH] = ACTIONS(6649),
    [anon_sym_PLUS] = ACTIONS(6647),
    [anon_sym_PLUS_EQ] = ACTIONS(6649),
    [anon_sym_PLUS_PLUS] = ACTIONS(6649),
    [anon_sym_LT] = ACTIONS(6647),
    [anon_sym_LT_EQ] = ACTIONS(6649),
    [anon_sym_LT_LT] = ACTIONS(6647),
    [anon_sym_LT_LT_EQ] = ACTIONS(6649),
    [anon_sym_GT] = ACTIONS(6647),
    [anon_sym_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT] = ACTIONS(6647),
    [anon_sym_GT_GT_GT] = ACTIONS(6647),
    [anon_sym_BANG] = ACTIONS(7682),
    [anon_sym_BANG_EQ] = ACTIONS(6649),
    [anon_sym_LPAREN] = ACTIONS(7684),
    [anon_sym_RPAREN] = ACTIONS(6649),
    [anon_sym_LBRACK] = ACTIONS(6649),
    [anon_sym_RBRACK] = ACTIONS(6649),
    [anon_sym_QMARK] = ACTIONS(6649),
    [anon_sym_COMMA] = ACTIONS(6649),
    [anon_sym_SEMI] = ACTIONS(6649),
    [anon_sym_COLON] = ACTIONS(6649),
    [anon_sym_EQ] = ACTIONS(6647),
    [anon_sym_EQ_EQ] = ACTIONS(6649),
    [anon_sym_STAR] = ACTIONS(6647),
    [anon_sym_STAR_EQ] = ACTIONS(6649),
    [anon_sym_PERCENT] = ACTIONS(6647),
    [anon_sym_PERCENT_EQ] = ACTIONS(6649),
    [anon_sym_CARET] = ACTIONS(6647),
    [anon_sym_CARET_EQ] = ACTIONS(6649),
    [anon_sym_CARET_CARET] = ACTIONS(6647),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(6649),
    [anon_sym_TILDE] = ACTIONS(6647),
    [anon_sym_TILDE_EQ] = ACTIONS(6649),
    [anon_sym_AT] = ACTIONS(6649),
    [sym_const] = ACTIONS(6649),
    [sym_delegate] = ACTIONS(6649),
    [sym_function] = ACTIONS(6649),
    [sym_immutable] = ACTIONS(6649),
    [sym_in] = ACTIONS(6647),
    [sym_inout] = ACTIONS(6649),
    [sym_is] = ACTIONS(6649),
    [sym_nothrow] = ACTIONS(6649),
    [sym_pure] = ACTIONS(6649),
    [sym_return] = ACTIONS(6649),
    [sym_scope] = ACTIONS(6649),
    [sym_shared] = ACTIONS(6649),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(6649),
    [sym_not_is] = ACTIONS(6649),
  },
  [3210] = {
    [sym_type] = STATE(6542),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_mixin_expression] = STATE(4997),
    [sym_type_specialization] = STATE(6548),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_super] = ACTIONS(7676),
    [sym_class] = ACTIONS(7676),
    [sym_const] = ACTIONS(7678),
    [sym_delegate] = ACTIONS(7676),
    [sym_enum] = ACTIONS(7676),
    [sym_function] = ACTIONS(7676),
    [sym_immutable] = ACTIONS(7678),
    [sym_inout] = ACTIONS(7678),
    [sym_interface] = ACTIONS(7676),
    [sym_mixin] = ACTIONS(6631),
    [sym_module] = ACTIONS(7676),
    [sym_package] = ACTIONS(7676),
    [sym_return] = ACTIONS(7676),
    [sym_shared] = ACTIONS(7678),
    [sym_struct] = ACTIONS(7676),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(7676),
    [sym_parameters_] = ACTIONS(7676),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(7680),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3211] = {
    [sym_at_attribute] = STATE(3311),
    [sym__function_attribute_kwd] = STATE(3311),
    [sym__function_attribute] = STATE(3311),
    [sym_member_function_attribute] = STATE(3212),
    [aux_sym_alias_declaration_repeat2] = STATE(3212),
    [sym_comment] = ACTIONS(3),
    [anon_sym_SLASH] = ACTIONS(7656),
    [anon_sym_SLASH_EQ] = ACTIONS(7654),
    [anon_sym_DOT] = ACTIONS(7656),
    [anon_sym_DOT_DOT] = ACTIONS(7654),
    [anon_sym_AMP] = ACTIONS(7656),
    [anon_sym_AMP_EQ] = ACTIONS(7654),
    [anon_sym_AMP_AMP] = ACTIONS(7654),
    [anon_sym_PIPE] = ACTIONS(7656),
    [anon_sym_PIPE_EQ] = ACTIONS(7654),
    [anon_sym_PIPE_PIPE] = ACTIONS(7654),
    [anon_sym_DASH] = ACTIONS(7656),
    [anon_sym_DASH_EQ] = ACTIONS(7654),
    [anon_sym_DASH_DASH] = ACTIONS(7654),
    [anon_sym_PLUS] = ACTIONS(7656),
    [anon_sym_PLUS_EQ] = ACTIONS(7654),
    [anon_sym_PLUS_PLUS] = ACTIONS(7654),
    [anon_sym_LT] = ACTIONS(7656),
    [anon_sym_LT_EQ] = ACTIONS(7654),
    [anon_sym_LT_LT] = ACTIONS(7656),
    [anon_sym_LT_LT_EQ] = ACTIONS(7654),
    [anon_sym_GT] = ACTIONS(7656),
    [anon_sym_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT] = ACTIONS(7656),
    [anon_sym_GT_GT_GT] = ACTIONS(7656),
    [anon_sym_BANG_EQ] = ACTIONS(7654),
    [anon_sym_LPAREN] = ACTIONS(7654),
    [anon_sym_RPAREN] = ACTIONS(7654),
    [anon_sym_LBRACK] = ACTIONS(7654),
    [anon_sym_RBRACK] = ACTIONS(7654),
    [anon_sym_QMARK] = ACTIONS(7654),
    [anon_sym_COMMA] = ACTIONS(7654),
    [anon_sym_EQ] = ACTIONS(7656),
    [anon_sym_EQ_EQ] = ACTIONS(7654),
    [anon_sym_STAR] = ACTIONS(7656),
    [anon_sym_STAR_EQ] = ACTIONS(7654),
    [anon_sym_PERCENT] = ACTIONS(7656),
    [anon_sym_PERCENT_EQ] = ACTIONS(7654),
    [anon_sym_CARET] = ACTIONS(7656),
    [anon_sym_CARET_EQ] = ACTIONS(7654),
    [anon_sym_CARET_CARET] = ACTIONS(7656),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7654),
    [anon_sym_TILDE] = ACTIONS(7656),
    [anon_sym_TILDE_EQ] = ACTIONS(7654),
    [anon_sym_AT] = ACTIONS(7686),
    [sym_const] = ACTIONS(7688),
    [sym_delegate] = ACTIONS(7654),
    [sym_function] = ACTIONS(7654),
    [sym_immutable] = ACTIONS(7688),
    [sym_in] = ACTIONS(7656),
    [sym_inout] = ACTIONS(7688),
    [sym_is] = ACTIONS(7654),
    [sym_nothrow] = ACTIONS(7688),
    [sym_pure] = ACTIONS(7688),
    [sym_return] = ACTIONS(7688),
    [sym_scope] = ACTIONS(7688),
    [sym_shared] = ACTIONS(7688),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7654),
    [sym_not_is] = ACTIONS(7654),
  },
  [3212] = {
    [sym_at_attribute] = STATE(3311),
    [sym__function_attribute_kwd] = STATE(3311),
    [sym__function_attribute] = STATE(3311),
    [sym_member_function_attribute] = STATE(3216),
    [aux_sym_alias_declaration_repeat2] = STATE(3216),
    [sym_comment] = ACTIONS(3),
    [anon_sym_SLASH] = ACTIONS(7674),
    [anon_sym_SLASH_EQ] = ACTIONS(7672),
    [anon_sym_DOT] = ACTIONS(7674),
    [anon_sym_DOT_DOT] = ACTIONS(7672),
    [anon_sym_AMP] = ACTIONS(7674),
    [anon_sym_AMP_EQ] = ACTIONS(7672),
    [anon_sym_AMP_AMP] = ACTIONS(7672),
    [anon_sym_PIPE] = ACTIONS(7674),
    [anon_sym_PIPE_EQ] = ACTIONS(7672),
    [anon_sym_PIPE_PIPE] = ACTIONS(7672),
    [anon_sym_DASH] = ACTIONS(7674),
    [anon_sym_DASH_EQ] = ACTIONS(7672),
    [anon_sym_DASH_DASH] = ACTIONS(7672),
    [anon_sym_PLUS] = ACTIONS(7674),
    [anon_sym_PLUS_EQ] = ACTIONS(7672),
    [anon_sym_PLUS_PLUS] = ACTIONS(7672),
    [anon_sym_LT] = ACTIONS(7674),
    [anon_sym_LT_EQ] = ACTIONS(7672),
    [anon_sym_LT_LT] = ACTIONS(7674),
    [anon_sym_LT_LT_EQ] = ACTIONS(7672),
    [anon_sym_GT] = ACTIONS(7674),
    [anon_sym_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT] = ACTIONS(7674),
    [anon_sym_GT_GT_GT] = ACTIONS(7674),
    [anon_sym_BANG_EQ] = ACTIONS(7672),
    [anon_sym_LPAREN] = ACTIONS(7672),
    [anon_sym_RPAREN] = ACTIONS(7672),
    [anon_sym_LBRACK] = ACTIONS(7672),
    [anon_sym_RBRACK] = ACTIONS(7672),
    [anon_sym_QMARK] = ACTIONS(7672),
    [anon_sym_COMMA] = ACTIONS(7672),
    [anon_sym_EQ] = ACTIONS(7674),
    [anon_sym_EQ_EQ] = ACTIONS(7672),
    [anon_sym_STAR] = ACTIONS(7674),
    [anon_sym_STAR_EQ] = ACTIONS(7672),
    [anon_sym_PERCENT] = ACTIONS(7674),
    [anon_sym_PERCENT_EQ] = ACTIONS(7672),
    [anon_sym_CARET] = ACTIONS(7674),
    [anon_sym_CARET_EQ] = ACTIONS(7672),
    [anon_sym_CARET_CARET] = ACTIONS(7674),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7672),
    [anon_sym_TILDE] = ACTIONS(7674),
    [anon_sym_TILDE_EQ] = ACTIONS(7672),
    [anon_sym_AT] = ACTIONS(7686),
    [sym_const] = ACTIONS(7688),
    [sym_delegate] = ACTIONS(7672),
    [sym_function] = ACTIONS(7672),
    [sym_immutable] = ACTIONS(7688),
    [sym_in] = ACTIONS(7674),
    [sym_inout] = ACTIONS(7688),
    [sym_is] = ACTIONS(7672),
    [sym_nothrow] = ACTIONS(7688),
    [sym_pure] = ACTIONS(7688),
    [sym_return] = ACTIONS(7688),
    [sym_scope] = ACTIONS(7688),
    [sym_shared] = ACTIONS(7688),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7672),
    [sym_not_is] = ACTIONS(7672),
  },
  [3213] = {
    [sym__parameter_with_member_attributes] = STATE(4950),
    [sym__parameters] = STATE(4651),
    [sym_identifier] = ACTIONS(7690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7692),
    [anon_sym_DOT] = ACTIONS(7692),
    [anon_sym_LPAREN] = ACTIONS(7694),
    [anon_sym_AT] = ACTIONS(7692),
    [sym_bool] = ACTIONS(7690),
    [sym_byte] = ACTIONS(7690),
    [sym_ubyte] = ACTIONS(7690),
    [sym_char] = ACTIONS(7690),
    [sym_short] = ACTIONS(7690),
    [sym_ushort] = ACTIONS(7690),
    [sym_int] = ACTIONS(7690),
    [sym_uint] = ACTIONS(7690),
    [sym_long] = ACTIONS(7690),
    [sym_ulong] = ACTIONS(7690),
    [sym_cent] = ACTIONS(7690),
    [sym_ucent] = ACTIONS(7690),
    [sym_wchar] = ACTIONS(7690),
    [sym_dchar] = ACTIONS(7690),
    [sym_float] = ACTIONS(7690),
    [sym_double] = ACTIONS(7690),
    [sym_real] = ACTIONS(7690),
    [sym_ifloat] = ACTIONS(7690),
    [sym_idouble] = ACTIONS(7690),
    [sym_ireal] = ACTIONS(7690),
    [sym_cfloat] = ACTIONS(7690),
    [sym_cdouble] = ACTIONS(7690),
    [sym_creal] = ACTIONS(7690),
    [sym_size_t] = ACTIONS(7690),
    [sym_ptrdiff_t] = ACTIONS(7690),
    [sym_string] = ACTIONS(7690),
    [sym_cstring] = ACTIONS(7690),
    [sym_dstring] = ACTIONS(7690),
    [sym_wstring] = ACTIONS(7690),
    [sym_noreturn] = ACTIONS(7690),
    [sym_abstract] = ACTIONS(7690),
    [sym_align] = ACTIONS(7690),
    [sym_auto] = ACTIONS(7690),
    [sym_const] = ACTIONS(7690),
    [sym_delegate] = ACTIONS(7690),
    [sym_deprecated] = ACTIONS(7690),
    [sym_do] = ACTIONS(7690),
    [sym_extern] = ACTIONS(7690),
    [sym_final] = ACTIONS(7690),
    [sym_function] = ACTIONS(7690),
    [sym_immutable] = ACTIONS(7690),
    [sym_in] = ACTIONS(7690),
    [sym_inout] = ACTIONS(7690),
    [sym_mixin] = ACTIONS(7690),
    [sym_nothrow] = ACTIONS(7690),
    [sym_out] = ACTIONS(7690),
    [sym_override] = ACTIONS(7690),
    [sym_pure] = ACTIONS(7690),
    [sym_ref] = ACTIONS(7690),
    [sym_scope] = ACTIONS(7690),
    [sym_shared] = ACTIONS(7690),
    [sym_static] = ACTIONS(7690),
    [sym_synchronized] = ACTIONS(7690),
    [sym_typeof] = ACTIONS(7690),
    [sym_gshared] = ACTIONS(7690),
    [sym_traits] = ACTIONS(7690),
    [sym_vector] = ACTIONS(7690),
    [sym_void] = ACTIONS(7690),
    [sym_directive] = ACTIONS(3),
  },
  [3214] = {
    [sym_type] = STATE(6542),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_mixin_expression] = STATE(4997),
    [sym_type_specialization] = STATE(6875),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_super] = ACTIONS(7676),
    [sym_class] = ACTIONS(7676),
    [sym_const] = ACTIONS(7678),
    [sym_delegate] = ACTIONS(7676),
    [sym_enum] = ACTIONS(7676),
    [sym_function] = ACTIONS(7676),
    [sym_immutable] = ACTIONS(7678),
    [sym_inout] = ACTIONS(7678),
    [sym_interface] = ACTIONS(7676),
    [sym_mixin] = ACTIONS(6631),
    [sym_module] = ACTIONS(7676),
    [sym_package] = ACTIONS(7676),
    [sym_return] = ACTIONS(7676),
    [sym_shared] = ACTIONS(7678),
    [sym_struct] = ACTIONS(7676),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(7676),
    [sym_parameters_] = ACTIONS(7676),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(7680),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3215] = {
    [sym_type] = STATE(6542),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_mixin_expression] = STATE(4997),
    [sym_type_specialization] = STATE(6890),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_super] = ACTIONS(7676),
    [sym_class] = ACTIONS(7676),
    [sym_const] = ACTIONS(7678),
    [sym_delegate] = ACTIONS(7676),
    [sym_enum] = ACTIONS(7676),
    [sym_function] = ACTIONS(7676),
    [sym_immutable] = ACTIONS(7678),
    [sym_inout] = ACTIONS(7678),
    [sym_interface] = ACTIONS(7676),
    [sym_mixin] = ACTIONS(6631),
    [sym_module] = ACTIONS(7676),
    [sym_package] = ACTIONS(7676),
    [sym_return] = ACTIONS(7676),
    [sym_shared] = ACTIONS(7678),
    [sym_struct] = ACTIONS(7676),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(7676),
    [sym_parameters_] = ACTIONS(7676),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(7680),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3216] = {
    [sym_at_attribute] = STATE(3311),
    [sym__function_attribute_kwd] = STATE(3311),
    [sym__function_attribute] = STATE(3311),
    [sym_member_function_attribute] = STATE(3216),
    [aux_sym_alias_declaration_repeat2] = STATE(3216),
    [sym_comment] = ACTIONS(3),
    [anon_sym_SLASH] = ACTIONS(7664),
    [anon_sym_SLASH_EQ] = ACTIONS(7662),
    [anon_sym_DOT] = ACTIONS(7664),
    [anon_sym_DOT_DOT] = ACTIONS(7662),
    [anon_sym_AMP] = ACTIONS(7664),
    [anon_sym_AMP_EQ] = ACTIONS(7662),
    [anon_sym_AMP_AMP] = ACTIONS(7662),
    [anon_sym_PIPE] = ACTIONS(7664),
    [anon_sym_PIPE_EQ] = ACTIONS(7662),
    [anon_sym_PIPE_PIPE] = ACTIONS(7662),
    [anon_sym_DASH] = ACTIONS(7664),
    [anon_sym_DASH_EQ] = ACTIONS(7662),
    [anon_sym_DASH_DASH] = ACTIONS(7662),
    [anon_sym_PLUS] = ACTIONS(7664),
    [anon_sym_PLUS_EQ] = ACTIONS(7662),
    [anon_sym_PLUS_PLUS] = ACTIONS(7662),
    [anon_sym_LT] = ACTIONS(7664),
    [anon_sym_LT_EQ] = ACTIONS(7662),
    [anon_sym_LT_LT] = ACTIONS(7664),
    [anon_sym_LT_LT_EQ] = ACTIONS(7662),
    [anon_sym_GT] = ACTIONS(7664),
    [anon_sym_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT] = ACTIONS(7664),
    [anon_sym_GT_GT_GT] = ACTIONS(7664),
    [anon_sym_BANG_EQ] = ACTIONS(7662),
    [anon_sym_LPAREN] = ACTIONS(7662),
    [anon_sym_RPAREN] = ACTIONS(7662),
    [anon_sym_LBRACK] = ACTIONS(7662),
    [anon_sym_RBRACK] = ACTIONS(7662),
    [anon_sym_QMARK] = ACTIONS(7662),
    [anon_sym_COMMA] = ACTIONS(7662),
    [anon_sym_EQ] = ACTIONS(7664),
    [anon_sym_EQ_EQ] = ACTIONS(7662),
    [anon_sym_STAR] = ACTIONS(7664),
    [anon_sym_STAR_EQ] = ACTIONS(7662),
    [anon_sym_PERCENT] = ACTIONS(7664),
    [anon_sym_PERCENT_EQ] = ACTIONS(7662),
    [anon_sym_CARET] = ACTIONS(7664),
    [anon_sym_CARET_EQ] = ACTIONS(7662),
    [anon_sym_CARET_CARET] = ACTIONS(7664),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7662),
    [anon_sym_TILDE] = ACTIONS(7664),
    [anon_sym_TILDE_EQ] = ACTIONS(7662),
    [anon_sym_AT] = ACTIONS(7697),
    [sym_const] = ACTIONS(7700),
    [sym_delegate] = ACTIONS(7662),
    [sym_function] = ACTIONS(7662),
    [sym_immutable] = ACTIONS(7700),
    [sym_in] = ACTIONS(7664),
    [sym_inout] = ACTIONS(7700),
    [sym_is] = ACTIONS(7662),
    [sym_nothrow] = ACTIONS(7700),
    [sym_pure] = ACTIONS(7700),
    [sym_return] = ACTIONS(7700),
    [sym_scope] = ACTIONS(7700),
    [sym_shared] = ACTIONS(7700),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7662),
    [sym_not_is] = ACTIONS(7662),
  },
  [3217] = {
    [sym_type] = STATE(6542),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_mixin_expression] = STATE(4997),
    [sym_type_specialization] = STATE(6478),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_super] = ACTIONS(7676),
    [sym_class] = ACTIONS(7676),
    [sym_const] = ACTIONS(7678),
    [sym_delegate] = ACTIONS(7676),
    [sym_enum] = ACTIONS(7676),
    [sym_function] = ACTIONS(7676),
    [sym_immutable] = ACTIONS(7678),
    [sym_inout] = ACTIONS(7678),
    [sym_interface] = ACTIONS(7676),
    [sym_mixin] = ACTIONS(6631),
    [sym_module] = ACTIONS(7676),
    [sym_package] = ACTIONS(7676),
    [sym_return] = ACTIONS(7676),
    [sym_shared] = ACTIONS(7678),
    [sym_struct] = ACTIONS(7676),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(7676),
    [sym_parameters_] = ACTIONS(7676),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(7680),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3218] = {
    [sym_type] = STATE(6542),
    [sym_type_ctor] = STATE(4242),
    [sym__type2] = STATE(4997),
    [sym_vector_type] = STATE(4997),
    [sym__builtin_type] = STATE(4997),
    [sym__qualified_id] = STATE(4997),
    [sym_typeof_expression] = STATE(5007),
    [sym_mixin_expression] = STATE(4997),
    [sym_type_specialization] = STATE(6519),
    [sym_template_instance] = STATE(5035),
    [sym_traits_expression] = STATE(4997),
    [aux_sym_type_repeat1] = STATE(3799),
    [sym_identifier] = ACTIONS(7237),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(13),
    [sym_bool] = ACTIONS(21),
    [sym_byte] = ACTIONS(21),
    [sym_ubyte] = ACTIONS(21),
    [sym_char] = ACTIONS(21),
    [sym_short] = ACTIONS(21),
    [sym_ushort] = ACTIONS(21),
    [sym_int] = ACTIONS(21),
    [sym_uint] = ACTIONS(21),
    [sym_long] = ACTIONS(21),
    [sym_ulong] = ACTIONS(21),
    [sym_cent] = ACTIONS(21),
    [sym_ucent] = ACTIONS(21),
    [sym_wchar] = ACTIONS(21),
    [sym_dchar] = ACTIONS(21),
    [sym_float] = ACTIONS(21),
    [sym_double] = ACTIONS(21),
    [sym_real] = ACTIONS(21),
    [sym_ifloat] = ACTIONS(21),
    [sym_idouble] = ACTIONS(21),
    [sym_ireal] = ACTIONS(21),
    [sym_cfloat] = ACTIONS(21),
    [sym_cdouble] = ACTIONS(21),
    [sym_creal] = ACTIONS(21),
    [sym_size_t] = ACTIONS(21),
    [sym_ptrdiff_t] = ACTIONS(21),
    [sym_string] = ACTIONS(21),
    [sym_cstring] = ACTIONS(21),
    [sym_dstring] = ACTIONS(21),
    [sym_wstring] = ACTIONS(21),
    [sym_noreturn] = ACTIONS(21),
    [sym_super] = ACTIONS(7676),
    [sym_class] = ACTIONS(7676),
    [sym_const] = ACTIONS(7678),
    [sym_delegate] = ACTIONS(7676),
    [sym_enum] = ACTIONS(7676),
    [sym_function] = ACTIONS(7676),
    [sym_immutable] = ACTIONS(7678),
    [sym_inout] = ACTIONS(7678),
    [sym_interface] = ACTIONS(7676),
    [sym_mixin] = ACTIONS(6631),
    [sym_module] = ACTIONS(7676),
    [sym_package] = ACTIONS(7676),
    [sym_return] = ACTIONS(7676),
    [sym_shared] = ACTIONS(7678),
    [sym_struct] = ACTIONS(7676),
    [sym_typeof] = ACTIONS(67),
    [sym_union] = ACTIONS(7676),
    [sym_parameters_] = ACTIONS(7676),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(7680),
    [sym_void] = ACTIONS(21),
    [sym_directive] = ACTIONS(3),
  },
  [3219] = {
    [sym_type] = STATE(5472),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter] = STATE(6833),
    [sym_parameter_attribute] = STATE(3220),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3220),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7703),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(2964),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3143),
    [sym_scope] = ACTIONS(3143),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3220] = {
    [sym_type] = STATE(5416),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3578),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3578),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7703),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(2964),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3143),
    [sym_scope] = ACTIONS(3143),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3221] = {
    [sym_identifier] = ACTIONS(6985),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6987),
    [anon_sym_DOT] = ACTIONS(6987),
    [anon_sym_LPAREN] = ACTIONS(6987),
    [anon_sym_AT] = ACTIONS(6987),
    [sym_bool] = ACTIONS(6985),
    [sym_byte] = ACTIONS(6985),
    [sym_ubyte] = ACTIONS(6985),
    [sym_char] = ACTIONS(6985),
    [sym_short] = ACTIONS(6985),
    [sym_ushort] = ACTIONS(6985),
    [sym_int] = ACTIONS(6985),
    [sym_uint] = ACTIONS(6985),
    [sym_long] = ACTIONS(6985),
    [sym_ulong] = ACTIONS(6985),
    [sym_cent] = ACTIONS(6985),
    [sym_ucent] = ACTIONS(6985),
    [sym_wchar] = ACTIONS(6985),
    [sym_dchar] = ACTIONS(6985),
    [sym_float] = ACTIONS(6985),
    [sym_double] = ACTIONS(6985),
    [sym_real] = ACTIONS(6985),
    [sym_ifloat] = ACTIONS(6985),
    [sym_idouble] = ACTIONS(6985),
    [sym_ireal] = ACTIONS(6985),
    [sym_cfloat] = ACTIONS(6985),
    [sym_cdouble] = ACTIONS(6985),
    [sym_creal] = ACTIONS(6985),
    [sym_size_t] = ACTIONS(6985),
    [sym_ptrdiff_t] = ACTIONS(6985),
    [sym_string] = ACTIONS(6985),
    [sym_cstring] = ACTIONS(6985),
    [sym_dstring] = ACTIONS(6985),
    [sym_wstring] = ACTIONS(6985),
    [sym_noreturn] = ACTIONS(6985),
    [sym_abstract] = ACTIONS(6985),
    [sym_align] = ACTIONS(6985),
    [sym_auto] = ACTIONS(6985),
    [sym_const] = ACTIONS(6985),
    [sym_delegate] = ACTIONS(6985),
    [sym_deprecated] = ACTIONS(6985),
    [sym_do] = ACTIONS(6985),
    [sym_enum] = ACTIONS(6985),
    [sym_extern] = ACTIONS(6985),
    [sym_final] = ACTIONS(6985),
    [sym_function] = ACTIONS(6985),
    [sym_immutable] = ACTIONS(6985),
    [sym_in] = ACTIONS(6985),
    [sym_inout] = ACTIONS(6985),
    [sym_mixin] = ACTIONS(6985),
    [sym_nothrow] = ACTIONS(6985),
    [sym_out] = ACTIONS(6985),
    [sym_override] = ACTIONS(6985),
    [sym_pure] = ACTIONS(6985),
    [sym_ref] = ACTIONS(6985),
    [sym_scope] = ACTIONS(6985),
    [sym_shared] = ACTIONS(6985),
    [sym_static] = ACTIONS(6985),
    [sym_synchronized] = ACTIONS(6985),
    [sym_typeof] = ACTIONS(6985),
    [sym_gshared] = ACTIONS(6985),
    [sym_traits] = ACTIONS(6985),
    [sym_vector] = ACTIONS(6985),
    [sym_void] = ACTIONS(6985),
    [sym_directive] = ACTIONS(3),
  },
  [3222] = {
    [sym_identifier] = ACTIONS(6914),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6916),
    [anon_sym_DOT] = ACTIONS(6916),
    [anon_sym_LPAREN] = ACTIONS(7705),
    [anon_sym_AT] = ACTIONS(6916),
    [sym_bool] = ACTIONS(6914),
    [sym_byte] = ACTIONS(6914),
    [sym_ubyte] = ACTIONS(6914),
    [sym_char] = ACTIONS(6914),
    [sym_short] = ACTIONS(6914),
    [sym_ushort] = ACTIONS(6914),
    [sym_int] = ACTIONS(6914),
    [sym_uint] = ACTIONS(6914),
    [sym_long] = ACTIONS(6914),
    [sym_ulong] = ACTIONS(6914),
    [sym_cent] = ACTIONS(6914),
    [sym_ucent] = ACTIONS(6914),
    [sym_wchar] = ACTIONS(6914),
    [sym_dchar] = ACTIONS(6914),
    [sym_float] = ACTIONS(6914),
    [sym_double] = ACTIONS(6914),
    [sym_real] = ACTIONS(6914),
    [sym_ifloat] = ACTIONS(6914),
    [sym_idouble] = ACTIONS(6914),
    [sym_ireal] = ACTIONS(6914),
    [sym_cfloat] = ACTIONS(6914),
    [sym_cdouble] = ACTIONS(6914),
    [sym_creal] = ACTIONS(6914),
    [sym_size_t] = ACTIONS(6914),
    [sym_ptrdiff_t] = ACTIONS(6914),
    [sym_string] = ACTIONS(6914),
    [sym_cstring] = ACTIONS(6914),
    [sym_dstring] = ACTIONS(6914),
    [sym_wstring] = ACTIONS(6914),
    [sym_noreturn] = ACTIONS(6914),
    [sym_abstract] = ACTIONS(6914),
    [sym_align] = ACTIONS(6914),
    [sym_auto] = ACTIONS(6914),
    [sym_const] = ACTIONS(6914),
    [sym_delegate] = ACTIONS(6914),
    [sym_deprecated] = ACTIONS(6914),
    [sym_do] = ACTIONS(6914),
    [sym_enum] = ACTIONS(6914),
    [sym_extern] = ACTIONS(6914),
    [sym_final] = ACTIONS(6914),
    [sym_function] = ACTIONS(6914),
    [sym_immutable] = ACTIONS(6914),
    [sym_in] = ACTIONS(6914),
    [sym_inout] = ACTIONS(6914),
    [sym_mixin] = ACTIONS(6914),
    [sym_nothrow] = ACTIONS(6914),
    [sym_out] = ACTIONS(6914),
    [sym_override] = ACTIONS(6914),
    [sym_pure] = ACTIONS(6914),
    [sym_ref] = ACTIONS(6914),
    [sym_scope] = ACTIONS(6914),
    [sym_shared] = ACTIONS(6914),
    [sym_static] = ACTIONS(6914),
    [sym_synchronized] = ACTIONS(6914),
    [sym_typeof] = ACTIONS(6914),
    [sym_gshared] = ACTIONS(6914),
    [sym_traits] = ACTIONS(6914),
    [sym_vector] = ACTIONS(6914),
    [sym_void] = ACTIONS(6914),
    [sym_directive] = ACTIONS(3),
  },
  [3223] = {
    [sym_identifier] = ACTIONS(6981),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6983),
    [anon_sym_DOT] = ACTIONS(6983),
    [anon_sym_LPAREN] = ACTIONS(6983),
    [anon_sym_AT] = ACTIONS(6983),
    [sym_bool] = ACTIONS(6981),
    [sym_byte] = ACTIONS(6981),
    [sym_ubyte] = ACTIONS(6981),
    [sym_char] = ACTIONS(6981),
    [sym_short] = ACTIONS(6981),
    [sym_ushort] = ACTIONS(6981),
    [sym_int] = ACTIONS(6981),
    [sym_uint] = ACTIONS(6981),
    [sym_long] = ACTIONS(6981),
    [sym_ulong] = ACTIONS(6981),
    [sym_cent] = ACTIONS(6981),
    [sym_ucent] = ACTIONS(6981),
    [sym_wchar] = ACTIONS(6981),
    [sym_dchar] = ACTIONS(6981),
    [sym_float] = ACTIONS(6981),
    [sym_double] = ACTIONS(6981),
    [sym_real] = ACTIONS(6981),
    [sym_ifloat] = ACTIONS(6981),
    [sym_idouble] = ACTIONS(6981),
    [sym_ireal] = ACTIONS(6981),
    [sym_cfloat] = ACTIONS(6981),
    [sym_cdouble] = ACTIONS(6981),
    [sym_creal] = ACTIONS(6981),
    [sym_size_t] = ACTIONS(6981),
    [sym_ptrdiff_t] = ACTIONS(6981),
    [sym_string] = ACTIONS(6981),
    [sym_cstring] = ACTIONS(6981),
    [sym_dstring] = ACTIONS(6981),
    [sym_wstring] = ACTIONS(6981),
    [sym_noreturn] = ACTIONS(6981),
    [sym_abstract] = ACTIONS(6981),
    [sym_align] = ACTIONS(6981),
    [sym_auto] = ACTIONS(6981),
    [sym_const] = ACTIONS(6981),
    [sym_delegate] = ACTIONS(6981),
    [sym_deprecated] = ACTIONS(6981),
    [sym_do] = ACTIONS(6981),
    [sym_enum] = ACTIONS(6981),
    [sym_extern] = ACTIONS(6981),
    [sym_final] = ACTIONS(6981),
    [sym_function] = ACTIONS(6981),
    [sym_immutable] = ACTIONS(6981),
    [sym_in] = ACTIONS(6981),
    [sym_inout] = ACTIONS(6981),
    [sym_mixin] = ACTIONS(6981),
    [sym_nothrow] = ACTIONS(6981),
    [sym_out] = ACTIONS(6981),
    [sym_override] = ACTIONS(6981),
    [sym_pure] = ACTIONS(6981),
    [sym_ref] = ACTIONS(6981),
    [sym_scope] = ACTIONS(6981),
    [sym_shared] = ACTIONS(6981),
    [sym_static] = ACTIONS(6981),
    [sym_synchronized] = ACTIONS(6981),
    [sym_typeof] = ACTIONS(6981),
    [sym_gshared] = ACTIONS(6981),
    [sym_traits] = ACTIONS(6981),
    [sym_vector] = ACTIONS(6981),
    [sym_void] = ACTIONS(6981),
    [sym_directive] = ACTIONS(3),
  },
  [3224] = {
    [sym_type] = STATE(5338),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3578),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3578),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7703),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(2964),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3143),
    [sym_scope] = ACTIONS(3143),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3225] = {
    [sym_storage_class] = STATE(3225),
    [sym_type_ctor] = STATE(3234),
    [sym_align_attribute] = STATE(3234),
    [sym_at_attribute] = STATE(3234),
    [sym__function_attribute_kwd] = STATE(3234),
    [sym_linkage_attribute] = STATE(3234),
    [aux_sym_variable_declaration_repeat1] = STATE(3225),
    [sym_identifier] = ACTIONS(7601),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7603),
    [anon_sym_AT] = ACTIONS(7605),
    [sym_bool] = ACTIONS(7601),
    [sym_byte] = ACTIONS(7601),
    [sym_ubyte] = ACTIONS(7601),
    [sym_char] = ACTIONS(7601),
    [sym_short] = ACTIONS(7601),
    [sym_ushort] = ACTIONS(7601),
    [sym_int] = ACTIONS(7601),
    [sym_uint] = ACTIONS(7601),
    [sym_long] = ACTIONS(7601),
    [sym_ulong] = ACTIONS(7601),
    [sym_cent] = ACTIONS(7601),
    [sym_ucent] = ACTIONS(7601),
    [sym_wchar] = ACTIONS(7601),
    [sym_dchar] = ACTIONS(7601),
    [sym_float] = ACTIONS(7601),
    [sym_double] = ACTIONS(7601),
    [sym_real] = ACTIONS(7601),
    [sym_ifloat] = ACTIONS(7601),
    [sym_idouble] = ACTIONS(7601),
    [sym_ireal] = ACTIONS(7601),
    [sym_cfloat] = ACTIONS(7601),
    [sym_cdouble] = ACTIONS(7601),
    [sym_creal] = ACTIONS(7601),
    [sym_size_t] = ACTIONS(7601),
    [sym_ptrdiff_t] = ACTIONS(7601),
    [sym_string] = ACTIONS(7601),
    [sym_cstring] = ACTIONS(7601),
    [sym_dstring] = ACTIONS(7601),
    [sym_wstring] = ACTIONS(7601),
    [sym_noreturn] = ACTIONS(7601),
    [sym_abstract] = ACTIONS(7608),
    [sym_align] = ACTIONS(7611),
    [sym_auto] = ACTIONS(7608),
    [sym_const] = ACTIONS(7614),
    [sym_deprecated] = ACTIONS(7608),
    [sym_enum] = ACTIONS(7601),
    [sym_extern] = ACTIONS(7707),
    [sym_final] = ACTIONS(7608),
    [sym_immutable] = ACTIONS(7614),
    [sym_inout] = ACTIONS(7614),
    [sym_mixin] = ACTIONS(7601),
    [sym_nothrow] = ACTIONS(7608),
    [sym_override] = ACTIONS(7608),
    [sym_pure] = ACTIONS(7608),
    [sym_ref] = ACTIONS(7608),
    [sym_scope] = ACTIONS(7608),
    [sym_shared] = ACTIONS(7614),
    [sym_static] = ACTIONS(7608),
    [sym_synchronized] = ACTIONS(7608),
    [sym_typeof] = ACTIONS(7601),
    [sym_gshared] = ACTIONS(7608),
    [sym_traits] = ACTIONS(7601),
    [sym_vector] = ACTIONS(7601),
    [sym_void] = ACTIONS(7601),
    [sym_directive] = ACTIONS(3),
  },
  [3226] = {
    [sym_identifier] = ACTIONS(7009),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7011),
    [anon_sym_DOT] = ACTIONS(7011),
    [anon_sym_LPAREN] = ACTIONS(7011),
    [anon_sym_AT] = ACTIONS(7011),
    [sym_bool] = ACTIONS(7009),
    [sym_byte] = ACTIONS(7009),
    [sym_ubyte] = ACTIONS(7009),
    [sym_char] = ACTIONS(7009),
    [sym_short] = ACTIONS(7009),
    [sym_ushort] = ACTIONS(7009),
    [sym_int] = ACTIONS(7009),
    [sym_uint] = ACTIONS(7009),
    [sym_long] = ACTIONS(7009),
    [sym_ulong] = ACTIONS(7009),
    [sym_cent] = ACTIONS(7009),
    [sym_ucent] = ACTIONS(7009),
    [sym_wchar] = ACTIONS(7009),
    [sym_dchar] = ACTIONS(7009),
    [sym_float] = ACTIONS(7009),
    [sym_double] = ACTIONS(7009),
    [sym_real] = ACTIONS(7009),
    [sym_ifloat] = ACTIONS(7009),
    [sym_idouble] = ACTIONS(7009),
    [sym_ireal] = ACTIONS(7009),
    [sym_cfloat] = ACTIONS(7009),
    [sym_cdouble] = ACTIONS(7009),
    [sym_creal] = ACTIONS(7009),
    [sym_size_t] = ACTIONS(7009),
    [sym_ptrdiff_t] = ACTIONS(7009),
    [sym_string] = ACTIONS(7009),
    [sym_cstring] = ACTIONS(7009),
    [sym_dstring] = ACTIONS(7009),
    [sym_wstring] = ACTIONS(7009),
    [sym_noreturn] = ACTIONS(7009),
    [sym_abstract] = ACTIONS(7009),
    [sym_align] = ACTIONS(7009),
    [sym_auto] = ACTIONS(7009),
    [sym_const] = ACTIONS(7009),
    [sym_delegate] = ACTIONS(7009),
    [sym_deprecated] = ACTIONS(7009),
    [sym_do] = ACTIONS(7009),
    [sym_enum] = ACTIONS(7009),
    [sym_extern] = ACTIONS(7009),
    [sym_final] = ACTIONS(7009),
    [sym_function] = ACTIONS(7009),
    [sym_immutable] = ACTIONS(7009),
    [sym_in] = ACTIONS(7009),
    [sym_inout] = ACTIONS(7009),
    [sym_mixin] = ACTIONS(7009),
    [sym_nothrow] = ACTIONS(7009),
    [sym_out] = ACTIONS(7009),
    [sym_override] = ACTIONS(7009),
    [sym_pure] = ACTIONS(7009),
    [sym_ref] = ACTIONS(7009),
    [sym_scope] = ACTIONS(7009),
    [sym_shared] = ACTIONS(7009),
    [sym_static] = ACTIONS(7009),
    [sym_synchronized] = ACTIONS(7009),
    [sym_typeof] = ACTIONS(7009),
    [sym_gshared] = ACTIONS(7009),
    [sym_traits] = ACTIONS(7009),
    [sym_vector] = ACTIONS(7009),
    [sym_void] = ACTIONS(7009),
    [sym_directive] = ACTIONS(3),
  },
  [3227] = {
    [sym_identifier] = ACTIONS(6997),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6999),
    [anon_sym_DOT] = ACTIONS(6999),
    [anon_sym_LPAREN] = ACTIONS(6999),
    [anon_sym_AT] = ACTIONS(6999),
    [sym_bool] = ACTIONS(6997),
    [sym_byte] = ACTIONS(6997),
    [sym_ubyte] = ACTIONS(6997),
    [sym_char] = ACTIONS(6997),
    [sym_short] = ACTIONS(6997),
    [sym_ushort] = ACTIONS(6997),
    [sym_int] = ACTIONS(6997),
    [sym_uint] = ACTIONS(6997),
    [sym_long] = ACTIONS(6997),
    [sym_ulong] = ACTIONS(6997),
    [sym_cent] = ACTIONS(6997),
    [sym_ucent] = ACTIONS(6997),
    [sym_wchar] = ACTIONS(6997),
    [sym_dchar] = ACTIONS(6997),
    [sym_float] = ACTIONS(6997),
    [sym_double] = ACTIONS(6997),
    [sym_real] = ACTIONS(6997),
    [sym_ifloat] = ACTIONS(6997),
    [sym_idouble] = ACTIONS(6997),
    [sym_ireal] = ACTIONS(6997),
    [sym_cfloat] = ACTIONS(6997),
    [sym_cdouble] = ACTIONS(6997),
    [sym_creal] = ACTIONS(6997),
    [sym_size_t] = ACTIONS(6997),
    [sym_ptrdiff_t] = ACTIONS(6997),
    [sym_string] = ACTIONS(6997),
    [sym_cstring] = ACTIONS(6997),
    [sym_dstring] = ACTIONS(6997),
    [sym_wstring] = ACTIONS(6997),
    [sym_noreturn] = ACTIONS(6997),
    [sym_abstract] = ACTIONS(6997),
    [sym_align] = ACTIONS(6997),
    [sym_auto] = ACTIONS(6997),
    [sym_const] = ACTIONS(6997),
    [sym_delegate] = ACTIONS(6997),
    [sym_deprecated] = ACTIONS(6997),
    [sym_do] = ACTIONS(6997),
    [sym_enum] = ACTIONS(6997),
    [sym_extern] = ACTIONS(6997),
    [sym_final] = ACTIONS(6997),
    [sym_function] = ACTIONS(6997),
    [sym_immutable] = ACTIONS(6997),
    [sym_in] = ACTIONS(6997),
    [sym_inout] = ACTIONS(6997),
    [sym_mixin] = ACTIONS(6997),
    [sym_nothrow] = ACTIONS(6997),
    [sym_out] = ACTIONS(6997),
    [sym_override] = ACTIONS(6997),
    [sym_pure] = ACTIONS(6997),
    [sym_ref] = ACTIONS(6997),
    [sym_scope] = ACTIONS(6997),
    [sym_shared] = ACTIONS(6997),
    [sym_static] = ACTIONS(6997),
    [sym_synchronized] = ACTIONS(6997),
    [sym_typeof] = ACTIONS(6997),
    [sym_gshared] = ACTIONS(6997),
    [sym_traits] = ACTIONS(6997),
    [sym_vector] = ACTIONS(6997),
    [sym_void] = ACTIONS(6997),
    [sym_directive] = ACTIONS(3),
  },
  [3228] = {
    [sym_at_attribute] = STATE(3382),
    [sym__function_attribute_kwd] = STATE(3382),
    [sym__function_attribute] = STATE(3382),
    [sym_member_function_attribute] = STATE(3232),
    [aux_sym_alias_declaration_repeat2] = STATE(3232),
    [sym_comment] = ACTIONS(3),
    [anon_sym_SLASH] = ACTIONS(7656),
    [anon_sym_SLASH_EQ] = ACTIONS(7654),
    [anon_sym_DOT] = ACTIONS(7656),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(7654),
    [anon_sym_AMP] = ACTIONS(7656),
    [anon_sym_AMP_EQ] = ACTIONS(7654),
    [anon_sym_AMP_AMP] = ACTIONS(7654),
    [anon_sym_PIPE] = ACTIONS(7656),
    [anon_sym_PIPE_EQ] = ACTIONS(7654),
    [anon_sym_PIPE_PIPE] = ACTIONS(7654),
    [anon_sym_DASH] = ACTIONS(7656),
    [anon_sym_DASH_EQ] = ACTIONS(7654),
    [anon_sym_DASH_DASH] = ACTIONS(7654),
    [anon_sym_PLUS] = ACTIONS(7656),
    [anon_sym_PLUS_EQ] = ACTIONS(7654),
    [anon_sym_PLUS_PLUS] = ACTIONS(7654),
    [anon_sym_LT] = ACTIONS(7656),
    [anon_sym_LT_EQ] = ACTIONS(7654),
    [anon_sym_LT_LT] = ACTIONS(7656),
    [anon_sym_LT_LT_EQ] = ACTIONS(7654),
    [anon_sym_GT] = ACTIONS(7656),
    [anon_sym_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7654),
    [anon_sym_GT_GT] = ACTIONS(7656),
    [anon_sym_GT_GT_GT] = ACTIONS(7656),
    [anon_sym_BANG_EQ] = ACTIONS(7654),
    [anon_sym_LPAREN] = ACTIONS(7654),
    [anon_sym_RPAREN] = ACTIONS(7654),
    [anon_sym_LBRACK] = ACTIONS(7654),
    [anon_sym_QMARK] = ACTIONS(7654),
    [anon_sym_COMMA] = ACTIONS(7654),
    [anon_sym_EQ] = ACTIONS(7656),
    [anon_sym_EQ_EQ] = ACTIONS(7654),
    [anon_sym_STAR] = ACTIONS(7656),
    [anon_sym_STAR_EQ] = ACTIONS(7654),
    [anon_sym_PERCENT] = ACTIONS(7656),
    [anon_sym_PERCENT_EQ] = ACTIONS(7654),
    [anon_sym_CARET] = ACTIONS(7656),
    [anon_sym_CARET_EQ] = ACTIONS(7654),
    [anon_sym_CARET_CARET] = ACTIONS(7656),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7654),
    [anon_sym_TILDE] = ACTIONS(7656),
    [anon_sym_TILDE_EQ] = ACTIONS(7654),
    [anon_sym_AT] = ACTIONS(7710),
    [sym_const] = ACTIONS(7712),
    [sym_delegate] = ACTIONS(7654),
    [sym_function] = ACTIONS(7654),
    [sym_immutable] = ACTIONS(7712),
    [sym_in] = ACTIONS(7656),
    [sym_inout] = ACTIONS(7712),
    [sym_is] = ACTIONS(7654),
    [sym_nothrow] = ACTIONS(7712),
    [sym_pure] = ACTIONS(7712),
    [sym_return] = ACTIONS(7712),
    [sym_scope] = ACTIONS(7712),
    [sym_shared] = ACTIONS(7712),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7654),
    [sym_not_is] = ACTIONS(7654),
  },
  [3229] = {
    [sym_identifier] = ACTIONS(7005),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7007),
    [anon_sym_DOT] = ACTIONS(7007),
    [anon_sym_LPAREN] = ACTIONS(7007),
    [anon_sym_AT] = ACTIONS(7007),
    [sym_bool] = ACTIONS(7005),
    [sym_byte] = ACTIONS(7005),
    [sym_ubyte] = ACTIONS(7005),
    [sym_char] = ACTIONS(7005),
    [sym_short] = ACTIONS(7005),
    [sym_ushort] = ACTIONS(7005),
    [sym_int] = ACTIONS(7005),
    [sym_uint] = ACTIONS(7005),
    [sym_long] = ACTIONS(7005),
    [sym_ulong] = ACTIONS(7005),
    [sym_cent] = ACTIONS(7005),
    [sym_ucent] = ACTIONS(7005),
    [sym_wchar] = ACTIONS(7005),
    [sym_dchar] = ACTIONS(7005),
    [sym_float] = ACTIONS(7005),
    [sym_double] = ACTIONS(7005),
    [sym_real] = ACTIONS(7005),
    [sym_ifloat] = ACTIONS(7005),
    [sym_idouble] = ACTIONS(7005),
    [sym_ireal] = ACTIONS(7005),
    [sym_cfloat] = ACTIONS(7005),
    [sym_cdouble] = ACTIONS(7005),
    [sym_creal] = ACTIONS(7005),
    [sym_size_t] = ACTIONS(7005),
    [sym_ptrdiff_t] = ACTIONS(7005),
    [sym_string] = ACTIONS(7005),
    [sym_cstring] = ACTIONS(7005),
    [sym_dstring] = ACTIONS(7005),
    [sym_wstring] = ACTIONS(7005),
    [sym_noreturn] = ACTIONS(7005),
    [sym_abstract] = ACTIONS(7005),
    [sym_align] = ACTIONS(7005),
    [sym_auto] = ACTIONS(7005),
    [sym_const] = ACTIONS(7005),
    [sym_delegate] = ACTIONS(7005),
    [sym_deprecated] = ACTIONS(7005),
    [sym_do] = ACTIONS(7005),
    [sym_enum] = ACTIONS(7005),
    [sym_extern] = ACTIONS(7005),
    [sym_final] = ACTIONS(7005),
    [sym_function] = ACTIONS(7005),
    [sym_immutable] = ACTIONS(7005),
    [sym_in] = ACTIONS(7005),
    [sym_inout] = ACTIONS(7005),
    [sym_mixin] = ACTIONS(7005),
    [sym_nothrow] = ACTIONS(7005),
    [sym_out] = ACTIONS(7005),
    [sym_override] = ACTIONS(7005),
    [sym_pure] = ACTIONS(7005),
    [sym_ref] = ACTIONS(7005),
    [sym_scope] = ACTIONS(7005),
    [sym_shared] = ACTIONS(7005),
    [sym_static] = ACTIONS(7005),
    [sym_synchronized] = ACTIONS(7005),
    [sym_typeof] = ACTIONS(7005),
    [sym_gshared] = ACTIONS(7005),
    [sym_traits] = ACTIONS(7005),
    [sym_vector] = ACTIONS(7005),
    [sym_void] = ACTIONS(7005),
    [sym_directive] = ACTIONS(3),
  },
  [3230] = {
    [sym_type] = STATE(5268),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3578),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3578),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7703),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(2964),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3143),
    [sym_scope] = ACTIONS(3143),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3231] = {
    [sym_at_attribute] = STATE(3382),
    [sym__function_attribute_kwd] = STATE(3382),
    [sym__function_attribute] = STATE(3382),
    [sym_member_function_attribute] = STATE(3231),
    [aux_sym_alias_declaration_repeat2] = STATE(3231),
    [sym_comment] = ACTIONS(3),
    [anon_sym_SLASH] = ACTIONS(7664),
    [anon_sym_SLASH_EQ] = ACTIONS(7662),
    [anon_sym_DOT] = ACTIONS(7664),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(7662),
    [anon_sym_AMP] = ACTIONS(7664),
    [anon_sym_AMP_EQ] = ACTIONS(7662),
    [anon_sym_AMP_AMP] = ACTIONS(7662),
    [anon_sym_PIPE] = ACTIONS(7664),
    [anon_sym_PIPE_EQ] = ACTIONS(7662),
    [anon_sym_PIPE_PIPE] = ACTIONS(7662),
    [anon_sym_DASH] = ACTIONS(7664),
    [anon_sym_DASH_EQ] = ACTIONS(7662),
    [anon_sym_DASH_DASH] = ACTIONS(7662),
    [anon_sym_PLUS] = ACTIONS(7664),
    [anon_sym_PLUS_EQ] = ACTIONS(7662),
    [anon_sym_PLUS_PLUS] = ACTIONS(7662),
    [anon_sym_LT] = ACTIONS(7664),
    [anon_sym_LT_EQ] = ACTIONS(7662),
    [anon_sym_LT_LT] = ACTIONS(7664),
    [anon_sym_LT_LT_EQ] = ACTIONS(7662),
    [anon_sym_GT] = ACTIONS(7664),
    [anon_sym_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7662),
    [anon_sym_GT_GT] = ACTIONS(7664),
    [anon_sym_GT_GT_GT] = ACTIONS(7664),
    [anon_sym_BANG_EQ] = ACTIONS(7662),
    [anon_sym_LPAREN] = ACTIONS(7662),
    [anon_sym_RPAREN] = ACTIONS(7662),
    [anon_sym_LBRACK] = ACTIONS(7662),
    [anon_sym_QMARK] = ACTIONS(7662),
    [anon_sym_COMMA] = ACTIONS(7662),
    [anon_sym_EQ] = ACTIONS(7664),
    [anon_sym_EQ_EQ] = ACTIONS(7662),
    [anon_sym_STAR] = ACTIONS(7664),
    [anon_sym_STAR_EQ] = ACTIONS(7662),
    [anon_sym_PERCENT] = ACTIONS(7664),
    [anon_sym_PERCENT_EQ] = ACTIONS(7662),
    [anon_sym_CARET] = ACTIONS(7664),
    [anon_sym_CARET_EQ] = ACTIONS(7662),
    [anon_sym_CARET_CARET] = ACTIONS(7664),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7662),
    [anon_sym_TILDE] = ACTIONS(7664),
    [anon_sym_TILDE_EQ] = ACTIONS(7662),
    [anon_sym_AT] = ACTIONS(7714),
    [sym_const] = ACTIONS(7717),
    [sym_delegate] = ACTIONS(7662),
    [sym_function] = ACTIONS(7662),
    [sym_immutable] = ACTIONS(7717),
    [sym_in] = ACTIONS(7664),
    [sym_inout] = ACTIONS(7717),
    [sym_is] = ACTIONS(7662),
    [sym_nothrow] = ACTIONS(7717),
    [sym_pure] = ACTIONS(7717),
    [sym_return] = ACTIONS(7717),
    [sym_scope] = ACTIONS(7717),
    [sym_shared] = ACTIONS(7717),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7662),
    [sym_not_is] = ACTIONS(7662),
  },
  [3232] = {
    [sym_at_attribute] = STATE(3382),
    [sym__function_attribute_kwd] = STATE(3382),
    [sym__function_attribute] = STATE(3382),
    [sym_member_function_attribute] = STATE(3231),
    [aux_sym_alias_declaration_repeat2] = STATE(3231),
    [sym_comment] = ACTIONS(3),
    [anon_sym_SLASH] = ACTIONS(7674),
    [anon_sym_SLASH_EQ] = ACTIONS(7672),
    [anon_sym_DOT] = ACTIONS(7674),
    [anon_sym_DOT_DOT_DOT] = ACTIONS(7672),
    [anon_sym_AMP] = ACTIONS(7674),
    [anon_sym_AMP_EQ] = ACTIONS(7672),
    [anon_sym_AMP_AMP] = ACTIONS(7672),
    [anon_sym_PIPE] = ACTIONS(7674),
    [anon_sym_PIPE_EQ] = ACTIONS(7672),
    [anon_sym_PIPE_PIPE] = ACTIONS(7672),
    [anon_sym_DASH] = ACTIONS(7674),
    [anon_sym_DASH_EQ] = ACTIONS(7672),
    [anon_sym_DASH_DASH] = ACTIONS(7672),
    [anon_sym_PLUS] = ACTIONS(7674),
    [anon_sym_PLUS_EQ] = ACTIONS(7672),
    [anon_sym_PLUS_PLUS] = ACTIONS(7672),
    [anon_sym_LT] = ACTIONS(7674),
    [anon_sym_LT_EQ] = ACTIONS(7672),
    [anon_sym_LT_LT] = ACTIONS(7674),
    [anon_sym_LT_LT_EQ] = ACTIONS(7672),
    [anon_sym_GT] = ACTIONS(7674),
    [anon_sym_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(7672),
    [anon_sym_GT_GT] = ACTIONS(7674),
    [anon_sym_GT_GT_GT] = ACTIONS(7674),
    [anon_sym_BANG_EQ] = ACTIONS(7672),
    [anon_sym_LPAREN] = ACTIONS(7672),
    [anon_sym_RPAREN] = ACTIONS(7672),
    [anon_sym_LBRACK] = ACTIONS(7672),
    [anon_sym_QMARK] = ACTIONS(7672),
    [anon_sym_COMMA] = ACTIONS(7672),
    [anon_sym_EQ] = ACTIONS(7674),
    [anon_sym_EQ_EQ] = ACTIONS(7672),
    [anon_sym_STAR] = ACTIONS(7674),
    [anon_sym_STAR_EQ] = ACTIONS(7672),
    [anon_sym_PERCENT] = ACTIONS(7674),
    [anon_sym_PERCENT_EQ] = ACTIONS(7672),
    [anon_sym_CARET] = ACTIONS(7674),
    [anon_sym_CARET_EQ] = ACTIONS(7672),
    [anon_sym_CARET_CARET] = ACTIONS(7674),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(7672),
    [anon_sym_TILDE] = ACTIONS(7674),
    [anon_sym_TILDE_EQ] = ACTIONS(7672),
    [anon_sym_AT] = ACTIONS(7710),
    [sym_const] = ACTIONS(7712),
    [sym_delegate] = ACTIONS(7672),
    [sym_function] = ACTIONS(7672),
    [sym_immutable] = ACTIONS(7712),
    [sym_in] = ACTIONS(7674),
    [sym_inout] = ACTIONS(7712),
    [sym_is] = ACTIONS(7672),
    [sym_nothrow] = ACTIONS(7712),
    [sym_pure] = ACTIONS(7712),
    [sym_return] = ACTIONS(7712),
    [sym_scope] = ACTIONS(7712),
    [sym_shared] = ACTIONS(7712),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(7672),
    [sym_not_is] = ACTIONS(7672),
  },
  [3233] = {
    [sym_type] = STATE(5389),
    [sym_type_ctor] = STATE(3792),
    [sym__type2] = STATE(5051),
    [sym_vector_type] = STATE(5051),
    [sym__builtin_type] = STATE(5051),
    [sym__qualified_id] = STATE(5051),
    [sym_typeof_expression] = STATE(5080),
    [sym_at_attribute] = STATE(3921),
    [sym_mixin_expression] = STATE(5051),
    [sym_parameter_attribute] = STATE(3224),
    [sym_template_instance] = STATE(5081),
    [sym_traits_expression] = STATE(5051),
    [aux_sym_type_repeat1] = STATE(3818),
    [aux_sym__parameter_repeat1] = STATE(3224),
    [sym_identifier] = ACTIONS(7563),
    [sym_comment] = ACTIONS(3),
    [anon_sym_DOT] = ACTIONS(7703),
    [anon_sym_AT] = ACTIONS(3135),
    [sym_bool] = ACTIONS(7195),
    [sym_byte] = ACTIONS(7195),
    [sym_ubyte] = ACTIONS(7195),
    [sym_char] = ACTIONS(7195),
    [sym_short] = ACTIONS(7195),
    [sym_ushort] = ACTIONS(7195),
    [sym_int] = ACTIONS(7195),
    [sym_uint] = ACTIONS(7195),
    [sym_long] = ACTIONS(7195),
    [sym_ulong] = ACTIONS(7195),
    [sym_cent] = ACTIONS(7195),
    [sym_ucent] = ACTIONS(7195),
    [sym_wchar] = ACTIONS(7195),
    [sym_dchar] = ACTIONS(7195),
    [sym_float] = ACTIONS(7195),
    [sym_double] = ACTIONS(7195),
    [sym_real] = ACTIONS(7195),
    [sym_ifloat] = ACTIONS(7195),
    [sym_idouble] = ACTIONS(7195),
    [sym_ireal] = ACTIONS(7195),
    [sym_cfloat] = ACTIONS(7195),
    [sym_cdouble] = ACTIONS(7195),
    [sym_creal] = ACTIONS(7195),
    [sym_size_t] = ACTIONS(7195),
    [sym_ptrdiff_t] = ACTIONS(7195),
    [sym_string] = ACTIONS(7195),
    [sym_cstring] = ACTIONS(7195),
    [sym_dstring] = ACTIONS(7195),
    [sym_wstring] = ACTIONS(7195),
    [sym_noreturn] = ACTIONS(7195),
    [sym_auto] = ACTIONS(3143),
    [sym_const] = ACTIONS(2964),
    [sym_final] = ACTIONS(3143),
    [sym_immutable] = ACTIONS(2964),
    [sym_in] = ACTIONS(3143),
    [sym_inout] = ACTIONS(2964),
    [sym_lazy] = ACTIONS(3143),
    [sym_mixin] = ACTIONS(6631),
    [sym_out] = ACTIONS(3143),
    [sym_ref] = ACTIONS(3143),
    [sym_return] = ACTIONS(3143),
    [sym_scope] = ACTIONS(3143),
    [sym_shared] = ACTIONS(2964),
    [sym_typeof] = ACTIONS(7201),
    [sym_traits] = ACTIONS(75),
    [sym_vector] = ACTIONS(3159),
    [sym_void] = ACTIONS(7195),
    [sym_directive] = ACTIONS(3),
  },
  [3234] = {
    [sym_identifier] = ACTIONS(7690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7692),
    [anon_sym_DOT] = ACTIONS(7692),
    [anon_sym_LPAREN] = ACTIONS(7692),
    [anon_sym_AT] = ACTIONS(7692),
    [sym_bool] = ACTIONS(7690),
    [sym_byte] = ACTIONS(7690),
    [sym_ubyte] = ACTIONS(7690),
    [sym_char] = ACTIONS(7690),
    [sym_short] = ACTIONS(7690),
    [sym_ushort] = ACTIONS(7690),
    [sym_int] = ACTIONS(7690),
    [sym_uint] = ACTIONS(7690),
    [sym_long] = ACTIONS(7690),
    [sym_ulong] = ACTIONS(7690),
    [sym_cent] = ACTIONS(7690),
    [sym_ucent] = ACTIONS(7690),
    [sym_wchar] = ACTIONS(7690),
    [sym_dchar] = ACTIONS(7690),
    [sym_float] = ACTIONS(7690),
    [sym_double] = ACTIONS(7690),
    [sym_real] = ACTIONS(7690),
    [sym_ifloat] = ACTIONS(7690),
    [sym_idouble] = ACTIONS(7690),
    [sym_ireal] = ACTIONS(7690),
    [sym_cfloat] = ACTIONS(7690),
    [sym_cdouble] = ACTIONS(7690),
    [sym_creal] = ACTIONS(7690),
    [sym_size_t] = ACTIONS(7690),
    [sym_ptrdiff_t] = ACTIONS(7690),
    [sym_string] = ACTIONS(7690),
    [sym_cstring] = ACTIONS(7690),
    [sym_dstring] = ACTIONS(7690),
    [sym_wstring] = ACTIONS(7690),
    [sym_noreturn] = ACTIONS(7690),
    [sym_abstract] = ACTIONS(7690),
    [sym_align] = ACTIONS(7690),
    [sym_auto] = ACTIONS(7690),
    [sym_const] = ACTIONS(7690),
    [sym_delegate] = ACTIONS(7690),
    [sym_deprecated] = ACTIONS(7690),
    [sym_do] = ACTIONS(7690),
    [sym_enum] = ACTIONS(7690),
    [sym_extern] = ACTIONS(7690),
    [sym_final] = ACTIONS(7690),
    [sym_function] = ACTIONS(7690),
    [sym_immutable] = ACTIONS(7690),
    [sym_in] = ACTIONS(7690),
    [sym_inout] = ACTIONS(7690),
    [sym_mixin] = ACTIONS(7690),
    [sym_nothrow] = ACTIONS(7690),
    [sym_out] = ACTIONS(7690),
    [sym_override] = ACTIONS(7690),
    [sym_pure] = ACTIONS(7690),
    [sym_ref] = ACTIONS(7690),
    [sym_scope] = ACTIONS(7690),
    [sym_shared] = ACTIONS(7690),
    [sym_static] = ACTIONS(7690),
    [sym_synchronized] = ACTIONS(7690),
    [sym_typeof] = ACTIONS(7690),
    [sym_gshared] = ACTIONS(7690),
    [sym_traits] = ACTIONS(7690),
    [sym_vector] = ACTIONS(7690),
    [sym_void] = ACTIONS(7690),
    [sym_directive] = ACTIONS(3),
  },
  [3235] = {
    [sym_identifier] = ACTIONS(6989),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(6991),
    [anon_sym_DOT] = ACTIONS(6991),
    [anon_sym_LPAREN] = ACTIONS(6991),
    [anon_sym_AT] = ACTIONS(6991),
    [sym_bool] = ACTIONS(6989),
    [sym_byte] = ACTIONS(6989),
    [sym_ubyte] = ACTIONS(6989),
    [sym_char] = ACTIONS(6989),
    [sym_short] = ACTIONS(6989),
    [sym_ushort] = ACTIONS(6989),
    [sym_int] = ACTIONS(6989),
    [sym_uint] = ACTIONS(6989),
    [sym_long] = ACTIONS(6989),
    [sym_ulong] = ACTIONS(6989),
    [sym_cent] = ACTIONS(6989),
    [sym_ucent] = ACTIONS(6989),
    [sym_wchar] = ACTIONS(6989),
    [sym_dchar] = ACTIONS(6989),
    [sym_float] = ACTIONS(6989),
    [sym_double] = ACTIONS(6989),
    [sym_real] = ACTIONS(6989),
    [sym_ifloat] = ACTIONS(6989),
    [sym_idouble] = ACTIONS(6989),
    [sym_ireal] = ACTIONS(6989),
    [sym_cfloat] = ACTIONS(6989),
    [sym_cdouble] = ACTIONS(6989),
    [sym_creal] = ACTIONS(6989),
    [sym_size_t] = ACTIONS(6989),
    [sym_ptrdiff_t] = ACTIONS(6989),
    [sym_string] = ACTIONS(6989),
    [sym_cstring] = ACTIONS(6989),
    [sym_dstring] = ACTIONS(6989),
    [sym_wstring] = ACTIONS(6989),
    [sym_noreturn] = ACTIONS(6989),
    [sym_abstract] = ACTIONS(6989),
    [sym_align] = ACTIONS(6989),
    [sym_auto] = ACTIONS(6989),
    [sym_const] = ACTIONS(6989),
    [sym_delegate] = ACTIONS(6989),
    [sym_deprecated] = ACTIONS(6989),
    [sym_do] = ACTIONS(6989),
    [sym_enum] = ACTIONS(6989),
    [sym_extern] = ACTIONS(6989),
    [sym_final] = ACTIONS(6989),
    [sym_function] = ACTIONS(6989),
    [sym_immutable] = ACTIONS(6989),
    [sym_in] = ACTIONS(6989),
    [sym_inout] = ACTIONS(6989),
    [sym_mixin] = ACTIONS(6989),
    [sym_nothrow] = ACTIONS(6989),
    [sym_out] = ACTIONS(6989),
    [sym_override] = ACTIONS(6989),
    [sym_pure] = ACTIONS(6989),
    [sym_ref] = ACTIONS(6989),
    [sym_scope] = ACTIONS(6989),
    [sym_shared] = ACTIONS(6989),
    [sym_static] = ACTIONS(6989),
    [sym_synchronized] = ACTIONS(6989),
    [sym_typeof] = ACTIONS(6989),
    [sym_gshared] = ACTIONS(6989),
    [sym_traits] = ACTIONS(6989),
    [sym_vector] = ACTIONS(6989),
    [sym_void] = ACTIONS(6989),
    [sym_directive] = ACTIONS(3),
  },
  [3236] = {
    [sym_identifier] = ACTIONS(7690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7692),
    [anon_sym_DOT] = ACTIONS(7692),
    [anon_sym_LPAREN] = ACTIONS(7692),
    [anon_sym_AT] = ACTIONS(7692),
    [sym_bool] = ACTIONS(7690),
    [sym_byte] = ACTIONS(7690),
    [sym_ubyte] = ACTIONS(7690),
    [sym_char] = ACTIONS(7690),
    [sym_short] = ACTIONS(7690),
    [sym_ushort] = ACTIONS(7690),
    [sym_int] = ACTIONS(7690),
    [sym_uint] = ACTIONS(7690),
    [sym_long] = ACTIONS(7690),
    [sym_ulong] = ACTIONS(7690),
    [sym_cent] = ACTIONS(7690),
    [sym_ucent] = ACTIONS(7690),
    [sym_wchar] = ACTIONS(7690),
    [sym_dchar] = ACTIONS(7690),
    [sym_float] = ACTIONS(7690),
    [sym_double] = ACTIONS(7690),
    [sym_real] = ACTIONS(7690),
    [sym_ifloat] = ACTIONS(7690),
    [sym_idouble] = ACTIONS(7690),
    [sym_ireal] = ACTIONS(7690),
    [sym_cfloat] = ACTIONS(7690),
    [sym_cdouble] = ACTIONS(7690),
    [sym_creal] = ACTIONS(7690),
    [sym_size_t] = ACTIONS(7690),
    [sym_ptrdiff_t] = ACTIONS(7690),
    [sym_string] = ACTIONS(7690),
    [sym_cstring] = ACTIONS(7690),
    [sym_dstring] = ACTIONS(7690),
    [sym_wstring] = ACTIONS(7690),
    [sym_noreturn] = ACTIONS(7690),
    [sym_abstract] = ACTIONS(7690),
    [sym_align] = ACTIONS(7690),
    [sym_auto] = ACTIONS(7690),
    [sym_const] = ACTIONS(7690),
    [sym_delegate] = ACTIONS(7690),
    [sym_deprecated] = ACTIONS(7690),
    [sym_do] = ACTIONS(7690),
    [sym_extern] = ACTIONS(7690),
    [sym_final] = ACTIONS(7690),
    [sym_function] = ACTIONS(7690),
    [sym_immutable] = ACTIONS(7690),
    [sym_in] = ACTIONS(7690),
    [sym_inout] = ACTIONS(7690),
    [sym_mixin] = ACTIONS(7690),
    [sym_nothrow] = ACTIONS(7690),
    [sym_out] = ACTIONS(7690),
    [sym_override] = ACTIONS(7690),
    [sym_pure] = ACTIONS(7690),
    [sym_ref] = ACTIONS(7720),
    [sym_scope] = ACTIONS(7690),
    [sym_shared] = ACTIONS(7690),
    [sym_static] = ACTIONS(7690),
    [sym_synchronized] = ACTIONS(7690),
    [sym_typeof] = ACTIONS(7690),
    [sym_gshared] = ACTIONS(7690),
    [sym_traits] = ACTIONS(7690),
    [sym_vector] = ACTIONS(7690),
    [sym_void] = ACTIONS(7690),
    [sym_directive] = ACTIONS(3),
  },
  [3237] = {
    [sym_arguments] = STATE(3308),
    [sym_template_arguments] = STATE(3353),
    [sym_comment] = ACTIONS(3),
    [anon_sym_SLASH] = ACTIONS(6647),
    [anon_sym_SLASH_EQ] = ACTIONS(6649),
    [anon_sym_DOT] = ACTIONS(6647),
    [anon_sym_DOT_DOT] = ACTIONS(6649),
    [anon_sym_AMP] = ACTIONS(6647),
    [anon_sym_AMP_EQ] = ACTIONS(6649),
    [anon_sym_AMP_AMP] = ACTIONS(6649),
    [anon_sym_PIPE] = ACTIONS(6647),
    [anon_sym_PIPE_EQ] = ACTIONS(6649),
    [anon_sym_PIPE_PIPE] = ACTIONS(6649),
    [anon_sym_DASH] = ACTIONS(6647),
    [anon_sym_DASH_EQ] = ACTIONS(6649),
    [anon_sym_DASH_DASH] = ACTIONS(6649),
    [anon_sym_PLUS] = ACTIONS(6647),
    [anon_sym_PLUS_EQ] = ACTIONS(6649),
    [anon_sym_PLUS_PLUS] = ACTIONS(6649),
    [anon_sym_LT] = ACTIONS(6647),
    [anon_sym_LT_EQ] = ACTIONS(6649),
    [anon_sym_LT_LT] = ACTIONS(6647),
    [anon_sym_LT_LT_EQ] = ACTIONS(6649),
    [anon_sym_GT] = ACTIONS(6647),
    [anon_sym_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT] = ACTIONS(6647),
    [anon_sym_GT_GT_GT] = ACTIONS(6647),
    [anon_sym_BANG] = ACTIONS(7723),
    [anon_sym_BANG_EQ] = ACTIONS(6649),
    [anon_sym_LPAREN] = ACTIONS(7725),
    [anon_sym_RPAREN] = ACTIONS(6649),
    [anon_sym_LBRACK] = ACTIONS(6649),
    [anon_sym_RBRACK] = ACTIONS(6649),
    [anon_sym_QMARK] = ACTIONS(6649),
    [anon_sym_COMMA] = ACTIONS(6649),
    [anon_sym_EQ] = ACTIONS(6647),
    [anon_sym_EQ_EQ] = ACTIONS(6649),
    [anon_sym_STAR] = ACTIONS(6647),
    [anon_sym_STAR_EQ] = ACTIONS(6649),
    [anon_sym_PERCENT] = ACTIONS(6647),
    [anon_sym_PERCENT_EQ] = ACTIONS(6649),
    [anon_sym_CARET] = ACTIONS(6647),
    [anon_sym_CARET_EQ] = ACTIONS(6649),
    [anon_sym_CARET_CARET] = ACTIONS(6647),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(6649),
    [anon_sym_TILDE] = ACTIONS(6647),
    [anon_sym_TILDE_EQ] = ACTIONS(6649),
    [anon_sym_AT] = ACTIONS(6649),
    [sym_const] = ACTIONS(6649),
    [sym_delegate] = ACTIONS(6649),
    [sym_function] = ACTIONS(6649),
    [sym_immutable] = ACTIONS(6649),
    [sym_in] = ACTIONS(6647),
    [sym_inout] = ACTIONS(6649),
    [sym_is] = ACTIONS(6649),
    [sym_nothrow] = ACTIONS(6649),
    [sym_pure] = ACTIONS(6649),
    [sym_return] = ACTIONS(6649),
    [sym_scope] = ACTIONS(6649),
    [sym_shared] = ACTIONS(6649),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(6649),
    [sym_not_is] = ACTIONS(6649),
  },
  [3238] = {
    [sym_identifier] = ACTIONS(7690),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7692),
    [anon_sym_DOT] = ACTIONS(7692),
    [anon_sym_LPAREN] = ACTIONS(7727),
    [anon_sym_AT] = ACTIONS(7692),
    [sym_bool] = ACTIONS(7690),
    [sym_byte] = ACTIONS(7690),
    [sym_ubyte] = ACTIONS(7690),
    [sym_char] = ACTIONS(7690),
    [sym_short] = ACTIONS(7690),
    [sym_ushort] = ACTIONS(7690),
    [sym_int] = ACTIONS(7690),
    [sym_uint] = ACTIONS(7690),
    [sym_long] = ACTIONS(7690),
    [sym_ulong] = ACTIONS(7690),
    [sym_cent] = ACTIONS(7690),
    [sym_ucent] = ACTIONS(7690),
    [sym_wchar] = ACTIONS(7690),
    [sym_dchar] = ACTIONS(7690),
    [sym_float] = ACTIONS(7690),
    [sym_double] = ACTIONS(7690),
    [sym_real] = ACTIONS(7690),
    [sym_ifloat] = ACTIONS(7690),
    [sym_idouble] = ACTIONS(7690),
    [sym_ireal] = ACTIONS(7690),
    [sym_cfloat] = ACTIONS(7690),
    [sym_cdouble] = ACTIONS(7690),
    [sym_creal] = ACTIONS(7690),
    [sym_size_t] = ACTIONS(7690),
    [sym_ptrdiff_t] = ACTIONS(7690),
    [sym_string] = ACTIONS(7690),
    [sym_cstring] = ACTIONS(7690),
    [sym_dstring] = ACTIONS(7690),
    [sym_wstring] = ACTIONS(7690),
    [sym_noreturn] = ACTIONS(7690),
    [sym_abstract] = ACTIONS(7690),
    [sym_align] = ACTIONS(7690),
    [sym_auto] = ACTIONS(7690),
    [sym_const] = ACTIONS(7690),
    [sym_delegate] = ACTIONS(7690),
    [sym_deprecated] = ACTIONS(7690),
    [sym_do] = ACTIONS(7690),
    [sym_extern] = ACTIONS(7690),
    [sym_final] = ACTIONS(7690),
    [sym_function] = ACTIONS(7690),
    [sym_immutable] = ACTIONS(7690),
    [sym_in] = ACTIONS(7690),
    [sym_inout] = ACTIONS(7690),
    [sym_mixin] = ACTIONS(7690),
    [sym_nothrow] = ACTIONS(7690),
    [sym_out] = ACTIONS(7690),
    [sym_override] = ACTIONS(7690),
    [sym_pure] = ACTIONS(7690),
    [sym_ref] = ACTIONS(7690),
    [sym_scope] = ACTIONS(7690),
    [sym_shared] = ACTIONS(7690),
    [sym_static] = ACTIONS(7690),
    [sym_synchronized] = ACTIONS(7690),
    [sym_typeof] = ACTIONS(7690),
    [sym_gshared] = ACTIONS(7690),
    [sym_traits] = ACTIONS(7690),
    [sym_vector] = ACTIONS(7690),
    [sym_void] = ACTIONS(7690),
    [sym_directive] = ACTIONS(3),
  },
  [3239] = {
    [sym_identifier] = ACTIONS(7730),
    [sym_comment] = ACTIONS(3),
    [anon_sym_LBRACE] = ACTIONS(7692),
    [anon_sym_DOT] = ACTIONS(7733),
    [anon_sym_LPAREN] = ACTIONS(7736),
    [anon_sym_AT] = ACTIONS(7692),
    [sym_bool] = ACTIONS(7730),
    [sym_byte] = ACTIONS(7730),
    [sym_ubyte] = ACTIONS(7730),
    [sym_char] = ACTIONS(7730),
    [sym_short] = ACTIONS(7730),
    [sym_ushort] = ACTIONS(7730),
    [sym_int] = ACTIONS(7730),
    [sym_uint] = ACTIONS(7730),
    [sym_long] = ACTIONS(7730),
    [sym_ulong] = ACTIONS(7730),
    [sym_cent] = ACTIONS(7730),
    [sym_ucent] = ACTIONS(7730),
    [sym_wchar] = ACTIONS(7730),
    [sym_dchar] = ACTIONS(7730),
    [sym_float] = ACTIONS(7730),
    [sym_double] = ACTIONS(7730),
    [sym_real] = ACTIONS(7730),
    [sym_ifloat] = ACTIONS(7730),
    [sym_idouble] = ACTIONS(7730),
    [sym_ireal] = ACTIONS(7730),
    [sym_cfloat] = ACTIONS(7730),
    [sym_cdouble] = ACTIONS(7730),
    [sym_creal] = ACTIONS(7730),
    [sym_size_t] = ACTIONS(7730),
    [sym_ptrdiff_t] = ACTIONS(7730),
    [sym_string] = ACTIONS(7730),
    [sym_cstring] = ACTIONS(7730),
    [sym_dstring] = ACTIONS(7730),
    [sym_wstring] = ACTIONS(7730),
    [sym_noreturn] = ACTIONS(7730),
    [sym_abstract] = ACTIONS(7690),
    [sym_align] = ACTIONS(7690),
    [sym_auto] = ACTIONS(7690),
    [sym_const] = ACTIONS(7730),
    [sym_delegate] = ACTIONS(7690),
    [sym_deprecated] = ACTIONS(7690),
    [sym_do] = ACTIONS(7690),
    [sym_extern] = ACTIONS(7690),
    [sym_final] = ACTIONS(7690),
    [sym_function] = ACTIONS(7690),
    [sym_immutable] = ACTIONS(7730),
    [sym_in] = ACTIONS(7690),
    [sym_inout] = ACTIONS(7730),
    [sym_mixin] = ACTIONS(7730),
    [sym_nothrow] = ACTIONS(7690),
    [sym_out] = ACTIONS(7690),
    [sym_override] = ACTIONS(7690),
    [sym_pure] = ACTIONS(7690),
    [sym_ref] = ACTIONS(7690),
    [sym_scope] = ACTIONS(7690),
    [sym_shared] = ACTIONS(7730),
    [sym_static] = ACTIONS(7690),
    [sym_synchronized] = ACTIONS(7690),
    [sym_typeof] = ACTIONS(7730),
    [sym_gshared] = ACTIONS(7690),
    [sym_traits] = ACTIONS(7730),
    [sym_vector] = ACTIONS(7730),
    [sym_void] = ACTIONS(7730),
    [sym_directive] = ACTIONS(3),
  },
  [3240] = {
    [sym_arguments] = STATE(3271),
    [sym_comment] = ACTIONS(3),
    [anon_sym_RBRACE] = ACTIONS(6649),
    [anon_sym_SLASH] = ACTIONS(6647),
    [anon_sym_SLASH_EQ] = ACTIONS(6649),
    [anon_sym_DOT] = ACTIONS(6649),
    [anon_sym_AMP] = ACTIONS(6647),
    [anon_sym_AMP_EQ] = ACTIONS(6649),
    [anon_sym_AMP_AMP] = ACTIONS(6649),
    [anon_sym_PIPE] = ACTIONS(6647),
    [anon_sym_PIPE_EQ] = ACTIONS(6649),
    [anon_sym_PIPE_PIPE] = ACTIONS(6649),
    [anon_sym_DASH] = ACTIONS(6647),
    [anon_sym_DASH_EQ] = ACTIONS(6649),
    [anon_sym_DASH_DASH] = ACTIONS(6649),
    [anon_sym_PLUS] = ACTIONS(6647),
    [anon_sym_PLUS_EQ] = ACTIONS(6649),
    [anon_sym_PLUS_PLUS] = ACTIONS(6649),
    [anon_sym_LT] = ACTIONS(6647),
    [anon_sym_LT_EQ] = ACTIONS(6649),
    [anon_sym_LT_LT] = ACTIONS(6647),
    [anon_sym_LT_LT_EQ] = ACTIONS(6649),
    [anon_sym_GT] = ACTIONS(6647),
    [anon_sym_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT_GT_EQ] = ACTIONS(6649),
    [anon_sym_GT_GT] = ACTIONS(6647),
    [anon_sym_GT_GT_GT] = ACTIONS(6647),
    [anon_sym_BANG_EQ] = ACTIONS(6649),
    [anon_sym_LPAREN] = ACTIONS(7684),
    [anon_sym_RPAREN] = ACTIONS(6649),
    [anon_sym_LBRACK] = ACTIONS(6649),
    [anon_sym_RBRACK] = ACTIONS(6649),
    [anon_sym_QMARK] = ACTIONS(6649),
    [anon_sym_COMMA] = ACTIONS(6649),
    [anon_sym_SEMI] = ACTIONS(6649),
    [anon_sym_COLON] = ACTIONS(6649),
    [anon_sym_EQ] = ACTIONS(6647),
    [anon_sym_EQ_EQ] = ACTIONS(6649),
    [anon_sym_STAR] = ACTIONS(6647),
    [anon_sym_STAR_EQ] = ACTIONS(6649),
    [anon_sym_PERCENT] = ACTIONS(6647),
    [anon_sym_PERCENT_EQ] = ACTIONS(6649),
    [anon_sym_CARET] = ACTIONS(6647),
    [anon_sym_CARET_EQ] = ACTIONS(6649),
    [anon_sym_CARET_CARET] = ACTIONS(6647),
    [anon_sym_CARET_CARET_EQ] = ACTIONS(6649),
    [anon_sym_TILDE] = ACTIONS(6647),
    [anon_sym_TILDE_EQ] = ACTIONS(6649),
    [anon_sym_AT] = ACTIONS(6649),
    [sym_const] = ACTIONS(6649),
    [sym_delegate] = ACTIONS(6649),
    [sym_function] = ACTIONS(6649),
    [sym_immutable] = ACTIONS(6649),
    [sym_in] = ACTIONS(6647),
    [sym_inout] = ACTIONS(6649),
    [sym_is] = ACTIONS(6649),
    [sym_nothrow] = ACTIONS(6649),
    [sym_pure] = ACTIONS(6649),
    [sym_return] = ACTIONS(6649),
    [sym_scope] = ACTIONS(6649),
    [sym_shared] = ACTIONS(6649),
    [sym_directive] = ACTIONS(3),
    [sym_not_in] = ACTIONS(6649),
    [sym_not_is] = ACTIONS(6649),
  },
};

static const uint16_t ts_small_parse_table[] = {
  [0] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3044), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3046), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [71] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3008), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3010), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [142] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7741), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7739), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [213] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6643), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6645), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [284] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7745), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7743), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [355] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7749), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7747), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [426] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6661), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6663), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [497] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6675), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6677), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [568] = 7,
    ACTIONS(7751), 1,
      anon_sym_BANG,
    ACTIONS(7753), 1,
      anon_sym_LPAREN,
    STATE(3372), 1,
      sym_template_arguments,
    STATE(3373), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6649), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [647] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7757), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7755), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [718] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7761), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7759), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [789] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3036), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3038), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [860] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6653), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6655), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [931] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6665), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6667), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1002] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3004), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3006), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1073] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3048), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3050), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1144] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6639), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6641), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1215] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6657), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6659), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1286] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7765), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7763), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1357] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2984), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2986), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1428] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3016), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3018), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1499] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2996), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2998), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1570] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7769), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7767), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1641] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3056), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3058), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1712] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3000), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3002), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1783] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3012), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3014), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1854] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3024), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3026), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1925] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3028), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3030), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [1996] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2992), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2994), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [2067] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3032), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3034), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [2138] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6669), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6671), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [2209] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3020), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3022), 45,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [2280] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7773), 1,
      anon_sym_RBRACE,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [2384] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7777), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [2488] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7779), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [2592] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7781), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [2696] = 5,
    ACTIONS(7725), 1,
      anon_sym_LPAREN,
    STATE(3308), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6649), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [2770] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7783), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [2874] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7785), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [2978] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7787), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3082] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7789), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3186] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7791), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3290] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7793), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3394] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7795), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3498] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7797), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3602] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7799), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3706] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7801), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3810] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7803), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [3914] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7805), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4018] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7807), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4122] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7809), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4226] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7811), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4330] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7813), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4434] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7815), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4538] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7817), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4642] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7819), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4746] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7821), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4850] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7823), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [4954] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7825), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5058] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7827), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5162] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7829), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5266] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7831), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5370] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(7833), 1,
      anon_sym_RBRACE,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5474] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3020), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3022), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [5543] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6675), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6677), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [5612] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6196), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5713] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6082), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5814] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6669), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6671), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [5883] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5912), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [5984] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7761), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7759), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [6053] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7749), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7747), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [6122] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6639), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6641), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [6191] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5868), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [6292] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5739), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [6393] = 6,
    ACTIONS(7835), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7837), 2,
      sym_nothrow,
      sym_pure,
    STATE(3318), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7656), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7654), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [6468] = 6,
    ACTIONS(7843), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7846), 2,
      sym_nothrow,
      sym_pure,
    STATE(3316), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7841), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7839), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [6543] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6263), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [6644] = 6,
    ACTIONS(7835), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7849), 2,
      sym_nothrow,
      sym_pure,
    STATE(3316), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7674), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7672), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [6719] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5742), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [6820] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3036), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3038), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [6889] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3044), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3046), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [6958] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6164), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [7059] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3048), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3050), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [7128] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7769), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7767), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [7197] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6391), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [7298] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3056), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3058), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [7367] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2992), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2994), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [7436] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3032), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3034), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [7505] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5958), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [7606] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3028), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3030), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [7675] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3024), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3026), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [7744] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5943), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [7845] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6237), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [7946] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6653), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6655), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8015] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7757), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7755), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8084] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5872), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [8185] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3012), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3014), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8254] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7765), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7763), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8323] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3000), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3002), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8392] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6207), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [8493] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6643), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6645), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8562] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2984), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2986), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8631] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6665), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6667), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8700] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6295), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [8801] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6092), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [8902] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7745), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7743), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [8971] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6808), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [9072] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5828), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [9173] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5816), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [9274] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3016), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3018), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [9343] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7741), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7739), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [9412] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5741), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [9513] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6657), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6659), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [9582] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6028), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [9683] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2996), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2998), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [9752] = 5,
    ACTIONS(7753), 1,
      anon_sym_LPAREN,
    STATE(3373), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6649), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [9825] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5856), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [9926] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6661), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6663), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [9995] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6270), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [10096] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5810), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [10197] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7771), 1,
      sym_identifier,
    ACTIONS(7775), 1,
      sym_deprecated,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8019), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5965), 2,
      sym_enum_member,
      sym_anonymous_enum_member,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [10298] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3008), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3010), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10367] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3004), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3006), 42,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10436] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3048), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3050), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10504] = 6,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4950), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7692), 2,
      anon_sym_DOT,
      anon_sym_AT,
    ACTIONS(7690), 54,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_abstract,
      sym_align,
      sym_auto,
      sym_const,
      sym_deprecated,
      sym_extern,
      sym_final,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_nothrow,
      sym_override,
      sym_pure,
      sym_ref,
      sym_scope,
      sym_shared,
      sym_static,
      sym_synchronized,
      sym_typeof,
      sym_gshared,
      sym_traits,
      sym_vector,
      sym_void,
  [10578] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6665), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6667), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10646] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3028), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3030), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10714] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3032), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3034), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10782] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3020), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3022), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10850] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2992), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2994), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10918] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3056), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3058), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [10986] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6657), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6659), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11054] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6669), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6671), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11122] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6639), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6641), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11190] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3044), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3046), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11258] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3036), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3038), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11326] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6675), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6677), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11394] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6661), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6663), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11462] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3008), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3010), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11530] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6653), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6655), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11598] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3004), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3006), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11666] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7749), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7747), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11734] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2984), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2986), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11802] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3016), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3018), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [11870] = 7,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7853), 1,
      anon_sym_LPAREN,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3478), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6649), 39,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [11946] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7769), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7767), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12014] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7745), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7743), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12082] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2996), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(2998), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12150] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7757), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7755), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12218] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7761), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7759), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12286] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7765), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7763), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12354] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7741), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(7739), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12422] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3000), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3002), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12490] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3012), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3014), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12558] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3024), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(3026), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12626] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6643), 18,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
    ACTIONS(6645), 41,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_is,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [12694] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6232), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [12791] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6613), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [12888] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5825), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [12985] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5843), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13082] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5900), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13179] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5927), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13276] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5903), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13373] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5973), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13470] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5842), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13567] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6288), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13664] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6290), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13761] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6360), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [13858] = 6,
    ACTIONS(7859), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7862), 2,
      sym_nothrow,
      sym_pure,
    STATE(3409), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7841), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7839), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [13931] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5951), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14028] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5950), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14125] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6061), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14222] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6116), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14319] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5972), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14416] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6141), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14513] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6084), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14610] = 6,
    ACTIONS(7865), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7867), 2,
      sym_nothrow,
      sym_pure,
    STATE(3420), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7656), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7654), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [14683] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5928), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14780] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6291), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [14877] = 6,
    ACTIONS(7865), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7869), 2,
      sym_nothrow,
      sym_pure,
    STATE(3409), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7674), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7672), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [14950] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5870), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15047] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6015), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15144] = 6,
    ACTIONS(6885), 1,
      anon_sym_LPAREN,
    ACTIONS(7692), 1,
      anon_sym_AT,
    ACTIONS(7733), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7690), 15,
      sym_abstract,
      sym_align,
      sym_auto,
      sym_deprecated,
      sym_enum,
      sym_extern,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_pure,
      sym_ref,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
    ACTIONS(7730), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [15217] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5852), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15314] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5853), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15411] = 4,
    ACTIONS(7871), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7692), 2,
      anon_sym_DOT,
      anon_sym_AT,
    ACTIONS(7690), 55,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_abstract,
      sym_align,
      sym_auto,
      sym_const,
      sym_deprecated,
      sym_enum,
      sym_extern,
      sym_final,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_nothrow,
      sym_override,
      sym_pure,
      sym_ref,
      sym_scope,
      sym_shared,
      sym_static,
      sym_synchronized,
      sym_typeof,
      sym_gshared,
      sym_traits,
      sym_vector,
      sym_void,
  [15480] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6365), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15577] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6184), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15674] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6201), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15771] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5866), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15868] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5831), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [15965] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6362), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [16062] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6008), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [16159] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6013), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [16256] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7855), 1,
      sym_identifier,
    STATE(3460), 1,
      aux_sym_foreach_type_repeat1,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6197), 1,
      sym_foreach_type,
    STATE(7688), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7857), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [16353] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3008), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3010), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16419] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3036), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3038), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16485] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3012), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3014), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16551] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6643), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6645), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16617] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2992), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(2994), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16683] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3056), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3058), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16749] = 6,
    ACTIONS(7873), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7875), 2,
      sym_nothrow,
      sym_pure,
    STATE(3446), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7656), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7654), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [16821] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6657), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6659), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16887] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3020), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3022), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [16953] = 6,
    ACTIONS(7877), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7880), 2,
      sym_nothrow,
      sym_pure,
    STATE(3445), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7841), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7839), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [17025] = 6,
    ACTIONS(7873), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7883), 2,
      sym_nothrow,
      sym_pure,
    STATE(3445), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7674), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7672), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [17097] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3024), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3026), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17163] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6653), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6655), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17229] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3032), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3034), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17295] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3028), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3030), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17361] = 5,
    ACTIONS(7853), 1,
      anon_sym_LPAREN,
    STATE(3478), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6649), 39,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [17431] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3000), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3002), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17497] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2996), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(2998), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17563] = 7,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    ACTIONS(7887), 1,
      anon_sym_LPAREN,
    STATE(3520), 1,
      sym_template_arguments,
    STATE(3534), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6649), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [17637] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3016), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3018), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17703] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3044), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3046), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17769] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2984), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(2986), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [17835] = 20,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    ACTIONS(7891), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6059), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    STATE(7812), 1,
      sym__template_parameter_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [17935] = 12,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [18019] = 17,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7913), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4109), 1,
      aux_sym_foreach_type_repeat1,
    STATE(4139), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7832), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(7915), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [18113] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3048), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3050), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [18179] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3004), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3006), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [18245] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6639), 23,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6641), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [18311] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7761), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7759), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [18376] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6059), 1,
      sym_template_parameter,
    STATE(7031), 1,
      sym__template_parameter_list,
    STATE(7335), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [18473] = 14,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(7917), 1,
      anon_sym_COLON,
    ACTIONS(7919), 1,
      anon_sym_EQ,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [18560] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(7497), 1,
      anon_sym_LPAREN,
    ACTIONS(7922), 1,
      anon_sym_LBRACE,
    STATE(3559), 1,
      sym_arguments,
    STATE(3985), 1,
      sym_aggregate_body,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6909), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [18657] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6661), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6663), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [18722] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6059), 1,
      sym_template_parameter,
    STATE(7042), 1,
      sym__template_parameter_list,
    STATE(7335), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [18819] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6059), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    STATE(7392), 1,
      sym__template_parameter_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [18916] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7741), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7739), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [18981] = 11,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7930), 1,
      anon_sym_DOT,
    ACTIONS(7933), 1,
      anon_sym_LPAREN,
    ACTIONS(7936), 1,
      anon_sym_LBRACK,
    ACTIONS(7940), 1,
      anon_sym_COLON,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    STATE(3443), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [19062] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(7497), 1,
      anon_sym_LPAREN,
    ACTIONS(7945), 1,
      anon_sym_LBRACE,
    STATE(3554), 1,
      sym_arguments,
    STATE(3846), 1,
      sym_aggregate_body,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6897), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [19159] = 7,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    ACTIONS(7949), 1,
      anon_sym_LPAREN,
    STATE(3552), 1,
      sym_template_arguments,
    STATE(3617), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6649), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [19232] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6059), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    STATE(7437), 1,
      sym__template_parameter_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [19329] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(7497), 1,
      anon_sym_LPAREN,
    ACTIONS(7951), 1,
      anon_sym_LBRACE,
    STATE(3524), 1,
      sym_arguments,
    STATE(4015), 1,
      sym_aggregate_body,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6638), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [19426] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6675), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6677), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [19491] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6669), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6671), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [19556] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    ACTIONS(7953), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6831), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [19653] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7745), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7743), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [19718] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6059), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    STATE(7499), 1,
      sym__template_parameter_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [19815] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7765), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7763), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [19880] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6059), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    STATE(7522), 1,
      sym__template_parameter_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [19977] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6665), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6667), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [20042] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7769), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7767), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [20107] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    ACTIONS(7955), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6831), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [20204] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7757), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7755), 40,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [20269] = 14,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(7919), 1,
      anon_sym_EQ,
    ACTIONS(7957), 1,
      anon_sym_COLON,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [20355] = 5,
    ACTIONS(7887), 1,
      anon_sym_LPAREN,
    STATE(3534), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6649), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [20423] = 8,
    ACTIONS(7963), 1,
      anon_sym_LBRACK,
    ACTIONS(7965), 1,
      anon_sym_STAR,
    ACTIONS(7967), 1,
      sym_delegate,
    ACTIONS(7969), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3497), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7961), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7959), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [20497] = 8,
    ACTIONS(7963), 1,
      anon_sym_LBRACK,
    ACTIONS(7967), 1,
      sym_delegate,
    ACTIONS(7969), 1,
      sym_function,
    ACTIONS(7975), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3493), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7973), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7971), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [20571] = 14,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(7957), 1,
      anon_sym_COLON,
    ACTIONS(7977), 1,
      anon_sym_EQ,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [20657] = 8,
    ACTIONS(7963), 1,
      anon_sym_LBRACK,
    ACTIONS(7965), 1,
      anon_sym_STAR,
    ACTIONS(7967), 1,
      sym_delegate,
    ACTIONS(7969), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3497), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7982), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7980), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [20731] = 8,
    ACTIONS(7963), 1,
      anon_sym_LBRACK,
    ACTIONS(7967), 1,
      sym_delegate,
    ACTIONS(7969), 1,
      sym_function,
    ACTIONS(7984), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3490), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7982), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7980), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [20805] = 18,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7199), 1,
      sym_alias,
    ACTIONS(7209), 1,
      sym_this,
    ACTIONS(7889), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6831), 1,
      sym_template_parameter,
    STATE(7335), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [20899] = 14,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(7940), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    ACTIONS(7986), 1,
      anon_sym_DOT,
    ACTIONS(7992), 1,
      anon_sym_LBRACK,
    STATE(3552), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7908), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7989), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 24,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [20985] = 8,
    ACTIONS(8000), 1,
      anon_sym_LBRACK,
    ACTIONS(8003), 1,
      anon_sym_STAR,
    ACTIONS(8006), 1,
      sym_delegate,
    ACTIONS(8009), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3497), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7998), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7996), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [21059] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3102), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3104), 39,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_catch,
      sym_else,
      sym_finally,
      sym_in,
      sym_is,
      sym_while,
  [21123] = 7,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(8012), 1,
      anon_sym_DOT,
    ACTIONS(8014), 1,
      anon_sym_LBRACK,
    STATE(3443), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7940), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [21195] = 14,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(7957), 1,
      anon_sym_COLON,
    ACTIONS(8016), 1,
      anon_sym_EQ,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [21281] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3098), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3100), 39,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_catch,
      sym_else,
      sym_finally,
      sym_in,
      sym_is,
      sym_while,
  [21345] = 14,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(7957), 1,
      anon_sym_COLON,
    ACTIONS(8019), 1,
      anon_sym_EQ,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [21431] = 14,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(7957), 1,
      anon_sym_COLON,
    ACTIONS(8022), 1,
      anon_sym_EQ,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [21517] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 39,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_catch,
      sym_else,
      sym_finally,
      sym_in,
      sym_is,
      sym_while,
  [21581] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8025), 21,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8027), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [21644] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3012), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3014), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [21707] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7769), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7767), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [21770] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7765), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7763), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [21833] = 13,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(8029), 1,
      anon_sym_COLON,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [21916] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3028), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3030), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [21979] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3024), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3026), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22042] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6643), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6645), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22105] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3012), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3014), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22168] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3032), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3034), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22231] = 8,
    ACTIONS(7930), 1,
      anon_sym_DOT,
    ACTIONS(7940), 1,
      anon_sym_COLON,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7933), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [22304] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3044), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3046), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22367] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6653), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6655), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [22430] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3020), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3022), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22493] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2992), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(2994), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22556] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6657), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6659), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22619] = 12,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    ACTIONS(8031), 1,
      anon_sym_DOT,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(8036), 1,
      anon_sym_EQ_GT,
    STATE(3552), 1,
      sym_template_arguments,
    STATE(4005), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [22700] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3048), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3050), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22763] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6653), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6655), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22826] = 17,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(7951), 1,
      anon_sym_LBRACE,
    STATE(4054), 1,
      sym_aggregate_body,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6588), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [22917] = 5,
    ACTIONS(7949), 1,
      anon_sym_LPAREN,
    STATE(3617), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6649), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [22984] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6639), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6641), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23047] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3036), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3038), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [23110] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3044), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3046), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [23173] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3048), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3050), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [23236] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7745), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7743), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23299] = 12,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(8031), 1,
      anon_sym_DOT,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8040), 1,
      anon_sym_EQ_GT,
    STATE(3520), 1,
      sym_template_arguments,
    STATE(3944), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [23380] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3000), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3002), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23443] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6675), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6677), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23506] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6669), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6671), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23569] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2996), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(2998), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23632] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3016), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3018), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23695] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2984), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(2986), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23758] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3004), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3006), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [23821] = 8,
    ACTIONS(8044), 1,
      anon_sym_DOT,
    ACTIONS(8050), 1,
      anon_sym_COLON,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [23894] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3056), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3058), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [23957] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2992), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(2994), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [24020] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3020), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3022), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [24083] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3032), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3034), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [24146] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3028), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3030), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [24209] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7761), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7759), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [24272] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3008), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3010), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [24335] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3036), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3038), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [24398] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8055), 21,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8057), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [24461] = 12,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(8059), 1,
      anon_sym_EQ_GT,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [24542] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6665), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6667), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [24605] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8061), 21,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8063), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [24668] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6657), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6659), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [24731] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8065), 21,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8067), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [24794] = 17,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(7945), 1,
      anon_sym_LBRACE,
    STATE(3861), 1,
      sym_aggregate_body,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6917), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [24885] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7757), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7755), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [24948] = 13,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(8069), 1,
      anon_sym_COLON,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [25031] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(8071), 1,
      anon_sym_RPAREN,
    ACTIONS(8075), 1,
      sym_immutable,
    ACTIONS(8077), 1,
      sym_shared,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7240), 1,
      sym_type,
    STATE(7241), 1,
      sym_cast_qualifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8073), 2,
      sym_const,
      sym_inout,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [25126] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(8075), 1,
      sym_immutable,
    ACTIONS(8077), 1,
      sym_shared,
    ACTIONS(8079), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7007), 1,
      sym_cast_qualifier,
    STATE(7008), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8073), 2,
      sym_const,
      sym_inout,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [25221] = 17,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(7922), 1,
      anon_sym_LBRACE,
    STATE(3961), 1,
      sym_aggregate_body,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6604), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [25312] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3024), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3026), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [25375] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3056), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3058), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [25438] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(8075), 1,
      sym_immutable,
    ACTIONS(8077), 1,
      sym_shared,
    ACTIONS(8081), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7991), 1,
      sym_cast_qualifier,
    STATE(7993), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8073), 2,
      sym_const,
      sym_inout,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [25533] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3000), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3002), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [25596] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2996), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(2998), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [25659] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3016), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3018), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [25722] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2984), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(2986), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [25785] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3004), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3006), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [25848] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3008), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(3010), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [25911] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7741), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7739), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [25974] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(8075), 1,
      sym_immutable,
    ACTIONS(8077), 1,
      sym_shared,
    ACTIONS(8083), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7897), 1,
      sym_type,
    STATE(7900), 1,
      sym_cast_qualifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8073), 2,
      sym_const,
      sym_inout,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [26069] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(8075), 1,
      sym_immutable,
    ACTIONS(8077), 1,
      sym_shared,
    ACTIONS(8085), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7968), 1,
      sym_cast_qualifier,
    STATE(7969), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8073), 2,
      sym_const,
      sym_inout,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [26164] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6639), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6641), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [26227] = 7,
    ACTIONS(8050), 1,
      anon_sym_COLON,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [26298] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6661), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6663), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [26361] = 19,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    ACTIONS(8075), 1,
      sym_immutable,
    ACTIONS(8077), 1,
      sym_shared,
    ACTIONS(8087), 1,
      anon_sym_RPAREN,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7631), 1,
      sym_type,
    STATE(7632), 1,
      sym_cast_qualifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8073), 2,
      sym_const,
      sym_inout,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [26456] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6643), 24,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
    ACTIONS(6645), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
  [26519] = 8,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7940), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7989), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [26592] = 8,
    ACTIONS(8091), 1,
      anon_sym_DOT,
    ACTIONS(8093), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3578), 2,
      sym_parameter_attribute,
      aux_sym__parameter_repeat1,
    STATE(3921), 2,
      sym_type_ctor,
      sym_at_attribute,
    ACTIONS(8099), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(8096), 8,
      sym_auto,
      sym_final,
      sym_in,
      sym_lazy,
      sym_out,
      sym_ref,
      sym_return,
      sym_scope,
    ACTIONS(8089), 36,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_mixin,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [26665] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8104), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8102), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [26727] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8108), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8106), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [26789] = 11,
    ACTIONS(7940), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    ACTIONS(8110), 1,
      anon_sym_DOT,
    ACTIONS(8113), 1,
      anon_sym_LBRACK,
    STATE(3552), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7942), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7933), 3,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7928), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7926), 24,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [26867] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7765), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7763), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [26929] = 16,
    ACTIONS(3147), 1,
      sym_mixin,
    ACTIONS(3155), 1,
      sym_typeof,
    ACTIONS(3157), 1,
      sym_traits,
    ACTIONS(8117), 1,
      sym_identifier,
    ACTIONS(8119), 1,
      anon_sym_DOT,
    ACTIONS(8123), 1,
      sym_class,
    ACTIONS(8125), 1,
      sym_vector,
    STATE(3768), 1,
      aux_sym_type_repeat1,
    STATE(3873), 1,
      sym_template_instance,
    STATE(3874), 1,
      sym_typeof_expression,
    STATE(3951), 1,
      sym_type,
    STATE(4266), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(3728), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8121), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [27017] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7741), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7739), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [27079] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7761), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7759), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [27141] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7656), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7654), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [27203] = 5,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    STATE(3443), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8130), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8127), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [27269] = 6,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    STATE(5169), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8137), 2,
      anon_sym_DOT,
      anon_sym_AT,
    ACTIONS(8133), 48,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_auto,
      sym_const,
      sym_final,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_lazy,
      sym_mixin,
      sym_out,
      sym_ref,
      sym_return,
      sym_scope,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [27337] = 6,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(8141), 1,
      anon_sym_LPAREN,
    STATE(5198), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8137), 2,
      anon_sym_DOT,
      anon_sym_AT,
    ACTIONS(8133), 48,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_auto,
      sym_const,
      sym_final,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_lazy,
      sym_mixin,
      sym_out,
      sym_ref,
      sym_return,
      sym_scope,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [27405] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8145), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8143), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [27467] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7757), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7755), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [27529] = 6,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4895), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8137), 2,
      anon_sym_DOT,
      anon_sym_AT,
    ACTIONS(8133), 48,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_auto,
      sym_const,
      sym_final,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_lazy,
      sym_mixin,
      sym_out,
      sym_ref,
      sym_return,
      sym_scope,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [27597] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7745), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7743), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [27659] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7674), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7672), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [27721] = 8,
    ACTIONS(8147), 1,
      anon_sym_LBRACK,
    ACTIONS(8149), 1,
      anon_sym_STAR,
    ACTIONS(8151), 1,
      sym_delegate,
    ACTIONS(8153), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3604), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7982), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7980), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [27793] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7769), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7767), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [27855] = 16,
    ACTIONS(3289), 1,
      sym_mixin,
    ACTIONS(3299), 1,
      sym_typeof,
    ACTIONS(3301), 1,
      sym_traits,
    ACTIONS(8155), 1,
      sym_identifier,
    ACTIONS(8157), 1,
      anon_sym_DOT,
    ACTIONS(8161), 1,
      sym_class,
    ACTIONS(8163), 1,
      sym_vector,
    STATE(3808), 1,
      aux_sym_type_repeat1,
    STATE(3809), 1,
      sym_template_instance,
    STATE(3810), 1,
      sym_typeof_expression,
    STATE(3872), 1,
      sym_type,
    STATE(4245), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(3609), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8159), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [27943] = 8,
    ACTIONS(8147), 1,
      anon_sym_LBRACK,
    ACTIONS(8151), 1,
      sym_delegate,
    ACTIONS(8153), 1,
      sym_function,
    ACTIONS(8165), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3606), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7982), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7980), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [28015] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8169), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8167), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [28077] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8173), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8171), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [28139] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6661), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6663), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [28201] = 5,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    STATE(3443), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8177), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8175), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [28267] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6675), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6677), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [28329] = 8,
    ACTIONS(8179), 1,
      anon_sym_LBRACK,
    ACTIONS(8182), 1,
      anon_sym_STAR,
    ACTIONS(8185), 1,
      sym_delegate,
    ACTIONS(8188), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3604), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7998), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7996), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [28401] = 4,
    ACTIONS(8195), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8191), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [28465] = 8,
    ACTIONS(8147), 1,
      anon_sym_LBRACK,
    ACTIONS(8149), 1,
      anon_sym_STAR,
    ACTIONS(8151), 1,
      sym_delegate,
    ACTIONS(8153), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3604), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7961), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7959), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [28537] = 13,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(8197), 1,
      anon_sym_DOT,
    ACTIONS(8200), 1,
      anon_sym_LBRACK,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7908), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7897), 14,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [28619] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8191), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [28681] = 8,
    ACTIONS(8147), 1,
      anon_sym_LBRACK,
    ACTIONS(8151), 1,
      sym_delegate,
    ACTIONS(8153), 1,
      sym_function,
    ACTIONS(8204), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3595), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7973), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7971), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [28753] = 4,
    ACTIONS(8012), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7940), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [28817] = 7,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    ACTIONS(8206), 1,
      anon_sym_DOT,
    ACTIONS(8208), 1,
      anon_sym_LBRACK,
    STATE(3520), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7940), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [28887] = 12,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(8031), 1,
      anon_sym_DOT,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8210), 1,
      anon_sym_EQ_GT,
    STATE(3520), 1,
      sym_template_arguments,
    STATE(3944), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [28967] = 13,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [29049] = 16,
    ACTIONS(195), 1,
      sym_typeof,
    ACTIONS(207), 1,
      sym_traits,
    ACTIONS(2970), 1,
      sym_mixin,
    ACTIONS(8212), 1,
      sym_identifier,
    ACTIONS(8214), 1,
      anon_sym_DOT,
    ACTIONS(8218), 1,
      sym_class,
    ACTIONS(8220), 1,
      sym_vector,
    STATE(3610), 1,
      sym_template_instance,
    STATE(3615), 1,
      sym_typeof_expression,
    STATE(3648), 1,
      sym_type,
    STATE(3788), 1,
      aux_sym_type_repeat1,
    STATE(4261), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(3491), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8216), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [29137] = 4,
    ACTIONS(8222), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8050), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [29201] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8226), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8224), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [29263] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6669), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6671), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [29325] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6665), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(6667), 36,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      anon_sym_AT,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
      sym_nothrow,
      sym_pure,
  [29387] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8230), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8228), 37,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [29449] = 13,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(7989), 1,
      anon_sym_RBRACK,
    ACTIONS(8031), 1,
      anon_sym_DOT,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8040), 1,
      anon_sym_EQ_GT,
    STATE(3520), 1,
      sym_template_arguments,
    STATE(3944), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [29531] = 8,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(8236), 1,
      anon_sym_DOT,
    ACTIONS(8240), 1,
      anon_sym_LBRACK,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8238), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8234), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8232), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [29602] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5709), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [29687] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5711), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [29772] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5663), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [29857] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5577), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [29942] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6878), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30027] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5643), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30112] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6246), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30197] = 8,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(8236), 1,
      anon_sym_DOT,
    ACTIONS(8240), 1,
      anon_sym_LBRACK,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8238), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8244), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8242), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [30268] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8032), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30353] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5801), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30438] = 4,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8248), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8246), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [30501] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6912), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30586] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6915), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30671] = 10,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7930), 1,
      anon_sym_DOT,
    ACTIONS(7933), 1,
      anon_sym_LPAREN,
    ACTIONS(7936), 1,
      anon_sym_LBRACK,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    STATE(3443), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [30746] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7506), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30831] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6569), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [30916] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7512), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31001] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7674), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31086] = 7,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    ACTIONS(8250), 1,
      anon_sym_DOT,
    ACTIONS(8252), 1,
      anon_sym_LBRACK,
    STATE(3552), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7940), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [31155] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7493), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31240] = 8,
    ACTIONS(8254), 1,
      anon_sym_LBRACK,
    ACTIONS(8256), 1,
      anon_sym_STAR,
    ACTIONS(8258), 1,
      sym_delegate,
    ACTIONS(8260), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3653), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7961), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7959), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [31311] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6790), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31396] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7528), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31481] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6889), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31566] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5699), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31651] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6825), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31736] = 4,
    STATE(3846), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8264), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8262), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [31799] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5921), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31884] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7154), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [31969] = 4,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8268), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8266), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [32032] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7532), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32117] = 8,
    ACTIONS(8270), 1,
      anon_sym_LBRACK,
    ACTIONS(8273), 1,
      anon_sym_STAR,
    ACTIONS(8276), 1,
      sym_delegate,
    ACTIONS(8279), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3653), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7998), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7996), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [32188] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6469), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32273] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6341), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32358] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7158), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32443] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5667), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32528] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5706), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32613] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6832), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32698] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6474), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32783] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5580), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32868] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5623), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [32953] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6925), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33038] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6842), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33123] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6520), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33208] = 8,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(8236), 1,
      anon_sym_DOT,
    ACTIONS(8240), 1,
      anon_sym_LBRACK,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8238), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8284), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8282), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [33279] = 8,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(8236), 1,
      anon_sym_DOT,
    ACTIONS(8240), 1,
      anon_sym_LBRACK,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8238), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8288), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8286), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [33350] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6464), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33435] = 10,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    ACTIONS(7936), 1,
      anon_sym_LBRACK,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(8290), 1,
      anon_sym_DOT,
    STATE(3520), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7933), 2,
      anon_sym_LPAREN,
      anon_sym_RBRACK,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [33510] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6483), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33595] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5563), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33680] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6522), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33765] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6635), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33850] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5575), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [33935] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5774), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34020] = 8,
    ACTIONS(8254), 1,
      anon_sym_LBRACK,
    ACTIONS(8258), 1,
      sym_delegate,
    ACTIONS(8260), 1,
      sym_function,
    ACTIONS(8293), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3642), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7982), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7980), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [34091] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6931), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34176] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6606), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34261] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5573), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34346] = 4,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8297), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8295), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [34409] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5617), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34494] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6533), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34579] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7979), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34664] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(8022), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34749] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7600), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34834] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6637), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [34919] = 8,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(8236), 1,
      anon_sym_DOT,
    ACTIONS(8240), 1,
      anon_sym_LBRACK,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8238), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8301), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8299), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [34990] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7621), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35075] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5604), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35160] = 8,
    ACTIONS(8254), 1,
      anon_sym_LBRACK,
    ACTIONS(8256), 1,
      anon_sym_STAR,
    ACTIONS(8258), 1,
      sym_delegate,
    ACTIONS(8260), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3653), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7982), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7980), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [35231] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5568), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35316] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7995), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35401] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5626), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35486] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5641), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35571] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5660), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35656] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5702), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35741] = 8,
    ACTIONS(8050), 1,
      anon_sym_COLON,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8303), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [35812] = 5,
    ACTIONS(8306), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3062), 2,
      anon_sym_LPAREN,
      anon_sym_AT,
    ACTIONS(8308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
    ACTIONS(3060), 44,
      sym_identifier,
      anon_sym_DOT,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_auto,
      sym_final,
      sym_in,
      sym_inout,
      sym_lazy,
      sym_mixin,
      sym_out,
      sym_ref,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [35877] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6866), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [35962] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6991), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36047] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7623), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36132] = 8,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(8236), 1,
      anon_sym_DOT,
    ACTIONS(8240), 1,
      anon_sym_LBRACK,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8238), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8248), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8246), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [36203] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5994), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36288] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5571), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36373] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6785), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36458] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(8311), 1,
      sym_identifier,
    ACTIONS(8313), 1,
      anon_sym_DOT,
    ACTIONS(8317), 1,
      sym_mixin,
    ACTIONS(8319), 1,
      sym_traits,
    STATE(3779), 1,
      aux_sym_type_repeat1,
    STATE(4270), 1,
      sym_type_ctor,
    STATE(5159), 1,
      sym_typeof_expression,
    STATE(5200), 1,
      sym_template_instance,
    STATE(5616), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5121), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8315), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36543] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6725), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36628] = 12,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(7904), 1,
      anon_sym_LBRACK,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(8321), 1,
      anon_sym_EQ_GT,
    STATE(3443), 1,
      sym_template_arguments,
    STATE(3828), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [36707] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5874), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36792] = 10,
    ACTIONS(7933), 1,
      anon_sym_LPAREN,
    ACTIONS(7936), 1,
      anon_sym_LBRACK,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    ACTIONS(8290), 1,
      anon_sym_DOT,
    STATE(3552), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [36867] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5594), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [36952] = 10,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    ACTIONS(7933), 1,
      anon_sym_LPAREN,
    ACTIONS(7936), 1,
      anon_sym_LBRACK,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(8290), 1,
      anon_sym_DOT,
    STATE(3520), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [37027] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6476), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37112] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5610), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37197] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6442), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37282] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(8323), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7234), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37367] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6596), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37452] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7658), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37537] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(8311), 1,
      sym_identifier,
    ACTIONS(8313), 1,
      anon_sym_DOT,
    ACTIONS(8317), 1,
      sym_mixin,
    ACTIONS(8319), 1,
      sym_traits,
    STATE(3779), 1,
      aux_sym_type_repeat1,
    STATE(4270), 1,
      sym_type_ctor,
    STATE(5159), 1,
      sym_typeof_expression,
    STATE(5200), 1,
      sym_template_instance,
    STATE(5644), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5121), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8315), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37622] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6862), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37707] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7822), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37792] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6852), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37877] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7467), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [37962] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7641), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38047] = 10,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(7930), 1,
      anon_sym_DOT,
    ACTIONS(7936), 1,
      anon_sym_LBRACK,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    STATE(3443), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7933), 3,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [38122] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5725), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38207] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7758), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38292] = 8,
    ACTIONS(8254), 1,
      anon_sym_LBRACK,
    ACTIONS(8258), 1,
      sym_delegate,
    ACTIONS(8260), 1,
      sym_function,
    ACTIONS(8325), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3690), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7973), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7971), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [38363] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6691), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38448] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6106), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38533] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6681), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38618] = 15,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(3159), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(8327), 1,
      sym_identifier,
    ACTIONS(8329), 1,
      anon_sym_DOT,
    ACTIONS(8333), 1,
      sym_typeof,
    STATE(3783), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5190), 1,
      sym_template_instance,
    STATE(5197), 1,
      sym_typeof_expression,
    STATE(6136), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5108), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8331), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38703] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6670), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38788] = 15,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(3159), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(8327), 1,
      sym_identifier,
    ACTIONS(8329), 1,
      anon_sym_DOT,
    ACTIONS(8333), 1,
      sym_typeof,
    STATE(3783), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5190), 1,
      sym_template_instance,
    STATE(5197), 1,
      sym_typeof_expression,
    STATE(5886), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5108), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8331), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38873] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7820), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [38958] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6491), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39043] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6820), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39128] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6839), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39213] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5670), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39298] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(8311), 1,
      sym_identifier,
    ACTIONS(8313), 1,
      anon_sym_DOT,
    ACTIONS(8317), 1,
      sym_mixin,
    ACTIONS(8319), 1,
      sym_traits,
    STATE(3779), 1,
      aux_sym_type_repeat1,
    STATE(4270), 1,
      sym_type_ctor,
    STATE(5159), 1,
      sym_typeof_expression,
    STATE(5200), 1,
      sym_template_instance,
    STATE(5718), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5121), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8315), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39383] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7744), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39468] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6844), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39553] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6591), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39638] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6572), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39723] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7718), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39808] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6869), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39893] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6730), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [39978] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5685), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40063] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(5931), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40148] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6818), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40233] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7138), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40318] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6042), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40403] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6879), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40488] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6751), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40573] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6309), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40658] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5570), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40743] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5686), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40828] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5625), 1,
      sym_base_class,
    STATE(5708), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40913] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6841), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [40998] = 15,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(5584), 1,
      sym__base_class_list,
    STATE(5625), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41083] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7129), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41168] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6605), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41253] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6220), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41338] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6278), 1,
      sym_base_class,
    STATE(6611), 1,
      sym__base_class_list,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41423] = 15,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(3799), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(7704), 1,
      sym_type,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4997), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(21), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41508] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8337), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8335), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [41568] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8341), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8339), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [41628] = 14,
    ACTIONS(3147), 1,
      sym_mixin,
    ACTIONS(3155), 1,
      sym_typeof,
    ACTIONS(3157), 1,
      sym_traits,
    ACTIONS(8117), 1,
      sym_identifier,
    ACTIONS(8119), 1,
      anon_sym_DOT,
    ACTIONS(8125), 1,
      sym_vector,
    STATE(3873), 1,
      sym_template_instance,
    STATE(3874), 1,
      sym_typeof_expression,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4266), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(3676), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8343), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41710] = 5,
    ACTIONS(8345), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3091), 3,
      sym_catch,
      sym_finally,
      sym_while,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [41774] = 14,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    STATE(6168), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [41856] = 8,
    ACTIONS(7940), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8110), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7942), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7933), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7928), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7926), 24,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [41926] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8065), 22,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8067), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [41986] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4480), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(4482), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [42046] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4598), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(4600), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [42106] = 8,
    ACTIONS(7940), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7986), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7908), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 24,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [42176] = 5,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    STATE(3520), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8177), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8175), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [42240] = 7,
    ACTIONS(8050), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8052), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8047), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 24,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [42308] = 8,
    ACTIONS(8050), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8348), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8052), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8047), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 24,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [42378] = 14,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(8311), 1,
      sym_identifier,
    ACTIONS(8313), 1,
      anon_sym_DOT,
    ACTIONS(8317), 1,
      sym_mixin,
    ACTIONS(8319), 1,
      sym_traits,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4270), 1,
      sym_type_ctor,
    STATE(5159), 1,
      sym_typeof_expression,
    STATE(5200), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5103), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8351), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [42460] = 14,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    STATE(6168), 1,
      sym_base_class,
    STATE(7341), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(6294), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(7924), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [42542] = 14,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(8353), 1,
      sym_identifier,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4990), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8355), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [42624] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8061), 22,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8063), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [42684] = 14,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(3159), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(8327), 1,
      sym_identifier,
    ACTIONS(8329), 1,
      anon_sym_DOT,
    ACTIONS(8333), 1,
      sym_typeof,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5190), 1,
      sym_template_instance,
    STATE(5197), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5104), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8357), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [42766] = 6,
    ACTIONS(8137), 1,
      anon_sym_AT,
    ACTIONS(8362), 1,
      anon_sym_DOT,
    ACTIONS(8365), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8133), 8,
      sym_auto,
      sym_final,
      sym_in,
      sym_lazy,
      sym_out,
      sym_ref,
      sym_return,
      sym_scope,
    ACTIONS(8359), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [42832] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8025), 22,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8027), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [42892] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8055), 22,
      sym_identifier,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
    ACTIONS(8057), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [42952] = 4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3076), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
    ACTIONS(3078), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3080), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43014] = 14,
    ACTIONS(195), 1,
      sym_typeof,
    ACTIONS(207), 1,
      sym_traits,
    ACTIONS(2970), 1,
      sym_mixin,
    ACTIONS(8212), 1,
      sym_identifier,
    ACTIONS(8214), 1,
      anon_sym_DOT,
    ACTIONS(8220), 1,
      sym_vector,
    STATE(3610), 1,
      sym_template_instance,
    STATE(3615), 1,
      sym_typeof_expression,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4261), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(3494), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8367), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [43096] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8371), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8369), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43156] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8375), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8373), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43216] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8379), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8377), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43276] = 6,
    ACTIONS(6885), 1,
      anon_sym_LPAREN,
    ACTIONS(8137), 1,
      anon_sym_AT,
    ACTIONS(8362), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8133), 8,
      sym_auto,
      sym_final,
      sym_in,
      sym_lazy,
      sym_out,
      sym_ref,
      sym_return,
      sym_scope,
    ACTIONS(8359), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [43342] = 5,
    ACTIONS(8137), 1,
      anon_sym_AT,
    ACTIONS(8306), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8381), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
    ACTIONS(8133), 44,
      sym_identifier,
      anon_sym_DOT,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_auto,
      sym_final,
      sym_in,
      sym_inout,
      sym_lazy,
      sym_mixin,
      sym_out,
      sym_ref,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [43406] = 8,
    ACTIONS(8050), 1,
      anon_sym_COLON,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8384), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [43476] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8389), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8387), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43536] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8393), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8391), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43596] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8397), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8395), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43656] = 8,
    ACTIONS(8050), 1,
      anon_sym_COLON,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8399), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [43726] = 14,
    ACTIONS(13), 1,
      anon_sym_DOT,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7237), 1,
      sym_identifier,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5007), 1,
      sym_typeof_expression,
    STATE(5035), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4990), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8355), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [43808] = 5,
    ACTIONS(7885), 1,
      anon_sym_BANG,
    STATE(3520), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8130), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8127), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43872] = 4,
    ACTIONS(8402), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8191), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [43934] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8406), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8404), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [43994] = 10,
    ACTIONS(7851), 1,
      anon_sym_BANG,
    ACTIONS(8408), 1,
      anon_sym_DOT,
    ACTIONS(8411), 1,
      anon_sym_LBRACK,
    STATE(3443), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7942), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7933), 3,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7928), 14,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44068] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8417), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8415), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44128] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8421), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8419), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44188] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8425), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8423), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44248] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8429), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8427), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44308] = 14,
    ACTIONS(3289), 1,
      sym_mixin,
    ACTIONS(3299), 1,
      sym_typeof,
    ACTIONS(3301), 1,
      sym_traits,
    ACTIONS(8155), 1,
      sym_identifier,
    ACTIONS(8157), 1,
      anon_sym_DOT,
    ACTIONS(8163), 1,
      sym_vector,
    STATE(3809), 1,
      sym_template_instance,
    STATE(3810), 1,
      sym_typeof_expression,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4245), 1,
      sym_type_ctor,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(3598), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8431), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [44390] = 4,
    ACTIONS(8206), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7940), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [44452] = 4,
    ACTIONS(8433), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8050), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [44514] = 4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3109), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44576] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8230), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8228), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [44636] = 4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3121), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44698] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8437), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8435), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44758] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8061), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8063), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [44818] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8173), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8171), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [44878] = 4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3115), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [44940] = 14,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(3159), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7201), 1,
      sym_typeof,
    ACTIONS(7563), 1,
      sym_identifier,
    ACTIONS(7703), 1,
      anon_sym_DOT,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5080), 1,
      sym_typeof_expression,
    STATE(5081), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5065), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8439), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [45022] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8226), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8224), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [45082] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8169), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8167), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [45142] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8443), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8441), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45202] = 5,
    ACTIONS(8445), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3091), 3,
      sym_catch,
      sym_finally,
      sym_while,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45266] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8130), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8127), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45326] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8451), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8449), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45386] = 8,
    ACTIONS(8050), 1,
      anon_sym_COLON,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8453), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [45456] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7656), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7654), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [45516] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8145), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8143), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [45576] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45636] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8462), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8460), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45696] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8191), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [45756] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45816] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [45876] = 14,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(75), 1,
      sym_traits,
    ACTIONS(77), 1,
      sym_vector,
    ACTIONS(6631), 1,
      sym_mixin,
    ACTIONS(7499), 1,
      sym_identifier,
    ACTIONS(7501), 1,
      anon_sym_DOT,
    STATE(4230), 1,
      aux_sym_type_repeat1,
    STATE(4242), 1,
      sym_type_ctor,
    STATE(5047), 1,
      sym_template_instance,
    STATE(5052), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2964), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(5087), 6,
      sym__type2,
      sym_vector_type,
      sym__builtin_type,
      sym__qualified_id,
      sym_mixin_expression,
      sym_traits_expression,
    ACTIONS(8464), 31,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_void,
  [45958] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8468), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8466), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46018] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8472), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8470), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46078] = 8,
    ACTIONS(8050), 1,
      anon_sym_COLON,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8474), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 17,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
      sym_in,
      sym_is,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [46148] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8065), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8067), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [46208] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8025), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8027), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [46268] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8108), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8106), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [46328] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8104), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8102), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [46388] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7674), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7672), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [46448] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8479), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8477), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46508] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8483), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8481), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46568] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8487), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8485), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46628] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8491), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8489), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46688] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8495), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8493), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46748] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8055), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8057), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [46808] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8177), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8175), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46868] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8499), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8497), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46928] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8503), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8501), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [46988] = 4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3067), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47050] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8507), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8505), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47110] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8511), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8509), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47170] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8515), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8513), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47230] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8519), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8517), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47290] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8523), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8521), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47350] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8527), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8525), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47410] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8531), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8529), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47470] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8535), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8533), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47530] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8539), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8537), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47590] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8543), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8541), 35,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47650] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8191), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [47709] = 12,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 26,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [47786] = 7,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(8031), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47853] = 6,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47918] = 7,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8567), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [47985] = 4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3170), 4,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48046] = 8,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8570), 1,
      anon_sym_DOT,
    ACTIONS(8574), 1,
      anon_sym_LBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8572), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8248), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8246), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48115] = 4,
    ACTIONS(8576), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8191), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [48176] = 6,
    ACTIONS(8578), 1,
      anon_sym_LPAREN,
    STATE(4463), 1,
      sym_parameters,
    STATE(6615), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48241] = 4,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8268), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8266), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48302] = 4,
    STATE(3985), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8264), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8262), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48363] = 4,
    ACTIONS(8250), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7940), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [48424] = 4,
    ACTIONS(8581), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8050), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [48485] = 18,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8587), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8593), 1,
      anon_sym_QMARK,
    ACTIONS(8595), 1,
      anon_sym_EQ,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8583), 10,
      anon_sym_RBRACE,
      anon_sym_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8585), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [48574] = 4,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8297), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8295), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48635] = 7,
    ACTIONS(7930), 1,
      anon_sym_DOT,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7933), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48702] = 7,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48769] = 6,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48834] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8173), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8171), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [48893] = 7,
    ACTIONS(8044), 1,
      anon_sym_DOT,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [48960] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8230), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8228), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [49019] = 7,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49086] = 7,
    ACTIONS(8044), 1,
      anon_sym_DOT,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(8047), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49153] = 6,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49218] = 6,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(8047), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49283] = 7,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49350] = 7,
    ACTIONS(7899), 1,
      anon_sym_DOT,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49417] = 5,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49480] = 7,
    ACTIONS(7930), 1,
      anon_sym_DOT,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7933), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49547] = 14,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 26,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [49628] = 13,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 26,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [49707] = 8,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8570), 1,
      anon_sym_DOT,
    ACTIONS(8574), 1,
      anon_sym_LBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8572), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8284), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8282), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [49776] = 15,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 25,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [49859] = 11,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8627), 26,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [49934] = 8,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8570), 1,
      anon_sym_DOT,
    ACTIONS(8574), 1,
      anon_sym_LBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8572), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8288), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8286), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50003] = 18,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8587), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8593), 1,
      anon_sym_QMARK,
    ACTIONS(8595), 1,
      anon_sym_EQ,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8631), 10,
      anon_sym_RBRACE,
      anon_sym_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8585), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [50092] = 4,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50153] = 7,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 34,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50220] = 4,
    ACTIONS(8641), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8137), 2,
      anon_sym_DOT,
      anon_sym_AT,
    ACTIONS(8133), 47,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_auto,
      sym_const,
      sym_final,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_lazy,
      sym_mixin,
      sym_out,
      sym_return,
      sym_scope,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [50281] = 8,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8570), 1,
      anon_sym_DOT,
    ACTIONS(8574), 1,
      anon_sym_LBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8572), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8244), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8242), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50350] = 7,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(8290), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7933), 3,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50417] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7674), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7672), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [50476] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8104), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8102), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [50535] = 17,
    ACTIONS(8397), 1,
      anon_sym_EQ,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8587), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8593), 1,
      anon_sym_QMARK,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8395), 23,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [50622] = 7,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8567), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(8047), 3,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50689] = 8,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8570), 1,
      anon_sym_DOT,
    ACTIONS(8574), 1,
      anon_sym_LBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8572), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8301), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8299), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50758] = 4,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8248), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8246), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50819] = 5,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    STATE(3552), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8177), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8175), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50882] = 6,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(8047), 3,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [50947] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8108), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8106), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [51006] = 8,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(8570), 1,
      anon_sym_DOT,
    ACTIONS(8574), 1,
      anon_sym_LBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8572), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8234), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8232), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [51075] = 7,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(8290), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7933), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [51142] = 7,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(8031), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 3,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 28,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [51209] = 7,
    ACTIONS(7942), 1,
      anon_sym_STAR,
    ACTIONS(8290), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7933), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7928), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [51276] = 17,
    ACTIONS(8379), 1,
      anon_sym_EQ,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8587), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8593), 1,
      anon_sym_QMARK,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8377), 23,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [51363] = 5,
    ACTIONS(7947), 1,
      anon_sym_BANG,
    STATE(3552), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8130), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8127), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [51426] = 17,
    ACTIONS(8375), 1,
      anon_sym_EQ,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8587), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8593), 1,
      anon_sym_QMARK,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8373), 23,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [51513] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8145), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8143), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [51572] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7656), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7654), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [51631] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8137), 2,
      anon_sym_DOT,
      anon_sym_AT,
    ACTIONS(8133), 48,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_auto,
      sym_const,
      sym_final,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_lazy,
      sym_mixin,
      sym_out,
      sym_ref,
      sym_return,
      sym_scope,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [51690] = 7,
    ACTIONS(7908), 1,
      anon_sym_STAR,
    ACTIONS(8031), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [51757] = 17,
    ACTIONS(8371), 1,
      anon_sym_EQ,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8587), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8593), 1,
      anon_sym_QMARK,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8369), 23,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [51844] = 17,
    ACTIONS(8549), 1,
      anon_sym_AMP,
    ACTIONS(8563), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8587), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8589), 1,
      anon_sym_PIPE,
    ACTIONS(8591), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8593), 1,
      anon_sym_QMARK,
    ACTIONS(8597), 1,
      anon_sym_CARET,
    ACTIONS(8646), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8555), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8557), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8561), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8547), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8553), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8559), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8565), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8644), 23,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [51931] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8226), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8224), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [51990] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8169), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8167), 33,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_delegate,
      sym_function,
      sym_in,
      sym_is,
  [52049] = 7,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(8567), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52116] = 6,
    ACTIONS(8052), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8047), 2,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52181] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8337), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8335), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52239] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8527), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8525), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52297] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8437), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8435), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52355] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4598), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(4600), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52413] = 8,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(8648), 1,
      anon_sym_DOT,
    ACTIONS(8652), 1,
      anon_sym_LBRACK,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8650), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8284), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8282), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52481] = 8,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(8648), 1,
      anon_sym_DOT,
    ACTIONS(8652), 1,
      anon_sym_LBRACK,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8650), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8288), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8286), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52549] = 8,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(8648), 1,
      anon_sym_DOT,
    ACTIONS(8652), 1,
      anon_sym_LBRACK,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8650), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8234), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8232), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52617] = 5,
    ACTIONS(3091), 1,
      sym_while,
    ACTIONS(8654), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52679] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8539), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8537), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52737] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8535), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8533), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52795] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4480), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(4482), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52853] = 6,
    ACTIONS(8658), 1,
      anon_sym_LPAREN,
    STATE(4416), 1,
      sym_parameters,
    STATE(6704), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52917] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8425), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8423), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [52975] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8130), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8127), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53033] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8443), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8441), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53091] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53149] = 4,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8268), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8266), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53209] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8503), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8501), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53267] = 6,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(8052), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(8047), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 14,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53331] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8379), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8377), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53389] = 4,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8248), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8246), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53449] = 7,
    ACTIONS(8197), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7908), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7989), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 14,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53515] = 4,
    STATE(4015), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8264), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8262), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53575] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8451), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8449), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53633] = 7,
    ACTIONS(8408), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      sym_delegate,
      sym_function,
    ACTIONS(7942), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(7933), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7928), 14,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7926), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53699] = 4,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8297), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8295), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53759] = 8,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(8648), 1,
      anon_sym_DOT,
    ACTIONS(8652), 1,
      anon_sym_LBRACK,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8650), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8244), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8242), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53827] = 6,
    ACTIONS(8661), 1,
      anon_sym_LPAREN,
    STATE(4421), 1,
      sym_parameters,
    STATE(6458), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53891] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8375), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8373), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [53949] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8462), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8460), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54007] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8472), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8470), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54065] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8479), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8477), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54123] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8543), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8541), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54181] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8341), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8339), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54239] = 7,
    ACTIONS(8664), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 2,
      sym_delegate,
      sym_function,
    ACTIONS(8052), 2,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(8047), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(7897), 14,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54305] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8371), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8369), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54363] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8523), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8521), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54421] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8483), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8481), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54479] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8417), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8415), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54537] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8389), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8387), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54595] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8406), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8404), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54653] = 5,
    ACTIONS(3091), 1,
      sym_while,
    ACTIONS(8667), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3070), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54715] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3098), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3100), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54773] = 5,
    ACTIONS(3076), 1,
      sym_while,
    ACTIONS(8404), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8670), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8673), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54835] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8519), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8517), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54893] = 6,
    ACTIONS(8676), 1,
      anon_sym_LPAREN,
    STATE(4465), 1,
      sym_parameters,
    STATE(6473), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [54957] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3102), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3104), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55015] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8393), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8391), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55073] = 8,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(8648), 1,
      anon_sym_DOT,
    ACTIONS(8652), 1,
      anon_sym_LBRACK,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8650), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8301), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8299), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55141] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8499), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8497), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55199] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8177), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8175), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55257] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55315] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3070), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55373] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55431] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8429), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8427), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55489] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8531), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8529), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55547] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8495), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8493), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55605] = 6,
    ACTIONS(8679), 1,
      anon_sym_LPAREN,
    STATE(4538), 1,
      sym_parameters,
    STATE(6898), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55669] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8397), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8395), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55727] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8491), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8489), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55785] = 8,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(8648), 1,
      anon_sym_DOT,
    ACTIONS(8652), 1,
      anon_sym_LBRACK,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8650), 2,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
    ACTIONS(8248), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8246), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55853] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8515), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8513), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55911] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8487), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8485), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [55969] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8511), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8509), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56027] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8468), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8466), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56085] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8507), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8505), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56143] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8421), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8419), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56201] = 17,
    ACTIONS(8646), 1,
      anon_sym_EQ,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8686), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8702), 1,
      anon_sym_QMARK,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8644), 21,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [56286] = 19,
    ACTIONS(8714), 1,
      anon_sym_DOT,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8718), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8734), 1,
      anon_sym_QMARK,
    ACTIONS(8736), 1,
      anon_sym_EQ,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8631), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(8712), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [56375] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56432] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56489] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8468), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8466), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56546] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8393), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8391), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56603] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8389), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8387), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56660] = 4,
    ACTIONS(8744), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56719] = 17,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8718), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8734), 1,
      anon_sym_QMARK,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8379), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8377), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [56804] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8458), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8456), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56861] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8483), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8481), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56918] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8487), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8485), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [56975] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8515), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8513), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57032] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8337), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8335), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57089] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8511), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8509), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57146] = 19,
    ACTIONS(8751), 1,
      anon_sym_DOT,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8755), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8771), 1,
      anon_sym_QMARK,
    ACTIONS(8773), 1,
      anon_sym_EQ,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8583), 7,
      anon_sym_DOT_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
    ACTIONS(8749), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [57235] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8507), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8505), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57292] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8491), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8489), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57349] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8421), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8419), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57406] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8495), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8493), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57463] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3070), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3072), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57520] = 7,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57585] = 7,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57650] = 4,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57709] = 7,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57774] = 19,
    ACTIONS(8714), 1,
      anon_sym_DOT,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8755), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8771), 1,
      anon_sym_QMARK,
    ACTIONS(8773), 1,
      anon_sym_EQ,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8631), 7,
      anon_sym_DOT_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
    ACTIONS(8749), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [57863] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8479), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8477), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [57920] = 11,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8629), 5,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8627), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [57993] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8462), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8460), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58050] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8472), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8470), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58107] = 15,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8625), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [58188] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4598), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(4600), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58245] = 4,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58304] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8451), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8449), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58361] = 13,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8621), 3,
      anon_sym_DOT,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [58438] = 17,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8755), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8771), 1,
      anon_sym_QMARK,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8397), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8395), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [58523] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8130), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8127), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58580] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8503), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8501), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58637] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8531), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8529), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58694] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3102), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3104), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58751] = 14,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8617), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [58830] = 5,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 13,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58891] = 7,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [58956] = 19,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8718), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8734), 1,
      anon_sym_QMARK,
    ACTIONS(8736), 1,
      anon_sym_EQ,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8751), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8583), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
    ACTIONS(8712), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [59045] = 12,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8551), 4,
      anon_sym_DOT,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [59120] = 17,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8718), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8734), 1,
      anon_sym_QMARK,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8375), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8373), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [59205] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8425), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8423), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59262] = 17,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8755), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8771), 1,
      anon_sym_QMARK,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8379), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8377), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [59347] = 6,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 10,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59410] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8375), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8373), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59467] = 17,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8755), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8771), 1,
      anon_sym_QMARK,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8375), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8373), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [59552] = 7,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59617] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8417), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8415), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59674] = 12,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8551), 4,
      anon_sym_DOT,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [59749] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8406), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8404), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59806] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8437), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8435), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59863] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8341), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8339), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59920] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8177), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8175), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [59977] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8543), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8541), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60034] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8499), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8497), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60091] = 18,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8686), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8702), 1,
      anon_sym_QMARK,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8783), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8583), 8,
      anon_sym_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
    ACTIONS(8781), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [60178] = 12,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 24,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [60253] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8539), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8537), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60310] = 7,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60375] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4480), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(4482), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60432] = 6,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60495] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8371), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8369), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60552] = 17,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8718), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8734), 1,
      anon_sym_QMARK,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8371), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8369), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [60637] = 17,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8718), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8734), 1,
      anon_sym_QMARK,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8646), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8644), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [60722] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8379), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8377), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60779] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8535), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8533), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60836] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3098), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(3100), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [60893] = 17,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8755), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8771), 1,
      anon_sym_QMARK,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8646), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8644), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [60978] = 7,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [61043] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8397), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8395), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [61100] = 17,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8718), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8734), 1,
      anon_sym_QMARK,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8397), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8395), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [61185] = 5,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [61246] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 24,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [61325] = 13,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 24,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [61402] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8429), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8427), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [61459] = 11,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8629), 5,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8627), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [61532] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8527), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8525), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [61589] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8523), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8521), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [61646] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [61727] = 11,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 24,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [61800] = 18,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8686), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8702), 1,
      anon_sym_QMARK,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8783), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8631), 8,
      anon_sym_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
    ACTIONS(8781), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [61887] = 7,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [61952] = 4,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [62011] = 7,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 32,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [62076] = 15,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8722), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8625), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62157] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8519), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8517), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [62214] = 13,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8621), 3,
      anon_sym_DOT,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62291] = 17,
    ACTIONS(8371), 1,
      anon_sym_EQ,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8686), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8702), 1,
      anon_sym_QMARK,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8369), 21,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62376] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8443), 17,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8441), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [62433] = 17,
    ACTIONS(8753), 1,
      anon_sym_AMP,
    ACTIONS(8755), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8757), 1,
      anon_sym_PIPE,
    ACTIONS(8759), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8771), 1,
      anon_sym_QMARK,
    ACTIONS(8775), 1,
      anon_sym_CARET,
    ACTIONS(8777), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8371), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8763), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8765), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8769), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8747), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8761), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8767), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8779), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8369), 20,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62518] = 17,
    ACTIONS(8375), 1,
      anon_sym_EQ,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8686), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8702), 1,
      anon_sym_QMARK,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8373), 21,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62603] = 6,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 10,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [62666] = 17,
    ACTIONS(8379), 1,
      anon_sym_EQ,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8686), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8702), 1,
      anon_sym_QMARK,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8377), 21,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62751] = 17,
    ACTIONS(8397), 1,
      anon_sym_EQ,
    ACTIONS(8684), 1,
      anon_sym_AMP,
    ACTIONS(8686), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8688), 1,
      anon_sym_PIPE,
    ACTIONS(8690), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8702), 1,
      anon_sym_QMARK,
    ACTIONS(8704), 1,
      anon_sym_CARET,
    ACTIONS(8706), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8694), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8696), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8700), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8682), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8692), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8698), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8708), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8395), 21,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62836] = 14,
    ACTIONS(8716), 1,
      anon_sym_AMP,
    ACTIONS(8720), 1,
      anon_sym_PIPE,
    ACTIONS(8738), 1,
      anon_sym_CARET,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8617), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8726), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8728), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8732), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8724), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8730), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8742), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 23,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [62915] = 5,
    ACTIONS(8740), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8710), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 13,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [62976] = 11,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8629), 5,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8627), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [63048] = 4,
    ACTIONS(8801), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63106] = 7,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63170] = 5,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 13,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63230] = 7,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63294] = 17,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8806), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8812), 1,
      anon_sym_QMARK,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8379), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8377), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [63378] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8429), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8427), 31,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63434] = 6,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 10,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63496] = 17,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8806), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8812), 1,
      anon_sym_QMARK,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8375), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8373), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [63580] = 12,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8551), 4,
      anon_sym_DOT,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [63654] = 7,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 7,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63718] = 19,
    ACTIONS(8751), 1,
      anon_sym_DOT,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8806), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8812), 1,
      anon_sym_QMARK,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(8818), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8583), 6,
      anon_sym_DOT_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
    ACTIONS(8816), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [63806] = 6,
    ACTIONS(8822), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4109), 2,
      sym_type_ctor,
      aux_sym_foreach_type_repeat1,
    ACTIONS(8824), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    ACTIONS(8827), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(8820), 36,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_mixin,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [63868] = 4,
    ACTIONS(8830), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63926] = 4,
    ACTIONS(8833), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [63984] = 4,
    ACTIONS(8836), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7897), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(7895), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [64042] = 17,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8806), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8812), 1,
      anon_sym_QMARK,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8397), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8395), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64126] = 4,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 16,
      anon_sym_SLASH,
      anon_sym_DOT,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [64184] = 19,
    ACTIONS(8714), 1,
      anon_sym_DOT,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8806), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8812), 1,
      anon_sym_QMARK,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(8818), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8631), 6,
      anon_sym_DOT_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
    ACTIONS(8816), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64272] = 13,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8621), 3,
      anon_sym_DOT,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64348] = 15,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8625), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 21,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64428] = 14,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8617), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64506] = 17,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8806), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8812), 1,
      anon_sym_QMARK,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8371), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8369), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64590] = 17,
    ACTIONS(8797), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8804), 1,
      anon_sym_AMP,
    ACTIONS(8806), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8808), 1,
      anon_sym_PIPE,
    ACTIONS(8810), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8812), 1,
      anon_sym_QMARK,
    ACTIONS(8814), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8646), 2,
      anon_sym_DOT,
      anon_sym_EQ,
    ACTIONS(8789), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8791), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8795), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8785), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8787), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8793), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8799), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8644), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64674] = 12,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64747] = 13,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64822] = 17,
    ACTIONS(8397), 1,
      anon_sym_EQ,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8859), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8865), 1,
      anon_sym_QMARK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8395), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64905] = 17,
    ACTIONS(8379), 1,
      anon_sym_EQ,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8859), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8865), 1,
      anon_sym_QMARK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8377), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [64988] = 17,
    ACTIONS(8375), 1,
      anon_sym_EQ,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8859), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8865), 1,
      anon_sym_QMARK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8373), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [65071] = 17,
    ACTIONS(8371), 1,
      anon_sym_EQ,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8859), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8865), 1,
      anon_sym_QMARK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8369), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [65154] = 17,
    ACTIONS(8646), 1,
      anon_sym_EQ,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8859), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8865), 1,
      anon_sym_QMARK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8644), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [65237] = 18,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8859), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8865), 1,
      anon_sym_QMARK,
    ACTIONS(8869), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8583), 6,
      anon_sym_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
    ACTIONS(8867), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [65322] = 7,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [65385] = 6,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [65446] = 7,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [65509] = 4,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [65566] = 7,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [65629] = 5,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 30,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [65688] = 18,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8859), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8865), 1,
      anon_sym_QMARK,
    ACTIONS(8869), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8631), 6,
      anon_sym_DOT,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_PLUS,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
    ACTIONS(8867), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [65773] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [65850] = 11,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 22,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [65921] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(8841), 1,
      anon_sym_AMP,
    ACTIONS(8853), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8857), 1,
      anon_sym_CARET,
    ACTIONS(8861), 1,
      anon_sym_PIPE,
    ACTIONS(8863), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8845), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8847), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8851), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8839), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8843), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8849), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8855), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 21,
      anon_sym_SLASH_EQ,
      anon_sym_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_DASH_DASH,
      anon_sym_PLUS_EQ,
      anon_sym_PLUS_PLUS,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66000] = 5,
    ACTIONS(6885), 1,
      anon_sym_LPAREN,
    ACTIONS(8874), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8877), 4,
      sym_alias,
      sym_enum,
      sym_ref,
      sym_scope,
    ACTIONS(8871), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [66059] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 21,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66135] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 20,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66213] = 6,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [66273] = 22,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7642), 1,
      anon_sym_RPAREN,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8927), 1,
      anon_sym_COMMA,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6329), 1,
      sym_ellipses,
    STATE(6330), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66365] = 22,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7640), 1,
      anon_sym_RPAREN,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8937), 1,
      anon_sym_COMMA,
    STATE(6258), 1,
      aux_sym__parameters_repeat1,
    STATE(6266), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66457] = 13,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 21,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66531] = 22,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7638), 1,
      anon_sym_RPAREN,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8939), 1,
      anon_sym_COMMA,
    STATE(6363), 1,
      aux_sym__parameters_repeat1,
    STATE(6368), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66623] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8583), 5,
      anon_sym_RBRACE,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66707] = 4,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [66763] = 12,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 21,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [66835] = 7,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [66897] = 7,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [66959] = 5,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [67017] = 11,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 21,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67087] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8631), 5,
      anon_sym_RBRACE,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67171] = 7,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 29,
      sym_not_in,
      sym_not_is,
      anon_sym_RBRACE,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [67233] = 20,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6516), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8949), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67320] = 20,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6459), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8952), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67407] = 20,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(8956), 1,
      anon_sym_SEMI,
    STATE(5572), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8954), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67494] = 20,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6419), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8958), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67581] = 20,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6422), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8960), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67668] = 20,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6669), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8962), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67755] = 20,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(8964), 1,
      anon_sym_COMMA,
    STATE(5572), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8956), 2,
      anon_sym_RPAREN,
      anon_sym_SEMI,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67842] = 4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3062), 2,
      anon_sym_DOT,
      anon_sym_LPAREN,
    ACTIONS(8966), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(3060), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [67897] = 20,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6516), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8968), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [67984] = 20,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    STATE(6472), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8970), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [68071] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8972), 4,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [68154] = 18,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8980), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(8984), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8996), 1,
      anon_sym_QMARK,
    ACTIONS(8998), 1,
      anon_sym_EQ,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8583), 3,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8976), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [68236] = 13,
    ACTIONS(9008), 1,
      anon_sym_AMP,
    ACTIONS(9020), 1,
      anon_sym_CARET,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [68308] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(1106), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9026), 1,
      sym_identifier,
    ACTIONS(9028), 1,
      anon_sym_DOT,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    STATE(2615), 1,
      sym_template_declaration,
    STATE(5352), 1,
      sym_template_instance,
    STATE(7696), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4310), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9034), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [68390] = 20,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(8964), 1,
      anon_sym_COMMA,
    ACTIONS(9038), 1,
      anon_sym_RPAREN,
    STATE(5572), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [68476] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(5303), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9041), 1,
      sym_identifier,
    ACTIONS(9043), 1,
      anon_sym_DOT,
    STATE(2850), 1,
      sym_template_declaration,
    STATE(5446), 1,
      sym_template_instance,
    STATE(7610), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4312), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9045), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [68558] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(796), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9047), 1,
      sym_identifier,
    ACTIONS(9049), 1,
      anon_sym_DOT,
    STATE(2355), 1,
      sym_template_declaration,
    STATE(5419), 1,
      sym_template_instance,
    STATE(7736), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4309), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9051), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [68640] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(187), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9053), 1,
      sym_identifier,
    ACTIONS(9055), 1,
      anon_sym_DOT,
    ACTIONS(9057), 1,
      anon_sym_LPAREN,
    STATE(1637), 1,
      sym_template_declaration,
    STATE(5386), 1,
      sym_template_instance,
    STATE(7474), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4313), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9059), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [68722] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(187), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9061), 1,
      sym_identifier,
    ACTIONS(9063), 1,
      anon_sym_DOT,
    STATE(1712), 1,
      sym_template_declaration,
    STATE(5384), 1,
      sym_template_instance,
    STATE(7510), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4313), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9059), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [68804] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(796), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9065), 1,
      sym_identifier,
    ACTIONS(9067), 1,
      anon_sym_DOT,
    STATE(2335), 1,
      sym_template_declaration,
    STATE(5397), 1,
      sym_template_instance,
    STATE(7748), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4309), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9051), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [68886] = 19,
    ACTIONS(8972), 1,
      anon_sym_COLON,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8980), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(8984), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8996), 1,
      anon_sym_QMARK,
    ACTIONS(8998), 1,
      anon_sym_EQ,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9069), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8976), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [68970] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(796), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9047), 1,
      sym_identifier,
    ACTIONS(9049), 1,
      anon_sym_DOT,
    ACTIONS(9057), 1,
      anon_sym_LPAREN,
    STATE(2355), 1,
      sym_template_declaration,
    STATE(5419), 1,
      sym_template_instance,
    STATE(7736), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4309), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9051), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [69052] = 18,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8583), 3,
      anon_sym_DOT_DOT_DOT,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [69134] = 5,
    ACTIONS(9071), 1,
      anon_sym_RPAREN,
    ACTIONS(9073), 1,
      sym_shared,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3062), 2,
      anon_sym_DOT,
      anon_sym_LPAREN,
    ACTIONS(3060), 39,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [69190] = 4,
    ACTIONS(9071), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3062), 2,
      anon_sym_DOT,
      anon_sym_LPAREN,
    ACTIONS(3060), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [69244] = 5,
    ACTIONS(9071), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3062), 2,
      anon_sym_DOT,
      anon_sym_LPAREN,
    ACTIONS(9073), 2,
      sym_const,
      sym_inout,
    ACTIONS(3060), 38,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_immutable,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [69300] = 7,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [69360] = 4,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [69414] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(1106), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9076), 1,
      sym_identifier,
    ACTIONS(9078), 1,
      anon_sym_DOT,
    STATE(2565), 1,
      sym_template_declaration,
    STATE(5411), 1,
      sym_template_instance,
    STATE(7708), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4310), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9034), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [69496] = 11,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [69564] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(9008), 1,
      anon_sym_AMP,
    ACTIONS(9020), 1,
      anon_sym_CARET,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9080), 1,
      anon_sym_PIPE,
    ACTIONS(9082), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 18,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [69640] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(5303), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9084), 1,
      sym_identifier,
    ACTIONS(9086), 1,
      anon_sym_DOT,
    STATE(2766), 1,
      sym_template_declaration,
    STATE(5333), 1,
      sym_template_instance,
    STATE(7587), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4312), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9045), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [69722] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8429), 16,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_CARET_CARET,
      anon_sym_TILDE,
    ACTIONS(8427), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [69774] = 7,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [69834] = 18,
    ACTIONS(9008), 1,
      anon_sym_AMP,
    ACTIONS(9020), 1,
      anon_sym_CARET,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9080), 1,
      anon_sym_PIPE,
    ACTIONS(9082), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9090), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9092), 1,
      anon_sym_QMARK,
    ACTIONS(9094), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8972), 3,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_COMMA,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9088), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [69916] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(187), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9053), 1,
      sym_identifier,
    ACTIONS(9055), 1,
      anon_sym_DOT,
    STATE(1637), 1,
      sym_template_declaration,
    STATE(5386), 1,
      sym_template_instance,
    STATE(7474), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4313), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9059), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [69998] = 4,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [70052] = 18,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8980), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(8984), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8996), 1,
      anon_sym_QMARK,
    ACTIONS(8998), 1,
      anon_sym_EQ,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8631), 3,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8976), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [70134] = 11,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 19,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [70202] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(8984), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 18,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [70278] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(1106), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9026), 1,
      sym_identifier,
    ACTIONS(9028), 1,
      anon_sym_DOT,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9057), 1,
      anon_sym_LPAREN,
    STATE(2615), 1,
      sym_template_declaration,
    STATE(5352), 1,
      sym_template_instance,
    STATE(7696), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4310), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9034), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [70360] = 13,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 19,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [70432] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 19,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [70506] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(313), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9096), 1,
      sym_identifier,
    ACTIONS(9098), 1,
      anon_sym_DOT,
    STATE(1419), 1,
      sym_template_declaration,
    STATE(5430), 1,
      sym_template_instance,
    STATE(7649), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4311), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9100), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [70588] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(65), 1,
      sym_template,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9102), 1,
      sym_identifier,
    ACTIONS(9104), 1,
      anon_sym_DOT,
    STATE(2662), 1,
      sym_template_declaration,
    STATE(5391), 1,
      sym_template_instance,
    STATE(7565), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4308), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9106), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [70670] = 18,
    ACTIONS(9008), 1,
      anon_sym_AMP,
    ACTIONS(9020), 1,
      anon_sym_CARET,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9080), 1,
      anon_sym_PIPE,
    ACTIONS(9082), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9090), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9092), 1,
      anon_sym_QMARK,
    ACTIONS(9094), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8583), 3,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_COMMA,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9088), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [70752] = 5,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [70808] = 7,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [70868] = 7,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [70928] = 4,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [70982] = 6,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [71040] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(313), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9057), 1,
      anon_sym_LPAREN,
    ACTIONS(9096), 1,
      sym_identifier,
    ACTIONS(9098), 1,
      anon_sym_DOT,
    STATE(1419), 1,
      sym_template_declaration,
    STATE(5430), 1,
      sym_template_instance,
    STATE(7649), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4311), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9100), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [71122] = 18,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8909), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8925), 1,
      anon_sym_QMARK,
    ACTIONS(8929), 1,
      anon_sym_EQ,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8631), 3,
      anon_sym_DOT_DOT_DOT,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8905), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71204] = 11,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71272] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8913), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 18,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71348] = 13,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71420] = 20,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8980), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(8984), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8996), 1,
      anon_sym_QMARK,
    ACTIONS(8998), 1,
      anon_sym_EQ,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9038), 1,
      anon_sym_COLON,
    ACTIONS(9108), 1,
      anon_sym_COMMA,
    STATE(5888), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8976), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71506] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8911), 1,
      anon_sym_PIPE,
    ACTIONS(8931), 1,
      anon_sym_CARET,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71580] = 5,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [71636] = 7,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [71696] = 6,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [71754] = 7,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [71814] = 12,
    ACTIONS(8907), 1,
      anon_sym_AMP,
    ACTIONS(8933), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8917), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8919), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8923), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8903), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8915), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8921), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8935), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71884] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(9008), 1,
      anon_sym_AMP,
    ACTIONS(9020), 1,
      anon_sym_CARET,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9080), 1,
      anon_sym_PIPE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [71958] = 7,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [72018] = 12,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 19,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [72088] = 7,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [72148] = 6,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [72206] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(313), 1,
      sym_template,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9110), 1,
      sym_identifier,
    ACTIONS(9112), 1,
      anon_sym_DOT,
    STATE(1359), 1,
      sym_template_declaration,
    STATE(5413), 1,
      sym_template_instance,
    STATE(7664), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4311), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9100), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [72288] = 7,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [72348] = 12,
    ACTIONS(9008), 1,
      anon_sym_AMP,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 19,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [72418] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8954), 3,
      anon_sym_RBRACE,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [72500] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(65), 1,
      sym_template,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9057), 1,
      anon_sym_LPAREN,
    ACTIONS(9102), 1,
      sym_identifier,
    ACTIONS(9104), 1,
      anon_sym_DOT,
    STATE(2662), 1,
      sym_template_declaration,
    STATE(5391), 1,
      sym_template_instance,
    STATE(7565), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4308), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9106), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [72582] = 18,
    ACTIONS(29), 1,
      sym_align,
    ACTIONS(55), 1,
      sym_package,
    ACTIONS(57), 1,
      sym_pragma,
    ACTIONS(65), 1,
      sym_template,
    ACTIONS(67), 1,
      sym_typeof,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9036), 1,
      sym_extern,
    ACTIONS(9114), 1,
      sym_identifier,
    ACTIONS(9116), 1,
      anon_sym_DOT,
    STATE(2738), 1,
      sym_template_declaration,
    STATE(5373), 1,
      sym_template_instance,
    STATE(7315), 1,
      sym_typeof_expression,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(33), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4308), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9106), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [72664] = 5,
    ACTIONS(9120), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4230), 2,
      sym_type_ctor,
      aux_sym_type_repeat1,
    ACTIONS(9122), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    ACTIONS(9118), 36,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_mixin,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [72720] = 18,
    ACTIONS(9008), 1,
      anon_sym_AMP,
    ACTIONS(9020), 1,
      anon_sym_CARET,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9080), 1,
      anon_sym_PIPE,
    ACTIONS(9082), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9090), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9092), 1,
      anon_sym_QMARK,
    ACTIONS(9094), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9012), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9014), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9018), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8631), 3,
      anon_sym_DOT_DOT,
      anon_sym_RBRACK,
      anon_sym_COMMA,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9010), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9016), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9024), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9088), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [72802] = 5,
    ACTIONS(9022), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9006), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 27,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RBRACK,
      anon_sym_QMARK,
      anon_sym_COMMA,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [72858] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9125), 3,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [72940] = 20,
    ACTIONS(8956), 1,
      anon_sym_COLON,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8980), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(8984), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8996), 1,
      anon_sym_QMARK,
    ACTIONS(8998), 1,
      anon_sym_EQ,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9108), 1,
      anon_sym_COMMA,
    STATE(5888), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8976), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73026] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8369), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73107] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8395), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73188] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9127), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73269] = 13,
    ACTIONS(9131), 1,
      anon_sym_AMP,
    ACTIONS(9143), 1,
      anon_sym_CARET,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 18,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73340] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(9131), 1,
      anon_sym_AMP,
    ACTIONS(9143), 1,
      anon_sym_CARET,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9149), 1,
      anon_sym_PIPE,
    ACTIONS(9151), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 17,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73415] = 11,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 18,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73482] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(9155), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9153), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73563] = 4,
    ACTIONS(6885), 1,
      anon_sym_LPAREN,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [73616] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(9163), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9161), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73697] = 7,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [73756] = 4,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(9165), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [73809] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9167), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [73890] = 6,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [73947] = 18,
    ACTIONS(9131), 1,
      anon_sym_AMP,
    ACTIONS(9143), 1,
      anon_sym_CARET,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9149), 1,
      anon_sym_PIPE,
    ACTIONS(9151), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9171), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9173), 1,
      anon_sym_QMARK,
    ACTIONS(9175), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8972), 2,
      anon_sym_DOT_DOT,
      anon_sym_RPAREN,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9169), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74028] = 7,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [74087] = 12,
    ACTIONS(9131), 1,
      anon_sym_AMP,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 18,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74156] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(9177), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9161), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74237] = 7,
    ACTIONS(6651), 1,
      anon_sym_LPAREN,
    ACTIONS(9179), 1,
      anon_sym_BANG,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2420), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 9,
      anon_sym_LBRACE,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6647), 29,
      sym_identifier,
      sym_abstract,
      sym_align,
      sym_auto,
      sym_const,
      sym_delegate,
      sym_deprecated,
      sym_export,
      sym_extern,
      sym_final,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_override,
      sym_package,
      sym_pragma,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_shared,
      sym_static,
      sym_synchronized,
      sym_template,
      sym_gshared,
  [74296] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(9183), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9181), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74377] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8644), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74458] = 5,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [74513] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8377), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74594] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9185), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74675] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8954), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74756] = 7,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [74815] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9187), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [74896] = 4,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(9189), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [74949] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9167), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75030] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9191), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75111] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9153), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75192] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8373), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75273] = 4,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(9193), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [75326] = 18,
    ACTIONS(9131), 1,
      anon_sym_AMP,
    ACTIONS(9143), 1,
      anon_sym_CARET,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9149), 1,
      anon_sym_PIPE,
    ACTIONS(9151), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9171), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9173), 1,
      anon_sym_QMARK,
    ACTIONS(9175), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8631), 2,
      anon_sym_DOT_DOT,
      anon_sym_RPAREN,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9169), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75407] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9195), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75488] = 4,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(9197), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [75541] = 4,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(9199), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [75594] = 4,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(9201), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [75647] = 4,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 26,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [75700] = 18,
    ACTIONS(8978), 1,
      anon_sym_AMP,
    ACTIONS(8980), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8982), 1,
      anon_sym_PIPE,
    ACTIONS(8984), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8996), 1,
      anon_sym_QMARK,
    ACTIONS(8998), 1,
      anon_sym_EQ,
    ACTIONS(9000), 1,
      anon_sym_CARET,
    ACTIONS(9002), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8988), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8990), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8994), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9125), 2,
      anon_sym_COMMA,
      anon_sym_COLON,
    ACTIONS(8974), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8986), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8992), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9004), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8976), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75781] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9185), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75862] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9203), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [75943] = 18,
    ACTIONS(9131), 1,
      anon_sym_AMP,
    ACTIONS(9143), 1,
      anon_sym_CARET,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9149), 1,
      anon_sym_PIPE,
    ACTIONS(9151), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9171), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9173), 1,
      anon_sym_QMARK,
    ACTIONS(9175), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8583), 2,
      anon_sym_DOT_DOT,
      anon_sym_RPAREN,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9169), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76024] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9161), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76105] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(9131), 1,
      anon_sym_AMP,
    ACTIONS(9143), 1,
      anon_sym_CARET,
    ACTIONS(9145), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9149), 1,
      anon_sym_PIPE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9135), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9137), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9141), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9129), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9133), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9139), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9147), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 18,
      anon_sym_SLASH_EQ,
      anon_sym_DOT_DOT,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_RPAREN,
      anon_sym_QMARK,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76178] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9205), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76259] = 4,
    ACTIONS(6972), 1,
      anon_sym_LPAREN,
    ACTIONS(9159), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9157), 40,
      sym_identifier,
      sym_bool,
      sym_byte,
      sym_ubyte,
      sym_char,
      sym_short,
      sym_ushort,
      sym_int,
      sym_uint,
      sym_long,
      sym_ulong,
      sym_cent,
      sym_ucent,
      sym_wchar,
      sym_dchar,
      sym_float,
      sym_double,
      sym_real,
      sym_ifloat,
      sym_idouble,
      sym_ireal,
      sym_cfloat,
      sym_cdouble,
      sym_creal,
      sym_size_t,
      sym_ptrdiff_t,
      sym_string,
      sym_cstring,
      sym_dstring,
      sym_wstring,
      sym_noreturn,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_mixin,
      sym_shared,
      sym_typeof,
      sym_traits,
      sym_vector,
      sym_void,
  [76312] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9207), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76392] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9209), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76472] = 15,
    ACTIONS(8625), 1,
      anon_sym_EQ,
    ACTIONS(9213), 1,
      anon_sym_AMP,
    ACTIONS(9215), 1,
      anon_sym_PIPE,
    ACTIONS(9217), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9229), 1,
      anon_sym_CARET,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8623), 16,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76546] = 18,
    ACTIONS(8972), 1,
      anon_sym_COLON,
    ACTIONS(9213), 1,
      anon_sym_AMP,
    ACTIONS(9215), 1,
      anon_sym_PIPE,
    ACTIONS(9217), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9229), 1,
      anon_sym_CARET,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9237), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9239), 1,
      anon_sym_QMARK,
    ACTIONS(9241), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9235), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76626] = 14,
    ACTIONS(8617), 1,
      anon_sym_EQ,
    ACTIONS(9213), 1,
      anon_sym_AMP,
    ACTIONS(9215), 1,
      anon_sym_PIPE,
    ACTIONS(9229), 1,
      anon_sym_CARET,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8615), 17,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76698] = 13,
    ACTIONS(9213), 1,
      anon_sym_AMP,
    ACTIONS(9229), 1,
      anon_sym_CARET,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8621), 2,
      anon_sym_PIPE,
      anon_sym_EQ,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8619), 17,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76768] = 11,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8629), 4,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8627), 17,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76834] = 18,
    ACTIONS(8631), 1,
      anon_sym_COLON,
    ACTIONS(9213), 1,
      anon_sym_AMP,
    ACTIONS(9215), 1,
      anon_sym_PIPE,
    ACTIONS(9217), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9229), 1,
      anon_sym_CARET,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9237), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9239), 1,
      anon_sym_QMARK,
    ACTIONS(9241), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9235), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [76914] = 4,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8635), 15,
      anon_sym_SLASH,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_PERCENT,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8633), 25,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [76966] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9243), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77046] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9245), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77126] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9247), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77206] = 7,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8609), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8607), 25,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [77264] = 7,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8639), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8637), 25,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [77322] = 6,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8605), 9,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8603), 25,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [77378] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9249), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77458] = 7,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8601), 6,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_LT,
      anon_sym_GT,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(8599), 25,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [77516] = 5,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8613), 12,
      anon_sym_AMP,
      anon_sym_PIPE,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_LT,
      anon_sym_LT_LT,
      anon_sym_GT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
      anon_sym_EQ,
      anon_sym_CARET,
      anon_sym_TILDE,
    ACTIONS(8611), 25,
      sym_not_in,
      sym_not_is,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_BANG_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
      sym_in,
      sym_is,
  [77570] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9251), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77650] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9253), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77730] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9255), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77810] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9257), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77890] = 12,
    ACTIONS(9213), 1,
      anon_sym_AMP,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8551), 3,
      anon_sym_PIPE,
      anon_sym_EQ,
      anon_sym_CARET,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8545), 17,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_AMP_AMP,
      anon_sym_PIPE_EQ,
      anon_sym_PIPE_PIPE,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_QMARK,
      anon_sym_COLON,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [77958] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9259), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [78038] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9261), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [78118] = 18,
    ACTIONS(8583), 1,
      anon_sym_COLON,
    ACTIONS(9213), 1,
      anon_sym_AMP,
    ACTIONS(9215), 1,
      anon_sym_PIPE,
    ACTIONS(9217), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(9229), 1,
      anon_sym_CARET,
    ACTIONS(9231), 1,
      anon_sym_CARET_CARET,
    ACTIONS(9237), 1,
      anon_sym_AMP_AMP,
    ACTIONS(9239), 1,
      anon_sym_QMARK,
    ACTIONS(9241), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9221), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(9223), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(9227), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(9211), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(9219), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(9225), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(9233), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(9235), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [78198] = 18,
    ACTIONS(8881), 1,
      anon_sym_AMP,
    ACTIONS(8883), 1,
      anon_sym_PIPE,
    ACTIONS(8895), 1,
      anon_sym_CARET,
    ACTIONS(8897), 1,
      anon_sym_CARET_CARET,
    ACTIONS(8901), 1,
      anon_sym_PIPE_PIPE,
    ACTIONS(8943), 1,
      anon_sym_AMP_AMP,
    ACTIONS(8945), 1,
      anon_sym_QMARK,
    ACTIONS(8947), 1,
      anon_sym_EQ,
    ACTIONS(9263), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8887), 2,
      anon_sym_LT,
      anon_sym_GT,
    ACTIONS(8889), 2,
      anon_sym_LT_EQ,
      anon_sym_GT_EQ,
    ACTIONS(8893), 2,
      anon_sym_BANG_EQ,
      anon_sym_EQ_EQ,
    ACTIONS(8879), 3,
      anon_sym_SLASH,
      anon_sym_STAR,
      anon_sym_PERCENT,
    ACTIONS(8885), 3,
      anon_sym_DASH,
      anon_sym_PLUS,
      anon_sym_TILDE,
    ACTIONS(8891), 3,
      anon_sym_LT_LT,
      anon_sym_GT_GT,
      anon_sym_GT_GT_GT,
    ACTIONS(8899), 4,
      sym_not_in,
      sym_not_is,
      sym_in,
      sym_is,
    ACTIONS(8941), 13,
      anon_sym_SLASH_EQ,
      anon_sym_AMP_EQ,
      anon_sym_PIPE_EQ,
      anon_sym_DASH_EQ,
      anon_sym_PLUS_EQ,
      anon_sym_LT_LT_EQ,
      anon_sym_GT_GT_EQ,
      anon_sym_GT_GT_GT_EQ,
      anon_sym_STAR_EQ,
      anon_sym_PERCENT_EQ,
      anon_sym_CARET_EQ,
      anon_sym_CARET_CARET_EQ,
      anon_sym_TILDE_EQ,
  [78278] = 11,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9267), 1,
      sym_align,
    ACTIONS(9271), 1,
      sym_deprecated,
    ACTIONS(9273), 1,
      sym_extern,
    ACTIONS(9275), 1,
      sym_package,
    ACTIONS(9277), 1,
      sym_pragma,
    ACTIONS(9279), 1,
      sym_template,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9269), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4314), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9265), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [78339] = 11,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9267), 1,
      sym_align,
    ACTIONS(9271), 1,
      sym_deprecated,
    ACTIONS(9273), 1,
      sym_extern,
    ACTIONS(9275), 1,
      sym_package,
    ACTIONS(9277), 1,
      sym_pragma,
    ACTIONS(9281), 1,
      sym_template,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9269), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4314), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9265), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [78400] = 11,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9267), 1,
      sym_align,
    ACTIONS(9271), 1,
      sym_deprecated,
    ACTIONS(9273), 1,
      sym_extern,
    ACTIONS(9275), 1,
      sym_package,
    ACTIONS(9277), 1,
      sym_pragma,
    ACTIONS(9283), 1,
      sym_template,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9269), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4314), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9265), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [78461] = 11,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9267), 1,
      sym_align,
    ACTIONS(9271), 1,
      sym_deprecated,
    ACTIONS(9273), 1,
      sym_extern,
    ACTIONS(9275), 1,
      sym_package,
    ACTIONS(9277), 1,
      sym_pragma,
    ACTIONS(9285), 1,
      sym_template,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9269), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4314), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9265), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [78522] = 11,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9267), 1,
      sym_align,
    ACTIONS(9271), 1,
      sym_deprecated,
    ACTIONS(9273), 1,
      sym_extern,
    ACTIONS(9275), 1,
      sym_package,
    ACTIONS(9277), 1,
      sym_pragma,
    ACTIONS(9287), 1,
      sym_template,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9269), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4314), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9265), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [78583] = 11,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9267), 1,
      sym_align,
    ACTIONS(9271), 1,
      sym_deprecated,
    ACTIONS(9273), 1,
      sym_extern,
    ACTIONS(9275), 1,
      sym_package,
    ACTIONS(9277), 1,
      sym_pragma,
    ACTIONS(9289), 1,
      sym_template,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9269), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4314), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9265), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [78644] = 11,
    ACTIONS(6681), 1,
      sym_template,
    ACTIONS(9291), 1,
      anon_sym_AT,
    ACTIONS(9297), 1,
      sym_align,
    ACTIONS(9303), 1,
      sym_deprecated,
    ACTIONS(9306), 1,
      sym_extern,
    ACTIONS(9309), 1,
      sym_package,
    ACTIONS(9312), 1,
      sym_pragma,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9300), 4,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_shared,
    STATE(4314), 9,
      sym_type_ctor,
      sym_align_attribute,
      sym_deprecated_attribute,
      sym__attribute,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym_linkage_attribute,
      sym_pragma_expression,
      aux_sym_import_declaration_repeat1,
    ACTIONS(9294), 16,
      sym_abstract,
      sym_auto,
      sym_export,
      sym_final,
      sym_nothrow,
      sym_override,
      sym_private,
      sym_protected,
      sym_public,
      sym_pure,
      sym_ref,
      sym_return,
      sym_scope,
      sym_static,
      sym_synchronized,
      sym_gshared,
  [78705] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1678), 1,
      sym_function_body,
    STATE(4713), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4348), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [78779] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2203), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4695), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4359), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [78853] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1398), 1,
      sym_function_body,
    STATE(4758), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4332), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [78927] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2870), 1,
      sym_function_body,
    STATE(4740), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79001] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2845), 1,
      sym_function_body,
    STATE(4752), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4339), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79075] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1362), 1,
      sym_function_body,
    STATE(4753), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79149] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2870), 1,
      sym_function_body,
    STATE(4740), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4341), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79223] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4765), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4345), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79297] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4765), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79371] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4723), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79445] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1398), 1,
      sym_function_body,
    STATE(4758), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79519] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2306), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4716), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4340), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79593] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2277), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4686), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79667] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2741), 1,
      sym_function_body,
    STATE(4682), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4349), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79741] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2899), 1,
      sym_function_body,
    STATE(4671), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4318), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79815] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4723), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4352), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79889] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2643), 1,
      sym_function_body,
    STATE(4776), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [79963] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1464), 1,
      sym_function_body,
    STATE(4748), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80037] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2598), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4755), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4323), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80111] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4769), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4331), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80185] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4782), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80259] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4769), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80333] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2741), 1,
      sym_function_body,
    STATE(4711), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4344), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80407] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1737), 1,
      sym_function_body,
    STATE(4783), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80481] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2783), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(4675), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80555] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2203), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4695), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80629] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2810), 1,
      sym_function_body,
    STATE(4706), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80703] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2598), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4703), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4324), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80777] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2783), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(4675), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4347), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80851] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4705), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80925] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(4704), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [80999] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4705), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4362), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81073] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2786), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(4727), 1,
      sym_constraint,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81147] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1641), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(4685), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81221] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4720), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81295] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2492), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4738), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4336), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81369] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1749), 1,
      sym_function_body,
    STATE(4764), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4338), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81443] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(4722), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81517] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2180), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4744), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4360), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81591] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2243), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4707), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4327), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81665] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1720), 1,
      sym_function_body,
    STATE(4668), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81739] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1678), 1,
      sym_function_body,
    STATE(4713), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81813] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4720), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4378), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81887] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4729), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [81961] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2231), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4709), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82035] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2243), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(4707), 1,
      sym_constraint,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82109] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2542), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4702), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4358), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82183] = 19,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2499), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4721), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82257] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2643), 1,
      sym_function_body,
    STATE(4747), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82331] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4757), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4363), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82405] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4750), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82479] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4757), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82553] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1413), 1,
      sym_function_body,
    STATE(4763), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4320), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82627] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1413), 1,
      sym_function_body,
    STATE(4763), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82701] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1742), 1,
      sym_function_body,
    STATE(4737), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4356), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82775] = 19,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1737), 1,
      sym_function_body,
    STATE(4783), 1,
      sym_constraint,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4355), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82849] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4768), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4365), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82923] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2542), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4785), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4375), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [82997] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2492), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4762), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4366), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83071] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1356), 1,
      sym_function_body,
    STATE(1357), 1,
      sym_block_statement,
    STATE(4761), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4325), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83145] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4768), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83219] = 19,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1435), 1,
      sym_function_body,
    STATE(4777), 1,
      sym_constraint,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4368), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83293] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(4729), 1,
      sym_constraint,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4335), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83367] = 19,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2499), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(4749), 1,
      sym_constraint,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83441] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1720), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83509] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1749), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83577] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2215), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4541), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83645] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2521), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83713] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2681), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4565), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83781] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2873), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4488), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83849] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2602), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83917] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2872), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4498), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [83985] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2212), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84053] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1737), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84121] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2217), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4387), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84189] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1356), 1,
      sym_function_body,
    STATE(1357), 1,
      sym_block_statement,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4534), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84257] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1413), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84325] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1742), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4497), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84393] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2501), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4509), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84461] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2870), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4577), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84529] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2845), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84597] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1356), 1,
      sym_function_body,
    STATE(1357), 1,
      sym_block_statement,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84665] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2302), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84733] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84801] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2870), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84869] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2485), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [84937] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1458), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85005] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2741), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4554), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85073] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2290), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85141] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1413), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4473), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85209] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2167), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85277] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2505), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85345] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2501), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85413] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2505), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4477), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85481] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1416), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4540), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85549] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2551), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85617] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1420), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4549), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85685] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2598), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4501), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85753] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2521), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4385), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85821] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2306), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4468), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85889] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2542), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [85957] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2588), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4415), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86025] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2250), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4511), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86093] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1648), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4419), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86161] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1723), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86229] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2306), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86297] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2716), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4556), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86365] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1435), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4391), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86433] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2231), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4528), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86501] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1722), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86569] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2212), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4529), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86637] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1470), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4396), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86705] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2891), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4395), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86773] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2231), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86841] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2501), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4410), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86909] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1435), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [86977] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2542), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87045] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2520), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4438), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87113] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2542), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4439), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87181] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2482), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4441), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87249] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2481), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4442), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87317] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2180), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4480), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87385] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4445), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87453] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2492), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87521] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87589] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2492), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4450), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87657] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2541), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87725] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2545), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87793] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4453), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87861] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2541), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4454), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87929] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [87997] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2520), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4520), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88065] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2740), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4584), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88133] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2545), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4456), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88201] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4535), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88269] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88337] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1742), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88405] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2638), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4460), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88473] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2640), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88541] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2638), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88609] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2670), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88677] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2646), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88745] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2542), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4539), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88813] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2640), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4462), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88881] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2658), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [88949] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2652), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89017] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2652), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4464), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89085] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2658), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89153] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1676), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4380), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89221] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2670), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89289] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1422), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4430), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89357] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2716), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4537), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89425] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2899), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4399), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89493] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2203), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89561] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2200), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4562), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89629] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2482), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4571), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89697] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2741), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89765] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1749), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4388), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89833] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1362), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89901] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2740), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4471), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [89969] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2652), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4455), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90037] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2481), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4574), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90105] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2521), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90173] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2485), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90241] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2652), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90309] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2243), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90377] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1426), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4401), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90445] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2646), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90513] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2795), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4492), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90581] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2781), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4517), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90649] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2274), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4397), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90717] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2505), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90785] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2501), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90853] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2819), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90921] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1720), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4521), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [90989] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1723), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4523), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91057] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1457), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4575), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91125] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2899), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91193] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1722), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4531), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91261] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91329] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1511), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91397] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9391), 1,
      sym_in,
    ACTIONS(9393), 1,
      sym_out,
    STATE(2588), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4431), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91465] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1678), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91533] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2813), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91601] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2505), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4382), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91669] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2840), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91737] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91805] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4560), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91873] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4585), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [91941] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1362), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4578), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92009] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1658), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4424), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92077] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2640), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4459), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92145] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2521), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4586), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92213] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2272), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4403), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92281] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2551), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92349] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2741), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4494), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92417] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2180), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92485] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1499), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4558), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92553] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2826), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92621] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2817), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4500), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92689] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2717), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4400), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92757] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2717), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92825] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2817), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92893] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1646), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4559), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [92961] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2638), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93029] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2492), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93097] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1643), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93165] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2598), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4398), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93233] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1646), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93301] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2640), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93369] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1499), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93437] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2638), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4479), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93505] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2290), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4405), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93573] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2274), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93641] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2272), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93709] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2681), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4516), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93777] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1634), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93845] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1643), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4553), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93913] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2719), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4406), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [93981] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1398), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94049] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94117] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4407), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94185] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2598), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94253] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2362), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4420), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94321] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94389] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1457), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94457] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2200), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94525] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2492), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4544), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94593] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2784), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4513), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94661] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94729] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2789), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94797] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2675), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4566), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94865] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1618), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4563), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [94933] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2781), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95001] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1426), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95069] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2784), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95137] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2813), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4545), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95205] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2810), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4550), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95273] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1607), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95341] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95409] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1568), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4451), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95477] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2598), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95545] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2717), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4478), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95613] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1541), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95681] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1618), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95749] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95817] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2203), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4428), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95885] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9341), 1,
      sym_in,
    ACTIONS(9343), 1,
      sym_out,
    STATE(2279), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [95953] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1582), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96021] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2719), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4486), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96089] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2717), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96157] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2719), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96225] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4487), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96293] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2545), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4482), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96361] = 17,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9329), 1,
      sym_in,
    ACTIONS(9331), 1,
      sym_out,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1737), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4379), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96429] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1460), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4495), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96497] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2541), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96565] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2819), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4548), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96633] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2783), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96701] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2545), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96769] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1474), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96837] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2719), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96905] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2810), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [96973] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1460), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97041] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2675), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4576), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97109] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9365), 1,
      sym_in,
    ACTIONS(9367), 1,
      sym_out,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2845), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4573), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97177] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4524), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97245] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2541), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4519), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97313] = 17,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9353), 1,
      sym_in,
    ACTIONS(9355), 1,
      sym_out,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1458), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4525), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97381] = 17,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9375), 1,
      sym_in,
    ACTIONS(9377), 1,
      sym_out,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2741), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97449] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97517] = 17,
    ACTIONS(155), 1,
      sym_in,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    STATE(2602), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97585] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7759), 12,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
    ACTIONS(7761), 15,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97621] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7767), 12,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
    ACTIONS(7769), 15,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97657] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7755), 12,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
    ACTIONS(7757), 15,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97693] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7747), 12,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
    ACTIONS(7749), 15,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97729] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7743), 12,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
    ACTIONS(7745), 15,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97765] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7739), 12,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
    ACTIONS(7741), 15,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97801] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7763), 12,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
    ACTIONS(7765), 15,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [97837] = 7,
    ACTIONS(9395), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7664), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9398), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
    ACTIONS(7662), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
  [97880] = 7,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7674), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9401), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
    ACTIONS(7672), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
  [97923] = 7,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4595), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7656), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9401), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
    ACTIONS(7654), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
  [97966] = 7,
    ACTIONS(9403), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4599), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7656), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4653), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7654), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(9405), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98007] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3006), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3004), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98040] = 7,
    ACTIONS(9403), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4604), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7674), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4653), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7672), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(9405), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98081] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3050), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3048), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98114] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6645), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6643), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98147] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3058), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3056), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98180] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3046), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3044), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98213] = 7,
    ACTIONS(9407), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4604), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7664), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4653), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7662), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
    ACTIONS(9410), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98254] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3010), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3008), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98287] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3038), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3036), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98320] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3014), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3012), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98353] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2994), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(2992), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98386] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2986), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(2984), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98419] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3022), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3020), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98452] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3026), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3024), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98485] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3034), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3032), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98518] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3018), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3016), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98551] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2998), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(2996), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98584] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6659), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6657), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98617] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3002), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3000), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98650] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3030), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(3028), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98683] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6655), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6653), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98716] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6641), 9,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6639), 15,
      sym_identifier,
      anon_sym_DOT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_in,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98749] = 7,
    ACTIONS(7674), 1,
      sym_in,
    ACTIONS(9413), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4622), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7672), 8,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_out,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98789] = 7,
    ACTIONS(7656), 1,
      sym_in,
    ACTIONS(9413), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4620), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7654), 8,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_out,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98829] = 7,
    ACTIONS(7664), 1,
      sym_in,
    ACTIONS(9415), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4622), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7662), 8,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_out,
    ACTIONS(9418), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98869] = 7,
    ACTIONS(9421), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4623), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7664), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7662), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
    ACTIONS(9398), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98908] = 5,
    ACTIONS(6647), 1,
      sym_in,
    ACTIONS(9424), 1,
      anon_sym_LPAREN,
    STATE(4636), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 19,
      anon_sym_LBRACE,
      anon_sym_LBRACK,
      anon_sym_SEMI,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98943] = 7,
    ACTIONS(19), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4629), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7656), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7654), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
    ACTIONS(9401), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [98982] = 7,
    ACTIONS(9426), 1,
      anon_sym_BANG,
    ACTIONS(9428), 1,
      anon_sym_LPAREN,
    STATE(4615), 1,
      sym_template_arguments,
    STATE(4654), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6647), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99021] = 6,
    ACTIONS(9430), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4628), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4653), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7654), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
    ACTIONS(9432), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99058] = 6,
    ACTIONS(9430), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4630), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4653), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7672), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
    ACTIONS(9432), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99095] = 7,
    ACTIONS(19), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4623), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    ACTIONS(7674), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7672), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
    ACTIONS(9401), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99134] = 6,
    ACTIONS(9434), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4630), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4653), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7662), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
    ACTIONS(9437), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99171] = 3,
    ACTIONS(6661), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6663), 20,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_SEMI,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99201] = 7,
    ACTIONS(6651), 1,
      anon_sym_LPAREN,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2420), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6647), 7,
      sym_identifier,
      sym_delegate,
      sym_deprecated,
      sym_function,
      sym_module,
      sym_nothrow,
      sym_pure,
    ACTIONS(6649), 10,
      anon_sym_LBRACE,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
      anon_sym_AT,
  [99239] = 7,
    ACTIONS(6647), 1,
      sym_in,
    ACTIONS(9424), 1,
      anon_sym_LPAREN,
    ACTIONS(9426), 1,
      anon_sym_BANG,
    STATE(4615), 1,
      sym_template_arguments,
    STATE(4636), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 16,
      anon_sym_LBRACE,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99277] = 3,
    ACTIONS(6675), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6677), 20,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_SEMI,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99307] = 7,
    ACTIONS(7664), 1,
      sym_in,
    ACTIONS(9442), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(7662), 6,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_EQ_GT,
      sym_do,
      sym_if,
      sym_out,
    ACTIONS(9418), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99345] = 3,
    ACTIONS(6669), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6671), 20,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_SEMI,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99375] = 3,
    ACTIONS(6665), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6667), 20,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_SEMI,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99405] = 7,
    ACTIONS(6647), 1,
      sym_in,
    ACTIONS(9424), 1,
      anon_sym_LPAREN,
    ACTIONS(9445), 1,
      anon_sym_BANG,
    STATE(4636), 1,
      sym_arguments,
    STATE(4715), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 15,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99442] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9447), 2,
      sym_nothrow,
      sym_pure,
    ACTIONS(7656), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4641), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7654), 10,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [99477] = 5,
    ACTIONS(9428), 1,
      anon_sym_LPAREN,
    STATE(4654), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6647), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99510] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9449), 2,
      sym_nothrow,
      sym_pure,
    ACTIONS(7674), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4643), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7672), 10,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [99545] = 6,
    ACTIONS(7497), 1,
      anon_sym_LPAREN,
    ACTIONS(9426), 1,
      anon_sym_BANG,
    STATE(3121), 1,
      sym_arguments,
    STATE(4615), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 16,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99580] = 6,
    ACTIONS(9451), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9454), 2,
      sym_nothrow,
      sym_pure,
    ACTIONS(7841), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4643), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7839), 10,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [99615] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6677), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6675), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99643] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7763), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(7765), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99671] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7755), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(7757), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99699] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6667), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6665), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99727] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7743), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(7745), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99755] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6663), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6661), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99783] = 7,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9459), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4635), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9457), 4,
      anon_sym_LBRACE,
      anon_sym_EQ_GT,
      sym_do,
      sym_out,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99819] = 7,
    ACTIONS(9319), 1,
      anon_sym_AT,
    ACTIONS(9463), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4650), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9461), 4,
      anon_sym_LBRACE,
      anon_sym_EQ_GT,
      sym_do,
      sym_out,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99855] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7759), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(7761), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99883] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7747), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(7749), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99911] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6671), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(6669), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99939] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7739), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(7741), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99967] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7767), 8,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      anon_sym_AT,
    ACTIONS(7769), 11,
      sym_identifier,
      sym_const,
      sym_delegate,
      sym_function,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [99995] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8169), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8167), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100022] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8104), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8102), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100049] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8226), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8224), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100076] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8191), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100103] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8145), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8143), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100130] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8055), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8057), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100157] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8061), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8063), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100184] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8230), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8228), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100211] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8065), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8067), 11,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [100238] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8025), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8027), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100265] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8108), 7,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
    ACTIONS(8106), 11,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [100292] = 13,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9331), 1,
      sym_out,
    ACTIONS(9465), 1,
      sym_in,
    STATE(1643), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [100338] = 6,
    ACTIONS(9467), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9470), 2,
      sym_nothrow,
      sym_pure,
    ACTIONS(7841), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4669), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7839), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [100370] = 3,
    ACTIONS(3004), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3006), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [100396] = 13,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9367), 1,
      sym_out,
    ACTIONS(9473), 1,
      sym_in,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2870), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [100442] = 3,
    ACTIONS(3008), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3010), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [100468] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7674), 6,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_out,
    ACTIONS(7672), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [100494] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4904), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3957), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [100534] = 13,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9367), 1,
      sym_out,
    ACTIONS(9473), 1,
      sym_in,
    STATE(2786), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [100580] = 3,
    ACTIONS(6639), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6641), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [100606] = 3,
    ACTIONS(2984), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2986), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [100632] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4951), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [100672] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4951), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [100712] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4977), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [100752] = 3,
    ACTIONS(3016), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3018), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [100778] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [100824] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4977), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [100864] = 3,
    ACTIONS(2996), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2998), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [100890] = 13,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9331), 1,
      sym_out,
    ACTIONS(9465), 1,
      sym_in,
    STATE(1601), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [100936] = 13,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9343), 1,
      sym_out,
    ACTIONS(9481), 1,
      sym_in,
    STATE(2305), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [100982] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4908), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101022] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4651), 1,
      sym__parameters,
    STATE(4946), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3957), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101062] = 3,
    ACTIONS(3000), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3002), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [101088] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4908), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101128] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4819), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3948), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101168] = 5,
    ACTIONS(7741), 1,
      sym_in,
    ACTIONS(9483), 1,
      anon_sym_LPAREN,
    ACTIONS(9485), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7739), 14,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [101198] = 10,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4958), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6454), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101238] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4651), 1,
      sym__parameters,
    STATE(4819), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3948), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101278] = 13,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9343), 1,
      sym_out,
    ACTIONS(9481), 1,
      sym_in,
    STATE(2231), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101324] = 3,
    ACTIONS(6643), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6645), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [101350] = 10,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    STATE(4958), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6454), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101390] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4890), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101430] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8173), 6,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_out,
    ACTIONS(8171), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [101456] = 3,
    ACTIONS(3012), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3014), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [101482] = 3,
    ACTIONS(6653), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6655), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [101508] = 13,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101554] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101600] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9377), 1,
      sym_out,
    ACTIONS(9489), 1,
      sym_in,
    STATE(2501), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101646] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9377), 1,
      sym_out,
    ACTIONS(9489), 1,
      sym_in,
    STATE(2499), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101692] = 13,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9367), 1,
      sym_out,
    ACTIONS(9473), 1,
      sym_in,
    STATE(2784), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101738] = 13,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9343), 1,
      sym_out,
    ACTIONS(9481), 1,
      sym_in,
    STATE(2277), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101784] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4890), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101824] = 13,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9343), 1,
      sym_out,
    ACTIONS(9481), 1,
      sym_in,
    STATE(2274), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101870] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4970), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101910] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9377), 1,
      sym_out,
    ACTIONS(9489), 1,
      sym_in,
    STATE(2691), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [101956] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4970), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [101996] = 13,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9331), 1,
      sym_out,
    ACTIONS(9465), 1,
      sym_in,
    STATE(1641), 1,
      sym_function_body,
    STATE(1674), 1,
      sym_block_statement,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102042] = 3,
    ACTIONS(3036), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3038), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [102068] = 3,
    ACTIONS(6657), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6659), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [102094] = 13,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9343), 1,
      sym_out,
    ACTIONS(9481), 1,
      sym_in,
    STATE(2203), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102140] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4651), 1,
      sym__parameters,
    STATE(4818), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3948), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102180] = 3,
    ACTIONS(3044), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3046), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [102206] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4651), 1,
      sym__parameters,
    STATE(4904), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3957), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102246] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2499), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102292] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9377), 1,
      sym_out,
    ACTIONS(9489), 1,
      sym_in,
    STATE(2555), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102338] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2501), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102384] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102430] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4818), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3948), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102470] = 3,
    ACTIONS(3048), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3050), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [102496] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4856), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102536] = 13,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9367), 1,
      sym_out,
    ACTIONS(9473), 1,
      sym_in,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2830), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102582] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4856), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102622] = 13,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102668] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4855), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102708] = 3,
    ACTIONS(3024), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3026), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [102734] = 10,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    STATE(4836), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6412), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102774] = 10,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    STATE(4847), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4045), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102814] = 10,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4847), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4045), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102854] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4854), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102894] = 10,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    STATE(4867), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6440), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [102934] = 13,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9331), 1,
      sym_out,
    ACTIONS(9465), 1,
      sym_in,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1678), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [102980] = 13,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103026] = 10,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4836), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6412), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103066] = 13,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9367), 1,
      sym_out,
    ACTIONS(9473), 1,
      sym_in,
    STATE(2791), 1,
      sym_block_statement,
    STATE(2810), 1,
      sym_function_body,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103112] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4946), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3957), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103152] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4854), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103192] = 10,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    STATE(4906), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4065), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103232] = 13,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9335), 1,
      anon_sym_SEMI,
    ACTIONS(9337), 1,
      anon_sym_EQ_GT,
    ACTIONS(9339), 1,
      sym_do,
    ACTIONS(9343), 1,
      sym_out,
    ACTIONS(9481), 1,
      sym_in,
    STATE(2243), 1,
      sym_function_body,
    STATE(2363), 1,
      sym_block_statement,
    STATE(5264), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4985), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2361), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103278] = 10,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4906), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4065), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103318] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4855), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103358] = 13,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9393), 1,
      sym_out,
    ACTIONS(9493), 1,
      sym_in,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2660), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103404] = 13,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9355), 1,
      sym_out,
    ACTIONS(9495), 1,
      sym_in,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1514), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103450] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2555), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5000), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103496] = 13,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9393), 1,
      sym_out,
    ACTIONS(9493), 1,
      sym_in,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2640), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103542] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4875), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3987), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103582] = 13,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9359), 1,
      anon_sym_SEMI,
    ACTIONS(9361), 1,
      anon_sym_EQ_GT,
    ACTIONS(9363), 1,
      sym_do,
    ACTIONS(9367), 1,
      sym_out,
    ACTIONS(9473), 1,
      sym_in,
    STATE(2783), 1,
      sym_function_body,
    STATE(2791), 1,
      sym_block_statement,
    STATE(5298), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4982), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2460), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103628] = 13,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9355), 1,
      sym_out,
    ACTIONS(9495), 1,
      sym_in,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1460), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103674] = 6,
    ACTIONS(9403), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9497), 2,
      sym_nothrow,
      sym_pure,
    ACTIONS(7656), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4771), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7654), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [103706] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9377), 1,
      sym_out,
    ACTIONS(9489), 1,
      sym_in,
    STATE(2686), 1,
      sym_function_body,
    STATE(2712), 1,
      sym_block_statement,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103752] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4651), 1,
      sym__parameters,
    STATE(4875), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3987), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103792] = 13,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9393), 1,
      sym_out,
    ACTIONS(9493), 1,
      sym_in,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2643), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103838] = 13,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9355), 1,
      sym_out,
    ACTIONS(9495), 1,
      sym_in,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1464), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [103884] = 10,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    STATE(4899), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4070), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103924] = 10,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4899), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4070), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [103964] = 13,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9355), 1,
      sym_out,
    ACTIONS(9495), 1,
      sym_in,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1398), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104010] = 13,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9393), 1,
      sym_out,
    ACTIONS(9493), 1,
      sym_in,
    STATE(2575), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104056] = 13,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9355), 1,
      sym_out,
    ACTIONS(9495), 1,
      sym_in,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1362), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104102] = 13,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9331), 1,
      sym_out,
    ACTIONS(9465), 1,
      sym_in,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1737), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104148] = 13,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9369), 1,
      anon_sym_SEMI,
    ACTIONS(9371), 1,
      anon_sym_EQ_GT,
    ACTIONS(9373), 1,
      sym_do,
    ACTIONS(9377), 1,
      sym_out,
    ACTIONS(9489), 1,
      sym_in,
    STATE(2712), 1,
      sym_block_statement,
    STATE(2714), 1,
      sym_function_body,
    STATE(5250), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4981), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2447), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104194] = 10,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4867), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6440), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [104234] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7656), 6,
      sym_identifier,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_out,
    ACTIONS(7654), 11,
      anon_sym_LBRACE,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [104260] = 13,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9393), 1,
      sym_out,
    ACTIONS(9493), 1,
      sym_in,
    STATE(2547), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104306] = 13,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2643), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104352] = 3,
    ACTIONS(3028), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3030), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [104378] = 6,
    ACTIONS(9403), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9499), 2,
      sym_nothrow,
      sym_pure,
    ACTIONS(7674), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    STATE(4669), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7672), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [104410] = 3,
    ACTIONS(3032), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3034), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [104436] = 3,
    ACTIONS(3020), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3022), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [104462] = 3,
    ACTIONS(2992), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2994), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [104488] = 3,
    ACTIONS(3056), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3058), 16,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_if,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [104514] = 13,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2660), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104560] = 13,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9347), 1,
      anon_sym_SEMI,
    ACTIONS(9349), 1,
      anon_sym_EQ_GT,
    ACTIONS(9351), 1,
      sym_do,
    ACTIONS(9355), 1,
      sym_out,
    ACTIONS(9495), 1,
      sym_in,
    STATE(1357), 1,
      sym_block_statement,
    STATE(1413), 1,
      sym_function_body,
    STATE(5316), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4988), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1558), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104606] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4651), 1,
      sym__parameters,
    STATE(4826), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [104646] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4651), 1,
      sym__parameters,
    STATE(4938), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3987), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [104686] = 10,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    STATE(4826), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [104726] = 10,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(4938), 1,
      sym__parameter_with_attributes,
    STATE(5057), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3987), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [104766] = 13,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9385), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    STATE(2590), 1,
      sym_block_statement,
    STATE(2640), 1,
      sym_function_body,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4986), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(5161), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104812] = 13,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9317), 1,
      anon_sym_SEMI,
    ACTIONS(9321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9325), 1,
      sym_do,
    ACTIONS(9331), 1,
      sym_out,
    ACTIONS(9465), 1,
      sym_in,
    STATE(1674), 1,
      sym_block_statement,
    STATE(1720), 1,
      sym_function_body,
    STATE(5312), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4984), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(1677), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104858] = 5,
    ACTIONS(9501), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9504), 2,
      sym_nothrow,
      sym_pure,
    STATE(4784), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7839), 10,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_out,
  [104888] = 13,
    ACTIONS(9381), 1,
      anon_sym_SEMI,
    ACTIONS(9383), 1,
      anon_sym_EQ_GT,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9389), 1,
      sym_do,
    ACTIONS(9393), 1,
      sym_out,
    ACTIONS(9493), 1,
      sym_in,
    STATE(2478), 1,
      sym_function_body,
    STATE(2590), 1,
      sym_block_statement,
    STATE(5282), 1,
      aux_sym__in_out_contract_expressions,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4992), 2,
      sym__function_contract,
      aux_sym_function_body_repeat1,
    STATE(2429), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5449), 3,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [104934] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3050), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [104957] = 6,
    ACTIONS(9507), 1,
      anon_sym_BANG,
    ACTIONS(9509), 1,
      anon_sym_LPAREN,
    STATE(4793), 1,
      sym_template_arguments,
    STATE(5013), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 12,
      anon_sym_LBRACE,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [104988] = 5,
    ACTIONS(9511), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9513), 2,
      sym_nothrow,
      sym_pure,
    STATE(4784), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7672), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_out,
  [105017] = 5,
    ACTIONS(9511), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9515), 2,
      sym_nothrow,
      sym_pure,
    STATE(4788), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7654), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_out,
  [105046] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9517), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    STATE(4813), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105077] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2986), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105100] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3006), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105123] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6659), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105146] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6641), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105169] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9519), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105200] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6655), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105223] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6645), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105246] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9521), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    STATE(4795), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105277] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9521), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105308] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2994), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105331] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3018), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105354] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2998), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105377] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3002), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105400] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3014), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105423] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3026), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105446] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3030), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105469] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3046), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105492] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3034), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105515] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3022), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105538] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3038), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105561] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3010), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105584] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9523), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    STATE(4799), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105615] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9523), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105646] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3058), 16,
      anon_sym_LBRACE,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [105669] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9525), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105699] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9529), 1,
      sym_htmlentity,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9533), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9537), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4973), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [105733] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9539), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4843), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105763] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9541), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3957), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [105797] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9543), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3957), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [105831] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9547), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [105865] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9551), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105895] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9553), 1,
      anon_sym_LBRACE,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9561), 1,
      anon_sym_SEMI,
    ACTIONS(9563), 1,
      anon_sym_COLON,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    STATE(1484), 1,
      sym__enum_body,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [105941] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9567), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4929), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [105971] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9569), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106001] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9571), 1,
      sym_htmlentity,
    ACTIONS(9573), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9575), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4846), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [106035] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9577), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3789), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106069] = 5,
    ACTIONS(9430), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9579), 2,
      sym_nothrow,
      sym_pure,
    STATE(4962), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7672), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [106097] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9569), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4960), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106127] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9581), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106157] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(8321), 1,
      anon_sym_EQ_GT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3804), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106191] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9583), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4909), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106221] = 8,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    ACTIONS(9585), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4070), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106255] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9587), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106285] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9589), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106319] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9591), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4873), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106349] = 8,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    ACTIONS(9593), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6440), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106383] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9595), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4954), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106413] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9597), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [106447] = 4,
    ACTIONS(9601), 1,
      anon_sym_DOT,
    ACTIONS(9603), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9599), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106473] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9605), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4959), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106503] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9607), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4912), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106533] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9609), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106563] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9611), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106593] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9581), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4865), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106623] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9613), 1,
      anon_sym_LBRACE,
    ACTIONS(9615), 1,
      anon_sym_SEMI,
    ACTIONS(9617), 1,
      anon_sym_COLON,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2508), 1,
      sym__enum_body,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [106669] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9619), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [106703] = 8,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    ACTIONS(9621), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4062), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106737] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9623), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106771] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9625), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106801] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9625), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4913), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106831] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9627), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4926), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106861] = 4,
    ACTIONS(9603), 1,
      sym_in,
    ACTIONS(9629), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9599), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [106887] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9631), 1,
      anon_sym_LBRACE,
    ACTIONS(9633), 1,
      anon_sym_SEMI,
    ACTIONS(9635), 1,
      anon_sym_COLON,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2493), 1,
      sym__enum_body,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [106933] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9637), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [106967] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9639), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107001] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9641), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3789), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107035] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9643), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107065] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9645), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4922), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107095] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9647), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4833), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107125] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9649), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4871), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107155] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9651), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4824), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107185] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9653), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [107219] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9655), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107249] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(7911), 1,
      anon_sym_EQ_GT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3804), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107283] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9657), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107313] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9659), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3987), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107347] = 8,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    ACTIONS(9661), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6454), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107381] = 8,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(8036), 1,
      anon_sym_EQ_GT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4048), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107415] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9666), 1,
      sym_htmlentity,
    ACTIONS(9671), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9669), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9674), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9663), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [107449] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9677), 1,
      sym_htmlentity,
    ACTIONS(9679), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9681), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4888), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [107483] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9647), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107513] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9683), 1,
      sym_htmlentity,
    ACTIONS(9685), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9687), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4901), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [107547] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9689), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107577] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7940), 8,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
  [107609] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9691), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3948), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107643] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9693), 1,
      anon_sym_LBRACE,
    ACTIONS(9695), 1,
      anon_sym_SEMI,
    ACTIONS(9697), 1,
      anon_sym_COLON,
    STATE(2358), 1,
      sym__enum_body,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [107689] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9699), 1,
      sym_htmlentity,
    ACTIONS(9701), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9703), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4862), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [107723] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9705), 1,
      sym_htmlentity,
    ACTIONS(9707), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9709), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4838), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [107757] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9711), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4932), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107787] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(8040), 1,
      anon_sym_EQ_GT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3967), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [107821] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9643), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4939), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107851] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9713), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4857), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107881] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9715), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4898), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107911] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9587), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4914), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107941] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9713), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [107971] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9717), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [108005] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9719), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108035] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9721), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [108069] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9723), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108099] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9725), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108133] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9727), 1,
      sym_htmlentity,
    ACTIONS(9729), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9731), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4886), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [108167] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9733), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108197] = 8,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    ACTIONS(9735), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6675), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108231] = 4,
    ACTIONS(9603), 1,
      sym_in,
    ACTIONS(9737), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9599), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108257] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9739), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3797), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108291] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9613), 1,
      anon_sym_LBRACE,
    ACTIONS(9741), 1,
      anon_sym_SEMI,
    ACTIONS(9743), 1,
      anon_sym_COLON,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2583), 1,
      sym__enum_body,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [108337] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9745), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4863), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108367] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9651), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108397] = 8,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    ACTIONS(9747), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4065), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108431] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9749), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [108465] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9751), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [108499] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9591), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108529] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9719), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4849), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108559] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9753), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3964), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108593] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(8210), 1,
      anon_sym_EQ_GT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3967), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108627] = 8,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9491), 1,
      sym_do,
    ACTIONS(9755), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4045), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5010), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108661] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9757), 1,
      sym_htmlentity,
    ACTIONS(9759), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9761), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4900), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [108695] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9763), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3791), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [108729] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9765), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108759] = 5,
    ACTIONS(9430), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9767), 2,
      sym_nothrow,
      sym_pure,
    STATE(4827), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7654), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [108787] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9765), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4902), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108817] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9769), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108847] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9771), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108877] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9773), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [108907] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9775), 1,
      anon_sym_LBRACE,
    ACTIONS(9777), 1,
      anon_sym_SEMI,
    ACTIONS(9779), 1,
      anon_sym_COLON,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2801), 1,
      sym__enum_body,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [108953] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9781), 1,
      sym_htmlentity,
    ACTIONS(9783), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9785), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4931), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [108987] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9771), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4965), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109017] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9787), 1,
      sym_htmlentity,
    ACTIONS(9789), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9791), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4948), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [109051] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9769), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4976), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109081] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9693), 1,
      anon_sym_LBRACE,
    ACTIONS(9793), 1,
      anon_sym_SEMI,
    ACTIONS(9795), 1,
      anon_sym_COLON,
    STATE(2213), 1,
      sym__enum_body,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [109127] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9797), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109157] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9799), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109187] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9801), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4892), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109217] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9799), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4974), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109247] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9551), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4967), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109277] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9801), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109307] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9803), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4829), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109337] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9723), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4842), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109367] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9805), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109397] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9803), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109427] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9807), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [109461] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9809), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109491] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9805), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4885), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109521] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9539), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109551] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9811), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4821), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109581] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9813), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4921), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109611] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9815), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109641] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9817), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3948), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [109675] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9819), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109705] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9631), 1,
      anon_sym_LBRACE,
    ACTIONS(9821), 1,
      anon_sym_SEMI,
    ACTIONS(9823), 1,
      anon_sym_COLON,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2701), 1,
      sym__enum_body,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [109751] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9809), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4934), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109781] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(8059), 1,
      anon_sym_EQ_GT,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3804), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [109815] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9811), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109845] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9825), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4943), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [109875] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9827), 1,
      anon_sym_LBRACE,
    ACTIONS(9829), 1,
      anon_sym_SEMI,
    ACTIONS(9831), 1,
      anon_sym_COLON,
    STATE(1682), 1,
      sym__enum_body,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [109921] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9833), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3964), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [109955] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9835), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [109989] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9837), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [110023] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9813), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110053] = 8,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    ACTIONS(9839), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6412), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [110087] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9841), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3789), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [110121] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9843), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4889), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110151] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9553), 1,
      anon_sym_LBRACE,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9845), 1,
      anon_sym_SEMI,
    ACTIONS(9847), 1,
      anon_sym_COLON,
    STATE(1475), 1,
      sym__enum_body,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [110197] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9843), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110227] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9849), 1,
      sym_htmlentity,
    ACTIONS(9851), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9853), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4820), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [110261] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9855), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4937), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110291] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9857), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4887), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110321] = 8,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9487), 1,
      sym_do,
    ACTIONS(9859), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6487), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5006), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [110355] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9861), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110385] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9863), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110415] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9861), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4930), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110445] = 5,
    ACTIONS(9865), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9868), 2,
      sym_nothrow,
      sym_pure,
    STATE(4962), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(7839), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [110473] = 8,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9475), 1,
      sym_do,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9871), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3987), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5034), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [110507] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9863), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4815), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110537] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9873), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110567] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9875), 1,
      sym_htmlentity,
    ACTIONS(9877), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9879), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4947), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [110601] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9881), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110631] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9883), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [110665] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9885), 1,
      sym_htmlentity,
    ACTIONS(9887), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9889), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4968), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [110699] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9891), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [110733] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9745), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110763] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9893), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4949), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110793] = 8,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(9535), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(9545), 1,
      sym_htmlentity,
    ACTIONS(9895), 2,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(9549), 3,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
    STATE(4869), 3,
      sym_escape_sequence,
      sym_interpolation_expression,
      aux_sym_interpolated_quoted_string_repeat1,
    ACTIONS(9527), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [110827] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9893), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110857] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9733), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4971), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110887] = 6,
    ACTIONS(9032), 1,
      anon_sym_AT,
    ACTIONS(9855), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4594), 2,
      sym_member_function_attribute,
      aux_sym_alias_declaration_repeat2,
    STATE(4590), 3,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
    ACTIONS(9323), 8,
      sym_const,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [110917] = 8,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9479), 1,
      sym_do,
    ACTIONS(9897), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3790), 2,
      sym_block_statement,
      sym__specified_function_body,
    STATE(5042), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [110951] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9775), 1,
      anon_sym_LBRACE,
    ACTIONS(9899), 1,
      anon_sym_SEMI,
    ACTIONS(9901), 1,
      anon_sym_COLON,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(2884), 1,
      sym__enum_body,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [110997] = 14,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    ACTIONS(9827), 1,
      anon_sym_LBRACE,
    ACTIONS(9903), 1,
      anon_sym_SEMI,
    ACTIONS(9905), 1,
      anon_sym_COLON,
    STATE(1619), 1,
      sym__enum_body,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [111043] = 3,
    ACTIONS(9909), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9907), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111066] = 9,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9377), 1,
      sym_out,
    ACTIONS(9489), 1,
      sym_in,
    ACTIONS(9911), 1,
      anon_sym_SEMI,
    ACTIONS(9913), 1,
      sym_do,
    STATE(2554), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(2457), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111101] = 9,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(9367), 1,
      sym_out,
    ACTIONS(9473), 1,
      sym_in,
    ACTIONS(9915), 1,
      anon_sym_SEMI,
    ACTIONS(9917), 1,
      sym_do,
    STATE(2898), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(2454), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111136] = 3,
    ACTIONS(9921), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9919), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111159] = 9,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(9331), 1,
      sym_out,
    ACTIONS(9465), 1,
      sym_in,
    ACTIONS(9923), 1,
      anon_sym_SEMI,
    ACTIONS(9925), 1,
      sym_do,
    STATE(1752), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(1747), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111194] = 9,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(9343), 1,
      sym_out,
    ACTIONS(9481), 1,
      sym_in,
    ACTIONS(9927), 1,
      anon_sym_SEMI,
    ACTIONS(9929), 1,
      sym_do,
    STATE(2315), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(2303), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111229] = 9,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9931), 1,
      anon_sym_SEMI,
    ACTIONS(9933), 1,
      sym_do,
    STATE(2544), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5154), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111264] = 3,
    ACTIONS(9603), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9599), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111287] = 9,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(9355), 1,
      sym_out,
    ACTIONS(9495), 1,
      sym_in,
    ACTIONS(9935), 1,
      anon_sym_SEMI,
    ACTIONS(9937), 1,
      sym_do,
    STATE(1434), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(1518), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111322] = 3,
    ACTIONS(9941), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9939), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111345] = 8,
    ACTIONS(7982), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(9945), 1,
      anon_sym_STAR,
    ACTIONS(9947), 1,
      sym_delegate,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5001), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 7,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [111378] = 3,
    ACTIONS(9953), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9951), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111401] = 9,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(9393), 1,
      sym_out,
    ACTIONS(9493), 1,
      sym_in,
    ACTIONS(9931), 1,
      anon_sym_SEMI,
    ACTIONS(9955), 1,
      sym_do,
    STATE(2544), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(2434), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111436] = 3,
    ACTIONS(9959), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9957), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111459] = 3,
    ACTIONS(9963), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9961), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111482] = 4,
    ACTIONS(9509), 1,
      anon_sym_LPAREN,
    STATE(5013), 1,
      sym_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6649), 12,
      anon_sym_LBRACE,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [111507] = 8,
    ACTIONS(7982), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(9947), 1,
      sym_delegate,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(9965), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5004), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 7,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [111540] = 8,
    ACTIONS(7973), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(9947), 1,
      sym_delegate,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(9967), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4996), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7971), 7,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [111573] = 3,
    ACTIONS(9971), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9969), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111596] = 3,
    ACTIONS(9975), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9973), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111619] = 9,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(9911), 1,
      anon_sym_SEMI,
    ACTIONS(9913), 1,
      sym_do,
    STATE(2554), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5154), 3,
      sym__in_out_statement,
      sym_in_statement,
      sym_out_statement,
    STATE(5022), 5,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
      aux_sym_function_body_repeat1,
  [111654] = 8,
    ACTIONS(7961), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(9947), 1,
      sym_delegate,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(9965), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5004), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7959), 7,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [111687] = 3,
    ACTIONS(9979), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9977), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111710] = 3,
    ACTIONS(9983), 1,
      sym_in,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9981), 13,
      anon_sym_LBRACE,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_const,
      sym_do,
      sym_immutable,
      sym_inout,
      sym_nothrow,
      sym_out,
      sym_pure,
      sym_return,
      sym_scope,
      sym_shared,
  [111733] = 8,
    ACTIONS(7998), 1,
      sym_identifier,
    ACTIONS(9985), 1,
      anon_sym_LBRACK,
    ACTIONS(9988), 1,
      anon_sym_STAR,
    ACTIONS(9991), 1,
      sym_delegate,
    ACTIONS(9994), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5004), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7996), 7,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [111766] = 6,
    ACTIONS(9507), 1,
      anon_sym_BANG,
    ACTIONS(9997), 1,
      anon_sym_DOT,
    ACTIONS(9999), 1,
      anon_sym_LBRACK,
    STATE(4793), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 10,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
  [111795] = 7,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(10001), 1,
      sym_do,
    STATE(6409), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5022), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [111825] = 4,
    ACTIONS(10003), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
  [111849] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7763), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [111869] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4390), 1,
      sym_parameters,
    STATE(6284), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [111907] = 7,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(10009), 1,
      sym_do,
    STATE(4050), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5022), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [111937] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7739), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [111957] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4580), 1,
      sym_parameters,
    STATE(6166), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [111995] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6671), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112015] = 4,
    ACTIONS(10011), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8191), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
  [112039] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7759), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112059] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7767), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112079] = 7,
    ACTIONS(9426), 1,
      anon_sym_BANG,
    ACTIONS(10013), 1,
      anon_sym_DOT,
    ACTIONS(10015), 1,
      anon_sym_LBRACK,
    STATE(4615), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7940), 6,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [112109] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4432), 1,
      sym_parameters,
    STATE(6027), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112147] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4402), 1,
      sym_parameters,
    STATE(5762), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112185] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6667), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112205] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4555), 1,
      sym_parameters,
    STATE(6014), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112243] = 5,
    ACTIONS(10019), 1,
      sym_in,
    ACTIONS(10022), 1,
      sym_out,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10017), 3,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_do,
    STATE(5022), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [112269] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4392), 1,
      sym_parameters,
    STATE(5858), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112307] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4510), 1,
      sym_parameters,
    STATE(6306), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112345] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7755), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112365] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4417), 1,
      sym_parameters,
    STATE(5772), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112403] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10025), 1,
      anon_sym_DOT,
    ACTIONS(10027), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10031), 1,
      anon_sym_COLON,
    ACTIONS(10033), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10029), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112441] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6663), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112461] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4542), 1,
      sym_parameters,
    STATE(5961), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112499] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4440), 1,
      sym_parameters,
    STATE(6053), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112537] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4427), 1,
      sym_parameters,
    STATE(6070), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112575] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4446), 1,
      sym_parameters,
    STATE(6024), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112613] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4426), 1,
      sym_parameters,
    STATE(6369), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112651] = 7,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(10035), 1,
      sym_do,
    STATE(3969), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5022), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [112681] = 4,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7940), 9,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_STAR,
  [112705] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4436), 1,
      sym_parameters,
    STATE(5837), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112743] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4447), 1,
      sym_parameters,
    STATE(6076), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112781] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7743), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112801] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9426), 1,
      anon_sym_BANG,
    ACTIONS(10013), 1,
      anon_sym_DOT,
    ACTIONS(10015), 1,
      anon_sym_LBRACK,
    ACTIONS(10027), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10031), 1,
      anon_sym_COLON,
    ACTIONS(10033), 1,
      anon_sym_EQ,
    STATE(4615), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10037), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112839] = 11,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(4474), 1,
      sym_parameters,
    STATE(6364), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112877] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6677), 13,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      anon_sym_AT,
      anon_sym_EQ_GT,
      sym_delegate,
      sym_do,
      sym_function,
      sym_in,
      sym_nothrow,
      sym_out,
      sym_pure,
  [112897] = 7,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    ACTIONS(9379), 1,
      sym_out,
    ACTIONS(9477), 1,
      sym_in,
    ACTIONS(10040), 1,
      sym_do,
    STATE(3802), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5022), 8,
      sym__function_contract,
      sym__in_out_contract_expression,
      sym__in_out_statement,
      sym_in_contract_expression,
      sym_out_contract_expression,
      sym_in_statement,
      sym_out_statement,
      aux_sym_function_body_repeat1,
  [112927] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10044), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [112964] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10046), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113001] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10048), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113038] = 4,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10050), 6,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
      sym_htmlentity,
    ACTIONS(10052), 6,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_LPAREN,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
      anon_sym_DOLLAR_DQUOTE,
  [113061] = 3,
    ACTIONS(9997), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 11,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
  [113082] = 3,
    ACTIONS(10054), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8191), 11,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
  [113103] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10056), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113140] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10058), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113177] = 8,
    ACTIONS(7973), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10060), 1,
      anon_sym_STAR,
    ACTIONS(10062), 1,
      sym_delegate,
    ACTIONS(10064), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5053), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7971), 5,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [113208] = 3,
    ACTIONS(10066), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 11,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_STAR,
      sym_delegate,
      sym_do,
      sym_function,
      sym_if,
      sym_in,
      sym_out,
  [113229] = 8,
    ACTIONS(7982), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10062), 1,
      sym_delegate,
    ACTIONS(10064), 1,
      sym_function,
    ACTIONS(10068), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5056), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 5,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [113260] = 5,
    ACTIONS(9511), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9513), 2,
      sym_nothrow,
      sym_pure,
    STATE(4784), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(10070), 5,
      anon_sym_LBRACE,
      anon_sym_EQ_GT,
      sym_do,
      sym_in,
      sym_out,
  [113285] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10072), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113322] = 8,
    ACTIONS(7998), 1,
      sym_identifier,
    ACTIONS(9985), 1,
      anon_sym_LBRACK,
    ACTIONS(10074), 1,
      anon_sym_STAR,
    ACTIONS(10077), 1,
      sym_delegate,
    ACTIONS(10080), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5056), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7996), 5,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [113353] = 5,
    ACTIONS(9511), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10085), 2,
      sym_nothrow,
      sym_pure,
    STATE(5054), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
    ACTIONS(10083), 5,
      anon_sym_LBRACE,
      anon_sym_EQ_GT,
      sym_do,
      sym_in,
      sym_out,
  [113378] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10087), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113415] = 6,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10089), 1,
      anon_sym_DOT,
    STATE(3832), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 6,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [113442] = 4,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(3052), 6,
      anon_sym_DQUOTE,
      anon_sym_DOLLAR_LPAREN,
      sym_interpolated_escape,
      aux_sym_interpolated_quoted_string_token1,
      aux_sym_interpolated_quoted_string_token2,
      anon_sym_DOLLAR_DQUOTE,
    ACTIONS(3054), 6,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
      sym_htmlentity,
  [113465] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10091), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113502] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10093), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113539] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10095), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113576] = 6,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10097), 1,
      anon_sym_DOT,
    STATE(3832), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 6,
      anon_sym_DOT_DOT_DOT,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [113603] = 8,
    ACTIONS(7982), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10062), 1,
      sym_delegate,
    ACTIONS(10064), 1,
      sym_function,
    ACTIONS(10099), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5067), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 5,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [113634] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10101), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113671] = 8,
    ACTIONS(7961), 1,
      sym_identifier,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10062), 1,
      sym_delegate,
    ACTIONS(10064), 1,
      sym_function,
    ACTIONS(10068), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5056), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7959), 5,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [113702] = 11,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    ACTIONS(10103), 1,
      sym_this,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113739] = 10,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10107), 1,
      anon_sym_COLON,
    ACTIONS(10109), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10105), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [113774] = 4,
    ACTIONS(10097), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [113796] = 5,
    ACTIONS(10089), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8954), 3,
      anon_sym_RBRACE,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(8050), 4,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [113820] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8108), 4,
      sym_identifier,
      anon_sym_DOT,
      sym_delegate,
      sym_function,
    ACTIONS(8106), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [113840] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8065), 4,
      sym_identifier,
      anon_sym_DOT,
      sym_delegate,
      sym_function,
    ACTIONS(8067), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [113860] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10111), 1,
      anon_sym_DOT,
    ACTIONS(10113), 1,
      anon_sym_LBRACK,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7940), 4,
      anon_sym_RPAREN,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [113888] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10115), 1,
      anon_sym_STAR,
    ACTIONS(10117), 1,
      sym_delegate,
    ACTIONS(10119), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5079), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7959), 5,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      sym_do,
      sym_in,
      sym_out,
  [113916] = 6,
    ACTIONS(7644), 1,
      anon_sym_BANG,
    ACTIONS(10121), 1,
      anon_sym_DOT,
    ACTIONS(10123), 1,
      anon_sym_LBRACK,
    STATE(3136), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 7,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [113942] = 4,
    ACTIONS(10125), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8104), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8102), 7,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [113964] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10115), 1,
      anon_sym_STAR,
    ACTIONS(10117), 1,
      sym_delegate,
    ACTIONS(10119), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5079), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 5,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      sym_do,
      sym_in,
      sym_out,
  [113992] = 7,
    ACTIONS(9985), 1,
      anon_sym_LBRACK,
    ACTIONS(10127), 1,
      anon_sym_STAR,
    ACTIONS(10130), 1,
      sym_delegate,
    ACTIONS(10133), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5079), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7996), 5,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      sym_do,
      sym_in,
      sym_out,
  [114020] = 4,
    ACTIONS(10136), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [114042] = 4,
    ACTIONS(10013), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7940), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [114064] = 4,
    ACTIONS(10089), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 7,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_COLON,
      anon_sym_EQ,
      anon_sym_STAR,
  [114086] = 9,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10140), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10138), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [114118] = 4,
    ACTIONS(10142), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8191), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [114140] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10117), 1,
      sym_delegate,
    ACTIONS(10119), 1,
      sym_function,
    ACTIONS(10144), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5078), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7971), 5,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      sym_do,
      sym_in,
      sym_out,
  [114168] = 10,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [114202] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10117), 1,
      sym_delegate,
    ACTIONS(10119), 1,
      sym_function,
    ACTIONS(10146), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5075), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 5,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      sym_do,
      sym_in,
      sym_out,
  [114230] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(9735), 1,
      anon_sym_EQ_GT,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 6,
      anon_sym_LPAREN,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [114258] = 4,
    ACTIONS(10148), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8104), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8102), 7,
      anon_sym_DOT_DOT_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
  [114280] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10154), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10152), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5139), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114305] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10158), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10156), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5129), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114330] = 8,
    ACTIONS(7961), 1,
      sym_identifier,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(10160), 1,
      anon_sym_LBRACK,
    ACTIONS(10162), 1,
      anon_sym_STAR,
    ACTIONS(10164), 1,
      sym_delegate,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5095), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7959), 3,
      anon_sym_RPAREN,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [114359] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10168), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10166), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5114), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114384] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10172), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114409] = 8,
    ACTIONS(7998), 1,
      sym_identifier,
    ACTIONS(9994), 1,
      sym_function,
    ACTIONS(10174), 1,
      anon_sym_LBRACK,
    ACTIONS(10177), 1,
      anon_sym_STAR,
    ACTIONS(10180), 1,
      sym_delegate,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5095), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7996), 3,
      anon_sym_RPAREN,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [114438] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10183), 1,
      anon_sym_STAR,
    ACTIONS(10185), 1,
      sym_delegate,
    ACTIONS(10187), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5102), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [114465] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10189), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114490] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10191), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114515] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10183), 1,
      anon_sym_STAR,
    ACTIONS(10185), 1,
      sym_delegate,
    ACTIONS(10187), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5102), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7959), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [114542] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10195), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10193), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5098), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114567] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10199), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10197), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5110), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114592] = 7,
    ACTIONS(9985), 1,
      anon_sym_LBRACK,
    ACTIONS(10201), 1,
      anon_sym_STAR,
    ACTIONS(10204), 1,
      sym_delegate,
    ACTIONS(10207), 1,
      sym_function,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5102), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7996), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [114619] = 8,
    ACTIONS(7982), 1,
      sym_identifier,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(10160), 1,
      anon_sym_LBRACK,
    ACTIONS(10164), 1,
      sym_delegate,
    ACTIONS(10210), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5092), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 3,
      anon_sym_RPAREN,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [114648] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10185), 1,
      sym_delegate,
    ACTIONS(10187), 1,
      sym_function,
    ACTIONS(10212), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5099), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [114675] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10214), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114700] = 8,
    ACTIONS(7982), 1,
      sym_identifier,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(10160), 1,
      anon_sym_LBRACK,
    ACTIONS(10162), 1,
      anon_sym_STAR,
    ACTIONS(10164), 1,
      sym_delegate,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5095), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7980), 3,
      anon_sym_RPAREN,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [114729] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10218), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10216), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5097), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114754] = 7,
    ACTIONS(9943), 1,
      anon_sym_LBRACK,
    ACTIONS(10185), 1,
      sym_delegate,
    ACTIONS(10187), 1,
      sym_function,
    ACTIONS(10220), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5096), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7971), 4,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_EQ,
  [114781] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10222), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [114810] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10224), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114835] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10226), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [114864] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10228), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [114893] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10230), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [114922] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10232), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [114947] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10234), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [114976] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10238), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10236), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5123), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115001] = 8,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10240), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115030] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10242), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115055] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10244), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115084] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10246), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115109] = 8,
    ACTIONS(7973), 1,
      sym_identifier,
    ACTIONS(9949), 1,
      sym_function,
    ACTIONS(10160), 1,
      anon_sym_LBRACK,
    ACTIONS(10164), 1,
      sym_delegate,
    ACTIONS(10248), 1,
      anon_sym_STAR,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5106), 2,
      sym__type_suffix,
      aux_sym_type_repeat2,
    ACTIONS(7971), 3,
      anon_sym_RPAREN,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [115138] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10250), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115167] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10252), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115192] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10254), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115221] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10258), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10256), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5105), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115246] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10260), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_LPAREN,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115275] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10262), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115304] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10264), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115333] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10266), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115358] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10268), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115387] = 8,
    ACTIONS(7940), 1,
      anon_sym_STAR,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10270), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115416] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10274), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10272), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5118), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115441] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10282), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10279), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10276), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115466] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10286), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10284), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5138), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115491] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10290), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10288), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5120), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115516] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10292), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115541] = 8,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(9555), 1,
      anon_sym_DOT,
    ACTIONS(9559), 1,
      anon_sym_LBRACK,
    ACTIONS(10294), 1,
      anon_sym_EQ,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 2,
      anon_sym_COLON,
      anon_sym_STAR,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
  [115570] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10296), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115595] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10298), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10170), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5133), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115620] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10302), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10300), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5094), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115645] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10306), 1,
      aux_sym_raw_string_token4,
    ACTIONS(10304), 2,
      sym_htmlentity,
      aux_sym_quoted_string_token1,
    STATE(5136), 2,
      sym_escape_sequence,
      aux_sym_quoted_string_repeat1,
    ACTIONS(10150), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [115670] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7535), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115692] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10312), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [115718] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7773), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115740] = 10,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10314), 1,
      sym_identifier,
    ACTIONS(10316), 1,
      anon_sym_RPAREN,
    ACTIONS(10318), 1,
      anon_sym_COMMA,
    ACTIONS(10320), 1,
      anon_sym_EQ,
    STATE(3831), 1,
      sym_named_arguments,
    STATE(5792), 1,
      sym_ellipses,
    STATE(5794), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [115772] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7015), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115794] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7798), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115816] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10322), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [115842] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7997), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115864] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10324), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [115890] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8106), 9,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [115906] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7780), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115928] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7686), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115950] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4618), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
    ACTIONS(6721), 5,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_do,
      sym_in,
      sym_out,
  [115968] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(8006), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [115990] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10326), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116016] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10328), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116042] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7286), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116064] = 4,
    ACTIONS(10330), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [116084] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7200), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116106] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4299), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
    ACTIONS(6721), 5,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_do,
      sym_in,
      sym_out,
  [116124] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10332), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116150] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7821), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116172] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3104), 9,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_catch,
      sym_do,
      sym_else,
      sym_finally,
      sym_in,
      sym_out,
      sym_while,
  [116188] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10334), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116214] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7496), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116236] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3100), 9,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_catch,
      sym_do,
      sym_else,
      sym_finally,
      sym_in,
      sym_out,
      sym_while,
  [116252] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7654), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116274] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4954), 9,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_catch,
      sym_do,
      sym_else,
      sym_finally,
      sym_in,
      sym_out,
      sym_while,
  [116290] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7560), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116312] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10336), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116338] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7940), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116360] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7678), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116382] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10338), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116408] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7943), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116430] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10340), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116456] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7486), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116478] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8067), 9,
      anon_sym_DOT,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [116494] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7289), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116516] = 4,
    ACTIONS(10342), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8191), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [116536] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7697), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116558] = 3,
    ACTIONS(10344), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8191), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [116576] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4404), 9,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_catch,
      sym_do,
      sym_else,
      sym_finally,
      sym_in,
      sym_out,
      sym_while,
  [116592] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7492), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116614] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(6978), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116636] = 10,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10314), 1,
      sym_identifier,
    ACTIONS(10318), 1,
      anon_sym_COMMA,
    ACTIONS(10320), 1,
      anon_sym_EQ,
    ACTIONS(10346), 1,
      anon_sym_RPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    STATE(5792), 1,
      sym_ellipses,
    STATE(5794), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [116668] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7761), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116690] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10348), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [116716] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7954), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116738] = 3,
    ACTIONS(10121), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7940), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [116756] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7088), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116778] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(3072), 9,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_catch,
      sym_do,
      sym_else,
      sym_finally,
      sym_in,
      sym_out,
      sym_while,
  [116794] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7929), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116816] = 10,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10314), 1,
      sym_identifier,
    ACTIONS(10318), 1,
      anon_sym_COMMA,
    ACTIONS(10320), 1,
      anon_sym_EQ,
    ACTIONS(10350), 1,
      anon_sym_RPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    STATE(5792), 1,
      sym_ellipses,
    STATE(5794), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [116848] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7322), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116870] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7507), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116892] = 3,
    ACTIONS(10352), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 8,
      anon_sym_LPAREN,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COMMA,
      anon_sym_EQ,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [116910] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4946), 9,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_catch,
      sym_do,
      sym_else,
      sym_finally,
      sym_in,
      sym_out,
      sym_while,
  [116926] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7754), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116948] = 4,
    ACTIONS(10111), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7893), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7940), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [116968] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7757), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [116990] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7547), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [117012] = 7,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    ACTIONS(10354), 1,
      anon_sym_RBRACE,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117038] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7695), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [117060] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7712), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [117082] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7870), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [117104] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    STATE(7601), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10308), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [117126] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8193), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8191), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117143] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10356), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10358), 2,
      sym_nothrow,
      sym_pure,
    STATE(4643), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117164] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8025), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8027), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117181] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10360), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10362), 2,
      sym_nothrow,
      sym_pure,
    STATE(5209), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117202] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10364), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10358), 2,
      sym_nothrow,
      sym_pure,
    STATE(4643), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117223] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7674), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7672), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117240] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(7656), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(7654), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117257] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8061), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8063), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117274] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    STATE(6643), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117297] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10366), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10368), 2,
      sym_nothrow,
      sym_pure,
    STATE(5236), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117318] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10370), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10372), 2,
      sym_nothrow,
      sym_pure,
    STATE(5234), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117339] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8145), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8143), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117356] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8055), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8057), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117373] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8226), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8224), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117390] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    STATE(6345), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117413] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10374), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10376), 2,
      sym_nothrow,
      sym_pure,
    STATE(5212), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117434] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8173), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8171), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117451] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    STATE(5995), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117474] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    STATE(6300), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117497] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8104), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8102), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117514] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    STATE(6103), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117537] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10050), 8,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
      sym_htmlentity,
      aux_sym_raw_string_token4,
      aux_sym_quoted_string_token1,
  [117554] = 5,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(10378), 1,
      anon_sym_DOT,
    STATE(3982), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 5,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [117575] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8169), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8167), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117592] = 3,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8230), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8228), 5,
      anon_sym_RPAREN,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
      anon_sym_STAR,
  [117609] = 4,
    ACTIONS(10380), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5233), 2,
      aux_sym__variadic_arguments_attributes,
      sym_variadic_arguments_attribute,
    ACTIONS(10382), 5,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [117628] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10385), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10358), 2,
      sym_nothrow,
      sym_pure,
    STATE(4643), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117649] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    STATE(5800), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117672] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(10387), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10358), 2,
      sym_nothrow,
      sym_pure,
    STATE(4643), 4,
      sym_at_attribute,
      sym__function_attribute_kwd,
      sym__function_attribute,
      aux_sym__type_suffix_repeat1,
  [117693] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10310), 1,
      sym_identifier,
    STATE(5932), 1,
      sym_enum_member,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5270), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [117716] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10389), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10393), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5308), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [117738] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10395), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [117760] = 6,
    ACTIONS(10399), 1,
      sym_catch,
    ACTIONS(10401), 1,
      sym_finally,
    STATE(5634), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4161), 2,
      sym_else,
      sym_while,
    STATE(5263), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [117782] = 4,
    ACTIONS(10403), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [117800] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4474), 1,
      sym_parameters,
    STATE(6379), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [117824] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4432), 1,
      sym_parameters,
    STATE(6021), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [117848] = 3,
    ACTIONS(10411), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8102), 6,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [117864] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10413), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [117886] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10415), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10417), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5258), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [117908] = 4,
    ACTIONS(10419), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [117926] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10421), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [117948] = 4,
    ACTIONS(10425), 1,
      sym_htmlentity,
    STATE(7555), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [117966] = 5,
    ACTIONS(10427), 1,
      anon_sym_EQ_GT,
    ACTIONS(10429), 1,
      sym_in,
    ACTIONS(10431), 1,
      sym_out,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5284), 4,
      aux_sym__in_out_contract_expressions,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [117986] = 4,
    ACTIONS(10433), 1,
      sym_htmlentity,
    STATE(8012), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118004] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4580), 1,
      sym_parameters,
    STATE(6165), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118028] = 4,
    ACTIONS(10435), 1,
      sym_htmlentity,
    STATE(7775), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118046] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4440), 1,
      sym_parameters,
    STATE(6051), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118070] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4426), 1,
      sym_parameters,
    STATE(6390), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118094] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4542), 1,
      sym_parameters,
    STATE(5963), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118118] = 5,
    ACTIONS(10437), 1,
      sym_identifier,
    ACTIONS(10439), 1,
      anon_sym_AT,
    ACTIONS(10442), 1,
      sym_deprecated,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5257), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [118138] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10445), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118160] = 4,
    ACTIONS(10447), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [118178] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4417), 1,
      sym_parameters,
    STATE(5755), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118202] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4436), 1,
      sym_parameters,
    STATE(5833), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118226] = 4,
    ACTIONS(10449), 1,
      sym_htmlentity,
    STATE(7569), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118244] = 6,
    ACTIONS(10399), 1,
      sym_catch,
    ACTIONS(10401), 1,
      sym_finally,
    STATE(5651), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4151), 2,
      sym_else,
      sym_while,
    STATE(5396), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [118266] = 5,
    ACTIONS(10429), 1,
      sym_in,
    ACTIONS(10431), 1,
      sym_out,
    ACTIONS(10451), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5284), 4,
      aux_sym__in_out_contract_expressions,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [118286] = 4,
    ACTIONS(10453), 1,
      sym_htmlentity,
    STATE(7615), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118304] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10455), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118326] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10457), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10459), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5318), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118348] = 8,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7646), 1,
      anon_sym_RPAREN,
    ACTIONS(10461), 1,
      sym_identifier,
    ACTIONS(10463), 1,
      anon_sym_COMMA,
    ACTIONS(10465), 1,
      anon_sym_EQ,
    STATE(6087), 1,
      sym_ellipses,
    STATE(6088), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [118374] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10467), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118396] = 5,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(7775), 1,
      sym_deprecated,
    ACTIONS(10469), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5257), 4,
      sym_deprecated_attribute,
      sym_at_attribute,
      sym__enum_member_attribute,
      aux_sym_enum_member_repeat1,
  [118416] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10471), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118438] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10475), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10473), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10478), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118460] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10481), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10483), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5271), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118482] = 4,
    ACTIONS(10485), 1,
      sym_htmlentity,
    STATE(7107), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118500] = 4,
    ACTIONS(10487), 1,
      sym_htmlentity,
    STATE(7542), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118518] = 4,
    ACTIONS(10489), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [118536] = 4,
    ACTIONS(10491), 1,
      sym_htmlentity,
    STATE(7717), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118554] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10493), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10495), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5299), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118576] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4510), 1,
      sym_parameters,
    STATE(6307), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118600] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10497), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10499), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5269), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118622] = 4,
    ACTIONS(10501), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [118640] = 5,
    ACTIONS(10429), 1,
      sym_in,
    ACTIONS(10431), 1,
      sym_out,
    ACTIONS(10503), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5284), 4,
      aux_sym__in_out_contract_expressions,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [118660] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10505), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10507), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5266), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118682] = 5,
    ACTIONS(10509), 1,
      anon_sym_EQ_GT,
    ACTIONS(10511), 1,
      sym_in,
    ACTIONS(10514), 1,
      sym_out,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5284), 4,
      aux_sym__in_out_contract_expressions,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [118702] = 5,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    ACTIONS(10517), 1,
      anon_sym_DOT,
    STATE(3999), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 4,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [118722] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10519), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118744] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4390), 1,
      sym_parameters,
    STATE(6287), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118768] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4555), 1,
      sym_parameters,
    STATE(6043), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [118792] = 4,
    ACTIONS(10521), 1,
      sym_htmlentity,
    STATE(7073), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118810] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10523), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10525), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5239), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118832] = 4,
    ACTIONS(10527), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [118850] = 6,
    ACTIONS(10399), 1,
      sym_catch,
    ACTIONS(10529), 1,
      sym_finally,
    STATE(5651), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4151), 2,
      sym_else,
      sym_while,
    STATE(5396), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [118872] = 4,
    ACTIONS(10531), 1,
      sym_htmlentity,
    STATE(7549), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [118890] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10533), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10535), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5248), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118912] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10537), 7,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ_GT,
      sym_do,
      sym_in,
      sym_out,
  [118926] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10539), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10541), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5286), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118948] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10543), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10545), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5245), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [118970] = 5,
    ACTIONS(10429), 1,
      sym_in,
    ACTIONS(10431), 1,
      sym_out,
    ACTIONS(10547), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5284), 4,
      aux_sym__in_out_contract_expressions,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [118990] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10549), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [119012] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10551), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [119034] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4402), 1,
      sym_parameters,
    STATE(5753), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [119058] = 4,
    ACTIONS(10553), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [119076] = 4,
    ACTIONS(10555), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [119094] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4447), 1,
      sym_parameters,
    STATE(6327), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [119118] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10557), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10559), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5322), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [119140] = 4,
    ACTIONS(10561), 1,
      sym_htmlentity,
    STATE(7827), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [119158] = 4,
    ACTIONS(10563), 1,
      sym_htmlentity,
    STATE(7185), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [119176] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10565), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [119198] = 4,
    ACTIONS(10567), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [119216] = 4,
    ACTIONS(10569), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [119234] = 4,
    ACTIONS(10571), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [119252] = 5,
    ACTIONS(10429), 1,
      sym_in,
    ACTIONS(10431), 1,
      sym_out,
    ACTIONS(10573), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5284), 4,
      aux_sym__in_out_contract_expressions,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [119272] = 4,
    ACTIONS(10575), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8042), 3,
      sym_identifier,
      sym_delegate,
      sym_function,
    ACTIONS(8050), 3,
      anon_sym_LBRACK,
      anon_sym_COLON,
      anon_sym_STAR,
  [119290] = 6,
    ACTIONS(10399), 1,
      sym_catch,
    ACTIONS(10529), 1,
      sym_finally,
    STATE(5634), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4161), 2,
      sym_else,
      sym_while,
    STATE(5292), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [119312] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4392), 1,
      sym_parameters,
    STATE(5862), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [119336] = 5,
    ACTIONS(10429), 1,
      sym_in,
    ACTIONS(10431), 1,
      sym_out,
    ACTIONS(10577), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5284), 4,
      aux_sym__in_out_contract_expressions,
      sym__in_out_contract_expression,
      sym_in_contract_expression,
      sym_out_contract_expression,
  [119356] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4446), 1,
      sym_parameters,
    STATE(6045), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [119380] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10579), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [119402] = 4,
    ACTIONS(10581), 1,
      sym_htmlentity,
    STATE(7857), 1,
      sym_escape_sequence,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10423), 5,
      aux_sym_escape_sequence_token1,
      aux_sym_escape_sequence_token2,
      aux_sym_escape_sequence_token3,
      aux_sym_escape_sequence_token4,
      aux_sym_escape_sequence_token5,
  [119420] = 3,
    ACTIONS(10378), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 6,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_RBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [119436] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10583), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    ACTIONS(10585), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    STATE(5300), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [119458] = 6,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(10391), 1,
      anon_sym_DOLLAR_LPAREN,
    ACTIONS(10397), 2,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
    ACTIONS(10587), 2,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_BQUOTE,
    STATE(5272), 2,
      sym_interpolation_expression,
      aux_sym_interpolated_raw_string_repeat1,
  [119480] = 8,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10314), 1,
      sym_identifier,
    ACTIONS(10318), 1,
      anon_sym_COMMA,
    ACTIONS(10320), 1,
      anon_sym_EQ,
    ACTIONS(10589), 1,
      anon_sym_RPAREN,
    STATE(5792), 1,
      sym_ellipses,
    STATE(5794), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119506] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(4427), 1,
      sym_parameters,
    STATE(6050), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [119530] = 3,
    ACTIONS(10591), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8102), 5,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [119545] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10593), 1,
      sym_identifier,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10597), 1,
      anon_sym_SEMI,
    STATE(5363), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5669), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119568] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10599), 1,
      sym_identifier,
    ACTIONS(10601), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6619), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119591] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10603), 1,
      sym_identifier,
    ACTIONS(10605), 1,
      anon_sym_SEMI,
    STATE(5450), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5669), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119614] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10607), 6,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_EQ_GT,
      sym_do,
      sym_in,
      sym_out,
  [119627] = 6,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10612), 1,
      anon_sym_COLON,
    ACTIONS(10614), 1,
      anon_sym_EQ,
    STATE(6836), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10609), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [119648] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10618), 1,
      anon_sym_SEMI,
    ACTIONS(10620), 1,
      anon_sym_COLON,
    STATE(1681), 1,
      sym_aggregate_body,
    STATE(5445), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119671] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10622), 1,
      anon_sym_SEMI,
    ACTIONS(10624), 1,
      anon_sym_COLON,
    STATE(1672), 1,
      sym_aggregate_body,
    STATE(5535), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119694] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10603), 1,
      sym_identifier,
    ACTIONS(10605), 1,
      anon_sym_SEMI,
    STATE(5450), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6747), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119717] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10626), 1,
      sym_identifier,
    ACTIONS(10628), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6938), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119740] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8306), 6,
      anon_sym_DOT_DOT_DOT,
      sym_const,
      sym_immutable,
      sym_return,
      sym_scope,
      sym_shared,
  [119753] = 4,
    ACTIONS(10630), 1,
      anon_sym_DOT,
    STATE(5442), 1,
      aux_sym_module_fqn_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10632), 4,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [119770] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(10636), 1,
      anon_sym_SEMI,
    ACTIONS(10638), 1,
      anon_sym_COLON,
    STATE(2749), 1,
      sym_aggregate_body,
    STATE(5382), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119793] = 6,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10640), 1,
      sym_identifier,
    ACTIONS(10644), 1,
      anon_sym_EQ,
    STATE(6479), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10642), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [119814] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10646), 1,
      sym_identifier,
    ACTIONS(10648), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6446), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119837] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10650), 1,
      sym_identifier,
    ACTIONS(10652), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6817), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119860] = 6,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10654), 1,
      sym_identifier,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6349), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [119881] = 5,
    ACTIONS(10630), 1,
      anon_sym_DOT,
    ACTIONS(10660), 1,
      anon_sym_EQ,
    STATE(5336), 1,
      aux_sym_module_fqn_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10658), 3,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [119900] = 6,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(9271), 1,
      sym_deprecated,
    ACTIONS(10662), 1,
      sym_module,
    STATE(5565), 1,
      sym_deprecated_attribute,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5483), 2,
      sym_at_attribute,
      aux_sym_module_declaration_repeat1,
  [119921] = 6,
    ACTIONS(4151), 1,
      sym_while,
    ACTIONS(10664), 1,
      sym_catch,
    ACTIONS(10666), 1,
      sym_finally,
    STATE(5651), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5528), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [119942] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10668), 1,
      sym_identifier,
    ACTIONS(10670), 1,
      anon_sym_SEMI,
    STATE(5440), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5705), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119965] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    ACTIONS(10674), 1,
      anon_sym_SEMI,
    STATE(4851), 1,
      sym_parameters,
    STATE(5936), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6477), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [119988] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10678), 1,
      anon_sym_SEMI,
    ACTIONS(10680), 1,
      anon_sym_COLON,
    STATE(2584), 1,
      sym_aggregate_body,
    STATE(5395), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120011] = 3,
    ACTIONS(10517), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8050), 5,
      anon_sym_LPAREN,
      anon_sym_LBRACK,
      anon_sym_STAR,
      sym_delegate,
      sym_function,
  [120026] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10682), 1,
      anon_sym_SEMI,
    ACTIONS(10684), 1,
      anon_sym_COLON,
    STATE(2580), 1,
      sym_aggregate_body,
    STATE(5496), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120049] = 7,
    ACTIONS(9719), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4850), 1,
      sym_parameters,
    STATE(6236), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6490), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120072] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10686), 1,
      sym_identifier,
    ACTIONS(10688), 1,
      anon_sym_SEMI,
    STATE(5409), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5669), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120095] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10686), 1,
      sym_identifier,
    ACTIONS(10688), 1,
      anon_sym_SEMI,
    STATE(5409), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6726), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120118] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10668), 1,
      sym_identifier,
    ACTIONS(10670), 1,
      anon_sym_SEMI,
    STATE(5440), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6859), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120141] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10690), 1,
      sym_identifier,
    ACTIONS(10692), 1,
      anon_sym_SEMI,
    STATE(5357), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5705), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120164] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    ACTIONS(10694), 1,
      anon_sym_SEMI,
    STATE(4858), 1,
      sym_parameters,
    STATE(6350), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120187] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10690), 1,
      sym_identifier,
    ACTIONS(10692), 1,
      anon_sym_SEMI,
    STATE(5357), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6616), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120210] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10696), 1,
      sym_identifier,
    ACTIONS(10698), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6481), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120233] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10702), 1,
      anon_sym_SEMI,
    ACTIONS(10704), 1,
      anon_sym_COLON,
    STATE(1438), 1,
      sym_aggregate_body,
    STATE(6347), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120256] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10706), 1,
      anon_sym_SEMI,
    ACTIONS(10708), 1,
      anon_sym_COLON,
    STATE(2475), 1,
      sym_aggregate_body,
    STATE(5923), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120279] = 7,
    ACTIONS(9605), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4961), 1,
      sym_parameters,
    STATE(6193), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6806), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120302] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(10710), 1,
      anon_sym_SEMI,
    ACTIONS(10712), 1,
      anon_sym_COLON,
    STATE(2711), 1,
      sym_aggregate_body,
    STATE(5508), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120325] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10714), 1,
      anon_sym_SEMI,
    ACTIONS(10716), 1,
      anon_sym_COLON,
    STATE(1496), 1,
      sym_aggregate_body,
    STATE(5547), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120348] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10718), 1,
      sym_identifier,
    ACTIONS(10720), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6902), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120371] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10724), 1,
      anon_sym_SEMI,
    ACTIONS(10726), 1,
      anon_sym_COLON,
    STATE(2354), 1,
      sym_aggregate_body,
    STATE(5497), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120394] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10728), 1,
      sym_identifier,
    ACTIONS(10730), 1,
      anon_sym_SEMI,
    STATE(5471), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6559), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120417] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10626), 1,
      sym_identifier,
    ACTIONS(10628), 1,
      anon_sym_SEMI,
    STATE(5479), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5642), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120440] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10734), 1,
      anon_sym_SEMI,
    ACTIONS(10736), 1,
      anon_sym_COLON,
    STATE(2805), 1,
      sym_aggregate_body,
    STATE(5523), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120463] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10728), 1,
      sym_identifier,
    ACTIONS(10730), 1,
      anon_sym_SEMI,
    STATE(5471), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5705), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120486] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10738), 1,
      anon_sym_SEMI,
    ACTIONS(10740), 1,
      anon_sym_COLON,
    STATE(1408), 1,
      sym_aggregate_body,
    STATE(6249), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120509] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10626), 1,
      sym_identifier,
    ACTIONS(10628), 1,
      anon_sym_SEMI,
    STATE(5479), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6938), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120532] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10742), 1,
      sym_identifier,
    ACTIONS(10744), 1,
      anon_sym_SEMI,
    STATE(5408), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5669), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120555] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10646), 1,
      sym_identifier,
    ACTIONS(10648), 1,
      anon_sym_SEMI,
    STATE(5452), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5621), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120578] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10646), 1,
      sym_identifier,
    ACTIONS(10648), 1,
      anon_sym_SEMI,
    STATE(5452), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6446), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120601] = 6,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10746), 1,
      sym_identifier,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6267), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [120622] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10748), 1,
      anon_sym_SEMI,
    ACTIONS(10750), 1,
      anon_sym_COLON,
    STATE(2297), 1,
      sym_aggregate_body,
    STATE(5455), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120645] = 7,
    ACTIONS(9715), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4861), 1,
      sym_parameters,
    STATE(5851), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6614), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120668] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10752), 1,
      anon_sym_SEMI,
    ACTIONS(10754), 1,
      anon_sym_COLON,
    STATE(2911), 1,
      sym_aggregate_body,
    STATE(5423), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120691] = 4,
    ACTIONS(10630), 1,
      anon_sym_DOT,
    STATE(5336), 1,
      aux_sym_module_fqn_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10658), 4,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [120708] = 7,
    ACTIONS(9799), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4972), 1,
      sym_parameters,
    STATE(6209), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6880), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120731] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10756), 1,
      anon_sym_SEMI,
    ACTIONS(10758), 1,
      anon_sym_COLON,
    STATE(2333), 1,
      sym_aggregate_body,
    STATE(5417), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120754] = 7,
    ACTIONS(9805), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4882), 1,
      sym_parameters,
    STATE(5871), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6729), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120777] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(10760), 1,
      anon_sym_SEMI,
    ACTIONS(10762), 1,
      anon_sym_COLON,
    STATE(2596), 1,
      sym_aggregate_body,
    STATE(6297), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120800] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10764), 1,
      sym_identifier,
    ACTIONS(10766), 1,
      anon_sym_SEMI,
    STATE(5327), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6574), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120823] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10768), 1,
      sym_identifier,
    ACTIONS(10770), 1,
      anon_sym_SEMI,
    STATE(5334), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6856), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120846] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10718), 1,
      sym_identifier,
    ACTIONS(10720), 1,
      anon_sym_SEMI,
    STATE(5433), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5621), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120869] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10772), 1,
      sym_identifier,
    ACTIONS(10774), 1,
      anon_sym_SEMI,
    STATE(5390), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6735), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120892] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10764), 1,
      sym_identifier,
    ACTIONS(10766), 1,
      anon_sym_SEMI,
    STATE(5327), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5642), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120915] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10764), 1,
      sym_identifier,
    ACTIONS(10766), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6574), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120938] = 6,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10776), 1,
      sym_identifier,
    ACTIONS(10780), 1,
      anon_sym_EQ,
    STATE(6549), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10778), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [120959] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10768), 1,
      sym_identifier,
    ACTIONS(10770), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6856), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [120982] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10782), 1,
      sym_identifier,
    ACTIONS(10784), 1,
      anon_sym_SEMI,
    STATE(5339), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6654), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121005] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10728), 1,
      sym_identifier,
    ACTIONS(10730), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6559), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121028] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10786), 1,
      anon_sym_SEMI,
    ACTIONS(10788), 1,
      anon_sym_COLON,
    STATE(2798), 1,
      sym_aggregate_body,
    STATE(5460), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121051] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    ACTIONS(10790), 1,
      anon_sym_SEMI,
    STATE(4823), 1,
      sym_parameters,
    STATE(5998), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6777), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121074] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10792), 1,
      anon_sym_SEMI,
    ACTIONS(10794), 1,
      anon_sym_COLON,
    STATE(2536), 1,
      sym_aggregate_body,
    STATE(5996), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121097] = 4,
    ACTIONS(10796), 1,
      sym_catch,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5396), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
    ACTIONS(4171), 3,
      sym_else,
      sym_finally,
      sym_while,
  [121114] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10718), 1,
      sym_identifier,
    ACTIONS(10720), 1,
      anon_sym_SEMI,
    STATE(5433), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6902), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121137] = 6,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10799), 1,
      sym_identifier,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6130), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [121158] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10599), 1,
      sym_identifier,
    ACTIONS(10601), 1,
      anon_sym_SEMI,
    STATE(5475), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5705), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121181] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10801), 6,
      anon_sym_LBRACE,
      anon_sym_LPAREN,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      sym_if,
  [121194] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10803), 1,
      sym_identifier,
    ACTIONS(10805), 1,
      anon_sym_SEMI,
    STATE(5443), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6900), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121217] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10803), 1,
      sym_identifier,
    ACTIONS(10805), 1,
      anon_sym_SEMI,
    STATE(5443), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5705), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121240] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10599), 1,
      sym_identifier,
    ACTIONS(10601), 1,
      anon_sym_SEMI,
    STATE(5475), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6619), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121263] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10807), 1,
      sym_identifier,
    ACTIONS(10809), 1,
      anon_sym_SEMI,
    STATE(5465), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6773), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121286] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10811), 1,
      anon_sym_SEMI,
    ACTIONS(10813), 1,
      anon_sym_COLON,
    STATE(2281), 1,
      sym_aggregate_body,
    STATE(5526), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121309] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(10815), 1,
      anon_sym_SEMI,
    ACTIONS(10817), 1,
      anon_sym_COLON,
    STATE(2703), 1,
      sym_aggregate_body,
    STATE(6040), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121332] = 6,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10819), 1,
      sym_identifier,
    ACTIONS(10823), 1,
      anon_sym_EQ,
    STATE(6586), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10821), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [121353] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10825), 1,
      sym_identifier,
    ACTIONS(10827), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6484), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121376] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10829), 1,
      sym_identifier,
    ACTIONS(10831), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6802), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121399] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10829), 1,
      sym_identifier,
    ACTIONS(10831), 1,
      anon_sym_SEMI,
    STATE(5437), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5621), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121422] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10829), 1,
      sym_identifier,
    ACTIONS(10831), 1,
      anon_sym_SEMI,
    STATE(5437), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6802), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121445] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10825), 1,
      sym_identifier,
    ACTIONS(10827), 1,
      anon_sym_SEMI,
    STATE(5388), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5621), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121468] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10825), 1,
      sym_identifier,
    ACTIONS(10827), 1,
      anon_sym_SEMI,
    STATE(5388), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6484), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121491] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10768), 1,
      sym_identifier,
    ACTIONS(10770), 1,
      anon_sym_SEMI,
    STATE(5334), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5621), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121514] = 7,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7640), 1,
      anon_sym_RPAREN,
    ACTIONS(8937), 1,
      anon_sym_COMMA,
    ACTIONS(10833), 1,
      anon_sym_EQ,
    STATE(6258), 1,
      aux_sym__parameters_repeat1,
    STATE(6266), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121537] = 6,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10835), 1,
      sym_identifier,
    ACTIONS(10839), 1,
      anon_sym_EQ,
    STATE(6836), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10837), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [121558] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10748), 1,
      anon_sym_SEMI,
    ACTIONS(10841), 1,
      anon_sym_COLON,
    STATE(2297), 1,
      sym_aggregate_body,
    STATE(5799), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121581] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10782), 1,
      sym_identifier,
    ACTIONS(10784), 1,
      anon_sym_SEMI,
    STATE(5339), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5669), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121604] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10593), 1,
      sym_identifier,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10597), 1,
      anon_sym_SEMI,
    STATE(5363), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6939), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121627] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(10760), 1,
      anon_sym_SEMI,
    ACTIONS(10843), 1,
      anon_sym_COLON,
    STATE(2596), 1,
      sym_aggregate_body,
    STATE(5406), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121650] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10845), 1,
      anon_sym_SEMI,
    ACTIONS(10847), 1,
      anon_sym_COLON,
    STATE(1725), 1,
      sym_aggregate_body,
    STATE(5429), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121673] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10849), 1,
      sym_identifier,
    ACTIONS(10851), 1,
      anon_sym_SEMI,
    STATE(5482), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6814), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121696] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10853), 1,
      anon_sym_SEMI,
    ACTIONS(10855), 1,
      anon_sym_COLON,
    STATE(2868), 1,
      sym_aggregate_body,
    STATE(6216), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121719] = 7,
    ACTIONS(9627), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4923), 1,
      sym_parameters,
    STATE(5735), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6526), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121742] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(10857), 1,
      anon_sym_SEMI,
    ACTIONS(10859), 1,
      anon_sym_COLON,
    STATE(2679), 1,
      sym_aggregate_body,
    STATE(5534), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121765] = 7,
    ACTIONS(9645), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4924), 1,
      sym_parameters,
    STATE(6274), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6901), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121788] = 6,
    ACTIONS(4161), 1,
      sym_while,
    ACTIONS(10664), 1,
      sym_catch,
    ACTIONS(10666), 1,
      sym_finally,
    STATE(5634), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5344), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [121809] = 6,
    ACTIONS(4151), 1,
      sym_while,
    ACTIONS(10664), 1,
      sym_catch,
    ACTIONS(10861), 1,
      sym_finally,
    STATE(5651), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5528), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [121830] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10863), 1,
      anon_sym_SEMI,
    ACTIONS(10865), 1,
      anon_sym_COLON,
    STATE(1748), 1,
      sym_aggregate_body,
    STATE(5768), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121853] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10742), 1,
      sym_identifier,
    ACTIONS(10744), 1,
      anon_sym_SEMI,
    STATE(5408), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121876] = 6,
    ACTIONS(4161), 1,
      sym_while,
    ACTIONS(10664), 1,
      sym_catch,
    ACTIONS(10861), 1,
      sym_finally,
    STATE(5634), 1,
      sym_finally_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5428), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [121897] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10792), 1,
      anon_sym_SEMI,
    ACTIONS(10867), 1,
      anon_sym_COLON,
    STATE(2536), 1,
      sym_aggregate_body,
    STATE(5359), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121920] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10869), 1,
      sym_identifier,
    ACTIONS(10871), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6872), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121943] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10807), 1,
      sym_identifier,
    ACTIONS(10809), 1,
      anon_sym_SEMI,
    STATE(5465), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5642), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121966] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10873), 1,
      anon_sym_SEMI,
    ACTIONS(10875), 1,
      anon_sym_COLON,
    STATE(2532), 1,
      sym_aggregate_body,
    STATE(5503), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [121989] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10849), 1,
      sym_identifier,
    ACTIONS(10851), 1,
      anon_sym_SEMI,
    STATE(5482), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5642), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122012] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10849), 1,
      sym_identifier,
    ACTIONS(10851), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6814), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122035] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    ACTIONS(10877), 1,
      anon_sym_SEMI,
    STATE(4957), 1,
      sym_parameters,
    STATE(6286), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6539), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122058] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10879), 1,
      sym_identifier,
    ACTIONS(10881), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6835), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122081] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10883), 1,
      sym_identifier,
    ACTIONS(10885), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6881), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122104] = 7,
    ACTIONS(9801), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4975), 1,
      sym_parameters,
    STATE(5814), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6558), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122127] = 4,
    ACTIONS(10887), 1,
      anon_sym_DOT,
    STATE(5442), 1,
      aux_sym_module_fqn_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10890), 4,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [122144] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10892), 1,
      sym_identifier,
    ACTIONS(10894), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6877), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122167] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10896), 1,
      anon_sym_SEMI,
    ACTIONS(10898), 1,
      anon_sym_COLON,
    STATE(2903), 1,
      sym_aggregate_body,
    STATE(5491), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122190] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10845), 1,
      anon_sym_SEMI,
    ACTIONS(10900), 1,
      anon_sym_COLON,
    STATE(1725), 1,
      sym_aggregate_body,
    STATE(5935), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122213] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10902), 1,
      sym_identifier,
    ACTIONS(10904), 1,
      anon_sym_SEMI,
    STATE(5474), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6666), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122236] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10906), 1,
      anon_sym_SEMI,
    ACTIONS(10908), 1,
      anon_sym_COLON,
    STATE(1685), 1,
      sym_aggregate_body,
    STATE(5499), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122259] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10910), 6,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_EQ_GT,
      sym_do,
      sym_in,
      sym_out,
  [122272] = 4,
    ACTIONS(10912), 1,
      anon_sym_EQ_GT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10914), 2,
      sym_in,
      sym_out,
    ACTIONS(6721), 3,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      sym_do,
  [122289] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10902), 1,
      sym_identifier,
    ACTIONS(10904), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6666), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122312] = 7,
    ACTIONS(9861), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4927), 1,
      sym_parameters,
    STATE(6262), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6829), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122335] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10807), 1,
      sym_identifier,
    ACTIONS(10809), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6773), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122358] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10702), 1,
      anon_sym_SEMI,
    ACTIONS(10917), 1,
      anon_sym_COLON,
    STATE(1438), 1,
      sym_aggregate_body,
    STATE(5369), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122381] = 7,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(7646), 1,
      anon_sym_RPAREN,
    ACTIONS(10463), 1,
      anon_sym_COMMA,
    ACTIONS(10465), 1,
      anon_sym_EQ,
    STATE(6087), 1,
      sym_ellipses,
    STATE(6088), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122404] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10919), 1,
      anon_sym_SEMI,
    ACTIONS(10921), 1,
      anon_sym_COLON,
    STATE(2208), 1,
      sym_aggregate_body,
    STATE(5873), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122427] = 7,
    ACTIONS(9651), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4828), 1,
      sym_parameters,
    STATE(5911), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6581), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122450] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10923), 1,
      anon_sym_SEMI,
    ACTIONS(10925), 1,
      anon_sym_COLON,
    STATE(1473), 1,
      sym_aggregate_body,
    STATE(5358), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122473] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    ACTIONS(10927), 1,
      anon_sym_SEMI,
    STATE(4840), 1,
      sym_parameters,
    STATE(6098), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6776), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122496] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10929), 1,
      sym_identifier,
    ACTIONS(10931), 1,
      anon_sym_SEMI,
    STATE(5392), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6617), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122519] = 7,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10752), 1,
      anon_sym_SEMI,
    ACTIONS(10933), 1,
      anon_sym_COLON,
    STATE(2911), 1,
      sym_aggregate_body,
    STATE(6101), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122542] = 7,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10935), 1,
      anon_sym_SEMI,
    ACTIONS(10937), 1,
      anon_sym_COLON,
    STATE(1453), 1,
      sym_aggregate_body,
    STATE(5550), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122565] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10879), 1,
      sym_identifier,
    ACTIONS(10881), 1,
      anon_sym_SEMI,
    STATE(5340), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5705), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122588] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10869), 1,
      sym_identifier,
    ACTIONS(10871), 1,
      anon_sym_SEMI,
    STATE(5439), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6872), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122611] = 6,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10939), 1,
      sym_identifier,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5789), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [122632] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10690), 1,
      sym_identifier,
    ACTIONS(10692), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6616), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122655] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10772), 1,
      sym_identifier,
    ACTIONS(10774), 1,
      anon_sym_SEMI,
    STATE(5390), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5669), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122678] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10902), 1,
      sym_identifier,
    ACTIONS(10904), 1,
      anon_sym_SEMI,
    STATE(5474), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5621), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122701] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10879), 1,
      sym_identifier,
    ACTIONS(10881), 1,
      anon_sym_SEMI,
    STATE(5340), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6835), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122724] = 7,
    ACTIONS(9567), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4933), 1,
      sym_parameters,
    STATE(5947), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6744), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122747] = 7,
    ACTIONS(9857), 1,
      anon_sym_SEMI,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(4903), 1,
      sym_parameters,
    STATE(5941), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6813), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122770] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10941), 1,
      sym_identifier,
    ACTIONS(10943), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6521), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122793] = 6,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10823), 1,
      anon_sym_EQ,
    ACTIONS(10945), 1,
      sym_identifier,
    STATE(6586), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10821), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [122814] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10929), 1,
      sym_identifier,
    ACTIONS(10931), 1,
      anon_sym_SEMI,
    STATE(5392), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5642), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122837] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10929), 1,
      sym_identifier,
    ACTIONS(10931), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6617), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122860] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10947), 1,
      sym_identifier,
    ACTIONS(10949), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6636), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122883] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10951), 6,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_EQ_GT,
      sym_do,
      sym_in,
      sym_out,
  [122896] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10407), 1,
      anon_sym_COLON,
    ACTIONS(10409), 1,
      anon_sym_EQ,
    STATE(8009), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10405), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [122917] = 7,
    ACTIONS(10005), 1,
      anon_sym_LPAREN,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    ACTIONS(10953), 1,
      anon_sym_SEMI,
    STATE(4883), 1,
      sym_parameters,
    STATE(5796), 1,
      aux_sym__declarator_identifier_list_repeat1,
    STATE(6634), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122940] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10803), 1,
      sym_identifier,
    ACTIONS(10805), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6900), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [122963] = 6,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10955), 1,
      sym_identifier,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6199), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [122984] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10869), 1,
      sym_identifier,
    ACTIONS(10871), 1,
      anon_sym_SEMI,
    STATE(5439), 1,
      aux_sym_template_mixin_repeat1,
    STATE(5642), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123007] = 7,
    ACTIONS(9440), 1,
      anon_sym_BANG,
    ACTIONS(10595), 1,
      anon_sym_DOT,
    ACTIONS(10668), 1,
      sym_identifier,
    ACTIONS(10670), 1,
      anon_sym_SEMI,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    STATE(6859), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123030] = 4,
    ACTIONS(10957), 1,
      anon_sym_AT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10960), 2,
      sym_deprecated,
      sym_module,
    STATE(5483), 2,
      sym_at_attribute,
      aux_sym_module_declaration_repeat1,
  [123046] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10962), 1,
      anon_sym_SEMI,
    STATE(1361), 1,
      sym_aggregate_body,
    STATE(6231), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123066] = 6,
    ACTIONS(10964), 1,
      sym_identifier,
    ACTIONS(10966), 1,
      anon_sym_LPAREN,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7996), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123086] = 5,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(10968), 1,
      anon_sym_EQ,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9161), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [123104] = 6,
    ACTIONS(10964), 1,
      sym_identifier,
    ACTIONS(10966), 1,
      anon_sym_LPAREN,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7473), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123124] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10970), 1,
      anon_sym_SEMI,
    STATE(2258), 1,
      sym_aggregate_body,
    STATE(5819), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123144] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10972), 1,
      anon_sym_SEMI,
    STATE(2524), 1,
      sym_aggregate_body,
    STATE(5506), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123164] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10974), 1,
      anon_sym_SEMI,
    STATE(2526), 1,
      sym_aggregate_body,
    STATE(5505), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123184] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10976), 1,
      anon_sym_COLON,
    STATE(2862), 1,
      sym_aggregate_body,
    STATE(6224), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123204] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10972), 1,
      anon_sym_SEMI,
    STATE(2524), 1,
      sym_aggregate_body,
    STATE(5970), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123224] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10978), 1,
      anon_sym_SEMI,
    STATE(2851), 1,
      sym_aggregate_body,
    STATE(6242), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123244] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10980), 1,
      anon_sym_SEMI,
    STATE(2256), 1,
      sym_aggregate_body,
    STATE(5821), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123264] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10974), 1,
      anon_sym_SEMI,
    STATE(2526), 1,
      sym_aggregate_body,
    STATE(5971), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123284] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10982), 1,
      anon_sym_COLON,
    STATE(2532), 1,
      sym_aggregate_body,
    STATE(5983), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123304] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10984), 1,
      anon_sym_COLON,
    STATE(2281), 1,
      sym_aggregate_body,
    STATE(5807), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123324] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10986), 1,
      anon_sym_SEMI,
    STATE(2847), 1,
      sym_aggregate_body,
    STATE(6243), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123344] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10988), 1,
      anon_sym_COLON,
    STATE(1672), 1,
      sym_aggregate_body,
    STATE(5893), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123364] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10970), 1,
      anon_sym_SEMI,
    STATE(2258), 1,
      sym_aggregate_body,
    STATE(5529), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123384] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10980), 1,
      anon_sym_SEMI,
    STATE(2256), 1,
      sym_aggregate_body,
    STATE(5532), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123404] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(3052), 5,
      anon_sym_BQUOTE,
      anon_sym_DOLLAR_LPAREN,
      aux_sym_interpolated_raw_string_token1,
      aux_sym_interpolated_raw_string_token2,
      anon_sym_DOLLAR_BQUOTE,
  [123418] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10990), 1,
      anon_sym_COLON,
    STATE(2614), 1,
      sym_aggregate_body,
    STATE(5914), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123438] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10992), 1,
      anon_sym_SEMI,
    STATE(2893), 1,
      sym_aggregate_body,
    STATE(5498), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123458] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10994), 1,
      anon_sym_SEMI,
    STATE(2488), 1,
      sym_aggregate_body,
    STATE(5908), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123478] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10996), 1,
      anon_sym_SEMI,
    STATE(2490), 1,
      sym_aggregate_body,
    STATE(5907), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123498] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10998), 1,
      anon_sym_SEMI,
    STATE(2900), 1,
      sym_aggregate_body,
    STATE(5493), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123518] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11000), 1,
      anon_sym_COLON,
    STATE(2730), 1,
      sym_aggregate_body,
    STATE(6057), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123538] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10992), 1,
      anon_sym_SEMI,
    STATE(2893), 1,
      sym_aggregate_body,
    STATE(6155), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123558] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11002), 1,
      anon_sym_SEMI,
    STATE(2574), 1,
      sym_aggregate_body,
    STATE(5492), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123578] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11004), 1,
      anon_sym_SEMI,
    STATE(2577), 1,
      sym_aggregate_body,
    STATE(5495), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123598] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11006), 1,
      anon_sym_SEMI,
    STATE(2745), 1,
      sym_aggregate_body,
    STATE(6058), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123618] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10998), 1,
      anon_sym_SEMI,
    STATE(2900), 1,
      sym_aggregate_body,
    STATE(6154), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123638] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11008), 1,
      anon_sym_SEMI,
    STATE(2742), 1,
      sym_aggregate_body,
    STATE(6064), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123658] = 6,
    ACTIONS(10964), 1,
      sym_identifier,
    ACTIONS(10966), 1,
      anon_sym_LPAREN,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7762), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123678] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11010), 1,
      anon_sym_SEMI,
    STATE(2721), 1,
      sym_aggregate_body,
    STATE(5514), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123698] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10644), 1,
      anon_sym_EQ,
    STATE(6479), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10642), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [123716] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11012), 1,
      anon_sym_SEMI,
    STATE(2348), 1,
      sym_aggregate_body,
    STATE(5494), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123736] = 4,
    ACTIONS(11016), 1,
      anon_sym_BANG,
    STATE(2416), 1,
      sym_template_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11014), 3,
      sym_identifier,
      anon_sym_DOT,
      anon_sym_SEMI,
  [123752] = 5,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(11019), 1,
      anon_sym_EQ,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9153), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [123770] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11021), 1,
      anon_sym_SEMI,
    STATE(2350), 1,
      sym_aggregate_body,
    STATE(5488), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123790] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11023), 1,
      anon_sym_SEMI,
    STATE(2695), 1,
      sym_aggregate_body,
    STATE(5512), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123810] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11025), 1,
      anon_sym_COLON,
    STATE(2903), 1,
      sym_aggregate_body,
    STATE(6129), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123830] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10890), 5,
      anon_sym_DOT,
      anon_sym_RPAREN,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [123842] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(11027), 1,
      anon_sym_EQ,
    STATE(6459), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8952), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [123860] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11029), 1,
      anon_sym_COLON,
    STATE(2170), 1,
      sym_aggregate_body,
    STATE(5878), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123880] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11031), 1,
      anon_sym_SEMI,
    STATE(1580), 1,
      sym_aggregate_body,
    STATE(5880), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123900] = 4,
    ACTIONS(11033), 1,
      sym_catch,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4171), 2,
      sym_finally,
      sym_while,
    STATE(5528), 2,
      sym_catch_statement,
      aux_sym_try_statement_repeat1,
  [123916] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11036), 1,
      anon_sym_SEMI,
    STATE(2175), 1,
      sym_aggregate_body,
    STATE(5883), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123936] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11038), 1,
      anon_sym_SEMI,
    STATE(2821), 1,
      sym_aggregate_body,
    STATE(5509), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123956] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11023), 1,
      anon_sym_SEMI,
    STATE(2695), 1,
      sym_aggregate_body,
    STATE(6195), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123976] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11040), 1,
      anon_sym_SEMI,
    STATE(2177), 1,
      sym_aggregate_body,
    STATE(5884), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [123996] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11042), 1,
      anon_sym_SEMI,
    STATE(2814), 1,
      sym_aggregate_body,
    STATE(5513), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124016] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11044), 1,
      anon_sym_COLON,
    STATE(2711), 1,
      sym_aggregate_body,
    STATE(6317), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124036] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11046), 1,
      anon_sym_COLON,
    STATE(1754), 1,
      sym_aggregate_body,
    STATE(5782), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124056] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11048), 1,
      anon_sym_SEMI,
    STATE(1745), 1,
      sym_aggregate_body,
    STATE(5786), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124076] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11050), 1,
      anon_sym_SEMI,
    STATE(1743), 1,
      sym_aggregate_body,
    STATE(5791), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124096] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11052), 1,
      anon_sym_SEMI,
    STATE(1548), 1,
      sym_aggregate_body,
    STATE(5552), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124116] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11054), 1,
      anon_sym_SEMI,
    STATE(1547), 1,
      sym_aggregate_body,
    STATE(5558), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124136] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11056), 1,
      anon_sym_SEMI,
    STATE(1576), 1,
      sym_aggregate_body,
    STATE(5877), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124156] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11031), 1,
      anon_sym_SEMI,
    STATE(1580), 1,
      sym_aggregate_body,
    STATE(5536), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124176] = 4,
    ACTIONS(11058), 1,
      anon_sym_DOT,
    STATE(5542), 1,
      aux_sym_template_mixin_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11014), 3,
      sym_identifier,
      anon_sym_BANG,
      anon_sym_SEMI,
  [124192] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11010), 1,
      anon_sym_SEMI,
    STATE(2721), 1,
      sym_aggregate_body,
    STATE(6108), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124212] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11056), 1,
      anon_sym_SEMI,
    STATE(1576), 1,
      sym_aggregate_body,
    STATE(5537), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124232] = 4,
    ACTIONS(11061), 1,
      anon_sym_C,
    ACTIONS(11065), 1,
      anon_sym_Objective,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11063), 3,
      anon_sym_D,
      anon_sym_Windows,
      anon_sym_System,
  [124248] = 6,
    ACTIONS(10964), 1,
      sym_identifier,
    ACTIONS(10966), 1,
      anon_sym_LPAREN,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7406), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124268] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11067), 1,
      anon_sym_COLON,
    STATE(1453), 1,
      sym_aggregate_body,
    STATE(6332), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124288] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11069), 1,
      anon_sym_SEMI,
    STATE(1367), 1,
      sym_aggregate_body,
    STATE(6233), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124308] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11071), 1,
      anon_sym_SEMI,
    STATE(2494), 1,
      sym_aggregate_body,
    STATE(5531), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124328] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11073), 1,
      anon_sym_COLON,
    STATE(1393), 1,
      sym_aggregate_body,
    STATE(6238), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124348] = 4,
    ACTIONS(11075), 1,
      anon_sym_C,
    ACTIONS(11079), 1,
      anon_sym_Objective,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11077), 3,
      anon_sym_D,
      anon_sym_Windows,
      anon_sym_System,
  [124364] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11081), 1,
      anon_sym_SEMI,
    STATE(1461), 1,
      sym_aggregate_body,
    STATE(6316), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124384] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9483), 5,
      anon_sym_LBRACE,
      anon_sym_SEMI,
      anon_sym_COLON,
      anon_sym_EQ,
      sym_if,
  [124396] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(11083), 1,
      anon_sym_EQ,
    STATE(6669), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8962), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [124414] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11085), 1,
      anon_sym_SEMI,
    STATE(1695), 1,
      sym_aggregate_body,
    STATE(5527), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124434] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11087), 1,
      anon_sym_SEMI,
    STATE(1467), 1,
      sym_aggregate_body,
    STATE(5484), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124454] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11081), 1,
      anon_sym_SEMI,
    STATE(1461), 1,
      sym_aggregate_body,
    STATE(5548), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124474] = 6,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11087), 1,
      anon_sym_SEMI,
    STATE(1467), 1,
      sym_aggregate_body,
    STATE(6269), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124494] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11089), 1,
      anon_sym_SEMI,
    STATE(1697), 1,
      sym_aggregate_body,
    STATE(5540), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124514] = 5,
    ACTIONS(3131), 1,
      anon_sym_DOT_DOT_DOT,
    ACTIONS(10839), 1,
      anon_sym_EQ,
    STATE(6836), 1,
      sym_ellipses,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10837), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [124532] = 6,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11091), 1,
      anon_sym_SEMI,
    STATE(2516), 1,
      sym_aggregate_body,
    STATE(5543), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124552] = 6,
    ACTIONS(10964), 1,
      sym_identifier,
    ACTIONS(10966), 1,
      anon_sym_LPAREN,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7256), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124572] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2233), 1,
      sym_aggregate_body,
    STATE(6849), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124589] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4968), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [124600] = 4,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(11093), 1,
      sym_module,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5648), 2,
      sym_at_attribute,
      aux_sym_module_declaration_repeat1,
  [124615] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11014), 4,
      sym_identifier,
      anon_sym_DOT,
      anon_sym_BANG,
      anon_sym_SEMI,
  [124626] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4428), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [124637] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2699), 1,
      sym_aggregate_body,
    STATE(6637), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124654] = 4,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(11093), 1,
      sym_module,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5483), 2,
      sym_at_attribute,
      aux_sym_module_declaration_repeat1,
  [124669] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2270), 1,
      sym_aggregate_body,
    STATE(6820), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124686] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1388), 1,
      sym_aggregate_body,
    STATE(6606), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124703] = 4,
    ACTIONS(8964), 1,
      anon_sym_COMMA,
    STATE(5628), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11095), 2,
      anon_sym_RPAREN,
      anon_sym_SEMI,
  [124718] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1368), 1,
      sym_aggregate_body,
    STATE(6603), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124735] = 3,
    ACTIONS(11099), 1,
      sym_int_literal,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11097), 3,
      sym_identifier,
      sym_assert,
      sym_unittest,
  [124748] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2708), 1,
      sym_aggregate_body,
    STATE(6648), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124765] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11101), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6210), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [124780] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1630), 1,
      sym_aggregate_body,
    STATE(6868), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124797] = 3,
    ACTIONS(11103), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4368), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [124810] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4812), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9517), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [124825] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2630), 1,
      sym_aggregate_body,
    STATE(6873), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124842] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4795), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [124853] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7077), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124870] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11109), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6009), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [124885] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2267), 1,
      sym_aggregate_body,
    STATE(6828), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [124902] = 4,
    ACTIONS(10612), 1,
      anon_sym_COLON,
    ACTIONS(11111), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10105), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [124917] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5839), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [124932] = 3,
    ACTIONS(11115), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4361), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [124945] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6792), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [124960] = 3,
    ACTIONS(11117), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4642), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [124973] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4454), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [124984] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4444), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [124995] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4432), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125006] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11119), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6018), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125021] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2635), 1,
      sym_aggregate_body,
    STATE(6879), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125038] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4424), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125049] = 3,
    ACTIONS(11121), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2796), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [125062] = 4,
    ACTIONS(11125), 1,
      anon_sym_COLON,
    ACTIONS(11127), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11123), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [125077] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4412), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125088] = 3,
    ACTIONS(11131), 1,
      sym_int_literal,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11129), 3,
      sym_identifier,
      sym_assert,
      sym_unittest,
  [125101] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4394), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125112] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4384), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125123] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4380), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125134] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7120), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125151] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2239), 1,
      sym_aggregate_body,
    STATE(6841), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125168] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4668), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125179] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11133), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5767), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125194] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4376), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125205] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6018), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125220] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5959), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125235] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2649), 1,
      sym_aggregate_body,
    STATE(6884), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125252] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10746), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6267), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125267] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9161), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [125282] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4790), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11135), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [125297] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11137), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6026), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125312] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7333), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125329] = 4,
    ACTIONS(11139), 1,
      sym_identifier,
    ACTIONS(11141), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11143), 2,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [125344] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1448), 1,
      sym_aggregate_body,
    STATE(6623), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125361] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11145), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6210), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125376] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5844), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125391] = 3,
    ACTIONS(11147), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4448), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [125404] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6659), 4,
      sym_identifier,
      anon_sym_DOT,
      anon_sym_BANG,
      anon_sym_SEMI,
  [125415] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6210), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125430] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1452), 1,
      sym_aggregate_body,
    STATE(6635), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125447] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4287), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125458] = 4,
    ACTIONS(11151), 1,
      anon_sym_COMMA,
    STATE(5700), 1,
      aux_sym__base_class_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11149), 2,
      anon_sym_LBRACE,
      sym_if,
  [125473] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2285), 1,
      sym_aggregate_body,
    STATE(6811), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125490] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4584), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125501] = 4,
    ACTIONS(11153), 1,
      anon_sym_COMMA,
    STATE(5628), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9125), 2,
      anon_sym_RPAREN,
      anon_sym_SEMI,
  [125516] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4596), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125527] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9185), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [125542] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4604), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125553] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4648), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125564] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7762), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125581] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4151), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125592] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4842), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125603] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7404), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125620] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4440), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125631] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9203), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [125646] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11156), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6130), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125661] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10939), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5789), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125676] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2559), 1,
      sym_aggregate_body,
    STATE(6842), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125693] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6659), 4,
      sym_identifier,
      anon_sym_DOT,
      anon_sym_BANG,
      anon_sym_SEMI,
  [125704] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1652), 1,
      sym_aggregate_body,
    STATE(6878), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125721] = 4,
    ACTIONS(11158), 1,
      sym_identifier,
    ACTIONS(11160), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11162), 2,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [125736] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5767), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [125751] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9167), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [125766] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4976), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125777] = 4,
    ACTIONS(6781), 1,
      anon_sym_AT,
    ACTIONS(11164), 1,
      sym_module,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5483), 2,
      sym_at_attribute,
      aux_sym_module_declaration_repeat1,
  [125792] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4998), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125803] = 4,
    ACTIONS(165), 1,
      sym_new,
    ACTIONS(11166), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3848), 2,
      sym_new_expression,
      sym_template_instance,
  [125818] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5002), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125829] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7406), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125846] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5010), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125857] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11168), 4,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [125868] = 4,
    ACTIONS(3291), 1,
      sym_new,
    ACTIONS(11170), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(3979), 2,
      sym_new_expression,
      sym_template_instance,
  [125883] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(8021), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125900] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5082), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125911] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5078), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125922] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5074), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125933] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2806), 1,
      sym_aggregate_body,
    STATE(6500), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125950] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5066), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125961] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5062), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [125972] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2550), 1,
      sym_aggregate_body,
    STATE(6838), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [125989] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5038), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126000] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5026), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126011] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5014), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126022] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1490), 1,
      sym_aggregate_body,
    STATE(6647), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126039] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6171), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126054] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6659), 4,
      sym_identifier,
      anon_sym_DOT,
      anon_sym_BANG,
      anon_sym_SEMI,
  [126065] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2762), 1,
      sym_aggregate_body,
    STATE(6522), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126082] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4958), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126093] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4950), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126104] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4942), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126115] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11172), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6267), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126130] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4924), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126141] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4910), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126152] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4886), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126163] = 4,
    ACTIONS(10654), 1,
      sym_identifier,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6349), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126178] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4882), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126189] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10955), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6199), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126204] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4830), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126215] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4353), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126226] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4812), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126237] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4808), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126248] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2759), 1,
      sym_aggregate_body,
    STATE(6540), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126265] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2514), 1,
      sym_aggregate_body,
    STATE(6460), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126282] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4804), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126293] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9153), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [126308] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4785), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126319] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11174), 4,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [126330] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(5054), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126341] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7829), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126358] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11176), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6026), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126373] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6026), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126388] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4764), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126399] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4743), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126410] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4730), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126421] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4701), 4,
      sym_catch,
      sym_else,
      sym_finally,
      sym_while,
  [126432] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1656), 1,
      sym_aggregate_body,
    STATE(6887), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126449] = 4,
    ACTIONS(11151), 1,
      anon_sym_COMMA,
    STATE(5701), 1,
      aux_sym__base_class_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11178), 2,
      anon_sym_LBRACE,
      sym_if,
  [126464] = 4,
    ACTIONS(11182), 1,
      anon_sym_COMMA,
    STATE(5701), 1,
      aux_sym__base_class_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11180), 2,
      anon_sym_LBRACE,
      sym_if,
  [126479] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1718), 1,
      sym_aggregate_body,
    STATE(6913), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126496] = 3,
    ACTIONS(11185), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2663), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [126509] = 3,
    ACTIONS(11187), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4361), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [126522] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(6659), 4,
      sym_identifier,
      anon_sym_DOT,
      anon_sym_BANG,
      anon_sym_SEMI,
  [126533] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2792), 1,
      sym_aggregate_body,
    STATE(6572), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126550] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(10799), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6130), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126565] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2800), 1,
      sym_aggregate_body,
    STATE(6579), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126582] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1703), 1,
      sym_aggregate_body,
    STATE(6889), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126599] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6282), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126614] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2570), 1,
      sym_aggregate_body,
    STATE(6483), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126631] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7473), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126648] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6066), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126663] = 3,
    ACTIONS(11189), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4642), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [126676] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11191), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6066), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126691] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7162), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126708] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7421), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126725] = 4,
    ACTIONS(11193), 1,
      sym_identifier,
    ACTIONS(11195), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11197), 2,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [126740] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7996), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126757] = 4,
    ACTIONS(3681), 1,
      sym_new,
    ACTIONS(11199), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(4053), 2,
      sym_new_expression,
      sym_template_instance,
  [126772] = 4,
    ACTIONS(11201), 1,
      anon_sym_COLON,
    ACTIONS(11203), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10105), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [126787] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11205), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6374), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126802] = 3,
    ACTIONS(11207), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(4368), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [126815] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(6374), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126830] = 5,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2620), 1,
      sym_aggregate_body,
    STATE(6514), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126847] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11210), 4,
      anon_sym_RBRACE,
      anon_sym_RBRACK,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [126858] = 5,
    ACTIONS(10964), 1,
      sym_identifier,
    STATE(6273), 1,
      sym_imported,
    STATE(6383), 1,
      sym_module_fqn,
    STATE(7256), 1,
      sym__import_list,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126875] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4798), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9523), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [126890] = 4,
    ACTIONS(10656), 1,
      anon_sym_COLON,
    ACTIONS(11113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    STATE(5769), 2,
      sym_declarator,
      sym_bitfield_declarator,
  [126905] = 3,
    ACTIONS(11212), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(2782), 3,
      sym_catch,
      sym_finally,
      sym_while,
  [126918] = 4,
    ACTIONS(11214), 1,
      anon_sym_RPAREN,
    ACTIONS(11216), 1,
      anon_sym_COMMA,
    STATE(6208), 1,
      aux_sym__argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126932] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11218), 1,
      sym_identifier,
    STATE(1697), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126946] = 4,
    ACTIONS(11220), 1,
      sym_identifier,
    STATE(4664), 1,
      sym__qualified_id,
    STATE(5047), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126960] = 4,
    ACTIONS(11222), 1,
      anon_sym_RBRACK,
    ACTIONS(11224), 1,
      anon_sym_COMMA,
    STATE(5798), 1,
      aux_sym_index_expression_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126974] = 4,
    ACTIONS(9801), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [126988] = 4,
    ACTIONS(11226), 1,
      anon_sym_RPAREN,
    ACTIONS(11228), 1,
      anon_sym_COMMA,
    STATE(5790), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127002] = 4,
    ACTIONS(9857), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127016] = 4,
    ACTIONS(9627), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127030] = 4,
    ACTIONS(7799), 1,
      anon_sym_RBRACE,
    ACTIONS(11232), 1,
      anon_sym_COMMA,
    STATE(6046), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127044] = 4,
    ACTIONS(10953), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127058] = 4,
    ACTIONS(7813), 1,
      anon_sym_RBRACE,
    ACTIONS(11234), 1,
      anon_sym_COMMA,
    STATE(5806), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127072] = 4,
    ACTIONS(11236), 1,
      anon_sym_RBRACE,
    ACTIONS(11238), 1,
      anon_sym_COMMA,
    STATE(5803), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127086] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11242), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127100] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11242), 1,
      anon_sym_SEMI,
    STATE(5804), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127114] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11244), 1,
      anon_sym_SEMI,
    STATE(5899), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127128] = 4,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(9565), 1,
      anon_sym_EQ,
    STATE(7941), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127142] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11244), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127156] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11246), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127170] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4908), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127184] = 4,
    ACTIONS(9125), 1,
      anon_sym_COLON,
    ACTIONS(11248), 1,
      anon_sym_COMMA,
    STATE(5750), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127198] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11251), 1,
      anon_sym_LBRACE,
    STATE(6982), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127212] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11253), 1,
      anon_sym_LBRACE,
    STATE(7766), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127226] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4346), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127240] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11259), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127254] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4353), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127268] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11261), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127282] = 4,
    ACTIONS(11263), 1,
      sym_identifier,
    STATE(4659), 1,
      sym__qualified_id,
    STATE(5190), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127296] = 4,
    ACTIONS(9843), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4928), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127310] = 4,
    ACTIONS(10953), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(5826), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127324] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11265), 1,
      anon_sym_SEMI,
    STATE(4944), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127338] = 3,
    ACTIONS(11269), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11267), 2,
      sym_identifier,
      sym_default,
  [127350] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4346), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127364] = 4,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(11273), 1,
      anon_sym_LPAREN,
    STATE(2321), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127378] = 4,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2322), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127392] = 4,
    ACTIONS(11275), 1,
      sym_identifier,
    STATE(3877), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127406] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11279), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127420] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11261), 1,
      anon_sym_SEMI,
    STATE(5834), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127434] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11281), 1,
      anon_sym_COLON,
    STATE(1718), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127448] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11259), 1,
      anon_sym_SEMI,
    STATE(6069), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127462] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11283), 1,
      anon_sym_SEMI,
    STATE(5773), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127476] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11285), 1,
      anon_sym_SEMI,
    STATE(5838), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127490] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4353), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127504] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11287), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127518] = 4,
    ACTIONS(9827), 1,
      anon_sym_LBRACE,
    ACTIONS(11289), 1,
      anon_sym_SEMI,
    STATE(1670), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127532] = 4,
    ACTIONS(7813), 1,
      anon_sym_RBRACE,
    ACTIONS(11234), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127546] = 4,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10007), 1,
      anon_sym_EQ,
    STATE(7799), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127560] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11246), 1,
      anon_sym_SEMI,
    STATE(5824), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127574] = 4,
    ACTIONS(11291), 1,
      anon_sym_COMMA,
    ACTIONS(11294), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127588] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11296), 1,
      sym_identifier,
    STATE(2348), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127602] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11298), 1,
      sym_identifier,
    STATE(2350), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127616] = 4,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(11300), 1,
      anon_sym_LPAREN,
    STATE(2337), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127630] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11302), 1,
      anon_sym_COLON,
    STATE(1703), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127644] = 4,
    ACTIONS(3541), 1,
      anon_sym_RPAREN,
    ACTIONS(11304), 1,
      anon_sym_COMMA,
    STATE(6074), 1,
      aux_sym__template_argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127658] = 4,
    ACTIONS(11306), 1,
      anon_sym_LPAREN,
    STATE(4414), 1,
      sym_parameters,
    STATE(6934), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127672] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4832), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127686] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11308), 1,
      anon_sym_SEMI,
    STATE(1666), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127700] = 4,
    ACTIONS(9825), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4935), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127714] = 4,
    ACTIONS(11310), 1,
      anon_sym_RPAREN,
    ACTIONS(11312), 1,
      anon_sym_COMMA,
    STATE(6085), 1,
      aux_sym__named_argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127728] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11314), 1,
      anon_sym_SEMI,
    STATE(5756), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127742] = 4,
    ACTIONS(7624), 1,
      anon_sym_RPAREN,
    ACTIONS(11316), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127756] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11318), 1,
      anon_sym_SEMI,
    STATE(1665), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127770] = 4,
    ACTIONS(7646), 1,
      anon_sym_RPAREN,
    ACTIONS(10463), 1,
      anon_sym_COMMA,
    STATE(6088), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127784] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11320), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127798] = 4,
    ACTIONS(7646), 1,
      anon_sym_RPAREN,
    ACTIONS(10463), 1,
      anon_sym_COMMA,
    STATE(6099), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127812] = 3,
    ACTIONS(11322), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11324), 2,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [127824] = 4,
    ACTIONS(9715), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127838] = 4,
    ACTIONS(11326), 1,
      anon_sym_RBRACE,
    ACTIONS(11328), 1,
      anon_sym_COMMA,
    STATE(6100), 1,
      aux_sym_aggregate_initializer_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127852] = 4,
    ACTIONS(3335), 1,
      anon_sym_RBRACK,
    ACTIONS(11330), 1,
      anon_sym_COMMA,
    STATE(6302), 1,
      aux_sym_index_expression_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127866] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(10921), 1,
      anon_sym_COLON,
    STATE(2208), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127880] = 4,
    ACTIONS(11332), 1,
      anon_sym_RBRACE,
    ACTIONS(11334), 1,
      anon_sym_COMMA,
    STATE(5854), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127894] = 4,
    ACTIONS(9693), 1,
      anon_sym_LBRACE,
    ACTIONS(11336), 1,
      anon_sym_SEMI,
    STATE(2317), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127908] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11338), 1,
      anon_sym_SEMI,
    STATE(5743), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127922] = 4,
    ACTIONS(7833), 1,
      anon_sym_RBRACE,
    ACTIONS(11340), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127936] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11342), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127950] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11342), 1,
      anon_sym_SEMI,
    STATE(5857), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127964] = 4,
    ACTIONS(7801), 1,
      anon_sym_RBRACE,
    ACTIONS(11344), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127978] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11346), 1,
      anon_sym_COLON,
    STATE(2170), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [127992] = 4,
    ACTIONS(11348), 1,
      anon_sym_RBRACK,
    ACTIONS(11350), 1,
      anon_sym_COMMA,
    STATE(6117), 1,
      aux_sym_array_literal_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128006] = 4,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    ACTIONS(11352), 1,
      anon_sym_SEMI,
    STATE(5740), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128020] = 4,
    ACTIONS(11354), 1,
      anon_sym_RBRACE,
    ACTIONS(11356), 1,
      anon_sym_COMMA,
    STATE(6311), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128034] = 4,
    ACTIONS(10336), 1,
      anon_sym_RBRACE,
    ACTIONS(11358), 1,
      anon_sym_COMMA,
    STATE(6177), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128048] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11360), 1,
      anon_sym_LBRACE,
    STATE(7011), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128062] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(11362), 1,
      anon_sym_RPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128076] = 4,
    ACTIONS(9733), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128090] = 4,
    ACTIONS(11263), 1,
      sym_identifier,
    STATE(4657), 1,
      sym__qualified_id,
    STATE(5190), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128104] = 4,
    ACTIONS(7801), 1,
      anon_sym_RBRACE,
    ACTIONS(11344), 1,
      anon_sym_COMMA,
    STATE(5849), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128118] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(11364), 1,
      anon_sym_RPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128132] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11368), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128146] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11036), 1,
      anon_sym_SEMI,
    STATE(2175), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128160] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11370), 1,
      sym_identifier,
    STATE(2365), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128174] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11040), 1,
      anon_sym_SEMI,
    STATE(2177), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128188] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11372), 1,
      sym_identifier,
    STATE(2359), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128202] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11374), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128216] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11376), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128230] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11378), 1,
      anon_sym_SEMI,
    STATE(5818), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128244] = 4,
    ACTIONS(9715), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128258] = 4,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    ACTIONS(11380), 1,
      anon_sym_LPAREN,
    STATE(2352), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128272] = 4,
    ACTIONS(7833), 1,
      anon_sym_RBRACE,
    ACTIONS(11340), 1,
      anon_sym_COMMA,
    STATE(5875), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128286] = 4,
    ACTIONS(11382), 1,
      sym_identifier,
    ACTIONS(11384), 1,
      anon_sym_LPAREN,
    STATE(4640), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128300] = 4,
    ACTIONS(11386), 1,
      anon_sym_RBRACK,
    ACTIONS(11388), 1,
      anon_sym_COMMA,
    STATE(6117), 1,
      aux_sym_array_literal_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128314] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11390), 1,
      anon_sym_SEMI,
    STATE(5823), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128328] = 4,
    ACTIONS(11392), 1,
      sym_identifier,
    STATE(4664), 1,
      sym__qualified_id,
    STATE(5035), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128342] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4354), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128356] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11394), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128370] = 4,
    ACTIONS(11396), 1,
      anon_sym_LPAREN,
    STATE(4421), 1,
      sym_parameters,
    STATE(6458), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128384] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11376), 1,
      anon_sym_SEMI,
    STATE(5855), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128398] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4354), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128412] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11398), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128426] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11394), 1,
      anon_sym_SEMI,
    STATE(5885), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128440] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11400), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128454] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11402), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128468] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11404), 1,
      anon_sym_SEMI,
    STATE(5840), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128482] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11406), 1,
      anon_sym_SEMI,
    STATE(5841), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128496] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11408), 1,
      anon_sym_SEMI,
    STATE(5793), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128510] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11410), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128524] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11412), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128538] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11414), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128552] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11416), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128566] = 4,
    ACTIONS(7817), 1,
      anon_sym_RBRACE,
    ACTIONS(11418), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128580] = 4,
    ACTIONS(7803), 1,
      anon_sym_RBRACE,
    ACTIONS(11420), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128594] = 4,
    ACTIONS(9651), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128608] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11422), 1,
      anon_sym_SEMI,
    STATE(5845), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128622] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11424), 1,
      anon_sym_SEMI,
    STATE(5846), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128636] = 4,
    ACTIONS(10338), 1,
      anon_sym_RBRACE,
    ACTIONS(11426), 1,
      anon_sym_COMMA,
    STATE(6177), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128650] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11428), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128664] = 4,
    ACTIONS(7781), 1,
      anon_sym_RBRACE,
    ACTIONS(11430), 1,
      anon_sym_COMMA,
    STATE(5896), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128678] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11432), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128692] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4315), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128706] = 3,
    ACTIONS(11434), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11436), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
  [128718] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11408), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128732] = 4,
    ACTIONS(11438), 1,
      anon_sym_RBRACK,
    ACTIONS(11440), 1,
      anon_sym_COMMA,
    STATE(6135), 1,
      aux_sym_index_expression_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128746] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4315), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128760] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11442), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128774] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11444), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128788] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11446), 1,
      anon_sym_SEMI,
    STATE(5847), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128802] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11448), 1,
      anon_sym_SEMI,
    STATE(5863), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128816] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11446), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128830] = 4,
    ACTIONS(7789), 1,
      anon_sym_RBRACE,
    ACTIONS(11450), 1,
      anon_sym_COMMA,
    STATE(5850), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128844] = 4,
    ACTIONS(9811), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4925), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128858] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11452), 1,
      anon_sym_SEMI,
    STATE(5864), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128872] = 4,
    ACTIONS(9713), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128886] = 4,
    ACTIONS(7807), 1,
      anon_sym_RBRACE,
    ACTIONS(11454), 1,
      anon_sym_COMMA,
    STATE(5775), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128900] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11456), 1,
      anon_sym_COLON,
    STATE(2233), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128914] = 4,
    ACTIONS(9693), 1,
      anon_sym_LBRACE,
    ACTIONS(11458), 1,
      anon_sym_SEMI,
    STATE(2245), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128928] = 4,
    ACTIONS(7781), 1,
      anon_sym_RBRACE,
    ACTIONS(11430), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128942] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11432), 1,
      anon_sym_SEMI,
    STATE(5913), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128956] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11050), 1,
      anon_sym_SEMI,
    STATE(1743), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128970] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11460), 1,
      anon_sym_COLON,
    STATE(2239), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128984] = 4,
    ACTIONS(11462), 1,
      anon_sym_LPAREN,
    STATE(4465), 1,
      sym_parameters,
    STATE(6473), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [128998] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11048), 1,
      anon_sym_SEMI,
    STATE(1745), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129012] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4875), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129026] = 4,
    ACTIONS(11464), 1,
      anon_sym_RPAREN,
    ACTIONS(11466), 1,
      anon_sym_COMMA,
    STATE(5882), 1,
      aux_sym__argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129040] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11469), 1,
      anon_sym_SEMI,
    STATE(2247), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129054] = 4,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    ACTIONS(11471), 1,
      anon_sym_SEMI,
    STATE(2248), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129068] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11473), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129082] = 3,
    ACTIONS(11475), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11123), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [129094] = 4,
    ACTIONS(11477), 1,
      anon_sym_RBRACK,
    ACTIONS(11479), 1,
      anon_sym_COMMA,
    STATE(5808), 1,
      aux_sym_array_literal_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129108] = 4,
    ACTIONS(9108), 1,
      anon_sym_COMMA,
    ACTIONS(11095), 1,
      anon_sym_COLON,
    STATE(5750), 1,
      aux_sym_expression_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129122] = 4,
    ACTIONS(11481), 1,
      sym_identifier,
    STATE(3590), 1,
      sym__qualified_id,
    STATE(3610), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129136] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11483), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129150] = 3,
    ACTIONS(11487), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11485), 2,
      sym_identifier,
      sym_default,
  [129162] = 4,
    ACTIONS(11481), 1,
      sym_identifier,
    STATE(3610), 1,
      sym_template_instance,
    STATE(3619), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129176] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11489), 1,
      anon_sym_COLON,
    STATE(1754), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129190] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11491), 1,
      anon_sym_SEMI,
    STATE(5748), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129204] = 4,
    ACTIONS(7789), 1,
      anon_sym_RBRACE,
    ACTIONS(11450), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129218] = 4,
    ACTIONS(7793), 1,
      anon_sym_RBRACE,
    ACTIONS(11493), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129232] = 4,
    ACTIONS(11495), 1,
      anon_sym_COMMA,
    ACTIONS(11498), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129246] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11500), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129260] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11502), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129274] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11504), 1,
      anon_sym_SEMI,
    STATE(5890), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129288] = 4,
    ACTIONS(11506), 1,
      sym_identifier,
    STATE(3809), 1,
      sym_template_instance,
    STATE(3819), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129302] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11508), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129316] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11510), 1,
      anon_sym_SEMI,
    STATE(5898), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129330] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11491), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129344] = 4,
    ACTIONS(11512), 1,
      sym_identifier,
    ACTIONS(11514), 1,
      anon_sym_LPAREN,
    STATE(2406), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129358] = 4,
    ACTIONS(7807), 1,
      anon_sym_RBRACE,
    ACTIONS(11454), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129372] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11516), 1,
      anon_sym_SEMI,
    STATE(2619), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129386] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11518), 1,
      anon_sym_SEMI,
    STATE(2618), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129400] = 4,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(11520), 1,
      anon_sym_LPAREN,
    STATE(2765), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129414] = 4,
    ACTIONS(11522), 1,
      anon_sym_RPAREN,
    ACTIONS(11524), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129428] = 4,
    ACTIONS(9569), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129442] = 4,
    ACTIONS(7793), 1,
      anon_sym_RBRACE,
    ACTIONS(11493), 1,
      anon_sym_COMMA,
    STATE(5934), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129456] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11527), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129470] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11529), 1,
      anon_sym_COLON,
    STATE(2559), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129484] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11531), 1,
      sym_identifier,
    STATE(2767), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129498] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11533), 1,
      sym_identifier,
    STATE(2809), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129512] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11535), 1,
      anon_sym_SEMI,
    STATE(5867), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129526] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11527), 1,
      anon_sym_SEMI,
    STATE(5939), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129540] = 4,
    ACTIONS(7811), 1,
      anon_sym_RBRACE,
    ACTIONS(11537), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129554] = 4,
    ACTIONS(11539), 1,
      anon_sym_RPAREN,
    ACTIONS(11541), 1,
      anon_sym_COMMA,
    STATE(5920), 1,
      aux_sym__template_parameter_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129568] = 4,
    ACTIONS(9613), 1,
      anon_sym_LBRACE,
    ACTIONS(11544), 1,
      anon_sym_SEMI,
    STATE(2607), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129582] = 4,
    ACTIONS(11506), 1,
      sym_identifier,
    STATE(3809), 1,
      sym_template_instance,
    STATE(3820), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129596] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11546), 1,
      anon_sym_COLON,
    STATE(2550), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129610] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11548), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129624] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11550), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129638] = 4,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    ACTIONS(11552), 1,
      anon_sym_SEMI,
    STATE(6019), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129652] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11554), 1,
      anon_sym_SEMI,
    STATE(5924), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129666] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11556), 1,
      anon_sym_SEMI,
    STATE(5925), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129680] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11558), 1,
      anon_sym_SEMI,
    STATE(6029), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129694] = 4,
    ACTIONS(9765), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4835), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129708] = 4,
    ACTIONS(9827), 1,
      anon_sym_LBRACE,
    ACTIONS(11560), 1,
      anon_sym_SEMI,
    STATE(1757), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129722] = 4,
    ACTIONS(11562), 1,
      anon_sym_RBRACE,
    ACTIONS(11564), 1,
      anon_sym_COMMA,
    STATE(5811), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129736] = 4,
    ACTIONS(11566), 1,
      anon_sym_COMMA,
    ACTIONS(11569), 1,
      anon_sym_SEMI,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129750] = 4,
    ACTIONS(7819), 1,
      anon_sym_RBRACE,
    ACTIONS(11571), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129764] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(10865), 1,
      anon_sym_COLON,
    STATE(1748), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129778] = 4,
    ACTIONS(9627), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129792] = 4,
    ACTIONS(11573), 1,
      sym_identifier,
    STATE(5200), 1,
      sym_template_instance,
    STATE(5219), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129806] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4963), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129820] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11575), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129834] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11535), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129848] = 4,
    ACTIONS(9719), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129862] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11577), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129876] = 4,
    ACTIONS(7811), 1,
      anon_sym_RBRACE,
    ACTIONS(11537), 1,
      anon_sym_COMMA,
    STATE(5895), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129890] = 4,
    ACTIONS(10877), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129904] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11579), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129918] = 4,
    ACTIONS(10322), 1,
      anon_sym_RBRACE,
    ACTIONS(11581), 1,
      anon_sym_COMMA,
    STATE(6177), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129932] = 4,
    ACTIONS(9805), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129946] = 4,
    ACTIONS(7577), 1,
      anon_sym_RPAREN,
    ACTIONS(11583), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129960] = 4,
    ACTIONS(9583), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4911), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129974] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11585), 1,
      anon_sym_SEMI,
    STATE(5942), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [129988] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11587), 1,
      anon_sym_SEMI,
    STATE(5945), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130002] = 4,
    ACTIONS(11178), 1,
      anon_sym_LBRACE,
    ACTIONS(11589), 1,
      anon_sym_COMMA,
    STATE(6169), 1,
      aux_sym__base_class_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130016] = 4,
    ACTIONS(9595), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4952), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130030] = 4,
    ACTIONS(10328), 1,
      anon_sym_RBRACE,
    ACTIONS(11591), 1,
      anon_sym_COMMA,
    STATE(6177), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130044] = 4,
    ACTIONS(11593), 1,
      anon_sym_LPAREN,
    STATE(4467), 1,
      sym_parameters,
    STATE(6731), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130058] = 4,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(11595), 1,
      anon_sym_LPAREN,
    STATE(2848), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130072] = 4,
    ACTIONS(11597), 1,
      anon_sym_RBRACE,
    ACTIONS(11599), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130086] = 4,
    ACTIONS(7823), 1,
      anon_sym_RBRACE,
    ACTIONS(11602), 1,
      anon_sym_COMMA,
    STATE(6178), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130100] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11604), 1,
      anon_sym_SEMI,
    STATE(5902), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130114] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11606), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130128] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4334), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130142] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11604), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130156] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4334), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130170] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11608), 1,
      sym_identifier,
    STATE(2814), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130184] = 4,
    ACTIONS(7815), 1,
      anon_sym_RBRACE,
    ACTIONS(11610), 1,
      anon_sym_COMMA,
    STATE(5919), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130198] = 4,
    ACTIONS(9567), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130212] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11612), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130226] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11614), 1,
      sym_identifier,
    STATE(2821), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130240] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11616), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130254] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10996), 1,
      anon_sym_SEMI,
    STATE(2490), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130268] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10994), 1,
      anon_sym_SEMI,
    STATE(2488), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130282] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11618), 1,
      anon_sym_SEMI,
    STATE(5967), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130296] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11620), 1,
      anon_sym_SEMI,
    STATE(5969), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130310] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11622), 1,
      anon_sym_SEMI,
    STATE(6071), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130324] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11624), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130338] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11626), 1,
      anon_sym_LBRACE,
    STATE(7083), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130352] = 4,
    ACTIONS(11628), 1,
      anon_sym_COMMA,
    ACTIONS(11630), 1,
      anon_sym_SEMI,
    STATE(6181), 1,
      aux_sym__import_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130366] = 4,
    ACTIONS(11632), 1,
      sym_identifier,
    STATE(3873), 1,
      sym_template_instance,
    STATE(3925), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130380] = 4,
    ACTIONS(11634), 1,
      sym_identifier,
    ACTIONS(11636), 1,
      anon_sym_LPAREN,
    STATE(4624), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130394] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11638), 1,
      anon_sym_LBRACE,
    STATE(7122), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130408] = 4,
    ACTIONS(11640), 1,
      anon_sym_RBRACK,
    ACTIONS(11642), 1,
      anon_sym_COMMA,
    STATE(5830), 1,
      aux_sym_array_literal_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130422] = 4,
    ACTIONS(11632), 1,
      sym_identifier,
    STATE(3873), 1,
      sym_template_instance,
    STATE(3926), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130436] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11644), 1,
      anon_sym_COLON,
    STATE(2614), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130450] = 4,
    ACTIONS(11646), 1,
      sym_identifier,
    STATE(3890), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130464] = 4,
    ACTIONS(11648), 1,
      anon_sym_RPAREN,
    ACTIONS(11650), 1,
      anon_sym_COMMA,
    STATE(5783), 1,
      aux_sym__template_argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130478] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11652), 1,
      anon_sym_SEMI,
    STATE(5940), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130492] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11652), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130506] = 4,
    ACTIONS(9649), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4859), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130520] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4899), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130534] = 4,
    ACTIONS(7815), 1,
      anon_sym_RBRACE,
    ACTIONS(11610), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130548] = 4,
    ACTIONS(11654), 1,
      anon_sym_LPAREN,
    STATE(4433), 1,
      sym_parameters,
    STATE(6766), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130562] = 4,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(11656), 1,
      anon_sym_LPAREN,
    STATE(2567), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130576] = 4,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1622), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130590] = 4,
    ACTIONS(9613), 1,
      anon_sym_LBRACE,
    ACTIONS(11658), 1,
      anon_sym_SEMI,
    STATE(2473), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130604] = 4,
    ACTIONS(11660), 1,
      anon_sym_RBRACE,
    ACTIONS(11662), 1,
      anon_sym_COMMA,
    STATE(5946), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130618] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(10708), 1,
      anon_sym_COLON,
    STATE(2475), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130632] = 4,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(11664), 1,
      anon_sym_LPAREN,
    STATE(1623), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130646] = 4,
    ACTIONS(9567), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130660] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(11666), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130674] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11668), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [130684] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(11670), 1,
      sym_identifier,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130698] = 4,
    ACTIONS(11672), 1,
      sym_identifier,
    STATE(3913), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130712] = 4,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2427), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130726] = 4,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(11674), 1,
      anon_sym_LPAREN,
    STATE(2436), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130740] = 4,
    ACTIONS(7630), 1,
      anon_sym_RPAREN,
    ACTIONS(11676), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130754] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11678), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130768] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11680), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130782] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11682), 1,
      anon_sym_SEMI,
    STATE(6006), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130796] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11684), 1,
      anon_sym_SEMI,
    STATE(6052), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130810] = 4,
    ACTIONS(11686), 1,
      anon_sym_RPAREN,
    ACTIONS(11688), 1,
      anon_sym_COMMA,
    STATE(6041), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130824] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11690), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130838] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11692), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130852] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11694), 1,
      anon_sym_SEMI,
    STATE(6007), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130866] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4369), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130880] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11696), 1,
      anon_sym_SEMI,
    STATE(6011), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130894] = 4,
    ACTIONS(11698), 1,
      anon_sym_RPAREN,
    ACTIONS(11700), 1,
      anon_sym_COMMA,
    STATE(6095), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130908] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11702), 1,
      anon_sym_SEMI,
    STATE(5848), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130922] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11704), 1,
      anon_sym_SEMI,
    STATE(5860), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130936] = 4,
    ACTIONS(10927), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130950] = 4,
    ACTIONS(10674), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(5738), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130964] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4373), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130978] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11706), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [130992] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4890), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131006] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4350), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131020] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11708), 1,
      anon_sym_SEMI,
    STATE(5960), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131034] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11710), 1,
      anon_sym_SEMI,
    STATE(5962), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131048] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4373), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131062] = 4,
    ACTIONS(11712), 1,
      anon_sym_RBRACE,
    ACTIONS(11714), 1,
      anon_sym_COMMA,
    STATE(6113), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131076] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11716), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131090] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11716), 1,
      anon_sym_SEMI,
    STATE(6124), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131104] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11718), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131118] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(11720), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131132] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11722), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131146] = 4,
    ACTIONS(10790), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(5966), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131160] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11724), 1,
      anon_sym_LBRACE,
    STATE(7111), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131174] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11704), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131188] = 4,
    ACTIONS(9647), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4884), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131202] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(11726), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131216] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11728), 1,
      anon_sym_LBRACE,
    STATE(7151), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131230] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11730), 1,
      anon_sym_COLON,
    STATE(2708), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131244] = 4,
    ACTIONS(7587), 1,
      anon_sym_RPAREN,
    ACTIONS(11732), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131258] = 4,
    ACTIONS(9631), 1,
      anon_sym_LBRACE,
    ACTIONS(11734), 1,
      anon_sym_SEMI,
    STATE(2688), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131272] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4369), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131286] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11710), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131300] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4350), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131314] = 4,
    ACTIONS(7823), 1,
      anon_sym_RBRACE,
    ACTIONS(11602), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131328] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11736), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [131338] = 4,
    ACTIONS(11514), 1,
      anon_sym_LPAREN,
    ACTIONS(11738), 1,
      sym_identifier,
    STATE(2406), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131352] = 3,
    ACTIONS(11742), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11740), 2,
      sym_identifier,
      sym_default,
  [131364] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4319), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131378] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4364), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131392] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11744), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131406] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4364), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131420] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(11746), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131434] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11624), 1,
      anon_sym_SEMI,
    STATE(6240), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131448] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4834), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131462] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11748), 1,
      anon_sym_COLON,
    STATE(2699), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131476] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11750), 1,
      anon_sym_SEMI,
    STATE(2683), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131490] = 4,
    ACTIONS(11752), 1,
      anon_sym_RPAREN,
    ACTIONS(11754), 1,
      anon_sym_COMMA,
    STATE(6256), 1,
      aux_sym__template_parameter_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131504] = 4,
    ACTIONS(11756), 1,
      anon_sym_LPAREN,
    STATE(4466), 1,
      sym_parameters,
    STATE(6639), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131518] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11758), 1,
      anon_sym_SEMI,
    STATE(6204), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131532] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11760), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [131542] = 4,
    ACTIONS(10927), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6163), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131556] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11762), 1,
      anon_sym_SEMI,
    STATE(2682), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131570] = 4,
    ACTIONS(3509), 1,
      anon_sym_RPAREN,
    ACTIONS(11764), 1,
      anon_sym_COMMA,
    STATE(5882), 1,
      aux_sym__argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131584] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11744), 1,
      anon_sym_SEMI,
    STATE(6212), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131598] = 4,
    ACTIONS(11766), 1,
      anon_sym_RPAREN,
    ACTIONS(11768), 1,
      anon_sym_COMMA,
    STATE(6252), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131612] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11770), 1,
      anon_sym_SEMI,
    STATE(6170), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131626] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11772), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131640] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4319), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131654] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11774), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131668] = 4,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    STATE(2453), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131682] = 4,
    ACTIONS(11776), 1,
      anon_sym_LPAREN,
    STATE(4496), 1,
      sym_parameters,
    STATE(6791), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131696] = 4,
    ACTIONS(11778), 1,
      anon_sym_RPAREN,
    ACTIONS(11780), 1,
      anon_sym_COMMA,
    STATE(6074), 1,
      aux_sym__template_argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131710] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11783), 1,
      anon_sym_SEMI,
    STATE(4879), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131724] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4337), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131738] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11785), 1,
      anon_sym_SEMI,
    STATE(5987), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131752] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11787), 1,
      anon_sym_SEMI,
    STATE(5904), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131766] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11789), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131780] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11785), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131794] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11787), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131808] = 4,
    ACTIONS(11791), 1,
      anon_sym_RBRACE,
    ACTIONS(11793), 1,
      anon_sym_COMMA,
    STATE(5990), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131822] = 4,
    ACTIONS(11795), 1,
      anon_sym_RPAREN,
    ACTIONS(11797), 1,
      anon_sym_COMMA,
    STATE(6065), 1,
      aux_sym__argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131836] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11799), 1,
      anon_sym_SEMI,
    STATE(6079), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131850] = 4,
    ACTIONS(3427), 1,
      anon_sym_RPAREN,
    ACTIONS(11801), 1,
      anon_sym_COMMA,
    STATE(6254), 1,
      aux_sym__named_argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131864] = 4,
    ACTIONS(11803), 1,
      anon_sym_RBRACK,
    ACTIONS(11805), 1,
      anon_sym_COMMA,
    STATE(6175), 1,
      aux_sym_array_literal_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131878] = 4,
    ACTIONS(7640), 1,
      anon_sym_RPAREN,
    ACTIONS(8937), 1,
      anon_sym_COMMA,
    STATE(6258), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131892] = 4,
    ACTIONS(7640), 1,
      anon_sym_RPAREN,
    ACTIONS(8937), 1,
      anon_sym_COMMA,
    STATE(6099), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131906] = 4,
    ACTIONS(10790), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131920] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11807), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [131930] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11809), 1,
      anon_sym_SEMI,
    STATE(4860), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131944] = 4,
    ACTIONS(11811), 1,
      anon_sym_RBRACE,
    ACTIONS(11813), 1,
      anon_sym_COMMA,
    STATE(5906), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131958] = 4,
    ACTIONS(11815), 1,
      sym_identifier,
    ACTIONS(11817), 1,
      anon_sym_LPAREN,
    STATE(3277), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131972] = 4,
    ACTIONS(9711), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4941), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [131986] = 4,
    ACTIONS(7573), 1,
      anon_sym_RPAREN,
    ACTIONS(11819), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132000] = 4,
    ACTIONS(11821), 1,
      anon_sym_RPAREN,
    ACTIONS(11823), 1,
      anon_sym_COMMA,
    STATE(6005), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132014] = 4,
    ACTIONS(10674), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132028] = 4,
    ACTIONS(9605), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132042] = 4,
    ACTIONS(10778), 1,
      anon_sym_RPAREN,
    ACTIONS(11825), 1,
      anon_sym_COMMA,
    STATE(6099), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132056] = 4,
    ACTIONS(3235), 1,
      anon_sym_RBRACE,
    ACTIONS(11828), 1,
      anon_sym_COMMA,
    STATE(6275), 1,
      aux_sym_aggregate_initializer_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132070] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10855), 1,
      anon_sym_COLON,
    STATE(2868), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132084] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11830), 1,
      anon_sym_SEMI,
    STATE(4831), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132098] = 4,
    ACTIONS(11832), 1,
      anon_sym_RBRACE,
    ACTIONS(11834), 1,
      anon_sym_COMMA,
    STATE(6194), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132112] = 4,
    ACTIONS(11836), 1,
      sym_identifier,
    STATE(3953), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132126] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(11838), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132140] = 4,
    ACTIONS(9775), 1,
      anon_sym_LBRACE,
    ACTIONS(11840), 1,
      anon_sym_SEMI,
    STATE(2866), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132154] = 4,
    ACTIONS(11842), 1,
      anon_sym_RPAREN,
    ACTIONS(11844), 1,
      anon_sym_COMMA,
    STATE(6127), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132168] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11008), 1,
      anon_sym_SEMI,
    STATE(2742), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132182] = 4,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(11846), 1,
      anon_sym_LPAREN,
    STATE(1522), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132196] = 4,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1524), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132210] = 4,
    ACTIONS(11848), 1,
      sym_identifier,
    STATE(3771), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132224] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11850), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132238] = 4,
    ACTIONS(7795), 1,
      anon_sym_RBRACE,
    ACTIONS(11852), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132252] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11854), 1,
      anon_sym_SEMI,
    STATE(6022), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132266] = 4,
    ACTIONS(11856), 1,
      anon_sym_RPAREN,
    ACTIONS(11858), 1,
      anon_sym_COMMA,
    STATE(5948), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132280] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11860), 1,
      anon_sym_SEMI,
    STATE(6112), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132294] = 4,
    ACTIONS(11862), 1,
      anon_sym_RBRACK,
    ACTIONS(11864), 1,
      anon_sym_COMMA,
    STATE(6117), 1,
      aux_sym_array_literal_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132308] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11867), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [132318] = 4,
    ACTIONS(11392), 1,
      sym_identifier,
    STATE(4659), 1,
      sym__qualified_id,
    STATE(5035), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132332] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11869), 1,
      sym_identifier,
    STATE(2574), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132346] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11871), 1,
      sym_identifier,
    STATE(2577), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132360] = 4,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(11873), 1,
      anon_sym_LPAREN,
    STATE(2567), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132374] = 4,
    ACTIONS(11875), 1,
      anon_sym_LPAREN,
    STATE(4457), 1,
      sym_parameters,
    STATE(6756), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132388] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11877), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132402] = 4,
    ACTIONS(11879), 1,
      anon_sym_LPAREN,
    STATE(4463), 1,
      sym_parameters,
    STATE(6615), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132416] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11877), 1,
      anon_sym_SEMI,
    STATE(6198), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132430] = 4,
    ACTIONS(7595), 1,
      anon_sym_RPAREN,
    ACTIONS(11881), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132444] = 3,
    ACTIONS(11883), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11885), 2,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [132456] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(11887), 1,
      anon_sym_COLON,
    STATE(2862), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132470] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11889), 1,
      anon_sym_SEMI,
    STATE(6044), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132484] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4848), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132498] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11891), 1,
      anon_sym_SEMI,
    STATE(5766), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132512] = 4,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    ACTIONS(11893), 1,
      anon_sym_LPAREN,
    STATE(2616), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132526] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11895), 1,
      anon_sym_SEMI,
    STATE(4837), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132540] = 4,
    ACTIONS(3419), 1,
      anon_sym_RBRACK,
    ACTIONS(11897), 1,
      anon_sym_COMMA,
    STATE(6302), 1,
      aux_sym_index_expression_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132554] = 3,
    ACTIONS(11899), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9161), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [132566] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11901), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132580] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11903), 1,
      anon_sym_SEMI,
    STATE(6080), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132594] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(11905), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132608] = 4,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    ACTIONS(11907), 1,
      anon_sym_SEMI,
    STATE(6089), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132622] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11909), 1,
      anon_sym_SEMI,
    STATE(6137), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132636] = 4,
    ACTIONS(7785), 1,
      anon_sym_RBRACE,
    ACTIONS(11911), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132650] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4866), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132664] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(11913), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132678] = 4,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(8141), 1,
      anon_sym_LPAREN,
    STATE(5198), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132692] = 4,
    ACTIONS(11573), 1,
      sym_identifier,
    STATE(5200), 1,
      sym_template_instance,
    STATE(5231), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132706] = 4,
    ACTIONS(11392), 1,
      sym_identifier,
    STATE(4657), 1,
      sym__qualified_id,
    STATE(5035), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132720] = 4,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    STATE(5169), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132734] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11915), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [132744] = 4,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(11917), 1,
      anon_sym_LPAREN,
    STATE(2458), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132758] = 4,
    ACTIONS(11919), 1,
      sym_identifier,
    STATE(4659), 1,
      sym__qualified_id,
    STATE(5081), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132772] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11921), 1,
      sym_identifier,
    STATE(2613), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132786] = 4,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    ACTIONS(11923), 1,
      sym_identifier,
    STATE(2470), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132800] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10978), 1,
      anon_sym_SEMI,
    STATE(2851), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132814] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(10986), 1,
      anon_sym_SEMI,
    STATE(2847), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132828] = 4,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    ACTIONS(11925), 1,
      anon_sym_LPAREN,
    STATE(2616), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132842] = 4,
    ACTIONS(11927), 1,
      sym_identifier,
    ACTIONS(11929), 1,
      anon_sym_LPAREN,
    STATE(4995), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132856] = 4,
    ACTIONS(11931), 1,
      sym_identifier,
    STATE(3902), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132870] = 4,
    ACTIONS(11573), 1,
      sym_identifier,
    STATE(5200), 1,
      sym_template_instance,
    STATE(5221), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132884] = 4,
    ACTIONS(11632), 1,
      sym_identifier,
    STATE(3873), 1,
      sym_template_instance,
    STATE(3882), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132898] = 4,
    ACTIONS(11933), 1,
      sym_identifier,
    ACTIONS(11935), 1,
      anon_sym_LPAREN,
    STATE(3489), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132912] = 4,
    ACTIONS(11632), 1,
      sym_identifier,
    STATE(3873), 1,
      sym_template_instance,
    STATE(3919), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132926] = 4,
    ACTIONS(9605), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132940] = 4,
    ACTIONS(7795), 1,
      anon_sym_RBRACE,
    ACTIONS(11852), 1,
      anon_sym_COMMA,
    STATE(6221), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132954] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4343), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132968] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4343), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132982] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(11937), 1,
      anon_sym_LBRACE,
    STATE(7251), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [132996] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11180), 3,
      anon_sym_LBRACE,
      anon_sym_COMMA,
      sym_if,
  [133006] = 4,
    ACTIONS(11180), 1,
      anon_sym_LBRACE,
    ACTIONS(11939), 1,
      anon_sym_COMMA,
    STATE(6169), 1,
      aux_sym__base_class_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133020] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11942), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133034] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11944), 1,
      anon_sym_SEMI,
    STATE(6247), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133048] = 4,
    ACTIONS(11946), 1,
      anon_sym_RPAREN,
    ACTIONS(11948), 1,
      anon_sym_COMMA,
    STATE(6191), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133062] = 4,
    ACTIONS(11950), 1,
      sym_identifier,
    STATE(3515), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133076] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(11952), 1,
      anon_sym_SEMI,
    STATE(6012), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133090] = 4,
    ACTIONS(11954), 1,
      anon_sym_RBRACK,
    ACTIONS(11956), 1,
      anon_sym_COMMA,
    STATE(6117), 1,
      aux_sym_array_literal_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133104] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(11958), 1,
      sym_identifier,
    STATE(1695), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133118] = 4,
    ACTIONS(11960), 1,
      anon_sym_RBRACE,
    ACTIONS(11962), 1,
      anon_sym_COMMA,
    STATE(6177), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133132] = 4,
    ACTIONS(7825), 1,
      anon_sym_RBRACE,
    ACTIONS(11965), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133146] = 4,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(11967), 1,
      anon_sym_LPAREN,
    STATE(1711), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133160] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4938), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133174] = 4,
    ACTIONS(11969), 1,
      anon_sym_COMMA,
    ACTIONS(11972), 1,
      anon_sym_SEMI,
    STATE(6181), 1,
      aux_sym__import_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133188] = 4,
    ACTIONS(11974), 1,
      anon_sym_LPAREN,
    STATE(4472), 1,
      sym_parameters,
    STATE(6768), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133202] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11976), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133216] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11978), 1,
      anon_sym_SEMI,
    STATE(6183), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133230] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11980), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133244] = 4,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    ACTIONS(11982), 1,
      anon_sym_RPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133258] = 4,
    ACTIONS(11220), 1,
      sym_identifier,
    STATE(4661), 1,
      sym__qualified_id,
    STATE(5047), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133272] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11984), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [133282] = 4,
    ACTIONS(11573), 1,
      sym_identifier,
    STATE(5200), 1,
      sym_template_instance,
    STATE(5232), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133296] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11986), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133310] = 4,
    ACTIONS(7599), 1,
      anon_sym_RPAREN,
    ACTIONS(11988), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133324] = 4,
    ACTIONS(11990), 1,
      anon_sym_RBRACK,
    ACTIONS(11992), 1,
      anon_sym_COMMA,
    STATE(6255), 1,
      aux_sym_index_expression_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133338] = 4,
    ACTIONS(9861), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133352] = 4,
    ACTIONS(10326), 1,
      anon_sym_RBRACE,
    ACTIONS(11994), 1,
      anon_sym_COMMA,
    STATE(6177), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133366] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(11006), 1,
      anon_sym_SEMI,
    STATE(2745), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133380] = 4,
    ACTIONS(7821), 1,
      anon_sym_RBRACE,
    ACTIONS(11996), 1,
      anon_sym_COMMA,
    STATE(6257), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133394] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(11998), 1,
      anon_sym_SEMI,
    STATE(6315), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133408] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12000), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133422] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12002), 1,
      anon_sym_SEMI,
    STATE(6036), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133436] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12004), 1,
      anon_sym_SEMI,
    STATE(6081), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133450] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12006), 1,
      anon_sym_SEMI,
    STATE(6031), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133464] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(12008), 1,
      anon_sym_LBRACE,
    STATE(7278), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133478] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12010), 1,
      anon_sym_SEMI,
    STATE(6185), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133492] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12012), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133506] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(12014), 1,
      anon_sym_SEMI,
    STATE(6033), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133520] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12010), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133534] = 4,
    ACTIONS(7783), 1,
      anon_sym_RBRACE,
    ACTIONS(12016), 1,
      anon_sym_COMMA,
    STATE(6142), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133548] = 4,
    ACTIONS(3555), 1,
      anon_sym_RPAREN,
    ACTIONS(12018), 1,
      anon_sym_COMMA,
    STATE(5882), 1,
      aux_sym__argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133562] = 4,
    ACTIONS(9893), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133576] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12020), 1,
      anon_sym_SEMI,
    STATE(5754), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133590] = 4,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    ACTIONS(12022), 1,
      anon_sym_SEMI,
    STATE(6097), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133604] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(11944), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133618] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(12024), 1,
      anon_sym_LBRACE,
    STATE(7715), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133632] = 4,
    ACTIONS(9809), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4817), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133646] = 4,
    ACTIONS(11919), 1,
      sym_identifier,
    STATE(4657), 1,
      sym__qualified_id,
    STATE(5081), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133660] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(12026), 1,
      anon_sym_COLON,
    STATE(2800), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133674] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(12028), 1,
      sym_identifier,
    STATE(2516), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133688] = 4,
    ACTIONS(12030), 1,
      anon_sym_COMMA,
    ACTIONS(12033), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133702] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(12035), 1,
      sym_identifier,
    STATE(2494), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133716] = 4,
    ACTIONS(9775), 1,
      anon_sym_LBRACE,
    ACTIONS(12037), 1,
      anon_sym_SEMI,
    STATE(2777), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133730] = 4,
    ACTIONS(7821), 1,
      anon_sym_RBRACE,
    ACTIONS(11996), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133744] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12000), 1,
      anon_sym_SEMI,
    STATE(6264), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133758] = 4,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(12039), 1,
      anon_sym_LPAREN,
    STATE(2732), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133772] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(12041), 1,
      anon_sym_COLON,
    STATE(2792), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133786] = 4,
    ACTIONS(12043), 1,
      sym_identifier,
    ACTIONS(12045), 1,
      anon_sym_LPAREN,
    STATE(3240), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133800] = 4,
    ACTIONS(7783), 1,
      anon_sym_RBRACE,
    ACTIONS(12016), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133814] = 4,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    ACTIONS(12047), 1,
      anon_sym_SEMI,
    STATE(5944), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133828] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12049), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133842] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(12051), 1,
      sym_identifier,
    STATE(1639), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133856] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12053), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133870] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12055), 1,
      anon_sym_SEMI,
    STATE(1406), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133884] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12057), 1,
      anon_sym_SEMI,
    STATE(6228), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133898] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12059), 1,
      anon_sym_SEMI,
    STATE(1403), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133912] = 4,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    ACTIONS(12061), 1,
      sym_identifier,
    STATE(1638), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133926] = 4,
    ACTIONS(12063), 1,
      anon_sym_LPAREN,
    STATE(4522), 1,
      sym_parameters,
    STATE(6493), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133940] = 4,
    ACTIONS(9625), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133954] = 4,
    ACTIONS(7825), 1,
      anon_sym_RBRACE,
    ACTIONS(11965), 1,
      anon_sym_COMMA,
    STATE(6322), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133968] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12065), 1,
      anon_sym_COLON,
    STATE(1388), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [133982] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12067), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [133992] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12069), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134006] = 4,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    ACTIONS(12071), 1,
      anon_sym_LPAREN,
    STATE(1636), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134020] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(12073), 1,
      anon_sym_SEMI,
    STATE(2764), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134034] = 4,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    ACTIONS(12075), 1,
      anon_sym_SEMI,
    STATE(2769), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134048] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11986), 1,
      anon_sym_SEMI,
    STATE(6206), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134062] = 4,
    ACTIONS(7787), 1,
      anon_sym_RBRACE,
    ACTIONS(12077), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134076] = 4,
    ACTIONS(9553), 1,
      anon_sym_LBRACE,
    ACTIONS(12079), 1,
      anon_sym_SEMI,
    STATE(1401), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134090] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12081), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134104] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12069), 1,
      anon_sym_SEMI,
    STATE(6328), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134118] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12083), 1,
      anon_sym_COLON,
    STATE(1368), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134132] = 3,
    ACTIONS(12085), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12087), 2,
      anon_sym_COLON,
      anon_sym_EQ_EQ,
  [134144] = 4,
    ACTIONS(12089), 1,
      sym_identifier,
    ACTIONS(12091), 1,
      anon_sym_LPAREN,
    STATE(3100), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134158] = 4,
    ACTIONS(7591), 1,
      anon_sym_RPAREN,
    ACTIONS(12093), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134172] = 4,
    ACTIONS(9769), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4956), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134186] = 4,
    ACTIONS(12095), 1,
      anon_sym_RPAREN,
    ACTIONS(12097), 1,
      anon_sym_COMMA,
    STATE(6254), 1,
      aux_sym__named_argument_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134200] = 4,
    ACTIONS(3455), 1,
      anon_sym_RBRACK,
    ACTIONS(12100), 1,
      anon_sym_COMMA,
    STATE(6302), 1,
      aux_sym_index_expression_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134214] = 4,
    ACTIONS(7955), 1,
      anon_sym_RPAREN,
    ACTIONS(12102), 1,
      anon_sym_COMMA,
    STATE(5920), 1,
      aux_sym__template_parameter_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134228] = 4,
    ACTIONS(7797), 1,
      anon_sym_RBRACE,
    ACTIONS(12104), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134242] = 4,
    ACTIONS(7642), 1,
      anon_sym_RPAREN,
    ACTIONS(8927), 1,
      anon_sym_COMMA,
    STATE(6099), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134256] = 4,
    ACTIONS(12106), 1,
      anon_sym_LPAREN,
    STATE(4416), 1,
      sym_parameters,
    STATE(6704), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134270] = 4,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    ACTIONS(10042), 1,
      anon_sym_EQ,
    STATE(7903), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134284] = 4,
    ACTIONS(11392), 1,
      sym_identifier,
    STATE(4661), 1,
      sym__qualified_id,
    STATE(5035), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134298] = 4,
    ACTIONS(9803), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134312] = 4,
    ACTIONS(7797), 1,
      anon_sym_RBRACE,
    ACTIONS(12104), 1,
      anon_sym_COMMA,
    STATE(6318), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134326] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12108), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134340] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12108), 1,
      anon_sym_SEMI,
    STATE(6304), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134354] = 4,
    ACTIONS(7642), 1,
      anon_sym_RPAREN,
    ACTIONS(8927), 1,
      anon_sym_COMMA,
    STATE(6330), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134368] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12110), 1,
      anon_sym_SEMI,
    STATE(6401), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134382] = 4,
    ACTIONS(12112), 1,
      anon_sym_COMMA,
    ACTIONS(12115), 1,
      anon_sym_SEMI,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134396] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10962), 1,
      anon_sym_SEMI,
    STATE(1361), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134410] = 4,
    ACTIONS(7787), 1,
      anon_sym_RBRACE,
    ACTIONS(12077), 1,
      anon_sym_COMMA,
    STATE(6226), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134424] = 4,
    ACTIONS(10332), 1,
      anon_sym_RBRACE,
    ACTIONS(12117), 1,
      anon_sym_COMMA,
    STATE(6177), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134438] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4854), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134452] = 4,
    ACTIONS(12119), 1,
      anon_sym_COMMA,
    ACTIONS(12121), 1,
      anon_sym_SEMI,
    ACTIONS(12123), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134466] = 4,
    ACTIONS(9799), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134480] = 4,
    ACTIONS(12125), 1,
      anon_sym_RBRACE,
    ACTIONS(12127), 1,
      anon_sym_COMMA,
    STATE(6275), 1,
      aux_sym_aggregate_initializer_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134494] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12130), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134508] = 4,
    ACTIONS(12132), 1,
      sym_identifier,
    ACTIONS(12134), 1,
      anon_sym_LPAREN,
    STATE(3451), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134522] = 4,
    ACTIONS(11149), 1,
      anon_sym_LBRACE,
    ACTIONS(11589), 1,
      anon_sym_COMMA,
    STATE(5952), 1,
      aux_sym__base_class_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134536] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12136), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134550] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(12138), 1,
      sym_identifier,
    STATE(2641), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134564] = 3,
    ACTIONS(12140), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8966), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [134576] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12142), 1,
      anon_sym_SEMI,
    STATE(6230), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134590] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(12144), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134604] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4317), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134618] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12142), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134632] = 4,
    ACTIONS(9857), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134646] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4317), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134660] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12146), 1,
      anon_sym_SEMI,
    STATE(6276), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134674] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12148), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134688] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12150), 1,
      anon_sym_SEMI,
    STATE(6279), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134702] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12152), 1,
      anon_sym_SEMI,
    STATE(6289), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134716] = 4,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    ACTIONS(12154), 1,
      anon_sym_LPAREN,
    STATE(2664), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134730] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12156), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [134740] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12158), 3,
      anon_sym_LBRACE,
      anon_sym_COMMA,
      sym_if,
  [134750] = 4,
    ACTIONS(7777), 1,
      anon_sym_RBRACE,
    ACTIONS(12160), 1,
      anon_sym_COMMA,
    STATE(6245), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134764] = 4,
    ACTIONS(9645), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134778] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(10817), 1,
      anon_sym_COLON,
    STATE(2703), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134792] = 4,
    ACTIONS(11506), 1,
      sym_identifier,
    STATE(3809), 1,
      sym_template_instance,
    STATE(3812), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134806] = 4,
    ACTIONS(12162), 1,
      anon_sym_LPAREN,
    STATE(4538), 1,
      sym_parameters,
    STATE(6898), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134820] = 4,
    ACTIONS(12164), 1,
      anon_sym_RBRACE,
    ACTIONS(12166), 1,
      anon_sym_COMMA,
    STATE(5954), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134834] = 3,
    ACTIONS(10140), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10138), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [134846] = 4,
    ACTIONS(12168), 1,
      anon_sym_RBRACK,
    ACTIONS(12170), 1,
      anon_sym_COMMA,
    STATE(6302), 1,
      aux_sym_index_expression_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134860] = 4,
    ACTIONS(12091), 1,
      anon_sym_LPAREN,
    ACTIONS(12173), 1,
      sym_identifier,
    STATE(3100), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134874] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12175), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134888] = 4,
    ACTIONS(10877), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(5737), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134902] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4357), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134916] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4357), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134930] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(12177), 1,
      anon_sym_LBRACE,
    STATE(7323), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134944] = 4,
    ACTIONS(9631), 1,
      anon_sym_LBRACE,
    ACTIONS(12179), 1,
      anon_sym_SEMI,
    STATE(2713), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134958] = 4,
    ACTIONS(11506), 1,
      sym_identifier,
    STATE(3809), 1,
      sym_template_instance,
    STATE(3827), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134972] = 4,
    ACTIONS(7799), 1,
      anon_sym_RBRACE,
    ACTIONS(11232), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [134986] = 3,
    ACTIONS(12183), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12181), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [134998] = 4,
    ACTIONS(12185), 1,
      anon_sym_COMMA,
    ACTIONS(12188), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135012] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(11502), 1,
      anon_sym_SEMI,
    STATE(5975), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135026] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12190), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135040] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(11069), 1,
      anon_sym_SEMI,
    STATE(1367), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135054] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(12192), 1,
      anon_sym_COLON,
    STATE(2730), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135068] = 4,
    ACTIONS(7791), 1,
      anon_sym_RBRACE,
    ACTIONS(12194), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135082] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12196), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [135092] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12198), 1,
      anon_sym_SEMI,
    STATE(5747), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135106] = 4,
    ACTIONS(11263), 1,
      sym_identifier,
    STATE(4661), 1,
      sym__qualified_id,
    STATE(5190), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135120] = 4,
    ACTIONS(7829), 1,
      anon_sym_RBRACE,
    ACTIONS(12200), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135134] = 4,
    ACTIONS(12202), 1,
      sym_identifier,
    ACTIONS(12204), 1,
      anon_sym_LPAREN,
    STATE(3356), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135148] = 4,
    ACTIONS(11263), 1,
      sym_identifier,
    STATE(4664), 1,
      sym__qualified_id,
    STATE(5190), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135162] = 4,
    ACTIONS(11481), 1,
      sym_identifier,
    STATE(3610), 1,
      sym_template_instance,
    STATE(3616), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135176] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12206), 3,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [135186] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4337), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135200] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12208), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135214] = 4,
    ACTIONS(7638), 1,
      anon_sym_RPAREN,
    ACTIONS(8939), 1,
      anon_sym_COMMA,
    STATE(6363), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135228] = 4,
    ACTIONS(7638), 1,
      anon_sym_RPAREN,
    ACTIONS(8939), 1,
      anon_sym_COMMA,
    STATE(6099), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135242] = 4,
    ACTIONS(11636), 1,
      anon_sym_LPAREN,
    ACTIONS(12210), 1,
      sym_identifier,
    STATE(4624), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135256] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12212), 1,
      anon_sym_COLON,
    STATE(1393), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135270] = 4,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(12214), 1,
      anon_sym_LPAREN,
    STATE(1421), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135284] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12216), 1,
      sym_identifier,
    STATE(1418), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135298] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12218), 1,
      sym_identifier,
    STATE(1417), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135312] = 4,
    ACTIONS(11481), 1,
      sym_identifier,
    STATE(3599), 1,
      sym__qualified_id,
    STATE(3610), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135326] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12220), 1,
      anon_sym_SEMI,
    STATE(6190), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135340] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12220), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135354] = 4,
    ACTIONS(7777), 1,
      anon_sym_RBRACE,
    ACTIONS(12160), 1,
      anon_sym_COMMA,
    STATE(5957), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135368] = 4,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    ACTIONS(12222), 1,
      anon_sym_SEMI,
    STATE(6388), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135382] = 4,
    ACTIONS(9553), 1,
      anon_sym_LBRACE,
    ACTIONS(12224), 1,
      anon_sym_SEMI,
    STATE(1404), 1,
      sym__enum_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135396] = 4,
    ACTIONS(12226), 1,
      sym_identifier,
    ACTIONS(12228), 1,
      anon_sym_LPAREN,
    STATE(3525), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135410] = 4,
    ACTIONS(11220), 1,
      sym_identifier,
    STATE(4659), 1,
      sym__qualified_id,
    STATE(5047), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135424] = 4,
    ACTIONS(12230), 1,
      anon_sym_LPAREN,
    STATE(4483), 1,
      sym_parameters,
    STATE(6827), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135438] = 4,
    ACTIONS(12232), 1,
      anon_sym_RBRACE,
    ACTIONS(12234), 1,
      anon_sym_COMMA,
    STATE(6271), 1,
      aux_sym__enum_body_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135452] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12236), 1,
      anon_sym_SEMI,
    STATE(6393), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135466] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(10740), 1,
      anon_sym_COLON,
    STATE(1408), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135480] = 3,
    ACTIONS(12240), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12238), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [135492] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12242), 1,
      anon_sym_SEMI,
    STATE(6387), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135506] = 4,
    ACTIONS(9645), 1,
      anon_sym_SEMI,
    ACTIONS(10672), 1,
      anon_sym_COMMA,
    STATE(5933), 1,
      aux_sym__declarator_identifier_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135520] = 4,
    ACTIONS(12244), 1,
      anon_sym_LPAREN,
    STATE(4422), 1,
      sym_parameters,
    STATE(6443), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135534] = 4,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    ACTIONS(12246), 1,
      anon_sym_LPAREN,
    STATE(1495), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135548] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12248), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135562] = 4,
    ACTIONS(7567), 1,
      anon_sym_RPAREN,
    ACTIONS(12250), 1,
      anon_sym_COMMA,
    STATE(5910), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135576] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12252), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135590] = 4,
    ACTIONS(9607), 1,
      anon_sym_SEMI,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4919), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135604] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4836), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135618] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12254), 1,
      sym_identifier,
    STATE(1548), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135632] = 4,
    ACTIONS(11220), 1,
      sym_identifier,
    STATE(4657), 1,
      sym__qualified_id,
    STATE(5047), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135646] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12256), 1,
      anon_sym_SEMI,
    STATE(6353), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135660] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12258), 1,
      anon_sym_SEMI,
    STATE(6218), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135674] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12260), 1,
      anon_sym_SEMI,
    STATE(6355), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135688] = 4,
    ACTIONS(7648), 1,
      anon_sym_RPAREN,
    ACTIONS(12262), 1,
      anon_sym_COMMA,
    STATE(6099), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135702] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4328), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135716] = 4,
    ACTIONS(11366), 1,
      anon_sym_COMMA,
    ACTIONS(12264), 1,
      anon_sym_SEMI,
    STATE(6361), 1,
      aux_sym_foreach_statement_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135730] = 4,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    ACTIONS(12266), 1,
      sym_identifier,
    STATE(1547), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135744] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(12268), 1,
      anon_sym_SEMI,
    STATE(5778), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135758] = 4,
    ACTIONS(7648), 1,
      anon_sym_RPAREN,
    ACTIONS(12262), 1,
      anon_sym_COMMA,
    STATE(6392), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135772] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    STATE(4374), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135786] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(12270), 1,
      anon_sym_SEMI,
    STATE(6367), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135800] = 4,
    ACTIONS(12272), 1,
      sym_identifier,
    STATE(3915), 1,
      sym_template_instance,
    STATE(4659), 1,
      sym__qualified_id,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135814] = 4,
    ACTIONS(11277), 1,
      anon_sym_COMMA,
    ACTIONS(12274), 1,
      anon_sym_SEMI,
    STATE(6283), 1,
      aux_sym_auto_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135828] = 4,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2464), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135842] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12276), 1,
      anon_sym_SEMI,
    STATE(6285), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135856] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12278), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [135866] = 4,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    ACTIONS(12280), 1,
      anon_sym_LPAREN,
    STATE(2449), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135880] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(12282), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135894] = 4,
    ACTIONS(10694), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6296), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135908] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4328), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135922] = 4,
    ACTIONS(9327), 1,
      sym_if,
    ACTIONS(12284), 1,
      anon_sym_LBRACE,
    STATE(7380), 1,
      sym_constraint,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135936] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(12286), 1,
      anon_sym_SEMI,
    STATE(4841), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135950] = 4,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    ACTIONS(12288), 1,
      sym_identifier,
    STATE(2656), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [135964] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12290), 3,
      anon_sym_COMMA,
      anon_sym_SEMI,
      anon_sym_COLON,
  [135974] = 3,
    ACTIONS(12294), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12292), 2,
      sym_identifier,
      sym_default,
  [135986] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(12296), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136000] = 4,
    ACTIONS(11628), 1,
      anon_sym_COMMA,
    ACTIONS(12298), 1,
      anon_sym_SEMI,
    STATE(5977), 1,
      aux_sym__import_list_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136014] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12276), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136028] = 4,
    ACTIONS(10694), 1,
      anon_sym_SEMI,
    ACTIONS(11230), 1,
      anon_sym_COMMA,
    STATE(6268), 1,
      aux_sym_alias_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136042] = 4,
    ACTIONS(12300), 1,
      anon_sym_LPAREN,
    STATE(4412), 1,
      sym_parameters,
    STATE(6450), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136056] = 4,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    STATE(4374), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136070] = 4,
    ACTIONS(12302), 1,
      anon_sym_RBRACE,
    ACTIONS(12304), 1,
      anon_sym_COMMA,
    STATE(6339), 1,
      aux_sym_anonymous_enum_declaration_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136084] = 4,
    ACTIONS(7652), 1,
      anon_sym_RPAREN,
    ACTIONS(12306), 1,
      anon_sym_COMMA,
    STATE(6099), 1,
      aux_sym__parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136098] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12308), 1,
      anon_sym_SEMI,
    STATE(6313), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136112] = 4,
    ACTIONS(11240), 1,
      anon_sym_COMMA,
    ACTIONS(12308), 1,
      anon_sym_SEMI,
    STATE(6338), 1,
      aux_sym_manifest_constant_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136126] = 4,
    ACTIONS(11514), 1,
      anon_sym_LPAREN,
    ACTIONS(12310), 1,
      sym_identifier,
    STATE(2406), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136140] = 4,
    ACTIONS(11919), 1,
      sym_identifier,
    STATE(4661), 1,
      sym__qualified_id,
    STATE(5081), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136154] = 4,
    ACTIONS(12312), 1,
      anon_sym_RPAREN,
    ACTIONS(12314), 1,
      anon_sym_COMMA,
    STATE(6354), 1,
      aux_sym_parameters_repeat1,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136168] = 4,
    ACTIONS(11919), 1,
      sym_identifier,
    STATE(4664), 1,
      sym__qualified_id,
    STATE(5081), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136182] = 4,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    ACTIONS(12316), 1,
      anon_sym_RBRACK,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136196] = 4,
    ACTIONS(6615), 1,
      anon_sym_LPAREN,
    STATE(4651), 1,
      sym__parameters,
    STATE(4895), 1,
      sym__parameter_with_member_attributes,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136210] = 4,
    ACTIONS(11257), 1,
      anon_sym_COMMA,
    ACTIONS(12020), 1,
      anon_sym_SEMI,
    STATE(5897), 1,
      aux_sym_variable_declaration_repeat2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136224] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12318), 3,
      anon_sym_exit,
      anon_sym_success,
      anon_sym_failure,
  [136234] = 3,
    ACTIONS(6968), 1,
      anon_sym_TILDE,
    ACTIONS(12320), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136245] = 3,
    ACTIONS(12322), 1,
      anon_sym_RPAREN,
    ACTIONS(12324), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136256] = 3,
    ACTIONS(4368), 1,
      sym_while,
    ACTIONS(12326), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136267] = 3,
    ACTIONS(4361), 1,
      sym_while,
    ACTIONS(12329), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136278] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(6380), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136289] = 3,
    ACTIONS(6833), 1,
      anon_sym_TILDE,
    ACTIONS(12331), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136300] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8404), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [136309] = 3,
    ACTIONS(12333), 1,
      anon_sym_LPAREN,
    ACTIONS(12335), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136320] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8423), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [136329] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8395), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [136338] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12339), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136349] = 3,
    ACTIONS(12316), 1,
      anon_sym_RBRACK,
    ACTIONS(12341), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136360] = 3,
    ACTIONS(12343), 1,
      sym_identifier,
    ACTIONS(12345), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136371] = 3,
    ACTIONS(10825), 1,
      sym_identifier,
    ACTIONS(10827), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136382] = 3,
    ACTIONS(12347), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12349), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136393] = 3,
    ACTIONS(12351), 1,
      sym_identifier,
    ACTIONS(12353), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136404] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12355), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [136413] = 3,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2612), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136424] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5894), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136435] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8958), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [136444] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8391), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [136453] = 3,
    ACTIONS(4448), 1,
      sym_while,
    ACTIONS(12359), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136464] = 3,
    ACTIONS(12361), 1,
      anon_sym_TILDE,
    ACTIONS(12363), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136475] = 3,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1434), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136486] = 3,
    ACTIONS(4642), 1,
      sym_while,
    ACTIONS(12365), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136497] = 3,
    ACTIONS(12367), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12369), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136508] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(6308), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136519] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(478), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136530] = 3,
    ACTIONS(12373), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12375), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136541] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12377), 2,
      sym_int_literal,
      sym_identifier,
  [136550] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12379), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136561] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(277), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136572] = 3,
    ACTIONS(12381), 1,
      anon_sym_COMMA,
    ACTIONS(12383), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136583] = 3,
    ACTIONS(12385), 1,
      anon_sym_RPAREN,
    ACTIONS(12387), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136594] = 3,
    ACTIONS(12389), 1,
      anon_sym_RPAREN,
    ACTIONS(12391), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136605] = 3,
    ACTIONS(12296), 1,
      anon_sym_RBRACK,
    ACTIONS(12393), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136616] = 3,
    ACTIONS(12395), 1,
      sym_identifier,
    STATE(5370), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136627] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8377), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [136636] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(152), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136647] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2730), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136658] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4367), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136669] = 3,
    ACTIONS(12397), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12399), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136680] = 3,
    ACTIONS(12401), 1,
      sym_identifier,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136691] = 3,
    ACTIONS(10807), 1,
      sym_identifier,
    ACTIONS(10809), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136702] = 3,
    ACTIONS(2782), 1,
      sym_while,
    ACTIONS(12405), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136713] = 3,
    ACTIONS(12407), 1,
      sym_identifier,
    STATE(5384), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136724] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5745), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136735] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4330), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136746] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6078), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136757] = 3,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    STATE(4050), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136768] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12409), 2,
      sym_int_literal,
      sym_identifier,
  [136777] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8373), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [136786] = 3,
    ACTIONS(12411), 1,
      sym_identifier,
    STATE(7963), 1,
      sym_module_fqn,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136797] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12413), 2,
      sym_int_literal,
      sym_identifier,
  [136806] = 3,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1360), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136817] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4342), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136828] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8960), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [136837] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2594), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136848] = 3,
    ACTIONS(3645), 1,
      anon_sym_LBRACE,
    STATE(4001), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136859] = 3,
    ACTIONS(12415), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12417), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136870] = 3,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1414), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136881] = 3,
    ACTIONS(12419), 1,
      sym_identifier,
    ACTIONS(12421), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136892] = 3,
    ACTIONS(12423), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12425), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136903] = 3,
    ACTIONS(12427), 1,
      anon_sym_LPAREN,
    STATE(3417), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136914] = 3,
    ACTIONS(12429), 1,
      anon_sym_LPAREN,
    STATE(3211), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136925] = 3,
    ACTIONS(12431), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12433), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136936] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1408), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136947] = 3,
    ACTIONS(12435), 1,
      anon_sym_RPAREN,
    ACTIONS(12437), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136958] = 3,
    ACTIONS(12439), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12441), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136969] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12443), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [136978] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4376), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [136989] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1393), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137000] = 3,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1415), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137011] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9185), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [137020] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4923), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137031] = 3,
    ACTIONS(12445), 1,
      anon_sym_RPAREN,
    ACTIONS(12447), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137042] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8952), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [137051] = 3,
    ACTIONS(12449), 1,
      sym_identifier,
    STATE(5373), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137062] = 3,
    ACTIONS(12451), 1,
      sym_identifier,
    ACTIONS(12453), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137073] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(461), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137084] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2469), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137095] = 3,
    ACTIONS(10764), 1,
      sym_identifier,
    ACTIONS(10766), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137106] = 3,
    ACTIONS(12455), 1,
      anon_sym_COMMA,
    ACTIONS(12457), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137117] = 3,
    ACTIONS(12459), 1,
      anon_sym_RPAREN,
    ACTIONS(12461), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137128] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8369), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [137137] = 3,
    ACTIONS(12411), 1,
      sym_identifier,
    STATE(7598), 1,
      sym_module_fqn,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137148] = 3,
    ACTIONS(12463), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12465), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137159] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4917), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137170] = 3,
    ACTIONS(12467), 1,
      sym_identifier,
    ACTIONS(12469), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137181] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(463), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137192] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4322), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137203] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(189), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137214] = 3,
    ACTIONS(12471), 1,
      anon_sym_LPAREN,
    ACTIONS(12473), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137225] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12188), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [137234] = 3,
    ACTIONS(6974), 1,
      anon_sym_TILDE,
    ACTIONS(12475), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137245] = 3,
    ACTIONS(12477), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12479), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137256] = 3,
    ACTIONS(12481), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12483), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137267] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2837), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137278] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(6035), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137289] = 3,
    ACTIONS(2663), 1,
      sym_while,
    ACTIONS(12485), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137300] = 3,
    ACTIONS(12487), 1,
      anon_sym_RPAREN,
    ACTIONS(12489), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137311] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12491), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137322] = 3,
    ACTIONS(12411), 1,
      sym_identifier,
    STATE(7749), 1,
      sym_module_fqn,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137333] = 3,
    ACTIONS(12493), 1,
      anon_sym_RPAREN,
    ACTIONS(12495), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137344] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12497), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [137353] = 3,
    ACTIONS(12499), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12501), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137364] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5777), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137375] = 3,
    ACTIONS(12503), 1,
      anon_sym_RPAREN,
    ACTIONS(12505), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137386] = 3,
    ACTIONS(12507), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12509), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137397] = 3,
    ACTIONS(12511), 1,
      sym_identifier,
    STATE(5401), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137408] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(231), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137419] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2514), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137430] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12513), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137441] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8970), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [137450] = 3,
    ACTIONS(6931), 1,
      anon_sym_TILDE,
    ACTIONS(12515), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137461] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(346), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137472] = 3,
    ACTIONS(12517), 1,
      anon_sym_RPAREN,
    ACTIONS(12519), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137483] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9153), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [137492] = 3,
    ACTIONS(12521), 1,
      sym_identifier,
    ACTIONS(12523), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137503] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2825), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137514] = 3,
    ACTIONS(12525), 1,
      anon_sym_RPAREN,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137525] = 3,
    ACTIONS(12529), 1,
      anon_sym_TILDE,
    ACTIONS(12531), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137536] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(5976), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137547] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4975), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137558] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12168), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
  [137567] = 3,
    ACTIONS(12533), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12535), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137578] = 3,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(12537), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137589] = 3,
    ACTIONS(12539), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12541), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137600] = 3,
    ACTIONS(12543), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12545), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137611] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12547), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
  [137620] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2703), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137631] = 3,
    ACTIONS(12549), 1,
      anon_sym_RPAREN,
    ACTIONS(12551), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137642] = 3,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1384), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137653] = 3,
    ACTIONS(12553), 1,
      anon_sym_RPAREN,
    ACTIONS(12555), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137664] = 3,
    ACTIONS(12557), 1,
      anon_sym_RPAREN,
    ACTIONS(12559), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137675] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(6213), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137686] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4903), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137697] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2806), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137708] = 3,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(12561), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137719] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8966), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [137728] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12125), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [137737] = 3,
    ACTIONS(2796), 1,
      sym_while,
    ACTIONS(12563), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137748] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5836), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137759] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(2637), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137770] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12565), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [137779] = 3,
    ACTIONS(12567), 1,
      anon_sym_RPAREN,
    ACTIONS(12569), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137790] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10642), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [137799] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(269), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137810] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4596), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137821] = 3,
    ACTIONS(12571), 1,
      anon_sym_RPAREN,
    ACTIONS(12573), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137832] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4639), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137843] = 3,
    ACTIONS(12575), 1,
      anon_sym_RPAREN,
    ACTIONS(12577), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137854] = 3,
    ACTIONS(12579), 1,
      anon_sym_RPAREN,
    ACTIONS(12581), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137865] = 3,
    ACTIONS(12583), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12585), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137876] = 3,
    ACTIONS(12587), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12589), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137887] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4897), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137898] = 3,
    ACTIONS(10941), 1,
      sym_identifier,
    ACTIONS(10943), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137909] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(352), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137920] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12115), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [137929] = 3,
    ACTIONS(12411), 1,
      sym_identifier,
    STATE(7419), 1,
      sym_module_fqn,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137940] = 3,
    ACTIONS(12591), 1,
      anon_sym_TILDE,
    ACTIONS(12593), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137951] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11135), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [137960] = 3,
    ACTIONS(12595), 1,
      anon_sym_RPAREN,
    ACTIONS(12597), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137971] = 3,
    ACTIONS(12471), 1,
      anon_sym_LPAREN,
    ACTIONS(12599), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137982] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(5752), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [137993] = 3,
    ACTIONS(12601), 1,
      anon_sym_RPAREN,
    ACTIONS(12603), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138004] = 3,
    ACTIONS(12605), 1,
      sym_identifier,
    ACTIONS(12607), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138015] = 3,
    ACTIONS(12609), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12611), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138026] = 3,
    ACTIONS(12333), 1,
      anon_sym_LPAREN,
    ACTIONS(12599), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138037] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2762), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138048] = 3,
    ACTIONS(12613), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12615), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138059] = 3,
    ACTIONS(10599), 1,
      sym_identifier,
    ACTIONS(10601), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138070] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(2685), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138081] = 3,
    ACTIONS(12617), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12619), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138092] = 3,
    ACTIONS(6943), 1,
      anon_sym_TILDE,
    ACTIONS(12621), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138103] = 3,
    ACTIONS(12623), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12625), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138114] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2759), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138125] = 3,
    ACTIONS(4368), 1,
      sym_while,
    ACTIONS(12627), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138136] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4964), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138147] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(5751), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138158] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12095), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [138167] = 3,
    ACTIONS(12631), 1,
      anon_sym_RPAREN,
    ACTIONS(12633), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138178] = 3,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1603), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138189] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10837), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [138198] = 3,
    ACTIONS(12635), 1,
      anon_sym_RPAREN,
    ACTIONS(12637), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138209] = 3,
    ACTIONS(7951), 1,
      anon_sym_LBRACE,
    STATE(4022), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138220] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12639), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [138229] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5918), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138240] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1368), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138251] = 3,
    ACTIONS(12641), 1,
      sym_identifier,
    STATE(4032), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138262] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12643), 2,
      sym_int_literal,
      sym_identifier,
  [138271] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12645), 2,
      sym_int_literal,
      sym_identifier,
  [138280] = 3,
    ACTIONS(12647), 1,
      anon_sym_TILDE,
    ACTIONS(12649), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138291] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1388), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138302] = 3,
    ACTIONS(4361), 1,
      sym_while,
    ACTIONS(12651), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138313] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(5812), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138324] = 3,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(12653), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138335] = 3,
    ACTIONS(4642), 1,
      sym_while,
    ACTIONS(12655), 1,
      sym_else,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138346] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12657), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [138355] = 3,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2451), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138366] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1448), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138377] = 3,
    ACTIONS(7922), 1,
      anon_sym_LBRACE,
    STATE(3960), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138388] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2792), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138399] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1452), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138410] = 3,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1640), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138421] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12659), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [138430] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12661), 2,
      sym_int_literal,
      sym_identifier,
  [138439] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(2748), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138450] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2800), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138461] = 3,
    ACTIONS(12663), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12665), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138472] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12033), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [138481] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4828), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138492] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4351), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138503] = 3,
    ACTIONS(10696), 1,
      sym_identifier,
    ACTIONS(10698), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138514] = 3,
    ACTIONS(10728), 1,
      sym_identifier,
    ACTIONS(10730), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138525] = 3,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(12667), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138536] = 3,
    ACTIONS(10947), 1,
      sym_identifier,
    ACTIONS(10949), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138547] = 3,
    ACTIONS(12669), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12671), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138558] = 3,
    ACTIONS(12333), 1,
      anon_sym_LPAREN,
    ACTIONS(12673), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138569] = 3,
    ACTIONS(12675), 1,
      sym_identifier,
    STATE(5468), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138580] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1490), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138591] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5876), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138602] = 3,
    ACTIONS(6935), 1,
      anon_sym_TILDE,
    ACTIONS(12677), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138613] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(5980), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138624] = 3,
    ACTIONS(12679), 1,
      anon_sym_RPAREN,
    ACTIONS(12681), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138635] = 3,
    ACTIONS(12683), 1,
      anon_sym_TILDE,
    ACTIONS(12685), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138646] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(6039), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138657] = 3,
    ACTIONS(12687), 1,
      anon_sym_LPAREN,
    STATE(4597), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138668] = 3,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(12689), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138679] = 3,
    ACTIONS(12347), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12691), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138690] = 3,
    ACTIONS(12693), 1,
      anon_sym_RPAREN,
    ACTIONS(12695), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138701] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4861), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138712] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1509), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138723] = 3,
    ACTIONS(12697), 1,
      sym_identifier,
    ACTIONS(12699), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138734] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2570), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138745] = 3,
    ACTIONS(7951), 1,
      anon_sym_LBRACE,
    STATE(4054), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138756] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4333), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138767] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11972), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [138776] = 3,
    ACTIONS(12701), 1,
      anon_sym_COMMA,
    ACTIONS(12703), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138787] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12705), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [138796] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11960), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [138805] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6244), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138816] = 3,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1713), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138827] = 3,
    ACTIONS(12333), 1,
      anon_sym_LPAREN,
    ACTIONS(12707), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138838] = 3,
    ACTIONS(10700), 1,
      anon_sym_LBRACE,
    STATE(1532), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138849] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2620), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138860] = 3,
    ACTIONS(6957), 1,
      anon_sym_TILDE,
    ACTIONS(12709), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138871] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(6167), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138882] = 3,
    ACTIONS(12711), 1,
      anon_sym_RPAREN,
    ACTIONS(12713), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138893] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9523), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [138902] = 3,
    ACTIONS(12715), 1,
      sym_identifier,
    STATE(6926), 1,
      sym__auto_assignment,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138913] = 3,
    ACTIONS(10646), 1,
      sym_identifier,
    ACTIONS(10648), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138924] = 3,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2861), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138935] = 3,
    ACTIONS(12717), 1,
      sym_identifier,
    STATE(5404), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138946] = 3,
    ACTIONS(12719), 1,
      anon_sym_TILDE,
    ACTIONS(12721), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138957] = 3,
    ACTIONS(12723), 1,
      sym_identifier,
    STATE(5463), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138968] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12725), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138979] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(306), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [138990] = 3,
    ACTIONS(9557), 1,
      anon_sym_LPAREN,
    STATE(6202), 1,
      sym_template_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139001] = 3,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(12727), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139012] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(311), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139023] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(6409), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139034] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5805), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139045] = 3,
    ACTIONS(10929), 1,
      sym_identifier,
    ACTIONS(10931), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139056] = 3,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    STATE(3969), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139067] = 3,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    STATE(2612), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139078] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8968), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [139087] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9161), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [139096] = 3,
    ACTIONS(12347), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12729), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139107] = 3,
    ACTIONS(5455), 1,
      ts_builtin_sym_end,
    ACTIONS(12731), 1,
      sym_end_file,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139118] = 3,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    STATE(5183), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139129] = 3,
    ACTIONS(12333), 1,
      anon_sym_LPAREN,
    ACTIONS(12733), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139140] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8415), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [139149] = 3,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1355), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139160] = 3,
    ACTIONS(12687), 1,
      anon_sym_LPAREN,
    STATE(4754), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139171] = 3,
    ACTIONS(8038), 1,
      anon_sym_LPAREN,
    STATE(3980), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139182] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12735), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139193] = 3,
    ACTIONS(12737), 1,
      anon_sym_LPAREN,
    STATE(3205), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139204] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2862), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139215] = 3,
    ACTIONS(12739), 1,
      anon_sym_LPAREN,
    STATE(3315), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139226] = 3,
    ACTIONS(12741), 1,
      anon_sym_TILDE,
    ACTIONS(12743), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139237] = 3,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(12745), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139248] = 3,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    STATE(2564), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139259] = 3,
    ACTIONS(12747), 1,
      sym_identifier,
    STATE(5566), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139270] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12749), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
  [139279] = 3,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1752), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139290] = 3,
    ACTIONS(12347), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12751), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139301] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9195), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
  [139310] = 3,
    ACTIONS(10732), 1,
      anon_sym_LBRACE,
    STATE(2868), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139321] = 3,
    ACTIONS(12335), 1,
      anon_sym_EQ,
    ACTIONS(12471), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139332] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12753), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139343] = 3,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2871), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139354] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12755), 2,
      sym_int_literal,
      sym_identifier,
  [139363] = 3,
    ACTIONS(12757), 1,
      sym_identifier,
    STATE(5397), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139374] = 3,
    ACTIONS(12759), 1,
      sym_identifier,
    STATE(3942), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139385] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5744), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139396] = 3,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    STATE(2544), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139407] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12761), 2,
      sym_int_literal,
      sym_identifier,
  [139416] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12763), 2,
      sym_int_literal,
      sym_identifier,
  [139425] = 3,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    STATE(3796), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139436] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6030), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139447] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4361), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139458] = 3,
    ACTIONS(7902), 1,
      anon_sym_LPAREN,
    STATE(3831), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139469] = 3,
    ACTIONS(12765), 1,
      sym_identifier,
    STATE(5446), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139480] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12767), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [139489] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12769), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139500] = 3,
    ACTIONS(12771), 1,
      anon_sym_RPAREN,
    ACTIONS(12773), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139511] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12775), 2,
      sym_int_literal,
      sym_identifier,
  [139520] = 3,
    ACTIONS(12777), 1,
      anon_sym_PLUS_PLUS,
    ACTIONS(12779), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139531] = 3,
    ACTIONS(12781), 1,
      sym_identifier,
    ACTIONS(12783), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139542] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(2626), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139553] = 3,
    ACTIONS(12785), 1,
      sym_identifier,
    ACTIONS(12787), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139564] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(193), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139575] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(197), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139586] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11778), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [139595] = 3,
    ACTIONS(12789), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12791), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139606] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12793), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [139615] = 3,
    ACTIONS(12795), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12797), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139626] = 3,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    STATE(2530), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139637] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6248), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139648] = 3,
    ACTIONS(12471), 1,
      anon_sym_LPAREN,
    ACTIONS(12673), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139659] = 3,
    ACTIONS(12799), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12801), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139670] = 3,
    ACTIONS(12803), 1,
      sym_identifier,
    ACTIONS(12805), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139681] = 3,
    ACTIONS(10829), 1,
      sym_identifier,
    ACTIONS(10831), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139692] = 3,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1615), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139703] = 3,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2430), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139714] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4881), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139725] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2699), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139736] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4321), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139747] = 3,
    ACTIONS(11746), 1,
      anon_sym_RBRACK,
    ACTIONS(12807), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139758] = 3,
    ACTIONS(12471), 1,
      anon_sym_LPAREN,
    ACTIONS(12707), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139769] = 3,
    ACTIONS(12809), 1,
      anon_sym_RPAREN,
    ACTIONS(12811), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139780] = 3,
    ACTIONS(10768), 1,
      sym_identifier,
    ACTIONS(10770), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139791] = 3,
    ACTIONS(12813), 1,
      anon_sym_RPAREN,
    ACTIONS(12815), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139802] = 3,
    ACTIONS(12817), 1,
      anon_sym_RPAREN,
    ACTIONS(12819), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139813] = 3,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2486), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139824] = 3,
    ACTIONS(12821), 1,
      anon_sym_RPAREN,
    ACTIONS(12823), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139835] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6126), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139846] = 3,
    ACTIONS(12825), 1,
      anon_sym_RPAREN,
    ACTIONS(12827), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139857] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5865), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139868] = 3,
    ACTIONS(12829), 1,
      anon_sym_RPAREN,
    ACTIONS(12831), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139879] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4882), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139890] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12833), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139901] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(460), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139912] = 3,
    ACTIONS(10902), 1,
      sym_identifier,
    ACTIONS(10904), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139923] = 3,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(12835), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139934] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(459), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139945] = 3,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2479), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139956] = 3,
    ACTIONS(10634), 1,
      anon_sym_LBRACE,
    STATE(2708), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139967] = 3,
    ACTIONS(12837), 1,
      sym_identifier,
    STATE(5459), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139978] = 3,
    ACTIONS(12839), 1,
      sym_identifier,
    STATE(5353), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [139989] = 3,
    ACTIONS(11726), 1,
      anon_sym_RBRACK,
    ACTIONS(12841), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140000] = 3,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2902), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140011] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4377), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140022] = 3,
    ACTIONS(12471), 1,
      anon_sym_LPAREN,
    ACTIONS(12733), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140033] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5917), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140044] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12843), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [140053] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(415), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140064] = 3,
    ACTIONS(12845), 1,
      sym_identifier,
    ACTIONS(12847), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140075] = 3,
    ACTIONS(12849), 1,
      sym_identifier,
    ACTIONS(12851), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140086] = 3,
    ACTIONS(6841), 1,
      anon_sym_TILDE,
    ACTIONS(12853), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140097] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4625), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140108] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(2554), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140119] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4371), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140130] = 3,
    ACTIONS(11720), 1,
      anon_sym_RBRACK,
    ACTIONS(12855), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140141] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4370), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140152] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10240), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [140161] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(457), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140172] = 3,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2530), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140183] = 3,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2898), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140194] = 3,
    ACTIONS(10690), 1,
      sym_identifier,
    ACTIONS(10692), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140205] = 3,
    ACTIONS(12857), 1,
      anon_sym_TILDE,
    ACTIONS(12859), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140216] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12861), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140227] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4961), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140238] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4933), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140249] = 3,
    ACTIONS(8034), 1,
      anon_sym_LPAREN,
    STATE(3998), 1,
      sym_named_arguments,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140260] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12863), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [140269] = 3,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2544), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140280] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12865), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140291] = 3,
    ACTIONS(12867), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12869), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140302] = 3,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    STATE(2479), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140313] = 3,
    ACTIONS(12871), 1,
      sym_identifier,
    ACTIONS(12873), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140324] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2475), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140335] = 3,
    ACTIONS(9387), 1,
      anon_sym_LBRACE,
    STATE(2564), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140346] = 3,
    ACTIONS(12875), 1,
      anon_sym_LPAREN,
    STATE(3442), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140357] = 3,
    ACTIONS(12877), 1,
      anon_sym_LPAREN,
    STATE(3228), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140368] = 3,
    ACTIONS(1032), 1,
      anon_sym_LBRACE,
    STATE(3802), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140379] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2614), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140390] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4372), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140401] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11498), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [140410] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(160), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140421] = 3,
    ACTIONS(12879), 1,
      sym_identifier,
    STATE(5422), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140432] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(351), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140443] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6222), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140454] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(275), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140465] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(10105), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [140474] = 3,
    ACTIONS(12881), 1,
      sym_identifier,
    STATE(5365), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140485] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(5986), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140496] = 3,
    ACTIONS(12883), 1,
      sym_identifier,
    STATE(6640), 1,
      sym_import_bind,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140507] = 3,
    ACTIONS(10849), 1,
      sym_identifier,
    ACTIONS(10851), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140518] = 3,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2852), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140529] = 3,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(12885), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140540] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12887), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140551] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4927), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140562] = 3,
    ACTIONS(8135), 1,
      anon_sym_LBRACE,
    STATE(2486), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140573] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11597), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [140582] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12889), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [140591] = 3,
    ACTIONS(12891), 1,
      sym_identifier,
    STATE(6561), 1,
      sym_alias_initializer,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140602] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2312), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140613] = 3,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1689), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140624] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4850), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140635] = 3,
    ACTIONS(10668), 1,
      sym_identifier,
    ACTIONS(10670), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140646] = 3,
    ACTIONS(7503), 1,
      anon_sym_LPAREN,
    STATE(4789), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140657] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4621), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140668] = 3,
    ACTIONS(12893), 1,
      sym_identifier,
    ACTIONS(12895), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140679] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1748), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140690] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6265), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140701] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2301), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140712] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11569), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [140721] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9517), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [140730] = 3,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(12897), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140741] = 3,
    ACTIONS(12899), 1,
      anon_sym_RPAREN,
    ACTIONS(12901), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140752] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2550), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140763] = 3,
    ACTIONS(12903), 1,
      anon_sym_RPAREN,
    ACTIONS(12905), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140774] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4329), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140785] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2285), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140796] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4844), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140807] = 3,
    ACTIONS(9357), 1,
      anon_sym_LBRACE,
    STATE(2771), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140818] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11539), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [140827] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2559), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140838] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11522), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [140847] = 3,
    ACTIONS(12907), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12909), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140858] = 3,
    ACTIONS(10650), 1,
      sym_identifier,
    ACTIONS(10652), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140869] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(8962), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [140878] = 3,
    ACTIONS(9345), 1,
      anon_sym_LBRACE,
    STATE(1380), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140889] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2630), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140900] = 3,
    ACTIONS(12911), 1,
      sym_identifier,
    ACTIONS(12913), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140911] = 3,
    ACTIONS(12915), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12917), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140922] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2270), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140933] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2635), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140944] = 3,
    ACTIONS(12919), 1,
      anon_sym_RPAREN,
    ACTIONS(12921), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140955] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1754), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140966] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(199), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140977] = 3,
    ACTIONS(12923), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12925), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [140988] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12927), 2,
      sym_int_literal,
      sym_identifier,
  [140997] = 3,
    ACTIONS(12929), 1,
      anon_sym_COMMA,
    ACTIONS(12931), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141008] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2267), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141019] = 3,
    ACTIONS(12933), 1,
      sym_identifier,
    STATE(5411), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141030] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6077), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141041] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11123), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [141050] = 3,
    ACTIONS(3251), 1,
      anon_sym_LBRACE,
    STATE(3976), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141061] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(12935), 2,
      sym_int_literal,
      sym_identifier,
  [141070] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6314), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141081] = 3,
    ACTIONS(10626), 1,
      sym_identifier,
    ACTIONS(10628), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141092] = 3,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2257), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141103] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(9069), 2,
      anon_sym_RBRACK,
      anon_sym_COMMA,
  [141112] = 3,
    ACTIONS(10883), 1,
      sym_identifier,
    ACTIONS(10885), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141123] = 3,
    ACTIONS(12937), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12939), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141134] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(11464), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [141143] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2239), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141154] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12941), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141165] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(6423), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141176] = 3,
    ACTIONS(12943), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12945), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141187] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2233), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141198] = 3,
    ACTIONS(12947), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12949), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141209] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1593), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141220] = 3,
    ACTIONS(12951), 1,
      sym_identifier,
    ACTIONS(12953), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141231] = 3,
    ACTIONS(9315), 1,
      anon_sym_LBRACE,
    STATE(1751), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141242] = 3,
    ACTIONS(12955), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12957), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141253] = 3,
    ACTIONS(10879), 1,
      sym_identifier,
    ACTIONS(10881), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141264] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2649), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141275] = 3,
    ACTIONS(12959), 1,
      sym_identifier,
    ACTIONS(12961), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141286] = 3,
    ACTIONS(12963), 1,
      anon_sym_RPAREN,
    ACTIONS(12965), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141297] = 3,
    ACTIONS(12967), 1,
      sym_identifier,
    ACTIONS(12969), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141308] = 3,
    ACTIONS(12971), 1,
      sym_identifier,
    ACTIONS(12973), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141319] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1610), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141330] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2657), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141341] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4936), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141352] = 3,
    ACTIONS(12975), 1,
      sym_identifier,
    ACTIONS(12977), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141363] = 3,
    ACTIONS(12979), 1,
      anon_sym_DOT_DOT,
    ACTIONS(12981), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141374] = 3,
    ACTIONS(12983), 1,
      anon_sym_RPAREN,
    ACTIONS(12985), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141385] = 3,
    ACTIONS(10676), 1,
      anon_sym_LBRACE,
    STATE(2667), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141396] = 3,
    ACTIONS(12403), 1,
      anon_sym_SEMI,
    ACTIONS(12987), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141407] = 3,
    ACTIONS(12989), 1,
      anon_sym_RPAREN,
    ACTIONS(12991), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141418] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1630), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141429] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6203), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141440] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1652), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141451] = 3,
    ACTIONS(12993), 1,
      anon_sym_RPAREN,
    ACTIONS(12995), 1,
      anon_sym_COMMA,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141462] = 3,
    ACTIONS(12883), 1,
      sym_identifier,
    STATE(6386), 1,
      sym_import_bind,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141473] = 3,
    ACTIONS(12411), 1,
      sym_identifier,
    STATE(6326), 1,
      sym_module_fqn,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141484] = 3,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2171), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141495] = 3,
    ACTIONS(5171), 1,
      ts_builtin_sym_end,
    ACTIONS(12997), 1,
      sym_end_file,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141506] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(12999), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141517] = 3,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2366), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141528] = 3,
    ACTIONS(7945), 1,
      anon_sym_LBRACE,
    STATE(3861), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141539] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4326), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141550] = 3,
    ACTIONS(13001), 1,
      anon_sym_DOT_DOT,
    ACTIONS(13003), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141561] = 3,
    ACTIONS(10892), 1,
      sym_identifier,
    ACTIONS(10894), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141572] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4972), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141583] = 3,
    ACTIONS(10869), 1,
      sym_identifier,
    ACTIONS(10871), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141594] = 3,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(13005), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141605] = 3,
    ACTIONS(13007), 1,
      anon_sym_RPAREN,
    ACTIONS(13009), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141616] = 3,
    ACTIONS(13011), 1,
      anon_sym_RPAREN,
    ACTIONS(13013), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141627] = 3,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(13015), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141638] = 3,
    ACTIONS(13017), 1,
      sym_identifier,
    STATE(5403), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141649] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(13019), 2,
      sym_int_literal,
      sym_identifier,
  [141658] = 3,
    ACTIONS(7922), 1,
      anon_sym_LBRACE,
    STATE(3961), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141669] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6394), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141680] = 3,
    ACTIONS(13021), 1,
      sym_identifier,
    STATE(5413), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141691] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2170), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141702] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1656), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141713] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(13023), 2,
      sym_int_literal,
      sym_identifier,
  [141722] = 3,
    ACTIONS(10722), 1,
      anon_sym_LBRACE,
    STATE(2208), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141733] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(2461), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141744] = 3,
    ACTIONS(7945), 1,
      anon_sym_LBRACE,
    STATE(3842), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141755] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(13025), 2,
      anon_sym_RBRACE,
      anon_sym_COMMA,
  [141764] = 3,
    ACTIONS(13027), 1,
      sym_identifier,
    STATE(3823), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141775] = 3,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2214), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141786] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(13029), 2,
      anon_sym_RPAREN,
      anon_sym_COMMA,
  [141795] = 3,
    ACTIONS(12687), 1,
      anon_sym_LPAREN,
    STATE(4627), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141806] = 3,
    ACTIONS(12687), 1,
      anon_sym_LPAREN,
    STATE(4910), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141817] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6496), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141828] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1703), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141839] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(13031), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [141848] = 2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
    ACTIONS(13033), 2,
      anon_sym_COMMA,
      anon_sym_SEMI,
  [141857] = 3,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2330), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141868] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6337), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141879] = 3,
    ACTIONS(13035), 1,
      anon_sym_PLUS_PLUS,
    ACTIONS(13037), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141890] = 3,
    ACTIONS(10616), 1,
      anon_sym_LBRACE,
    STATE(1718), 1,
      sym_aggregate_body,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141901] = 3,
    ACTIONS(13039), 1,
      anon_sym_DOT_DOT,
    ACTIONS(13041), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141912] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(403), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141923] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4316), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141934] = 3,
    ACTIONS(12371), 1,
      anon_sym_LPAREN,
    STATE(402), 1,
      sym_if_condition,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141945] = 3,
    ACTIONS(13043), 1,
      sym_identifier,
    STATE(5383), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141956] = 3,
    ACTIONS(13045), 1,
      sym_identifier,
    STATE(5356), 1,
      sym_template_instance,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141967] = 3,
    ACTIONS(10803), 1,
      sym_identifier,
    ACTIONS(10805), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141978] = 3,
    ACTIONS(10718), 1,
      sym_identifier,
    ACTIONS(10720), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [141989] = 3,
    ACTIONS(6613), 1,
      anon_sym_LBRACE,
    STATE(2751), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142000] = 3,
    ACTIONS(11107), 1,
      anon_sym_LPAREN,
    STATE(4924), 1,
      sym_parameters,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142011] = 3,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2261), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142022] = 3,
    ACTIONS(12357), 1,
      sym_identifier,
    STATE(6055), 1,
      sym_manifest_declarator,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142033] = 3,
    ACTIONS(9333), 1,
      anon_sym_LBRACE,
    STATE(2315), 1,
      sym_block_statement,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142044] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(13047), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142055] = 3,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(13049), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142066] = 3,
    ACTIONS(12411), 1,
      sym_identifier,
    STATE(7825), 1,
      sym_module_fqn,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142077] = 2,
    ACTIONS(13051), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142085] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13053), 1,
      aux_sym_raw_string_token3,
  [142095] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13055), 1,
      aux_sym_hex_string_token1,
  [142105] = 2,
    ACTIONS(13057), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142113] = 2,
    ACTIONS(13059), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142121] = 2,
    ACTIONS(13061), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142129] = 2,
    ACTIONS(13063), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142137] = 2,
    ACTIONS(13065), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142145] = 2,
    ACTIONS(13067), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142153] = 2,
    ACTIONS(13069), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142161] = 2,
    ACTIONS(13071), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142169] = 2,
    ACTIONS(13073), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142177] = 2,
    ACTIONS(13075), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142185] = 2,
    ACTIONS(13077), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142193] = 2,
    ACTIONS(13079), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142201] = 2,
    ACTIONS(10805), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142209] = 2,
    ACTIONS(13081), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142217] = 2,
    ACTIONS(13083), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142225] = 2,
    ACTIONS(13085), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142233] = 2,
    ACTIONS(13087), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142241] = 2,
    ACTIONS(13089), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142249] = 2,
    ACTIONS(13091), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142257] = 2,
    ACTIONS(13093), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142265] = 2,
    ACTIONS(13095), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142273] = 2,
    ACTIONS(13097), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142281] = 2,
    ACTIONS(13099), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142289] = 2,
    ACTIONS(2802), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142297] = 2,
    ACTIONS(13101), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142305] = 2,
    ACTIONS(3173), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142313] = 2,
    ACTIONS(13103), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142321] = 2,
    ACTIONS(13105), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142329] = 2,
    ACTIONS(13107), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142337] = 2,
    ACTIONS(13109), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142345] = 2,
    ACTIONS(13111), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142353] = 2,
    ACTIONS(11360), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142361] = 2,
    ACTIONS(7581), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142369] = 2,
    ACTIONS(13113), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142377] = 2,
    ACTIONS(13115), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142385] = 2,
    ACTIONS(13117), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142393] = 2,
    ACTIONS(13119), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142401] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13121), 1,
      aux_sym_raw_string_token1,
  [142411] = 2,
    ACTIONS(13123), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142419] = 2,
    ACTIONS(9801), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142427] = 2,
    ACTIONS(13125), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142435] = 2,
    ACTIONS(13127), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142443] = 2,
    ACTIONS(13129), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142451] = 2,
    ACTIONS(13131), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142459] = 2,
    ACTIONS(13133), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142467] = 2,
    ACTIONS(11362), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142475] = 2,
    ACTIONS(13135), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142483] = 2,
    ACTIONS(13137), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142491] = 2,
    ACTIONS(13139), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142499] = 2,
    ACTIONS(10894), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142507] = 2,
    ACTIONS(13141), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142515] = 2,
    ACTIONS(13143), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142523] = 2,
    ACTIONS(13145), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142531] = 2,
    ACTIONS(13147), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142539] = 2,
    ACTIONS(13149), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142547] = 2,
    ACTIONS(13151), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142555] = 2,
    ACTIONS(13153), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142563] = 2,
    ACTIONS(13155), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142571] = 2,
    ACTIONS(13157), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142579] = 2,
    ACTIONS(13159), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142587] = 2,
    ACTIONS(13161), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142595] = 2,
    ACTIONS(13163), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142603] = 2,
    ACTIONS(13165), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142611] = 2,
    ACTIONS(13167), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142619] = 2,
    ACTIONS(13169), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142627] = 2,
    ACTIONS(13171), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142635] = 2,
    ACTIONS(13173), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142643] = 2,
    ACTIONS(13175), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142651] = 2,
    ACTIONS(12973), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142659] = 2,
    ACTIONS(13177), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142667] = 2,
    ACTIONS(13179), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142675] = 2,
    ACTIONS(13181), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142683] = 2,
    ACTIONS(13183), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142691] = 2,
    ACTIONS(13185), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142699] = 2,
    ACTIONS(13187), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142707] = 2,
    ACTIONS(13189), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142715] = 2,
    ACTIONS(13191), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142723] = 2,
    ACTIONS(13193), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142731] = 2,
    ACTIONS(13195), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142739] = 2,
    ACTIONS(13197), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142747] = 2,
    ACTIONS(13199), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142755] = 2,
    ACTIONS(13201), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142763] = 2,
    ACTIONS(13203), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142771] = 2,
    ACTIONS(13205), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142779] = 2,
    ACTIONS(13207), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142787] = 2,
    ACTIONS(13209), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142795] = 2,
    ACTIONS(13211), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142803] = 2,
    ACTIONS(13213), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142811] = 2,
    ACTIONS(13215), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142819] = 2,
    ACTIONS(9595), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142827] = 2,
    ACTIONS(13217), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142835] = 2,
    ACTIONS(13219), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142843] = 2,
    ACTIONS(13221), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142851] = 2,
    ACTIONS(13223), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142859] = 2,
    ACTIONS(13225), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142867] = 2,
    ACTIONS(13227), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142875] = 2,
    ACTIONS(13229), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142883] = 2,
    ACTIONS(13231), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142891] = 2,
    ACTIONS(13233), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142899] = 2,
    ACTIONS(13235), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142907] = 2,
    ACTIONS(10628), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142915] = 2,
    ACTIONS(13237), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142923] = 2,
    ACTIONS(13239), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142931] = 2,
    ACTIONS(13241), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142939] = 2,
    ACTIONS(13243), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142947] = 2,
    ACTIONS(13245), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142955] = 2,
    ACTIONS(13247), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142963] = 2,
    ACTIONS(13249), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142971] = 2,
    ACTIONS(13251), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142979] = 2,
    ACTIONS(3463), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142987] = 2,
    ACTIONS(13253), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [142995] = 2,
    ACTIONS(13255), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143003] = 2,
    ACTIONS(13257), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143011] = 2,
    ACTIONS(13259), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143019] = 2,
    ACTIONS(13261), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143027] = 2,
    ACTIONS(13263), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143035] = 2,
    ACTIONS(13265), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143043] = 2,
    ACTIONS(10589), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143051] = 2,
    ACTIONS(13267), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143059] = 2,
    ACTIONS(13269), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143067] = 2,
    ACTIONS(13271), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143075] = 2,
    ACTIONS(13273), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143083] = 2,
    ACTIONS(13275), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143091] = 2,
    ACTIONS(13277), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143099] = 2,
    ACTIONS(13279), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143107] = 2,
    ACTIONS(13281), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143115] = 2,
    ACTIONS(13283), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143123] = 2,
    ACTIONS(13285), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143131] = 2,
    ACTIONS(13139), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143139] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13287), 1,
      aux_sym_raw_string_token1,
  [143149] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13289), 1,
      aux_sym_raw_string_token3,
  [143159] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13291), 1,
      aux_sym_hex_string_token1,
  [143169] = 2,
    ACTIONS(13293), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143177] = 2,
    ACTIONS(13295), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143185] = 2,
    ACTIONS(13297), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143193] = 2,
    ACTIONS(9627), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143201] = 2,
    ACTIONS(13299), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143209] = 2,
    ACTIONS(7577), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143217] = 2,
    ACTIONS(13301), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143225] = 2,
    ACTIONS(13303), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143233] = 2,
    ACTIONS(13305), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143241] = 2,
    ACTIONS(13307), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143249] = 2,
    ACTIONS(13309), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143257] = 2,
    ACTIONS(13311), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143265] = 2,
    ACTIONS(13313), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143273] = 2,
    ACTIONS(13315), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143281] = 2,
    ACTIONS(13317), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143289] = 2,
    ACTIONS(13319), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143297] = 2,
    ACTIONS(13317), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143305] = 2,
    ACTIONS(13321), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143313] = 2,
    ACTIONS(13323), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143321] = 2,
    ACTIONS(13325), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143329] = 2,
    ACTIONS(13327), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143337] = 2,
    ACTIONS(13329), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143345] = 2,
    ACTIONS(13327), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143353] = 2,
    ACTIONS(13331), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143361] = 2,
    ACTIONS(13333), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143369] = 2,
    ACTIONS(13335), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143377] = 2,
    ACTIONS(13337), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143385] = 2,
    ACTIONS(13337), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143393] = 2,
    ACTIONS(11626), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143401] = 2,
    ACTIONS(13339), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143409] = 2,
    ACTIONS(13341), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143417] = 2,
    ACTIONS(13343), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143425] = 2,
    ACTIONS(13345), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143433] = 2,
    ACTIONS(11783), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143441] = 2,
    ACTIONS(13347), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143449] = 2,
    ACTIONS(13349), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143457] = 2,
    ACTIONS(11698), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143465] = 2,
    ACTIONS(13351), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143473] = 2,
    ACTIONS(13353), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143481] = 2,
    ACTIONS(11728), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143489] = 2,
    ACTIONS(13355), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143497] = 2,
    ACTIONS(13357), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143505] = 2,
    ACTIONS(13359), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143513] = 2,
    ACTIONS(13361), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143521] = 2,
    ACTIONS(13363), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143529] = 2,
    ACTIONS(13365), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143537] = 2,
    ACTIONS(13367), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143545] = 2,
    ACTIONS(13369), 1,
      ts_builtin_sym_end,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143553] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13371), 1,
      aux_sym_hex_string_token1,
  [143563] = 2,
    ACTIONS(13373), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143571] = 2,
    ACTIONS(13375), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143579] = 2,
    ACTIONS(13377), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143587] = 2,
    ACTIONS(13379), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143595] = 2,
    ACTIONS(13381), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143603] = 2,
    ACTIONS(10904), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143611] = 2,
    ACTIONS(13383), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143619] = 2,
    ACTIONS(13385), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143627] = 2,
    ACTIONS(13387), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143635] = 2,
    ACTIONS(13389), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143643] = 2,
    ACTIONS(13391), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143651] = 2,
    ACTIONS(13393), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143659] = 2,
    ACTIONS(13395), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143667] = 2,
    ACTIONS(13397), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143675] = 2,
    ACTIONS(13399), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143683] = 2,
    ACTIONS(13401), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143691] = 2,
    ACTIONS(13403), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143699] = 2,
    ACTIONS(13405), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143707] = 2,
    ACTIONS(13407), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143715] = 2,
    ACTIONS(13409), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143723] = 2,
    ACTIONS(13411), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143731] = 2,
    ACTIONS(13413), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143739] = 2,
    ACTIONS(13415), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143747] = 2,
    ACTIONS(13417), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143755] = 2,
    ACTIONS(13419), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143763] = 2,
    ACTIONS(13421), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143771] = 2,
    ACTIONS(13423), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143779] = 2,
    ACTIONS(10770), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143787] = 2,
    ACTIONS(13425), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143795] = 2,
    ACTIONS(13427), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143803] = 2,
    ACTIONS(13429), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143811] = 2,
    ACTIONS(13431), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143819] = 2,
    ACTIONS(13433), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143827] = 2,
    ACTIONS(7634), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143835] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13435), 1,
      aux_sym_raw_string_token3,
  [143845] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13437), 1,
      aux_sym_raw_string_token1,
  [143855] = 2,
    ACTIONS(13439), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143863] = 2,
    ACTIONS(13441), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143871] = 2,
    ACTIONS(13443), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143879] = 2,
    ACTIONS(13445), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143887] = 2,
    ACTIONS(13447), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143895] = 2,
    ACTIONS(13449), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143903] = 2,
    ACTIONS(13451), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143911] = 2,
    ACTIONS(13453), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143919] = 2,
    ACTIONS(13455), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143927] = 2,
    ACTIONS(13457), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143935] = 2,
    ACTIONS(13459), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143943] = 2,
    ACTIONS(13457), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143951] = 2,
    ACTIONS(13461), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143959] = 2,
    ACTIONS(13463), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143967] = 2,
    ACTIONS(13465), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143975] = 2,
    ACTIONS(13467), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143983] = 2,
    ACTIONS(12779), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143991] = 2,
    ACTIONS(13469), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [143999] = 2,
    ACTIONS(13471), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144007] = 2,
    ACTIONS(13473), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144015] = 2,
    ACTIONS(13475), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144023] = 2,
    ACTIONS(13477), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144031] = 2,
    ACTIONS(13479), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144039] = 2,
    ACTIONS(13477), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144047] = 2,
    ACTIONS(13481), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144055] = 2,
    ACTIONS(13483), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144063] = 2,
    ACTIONS(13485), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144071] = 2,
    ACTIONS(13487), 1,
      ts_builtin_sym_end,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144079] = 2,
    ACTIONS(13489), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144087] = 2,
    ACTIONS(13491), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144095] = 2,
    ACTIONS(13493), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144103] = 2,
    ACTIONS(13495), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144111] = 2,
    ACTIONS(7573), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144119] = 2,
    ACTIONS(13497), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144127] = 2,
    ACTIONS(13499), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144135] = 2,
    ACTIONS(9605), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144143] = 2,
    ACTIONS(11856), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144151] = 2,
    ACTIONS(13501), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144159] = 2,
    ACTIONS(13503), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144167] = 2,
    ACTIONS(13505), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144175] = 2,
    ACTIONS(13507), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144183] = 2,
    ACTIONS(13509), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144191] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13511), 1,
      aux_sym_raw_string_token1,
  [144201] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13513), 1,
      aux_sym_raw_string_token3,
  [144211] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13515), 1,
      aux_sym_hex_string_token1,
  [144221] = 2,
    ACTIONS(13517), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144229] = 2,
    ACTIONS(13519), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144237] = 2,
    ACTIONS(13521), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144245] = 2,
    ACTIONS(11895), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144253] = 2,
    ACTIONS(3523), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144261] = 2,
    ACTIONS(13523), 1,
      sym__after_eof,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144269] = 2,
    ACTIONS(13525), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144277] = 2,
    ACTIONS(13527), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144285] = 2,
    ACTIONS(13529), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144293] = 2,
    ACTIONS(5455), 1,
      ts_builtin_sym_end,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144301] = 2,
    ACTIONS(13531), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144309] = 2,
    ACTIONS(10931), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144317] = 2,
    ACTIONS(13533), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144325] = 2,
    ACTIONS(13535), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144333] = 2,
    ACTIONS(13537), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144341] = 2,
    ACTIONS(13539), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144349] = 2,
    ACTIONS(9711), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144357] = 2,
    ACTIONS(13541), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144365] = 2,
    ACTIONS(13543), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144373] = 2,
    ACTIONS(13545), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144381] = 2,
    ACTIONS(13547), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144389] = 2,
    ACTIONS(13549), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144397] = 2,
    ACTIONS(13551), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144405] = 2,
    ACTIONS(13553), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144413] = 2,
    ACTIONS(13555), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144421] = 2,
    ACTIONS(12140), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144429] = 2,
    ACTIONS(13557), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144437] = 2,
    ACTIONS(13559), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144445] = 2,
    ACTIONS(13561), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144453] = 2,
    ACTIONS(13563), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144461] = 2,
    ACTIONS(13565), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144469] = 2,
    ACTIONS(13567), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144477] = 2,
    ACTIONS(13569), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144485] = 2,
    ACTIONS(11982), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144493] = 2,
    ACTIONS(13571), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144501] = 2,
    ACTIONS(13573), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144509] = 2,
    ACTIONS(13575), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144517] = 2,
    ACTIONS(13577), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144525] = 2,
    ACTIONS(12008), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144533] = 2,
    ACTIONS(13579), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144541] = 2,
    ACTIONS(13581), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144549] = 2,
    ACTIONS(13583), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144557] = 2,
    ACTIONS(13585), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144565] = 2,
    ACTIONS(13587), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144573] = 2,
    ACTIONS(2780), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144581] = 2,
    ACTIONS(13589), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144589] = 2,
    ACTIONS(13591), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144597] = 2,
    ACTIONS(13593), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144605] = 2,
    ACTIONS(13595), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144613] = 2,
    ACTIONS(13597), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144621] = 2,
    ACTIONS(13599), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144629] = 2,
    ACTIONS(13601), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144637] = 2,
    ACTIONS(10730), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144645] = 2,
    ACTIONS(13603), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144653] = 2,
    ACTIONS(13605), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144661] = 2,
    ACTIONS(9861), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144669] = 2,
    ACTIONS(13607), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144677] = 2,
    ACTIONS(13609), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144685] = 2,
    ACTIONS(13611), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144693] = 2,
    ACTIONS(13613), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144701] = 2,
    ACTIONS(13615), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144709] = 2,
    ACTIONS(13617), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144717] = 2,
    ACTIONS(13619), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144725] = 2,
    ACTIONS(13621), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144733] = 2,
    ACTIONS(13623), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144741] = 2,
    ACTIONS(13625), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144749] = 2,
    ACTIONS(13627), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144757] = 2,
    ACTIONS(13629), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144765] = 2,
    ACTIONS(13631), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144773] = 2,
    ACTIONS(13633), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144781] = 2,
    ACTIONS(13635), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144789] = 2,
    ACTIONS(13637), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144797] = 2,
    ACTIONS(13639), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144805] = 2,
    ACTIONS(13641), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144813] = 2,
    ACTIONS(13643), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144821] = 2,
    ACTIONS(13645), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144829] = 2,
    ACTIONS(7591), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144837] = 2,
    ACTIONS(13647), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144845] = 2,
    ACTIONS(8139), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144853] = 2,
    ACTIONS(13649), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144861] = 2,
    ACTIONS(13651), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144869] = 2,
    ACTIONS(13653), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144877] = 2,
    ACTIONS(13655), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144885] = 2,
    ACTIONS(13657), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144893] = 2,
    ACTIONS(13659), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144901] = 2,
    ACTIONS(13661), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144909] = 2,
    ACTIONS(13663), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144917] = 2,
    ACTIONS(13665), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144925] = 2,
    ACTIONS(13667), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144933] = 2,
    ACTIONS(13669), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144941] = 2,
    ACTIONS(13671), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144949] = 2,
    ACTIONS(13673), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144957] = 2,
    ACTIONS(13675), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144965] = 2,
    ACTIONS(12337), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144973] = 2,
    ACTIONS(13677), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144981] = 2,
    ACTIONS(13679), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144989] = 2,
    ACTIONS(13681), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [144997] = 2,
    ACTIONS(9857), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145005] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13683), 1,
      aux_sym_raw_string_token1,
  [145015] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13685), 1,
      aux_sym_raw_string_token3,
  [145025] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13687), 1,
      aux_sym_hex_string_token1,
  [145035] = 2,
    ACTIONS(13689), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145043] = 2,
    ACTIONS(13691), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145051] = 2,
    ACTIONS(13693), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145059] = 2,
    ACTIONS(10943), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145067] = 2,
    ACTIONS(13695), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145075] = 2,
    ACTIONS(13697), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145083] = 2,
    ACTIONS(13699), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145091] = 2,
    ACTIONS(13701), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145099] = 2,
    ACTIONS(13703), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145107] = 2,
    ACTIONS(13705), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145115] = 2,
    ACTIONS(13707), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145123] = 2,
    ACTIONS(13709), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145131] = 2,
    ACTIONS(13711), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145139] = 2,
    ACTIONS(13713), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145147] = 2,
    ACTIONS(13715), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145155] = 2,
    ACTIONS(13717), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145163] = 2,
    ACTIONS(13719), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145171] = 2,
    ACTIONS(13721), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145179] = 2,
    ACTIONS(13723), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145187] = 2,
    ACTIONS(13725), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145195] = 2,
    ACTIONS(13727), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145203] = 2,
    ACTIONS(13729), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145211] = 2,
    ACTIONS(13731), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145219] = 2,
    ACTIONS(13733), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145227] = 2,
    ACTIONS(13735), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145235] = 2,
    ACTIONS(13737), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145243] = 2,
    ACTIONS(13739), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145251] = 2,
    ACTIONS(6885), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145259] = 2,
    ACTIONS(13741), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145267] = 2,
    ACTIONS(13743), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145275] = 2,
    ACTIONS(13745), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145283] = 2,
    ACTIONS(13747), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145291] = 2,
    ACTIONS(13749), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145299] = 2,
    ACTIONS(13751), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145307] = 2,
    ACTIONS(13753), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145315] = 2,
    ACTIONS(13755), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145323] = 2,
    ACTIONS(13757), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145331] = 2,
    ACTIONS(13759), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145339] = 2,
    ACTIONS(13761), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145347] = 2,
    ACTIONS(12523), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145355] = 2,
    ACTIONS(13763), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145363] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13765), 1,
      aux_sym_raw_string_token1,
  [145373] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13767), 1,
      aux_sym_raw_string_token3,
  [145383] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13769), 1,
      aux_sym_hex_string_token1,
  [145393] = 2,
    ACTIONS(13771), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145401] = 2,
    ACTIONS(10050), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145409] = 2,
    ACTIONS(13773), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145417] = 2,
    ACTIONS(13775), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145425] = 2,
    ACTIONS(13777), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145433] = 2,
    ACTIONS(13779), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145441] = 2,
    ACTIONS(13781), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145449] = 2,
    ACTIONS(13783), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145457] = 2,
    ACTIONS(13785), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145465] = 2,
    ACTIONS(13787), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145473] = 2,
    ACTIONS(13789), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145481] = 2,
    ACTIONS(13791), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145489] = 2,
    ACTIONS(13793), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145497] = 2,
    ACTIONS(13795), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145505] = 2,
    ACTIONS(13797), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145513] = 2,
    ACTIONS(13799), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145521] = 2,
    ACTIONS(13801), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145529] = 2,
    ACTIONS(13803), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145537] = 2,
    ACTIONS(13805), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145545] = 2,
    ACTIONS(13807), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145553] = 2,
    ACTIONS(13809), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145561] = 2,
    ACTIONS(13811), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145569] = 2,
    ACTIONS(12177), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145577] = 2,
    ACTIONS(13813), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145585] = 2,
    ACTIONS(13815), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145593] = 2,
    ACTIONS(13817), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145601] = 2,
    ACTIONS(13819), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145609] = 2,
    ACTIONS(13821), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145617] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13823), 1,
      aux_sym_raw_string_token1,
  [145627] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13825), 1,
      aux_sym_raw_string_token3,
  [145637] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13827), 1,
      aux_sym_hex_string_token1,
  [145647] = 2,
    ACTIONS(13829), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145655] = 2,
    ACTIONS(13831), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145663] = 2,
    ACTIONS(13833), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145671] = 2,
    ACTIONS(13835), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145679] = 2,
    ACTIONS(13837), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145687] = 2,
    ACTIONS(13839), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145695] = 2,
    ACTIONS(13841), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145703] = 2,
    ACTIONS(13843), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145711] = 2,
    ACTIONS(13845), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145719] = 2,
    ACTIONS(13847), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145727] = 2,
    ACTIONS(13849), 1,
      anon_sym_C,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145735] = 2,
    ACTIONS(9030), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145743] = 2,
    ACTIONS(13851), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145751] = 2,
    ACTIONS(13853), 1,
      anon_sym_C,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145759] = 2,
    ACTIONS(13855), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145767] = 2,
    ACTIONS(12298), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145775] = 2,
    ACTIONS(13857), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145783] = 2,
    ACTIONS(13859), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145791] = 2,
    ACTIONS(13861), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145799] = 2,
    ACTIONS(13863), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145807] = 2,
    ACTIONS(13865), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145815] = 2,
    ACTIONS(13867), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145823] = 2,
    ACTIONS(13869), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145831] = 2,
    ACTIONS(13871), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145839] = 2,
    ACTIONS(13873), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145847] = 2,
    ACTIONS(13875), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145855] = 2,
    ACTIONS(13877), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145863] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13879), 1,
      aux_sym_raw_string_token1,
  [145873] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13881), 1,
      aux_sym_raw_string_token3,
  [145883] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13883), 1,
      aux_sym_hex_string_token1,
  [145893] = 2,
    ACTIONS(13885), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145901] = 2,
    ACTIONS(13887), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145909] = 2,
    ACTIONS(13889), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145917] = 2,
    ACTIONS(13891), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145925] = 2,
    ACTIONS(13893), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145933] = 2,
    ACTIONS(13895), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145941] = 2,
    ACTIONS(13897), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145949] = 2,
    ACTIONS(13899), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145957] = 2,
    ACTIONS(13901), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145965] = 2,
    ACTIONS(13903), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145973] = 2,
    ACTIONS(12286), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145981] = 2,
    ACTIONS(13905), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145989] = 2,
    ACTIONS(13907), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [145997] = 2,
    ACTIONS(13909), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146005] = 2,
    ACTIONS(13911), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146013] = 2,
    ACTIONS(13913), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146021] = 2,
    ACTIONS(13915), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146029] = 2,
    ACTIONS(13917), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146037] = 2,
    ACTIONS(13919), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146045] = 2,
    ACTIONS(13921), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146053] = 2,
    ACTIONS(13923), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146061] = 2,
    ACTIONS(13925), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146069] = 2,
    ACTIONS(13927), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146077] = 2,
    ACTIONS(3591), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146085] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13929), 1,
      aux_sym_raw_string_token1,
  [146095] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13931), 1,
      aux_sym_raw_string_token3,
  [146105] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13933), 1,
      aux_sym_hex_string_token1,
  [146115] = 2,
    ACTIONS(13935), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146123] = 2,
    ACTIONS(13937), 1,
      sym_while,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146131] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13939), 1,
      aux_sym_raw_string_token1,
  [146141] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13941), 1,
      aux_sym_raw_string_token3,
  [146151] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13943), 1,
      aux_sym_hex_string_token1,
  [146161] = 2,
    ACTIONS(13945), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146169] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13947), 1,
      aux_sym_raw_string_token1,
  [146179] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13949), 1,
      aux_sym_raw_string_token3,
  [146189] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13951), 1,
      aux_sym_hex_string_token1,
  [146199] = 2,
    ACTIONS(12312), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146207] = 2,
    ACTIONS(13953), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146215] = 2,
    ACTIONS(13955), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146223] = 2,
    ACTIONS(13957), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146231] = 2,
    ACTIONS(13959), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146239] = 2,
    ACTIONS(13961), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146247] = 2,
    ACTIONS(13963), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146255] = 2,
    ACTIONS(13965), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146263] = 2,
    ACTIONS(13967), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146271] = 2,
    ACTIONS(13969), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146279] = 2,
    ACTIONS(13971), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146287] = 2,
    ACTIONS(13973), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146295] = 2,
    ACTIONS(13975), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146303] = 2,
    ACTIONS(13977), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146311] = 2,
    ACTIONS(13979), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146319] = 2,
    ACTIONS(13981), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146327] = 2,
    ACTIONS(13983), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146335] = 2,
    ACTIONS(13985), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146343] = 2,
    ACTIONS(13987), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146351] = 2,
    ACTIONS(9063), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146359] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13989), 1,
      aux_sym_hex_string_token1,
  [146369] = 2,
    ACTIONS(13991), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146377] = 2,
    ACTIONS(13993), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146385] = 2,
    ACTIONS(13995), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146393] = 2,
    ACTIONS(13997), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146401] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(13999), 1,
      aux_sym_raw_string_token3,
  [146411] = 2,
    ACTIONS(14001), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146419] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(14003), 1,
      aux_sym_raw_string_token1,
  [146429] = 2,
    ACTIONS(14005), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146437] = 2,
    ACTIONS(10827), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146445] = 2,
    ACTIONS(14007), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146453] = 2,
    ACTIONS(14009), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146461] = 2,
    ACTIONS(14011), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146469] = 2,
    ACTIONS(10966), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146477] = 2,
    ACTIONS(14013), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146485] = 2,
    ACTIONS(14015), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146493] = 2,
    ACTIONS(14017), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146501] = 2,
    ACTIONS(14019), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146509] = 2,
    ACTIONS(14021), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146517] = 2,
    ACTIONS(14023), 1,
      anon_sym_DASH,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146525] = 2,
    ACTIONS(14025), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146533] = 2,
    ACTIONS(7650), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146541] = 2,
    ACTIONS(14027), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146549] = 2,
    ACTIONS(14029), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146557] = 2,
    ACTIONS(14031), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146565] = 2,
    ACTIONS(14033), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146573] = 2,
    ACTIONS(14035), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146581] = 2,
    ACTIONS(14037), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146589] = 2,
    ACTIONS(14039), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146597] = 2,
    ACTIONS(14041), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146605] = 2,
    ACTIONS(14043), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146613] = 2,
    ACTIONS(14045), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146621] = 2,
    ACTIONS(7652), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146629] = 2,
    ACTIONS(14047), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146637] = 2,
    ACTIONS(14049), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146645] = 2,
    ACTIONS(14051), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146653] = 2,
    ACTIONS(14053), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146661] = 2,
    ACTIONS(14055), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146669] = 2,
    ACTIONS(14057), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146677] = 2,
    ACTIONS(14059), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146685] = 2,
    ACTIONS(14061), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146693] = 2,
    ACTIONS(14063), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146701] = 2,
    ACTIONS(14065), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146709] = 2,
    ACTIONS(10809), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146717] = 2,
    ACTIONS(14067), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146725] = 2,
    ACTIONS(14069), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146733] = 2,
    ACTIONS(14071), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146741] = 2,
    ACTIONS(14073), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146749] = 2,
    ACTIONS(14075), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146757] = 2,
    ACTIONS(14077), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146765] = 2,
    ACTIONS(14079), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146773] = 2,
    ACTIONS(14081), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146781] = 2,
    ACTIONS(14083), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146789] = 2,
    ACTIONS(14085), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146797] = 2,
    ACTIONS(14087), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146805] = 2,
    ACTIONS(14089), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146813] = 2,
    ACTIONS(14091), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146821] = 2,
    ACTIONS(14093), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146829] = 2,
    ACTIONS(14095), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146837] = 2,
    ACTIONS(14097), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146845] = 2,
    ACTIONS(7648), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146853] = 2,
    ACTIONS(14099), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146861] = 2,
    ACTIONS(14101), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146869] = 2,
    ACTIONS(14103), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146877] = 2,
    ACTIONS(14097), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146885] = 2,
    ACTIONS(14105), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146893] = 2,
    ACTIONS(14107), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146901] = 2,
    ACTIONS(14109), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146909] = 2,
    ACTIONS(14111), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146917] = 2,
    ACTIONS(14113), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146925] = 2,
    ACTIONS(14115), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146933] = 2,
    ACTIONS(14117), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146941] = 2,
    ACTIONS(7567), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146949] = 2,
    ACTIONS(9645), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146957] = 2,
    ACTIONS(14119), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146965] = 2,
    ACTIONS(14121), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146973] = 2,
    ACTIONS(14123), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146981] = 2,
    ACTIONS(14125), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146989] = 2,
    ACTIONS(14127), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [146997] = 2,
    ACTIONS(14129), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147005] = 2,
    ACTIONS(14131), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147013] = 2,
    ACTIONS(14133), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147021] = 2,
    ACTIONS(14135), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147029] = 2,
    ACTIONS(14135), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147037] = 2,
    ACTIONS(14137), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147045] = 2,
    ACTIONS(7638), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147053] = 2,
    ACTIONS(14139), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147061] = 2,
    ACTIONS(3527), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147069] = 2,
    ACTIONS(14141), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147077] = 2,
    ACTIONS(14143), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147085] = 2,
    ACTIONS(9116), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147093] = 2,
    ACTIONS(14145), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147101] = 2,
    ACTIONS(12453), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147109] = 2,
    ACTIONS(10766), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147117] = 2,
    ACTIONS(14147), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147125] = 2,
    ACTIONS(14149), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147133] = 2,
    ACTIONS(14151), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147141] = 2,
    ACTIONS(14153), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147149] = 2,
    ACTIONS(14155), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147157] = 2,
    ACTIONS(14157), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147165] = 2,
    ACTIONS(14159), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147173] = 2,
    ACTIONS(14161), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147181] = 2,
    ACTIONS(14163), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147189] = 2,
    ACTIONS(14165), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147197] = 2,
    ACTIONS(14167), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147205] = 2,
    ACTIONS(14169), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147213] = 2,
    ACTIONS(11265), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147221] = 2,
    ACTIONS(14171), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147229] = 2,
    ACTIONS(14173), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147237] = 2,
    ACTIONS(14175), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147245] = 2,
    ACTIONS(9057), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147253] = 2,
    ACTIONS(14177), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147261] = 2,
    ACTIONS(9043), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147269] = 2,
    ACTIONS(13051), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147277] = 2,
    ACTIONS(14179), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147285] = 2,
    ACTIONS(14181), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147293] = 2,
    ACTIONS(14183), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147301] = 2,
    ACTIONS(14185), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147309] = 2,
    ACTIONS(14187), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147317] = 2,
    ACTIONS(14189), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147325] = 2,
    ACTIONS(14191), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147333] = 2,
    ACTIONS(14193), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147341] = 2,
    ACTIONS(14195), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147349] = 2,
    ACTIONS(14197), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147357] = 2,
    ACTIONS(14199), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147365] = 2,
    ACTIONS(14201), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147373] = 2,
    ACTIONS(14203), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147381] = 2,
    ACTIONS(9607), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147389] = 2,
    ACTIONS(14205), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147397] = 2,
    ACTIONS(14207), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147405] = 2,
    ACTIONS(14209), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147413] = 2,
    ACTIONS(14211), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147421] = 2,
    ACTIONS(14213), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147429] = 2,
    ACTIONS(14215), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147437] = 2,
    ACTIONS(14217), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147445] = 2,
    ACTIONS(14219), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147453] = 2,
    ACTIONS(14221), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147461] = 2,
    ACTIONS(14223), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147469] = 2,
    ACTIONS(14225), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147477] = 2,
    ACTIONS(14227), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147485] = 2,
    ACTIONS(14229), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147493] = 2,
    ACTIONS(14231), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147501] = 2,
    ACTIONS(14233), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147509] = 2,
    ACTIONS(14235), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147517] = 2,
    ACTIONS(14237), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147525] = 2,
    ACTIONS(14239), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147533] = 2,
    ACTIONS(14241), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147541] = 2,
    ACTIONS(14243), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147549] = 2,
    ACTIONS(14245), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147557] = 2,
    ACTIONS(14247), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147565] = 2,
    ACTIONS(14239), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147573] = 2,
    ACTIONS(14249), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147581] = 2,
    ACTIONS(14251), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147589] = 2,
    ACTIONS(14253), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147597] = 2,
    ACTIONS(14255), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147605] = 2,
    ACTIONS(14257), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147613] = 2,
    ACTIONS(14259), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147621] = 2,
    ACTIONS(14261), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147629] = 2,
    ACTIONS(14263), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147637] = 2,
    ACTIONS(14265), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147645] = 2,
    ACTIONS(14267), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147653] = 2,
    ACTIONS(14269), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147661] = 2,
    ACTIONS(7575), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147669] = 2,
    ACTIONS(14271), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147677] = 2,
    ACTIONS(2778), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147685] = 2,
    ACTIONS(14273), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147693] = 2,
    ACTIONS(14275), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147701] = 2,
    ACTIONS(14277), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147709] = 2,
    ACTIONS(14279), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147717] = 2,
    ACTIONS(14281), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147725] = 2,
    ACTIONS(14283), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147733] = 2,
    ACTIONS(14285), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147741] = 2,
    ACTIONS(14287), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147749] = 2,
    ACTIONS(14289), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147757] = 2,
    ACTIONS(9112), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147765] = 2,
    ACTIONS(10601), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147773] = 2,
    ACTIONS(14291), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147781] = 2,
    ACTIONS(14293), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147789] = 2,
    ACTIONS(14295), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147797] = 2,
    ACTIONS(7642), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147805] = 2,
    ACTIONS(14297), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147813] = 2,
    ACTIONS(14299), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147821] = 2,
    ACTIONS(14301), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147829] = 2,
    ACTIONS(14303), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147837] = 2,
    ACTIONS(14305), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147845] = 2,
    ACTIONS(9799), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147853] = 2,
    ACTIONS(14307), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147861] = 2,
    ACTIONS(14309), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147869] = 2,
    ACTIONS(14311), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147877] = 2,
    ACTIONS(14313), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147885] = 2,
    ACTIONS(14315), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147893] = 2,
    ACTIONS(14317), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147901] = 2,
    ACTIONS(14319), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147909] = 2,
    ACTIONS(14321), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147917] = 2,
    ACTIONS(14321), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147925] = 2,
    ACTIONS(14323), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147933] = 2,
    ACTIONS(14325), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147941] = 2,
    ACTIONS(14327), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147949] = 2,
    ACTIONS(14329), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147957] = 2,
    ACTIONS(14331), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147965] = 2,
    ACTIONS(14333), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147973] = 2,
    ACTIONS(14335), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147981] = 2,
    ACTIONS(14337), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147989] = 2,
    ACTIONS(14339), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [147997] = 2,
    ACTIONS(14341), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148005] = 2,
    ACTIONS(14343), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148013] = 2,
    ACTIONS(14345), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148021] = 2,
    ACTIONS(12471), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148029] = 2,
    ACTIONS(14347), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148037] = 2,
    ACTIONS(10698), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148045] = 2,
    ACTIONS(10949), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148053] = 2,
    ACTIONS(14349), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148061] = 2,
    ACTIONS(14351), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148069] = 2,
    ACTIONS(14353), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148077] = 2,
    ACTIONS(14355), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148085] = 2,
    ACTIONS(14357), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148093] = 2,
    ACTIONS(14359), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148101] = 2,
    ACTIONS(14361), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148109] = 2,
    ACTIONS(14363), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148117] = 2,
    ACTIONS(14365), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148125] = 2,
    ACTIONS(14367), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148133] = 2,
    ACTIONS(9078), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148141] = 2,
    ACTIONS(14369), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148149] = 2,
    ACTIONS(14371), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148157] = 2,
    ACTIONS(14373), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148165] = 2,
    ACTIONS(12699), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148173] = 2,
    ACTIONS(10260), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148181] = 2,
    ACTIONS(14375), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148189] = 2,
    ACTIONS(7628), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148197] = 2,
    ACTIONS(14377), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148205] = 2,
    ACTIONS(14379), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148213] = 2,
    ACTIONS(14381), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148221] = 2,
    ACTIONS(14383), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148229] = 2,
    ACTIONS(14385), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148237] = 2,
    ACTIONS(14387), 1,
      ts_builtin_sym_end,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148245] = 2,
    ACTIONS(14389), 1,
      sym__after_eof,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148253] = 2,
    ACTIONS(14391), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148261] = 2,
    ACTIONS(7599), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148269] = 2,
    ACTIONS(14393), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148277] = 2,
    ACTIONS(14395), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148285] = 2,
    ACTIONS(11253), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148293] = 2,
    ACTIONS(14397), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148301] = 2,
    ACTIONS(14399), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148309] = 2,
    ACTIONS(14401), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148317] = 2,
    ACTIONS(14403), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148325] = 2,
    ACTIONS(14405), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148333] = 2,
    ACTIONS(14407), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148341] = 2,
    ACTIONS(14409), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148349] = 2,
    ACTIONS(14409), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148357] = 2,
    ACTIONS(14411), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148365] = 2,
    ACTIONS(14413), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148373] = 2,
    ACTIONS(14415), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148381] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(14417), 1,
      aux_sym_raw_string_token1,
  [148391] = 2,
    ACTIONS(14419), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148399] = 2,
    ACTIONS(14421), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148407] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(14423), 1,
      aux_sym_raw_string_token3,
  [148417] = 2,
    ACTIONS(14425), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148425] = 3,
    ACTIONS(3), 1,
      sym_directive,
    ACTIONS(9531), 1,
      sym_comment,
    ACTIONS(14427), 1,
      aux_sym_hex_string_token1,
  [148435] = 2,
    ACTIONS(14429), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148443] = 2,
    ACTIONS(14431), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148451] = 2,
    ACTIONS(14433), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148459] = 2,
    ACTIONS(9067), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148467] = 2,
    ACTIONS(11946), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148475] = 2,
    ACTIONS(14435), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148483] = 2,
    ACTIONS(14437), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148491] = 2,
    ACTIONS(14439), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148499] = 2,
    ACTIONS(14441), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148507] = 2,
    ACTIONS(14443), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148515] = 2,
    ACTIONS(14445), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148523] = 2,
    ACTIONS(14447), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148531] = 2,
    ACTIONS(14449), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148539] = 2,
    ACTIONS(14451), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148547] = 2,
    ACTIONS(14453), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148555] = 2,
    ACTIONS(14455), 1,
      anon_sym_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148563] = 2,
    ACTIONS(14457), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148571] = 2,
    ACTIONS(14459), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148579] = 2,
    ACTIONS(14461), 1,
      sym_ref,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148587] = 2,
    ACTIONS(12527), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148595] = 2,
    ACTIONS(14463), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148603] = 2,
    ACTIONS(14465), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148611] = 2,
    ACTIONS(14467), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148619] = 2,
    ACTIONS(14469), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148627] = 2,
    ACTIONS(14471), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148635] = 2,
    ACTIONS(14473), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148643] = 2,
    ACTIONS(14475), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148651] = 2,
    ACTIONS(14477), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148659] = 2,
    ACTIONS(14479), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148667] = 2,
    ACTIONS(14481), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148675] = 2,
    ACTIONS(14483), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148683] = 2,
    ACTIONS(14485), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148691] = 2,
    ACTIONS(14487), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148699] = 2,
    ACTIONS(14489), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148707] = 2,
    ACTIONS(14491), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148715] = 2,
    ACTIONS(14493), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148723] = 2,
    ACTIONS(7622), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148731] = 2,
    ACTIONS(14495), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148739] = 2,
    ACTIONS(14497), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148747] = 2,
    ACTIONS(14499), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148755] = 2,
    ACTIONS(7595), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148763] = 2,
    ACTIONS(14501), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148771] = 2,
    ACTIONS(14503), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148779] = 2,
    ACTIONS(14505), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148787] = 2,
    ACTIONS(14507), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148795] = 2,
    ACTIONS(14509), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148803] = 2,
    ACTIONS(14337), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148811] = 2,
    ACTIONS(14511), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148819] = 2,
    ACTIONS(14513), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148827] = 2,
    ACTIONS(14515), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148835] = 2,
    ACTIONS(10648), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148843] = 2,
    ACTIONS(11842), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148851] = 2,
    ACTIONS(14517), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148859] = 2,
    ACTIONS(11830), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148867] = 2,
    ACTIONS(14519), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148875] = 2,
    ACTIONS(7640), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148883] = 2,
    ACTIONS(14521), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148891] = 2,
    ACTIONS(14523), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148899] = 2,
    ACTIONS(11821), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148907] = 2,
    ACTIONS(11809), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148915] = 2,
    ACTIONS(14525), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148923] = 2,
    ACTIONS(14527), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148931] = 2,
    ACTIONS(14529), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148939] = 2,
    ACTIONS(14531), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148947] = 2,
    ACTIONS(14533), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148955] = 2,
    ACTIONS(14535), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148963] = 2,
    ACTIONS(11271), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148971] = 2,
    ACTIONS(14537), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148979] = 2,
    ACTIONS(14539), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148987] = 2,
    ACTIONS(10831), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [148995] = 2,
    ACTIONS(14541), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149003] = 2,
    ACTIONS(11766), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149011] = 2,
    ACTIONS(9567), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149019] = 2,
    ACTIONS(14543), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149027] = 2,
    ACTIONS(14545), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149035] = 2,
    ACTIONS(14547), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149043] = 2,
    ACTIONS(14549), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149051] = 2,
    ACTIONS(14551), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149059] = 2,
    ACTIONS(14553), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149067] = 2,
    ACTIONS(14555), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149075] = 2,
    ACTIONS(14557), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149083] = 2,
    ACTIONS(7571), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149091] = 2,
    ACTIONS(14559), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149099] = 2,
    ACTIONS(14561), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149107] = 2,
    ACTIONS(14563), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149115] = 2,
    ACTIONS(14565), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149123] = 2,
    ACTIONS(14567), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149131] = 2,
    ACTIONS(14569), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149139] = 2,
    ACTIONS(7587), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149147] = 2,
    ACTIONS(14571), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149155] = 2,
    ACTIONS(9719), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149163] = 2,
    ACTIONS(14573), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149171] = 2,
    ACTIONS(14575), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149179] = 2,
    ACTIONS(14577), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149187] = 2,
    ACTIONS(14579), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149195] = 2,
    ACTIONS(14581), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149203] = 2,
    ACTIONS(14583), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149211] = 2,
    ACTIONS(14585), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149219] = 2,
    ACTIONS(14587), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149227] = 2,
    ACTIONS(14589), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149235] = 2,
    ACTIONS(14591), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149243] = 2,
    ACTIONS(14593), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149251] = 2,
    ACTIONS(14595), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149259] = 2,
    ACTIONS(14593), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149267] = 2,
    ACTIONS(14597), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149275] = 2,
    ACTIONS(8387), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149283] = 2,
    ACTIONS(14599), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149291] = 2,
    ACTIONS(14601), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149299] = 2,
    ACTIONS(14603), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149307] = 2,
    ACTIONS(14605), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149315] = 2,
    ACTIONS(14607), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149323] = 2,
    ACTIONS(14609), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149331] = 2,
    ACTIONS(14611), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149339] = 2,
    ACTIONS(14613), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149347] = 2,
    ACTIONS(14615), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149355] = 2,
    ACTIONS(14617), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149363] = 2,
    ACTIONS(10692), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149371] = 2,
    ACTIONS(14619), 1,
      sym_while,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149379] = 2,
    ACTIONS(7597), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149387] = 2,
    ACTIONS(14617), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149395] = 2,
    ACTIONS(14621), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149403] = 2,
    ACTIONS(14623), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149411] = 2,
    ACTIONS(14625), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149419] = 2,
    ACTIONS(14627), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149427] = 2,
    ACTIONS(14629), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149435] = 2,
    ACTIONS(14631), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149443] = 2,
    ACTIONS(14633), 1,
      sym_case,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149451] = 2,
    ACTIONS(11686), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149459] = 2,
    ACTIONS(14635), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149467] = 2,
    ACTIONS(14637), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149475] = 2,
    ACTIONS(14639), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149483] = 2,
    ACTIONS(14641), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149491] = 2,
    ACTIONS(14643), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149499] = 2,
    ACTIONS(14645), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149507] = 2,
    ACTIONS(14647), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149515] = 2,
    ACTIONS(14649), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149523] = 2,
    ACTIONS(11670), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149531] = 2,
    ACTIONS(7630), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149539] = 2,
    ACTIONS(14651), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149547] = 2,
    ACTIONS(14653), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149555] = 2,
    ACTIONS(14655), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149563] = 2,
    ACTIONS(14657), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149571] = 2,
    ACTIONS(14659), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149579] = 2,
    ACTIONS(14661), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149587] = 2,
    ACTIONS(14663), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149595] = 2,
    ACTIONS(14665), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149603] = 2,
    ACTIONS(2788), 1,
      anon_sym_RBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149611] = 2,
    ACTIONS(14667), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149619] = 2,
    ACTIONS(14669), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149627] = 2,
    ACTIONS(14671), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149635] = 2,
    ACTIONS(14673), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149643] = 2,
    ACTIONS(14675), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149651] = 2,
    ACTIONS(14677), 1,
      sym_while,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149659] = 2,
    ACTIONS(3177), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149667] = 2,
    ACTIONS(14679), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149675] = 2,
    ACTIONS(14681), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149683] = 2,
    ACTIONS(14683), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149691] = 2,
    ACTIONS(10851), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149699] = 2,
    ACTIONS(14685), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149707] = 2,
    ACTIONS(14687), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149715] = 2,
    ACTIONS(9583), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149723] = 2,
    ACTIONS(14689), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149731] = 2,
    ACTIONS(14691), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149739] = 2,
    ACTIONS(14693), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149747] = 2,
    ACTIONS(14695), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149755] = 2,
    ACTIONS(14697), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149763] = 2,
    ACTIONS(14699), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149771] = 2,
    ACTIONS(14701), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149779] = 2,
    ACTIONS(14703), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149787] = 2,
    ACTIONS(14705), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149795] = 2,
    ACTIONS(14707), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149803] = 2,
    ACTIONS(14709), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149811] = 2,
    ACTIONS(14711), 1,
      sym_while,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149819] = 2,
    ACTIONS(14713), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149827] = 2,
    ACTIONS(14715), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149835] = 2,
    ACTIONS(14717), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149843] = 2,
    ACTIONS(14719), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149851] = 2,
    ACTIONS(14721), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149859] = 2,
    ACTIONS(14723), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149867] = 2,
    ACTIONS(14725), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149875] = 2,
    ACTIONS(14727), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149883] = 2,
    ACTIONS(10670), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149891] = 2,
    ACTIONS(14729), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149899] = 2,
    ACTIONS(14731), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149907] = 2,
    ACTIONS(14733), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149915] = 2,
    ACTIONS(14735), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149923] = 2,
    ACTIONS(14737), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149931] = 2,
    ACTIONS(14739), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149939] = 2,
    ACTIONS(14741), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149947] = 2,
    ACTIONS(14743), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149955] = 2,
    ACTIONS(14745), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149963] = 2,
    ACTIONS(12895), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149971] = 2,
    ACTIONS(9805), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149979] = 2,
    ACTIONS(14747), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149987] = 2,
    ACTIONS(14749), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [149995] = 2,
    ACTIONS(14751), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150003] = 2,
    ACTIONS(14753), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150011] = 2,
    ACTIONS(14755), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150019] = 2,
    ACTIONS(14757), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150027] = 2,
    ACTIONS(14759), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150035] = 2,
    ACTIONS(14761), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150043] = 2,
    ACTIONS(14763), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150051] = 2,
    ACTIONS(14765), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150059] = 2,
    ACTIONS(10881), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150067] = 2,
    ACTIONS(14767), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150075] = 2,
    ACTIONS(10652), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150083] = 2,
    ACTIONS(14769), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150091] = 2,
    ACTIONS(14771), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150099] = 2,
    ACTIONS(14773), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150107] = 2,
    ACTIONS(14775), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150115] = 2,
    ACTIONS(14777), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150123] = 2,
    ACTIONS(14779), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150131] = 2,
    ACTIONS(7636), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150139] = 2,
    ACTIONS(14781), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150147] = 2,
    ACTIONS(14783), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150155] = 2,
    ACTIONS(14785), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150163] = 2,
    ACTIONS(14787), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150171] = 2,
    ACTIONS(9651), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150179] = 2,
    ACTIONS(14789), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150187] = 2,
    ACTIONS(14791), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150195] = 2,
    ACTIONS(14793), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150203] = 2,
    ACTIONS(14795), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150211] = 2,
    ACTIONS(14797), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150219] = 2,
    ACTIONS(14799), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150227] = 2,
    ACTIONS(14801), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150235] = 2,
    ACTIONS(14803), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150243] = 2,
    ACTIONS(12977), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150251] = 2,
    ACTIONS(14805), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150259] = 2,
    ACTIONS(7585), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150267] = 2,
    ACTIONS(14807), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150275] = 2,
    ACTIONS(14809), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150283] = 2,
    ACTIONS(14811), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150291] = 2,
    ACTIONS(14813), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150299] = 2,
    ACTIONS(14815), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150307] = 2,
    ACTIONS(14817), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150315] = 2,
    ACTIONS(14819), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150323] = 2,
    ACTIONS(14821), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150331] = 2,
    ACTIONS(14823), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150339] = 2,
    ACTIONS(14825), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150347] = 2,
    ACTIONS(14827), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150355] = 2,
    ACTIONS(14829), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150363] = 2,
    ACTIONS(14831), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150371] = 2,
    ACTIONS(10885), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150379] = 2,
    ACTIONS(14833), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150387] = 2,
    ACTIONS(9825), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150395] = 2,
    ACTIONS(14835), 1,
      anon_sym_RBRACK,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150403] = 2,
    ACTIONS(14837), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150411] = 2,
    ACTIONS(14839), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150419] = 2,
    ACTIONS(11364), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150427] = 2,
    ACTIONS(14841), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150435] = 2,
    ACTIONS(14843), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150443] = 2,
    ACTIONS(10871), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150451] = 2,
    ACTIONS(14845), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150459] = 2,
    ACTIONS(14847), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150467] = 2,
    ACTIONS(14849), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150475] = 2,
    ACTIONS(14851), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150483] = 2,
    ACTIONS(14853), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150491] = 2,
    ACTIONS(14855), 1,
      anon_sym_DOT_DOT,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150499] = 2,
    ACTIONS(14857), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150507] = 2,
    ACTIONS(14859), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150515] = 2,
    ACTIONS(14861), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150523] = 2,
    ACTIONS(14863), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150531] = 2,
    ACTIONS(14865), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150539] = 2,
    ACTIONS(14867), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150547] = 2,
    ACTIONS(7646), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150555] = 2,
    ACTIONS(14869), 1,
      anon_sym_DASH,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150563] = 2,
    ACTIONS(9715), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150571] = 2,
    ACTIONS(14871), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150579] = 2,
    ACTIONS(14873), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150587] = 2,
    ACTIONS(14875), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150595] = 2,
    ACTIONS(14877), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150603] = 2,
    ACTIONS(14879), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150611] = 2,
    ACTIONS(14881), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150619] = 2,
    ACTIONS(7624), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150627] = 2,
    ACTIONS(14883), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150635] = 2,
    ACTIONS(14885), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150643] = 2,
    ACTIONS(11255), 1,
      anon_sym_EQ,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150651] = 2,
    ACTIONS(14887), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150659] = 2,
    ACTIONS(14889), 1,
      sym__after_eof,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150667] = 2,
    ACTIONS(14891), 1,
      anon_sym_SQUOTE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150675] = 2,
    ACTIONS(14893), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150683] = 2,
    ACTIONS(14895), 1,
      aux_sym_raw_string_token4,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150691] = 2,
    ACTIONS(14895), 1,
      aux_sym_raw_string_token2,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150699] = 2,
    ACTIONS(14897), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150707] = 2,
    ACTIONS(14899), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150715] = 2,
    ACTIONS(13037), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150723] = 2,
    ACTIONS(14901), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150731] = 2,
    ACTIONS(14903), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150739] = 2,
    ACTIONS(14905), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150747] = 2,
    ACTIONS(14907), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150755] = 2,
    ACTIONS(14909), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150763] = 2,
    ACTIONS(14911), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150771] = 2,
    ACTIONS(14913), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150779] = 2,
    ACTIONS(14915), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150787] = 2,
    ACTIONS(14917), 1,
      sym_this,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150795] = 2,
    ACTIONS(14919), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150803] = 2,
    ACTIONS(14921), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150811] = 2,
    ACTIONS(14923), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150819] = 2,
    ACTIONS(10720), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150827] = 2,
    ACTIONS(14925), 1,
      anon_sym_LBRACE,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150835] = 2,
    ACTIONS(14927), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150843] = 2,
    ACTIONS(14929), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150851] = 2,
    ACTIONS(14931), 1,
      anon_sym_COLON,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150859] = 2,
    ACTIONS(14933), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150867] = 2,
    ACTIONS(14935), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150875] = 2,
    ACTIONS(14937), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150883] = 2,
    ACTIONS(14939), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150891] = 2,
    ACTIONS(14941), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150899] = 2,
    ACTIONS(14943), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150907] = 2,
    ACTIONS(14945), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150915] = 2,
    ACTIONS(14947), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150923] = 2,
    ACTIONS(14949), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150931] = 2,
    ACTIONS(14951), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150939] = 2,
    ACTIONS(14953), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150947] = 2,
    ACTIONS(14955), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150955] = 2,
    ACTIONS(14957), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150963] = 2,
    ACTIONS(14959), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150971] = 2,
    ACTIONS(14961), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150979] = 2,
    ACTIONS(14963), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150987] = 2,
    ACTIONS(14965), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [150995] = 2,
    ACTIONS(14967), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [151003] = 2,
    ACTIONS(14969), 1,
      anon_sym_LPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [151011] = 2,
    ACTIONS(14971), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [151019] = 2,
    ACTIONS(14973), 1,
      sym_identifier,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [151027] = 2,
    ACTIONS(14975), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [151035] = 2,
    ACTIONS(11226), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [151043] = 2,
    ACTIONS(9649), 1,
      anon_sym_SEMI,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
  [151051] = 2,
    ACTIONS(14977), 1,
      anon_sym_RPAREN,
    ACTIONS(3), 2,
      sym_directive,
      sym_comment,
};

static const uint32_t ts_small_parse_table_map[] = {
  [SMALL_STATE(3241)] = 0,
  [SMALL_STATE(3242)] = 71,
  [SMALL_STATE(3243)] = 142,
  [SMALL_STATE(3244)] = 213,
  [SMALL_STATE(3245)] = 284,
  [SMALL_STATE(3246)] = 355,
  [SMALL_STATE(3247)] = 426,
  [SMALL_STATE(3248)] = 497,
  [SMALL_STATE(3249)] = 568,
  [SMALL_STATE(3250)] = 647,
  [SMALL_STATE(3251)] = 718,
  [SMALL_STATE(3252)] = 789,
  [SMALL_STATE(3253)] = 860,
  [SMALL_STATE(3254)] = 931,
  [SMALL_STATE(3255)] = 1002,
  [SMALL_STATE(3256)] = 1073,
  [SMALL_STATE(3257)] = 1144,
  [SMALL_STATE(3258)] = 1215,
  [SMALL_STATE(3259)] = 1286,
  [SMALL_STATE(3260)] = 1357,
  [SMALL_STATE(3261)] = 1428,
  [SMALL_STATE(3262)] = 1499,
  [SMALL_STATE(3263)] = 1570,
  [SMALL_STATE(3264)] = 1641,
  [SMALL_STATE(3265)] = 1712,
  [SMALL_STATE(3266)] = 1783,
  [SMALL_STATE(3267)] = 1854,
  [SMALL_STATE(3268)] = 1925,
  [SMALL_STATE(3269)] = 1996,
  [SMALL_STATE(3270)] = 2067,
  [SMALL_STATE(3271)] = 2138,
  [SMALL_STATE(3272)] = 2209,
  [SMALL_STATE(3273)] = 2280,
  [SMALL_STATE(3274)] = 2384,
  [SMALL_STATE(3275)] = 2488,
  [SMALL_STATE(3276)] = 2592,
  [SMALL_STATE(3277)] = 2696,
  [SMALL_STATE(3278)] = 2770,
  [SMALL_STATE(3279)] = 2874,
  [SMALL_STATE(3280)] = 2978,
  [SMALL_STATE(3281)] = 3082,
  [SMALL_STATE(3282)] = 3186,
  [SMALL_STATE(3283)] = 3290,
  [SMALL_STATE(3284)] = 3394,
  [SMALL_STATE(3285)] = 3498,
  [SMALL_STATE(3286)] = 3602,
  [SMALL_STATE(3287)] = 3706,
  [SMALL_STATE(3288)] = 3810,
  [SMALL_STATE(3289)] = 3914,
  [SMALL_STATE(3290)] = 4018,
  [SMALL_STATE(3291)] = 4122,
  [SMALL_STATE(3292)] = 4226,
  [SMALL_STATE(3293)] = 4330,
  [SMALL_STATE(3294)] = 4434,
  [SMALL_STATE(3295)] = 4538,
  [SMALL_STATE(3296)] = 4642,
  [SMALL_STATE(3297)] = 4746,
  [SMALL_STATE(3298)] = 4850,
  [SMALL_STATE(3299)] = 4954,
  [SMALL_STATE(3300)] = 5058,
  [SMALL_STATE(3301)] = 5162,
  [SMALL_STATE(3302)] = 5266,
  [SMALL_STATE(3303)] = 5370,
  [SMALL_STATE(3304)] = 5474,
  [SMALL_STATE(3305)] = 5543,
  [SMALL_STATE(3306)] = 5612,
  [SMALL_STATE(3307)] = 5713,
  [SMALL_STATE(3308)] = 5814,
  [SMALL_STATE(3309)] = 5883,
  [SMALL_STATE(3310)] = 5984,
  [SMALL_STATE(3311)] = 6053,
  [SMALL_STATE(3312)] = 6122,
  [SMALL_STATE(3313)] = 6191,
  [SMALL_STATE(3314)] = 6292,
  [SMALL_STATE(3315)] = 6393,
  [SMALL_STATE(3316)] = 6468,
  [SMALL_STATE(3317)] = 6543,
  [SMALL_STATE(3318)] = 6644,
  [SMALL_STATE(3319)] = 6719,
  [SMALL_STATE(3320)] = 6820,
  [SMALL_STATE(3321)] = 6889,
  [SMALL_STATE(3322)] = 6958,
  [SMALL_STATE(3323)] = 7059,
  [SMALL_STATE(3324)] = 7128,
  [SMALL_STATE(3325)] = 7197,
  [SMALL_STATE(3326)] = 7298,
  [SMALL_STATE(3327)] = 7367,
  [SMALL_STATE(3328)] = 7436,
  [SMALL_STATE(3329)] = 7505,
  [SMALL_STATE(3330)] = 7606,
  [SMALL_STATE(3331)] = 7675,
  [SMALL_STATE(3332)] = 7744,
  [SMALL_STATE(3333)] = 7845,
  [SMALL_STATE(3334)] = 7946,
  [SMALL_STATE(3335)] = 8015,
  [SMALL_STATE(3336)] = 8084,
  [SMALL_STATE(3337)] = 8185,
  [SMALL_STATE(3338)] = 8254,
  [SMALL_STATE(3339)] = 8323,
  [SMALL_STATE(3340)] = 8392,
  [SMALL_STATE(3341)] = 8493,
  [SMALL_STATE(3342)] = 8562,
  [SMALL_STATE(3343)] = 8631,
  [SMALL_STATE(3344)] = 8700,
  [SMALL_STATE(3345)] = 8801,
  [SMALL_STATE(3346)] = 8902,
  [SMALL_STATE(3347)] = 8971,
  [SMALL_STATE(3348)] = 9072,
  [SMALL_STATE(3349)] = 9173,
  [SMALL_STATE(3350)] = 9274,
  [SMALL_STATE(3351)] = 9343,
  [SMALL_STATE(3352)] = 9412,
  [SMALL_STATE(3353)] = 9513,
  [SMALL_STATE(3354)] = 9582,
  [SMALL_STATE(3355)] = 9683,
  [SMALL_STATE(3356)] = 9752,
  [SMALL_STATE(3357)] = 9825,
  [SMALL_STATE(3358)] = 9926,
  [SMALL_STATE(3359)] = 9995,
  [SMALL_STATE(3360)] = 10096,
  [SMALL_STATE(3361)] = 10197,
  [SMALL_STATE(3362)] = 10298,
  [SMALL_STATE(3363)] = 10367,
  [SMALL_STATE(3364)] = 10436,
  [SMALL_STATE(3365)] = 10504,
  [SMALL_STATE(3366)] = 10578,
  [SMALL_STATE(3367)] = 10646,
  [SMALL_STATE(3368)] = 10714,
  [SMALL_STATE(3369)] = 10782,
  [SMALL_STATE(3370)] = 10850,
  [SMALL_STATE(3371)] = 10918,
  [SMALL_STATE(3372)] = 10986,
  [SMALL_STATE(3373)] = 11054,
  [SMALL_STATE(3374)] = 11122,
  [SMALL_STATE(3375)] = 11190,
  [SMALL_STATE(3376)] = 11258,
  [SMALL_STATE(3377)] = 11326,
  [SMALL_STATE(3378)] = 11394,
  [SMALL_STATE(3379)] = 11462,
  [SMALL_STATE(3380)] = 11530,
  [SMALL_STATE(3381)] = 11598,
  [SMALL_STATE(3382)] = 11666,
  [SMALL_STATE(3383)] = 11734,
  [SMALL_STATE(3384)] = 11802,
  [SMALL_STATE(3385)] = 11870,
  [SMALL_STATE(3386)] = 11946,
  [SMALL_STATE(3387)] = 12014,
  [SMALL_STATE(3388)] = 12082,
  [SMALL_STATE(3389)] = 12150,
  [SMALL_STATE(3390)] = 12218,
  [SMALL_STATE(3391)] = 12286,
  [SMALL_STATE(3392)] = 12354,
  [SMALL_STATE(3393)] = 12422,
  [SMALL_STATE(3394)] = 12490,
  [SMALL_STATE(3395)] = 12558,
  [SMALL_STATE(3396)] = 12626,
  [SMALL_STATE(3397)] = 12694,
  [SMALL_STATE(3398)] = 12791,
  [SMALL_STATE(3399)] = 12888,
  [SMALL_STATE(3400)] = 12985,
  [SMALL_STATE(3401)] = 13082,
  [SMALL_STATE(3402)] = 13179,
  [SMALL_STATE(3403)] = 13276,
  [SMALL_STATE(3404)] = 13373,
  [SMALL_STATE(3405)] = 13470,
  [SMALL_STATE(3406)] = 13567,
  [SMALL_STATE(3407)] = 13664,
  [SMALL_STATE(3408)] = 13761,
  [SMALL_STATE(3409)] = 13858,
  [SMALL_STATE(3410)] = 13931,
  [SMALL_STATE(3411)] = 14028,
  [SMALL_STATE(3412)] = 14125,
  [SMALL_STATE(3413)] = 14222,
  [SMALL_STATE(3414)] = 14319,
  [SMALL_STATE(3415)] = 14416,
  [SMALL_STATE(3416)] = 14513,
  [SMALL_STATE(3417)] = 14610,
  [SMALL_STATE(3418)] = 14683,
  [SMALL_STATE(3419)] = 14780,
  [SMALL_STATE(3420)] = 14877,
  [SMALL_STATE(3421)] = 14950,
  [SMALL_STATE(3422)] = 15047,
  [SMALL_STATE(3423)] = 15144,
  [SMALL_STATE(3424)] = 15217,
  [SMALL_STATE(3425)] = 15314,
  [SMALL_STATE(3426)] = 15411,
  [SMALL_STATE(3427)] = 15480,
  [SMALL_STATE(3428)] = 15577,
  [SMALL_STATE(3429)] = 15674,
  [SMALL_STATE(3430)] = 15771,
  [SMALL_STATE(3431)] = 15868,
  [SMALL_STATE(3432)] = 15965,
  [SMALL_STATE(3433)] = 16062,
  [SMALL_STATE(3434)] = 16159,
  [SMALL_STATE(3435)] = 16256,
  [SMALL_STATE(3436)] = 16353,
  [SMALL_STATE(3437)] = 16419,
  [SMALL_STATE(3438)] = 16485,
  [SMALL_STATE(3439)] = 16551,
  [SMALL_STATE(3440)] = 16617,
  [SMALL_STATE(3441)] = 16683,
  [SMALL_STATE(3442)] = 16749,
  [SMALL_STATE(3443)] = 16821,
  [SMALL_STATE(3444)] = 16887,
  [SMALL_STATE(3445)] = 16953,
  [SMALL_STATE(3446)] = 17025,
  [SMALL_STATE(3447)] = 17097,
  [SMALL_STATE(3448)] = 17163,
  [SMALL_STATE(3449)] = 17229,
  [SMALL_STATE(3450)] = 17295,
  [SMALL_STATE(3451)] = 17361,
  [SMALL_STATE(3452)] = 17431,
  [SMALL_STATE(3453)] = 17497,
  [SMALL_STATE(3454)] = 17563,
  [SMALL_STATE(3455)] = 17637,
  [SMALL_STATE(3456)] = 17703,
  [SMALL_STATE(3457)] = 17769,
  [SMALL_STATE(3458)] = 17835,
  [SMALL_STATE(3459)] = 17935,
  [SMALL_STATE(3460)] = 18019,
  [SMALL_STATE(3461)] = 18113,
  [SMALL_STATE(3462)] = 18179,
  [SMALL_STATE(3463)] = 18245,
  [SMALL_STATE(3464)] = 18311,
  [SMALL_STATE(3465)] = 18376,
  [SMALL_STATE(3466)] = 18473,
  [SMALL_STATE(3467)] = 18560,
  [SMALL_STATE(3468)] = 18657,
  [SMALL_STATE(3469)] = 18722,
  [SMALL_STATE(3470)] = 18819,
  [SMALL_STATE(3471)] = 18916,
  [SMALL_STATE(3472)] = 18981,
  [SMALL_STATE(3473)] = 19062,
  [SMALL_STATE(3474)] = 19159,
  [SMALL_STATE(3475)] = 19232,
  [SMALL_STATE(3476)] = 19329,
  [SMALL_STATE(3477)] = 19426,
  [SMALL_STATE(3478)] = 19491,
  [SMALL_STATE(3479)] = 19556,
  [SMALL_STATE(3480)] = 19653,
  [SMALL_STATE(3481)] = 19718,
  [SMALL_STATE(3482)] = 19815,
  [SMALL_STATE(3483)] = 19880,
  [SMALL_STATE(3484)] = 19977,
  [SMALL_STATE(3485)] = 20042,
  [SMALL_STATE(3486)] = 20107,
  [SMALL_STATE(3487)] = 20204,
  [SMALL_STATE(3488)] = 20269,
  [SMALL_STATE(3489)] = 20355,
  [SMALL_STATE(3490)] = 20423,
  [SMALL_STATE(3491)] = 20497,
  [SMALL_STATE(3492)] = 20571,
  [SMALL_STATE(3493)] = 20657,
  [SMALL_STATE(3494)] = 20731,
  [SMALL_STATE(3495)] = 20805,
  [SMALL_STATE(3496)] = 20899,
  [SMALL_STATE(3497)] = 20985,
  [SMALL_STATE(3498)] = 21059,
  [SMALL_STATE(3499)] = 21123,
  [SMALL_STATE(3500)] = 21195,
  [SMALL_STATE(3501)] = 21281,
  [SMALL_STATE(3502)] = 21345,
  [SMALL_STATE(3503)] = 21431,
  [SMALL_STATE(3504)] = 21517,
  [SMALL_STATE(3505)] = 21581,
  [SMALL_STATE(3506)] = 21644,
  [SMALL_STATE(3507)] = 21707,
  [SMALL_STATE(3508)] = 21770,
  [SMALL_STATE(3509)] = 21833,
  [SMALL_STATE(3510)] = 21916,
  [SMALL_STATE(3511)] = 21979,
  [SMALL_STATE(3512)] = 22042,
  [SMALL_STATE(3513)] = 22105,
  [SMALL_STATE(3514)] = 22168,
  [SMALL_STATE(3515)] = 22231,
  [SMALL_STATE(3516)] = 22304,
  [SMALL_STATE(3517)] = 22367,
  [SMALL_STATE(3518)] = 22430,
  [SMALL_STATE(3519)] = 22493,
  [SMALL_STATE(3520)] = 22556,
  [SMALL_STATE(3521)] = 22619,
  [SMALL_STATE(3522)] = 22700,
  [SMALL_STATE(3523)] = 22763,
  [SMALL_STATE(3524)] = 22826,
  [SMALL_STATE(3525)] = 22917,
  [SMALL_STATE(3526)] = 22984,
  [SMALL_STATE(3527)] = 23047,
  [SMALL_STATE(3528)] = 23110,
  [SMALL_STATE(3529)] = 23173,
  [SMALL_STATE(3530)] = 23236,
  [SMALL_STATE(3531)] = 23299,
  [SMALL_STATE(3532)] = 23380,
  [SMALL_STATE(3533)] = 23443,
  [SMALL_STATE(3534)] = 23506,
  [SMALL_STATE(3535)] = 23569,
  [SMALL_STATE(3536)] = 23632,
  [SMALL_STATE(3537)] = 23695,
  [SMALL_STATE(3538)] = 23758,
  [SMALL_STATE(3539)] = 23821,
  [SMALL_STATE(3540)] = 23894,
  [SMALL_STATE(3541)] = 23957,
  [SMALL_STATE(3542)] = 24020,
  [SMALL_STATE(3543)] = 24083,
  [SMALL_STATE(3544)] = 24146,
  [SMALL_STATE(3545)] = 24209,
  [SMALL_STATE(3546)] = 24272,
  [SMALL_STATE(3547)] = 24335,
  [SMALL_STATE(3548)] = 24398,
  [SMALL_STATE(3549)] = 24461,
  [SMALL_STATE(3550)] = 24542,
  [SMALL_STATE(3551)] = 24605,
  [SMALL_STATE(3552)] = 24668,
  [SMALL_STATE(3553)] = 24731,
  [SMALL_STATE(3554)] = 24794,
  [SMALL_STATE(3555)] = 24885,
  [SMALL_STATE(3556)] = 24948,
  [SMALL_STATE(3557)] = 25031,
  [SMALL_STATE(3558)] = 25126,
  [SMALL_STATE(3559)] = 25221,
  [SMALL_STATE(3560)] = 25312,
  [SMALL_STATE(3561)] = 25375,
  [SMALL_STATE(3562)] = 25438,
  [SMALL_STATE(3563)] = 25533,
  [SMALL_STATE(3564)] = 25596,
  [SMALL_STATE(3565)] = 25659,
  [SMALL_STATE(3566)] = 25722,
  [SMALL_STATE(3567)] = 25785,
  [SMALL_STATE(3568)] = 25848,
  [SMALL_STATE(3569)] = 25911,
  [SMALL_STATE(3570)] = 25974,
  [SMALL_STATE(3571)] = 26069,
  [SMALL_STATE(3572)] = 26164,
  [SMALL_STATE(3573)] = 26227,
  [SMALL_STATE(3574)] = 26298,
  [SMALL_STATE(3575)] = 26361,
  [SMALL_STATE(3576)] = 26456,
  [SMALL_STATE(3577)] = 26519,
  [SMALL_STATE(3578)] = 26592,
  [SMALL_STATE(3579)] = 26665,
  [SMALL_STATE(3580)] = 26727,
  [SMALL_STATE(3581)] = 26789,
  [SMALL_STATE(3582)] = 26867,
  [SMALL_STATE(3583)] = 26929,
  [SMALL_STATE(3584)] = 27017,
  [SMALL_STATE(3585)] = 27079,
  [SMALL_STATE(3586)] = 27141,
  [SMALL_STATE(3587)] = 27203,
  [SMALL_STATE(3588)] = 27269,
  [SMALL_STATE(3589)] = 27337,
  [SMALL_STATE(3590)] = 27405,
  [SMALL_STATE(3591)] = 27467,
  [SMALL_STATE(3592)] = 27529,
  [SMALL_STATE(3593)] = 27597,
  [SMALL_STATE(3594)] = 27659,
  [SMALL_STATE(3595)] = 27721,
  [SMALL_STATE(3596)] = 27793,
  [SMALL_STATE(3597)] = 27855,
  [SMALL_STATE(3598)] = 27943,
  [SMALL_STATE(3599)] = 28015,
  [SMALL_STATE(3600)] = 28077,
  [SMALL_STATE(3601)] = 28139,
  [SMALL_STATE(3602)] = 28201,
  [SMALL_STATE(3603)] = 28267,
  [SMALL_STATE(3604)] = 28329,
  [SMALL_STATE(3605)] = 28401,
  [SMALL_STATE(3606)] = 28465,
  [SMALL_STATE(3607)] = 28537,
  [SMALL_STATE(3608)] = 28619,
  [SMALL_STATE(3609)] = 28681,
  [SMALL_STATE(3610)] = 28753,
  [SMALL_STATE(3611)] = 28817,
  [SMALL_STATE(3612)] = 28887,
  [SMALL_STATE(3613)] = 28967,
  [SMALL_STATE(3614)] = 29049,
  [SMALL_STATE(3615)] = 29137,
  [SMALL_STATE(3616)] = 29201,
  [SMALL_STATE(3617)] = 29263,
  [SMALL_STATE(3618)] = 29325,
  [SMALL_STATE(3619)] = 29387,
  [SMALL_STATE(3620)] = 29449,
  [SMALL_STATE(3621)] = 29531,
  [SMALL_STATE(3622)] = 29602,
  [SMALL_STATE(3623)] = 29687,
  [SMALL_STATE(3624)] = 29772,
  [SMALL_STATE(3625)] = 29857,
  [SMALL_STATE(3626)] = 29942,
  [SMALL_STATE(3627)] = 30027,
  [SMALL_STATE(3628)] = 30112,
  [SMALL_STATE(3629)] = 30197,
  [SMALL_STATE(3630)] = 30268,
  [SMALL_STATE(3631)] = 30353,
  [SMALL_STATE(3632)] = 30438,
  [SMALL_STATE(3633)] = 30501,
  [SMALL_STATE(3634)] = 30586,
  [SMALL_STATE(3635)] = 30671,
  [SMALL_STATE(3636)] = 30746,
  [SMALL_STATE(3637)] = 30831,
  [SMALL_STATE(3638)] = 30916,
  [SMALL_STATE(3639)] = 31001,
  [SMALL_STATE(3640)] = 31086,
  [SMALL_STATE(3641)] = 31155,
  [SMALL_STATE(3642)] = 31240,
  [SMALL_STATE(3643)] = 31311,
  [SMALL_STATE(3644)] = 31396,
  [SMALL_STATE(3645)] = 31481,
  [SMALL_STATE(3646)] = 31566,
  [SMALL_STATE(3647)] = 31651,
  [SMALL_STATE(3648)] = 31736,
  [SMALL_STATE(3649)] = 31799,
  [SMALL_STATE(3650)] = 31884,
  [SMALL_STATE(3651)] = 31969,
  [SMALL_STATE(3652)] = 32032,
  [SMALL_STATE(3653)] = 32117,
  [SMALL_STATE(3654)] = 32188,
  [SMALL_STATE(3655)] = 32273,
  [SMALL_STATE(3656)] = 32358,
  [SMALL_STATE(3657)] = 32443,
  [SMALL_STATE(3658)] = 32528,
  [SMALL_STATE(3659)] = 32613,
  [SMALL_STATE(3660)] = 32698,
  [SMALL_STATE(3661)] = 32783,
  [SMALL_STATE(3662)] = 32868,
  [SMALL_STATE(3663)] = 32953,
  [SMALL_STATE(3664)] = 33038,
  [SMALL_STATE(3665)] = 33123,
  [SMALL_STATE(3666)] = 33208,
  [SMALL_STATE(3667)] = 33279,
  [SMALL_STATE(3668)] = 33350,
  [SMALL_STATE(3669)] = 33435,
  [SMALL_STATE(3670)] = 33510,
  [SMALL_STATE(3671)] = 33595,
  [SMALL_STATE(3672)] = 33680,
  [SMALL_STATE(3673)] = 33765,
  [SMALL_STATE(3674)] = 33850,
  [SMALL_STATE(3675)] = 33935,
  [SMALL_STATE(3676)] = 34020,
  [SMALL_STATE(3677)] = 34091,
  [SMALL_STATE(3678)] = 34176,
  [SMALL_STATE(3679)] = 34261,
  [SMALL_STATE(3680)] = 34346,
  [SMALL_STATE(3681)] = 34409,
  [SMALL_STATE(3682)] = 34494,
  [SMALL_STATE(3683)] = 34579,
  [SMALL_STATE(3684)] = 34664,
  [SMALL_STATE(3685)] = 34749,
  [SMALL_STATE(3686)] = 34834,
  [SMALL_STATE(3687)] = 34919,
  [SMALL_STATE(3688)] = 34990,
  [SMALL_STATE(3689)] = 35075,
  [SMALL_STATE(3690)] = 35160,
  [SMALL_STATE(3691)] = 35231,
  [SMALL_STATE(3692)] = 35316,
  [SMALL_STATE(3693)] = 35401,
  [SMALL_STATE(3694)] = 35486,
  [SMALL_STATE(3695)] = 35571,
  [SMALL_STATE(3696)] = 35656,
  [SMALL_STATE(3697)] = 35741,
  [SMALL_STATE(3698)] = 35812,
  [SMALL_STATE(3699)] = 35877,
  [SMALL_STATE(3700)] = 35962,
  [SMALL_STATE(3701)] = 36047,
  [SMALL_STATE(3702)] = 36132,
  [SMALL_STATE(3703)] = 36203,
  [SMALL_STATE(3704)] = 36288,
  [SMALL_STATE(3705)] = 36373,
  [SMALL_STATE(3706)] = 36458,
  [SMALL_STATE(3707)] = 36543,
  [SMALL_STATE(3708)] = 36628,
  [SMALL_STATE(3709)] = 36707,
  [SMALL_STATE(3710)] = 36792,
  [SMALL_STATE(3711)] = 36867,
  [SMALL_STATE(3712)] = 36952,
  [SMALL_STATE(3713)] = 37027,
  [SMALL_STATE(3714)] = 37112,
  [SMALL_STATE(3715)] = 37197,
  [SMALL_STATE(3716)] = 37282,
  [SMALL_STATE(3717)] = 37367,
  [SMALL_STATE(3718)] = 37452,
  [SMALL_STATE(3719)] = 37537,
  [SMALL_STATE(3720)] = 37622,
  [SMALL_STATE(3721)] = 37707,
  [SMALL_STATE(3722)] = 37792,
  [SMALL_STATE(3723)] = 37877,
  [SMALL_STATE(3724)] = 37962,
  [SMALL_STATE(3725)] = 38047,
  [SMALL_STATE(3726)] = 38122,
  [SMALL_STATE(3727)] = 38207,
  [SMALL_STATE(3728)] = 38292,
  [SMALL_STATE(3729)] = 38363,
  [SMALL_STATE(3730)] = 38448,
  [SMALL_STATE(3731)] = 38533,
  [SMALL_STATE(3732)] = 38618,
  [SMALL_STATE(3733)] = 38703,
  [SMALL_STATE(3734)] = 38788,
  [SMALL_STATE(3735)] = 38873,
  [SMALL_STATE(3736)] = 38958,
  [SMALL_STATE(3737)] = 39043,
  [SMALL_STATE(3738)] = 39128,
  [SMALL_STATE(3739)] = 39213,
  [SMALL_STATE(3740)] = 39298,
  [SMALL_STATE(3741)] = 39383,
  [SMALL_STATE(3742)] = 39468,
  [SMALL_STATE(3743)] = 39553,
  [SMALL_STATE(3744)] = 39638,
  [SMALL_STATE(3745)] = 39723,
  [SMALL_STATE(3746)] = 39808,
  [SMALL_STATE(3747)] = 39893,
  [SMALL_STATE(3748)] = 39978,
  [SMALL_STATE(3749)] = 40063,
  [SMALL_STATE(3750)] = 40148,
  [SMALL_STATE(3751)] = 40233,
  [SMALL_STATE(3752)] = 40318,
  [SMALL_STATE(3753)] = 40403,
  [SMALL_STATE(3754)] = 40488,
  [SMALL_STATE(3755)] = 40573,
  [SMALL_STATE(3756)] = 40658,
  [SMALL_STATE(3757)] = 40743,
  [SMALL_STATE(3758)] = 40828,
  [SMALL_STATE(3759)] = 40913,
  [SMALL_STATE(3760)] = 40998,
  [SMALL_STATE(3761)] = 41083,
  [SMALL_STATE(3762)] = 41168,
  [SMALL_STATE(3763)] = 41253,
  [SMALL_STATE(3764)] = 41338,
  [SMALL_STATE(3765)] = 41423,
  [SMALL_STATE(3766)] = 41508,
  [SMALL_STATE(3767)] = 41568,
  [SMALL_STATE(3768)] = 41628,
  [SMALL_STATE(3769)] = 41710,
  [SMALL_STATE(3770)] = 41774,
  [SMALL_STATE(3771)] = 41856,
  [SMALL_STATE(3772)] = 41926,
  [SMALL_STATE(3773)] = 41986,
  [SMALL_STATE(3774)] = 42046,
  [SMALL_STATE(3775)] = 42106,
  [SMALL_STATE(3776)] = 42176,
  [SMALL_STATE(3777)] = 42240,
  [SMALL_STATE(3778)] = 42308,
  [SMALL_STATE(3779)] = 42378,
  [SMALL_STATE(3780)] = 42460,
  [SMALL_STATE(3781)] = 42542,
  [SMALL_STATE(3782)] = 42624,
  [SMALL_STATE(3783)] = 42684,
  [SMALL_STATE(3784)] = 42766,
  [SMALL_STATE(3785)] = 42832,
  [SMALL_STATE(3786)] = 42892,
  [SMALL_STATE(3787)] = 42952,
  [SMALL_STATE(3788)] = 43014,
  [SMALL_STATE(3789)] = 43096,
  [SMALL_STATE(3790)] = 43156,
  [SMALL_STATE(3791)] = 43216,
  [SMALL_STATE(3792)] = 43276,
  [SMALL_STATE(3793)] = 43342,
  [SMALL_STATE(3794)] = 43406,
  [SMALL_STATE(3795)] = 43476,
  [SMALL_STATE(3796)] = 43536,
  [SMALL_STATE(3797)] = 43596,
  [SMALL_STATE(3798)] = 43656,
  [SMALL_STATE(3799)] = 43726,
  [SMALL_STATE(3800)] = 43808,
  [SMALL_STATE(3801)] = 43872,
  [SMALL_STATE(3802)] = 43934,
  [SMALL_STATE(3803)] = 43994,
  [SMALL_STATE(3804)] = 44068,
  [SMALL_STATE(3805)] = 44128,
  [SMALL_STATE(3806)] = 44188,
  [SMALL_STATE(3807)] = 44248,
  [SMALL_STATE(3808)] = 44308,
  [SMALL_STATE(3809)] = 44390,
  [SMALL_STATE(3810)] = 44452,
  [SMALL_STATE(3811)] = 44514,
  [SMALL_STATE(3812)] = 44576,
  [SMALL_STATE(3813)] = 44636,
  [SMALL_STATE(3814)] = 44698,
  [SMALL_STATE(3815)] = 44758,
  [SMALL_STATE(3816)] = 44818,
  [SMALL_STATE(3817)] = 44878,
  [SMALL_STATE(3818)] = 44940,
  [SMALL_STATE(3819)] = 45022,
  [SMALL_STATE(3820)] = 45082,
  [SMALL_STATE(3821)] = 45142,
  [SMALL_STATE(3822)] = 45202,
  [SMALL_STATE(3823)] = 45266,
  [SMALL_STATE(3824)] = 45326,
  [SMALL_STATE(3825)] = 45386,
  [SMALL_STATE(3826)] = 45456,
  [SMALL_STATE(3827)] = 45516,
  [SMALL_STATE(3828)] = 45576,
  [SMALL_STATE(3829)] = 45636,
  [SMALL_STATE(3830)] = 45696,
  [SMALL_STATE(3831)] = 45756,
  [SMALL_STATE(3832)] = 45816,
  [SMALL_STATE(3833)] = 45876,
  [SMALL_STATE(3834)] = 45958,
  [SMALL_STATE(3835)] = 46018,
  [SMALL_STATE(3836)] = 46078,
  [SMALL_STATE(3837)] = 46148,
  [SMALL_STATE(3838)] = 46208,
  [SMALL_STATE(3839)] = 46268,
  [SMALL_STATE(3840)] = 46328,
  [SMALL_STATE(3841)] = 46388,
  [SMALL_STATE(3842)] = 46448,
  [SMALL_STATE(3843)] = 46508,
  [SMALL_STATE(3844)] = 46568,
  [SMALL_STATE(3845)] = 46628,
  [SMALL_STATE(3846)] = 46688,
  [SMALL_STATE(3847)] = 46748,
  [SMALL_STATE(3848)] = 46808,
  [SMALL_STATE(3849)] = 46868,
  [SMALL_STATE(3850)] = 46928,
  [SMALL_STATE(3851)] = 46988,
  [SMALL_STATE(3852)] = 47050,
  [SMALL_STATE(3853)] = 47110,
  [SMALL_STATE(3854)] = 47170,
  [SMALL_STATE(3855)] = 47230,
  [SMALL_STATE(3856)] = 47290,
  [SMALL_STATE(3857)] = 47350,
  [SMALL_STATE(3858)] = 47410,
  [SMALL_STATE(3859)] = 47470,
  [SMALL_STATE(3860)] = 47530,
  [SMALL_STATE(3861)] = 47590,
  [SMALL_STATE(3862)] = 47650,
  [SMALL_STATE(3863)] = 47709,
  [SMALL_STATE(3864)] = 47786,
  [SMALL_STATE(3865)] = 47853,
  [SMALL_STATE(3866)] = 47918,
  [SMALL_STATE(3867)] = 47985,
  [SMALL_STATE(3868)] = 48046,
  [SMALL_STATE(3869)] = 48115,
  [SMALL_STATE(3870)] = 48176,
  [SMALL_STATE(3871)] = 48241,
  [SMALL_STATE(3872)] = 48302,
  [SMALL_STATE(3873)] = 48363,
  [SMALL_STATE(3874)] = 48424,
  [SMALL_STATE(3875)] = 48485,
  [SMALL_STATE(3876)] = 48574,
  [SMALL_STATE(3877)] = 48635,
  [SMALL_STATE(3878)] = 48702,
  [SMALL_STATE(3879)] = 48769,
  [SMALL_STATE(3880)] = 48834,
  [SMALL_STATE(3881)] = 48893,
  [SMALL_STATE(3882)] = 48960,
  [SMALL_STATE(3883)] = 49019,
  [SMALL_STATE(3884)] = 49086,
  [SMALL_STATE(3885)] = 49153,
  [SMALL_STATE(3886)] = 49218,
  [SMALL_STATE(3887)] = 49283,
  [SMALL_STATE(3888)] = 49350,
  [SMALL_STATE(3889)] = 49417,
  [SMALL_STATE(3890)] = 49480,
  [SMALL_STATE(3891)] = 49547,
  [SMALL_STATE(3892)] = 49628,
  [SMALL_STATE(3893)] = 49707,
  [SMALL_STATE(3894)] = 49776,
  [SMALL_STATE(3895)] = 49859,
  [SMALL_STATE(3896)] = 49934,
  [SMALL_STATE(3897)] = 50003,
  [SMALL_STATE(3898)] = 50092,
  [SMALL_STATE(3899)] = 50153,
  [SMALL_STATE(3900)] = 50220,
  [SMALL_STATE(3901)] = 50281,
  [SMALL_STATE(3902)] = 50350,
  [SMALL_STATE(3903)] = 50417,
  [SMALL_STATE(3904)] = 50476,
  [SMALL_STATE(3905)] = 50535,
  [SMALL_STATE(3906)] = 50622,
  [SMALL_STATE(3907)] = 50689,
  [SMALL_STATE(3908)] = 50758,
  [SMALL_STATE(3909)] = 50819,
  [SMALL_STATE(3910)] = 50882,
  [SMALL_STATE(3911)] = 50947,
  [SMALL_STATE(3912)] = 51006,
  [SMALL_STATE(3913)] = 51075,
  [SMALL_STATE(3914)] = 51142,
  [SMALL_STATE(3915)] = 51209,
  [SMALL_STATE(3916)] = 51276,
  [SMALL_STATE(3917)] = 51363,
  [SMALL_STATE(3918)] = 51426,
  [SMALL_STATE(3919)] = 51513,
  [SMALL_STATE(3920)] = 51572,
  [SMALL_STATE(3921)] = 51631,
  [SMALL_STATE(3922)] = 51690,
  [SMALL_STATE(3923)] = 51757,
  [SMALL_STATE(3924)] = 51844,
  [SMALL_STATE(3925)] = 51931,
  [SMALL_STATE(3926)] = 51990,
  [SMALL_STATE(3927)] = 52049,
  [SMALL_STATE(3928)] = 52116,
  [SMALL_STATE(3929)] = 52181,
  [SMALL_STATE(3930)] = 52239,
  [SMALL_STATE(3931)] = 52297,
  [SMALL_STATE(3932)] = 52355,
  [SMALL_STATE(3933)] = 52413,
  [SMALL_STATE(3934)] = 52481,
  [SMALL_STATE(3935)] = 52549,
  [SMALL_STATE(3936)] = 52617,
  [SMALL_STATE(3937)] = 52679,
  [SMALL_STATE(3938)] = 52737,
  [SMALL_STATE(3939)] = 52795,
  [SMALL_STATE(3940)] = 52853,
  [SMALL_STATE(3941)] = 52917,
  [SMALL_STATE(3942)] = 52975,
  [SMALL_STATE(3943)] = 53033,
  [SMALL_STATE(3944)] = 53091,
  [SMALL_STATE(3945)] = 53149,
  [SMALL_STATE(3946)] = 53209,
  [SMALL_STATE(3947)] = 53267,
  [SMALL_STATE(3948)] = 53331,
  [SMALL_STATE(3949)] = 53389,
  [SMALL_STATE(3950)] = 53449,
  [SMALL_STATE(3951)] = 53515,
  [SMALL_STATE(3952)] = 53575,
  [SMALL_STATE(3953)] = 53633,
  [SMALL_STATE(3954)] = 53699,
  [SMALL_STATE(3955)] = 53759,
  [SMALL_STATE(3956)] = 53827,
  [SMALL_STATE(3957)] = 53891,
  [SMALL_STATE(3958)] = 53949,
  [SMALL_STATE(3959)] = 54007,
  [SMALL_STATE(3960)] = 54065,
  [SMALL_STATE(3961)] = 54123,
  [SMALL_STATE(3962)] = 54181,
  [SMALL_STATE(3963)] = 54239,
  [SMALL_STATE(3964)] = 54305,
  [SMALL_STATE(3965)] = 54363,
  [SMALL_STATE(3966)] = 54421,
  [SMALL_STATE(3967)] = 54479,
  [SMALL_STATE(3968)] = 54537,
  [SMALL_STATE(3969)] = 54595,
  [SMALL_STATE(3970)] = 54653,
  [SMALL_STATE(3971)] = 54715,
  [SMALL_STATE(3972)] = 54773,
  [SMALL_STATE(3973)] = 54835,
  [SMALL_STATE(3974)] = 54893,
  [SMALL_STATE(3975)] = 54957,
  [SMALL_STATE(3976)] = 55015,
  [SMALL_STATE(3977)] = 55073,
  [SMALL_STATE(3978)] = 55141,
  [SMALL_STATE(3979)] = 55199,
  [SMALL_STATE(3980)] = 55257,
  [SMALL_STATE(3981)] = 55315,
  [SMALL_STATE(3982)] = 55373,
  [SMALL_STATE(3983)] = 55431,
  [SMALL_STATE(3984)] = 55489,
  [SMALL_STATE(3985)] = 55547,
  [SMALL_STATE(3986)] = 55605,
  [SMALL_STATE(3987)] = 55669,
  [SMALL_STATE(3988)] = 55727,
  [SMALL_STATE(3989)] = 55785,
  [SMALL_STATE(3990)] = 55853,
  [SMALL_STATE(3991)] = 55911,
  [SMALL_STATE(3992)] = 55969,
  [SMALL_STATE(3993)] = 56027,
  [SMALL_STATE(3994)] = 56085,
  [SMALL_STATE(3995)] = 56143,
  [SMALL_STATE(3996)] = 56201,
  [SMALL_STATE(3997)] = 56286,
  [SMALL_STATE(3998)] = 56375,
  [SMALL_STATE(3999)] = 56432,
  [SMALL_STATE(4000)] = 56489,
  [SMALL_STATE(4001)] = 56546,
  [SMALL_STATE(4002)] = 56603,
  [SMALL_STATE(4003)] = 56660,
  [SMALL_STATE(4004)] = 56719,
  [SMALL_STATE(4005)] = 56804,
  [SMALL_STATE(4006)] = 56861,
  [SMALL_STATE(4007)] = 56918,
  [SMALL_STATE(4008)] = 56975,
  [SMALL_STATE(4009)] = 57032,
  [SMALL_STATE(4010)] = 57089,
  [SMALL_STATE(4011)] = 57146,
  [SMALL_STATE(4012)] = 57235,
  [SMALL_STATE(4013)] = 57292,
  [SMALL_STATE(4014)] = 57349,
  [SMALL_STATE(4015)] = 57406,
  [SMALL_STATE(4016)] = 57463,
  [SMALL_STATE(4017)] = 57520,
  [SMALL_STATE(4018)] = 57585,
  [SMALL_STATE(4019)] = 57650,
  [SMALL_STATE(4020)] = 57709,
  [SMALL_STATE(4021)] = 57774,
  [SMALL_STATE(4022)] = 57863,
  [SMALL_STATE(4023)] = 57920,
  [SMALL_STATE(4024)] = 57993,
  [SMALL_STATE(4025)] = 58050,
  [SMALL_STATE(4026)] = 58107,
  [SMALL_STATE(4027)] = 58188,
  [SMALL_STATE(4028)] = 58245,
  [SMALL_STATE(4029)] = 58304,
  [SMALL_STATE(4030)] = 58361,
  [SMALL_STATE(4031)] = 58438,
  [SMALL_STATE(4032)] = 58523,
  [SMALL_STATE(4033)] = 58580,
  [SMALL_STATE(4034)] = 58637,
  [SMALL_STATE(4035)] = 58694,
  [SMALL_STATE(4036)] = 58751,
  [SMALL_STATE(4037)] = 58830,
  [SMALL_STATE(4038)] = 58891,
  [SMALL_STATE(4039)] = 58956,
  [SMALL_STATE(4040)] = 59045,
  [SMALL_STATE(4041)] = 59120,
  [SMALL_STATE(4042)] = 59205,
  [SMALL_STATE(4043)] = 59262,
  [SMALL_STATE(4044)] = 59347,
  [SMALL_STATE(4045)] = 59410,
  [SMALL_STATE(4046)] = 59467,
  [SMALL_STATE(4047)] = 59552,
  [SMALL_STATE(4048)] = 59617,
  [SMALL_STATE(4049)] = 59674,
  [SMALL_STATE(4050)] = 59749,
  [SMALL_STATE(4051)] = 59806,
  [SMALL_STATE(4052)] = 59863,
  [SMALL_STATE(4053)] = 59920,
  [SMALL_STATE(4054)] = 59977,
  [SMALL_STATE(4055)] = 60034,
  [SMALL_STATE(4056)] = 60091,
  [SMALL_STATE(4057)] = 60178,
  [SMALL_STATE(4058)] = 60253,
  [SMALL_STATE(4059)] = 60310,
  [SMALL_STATE(4060)] = 60375,
  [SMALL_STATE(4061)] = 60432,
  [SMALL_STATE(4062)] = 60495,
  [SMALL_STATE(4063)] = 60552,
  [SMALL_STATE(4064)] = 60637,
  [SMALL_STATE(4065)] = 60722,
  [SMALL_STATE(4066)] = 60779,
  [SMALL_STATE(4067)] = 60836,
  [SMALL_STATE(4068)] = 60893,
  [SMALL_STATE(4069)] = 60978,
  [SMALL_STATE(4070)] = 61043,
  [SMALL_STATE(4071)] = 61100,
  [SMALL_STATE(4072)] = 61185,
  [SMALL_STATE(4073)] = 61246,
  [SMALL_STATE(4074)] = 61325,
  [SMALL_STATE(4075)] = 61402,
  [SMALL_STATE(4076)] = 61459,
  [SMALL_STATE(4077)] = 61532,
  [SMALL_STATE(4078)] = 61589,
  [SMALL_STATE(4079)] = 61646,
  [SMALL_STATE(4080)] = 61727,
  [SMALL_STATE(4081)] = 61800,
  [SMALL_STATE(4082)] = 61887,
  [SMALL_STATE(4083)] = 61952,
  [SMALL_STATE(4084)] = 62011,
  [SMALL_STATE(4085)] = 62076,
  [SMALL_STATE(4086)] = 62157,
  [SMALL_STATE(4087)] = 62214,
  [SMALL_STATE(4088)] = 62291,
  [SMALL_STATE(4089)] = 62376,
  [SMALL_STATE(4090)] = 62433,
  [SMALL_STATE(4091)] = 62518,
  [SMALL_STATE(4092)] = 62603,
  [SMALL_STATE(4093)] = 62666,
  [SMALL_STATE(4094)] = 62751,
  [SMALL_STATE(4095)] = 62836,
  [SMALL_STATE(4096)] = 62915,
  [SMALL_STATE(4097)] = 62976,
  [SMALL_STATE(4098)] = 63048,
  [SMALL_STATE(4099)] = 63106,
  [SMALL_STATE(4100)] = 63170,
  [SMALL_STATE(4101)] = 63230,
  [SMALL_STATE(4102)] = 63294,
  [SMALL_STATE(4103)] = 63378,
  [SMALL_STATE(4104)] = 63434,
  [SMALL_STATE(4105)] = 63496,
  [SMALL_STATE(4106)] = 63580,
  [SMALL_STATE(4107)] = 63654,
  [SMALL_STATE(4108)] = 63718,
  [SMALL_STATE(4109)] = 63806,
  [SMALL_STATE(4110)] = 63868,
  [SMALL_STATE(4111)] = 63926,
  [SMALL_STATE(4112)] = 63984,
  [SMALL_STATE(4113)] = 64042,
  [SMALL_STATE(4114)] = 64126,
  [SMALL_STATE(4115)] = 64184,
  [SMALL_STATE(4116)] = 64272,
  [SMALL_STATE(4117)] = 64348,
  [SMALL_STATE(4118)] = 64428,
  [SMALL_STATE(4119)] = 64506,
  [SMALL_STATE(4120)] = 64590,
  [SMALL_STATE(4121)] = 64674,
  [SMALL_STATE(4122)] = 64747,
  [SMALL_STATE(4123)] = 64822,
  [SMALL_STATE(4124)] = 64905,
  [SMALL_STATE(4125)] = 64988,
  [SMALL_STATE(4126)] = 65071,
  [SMALL_STATE(4127)] = 65154,
  [SMALL_STATE(4128)] = 65237,
  [SMALL_STATE(4129)] = 65322,
  [SMALL_STATE(4130)] = 65385,
  [SMALL_STATE(4131)] = 65446,
  [SMALL_STATE(4132)] = 65509,
  [SMALL_STATE(4133)] = 65566,
  [SMALL_STATE(4134)] = 65629,
  [SMALL_STATE(4135)] = 65688,
  [SMALL_STATE(4136)] = 65773,
  [SMALL_STATE(4137)] = 65850,
  [SMALL_STATE(4138)] = 65921,
  [SMALL_STATE(4139)] = 66000,
  [SMALL_STATE(4140)] = 66059,
  [SMALL_STATE(4141)] = 66135,
  [SMALL_STATE(4142)] = 66213,
  [SMALL_STATE(4143)] = 66273,
  [SMALL_STATE(4144)] = 66365,
  [SMALL_STATE(4145)] = 66457,
  [SMALL_STATE(4146)] = 66531,
  [SMALL_STATE(4147)] = 66623,
  [SMALL_STATE(4148)] = 66707,
  [SMALL_STATE(4149)] = 66763,
  [SMALL_STATE(4150)] = 66835,
  [SMALL_STATE(4151)] = 66897,
  [SMALL_STATE(4152)] = 66959,
  [SMALL_STATE(4153)] = 67017,
  [SMALL_STATE(4154)] = 67087,
  [SMALL_STATE(4155)] = 67171,
  [SMALL_STATE(4156)] = 67233,
  [SMALL_STATE(4157)] = 67320,
  [SMALL_STATE(4158)] = 67407,
  [SMALL_STATE(4159)] = 67494,
  [SMALL_STATE(4160)] = 67581,
  [SMALL_STATE(4161)] = 67668,
  [SMALL_STATE(4162)] = 67755,
  [SMALL_STATE(4163)] = 67842,
  [SMALL_STATE(4164)] = 67897,
  [SMALL_STATE(4165)] = 67984,
  [SMALL_STATE(4166)] = 68071,
  [SMALL_STATE(4167)] = 68154,
  [SMALL_STATE(4168)] = 68236,
  [SMALL_STATE(4169)] = 68308,
  [SMALL_STATE(4170)] = 68390,
  [SMALL_STATE(4171)] = 68476,
  [SMALL_STATE(4172)] = 68558,
  [SMALL_STATE(4173)] = 68640,
  [SMALL_STATE(4174)] = 68722,
  [SMALL_STATE(4175)] = 68804,
  [SMALL_STATE(4176)] = 68886,
  [SMALL_STATE(4177)] = 68970,
  [SMALL_STATE(4178)] = 69052,
  [SMALL_STATE(4179)] = 69134,
  [SMALL_STATE(4180)] = 69190,
  [SMALL_STATE(4181)] = 69244,
  [SMALL_STATE(4182)] = 69300,
  [SMALL_STATE(4183)] = 69360,
  [SMALL_STATE(4184)] = 69414,
  [SMALL_STATE(4185)] = 69496,
  [SMALL_STATE(4186)] = 69564,
  [SMALL_STATE(4187)] = 69640,
  [SMALL_STATE(4188)] = 69722,
  [SMALL_STATE(4189)] = 69774,
  [SMALL_STATE(4190)] = 69834,
  [SMALL_STATE(4191)] = 69916,
  [SMALL_STATE(4192)] = 69998,
  [SMALL_STATE(4193)] = 70052,
  [SMALL_STATE(4194)] = 70134,
  [SMALL_STATE(4195)] = 70202,
  [SMALL_STATE(4196)] = 70278,
  [SMALL_STATE(4197)] = 70360,
  [SMALL_STATE(4198)] = 70432,
  [SMALL_STATE(4199)] = 70506,
  [SMALL_STATE(4200)] = 70588,
  [SMALL_STATE(4201)] = 70670,
  [SMALL_STATE(4202)] = 70752,
  [SMALL_STATE(4203)] = 70808,
  [SMALL_STATE(4204)] = 70868,
  [SMALL_STATE(4205)] = 70928,
  [SMALL_STATE(4206)] = 70982,
  [SMALL_STATE(4207)] = 71040,
  [SMALL_STATE(4208)] = 71122,
  [SMALL_STATE(4209)] = 71204,
  [SMALL_STATE(4210)] = 71272,
  [SMALL_STATE(4211)] = 71348,
  [SMALL_STATE(4212)] = 71420,
  [SMALL_STATE(4213)] = 71506,
  [SMALL_STATE(4214)] = 71580,
  [SMALL_STATE(4215)] = 71636,
  [SMALL_STATE(4216)] = 71696,
  [SMALL_STATE(4217)] = 71754,
  [SMALL_STATE(4218)] = 71814,
  [SMALL_STATE(4219)] = 71884,
  [SMALL_STATE(4220)] = 71958,
  [SMALL_STATE(4221)] = 72018,
  [SMALL_STATE(4222)] = 72088,
  [SMALL_STATE(4223)] = 72148,
  [SMALL_STATE(4224)] = 72206,
  [SMALL_STATE(4225)] = 72288,
  [SMALL_STATE(4226)] = 72348,
  [SMALL_STATE(4227)] = 72418,
  [SMALL_STATE(4228)] = 72500,
  [SMALL_STATE(4229)] = 72582,
  [SMALL_STATE(4230)] = 72664,
  [SMALL_STATE(4231)] = 72720,
  [SMALL_STATE(4232)] = 72802,
  [SMALL_STATE(4233)] = 72858,
  [SMALL_STATE(4234)] = 72940,
  [SMALL_STATE(4235)] = 73026,
  [SMALL_STATE(4236)] = 73107,
  [SMALL_STATE(4237)] = 73188,
  [SMALL_STATE(4238)] = 73269,
  [SMALL_STATE(4239)] = 73340,
  [SMALL_STATE(4240)] = 73415,
  [SMALL_STATE(4241)] = 73482,
  [SMALL_STATE(4242)] = 73563,
  [SMALL_STATE(4243)] = 73616,
  [SMALL_STATE(4244)] = 73697,
  [SMALL_STATE(4245)] = 73756,
  [SMALL_STATE(4246)] = 73809,
  [SMALL_STATE(4247)] = 73890,
  [SMALL_STATE(4248)] = 73947,
  [SMALL_STATE(4249)] = 74028,
  [SMALL_STATE(4250)] = 74087,
  [SMALL_STATE(4251)] = 74156,
  [SMALL_STATE(4252)] = 74237,
  [SMALL_STATE(4253)] = 74296,
  [SMALL_STATE(4254)] = 74377,
  [SMALL_STATE(4255)] = 74458,
  [SMALL_STATE(4256)] = 74513,
  [SMALL_STATE(4257)] = 74594,
  [SMALL_STATE(4258)] = 74675,
  [SMALL_STATE(4259)] = 74756,
  [SMALL_STATE(4260)] = 74815,
  [SMALL_STATE(4261)] = 74896,
  [SMALL_STATE(4262)] = 74949,
  [SMALL_STATE(4263)] = 75030,
  [SMALL_STATE(4264)] = 75111,
  [SMALL_STATE(4265)] = 75192,
  [SMALL_STATE(4266)] = 75273,
  [SMALL_STATE(4267)] = 75326,
  [SMALL_STATE(4268)] = 75407,
  [SMALL_STATE(4269)] = 75488,
  [SMALL_STATE(4270)] = 75541,
  [SMALL_STATE(4271)] = 75594,
  [SMALL_STATE(4272)] = 75647,
  [SMALL_STATE(4273)] = 75700,
  [SMALL_STATE(4274)] = 75781,
  [SMALL_STATE(4275)] = 75862,
  [SMALL_STATE(4276)] = 75943,
  [SMALL_STATE(4277)] = 76024,
  [SMALL_STATE(4278)] = 76105,
  [SMALL_STATE(4279)] = 76178,
  [SMALL_STATE(4280)] = 76259,
  [SMALL_STATE(4281)] = 76312,
  [SMALL_STATE(4282)] = 76392,
  [SMALL_STATE(4283)] = 76472,
  [SMALL_STATE(4284)] = 76546,
  [SMALL_STATE(4285)] = 76626,
  [SMALL_STATE(4286)] = 76698,
  [SMALL_STATE(4287)] = 76768,
  [SMALL_STATE(4288)] = 76834,
  [SMALL_STATE(4289)] = 76914,
  [SMALL_STATE(4290)] = 76966,
  [SMALL_STATE(4291)] = 77046,
  [SMALL_STATE(4292)] = 77126,
  [SMALL_STATE(4293)] = 77206,
  [SMALL_STATE(4294)] = 77264,
  [SMALL_STATE(4295)] = 77322,
  [SMALL_STATE(4296)] = 77378,
  [SMALL_STATE(4297)] = 77458,
  [SMALL_STATE(4298)] = 77516,
  [SMALL_STATE(4299)] = 77570,
  [SMALL_STATE(4300)] = 77650,
  [SMALL_STATE(4301)] = 77730,
  [SMALL_STATE(4302)] = 77810,
  [SMALL_STATE(4303)] = 77890,
  [SMALL_STATE(4304)] = 77958,
  [SMALL_STATE(4305)] = 78038,
  [SMALL_STATE(4306)] = 78118,
  [SMALL_STATE(4307)] = 78198,
  [SMALL_STATE(4308)] = 78278,
  [SMALL_STATE(4309)] = 78339,
  [SMALL_STATE(4310)] = 78400,
  [SMALL_STATE(4311)] = 78461,
  [SMALL_STATE(4312)] = 78522,
  [SMALL_STATE(4313)] = 78583,
  [SMALL_STATE(4314)] = 78644,
  [SMALL_STATE(4315)] = 78705,
  [SMALL_STATE(4316)] = 78779,
  [SMALL_STATE(4317)] = 78853,
  [SMALL_STATE(4318)] = 78927,
  [SMALL_STATE(4319)] = 79001,
  [SMALL_STATE(4320)] = 79075,
  [SMALL_STATE(4321)] = 79149,
  [SMALL_STATE(4322)] = 79223,
  [SMALL_STATE(4323)] = 79297,
  [SMALL_STATE(4324)] = 79371,
  [SMALL_STATE(4325)] = 79445,
  [SMALL_STATE(4326)] = 79519,
  [SMALL_STATE(4327)] = 79593,
  [SMALL_STATE(4328)] = 79667,
  [SMALL_STATE(4329)] = 79741,
  [SMALL_STATE(4330)] = 79815,
  [SMALL_STATE(4331)] = 79889,
  [SMALL_STATE(4332)] = 79963,
  [SMALL_STATE(4333)] = 80037,
  [SMALL_STATE(4334)] = 80111,
  [SMALL_STATE(4335)] = 80185,
  [SMALL_STATE(4336)] = 80259,
  [SMALL_STATE(4337)] = 80333,
  [SMALL_STATE(4338)] = 80407,
  [SMALL_STATE(4339)] = 80481,
  [SMALL_STATE(4340)] = 80555,
  [SMALL_STATE(4341)] = 80629,
  [SMALL_STATE(4342)] = 80703,
  [SMALL_STATE(4343)] = 80777,
  [SMALL_STATE(4344)] = 80851,
  [SMALL_STATE(4345)] = 80925,
  [SMALL_STATE(4346)] = 80999,
  [SMALL_STATE(4347)] = 81073,
  [SMALL_STATE(4348)] = 81147,
  [SMALL_STATE(4349)] = 81221,
  [SMALL_STATE(4350)] = 81295,
  [SMALL_STATE(4351)] = 81369,
  [SMALL_STATE(4352)] = 81443,
  [SMALL_STATE(4353)] = 81517,
  [SMALL_STATE(4354)] = 81591,
  [SMALL_STATE(4355)] = 81665,
  [SMALL_STATE(4356)] = 81739,
  [SMALL_STATE(4357)] = 81813,
  [SMALL_STATE(4358)] = 81887,
  [SMALL_STATE(4359)] = 81961,
  [SMALL_STATE(4360)] = 82035,
  [SMALL_STATE(4361)] = 82109,
  [SMALL_STATE(4362)] = 82183,
  [SMALL_STATE(4363)] = 82257,
  [SMALL_STATE(4364)] = 82331,
  [SMALL_STATE(4365)] = 82405,
  [SMALL_STATE(4366)] = 82479,
  [SMALL_STATE(4367)] = 82553,
  [SMALL_STATE(4368)] = 82627,
  [SMALL_STATE(4369)] = 82701,
  [SMALL_STATE(4370)] = 82775,
  [SMALL_STATE(4371)] = 82849,
  [SMALL_STATE(4372)] = 82923,
  [SMALL_STATE(4373)] = 82997,
  [SMALL_STATE(4374)] = 83071,
  [SMALL_STATE(4375)] = 83145,
  [SMALL_STATE(4376)] = 83219,
  [SMALL_STATE(4377)] = 83293,
  [SMALL_STATE(4378)] = 83367,
  [SMALL_STATE(4379)] = 83441,
  [SMALL_STATE(4380)] = 83509,
  [SMALL_STATE(4381)] = 83577,
  [SMALL_STATE(4382)] = 83645,
  [SMALL_STATE(4383)] = 83713,
  [SMALL_STATE(4384)] = 83781,
  [SMALL_STATE(4385)] = 83849,
  [SMALL_STATE(4386)] = 83917,
  [SMALL_STATE(4387)] = 83985,
  [SMALL_STATE(4388)] = 84053,
  [SMALL_STATE(4389)] = 84121,
  [SMALL_STATE(4390)] = 84189,
  [SMALL_STATE(4391)] = 84257,
  [SMALL_STATE(4392)] = 84325,
  [SMALL_STATE(4393)] = 84393,
  [SMALL_STATE(4394)] = 84461,
  [SMALL_STATE(4395)] = 84529,
  [SMALL_STATE(4396)] = 84597,
  [SMALL_STATE(4397)] = 84665,
  [SMALL_STATE(4398)] = 84733,
  [SMALL_STATE(4399)] = 84801,
  [SMALL_STATE(4400)] = 84869,
  [SMALL_STATE(4401)] = 84937,
  [SMALL_STATE(4402)] = 85005,
  [SMALL_STATE(4403)] = 85073,
  [SMALL_STATE(4404)] = 85141,
  [SMALL_STATE(4405)] = 85209,
  [SMALL_STATE(4406)] = 85277,
  [SMALL_STATE(4407)] = 85345,
  [SMALL_STATE(4408)] = 85413,
  [SMALL_STATE(4409)] = 85481,
  [SMALL_STATE(4410)] = 85549,
  [SMALL_STATE(4411)] = 85617,
  [SMALL_STATE(4412)] = 85685,
  [SMALL_STATE(4413)] = 85753,
  [SMALL_STATE(4414)] = 85821,
  [SMALL_STATE(4415)] = 85889,
  [SMALL_STATE(4416)] = 85957,
  [SMALL_STATE(4417)] = 86025,
  [SMALL_STATE(4418)] = 86093,
  [SMALL_STATE(4419)] = 86161,
  [SMALL_STATE(4420)] = 86229,
  [SMALL_STATE(4421)] = 86297,
  [SMALL_STATE(4422)] = 86365,
  [SMALL_STATE(4423)] = 86433,
  [SMALL_STATE(4424)] = 86501,
  [SMALL_STATE(4425)] = 86569,
  [SMALL_STATE(4426)] = 86637,
  [SMALL_STATE(4427)] = 86705,
  [SMALL_STATE(4428)] = 86773,
  [SMALL_STATE(4429)] = 86841,
  [SMALL_STATE(4430)] = 86909,
  [SMALL_STATE(4431)] = 86977,
  [SMALL_STATE(4432)] = 87045,
  [SMALL_STATE(4433)] = 87113,
  [SMALL_STATE(4434)] = 87181,
  [SMALL_STATE(4435)] = 87249,
  [SMALL_STATE(4436)] = 87317,
  [SMALL_STATE(4437)] = 87385,
  [SMALL_STATE(4438)] = 87453,
  [SMALL_STATE(4439)] = 87521,
  [SMALL_STATE(4440)] = 87589,
  [SMALL_STATE(4441)] = 87657,
  [SMALL_STATE(4442)] = 87725,
  [SMALL_STATE(4443)] = 87793,
  [SMALL_STATE(4444)] = 87861,
  [SMALL_STATE(4445)] = 87929,
  [SMALL_STATE(4446)] = 87997,
  [SMALL_STATE(4447)] = 88065,
  [SMALL_STATE(4448)] = 88133,
  [SMALL_STATE(4449)] = 88201,
  [SMALL_STATE(4450)] = 88269,
  [SMALL_STATE(4451)] = 88337,
  [SMALL_STATE(4452)] = 88405,
  [SMALL_STATE(4453)] = 88473,
  [SMALL_STATE(4454)] = 88541,
  [SMALL_STATE(4455)] = 88609,
  [SMALL_STATE(4456)] = 88677,
  [SMALL_STATE(4457)] = 88745,
  [SMALL_STATE(4458)] = 88813,
  [SMALL_STATE(4459)] = 88881,
  [SMALL_STATE(4460)] = 88949,
  [SMALL_STATE(4461)] = 89017,
  [SMALL_STATE(4462)] = 89085,
  [SMALL_STATE(4463)] = 89153,
  [SMALL_STATE(4464)] = 89221,
  [SMALL_STATE(4465)] = 89289,
  [SMALL_STATE(4466)] = 89357,
  [SMALL_STATE(4467)] = 89425,
  [SMALL_STATE(4468)] = 89493,
  [SMALL_STATE(4469)] = 89561,
  [SMALL_STATE(4470)] = 89629,
  [SMALL_STATE(4471)] = 89697,
  [SMALL_STATE(4472)] = 89765,
  [SMALL_STATE(4473)] = 89833,
  [SMALL_STATE(4474)] = 89901,
  [SMALL_STATE(4475)] = 89969,
  [SMALL_STATE(4476)] = 90037,
  [SMALL_STATE(4477)] = 90105,
  [SMALL_STATE(4478)] = 90173,
  [SMALL_STATE(4479)] = 90241,
  [SMALL_STATE(4480)] = 90309,
  [SMALL_STATE(4481)] = 90377,
  [SMALL_STATE(4482)] = 90445,
  [SMALL_STATE(4483)] = 90513,
  [SMALL_STATE(4484)] = 90581,
  [SMALL_STATE(4485)] = 90649,
  [SMALL_STATE(4486)] = 90717,
  [SMALL_STATE(4487)] = 90785,
  [SMALL_STATE(4488)] = 90853,
  [SMALL_STATE(4489)] = 90921,
  [SMALL_STATE(4490)] = 90989,
  [SMALL_STATE(4491)] = 91057,
  [SMALL_STATE(4492)] = 91125,
  [SMALL_STATE(4493)] = 91193,
  [SMALL_STATE(4494)] = 91261,
  [SMALL_STATE(4495)] = 91329,
  [SMALL_STATE(4496)] = 91397,
  [SMALL_STATE(4497)] = 91465,
  [SMALL_STATE(4498)] = 91533,
  [SMALL_STATE(4499)] = 91601,
  [SMALL_STATE(4500)] = 91669,
  [SMALL_STATE(4501)] = 91737,
  [SMALL_STATE(4502)] = 91805,
  [SMALL_STATE(4503)] = 91873,
  [SMALL_STATE(4504)] = 91941,
  [SMALL_STATE(4505)] = 92009,
  [SMALL_STATE(4506)] = 92077,
  [SMALL_STATE(4507)] = 92145,
  [SMALL_STATE(4508)] = 92213,
  [SMALL_STATE(4509)] = 92281,
  [SMALL_STATE(4510)] = 92349,
  [SMALL_STATE(4511)] = 92417,
  [SMALL_STATE(4512)] = 92485,
  [SMALL_STATE(4513)] = 92553,
  [SMALL_STATE(4514)] = 92621,
  [SMALL_STATE(4515)] = 92689,
  [SMALL_STATE(4516)] = 92757,
  [SMALL_STATE(4517)] = 92825,
  [SMALL_STATE(4518)] = 92893,
  [SMALL_STATE(4519)] = 92961,
  [SMALL_STATE(4520)] = 93029,
  [SMALL_STATE(4521)] = 93097,
  [SMALL_STATE(4522)] = 93165,
  [SMALL_STATE(4523)] = 93233,
  [SMALL_STATE(4524)] = 93301,
  [SMALL_STATE(4525)] = 93369,
  [SMALL_STATE(4526)] = 93437,
  [SMALL_STATE(4527)] = 93505,
  [SMALL_STATE(4528)] = 93573,
  [SMALL_STATE(4529)] = 93641,
  [SMALL_STATE(4530)] = 93709,
  [SMALL_STATE(4531)] = 93777,
  [SMALL_STATE(4532)] = 93845,
  [SMALL_STATE(4533)] = 93913,
  [SMALL_STATE(4534)] = 93981,
  [SMALL_STATE(4535)] = 94049,
  [SMALL_STATE(4536)] = 94117,
  [SMALL_STATE(4537)] = 94185,
  [SMALL_STATE(4538)] = 94253,
  [SMALL_STATE(4539)] = 94321,
  [SMALL_STATE(4540)] = 94389,
  [SMALL_STATE(4541)] = 94457,
  [SMALL_STATE(4542)] = 94525,
  [SMALL_STATE(4543)] = 94593,
  [SMALL_STATE(4544)] = 94661,
  [SMALL_STATE(4545)] = 94729,
  [SMALL_STATE(4546)] = 94797,
  [SMALL_STATE(4547)] = 94865,
  [SMALL_STATE(4548)] = 94933,
  [SMALL_STATE(4549)] = 95001,
  [SMALL_STATE(4550)] = 95069,
  [SMALL_STATE(4551)] = 95137,
  [SMALL_STATE(4552)] = 95205,
  [SMALL_STATE(4553)] = 95273,
  [SMALL_STATE(4554)] = 95341,
  [SMALL_STATE(4555)] = 95409,
  [SMALL_STATE(4556)] = 95477,
  [SMALL_STATE(4557)] = 95545,
  [SMALL_STATE(4558)] = 95613,
  [SMALL_STATE(4559)] = 95681,
  [SMALL_STATE(4560)] = 95749,
  [SMALL_STATE(4561)] = 95817,
  [SMALL_STATE(4562)] = 95885,
  [SMALL_STATE(4563)] = 95953,
  [SMALL_STATE(4564)] = 96021,
  [SMALL_STATE(4565)] = 96089,
  [SMALL_STATE(4566)] = 96157,
  [SMALL_STATE(4567)] = 96225,
  [SMALL_STATE(4568)] = 96293,
  [SMALL_STATE(4569)] = 96361,
  [SMALL_STATE(4570)] = 96429,
  [SMALL_STATE(4571)] = 96497,
  [SMALL_STATE(4572)] = 96565,
  [SMALL_STATE(4573)] = 96633,
  [SMALL_STATE(4574)] = 96701,
  [SMALL_STATE(4575)] = 96769,
  [SMALL_STATE(4576)] = 96837,
  [SMALL_STATE(4577)] = 96905,
  [SMALL_STATE(4578)] = 96973,
  [SMALL_STATE(4579)] = 97041,
  [SMALL_STATE(4580)] = 97109,
  [SMALL_STATE(4581)] = 97177,
  [SMALL_STATE(4582)] = 97245,
  [SMALL_STATE(4583)] = 97313,
  [SMALL_STATE(4584)] = 97381,
  [SMALL_STATE(4585)] = 97449,
  [SMALL_STATE(4586)] = 97517,
  [SMALL_STATE(4587)] = 97585,
  [SMALL_STATE(4588)] = 97621,
  [SMALL_STATE(4589)] = 97657,
  [SMALL_STATE(4590)] = 97693,
  [SMALL_STATE(4591)] = 97729,
  [SMALL_STATE(4592)] = 97765,
  [SMALL_STATE(4593)] = 97801,
  [SMALL_STATE(4594)] = 97837,
  [SMALL_STATE(4595)] = 97880,
  [SMALL_STATE(4596)] = 97923,
  [SMALL_STATE(4597)] = 97966,
  [SMALL_STATE(4598)] = 98007,
  [SMALL_STATE(4599)] = 98040,
  [SMALL_STATE(4600)] = 98081,
  [SMALL_STATE(4601)] = 98114,
  [SMALL_STATE(4602)] = 98147,
  [SMALL_STATE(4603)] = 98180,
  [SMALL_STATE(4604)] = 98213,
  [SMALL_STATE(4605)] = 98254,
  [SMALL_STATE(4606)] = 98287,
  [SMALL_STATE(4607)] = 98320,
  [SMALL_STATE(4608)] = 98353,
  [SMALL_STATE(4609)] = 98386,
  [SMALL_STATE(4610)] = 98419,
  [SMALL_STATE(4611)] = 98452,
  [SMALL_STATE(4612)] = 98485,
  [SMALL_STATE(4613)] = 98518,
  [SMALL_STATE(4614)] = 98551,
  [SMALL_STATE(4615)] = 98584,
  [SMALL_STATE(4616)] = 98617,
  [SMALL_STATE(4617)] = 98650,
  [SMALL_STATE(4618)] = 98683,
  [SMALL_STATE(4619)] = 98716,
  [SMALL_STATE(4620)] = 98749,
  [SMALL_STATE(4621)] = 98789,
  [SMALL_STATE(4622)] = 98829,
  [SMALL_STATE(4623)] = 98869,
  [SMALL_STATE(4624)] = 98908,
  [SMALL_STATE(4625)] = 98943,
  [SMALL_STATE(4626)] = 98982,
  [SMALL_STATE(4627)] = 99021,
  [SMALL_STATE(4628)] = 99058,
  [SMALL_STATE(4629)] = 99095,
  [SMALL_STATE(4630)] = 99134,
  [SMALL_STATE(4631)] = 99171,
  [SMALL_STATE(4632)] = 99201,
  [SMALL_STATE(4633)] = 99239,
  [SMALL_STATE(4634)] = 99277,
  [SMALL_STATE(4635)] = 99307,
  [SMALL_STATE(4636)] = 99345,
  [SMALL_STATE(4637)] = 99375,
  [SMALL_STATE(4638)] = 99405,
  [SMALL_STATE(4639)] = 99442,
  [SMALL_STATE(4640)] = 99477,
  [SMALL_STATE(4641)] = 99510,
  [SMALL_STATE(4642)] = 99545,
  [SMALL_STATE(4643)] = 99580,
  [SMALL_STATE(4644)] = 99615,
  [SMALL_STATE(4645)] = 99643,
  [SMALL_STATE(4646)] = 99671,
  [SMALL_STATE(4647)] = 99699,
  [SMALL_STATE(4648)] = 99727,
  [SMALL_STATE(4649)] = 99755,
  [SMALL_STATE(4650)] = 99783,
  [SMALL_STATE(4651)] = 99819,
  [SMALL_STATE(4652)] = 99855,
  [SMALL_STATE(4653)] = 99883,
  [SMALL_STATE(4654)] = 99911,
  [SMALL_STATE(4655)] = 99939,
  [SMALL_STATE(4656)] = 99967,
  [SMALL_STATE(4657)] = 99995,
  [SMALL_STATE(4658)] = 100022,
  [SMALL_STATE(4659)] = 100049,
  [SMALL_STATE(4660)] = 100076,
  [SMALL_STATE(4661)] = 100103,
  [SMALL_STATE(4662)] = 100130,
  [SMALL_STATE(4663)] = 100157,
  [SMALL_STATE(4664)] = 100184,
  [SMALL_STATE(4665)] = 100211,
  [SMALL_STATE(4666)] = 100238,
  [SMALL_STATE(4667)] = 100265,
  [SMALL_STATE(4668)] = 100292,
  [SMALL_STATE(4669)] = 100338,
  [SMALL_STATE(4670)] = 100370,
  [SMALL_STATE(4671)] = 100396,
  [SMALL_STATE(4672)] = 100442,
  [SMALL_STATE(4673)] = 100468,
  [SMALL_STATE(4674)] = 100494,
  [SMALL_STATE(4675)] = 100534,
  [SMALL_STATE(4676)] = 100580,
  [SMALL_STATE(4677)] = 100606,
  [SMALL_STATE(4678)] = 100632,
  [SMALL_STATE(4679)] = 100672,
  [SMALL_STATE(4680)] = 100712,
  [SMALL_STATE(4681)] = 100752,
  [SMALL_STATE(4682)] = 100778,
  [SMALL_STATE(4683)] = 100824,
  [SMALL_STATE(4684)] = 100864,
  [SMALL_STATE(4685)] = 100890,
  [SMALL_STATE(4686)] = 100936,
  [SMALL_STATE(4687)] = 100982,
  [SMALL_STATE(4688)] = 101022,
  [SMALL_STATE(4689)] = 101062,
  [SMALL_STATE(4690)] = 101088,
  [SMALL_STATE(4691)] = 101128,
  [SMALL_STATE(4692)] = 101168,
  [SMALL_STATE(4693)] = 101198,
  [SMALL_STATE(4694)] = 101238,
  [SMALL_STATE(4695)] = 101278,
  [SMALL_STATE(4696)] = 101324,
  [SMALL_STATE(4697)] = 101350,
  [SMALL_STATE(4698)] = 101390,
  [SMALL_STATE(4699)] = 101430,
  [SMALL_STATE(4700)] = 101456,
  [SMALL_STATE(4701)] = 101482,
  [SMALL_STATE(4702)] = 101508,
  [SMALL_STATE(4703)] = 101554,
  [SMALL_STATE(4704)] = 101600,
  [SMALL_STATE(4705)] = 101646,
  [SMALL_STATE(4706)] = 101692,
  [SMALL_STATE(4707)] = 101738,
  [SMALL_STATE(4708)] = 101784,
  [SMALL_STATE(4709)] = 101824,
  [SMALL_STATE(4710)] = 101870,
  [SMALL_STATE(4711)] = 101910,
  [SMALL_STATE(4712)] = 101956,
  [SMALL_STATE(4713)] = 101996,
  [SMALL_STATE(4714)] = 102042,
  [SMALL_STATE(4715)] = 102068,
  [SMALL_STATE(4716)] = 102094,
  [SMALL_STATE(4717)] = 102140,
  [SMALL_STATE(4718)] = 102180,
  [SMALL_STATE(4719)] = 102206,
  [SMALL_STATE(4720)] = 102246,
  [SMALL_STATE(4721)] = 102292,
  [SMALL_STATE(4722)] = 102338,
  [SMALL_STATE(4723)] = 102384,
  [SMALL_STATE(4724)] = 102430,
  [SMALL_STATE(4725)] = 102470,
  [SMALL_STATE(4726)] = 102496,
  [SMALL_STATE(4727)] = 102536,
  [SMALL_STATE(4728)] = 102582,
  [SMALL_STATE(4729)] = 102622,
  [SMALL_STATE(4730)] = 102668,
  [SMALL_STATE(4731)] = 102708,
  [SMALL_STATE(4732)] = 102734,
  [SMALL_STATE(4733)] = 102774,
  [SMALL_STATE(4734)] = 102814,
  [SMALL_STATE(4735)] = 102854,
  [SMALL_STATE(4736)] = 102894,
  [SMALL_STATE(4737)] = 102934,
  [SMALL_STATE(4738)] = 102980,
  [SMALL_STATE(4739)] = 103026,
  [SMALL_STATE(4740)] = 103066,
  [SMALL_STATE(4741)] = 103112,
  [SMALL_STATE(4742)] = 103152,
  [SMALL_STATE(4743)] = 103192,
  [SMALL_STATE(4744)] = 103232,
  [SMALL_STATE(4745)] = 103278,
  [SMALL_STATE(4746)] = 103318,
  [SMALL_STATE(4747)] = 103358,
  [SMALL_STATE(4748)] = 103404,
  [SMALL_STATE(4749)] = 103450,
  [SMALL_STATE(4750)] = 103496,
  [SMALL_STATE(4751)] = 103542,
  [SMALL_STATE(4752)] = 103582,
  [SMALL_STATE(4753)] = 103628,
  [SMALL_STATE(4754)] = 103674,
  [SMALL_STATE(4755)] = 103706,
  [SMALL_STATE(4756)] = 103752,
  [SMALL_STATE(4757)] = 103792,
  [SMALL_STATE(4758)] = 103838,
  [SMALL_STATE(4759)] = 103884,
  [SMALL_STATE(4760)] = 103924,
  [SMALL_STATE(4761)] = 103964,
  [SMALL_STATE(4762)] = 104010,
  [SMALL_STATE(4763)] = 104056,
  [SMALL_STATE(4764)] = 104102,
  [SMALL_STATE(4765)] = 104148,
  [SMALL_STATE(4766)] = 104194,
  [SMALL_STATE(4767)] = 104234,
  [SMALL_STATE(4768)] = 104260,
  [SMALL_STATE(4769)] = 104306,
  [SMALL_STATE(4770)] = 104352,
  [SMALL_STATE(4771)] = 104378,
  [SMALL_STATE(4772)] = 104410,
  [SMALL_STATE(4773)] = 104436,
  [SMALL_STATE(4774)] = 104462,
  [SMALL_STATE(4775)] = 104488,
  [SMALL_STATE(4776)] = 104514,
  [SMALL_STATE(4777)] = 104560,
  [SMALL_STATE(4778)] = 104606,
  [SMALL_STATE(4779)] = 104646,
  [SMALL_STATE(4780)] = 104686,
  [SMALL_STATE(4781)] = 104726,
  [SMALL_STATE(4782)] = 104766,
  [SMALL_STATE(4783)] = 104812,
  [SMALL_STATE(4784)] = 104858,
  [SMALL_STATE(4785)] = 104888,
  [SMALL_STATE(4786)] = 104934,
  [SMALL_STATE(4787)] = 104957,
  [SMALL_STATE(4788)] = 104988,
  [SMALL_STATE(4789)] = 105017,
  [SMALL_STATE(4790)] = 105046,
  [SMALL_STATE(4791)] = 105077,
  [SMALL_STATE(4792)] = 105100,
  [SMALL_STATE(4793)] = 105123,
  [SMALL_STATE(4794)] = 105146,
  [SMALL_STATE(4795)] = 105169,
  [SMALL_STATE(4796)] = 105200,
  [SMALL_STATE(4797)] = 105223,
  [SMALL_STATE(4798)] = 105246,
  [SMALL_STATE(4799)] = 105277,
  [SMALL_STATE(4800)] = 105308,
  [SMALL_STATE(4801)] = 105331,
  [SMALL_STATE(4802)] = 105354,
  [SMALL_STATE(4803)] = 105377,
  [SMALL_STATE(4804)] = 105400,
  [SMALL_STATE(4805)] = 105423,
  [SMALL_STATE(4806)] = 105446,
  [SMALL_STATE(4807)] = 105469,
  [SMALL_STATE(4808)] = 105492,
  [SMALL_STATE(4809)] = 105515,
  [SMALL_STATE(4810)] = 105538,
  [SMALL_STATE(4811)] = 105561,
  [SMALL_STATE(4812)] = 105584,
  [SMALL_STATE(4813)] = 105615,
  [SMALL_STATE(4814)] = 105646,
  [SMALL_STATE(4815)] = 105669,
  [SMALL_STATE(4816)] = 105699,
  [SMALL_STATE(4817)] = 105733,
  [SMALL_STATE(4818)] = 105763,
  [SMALL_STATE(4819)] = 105797,
  [SMALL_STATE(4820)] = 105831,
  [SMALL_STATE(4821)] = 105865,
  [SMALL_STATE(4822)] = 105895,
  [SMALL_STATE(4823)] = 105941,
  [SMALL_STATE(4824)] = 105971,
  [SMALL_STATE(4825)] = 106001,
  [SMALL_STATE(4826)] = 106035,
  [SMALL_STATE(4827)] = 106069,
  [SMALL_STATE(4828)] = 106097,
  [SMALL_STATE(4829)] = 106127,
  [SMALL_STATE(4830)] = 106157,
  [SMALL_STATE(4831)] = 106191,
  [SMALL_STATE(4832)] = 106221,
  [SMALL_STATE(4833)] = 106255,
  [SMALL_STATE(4834)] = 106285,
  [SMALL_STATE(4835)] = 106319,
  [SMALL_STATE(4836)] = 106349,
  [SMALL_STATE(4837)] = 106383,
  [SMALL_STATE(4838)] = 106413,
  [SMALL_STATE(4839)] = 106447,
  [SMALL_STATE(4840)] = 106473,
  [SMALL_STATE(4841)] = 106503,
  [SMALL_STATE(4842)] = 106533,
  [SMALL_STATE(4843)] = 106563,
  [SMALL_STATE(4844)] = 106593,
  [SMALL_STATE(4845)] = 106623,
  [SMALL_STATE(4846)] = 106669,
  [SMALL_STATE(4847)] = 106703,
  [SMALL_STATE(4848)] = 106737,
  [SMALL_STATE(4849)] = 106771,
  [SMALL_STATE(4850)] = 106801,
  [SMALL_STATE(4851)] = 106831,
  [SMALL_STATE(4852)] = 106861,
  [SMALL_STATE(4853)] = 106887,
  [SMALL_STATE(4854)] = 106933,
  [SMALL_STATE(4855)] = 106967,
  [SMALL_STATE(4856)] = 107001,
  [SMALL_STATE(4857)] = 107035,
  [SMALL_STATE(4858)] = 107065,
  [SMALL_STATE(4859)] = 107095,
  [SMALL_STATE(4860)] = 107125,
  [SMALL_STATE(4861)] = 107155,
  [SMALL_STATE(4862)] = 107185,
  [SMALL_STATE(4863)] = 107219,
  [SMALL_STATE(4864)] = 107249,
  [SMALL_STATE(4865)] = 107283,
  [SMALL_STATE(4866)] = 107313,
  [SMALL_STATE(4867)] = 107347,
  [SMALL_STATE(4868)] = 107381,
  [SMALL_STATE(4869)] = 107415,
  [SMALL_STATE(4870)] = 107449,
  [SMALL_STATE(4871)] = 107483,
  [SMALL_STATE(4872)] = 107513,
  [SMALL_STATE(4873)] = 107547,
  [SMALL_STATE(4874)] = 107577,
  [SMALL_STATE(4875)] = 107609,
  [SMALL_STATE(4876)] = 107643,
  [SMALL_STATE(4877)] = 107689,
  [SMALL_STATE(4878)] = 107723,
  [SMALL_STATE(4879)] = 107757,
  [SMALL_STATE(4880)] = 107787,
  [SMALL_STATE(4881)] = 107821,
  [SMALL_STATE(4882)] = 107851,
  [SMALL_STATE(4883)] = 107881,
  [SMALL_STATE(4884)] = 107911,
  [SMALL_STATE(4885)] = 107941,
  [SMALL_STATE(4886)] = 107971,
  [SMALL_STATE(4887)] = 108005,
  [SMALL_STATE(4888)] = 108035,
  [SMALL_STATE(4889)] = 108069,
  [SMALL_STATE(4890)] = 108099,
  [SMALL_STATE(4891)] = 108133,
  [SMALL_STATE(4892)] = 108167,
  [SMALL_STATE(4893)] = 108197,
  [SMALL_STATE(4894)] = 108231,
  [SMALL_STATE(4895)] = 108257,
  [SMALL_STATE(4896)] = 108291,
  [SMALL_STATE(4897)] = 108337,
  [SMALL_STATE(4898)] = 108367,
  [SMALL_STATE(4899)] = 108397,
  [SMALL_STATE(4900)] = 108431,
  [SMALL_STATE(4901)] = 108465,
  [SMALL_STATE(4902)] = 108499,
  [SMALL_STATE(4903)] = 108529,
  [SMALL_STATE(4904)] = 108559,
  [SMALL_STATE(4905)] = 108593,
  [SMALL_STATE(4906)] = 108627,
  [SMALL_STATE(4907)] = 108661,
  [SMALL_STATE(4908)] = 108695,
  [SMALL_STATE(4909)] = 108729,
  [SMALL_STATE(4910)] = 108759,
  [SMALL_STATE(4911)] = 108787,
  [SMALL_STATE(4912)] = 108817,
  [SMALL_STATE(4913)] = 108847,
  [SMALL_STATE(4914)] = 108877,
  [SMALL_STATE(4915)] = 108907,
  [SMALL_STATE(4916)] = 108953,
  [SMALL_STATE(4917)] = 108987,
  [SMALL_STATE(4918)] = 109017,
  [SMALL_STATE(4919)] = 109051,
  [SMALL_STATE(4920)] = 109081,
  [SMALL_STATE(4921)] = 109127,
  [SMALL_STATE(4922)] = 109157,
  [SMALL_STATE(4923)] = 109187,
  [SMALL_STATE(4924)] = 109217,
  [SMALL_STATE(4925)] = 109247,
  [SMALL_STATE(4926)] = 109277,
  [SMALL_STATE(4927)] = 109307,
  [SMALL_STATE(4928)] = 109337,
  [SMALL_STATE(4929)] = 109367,
  [SMALL_STATE(4930)] = 109397,
  [SMALL_STATE(4931)] = 109427,
  [SMALL_STATE(4932)] = 109461,
  [SMALL_STATE(4933)] = 109491,
  [SMALL_STATE(4934)] = 109521,
  [SMALL_STATE(4935)] = 109551,
  [SMALL_STATE(4936)] = 109581,
  [SMALL_STATE(4937)] = 109611,
  [SMALL_STATE(4938)] = 109641,
  [SMALL_STATE(4939)] = 109675,
  [SMALL_STATE(4940)] = 109705,
  [SMALL_STATE(4941)] = 109751,
  [SMALL_STATE(4942)] = 109781,
  [SMALL_STATE(4943)] = 109815,
  [SMALL_STATE(4944)] = 109845,
  [SMALL_STATE(4945)] = 109875,
  [SMALL_STATE(4946)] = 109921,
  [SMALL_STATE(4947)] = 109955,
  [SMALL_STATE(4948)] = 109989,
  [SMALL_STATE(4949)] = 110023,
  [SMALL_STATE(4950)] = 110053,
  [SMALL_STATE(4951)] = 110087,
  [SMALL_STATE(4952)] = 110121,
  [SMALL_STATE(4953)] = 110151,
  [SMALL_STATE(4954)] = 110197,
  [SMALL_STATE(4955)] = 110227,
  [SMALL_STATE(4956)] = 110261,
  [SMALL_STATE(4957)] = 110291,
  [SMALL_STATE(4958)] = 110321,
  [SMALL_STATE(4959)] = 110355,
  [SMALL_STATE(4960)] = 110385,
  [SMALL_STATE(4961)] = 110415,
  [SMALL_STATE(4962)] = 110445,
  [SMALL_STATE(4963)] = 110473,
  [SMALL_STATE(4964)] = 110507,
  [SMALL_STATE(4965)] = 110537,
  [SMALL_STATE(4966)] = 110567,
  [SMALL_STATE(4967)] = 110601,
  [SMALL_STATE(4968)] = 110631,
  [SMALL_STATE(4969)] = 110665,
  [SMALL_STATE(4970)] = 110699,
  [SMALL_STATE(4971)] = 110733,
  [SMALL_STATE(4972)] = 110763,
  [SMALL_STATE(4973)] = 110793,
  [SMALL_STATE(4974)] = 110827,
  [SMALL_STATE(4975)] = 110857,
  [SMALL_STATE(4976)] = 110887,
  [SMALL_STATE(4977)] = 110917,
  [SMALL_STATE(4978)] = 110951,
  [SMALL_STATE(4979)] = 110997,
  [SMALL_STATE(4980)] = 111043,
  [SMALL_STATE(4981)] = 111066,
  [SMALL_STATE(4982)] = 111101,
  [SMALL_STATE(4983)] = 111136,
  [SMALL_STATE(4984)] = 111159,
  [SMALL_STATE(4985)] = 111194,
  [SMALL_STATE(4986)] = 111229,
  [SMALL_STATE(4987)] = 111264,
  [SMALL_STATE(4988)] = 111287,
  [SMALL_STATE(4989)] = 111322,
  [SMALL_STATE(4990)] = 111345,
  [SMALL_STATE(4991)] = 111378,
  [SMALL_STATE(4992)] = 111401,
  [SMALL_STATE(4993)] = 111436,
  [SMALL_STATE(4994)] = 111459,
  [SMALL_STATE(4995)] = 111482,
  [SMALL_STATE(4996)] = 111507,
  [SMALL_STATE(4997)] = 111540,
  [SMALL_STATE(4998)] = 111573,
  [SMALL_STATE(4999)] = 111596,
  [SMALL_STATE(5000)] = 111619,
  [SMALL_STATE(5001)] = 111654,
  [SMALL_STATE(5002)] = 111687,
  [SMALL_STATE(5003)] = 111710,
  [SMALL_STATE(5004)] = 111733,
  [SMALL_STATE(5005)] = 111766,
  [SMALL_STATE(5006)] = 111795,
  [SMALL_STATE(5007)] = 111825,
  [SMALL_STATE(5008)] = 111849,
  [SMALL_STATE(5009)] = 111869,
  [SMALL_STATE(5010)] = 111907,
  [SMALL_STATE(5011)] = 111937,
  [SMALL_STATE(5012)] = 111957,
  [SMALL_STATE(5013)] = 111995,
  [SMALL_STATE(5014)] = 112015,
  [SMALL_STATE(5015)] = 112039,
  [SMALL_STATE(5016)] = 112059,
  [SMALL_STATE(5017)] = 112079,
  [SMALL_STATE(5018)] = 112109,
  [SMALL_STATE(5019)] = 112147,
  [SMALL_STATE(5020)] = 112185,
  [SMALL_STATE(5021)] = 112205,
  [SMALL_STATE(5022)] = 112243,
  [SMALL_STATE(5023)] = 112269,
  [SMALL_STATE(5024)] = 112307,
  [SMALL_STATE(5025)] = 112345,
  [SMALL_STATE(5026)] = 112365,
  [SMALL_STATE(5027)] = 112403,
  [SMALL_STATE(5028)] = 112441,
  [SMALL_STATE(5029)] = 112461,
  [SMALL_STATE(5030)] = 112499,
  [SMALL_STATE(5031)] = 112537,
  [SMALL_STATE(5032)] = 112575,
  [SMALL_STATE(5033)] = 112613,
  [SMALL_STATE(5034)] = 112651,
  [SMALL_STATE(5035)] = 112681,
  [SMALL_STATE(5036)] = 112705,
  [SMALL_STATE(5037)] = 112743,
  [SMALL_STATE(5038)] = 112781,
  [SMALL_STATE(5039)] = 112801,
  [SMALL_STATE(5040)] = 112839,
  [SMALL_STATE(5041)] = 112877,
  [SMALL_STATE(5042)] = 112897,
  [SMALL_STATE(5043)] = 112927,
  [SMALL_STATE(5044)] = 112964,
  [SMALL_STATE(5045)] = 113001,
  [SMALL_STATE(5046)] = 113038,
  [SMALL_STATE(5047)] = 113061,
  [SMALL_STATE(5048)] = 113082,
  [SMALL_STATE(5049)] = 113103,
  [SMALL_STATE(5050)] = 113140,
  [SMALL_STATE(5051)] = 113177,
  [SMALL_STATE(5052)] = 113208,
  [SMALL_STATE(5053)] = 113229,
  [SMALL_STATE(5054)] = 113260,
  [SMALL_STATE(5055)] = 113285,
  [SMALL_STATE(5056)] = 113322,
  [SMALL_STATE(5057)] = 113353,
  [SMALL_STATE(5058)] = 113378,
  [SMALL_STATE(5059)] = 113415,
  [SMALL_STATE(5060)] = 113442,
  [SMALL_STATE(5061)] = 113465,
  [SMALL_STATE(5062)] = 113502,
  [SMALL_STATE(5063)] = 113539,
  [SMALL_STATE(5064)] = 113576,
  [SMALL_STATE(5065)] = 113603,
  [SMALL_STATE(5066)] = 113634,
  [SMALL_STATE(5067)] = 113671,
  [SMALL_STATE(5068)] = 113702,
  [SMALL_STATE(5069)] = 113739,
  [SMALL_STATE(5070)] = 113774,
  [SMALL_STATE(5071)] = 113796,
  [SMALL_STATE(5072)] = 113820,
  [SMALL_STATE(5073)] = 113840,
  [SMALL_STATE(5074)] = 113860,
  [SMALL_STATE(5075)] = 113888,
  [SMALL_STATE(5076)] = 113916,
  [SMALL_STATE(5077)] = 113942,
  [SMALL_STATE(5078)] = 113964,
  [SMALL_STATE(5079)] = 113992,
  [SMALL_STATE(5080)] = 114020,
  [SMALL_STATE(5081)] = 114042,
  [SMALL_STATE(5082)] = 114064,
  [SMALL_STATE(5083)] = 114086,
  [SMALL_STATE(5084)] = 114118,
  [SMALL_STATE(5085)] = 114140,
  [SMALL_STATE(5086)] = 114168,
  [SMALL_STATE(5087)] = 114202,
  [SMALL_STATE(5088)] = 114230,
  [SMALL_STATE(5089)] = 114258,
  [SMALL_STATE(5090)] = 114280,
  [SMALL_STATE(5091)] = 114305,
  [SMALL_STATE(5092)] = 114330,
  [SMALL_STATE(5093)] = 114359,
  [SMALL_STATE(5094)] = 114384,
  [SMALL_STATE(5095)] = 114409,
  [SMALL_STATE(5096)] = 114438,
  [SMALL_STATE(5097)] = 114465,
  [SMALL_STATE(5098)] = 114490,
  [SMALL_STATE(5099)] = 114515,
  [SMALL_STATE(5100)] = 114542,
  [SMALL_STATE(5101)] = 114567,
  [SMALL_STATE(5102)] = 114592,
  [SMALL_STATE(5103)] = 114619,
  [SMALL_STATE(5104)] = 114648,
  [SMALL_STATE(5105)] = 114675,
  [SMALL_STATE(5106)] = 114700,
  [SMALL_STATE(5107)] = 114729,
  [SMALL_STATE(5108)] = 114754,
  [SMALL_STATE(5109)] = 114781,
  [SMALL_STATE(5110)] = 114810,
  [SMALL_STATE(5111)] = 114835,
  [SMALL_STATE(5112)] = 114864,
  [SMALL_STATE(5113)] = 114893,
  [SMALL_STATE(5114)] = 114922,
  [SMALL_STATE(5115)] = 114947,
  [SMALL_STATE(5116)] = 114976,
  [SMALL_STATE(5117)] = 115001,
  [SMALL_STATE(5118)] = 115030,
  [SMALL_STATE(5119)] = 115055,
  [SMALL_STATE(5120)] = 115084,
  [SMALL_STATE(5121)] = 115109,
  [SMALL_STATE(5122)] = 115138,
  [SMALL_STATE(5123)] = 115167,
  [SMALL_STATE(5124)] = 115192,
  [SMALL_STATE(5125)] = 115221,
  [SMALL_STATE(5126)] = 115246,
  [SMALL_STATE(5127)] = 115275,
  [SMALL_STATE(5128)] = 115304,
  [SMALL_STATE(5129)] = 115333,
  [SMALL_STATE(5130)] = 115358,
  [SMALL_STATE(5131)] = 115387,
  [SMALL_STATE(5132)] = 115416,
  [SMALL_STATE(5133)] = 115441,
  [SMALL_STATE(5134)] = 115466,
  [SMALL_STATE(5135)] = 115491,
  [SMALL_STATE(5136)] = 115516,
  [SMALL_STATE(5137)] = 115541,
  [SMALL_STATE(5138)] = 115570,
  [SMALL_STATE(5139)] = 115595,
  [SMALL_STATE(5140)] = 115620,
  [SMALL_STATE(5141)] = 115645,
  [SMALL_STATE(5142)] = 115670,
  [SMALL_STATE(5143)] = 115692,
  [SMALL_STATE(5144)] = 115718,
  [SMALL_STATE(5145)] = 115740,
  [SMALL_STATE(5146)] = 115772,
  [SMALL_STATE(5147)] = 115794,
  [SMALL_STATE(5148)] = 115816,
  [SMALL_STATE(5149)] = 115842,
  [SMALL_STATE(5150)] = 115864,
  [SMALL_STATE(5151)] = 115890,
  [SMALL_STATE(5152)] = 115906,
  [SMALL_STATE(5153)] = 115928,
  [SMALL_STATE(5154)] = 115950,
  [SMALL_STATE(5155)] = 115968,
  [SMALL_STATE(5156)] = 115990,
  [SMALL_STATE(5157)] = 116016,
  [SMALL_STATE(5158)] = 116042,
  [SMALL_STATE(5159)] = 116064,
  [SMALL_STATE(5160)] = 116084,
  [SMALL_STATE(5161)] = 116106,
  [SMALL_STATE(5162)] = 116124,
  [SMALL_STATE(5163)] = 116150,
  [SMALL_STATE(5164)] = 116172,
  [SMALL_STATE(5165)] = 116188,
  [SMALL_STATE(5166)] = 116214,
  [SMALL_STATE(5167)] = 116236,
  [SMALL_STATE(5168)] = 116252,
  [SMALL_STATE(5169)] = 116274,
  [SMALL_STATE(5170)] = 116290,
  [SMALL_STATE(5171)] = 116312,
  [SMALL_STATE(5172)] = 116338,
  [SMALL_STATE(5173)] = 116360,
  [SMALL_STATE(5174)] = 116382,
  [SMALL_STATE(5175)] = 116408,
  [SMALL_STATE(5176)] = 116430,
  [SMALL_STATE(5177)] = 116456,
  [SMALL_STATE(5178)] = 116478,
  [SMALL_STATE(5179)] = 116494,
  [SMALL_STATE(5180)] = 116516,
  [SMALL_STATE(5181)] = 116536,
  [SMALL_STATE(5182)] = 116558,
  [SMALL_STATE(5183)] = 116576,
  [SMALL_STATE(5184)] = 116592,
  [SMALL_STATE(5185)] = 116614,
  [SMALL_STATE(5186)] = 116636,
  [SMALL_STATE(5187)] = 116668,
  [SMALL_STATE(5188)] = 116690,
  [SMALL_STATE(5189)] = 116716,
  [SMALL_STATE(5190)] = 116738,
  [SMALL_STATE(5191)] = 116756,
  [SMALL_STATE(5192)] = 116778,
  [SMALL_STATE(5193)] = 116794,
  [SMALL_STATE(5194)] = 116816,
  [SMALL_STATE(5195)] = 116848,
  [SMALL_STATE(5196)] = 116870,
  [SMALL_STATE(5197)] = 116892,
  [SMALL_STATE(5198)] = 116910,
  [SMALL_STATE(5199)] = 116926,
  [SMALL_STATE(5200)] = 116948,
  [SMALL_STATE(5201)] = 116968,
  [SMALL_STATE(5202)] = 116990,
  [SMALL_STATE(5203)] = 117012,
  [SMALL_STATE(5204)] = 117038,
  [SMALL_STATE(5205)] = 117060,
  [SMALL_STATE(5206)] = 117082,
  [SMALL_STATE(5207)] = 117104,
  [SMALL_STATE(5208)] = 117126,
  [SMALL_STATE(5209)] = 117143,
  [SMALL_STATE(5210)] = 117164,
  [SMALL_STATE(5211)] = 117181,
  [SMALL_STATE(5212)] = 117202,
  [SMALL_STATE(5213)] = 117223,
  [SMALL_STATE(5214)] = 117240,
  [SMALL_STATE(5215)] = 117257,
  [SMALL_STATE(5216)] = 117274,
  [SMALL_STATE(5217)] = 117297,
  [SMALL_STATE(5218)] = 117318,
  [SMALL_STATE(5219)] = 117339,
  [SMALL_STATE(5220)] = 117356,
  [SMALL_STATE(5221)] = 117373,
  [SMALL_STATE(5222)] = 117390,
  [SMALL_STATE(5223)] = 117413,
  [SMALL_STATE(5224)] = 117434,
  [SMALL_STATE(5225)] = 117451,
  [SMALL_STATE(5226)] = 117474,
  [SMALL_STATE(5227)] = 117497,
  [SMALL_STATE(5228)] = 117514,
  [SMALL_STATE(5229)] = 117537,
  [SMALL_STATE(5230)] = 117554,
  [SMALL_STATE(5231)] = 117575,
  [SMALL_STATE(5232)] = 117592,
  [SMALL_STATE(5233)] = 117609,
  [SMALL_STATE(5234)] = 117628,
  [SMALL_STATE(5235)] = 117649,
  [SMALL_STATE(5236)] = 117672,
  [SMALL_STATE(5237)] = 117693,
  [SMALL_STATE(5238)] = 117716,
  [SMALL_STATE(5239)] = 117738,
  [SMALL_STATE(5240)] = 117760,
  [SMALL_STATE(5241)] = 117782,
  [SMALL_STATE(5242)] = 117800,
  [SMALL_STATE(5243)] = 117824,
  [SMALL_STATE(5244)] = 117848,
  [SMALL_STATE(5245)] = 117864,
  [SMALL_STATE(5246)] = 117886,
  [SMALL_STATE(5247)] = 117908,
  [SMALL_STATE(5248)] = 117926,
  [SMALL_STATE(5249)] = 117948,
  [SMALL_STATE(5250)] = 117966,
  [SMALL_STATE(5251)] = 117986,
  [SMALL_STATE(5252)] = 118004,
  [SMALL_STATE(5253)] = 118028,
  [SMALL_STATE(5254)] = 118046,
  [SMALL_STATE(5255)] = 118070,
  [SMALL_STATE(5256)] = 118094,
  [SMALL_STATE(5257)] = 118118,
  [SMALL_STATE(5258)] = 118138,
  [SMALL_STATE(5259)] = 118160,
  [SMALL_STATE(5260)] = 118178,
  [SMALL_STATE(5261)] = 118202,
  [SMALL_STATE(5262)] = 118226,
  [SMALL_STATE(5263)] = 118244,
  [SMALL_STATE(5264)] = 118266,
  [SMALL_STATE(5265)] = 118286,
  [SMALL_STATE(5266)] = 118304,
  [SMALL_STATE(5267)] = 118326,
  [SMALL_STATE(5268)] = 118348,
  [SMALL_STATE(5269)] = 118374,
  [SMALL_STATE(5270)] = 118396,
  [SMALL_STATE(5271)] = 118416,
  [SMALL_STATE(5272)] = 118438,
  [SMALL_STATE(5273)] = 118460,
  [SMALL_STATE(5274)] = 118482,
  [SMALL_STATE(5275)] = 118500,
  [SMALL_STATE(5276)] = 118518,
  [SMALL_STATE(5277)] = 118536,
  [SMALL_STATE(5278)] = 118554,
  [SMALL_STATE(5279)] = 118576,
  [SMALL_STATE(5280)] = 118600,
  [SMALL_STATE(5281)] = 118622,
  [SMALL_STATE(5282)] = 118640,
  [SMALL_STATE(5283)] = 118660,
  [SMALL_STATE(5284)] = 118682,
  [SMALL_STATE(5285)] = 118702,
  [SMALL_STATE(5286)] = 118722,
  [SMALL_STATE(5287)] = 118744,
  [SMALL_STATE(5288)] = 118768,
  [SMALL_STATE(5289)] = 118792,
  [SMALL_STATE(5290)] = 118810,
  [SMALL_STATE(5291)] = 118832,
  [SMALL_STATE(5292)] = 118850,
  [SMALL_STATE(5293)] = 118872,
  [SMALL_STATE(5294)] = 118890,
  [SMALL_STATE(5295)] = 118912,
  [SMALL_STATE(5296)] = 118926,
  [SMALL_STATE(5297)] = 118948,
  [SMALL_STATE(5298)] = 118970,
  [SMALL_STATE(5299)] = 118990,
  [SMALL_STATE(5300)] = 119012,
  [SMALL_STATE(5301)] = 119034,
  [SMALL_STATE(5302)] = 119058,
  [SMALL_STATE(5303)] = 119076,
  [SMALL_STATE(5304)] = 119094,
  [SMALL_STATE(5305)] = 119118,
  [SMALL_STATE(5306)] = 119140,
  [SMALL_STATE(5307)] = 119158,
  [SMALL_STATE(5308)] = 119176,
  [SMALL_STATE(5309)] = 119198,
  [SMALL_STATE(5310)] = 119216,
  [SMALL_STATE(5311)] = 119234,
  [SMALL_STATE(5312)] = 119252,
  [SMALL_STATE(5313)] = 119272,
  [SMALL_STATE(5314)] = 119290,
  [SMALL_STATE(5315)] = 119312,
  [SMALL_STATE(5316)] = 119336,
  [SMALL_STATE(5317)] = 119356,
  [SMALL_STATE(5318)] = 119380,
  [SMALL_STATE(5319)] = 119402,
  [SMALL_STATE(5320)] = 119420,
  [SMALL_STATE(5321)] = 119436,
  [SMALL_STATE(5322)] = 119458,
  [SMALL_STATE(5323)] = 119480,
  [SMALL_STATE(5324)] = 119506,
  [SMALL_STATE(5325)] = 119530,
  [SMALL_STATE(5326)] = 119545,
  [SMALL_STATE(5327)] = 119568,
  [SMALL_STATE(5328)] = 119591,
  [SMALL_STATE(5329)] = 119614,
  [SMALL_STATE(5330)] = 119627,
  [SMALL_STATE(5331)] = 119648,
  [SMALL_STATE(5332)] = 119671,
  [SMALL_STATE(5333)] = 119694,
  [SMALL_STATE(5334)] = 119717,
  [SMALL_STATE(5335)] = 119740,
  [SMALL_STATE(5336)] = 119753,
  [SMALL_STATE(5337)] = 119770,
  [SMALL_STATE(5338)] = 119793,
  [SMALL_STATE(5339)] = 119814,
  [SMALL_STATE(5340)] = 119837,
  [SMALL_STATE(5341)] = 119860,
  [SMALL_STATE(5342)] = 119881,
  [SMALL_STATE(5343)] = 119900,
  [SMALL_STATE(5344)] = 119921,
  [SMALL_STATE(5345)] = 119942,
  [SMALL_STATE(5346)] = 119965,
  [SMALL_STATE(5347)] = 119988,
  [SMALL_STATE(5348)] = 120011,
  [SMALL_STATE(5349)] = 120026,
  [SMALL_STATE(5350)] = 120049,
  [SMALL_STATE(5351)] = 120072,
  [SMALL_STATE(5352)] = 120095,
  [SMALL_STATE(5353)] = 120118,
  [SMALL_STATE(5354)] = 120141,
  [SMALL_STATE(5355)] = 120164,
  [SMALL_STATE(5356)] = 120187,
  [SMALL_STATE(5357)] = 120210,
  [SMALL_STATE(5358)] = 120233,
  [SMALL_STATE(5359)] = 120256,
  [SMALL_STATE(5360)] = 120279,
  [SMALL_STATE(5361)] = 120302,
  [SMALL_STATE(5362)] = 120325,
  [SMALL_STATE(5363)] = 120348,
  [SMALL_STATE(5364)] = 120371,
  [SMALL_STATE(5365)] = 120394,
  [SMALL_STATE(5366)] = 120417,
  [SMALL_STATE(5367)] = 120440,
  [SMALL_STATE(5368)] = 120463,
  [SMALL_STATE(5369)] = 120486,
  [SMALL_STATE(5370)] = 120509,
  [SMALL_STATE(5371)] = 120532,
  [SMALL_STATE(5372)] = 120555,
  [SMALL_STATE(5373)] = 120578,
  [SMALL_STATE(5374)] = 120601,
  [SMALL_STATE(5375)] = 120622,
  [SMALL_STATE(5376)] = 120645,
  [SMALL_STATE(5377)] = 120668,
  [SMALL_STATE(5378)] = 120691,
  [SMALL_STATE(5379)] = 120708,
  [SMALL_STATE(5380)] = 120731,
  [SMALL_STATE(5381)] = 120754,
  [SMALL_STATE(5382)] = 120777,
  [SMALL_STATE(5383)] = 120800,
  [SMALL_STATE(5384)] = 120823,
  [SMALL_STATE(5385)] = 120846,
  [SMALL_STATE(5386)] = 120869,
  [SMALL_STATE(5387)] = 120892,
  [SMALL_STATE(5388)] = 120915,
  [SMALL_STATE(5389)] = 120938,
  [SMALL_STATE(5390)] = 120959,
  [SMALL_STATE(5391)] = 120982,
  [SMALL_STATE(5392)] = 121005,
  [SMALL_STATE(5393)] = 121028,
  [SMALL_STATE(5394)] = 121051,
  [SMALL_STATE(5395)] = 121074,
  [SMALL_STATE(5396)] = 121097,
  [SMALL_STATE(5397)] = 121114,
  [SMALL_STATE(5398)] = 121137,
  [SMALL_STATE(5399)] = 121158,
  [SMALL_STATE(5400)] = 121181,
  [SMALL_STATE(5401)] = 121194,
  [SMALL_STATE(5402)] = 121217,
  [SMALL_STATE(5403)] = 121240,
  [SMALL_STATE(5404)] = 121263,
  [SMALL_STATE(5405)] = 121286,
  [SMALL_STATE(5406)] = 121309,
  [SMALL_STATE(5407)] = 121332,
  [SMALL_STATE(5408)] = 121353,
  [SMALL_STATE(5409)] = 121376,
  [SMALL_STATE(5410)] = 121399,
  [SMALL_STATE(5411)] = 121422,
  [SMALL_STATE(5412)] = 121445,
  [SMALL_STATE(5413)] = 121468,
  [SMALL_STATE(5414)] = 121491,
  [SMALL_STATE(5415)] = 121514,
  [SMALL_STATE(5416)] = 121537,
  [SMALL_STATE(5417)] = 121558,
  [SMALL_STATE(5418)] = 121581,
  [SMALL_STATE(5419)] = 121604,
  [SMALL_STATE(5420)] = 121627,
  [SMALL_STATE(5421)] = 121650,
  [SMALL_STATE(5422)] = 121673,
  [SMALL_STATE(5423)] = 121696,
  [SMALL_STATE(5424)] = 121719,
  [SMALL_STATE(5425)] = 121742,
  [SMALL_STATE(5426)] = 121765,
  [SMALL_STATE(5427)] = 121788,
  [SMALL_STATE(5428)] = 121809,
  [SMALL_STATE(5429)] = 121830,
  [SMALL_STATE(5430)] = 121853,
  [SMALL_STATE(5431)] = 121876,
  [SMALL_STATE(5432)] = 121897,
  [SMALL_STATE(5433)] = 121920,
  [SMALL_STATE(5434)] = 121943,
  [SMALL_STATE(5435)] = 121966,
  [SMALL_STATE(5436)] = 121989,
  [SMALL_STATE(5437)] = 122012,
  [SMALL_STATE(5438)] = 122035,
  [SMALL_STATE(5439)] = 122058,
  [SMALL_STATE(5440)] = 122081,
  [SMALL_STATE(5441)] = 122104,
  [SMALL_STATE(5442)] = 122127,
  [SMALL_STATE(5443)] = 122144,
  [SMALL_STATE(5444)] = 122167,
  [SMALL_STATE(5445)] = 122190,
  [SMALL_STATE(5446)] = 122213,
  [SMALL_STATE(5447)] = 122236,
  [SMALL_STATE(5448)] = 122259,
  [SMALL_STATE(5449)] = 122272,
  [SMALL_STATE(5450)] = 122289,
  [SMALL_STATE(5451)] = 122312,
  [SMALL_STATE(5452)] = 122335,
  [SMALL_STATE(5453)] = 122358,
  [SMALL_STATE(5454)] = 122381,
  [SMALL_STATE(5455)] = 122404,
  [SMALL_STATE(5456)] = 122427,
  [SMALL_STATE(5457)] = 122450,
  [SMALL_STATE(5458)] = 122473,
  [SMALL_STATE(5459)] = 122496,
  [SMALL_STATE(5460)] = 122519,
  [SMALL_STATE(5461)] = 122542,
  [SMALL_STATE(5462)] = 122565,
  [SMALL_STATE(5463)] = 122588,
  [SMALL_STATE(5464)] = 122611,
  [SMALL_STATE(5465)] = 122632,
  [SMALL_STATE(5466)] = 122655,
  [SMALL_STATE(5467)] = 122678,
  [SMALL_STATE(5468)] = 122701,
  [SMALL_STATE(5469)] = 122724,
  [SMALL_STATE(5470)] = 122747,
  [SMALL_STATE(5471)] = 122770,
  [SMALL_STATE(5472)] = 122793,
  [SMALL_STATE(5473)] = 122814,
  [SMALL_STATE(5474)] = 122837,
  [SMALL_STATE(5475)] = 122860,
  [SMALL_STATE(5476)] = 122883,
  [SMALL_STATE(5477)] = 122896,
  [SMALL_STATE(5478)] = 122917,
  [SMALL_STATE(5479)] = 122940,
  [SMALL_STATE(5480)] = 122963,
  [SMALL_STATE(5481)] = 122984,
  [SMALL_STATE(5482)] = 123007,
  [SMALL_STATE(5483)] = 123030,
  [SMALL_STATE(5484)] = 123046,
  [SMALL_STATE(5485)] = 123066,
  [SMALL_STATE(5486)] = 123086,
  [SMALL_STATE(5487)] = 123104,
  [SMALL_STATE(5488)] = 123124,
  [SMALL_STATE(5489)] = 123144,
  [SMALL_STATE(5490)] = 123164,
  [SMALL_STATE(5491)] = 123184,
  [SMALL_STATE(5492)] = 123204,
  [SMALL_STATE(5493)] = 123224,
  [SMALL_STATE(5494)] = 123244,
  [SMALL_STATE(5495)] = 123264,
  [SMALL_STATE(5496)] = 123284,
  [SMALL_STATE(5497)] = 123304,
  [SMALL_STATE(5498)] = 123324,
  [SMALL_STATE(5499)] = 123344,
  [SMALL_STATE(5500)] = 123364,
  [SMALL_STATE(5501)] = 123384,
  [SMALL_STATE(5502)] = 123404,
  [SMALL_STATE(5503)] = 123418,
  [SMALL_STATE(5504)] = 123438,
  [SMALL_STATE(5505)] = 123458,
  [SMALL_STATE(5506)] = 123478,
  [SMALL_STATE(5507)] = 123498,
  [SMALL_STATE(5508)] = 123518,
  [SMALL_STATE(5509)] = 123538,
  [SMALL_STATE(5510)] = 123558,
  [SMALL_STATE(5511)] = 123578,
  [SMALL_STATE(5512)] = 123598,
  [SMALL_STATE(5513)] = 123618,
  [SMALL_STATE(5514)] = 123638,
  [SMALL_STATE(5515)] = 123658,
  [SMALL_STATE(5516)] = 123678,
  [SMALL_STATE(5517)] = 123698,
  [SMALL_STATE(5518)] = 123716,
  [SMALL_STATE(5519)] = 123736,
  [SMALL_STATE(5520)] = 123752,
  [SMALL_STATE(5521)] = 123770,
  [SMALL_STATE(5522)] = 123790,
  [SMALL_STATE(5523)] = 123810,
  [SMALL_STATE(5524)] = 123830,
  [SMALL_STATE(5525)] = 123842,
  [SMALL_STATE(5526)] = 123860,
  [SMALL_STATE(5527)] = 123880,
  [SMALL_STATE(5528)] = 123900,
  [SMALL_STATE(5529)] = 123916,
  [SMALL_STATE(5530)] = 123936,
  [SMALL_STATE(5531)] = 123956,
  [SMALL_STATE(5532)] = 123976,
  [SMALL_STATE(5533)] = 123996,
  [SMALL_STATE(5534)] = 124016,
  [SMALL_STATE(5535)] = 124036,
  [SMALL_STATE(5536)] = 124056,
  [SMALL_STATE(5537)] = 124076,
  [SMALL_STATE(5538)] = 124096,
  [SMALL_STATE(5539)] = 124116,
  [SMALL_STATE(5540)] = 124136,
  [SMALL_STATE(5541)] = 124156,
  [SMALL_STATE(5542)] = 124176,
  [SMALL_STATE(5543)] = 124192,
  [SMALL_STATE(5544)] = 124212,
  [SMALL_STATE(5545)] = 124232,
  [SMALL_STATE(5546)] = 124248,
  [SMALL_STATE(5547)] = 124268,
  [SMALL_STATE(5548)] = 124288,
  [SMALL_STATE(5549)] = 124308,
  [SMALL_STATE(5550)] = 124328,
  [SMALL_STATE(5551)] = 124348,
  [SMALL_STATE(5552)] = 124364,
  [SMALL_STATE(5553)] = 124384,
  [SMALL_STATE(5554)] = 124396,
  [SMALL_STATE(5555)] = 124414,
  [SMALL_STATE(5556)] = 124434,
  [SMALL_STATE(5557)] = 124454,
  [SMALL_STATE(5558)] = 124474,
  [SMALL_STATE(5559)] = 124494,
  [SMALL_STATE(5560)] = 124514,
  [SMALL_STATE(5561)] = 124532,
  [SMALL_STATE(5562)] = 124552,
  [SMALL_STATE(5563)] = 124572,
  [SMALL_STATE(5564)] = 124589,
  [SMALL_STATE(5565)] = 124600,
  [SMALL_STATE(5566)] = 124615,
  [SMALL_STATE(5567)] = 124626,
  [SMALL_STATE(5568)] = 124637,
  [SMALL_STATE(5569)] = 124654,
  [SMALL_STATE(5570)] = 124669,
  [SMALL_STATE(5571)] = 124686,
  [SMALL_STATE(5572)] = 124703,
  [SMALL_STATE(5573)] = 124718,
  [SMALL_STATE(5574)] = 124735,
  [SMALL_STATE(5575)] = 124748,
  [SMALL_STATE(5576)] = 124765,
  [SMALL_STATE(5577)] = 124780,
  [SMALL_STATE(5578)] = 124797,
  [SMALL_STATE(5579)] = 124810,
  [SMALL_STATE(5580)] = 124825,
  [SMALL_STATE(5581)] = 124842,
  [SMALL_STATE(5582)] = 124853,
  [SMALL_STATE(5583)] = 124870,
  [SMALL_STATE(5584)] = 124885,
  [SMALL_STATE(5585)] = 124902,
  [SMALL_STATE(5586)] = 124917,
  [SMALL_STATE(5587)] = 124932,
  [SMALL_STATE(5588)] = 124945,
  [SMALL_STATE(5589)] = 124960,
  [SMALL_STATE(5590)] = 124973,
  [SMALL_STATE(5591)] = 124984,
  [SMALL_STATE(5592)] = 124995,
  [SMALL_STATE(5593)] = 125006,
  [SMALL_STATE(5594)] = 125021,
  [SMALL_STATE(5595)] = 125038,
  [SMALL_STATE(5596)] = 125049,
  [SMALL_STATE(5597)] = 125062,
  [SMALL_STATE(5598)] = 125077,
  [SMALL_STATE(5599)] = 125088,
  [SMALL_STATE(5600)] = 125101,
  [SMALL_STATE(5601)] = 125112,
  [SMALL_STATE(5602)] = 125123,
  [SMALL_STATE(5603)] = 125134,
  [SMALL_STATE(5604)] = 125151,
  [SMALL_STATE(5605)] = 125168,
  [SMALL_STATE(5606)] = 125179,
  [SMALL_STATE(5607)] = 125194,
  [SMALL_STATE(5608)] = 125205,
  [SMALL_STATE(5609)] = 125220,
  [SMALL_STATE(5610)] = 125235,
  [SMALL_STATE(5611)] = 125252,
  [SMALL_STATE(5612)] = 125267,
  [SMALL_STATE(5613)] = 125282,
  [SMALL_STATE(5614)] = 125297,
  [SMALL_STATE(5615)] = 125312,
  [SMALL_STATE(5616)] = 125329,
  [SMALL_STATE(5617)] = 125344,
  [SMALL_STATE(5618)] = 125361,
  [SMALL_STATE(5619)] = 125376,
  [SMALL_STATE(5620)] = 125391,
  [SMALL_STATE(5621)] = 125404,
  [SMALL_STATE(5622)] = 125415,
  [SMALL_STATE(5623)] = 125430,
  [SMALL_STATE(5624)] = 125447,
  [SMALL_STATE(5625)] = 125458,
  [SMALL_STATE(5626)] = 125473,
  [SMALL_STATE(5627)] = 125490,
  [SMALL_STATE(5628)] = 125501,
  [SMALL_STATE(5629)] = 125516,
  [SMALL_STATE(5630)] = 125527,
  [SMALL_STATE(5631)] = 125542,
  [SMALL_STATE(5632)] = 125553,
  [SMALL_STATE(5633)] = 125564,
  [SMALL_STATE(5634)] = 125581,
  [SMALL_STATE(5635)] = 125592,
  [SMALL_STATE(5636)] = 125603,
  [SMALL_STATE(5637)] = 125620,
  [SMALL_STATE(5638)] = 125631,
  [SMALL_STATE(5639)] = 125646,
  [SMALL_STATE(5640)] = 125661,
  [SMALL_STATE(5641)] = 125676,
  [SMALL_STATE(5642)] = 125693,
  [SMALL_STATE(5643)] = 125704,
  [SMALL_STATE(5644)] = 125721,
  [SMALL_STATE(5645)] = 125736,
  [SMALL_STATE(5646)] = 125751,
  [SMALL_STATE(5647)] = 125766,
  [SMALL_STATE(5648)] = 125777,
  [SMALL_STATE(5649)] = 125792,
  [SMALL_STATE(5650)] = 125803,
  [SMALL_STATE(5651)] = 125818,
  [SMALL_STATE(5652)] = 125829,
  [SMALL_STATE(5653)] = 125846,
  [SMALL_STATE(5654)] = 125857,
  [SMALL_STATE(5655)] = 125868,
  [SMALL_STATE(5656)] = 125883,
  [SMALL_STATE(5657)] = 125900,
  [SMALL_STATE(5658)] = 125911,
  [SMALL_STATE(5659)] = 125922,
  [SMALL_STATE(5660)] = 125933,
  [SMALL_STATE(5661)] = 125950,
  [SMALL_STATE(5662)] = 125961,
  [SMALL_STATE(5663)] = 125972,
  [SMALL_STATE(5664)] = 125989,
  [SMALL_STATE(5665)] = 126000,
  [SMALL_STATE(5666)] = 126011,
  [SMALL_STATE(5667)] = 126022,
  [SMALL_STATE(5668)] = 126039,
  [SMALL_STATE(5669)] = 126054,
  [SMALL_STATE(5670)] = 126065,
  [SMALL_STATE(5671)] = 126082,
  [SMALL_STATE(5672)] = 126093,
  [SMALL_STATE(5673)] = 126104,
  [SMALL_STATE(5674)] = 126115,
  [SMALL_STATE(5675)] = 126130,
  [SMALL_STATE(5676)] = 126141,
  [SMALL_STATE(5677)] = 126152,
  [SMALL_STATE(5678)] = 126163,
  [SMALL_STATE(5679)] = 126178,
  [SMALL_STATE(5680)] = 126189,
  [SMALL_STATE(5681)] = 126204,
  [SMALL_STATE(5682)] = 126215,
  [SMALL_STATE(5683)] = 126226,
  [SMALL_STATE(5684)] = 126237,
  [SMALL_STATE(5685)] = 126248,
  [SMALL_STATE(5686)] = 126265,
  [SMALL_STATE(5687)] = 126282,
  [SMALL_STATE(5688)] = 126293,
  [SMALL_STATE(5689)] = 126308,
  [SMALL_STATE(5690)] = 126319,
  [SMALL_STATE(5691)] = 126330,
  [SMALL_STATE(5692)] = 126341,
  [SMALL_STATE(5693)] = 126358,
  [SMALL_STATE(5694)] = 126373,
  [SMALL_STATE(5695)] = 126388,
  [SMALL_STATE(5696)] = 126399,
  [SMALL_STATE(5697)] = 126410,
  [SMALL_STATE(5698)] = 126421,
  [SMALL_STATE(5699)] = 126432,
  [SMALL_STATE(5700)] = 126449,
  [SMALL_STATE(5701)] = 126464,
  [SMALL_STATE(5702)] = 126479,
  [SMALL_STATE(5703)] = 126496,
  [SMALL_STATE(5704)] = 126509,
  [SMALL_STATE(5705)] = 126522,
  [SMALL_STATE(5706)] = 126533,
  [SMALL_STATE(5707)] = 126550,
  [SMALL_STATE(5708)] = 126565,
  [SMALL_STATE(5709)] = 126582,
  [SMALL_STATE(5710)] = 126599,
  [SMALL_STATE(5711)] = 126614,
  [SMALL_STATE(5712)] = 126631,
  [SMALL_STATE(5713)] = 126648,
  [SMALL_STATE(5714)] = 126663,
  [SMALL_STATE(5715)] = 126676,
  [SMALL_STATE(5716)] = 126691,
  [SMALL_STATE(5717)] = 126708,
  [SMALL_STATE(5718)] = 126725,
  [SMALL_STATE(5719)] = 126740,
  [SMALL_STATE(5720)] = 126757,
  [SMALL_STATE(5721)] = 126772,
  [SMALL_STATE(5722)] = 126787,
  [SMALL_STATE(5723)] = 126802,
  [SMALL_STATE(5724)] = 126815,
  [SMALL_STATE(5725)] = 126830,
  [SMALL_STATE(5726)] = 126847,
  [SMALL_STATE(5727)] = 126858,
  [SMALL_STATE(5728)] = 126875,
  [SMALL_STATE(5729)] = 126890,
  [SMALL_STATE(5730)] = 126905,
  [SMALL_STATE(5731)] = 126918,
  [SMALL_STATE(5732)] = 126932,
  [SMALL_STATE(5733)] = 126946,
  [SMALL_STATE(5734)] = 126960,
  [SMALL_STATE(5735)] = 126974,
  [SMALL_STATE(5736)] = 126988,
  [SMALL_STATE(5737)] = 127002,
  [SMALL_STATE(5738)] = 127016,
  [SMALL_STATE(5739)] = 127030,
  [SMALL_STATE(5740)] = 127044,
  [SMALL_STATE(5741)] = 127058,
  [SMALL_STATE(5742)] = 127072,
  [SMALL_STATE(5743)] = 127086,
  [SMALL_STATE(5744)] = 127100,
  [SMALL_STATE(5745)] = 127114,
  [SMALL_STATE(5746)] = 127128,
  [SMALL_STATE(5747)] = 127142,
  [SMALL_STATE(5748)] = 127156,
  [SMALL_STATE(5749)] = 127170,
  [SMALL_STATE(5750)] = 127184,
  [SMALL_STATE(5751)] = 127198,
  [SMALL_STATE(5752)] = 127212,
  [SMALL_STATE(5753)] = 127226,
  [SMALL_STATE(5754)] = 127240,
  [SMALL_STATE(5755)] = 127254,
  [SMALL_STATE(5756)] = 127268,
  [SMALL_STATE(5757)] = 127282,
  [SMALL_STATE(5758)] = 127296,
  [SMALL_STATE(5759)] = 127310,
  [SMALL_STATE(5760)] = 127324,
  [SMALL_STATE(5761)] = 127338,
  [SMALL_STATE(5762)] = 127350,
  [SMALL_STATE(5763)] = 127364,
  [SMALL_STATE(5764)] = 127378,
  [SMALL_STATE(5765)] = 127392,
  [SMALL_STATE(5766)] = 127406,
  [SMALL_STATE(5767)] = 127420,
  [SMALL_STATE(5768)] = 127434,
  [SMALL_STATE(5769)] = 127448,
  [SMALL_STATE(5770)] = 127462,
  [SMALL_STATE(5771)] = 127476,
  [SMALL_STATE(5772)] = 127490,
  [SMALL_STATE(5773)] = 127504,
  [SMALL_STATE(5774)] = 127518,
  [SMALL_STATE(5775)] = 127532,
  [SMALL_STATE(5776)] = 127546,
  [SMALL_STATE(5777)] = 127560,
  [SMALL_STATE(5778)] = 127574,
  [SMALL_STATE(5779)] = 127588,
  [SMALL_STATE(5780)] = 127602,
  [SMALL_STATE(5781)] = 127616,
  [SMALL_STATE(5782)] = 127630,
  [SMALL_STATE(5783)] = 127644,
  [SMALL_STATE(5784)] = 127658,
  [SMALL_STATE(5785)] = 127672,
  [SMALL_STATE(5786)] = 127686,
  [SMALL_STATE(5787)] = 127700,
  [SMALL_STATE(5788)] = 127714,
  [SMALL_STATE(5789)] = 127728,
  [SMALL_STATE(5790)] = 127742,
  [SMALL_STATE(5791)] = 127756,
  [SMALL_STATE(5792)] = 127770,
  [SMALL_STATE(5793)] = 127784,
  [SMALL_STATE(5794)] = 127798,
  [SMALL_STATE(5795)] = 127812,
  [SMALL_STATE(5796)] = 127824,
  [SMALL_STATE(5797)] = 127838,
  [SMALL_STATE(5798)] = 127852,
  [SMALL_STATE(5799)] = 127866,
  [SMALL_STATE(5800)] = 127880,
  [SMALL_STATE(5801)] = 127894,
  [SMALL_STATE(5802)] = 127908,
  [SMALL_STATE(5803)] = 127922,
  [SMALL_STATE(5804)] = 127936,
  [SMALL_STATE(5805)] = 127950,
  [SMALL_STATE(5806)] = 127964,
  [SMALL_STATE(5807)] = 127978,
  [SMALL_STATE(5808)] = 127992,
  [SMALL_STATE(5809)] = 128006,
  [SMALL_STATE(5810)] = 128020,
  [SMALL_STATE(5811)] = 128034,
  [SMALL_STATE(5812)] = 128048,
  [SMALL_STATE(5813)] = 128062,
  [SMALL_STATE(5814)] = 128076,
  [SMALL_STATE(5815)] = 128090,
  [SMALL_STATE(5816)] = 128104,
  [SMALL_STATE(5817)] = 128118,
  [SMALL_STATE(5818)] = 128132,
  [SMALL_STATE(5819)] = 128146,
  [SMALL_STATE(5820)] = 128160,
  [SMALL_STATE(5821)] = 128174,
  [SMALL_STATE(5822)] = 128188,
  [SMALL_STATE(5823)] = 128202,
  [SMALL_STATE(5824)] = 128216,
  [SMALL_STATE(5825)] = 128230,
  [SMALL_STATE(5826)] = 128244,
  [SMALL_STATE(5827)] = 128258,
  [SMALL_STATE(5828)] = 128272,
  [SMALL_STATE(5829)] = 128286,
  [SMALL_STATE(5830)] = 128300,
  [SMALL_STATE(5831)] = 128314,
  [SMALL_STATE(5832)] = 128328,
  [SMALL_STATE(5833)] = 128342,
  [SMALL_STATE(5834)] = 128356,
  [SMALL_STATE(5835)] = 128370,
  [SMALL_STATE(5836)] = 128384,
  [SMALL_STATE(5837)] = 128398,
  [SMALL_STATE(5838)] = 128412,
  [SMALL_STATE(5839)] = 128426,
  [SMALL_STATE(5840)] = 128440,
  [SMALL_STATE(5841)] = 128454,
  [SMALL_STATE(5842)] = 128468,
  [SMALL_STATE(5843)] = 128482,
  [SMALL_STATE(5844)] = 128496,
  [SMALL_STATE(5845)] = 128510,
  [SMALL_STATE(5846)] = 128524,
  [SMALL_STATE(5847)] = 128538,
  [SMALL_STATE(5848)] = 128552,
  [SMALL_STATE(5849)] = 128566,
  [SMALL_STATE(5850)] = 128580,
  [SMALL_STATE(5851)] = 128594,
  [SMALL_STATE(5852)] = 128608,
  [SMALL_STATE(5853)] = 128622,
  [SMALL_STATE(5854)] = 128636,
  [SMALL_STATE(5855)] = 128650,
  [SMALL_STATE(5856)] = 128664,
  [SMALL_STATE(5857)] = 128678,
  [SMALL_STATE(5858)] = 128692,
  [SMALL_STATE(5859)] = 128706,
  [SMALL_STATE(5860)] = 128718,
  [SMALL_STATE(5861)] = 128732,
  [SMALL_STATE(5862)] = 128746,
  [SMALL_STATE(5863)] = 128760,
  [SMALL_STATE(5864)] = 128774,
  [SMALL_STATE(5865)] = 128788,
  [SMALL_STATE(5866)] = 128802,
  [SMALL_STATE(5867)] = 128816,
  [SMALL_STATE(5868)] = 128830,
  [SMALL_STATE(5869)] = 128844,
  [SMALL_STATE(5870)] = 128858,
  [SMALL_STATE(5871)] = 128872,
  [SMALL_STATE(5872)] = 128886,
  [SMALL_STATE(5873)] = 128900,
  [SMALL_STATE(5874)] = 128914,
  [SMALL_STATE(5875)] = 128928,
  [SMALL_STATE(5876)] = 128942,
  [SMALL_STATE(5877)] = 128956,
  [SMALL_STATE(5878)] = 128970,
  [SMALL_STATE(5879)] = 128984,
  [SMALL_STATE(5880)] = 128998,
  [SMALL_STATE(5881)] = 129012,
  [SMALL_STATE(5882)] = 129026,
  [SMALL_STATE(5883)] = 129040,
  [SMALL_STATE(5884)] = 129054,
  [SMALL_STATE(5885)] = 129068,
  [SMALL_STATE(5886)] = 129082,
  [SMALL_STATE(5887)] = 129094,
  [SMALL_STATE(5888)] = 129108,
  [SMALL_STATE(5889)] = 129122,
  [SMALL_STATE(5890)] = 129136,
  [SMALL_STATE(5891)] = 129150,
  [SMALL_STATE(5892)] = 129162,
  [SMALL_STATE(5893)] = 129176,
  [SMALL_STATE(5894)] = 129190,
  [SMALL_STATE(5895)] = 129204,
  [SMALL_STATE(5896)] = 129218,
  [SMALL_STATE(5897)] = 129232,
  [SMALL_STATE(5898)] = 129246,
  [SMALL_STATE(5899)] = 129260,
  [SMALL_STATE(5900)] = 129274,
  [SMALL_STATE(5901)] = 129288,
  [SMALL_STATE(5902)] = 129302,
  [SMALL_STATE(5903)] = 129316,
  [SMALL_STATE(5904)] = 129330,
  [SMALL_STATE(5905)] = 129344,
  [SMALL_STATE(5906)] = 129358,
  [SMALL_STATE(5907)] = 129372,
  [SMALL_STATE(5908)] = 129386,
  [SMALL_STATE(5909)] = 129400,
  [SMALL_STATE(5910)] = 129414,
  [SMALL_STATE(5911)] = 129428,
  [SMALL_STATE(5912)] = 129442,
  [SMALL_STATE(5913)] = 129456,
  [SMALL_STATE(5914)] = 129470,
  [SMALL_STATE(5915)] = 129484,
  [SMALL_STATE(5916)] = 129498,
  [SMALL_STATE(5917)] = 129512,
  [SMALL_STATE(5918)] = 129526,
  [SMALL_STATE(5919)] = 129540,
  [SMALL_STATE(5920)] = 129554,
  [SMALL_STATE(5921)] = 129568,
  [SMALL_STATE(5922)] = 129582,
  [SMALL_STATE(5923)] = 129596,
  [SMALL_STATE(5924)] = 129610,
  [SMALL_STATE(5925)] = 129624,
  [SMALL_STATE(5926)] = 129638,
  [SMALL_STATE(5927)] = 129652,
  [SMALL_STATE(5928)] = 129666,
  [SMALL_STATE(5929)] = 129680,
  [SMALL_STATE(5930)] = 129694,
  [SMALL_STATE(5931)] = 129708,
  [SMALL_STATE(5932)] = 129722,
  [SMALL_STATE(5933)] = 129736,
  [SMALL_STATE(5934)] = 129750,
  [SMALL_STATE(5935)] = 129764,
  [SMALL_STATE(5936)] = 129778,
  [SMALL_STATE(5937)] = 129792,
  [SMALL_STATE(5938)] = 129806,
  [SMALL_STATE(5939)] = 129820,
  [SMALL_STATE(5940)] = 129834,
  [SMALL_STATE(5941)] = 129848,
  [SMALL_STATE(5942)] = 129862,
  [SMALL_STATE(5943)] = 129876,
  [SMALL_STATE(5944)] = 129890,
  [SMALL_STATE(5945)] = 129904,
  [SMALL_STATE(5946)] = 129918,
  [SMALL_STATE(5947)] = 129932,
  [SMALL_STATE(5948)] = 129946,
  [SMALL_STATE(5949)] = 129960,
  [SMALL_STATE(5950)] = 129974,
  [SMALL_STATE(5951)] = 129988,
  [SMALL_STATE(5952)] = 130002,
  [SMALL_STATE(5953)] = 130016,
  [SMALL_STATE(5954)] = 130030,
  [SMALL_STATE(5955)] = 130044,
  [SMALL_STATE(5956)] = 130058,
  [SMALL_STATE(5957)] = 130072,
  [SMALL_STATE(5958)] = 130086,
  [SMALL_STATE(5959)] = 130100,
  [SMALL_STATE(5960)] = 130114,
  [SMALL_STATE(5961)] = 130128,
  [SMALL_STATE(5962)] = 130142,
  [SMALL_STATE(5963)] = 130156,
  [SMALL_STATE(5964)] = 130170,
  [SMALL_STATE(5965)] = 130184,
  [SMALL_STATE(5966)] = 130198,
  [SMALL_STATE(5967)] = 130212,
  [SMALL_STATE(5968)] = 130226,
  [SMALL_STATE(5969)] = 130240,
  [SMALL_STATE(5970)] = 130254,
  [SMALL_STATE(5971)] = 130268,
  [SMALL_STATE(5972)] = 130282,
  [SMALL_STATE(5973)] = 130296,
  [SMALL_STATE(5974)] = 130310,
  [SMALL_STATE(5975)] = 130324,
  [SMALL_STATE(5976)] = 130338,
  [SMALL_STATE(5977)] = 130352,
  [SMALL_STATE(5978)] = 130366,
  [SMALL_STATE(5979)] = 130380,
  [SMALL_STATE(5980)] = 130394,
  [SMALL_STATE(5981)] = 130408,
  [SMALL_STATE(5982)] = 130422,
  [SMALL_STATE(5983)] = 130436,
  [SMALL_STATE(5984)] = 130450,
  [SMALL_STATE(5985)] = 130464,
  [SMALL_STATE(5986)] = 130478,
  [SMALL_STATE(5987)] = 130492,
  [SMALL_STATE(5988)] = 130506,
  [SMALL_STATE(5989)] = 130520,
  [SMALL_STATE(5990)] = 130534,
  [SMALL_STATE(5991)] = 130548,
  [SMALL_STATE(5992)] = 130562,
  [SMALL_STATE(5993)] = 130576,
  [SMALL_STATE(5994)] = 130590,
  [SMALL_STATE(5995)] = 130604,
  [SMALL_STATE(5996)] = 130618,
  [SMALL_STATE(5997)] = 130632,
  [SMALL_STATE(5998)] = 130646,
  [SMALL_STATE(5999)] = 130660,
  [SMALL_STATE(6000)] = 130674,
  [SMALL_STATE(6001)] = 130684,
  [SMALL_STATE(6002)] = 130698,
  [SMALL_STATE(6003)] = 130712,
  [SMALL_STATE(6004)] = 130726,
  [SMALL_STATE(6005)] = 130740,
  [SMALL_STATE(6006)] = 130754,
  [SMALL_STATE(6007)] = 130768,
  [SMALL_STATE(6008)] = 130782,
  [SMALL_STATE(6009)] = 130796,
  [SMALL_STATE(6010)] = 130810,
  [SMALL_STATE(6011)] = 130824,
  [SMALL_STATE(6012)] = 130838,
  [SMALL_STATE(6013)] = 130852,
  [SMALL_STATE(6014)] = 130866,
  [SMALL_STATE(6015)] = 130880,
  [SMALL_STATE(6016)] = 130894,
  [SMALL_STATE(6017)] = 130908,
  [SMALL_STATE(6018)] = 130922,
  [SMALL_STATE(6019)] = 130936,
  [SMALL_STATE(6020)] = 130950,
  [SMALL_STATE(6021)] = 130964,
  [SMALL_STATE(6022)] = 130978,
  [SMALL_STATE(6023)] = 130992,
  [SMALL_STATE(6024)] = 131006,
  [SMALL_STATE(6025)] = 131020,
  [SMALL_STATE(6026)] = 131034,
  [SMALL_STATE(6027)] = 131048,
  [SMALL_STATE(6028)] = 131062,
  [SMALL_STATE(6029)] = 131076,
  [SMALL_STATE(6030)] = 131090,
  [SMALL_STATE(6031)] = 131104,
  [SMALL_STATE(6032)] = 131118,
  [SMALL_STATE(6033)] = 131132,
  [SMALL_STATE(6034)] = 131146,
  [SMALL_STATE(6035)] = 131160,
  [SMALL_STATE(6036)] = 131174,
  [SMALL_STATE(6037)] = 131188,
  [SMALL_STATE(6038)] = 131202,
  [SMALL_STATE(6039)] = 131216,
  [SMALL_STATE(6040)] = 131230,
  [SMALL_STATE(6041)] = 131244,
  [SMALL_STATE(6042)] = 131258,
  [SMALL_STATE(6043)] = 131272,
  [SMALL_STATE(6044)] = 131286,
  [SMALL_STATE(6045)] = 131300,
  [SMALL_STATE(6046)] = 131314,
  [SMALL_STATE(6047)] = 131328,
  [SMALL_STATE(6048)] = 131338,
  [SMALL_STATE(6049)] = 131352,
  [SMALL_STATE(6050)] = 131364,
  [SMALL_STATE(6051)] = 131378,
  [SMALL_STATE(6052)] = 131392,
  [SMALL_STATE(6053)] = 131406,
  [SMALL_STATE(6054)] = 131420,
  [SMALL_STATE(6055)] = 131434,
  [SMALL_STATE(6056)] = 131448,
  [SMALL_STATE(6057)] = 131462,
  [SMALL_STATE(6058)] = 131476,
  [SMALL_STATE(6059)] = 131490,
  [SMALL_STATE(6060)] = 131504,
  [SMALL_STATE(6061)] = 131518,
  [SMALL_STATE(6062)] = 131532,
  [SMALL_STATE(6063)] = 131542,
  [SMALL_STATE(6064)] = 131556,
  [SMALL_STATE(6065)] = 131570,
  [SMALL_STATE(6066)] = 131584,
  [SMALL_STATE(6067)] = 131598,
  [SMALL_STATE(6068)] = 131612,
  [SMALL_STATE(6069)] = 131626,
  [SMALL_STATE(6070)] = 131640,
  [SMALL_STATE(6071)] = 131654,
  [SMALL_STATE(6072)] = 131668,
  [SMALL_STATE(6073)] = 131682,
  [SMALL_STATE(6074)] = 131696,
  [SMALL_STATE(6075)] = 131710,
  [SMALL_STATE(6076)] = 131724,
  [SMALL_STATE(6077)] = 131738,
  [SMALL_STATE(6078)] = 131752,
  [SMALL_STATE(6079)] = 131766,
  [SMALL_STATE(6080)] = 131780,
  [SMALL_STATE(6081)] = 131794,
  [SMALL_STATE(6082)] = 131808,
  [SMALL_STATE(6083)] = 131822,
  [SMALL_STATE(6084)] = 131836,
  [SMALL_STATE(6085)] = 131850,
  [SMALL_STATE(6086)] = 131864,
  [SMALL_STATE(6087)] = 131878,
  [SMALL_STATE(6088)] = 131892,
  [SMALL_STATE(6089)] = 131906,
  [SMALL_STATE(6090)] = 131920,
  [SMALL_STATE(6091)] = 131930,
  [SMALL_STATE(6092)] = 131944,
  [SMALL_STATE(6093)] = 131958,
  [SMALL_STATE(6094)] = 131972,
  [SMALL_STATE(6095)] = 131986,
  [SMALL_STATE(6096)] = 132000,
  [SMALL_STATE(6097)] = 132014,
  [SMALL_STATE(6098)] = 132028,
  [SMALL_STATE(6099)] = 132042,
  [SMALL_STATE(6100)] = 132056,
  [SMALL_STATE(6101)] = 132070,
  [SMALL_STATE(6102)] = 132084,
  [SMALL_STATE(6103)] = 132098,
  [SMALL_STATE(6104)] = 132112,
  [SMALL_STATE(6105)] = 132126,
  [SMALL_STATE(6106)] = 132140,
  [SMALL_STATE(6107)] = 132154,
  [SMALL_STATE(6108)] = 132168,
  [SMALL_STATE(6109)] = 132182,
  [SMALL_STATE(6110)] = 132196,
  [SMALL_STATE(6111)] = 132210,
  [SMALL_STATE(6112)] = 132224,
  [SMALL_STATE(6113)] = 132238,
  [SMALL_STATE(6114)] = 132252,
  [SMALL_STATE(6115)] = 132266,
  [SMALL_STATE(6116)] = 132280,
  [SMALL_STATE(6117)] = 132294,
  [SMALL_STATE(6118)] = 132308,
  [SMALL_STATE(6119)] = 132318,
  [SMALL_STATE(6120)] = 132332,
  [SMALL_STATE(6121)] = 132346,
  [SMALL_STATE(6122)] = 132360,
  [SMALL_STATE(6123)] = 132374,
  [SMALL_STATE(6124)] = 132388,
  [SMALL_STATE(6125)] = 132402,
  [SMALL_STATE(6126)] = 132416,
  [SMALL_STATE(6127)] = 132430,
  [SMALL_STATE(6128)] = 132444,
  [SMALL_STATE(6129)] = 132456,
  [SMALL_STATE(6130)] = 132470,
  [SMALL_STATE(6131)] = 132484,
  [SMALL_STATE(6132)] = 132498,
  [SMALL_STATE(6133)] = 132512,
  [SMALL_STATE(6134)] = 132526,
  [SMALL_STATE(6135)] = 132540,
  [SMALL_STATE(6136)] = 132554,
  [SMALL_STATE(6137)] = 132566,
  [SMALL_STATE(6138)] = 132580,
  [SMALL_STATE(6139)] = 132594,
  [SMALL_STATE(6140)] = 132608,
  [SMALL_STATE(6141)] = 132622,
  [SMALL_STATE(6142)] = 132636,
  [SMALL_STATE(6143)] = 132650,
  [SMALL_STATE(6144)] = 132664,
  [SMALL_STATE(6145)] = 132678,
  [SMALL_STATE(6146)] = 132692,
  [SMALL_STATE(6147)] = 132706,
  [SMALL_STATE(6148)] = 132720,
  [SMALL_STATE(6149)] = 132734,
  [SMALL_STATE(6150)] = 132744,
  [SMALL_STATE(6151)] = 132758,
  [SMALL_STATE(6152)] = 132772,
  [SMALL_STATE(6153)] = 132786,
  [SMALL_STATE(6154)] = 132800,
  [SMALL_STATE(6155)] = 132814,
  [SMALL_STATE(6156)] = 132828,
  [SMALL_STATE(6157)] = 132842,
  [SMALL_STATE(6158)] = 132856,
  [SMALL_STATE(6159)] = 132870,
  [SMALL_STATE(6160)] = 132884,
  [SMALL_STATE(6161)] = 132898,
  [SMALL_STATE(6162)] = 132912,
  [SMALL_STATE(6163)] = 132926,
  [SMALL_STATE(6164)] = 132940,
  [SMALL_STATE(6165)] = 132954,
  [SMALL_STATE(6166)] = 132968,
  [SMALL_STATE(6167)] = 132982,
  [SMALL_STATE(6168)] = 132996,
  [SMALL_STATE(6169)] = 133006,
  [SMALL_STATE(6170)] = 133020,
  [SMALL_STATE(6171)] = 133034,
  [SMALL_STATE(6172)] = 133048,
  [SMALL_STATE(6173)] = 133062,
  [SMALL_STATE(6174)] = 133076,
  [SMALL_STATE(6175)] = 133090,
  [SMALL_STATE(6176)] = 133104,
  [SMALL_STATE(6177)] = 133118,
  [SMALL_STATE(6178)] = 133132,
  [SMALL_STATE(6179)] = 133146,
  [SMALL_STATE(6180)] = 133160,
  [SMALL_STATE(6181)] = 133174,
  [SMALL_STATE(6182)] = 133188,
  [SMALL_STATE(6183)] = 133202,
  [SMALL_STATE(6184)] = 133216,
  [SMALL_STATE(6185)] = 133230,
  [SMALL_STATE(6186)] = 133244,
  [SMALL_STATE(6187)] = 133258,
  [SMALL_STATE(6188)] = 133272,
  [SMALL_STATE(6189)] = 133282,
  [SMALL_STATE(6190)] = 133296,
  [SMALL_STATE(6191)] = 133310,
  [SMALL_STATE(6192)] = 133324,
  [SMALL_STATE(6193)] = 133338,
  [SMALL_STATE(6194)] = 133352,
  [SMALL_STATE(6195)] = 133366,
  [SMALL_STATE(6196)] = 133380,
  [SMALL_STATE(6197)] = 133394,
  [SMALL_STATE(6198)] = 133408,
  [SMALL_STATE(6199)] = 133422,
  [SMALL_STATE(6200)] = 133436,
  [SMALL_STATE(6201)] = 133450,
  [SMALL_STATE(6202)] = 133464,
  [SMALL_STATE(6203)] = 133478,
  [SMALL_STATE(6204)] = 133492,
  [SMALL_STATE(6205)] = 133506,
  [SMALL_STATE(6206)] = 133520,
  [SMALL_STATE(6207)] = 133534,
  [SMALL_STATE(6208)] = 133548,
  [SMALL_STATE(6209)] = 133562,
  [SMALL_STATE(6210)] = 133576,
  [SMALL_STATE(6211)] = 133590,
  [SMALL_STATE(6212)] = 133604,
  [SMALL_STATE(6213)] = 133618,
  [SMALL_STATE(6214)] = 133632,
  [SMALL_STATE(6215)] = 133646,
  [SMALL_STATE(6216)] = 133660,
  [SMALL_STATE(6217)] = 133674,
  [SMALL_STATE(6218)] = 133688,
  [SMALL_STATE(6219)] = 133702,
  [SMALL_STATE(6220)] = 133716,
  [SMALL_STATE(6221)] = 133730,
  [SMALL_STATE(6222)] = 133744,
  [SMALL_STATE(6223)] = 133758,
  [SMALL_STATE(6224)] = 133772,
  [SMALL_STATE(6225)] = 133786,
  [SMALL_STATE(6226)] = 133800,
  [SMALL_STATE(6227)] = 133814,
  [SMALL_STATE(6228)] = 133828,
  [SMALL_STATE(6229)] = 133842,
  [SMALL_STATE(6230)] = 133856,
  [SMALL_STATE(6231)] = 133870,
  [SMALL_STATE(6232)] = 133884,
  [SMALL_STATE(6233)] = 133898,
  [SMALL_STATE(6234)] = 133912,
  [SMALL_STATE(6235)] = 133926,
  [SMALL_STATE(6236)] = 133940,
  [SMALL_STATE(6237)] = 133954,
  [SMALL_STATE(6238)] = 133968,
  [SMALL_STATE(6239)] = 133982,
  [SMALL_STATE(6240)] = 133992,
  [SMALL_STATE(6241)] = 134006,
  [SMALL_STATE(6242)] = 134020,
  [SMALL_STATE(6243)] = 134034,
  [SMALL_STATE(6244)] = 134048,
  [SMALL_STATE(6245)] = 134062,
  [SMALL_STATE(6246)] = 134076,
  [SMALL_STATE(6247)] = 134090,
  [SMALL_STATE(6248)] = 134104,
  [SMALL_STATE(6249)] = 134118,
  [SMALL_STATE(6250)] = 134132,
  [SMALL_STATE(6251)] = 134144,
  [SMALL_STATE(6252)] = 134158,
  [SMALL_STATE(6253)] = 134172,
  [SMALL_STATE(6254)] = 134186,
  [SMALL_STATE(6255)] = 134200,
  [SMALL_STATE(6256)] = 134214,
  [SMALL_STATE(6257)] = 134228,
  [SMALL_STATE(6258)] = 134242,
  [SMALL_STATE(6259)] = 134256,
  [SMALL_STATE(6260)] = 134270,
  [SMALL_STATE(6261)] = 134284,
  [SMALL_STATE(6262)] = 134298,
  [SMALL_STATE(6263)] = 134312,
  [SMALL_STATE(6264)] = 134326,
  [SMALL_STATE(6265)] = 134340,
  [SMALL_STATE(6266)] = 134354,
  [SMALL_STATE(6267)] = 134368,
  [SMALL_STATE(6268)] = 134382,
  [SMALL_STATE(6269)] = 134396,
  [SMALL_STATE(6270)] = 134410,
  [SMALL_STATE(6271)] = 134424,
  [SMALL_STATE(6272)] = 134438,
  [SMALL_STATE(6273)] = 134452,
  [SMALL_STATE(6274)] = 134466,
  [SMALL_STATE(6275)] = 134480,
  [SMALL_STATE(6276)] = 134494,
  [SMALL_STATE(6277)] = 134508,
  [SMALL_STATE(6278)] = 134522,
  [SMALL_STATE(6279)] = 134536,
  [SMALL_STATE(6280)] = 134550,
  [SMALL_STATE(6281)] = 134564,
  [SMALL_STATE(6282)] = 134576,
  [SMALL_STATE(6283)] = 134590,
  [SMALL_STATE(6284)] = 134604,
  [SMALL_STATE(6285)] = 134618,
  [SMALL_STATE(6286)] = 134632,
  [SMALL_STATE(6287)] = 134646,
  [SMALL_STATE(6288)] = 134660,
  [SMALL_STATE(6289)] = 134674,
  [SMALL_STATE(6290)] = 134688,
  [SMALL_STATE(6291)] = 134702,
  [SMALL_STATE(6292)] = 134716,
  [SMALL_STATE(6293)] = 134730,
  [SMALL_STATE(6294)] = 134740,
  [SMALL_STATE(6295)] = 134750,
  [SMALL_STATE(6296)] = 134764,
  [SMALL_STATE(6297)] = 134778,
  [SMALL_STATE(6298)] = 134792,
  [SMALL_STATE(6299)] = 134806,
  [SMALL_STATE(6300)] = 134820,
  [SMALL_STATE(6301)] = 134834,
  [SMALL_STATE(6302)] = 134846,
  [SMALL_STATE(6303)] = 134860,
  [SMALL_STATE(6304)] = 134874,
  [SMALL_STATE(6305)] = 134888,
  [SMALL_STATE(6306)] = 134902,
  [SMALL_STATE(6307)] = 134916,
  [SMALL_STATE(6308)] = 134930,
  [SMALL_STATE(6309)] = 134944,
  [SMALL_STATE(6310)] = 134958,
  [SMALL_STATE(6311)] = 134972,
  [SMALL_STATE(6312)] = 134986,
  [SMALL_STATE(6313)] = 134998,
  [SMALL_STATE(6314)] = 135012,
  [SMALL_STATE(6315)] = 135026,
  [SMALL_STATE(6316)] = 135040,
  [SMALL_STATE(6317)] = 135054,
  [SMALL_STATE(6318)] = 135068,
  [SMALL_STATE(6319)] = 135082,
  [SMALL_STATE(6320)] = 135092,
  [SMALL_STATE(6321)] = 135106,
  [SMALL_STATE(6322)] = 135120,
  [SMALL_STATE(6323)] = 135134,
  [SMALL_STATE(6324)] = 135148,
  [SMALL_STATE(6325)] = 135162,
  [SMALL_STATE(6326)] = 135176,
  [SMALL_STATE(6327)] = 135186,
  [SMALL_STATE(6328)] = 135200,
  [SMALL_STATE(6329)] = 135214,
  [SMALL_STATE(6330)] = 135228,
  [SMALL_STATE(6331)] = 135242,
  [SMALL_STATE(6332)] = 135256,
  [SMALL_STATE(6333)] = 135270,
  [SMALL_STATE(6334)] = 135284,
  [SMALL_STATE(6335)] = 135298,
  [SMALL_STATE(6336)] = 135312,
  [SMALL_STATE(6337)] = 135326,
  [SMALL_STATE(6338)] = 135340,
  [SMALL_STATE(6339)] = 135354,
  [SMALL_STATE(6340)] = 135368,
  [SMALL_STATE(6341)] = 135382,
  [SMALL_STATE(6342)] = 135396,
  [SMALL_STATE(6343)] = 135410,
  [SMALL_STATE(6344)] = 135424,
  [SMALL_STATE(6345)] = 135438,
  [SMALL_STATE(6346)] = 135452,
  [SMALL_STATE(6347)] = 135466,
  [SMALL_STATE(6348)] = 135480,
  [SMALL_STATE(6349)] = 135492,
  [SMALL_STATE(6350)] = 135506,
  [SMALL_STATE(6351)] = 135520,
  [SMALL_STATE(6352)] = 135534,
  [SMALL_STATE(6353)] = 135548,
  [SMALL_STATE(6354)] = 135562,
  [SMALL_STATE(6355)] = 135576,
  [SMALL_STATE(6356)] = 135590,
  [SMALL_STATE(6357)] = 135604,
  [SMALL_STATE(6358)] = 135618,
  [SMALL_STATE(6359)] = 135632,
  [SMALL_STATE(6360)] = 135646,
  [SMALL_STATE(6361)] = 135660,
  [SMALL_STATE(6362)] = 135674,
  [SMALL_STATE(6363)] = 135688,
  [SMALL_STATE(6364)] = 135702,
  [SMALL_STATE(6365)] = 135716,
  [SMALL_STATE(6366)] = 135730,
  [SMALL_STATE(6367)] = 135744,
  [SMALL_STATE(6368)] = 135758,
  [SMALL_STATE(6369)] = 135772,
  [SMALL_STATE(6370)] = 135786,
  [SMALL_STATE(6371)] = 135800,
  [SMALL_STATE(6372)] = 135814,
  [SMALL_STATE(6373)] = 135828,
  [SMALL_STATE(6374)] = 135842,
  [SMALL_STATE(6375)] = 135856,
  [SMALL_STATE(6376)] = 135866,
  [SMALL_STATE(6377)] = 135880,
  [SMALL_STATE(6378)] = 135894,
  [SMALL_STATE(6379)] = 135908,
  [SMALL_STATE(6380)] = 135922,
  [SMALL_STATE(6381)] = 135936,
  [SMALL_STATE(6382)] = 135950,
  [SMALL_STATE(6383)] = 135964,
  [SMALL_STATE(6384)] = 135974,
  [SMALL_STATE(6385)] = 135986,
  [SMALL_STATE(6386)] = 136000,
  [SMALL_STATE(6387)] = 136014,
  [SMALL_STATE(6388)] = 136028,
  [SMALL_STATE(6389)] = 136042,
  [SMALL_STATE(6390)] = 136056,
  [SMALL_STATE(6391)] = 136070,
  [SMALL_STATE(6392)] = 136084,
  [SMALL_STATE(6393)] = 136098,
  [SMALL_STATE(6394)] = 136112,
  [SMALL_STATE(6395)] = 136126,
  [SMALL_STATE(6396)] = 136140,
  [SMALL_STATE(6397)] = 136154,
  [SMALL_STATE(6398)] = 136168,
  [SMALL_STATE(6399)] = 136182,
  [SMALL_STATE(6400)] = 136196,
  [SMALL_STATE(6401)] = 136210,
  [SMALL_STATE(6402)] = 136224,
  [SMALL_STATE(6403)] = 136234,
  [SMALL_STATE(6404)] = 136245,
  [SMALL_STATE(6405)] = 136256,
  [SMALL_STATE(6406)] = 136267,
  [SMALL_STATE(6407)] = 136278,
  [SMALL_STATE(6408)] = 136289,
  [SMALL_STATE(6409)] = 136300,
  [SMALL_STATE(6410)] = 136309,
  [SMALL_STATE(6411)] = 136320,
  [SMALL_STATE(6412)] = 136329,
  [SMALL_STATE(6413)] = 136338,
  [SMALL_STATE(6414)] = 136349,
  [SMALL_STATE(6415)] = 136360,
  [SMALL_STATE(6416)] = 136371,
  [SMALL_STATE(6417)] = 136382,
  [SMALL_STATE(6418)] = 136393,
  [SMALL_STATE(6419)] = 136404,
  [SMALL_STATE(6420)] = 136413,
  [SMALL_STATE(6421)] = 136424,
  [SMALL_STATE(6422)] = 136435,
  [SMALL_STATE(6423)] = 136444,
  [SMALL_STATE(6424)] = 136453,
  [SMALL_STATE(6425)] = 136464,
  [SMALL_STATE(6426)] = 136475,
  [SMALL_STATE(6427)] = 136486,
  [SMALL_STATE(6428)] = 136497,
  [SMALL_STATE(6429)] = 136508,
  [SMALL_STATE(6430)] = 136519,
  [SMALL_STATE(6431)] = 136530,
  [SMALL_STATE(6432)] = 136541,
  [SMALL_STATE(6433)] = 136550,
  [SMALL_STATE(6434)] = 136561,
  [SMALL_STATE(6435)] = 136572,
  [SMALL_STATE(6436)] = 136583,
  [SMALL_STATE(6437)] = 136594,
  [SMALL_STATE(6438)] = 136605,
  [SMALL_STATE(6439)] = 136616,
  [SMALL_STATE(6440)] = 136627,
  [SMALL_STATE(6441)] = 136636,
  [SMALL_STATE(6442)] = 136647,
  [SMALL_STATE(6443)] = 136658,
  [SMALL_STATE(6444)] = 136669,
  [SMALL_STATE(6445)] = 136680,
  [SMALL_STATE(6446)] = 136691,
  [SMALL_STATE(6447)] = 136702,
  [SMALL_STATE(6448)] = 136713,
  [SMALL_STATE(6449)] = 136724,
  [SMALL_STATE(6450)] = 136735,
  [SMALL_STATE(6451)] = 136746,
  [SMALL_STATE(6452)] = 136757,
  [SMALL_STATE(6453)] = 136768,
  [SMALL_STATE(6454)] = 136777,
  [SMALL_STATE(6455)] = 136786,
  [SMALL_STATE(6456)] = 136797,
  [SMALL_STATE(6457)] = 136806,
  [SMALL_STATE(6458)] = 136817,
  [SMALL_STATE(6459)] = 136828,
  [SMALL_STATE(6460)] = 136837,
  [SMALL_STATE(6461)] = 136848,
  [SMALL_STATE(6462)] = 136859,
  [SMALL_STATE(6463)] = 136870,
  [SMALL_STATE(6464)] = 136881,
  [SMALL_STATE(6465)] = 136892,
  [SMALL_STATE(6466)] = 136903,
  [SMALL_STATE(6467)] = 136914,
  [SMALL_STATE(6468)] = 136925,
  [SMALL_STATE(6469)] = 136936,
  [SMALL_STATE(6470)] = 136947,
  [SMALL_STATE(6471)] = 136958,
  [SMALL_STATE(6472)] = 136969,
  [SMALL_STATE(6473)] = 136978,
  [SMALL_STATE(6474)] = 136989,
  [SMALL_STATE(6475)] = 137000,
  [SMALL_STATE(6476)] = 137011,
  [SMALL_STATE(6477)] = 137020,
  [SMALL_STATE(6478)] = 137031,
  [SMALL_STATE(6479)] = 137042,
  [SMALL_STATE(6480)] = 137051,
  [SMALL_STATE(6481)] = 137062,
  [SMALL_STATE(6482)] = 137073,
  [SMALL_STATE(6483)] = 137084,
  [SMALL_STATE(6484)] = 137095,
  [SMALL_STATE(6485)] = 137106,
  [SMALL_STATE(6486)] = 137117,
  [SMALL_STATE(6487)] = 137128,
  [SMALL_STATE(6488)] = 137137,
  [SMALL_STATE(6489)] = 137148,
  [SMALL_STATE(6490)] = 137159,
  [SMALL_STATE(6491)] = 137170,
  [SMALL_STATE(6492)] = 137181,
  [SMALL_STATE(6493)] = 137192,
  [SMALL_STATE(6494)] = 137203,
  [SMALL_STATE(6495)] = 137214,
  [SMALL_STATE(6496)] = 137225,
  [SMALL_STATE(6497)] = 137234,
  [SMALL_STATE(6498)] = 137245,
  [SMALL_STATE(6499)] = 137256,
  [SMALL_STATE(6500)] = 137267,
  [SMALL_STATE(6501)] = 137278,
  [SMALL_STATE(6502)] = 137289,
  [SMALL_STATE(6503)] = 137300,
  [SMALL_STATE(6504)] = 137311,
  [SMALL_STATE(6505)] = 137322,
  [SMALL_STATE(6506)] = 137333,
  [SMALL_STATE(6507)] = 137344,
  [SMALL_STATE(6508)] = 137353,
  [SMALL_STATE(6509)] = 137364,
  [SMALL_STATE(6510)] = 137375,
  [SMALL_STATE(6511)] = 137386,
  [SMALL_STATE(6512)] = 137397,
  [SMALL_STATE(6513)] = 137408,
  [SMALL_STATE(6514)] = 137419,
  [SMALL_STATE(6515)] = 137430,
  [SMALL_STATE(6516)] = 137441,
  [SMALL_STATE(6517)] = 137450,
  [SMALL_STATE(6518)] = 137461,
  [SMALL_STATE(6519)] = 137472,
  [SMALL_STATE(6520)] = 137483,
  [SMALL_STATE(6521)] = 137492,
  [SMALL_STATE(6522)] = 137503,
  [SMALL_STATE(6523)] = 137514,
  [SMALL_STATE(6524)] = 137525,
  [SMALL_STATE(6525)] = 137536,
  [SMALL_STATE(6526)] = 137547,
  [SMALL_STATE(6527)] = 137558,
  [SMALL_STATE(6528)] = 137567,
  [SMALL_STATE(6529)] = 137578,
  [SMALL_STATE(6530)] = 137589,
  [SMALL_STATE(6531)] = 137600,
  [SMALL_STATE(6532)] = 137611,
  [SMALL_STATE(6533)] = 137620,
  [SMALL_STATE(6534)] = 137631,
  [SMALL_STATE(6535)] = 137642,
  [SMALL_STATE(6536)] = 137653,
  [SMALL_STATE(6537)] = 137664,
  [SMALL_STATE(6538)] = 137675,
  [SMALL_STATE(6539)] = 137686,
  [SMALL_STATE(6540)] = 137697,
  [SMALL_STATE(6541)] = 137708,
  [SMALL_STATE(6542)] = 137719,
  [SMALL_STATE(6543)] = 137728,
  [SMALL_STATE(6544)] = 137737,
  [SMALL_STATE(6545)] = 137748,
  [SMALL_STATE(6546)] = 137759,
  [SMALL_STATE(6547)] = 137770,
  [SMALL_STATE(6548)] = 137779,
  [SMALL_STATE(6549)] = 137790,
  [SMALL_STATE(6550)] = 137799,
  [SMALL_STATE(6551)] = 137810,
  [SMALL_STATE(6552)] = 137821,
  [SMALL_STATE(6553)] = 137832,
  [SMALL_STATE(6554)] = 137843,
  [SMALL_STATE(6555)] = 137854,
  [SMALL_STATE(6556)] = 137865,
  [SMALL_STATE(6557)] = 137876,
  [SMALL_STATE(6558)] = 137887,
  [SMALL_STATE(6559)] = 137898,
  [SMALL_STATE(6560)] = 137909,
  [SMALL_STATE(6561)] = 137920,
  [SMALL_STATE(6562)] = 137929,
  [SMALL_STATE(6563)] = 137940,
  [SMALL_STATE(6564)] = 137951,
  [SMALL_STATE(6565)] = 137960,
  [SMALL_STATE(6566)] = 137971,
  [SMALL_STATE(6567)] = 137982,
  [SMALL_STATE(6568)] = 137993,
  [SMALL_STATE(6569)] = 138004,
  [SMALL_STATE(6570)] = 138015,
  [SMALL_STATE(6571)] = 138026,
  [SMALL_STATE(6572)] = 138037,
  [SMALL_STATE(6573)] = 138048,
  [SMALL_STATE(6574)] = 138059,
  [SMALL_STATE(6575)] = 138070,
  [SMALL_STATE(6576)] = 138081,
  [SMALL_STATE(6577)] = 138092,
  [SMALL_STATE(6578)] = 138103,
  [SMALL_STATE(6579)] = 138114,
  [SMALL_STATE(6580)] = 138125,
  [SMALL_STATE(6581)] = 138136,
  [SMALL_STATE(6582)] = 138147,
  [SMALL_STATE(6583)] = 138158,
  [SMALL_STATE(6584)] = 138167,
  [SMALL_STATE(6585)] = 138178,
  [SMALL_STATE(6586)] = 138189,
  [SMALL_STATE(6587)] = 138198,
  [SMALL_STATE(6588)] = 138209,
  [SMALL_STATE(6589)] = 138220,
  [SMALL_STATE(6590)] = 138229,
  [SMALL_STATE(6591)] = 138240,
  [SMALL_STATE(6592)] = 138251,
  [SMALL_STATE(6593)] = 138262,
  [SMALL_STATE(6594)] = 138271,
  [SMALL_STATE(6595)] = 138280,
  [SMALL_STATE(6596)] = 138291,
  [SMALL_STATE(6597)] = 138302,
  [SMALL_STATE(6598)] = 138313,
  [SMALL_STATE(6599)] = 138324,
  [SMALL_STATE(6600)] = 138335,
  [SMALL_STATE(6601)] = 138346,
  [SMALL_STATE(6602)] = 138355,
  [SMALL_STATE(6603)] = 138366,
  [SMALL_STATE(6604)] = 138377,
  [SMALL_STATE(6605)] = 138388,
  [SMALL_STATE(6606)] = 138399,
  [SMALL_STATE(6607)] = 138410,
  [SMALL_STATE(6608)] = 138421,
  [SMALL_STATE(6609)] = 138430,
  [SMALL_STATE(6610)] = 138439,
  [SMALL_STATE(6611)] = 138450,
  [SMALL_STATE(6612)] = 138461,
  [SMALL_STATE(6613)] = 138472,
  [SMALL_STATE(6614)] = 138481,
  [SMALL_STATE(6615)] = 138492,
  [SMALL_STATE(6616)] = 138503,
  [SMALL_STATE(6617)] = 138514,
  [SMALL_STATE(6618)] = 138525,
  [SMALL_STATE(6619)] = 138536,
  [SMALL_STATE(6620)] = 138547,
  [SMALL_STATE(6621)] = 138558,
  [SMALL_STATE(6622)] = 138569,
  [SMALL_STATE(6623)] = 138580,
  [SMALL_STATE(6624)] = 138591,
  [SMALL_STATE(6625)] = 138602,
  [SMALL_STATE(6626)] = 138613,
  [SMALL_STATE(6627)] = 138624,
  [SMALL_STATE(6628)] = 138635,
  [SMALL_STATE(6629)] = 138646,
  [SMALL_STATE(6630)] = 138657,
  [SMALL_STATE(6631)] = 138668,
  [SMALL_STATE(6632)] = 138679,
  [SMALL_STATE(6633)] = 138690,
  [SMALL_STATE(6634)] = 138701,
  [SMALL_STATE(6635)] = 138712,
  [SMALL_STATE(6636)] = 138723,
  [SMALL_STATE(6637)] = 138734,
  [SMALL_STATE(6638)] = 138745,
  [SMALL_STATE(6639)] = 138756,
  [SMALL_STATE(6640)] = 138767,
  [SMALL_STATE(6641)] = 138776,
  [SMALL_STATE(6642)] = 138787,
  [SMALL_STATE(6643)] = 138796,
  [SMALL_STATE(6644)] = 138805,
  [SMALL_STATE(6645)] = 138816,
  [SMALL_STATE(6646)] = 138827,
  [SMALL_STATE(6647)] = 138838,
  [SMALL_STATE(6648)] = 138849,
  [SMALL_STATE(6649)] = 138860,
  [SMALL_STATE(6650)] = 138871,
  [SMALL_STATE(6651)] = 138882,
  [SMALL_STATE(6652)] = 138893,
  [SMALL_STATE(6653)] = 138902,
  [SMALL_STATE(6654)] = 138913,
  [SMALL_STATE(6655)] = 138924,
  [SMALL_STATE(6656)] = 138935,
  [SMALL_STATE(6657)] = 138946,
  [SMALL_STATE(6658)] = 138957,
  [SMALL_STATE(6659)] = 138968,
  [SMALL_STATE(6660)] = 138979,
  [SMALL_STATE(6661)] = 138990,
  [SMALL_STATE(6662)] = 139001,
  [SMALL_STATE(6663)] = 139012,
  [SMALL_STATE(6664)] = 139023,
  [SMALL_STATE(6665)] = 139034,
  [SMALL_STATE(6666)] = 139045,
  [SMALL_STATE(6667)] = 139056,
  [SMALL_STATE(6668)] = 139067,
  [SMALL_STATE(6669)] = 139078,
  [SMALL_STATE(6670)] = 139087,
  [SMALL_STATE(6671)] = 139096,
  [SMALL_STATE(6672)] = 139107,
  [SMALL_STATE(6673)] = 139118,
  [SMALL_STATE(6674)] = 139129,
  [SMALL_STATE(6675)] = 139140,
  [SMALL_STATE(6676)] = 139149,
  [SMALL_STATE(6677)] = 139160,
  [SMALL_STATE(6678)] = 139171,
  [SMALL_STATE(6679)] = 139182,
  [SMALL_STATE(6680)] = 139193,
  [SMALL_STATE(6681)] = 139204,
  [SMALL_STATE(6682)] = 139215,
  [SMALL_STATE(6683)] = 139226,
  [SMALL_STATE(6684)] = 139237,
  [SMALL_STATE(6685)] = 139248,
  [SMALL_STATE(6686)] = 139259,
  [SMALL_STATE(6687)] = 139270,
  [SMALL_STATE(6688)] = 139279,
  [SMALL_STATE(6689)] = 139290,
  [SMALL_STATE(6690)] = 139301,
  [SMALL_STATE(6691)] = 139310,
  [SMALL_STATE(6692)] = 139321,
  [SMALL_STATE(6693)] = 139332,
  [SMALL_STATE(6694)] = 139343,
  [SMALL_STATE(6695)] = 139354,
  [SMALL_STATE(6696)] = 139363,
  [SMALL_STATE(6697)] = 139374,
  [SMALL_STATE(6698)] = 139385,
  [SMALL_STATE(6699)] = 139396,
  [SMALL_STATE(6700)] = 139407,
  [SMALL_STATE(6701)] = 139416,
  [SMALL_STATE(6702)] = 139425,
  [SMALL_STATE(6703)] = 139436,
  [SMALL_STATE(6704)] = 139447,
  [SMALL_STATE(6705)] = 139458,
  [SMALL_STATE(6706)] = 139469,
  [SMALL_STATE(6707)] = 139480,
  [SMALL_STATE(6708)] = 139489,
  [SMALL_STATE(6709)] = 139500,
  [SMALL_STATE(6710)] = 139511,
  [SMALL_STATE(6711)] = 139520,
  [SMALL_STATE(6712)] = 139531,
  [SMALL_STATE(6713)] = 139542,
  [SMALL_STATE(6714)] = 139553,
  [SMALL_STATE(6715)] = 139564,
  [SMALL_STATE(6716)] = 139575,
  [SMALL_STATE(6717)] = 139586,
  [SMALL_STATE(6718)] = 139595,
  [SMALL_STATE(6719)] = 139606,
  [SMALL_STATE(6720)] = 139615,
  [SMALL_STATE(6721)] = 139626,
  [SMALL_STATE(6722)] = 139637,
  [SMALL_STATE(6723)] = 139648,
  [SMALL_STATE(6724)] = 139659,
  [SMALL_STATE(6725)] = 139670,
  [SMALL_STATE(6726)] = 139681,
  [SMALL_STATE(6727)] = 139692,
  [SMALL_STATE(6728)] = 139703,
  [SMALL_STATE(6729)] = 139714,
  [SMALL_STATE(6730)] = 139725,
  [SMALL_STATE(6731)] = 139736,
  [SMALL_STATE(6732)] = 139747,
  [SMALL_STATE(6733)] = 139758,
  [SMALL_STATE(6734)] = 139769,
  [SMALL_STATE(6735)] = 139780,
  [SMALL_STATE(6736)] = 139791,
  [SMALL_STATE(6737)] = 139802,
  [SMALL_STATE(6738)] = 139813,
  [SMALL_STATE(6739)] = 139824,
  [SMALL_STATE(6740)] = 139835,
  [SMALL_STATE(6741)] = 139846,
  [SMALL_STATE(6742)] = 139857,
  [SMALL_STATE(6743)] = 139868,
  [SMALL_STATE(6744)] = 139879,
  [SMALL_STATE(6745)] = 139890,
  [SMALL_STATE(6746)] = 139901,
  [SMALL_STATE(6747)] = 139912,
  [SMALL_STATE(6748)] = 139923,
  [SMALL_STATE(6749)] = 139934,
  [SMALL_STATE(6750)] = 139945,
  [SMALL_STATE(6751)] = 139956,
  [SMALL_STATE(6752)] = 139967,
  [SMALL_STATE(6753)] = 139978,
  [SMALL_STATE(6754)] = 139989,
  [SMALL_STATE(6755)] = 140000,
  [SMALL_STATE(6756)] = 140011,
  [SMALL_STATE(6757)] = 140022,
  [SMALL_STATE(6758)] = 140033,
  [SMALL_STATE(6759)] = 140044,
  [SMALL_STATE(6760)] = 140053,
  [SMALL_STATE(6761)] = 140064,
  [SMALL_STATE(6762)] = 140075,
  [SMALL_STATE(6763)] = 140086,
  [SMALL_STATE(6764)] = 140097,
  [SMALL_STATE(6765)] = 140108,
  [SMALL_STATE(6766)] = 140119,
  [SMALL_STATE(6767)] = 140130,
  [SMALL_STATE(6768)] = 140141,
  [SMALL_STATE(6769)] = 140152,
  [SMALL_STATE(6770)] = 140161,
  [SMALL_STATE(6771)] = 140172,
  [SMALL_STATE(6772)] = 140183,
  [SMALL_STATE(6773)] = 140194,
  [SMALL_STATE(6774)] = 140205,
  [SMALL_STATE(6775)] = 140216,
  [SMALL_STATE(6776)] = 140227,
  [SMALL_STATE(6777)] = 140238,
  [SMALL_STATE(6778)] = 140249,
  [SMALL_STATE(6779)] = 140260,
  [SMALL_STATE(6780)] = 140269,
  [SMALL_STATE(6781)] = 140280,
  [SMALL_STATE(6782)] = 140291,
  [SMALL_STATE(6783)] = 140302,
  [SMALL_STATE(6784)] = 140313,
  [SMALL_STATE(6785)] = 140324,
  [SMALL_STATE(6786)] = 140335,
  [SMALL_STATE(6787)] = 140346,
  [SMALL_STATE(6788)] = 140357,
  [SMALL_STATE(6789)] = 140368,
  [SMALL_STATE(6790)] = 140379,
  [SMALL_STATE(6791)] = 140390,
  [SMALL_STATE(6792)] = 140401,
  [SMALL_STATE(6793)] = 140410,
  [SMALL_STATE(6794)] = 140421,
  [SMALL_STATE(6795)] = 140432,
  [SMALL_STATE(6796)] = 140443,
  [SMALL_STATE(6797)] = 140454,
  [SMALL_STATE(6798)] = 140465,
  [SMALL_STATE(6799)] = 140474,
  [SMALL_STATE(6800)] = 140485,
  [SMALL_STATE(6801)] = 140496,
  [SMALL_STATE(6802)] = 140507,
  [SMALL_STATE(6803)] = 140518,
  [SMALL_STATE(6804)] = 140529,
  [SMALL_STATE(6805)] = 140540,
  [SMALL_STATE(6806)] = 140551,
  [SMALL_STATE(6807)] = 140562,
  [SMALL_STATE(6808)] = 140573,
  [SMALL_STATE(6809)] = 140582,
  [SMALL_STATE(6810)] = 140591,
  [SMALL_STATE(6811)] = 140602,
  [SMALL_STATE(6812)] = 140613,
  [SMALL_STATE(6813)] = 140624,
  [SMALL_STATE(6814)] = 140635,
  [SMALL_STATE(6815)] = 140646,
  [SMALL_STATE(6816)] = 140657,
  [SMALL_STATE(6817)] = 140668,
  [SMALL_STATE(6818)] = 140679,
  [SMALL_STATE(6819)] = 140690,
  [SMALL_STATE(6820)] = 140701,
  [SMALL_STATE(6821)] = 140712,
  [SMALL_STATE(6822)] = 140721,
  [SMALL_STATE(6823)] = 140730,
  [SMALL_STATE(6824)] = 140741,
  [SMALL_STATE(6825)] = 140752,
  [SMALL_STATE(6826)] = 140763,
  [SMALL_STATE(6827)] = 140774,
  [SMALL_STATE(6828)] = 140785,
  [SMALL_STATE(6829)] = 140796,
  [SMALL_STATE(6830)] = 140807,
  [SMALL_STATE(6831)] = 140818,
  [SMALL_STATE(6832)] = 140827,
  [SMALL_STATE(6833)] = 140838,
  [SMALL_STATE(6834)] = 140847,
  [SMALL_STATE(6835)] = 140858,
  [SMALL_STATE(6836)] = 140869,
  [SMALL_STATE(6837)] = 140878,
  [SMALL_STATE(6838)] = 140889,
  [SMALL_STATE(6839)] = 140900,
  [SMALL_STATE(6840)] = 140911,
  [SMALL_STATE(6841)] = 140922,
  [SMALL_STATE(6842)] = 140933,
  [SMALL_STATE(6843)] = 140944,
  [SMALL_STATE(6844)] = 140955,
  [SMALL_STATE(6845)] = 140966,
  [SMALL_STATE(6846)] = 140977,
  [SMALL_STATE(6847)] = 140988,
  [SMALL_STATE(6848)] = 140997,
  [SMALL_STATE(6849)] = 141008,
  [SMALL_STATE(6850)] = 141019,
  [SMALL_STATE(6851)] = 141030,
  [SMALL_STATE(6852)] = 141041,
  [SMALL_STATE(6853)] = 141050,
  [SMALL_STATE(6854)] = 141061,
  [SMALL_STATE(6855)] = 141070,
  [SMALL_STATE(6856)] = 141081,
  [SMALL_STATE(6857)] = 141092,
  [SMALL_STATE(6858)] = 141103,
  [SMALL_STATE(6859)] = 141112,
  [SMALL_STATE(6860)] = 141123,
  [SMALL_STATE(6861)] = 141134,
  [SMALL_STATE(6862)] = 141143,
  [SMALL_STATE(6863)] = 141154,
  [SMALL_STATE(6864)] = 141165,
  [SMALL_STATE(6865)] = 141176,
  [SMALL_STATE(6866)] = 141187,
  [SMALL_STATE(6867)] = 141198,
  [SMALL_STATE(6868)] = 141209,
  [SMALL_STATE(6869)] = 141220,
  [SMALL_STATE(6870)] = 141231,
  [SMALL_STATE(6871)] = 141242,
  [SMALL_STATE(6872)] = 141253,
  [SMALL_STATE(6873)] = 141264,
  [SMALL_STATE(6874)] = 141275,
  [SMALL_STATE(6875)] = 141286,
  [SMALL_STATE(6876)] = 141297,
  [SMALL_STATE(6877)] = 141308,
  [SMALL_STATE(6878)] = 141319,
  [SMALL_STATE(6879)] = 141330,
  [SMALL_STATE(6880)] = 141341,
  [SMALL_STATE(6881)] = 141352,
  [SMALL_STATE(6882)] = 141363,
  [SMALL_STATE(6883)] = 141374,
  [SMALL_STATE(6884)] = 141385,
  [SMALL_STATE(6885)] = 141396,
  [SMALL_STATE(6886)] = 141407,
  [SMALL_STATE(6887)] = 141418,
  [SMALL_STATE(6888)] = 141429,
  [SMALL_STATE(6889)] = 141440,
  [SMALL_STATE(6890)] = 141451,
  [SMALL_STATE(6891)] = 141462,
  [SMALL_STATE(6892)] = 141473,
  [SMALL_STATE(6893)] = 141484,
  [SMALL_STATE(6894)] = 141495,
  [SMALL_STATE(6895)] = 141506,
  [SMALL_STATE(6896)] = 141517,
  [SMALL_STATE(6897)] = 141528,
  [SMALL_STATE(6898)] = 141539,
  [SMALL_STATE(6899)] = 141550,
  [SMALL_STATE(6900)] = 141561,
  [SMALL_STATE(6901)] = 141572,
  [SMALL_STATE(6902)] = 141583,
  [SMALL_STATE(6903)] = 141594,
  [SMALL_STATE(6904)] = 141605,
  [SMALL_STATE(6905)] = 141616,
  [SMALL_STATE(6906)] = 141627,
  [SMALL_STATE(6907)] = 141638,
  [SMALL_STATE(6908)] = 141649,
  [SMALL_STATE(6909)] = 141658,
  [SMALL_STATE(6910)] = 141669,
  [SMALL_STATE(6911)] = 141680,
  [SMALL_STATE(6912)] = 141691,
  [SMALL_STATE(6913)] = 141702,
  [SMALL_STATE(6914)] = 141713,
  [SMALL_STATE(6915)] = 141722,
  [SMALL_STATE(6916)] = 141733,
  [SMALL_STATE(6917)] = 141744,
  [SMALL_STATE(6918)] = 141755,
  [SMALL_STATE(6919)] = 141764,
  [SMALL_STATE(6920)] = 141775,
  [SMALL_STATE(6921)] = 141786,
  [SMALL_STATE(6922)] = 141795,
  [SMALL_STATE(6923)] = 141806,
  [SMALL_STATE(6924)] = 141817,
  [SMALL_STATE(6925)] = 141828,
  [SMALL_STATE(6926)] = 141839,
  [SMALL_STATE(6927)] = 141848,
  [SMALL_STATE(6928)] = 141857,
  [SMALL_STATE(6929)] = 141868,
  [SMALL_STATE(6930)] = 141879,
  [SMALL_STATE(6931)] = 141890,
  [SMALL_STATE(6932)] = 141901,
  [SMALL_STATE(6933)] = 141912,
  [SMALL_STATE(6934)] = 141923,
  [SMALL_STATE(6935)] = 141934,
  [SMALL_STATE(6936)] = 141945,
  [SMALL_STATE(6937)] = 141956,
  [SMALL_STATE(6938)] = 141967,
  [SMALL_STATE(6939)] = 141978,
  [SMALL_STATE(6940)] = 141989,
  [SMALL_STATE(6941)] = 142000,
  [SMALL_STATE(6942)] = 142011,
  [SMALL_STATE(6943)] = 142022,
  [SMALL_STATE(6944)] = 142033,
  [SMALL_STATE(6945)] = 142044,
  [SMALL_STATE(6946)] = 142055,
  [SMALL_STATE(6947)] = 142066,
  [SMALL_STATE(6948)] = 142077,
  [SMALL_STATE(6949)] = 142085,
  [SMALL_STATE(6950)] = 142095,
  [SMALL_STATE(6951)] = 142105,
  [SMALL_STATE(6952)] = 142113,
  [SMALL_STATE(6953)] = 142121,
  [SMALL_STATE(6954)] = 142129,
  [SMALL_STATE(6955)] = 142137,
  [SMALL_STATE(6956)] = 142145,
  [SMALL_STATE(6957)] = 142153,
  [SMALL_STATE(6958)] = 142161,
  [SMALL_STATE(6959)] = 142169,
  [SMALL_STATE(6960)] = 142177,
  [SMALL_STATE(6961)] = 142185,
  [SMALL_STATE(6962)] = 142193,
  [SMALL_STATE(6963)] = 142201,
  [SMALL_STATE(6964)] = 142209,
  [SMALL_STATE(6965)] = 142217,
  [SMALL_STATE(6966)] = 142225,
  [SMALL_STATE(6967)] = 142233,
  [SMALL_STATE(6968)] = 142241,
  [SMALL_STATE(6969)] = 142249,
  [SMALL_STATE(6970)] = 142257,
  [SMALL_STATE(6971)] = 142265,
  [SMALL_STATE(6972)] = 142273,
  [SMALL_STATE(6973)] = 142281,
  [SMALL_STATE(6974)] = 142289,
  [SMALL_STATE(6975)] = 142297,
  [SMALL_STATE(6976)] = 142305,
  [SMALL_STATE(6977)] = 142313,
  [SMALL_STATE(6978)] = 142321,
  [SMALL_STATE(6979)] = 142329,
  [SMALL_STATE(6980)] = 142337,
  [SMALL_STATE(6981)] = 142345,
  [SMALL_STATE(6982)] = 142353,
  [SMALL_STATE(6983)] = 142361,
  [SMALL_STATE(6984)] = 142369,
  [SMALL_STATE(6985)] = 142377,
  [SMALL_STATE(6986)] = 142385,
  [SMALL_STATE(6987)] = 142393,
  [SMALL_STATE(6988)] = 142401,
  [SMALL_STATE(6989)] = 142411,
  [SMALL_STATE(6990)] = 142419,
  [SMALL_STATE(6991)] = 142427,
  [SMALL_STATE(6992)] = 142435,
  [SMALL_STATE(6993)] = 142443,
  [SMALL_STATE(6994)] = 142451,
  [SMALL_STATE(6995)] = 142459,
  [SMALL_STATE(6996)] = 142467,
  [SMALL_STATE(6997)] = 142475,
  [SMALL_STATE(6998)] = 142483,
  [SMALL_STATE(6999)] = 142491,
  [SMALL_STATE(7000)] = 142499,
  [SMALL_STATE(7001)] = 142507,
  [SMALL_STATE(7002)] = 142515,
  [SMALL_STATE(7003)] = 142523,
  [SMALL_STATE(7004)] = 142531,
  [SMALL_STATE(7005)] = 142539,
  [SMALL_STATE(7006)] = 142547,
  [SMALL_STATE(7007)] = 142555,
  [SMALL_STATE(7008)] = 142563,
  [SMALL_STATE(7009)] = 142571,
  [SMALL_STATE(7010)] = 142579,
  [SMALL_STATE(7011)] = 142587,
  [SMALL_STATE(7012)] = 142595,
  [SMALL_STATE(7013)] = 142603,
  [SMALL_STATE(7014)] = 142611,
  [SMALL_STATE(7015)] = 142619,
  [SMALL_STATE(7016)] = 142627,
  [SMALL_STATE(7017)] = 142635,
  [SMALL_STATE(7018)] = 142643,
  [SMALL_STATE(7019)] = 142651,
  [SMALL_STATE(7020)] = 142659,
  [SMALL_STATE(7021)] = 142667,
  [SMALL_STATE(7022)] = 142675,
  [SMALL_STATE(7023)] = 142683,
  [SMALL_STATE(7024)] = 142691,
  [SMALL_STATE(7025)] = 142699,
  [SMALL_STATE(7026)] = 142707,
  [SMALL_STATE(7027)] = 142715,
  [SMALL_STATE(7028)] = 142723,
  [SMALL_STATE(7029)] = 142731,
  [SMALL_STATE(7030)] = 142739,
  [SMALL_STATE(7031)] = 142747,
  [SMALL_STATE(7032)] = 142755,
  [SMALL_STATE(7033)] = 142763,
  [SMALL_STATE(7034)] = 142771,
  [SMALL_STATE(7035)] = 142779,
  [SMALL_STATE(7036)] = 142787,
  [SMALL_STATE(7037)] = 142795,
  [SMALL_STATE(7038)] = 142803,
  [SMALL_STATE(7039)] = 142811,
  [SMALL_STATE(7040)] = 142819,
  [SMALL_STATE(7041)] = 142827,
  [SMALL_STATE(7042)] = 142835,
  [SMALL_STATE(7043)] = 142843,
  [SMALL_STATE(7044)] = 142851,
  [SMALL_STATE(7045)] = 142859,
  [SMALL_STATE(7046)] = 142867,
  [SMALL_STATE(7047)] = 142875,
  [SMALL_STATE(7048)] = 142883,
  [SMALL_STATE(7049)] = 142891,
  [SMALL_STATE(7050)] = 142899,
  [SMALL_STATE(7051)] = 142907,
  [SMALL_STATE(7052)] = 142915,
  [SMALL_STATE(7053)] = 142923,
  [SMALL_STATE(7054)] = 142931,
  [SMALL_STATE(7055)] = 142939,
  [SMALL_STATE(7056)] = 142947,
  [SMALL_STATE(7057)] = 142955,
  [SMALL_STATE(7058)] = 142963,
  [SMALL_STATE(7059)] = 142971,
  [SMALL_STATE(7060)] = 142979,
  [SMALL_STATE(7061)] = 142987,
  [SMALL_STATE(7062)] = 142995,
  [SMALL_STATE(7063)] = 143003,
  [SMALL_STATE(7064)] = 143011,
  [SMALL_STATE(7065)] = 143019,
  [SMALL_STATE(7066)] = 143027,
  [SMALL_STATE(7067)] = 143035,
  [SMALL_STATE(7068)] = 143043,
  [SMALL_STATE(7069)] = 143051,
  [SMALL_STATE(7070)] = 143059,
  [SMALL_STATE(7071)] = 143067,
  [SMALL_STATE(7072)] = 143075,
  [SMALL_STATE(7073)] = 143083,
  [SMALL_STATE(7074)] = 143091,
  [SMALL_STATE(7075)] = 143099,
  [SMALL_STATE(7076)] = 143107,
  [SMALL_STATE(7077)] = 143115,
  [SMALL_STATE(7078)] = 143123,
  [SMALL_STATE(7079)] = 143131,
  [SMALL_STATE(7080)] = 143139,
  [SMALL_STATE(7081)] = 143149,
  [SMALL_STATE(7082)] = 143159,
  [SMALL_STATE(7083)] = 143169,
  [SMALL_STATE(7084)] = 143177,
  [SMALL_STATE(7085)] = 143185,
  [SMALL_STATE(7086)] = 143193,
  [SMALL_STATE(7087)] = 143201,
  [SMALL_STATE(7088)] = 143209,
  [SMALL_STATE(7089)] = 143217,
  [SMALL_STATE(7090)] = 143225,
  [SMALL_STATE(7091)] = 143233,
  [SMALL_STATE(7092)] = 143241,
  [SMALL_STATE(7093)] = 143249,
  [SMALL_STATE(7094)] = 143257,
  [SMALL_STATE(7095)] = 143265,
  [SMALL_STATE(7096)] = 143273,
  [SMALL_STATE(7097)] = 143281,
  [SMALL_STATE(7098)] = 143289,
  [SMALL_STATE(7099)] = 143297,
  [SMALL_STATE(7100)] = 143305,
  [SMALL_STATE(7101)] = 143313,
  [SMALL_STATE(7102)] = 143321,
  [SMALL_STATE(7103)] = 143329,
  [SMALL_STATE(7104)] = 143337,
  [SMALL_STATE(7105)] = 143345,
  [SMALL_STATE(7106)] = 143353,
  [SMALL_STATE(7107)] = 143361,
  [SMALL_STATE(7108)] = 143369,
  [SMALL_STATE(7109)] = 143377,
  [SMALL_STATE(7110)] = 143385,
  [SMALL_STATE(7111)] = 143393,
  [SMALL_STATE(7112)] = 143401,
  [SMALL_STATE(7113)] = 143409,
  [SMALL_STATE(7114)] = 143417,
  [SMALL_STATE(7115)] = 143425,
  [SMALL_STATE(7116)] = 143433,
  [SMALL_STATE(7117)] = 143441,
  [SMALL_STATE(7118)] = 143449,
  [SMALL_STATE(7119)] = 143457,
  [SMALL_STATE(7120)] = 143465,
  [SMALL_STATE(7121)] = 143473,
  [SMALL_STATE(7122)] = 143481,
  [SMALL_STATE(7123)] = 143489,
  [SMALL_STATE(7124)] = 143497,
  [SMALL_STATE(7125)] = 143505,
  [SMALL_STATE(7126)] = 143513,
  [SMALL_STATE(7127)] = 143521,
  [SMALL_STATE(7128)] = 143529,
  [SMALL_STATE(7129)] = 143537,
  [SMALL_STATE(7130)] = 143545,
  [SMALL_STATE(7131)] = 143553,
  [SMALL_STATE(7132)] = 143563,
  [SMALL_STATE(7133)] = 143571,
  [SMALL_STATE(7134)] = 143579,
  [SMALL_STATE(7135)] = 143587,
  [SMALL_STATE(7136)] = 143595,
  [SMALL_STATE(7137)] = 143603,
  [SMALL_STATE(7138)] = 143611,
  [SMALL_STATE(7139)] = 143619,
  [SMALL_STATE(7140)] = 143627,
  [SMALL_STATE(7141)] = 143635,
  [SMALL_STATE(7142)] = 143643,
  [SMALL_STATE(7143)] = 143651,
  [SMALL_STATE(7144)] = 143659,
  [SMALL_STATE(7145)] = 143667,
  [SMALL_STATE(7146)] = 143675,
  [SMALL_STATE(7147)] = 143683,
  [SMALL_STATE(7148)] = 143691,
  [SMALL_STATE(7149)] = 143699,
  [SMALL_STATE(7150)] = 143707,
  [SMALL_STATE(7151)] = 143715,
  [SMALL_STATE(7152)] = 143723,
  [SMALL_STATE(7153)] = 143731,
  [SMALL_STATE(7154)] = 143739,
  [SMALL_STATE(7155)] = 143747,
  [SMALL_STATE(7156)] = 143755,
  [SMALL_STATE(7157)] = 143763,
  [SMALL_STATE(7158)] = 143771,
  [SMALL_STATE(7159)] = 143779,
  [SMALL_STATE(7160)] = 143787,
  [SMALL_STATE(7161)] = 143795,
  [SMALL_STATE(7162)] = 143803,
  [SMALL_STATE(7163)] = 143811,
  [SMALL_STATE(7164)] = 143819,
  [SMALL_STATE(7165)] = 143827,
  [SMALL_STATE(7166)] = 143835,
  [SMALL_STATE(7167)] = 143845,
  [SMALL_STATE(7168)] = 143855,
  [SMALL_STATE(7169)] = 143863,
  [SMALL_STATE(7170)] = 143871,
  [SMALL_STATE(7171)] = 143879,
  [SMALL_STATE(7172)] = 143887,
  [SMALL_STATE(7173)] = 143895,
  [SMALL_STATE(7174)] = 143903,
  [SMALL_STATE(7175)] = 143911,
  [SMALL_STATE(7176)] = 143919,
  [SMALL_STATE(7177)] = 143927,
  [SMALL_STATE(7178)] = 143935,
  [SMALL_STATE(7179)] = 143943,
  [SMALL_STATE(7180)] = 143951,
  [SMALL_STATE(7181)] = 143959,
  [SMALL_STATE(7182)] = 143967,
  [SMALL_STATE(7183)] = 143975,
  [SMALL_STATE(7184)] = 143983,
  [SMALL_STATE(7185)] = 143991,
  [SMALL_STATE(7186)] = 143999,
  [SMALL_STATE(7187)] = 144007,
  [SMALL_STATE(7188)] = 144015,
  [SMALL_STATE(7189)] = 144023,
  [SMALL_STATE(7190)] = 144031,
  [SMALL_STATE(7191)] = 144039,
  [SMALL_STATE(7192)] = 144047,
  [SMALL_STATE(7193)] = 144055,
  [SMALL_STATE(7194)] = 144063,
  [SMALL_STATE(7195)] = 144071,
  [SMALL_STATE(7196)] = 144079,
  [SMALL_STATE(7197)] = 144087,
  [SMALL_STATE(7198)] = 144095,
  [SMALL_STATE(7199)] = 144103,
  [SMALL_STATE(7200)] = 144111,
  [SMALL_STATE(7201)] = 144119,
  [SMALL_STATE(7202)] = 144127,
  [SMALL_STATE(7203)] = 144135,
  [SMALL_STATE(7204)] = 144143,
  [SMALL_STATE(7205)] = 144151,
  [SMALL_STATE(7206)] = 144159,
  [SMALL_STATE(7207)] = 144167,
  [SMALL_STATE(7208)] = 144175,
  [SMALL_STATE(7209)] = 144183,
  [SMALL_STATE(7210)] = 144191,
  [SMALL_STATE(7211)] = 144201,
  [SMALL_STATE(7212)] = 144211,
  [SMALL_STATE(7213)] = 144221,
  [SMALL_STATE(7214)] = 144229,
  [SMALL_STATE(7215)] = 144237,
  [SMALL_STATE(7216)] = 144245,
  [SMALL_STATE(7217)] = 144253,
  [SMALL_STATE(7218)] = 144261,
  [SMALL_STATE(7219)] = 144269,
  [SMALL_STATE(7220)] = 144277,
  [SMALL_STATE(7221)] = 144285,
  [SMALL_STATE(7222)] = 144293,
  [SMALL_STATE(7223)] = 144301,
  [SMALL_STATE(7224)] = 144309,
  [SMALL_STATE(7225)] = 144317,
  [SMALL_STATE(7226)] = 144325,
  [SMALL_STATE(7227)] = 144333,
  [SMALL_STATE(7228)] = 144341,
  [SMALL_STATE(7229)] = 144349,
  [SMALL_STATE(7230)] = 144357,
  [SMALL_STATE(7231)] = 144365,
  [SMALL_STATE(7232)] = 144373,
  [SMALL_STATE(7233)] = 144381,
  [SMALL_STATE(7234)] = 144389,
  [SMALL_STATE(7235)] = 144397,
  [SMALL_STATE(7236)] = 144405,
  [SMALL_STATE(7237)] = 144413,
  [SMALL_STATE(7238)] = 144421,
  [SMALL_STATE(7239)] = 144429,
  [SMALL_STATE(7240)] = 144437,
  [SMALL_STATE(7241)] = 144445,
  [SMALL_STATE(7242)] = 144453,
  [SMALL_STATE(7243)] = 144461,
  [SMALL_STATE(7244)] = 144469,
  [SMALL_STATE(7245)] = 144477,
  [SMALL_STATE(7246)] = 144485,
  [SMALL_STATE(7247)] = 144493,
  [SMALL_STATE(7248)] = 144501,
  [SMALL_STATE(7249)] = 144509,
  [SMALL_STATE(7250)] = 144517,
  [SMALL_STATE(7251)] = 144525,
  [SMALL_STATE(7252)] = 144533,
  [SMALL_STATE(7253)] = 144541,
  [SMALL_STATE(7254)] = 144549,
  [SMALL_STATE(7255)] = 144557,
  [SMALL_STATE(7256)] = 144565,
  [SMALL_STATE(7257)] = 144573,
  [SMALL_STATE(7258)] = 144581,
  [SMALL_STATE(7259)] = 144589,
  [SMALL_STATE(7260)] = 144597,
  [SMALL_STATE(7261)] = 144605,
  [SMALL_STATE(7262)] = 144613,
  [SMALL_STATE(7263)] = 144621,
  [SMALL_STATE(7264)] = 144629,
  [SMALL_STATE(7265)] = 144637,
  [SMALL_STATE(7266)] = 144645,
  [SMALL_STATE(7267)] = 144653,
  [SMALL_STATE(7268)] = 144661,
  [SMALL_STATE(7269)] = 144669,
  [SMALL_STATE(7270)] = 144677,
  [SMALL_STATE(7271)] = 144685,
  [SMALL_STATE(7272)] = 144693,
  [SMALL_STATE(7273)] = 144701,
  [SMALL_STATE(7274)] = 144709,
  [SMALL_STATE(7275)] = 144717,
  [SMALL_STATE(7276)] = 144725,
  [SMALL_STATE(7277)] = 144733,
  [SMALL_STATE(7278)] = 144741,
  [SMALL_STATE(7279)] = 144749,
  [SMALL_STATE(7280)] = 144757,
  [SMALL_STATE(7281)] = 144765,
  [SMALL_STATE(7282)] = 144773,
  [SMALL_STATE(7283)] = 144781,
  [SMALL_STATE(7284)] = 144789,
  [SMALL_STATE(7285)] = 144797,
  [SMALL_STATE(7286)] = 144805,
  [SMALL_STATE(7287)] = 144813,
  [SMALL_STATE(7288)] = 144821,
  [SMALL_STATE(7289)] = 144829,
  [SMALL_STATE(7290)] = 144837,
  [SMALL_STATE(7291)] = 144845,
  [SMALL_STATE(7292)] = 144853,
  [SMALL_STATE(7293)] = 144861,
  [SMALL_STATE(7294)] = 144869,
  [SMALL_STATE(7295)] = 144877,
  [SMALL_STATE(7296)] = 144885,
  [SMALL_STATE(7297)] = 144893,
  [SMALL_STATE(7298)] = 144901,
  [SMALL_STATE(7299)] = 144909,
  [SMALL_STATE(7300)] = 144917,
  [SMALL_STATE(7301)] = 144925,
  [SMALL_STATE(7302)] = 144933,
  [SMALL_STATE(7303)] = 144941,
  [SMALL_STATE(7304)] = 144949,
  [SMALL_STATE(7305)] = 144957,
  [SMALL_STATE(7306)] = 144965,
  [SMALL_STATE(7307)] = 144973,
  [SMALL_STATE(7308)] = 144981,
  [SMALL_STATE(7309)] = 144989,
  [SMALL_STATE(7310)] = 144997,
  [SMALL_STATE(7311)] = 145005,
  [SMALL_STATE(7312)] = 145015,
  [SMALL_STATE(7313)] = 145025,
  [SMALL_STATE(7314)] = 145035,
  [SMALL_STATE(7315)] = 145043,
  [SMALL_STATE(7316)] = 145051,
  [SMALL_STATE(7317)] = 145059,
  [SMALL_STATE(7318)] = 145067,
  [SMALL_STATE(7319)] = 145075,
  [SMALL_STATE(7320)] = 145083,
  [SMALL_STATE(7321)] = 145091,
  [SMALL_STATE(7322)] = 145099,
  [SMALL_STATE(7323)] = 145107,
  [SMALL_STATE(7324)] = 145115,
  [SMALL_STATE(7325)] = 145123,
  [SMALL_STATE(7326)] = 145131,
  [SMALL_STATE(7327)] = 145139,
  [SMALL_STATE(7328)] = 145147,
  [SMALL_STATE(7329)] = 145155,
  [SMALL_STATE(7330)] = 145163,
  [SMALL_STATE(7331)] = 145171,
  [SMALL_STATE(7332)] = 145179,
  [SMALL_STATE(7333)] = 145187,
  [SMALL_STATE(7334)] = 145195,
  [SMALL_STATE(7335)] = 145203,
  [SMALL_STATE(7336)] = 145211,
  [SMALL_STATE(7337)] = 145219,
  [SMALL_STATE(7338)] = 145227,
  [SMALL_STATE(7339)] = 145235,
  [SMALL_STATE(7340)] = 145243,
  [SMALL_STATE(7341)] = 145251,
  [SMALL_STATE(7342)] = 145259,
  [SMALL_STATE(7343)] = 145267,
  [SMALL_STATE(7344)] = 145275,
  [SMALL_STATE(7345)] = 145283,
  [SMALL_STATE(7346)] = 145291,
  [SMALL_STATE(7347)] = 145299,
  [SMALL_STATE(7348)] = 145307,
  [SMALL_STATE(7349)] = 145315,
  [SMALL_STATE(7350)] = 145323,
  [SMALL_STATE(7351)] = 145331,
  [SMALL_STATE(7352)] = 145339,
  [SMALL_STATE(7353)] = 145347,
  [SMALL_STATE(7354)] = 145355,
  [SMALL_STATE(7355)] = 145363,
  [SMALL_STATE(7356)] = 145373,
  [SMALL_STATE(7357)] = 145383,
  [SMALL_STATE(7358)] = 145393,
  [SMALL_STATE(7359)] = 145401,
  [SMALL_STATE(7360)] = 145409,
  [SMALL_STATE(7361)] = 145417,
  [SMALL_STATE(7362)] = 145425,
  [SMALL_STATE(7363)] = 145433,
  [SMALL_STATE(7364)] = 145441,
  [SMALL_STATE(7365)] = 145449,
  [SMALL_STATE(7366)] = 145457,
  [SMALL_STATE(7367)] = 145465,
  [SMALL_STATE(7368)] = 145473,
  [SMALL_STATE(7369)] = 145481,
  [SMALL_STATE(7370)] = 145489,
  [SMALL_STATE(7371)] = 145497,
  [SMALL_STATE(7372)] = 145505,
  [SMALL_STATE(7373)] = 145513,
  [SMALL_STATE(7374)] = 145521,
  [SMALL_STATE(7375)] = 145529,
  [SMALL_STATE(7376)] = 145537,
  [SMALL_STATE(7377)] = 145545,
  [SMALL_STATE(7378)] = 145553,
  [SMALL_STATE(7379)] = 145561,
  [SMALL_STATE(7380)] = 145569,
  [SMALL_STATE(7381)] = 145577,
  [SMALL_STATE(7382)] = 145585,
  [SMALL_STATE(7383)] = 145593,
  [SMALL_STATE(7384)] = 145601,
  [SMALL_STATE(7385)] = 145609,
  [SMALL_STATE(7386)] = 145617,
  [SMALL_STATE(7387)] = 145627,
  [SMALL_STATE(7388)] = 145637,
  [SMALL_STATE(7389)] = 145647,
  [SMALL_STATE(7390)] = 145655,
  [SMALL_STATE(7391)] = 145663,
  [SMALL_STATE(7392)] = 145671,
  [SMALL_STATE(7393)] = 145679,
  [SMALL_STATE(7394)] = 145687,
  [SMALL_STATE(7395)] = 145695,
  [SMALL_STATE(7396)] = 145703,
  [SMALL_STATE(7397)] = 145711,
  [SMALL_STATE(7398)] = 145719,
  [SMALL_STATE(7399)] = 145727,
  [SMALL_STATE(7400)] = 145735,
  [SMALL_STATE(7401)] = 145743,
  [SMALL_STATE(7402)] = 145751,
  [SMALL_STATE(7403)] = 145759,
  [SMALL_STATE(7404)] = 145767,
  [SMALL_STATE(7405)] = 145775,
  [SMALL_STATE(7406)] = 145783,
  [SMALL_STATE(7407)] = 145791,
  [SMALL_STATE(7408)] = 145799,
  [SMALL_STATE(7409)] = 145807,
  [SMALL_STATE(7410)] = 145815,
  [SMALL_STATE(7411)] = 145823,
  [SMALL_STATE(7412)] = 145831,
  [SMALL_STATE(7413)] = 145839,
  [SMALL_STATE(7414)] = 145847,
  [SMALL_STATE(7415)] = 145855,
  [SMALL_STATE(7416)] = 145863,
  [SMALL_STATE(7417)] = 145873,
  [SMALL_STATE(7418)] = 145883,
  [SMALL_STATE(7419)] = 145893,
  [SMALL_STATE(7420)] = 145901,
  [SMALL_STATE(7421)] = 145909,
  [SMALL_STATE(7422)] = 145917,
  [SMALL_STATE(7423)] = 145925,
  [SMALL_STATE(7424)] = 145933,
  [SMALL_STATE(7425)] = 145941,
  [SMALL_STATE(7426)] = 145949,
  [SMALL_STATE(7427)] = 145957,
  [SMALL_STATE(7428)] = 145965,
  [SMALL_STATE(7429)] = 145973,
  [SMALL_STATE(7430)] = 145981,
  [SMALL_STATE(7431)] = 145989,
  [SMALL_STATE(7432)] = 145997,
  [SMALL_STATE(7433)] = 146005,
  [SMALL_STATE(7434)] = 146013,
  [SMALL_STATE(7435)] = 146021,
  [SMALL_STATE(7436)] = 146029,
  [SMALL_STATE(7437)] = 146037,
  [SMALL_STATE(7438)] = 146045,
  [SMALL_STATE(7439)] = 146053,
  [SMALL_STATE(7440)] = 146061,
  [SMALL_STATE(7441)] = 146069,
  [SMALL_STATE(7442)] = 146077,
  [SMALL_STATE(7443)] = 146085,
  [SMALL_STATE(7444)] = 146095,
  [SMALL_STATE(7445)] = 146105,
  [SMALL_STATE(7446)] = 146115,
  [SMALL_STATE(7447)] = 146123,
  [SMALL_STATE(7448)] = 146131,
  [SMALL_STATE(7449)] = 146141,
  [SMALL_STATE(7450)] = 146151,
  [SMALL_STATE(7451)] = 146161,
  [SMALL_STATE(7452)] = 146169,
  [SMALL_STATE(7453)] = 146179,
  [SMALL_STATE(7454)] = 146189,
  [SMALL_STATE(7455)] = 146199,
  [SMALL_STATE(7456)] = 146207,
  [SMALL_STATE(7457)] = 146215,
  [SMALL_STATE(7458)] = 146223,
  [SMALL_STATE(7459)] = 146231,
  [SMALL_STATE(7460)] = 146239,
  [SMALL_STATE(7461)] = 146247,
  [SMALL_STATE(7462)] = 146255,
  [SMALL_STATE(7463)] = 146263,
  [SMALL_STATE(7464)] = 146271,
  [SMALL_STATE(7465)] = 146279,
  [SMALL_STATE(7466)] = 146287,
  [SMALL_STATE(7467)] = 146295,
  [SMALL_STATE(7468)] = 146303,
  [SMALL_STATE(7469)] = 146311,
  [SMALL_STATE(7470)] = 146319,
  [SMALL_STATE(7471)] = 146327,
  [SMALL_STATE(7472)] = 146335,
  [SMALL_STATE(7473)] = 146343,
  [SMALL_STATE(7474)] = 146351,
  [SMALL_STATE(7475)] = 146359,
  [SMALL_STATE(7476)] = 146369,
  [SMALL_STATE(7477)] = 146377,
  [SMALL_STATE(7478)] = 146385,
  [SMALL_STATE(7479)] = 146393,
  [SMALL_STATE(7480)] = 146401,
  [SMALL_STATE(7481)] = 146411,
  [SMALL_STATE(7482)] = 146419,
  [SMALL_STATE(7483)] = 146429,
  [SMALL_STATE(7484)] = 146437,
  [SMALL_STATE(7485)] = 146445,
  [SMALL_STATE(7486)] = 146453,
  [SMALL_STATE(7487)] = 146461,
  [SMALL_STATE(7488)] = 146469,
  [SMALL_STATE(7489)] = 146477,
  [SMALL_STATE(7490)] = 146485,
  [SMALL_STATE(7491)] = 146493,
  [SMALL_STATE(7492)] = 146501,
  [SMALL_STATE(7493)] = 146509,
  [SMALL_STATE(7494)] = 146517,
  [SMALL_STATE(7495)] = 146525,
  [SMALL_STATE(7496)] = 146533,
  [SMALL_STATE(7497)] = 146541,
  [SMALL_STATE(7498)] = 146549,
  [SMALL_STATE(7499)] = 146557,
  [SMALL_STATE(7500)] = 146565,
  [SMALL_STATE(7501)] = 146573,
  [SMALL_STATE(7502)] = 146581,
  [SMALL_STATE(7503)] = 146589,
  [SMALL_STATE(7504)] = 146597,
  [SMALL_STATE(7505)] = 146605,
  [SMALL_STATE(7506)] = 146613,
  [SMALL_STATE(7507)] = 146621,
  [SMALL_STATE(7508)] = 146629,
  [SMALL_STATE(7509)] = 146637,
  [SMALL_STATE(7510)] = 146645,
  [SMALL_STATE(7511)] = 146653,
  [SMALL_STATE(7512)] = 146661,
  [SMALL_STATE(7513)] = 146669,
  [SMALL_STATE(7514)] = 146677,
  [SMALL_STATE(7515)] = 146685,
  [SMALL_STATE(7516)] = 146693,
  [SMALL_STATE(7517)] = 146701,
  [SMALL_STATE(7518)] = 146709,
  [SMALL_STATE(7519)] = 146717,
  [SMALL_STATE(7520)] = 146725,
  [SMALL_STATE(7521)] = 146733,
  [SMALL_STATE(7522)] = 146741,
  [SMALL_STATE(7523)] = 146749,
  [SMALL_STATE(7524)] = 146757,
  [SMALL_STATE(7525)] = 146765,
  [SMALL_STATE(7526)] = 146773,
  [SMALL_STATE(7527)] = 146781,
  [SMALL_STATE(7528)] = 146789,
  [SMALL_STATE(7529)] = 146797,
  [SMALL_STATE(7530)] = 146805,
  [SMALL_STATE(7531)] = 146813,
  [SMALL_STATE(7532)] = 146821,
  [SMALL_STATE(7533)] = 146829,
  [SMALL_STATE(7534)] = 146837,
  [SMALL_STATE(7535)] = 146845,
  [SMALL_STATE(7536)] = 146853,
  [SMALL_STATE(7537)] = 146861,
  [SMALL_STATE(7538)] = 146869,
  [SMALL_STATE(7539)] = 146877,
  [SMALL_STATE(7540)] = 146885,
  [SMALL_STATE(7541)] = 146893,
  [SMALL_STATE(7542)] = 146901,
  [SMALL_STATE(7543)] = 146909,
  [SMALL_STATE(7544)] = 146917,
  [SMALL_STATE(7545)] = 146925,
  [SMALL_STATE(7546)] = 146933,
  [SMALL_STATE(7547)] = 146941,
  [SMALL_STATE(7548)] = 146949,
  [SMALL_STATE(7549)] = 146957,
  [SMALL_STATE(7550)] = 146965,
  [SMALL_STATE(7551)] = 146973,
  [SMALL_STATE(7552)] = 146981,
  [SMALL_STATE(7553)] = 146989,
  [SMALL_STATE(7554)] = 146997,
  [SMALL_STATE(7555)] = 147005,
  [SMALL_STATE(7556)] = 147013,
  [SMALL_STATE(7557)] = 147021,
  [SMALL_STATE(7558)] = 147029,
  [SMALL_STATE(7559)] = 147037,
  [SMALL_STATE(7560)] = 147045,
  [SMALL_STATE(7561)] = 147053,
  [SMALL_STATE(7562)] = 147061,
  [SMALL_STATE(7563)] = 147069,
  [SMALL_STATE(7564)] = 147077,
  [SMALL_STATE(7565)] = 147085,
  [SMALL_STATE(7566)] = 147093,
  [SMALL_STATE(7567)] = 147101,
  [SMALL_STATE(7568)] = 147109,
  [SMALL_STATE(7569)] = 147117,
  [SMALL_STATE(7570)] = 147125,
  [SMALL_STATE(7571)] = 147133,
  [SMALL_STATE(7572)] = 147141,
  [SMALL_STATE(7573)] = 147149,
  [SMALL_STATE(7574)] = 147157,
  [SMALL_STATE(7575)] = 147165,
  [SMALL_STATE(7576)] = 147173,
  [SMALL_STATE(7577)] = 147181,
  [SMALL_STATE(7578)] = 147189,
  [SMALL_STATE(7579)] = 147197,
  [SMALL_STATE(7580)] = 147205,
  [SMALL_STATE(7581)] = 147213,
  [SMALL_STATE(7582)] = 147221,
  [SMALL_STATE(7583)] = 147229,
  [SMALL_STATE(7584)] = 147237,
  [SMALL_STATE(7585)] = 147245,
  [SMALL_STATE(7586)] = 147253,
  [SMALL_STATE(7587)] = 147261,
  [SMALL_STATE(7588)] = 147269,
  [SMALL_STATE(7589)] = 147277,
  [SMALL_STATE(7590)] = 147285,
  [SMALL_STATE(7591)] = 147293,
  [SMALL_STATE(7592)] = 147301,
  [SMALL_STATE(7593)] = 147309,
  [SMALL_STATE(7594)] = 147317,
  [SMALL_STATE(7595)] = 147325,
  [SMALL_STATE(7596)] = 147333,
  [SMALL_STATE(7597)] = 147341,
  [SMALL_STATE(7598)] = 147349,
  [SMALL_STATE(7599)] = 147357,
  [SMALL_STATE(7600)] = 147365,
  [SMALL_STATE(7601)] = 147373,
  [SMALL_STATE(7602)] = 147381,
  [SMALL_STATE(7603)] = 147389,
  [SMALL_STATE(7604)] = 147397,
  [SMALL_STATE(7605)] = 147405,
  [SMALL_STATE(7606)] = 147413,
  [SMALL_STATE(7607)] = 147421,
  [SMALL_STATE(7608)] = 147429,
  [SMALL_STATE(7609)] = 147437,
  [SMALL_STATE(7610)] = 147445,
  [SMALL_STATE(7611)] = 147453,
  [SMALL_STATE(7612)] = 147461,
  [SMALL_STATE(7613)] = 147469,
  [SMALL_STATE(7614)] = 147477,
  [SMALL_STATE(7615)] = 147485,
  [SMALL_STATE(7616)] = 147493,
  [SMALL_STATE(7617)] = 147501,
  [SMALL_STATE(7618)] = 147509,
  [SMALL_STATE(7619)] = 147517,
  [SMALL_STATE(7620)] = 147525,
  [SMALL_STATE(7621)] = 147533,
  [SMALL_STATE(7622)] = 147541,
  [SMALL_STATE(7623)] = 147549,
  [SMALL_STATE(7624)] = 147557,
  [SMALL_STATE(7625)] = 147565,
  [SMALL_STATE(7626)] = 147573,
  [SMALL_STATE(7627)] = 147581,
  [SMALL_STATE(7628)] = 147589,
  [SMALL_STATE(7629)] = 147597,
  [SMALL_STATE(7630)] = 147605,
  [SMALL_STATE(7631)] = 147613,
  [SMALL_STATE(7632)] = 147621,
  [SMALL_STATE(7633)] = 147629,
  [SMALL_STATE(7634)] = 147637,
  [SMALL_STATE(7635)] = 147645,
  [SMALL_STATE(7636)] = 147653,
  [SMALL_STATE(7637)] = 147661,
  [SMALL_STATE(7638)] = 147669,
  [SMALL_STATE(7639)] = 147677,
  [SMALL_STATE(7640)] = 147685,
  [SMALL_STATE(7641)] = 147693,
  [SMALL_STATE(7642)] = 147701,
  [SMALL_STATE(7643)] = 147709,
  [SMALL_STATE(7644)] = 147717,
  [SMALL_STATE(7645)] = 147725,
  [SMALL_STATE(7646)] = 147733,
  [SMALL_STATE(7647)] = 147741,
  [SMALL_STATE(7648)] = 147749,
  [SMALL_STATE(7649)] = 147757,
  [SMALL_STATE(7650)] = 147765,
  [SMALL_STATE(7651)] = 147773,
  [SMALL_STATE(7652)] = 147781,
  [SMALL_STATE(7653)] = 147789,
  [SMALL_STATE(7654)] = 147797,
  [SMALL_STATE(7655)] = 147805,
  [SMALL_STATE(7656)] = 147813,
  [SMALL_STATE(7657)] = 147821,
  [SMALL_STATE(7658)] = 147829,
  [SMALL_STATE(7659)] = 147837,
  [SMALL_STATE(7660)] = 147845,
  [SMALL_STATE(7661)] = 147853,
  [SMALL_STATE(7662)] = 147861,
  [SMALL_STATE(7663)] = 147869,
  [SMALL_STATE(7664)] = 147877,
  [SMALL_STATE(7665)] = 147885,
  [SMALL_STATE(7666)] = 147893,
  [SMALL_STATE(7667)] = 147901,
  [SMALL_STATE(7668)] = 147909,
  [SMALL_STATE(7669)] = 147917,
  [SMALL_STATE(7670)] = 147925,
  [SMALL_STATE(7671)] = 147933,
  [SMALL_STATE(7672)] = 147941,
  [SMALL_STATE(7673)] = 147949,
  [SMALL_STATE(7674)] = 147957,
  [SMALL_STATE(7675)] = 147965,
  [SMALL_STATE(7676)] = 147973,
  [SMALL_STATE(7677)] = 147981,
  [SMALL_STATE(7678)] = 147989,
  [SMALL_STATE(7679)] = 147997,
  [SMALL_STATE(7680)] = 148005,
  [SMALL_STATE(7681)] = 148013,
  [SMALL_STATE(7682)] = 148021,
  [SMALL_STATE(7683)] = 148029,
  [SMALL_STATE(7684)] = 148037,
  [SMALL_STATE(7685)] = 148045,
  [SMALL_STATE(7686)] = 148053,
  [SMALL_STATE(7687)] = 148061,
  [SMALL_STATE(7688)] = 148069,
  [SMALL_STATE(7689)] = 148077,
  [SMALL_STATE(7690)] = 148085,
  [SMALL_STATE(7691)] = 148093,
  [SMALL_STATE(7692)] = 148101,
  [SMALL_STATE(7693)] = 148109,
  [SMALL_STATE(7694)] = 148117,
  [SMALL_STATE(7695)] = 148125,
  [SMALL_STATE(7696)] = 148133,
  [SMALL_STATE(7697)] = 148141,
  [SMALL_STATE(7698)] = 148149,
  [SMALL_STATE(7699)] = 148157,
  [SMALL_STATE(7700)] = 148165,
  [SMALL_STATE(7701)] = 148173,
  [SMALL_STATE(7702)] = 148181,
  [SMALL_STATE(7703)] = 148189,
  [SMALL_STATE(7704)] = 148197,
  [SMALL_STATE(7705)] = 148205,
  [SMALL_STATE(7706)] = 148213,
  [SMALL_STATE(7707)] = 148221,
  [SMALL_STATE(7708)] = 148229,
  [SMALL_STATE(7709)] = 148237,
  [SMALL_STATE(7710)] = 148245,
  [SMALL_STATE(7711)] = 148253,
  [SMALL_STATE(7712)] = 148261,
  [SMALL_STATE(7713)] = 148269,
  [SMALL_STATE(7714)] = 148277,
  [SMALL_STATE(7715)] = 148285,
  [SMALL_STATE(7716)] = 148293,
  [SMALL_STATE(7717)] = 148301,
  [SMALL_STATE(7718)] = 148309,
  [SMALL_STATE(7719)] = 148317,
  [SMALL_STATE(7720)] = 148325,
  [SMALL_STATE(7721)] = 148333,
  [SMALL_STATE(7722)] = 148341,
  [SMALL_STATE(7723)] = 148349,
  [SMALL_STATE(7724)] = 148357,
  [SMALL_STATE(7725)] = 148365,
  [SMALL_STATE(7726)] = 148373,
  [SMALL_STATE(7727)] = 148381,
  [SMALL_STATE(7728)] = 148391,
  [SMALL_STATE(7729)] = 148399,
  [SMALL_STATE(7730)] = 148407,
  [SMALL_STATE(7731)] = 148417,
  [SMALL_STATE(7732)] = 148425,
  [SMALL_STATE(7733)] = 148435,
  [SMALL_STATE(7734)] = 148443,
  [SMALL_STATE(7735)] = 148451,
  [SMALL_STATE(7736)] = 148459,
  [SMALL_STATE(7737)] = 148467,
  [SMALL_STATE(7738)] = 148475,
  [SMALL_STATE(7739)] = 148483,
  [SMALL_STATE(7740)] = 148491,
  [SMALL_STATE(7741)] = 148499,
  [SMALL_STATE(7742)] = 148507,
  [SMALL_STATE(7743)] = 148515,
  [SMALL_STATE(7744)] = 148523,
  [SMALL_STATE(7745)] = 148531,
  [SMALL_STATE(7746)] = 148539,
  [SMALL_STATE(7747)] = 148547,
  [SMALL_STATE(7748)] = 148555,
  [SMALL_STATE(7749)] = 148563,
  [SMALL_STATE(7750)] = 148571,
  [SMALL_STATE(7751)] = 148579,
  [SMALL_STATE(7752)] = 148587,
  [SMALL_STATE(7753)] = 148595,
  [SMALL_STATE(7754)] = 148603,
  [SMALL_STATE(7755)] = 148611,
  [SMALL_STATE(7756)] = 148619,
  [SMALL_STATE(7757)] = 148627,
  [SMALL_STATE(7758)] = 148635,
  [SMALL_STATE(7759)] = 148643,
  [SMALL_STATE(7760)] = 148651,
  [SMALL_STATE(7761)] = 148659,
  [SMALL_STATE(7762)] = 148667,
  [SMALL_STATE(7763)] = 148675,
  [SMALL_STATE(7764)] = 148683,
  [SMALL_STATE(7765)] = 148691,
  [SMALL_STATE(7766)] = 148699,
  [SMALL_STATE(7767)] = 148707,
  [SMALL_STATE(7768)] = 148715,
  [SMALL_STATE(7769)] = 148723,
  [SMALL_STATE(7770)] = 148731,
  [SMALL_STATE(7771)] = 148739,
  [SMALL_STATE(7772)] = 148747,
  [SMALL_STATE(7773)] = 148755,
  [SMALL_STATE(7774)] = 148763,
  [SMALL_STATE(7775)] = 148771,
  [SMALL_STATE(7776)] = 148779,
  [SMALL_STATE(7777)] = 148787,
  [SMALL_STATE(7778)] = 148795,
  [SMALL_STATE(7779)] = 148803,
  [SMALL_STATE(7780)] = 148811,
  [SMALL_STATE(7781)] = 148819,
  [SMALL_STATE(7782)] = 148827,
  [SMALL_STATE(7783)] = 148835,
  [SMALL_STATE(7784)] = 148843,
  [SMALL_STATE(7785)] = 148851,
  [SMALL_STATE(7786)] = 148859,
  [SMALL_STATE(7787)] = 148867,
  [SMALL_STATE(7788)] = 148875,
  [SMALL_STATE(7789)] = 148883,
  [SMALL_STATE(7790)] = 148891,
  [SMALL_STATE(7791)] = 148899,
  [SMALL_STATE(7792)] = 148907,
  [SMALL_STATE(7793)] = 148915,
  [SMALL_STATE(7794)] = 148923,
  [SMALL_STATE(7795)] = 148931,
  [SMALL_STATE(7796)] = 148939,
  [SMALL_STATE(7797)] = 148947,
  [SMALL_STATE(7798)] = 148955,
  [SMALL_STATE(7799)] = 148963,
  [SMALL_STATE(7800)] = 148971,
  [SMALL_STATE(7801)] = 148979,
  [SMALL_STATE(7802)] = 148987,
  [SMALL_STATE(7803)] = 148995,
  [SMALL_STATE(7804)] = 149003,
  [SMALL_STATE(7805)] = 149011,
  [SMALL_STATE(7806)] = 149019,
  [SMALL_STATE(7807)] = 149027,
  [SMALL_STATE(7808)] = 149035,
  [SMALL_STATE(7809)] = 149043,
  [SMALL_STATE(7810)] = 149051,
  [SMALL_STATE(7811)] = 149059,
  [SMALL_STATE(7812)] = 149067,
  [SMALL_STATE(7813)] = 149075,
  [SMALL_STATE(7814)] = 149083,
  [SMALL_STATE(7815)] = 149091,
  [SMALL_STATE(7816)] = 149099,
  [SMALL_STATE(7817)] = 149107,
  [SMALL_STATE(7818)] = 149115,
  [SMALL_STATE(7819)] = 149123,
  [SMALL_STATE(7820)] = 149131,
  [SMALL_STATE(7821)] = 149139,
  [SMALL_STATE(7822)] = 149147,
  [SMALL_STATE(7823)] = 149155,
  [SMALL_STATE(7824)] = 149163,
  [SMALL_STATE(7825)] = 149171,
  [SMALL_STATE(7826)] = 149179,
  [SMALL_STATE(7827)] = 149187,
  [SMALL_STATE(7828)] = 149195,
  [SMALL_STATE(7829)] = 149203,
  [SMALL_STATE(7830)] = 149211,
  [SMALL_STATE(7831)] = 149219,
  [SMALL_STATE(7832)] = 149227,
  [SMALL_STATE(7833)] = 149235,
  [SMALL_STATE(7834)] = 149243,
  [SMALL_STATE(7835)] = 149251,
  [SMALL_STATE(7836)] = 149259,
  [SMALL_STATE(7837)] = 149267,
  [SMALL_STATE(7838)] = 149275,
  [SMALL_STATE(7839)] = 149283,
  [SMALL_STATE(7840)] = 149291,
  [SMALL_STATE(7841)] = 149299,
  [SMALL_STATE(7842)] = 149307,
  [SMALL_STATE(7843)] = 149315,
  [SMALL_STATE(7844)] = 149323,
  [SMALL_STATE(7845)] = 149331,
  [SMALL_STATE(7846)] = 149339,
  [SMALL_STATE(7847)] = 149347,
  [SMALL_STATE(7848)] = 149355,
  [SMALL_STATE(7849)] = 149363,
  [SMALL_STATE(7850)] = 149371,
  [SMALL_STATE(7851)] = 149379,
  [SMALL_STATE(7852)] = 149387,
  [SMALL_STATE(7853)] = 149395,
  [SMALL_STATE(7854)] = 149403,
  [SMALL_STATE(7855)] = 149411,
  [SMALL_STATE(7856)] = 149419,
  [SMALL_STATE(7857)] = 149427,
  [SMALL_STATE(7858)] = 149435,
  [SMALL_STATE(7859)] = 149443,
  [SMALL_STATE(7860)] = 149451,
  [SMALL_STATE(7861)] = 149459,
  [SMALL_STATE(7862)] = 149467,
  [SMALL_STATE(7863)] = 149475,
  [SMALL_STATE(7864)] = 149483,
  [SMALL_STATE(7865)] = 149491,
  [SMALL_STATE(7866)] = 149499,
  [SMALL_STATE(7867)] = 149507,
  [SMALL_STATE(7868)] = 149515,
  [SMALL_STATE(7869)] = 149523,
  [SMALL_STATE(7870)] = 149531,
  [SMALL_STATE(7871)] = 149539,
  [SMALL_STATE(7872)] = 149547,
  [SMALL_STATE(7873)] = 149555,
  [SMALL_STATE(7874)] = 149563,
  [SMALL_STATE(7875)] = 149571,
  [SMALL_STATE(7876)] = 149579,
  [SMALL_STATE(7877)] = 149587,
  [SMALL_STATE(7878)] = 149595,
  [SMALL_STATE(7879)] = 149603,
  [SMALL_STATE(7880)] = 149611,
  [SMALL_STATE(7881)] = 149619,
  [SMALL_STATE(7882)] = 149627,
  [SMALL_STATE(7883)] = 149635,
  [SMALL_STATE(7884)] = 149643,
  [SMALL_STATE(7885)] = 149651,
  [SMALL_STATE(7886)] = 149659,
  [SMALL_STATE(7887)] = 149667,
  [SMALL_STATE(7888)] = 149675,
  [SMALL_STATE(7889)] = 149683,
  [SMALL_STATE(7890)] = 149691,
  [SMALL_STATE(7891)] = 149699,
  [SMALL_STATE(7892)] = 149707,
  [SMALL_STATE(7893)] = 149715,
  [SMALL_STATE(7894)] = 149723,
  [SMALL_STATE(7895)] = 149731,
  [SMALL_STATE(7896)] = 149739,
  [SMALL_STATE(7897)] = 149747,
  [SMALL_STATE(7898)] = 149755,
  [SMALL_STATE(7899)] = 149763,
  [SMALL_STATE(7900)] = 149771,
  [SMALL_STATE(7901)] = 149779,
  [SMALL_STATE(7902)] = 149787,
  [SMALL_STATE(7903)] = 149795,
  [SMALL_STATE(7904)] = 149803,
  [SMALL_STATE(7905)] = 149811,
  [SMALL_STATE(7906)] = 149819,
  [SMALL_STATE(7907)] = 149827,
  [SMALL_STATE(7908)] = 149835,
  [SMALL_STATE(7909)] = 149843,
  [SMALL_STATE(7910)] = 149851,
  [SMALL_STATE(7911)] = 149859,
  [SMALL_STATE(7912)] = 149867,
  [SMALL_STATE(7913)] = 149875,
  [SMALL_STATE(7914)] = 149883,
  [SMALL_STATE(7915)] = 149891,
  [SMALL_STATE(7916)] = 149899,
  [SMALL_STATE(7917)] = 149907,
  [SMALL_STATE(7918)] = 149915,
  [SMALL_STATE(7919)] = 149923,
  [SMALL_STATE(7920)] = 149931,
  [SMALL_STATE(7921)] = 149939,
  [SMALL_STATE(7922)] = 149947,
  [SMALL_STATE(7923)] = 149955,
  [SMALL_STATE(7924)] = 149963,
  [SMALL_STATE(7925)] = 149971,
  [SMALL_STATE(7926)] = 149979,
  [SMALL_STATE(7927)] = 149987,
  [SMALL_STATE(7928)] = 149995,
  [SMALL_STATE(7929)] = 150003,
  [SMALL_STATE(7930)] = 150011,
  [SMALL_STATE(7931)] = 150019,
  [SMALL_STATE(7932)] = 150027,
  [SMALL_STATE(7933)] = 150035,
  [SMALL_STATE(7934)] = 150043,
  [SMALL_STATE(7935)] = 150051,
  [SMALL_STATE(7936)] = 150059,
  [SMALL_STATE(7937)] = 150067,
  [SMALL_STATE(7938)] = 150075,
  [SMALL_STATE(7939)] = 150083,
  [SMALL_STATE(7940)] = 150091,
  [SMALL_STATE(7941)] = 150099,
  [SMALL_STATE(7942)] = 150107,
  [SMALL_STATE(7943)] = 150115,
  [SMALL_STATE(7944)] = 150123,
  [SMALL_STATE(7945)] = 150131,
  [SMALL_STATE(7946)] = 150139,
  [SMALL_STATE(7947)] = 150147,
  [SMALL_STATE(7948)] = 150155,
  [SMALL_STATE(7949)] = 150163,
  [SMALL_STATE(7950)] = 150171,
  [SMALL_STATE(7951)] = 150179,
  [SMALL_STATE(7952)] = 150187,
  [SMALL_STATE(7953)] = 150195,
  [SMALL_STATE(7954)] = 150203,
  [SMALL_STATE(7955)] = 150211,
  [SMALL_STATE(7956)] = 150219,
  [SMALL_STATE(7957)] = 150227,
  [SMALL_STATE(7958)] = 150235,
  [SMALL_STATE(7959)] = 150243,
  [SMALL_STATE(7960)] = 150251,
  [SMALL_STATE(7961)] = 150259,
  [SMALL_STATE(7962)] = 150267,
  [SMALL_STATE(7963)] = 150275,
  [SMALL_STATE(7964)] = 150283,
  [SMALL_STATE(7965)] = 150291,
  [SMALL_STATE(7966)] = 150299,
  [SMALL_STATE(7967)] = 150307,
  [SMALL_STATE(7968)] = 150315,
  [SMALL_STATE(7969)] = 150323,
  [SMALL_STATE(7970)] = 150331,
  [SMALL_STATE(7971)] = 150339,
  [SMALL_STATE(7972)] = 150347,
  [SMALL_STATE(7973)] = 150355,
  [SMALL_STATE(7974)] = 150363,
  [SMALL_STATE(7975)] = 150371,
  [SMALL_STATE(7976)] = 150379,
  [SMALL_STATE(7977)] = 150387,
  [SMALL_STATE(7978)] = 150395,
  [SMALL_STATE(7979)] = 150403,
  [SMALL_STATE(7980)] = 150411,
  [SMALL_STATE(7981)] = 150419,
  [SMALL_STATE(7982)] = 150427,
  [SMALL_STATE(7983)] = 150435,
  [SMALL_STATE(7984)] = 150443,
  [SMALL_STATE(7985)] = 150451,
  [SMALL_STATE(7986)] = 150459,
  [SMALL_STATE(7987)] = 150467,
  [SMALL_STATE(7988)] = 150475,
  [SMALL_STATE(7989)] = 150483,
  [SMALL_STATE(7990)] = 150491,
  [SMALL_STATE(7991)] = 150499,
  [SMALL_STATE(7992)] = 150507,
  [SMALL_STATE(7993)] = 150515,
  [SMALL_STATE(7994)] = 150523,
  [SMALL_STATE(7995)] = 150531,
  [SMALL_STATE(7996)] = 150539,
  [SMALL_STATE(7997)] = 150547,
  [SMALL_STATE(7998)] = 150555,
  [SMALL_STATE(7999)] = 150563,
  [SMALL_STATE(8000)] = 150571,
  [SMALL_STATE(8001)] = 150579,
  [SMALL_STATE(8002)] = 150587,
  [SMALL_STATE(8003)] = 150595,
  [SMALL_STATE(8004)] = 150603,
  [SMALL_STATE(8005)] = 150611,
  [SMALL_STATE(8006)] = 150619,
  [SMALL_STATE(8007)] = 150627,
  [SMALL_STATE(8008)] = 150635,
  [SMALL_STATE(8009)] = 150643,
  [SMALL_STATE(8010)] = 150651,
  [SMALL_STATE(8011)] = 150659,
  [SMALL_STATE(8012)] = 150667,
  [SMALL_STATE(8013)] = 150675,
  [SMALL_STATE(8014)] = 150683,
  [SMALL_STATE(8015)] = 150691,
  [SMALL_STATE(8016)] = 150699,
  [SMALL_STATE(8017)] = 150707,
  [SMALL_STATE(8018)] = 150715,
  [SMALL_STATE(8019)] = 150723,
  [SMALL_STATE(8020)] = 150731,
  [SMALL_STATE(8021)] = 150739,
  [SMALL_STATE(8022)] = 150747,
  [SMALL_STATE(8023)] = 150755,
  [SMALL_STATE(8024)] = 150763,
  [SMALL_STATE(8025)] = 150771,
  [SMALL_STATE(8026)] = 150779,
  [SMALL_STATE(8027)] = 150787,
  [SMALL_STATE(8028)] = 150795,
  [SMALL_STATE(8029)] = 150803,
  [SMALL_STATE(8030)] = 150811,
  [SMALL_STATE(8031)] = 150819,
  [SMALL_STATE(8032)] = 150827,
  [SMALL_STATE(8033)] = 150835,
  [SMALL_STATE(8034)] = 150843,
  [SMALL_STATE(8035)] = 150851,
  [SMALL_STATE(8036)] = 150859,
  [SMALL_STATE(8037)] = 150867,
  [SMALL_STATE(8038)] = 150875,
  [SMALL_STATE(8039)] = 150883,
  [SMALL_STATE(8040)] = 150891,
  [SMALL_STATE(8041)] = 150899,
  [SMALL_STATE(8042)] = 150907,
  [SMALL_STATE(8043)] = 150915,
  [SMALL_STATE(8044)] = 150923,
  [SMALL_STATE(8045)] = 150931,
  [SMALL_STATE(8046)] = 150939,
  [SMALL_STATE(8047)] = 150947,
  [SMALL_STATE(8048)] = 150955,
  [SMALL_STATE(8049)] = 150963,
  [SMALL_STATE(8050)] = 150971,
  [SMALL_STATE(8051)] = 150979,
  [SMALL_STATE(8052)] = 150987,
  [SMALL_STATE(8053)] = 150995,
  [SMALL_STATE(8054)] = 151003,
  [SMALL_STATE(8055)] = 151011,
  [SMALL_STATE(8056)] = 151019,
  [SMALL_STATE(8057)] = 151027,
  [SMALL_STATE(8058)] = 151035,
  [SMALL_STATE(8059)] = 151043,
  [SMALL_STATE(8060)] = 151051,
};

static const TSParseActionEntry ts_parse_actions[] = {
  [0] = {.entry = {.count = 0, .reusable = false}},
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
  [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
  [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0),
  [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5137),
  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1777),
  [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8011),
  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6119),
  [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1811),
  [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7819),
  [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6048),
  [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4997),
  [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6060),
  [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2971),
  [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3000),
  [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2944),
  [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7778),
  [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2939),
  [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2718),
  [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2804),
  [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2977),
  [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2153),
  [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2955),
  [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5712),
  [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7519),
  [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6292),
  [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4200),
  [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6488),
  [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2935),
  [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7523),
  [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2925),
  [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2463),
  [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6382),
  [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7269),
  [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7364),
  [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6280),
  [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6546),
  [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6566),
  [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7142),
  [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7238),
  [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3466),
  [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(565),
  [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3867),
  [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
  [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6173),
  [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1311),
  [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1311),
  [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(693),
  [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710),
  [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
  [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3821),
  [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1318),
  [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5059),
  [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3687),
  [107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3870),
  [109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3011),
  [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5217),
  [113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7590),
  [115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2973),
  [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6876),
  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(854),
  [121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7468),
  [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7554),
  [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6874),
  [127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1763),
  [129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7958),
  [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3134),
  [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1313),
  [135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(337),
  [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2981),
  [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2158),
  [141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2797),
  [143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7942),
  [145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7800),
  [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3135),
  [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5891),
  [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6845),
  [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5562),
  [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6148),
  [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7524),
  [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6241),
  [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7489),
  [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4173),
  [165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3614),
  [167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6145),
  [169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7461),
  [171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2687),
  [173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(618),
  [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2940),
  [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2933),
  [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2431),
  [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6234),
  [183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7883),
  [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55),
  [187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7831),
  [189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1316),
  [191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(349),
  [193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7490),
  [195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7580),
  [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6229),
  [199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6607),
  [201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6410),
  [203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6793),
  [205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7882),
  [207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7582),
  [209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5071),
  [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7167),
  [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7166),
  [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7131),
  [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5135),
  [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5290),
  [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4872),
  [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535),
  [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3456),
  [227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5307),
  [229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3461),
  [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3687),
  [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3437),
  [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696),
  [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
  [239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3488),
  [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661),
  [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
  [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1768),
  [247] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5082),
  [249] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3503),
  [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 3, 0, 0),
  [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
  [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
  [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1353),
  [259] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3974),
  [261] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2998),
  [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5211),
  [265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6762),
  [267] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 3, 0, 0),
  [269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7009),
  [271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6761),
  [273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1766),
  [275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153),
  [277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2986),
  [279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2150),
  [281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2880),
  [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7932),
  [285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8045),
  [287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6049),
  [289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6797),
  [291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5546),
  [293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7002),
  [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6333),
  [297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4207),
  [299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(619),
  [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2957),
  [303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2948),
  [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2443),
  [307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6334),
  [309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7934),
  [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71),
  [313] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7895),
  [315] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371),
  [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6335),
  [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6475),
  [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6621),
  [323] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6660),
  [325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7935),
  [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3817),
  [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3811),
  [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681),
  [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3851),
  [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687),
  [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3970),
  [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2122),
  [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671),
  [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2145),
  [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3822),
  [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2118),
  [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676),
  [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678),
  [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663),
  [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2144),
  [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 2, 0, 0),
  [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
  [361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 2, 0, 0),
  [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2110),
  [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
  [367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3813),
  [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669),
  [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670),
  [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668),
  [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667),
  [377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 4, 0, 0),
  [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
  [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 4, 0, 0),
  [383] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3503),
  [386] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(565),
  [389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0),
  [391] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(66),
  [394] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6173),
  [397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1311),
  [400] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1311),
  [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(693),
  [406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(710),
  [409] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(31),
  [412] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3821),
  [415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1353),
  [418] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6048),
  [421] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5059),
  [424] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3687),
  [427] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3974),
  [430] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2971),
  [433] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2998),
  [436] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2944),
  [439] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5211),
  [442] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7590),
  [445] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2973),
  [448] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6762),
  [451] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0),
  [453] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7468),
  [456] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7009),
  [459] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2939),
  [462] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6761),
  [465] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1766),
  [468] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3134),
  [471] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1313),
  [474] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2804),
  [477] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(153),
  [480] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2986),
  [483] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2150),
  [486] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2955),
  [489] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2880),
  [492] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7932),
  [495] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(8045),
  [498] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3135),
  [501] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6049),
  [504] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6797),
  [507] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5546),
  [510] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6148),
  [513] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7002),
  [516] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6333),
  [519] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7489),
  [522] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4207),
  [525] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3614),
  [528] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6145),
  [531] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2935),
  [534] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7461),
  [537] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2687),
  [540] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(619),
  [543] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2957),
  [546] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2948),
  [549] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2443),
  [552] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6334),
  [555] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7934),
  [558] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(71),
  [561] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7895),
  [564] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1316),
  [567] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(371),
  [570] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7490),
  [573] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7580),
  [576] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6335),
  [579] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6475),
  [582] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6621),
  [585] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6660),
  [588] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7935),
  [591] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7582),
  [594] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7238),
  [597] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5082),
  [600] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7167),
  [603] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7166),
  [606] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7131),
  [609] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5135),
  [612] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5290),
  [615] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4872),
  [618] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(535),
  [621] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3456),
  [624] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5307),
  [627] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3461),
  [630] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3687),
  [633] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3437),
  [636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 5, 0, 0),
  [638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 5, 0, 0),
  [640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 7, 0, 0),
  [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
  [644] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 7, 0, 0),
  [646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_statement, 8, 0, 0),
  [648] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_statement, 8, 0, 0),
  [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3936),
  [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689),
  [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3769),
  [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2116),
  [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2114),
  [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2131),
  [662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1565),
  [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1651),
  [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2466),
  [668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5192),
  [670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
  [672] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(3492),
  [676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
  [678] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(6173),
  [682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685),
  [684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2197),
  [686] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attribute, 1, 0, 0),
  [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1317),
  [690] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(6048),
  [694] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(5059),
  [698] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3986),
  [700] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2971),
  [704] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3009),
  [706] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2944),
  [710] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5218),
  [712] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2973),
  [716] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6418),
  [718] = {.entry = {.count = 1, .reusable = false}}, SHIFT(878),
  [720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7178),
  [722] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2939),
  [726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6415),
  [728] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1764),
  [730] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7180),
  [732] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2804),
  [736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425),
  [738] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2980),
  [742] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2159),
  [744] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2955),
  [748] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2879),
  [752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7953),
  [754] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8049),
  [756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5761),
  [758] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6560),
  [760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5485),
  [762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7181),
  [764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5827),
  [766] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(4177),
  [770] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2687),
  [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(616),
  [776] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2932),
  [780] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2960),
  [784] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2440),
  [788] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5822),
  [790] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7955),
  [792] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(48),
  [796] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7928),
  [798] = {.entry = {.count = 1, .reusable = false}}, SHIFT(322),
  [800] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(7580),
  [804] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5820),
  [806] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6896),
  [808] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6674),
  [810] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6513),
  [812] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7956),
  [814] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(7582),
  [818] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(7238),
  [822] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(5082),
  [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
  [828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1590),
  [830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2107),
  [832] = {.entry = {.count = 1, .reusable = false}}, SHIFT(785),
  [834] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7451),
  [836] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2889),
  [838] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7878),
  [840] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8039),
  [842] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6770),
  [844] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2946),
  [846] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2441),
  [848] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7880),
  [850] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93),
  [852] = {.entry = {.count = 1, .reusable = false}}, SHIFT(357),
  [854] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6749),
  [856] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7881),
  [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5164),
  [860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
  [862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2425),
  [864] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3492),
  [866] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
  [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2380),
  [870] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2980),
  [872] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2161),
  [874] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2876),
  [876] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7962),
  [878] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8051),
  [880] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6518),
  [882] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4177),
  [884] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2923),
  [886] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2960),
  [888] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2435),
  [890] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7964),
  [892] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59),
  [894] = {.entry = {.count = 1, .reusable = false}}, SHIFT(364),
  [896] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6494),
  [898] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7965),
  [900] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(3488),
  [904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(690),
  [906] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2981),
  [910] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2797),
  [914] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(4173),
  [918] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2940),
  [922] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2933),
  [926] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2431),
  [930] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(55),
  [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5167),
  [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(688),
  [938] = {.entry = {.count = 1, .reusable = false}}, SHIFT(832),
  [940] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7245),
  [942] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2875),
  [946] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7970),
  [948] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8053),
  [950] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6492),
  [952] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2927),
  [956] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2433),
  [960] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7972),
  [962] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(57),
  [966] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399),
  [968] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6441),
  [970] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7973),
  [972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
  [974] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2832),
  [976] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7840),
  [978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8034),
  [980] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6430),
  [982] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2916),
  [984] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2437),
  [986] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7843),
  [988] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92),
  [990] = {.entry = {.count = 1, .reusable = false}}, SHIFT(230),
  [992] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6434),
  [994] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7844),
  [996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673),
  [998] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2876),
  [1002] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2923),
  [1006] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2435),
  [1010] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(59),
  [1014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1733),
  [1016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
  [1018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1650),
  [1020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
  [1022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1450),
  [1024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2129),
  [1026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2124),
  [1028] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(3500),
  [1032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
  [1034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(691),
  [1036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5637),
  [1038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1343),
  [1040] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3940),
  [1042] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3015),
  [1044] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5223),
  [1046] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6712),
  [1048] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7044),
  [1050] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6714),
  [1052] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1765),
  [1054] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154),
  [1056] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2978),
  [1060] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2157),
  [1062] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2878),
  [1066] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7944),
  [1068] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8047),
  [1070] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6384),
  [1072] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6663),
  [1074] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5515),
  [1076] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7047),
  [1078] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6156),
  [1080] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(4196),
  [1084] = {.entry = {.count = 1, .reusable = false}}, SHIFT(617),
  [1086] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2913),
  [1090] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2930),
  [1094] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2445),
  [1098] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6153),
  [1100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7946),
  [1102] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(65),
  [1106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7912),
  [1108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(309),
  [1110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6152),
  [1112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6668),
  [1114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6646),
  [1116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6550),
  [1118] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7947),
  [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666),
  [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
  [1124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(67),
  [1127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2832),
  [1130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7840),
  [1133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(8034),
  [1136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6430),
  [1139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2916),
  [1142] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2437),
  [1145] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7843),
  [1148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(92),
  [1151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(230),
  [1154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6434),
  [1157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7844),
  [1160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665),
  [1162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3500),
  [1164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
  [1166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5578),
  [1168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2134),
  [1170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2978),
  [1172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2878),
  [1174] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4196),
  [1176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2913),
  [1178] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2930),
  [1180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2445),
  [1182] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65),
  [1184] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(3503),
  [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672),
  [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1389),
  [1192] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2986),
  [1196] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2880),
  [1200] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(4207),
  [1204] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2957),
  [1208] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2948),
  [1212] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2443),
  [1216] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(71),
  [1220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3971),
  [1222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
  [1224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5723),
  [1226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(692),
  [1228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677),
  [1230] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2858),
  [1234] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7916),
  [1236] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8043),
  [1238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6933),
  [1240] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2926),
  [1244] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2432),
  [1248] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7918),
  [1250] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(77),
  [1254] = {.entry = {.count = 1, .reusable = false}}, SHIFT(411),
  [1256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6795),
  [1258] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7919),
  [1260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
  [1262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680),
  [1264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3501),
  [1266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664),
  [1268] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(3502),
  [1272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684),
  [1274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1349),
  [1276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3956),
  [1278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1762),
  [1280] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2977),
  [1284] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2154),
  [1286] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2776),
  [1290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7603),
  [1292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8003),
  [1294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6482),
  [1296] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5487),
  [1298] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(4228),
  [1302] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2943),
  [1306] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2936),
  [1310] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2439),
  [1314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7605),
  [1316] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(83),
  [1320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273),
  [1322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6571),
  [1324] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6760),
  [1326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7606),
  [1328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3981),
  [1330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
  [1332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
  [1334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2468),
  [1336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
  [1338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683),
  [1340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
  [1342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2308),
  [1344] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2875),
  [1346] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2927),
  [1348] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2433),
  [1350] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57),
  [1352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2455),
  [1354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679),
  [1356] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2832),
  [1360] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2916),
  [1364] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2437),
  [1368] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(92),
  [1372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(675),
  [1374] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2889),
  [1378] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2946),
  [1382] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2441),
  [1386] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(93),
  [1390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
  [1392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
  [1394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1563),
  [1396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2442),
  [1398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4016),
  [1400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
  [1402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2424),
  [1404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
  [1406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4035),
  [1408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3498),
  [1410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2444),
  [1412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
  [1414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2372),
  [1416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2438),
  [1418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
  [1420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2234),
  [1422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
  [1424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4067),
  [1426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2251),
  [1428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674),
  [1430] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2768),
  [1434] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7899),
  [1436] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8041),
  [1438] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6746),
  [1440] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2937),
  [1444] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2446),
  [1448] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7901),
  [1450] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(112),
  [1454] = {.entry = {.count = 1, .reusable = false}}, SHIFT(470),
  [1456] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6935),
  [1458] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7902),
  [1460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2426),
  [1462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2252),
  [1464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
  [1466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3975),
  [1468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1510),
  [1470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2128),
  [1472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126),
  [1474] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3488),
  [1477] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(565),
  [1480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0),
  [1482] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(79),
  [1485] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6173),
  [1488] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(1311),
  [1491] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(1311),
  [1494] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(693),
  [1497] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(710),
  [1500] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(118),
  [1503] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3821),
  [1506] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(1318),
  [1509] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6048),
  [1512] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5059),
  [1515] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3687),
  [1518] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3870),
  [1521] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2971),
  [1524] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3011),
  [1527] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2944),
  [1530] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5217),
  [1533] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7590),
  [1536] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2973),
  [1539] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6876),
  [1542] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(854),
  [1545] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7468),
  [1548] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7554),
  [1551] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2939),
  [1554] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6874),
  [1557] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(1763),
  [1560] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7958),
  [1563] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3134),
  [1566] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(1313),
  [1569] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2804),
  [1572] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(337),
  [1575] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2981),
  [1578] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2158),
  [1581] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2955),
  [1584] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2797),
  [1587] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7942),
  [1590] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7800),
  [1593] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3135),
  [1596] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5891),
  [1599] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6845),
  [1602] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5562),
  [1605] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6148),
  [1608] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7524),
  [1611] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6241),
  [1614] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7489),
  [1617] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(4173),
  [1620] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3614),
  [1623] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6145),
  [1626] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2935),
  [1629] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7461),
  [1632] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2687),
  [1635] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(618),
  [1638] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2940),
  [1641] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2933),
  [1644] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(2431),
  [1647] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6234),
  [1650] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7883),
  [1653] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(55),
  [1656] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7831),
  [1659] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(1316),
  [1662] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(349),
  [1665] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7490),
  [1668] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7580),
  [1671] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6229),
  [1674] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6607),
  [1677] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6410),
  [1680] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(6793),
  [1683] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7882),
  [1686] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7582),
  [1689] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7238),
  [1692] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5082),
  [1695] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7167),
  [1698] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7166),
  [1701] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(7131),
  [1704] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5135),
  [1707] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5290),
  [1710] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(4872),
  [1713] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(535),
  [1716] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3456),
  [1719] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(5307),
  [1722] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3461),
  [1725] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3687),
  [1728] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarations_and_statements, 2, 0, 0), SHIFT_REPEAT(3437),
  [1731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1506),
  [1733] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3502),
  [1735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
  [1737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6405),
  [1739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2098),
  [1741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2776),
  [1743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4228),
  [1745] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2943),
  [1747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2936),
  [1749] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2439),
  [1751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83),
  [1753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
  [1755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1373),
  [1757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686),
  [1759] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2907),
  [1763] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7498),
  [1765] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7985),
  [1767] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6715),
  [1769] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2958),
  [1773] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(2428),
  [1777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7500),
  [1779] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(124),
  [1783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(465),
  [1785] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6716),
  [1787] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7501),
  [1789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1505),
  [1791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
  [1793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2126),
  [1795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
  [1797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2235),
  [1799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3504),
  [1801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
  [1803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6580),
  [1805] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2907),
  [1807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2958),
  [1809] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2428),
  [1811] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124),
  [1813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
  [1815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2181),
  [1817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
  [1819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2178),
  [1821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
  [1823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
  [1825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
  [1827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2172),
  [1829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233),
  [1831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
  [1833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1612),
  [1835] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3488),
  [1838] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(79),
  [1841] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(196),
  [1844] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1318),
  [1847] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3870),
  [1850] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3011),
  [1853] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5217),
  [1856] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6876),
  [1859] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7554),
  [1862] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6874),
  [1865] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1763),
  [1868] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(337),
  [1871] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2981),
  [1874] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2158),
  [1877] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2889),
  [1880] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7878),
  [1883] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(8039),
  [1886] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5891),
  [1889] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6770),
  [1892] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(5562),
  [1895] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7524),
  [1898] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6241),
  [1901] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(4173),
  [1904] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(618),
  [1907] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2946),
  [1910] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2933),
  [1913] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2441),
  [1916] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6234),
  [1919] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7880),
  [1922] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(93),
  [1925] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7831),
  [1928] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(357),
  [1931] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6229),
  [1934] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6607),
  [1937] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6410),
  [1940] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6749),
  [1943] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7881),
  [1946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
  [1948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1604),
  [1950] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2879),
  [1952] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2932),
  [1954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2440),
  [1956] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48),
  [1958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
  [1960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5698),
  [1962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
  [1964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5696),
  [1966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
  [1968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5689),
  [1970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
  [1972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1587),
  [1974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
  [1976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1455),
  [1978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
  [1980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1466),
  [1982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
  [1984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1476),
  [1986] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2768),
  [1988] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2937),
  [1990] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2446),
  [1992] = {.entry = {.count = 1, .reusable = false}}, SHIFT(112),
  [1994] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2858),
  [1996] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2926),
  [1998] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2432),
  [2000] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77),
  [2002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363),
  [2004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
  [2006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
  [2008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
  [2010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159),
  [2012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(507),
  [2014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
  [2016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2192),
  [2018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
  [2020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5600),
  [2022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
  [2024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1688),
  [2026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512),
  [2028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
  [2030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1378),
  [2032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510),
  [2034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
  [2036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492),
  [2038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503),
  [2040] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(507),
  [2043] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2797),
  [2046] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7942),
  [2049] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7800),
  [2052] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6845),
  [2055] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2940),
  [2058] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(2431),
  [2061] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7883),
  [2064] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(55),
  [2067] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(349),
  [2070] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(6793),
  [2073] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_case_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7882),
  [2076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726),
  [2078] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2165),
  [2080] = {.entry = {.count = 1, .reusable = true}}, SHIFT(734),
  [2082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(765),
  [2084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(749),
  [2086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(750),
  [2088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(745),
  [2090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(719),
  [2092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(751),
  [2094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(773),
  [2096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(748),
  [2098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(738),
  [2100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731),
  [2102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3459),
  [2105] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(565),
  [2108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0),
  [2110] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(2),
  [2113] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(6173),
  [2116] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(1311),
  [2119] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(1311),
  [2122] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(693),
  [2125] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(710),
  [2128] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3821),
  [2131] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(5059),
  [2134] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3687),
  [2137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label, 2, 0, 0),
  [2139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7590),
  [2142] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7487),
  [2145] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7468),
  [2148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3204),
  [2151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3134),
  [2154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(1313),
  [2157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(6789),
  [2160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3135),
  [2163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7488),
  [2166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(6148),
  [2169] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7489),
  [2172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7585),
  [2175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3614),
  [2178] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(6145),
  [2181] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(6400),
  [2184] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(1316),
  [2187] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7490),
  [2190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7580),
  [2193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7582),
  [2196] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7238),
  [2199] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(5071),
  [2202] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7167),
  [2205] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7166),
  [2208] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(7131),
  [2211] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(5135),
  [2214] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(5290),
  [2217] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(4872),
  [2220] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(535),
  [2223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3456),
  [2226] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(5307),
  [2229] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3461),
  [2232] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3687),
  [2235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), SHIFT(3437),
  [2238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(550),
  [2240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580),
  [2242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3567),
  [2244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(572),
  [2246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550),
  [2248] = {.entry = {.count = 1, .reusable = false}}, SHIFT(635),
  [2250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(640),
  [2252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7080),
  [2254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7081),
  [2256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7082),
  [2258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5140),
  [2260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967),
  [2262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5294),
  [2264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4878),
  [2266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536),
  [2268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636),
  [2270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5319),
  [2272] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637),
  [2274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634),
  [2276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3381),
  [2278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4598),
  [2280] = {.entry = {.count = 1, .reusable = false}}, SHIFT(526),
  [2282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3544),
  [2284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526),
  [2286] = {.entry = {.count = 1, .reusable = false}}, SHIFT(540),
  [2288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(656),
  [2290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(540),
  [2292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(528),
  [2294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4617),
  [2296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(528),
  [2298] = {.entry = {.count = 1, .reusable = false}}, SHIFT(549),
  [2300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3510),
  [2302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(549),
  [2304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3462),
  [2306] = {.entry = {.count = 1, .reusable = false}}, SHIFT(537),
  [2308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3133),
  [2310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537),
  [2312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(533),
  [2314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3450),
  [2316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(533),
  [2318] = {.entry = {.count = 1, .reusable = false}}, SHIFT(539),
  [2320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632),
  [2322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539),
  [2324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3102),
  [2326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2407),
  [2328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626),
  [2330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644),
  [2332] = {.entry = {.count = 1, .reusable = false}}, SHIFT(538),
  [2334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2409),
  [2336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(538),
  [2338] = {.entry = {.count = 1, .reusable = false}}, SHIFT(545),
  [2340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4806),
  [2342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(545),
  [2344] = {.entry = {.count = 1, .reusable = false}}, SHIFT(527),
  [2346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3367),
  [2348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527),
  [2350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3255),
  [2352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4792),
  [2354] = {.entry = {.count = 1, .reusable = false}}, SHIFT(544),
  [2356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3268),
  [2358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(544),
  [2360] = {.entry = {.count = 1, .reusable = false}}, SHIFT(551),
  [2362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3330),
  [2364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551),
  [2366] = {.entry = {.count = 1, .reusable = false}}, SHIFT(552),
  [2368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4770),
  [2370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552),
  [2372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3538),
  [2374] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(550),
  [2377] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(580),
  [2380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0),
  [2382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(572),
  [2385] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(550),
  [2388] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(635),
  [2391] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(640),
  [2394] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(7080),
  [2397] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(7081),
  [2400] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(7082),
  [2403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(5140),
  [2406] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(967),
  [2409] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(5294),
  [2412] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(4878),
  [2415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(536),
  [2418] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(636),
  [2421] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(5319),
  [2424] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(637),
  [2427] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__i_token_string_tokens, 2, 0, 0), SHIFT_REPEAT(634),
  [2430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3363),
  [2432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4670),
  [2434] = {.entry = {.count = 1, .reusable = false}}, SHIFT(575),
  [2436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(582),
  [2438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2398),
  [2440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577),
  [2442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(575),
  [2444] = {.entry = {.count = 1, .reusable = false}}, SHIFT(648),
  [2446] = {.entry = {.count = 1, .reusable = false}}, SHIFT(641),
  [2448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6988),
  [2450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6949),
  [2452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6950),
  [2454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5091),
  [2456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5297),
  [2458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4955),
  [2460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530),
  [2462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651),
  [2464] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5275),
  [2466] = {.entry = {.count = 1, .reusable = false}}, SHIFT(652),
  [2468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646),
  [2470] = {.entry = {.count = 1, .reusable = false}}, SHIFT(571),
  [2472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3561),
  [2474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571),
  [2476] = {.entry = {.count = 1, .reusable = false}}, SHIFT(566),
  [2478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(645),
  [2480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566),
  [2482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3395),
  [2484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622),
  [2486] = {.entry = {.count = 1, .reusable = false}}, SHIFT(556),
  [2488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3371),
  [2490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(556),
  [2492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3267),
  [2494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(559),
  [2496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3264),
  [2498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559),
  [2500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3331),
  [2502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(561),
  [2504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3326),
  [2506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561),
  [2508] = {.entry = {.count = 1, .reusable = false}}, SHIFT(570),
  [2510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4775),
  [2512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570),
  [2514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4805),
  [2516] = {.entry = {.count = 1, .reusable = false}}, SHIFT(578),
  [2518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3441),
  [2520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(578),
  [2522] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(566),
  [2525] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(582),
  [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0),
  [2530] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(577),
  [2533] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(566),
  [2536] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(648),
  [2539] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(641),
  [2542] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(6988),
  [2545] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(6949),
  [2548] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(6950),
  [2551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(5091),
  [2554] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(5297),
  [2557] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(4955),
  [2560] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(530),
  [2563] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(651),
  [2566] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(5275),
  [2569] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(652),
  [2572] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__token_string_tokens, 2, 0, 0), SHIFT_REPEAT(646),
  [2575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(564),
  [2577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4814),
  [2579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(564),
  [2581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3132),
  [2583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(568),
  [2585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3113),
  [2587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568),
  [2589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4731),
  [2591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3511),
  [2593] = {.entry = {.count = 1, .reusable = false}}, SHIFT(557),
  [2595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620),
  [2597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557),
  [2599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(581),
  [2601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3540),
  [2603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581),
  [2605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4611),
  [2607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2404),
  [2609] = {.entry = {.count = 1, .reusable = false}}, SHIFT(574),
  [2611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4602),
  [2613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574),
  [2615] = {.entry = {.count = 1, .reusable = false}}, SHIFT(555),
  [2617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653),
  [2619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(555),
  [2621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3447),
  [2623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631),
  [2625] = {.entry = {.count = 1, .reusable = false}}, SHIFT(579),
  [2627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639),
  [2629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579),
  [2631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3560),
  [2633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(583),
  [2635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658),
  [2637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(583),
  [2639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655),
  [2641] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5122),
  [2643] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 6, 0, 0),
  [2645] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 6, 0, 0),
  [2647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(600),
  [2649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7640),
  [2651] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5879),
  [2653] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2678),
  [2655] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5652),
  [2657] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4199),
  [2659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2462),
  [2661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6723),
  [2663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 4, 0, 0),
  [2665] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 4, 0, 0),
  [2667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(597),
  [2669] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5122),
  [2672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
  [2674] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6119),
  [2677] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0),
  [2679] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(586),
  [2682] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7640),
  [2685] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6048),
  [2688] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4997),
  [2691] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5879),
  [2694] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2971),
  [2697] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2998),
  [2700] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2944),
  [2703] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7009),
  [2706] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2939),
  [2709] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2678),
  [2712] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2804),
  [2715] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2986),
  [2718] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2150),
  [2721] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2955),
  [2724] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5652),
  [2727] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7002),
  [2730] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6333),
  [2733] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4199),
  [2736] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2935),
  [2739] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7523),
  [2742] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2948),
  [2745] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2462),
  [2748] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6334),
  [2751] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7895),
  [2754] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7364),
  [2757] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6335),
  [2760] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6475),
  [2763] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6723),
  [2766] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7142),
  [2769] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7238),
  [2772] = {.entry = {.count = 1, .reusable = false}}, SHIFT(604),
  [2774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5624),
  [2776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(604),
  [2778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2336),
  [2780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1528),
  [2782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 3, 0, 0),
  [2784] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 3, 0, 0),
  [2786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(586),
  [2788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1560),
  [2790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2265),
  [2792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1354),
  [2794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1625),
  [2796] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 5, 0, 0),
  [2798] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 5, 0, 0),
  [2800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(598),
  [2802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5564),
  [2804] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 7, 0, 0),
  [2806] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 7, 0, 0),
  [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602),
  [2810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 8, 0, 0),
  [2812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 8, 0, 0),
  [2814] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(603),
  [2817] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(582),
  [2820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0),
  [2822] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(603),
  [2825] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(648),
  [2828] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(641),
  [2831] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(6988),
  [2834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(6949),
  [2837] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(6950),
  [2840] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(5091),
  [2843] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(5297),
  [2846] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(4955),
  [2849] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(530),
  [2852] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(651),
  [2855] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(5275),
  [2858] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(652),
  [2861] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_asm_inline_repeat1, 2, 0, 0), SHIFT_REPEAT(646),
  [2864] = {.entry = {.count = 1, .reusable = false}}, SHIFT(603),
  [2866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_inline, 1, 0, 0),
  [2868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(603),
  [2870] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5111),
  [2872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(614),
  [2874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7578),
  [2876] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6125),
  [2878] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2527),
  [2880] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5727),
  [2882] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4191),
  [2884] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2452),
  [2886] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6692),
  [2888] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5111),
  [2891] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(606),
  [2894] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7578),
  [2897] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6125),
  [2900] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(3011),
  [2903] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7554),
  [2906] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2527),
  [2909] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2981),
  [2912] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2158),
  [2915] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5727),
  [2918] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7524),
  [2921] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6241),
  [2924] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4191),
  [2927] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2933),
  [2930] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2452),
  [2933] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6234),
  [2936] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7831),
  [2939] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6229),
  [2942] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6607),
  [2945] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6692),
  [2948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606),
  [2950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615),
  [2952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(610),
  [2954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(612),
  [2956] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3459),
  [2958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2195),
  [2960] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__attribute, 1, 0, 0),
  [2962] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7487),
  [2964] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3204),
  [2966] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6789),
  [2968] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7488),
  [2970] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7585),
  [2972] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6400),
  [2974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5567),
  [2976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1572),
  [2978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1386),
  [2980] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__token_string_token, 2, 0, 0),
  [2982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__token_string_token, 2, 0, 0),
  [2984] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolated_quoted_string, 3, 0, 0),
  [2986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolated_quoted_string, 3, 0, 0),
  [2988] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__token_string_token, 3, 0, 0),
  [2990] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__token_string_token, 3, 0, 0),
  [2992] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoted_string, 2, 0, 0),
  [2994] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoted_string, 2, 0, 0),
  [2996] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_quoted_string, 3, 0, 0),
  [2998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_quoted_string, 3, 0, 0),
  [3000] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_hex_string, 3, 0, 0),
  [3002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_hex_string, 3, 0, 0),
  [3004] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolated_token_string, 3, 0, 0),
  [3006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolated_token_string, 3, 0, 0),
  [3008] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 3, 0, 0),
  [3010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 3, 0, 0),
  [3012] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_raw_string, 3, 0, 0),
  [3014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raw_string, 3, 0, 0),
  [3016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolated_raw_string, 3, 0, 0),
  [3018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolated_raw_string, 3, 0, 0),
  [3020] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolated_raw_string, 2, 0, 0),
  [3022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolated_raw_string, 2, 0, 0),
  [3024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_token_string, 3, 0, 0),
  [3026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_token_string, 3, 0, 0),
  [3028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolated_token_string, 2, 0, 0),
  [3030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolated_token_string, 2, 0, 0),
  [3032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolated_quoted_string, 2, 0, 0),
  [3034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolated_quoted_string, 2, 0, 0),
  [3036] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_literal, 1, 0, 0),
  [3038] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 1, 0, 0),
  [3040] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_keyword, 1, 0, 0),
  [3042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword, 1, 0, 0),
  [3044] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_char_literal, 1, 0, 0),
  [3046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char_literal, 1, 0, 0),
  [3048] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_special_keyword, 1, 0, 0),
  [3050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_special_keyword, 1, 0, 0),
  [3052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation_expression, 3, 0, 0),
  [3054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation_expression, 3, 0, 0),
  [3056] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_token_string, 2, 0, 0),
  [3058] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_token_string, 2, 0, 0),
  [3060] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0),
  [3062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_ctor, 1, 0, 0),
  [3064] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_pragma_declaration, 3, 0, 0),
  [3067] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_pragma_declaration, 3, 0, 0),
  [3070] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0),
  [3072] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0),
  [3074] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement_no_case_no_default, 1, 0, 0),
  [3076] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement_no_case_no_default, 1, 0, 0),
  [3078] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__specified_function_body, 1, 0, 0),
  [3080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__specified_function_body, 1, 0, 0),
  [3082] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__statement_no_case_no_default, 1, 0, 0), REDUCE(sym__specified_function_body, 1, 0, 0),
  [3085] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__statement_no_case_no_default, 1, 0, 0), REDUCE(sym__specified_function_body, 1, 0, 0),
  [3088] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0),
  [3091] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0),
  [3094] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0), SHIFT(1852),
  [3098] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 4, 0, 0),
  [3100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 4, 0, 0),
  [3102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block_statement, 3, 0, 0),
  [3104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block_statement, 3, 0, 0),
  [3106] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_static_foreach_declaration, 11, 0, 0),
  [3109] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_static_foreach_declaration, 11, 0, 0),
  [3112] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_static_foreach_declaration, 10, 0, 0),
  [3115] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_static_foreach_declaration, 10, 0, 0),
  [3118] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_static_foreach_declaration, 9, 0, 0),
  [3121] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_static_foreach_declaration, 9, 0, 0),
  [3124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), SHIFT(1852),
  [3127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3496),
  [3129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6111),
  [3131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6707),
  [3133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4999),
  [3135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6251),
  [3137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5064),
  [3139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3900),
  [3141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3698),
  [3143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3921),
  [3145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3588),
  [3147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7647),
  [3149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3589),
  [3151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3592),
  [3153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3793),
  [3155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7689),
  [3157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7644),
  [3159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7465),
  [3161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5070),
  [3163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), SHIFT(1822),
  [3166] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0), SHIFT(1822),
  [3170] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_aggregate_initializer, 2, 0, 0),
  [3173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3229),
  [3175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6962),
  [3177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2974),
  [3179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7726),
  [3181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3549),
  [3183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
  [3185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5765),
  [3187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1302),
  [3189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1302),
  [3191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3856),
  [3193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7594),
  [3195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7160),
  [3197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3116),
  [3199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1321),
  [3201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3120),
  [3203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6056),
  [3205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1340),
  [3207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3509),
  [3209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3966),
  [3211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4078),
  [3213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3824),
  [3215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3965),
  [3217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4029),
  [3219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3958),
  [3221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3843),
  [3223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3556),
  [3225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5654),
  [3227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4024),
  [3229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3829),
  [3231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4006),
  [3233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3952),
  [3235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5690),
  [3237] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3613),
  [3239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5984),
  [3241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4796),
  [3243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3377),
  [3245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2422),
  [3247] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3531),
  [3249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(554),
  [3251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
  [3253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6371),
  [3255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1333),
  [3257] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1333),
  [3259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(694),
  [3261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706),
  [3263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3852),
  [3265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3943),
  [3267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5230),
  [3269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3907),
  [3271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7478),
  [3273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7751),
  [3275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7753),
  [3277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3115),
  [3279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1329),
  [3281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6667),
  [3283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3112),
  [3285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7755),
  [3287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7756),
  [3289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7472),
  [3291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3597),
  [3293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6143),
  [3295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1323),
  [3297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7760),
  [3299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7462),
  [3301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7464),
  [3303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5320),
  [3305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7482),
  [3307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7480),
  [3309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7475),
  [3311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5116),
  [3313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5305),
  [3315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4966),
  [3317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532),
  [3319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3516),
  [3321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5274),
  [3323] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3522),
  [3325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3907),
  [3327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3547),
  [3329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3533),
  [3331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
  [3333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(790),
  [3335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3766),
  [3337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6713),
  [3339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6727),
  [3341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4701),
  [3343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6870),
  [3345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3448),
  [3347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
  [3349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(809),
  [3351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6755),
  [3353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3334),
  [3355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6655),
  [3357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3253),
  [3359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448),
  [3361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834),
  [3363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6676),
  [3365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6535),
  [3367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395),
  [3369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870),
  [3371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6721),
  [3373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6807),
  [3375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342),
  [3377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(802),
  [3379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6942),
  [3381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6893),
  [3383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3994),
  [3385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3248),
  [3387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__named_argument_list, 3, 0, 0),
  [3389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301),
  [3391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873),
  [3393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6771),
  [3395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6738),
  [3397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264),
  [3399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874),
  [3401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226),
  [3403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(777),
  [3405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
  [3407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(812),
  [3409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
  [3411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(837),
  [3413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3305),
  [3415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2411),
  [3417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3849),
  [3419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3929),
  [3421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3978),
  [3423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3380),
  [3425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4644),
  [3427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__named_argument_list, 2, 0, 0),
  [3429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3523),
  [3431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3603),
  [3433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5041),
  [3435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3517),
  [3437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3119),
  [3439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449),
  [3441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(839),
  [3443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4634),
  [3445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3122),
  [3447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3477),
  [3449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4618),
  [3451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4012),
  [3453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6940),
  [3455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4009),
  [3457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462),
  [3459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(797),
  [3461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4055),
  [3463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5631),
  [3465] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3620),
  [3467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6158),
  [3469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5214),
  [3471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218),
  [3473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3820),
  [3475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4657),
  [3477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398),
  [3479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215),
  [3481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_arguments, 2, 0, 0),
  [3483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213),
  [3485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4767),
  [3487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365),
  [3489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__template_argument_list, 3, 0, 0),
  [3491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307),
  [3493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274),
  [3495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(473),
  [3497] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7683),
  [3499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288),
  [3501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333),
  [3503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3586),
  [3505] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7491),
  [3507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406),
  [3509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__argument_list, 2, 0, 0),
  [3511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239),
  [3513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(476),
  [3515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491),
  [3517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176),
  [3519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
  [3521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
  [3523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1430),
  [3525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330),
  [3527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2288),
  [3529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328),
  [3531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3826),
  [3533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290),
  [3535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(438),
  [3537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251),
  [3539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
  [3541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__template_argument_list, 2, 0, 0),
  [3543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(407),
  [3545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253),
  [3547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3599),
  [3549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
  [3551] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7813),
  [3553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
  [3555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_arguments, 4, 0, 0),
  [3557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__argument_list, 3, 0, 0),
  [3559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433),
  [3561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_arguments, 5, 0, 0),
  [3563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3920),
  [3565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5231),
  [3567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3926),
  [3569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369),
  [3571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376),
  [3573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7152),
  [3575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387),
  [3577] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7148),
  [3579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293),
  [3581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256),
  [3583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384),
  [3585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382),
  [3587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435),
  [3589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8028),
  [3591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1579),
  [3593] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3708),
  [3595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1337),
  [3597] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1337),
  [3599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7742),
  [3601] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7214),
  [3603] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3138),
  [3605] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1335),
  [3607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3110),
  [3609] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6131),
  [3611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1334),
  [3613] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6784),
  [3615] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7869),
  [3617] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3612),
  [3619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1348),
  [3621] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1348),
  [3623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7702),
  [3625] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7084),
  [3627] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3109),
  [3629] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1346),
  [3631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3130),
  [3633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5938),
  [3635] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1345),
  [3637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4059),
  [3639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4059),
  [3641] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3521),
  [3643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573),
  [3645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
  [3647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6002),
  [3649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1322),
  [3651] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1322),
  [3653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695),
  [3655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709),
  [3657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4089),
  [3659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5285),
  [3661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3977),
  [3663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7652),
  [3665] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7656),
  [3667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6953),
  [3669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3114),
  [3671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1308),
  [3673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6452),
  [3675] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3108),
  [3677] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7595),
  [3679] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7596),
  [3681] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3583),
  [3683] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5785),
  [3685] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1303),
  [3687] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7597),
  [3689] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5348),
  [3691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7311),
  [3693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7312),
  [3695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7313),
  [3697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5125),
  [3699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5246),
  [3701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4825),
  [3703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(529),
  [3705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3528),
  [3707] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5306),
  [3709] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3529),
  [3711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3977),
  [3713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3527),
  [3715] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4064),
  [3717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4064),
  [3719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4011),
  [3721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4011),
  [3723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4102),
  [3725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4102),
  [3727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4031),
  [3729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4031),
  [3731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3918),
  [3733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3918),
  [3735] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4120),
  [3737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4120),
  [3739] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4041),
  [3741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4041),
  [3743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3924),
  [3745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3924),
  [3747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3916),
  [3749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3916),
  [3751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3923),
  [3753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3923),
  [3755] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4116),
  [3757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4116),
  [3759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4068),
  [3761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4068),
  [3763] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4020),
  [3765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4020),
  [3767] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4028),
  [3769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4028),
  [3771] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3997),
  [3773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3997),
  [3775] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4076),
  [3777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4076),
  [3779] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4085),
  [3781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4085),
  [3783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4087),
  [3785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4087),
  [3787] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4095),
  [3789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4095),
  [3791] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4096),
  [3793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4096),
  [3795] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4131),
  [3797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4131),
  [3799] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4063),
  [3801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4063),
  [3803] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4071),
  [3805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4071),
  [3807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4132),
  [3809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4132),
  [3811] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4135),
  [3813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4135),
  [3815] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4137),
  [3817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4137),
  [3819] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4138),
  [3821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4138),
  [3823] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4017),
  [3825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4017),
  [3827] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4122),
  [3829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4122),
  [3831] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4019),
  [3833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4019),
  [3835] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4136),
  [3837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4136),
  [3839] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4134),
  [3841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4134),
  [3843] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4133),
  [3845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4133),
  [3847] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4130),
  [3849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4130),
  [3851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4129),
  [3853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4129),
  [3855] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4046),
  [3857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4046),
  [3859] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4121),
  [3861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4121),
  [3863] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4021),
  [3865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4021),
  [3867] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4128),
  [3869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4128),
  [3871] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4119),
  [3873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4119),
  [3875] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4023),
  [3877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4023),
  [3879] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4118),
  [3881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4118),
  [3883] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4026),
  [3885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4026),
  [3887] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4104),
  [3889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4104),
  [3891] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4030),
  [3893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4030),
  [3895] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4018),
  [3897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4018),
  [3899] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4092),
  [3901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4092),
  [3903] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4036),
  [3905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4036),
  [3907] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4037),
  [3909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4037),
  [3911] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4038),
  [3913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4038),
  [3915] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3607),
  [3917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6104),
  [3919] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7692),
  [3921] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4082),
  [3923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4082),
  [3925] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4040),
  [3927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4040),
  [3929] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4113),
  [3931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4113),
  [3933] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4044),
  [3935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4044),
  [3937] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4047),
  [3939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4047),
  [3941] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4123),
  [3943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4123),
  [3945] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4084),
  [3947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4084),
  [3949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4083),
  [3951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4083),
  [3953] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4081),
  [3955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4081),
  [3957] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4049),
  [3959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4049),
  [3961] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4080),
  [3963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4080),
  [3965] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4079),
  [3967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4079),
  [3969] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4074),
  [3971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4074),
  [3973] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4039),
  [3975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4039),
  [3977] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4073),
  [3979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4073),
  [3981] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4072),
  [3983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4072),
  [3985] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4069),
  [3987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4069),
  [3989] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4107),
  [3991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4107),
  [3993] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3905),
  [3995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3905),
  [3997] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4114),
  [3999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4114),
  [4001] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4115),
  [4003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4115),
  [4005] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4043),
  [4007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4043),
  [4009] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4061),
  [4011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4061),
  [4013] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4057),
  [4015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4057),
  [4017] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4090),
  [4019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4090),
  [4021] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4124),
  [4023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4124),
  [4025] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4125),
  [4027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4125),
  [4029] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4056),
  [4031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4056),
  [4033] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4126),
  [4035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4126),
  [4037] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4127),
  [4039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4127),
  [4041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4004),
  [4043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4004),
  [4045] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4100),
  [4047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4100),
  [4049] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4106),
  [4051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4106),
  [4053] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4097),
  [4055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4097),
  [4057] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4094),
  [4059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4094),
  [4061] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3899),
  [4063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3899),
  [4065] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4099),
  [4067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4099),
  [4069] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4108),
  [4071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4108),
  [4073] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3898),
  [4075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3898),
  [4077] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3996),
  [4079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3996),
  [4081] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4117),
  [4083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4117),
  [4085] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3897),
  [4087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3897),
  [4089] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3895),
  [4091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3895),
  [4093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3894),
  [4095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3894),
  [4097] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3892),
  [4099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3892),
  [4101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4088),
  [4103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4088),
  [4105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4105),
  [4107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4105),
  [4109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3875),
  [4111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3875),
  [4113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4101),
  [4115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4101),
  [4117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3891),
  [4119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3891),
  [4121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3889),
  [4123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3889),
  [4125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4091),
  [4127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4091),
  [4129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3887),
  [4131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3887),
  [4133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4093),
  [4135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4093),
  [4137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3885),
  [4139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3885),
  [4141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3883),
  [4143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3883),
  [4145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3863),
  [4147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3863),
  [4149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 3, 0, 6),
  [4151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 3, 0, 6),
  [4153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7992),
  [4155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(303),
  [4157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452),
  [4159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 2, 0, 6),
  [4161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 2, 0, 6),
  [4163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7864),
  [4165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162),
  [4167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(481),
  [4169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0),
  [4171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0),
  [4173] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7992),
  [4176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3908),
  [4178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3908),
  [4180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3896),
  [4182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3896),
  [4184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3629),
  [4186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3629),
  [4188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3945),
  [4190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3945),
  [4192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3667),
  [4194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3667),
  [4196] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3666),
  [4198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3666),
  [4200] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3912),
  [4202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3912),
  [4204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3954),
  [4206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3954),
  [4208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3933),
  [4210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3933),
  [4212] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3934),
  [4214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3934),
  [4216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7864),
  [4219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3680),
  [4221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3680),
  [4223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3868),
  [4225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3868),
  [4227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3651),
  [4229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3651),
  [4231] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4110),
  [4233] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4003),
  [4235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3621),
  [4237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3621),
  [4239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3702),
  [4241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3702),
  [4243] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3955),
  [4245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3955),
  [4247] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3871),
  [4249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3871),
  [4251] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3935),
  [4253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3935),
  [4255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3632),
  [4257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3632),
  [4259] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3876),
  [4261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3876),
  [4263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3893),
  [4265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3893),
  [4267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3901),
  [4269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3901),
  [4271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4112),
  [4273] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4111),
  [4275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3989),
  [4277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3989),
  [4279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3949),
  [4281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3949),
  [4283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4098),
  [4285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_statement, 3, 0, 0),
  [4287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_statement, 3, 0, 0),
  [4289] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invariant_declaration, 4, 0, 0),
  [4291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invariant_declaration, 4, 0, 0),
  [4293] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, 0, 0),
  [4295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, 0, 0),
  [4297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_body, 1, 0, 0),
  [4299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_body, 1, 0, 0),
  [4301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_body, 4, 0, 0),
  [4303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_body, 4, 0, 0),
  [4305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mixin_template_declaration, 3, 0, 0),
  [4307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mixin_template_declaration, 3, 0, 0),
  [4309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unittest_declaration, 3, 0, 0),
  [4311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unittest_declaration, 3, 0, 0),
  [4313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_declaration, 5, 0, 0),
  [4315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_declaration, 5, 0, 0),
  [4317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 6, 0, 0),
  [4319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 6, 0, 0),
  [4321] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym_pragma_declaration, 3, 0, 0),
  [4324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym_pragma_declaration, 3, 0, 0),
  [4327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 5, 0, 0),
  [4329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 5, 0, 0),
  [4331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_declaration, 6, 0, 0),
  [4333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_declaration, 6, 0, 0),
  [4335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mixin_declaration, 3, 0, 0),
  [4337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mixin_declaration, 3, 0, 0),
  [4339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_declaration, 5, 0, 0),
  [4341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_declaration, 5, 0, 0),
  [4343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, 0, 0),
  [4345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, 0, 0),
  [4347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute_declaration, 2, 0, 0),
  [4349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute_declaration, 2, 0, 0),
  [4351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_statement, 5, 0, 25),
  [4353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_statement, 5, 0, 25),
  [4355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_auto_declaration, 3, 0, 1),
  [4357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_auto_declaration, 3, 0, 1),
  [4359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_statement, 2, 0, 7),
  [4361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_statement, 2, 0, 7),
  [4363] = {.entry = {.count = 1, .reusable = false}}, SHIFT(188),
  [4365] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0),
  [4368] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0),
  [4371] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), SHIFT(2003),
  [4374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_labeled_statement, 2, 0, 6),
  [4376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_labeled_statement, 2, 0, 6),
  [4378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2, 0, 0),
  [4380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2, 0, 0),
  [4382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_statement, 2, 0, 0),
  [4384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_statement, 2, 0, 0),
  [4386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__enum_body, 4, 0, 0),
  [4388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__enum_body, 4, 0, 0),
  [4390] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym_pragma_declaration, 2, 0, 0), REDUCE(sym_pragma_statement, 2, 0, 0),
  [4394] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym_pragma_declaration, 2, 0, 0), REDUCE(sym_pragma_statement, 2, 0, 0),
  [4398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_declaration, 6, 0, 0),
  [4400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_declaration, 6, 0, 0),
  [4402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_out_statement, 5, 0, 0),
  [4404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_out_statement, 5, 0, 0),
  [4406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_manifest_constant, 6, 0, 0),
  [4408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_constant, 6, 0, 0),
  [4410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_synchronized_statement, 2, 0, 0),
  [4412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_synchronized_statement, 2, 0, 0),
  [4414] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_mixin, 5, 0, 0),
  [4416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_mixin, 5, 0, 0),
  [4418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invariant_declaration, 5, 0, 0),
  [4420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invariant_declaration, 5, 0, 0),
  [4422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_foreach_statement, 2, 0, 0),
  [4424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_foreach_statement, 2, 0, 0),
  [4426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2, 0, 0),
  [4428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0),
  [4430] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_final_switch_statement, 2, 0, 0),
  [4432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_final_switch_statement, 2, 0, 0),
  [4434] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 6, 0, 0),
  [4436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 6, 0, 0),
  [4438] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_scope_statement, 1, 0, 0),
  [4440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scope_statement, 1, 0, 0),
  [4442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 2, 0, 0),
  [4444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 2, 0, 0),
  [4446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 2, 0, 0),
  [4448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 2, 0, 0),
  [4450] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2003),
  [4452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2, 0, 0),
  [4454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2, 0, 0),
  [4456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 5, 0, 0),
  [4458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 5, 0, 0),
  [4460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_mixin, 6, 0, 0),
  [4462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_mixin, 6, 0, 0),
  [4464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_manifest_constant, 5, 0, 0),
  [4466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_constant, 5, 0, 0),
  [4468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 6, 0, 0),
  [4470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 6, 0, 0),
  [4472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_declaration, 5, 0, 0),
  [4474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_declaration, 5, 0, 0),
  [4476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 6, 0, 0),
  [4478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 6, 0, 0),
  [4480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_aggregate_body, 3, 0, 0),
  [4482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aggregate_body, 3, 0, 0),
  [4484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 6, 0, 0),
  [4486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 6, 0, 0),
  [4488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invariant_declaration, 6, 0, 0),
  [4490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invariant_declaration, 6, 0, 0),
  [4492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_declaration, 6, 0, 0),
  [4494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_declaration, 6, 0, 0),
  [4496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 5, 0, 0),
  [4498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 5, 0, 0),
  [4500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__enum_body, 3, 0, 0),
  [4502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__enum_body, 3, 0, 0),
  [4504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_declaration, 6, 0, 0),
  [4506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_declaration, 6, 0, 0),
  [4508] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mixin_declaration, 2, 0, 0),
  [4510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mixin_declaration, 2, 0, 0),
  [4512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, 0, 0),
  [4514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, 0, 0),
  [4516] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_declaration, 2, 0, 0),
  [4518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_declaration, 2, 0, 0),
  [4520] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_declaration, 5, 0, 0),
  [4522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_declaration, 5, 0, 0),
  [4524] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 6, 0, 0),
  [4526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 6, 0, 0),
  [4528] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym_pragma_declaration, 2, 0, 0),
  [4531] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym_pragma_declaration, 2, 0, 0),
  [4534] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 5, 0, 0),
  [4536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 5, 0, 0),
  [4538] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_body, 3, 0, 0),
  [4540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_body, 3, 0, 0),
  [4542] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unittest_declaration, 2, 0, 0),
  [4544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unittest_declaration, 2, 0, 0),
  [4546] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_postblit, 5, 0, 0),
  [4548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_postblit, 5, 0, 0),
  [4550] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_declaration, 2, 0, 0),
  [4552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_declaration, 2, 0, 0),
  [4554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_declaration, 2, 0, 0),
  [4556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_declaration, 2, 0, 0),
  [4558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mixin_template_declaration, 2, 0, 0),
  [4560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mixin_template_declaration, 2, 0, 0),
  [4562] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_destructor, 5, 0, 0),
  [4564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_destructor, 5, 0, 0),
  [4566] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invariant_declaration, 2, 0, 0),
  [4568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invariant_declaration, 2, 0, 0),
  [4570] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 3, 0, 0),
  [4572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 3, 0, 0),
  [4574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_reassign, 5, -1, 0),
  [4576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_reassign, 5, -1, 0),
  [4578] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_mixin, 3, 0, 0),
  [4580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_mixin, 3, 0, 0),
  [4582] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 3, 0, 0),
  [4584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 3, 0, 0),
  [4586] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_destructor, 6, 0, 0),
  [4588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_destructor, 6, 0, 0),
  [4590] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_reassign, 6, -1, 0),
  [4592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_reassign, 6, -1, 0),
  [4594] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 3, 0, 0),
  [4596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 3, 0, 0),
  [4598] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_aggregate_body, 2, 0, 0),
  [4600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aggregate_body, 2, 0, 0),
  [4602] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 3, 0, 0),
  [4604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 3, 0, 0),
  [4606] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_auto_declaration, 5, 0, 15),
  [4608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_auto_declaration, 5, 0, 15),
  [4610] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_reassign, 4, -1, 0),
  [4612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_reassign, 4, -1, 0),
  [4614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1880),
  [4616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_body, 2, 0, 0),
  [4618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_body, 2, 0, 0),
  [4620] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 4, 0, 0),
  [4622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 4, 0, 0),
  [4624] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_this, 4, 0, 0),
  [4626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_this, 4, 0, 0),
  [4628] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_declaration, 4, 0, 0),
  [4630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_declaration, 4, 0, 0),
  [4632] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 4, 0, 0),
  [4634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 4, 0, 0),
  [4636] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_debug_specification, 4, 0, 0),
  [4638] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_debug_specification, 4, 0, 0),
  [4640] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, 0, 13),
  [4642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, 0, 13),
  [4644] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200),
  [4646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 0),
  [4648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 0),
  [4650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_reassign, 7, -1, 0),
  [4652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_reassign, 7, -1, 0),
  [4654] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_declaration, 4, 0, 0),
  [4656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_declaration, 4, 0, 0),
  [4658] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_manifest_constant, 4, 0, 0),
  [4660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_constant, 4, 0, 0),
  [4662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_declaration, 7, 0, 0),
  [4664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_declaration, 7, 0, 0),
  [4666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 3, 0, 14),
  [4668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, 0, 14),
  [4670] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 7, 0, 0),
  [4672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 7, 0, 0),
  [4674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__enum_body, 5, 0, 0),
  [4676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__enum_body, 5, 0, 0),
  [4678] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0), SHIFT(2003),
  [4682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_declaration, 7, 0, 0),
  [4684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_declaration, 7, 0, 0),
  [4686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 7, 0, 0),
  [4688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 7, 0, 0),
  [4690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 4, 0, 0),
  [4692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 4, 0, 0),
  [4694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_declaration, 5, 0, 0),
  [4696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_declaration, 5, 0, 0),
  [4698] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_static_foreach_declaration, 10, 0, 0),
  [4701] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_static_foreach_declaration, 10, 0, 0),
  [4704] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_mixin, 7, 0, 0),
  [4706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_mixin, 7, 0, 0),
  [4708] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_postblit, 6, 0, 0),
  [4710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_postblit, 6, 0, 0),
  [4712] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_destructor, 7, 0, 0),
  [4714] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_destructor, 7, 0, 0),
  [4716] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_mixin, 4, 0, 0),
  [4718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_mixin, 4, 0, 0),
  [4720] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 7, 0, 0),
  [4722] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 7, 0, 0),
  [4724] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_declaration, 4, 0, 0),
  [4726] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_declaration, 4, 0, 0),
  [4728] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_foreach_statement, 9, 0, 41),
  [4730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach_statement, 9, 0, 41),
  [4732] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 7, 0, 0),
  [4734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 7, 0, 0),
  [4736] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 7, 0, 0),
  [4738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 7, 0, 0),
  [4740] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_static_foreach_declaration, 9, 0, 0),
  [4743] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_static_foreach_declaration, 9, 0, 0),
  [4746] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_declaration, 4, 0, 0),
  [4748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_declaration, 4, 0, 0),
  [4750] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_version_specification, 4, 0, 0),
  [4752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_version_specification, 4, 0, 0),
  [4754] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 5, 0, 0),
  [4756] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 5, 0, 0),
  [4758] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 4, 0, 0),
  [4760] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 4, 0, 0),
  [4762] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_foreach_statement, 8, 0, 40),
  [4764] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach_statement, 8, 0, 40),
  [4766] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_declaration, 3, 0, 0),
  [4768] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_declaration, 3, 0, 0),
  [4770] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 3, 0, 0),
  [4772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 3, 0, 0),
  [4774] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_postblit, 7, 0, 0),
  [4776] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_postblit, 7, 0, 0),
  [4778] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 3, 0, 0),
  [4780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 3, 0, 0),
  [4782] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_static_foreach_declaration, 8, 0, 0),
  [4785] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_static_foreach_declaration, 8, 0, 0),
  [4788] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_manifest_constant, 7, 0, 0),
  [4790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_constant, 7, 0, 0),
  [4792] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym__statement_no_case_no_default, 1, 0, 0),
  [4795] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration2, 1, 0, 0), REDUCE(sym__statement_no_case_no_default, 1, 0, 0),
  [4798] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_manifest_constant, 3, 0, 0),
  [4800] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_constant, 3, 0, 0),
  [4802] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 39),
  [4804] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 39),
  [4806] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 38),
  [4808] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 38),
  [4810] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_foreach_statement, 7, 0, 37),
  [4812] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach_statement, 7, 0, 37),
  [4814] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 4, 0, 0),
  [4816] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 4, 0, 0),
  [4818] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 4, 0, 0),
  [4820] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 4, 0, 0),
  [4822] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration, 4, 0, 0),
  [4824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration, 4, 0, 0),
  [4826] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1892),
  [4828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 36),
  [4830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 36),
  [4832] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_declaration, 8, 0, 0),
  [4834] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_declaration, 8, 0, 0),
  [4836] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 8, 0, 0),
  [4838] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 8, 0, 0),
  [4840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 35),
  [4842] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 35),
  [4844] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_declaration, 8, 0, 0),
  [4846] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_declaration, 8, 0, 0),
  [4848] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_this, 5, 0, 0),
  [4850] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_this, 5, 0, 0),
  [4852] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 3, 0, 0),
  [4854] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 3, 0, 0),
  [4856] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_invariant_declaration, 3, 0, 0),
  [4858] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_invariant_declaration, 3, 0, 0),
  [4860] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 3, 0, 0),
  [4862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 3, 0, 0),
  [4864] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_mixin, 8, 0, 0),
  [4866] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_mixin, 8, 0, 0),
  [4868] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_destructor, 8, 0, 0),
  [4870] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_destructor, 8, 0, 0),
  [4872] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_foreach_declaration, 8, 0, 0),
  [4874] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_foreach_declaration, 8, 0, 0),
  [4876] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration, 3, 0, 0),
  [4878] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration, 3, 0, 0),
  [4880] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 34),
  [4882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 34),
  [4884] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 33),
  [4886] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 33),
  [4888] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_reassign, 8, -1, 0),
  [4890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_reassign, 8, -1, 0),
  [4892] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_declaration, 4, 0, 0),
  [4894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_declaration, 4, 0, 0),
  [4896] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 8, 0, 0),
  [4898] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 8, 0, 0),
  [4900] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor, 8, 0, 0),
  [4902] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor, 8, 0, 0),
  [4904] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_declaration, 8, 0, 0),
  [4906] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_declaration, 8, 0, 0),
  [4908] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 32),
  [4910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 32),
  [4912] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 8, 0, 0),
  [4914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 8, 0, 0),
  [4916] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1852),
  [4918] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_manifest_constant, 8, 0, 0),
  [4920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_constant, 8, 0, 0),
  [4922] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 31),
  [4924] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 31),
  [4926] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__function_contract, 1, 0, 0), REDUCE(sym_function_body, 2, 0, 0),
  [4929] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__function_contract, 1, 0, 0), REDUCE(sym_function_body, 2, 0, 0),
  [4932] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_declaration, 3, 0, 0),
  [4934] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_declaration, 3, 0, 0),
  [4936] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 3, 0, 0),
  [4938] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 3, 0, 0),
  [4940] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 30),
  [4942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 30),
  [4944] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_out_statement, 2, 0, 0),
  [4946] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_out_statement, 2, 0, 0),
  [4948] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 29),
  [4950] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 29),
  [4952] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_in_statement, 2, 0, 0),
  [4954] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_in_statement, 2, 0, 0),
  [4956] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 6, 0, 28),
  [4958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 6, 0, 28),
  [4960] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 4, 0, 0),
  [4962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 4, 0, 0),
  [4964] = {.entry = {.count = 1, .reusable = false}}, SHIFT(302),
  [4966] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_statement, 4, 0, 0),
  [4968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_statement, 4, 0, 0),
  [4970] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_foreach_declaration, 9, 0, 0),
  [4972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_foreach_declaration, 9, 0, 0),
  [4974] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 4, 0, 0),
  [4976] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 4, 0, 0),
  [4978] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_alias_declaration, 9, 0, 0),
  [4980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_declaration, 9, 0, 0),
  [4982] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 9, 0, 0),
  [4984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 9, 0, 0),
  [4986] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_anonymous_enum_declaration, 9, 0, 0),
  [4988] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_declaration, 9, 0, 0),
  [4990] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_mixin, 9, 0, 0),
  [4992] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_mixin, 9, 0, 0),
  [4994] = {.entry = {.count = 1, .reusable = false}}, SHIFT(300),
  [4996] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_statement, 2, 0, 6),
  [4998] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_statement, 2, 0, 6),
  [5000] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, 0, 6),
  [5002] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, 0, 6),
  [5004] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_auto_declaration, 4, 0, 10),
  [5006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_auto_declaration, 4, 0, 10),
  [5008] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_statement, 4, 0, 21),
  [5010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_statement, 4, 0, 21),
  [5012] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 0),
  [5014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 0),
  [5016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_destructor, 9, 0, 0),
  [5018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_destructor, 9, 0, 0),
  [5020] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_declaration, 9, 0, 0),
  [5022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_declaration, 9, 0, 0),
  [5024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_synchronized_statement, 5, 0, 0),
  [5026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_synchronized_statement, 5, 0, 0),
  [5028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_auto_declaration, 4, 0, 8),
  [5030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_auto_declaration, 4, 0, 8),
  [5032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_foreach_declaration, 10, 0, 0),
  [5034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_foreach_declaration, 10, 0, 0),
  [5036] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_switch_statement, 5, 0, 25),
  [5038] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_statement, 5, 0, 25),
  [5040] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_declaration, 3, 0, 0),
  [5042] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_declaration, 3, 0, 0),
  [5044] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_struct_declaration, 3, 0, 0),
  [5046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct_declaration, 3, 0, 0),
  [5048] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_foreach_declaration, 11, 0, 0),
  [5050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_foreach_declaration, 11, 0, 0),
  [5052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_statement, 6, 0, 29),
  [5054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_statement, 6, 0, 29),
  [5056] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_assert, 3, 0, 0),
  [5058] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_assert, 3, 0, 0),
  [5060] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_scope_guard_statement, 5, 0, 25),
  [5062] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scope_guard_statement, 5, 0, 25),
  [5064] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 27),
  [5066] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 27),
  [5068] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_foreach_declaration, 12, 0, 0),
  [5070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_foreach_declaration, 12, 0, 0),
  [5072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, 0, 26),
  [5074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, 0, 26),
  [5076] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, 0, 25),
  [5078] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, 0, 25),
  [5080] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_asm_statement, 5, 0, 0),
  [5082] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asm_statement, 5, 0, 0),
  [5084] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_function_body, 1, 0, 0), REDUCE(sym__function_contract, 1, 0, 0),
  [5087] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_function_body, 1, 0, 0), REDUCE(sym__function_contract, 1, 0, 0),
  [5090] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0), SHIFT(1962),
  [5094] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1962),
  [5096] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304),
  [5098] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1922),
  [5100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(477),
  [5102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), SHIFT(1962),
  [5105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132),
  [5107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(451),
  [5109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1822),
  [5111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2001),
  [5113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_debug_condition, 1, 0, 0),
  [5115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_debug_condition, 1, 0, 0),
  [5117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6456),
  [5119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6593),
  [5121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6453),
  [5123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6700),
  [5125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6854),
  [5127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6908),
  [5129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(aux_sym_source_file_repeat1, 1, 0, 0),
  [5132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0),
  [5134] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(aux_sym_source_file_repeat1, 1, 0, 0),
  [5137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0),
  [5139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_version_condition, 4, 0, 0),
  [5141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_version_condition, 4, 0, 0),
  [5143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_if_condition, 5, 0, 0),
  [5145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_if_condition, 5, 0, 0),
  [5147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_expression, 4, 0, 0),
  [5149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_expression, 4, 0, 0),
  [5151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition, 1, 0, 0),
  [5153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition, 1, 0, 0),
  [5155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pragma_expression, 6, 0, 0),
  [5157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pragma_expression, 6, 0, 0),
  [5159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_debug_condition, 4, 0, 0),
  [5161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_debug_condition, 4, 0, 0),
  [5163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_condition, 6, 0, 0),
  [5165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_condition, 6, 0, 0),
  [5167] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_condition, 3, 0, 0),
  [5169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_condition, 3, 0, 0),
  [5171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
  [5173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7218),
  [5175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1813),
  [5177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5130),
  [5179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1781),
  [5181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7687),
  [5183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6073),
  [5185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2694),
  [5187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2160),
  [5189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5633),
  [5191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6133),
  [5193] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4169),
  [5195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2954),
  [5197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2456),
  [5199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6420),
  [5201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6733),
  [5203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1788),
  [5205] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5130),
  [5208] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(1781),
  [5211] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7687),
  [5214] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6073),
  [5217] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(3015),
  [5220] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7044),
  [5223] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2694),
  [5226] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2978),
  [5229] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2160),
  [5232] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5633),
  [5235] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7047),
  [5238] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6133),
  [5241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4169),
  [5244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2954),
  [5247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2456),
  [5250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6153),
  [5253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7912),
  [5256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6152),
  [5259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6420),
  [5262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6733),
  [5265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1785),
  [5267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1779),
  [5269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1778),
  [5271] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5112),
  [5273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1799),
  [5275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7457),
  [5277] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6344),
  [5279] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2999),
  [5281] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7207),
  [5283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2697),
  [5285] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2985),
  [5287] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2155),
  [5289] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5582),
  [5291] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7206),
  [5293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5909),
  [5295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4187),
  [5297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2945),
  [5299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2459),
  [5301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5915),
  [5303] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7874),
  [5305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5916),
  [5307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6830),
  [5309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6495),
  [5311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1809),
  [5313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1800),
  [5315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1807),
  [5317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1789),
  [5319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1806),
  [5321] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5112),
  [5324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(1799),
  [5327] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7457),
  [5330] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6344),
  [5333] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2999),
  [5336] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7207),
  [5339] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2697),
  [5342] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2985),
  [5345] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2155),
  [5348] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5582),
  [5351] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7206),
  [5354] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5909),
  [5357] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4187),
  [5360] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2945),
  [5363] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2459),
  [5366] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5915),
  [5369] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7874),
  [5372] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5916),
  [5375] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6830),
  [5378] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6495),
  [5381] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5137),
  [5384] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(1800),
  [5387] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7819),
  [5390] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6060),
  [5393] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(3000),
  [5396] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7778),
  [5399] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2718),
  [5402] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2977),
  [5405] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2153),
  [5408] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(5712),
  [5411] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7519),
  [5414] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6292),
  [5417] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(4200),
  [5420] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2925),
  [5423] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(2463),
  [5426] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6382),
  [5429] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(7269),
  [5432] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6280),
  [5435] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6546),
  [5438] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(6566),
  [5441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1805),
  [5443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1808),
  [5445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1798),
  [5447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1796),
  [5449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_def, 1, 0, 0),
  [5451] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_def, 1, 0, 0),
  [5453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1814),
  [5455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, 0, 0),
  [5457] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7710),
  [5459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_def, 2, 0, 0),
  [5461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_def, 2, 0, 0),
  [5463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2186),
  [5465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2014),
  [5467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1705),
  [5469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1829),
  [5471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2829),
  [5473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1888),
  [5475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1642),
  [5477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2076),
  [5479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2625),
  [5481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1549),
  [5483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1882),
  [5485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2729),
  [5487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2033),
  [5489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1740),
  [5491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(605),
  [5493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4027),
  [5495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1921),
  [5497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2846),
  [5499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1955),
  [5501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2058),
  [5503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2818),
  [5505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1804),
  [5507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1696),
  [5509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2059),
  [5511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1577),
  [5513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1564),
  [5515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5119),
  [5517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2037),
  [5519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2244),
  [5521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613),
  [5523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7767),
  [5525] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6299),
  [5527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2707),
  [5529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5719),
  [5531] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4172),
  [5533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2465),
  [5535] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6757),
  [5537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2063),
  [5539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2779),
  [5541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1793),
  [5543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1709),
  [5545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1931),
  [5547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1736),
  [5549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3939),
  [5551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1937),
  [5553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2377),
  [5555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1581),
  [5557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2897),
  [5559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2041),
  [5561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1714),
  [5563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1983),
  [5565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2645),
  [5567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1787),
  [5569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7729),
  [5571] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6259),
  [5573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2450),
  [5575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1429),
  [5577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1945),
  [5579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2043),
  [5581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1980),
  [5583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2739),
  [5585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1794),
  [5587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7828),
  [5589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5835),
  [5591] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2467),
  [5593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2627),
  [5595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2015),
  [5597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6447),
  [5599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2130),
  [5601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1744),
  [5603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1993),
  [5605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1571),
  [5607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1735),
  [5609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2770),
  [5611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1974),
  [5613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1545),
  [5615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1827),
  [5617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2309),
  [5619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1953),
  [5621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2853),
  [5623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1948),
  [5625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2062),
  [5627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1497),
  [5629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596),
  [5631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1574),
  [5633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1862),
  [5635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2726),
  [5637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1923),
  [5639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2070),
  [5641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1930),
  [5643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2370),
  [5645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1502),
  [5647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1879),
  [5649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1515),
  [5651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1873),
  [5653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1519),
  [5655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1872),
  [5657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2176),
  [5659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2007),
  [5661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2477),
  [5663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1821),
  [5665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3932),
  [5667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1834),
  [5669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2888),
  [5671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1900),
  [5673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2610),
  [5675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2788),
  [5677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1816),
  [5679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1567),
  [5681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1559),
  [5683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2079),
  [5685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2480),
  [5687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1573),
  [5689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1929),
  [5691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2495),
  [5693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1803),
  [5695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1508),
  [5697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1487),
  [5699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2304),
  [5701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2500),
  [5703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1926),
  [5705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1991),
  [5707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1860),
  [5709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1412),
  [5711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1485),
  [5713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1958),
  [5715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1465),
  [5717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(601),
  [5719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1889),
  [5721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2278),
  [5723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2448),
  [5725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1554),
  [5727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2024),
  [5729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2044),
  [5731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2066),
  [5733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1968),
  [5735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2319),
  [5737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2753),
  [5739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2295),
  [5741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1887),
  [5743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3774),
  [5745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2022),
  [5747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1859),
  [5749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1391),
  [5751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1913),
  [5753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1399),
  [5755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584),
  [5757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2018),
  [5759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2371),
  [5761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2121),
  [5763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2064),
  [5765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2571),
  [5767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2054),
  [5769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5730),
  [5771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2102),
  [5773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2569),
  [5775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2036),
  [5777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2736),
  [5779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2012),
  [5781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2568),
  [5783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2049),
  [5785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2349),
  [5787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2885),
  [5789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2782),
  [5791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1914),
  [5793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2028),
  [5795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1998),
  [5797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1566),
  [5799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2023),
  [5801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2589),
  [5803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1783),
  [5805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1883),
  [5807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1363),
  [5809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2069),
  [5811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1966),
  [5813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2528),
  [5815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1542),
  [5817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1529),
  [5819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1876),
  [5821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1995),
  [5823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5620),
  [5825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2692),
  [5827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1924),
  [5829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4060),
  [5831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1877),
  [5833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1673),
  [5835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2071),
  [5837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2075),
  [5839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2339),
  [5841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2552),
  [5843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1884),
  [5845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2113),
  [5847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2048),
  [5849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2329),
  [5851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2061),
  [5853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2346),
  [5855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2038),
  [5857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1608),
  [5859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1944),
  [5861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2367),
  [5863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1903),
  [5865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2010),
  [5867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2676),
  [5869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1985),
  [5871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396),
  [5873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1987),
  [5875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2673),
  [5877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2227),
  [5879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2060),
  [5881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2887),
  [5883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1837),
  [5885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1936),
  [5887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6502),
  [5889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1400),
  [5891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1901),
  [5893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2606),
  [5895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1815),
  [5897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2230),
  [5899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608),
  [5901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2857),
  [5903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2756),
  [5905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2095),
  [5907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2496),
  [5909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1782),
  [5911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2672),
  [5913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2320),
  [5915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2092),
  [5917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2511),
  [5919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1780),
  [5921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2093),
  [5923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1501),
  [5925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1915),
  [5927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1616),
  [5929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1836),
  [5931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1512),
  [5933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2086),
  [5935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1841),
  [5937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1595),
  [5939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1810),
  [5941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2053),
  [5943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2563),
  [5945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1870),
  [5947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585),
  [5949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1606),
  [5951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2202),
  [5953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1795),
  [5955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1939),
  [5957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1853),
  [5959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1463),
  [5961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1960),
  [5963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2671),
  [5965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2379),
  [5967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2491),
  [5969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2051),
  [5971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2340),
  [5973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2743),
  [5975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1918),
  [5977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2690),
  [5979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1910),
  [5981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2094),
  [5983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1706),
  [5985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2663),
  [5987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1952),
  [5989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2654),
  [5991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1975),
  [5993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2373),
  [5995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2841),
  [5997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2659),
  [5999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2828),
  [6001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1864),
  [6003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1679),
  [6005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1761),
  [6007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1828),
  [6009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2040),
  [6011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1818),
  [6013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1895),
  [6015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2844),
  [6017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1846),
  [6019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1364),
  [6021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1954),
  [6023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1959),
  [6025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611),
  [6027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2835),
  [6029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1904),
  [6031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2004),
  [6033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1486),
  [6035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2085),
  [6037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1906),
  [6039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1801),
  [6041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2642),
  [6043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1989),
  [6045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2242),
  [6047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2031),
  [6049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2035),
  [6051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2815),
  [6053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1949),
  [6055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2735),
  [6057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2073),
  [6059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2497),
  [6061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2021),
  [6063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2822),
  [6065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1986),
  [6067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1976),
  [6069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2323),
  [6071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2096),
  [6073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2034),
  [6075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2109),
  [6077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2696),
  [6079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3773),
  [6081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1992),
  [6083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1454),
  [6085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2827),
  [6087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2342),
  [6089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2276),
  [6091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5596),
  [6093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1868),
  [6095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1905),
  [6097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2513),
  [6099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1941),
  [6101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2241),
  [6103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5703),
  [6105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1833),
  [6107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2011),
  [6109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2863),
  [6111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2106),
  [6113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1433),
  [6115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2592),
  [6117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1843),
  [6119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2632),
  [6121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2082),
  [6123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1969),
  [6125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2510),
  [6127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2849),
  [6129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1866),
  [6131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2341),
  [6133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2026),
  [6135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1874),
  [6137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2078),
  [6139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2032),
  [6141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2639),
  [6143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2785),
  [6145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2025),
  [6147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1896),
  [6149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1578),
  [6151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2228),
  [6153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2605),
  [6155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1984),
  [6157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2787),
  [6159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2030),
  [6161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1912),
  [6163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2854),
  [6165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1817),
  [6167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2896),
  [6169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2754),
  [6171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2834),
  [6173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6544),
  [6175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2055),
  [6177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2724),
  [6179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1894),
  [6181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2710),
  [6183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1977),
  [6185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2509),
  [6187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2008),
  [6189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1990),
  [6191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2894),
  [6193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1790),
  [6195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2634),
  [6197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1932),
  [6199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6424),
  [6201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2665),
  [6203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2056),
  [6205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2734),
  [6207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2017),
  [6209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2489),
  [6211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1898),
  [6213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2087),
  [6215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2089),
  [6217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1847),
  [6219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2027),
  [6221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2324),
  [6223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2046),
  [6225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2522),
  [6227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1802),
  [6229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1851),
  [6231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1824),
  [6233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1784),
  [6235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1994),
  [6237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1710),
  [6239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1856),
  [6241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1848),
  [6243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2778),
  [6245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1791),
  [6247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607),
  [6249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2047),
  [6251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1792),
  [6253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1849),
  [6255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594),
  [6257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1820),
  [6259] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0), SHIFT(1935),
  [6263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1850),
  [6265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2292),
  [6267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(609),
  [6269] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), SHIFT(1935),
  [6272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1972),
  [6274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1961),
  [6276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2019),
  [6278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590),
  [6280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1797),
  [6282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1982),
  [6284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2653),
  [6286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1786),
  [6288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1971),
  [6290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1943),
  [6292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1965),
  [6294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1916),
  [6296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1500),
  [6298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), SHIFT(2067),
  [6301] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0), SHIFT(2067),
  [6305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7922),
  [6307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186),
  [6309] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149),
  [6311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5128),
  [6313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1858),
  [6315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1369),
  [6317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7651),
  [6319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6351),
  [6321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2991),
  [6323] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6984),
  [6325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2859),
  [6327] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2979),
  [6329] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2423),
  [6331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5717),
  [6333] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6964),
  [6335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6352),
  [6337] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4224),
  [6339] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2966),
  [6341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2953),
  [6343] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6358),
  [6345] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7898),
  [6347] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6366),
  [6349] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6457),
  [6351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7682),
  [6353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7906),
  [6355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345),
  [6357] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7922),
  [6360] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5109),
  [6362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2077),
  [6364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2573),
  [6366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7609),
  [6368] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6235),
  [6370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3013),
  [6372] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7666),
  [6374] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2984),
  [6376] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5615),
  [6378] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7679),
  [6380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6223),
  [6382] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4229),
  [6384] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2956),
  [6386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2950),
  [6388] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6219),
  [6390] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7681),
  [6392] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6217),
  [6394] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6610),
  [6396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7835),
  [6398] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6389),
  [6400] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2941),
  [6402] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2919),
  [6404] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5115),
  [6406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2002),
  [6408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2775),
  [6410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7589),
  [6412] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5955),
  [6414] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3010),
  [6416] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7182),
  [6418] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2983),
  [6420] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5716),
  [6422] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7176),
  [6424] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5956),
  [6426] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4171),
  [6428] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2912),
  [6430] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2965),
  [6432] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5964),
  [6434] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7877),
  [6436] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5968),
  [6438] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6803),
  [6440] = {.entry = {.count = 1, .reusable = false}}, SHIFT(228),
  [6442] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5124),
  [6444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1902),
  [6446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2603),
  [6448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7698),
  [6450] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6123),
  [6452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2993),
  [6454] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7071),
  [6456] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2976),
  [6458] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5692),
  [6460] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7074),
  [6462] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6122),
  [6464] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4184),
  [6466] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2929),
  [6468] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2951),
  [6470] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6121),
  [6472] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7915),
  [6474] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6120),
  [6476] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6685),
  [6478] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5127),
  [6480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1832),
  [6482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1649),
  [6484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7476),
  [6486] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6182),
  [6488] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3004),
  [6490] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7511),
  [6492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2982),
  [6494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5603),
  [6496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7505),
  [6498] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6179),
  [6500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4174),
  [6502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2922),
  [6504] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2915),
  [6506] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6176),
  [6508] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7839),
  [6510] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5732),
  [6512] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6645),
  [6514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5113),
  [6516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1940),
  [6518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2364),
  [6520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7738),
  [6522] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5784),
  [6524] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2994),
  [6526] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7202),
  [6528] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2987),
  [6530] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5656),
  [6532] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7205),
  [6534] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5781),
  [6536] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4175),
  [6538] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2949),
  [6540] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2959),
  [6542] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5780),
  [6544] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7931),
  [6546] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5779),
  [6548] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6928),
  [6550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7770),
  [6552] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5991),
  [6554] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5992),
  [6556] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2914),
  [6558] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2963),
  [6560] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6786),
  [6562] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7906),
  [6565] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227),
  [6567] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225),
  [6569] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0), SHIFT(1967),
  [6573] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), SHIFT(1967),
  [6576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1967),
  [6578] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1935),
  [6580] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1897),
  [6582] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1881),
  [6584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148),
  [6586] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146),
  [6588] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2067),
  [6590] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0), SHIFT(1947),
  [6594] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1830),
  [6596] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185),
  [6598] = {.entry = {.count = 1, .reusable = false}}, SHIFT(341),
  [6600] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183),
  [6602] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1947),
  [6604] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343),
  [6606] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2045),
  [6608] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), SHIFT(1947),
  [6611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5088),
  [6613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98),
  [6615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3200),
  [6617] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3234),
  [6619] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3222),
  [6621] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3236),
  [6623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3128),
  [6625] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6664),
  [6627] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3426),
  [6629] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3127),
  [6631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7400),
  [6633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3365),
  [6635] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3238),
  [6637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3213),
  [6639] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_arguments, 2, 0, 0),
  [6641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arguments, 2, 0, 0),
  [6643] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_arguments, 4, 0, 0),
  [6645] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arguments, 4, 0, 0),
  [6647] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_at_attribute, 2, 0, 0),
  [6649] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_attribute, 2, 0, 0),
  [6651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716),
  [6653] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_arguments, 3, 0, 0),
  [6655] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_arguments, 3, 0, 0),
  [6657] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_instance, 2, 0, 0),
  [6659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_instance, 2, 0, 0),
  [6661] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3, 0, 0),
  [6663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3, 0, 0),
  [6665] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_at_attribute, 4, 0, 0),
  [6667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_attribute, 4, 0, 0),
  [6669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_at_attribute, 3, 0, 0),
  [6671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_at_attribute, 3, 0, 0),
  [6673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3089),
  [6675] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2, 0, 0),
  [6677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2, 0, 0),
  [6679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0),
  [6681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0),
  [6683] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(6048),
  [6686] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2423),
  [6689] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2944),
  [6692] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2939),
  [6695] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2905),
  [6698] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2918),
  [6701] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2935),
  [6704] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(7523),
  [6707] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0),
  [6710] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0),
  [6713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7477),
  [6715] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7613),
  [6717] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7988),
  [6719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7479),
  [6721] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_contract, 1, 0, 0),
  [6723] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_contract, 1, 0, 0),
  [6725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7520),
  [6727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7481),
  [6729] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7197),
  [6731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8044),
  [6733] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8054),
  [6735] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8052),
  [6737] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6979),
  [6739] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8036),
  [6741] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8005),
  [6743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8050),
  [6745] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8040),
  [6747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8046),
  [6749] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7064),
  [6751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8048),
  [6753] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8042),
  [6755] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8026),
  [6757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7616),
  [6759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8020),
  [6761] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8000),
  [6763] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7308),
  [6765] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8016),
  [6767] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7188),
  [6769] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7980),
  [6771] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8010),
  [6773] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7612),
  [6775] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7629),
  [6777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8023),
  [6779] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8033),
  [6781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5905),
  [6783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6562),
  [6785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6594),
  [6787] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1956),
  [6789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6701),
  [6791] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1920),
  [6793] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1934),
  [6795] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1951),
  [6797] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1831),
  [6799] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2005),
  [6801] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1871),
  [6803] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym_deprecated_attribute, 1, 0, 0),
  [6806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_deprecated_attribute, 1, 0, 0),
  [6808] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym_deprecated_attribute, 1, 0, 0),
  [6811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1056),
  [6813] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_deprecated_attribute, 1, 0, 0),
  [6815] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2081),
  [6817] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1997),
  [6819] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2090),
  [6821] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1970),
  [6823] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1825),
  [6825] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6524),
  [6828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6118),
  [6830] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6683),
  [6833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7502),
  [6835] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7422),
  [6837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6375),
  [6839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5545),
  [6841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7845),
  [6843] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7503),
  [6845] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), REDUCE(aux_sym_module_declaration_repeat1, 1, 0, 0),
  [6849] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), REDUCE(aux_sym_module_declaration_repeat1, 1, 0, 0),
  [6853] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_module_declaration_repeat1, 1, 0, 0),
  [6855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 6, 0, 0),
  [6857] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 6, 0, 0),
  [6859] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6425),
  [6862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6062),
  [6864] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6517),
  [6867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6188),
  [6869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6047),
  [6871] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6628),
  [6874] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6625),
  [6877] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [6881] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [6885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3723),
  [6887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6090),
  [6889] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6408),
  [6892] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 5, 0, 0),
  [6894] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 5, 0, 0),
  [6896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6505),
  [6898] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6763),
  [6901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6239),
  [6903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6402),
  [6905] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6774),
  [6908] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 4, 0, 0),
  [6910] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 4, 0, 0),
  [6912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6000),
  [6914] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_align_attribute, 1, 0, 0),
  [6916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_align_attribute, 1, 0, 0),
  [6918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1052),
  [6920] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6497),
  [6923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6293),
  [6925] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6577),
  [6928] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6657),
  [6931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7743),
  [6933] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7741),
  [6935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7705),
  [6937] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7100),
  [6939] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_deprecated_attribute, 4, 0, 0),
  [6941] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_deprecated_attribute, 4, 0, 0),
  [6943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7661),
  [6945] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6957),
  [6947] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6403),
  [6950] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6563),
  [6953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6149),
  [6955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6319),
  [6957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7745),
  [6959] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7230),
  [6961] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6649),
  [6964] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 3, 0, 0),
  [6966] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 3, 0, 0),
  [6968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7772),
  [6970] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7318),
  [6972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3652),
  [6974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7607),
  [6976] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7135),
  [6978] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(6595),
  [6981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_attribute, 7, 0, 24),
  [6983] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_attribute, 7, 0, 24),
  [6985] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_attribute, 7, 0, 0),
  [6987] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_attribute, 7, 0, 0),
  [6989] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_attribute, 5, 0, 0),
  [6991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_attribute, 5, 0, 0),
  [6993] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__attribute, 4, 0, 0),
  [6995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attribute, 4, 0, 0),
  [6997] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_attribute, 4, 0, 0),
  [6999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_attribute, 4, 0, 0),
  [7001] = {.entry = {.count = 3, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(sym__attribute, 1, 0, 0), SHIFT(6023),
  [7005] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_linkage_attribute, 6, 0, 0),
  [7007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_linkage_attribute, 6, 0, 0),
  [7009] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_align_attribute, 4, 0, 0),
  [7011] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_align_attribute, 4, 0, 0),
  [7013] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4845),
  [7015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3361),
  [7017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3745),
  [7019] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4940),
  [7021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3360),
  [7023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3692),
  [7025] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4896),
  [7027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3307),
  [7029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3765),
  [7031] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4822),
  [7033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3344),
  [7035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3639),
  [7037] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4876),
  [7039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3319),
  [7041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3741),
  [7043] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4945),
  [7045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3345),
  [7047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3641),
  [7049] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4979),
  [7051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3336),
  [7053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3644),
  [7055] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4978),
  [7057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3322),
  [7059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3688),
  [7061] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4853),
  [7063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3314),
  [7065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3630),
  [7067] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4915),
  [7069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3354),
  [7071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3685),
  [7073] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4953),
  [7075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3325),
  [7077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3718),
  [7079] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4920),
  [7081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3348),
  [7083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3727),
  [7085] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5033),
  [7087] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3055),
  [7089] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5024),
  [7091] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3018),
  [7093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5030),
  [7095] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3028),
  [7097] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5063),
  [7099] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7662),
  [7101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5036),
  [7103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3060),
  [7105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5050),
  [7107] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7706),
  [7109] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5066),
  [7111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7746),
  [7113] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5026),
  [7115] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3041),
  [7117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5021),
  [7119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3030),
  [7121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5009),
  [7123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3024),
  [7125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5062),
  [7127] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7646),
  [7129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5043),
  [7131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7584),
  [7133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5061),
  [7135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7274),
  [7137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5012),
  [7139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3062),
  [7141] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5037),
  [7143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3044),
  [7145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5040),
  [7147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5049),
  [7149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7508),
  [7151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5031),
  [7153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3054),
  [7155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5032),
  [7157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3017),
  [7159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5018),
  [7161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5023),
  [7163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3053),
  [7165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5068),
  [7167] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7734),
  [7169] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5055),
  [7171] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7608),
  [7173] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5044),
  [7175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7471),
  [7177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5029),
  [7179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5045),
  [7181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7370),
  [7183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5019),
  [7185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5058),
  [7187] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7693),
  [7189] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5039),
  [7191] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6151),
  [7193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4692),
  [7195] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5051),
  [7197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6679),
  [7199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3716),
  [7201] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7642),
  [7203] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5086),
  [7205] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6433),
  [7207] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6945),
  [7209] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7306),
  [7211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6805),
  [7213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6413),
  [7215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6515),
  [7217] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6708),
  [7219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6693),
  [7221] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6659),
  [7223] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6781),
  [7225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6863),
  [7227] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6504),
  [7229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6946),
  [7231] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6775),
  [7233] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6745),
  [7235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6895),
  [7237] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4874),
  [7239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3526),
  [7241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(760),
  [7243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3526),
  [7245] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4794),
  [7247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567),
  [7249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714),
  [7251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7386),
  [7253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7387),
  [7255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7388),
  [7257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5107),
  [7259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5283),
  [7261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4916),
  [7263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(542),
  [7265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4807),
  [7267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5277),
  [7269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4786),
  [7271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4794),
  [7273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4810),
  [7275] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4676),
  [7277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(563),
  [7279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(723),
  [7281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7416),
  [7283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7417),
  [7285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7418),
  [7287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5101),
  [7289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5280),
  [7291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4969),
  [7293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548),
  [7295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4718),
  [7297] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5293),
  [7299] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4725),
  [7301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4676),
  [7303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4714),
  [7305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2399),
  [7307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(553),
  [7309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(753),
  [7311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7727),
  [7313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7730),
  [7315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7732),
  [7317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5100),
  [7319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5278),
  [7321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4918),
  [7323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541),
  [7325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2413),
  [7327] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5289),
  [7329] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2401),
  [7331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2399),
  [7333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2400),
  [7335] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3463),
  [7337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725),
  [7339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3463),
  [7341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3572),
  [7343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(763),
  [7345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3572),
  [7347] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3374),
  [7349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(558),
  [7351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(757),
  [7353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7452),
  [7355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7453),
  [7357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7454),
  [7359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5132),
  [7361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5273),
  [7363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4877),
  [7365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543),
  [7367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3375),
  [7369] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5249),
  [7371] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3364),
  [7373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3374),
  [7375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3376),
  [7377] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3257),
  [7379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(560),
  [7381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730),
  [7383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7448),
  [7385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7449),
  [7387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7450),
  [7389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5141),
  [7391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5296),
  [7393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4891),
  [7395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546),
  [7397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3241),
  [7399] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5262),
  [7401] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3256),
  [7403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3257),
  [7405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3252),
  [7407] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3101),
  [7409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(569),
  [7411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(767),
  [7413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7355),
  [7415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7356),
  [7417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7357),
  [7419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5134),
  [7421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5238),
  [7423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4870),
  [7425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(534),
  [7427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3124),
  [7429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5253),
  [7431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3123),
  [7433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3101),
  [7435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3125),
  [7437] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3312),
  [7439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562),
  [7441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728),
  [7443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7443),
  [7445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7444),
  [7447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7445),
  [7449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5090),
  [7451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5321),
  [7453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4907),
  [7455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547),
  [7457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3321),
  [7459] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5265),
  [7461] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3323),
  [7463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3312),
  [7465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3320),
  [7467] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4619),
  [7469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576),
  [7471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(769),
  [7473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7210),
  [7475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7211),
  [7477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7212),
  [7479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5093),
  [7481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5267),
  [7483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4816),
  [7485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531),
  [7487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4603),
  [7489] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5251),
  [7491] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4600),
  [7493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4619),
  [7495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4606),
  [7497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(764),
  [7499] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5005),
  [7501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6343),
  [7503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3148),
  [7505] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5085),
  [7507] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7113),
  [7509] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3174),
  [7511] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7515),
  [7513] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3197),
  [7515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7243),
  [7517] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3192),
  [7519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7016),
  [7521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3194),
  [7523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7112),
  [7525] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3180),
  [7527] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7050),
  [7529] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3172),
  [7531] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6970),
  [7533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3199),
  [7535] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6971),
  [7537] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3190),
  [7539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7410),
  [7541] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3169),
  [7543] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7415),
  [7545] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3170),
  [7547] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7516),
  [7549] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3173),
  [7551] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7128),
  [7553] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3175),
  [7555] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7125),
  [7557] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3177),
  [7559] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7242),
  [7561] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3182),
  [7563] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5017),
  [7565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3584),
  [7567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3338),
  [7569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4655),
  [7571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3487),
  [7573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4645),
  [7575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3335),
  [7577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5008),
  [7579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3392),
  [7581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5025),
  [7583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5011),
  [7585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3250),
  [7587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3482),
  [7589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3351),
  [7591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4593),
  [7593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3569),
  [7595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3391),
  [7597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4589),
  [7599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3582),
  [7601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0),
  [7603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0),
  [7605] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(6251),
  [7608] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(3234),
  [7611] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(3222),
  [7614] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(3204),
  [7617] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(3238),
  [7620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3471),
  [7622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3389),
  [7624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3259),
  [7626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3243),
  [7628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3591),
  [7630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3508),
  [7632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4592),
  [7634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4646),
  [7636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3555),
  [7638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4983),
  [7640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4980),
  [7642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5002),
  [7644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3090),
  [7646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4991),
  [7648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4989),
  [7650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4998),
  [7652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4993),
  [7654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_suffix, 2, 0, 0),
  [7656] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_suffix, 2, 0, 0),
  [7658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6225),
  [7660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3246),
  [7662] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0),
  [7664] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0),
  [7666] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(6225),
  [7669] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(3246),
  [7672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_suffix, 3, 0, 0),
  [7674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_suffix, 3, 0, 0),
  [7676] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6542),
  [7678] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4163),
  [7680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6281),
  [7682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3088),
  [7684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(743),
  [7686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6093),
  [7688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3311),
  [7690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0),
  [7692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0),
  [7694] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), SHIFT(3200),
  [7697] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(6093),
  [7700] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(3311),
  [7703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6151),
  [7705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921),
  [7707] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(3426),
  [7710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6323),
  [7712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3382),
  [7714] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(6323),
  [7717] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(3382),
  [7720] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), SHIFT(6357),
  [7723] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3091),
  [7725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(752),
  [7727] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), SHIFT(5551),
  [7730] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [7733] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [7736] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_storage_class, 1, 0, 0), SHIFT(3723),
  [7739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0),
  [7741] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 2, 0, 0),
  [7743] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 6, 0, 0),
  [7745] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 6, 0, 0),
  [7747] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_function_attribute, 1, 0, 0),
  [7749] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_member_function_attribute, 1, 0, 0),
  [7751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3083),
  [7753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715),
  [7755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 5, 0, 0),
  [7757] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 5, 0, 0),
  [7759] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 0),
  [7761] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 3, 0, 0),
  [7763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 4, 0, 0),
  [7765] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 4, 0, 0),
  [7767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 7, 0, 0),
  [7769] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 7, 0, 0),
  [7771] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5083),
  [7773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2668),
  [7775] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2905),
  [7777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1397),
  [7779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1533),
  [7781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2237),
  [7783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1451),
  [7785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1492),
  [7787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1379),
  [7789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2633),
  [7791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2807),
  [7793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2269),
  [7795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2865),
  [7797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2761),
  [7799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2722),
  [7801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1653),
  [7803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2650),
  [7805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1592),
  [7807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1756),
  [7809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2313),
  [7811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2557),
  [7813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1708),
  [7815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2472),
  [7817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1629),
  [7819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2286),
  [7821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2794),
  [7823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2705),
  [7825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2597),
  [7827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2595),
  [7829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2515),
  [7831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2838),
  [7833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2168),
  [7835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6277),
  [7837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3318),
  [7839] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0),
  [7841] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0),
  [7843] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(6277),
  [7846] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(3316),
  [7849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3316),
  [7851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3079),
  [7853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(768),
  [7855] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5131),
  [7857] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3460),
  [7859] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(6161),
  [7862] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(3409),
  [7865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6161),
  [7867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3420),
  [7869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3409),
  [7871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5551),
  [7873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6342),
  [7875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3446),
  [7877] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(6342),
  [7880] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(3445),
  [7883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3445),
  [7885] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3065),
  [7887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718),
  [7889] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5027),
  [7891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5553),
  [7893] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__qualified_id, 1, 0, 0),
  [7895] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0),
  [7897] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0),
  [7899] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(6147),
  [7902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707),
  [7904] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(807),
  [7908] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 1, 0, 0),
  [7911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1238),
  [7913] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5117),
  [7915] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4109),
  [7917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(525),
  [7919] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2388),
  [7922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1863),
  [7924] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6294),
  [7926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__primary_expr, 2, 0, 0),
  [7928] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__primary_expr, 2, 0, 0),
  [7930] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 2, 0, 0), SHIFT(6147),
  [7933] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 2, 0, 0),
  [7936] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 2, 0, 0), SHIFT(807),
  [7940] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0),
  [7942] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 2, 0, 0),
  [7945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1890),
  [7947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3080),
  [7949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(761),
  [7951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1823),
  [7953] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__template_parameter_list, 3, 0, 0),
  [7955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__template_parameter_list, 2, 0, 0),
  [7957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1767),
  [7959] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 3, 0, 0),
  [7961] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 3, 0, 0),
  [7963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(803),
  [7965] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3497),
  [7967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6680),
  [7969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6682),
  [7971] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 0),
  [7973] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 1, 0, 0),
  [7975] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3493),
  [7977] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2387),
  [7980] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2, 0, 0),
  [7982] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type, 2, 0, 0),
  [7984] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3490),
  [7986] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(6215),
  [7989] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 1, 0, 0),
  [7992] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(848),
  [7996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0),
  [7998] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0),
  [8000] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(803),
  [8003] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(3497),
  [8006] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6680),
  [8009] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6682),
  [8012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6336),
  [8014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843),
  [8016] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2383),
  [8019] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2384),
  [8022] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2392),
  [8025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_traits_expression, 4, 0, 0),
  [8027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_traits_expression, 4, 0, 0),
  [8029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1011),
  [8031] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(6147),
  [8034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711),
  [8036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1122),
  [8038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701),
  [8040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1073),
  [8042] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type2, 1, 0, 0),
  [8044] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(6261),
  [8047] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__type2, 1, 0, 0), REDUCE(sym__primary_expr, 1, 0, 0),
  [8050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type2, 1, 0, 0),
  [8052] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__type2, 1, 0, 0), REDUCE(sym__primary_expr, 1, 0, 0),
  [8055] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mixin_expression, 4, 0, 0),
  [8057] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mixin_expression, 4, 0, 0),
  [8059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1268),
  [8061] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_traits_expression, 6, 0, 0),
  [8063] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_traits_expression, 6, 0, 0),
  [8065] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typeof_expression, 4, 0, 0),
  [8067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typeof_expression, 4, 0, 0),
  [8069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(833),
  [8071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1319),
  [8073] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4179),
  [8075] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4180),
  [8077] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4181),
  [8079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1336),
  [8081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1344),
  [8083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1306),
  [8085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1327),
  [8087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1325),
  [8089] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__parameter_repeat1, 2, 0, 0),
  [8091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameter_repeat1, 2, 0, 0),
  [8093] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameter_repeat1, 2, 0, 0), SHIFT_REPEAT(6251),
  [8096] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__parameter_repeat1, 2, 0, 0), SHIFT_REPEAT(3921),
  [8099] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__parameter_repeat1, 2, 0, 0), SHIFT_REPEAT(3204),
  [8102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type2, 4, 0, 0),
  [8104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type2, 4, 0, 0),
  [8106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_vector_type, 4, 0, 0),
  [8108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_vector_type, 4, 0, 0),
  [8110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 2, 0, 0), SHIFT(6215),
  [8113] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 2, 0, 0), SHIFT(848),
  [8117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3640),
  [8119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5978),
  [8121] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3728),
  [8123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3476),
  [8125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7733),
  [8127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 5, 0, 0), REDUCE(sym_property_expression, 5, 0, 0),
  [8130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 5, 0, 0), REDUCE(sym_property_expression, 5, 0, 0),
  [8133] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameter_attribute, 1, 0, 0),
  [8135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
  [8137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_attribute, 1, 0, 0),
  [8139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(860),
  [8141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6885),
  [8143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type2, 3, 0, 0),
  [8145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type2, 3, 0, 0),
  [8147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(826),
  [8149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3604),
  [8151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6467),
  [8153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6466),
  [8155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3611),
  [8157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5901),
  [8159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3609),
  [8161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3467),
  [8163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7583),
  [8165] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3606),
  [8167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__qualified_id, 3, 0, 0),
  [8169] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__qualified_id, 3, 0, 0),
  [8171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_suffix, 5, 0, 0),
  [8173] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type_suffix, 5, 0, 0),
  [8175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_property_expression, 3, 0, 0),
  [8177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_property_expression, 3, 0, 0),
  [8179] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(826),
  [8182] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(3604),
  [8185] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6467),
  [8188] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6466),
  [8191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__qualified_id, 4, 0, 0),
  [8193] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__qualified_id, 4, 0, 0),
  [8195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5892),
  [8197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(5815),
  [8200] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(864),
  [8204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3595),
  [8206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5922),
  [8208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(778),
  [8210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1200),
  [8212] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3499),
  [8214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6325),
  [8216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3491),
  [8218] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3473),
  [8220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7645),
  [8222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5889),
  [8224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type2, 2, 0, 0),
  [8226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__type2, 2, 0, 0),
  [8228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__qualified_id, 6, 0, 0),
  [8230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__qualified_id, 6, 0, 0),
  [8232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_expression, 4, 0, 20),
  [8234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cast_expression, 4, 0, 20),
  [8236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5650),
  [8238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3834),
  [8240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(754),
  [8242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, 0, 2),
  [8244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, 0, 2),
  [8246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_power_expression, 3, 0, 4),
  [8248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_power_expression, 3, 0, 4),
  [8250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5982),
  [8252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(862),
  [8254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(859),
  [8256] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3653),
  [8258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6788),
  [8260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6787),
  [8262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 2, 0, 0),
  [8264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 2, 0, 0),
  [8266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_throw_expression, 2, 0, 0),
  [8268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_throw_expression, 2, 0, 0),
  [8270] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(859),
  [8273] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(3653),
  [8276] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6788),
  [8279] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6787),
  [8282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_expression, 5, 0, 0),
  [8284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cast_expression, 5, 0, 0),
  [8286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_expression, 5, 0, 22),
  [8288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cast_expression, 5, 0, 22),
  [8290] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 2, 0, 0), SHIFT(6147),
  [8293] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3642),
  [8295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_expression, 2, 0, 0),
  [8297] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_delete_expression, 2, 0, 0),
  [8299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0),
  [8301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr, 1, 0, 0),
  [8303] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(1645),
  [8306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variadic_arguments_attribute, 1, 0, 0),
  [8308] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), REDUCE(sym_variadic_arguments_attribute, 1, 0, 0),
  [8311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5074),
  [8313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6159),
  [8315] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5121),
  [8317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7694),
  [8319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7691),
  [8321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1218),
  [8323] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5069),
  [8325] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3690),
  [8327] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5076),
  [8329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5757),
  [8331] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5108),
  [8333] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7731),
  [8335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 5, 0, 0),
  [8337] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 5, 0, 0),
  [8339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typeid_expression, 4, 0, 0),
  [8341] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_typeid_expression, 4, 0, 0),
  [8343] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3676),
  [8345] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), SHIFT(1988),
  [8348] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(6396),
  [8351] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5103),
  [8353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5126),
  [8355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4990),
  [8357] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5104),
  [8359] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_attribute, 1, 0, 0), REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [8362] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter_attribute, 1, 0, 0), REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [8365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3700),
  [8367] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3494),
  [8369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_literal, 6, 0, 0),
  [8371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_literal, 6, 0, 0),
  [8373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_literal, 5, 0, 0),
  [8375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_literal, 5, 0, 0),
  [8377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_literal, 4, 0, 0),
  [8379] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_literal, 4, 0, 0),
  [8381] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_attribute, 1, 0, 0), REDUCE(sym_variadic_arguments_attribute, 1, 0, 0),
  [8384] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2608),
  [8387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_expression, 4, 0, 0),
  [8389] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_expression, 4, 0, 0),
  [8391] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__specified_function_body, 3, 0, 0),
  [8393] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__specified_function_body, 3, 0, 0),
  [8395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_literal, 3, 0, 0),
  [8397] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_literal, 3, 0, 0),
  [8399] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(1407),
  [8402] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6298),
  [8404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__specified_function_body, 2, 0, 0),
  [8406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__specified_function_body, 2, 0, 0),
  [8408] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 2, 0, 0), SHIFT(5815),
  [8411] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym__primary_expr, 2, 0, 0), SHIFT(864),
  [8415] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_literal, 2, 0, 0),
  [8417] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_literal, 2, 0, 0),
  [8419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 6, 0, 0),
  [8421] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 6, 0, 0),
  [8423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_literal, 1, 0, 0),
  [8425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_literal, 1, 0, 0),
  [8427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 1, 0, 0),
  [8429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 1, 0, 0),
  [8431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3598),
  [8433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6310),
  [8435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 4, 0, 0),
  [8437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 4, 0, 0),
  [8439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5065),
  [8441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dollar, 1, 0, 0),
  [8443] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dollar, 1, 0, 0),
  [8445] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0), SHIFT(1988),
  [8449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 5, 0, 18),
  [8451] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 5, 0, 18),
  [8453] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2617),
  [8456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call_expression, 2, 0, 0),
  [8458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call_expression, 2, 0, 0),
  [8460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 2, 0, 0),
  [8462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 2, 0, 0),
  [8464] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5087),
  [8466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_postfix_expression, 2, 0, 4),
  [8468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_postfix_expression, 2, 0, 4),
  [8470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_expression, 5, 0, 0),
  [8472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_is_expression, 5, 0, 0),
  [8474] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(2368),
  [8477] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 5, 0, 0),
  [8479] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 5, 0, 0),
  [8481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_arguments, 2, 0, 0),
  [8483] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_arguments, 2, 0, 0),
  [8485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 3, 0, 0),
  [8487] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 3, 0, 0),
  [8489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 3, 0, 12),
  [8491] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 3, 0, 12),
  [8493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 3, 0, 0),
  [8495] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 3, 0, 0),
  [8497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 3, 0, 0),
  [8499] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 3, 0, 0),
  [8501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_expression, 6, 0, 0),
  [8503] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_is_expression, 6, 0, 0),
  [8505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 6, 0, 0),
  [8507] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 6, 0, 0),
  [8509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_expression, 7, 0, 0),
  [8511] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_is_expression, 7, 0, 0),
  [8513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_expression, 8, 0, 0),
  [8515] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_is_expression, 8, 0, 0),
  [8517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_arguments, 3, 0, 0),
  [8519] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_arguments, 3, 0, 0),
  [8521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, 0, 12),
  [8523] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, 0, 12),
  [8525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_literal, 4, 0, 18),
  [8527] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_literal, 4, 0, 18),
  [8529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_expression, 9, 0, 0),
  [8531] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_is_expression, 9, 0, 0),
  [8533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_expression, 4, 0, 0),
  [8535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_expression, 4, 0, 0),
  [8537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_is_expression, 4, 0, 0),
  [8539] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_is_expression, 4, 0, 0),
  [8541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_new_expression, 4, 0, 0),
  [8543] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_new_expression, 4, 0, 0),
  [8545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_xor_expression, 3, 0, 4),
  [8547] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1272),
  [8549] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1276),
  [8551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_xor_expression, 3, 0, 4),
  [8553] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1284),
  [8555] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1286),
  [8557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1286),
  [8559] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1288),
  [8561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1289),
  [8563] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1339),
  [8565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1269),
  [8567] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(6261),
  [8570] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5655),
  [8572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3993),
  [8574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(756),
  [8576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6160),
  [8578] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(3016),
  [8581] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6162),
  [8583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expression, 5, 0, 23),
  [8585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1275),
  [8587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1277),
  [8589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1278),
  [8591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1283),
  [8593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(937),
  [8595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1275),
  [8597] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1290),
  [8599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_equal_expression, 3, 0, 4),
  [8601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_equal_expression, 3, 0, 4),
  [8603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_shift_expression, 3, 0, 4),
  [8605] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_shift_expression, 3, 0, 4),
  [8607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rel_expression, 3, 0, 4),
  [8609] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_rel_expression, 3, 0, 4),
  [8611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_add_expression, 3, 0, 4),
  [8613] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_add_expression, 3, 0, 4),
  [8615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_or_expression, 3, 0, 4),
  [8617] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_or_expression, 3, 0, 4),
  [8619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_or_expression, 3, 0, 4),
  [8621] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_or_expression, 3, 0, 4),
  [8623] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_logical_and_expression, 3, 0, 4),
  [8625] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_logical_and_expression, 3, 0, 4),
  [8627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_and_expression, 3, 0, 4),
  [8629] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_and_expression, 3, 0, 4),
  [8631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, 0, 4),
  [8633] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mul_expression, 3, 0, 4),
  [8635] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mul_expression, 3, 0, 4),
  [8637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identity_expression, 3, 0, 0),
  [8639] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identity_expression, 3, 0, 0),
  [8641] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_parameter_attribute, 1, 0, 0), SHIFT(6023),
  [8644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_literal, 7, 0, 0),
  [8646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_literal, 7, 0, 0),
  [8648] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5720),
  [8650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4000),
  [8652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(774),
  [8654] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), REDUCE(sym_conditional_declaration, 3, 0, 0), SHIFT(1842),
  [8658] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(3039),
  [8661] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(3036),
  [8664] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(6321),
  [8667] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_block_statement, 2, 0, 0), SHIFT(1842),
  [8670] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym__specified_function_body, 1, 0, 0), REDUCE(sym__specified_function_body, 2, 0, 0),
  [8673] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__specified_function_body, 1, 0, 0), REDUCE(sym__specified_function_body, 2, 0, 0),
  [8676] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(3022),
  [8679] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(3025),
  [8682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1221),
  [8684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1227),
  [8686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1228),
  [8688] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1229),
  [8690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1234),
  [8692] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1235),
  [8694] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1236),
  [8696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1236),
  [8698] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1242),
  [8700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1060),
  [8702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956),
  [8704] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1243),
  [8706] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1342),
  [8708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1220),
  [8710] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1100),
  [8712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1111),
  [8714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_expression, 3, 0, 4),
  [8716] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1112),
  [8718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1113),
  [8720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1116),
  [8722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1117),
  [8724] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1118),
  [8726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1185),
  [8728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1185),
  [8730] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1186),
  [8732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1197),
  [8734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1019),
  [8736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1111),
  [8738] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1199),
  [8740] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1352),
  [8742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1095),
  [8744] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(7213),
  [8747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1137),
  [8749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1155),
  [8751] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ternary_expression, 5, 0, 23),
  [8753] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1166),
  [8755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1173),
  [8757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1183),
  [8759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1187),
  [8761] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1188),
  [8763] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1190),
  [8765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1190),
  [8767] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1202),
  [8769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1208),
  [8771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1032),
  [8773] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1155),
  [8775] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1223),
  [8777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1347),
  [8779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1132),
  [8781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1222),
  [8783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1222),
  [8785] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1239),
  [8787] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1262),
  [8789] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1282),
  [8791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1282),
  [8793] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1175),
  [8795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1270),
  [8797] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1300),
  [8799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1237),
  [8801] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(7431),
  [8804] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1267),
  [8806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1274),
  [8808] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1087),
  [8810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1167),
  [8812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941),
  [8814] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1263),
  [8816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1240),
  [8818] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1240),
  [8820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_foreach_type_repeat1, 2, 0, 0),
  [8822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_foreach_type_repeat1, 2, 0, 0),
  [8824] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_foreach_type_repeat1, 2, 0, 0), SHIFT_REPEAT(4109),
  [8827] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_foreach_type_repeat1, 2, 0, 0), SHIFT_REPEAT(3204),
  [8830] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(7957),
  [8833] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(7463),
  [8836] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__primary_expr, 1, 0, 0), SHIFT(7787),
  [8839] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1123),
  [8841] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1127),
  [8843] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1142),
  [8845] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1145),
  [8847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1145),
  [8849] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1147),
  [8851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1149),
  [8853] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1326),
  [8855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1119),
  [8857] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1153),
  [8859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1128),
  [8861] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1136),
  [8863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1140),
  [8865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885),
  [8867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1125),
  [8869] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1125),
  [8871] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 1, 0, 0), REDUCE(aux_sym_foreach_type_repeat1, 1, 0, 0),
  [8874] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 1, 0, 0), REDUCE(aux_sym_foreach_type_repeat1, 1, 0, 0),
  [8877] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_foreach_type_repeat1, 1, 0, 0),
  [8879] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1107),
  [8881] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1110),
  [8883] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1115),
  [8885] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1120),
  [8887] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1124),
  [8889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124),
  [8891] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1154),
  [8893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1156),
  [8895] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1161),
  [8897] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1341),
  [8899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1106),
  [8901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1061),
  [8903] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1143),
  [8905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1144),
  [8907] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1146),
  [8909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148),
  [8911] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1150),
  [8913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1151),
  [8915] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1164),
  [8917] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1169),
  [8919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1169),
  [8921] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1170),
  [8923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1171),
  [8925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1024),
  [8927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3167),
  [8929] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1144),
  [8931] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1172),
  [8933] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1350),
  [8935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1141),
  [8937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3178),
  [8939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3188),
  [8941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1108),
  [8943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114),
  [8945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914),
  [8947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1108),
  [8949] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter, 4, 0, 0), REDUCE(sym_template_parameter, 4, 0, 0),
  [8952] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 4, 0, 0),
  [8954] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__initializer, 1, 0, 0),
  [8956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 1, 0, 0),
  [8958] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 6, 0, 0),
  [8960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 5, 0, 0),
  [8962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 3, 0, 0),
  [8964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1075),
  [8966] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_specialization, 1, 0, 0),
  [8968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 4, 0, 0),
  [8970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 5, 0, 0),
  [8972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0),
  [8974] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1224),
  [8976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1219),
  [8978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1216),
  [8980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1191),
  [8982] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1174),
  [8984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1163),
  [8986] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1160),
  [8988] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1159),
  [8990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1159),
  [8992] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1134),
  [8994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1099),
  [8996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1014),
  [8998] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1219),
  [9000] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1096),
  [9002] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1320),
  [9004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1232),
  [9006] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1069),
  [9008] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1088),
  [9010] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1093),
  [9012] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1098),
  [9014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1098),
  [9016] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1105),
  [9018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1157),
  [9020] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1259),
  [9022] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1314),
  [9024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1065),
  [9026] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5351),
  [9028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6850),
  [9030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827),
  [9032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6395),
  [9034] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4310),
  [9036] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2918),
  [9038] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_expression_list, 1, 0, 0), REDUCE(sym_expression, 1, 0, 0),
  [9041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5467),
  [9043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6752),
  [9045] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4312),
  [9047] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5326),
  [9049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6696),
  [9051] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4309),
  [9053] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5466),
  [9055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6448),
  [9057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869),
  [9059] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4313),
  [9061] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5414),
  [9063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6439),
  [9065] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5385),
  [9067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6658),
  [9069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__array_member_init, 1, 0, 3),
  [9071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_qualifier, 1, 0, 0),
  [9073] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_type_ctor, 1, 0, 0), SHIFT(7777),
  [9076] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5410),
  [9078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6794),
  [9080] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1090),
  [9082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1092),
  [9084] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5328),
  [9086] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6706),
  [9088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1189),
  [9090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1089),
  [9092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1022),
  [9094] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1189),
  [9096] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5371),
  [9098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6911),
  [9100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4311),
  [9102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5418),
  [9104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6480),
  [9106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4308),
  [9108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1265),
  [9110] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5412),
  [9112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6936),
  [9114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5372),
  [9116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6656),
  [9118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2, 0, 0),
  [9120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2, 0, 0),
  [9122] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 2, 0, 0), SHIFT_REPEAT(3204),
  [9125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 0),
  [9127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_member, 3, 0, 0),
  [9129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1182),
  [9131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1179),
  [9133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1135),
  [9135] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1133),
  [9137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133),
  [9139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1131),
  [9141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1129),
  [9143] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1126),
  [9145] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1324),
  [9147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1184),
  [9149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1139),
  [9151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138),
  [9153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameter, 5, 0, 0),
  [9155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1082),
  [9157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [9159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 1, 0, 0),
  [9161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameter, 4, 0, 0),
  [9163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1225),
  [9165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3761),
  [9167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameter, 7, 0, 0),
  [9169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1180),
  [9171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1178),
  [9173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971),
  [9175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1180),
  [9177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1215),
  [9179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3074),
  [9181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bitfield_declarator, 3, 0, 0),
  [9183] = {.entry = {.count = 1, .reusable = false}}, SHIFT(780),
  [9185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameter, 6, 0, 0),
  [9187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_anonymous_enum_member, 4, 0, 0),
  [9189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3656),
  [9191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_member, 4, 0, 0),
  [9193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3721),
  [9195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__array_member_init, 3, 0, 17),
  [9197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3701),
  [9199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3638),
  [9201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3683),
  [9203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_argument, 1, 0, 0),
  [9205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bitfield_declarator, 2, 0, 0),
  [9207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1721),
  [9209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2214),
  [9211] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1214),
  [9213] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1212),
  [9215] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1206),
  [9217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1205),
  [9219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1204),
  [9221] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1201),
  [9223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1201),
  [9225] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1198),
  [9227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1196),
  [9229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1192),
  [9231] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1351),
  [9233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1244),
  [9235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1213),
  [9237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1210),
  [9239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982),
  [9241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1213),
  [9243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2479),
  [9245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2715),
  [9247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2225),
  [9249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1414),
  [9251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2685),
  [9253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1358),
  [9255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1776),
  [9257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2546),
  [9259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2871),
  [9261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2811),
  [9263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1689),
  [9265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4314),
  [9267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2944),
  [9269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2939),
  [9271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2905),
  [9273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2918),
  [9275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2935),
  [9277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7523),
  [9279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7681),
  [9281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7931),
  [9283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7915),
  [9285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7898),
  [9287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7877),
  [9289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7839),
  [9291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(6395),
  [9294] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(4314),
  [9297] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2944),
  [9300] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2939),
  [9303] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2905),
  [9306] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2918),
  [9309] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(2935),
  [9312] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(7523),
  [9315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
  [9317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1674),
  [9319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6331),
  [9321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1207),
  [9323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4590),
  [9325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6688),
  [9327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7303),
  [9329] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5993),
  [9331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5997),
  [9333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
  [9335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2363),
  [9337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1177),
  [9339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6944),
  [9341] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5764),
  [9343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5763),
  [9345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
  [9347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1357),
  [9349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1072),
  [9351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6426),
  [9353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6110),
  [9355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6109),
  [9357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
  [9359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2791),
  [9361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1101),
  [9363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6772),
  [9365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6373),
  [9367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6376),
  [9369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2712),
  [9371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1211),
  [9373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6765),
  [9375] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6072),
  [9377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6150),
  [9379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6145),
  [9381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2590),
  [9383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1233),
  [9385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6699),
  [9387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
  [9389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6780),
  [9391] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6003),
  [9393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6004),
  [9395] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(6395),
  [9398] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(4590),
  [9401] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4590),
  [9403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5829),
  [9405] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4653),
  [9407] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(5829),
  [9410] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(4653),
  [9413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5979),
  [9415] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(5979),
  [9418] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(4590),
  [9421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(6048),
  [9424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(766),
  [9426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3095),
  [9428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(758),
  [9430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6303),
  [9432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4653),
  [9434] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(6303),
  [9437] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(4653),
  [9440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3075),
  [9442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(6331),
  [9445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3072),
  [9447] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4641),
  [9449] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4643),
  [9451] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(5905),
  [9454] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(4643),
  [9457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_with_member_attributes, 2, 0, 0),
  [9459] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameter_with_member_attributes, 2, 0, 0),
  [9461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_with_member_attributes, 1, 0, 0),
  [9463] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameter_with_member_attributes, 1, 0, 0),
  [9465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5993),
  [9467] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(5829),
  [9470] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(4669),
  [9473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6373),
  [9475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6667),
  [9477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6148),
  [9479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6789),
  [9481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5764),
  [9483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameters, 2, 0, 0),
  [9485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_parameters, 2, 0, 0),
  [9487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6664),
  [9489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6072),
  [9491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6452),
  [9493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6003),
  [9495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6110),
  [9497] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4771),
  [9499] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4669),
  [9501] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(6157),
  [9504] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(4784),
  [9507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3066),
  [9509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(762),
  [9511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6157),
  [9513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4784),
  [9515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4788),
  [9517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_initializer, 4, 0, 0),
  [9519] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_initializer, 7, 0, 0),
  [9521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_initializer, 6, 0, 0),
  [9523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_initializer, 5, 0, 0),
  [9525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2311),
  [9527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5046),
  [9529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4973),
  [9531] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
  [9533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4612),
  [9535] = {.entry = {.count = 1, .reusable = false}}, SHIFT(904),
  [9537] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4973),
  [9539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2757),
  [9541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1245),
  [9543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1162),
  [9545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4869),
  [9547] = {.entry = {.count = 1, .reusable = false}}, SHIFT(642),
  [9549] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4869),
  [9551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2264),
  [9553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5222),
  [9555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6147),
  [9557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3458),
  [9559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(807),
  [9561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1484),
  [9563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3628),
  [9565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(815),
  [9567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2476),
  [9569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2266),
  [9571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4846),
  [9573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3543),
  [9575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4846),
  [9577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1081),
  [9579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4962),
  [9581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2803),
  [9583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2483),
  [9585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1261),
  [9587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2624),
  [9589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1287),
  [9591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2628),
  [9593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1266),
  [9595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1631),
  [9597] = {.entry = {.count = 1, .reusable = false}}, SHIFT(621),
  [9599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3, 0, 0),
  [9601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6697),
  [9603] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 3, 0, 0),
  [9605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2869),
  [9607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1423),
  [9609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1614),
  [9611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2824),
  [9613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5225),
  [9615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2508),
  [9617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3649),
  [9619] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3566),
  [9621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1066),
  [9623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1246),
  [9625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2621),
  [9627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1746),
  [9629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6919),
  [9631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5226),
  [9633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2493),
  [9635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3752),
  [9637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1247),
  [9639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1251),
  [9641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1253),
  [9643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2648),
  [9645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1410),
  [9647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2720),
  [9649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2674),
  [9651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2232),
  [9653] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3383),
  [9655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1594),
  [9657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2836),
  [9659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1241),
  [9661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1217),
  [9663] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interpolated_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(5046),
  [9666] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interpolated_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(4869),
  [9669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_interpolated_quoted_string_repeat1, 2, 0, 0),
  [9671] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interpolated_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(904),
  [9674] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interpolated_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(4869),
  [9677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4888),
  [9679] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3137),
  [9681] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4888),
  [9683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4901),
  [9685] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3449),
  [9687] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4901),
  [9689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2655),
  [9691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1152),
  [9693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5235),
  [9695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2358),
  [9697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3631),
  [9699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4862),
  [9701] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3368),
  [9703] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4862),
  [9705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4838),
  [9707] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633),
  [9709] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4838),
  [9711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2874),
  [9713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2629),
  [9715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2211),
  [9717] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3260),
  [9719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2709),
  [9721] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3103),
  [9723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1661),
  [9725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1076),
  [9727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4886),
  [9729] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3270),
  [9731] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4886),
  [9733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1660),
  [9735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1103),
  [9737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6592),
  [9739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1084),
  [9741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2583),
  [9743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3703),
  [9745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1632),
  [9747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1078),
  [9749] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3342),
  [9751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3457),
  [9753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1091),
  [9755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1121),
  [9757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4900),
  [9759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3328),
  [9761] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4900),
  [9763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1285),
  [9765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2539),
  [9767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4827),
  [9769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1427),
  [9771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2512),
  [9773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2531),
  [9775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5228),
  [9777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2801),
  [9779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3730),
  [9781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4931),
  [9783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4808),
  [9785] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4931),
  [9787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4948),
  [9789] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2414),
  [9791] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4948),
  [9793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2213),
  [9795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3709),
  [9797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1531),
  [9799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1365),
  [9801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1719),
  [9803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2758),
  [9805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2548),
  [9807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4791),
  [9809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2820),
  [9811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2206),
  [9813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1489),
  [9815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1507),
  [9817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1280),
  [9819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2666),
  [9821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2701),
  [9823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3755),
  [9825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2218),
  [9827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5237),
  [9829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1682),
  [9831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3749),
  [9833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1077),
  [9835] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3537),
  [9837] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2403),
  [9839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1258),
  [9841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1273),
  [9843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1724),
  [9845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1475),
  [9847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3655),
  [9849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4820),
  [9851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657),
  [9853] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4820),
  [9855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1443),
  [9857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2689),
  [9859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1195),
  [9861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2808),
  [9863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2284),
  [9865] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(6303),
  [9868] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__type_suffix_repeat1, 2, 0, 0), SHIFT_REPEAT(4962),
  [9871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1071),
  [9873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2593),
  [9875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4947),
  [9877] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3514),
  [9879] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4947),
  [9881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2299),
  [9883] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4677),
  [9885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4968),
  [9887] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4772),
  [9889] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4968),
  [9891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1085),
  [9893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1446),
  [9895] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4609),
  [9897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1279),
  [9899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2884),
  [9901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3763),
  [9903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1619),
  [9905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3675),
  [9907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 5, 0, 0),
  [9909] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 5, 0, 0),
  [9911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2554),
  [9913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6575),
  [9915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2898),
  [9917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6694),
  [9919] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 7, 0, 0),
  [9921] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 7, 0, 0),
  [9923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1752),
  [9925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6812),
  [9927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2315),
  [9929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6920),
  [9931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2544),
  [9933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6783),
  [9935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1434),
  [9937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6463),
  [9939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 8, 0, 0),
  [9941] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 8, 0, 0),
  [9943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(788),
  [9945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5001),
  [9947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6551),
  [9949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6553),
  [9951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 4, 0, 0),
  [9953] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 4, 0, 0),
  [9955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6750),
  [9957] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 9, 0, 0),
  [9959] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 9, 0, 0),
  [9961] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 12, 0, 0),
  [9963] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 12, 0, 0),
  [9965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5004),
  [9967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4996),
  [9969] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 10, 0, 0),
  [9971] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 10, 0, 0),
  [9973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2, 0, 0),
  [9975] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 2, 0, 0),
  [9977] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 6, 0, 0),
  [9979] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 6, 0, 0),
  [9981] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 11, 0, 0),
  [9983] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__parameters, 11, 0, 0),
  [9985] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(788),
  [9988] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(5004),
  [9991] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6551),
  [9994] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6553),
  [9997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6359),
  [9999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(782),
  [10001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6864),
  [10003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6261),
  [10005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3033),
  [10007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881),
  [10009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6461),
  [10011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5832),
  [10013] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6215),
  [10015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848),
  [10017] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_body_repeat1, 2, 0, 0),
  [10019] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_body_repeat1, 2, 0, 0), SHIFT_REPEAT(6148),
  [10022] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_body_repeat1, 2, 0, 0), SHIFT_REPEAT(6145),
  [10025] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6147),
  [10027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6798),
  [10029] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameter, 1, 0, 0),
  [10031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3734),
  [10033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3722),
  [10035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6853),
  [10037] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__qualified_id, 1, 0, 0), REDUCE(sym_template_parameter, 1, 0, 0),
  [10040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6702),
  [10042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2382),
  [10044] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7123),
  [10046] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7201),
  [10048] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8057),
  [10050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_escape_sequence, 1, 0, 0),
  [10052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_escape_sequence, 1, 0, 0),
  [10054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5733),
  [10056] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7038),
  [10058] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7894),
  [10060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5053),
  [10062] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6630),
  [10064] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6677),
  [10066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6187),
  [10068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5056),
  [10070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_with_attributes, 2, 0, 0),
  [10072] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7232),
  [10074] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(5056),
  [10077] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6630),
  [10080] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6677),
  [10083] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_with_attributes, 1, 0, 0),
  [10085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5054),
  [10087] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7858),
  [10089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7103),
  [10091] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7896),
  [10093] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7456),
  [10095] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7604),
  [10097] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7103),
  [10099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5067),
  [10101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7976),
  [10103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8055),
  [10105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameter, 2, 0, 0),
  [10107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1260),
  [10109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1252),
  [10111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6146),
  [10113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861),
  [10115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5079),
  [10117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6816),
  [10119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6815),
  [10121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5815),
  [10123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(864),
  [10125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7072),
  [10127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(5079),
  [10130] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6816),
  [10133] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6815),
  [10136] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6396),
  [10138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_member, 1, 0, 0),
  [10140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1079),
  [10142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6398),
  [10144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5078),
  [10146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5075),
  [10148] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7072),
  [10150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5229),
  [10152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5139),
  [10154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3327),
  [10156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5129),
  [10158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659),
  [10160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(776),
  [10162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5095),
  [10164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6764),
  [10166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5114),
  [10168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4608),
  [10170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5133),
  [10172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624),
  [10174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(776),
  [10177] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(5095),
  [10180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6764),
  [10183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5102),
  [10185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6922),
  [10187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6923),
  [10189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4802),
  [10191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2417),
  [10193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5098),
  [10195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2410),
  [10197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5110),
  [10199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4774),
  [10201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(5102),
  [10204] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6922),
  [10207] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat2, 2, 0, 0), SHIFT_REPEAT(6923),
  [10210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5092),
  [10212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5099),
  [10214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3564),
  [10216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5097),
  [10218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4800),
  [10220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5096),
  [10222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2381),
  [10224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4684),
  [10226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2388),
  [10228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2390),
  [10230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2386),
  [10232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4614),
  [10234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2391),
  [10236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5123),
  [10238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3519),
  [10240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach_type, 2, 0, 0),
  [10242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3388),
  [10244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2387),
  [10246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3453),
  [10248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5106),
  [10250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2392),
  [10252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3535),
  [10254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2389),
  [10256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5105),
  [10258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3541),
  [10260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(912),
  [10262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2394),
  [10264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2396),
  [10266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649),
  [10268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2383),
  [10270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach_type, 1, 0, 0),
  [10272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5118),
  [10274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3370),
  [10276] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(5229),
  [10279] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_quoted_string_repeat1, 2, 0, 0), SHIFT_REPEAT(5133),
  [10282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_quoted_string_repeat1, 2, 0, 0),
  [10284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5138),
  [10286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3106),
  [10288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5120),
  [10290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3440),
  [10292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3262),
  [10294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2384),
  [10296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3117),
  [10298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3355),
  [10300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5094),
  [10302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623),
  [10304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5136),
  [10306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3269),
  [10308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5335),
  [10310] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6301),
  [10312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2760),
  [10314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5454),
  [10316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4839),
  [10318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3185),
  [10320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1165),
  [10322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2553),
  [10324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1449),
  [10326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2799),
  [10328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2706),
  [10330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5937),
  [10332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1377),
  [10334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2268),
  [10336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1716),
  [10338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2236),
  [10340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2601),
  [10342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6189),
  [10344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6324),
  [10346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4894),
  [10348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1654),
  [10350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4852),
  [10352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6321),
  [10354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2631),
  [10356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589),
  [10358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4643),
  [10360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(593),
  [10362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5209),
  [10364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599),
  [10366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(595),
  [10368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5236),
  [10370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(592),
  [10372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5234),
  [10374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(587),
  [10376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5212),
  [10378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6999),
  [10380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variadic_arguments_attributes, 2, 0, 0),
  [10382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variadic_arguments_attributes, 2, 0, 0), SHIFT_REPEAT(5335),
  [10385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(588),
  [10387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(591),
  [10389] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3105),
  [10391] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1042),
  [10393] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5308),
  [10395] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3455),
  [10397] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5272),
  [10399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7889),
  [10401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266),
  [10403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2543),
  [10405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declarator, 1, 0, 0),
  [10407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1080),
  [10409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(821),
  [10411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7617),
  [10413] = {.entry = {.count = 1, .reusable = false}}, SHIFT(647),
  [10415] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3542),
  [10417] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5258),
  [10419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2855),
  [10421] = {.entry = {.count = 1, .reusable = false}}, SHIFT(629),
  [10423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7359),
  [10425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7555),
  [10427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1067),
  [10429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7291),
  [10431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7302),
  [10433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8012),
  [10435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7775),
  [10437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_enum_member_repeat1, 2, 0, 0),
  [10439] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_member_repeat1, 2, 0, 0), SHIFT_REPEAT(5905),
  [10442] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enum_member_repeat1, 2, 0, 0), SHIFT_REPEAT(2905),
  [10445] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3565),
  [10447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1407),
  [10449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7569),
  [10451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1086),
  [10453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7615),
  [10455] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4801),
  [10457] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4610),
  [10459] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5318),
  [10461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5415),
  [10463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3171),
  [10465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130),
  [10467] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4681),
  [10469] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6312),
  [10471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3384),
  [10473] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_interpolated_raw_string_repeat1, 2, 0, 0),
  [10475] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interpolated_raw_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1042),
  [10478] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interpolated_raw_string_repeat1, 2, 0, 0), SHIFT_REPEAT(5272),
  [10481] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3369),
  [10483] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5271),
  [10485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7107),
  [10487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7542),
  [10489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1366),
  [10491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7717),
  [10493] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2412),
  [10495] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5299),
  [10497] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4773),
  [10499] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5269),
  [10501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1645),
  [10503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1109),
  [10505] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4809),
  [10507] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5266),
  [10509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__in_out_contract_expressions, 2, 0, 0),
  [10511] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__in_out_contract_expressions, 2, 0, 0), SHIFT_REPEAT(7291),
  [10514] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__in_out_contract_expressions, 2, 0, 0), SHIFT_REPEAT(7302),
  [10517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7191),
  [10519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3261),
  [10521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7073),
  [10523] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3444),
  [10525] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5239),
  [10527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1715),
  [10529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456),
  [10531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7549),
  [10533] = {.entry = {.count = 1, .reusable = false}}, SHIFT(630),
  [10535] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5248),
  [10537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint, 4, 0, 0),
  [10539] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3272),
  [10541] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5286),
  [10543] = {.entry = {.count = 1, .reusable = false}}, SHIFT(660),
  [10545] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5245),
  [10547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1062),
  [10549] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2402),
  [10551] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3350),
  [10553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2562),
  [10555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2368),
  [10557] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3518),
  [10559] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5322),
  [10561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7827),
  [10563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7185),
  [10565] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3104),
  [10567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2774),
  [10569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2327),
  [10571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2617),
  [10573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1264),
  [10575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2608),
  [10577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1104),
  [10579] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4613),
  [10581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7857),
  [10583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3304),
  [10585] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5300),
  [10587] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3536),
  [10589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4987),
  [10591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7321),
  [10593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8031),
  [10595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6686),
  [10597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2353),
  [10599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7685),
  [10601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1394),
  [10603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7137),
  [10605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2883),
  [10607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_out_contract_expression, 5, 0, 0),
  [10609] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_parameter, 2, 0, 0), REDUCE(sym_template_parameter, 2, 0, 0),
  [10612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1250),
  [10614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1249),
  [10616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1826),
  [10618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1681),
  [10620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3750),
  [10622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1672),
  [10624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3663),
  [10626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6963),
  [10628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1750),
  [10630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7974),
  [10632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_fqn, 2, 0, 0),
  [10634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2016),
  [10636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2749),
  [10638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3682),
  [10640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5525),
  [10642] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 3, 0, 0),
  [10644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1094),
  [10646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7518),
  [10648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2587),
  [10650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7924),
  [10652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2271),
  [10654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5255),
  [10656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1063),
  [10658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_fqn, 1, 0, 0),
  [10660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6892),
  [10662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6562),
  [10664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7856),
  [10666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397),
  [10668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7975),
  [10670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2560),
  [10672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7305),
  [10674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1727),
  [10676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2084),
  [10678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2584),
  [10680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3705),
  [10682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2580),
  [10684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3643),
  [10686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7802),
  [10688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2579),
  [10690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7684),
  [10692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2693),
  [10694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1437),
  [10696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7567),
  [10698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2484),
  [10700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1840),
  [10702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1438),
  [10704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3679),
  [10706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2475),
  [10708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3661),
  [10710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2711),
  [10712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3747),
  [10714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1496),
  [10716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3660),
  [10718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7984),
  [10720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2260),
  [10722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1933),
  [10724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2354),
  [10726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3633),
  [10728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7317),
  [10730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2763),
  [10732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1942),
  [10734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2805),
  [10736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3731),
  [10738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1408),
  [10740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3681),
  [10742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7484),
  [10744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1424),
  [10746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5242),
  [10748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2297),
  [10750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3699),
  [10752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2911),
  [10754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3764),
  [10756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2333),
  [10758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3634),
  [10760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2596),
  [10762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3674),
  [10764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7650),
  [10766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1383),
  [10768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7051),
  [10770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1611),
  [10772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7159),
  [10774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1693),
  [10776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5517),
  [10778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0),
  [10780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1257),
  [10782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7783),
  [10784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2677),
  [10786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2798),
  [10788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3729),
  [10790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2537),
  [10792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2536),
  [10794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3624),
  [10796] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7889),
  [10799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5317),
  [10801] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameters, 3, 0, 0),
  [10803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7000),
  [10805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1690),
  [10807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7849),
  [10809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2750),
  [10811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2281),
  [10813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3720),
  [10815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2703),
  [10817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3726),
  [10819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5330),
  [10821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0),
  [10823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1097),
  [10825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7568),
  [10827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1459),
  [10829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7890),
  [10831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2529),
  [10833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1255),
  [10835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5554),
  [10837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 2, 0, 0),
  [10839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1230),
  [10841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3671),
  [10843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3754),
  [10845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1725),
  [10847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3677),
  [10849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7914),
  [10851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2487),
  [10853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2868),
  [10855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3748),
  [10857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2679),
  [10859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3715),
  [10861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237),
  [10863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1748),
  [10865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3646),
  [10867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3647),
  [10869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7936),
  [10871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2173),
  [10873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2532),
  [10875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3659),
  [10877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2744),
  [10879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7938),
  [10881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2240),
  [10883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7959),
  [10885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2636),
  [10887] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_fqn_repeat1, 2, 0, 0), SHIFT_REPEAT(7974),
  [10890] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_fqn_repeat1, 2, 0, 0),
  [10892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7019),
  [10894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1647),
  [10896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2903),
  [10898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3762),
  [10900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3696),
  [10902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7224),
  [10904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2901),
  [10906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1685),
  [10908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3742),
  [10910] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_out_contract_expression, 6, 0, 0),
  [10912] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__in_out_contract_expressions, 1, 0, 0),
  [10914] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__function_contract, 1, 0, 0), REDUCE(aux_sym__in_out_contract_expressions, 1, 0, 0),
  [10917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3743),
  [10919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2208),
  [10921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3760),
  [10923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1473),
  [10925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3654),
  [10927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2909),
  [10929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7265),
  [10931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2860),
  [10933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3758),
  [10935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1453),
  [10937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3717),
  [10939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5260),
  [10941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7353),
  [10943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2780),
  [10945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5560),
  [10947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7700),
  [10949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1456),
  [10951] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_in_contract_expression, 4, 0, 0),
  [10953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2298),
  [10955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5288),
  [10957] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(5905),
  [10960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_declaration_repeat1, 2, 0, 0),
  [10962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1361),
  [10964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5342),
  [10966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905),
  [10968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1226),
  [10970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2258),
  [10972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2524),
  [10974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2526),
  [10976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3739),
  [10978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2851),
  [10980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2256),
  [10982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3694),
  [10984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3689),
  [10986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2847),
  [10988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3622),
  [10990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3711),
  [10992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2893),
  [10994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2488),
  [10996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2490),
  [10998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2900),
  [11000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3623),
  [11002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2574),
  [11004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2577),
  [11006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2745),
  [11008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2742),
  [11010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2721),
  [11012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2348),
  [11014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_template_mixin_repeat1, 2, 0, 0),
  [11016] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_mixin_repeat1, 2, 0, 0), SHIFT(3075),
  [11019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1083),
  [11021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2350),
  [11023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2695),
  [11025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3658),
  [11027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1064),
  [11029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3756),
  [11031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1580),
  [11033] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(7856),
  [11036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2175),
  [11038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2821),
  [11040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2177),
  [11042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2814),
  [11044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3691),
  [11046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3627),
  [11048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1745),
  [11050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1743),
  [11052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1548),
  [11054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1547),
  [11056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1576),
  [11058] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_template_mixin_repeat1, 2, 0, 0), SHIFT_REPEAT(6686),
  [11061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6930),
  [11063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8018),
  [11065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7998),
  [11067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3704),
  [11069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1367),
  [11071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2494),
  [11073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3662),
  [11075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6711),
  [11077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7184),
  [11079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7494),
  [11081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1461),
  [11083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1203),
  [11085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1695),
  [11087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1467),
  [11089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1697),
  [11091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2516),
  [11093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6455),
  [11095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 0),
  [11097] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7527),
  [11099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7527),
  [11101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5279),
  [11103] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0), SHIFT(2074),
  [11107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3164),
  [11109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5324),
  [11111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1209),
  [11113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5477),
  [11115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396),
  [11117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(394),
  [11119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5315),
  [11121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1839),
  [11123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_parameter, 3, 0, 0),
  [11125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1193),
  [11127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1194),
  [11129] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7147),
  [11131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7147),
  [11133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5261),
  [11135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_alias_initializer, 3, 0, 0),
  [11137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5254),
  [11139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5795),
  [11141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3860),
  [11143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3215),
  [11145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5301),
  [11147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2074),
  [11149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__base_class_list, 1, 0, 0),
  [11151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3770),
  [11153] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1075),
  [11156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5243),
  [11158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6128),
  [11160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3937),
  [11162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3208),
  [11164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6947),
  [11166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3602),
  [11168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aggregate_initializer, 5, 0, 0),
  [11170] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3776),
  [11172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5304),
  [11174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aggregate_initializer, 4, 0, 0),
  [11176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5256),
  [11178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__base_class_list, 2, 0, 0),
  [11180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__base_class_list_repeat1, 2, 0, 0),
  [11182] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__base_class_list_repeat1, 2, 0, 0), SHIFT_REPEAT(3770),
  [11185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1909),
  [11187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265),
  [11189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263),
  [11191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5252),
  [11193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6250),
  [11195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4058),
  [11197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3210),
  [11199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3909),
  [11201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3732),
  [11203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3733),
  [11205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5287),
  [11207] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), SHIFT(2074),
  [11210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aggregate_initializer, 3, 0, 0),
  [11212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1988),
  [11214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_arguments, 3, 0, 0),
  [11216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(850),
  [11218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5544),
  [11220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5005),
  [11222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3814),
  [11224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(720),
  [11226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3251),
  [11228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3160),
  [11230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6810),
  [11232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3298),
  [11234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3287),
  [11236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2294),
  [11238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3303),
  [11240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6924),
  [11242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2282),
  [11244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2737),
  [11246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1704),
  [11248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 0), SHIFT_REPEAT(1265),
  [11251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1999),
  [11253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1919),
  [11255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(789),
  [11257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5588),
  [11259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2731),
  [11261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2249),
  [11263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5076),
  [11265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2316),
  [11267] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7562),
  [11269] = {.entry = {.count = 1, .reusable = false}}, SHIFT(822),
  [11271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(831),
  [11273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6662),
  [11275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3635),
  [11277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6653),
  [11279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2727),
  [11281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3625),
  [11283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2326),
  [11285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2223),
  [11287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2221),
  [11289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1670),
  [11291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_auto_declaration_repeat1, 2, 0, 11), SHIFT_REPEAT(6653),
  [11294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_auto_declaration_repeat1, 2, 0, 11),
  [11296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5501),
  [11298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5500),
  [11300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(740),
  [11302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3626),
  [11304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(792),
  [11306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3056),
  [11308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1666),
  [11310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__named_argument_list, 1, 0, 0),
  [11312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(759),
  [11314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2347),
  [11316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3149),
  [11318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1665),
  [11320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1664),
  [11322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3835),
  [11324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3214),
  [11326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5726),
  [11328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713),
  [11330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717),
  [11332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2207),
  [11334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5174),
  [11336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2317),
  [11338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2357),
  [11340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3276),
  [11342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2169),
  [11344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3295),
  [11346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3759),
  [11348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3930),
  [11350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712),
  [11352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2360),
  [11354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2746),
  [11356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3286),
  [11358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5188),
  [11360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1938),
  [11362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3767),
  [11364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3962),
  [11366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3398),
  [11368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917),
  [11370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5518),
  [11372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5521),
  [11374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1045),
  [11376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1633),
  [11378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1041),
  [11380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(739),
  [11382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4626),
  [11384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(858),
  [11386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3857),
  [11388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703),
  [11390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1040),
  [11392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4874),
  [11394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2201),
  [11396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3036),
  [11398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2205),
  [11400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1035),
  [11402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1034),
  [11404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1033),
  [11406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1030),
  [11408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1738),
  [11410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1018),
  [11412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1017),
  [11414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2661),
  [11416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1734),
  [11418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3289),
  [11420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3273),
  [11422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1016),
  [11424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1015),
  [11426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5165),
  [11428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1600),
  [11430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3283),
  [11432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2238),
  [11434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(984),
  [11436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 1, 0, 0),
  [11438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3931),
  [11440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(755),
  [11442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1002),
  [11444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(999),
  [11446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2647),
  [11448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(997),
  [11450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3288),
  [11452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(996),
  [11454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3293),
  [11456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3693),
  [11458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2245),
  [11460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3737),
  [11462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3022),
  [11464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__argument_list_repeat1, 2, 0, 0),
  [11466] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__argument_list_repeat1, 2, 0, 0), SHIFT_REPEAT(977),
  [11469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2247),
  [11471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2248),
  [11473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2255),
  [11475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3665),
  [11477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3988),
  [11479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704),
  [11481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3499),
  [11483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(989),
  [11485] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7442),
  [11487] = {.entry = {.count = 1, .reusable = false}}, SHIFT(884),
  [11489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3645),
  [11491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1755),
  [11493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3296),
  [11495] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_variable_declaration_repeat2, 2, 0, 0), SHIFT_REPEAT(5588),
  [11498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variable_declaration_repeat2, 2, 0, 0),
  [11500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(988),
  [11502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2725),
  [11504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(986),
  [11506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3611),
  [11508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2623),
  [11510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(980),
  [11512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4632),
  [11514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793),
  [11516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2619),
  [11518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2618),
  [11520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727),
  [11522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 0),
  [11524] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(3219),
  [11527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2280),
  [11529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3753),
  [11531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5533),
  [11533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5530),
  [11535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2558),
  [11537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3281),
  [11539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__template_parameter_list_repeat1, 2, 0, 0),
  [11541] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__template_parameter_list_repeat1, 2, 0, 0), SHIFT_REPEAT(3495),
  [11544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2607),
  [11546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3714),
  [11548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951),
  [11550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950),
  [11552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2796),
  [11554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949),
  [11556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948),
  [11558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2802),
  [11560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1757),
  [11562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1760),
  [11564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5171),
  [11566] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__declarator_identifier_list_repeat1, 2, 0, 0), SHIFT_REPEAT(7305),
  [11569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__declarator_identifier_list_repeat1, 2, 0, 0),
  [11571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3291),
  [11573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5074),
  [11575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2307),
  [11577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927),
  [11579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926),
  [11581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5203),
  [11583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3147),
  [11585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(925),
  [11587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922),
  [11589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3780),
  [11591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5176),
  [11593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3040),
  [11595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(729),
  [11597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_anonymous_enum_declaration_repeat1, 2, 0, 0),
  [11599] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_anonymous_enum_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(3347),
  [11602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3299),
  [11604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2506),
  [11606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2525),
  [11608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5507),
  [11610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3292),
  [11612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901),
  [11614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5504),
  [11616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900),
  [11618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897),
  [11620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896),
  [11622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2856),
  [11624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2700),
  [11626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1885),
  [11628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6801),
  [11630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 4, 0, 0),
  [11632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3640),
  [11634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4633),
  [11636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880),
  [11638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2091),
  [11640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3845),
  [11642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700),
  [11644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3664),
  [11646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3725),
  [11648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__template_argument_list, 1, 0, 0),
  [11650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838),
  [11652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2471),
  [11654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3052),
  [11656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(747),
  [11658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2473),
  [11660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2474),
  [11662] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5148),
  [11664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6529),
  [11666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3608),
  [11668] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7260),
  [11670] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7701),
  [11672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3710),
  [11674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6684),
  [11676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3166),
  [11678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964),
  [11680] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966),
  [11682] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968),
  [11684] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2823),
  [11686] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3464),
  [11688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3150),
  [11690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(981),
  [11692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1626),
  [11694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(987),
  [11696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(993),
  [11698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4652),
  [11700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3143),
  [11702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1624),
  [11704] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1686),
  [11706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2503),
  [11708] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2504),
  [11710] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2517),
  [11712] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2908),
  [11714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3284),
  [11716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2906),
  [11718] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923),
  [11720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3841),
  [11722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2604),
  [11724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2050),
  [11726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3903),
  [11728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1907),
  [11730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3757),
  [11732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3142),
  [11734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2688),
  [11736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7423),
  [11738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2421),
  [11740] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7217),
  [11742] = {.entry = {.count = 1, .reusable = false}}, SHIFT(818),
  [11744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2890),
  [11746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3594),
  [11748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3670),
  [11750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2683),
  [11752] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__template_parameter_list, 1, 0, 0),
  [11754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3486),
  [11756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3038),
  [11758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935),
  [11760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7395),
  [11762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2682),
  [11764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851),
  [11766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4587),
  [11768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3152),
  [11770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2882),
  [11772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2680),
  [11774] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2881),
  [11776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3042),
  [11778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__template_argument_list_repeat1, 2, 0, 0),
  [11780] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__template_argument_list_repeat1, 2, 0, 0), SHIFT_REPEAT(907),
  [11783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2895),
  [11785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2533),
  [11787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1691),
  [11789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898),
  [11791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2534),
  [11793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3294),
  [11795] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__argument_list, 1, 0, 0),
  [11797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(808),
  [11799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934),
  [11801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(744),
  [11803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4013),
  [11805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(702),
  [11807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7365),
  [11809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2702),
  [11811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1692),
  [11813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3290),
  [11815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3237),
  [11817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883),
  [11819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3165),
  [11821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3545),
  [11823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3163),
  [11825] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(3233),
  [11828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(708),
  [11830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2549),
  [11832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2867),
  [11834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5156),
  [11836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3803),
  [11838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3862),
  [11840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2866),
  [11842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3390),
  [11844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3154),
  [11846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6631),
  [11848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3581),
  [11850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906),
  [11852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3297),
  [11854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2561),
  [11856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5015),
  [11858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3145),
  [11860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1025),
  [11862] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, 0, 19),
  [11864] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, 0, 19), SHIFT_REPEAT(742),
  [11867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7329),
  [11869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5489),
  [11871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5490),
  [11873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(737),
  [11875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3034),
  [11877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2864),
  [11879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3016),
  [11881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3159),
  [11883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3959),
  [11885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3217),
  [11887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3744),
  [11889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2572),
  [11891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2591),
  [11893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(746),
  [11895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1758),
  [11897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(741),
  [11899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3713),
  [11901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910),
  [11903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2582),
  [11905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4660),
  [11907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2585),
  [11909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919),
  [11911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3275),
  [11913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3830),
  [11915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7270),
  [11917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6445),
  [11919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5017),
  [11921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5510),
  [11923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5511),
  [11925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(736),
  [11927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4787),
  [11929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(791),
  [11931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3669),
  [11933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3454),
  [11935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(817),
  [11937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1861),
  [11939] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__base_class_list_repeat1, 2, 0, 0), SHIFT_REPEAT(3780),
  [11942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2833),
  [11944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2842),
  [11946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3585),
  [11948] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3156),
  [11950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3472),
  [11952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1717),
  [11954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4077),
  [11956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(705),
  [11958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5541),
  [11960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__enum_body_repeat1, 2, 0, 0),
  [11962] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__enum_body_repeat1, 2, 0, 0), SHIFT_REPEAT(5216),
  [11965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3301),
  [11967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724),
  [11969] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 0), SHIFT_REPEAT(6801),
  [11972] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 0),
  [11974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3043),
  [11976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(992),
  [11978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(998),
  [11980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1516),
  [11982] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4052),
  [11984] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7143),
  [11986] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1381),
  [11988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3162),
  [11990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4051),
  [11992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(772),
  [11994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5143),
  [11996] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3285),
  [11998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916),
  [12000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2793),
  [12002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1699),
  [12004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1683),
  [12006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1048),
  [12008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2009),
  [12010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1477),
  [12012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928),
  [12014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2599),
  [12016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3279),
  [12018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853),
  [12020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2728),
  [12022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1680),
  [12024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1979),
  [12026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3695),
  [12028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5516),
  [12030] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_foreach_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(3398),
  [12033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_foreach_statement_repeat1, 2, 0, 0),
  [12035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5522),
  [12037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2777),
  [12039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(771),
  [12041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3672),
  [12043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3209),
  [12045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846),
  [12047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2747),
  [12049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890),
  [12051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5559),
  [12053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1411),
  [12055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1406),
  [12057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(930),
  [12059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1403),
  [12061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5555),
  [12063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3048),
  [12065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3673),
  [12067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7003),
  [12069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2586),
  [12071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722),
  [12073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2764),
  [12075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2769),
  [12077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3278),
  [12079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1401),
  [12081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2755),
  [12083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3657),
  [12085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4025),
  [12087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3218),
  [12089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3183),
  [12091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(855),
  [12093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3155),
  [12095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__named_argument_list_repeat1, 2, 0, 0),
  [12097] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__named_argument_list_repeat1, 2, 0, 0), SHIFT_REPEAT(840),
  [12100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(770),
  [12102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3479),
  [12104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3282),
  [12106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3039),
  [12108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2790),
  [12110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2698),
  [12112] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(6810),
  [12115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_alias_declaration_repeat1, 2, 0, 0),
  [12117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5150),
  [12119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5636),
  [12121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, 0, 0),
  [12123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6891),
  [12125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_aggregate_initializer_repeat1, 2, 0, 0),
  [12127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_aggregate_initializer_repeat1, 2, 0, 0), SHIFT_REPEAT(735),
  [12130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1059),
  [12132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3385),
  [12134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(798),
  [12136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1047),
  [12138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5561),
  [12140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3724),
  [12142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1469),
  [12144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1431),
  [12146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929),
  [12148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924),
  [12150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(938),
  [12152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1000),
  [12154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721),
  [12156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7094),
  [12158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_base_class, 1, 0, 0),
  [12160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3280),
  [12162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3025),
  [12164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2704),
  [12166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5157),
  [12168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_repeat1, 2, 0, 0),
  [12170] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_repeat1, 2, 0, 0), SHIFT_REPEAT(825),
  [12173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4642),
  [12175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2831),
  [12177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1996),
  [12179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2713),
  [12181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_member, 2, 0, 0),
  [12183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1168),
  [12185] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_manifest_constant_repeat1, 2, 0, 0), SHIFT_REPEAT(6924),
  [12188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_manifest_constant_repeat1, 2, 0, 0),
  [12190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969),
  [12192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3686),
  [12194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3302),
  [12196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6968),
  [12198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2576),
  [12200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3300),
  [12202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3249),
  [12204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(836),
  [12206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imported, 3, 0, 5),
  [12208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2556),
  [12210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4638),
  [12212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3678),
  [12214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732),
  [12216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5538),
  [12218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5539),
  [12220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1395),
  [12222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1472),
  [12224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1404),
  [12226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3474),
  [12228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(856),
  [12230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3049),
  [12232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1405),
  [12234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5162),
  [12236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1479),
  [12238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_bind, 1, 0, 0),
  [12240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7884),
  [12242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1520),
  [12244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3037),
  [12246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(733),
  [12248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1043),
  [12250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3144),
  [12252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1027),
  [12254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5557),
  [12256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1020),
  [12258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(985),
  [12260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983),
  [12262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3201),
  [12264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(973),
  [12266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5556),
  [12268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1538),
  [12270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1371),
  [12272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3712),
  [12274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1544),
  [12276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1526),
  [12278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7344),
  [12280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6599),
  [12282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5208),
  [12284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1845),
  [12286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1432),
  [12288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5549),
  [12290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_imported, 1, 0, 0),
  [12292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7060),
  [12294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(775),
  [12296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5213),
  [12298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, 0, 0),
  [12300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3045),
  [12302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1444),
  [12304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3274),
  [12306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3191),
  [12308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1445),
  [12310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4252),
  [12312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3310),
  [12314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3140),
  [12316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4673),
  [12318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7867),
  [12320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7318),
  [12322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3785),
  [12324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(849),
  [12326] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), SHIFT(1869),
  [12329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
  [12331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7422),
  [12333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5599),
  [12335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6432),
  [12337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5721),
  [12339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4383),
  [12341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1058),
  [12343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7561),
  [12345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2198),
  [12347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1006),
  [12349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5048),
  [12351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7559),
  [12353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2199),
  [12355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 7, 0, 0),
  [12357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5746),
  [12359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1869),
  [12361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7529),
  [12363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7362),
  [12365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278),
  [12367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1053),
  [12369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
  [12371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893),
  [12373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1054),
  [12375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
  [12377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7141),
  [12379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4409),
  [12381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7875),
  [12383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506),
  [12385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
  [12387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847),
  [12389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
  [12391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(844),
  [12393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936),
  [12395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5366),
  [12397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1010),
  [12399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3605),
  [12401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6523),
  [12403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(871),
  [12405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1842),
  [12407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5414),
  [12409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7192),
  [12411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5378),
  [12413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7194),
  [12415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1037),
  [12417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
  [12419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7551),
  [12421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
  [12423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1036),
  [12425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
  [12427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3153),
  [12429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3151),
  [12431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1049),
  [12433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248),
  [12435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
  [12437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(816),
  [12439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(979),
  [12441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361),
  [12443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 6, 0, 0),
  [12445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3992),
  [12447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3481),
  [12449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5372),
  [12451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7540),
  [12453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2519),
  [12455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7348),
  [12457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
  [12459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
  [12461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(813),
  [12463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(972),
  [12465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2133),
  [12467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7545),
  [12469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(362),
  [12471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5574),
  [12473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6710),
  [12475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7135),
  [12477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1026),
  [12479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207),
  [12481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1021),
  [12483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
  [12485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2039),
  [12487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217),
  [12489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(787),
  [12491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4515),
  [12493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219),
  [12495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(784),
  [12497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_declarator, 3, 0, 0),
  [12499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913),
  [12501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487),
  [12503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2969),
  [12505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699),
  [12507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955),
  [12509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5180),
  [12511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5402),
  [12513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4491),
  [12515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7741),
  [12517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4010),
  [12519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3475),
  [12521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7391),
  [12523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2816),
  [12525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6916),
  [12527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(804),
  [12529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7622),
  [12531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7095),
  [12533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1005),
  [12535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246),
  [12537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6804),
  [12539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945),
  [12541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(490),
  [12543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1004),
  [12545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250),
  [12547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 3, 0, 0),
  [12549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255),
  [12551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(835),
  [12553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257),
  [12555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(842),
  [12557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3946),
  [12559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3483),
  [12561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6728),
  [12563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1963),
  [12565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_initializer, 3, 0, 0),
  [12567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4033),
  [12569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3470),
  [12571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238),
  [12573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795),
  [12575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
  [12577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(794),
  [12579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4666),
  [12581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(796),
  [12583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965),
  [12585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2117),
  [12587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1050),
  [12589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2103),
  [12591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8027),
  [12593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8025),
  [12595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474),
  [12597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(811),
  [12599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6609),
  [12601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(472),
  [12603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(810),
  [12605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7287),
  [12607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310),
  [12609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(963),
  [12611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313),
  [12613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(991),
  [12615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284),
  [12617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(990),
  [12619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287),
  [12621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6957),
  [12623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962),
  [12625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(354),
  [12627] = {.entry = {.count = 3, .reusable = true}}, REDUCE(sym__declaration_or_statement, 1, 0, 0), REDUCE(sym_conditional_declaration, 2, 0, 0), SHIFT(1869),
  [12631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292),
  [12633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(800),
  [12635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294),
  [12637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830),
  [12639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_argument, 3, 0, 0),
  [12641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3917),
  [12643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7927),
  [12645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7926),
  [12647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7675),
  [12649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6994),
  [12651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458),
  [12653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6903),
  [12655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464),
  [12657] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bitfield_declarator, 5, 0, 0),
  [12659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_foreach_type, 3, 0, 0),
  [12661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7648),
  [12663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908),
  [12665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2097),
  [12667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6857),
  [12669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891),
  [12671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2143),
  [12673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6914),
  [12675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5462),
  [12677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7100),
  [12679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401),
  [12681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(863),
  [12683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7719),
  [12685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7134),
  [12687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3141),
  [12689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6748),
  [12691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5014),
  [12693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408),
  [12695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(866),
  [12697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7740),
  [12699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1498),
  [12701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7239),
  [12703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
  [12705] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_bind, 3, 0, 0),
  [12707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6847),
  [12709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7230),
  [12711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2947),
  [12713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(865),
  [12715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5776),
  [12717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5434),
  [12719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7759),
  [12721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7261),
  [12723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5481),
  [12725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4551),
  [12727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6618),
  [12729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5084),
  [12731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7710),
  [12733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6695),
  [12735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4505),
  [12737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3161),
  [12739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3158),
  [12741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7781),
  [12743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7325),
  [12745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6541),
  [12747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5519),
  [12749] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_literal_repeat1, 2, 0, 12),
  [12751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5182),
  [12753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4476),
  [12755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8024),
  [12757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5385),
  [12759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3800),
  [12761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8037),
  [12763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7124),
  [12765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5467),
  [12767] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ellipses, 1, 0, 0),
  [12769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4530),
  [12771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_arguments, 1, 0, 0),
  [12773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(786),
  [12775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7153),
  [12777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6843),
  [12779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3227),
  [12781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7065),
  [12783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5590),
  [12785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7061),
  [12787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5591),
  [12789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961),
  [12791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324),
  [12793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__auto_assignment, 4, 0, 16),
  [12795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939),
  [12797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2142),
  [12799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952),
  [12801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327),
  [12803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7171),
  [12805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316),
  [12807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(886),
  [12809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332),
  [12811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(824),
  [12813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334),
  [12815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(820),
  [12817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5210),
  [12819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(779),
  [12821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1771),
  [12823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(828),
  [12825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3505),
  [12827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(781),
  [12829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3838),
  [12831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(823),
  [12833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4448),
  [12835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6837),
  [12837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5473),
  [12839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5345),
  [12841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1046),
  [12843] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declarator, 4, 0, 0),
  [12845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7215),
  [12847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1390),
  [12849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7209),
  [12851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1392),
  [12853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7503),
  [12855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959),
  [12857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7853),
  [12859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7530),
  [12861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4386),
  [12863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declarator, 3, 0, 0),
  [12865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4435),
  [12867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(911),
  [12869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3801),
  [12871] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7701),
  [12873] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6023),
  [12875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3139),
  [12877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3146),
  [12879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5436),
  [12881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5368),
  [12883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6348),
  [12885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6585),
  [12887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4568),
  [12889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_manifest_declarator, 4, 0, 0),
  [12891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6260),
  [12893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7909),
  [12895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2287),
  [12897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7752),
  [12899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439),
  [12901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877),
  [12903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437),
  [12905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(852),
  [12907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1003),
  [12909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2120),
  [12911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7066),
  [12913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279),
  [12915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902),
  [12917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431),
  [12919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3235),
  [12921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(698),
  [12923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903),
  [12925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428),
  [12927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7816),
  [12929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6973),
  [12931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
  [12933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5410),
  [12935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7794),
  [12937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(953),
  [12939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2135),
  [12941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4493),
  [12943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932),
  [12945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378),
  [12947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931),
  [12949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381),
  [12951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7032),
  [12953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432),
  [12955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1057),
  [12957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441),
  [12959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7446),
  [12961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1741),
  [12963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3853),
  [12965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3469),
  [12967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7428),
  [12969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1700),
  [12971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7028),
  [12973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1620),
  [12975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7971),
  [12977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2651),
  [12979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044),
  [12981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413),
  [12983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386),
  [12985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876),
  [12987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6906),
  [12989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388),
  [12991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875),
  [12993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3850),
  [12995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3465),
  [12997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7218),
  [12999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4469),
  [13001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1031),
  [13003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2105),
  [13005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6602),
  [13007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367),
  [13009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(806),
  [13011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360),
  [13013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783),
  [13015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6673),
  [13017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5399),
  [13019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7458),
  [13021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5412),
  [13023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7495),
  [13025] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_member_initializer, 1, 0, 0),
  [13027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3587),
  [13029] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_argument, 1, 0, 0),
  [13031] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_auto_declaration_repeat1, 2, 0, 1),
  [13033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__auto_assignment, 3, 0, 9),
  [13035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6510),
  [13037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2972),
  [13039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1023),
  [13041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3869),
  [13043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5387),
  [13045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5354),
  [13047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4381),
  [13049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4557),
  [13051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3266),
  [13053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7539),
  [13055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7541),
  [13057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4532),
  [13059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3816),
  [13061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3575),
  [13063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3815),
  [13065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7564),
  [13067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3842),
  [13069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7572),
  [13071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7573),
  [13073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4518),
  [13075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1667),
  [13077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1773),
  [13079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3221),
  [13081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5461),
  [13083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
  [13085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314),
  [13087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312),
  [13089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308),
  [13091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7548),
  [13093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3202),
  [13095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3196),
  [13097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5647),
  [13099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
  [13101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5426),
  [13103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6404),
  [13105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5038),
  [13107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7591),
  [13109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3223),
  [13111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7653),
  [13113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5453),
  [13115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1254),
  [13117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7660),
  [13119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5379),
  [13121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7534),
  [13123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3812),
  [13125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5089),
  [13127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7671),
  [13129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5671),
  [13131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7672),
  [13133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5355),
  [13135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5657),
  [13137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7431),
  [13139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3991),
  [13141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3859),
  [13143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5362),
  [13145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393),
  [13147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392),
  [13149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391),
  [13151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390),
  [13153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1331),
  [13155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1330),
  [13157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5457),
  [13159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7690),
  [13161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1973),
  [13163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4547),
  [13165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3855),
  [13167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5060),
  [13169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5016),
  [13171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3198),
  [13173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368),
  [13175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404),
  [13177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2101),
  [13179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
  [13181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385),
  [13183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416),
  [13185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383),
  [13187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417),
  [13189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443),
  [13191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2099),
  [13193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1586),
  [13195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380),
  [13197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379),
  [13199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3854),
  [13201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427),
  [13203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377),
  [13205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375),
  [13207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374),
  [13209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373),
  [13211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1375),
  [13213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1739),
  [13215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(450),
  [13217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(453),
  [13219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3858),
  [13221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454),
  [13223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5347),
  [13225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1770),
  [13227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3968),
  [13229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5349),
  [13231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4490),
  [13233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4489),
  [13235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3195),
  [13237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7868),
  [13239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1751),
  [13241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2415),
  [13243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5632),
  [13245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5394),
  [13247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422),
  [13249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423),
  [13251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(424),
  [13253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5629),
  [13255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889),
  [13257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426),
  [13259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7806),
  [13261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5627),
  [13263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187),
  [13265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6737),
  [13267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429),
  [13269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430),
  [13271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5432),
  [13273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3805),
  [13275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2397),
  [13277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5435),
  [13279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434),
  [13281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436),
  [13283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2886),
  [13285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2812),
  [13287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7848),
  [13289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7852),
  [13291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7855),
  [13293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2057),
  [13295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3570),
  [13297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7320),
  [13299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442),
  [13301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7805),
  [13303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5469),
  [13305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444),
  [13307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3129),
  [13309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445),
  [13311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446),
  [13313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7279),
  [13315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7276),
  [13317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2408),
  [13319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7888),
  [13321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7891),
  [13323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7892),
  [13325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2405),
  [13327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3844),
  [13329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5451),
  [13331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7268),
  [13333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3546),
  [13335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3532),
  [13337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3513),
  [13339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3168),
  [13341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3187),
  [13343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3512),
  [13345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7358),
  [13347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4384),
  [13349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4637),
  [13351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1621),
  [13353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7917),
  [13355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2904),
  [13357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2910),
  [13359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3176),
  [13361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7925),
  [13363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5381),
  [13365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3179),
  [13367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3840),
  [13369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 4, 0, 0),
  [13371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7183),
  [13373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7876),
  [13375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7226),
  [13377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7937),
  [13379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7225),
  [13381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7223),
  [13383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5072),
  [13385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3548),
  [13387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4394),
  [13389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1575),
  [13391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7638),
  [13393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340),
  [13395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339),
  [13397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338),
  [13399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336),
  [13401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1769),
  [13403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3837),
  [13405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4569),
  [13407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7951),
  [13409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2006),
  [13411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3553),
  [13413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2892),
  [13415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3839),
  [13417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5360),
  [13419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7203),
  [13421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3847),
  [13423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3579),
  [13425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3557),
  [13427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331),
  [13429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2877),
  [13431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329),
  [13433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5602),
  [13435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7179),
  [13437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7177),
  [13439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326),
  [13441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325),
  [13443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3439),
  [13445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317),
  [13447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323),
  [13449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321),
  [13451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320),
  [13453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319),
  [13455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5444),
  [13457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3438),
  [13459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5380),
  [13461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
  [13463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5364),
  [13465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5377),
  [13467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3452),
  [13469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3436),
  [13471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7787),
  [13473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6741),
  [13475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7140),
  [13477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4007),
  [13479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5478),
  [13481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1698),
  [13483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5458),
  [13485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1774),
  [13487] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
  [13489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3574),
  [13491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8030),
  [13493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3226),
  [13495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7213),
  [13497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1728),
  [13499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5375),
  [13501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5405),
  [13503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5367),
  [13505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5393),
  [13507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3111),
  [13509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425),
  [13511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8015),
  [13513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8014),
  [13515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8013),
  [13517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4418),
  [13519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3571),
  [13521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1428),
  [13523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7709),
  [13525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7999),
  [13527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5376),
  [13529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1441),
  [13531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2861),
  [13533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4552),
  [13535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4572),
  [13537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3795),
  [13539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7994),
  [13541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7983),
  [13543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7982),
  [13545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2843),
  [13547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7793),
  [13549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5597),
  [13551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638),
  [13553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4086),
  [13555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
  [13557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
  [13559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1315),
  [13561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1307),
  [13563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3189),
  [13565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3203),
  [13567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4066),
  [13569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
  [13571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3619),
  [13573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1068),
  [13575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348),
  [13577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7952),
  [13579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1694),
  [13581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7950),
  [13583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5456),
  [13585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2418),
  [13587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1684),
  [13589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1530),
  [13591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7949),
  [13593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466),
  [13595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7948),
  [13597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467),
  [13599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(468),
  [13601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(469),
  [13603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3551),
  [13605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3600),
  [13607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6538),
  [13609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299),
  [13611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298),
  [13613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297),
  [13615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
  [13617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7904),
  [13619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5438),
  [13621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2772),
  [13623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7930),
  [13625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2052),
  [13627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4543),
  [13629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410),
  [13631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405),
  [13633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366),
  [13635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4022),
  [13637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2111),
  [13639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359),
  [13641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4648),
  [13643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358),
  [13645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291),
  [13647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289),
  [13649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353),
  [13651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2141),
  [13653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286),
  [13655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285),
  [13657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344),
  [13659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(283),
  [13661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282),
  [13663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281),
  [13665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280),
  [13667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2119),
  [13669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6823),
  [13671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960),
  [13673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7957),
  [13675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6821),
  [13677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1557),
  [13679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7847),
  [13681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276),
  [13683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7836),
  [13685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7834),
  [13687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7833),
  [13689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
  [13691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6937),
  [13693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4507),
  [13695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7818),
  [13697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7817),
  [13699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4514),
  [13701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4014),
  [13703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4656),
  [13705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1886),
  [13707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7808),
  [13709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7807),
  [13711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4393),
  [13713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7012),
  [13715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1525),
  [13717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262),
  [13719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261),
  [13721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260),
  [13723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259),
  [13725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2498),
  [13727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7801),
  [13729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5585),
  [13731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4408),
  [13733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475),
  [13735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232),
  [13737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229),
  [13739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254),
  [13741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252),
  [13743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208),
  [13745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201),
  [13747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480),
  [13749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249),
  [13751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247),
  [13753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
  [13755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245),
  [13757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244),
  [13759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243),
  [13761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242),
  [13763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2123),
  [13765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7677),
  [13767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7779),
  [13769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7776),
  [13771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4484),
  [13773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1070),
  [13775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489),
  [13777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6951),
  [13779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6960),
  [13781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(799),
  [13783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224),
  [13785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223),
  [13787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222),
  [13789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221),
  [13791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(488),
  [13793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8056),
  [13795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5441),
  [13797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6990),
  [13799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216),
  [13801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1102),
  [13803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
  [13805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(486),
  [13807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7048),
  [13809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
  [13811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
  [13813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206),
  [13815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205),
  [13817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
  [13819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203),
  [13821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4533),
  [13823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7723),
  [13825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7722),
  [13827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7721),
  [13829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4536),
  [13831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6959),
  [13833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2839),
  [13835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4008),
  [13837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485),
  [13839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(484),
  [13841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
  [13843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181),
  [13845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
  [13847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
  [13849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7886),
  [13851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483),
  [13853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6976),
  [13855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
  [13857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
  [13859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1494),
  [13861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1551),
  [13863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
  [13865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
  [13867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3193),
  [13869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
  [13871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
  [13873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
  [13875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
  [13877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3184),
  [13879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7669),
  [13881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7668),
  [13883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7667),
  [13885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2942),
  [13887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4449),
  [13889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1483),
  [13891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7049),
  [13893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
  [13895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144),
  [13897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
  [13899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
  [13901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7053),
  [13903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1609),
  [13905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
  [13907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4411),
  [13909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
  [13911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7873),
  [13913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5020),
  [13915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447),
  [13917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
  [13919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4034),
  [13921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155),
  [13923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
  [13925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157),
  [13927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
  [13929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7625),
  [13931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7620),
  [13933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7618),
  [13935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1596),
  [13937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7872),
  [13939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7588),
  [13941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6948),
  [13943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7576),
  [13945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(479),
  [13947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7558),
  [13949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7557),
  [13951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7556),
  [13953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1436),
  [13955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7536),
  [13957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1439),
  [13959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5424),
  [13961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7086),
  [13963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7521),
  [13965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(872),
  [13967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4546),
  [13969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7517),
  [13971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3751),
  [13973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2190),
  [13975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4658),
  [13977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3558),
  [13979] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7463),
  [13981] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1569),
  [13983] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7460),
  [13985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868),
  [13987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2644),
  [13989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7108),
  [13991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7377),
  [13993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7420),
  [13995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(879),
  [13997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892),
  [13999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7109),
  [14001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3435),
  [14003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7110),
  [14005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
  [14007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3786),
  [14009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4994),
  [14011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6023),
  [14013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3706),
  [14015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909),
  [14017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5073),
  [14019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5003),
  [14021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3352),
  [14023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7402),
  [14025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1468),
  [14027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191),
  [14029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519),
  [14031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3984),
  [14033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943),
  [14035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947),
  [14037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7390),
  [14039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7389),
  [14041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7385),
  [14043] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5332),
  [14045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3580),
  [14047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7372),
  [14049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2751),
  [14051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6512),
  [14053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5421),
  [14055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5227),
  [14057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
  [14059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1775),
  [14061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3181),
  [14063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3186),
  [14065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6743),
  [14067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5425),
  [14069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7149),
  [14071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6739),
  [14073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3990),
  [14075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7599),
  [14077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5447),
  [14079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7336),
  [14081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5346),
  [14083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2961),
  [14085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3349),
  [14087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7327),
  [14089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7326),
  [14091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4601),
  [14093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5077),
  [14095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976),
  [14097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654),
  [14099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7117),
  [14101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7316),
  [14103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1001),
  [14105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2600),
  [14107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650),
  [14109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643),
  [14111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2108),
  [14113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234),
  [14115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241),
  [14117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3468),
  [14119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4672),
  [14121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350),
  [14123] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268),
  [14125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356),
  [14127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504),
  [14129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5331),
  [14131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3379),
  [14133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3393),
  [14135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3394),
  [14137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2273),
  [14139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2283),
  [14141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2166),
  [14143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1384),
  [14145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2104),
  [14147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3242),
  [14149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2139),
  [14151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2140),
  [14153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4504),
  [14155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4481),
  [14157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4002),
  [14159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(372),
  [14161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3265),
  [14163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7842),
  [14165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7199),
  [14167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400),
  [14169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867),
  [14171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7187),
  [14173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3650),
  [14175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7156),
  [14177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4567),
  [14179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7133),
  [14181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(829),
  [14183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4404),
  [14185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1669),
  [14187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4564),
  [14189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5749),
  [14191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978),
  [14193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3740),
  [14195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1009),
  [14197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2962),
  [14199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6651),
  [14201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3306),
  [14203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4588),
  [14205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(521),
  [14207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1493),
  [14209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1055),
  [14211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1051),
  [14213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7115),
  [14215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7106),
  [14217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7728),
  [14219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6799),
  [14221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1158),
  [14223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7720),
  [14225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841),
  [14227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3378),
  [14229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3362),
  [14231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(940),
  [14233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3995),
  [14235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3339),
  [14237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5448),
  [14239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3337),
  [14241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3317),
  [14243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7085),
  [14245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5325),
  [14247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958),
  [14249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3396),
  [14251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899),
  [14253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2540),
  [14255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3429),
  [14257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3618),
  [14259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1310),
  [14261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1309),
  [14263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5232),
  [14265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7838),
  [14267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1281),
  [14269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2928),
  [14271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6555),
  [14273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6998),
  [14275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4667),
  [14277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(805),
  [14279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2334),
  [14281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6977),
  [14283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3636),
  [14285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6969),
  [14287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(801),
  [14289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2723),
  [14291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6958),
  [14293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(819),
  [14295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4583),
  [14297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3782),
  [14299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5989),
  [14301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5224),
  [14303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3359),
  [14305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1271),
  [14307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6981),
  [14309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6986),
  [14311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4413),
  [14313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6907),
  [14315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3247),
  [14317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5420),
  [14319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4689),
  [14321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4700),
  [14323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3244),
  [14325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1402),
  [14327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4570),
  [14329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3366),
  [14331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3340),
  [14333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7010),
  [14335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887),
  [14337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3131),
  [14339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3346),
  [14341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5361),
  [14343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2325),
  [14345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6567),
  [14347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4665),
  [14349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3596),
  [14351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7052),
  [14353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6769),
  [14355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(845),
  [14357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4512),
  [14359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7067),
  [14361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3735),
  [14363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7089),
  [14365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(857),
  [14367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3324),
  [14369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3593),
  [14371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7101),
  [14373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2229),
  [14375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6180),
  [14377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3332),
  [14379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7121),
  [14381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7126),
  [14383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1181),
  [14385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6753),
  [14387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3, 0, 0),
  [14389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7130),
  [14391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2112),
  [14393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3358),
  [14395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(888),
  [14397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1627),
  [14399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4811),
  [14401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3313),
  [14403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7150),
  [14405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4502),
  [14407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4803),
  [14409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4804),
  [14411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3341),
  [14413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2967),
  [14415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2968),
  [14417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7099),
  [14419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7593),
  [14421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7186),
  [14423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7097),
  [14425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882),
  [14427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7054),
  [14429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3684),
  [14431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7219),
  [14433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2115),
  [14435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7231),
  [14437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3484),
  [14439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1534),
  [14441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7586),
  [14443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6272),
  [14445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7577),
  [14447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3357),
  [14449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7250),
  [14451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7253),
  [14453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5295),
  [14455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6622),
  [14457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2970),
  [14459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4662),
  [14461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5881),
  [14463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3562),
  [14465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4591),
  [14467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915),
  [14469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3719),
  [14471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3386),
  [14473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3309),
  [14475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7277),
  [14477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933),
  [14479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3387),
  [14481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2581),
  [14483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5329),
  [14485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1617),
  [14487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3960),
  [14489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1875),
  [14491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7304),
  [14493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2578),
  [14495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7319),
  [14497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1231),
  [14499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7324),
  [14501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4649),
  [14503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3118),
  [14505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3126),
  [14507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cast_qualifier, 2, 0, 0),
  [14509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5337),
  [14511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3480),
  [14513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7334),
  [14515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4696),
  [14517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3254),
  [14519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4470),
  [14521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7509),
  [14523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4647),
  [14525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4579),
  [14527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2535),
  [14529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2132),
  [14531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2419),
  [14533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2136),
  [14535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3485),
  [14537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3412),
  [14539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4461),
  [14541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5220),
  [14543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4503),
  [14545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4458),
  [14547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4452),
  [14549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4429),
  [14551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7663),
  [14553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2684),
  [14555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5400),
  [14557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3772),
  [14559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1256),
  [14561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2523),
  [14563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4444),
  [14565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4443),
  [14567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7233),
  [14569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5151),
  [14571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3904),
  [14573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3601),
  [14575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2921),
  [14577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4699),
  [14579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3568),
  [14581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7469),
  [14583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2507),
  [14585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4663),
  [14587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6407),
  [14589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6608),
  [14591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3563),
  [14593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3506),
  [14595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7504),
  [14597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4797),
  [14599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6429),
  [14601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513),
  [14603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3107),
  [14605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4499),
  [14607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1013),
  [14609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1008),
  [14611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7525),
  [14613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2938),
  [14615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4437),
  [14617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628),
  [14619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7533),
  [14621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7537),
  [14623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7538),
  [14625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625),
  [14627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3637),
  [14629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627),
  [14631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2538),
  [14633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970),
  [14635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414),
  [14637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3550),
  [14639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4631),
  [14641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3736),
  [14643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418),
  [14645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420),
  [14647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421),
  [14649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4434),
  [14651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1701),
  [14653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942),
  [14655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7714),
  [14657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6501),
  [14659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500),
  [14661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2611),
  [14663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6525),
  [14665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(524),
  [14667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894),
  [14669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(895),
  [14671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957),
  [14673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954),
  [14675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6642),
  [14677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7624),
  [14679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7627),
  [14681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2486),
  [14683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3738),
  [14685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4581),
  [14687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4582),
  [14689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2502),
  [14691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6582),
  [14693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2752),
  [14695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1328),
  [14697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6598),
  [14699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514),
  [14701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1332),
  [14703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(918),
  [14705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920),
  [14707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2393),
  [14709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7310),
  [14711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7676),
  [14713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3746),
  [14715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3882),
  [14717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1074),
  [14719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2314),
  [14721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2127),
  [14723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5470),
  [14725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6626),
  [14727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2975),
  [14729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6629),
  [14731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523),
  [14733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4526),
  [14735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944),
  [14737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946),
  [14739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5215),
  [14741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3880),
  [14743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3707),
  [14745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2125),
  [14747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2917),
  [14749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2566),
  [14751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6650),
  [14753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3263),
  [14755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4527),
  [14757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6661),
  [14759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518),
  [14761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1176),
  [14763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974),
  [14765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975),
  [14767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4506),
  [14769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2952),
  [14771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3530),
  [14773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(814),
  [14775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515),
  [14777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3245),
  [14779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(522),
  [14781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(994),
  [14783] = {.entry = {.count = 1, .reusable = true}}, SHIFT(995),
  [14785] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4485),
  [14787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2246),
  [14789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4475),
  [14791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4508),
  [14793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516),
  [14795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3507),
  [14797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1007),
  [14799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1012),
  [14801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4389),
  [14803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496),
  [14805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2137),
  [14807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(517),
  [14809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2934),
  [14811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1028),
  [14813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1029),
  [14815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2138),
  [14817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1248),
  [14819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1305),
  [14821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304),
  [14823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520),
  [14825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2669),
  [14827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1038),
  [14829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1039),
  [14831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5524),
  [14833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2188),
  [14835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4664),
  [14837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5244),
  [14839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3427),
  [14841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4425),
  [14843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4423),
  [14845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3432),
  [14847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5476),
  [14849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7854),
  [14851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3408),
  [14853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3938),
  [14855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7859),
  [14857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1338),
  [14859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3668),
  [14861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1301),
  [14863] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2171),
  [14865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3329),
  [14867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2356),
  [14869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7399),
  [14871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3419),
  [14873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2351),
  [14875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3973),
  [14877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3407),
  [14879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7887),
  [14881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3406),
  [14883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5502),
  [14885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5028),
  [14887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3397),
  [14889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7222),
  [14891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4605),
  [14893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4616),
  [14895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4607),
  [14897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3428),
  [14899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3576),
  [14901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7374),
  [14903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3415),
  [14905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2226),
  [14907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3911),
  [14909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3413),
  [14911] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2253),
  [14913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7809),
  [14915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3416),
  [14917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7810),
  [14919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5178),
  [14921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7811),
  [14923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4561),
  [14925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3333),
  [14927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3422),
  [14929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3434),
  [14931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7990),
  [14933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3433),
  [14935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2296),
  [14937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5350),
  [14939] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3404),
  [14941] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3414),
  [14943] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3410),
  [14945] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3411),
  [14947] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3418),
  [14949] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3402),
  [14951] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3403),
  [14953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3401),
  [14955] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3421),
  [14957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3430),
  [14959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3425),
  [14961] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3424),
  [14963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3400),
  [14965] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3405),
  [14967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3431),
  [14969] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3399),
  [14971] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2300),
  [14973] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7823),
  [14975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2733),
  [14977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3343),
};

enum ts_external_scanner_symbol_identifiers {
  ts_external_token_directive = 0,
  ts_external_token_int_literal = 1,
  ts_external_token_float_literal = 2,
  ts_external_token__string = 3,
  ts_external_token_not_in = 4,
  ts_external_token_not_is = 5,
  ts_external_token__after_eof = 6,
  ts_external_token_error_sentinel = 7,
};

static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = {
  [ts_external_token_directive] = sym_directive,
  [ts_external_token_int_literal] = sym_int_literal,
  [ts_external_token_float_literal] = sym_float_literal,
  [ts_external_token__string] = sym__string,
  [ts_external_token_not_in] = sym_not_in,
  [ts_external_token_not_is] = sym_not_is,
  [ts_external_token__after_eof] = sym__after_eof,
  [ts_external_token_error_sentinel] = sym_error_sentinel,
};

static const bool ts_external_scanner_states[8][EXTERNAL_TOKEN_COUNT] = {
  [1] = {
    [ts_external_token_directive] = true,
    [ts_external_token_int_literal] = true,
    [ts_external_token_float_literal] = true,
    [ts_external_token__string] = true,
    [ts_external_token_not_in] = true,
    [ts_external_token_not_is] = true,
    [ts_external_token__after_eof] = true,
    [ts_external_token_error_sentinel] = true,
  },
  [2] = {
    [ts_external_token_directive] = true,
  },
  [3] = {
    [ts_external_token_directive] = true,
    [ts_external_token_int_literal] = true,
    [ts_external_token_float_literal] = true,
    [ts_external_token__string] = true,
  },
  [4] = {
    [ts_external_token_directive] = true,
    [ts_external_token_int_literal] = true,
    [ts_external_token_float_literal] = true,
    [ts_external_token__string] = true,
    [ts_external_token_not_in] = true,
    [ts_external_token_not_is] = true,
  },
  [5] = {
    [ts_external_token_directive] = true,
    [ts_external_token_not_in] = true,
    [ts_external_token_not_is] = true,
  },
  [6] = {
    [ts_external_token_directive] = true,
    [ts_external_token_int_literal] = true,
  },
  [7] = {
    [ts_external_token_directive] = true,
    [ts_external_token__after_eof] = true,
  },
};

#ifdef __cplusplus
extern "C" {
#endif
void *tree_sitter_d_external_scanner_create(void);
void tree_sitter_d_external_scanner_destroy(void *);
bool tree_sitter_d_external_scanner_scan(void *, TSLexer *, const bool *);
unsigned tree_sitter_d_external_scanner_serialize(void *, char *);
void tree_sitter_d_external_scanner_deserialize(void *, const char *, unsigned);

#ifdef TREE_SITTER_HIDE_SYMBOLS
#define TS_PUBLIC
#elif defined(_WIN32)
#define TS_PUBLIC __declspec(dllexport)
#elif defined __GNUC__ || defined __clang__
#define TS_PUBLIC __attribute__((visibility("default")))
#else
#define TS_PUBLIC
#endif

TS_PUBLIC const TSLanguage *tree_sitter_d(void) {
  static const TSLanguage language = {
    .version = LANGUAGE_VERSION,
    .symbol_count = SYMBOL_COUNT,
    .alias_count = ALIAS_COUNT,
    .token_count = TOKEN_COUNT,
    .external_token_count = EXTERNAL_TOKEN_COUNT,
    .state_count = STATE_COUNT,
    .large_state_count = LARGE_STATE_COUNT,
    .production_id_count = PRODUCTION_ID_COUNT,
    .field_count = FIELD_COUNT,
    .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
    .parse_table = &ts_parse_table[0][0],
    .small_parse_table = ts_small_parse_table,
    .small_parse_table_map = ts_small_parse_table_map,
    .parse_actions = ts_parse_actions,
    .symbol_names = ts_symbol_names,
    .field_names = ts_field_names,
    .field_map_slices = ts_field_map_slices,
    .field_map_entries = ts_field_map_entries,
    .symbol_metadata = ts_symbol_metadata,
    .public_symbol_map = ts_symbol_map,
    .alias_map = ts_non_terminal_alias_map,
    .alias_sequences = &ts_alias_sequences[0][0],
    .lex_modes = ts_lex_modes,
    .lex_fn = ts_lex,
    .keyword_lex_fn = ts_lex_keywords,
    .keyword_capture_token = sym_identifier,
    .external_scanner = {
      &ts_external_scanner_states[0][0],
      ts_external_scanner_symbol_map,
      tree_sitter_d_external_scanner_create,
      tree_sitter_d_external_scanner_destroy,
      tree_sitter_d_external_scanner_scan,
      tree_sitter_d_external_scanner_serialize,
      tree_sitter_d_external_scanner_deserialize,
    },
    .primary_state_ids = ts_primary_state_ids,
  };
  return &language;
}
#ifdef __cplusplus
}
#endif
